0.91596559417721901505460351493238411077414937428167213426649811962176301977625476947935651292611510624857442261919619957903589880332585905943159473748115840699533202877331946051903872747816408786590902470648415216300022872764094238825995774150881639747025248201156070764488380787337048990086477511322599713434074854075532307685653357680958352602193823239508007206803557610482357339423191498298361899770690364041808621794110191753274314997823397610551224779530324875371878665828082360570225594194818097535097113157126158042427236364398500173828759779765306837009298087388749561089365977194096872684444166804621624339864838916280448281506273022742073884311722182721904722558705319086857354234985394983099191159673884645086151524996242370437451777372351775440708538464401321748392999947572446199754961975870640074748707014909376788730458699798606448749746438720623851371239273630499850353922392878797906336440323547845358519277777872709060830319943013323167124761587097924554791190921262018548039639342434956537596739494354730014385180705051250748861328564129344959502298722983162894816461622573989476231819542006607188142759497559958983637303767533853381354503127681724011814072153468831683568168639327293677586673925839540618033387830687064901433486017298106992179956530958187157911553956036689036990493966753843775810493189955385516262196253316804016273752130120940604538795076053827123197467900882369178615573389124417223833938148120775994298491724397668575632718068808279982979378849432724934657607490543874819526813074437046294635892810276531705076547974494839948959477092788591195848724127866084088554597823812492260505610094584486698958576871611171786662336847409949385541321093755281815525881591502228244454441718609946588151766496078223678970519269711312571375454370124329673057246845015819313016087766215650957554679666786617082347682558133518681937745650014565261704096074688953930234791980600084245562175108423471736387879369577878440933792219894575340961647424554622478788002922914803690711527079554550541478268849818524600581446651786814231541148785540996651673853972761469701690439151149008933307918457465762099677548123138201543601098852721629770108761574781735641636985703553406726493519631695547672115077723159004483382605161163834308651397972251617413853812932480119463625188008403981945539055182104246062921852175602465486019297672397405110395264569242978642124240375189267872960271773378738379978326676208611952067912151263821192523294040692059943864274693215338856671173308271424083326592032607531659280423102309973584003959403426322276880701186819617678090563158159784537637578356373590277164883131028876937950535073208018075810223823080317625043294247222683912297129553513551043147618866554743676921841201887716179922856205635220547032006918086880661211742040609924123487605154068202262559504812485894118735834682290423083615554769477770831940874812491674892900659369616416623436837075439638389451440119556487381342921229820013021079961922424924493051999235858158082603524979985059186697220123164897104830701793528112228966355128317437352393011402792389808744569648309013207877658785362301354280001629055877295006795876178247374871378060042208445346045064702443258085164777173903196028655538328281415915248735263307150513147882844999238663243198106336515243311321463900933362159160744482923457177454817169580181688900175285645046489139090420356029836045652425265797270138586757653899302958449258692189788644388819358114526770563160609737684654083694230203816826392458579107404870879877852426140868715178575801006023681703491797733622196629537718913853116739965565885912164628015582629873541376336076073020045591202946657347571852745311633847776486838248504116301605227086944442703644251242363971814999234960838959168258036164749881042639483890042940550431502193126864230059992926361540649262664186583594904249371523622068403940370108680740098440001512465343535067233845469463576021186762114341424761178341043127306116782248833969915539091310973231066781117485537679027231845076545775699887411395686146631581361573674061881125914620397423401125882131569075175754979658229689846231329257273175338302313533232870056595688534175204573932758183513982347678009261426521074710456668763134325667275929891952548849037809046546488268575204454695053813498309021460489718319387780863409014168285484524248093104343217724788778248739486061800233415225914146138782700545170971410457656614928953108672486080484204376637936230213645817798022720882738071736711299822289069125763027779162651035762577038104288680376054636303337940367377696744757171918712803954370966413877226626889837311111602004518593973174764621542838460162144526553720292552051504941828003032550267579038252786139633572720650890367820176258573636602459644914533528141037251683822090097101943680278336708963314672497329503919259298514966414498521873384370124517467421871213110205726174340134056876555104187866544518902765005382178609412105353899784905982180023067890821606141367018393687028304544346780536499566495053180837980207950365835227622006506786177171095672005629703023553593373869771832835337557262344415664916005762666604199085276789703504193295554568745338842121304879862000928706178007678592735175386523677348535053066125396025536280809350562562821347432394399222442739711562755985244339104126180433506987134104280978456869518977668882650503756167591535473173668135683353168588440266726203196600785194905261819016135540883210564405409027216204498851041761292787884227851835200704439460961571665543448392802592501156306227650740050312351417656526449943042570531502230552233576634208943102385867060630430297719853224212043298619528633162199479803021651170071853216768095061934167286284674753307211005511854225758629292681406381602461376952043278677852351940897487799588262651018857167526448964259516245608164680586662605844328281537669209501700131691093864391470033345906701868799246483109181855848104631118954767258303668922657116990565431759988680286731145873457549777440562265841337924742718870078268554656782290336462515389898481303382848801578806646984480217166949381713998561787717378778712739969834267499971632268327257972572115422822471585175485105077970961560718370771383998265316365376758124751878398350457588311790755545686617395928729558719386219223573876438607017401059359744278581411271395680504961269960048434583896436697014771140329178065084925873008209906179587580402996618292021820696155745628810980223576195163967867626609736795492343789154100185728989816837858427303612448456532426353483148925506480782198270518366562137380923695907752151698346526103237738415089830658136487130918231383360055922540017526278742124582625282370841549068233176525686246245609564332012497970680412465220417099693819728527361263918229564824346904280303582683293573927934144962552827643618433542620664134683156370222632876839087900597166332580664331095881812753248627892980094868158902452714692410818394313034916873369765811519402277339800954019992521514349607341474539039230411990899640390760329165111929551028666741487888146370780055212485563601811272094261309853801454061531585422664625843416142595014823689366366735542832720063760749018108182214340861973911548328544384315811917349722801704172459572971660809528522210471512385830056016372167813179800095725635672059859413601259647770490028817068063068944393809042066274116418284908815132355567686236301149153615835301929518669408266688060717443297219890870195003345427130936321480897947531976335087806006735145801884222411475843568459595642012392746288926431857096931750781433192768351309119874941923765705532160176241226139675957034480490314072757977766284315056551277393854632895972421929264699107855832088971233051922897717260248197053719683239188010267755856584529891014031105506836583574883237481454355676661805833306498942393994388379965296325401019799634146428782283377256296616846911720121828661474404077735591989241075123126002042456108959229931398206017121311234380896737575014319013773810588142008068583268348860835919739558648453632085482935260075146055373154056807915110104867854204502431784812177640696641654466861923921035823089944277756117355726622412507724360772601174557283433060318105899040780191874490094925401279748286924188618885357723618971933738259474905697075534520115315402733311828377976124717015057625706465529679989718223087381422674357748520494951554930115312237349799758257618202831754452121431136790914270888108434238961583657657348848869901897285510569345637556197136235680510433375824604783740671629050969122053094969342273645888616180749732254029065265157374208441696502868219289687780182022916709817519263029166075560544631057607509820784122037469094403481232669125215712433087010353789034900090664329264372577975024182433028437809210844805131449637450450720821172885237993949048626138199252205239306727369305935217637216618890419427844146908993764901848571379429452377041302501047569886854093043365370302936769520956382771770453471932906996474983798241227697609433107940858403105491213134469627575233133732110803099242578856580410400798316619455697015999176218878664471943175469916497415202518064488778879851669666905018069611778953196777655119951365783552962285756790257213860335416088979846955972160571371734597829251501311460097902373072412036354335883448781036365025215337515426356641550685916208348770008127064546983842306741350697392385488411364274333848991803820765123559375590563012417219171980889432932113650166895367035795783718714129279518231967750770527301435566890987728156213938442321621621619714293261707601370746636004397668423210772544037792407419121770198942861545330158425131835182081137819138154235421559608389967085629516895262671993966405734193091489098184941482188411810178142374557350988488825815942045631984223214360317409340713561767809014347986994190579589435555830750700972883787924906533440124683055020087050873645653095557917071622999437962377763190566337687723700887467453957110781672472188004312957875214467796449960511800034246725245859539203204670880889789317541179493224981308995641838295378715037761463626258511238016069358074126973884404030409739084583137914246290915648409556851262693103058511292005846401659476028476552408610605191022645863054054032634791028174912277615366809620188627833142120644805591428083298734118414360771660608731081949848484492815147685896339154809451338055599975013469167678833652319853053583863333532935249293050310083172054433905050376413930794611946777014640762590492778084651343952309552492153717435229293942988546906689089111158690716054868384732500504471076651958754718458234785732434368548833783871995617076483652381581775882106687691199738438887994684127831197614230187333481444190086170200582604207251386376554624596299270296087829284515227536076813961039567082881468033399263849883851517369906170600666320063069982547852342755408169692580300982931288816845379325227504659787688963309573341060164659585398436920742751496110274307126469676151836937086582026277051209542930439143547965918260728897001187517345029606509198500136933628468394612030247503897543589083078612913460889836406485044857015659677762794641541803525734051363485532129950844092689612310940754182744027351269370218532477846540339600306219998878318039319704292122495067614229002210715292351093485086757190433390511894693203488114952940303089160914952098133026717570241776747702048465647977984387889350893780320701044377856974402417553704657109846759091830221597568486217210138708825254328906985144629218157238053861792363563698358706440809632911658563595614359386346282238196122201356546966739288220771888508306195019156452016298554213864386433761993145383651868918258176647027062375367382370897020672107900679360185682046291587722285956060402209937565687974455240910912732822595108597224444778399281565562088534838269442581400691380247361462202060899736983794449529070119917881219370470809089734189712410315397023063331178349119734076268473989110612392614402045318979278204807618498097421856104194597221642281896519731426902105335385078269228032681905896448698926177536581470865895031857067258439249126646921556595921463358417125127078556409733127792330834411800917211931482603316472440285309531133416801362768340380656843956224901064370494908671162370101323936333540331303482946612442291832250784904113459290936037071391403701640573451435989843391250388711698186658623254071786832421840463850524922402294215252122219746627890892242630352467165376788333616161489703724438114898481157046067438588570956522791783226579688826613323267290015053503821071620540860875544294715041219333078364405375830493287051435015130482451945497585034935205259578117234780294001846247692094598694846960880926178711735163206818028819896261746322160291576336869342567715495799463074610405499304632691317449812255036823267710191234996107792483648674459526675230581370250480362465582246628910898031100355785864480880974065849602998145682158416712262174948833437240976047910724363838702614759709497782154721992961544399335529828152307598090888043036003879566321290037402080486911085378912885547831326375799173473825279867518797825294506726570553248628326265671959763322223727101073434792672964156546247735482954780949636804529498374256495295751180048643190939852632732319051479912514631474488773002204989667095501472083994719960636635875356737862996568695026670954696168431842247284545920244602392896107022827103035172738727688234842665225206644088771292841615804886744133343251154037199885483639749144086796114104752654810592239140281719729298030588717934532522003225017422123424499627259789994079535389206504191411359720721803071810804828658481244097035637611762987368821708516809351849207641693156131384051153249286540942623014541601333466224647952172780652175063512270382989521794534652994453209532643110873190584673587833562428457902818905325423670980697735617904021722332265296608533456708737489454764732592286378040464543812334110833044112313886605097457586451390038632625853675631677303165726066164971471045067086318102875035208373241249420925145863198760299645845391231563618501170074844874842829825222624397182151173215342804107184187974937499985389146312927062586396363808604706577343407074173237281399459278759773292381069105426202092090017623743082240629560919253171645226238046142833198930030378864216946422876391023458494195850399013687152825184022701277950490077032067972245576726494718932952075176404206425327778659538762171514621960214546086626810163732584419529776054271644916927322804715192822149159563750219496725891245630251662137729008831063889719577318471276609670576831516940848707527663026427136687964704635676134598479176542522578221100923099544722575192307068631241750671481895947389345079039763438500491986214881356697466172437262103708610949660153920575627883088430812631657873324279779021954921514023668810641852019737002261344485354433767019881198593723742825257717612088862905972995714528259794444345278631918691855992347139345792525814782111551008070114520288591962778668286799253672323017857780570051276153966878614481988996436475683377592289986040495779206342202484831261285713483876164490122176195841856656511155230709621720979670720461570744116891683989474248051336261022394412037740459546819934919544947711982173852904788572628732840127540859220601520427534808856690645381336067422487925263856375601154215213408721833481761715874307589068235823510134327030137170155496887866539602187975257704492678601117789876720200097787383699742197019518713705027503199230369743860774349865960858925384896499959607029009055428471410589551467154779273315212485648911571787227374590414712195315294446632232035605558737756625213846765330501807117669929053137742070952382617334181862731566041322258032397827978329610482529169611577432037579163796404635709757917196640060946909140077500849607829187532921089007544229799088223799242189625906431396534002886687284888385516959706454562877126972675373896158863230407543339416313845440066845416518082188833668970336142290974282435560555786773274815374657174078164039163184394768495919702442094996275646063217029545706132900852860132498369952292361831145643469409708451089623547805748399929858678225400628876632880486754223541844390405303995076434928497123348376359779279588287274702380527623618350690981823114305192278639501075089361713244560009688379588693464215682490648449128932106915392161188059016802124055837807361892792848509090087139995492422330086779797029557548254582650748704538807681700027235815227777187744610078008005681922549531632232364957656829884723952152282383196940749144923498368863633899700135858848890321792792843510119244981606396622859428093716216179397073596629990042675669829500947635254185491168761918744907552602130070096115629703210306879997810294365679101393266363354311282840552810079586584119761904239883736720726175484082860097207573606012948844803614028655777522958925805418772793007043124612956663699521186635958949075208277649299939934608517739459803010449436146201743761453083076488017286650424462858361949422217496367337622242243039777886035169280577628070400702868841349031007143252120126499090811527397048552564096859704238829317489522921958806636864183121885065409789898960713932002140968117844343650682552354545065582311056067566983675278925161362206482131534555739670668802224958214283585091057114840045089214440326647438492613796148614536758167945969362737631199565326351704510043392228494826734911792082137745490554124530176884798501689778977291710660787098328146947831255829960153956423007879788184894784024162808468788066884733048214486524877732314756996803153236229106526097050805326987653820445373610053261235810666365477154897647273051668198131384366944245848103944662129762769786601855298401659189970079032133205093509387991696140762083145819638669222005784388969377148100504887807669944908949649200731617820644920289386802777417536594959968985756722695396958441323760095046871993349718054847569403682982495680355776974552510816871207299349477905840558610094384426055494596443757203937970166469088896672171082428054204561695792660263046961334241195099158741342167641916823618151721800916386647813101933390325266788467247343409076050429332326678398250009202030723798075632689068928995766258120083267416391488349942663027880629820074902491743541108840159537935577452808322782431320181569682668326045229932540798274082280236106493448252601672114215207412198466894550411580581095385927328847716454901989405373777732214742459958976451867583786929110720544376968440047274519609830320319454155418822265657311995190181963200654131096219592562474012208706325238283748814560092340146290980231000153641270193250746927006953642201883072782925096198147285469500291118232704169472852305398522879898358611903680853294108726555095000098382545160028798679517882244213037763436248564903045544606482217990443398021967090050535331685807810455964180403631646716682533587738514099100799841463636623832623798438981634534721854293792436913886717623157534221268686589410661390605319281629353438820667788840968644044115465375548916209753984638321421332400529112532394644604722928313156815174202369877498095240805015411008360994993123537799943236862611142070758226320852115215283086959391959286957520048656447899901041677195403288427606747303662292777152724739500283802658378868989088766918529174998275752938322794578876201210132756393638103726981793697231393707526312345648135283580643768061100979875102128475021949092737452460415580986971650998918284105544674939395496160016830695695274784901890735370358622923063354871841988100724816393260344114116868694257576055754530889843229196304829312399026141189698439294191977930409416541984481817058953818522851936673013086829405889187982168273948239106832931090692023415389622399780718066235821788770335677194453040498249676213897374516379875945631257152314864776866476953319652531266494910994911563945825468502300596803942301164483294374292214780881796604549842817983982160074059890038846661847978382612198790465523587286271674189191713790876153035557090624636395105979728991992681627648827249215846327323015484322799842592616855364308960252547029730310840455016304711286277599496176569547149368064994774883007372853659983634412565708882862576181822219299507481783869310862228748677558916376478323088172027724073168611455235157658514729001298731429502276219971188618638083953531312744289024611847495875320544380718539137517188569599188150936351922318408404422472331920169880959608418291907986881298181602289494962341232317306985822866380270206173160551040595167685958643600032281814482058717708658207732249544432422388838622071287946513026873334693822886472807485614747700882632930719330572247017399994948552926714063630750540591863174186039032728990957828948282423111956066955573796233950124452271928435165269971607476957092112093613917838015152980352241540441040648909188179866510568691639649139667727266634141667647912076749531286257899139198686408615564369937580488114202272734363732456956052806729440170919812021322410430356336128077568023126546516868465192242887798687220537455503800027427991305412431729225438875839858526467976329775063885572870445495584471769522159054226503094437198590713458900081205086464760107785538257083674187530176249264127435887899362663693148082506367418013694765085142266537649535223182009716735331250768782791220363578713300900992391233529484208519400788434178596990506984827315922021055529861965024189482323637297270373335723942610446272347738758848746953782099799630782524288733273760371626306042942545004460327667872474760759843427424212660082682743724607374049925753740248635103153598300001058819807784516073619721513525470960752041640752107567985308434221704041588569398515046559591495796252948533311227610489155065046575586425787788963731499559726647967826666897010983303827023148663182812597065153299700903953658191973845943154755116984195156844298072261347164254988473147613699389753101650491472109873156881031060178632045599216628005081932392871812705608637401677502610702293728527257316924151463133972719882233994255776808714551517882460474832366726986591016391974951455800287998631584471910345823732287899712654691877716912889905406655995379885112652859645177499650124281523481785011887221687608529999688738964730810790136848754318217922985875807979409116854880230753413010856277874617065057705268467486892473036452215595077804811097663862050713010200448828627614994075987909497309356303766908538741329481097989706920315603886955349761445121399792361222994958743253189592526859218787816032272850397628136338704318109238783838852877262324202331797073888495793957519569277179895535853853672281644878937707771006009843298558363506781107615402037618538114203568834885764346129304567211422606055340221823014074876701058739066494655347264779091647627969747336732611113921089353661686748221653720025298865086896566291535996167397456855012309093252068463437475160950622227295846296254883573230981747719508172615566261132698250554511674424246488873286730467197902668687538308613533670412627949120768891726702098374270098851937068786260965415599792496104103858299579403601361830937998086010368373590650172912332458821490019463981552951599540414650333499350553189156713889047888770606289760771685177311354646563283341793553834134410082612786056166886356649168377323610760569276531776185302889633191759549336054363536989398512924377726514967078812775292279931309084700404218700891471754339001065516079299932167464009488204288672622556430727214246494810776047829506874758493278936374220265605264716897647843703430805192683347618056635065468722215950979120953475916733903514266915280744170238985042662844188115427493476446200453966134618113152384599661938278745602198813825141234003861715000457474379911933646058342197227778605323828615016951200447742498731377584750318319198002993457497541915784056477248278947771211020752439206419997831617333373256200887159928232087771273315585204992637609072473745173006643985968060213584358283071895307080827638625540044220479097308967909678353645387778467289838441377020689588982981674163429653938868760556011939364222719005736877931065400119527451742088176116152995141257263048172829663856856635636739793561274742905903324550338432608668111924283293118886853526586553057316211052322689598383731369229143740087954605690950585818180025837323865021122274850521097655993136592990508106103605434637758675996050945457428806055181268636606039385389722302562845160295113795207828325197919268482149547905582682953028921987187723474891120518175666000402184013766506129265394198320724469256075226689874967034632533500658413722855923295820810862328466799407933609955568926805933718617364067621783127051294006453669706247177544104458444525626350917494633792341208899705424617544307916293577354078364046154824449906316939756276202904212749820653413756748647563164951336229573957501150960956917134569693845248654484214918203963933376883278866013127333224439427773504343323400281649823707724271409155385757312763689757692641751458196399455653851564517514140376213274190180755104367929769203986023519959365928744042110473021780846083031298484853175211836088274342217859967429095793926010273795994153193159917612386548296463116278652274822494997768245571795554256150928946576597696551757236737421457140620078890541408784544260082899513849588144932011479703875743389846080079894083853695515631622706682538655004425212369338839759483217737768600867027083248256761193110043885198379835419820659761639714792002522164547584032656508906833957660644981261747449235462807397629748294389921608238687778738526862881756493617067018404275186916283956847922331159595695194465487439529244447804405865830788125095610110226309373006924196094483167558220393574935743767376498685652516581924264056599068166032105777585856351350799569318750227835269650951857572322839225021320760031054359676385013274009638785289261892990612364608381629951484516545911985582412883998769156590813664008814023343162101317498732398061872442022810753327818378620956235986099513892259203275876750827257159037262354681439939689163132435524039188879648593076075848885614701967169381540149511697372752517444516562689033182063760211942984033322852526174527240680898751064963132075315370483240708356278166799033274686796492287566694955842135473063665135197854545004082407349124761088595180916432465959887759263335743977913115663148400547187099363646262106821430064928937324201181286100002105374912616155031961412345063645941802595926742493442920909222736565556230238234706230511104796734189761914326914887707938733203453229526519827417925466086594667030140763659454046597584966223993113399718262625025946091007232123806818134756723000348046776374726954413809296859468465632491039819491217940871892994653991539926134269327359677632020123410110344780507679797247667411918181815497319630038768293649893566179071245520103284467384981999997116994650340126607373515642089693641448574935539672428849172483996958743220679749660727002618944142647660188419901100434643740506767690243716952269588141443581312064509622534565917991569636497811463032374322795211547871587941255518550587323393314918949198366729812002297159855040764517901467926272144574587295391436663616910969670328956167617448220672748738672427279517781233370516089885929694929244449742283039927647682875973575810562804289331332505247093325982791228024862970706294381649958799923735842177422239380822719127958012068250698072804526226926655139110539340090929905579070560432152921842501512931874123656996375006443324772428841243049893510324708789327283658126504566258695060304266599250754223024812442169650945712987881272951763279240540288963591828640022776571030115042781356293240015700207538981395325444515866179204612013530946393928270585979205963305172803654924094677427755899864718071881293337269553960901050115487089817765820512022821411563667487136012382608587645301063564709314804688581597689719702223047255672003461673999505538471774317867416599648687864400548552791445741554098576440407075510828815239221568573697715490086357080631225050919662898605474693931848248119749875644105651063636998726471855244095539623728116411957802443269046687846944565367467582779392467358987985283074719956494545269441530803585649035002152979425264395959639891949216059973525821326308090971333798882135182256020906264445303030814896893872473013339459072078096772479411649039902819311515628497029100941364118912852913067569109714569152107789092414331771415294064543293643159480299313467290184301390344454709741355211194299878527163014534223852136818966445413435346274440792084517806009894004856839665852822773832241141158523454632425591755697655241657648394067083861779409771033661017620957244851366697436198174929304095124596333635116787588648444995857690317460733312380405026216415220720209185762386130248200634695858829692415182257216645604795773727197034836233570832908452137304300338945968773683386780976963706185458629263472491705058416712283876553306989180426849323853606600684023663288096269181912903668938658268778004032830190301904436440667615584348775863075102165728390784604393216589041686197943838347609769129542128179389356385009726461604747616844791203589236931388753287614359213805616876245245776980372410014315857979747063047413361914024296285966594977667529431661489203332992713144440506861717009818236867237090236950897186144914998991028617357833505967980565770723134452410156379005188860349238831842070897161052218343221813545840807843150720950611655378336668907154591791174896992962321986545919841148453627792638293879576762359442669069425576495689934577726834380909163467969274084562251125324661947422469816337589912302351299456949985585467164438940122457838046620014849895768928296068583810862449915131786533461842546595855779978085624468600015715829893667902142157680183594175607548826967101808612488413028785250305864418344066801835187932130638591771247065557249339220056524474359296652694334156923220115649639063037052828266971047312599183470481859226887702297996288158001295929117777352167442823841993092071910461724774376275592370454224800671179729888277239226969446555153750915351364995802574117805532174338064464234284208846441723814827554468345330085181155847624461679212943011519608188039593038250367329432139476830929470925529254103100866804655963684250937366621574709987559596204844204028107259959775032867458755248104558477860402697144173502728136309719615694242178388489177541424648012377311139104497478180917517717350270676770505726235157877435229368713495307278162342588957581152862930302379543355844237983987636848635960281083279977182017297207454837456735444046629803246575054878732368441082194049890944136933312055392249387059869784320475965194858300187071121409278554210130709586609760475258635421392340839477839442107671343519490687553690712839340959348674785837089914394578775276221959814018145497650903526553358965623908546754298140807447124396500550860759208206486581563381509445662705526809630029133453215368375040853622463805850920218105680835015050350462084504981871540051014808666273244694251604857188334494480457041254664799294731154738765105464291457438886340564382458768672687174121207599307997664718921599869873086015389070019375420254421939999279905759794891878147267043152961316959097525821051978551267522996983645425294634620349650727067361575285326962677792830876378021149526647529174451366309859783322270189277811327182728378074782689984203106372783131551727759639018152898656756587906208924815638105665502862233026458546014393042464208297022586620146263317077085346405259169086385056622755889182881249569958010723313244588241037384967512227529534963593232353820937438209167999023793841543728755926020882094770334745183311114473193120656603864036065939897904856763305922278828394405208171281242948288336552446581774821123238185892665684075792071133697934505212648076065263900856661120476258156553695611471174583906735218359700587066847742669689400146433985886004078222228654633497772104925619824553470843726893952599864605354604550624648667820024243649427480128906069218790693007840130972660574762086252746370289433191418505442698949724720074619086520872081059597903632958106183770969226211468762922596218892835162473753352545136868244570895740250550853526026733395844123115717678917079605615447634406744446172196838637308545403167549097899648694599992678520357325234849191133459748031997160896178555979012625671465947559218897452220419473449230199587793194555555429903566713088943777713686619188585980970478582359024081855649194813872367907130331794180776540116118755688816607427763191187722600438033994973981713619514502939440012152756749951223082384671878781234465956379634307196186520132465549083963213266877996291794292368065670906181908866410819472280274312584726750950098207209545227790851572904296003480790077941969860602893598122753469496825194492660091276454976521103416939210544828739603413106240017138012247921770578214381629499507736024881520933301434875178216752038428374228296103618401059452375982040345158275883106888213051852565521801616616498572007052198568375250909031168508435098247703502438010677593424535477917494140071308413747684577092849409963748701026231172240371963772882647117531040770139034724231157754785286901497065784137084434430265996610458420816524352799622950409099842268672367272256975295602304949565461758131959302642899954446000349436152505581029319389803424201423309625789231655927013419247123893026590493421713596629797036418630400603585649983448355652605110089166692878737116011114876667601453364357692418467697518184966113493204631732808565726707896936922354972015179131881296026666681832068410156717462252051231359871320101084998996211988192119257079648348991220590585863304311143042963099324494427518708624002930860588780310005159396896046247355228120959394774076266372325260353019180196271213246607358128243765521851853950583166003227603914564373351958467346011255404382487665114366137013647815498255894738349104958817704248761818934648050518264383091671828872082042622770233356023223427035591413419324264347557709313454940085110314520880176756645858606487750716722231357473394270332707496354010089227692436876379929659219247170451013425286745479135846877510706582254073796784756636984589480779158298398254690618571421247479067459884086714149237664742787465111731572636470987446898054132407177564890158105495875963685695963852979876422033342606803203491937840009825466908847672766871387158164525161596548003578534665214698592372842113728432275635918140070604782074117368530966604119951318837879744680091536112900598637347222649270483315454859827447392500164971975592912578451517736229684545166525219788984386670229777377293187895618805913016874630779109813953541825218228420675532394427159194863078497703003811904886601618669635434762930346396905899265031860858983758086257586922468984529015776779119838942550582907171802601671469858684355891815822728497894293660674334849811253318614816871112703009123731746265614280034637596476398084311417661551349309310816930169264797959301877084177391310893849127948511582298584736378132221893792436311583887386025292968276213293246363914432191469001577203635781603837841898786243936283109395199017224693361705140393035591588222555111544075223346134825222776183638165011815501942247356712204027337340396081472646739480157406406106281844362517227537683500971748308458045373718724709794018782396762939679736626169376628188805507329001478462713848888150202990854989779911289740673482971146211315127948101982223083783415747984659961492167252144239762072888282225995183554274271472646942132316449160092270462365279175993088937328493953680299419210534596095541915413004827916520341203821507326529664515131676922128761456931167507148789753886657718174248145003455248035598053409465137356368846067112151240547477117060047567389642878187729481258498193704352582950717758914305191176277789287451694288397919367387944654862317158862566004606035656667437696707745876186999790822816887128780840808003528070899004842726103178514211798076450962632420721196867995817252872657091313818570424829520110957843853952258615487062963903342788925472065503843889459002696076340980765179958799864140593292634854311769430662895424534735801633777460453614466443803311895306851035257980956969966977888247491572703557261886357079565465522499591723942686859534240035292262285728601560600007992623003711578773818407825873202481237840454869863035801635582414699983481899946914263235501140476049538946274903517910407899305050242713781988763240849045336325276065261024947015370470572319767541179385797576345171333978068535869426414140163785307512296531322466009901708185461634054221468681139886431356370278983003922697733531205056849175466125618970001117943956720733588590644346961978011277511334339120354164480743959541661289654422309439645076631678958695468198393930037218264127641970196548095905645585985303403690357216056231919993660917123070886818847926777405322242804806709587021352009150343552200963546433899739280909764356108057918616941573698554610991087047805102069557797218725789704696872640920583328977484674495085328713159385498763564424466450084913302673200254023676177020996865253539873445547057104180109496295555238821697452871215913030424275162741980166087118297088586021569225067982508203840239752018838751077630662135109476272325069842161466776479021502093436116232087903562338031179695505903392034267059619378085488389711108603483526168940702776389300139890997545028569701065369546179559316046845424140447818857563623811363117942335729353056803396099264993518226271622820465534066310041975503631586236709856988271151513042564545052867170319856433631313076854415941227963364076248994175109191881857664887603755572408442355664374662256878667470468971747352796908142734004839461795994769652934515161791764695426483739142094922518918126184114996972562520548373880670953221358302617724503714903419335223389139280239669335589261290043091354004911725766533004845387760628375698008156357781728225924657266939581869052641508745483541023230040095663160930250391829905892450499875903233932066298529379954194570848819915267121122440320574212362965131712697100516225702366969820061322322310212501684197976242470085637396954937842208372554940519028972896701196948837406381535801068706992582507416363305565323781005041555944318351280011533651823810207539229486581530193233937917503247073353659241786160597312374287970726438892107551835056055185307356488101586773431533353059502650607476368877980878659432524610229371720561220697303829301274641268027265654519684405650482414201956060675521996050445049169268806251370393281040212246499957642965758207267062168501874656993745311172013630242836454052610452894296045891323489716108174460691773756124795995685121420469354989413701730634590059579483936744503573111029918952745789306494249422690026373548589988935592571072686146500363585492932796293802104496336049960008004054600493389235526867176429211006607050661867523901141868503555402765142567677227089214888895537104484012434060560476844454172144471092939453365412239191488625316467094306521537817467054690660488704266784595216243798324014835987375724155805634481896020393322048990380411205497246329299975535703323651972000566246162905447960704837754040086227657751902436144052077743591948366771172584005110406025023635255518277799986470269991586566048374472304296110564018628307883121866269686529469126749767151061898082647254252890060244783238542727750482005523983769632783745380410409498174344813065746641429988889222440507065339682551361738808076754529352511559402201950654661613978620557435178677570086906013851788257451103662792658445614711171967614756686006014708137568789247359501153737124377998734018591088979554200177521635893278798842747129799827114326743227206212042998196319258884678372143767870044968609045634164389330905241258447791215909409636975852203115912081164554952936959557174993624435186081342898711658726065657355130258761078480485346824076308537316486525226342977466575040251685973806422233610108327376312839123911296211624876745750043681561410114840219767598673414835481121159866460649305894703341032377185913072954756169477957051302649029939530767779654302885617248444675901060835964664432896732809088247620832572873783665581189091298647409158223975038017690010790576368558353012809782078073326501528248875538780181875109807694963650005953409946676524463486326713878700944897277794019853847679647596245780604581683416291942089216790945612183164441974668668389332689513944746775369688300803697711608288301427500526115818935424999165044542914328334442862270403985939524243806016746764574010158622168460886279433419920945239046900599413909533405027495954510076934282921440746827338338240764297446425786768886423804095030421619784176734931959500644424604647722834275845014642072225788177979083497328299849236899806824308550967142538197871678058726768029003383119949105884698680257972873775466412884957921961344262063392963957552624853898376030044713299434005831873957541845950107794527712167297003974351818687998263303879775007369456609203560175910992123600837279272110452315986621355920338042712194531138766190595195218889761013010921033805735286910666797755601784733226293241319433303653886944816609476159684106506047484138455026551250639994934974968266166441066551802139031058950942596932934888181984665813528399014893630327104886103027153448352583690071146754785633122509245092346847461306563238553435988563869996601567186058612474588988257925983049463313311362425041150367526605943976465359264532327633223319860751018547634193129972821972812936917765373540523212220572346832475001299207035100665762384727402360384697885995722525908452266062691863282211458075828199250172308507115002122057643943620707427834155896022955746495351914508567512874929794056708656539849871744412488817334535608559370237478935102349426821653449679328500582218159689050573591689721439132211505274663264207286280411226782559084572351779478669479383479157704906403912293550330704112102924516835910335986520232091882997202408484458254568473159485768244652855633966093047981447838235749952390643296960640427594595079815050322109469784243288068591108941898937896157550820516744316407054439807581169313640269129171642991630385965316300822806706949491156026615212738584517369434059484144775903620822556479341552719416868004921836995551781485477483975205304202788655061495348481057278030041416983749059686164017934133669334073734527178444912947843844310462935739939040902980148998649493484704163930702722474652200796312165756044622687359632494487164209199768090613711885941521436660552698591646263533244455996626272840802559242054257589343986404452836081389978002591330301930935822517563467904835451068538604861286693116602588843283003985569850855644133262542316362913236285471166779905984501926940735617488269912585186782940707967751150931013151606826822434837858579588080699722769925602037462882249678118817608764564913781718121890224717594255690193502795232086999862955596579902791443423675876662298314474457760598273183265393271754842407551406155089120484275930345732618374685191590684516417544141463803609413979685388345041685892464127168632344682258918568629454602204920565917797131358285154200441964635331344205736343107130843155119302950777358076785333838806043196777195504876131349890900191839285347806420781619856089677472601439174996470335774115534142316125620869833514415443255666118206765463782722520773025214000381086330594392760644961501035515195682940796852615119190973114314917635464466963432290898209231476931916894038051233876504421677622559098506844870085773819681939574597939166891187752003975484894753853984731539026977101786567209028067996274932072141402973814580750409956165906615444836653859373403172313481336554123086773063182166745969842431477634140714093274019482690564864909354783091966881846894497861616837624118800499595576365339220832942263909490543421202423024269128152029970981965109215448889818066900033607371471091484162408323949021267341285654658027260921634828085880748855012536477024921745418397124187124108421569669597589748265135350443798203083965759997554814365041805360513120861800406348121131180290885645073485818852991283396147525216402164179558486194788414415783743067748760119420846998469217666130660970854460378980962705892479414613607001351406000098067552937395225099086837806617648871141489685093851014973462906463980638735536838024822961970953107678125915303701582241021323554465039653412311688557103292746579314045489850780760512896217951120032656796562348385200700994523791869572917160992023842683603310877353834324297886707684630403325940847966101796013645441455749556065367619782569899289462263894274594610021451010623547744567867548842470976943316566036594785131062843208112125111647545970759513170677192499928085724418678673056455911049190697560267009707943927062464783913772586246445549797402750511581692295416671886194831700328217545033892173871635914930862586695047048097266047816143287250174729268836963059122765954692725163394231704179065872375528280600114914144140325473525153569834996837500424912583198617305817914463408643646517014384505600146198789577900341058993958911473311427734011816276991607356658068837502801835671154187418527402547729677386094377127429155823968421254103189433944699588705962289843198226883721319870786721562042419048560799358298042900208606457935791525970125373231053163710610926563166168503587571334680640307679940444060789784545099150587498693813358098925574155766622168159445990260477765693393931216548249783317133410958497891874254877830512545721745065724343551881594387753854615182429238590268973411229929684411961965320468358857634687757780554977983897659194982931496779168443842634362136985362802597385703491909556038231399171757910567010882026918478509552358527575926894117897413809526891406292117233997044116162427192030976316146645584489560353375212279875372829341702420706905059232617908642659322837905012854473317758315343848132091117419463412138432286513401793430140727156818872732284255364226988614696519353160648231191689157480230735467460101311459723706346551419057523081807153666054778103118230543782434755626986526098929094483275413545332730921866673059920770211873754030210312471250231435904167477397929347169697503355720613802110189216451282476075054123773831714851634463699647740038350278884404155447604325320758536225050527508806761345940926740697502047932552889701113035082680958516000417523028203574885929493253893036111848604561009477357170470800040901672145007440527035872960845507272144648558151349878080608213521297937327044332259010629049066537039666180672782406562030489978637783122304282099018084037969543771874184021716194587044640102262733599818158593365452326877598181927503979385709516221261073350423776989468372171875788041055260048494601649203545440874627538520732293270370348086757836354731318063340788128602694851019869015427702324096815909854656618366149329189232805312897454049507998283066461027269467832369111443082564184517213405909467946847373074046195707787671207246870191107888630055547642081880771811961841198339685742526988316544528516443706474360152793492435649325764903595724384550659996092411284327238971798826825420250457224063981923009556383103882365498074891808266246695708504307674001778446545911933427991389597296710703161405895417906583737939519497303263305349199089276731952401302438767455163591284266158875763373008347740269358406294860128411305206532833977935893610781186355145975692621671550684936292327964473984063457314475231823708556136851652853747956348776151214230958523750381025030952742157322061462083953085032140689572374844879111418175913457973488676586418509863128339777194791902745154120250992525875815799668273496844816356224868028778736605417341699916376566538581095634919642246410021617453036166646767784493191687688037604342455682325406325888890510255125872387020094507459965682207682022372401240208209428136831620711042665728552343755203994535506870498582151881444798946681763590435724767487387031313867273666423769572620346130517620869612270834356271293322754244814441539762720328603234137383411832281787718959075612047446860928844366507065326401405937431561702125012152897829458463913919521671255415911203662617446988989738953558976129096935643101760553413097616200778317663793839172991822217771699855527631876415362159050295660065405609429126673910583258757789975918507663262661937192596555297915514056319132096459039262421449491795986762741875170656564452685195881296548342882035648409991274621458114987659408744652471538986596487203211007939581684178653887617750304241325568183764362430899022510058918663252868040989769526515207654193805642961777503783842477034169745357141688754466614766850847279648458465706227774334151119299751212043310405492298062443061970780124885833964010844208954972678536603328348370824846333642251242034255438554747923490542487369732412155062977695049576940322598840527323833838700773547494206625292385568754759528367361896950503254975105475685582904264280288223133583017113458619750197844202320417857560471058859095762346770565043077877585358715489938500855188951167005590631464963846456224224185199851310612230676179904894428488317825175065443465384251332713002302404383062472621983061047601858907494381215097083764992948968483123978975240059120343706965306631739923470616819681720263900462328085534076013964292364420123047678226703833623258852546762685363678261507534053159337313071457898910856926960637345974288402225005290155209988840428093453917218475809170375130608136420984855729076695828421855736099971976403540497075703445820150158257028881134452044496425524101031249676626355293181434949379326010482772434184706399428953446222200412993451422074481419033378931555068522756309684544363912187670081612847742123338998836148123820790426352672021614274850622618875836948419117247948330004158287340051234018949209028767417865440211256360975020769150161031730685245191308694915945691392796245928108995407625899546354852238544875799414709306507726768451250588734995781768905528225674785956202175853620241580733897536259435693193627514202350752121696191367212237935483432189757522193749511566098362743671674688760399745687626778025082784567540835581457350675069310164155301861754793662772940834922234871893773711933435647383144721809411353838943428834690549484721567494897166357418853498986877125372894967217015374967204028920038091977769053259435538039541030192310486758936937681983639059267156816018726405672201424250916680655520569294405829809380194330572029684666000783764140181555451438925045231496109100442498254576145514105068210088918833396704587811847052148663943918028156428711765630865258717067101332225766604292634769246899873003825020947509408732193929797277222165184482521437363062661500906273381471560628172412951169410227490796850084604423363335120981329924781063830188851178987520111870089499394340148384509314528032587331166957402516900180722639539584778356843138684511354462605623290430800164514616372329597678259608739620388021911696732268061066659942820250031122396075044597321369468855274375199846159302264318400938016037620588591530231147507543217941495241386152185844100046721746115786282155320754268546341641223324502248355197457494830997598207476203598458553861178776117091611842846234733965619562624561265957583201139977697669929410552398382522334054848782257697172610571825777899998427914386750694009828253560700450889999265086650563240602915052527087831535674185366150249160148918863598641716495484203286320898579528762221024459958538098289846571759564070795435884464842786147216271816063827634546770146827533067757844957716681596836933120493555645785156347445647222403411023455203189943146677812758700717760229128727812153884127522795145673229093514770123493141779551529255184199489045458062174316770001872914625555492636719407242868382751868497504021067531822862653277886758587589757047309159134696241766295187506504909034934147878753083391320447372838935587328545023092096517984444772427884316880733145759978893644180777361910085676286644684416438176921333632559039347700334317377649647362575842415788444300889485233208587871526500050691126334424439657315439126316591822350061381939077791838825713002518266673724016276852190592182269900410288377422805113108056052078907550382208141733415258597812578309938624405176604685506009627970458408524914433496782639748863395427606256644086652031456110728562669475549760734155109018382873267654318810455999039256211945285722953045128257626090844853207330695487986853042894503115900609655192019442937099129267652651977565699367821565176327731073958217689669658630030733138193569356262742174056971132096329824880338482075266443578876440829041259871534663933312714557492180719422508250711103454113839273446889930330260209356542595437891137025608121320817176226975909921549286373510996971026838929130590866671079852674170699633224731776579391451674911507086898977151541247764372088469142117156032678679940233613284385816900925956540836728033788083226282383672243265239126834606480895610842067312646227930911047885276570156697783068404501043891550072638396555048957337863001594535232806742782621794145876980810954905584692695563687777938491604119576120571209769528050747473987152244806218741352587051914357190035697197795186134880988579157805497669972829949362856550182141256796691879327842898697684622775611319553259270105727628576932101618240207318340848714593413824574814675844986115398865478026573052647433215788443367515314116147090038675905606603317449184506126408365301127697010801326956627169221791523627373515092628882496998772443154350299339932305487039409021519989283745971657390840365529747454139483316354125955313903699327655417686394191739090020078490755799608064040240393400227427229576938496287941375072020260615285464160762321102731299468042845234326145442354980826236677599043671010624440478921749266099575746732816121912517035877384263698892251137590990640323042559621426395288847886272073948955784597303877278159279083019503170457488052751227697077672823869828775825937610838545322184758148651835644783649503364030188741468964075377843751228706255233819394714961873053299615055397265476626040539980121295112636823006489279880905663785698552861168245756804575540748564845952644012608180583127216136244365248134139163794144634730543828298805025016320843043179771580000031916599487025801898709570317981015727124299900903127147591663397039087130900010186740175386236999607292783050152028659217851119940002202924826116539988995436569081341972909425856243756203895973059855077686803625588713295629021809123615711745739465030992733939089154027056430027259124742663501578662046901175399606269906910873036000992726558957515298129698414631510780151126516158262638012046330758897950105597007380136612714822066681481200948629085685340309039868950439524351553860343508410242603852342770736776818255307504324948016173005780592122840402228140884311230979332474576121961936090079208295450970236446427689669746975228593895922853876651108081759069742697952003307911971690098257679932704885820161802206692332435594684336505386467358120739976476215800855159587398020355754628711131642521099117403060325315182148886291172758840023978951163415136112106165483391817639818075222987791827830523326610124752434358539772955456149275999510009618441807305035616860225699526465970327029136587005140271628593504058197496898406640182337888682327645408505077457834745144933505025988027575445816623315328396381426319399594137328294358629930054103650728011683767852227914918513853791943180631475301615532353678630907546983539309426311532033712122821426536039340307806608698699124725595897422943062923303476104606328842584959924540855333705753675672097955939164644428883631061799952688028052073786551356890661309140667604502898274696593013959112229625236267424899217682051159162592272609923363190673285646462988591597232879160105542412876241093947269235916336623925095577318762005354573051229383960130476281764192144605177896157420509687932433184709279461807436762756145910129371843454601814504106207222599907287247448767459326118548149394922954203855890675451694410246817189897142031287294121173133410592687699363167276774018600581131413817362911298442120627982641069904888488513655991138443003150096600074997788642628078379083290204596625706369507631399951107430448637806643282184302823362287641288629359357830149411550279951906482457138006871585116268508146194149008954906372355542243172808403400419130343162150133835831815377990630777933707834195839007152363375974961473949116309436436425591373870808332995852610554224020193458895839987876535602712847917018737489026266196023324061786563755928949980607649658199000158590371172110026743376166840495420107735819117092822840294832834445379905491579791867026918553423690746321851539896754909723582169507992605314492112024649849600536930125687740645491776281297325278262094584479450871322393052928491601587956584106679658706436811624733987637330356167526424726686319774762229270706975477728367046885195187929425571030500102230198347832637286045624647118073665160234667154368688040606601548490187399388331028172331758628719177572131748900095655408202637279800257722693625197257649541986165882149409049141337464714220749961792860059051138559868261790059381357330969281268002243029291200168077828021778078959944888068609163923116361324751374279937188245395419076451351425586294626515993972166209518940874093715920822569843128928971400185321069449788197470943831569399645290830133744436786872466919763772149859259543307506266525046525265621017822730197531004287306277729485858315051411078786108783742457152918146691279138245357714414146619797241124508714102177138541679373327577219616067048599045357831044004448713385258930428638833753312791397227068545977868543874899754492135774101921727278195792329055922959196471251833874405116947106585491905108986777511061672750571598494054119711669170933998913143164975293139542919533994425509293577260797415213802299922101112189979205175577073074795395048959127230344601147313421949906045194075139764494779213443821780788592893112236023312057099323697677580334060319509918965377144452276225400433041387535406835700711539969590302500829970429753124789392137970126575555695939051180379839001625750683305637046070897595855472723197288278811173723966983384721159475042795820608390963282620830936706323770793370528975534716173771738635978064002426244448210294773392896629895175478975465079145845247618691862834443031063608662251279775401800173647373796630594990068687576939904517784320974887535104405528246436958061135014934014293973512105734179152861547966613023560518322225609101030230730684693856970048894045116155492772029437986224167680586932209178902486787482341944629510650508174593481415019087964439175109270543742252351897822491512371871614131467282093307386121193373159737368122885218280428272860105926851223412463388220916475660514471715326737384868499405301221698466093190332397253717441312611129865670364282631114601047844155987307307953669638066420878535397037434612346766646088543155000089919001676730138630820946218535933783656625758454732714739488551614961114004346899681877831136200809871446003353897586259675743750829353845811464521146707022192131540110258086477968054279265554575100934619342862869970379278804437457352319318314435513739000945465920900161796450283727586388033877246991162327235419077831277852287410343030415642346839298292476159659394423331946341850529195490180739482965548325158279393018861990265346806692787118775137014145218432598934057872019879834590560986872280396108309589565722269656947489376758771171599138294545720829789204495143816278401431863343394611057054747292927150151492087106859769175224170545854814523336623869381293382259218371364395860041670903544018437775465982100580563377685690828945830874830408538765145857823067942253184485708194093264581080930980894346051976567271578722238209168937781099561205665975466816043057174471654341745460420343127960675810044273782465330104671489501345700668606133906855556373852837468752993346569667215296572474031313193587342098104457048783769597325252977289247225785295548969395105518144058284213406303182280946485968760457957698112020130277358933508662820904817139960639721818977158673346352691055443251577510276433739032841718069254449470555668250823909038514596170949648850674114736866729027184173748799577843535914789293545600593816694410050061110838018538996323115688582883485403509773256372393461930179854870409338694217624537312224362182232666245197431181186377545652424737298511737549019734487831722837516354392564504467743595574016184718027109151794283888352418344181579300156619990470311544268662454659229635187935572435990866987861193664231120162768123894163173470121498095892678616746883105656571349952172225756392031558699038334559351668630188467690170473360157005527101052451040021636097815441185231747735016843503204176234532948694688553831476136085328592148397820562799518875893214075688196409145976848914707291472427607701680101074012137929728413387039112551943138919291718452864204470156566403869898904085046682456890861325353470025836036198692391010048565892660963030279441376878119444343065092838111646020281651865612454085347447671067440914627444934134714281134703711627274784755003636434377444991218075069908191246549314379652745592277602542835821241579688255514213626819799942935221809444695342606237588779495443916820618698480656860012873016285466847540065319836450462431815096167790837968352472760735819175112682311511484160624547598946054249547790902248994183404381867628458725550754193224930958704070106801873372064611336555407263641206263642513641124526314882534976696307484918111978701712220703375337577352433076099834375161354779722877740087542362794008374575359466728472177333500384847937660328504613606067578523245184911020032118354756875270905041151205543836029411355461099906959822855329963768516271469907488405723239918139184628041144186975264458448664607129471716348828158935208565557476357706575128141328500143777573843363035911017683071017166889229162984332632053570254955595830564559170237343169391043316320768962649227890176492709087836357198362250850117738335047038969769101352873492335826286622766603382803035953478679287237132490062105017625537643755494793515841495676990279795874576881932902699804387773420512936398418579608022425542127202324455065525064400163632019761405361459522969298969942994120939077418377340866786862757521429952430615007003799897808489059893216952937558052802727842487086746881854720511238448416197971090215465605091401697823964703913729020178188957171282879803504980563155103382039704336544921639626293997852596601195243219349596665939652709395437785061741920011781884201504625103826968929746111257412997683949164108063288038359306035467949482103989507189628483071472316704422802364075608363762105150513400092048829151054997272865806940085406231030838146996715968277893505023852192593460963726605555281238652303889939828218464947977465937201652559144933473358283242449235545592782828762691118487746859424473583720509735833032636244984774067872936971127533385070564713510604739320626014000262393925513766554020251711526768076241303952889997878866485573159906796974346060643483104845507350504608642164840807904729351974187108126957046822530513430940638084919154901176577820309618198311324813358670882429400748907810871052478782855566243845710957129434599836638504213480752972808725580908928890762658038100975724542448669193377841693943996926080461052840722876949396201745220945637270224655391039429128753837998827618874369057900350177591558045557295144791102686294020582706586487623744829211581956382110179620240687116020716940877997072605250309091598823825796096497387932254768300687304514941261359919714936141573642968612300548353940158369284443426907921203280600331201400306014505904032199194128551342946242143494178176445679945766108900458089981554313091329247763251586548360443113067906454351871295343040000265238560342580660726025466286513827835392611334842020826926583137851695093386488808880078588516093666643387824009548407968424645682407698025094184155809790205277345199906646263130911774294796146711408011001338710943670737431971506554393549315360433537383826109198623202270056619303667250709974633881375304255417821091280594034902431650513508954851046480167444268554542457351558132379001074563887872244738853512564683512695677168664625567790628119635309351504831082842358034474111238065955513189187857834150234580398192525004956034945935016761766006063413065840680908105800291651088920483909103857862366472864422704247352859031300712840287053629011702085793849533442932800426202692438740310269882221315972645844754432766356673477014475441661858465740430811778387533912672462018336617485276058871941752953624522953204123100847471911813440356730538788075692642357889590913062272564534193274948474774446417377172941241562517062422940239558124643907288856209966947475142018734388074493962294335212335186067575120318258459049394156193433657090489860071292174640791416339551984050332626439071838903467734132364262664814477970159119473451942260262130584774697286600917814745731997352169112164254715408083350462051167286155039475888200753548153894062410962853344655600948971865035365846751835425851959692089980703012101528597475260537654449139211044608574805780550140043190863259537288443941553761789905341552405808368886131108557844183102844503903884324639300972867351923505527264558639311143726388356538877208191198433096965647653795336995979935273992709705174951575074389993225387797792048244487988256999809775561903094427957404978978002013747344335133268849688585746806461698267350831516599649224829199642905698520511175212612469847757201947296551714668055721381369206342156109315607365729716850979690662419565220227007370599650924951540070869046798782638201420144315329399174243567066922650433041153660631089603790615520322524461176965968607364283371947702227251858981899408450698870770053127547053283761729722084008712105727278790701320128925481110213183799722593522031515042935953591850622776914873115357190137299355662622933921408745943833847292163100120244149059604188373197324712536991283445593343396043485775259608584966726846731995723528785191338071820533613528962154122756518946570768677288284294952399042356805762581900754377787943797727795935968432889468674583518954738668888535148225369514362103822157187411827228417531452690953091433098946743769877384272337914642509076436731934068683382971387498471947671161995068014365918386362266031328312315990857888535564914703036598020493630948087117551370616995732753539882275232741950751420578578957127306441427482442894425284024635036645327146088683603715997126026962865154633754289213677392104213409319357709559344394822245827959989840257868308867138349491278021615067014264657467777933373147699772495646972787944197346581113332967276326159060661253476045394061790402840234807070701799428734377250465092798820598505004631484645278504443004282464088784648177365061862366382330101359419819430045359345663156842881276353521050281851849179648152280419538612725124899177776716201419844547581078379926101661218564429225269135954059971781709102180765256078279689411900995698081374547715499120370233814594936462473903414511737782935182150672850979076304788919761299875400648295296465935724734868843262970827877980251745457625835817088433365003066531413036624144311779845365608813987874406131560367047148262486973866330330126485321059943912746320171951744626999413933765570891966715296645830807375980066410222949637115053217361535225325254420179234630954753667077907696085605058270187485686689560518686371698456779129801893430045749591734618927956792056847685067637497090890378283673778207004572629349843881107654775751371183668130228454586041200949759178165650363101103256745611288367145298605383003764654858426605724865886588797606449097467384304730274185324160352310142030437850370971381045591857790052698717940072570401158050255731373527806636945093442318871853973095866464690823191720259727491603903757117936912622238830576332543292182027648592886274935145164080842791563498384785404317391148103655622972589411212236471750492640163549078296160790036616773268906161828517584394565998601689685432275214507403602061729238729399958769452383625956751437977427893109898805307158611524186539239154113092346161731618384621826225964597278217280768891474220810014777464719291970300273387427843532959605221285169157944184438961178798241226033399751905496529255835447079817117933420355419604832866662273654473525837473849542600952350395994449818225224265070567494268395486394611932672384622934384767677944718344736628433080236851417172767763077234749822344241882644212252357092531742021473944324000314728945289020775126654365042543669242137900891121242309661763101387165934657315087669413270570879270859020761088673478506095843251705213450335002897390023576807828426387855251407590915287858726759791288252505097682413571985466755160139382250340632245439833488363725490072735553499415765078229201942335306884276673130752916240532575957239175823955888440829730346344653352055106507059712685228296954494522473882797037676367825493867223982161231014398224851908034053110117482575782807753644675517433970630780070463892530621481181570629681191589099513666988531871636251229581551456247693690288327273081830449773248463722329915662662896290603101018994508235905342809524756999826260220025658669043267051781898651096754099354461417395126003763953825984598518137078273580174162209269668236265715746997504698990366701848381617615941183000772872741691676612772268188615456468834347521214016219294705850639498357997387619255133660874382625143185545435997345227885139717084924489031953682105895256640782058948711596237917967430598858783510251244019338104478792784496348062125047762522203800682651506258057067776372855745146703534279650897466674897443247498966994658258161351178794155714776961577507289078952715195279842013164706054694045093271329049419926818735244064453978718060154477718473545108811942145295674483274725874009458982556331598141487800755993994019558608553785834962540840887488986888162517082087057739792052573906620991020603681322556703256796731801265907153784565101517259681598346130994036812352970678032126057136907135012294006490761827529979197523180210070044046469987711388618341763972276687668340957448093330603123739800407718394912922640886409681253364902735921556513255519069514321748927250676676870239582864984014839715478963971486022497726875739311657231782864407465254325637304884017082664939255988510173982119610763494734874988562620819739280227162956397004125888294520425140069021075788091736725560307873042301158286944925222130731865287494959911042639142499298119078075683543466842829405566832252918844202395719882342860892127329729694435339963601429819508337210640747666950895314428791237966877339914803538620076772547980277457024119603390653315330426644840731108181956598274319229132355409251854256742954321209298039059761670855312829132258922453239189501560371135638770396775526843958739485928655682497126147070148311636407625505062002173710800208305367506534634543243037505881824818898939392714026228518477776495304227948289845525407289696233106494993421345920993196614868814556332627242110698830513641230668821304825179859139585391384393461990356615119767531195588606684851522931830051924371697881253965990633077970162927949483561345823808996505033987270111853295210508189895751530650139226689121825130497161868795240348506361661433580430421202998551019709978810405602847964279192945220757791677749930733622487157901654350989294538691729334072796575210155749754924075032077396637107619382134433509844189638995019973128812815221464198366698311823659509195293903507558664216085179821486338710931745258514697041937805459313249254724650305210191143502631038634805192883661223054434652444684615362495212901422385564300603244333746479239990939774924375748257058423914092362913255497230466924272589625119414495800953336925264552092678646963732113027078744415771851864601555115650701648731350991644540576960188451947464766722495210384472780383711268548222838472252435338781876729805805916191361838955943578229736057772352148984068603918619617242169879600210978685302261045598803449314075237177173724738757764791268347005345917887964098034945691167181757074031546758005626316553642982930021285124840879508741968645582299757890851026012597686607332794293164845142701933515725401712195789793947800891304924094442049404039709482138905155318980387000937544069007794020298403677662187092740769898441275827184594680395348360109743590504736731418104064925930105141463162352660885383633135229198368753987664754696589895300384162026569752312854659502467747837668077898052928199134218920461345119214766846190916480576307799365229378584743384892060229329366683144671200649344722129894214470473002556751171499671544962011089760132894602597980333132458850922256106237157175045143015851080544092629448402950945066637119566659698569988298707170240857807091579404687791383095762335358011076211625529969461487179306616118093225376446386922002198487502202461130078077257037695646285806078491301508831753353225948848781139886989257178425558743454444751804880659082370188451857171039237954688965023656565424060254481670539255990701920163931862188965768163861279836182486043543256898795981791124906270370147844261757654086799568975980502960453798950112452558818165045033501046579693002767512372546219475714804175836167354685290126307841627576818903703599030717001182680249027207066787984017771653008719661687676448359566211929328693277483515165660203648480005241700982775840232606777407902161095274911309495113634049114501581034645610064827645953608569006414586489108925702434339315558272309938907001845532849850241318227138739833938238709319047574438601824608139826449870760807558582433754183845557388009380606122905541807684668910122685560498487203884823400761470758140324558911541512909975684142374123092780918659141358671222406013049303852574316210660806013320769583593841689316969196290672088569774484653197576469831365643848008626972320408263785893803682161989263409279809885437902634125881959978737337865772855335391927285987715558689405096931593429682147892821583924997907067733600483604541375709091188627371837258141680473006698594364391753481136815870431873532342597979216013018231923987930536447510140890895575967486001835123921310217298870382254127406575454336367616871472153827199961728187139205583472252975913288933179572637702139965637384056944326554489692444283878282539879892670523514372473526207345042664132996842686983028262149207420932068680594409677073727986132706171424457115277492869424896766511432853913547197616317751420227187708832510415248185586621135044202120390542431090616613137650943994536953019749943621540160924639576161174137517762186953999087005968113802025046928238177425546609782064516931224212129083307664103115623618434841873002038866906220909716519778608847799739130984254364903231068220268653417501199652048958975230931542451506383371615377063194677206585375563732844994863521843797374954797905329247426836738000281756919639905763285121123301675275295668552796012609875641820510326203404455945960095287790672324901601952012207614828807384244531187762742200663988108526230688196573535506264265811798413901444610814495807443207314864851693984197781175795279770375485301004895865340745578329663319571549812143254504404969871943994695999052253929415936443799852474226344511338902765717059466914576230885232131183958303509107911652253006569950685148226220607352171210447643171057834369305232498313500836551058787839001405557408640564713261642391470182386224662829019391724297780208199002122854709487668686623675611833561863395189317471283264459347504338489446628990005682498711199949272797615502895629447265841872935228323125408004464819013480595696381358632537469650576701646249408741927905474885427398228326554875038062191384113734389612523055680102119276079640392881338919048590640038023341683684156898245129757150965365106502979915636847150969351302835204491914453083063780068981646543448942035706312974883844878625880160228817243031339968533191342874756954210563721477683946381723770265020274248225416333079701455009303993352762856316834414746913834500850813935845371448185632231462355706144805475162387678156151422335775278433347309676145217926997018172914267293396601254961025761854612453159176214066289134481036949703832545752886406843414036761905797460036630404587403694338231692664393985908994300262622084781545224496580779974859633168234424035099786843652652382646052967419618023791760920676258913292412695916285445468554302857260699690662260191930200739441138013852112389357257516882951271694266536420346702599081460772212023040255611428620753158136922769799259163889365445640857953755732332050972221789700992945565141416513065720131426919361580794819410189988764815068512895875344890818843262531585814518519273554334501857834006309888713945940232594482233154383873296329025698968291699596915270788600282041978726480262715212766934616802851688061435109152303767155014047589895639312931651946471492881568741319215148700113341972043029752826181012848448991572027206677315919591583844206479427095990242488025317592845758290017190866819677940556228130573166729289682446351524067005602488432921186328209799640572455843295471721645076656327963680578013721890386680019638931368605754413148929293839584834056860396635366347641982222582274405660401028106796333169078072970153987757023149383914586360347034544135739492880067000854765152823868240914143560136783428164661342130888851079829109223578552266978000222269440052395718258449873089404415910616581663742933369471806865536790644820407365679424320391424489890284525390684733591218944170483568754082173943414973855056012566818059174120679659833231522827300956580244980153971520357063471876454465232406773260261095785320858718962318707627821879680357866531959667122335289080278651656237634056773440784888077692700413675910055035612672986384643627854693012813882111972497495424139343085130101443023850961523285248822030826414477970868165428144396120426663333897491680574524051367980330374550592884510404037824252010627602688263885354015663394008817732440193277860316493819243687290323583743980755168296327078141283187670265709298521836881523268636029359890103441250428154436560520194835470588309655756833731026245749570995667717728972676342618548367593768824974253450820254749500245224425212459815054941261506166821690525120943035355300904341019584494455028996238107326034508377374604747161637009877878168910243818705709180103055328169366544138483814893703687356369785033336644977299470284358532733489432134846103284151630633191670661148063909658482958084159068523623896115729699417609023140882513317403949483365416246008478314505577339620938515938436666255349762999754400525488342688855866377228233312065078938142451290803586609777882873009280054148554896728724647727171769129684996805261678179462555300998904517073400893102111916631121783995627814218003554771656392050885164152655676784976822325464407016855999306650203115773200355281565129988191200714058350406719050497914943015647178514866567990319577819239747739276749443202345312051192112728186482244293600960741733366481458384165894398745749008370885100492401082779067878670165773548612054163260898249507653732991932070870882970251391656337008562528638749871538208080813903830436691368283014852198463141357980357320024969232147182660877340598300996067774139001810232446666896001006310093079156429239004963935056122506886842617124221218773497397286231337006346833587166643474511569233019402346730747483524057794495140390273769134758207790879731247534536933886049400262117333996618523404719351724875711032247265249899450095161245778521728374550019011324506824775267247925607558620918808428212314590987386583463159613489695284398894659452779103336196588220904934481637293302938817513895255232480138238507021301536074410176887236126717357342868977623576165901534823193807516500545628348412368585932478946160426033727220001551850229844323022307872960181808046924626132177138255728773589615276296854124329039808021368578916273011209712059600363418203229500113013033772443128555829455240608406705659660024501072760620143433882532530652493719973171974429511007274704642033708602779155620010970586683137332782760370600235889754406064730265069471353791988372334929434831265343477549655125436661715363273320748868121602569823796679227033030935256019530006994866947372101392640902903153411719000150161791628503963949547431553097127566597623507943665827912946659087388736264595215950048525191588542402800339751339800991239678133136984103142894034892321893272642494014607465054248897377362841934231802177359519799007282546887203479651524103115661846296024585981512380366683506038071537328205836957963199111301684583527326497773179069705194603036195041155418287550901177380870238808341381095879408748590088388852591075239080940650095523380424345664177419042061868149826496269861943244615487229449132033048912129156981660568041098002384872998012117867641296959151688176092480281011317372526260047658982797911222742203026138800062358642542480355155061577619932536646918101876289067923800217779666349185198068809787578051138869464604824534751990688359098587087809428524886940595755644145180442877445757387580035671993954228567315514551013650705555527918241221147656506282634803271307303281754991648031818893562812818541729268642985933594227793621213458307813480775233019084943429696182915119831524947322951871019473946731715846140091988518598025011980250670169589934823504054360551873242976916649260372089279098989570979643567213144323110651217512328556421008235823432691461737920554473495138877184103538962289500541717192343973384000015012047500649530520691756996705596501898911255445652923373862788026245065060635322199304324943596232321813492607561563214572890024187071596383541577104080890709896847955130779476989599756870901872487773670869244025896964115104609063871717733825110113224320576092506338774852009213046516976930771377308583764785926933757696495327321838551344858608706045115963862445508750575316607858287881706903771657119998710469853589466931533275151784358737333057571462315087057816907683167182278780144575263684903843925685383923211502729010716760228894246853007286907100967284633632046575793752523889080208723725478049045338543595841500155571743823815639948447027271239465795812293838281297551709530030375728989793272159839645629730531991077825279305277552684281789000338645955550450984690356238235475384685849919252640050078687482484744326202050308778540026361405373301677868445918470378329540808816735310945649108278634552848889002311631973582933948119206932091602493695994291296348942182840464315172051997223020398828356244275515756065754423012401752322697187443954788095753781176036661260510619370772794029416228772836806117290342500872281725597180468240983815354634102785572954668281637314669637518501296401711135269068688848048339327068849374853474844173847060959436657320776419937177432502654000474732264355531814909594810237736672833850526242161911401633349280197454466077593195770746760004075056940878460852420241340501402549886587760843892657598776615053731398643047900368367038771701816174512956397043226745235969064560616433558390797531269717686617719461299799418906221438883804945355055172635448312562392755559665613123565329689426376603649242494812978124008714875750625852906809939003704683946304684632498438409977688804874165994879279852300590551994645310554885631837025791190820333275583292672788127509865096996103946764519572407197246287300768443504730155771853874991350584372599469704424297412172188185900131803512676073589431599050342910180665256986077009938872417560444197409947056735753370267450095725610634712342725849419842481401673487096351614476790254769404905149332557797955967313767440368144604528402171624574138181568072548819828779862081259245464564396230340513076160201207560241592393799360651351738895112114144612523023952366445417224259825948989929498334859662931308935496755338199763287885483542206322943286202606078595664486914165052798351066608834518232728398337131240853612722057826784631295179435412793300234514884276211253482199902485560050365605750444922273070691627810781768572447580935746183327578603397343637718794818292835815237696750323967333865678180490826616113287903394765796294315394058535086694678674237223916200517789927478672956254310968690132737925139436121454930368334707641118801844552997125093621636891902652543509096929597363409707805091907032789406374734442104411528524998482618789416181333307881427538931740405178513146740065606416496986698207799003528651729037213380519450852945317699983309738357197444524384882291005700012105408983794524721523078325506946853880570976534874157159145591746378784022319971112906442608237475532478946531226235529798766849993688178828914790098573299994808740356957760731135377379328264945452259820671820903162572494231760453535704731737528885899480820061130164584140945947731222563988363172169662924892695026866217527321905042288583579676834335117282494503845230335827550179892748704068845769547420187503786565394962495360897770768470033186637213153894946503302155569416979887136429586984535939583654092371652907950277171219807775411110562176948646251347289770554862780395981607032696667819822028317437775363430611065444146765395690850275922644420694716299135111353269641156436179223430374843837362226890095717303408683100502066520136847489123409870948059971847049246707092168871076980407480574377555925212946969934962859568161378285404263943922589237974094314451222426346889315896606096382950089676063037904192811728194070660659524219514089850818037495322657002667659933655649788554480529392096902344888835114592013451045477636733294592337475950888088968249766734449316211852287196326279128708815142338008646893347226865450781372110531305152727510538236647344207746709381642915524593599156772903142245494763969550183595148472010009572053674319169081309110012830011683797937738324736406735786519110739535630011669447588937081520439538935644895912400833166944263298544548220658583841842050906072249142412283254563223595996865839694091360955625326899228186733664491168670076909547900454170654380009739245093604750576446153877271569613143596213233479435817833289809986714583338700869523015195533199498857167568414503151837389484467828739321753587474538916654556986300707143486467989089434438318278514836521379811634319006956311179772534985688970805278677565837024824741408250943136414335995986344153065254992123620947829808259290726009908987997434948045201121028898444069058599792354821589385077093877795898633671501610832225513477290838822029396541329882400138762737150776987849082295322087686539848149537458189414586982120947729892617978539305264201419289087328379922387685933949287922665554713674145742122029839879233112875997117623119984654519778517661784277516132271636076489284608523770592665835395483637150856054256037455276027075621070694421206195585189057981850998692188363200389062408621675505244829480840794302430956375415076626798398101169505327723741822139646132955764995229742146598662254427205941728482438309462216785614146178041975756266848065904918318421782192057332318457882343704980032757366580582187197516627165558194435266203934227307691133095059314595267246688862057642672062800031244132466523465621052370095161412978921086499141331196820665057476882775943207605069794986989553377056234944951315966957517180485132238866116078654755671943029781018228104486277498401336777492875644755261491549324035419771915507247824525407310138073364122064367763903450812142712236711894317296936272332489327031013262992510232058541655014477682413912127822460811925587583575346783612295751607719037331013964965415113453288143152343317920694955496345914866860857687171169268754458417406859280309062218671537185823675950789203589693501467331785018568662745650061836103220529307849269951555900828512209403442466197242875590785397088535940154628067263520987468004633418393373396985405848272030742223547787976838988581398334639887139902976882979244409024278104653921850329473527436337848151675035818232373296300806311053013078147888442582813695009632597320455132363150524024236183895403133311387967741607247894688704149687637641703056636154577765901109672610165960350785426902421049988968237364570775637932636675374047725749578210405891682442399996114500224236977689908335192624607676635734284256773561653988391497968648052705231897881582464691650414623402018852470538266380884492606684697411817457680553589835911725793988409244094609371400838776791613797924525305757780825812180475224207176031732023365746317943674042379328021061415470770787552429505898465302644070860100832585038001800524233876988710613173579824080421729927055050397785450969459126838741679249909239764770785249926162400382538848009146757621316463483587977240156644728003089104742321605793578148893434154754983542689921682206491591258605695962738717299863858356772112006707472364098636914293644408410549360491191868804869591266630698299709618618858359938415614606425799731828525112955882623641659702739143991419904628564725082654199739546291524919236842987134381884255878851498377381604505190996803019819700484530494747878410786658332988546264647098513152217154149196208453846749516574705399778698080172535054425916964024265298088647470422528663596917578195802814845929879484067870339107590329403426094761065567709882735322997223669764374683637375102724236183974094579446655755950889539728920533438814484291475639130016839767063598904416675055355512405752891304984826377496491031995858727290893875375561288167620869137326468342162833146429513843619448759802431552216881010923707227168292099265376607842421353768156279208089245568815994683250073163724163176642880213667872728919949613459105584138820302152740488020734962295536015024191293370805109214508888443919253651267322692694127670525169820717552838593326146540864441822043457755736257327206131500516972090066271475019038783618177487904076182114898849691347895604624943261855851982471892512369682939846590523806923972425175705433415404193350585147325252142270334397769965808650046745025540416441303824141361887594617895065600030986507946111621217588773994744190427973470647343033684866322476282618789721049911773184973258747107863204307642018909583147749495953989917280379690893296511317589931837554541949160202051076913932258274064740238356448102978213419195122452796319082771922262186682944779305153003034016735612452977091023767608348458456321810458152254958717602779576010618045920501342378416734889572817356605845872749660457844523358721207164584423090497801779292422903243254315506455264703537881069195762146668979497991071290625891291210448747078546767078312705687222135520877924817141038506194617375456620270590983798553709146402739176043133941812582218367093637033023214343639778965079999319224129248663203389222365540819532644839797575949151857034775044546185777876103963293955557750384646807705796850862887375282040109715731785190761404166685464281760960135414434595601334711210326938725543257283532175823065943442568106231028977477248573464658054726304321446470210656661263475053647604489814670377711214734271037698560088679999157529136427692976957661119263284248519749851452215507533932658534365762197889016193662784383032871638457129936478997396081558523211904738179084190869667985240258361536997734246920916930256078100403896671546316362858452125812870378600570034913619947525018040204234723476500468834513486561705933585109808217587395840926067400737460788847776653643742026318783123906701611339094514258491546244331702484723783410427679022405032234045702090758231892952817620592088263509208737732741899079118604576914388051621554280263669755898985052881124662231154776319912218174035752105949831386442931236755290677233355981279709716105622912829906947211985414467491095256110619361626779529061695300044769161076339015779161232721841678560987017812889443078364790943915045382674746788890038777246306425128619171751382054056345066285555475695017541797952343110773267462785418170921216287817330281981194170923707591940596236730434794830837860815396542642437013470731210257357802035208854989534277362165835571513705604254279311800464877381056520327785426993345561033537887910898361628061362678629262787352983604028628051676895847370571118953303748279315628814282777899324735839471277268694127667796650046344903357160553331136190847961749192476212724239587350956984209866910784596133897640042192459885795246069166869284767283119860190245511600186616942735899638421638118741124910982381200520402902690503005998538457820356756740481328771155933455031108565520970066567668313341951280186212042836172145559076969742626080317418584858623437697225912330414353265309901764864707069698459837878440394960078935571300401621712551336323878354356547950317939209480494946353432550081779238462254841269334416350171746442990204097631079371236896180765791790995149221095209884224067420838827494194882031201047601728345673154883530937314441195311321991262174337119175077457196838733469553045909226036150185278468447406648746077570810713059177171078884323680578959466579106754473762043149020434119554995437629111491851853946183566096512638920608788908909816003765410537748195032133444884406689985932958155830460395310250009620798884579808687965918819860184283833772989010770943845699867519326730018307470402328822372400199703621412921278410490655771601627556786928985336235517343376949597384062710072864933668244363314622547420647027242805002716464062170782392444448562454042163006289730216933371130185515180607917753167788478727918932102343309794698878357939071545176410033800957982403627556793851380803975786985072442104231504089706640429601492069912655601073008005399490518105162506488879432714265487342407131974507986039827188936540682968267736938926125689257255971113406861657813501178866989593182683818657569464794818954870665535853955206108850738031397019573962943426987597074993579651522952916481547464948035412868817145324349552647535687598532389926320011935791837136738972784642370685314456975634719379754612931401169619077202473757679423597963248557258898186532126945217190172358501873234096961772855976919883709569647239319088801819672691442108556759581537888587037942145701829420036181073713563598251989476868559632857647970063050828682700841227566071265421075793840688298723468352504225512156533291170400168300339668990991480419972443523685957214038462361493544533602807681224567776582482082340839877283438047624053015579773062847993763200365244822898253206171816356704034043851536853425384806820482785073767248029710506029952606478349847955695994451785537277483580407967341208762316398056771623756197893425429370840931401464259776496458876991743626543561248140201901127674767160153937028416630050914407433647694274983568396582242462172043341442033532674150916120200266599244472473977228814165600385779620051016504185718238560696216858990602985948528807341749079129843252435715643083293124556411564943006365748026149582340780971663469996336761861828629328909345927669499743369655657112687717233294152943199775291048528731156837441092521763932571334001035592507637392218520618551667462979441896542651998343611543173582254556021882573270559988279700141679311885457042174330373153980160217391428870201987067870219668135872498822599656576451980128763996816372103276901522853739229066564870818928629888595205748213676831951959889705265726773672843140899135876693908150638646352123763948276956117780705900285031042154266742496147727245251699476447415411368836965641289352117457868223380911817247049889298362036356877449506166165329966507563871098166464828756763431970601376233666018403299955537495117434232915997659497832807397859893345583328753502052798414730140344179842852266854908625968245017749766380423543575682822518878676261688731090130439461171842243304682350444091676222989515669991303657112247491689458654917052516429488378742277919204015890699732487002711493763534654184071627509903984326154457554336674071197188541334568508263772696524866068939199014501939222966675430387033314289314482880074964622400832969643694469404575452248257321021615372741602886400459277618244506301227048999981106815667977602755751902131331143938185497715553197477058501250950717071302130146228062614316383774210616229675528915775988704690141761907947782517468264585438672586671980857941627767656453940301820060668903292847177255281211453595124133308612496893634282847898585492153640242630171358723674542717403896655468013501730890318142960342850754099412773656709092917628130500486111523081036167059145179515246363128052390854986394921502326223812056302994635261082026886179383272966699782982587657773134623318201978879691479382308982260797402346121301497427714932125200091320830841984749398058909636075962435208755634462248971391525136475083154009032859183680851182396097555849842207021608499703568348575735151595442085727952022283209225336512993355829937558984320579362266295722378006260044033277938176662560159651355636529333458872251389829321247988567134957390678679652991464356334076906200433381330512614684091280059554298603796017501363298447379901747415385132861670372622281576399946222066558807151557293721985163979837439937460069806771232028765306965502716704143551527033009436145001269490442632434752033920660834511345099789363967174581140643991814075767758419441008530543803760273680997839117161682331312338217738196094264930163931799619171561714191446945790515161354498848590095530920114920886723347391818125806405868196155705215651644292230373003288797692131225618341129177401377507400053257345535985867601601796283780434115759372549894737119117448686823668754218588730316767960563183987888606164575881625188808162284226005651751926477623984072871597584957432330437065332399347432001290700215914338242985864532416532656042476648734525356558639658561477848139426139412352362903068614966141774680005854262816774611523467214097301142008802139312275529757166768345278233512062942281058862196834452856651876132498538363077568673363523912487668463251421482016319196162935343329006717362930399896488711279701886295459502791748314324898455131652766845933766233422110540157011094814148075296984974520420837222521178224772649957486051756012940691994228933777841159436711270225135495831100793898239471334198494134711184566348284220537639824290145045948538877431254083349388161159415942774129842214619989849320193490634683814618066062525909180246956123840128920388245794409716514576034936555108878880152730415033257391797821883488119864029136507892613995565017877543120104441271619158714943788050533061794130367434414420435097308374170671837686518037272142293018553285064999555323492172223221355947156018436756632916758044867432531354277969784891126868975097010704863833847645378663702323542093726317147125648691095731842709713883463611501094806353146320305998396224603513370417217230600106210664479800918564168980157969819555270256096684431719633254204048704276171322500765058468483244104573538169961591574788947019410412783871755847007065333929714762524702986600198760477760884641371052627410104724855091923494021807711153256840873074553643207626175231651382052710006934803079202584079984314188515802412507224323267976634268038163129388855070268985153548765665378056805889104614982481548382342942737241665423439262749012773989821549652260729634134115211258015697702052682249787944155685951645195440185894237821651312821613206538657334680092392144752766016626898068087555547510546727534224038627624970263653643447704977604027210562457259541059273099373428627875919002163362874832786553597532019452005717063839308987172497171166168902391402244688942955098467134188887122501131035170612762362969009298655161242453544737412724766254799149094995503679309934077543523580698964869742894617397971707536398647511049597728584625879083328289247099816112827711041866998621443412767995783950143047620520575298800766296715405761726262673862253443027406003166064586295135990781691535661900205309534995410778777558067131440629437144470156331005863872300647909174603863412355471279260979394351149342629260748121765301482255330974161868740423700088073638670259077260155698738329312756924511047463717631604675859248583895064261162278194752654307375213816656889627099418051981991366278238262838500160457361030853799044315288566723495453178750829389129600676223523911281891996066423859201588039170139565325212207330624606982241524456490976582616594631159879796945064564598443795032424904715628047831465229836577619996692855863193025482201196153356506269465782578724671391880415697262200296400649486949014107366467849703950347073766687145385386424313777086053912770413852606853060253692515576219767225492014222694168812790566007016454473464257238046183954900796180646696487202088031116827237007958824231665613158916894766690562226341085405247666496410503012257532731719089775336036289855441439339931148204806386691600511250947963648305346779451560969567834697100232182151594295778057385032478763144440003385283708028842202115904722882080105525416512554500720335731323912720752646810750844764373847390386441110388758025091710264037377562446315254144703825313612098019748585377583878271144931096211543611649294943989888968778061098552644580124954304715229715226254737728297733191923966593688068083626393808527418661479884204111268506970179598193713595183032346845916012498867500321264120444043087209089676607174511447570922861672752413249772498556407524044943557922786355489746828435918636733385467300827679736729958999848404364603939198423092631251704606036906428675435063996511433005514471242068464413687718570050864371329418962773259814718234994223736203258065116762866861431728821856439745471613912918729345596444640988074359986131229173779946013733007511737195842374037165478613509994646818436000528670243294777697346482293004768338745714103869177479814876841213281544471596311894448032148331953684099525603810484397969302116709870688838372369718243976113084945995446251234794230455918653914439888754848386539755853323184744998841573101375867930558805697370423022074925097985873916191720439174080960034450082500842783314919473005564480136870634285431922860309866237791419847279734223674680042945521301590144862564923015193293332785392307191182413042586898763744303783885453210251717737371245345160005446951635860136722636237277455327760142759125795665696194323689075649468605307132494687025818583862724476808841231089613012504539219041040282341016537686923862281792720492230557584917748119058900718838385197355514905141901096871597979917863719765305745262810016084484733536968256714579149909431046369469125593338584671970519617695475768431465714876626700038442753988035469958594156477573960686363669130960758251502268341890122070131912292732542800366442000786621154981543342215045618441168983265967298970237823142360903758253247712585715657219891574964607893203492969615933140143085905300533997757826625363717312764947709313828305128121009637088505814421025618321062813361435047072979127561761250216458498865209235963930068358155523449316844005850191568828014198093965539397088997192411001850788101909067673700487835790088685216285899876735082819802881519214780888574930504860069020490249412214453188733734914986198052977015246274352007595499034650278268603012604064104448925220966239951062240592755886786003973063514298516554395983782888953790428690508899375079370783077223970758075704126367747083721681916506217568956747930814929409655405043357540558267621379167638312060423412075372477743305746228148194632056077756947826297786774229700847072964928009525930337157302999370821922646029578196576212639745385044675021518659096609709584060045927023093152401114485305678848785593576667598251235099774895259982988405412879500841531784351295916126589084932694083197951650264084170252495321958916359623825759753845093257731499664989266181385046618199085835676316396087035807089652338148397648966059361682203646120843012257860718746729873178659937954140031914979123303159453757811606362784901124899282365177714980379094502526178602807965557904129310697065096447299215453257256418029324463743394645443218322920139170896390281172538897071005217490520076200218536117478360770287048221358003897206148026004965046825254961643461208644139742487907170309018795262868156203020869615117483078142416509199147614616581339451980485614712597831089769557523234498989584465013863479386591792116716767595829363940608914579246095984413240514648584916837135770382797047501742874393503681532562388522408688679022323253414632768211952530577370342339185989147169501444600372639585457181962230264273735107080456503096991528224848575465385722565087151160678288796276156729466039243451121773146144429160344908961086002399027467426982754758568148600047026506319966409835047578164283823668829440667312502264446616813809644421982744027094900978549373228118355539735747353783394463359823885003895148246014134577784727754023476259605599015596490171648541535677046475017399886948022166539997934209249081956026168921586931411300286548054193087179005506186660800273876065848488665319377492677680402739779415889678050531466530035830785143144188897997570551588334634226516229868969103721754899770340258430725734167366320062988294364404742141612190636805191272835923188187801337667480775808884536393177094930612860529017497448140631993039902159803818838136109390617743999614035099497706052561871218466922159508166965295496721958434467485815728624596935400743234528355726531290329812318509832255014091734804007717305212397312303819035260277018054519982431238987887053283212730191016104103139154547470649501258899621806139454620094426303422031988490509531446238608280454454867946717228691407774632726580008603896856512936596450743828852733978677802036017440249133066778449721029349673428698616963644023763184529399203036674668087927751256436908182406680350797066874071130098716755961854448957646794159367675998599525260875654641280580595990143865285822639916964606799751230282475421877654403017991649565558519790674336277422143439333732294258536548388204392160675818175587845963232105406802253544038147289907803402449477798529836969266488897933486973104744483651264724582143485218895068338852201600954647006021463651450353754190307036400489400417222326733208091890838382910221832585196596259450043740326246097537501373580726141832727217863803486570053551750418441517551848977033185496560477354126005784330263024375209658172274827853277226033509045067594055309131475475623279964591439542286101674902122222204351913838227257083068818787260693034860025854066033688122151410300046232891260572519913339909972626830187304066988255629248321473592013519172866103231634642514167165855456972539298984174084293643486607437100810215043320795852177798014372934620934241982269929703998050771058530465759630232163398341829621750854820100384978714890239730019781880066958283156820039684715638366563593456946384501710522813031864753401938359939620357384565163709337733518270550713026170610700977978248402496034526944028660333839594492535611698445398417598828800089188946506007184986163454058183590541631250457459037555161618315291292923675997212493961449728862094587024395020772890096026178411681547168911216892075017742348621417636518242273226048554997721878211274816428404614562345497299635409324461136275424144201140666414646140455289351990794172748861595001968665888933476841954055870921115810688006804522455140425731552767150476977455264155223788638910163374177004858354072505685075074496942940617773696311953801694970468787820842568223001715176387047139461708892351064545763569183362384026440350156534553641881649233252062670423774272994074379080464557869531667107205258266637840729090330943096918811702132818275897449491065489509786652301434978137539060946945491537802139652934846381546316404908060461853605088308773742313252051024723094845227359998566624813920925595618569949579186067392557498970100439433310381548532177502046169736740825161347036636054806868787458654620565042996082801780425768140842170380966575574972428424222587711358974056013030607180882655845291691230597813775915094102528136849189703183655406042129451019855070241291368591314175914568839295288273125057050496931384784342790613175986237046346083879745281065648399869157964638231042363026442336533151213749895600855134211573827578075531813296184255644924532430838894715764188671962222904107677268272640874861525753148667016823275643355441843252169829066375357181399046342982274398466948676616988642361112910638335174655131721934462148152845556364325794056867796569988620784287371347047039342552580903909803292548819613659394181626087439767335124008217161403838695929981531003254926728999650777621441038413805273792164866146967922209192262407082611014965340333544075990741586887587750953471503453940858890015062113220536921924431673947809054657351778072745627178282618697514788903271853054663238335592912906242720000677597413917560358795659231455839449349956837830949582068088161506109398817638086712464820357881293775783674979927199293674676804855849344360038685314863167552907105912815396548901455570408128495818314736331949498820950281381688256613170838091850112515999904688745831548199406815385271054517397221218601109595731499195740970827641107875298763512612816737964585115497365797258710390655648491652123693586873181685180681113527108164471311014816609837590794461676999850368471939426580359973037237777093054568928558527678665774872908942822587977811386374414645121082163785263181773649241434537885662481813986561993244642490500127208409932386103837484976469674550030301674021880556996585609953737873259110623493093232921697774993734743637997091928453082850036209872245015469289755948597454248150868115814357488270988217765501637283475312549333481987149624059515293931865617159329171935117539794788845459294090425650761841410336130202306428085481340101980586355061145315106716611529605926774681395986611178147014666252546619187865253139361415688101893912909152270358676744603595179602608339423434922700396982484054328380741028792112079394919784222567074547830174609097003851958726329779711185264972971863450057260950477315463306257716461021237469788121229704369633690198485067564177744998185839507273390966886970563726731322171094229940010006230465359913050364274092125454737087186115802911754417530951294740521609438990678808438232670843887243478046656451521655996556872956008233801018473610874240997621962914102152772073299111445713504985424544437759694119833653849800615652971541743932684413134009444596446173790014143423124103375380388734961332713032822549858830377464050126087225320302409235644848873561138765111499354122263467759229301454166974786799059483352961730688391607986683619538189043411969853870096814943221986984342783040969585004328814161628904582899102670883208884077251587721008121196924021857498106741040650669399165496509122564227451978121712523069186198015932264730353820654979512923783695879713410622806703563264095617710303505163034588842200480419197350975767105184234979225738812868439333247608583033455065854989110567160946715692083349182855938934552967947677707465090538080806319172265593973676441459106342459152284734923831818962732351298900928271542945723363821024973321397961601490067725417724953120474379687288102477112967413948129939195666650381133986413273460797531866278191567087260342492710650212010365254616177087514375956225905162633669674747151294693942935428600734502326858368851262432123731177282285498177573145194332169893219187442279213837742086404242143195851107090239367571130373784747579938643648431564952300112792516361946981981764562919833749080976558135260631226622681960542262532664959735190787831177199122309945382331692605416913382097068453358746170534374543161224792669354995145401700985690566160422179367789879595404920484872148521401414481179090993402180260012485304287880233350536516783401956080869996435159215952821175903851427263757299087782210403556352583588861246545439518279463464680287102463107252117640612546570389515746704202044460543029762739217135418216283258986861744855618272769288248396895714047328144875432320562052796090492807566268554995582118373362399419673429483937986731333330508401230065997076488523706474330595234066106746162719828771794363489299617569356091274417948558680356804555945781634206653203032891572385824535847601881457630329396363527085632666520458723230320764071432305467477839229771231131418089765382739288242077541911612142365818316975577936535694122124964236776191946876255492141140141427195840570256976532801079139021785540564123994874830245385797225002098273235632656671287998166352416628315508158178238070234605135186911876279276726867927327560105778374157155206150341677353770780409688768704787467081632276534653394448470880474858704052560710340348270429315217712757325042620528767117959416322275153636003151636596889083693912951204849529280787533869992807099267486062622229731134213187717139424956764949787005408107443791603923675852378245421522476597279408429483873400333393444908069902187646326884952263256954417720544629775940641251817995720062162798876035535078071306940697213950518663464886260434862541326449572342567977261694411520753432916048376871485624892656880388464109981652944779457528917435459079281737054330347660168266782872906617312619847427588478637636142114766667343573667748502546820305920471876123446507479091448936085793378187792699102209909468132420439551877023842810679848594830446547794975983095738837122099242108582099391259311618169305552534510439400727844248528541177641577044568704717956774391304614977757724438263195194997554528642969847687610006284717612991653279674620737100059045792201617054581820721379285245591730675962493786180961667666034275074596137289702979700307132669612027091422029037468000751582780538209301434429484397331286845034470877217060008140983864022275338206768951288662544567133279419008546925339254589443633397157791908908054306509901805967890931142118388775108721426852665228354933976865146896793178904949583013375233414280981194646252728498615989438788530104832490709523724353689291379862936936814828949724756039435694968108197060995705848006231088462514444063187363760394166324840098124985207020457506856659924645949332514417122588259951299888283394460192064932914344920264319948805144534176588013910701116528824797468260549943263520680414836566302033367698160332457240802293920886346864705851253678118323037999242047307004998375786889285738744236077764699924058608359285285260791217098735447240284740298891798847531697259058489734830551655771210270990382129856354114717169207457539896103933271647308958838056114164194264829747627615130159919626441278499476749019373217508815948313155873239053854352970467317567979849399619163429333860235198312428940354771584566606061353257600100670357332999384447660582409060473059506507964055363193489697919229391699095966179647374880159373006569658302392142265819985169418930713667638634703337232300069690839409706887792042556719308376556834097478198387542835163697959216076425789322346487491712363577652381718405525412787953772407825707544386878548574241017618671663597032946379003145774195449626098108034612560996193622909497789267140307554138312349541810268623538683053700963235149744843976743760423925976033443319997152937962417985485676062196888425666166707155660611921380084341244022366934599675926010601467852433785153839479486120562153460950947966581731471364787881569424578610890101585821010569041688325311437469748507051979129964699928916943108191765386518781659552196006637106522073570016317809669925804087515169154964843882369891540681427810273141044684714103737793183627047063968940038476690021825068444931098052216728224154875022249475221947658007470730844998332948712737624333821881307700044412181241533641194176840494707074231975155470973039699059674203972516587670937290244680523696129007735073701126014924927833284231301439425839618172103678498856667239433115426755710221496872791690026480879989167146971314287753511412051505822735580068016343692833727335603053527506532843530573512467291247848280598959239996709826146126017105567895181942400154153994610187014588546942768709636783307474884562752349838633277898647629629847676152485713029793683639183878375191300835489186716236511015806163064505330537754494112526461226333959961308217351953352292443804493191234822460610180743685425734757765187562426901114565160068100042579537605703096185102364396787873764754402165731859821945648346494960139327204809206714253984233200729471159669974083711337083407941250605302988204996548745148860229736439876814270069119570116396956137643814235219537724371977841307580084052864417064232861788938439020060451629078737427812138882304756475732481233800374061298550150095107627922511117817068067028905836378785699833820407526410792297686077469554714867775846693025288512747375219192666894167060467725250381782447665736751220514641804746492119558706360167776367954149650681511906990096263255429676752876606521942175443688822932038106910057626114388781188784792361977208200594051144729858708477636552435884570138926302217596587479241613331684856108570652509114984858377993110906011593468045224202511248664206758291697699535695763866204092569628631050420033033164676786824645244057360118242598721483139417618310144378634447797633324965805834432736162724800527666615060649941099823859313582145138453972443518756597168974029981001274519074744225445746637673866848768244018738872097562748506370689740990176242063253602185204002638046051612242657492572673979994422556567660216687230567603035980917341264893059161177712790513517163729987471580393010638379386239711795096906791381601066072624657434863261483171956033967773183681178313548273890859157076880678395252473176630277222412391574766236932953715545086130716465419905137494453938047732858396215082540697804152791388734789334521219068870746856399778335969426829613477947974966019946268369310736995252189116262986241969264005809213899639623121409979380887413011156557854095673783920408731965690044203696137166444584663273893829838550296937636226159328021707731445685028316383374533726975576622832272622058463680125938743330004652022807744511100662073337657005905154122288269933369412760680543543588707055157402832987602912029656439166487156156752976622898952934004079950551053909892425734194380438460376897641633245828371518632601626010050252519977173186374977968033278811870750700292114870829854509021655600928184847936956603007886451534789520175178101047594765037355763785158240955731618776117416361072602586797645385807060145495225571341561980928489707206542236916667420273778991794810702663059553969123556600315352255489356524791810603114975269074886096880141763471674656289150513454934683579989363973470357478412759805253360603670190084567423612780410325910816039314792288439697880399769833269550600745168425705824280734355972109689339940639606322307129497747734729150988076010655779634842227690869903301974341893919564763141194726581331996374277533614825145189954602197288813278688410089569158815401493489648621299387503636059918030632988153872021435098484514714925697247257932001066294782023405589195115050659228876685868060633822558687338872616159487364137246063234328131917353778616899527976771981448651783881084868688932486625356019249693039348226564520691097238501753365662973633360631107213763076824249423244493744911671687113824368643097986206233659072123438531242345551397880286233155225177163758392272473158962037419937946349285087833260388107622922368186377128655296422372282395580587095088788770972575705390189763993252946084534050244867299021613582753275217874396760556250395482261908991763006944474691226059045512183227507272172471945689164531524635817500288597953868484620905598246029583034939605404721126277608034967888616167985499162274690394530618670572206016301256268893941619641259960103124613001185807290337789948853159261046298043488620457527171436195843026318361208202572435927432277649438280887083890379215680450494963647750759667666487726456201709410349025569005686624386383995844023216764601619951702801108755035963088390159637764721271801521189886565083358146012156281761797451412771306580724161231829519462144037289904475380730571548149414357075888377337716143960782306089561921447555365449211365361079912866280159179062688786151662220389674797266173497715270048189873877279553921030017749288860772599412842614865588650620074256753720597367216379443962351769381270251811847614546848211537289892807132899147500154886896253989204819134908728457840793100919211738588450326535622744671540333934054091193863592328884775339373640168298937665598145563602280811864875467776718149060681860967317088889286313654045411448711055130053289881682005125656323226826115097873076683585328014014460192147983063910256244853810817163290710277396863568466286983077729131190583696605288820526283360440286801014278947970841914390946113503246086619188386810559719693691329124649795929494703205379960021104460592893665115036303876631476911653953290164841780140682003278138498893290998320866600328747170733559885401491051439904085740434592230147071315666004176826896860686667963841970098935149715922760923389506402297997583010025586336188859158003697332822685559435998064777773826735242050001461317979705678710352794589027383578231989697932419096243416559959269549207087306100003217626749455350184331748151766629478080740691747339548716586978061169602259606857615127323719575426585796662095330410024513495044378068487618838297170756023955796452964376414047065535436833064249075200826943112929223293317555832948018113754542814571043875480879081195882549619584811795141554136767703017489057238153174733883212047125962098086353506906277689647335977163977004812585240043678769503308004339232562531421483300657768630899786815614871885314226551478825364120518677291417590697965314532643535940927472368609428782290941142622489219224159097330246458403461837583612231322098917215609267016458432937779979466513944252012597279542024118148739261293670361539300397340232940581172751670661460128294768745844399901227185206999888518288716134952599335457917898998165539664133680562497876532586133089494670275654787627730984349667488822097167051971151262078834729968283234981669756672732204954697326365978155137855258690302273762139348576103388111646339201086763047113182156063569287770991289980304455883631849795268345898080229287177327838501688325093195158712877052465844986467497191170199117297214892071796378742328968183330253974408425261187781532746653700618869988705426643373940773164881218624431174088624868790845771052183459281621194868742779446864404122518544199983719592608690311100995359025860026709025737693590847214431838667327868378011696750105298600501615470987555662895737516950841816862630308702867853025476155102953755534281543490381561554557012290333743719127634772170729533062514839600318023012785638584021300166026784416009592157465982269872287205805587423507784411317155283016993544712366894742351284549483722501495988443633264240060655713380872072901448197635077721137187887384917275443286983443635508620825983998709263136992796730912996911326213422208471434950034015150428895211568937669220566855395579537169525911295690643291366027166873348764996610100719953803085221224573519991927935354938238463404366071976279033367063841400770950262724326374215298205514674531589388790086845296530030716375998737898310947339737760701566594300586570361623660291322810457331115240706589791067920240131072134740017551100853021802657173412188944835670450486242505469388992976484539265158996021332744959320830153710886826871345185824330865325169537937792203463769884030977720801952029527355451241049648674749792544944786680666590384125046936611861037259793470379074909313893276646829560669336256308268100641562990940901666029375777474439960136735305008843678386412107262109097338161412560835641578869246821556703678428276565412363467215178239336493894059453330127347194089881524027724513846405950699794391276227801835314678445305868505182736734145004792237949597274657215087533395141850972123766667943425806829637637140875880176730884905038046201733339112078514167365684090135367010798504590182189463571664651272020914913145996049596101992065899041739342506928907753224764820080431945074185076493807833783558770457911284271524633095298698702222866409410905702178437139508737456340556518556487905845606044003037586715038059750787537100214966604084070169340575849129626231382547381998730262719308694124961977130046406802433431376053319410524774204321260102803079206143185391903307352498293576082729842773441584020208986707801404887795177912807065224015325783105651527145027747026593254829214867835502571859734834226221689739607289939016016514995174571252488768103481494757564563415014182220118792103667969882786954611603805357243834255502456526701088379459833067171141261304004523446352346907553337471617035642713177278802914991605789442659083154378497936839366501435392738645007013518613074094293209259128186624892024277159677719553975065248254957624880452217301002813915461176990706878904411484136046838144406662164945124273146803936608162215612917569358379324759666298382010331415404147092887856157848996612301499075269149046829726530645665478513630481145497101789319063056428223157210347128757103803872660257023306162440318854053827576545377591520893560269934830508993795581998815136260975623621317173430381661401994488170720108756334949507620985110066437359035115721765742082027683613292542664841723235654212073894587821471940086973337322950461882837985564037821636213415936954710179324934807487607610381138750066714373977335990905092935460000958115676045436836060545224781856683591046415937264551273356112038422925277543328726163547249197538314763639341175083181740839312471314826029101037993578652559456587890962468440776179646879593410503908304453753923427127723961712709534934479743089440864235269931578345270258353382690448858798684812812065807412462157992252998562232130229548791006286898700416498487670952872906628627981767850808774008636814899381168873506768234674818722416862885314220017307307480516078681647910058194254005772539281772367180733719077273308514462421359826241642810924523166088595860614221561682833960553826581643951316184706546941759841712585385204872526009553695241907608675485493063767204677117500521902246518766545982789857586263639714206460055448170763917831741405765741652536600432254889471372287206258953530670245495286217184477894060842087058278123003774981661101527883198293319605616466996584549306953972271269902299481066349866667711541441417642110056742259055973859489399956416877027403686844843878331160475603586333044810395367908436009255398182405958893732955789850646085796615356602079265088799225882476951161563328151312060155958757652236229610314043737655039032110056785575521022544264384326095780364164951236042764806188236160890825160752083949890179981889996999361787560495806984007920321165173700520872711392252986057538244781550431892600179113661700756891386662229086716434365066138685539141848869670045603649745465121573191228685559238395660555034647129502272973429272324828820561843249322610566452155667380755254012807217144473403239753675637808509678312610307280681270600126456421425495339867496544294992573736675057720340242200111889969391862722662472985723811522508076083907468859247062618438713051979278966220573619236235884414040374903378967419651424850609019736593447674433408886157827291196637314387602556825872640040360108127626486554739771754647752945923251286783755693999281277093797872143256722393098775753320877814706366224167994532459489604439278547717546494740527401757690307523818712770802401258016213611190693700924477698311982720672040301495635719361673563646044470733725465954798413877688251653402283558231113076048674143215504485248425995733923936500852772757675171790641672968398130365942376812678819585258771388709006706147148564361883053396196148931037899224824413660079163884204492064977616153309853138057636688074273427947239602728505304485873507046172491376072401615512298236587407537029361423362135584469525508098506414998243676892703264122397777780797364982762651764442756998664191149250033467033383902975022281574290289996084610599820200461855658250325572322081492640624150420681556810385606292974667612314900454434631163816019911788555033327887961966956313765326499460741004515599393220921877619685374338982579392523232381906272644415698794056346700197147309006066975747110891841370040772065018838648648952378725516827825097137202843454635845720745288715893500586521416064657271802755829475994377284413622402278255823297224719731201808049285217820696007950178566097497563938879900233798539886083265103979019521224174857355499840211941288220268393130665866693078492677834837518281655693589893157735607017101765694142118973139921424274158208798586671013991982210373016321195660611248325745529668638603284667257122544340115662044484068544925938732184958317660309552318948496447745205582316975956975021084605232853767422808843629081395938137059908999602252711688580520508066861061705767663061772892595512331877182166187437579907803609662912477756180722701905756176572618023780854102874362909856233915153585852097624343007128852963818965639827836888066119086253556646502579672717215977941584606920731328957697707517150163970841340277646051273597061385137570395371793307148031721327772102281559903489984161157363603608374555932386954895383975547376650885566839720304336244609887286598535584273929754184935820519527090894046593942228790679612068765922330799831962032094315941357692606711929439001783931100270270040077330829912450149098133056561047052644633702930631690915333074299528167295774991185823533685797720343876437258084093109871827866756787472166312874765106236107153501937161223524771553785523699634331829372557363105922751187700298422502563559713764608962368662989976500574163947235212213619381032014021364586718914467252805879704389668431341470687622389235831340353998407125405337062901538833352952961187255133383966558189121269744800025614585642290512408114242447549724010284903791383287173419488968857624795285310528359740109136972237837086854188083909494835049343247719269777456765460563302257136585360189963431084375152136644883522440941913582693028799161254835482880497180830265294265218900239368047506777804131994427952941995122088725010286291022239620975719721701584143907796959140640799272677407486878660868363449787190268979288132017387699034115237019907961958602867866030983990878036359281774981771468774072554554927946481536187496960682284631667799505988206594382818002763337692890214619867056077899763352757223250078047394056487785142212550555102922708554728193106518346083720800086440306467280071988722019758812309893005257262526100643404715078540248054867352879278107374139571292337388081356532684426670940374303254020368346100539388439291132712921246285952836081954846833872547593672643648959789430255618287447631617015938420825888425260167619480962362451664308307106951912234095018190194807832165714345627767096966738229179225407304485223507286134287617999320103157373249657078787521866369988475926237688107460983583010027850265885808496784986481497065172670580496038018704178331641984765891849002221682912181051305060893117308628480614348387448377488887732092249498341763685982037160495321612056275448592711603500740976434934697772603881583376336765862230762931090764097477551192765270733578957366996596027476805757936363756568548300592337612216027700270903690596541187040690153166527707965265052526876565064016647141539746331770128633793945421043370822664735242277637590926206610050403013365492337424312386707973326871234702808539151223240378478398145963811020307018633948587087464110609810102749002466579286329392296944839387897206780219619416052134334996581911389372601922278885758225391301722492000485630125353047171193121744779961767064526686182156494316979159948053531104152742911366603204636671438152014696982124048373373258291184676466798304251190763631178531780947110292141667021524088644942237960736223109753718485928903490494928675011080063817726842004226552069312083354005699157227632492939402019303535176958406688605738253359345207092516471214487660584108929495752093179284962805858168576730229088043689728246504825367268139944333587439763647453269976239001063588317251695246739434851079770312911372105124334460161865671721422719088978864749087543640532416789825830009882824466336085546004188664081531166590198165524257784158354416961724169323664187103581709338971187084336498393851210325134707383098204662847156754590985028679575643674721017851679824306643591575174059898229276931753354559748984737339398139925897306696098597489488853665144385963858318651751306920315502773145088537869292050735387178635980868057113022181254772500866252368770780470111248556594478494781258909231661490340371790726990266933337788812783504899792389506416656164054879440245333651154411004937485882892377934527485680722646601033483055241017915975717332852481902596595794645346596144257977875555919404280576800707656538817206374218569319802503561806524483484388077133512848655204874193274729654526341426102540899427315951170841839803922955031713875852194800929825276388573332382856257019934171367455780664108310682825265794242866887803364029343291171640921404985319131182896322780843604345327288968658408272005842242493738668276713091655377494074592377511234217839194915013715354021270067728077808132373908548094211373925003634094232724604024661426699978270951097552299293902958253322606390335401933365900400069980698143278579222376125522507787102074011220174831684385210288496303902766048022869258935287149331123758696249481636925307663497372321992847203892030977632623867942410982150858414833914107028226990487545340632276073712784489734056401157397385727863271314368895125021272890178073152521785340683030147611784092379488117406246186344148397899253299510955660167236949482375094876933217204858969701485145262209059419631450027103437543780503073245185585067387879110954266099790423151130593091871850824723107082053166873157084146082023585150018636203291422188329458432252744665396269022540833394200920731821222492678009107654832853729859534495923237423861940193815231087244207297410782075799185362864902584222061770734528805317366417607738165624797803771826896213450459165100825614202658664882676169316045362426945142242426608676140691948373858196522616393067930452195019024013122301456249141305342170482836276927496492904128598393898746110099258105154808013910784925257991806968752921437468460186933360643453706204260728292752203903945727121117556575030583937117420572986471255809314325093313251124361262716519112738748531665612683606819709481916999729327846331643285042672160901062338642820193828205647384097609179282828633497587010684920143528889180478946542182968327369312503526226516055027865494849703600578989357217398176999252590966171596099346227920654599341629817468007945936043517969522340559728594442335197190512426616471527478077799603976186078742589189350829898034841251987632995113379968466276941270811283240312633526925461853858939771931788982418195413176177792933012073049015667497313361908091299114099755324387040950908355728005735613591267363565713986494810889028275278433450379416576809951238584991253613869502338102881617031947662179405074394938352962834912957612198871104855521931662738172599632946782538175341987884277788742020817600896531417845274848261449239222942794975690387187554449354118409454112203588207558547741732689694164911056500919821801338908064989748689850968592659634667383445072402451527153784317608201541098423019998163832236390429497130534103636530157887279096519038686614748425097319503687932472726337566766838507615867828931030058899422788065029691310353593494174840007831623320830654786675079987704153875982756361002060933425008168693493709118994534434927209897964144784926476996976250332462057211231137708422282809498632812832763797686575831341615137109913751757530596429826754439547599593930139614912763824555058880880401658107577487181182699040485171933814153148518796096700558396924129788611789623797755633851130580333893612643251948245838647125874345174939949138915492599421609693023201644524372425531146013842366497486305490535582879015977945519534975511256742393531943969245712956423629881614980177019648519025497050178654825452523024781082435606436245264917943683262828403828969544751991107154531188460305583397508506266100579784434646882542242946295507167480132963261228301053325540905093081966740417921503184007730303909033395544096091770891194623754314583006934990192087763744222377346800736787923855884589873456661703378565822479434249399426148701651033717779301868460174891761036264989694426361458050991276515100251071263439524153698324823461072830969480586905108801261200137863434917999995455754800087171285354498754623447331600158028899317763581967969975192694631295191107127862038091854380328445529394811666908137245135134857497713300547446308013630115563124953930044260525943830246121103022453600801018148969630461285366370969146452907295745691771172299610150250616592306229785803361251766878999103397571662413099449845469455890072765611183296981613845571574066165776674401832713275682173464218222500394042435390646566877602739303815584856755124431327821743341103236266664826216700768898106248850571656248007415189137930735159250946305487552639752101133850810312274421142439537119204793496236392549727840919408023171947009340694123388848703800584426408018294375789667123481442638968320388148046385997260838557861278040352579608736480668324049872823288207755568406313377942161922224473251523398910684895847541456007414417507254164734584168150219696628169584695090833914558106338237272978126031462299515741791562319718338256224681087604277270136841734428877409353987125178792347626024635420721272852848721089678477522433480937846746289641264462047035915790598887342852092112643197788349087648692082270039202515655995562624160387659950832094566243229512224574888616241963564117019692173576953123178814433856669339046803511261567063860629887221400983947025623897617649821476488277216818358496832026974968607337586845398327188716335485054870088623011730595264582506256775830321981359573036917109489408358819763480081020501292029725999686965561043540464232338353434354128363183642900973263308740249909159801400727429346522899127789648310148225640311569914914831913948808841539470891516384191917864286752752244082836325943554416190807788147784146599876249263327735530648114563769293788171655928382242900518742316816512218831609519100407639418347929841056562803119363713678702312798320345171265016655456896459142992498956288442423268857788721904665021456859250813004141051104055592647127940661545256623209237368962032643552276445563312485807181630540079716226042056261110762862382999873131796697085431536981437448401580872355642683026531168260590897620512237207104385888448258985422648879810038646791401875663940545410835678235568620443606049983689249386363499931960780519899209576038644937404603331438978531564868250927635178277010584498929460011627871258374795788213397323444505027105884126176935345179216219071745608529228919708734541088088303438769579771360358762261483176096758782874642607332200695942683039888200950193963319332818309142943551771677538113655018681111812933245426930220906480770493858731455726956083133408210088752513094919960597089015948077056509216328200140959982891872515339667054920344461919596649573012100529183181986181882633349094032696589444355772837770753498378264313550806407988113173032255737361788823595045187084478936033443983092184264708461644473320390881555244820260203169542631820728575989022715017104109248036356445163527076332319732998863749546726653599543651223316434679172469185504284716454578096976442871803842635467416509052685014707898053222251386637007524388065657147031724529194484308750861856642941970824264428107011049075609790949969688394070571586695852583342574573831676473055283614624447930445670293742279982328514339347782022783592690785964617490638095604534823639261052301148627210184586155729260303440009382646374066966545454364220573170636317848405108257674044074656169650823952691125627096001310043996886958513899309189116641829317121107386040655271035337399767342811405524432484973683168588640318918047315182213172337736351566583159918548897597987834437197033000673966961450805213482334231380470027375626634637172120920273213553404443303064844079431917003383066163595938111717589475868959950924619248721065118306264056734172041922770253530939865541434556748988572063218405582293376135050013581516690958160722641837095534192726150506930903709410818318140331738104279966724428844118899546499816517675816636812840293951743404510986838662585110677492992678190502223297744305328153601651681691424290414735029413450959117152089767683575904972243139493787504018429900146764464708641077834770880503071579276171118181876608942818409077177804873047238611775214960626270909733023743924180447156737217573827059959875646155086161799132421864870985075842198576294864405779474749596410770498230479870172972406592548435146800381271812406429361908086399633044665311081374803742377536989086807086856794774429516214079523947778891101395206347811033037237295815481223002155802813716432026877710700630435057437108787108708958666818757072704803637498142343227146108988140675022624076470245223335126191333253810114907386015741542012965245374983584001826222353658787777301003139119018559043180251336281798752388971348758102553773830185693283402895389753820906256699498925568964849482685721388134388305479367385195636378566271199584147152442869528576431899515774649954099508969269942106313631972698967875656514172097563051975667102184166367297560663162158821865029172797920118347519774567561638492888027900464128171902850094207806607663380648795514924012805840090484231526819950029071452667762953098382840202091931407587195716846208000069503494849849435363014569786753261372145135553503472187458112720404525174554574302184662724348518720567608805093779817404920255386167854016846492437048497252481438060875114528249114278511093617485373584947592375592728680373830853916819483875776458717421457768250389226619820444326857679360168014776597210863813073963339826275665031033591583108373580651183623384526852663240224702623892107263110225797562446750888601825883747420766809148458348183214036481161988928837343429496873831842567359839201648142452728880559226400720871820531426214458955072646505325046112257588160088739778891490204990287495503965500006199985601837720407688563914322313781285956076599989228783603874100634732959977629068472333446391015822041291008875796006336696157039301206789338556707121979739850542647972272936250278043042694753839206989389901875722987220036138173487064424454095980245571856695270712533991626504152974556374659170070626786934108064091637472263695643395023670831727054436023417082580952667620152184228574533797850083969729901385876647420076279832699021584780546635771427690080752275272881403017898646903099728583788619803612091358438236075147450674893751552461594760415772361772496427395652007799900610470145767989923188826056157425438934184193047205131318168890384481796044816426949166428578719531427894705924363291094746926066449169593656161311633189808095816021001800290385737192530783788415589048013465696558966031653776684366607629379149974438214733838136200373417772400800360805417699363245960275513602530408176419289147430119265718951572902425108980092136445245545287177296676671046717056843728144974955701739151524635597937806950353011674114321870248478143556111403696160001860873270311136849061520707212385415421059189620705401362695626840575739623589801337114070123081833123676293050711248537068137857028480761201317626039014259962874850996250782404644436247416789704040851551785298749760193930634406251809479340414159554661784794457936248762183184310471713290806741617845823459522911016459394576095871403906889825369950401910656364253357100362332624294868206169255974069359070371065175385161397052795961740468610492029502860944844887303602275834842092257064870824156783102754088632213506480101703457597539843492947159562294598218298498592840803913273228948392359655445540283597884642387588879256323409934722244374009992765407088044912843124189481839492254265937434578934371678612996355094042249599217172293825157408593079616177382292030001160102772727933109612078093134951593365190150621495508747238611437804251345699610624537751644913633206880632499759259474500377987792994895680854402270515394428396295003919570950645400998325186214653043601183540257415397100766270659331283142257265076499149356026544508406858209633366088416404363807094038550802054488963337780674155477562167954130314570630757899848101166306408073395056091456481424877413917750260843749511691185002218387540548618685039604703654643552504131923778424701325804583558041662878809939113578112677578918745042050163052413201695321125135210642467415560083550296847898564478673903624024360913369312882255426792205110708359552389800486115227547727623044999121288858023225311688629054792061260733996528557883453885527259071533693458454957722324224845568528119905853756200920301648672833836241434989386985860594891795451118196084617891634037452886443232650628325800334011049881864999691366015789490107490572033766013789433077220804390460581351653245326687461228964372738333982924515798008463365720011812469633140655573748004879371240075407625204947549534891144566886888687788897485976500251469784785422078481025507532161327118725256213783795534745421592929422071097920961148766462785086427691771270227682798469614109581981882515733163020021187193547449105652654855475232151125651014507536211743982992309698759368021855135489916418333311660198775054896453582063290311045334170591490037797669127797404338675710063657648665995684343012892751483323252999396847498592128429125010483724455075456589811007005847447723104464782704581430568770568043835410631076420629942677730878962342607457151405979462562117779383941065714825867460866467602540593201704915240778078730820597429468633595110277421836890324440520453473621744945654259467111623583147759121807815591293912114036176213885975334932185629039944333870747142001743188630700595331783836365873104453389531460682646380706202847473161685868296697447231157873637863284020393858998074918652423691941850878903036933945782475549523753793855548095574662322992751463747350461462937891961570645239939548756569157949341768951239425622285137846928266438953118761464014566655251183587608387465645499700048279875906777098865110313125148512278688389704317388315686241141777305321340955173091909447691841903155048858049491851453654289481480078151004648149656797019783219529907510762102384319765509456482619316733640891752172104493290350860305997796865649151108411864991574689509099398082629163283660413592136287852725662390610266565821218803202637742575844504170656506752618066367276135801140426940280478377142661518947355591646874581204513053111346356673593126601700311913469762690473430738856771232943254167891457204108781448999323344905520383358425101494599402974374452685348187706079521182145346702311072998215298515318999400815459300389408544728151472150013256219948866619360790973901261378989817203273306074150840801360648518856106333336988805198919361602035995535664332754084151185319321304722131380275011318578636710703223387144759453896541947243246474021481371918668179296584993828261616550843817769923072119978177711751607044672890642401406948010260888967377973559065951631269946746537329884941897529436904234013789530118532907157575211520445337878470097193374120056311376980536099525959836309244253689844026605047100531274371876611430363248209108684197028289057211156953649741296426917774881744725277306630009361039166766882482532559002556285643596997692966872778296737856995614177990526681177006167696741301131744737766951163929740008289362192911693788808743381815734138604133050689285668650884668919385615532565399217267727803761489955149003353638763632354656171798915263379131494847728423716850093130606638229390178785747808253855065553401739335020991012220343829628128063357323003311907408638774306774323544382347817723127845882485920094604805680082448050865122157164878259292860143310547624047852395722934869542475254281970777491089738993191776307399285847867175219944092764258493974066240031427884404744862596060626649812607881253755584624360941476526199776995177483692745048734417031887059584258904672812574805794907170943827607592380156953057762363073379635839283018091796270094471981271387264720039480766733844113971622799873917948936891093458585515928047141213541403812680787370103546237131682297305058230100352248982888617469948810175231735722548008485291257163922471930727194272891262424107367101914687398162063368194241475240376287102945866387569682265610316427589843965096968184593407573706859221860046780204582355326674408829670327128596971814981402710337255747130024923527721695813685515928187919357123607717737875816574468984420317455078026069152803201010286508187565934513737508021444975539325118222268238685577644612820552541069114967246048981797006378267236272197774989808523313311482241466641568242480971832027371598107692559550944715600035661751420153388416706385687058094682709479705714273341992405871314069733293052021866254695612966415714452906638789356907092651846210297343495250819542899261934353203402254462157175383757860984654323423110179349172936836719916399163249018455796305778191146014140911208200241358557208508723726658026184454239132611273577314313666625466827419156224097176206254862575699431699612989648791788323858532846852957057655939312255443939257520378280788791230381172750024391988717665793411430690003853232177593073872553297758906497551068452026130769469860861120542752242357843299192405821724119114002471221594478751483806910645599217657664459071089069710959148740193487917534144124839394224056810137788450116705533241482106926858289131960794967457777098904550460447633247906310478767337487042664208188092439653838378389312471859845938601925740065529306880162983603306698658079130759991244103358337839962354691937265480625859711308081768593505595317751618708267140604204099648505884691298414984482089115488597792896821401945372279070124241328954654210754475377871936267317945584417865312027482400664726322198392314351909266304097502941201384885936867665743679298485286340807177591451384022998041505379582428743631097938102457780732789374665619374113346761524829583016417941003051456493386902017037712189816928821592190826974013146271372602019838932779406161784030585320835588337119770445639336430028270364869288079598978815642969926976943281961351716835271442200744587914862164125339033316656299936539295301524722519895646727260112608302761569479840474923754768405192624842108952559935070290639597202309500222666777135060816192574499595859463233920353786798558777338612557433819821789480443585324500425564670680456355609434697753908447272547335166785281497858671715379127127882491311161056380161137131712376320176626345929808129551052300134874257268292814439865570658614591333300531082264573764975779935664394074283112375096433089535696032716167393689390160947309812166173951072966740468360334585417714625967350098719006500432534191791200311563501703493052246195276794951306981931675318100571709446166477570678596023596974122031834194085044029582543259375221953046369612892946231644909439602478670911107622377411456692527920548887473088923060724411702642965361401493252394034327245406618233826221620812088238466622347892778633061320033958813489383173439569772392380264299352011040534949227354548284947800335532236919300013894176342457757045061544997087529052942828938914277052526492086581944227912879749976178163077033423042048993467324512994597588462398815898842046229296497776011381028578692748696045370010777196956417763390857531429277005104633777087404720706017042102557613410987232092382443294687007393355606579381889484999468296150163911122564104992676842921393392502322489449814663219568068362331730850973432027898496293153891616144556131558941761983200660140144740094585178861004147405214349237659207199779217952624895279751929662295373050040362532376329396585695724087537279100310267334735350257704765681124551125760117658302551638510879426496637529084630797935998670532380831706478014080784095107058095616020555549659187637267411454690441427676947547026364491844226944971432198232681335125705176643353256852335602491038423807235766415568136599770921318221869168394311148199212450631238257893825594144897153288637450277318939651479717815582204897622049232912243284797211411816005593848443646040382578746584497737104761586917869217672860092523380622861039045379844821283197808813482081992302394800347444469781395400730525251266017614764481436916153441347214350082184799411466997571272880307846814286059609698137747702714324850502458114575891154935146323960791330634868206270346644349875900998793163675667959682736375027539567710888702874447082217918227166269660434936538250753010191742148578431700488607228646999938864246237985750752543689229176313354973236076694247265818417772008268347449256037299535504354870218922571267262665663458265520311685513614192703432124929773611458545599283289234042159502942628194563005171188091587715683744463765723567281925585308318406249754882647611427720231906118334132583404471419858844939249290392641889162922699492440422957007152841121816426442564489777692238801248043321129662775439600661319187566348076805541940005088973423003826029883745540574366427011706558608348872923612347349439715758878180024536872765789599064693722771377440937842632988529362468615545440309249547581126837886710150179572422147022495662077273534196399122078584328240879842045517108322018477233687511147092770178050799038755056641862824434138385289456348746432863638873912295369106935112949512918147968201063306840794715363508713242063248387621887877879802978207900066048952695305209884117978639920354080535318772332264504082060722792979763578450255817317456232719059291539161135138054673869780516406795613592533994268553766581844965386513173627057171412085435016593942653439538209367678881655736933246181138105190019380870671273542592659731167583144663173935540585491941026053993636218868710794803000952672503423020053630035177545198037047584587301126382491452703229592566442707035314606380042668359106621634244404673104444297881113397365538214239308101294425319163296094152600691257710121002374958477210033917401851248337876083078618796236641389661885814227921191934251224147638929120642565004116187930278188067886343689449195941707388545972905653480988977766692323495403301867711803964507012845168452506070171911553598443933233217435584679379383490711793994503551815912862792687173162401574061848096926634532531729275055410802972017346186724116320075192473875129820660206907107596815696433074377377678016874959102390657986469348652581657984286908215646949628409197774580940569703258298888595790450402323424005798228333822814171667958164073098780438792260602580568607857024380963217133517693721107808216505839044015282050906072009564215600435317331314426655879135696941449596201378306714629085859667004265233015260624893892632976262721923433119720320151274945235367007471883559142402932743471786843400907359297060729725577094726796337375310045160146655916794885505071283307934740939303254050224256560122590501267923031888535479660156608393429130227565954947332850881620210899286913668935605873458954116639925311363934115765172479569041167187750855647446628605733360108168492220207814650767083810076300483370269125791128352056634512556212994191071165163358193598601008679460262725355004213180772648488453632712772524688924610050424616190580464021579801345310367328193348554865153562520485133435235325197591019241067440199511946434537187487876723870113574080942828780638083612536596171540442195775377362015798974081482744844706472682694982344111785005137173193950516014460630746767091698594744541172333931701704979074953239474175288994734574540460262420898782171204321670062692622162374385419567374060568694539806088280259617212268651759024618235634052833184906827921057354658286643752159178048663442578537651709598585893504753302327196743251170087440530161638228936265046618593362099703103090579965962913590868101019938075278965933744215369853504332324322234473106362955066239453912261084023660808074972121184173122170888342280900009464072648254312801960211403646662756327539169659213958361529413765253206593110113436473867765627146964886705789246087146733724569184247059396111092735205471478146882988881414240219571479830354195813555543385721122845954926152456957960705640363711802154579069558578514479694374441770465085216001711387148834850179762659859711487916961099780132258835073369767433587772458162541880927954670719248799746633172128290982714555245885242504110450703971444526171525642852049332260844175972622304896136709267903003957927220207567514033206462440390544629775935857770291766089105886330947286654508969500830501574144070076208701689164461559479475431405086164492587340442733812488663422668748954730702915752553733044902302412801406517308882033874257934560167764023141901120260179887563468506189353663232875480509137128206656609919504100280550132922107959398388809273293321391232423633901698943712388801229648791072441004175711122284935039663727763840957564819188875770901749697889875301669163173544279930004155398102270226412950411675555962839334001354588538421942099283783228755266960193681896830820968938549414041104980098174635445432652855680636226301747203609252840417437799930698306341880991794590439956546580613466806507026332909954150923981887129522045202687275633131456088897379260081085365797243384378324734972622311781948114279341251160968829265100388720980091003981327695456071162929077183305053923059967039251750613476245771198011082375554184807528837652454441784074333242104600684506310952946770077054021679062196846916813161173604759620812059475541932814327377377133963517831717259869259111893297530967307933285896279656511478460507176718497698181328647145247905084163025030441994893538139619654964002318633869118814156266704266903090998230041165683996954053649734582939951778483368122188875689251309466571117562727798391574862400662440893471836738449060777655542433025888455604764503542260013531507119333492295036136996097283199125517694072228201116059807253290890770142859781721393651461344596099717070063451438458333376066346994003768223596361569171041831638735972876894759664124627441037126054859831427287907206750285831739984965337760290205379559067070881822286887663700143055673756678451952514058749743774666142127518770036943102357309714847251396983029880084147653955501378042995097425390564956088621699658233163856637329381099987118072774644192540501095242886606524955881665477842461372936059481543358741414742093422444213730514357094397700411854331196512747910182275745642444685141730394767409440911231752179175967322370437233285159296829883483497756854981795828611865465790244574468072421938670287440554863105834813382902745382350670920015583766545762235111774240646582228676531229801351482781612369508887011069945012795793133834446126037276119679063920971366713274682665895926032190201537650471824154010174428052993699578840073862884706195862991510541795107516291133091394590629526874026104818968481174814423584029144270991772876540954048267951787110091622076241638900651734741687952219646610502758103915136530048555089218040019883174093286022503299009597828213008031930550990322597317332002194980505323615439012097314579864518744138286913631050875159920553233361458488848770260331864838282703267112303089724719916200376829520579963829037262970539150837405787291896598158246545293192257703268366051026279495624428774563009459533710586685447630790885741882737878077170541098264798989644443720427965180570883863204507529595912391361890106857453302836519790969382122278556429987216008435574433183287241361725039156052354869510867273505711628981864103252115950074731017683958960045954366521957376635757082259182528392393314101522406744371737434515844762291443649599142973029565022267601931702674448871840744676671690154725983453606275354363769901585990916939372837116190468608849173008278897479311646914163771804306045021985978599305508261256210225876236663609571404319807540731270597421621829659440208904345226681969520444843677692624910071528444955205890140007070106500193842725833542908836083954577910231918216465443420300662503005429014544848138846364358304137354120216630671535672890831520655444901935419034699239556353430139879807108327956056429039006055546840811411723793510774848393108559233849260579490335261073540367877752791618642706694502138689817722755473838734458746331042788229231159967350119331457128434101172937584553811837181526991863761310191948205850802078503375447422377938507019979618313028438007186569495134090819382909333594127041707368559785587655597240603063447240486032214420880470503087848424808009045632477579849216636932881869250718308970819792311687886519702545021256089980876730469083045086494557098085194319887235075046322149602876465253491523519790017946992467497453668392846098246883262669373661208063216011257764828140422646717138750545404089875558899215736627243319900367414716406444243335657435766463580498798083510347518086886966278872746052906451347796089385304404590945179303974867141375409850926041967457563900634467911611917339925070821668008837052970376194763725594033040252477740822320773935357700237315938025945913006895809706565777839931041661634651568299314749372382773756576647145794909859102623557613930187840598785453951635966150528066634717741766458320754788730809202996573315632376635777257763177722890930012183071978429874246333161597403137692845839107051186601717463648569005524516517741652079213216357069684099493601019197242168768176051675591961153212732472278423884138114864778741672707245258832720212204036121131119968934419253186251694686375093842538619487903261766986270143486336758184190457553220178209728179481602261347438099722825438060183060988708347556794511940929401804984830508605011525207837236369533362767710159772269395336942112073999776184300271690570895103400190595880847165540419753839411033829988582279923344587796243387730170613766698455189067902317136327719231170575824642440854228903438975873831618723642321259190015007068849367753710901910781910224067969582361962507616436149808581048384669692418445388579092417005530281967138429446845670597814603482566193440154441299048889465726198472149912725809051085404212124273616507539324738271412010006132100054856664762233490606176944680545951655128740373639440314259208034967178197775104251506586294972724119240341979294088625790058386355313253846133387034639530541463746932751678863722659305233292207350982946200325312386224083352646001771862857829187388141014779721794748838547464209295293426474603906973113273690931416618154629329402045070873647982627294367718502057116225437225973380974606137294992590135108262071721533843213697403067385932417337439228762076404184147203236404382189136159443718973627669883163243128582893525272314497251018057222714573260033939089604830123612828271399430947140386560367598837878071913039751751503519711125701879667015442794063328107414329498071059241099027408016427701338893300581951190548036657326654164534754576619935288060479247531300078912793956113769143695896883168925340138829490440078357557034932898496200460682855613609430341590307598952528432361072718305574041750825608122828786880942079259548464626176303120604917632159916261994819131272119024263767992495713364383652498147496679333522762903964073288502616989476897981818942845614680339411726777785336598357515774055544581928368458325395401755540038439934269053303867228517087547147087826785556244974307229119210095099142471261132728673057521688950418097374914684082102103072271465341070588792399465104198007393764020378741317217819778879867678007194227980676575438299384386999829618929349940317150421386788723242187258273591605953447973533039272839076621165927380852396398249320355353797533479325917540599393252564606010452622146511525842661081265017699022905153720635004176923699051359744057004534834051627836175555370131073756085997770392343830352730903040253302050162659598119808429180731596844956284707706989153378415008476511427332522651996117662323680720655363469143146578846237938481881354219711569819912985747853793534897915585446933762204309239085531735086230592539628622006857489936728474342982821190401366123970100436396908714052484541428942948958174794012427598435317251569705875628749323915970439103448038815882792301529032733504880396801628896296537534687636750251540320082248464712958254511496198273103083845210414662627010062174371886799052103740883880245201902342865158656403027184709011954782597537584305452594353039974332925590855019416521620755305038039976837605817533585360157954089130074389102332860667421698056898792762473102621062676417154031183587084130148263546922429845019957857280222643575750272227163675666480485484117234719789901597763978371793368697948765670825482916650270529195671762311259512792385569945214950761509918756249558614888687502821457590245555925872903089531193198321607280604973446810954985779303569323366926443070151909320634281187325032723111115225703748304467773094713915918621669307844999394155940780278112539818751973199130301463340698870517168611337133851960456967495528747386635509184674660689348882980956570078370892086965913873086786582435580711079588834264189763795017230617548518511749478625488672801012333810947358061411370666702791318584959580507316092579859337925660867057602897671810528263591511019194533034813271089397874432946728128501534039181740838338064729721943131849036310247589249158474403432262044391672206316999688970473398379959507624777615241783934752673908032577765148101308913121299657223315315630148926494289530995040976035138764525074244876241791807158104423766828526364596404090588861708818351246899823235445004297306921702050347321994887331983208483601425552455846100654529418868924425932984969332934545852424112703287386133170694081424284209092137945681190134910602631447615449541033212742653083324735622111509659800514813605314694500887544437872593856925242343041123406094288795620099629780301032780970628631138259782302829711501904645132814079922486295316505253330579982477761826984243149875129371965297924730788081361274873952357111934312298494209567335604199510279606277379449506002763894293060934412452942902254778315077552942793719225953443364969532068981341455329389893235031791536104726953174331089460802869179106298924786792847627568820443119012221234766735866110986835277809779733464837434750380889820177491178486343967186443909838825765252352450093498539415344803875432797226079364805105879711710819790124675245848639494939625871100203566845791206830337657105386745594989028011618030953088723057282714710597195925195521719977823469947282939662529711004538870199059515050463238145058521974332298759493770611432670756645699133864674149825932690800788373912605728413638289124058038187958423567945027013980464229176947303945806180400120932975509958842033873527132204494987240518933678840826471296960780530391150305454119305703971219569632849887500704684845834641948413460050481052962424767037236794626635415067250578676655891825961352246507664140797912935514643636369253331068863115397312836733709260852016969757682483160006178683727752257537774358262527369657542165484305418556784259233783819359591575222732641647257840166503284054007557630461651887727987476125617452258399058665941627505453179723517227533136944948569392954304584203139817345661328163256443102357449539262768397334297997181072699313836839397843123715108856579735754765721736044864147595187368256367211885602738308946324233297011353567172495519575246964296536214164238720220815773159737216533198270454984616102625334647729837691570581126684911638109756296850318032640621162623902600560108479515830687994527220225638248555997748190979113235225717904243148068495410000226120463371850697496135718318211833961062243392124369265572668797182319837868517982470837437393155261249956761136296435109977314700443816443485837299876766060506699226697548699714330827744977894547052026822124657728979894115093000475290586042238918346502743891495142422347539039391135411605511308115989023145930313386082209498679483029605810463091529192354430260744004997516494694064456121277275586154301144530781558065638464214629112252076126027806933769575332426984755679711681453913180237458373771707122286416686239518410914348779814525309152013713771009664583108871646967792081259905542552074035038020509886101332922992927017440440889537964876431876467712353231773883195777847637409153123909036334437912684383544307000273751382039648722495814486078681051249990721042513423677243950808385275821245744512634030987229635667843929224685358812038533780382735201379337849692440239204904284545471693090783547546124427143593817603659107386979207901272010540190010117624864024702722341845388476348248400840680892839625024192767676021770879626079698134194212963730883131599176404082773122362005125861127462207573496816789010595481601801040610842690339489484983317889937129200871734714747951993843738474565751631405894354854612469920832423625583331749309302303191677352794172980329830406828049647364369901691487683085500666173493065943990260995557030730835847085156708579526635126852188157945330673066592515292727748088130084125330066927703603871329371435847317975736570226079544050026001685670036834314628724502400290456002868948926374170157372403646319432892274969969549688773556083866306924465028031855380301395884305091097143500202336721925146007862596771765914098203695095460438900390641517655256641285432456855305526805729655010396677628570779949417999007618880339358400810922991979605148167582995791713158158935525273856147491242729510854367774203159807237398134733235990924304929294688500441036985790354359820224606396094331153610866310789194749183535211551801888217573016431899774262858789390665687254139929026263982871870865828878436281470723754744503628292115955429640958641599668080696084810110350156245329085023597590785921101440415372485907481569571524452914335050067219373758681808127276216276154740937120883592409052494674787345417166424814023939561942307519653483088453112077440750329308505817295988858014412809617555581413124620991429380766870347813408586571298861554200228321231477600492385705244489704538901049948166466869189938846360331059525064921813902835683021374540973463094434009807917675503150935359901849362564321642090860370760492577344675953414417137022657276040461520300378494569962039194428735140824354081681251222996417016273291637353934985464471799166574691583952615997462250371345350140264824770008144805130914324053554863549285561124403385322529179264683170048659163462690020792755894446705352935704714100355692934071944925485630145359898316083278165799288903321549011621353904409336024609704486518257245820897481307109046600535226599868050759204292613083694565668256960140486066753437251962498837318036862876711002039674587146744468536201344779457841481228368106590810651319395975115010657502040538435896638486062001097525593588974203961009112246493911734834256437051857095705074705078488773997069178682294886478443184698598811874874728937564949389167045110147579373204017146929617189978360010510215481186976746887409222152648959786740464280902843372542942963817516624872426728857400699905939532647967582663614642975306935195743628040902485001136494777567406714039942860412491003692954076712733702586391445704339800432348130402502201596833427192513863281218328469706104265983561467710592171395137459086851332956414336767815599685090405138688288751184411164695344662254160870367682971134647742779100372771919176887035148306555635827193292621725986258852520646426094280857189760578912702093100243109029828466319041167555357784728638519266141382694889169605909313455889424521960546746097382538448155295157119940172850444616677566987677970487081989612504947478602260337112261426378983979277712459570032784556346414601514876862283165368614993797690590059910444511989121750086670647265020535943008181724714680647313572080000182621013569463105327763964884886119165662422653888634119157454858658450184077543398757066767204698746087436042215531803410416391156298272846587386588156190317828249303625545510476591494747799764034744800923749448334365688044092998593969665463146608331829075804755437232766119323265899021327821920010945761404308135170249732934783645405295563756094490061803073917088905199806221271117508446136326181023940892091101782377329466787064124299231604958118354330998705067118958922351996786180024819438903961609655463885818996449166271326281613131810775918858981431039576898064868539191617124214886275640797816768656635241926404348603510634725621231202497556427637226106806105673375138965069380853181486894192018293746692609936911431082279703563748896096299968728207063119241972752304706429242191166862908768221345113951966397522078036734450581291870642537161145509612470456912337066406272991199782033645246688280065877647469662578889774846922240667216666410750160435587258836846231619636757569892716530195012504659798779559784337499335359913552637941981383651217104925887177384298643725882873797916927141618182505686063688819190490512075982987117856466328415934537951787505747009571721694461458071344381258495152339603179374180287395576333100943300750198413271060291044362018662518000796236507849758386517297174166876535747608678620807558315778194830448572517940271225536918653949545425216738464055930931956032181517420620886356727335566304504597858420534940865259922778944257578063760683653415680653946668682079072470247223503789905084183630154347740377243345419499888748671759946390721266555621641591641633614450378313432696356895418497411455588509225225046196956989837109493309117071390225979090236777057983594796402621238064126945211737206754091621467806142735156752207513219865627899870868957608802920110572458330112959241477463414054343674580700872804228334508825356609389349481846026312881862780778607580760466203563555380315634481065928996891765640669539580574388895316937732257148700524803843097250226106614754987514729018722425811083234013416033867425907548416984764555051843469049649880230579319985646189144115699625667075363706083928919745652896673192918286909303931143627382747692825869868557109070549789549552507049327629037222224906665774153111010246152191663807492734189760930704683048944448126269806164075158999889617416163640162378412679799106521363869058001991351805746807439316648412039850299695215965813792256970029809544575562407662070842201004513638916878175300302954497806150246858727505628428886979669666773790617708859159572501971354455631933213735516070631699930365489209640770470878175605556887118872145122665273501252421729107298348285583169681481947028359214816570603841735569915958387847811915188272995711047200664714599195373384370524383275431965067831235345979895217113994167887166191508625163063987938239805433727409141797934095490841038639988110445104632913807271579760018785175240526960765954592863932290336140202051909998126441494198462250099014586589048336565699514390793281094334320697251629590890738443733540124560412361809274470516386092445798514210109293763134940231491165816491383923342316268822353623163962501946056391194468519472259596580646936820110424811120715529263801414308095742699228947709758715171778321038684155098733595625616945803784890045678111513712730020863331812416227101261224813507450732684266419336974254871003252934655328508297012100234337621036027861309284818847938864778317645720449688095924302254449344225700551140972930165164539290687062874526552730025383122231441333513429156261557613440856777582121485226805844910452690314247997259418108808956363080713094628171762169402597447958647960310257263242853720896987067641287529640631309871352808081257291148260868864820562485622026340210889721878063629524116708405513614892678131362583459656619043298273261626563656837349545064420698761638599646816696810595406476640290920387457366525261845795646169973986725869214936882785097728710538868087990735403356301658350557597561259648775493354011105406395782932767568891205136537081978985214714349262948129388609046235623201099732355979676326587113513400762212110614020616095793263296529933703656887528947877832034725199525627354376405049395114314892055176281052216846336103217681653746622218998337637473691824783803764643603419861639438324450283411061590989560624024819242348225989317099005711516442443772678108472206944307374859385644042715266448835181857110971376372417666028588185416447795647629655000677771484569383247527725283686893257855845480547470772435148681932974797351222589772928295687507384158061875476695495329890590896443373018248336260096838711736747407653601671463989780784369698640932951847562933135125703906077584266896922749507255549208195663415765560978078068269802099753390753513763566875320612439092983350674427872859241911468994818743598410168263207613494152098757275973384109886920306265649429690409573356434558843191253411754579157190711141415393225106082511433666098885715720407127963009237228727457177679995928181595138994584665916947606467331601026216455580950389877349771289100566481401481274395265750458668251110780870154942125689779006670263743433272969698533416741246796854511452577856351318077096436885819106430448962637023294352864053869742770314516400660108531023958587819700775433793516418170939820353332148907505371658368147748072314097752719689333455409532916274768429419431055489748620933895928198107860171263879371506104462091597131157232798686511741618669742345460452046319758670124207951773830306801204759895184095468023120123600444789359946509432219984156188314726442720652274548922648627564284324849240564537007041270377737992443607622180315915200122874009612023435182217921482679626514048578811994915902260895222997062531648194865302762320418753179952925419045189131503878400644869800586603115086716193429770582405125816601906101611367491151756939871802521491332351740470162186438375676068452379630085632942410647770895747981345873664090923051157058043674699555657725179514090341017439051448525127575489352929165252343601222274547194787589837495546331698371440746450763850031977450204933666590320191331128188232069271299491143598460587493907294533319411171335149046627770568215132372986376639994252485709404095408796105598311016281518625184875670262465164042947142125950458302949417368063029283212921759578195593897908302160594875907182540863177440475927590302518939196095001445123212487756510243767889397193535971390703829290240471480528093763761655809173914866194758919876067517184522628198484355737104106467710646792231573281893649827403252306352116629278833649772785482034433068380171045445186347014569752164816256369976774898110961200817106603126902037437565481924481825156478514537344655613541541607727679611038037934684461326430483856285269911515011301673357578173805160874040338383701557114658729234387246163507123640328316683035219041889873428226614718166920077989177303582717459014907036280091378808300923470086934149698468893660795132126212173475366330547186721765508903633112717942028760460137422975160706406547265653975414388222907010015862828385318368274171929003123087176921062644998761016525384864287157558400575764533247638254556043119320054333520286262813353485442625543703071242701822421444100204395475434706995240316665427678690894633225898162822946105402609265516485728538477302436799189910811797278017229198752428880443789019317127765421466112293554213880845535256479372225520287606449886272895287065344792579224826517806828054728727998649615691511393654406801451898560990294777311559263956470616676633683985332122276929636340713484087669995531861998870998510438602593888444997929536207644602174856524125479560916645403455759581054784597765686609794142312002437909126925034945965098770474216809188944324944760531623895135215295253268993232352247720584897303867447013046871504888077498875200026904238107494230414435247549661297046774561971081459270443932965714953472699632622920151400517771440828429733803395067109120168837314200415020464499696211732212174591936554069108117044294599828857283413814138346489696590710101221819340621298016470208121034473919600840843254812834487715793200351642443287468354856440302229935689973558745297122751174425600843736233159582540695452121622408315473632422858879979366225310168106082196363317886333910968154801536086783131408872974840846725889717075424152017898924868579212343071478320223215870207236929162226759646503082463601277547361282576959582645220767021852097859362860259112843940141818955888316546383826578894509287248780062471959389157671577737612566322203940020942753984779699271725398699135445247682583662320196236543555624807199768462180666587690853605219311038814591851953629305069912844235355793449288351280324469867271933145921589388275636487901737156512335065644961514681139079222693489532278518048186817131902299546124768407425781493021372635624011760575650313998901535152030042153165004305269609772934597350069394402679574721723256163643608922441556653587396392250075842866676277718769979446477818094988851274576592912350518130172029638551375190254044358725667313564939504039542864412882474436439777644954843575257112151794140344002722046141811836768642072031579297742917086900019365930242169310473602271912449715638514176649350801019527548938821071715046272628128850701729564196045308591491167250104636407886737343987052397775290091921886796256565693698166584351920979861215410509142079337406812624458155011495993366461724956046342308171107626886003533015884070428796455599622537102651009893838567986157287234325698683488612571113688585780472226484998251613947051979677175699508945184362668740141656554363677204623661858104542455194946940835414553754703542607907542466055173207346667117958389578811763638922897882597722280067337999805970504972916220130723583070308468935342052056007914534784591519759823716243332506145805058949392968288500348988658543977171672296108455489314903857914293509444378114715863900492544421456413999164150308379085126672646199192401413919609843198813053457995700344046016496151271277269692207552177621980221493455188351676208875082352203136024255393300592878460602862155223839754300924482330428495449525032327899765499573444668133900795984514265351691198617560492302808844639606405765529171111233913979523783993181090171900972145920529035002383512062748241967616227714189889045844537714911837337704697528038414861042636940580572284807387173455725174630273725584400584265016712674261253578166508986700218361939225717065836316372294972306231073677628433797268657030958528281396560908995007324764710290166777565948181936498512140610235403168308454953017787187138690547591479404348209102895321816106613950754378601438881165608665649823257351010610983240281222097571630880634053526779967670603683259636680677648880284204151576453554125783192205671735875286646161180164269297546860694258583152463665301482028094800141967679112655819184468215833393675172203818372766722159193525356511205513931384115086135197173747803533446171255286715280434523459660009354051525753999333059880039042968460235678061924075646603053450450671079304043694878227005897282883655988785945932153929715901336388843424878910633630472663375086780942824769621602924534754362982626266924388368760015839456532221005555853934622157992617059476166668956021891697439766343590327893311022411948825628858132304006373039182263777616636020415021789403034904318810028195065742772081323440344159319679508429414229323163959676345490391224916767561676070822151973336054682535463510082983965816833842069405350493435912568074792411430131751628295989231805681796308160495454588968076459382785885163151164508597684271842285377096183414630409003914663652935771267480567003575252053819596424754647424475515295446672523036580111343330397630139946287737666706389631236676813640747510779908017608458998273634111080329573180865279841911771391068281002050915607339768922494171238291560465254573790032711520572684495038480089129928576857475333386718912336363666055156039965756516746851806378940665346884846503064204600104396698828620186502930933390196716524005082377511980667611467017973494970348723786536855974924003784040239903624346923988175907934975007835894767747811765238979759795350266536503331839354353189708724544534350948380975847644527554737845972978048206312716720306453356440765835988970960759100153629383940643558991129799536269934657437264198810485897406809888832700936947523821092024171190246441837409550744139500244590987538870288993463793392539577398966378314277165071534302267077514924540906137447501272543592377949745950896065175666613475105090090987590084157885151116424110376357386350757926116241394715438361911366663180829945309303278721276627441499069593075237340744425528262769453805758694730110750998229829056952985752758595744294198840496269382382075085425361818300964614892086288596547967423776440657813803635427806629438664111505021033166796402609429662318021963729115101784816110111594667918268789013009188240160383244597069844139182882372224176953063238710158940279601575151491892799608481252184739612542509141658061155086306646578833121839016624090157198681908572187695152175983023673063488730716951412600059079177713715903945905985847665647603733239253289126705187939795464063472403873952091372409747960346601692942074696744018051265096920635320584538967732679421178237799529668753520175701888753072772930065918647634461348880251105264202818646846073336160125493497790808553272289426440823142391191124886949527817631371347181319314144568113220745810719107968486437772098094754828124989793135816205446098689706396902670709122342098292390398075600133337774890247866686027229081989990015248654824274661403343703544599447809887986442627293734929103323530969890793597494594548615079093012614030855500158126361818214544653978495909415961704013554581001307264823577491277085942719036243281072797225284985679816198775284920017479424522450879966697412434340506111485314077042329776938149128443420190334140897306085149142146962502640779986874929453870310202599630425332794938675406631587986888378689160499422783870321751167928046469772724920193063106257591089666666804095190039426402713784666903065745766657026553510660922891222516974551934908514681770389365547049039082136500854906162416952094057023148208281988717486727602914387585126321445529083476804445042471710890607606240857517935441345485062878855097038105811051033585143384548252097720118800265783553519815076428460170332701966468031547251467606381322140974511977416018504745488235814551510449647646553569861330789168219255797564971383164003552536004058363613105835227276020115348381677888575420434341262687740860980494991042845362386641265683800967957151391156380407434620209542597048870214623350870599993328822201810367431998037688904692297009509974773392612722117765134266909430621117819802865455108592107756254181055038177601389851658596131591214808882591858270401640478958566915010932869356894135029051855682826045544039295042523809936937165171643397251601400681195342644424494653268541923405312518784416364166484195221723612628122646230263987603934606146075093012380201982138175574872939665752626112817434265911746501447013207048311659074803495073357579996999144997783598205515804368945358330325011997156120077583002492409784953551449458628211080655273002024652857007411358497071909759985627615120634213134058968341531824563352088434964714753676523855274149950755767507933848142607266010806288929357916770842810544771117922783635619192779978744225584328332391109134541370042661444372765323972949257670127467049493413002554072869997228934326468816608249209977696549125949243303208629596623162335165195538438335428705919407609785807699093367869115908418522819207097672431629425909702653441028187598425712582575926013181389521989690072934996447951861862595876666888500059583908178148801286985196273284997439138682722124070954749420454893349797982863212182238467066618632017357999711238917985678975141165820328550400743238987149388899583702270947844828849026979612370223042441093199864192060827684916734516365774265248182887960367381182481736797565879558407032250179062246838276092119949647908911367485220753105858284836611927637065676755221418509354845316919245724750285892041835422920721717857272275132962654636401113661725873401744687451435472165912300141176890423318685800202546469298524483553831217211285082437461369989536551464464355581926213560183619046534237415528244743905071247744520297114379127501657776168074629935222737631107596699840495238463673199460930351563218687236868049690833039866419348575526941022028269773430929952757708814820487249084783659949140311864242706946705596041910335188551375458354614724625274437003592950092997359533205245735937834131326972519826321025938440561296908035557278670601388905452026583113226366724005350514811916685110024075424057283498205540654259586633618187062101782891197705034118341196313789742026116185858499689553704123506840525633815465915418850854216217384650109922915304832489249880221182918213653595796354422004202994563775295907202711573182796751918291365783516275395354916209381691653665885165262317777125882220709110914114844784448404146617612146397961616295358887444016367776414720574438409932733345818776931837195484222367325152049239966732369156812366087201319567095138850350704407102658468270714017109002578440015120369270615776414295306318799857505940361108363000251084858079023538471587634185984928772499070139244168583440287448244764070426512085038396587236913538249973700041709016295523762970638135188167854614844594242718893020495395593632427009561493701900048064546043904290234664912754582305875618412189524241065690577385156539202561534723043765180624102908904323442602266621005141397025235418428609714525890958950062074698295653610150571125257193054509324249202390386607518534980001655477398451484276217135533233054407188631946395482308732225918544224484957040419585820989286761667207056765235180235607491503647783500788166627197462749384406267566205238263422472494936616456664119603099385036739564797774883080634661225317301106196828208945799475646988923722222463961923314568868493454849688986587783925679948817264915158145848684190924786061056348544685743001959531603756182805430919897001198917075622486090027779282898975695342543596500114862703876489670445974116668717211804594806575049522228110110630766237945182143192925695311465535007940562317379781569528372261210002785808730215433917474499797107870960043656696125902736710998913772590622040354144453400096788659491717719355635521344987372085490333033918669352947039478481347026237842378727009799276815626716362407463060930451976383909502631066787300710718034916827247351308494236713251585393485070729414149623135343560153966876300546250439144497732381301858709067427229591769766952234159581488644040380424228323596499719855559486420032808826764413887031048398909095483580580389113409574535462015578656424803735283806984427279399745320694482065449015683737090550659176485960265205858906954768673098365802026899869272522176979214667404895130403026872571262523973133185157677742342581026972914215198437747038640130451663897447436566139105228765334529179157551475978427658912788282388409566596481402747870001569977748028688339879792840996497627235308542566732117506451849815671759154438317949382050951943705870746618552760163348501733392498171352609818836934972400692661030129404432484708830003470812808286717218797571504296304933231045903471168322057580213964643679684358349931503714337439328768706525937501953244208371985225447483826104490461705094326703092336682105647094167321003314603562676968559849829179634921767961031566125124936766231676852579472279398102438719704629192930434883751251043834072881644050600421453004219502303780394070858504998619792322291808322173813721154461516361185051695495435258644051762149403614149366243035909785654394705712148071122159954130521105463087976569257866153545597128491742617789696294102903857523611936169743965960614322569793017247070647378912093088906683940100886556235202160240673558927325116253608057485802087779514776643649559156135937736602474501126418800487858079655544704739743774351819487537185170866234583242088413150434898547115396207702747147470252437635954530361201289055282317905243458633083320530016426987740330410992002998426547918802019607867447030425067025886899172176420479620858700190185908899074509064141644630725550714980167737148550340168558572529581590111391542331914932824295015928739155534769279212097541685460845447162911684488378218665190332663278561884741693978974465046670248208473067819853537865103611395034519120137098466179135685489693205613778223263209561513920659262328722360015870615974545677092264196512491856032280111294554737070458212695577292287976773929698312485953519095900488001277569612721050072178242780924216800855322453664962136548359305476619677823255593805185234708685528065814979095634062744436311313063802500956174760480339895339208178060123589621615072110162245353027675379148714035753369374352996078851234015710456566718451520661948915885550763375488911634253292817457989910708189213118993328071563501015882527429275251237364831337090556186241223044187236862117088847274624504017501091574242922601827846977556305987389661799620343801776423283500828117095660237447528504594055588572096123849510405775361566459349136014315019004759361808708602892840831664167910896969623089546232501666622632613232793281433325708486870086371721848552736831456538249295915393038013584958239367336227870517710434955076541987610911613581854868863859240652759195323540782506189354658434017761408791827079497295810055848426254922933468811499548340671950751258397116613462752545975277870388985556692550593187672253683818411174699842352877576572925702574138830977385292421065675649531824320772932667322358185152988376260081856108000022304549209171313170755986631243216869937450119693593466483365753431044826201483120026780050971330302738123331914994215779012294848757515567076058384988807467456245707816277337353265534284628416673039988857466189839334256772779428687538824761349531154787814642485772790225943060684207620250772465200306858104760872866659135095407328152941461811675021106276700338214803313557608115937264982187144366190874668532700229289147318998661462240198276103521128379371934060081534192483252424822907599348477730896796463946119011478697265118459419078287232734792573760395614478777611268621453263432004461695035352949238925621399959376811748105977349720372343614906834979332685043019488721218305210847224949499503716745636065381296487201216518412088898078932847562728260594076151718989571031885550380820869043225165578857808158236876461484803493916383963480637375620841558508932162938155555557255134530894034969913577112176982828450230843040315080915086569886902532815590605108286050114474964106999931589066874744931708154296394348708255501059275874047606501950170159653513168297522900419938999677726819954591476746224340285120465403655420239744230800279312089430409958006735792232843585934768565579113509266356073739530770139259611568155788526235123116178749137165334913126318916537084626131134484978174103415123721140300784097007763881476178074940328114973548851611721399330314344953427337310659008376330232360017091908745148651022009095766978901682846403929664855509012692951817882829295452063535119378121227723934574560543742058251650232648647926096344854192487805533409252270239064092175530226655358517613044948189337459212697874604460705648100543776505710714070413724137725059937763498918598386166229276876093134768027065661242820842240036132825945271873788791585852423330839457394426775582252986757612566049738642634060053453818303643381696374710133351392598308373089127400047659052692169871068224891422637071276700181316901146487105855019258630640098097148491846285747551883938063585309838822476137008051740747320614006236580809331978783604195267297866898932580026148215512053325588941963552450633582998680701535678565464272788154703019680655093487485149840113237455092210568862737981129165143050543643138890977111568328732797426275812883260100255306184979259157900688081758852402734700141523151769012569048118674738074874371641617783018631797314809422342776659891960380037880353805230628907841714131577084716319760167198376391618585697122378485053625609374009431091175333858431602801837306346481027346112701031282639676371229788148917412231155194146605825241081296548804234343728681435651084923252912692014079464086101887621069931558425045070053366231663835961375002664570498414467720174506913544307274207502679257035173510192217799492195305964459379461474645986263580444833083066524373823629806645232371461674853214247267927710129037761296862050077690854696798138273367620928903434995554623077821570713848103279976719690019198185343130694515287712603129231002652018912618012055740489893395122920040480975604892643673910660420892706776691321854573666907278368675770932970299691056732308353035201951208992357419639465087982643500620108125379660299406690992266576373907504945095494048153206722562544890310230801380756371498862017143972819044889920455849666145606320612622936407395385510011313429863180620546269119997314687184057435599891261238611029783044543822872817599984535942162722834068985994315657531519581991051373942529622739084439897552710500857465283423649086249110396495092120859846839000214701590327974880749470510155190267203546120866485388833116102108647343544589356545030421936676814035882976208723450864820819882910201002185602046545106976512825982432366503411091808952080812214266373188745901973443366319292909034398248270562834394767283324387359940140145228307261635151332678926709287048281287820297473670535634016923500027933344852711942756627173761416969753649127301789974939259883412234163692464406151741365615920151309947933024070918327510885004885365410540543502036054040442361013384897730907694893567443441220770262828470523977369336739958733114220773398248420036906752859596144988866099205905349096493416091065277446224736318308749888218619956187498702091943795564096393360087254935440554150121020962470972378312393327934624440734659075809707962497545532896129497400575776617593507981982389938650392100292277876913746475058590321410679733945149914035789006642249343966367434796142731238028506405128859639325613161937488427358243040085678468644547050893120477605655737760354425421878204427705116803644162819710035934791795756198947143986307717771659314854851165909867196431995447482119607589512496496038267580278442719483138918571217893533634973696736036867532806686952573561030443583159035625300377683166032130144478428293549790417936558352233037178968808674699209125440189042531727616820340770291347814002762794638075985396981201646834610454613948312398073024467805999290612170026405417862688424350233839988956957962710964584475271449908827676784929191898388128429918033391606772163844494091752332666554169260010286689741972282882010011770763922811881279570299171471041287363451210730611111907074646995482444101751354216471696558290373530165245985963191181145187865230562296135945725771264088065618785990495110906906600080196225662753069388441409008681413937734054062908460768714391550500042457105724410820359900902306867996930771678331282866352595409529407968132909073769254660513379007221135396031219597803000624165119272635044747130759805977722985381688770363416563015170736221168142695616149886248820235287647377735065469827900259885421384008365416224084329075685975704155667419412485406717844648721957233981591038605821049489635519702978139382254591486382352161534258847670449524663287624399971692592119428100894474569536931821124536667395897756436981719381386293657976255194039694306026188593319218002484665104529982059265575082241145706890620056688190991950194524866735469665783356770226397657859130217787134344912545862838611103319565684589752382064995715400613549059500761687909910190915316620776250354365823519828860809648894242322982204229191189725010102886506452279243931794130531887147271421519451278154424048762119676659272743222254256335660290972983431631185558840829898476814166019180298648979289079477355785902293594568100414801389901703245630928809424367602720544968010130156544811556497691973581523050967040551525520519934952328115051934901821314501254298346787994284186300868727343840811511508351166634457008610601612738434456809994592335142492472012487302344972694841231868329328834415321919084925931306740994197949551323944437335344264581625328483747214987639962184942653868521209637084950300366269331683092901038103604728700867237405464632068351236508373150500336333133042906026480400066472409296952539114803245678734535171199057284321041891605520271182032876270519592793901452334411410347494789194883350662289015409590298870436449150306292138866433117753350009814056438585643759239525248698629233071131067033012433245326265772942452694849340540760908971101758147778025973979032697344687202060191877354897951871545668031948817917815077765939099217741288594874874887296863666662525234507694940097041672561301217607593499343209370903284505413823273467070738682253055688036782851006871899022484175318123134577469467945380085636381149100717098689004961026923529076836758252763802509784033414736961730753982472645828965092706131932878409093162399041712208217116262116428729853018134069724346878465356203246196487686740366120010974442529055835105642979339476942707960197263451984586381583490779085448248461885832538533263427847441654545555725114937353968781592877301397383290072777331567710017127492117044044053022741372473417279882483134865556520579032397140982226067279690226032799547116381322641537280997643590844975527864295604940171259360879107158036593672368955963555487100349252872065383333544603207064339474443390968993292947412321057153184601807821844778520353755667468139490034726872783908472294530914044251029553070615248242037255882698647710407497889267176345655727922264285880106021579639101645872844725336957305863247412694236108997903636646570606677918883214600819620636466236452103652315281020835168023268747878660698901710357666217602334842456142754837399017471417859875285730486893264732006230664293645941718410096695616732458709112285982249058443790170048660279374926281764079690679381708057794776366901503232413402424969372936319528316556614065437554880243108205991493971477855580218034627650579154489391678408771707797155312181481795346424670067865940671090013668636203998162303183762125626061430057056430001884446344264484725983971551166045280684806846125239234093729571351155582165677906647072841322915215304603370917465577767640087841589391131798813684647575641668751841222619295438165488799901924625443242086610448911995514994329017988322149781350001389740825988926006148841279843772783203517861827574501806733742477011448585405293192553829132879904570634804501714211490463966465262883168048212684358687654396422211763467696421254909727751438948602913831235790504789597020115377282502475934882017623824672725507217723891224561724103723872611892577243944595832380981258203015314025019257860977512696986085002543947917552343981294727230773344420070915708707404937157316248203989818449106285590414787724770073645716589827851922007746051266714970668274067141091018131518091460872338823038456685856572141160894226943055524118484811073488277584842488015683808810161183885700561888847890161694819800920374220120547642897583757285927221568609752489820858835906563731800953377236129077597140994929489643035493023404887098845325226417079751503515358548879298388141176632345219729425890866285879731384839993468542546618850083198372387658901997113804331243158229835820687831100426405041548014722627554957429947413337181936390083271615638368815355158530082027603271012813250813904539706155671314216173821744259437875747919533915345531338310622619894281793060450604530207005159463722956225664871074131941770750779306682165848556858842816474089844394784619407833871020633845515252532244787437143399501710173954868784721283636215118083673031321255735897560674195988614887154525801055617593383633243707774354363730449933862459037777689815930812236760159175915532171208634783080214004914807910924212190359451444271275794965163460558655445041049776231333077142851927881607517364455224630943748041681151530867615895875304580730470265505095360824721696079069295131387055240599096335254363162044883713938981112964637640835852957183605645094611871718514697273109892721787257040764925438475490196330876885301796581971758364777319763026136932772729167532969736407938541242484659388525177123002848132270179480170912979074077169017976588221843332499868157741947539077777511860561558453943875497460160387682089217490695943741062387168366959463670390935290812552413831168268098934671979761307998854675312879821326755005401953676181683395115116277705336586300593560328114128291542994427317443857261230418746021094554273656725667548762580351885767615664302858229198589677614120913908418161597477038663358242611054200844577513085164039489255573853469926269245625317876680655808144026754977816337034345957741177070923203207693880230451121285111111726083723672901926321528875287544230596202290595617684783008358723822109598194617586227025427806377552406734505603119748383097964479199838550672525371054697451439126892042768285453450158281386117579714366011251127910655217903031319636338426273780088039385973919158927224959874479174759476313287083435180311436867311965804961313536566861632737296571193928500616596503057818796483621902371605131682632359905495751187245813239615917631773525075832811260992479056537574895898968670001506687960233041791077963448004569096799524287192514895438873889786864128942422765213900842662467436442551791112338895428359835071480163658748892532374161785111336944653863614871470175003165367159330144925865954474214714729023080276891052934103126804539047053656682894676674059199169399774872731535364106838966352768944407353806478974704209286880636721888867109175807281488566015290013929112225573018606479922811640476976301951171204872858703432454070844481008905360035520966929065025590616974452621182356353104745103968482733207032920351598216826613541098045233076942362333480704073060939854196369878230753694620033432184856127765791620520780617580563423587864862583544380917691664639079879056090563484863964136465304018036942623492181025229177651407778862184189892073354948524380545874747316374532854484419542295889814408684298745406268064009702974982063855879752026415659427947269738430080333864534425640466469372941914366478277620337116660037781604358528986502055588338880513983745737795021931458512476412901192583796852547902920963630238320930081646958398284718371006961586441976976071737270124935702784873367711548393625072815175567303194569127663803032482984193866920423222886289323327819032077916553839019025517175771512322869970674231250771131383816249186361371039488331020671137882439827242351440278191696511557705427560338922705349675338209889707927149829112802425715519798870534194092275197657703284281779440301068253249361552323370526501756282776869168568287018584641054801208075547947539993445887652262068349034533482169838945701256424566245918849647284272073516523675598520029211386324071028374173601390970124428425642111386098691302579078112403445431017662115343639082744731205666528983763723863493632995364274968995862729984987086114261222798403068765809122079241076980948201356045246422630724132091509048578558360411891871641345417631931509281024198614807156800922818720063942813984547575311252827365906268559457205750472627885240761559113858385405260385577813206675072329335611696648466440799885326786316156201457000528551498079527991742752159816031810595062162252552868661750616412494017054998572182812906476370419040729407937729218538534124489353417764720009228227918919343043454099502386127033269753305388656658885143065641829957827907297999858843445332874019941078112146870925045583036474539890400434599839224697074891208756085072346020177075973521808144091853687749613130396877478388848637909588091656949196053157653348013132143409350660146806767182855136383507273747554457154642698334701203829575149877539221201557644469436534493193303149694299780901214623413997693024281039232863609463633551886680420149994078972247270943147629811297749465236741700372878532471140936845998194014991454653998958172116842030117912502798256306866580543706717685727914681766225802171087459760527916721008858062469961216683628856011000999723399597735328651520223705624046979892499253928039277592439219423984333984382196807402064649233988247895204784780156126489910658852127602935845786270258935750767330151249268611815417226226624180530572269958278533841364423826406243666379715230492305455158125325048810057131440154332448480519364252524518742154411140790921828088525924283573386207428898409613171261958626951228593850339942188543369594079888723502097792328323555463043352650133437436529092730574571133216156083447487630688524566911735887839118247559869723949413865082227653545240592233398595556947039496694474517529820060745033661773193269799862405296279273076933807165832755496066532815894001774955647755960054726692978710431320753274009652679625074784879464157008462613281279901655830772241725890714187931500854165877138145991042484029682904576597870800817374178153910133583842227723227911293650303769779604089350875909151303540791548505693212234974719125150327373048026527283296322131821721793961860488077858357906699558638289626482548772670873347314292636455524872486108268339414118839878850123228640195175641951285629625516433969618434752441878212194579008500520604638148782652271616844085579251475314809531370251645325588421640421652006105670491585782383677441804135948965221652900986119296824588346386314845327094421304189140538656869132133062589680938719276711418626181559122564518302631861700336319226555460345646878539384751364945708620188457988047345839876677482146289623278031859522251446920933327607773880402979704733204676931479159208496610380246754349326879975131292366429435531786637404553211906639916003436580854720247192355526337094645553654380880306777430334803045269920016430933331414933149002622099912683795418267407321954916915017053356187951542997486973853636052123579412782193987390903083603924673030250276731508887735333863518544546390842663507180798718223681392252112890728837774172722408599720413479912094178939458368395081384953587579384193782475749003223118903147075150383430061139884352584373927456264088978711185138845227493453970277358756662525816197620864721163610645457826566315576959587179341701950584397768377331699399155964833356122581641749781658733599424729992679482824323391982643483136248696157767592390421068786998745286964038356038405611273224463531749904049110076650603942471726089703495160631253410738623335620008289067835847291554244774004242455471186661044813483028899967463403516094168915674505141577001040630689623315972260748089121801002921557684877559869799621595226508433683307943421213185004861687081817498846143079187554471619061348934177843648091708124236291220329063249305650073550401067164045605206796570891146440973059587256428300322297559140689867665655041542181072369661959818198684638418636777303722799720681971285589703342413491046067399486631321395513276622159198036163855613988811276085374109132989671524195818991823369591384400330592386896844522446097219486584893688476700611999545145071630293345504089096049478460070973576668157504960147093687511958671582035174854430384764961706658163488467201613311494046922639479508828713755865480458373098069952610216828903052027608141904775649959838531939178493630468288026821465753574338609852702877097084628965108690490500592280558107611745975365111443614955979149381719697659792224055339966061120375880724867476220933747330289355961987428121024195191708839726341398175382287971388643444979317331731880108811834459152446451793134757338751571384452066523660587759276406426682559807288393294519199568828414072928878125825581097232848758034843366253601226724553920195724896493561354566481734210894055359476778577793327551080824790483853238453831626025042542693426354136391687559085781260615625201543807035907162315715114231860005700894323912322570786726218137434939990139546967307149767049546288281257087527343260971988773934645214281170780203002158766474653687196603824673125553288524624030273176069078558925699797242805819587026404709918828467871137342953404297709887313933048326320592664537558623730356962557007198074059282528871694041772080681610086620234918755868109846392797673635623378483747038956677403020112083983132786227471991732474796652637315305384681931566581029592284555975625880762023099000666901053851313653414834051412524886207853548252471756832325494582326068421359453394031841606711696023085424661821266979305264448556511466716868336110140416059329644943114897957358134731407256494490541941681255446866010705995430975222127253931328573910303216652851192732858240254192314377537322146089961270743198572518322953988529119042341302544534518192767584279399169529967749839501323574336819315975771857097786188347723568261786664916747515835389881192628587624460873481666881400536531118229215181078480672558365667791398561520407342034884144338860361367407275320703482482498098113436019083696936308367389005664598865272138193870917543180053803452329244726362660915995097838204279782834683293342092855832809645352308634713129436743623975751073100537869883477782517260524275440020943985697046956099302716634626556711997171292995178704476310315986452496560737648955901915231052408420998943127191611222826325108253605435237041123571326930312454146122638085978424968704242239038249886151376224625096353336685209581426792221797270890949603232207537910179771697016019940346536881433796526296974798817393711616991217288558663415329646315741737242495102944846483250508026991412468043486152829335890065628254622042469655928061063921224565124323350186384480361415951823282366292879331249486148493418731640231583658694355126820983838490498797796460587295664425639150757413299358769696008063035464978711459702330916590677636258483690141706872305891190032369350969066232215295566636440692487303314440444032189680064397280369168985863145051576533285608939248610467961462952079656503956692228399384453180098112767593366741796211482727234585077863187643798339736458226646267655260440051339852906169395268666198889749469486207544440725960615455236926024624389263340857558085294915444598955753980578002021657015869899604670937233655975175837789971507769967813589033489745518586590880411691221776975656152291084896413920569815242470835814514608041793141579006397644940076254053184931021199717698032571685935572160423766712833170028613205586984113953170224426611246300978335435319928957702588929283153247991889816300232354701804963011060884428049719137258329966676724078276036201574830423465353487428213882513412758617326409095849704409147601831550903416965776170533275640171459958971876278258493681199896932265034556070193072861390566637735203731737819299758103229234295574264438623303390255961970220601103766200908796218824954326519961336532224589933376333518880381014086824234288120929071078132193031811976436268560596624195722637018508523853877268185179230301324224342260155906746788377440265308524984905933054812149255257466456829576555770531532878987455010444673238960496165608291030930197385176884738940350008177947931984097931608602148477193181942073586622382528535682300744502194445578410237273023128003977064959368617600374149960407675698132365334844670274355614684691616718848026315890772473186079911796926032849027854721708653914457963049384955736788804566490983851595709340612472170838272913848752118709945444646994682680452588612825662609354932703018597307657115221465472123187062338522393635777111768162579803903877732346852308931757552332445946052015423512028849314926667303260783033855804838469769397326632191447164445067622996939062689607703827976654393689985933221091359291325444641214507570128841991805803816204988765767899754063450369677973728522018159062922289292682052733491550056629714226249238474892577205081114333787278802645184031993315424266960869766014394808778462844463068620665498720061446526529821794631423249623304593035909707337662410311533603471595429450109940266144622172740402426624629673489526655373149666296958505416984114495702856796846245730588291558794901661883660182943603044513595525078858203498419148108863883712433730903854901579480780344734823705849931987500686710050100116589753944289821596812630741079872215241913913475896625992289643850416851866896430856516974820033867415909938756288495929606762036910617624795869805585596390408754004776083531620883640330176407488911681359870111549603022437993071786679695533039541719954949453548239639137882713832257702605739021097090026994302545579484532343851655117570484938153861290259824261898254026336035765897174698954680298470844653736378346633625380322851350752126267613432032170261062835498611852648212687847701815197813757394890008839259963512370815190430554363888162630229971524316655594743014172597155147983383744044722927236185642441750449605714376662243501239078653257965098946636281028311607717584620291721776373113885544751938456997116962813832336447314630428889316390376234041341471946489758978303063545846517776887152018067118292748830996192655551189772623370274955240142613117647364098724996744926711152418999493681464950698446420891586745470126456576159461901047582489710431227058503622981293791754215171164280734264824080298857830489246747240688360230200060633384539247492918190668807945337347854268382370337783372993856163848174951753918592413056829272975258394949747931580149202166078453100867769181004546852550021059313677967120111713797932683566230251492419466892613613699051136044238924643440324233811123588122016350321029160068704472377613651951468171093353889023724849901721339869422747570865460518491342686791435967239775759856119461456379415597834223156632379611189281733766913755860068592638591913591916796411776823271153412893079992184195695550867016212739230620424427925509461666446966089347200667002185533028856060404499681021700146434657953752669743985824356196510957374213733177497200869914236944468009237670764256330065083382729166252262460037513725008749866483542491278389586450200595394676269898711529681978554911772319652889161845928894037243846791928986556907440964506735965416066148669437951664967675815672473454982838890065220442101740741227568912617901681312871680955414234889858207584225430498660348063073978261121644404832845460264554487172368667329468648731106957702481267427353114987966073924364878445307821150499476280517772844486700216978730835407530487769399167569077975425798004551795867605174382821794233467652071701504579275128473480357902607039667807447201293273819583884833812365486529306885689733316776097024911040726330119997088512578532865555183279057194912690950871851449642024465308579327745034235914454077435727159088025121261218317270354821600353795998341814824268535114169414622115513700881750967974053755338085228379091206363506283723052224893602869258470626954258840663013600690032584801099445937009058520028952967785388253762948765185059733890326995295203115169986246149045538733710985988408785615956985725159496799138996959893009815755595323257131598988916829558127569321779828385573615691906048593713903591167863485847285888016175406391464165280113335380413415515032632524625165006419404671675514499229798056516603414986838252532324311751941408354482484568684686061609797292996338012596198419243347450924054480425157444120087848341762718757113325914144940529063512564528676286249683191762180454505708551376307342584303154509865116347955502665466886328518168329000816897166323846775559746345440596046596478865947174467449163657895354522068510297470694253726690887543932762197336422524296046708856749974978253351054836063056632015434833144952723881391114369991552270331635867536764996605424899517678336163366830027133804196363486992420579159307682158333467074581744191805664970470735516949212979977602393789072455555632910606472369474902033324573205766882001887266947899560032774125025150760135018925007844087919619564090974471163523825778573849349629481631047574974725883782787496642038455413815193399773893935929317269849233796819888242607897119983032398852682801622234084689564345519566752441015110570601985213446087456212621916050760010655242409747370374558254751315154003675164703315580641432749894463998691328092427363870464911439720233083681427812701190995629587086788514840022705102245072072217161502668951709569613686080316867817250052964322825458162978557589464289468321718170514541512610386830821511977324715311434924701214380980929744466392176379111836877298169950936983358914672513174282381705721461575166614935102052618873838545515140338900226169741876822151906082583609452769747565339745828967756002657676634231621154280302140908544137101133746013904831156618193107708496787643628758546802322885467506038896514276001416801037885908785278198716194919202688008426659015241571546312399161622160094584289752127239773214911741928633167966060997701630235262001834814199968510581170023981856299416163425607919701845595303909340173704841998515502527227618512124257535952232937307473897550682900793357788288388045818400274737715697733238706908568398801852497806798484871305034223498604137689700161720201897568278321008158096599205506605431300295800528656743337582017213014503002187088885725205092799391344477837382807229240376504118336491160111780326694224610668134603483529473032008713486546544086385219742076448190037356153542129692432747683709732211353210782942634080137232313248113940281291519090495765906052954788336064671339329076419126826726887910114902705880946486786498898422653443689636651150870479038942657776858914951622655762856005288244681067385826170581009971291559484191997919130464827213119861627316467660933672957575487323669964692830417192693849514573681236593152233862671368745045072689242582061491527779704225292102515993510677467759677586932152354821258344267255937793418671012383506732147048617777327538649844419252686178989932938637231608238064964670831343163621489118921560816980038297594362554340992384430475876200232917405683978358170932591515086111731990997340954945434729993395765468828884619595419787702104534113435631505062551167691100088264753854843136281942052855942720089086462315304239053677041452098967844241658782868056125310968822825059588802226879072269063587892928321488390918965447588870183862788214560837885091829414565719219081041641809999648125470287544021441194104181748957314708038734965077359528094732695641986805423204436421199221826735780745227549125774106543315338273000695614541143996486312931935379843445210038446977339736826733518899141806969660607706593641478452398433001834729666673085549258281933739126964827604050268287894792455860005584722500634047120352627465830792834009809602197517821111648431394246431794092496244980950858088592320121136868449434467170575709585597341187519935030234212980719975096426763869417563029302975220632607160424005978542598952697174526752955096434349371865787959142065496137243741308367020474881359246891608141062559517596801126076951324120095685095636871869376775548736522351510633359485151969782174088728348302261306649009753964368507490166001867355338419725406931173191072911815145842141854709200168818122920374493869999751741682079743113426862101198899465240597000077115719572112548824626773628024471487260515083302251932301835666684421082427737996110801817107808928618086744010073103475517848288372505837503798693602567577155149002382820535114505324129811882038503356621956551902248270323622204812945268725797041676191473869857274423684135596063317931240511358093985400505908429433089176695073168755936173794706877486860272755687704800123240263273892879118283928201791851897465724488273298612128962278307746071175668920455623279013212164637356799186571431948172813505916885418944432593478345854320194688639685773375825536402675518426547077218305020330421848764388987135023448993427835607016964970081684266695868232076623542945831268255216061804239899699780819437128853865830770789945863043603268035135490716621757113073906510854446092872994928750028574192363518137683626134354549851271842557983599095908888320226354665034490570839986012676930030891935685443938581598571440865495112798100688427738695593869010485901255275016926611260965258023278967425830305951230952518616743402376807266296097286932987748400051033152453693651265903772519843320318576154193982129870972905774839935124656864858850127671107779821460650844400215630680687875080385302860952955318393805393569593763325343216478596562298069792828401412913395029588384945087348234015823387058663993836124669416233502986721734357868786011122269117144859495503829472096572496134255674915611608866948225771888331952043520533938024351697642733213193884456915992187678813211549107786823480323451449503177125570169920930679274607068069170757432195882751335427952100858113473019812621005084818270693343289168206379138084205165544075712355670747415475051140696567643595439890655330793191119320149333515539541785418308129231046446632108507014492132952467684266362272369190820250551596291640732601718677223039533295668542907571325476320463948887540846552644345879545726531574252215766604915195465741126581892040143091820151529982492548168714058200075253984228055727270737973833747963274938860267671385613983158741955144784219795232805146995140897471532577581151224311608342644000493561945856863529629184925097308579139148360318324031248869798923569996812144668643610865147901744593931309818094977292371718539700043133278920016698564316911931664265302514964801201205412501551411641376527781896676206471482182006607215681675142747587478288478866387203727386841339677314562121986272509932223451050660763838599569289554832888799449265041024192649647827031078317550605568786306488557582149273631956865066076542613607805317325364121514244536168170480700889910742696669676461217274377055962187506297015788799325904457862432520815394592434993404409571914273497301829841242743451769117247553471062411409464185196720160877897055911912917083232380006863955842259695449263108833511549649629901920792081437376267835445330702950144614346067342080229590486752658648419162680932231727096559239344732380528046615314357716200390498124134680451902809869422202298927557868563034279148063467200610335803389984844214178758150890318358295175882975879119013788761741523615931212333567440612831752814419539618765119699230726113771136542097012075502956121946712335360233816927721278239418759688141361062020080600438217142984511119957134108436519430408897346698301560868942638342004881680606922208666600583116798171846847065276842694603499143989700848281756753916910348504114890969733050716463491817367427428003082913999566732806773959074099097810539842963397940660182647183138183362006310280004892023012297328281501487633116486635888486698346428090037789726036329498976495023441983014621481969396596679216953851625909244594996078993352695022166244032832884259867597137306457071474286457957699388221245761005367922070587167555121133848285081174344545461113990021444856683713348689106699035222316678859254286494052696399778778846895108732426128047286629599240609032208224148820366114186711539358710857150534378690653309566172934686417408473113689402451715206405655422481391397858305485922603269710751705535949565198897308399852742387005460859438293176316242682571639744163327707332532655287526229128796495981334855605197291832102915183849340538006237815061405312592997089624299539370572730920013605542199766416730639959272086742449410275468827354962661648316575367632912035208504397476523724522010647828866837902413157627116252545633061706727531404939243266784014863137143092814969647524652590615629941198725745956665467850363162188217837435821502395971864225767024461366816132901228452594059878054088780457808098863558087441357077683210262217634983069045731510315683459500584496391846597806247321192803339030578326910729387442940924214453743202324934692198966686065891375222123687071652941178706757407669340280418110214011588984288813542316747443889046598602869813047533324472738277637888415818829655961029660886831020485061509118295327648612978043324888573606904199863106875046708978865032140832911541986814095572347134551214729145706743665214687745271339220659041240066247419713013097498568962468514439675223035979463145241486097441202511196934431013906020185410451638602242021684990506696330871871635185672996422493704332780187705443502351959083106076647558118998403482825277970441169418690381317528979056540210378516532867187914306082883090023411816042852462609678965872916425039331573690222901276641383177900154207896167304024113985431697128228779301894615802739387073208837016141357793697804308729698993522709044576660333922423084158746778379757254385940390708997835431078148680340802831693319465775778374727302286921638037297116542309384531584030109368497033171830053041845904743702421544751133519068538335203198507040959065784727131864476087132011397708070476427857120084441365061759816446519053613351694188812205296553342862858029564557101759561798149451604739765007127636370876959650561333401844228422017159714695022926329381694415570363886419884914089608311836480142846287995213304588380432981313729984669570806778371638974545784697980192258886901961242507090103607150437098107799072199648526679501337940063860197574756272443879130377666828544491382194256904872723518509408059862551640017768305405389675596732532078568178068452275164090452631082336528190411465759141401995920218604028547842701823505680674852820777145811860864786245203566393360055452218887855557113959213761446520827646526791715761442119083035456650111221342859007617310744247462913224624002129761663010703548038996380570805179066933755701092077453482716487969590218711107105036203010548326722929671765895439802028251714527038525085642431870674019175683413748656266344558670942274366114116502381828584510488557103963043460956398206230657104604669926626178894659427916725585127059769761870105499567465153040881246458645087320452921061559647332604546476560146114262713887840999003379745436844594658481741544124793814928509427626020877981595287833918163710988030242319865456818738796122894931241278235175518457769143682875136372518879821674642500782008805642896378731096260804360274717543117968575078073987502578983655937716886069533382914039713869205212015578460104210782777492640674804877226399936900883399623037635714219716120306879111207910585033786539032586444913656313420545372584304919718077542787573973470466965732340433098748563864549208715987914659857746751476073127225763206991006428899075172894010185475067947668091643678520030597253472366918556510743577338308943619478230345632794388593903282781817463187184097148629966448820114934913621293441576925462371463872738849923284240888505192323190003722825107015967330494222854341380692151850173539585603849704920242488097193296484802372128788156748270976364539658886499226475269453988480127431154982347510452597900951261267893913980389597977982634524725747438242284328600045676470372802786284164440291776512056683395278691710755862409310117567202534751609365279663237722533733814969081799698802107561501869759830832342958998069780242695894858801338233347761752631746481101211798491929087944203905194255090001372960207894189044406059911445958736146963520549563901442660011875593626754765351839887194851393402360734542846768532485608155693870822184383539378170138074636601775099635096691207888527368370634032644462973517500669035020835675924128825308014112924981556875295577908955735105244210075920900894866396052138640708602458215977152243765589347463361820221459418814355000743508375124480394651131321389889273453481426282497037402320297243400551487641648484441305931348887996403358636368167378023906069711067359607970645932468073554262685265237167208718192975438960820855225787666992654285718221509669551149192727315214208507336895414227150888028924266178728256557626397405068507002989146130405142576693415959281845994666010909138648958477465573816635519316656277829731245102360011799157483508509996853523862159434986143621905691200626927383273673912560526822219858082836807749630473301301710754185218893809683241409232649332577660626667669971385291828245202842344478390091745714570539471825672259894143151635520922495025112753116870909941116717965891294532397662222496713490798300420571332577347187242994744385153296763223655324870378980294171971159997406582268875569807409262595173460420517981461850575212551437982477034849485161930088700539668534415753000549423901342632781589513958591102352947825097608346749938604626526223003340929650047026497335550766160462503556154926343769815355180708481216408128593982574545657044877445593370519387224719195044695156262368932570750277115679426870213095672031576928797561664243466757740149477577909135144062000721426835049776154071568323190945222310878941193095219952478966986683445854481991643134265610975474164888592522753685252529336044982019460753723262476394347757909183081007503929530496190462251013394941389524479697830314711039321907479149101824210989258524768920618700975709657927734024594779157029891083614603498757902719735394627243973807649974259510868906152125556387154618946756994610658672313344544775914193752210727252522979641982213512597293582663325521151933710113729607562104669229180492161352066074684517306797341076941567921118888056719837007902629676551189671080042750974836436976908877581181693943540584422863826729353483004047025423441816813177046883235440853390300745250149351424641377088512027733713511785230276031495575708980929784857207154239949732642865716908705586073891198899559015155300147211921382782936777070672740009027293522223076554383595507527031764428991692298681816682472270209631092348318314845193359238270623768842476571328595009833729330957525116551461104056484344328966961623402929520366718318690789263150218427782775500041166302880053628471997884693836334909788927037337823583072084777800837224760711854892117736618949359210050580382049872730342084118025346710022358815598349447579960768051421757952802300558241914627233424405392392332538092911114988471185966860801692746357143315831142023753701348561630396512738738015386426074694739830933665963387409981685463840827544156568890058890786269045989070853955012698288825690468320974461188639337389938794321417931396872088635106878356813265144988639708883777795430379424923186635805337318910794319303707390154430137094971478893529512672877561320059865139326138179157142268906694145810382969307516564257119409691130924668337211789738491778119434082694739702190112866259657400201305280425272700360449446723099581177018931966431476657387225284596765778047664583451089589191439097728790148935773312036341335444292211638397687716791789106661290536976471933734470349368873020306841988684416526291870556199026263408309276618413897703038060515876393476092202953211183318465620198941210186553465408204994293761698905770281567084151667313860240319489208313488947471662173134872935042916002284595013838528334064909635408196628490280839504688115199363572266415136355678170934824179067605281327204401726502915893578100375475631560317058309338973885009318181677662816655089536418538804716537396016554115983154605991304586422295156833037262919578622527721824471918721372353550474424227010097844738364287810860137953197125850555885450490012149784400547478447208667439170478728950143277134576831575834966582413859391720449758183674154869793739538891165851352980501069500786458041299867285634423130346522958206800468434491007219855580863739897782706421068677490935223313613525919582591600052765935596478392936426271726234369949947842254966664753223540752935732380530882413455560898976873751519122571626423840918590201835040560127065859867529316402600779578211400602368423994478123953711930362145526698713256198315301667092014285034574865988210040672116906817389588934885327045441362603247647379429774936646279022903821168153368651852091006625239067222153080374359270525061762620740410450151989793650804342365033143851851975098001525900227764241892225739452599838820722767046770863549766385334012598541861063625942854433947014212117538830283889040925465837590148467575494794685852378700054649976303873510573396656165884576264563874043982462937723648850903982244351702511504012761321828234924028844458904492181987836900547453171370526330930637609205517886679837399841223634384102787832345330933353967603279564050338154351211103356927723234911482261378456401151232610098401175588903607517612171419517373775177423766920404474506538710660885820669896207593927482903968008575078013735311918934721596145024206068212508374597545778003788060323546564676578495508635952671339634868891877045573357937920229956676885162809751481378878530055500654772766925938549405577598955577595462464889102553934162699346434151936557779673869730762980282720362740697202935277395092616302992536460935681698056465539038797746572953725420627101852474639390783203471321314944104290934109492448416239222978928286427808131138896623382268668738583580667993932250436169156722240861331417810600521066770145046942537290291935622859796124592258763066655889477892946192583759167518954135717159130842557965419170771660224588226223530907857248643489780357911447892229696575215556666861035276666408062161195001693038605026636325202742888596331738563514272711097159136400833455027623443893153200092495733410710063266247024507402674089608292456017042402351172841749243160888054791979852645093075449287146271028106820337683526824617913953187768502850269951366262775978126774572008155647132212833145687206363515430409671163950530833753719460523210486601910010759017222856170273835076890092382007521264146952256326756551120220975854696057810945662058629110694725369379065983427136451994579710074581366267893717301977357840543756850330198618939533692284325585276308072807997266633142471674150267426465600523018038398707840508589577674619685856161116093701786534667163042400089738749508526103719285247346111994728851997031671980047064979493548778081216237619609878422665319201188671060633190380221979999497406346549714461986444059251020173253443911758467244801387327795466796421110720753298654652072244989885146176838271407572847032534582527902588566507598558508867794545342567071505980849422576013524943546824476863060375801860262625739242784779098347551209538458797257862282158751285470787852926761506354703655906100716984015848297533066168679511604093853095571023075385316785366810299109259480364164081955766629334032944030288131097356364502115005533062806768372283391702081326269340581538096891959927631840657664330632059276686676060811963165395035095548837218162432332321372742445320983119798981065600903839337344794515228520966819283691238338663424656120659595460768147412927139858437569419724217729683490573966893854126660816977844243058681094014512228721553071309151619725714965565791158300943945212790950594314165049451161854796837490684222113165726845008359613931839229051226858372809184327324432985576808288595519710597166088039039079221095849036231300483818952874429449368127904339424217056079438679597726516102520937103200761569521745353347749186698402914535881929464969318566397210814133692907780697421029225047400120092937201225201137658013926779294858693698655967387449032789158806986244952521011439338230527605359315804000925288323918247694741370203804511548391035311683949308762596501837296956880043629843514741281002120628188047588064704154361545085545775215996046500878475966272607461381770281256749422367003585474979968615872715801322892047645375752315003802439587996100998954784216279809347258705386090006216026221588404933790139746768059129045540857258306575578932604477605885891146568243088923254177837819395857941544553907657522910163387519749654021251754101843217490639751154414693316164695029208234548177717456720699861442018229075829600977690829869215858296642553854552412326519785071377814026291524456665818520705280557289060236389139392947668047344464008415899525484711504744565598732698417792908630525740251169602983886450226169285175604975346873371175873778028150482804353003529604645135644085332297472900406876160098983892523721915573884283991972506810108198553003465628155277782725915766470297252510822412871297848528960694845488116833725597657360631749021115646854223735541271765461136716051537216892599530750539800230852755908953059986928171684093476893593052768137431373647355350913367650713792521967503872237807916616500462500081281200772056029526019183069422641468784301238796999088288127978870153638737546323572167046581550806516087309531821768005167906562213740783428463400665355720697943563192639952970889050304054966683904134426363058793439721767391890344124788173474859517525378529874392170300801227558537831975623793023026433582464417119277809915226342649895106254608368703541190555613594722127852177974306789895216438811744683326767600313293543365649718741033813159433748772445141784490138397228065886765033871048802984842179721404189132278833384606078614865178659441832573850747627401890518195931139637976523264394088190825697691299063051591057464618439935484133074262489849731526740198384974094110579957235961543182567496195533216717225297118485814864658969529149618504630548845006073377449516836771009678513607502783438237244493946008373082154626518255892027247670840644890345349677138009333903427874242734594312487740442306503284323895819719003312584291661229653092153148432948936033888678234221016630629640742653159344897765182529899211332296700570428436179725668023792975554185133177105126217754452592754732809604076431002126940228068841734124224130869630473860827845256179034182031819765646748806224748770328252286312484788355215081859485262592006758709426470188280363822546559730277798883453934367100317819777519316357294757196799038247755804204602971010842521922746937906136084710563725181485051744254079588082249301164430820334071711273462276454730728862143439291166643125988833603918741952996000031921585642703779597974116379879358116497700062572102563077780369129761887926959086497570772266485143692874667499466323698300480311549307283814363044070318732409038580163719027407924037645868754601655482677778562932679672404334869594590841715672477027222154639966692594553447300219355594621521667209499400642578689865512802823715895374342069853824106381458987022010962749023772861366061436348466085119063235004761205200554442792810886993945110154920782797728068835482667144423524489237993058260051973671019905885243689250823949534735870805245261110742688699298561934171346229224402655170118076983333915531718811335141050962315177511530386537063229138806174473425348848941077379337641756988377679465317159315798317780029966549343821287384586923493241317391890894159009011766177154391002173976343467340582199406220868159331107681265934506175760286666386283515393055786782003275958814744164340554755226069130446915092491188441141829044229297538706024618895782589380238022176805224460964052845084279708850473660249658657508650466097090834559395391046818493169774529087352345721087088157606961005923666856239642517988749327424447673967244539744948448902361530098849503689206773660570287788281952915848380654713488431761987461886561641041247660973148570109023385687852135886031024273174385597511738479436740129464291792611214338070428319430142394346727738339958154064629963925384221913367265513865059970000881399188226475526447627377366407363836738110952215520984149197345048960116263810014934254167313651396394099179328260267008203652668905476949413057235309221170548794106807448918468460312309418446634742106366827291053067639610668709210244168412860101095269616998886676579813114415261770432679159004733670083622059998874509751139575201607777537236507899963281151466913210306068886000973282867577292167130410524523593169739822711934377127602750840778586415074860456256001564654980638759905644993938492285616225843160696949414872066537761795126113320889801702140115364573258904268243197696035565251848545403050232724496097426071198596028432137466941951329696346828261907664132856665678071048013630195238824153947443741994595067122844861824420390038554716334499489208917810118496307140080294513495805887355634754998367366254593333163653618490867810577029998925865765822818101915873321692855790570691693912397120511338927698559593287666095851719048074395449119573664823421711807184920537640332783682958637963108251077426147861118254442317727545755076916718607266802305170942776973680532194169519655940857484749964584090272285965865865272718098102806875384358947741200340540632354374039815301175089444722056469468521647311000106439410897213794137940376742738611139223409011551399472496298353069890296881486558596153122334929381654010524659597984874594434641022149347594810828610135134229656503581752039085959386195701813034563746028848276371314829586342078792306629838652804017818836322163770445011438409161228137797329413055079895223353655334020134963965641784913166202801098395726196708988064826745731814312717874651208488190289976168857758076683628270301048236193564467138301483781525625152601786983008308747459817927779443248730339239429309272557833221527004429847961682975355956334683383379004677993332177785103733204620712003594053139160748683871929096345615959171852628558032148364091913593663751847662296574692002300513889132229941687884589308918667874252569611998132720492696303713260995242794980646112055373580884972775747336833594523823078050119204668299996187421586829396383324686687372829639645694717810654079446535368850597204908135170237398220227830495590481492435169145261136339247479736934200091579139342104931577447812164301243356498077923021112186036956730216282828179413072245957550733726465922863152193858804322608525569858272660881686475981043726976795833950790994759925755602690731424843751565070752072224978339082073829107537122518910532280411284961071235603268362822382515793250857668993321607511304887640523211062114134804207788974159837819608232646957553348460650889653234381196207755284717133507465977207919729433139204865019330455581630230489825008371143791890475700981874330747728194209985167894268268803493463518072374486712792808502471528273032411921238340212886815658428772708011531736914282533991655968890928346783882839756759049947586703881962017467637705891552886181223201547730821951558908809113447388100730487342580988488327583003458245934807748668902138258007444677628348206243220212193635054478445503652597379088485683311568024684654002600462586906775383819610091924310730760177017559911337758267386591186213454151548369441009131819730976427324753709515626793699109506675870273563862608432650626839094784319873739301058781766648160944612226282710376760315263328861732920857031990184333888857727821589738155081397543911039926248163299693707574206730081683747069271078866337481220409465264582087841053240170109545822412208984697788297876797543531363506055240712641295165626938272407049261321071091072428662467172760797441114956263269328811268293475653607448541318322512901301516578875148160282406860352179774868354198656034574253875438002443023512595059173378766530672423212235480390966688628286839769544672446552993675884590380712077477840195320277996786283614068098446317127209323697543847795663017050500469144360307833861847518504106395805458583555267146622400311314314763394668768915983139845849658064710365804161736188354348673434593098607526193909062839049201997869144078091436121158970140533127699887690318004746116476693212108598869409174252401414618383277499570073009176312908229589134135907905456843819296866901304726640015157654972935971087408195669852066351062047730145097142112495150711664064959582582982167902398535396197575879634854636729850920549290559168328295022897633692114999773298033532123583823534297409976893970752138688067250410974808741334162715324061695994032692043812716008858295855659901668041336049880633357737071715175847896635413146053985753528548122192319906827021102254272066239684266117190593607348799071603348627752661621818010540996581271202855467790437078384786025789047868243410548531745282668894858086192337189836926908123668205390087349307324953436499357446344949235682160733170961435671255015760386150140575010722549708939561552402163571826544233030486332600287968207318031036164699886346085838221530665432592110059323703020359034376805364928933724792912792392891154212193028411577389219933143875341947529000954075680796483794077095412050776405484245633852854381860770693008597546352103370034091160858887407540591780953278343102165834462407190693539836209598042696380966667373955047252516899350132984626207461208688506376003587818239139697340217062178908533944711823217522694248454329068152901280998530049889734070279760946443348182731793457497471865644343644247121434554750097979052257840880356213217448973498708834804044064360265573072499146014852447734351455694494577874635947811509937300306095555810140680094102976989108804297461684044873466366730474864368066635032199788581701688303380383885358888740462129754832435737518792372269130642845223339897517735942642822770835125186025118135131252397353599469974784473992734922510503187578192562109715169443452365391317613907796449487084867628545749800294685562770817716123702266822724682055059097169330431714138965309287254510381083142643703954478385459967349930353114062797829597741241959243655272884726967680385875405373727174145012482879209013638083093240617287999831197599022676363463752008390762932312815997916964685184763335187950054175929218412692034427554044076788438207779178867028955215439087767208090052280597424324628752295194027357262560865957857983292288490959626744540753110824429500163856611722897292631424295698186800620096502029297294165738980639338041530060440507236600329496135452823476034087773300222559730059777166189029023775229552645379914695495123423268146198625739337493502913383681682097755253259409934959151305645818125004325940634727266154227529082316435170332386751732365877777356705702832919825673120857696577500394637619005680337579088934849554387859895264316991637919549289754957179150825345149762719491691607186359475184679105207512637923522827546865711514732477613572433834131804368788551829011397032212965870109447768116598774975113751267961576432160169406668694884251269873773876118341659553075475511213798201530825168636966556369036944627315551070328260484177106947611637796612920130230297230002223778940249435197054785918932228542013235102441239639072678065008656687450093974705955485547239700701029846872364992733722820509219668630890100123513889597127579488327702236423483236859675190943032503177529737533721284031458613846225639360649445897617611238037621622789565331924817386952877871662378349477751388689177431341579119768970042363608009369560157560153264536196049879987133965843253008574975571176813421302319838016555118598919462716562535147125029856272473774474142987139818909924057490101482823715289599306104547307086395832069687481166997779049616189157966251480316266139932914336784035573959414396443682041128535996665671134352695641094636766372913550598572279944711647217185101520164077160665014519780958411977226502503710693657370783502643720638148063503489818024055460663294351768874278913572367912003071566575588707772029061348503798156215627033183508650107454433066634439653646872431265811352711106527296466914448210411050133572790202930445714571550859626767369972545082696113954178992617025026203683066521876791373847053049791624808857141139123868814581392191332529758504311718533466037990274042385858383564036852038093604744220518685438528892606936687757955167847175660019949362910549712785094200791148849143392855405279283840217075558681352288463891462845590985637404437917860212454619850044523800476841320207274505540712675969620276906042325842067964733514817652397457362092985066861362223004969940307709768907754291858442478901827373801890692634044623849474219556270995692980318112602099409479064942733161981373486717153513968595724477792481896758260961237946436160421239481500541831556056361251970764846127476972753713379234056483673894170701018080461723633095509013593764262410557252410067746888840702759488451464632014222000971955298059681787433106977127882654750306322271685834340666418242886656675158024263756267056148281026765378522800759667592104686656870183301285412624301856481835758605676446701962325134558686821874188242567564713625630551771357215995988259148738685728689431042820996350925732957035906125791268425985106685576288692851917407477781950773706301682617214410854411331470451201631318445050463114157635666171977283071320530585406638509317310633088731300545537305653232866918240755714912760490405705563892511085013447908514344513442734860519273324822581760835434101452531826898700960409136274558730382467827429682524302969630369808723146086889593148856322310308744295201503266203980004011007889258004700597931064581694580836655615186314983109901786818977488973175884175471053710997760164340029765617108893247111516591261479308332441641420767250767832168667175983530464584913391049280858320257931735959644537896447812669914368460674176636080089485419771920627305930732138502477162083550991448769278612737155561297855528180715125537205715674744979122154165278639204804928929102850161917785111358543593612215343726456954592500803797618344739227851795403935806433239081135267621973217547218569954225265985444791161734293689284618957065412048382664658865250334825492176028542286629727766625231045124932327872774422900220907267211357015463586665302207358967449391270251088892030108809652806906875600060681065709717152582713567349606496256741503267802212910577998327034101437474869676032203226461001582252571835509447049157224838423409408606094005860533442739744615225658493281936797552063853312622554082867187187368689698881437718404264954479920749787059078111011767450498161093152860115729635693440945807718000249385994724004232983092475368429011301242996847229661657322281613585857477496695616456978641526463220702436851819197346192869149278707273068849669294809274059131300685431975249357300476322773896069714773070067480653002576939670325733439440604514790695964358495118308605126403921100213505079408719176832309958801775983436770916235286405055991246804024312490807408508029763934207609104103762134728951495118188430537947545343603513846771644188369755207284997564466422030540940621561905255393364773133073942487454777143631939178310942571142468012096418722696079126369488807558422325584456760542053301380927483869555320671327922384158603156650960377264526803799440390376820274490860617648022808177921521890308478391517124320717895444613296525122299686685173903030207490555870639199900997672822901813437057821643035269840564981742200603932700466023604028594672304644752400725531810044266469576939316911174324152065401818903693564605984704164789538294430047287267961751213268342250983278772516301631725492126124790256604351566024014063990696663310344689991460167548026764213480128027893783039150573323912186043216171581459650055856144260609132442721680300044708833812442048616528740777231056281026515142720208121370613189618149641644394016954553021359066390316732971762872801857430102125727422539006066538412655562735422716898785908813604236599168346780131003485735414524298563274454505394830701865961894837702104670724053160491947105541313874213827355691115457949452696135070463727706248833890461240312663939060363605618966433356662972262717236937442994823402181085096322561590915928701508886415022503361843988163938480459642598266030119053921701483567193357324372392888710635563971361485371477973762877717342100667323668728095880704458863383267707940962328938499673078480590988518994926316598969618381304326044753047923156942796621736047420055926720327886366451157126213617331020432543757160313976134924070779943063142201900155183193796939070560465922223599450228955223184029929235817034486731869539371901987733598825520965394925434396633736940490939868251962253871487678401118133564300872040236245732389136117184043696758889022398029199069635638668666112793725872232198535041214870735150516915447111239489308839784721981567226516643833652841261142898566391596612862383927277989606574443293526556720426102380453424330481971325307142152909136487245773948242036420330611304123260515724162481762625688052263107656654408442349296672231685264093047288844516751832369945816915197690313016206564716456171125040635834966466294229367096726124869066058725306389152095730947018269298102356608086522327413284246808953084146897405989458294232797568268922421575098166826272143088712949602860303929835046982476080243297363600874922519644376137382687294885657806320783311651085554124853878882029004245143530127424884827016838818464877085190732299275715235664914512022148869235704587238724322926740327490092149599894395810590848046328244141882831049079833877640836566571608668044879137384271944007214853139108691649351223577941561237249046842034843964762701564302565463422755448019955075997207182814525166532056562000772100930410844278606417400091700273494248158661227924617496437315306827931294990974517800851202942867264904637108380911350835043318810278342268366095440246936404022945204453565719713674484477151347451916325583441017654519201330426914637369356709652464577305487301101835695505976917850340139637467311163974815834235330640204349504695927501800348626485437609739367262780926136309248661060182358770376933391975007846022141195367912048135873727896984559136240275936903336483905904959448738620956812130391124410904302256230035587264918131783186744676057168022575679519269587551425658135158775938383693063191564630496644632664817586294932611919367203260763721099985000621425849309969883370260783248301705496062856341743156365420458405271542046109628509501952607289663479658264455138710655938691059470807500496270771957633832171359311294214302206625654516071585547840420175089937669057704764422047096929015960858692665974940873668514143845151394141386205933821251521756060272971856216988347777177631798179550044099831313586693222587032638146606154334480569060043959646496475168795699870642237110638710205319929381521250702408969936524583029511805257406234042316988391045182176483096186528363810656597156356317458100261467216680793451791983919849294900926975942517056243971682928806651980466214241357070627584928612810785786049526299478377348647511660340915416831166577087447876178062074880082914117736402991035162239091744833107096126728644755176213714521348624686333077685818097778607401100130097437089191281505727327864317468398152713346034948590011087803425047063334482372613516959925557899466929272323237085910443043043579818850982056807550674844581021072092320068052250031892614054962655356084091548018266203151704883760165332126967457606261028767837191804999574092526065086099827358913134592590586682295742885628880015792172759982968899293335184314680907985388900770919873344791882958329982179102717045608561162384939355475839847932160391769711792130367292748187198857938725042222437238419032901575775991274593071349373233659367545339567752660098240996445100645035360858947017945964851735893224443460674900183719442870704619103345406750317835705772573085624195123245126963381497083159894781503300812881862410161875719462665992536141605966232878743262309241619433033606054340949345812412875463287625027344269223893847906872312923951128391442068460759785042477452411493801927432319799170565311002176233373333861424618619724181506302987973912219606133555219650281188881684055948289276997790965403444597240865421566733850444993477672861478332407967899176475421171184275411171537607882888286548269919901771303496501609153836525496471955584265820197033934675680485741887208118721981537334942945734569436994482437441909894512423535501055216933965594437667636298330054825236078009705851563333693738913269148349168101918120007049361544761244315277858474407892477543702575000914783365324758624635459998174950660576144346740116023655326860691376804583392406478770390303072306758512317765365093130426940198771783039107046734876224468924966558871610688846405582965828579465054487437169785057778651564604058819051637005910378479176750271436303938178406886969029254071307148533551112583061548108814206995685075462987569648375553992285401536772067077298948623873357047894729663822163976994205315421887959203758463715033716567525398985921904426394645421921866478453292259370760306446564229683484643879203491237814068684919026060530113245735721724774907523793719706472600664745948616811076717350133166424658825847821016237392992754180454257037249840546319074274864311250953591007106638098425608500761534107093656608685199304437430121593512745841112904459328736485395162924726958372770720843586189053631754553140016419822265316024960861274256879040275724719555536360085381127342270494534920316269174194284624577584501837732393598950198371445306818041511565565442694744755249464751363128367268063882629690064163276883736231342060233677872773901430470578882938843815376562322323911321240240777976181581451263155747063487847288783922605244873242590306343087549543802048067432625083816468847278237592745951454794475153829344800098387878716990029608262549034245874169192341232380433302293710258681200429112126524467099682580158026025532059106503903638326679599982793263639032113436834399908761894329396169819944754772601518320780690701160967893181164253186202154794388018207535582476576977245184274480011206110388397106785766193781937412802082578197617061804741193364672294188698643152449279239200355619184018485499734314685870970969097146046006862176332947345352500348559591254598728558093006805886323030530607894128714532435106542072050100431301308392496569222312252883779541496070283831681820452655724368574328679824482982559905324809298440745215982624458662057428443631262114448084018136310644133132758292901287155416644495817367158122912254702709909600940556680592885519672424081449708718643431278624263432308490931452395363658204448541043866836433320146112625330076183426683785445926021984452499178166312434206102498022236382483063747345482466441499700332777091035210043651298062209898145902384832104260422790516354636982645884392017423646193285941992447554695375402148972654687154065398377410258587365977751507587824521750060062205698495559113978635866281830195536771335931613197824416653395981738070077059456606113346325684937524107177518345579110979971616876462147704007180850097126701432063460576642351831828300707353895014835259630936936878657974048155019915691044092310774639137433261324969599112178185264138056238101086906544902744129596969201675006165697692126395949144229819366589548256997897742602986564121061990426594171497537642530789960061982468730047791640216745069218023757951305508665310188832941895347697522518864553862406137720777944064467011935570148777164539589118435151951657039926465201337850722990891123571978016840074322446866857096804996839161616843705813704523151709049621529519579040857517826232819103796764605849325873443228233510283072863110393946833961737991962302324642690693762211851471703266012886442860815237510124894151373588710654173090799302540108129138297683923557463400941058999857069346185894228809773138411111010657397082839994150285089915450568720700953998728604026060344168843733869903814132996080944534111613483065295550159063317809351862047050935238749308889650507770482179839587984693669738975127379260345983107861570368843640252205732454677876637761557701634783908126831074918049680060617600759340599715050999004320101234152504701416142031581491755568532959699769692317800105214256124206307240997673094691633965118903391897277700905062042695420111475462424973426452683901906460990641545694537066568230769282567356749860224334301291311927859891291031957512605295033695386117956156548103939114891347290122721087047352965425167744215842859993313486191456057787831521681683563105405416655043531209629093004271558730217132621148381574123089692057796823180559245104186739736993854453042827290968318620481740770577091669698509638091469698588997190366112136304118815166995644984898549669135757340931664696134781422306364885923656805261960303866963929904565741627245237327905787426041860796197179036635616197802252418762793340829691572944734172226102207623992517511861473923533988358415653002867161579531133707834052197869678488970953672678426197062702426186511472220919604791336327601406693549593550595245587442980338256348726811576515540387377656945334505589970397822261608998179469428066661115850362423428331726083656449636347714735573068104324935030316945014832922163636745155080606245284655839597761142094952005621896872776648029219106013384741030094217762780640558026238879490221769738553416725564528185617777459853302965049684638468126603901229031439860576031649641662846964486157829624981768825611036470754391677181452274510809214211644402615585225359646176914879315801679520172915379083925242146458143641629233277415289393239423774133685734281674604753539594782890618039694375123331572129119959773577295789496204667857335366471407935497691932297874896936856550313401349041494626448726746535593420535832839730762545525063111705360381110519347358693521061425296085989873606153626750785986697353133984298294098758783174720847014864445159382420194193351935604073441776186538898770114360505563006262578428803411456842217589536138067942701308326689042849404121978718022813091201629196342819950467819854151085034508183893870487248847613091290087699283282643592828512910920111272760812809854382078660958750467699333862438097213442101426523999151115304569978760554274547865999132167111860968268574646938768854994906886365574309069951283036069753034640847091338735417098726936698381245547973572892694854460505870006883995987655205872099265360745402098236198649262093886682442417657988868217236632064174944399954984435781516322970282324429783519008557142749783664871447374392611332117062656616420477510416095785534455056699973433612284589785059363611338625729996319008387012725302876527136908582105089853291375367618877019823626444901649163815637720961308356243827532490390132527502524918636625045798608249666690859270290834458178973543299690156806920071797378503541322220280647077439257222878287510928379047824261067817365832476964348419482405212177581589235865601003961977881414327935477511814141267787751094558083471156703030370714187013683060436403617754958794078147344367837496791136013533306074742166402004530465240331991302439658915728269302036196444789695122598022534966634558871271129356886783697255847633823611317375590912008888732612432036430497833689660391984518328790409770337317417728650997266445762882288800961232561712472536427700561483005794552069074092879993533974678562443182521377491051266527734877900851920367988265841215058267153770337977747684309921958298985742445008530546701842021534003864498187077810512412041774851953720718585043337836721690932980439997616829848857077380406211561810592139189066590596917626699118453739624353474455867813467874665042996918784027987626681352382770205794740472470928057707274289259269172001444346341774941375313337104467726217509623282985741318454039784684489381873356113005698676335156468819219002123348919505024177618431974708346454829585134704035850063316225992212889227051344133632983479037484997234832237453542273763591896887378784223563988630818946145838397023670223443870526751649003204109607458505690728458940656091439518941398932900595861682214831654676228571429761832634399372417821348767293664456124000229835982879510732711113570840290490589467345040699072153402359251314154372910532705563345314207213001350811979470076092953738746033932600697486406558373815216518105667625560501493012256699947499244499020242274776992062603021854406753394055268504684401056901374473815439172884357653339161782284488045019237313429056541252947073763858203789378856287708147921392741501722319628831840910176606152703952432638026270578010274202289108178798243892520293542247080943509989467343402632128794439486058444275101575158863085066369594896247809699050003729357062138628967145922166223352269220744319321463861269115613864722831668724207199413553258093932333123292195490453075875053272904525859147062083030993942779467251862025941707424284473991698494790340397066893081682069110638648584071633437232856649383092738559443494370253721467104564305282935402085753128049585547790840568620201016513542992466993554808305066939456918117323539971517945608583618707286806987914349133620108502190919273181939266244147441135900700658263031257122580394446616710621391037279926176685691309028644994964061061734315271759857361855005567308369177076092777506603117481942362296814843042216249152190125423063699523617381405728137829464906967255712843254991424482677857524624507484419944713435029860992064177983786084451001943018851319583260879428013552230184628611552245400052057503032786397835442917446574097008829437207356784061215606837447089424322394630868899991989479080323443025491433810013200019992846700989750715633219164069534444123332658819753714916869190436729735246309499268974456777088859963352655599705091544851091142512428712799910223695415028750132440577733916843491977725057367657634227297266176565255281450354262165170581921348696328441641405886776904121772990934382386906085204078805598582282822274729337495778667231268558867774507472839170176450933687015244406107090836295750220715435665726679045804371534435966137987345604664069559897388443578744644937624780629513356442494216655179099934248492941127999886428774241001200554772419373985418721383001825371588840211698153858324579256976921928342218973771399068305433108461649316108842483094500280977692903400212854182568082482828855619889675256741937497916288537651831827278976328512322282918906796130997290703223091184374791695939595372037778478505161413157319489938556054297217945834578482511544862706819722107232408073391025102307335632314908845497927763814226061794568630504119438455253043978343526032724893018656539585685689253052461279867150996663836153872870276661993931605330017107826625535622682169588955852530381533883168299196037151630804179979008372156764433344598381061988211602135192136427537194721503129573012093699638414727850196646216260939798116460955896772091470990499046240468823413238968102044291094667683864122823916710294811531557439976852534593778496947185236779289677142742737372370156575639465779914598837842402083351427560602472990372298853293495952552022656610667467179284928115691758205330657090381284948551999546938146091243806837627636179952206511342941357628574425455965271270969474857185024013386528929364128400647005570838057604721283838436442728879552402423350978459057584918473536395059619330763951202695715251514695219792912915741274292283454796768750581154031749065706451634076921426924268679150047909683649002709236180879747282296366512791199486886177502256547655019887620316864262741776414068348443568618506459217135156935589455385859737565394430921194781424771274840022314658602277383400756065951666102054351940749456374900140318148718414094971668519719999157342830958608611783122718258945136215221113819942951975143162027231332904189569909852160054940114477465780428202811960202509177382479551318595577469727173356936553416368731543378956252053900319350657877613158863057200512287726380173487037860295624596443138029224427990772454954533553777075996540795563696869631170367215578621488939492848120921888398552045513790813064346874549505209185424185951377148880618087425603717858300199409238260578756880293921137378885836137803119362083285558657497124754213588017820286678219037277387855500777162706351162171268399522953514663509706864075871561011388627614258912903383636405004318328637931368882206177675352103457769372255736465889863961493288792765281089251250485738454393848239572761560314253841369191878438632783049552701814101145552243591148914836511886191289395489527246321805441473969394038053830414961328089861906392290487835242184039705242959499636323296512229458910707883434175627243697313053496467857784142112544530394058626712049440077525913586747905985237948744174441128362332870550432040084459422028806753862977221372657512247854708310271795313067971532240419936663694348642833099529494944390397255396813902201107920293725947139814630704842723012348814804190126092231706726280512140543314549101534499881941706356743628827773295543055358224339844316858412281682729027699274642756380417341723670549049053404147290762768246118544181464869117547951452147990854366694015099877199158657915350425497444518186220363054484582542362727480720235806497284621437278976288360518662421910428718071356242826602097279670666007454920876962324109643736431420289392106108814914911493362100520408359192368281014898645284857669212503001804342803732024095184497987024133551520057796093101061496572923379011482296139625417369404355129646374137101527967712479711636465870521278808614895002181901383916578751868719235817682771271801560337823823520619847007792590568861560694569375967852329775162481230694002104226809119484478764698913901394921343172667054149829305973950285795724128163555388602884673354853244633710606912482774393474635324349634290937785005392984601756808678822446199792801838857016904987193453419254060575981149087663046844434872039736306244159577716845365364061520211299915834657256018837771650714528692357031197147377778220501716212519510460487648080332845993548381960624456621842555160464389412312550724082572345832553263442664162272554812929909214952451314259201481234396140370182649779241443527726615052166739897416384828134056607152375115200081334117747611267206167619588805970515337197550500487271153904308010350261388111535167446117422963565583376364321049907254880658258438924775870277529924621072599162973998350116715597401945933475504005037869835022149937231717444249401016788996940488440020808140772634258086575432118784526940215665124272885265975801856297293448372326296485899986165283718259386142911582861181005811501871576766886030787769869029383185540677325941308229299089284242469424771241089342258065734679321835734062249581318106627204706701394395623975178169680875817572245761479145607525020914996553934824881806362461491805907773570038065623113884359911085699986439678828711887705541507982885820281400160194401255253892570256334944148473185551813129217713120002604109144819376126753579022202173675728079905408502986173117554613891366788807054557172651040826975974064596109473234983332970759057823402556393471033881107016786782001769254394222230853693403583443749422965224178237653950023198770228363092403002141668031853376277431169831845668380887470789988419385242122152936033927393917774002249243501706378488232230276682310037289672061619064591465073504220277471310190628734489150381252396714002324593139164306226200689479345988491526322166880524510015521425823604989687217931221089733903326234134383253723946681709392164416211561945750657957687284487977879963060376464544167875265354972614958529104143375968483189865366438123154492753506951988368485686587314731759175197545642720592568325498663897991214944833770775770249498602644287708161194826322283919056576464914830249570283739539316293491515397822231985157153454865596451520752306437967470368782510774433285949144349829730704136609572179822761255517161850428666954727763176032572434750938020195220689362782098545282441769089173832775271194972926778692438538141430523407440504255633564032655434661834522626730154262376373711109243423655806488308308462346791342347941882145296859426037433997370813358888052894280252934575297837596241760841778114491498113896481542256514303228090564152343129509206888559025782020275895968882496327687712154525909617730670361208953894263097005400248275131060630393357813728469696647465522938544803538415525439159314780401155209630940954658612351127462025085212517833018228929666656002803772029195674175173644997453439424891945372464723614869666683110784193777027294605959152143095403444103307512638297967322293129917301791448239425341703671568163121616573584549022838356153297424592188770098668245027377539859548291438556071626028114267259599544456604548838931919673030717648628752960643707145013936716996997301095533809902176975773861570956681308537304493830377606042874293791084372877695991715572913141229783479479998242464473069459923032317010305045103727260812782289568512765070071484697061510178237396520443915372751763776978301084913567499550094809232298133678128359993071536941153365038319794307978966745204781816814034948563918091814695108828001243490123393506007052722326347557246728332869371566825081548055558132862890138643621535990388409025229482588016177695303490559657213593998892353312545750299733036575542981874309728658522311426829650414752037385930292841568998633102859051168773556594384573128089614716810434186473604665967023400470577323047968237262610651125484260786777760570501646633701041679196567804362105354959420623388767824993612303165655955866059538733918896356654438421219713996924250158586658385967656408465745448153886066791260980607149332647368393025006288268062363609740589997981472728208963107271927512594521315707173542664888863045644343941846377142870386959272399709517186606679258034987490664112389450920289169300551448023145715000605094618166342507979326782282163953396584359727902353753036225369109450886073361553697621462450143325803997071691937947199093586786533504341408949496586538382006811361768328826059406200027360490009001731257746107817854018097062030100326875306483781080258074941275791042948529025200030457725262211212438256983858055308799511219642380336427649468691553874389269196496592637078953327219000563561780980762912017933686402042960260928362412540513244624181490961866803455851747110223056550286348232295072627642887091059084053387907578557152171321616123200190482079028265141258576698629063693526243284558187392502789190905970742603659490736411528367902218707465492717899023236875005725617200858529616206302823621207645792112913983630425703992372766335248102245477749109323264398571399834529482255962043737856329582124971323767731786558760606807100161444796476178172439792634353534425556206095253839033494611960667320760680732813804883198108227652920697044000087365493108242728569231827717439702098831721440748418514623274611671436996314701708765443573338648829127913685289434966130816482642297540557967143773722210707788614586908532627804131268469116586403555595999176023771322205535514430158523557328346706426503776332759415452260760371439854888431515336621578278185091231311666906392357374455801688294015138843030320500389880081649025872537566694763724568286207856275942904842382839123988056291138900844248553371440453756615012208536920455728405193858430717660055573391467630087227566515641702343478913792014920461556741284927606194580135122846100028455564622161063211587040744341098120395426411919246142928180066385726708794645364432778339146348340112438358049615784395016755276187031930710905582134739752094679454224860348250681056720624903037166909512641960361098271226035922385168634973885705610356382512004200417467591634089684621431894370759450794295072285025823070483319028496795562888907869209518983189310885682281081910971632878149052191375137975811569432423312400493149138510940284842670706265058952703837259008116861613951049239212039262151304890145200476075596567609058747768289392446348535018988233510148917856186626591316802740051099892155158350368034443634515948409646918040928216144267901576237920385324505754770168476782985487067580247218127715174521840755361181487542074634405575181067928169846460844600479244896114036894407721166931066716075983540725965398991296719601549586334673276190368677136034284970035935836984042664416023115467218284476105491018866654123048876661931668442594350851562327800402842083778170624943148369466709924045797928776714720870459187167422839479109333953152293648774961470760197497533543024379891570744726254921027131181010022092281683707521517097563667206331476664389613445671363225453273668768228554126093801636101223361310437605776149313206202220746643308689102096106433525981984719831937276314267724732190932589680657242578303590505938500190164250106729341989382394093046176677138061626472326740481546525976148940165911489208165522982977720701327898693971944872420682227189637551712844911422335028362573134284187111748209927469752545867397219308674034888329507001482340835086594951196745942045747557642385225966254136891301873322130086119868452517289863729264974206899673176512493034907163959951079549215659508896945810752446582770960056601017511499528474626649238333133834620708582473428781360407639474401327688142542567677256113730568812682381972023515793009892931032934203228686067954932009902124304318699277740795297092323543683423967605173186702165169734452209439068959271963868798936588554091389325584352994743703180848242521810582621296163838982402970543938215237510484078242688483004539126808476878176406464318360075811856712154947792182437946298236450739102224347450944451961469705641129664403427680086957916372029611300384442817660710046784529743815068264946538078166792158958779394532435811111429597979401053608888893017676334692004961214827448632990479067689959588780638611633919174881960902310296217604239976868192213304450912556149977374063167954082425542713164386997526423521131024111267802023434438355508563485670080437193221258591363025498612342700181833380788022667824767501091102627397831999354870171491152017157654995069258788846370056288208694459090938484297684899664495556548258577636125534726219247136262164630844250887275478336777032876189013829443859045803216366014724557943362153906958759462426679231501254631462375846671447260578927175269123681246213521009622542105756323566868903400618051658620856562331915932944694151662777490306748306454226576801153880818338889486259321988218105946815283785949441769929899136204469156066881984828615273996913735134651089863061957388355263264046513134784756788852449529808764446117806159589215481834304953759522578129110176199759161573765390688574473001341615545119058051559902451560087940763311105451788283452308648296359806569412688191184495552640481844475279590888529717766934906460760116875178713448112609398492442489683586441611081105266413100459512511343945531374246311916655367860661601517726963206262180279415316027263311652450658624003091884934708971018121572528216568987794741859121834715548400058076548500271785621910829341523471223935073563768077344025521666357028507797470762741859952222026356648605832973286700503994728924723279542047638041002584041048239240416229953768066803436190951722277518028756730448273553126856593494234480399021958704463361611135722760279431496844843541447656576783894904930283087201048454581038667847063885815253906030637068386102798550263819528057412818863157715848080285851303207253209480894940125796532220066101539899014345593994194872442953710116447258576507203214673519469889678200327641529984487183065025729415727600791051248124244249424419588813762349612311750278429534613483707272902351282696181640658643699567533683558558282816065455965370975169972263235297030359132073041829033375319153408818222768440698536147997000681848627808402228915095092190528869315397363850325711638147949352565499552787125110377973801181779099927194434395049648741149230619662523144673375933254313666569872894194938489804295770779785858380632196911151067940194153548562874980043476579579130025572469942583544254656851020302980682068640304267409090082023097664120287044804634231783715506629483599823041143080921588925402533083522915310635967315277195782821886567956548506793286995260966959670441734133637665937765329960945653792853583645047154376793999555169596880753317059465933281809342457307480307172212020876856510314205424311523597927283992350204394232587506515402078166002900928475398492323574742726871024641073422885771201232919559685437961063778298179767491153669174920719284325615343879400516308775950518969740566767808807838871842744538418545786228417282300610736005483539383134681601555987531423745224704211758588891410371067916584773955372708935616882226712149874791300227531779653851213927952706997405340993145980737741081519810507828867643210004751444285907436090206919259952590013514439242965938119693596224835225242986159488057874860953964446064379037124699518143865754633918385089600962783642868071098447776426027537035870224555683720415471083083310203106479469005167099708050820199108702786848474304508449597527257472541188924019441406121475491150479211149989008545899514116912952561369903182557291406518608503053546934379426502952270111974707507437932990102828671970274530804659689546785595781196285297859428968346261406279172524206565575749037694803625717598255414323735097098578763719242558917466550892192235227168095640367036944715768710448931595353310014979029585682741224336980498693444206909995808494403078919001514485879984677667225073957439376202038559454801850409870979055428139946520162722170606457866671098558921844514362842191326961005401079299321793529130498075431412590988590980215972425761534533273979004526016580475829884560505460639859133054673451688723278286964042063348217497734675570939560329676231448194508395609787339059359392887566224589595947059453006718797977462180573857730532077915708570380030889875546682115249651900834216797283916511342375425209466769090668759261503385824531356385785550091566255788887631087971774209737293458689668970514581614262911890121857719940752693761685651811217113077436458066626842369668055563723221265644397414030062115815558483708381716135224732504107825444767767404231951680439422904364758861440920732812728183643129321155208098991208001123628767569075336676209128414706942895822173421595056582713205772887295530452325245141240439067720416904318346413202340900373834116665572963699931316662060229050982977411881126714991827409066793152305095963452573267622003361256674634870005408541604034374669892972516859650294325497727247063477947202115274814087408933693020270702701649968951534504500586997665298691863082056939807465263143860067532656818299073013065447467830687570826645695947249261116030228121375462730798517483564667916358787039409502652695964744367827420526860125861122402248891351708696205360468494068944499179759641304666761593281389102458497843521456895752464755309010962875753152117402608536820621746412300583863023564884135957848012822041099233859672894429712088967758793302288056958069796157901137220691165436053353555790561322855997626028897013900064898801543329955200364736275792147635408236950395297834404883324452463053822974422742933724166756136040535183701626318693999435615791819773848897438766411592468090133013899892854560724036464818411008999378046631846846567375542161210162815947672297740715906433289026035349030905587021866861891872928783758310213935560577321953913881029272261296511887585628446117096461281550803343552636460010406621600695413004828450552063307273992755950953576521022112963140303625189067733389292369153624146563408772841552211889223803844685107886094981803659055881222021186210954899034068852868475597178323067541601963636840454508018143740840391998675344139108918599545076877780477127841945842175656860272330032315797827247711744816663951980158571718188310907327938277240444254657835061637794525932299218828834729295119390041731953365786834029059748014996777938481657117108839204636779534186311908624795241564743081045750999935926658407468049514300193195435074881169197235060285239833864279664601972431248173169925612845320357674709533710016908854704120492341721261897455714843521542310551468111050901239639870886189761430803136617170240206510181272080183765140357015556690378784841628370017491705580754537984592535289874003298531546875742260054074691119360598973651094286297210745541062461806086491489001686883682005501990024304093648603385445124878370510438733570315272460509011928132986668898751194059103778772672388243750921629211218052242871598173345774405264492590325401452493773080573825594504925125760215983788840421690041958262392859097636557477150139304675980984490556799012722509708178922694693376860902482308812773384073743693782036312426810725999419678578971259804879627590946984626629779026139725091712247191533983944802214538736697812738761091275508813253797380400410979656363835635460407853012237467451559044944826862776622620633015941101346116485304277540799469651676117849395202056029154874823595463304381212637035104897938756736154375496153476332441474844243678054545204495176471244635382698728663576775675833212997959381281407238486755445597047948032780125485391248188362853348719312882356674913574571639892628211486832370649001686204337625917524125623463982079531601028266209855768716113970471503484952513185628835545263256929615608823965773022187997631143241258135433349268260017885193106553924309082643423262984038243556954765498835105804266729616107687754997436338184107392891587214683637708338925055254088495793256875248020250193535278423153906911963916137730076312033556839715470433246140975660101477326099050652909933342098940728207912269898031915460609874756582173448314521679657001168549746457353915565593680728812038664762915995413057524999177635622554005552002792902318858545048359620457769283771913890667818728940469355891661719841565649777350237140054478484849114804718033280657023638259934847222537759339176801344919397826578095301192427900538534863855987451277396473698586139019921833904953609333948973133801573885770261867524085864310843924660709464226949266643788830274408465333380068104693628814714953524215003567863674061539480167854789813287203623848558301267723814170118289904374172334088383310190460047825611702425829853353265612008694302303447380748132951237998513463760035032604136663218467472304886619168392252152215869300839331216919713871139530489888534215064528054472640817121696175793186613182237289437630654575706637373633783695680716563390463546821089897791884967376533752853877904339673456964826042418988551864015141583989620713556007247367066296769540136892690205134561486799630739219668616176533370935911255378806469149470123186082959362903659207998410962900859630127021087592708782969826434894664148130564401771041402051723709953084673023457849936539421272124531494807472023179987922259973004937630232199012041576762688644045432428676761292145873314547180077610115347001139806152780476258700087604985574343715163323208224082119557516593828789990526554810509800941007959729863909728926029534344944408069621810421066597590523418171459654826612304182728012275091428504895339857141056999679787763140852381540445348243855425222728302657484848672287775870108291567084112417295259051857579548369137772366215955298142312611528086654288472213946713702466161614188304951162932853576113289759044937139682740533673035708344173184213446930588392249548512294790069708488527376381187187483133511721496238669683983978688139219519783026222168086245798855182512682706689702520572493052775084321603813596065509552610869718291859570275355443709450920717346202969438337583890395037441991502116085491007016475237892624190172583659899471304156817230102736773286011167064127942726392007353785388264630202775848247216241775638616862767864014217081501159676989347636402736404372139399304914759425459076734690085926800501747950226119687893510915166131861648596995757966862416071965715386843345424732312429468104838106593900362861500720131141281243969464220912005307980166748830629062028250450507716330033116718343771128857488297742407708552954615644805121691935148500312901569907850336348601736924767348407983169295125874801561189788883688292814328984742238848592664090207388059919629857379500262748618097230894647911300810161064899873707408701858170820269020228130399567740058130126538939971643797136823819088846446132795068251866786854036869152697471010625020046422778534276665369894160429547384829220423672665400499184516681115228039176838742649648809588422210741859878335973664151304132044491465248297069649469735740890598324232055928806335932957903559760848248283382916985071477080887282067011597798582044284701619683855702479490140012590881932216289052970828682179737291411976135246129335442968865700832168726477195185614092971813439671573078899170924826338879480862627048345278043321933890794279568351804307539403862556087529331223720614140413600739513490305847792834559647225367603737880504591777470778330018854871745473000921483764673902970490247515069314962834420644993031073622429445414383949265530767386918984094384739297153436400514890952277801817028929660101093675718193271272930418524061826989948493605797531894318214335209496128453375940517325002397449592421547369545391848297362217738897236304991526518380018815664202080633352060575544814579949340705371469417991456478343166928699223283646713609523673114686523080034225637912278713449553380771479242503823191309620822673699805386822568622389016861990684012323425560722089949703257822520277837761602676547306682893110574146988747397116135029488824424427278112304228528135581793653474873063398865835335081274442780296865152784776396108399181018138482579124322888200986705796588103671503999855262536423567663139284175693543060498235142905822411490053962486341219200071087179683327439078484726464018137239742786700590610433582548358897040734862139706802362240478109581325211094704771835219052147388894110312787492937226833915179597934786239411860775718421679087273320702490842659452550708332835223662664297226381149355900625219520522423534429138418884391138357452117764722473693743223636540605153782251033812490770442823950915927216258130807805823225155084291539740520502562165585001228226645679943796267256769163239081492897185672343047855306929351168123833936646324878946336879339472477507730738598202935438645732554191604494129182567505995480354830725130808261238756565457676314553003473595818738428720233252802114808542437324524119395148003564282717423896646855565669468032166517707581624395432469898230855060380707254999513122064644931192948172950123555966277104614362199124858075625177059562226619044444429687417932334747797291983192541045831660715245706409994546419601873690658957358493700959888121328087507037500862965435793299927225580218807645894849208531016789604653335689078349612029026073011265144600519574442752551708265281734826255098784223882388638472196609414181351356235374360850727774383084603610409985634209999338946720770462339009782888387346761796352593200545278062470908275015205628950326193207976663181365230757469836474333456369697603997115767765062874858246592318874145032651608871832528625611035943907626206971838703498359921351357149457600002146002818505314377466948879675883221918296286553481466707765235099007072302575919091789851503648167470124795093411768132179425067907436354891084301679810843372817049822844036834911153626294869958321431382345526854550016970234613643094574978601098918233301317682688159011751853804534488228563026258401126157151220976180237298732321491873671302508221922844696610521778422219790242742301097290128375951954695444285296569242751531491577187514533349812142361613120770267908536409567133766380847816355297055838350845440209923950237559461927225268213099704989649571383113787597515405239013756305039284355423164752751641475514774040176934975084229294766405527483569973102617115667785545440402173690377509709741842355532443017467891126410454174973122243266771235586888885530774315182332578792099247787249936902557176916914946781444692270763115475504980922442318428043510134607475680973575064538196942524983177032109117237142410785389527337904677174602058954070913550369950887761035179012584970119489296333835444511859942107891038909797427948805694717226431673893726038393048049356596057390966304113792807082939642648532779123373376226075463245973789793382035619104764383204602475221040041678868389177580942145004303501541195376129797088556451596949876059316517226202947765353340384778533418304750307575730388862125505566808212946353115873812734743699716435959100751162561941962170145479298850394882895386878795367025674149008445136350063499850045761434022622991229684204232929356898457633939363615374528176510942861123726151325813675267488091015616047349522416702041575585834267160436272840782755843949688920778370511843420302676240628011949098389724184072632693379708812601135449175939532878787011750146197998946376537374649333600798673745216207131371849952990758595502934053279563692419016339094098768586531407500641872384645295108404136261305215688124046444915495648302887336566228775737059229734084923168599350109385756581409012809104741023257576398147373942916805055728396487521944244752257308846444044872515232523976258091344195897852112728497768525800604401935138344544977962741130492483644674800716272538299375688895003604239966303140179565733621722806388305520564236979882386485605094724886088801766760873957023363036071145011474077965385432528488122710891624791354319349060596894228402407769698538815467620523487601331183317025665127717352698276075343866139843638376331720832448340298748381697075103786904542003871105392324018291244706440805358249474638305409035153811480051001800005294075239791409430461388908598571133724392582785436103948441911763690258733868817814921952941036055409706827766293547097541209605508122814904366284375424109182592471784954382834047087767010599541168717653388256324229374281722454134147510586382064095367970196308816503160443584840999718209091650415162524450267042160624615614627511573267555824119635829000480913539078593501587012964429700105411079967890760819518871790396346839758342665218059866254573668134021960716159013284407747112522359491110573907126611399482982434650633330712142032042684644414181745421009634230424816939925204886862733328881453504813706285104271644743162001960278956297251634962156791935329524825751581035035055045821447369118082679743356596149124465389946824387222658063843004806945071635089113503898450778492976186919142289711170051978337491338802490899406804185202169513469274519935989253971408394837858314763259991597034225433176230716409095300704829813195566258343434123634974039026083332112105671587245952200092505196818897349515373886778209933932858920358018496297131527690852238103528459367434525818272448577493746906238673261349480622054395394136408418342309614371626751023486821766985312355720239911300247762347569851023433569986690857776159333067371693906517272981289685189219940046268287106544479940001426058120049900690606584714027576916120130035345937952395441034653879055183255795688815003304164477423285096920589272611493615402845163447282524857826644222504283460865158147343814274853499237526388842860346573026839182340438166947333499681166423514681655811865664924973523903736650380067669534824943838052835600567790862283154167514881260142861051113616158970410650281428350134430412287977230017724013587975976523372038553358721289724444207063812417343511812076216070930041462373553242200361406961497541231115499793696994197245012382978400482867731423242363065518223823494279052161123133047772331250259586414361127722417390061584382047165120696701151366161574778236312600653396243964216494849200618590832094933772580974406413569604766640026060395162511591802547665772237659405540279636098458072536021908192653085943698242282006495064267915159931328481628800272861707626315355944484813074702122079916741106804859579033440748896556590277883759623859578764401030955798766841951191738518971655041282559338414579904507446314250139077492665841717718907196628825688512722720875348048301272995934051827739891542610861213445633102068238225875307350559500485036075764780613016508461972907584593839869473703773629443779982638305652308265617722441248223874954718809278472792059842910184141630364344493442050684067569864613549061000491020535193319842025288161773067409436746449170001569598890525600074041096943143296352561082979718332048481162021353053070264357780351586722828493438805189425948405939423227506554586250843914682923483867943170867176797432827060746855977812474201582831032909861968675702363462375748170139186124381007074660637913338268430608817667533467530817015558650440644434273707010733375287845581226021766239705511630104695875518938284057015658387365818716597443284899839414141844215946848310047911474847290064906150994243357536386119298881064485535585941409459370416841916069384696551255770302522478354996755568979915741206000104593139652973663880608668011093368669865455861624013655785803130634130042065565486459754215669152078391977751730801810591151294806187345330672743636683347516924948933688575061318054086654332383795836406164740366530375267924833190886249662139136189237589214987185258712053469579155568476610413475235892856375745333240331345896104231612528293849343125287108258942569787176325294658400907014010098692647089551830735397925804043078594275273999260194005360730614477171300215719875340283344379148699332639427702938072384176801290255509386652965195288348302719656613316347029342469054802386840904555146864544353442969211002935469287335580594253162330504135345441243730679356290951594486527411441001762026150749539779523450850067140195326700687372683342304951807483713651358549671866675099013829351728309200638642485984342014228695482705430932134583565849346307176696114645527408685396309531779809839339467562597483727150015110318725104115044737409656404094693565178949164702736819227759379694799077728370813738643592423723643432568999414277671149482737656695972837510170120731021202853085289585580262839009038589909633411329463088278787461042577068922850898191537791785946970991510951691571196251071871059641004166660572567197085658059074859369510151513239134701046753988956130952781573873277268397439036130671226266274315817155149983369255232611835020702025334380328028447809317987826912290482102307728881699091027238217624823814141166942609035417856997584043316823744116630923803965016670561130179842030708619496906015870141452658258605005599198260333820012987567795243342828503367637476117089282925146217002589522976475380521897090467650689507620695820088595093300593859375374479484404213754079370261773108174876727269500397928746393198125515117993597153410913894869463262646070514247602563345238546690833707418800181540070278691758950760173555407244280572596793639517657437040926988717988779578975403273898415741397543763799884005688103295045022863249595202502457223348711389469879832560880260936945942930286191896419513441604685753805257055681135645972877409494200690611896462609392327499827144475114621037526687606220940585185976767299422297326847747839774000017732607660550276202185360306892174475173414068008532842641073816047434252096088893001174878620154884623698934422734527237373783446001426385264777769239458514663108548368835300117626991315821186712126091688924260794302712906836338570396725275628437214502966010745171890550976403017146107809692753399137175842495726101802457700028268770533497557259617913047080588695603197780542598015001296338954773085944897501282913485698644148477680400679429661963379459179867647609564845302280524121080969024349218614078166013160318406115883430800959391677035855098819090130804995160699207075262828957974353464877863432048446783325176284184950715464299975248932536434690499730223924994816591462470764357337715453809755669922571864113467002265206382822614122214366987123407064757471321921527218981958832167043274086557590897920536543617390241484111625473725833215336504963839941412042717470101959206797437081848320911534624378992800166846266420772994861450784273562421852655258236971143731055507929231615133256268240833149051795653926622247861530770870530094673087296977251273653829526370061110017879278862095456503188245204890916094378512096880284624631994336060685835308357858066447450822037349006082676927888137356551736348329211459530922450343287597879323097872943228016740700071163674672456626844792229622293950833699841513890063235402750363410132064432047614016749576029578117076143521263984224167565958549288121081111362387518637809398609089485940190352690549551397764307151510547814482197332191053162472081737753569574720702962199569804056367808753481411555403549700322831839679879519616896095963799144782200885156777900931575258709162526070317571932773037992897943158849436497444843580585196077945205898513675917129628593667462389525649360155307925589474318769573503435313455135729243225460171234359038134989175516330499320900735378212891063684387616633188002506405991320793994136745656636355254695576190283611109001358660000480254952562004188936410060480441612208853369768736687470409909589341784439280806123918815483361070357730859865255525801482117810251178364607505450156265849073338867977798781614111989783280776322952704129011978554500357837910047560244403362117548061661521414740024890563890877982385300749153850966996623819668134971499827551339084525513572332722203997935007199170619779962710807455510144304537505504029163543038782475624342033405947529118865625859394741899027073940461781312223414594791616950158587090917978525811599288624552955093329187286778886826205562602242019779954977603975491081364458784973730802286757681025352847813136811198842539619184047915236523422573545062565094573315360568474441528221584772145980684190539939621175956737376935616357822771282949920235763423783179664502708857502016870901643602768931066510249869500681253586170594761117916361739565768216224289861638392730282934076920670099650929342509735126923619971454725186977956178166593658970498836518525915975204511943020553019297417514259469469364616052399958218341975857342694686286541145320927120883419659439998049866149395995660937421091644244992780549012469763142114336703535333901768878490499171222159545810151491406322412681669219657526646780280197909870315942159612440795519792426282001140500916259490191269052875123034703887701655087158412618765108986495713038551013576311051838487157036078066430018194905443712721523751121845199807449395165414013408826201686531552443644907791777392089023442033506309917155375700265427291674981895463745662131523458583623117254364264874353522352720886822680558825128856700798545052669453762265986864230996578538623303690857377855159742191066106295316790504921749492073112328895413269683685194703930764114969207578362724538441277562917586955421148796837939514145154602059676597691818715114447097405484605763482945782480398039873742724398359678048584195442507204948245373899917801304101218941522137123520477069762418834226269503129492775821730529717145466763859453198840102135102799258045666178083476882470815214439456514004130354397101314597841841189024364524384788935676777252282868311841125518960988651233151840792389962413780841178557330809628741001669418385173035837482040509119122217929891131445133184795268486177007348895735998106833314305616352103493664285626911799995733064648663029102140639983444350874925959929281737721448802262182865935318628834519277165627693652335002879425103443012600027495165050651837105564583387105461682028199009776076862845270051192857333227296339125844020800973630719923223838168433378362569395129245328735460218524546212502254341894379771268168067750788079180993100812399176339278092915735438183227024323179918514417780269844031513439413440430289986200591995450720622850300327345857732451683053456070957771166342717410023432930091813721416714312319232881207827050953699133957550280983290414770773572932514706217795127168922011935613893859504695629781849277331839175879395056579964753160585662410204515572753255326228174777102775956316650296875432637222634522182761678118210675273149256035759158356524545664948652189585198010118811408799253033100959228945451466722407385147883764770256395855199211974005275413971378865358053055317719252595680412176144846001607413197322544079484081580905086639250905745297218144475611984825514167926005359116813376538505689046329722449724422059584166492414701863407077217162376606210600421701226763139298471910890775467536677126905288551716572127502203288652732350088829500641584403165814753518968800160563699231354606051662053869716030998570153588194629057610065969540573965868259750094867582866211440844861081921138265358555924050134146703847384124301894624700346622820063387349110804950180018902814084583491408259787796338783358671938611808744885739208372675009859539797252653149378516146373566067184826262444252689051099198868670332432315222544299173647606638369377590038987351291109662539723025818888815378254113580568979481089763200410734209966724506128070881740804001915922447836154836410284607973614922162739140634621441310863038573805701227227376628192372132180339068389972616949116352484483727855347489660657971071700538962578839272091649250201018631324938088390015070809753104077009484812847640174936878519710146575168898540909389473102828835471258820324127727750682536190432019724610806681382842820219252718977549009624502776076393025051259555656226598360439255647960532889693061259443601980607140426583538653834744198346986612016129121025658112462237893221292092375162340441014361150696057126671718249460257771896039370319615221838766977502626287723738782690856772671868772192543389368670587145850534172510405648659591553826742039208875974510969352589929038028649260495822453799061259744694516565316862628033078200480968385954310408158753887885550140823266865800209479939951049140623244689150811695673170386410275261680358789462152950380562000062592279921227652639197275572038195570101942974471155574336284962973408836005355320326584406353682398865222727517314171505134728785152165930696908225240807198626175050439497993105733308580311429884985445591406534449434782293530200720644483040139893698487555165222340390340349134231618380726445919451816478307724621134047847620234574514135683052956300181298550985681236944474843146735028416004534956194946791209123617576727998226801428621024318205739189696411050823640696448544985765038022632525598422559661473462560304159298344798164004127036120465540733597434165685532009367507550358317265574854415439447981570524839758218998502607509849513260421023738094558261001100028926092651479549225045646835015351521542652958994115770919585821319482701624166765169809737403164214091281943004258013748879507822320950062636393569316927898932067274472294677918669075819770337406866854723045585397271196724701255174272752766161462688898850190869849931762470326417350305511357830103720675276548746530150009019425619562547487409563402946247012175250844785884730074000431849390991471652138763940424261424048822930865994454603261249291540568897280928752817309184942483925828120789407354499259521998972467844644696406902000487926761156303328055859969301652495674027969884563743991635535636241059082323090470162723754973468509001657345690550402245120726849754167836394176078963177108536828488947872387130053559148706287956340120722253395486127436427330215851262954618066965162010910566041327251570652289173724522897254379665653921674181070352075934976510564953935705355577236445261913562129590642447897235202864190343939033040162973764757818263870640107865868445503679622610980767867602507216672745298595065805616106143471828882870188497396531533081686921125215217517219411739739975294080414861616399751205698652273054922367456870122888826975423157869629679132344452165766704889589144474288915777025490504323769336955382744771214616150211357104248208864404190430794947103062143612415789814805955076714490551794576031494496559293703052110721595226370679965513262601532705018765044822780394358026689937472344823533057797906864604604866451786496590021768552271514192353619228177970534609861490660181755615354742167168689179226726855558583031587713211209266265229887461676066729750879658883245135198838815585384969206187786890210450067071900651735544839462680791686549506599717982747306240181810698187322103472538161658421687622050284207469510754505097945016625795329793887674716359918951264567120640105436297535470821704832581161751737986322245792624801517389825740844608244327473875692691967158133459410497539203397742425030979134211421342737199459883012249142654961489172443810900326160726087648723382664057696667206643942082962667118053456271191274140972061434347490492494194582151048360840797233528616730780784196945618410439537036531155534969163224519879072724985048188431216697540484604650674297439615997701179741560066927461591842429939140523057887102492299283748625298261050451812188415119423702222793531252537015761723502175217509186902778918921251866883694208519255135426873766133198603041319087324668167971452651140140766044955641599341865366234044985520231498118731221557087337155673737889852032892106170355522171585054920869817354889495226065721815633310940398716922379071293598861387737185284406968881936643694714334603264784409887540899975714309908640768396282538996488195621481624166499675529389049468082522789495203247489894558925578253902515938719420994189350946464066245865449400786556030089994959960712373062167493042876888287465978782015843885910980089247244379723631116460272292792094559499504348944531146556712469551872419492471719306419566365120135061951374079821080673493487381452493471648170166987469929656747289235739467246897018851598456010817981426797201965999839448629809703132809137511473250808708127019836945973977902431814452922276421912218261120762567954191897880518627381645224428487643985565980184424880407126343803845624119179880450248867521473487113690525789541002485095252640929100296635179158039450074268946602715404212416650591788019167887917423787260151234502147450814482905385000710193113723566409606091976818002397097690696530420837766813393114848383161256647689969358084854383744318115389404506324541878805045954085211992213809245272073030393856530242339789212559585013845774283835505926294327925345698921534307850209621306805757815958456775688831647381100975199477913840537771738043769483307435523470748649542027516640283288200695412717806112946076533253823512800470288694841065153741755546257528118885890065172196334982106187725152697756980194690156421246737755143042522165691415801771578891689022561693943775873582214592016445774259314117865192783340779321531596821157241719823014290349173613917312187081569961815949086573051862430693991767589604677065091643617888989419330979204441541586756179137204660390879888850425273487916693343271105941794982250334459992550476175287064546639427439499189901650571754637134570934126657114165524152261835407710601145648869805209893425567608742685749670746951395919205823369564819961620900585555489434555795137525823683273221004997204209850938060229527926162422571424122184176353973406718700581480843093420347878798669610645928559017034382737105119603023848583101631407595125791354182190215076412556515592508531360357170217139122479728991952691338350109743135958434806165641466661530805174261426334350666995708448383303036480588482610656685006515736504472804366385571863777630479394005949604739197770126899265324416033272243275101036199746775093283653964976197676008613032350920427776879064449717227241601544614640663320371946120223566489852021938752728197968689317215473571418701861418739526272857003909192124951855210315885183572911539720148105700885722889586860330240100543899495431008262165592402383682367698240012513120330352187692979090462588325169125494943795712455394875352555925256179319916400901600730451175068866713309601187967621267360505518340341106168171920922515518589028703923310938651303505604470044002195667381264237617325807287385646688599192012123489390630272440787248954639623415822075955525689864342854519854127790745094102691215200767178415047786922308731249459307538261135927381388663437748625196513626889009168653443769747757812102484328276889221541829751922899104198611507524667999514216655005630209550881713213406373944531173493738770851326949913068101576840035461551927450781823450121657537913776915464469831672107190342342276320837045925786297685051361299840543227522706784718942695912268035672714888270697738027814100295660550806223950654966079702405556491006185379761234692989426570814202441914693746362693539295157683089113448701843628612840948898688051737220062618079995911384607833194576293179871033228889376648457325037663972811687353394013846849015067078348496421251402192399951420011140668610748777529635979916636025529466320137268345195220401102815423380738137507515180320211605672586017217289969073315264988016172499787670313582007330183825584141988915501843215473676907761261314735300694802359648223851782021147908165304070168382107554859191138402768642413846588174948745897062429817388823247158443224433386882496880563498765641997709616070479434304621724612634154906846604922994210495332989196135044212744541602120037834069981902417380874179328515901557184587528926356122514709785717512162586009510507334900307616594210892667814011435975128250156884006604998833200872134593775272230352733551445564446204960844298529718455588415237627222385655388129127918379194336494225946771323986005802288617145704559573768699696103821137069275297385775681689099879068845281137497582244845622533289234368765605488507333397192834059866990868519187510601124075914290910836230189970265421262494338767266061847890445825999094841185543060466403820196638927083731665650341771510080705103217142819280229671610214691389796261222253808737043510697571888093011945420033368399360089657023285702152550577575394539658114140381714787779015872377426720273073453320508582159354051246252419879182574469615678824004013499368948246446902303396506300938054085920558719594521285374864167844302419532763202056753166135645778944551877659169969134276690644915215323727668794469553900495999618135721301090304048623530715352213894622925585256172058104963664974098148666128418578701080374910911697880841397594470957833074341505073035676756436281527324865833088001128143021228313681776959697596649075462777088259132643458031352766703081080848448542018166717647903700999214317340464788939980728320977105189386844246040996968546974458893509510269770223294131925656101572779759501679540236184388735117713502798769515947651061466787616401412657460765209248299286062266311786780749101024548806100964983528278397736333563483441855676121646482540009884580329629421588729968657486502276159338647743661835220450298158992520756495793718874301942712871399254951333644859072246317302539931907514850505869338649758232444386499238488921256654932837198115421102246103082914403226249087637155024970216953992277742877078610947720838848947548248575084686349904536590035127121702774503165227810341938344182983635797888058440082688345899430052465092498443435928660988726816119699791938028559322099199324954852102771399426917076724733387140676697939245895550451973029510628403446812139026546988447995918434793422431190636041112944233757724195495180105507887911589800570686755804099569177771012628579253452303198692595204668897656036988274524092303994574877584261967687439102347202719094059304881071337144471553238946338204912931734305902392694761533094312704521146090487347115641169982187118561298717896782541051485822661526789135780588614408030378371530820961178099526931329633718848054488190894584983105313196596327574544240623426198977400820043309030921836584185964152880734535872554257623758425444171943778401955961348647874472508849119296352336685018505190119505068481153082420897179297741850105090498223897857374931542943555238504702067491121882362042194341900545289194693001350867629161360929105829729297016024579080986182130240572402267268736868852309871962020939811874940393062913745354207876875238244556625996601592296296372135687024420762716798979408078128231043969377714877393056509795113308879780541916474951173843656161925841623458135206051379351727974095582046672355768775755837840470508563899998856722510673595625538943596757859876098088243308507740369961084149193157670936780899838856083179893488179509075769186131136402684779994818251998575496754726594422376873904718738857545607136719806719184397957197343988705710151233214768118766302137944194705396670084595913284214968831131689203818535525776389934477583036941385932630153949191992363883384560441425313659823445679042980901074748691856525552314889558596459636019967424145727198759114873879603496573893994771371441613983445350388188316796602436293932525954421543809894478952217693083177910219964430906334129637807530102086642621182827324730892974466613752939451305117410509489076041338267940404931392650727837053132481507179733123110832534835363147721510533327273382379098945342263327294516852130670391229431663508662709892413148183316127868893956118006114947245671956322988095156849059704414888908823740922236676593387467858489971814777462637488321296724966167621210828819220173646077429961340550891684462206430508763176262237442722590268171134644094607651792029177959347732407120799910975624561312047205573920754837894102138159564220940177220608224811243438744321280309449008543458841249830715920754626018884921815026950431479533949506457525559054045745465151567601148241754670213163300491456131880661671528018582223665130578061956311698551870129530001345459798869048398187271178693888178418107162411539092948429523634220939376648260772270032119551991831404871166230634658478327180326076031528645361592530709184791500129452777663399865729062455287541233882542874545708900587660438635409388322635425302705423921579953429071524064060194381319931902219660738393332235813370928073014304380722635051816424911723486978739803527358808786900876814535750005667570269093055247772635545674797880176830296164706670546410059527545615292817957508976632532064681986908892446713123401328203030933453186546919863230509127920648395374907697844777588329099628629764120923762682326683867411604287291714473795655426134222562201498424610636948996141695914580520261476375540348821310068163098625144074141191814562249327804894562088602698375365511510526406060487443716335023250755161038724725943904509639048480152865459657183173455159461519057087675933403113148396443815074268500622229730596667917314818064206299896663313231997856291312739895423856029699415879583777294303743015074618924719350534613738062947573485945532394067378571850025059750708850643306250937872897011854175460245544288909620290394162940558742423271423053108335992302651249625811745751816016582759324982635860902838273528195923710679584030303587979218990988266953333568092915518325554526981922016008372025387461370558565074327441938546409912910938989160933374078572491288820804773973153080708697603377472206916603949681148214208888427086630987862564833495683806747987714496819631432668872868196792128246456559109334513710506666389024811276008046946543586993676584175940930635019849178415879311472897302271708254934848214349571270610012840163532928194383830730110110733981290157346394860544813783064202648541519769566489746302494624226012075248826758197522194399601397098308977091172893755133361300310946912231794386650616316119710432589834268465199472014856808494957130726900945613952184371297439382689230845066306403755989736818188925224572876542362666506125425149060338253351145078784373812064005045047853085767610621502965939519337758896971010716993329579344787779949585389212084992533410763300612581806784607086682887868808434250816498840222518234142014450881703206829293948336520008676423662883519840308747578629790202910067959293869617529605264465318143734577690757843809123326526527075248066066406594983141359041163129772247882890279810989493282200226147944063813752876153879960472518737591326726964491191487564575309032826874998982576224713979114759473637236708393585945711346594344866227402480901566985268355881127876701634766719603183390403176859817261312223125724903697807774902252010811967492611973879742546528472577620202567343788852897287933577204790329368041844793059392739746258045532712551375641902151886094907837811645052249655965816408420569752288767412989184899134865724140651018751516759867571618040095049501377908305404480283975209031113966828858747414454136482546174690670970283365401557821254800190203578479259523944797121882378285682971412135529485396030309148328820707448863767194006737648550515061856518565685975099632375569136085599119326348242586959381282199806149164144285292901434843407716301223383138632467869582887188491731426633976290564814919297763556338630409442341236468562003136156405705567947880625877446027234796288653834444034949433155708348784010151245500001941417387241229761023686600044502835404056085223931501110063769252840598868121557291093220026200494932696094487864174636080041300210646084294358805182460742287085822577933200703347125425965974490876080851787742779715046294167013405426217859779361260850498375931749020274920912882470921755039528818880376178971308478395960171855732407183758454081661305888993371922498777142365634682200610060477658171349504947540695838770906325374647904910199887676815592533115826757239526128859750245071453226133740947029278633075211316646156492888929898595329020699437476655153463444197570632301120994055158043029837020973826254506265311764137833605979404421833288848763733531809505199259151649912810400498706041827038524937957722498029925299037859088222588612560221108248013687599580565323315541707830340286946417276696298126163579509374570284608294076391263648070270337039746423119452166148522367484113630586945701754307951528301181239033386333801623247541657471146984353191687259706843089853280624177245076859590818715304149467972882296132534032873031778911336804032193392012425610093674777460561888696141101162941538302106771508514015671775971002752039531467778158395125350481233291570458426711142862153751709507975684933163380268267536666290830165163502437144691212863914264228343726425542514129315323647453277075493755795590792966455080580245820353314973790112177332754984271866640505225475167215871515219421988104605621572480630332699563114083939635464301911849506330714534119824876864257900847273175686122191532084852752424417422597031388015002536657646352413029743216970279472595693421381621748394768097156855485986007350132846912018584417875389367628537940101084848064950015129300454430527913061588482424491534451283783929139967689443986967993037064389251710746255670211149255106705090824577569328013044304033869193127453844285282881913611051199566722307877262289875049625413833907569682439034817292486384930775301514457919537187696625947985649560626757403274422847722285075073288602143911219929522247748264550150419572869390745471533789250317387716100297478032372843770266845981408938346465650308678920209383564996240752987102152363862854071571481386169016005368048646805134550566316022045395174755244770843268674572844961767530419963076337432144629207795380026628640433060592991677359107104829781484160109225177252873822180369252528544502022629778852643656275319660781308098770600242328660424899031224725933074541920957455797279497440136549115044927639417639454783040002079437092948286855082079138915458821454265038349522758365793817523706586869576892735748088566170664677934927884280755707243384156264714444741024503818457884581455860348616191688581556511512780451778858297069055096422387092660874738567777616753532488765130023064823510328385243248138939309560058263220549268604838765352202920278935853113331795095256333438682010574671582321374257860249486604901690910159042789721609695810886252981260254101908289526850228017022390177451414485727353879438308023848318309805704346029246790325757677638699950881093024464764806801407568902797112472362955725598469490891071384552604367127485143085483659988026109463069339073925705974120602816055122235060343209255466979946530960196500915347712017596188176399846060841288946935088085906890891454883566420203930525559259921980955549755777864420439491441340335102430790383072172590188693602805785504029661250126970997785444519122707568535789776719652523811321295238756034937976507676379167172204521240756876725018616671119632644741236149922002579140414994609964519077951983210275792009489930310626595593931997407729998085851356366109308358263578234398090642881598005796511248317596279555857253699347246617944164169843955240528327749310821551936571710046053456879054046748628869249108886012738279591745156716131810177716874874763436758706532607571803332456708262430672833380037782487676157358114758239460948851152308374022691862791823989071794543003333129064067841077413927435294177088920674488366099530956539582051386188796107234752435355306073918278617076232648657160564173179894963403279074205046244366865209951487603194589284647623661395684065638829478598891390340488375820818256971620548681598071398923913634143424431207512366781279278017100685696450716582402354653941841926485242347591992673398576443315316741469131829794866790933199386256402476957537977036441482262786539645288075980417281644347243980705049682840118162402491075867846061401495223697701948422415346406478938510315950395470528045862947991395429364793029267266833553269645574888831102638250864009373514041836506039332798700702617411941733885589440628565156077295519338898918360063274623175660172392386158710735510382220785445834684082320883260212013875731953288332346844108792910309166531180098444311878414738526808072558509573798278623668822627567445668777152415272189820339479291655503738121206531304233440297493534691409913749007043291177150446107274326982609837371481991978261384498178436192959077745033762214683912258174724032577697508444928602120911014428039308528136200288733990742795450668105258272467099015920197710658549673840362602370746517012014618246216000296802157888897789749611767188299118834928916340183476439046657021241037289067875962245681862543054232995610807856684810436970058506345397051572314304614825440284641279806125456636473831083258261762349599085962560268509374171460650718296801583109051083024087136819422551772839162122472583277546238743738372262799959976986147646369680295242167238054587344608650551194891530861187073766148642148238949896243298536946122847992969537092227725825072655394738078853832564118248484405705634845238951046574408257189274588159996262996833058002030197072700520202985505341159577930310445731501909639764152552297798468511141742236741858125273675480323749342512473166139632683836304278938869178984285940672594293679127053154673824466260367184345105762451427255970724717415200045431465137093415677948610743652561369264395919247672913612954422493257172271346141148633244848626880439687317465870387158950814084244448633450444826183229887055068916499338614904244802733052500542613843331499000695275637630039519029912949335695482791785225757653047077297543227528900768086931057705956453026727566341644593889916594054567810182634657669855709563488558834168162860636710075084060893765785493357127268585941583878504107965800254553571773172197254641403193469601330313540519376037610610187549157317633045012106993180216373547183013459439859412240139085562365737103276105866521874106836038115631397736539391843377605321600849097268522252870228369497400463993836935288514366024277076572675286913894681002303429567221827327262468061786757389333302410567046880062688164722648773426964115390725416639456795389113644776563784392707317047060983874939834459596166409650190713833031347198595164529387801512304370271151722127490045851217601261102158798293455764456564479796870943268803151338196981077240663715310670897744015810639935768694515191043581677744528514655873694658906701918522964559359160032311413424513122254073069346102267491689136660539880269325629172962629026740394445911194150996300693605784562519891265588563173467320370345746488846376080991022173333704450363843609205485904197670900818549729745556115263569668163960531831581240581679355431417269095689043784432014006986785618678789936999286764196417762168327184597963167718167839368182766705355361130488917393687595853385476903873258842994048660684156916788715231633519429466451021415942985767409072301960690623749452375355184674530528424074426977298338119825949740133523254251586078320320472665429450226879997239465934110938003456762303633361887420406459161318948443478824505618379811244876307756778611674064929278489240661753107893493622132262245863377121358407146467612497173551166462408222549113549720753516394894752147808297386990959965858123027798551174935558744720109439831390738535655488882499938612168703970594136706541452386287360488276984993446684269261023322040557212750200865975477683674452178966251243529707345336489896787683145219326468173654562703628624110915558072976941657516799977172880937002445646367186935674721356809039588029554084725370964056064133572093637162805918123980316575175364456115159877490888017345714873530798872931739064210414134584423144433471208442313669200210858240225386841865697521369401385764343386761997857796261090856051549376082069245739410679219455136339691537558578875794620832674823154585521338863764212774244155118473570373078463950518230350315020308608876562243711880461063902105764949516501017057421062932613741506120003480058326936081183646567868629326507558172584949440099984285606039346067743766978381561675077355705996869308241755571213742335492705480425567665551045774936200556291544353295313991394293199030853955576053662532882071357178466662243223426539431312149677958574790968720298026298262342444565304551846882227038192130043040095861045008575673246315520183952324163068581705991518890893883886047373341884428088499741430328476775524506184579105603301370284619757222464844936092337097207333179171428242229081804454072437676310944551962413020763388655206836570703803945879490427567888656560073466458153966199113321847059790742937509027535378453635198467792806656758699483399808348429347627173177127137066690295711921729576736396563884857550389151541501673615546488330738210430036051068041829107623207944359295832612165261182466822520973048450240508636969771759100007326336286885094260574650279696431752904285063708369137198261240531549122138001074516809178172477755762089781720967841471354378113337106061637992235262683296660245124532573917988020218745051371059264473859646905620889196601213615648859020454372557658755771831746882011290483669792468650446911940686229326523067741904832343409013776998183218262846696207151710168226188687475005809765017888759377808817296114100116743974027487280927854594764793549863190348760988991512669853356915153836384890513484791759621945313273901228807917659363293176083044724140390643666142722410334234746512406094471222151723428928832894481388688490188869945951398031597491183862452096362038626205130096206142826936415751471617454872750830998292046575221741108688035142629389681992823594116115873263231994027067932203157870694263163377986246761798293668620280422957708035849450864807785133591380252403793161745426068146802567036904440724241865576485324427327143139392856340332858646505590920498738830574029267225742076685931831133507013718168314120944236146614654614844959784731998678991162976006152903475358395479431665189476567617444034711008456330230990715006241699553077343987270024153323844693667391885196212363517409166156724046574322180092721127906920578919430788462433463107610325685008341128781626990229555933297152108502105603651953233087136770600607767856469490850624211020774768944977870495159724746376219982956224465537627951694285863991928382247596630911570012615203729293866044273191142573085297268037050221430272907544831704815549032050653151578128024281409298698397329440510208872382980439299434603017382985531974850340285495907123896748551141773808770799728499129036725885621340371132567998362559064130041257607211966258834355930519361999841136109042205294152497845475111481764816308342216179465465614113204455065739918934367075050256423458296421905497767251220902698836152400266816619772527083956194850630452069524695406559777623831398069823292418981872521191977762224916064915729867896105748004311498369136272132185880207978500123497306608461434057376558177430445769141428739017016399436501784383692283763030830249235206705728822460189544795767771759682912192020438473644169520074862652038282461580034372433134216689334175634720674824619351471783163358552414463102796052409844514055702952018796844976232306340999159375442532482310381953627393873419913379284875148947540672244924226831319913917257210318382307358711051830752734519509297840057630959936939039381214940325377608846337527161925622528813177145462412394359663712168890666226623342536603868091206119922631518230057381125644118607900225833597383566081372606873142309782307247148950586958129977538393245134041347274738734149104595559314426758701670027375580432299829403685435122381928273797158161428318331230247699044221104773869820734132491994036888916075822542403604837928421761846286335741995379981898028274301143037269215326346649180950148612995663298985178484555539271564451698077602282837498907766970133103779634257537294460665921579268394213605552054381946474403316243758852822470773268735462205602552727982282868756471681293274714499009579839669674997025464474701108496324112952014675959097018081555872842258786669049164669487000454658396163162447708555140481028491813317055293725361850413427693760033840351038091569195200107264731732252667390800701697976621469428731981394562470454696437983458753341693308738195337976470099286287522557469844595620774171148341347090449077264190992384424508393597042523706590700801635813487955446082146682451983811254519044108271078189510545919400783158605169027190291347559657722726230842880877949450221939515024156424099481906502724772939079868387774436499011687840417555788808911769573953775474851847064359778393496176346265186953256513391064920481914367877602953785885895494934437585778388711699055376403128154451786505521777753534579579971905835285009664488442141131828897167183772342486768335560090326086625429428951135494092361695064380583429413881709260790800454695407074876368382452442059809213280560405631029563142576909966792980281459788722562362484492136634510744774480205541087452121425563072546038562171796263145452642510049362720971954768120503703960284108882281563817144923349289090565689027064823917356863390091136549576480011976251066043693376799327234633577536841658097454368177941430278162630574383714189473087158776287452660097173722988303612831375390738649474781973821149517614863083420353028466760402805076523450660860539135625170251339000294752661059790210418358964519130049509051634909826382849539100648498358255108165509357682731218143093738482527201852867257638458999060592409599874106952181794176170751494504002835506879169736434926497905220857591713860077956801120114171383670741140087797991762401746352882610762119456459588067147429568606057495201733051887667689263379667768666641583978393333750030278856202297308569216784134080998139438969315133309525374648924499478988217615600236585134267854465123758164264913932670635156657603011904292866291862521405808028057254240565487436673086794659706693058656893436802116461329357757816392186792727766634330684887652112065520429301929439053614923065480820946333610561386920338639630117960609505254186628826973197503390961731055924959259418165236396453202522481124244496102294693265622399738881485268483688422158959819704333119311129242892194169035673343657160496695496411175748112822312043288726583566904299543622853846942782356941801507987309439077146249334318937672279191853141878653022316357252693488907547642380899998956397994633566141887844686612091911511147954443152316410152037237592447334655610251298878163059371086408193850119709970306589837448721250777679939458643892774172548836150789281202324338174007573760168931228585982382993824794241020189559491057222709026345790491414574783365124894216572577831361538413131770411456258217891728273956716136063306591219098961301042146506896221580311798370472777585617542087902902118346866541938848429857987463649441184705219379765840137333120532066175471183370214373310133972373852217564147272872926966562418730921096438899585300804060665018155383486636048025873763145786988247620862763299137978035064084339621331558262501956471327305535128640515539701403637990493495429119518934900301232707507805833378785210896252804971519200812502957968595356275090204162216199022159642435290848634468036616129673982103229775517073415860146025132379292190983733528624602703377134373680153151208936922721935225985009961659965900126236477650246564161548788360767500361660726865246534475256452208200662490915678939376603658165566476722083477544781584394563454293721725422174461489235494091864801729045858211879302558429446176339752166675680990910562282494066146808173243508568690603995253923980597719700377242962644563198357069543161162948830286690685290336889956102751787023317138619532375239993926789907240712759959992739884073805788709607021179214575415107223116093364198094710698049638381484448194526130013415100811232605462213316182444612037830729750664691540934521335904574876823291422356230273003146924278883567103490608192536011227334144975141402391821222171368817745621007447734600906730619570569108619635854688330050452642220360137453543988709243496487349791038438052129359065138140422765200864625308663507448064245188415542914926266835419249309614327305737703929436289090678108073736985996168949381062927713785224526353690840821678195238334288793376007395861076022735891900378714554866572830368905752692205330941182493238955781710907252639633638681425501560094978978058996248462380752681864916445891204595346530362120648997881454924429213442101859942942774213139733110541665620154481848086407028828446783377641273232542528774033240441063803604612102836387589546196062870593209777833193330543590619105093961982042566105388498961019454214479300272201206442718911849083027562048358907928299466695982477279416209336995825998635857472768788351444445752490745214110573213066772541046970770111653805544191796029852316937597373979569782713731502810120615859371707559042352397230869723729082655613659448236307552660756086957483799917177382055553720906625054318881955971256361434868674651956606121919352716853304362773689440526527046842882816515242227870725797985050286576363833090682339479537618411291823508376554185792614939445801550947846336373018431673408233906839451187184877350846860250576328342129327711779299571750913016354377981551916736134813876584969038184713707088062175408945991279284865051482567063270487255421093024123524889561763208826101414455318663516680303060327873696841224222895297403921002187813182973458988660540285234498076071062416159855545233751633508855957504367959392501418240544036955777118488888099183530703983092887326474442583754036890626860267131145973713404068082261533104728635658828660131023669636006853440545782902804928143668581181432426543783563988506176140746767090873932966939808081491210754631656667178457730019406441847344926079035803944172712884295706613371806014088483463396953109986064506074850009862324680902140863516076380167984806514993878138281978600212332377232646286825462625593221021011510003269099952525080278127096678516370655581029035648602416546901523996151552898510246826442664426072866791899207259779118653385019175190571364835314835111995450110404497678633818417893145276465383210277993221995464760928639326050783039942394782685074673476153107381398896383999514430453528613188687466685241296199148514226315339044351100735300367106992852395100386570179647482173667812096986964680356519291814338970142393689141471396791365765154973374866983655237778426206894788285258470089389913997610713224965680050895992856481752388797964662925115183579448624889444181669033604537152460445911713618428984606467810075337675977592607072615692338526579785547259299252894206058669519118713897407505143704006489983122149387482417840207328345565314087931250223623094733178552140653284523254242391083552739750645752316371584522280782051380265088688902118130376504243231958034978550251652959070079735526706852657354574210382765539028307535492887050631133833339911539043898655138433847980891663382000297266266066904692269630360869336127953667749652465644188040597019871365709842480272175892440495692276458681850704961249088680212740836482690572285910388708998699857016919275243638216128863664622255567581377416019051704983211967512956033103383670411728426933810635666413697582991229370291887928613617774703725005907352815240990103347709883526253307234167702582882356990313468891901976402937308903249777153114083740182367413517242607239829149858589184748914116575921071090677754695833268434177953268747406917390362488022227331871757631592000748829623987689565400171565381592630447907916636697936431717791387758468099994877487632255372985989538623826362086805864064281731332324087817764348113388756158259277004294415471819553239356889254562963987591490002179512902129325135966598948780554292707155272883265972078234400890425988267666661126161096692630455076207573776022107701003153760164838534802024977834886026877961788616822390818794560815538914269211968237742099572759073242367462796775841692259376897578318984655180891826986698372667201469864273390001700893301705534420473262230713763784187845903364197349612504322627413948483018473473090764791846875752006100698082929453353623360550644558001538471501457305453614070265252240134849357128440405797705021712276245385360239266152338224032236621068884800773857446136951900313057023960320697958678375299513746024538616868834358422125399411978015664769905083855084195843091574018780612341165851182080834625658500436290538415174910220789664311910690814616505320678560501608119630541218126933124647717890424012687491086212074453894586379389690911558029412743573403524515603974416498078001786447694852040763025231325972734818246897245684304289492024738292220397322322143370512429663876367543404829166415529572826062746844215863028720925133855351481453596478973020017114616530072198194769151128408307576682322087343825954491950137790977593817167100384951383313224541954631751425512969266211249647912758135213223079142048314669101337790819491203648192662347688542228775600814531678402608904117465288515855205594162379293216960765499219062638534759088166799874117912117838555918021256236137848411601931009674136978913587927976167694057138339433810439589917348099322366268014324219213924576443873956604653161443205315442558988527142428520359760091364634285991176197783587124030019599959159532594596691287630380881883814062185194098734116691976623246911192360092483754642309663433585218195202353031260471934511784998302344651515308141077700441218587641194619161470384070466553134590305527648988552286214846588061060019540234833633375748495244054061625262317549043244355918235816617809054877502113782015495638601183545416314206851944319173428922510405993818130563301245181292954128740094712334358267627986019501527145046323270379162403339735583166825774921694502906688285233932515143940724231501745162411402126491096718541228446868251185530938797573562179928502842607691664272198264538277169166985681028584294138305259515931515226810531300122212288502156120450120698487172720992150612694922796163598317474677059221159078798254614084398144209952533885569801584998321309237073420608892322600400425353552467645299779420442723543786438999738984229662610250431334088391773704610156555233419235424571511680205765881320111680322906889881771442038967550451821104630840722565099078170041234701564058201896876508621888043290626234741446046447850712147228798271847216938356955561736574568478475932343196534626394860103140383251726251478572957265392339876959500546775704067521299187133930784255453978802729213007235164151393712321105261439293630345532335954630848630690659201143432344753971172062052688688951292306514105420297370954825505975106000496322646248575678485095679248485323170424095507193550805991876341382947714702608993581720870677756532261649434683731104013433496071792478008046926101724699759126016023219039697226102728828703036488821741085635518407803511727089290121846906150919746596993068166137048127814882700691478048922232487618701469508904727350855636325306278538918916072903619074368120491059367275687843847073861421223046136195734439427752149454190511941481197667948818032680410331729331848823549690157079409325845846214153291574115283547092402060885278214252100990277517308133829133006684947694591955208191428323583708978741981236726952615146083763034298380512610910064301430128998295110710959912695426239559018613474260448951981097275231947399800536200878396853084140752122666542016910782161730653931904257579410948469827850339583801902520133197747248313310573585187379427225068485871236018721796586936168644956162571977200463486724641133997498535992394006398527713410415724223859667141554333452061846508782008382347586625665768492074318875384490457621778960269322088273133304245983127361789364294466287940915336647852900407184302839429387744772581041980314386173987636437763667238930417188562383071897244197891592829955587900246356982292068901628091483224688277732430409301398877051026000077752515692075455106061543771955284690998543730182891747729921517155295518885480695698018883995753343812648438192210909016074263733054889040090522839694133775259471610158393244271515549501063095402517699081756463594163288922087091292823546857184847787500769897244546436901373081045964500173987947670306241917925651552479972708516447837864866044370336596471609760180946488377501563646156554602044749311791669838310879771228918742304445540967905143350991112155653918315585272606853226774332242288598671843546189073606088331838350489315406926935490315063641331005529213081442607945645267896610891488357394139556199109611709226847020458651687712378718848283871100807646208796392490469214864977062620259860309523144021169206170812744697865110971297784255437476220264135210456033269898649592037231909305422495639384394100552438589509258854867803808491624655684279049322941313719043108149872372194917705385715438626324211165583664027661887998214020427725131850104006100168072387142988200715466842163443649828378920224622696575196020613788163420335029214707079339347112686281622957196118700819574773773810829371765310629153527827157525709011425394509487122271787687305695349110921308600581699940558389118880715777307890160889585430142349039213825614115999807055097530870678636385212013455628838422333339690166837708238805578349201088863664853800768296605484936949232794917597544802620706170093899087157020961114751402098399336619867938206656601834300507491962221124222497120082144440332258776602190995990698697070685318721025401530048156906402802214352132263659143634298300568164756853586923476328285157849903076037782705348728474801805962787288027634880403996982261652799298860515033574139448275158066919150628483860988666193936162448149290337438436184289108159539647650796449715581093040623452441116314814678629236570411639357686940168879878166423380639903294317793214678015238511375387786485128775410212440014299591128911113782275582457286839508151298552590617526540747722687281508978463879163428756958484981448382745224476351846447682784637204235865878512596920134716725479644509109175052952155012439781968767187964498889513774311482509081770164404893271335737688627907324557413643146542582937182151834902052876531896499484598561330931860534389184100701404593425383542519486820077821622605540158211896677010916201081695315850222674012324944215829241973616826125632315268251099549655476738457274150352444761732608276299561297224876598992918932333901800125262904307704406465257799764070178296805620808268918364995637199461223180884277310406204947504440001762873127876443418856673430012636209136110751763964379375426702879984516959981380658438812226387709109801508144739671217297990714340276913717707646613134500715795679808085908770853884220962029487863372617940948463602057685470188686502287752751910078424042326328193380077209136649564487289830503282439543238272402035377685634179398917584363037930976791263145889419372961692473789180405509402331865071277427916070826702384078713811567867513848381620189613692652675564050817500633621533233900593944858133804019195412671699796608862587476407663085501038103252282155840478992337204293497413048137335076649443669367533027587998820780424695210295474808348105291181618311841166585997069272263520601058555798775330438193559374721856320136337828645650846709512279893977346999287013034111966509867659543921849720184472272066634414656491327209799102039539032915339381462430021124081284668116389036080850241176126723858958780042309903381319734851778843702462848960273432478832698043500432875373692710019033810436090201288596592228847519837089050114053578841475240559105070569973655757379779269965303504930951911928742473239956536563102239891009977003397318521458259994325798085947316275405920945444256325447444399682593894406694031871439994730134469459624580021430139486123225651784534830432267636599477789228916434524767274059095885791175995864743141100506763663069692279014348922635409417733323105893407412761343669812355163510305367517020236494257162217556487929866830533863513403911852257045313982367195387334081888386118409971344565627486124407024545113407813889957514613205915469270407347457577705199446096396552849858317874870145781027864722961481952247314356302068595323564214014864039481301409596944986721322551487304173370719650459207171346094298725942873399331199330966560897786811759502509839693231203066994760974750345437919387979947861456214396898378657721040224882443927085290234262618405807837855948808814707070359234369189231486936161364582253870992233747399473055074014522177775762071084063386697101924128086963945608566643442409798609254446355125829284503781401036104210852577532414656610788906909811075977843786427847767965564256570078421927759882779312309559216184855114925983530658734803712399975219195340507657646199544201399101042687428162077390637522600413575491105396342287911080110356730373495962299911373037278972284284896393747561520432258764601401036792657419506294762651895853391727158694547214762279063103942038736143189305446466183511078587823389014774051072563800666288762235929533645307480751631423946183580831349290495972585160287962635387801964713251910947080943928057584003556300712591347653762647529606525928737040829669681847285858442365935129933315959136983881177787520985129561790275305832040503456779104671429663432406970978370340094162975752308750692858345825285417781401944080031418064760560299304790998836716006854660615944076946884421601114342400621071704427673134303783104068820012489058421446652593319075873918406573523639964872443800948978836976515077724953906848125849862890230863691377664573581700315002696873062021029776042852597005967359655053582144505812718865039609149358413465651791440431830357018338124239419301009406374320578007290425267650188890814854288270368674914789009684197472648264891379731718443333074738752286155499575423766223399242491693576617364017467647925766106064203824194289544457613078467375813621301219989200530523632299269519240300918264382618692042167741596979165869671748533083189097248231230724421341711940386734622649304898839945811152650090390396224467167500062988606804938133043485054393368641406655867113080156685681328646673536199634380719155758729269813528242052009855847178529475611255649177308829030410800391317621292761850523136725201296494667406415101877743415584662161343371376980845753368457944158895209047371214795951860669528405506724489262432312198542028742658751908005960987147756795557463823072594317814031813257145782405897061450397393098497883165375006548493651830441793340656980419289977698528413540270452893309810770998647725950860394566695256739295911252787039702118209710478465410872743920070815268946397853961182437747867025292418584479115254540150716746657364647686416550026568756947418399252330089543243753922191374289591445775147182115250719833788885821628580928369534685792592869874915935846417233984022969624125369599979677017133483359915639739849353621039899146555731372343046438477702189684381950334863054767592965201568800727384389728663328922541050449052197185146812092928084122533887214674114951323957711307615933244741725171725303711636971599567918024976129867711116660370157214862252386704615108072272005044690086990313246248927435378997352946373233507474890879685627585866473313216877358260739884202907946158137044571419881352620660640158390123023743705872196905815769907955549202938736889243654218374940398752812452751413550543156114453328823077335284848667144719377640356256319356573085438599763258273537811566451226334974635319623187347025770824945714643573268079811997404228561088923459064469071055886164864870903678038715870578974284874655007698452836247165338411004915060535170983874965180258669419856989471814727023913619551395551456055782265156938364094515958859533804892942235902976937191758362664735834058844416091019883874255103241299411488260376540169739998507303201438547353306310399228882909541836656314188304814057663880492340102222361788786336554381369636807402787010464357110315353384723667900534802415345227134454207387131225803359272738530994526828297806772868929610003663185211580664277865055763558855276037270126387781642104142247904537822219308983645874207641738457012502585827652914040437090926688471362016093032020375773843359308118446450519975576664963011781078897948648114091019742105835805296862519631917299852914154288435587677920334312928037375838017368071557213684309057156792225715463038856599051335263308672870672564381347879766735646209612746883771375191786251591979977579653048825203337627314478840777100014503885284287689428721869317952020532259693474127948996117220985545878695351365433221596942581371961485504291629893715938327856166840552706768493948392318674163416859127244535294426761674717707911688713534700378632070600912165103674863459816837834544751522553756950084934723411213279785876034794899012299088951671710224786075822803803998319101664066386107116737852898567732782930157632927754549821680729784275358871458388280050190402245289659460540940962523222457952464951658447682448194300362196636197962122399148106113582021591078075465633626235318508000821024202998370920078266312939894956118599890858958670860138451630076998405415802847782751469244845102738088497788716791558908891412122225825519909598109307236550891736113199934261812990333601012451384074193359643978166351227457704764193585332449476877699781723798376806443204692163451762563178874440531345941021759449140239130044008336166596981894253276649810136081566756480908420748998379466088825244621956353731197855275127500652301724732317386695625601050456263785999569832877116642955307016143811930905541816165407649249171404860621731688581030363569491733080785174865254882858187531960253255529831205248794364108515792026471251168393768617843848275799097933261498396987128533528389360393610118938322221675880074883310651434954614791270009955511060078418030688266312060429979797118018750898696307976387122191157962210963014317500794433763387925968472503941040319426223098257607972530443137305470788402631030126030213575268302338628965750675046341061138729276640800238069012802563897826918396364346871151335601366199365783650295350534840712252987265830478422359968466451210333381347377599979685175102336107705819303645336990878488852646635812190462253556795279173637548046074529398618299072489843916587922838813775651291641781512844079040169716896598489737554478705915952023119535206220391442321427392364274467170843452935444798293615175187797711070196550827438119109828600053098012300733843751652133590468683113273370001589211771407090562837002516739337092339421442827379400804648839083985215069136590064405779302727336094054034043736253914901041933390987085782963652986037646431809140217516607055306229314886640385452839019392355385324347008443167219374470199590904522661095016116936955776397178823160390429265669857638277962889625583905498899790144356505580580110020617452624078468090944121101203497637487115749679047502237531517390066325625455879217153724063771748452150949061703233812256099361969956305040960200074146849009301642070840681053781890794964196611467643828944754830763791083099051955901121275743944678500795714386145455824974825992206052056269887251869350610864316476086633128357160876921883232818430692199041047725088688393832920876192305696228166087110189671506598929134716736765461879257702572383453866859947583654583320776856332003078215961045690619855580742226006747687973293114448284718590691579898996701025933388686667142150189407254867455444331268505732785904566137816777225318351114259669409241420410207919397444147408756789422784992038584759059096395213739576319216669160564234913431084638676824534987356365883506560623661667820796531134852856516705409997555607650030468403188358623812760346128416291158741786663657859846959613352344519463983336055560676268797276627074648914583836886483110453541709660733823962361807477945918076729976985325368116923400018349083798218883323818167946271497105333983628316592976762822355341469142815599958447944497851592079656610267731701536590631678232226922499213384563488093822027401521951719356734874628173567504319773811102646309201378193953041832361560959512855934077132225683940589642014321615055166622904664277501158103575384159536908586330297331400329309939214737379115402849403864313529210107872464073534013098347658746500636410299792086116172479389789590822421614763916297271627797002504568441739276795006224685333026294253706268475158843425771963597414453416180590297577943216249599568961357360863123865679930895400454044106707604171775907086309546006971915576032261716654926927251624020733000770023208651619171543683844831650176886346912946129509137992502749061994567795045707787267908263405636729291637429716708322425046338673122265112329724275021040183749561776958791352658697963824820087410581531290336223095031262588409208558581184022840040789520430659893419662206772352213062551396050274248400725161027656576575103913846219845071756831269516707586503651122046725911896408090768927655093509729789309673383461989286971411249464409126566787153514015325372255215414308790950057455656112663544225290096913887039666823320856953128399989665735776465760128947447151910154025301868089119993292557793896173791798101371632566762459795697205563738084579290861937620641519096511014024004498096083741535453290245155578208531783307953289840051915690422180617903807419882227649033321449547207889839777705179833313507400093661265517590739817092267229212396682152577702401676928474050686524677758361858916733106765784590931933672930978364888240019725997165733633141102854488450322201739388757621091699729219749742970734079897110287006389954189888144652420408882825263360788710090457215241462271893017110027214036242463885069254745527962909446086107517264262144217665178500640903167093943695330536952582490906675544603849974822423848397358758284756984279089371802988849755755060444177727334277477490204940278399965009239072847833306982691423018580162630992307979313684763577683089732588632806234257404193750039124936542873321055893396691339477296521646497249748848979518836504209988454537264938078068059175438410738364821756695928283537351158420773589663486125003145212056272334697109177284728851396836715222527352573953196953663699596932126597018755344250666703382430991676618693423979754572796477746807293448476756360569122797359193610645271494326738942702902442554793118011707270098271771358439163775057161647689069117617934921418188461689322225140937374395977742952113988872218443755699812839224538821802110899852584895090752659252666893892184527327437739460232088381445673894300803590437333521656807592898280192293196988540547514447639102957916836940457725883410438526168793515053017215807439397511413642628629181134248395886823315202501601403297192493339011536215502351340056777491556375399517228956613663375845660820090120320577760007152090309035264060809353470090732063207057837586623009125037495150306388308166939757783797703895590342243076587368994468162255728919165453545566075185895169613310119681779403673013904290400619376167385031828076533854810709831269424989221794642810261141209613472974467041537184160753649265082055699202177319491455414473115353019301920235447732105157229427658210570940713881717407277732118187056733384249755369771639388946871811995086556473435493938424321543895377529643989873321183798646086347800896573682101044259349439575781580478835506335387945787632788323541115251604570090778762548520172074474040839524313978203866048301605941353970235991643794980813686808515871556563773004237468843997249288555470742529313478097362560626484822565932112502089393943938628604142078687881872633418233670966710556157367214415722378607535306633244174356123538649996111288925710145309093269743912938262987881663397134225219486707610898265106215878102193867475536160284396835961113428631729539515649073334962831420578071631603252972099858281462605347726279669069949535894107972675242792034586197598792009105399013597603179697301082909329472899705842652492336969552168574702291725378650616220276049924524688737589902498212592938091948944063409679176196276473929173596784984197545719567189174737260172985136626918369089485538643127544202693864928833539955748806881194777189583566031258640148729566233633811032643081756457060598300735452098387351773487613261622476369540607773156863799074935509371000819617907210143675714312026559584551913956189241723736499492896567650138230212976002735694541980793286912021737930934338915557237401998748041070496345040342278619234556212504229403717875298296880614655348443354220267137598387198242383551483333161212981686637439394641048948120080430083601406201845015311692608072010882800539183194055004624757654100332544042941710170858796952351676495012300634247765141567195982040448739661592383392027650886107780384073008542153384809456759217179140203593629244076903743532945776746187077765253314737694866972691140392377381599986986878570046303245629034373984829869028585436907835854523383040598054580014426990989350418990464774707452296861265561334510243174651445628484844032228991227822059408314151380183471495292571852423842398703593408659768272393271599679646600674076017046233849806660809067902938899270917352132286399946011739213781857437891053368440222744601285774671777167218099014713016843857121309701511212816749240377435109330750645268147285878778962633253041846132325845782707149747884264505505552342021303127914995526272170909499408605966168492187150382019109119193809858915293839475521331386443412227633854362758761977281136651707587585653255842783100121052773669806152086229253198649007446910757935348981871508112458862747828229058377057280822549015121439093054491643238154405533477101265788529274355154208138519418600042099622054574483198477654480177242324914711166838624128211289397303490765345565035187320719546845976489728645303732085246650934613817934189448907690251994851073767731813325633093245503868413282445254275493008604253269732445064782137142259657079190109036505994739734080547001126030419598277777269737268205074979308808916661328105651090646277463938583751412702849595252717806411874054442258846025870676316265350347489445339342232559350154444083008876149858403131312777970664909266215996806908134823773502837462741061598840163441897833258442436355910570491613953626290893697076693285041240982707424723539898924457343744630988496372992421977597938600173496792740085073653015785334956910941942027452634945391830879183224329350519840558748365602911924006953713644223062836393027885709204924476418085704918600665532435806223430733644504722885835071663629578068538100166073433210116767003759845627581475196019168170587173318306802466812418189559788373341151009072776060060054868379532504573585904514239780920114529855223521957830218322701307695942480160912425358050637140041960855276727884355156043352824929762638978802233787322888140760356669486162970544446866057402126414998750239306500844326776823321995820525515013152456031001841242795086273845044606009015771872316089401111039041215961124359367330050068618128616382382551068580468278141863035700296867808870262263171701606946099295360872764931451203797476816716914208718303725584563415897772229022638988380651346424946206955632233232956070764749557143614826849322975888938072233430796554492571335497855622151265416724585463206288729155083611050108216917107701594553490630126365144612215567580380395033923659257739128506303772244204588610070318755015383423279675334950802858274438146419437434353075743901623064255524796628604291789459081644504451386528331914437950708438421033561044948472562546761045749789983005201855201588232678665108822555679016003120746890821272081806621148485167331175755453837613248870281095861784448882788922496640437874298679151190336778316721896655099454314933131126200265933684297985262470328054373311955633968019109569148156440400489671868324901560705070534422777687135846918842316412798315830839244133379446702091168564157024087415868081483550931236480785489348034606122561163020421596645927549827978188846423569505396633500106244608947786772460229163274696265520686747113835008818123677481802549470154372434804868609785406263896701540684073600338590695752505091882430707722179660502210340177479057883316455527668373494238077419293432136142602139608097501297839068381303819761002496450351995221035785345311433806337404124469595731352170110393614888181398991983185118924049862546678800169321181492671535444365417422454738788575030995053703226904661996963604348445850235706386978518131052469379126433162318287350770136276334208141065739749823264203047663927016753019967663171556205822545236566480002329970755707218986740464654555886600807188381949219962991871924603248556102656274816042701491319354698181437973617982855659094015534868466793702219813449429272543918523541121401256046009414187475955193067163739001908447423531147038233257050865768718863944382258896409737891059460789624017353310552882487161809728257047483100512766133669826375320056441145110360612808167195982359254776198378326013932943150755804717061156301677910313849322456370467292075974996649229044955853292735272146212613538437351604283277583941830037064847843353171431084728285128625283035441769114281963833737379111196074163810217517703348633401826110125475172122944138547218652017521488030453708533675857795669144339332390080906272616860077048291878967334548742978746599622912860148515906253002610106519991988145076837682221175308476430873660262165514546193813354940328723522855426303924767923581901288390145770456185703333023381450653248986104186456618164852539581924539626269999309188352625254452755048717246159355009389521302626468690386344792826196493253587761800485932173181111440722385753570212973769776190067037249285877356404063803269496400681374898196283481347660969861685663706343695293352168263154707930371159008434559933908181083511021397683887476261901582790237282168922405406711545307553972421736423621757574996585992818435998491254321067109845251409540409686792316697744793970853053872073867366695959254627310059829501815520873045697750198374054644741348287162780951026388178139436449024926306803283926324910815316369136368200015974564095719504885882958599967427682994961063362452465866308047073211316514244435668501719441811969900307137402204663945242643675287260274370713031888777775889763364607651905251695280630030774772276531327443104570093550988938950184983507643442928406322807926446650275262478641890533748269726970599426340521293446666837203033508109776656916529605066764266831350549530380431019859228366224790339855103692183712314409129856348965287144330441305818563185788715523588986111969011304757728900298806493332675740391602229422461941829774055687773425160898424390027844838716363897186373751876317139928041410558634018258447886677342788586795889932531231549586917123512927963502661858013685236366683210466282626842355433277685848618058569416862674027708265718262676421672462361077515884166954341423062381084738692002539593682638991407756830308406511138848236378535921952016530773587119489501456592996120286682470949456487389950693245732778391127822906699277348119050038243211597372055126848525889127364004872416430915923771232545627795288285580719687085470410476430960187156847396323623978272304010171372707702337595283827001580655099805788970402389254648732251511753432781492048841277744111367335445042604241940149486700660172987580315861056767905876741289679749381365323872302387326940696931110646728894464141092012261182236299501687142055070740889394297391553292614536081620686575127794085236067120123984276498510437830242717202860653413558365458589393917514927973689034494049380463512200183589084225000525892650857968155458570283500283989889667707562818329560343754481094334756147354986556357843003895050598833514850668999409613089670559175660760929754259829120458405230608862857468602406508234688142540592834410057495818106719576740942322819262017293485422732077153864777916022956177824214014883463842266320759349151489584592612649223433693568828089619584524800122381166809673961058646098445741224010600810091673706607030568140681561325215878424297844515799717555564297186833365283487255373190678506733742958060171321231369496216769648642260786059876178100636603289583068049598921541549075152488769417214401991760685232130745693036358091794597640998958270892298957779054898349940576610613070248571219533316561066084093622224478918244941228387189045030687124109397828964705860723801418506557771649667002962102514457967933299393839493047935531342995487600016884841479713448056903129404762234882676861582317563849996734967015964363494601109261554041032572665172212728670902646657784383102340685018580482093400619735845802418482637075401925244917526585945307274684775815625243904691227248455684926386001192691986469489301044375728577179892389530483568597081084374539693328651298539614886487874712241166557839317793835671737269993804015718749813706328880222713032380648645057341993760922274461345816739207324032698546851153182676754593246693446835899344168201006252867403805012776803554620391729218814263689355838524650732870272564276345277091265847065383781269784737611631136168370660299475404301273249779046448867922920388093285729498522818632563759217139923428639884704746994841022378120091288913421058404948800281397922590616299227218427258847855647984811823237660238306559103387788112649962771937871523554434168790336134602235481829035911554892574320821947898837454870748594171139512017178721432710170908020300716135362653614236608880700211911556209227691345946853517442995670754997787959032308089595552845285898554502444760986530401919288037031219649920771862263923368963810696122801515362382898740932950486046774422221625904664626171811565866676770654070607213151126969353639855457048752943628525791072326536384682461415588360820835006107899880303564608482904851780491921237782992160262981917032594172364994496792301055387435508733322460542648212219605735554817267461669449548249544119944161291457141402465806169000199607469569703507565202783573933601979853387679165169237648859583538471681061550993852859211959228262462467364985095843627281016229100043109401957757562257601505229302490274374035976075490770237822777586750021798013844209980408603736626067158815917755403950926792503587371502347696519568977122076354486607320016456982597825454325852569497030909187628650690974693774125268568180021121437683187033072266508210430728190905125408784712882277024388057433587552870877946030174375770578735149079772559456395008729246102753443902090913292051478728011035253434353992186776205153407028532802881116913176035957233711438570070127876791053107620572755755722918007726843854263203541746387806649811175907250652460859728048150094880898652446627069091276037668134152424123675228668726129105545507272663866442410616205440483552764967039039911535258052351762699245733220957617597064327582291617818252746523545813122761393524062519105247565835030210979775352450155575509742936946040316152493327300509943470255508692516221250058902624980689296126355401242362047268200225344853357110890095447778556815270709096636264321914882724834226982747693163711228200571872343532559392110136629131703026824865810204831314429977388683303749830953637293546311977338321718637881121185226836564258310066594720136188468713348411696239410805187901564435533536579297182301051194396258610712286161303438801042599532115937071861993041020611114929996929757656280466564665508735902893330329607965022796699282588030879574360347327900479264433645053902204561795619595130947531098713799401689218741526978814734920531908869402631882293155250732061275670956964306047717670727893044791997469606156453855862838786127360844788001833148634264049725470457587694148563989268901050391047697237389252327726228971514685791689947071110723654710268263877052723820499610055627413800424354550736030850112140459816918638131850176704662630417593195102225994136517011373439674478075627839935013405272512271530540585577987202085835897046484483597907594880993279589164594390415609109563457628764587084878437765537927633334330912936386191694417156545598829645823793058339143682530907778219498276096467017266067295980727334719136749015117874356785284073430862317377608598722348371569839896798363650563196794202583133831743219937851032226396202796906259196324876605104587389930978037335124244460096134563548248296749824109726111368719458017298866153414022798801043176420665699070718574450126056280545245477717702251687780966541877505031529267815572392139068946130698419618394371792636381414699755431493833129533006090528023861608126205501815892799075613220255842113479809347494064998364513979000255290268789362415853590161813808438169856830457466519985475377909040337163504530776633513890827192780243743562744344811256208300972716160059247715111294257272633654240143493632078947774309530550668013784057934974401387804302278336317267356840465920401653655294414976960766168502910154031212188164819359635396979251352042942958289533637941730654051410274576184204316559580679740176964580849807191615221069814559817657592657964142651978361218998407664403487032565920836381006158930566038441168918251801004178111699887990938135724147440037809884304835584084105588875538005863319697380453015529536057324951821715372069318069222298057306918450254988432300101940283854625588846678469797924815917648577738641411063513929571465156956067750904942380172444108053621708656375123639429664823173153742937442574334872416661393291062396639332667430946445380515763786892016832975321533576577702744578994823364528441072575249058991150626883377942646051289941089124890071005113689160084986882193110957261948559703171157177967143271154942921210463647908269054065618174204370648824406471078290237481862015916491519666813648863210005719092489483685677022729475005799472433688820660404371055185462249003844197885691542607420270779905295628761577920472506541620251465427907774410707151289486370680784872353350515347480889470927256678535361754069636570282878232920267889696105921426779001358701634444748774176556447901780383677822298402426186189201195209432761687749412596699145713520230354629954993516589468574808400208330035403018860253392941382333163037192202182329508274150544590822646061489164931044444128644492169144875025115542979847820869017536781446407627631292443705245846423209069280037002632766197134355657932226422591551330325208888696384880206864142569897781218839461470976050643164549274076064760549629486325333677173352570966123434167540840667843657879192940321177420017023947560808361185623305835651361857934891627416291683981459387288248858492059605433586295470632845453222088603218789118860240333919868076965883321651994128090412551699598882601757373792045197296604351084591351633667360579597440151684804266316576299725196882089407301330349233226521253279652740610837546745774965797692489001302182875742788643662452053895690222090966972093562187206334295727847612299015803753705557636218676162947940211566170989565957194059417089196138124951415014298567072005367142757319548955578410963230157859316946369066301424168007902536411972725299336684303432697497757575033850729218894702238045391884525953958812996496066725570879030476003621061657963198972214864054627282616514734165069716339312686838742887427677054376259567395350851174906730340100020230411645219352804519096973856370229463848854837470900791744862231827551282329871232042843596920518906616630172984014606778460612579041208732256669396061479723537002173830888780240712995146683298869287617963657676120397241213145155860230615036306403628465232282645690078125159090850412186799538806812028203648837796283756426260389847456935347024252849780086658643114382723567170358089191857830836825611645752615713503901864190282311883420648627394235291155923612628372963110226501838709907524970836678639080710892829543732699552394093355130688878536185046260692743067356011315704506558213096006387998556083405251015357943408223667024310966768212353948700932676880075933645945373034210750272423436462076898539652368498956538471424682876064406786739466268845359815158031152706810264531619631122661397034009916940313521224667984068128150204826628163487576548693848487878695075204839353683257626344276855068771357680798244076115617752331996405892806725635166483123563222443189492338310679052345282285405772421914932711301575799282674037365633725898543039983421894038710026501406722275291628210083096609936052402210554071736484280347620460928930215233475904187843168873385512345170838513074240970200397202962872616619591516376326223623456745695545314594241485323018133298839959874161516546474507283379155194004973637816068861376058264272960018013539668477802653988157570099256725654091454039225178489392119716776807493859313045746643437916876540367292918170414854676759784960231531605118153469000441033398943109877064033707167581102482746533024458248372075830733665137971228412634075352933922566450939065790729014056221496137136843986576369109692893334957841557074773959387212044839046925050394537381342082232444754252923129049261159866053868495256640296358427002234363878759709694735748860055270394295023078461927390262755706879406050885255201832430542592797206526709134634454882799132533820961979530935732532953249443076668448336584129657345610219648050092611343073845752503158479430205583074835651462526089034711221414080945752952065053310619361522063060561483647276196996190943188769637851259954795716215332126176878209228708934397126990394659890956278630743581920198631726573690528003761696797624183773033201902449313109648128132803402511528379815852197356586702347994602159108348622210133811973906445881571099071825721369531479622022085703367082073636617837334868162687863291894092468413381069932882665809956528679246808224169906530192720665333977486583124018387179369331449756751503254485755542943504315698375891359293924560851743895604695700136729686084949756870489154885519737297983547294661939033750352305313310397993309511066125445722225260331355390609651758204049426178409767009724957201435402336027790767524546703705402970183501164777039129276866736233844375224716672642424455546641555533943425343996446377617678502832336114732224401316046903666198018956472889092699035501597934991917280908111892688583756100601578866338558787803280441057470304301495572013667571870177309420793016467983797816373826155933540846296340092661964029499741170420048312800426546431020546880693493169952468899847529872599289514529947477650465379972174625995471796546394813213395137271446802733721732814344090872029944551144849623226829227970605930407130536625990384343579091331308943994214271924290525957423379564450694269109927812745262191910078838434794316787614248258179921719786467573443155984402261301705696062670314607117377451502962612688645491100039051098938712734677232022891006906910778592876125158925529462482433149080790004252782206385171862181363520488176200447575951213950668015788108233582413540957559832280816338518937392950777619562842560926150565739571511822545100183051267077774920880813968147037554251313927467713039754503433081429441515950617679796548612010893321258903830416044265168577390703721387128358612952503049590251429327837788293609312994015632180296523175441854455405290079191082925158251201075626476711728781935092765641396412323924787024443470268182476806790164874323036622451294573319722040888350703814536528463553601239162893008440973079993729977706486020020100255629606092277297561447791334436584252625823120917822083908132092856291051542457435206405075697813075700594841081827897923386399943066365624899600556336419696662859146397960666482051112634459915653242025201329346470145187089232929117325404048355254689465015892609958937391115545841992889345564208008487325258590396381071275586388666846741590856921060637831858232898992039389574089421400051737046935507499295948337232428228830732338540835224649470451135577566278403956915331190001598908879337800702807673773182714013661954071036331813283659529389132992563104048115168592918211364008035513778062561584694559181364569981556196766832845674354933606200471288875812344517176730643637399137374543834485659990719658697201792551509872916040183136710598786957558699661772402075777768824424980157580056093292741779393055233131795220639884353306287859379418076392827586059857137455474105129598434357018912324752061929001316598911263683239211924349941502549130387928991564330993045218960323485952909932938862990513947195768878723075038988899722347344146929960727964964523576146186354329017176327548174065223038261739243201178896890378467593536346020466753833713075668615710829492038362803906325024099158534201284603331059307825541163458836608926865875582324104149543058118178809911731870865630681950711356293103730868831014747618976344862000744623655575550752539266715822601332401000231703318989539248828832844533406169156636416200120646141664808186770176251683738155753283592199381576375537632632201674509450032953349108909879391127872746387253214144980968275943643994938114923410543190036934228022284916360835743402711769372367038115400222737464016330034178783769685911500722261686367486789556693809881388547577101288330742444858748315436307482458057246419440797392645662052347104023111786430474252313671841203167098343418265754113881726689641749856421549719736626497517248670977735427868508836498076473941974172888794464642657363142677672608397249226865284709667841981462387390536123735472012595437239356804913798457353752144346178242133244097502682676950141255899663615276243439382556847814607932509167398356181500505225871283496514150314686581279911159178562065541133382943633637325507449957145888248402398300236365380164629979963141957091479932123670521586054702812236497121705691851246346126170371315915248758057133862330929249226753263877584514683918959527082028583949119743175790978080873533808198250505647196203181100380527453695431881741397428385944582136610710782284235980428969903231204145909075009010619603520088889919786986986369307960407163889553432355945927300614929911752873844592958484933683597234601847629365298849963241087508588221424399539429905572140370717707408114357441876660481514815110491285422862509736142227742257492168555075396365217752820660355274603566009994215476365923001523208881426082994353888703207996942572060985711047193128933528876658973542953216866254906524439201831477360162145336665110531982132692430392768176534424810413978722450157491716304677943601424762611023155458792118068723468795465283002351967743390837855894705474435687295285209894592685073091504719516275009915029931630037087250880611884208054075064490538439169099609234903453175329445342760591241644890229964385392609871558432348461147792888619507474065061370883715409921527789458097169895355219880538942083237219125378473531230227943633197792078565248454017621261447765077567764534794810129809066983174930144503698518233297024961409168490233013537952143621344809300181493249521196760148340735912056306052807001074314885539269787050416112595839590108132992695854961754352851980823802642086917403285773427073655750716386749561159277323152201491830895887934620602086268632775933655104577981160641116184003263250741204636429209680781857211443489556169489211049803325148250977165306601859892686842269990281317487148004135998144862225536280203471224301576494472269292815148520943021168780943709524030695251258568260154647840884295763087632370468344492099428420852041793208871875707983021972262959878184363761145616911087746225453885726106066482941515250127322241727658558782539768090315199362602363120276199401712064032976977346058460219271003117409475283092606493496020044294202486126268906908504088539313080997294534277469250539483548070057194260913972399601432793873569166156190017057309930397892886293822795756224667534289008084037429485949491848942236106305779050460016178790630532876512740786239292403516528341757817104424847128368234701180824662094688943314258557676242432515913807037430647807503633052414488382821340162648381353446155916470755714820600889386829407493493963872793531723883034846058348389255227259798416212618590764218581536510343633718832368497896893903490900616316589727389491526017136743339761916426146640455799397789164747360133332688960382515766129609906261623946631661217275685958427081675826307500993952263806168568740632186920940368674205225119861261998810335859678521955244278296444964477413622255032934683494215977911023201938004533532928358338542194004187174730674174935490154203379855283319135185531436943447186612730813379565985676428503562631198912341692202973723903435478354977066940617793313180332581754523344003128596010209233965198935156487744154349486479038076963155579851340091082439284211881373227411772334378616980052909911870595488350855671428108173828805720906790462478648470321718696385462042843515222579854119040867857972603798894867006177056845090645058961222104862828206639205388310513569080883899936808507989849053237366458567985040655829468169234027247955677329475743938598451998715341542868360990264413331230468892806928690502628696261575806605633479321760789763691197086990017348325869930686740518678258471201013875402955973794861975782359896367348932178398325969152128602204239802958911526386856135147464055575958077989394219016333164430379496211043261751885156205412453978660859225077474219093982839021151534435892069875017902362888601795227030022687843576106818241941802951385543586431452657266726491495613673112412515407095274471050232889515682294919771383822153009633691244314923535236887357818141474149421685291886057192139522455337945007854578802714037857110455831892283997287398127302556992901035936795647964663225224373200612696037330208672511586524594614741832723039500816321578506161861717242498086611083596798099904759469117091170521451983101042800351920090155384442075364779608906152730900933792085224295253404768376741975402039518553051545651798010241555870309322665585543928730624493742878731112815643771727471582737476831753323931079352375785947963140425090284529392218063761403968982057079289757365429794325066741512461953395682854276010128329249968562149461310196601553723631518050254123265245532383777718068765271371798631371878087445010553652578463750227566729094313745269551036683166017808471915461954113181442888741056112678637566314833732596545397068777483213864505004013776609800244053228653389084058293678696923080098902571023501602139344051983885667510068501068520358755146966825642658088629539879629718193719434002752810234782146090043534913093034427840887291899862397249435592002258454335223847643006155916349337758167116088806421775755763049366877911926335572246690434134940845064114203452062504085480262543826219200896229747069301875089223232784138468114564938142249108042443807278919162889769841943648175995009597166310382052166116601142003331104192264423775130657836118095901262901196563180084876292837226263380005758446542832368030086999919170343417100460721777066140317157838684624879016839146321970461506264443149776254199313418421218354516153114474270816939006124479325485385222392404397903486197370796508460076376037723779887673672531212735932716329326813958190594729101564524667580184155095962787815270109695434473763204833947601919182693911424113182320225434158060740438864170378706579521791157350212233226984089660920843488608209849553658791235296497901417676533675223508619367973141458625274226289366244501520986730929148809840377160166130857577570576801328611295654669758222868063756606465053198352884760467608757303167849725680339784406539626789403753797294055072907291581063118430007869408860174645138075719159329773692020340674209799860471278055918543329012944278584363082961761500672087635008283209173945754927578583879149640568374334354045231203020541243249852336639310697216451206586687007475094566429753259767209460798218679814541594311040152189694122770573154461515703802176838141248020672761548735477656254336151616470574970727721773079969136606875977883750194950331963183573635224359146562181605942295222304075528282555203906121695643398276814933902023088466662001485595179791501889624414830042880832846165355027314043235199170370099225325459603346632480248361643596286864351417840667545487366941354217077723219800434058923527824888897616726857834700580488412727911710659818903222325709332698581912914211893796353074095346638864494215401773529098037318897183031051363669949532445448525880743764032104092265992621295704175694235089762548195499471405404012253226422745435247489165539779480609164147129590863978383903416027517606362717034265528077072787305414123002532448053853242413271226231294289329640453908008120975295087091632414049984794180457236363286843155883960990167177686612253191003913351780253853204265568568012184923157537387244785906908955571077723215169926035381291521571976860337977135149996646448205895525742425986028601195560842196594283349560767183709091623614650466139357387252077924884126381626101392382381986355637606715463670329608143482360970912842501721414440281221269556501231100053844463544156267353590141484286271877182302668604265773727741911238008222643202351300813180223578751582796964406628140314335121070910676270912950981463059532127183637137023967639242865381390871117388856153619440870101364593638920712109986871442124013763674779010065845117399452218126966568484190543766356098507305863855350805957688530690026508129331882943856421099562008036984727362578592466100638637108884751866969526029527396031569889550931924056581314665500333122995826066514966488217417525300341346579339415876583086569003590199256350921655250695400963573675742890417444218427639748153882324049697343285873319527689890188617661068110396276743477151031291151700988800423317141623890199825185557784180055867354548088723845853671710117292142973092945337743044577595031554847296719878804363909706406137727943957545839945316992529563438203480577284902386213859788215770245265856431771697835510429099912850116021175875972584812085528742261928104594445556500622263256488577963253469835400066257520594833795070395462576297726335998015518675048837648820004774809184691602617000712353464220011712995896243291758618888593373440295042968155453264214375873191992852224737791820796095066959331499966571138216815746110524014734818249635393634524890136508268524604287432596991503611036070988468667507991158252524462898735746969157470584273649975950745443441515785836752566671530708303677184753563322812581386240393843646329107653092651565821796700640150794194773652830030043932007663178796152909605063439542225933368784179872118743755307960174461905112465829285786367250527105505086635935773461285074899505261408768805550401413827220783720603296279384996554138947736268368399578516422522008018571949392325433257017407117137937299386722939531896416493829391140023640379062736226253543480518665402944018298798485026115678366778491300233122148214270677840492766250806549813389692596846982531577438165991116684180375745847724688118007546472467192703695417421937784239484861718216712238297314235989403171102500274492291357875803465144246200590893095362118676948131642219883424429665067307626806289979031395559088585185527603352225524051343304808732885324528396632792867797421473990808255247526585531511521655841369769326360705352255028315803138267688897458041786209297764383930678747509826654515247501902469553555312132399474919511149510414983039750911705906809144864502969295215239600327897678953255958399765727859321168180654524033813685399044862591880246605157132888484833661420685661333615380867611391124721624584126860920498746159575762918461873031893766059547791316734905413828180748944372935536501333579124102434478249722770696616796425317014712938284108239345304434356211856224986659023996829819257241430879107810304480428509394942479870467900473953701486210518148669353964103522939236622457924954744467158123349217096214550560656217419317562038902731529179567306368799860387167539533300988079303922550259057813870139073982396672428219873674982763528924681406803381258274442673697666770803341939222808230053634060450698263018248033722280969404383628831152051715814299334749733526119862306716676525998701910866509238296328361695996991753513366299577446191094943713721493484883928783498164065499720734996539218754814260634221434628003609684964532263751769063275387983608243509164574336854063623616889031197912372583106026420899187864705975325352536555860661700570381377387346952841240794819550324882878567840231835366049434921422311102685966311782347818565360064677958952719834470700034976228754803919370690477386189846384896512374126646003516827365363160991492604460941570777695237345557873276569904681762109526654431317730583409016609185251805742998358776842953971340101036265712801032143391381804095291091127096554177169016376574709075820649441769282850787870630330268947341484512773411986475839919154829037494572707214318283261822833357801190251463931721317498279453151773541201998652215149421566457091397515080562873113223318314128284861482949639750232427174911150517133481422465452680020623936589184232790154110751601563551133043696162713629139128859623027565463583179896502299178928418957712118810186149441547025493248591189058776420964177315122871309812270840807130296405033436752553919493858558956227729137942152819969113886867576579752898482018183338217632332287604080212914040843324925635729297728427644783726806744753934849209788057129722198232184857372304190586313768462467042148362628641878924058680256140617203934476502698284339843836125868914546280576568609262904630323523321786129479019790935264372817417832591214231454022539934363526726828884285478589535523565234629990559930428417845967379897273387144067570540442113541939034435942594549260072642272343922688926925235825275664783539288472166143535484586317842135832796839204578433203585621822072587009200215457500236336305085742931715564183486638208514813631344693904104747125705207073202695376486540693396302163892626189373548833727623582405518537289906303182397566104090548270281581595695514056190716939130098780519603690199699615641508754296736715840130640061582388784593001891708175191656465722033652736690583818484790173265877351221046375834257480095212804025611533568664633362167576892027949623045805713495865176110960652381717799238901756199251914478354034760597767755316193562099166243050331429976467580795304258896029931476253588942971013460052674552413698257818393676769048606977059714054716353458077963593295210286292303949443594728547613479633397585693755562706017206299492382156850351581144411536042560440226518528552914227046791901554416483899054711788668117272511383076372279355662782189362744931763005116130233874015554137658048127490060140989417694113229483424502528281140572237197468531842122785933343165330687574319337713145570350523470544920923217842832455292014895317398459621750047150449952379701879280328097878488223370730935382399758152036528325867517191138109543984533958899087234023182092768697927864478623238468821389470367382849665761531760694824356794145496609325828841069699301785099636750721004005310997602366384134584967468824695616306201400844136462972181826293922107262860712252611805047129208675183228833870561387568715311004462761319831897056318542281979352826564273927873222758700877942744251198141183322030609455854797305874302225840935766368725242359023635953773589575183170022097857559420425586372626406881779788364160090014388864770943274975038259758714468932634156678519371725363876527396142264208827298896888249661016734501275665533700093057478825801416848992693199430253272894211205650870017377624924751129507530343110897952145235649392529403544829940563844201742324008230358053818281716590757649584491269680241770354130874719859851776447149584174872655789972230812258433669563423341682047867475453532342180154679682891181839122040979730317678742360867320414328415120388189446331386644820600609162103554774800693945914052679039543658236638702769506162535037843022646942809687522181676318211531016607612505628707090403300077991195140447133521482902321410749087922577958859716071965992567476425239714270034420713126259093169913491079847125021547686381524204729366422573858566005687153381149696664899882138590816400361132243787756133696270717641366842318953011113137677037308720531256336550343812047567282674880471859831579189561512715664475569797585665916707517689706105867466323881239697083680796802103919477292333411443693158720397937479377723374266460617710480582583645968802225097681073643892845860803801816754392987601325098149704539907953087729264039057227111238010121358964560205258964664817319125327629408403917240324978827615218944887227929601434851591448821092406439262230551195898258039626645497006289900248718953814830954880443350235259979651084597514497810791785496918682657694286671168806437636877971090714160483400921721252499289199604065148349106296466845771147362174485520078305301750648770631156212458924205732232757757873227763741343153899613573322015535203080091821836142095121480628448171687811322761459943676698968893444944325296169033684979593775559326903386651593093155076991427838800964361396819387488403598848827197114917072764716178064704561598139562670873316198069836056891629549090436089113290245974037995929978593115786403988999274577618743083428905974200424759911258297246803641071751595751657832137219427260725239219692288846002879137107014711199295152956851981122807884642406311588602781730736054856274660117562363146316662569573531494438522838325681861714461036575092722113228530888017277583841820758197157753278207655019325986974404827488231357346146170583703008876403885613566482204936564586909358034593302218041939557178660976222201117895780199301686621392970050495597323642284840686233072798363592438513506413476068483173110509639002530841444363605216365306562061095900873332433210146969940326842413428927029258886869308174556385726417363577691019848978812940347884751231190892930015516047981206286693394431072999795095963601139823475475301062139137083048840257235200272367869145732500171222286707475337255891253487275158342460008027559591947678511760805576866065959893798555119508988685667160374064554379429340501222081991224046855558009874626888196337178790514444772568930062312860950911922454864616825182722297432431459986135741926403474859227761398877309614972722279832710317579435974843931143213054880482129141555020651624288854270586932677913529859711271576856032484692501329966923858664220933669229816207789169822409658755897444450353239103188561146379861561711715372098315844971681941294182189157320675086631664380721277684643397259605375430114574877131770465444058575815576046289020411047463859671485438414527005316319786664743156329174358137334302843601949122082759891007158089752685599259512230330732514395078075371428935280043467976999336777952317460746038427772802431403195236013429594727338728949700092594524850337105499448347788529055740296751802391737268263518438385201584370452830000512587278434419709114037264041408923556361782904232993703815350602117194406820981892718833906078921407843862120950992687800264211210873756297662015386695319862323128167319485412958542678846036973452938484901582326025455922043355975650849992126103263797542743073202407367474587358033512400557282127083571116703370722093914696026530808435403950809322478918403773642321586561613622936756426604405087026373282699431230876124444579106922010307372792664451436604447737455483258766234405430454264236192339555865947547527504169164478493497612784419591947335816885371443206279469030422074866582952795999714396192749562988345792659676591332874083264472105844165507233871543943206677886130674128676140242017986795252254820098445789947640862246846783468951054178164752235198411770188490949769752411124133606979064753696914888712865207923160530744197588902929949820665757454099515294564038202224761597756887539150637950150821244441739338877797519526940797232631511437030915448725912981862407724714892072037906056569750746954795962957507732138668472696268734229462938772144844698959322560964403605933661091653455451882983736781467197762895888436017311129812119957817842291139523540027827583064205423808907003870196724141336609162366654989470750935323527993695143087651934553922548766529452820564877746216869800898118176510276895114588425435837795396588432735764233600875081381209795343482127076278877086318627856670927450238158876794960879816984976619219079506867584757184994767176665136857578614125957738403667480105174709018309845037304332223725652084829910103387137958488760943697120788475933751970900850291855349533992093954325275476103084844177951528415919427169425591132908462176465273385893924014599980336675028963208745486002823077217792072890489138634433427027316864044955315510628803761429068049372300538386999853952883827273240141298485382555646626558422900047783590574163296204255928351618231068312355226557262126778366846190448670790113966132431430063980881762064077964841719821157765734056949310750027918275432058111674960872901181445081770102986892230403951024893318886162780362950761088992965895358979909113778557844034463491794165996290255702290289169935606168536176876206839845699477047308153199019517344862241120718961353077221158792986833574429743426366233883758307775128579131077511101330369983827946322391115991500222426610340120274733545940718813255182503182274931992365623667373940870983980003762490711800761247569888549401993795689398885400864239216732115130324517987519129182726499533741581382047351631111886693125964013655509728400584468186069847012698245043566379749579248674514996867365411980837109588347144573702208857512083488250499842438473628025414297369917926182396580523752423827485118714222942013788226003323172229007646642576153375402568418671815126373083476105091670057166400632543446074971628485573372778920070421916394913518920807993926138356551251001883391845111352118911884912944043538093220624818332229318156284543707448173727004949385283392979425807805132903976710327084120793004113952999112118133289669488576206052985447902971114137390892249162718342560228517602311511891260863417290407888320024066736556522510435397617216033598382591762037135865281153542208784066973497119305611046825087121463201229284642030141529404484410194943269604426368037532539911669474958239220800872552115606549080524615347099557616403946775018154424612480307789946114276709335513565765930885984358962537252032448985221656755755984969366296753889012361018235853471777691706404159376201161246983489260710232836686889302996419871284710366515606491316638633198931108531134552984603347643155608887952227374503885611795260478823201820662924877536579353980689021932397429872761833247398412025204813790909340571743236110624818265419077591143350842988685819188344079074940308410661729992588999601218737686387313603994253546444376934821605355688441222046324982683118670015742747407091212808397705198840365156614446439276670513004761784168667431047707695375884137698282292218776470987642899605720906992424267043011396028728427344543461215776670419540718864782276235054688021197904513792562901537650112822964199345530850846495081195476831362623955559641230131054737466711527568664457455271798267927588774793172221736034129919744510952951787927300030734422018395625691672698414714518130097975057184677723450960914781832951059484799687441826963231559342579992871440294439538237588986572190071855611217412318485468915460011449001114655555777633334866676572946683162445173859872847604100773400658958494324892243335701054169883358174246865523169946452685860071170620244584558065732752759841118332319549463655727256326923273460522404077328873610807710347913053879721069570324702843303959404317215949430232205752702992245445334628428365418634085880715234265762802953110951949086224061913242462635286766571904597295053377336105542916509054789024023298743749248949339181987500001578727026912089928140820043540334567905292757463262172832113167421092663611584630796862795991206377751584570792009442419035580925580571199280043024704926939475539417284786480612034305011907076213766326063394270451688351502900085908283339663335491742647464328702600448227154770398254275677570263060320539798217619599564050328892852312656991697218460664304425956364441728807727813081709775812733525646336285640241139082386234212845802427806530431270193196103259722333568714727156090959296995286817524649666588799010103812416915947588555405021006810867924195873201716890078284294902162824950010258771164737736889260169368453743514119939195440700916635134308748218314721426170406919086032682641952650588685842021836629206367635815756334987300301060997778542015684226590158747086128138235305833767310461408157962960811634230975142692438658697250553467353044775038599006424608032039711084907261653668425183341839839219354555484614266289217971671700483839908480553817317813957073116979051163503722361963635060718282724807058863997945008216935958010227873112497712197890978071205320823848205233621349167248338396436426136721204452594270756322049416203035980797946486256707411113647939327696084732046423986887758742442091561641561824134602193007464249774374818139841355004591351578703336847908958657813627236356217245124889197538362168472944876687802563388778364472094673450582566732901236674722658989680056270767297620337979897591299462210379826002781719422730101807847137809372846467434442942756365451219483751426103901637167636275547762065557024242703829961168138835485540797850690771019571752434325292190970133699863527988016401324890804783937283720357974592482757608139601299525066511731519722999538512556015550060038639903780765684469313960400996203226608454266905283469374671999985227684572879157557163216935053342571692051032242686691992201242602893703229155409191249253093173532019455937850641632926567096578380349582646964269953089016477090853019662470204836127852870522680597179788755866410770811513945694468472105050864440765804290013266340658525858254530610131789008403926370391091772660081108367539590131475899792744015234486619344280029801503176168131393795812735287460904700301530929724097454932597767613301508547128596787654652268949715523941643788550848958503623880984042834956886433972030968139532960240295830308469068761198726523263800961797542677944695262596476406762161446502333608468974158189847821779111491992703395236542044642735483487572245436181490849578299730104587123923396059209289904704478016092066225220669479813064271122101556078597326581974970343971984312532670437640427967748438268671131275411132011097380799634928941855404817349554501596515861257050751775710930742022792372159167902040747685189721903577127286184110202523245238569069444457741859472178287511185306586695661696574366315866145116971526668847266872878613900391950897271080689262745015868463797740978097743651037660690750857725859341157350283344316406341620957157515660129540054490378330645822738946439030279774124511684848182289147913823625086135271106327080415609018058465911477412074056840127786580117147539069388075647748051897110480581779860949553820449239791939406210764748051481145333890341407642725476029933833196221099663514371027867278445803316729817050838526210645566981773447776436726988203029651215307477114567407425544094329149376355708825518535784032821116062425563017689403349737320018800963546733457093582863846426699270353393170925531607983792488428256539660155369576913886022203139814829443924419922520319448195426146909956376883519036901604965068704552269926441002986180682739088775393477992473112444473607071049787121139311491712931876440212182959299944792440921367252410870388249321810206643643519499064574544762065992317042770644122202295846429136347400603346425087827821718850619354841350843174387113115049690849585115121475186319271476724344853279826114697161690480875441636838122237027042750462183495842701446562355216294657430270901066236954345842392091034586491864505877426243509877373883667433786626624606890424917265261835943972321097304654392955931187855292524570607543373210354689276967971591068454451497943350000278989993549424761936446282040675064566930017446349493963467190100354057269313889125659890843512693976168134493556391485722034561725480782012014617463915562305149144278363210799716760337371135566435443139096488877852665436433994671187128481155705045009832480031920838607995981941203515814316731892108560476390632892516805625876596355720449657623681759144022049083291286355349316429906577229456736002686934538659561944591978966600508424878325329122612247472517374534137269686270835196723105707238864687327265612888767111062047770171681053448430953516129812123940464974665714540187322018383302419382706922014197556540972403976860865894310615831302581679375262047078716057565770262205126616938177167361562711210978438760053738799633252759384223478519063686841942341998368333433291841634537311545611548963877514371073005147697715144209157927136650256024690714281983258548486445621355873449460009010076805427415994807316148266311405813522628988889170947009893841279611537342746486605976994935873676640613792017183986663548492812681049412193300059502857936711411003207361690572088770984939002114073125094212576880305182923187572180308784175868481249852616544311217637313147045588266181083475647891213968153662935994066094574853544165230224586804547926677255765658561995698058099197349002063921473734944453513478217413290668519333822537895906474996936499029759047920457066581177180088798817489473608218729783564211182974693845642026242906205744762599902048071934490937287165105947617179255628770849205520575630284171669293526910915420600861502330258891359668584927563606505919039883361312254827592840550069458578634484289682014223536871382126253920478205968787686671551945318527163684630277887291116792110609557908679960757990526588400173486087376969994284902594732147215782076268102250085359324507123482723148404289891876752543367715136192160373098601317958976220423071866556960065208281868853297905647467559392906002349467193223877218149534375968440945710870230273875278279635586002551249760927232841093358088755794021368259835812122013678255555222880805919148644133742654143590351656781254178888908865867327332124288680675349560937691984376492934274435957485415060383689485438306502265121224698900528278950396463432160265341322166922233966358078015072860320263102598044137739999663486074725694717710989428971916628534375555073382575574262421643210762707379167509650169952165944726361181829913204635680957985453758005701946613742764441570306194442257559231371200551256127967072026124449448269494763340126816222419103942661758826632347132573667735995534665291678089925182188156737780710813976193344098901147035669655019363951995604364775106766279037071060018670783488271724935096127627928560040998197513991114320525170171014237422581421067400468933423301776928750231702719100560354536406943705846022829320628026228639685774121807455525130357886293935183892710874739652023312699512730252824965166013182552152824608339389794391376549268351630948263772576255108857692729986180363935988148767748445577847711869656656145048408701088296320143976762446719688339453034608938637992887925721189964129760038654062572190380073095013052049542074460914947627339129483350867617576976908780964765603658264975334502867002738992599861355638344651404581113166897370419787887622687860321381791326719912505876641296785710337553847640657040488804933443647122539767915799754294648773508328290598895889328086204785197886533533303527858161316317389503604558021552314149627729857335579256124502954388488213526983967717421150693840796212942119443121420860258914636034533362465117844300866327528487110214285073508720614367230908688536720502501592474088278697274780950522976104257069306985900564557086724835390776358595129657567349395713314193800571926178457066192767315596612679928003362465536552996160435263781726466896104980429870225757264363851887612003628857653267845357366635681410521712084065168888003970816608865702193411764333104693364020026499431268066752747945719421928941241524228073810385563706516004058169050564651213934289499061645541613260833089392129158383361525706371737404496422363183500799483104189168730603179902140960650874430481197526676437541889963613745031206985731185508856610509568922131287470886975908475211511692648525403603148478709835438643110528383604106662534707223071481238371319256091306517273814608500509593993458405449833260101160107037384691849543594490305844030430541453033412329529136628701285031166923674086904811768459875193909259309446655495249219761475711949701848068738972763893824869640752111122078703015432141869669451615608386674306257273726221887716936225318251143434109132816819974100031307272232395239680322812440046016290114243191029290812624572401824833852725368495137291308809762033272165405791951539078386290972017110916848631280892307995299009510491556008815245905587333395243508032447253879919721227536876759554592245335277326771106441758812590058409212384016417589631948399196658253292571949878090467245250021633300557830351939505461260824919914500063815368892912675851632594185092754856486775050315339269339887178551681054847137789209608604976162619184471178266381447542287072285122345571182358007621503902495997543498595785735366753109971326156062363738328680618818024877425940935064833110848743103490288156946910648489771409975876068644368871859165593034946881951994669194832920139372643438425361180367950030696438279680897290740286760722560609638754472655539413048554288324782088211730025410096477197721184328626610170887639732272125371707371377146582513998005216078684660479163573168599728589953456686160098105424685219096416364511865292816605083244176128059350229418528728767525109612861013097405782222588535639964255896978447704573867616680923490379938529659489871118850982901589993844381440934624892794840140535313164055209839654471245480713497144801196168929270050328096109151259444172957061646808803719483293351525458727567714016810710385221824881838642261051947515884102866938441288839335145481798905402968372172795062952665735023819138656329376163646025056500907022620389989121474230028327662670049779128610657694604513914905913353165829995543436808930664388208043326141589860569832419670107462239371527362904198786560813724074079787656772424726495931590142891178790393217069683359735431597204284324859689261595270891301540642668542750596416496046087464018592188827071088392403284525358619005577522715790034497630338238828125135455874686185721237814712774980047046024817895989219965734616469786687499130485331328596684333113893361662731003140961148893524906340457184894193696170182734831513619001297605359605035016512566897009373361565323743113364571457165142194716907258916454784622258744746903896173771506502878445578489474016009533384296470163952974404841544078027569119090402408036453309365766541483379668236111690680072922185265939185033916231068633765953827747863048009026773983079845247866704187816006194224360540080723608626890224929273673797595995272542781170701453204328031810319603876768892137785007863438805828574886836640323031737957207733088501829001573166076750128207899347171304952612371022968520606249811306864039983070790094273794694222682466575265498165599056418088041235264164301622314913828885234616724655694181198932638180168356488928461375849771299632625781246433609420117041754392951735980573772560839169459244503742997264347933374756478704427287320020645772975819172548982743527987974871320639246779476145198271628773229099841109574256729912927881868712635635016226019575498546694015266910058122331559757832241651950271877496450059209145671294828809555091622200816343637253881811415527451295048678880270769605861047210557887072683521057683035217930562128425515628559582609364676899946904597862111216487609579940841737625811887593974164106101558586754852217004965412112851924759373660171856448570053653178628986891417110545740795912241191607008630629905481333157625606736502229622955277874065273068351374182080021578274029686600541536613069916716649472496147610671170848125274177355463311508832201582214636380950600095517664961780812749816149665796446487469895542304302686142242524502376296412421870807510496415993218508134868572215095478469708837742328373531648662344649606534041236884757859211053000167587318889083917121883630151991034181893143179116836845805275766415478613374240533787420623455245470455807819045113332875513525732490796715849909335318533273097278306086733687227075888092405715421175642578825863359456894830001262254331547980760647754057596446441560369921497187246838128817581590165391881895470532357878105489382141373053974091501870674796978827553311539907740158380413156441599985963556025963599335290066181307588279410466270565240130753742583988855110863594522665373259309400972619751031412327846045483111008927414057223812076741864132956179404503260608949877097219596136422347541531601672611551988388525541306792054218912015337835947872661005006380888977260968463319723813110199049458409385490781464757920285267199478877040352797766350383833664336748839533506423940327501024770527755080131256094512770226641293073785871132499027466704602518508284815007731579152773963315265977247861195909680810614320215710112695345126562239918559602598525163436145047200699615137168233002043895631329734198420863295596494162764354856434328653091974869061059044967976039493670642661359169094634897087626693285663106133868509770855903713682645879224504298429606741139146859060666211154350522018525512795505529071537410471918919661423622175491209374464601435550483829941322243197926046223119748523561331326617178042582070870659230734086395046692834467659620432785952266573268247252939864999592854464573805904980717778078638796008531071016572756814073473182729546949819695391152971710317890081794267936669180910615536439207071487290088758192415122211427924169277011917991543106106218836121359706585402305809211152509406483437771361063052380652113373238050907964673008630017329563195401658240545115302571470919161247059440310468661529024320903772112983530404406348837776942337455269640861003673837729212141268834867485909347438495955122609572936061980193331624611825848235630675658859349765573234093383871709172011441700957331030823657641122039893537255048529064437567210912210135119669425757846951165909026484293457760514820058419550646603224540423074582799508659364236855525555701107655301314701362831207451156313264733066242545292396338457457115303059341909494378503707193206602023969329888700567250889358267853412240141964979487511195191114504974035200207577691383228740598137385405970606557955750871318270333780128869380845804063204172425129421479038117081507346475484279175135964591951708740461305402969227844944627219484920065113970482326154072053946169059615538345929425451240766492257334704774892828982770834284762034481985609814533491995692733293994109102726844134883592614216634819499641923699846201324157636217240182421920592032044959516927275301057757913121778382180278591169254000770407934217997807872687926622723742475705731255647288043428679030415270963411379033516428638540158410235302036842420102177752584864855345800268020842991385192888815014806125117307221482685806342332888014616730717742418270752160133387119989861874934695263576263866104168538480857325312409944158185493520083942049073136325166298255212885758844631935425935262046928994341306599103572588211235883482277377925789756856852069558222327457546058806138739190395919391576022825415981864225882451453070181028185046096395539499395757122535720443233586530068975933684455646284312025075832594329096031648305863836463177626314229134404255012343460303712499253583496971575785527110545915780649877166759533830733827537057897275966419307744470411713831860702871824927797037729803399677104564665779335564691264788674039608190101105775781041407887053303374406895147570003477329808724662650770973947098920131938486801873222382019846450895888873209760787551065880051604042899886242869437911213952260350520985279385101362200360878746275295595797466959595542430757138973565207253598069484922118432277053669197817845233147015844899276462723173658052988608392626837618350171074672923846025790611395939464860851930480006040843210056382298196214896954379285543351859568652269517830116416169924076625111914377753249816702716293835857096418944014356098091708773321103376028033526008914607908337776579480204044634421733563081589633898209979568550437611110796328931334893266618566796133275608888379619022225230391653502957883944977853731158388499822463345898188729477584347785067624736699488925755545133689033961174630113167347064142519967155152059437725710237498203025537262412781333470632952985353112361885646029570561835914294112260669143734315660479752210787605121100034372865237193998110447399440033042770975064168618342833860125182028604750465824024009153539382054706234712943295720568064003082120918682816393088191343039529554547210901556153548919500673064685119216446385456891962961258583356413468318542342328285800575185187789337858250001220916343187276508612706891632564338120949058162744063491438518182811114464409377859708387233150579522986866127743712810903717849114177728709509187610264677062976033365227926416166714094462727876358471634565019182417282512593641397798533576660433266948635190342801054429373013058030845157077927926738542146977236515079343285334259108856832239068263034345752629866740980344327438030520250034445795895823813033477596992939276238847891641228466752691629855658636784294711153231453587694909933828534263917167213274487804217709137537269372043744429113676560858621593787285561662312729367400281107867892758990908605298440604699442057884358123775004259141041529208915286561336973513085222838144613724682785064191664975955109353120568973351995549399445960980018225819665789128241600727946752109661522309523009786785921965376479044507987483491691454124975807046919635863156936658354523568772133806028805060612173301325587331783160254348783210522316093943595617494555184836716242918639824924758083206389321786716534820418700878653594910271079313498876290090942734189958116472239426463656190801459845048057810393894332092728663929940855250267007063825652028941255608290156300366093609222509263220255503501676863368581034188021552547838771116438435259942566501339365211648824371377868561041432151999626014125572518410445865463718182647190457171878080537846347635715985013927901560509893931729033730243522891172166946300396085627589561405562429013922429786286064962670970721396108737468447751402063314583205323513842345998233781957456037346661224564841094188321396051052280222168378002441285135111869273268618862391676111901894279258058513409341777926204794121335386870271364589380532086991637354787670581422148622875708417440322463403130962207395865750759198331846945350794695058134944204664123812699440426937881928254900335959530707765342857792723776358039830676817882067837471670258061491997443674276017805167938720976225516719818370786463213718451855852372402419987745558322648750704709580110943055857166818320524519564553002201021476783850211592746572296990846817132622624254851751197602419472914709650445514650463608443801700141555920380559007274815212278546057287517050743442139621465523050428022786767949316139492970793236474875603182683256969559722590675942444384269155653010029013296891853053534754797503534405669885222303413976386680312333902745805004962870207891398000975708337552291305410105078271348176098297449179099145587839711938023080212704027071979375549219072202770976837699821497110637377073834208376953617995107931473692748410831596591588271418055123171695006641939466359403241172078680815642988056364323771257038639890541870347197941844349031332229022997458808812912356908619751326226435050616751446573471061797485858400075448812938839649148527661587418188241519578440632706921562125005469066701402614511912442348742037380075065355625748155293401391324170288928982251576185833983243817397880217360415005447799611965424098013197600038336991376212164469900756064415708450004392107300171457754898825758119467241851258655092646514773962248904970820695208614270150140481547559355998250602395363254279008360080809614740923015954658656998267994136257982315481529185194823806494585048612439570890546702295169870358366718308623448187424372413855909384910846452815812723066030989876572460774711677233858145847525946895795331953189088919205602012041643042353408482345821731534823983481384729885509865553037544818487684433737749060100002814758723211205124934088177791040375864058934124765199162730042360198659889362647772778807640331182919210003988284679323452306611002579067082252585031029985254942473755962393111858830889524880761682554865405661698376844481212776423674171462298294580791064126853102057181973404555340253604301141487972471728083647731159766360737680865107225483984174744928446981949293793848227178582747350659453745909638880842494646944729212245489482831834688969381389332054281790099723403210517762707250917470955048189599050275116937055982698346095275614950113612078783426511450654646926046187241092985231354140457961226304095153788595294847872376528331853263325108247700973451218266645584998821670985061006356296693690807858035773480847867641410725432659483559990840108165280086457723179605036524106384882842803863176735569671298456037826772870092846789414099759507161229127843588876071764475274571235812122013967882404167926901769760846702762051220535959834642899644307988577347259628566047442639496754479730365864420118978346734904942919934280533764395416040745367259157662812487141780353511697893954721614630039244365665561837759448700100832934703718610871895698765625694378418005736627268032799547145893084928275118927329806290641653121816011063765592423480007900540256594618028842349443073395659451522788899781505422245150970300490115915756640745874738360040762730693495053250798488736873900407020252541103298914860158037245843935091837672821533624621170359866045290770833142933232683544224180947580253677621999134219698115799908845595399914075136272564335391694284471070520936808285760197239362073324820279056647087653443880909002829018215585347069766194801242360398883316520842801246557583110820272452095592124296144322996607073097683153195225726942958230493527093704906303964521544994061688120308639700886275793680604257936088480519103816967891051291807137508231805365374449369367756823197468019220219383338407401433079841057255783692143902540926927436277138725873109084488233534659699031397147883204304715001899657688662238033612829928805748920251279706873978404906899524864301888100763954005372926529232601024019853652914860018884860007007676575360942411530580351799848150585259945841660428800564364724212759600193854259059112156211450252011528553356981059483423867704230773594790341311507676514525061429469055689301014822963432161156354034826802865142826038657926750170368971829482912696404597758480418713570207584746931804181935390929296008381717603323514385846195610272159982257951270976049467612669483595406721263737923096415011797633778384919686040113825960245181497209830419902852886533471203718429061288347305774862309468480708223181677726975362836868939265639049463395130290928996315643043570562952447720188697817847353721648266300586616389051979980369499516190869433831386823374584378190193237863723446098154791358188122166895326277616065145785037468877633087824589198219566745888984235539838711463447965059881161520191432597515139598047424837214291283599043693392737831432275865399710118849279398634393948203507437209302704740411094317471018105131236220157943257204058797823121905639534016211939640557339539097398894103033992870942927748935371314792862564371520871029933267295395129624754839104112908228356555870918525200138939639321554991362533343201021467941685230610532736210343982634108458578501118079664999933818504095529120717788291745747792817455291742107723419333035574807612839809599458243969012010724263418704573320249279706176443421423643216667643693182736007977273700517077391552478821277555620801174429931081876335096130820639340718838606749451532578778554701476368865139403598226052440822124563082737574931742620177555325018657986150555130710274844225553566164381446368639347914240867257333175710308615685211084388652894317129382657812006132494790773004803566395770406494149348064835774983419869501964947793291672437552815477975898240017064407467443970801637080848485676628320558516435735276306249624692029489726391192881111990063082545368424379151787983270049171552173200059119611100776852174778922582721929937103834448929441038454897274489033464776099009171371759279953843569054235993743349236672003019350550977605912901662935801352178048580711141841852441861292324877155819344911804156927733775809824649017063351808153583319093441349071367221401855293977107358529405734164450773473983760560166186137919300280054071686918591607990986471414523649460371961274260152436041906678909929871733257226555780008397375701537053680921699063853379013124889144387970754995979189865795233848422863731988295129572109981416425589408547392675782008176095584416840947384857741437583742136709349198102976087592641726681726988229404856155595197963908267725426135879497874971979272792691014046726717714095746796454174636888481809683928643947094775568551506332573195669236753681260122584403689925258547257148447716723245088473678177270607875702105743314563291551806151721994330827847836567670677893131191809005494273499215728129569317121578658808546951416197961715675804160396864274598719445234153303667268303329535202032483505951134750729476157817898638698683206161944113937035487361824010109341428515607482682227570268452514521237187409096973376710512584384898210329844676992046801219705676246157194771392426620957313117839062514339061450889408628078397603777834296149425321373849828306290131980961205463875907765994417007348994905043544893754416553464607586700752102064026452329012221255375248527420609187821210053218409850305614273174998586856780249072700575416288243265147329620225911719013300708027386122114275220045856910614083138393863164588270120339066346670913903975655229056958181682497185782518407439067579751510076517215618679626576639343606076758000247822326990070635898004030957524169939023868421031688758155749603061799670737099307184744632288715799604019941807548609376463695319454196561173246991843755067786272492190348163132840120998490329688741006001089225630157655637464436346613866527197659433994551180969936062801850995174352270381009005696087765069120890400978739928501721205576971858887093439128119681311743803082224774807229731787144864981002074743031243834119042892597960041121529586989848510091180777025183169318404871786408235701830864927029971323175218230932505858844961127465969475625819419503552235666215921155308872551448375038784715501174508140278265959759501381739666768639137180488032221914665776521401827789457080189004737988737433435132357370618436308242477329351356261592766859814883759446532582454070632783557816521135784455155847053662648961528048511995835828903395045371394681716181454612283501235382598880161786178948742817131293654403790498719871427962435123872581912537270725279431467595711247648069909556399582662153691481983750001000785724749260163897505045716221019810896504337640242543971916286928092441952368425405771451818716285063211634534356487670545943378878561418344287875269334227537544432863948515046610865043843880638319441912575488170677344900089247870591864898306824891362291304210007733356204724324324983921273821313295715961011671300774754979215329677067936588105784857187205018902196203280817789015277724239647450462825815541508040271926246319840551360879122585455524221436919382050055734215070406553358666867943763028414666173691634185702077370209453811281291525688817177693058426758764164570316795624111002801918683614975352059271999330051358390177164475025678236883258141005140762459235376480764158089628033835268349619107342891822419758673826836587495631361984711979395427864222886314784344540211010825320578429256409234016605090751570294496877269225922016974779024688306935977357446869115507841843184329374368797505162188432918687138974262624090114611513460892262881157356843182139547955634771116041174284482690266384571885314572283908963309126941573190381252345373847068464932105085571277672451787377670729932055930359509317020682617732875911230463083903240508841614185769500854016379722788403551643605999317814635977397451692242946448418308056945209886515771605644128994699932708288264515293728659619177510370672573706587221618222134525294349663691533204442026609303862915733594840279458538590510022092613681738784304528057709779495438410856848845615883038223622430824874873291841410142435293621977111208041451090761224186090951359119844115963414390039655022548236343791251261771570855211278758403591562827234554592818036252227400602482031828437159641411114390092186148363386747420382796245126225900299533266360709767341843636840212029730124807890276353681808444171301543555291382225281700323968378133168003797067737050736523063329104588850323314326331627965604941541521570740596252440685425810310324828253765014590283463520276017771329483917832583207797186701265923439765754874592432596758925674159449935416506282065961246252022300148139224562053379154106186897370958156031296769981100490681098793923646514685442921875108301944292274284089190283067515338345937082089391976983510798007434373219795360832658297546141860250103294943528544819699903323973540075862439779946120816009889326239162930271190822840603025542638008558081603438771369261444782064660367697436601104763908340802091267664130095384658064140532175434692379054356066831444797931089105294358799594540954185664000349944505146564689728835286155202711079208567885004445880682875512372981106967557425304356206835678755902928538959277535343110727754376042741285099378052908610462542203138247189100293094938940732865234293312988976205004048855593812694680380720844895671829157287498640255161562080813854694795377902170319694815921962610835200536186986748098372933874760634086867918338993269021224746066011486912921384116642431776002349056024926921919901485301648295660613726185217397895150474485503680319838128135291156821646185949650464396697020986075943851177334244471605185670056254882364931267949617353954878017942938472759630824599314243561015993522317110839549988113906197780839892271160508008361891916841971254313026058895819733043526542085450990313876060617466356584273723886463649469388074860727699578173112816653281953980551712558663615147607125462612143424148065156751856165585456380888998009963251691140359077812045536255135296214511603535395813518678277027972043706798104186876086744155559386248727783087905874185863971198977127309112737349339646643515592010915727929487419633301530092794573614516094659548195549709860580797514996280807886523838324910100247452724686963289816524420790892109701001692083971926949811516601757277095718749827657923367257587180424097075840039048558324909896501000926638582076310224662338968312058376859647206323869717673224704598324648497822159469128525027340315594975727055318554950845675522675638913519813620143100266482046295731293777467100192077155350841261841292005585850069556344772649389237451756328991859471575021313416983256578767319608290447783612131093801573610819633839368468586628482652594994185104822928495415494016874835335371709152829409500529530049971741399144425691023769661379087695212160304567684558491110839949696781783250981792160284663231952772236058493806237876178678444247275401652726997050326519681433400269385843930132991459986255483828063834295123449586477023535238100699286687255721591978666333081317086186902626431154398040948279436262853844019823816269853764751283357864074776221301913616400598291943491287355891977504316355894908425035488973551945987327656543318482667911030464698881922206143700216938737550604451583388407158646393905517939284387005345329408222025391394593861857913135564089417725925520988457419330459666753560300886219657261314824698547397647919471723615615455761688250100591272263681685567377912703740448557358298216290092622027796455051890171336906224785691257275574714702184922403807288010900998577496742785696240376515676218436077282905858960788309370165925596955948529390486965214697738067784009265196606043128160685753004541731184947328532698873370621922169741962421947570995155967711728705524559763723207564264860755965485874008188907025825182635711660083377927013658309187260680692185802400354650752991387584672067000545776973554032485168819825366434185084131053728963270480656728831371825580869758770672420361350527931745026900577222539800478527847364202007834388833759864638397607780644685408203128751889286857997608532099957344874738189927584933690168434195486263707688854775505009771628624399424762399393473125044285682260140054362814383148718311986202831068136639436177002405770363714559470779552149881599247274970012060862870919984487361318890657486801667280180332387865627297214494689283756157623075357643413321302576611976594925218127538653604160373589133441916554949456993630827056613518930262306020749372034963226912316839598551031621498703054243549880262141208096178658926664469193134918296660398964798634909210783395059454278862026864728407566663566496723364524098340006804582022936656666717053919759494128899445802397127913136581175149459972350844848101140650971595878297877019135763997776837390869430298503612378081347258523537699217030052361012133268775190459183934048998602335065940156209773590657211167580135009060494337716810120701271246574269399648748507775275853546849973775620815232380407128175963633699762138572199429262714341429458356683440446891538483645062071975001884689178229554607433730753110451204626477642741228242979183657599503421267483096317321851417591760280535068709218276251018756864488999537219030943354181794140525298124005229465368847642994394409726960986211758903073442451755508589479218024476959958874420110043392697966575598419546155481577380797637792244435389620249173768709135185133610724692621112008977531032469832629227723585377636084138673295883741572112075874786121004063540022997963440527917119381395668396651521660479864912884660928492683656708353208073529701417882897313398532643481412436768444828933752104774298121777638711631492034933767504407231650754620261738628311085999309667175446538050451195689347274413604542495846874927850092139177377145480067431170110909854746679631500206269112082968868137107434457300187889810245067298709678844344791213326160215573477990167625536568346850608600004927149948045044933460187438486298229805121815069703607979182331706960768778313688819706829306954790037268477339958184707028593212532771678836017747053111861443799813576143593110541215686494621586003603352992744606357436018404854217643932587030151011243035496879486685262814701573820290121100995290952582009109479047018337578675515912739560291255506957292096561397106635824982903359470917258566694770357828975033077105317896423963997600320126302538874951165690148225330191967879838638701353751916204918098773356484121549549838513962201713507334747414372047567081876034071793892175790003023838752731358814042600147494171305349027850100610362008886543298307952481303877006145225990945609532910306823937190489074425281757127236759989746147222048914383332925726619347261469133501586352317471692231843862200469594870351977524199611700817147278696059053075758762186221875777085942569317075571639601174605173193409132112490954513621704932220790052682524186527639935516018495086429829856031782292910842399792338343081491636975362094657581617683621316180422187518972339494845431042709025019487080881441500162176675938409871710521261283213223076547156990674088849443265379646495605610098455465613906836440027048300227280022073175534757308710752602246364903495302331133705362671003645577443838611682412237757080540052542536873097969466668375208391425209832549055861316789328357086326502110390993783865196554470839919715071935717135214524837579671212875705357608994807529077015604063903763182087567727887932154587125537623073549550096885696376976915161459629513138174540319194796508600497350104329427356665051817684422542870111540586035381070217089445216728208835476434882008258930230340047589994736978625730829325318589318181324241232204432975590187114965136428436177583569515702464629994113050265563261506229600895641625042017988787993999163291903797722906292425184981921995391208980632444340589559493467169351939117751934614715782739789642679324946223445589617856318249171363444037737390422704670598155332115330240186075543286609484103306562383985030690822429859581478848060540533308268370232634484197606131067963951955379052021385602756930405654978049472910174983886961535446347490276208466316610597894496275859236640066903566888175136038606719542441086856226299190329606143945970982750540056346223020296284848905105319310186922017697700119068759323537133058924174753345370031941990349556380377042830813643662134051062872113211488230362870186694298259986828297418737473702095692712627075791466319159229502100973577515771796813862174340827917977346270619608524705785425993183674169933267217161453949512941871507007200411664388177984281095619746004991754024217592222605985069595881710202893477115616159461510628785606855578145998402543640356906014842194797661115389434712419721322645124791868638543893776355183751325330321461065243518091755084100331972055662827151329804835391734143261536766208251648747015186645262077802118258432359412092034490896722967580256213650839942646739806595894082298811237077182400682450838256637911023427528960468359781597557220678821861596135351655934575738537596050923850534670340682090138151615842359794301903098575532946627172278683251730080999614788050224259937139490968110114354508900235476005905585586745993522397562925295720963445691826292764541474394872381336175557058950844880321728079800425046535805538909398418147460110427562703137179254288338959746283678254177646201591830686789346560620207393627121633578038946778518171359812895232330689246662630406401277951610277957143299560453785562310158193049147836409797290381843536275647027509292265969309206794948487911211490400218841193870645967721793668761608589239729359257034814396270403252631768888376942302039862304864350545473918832465902536476777944015960511319185142252204614776518242160626768693238155602211580985978113578631676261732718501188038723185434798663575860454457722336541962579583662453137089765571548671419842174625103688121337766992013769509241079373959005070264584697651979356387040223456908847329129530402865986746801150568211902069538967451811426399178241237127574088447217910466446651016262235620106276188106515957973680537506794544568778118078411525406940043931956868236992531559745220188571250090869746719476223397693488381782283557531809233819161807906592357731618257193838019510093891743117221894485257043301551757208304578002282255743161307832066864999330960877338574056747625396718097091791154167501683862767675583952897377559496194279592221911292317012096058883689241917033514368219843628899588819520677929223471134615430245501907388702334203323287231257796567568511453313422966795721243469464018650086302976021494554462786097547004622328886341760048765494941378750078901895668506844318494567357225154065576382901490669526926872127361182611686748095149783657467153233579650003774851996370887847510364719890702083135806702963071468437487929997461123303769717751792344581419373237304395043235680954291142317170788920134403552266932443670640082250033963655234145681742986369828881281907495164969916352694654701653575867684993372125025871161216775760794234873105496213997408834145733891025625515880290366230276433467227810470819575719892593549555561916173968917107225016162012027425634245284071418540989751062175103465065333576253838951952653425532417865039241041148307956886552731929141057020987456195100611598626532863852739437270905818686497438677602627457903240130279423720082152337175354918692329346962624774996346214516538458897877467716039403870264155504880828418588584955281289050296856120439828745517250692356084935149188212559020757992775114910368517979337858171020635650866347327155277261330363350767834711441449341400412751780795047401031378678372493273982395381013090031268513111935983823360369070515892667986061484394909936236049510009413837989399006073357939231636120696588141609160553447591595381193265157941032714340289139233349045687806402501376411796862795916641609106593903803828001549261842195580587758666960952398401107069656156396141582632892056173289355026114116906002630386563142530544485143575876231817910343798319060703926945819202420536412591247797088473195328902068039392279831882387406691587096616409350744007363998337682309653753993788220386979550575899540173030324032077819590393942747695981491609373623523091342056936097207982872978059974174525186140949781395149859354906672993716893592000744937131873796837752654530876439401697357127490412285296208190131012083515631913541550472241136775712729104909565455636806708575428123019429300596424036599099690163089183549626727646945287343133617812351480182443742726001388494047506339546345107314146850290559303681345821384415029918864381877403055314796932932599677218423383740965735571939373970017394221158096556592300051390353293447883228704848904040993108369652723358164814999657488132958871514682113384127359424087601609219125230769252176988030865652983719102753465531074819881071691581328482021549691133424904137639792698415297640825532437624838822071150395614870192670811909486611019938688186892533086816728198649068074429728059349521886303979628907494160352137492582033547179862777672162645435709855447362940347989735293768867061505812855932893957440414070252702530382494038367698518164861159400468396891222338716394524245731726690666012532709738881525340811622274306089469552920190390361082265837691437543469282660629216936634431812285457578046906240207633699823828663686639619159103898219823102997398282798538230835578403129023176420603844073977937175841687720983180847432627103027831626033871061179506908849038179666239854132962698510526089386988512573378996230869951632046657899304451729671207036296446620523362691535930598644964173889269164497021129335875973986127643935103415710378128175878813495665144359703344160534978835577443786111243009977582759121460921669437444601437762767079989871165373088543991766803177325657399818147102808739730416579231529702749586879575146219157404882905909937599458018974170484025253853767965757655375474432788412028242412143854822303311770194971974253481407045586307382257509321696721492737268171835043924756444797772929252675716087970901818412828549134075576616514597595353458777155431111159804345099122674933573155542228812762648812042321355440382239767181830097628755721849615568891168032037778887961388447732526159565507486517318477050659651771912428585728573856687624035014804753718012461288604747714094976908638734630084161988005764914586146438459470427390546260270312263393461516145616612467175649078699353787536806585443808929749312650911811039953203313698987761450982997523057563339956848459702048669763839536813901022295456892280315073255540993169494747878497574019697567001796430819982586931590827643090371304428730117645673373443428992074234259139632267979321034044958823643313107153031116345633680199469968366493499129666982598801293157904822315322513185833814006393717195728258918343990782957806220528410140151498381134310192651489336534372216594129131126854801702620274613752368035049932252992874299516741770118010084061034138269602645093287791773814081198363130236448362409406178609399846254446143329979113702254359573794428262770697200233470130371033781814823078618321615091775686208452612005338014752826773857564212012148725456611091063340550586393422484910743887292159059579665975373453634704551499718508387232916797775939339325791324926023125821582673111140460498172201065088142891512659725931806301473926140940816276693470752442158034516813367588753604132045808401293100623472300088184633155730761014046890904614294084732063920675495605029218277246033994072437988474169953426915605501231472746152900398455452424447061344345155310627563303233678822328446307776938527623044998243330808106748019538190990655471228888972400767069808079778009037311337811499268910575626818739571195865171981032829362441932214170300004963459265728126062277190241236470573240888405136693268719883043106846423591664141448000923372650432998321321078872707977579565973831197569822521647801379698783645443229299190082748069157113367404317009029551689267731970004362040620486707650680004087600735053814479080038052091093717476815492108324750296065003195961600861420316951266276284346865373144881278752948052327534821508667824533045997596005013109636878809747334737707408106246945308740039640336548148209752063347415004292929809114251194842432549659724938586744723151619144977118046916011612491520354096156876104827343023566471702482248147453631077008226041337024876027119446883965542988616554471304305542952304229509805161335597488601054933511582140772013838966911154360254004654327294054782159085450551286647549157608074832564119496871059550836256874608357406977512554209656342640486230279067609549338442859689488464921233079871938254679150860431175837059202808104527996349155847394657804632474227207538962815070749856928340525509102359791937964739087855766532392574204130501780084962885487764420538649496667608869786230562359602610654691834155157612789340213382092675770890846087877682574225981589837797065315394148501117632221330859667320396312671455700747312415289047423453968727790773981218016800186325177076374543004847630954632615626511180749917477898008708514218873610123867136055764975727714361350277350701736112809440186532303291575873735614205715211926111558022007321920983854756575006379177411557861741694383530434443170503817251006759110987657194561754348083154875698722976241361292365640709438819525855294278929615505373017091650955329693422614600119444279191589447936734107583273782815124691379060849816450571372987478184056190195914865036232474356729543603756861627868912648081637373655953791443322620328827971811236182446673227435943544638136330804696880571548394980496640793300731639300072554901745169668402515679432016446065338332060283546413190292634247204029691478529170112902418412540136495978596153268718544700400647637596727155079935462171921158845937495223968149574316262433505033464669482808255762948134155682437428818155221601262494577117014103224884746749929358964975642688909534432510695066308815315224760006125644022991447856048063966767324649962356742700137075725373846716618063608280149384133267322459967125065490820197379635103665520481754745226522588173354313908114202114021349865692440214278448105580440075332086911184139812533731750337583416552403160606231811633196699278538969146388011330584288678686084225397661713001440913683032690848916071063047759530188039643435074216846241579936549353492116974460822923565596350171391158886722264920636533668953089400340965115279040847374223333044699065034979001372652290326179489008603910166862346948344270671134336163416037728711995914490623388272990013512749247247855615084314916345541617364039326801847029885212898260680402913165577944235407172197514956996862379333180875975647207612277299086126327052045959980427343166915946990807791513905584628325144010501237126486772889508864346314542939836435912084007460090708745772578499288976502956470875091515039626976771715286148654009810944768485140258588068611138370883736643369429449192186433537277135803456454377178233728084349698767069955265977407400807007139895415267668151010943998994341468254390645269942615977552333007249287397305438255159319931213802421898887518808312130418100308416395229133833954606207289045025402201988599089947186577401379572956536946271248229815070221351887746450196634517743116811023220622280047801805251739142653386717716235336499448885472597881807629625264504831639414503461518282527605277002262558147049982985371220413596833325655293215046115498907389743653038365956856022599224169725622128577374088102051928930545530936614926760078510780769564443376897464854190952654739113344547487265926137471294500138566807673993170299811221816323764227120313673897698693582298958798859088816698329920174102499958386313329789486644819690610542880775535488718492622542488815286873039469785454106245443880066529385057516067088576857884733210171589924210622519484890499266431773662117866611308160957395195797052234215818104517746053373814977878352134684770715631593827806578310232987099662991590463799700266910505528857643972992001307702092353839145691332204731578779406827203045827675245510775039054634372282662811166169047934722992893802060146960607170197079132637905156681075721811688520111927276493428566251888609743591368383346477908756632664407577792793969306368470295964057877300261635305324956153689433089160611154407732233262693536428456319551595728948912747426117563917355299244909591377719808317157921178292289902998523520336918797471502074091262349576154821021154634160490434141324253677877530004625067305377306560428657126738324290997494279312431201730085114829735294954274580269942928108925324850313890093724056992825473895022940265435858014874799020706093131035054849370388928372322441186222270196897391351459623518657214345891441703679003847891118984757469150458328037271790320946119347872830961466555616564601016437870415802048163511148942174649398691998762997689695529413872196144377670563230123760913283805726332464479632000827119787361687088006216780250015677974666405435016181041004138184231256955929597223857253212048317090885817924598449699793862008374110038663251142871189120864360238891888508846252701019784476870128314409713037254644941353113511033074376542124090949632565321156602555781598586208713885278086193069862267789830452509000678675370340147528841523848561772881738914399407292365460170807482397132709872494959760044729622617997027203536409092262463080915618091319482710549830018868949458584383007215970782943235690661698864162607154514625688764133160303599261996103409825711535238922243342771237966441940576956111875141629578972756024461004191501415567279858457911164176768833351547436341330147542309273928756669995579534318315477033110407879252831421389479797539596995052962336176240224838135783040767406012731526325832108858918164515614229651609589226036548400396545600893326748380882173554493563131061658604782153759331166171737076535223112276460092512760138900587886476871787428418113221800115904582554584029671306195632890240295290605561846546914558309945809016961401306046108031458636955255765547681757798221165293882599225553870991897449641223875239948552183075509935300403358385452773824562413441284886708040024350420065609670674370732412878046875457600142690641712311612644204599500585782637877562521527755673570558800036918826441027226793685697976036272988877409757138900445747663958674290343688747722473057666887860549249803820579740905373404950909872920552524471405300249403483738175085580659178353268450992008882475282329119466266429608574247084015614656148834640523228278623661082135958590252584924468323909672647319227405153651986692171296718349882399833230503081120870934682021878649357647460015681522706954862403133406364450212561254422965335215922782015694681543144704465451363104333921583960782558850154589635536950299549620491377659529752812555977537097465076935032511915347586334421903931585528063223293757051540709290566688127572604777419261987627203158955899072660691463921202237633095148291507606503191632630235001371425347155444355075338007459391403617397230386817138428049159230797575939983825667105095004905935271146929702604356899968456115841374407701782776586129188324311086936931330599417867287940150838908720755517983213740496790649382541146599471414875989919201212540839941751202939476765658152308143555256992952852600752086204847689796761732952485073224553518721951151098225051824175538089836131489211564398785271966586515946549968379557564752908083398992743973418398618747929656736438299715373145954026965588271698871085694625404026975835926085436131822726782913895114005495090333482216882701860531684212996532393546338289059503961856772255073774612102320100033121778287817362215380634868561159123024966964810915110083048458053501147833550468907468581605202789174849845338198549291349361312057540917405140246869604472093318179811428581185571604978501359732226700099779603050945506797551161593222232617983332886471832664013002533207029983102634569302757979768550725082447423364744782264738530245496900178762650647910405406916293474519504886957815314916725597680311118129900476703127914645338866031557832843604433792716198597757374321382184645667014257438002222374443042650031512049271839599643663097113643785674614488344654281097556558286685295714023538639041518607968072174251373110326483111773762140593120334854719846657471228278334355776948922708986598155611389765074470374665054173618398106246260094385443362236115625031605887573176779708708646178025493649080398451228571706406315954492694757961274308808610760052752679222237961827885521871871627056247364450567103758777322556732713809194967960766439324935076987740856909982904242882287376494537390243315681268917240035981680881818280820994171356869013192417571785535522557487175347393360092971405383544437860134243563484576288351059824737806396107010802902758428564443305559181645265945292291993976595297719877254148255055023973117525878479864242895740651366439082742219726943595141900861793554021169914330516487807902304937173406313193446411730886266895952224155878433020691795276773706700341226278978900982127326392150787856182616402970248794774261392695603678906266810033666920066832071960404036141266149246589416608274184015755324259217826152267942194931054855779445941304227314360517351557413483947696403785509181602794503607893541781668100808649990669625461985629539090827636126809211975282441303420196535296994867934118385164451000458658776827598078838701242175399144618991998070335061215810537512002443709235313969153009447820158829306947635282822450025633551115442937904149003603301158079502861389892036368527111719031568194528368389864906434457358506170792239466832925860388475112489179645850225280875817563502975684967020761983311237721008901233612312491752867368916058135382572610150477136475892081564444742222408929788572836055497563047715928639977934248739111254556250665800436802410603144657830803554434269663286820128486186357308046122270569186361410517339062812280772411812026252597556722670923496639516769940538077722953578723864738970847054291030810398306440226460673820019785476545923553976180626927534994910165678162786314573021727451171246704516486952104379531345348115502832617610448862545899333458694259386118278601188758351037078814810753115148588525689884025733768764902318567819679780358914413160591905808709918867860340680380666140086665876426649753936303533956591916064895716781836602208825831940558648856677819905219247282571165786123209835030618212881152453739518921046860046231625781274220785163979545482581540182135536797327773393065410924613859831034610326418281518217138591469620976179795989009143625787700112227880206568768501691446060959040037582216694557226777142825870379649984161575454552205903207946030922420234803929452336769440946223121362546809976918355139249544246971005471851564186437140223072489017797637481857064717026377384828160168029559260774938931227278872765705326201793005558165139282362181559107873030525180992759231095112962795709206606982181122745708239055263698798690529187596478044781670071940129820820864389600621243943425473660278596658839361626483509580360455034244229861705143800190974044493660035473696005039404567941484442252910552109564374207687342310872370021166349590788674507607933997271362063321949402018593197853495014934378411879947683145754567473424051584514651558575947797643478072957509568071336177449763680827746230386475640173393181218759073935288413858178393358887105470443460557178167754371558343330781174849045859105710677993533946342050226881911063079115243277089879395260182261386518961817646579588274657687669668935691054433944984687736039474241320931700541184061371998214613855546976440290893499176914485400859463727574591205756920894993419084811983901034090125691468191871416804429685254892706515410759647680418046631659839905079535218108354991759829802721596224815629305609072490378154781128246592698817564505080145005468126643862447970435189759347067810012885146446649246790829021510930073663313606511725267408139365638684035799957479103771376589460772075132110264426443264781738433384131059824132103795493507013993280917705573764582580409780589093362553207869872867053662430602082369905522970782823246493519265279894368428265307978237068076585319133213306738264956175477785858173725342279012500394415050916842215404500775850178797604355471234430069199868544485867228782547167718649412232211979465180093548129181229773879407478365777425299343026747712147048357505880735366658364888225666260310424609741663640078605824098824713160216942880824312775682759855460359542483909113093910895868868817430252047558558041664525056565896715570625605814256664412256103493522564787630664144872201587229811169916286311196232751281532846624210801593760240088671513626426262244409409262995278658794457447814117508275726047999579168552859491809251115217949933719253530785578521004293408226413698643595047495072911865620197836457660459235768617249112091847850599227396316517918050016082570778792268494610431920942188463361773684925998721061265187076229255099184216613412235499808852574005191771046356263745531227691769458481078168095312181454135713932228846809420763073746254373811679722139371164185010825465696648022445785990076767688201440799503339183298353671034675437812158688834001845977458089114669806039032267425200878985871502639426774788686407102042004914870171993528247998785706279442052025390779931966442729698424529114314977859062863568468472042776745934429522933669050861119962681708251808950588309592000943725185536368437960359259131528044722069588409864814057986567058968183485550169842211697364798116915542950098996621151345893441359467214276662448634485294404532921435849080792654597176918750309322713089575849573293080102427535617724376921963439313377285114456916869843228245036546952360667369868444728330745450313222505368310911845907309009116460732075471520961957439093255047274931638511639590655149658408798686901775525684264273793562381644162528382020658590222147785472146060049543813985089654349480102995437062468676551121766225720996605222017883045291971073205239840789383093656117698823132312082087550577661831018159564270944334978586196214003643237429527667064401636690725915963092892218114287652267587990827586438918596733210002587915397668866532619794809353662267438313759728627479169789195937089271200089483117858756533208724793622755311947786829861589907674948480006713586393759444462279166471821917235572822464620958477135467962480929835844853665123828380405550122117777594998930514378552588232287288167946096594479614540733703832786368344662190783133096648985290995972216237904717582372963810858921874864692569713919842245533307648805836365618083068148403879852758664485620167662283315357585671810096767932842606648648425446077872092911024624985711186027560392616355691714393806610114695118498874007121212691174361782119444960381249273711736374305825203783509316247688610540988524258541361963531429234166254919635724477640336843753620111772852675316578120069950121073763432475724394121194542222462048078873800859616891835847406842858731523188037814805077154160677183251402461381390197617763082335619527591520780182922759677759422537595149741203855785731461024794517619506978468479621590328855609629783770022294331585987620483654020978374582803338098901206175959748448056817957901534815987872109732799581628408178730152618529632809659826568044315715878577031087706046959568525714464192634541564973639933805693315013609540330051951821973812219348972678547750612506808930596498469841979968346684023067663158164990160314691349780396043233716905075592190959157443025010717730888086075583192841043439198920336357310981531691639843228330817672824289883746168726218390166902372487398887982237995146168555875588676301345794420385669982216146671658950304284330342668872575074581967653898700457595089048164382793888236623461556585811731087060836619122289864757732857798740374450224461088069821003523490713826104227680866133403197807553729056323152290270422017677493228335303515954500067640217573957836622797348598152148445079886820762425425935644633292395643509426987106267424700492767106199589431806222790814160672115042441428038164238426841239313087440717678923382621200270339205842685222579089842288470803421622839510925856940590650159348387369469183595131320415880534964389735466548911893616747200148855390350834860487995774650374424814754649291449133673772468700198843525841071380519531697516575834316828714829708426265026624303515607781591129994200262353092868222427033400706355320855335667333533911852254964407429778744398983330093306303244294717349795175155171073505759407068117402251456576767246332866345757276583245115349994015550739925745887391117598827181270907960277290423811353945974602332346558359312103157118955259629403654304903381633051633573163125004773135118176543321265370895109344449643990957862115535647253031990584734194127723997771325779627710586679599994968539568954218254815455097388401664355951372512763311289731461143719207923288656087905222384666309342891542905809859449482030623355204653993849250552291725371903953241999434710895488986935403179103669993486221390963459166501438247193440552174979661631223689750311048297741980817922385301795764740981494621156959414756608339050476896394721506596531664178563850074105251802826554308387038842166573359189750323882466567462397287610012007765554441486959136729875984604262276837732035626763582474566962109340441883727356485554340787193934523836956699625948146169755242947433069301681153069946005599002892838555655174525849102617998751447160262905709547274969847291224385685815145665345865172536824979250144686385850228487883724884026532201940606781733534872781543303040465736158697154310978350686741530882511547960869772247014215990130283560812574865728225639333811630933717161280899224492403732550010175613465336544319023570344255398912835533051845989778239967525313532858196600446095820895396427270277172427325685242057714508780978709927461486581916238884287520958589254338398185759299716968891547153541135572208345320829579751522951869904015069969890498132580694839511340047030910559375665672119943458874682042759021711961497620168341711274552669858122301169485337725958178442581918002557323730550532463560619086080601912392924465147985255493496126057440919781336410814603641285668809595995721709720826567965431142417824571427067953045675363854068095937574515771913206429932838324901956985313467227449961197566859344766309327885487239481907321436182236449619166024290339517113416626678793737768247826021897932312556078356333704621334987249219558355150914272764730883975389060315189490763157222260954026684020234589521946867205363104707254789612603099662660360362195342004418153976845180495658989956023745758116901935532880573225991660045879159379697646271469950081990864277864824964034695833886929830149444062196429815682403203005908958637635716689954126047902716009218526483645552526632203525881868114769417708113891872889271603889821138683000717123137941481624886982043435066878833596086692041245119485751732891575928720925252222323316568024378093331622363519682206629592549203611237590490790530809463029508910349804278543764053283426114692099044336993573472751438208664582057728961063476731732716534210289889769592037277060766814967606178968842578399152191996387999632633107073592284486190563696329566457387815307095536000443602302046946818961231916631696568017498311610981158441900162778273902635130083659912679394799001777739123930107366128287276874481797996091988626777453568874859262677817759663550469777654883592490795251551380545223278150982420399065670367809265343127145676704458295702448483894594092273074580434158634758291053754391655439978980759622292994386764344295490348318646722132512616188407798160169128217911373808010911778028297206496955238589294174019438980227130796059094822650384615905379207684824183356371767216618703991796408107555670903087986799896344415387564655872951108801573244044655172232617503051142233382827571695116919503404257344998388157563526595785267518974869343336473585382638960122231752762774142114129481423630253635743768694600650272427011546518873139380343075529675607470402054675546844788030002946075255030733441649203427474560231736597316972780636616734195449076566368228208789032756813333789971651142574478566607023440389938708098034008083153396430828723938231533356918784845242225845502670977989186831133307739017198070819258199147999171603264333394939404111400635495373251261245061001084510888337461770883300093071480373186150464737703554376182972237710087151600648191927564267241180685844807622951795749423877037874821738836382465140523767248205420251588249082962002497996513402589224803975993516338664313182892132955440609133497712382705481031095117676695912579682077498706828871276332911761045036199485226197627764726849998510380768286485899641117468366388038656450779884557308746572036012931340348536048293608597044598516896554576786785138590475134735072399988523846587592947623720475660015051988256159916734505860725019461462571052733498976098176479788717428422135781589597036242704255302414634296036727685965262713679272839250794955452025671182172857161356664950032024622943992929120804594928949475641372268773836975333529861013908397231387294862674516043265972461428837289205708220924245929143635776874440910544283846246474108118768170896724852890806992510609445393764119151565548720150668072014217978530164672431076076661225586343096429454481835849609342820719120657940518303320023428135256302924467571633133533825897263254147392427374512529480117556752531066670520718874623822736506599205393467850129197422275710868488948386683755234367344438276382635339605187913983726919931780104728499733379975056905060435847172507347640611707365254482751288731651352828421146565995390416567909042126997934738825750682736563244749943772351045027150896667137628241321841996960328403108726867991582156909340729883940369552237798713657009652323966511112322680241736652988365811293886129721219876377365858603014465727554951539298602326717643017051900699764856790307173677695773510323367643969105838925238544300724840997812730186100445075488482967884876627029213958598227599684816576919126078035194594236391121947121899993178318801880440195802056138111419818629051320083018280508128322154697347843469359651332686054216464788315501431869779246596695144877949010734642887656927435880063886856958559328853967377546911845071803646821416799829569920358366348140478035661742690504477786955416423425221585480787028175328713508074428141275545919400688299539729867371707952170200508741159170858334829551524411884799553577354572107329856047833799606627446049230258291682302170345833814399382070288095674834335677603960937724322812708756459015182315767505448197037349750150766148306528281814032616940023298974658961099362155086044115922159460769192069333092650596545469853692628940740492850581046979736831151172326118338457663704652101082089069730161732979273231577679636535816353344371274205538664921494483469216075738244151695424592840932929669312499205600945838540941228271803875737325711902091233720727745210973321598753933472723896805232817685650445280130608273702411488997161521159855680895559744664344834612972851678237838434102684596170610660652466579225946212183003007133103621883050924437915857309373289019132401883380135264509585689259440071248324402022939885980152394393116304530176447403396745576907161750750165548153205450755423996460407056712751741776344404797052192133815119027703713873501072643418296099903824693004223063599789277143021369312264603084487921748463246218611605942308746949716427106151307037086901738296361520846805068589819262466208884893592945428378058903638907216412615607300966676567178592778044346044207253337252583015282382972784748080900263698845364331987475114788315385002803163782762243162253002043215882272792074893812195905302319150518145005205958058535649443490400694429526042041910662926609529747909700220175211787922243319543557262460077338738013892653072497760904773610267203945600670227132333585864307362759985011750825014903396759559035237585533384216239172790149282715284208275004937548002763110433088480137583501110417403683486415510258648402771013054198464448788163738883714541249305320236143242551021254904761760731278151224274793563688763468357964625540188102160904250646110267645839180121465907347262525764433038469055449498805973102607586295836366576682358765667278419710818042934844121992288571299832902742054750069255054580134764286735170659964775562084064991833950414450573867645318191725268508102657144557384464868646615645645644723220649021674972078674786414633234007449536961548286073510124680208527002795427438194776756928236400686261789383027378234052762728985492375313667854950666789815620199809773389646562014851870058902040560936033653635555828412028087698304518274639289283520169087622244955033503624512053799310008013792221785461795542874930074473391183935203147901657981497268717002192933367900100666358345626470976782392678324768504372110014731018058033150807904384693062393227728601452846815915797241718184013940205292114591344222707619473021882578296510133558735793862189816959436676214115790374537643020219735404979788875451218663366598257618542917966743868394071017170332401349375402388179941334533121988133797028589851806877063771288015011074493905914326435663671587481695632523910822068956273418354424528472653037138436606593203733287193720038591032391906858731642176994603257219172014562248005547935678225917392521130561088701828291109121707596091654800461799073794460748980605320586485878258265942696384484380459778062541890510429990750316151389545171575318353395418859125660251241661243385671092885189142973348597670800710920712964829210672451693510198569081318443864261508120121802546208727894636432959582883428071660138939705457474303649445262949466902253219342705373764412877256982132415524703881699644919576537712905960648170386730071186213922911550806564690441827894022576123192593180498967892973298497244222875473008207824462340355094794737365583663358974432781498012020740421921926377878619073854139561027106602577864395825907495805190697204226074521999813968668635784825257564082038976229785589019632339288094603443016888755609926478715328625402190163779312642751956771826668036317478763080333058540146941366898217561268104033217318486558275643148871209522336716317992065885382882239124621644563883569265425769763266579749059002082518866664182030461754145200865831233578706332041692215615607055445506359454642411873487979605454058583144101030570522637942524926973907537352630211375756607425019446163277161311553628315163608413889642772506553797332526328038492682550514935433934244179154247616797593036826097518676889572513866340667733416887283309774373766402108188573479425657008391928231190601361405000209261266569574950120170121456587159522932953933055250522954044498021026187446659562835240016968161161619032080486828420549674213512884156345121892424100771986374209248819095352708371083535832878225745823052749229435511470661773549089450830546075529123155902553486054228640481555367505742462317562055132348880830157613142870606470410978664791372856577960158836038046027843876675082658347149399108332361590626477589719603293998401557796642767207924742955180659560740880094674731687029569627796716199966701731917746221558712417185354404031400868412137610635898805750419127744327132430639872489106476021199527529904592586839503701145319620988211504667235461346103415166404868074809903478867245911995244449849999858105517477851502235697124635007471809655213033430223411374659404939594457384464070976029114786419209422127858373872184186145030201489655544597203368922614256712072985604825656643969709669684830082162296689356405586902736620594744346255993366200053517917099159080154192968686809731347967693206758375769516653779672025231878422270634711882500482743849835642259812766366043291540609566568347276859326500577123828868127859696414381365501345100479532025668565324312163853479532071133781194586125206479725960293999145528481567705732652711128482818409874506699102741420199773539887466902886608279991304529485575053735944703997531448491856103393025066527675367708209512363179046903300286578690455693140673490895272191328181006774965840940746348868215438254544610193632275900248422005167815788891278578916674744108468844184280832069560421500138656684979475230849840236443832250789418315956656397643214222335559346974577991952796886518410161547712226373103349014983741224371755724186980490494093777137150457619772203290124754028127452974224919752643535733997223292187081884414862760133924996500635329084910252955804337753904691042766211580453465408109540315026563278113468575538416950583336214519655623487083699214102350131148488464392619283196429687742234947760610471441883378104533854305674830781100037753498593154226510826191314891000519419325899515034667376069334637362553166323318420198612377011535883978664215540764842038874315555557020717964437544839330970602415622274562926397952544558675987598562275825535016004136778467179977571179142962284581255735508825301469484758133093895791674382430276582041410721434986690963119182336613455287323501307379439873701321477465876568592741340152600756656091196650281207338256173020670224507872712013221554620471391675291643994584524663411230278578506347971956284688180756883260139078670536048677759994233101099341196012192953015542332572073302676340301357418119933141953835627365984146037071598728840824849289246960056098587817181291890479085397205673546062504452614391029568168260766288209508728074701099061711061150940889186056628695839571678077253095292803547269756327965755770963022474319761850900278015414140221999305759571140238017802724954302814735091532789683380615579289192397309161868679280847974049176175156309790987614238139107170100187390009840745496330525865176889905539259152726149909837035979259804345185836954663706081846225409514771846076248997122748654167251757940090937020988546472367788572535970275761483626312720741851927514680338730775145055938153755738134480219249953438928946447443977252684754601729610903837838128417187610409200494143242606406984023323023051581482235484967356146977600549592224164884443894748159920034060239841955157865151530619313489209745252009368282257143530082205006145883918635056079258080471179366938786243857380890925376151670618437133370781150891291044336508396068927787538076632461320322259353636913282665152745256598516884176696628441884619443849073581005098264089145351142117404083774878924295707527622639949914072490605579479874424537146703243076295167520733388218626947942006639356792049470466659266276500468249884643654847630556700007818311182511649248722687447379279210735447198624182073753989748558238417097581534194617728683102436898450225081229741785421514409616379729068283048449365202165061702594189208948917173935913990525843100655901716626000038546182357880554034295156979611094929401920671320855095084977550994228811114983320713372767994867769595281672820069844098292879365675952247507118573558834374876907991737709434321709587506324684911430826864494496918272610395043728363127343789621734677250804906152195637497819455478867193098843796799567775349736183785675201904395140481723686190949603344704930290287402187486701048320747676213687497989394700453861009752335686376221294052461308784477364663273484013762679517104746146246977361925614718106407135743534354368507578536559294349011491500510252537784126022690668189688247837681262823352760768391277648991372493700975099014710405229408983422801143714710572485692606922470953947971187379472240557148220676978374272615816679107976254524456343344874263643180814754703681654688841662747724710608427349987254753239870407379902579442888941675322107027924551202117837076329449700949653277502629302838428710843995005384416257897996645729357959518559623126413027765541447434148482788175430934597281366881610127322715931777486541883304022281207223833911781378499018895219717235534073882315526761032521138860342397972793774545289569718651983198259936619523411139733896569545748015345693870356327196808668189946551677465448424107908927462904903937843773408230438811013018632336571661558912471025832717211575373094194556334293128916267018748896267045761112896566354322937993845303559674748988832746596349967792437771402399006991422832941234247283581833780116568455702575892434036142756940302549068195048878183035295665973561190458452741972239933839545849487916077652800225566808972235574722573764254191454710780259143520463551253790102131868233172477479100884173279766467645067823324726315407160552832485358397117720874317553815900649056083813976876879349479313269662767213652024345355325719961045462024937517693466460517299466596348827849821458950771402527640445813132927436305350228832884387342358743306655196945992557595805994604721570486947545425562585201530673454406447091261768067117112514558063343656027709421813169219037893578781624547098255094668330924830784211380633041931014914837592392991910651432514704701512295997379369664136549440081273254123852023100660922943766015293541670221401474691226280913145524265254433118954859531212546033583748818959188035731956914315487826203439183272850964326556553070980610530449397361419194231433269548258351716561481469359796623231649936972824627830235255215122890035908644240963780340495139905695055359372743918604781377105531565805565406131619759531658041009494960560962893939512744440241203890608489335931639949172667560113157139991560862868973155167280417995620566422142365053009262779748246845409168643401714261775521158980686342281354828153434084068923076678180758867541482674031957622708737083594627671362603101815316748033152888356801481106754977835417979701986149153600497178393304358225417490585873503033206908770274505962886946063187181141286016367838318864669814987597178920420105269750735345400905236584314390522046304006967001635204389634885762653237066443737151373735461180755140304984867979155039801952885671597224835258178326012993420744055653747732914944180634337143667806359498286782740110657989168276987748664808876550736469440981794701658221842759066130498622190439742020385425588855982636411240923074788015808597344525589273409170144930281580353167310512871625283349026684699823625750018141956221700461543342659506325267412714977557208307201098695455836720690234891656693152162709537798571250187885397283748568112899292295493994804618514660331287876024520853424805569477758358794725863636481424330672282019343277229832781814205203755346578145692996704061187456794862478995871490566014557811769119377997376178449037030393165780939588919608368647504554019773039018979581815219761808198503711571932809950996462672428100347961703964689949764327671301639179841304213143812438704548257453491010248649457312749366086466252840341061761271755671430150519964710838767026173471724502004416415362193270447007590770476131366743456337256933843250553942418955142612582510050994456734115367863559058584170426614238710912567647315474993124505098130618153980127293383672686611100822168719107725581951524351028843834862945553685534101607395200550567986128927784440046857808765997862839563671242635231246272420803733386412705954863208788882951811184580068190988591148606294461963456814289291347285092229320082671092673849667423163551461277444145035369050235281612230482828763685736745424564846163922196270060340049126125772467721212276940551809592840787523795266748208985781133468455948650995681904405458389421104827739936112690288615903312059076561208308543299552058158762639091530480947020612523564431917842628117822052111137165168718860536359601333690085635170350181327692884417023126774915613023428949294868093572656030231670271176956994905178106970752233675274382188662980972476102339512667790540896263770852987281025972103969153679476817789285546346555612625248644470740606526309979132205988283579645622532440924692052202964485357959296544414445491865329641070255682972956297972820885691020644065185747128900681990810623868391903298019199211597992992708188379934037495416665870161676215410315557682471327465552843566871354553162088620704442430203576749904905620392668086617767581747149071276393844112011104780118356460372665218498286894130584455811016102543320448485607780364358705820698249830608300944470370720625253196543229756680635971712819166526104444834538594077898186542609002674659088551594462237814240155420046398518103008215258276937873493003763387124013496273013228853830900904414225076419585749246144558158570821366731904441821916794316954474730003746248848868771741919791005960054524686365729876469070857359476093596265611967167290220283958676801703890002483683229005641963426121340997601075273756491934649610053493850167241217090798210125838245239261895366389637420444917831582287298872488619470349021830279674402830708100106919373011289111731611792652124147540438371934883962241308625784362334461327817939795598354364601850353649253459204889292160490541941146180121862810225631032083516206980571496869708655531195346474978915888868892064904587370098674881142558683617404118926125900039874032548780033676768609882417007325255119813012983113028381265799857805181811858573379588491163948708004543025547565956028107586553726966027251412174410595505317251037024697442603207634463863127369305009663754652343916099960879324088994104227438348646109524492331129364455484069107294158333728516985858114092195127918164114624043825991978263006680017024573641921526950573646190645413813704922175136976127279660532452110617182271102360388815062805704979796967814615619326674057843953316704542119999243061464642534479160236591518702815265566277598121884877198316399436555850865454046133681771095666914988551338413003828795678591306457953983067987663208978617978640619159907721178397178792009313158201757490707420015198835449308217504138766076381545651788891087660508797049475407075556008061598440479217684209955711212394218023321002562594107378281423926969619007379077579225436079902073151291240129549400864125637283495817110646769186853014076933225837771488034303891473756869508569122964584936852583785840104959626367392497065849215773071054094159094882954549708486303888848154938811699376667396847673284845648196085332167501012790681767514868432632096014480086340072278121211735717739314457718903791115867220627706721477352156334919954914226368605867172980722248811954296380755803319531097623980378846635463348204304405471603788553795099839710235418036845201665788853347911471389457059700013224134926142898691555558015423498799559874387349415199005490653297723916914119024160853062152403878817419312400405750783522355908531675100580834014619127093931028930724754115949420082652591995094803241760007305294352834942135574721010195160669243625171645232691915863839083333989974410665791660980132672136466109132038309609562171148300246717640442801969544649655953324790351633667848628174574513143230311103094642589138608338585485612122933048325997109307171514995358419335238490315604857941374433199606587227496189377890102483102087803707232938415326458857035494707188833285712442753083957307143730548191175486372029508312405201432412202720764127811218594300036580768871954159197498960062762440869042284079832882643238712529978134273323672910704512965646752479578517550353888684361605260410054873826303432937868823355379191823592582827262570694344654035275100349463213948617665021332387054719187539865704817023364283988509566639379967778792638358198338517733461832172195570804946523934648482529392892482291145070166560045655228370067766890112020647341605045046924039942743707908240704846798279537303304651816600663360660289183437306504452794932087246018591459025942159621229284699593911546974306019529714117242162229758890911552841319438817298748027169583332256148437496934865329550946665623425191427402553123821373849415724018968039675724855791349905308967519970930036246619675189468669884468866106627677422973455949218086835323766507652308760219016182308988752715796066868661721536758926169073021151951055529948491035671002564783617531418595383538988212736231442520439459264581892782264357874510661231867243665108206776872986451551793221132747010100038279242339326433581483662265069721589100151676982702664097944122791770039993247940558549691142344497745430070347708745132434542998235684073466392372904483861270479411975603057613720245395691021095592139525720784176645364060771294141949016317961242971807047819345554418277963185508652471272193756527099200382472063119212459256856470326298270582780840615107543641930027226789716981852699479510538051515373889237376768879627819369789173481093657067276301959706240499098788755705016460553733551867698501356693369950680862220303969397977360107062012126488929033493211584702058405144148194501737695703298322433925953457564639759953758096308284162668183591951591969723817600278749463147160448193907875083305273917216052651425724887140271625108530640262073891313273842894220866051859878878582345207920699851651970407633810934961422478856439509375036243937089335455768357627815752409099488431546945040728924707216695016822324035572604839287381855711024325285239671717015136742515094892362164882551701254991788322112668518735801078499290480596738013803123320830446602540337031829817798795867966840328213485047314172308930689597738245125608676500982414764848854183324471589412761998027649953372705813851169183285646041774614508293352988133933885365269215665465947986721148702276629769624239794114512960434327585324994468995591904991123973048723060189651070858333450628303303841722587403852182322763368937036067085597832145424005227641533549989893330963069028377866209805401006566926078734765866302071347515514067071028053364164314346093795798691307808379790690782392959494335058437060405494243673041159952496787367764352313542957771935218872618036627232907494675274081231457900516966782183606983555397260960417989238801387969010091539682946748111819176133661695499517955536000301047273044758056397593617047315117826968523710715380283363838075487673682036150994796034389904002636264212658007921733107261961920287173356644985469023934736857876277400606781976558086606669286759922511358672324351325110819078127706825513143098827884494711746474889780664900374604925454603207052311677596662758464970812188588038137901596509169196540290046784146486424191310275277695768370441369709848458039047156460974488193533179803787072979612826340630514618997807369178993235495163640539316960180953781534545488947183407921132349566752496114345266725726817002900137471875283844400245707312722572892607992096711074041239305844986446215679201651243205743505044820852660713710034504976992089719218744470136644495864523546119865720341186074647088482671528793250283079616902591813086892816231561352447632912541692166384756083960803667381543459389252349620456015952732661866137556846441221712784237288128621276707911812138335053134552062125680403058633756261231976665382174896204967100965231332834916171170662607148832524050840520152749441850610617334862661732792337294851564216872551317124446182185288153075430372642741071761236483689117180730045581995320154422989454629605357300978866408554003691645541265366346801462851560176279690595928279929618071252860137118478500119770183987223173471647793205515225305874670757164603460663291328215535636193751964202887960674181859238548922001385197545116692636100596603838617706196014758174388126235996811905641603069715016476377009496181200760933767400553333224938561507299577720350479296126204539722129361797312850775778285547128641426776854788174177457280375330925640283182902560371933330604435776786806683621465630611587172616366506617623064102283490715790409017909936387127805370869972170912802026114807057944807964610023249363910451068732417215118128171896739827845694987847159751090994976725558740545740841911126421077975551318471386284361327702295171571352725921836785812827470127599357974480144055432257479171335141255877530538114681513605957775075572700310566611653046759617614080793400586760418670310320652522819004099277975674029194269710348806673712292681844953810761469921631768990156366361700844420949690395240835646559790364252014689814216862725249626454116821428285730305459118851837039261920563640020748640805992205592398933807485032909949926504318154157066108562283965016906012938565920091402233274744027095656600139434923795545951830614002743630688668603178394616339250113330320002899542213534026232860348938048944725581984644219989321586342785201494133332044558155129369916912322576073951849820764319560187750439416533949652655765094694452225084066618288975463775033857650416426954099131998344998631127955158286285304818878222800536727829870980217962037905263958342331259679331071969486933084274592793385668101383653816543440833668747688636421692302593708682738746240438066215896031404783665517384398198770363290865649336140588720373083651521245216021136836597664255624534615984190231356164297710506560226554619885105006611651045456498583988701570745136218530887971361259908988658261844959882212110893940684353750503299942608933717135339056706860728654340794550720918362750272495830042378170894313806909337546570317779341596296642944831060052105224842964995129595342740528074773385430253386346110194940206998587258911240767613235884796320085744002428752662001724981416762136229240364505916981153776963255315112921385871046970329080634625801840787571656792610412708157284254324076091257728958502595409442269587915095764594580475173149425143519151533462434709269498287939881147166006333094618764161173997717822373758258100028240301124979651519887676757000578482911865818108588177704722545204272010225493959542261535252061965446273073564414616936973764053011256828069793647174994849587484415669292566314576032593269671459852537487014418999085433733303504348210287801312151106293739230123868238298507476382675856818582484069682740702348570386929597026748677351346264711350127256498122881773807452850886721964661701886834393649817857315891620383896673207523322316852132949607162682592715966614339886528337114163280693320097436987243519915600220133699439720511861270415985352478261761319563913583661053915889437778108321908995122089136420568380746110458403637648912839860295319757342153632152608483146885041316804826538313374251041482938329519252723107907376480427707270447710834499784049473775086818947229623824403453694999711568200827164060947009916544418075936517787347684298141455536069655872161664762600720888349289685038840026019001328081483682893354986877083134424286991376342897978296402396382920980533835363348409469559636706516555530194133409386362234261474276916164894258791792336569720508873710003516789168075316077030984661018417855961234574847784960071491179681705181234751145233389941554967635518517766585807515813113147035580973666515356781138541237697345023777815766019711455226204442165573432168308832794295639316710194785313408866499188707933770998735667120895034605983425835875131630158527409508384667320086183708275444109032698833971430134643662012619344352401875924080372750584725281877033105511039263118257508819064774553760145576329063743514819715923346873091743093647771226174733877469317780702533466741824542225896210077903193757383128418432705593473229646044720502656007355034332411973068072339466026572509922331129647446292866719598935082347165864002839299751019924557457690302895315840498020065468904977836808769334811876926246795866978941369602284608519837200371092132019844284742249063150956000173955701656894837655212959406712461153297337193310081859814232625871220243258180986927170918472911667853184805183830185542097066512485236847726107056140474188019332664955529540543780033210691696752166378396167696194551173169233658130344693641593738492859946008918040324597277523708417506341892252342732010716762165638163624703549906212895571532781054401232086315382560875904538586820486006024268949913604925390389886562957842704185285403511063091859526499889902141692972597306520324988108967825585324577923381033255791610943996118075306056288239092345461462266371645444828085136088887448212467046940408943506261540353864068149764453082901860279434950516872051068972745386667611701666356069317909093553574113104410473736772365811032026037770486946049955122717900076810515053253623522880221835722869665684809167473720859507054557106254960175426275773044110493831850932295583467370610697747010301749409922058474686978122119731343180974769736795332091138406853321787273631276303615661346085947581748838091321142337993835848285299670953066847670441750091839640105058651061125852052057281835185287368082393407405885017239265690129068737898838043980126032387056760782479069698397329087571783301778737844267446910196442487334983181891458265993168834497427961754305710343936615035232265997609232178109582900499545054756294035791877823735342768703135268249986854116292162750304562862120428371282296154185961617835294233347494740289438097360145724189750035507177035692894663278467014712326571036519685953711140659967304485486064668638558120195213407989506978428668553350551949326483966364261981560647348783289789778349791778039065607312841851385152353169430801215010362152729837545485376896484575133958863101266735747616995544710624334934441865396744017301609898783471567006838927007954883367032220736498680119097949988909949758788122958183127331905534380841684062812160766922262629902505170963515330493449212696682229598459152946862953438862550578089609867574420433248722928482085836810628885460900066108122278182359306663178680779504127745371380610155078495120712643067044844103057050663718385724211769288546123311792049657280436401318760460680660386038508784378793794968384249942510736397935608170845927202658449905523835716419054109858061370991467399718482641522518899719394197929065538980104658773239798207565858692724785333219776789821542938697733774794012883871700179372174935178962112798002381036575701885499560367729763857051256289448208082880245061054027504653687461148578614679912572134914424929546110895440972437213222143878388807161460602804293827373157004031677944069636472035334256624910621348101488711921932873316038247927512139508742365806969377304791576247587656853228120076473200683093353059061786150540447241260113354836314107724116114929166771900512267120232949689346854384921596876391962644964323057185703758924027741328546820850391544894431183667672811143889454564876080000674426855799431246516714499530212855662680042021085107055408161765437310578186577038984743695154980060960200452146020219363522373322542204531919169248604274206290165542538786790958027559805109919709282940113804722170060502324095981913067961050201554659916942767921096910238430042109902393474826648697461388420358864840028396448926992957661063038840146352515332801885329151999184445243261633307504689107611449017323126401792777863498451076619542804138545356056683984720552991229609183101839574661849702665853058361669613856120222353827248859766705353477377191475408453098160655737781347016578026989013048804416069270374461351007982965902856621492568854204575180250394648864821945987023671404331796202543795234228209227445643679931216244465104508031170095628410166698907309478115428243177228733066193357582029805491089961164098404198758465637909300081542391762677854361874966051861502064915105456330130793306830706192502507165911868895321934699504230553398544857483929977408047281763894568719295078227842990978115277601132340366609562974530764459560891729115989940460776911912698638656061840225847648548106136888367070855983430833915545045076677903732774271048905039270282392817926201958689718944400970474511586490458224472100473131870273941524783834048452395279171324201071120105066701980304332878102314888025379274881176711984166082704735460166575932341308787023904249044043618700748837904207258904226598610229399522407975154459741817184675334133968968988475827034995663490601426288094621557109082379183193238903376065769846338263220085307809508680895832299140859000592589745124913493051269845312816371465518678150468716518532171633845081712461557039760114279296712015437337525778381081991096687506474533446677247293696166490185540344877592489959699563741047921189294500823093135362867786839487031944258664937081775593649792773197731249259388079161910062060793406827412371441879909929690607746613715039409547324251401303015511313070357559415177892255267568625457443067389650205008094886671124456522472105191844780654419250654904839196972096257443149720975153105391106733774640020796944440486935771230616681456900040154762181218097813488789413678089718299525294275691226319063716192488048565788393968856210775698886439976108680426123096536370553717627798106511607338236496071016840071807084189676051103573192532779436405478882948669909478218258065142319228589887010514623215217267345803994910569180570976931730252822267395789386878700681388556471776484156242766727809496151901850605604545037404383173239699401815492981380518773396395659024483128502497167872184859610549131898306302865137888084021739514994875701106840665575491967513841321561870401153720283723294996642458716376519746268975423762768561409257056410755479425179745704609414255131145441448927009357112261363244021423057883272683361157414549705395991595847552116449819422377635003874815563371975413067708686076423833673580410767867892703742660762236868199023237861829597264422887314661013128149172932656618790803744312270387214738849825092191217970132624681342905129627615707756121993453096981716259026536611379108212500686599530841844256058547571522494340663271282979841387998225781028027908303967205262376391809269476283413976848648201548011771325517561176936479082778823059157657172423940628828323124147519083209890011523806711229906843428877324078641808480094014466920069028965684885504882227059561520641165107592326653440663273963325277202926579448767485845821160650177442727074879879848901465841585660904187455999075394065057392035049981787401963366832639245105260928044610949499751735314731087653418839421400315074412582825293714298697136275023056651154677307309647819284747974562309427084897715036701207070859768817807019166566634206572322977790872747707044554388546201980397400695062234861887465760098593317348842378261425110051694691220863416464724230139374208712184457242675192758285635288129380599219713409373021925482715943267470227872460465648583428010828901879344791648037112452356737688125727637106564279473065698703940403606521880659117894014471789470363765245457338472712179262010675591930714372787427155037216677170672086450934467508768812910424730998940826336885379099411051980876669764213754040041917659213835628859586757762109202744232576752562332236354177150391421166338606494373430594503817468394679464703772165639041430010681857532086536553663725858211975481269763659247657899894296923603717541282301256480871022086131982959995408004342476837895679049594669581482115753096690239602582877948728799830909187020365530021136139918176032956270498285943122212810752881632782465617403356054798179591664386888806652889669967995710720505228521624435095502268276463057721613261181883298477656227576814247400509332325899524109163574342336914170031770164907617426143435076132281489150756320642248363735772227905416288115398076386580385701510484534990615199157713937881983153337278242644276265384555457541457253499315112569264567627219458971681411548598445958827440154946045244809136831479255469344105642724437192549112910382605908531953802925395475323836083382545477816729803655616636556482172691791577343599499193326198026023593858679566394689291215137599600092330472543829158657897313978295038600089004668554227412235474457981628210848268176212093084396704543850194038753399587119637039709754014895589392419129283158398346294305038278020524461737384324950452050699527904742175828732279367185821472862073997047603608947712876532035103858525155060073685922302187833407263930900421489034785939409507412551114079742549222187461634237944876566688928591323596287259769914209426285304283142867780747512817989650965238932550750912218188820440081869398555507441077954010341938358235713138472107849924346892119016384402917631627166485451817381582598559816213692366983424928026258788929221188903508317169582811583891607187134862028585282648989755423893725041977670786964076391949461534758280618337982689093820534619521523648033274573985410422714009979353724157901791405884869192398740068533687851859359132751337249074078715034565457400455752393465990911364915796095999488925884774353620689864901508170407119215660993324165600643015165080097418574930394820446681671755736655611469733494816222348235758634691960957851404998600608766865072024474005704845625046190927778315154954161556083630420692051514424767692657733825420743381063345378166902629013259771109775234759479922433949293853235161264858685954191105098457682438396194732304594618305395364228601397744426859579208055835985508309570271512478328825768331777551101620849563740272075715179673381460559086733971107722285329194158825693915930696378040243283220387422600638964044950233163687514986896320991608646712097350113350874085115222008630907391940234609765336575232030844021982107013721834738161903709885368047957372836511063640803585554720287234004658020548394758986165122259553193559797747654921181774514079597402971321811284937751933768676969836507479119572116290680456086416090729883590829431404970002404842218884111800865204729012146253835351215946045974088271552013960695571554126180346650366097559871737100062089189631697574597971139082267510098985795266785371229000597276326822259850965857181719305800941497675729656325517877893740561512220478600620808239134009077985131406436692462982613709675795186561681079304436216146746597436845455226186657947584934139141418694273579079992806413698295179675806891878252272998448479152173208429389810475762339919247785616563635210974901806649610210465807362163967678781818695669263145339332254282841097242822600665706855392968182163104122923971537718044114197322591064630133137470072950214521835967420056917883966603822214320371369780292426884755074912951302347916193047727299934123445786511132535138782864786321106945731284344060621410175920344024066199052530775814992673742231064329827598055965603406497099744985566689221373321472111240563003209992356596261168666317259316391295222553936085387047014085529770438412472000164865834359469750758054647265053010692854956713293081636298261691080161437842490085373118441118374553092609235285186638903001168922054687705214949902270128414084227140572139370406206746564385760984219507586836842063024011952763868528892301227213781676022487557983590203658768707361261205551912653027540130634068659409520435160675780128620843971831482675876651196167018952945595662185503560889313821238513507503907502399613251389137218566482281556764028877402791640654438768034462629526298126358805176649799948487707305141663733412545763415506602634885666257378963028470344924013084573263865908369575520162696777112949911367662892828256040133738774362722758227278725006407233435542823453091173611378306062296278479580916108519445417832414302823390505503303230065876192890009477024033333329051177406070947284312803603425849663598891882655598970580164761483180789487437809674243049396442125387304751566666157960563359881505011101707920553354532509227911152017632989994634980590058115473965587715157456552237610456331744357033740923788032334209279934464192359086787297199091349518763204108752056302590685142509906539863394162024017214127458016847587055410722702549668723518223366855558756289880299490669029938735593943986294494806793172818980796634489334860437557935474992616779607825025414108889542194190175296523372161407054632361368137573679006163836200998118913476312459747686239210286763353892596463366274235454073983606608813409944270052890749058983177386513413940327057150561338042416098391021997799998199329551408550047574968525052400833448856166629096517377363538944607162683281678695284508142613005539810045905784207298597637139942580158281675385592504802701987374690163935586684597739580781671116334806271165022447788182774328926626560497282460789124558789136231491073071773400853713058437560168518562469569199770365766382461407494702790312032962321965189496379395345794121167871721451540686891341989733105434963297577899240797197352251145404083367215682833347600439749572069977930943648230097019889646927498006348963629930672324592013205960115518492607708901604587422173610583801770153327029586674192497905086676610134795396272895334449382137573674355583738121903047160864369089162561428097437333329632841791903439009125581645037351388616948619196168147111738037694173157833306545691233906011835606090558880442387844707196422182505211053582457512932116564377494673761632830158319581097700781343589675758518141719579682147276327407629539535193755268691203487502628188477873086466569490303031381115821949410709022503864109662269677624309042648276129231818866347491722613035002874661587506677768831728114821147152496301777432216321214349819437545665731616661965050553227037068478471802056331397549075723143136895979244137741640568733078390770836498809076492676773779427063825966608807339318612924527900007821127413543322442549956450547675458393618074454286848711328364917442966515995477201212383539660273540051827506013048234625504537106772037894064445670452145399638974652238782984844363550228578081140250198841648757790823689063007961278369949727170820184651823138245254554065060189601162333051065704707134290684920444036932464238261108743972985150362535396638042239935649107639083900047295280250263418266555309720837640445392973692513806964460113262592153727924165661790158648383248955009442924715708465347907008627028076521231803449707899212658900249819634066116920440649242373536600760535638237411463633775306547009776959507734827150481433777761762745771527948298940433367438650619752296660324735999975190083907020517640078691123527121332236899271628762737369075416311962939931426507392244963346221568955843456613107262037188747907894041650304957178516870505815648260746146827079926310689583143812100003217276182123764946330374091293053412474248959348635233260741731179844548849860174186162222603653871255332518857236563645658502070685697625816054671222568253563937486359878365440920591431836673674754857121092554124903448528420541722196456192469948129796021931940568455990036371137197498581429209555156085862260599103168542407167378819118548109749925720611632347263404774989159627430964446270819869882200264582163126920371822443355239955313487374780490646290242247402759783396165911205124133298593393856188620880970086271636242143032170409434607957387729716866772439620115333558508593870399191372749744458991729667343835147755462111600927247278481907973695229893432455744587857718673801020818924008907164831904439020517244312930875306213847986884916350913519300903087566166487915821181081743998013853558088906084616080768316153043567147862327054284955876748249076381509492867761570083023221351518628541174611820082199694238867111895998604821774086814410776965288261306948577454608062258125633246810949043322074466755603952394636960640396646406561219110752159726907222370171015005400962497880511495286600726344359003840193225826787485856107190456951065503942131273950070510182711279595147605887270508176617765080143753350330835565881357554823690797974572484880336300777388022616521259328897328641443381829579558860466238518450109249462391553700227267056785103973295209043157314150063849608752205694924690367393847036670404864668744737493884544970933261403276653208905709679102627487718093645213027793970100493832326428856894133531180715213770354475381996079883828924928728321501616966446086896876559883564301026399694987982083389703937054158194587212316940289174368645749554237786134113352530791302509661192103551459234793854483771437999530377704365312043357269687718538286390992582294578117730757146707641740307894510947239793921036267773733122238747331160035959896828244412016902752507554587803598402137177230463269174621957488322385575928423627114981611542031215927423177527758765253289423821017066745319474635863447657042619872599487525123935215914711147117686085895876852574275825957537754139940363964362738878053086440888522798158284736835335662359183337996581775281029554007721828600995081211601893356215315513483522061669216817163672860193941559578609146658475549735207866837792871015239023855294935854008086440340053624122148269858975980395458166047820566212337659567202098368801866641760577634459638402898948887859314606961382596970039860562574245768459379217688026187988981235358984789069259080595899224218885044598311965039078569517187010376209939521560852381070733316945187835257575247705025018682720301818825074396379479320311117226591241313086660010362384169229970873495952706394778135657154849106752521031682871394423409581974422739652736675431191498378727089149317012674245388512124136975815969971443791407466331564755903585132685102625375608382342803264618510473413786832967267213450861268781516237161363460258302809154059254114355571442614452577002517762175687691393604925641934086098474754298279794275561672280637445159322567204554332848116660695980071499600956268830190417511976139858287288773752623608807286632514511012214969343836172938187020945734094658837686324611947218778730929322951630369894283687301903678260234342938689213705492898853481426941411644140979214236898882031044206051508366267792885847558942291222036292523243749318132539477484454466026793044821119105769081216603663315118185102978860923337655198169988549465810644274286786449917630472017852807992046745010876366403407357952229441318703576928643670644195457290864502611542871197751808130905910952395574384566754318421989037294101249307883258542777256320193870381712419603794163886714684544386796509419373876722425358421941836883259323992914544280361885204188197365149948616160883113903081103031563846090842587152996729189447518912867055337200734159790093860368802201397872587602734105918500237850050890236741532126254011419811972543136787377974014923189484441558984749807460148946806960891863092596343361498724953205126124325625561526304057066841238874886926676363459377636778502969343970300766147699528780466068267639044682149605819163081764871121110031015867796616877314641731576236015402451402774773235983040041363383638033037228225217534520963149346677971013112007031696441558586032830401143226935409226720882260320465803983973389336886495916676658017945535303557305673815057290841300727536895009233881848556306209990985605518598127827413685569016842730464406379004397903330060940917454589495551608380616434839528395885863975925748112791676828784594733343140105897384556956709566845456407984424844441240507159879011070680833841981415393280928685725155049017748986809570963388667822439672983902991983011979352608432202441350941154795292202986953000998560217574885815267823410296675975041239119919845506934003139396863658898585477188643799955628204307866466690517292901681269659035279658574542510998170934405150597971148979574036009972010444176452934168567323469061755596659331277954822146024210988534367481993509968250290181055927257890192708367049160597734352351614649847605228774927182764405019476849896849900322306298612526276549552791921989163484981907332188648268510566268383100931479986612602331380627600382198967741459374721596854527703267743358159516628131412983865313427669338958945400937204994113757918410316508001230061521122220897917322240711422641947827167641042424984469099759977631045093907209381943139457394325503999662626040488286810225314541195873296508550389587425196239904854273948845601119642185630596888116414232776656958337183738622874197332673497875222243518811913327129879080668771610852843678012745477354858226085872156427626602861427190286691579475400763062513555837108709305153792600866831082370761492896782832108672709292571436909508810181242615255755565114065773566191486938488875713475314278930601057156391089707446753013091391325155020458200458202721727531218000054936386390439122696703932253540940202451296638700300345362538784769993245398559333946994509557885578549917293721676805050740042484396108419828064764723774868621621812011078297143052940818120603115560928651208158390040169828730586487385210900744629130668943048172225660926890120670722355805711597770463912066852207301566531054470089784818351973260876807960506423744559580989047596521886430229612729038768768603843527009211913035834705037565470889973754394943856570871794853248620853619210520430358600663378519716467145319455621666860344848940043547806278786654970041489792718753985263434136004467217218990307478660035072284448826782271344594730614520319274332260013109492218460759273935743332975800918918248468337959559136180984133891113447657746882172895781341118015403265041340471346299464883043896554370966109942796050451540544581281121979443118988250667442593052728721448337588998356974315497038153047679623630106626935716269277062201763528989458896610713951175513981536359702106152726856470192137724210982071386234174836221805937882171843501583072028879143508270147427146631748130417964349183325634320357047477365430584768478121777287868680751037298103915804774749183231079148216199534473162164607405218498066192441166887551969896121973648564156373098942601029553670053825671368300828553233672724515651352584427992748197222168413365178205753042652358350087861560184565702356032744886963797183041641150221330403384582593240773707448990729165704046917196540257696463943118414223874132450456220858366775099077821990581660919075990947353515433460359754866586794480801137593292884076780463071897240804195833859055016628636786448990745255134358328227994563216282951774559300327011257795508880194739479949327532233650008495713231236565450173266465880124986915213671864809730687631111040705144974776807721711924360842275712348067335993311055878297250553064549990399781012163148986905875881904178016905371775653208992395234257822194367866896042132631749178928934925598708112033217428282242130095390247293522270684738845631106873732870817865154290762328437246336711582999013221735004108123371250358734473531762475020610677635379755954489924336047666149008403110780638819790519674891140352606233586001272883310227048789820865471698898952935857986711177630549648947295287956570705065913541029486871941918895608565716486259316677807749159721560584696423806130782257802560950458803694955178513870348437117085920899104677270190058838794065114063591897808858002846323179593379587945914012868072193519460231218603963574963511995241017414918031620212789988071957535495661096972620763038649188288288136277969230091295928845781773148722430558796602582809876343631423988711636437548149813205864131694165281787223526924363365963736365329707843843010942980494301859794994710945691729631606697984102210989177143505246912502622867094686672791476150488225375084428522119814058550278352764231295394036556970901120485400046720152117150138893677824754160846278165847944239361380967168135327326935201069493321817940931586386316810930866699375540361761781157260582064336009598446074825264907458103773514706186469653563235462301635084665778955645031662255432843609852996737974258392052563102204488645074630817497760470115500988089041074892251148682484528100184821653094201819497988124272392085920704777746200441787868795902592219304262100650134554971610299825852216347226745044130986280201010374955519603828230399659855543108722239444614728419016402102677053355975134517040358575550487062537480577707986806288989900107239897711056918811242837349775556875635328214224247325872305269359979622596035115283945552889931109790027754422486600313336060476708733718397491521443879371746373629448061510694650282271788057457557015301472582697047936204559828531861066076573804802124631588633780611204974604776406925829371123506220921147890498929138716060089079948048623798254393696569132781953404771203457736780769646058082892702114999214915703417491588665323032091260656221758235086830628189049938018215796370075403244373357189224528956798452396164103844138587017709180729498648289522983810288119900701207212592429924075719674441158161771806017471091907432807227471096606919724462563647198567560579898923755974332781235501977935546333086837768063429582873876248536828927569277036060513475230949136770943080571460798447355419793487937063861384377931204832786877509488670654849052199131177894529651152199872578691737436412313399058566178607966029794829436165926450414772588972438265129944116662504186199670048622370190974481312089351209680270233154453312413143379647315516863545538596398552407212498991173348473213692805066462129290064613889284691737894696235008004415137207811908158122434209747447380023125010341013034938439891136944814053527753579707251616391199118626010359217286898899406960240623376542736826430208094089828840923248199372992820065618885408641662790671116942455556473914098468898718305168360763211336810678787476386271664959832953196317755934731949421318914284817564557233378392734069324686007432167020757029973916968706511975268644041985988686685188864712164539512179610452666571843262707732768899708032507336818960656927499076505267325019938346974566668279322303916068468002884379151343863867239418387201547576873279425219390658596716778116994008590233375994836744571775708459666288603917490418647587242359052540095430644584786069841897391311336340573934915446717344641465316936289190767369128119781164546546267342849090530900039907556647266183274966715036299791960826042508199824995487708625859044230734888889126636809869480746980455837049000216413029221987404078471764694229248276371127683616480966086117015758865339724688733073599404462807893926533840817974104638075504599812524828411000150874696752178870305976207376843956615947880083200658846872192065858072853741156197271958585062818815912761228741312539866236131590957581709241196110617679432103796764629461473159877323405512489291280416060612850583515622167614028418045875584768044825256346529445944253184118672484671439759544006375090061131262437392326670874304340066852856973703935695700036229544054516371059067366652880015120133546172867512356826694100412100408874459338097940791695141495546796983575330202779566197878069136114981622158944779516117402366168441838716768957353527986635251324736710879589832398967656802613541295060348175887209854543291280458064539246066779043623045889725060240218634093428776838440894349900464025033611270849683547940240645865802158189098776203106134197329062133721589160249856268327336596477996910578281341735650741210709515441392955944018711677129339339120301281268661566651596006770709188183436568564567421693362894944541205047845092106632720317020946023228630196176780218824436578408616068713662902976697681398167820526160284464448226106825190875000235344700707562544022968033455767146554373674330577454541894193101554149974154957019586645696658466882367798139557551449268293183545994759402041628337384183594489957565710312647557414893408406342450176313813408230290818915113419555370333216682850849372707112845605662175470900763138478471006951821547407592892052982894762086795572962230589388160849887460372018573299294615210446540831117481457964098601335683260204482086855342842033543056029174134735292268553788126090444879851625539543801038212987235273545015159919147177649787781650606240737823041185886903564504612617716252400557133592518568476370668039931252127040421561484470454026599866177821379789671215388102522484248642297523106002427098623990942791507436564867657589441465850695184109025752634850607289608594432660689685300169177543593754795053887310935339060240839114805055791481058504426973700407747863821551072769489852589630780542374694289711842887048997894960971217238587409406100781534325546610571144720069425046388198495747599626997585753878033015177428667865724564780842305887900510035139957332949026493524768771353382297478145588808131198285449011887524837284734985675987144922197117784205914934882097193952924165793775336325661297947247360681715810146242414721834676672806151835539125145064084964113099082215326876130925557477084510024987865565133917855928004175689624797512337677799307272051051646836253550742185510221753406306275669988711348574402792445317858540332118537394593329488340546792340747569935019234085108514023922987729153965606022839909817279365020257908615353833941893221218700971173139162022632051644978572207262688643028839489060783613088638925526623032008192997336051648131248010641103105606054703279526265326708142650138876202827874705978266320860542771211102337213445429782286119490960766743967699326906231873745360780619545983094078276766526623999869711909046670200614980131905129162258409644488505149309371216907287496142775129121328622658860129688876262830951297031761001280418698571090946892781632034732788648403378037948299850458378260608675193340248560736224935630909927809863564239957054168486189323947121985388629072030512197859840164014757016565016038191795461238059756897941352485417186070524270215770376862677408445185715556815535691277540840345006569786799875306746547124923249875647481588555969490586916584486570342680115693522535524669813944655175507587593505938173787661367855305708838321062195331840502969054092087904390536783564947315158044800217797228800442860852371286802308134313895479112040435063192631300163261642304503524812986542232679997154359067238876045611877914751086448621384671880494386027745248240849122579869162622390032103397093577995161474902619472294535033626097295151117992202075166365389619938045050635356041630363651729773583235645003507991107553368396553386597790571434888444860625886610546419578210213281021793573260338535806275408778923582861246377862922001051427964265689861299013955597799485344043624535176700187757700515543625289583742746505793828809263109313527150994374112471745907487071152335360432816290576124093037260648370563206867692670851958541471243386674900636429281603556322190406212978265549328031441515651805022302861475707791629233866950186072685892721695142253452938941637250160736098134230759991947688185211086293138737206284176012190439515496626638026643746439605853989444612269803769258267942270928994776898818919968856280513015649077433499782441465809507416514150579937358762734098318273287188091763957463019308663647577769662249749844754712285472434665913750688558542212903061555510637173943948435951926303507361663924135908022800661050458806528985849382502571363164144940352770010212215198954493237589649351992986610072772304835458091110494665280349259441192588386343879101809376727932305483742301363224730769126545877628493961343063934364295894211731962284074213056031719213949939561179155823301707185172454120092856424495498411988004008458212716210996544519873131518813893511973460911284628328834505752245513921792224984972779835488270481245880019187378440954619521124071758959309650099930378653436115036031992051622582330675385035929071651829389683849348173487263049531039128850984566259960675940377995360035058779185190569442577815636027641098608060097252056902194577159005334462591570225113851122081743638392523912721841739028652045226411308483685802816406859780941947791402800654029859160241592071498804531120996837019052137195864538050715775343509406545288179247817119122033057955180894868771259375529510960646800616743886264641680025776563228128605781503433496351434593781747486930450762290270322456923248366616532100156781416777811211686929791267802084517564124806028332973588399102767511438693772814101855262426980208076550695231879464193556553810881664221039421638716615026142424293482552021316028552851089909317288775621155084749352052439502973807010251429113997362063861198648156079092383655837801658600600293555768370005272878468181772905424589184662621953594297717395114180178671340993325471831612209187093923214375349447662420759612868778893354010302028748581357845668780083893410905032512003562966041501356265217848983591484675462849870052713097194434637666753415205359131041222515064893693833112871837770578344822975700974269320600489668244300802676390912824113006267084184651202339446485644124492433948980002881678608499729421261197940094965313297464789682773459866473529221022290978630342752241397504421637846940661747524611962998457755590292199199656538256731252390724376312803155817365720487115192814226186745412969548431244212164099034150196648516560179231165641475886615917153993551128168836104117012695854478036478550865428183852511924677677860435375806173310667209426732748968892301629226727400217069551282225545319793919412226924623476336148726892504680688946963647262646124222167171485588375733157368025952202531667476307162849990080184737260134614217907596947562366865784684917399483268636488372660982115645935773803758106485473006737393540502330464245846539701515845720522704236926894162447344323227948893822421813068883165450093068391326956243985611667621804933410821790044344527635449418769941494326023164619403677358210454248299240351603577777623967171465372286875534915653572650748199966810005390332040708693185467603161284038704031800631465323761378021321512320612400863036141243137251266349899206268860522182841857131215417094909404170265236688484975601422044839742443275799314399680542246993446448144880355024978890069684968292293593526174524234832430351780554147420851761199634749295809235690644250922572081095213240099802957457889522083124905065299342454128816929598066826494750943902872868878265249030187262805427430707249499530017436273067689408639393423234006817986979366827048319462882048607365174121699642796486863633202982892857119095703215945621452908642690176264852313982170436339619831632154559980491254945600288064805876294791070581466728582160218012688763945309555583119748075094510388421604574292936363858203477458922157406589751855105975518402644013515852187294457378054318882760291026184243139434644270422301087808392678523323217515810297352304478726686337488950459405598293822043926955152120284546887317917211167661608954962903841751786176136668844176048488349695283257106230216508406915819178093735680776509013975637255591590799326515367896112411199841319376148940460811667057057734646382014847873050910832216597078673397354039453905896497452036086184644292501912969923848364810538787382596135022836996735019123729350688857193439079777388773081072800940810518554929154856317359219427426199887675128495980037195517508850136701837444190219083524346011371333049754022333835749494876826935438480685538904622292898776008161670979735940962981571112461762750808715415498809358159242552589263451917573282018987324520011716313597009895237316103470295683596633056099602359962600438645412780542710639785884134881632134523213278071322673723200620905350054226643323375477699267717016009705651394388016892162237123899085464203684790503674193948260302451638332755499753761145264998689584275234047344976182714729025362453379400661850676695582227148220635566225343782484374748327675184110711522337519019743691650337413647194833519044728746999543635650271511901266638815761191104904894494410683459066230922428984974152401585632047682720481666500282197405795487802089884833325691088693519236592020069591469917949785110740849597161375594332605358792368258425235135122447373432668555485832909793501161051302729953844517624315563405644487711797211821535039435852418207067983554352884695425855181167470696403676119276873799239566273933283805451215144704355719741394978916781792038811005242040743503391809851129971550725802755535827568551095307288984559087740387727065275196511961703365615193492769747441508911044926332000542195819418456218531296415467750780314393123182892062768704017777768457425655529155162286768358474161730337670731318107334410372983894205952099608497215883213744639532011222043251091029490386258231284706050342051452978626056894637364465851584931015750336712598894498796604830638971720070956339531236047920533570635080994828916136406814994850396921162816455789237387974052313808358730531388480357203291659977676994218679445597360559696446046488026869375009450730932936219696232395964577466020188112264138640352404134906182098769068487818614411833564566154479098361275835478403869180769517123057342417638179096257560977960579949270542583084049013760754957517892688990220279714961191919150188522735915502067900890752894131990613261883948894894508631947565367966699661467062370365043563309566306966663684627349097347681653156196025000496135210497490387569773243398916754348230656911007661930268154563529669652130447340352969418052166387999285468656341424837111172459659962582873390684133631449464317009855787529097553072958704539177659480168779541116160384191962977835155843556914185601705034426519617052741946662283269991057849731468261849499793679714551378343740426995654151064088501279796929457158114762585458288111427448845532860916147435697038523519291020524196839265266681799413445596475898812208005931186102190776578976586354283492741405700302707899989663359471191013641429988412963673595819053615761066605609175759374552331431656190647978307298847469440797241224069338158888746943185239723647775197302313377674589811617978582559437034150400350013903985685470917598257581775394185293713268125979974621014173451180078746692518953527443950080799715653532583163799769105849255540549765829554718174187411275757708333389595448545163183912471769464466578424390914283840756581230232391565662852464359523629037697750393899619181642458326458164796932154497471665584822844291207177357540589172422878696558500707524707254450972516554593438743624108236251752500864756575241902125307718979888725779525282460095658576438143907116123865939681996641888319784060675740472248058218357092877520658016021948383542167444660549835729245272681837227268452547638619366560279230890725508409507974872148857251574512649808998588570957186820029021336920145141575805909777950528849076179509080248623093207571988521819101252156698541446729028466252677902004122312035968102842443884827006034291463545519301168142272593378523555870987484343856399485270014554982159522126263412102297862725773211452658193827114208574295570082780780321755999976840425632542330320640726013127895023187345534407100212973115321166329090427767507892119037429880593249400974697493852343019208055134327331159018033091014990510008018484893640481942476589886562307824847260518858081939339974158272465462852273515021015333471102423999205828216491623450369652493188837716882316242065441570194702184648843869228095216009203223542566706955971540488038824921564993165857978338556414046357919436004065821413623467106008497263040312744725291717656253966763706345905204781684780695709102109697831766408757455047725039169084887581019930181169096502515936383005411255584486832777496128480076261810198379318355504659089075999071246327675103696813821308993617742774389138509487445397685715095110544115094049226299189517702883916808634649661354342419653957504042256853011405852965481192524635881377201056311216035685486027363442167557856355978243837133481809160052607945971749342441037151225993247178208511879519565849864740345633797576971700090239703330412947055548584194651092258473080878329951610380424520818687518497377269155270168897622463424176705351280335728884541737729494981520463511083974029244561750802987365365714356494089988078829014373342255375459599224856539666280483917328315603189726350785335670093188673184454223134626401609495642218742293319056700377731223693555384124954751798227342221943188663080561472392107603597284824026410335049360248146157849062922212481100671292040228021123578091282963166992540579025877880910148321648870052680032579986454962918233060222446173895551439395779440919160766549235819067101181635638826927508227247443342545443961433329145967646517229186632612505628980192194218920438334275201919159982677963128288926366232695637191194690635717567824038299928509326869948173204495809297127863165044159901827167447677654971414212509301333611262501163175923217278433674661940093789732868733891375668381965545513805314645029804010187985564574457525029446226494128615226189159262052077368273076388141121891818382322692411507577952224984339840617603534461637788662904171299546994100214170393106042795182542230718399150658448292384192299847813562502635963035638925188649071659623673077048079892316433942551769509394818465658792540501936256139987097689524326271406714460932239788897857949584427317810223183463250465662620384726877632001724800816494971051068069514528934532590218766777468486770241772757590247816518297131988120921211200924167931291943166826529979011502498269391403578280172186461255448105313667494828246735399646754982227116636908432041622528279041947773328399595480558687423008454888160548625453983679861316683531072376865469027567168386451025104996959469203216884967769566056757708581207952976765348777469872477689746541475788405310726435586484501607103708502741096211922135119496934692944292181866701727104550791562412443965590087423831472675064572592022731457423150878535885968807742322572831873852323395557082551559551101723069137895410031199121364415361995862383013185439662664346346396537795335569909067981938501142515021928822055766384833655674714610296206087240580689296792651941225382501008153462809910760971833701897001807193276794989760446293395000263651218600298698837737991590189988540253261842671634274614566431384770420640619470103298104178178712579047492837754387111995678598145832169668874762174771060560441446908022649711735738456261294678709705674044293483146393440920458713696925296852189819429259248525616413236977336441916626218612795156971805902221593629075874229828289082215088371562675886019426568709548152816055307499963509148459905442701328909433259710178042933902159515854606677394167227643532530689006217655686165211442342421123344640697415539318814018484457183182513414431706006937798754837269346934791093456340603066185830409440467499272476613181635414669708464136603151226261468238839028291067222342951431390247911872943703200824950486264382859225932535279041023942120709066703465696196765102158668621761381075364406558510244215079913194038751812457702196100905595989735357823528391577258421031665431614885588782905897104999967221002629388744827414219647414737792498186801117803116777584339037602743777120727633371059427646529094704327497070814147824102558335632488603692876919426154647300824732964031823209385928065107394601820324109641854024576748286668827604343731682828715673969978127320217694992270795308292384875438123621973319523896023374353043301947318526310521767871272540190641731613412822226130578662187573063390618977411529035057908716987354629349659615159354432095732641029758910062104990174913977655212853853880335301191793910373923375661251185458396147050585146127371712893697823237685709421140807026862355815050083960185509373706975438811637919822039104262491357275626249916588708427019880379238788797877575437412067336102725604363594329434419107775367229629595220168014910027219564740690788234081748661161177316626089045464635540112565870344518738941873572934216280212088736715697967664430785639821242154656090173078617916146199326910024197534635119754259507537205721489501492709842440699595978476015800762065087227312063378413127017264907908229786126935939593287607576619550134467824171155604744449235322258541743273340307301417299355487172293977673187200433062146860634155057526039806622556162647638460017240414529061637082426235075986965680951539269786639945244157848995744378292059092646226150269138169594074415576041318914997064037478382078334426738249618676838456063700793147391148978603815669478995858015156215074581527206566048716483547470399092726579477013061635442607363113730622869615201461674055666427871808273063031852671436101265400244365964910720012837717188411564050845451841986946991265842843549773217308532784088950562447769196415994759334139473031083077560454453835568245687896795705012778946919299674386641344269785236629263825848986691320794039430365818932667373184693344261051934456531425156264765567027075207562553188109626075851551589137262302261214974235750310270888313177695676162070691887813907952123916688508329236402097258999408982623205066338808433244401565911699295987918788233596898987754505527566788488745376722083731420852015664964203188330316389943840603336897446228030861692249329888113685516644132499825968020850127935779299751647995097995089745108640601748901507742222644916797201831951950402812425919338783917104261109836655129377024729097874880183785503170139841011406166619045396496800132562247867744516723743367171040254304049178886432650274698110937116051772482276331379678647678712213657787327774451079844458770295251795694118681969101518540509164700975965293909181151001195147316381653431874234774564417552497600043831473635830019595868932222818978794340064176011606522970571951457401745776938475350757616625639912562275252891288351054125322688853159422268530016006065012710358155161828996847437598412002983322697770084095262853916892306958252791593509379016515731177754423085322469833723096869449545960995735798504966396869637215767458519719088319654364838424005687266101524432909737330128925713278652749438140048107300566103380528339559179955878875871407204889662792970787292172726099052432691381122709675762214998151904752911801089321870459098990153380044077690761385559482210634467719474995842551825304583527014386908448951687428422811949192311835011671049184714918718992915735471850034091567541384764016732275781664830710520253049029181818409649369888808147190742522319256356775736856084405377579783575797467210984708053598513055599841574475863699847138617252451998712551844922063788307629437127527408101340921901267224121847107509272491177953172253558356535900163624720606373512689342351650431612141432443648342933024999878196931509043322982248981333882498838034753095097325185678457198717409813311148819436884076832918850356348018330702648525865429665684484703376135847174585275256841065001906056959359008272061228929083076596655707335011646927533396095480371478390152125797938839962814750586865122755345428472394012823482246977962992469902217534156365096121103767572828755882779790665153097380700838154385225583972831576471266314025465246079454081379449690171384735405390595886087241132359640950283830746270491377626576435141062986781933640510951117183504521673256070992993989767273814908315667435004711847732653658271742759628094012634381909400388211333320640265930623462596778989235472063171662561530880083281187983593589055580201753628847811360632717507527106912446357507916393975456896766950368558410250182614842808403073197069813146663792376603649755487644071177758474793197321583659901101102090994883012985899152321376127946465482774939086074640328171955111425422121610096939428629966678324786878377631187869895390723990046143725273469252938250172011307882519567743681912777738228264799377289972690425482718006371074559895589460664116493000736687625824180059992679617602340636587198735221440228688647152537319212948466245570216844157375627085433628585164688563484953726415238700346901462718950616511861124529821181491193935850574133586237338203893102320252938669437645691582564499765727885359936172849408479733890583977166822643235579268728307561296124359803709793620796064658107687909491003488129009283953703010285416244079819287347869407174868019654994667006423360346025911375014845400556915926441895803728012950689141848531656813748568758954108569463009740759568383983788535464901361122195529658694086583928305570325837604936212293410638100162630595871381285037635341751530643823462010258095600977976918458648332967543046397964582854339307596945266229439946668257851540139473117410922150603768771361614463992800612216773912847894291564118102829830219772446261130861738409189686375758662592563752036687723646314462388911412843042296717152645324190881561435709796105890056219100750666360863703362748416592487251776574332031044035513971538299778509717312963360118014077135206151585170764170514721118416599761678454575805270511268089480711124378718842858457977414117603725813469537890806488822240317234111957528451974554710215333367568179953610605075420408181225940357963170502154619277111180977402147786177806928133495094758507571594567021756301352908606777752059494437932132262685244688765467564186429974127399789664633072437377223170599683153992336917650753411069140657315682962081431718036845779972802384805178435498009356302830051772704774815417246432063001509060558343772233281860679266658956674691100464182021757685211903416394645731078788467566599997374458562579075153911282344746400565031262517429898315191594136546664446840575407581970033876736184946876883925952524230609383091182237233264146359999450115983430958796810125837177431588423453320865530198547671392450699568258063519436144242673969292086661994269131315956126661905903860443919476384579779445603050020526851404467643939361151841046277266751560178101007998443370376785975423238787691525951426526185765647683918143831559506880307393409566114059958012213365388038781789490513402977515809093390395716072507830248183273468293113718977628295659385703356758736160957705961774906307077000548112567590393130154338706849508518601463118728849448860873543866661901845521272367947827323268799862794060051003275089757932481516921872852882676325866966747628577494221856205747300757241765486468900752813265923373171342361775628415953167706441164066758902136889653626938435543267336679841923411878074211506566559687055385378822429099550140250942666279632003936009827421610149210598952470624923677719901960158107739855330381885121359612867741981349662742402241785930743939050040975518322850709722015009837599564271021677580530520695618827178156589605276847082506568197821002001338307875427540145471908763207398343568396152273365098990193850488815302481985886389497169977543487773993480495128606821360466648786310989194255057225995741902018650946583316121869343112892275246107214252499976238987721185097021477943816812446862919812582373387687063186077605709475279024932389131458029591659276748066554390541063906924139391333606923538957178179711648161125465606494064621263215668739023209134771842447246048317103557316825490708390057333113350911491861907966447423556747744566009130388790173439887729050376539086400606999285401452747397622466713908949930647706013334052084109313936522200923856377962825796399318337262847832153042556779118311019907615632813101527492353659914959321342667376215142376294704772822514893187028894326027194566822517529841178375493424764287687197426546996566299050770232238118406412190157408662497903737269874131441305709112953890105048491146293119418957265823178028605059233466835462448822514758378803568554870312046699039912125399648744513568421501416083319882236320101358918354925005691048999597571144556477491946404190485652654969610828983084712263263792727368979837084160470521134371470613595468647132150649147496708297127262236385678478471381323546788390907860206220222208586667750114912008095855684757840180580450432414644229920755620501972948866830443654683697284790013696417250992082851039594192180924972212157738258016396485185762853206461028605785698825970872790358245774389150658866104806340722712495987946528385502198738034430100518289613000552006540737912097890826278096156541327538272229604286472114778451435857507557036974939512190852874298441357778536788432191371676905603346194367539150476294016631442326528438962781045208040733343917241921564265715882634792691492791056951663329147613265074179172308659546502925706345579590870991713512096121246350828936038119215085979419081922439841887993429442434021881944287783161087617404543497145706959002989123943069702582251970110162869762055734952848563814795605424013472909393060903137263185881276498720760974053663934010478913835022069165304650303559224781450362991321493848807890716435279337781424909022960685440465797077673521043370979587122241580213044640157246037594430501919222380750806437881026626847044617021364543911192969313843215305448219125615872596809053737536196545227518744259523630651611740478785696454655164311438839387035596356276084119747785920363136210633012467182469141053060704870090778862837919236406886212666172008843859457272790535205675924816774957042597297904574089428914380653177078456910187943661342611595932702424482586910668040468240915469530153466055139289279247007259914897882300314740916253700305971715430079187093154777464522829439110152919040926278957626265913846052197543965262114789465891891806600701578236661566203818222808297472911228725682149449432563014326319135306513151897323751883571203460042337485685274874252877789824849458042528128161881073566484983520866823162129324547107018775558063626961260177301907226114190423061653651186817934647244011280963195884344010272832458013717870664437756370852694793500496142099850057397135874731397915854885890714986098060636985158646005081240725670967855492530565480784457758489173086270617905218635399303802839850958573697469293118548193641600151227898744979648020660679073618081550562046190933891419688164794834809388258101440405836829656768136344133609865753441876403919706503888035692473973778727673873155419651512833393474988648703174717643291624022285790103090859212055739821837463489876109025815223816782127095705705434327339710252825873426605143823397639785668431341768075299969518979905090187896389432877059626507407837358865467307151962801508577205305000119910417548620631464478985631951354910359738090214620142410492777516951724143107987528805780794496740939057269968782398724341441031765653441067537849604244723341279824328906474591093647708309388832059137147929630135119284126784462924393084322833524912345999368828374194269405174546348396511946794059203372191705450677004262114276606889069893717719523391424176251553477902105144047059882307255652312120222511531298251682079321866360650694339138806005675735926981887673557914778701876870226359190984196961339632920544235748590623688884756405836339154819557529637866662084426321702827902184643335518489151217337239665531060064329785635370020412747116622104670951200250395709479003218899176346313667720578047749669535323092715762084306287557544749630795689849728471705562113461642437346040792214662762192881183596121756489938018162598128870901171252381483407068360326957605567378931577242145444067037297894840136528737550723034876068615841828272956769903065882426009634121427467188376535491971875142024089161505378048507731452904685359881028971016111151430441868604768897299200456156240813584766912451369931800581890072430094143057680330123715386974505606186286445178795061719699479849123727511829796158627863636697284865492126103660423833066651099065958125007247834158630866309855816845931294677613350183172100564128439276325032508003933965020320833406631188327443532538862188957839086168811927039553669701403453397027355097449031709191232880817357182896872327518988214458498529312549832150688842091376084732207533204101343848278222675526286920369409982544692426920222753705432263542760884508244053049728271599928241523728464118811243232960163313245433535348475511026198808966225814199817102950306676561453942326661023749033296114778359072508966763178904664284668756306058443056163847733302399830902308323184753567857045894724024579160053552835729725823430169159826829001281626041601162282448967344831584430258593880572857094910809430065055848346346574552423564709828346248748857984187065558414753899451974092747935285707838258273505067422090454666521066561079028101628928103681623772253894150105834788766632943295530404839585436826909199352379126608522594776430200715350049709006264085095079354919630277112982846891236735146988619775022957560141872052292702839762286003612225858537750353285202961880051950793285034296979404156724376566648226158083044317045721892502631513843464817592286107155712408089457394907504484708164161653589314444419617579736988570681526613457034247474994078162302754513340571576463905447121990014455793201385798902511124782516283314446665826502756190584892588793205307248168225780206817348306869287429573756143249497940548462397083259879525022878556551418900585786675413440037330907308606711147963883985249613870419239593274065654750369294972160353431776273339167101811431584015264534761091246952838296431398255979552845052106201379584613832492332405575822976355022863700172658828052296269025888686617159137308464740739885955810898775487772514617029907983612007048683753226278499394581969482485030313050746687871406424337935754979808610626295500866364085621018300047719442945149325309673287427947945720221920062941971659823114232219464809974903456989129490477493422795436423402631134055543195359167879654884802469725221947177472152850394483043352457016251761809366044139964171755718735728213057480865338710278225963381632347096594047146000401023431716164759585521806856575153378042798630640674331032113386018051755129165403562841577858674400864464978598196836217722177177394163701287774966952902575006337191348493850210498284564326204919342025693420554437506110966231390032496755205798228254220022517295544914377852429012800805829251791706003292565853885495968637551842142640519341855511108931556680261372280915839484876900907542205061429665413857775580373666871535181467725813305671077656731174759209090953967324597035993785667351772760770904735260734792403818171509130855770865230750453630529249831462294917660618822964426788090926229401100274781848596534192522135581400954312985719484612079896764218517419320359821550831815268029553627516408936702300683427603104802638222424097788878172922152741629629939079894230811096106254121082014604047003959833245277453201795971769423274903913367580501603405295304880838238218135871240384440816510571902256168717244094616589249473541051579374578422317071032819236402234212058737762399919180950071946345729732527085119391734515100576114528209295857298320684550638741281306926344942236279744530219908494880643196866342919572520879053047436771909766451193477506172606151603228387130544748047924312564380149324177063198804586024204854683167997882556742838708954907903543126535282255159106512304269453564306431026789109589180980100338377336229474591081432925334783521417618104476557286728981608967372664970668268621966794220714586609405081620989123470846643987418475337431000115647204114459476296417296955224655726342208044095422733747258313233347736549197217487600188406712528538106855294018103883601048380889220365605818396824399098946967927420702398281893966103350280269693904207906362458607671549026353446177120885253664800054853104862296882575320510832158990898538914717312532359889699116550147598519410718954502891670396414788020576163446882185631789072478740526066137208423540431761584446663334375652193649894657377690308308554635539252538582164450132504148725828099789734429081161603754622650606834342759217439769703659299292815211758980503218744589777194114916859650835454342549343547245199536507138820079816334351966256744428574409632264827086363139359619986776806940311170569237482364646691950222105963034677657883209232558013777309119840221950049458255318182183617101495203975593228360264541730621441465455032286700453065278299027445610248048714844937263228087598995820758296420729069248129775454298144821374036342151092456929017297797022364688903624089805944554078538619954741841744689265338921797891171284901400214874779030498473113811834313708950606415096097476348421187909927107664518498867700405376048733369249861695361769028833019496536915779570968700102770995904829495912071479977454170475190894038348518804773877790253165123218393947141061129212994520340624432891662712650740312622476199425745154067532100999649019338491836346745027354988973698842258186302076097492627448478395254923450604798993692317508214018394034306231283130258295211442242988495265713557005121533973306112656082316256362825832064886262986142626550116513622866703008234243185151734578058920313792317920460703081764840576344034949096757943152835058464343700061518210430336555442967499839287014795673881810884989079020922989438261023660903374637703039005874667428666283440065618462526174575211260587796701425848725502523425952326687690299944289682467351891312523257133334776092172316333895368019436755020453668552295044289920172426906924127587245350973118034437622848488327831663421753694956437352086037551945689108055813234541655936422528934686794187251434052389064231113884790773299275581723813684268999032617251688731797310925368710768316536099675731142025715325647346249144928121116862045421076621805020185629785227253563301375605803239395809850507227901204731585495689474458173385110665297103784327859598276747193833057276843668522191864530727470755043812486202436834540628650128109418434380412278507800512714483166124133246013829529613834791441711966993284903597109987310908119194906969717610622907044540440235249923245935939377650152860214317616339084342036799327976060151439928062597723611912159038505414395145311241283693632017156367683141915993548054075539185215234703148571357027583681421706719625169371417457158841086928287585763215721638795172215596092502878327420636126652197846013377242963361784285005164384333553078495460557773328961694129675890047616265221977189003269210179316545561045776132130059711858114802345575209738107086114991717217911856131448408082416675865790316128547838104444859603704108434545537298216999614745718062476563819291132128613395888081222884237746739639323773785609927222599255908576142575916474949932698529982725875649316830410893976700306015227210730281747511870630877743903626337442739648795771350962038271547838207571167271327242597498620851025989210126879765504828349832653857369051662586003215869315558944119902160303893730508848608418110172967606181651809599107583202163376411942999352836397567821354794980469332903806678098489143310690439725425861381125081493141642751741714239505838520257128164187286858044061563218140483854865673453386312543871167195875276146516623665396152540921983479164149245913727337481261541241376570463212081139160466869098632930065114664754662216543977757096999551933437969026808117021157877427664060945291372859456465842412939823626250355432428665517525132179780262749145884591951233616846841776569434874725828968447625916733799751976447613545313227151708921853192112082867923306133552757741633117050352106143026567292629095414085842462305486795151331341980020019799304771484209535604697223322473491088062356385744834215818156023877496618372779639058029265801137476069892645762567574391617712092221368716826909235811750166272776736232193358660751924226359028160394319488239926751090732085644063613509617367573457389144610605692774717943156572174869910185994528797930763109086639904027476670257223678254120200394546534746675089310178936687639261335870871257550394716550769238791176963307116968543790792490915912483641601203734230941428760213553385903523640841766468246579852736727832706962857833338466855767077118498831127448022666467703550835546682609691695025781074881134543716802909066778716931674297609117041487692631576184156721307485676786090564710129182889115192577289775079278975702381198272167148607571450894206284189821520640894068926970283300899597897112048262612399707767662577983500705436257677889211088635230892038420890900703622329990640432325143171297103075653800445673382556173306740881486864787767533562370951603438962135334426244262009959866372033685803443308225513698569899840079336783685785379716967689734589340154360273160128925862778471297493205814431436121178214735731205115171838780850547834828635542648933470483186069361515276448138776308594255826230311767128959730297701961351204274356042135144910260340775797464859179412429239213384142721264204546846205616687797141175580167758621308011342738615107498147896057469391743237452921267246842544439827064535019892072050837923686200414858314876791308119688441096976760963785391160682264935778348739577086795448236628021878054484528030386306651087106614329414120328293236051882216742141340374959321321100514813456682057331852080335597706762755305826154469810694629302893574616450763191431684119048072999565913756341795560792648342831812511179044579227848371630083922402551322068387680669614080396618527730547914188203959248851205583323479981045328756985177083809292046878803619048763881729543901333850697294305117518134022380179967938823052308158228567471558701720096659194352226333233520520808150392199503389380468408488306471086417674799636825755192911639840687047831159794389959859935978765813816958001225479417225659116536787876914097576432578541305834805535332533193330065559259649040917632600098138842023543070243991843141785307974758119628986453618053379798242368260556992503411054109769979191643802589311418696060367928681510313044398419814674982279663158476822621768637596907923187094947131465618183528590258294607577102066820309315846385666417409097973591722241947884158119465142417741907069175293005123460548396868877178905144907746368879185986842347858426214726798241165426083053969955249383032177259366836113681645520681239041272353507313859853474717775903622091731514760322402067265543798174693603801135649593564766143056590094117437129114063343563007370319515185947847531717624801462983571563653807711727657329227924120007169474251793909555509896015656553402788576867851852676399885297965169682919596480140352328478347290763887167615159113276060353131568605557063813811890572761276978279540358182767695682074747932527475102038912585354712903572528549511224156904083940964746333473547613631505290283639517865176414325147126092738429319257000411424428007448880779341107766291316306613602539531865946567174245999296134368054573463486778779829463826025933617500284046049939059228957383183063740103664188039731762951794766124125490147415503586575315747161532193503261756024999105086060833460768250265911898115173110635551420117465161488925815825652441146924221095414613665847428642186443527699182540848965038340964603323299553413252861027868165146508767528855322654981585080099398304108613572710273186974592095377174489165662019952701206998334148376617362743704768719715845482769376664707067320902816158865040512914402091686627351356686324464044441278561810020846063125536553105031750239353527674917786981529784599337293943941454215462477165429006685549756584449172746792502759440206729556347133277334210146669878774037671221873007139177882934235253447592905325070391938170873404335622822672107173298059881895533888592038503444210877441934148028044317450605912820079317143582048457300975860204859111917784503669979448583437165010980900167689612923000582812964915191227745465548790361671455949196417975929860879149104484369332917607573405465397579364531321941309414524767983405123542934348994874626688182803131685490532126078228609381450793298636829555110613251276359050164942099344529799423468748175245300266552349306893033755302679495908919114771398771014118619895720786002295295076299496377037059623927571853508958729400613842883042669749692083008807924098692065357635663501736126901190730019471632579151127863243497295034429543228022219128241658240812038823370118896583435736243682610725933369309886732883032508654765016097231382912050514295662859054098881607335536619488067038642534900356323813138835965577965303968407699171675455372574447507285862879516676521861282896914314264547855183123089401505268295829583951741892511800761047063794220289570942384251430827678461932332476666610027709021649653370587349816993375801520420196542245263274720694809181588580075695830251557139594982889806395734016651943164447358870442831760270404725322205495456990436898630069791994553677543039770991671426076016321731386736455329300651251840059238544668218491723630506612633033937259481935634464120855306392141859287465743914899043257096914791603392277784462985340417924643894987606194999164651859797786745875774206963859859437379240675896891069331658776781561273896479592836780291509625539703157536846179689570645110020259036551209402665572892247771898983071301687845057390771659017040759094252116702741648902226160089696666582376399773007860523641637881999112558031022793120608311740234827786838181021181240245274198279579802111552743366807009739060033689913422395930870992044740166220517306612797078898913048498429785525163763787442960630090862028445184317498370647173173114030411013838197902790163007989805091518943270639082061311697059648213369992965041893038970095601576097744540975461917368674266797217285147830543539261789865290278137563926396349408512089999711076206026110447294560708248095546646341275877090891066975147251702819870910544957412753217305973730794479678910417862439128757234676829398457601428260780727553848787467489384479182236923797093065971252120878003145665557282679346231743207650104992588441979927199735771609223106545380776359416842338703911216714325369681046288312860890813320106180283149217534818648355798766073215584868701032640271379078075409884070737766208295709907211974001712063634025914251742474826767856901755503899796282299190080795072796936634662677564324848313973079538942139161713970205153498300227034666051233055940722173327068122589757986714074530506856015826631886374686222444521746415660681122669718041478303560875169950259099192894194765459443145432748793007143941045832559714855986594977015636594975497327226029483116382882391599531106083553983028235885159877654928055465260903846665618213891720027084101629845765215754597718110893742408673679700268054675459881837911025766085431049478185215657126542079463203402392961626850114028566117780797954126673890523668794088624793350984062095087981804408078234490193515317880467984784986327591370125660229417656416235763414191305655445664932144087497937994867373417204908663192310647560798893694677693357995072684208409922222088641156981563021809737662732894839004415420445235234871289481539019164694351013016660789731042417015812439619218512576833178423651958382672482042462946102498093480514000759053884455449665741385525161288337427231478581570239451014456543672642304357014555422909609239572078977794984222672742743872138455845701374447125350582217980480106639419552432257095543939205546973580022290282950484400608222108282689341104799491875128552551944865901872508715871410271867443603067448910672089667654007680408985825286879737253107849005013519040736366150143646617570497731228048129159057816578721736189527805297890215746731946644297122209552647332693762519806045727754504910820803371274190644736530065364367117512718126366055560825145973268156408463061582593071509089347831455163365243688632380300785951397188603002213483409696265818672894685824531621526933372848921998557662128874989152358409225033821127960128950676613053026946381614935046289340743882741443135268482147881345398014347730635684329133671795338942130732784943786309574179812163107496160466985176512184647599870572547323953001077185298923453808175558671585816641389794611210246095324275731312529663310915041169559855379223098926687260300232137361097021981374447442409984626651127952037084312745632132421392316764174051575266053539151828247876178253684526374300887731187989013116203584124442386016027201056704932871798276566659558226445780781350564994184354262076826360615589090976849918194206528569449367394026616620824660908890959600475854083532285573704591690150861740833290056204908030580509314096945686108956457200125193029292161480342045406965157307165414639116804440137186118437472353613350154370591065106010076786649345982524519706111194540659094169208686837434918913299784085863361456342741285841291958932639922909638456542555673877663276279309486187600710620894046236706248545318261995218979926173764670877412509281400275802809292046326358618560107962964349057636060358595279533705030263508943866490520040439084332371585620867260668678726278604902848484036287301124439482015029824574716874624557484976888676178372605970583127178338056778367753350492718693861404648643392609328841216866380436448530298817990797741939195821418513360320501540995140666772017499336866416171089440753755943110044026950084187621005153405602179604972562276895246882857851042931810372768042847633642719286253858494180632788204342914305838570403751448841648097908774526447182666617576897349371202851038349624773222132645885977313607509837938718866124348255444516330444026999974840108221333142013876853588187257603556608612687761489906308831881475926260174290593305889603084356201261413794507595511465472676661700388606038094828231103742072486708358011528204050430512134495083859583634990853990234226415282091300555853807714627338912862834437566177402274604588099180285249518292961307378681350277706879400096983964624949841964947197246173806962092255027401091631390566865323845330774110746049856727543009130325091378491340659348061652914606852282169750894299169596848130914472346818630728181341832932968042768458211478457010443364170565338115234319591039281309491075784531684648673567035082505162311425129455804845478759133748334357606182422170745908211829648741171843796230283777716190945131062872578274102758745803920584226581013386215965932161323547499861744619649876647792792017783624211372841350072931644673975413608498317113962922663040746844830296410963346043299996078382773607721033682471144510385435655510511787238759217816453563620743471648191290158588377986292647055895830678166547409664601716870258212195237911294059490840665744752189638442307667646661029369614401639137091025897285796230318617278633250564879554788821455458797325899155626728526657592836578146872857618344803472240219196807192583933454383859735071425167983503263864699349429356583820558114003258155647852429365933201595905401827798395269681095327788168695159795745742419245996087156127476571367938653588817075320846730925350712120105351293929499992116380498318153138398822579278388744412815620595138565573729921380378960610261849544040026142740967140661964022183985559880842382979170718482219239812636722540890370022650672062689514236579503824751434921681053719564828208764123456849447456497163398582910761603730671309202843589521735355653296361068929384154981368371044363628491629336589893905041177869186605738218239691715708457786401679284044126192338865209793469506241646485107460311331362282709096494747268388944197539101070989446557445937274616000323417233178259211538835306269077861664717197637772057042900436077468384807615694592703935580178728139677318970421540399710377268638359040656949819606572758044332945358491937010355719881886846999359878301098849886643037545254967699393929212330029564847458879890966864602263278126799924153461603218711546463125307992366281085695749408797412628535486035772834502176892152502377242292133995892801282014938945812423283387448611630634171058408567101726858303848323619284716282261700011885912226168853749121783852511260506992731480036037211318055705984068593109364407114606120506573894156880610058020990541271062565188550944076917416928935603796350341073153548572021714724831762482497917316738506921814650638885032031820681765469308350566872864245099926167455147052007181026692331519920038124468814371995427902936753094247135554648073350725755869179305824106635798265120980622862739593882248948305207319451734068019616627188742430860145212175731155813608763439332343460498426572079431174557940316035449936840214858368015604348191375294746343369434034517908495487321029926822915201000514576384972121301243821983907832945715115598523460300034975461963577355923079291235908105445118136965250444385145360942318061805510184202004243758132502849206459108622438714222967897816392625310817381417247869929567710453780019823718896385904496330005839143830233549287985917061605469659588598890799915168292146016821678117395904215637927723526198163695867572991717903751321796094433366524288429981502120607754998584880041768782789849384329515540968286758905083600109475161791370763941881129199500355553443583803455806141457992906975405397036916152791041742812908895101361763911986460302855688265557820481114152454073196322440235928760348659791969536050424946853491548219434201592394023284612911483729382521461347858708665503683010368719510107410932768693160941030838119963470987679271129895989772183187975563831415183603321027741864522263392271644572144910920218964250605798079825155399066547670058613762788091658060993887277841439173739027025974917863304255810568116218949923112322165840853890699484367943962344803735611133227479326214509507290576032873868707899127949604159021775227713419453535494855760857398094138890090151334323962747679508716603063623642490295903045833560763344030400397732736772130238703327143088157061355533059910668795055163419462680213846746154984826824600235127280795684628178989030843292774840677303089890129680936590100658774850818792031882955991409553270528282749744834264678439712582539430415956442574655979672584317919097030641361323339292866575291812206888172057449594271062117680076045500782290883037319477480028157004348616823906792408368612773765708021011704015162106516349889947500884274321165396631719683720397416397426933739275901866233970838894655008073165365416742680589116551533594683087419691347267149630487563760623373796370184194349270090445107854904208672704260697615311662528581075388846508628029608450995061928939913572970562406167670937275211299937804832367022248940873027663146330862186322362947859176750146961961180387064750050044108999160362816397013110524912739060539507310671153007101365961340485626396487968498094414419865242042336697906789012711845976649498439321795382329295077496133062187743901339720899331317660545445865873145540420983176142250865832691712872071214535489674933563843633651629633907972593828939173713492106682895249026005765182170585046452080612823326977063763201939122659653675629186181811586160753216589291483095546010591391397913140279195996312040465306706718183266268688834010182866927832470461394201649387509685527376447049516058242347326839184485087109366582716691020626620419206051439367299890615058047796398049565909122119792279455601562661007073384526103987511340806784774024476397987545709642255349383664412437767053571587750832745763196716712182278043820291315644439199580431480422690607487726360670385306957808559710208371927231888695274493999372426423564755337219328687027599706935195492724552291782639722702774633171289953376441924934421284769795054806841411613476524460801901713971032559683733543836992636371358605586911607413773675179856589333700507760120738182231178808719340776844504586581548378728880272284917113044501667488756600399925397908388050986223471488473762097192073568672808699633363009097293241829661980338834748469291394028795312418460539765414295572613380461613487806459227530462487781362249207000480697580824707304681761236256560886996408864025637747275374167329264725749564026870417501041603773081079501053593527297896735118770418189179650399811464047764537512948442425002150132400316108383242113368556157754240729443371616479506918097806619797028331842408844530682206205150626506114256471845794846662817037459223384253618674815149653447946315390148364755164136212733418302601612781910285703180981003662660680776729281247009245066422445701518500073219699698168353502568313334386529966110372461876724179274764774123340557505695814732529396566851118899598936396142682451601473986664975676383574184954457361344792287675801955107063890532000858983409374459073360716294843846658863978782357387036923498152639056005693713114953118870188505323351617284956746551097510315224808200255738844284377414376482760542681326669248187742759843776736166469022101741539349618588673370932227070133692349018928428045193646703407214555385741700175633554658074465549882715643009921729910511093431265187701773581714564650358827477405336696908572236221135241858536728402854393432265489700353970026872833864850935945300918456620962353549691007378859767371291419394136867102334727706166989795530039601891752117550743224528741920875299263443594027188486433483133142461503523326056182971035658871368643117334280105904133544934082705947297882584673079227795188126209079662380127596580373125111310167574183748681038768218419349949884005261025532257767533100662673560074152327909353556739248672757539369202947240087227319908827388614664635275185899034725075588759182306677048392679790246501785126791698705888088894903619150792134076030125773926466736207220874123175603290880693968049144307502370549550092597030431083388188330522040559126014474523573188893687822222454881333663280291656877223707712999540783736364705892509905946981199086052191964015515842855870674051124946030835312424974197773873948576291113453414873912284243547565566550663593849295371357489763317745970862370868334773013463747961822853131662438801323910209799106871672804224791530227428097889882273113598979470413283782793712951509005661174107778121468544618002873484822123784918544125087732465899956507947985133602696037645037591795264920427489263877428854010229803342700885324425342811446401368807484233041509797408117000700699261666888051603095974037526279163928862377380648872648984806470958899254471783624485149975829434834958837246348314556428544227762491294193518818918715293263482339881795130440512432372792147510384835054705230538329914036472345234449995416884445994756702394846485053762198882905328989699986839453431579111553550523650055225457675064783863664497866811597782224891524116231372310970072906745529182912076471926372609202163178547279573353703312781527587616383981013274236214428253581882400473179100010994822865883031390890007509697273662828178976206764465225099205184343521402172959432138551001715503577159160906140119634171869216908329608134244470111569367961692925300938734331429472946902321896412401837213473343473312337188867976874930973890169340356583017543019240988594138152761923080950471593451901067239870701338109880037396165837852867047447282013252768996349560990651027671953576125344424496053979450867239438029213319264629466433720005383743510070134730500474286883216460545125978510717171111716050366343674830173947755791645734302406466292168915536953192900898048518082751578224227767066546093296154852790094537448932013884880760631415905143511472847708728495346761273368018812020407652954127632583432294971404644573793954153241630046483933359854059070695820720389917559738398722150679687560519362041020081974757072205647642820939277169458165276458307891034552551357747368792500107305961379299972983667188933417529938762636131035963398513037282511575086099950338209599607129568108270609263037843161806618923187878399928358803370162952398374802573970398493965304952861482695094648738358981387699737392843108200262424695782144450704127386292886854048739903245944798431096351392990311217134984721566422426856371544308415027072033501133643087321166579821360058891377241571451851518482955055845446640801349790043134948808657096604365394007810293883567078631306198252943901754943414670916945010683272328120227537680716240209341231837702419521896343904965488300976043373037383930332915185431604393647372036268105454368274701597438371908652667741146177807770478735022150813887866917638496187673216598155333392059443183574994089670254569707474562500341064996846489047413143799026124994769858652443185975496247024538828254935762104470735591380216106075755046661676516582048936417401106732788133581461560319706367737294152307392299434713654984325045120910741075851164511711502473834146411339101312941775808082070626207633011835368938944363874322452702445356293575967942033145896228995373451455101963210380110910557467534724752455324250046541106603520818920117780525795860472910670626774086504297187564941705251320728312456730865489738536154889548041012889845024033643963533276125982270169833433819379971187861295743151646691557892454513772284662468155403218900934408386671564884670033447679601391336640786443985161581984580908718506135964100661597766687942426311406192763428995573366274041065703558275404235012383465663589234323561008273404439417042053771460305804181661974995505040213702714152248552147792737814906261372574549779421929399298681718486737454246867962313071719514946433330467076028729933791721003727482569122007160709004425486661724887773959633359657674230350811350287342542805092605699687399651843332348719901470741345885673380038092656948067354503594461246054094522033922358051168356022661157063042392155258107772182971492471276472794330118249655764485230565470849211045015996318484246677837853877796815615903935701846156386403843406463506614221888003278962758495569381684297069673107014870107593930990614247780315752995899899102634630262123310133618774384736029152411493139776423904193684757796696424942787496854443846938595308103815858477649305273605051021533859642236727735186586277156407670980831623856037204825458553674902306258986115991172038783419689254555282007055372283885681701038082279430245941221224043669944516714124162789845523880457125539044015391893810778758960097862665867302911876650896061293626175888685052575591468144917845479248581176724829766343447445551072416747265266068088749455960584660064194414068640493641896866030074484048026792981902385581256340722343316004488306777414973881334983743479319669769621091297661920426509617667842329123120574552538749890825836477295742847743137471808833692987869587959530164258456549760560457708752304535387202178486863505223507318262197840673704308061060902176875153654246314977020314477006513633648325062290446573318046753272318938312153648573502329738513535265248010181910446218850654065733500786358538016680787526758146653762986393029335662944943223535461118486342885405641596359826615733912338691307177337839646554596188451938094777917627299610715127631924994987909199540249945163792024615896113492821250581986162543948585804206825494729076271158044531029408609748664537182332097658726407624904374974140174530203699728026360315835761747000323224728149002442531763536212722154454461809307994963049469758762252168676031210478452801322143650296545801860338338693962933507467135421915138083489068197276072616568287493459240617443562511335075370023426169424234315998834356624005819693467174448964551162139868159979866033391828097493192321573393298562525184455314026910794594178491069479991909209729444329903113418965847823412121086742844225947335342682825266685437805486607118269657357155754960506531924962066924506182031739982947746023320582354865630668851675362720172686736342403060724839474536676554994408537909648039365387422520403056621445771594553613672088841592471170374383886183963655815390025476100568590893541194487288485696343781564307938554997960341185525463907885664906725511842013087421412480072204006495154396338824337243504316565759586272923189892067390650503614716198093493519291606408262367625122379259954994516471439355492259361742151424472287817127862348699001250036075239806809306607968293318827456475034764648378091769123505542309676651233918854376323732798752286538084244356884921431258843752450316309047426631710129211401859354187080304405790967565115852330585447822790821223357100192830334927836716209859896016682317035905953595165697452048683024311549543757992421812733597005496708167494598975001870512940971174426019431388352458098764604229137576703344297999806603591035070881098651026127638997194031346650244730093050112147491595213000137431560063825501486418855417974790066562806655611543129156825966067293254202871861960424015318207570937676003541911756856755530517372916868376389765347614459768563727947035393517718510225000269474321915206542117100820806722961545093346918655684498397714568729686041676969720749100318587404449188336156086822344317277058014293481541236990394337414794448851402238222170026876292322747528530663307265241421028067051062820116712448391212836710981571461511946413333803104782398650274191020122734956619958573442474141827002967121269243995512102972974468761495679897559094601403955687496292389165498397337392375837977250676435365791917595783048967739190028830081580975826394411475820955862175446844767525150037561327568354750353875685503572924834127723310311629271839149439504702309427735909362001717019898060738139637726974234161839085672284570662320431589939629836886603861508706227650631581263126842080451260762444437841079417117161267933636492977495503080309268879512115315675919082736884527916403126249469318520778149732286366084715445480746761045184648895836396997979354942515774944386516885268772816863491709607131536213971235745517631172513133384362746122806753003239369892717164971822931394006177592153991202304494717944123628505037362058920717588463102024383201732478048346800720762241479600516639364583035088973969585937054387977261936862991732350793057612282711298761431330475386240231719107934339969148398854386265509740663728744312740356917874076327113044986775677400232929385531401197821757247165485424309236980355864414473068564039551015901869062508175629649401356979809787292023275377739916315032160268415484535909298198866829989378079788556276079475179811814219005415926548573628987160199445183701804587172099420462967420402699439864792535779636563248669216784948131358943473336883175835325320547008768006972293950442129205862132075764218640637298268230767803624496341668702774681956769776451886602838999376516966061554455579291474456676665485588338225912335106380187828926580237477474035323185541433462789831170353479761302004711560937187665351300716941935538810427548389815499569698695806170739932275083180892276960057104568180229333180807766240042984840192133424780129418413728329001157164855983071239487629730647056108691022788049516956242674477111943009424723997912176544706760363902151412779732557963417308544572550338309126594156023558484802281258913513233907998742364788362160337284318234872861895611967621915879577917680828501980189981318388927845298333658309965554051573394900291315109176055463659527739618419677157613153180912319269509418742255942585323973965301722693348372027616255633191275560983101293301634444595464261960175355826768808184739972777809887607617163601539435909773468940128442593987853061137677311847044740653766852465434326865660635121739407078307384840844833955312772412538405540379917530932411174668853734937535378133865042035044437622975819851489903645863260732827391128618368295110580186406078803284646232258111611947195439691817301471059939438601061928413934820626331023570313576831090366105371785739891268015610118581281193512785343085860038120085630589257519653846310804241295943690262822273779091960700189688467022986396438587944727972900763501525600994126764227842337886408454254479514153579822028302780235418322750378981639144520225876488596247447544803221339913427508922413805522083911920613474671893765504506723536985231797145937733137404765904853973438766417329791829287980498666802714366694955751977386311792554127947764478533431542073318701896381013364309074169240323043026269415886804414986736122116445847383962719747614411425840007672911876622011190598380897649623056816536348764331969122951387508448579545375632431653064325693133761232941306368184388218478586562007906763574710202040467032841865129314006200438066443979182959442523720847127925988189067523954647158649346085237866862987729402751249055021892619376197133862294533646868312810588819536190016724609589437038557834068678014819103568098744970618892076748202264625458509170589254910209230006920078264693708351069941681361443098290706172694914152850805270163678811632812455445398663743776037349814314408050399448588975752687266564502983519600643080856300093114969829919609089822947079612058015900342378491691556079185294939070324475151060453919373098517530394173028191547802360630410611271350997472651441027584818528451773716845749816938135140555745125811576772698561998487810716316546058770175850348721770309265122336908298691262461000995155571548069788450872768920097934534553710439160625648380794390358375427695037055714971414154080610361054171469253065963932124179643195146259186458532764752489148574485543971777130532440117594412532251124044153163043982667421538017963198414985768209969322314424383334648526841152228676605772381658967691363356872200632614295297584660761912341428873069999486335910940859577679055279947989824664171529822512529805749683922821779612946976861231457776622743979668042639881436846518867935111543142773275779904774449793995460638954177326004489841367152960302724075281680796225926989768732184155134257829377700647860312233926814290103066378035218232497451288758662597851824251592281283249584395966496454212433674695288118910982354051948701874290202420920760357477258268111465052419111823261467063304664028585142569412921737170869447363118786447241307537140057469687163707811684602995596556919395719837233341567693979743962910104472156933399246498900492956158867875073812956640724880720549350311905761060548561179311947450414877763656060152364625011352776521047888671529265552998325871597027201411841398584224131090674580836124822675124192062551012154034467020939564555666789597880690950748600128091010850646129665103673319933586674503900986511290504548997155269124856205182067359229898656511585892249734626862464562203377678311074047571350643003442581309976804202793132077856448224195675066355089699698617046494786560105778737895102715739166986654848013446704399816742759763376770808149531802907259344954201354931451989566590428176327780458222604572560064523812726633564114061140397412298059051473590131760867986447071163324887093604140393718290186988171975592543193236716452412364104298826188027588963624340069641503749863723462346912458240804882238791350859746011543658156514965932857304997948659601719732859002376583358757814912340713952785615243580184833582066035123386987299203933697527499796416043220887345001894634471157979663928987918203582030018198989545294391608904918434289018061814235101765921718129262781830309351877049548171976573638011488228252486036532780507674008187043011210691218515237038685205627451636770720959853376994594210165372137152052218946110811285820561337842383243831198178344833970176907773096823729772384457724075493858765952738151168865685945535082846947087446538941791533489250948445870129718773805159047596039823679897716989117386694111166916901400105889473128649261339521314437410659414176113176814922395249478388565349940247299116965786236604628213916657714070755099858781996280433449306936101279220941383679482772357517609249289146356567861745027679711974771560599727098011356805570285878923488648152549988511410728865744153442074317778878873787064032832608177396182325181758132142321480441040476858684307298862082418026921921524890263289052282361798736354721847388861762478636046311153059185650086916433098927925684569532503245113611318318655541999988639226962571207176748852037328745508655931793644058479623658313029885765937972879351387576209273012097385053399358252615831918883587968137089449074064242980494118741130977862288910210020898369233015857380230852884808172767379003963322918315204630600222974684498496246845110502474976922219695144617161715408745001705717023733979433161995483184119218561056978371574678773470288993530512929814233087845318520717244632172712968068968641189006667072095558473128784573835269385708314161816310645385236315380852119360839489233198791202767215808209481564574935452784358344521947403989203199420088026318204037159262573067619219231437364004627548316758362977643141437580693935860086659294832539570292420141130526387011576290955226739524826975842768074564927609090305837799366753297801937345123644969615542451161811363784336563104752441860091093026388210396619018215336978002088301329665928383093032230513358725656909659248258270830478169060285726428870826253339041802545091569540544112301373592157303305777568132387692669854825836387193907357882892053603665872143976094313349094559741519311099863986584893444673960284266847289046842967974849289127341036111163989508569232947007980933095585874723379768709431423791074618782709001839205351431649898619596193877978028190005584405063678730194382733430732750283369370731082038488752574452220633136583299028718768319674364540011605903552030966546914237610024721065953996427797668546237010382223525700798993543823130304278847569698801671770588184496581885593991307899214395698910451412516047403789854253982060065248196907498547946319750179355043906360287008575724102234612263101708530136979780068449907117454946308761889556821925225099846700178806842168908123624600222077775047459712017126293067167816680710549778351919199165532825948777937625115891689811469633277252040287141006405871853445985777479536780343070904098610007340546616743984224101606269389047697920987910862423579498742484839859242390196614623673495954837734199467182700522547984062750203224415152134852670460478420525287020643116613765893418356273342994175310159812579935966571396372496918272762470522707947728729666483126221868117072905851625981873881656839622188078751174897304486960037756905731409015184378509549466840963416985515987186024212150379078355663888049403476405169113128405595741228774265572474241326086213420728086302750002700450100823111690324500707926162833107567462458063353007848437915497019106791925700067993781792399544454170300382142257660623226675670325837672967582088847017625344673917244906758984694731903722159724315501146291330555614001105372743768151383786825940835029185932684075810613429030887874623253207669655005967828651393810144140432070438629972482397772525624283082668915734052158982677903513557448138483721765649540898175431678708238444611975784429681178526799036473453480130507062475909857986929955866496347966744730666710091665764122580337052360251273480034397025930134904355226874717337079274123021307226504045351154803066774717196522963204527891055934939054301295263040089167801550678262749580204697818864326384826343981067023965073750787101717786820975782498546886359766457424835559293941331944100252408761624909282731036899529677716230188798761530278848047554934562599010462593005514759695036400462948770626259311436483412897167584834862017739681744212164051204255776637684618726487367209852266076087904349672265404240110679430035659545984813639227786156837453465720613513628182056625030335902493244916456058823818620730303904948368868944659955722315543512917423463235372436364582557852328718123625177303034377932977813226939691527898848267258776919528828372663070212015063046463171776884937096155779310247447871016183684056242872210729430259341215719094035797622275018494103493262476373901257234819036324761022191267433845374677534468035811062446491908661130680541987670301261295646223205418058010040726291011437413869911844955339597049908831827728017421926097797943856486468314968025283574261703339838205584281166354845645018438781079052303807155969763774347488066598729730683427810832382324517688371233518456834023025971579181396005719258882723187485484764995864066623767535388162355192158681446051112257497550129056278614965133441349874122287238540007877085245436549651164664314096823538400357474745176872037443478777693206342100150992722896094699678177922855268163680176152501014678719881770012007918607082588507304208294775840359844316544210628475154071000854624083034777745074752846523311770697223321866436270610571602762345064275405684969796992802569320260165561408836712448561138580977046779503835825343389248453931805634416819787796501635309280507383485675956634064807167100725587216584914159847174498881354715937025494215073674360791254983342664406779961720898012807806036698330773158216472112507034889083627940511932923367729105655660366281165691603487375785400339662156691545519736712615801361733796515001700660822328682743120484747207529023408268754571442006670858747369249155896476393410562637480808633855389464890109032329262841400804891257502750490701011036218589809586799085052607953619523292089342141494410189191818787673790713690088940151435254748477862635326516425413469314655831530673571465379324097415381271125986850823878684890356330468494930862407638403770421922409063993593506331431327937168775919399530028844589384153696954498296473402612031343219375125233823403121303667336601871175166275897071702441256853334132510970382415970198253154676567625111846111788676039218040951772126428201732756272972251242077219381924038268670015309369322939870793996325085686677717137987092665801121000447507223241387728652628022860416888452838831619081912403226063089150226298943548432826782707056537474589513961054117223679256685513648909396629750732984103987807192885604343895776270099677899715697508317063788967096001268485732316742435697655506431526233580503824346868758467007943425327590820709438169938685098258562438796468908435390460708971476616659328675273420247289290232703910621950880537614897912136450241613915563283938920711436991827864247667697522719485180975319708714296385800083266488696993541135944734685622619320794789233257691804152065193829359470734362104600948451161459665480542048986433869359618289759982658050323165186268418907831838035980362350689055729294115474614058361961712539191931487488389468836880876478619113982005011763451047455655435374632721847187806040188952732723093945746898297294489470091527587424764700221113564052390347616616265064326394015663675486048610976004078039721265615003406014232393455971663958124728023175666925237869056799935966030383086861814353829757121666109962908942234395785997049282064639119125028105370881091616962082071535167791441978437652906498871412073457357879548462850957786006300032865326303395384013261459499985016164296241769250203388281539177708648276121634581691505486791838032711427540447185920497967464136660799062740393597980599252042057852295960690974621753097490468559418470011471129446154046512966555184499654216313415259238529246306953740150970518465963493926588219368563554880469867603091250514805705005841049379211196280453216989781784647677379195546270599015898116590373033699935838938413352728652873059660846921727648691161950736092869207406856468894787997675510943849394352491112077530751203851730917108914358540032872996368812999136430416488513017303450835715789716428310514971969986286444997242535074887160454726788372433642204378167751473757979103686463900432292147620503777232106436757979081511352000101814908954433225373083530266955612482078726626171218633669440705641254547497353914213522291220463107479913382445830077370699472781235881929208477597941092025000122366872930480692368055466699754537218777464371953444983761366737501695246762266021923895703989065626665832104496785785623025765997353553343633270884246176352489825449649563558983923822497680517621666834796963794683911526594252255869014180948003176125973433572756670052055747006828952132041412483375697661298313823474304029113512635658766729392428255689054638769094260781622295894691917469919661331596041476663617689480696246668566164850210284808504166405028502270361112145928120825190302784932479681647659684243412655154727156793464867463806936033441179683125345805616463134902358073860687920831640609070512961269775529577821373645679998852009614929692343785755464363244073278193678878682168471990025152253885684611362432382823925705790039230352492649414274411604090639707114802042299345921693074149349348474944302405163383819725523636181718714991857154507128179514405192663754527204748243650469173621297316662722454124407442591913713491647841331339027963586057632644926078591787178157057840282802456657717768871305818114609407966413268416982345935510616747151235870427195076345738887488993102516619911057644853939293021206129651736519476608180806085099854540183290699555797063861513830651186664337642985571828608581875618219871073356652093680744955337183815106508333425567008304976149160679227024807046461128015193533908297779871864673908386483928944153567995009088590717615509470538390707999331554540764250665767226726468597373278536053956735941283716225743266990096970128398536958772066953429800553911398009198580636974935007161305630717194804958897686787628949100556977440334901304967819521682595463015741659442813929161880371942310767364466533229265593867709278314509239043538461710160991389616404630797126042934254669952996277895858835919297667244823638417619084152730878079734324892072181577496273914970579844243301374589952144090639504265553254460561470917441847551349832563037996573231348589730190689857019071678729147121133539596454909933045335772048486838856066977225482034261219512642176910502496798957282463537905943461775328975948022365405776379648954821344648155010232324429386382028393511762111392001059881226642706323888027336943759383281489409697100412902539450729534582966718817720224548990079073145467878865540280428151729179517352595636089729247702603274952741898248542704957466045155922080937897726318456236856337985624947229260551089049406590891950549767807264912024139075074338050611338392539018082856336015303852888743002979595700951258633091249167412488107416739534239265528591879866793800573537938116045062551689793204472550897766712309583637873203531789264847889963575011107785291087837197670589039278946552263408305565355073865467433307170466418594950637777044323086309160195154985098666035332669147104151206636307554032085259386703636298115426640574442810317024933579524026091840754829522914306874639729963535443231789326819773069665784651898116354021285849575193417297398777965509498276252965124590998512993141982429928929005057331098296105254151231139995001134569701168469090081930954763357026634073805469571360470267181544230479800845162034157168515292881153723449671929567756017851910976343296903206048358226728914023431657836953413994057846148867820533980400377766852227694100013386575594592348512150989246634318503756279195948815736977381001774561115969407491932132346888617717611945737033210521991861828568305903225629136073166419714456630844110354293637308918305548471585996401934933239709409995905158718579480842366819926744107130426544111057047655723200808980260621676701857527544332437898443074359299570306093610196374122757436235882294650713381868198029156182270604775330152106342392970701304413759627287714420433747395462625077628101390986991580679801845471442658364515472651156662024807469601958422446545859143732205809116667666140016906659934876220513037732700629427124907122966975489674442540916795685348641345324994460958121737140018507364841499637624754713236749237897783192820694042744662092019512235752499632360993070090669973678722877322030095615528711700539905928335982927606289433106637538162538163112073201147471744847922472463283258027827254137030589609432021174878962894868523225043768349442021442639268505992642645486462357638965542511400879507833897374080799369674326959564595608918209962609547536996430991030587608191229405978195361169386978748467079518648407063389989143737257497101048258174494198723415714347354936087763996693434214715784456991088272611661519329909322906513785423951275228152199507180314670108326784041990439240534235285413709129616596699351895018321735039710104154765511372095200614329545710025275922386892056150909952649260194296650934513794020017376657837804329081666287490505224884150172229841361522064706906721503944252693798061634055451436536350191088277043505048411468272627845636909988966926675510086076962526326917305525424203647010899618638896587671701271936798533876470764775278803163214621167914211171016001137994838220105220412131313794509880572779604972545133965506742651649760466415898999513161217359562079755376097857842449729313363727066815205219437576508126353166479884749270426948511226666818803056152438498857901043271383156381426507151435324492125541740604499082523065631349904279401875438794296787933576399845835321328083108071226009450990626628015080176902180027570414599008310080297930424508466318832390558053039392322028116986513849617106665998644804474758013024473229827657636969298839696022157481867115783278669946129015344356925761349379653868850951702159048034855755506136501327431228980056507334979681666067240275034191612467272334129293102716727462314956561327826386470650060327817849843242956944154991703279687090859756657679119716954300350406385126256464872017494626824005039821376031549975566431269309205484111370556723267665028550212928525344396047193859958500437271555869558071929561543933263930289158580266384973096723018586212135892556990201067398188007582783337415995171403418285394675341728406827799917244049632895927231653824046270718693550482664206676414845800000629573292359588144994622580820662799302215900353744118317756266914245987504576116749662800756333156983125573559248536581539247456294138330338347913946362843051097692052234234830727543811545736822578141224270669114282712021459157277594847882092452335774396881448648388073575368306459658304434635577405658201916347360943182314593583246822655804399924884939615135665064870916855134688974755292815189664366518401547734361579705315259419107882563674836702000927505638779437355307990065729514869989217746556689366136498596639810133499827072398063265025425311035554126525429785952216235810612990972461986074609390720251301285460947236782724666020921031085607668119199252649399824142433654306702537258692410341417860050095237475055676317652308615178561774430320381996658788311627419092516449499884080524798271287910367252043832967730817186614441874058919233621560212961049327150796548236770860045140654162835617032725895716793763765879194998823538751523243594835981923847008924787222341526202599856885925753948945464466214982139449537059084089474437942978414406285460991846806929017896361671746435569800687607937114270889045740572927862857621081548725829746804396204206772081480165887157859206684740314198639334407344485434215640458855758652324114534092375444102632891608325679854405531059445494674430419890736129996687114999890587584642580432081704530535961518541052928141531033567277924591520822922429912399156684466369725914698629636633703496384740253818548826282897154523757172011470356422553606900790508972954822575754240883153467440098890262761667851679309728008108093480909367355869621826866883285038580371937123000106419791713770397103998479900788171971361327381965114467770484920596933245372161173889153287871581373014801568032076867001248039507526130394840067992213402200266001835089532538739852901345820945724814263272348838670047216430369222947482493280445374821114093093280525231986571950340042048932352363257446732695055552107387225979106458501099122567487119383991262384789003292385168732777434337355398658544061756267056253080556125741461123436455727725704879480964986459494938532651627212588060973832102356394422766313677850857271602639769234175178951983994419235133136865794997689988685030064106599972383377670704986650868736224183839447597246965701574904567340184961934650604343142332318385206558875178339295575794675395931975003302496426063115671767220504057915483616192599884509989234948825315205265648131091708689451743772595899237199809842414922081286607371888860623058447709450410547189893295936476745993097219532603592061390504164161739681269347836057179319733725801001961974975478135029574152945221514924510015125970156352398333432649055108835196875976283943142702488505183210979203983924329597224214710430761505024997464180364908786709309142328248652414635973715760192558873342948666507670196834972298009969119606126715712789390209269008625723676747810742273854520428166669811382339288518535763427138788156205054172212855002276700764576876401674749856037972843267704282478125992941046303098718789698481295002247271262764755940531481497078429026471229512660730743378520619009963443330153128611653702743261365663789495806773928921036179037654766267491723730109045007733184787551071361609623632827505468875972351468426473624966880485915376742286065440554190809345475702288779734501138851169574286740757929698474255222903877480040238862565954745112426406482287718309584041071902946350272894323742413768206932989092229036182252770724978945602587505117469053808651679996397065631155699706856781641073010197435107510424272891145337733416110145700519819018636715367242199144821973799432464643947431816073441526642649863316674333178456279579910075723019979421384648332577156743477154461661606099981523172691401203835136923951963866031567942939952923058812101617184267395865485019248239996988821611246742950984317478841545878408831996662976420936597520529001285950398838376677227623971204196036585997039782716060527689519685087805269982294289154606901845761194859920961055227187365821360562123984909810158811018863533797177974340474330506511104544644185591253569796091827945915691074360781689528473021581865975690659762204782940788675594379391278048815665479930889129751233192329114542460086303153758076929462286985737313847188581534775238611370775501179480616851703743465830894683814557799625418226224247216732415459306817889020491705377531260946305453775917287253110717641980992264087260850963939428713418207129431475817103505464941049028047175046667846035712944325205298109777846230137649106400542186795827745008645307443311737155398000642920658545835325221638193192111134994823334676851905784736340109874446156789038800016633151254588081473170752620811251084193863161878595256073105893848310672665188351628577956766985423049530431322168241599790881264236641618917163153970828310648059565471013514925104308297904130350622871047233309527894384996615923431252202101735445995234460767439816607803946483548498121841020140789831524355579840248275131413098188701096238829794250987651657841111768417734510525490175918885209275960140725254053195877867220163664750987174920057593351685575874147623674008084037006175127913185636114204513685862817328956571417999574790174263589146739181545631359068090479905818802239267761708716227705384756075491050614016867608570496936216330141197678254834572871988259462003552546628510934751512138636294106241643761003008552082707347429750438494018472554450504206505291998227106460550138895671202507774109998980869685582420809610249981781647751997201570470620521388559181920007857308274735783588549594719240534380882622194322690810727729942390375012043395414317598104072540175153350925601733171102588304904779742705961142912862594762956280587729216602972572991425308671049363173742721435732567844259838722872998128619786278357709526330204115271667500628335457889087509786474895261513450304759189900000410554022007542273094055509102306568466312098975203044170483002250975522117901968210356226138796601982031290716432040549756244604841591173358938211341010722870785496438662460116071688799746473775383193557725628913450751110514147181240768441960848250412984881988822048388629228750864688885171267199077493388631663134078545461716638068191739396952464315216672242558446196549628755209079485952069793335006289942794600965612654067867896824298335924787210787784932816302566416788533486058713186046911991376025527882897705418297615766196685354228401066714232488748480452216156654214409484075051195577480690786109596769909004653556432167213075147743643636650126680646376062873640177767129467963960296441847242240179023431819352439466704760344790780689216424814188403912240753429943905581348383975907412140829294011310870783990018088143811018182945514263495065559231127800966080865055055227467937363545843088428363396762239841814409512763135141745410075122889497411298320256840633089221147661200939940681068186842577681542030777827573959506930724919690202068577223859182928519543070344644696796589529059509408792099511404883619774254199236480493283030215817831963346697813993654232555283910272587810942588781074896132627532295082410302433702975745108154767484077239326363643356317359581473959268823055216373352169284569522059389942883730859723239194454323487404963339374427267669504675615675297542866569736215547580842453082708137724609415954798802682860097008646043297274502347390810980490730414979953139501980176788747398037364677744797883362879140628661982619050730384444521825678303843442710590138390976291592555221311470470029399861778517900965455968860417523444698589119207022774596393771662748687953891530935860664835493346661017834775287260074920114192078002399500276518682616152559365030973762931455436022006229391378379285085262784709630399479841881706316514405266190321121318133171438715161892411431793241651732138220172813157344584155709646778255406119979230690216289536743854443469735398282068472399734018128347772082654493465636022542131529434027057901995053780958866110228889381382506888118763557802494180382571960790541653160833704465036834002121489289458490214979760756097104076147094711668465235354554787715454348518034902264713406875187475818889189216458483052660397063749680589769830894987142326809608488649366962208768839772943446634386655668700770853735911736834574071508694248987620475456517297585940185827833372697291462640624796059989571708846766424421539650776344696043529224526915185375332688929829969710422935852917817590704056051416609302848953795405576140940637723115898971176995244029116601669898900821477044030948094124896637052225056549451737476239478946902973547546375571078643318584398761974259378313984965324443509164242464246394475696322486920357888671627758414787992205811562556713515840206377266789166424156612967249444971498960544729485292054303466921260014379245360847667899428942350712581947210710400184423893837674717578109762590468848556308876669226770883714052924904516617705739089218171208218622901922848287103062442700534129806867070790085095657763530551678967431975824248677408773048503996036645880626175866875723380895370701743139157090735840918309988349183938231249245761904528789408053771680121263068714889600170258203587078021436120505012755204959201530631469635208894247263078211608549327298754857766779184707972380636524169326429432135271806701185801067285246939699322582641263429395768337258721991332995296792183663233638522729166583812275882754740958737366749920623030495986632681472674462860404398512884272610755635329510114735068606107536314477514051323326211282240991302739572004728993286169671943074170461048142642372135021482595940703169506104809814729043169163638463021558445643414956883999618081461774708285907301029402460503168380334803655172595923049548680994854127344892994560895242713131170102729341884306283645896092343652244142144329524633915656446405475012347781992724099654692154614992577683584532099988921131985006037113201075137850243407296584545302654202643925728294060200603219807864213769023780551045477676425339312654157973529064632080166142408037471267238439134792043016358706317545942791876262796646252767387562239014169240570770201992532993499647623246833900967630248288531037547808809447834787662642584675668037354347912162683976327219650234404808368501142119997181836974318489650891579259744402137865964593734625391041359500697946262944360267482080804607245239821120384655229355320460997690914012564950639028961806699538294496033673057202971760360872333076921002143420901428973691568645883729367141722991860488647221951953843369454665762699025570741597737926659218401506442377186848586256826746474196803158697644482951232761802836355911993127934073469432872970630734670483912170299733258332178884693946373947367817921343673299137878318052698705127246372802974153734071325397738177510897392219630521652369082280651666228325118361924179026411486872821187989931059778050772847880949133265388872201561900121224385527180721577113388616880447143995112545656968969689421012413831543570263383267405940067289403221915457195325301668483310917648941851563602946225483886667653306330640483844674732463732736377706800972448118261315488399018031402042765700130405058388582438943364196223192058390359551645362640852677877845930410608578729858138059254428239958353744205012928213885130697195404991822120839671451682497835672832746996293662681874196285285146269801991659613777865371783599193916060969510237250467236750088476758588727075225010035293404113491504602802743513086998395534226779570880321856899986657952598503321496335421490189828718435215667896883137735479237707577376718860637102245577443400389015655585623351564289489305683758472676426317330421185439125414599892055513742692599376517505913474630598680037882039242495126193995998561320069999814466239492833219590559857132439453242762107838675145051944444912470547264656499591800252455074766338286649572502911669023474353538055572041301909937706362499652904468225629506242549530076635195671034739693976520022691853353553451603459893132119095868038375753196275813490456923567171540658641848633825515842164769581995318286820099505633710382624365187631250178421452637841155367239319186565223957057145186055265580238917410174486367446172546550873536482231912135416192056166167018168062876347061816755974334629383128855574302613002740518596456671003290644779688719686379379188562414484519237878092365809904683734360031273671608536015025770906077818280052716779901370341830370484464868318728488538662483019588021161344833376945914922149309509673909888497554070558402798670318195769065917877680750196418957330078083741085688277570619744113727660653421893078997235434168539457271562872347058404877086509436225146888158828050275122572720138746588471709231287225292906876873386136845549536465058036811432492668542284002993952712108152691150298250492185617530742365404911302854639456465780726773104970504962123784192637297699467571221265432194250973310839984918449296809606846751376194833325248419579117211107763323871378743020532443187064432542750431544749819436665028798539490827657119638651631029974102061607577529269301520408072337125200647211077718240477763710508670789020525600325567506135116443447543946893691420929131882587508231186223498464009242572615668096653330639132163348246158687038533200040769861799107715039160252557284900663140686346429425727434206744596677986640204994655257252199414493977255130561647240187718791142025268611987104488720222295596665869847689874544044154729149089502787073771271090968811764349906952995834296587358666254452973612055677282546626766569047368292887385535033576890845652461502701335250583100771610833169413137759706811674895403368337685226587151450235929907641496849487737897779226141064435615032628934916471959982295634334623677800991827299072711228603954230527598834070599250423952173231764098901613379287325901791743498005683309273794565730675929769172783514579726143079401261563596464094841435709928212820033284142189106248003174883204148482509048385495488951438382192130532271215542911171730233151596737581766985892601975558089773308183232210926777971463248660470446528964382655324527357898348539733426503702078875080510320205635161265517402718497880365818953332349450848595167110487000089452034374095551727589229513034657103253131044887245710375414737389051648879978470607674741621887086609326841283305376823102287159596280197575385942265427523557444680397738483545327564195497943621114231548559244763921024659824301593102208017852213179490870058803784289008014340737645622488977227513910508838410540019697358999259634368527211490119963107457727713312029392352638704333592413158987847958238674382888922975924368462702078220888162260892614739764709876097928333192637889630686280852751597641363051426704455864170541549746205939126643975590677630609741989748791770743077474725113664552973745967675851138440414894736690916421481694237640395703847202990436606582830770241885626949993207025431085953482043357421191175703062207533454623380918550314539387847044107149292298144396508714250001501107756470430233965401860835075817586652097280976300052193122691368316326072662149351479497882642782515841142553009849669907897843153669778007974077324455133797222423939491317195358236586629341527687637706632260234978781257560006092305423063732666535587387406992871541121919367463405647778861807937705004463700959597181418229020597418274377391200381440209726047439137876328234902700332649265859286491478066867846036807031007615627962336011292410705011307239409910759745089513263133632030394071701995016162329672576322927642942354538468171071652876632019963408375664832755212513121302471640084716559779955706664823893226261970984624038081533870917464739296312814006687048830388125781848930304141696167370625302539702097568423358361828123873369491181524204029872216424210003940689846462226149396085337775010179308848052561547607622414516559883876588941635385010372785826776168234665401386327387752721792377144572131170921685800552771672874207522864102230762671340713007060333356105427691213268302043490452696735468887064029980080560023629439720643720042052915557439357308798290804590886017433924361104669927793465081145359237001914947891246913685777010988406178185646141880387318385626975034116570980959265834730547192817603981104576959000897712927531046576560224079531367202338485239067352007186703253168304979132317503778562374913512922675045276424227442769528695378808685194692241260675047977311936962802386803810204863525226345920411547725853920012341666350539690195514419436534861555898210899603023243479007629628032561483246870841445060472829579107758383206801486820474314983197248752519017904414226089718732461803215785877921450885926278848133702958949457629014952512222400937681286584139619735761081540632333567322748692928664993745102987722287919108741560651250661594852949870523980808700485575734388878659709201645907651937594509132168064099922584916575266287544053812902301244305889218281319688882678566076254240845550664161711712711732466723445264512152115267430760375888829784474281037790403832197432776288083317679342016523620974536491287917146468658937957151415034541599953929008822483688745076336226413194336954844200743237746350349577760259687378997113867267535292420559308618302687848050032226577561004832739225257759282592892332063365912607521253806019332314007976126489128282022191964859993825330767239062441482612058813372451885422480031767476740110658541342829899002494069666064272930889766252723268707372518265204205432251158697714021016651964165360969713555525001367079511483677743383691917906325829881077834606397711710940002805086192667301258539588438189885999987309944114159232843740722723866206824754722212862647529951303808913721227120897637121683485208143560578454731795443452694460806948171610206262989149485895517234380365571084668370720136235377463666494951258370959377741981824730018876923354224871729787113614894819339105128319340299148110654339361174643218824163003639414191320970813951099626625700955130955580904518190204657949933372735781800421482871799722301064342535496885986519357041707399085589503425588608042460588077699625645855280567057197179961267528263528328160609360874384212632534125789981982118210183476851521374842605290750790000784375545998909391567188095777296225015088069889746127130121580914987788362597362448756191427350522621337714931130379928136304406217214605105416932539905204319341331693731408806642523421580851963394959182449091422558597664777293946948918684024369545600699882594648246055656409779929792659608690812440871746008479045330320502610392676391601193080811580132061211805000717589922980181411292115292429733741677629960237751234559354584383897242402089018595093951619308294320934860842585812332047483828283113583114607816403697360938235972282387234324622787072555403729092984423262420650890706111681261261052309281217338945344690416274668445686491907509502429872135091394865054175329918303949145646201823483270229074835138524863002136256620521655991983490085268864105223424592481384583855984550085917103031236957821739342554752111700923450695064770581400258142348532053279335587014806847239203918596239145392784496982992849999476744973321446322036896975288259993346502366312900662649632259652359780615856310313375713468865866820106224677918438365863174544278034790863834903138815984779045633485800701433081918456331898792952510154088047379199747805800990274647645513012278318348861550359905598288371169859877725989997074948952870320595249252551129506022976653450074183314886371073463686714263924613714418821279965982977418266787058207424531962852790487981413329691674505146962360494433552058722555036704172570434508101996434567364197808321467890439649796489825683663051018603873234203252866598771203697740114073842986552859652795222748914827765147520623821802883669933118884024590709018049606998118333534057727535191923412826278322992588458655639153901659816706105944622377978514102819989967426776416764599739332038623419702690747714249707812713667736376210045114006722145274894194296483596245413017388898825358780969555843751571702220663059914659832884377072554941639758696339533238394269216373454460210669018678165973602845092396087166534516908693049046844311338156767939271565595850240442909709806638598976097947691512354003451652441137534106901304382469497506958806139482063892682293798425018768134280889110347622208265904285798553607732179041154479742375546602833683364881513914387324567327711959586338383837064248539246203671948502905976157212230411885423574241436742665461313776615575418012087017909826013435738802948548715318684461824110921131202474821193903977830512385880633478127688664800695908487494020260854708880565340680374133459661840420330974744506808330424890379113022072766987901747716221613023283392717315962937023548093771638056071806639505048035505549463214849424277069644920382811725285241790597039918661981829768653777458196144283116293322159095989348316720492633501392333166476441545933255028533061193134279488883242265877289273138694587444516041469794897670324150704497693425629755639185989878580855940827470891990486082624913245130503840902769876164802514900887482479170018570081112571452776332359025454523765276854960195773172908398285986786259259736032314501955289130665081698929062304586220697539257483361489153114776002920169637868152682485056402033414697910387353571602691310887573190102465988660097825938230732222642605227093960077465195503521827190410456123861307555980987154324522392607828318852513806841057282127093181252552349784483261197944174926535599901683603474946660087864097452624014866396675892578489082600409406043097713712437779360855245791173617714184494620244104339436077102192176373630943701058002575169341949042931729125696484087274485633060308599389552577677879610494683178255353523272515983867001056470547958527248087665954073048634322909352821361949790781092554474402538919465892580965572100161335523068192914003839573510180967512721396853677345271895302051926006397753686697712589873061863375009735615730797791566465744594768484918574453848098509637289839384138305694307484415910132750859205300704745543675228508560523273300408644475349874765623102857790974104104435719296138578540867219569821956194448048696279924181620195719949965958272122640145404445101196809937511385729038012251262194652984390086522801336337880865149017783103953790705746878038432504009363462987261733908928462718880649994010141823905276700567935547829116734120936003326154264483590121761354165734256281722351130756781318253292315110586545274108777790513828945065997813002112521577037479412472346839022329974719779288520648101360055868311175566378647556947850117143220240203677827683459734512150657074430522691711093154471595374882431707805010238886243626670454403330609177256039519933896422382088276304259522253666192451775158277261163614163854090643533068949572201807258713390715341181471690328587342930165575583448696507905562704969414614926233543660559959566820571222983522519471224811342552173122969971001376575612249784796883212247738654481003652296207353427299925477720116770534825613504287101915713114962446104518030070037122428964909930251296012320776788774636457714695328669482327053221723784129618239800364749491778589427819600907609272265363022212072270394588290950811559204901741423675083398710934998407995649644184540050402140491102355496742930117327282279276332990344987141495352162500496089435186468392855140819471807189585771567872392081871013885921314389612714546458047571133415254980425977779852336161156088435745871563387121774401097710699058409395790644554193470566623512822999786613178052947505558577969347685564474587693369568672413568602136801207311697083159775931779032482016785078847349186395000196042997869724068915575414704251169003311935598879541575654097232650747278082630932639139154702163263576341995963803269034177511163481070986793163343484032982671863125882985379543793649410197204029185897531050396242023778558493592549900467923237726625330658169094713803756267606423651033858976318239745302953031410585285358701245494753231906635799483109117707071930972338227151879699355128310359017713652983779382779709793545996012032206072704410351877219566008693915259469343249752541698514659676116695562405517267349001529651359732477271588309755095248960267716154422381262921631659371410232407027801135320915505672120550790724293041442626909134141410684279658362500765282918716150033407657017211147620659321238249531222542297594989197550985717987781647109171673197156410966415589196699656281751723384375452954008891528505951340174806879909617582312418197576820243061479004316191629862502989830237258816933296742184239255233576690338895235942234351009386655383427415276848879175164937689856265495441845432903508369980922387529942027852686669618430009362955161473849772586188534968286267226049518929274313287092194352354569157351609141011952691042312464128598841039381826322620745493346248710617955323005641941039859636902191664065400570336792760745820800864397504113877149298590861934362556246526506688256185412514903070435151884220716745194525045012004567529894951685919273031551195403022100581663599369556469904204612900724538452157059943528076052783586150257515170926745449882643713790931054659186416834700845061355481634830163883996498582614418596789606182319544614991169089612386535756614903249260146206731630411831902490274191798205694619192421155270835899500595954977980480826283694428363073113781903056014218603605537423456475126342534925623964990649083491545725414860416471806454099957450853188395650085892288152110456761278109005149540615611299350436260865733848607548908833155133928346820786850711517881835364739075115054160578490197369725555465839304082168056439509930583842493442551806856860312427135395131641728960592814816828610679983389799214824898960400340948993201749027949413267657811502349990910000195367962929643475752806652884062497216616472925645820564710806044972069776407144722569628150142488308986238889474317563729965172866034246432529644634595565704083820488049787356722437836591164618954367728258657343215197278256747064164120952417975669722601337572237769283237789953776975541131769132297620306715901001086936358194959069337612544618648736087337713705963853189638552742721099319518391734758282214102492595460694870874775754599222036246455542881051921041279112705023867482642961534151215795594058821725604213751460082798410127486374338573913223027324543760007035057025500924637952281525912455205559344783153874588131179048018872041049260804436150597904987148410492107315634077583637321787613319752320469181989701474698965325150288354168499366341234531488062808353893801228523249070373033077811450721651164352562205592419244225560952246157087926632693640714026077211767674053951536316264334336230702860096752719904646247521787533898851430068917928298067799386605919379766058430559542902664476617593699642605380541176681857153077819500081851446481079632726335690695739804829315374034765240980010522374508624606620317872094322191978373322489475959347325757023810405423178070167688427404138406953087806292172682731020253050659593272620008575650933545449042482938102300472213062209146901912280660680603671672460001052650210778708802428376262230165134896763803176770756233102538491515534191635377911216834033044544238048913192901501545258841504426926562022269594384976673591358778471508294929476511195236396904319941506655271525940470763985538143207599125899451514860001835104980843305332817471741614590903746090737790244887758264430893238146811555936742811126511935702931670156100972363321675551775376162685179549695306032261041688869126074365419706242254845795931585524686693278752130346031930479404289391213339064417663172480016734092943854108111702870246948331521109441959779867714503919966934234328642591347504372753702484096236679613484968998189177023572378193631373969344236167423177620771056062348347852868242171111770642748195817355546907028731659433810203399490433963733714181023253812205794283078271310294036868747975597291298927122545673421342397481976941540646394461377723922923870863710617575312990151102564792384894879040897342494966390479303209350841400649328944141631952784743835395530296043706710520450155024624075285624508561618788926804187023085011635036952782319514837638764972089794693222450714973802389452935357165958344355735274345604224620387366746251834777811092340195095519191578655464323797237503775999909835112045674514123377603349460555659508834269273320165762417080908125922696253840481899928049594729321120096718680191458796985739168410771727164197450089520688929279926398980069018146386686287085615046292836759809507328927352608539021129203651332836545322084296171475241553470880820028669098165623643279375042464079461096025087602539324400034101570571421944609876136784668952108101650898406156228567675010820738754691250720120343803374615176048076176145623655703096169686511667651864727503360480440677407430996927741175163484979099604233713262751064698724814883141442043833636634945547959308783705382917958793128321780369505622321274659700234059676050781668771775806405993639106322942043566336205410172820179382596195330730065041770170488267010162943642565220667324219554409524618165740694838895839950464298462802274634045319480299990517710606594470208291713062735653746499291165650710349881537344196389599057787300422162749116464589107497250837527588838411523183962760351198604830692922452087041681171805004727163918060935427360882972902444022162691036632990066069499574644815709009661232884030101812504841567863812273909617832757453890414591556117490045003566585747800212385803226220527470596121869993027588923359575658867689214500954440437300934502584843732320287595155698983609820408382007455365872852237178713017426843180040222600528474362687567367902622976520103521466190322529629413162530057902032715319243868737454000430122691007026433186867464883466167787153675179953237756394033142031327057355191876674913209567841729543573393603870125317452453853839080679237439845002535390862600945839481365371904427398626464164245230414313850720280970561792539555579170255538404204620888982966257639063498116572234865621927247839494585000115795181878783450681614340407463619587468100980363490155812347375835357327959085655975683639934972096568307008502502690832274882609371727828271818456734374776208425336080105826037722006725866482731841860963934144494142799255268304344757673562177107683185438025388234985972980468982579730998762579237720102480071360125741921346996548400361617985564546388819771556607864385295725433321340649648273684867871572769554194840234166056933269674299476134182542091051795522370872822957049490158260488968325898457972258920104623717995762755018836155750205401345658691278841551527158505665403233853788773782693745687085884567260319855787593497124087634247102919491571988553764525312596405882089996960875393850324932340315507389468949574171977252159744957739368894508643193472336851985409811562548877433636303548477604870016760774517416359322447906103371975037247058882579546061048225815374394484981281253075344885005814709904562323981176824266868296355180138743881614592094047097053418054026161253958941892313435686386052945492572191514667539549179498564726360433327117835019170669178299918986797927796428181006429133890246747550467396123286208081667680293293853150921895978606631968880799574941879879000938936558491059089712264359001671388621356624770314429514064136475232340696932872529135611491503131110808880808512045436713132941059093844663469152617399305113167977653169838275498314622065526533749854296336907001205631442769661798483648534814403159322551610955303587121325999341973376326426263254209608937907416392151667572417272263391578897423476131336168302186528445042946104862921784644159147248605890124369656968851661095715916302754621322801423852050331890327345002879611797889584637445507051374031760428859246298743674280960099621468588140848457648390267339925801652935491214239381358941140268706505593300953979644636339801362853975410071470830644214633508651817959462480469774859159710406775274865807933963544213282736802957046470881138809176306766524221303295703680700708926410693717663240204769749125841979744431348142696361605965625973467537865182110114033047221316220418134847517752745087038086503509845182366435784586905233819718237969850229476563734162691032354556647531719329643589918669281921051849496489916711898889852203311227607050790357209359527718487563379657090972944802463872301813545349476639320563815735136858938709474343794276711489034788441950502989750478856633352615345738466959890832834702234679071159989029231240866937477644812851240773072706096795397763733425703909802433941999166823760238257991901937478336876132809790596889316386653115851568017111713446805007579464857447662488452051886709692144994452945545848213506436466407266887104543801820245151284736779409521814760129931683973949487237605998419743967805319067854650440782069323970983557010094864738464077605422294932950206564028009990797333991028415876403452549562753418284781934227376803936963734737741082022554131155162393958121217870910737559955257982714469805786367452666189127849973660945445390674864292309865440480935960739636587453259133159617116811361952333278390677946022862322599039834951749728558005133138499089248739821947048274056714781356771548632490360112656392987442899651749186164724938253967645118324245522784953888184284250885153009898905087791104343020154505987115834034054247084424012229920930657261570127678631158855490298965335117812176293624358166597071340918326565192570699089258457896743048996378726569789282472963620538618027618726185895615340048875639164028187363372006709816420274185031074396450524566753855652575874558098630286226078759314792264928886924786851984492879397809109204474035604995333498254648523998956050648520841372688494640392549212992047544322575696662184386353160880100746948476747995290798943337349255036633928306164373272416795929119509074472807453590663517619447696098742080787121370193352534659666690185671874934623619874962216779783400526889035613516940283827583594205102974786066722725648121857011026238957459707654492244132920253216810167074575142776606437607739985032316818284504011600403093390657570159501815449494546464061788474812122514241466363256572286225085589298226808282299433116957943630492718780590814493297215557082369656991435777718479313579281527965787865486184075991770229477034259449709614894985377466818287860842436605196246048551794316426761154890720942918540125678612584177746587518686673636038108227412652665572639038550656792853257611680913305523278392121306655648488015392492236677026515016154521290666865149437869236516726402327926954986460491119744904590619915503993645352084802728030665685711958187049846023816619254115878186262631642087002043810701322982909200320751567421413834825339122908625762077934631055565438806047003001424869232388994226401180739501584161225434803137498938275159722683824234042813208181902705008102886214060137501819073703398013060261224240377060499650749549416168384983942804351869209139708489251616157843669276997303020160291292617278318221281041208203151981033010370609090316656392296875102367001968677469788346142166587423053972134832520916917410999202357102613811686545935147064429519757366998552393884422260286698130443652548644455788276043948275198009466978822492541631436594348671718574049861132199541303650652782157456987300379948677812725379698138549529698398088741027892539108240453551500383347805669826307055049845381400442229151970646912358362975825470021317483081327723108186727357718598614342263063586647925157997714865274754816095746954976413065134704201455363781378647661336560485146072464654700719855676307733222176463664635868839747891796308372099881740867907578694795423175207964571817209036666671060633829064616855641553728154886670925831416645275999269568714290541775285433919388511007855848596674780336969622923172258052688158113117997376326488562997169233277862629987861323466842664623142676131003114917572296003373889652965773926562412249442203504990169582120693945740944406179849149688010830138541332638482733918916457841286036361385323711277420732873509363499633919032292854924641839031238937403340789285548494787162315613489835685697531981444012701064873923568072172162847558944123596260119756200680389763754263278734529483839275291854639453148486242317054124982636345027534529584498388574574337766320691575336227709269816338789000249202620721585716206131071208913804132406526853431974093339141775658167925979581338505538464799741534657438837162723111790490641547939888283152356724207087488210711786371220320476576689408854568191588601866865062147462930076099158719612338073183601206383454341907115602209522603986922460368653291246436908209909582400811520569065716347265162942018411929628084952991070446223455437710112409037450039415217934359471254727929599293544085766864562025368577689694290958454375435589274963767721675643990704980075775200437968514287425591719277273173028374304212412631693756881567964752794966364653347678102633113659092759531328593338292540143495735149525187300029854595491507394499216014489793526246567858716062098025901710808647027570267087199525790476936445617253292217500491733428769797622443305707337655713410003642918047169161572992310061215832604056250558357680497899608127570025633150031106204135828151159453705198426015286434329110858879291686976849353966856175626508775137643708232135373075016074104281749176765119237996062983979298955658444472515125836583809366311719696280050917786417315931060038497880145733955650987948223429027681873968496566650279858782311508477308164418233888146307097569845480281038769851911387020807375774152187702726879787939864940933064691770825320181699548152709252451151439059060982836558330802615875670683827488978536203764566651319829558805460417534475165263551516564029234944726467821462842133658097371459719328394939725377134435251978516971988804790612710575602473903217581702368291217828212958950102494387107758563387108929933908129075447985887629584712482717094760126924411112298527692273472535892489575533006938534170826095339276147396259216833725776573721578894982692698300444183674084199242418909326883705640903470368443247860247866712527900008258716156389412708799487484328423287720864530980069264036899244708518423649894472183277859291857087131078201951384895429720733602368465371182441766597514435564240532456452310390814100730930997793713522171426812528059380691340979927557095960681231855301742344008831410679000261482465037552758604779765380022978316122987116713318737307344230111390225807629477331638428283888026273514113049034416263287619791081748961644920721288093835864423669518305619838007534991022147288699227575816666962882547870232352276525907047353933417068670857151677876231709874909607093602299624875422801816594022848140553045695745136351108062819616105998817150724692592273600625274362474156618103503510287353469756830385022150998703993094824992270579543790382950503009714727230816566918598176544105349508814284381621335671696881851252359026209212876972910079072728579141208275960663326821911542920740414660031063292378808295140395438448803350039946496788154657757531205134166103682205678469083941557201632482758854598356098171123259828912672811406815278594712529568094084675932091120576574575076271945252125845804994488678997678728580546895798195552134046707869280188047344670095110840783220535863142565145855904089889286359506730109757345874170081992849545589440257480848770163736324388381310905055617072596393592814610222660911843144576595955517705624560060439241139190009333497551519465670771979826957370876903507598295650152108298237318274608808117838169998733608260579750093208645851489346808219293665101722562971990865824663980704355524788986590296892303535125759017847245141971803741585465945840703414228693932530796750556430768786699685758161272525915506831841893586511556867084374558450680796917199224440792569268344852142453548163441887945035071009545143721431443067356282186117884295118222334117611902574913529805065829291706661929103036973969909305076679181713432134406672410538841015859214203990198156631394924403149831621860371992895477133605297109224450667521194326804218493381526684786377212195814082482551154760723521678710811389251203433383927856347615871655849927476858273245867958637236357515989611088101709082909926913940643801556694815693442036088818115010692707733434782374663714883098779264802106384694171894756869017723210689790708251980223719644893850138501817733836332009648796192581128360615289676266188336653015480922692236249695650343271714854938011159062533645396220646790174017615937248286878997579694899870620069487352004775183479603105928012035863947428425230926802553784855621389353805266094374744211723643635504026809461190855019215435246357392023597428795046348390669336621086041314670216604437037683470058670250654804529314069584575993906098694343060988613865372108235045792754057973636401630866154396481504390948226980780851854753746802419347971144047433873681379343734527525637451808500255203037585027458931408892568610730368636314109470771859731423327785113370334629719284961880787085708226168751877817415123931910207211560030862141760861052515630752932335859444172206070054623374153550364336057945819293871222298126803200811747186092610540538183687823997253201818366896081675914703038105426273836637955278825469953920824109795092820263362883893059308479754706735406106546108987409668276104499108032798297213742092033796875754201948912433477898178631821172445557358723728680988371516850196091617499373676625636965892448770038795563583905986365573371812989825625599158308184445275089544621613318957044673342789706490948497963194662925789053151487117367933529153312756234856121617445245763204032775081036588818554942105517809671569836972995291603243208625302971674681689942704504379279899011422674120415716800864124957573101950440163409839301480275696124187601997985768375818599507299090074310363794813112894002442397746025734123439234822349282471802674126096157968952341004866973954635529220799618693667997531107110877645299776636564479400432200393109011703657978137131347182531547425753038526909909290738145632135668257461765626822449117456459509267655896157431273156131197880978777415986751687217693262334720977782087589805099292503094697371597096126713161688595018906538018922062986841349419174070098684536936722544143448127902633606511850201114151495223897160698054315626525790921136252338258301422073930112707629341014244124320639495009773023165039343448179055205646602932634170529143985828298130554849073656791914104999166515406527454555956719506646602053523023746037603395973106642540107233696571625253394521322552912021671244706865076850144049317980701394701560087843207419688110988797230039519785902029586733653164265447200376898075269556281279688086818446829557244058153075324702375931858569153570042650297991786063264664681182407246938594688124840196538093823705801954875799951297372034806208215866803322868440695227342985580748755095385092691665143770011277599982208332001608661029907733518856030084250881899512578024643342742163949921610180944239475140387271132202325925868812844577648254129315385130889783798143241498756007549723778162949922942259615779621305679580679218914713186147029579560846854051143829073979586894424107588326924457794524728829457683113258271768674635556565717625254959319134415608299569852141664454006802815403831199320291047108170562226239843421980468869384873788040369339777739860044709028614237674716751209499963312203599913675044763774875906883839045607566678832529522731911582510758168220386714861967718869139714134299495954470680930920839303126147544037790039743665228600516926574682615443083329626425663479121495827243470701122762994807812508582132450573631795926504144983613402819881208695423336020130762996060866816792554128849994777219980725207269341628804193688751943642682036761067905055898982456420325856470322124723931526234867845328085789971809969486207333381669200263591832052102463409949054242519860666959766574223585630353142284958291528969155377181820925685440254775005465425497315642822836330394868358337494899175174463013799851041653132115107642067789049407591880163515231649751195239741576500527655588659092285935947910495326938290785768926536491679856619961638704401453226167827923344299474637368014272622274221833380475851426054692636447669508561768995337497927239558027673029729999634199653117146229770693922221303981260650022169579799820458546764587457040686897584231308593984116298347849030331709158116846512086659914682371582026382298842933383363289692371316741442498308924167118954306126170822315784246293891611679564539089724052460157176803744422337973935445896369646885816027099669369572882869019597334531845017353704114451088251253270006080184390611649477680161548790371459313453660695542406474151975208663396986449202754835607836115214706554604973334142990148984847703460312329071269751738084727190365751924754186134039067494531138709669069388222913325143648116515333270699558369740462724031326650758802414601189897241293561748784702050707690915619837968458926291706223548225301295409625393047610333990703950745768102989992818392662247673722888328794874308623946288568687975631612495374913938335682993756648071728065421784468334690807795305718479095215659019255974526574960195956773921642587463277334155529001870504645100605198024662666368489871601828605480804032518339178211668427405453083034985206913821790396738571151283530975729975112804881420689304721114199246510431281756708092604879980709803353639847413177014338882736710765259573523354451174363158318249862516414435042904780397678210520372160417589409092076099656676731855436857994590974799551857457293009996037295001244006984365129872693362738235977474504522601181512525693633060204633464264672445942641509963558364700586274394783092506955885678137293914226745176278814624173856428709218872962660210582090320994619119634976406602430161459170377839833874743833719695239123543815178902008039248598694393805182733822366945460746750051843377122223172992321629850413769776177538906629776608649776524035819521828449608856942054303675242543463820375222969966183321576006970315862320710997433806382668376955272073755925043743081857084379824782245105878772432629943227506311517750799562125068282329627601870427675698960213992683555990190053042753716240047322612942138196180098173096229616070741284247510393311791905756270133241317524299513674616424874827339490068467785352994582877591203120149010547031611897725155165930433755493911173491676209846486582224044997784385826756269045020069278298008970329891691541234272210036145661026555228621848718229744926696926905156657499422377056219134963914609150156339318416275305315885985016950026011544400373878645372678468986067717064638537507288975843227409554260484324956757621557026432224361324754517014257506975361684452993639211363421173741260852502644035335258908031843988846931881529048560326390183857985371960264827053898378764781360368186149947748846974603736038202775815634384729455491539879207904234431106419641917809373326535483815145922022398810493281663230684629241032112663435594081069983528438391990321976565436079736287996428662460615614517017727813082899767062877934702725367479423200291488583938854888376519015094134016144882902173997602900736770878711777056474729570937533720914171704271216146403430509229862281585088367979616916633392361123563460478155425489290334267682347761255629980654249027173564766260724342990589877292319141421937023817182952789829441862095598579575604978229632037544897259875469776170374218196304272587267386829941413315183959222199281037650017485009502589910728311739476512227023011977488996071966145125947680511475478722592865532072890010923222210754004892315000467907351989144713226372020411753269873665854638104023956481405615137739403039921314388453368742821647252489963874344064056980209525136959750667362555816553025402227576934186610739583868490808948476001984051487934139654654390247663845459661766399388693460941826838185933422817526374607895308228714295984384382246833215437574939158758811449204815148128937215584368061249305455364121481556240351330661393648159740971093216426023446913832653934773872875551435547458740819661602530794927554286837645961985548866961168420885282051305800274514921640549182786334411083586447833455910902705243441901101757687156759400253185786017906273606030291989635567963520265996570616672409304142285199069577868755425205150595025188356819219990493263147013149633262525143007552894578599287508855493271330553318293385599210893281807866725804669442450090432318802285553236797906382783239869455851484191680908579978005236439135585411670027360934284980602758995651055967764118281908718523091139777441716074062132032720664565582298344958929243322453031071245196064399715056693184479699679496078319788567577183702670224543253309370207749820807807292444147666290659159593643018784745065145461325913547279248333395147202883473837493197279352578913809993641740000330259932630559581900147596920849512893852800987241185245554609146599415256177483940360822948036495430782169104845057543039962495453057879828073015446473414617854792737922496650874967002893554850511658119745297672532825629879883981960502550441348512103407405452867764156331124501297808086285441325108631481150974296901711049173162766630488470752437301192451919285142139658109076235120509550665721359275010714937783451528700242716805651485636982009232201487509913021830844824885197689535421824905991186927217898654368058307485464736005144872785537477776987722807112367939613401129588964170728179289254321567469566852493335959689509804981623143827852590770198557574729964416470045053570846741631803467818585595801327240634945774594641754667348196502758224516152650358603791015004574121173772796994788007638116168116855570254878935137433668719892181073482777278273601980456157225636381226471162405935938843491896375955202018385653312686605164407047373661509938042624176218414719971351017644844879683743972738902018574770505560308659952057411642277621708632014556327049694836569017396698182919611219372231379465327762187463850358967286054783461692334376900384020435483336115245348515163748017359148541646747373077451413021212360383154202146679371788293584519403805453368249956662615684263636637089966136118576917078858880789714642601111298107127832871908777351887448907942624158409549667544219906944776480200633109269237221645521769653771485862989790236939219067568000898125109154007298108335462106317058939251124083548511522788342224480961546879776675206799642119978965961222540033092585224250844407077485726050502651706000183155946625358737335515718711513891389371612536045270132014038727112568678604596278483694097311669614165221629200531740742088189198828257802333930971905226931451295447759740488622498319673734230652401646821912511666947040236781461780132001215541468158809523361887591481299785292342606715717112262280739524623225570317893465151026342469032286553748883476991167461665718346315137181975634471220964497471509459175667029873570248301582360563899378724741691084539587714389394484441395302027573999765441576133211580651760078828826488685397324960865453571852806540710043530384598744088273498890335798900934251733332304886418779726699062495754460187885488517159587961526621125869276678682070710220428740322191024959412661058728866908251412086807887169448189942444611405682978989656419393573257752595968469854356789868580465891296286669106646126464171530227753256203749135797467479252790321437285417369329237284861783876803059653686957288924450442621358318870196527866999671380167046750332440824412024653881676253563088663524259810116442034554304306823654613831532818248626705299094848865458499177081264731901224390333942452242560218555977010314613396529197108798606555130867127696314058576366731687790536790277693455584579761775626476787103958586405969650830533327950725421291467593843370709912807562607419625858737470294160720697418918731831780420344243292326536314493795290721855638085521646057347568892487238470347090284203235879634444624518850905991004317519779217917720923112463935450209426453282664411508698291861073334612479297391372519619554632342593527174664998130099270142135897663298721229861710594742556178721547090715680973044701106406141731258137857780028434442591684019625287719477523177683358417033476421293281847498910849065568455709064680460616053145325097117964635981821345880916252855182821702036020646994413915092961565590438630368370037308287556226227766482436012154424863987220069100917522004877267022642300497768022335696781033722549357505094491540030185199699418346735587700854341543369520368940861317467855044765792876962294513219720551277631566104471994329341643353259555453541812558337572241969525115833776823204795048128228775871310000937759726653634903903160571015591401710486258155196362408324813589810587521621912632878971028336586307396105607307464025467902926190499140374723520438560799055937189601043750117671482310404247440216745477616305452688381608616616915030436052429843070816191556509996188398424912106569473825948845322090722745201825359211033833759764854758844390918190958003832298098189896199053789167105671145979822220497200532028324108619674356375333580238000600337496035032417341287265595814441001774225265582410215838569651766385857119288985125632673671762359111715820037334179578979749416721244986606921426233769153105950766172525388810759120839530535184407505436551086470267409751699414571962658318575537000978243533171518918269725865146900721826670223990858611481184653014446305406344782406400196827050949078652393582850777405009195972896975041266999367891881904639309031424415571772221901619078221670316175364393061239464932400434477975213202656736419861295460802831338289491539408460736122616727412161017883701814206579971070475041705047703629842450928257056714133988734809374956341505598235915567361867331657461142919718869857664613333758958876548949067315558761203297398599824954359454560683700744703522962516603270118388292463505789424153861419242728505165564506193856964313902163873432866895969440992400563727127860604518980778126931993905347610593127725183953355651208531799359777595600102937963589967451867246711002127685435142836345383574378659002276570113047896870531593978979646862571776751718788166877835590004774647424789578098012724696840504490696961198673455249341411584093574756095341483896470244350537416072681696990293956046341848506261854250938710257698845246899868108185662673964508021507559566890019717894386128182192055065333365288006865075591901371415271701849580690246970877550302949459438067684660833445913662921922146543402844053668368633079039977319423227451237506969797919511906469464932993080327353183933167446049811079567115338623677201596432238383287494543482511516424453097381215872512588120951088534487549057637401956960344925855291649264522501051899201332742495175006373036113939016678531462288821676815165303423841269957307803460640597502518204828956091964612684077441528201697160627646409909180032903266599055535980703080880318243275787517026294069350115621086671017879430892472420547227105931099914072058373171761637174178105428131122282730825339328803309626984833953297574778621493592567760524968225558750218491100925670595424830034024582328884562147475618720676874524190342006869519699482590520746380389780612365641404671870857740631473543589398070420889881920459086365227440699490903516901370105024196464851369803915803264981632607486860214397481809616286548944122512555302156015449283455102872373709839109978683043308589087003554802098428568137696389826309105209773862659991948194816807610934105533117687512146977548455220441798605238931781552727997209396623512912260555162175341763654172870735094603220974721124718860180476736409440748153090490901339035150631004912851600731287556532942710948607158130270128494271435655013488507444234536210657002981347947777506548817798887729636403838333716777808935655013747213803524731188985090819308928813459693529003472385764048212039018064772423998413812653553353736356983369292193532705209872226602829557886440077020763864535800859048112636029696938448668287743115766967837911070742579576418878832903921943811793421647158527194869210712897770815558765415588737918275649142117373469741712473912416000302797531139368714591421523707114767662621578202381310679485598754059076528125802177143919994488300211770228838449118831678026703739637753986552891015175192987823234177583798779932646958327982248219665769785370932321005626327419163947010460283929325169993976299467779717467713823148994124549181283485284798068493170198473708213005821626173900694909966325271449517123137575208917601667551290545919206153221089438308457361172043695699757626398155972975508474787389545892262633256229179279778843263525365598061318834347671607462382807378619204975484006055830602636546524879103701760868281604652348228796158001894468779230476911419580428727563767854203726202759974543606163069596431851946015114738344869513962497203978512662298722729257840930852737727061454508434494148966877773901956424236426146574955297871706286490471307353145297154306422336045749318858520183762596500319584623776560917358579559892514891484347719490352422094384851834990667255004080715963100369798505788635359417828347068645525839009041984152034918351541910175927603411469169509830040725784502327896877423113859289722590822417072532965519701562970110599117213229170861732264303489754608131068956651967996188181582981628652775592849156410270923994415778808482404877985981090178692824685575047811992888818153359969974459026816413160309023411819184802775936320995982818315287804664454816148370116306696168964739620238727037512854759225447384730947031912647268390464100663251907673010303137091705796584740538647747946288080570803093295375778482005460216412752154817675463529714289093269260398545171294180741413481035873426061667265837538857961266235371646165555789187759539085660546713031438129440802708080527460642249009655646676546304285715912859872486259989157239033430950716308439899660254355216299931526256649676574304542476101849498098472699614168513624462484406952644136445150953447771901010173021799185609316993293235521641104671769752801544445940309355636024371460760366534182583950158928606556406606702047084706564852055150852927981108905397333384687020508925237435695035453717282765227919871940121648957821676931640510803990243391188155867716459289870240254212805166908456625396888999340873238638621631219227793596335150074969015140057418455989592701769173653280778552623433401176554733641546649135070408573892138697559640264304843260883275875250539307194912284422887161892576669931640093612556463522945232202488625239394358407441783936281284763371162945451453072281390137177787169201251178136833047411574708974540860351238257853857846811940588906159035074991185458895269157115649575061969968283873354573524391284533061918004078731935484385125256554295452726521877444268897068307105924510383592892384889149529775901088985272974965689530915162690271502588153770616532233650821933285623972199845055454628546692283417865877740912163189912931937934057782303896647036441460576831364067652840935199464268466536330270966333326404419182794293855076050602861260816394933658725678326962794775850884466917386992893917874924499233061227249863786421122999247593137428315401556232211691364484687188611321540226268993026028372279860467632330548872598633680582361299561786279419840143293751859415434664240579594800880272609898174051342335759293085282084033546741306694753938229507920569825849611408509252114624423660009949714787255319768595228837898373850869554204298259966175470719014522004729259149227936737456150454062425812334261870963045603757145672171191581150861211125599657117020441250981640002340641827324565604271311819072993604296618661801896301990854823180900676083714903387887856353464272462670092036274707085503533118886931419136708475903531120206508868409994764829118894698730222871204815310674972172801895029912399345863483777880509684049007895385508968322698113526836467520328280362885723580344516272874253206227533602247019944512333450553117809195549148325210632460806749773803351143631819027552797085824381529073813610041134714247963647309889369734594720709803187084137933297295073543023751289366154661505467093947563326452925431430730644377241376171299601829199044891939264073185900017471266613333380088700074640645557518788084258235548343060310407548820639792882663715184804623487502381858119087680497517296648210028902813476220943907287526404985016204808461094426353803796850172600988714134542113985876218828317029622956281736365451150567063899944265164747315936831158447841717090029544333721595154275133598478979575152396542093236477874767670038816593761470497516462017055144905096525456949579511855708294958037341898586969240307583134265495418888111331829278421252347484604726565577794376276539570498496278241607632611485907318797696345451776650633481934599031469036613676836261930885678466540254075186991996009050779393587825648028365052675971656295313006154787396087815210776687308535912630989158273234166421630505915906819366588291287689446806337859833347358442546116959275928959695045221510084420587138567713970409185007315132672484242726790429440362498080628177308905977885058806215996996630348870973241425360784904198591803473471961831248048152020799430824458986149657481618776511128983594869393705897501175633233499613569825244600351472040819316614534002926236253882502748180475228988526175359228295035782980589479941044654351288564867274757298835894182904653430934756058493233772424724147992726757991200726288294485352820221007540594596351853055916085502536277473572307853472178145151372308971926570664028537448912738226346804869925757299852311438882422494593768264208289463875925873206362234163292141448665095375951071088601359691991861619677964084894576906183771099643747139043776163319228499049264875463790130357926764591103354919598481403443483693077486410166134160911738342612704038169983829238271929334048144547909596485528174230969211171674648691814102639533258284928766719388375196814726029553245514468475810510737992546145703738922075120255401842580699753955034761582016943946359049595859008366890298873995717256880404581098467143489273397785629313523267190511866185504844145123834573277867090198525173620090007069366507036118504324899047551816048417599317266246893378102293786690939657221217591981205815880507770304466798393047616746329435781795759979199924194701948278347956050128175627753399042027387821439769033190196860708594805687725000918485639980986051026959102456463852617225043658565390596128236370884610409166879300504769453112152943299265353260564102631629036686667980041511445429150841285200186468579430237671060266550422374308919054738476614894756848459215523895731629777807940995801356092257881107528218107637244821703370374220642910763059884009352942985670893580043619164602476835078179310627317259555210221786048997940627172730505001020874221124031266790951184864529352060907280549741522614002230815303461429394339821358798978240324683052259530973682071741136408312671644500355419016989615227619543186549406366997468677743274536560061673401951002186366820382610102156073602238882601306242245689077229967231491897489929193589940641481677201233659963310109706103943372263766972029633011406053406278500192387807139918732775270025137465191452172258363199128630605235756629552203000963265012196936317102880111760655154856145538394853552653702064915918044243964535626093694324115080110214969278464688748476942202818598266190823551139919948917821124782775568648689375298658937827942329739369907533564369638596235746289263772358828743575625488757287560967816146044258573654470368737286115468246018734535541108763974023945902442475355564700479286302157632596577684410189623347551388095208279399013407867928969764701414738720630429592358406282861290498270313139426268470605282312092380637030873958206103698058087185162692794382161501696158825420478714270173733276654656578646402120281819271587725473477242106906428277187359566550987750647900018693121547148872108998148352971960931612802862548152393047612680459469113262209098289249986167222375309344433540701088955537767313180950075801672782797645576389889150789806404685808739532526942082281130692384914780026376228059072054112249325636042503398323805958571487700326912769511866773917407668284622798615115827001035926716821218772834640843505971448559750971213049177589110594557654234683484549694863613697218053711115442212775174855255564446050981169040254714255682227969475136277172485795689494298004851389845685916549918627433563913713651984598343708690505202039751399948303585238420144483487261343293836200183659477771274545020322505862728985511624518336965977546966592015228613395031288997182642817363226879652506799849268520698152108601316886777906544598118028096141029741420498372153463854397486349500851419143413495858185627962211799083579442515444812733776601367921529471455540749488936814391406400258628590652268589478314284349705884357039515193001727488848885824833877719583426042237562949790222914597837915955133214648629902844764264591759943773558529287494455579324531337268733647288547403506070312359210723706069000598706536450247356387729233131949159458837960589032703407854999156485927607309213128954959396924270042242788788809468912778817670053114649286137996014228821973845059175546616840969863783999853475664376795629465190240591429693449215931497121403953814986915180972695938703297178415317078400113516976980816277999490860367214611724531705349578999458576261162769756470440158209309520952181436493082265504221294116160144192778292525821694654073096064550811443829849280652057256693565843027207859705744207312344739676826383472045603408389398456230792590026356882980890427082604749193430679662034116366370616082140104977611816619904888783858499181401429967788374571007732834686535348803783328964010031725843921199847801911184285714700658224586538753220158150262529196736543356395885296431593643412921997064729493044126417211849858837437039653982401868773287590816894899820329937264416085256749813035984363055427771969217534294758145995683038556976329391875650981842093465517048687780782882752619976218492701225389205451361341031245006394138684368626125304141445219332476260951935495305426051510034256028535142792352193963235655520079929227268848310040156182511448063894175988747580121249736296896811455793271316658735724096071007877246713095379445145223681571219360333183156915492985268879657176569151092440888200113476599000556211886246801314570619483734979076079273770977519678079908069197527870330508160303842455102072074277409176814084849711524626308987812103742995010196363288705612131557116055224072608514651439397234348463172534582001819461611917128021870638990489016124708387578192781121343042110637709333554122825351627891827628984542759486436397758680086491574377297448842240973709952267626250373099813567252480219637653347657761616175312324063040229502186750494544707775198061261020617085154372580957368308087548959185709274881525750322031201554643692358703477082355003576891206746948650537666720139328660174595004227642777999429000058050570469249918858059905325880371039437818545244622784228946317202262417194578621588148744685527968782867685566495158763892961171724497702005028528664439137648576609749934456220824769849947552533584396082118754585460166464464908323947078957321393533909929470687826117923072919358325533789371334603480365607446218915854953193266656451227613089605821981812273796898071267918929625513741294725271416406183836565258218352706957092759137048017486972666364544298496403319216623267487351700203610874164533045166498152743878851158227049669617840604836012902709228305549939844239328725264854815602318732522103754987395146444641521756214807370236767496295748396052046765322084011985388015199653702319322811802046735427402377756779525116239843940819539276591332643666970291902086575831463715281503305467583319621169884746042373815228249282434575327307962625093623105426625671281730727861473448674801175343189025943420721219933036916396011020260409454423985936620131329078823769253853329725509212123780209304802654854152491188669597824240702699917128768613345097145266055558635544894344703681671767866709830289189290692789881237394682507002446980595665109723922188187839723113098094539713934080516472022704327218782877416050613566037573230024722930133586486950244134690839954008540065749262850042513896987168469560372395582038741502557844163518369006403608226192505788353098946944743967450230111169478643625529320891915461888053874619748865990188175754226060940653601320354577039832158654453651907871156562842749131541369790444178130493347280230873490158064412364516792602612018536527368288003744713017591192881511606019208078270136926406602104242847434803394525949337402601824652943034522069751302727381972034476250641559714660823144975937024131662823816429329320881694013414864156921055251738663803365196802675193163636157200480029091868230270045426973702690492216036827491262797049591999766201391927027684027992303047314284747779659901033889255473034818454974741190653700587072857113170244775392853387320990332437945626433339350329516933759202267144039917936177231794124232977656158139510925181046762461563284480232167779296152730680920521286840322642678796393966685023244449680176620913954285049687111763606072688037977804131814672201176283537283876851795947696865223295788236988057736170026702910735127702876381822847538843268605387739523626104915110702505067629020293609894503193829257934803230706376688394622115082992973792078489670807837204170858455139790582532836247596472948530965565536431730247370758244505815748772453943921749095911465035829644150774572100953297481079981012812989026860324522782078822544016443563257181410686605804592063785226083623110787711565208562813099396355902277563382920071164885567385310258695980887625455397665574642479455107341102395037473710952667796489921170768803478058236747574220742071228962115384878531038474421402319855498406275764686716861372518911548451334472440263871578473029916448988146183868076754971230999202188548166865731005446970542355623247803459563932086133983837176771768601214955301938921863473799377133690032342841321131994777768594441410685803358013780533804836450569873052215703637209742481161074745937913644221528277694648564676057299106031834825899515554130919966631546219716958819325922004304203497194524115210300632254835341465399012243568282490940553038327807975507206579470365917334472496499096846680359833867549633720175925397495855127974606368485433779676060929629370960633444011953506846779633904446726055056964650716654752464329583264019625275842547219231525711432029509640917704243269568988251370520088394759296821901098038301634927753033655655055520870613003402045204805705425972548953443960333017745038027916505614609688158220523371846890609256435404442593797288677493663196800212332931008023343814400187877415619876002014536686663498765079183252106838811289274786204573872721260409169079476105016698294083344372501856971332389570766388609211043894125292456773000243030218775502330703018799710239113720505135442356233672711395303537778583461292890891107284903421454571268816049326238099616047050389262907800502729250490852452962331273218698400991305538807562896513068883391170208773189281299495004262995805999104662786103388025213506442802223830115308506220285586065770118312711619689780590728524421769809489958730086047238699993093468649621368788546500834140571607723875260498810717069538474068385675412353856328664001549037463137566848414931091547140511513661483749618366998189412343495198607163488447644272451053785637893147374452977738863977480473364769517346446861412643830290987055546495067975145026540108245034592942329753756650879860868696553282766824215926580893238515353974875810482378469128292264853665283949530206409681526124513139243555063186683012389788186848695920435685208180816172111032341262439566128830193924610820356896538516652403428790799456618511044458066690795376460775217564702209493114621702360223792410259093825994840427660692710066598481261956343659805941972691345306973417954737030965718772818408131924618080346908119415328231954129236819431877652723721958028352142447633594615643634193673475888331806331578942086817572883579095598920213942076582112077338175936366565685806697069839061210219129597690272934978723837495126132259798861202409692085106260277175934452604076857192067984684931681922061007065438877733295011404459140434631397412918191218390909590079508871057073496454937305775713202375744094205629190956074055392370641819813893914071389705683387247724023955849189763710433983509924766502448167016782480505457671486262793738932975770022727152276158716104646927460504450422654792029963037187710511597682495257482917163151226231448187877255301024076577731396993555289470898400177026375430347999978831112909770364354162336084967691286044335631849221300552585955454775490715775698549193593692204110193578411253123842044278711299228050859109010004537765685288318803264610945121592236034237372062035464063694279787912070354461960785667296718808115820753586497977913320420502200163188407787637576047001491066938447623539344232842759644927659905380909704019416353309396830559138517258251722746593958771221784376045159801604726292235214861884032088200927640652799063980475495538453182539620138904989348402075058626426636090825359386995932730526213238740113798310240382119227630076469935575628487455653477064920670558220273990253443875557477542891275884651823168602749748785943991854394936378577402607032848324355768078808469574915704220187122323048901514963673865724690863307799005080504320307073719105215942733031228403645743377164640668732364764629364632772028407769646498869755964209882844868242818240409860316275227506196010598126215561953864396263302333461641537800957359304381809362902418978585608555690372699012871741575980636577104634454270304835613802341224748353372468050435331260562095913322003818767249596242510851486117866163263915493698996406212280382069824346967502240657094346876896539707271726833705712320430956775184398659803543100670644440342880606830560050915447626159985703024816445979969139166157075662739415251369786187752281135217945615888874548058451440976581214992476688097118156349333719355872850031424659134508409958600558876844209186964009077801923120291666064874119979370868173988138141467918430995325713761851492734992176749322243208397848618510635581625980110766213117259511415238790229651935844329971371577768958922273287468055063473755270200906372081559015245082302644876136966709106723239741316762029007137456389271391391896362390304746174537129678286025474667003578997302858284217675653724856727006470295924470122889453070298756088090808222630923190769819930537808357017809521011532351899134529649909819419543626773869568362637856543081493928526229233552790209559160207872982838905338060494892050098307217148717800770491102303856801962342809888206501516334586181443142936234335036123047901290942883130482489330577770055435930487508699827553448566898192143919325026750850016983504686712529920535335476017615020313708772635365096675688452052146789560816085249062842813489772494856853624207531384071370132793031333911244186943452830038540943676718596262364124692799066246061858822377504648758171402300015941873924233207827453151591021225403880450109647325562116637576095323236820993912987767080775974552127536851753399915095176349501591594445021705924001817164237167278788096197182786093129264237644891213161396478552687160513499256779043533165375661653913383283499633324464488554967063130124164415414511435214865578797789701507005805104744131599600438844856766593699245237892867025074768460872075501241477605098894176158909394583947481933566130933904988268135499608516066894854101265950706976299631640886921378928742569632961419432535273053886451175554242344757461970138273919381575600273816224525090301179227543058430527931672553274816874970786225493696644753376100775736267078129252342535129425760332590120753372197259479013436837966056554680743372218538894274552204174623299325805617031367143062735233954645463283971454552699667332550476363628637630345300796521054871339850071822490187090781766616213213440884186891629198647601606723865621502326370728118179554993616586823449777635339699020324154758815643007352570489252999230772649624197736099775471696561384171977574270238332343608181369537118135639184722437164143738856560383540691670523072652323032996826555556827720353010065715918318353181377811823280638857649834424942652669300347615328030814258603595250838197531829583983255346272771681672565934172137695902133389205709801251573424702738882159641017998897828355721772311451947492393568017746390388842051215516741180231466358790061762641179996158831749192887604893940252003873918012585975004244438170541505326543444918715890058511053750933614173536917366663185250580063424767350837841503582918772609548022821113709073556210087923376628495102675894132903324273505177652250776519498939584584939460918599579840227214141417509709004390767006563094024146209249252764211356888707347071555786235537592687709625533772613260535496433502137804734874559559418632420545654850133906278861692974585474404231639063743424703779942629030939898451892621970646509975659341237442781565021240669332217779529053007374367796979661169230453526302865490059838324800747637938636769210177220475127715742801681187893629869332533528206616006359928909917707596346482174859455284285154162389257970460549857533874182358519656745831512043257001337498398239347408713442238697120829358266298791709042209931870997599834913648133673909938309045688620592359427038479639166887935029635367237324438695361297988698186774215135756776364172745147376473887485769556916970090958783924312600295199883920560220540989752403481226510955313434077065525749139540452158617370654819018990438277727236359591826733900625123634759207725561549189304122854395333759809483694002082379632544103974408444414531405697759453260712738198585587621483008190130527457563409178413552803808231345165729206242601404915561877770227373849606088856130836368615759252700051835047857744138922605942042185628752144814167693739210439538705784352623650226082389059300778561058151877159508449667861704661419266838426051877150031370858122340763160633096585589306813842935361847436206534858994795346069543047214457623964687167734023335143245562951073024191348439153252587665714726822682703003879538767508532748752325364252913592422213572728478286712591956249162318665070028476057321030940483525097155290450179233251232399457400157418869901817888487941340925174781682114222809170541760801380486934467824840952269676779902801023674412682281720787547613040323538749126302644665578161858508783390332577862776348226234918365679258215653680233122737209027092974158468437831264841321882285421248460528692344459339262830736899103127365683313360003900970550141283716557541147642154162053003087662403293819146486002117392496693727174103024905472907203381398619550121496155131387615834173701288901468805066514700566622041396231078094125798555755979342894765326760412604232830164720375426713880266189312325926981521301815711917070647090455475595183277840234007063162742953163908435141577092155792204425582290391512129255958591495173668437742928129007609571904791894610270966521186773371740683708501864803959755920419070922408864348235135993226022142159545023905594153584662100909553316450474481433562231113007729017235440468452162730564966590592291971790790863087650189984931648291150248959322330961094765205905301547184067671099106996460217370322260428474383167843882055488257466509837444335108810344446299560722325355193191988416367563077207465429909183831764548910084296544175703717877888607608103208822367274362875437888919929892794696581896972327110254458615364206926392656706480953301469501110121998223490058315859618332866664102974557329104921602208939709185341313729583028107676033731822812843286335203705333122684638140151975207074585474671703228925651463887771591700311541294028223161756038946434566145566167538501631066970320279997315336391275644762967523266132861782281188315984229934555028454077973117829972847960495616209445435139749359301485876684321823544025934709611861749215348958445915631634016547400450422263542377093946992698339691086901382336141942322132143897172966158380411598178037038804933960007528595521355255770950686318508869547662960561819396851366298586706810869406473285844903844173009593109184372416829469182228265238348649487693393718965778747367873001509659618305095426646121730519294629921802736587848927446336127524218484374398907641254900263152365753985078573184704273973475609972861952569042514763003121678337925114165622172303065341032382295958120812889573436057684128804292893203246006640892370056513591717997531573959552578069132677898424274469607406937499913640367794076351738717032973505006679551687534869768892985582106308914483291444893098294812167305285103505273559082634766170038066023855044727077425542794167948183545753497931833409826972169599082112776098197941071730897567538427648316315561224963886868091210171583427991220275751623246584162115283511108665330331729787667825301776681271673875565472025658809591043409592672278687280631592408362097561578787048384952763463829112724116838827619540111321564889578558426559074597774505687443894693480403043999773224335462353590570353459877343460714684845625104266804769178485692787578037025131518439976785009701433716027152836998718447786862716141253176608699343700584721457925713226559687775150590502886667923228933187061770934268462274354213958215689255466627690238769421600193896592772719414299178322612461536939354085753354403822067180874407679276293509653355860507106892783928303647322673243672183508155668215436059434499295538772960059479459842896974020244494939499335446487478265809207107666563474955367193289731441461516473718923296017801373465051100171135708755696222541196216889539656100584260490263636786050777045420067043376337369072063449370453546450131659047097751602626325798427430424645563379518369125729303687368396640575802621309848348001171473914542763270492344295719991877067212600601769013708140415665460137459328830047892336519192415750839563673696326030652513855655748865087808744603308059459270394011282127793973265491008559715995045660522713198546219896789403000644249653720758047533739281765747122549670886953749038726772212329630266519405859286768140079926826688124356684112732555732825458650001791868382207989202239960371826856414750340154431278379461564326007369200190249371233506762565149146464409571129115368286586019682098924064097471263831361977907705183217890872029985626255974360186274705607236797526990285596083813343047271742987113671426682589160517129395716536912295682327958604362844687498343202784318637784759260010273898860683238438871094117522111560110457486294302064613309090759798927176271877260974388755375920327782361955163247461985689725234004964933566653056679324848803618399099460172633459190869746877203233167757061169422293767836527127390143525462392385349762022661392767890320225906757303088642842962607243280400445573496859017484441049286052262766642205707140874236329270308197551006510379185227429169622728017719400333678789026681542710036115556174559730606487209308401027558234502509364906332968002484903413418405816985427305086695604296701674010125989022478966421513066802680558125440928879526277669989397675392022583170886864254377799470116956942683269143510153923464111221948796816577426323169481825269657591695978828007698632159794622861175252083021778559370832364319950155870669020245951820171403887537691732929357025539426520482481376818122422554945810115996986132997859629168344954742022234696430552226805497132249530398282634414297273299892492501715926826509496819661848820506538224708729939495160408214535645845170936895761552501626343313593029989498872469547938785790632151814890898062966482668274489846561758971463538798778415960376277012519051503278878929516543022773876977063046104101336694019015875946277177379084603591446766038744140221675462819120056259041765332472826609662504347282786335175078470298676891298527188240522376101491358568836279194164766710392232208430915713660169700061215802129822811265687857364319507180545571650331628925539990920219729598605331187329790092252046234562759397655936869325533731054871487541318442743796765177069615485641610541892907515655965838457682873469599526247441059950274065395961074920421586061958652882138718971033125476695051373293028467352588594925132508826974940342022855758958726147839883286128834341544842731084822740041199801100690291806051422140858824304038957239872602307469903210887542683406039599869771157987933996630033119710134103401909990008845100109050710479774096971674379820137439966142656336885346268108056961992283883105553410681371778953092490133734781574330355722610981782469098323164792330555177502622521290564056623938753026385275596700752664549751119864413026917685759590926134659686158570124087716597167389792234321083779383126612780279942780418113387313440394043001392041585036183232820871178622022822741482444917791904792194349874614768718307757018614697397422319721733128948655090319497263299291065591048769322984863876577851410264820430031893620840733861730761607040399223020993541535132554847680442139311422030623995234956247538441605027305488236108216299730761519802393117810748975449838523607198179249267536954530025413075793822750548203157642418598488683353603093800718964008697795025500291658869446727244236573350815339999423072636153219361734258701215211600867036328467070122507683517364248996923592239943059069573367989163633096057599795184000144291864224599854499085955692562773242381064664207050111163496607561661450907065808423728243701794110021477828285585254311902890495775852502478416351357615843973688700534583805459937193787573335452374594144325111019411028904139951285125826367840540349209958034799139062376622712962188240143428143984774797144187128305070002612084496839631041158237001066304258781879876129808664997577056969421048786950456590665476138414603105427515440555553181613791325280361384218655135782631650541759931311673388878866376357410424996478424589145507930825103024787255884418115882665957067914696211193435204455133288568938522124317820496949278242276896430317937198119111018302335487580625855800820228424691590682464879408818244613643480566829551726106355422001372051193017983090465245849979237151685288939396202779779223405247610270186587572659919415458023553340311585590174574038455687668758158301562396483401244397625872057134515563513107538296023755809347743257121641095838722904837585176156962696451142538630069668404471346188412416156382287049288833257995551943178537840682793314234407723048426280842174975383464093962781267749043580381795663213719022474236668315567677239339618121562694708473157180642375900820757728599531083722219754461434666434196483132521330728907865597593324305075404910136707590135690959230312886538667593130099023134268183444949423156369374297780124361096680544963198350054871286392925904585990432931676987471921729578331924927201312743392066372253337844628951099655873593431701250078087208232143440869580637583232406002463540002192579825985281662500380736769438615600640111376681779509094498800083875561165888361170530801304218665858701740121649873484543678836924064345000437283894725408862080470646400650856676787628911190401935558250230187493066988951367749662654116339056909659195693871830987624359554451390817126919774812168443708833730386612663353365844097726314420989167519376604787231891889707910477903686652466134042134797156050124757184579678184059976211059217446963827759883017504600134116650981815745762416594771058220098943067310836513090597621674667871966662883294871224517239424362785183608099702559028126292363942652466869074074907404502914580737936186169686328030146014181117674956468681736947428792047557614382112349211707873466796996247039399655752517641266925333019510067755607887506522856656470379982831719508377329855539884261377907850915974348666390520024252946010053547359646791089270842553954314961691746838388962898563835140136826183524154855066486984017856239834620419741392917700136153109274799844665199836859411886706827033810913607693374468910635616114436858681243048730141830399411780613550668987763356504086871079747395174160449089453480648217946496362571851439162519374234369145729131632719844724750362961680944214672283466224427290812876063008330698333157103340594647729276020351719872768880547024130064743703598249784244986279603248604516876761698843951579548604118458134106078584077948437293693426639254035592179409738854643783383382436661357215391489782409971999600441308540170475877394948693810006049714270546318525256380626772685462105430515798980704581188944163435940355907221100169555862443923983795770664349201695597234633030757896117706002791409007280384137844354329736740295939129083570224210599174567341011010613765242575382690934410476075530912114400226848895931805051043214714127278595089348966822426096000067820731092184470213397640966100769271896817527448563449952303466611038473200551355088422481992676698233460506532764943163571138528997898317151659788075275267073553899969863205980442520354750331973904260159718467986362958303736991469769553972789254452785625822757607347309705100161359507655727855757062210945160758284685358081506814577728929901702240257373109972771149847042870856904684245636534423568367455170366379720688976915631899046216810845490404612201686836771716439567606881496971060037658701689310166910839324871688092541006081097228856072523303954359671238573764061519205233118324595602076415384278971968536626101017460434579001723166920737409316908161674573242180503648009370842410018867886733080668990168304461745897620236841677605457358267033440383226033020890848586208514725638681681377493858692532641178304553004035976122389620485058059895129366961832673697138980341205663668907081341530094514302826485675797083708705806517073003687808329785967875888123060365902134068738247745650603430078803329971898636393854678676787684478305981985232184852703129581276830164163103845269759610887519932740476714003419120754072644026004135433844366290702015657735161200317763051228826839427960598170220485453069888037408763447861591328705853036386729310089603638232287428444229172426032066582444927832453456586264894081017833182938739574168021744845681724121747199507857123579609996512942332756486159652582867879932381286497054646249731053047682996890085297304617646970532830996846687825367986162374647545925480436538088719509361500328958112413033097301251851865323471004172694033667343008815770963408861801863987879479773964380912930270552303071696256666720856467927424417583288301711458394138824113455227810411756372947299727002471566126066772519352798615291997338738794181361202032048611766747205234589802480957645708344331260934718595848790680184663725835146253339314733138282675628118006679702562062236795147348870401331097636526594440054699102180978604405497569602518837807434116715222992236437956845139640583579896419282064297108234791113280012268029075006166703236028892008601839850202290663427841551712250979750412872913271747422288704226839655197493130377889737285295520921002209917683400815368037473688276417330220093220604095207951725905925504172827056246578677104149714216153404486394051361533313960352904055750497526612896518410573703863028126132342160815302283131493046304645212149107293512988706765907606620693433323168054153067712010948578209366735262133517840204013660321904523218396306099236540192020688847695418837083952418367603751795709024424711083764680394720739672230156080394173576943793161764298198133738857977691674846150272680438548056927668149933853166415180424640424465976799595372966261994251782403478754394089816171126220767487572313542978596665019239639088523605090062405233673173486543487251899832221531367834145875457135982142318641326623022406558867634481886822747998799105133603726714269430762540464096104478397239176592815497937656998007864852399233589669218387015825596463251779142731770799969594996807805736835559178702896792693002167304375653610643908891028810126484335886289414303793264642910471390839643741050938191621353001309767449493989486637908263036223024113897108234112537769109973197818800104717700226425087618592796674614864526407469104984123396862253180437844893055862745306726065150442346363445571647919024695651053518222369366714375366049838817303215642890908752573218319976433920033666111258432501414551971545002612659114493684947250051741697690891317983099779789167836790408860181950555793338225134549689786531876990603863822634448956172767815747789013868713430698187662117860117900274432091180261191847570904559078656114824947269693434852966760993919995972198707975738206607257547342037780671816529446723135092722493358035403622937696425100104117356984470606304471956704692515247642052609620858253895392400719230948429643774790545278734136017950721550894784735076560755882666206172680699160857614459750281123397195565363798160978526496883781599164667146895516728513122027699877840549818278225089000619995497255774452497582814792015400741507354268198900265051833696928472587745228069476765027767587190438934382220968628158407994177402229331398979311493266482379863735005588576809383027017853949463291532015170310443851484217804094090979034585467262927687405469587552519066237949445139769104059031923857948741352529685605765299154484727820763496376325691308974201951697195487686246826087609619105822191394276785373177925936936814521525191999452499077255936036227636492229645705346391268331518295661227009105188351132782582242294551061048782208802394600361587127610797612411322610279135372641032623052880426607990648140001917380977034504126154321690846677189695519785767394665727358726576937715813566966784070991947072340362278044640856992654894991205714055605719674036849014025124064663959289859196294539854811990577582636936427797851910831541169244348081388473497702588872996722822224829926033350528770933825517776580488173117772831580642330633523719476633941172850509816316798229003133756684357335194586620298376870023391841487065398012162090647888367103354861811934067746769874576576356020101109063239129968808553235281877545625931461282066097960997087679379311879283685718544965497818082691277783505729535060272608361221993169572893109497615717087427928178495389154679434868157168615054106218189829329175694661321553252047001178564592128209242435015819566846979331728618606244406127346607372836869051163492063268778187283784386814683867081562865942444419525622530347566676061904344834883262614069834594444748499105338957038165380082222134546937743834197222552981352301353881132062541706334513066480915355774119683997026983053497561752457883434274472038279408697362874746826423776864854758129229016673177466211933629590614438266172901241952301584411280549194097202175373909584014873644800997958288289359098148095523789911293464112693897234528883722709994177844564495752422384218056561697462986524699507279440095857996698812628195292213768384038836918180847671172769878560895422614345652098753974360294027685820166382789852267569271761635872590247932153445587829123282647267661774644600061955473369969134797474676326275403334148104563317976989709386302506856646605297595515101887111468717496839905546926859432071825488089585777038001022862931460998487557706250987019363129415818844960549107536451027804308171564039638569043928879405931914885497047086556496670779677462930048404293662898454734386316221088590652341230175331084589826347775488462877303370055447200386959388047168083435710136057306108278340871295750764006675329219427046376947740503113442365291661367295974301537185135381435233795485103544506890667880642637273162534826044193730618193055084292239201433393191413723843217568332718286981028397990427704638756344489499891976814323773622705580095175174739199640919045171094124720217692731446306226262149027350136985843957101148214697321933568008378831289723177351523742198549608801854334146492856438571229934652144108618092617503752340591754916436085533021500626899487184882896554267461459302811218623107556800890112632344453484831913183876447454420021231158691275857357050452362421758538176265428031422739804620088979100312056056492805436549648888872738078515694315730374646283303697727464760352673919407429480728415780096664812709669638404521899418209647640275848992260182648032744954088935459995589677854219546642227684608794240603818783999140176029023443804974076379196307471461862434316254959015568637958775540296009049989041483215861094902753107818702660108433919372495094199516337140959378155680068195240551691939535764975031943580215192906160386669337670595250971510124128489278452468341802482052960575226818191791084792607645835324043744889284109821263172063856396287417088434004796791945065085708471274735891568688775210365699293182434583593954646811797520448172554237573311212005987554761628701372770725690422481186142722658620120881636907564921885266536923530269416215267003181425892112349889239097116134304077344003088861273673086693179580604091061402804315628944944903541941153307238908064727864272431906213856954519847378510678144893789526235666285391233643341951726148016863797807657996865084289945907168310170700620133317222930181297693150875443532837788547343643792796393442479684177722092984998793645787780028087157075311543317911039197382845185749303225684877041050720329190268458855101820348811039331717355960714296656223773520147444660336377961803289016001726992975918132701220686675689597857964389379442408030254356934301485444902090821082933815674423516203501099672594648223304419738328417243607220145983040834021177309279945388797386632265264280334243555735079469722973084489058908565595910099929282563698368576641320324194727577730983787722780185536251803114169772709682316705052167415692955092991627420776481373853055086622708795224404177547319389322268606392936371639805472346143681019774609341868657729273961672423170921636323669166120643916042315547356369087431004391736375071388527420067440557859950499505328144490238648941381076500921737557084073593089390885990758084361631912735203185876780850321794638557367420408915301148512655506429037547678983940907721687008147458773176612287747353976872695707249270495502000383889473079226891647434460152075739669354328105619905695993988142212969875074084935300933275082553902795753162977411297218155635559062613694580434924915989667579141361110749540984665739418079824223001917398696029477729875528546489259258262166044495883074727639580176330976592923369386964563225373478942545582768588209153681720858139527456912749535728562173170289979184195316202581043238193502456343394615361713042824318925107352835075590697522103283742000442663559695107841994104267819349997642262133863507997329017598087812874206974461740482837001093741440358699409433513954223543212249059357786589332217788734443725042412997971955638107161498374070498632393168902802071642354160849311397428209458615746285480352451599817653152634804544010387296374298103962992135214495493067001155222108048160181138293969249874327254309889027389655459305138682032311953033881671395582400933495612501128085912103978522396727995447511649975320035400485218061846411413025866197437186284022917392314594342199174320295374853116779179289407904765389947787660851053190724996281165096942850896324988914063610304108947346820710192161749857001317934494821003106650963352017847431994435024335830715812930791791507829100129414142401719935637543193317888491603403174382959465720345911497233089095830406827075264820079565422332586050997084355091822271235463282587042881482386264832712374587318704460586063979864919648748490310112639655654237024494971547158535110113332707090586876951370340993906938630520195563038642454379153267818944788228242612359891358891664927391124131492232016882565075449493718494123019315123012954453733131002554667020394384698298953705173929315094294874661758741350158503832960800413264388587564718696412806214492313298759917978019200680922214975421388422022735439433059370862785610056947405456333407171763765489371928810618124910558236392448568756557204515586533574831210537138676315959179874456563388379095073392629710741197414869916538194398712097122320945552786438758615592996642358431820169713326720748004279125660072540559017165203221074504084074420814269670112844070147062853295471505723597137781828377450957908567768372861909371973129254639639427451271445237791619512821472707909926189053630484125810654486224639637587552086929706527883046434353164548634414550058359555486194094725080356085242967525431257436530916691241138213602103292520564875854615364698410636741135550317486470853296725914825564264302647823456173015039085787032116389632501086056884265005505225548363265649304332067983111240556377894796415144950053952139260711508393070034944949463282979635552263302531876400853304878671935538668221052175815151465250695627418846046792436204247466625177637403708380370371001439764066830566761494640079918088664687013972133401061474947278932799809418089884817122788315034262949796485160342522231260144920601228181521581198241025398898148146092168341553914192636748254547023591836011868942206285889299992070261150052621875820231538213402352810498880688578254818601184181470900856906147969545795713548983962932416525973267280844003174632001109861581929042014568545995371382291278867135777708274900144351152843127434305606238281993781900664743750312168051436835635085790292466675358126488622052538508790633223485159358831252947411192180067024065958707433040713620376748509832000345836766841722989370115901152903940375032853699969898579569109984818245312373616063517375145338732328888329619839625807987262031852320115327112392971167684096385446494535942309903840748509090246757746193044055860675609113661449516063697753990504101098151653258748095212985061004951081498152345465508433917385354518576355263219678062649522693144790721249952764462108314941839557890710868900254734837572885956523647715165473405444933111886835093368948995610137346312598249519075826030479237719505450698722531522426878167871773636179349588158962764470336854380855842396035485526406650351362399888671745548540866830402955886464649029413520852273640953645387072735420926023814566870982041312602903658561439712309193348041298100144736596913744094662593317651447919040780158735468720989282936535988659793055376484316297698065584201966597895312800602644882951211089012134849309533422865007859513352447271208311366561133145671412987713110606855490628299596585446264076454432928200495181511777185936397374321821606672138090865359288012304423088332120265762958338291907411203612548580990671023097984637082105920331771051298896997484809535921155068600805616071618171702157709661509331271076493176527709771206955108522820332144510717023921198343044770713176511782301037075698532451449853346313704874675484677287284702083651568688297721436796642553739014093688764238828932698225684628267403730009897809394120751848776386946157484204559671855676282944874716415928553197941445466655908190637020130595375255163495285441300983586187778567491111701914050562803190733464661709967943720270058711874358943011133207693532285750326770088817821431467542438766450303253926120035100601557936691889534591307283084800336990137845892029420217871760106253775001224732241932558915846285241134467635763892279474322840697789035191903052452551856568183783036088541544306482835731371499947517402555932767106301017792258287097518107582544073857535642851449439624796592943042317590793323804888007445964993191364315414953927587833037219153788633760978369150522890614160565235526650671522690288736800687586259546603728499635332718624302251373192270626655419911921876503469407613532491852874392549472203963526263742665499970524124973936535998711262216853052480896079106403222482556576111804101566687536097531964517087342606640018941060700278005983938100593885655871047118880083388547857098168640849204987558818963975646528323220791135911177857323178220183021632843381657025332307930005514688661205152217160998823731054606708217490645346515172173580970795589357572325767725020763854884948644759186607394333036343231853738156357304808956069288381870062813373283479466026711749516691128658853387967716823888113427720716371859750854102656316313928376416069516198897589281474555416955932420155679686298009348040263749586668959427372883082533278605991634732608109882065486539597562095100739142387908049270448043495294361627057229568468826495946686890841845797149292392819952914018992251890690997561659380741316547728352008590499695388113798843869207330102601866564986771933611212861580702261556069777999746158234821630254703056514594990818482968665072241048977332028801209687572401033895170430124663886422299337376538491802329052072001318993929999191051847884781032110254273168521392575225093586886918352182819862311372401652765250856445763771831784020826567167876936618669928647815314553830847909792022855516206675696533455900472433022019210646283572229323785919427331268839484080121766011007488129504499415677363138457454713311619354738375003697743180255070533534755330160802598600903175652979611057111351611885568392959206555651778067295469292584281904800297107165289775291631255295737132841421635758361413410001371407073604253135711111142278026242483547164415552485369167185830697641904291947322502341457060976010348627194368074456240296422946174821839361131287242538941180260366251640003988565197765080168297048966360840199203363227445813866165783924907636743136717586921937085078849205376152207455985916594930530711104016721336190310052819901733590700167174508386285776100810421918249016281719317482705981946729716777049625373233519889158785875376432514447442026901781340274481701299041159364226242806197653429374703919245684002499435443831618966142391158609217445595766732825679598836591489276192125355959317756118955005465782563799080371163895411118812487360501383816871155128173537645960234640654839752957624905096502206500611994334476731590426319278961228837317101323896455232254385853918043271056663974824212704780905330387387780985269945197809027657059111667349797190591044826206329472999622170264127935855856378212996155193127816074189807381390693830879406370376163937871265633473427941238761129234251504943072645422939426291223056602246766975496841756214385667106624624677686909525823601923244794807717730728716332576079535499711076587163250637650263232654076642115411334929592186875843901599745646373677909985734695906841068516305324392609105150163671177884537480169284972164368362532249955794022175334901451196966466046411495275087044407027820640409196321451871955814101113798228203983298280553149709984864948079004749731301684451929446436409011904783344666792626614653490542170867856450917201815468917646994627568081987466299834586848836240884141647096061784399756686911999847311672284301471048421588563577265556257364791819591680441326232586315679454668016587169215473593881782178414985494722342022769526783814266322584947601236289622270524664950244980488445213872406912371638184246676017092390941304326046054307940742343780193275305143092351971883645927295276613092970301484851460768301724131757941303940708177038833896448081526957091842481045832322096088197590763891634235679122689247527351859197118447610341105717207757518532478430333087965773076632900029185446117510896701716965855481081403426285738700848734748685303581217658367880078102084140519117042709426555027481294793673282617687468311221351905287919891269924914899235001417729718900420492810913499976707526355047560941190908172084306631741764254663331222475680938717027102005554444004524427747263744081221696086221957644017385985006437177775090598184923510435978015601445761543700539170622256404963046956533398045307732773089650671897598192303927879079333022849364649364770113965831070869908061486862499243188044933665068296825273202143820034980952983810265071720415958973522683770313225149218582683788140270658979258703216792430337117526008761831379942955431704824847016163926672688993735060281730436459824652430257713654034031224000881646815007183673123510060965530807599735727847993195783501165128764949251303386473506229270865299928071564050703301135952611425260344769999622027865750818617781416213367581852485445478191742432800625593417599099894226171660299421644095828887112498136630017220260737238938003117418779643040045191219797755899079403499525081453324275984107752872550284684065959449805227297792771752723631207435192812291359826265602565002745788400570030861610681849620810435518638080973839256683286434255650641875376203866718649499544644247776898846106978603142974332748434382734368341700415924123173153614201681902352478252438248055188519047422937397909969388614311963326983767930844471657121261520494937277927744338487672235592165580173000651909363164357844035506139765932251141555588752215086610518407161828809238935462748550375545338827822223401038325245879939410083689270746662316990663505430760341874268586085078793239304407070934917054525339392048727849306609138118545594945287282217250379705208779961176371119414151702547100648390799935480071631077564411350679699437988541080100532057988243262386306684190720956307842641921808166030666191219697189220512947565235645685905139495566275779247858104553632331160072617464079122067929342549496028520242717049788485612156611239820454637305374009188213581886792639148091033360993079578168554651100896640743644784944408059437253202351127081222725812516257211460992202305526788203452681373161306635476138880169789984864440498401945655109304524196040702248406805086069443854903026399837869430793797100600899332406012834573570093237497552822389280975404745706197417310804327142699236742174188635651610112271091678911211696715554399336103821793643351646572199295659707777062422169055554085078182731994839536780568638432255757688929187501240194911907812466047838761857463182596939716383383638751038570859475682370732239261027683328950933525212196884686867005403341453236868729355259485192750548637582380646349018290055904579499544280843701422283457099807907043523148498003700220349487778050358873778767047444361362443998585064386449798650675219441705907664238396599617518679787232005245751912332634476747594340174061178077735919022229090318765109841884633590991158472668720844501070104728229847027681648390456784421827962918915804737874870357257844390398348873198163706716195226412806943411887785339425048525963703486129163679191382826521472574635140181364270197456447800148970502175557285393693704560649095443622273571868046292777895790181508577361777969682926298079365974883082812336563900403058802163924611062619716552308740271525924659761061337496334563274567401438704621616054903989757911734594102741579832880990600774311521902581811703407080175176644372141513699228165104648790031221401026611619988720687927938405841601282346538404530063396683784057309309883631708627973535378536196947999156595859184519935041911647960566418454673503736263416347498728786156509317185456886267580785502853928897701338730514713264483508666925525465709347611226499921472802264151845489686660042574071102452745384831471077659627088483466820396667671739880584392704281423008634281417523068448411857776082702398631495500266111171224675726923558354564191399778456800945587592788022817796079801222311413058970508517593001045578840542820400049951120982062516409027755290418408623131392563439944939712461379003576325312418836067782358634838561358780373954484919020325627120587184684395544307712911268441180680424951601500997849773684276771608676090848769969065506681864146798151724263852488079253465058238396553347260249809782949734501838372884429788059911213024434231186537619489789902335805694594774087194686694880821857653574525533923959153151458421586026256850280117515952580507386339972700600333947227484315687961325962758753544949269446597740940104093323188038093908644811348512527983235905144824013327978959733388303904362263085302675311723242407226428219303697246753200361891430919934037141673137953233383289720485710278696162627712372774924647301608212986478760870625005672648311994503333227472659666937278580380193219227025769914513449901458927013014939505806043875680360455008394956443025500906700286881499957119564741521238961206420690967102316630033568404231004405551622903186958016802569830475339096047268935340080536347812562451676649195633549249774008689832935038316186172739445818465986483841318447527711925968086731965388542904891655277072201780665176177067389892011163621680220445170557223717589655697448177428089031525223343539610818523738199205897218220121538063963907214430909093306224987380019833419755038835869546934323939531054112534089824530501217390390677707902495496855510701771542646629244255543577731259858750312280727641634755830943266293125873245308311262876021616047715579951186737159534686180365004763838918552563159486669395935827771672453573436198125809048811337643735594489755861156874895295736596358244595101846183233352073746425175326199342022526721018856091963904409557696562490463173020290427117138179512965585333320288424674208473957201538607086204369924667630428532977898634502428712128591597713547445954314022138496902896099679553023972286740695668040540695207027046405819155085498558435529070870436820988683338212912832862499832418057663381342271175711939509246318855233976602201748611845504832420193065691365113407015217488475715353006065338719814403991856129366786791484202918563861177164962635881586583910998398303635067710212881585274707707568688896277615344611350613666968894115235739817131124894713261366118961567160889712133465533914528405384039310045607162806708101855014030299220230647575169181134100783516203038035716601964640857065391388653541020308444209274829791180560826268162540651972441324002001049372953281013249596271173278046440576740313234966916946686950553940694096088151331414038664856150866618572882811260684537280052846794003305555743541721262794468368736385429704724428111672982623649124672507796854955187034280371329649325163787628099858646811894380433406554766789120569123287847544391095444166264991668945323194296827614121435738548481432838062878017600921617610990714285141250653739290847990676965209226748918847148740903536789902241507004824365068029900447098509749989210289781929764008476644618468447410742557446239023717497002541770162927503993949773925373696036239212774976380266968091902032567830743037253236242815591750275384845741961954170485012067195967326108452926459835862351301489538463441904131567916143885804873971746721741883664044532415308109883123071920877620320219618086740574347117809018348163602284984353493699542481239922397067085229948324165662994819250864695553505376462397428158258948104339757015038877250957145110931226880509252112432064537762187389135751921781818130973880142309785263412330354847042785492313417655756415145752142945426050966045670403514525155695308841215251306527798493145314917022173483106089447584173183267004936706694964461823376992407532887927515960551664872093752968695462983193278546656326428237361274371521661431665547917763025639170145458926232611684369200683877025892167995591786947474975420672515914080116629333748561250888790316629750129885136506643878450381631944666827560871195496629692097465722215587771334137084264218427645167980963456879570993936524684887978439640412797328669617381453985974029745236316539819050259599331214319262819172992502255163536499784232838227223617341812035757756244499704473376793438751842672707005419859989065243275325345057565298661024891551571498567511662345702652744214288229995568571730204056707916656804241521528704488166095433132304511550127150957895351806272225321014566343657390490647566928526741067355923964850693854756488114479107604961978087939951009490924447936005302661885723542149957322035364103446636548498443910963605610316018387122885088907403587926642067862144399556474812667882903626944673023221983707220852558028064535254948917693584802314285421997619430917213411647846817532208999848088930643023117637148082297395308964537581225899591679111758933157798133747029053859745575929309400190780440204004882537852548183844743922277085029987099065782023906556403815363578508151862753387426632441779444676848321176946490734869373252151961685750765548165531380474680758196723358068752762990606147227498502287951035669638505410867258872386780901342468456158840284479186879512097573795908776494669805158028702838737235887878022670708786682045693863489119992735569188557491540643213259480353099016152995613556744776829198744982845381315565794424501645945843935213687174112322961282073767990086754283271306633532894073292404341699329117582503621960439353401310036224515859641654587660151606969061470898641988117223109405087728943323303615727899271835260231200911808146918156139528658824347298454365474139826084293662840451326622208261988609950482658465849061020328426059599271435035649378128451738786463238648303810282976002956787899938644497145365259696386753261221395109351338437171164735317267911499900410863704987674473594581387827667817948883792556055210370693978115984279724211734254960383599825297720602254187408010266855134518636256489884610973300486846829243225436063080195327786550840355612876799573861300426254530652342183503509051591156803480425703281336628893079412899527641066619249514544684734613684491435653394785390627563998172400158123374198556945883530775220813263391897417969184700315722071569046709361191466824819807907372265595977990569526404728446527211805222334569665640333455001263864422321107868495665730103278674404846617153539249070108891517114064179898963163400417583236196754537866294032317481077095127247285416267343636433608648318006309443761081316704145009361256687777623464954497339868420622489219649297795433555007771487855138776402167437071529706742877424005055078175316379455919929244665410957531640780636769341577042970352457816420358079411928595442433470220443423652992026476197015375067244927026999007628040246028728648810675868866140708922115106205056883449046616251242594470222282654541293499308026504131994855498416090505568377588866050967913812787181307042654314753121969721008806570451148318246186639956617525423623862206682757453837834909068245362066708616294551595511996513120088374436102922526835880914708337191871501575220289542070606568210350463004368525382353864451291677116584797189591348569109464316517740421338372829806731319354627347887610925428701084449874323405579813817274453476463147464058403156685402139780997796388402813913467865998017437409033297246765792166481942000859861112485314329799705161209676921181465408791021736511583713291356181947482273864307143482055392380628336751511628665874493313415473574633188551379199174797031194465814058988729260565438187553559274572205139575150817840103960057227417040575062942062293669145402361291388592274331395264931559657330084389893973579255604620285931162751193487852973174132148891281209894725775304377669167206031824112853284660150370440363118145812036594756600258019777261970899747229422772794674708629310922940149671751846091809919878274453128385702286527585607552959499273071618725163870150115869189838950368208778851292852396600229328218788333993444304329761028993530319131135931001722221857018993308533358826119684132908898608135898359381557356117528612088787573736119268184412732946871197741871111438178746235465319896235319834530802085380958849805735425922872384306259333907642836940798573198993892322371343593445127599436555181425172469730570980574699661969367120290864581385873415438644190815588089450508018949847539543783550389993523940958045562820072370946788877597744768343417950381083658367073656582100673626868479288940201594088029996330799672103024687917006932285956784557491141343759067556173979652551630610805252783656521990000068414113732256795148747185967220984579346020027253277050426793323223817165232575603556721371550031129053597850195403500026911514626789447787072057136466521935529380046357938778014901804750030903351682986229874447695309523550025522327006148614815236706767517376189379166706607058031419295964938809076825235386594175874354828353546527853497162396894930681147892361522217443069807416391967899772998045044415785967141093517867963278936734084613371083167902720601411136300331243119392614517307023099135303214624989989274689344419677195559526358011839306399573122302587769633157572748326425799900668867074087620781518837484196739355997167824485416470793450328829458961612852419703607632442809876549513702454132799312741398483297005923621980423627597728232141342355430159729125575714998467610943853617093059959338482991994010494640140044806687750720482439891497827499722573473734476260455002336679705410012961741395996472428612973102558019017783680761652313166524221807069776496317700711987075731144096201685841015530714607055318739035332887135345360507173557335536477512219553096014843546906709351121675847065074627268885611496691629297022500826920592479976190271369136173648449039424137932288404548772661472939276499186029622943890477321174581005561977228779342853308540226007426348996246842420823978668389771510068167364255044364265594658399141266743201511800156642227272087417057925115723692815566702828432518279460612169913333354267449375536354975405262724334479926563670478969229959350158629126597427462691590839759458798516847227219672353964805412827018480704882086470639649259058065324636805348843971935115622707700327494463200935536573151830875004500964209671711947239980641962299490494377743019001621098735710039283266471226668786584523420950348424188759467740779909676157262492486806496587535321658274148338545863070455379869354694611873948357354161740656096755588133842942112333138416336217548162840440789699377841659324086713440120706590990017754449020928308286761736753705077606458780487033352763867547521388031303153441149207845245682939448084386414472192529239316242121972472868589855593578465853450370103246099463724852301493837876102768475916982620782144621952930376297720195880174433016430968177765447588255051916821469849447939677300071945954946530270092736898172614923304601330546013106085296747762244308236885934449437287645722503128446719295077913737717366532421657138094695919345338783063955440732554548369079492517189746759302038034433323635936418957403649088448888609875132247249313057596486869055391275609357345787801370626623286588111746289431052847952274661294619007777674464804320690566921304482432185909645971883731134517463182878902651008860621559715277956934408149799214530105177880241780821911841416329638615420766344329732711468654881338566139425483988448292442243255381694321339798194300809544746334321008049343262648348624826035199125430360333468511219767462383230790604713557387054146616508184865216690538731737466517215833001613506703143665760872429188172006851177201016113652678190823694695866935340905937384322915642870787776564332284940075122620593667759227950478323809304846660061551272972493833718207678678440079633765499378232553054622691920012237795263444183892913749033136174814894688638090102340263366195050482758657227340255736697200205362372371133436538350201739780677422872755545876256484496681814599906574774963067481181117815101018127559700115080740096118050264047795300294325814209158560310233063400630996057745781360194375998544249314767854059380357721840007046784073588911529417710869028783679542081909649408535409056425277854920963969909002081221539635753862953554654060660286739847708955831798464655867539458691353314466117652858089574642488927266013277351453137275152746419278571640201040114474673828539563397983062559909987648174948831359471502521023587101751506759234694109428330969114055273272465439494120293829045932200660454265339019619138826124157033005437141860582521442948080639022157692571467920387892097273000010224126396947521935520071784668036769524736197119701077062145386660144256647558618505550260138994780942733245943091737987910150336486489556079992161843110039077548913962243164894939338913215561608401850219743321046165990763337992118171835134201664550091102003188536530810568584158560468960319167584748319443681852336820457865747155314057553351658415408424959413365602488051770251883075052399979991568913887882587666460637016986433172981522549589451729000759410144397474852205482750060379182831138836661827274136549829346117467399512530070381188709107086305886055029540436365389327310873868685161841224518870024533460304832052384756018592311075633304536096523933316887321047017420098551716684166522914942593237553181175672612560807389201415568074623423386571277122055810630692682704088821091153813701821909593664758817401378753880628720591725918395322407695088814890877074640653646912691175762443389139294726549597169103940666304798721902591891974315292431600261682657498178251136933202819553424880903422837348048780902232104203053100740821249429965246773209771760614245721135558338171443207806984417914238859297796482330466446702001037555035825163575676082791016416005089065541021052460187520233309193080399967813217849231934911034650552241156746146811376589100986071112668443214628529740807402280925755653934644128577176326214749265621374385284501703653112528090675178544203339204491544482957882005764297686182660724456503623145484798066607976969934026725297795659445920641396169049594360906883021413605283760540721667275839737427233390485089062318219810632362694439802200198248895562308857634311298681794203735121497401678267165981816464658902616406135910733867245893606300242336051596142219584966577085419971287675320540612868733177567509046039252873337754407851962365566682212013140784297758489601737163840906804494823748695053449214041140807776676381787721110206509333310402364593112217210712136628491722875899136636565670095582056514258236066825836491714691535579693929621905969888195575122915284780955780287556510332054640896373075435098622002060261691336690812644680508996914002949151416805642349747092244081503718734895767850865212782712093907431795342619629583319509465488309327407029304419016079574111023658191664733960596161954270831703057076832432194631997177705175091351653576543001067809522336551877532000641271088550068982005594256743572574158484140640644692458836747610434831560747982066992771312964828104430599752013648882256919794607545640939247919379363773442092990435270070077828648679871863533538514333133813103963254525957839418956227787334319692361912324589986651831325037255709398759131397038772267554844703992903169514738177512552106701326615042170237754383329329065647154877377205473672353148229767730935864068497644943159144224514860427350986276198069933269920778634775178538324379665088176870851330030631411648200069623111341868132495492421807818458983528905456005984128125048837067235483928475582915783302499551503733143606362203210940201490410626267763326611619264146549516024543096681986265110759360066995189860763362388299620912802562921141944872697611049843137893968098505215114966164004289946585863309603088746166253450873147881976819362683761045425710287557052999573963474124429635883769757820309720271006653720221199194025767564879366964130511513047425726146002984606238770919492470427877471878087074788674409945638424944371868149064499282852846729544732043571055068789286976249852197453686241228448260244318255112515593018254596764747423521825351489056928170538025001266010151338808267124180290626181929710019502049608525068171366797991094653114546535033576475475501794059978463669416137899366558883623735038639746310625031415206635157275942725896681569925471361086876776454093932381686687054616345054197104175418770556885539427218392671283600350802034259417360873025628525287796301489392251591571721322300477373339005772061404723130308645426276970980059685156359894476603115189541786131868149652762276368225709112848854486975923919707252335157061808629823553584369894485074151969623165942388176857205826937605097615606658882404880970347656742837206894737481147500888343346714362952838428177059837062154687367165906760853720233510725668468869852913326168506661737466843580800826495592444549219772071849216436013878597319962642075428252518060527271900065960849943237085978642312096755756124410478665052180619217785199565194179863753987344606340652368354339242644437280388532099437239638088568723715598020232335350935644932599630917412457687943178349729726934542754229955012687250875949063407537959593666005083301924624054383676054980003816993570111417104141698551527372310202190107792126608737491763988513891482216617892710896693639497024744833774787763049354432976250999479834799437351047369475035053613588606423929940918734005630098973069320197583168351909317237057843565809907813284327507956211346031781203436996936072117749409971260095881167560538845009614487787278659907957536683462215996548107283591045294819812677363503731325777575562777989060252775825008758056281071041345864877938213525821452058102221470114644743586203031651976159095851487645471284598177914245339808965371331939414951896501200448526623995246541269701254622117298758694737533606466951528116193940395631921510500410894745690445636032957787160963737123531887827574240679202578924769069012501743530194899548738943607774005341365307616655014891042963539107428505574775789459992439061134187566452292447729482880125502528341863482776719447715985810232493241932099325997629442446213684350643431893575955504563743570959781444215995369469214338498411278358261773314926568584440547699055554266489507480933911358242752475834621947389273216781962650603524150095226245043638855357560744341710211697043306595918201488916601684605730611362740193844062342994835929223818662180647035721177237291001742356266896650948044383252494587209178343211436432179186325436950083624302344956397788621998630904321843017399384122563660601649325772580550921190876237553013871377637617660238524500550111906801564945989969991939355229987011874182967350178665195969015701635936087681698631562660860968672154330576776499724637901291214496811856925107006765845212142943012049911616481172874103431780068808747693716051660752734031755595309046250151235265998980558460331212312643205135636052279204592304055052180720866124989303694867320711939521063838511029293274843785562647012093606162966668311253993421517972130619714482350569606054641879362152086125141527606592199913508492453118724497947597992287770424355544077946994387949030722788857243930407399980002798579061551607128823871790498430612678601721878246965434510110777805459425493335290302576532244436691027352357657226493921041611221389857814141759375197467646571353777632024943517060210487165204926441322769045662343032960308865296875847203956968395557546208531500623609571488815924812258158715525888096340438121720651340130996329854044660709833212252011772277524088727059803626802857371799911206602677778860245581710500685808287663972416831868906744952893098706805397842005414016550194743969196414953495783590283123425533854219511032700350565249227772309969860656764171363804930325976730554367370890521596338464689576591336967927257309677186350486131811784153777819827928646468825892739382942652298071937055237337539292637451744975329750268822648130757634443071575878659838278467419228569612535869524142302322211445284611215647549864908673581712409600732247666704182453786331285509705779116365081351224937675577483896088254693307418591411647917415685416701333237895977276269666942371464660700163200739640094383510956141368321185237151089256393320815781894048766522197759463119885491304362021564467579268358177553489873528505698691964254106038694587730410542470247227060847085743559056276806581903589365076323289668421226095137767413707294026628447521827296796196669270420721264976676440830698326364353195530301575032318099889332062348593896509741357859073586591351659586993911601833059589593115818472261767296234650167277619986293970145761384404503783687363036455752879998827627913858397056552480974311004628249407375960272541504305736975891856118406437149222976849983831601505290603433801670913035223141549964465111206221859994441509373136410203786093843242785101697293326513883472828467761902045148076200448392521019977315602276822138142846607557507921300403098515021591328291573528842122415307618259135657709774039149038800457953351411619663512295958934568694932031682461628701853357654652867549819167052352038174673450233839625634126413058254143599210276470846939120731662332510183595074864415789824920266785453192853697093304357668714667544071822062932794258020795094645702077868642768156962420575248911825819850435750670346141116293544708970271001950133844670999765646297053892287845312430711669082523685125592219626026581855514098532605154032835927531775652432314969083797270905815282592651047861798801031087137897783757076652982915520894207773222194927185399119867566224746618916432076166945537741756616491310950071580752795633383378803721501308733433126061598708759755930022047659537636191932632931873248696831953686173452020515408049401244918248481294467746447747960055113691763888886590205211679700407118883959142884449977632350041697796679252293498815438070989479798650007936613936737972165201091649987510637743274753119188242039988233612299550914185059419541624480427589384471750635010898559684125281126118928919942110222444133464575479155121367543344207477481167702751799400099292478008704023102796105069560831603770361847071616236703415990805807805884648165910555961201776644396804508388654303838679979402462839427510276660010645326619610977478307792360208703808501533735088059873363039216458962133876239582571013223000373447099874525311172919893167473002804171294908441447611680536899221020313752012440387428591379834697946256715245248803018379954760874081754331052000366170537051474388624722073409232467551972985621130199693851948877385531611554244633836721413942065945533263836820323654023427218749416196914719635902785751613810546399900603430608511995576516750816431717601333214995195590133160261452380964359724935274617032134934668813012119030941132799983695369408771747376283250450628145622847545837972676133495728377434414748626755270629110368149583768594939468381505820622338317470333366406748703526063351246670247423992481301087117137440419399034232350016620255638724362186052890425470040267444860859016431769253250419905150325566078384287217259874346465335411896015326006385670966167275991316868851543653861716504200968497744075972101875146599686200702615735561624614432418714049375168182408031614355821822630043640531513046488604050983945931743491424517608074459004824761330323312831497042570312758138909243142531054697424886933441865546116396647212372425322912723612963005583515861393149440205859556878939448146753330058665910253052494762940708273080387556120545302512507998282192804291830810785697236196455495438989320906805534418575940073056270048880816703561014587359376845320327040218923710726166863397954198259924308532739142787853065463375260111944120775679881830547155608314847292669488613949523775813532602025345140365285139125704323498049777868362579716598228621675115376927369898464253369759993668246364833118970947904190294093453306999504557417425092079170506607084548939075339977553940560059734291419254734181787072560190587533091323151916924524436380742710391481547307258024395618468393994642503941523267014145181723732882550870168789378601676769130627982454032098823394237291336159141627707111739472383925325827651662575112028743705070267369753241841073173828165653165460250516762484845456564994659748657300299814756882790081607031882305186198398805856924857242211890792931794811228106230594251519590518083187976576497839299326303738959465717258660967947677587343124215064677751187825281697432296686439802534808911883879572356066103069420764072325238390432815302808244557885095392521825382080908706505329381386897484216901466205831477019323760064515695847391278784570089273660318702083254297569862175062803738119633820456730294255511105028614780706378905448250179473628528451491566801595714366613669274937580006266518423814387080511740290860261199828187260452689762914842534727385776710966409956243570753733804666315227265558011318330461794689162871819889060985207366322512350320406016022833088372996175406515180725831505635294804394764557411675487517272111330710240318578609871256614058379697195425376405986250131917202371058108351924366053648038973887858693552870818696768222346223245533133706569800766523055078341291170748997965147427104578959284861069794648417493325437788108719631435988670598957749550723586159674425367698282491007832230226118289337897890942175196252733214924417571679429167325764780780326795995018011773145896726089811277512674167305155092770938354807474384656301437390024419522169000821848977983916148465689089657165917761536191538364031376892418255157487206811467627369917415930798745161392982824003594502205101796539788949325409389928975784539492411056019268148496059161720461230879340145374546693172442463361328762037420702176889559639477558031405527688854364958623006332692928941480351113797827506074385740489902811073091574500372620216872815668624665231106034553191167656569339586596057951412682529877812852204838493347158218404748629283602604659787356416226156801638309744547600867272910635527491339960385501441417100690555740860515949702201798882369836535491450770515337873504335578917836134274229057438456137817995920469752342759094121497924473772513710587615661311029382273874719161652588862548909406894975816360100656437159865117145796568874548686534553751841502969085555150340278694638091242646083585500688256237290065957197436958913950343546306702308325326966652412647406219936673251064383770441759282038420903872015503545991501194176691772653291783094898500235943977990865100195822863231296145292639542181817179474612305059666607934779847189211107719982930611610904417251431637871534582717876352839388473847487002731973415906126051104895091922012935923673911751737166105625915176043141125428354922075508711035814597306653408443244611279791314829784610126449776168300710353356829163180452406161307155275274262259920304248376672341476625490109879075041634178376126745554176657585648846797928816702043059343845720382300556277137224684529562419728309060338987926796306271564394997555926686103967255558713598210963598916195347419472497190365540272498574435660561471897110483337312270603477888403224179936392904023598900720673331353594219370625374152697681012569830495375068946456227141103658135578432598960655802299240924786786009688047298449151647483928098240546073856517923697700676725064252181035346915029829539298943660568100093567218428169223435084524037125601721339196156180844890682136090685150600154689738859466837479883932870747505041140253078638268292763451780748985177420593742497775511402611796971597521672873247702191445907633540822340829288136044621159921838455455903758224077859867735644677615799898874746675094956839843576983291600170510492541962341447371506001435934962870063794429420486050273484911019502756508077871508170658427067321135273119011426156680870324176573778366041702736638257110684795802978221104896544282816312945586071580623536761135192634771807347415662333591369699195006658022334528892138214263669810266529271971283264408697888089177226677768930153326638503890654305693237977364057392094047915485425891288781686375977647909658016794288481032546471751731968076099129280333058736143663387774407592726217026336096885786420834080099912288620532736092510380779892778153320626464277821325748939759396103699717216884539238915277638537157781223511511609866261139360713279803154454254221763501125293172939051135201499613956390135508875436356218820926892064261527152042975352390460847045612257483628421099423783993951214956868109493061568335493878929113881901842364647601375387360991068002205878458034687093660536938045202764366242810501631327469395857879558077563105972342200085648836098419226843274658883642724650117939330150446198980854736354261634549258945017414020273760101767853132507426364622280522759149194135051963156751232682510472021838983055256934611916297205968833750749294033614356626944161332760222584612054155663758538290029734944220450021078741896980380212539849956119865605417252383752761912366891711233711631099814868028761855946382778206604891165039697592110069925127220054993662543871499577866431840039114755863420328182718905898320427542359637126366046259740385072494329941382321201458526445106561308896413506088025722201633282854717139469121035615300241575438556766894937038064259603370254348998871470626136763048311157533435857628133781200992516373561789671882973242209568587160262340151020444461442415189465422788015183300748250470659950610415270270225382496253822788249257043159885358520238693091828294199311629523624820786022582234534034883246971069766751200540576470236982562058393817685596360886171570029820361215772107485914856087039764300428546373436844686985082518224038833257773946763266142244233941553768062060511886818146220008507225276952635200179919088918906952293618576568955257976316456275856865030740037231820801555650776905281464395161689309415347305926522986021667373317810244476960158800089844132345802325451340627344831015857384313329937428210775057583042188111312756169785587586208829153264713267483063163427884422943036300136196076427669697770677427108712473501004468611290831906276845586380324748861936308803267974170233177248630563368921574955671606049578385684350341496888897772224177223109367096379023578275396615162343241618937789945525063170032849827284145184993423806206984660841253917967056187679048906277904534443914586573040053201306893698205134864484202076122166553951624615452463988206489851969043532502862265602953167726603497696297118822720478652230644096025302775447104925832366961857577565111076152952027029283179713087690941206576940654017269268647838169404828550598606845556304683149123859702537411994580340390310424164904097224049287774745312565999832603710772789585770505528883016123031538909310286048814008586334179993080969210164736276343502850335828634730306885621864093215609006346974402384400695125887605820314183352973490302288039385345954647890810405797870369224136485886742375836390639198578511614601527543868499520952766619133526096029510565532487170906680134461503801705520229051586850220868073284539236680921565566579188135397446408523743859276066103362434368123098585971813155861351765077146539298379102482673804938185077638197135509180922520414880132373676565654267193780165514787432341806795302106637392253630954321236156096233505816406986454662579399022906800359560522268867295752888966898813914613850918483134286533089289740530500697218171933364857307991536343300769366691473842653401583738990370241646713979227878042195054291681203076531843568960203869702583254536463382865505192086424219498215700027254735140300645923605277159573672542709120648482762721179843858617428057432463574873001857904888141755562705295346276210289563819276552413253628045954846137041969439708031749655762860400369712784051366829284064038211551784134520934618769798089559315592050839586120669076804972850581303850901806720707202482391265671553964111482278761076998762615233506629870451686734727791837600193760056926171283721885848001736491983914836849870385661979105093461335394029642606153845736954989001082408043469168849074852130578778822942229295560944263547647496471481448752402833230070103071100658043168537337452621661169654692888583506214131579900274638741199715564927540078920890635076521258335756687506690939057211495976708015281741270065467212853194834734607848654021148347992801290863113324339851932675674663481931112894557949267194245552324032223412245233749802664678962313908997954160024340301814976584619757714250682071987447204707041351899685071135403487471346017091355031639215865883670792145422267850787832214612940317760996866051664788969799328498105541218358095751335525197231734898211144721546840118125834033916109516735073370319877761441664030952178355134559593818113507888036485474247759204808517898311965136382249127121662027999555253020870764722593505097469823645073085802804453032601122775941480265356202119447316593046872395422193972017601197933656727220890401506359415473380039597361588193639294643936631312288021883047666062505391387432939525786683252787360173396704032428678182004239360116220902075709525514486714948268934011755860058023363146366592907532833935964420420358686176322746003005455592338944103848350982646856381909545119725279448010654630506191899276662140644507453923549845065103987054634436559170439345098486461886423255503900960676145732942464910157625003381007581997151106376270925162458266771192401084530121411454456971394467684665047262096770030051606074635684166612509414104065982189028772392690441519666314372616175349627049455724842404401702498383125614565693843580708272049493216031394520469280660671335071218616624252669380028664026217931703889016229623829942733671266049257690179889279630763534099845676974693184368381176450236075993685291390675565779100210963166774322216603216724598047043325918321774540242988173394925129748523801062620737193464452108296130838107626124392370705854427031156654784165894018043830827575006137667614847680069720874397065815569083284923949649180540033045242292620706067777978630854618527644845383086770126822969876046198791857064246856123371800663359498544425071467654683547432379511362685326764671412655730998129715213532915387472395537680838975723519575151073056851773326351180390002379156607824999514660242538033017113943637172656548307576984279851446647349339743098692597523924880057188107736197114653345450846888121655451881283470685954837515756853111764333313701702722894118821190301219382809649756175811835630358693564251006017484640662872573674677409215490366643813535062085575886569395304345900081546619515609779397478313254136056918754994851097091814193653656965238258743970905730916551755038440312864177537685041672541030237603915331970389073307365799329826931347286593365183616316046276130108978577436559426524994259068266137159838087985713452329916240638651727376846732462936661085197306161823266803117758979020344883362976578379516892012749609577780621432335978020451027551710147355068444873932425585807407518260157332715804137169983294837068766494036841012772425307151920774795831288243843863309618082781191129715973282491937676451180176348814661593270979528558242913730773920308358083213779819700708524749900361130197807868191606083364061970068253171666558310480047033932412740653886541755522335871177708013289979341313050758295115422353083807988333133416643203517981743976230089996893737112353594324893867761465968364060518299993229748341109022386297616802123498515450874799294844931843792038606111667027336853561692192688304684732572181008214701786462256368392724961562913085142853338271196587184727712039831139804850288708959380740459566773242614788937973914860608100578574347237681905628347604274230886852118676676552428361274859133158265086336399902930130482965906876279880202337639772387412664011321753622230511444202628250133154927561103672833625701380435733494109804075497091918149629845756473464728292035893301592662496025545722311513273617465700682748718280325393104123131403980897373966755876455380915564659845502586680916964903080365359517954969848164660723729640088515403459856411354346753317172223471461533223176809088106436166845275770542675151174571489232358215790292656756760679116541058217644024249568815582476349518998995400111011404643678755266421787797382599512928296942861159637385284304664881903567275273876578459427121162747197747042036058550917197349028528322090066611353648269754021342084392625813790595754298171746758973096169567063129994688014942619547061311662155679259126549569320734664539464494359075326130327600950910315832452646413514156782245172354315480536010053508896410993784313852826691801019021978183243188699168854439602676418630242244587558655483814032799039087793515963464339835526346259478828404906337072545577858413112426387712418871022510396454443930104515384393899067043775195212552683936469997782825263064327417420992787557981221808335420327907475118834096447861637322171904994516237584600742574118300667120531281219196488955252570880196194936884753928017045049353176444485807847882450929125428953751483776236567754204105959550263373589022815752600633650055423790139803594773489833352131248010650187505591630366541083542187445218875733887315828912141225782365630726769358829134678615849960484263709687993818634769845592440225973663718005163932117081389994958679993515077836867014786603181873734903078100183792062321701380282329336747695982111458706628480535997060565356508778788317674153177595317211991264741232227628696493421755788803831658685327112055466099592401654463046955165323171992638161918758114939102636773117692222005131514553222712702582216322914917396244854867292695501993249536948846551063748521533639615059962148843960527961194095164573536615933706288737993726498788132735274651548217920079614030925023086521910242928487356004686268810227746856377840307824104412674100163740354908688866547090018478059469774305731540438798855071010000947130801126603931216042513403945377842108022304178529626608695625062824490284875447751651877303870487546768854252755791258290309262265123012891960865397588743883546026871380241324952212149916108964676303346693322133978176285472553085354808150471428940985772030969486491469701273015909774294240444576228648552805577973799124334694675733234478287018770253740195996718205350134573808567867636683086312087985156932122202904265190000615782455650463013361782205881134168906578357614201990138370851588794824304796492904085085801686474361604515467967428952991806954501088531915919209640487572714481563650616711903252016890599324435014320993057525435662851064203071289541458853308862497207757544663339711866452777585362996291426950061824393476501905026324213155733231620376153669282152865619610050514569272634884190602121054075359215708407654348909885192354760463414410692709836026008209358303509898319389947682446683952364542265030856814293559933835352447988652130260469726803499295011056698429376774475811440299823114928252969688624397479032421457332211294599255951970755119956886951214538644535276929884175880689822846424889066444619707127148523756882950460908454631305158519761672722104343892439952771910741679670089417039400027471853553729959476975082746148703006799619768755907850863304797015932580253835595817460224203781542907831874496132149018235181079639978105105230328564317071709198065000524490971173070486367874576497739951923461493790585643749829870140105934988330673298599835210142833219423330813269875248321068477911517535982192371913962028608239964822593836948408200888776388664286805347175273093546049778364313837265004041980222077384366608302903974580487676264175557177138124459092492407012403472678184170501311147323683474683170686709667721870915797369957276078101669815856771117027785970158371149637527293037367374659679440880595770765670305123806167758486581451861672611331832102234620993733112824410586325845683764267316714045673042566159847199990702106380187714844039617605161997472781399527928554813735694382338776209998148048026390504176604045413294692505272959495453428693394095880763234511632231697234441914156895938157268002161755980675229692809677108893493505028044897493003816234276358182486500539579612431886140707037142927870990116331219945983517180134113574819273147057925205107335111423429763035368198928080021778116610268495226483902340913382144288239618300545215530589680970152085043065796339912654414249989019749583077630550961401846754004749297584450930721915941994448144235971678112688259085668117913806910124366044069847576118880260184556532706639244112257721951626888134371787472599001995185387784106828132351156409991922063312658454775684452180252460514366164874971181663004009988045141383026157428053790280482734738946029725552542401086191577079250462795457839493606569485037659909535988311423487948834020795178985340331919638099024574672274140188044770328547238186532700947831634728563277204414890952434974562280737054931675332457527197179122515944458488011690797198991624660839760785597327462321447297450105523625256221278927741029912129133260648770924929503638581975287403140901838803565290890495782325993833411971819088029133003564699305416094662634682460314568185740717577452407103214414822988274582658674285678142043209584513639286889786635366125972771655365564050966620702375196221230589028726691339577095620615852875921507514320578434601402714321576232001862291614894571773433416396585460809498215257777933865100566037449762434166862656754284083986224818332315205327497602878075465885756462538249899830429501297149713377365847867993541144871930473279661483458340425193564208415575177577354934374834617182061457545374598388818845293635039261337243290903340643313397242697899973981630708314543139322014386425406392070808899418765579569204913489082395246995133017781193711739096164130466361786855011130126899994401730127736596949396311978191410924945463878779649639494731042434369739581721246178744649385583285016159034519817109227779959711864884331575157868192863557059426811205159237142904253147905824688327180939205160658682778692082011809542694909368465475539409106806215610775175939271077154045783315755045613722217438985417894623805642281656562727748291417093738202300659722228050435612129409313595427712898094040363353065682008723729482898403965484747871967518840175838125864214589133691057325989297963338326869151086810890423093640830629105196760066188786273942320870891940869520340856487424859571901471350977217103084547382958152716072183435694537085172472158932417499161374235377488548883888682785960548213144515381388652461622456192812836313824769334802390075783919239516805278409182441926393338117905585878583427762663171569716614260650973514930379671250797377069567811336010589470601456790703184240174747257364358059480845456620875684424431061014587687009947833191794692701090857929072258924540987193155957338291203394239696393855864270574419908553002485709851529422545807095018964669791505161348391771079695434295655243133681207736755576091717228753059443626609835164650871903649648059539632751554818303666938631056439832987313925371013274474936798917822396298833507001266916093883835680910556535940868159891084519819059253357675642414592807515948934102965533276929529401994932795282692798219650718827329408768105070669602858842469869626398449868613462757746765800727813626150033112041605170991036251957784487224187943463443782762773924927864235956224262776545756176987590122744997900022849402237047901113789488558090343800991692097212378931066255388997304045443085828951664261737420288434703225752162825450753955542233194827601682760641673232774132916232543388084857310812456184668607603529356882377813875333246642233545210279820067939094384489352175520003736673191240818437666417111921635279782550335965802628399073045914224568338381537380814992605711193605701460081567607439811444122020988154902216281804900303046518640986201903061062102696703837841445364405578317162701176858747824521794746035205190926997419981145005946588662695176760066037605752540812605804693213244908621603186297521965325444407432183682612854658781100399638032722284081263264713409550030912905572772162692828539680277303802249233696489706273204505605509929035658067979489894513447383454872704539101222695956421325672782296096043798552599581675219398885667482546562327197002038758447013001447940000273970252895611274880199291061379584442955554843233036285599683807077182110838673308931834185666231460080577163238689490117853573241216165103408332692701749840815707705073515857185024907342506762472391426191361209723729082250456831384716967826278032383655753306968644432658498198865253489162196754033902874963504221450126918622943903737593496268381589868196291406379989898789375571989046826045407099091015893520183373861377640686072257607188873619211747518177444620690368447043408393714698444231182673206759252380093127795849767723629427269179359688073267564287482925335221202657671006168020029769571814925700388917513376472209652178862279779268904866000721133507290947191066035508288403779519176992320279218876966008761274575522874920030579771911032826051943012864542216537744897208916270604923451030106595670636994658494389570615145705626320924844334782340589683102431969553912053899419461722795397761912329724725873964440667401057381039532249847350809570598603170789740538345175133946469414170009857152211588342932639494165703931833671819572042590011713017865911675689462207604027633955022166530892670456483851223747304490151514946867129042346547001363140822882770976389082057281025694725247207473467816036578459026931430402902524084396573909425112656080161884321914375516494887134236397044553803614839982121703354608984950714022017944168807236164586902473853061100422114555761965634759399812897163600764469157060155613372053461545309045998918373791853924497041509799171661652813424904820199522695660415154797012553186163503465452264753956673719769577957374273249278326002868067680582969250154684294137210782001782200294162541111053112579213245074316714534455894001338450509554659331377432445695575337977873825222746655266584645241438198068582558330167480801768995246756341672393883660187889010677439936942644895165301552930004468858591438802165185085337213170424114709518453024038701842587335328770564478572309008083153827154218885601459511188030944491288461234905710965645128693094395831113823784733461733011195024663155209447427010447303547752708493295213798301267842535191469219932941546823762191281169740127990381651689808328267618678957781054355398759204520852565962972087609889053925576320488778718190786279068028670475215508346734233713687909864848352093675540234296061522958507236960655339743366130126181155167023951471626946271491552810690177905356480489217853693329642167519029969509766306094156116814737678896787849219288604256011267861178471797291229987499211342087533943116284448835719970694031993409943320766796399737076266607018975184232675160600418520403126767418539445725914178461826330008527060734709739736045747275129969919820074197605978323066484756452847563625367119160914768241411846012785795514353176091191611171080682495029217773836527998761523410509864736907090829692353918147998777395954071169331639249600174235409814838352619410607772759023561484541251419638981238154530660556535945672914570475772571655224342915005828007441001481311881169994852084534574600157826955375227879553308209302265661374832056784066276844683370666426984058972359372494639160269054140525716868930413415746216504142114756182767965820712242891524673282113479972455236828355731202792651182687239754248391472385016598524342462128944547292804492481193790588333633879898601225469334627652564636981499298670652527327474377511859167431050555660204420222580765474255740101946325882022951988238487573072432210682799816695813537164498041147795055116232968034420403947927014566021335824608639695645163616508100564397927681278433229811673189948714785569472092304671117667029739724417715494004356186682289550576198510112320265284256390816656959165871164828764887555403712534951041538616340255265366854812112211990566619402053950909590354852714565846711513248121430741160726431633072316108387000001165650210334377649648295627755746466022126547884629472920375259977499628433485157956662884254993375981885544528613024170887916088257124341035576342406443075175967914888306830733186096104947451177577205889945562731591953735709729860928963186571620506920018771942580821099432111170661896981943754543945414218983510086349741924524434159314929443793641342935018837450773811719829265218501770763151660793213008788585627944487178428669634508649926027637026202475751917259118374337184322634314524494497393988009675735721577208058249189545909162974643907397427817985611494157513258382723809981399159965170450085763843245080587833212898130496103477603351620238886891821756257890245624969798873241546726268390989835703315883314926238258011418882930204193494510907348376021918820850037644201199633411047190152987304701320376516326662756946176392591129620016953432543633774027033005847117171843670564315870095125687377679021988383565744773158469837892205525871341842537012185233087550412265452288475305677631480953426248221750171433941727945572786317057849839249217958774231424989340638606118937417833862432805460696103882627187346977917317002962849479741115251159319447568044949457608415293406494332031504717970141831022576913361894475866179193363347500882291304953655417227633279453192615516340231647015171447009369124230374346353199261295533342494639803765776331600451950736138984601772901989699321140646235028853390897193532863406814875437497417964051032110262280625133124480142736994889879301721354284602324204527837462065356722242411630455201423513084577864060773020987889745821083654433072626926274194978530781680604628195457260135261768450507062611421988000085785372495236989462203848566936763458177629655582566265746551594678938704231544467687512766168457645589531489599472828092825320825222942203510574125978720875235992643046760658754732445625065355031880648752351889563199425446458484342271756994286408951821883826905719547045388008373468377027798408024285752142286172703203126834152767967655373937983623179400062241336751547243082499735013593000143166769159024337088296452751082398683017397693848529803946906285222353924770980943382505328710368927563718106704855675118237838436882382691073649512424761790277146241782845953646921976218163090476301028409977083307638573969539839741678663179947409420034976730239798745715539460209930468997374301802614352257069957049411445203103772171623957003452574403273052690623146601898408055769281723493479990629796834146751148204886102514625493408052943735983520726919664964588004687614818703583487232364150803013606224614892088910759091020378059912165895799241595582680016290079835482319768731260138515523486021030780069152992338301808647931015870613446451990998724148451686193575930599725486151395971100895514497350642344540966561715313466834981595199027697035100602900842477950890814808469032522486569882535005706175315684411905595418681227327547193235209192662301920386577300421243892166700072995523866797418364858420907187110310139985330188992994295493588881030934317472897749190827773037947802720221311410534425239516285312160109400006856362882598398969429884805211887126765691636426535867159581363011208645831197777984701815653838858528429974828482917600199527852608341835839464483545527212033466964672877277128145685668041932297094071086702165438547887233237415651258159190618979840110021556855668398480136315666247423252067997576791430351912222185906050922409172552644916553809608393993319643410418195813436753923566584380409313768647836419682480306564855797595457377463835283223828535959029072896037470745351072953019583795277002889800551171954689705413568387392775211775575083073320601723061199485422508483163145053202569079153356791224587887810155246903397034481101101910417736478163155052656359582783136205883073913884101137368694926427591327879311857395114042552140093230560593660123949779045731408039908451654411593333904877250752721473099855616272774608875083645613167733013780756329614499846995684825052614880781499488031294909668056246224061457095485241402325868983882187814187893835406965594535269705401305328141723433996752796390554675816848177897935980696455559690976201267585630613951168783362647248025059107575816993018658751087240899591613941857143829104128446262470030546870874543566203122733591724890256020389642017683628673727784609516350062596661361195613803018230389326847504286797726023426614546688887380300510406508624932025791961000126928173418605244167712129798368378508819701945358223941552465012913033270248284691465907695465049324681290890851564583890386102886753699628276804352427198336572841822794141279192064055417270373519754021317716952393931035894237194524208470594018431147692532035833926481238000291674836469578702131463282567686167042702694978654076103344012170799310501738274852314678919961561966258252859343766962303964578510280938972953658474935374635370166858129864479270456911640796646071373798514445766946260225491929106869140140218820640506016503208806646712186587746925854968009508553661342062999512743991791396429320688417800694186869023607112766814554575638036303949853697318888261036768715985016719893854920609151636985915725462064244129822968894916043772838289394667350919421519346868309249251742415285183414397533706824810195089567605428087799793581712391996176589017860926866449224152430740072814473694111258467113569840061542219472437483870929491525140091473154583774224219018709307930534914714786209299634002794343816686048268290974462307605929690110156802647813318395203577888804447196167402324831573128701037820706040106539073540229553305982244055386055647292789918628613679842290831749997525451160173349474359811900775621969966240920555046274060368936618259367391228614224462727591310701141432424873020882508608385461109982836370190113906366762207457430802784731782149995043218235477910763880801774698332912708282432736273260024086107337174544609068180146689681979258727706693703725681837525998714943635204720885645683596152617773143798340409493000523677245759227373882770950744691703894328058690086471369707655428565926758629445383002493530443432503693431970541866171916360231207079846346947543669810990149185811245966385508388729018941247443364052323149124072349377467854084895633651093909502026598893082370972169301479668476983940349920232104783777688792028577727155837105513033424342040989627436495359249593612517234685341231043702273602400540583874787725029114658214631781255068246558447494168965729641277864310038013077453962462321060005941382229108350021325582247537845926782520751282025417966323340708728295306188513779245407363760927339116611188119729392192328476302842359066680337041988462246072488314303630663267998028642886468283391906215648302919380222230203762744612981771715453603078800223866559189662527703612402470142335262568777008291806267769284526205927208473920578204901691644120389957519771511658274071761893334633974163005334358377824125676225694594800351319723414111662184651963309601016149418469248000677006760548820667394512768186481793904204619754644006574031223242063431065259543663369554272217836816014062890464330346618245659715135602733293089047624471300805872211770670385324469389456196616483201685266519754460027894356076057938671052740072920045420672078304184454410841201502159878139914967611266811115200372539505877804687418405260930743476369321459472221807975133397154096700712901093729314545818863517608771518605127910403889740886198950934694730934985758353032647833130788067049030288319657094184829843844003448939362927077855200300021835466304114509811438023501757949974019177308452515911664124379667186873553258711398976018221188201269851091265616184515375872616503304877948288678818523877659236660881625431018872163152810300949068280519551092687603806906946256493940378307518098429603559786090253598968135538205331328537339168883701625565703570668972363510947698836464108345958505642722649485846427141152694109640549093876655745346559995885199025478667750384893852612016854798825022939687318940500746859221656101992269659395652538893259391408682411575346230491872371524252613653999932670437636078951266768833401969701490612439787226027743834078146322532319807206944563776966738593979156723309204186328224032427626064622186292277309386192123765171537438273431419415613042810535790699110210326207315540406022101199568155839635108008942263044484186915185503759651272286573427090091184076162708534864056792696679587228168924623117113405646200746588517444035375099876533060163288672370102038086181624305657609599967717259541512128639634044070045949883471178871372820960605102798905978072594004653709263351032031504786148994246283798253731675265453111067380434838683478884581660887876063884041305755553621039882140746369479334647851946407900560554644655735341026955895707420966114821569174208513951207163144101977817120819034773523618375992571246255238548029598820066778101606307361356603946465476708279963106201693305524710383179998922297711128548405011782274064699900778331604060058252230590301253594698395363706015665273379770466586627756360517117993432465772854674172516300516065334657676523287857116431476481485466614162231134137487648259366681553314899831050195466445753288749521611048720883545294814827767212668763326435779160618946465685981396468588187416780998608762270112280932488352294029044877835267578234475013511517181063320238544839380800960554280801003659431437271694886605640084769820383698345713608044782129543188202421863047610933700201257889501000609343361376511862069707532662914638867139130634419594989428538008012111811917744338749509393423521072805786356032734838265872520421681650318997536851190552634678900941711511639652575601492261312408716396484287340754193176769193628674012801087448836339459453400926644128288578589757576655019240818873798585604443406496696529725237643634343018699448406444764578001012642417623171556842871825822803376581353015272770347627390507706857759699250389803947782135803437315637072957374874793185395259132042242100273591424385511391813092105758733062888320483695190327387272086981976791815534643115700547098578691287731348784643278277232220064876690249943582193539392537190205904888437258461427255250174549720106531286205990333283072948682457706856867742001995264701162266218835382897661931076789327886777172944615849930822748437966902341868811838065535304324374512871583425155246073421652167865784934902364236137938210880938161763838587019778523090550712438416473386435067299693101523236379019050342279289519474402175299612826745157514868839672211940384026662655771256824588712155000816523862753695715588890879196743765791608392869050601539175892457926951307846510411211900145964096421256841725717736536701726093343881140073795094920859230030216892031606108778757701505677002550134302979430280213422919625438062021996612720486719838875062453809204805695010349597416648698949369530706345488755622832008806253205917305083245863870164079527284837378465628154717264477860527911424441478979041761359195495774325920022922738507519881047421549477016364003748846921002144327476580001000750734008069055794751232051945694373042605302972486369732331667179140315867794647203929389932808434704987442220895777918959520303749835148203336675452137895100581782842053498770792003389435192106911168368926125054814922410412062384338458200309390451344869458889245451640983366574873542714877884731828138430038462618759316389154407832436086019910215180317323190129580980122438936454487006355657648205074877088675874996057884347635904065426436341272263751471676916865399430271206158609052186036498416636251201037730764477002563103189138340728866245256126105280490530576087712913226816851326608380837154641112837530640416181263304891294764979911981887553632996047298389731249372848988911803524273721674290889088830285577611230262091909962665295395802350292143811664686791038802114028912436329255898435526297765506424116917721149255146829822239532567695459798225594148879590204336184732943333610473359858769601655195287147285389062137927477075390452341882823077420821981561778533549331670709659308896121594362328123704969297790186600832862007475968322412809347119276732299675825037448908500180408077091166222867985001969405261378475822005639089775519742721708563485465900093867062409698196774429595099026339624513025323996029829690532181577073842955426178786619224575237140652996326526452996369710766006360879695404021575651760198936883742357496204751938307255190700054971530283533665466044657049711615791615505281275185594227282609235031340364670237644759456720351265485505691924554261885112726185026269993501575644406024350769879697858556881340432485896098535421726058907016978313743329158085783575990144717146093360364903418862562962019782992803978727458088288402681261079868366295717222386344642552999969766500665950151895070838754855013547597706168718174737452275185567398694581123658630385996258414330710844421265160098593393220901562094944921652375161452503666760317651758328581267907405011204273385779866095005231791663850904968846448005469630007576585354633769542970743092914609870867065836488917552942046532645219944409080935153959555044597230627325092753332494628375876537275346099661934830177006402760953523948422911714700185259884892966470152697899488713975091338565035634557178460650719782624367819616263296892282785761090207583569504939280784961151722828297234755949147423625280852778231069444261524854557661091683166491653754456184340809756275173965000906683832546909906076394662340383422200045383124516613622442160302749120373648007822048934304675070544291437465480018472333721228549627372738253510739501894578673574464254057206820719842554867434810965877903707318300356907385162710128574536834483983224603073466759279027532088248932773531662897311935009419803228415963315582579827546449496922956852725182774326741538665129171632691318359676331662959421205431780718421536207555547586962250334019323576165139217147121476074759180157459088190570009378643293277189150830014728209029881511471853859970093578398109430300962555027357772490451506932827633564563737498769384995872163066152619929987320124839538572530116635083851347426741130236003130493127668619631862890033141509101086198166685627277033973649462936779507409934507868166957834931655964959785458018062411087934229090112557045742252226770316436828823487880294308683247194797136262983135269232064677994510688576148165725905496086383595053892820719221432669173447248309568696393834818654225006117978255395424580944939284904838539650983003273268896639928420810641116160360953302431182240345241036509992764977553685498454196583738736829965348670255604306035264162220163320410589979616393140920051661069561681573883394267874704672219847245287297480495788791239986734990947041818649251243122314215846893822922545801143799628547456330752602998550249776645916948062670841472985030115967205658249053028631348219777935570778672307813435676770418212718823838148839301088847256711919516663082767178002972345112769962601280080876367926817694046516251388101644886365558885353995964214359186672976759847675835772989512906982730335646559732378452013430669881970736588727127078524354123523135711434636949750975253774542705514690148991591998074853714755073782569105526375990871864553645963719653292968761195934193528268962886242311153335781188055745389908937199030360658782526377599773644788763836193713002550270700263417511715109628190616664087124989140972750276414137255165780209005798030237501379944951372548015783368179368681527801065852927983248591446696903422170045686238404780699305600762113059054815266153848636744084048283783443673935375698597965426584210998369713365407382348796338193979985460990323059302547618081478174712633631072429654920408875003809306681767040531866023664003510179712543876950302742566717121935554785512166721338233992248068125882106455771244608386703915509580605244892460952584556992709623419449781902909947023635082158956437547387302464718382511690121092576669859565498013070077452065991516722523454756978034259348383833105203454649906728268756089689880837735371356525865514318996854130085362424233905664613231035692635547022757917660964514714018629389141800230457076172141712659800872915090746675742344545133623015148364263245119913687380776045951708206202231661994661752951271652270079424648320210252033728169963735034910059474466052314457111497932718023976328167635735299329548322684748311840521335702212644633829912890911513403047592036086680658049323073222010260850781712228837347604683053364842283909574757830778098002858999041824191743833439373825162002763745797657466193996629956382887993458231695037530109922950058002369136609029609520028072083964837161030263211792093537901283323462277766948788661788940868403429084815678179108229397027994346259301338610974797185331839115048328614417589070435816379945908800421657385955389243483949759012522590016723170879163663777794310256772709403974684240723082635094258463031166347383756713902096224121493230077341492267141880325227277137858922582743397418566146709610905221082328322444922455507726550090324220392248212159541071170777481828111384414325439950464030402785326501708739807991743608741450591011506366529774313016491930055105406440484358032841233492006610662336355021912025102595243140828203469021639402971697520609239758209772447807074341396919927365764852182336420787553648083232589432454400049206753754316057048199641012437925160294283536437541891579282814791008472513655487702795615356222412593207219918977262384297350647022608046272999687709951312774731857377147158036370775786270835614607868298414283051210775952089873463943661769638266522814536480174410237062242066257839697753444873731977910265218631926120308261770188515464566638698971697244422806563722493312424715685394664981160125573819524659402740146381086579869548228728956544662913351884849461567746300071464703937816425974029198331019377451620161634373736238966670751356380825146246840653941029600877908607747020119035469344170228806617389463431761039694801190805314933034755352125669812119955086659069973219414364477915949327198055201497636519085594216687767409218820965509481450046194578960785485599417312913247738065336934960173498008985486109120017510140741200546343778364287835169329121775844234939898549840801259408139374251238173902807538047902774356005633126393388500451553278725626497037078191092783218063794823788050413229202155380237783338400352076595909855098226556585095807418652676322442029718266041415844321061488922432021239739160650505888806924710040089948431941565464796178394936805965173137336763518528920519484980572963188945035528457334754355843028023715948027466638458602484380012757634552225512222790902034166800693431765800081243901048214585565115403885944870151227590663633935292688836748816658391724186334827378188365139246560224383482308630759479457989785928609786077911556496300007053875306493169225658383241417141738619847962281829722032610657043180016367925429563410846056024437775872984627181200860154385528480760055926243307862191375376564400598024091578796265154077316945295411206563647487234718335845034598662819764672587970079126048712242821668856147873915691505695626862219684783779845344839773290169397571335434531049536267083063278834813134878715286376936123895153643649069355210294704240096112647053936538919796716340142776591439835160615983043654463561623983745418015599920350328890883621593551236063885453619974564065768579841251207107237961139173761222532721042521504249868322950098335791162069927014194433169713621713069282782870765944497908576981912614013733042945123521176690156127737529287888992156483711340568131970158963007680077278916156636105353414089625927682125463250454597149482420484701459877997804442955041110544455291887407233746472616532597256756020003562649021110294666525388513495507261693691812970993684359344970547155593190291054967390558975898042252467911555596346108433302105692579674307230819246963549279572939011060260613691487858471253049026367931234896042677042818022918874620786533064870044907618861717622573886711581950767911408320229184713438916266165549089474577634740515279468758995043641478916617126534557596004281229912888671001823013463770417867592976238456219263941595019570824405578416189735151005438941817975317435982095493569960457117069330253770468490062433739985048302523805366988940454006539069020487602061439205677151432651895386734429082403027014620804502793913557960053109895391815286201176140226656589490117097897781062711181561684668708709995467237361635741139007460423029240705050431340786569710421282708545066230915690038426423360211587180322999975771611510649970119852796977686292494445581079649517494125484119688908938680295527673776181738466242928743483478783646139213039899413927961495101927990038122641957825275617866034908000892914829970555293296213961458826471702836707802801283084389327826409266447901035765234621636563453594500503007933603901086043805145144871228624447147639973322841655338977073783820368450279586743361344785833996664652553482548746875357674525216238977869287050473909868272883892716542475689736875942272972717064249883269204255873844544074224669565453435719661301684635790788122792138436407003155597419044499978348173025067408025032766551562480900950319764192815874364788529805348708162351655256839125565022152606637735026453158764109100657454224102246328582607913187260726053229223219678516418767334675997711009529113535157384005916451373566958224272555318560092121507471231479944716950186671512593414769499126284427113125365053342415971496568104513967375922425996516148924227401690397191262515287264281557321011288458681970163291787450245971476716656005415259289157551083289089504247436516963845974673511906105566053285650159641378179425848898008629336853287959204898025334265967295325820806015689657578362744526980276841115898440029708289334029120703909485223892879461963157223343024819131689733848348780033722397347489112339082079160192485627993493316482266205572343923315601020342458000841133602783399541093708329392335099002982364306352074318445525126966068751626414925831871638629015996345615720785933621497808490493185895305467069482610203750659410691676717286561596192471363870662783016518767720630833118391489631610810297777737819676383252661569779936230824300205199836474196261579503998296378151857604340170935558391950896109314265935593496990318829745676763332335072161008168982192193189247574616089806676546301540261098076484516746961711375372084298934803035069845421534980163476733260536269207635120796637136569486233330326763683383229323037912217026916195892552033045190290527097048422260041522473182382826161761240553814300144198166523643649864125519113705583109097337608799511839040618301112146126783793083333164358048636182219740294205516170630988131143621194652039125102622715286544786219884904649870570514818140761629009703340318749698875282803505103041254124791601801154812977033225138950274825791056323249758593171383913693814473276539487746631353658139930035475918130045002668894006315586435866378788190773752610593774301022380520865778269380725061367340841296160075667975758901566672170836840303992649850111851998439812475564493673311450500624940377295112132539937161285635375058935021038913804088675509527388172344398962594004748902303531578664881854255819639501948702833857676952246271211440512122096291655646171418061125485753596830430906907117530414621290649596757167524145859864305692902069096068938072024269476304789198233715919042547843186917612330208772841266701215547156381423926652632264093234511476903333775048163230845402499510385710741004887916098798244931885222294469340161118678648764862927126904754167499615288670682542076981917734040595849469654044983787575696326137890535440292723790536964788643667161496141920818826510099619851899174616926413862534390760525154918510776108110446129967025787963395730824212936665324999631303190393443966159306188412513427466556965037995370362245176676382513925918837939578410884453786084946968850252556785232753574112133370424447673814121151998798562259354089907473143234729460723552206560699181630954011217780355231076619866079847775474715178294230844086730576546640571091128152089102224911770707042351840796914678435801024015303754465595938349204212018240088993070279797388013671038357195206112816458863770649825384842569073369780767057494544988958987388686790965489672818546666088869706429735144374655170979868678856328426775211340895790658076522002550596702154793452715440329853784322792570027692577125134416480453575665344343793687305463918151933826715181465084839508440466985983079113405734022475945705121104458104952664025179648555808559169579661342168146260692660388828014553201533460480414059930943753137707458879937595598725858603172219478557277621805475146561542963945069150938443476669419523202395821937922641215054131661345114918550120079757821630857853315941477583672647344759213013690181765722699794446933183481266130176698423836654388895155280488079558867040674797781707401921519193696486870650807837410583984878391240539899794236486040599868392641348464577421651855695793456171187632872874813416813083195100102746384209694266087449187971602434539054140713748294015446203039525918002164409069678000624640404782235541596702542862164947710827313170818946140477564622264186903397565050506965845140595084939596368416674108182781478403778121649730584209895109089107703631627100129881774999329103672428517458273251780759144377231569188656723733092702301424559006442241366754444016782482483953872102327451599687532697389394622443939461389367712384793978767615106944025906365970258999138418506071925975017952198794499329341977124318047057939065804362599418787444188814879835477846021406112219432033865738590724896533737198991827238574030160517671945249388412765314595307506943336349793281079806979963688666491855288533941414858112687978007389409266429995526976886547574569254533271695085549050107507282018150969819971480579788890510760867414692970320066029477291711540816304601347248875690148808616806059762648519086980105733261785847849309146230957874031026798300058247012054239076326453980418886612029537458220639142151694039270141155669147559496152011424360722871338781865432704156394943888430091872712733165274929241041054576311826107188597515959922560283148471100403220126322015228528498201917442152946236530424218649878614806368815867910324506846835488820045978242673007906839462352537910197987984287220251128577734108623983870084128178485221006489840337794191719341033586701246641929443827357709323261993745156153514322921956150590751704831410083587910960773682784949537435898597408718782215198649576215369172862551706381140743001124396364133877732012552817985898604626981483341444173169184275069372623197955904050498826425811214470838250179627613015873580957564137546695237456224106033935542987297198982243003628026846855859443017350389996953569091110385234711894470712434351703758114804098794124797764735166946050099056126156565841371426526126864852158712422213553368870890694643572909591954363515194730868824436590981330904733091225898736083190656485262128193421650458424968774292874871142837673433301305318828693096496711018602333970958700713165299955154266930064715021171226135659791888700040794679467424130917569398160168273691867416210855589413080064246109279032917931356720589472064662493267862955849255291712609073839922712162185427229625745189601075419666275986425447687674691808312482762751983678129177139819742818039811901615613082651486620436002902077583026570401932470959937698028561577761931112883074716747292931516336759418684574015028184273330216070915209062166827618550618221029408532456430585060222509713356786175537104811626457576135081042196395259304622927490291489390316854049885148519623714415295454309981490876449181190502602329199933358588617695135250354939947391134808809388635267645355463773119991432429603198863554769809187936222503715435420408863322051314756794224735135388152185724837312406837767224000019611417451106209597536162183346676889638128746902495539666310218575808461257930409088570263463029602673889368778298055262302336707499671319764571030770294940502208691259460443916104156935409844318171904071432473081404327290565846988538824731498153767530538268098069376070598143146619203611519621873029846776561213906698984714649681443573576903310599656190470125048530159449470244732380539644398305278203645214448669638664041983326101084109373631363926520713871554625564727108510204258901270857340927490845364385360966965887837697336809613301631130771200564673584258606652667232368189367585302977127659414849905546978245046563915979531085920859782682461739341618691786475902732917499694507914652558992382829230123372609428972833239605713999623111414484158083454675105174431734742858793072281416278643302644031723605255829595618412556595346347053008428684001141043910436663903509511180929852226022255319594695826923472590824303891487710447567208839100648381100635689574876358592754012442143517179109331395256099827307307071165277647968985105831100808196350344458623969111102344708164157409146127659793221738749542604104755660372483951236313651153148346646114474120762696379804967480771209131712687433258872858165899539616736076892600268871682652809118167650844602525131551045323211517845672397183736918909167775236091842615434990201730745825869203493509941003436980335696009947766084505694813713616829643188242782223415482014601328061235791981468635798273609095610324763208869298078125603497144749825460153962122085697797393200298424875239150240498556336635109977868185172918448069957818906979020503064097594790258731992421952495260376619418472848165853921721264911670292813886127530716265216587840460801308173041419585804678242610989272853851632984577333574397205118661118908214504874171927381385897291540652390262573010910892844162984352866717503115411952684611077487361039137372693402481661991819741859137781573032082081215914699403913111551637125354510661219029476674260817565262324897949170378010257635477021160678422168981676681827677980374817011820727374203359713285322944645188242779504963118304448866973764191318728867012173394728663710519747890935961715930499293052889594105175897546870940740207727451863125125395278102825251300468284027776685506530877901113296213672373351741587245542964846747406003057494116549738735015356522209509790480440764755694259526053738031364085472424988352039330660268717128595716593274426314417107093130570930015044939939871294338306115303622696928129347004374477616273167345011620364303469536790932104882790438679162796256863573120370892341837798260204336655568093945457788489849850184307912904902056498821136486305610790067527377594259094814630366878388941877075996769110648643803602842649197169149284780860828106304690836504982016615146983236414429969697523207025452528122574065615770893142460354751783305960040547051601586814958395235846855400214928174306277487845945970007472809026037764025383324876755605811385718752329807619064239171610657503954097803293045000358125621873755800387085346620036432503978312074233629467578310290430404031190072527800090415338950424362884339380146680353563085674076642899183663248374176345126175797079414271799141996971283465079610226431601904423412949115087945264682648620047662530951354211169951849630706016348456413990366857045572724976126810371209522676402856818887244037594970041142053919682276757022251573675918134023719151085476776569601193007925101989273108491251404573957830747541033719915724455307945341724292045413934058187292156841281682544867949106079890443360967291922210827905399655685521670972321759058485003973971254967464560427228415544445866027701702038765184801558544715116869068676377670335837521838074386960232877366846829567837304660069893009517791722156993278084815993740580233455989409324127538645805800982418029164439285146751484848199702720919665060340725323750447150518632053557004513117223842925030611693555889520303838703711444681382862493254809330293749178975643302788068322219825903527412016233100067457595360971215335891237646859995313245971252848509935284550716854500303384596091887947951252289974580014980424831741494319520028576441404323543431119633274908493577475634932119857185349858323348454645583105354950660250902059722273779328682491566033044942533079150068306907370985043268415689074291298189816166833067049233098201109756150596074494282785823481233534095985322096124353940400131183372017467033785118156377936853014580151391857812539180236712710191022101885740913046119013918471102977937612745334418615421395733469399398616053056773461511208807362360509154908070772764332320090825471745627334386159937307048486071464485338495518028458679305261708916680039073455040373674627777665074961618350501573862898998208024805171924274122644195247490506637321846905331007033019913474666874725922864601668425003686245082800830733740587010177945940185777864318312194807513504898529734581463511284695148732796041993754008476795766994361364760131916494407607196340769306564632562686975514598762461934072410411505150719754039498160629158901558352645726235592868563828548266920022550929340529484710429635889454843458502568367135850253917180169715911065455047261009738786450932864263107493598920427199698225102930884210699377842239892475239846118641279786592337229033310656192028897220384625849435693487373882073740899668033990381480256142481988522562839627375174842687517893558932824385954471211411549332237468724279831036152411431977702649678138964768557094171042198200009773920244291541182007349893615227079356889525361783641173304856226779163386285000101982255428856830532613092075018702577870097454366616901644309030607368399907998225547202463186120031334787363825779073613124232625365659670213506629305540941176523528807848751519035556579136738062704986697047580211136987493928370018267734108549148010986085175169136495381379406903355032898274193504413058852373337336726468851834889721464707616484492378801257375966811166515544610559636354993774077875757055349941886031881046738234183672510925614024187768276526487994450372659323959907450825300599998494201111486054100386795838197168902710036096314135252984897884316116798978719988590204826655514800939220546892866593970203487642931653960467560838467334955990780995320698770071654860814586284643907035760829469353263501444040016479673301743207693441716348522277182840915065345730239314703350407623345749458841996999640694185812102108559576387509503145111018615908985257930758684095020200140015787262370036807007721361670391229818019672337090650103236654834721035792084275933439995661173539562300146839692557831813811846134361317007600196838047070426727135767037927056409959378146715286246083198599610693029275664485323131074982316685226693059921524856162490836101404571839926979553009094298738527542122304479284314064694246213434676877924877877828135541944619686192323493440361674804422676372986051837673044763093516591364898765387513709918866745555611016146217407041024862748445045619571297514564579591164356371669065452628948308204761972306809532136174945341606994392253674734146157005728063431659724857544358392457457038547254544766200360521630648855119788327455873123350926876946280586312029401298628418510702220013530604912057420722241595790790546486086652249553604554491286274385649284375512295061697233250869804980662064709211330062678820924422402063986496314400217377547730124010753759940623596229586906080348798192668101728778621093260023730749536160782577208869589605231450614639930916886303722958729395167895522437789985361548314933798607803320842051069180372790665999842548427938346783379523688571673924377466916980253604844844334749538441224146405139130410639675490287301212642411211270666984657135624699171104119256510138020472284877592827996348827021937398694615414261916311654248880126832284481110827375811052747709867926241822172012980796697962829109663419275812702087029877170586154070459702105723260556445587511694463192284043116677152317167998684693406716405725959075821701010957951989785574219743682929412271008672782885849746090240795339263554828235369501067276883381850974069740454930166547158188211275292462720822851665111426799249146749087196573899648753573216664728189044775795747922040550593914923760232435472366519223859652852733052616438295634553607338811100472929693497416362320796952228163975656011926558222583206743617132127127210251155131014040567054971910336591849173657210500849335303033211296459043157653233042353575717777730484190417756264719569262847398581021929854257495602529881856173891968978054626902664050536920865435781043449736335465613370180041519559892312675165594607083415409139299941287996354302641781523807566267466317652797267416887179213094446810941267433314144464191551460914805287151383646545900480719512877395778026420443178779827027927811995661205141952619790152815009132933789815241920749741805555389261994024308331461270421032912616935796945641455731368059287023200104539735591392883350637532043439770406557288952353301893139904845297253830526751160762488196150908171567697815067244237536005421446905116302153814526461961568057000644799752551836205723907305128860189170782229635404565632518605882181124049178625415399473700563856312920223438677397249834378483124509969658550326854307898991330355362061716004838271771975550346029963148785314767308539482627763310207676382970420126260950707689341830943909865524293841250137019306858311707427441946479944555402034809203259573001921043205127423232700218915698642770770952323629020306062543627497292263901647355335060085099945316355265066545308824861894798309722325742080382639805301431563944391420684391850549583064981864275956389938969495916792128989696061916280624799954667843145311066025549180382565407404465663396471562108682762450302610241580878499935331304169154875476046900391661717310639245527643604134671744298250244880598396231493502577277639035451043147382037556460545749582555021284904616894124936797457448201102976730913361978787434392434283659193076318603763645723101412446014920444028585080328210850843872389993322174762487372953239597571835661028393251239022761363021522959523692679988375311763376972246925360066786687793971137670978723031319715677709857967258494294599526460951906976150629334399328364643863009216636756155477516863120385975430702050649970644972649166464400903326919401171390247497922927207734710920181758358948754103382854529702174275403591772033889019529916762539439716353878103794293466281145606117198981397274960107250206462951275981880842434676570834664078461400546549348773641860821203704318086430915844499770472779221468471765805458218178337942900291158595814141196692594193770739853634675074526363827147852838791369070815365165240897051923918081021851282394446514257261237909557425592172997509899080759680230267924468259068876510121984966832312754883954451728058428832329608099244969361016881401970563469322872945992099984730101563228465231102732451175943469069948442830763762858057245875559069618389360962604515973848666290802013986124106260170107509723607248267455401797528495270883888891515388217866702399601431713055113356297188106618754129578287898893987283827809624805757814838808751602266207416334253704016952164673761082005054478630131195650314046198474274802590691641061148598131867884594414162606853261274397879320800257506192544480705433042424209967256480786294924099632932187516855172572614434605336229921627305234281924677782292702521175092728418358987621174288190670202785079352046725247350755960475619906144669571306286615665184347031039289138573870131595188529474561127766684216885593945837728736171013170233425309216208778698376616777779086231751984511702488265538931188699770662778849622882177703553252728212292500449651563888245945907659713780703629366358379674842745634962762877998976206660949108664206250939539086860222719897194994382980780040489640988087646964905472566328886408626576847136297232618060490444413382397780932149283711671829585488535067418339825173178297653579649532909741688225006751436278771936593531242783929372591388350819253908085832394318605336829899513467099642800194363731163848615062955281343808836639933552360355698368343007300756891644573188807477767740324819164069853475289934347131613723905351273947338224036666185880218949898390353469169701669867932750306564868126029654109919765529330356015873974990827179198201565451257795639784378575628022063868743379972148149082204091056523781371064368197187709863284142095292045203278264963172358387130713440462328099993831292418102499772360905845826896887379340388233178236756612156412523213908257473372247048915069559138668676191060623724402078138254151984691724147522262412929755643046944408993225472518611939003979014375011238193474250663878494808192931851522114935694146619938176081643140778994045414616825163411229759850298041168053917935481771316584715079160889604362467141957498864090391029513200232483940004383386706139517701504483352387187685305497305684760740714455657133022192945635334106717894688293125090821486800856977494960221941296527003121538206371492508035629580348559097121674406855687154296144785688254405776964024028330032559559952826609263169749169601389866012818602673746423421084294082201211131667415832812706796815290440375749150141920854068386336765155716543663040816255377180350577056242300098106089228769387597364295918706708420289900179326192527194558887230072428709897902765247448638096684477649353467817525966012680292465239302367008105304864578399306463228051828271579953911867176145809639630884657415022451151572420736249569352028195764123482170793906585020101553474940737067034426113069743163990373505456687432483636229705669438914074059214246110781739295581131965905695602181813001066588298181146762654287919256563301668100694319613529609309319875629636402019149447800481311015665669080638879772271001706231802128211542564020973839029279103119930929018202408736514701680125693372130810073454907161070285578649574691117141098969219901103732402586995124509734667803065426603158010622364554724998863824122282043617704728312474500220983295177994347463806302690116503132920513260762928111961868979458835725973190360214012803389623575796498660381049905387250249555078456258446354916676467603657261928819741892778314857572591944397668723521247366700580185854598737938934661921321039527791386850539388697225845704846581822604483969038984966486052203066410055245637187128213604750120362899356400751741973088938365900247705588197351295547652455314988224071339772967112019098442934871777318348719429683830078510183851556575361805080368189659178888789907661952504700593897272594743142234721733462104749641151558698756590167172410694413147444304608903607036365584234702481950804812241639631831322845863374389889900805347598936406285192386026691951353674192042065081604006001668778820418628198241662678831498748953561103924877895157783682720695733258496802644326832531877805913828459836313737428201066334448546811875141567565363094030472395763601681758960130744943502230301343209486809765368780957321145492740332184690282188024465842995094599993794972675680734810806211770098950387510395804805234644957758823549893552988805566331995731749545778817034096535237575130653329643198211998602315529747139825435211713763848278149428435118064593529559665637220221653785003109922742772045734278832252359393814057411318272275743596841307160294204750033176689547706876314542890115001803937016677164391668042664087580348942389442864649428156446821572875441761911333486044864624954560920914654654333948594416099173772428535315172050078180855070766278775806105289767375195584308823890846203339707016226353331438034719792446657293645955678045852565267041386732607795894338162615432109680865510013152310593230992252384028153601899241692695795192171855882706842661484174627960332016232268452583544487938272465441216291471969999196690930910137262578240829189656118659334951927823637764772487466213638296138470323636571133041873154338516817849518632098916972616191926608890238250958691995063430234758954155942316651640559485573010937613417753527151526021997443584188707033963206471294390952182055440738232156556660398273097881265595330669697493887257472524749422924880908610578247763356500113972184805974232153827167285825104732933742192290408570253917488470499247157053268781465143400912774405563942770880099271270079231421829104012837970085903957264909729030014917525094918643517612436815786963139936364572145047314006072121440311649498400936927882379674212293701230906443613685189978797631688652003023788804855768260786306797157327298147836553639293989753226535711519825980848215893449238764793793220938982518160159743834942590676821436659631711297986324771325779778420554547421215525753357558167647378119280603414305510545693315364274308868238701576937602614256557186853578044982273908719126052972165924664115779913471326013987672086184681431768068978514716608046808592884764333783162961587316523391191194074419086705361784592154588084317106088267896060682279026493993947369200639884780532452880499601006052657458927314793414724201359176721920192735494806277353363521070712766921524665602605870808000276875727957678644055007667789714064798238690463128002795197047435907667348967035751836707603659063516232834280289504217364103186743958363652595864920187588931407987429914916248600825940329443101205236930532265831792631514440720912968392523098016988686269954271279206581688090373126575433622762219962936886207546247302783759542604084674560456546750247465230043854856602556078278990003733801363915149161415645941596644453170193056382102588438428953137819299105133426975741147274586697859248166110215005428771774715448481986067763641560340946769316091426464706583977624310882304241792107804001567055154102202743972782661491896915570912954255613493999659597391301201605629126469872410925306608030785635576207467050138289469138128241010227559193735333184057218847908888506928614862080768838562244508562209965924289348789154549096755848335818723275724224322434249811770808375158817645488942502509413941502650069073355915053731727468503399152317907885957029503159217278768255570338658148415092663121869238557509108127456352754218416106561726731985496706867539650694497751678655075019493187779373072323640401946712657327227428843206807911067721925090463209928633544208392922526057849753937459790271925161610883636250378050177259836142510202081839804841131414861052911177168397108859532506120770144995167210594430787978844655877223464123713257570247057341224599674562627308812262932788002543144012240578939972232021990398670590195350187098733557652470307764599253760491772620463552886855864069962982324147666841375340522809370471390377708519716565560484931438224293437947710864786415525105168221902973513786772939223583539666876497704993325231832944626597269128923133422243525715178931374394563468721829146633513612545586828736733785293064350323754065977476018946806046862604240035604057320484125077737594933378528359472857609930890546393006174827903474335597466067183915880793322736853133896632927126979985640560292219344460434569709766331234468946855999130246629949139938610900662099896021038272222428423812958139260375474825521399171012993575349544000839379446554855064978569900622732929597967347490673431535804131735548110451366949739281540795615532277632525369926082118547277167317432353654789030269534581489733132118111148838135832578980536790671206935593075653867262668823998559522555773800315015368040381891932751334174595680882797406957426937634824309883541208971507661038755147471235770305833112955976723910638305258396979943942792811765498156438487805299324809947552536164031220111102220631590444564540213681199188509096394281823084183417144605679415472111546668629690307783929575290147033923874141696376413747516207569639696330097677874243558329255724607830326637751083243019772318860610679564918812401395005234362289103521838340641640329290803447829775189846738804248087107895305490152686811337949662977580828897176230201585361891725606981421112778229495815482654533756187951680027746322002920761334953240065580655508091318946292434801211069542655379454028894693791214220078295600714040169071253406668945743789435360057699023309741015437350461037549936731846328999420730469192078732738779274267808787279005868232474989461224250668566919202849661105566814215046216871388947679792807691186210333049026724835834357929586086213687590690826161271252172107044768841884874405665728259830848320162127842630916404107200383366294730115134005638099887833679790005755554044705913404323963005552830756117976706137800695021073641219489706173030543933711898269722548632700048254011216599875528263351318625841308283220789423855347424776851363969258134753866453442696214189304601647941306859038771843906885871977496058963194905609908769489088882820821177510057863373705380716601466044610144081651355652235995686962707800343512499613383305512165836583673332514330230188271900388674201972455533175890868328382841764751063596001839523435593220944239314495514761526637554372899064909430521752180156721195005347679931218388947586145383317801367665025918171475358811752626391001519547754909273396666261146844465330905205446132219398919120825883549961635406604856643285649518381192703219856931242827345996413234941244074129943065533322728849474881866490245844071601478665954944377354963763954908484027427323305176986125693744446667102070295120885153154338684277571313179140027500766915573489744943704929803136440444506366560488639537962960216378156660220652520582087862219647887255616028561897692907677600348880316286024201597353301090623659873250453405675376300034655592119937163573623026918708994555583098036538637533770337335009627943691204055669421732330144641414457206586389201503612917925034621716508346786439629624285306348845097225545733658028789722325079537469144230510259440704620372403732026573689304031668687518508199474648207476277266766913916805375007035220549635490617797521626342998623408283282461163433420123950219170595009240610325470996536266063666810588856979786748396138129076589334340363277976384769907330190745638523847269202504712356631433318109928174424404803085393125707996795407457806197472361271814609529123141194106766586734182571925314959844380846839216481005781855874196972340393971980544225788649233713128551227451629853942016826298660359322206188623809002223496154190407342016783628745926230786315448122552874987243417372922991585509674256046893050506646981839882523941328480278668689304902884093108794015841779387021578317669736346088891652783899780021793697081648550883670227604874640043260077758259160042482573851949815326761723829615910923005241650695205798065211957015256509374922507734818656261436376045808148551446402445738226718986304294578955445228840560805008791940373162357113635961311558665137179468291147204915299943261247973261483473669677834418772981916234996337403099861436224691650662033602367102396649204695445076122625583075253182539439597854645793147442653052139572681416813518693513827505221732980345322286978032055712624169452277961899224758052900731143743037093591494332111648940765843482801195120553311052994162006250224973805970814788513030433485722489298488392136962672548466550021756935359003153257981228311708160167343542075836573692030908839264148474863747104556997703832172620414577295166851446090821629885617485206309031526746963022564522684935212655835331572606199590861031541929640233439444691339344345317059957784702990331652560810860835479344019718522830667095133817264705305325748503189093554196113317245817936842954282090109062345616366507185880378653344811631494931248196141295530663477125467255392787388419394233365217660737171403204598851178019685783180777439755393209933133479485282978625262649276507309529307813685824094396666210962053880368190489661475147629715187935850995064594831625740729097710534892558031118839753139804700977407595222684463784700289333404893438089054068655846175658291933024656673489512800804775361127923989380334645352453729305589347266751638465828190444585336590856611281328975155172122970236754953311887979325777858952067860150850879975895494650831556691845933542573070381513264492411098704260403524343513626007105245087978052169723285657096956242656375837446348240473690204511830343055370972696161302391911823287383120994194059689641803582390134696172499430936553321378027207091555029186186700124520458569260713671292615988024525526293377607654788266076848559794583479620285597683726503363567249585168714502281864060463761221566651855420982770637785517116477218337636544162064731930495920722929242292140537721607125400531761382923180307996609219320087286573724304587487149491064028282192962142055942468317867837940608294172078536131948163897738511273030860158276149259082813621128766518653504355959657206468357247923160868958696665127838130817684431838871874379944930609835467999028328719069228349597679335019159866185000039450929797544842360782275891234961567177145286568355420357949889698810583149313799539160284665582677759704390198898117472399688385552667931557085752309545065960507492522869021468173465907978984249206936379550012926164873147369413147501279771861098016124283258699810997723907469090803002139969559412667097619405017869430400076730386103319455189480909359329276087402425750321984714554435204647781903063654353624948415108591705392314057265252385143154349534648977732602246267257422262727543643502080612753920755826990811608817975780726310120271045579529310080752453746321219176220012643682588338543432867689536495845071893626340448655384386480071218772004038149638225929456603616816371306055559529416040222383189458907036841499565640945403915323095265209744132293844220419549759468973486562824102403760994199695898347197452705964242177847202368015149899682848574293716998354133560627284561944114117853839062531521329916844862177764781025061058704735570587065370651954549911887780387905796809671129971550081898657544902037882943589417034104049077681717568734225908808220350656537529171363532710435840028077269083790945300104783863505421688634081964261267421150236470777615585927580552899365574473293045747059153621106347911158859270882731344926062659836390911238995061919730452117120184389219928985034470086049390080281934070561958773960162587072742264394047358304943497575721899536710906028427919455637212447769862055839067520539139928321785628751575696723006303458126599955490254682429503503252962089032386341334611591079662587537087569946244996636087110904259813449647768368200045098859729823682485358301200451936326131595750581280484564366688144931358331735256898339855203877527100965742916776063406371346959982171347049364735208898877843725979061919390832545750562785079463290462519944982734230713751980181972968105272267003039186821751757811680505150066241888759922168354092461854321437876273029694695203358582829391956091252515679831531083481947107004367421170056862373423899009249632026562143571130253223234564910337702769678980701894657400970366354188840761226336440498448603534199296223886177761936014006977914589823618513060845559481569649332038969900991711508028368694700093149294363960175628042057411054554071901814394131513601054282044219257199692599325805275172935005358975268193766495519696652739305552293708634926016798034284989296414489595592515829762091484458172743542812917077826245808042392805645944668099065866975190999020653189441846947913171944908229322888533024116991165762329083961512778755678889544224007187646361008847930219195281958549546422554437510144857562887710387653790036688268708952321849436271866683980166966332426593289944210147113389974994081981943546535321753680285885934928437229775117000361178094711682561281820554468145578690721025209994706424631745089846501302566454282274916796778802159364249247727350706921131514913962495399065959000250331901776938982132343957426294997976162348209239728037941549734170133746099949102647888631389553247419542670501992049839826872670935627875576621758414781114324098816334805796048596800070218339327117881096074446223742453436439439549340252149511339340036166434002828969247938273168201174653981689329648935535139674335040936674370659535331685689354345110377815379988140646275284711590560269794115902972139055714353808258425107756486188955675112364358119201132648602593483346838568228834612139087764251817193973949533235758356316229410806794292830443284366513532170604217031818442887368961436172060188825528447282065881154002963401650304944082661276995677405769927062978496733003184907219119220887655571010847196000313152343329834819465253645450388171694767967557252094991367689428015775088148981935685492085642731220401593233727179748562275714871610724468036865991131066455857081003316727738831210187114710829054023711644583105538709098757245923837071540133082564291320532129071690708493486965641240795890860939092648208599203714225272337617983973544808190852720729354497558454771754277402928907669168610873036623061969305739981200403224278190965134617684559545770860182020222669563676937292917180262372565358748807804577751312015409786785131730650656086840815974130973809822933079789627587675292680609900308361783452076049620088932877785510822800556774710374614536329803083069754729362963305130603992188975303083569681330426694146903092378452032877847709701996486036013697087913928832196804447945891419707460413142817601692417257573140545141125379397361869000624871025814870341472793766409124518622665345910910850751783313727553787749139179116158575038871583286117323419391492749973338295420571883985269280045159397063797008724735990704283364738710757980288113779723869049720320291516972555768025612134315605489086618249446325258212468716490710020402127174763037410391406447315201956763629985145143832756936198850897076901890274834204154672993515223839354802609175388325894248659764411489443079328070216151941556670844396194471400931362564067957558528185314491852805550809444041014145267316311775316367747646238808498068802187218281012433293495601198620000226898328435536154228342216966060448872973020169969632975259351019206711321982300299658240516571545649502749720474770047811429699747203089884593285229485488704561835261164058173528781011836081429990460220163501255750281826452432761452361710177444956227948595270224461693400305147730638775590675994611149095495642098032730779549124483325713975646124711216786975686785488907168964620268030307243693618418379190083630287196129315141021212663123295656985246863910576806370166020636657341776877837129903653508940980745832258532848745289821546477374843724508829007821322033008565391596782218875363444877058898986537184610562583272451474719359646469231318648198679447316610411936468742125877672720552943164371219005051023238076667272482482232663956675709430724277711528630287376249029087956559173570303100283012282833136368153035720678431151030006260163013820772726758505508056944151354450192885291266554255807647883925895101862434407862475837459930032932613597700797821936327393686068782766715769644096476708605478918966268214964120268608585826693854141823196613000342564242187001463709773371213215440435186088622030038896726568207755041121966998368648730891514804422434761368414526898548188372842003076542921911046928757724024208736848842546463204606305304069620093441321511093325033595799602812463927637034288563717924805343588229115945110589653884463003620005837507703069971530439025384633851068710021875842395474068719766640063228163519967519393194688833042072974713867545915784818157336626643063966763617223840889993253945870041438992381273818761735962511187055195906250835965381958165794046494027663309454190318599537989354691743974425494555864110618771579067368701979173603528032804250955507331892670394124021358867082948996489335411848674600958503635016376918516010117692811575895383064176588380974964947154148416767299966783903078220319624851304610885965859091048866497583674953249358977279405002682006616780184895547207700812442364194166885546943461209285017412438315265698077582079662536536413092159191893969825885615529022246377510507934044353103230195634959222073263079561772326106955272806209077100479882928881202147915289921337589203172241867141467627457473713869409568145405411571944916088572554322253303012036599352203570742412137553884935283234776666172013684258664012968119813151014659321148515250126423768654545050252160498883396838013645447604407271351883048300892385274204386554529999173051110887585741228347454856976558466374158408657978064908110706705872469407534598356267046969709681073081878765988163041948091634084749878146466676991343496116611019618830054880814525671697509458812875272642835397598236763631356943038787393638925721147244146591429640469793200286576095432284907467968997236943858449929019833514647029462638839864201150319969081566808460426931332498752489947912374315249770786968289031046414845514576053160250298947790304544607435679435878645958622551188405165287826723595806549106173946037119129933174306708331843037912269722003283544898777343852200647769669790070010050309663168046681539455951953394121577885251757578143319628703304084499078263624042779934757144171130953545200892921900724535702229242971932654352858497837743504563190772099303795675751427334575720551788893988325440727197738815191608158538653842529167052132433588049959047438669758195922651850488452224886830098706602075263416283113138894091700347676203300873414736797518675408638525358492784989532346407113337561014316157411554741465045265051326966720204257773350942088940824966314813619774972346372581447650302215741284026152972257910676316906478745314757627083809308465281901786125778082230313026362081916784381850880172026219136216477063676551365751551122446376091205591750618998537430900774166313491397659771326627259309961207454682575961913305637639929013980845692169234349239748512856974891809734813890542736073561340114922787412625964252000966260125152423203916429789601362299018973944560713355035838082586990728128803430438303906453430719457678982819192600590592946163921576046082262551231982388726237893367559497498271023264873535322514396035342225474030320878939466121521716423633076775875352653682562682159164615033506267479579939967809994757465903749767486463259973222209063483328903626724864863407150164319507058554675175303718300700353885106400568073789302977138213096723886858983345017650765960871259765835391580455150658150922679713802207515573664664838104149600212138053901831027125818621609843489029217607818785854064268114261181997876396067912649483552926476600699291889877569251984792793482200121870221559046955529637574149010612427055576634431261250023064270846537988361696147839592004722047507577742814611401830630503198333225812352706741170558884517542161716263161969026993881437888040826273358756293701529319694823752390933658805671330551218909558713581981360773688106246953317726138665530253191666567565081038678026676205883449425654418732244320368422258042596310626289815756836985372945935441885488550795161341061600361824438382143313638898895492135406758218866969908237155312583446892956517967506467271013651239207850991355301894584879950194497868056842011920332024861867185806797154193232035642356344552521484932992138762118141790872016873501187802305710332664451450313945720830272333531611997624233825821971955260653317925827415144412351803885246084909175085997853159634754829475760104073788924206531406647461597930524216360088608762634799199985998626157653246538529072565537865547747005468983834860557202161748029316561925926496632227332605789622965690533425160541238903973035523078270857804612332068822894449803070632268431277377731030432427292831204396718906309888843775567309952019373657069419377385207022060235154191786749597138646655721405054379016686872142470768433035772829595159444575265495648641780859187890150121242973848936516436720304216450649824232980055799407529494191356327280774851919958083627055172868356652038542241582275610464812126850212192521893420580715680892568304523061866093008210152849322814378479163822590495981436643680947532154922091968108357986011274106053656626973431376020047453003385614256509715084492001039832172410889035623893391044285999426552905406270324139588219854816203156553016873189501884485614306152154053190091201383366648834372419144617107816937832334304776827478492753160406995149666483402825175321979015407408079434012049534559405093851654596294985176871687394569065765099716735802267938795562508410766769914584739134565216126301309616033280564635137657640919281394520715870970439577578658272405192195048861659630671449767821196664136470265777883455413124423426675473581587957892902016139197719167289693726191360337180576308956298337877928795664180748583389993361868612854304029992947447574693161066896763486599578696475988854899744108784073927448716899800968811410388663511685607170697484091000011426918414039567277664255424754310551467213062741635185778682974542924103152235509948247999895999721158725887223280473037588070908026078391449536450867756260700513204053899745505860433656503601756987711577116053565427395833614362351932975856970310571754759813238549948875841392488553767181177521703747717876825685191526251725885011160602673015607593195483463370222254371729183502876973144486081904386041879681909219830981406272632050778882228924585475430228130817366276785202734150344735703875803520843922968223118542462978268505339113142292932489075954840786303578718675743235285620117882012202775345205667680331849772462691072487672440704781529147827277835419109475339322664695687099043011964734779902937426365950189926615617814801817551930932587333921747410001207208165313428882642682289953357154882046236348875133439995723736400495729697963217595547952324545712531484712608053167307330554318029988555976577855340136425434681785692835195693236745040706534150876237759744876910303639430960169421472217439625803511589758911781160420582300388504432667083234124984272749043231324868236249545777781573847084212433304887558706390624698989619572761247772502255564683680432341010879857519749346536851191423474497075811710598632089619883329520176172488551304318789607065006212213007840264573752520938943914498529574030189259927076609623498676343077589838192164916074962221832056308993383767056911477470923894673953708395978565227262762682636902959837762644167740145715321038192730953109127921731616354980874046358296598317348509241239556536361166019404745855551072407094540809679400946278324989413765667967155491117230520413285821276884274241302460818262405554407043052636910098988927206691971592973749183055570576639305948137938079327345190792851340095542458392610305397035268423659510887537279962705292662826482624918873473393478163751243571106592644485442549898518535205160971842833542468682915863379418239503685332983060497669298919131662824561133125044016887150600498214557746373375316236441355988011944290779923104859176236689705849890308389364060645860528729748671643578168941033307637983684952851522987076849132168006691366853420506266194082683798538504636365973905442638589277267280355325775078777496730786579143163570930334306966120549034096593223066618738143005447332326214310332336105245331570512021478334245147875318036300033723715138979309348846691505817417102403323791927896057668220810848915613108946983970879419587530048954533353989629560616028095236159744488733780305864659853333968729712539086371339306561079936547192729263421389304727238628267730157190618997048329626890893361725941800047229691971659872693843006370204306688721464830014310335084342288573129765320644473769660147083115808806696890623192758039291409984851734297763710007552645262974918014715027306060562682597077896074717600694020193189214452686070839649596245647633876239627645649529471997370765712468492306180420275562436570761714966862282897006081249933456844631443220255937610045697833954950665656098628819176121904024427401589567670256135097017197841968081935328105688753158111696814438706020487159914735310959406882823003567954841603874789048080957602662790188564575927573886882180101775491967034896433010833158173978312041494421879075719246990203099849528815231876570931031783222074368392739508961926235105992610926427374257185162641438530488314798011283383535706573574708891297613383663415023159363844831300053975056967941293274944552769384673925624034080219838799479409477758287541101664370508352876340382796582452672572263722585461184549467048835502590800402132758848206907312567969600859213356114004027330890425487400668660440122393920710198617520579069027732532929486253915600612741078232303804478377969512037659418399534961792986587998210592931797759180757372961436906310243364957250245535095696244505893798254398995759488468681044353550323582277993371897694355082319812592994909257417203627332480707621957180218797954563816509410949936937819705959592518765817320613949761889578281238275004045754621663451468586591845386561430787708759863947354239512078649477351764084028350143702323720969539591821004261818844957429634756809742355075508704381642942440240821093293065299722833548960662135362990584639229178069375196823338627111072192611622872202534115517945390956746771332093102212894452451171820197925531239799421266936177010410262649284553390747008881492796981460064410320365400528434751651469033375185650086512855090823371815400103512975219192709849947232038680256484103030152058452954471932144401555780436464609917183386205131041649670033862888622605911404537198019549004357001020409246567690707536346991803840195934199780186135641822624833207718629113070299956783922379743641009256000683703695301374586143938420021145512042810621643271281817529107798194972941459571616564393634376890401829139816883179249437449153148309882929617882370780600356699914428269989539468253660575331835973099614885258003417878647455935808438641539547132846890711693511930512139742924726311640972763197939526267616837452455531797139390018176730382471514017296330129156837035193732784441471596584678045863333007406516951767898508304254091325150327055235797962718641935477878878167866025073391416853367639998310550243203438927531204378805505878613012517149399599812671227176931038479141526481119302619201464082213312720198770752565883511976737821259598008606851443737219932834205101929154681268189418478302525955000569671672521234706309452221713965009973154876340151683109975405473305838356394467234860819020365776956482269198465401524280237749028272042190650683398518107279602688385664868291819451086723278796923353101878256438739888101400757786118151994780622834711563683066621890356147086395126498994065032092343541162054039159778745106179019213408179453881210903835192734380565317544823771066249828483882979921963058802648403015672223422211585792254785816821459904299441193911165856400215714436127482884024232067078703291392922734222139678907721160198820866316601311596983597201715170593028833626628047129360099701939675659593732239714550742757520097326346498221916333354644608368352323060987870454584243929096815324756187018348399710507954688649440891286461464820715425492765704747457968197944642844626395371737357160050189198625876121406480405560841860073268458595232355287337571104404778356785326628640482195113284005588939299077620488577238080684436666239677863963882148381594020426940542790445409848296202286414052368351110776290484027897012698518565089146548083540611530712990680315300705712650517278363201236941862219924152784893274728399656453265557395256341065765260157511675165900338713750469296240886202179981482327364858667281141426497406138800974833262181135218877513381555960376617981644246005745482217779423440362408205138249136076605433598300456478557366293306778467842735837019048415043148841383778974475007047572614134421015851272461997473672695205480136591510741406049722558821745824066055818891857148105648794103776556258128271726538829961468127787737960017140757892390044021147987282159289114445257626509235479279052517888664046731888670013073195754565678552796719560205981708665726492501873002341261300393487957703670732413697990514162847283278038687798383533995102538585381520993038301492899993564321512358629256970077305476924170661636819630026313012716991379462991990387277604228534491770923587271546554421088625570323143773730940301702065700407045762304687378357523023059637192167573464177688909057484756634373488425846224420638479521217109247608495622042871578367766307615696456222267072560444085232857393785281372763916401683227533499975267369582807090316658383938193204778735358999404578511249456218001376467183238755588736234381134887244904795430607402423090267897701793759834869619709012768306302425853890282723767378784649561412535944059252459252696787898368839100026011456766798764170450988641640189745026007260692195637346455320944345294587165245296288602254969406389575507238352918131066899269044592237507669407418413449175607740121738983837720356622709845380304373669230460859714208213565682341489308886635450579593671441455433934892052150011222394586420726431567965728367652898943936139995695996935350773708048944942425964257894773071106668545292946524798769027752011506186411448324420347414450984192017512132369799669612719828470482246370789033272119130828194436969641629096718879112195594534551784084327731306884380969155047810980903029051867216456878275410934379333015456689511652100252913759438823254642743475090696880233849328520934421862652802897321322367684890133200820979841840485254920256596004432570996780772975081119949203505397374478476111845383499723758157901783537429206119527228372930401311566050616249175481348659490656068964536359014057405182763794489704869783659219554473003021318063120875372161033475248573722826619709740606798633998710040789000902650501936113845501887464853968349070218552417427255512519950938907830580559340704624826995401276907301259497436565942356765865980526128924476924116757211404718516530419931677522498323982138190768225172880421028187082695252621870167774129219535978192513474219052377587325135308261493608667404491611544099821231234077246879172113911508839514533992751114615147172165622280845427568380554032296980281163625068858673673341159302478893737567377474182591813210812248056959838475018491301006122748479701901639849768087571145448051015990523539611942987154502091969429621127320402243970983370906314183721831373630893909547423346537646727393198843738720124194569684592145882689497867796988895873083850855522280300787924569639433742663145879387017909650680791102280522853893970160484486694530334141646685845666007329852664982253102062210859414253195094741977378936391410803414358748393879748085932010258586164559341700949992357639081164198090284579404807879739956225589220186051819959920232123885495393813721267118566791501852982488104805980777668910186405117017159880485851129997220874369512408628525446473347350428940284335558121661985418951246552515698715691612679419345932350702114576593375150189021625553114947946425234788178496596834008368375279986883151442975624638541650253776559798407055852897527670797869636723743632460515796932419674099192485829958366317161577695890412654636945189079551254777217459260704346972208350096387162343440387019519476684978444813912283833936013581173041446429422077682492016236817537998966716936073182699319773446925233068565271712845350924690647225860704370797686281599884091265779209977816153397122334746264632846993649104234259353383184379420970514211555086186729892004795969960411107651870364851071278723187187477084823559407915689514815984892830126811386280632583990481301071112778134902972478534384600837529985605428311930404787236669512716061939184522713311601213460827788256833552146297184256271546371128112693719349105403156420833883197521263342716621984250837969981845404163151421243351611991596567415596737232678137596894803883113078109722591342709945039164701589951375017276237105498136677340804989992413574867244004178247491322841726442298783399880393911250141777213019126149532056801955649316391878290240049219850927235970952150974090896579143905111788234358931774558618379884458415474186186384560790093394136055586474571850154651636535287026709483727099404634564384503610138431821629849990502306623363360413064762122152590712788628274513917008418911541319888350941552761124342953755174886705899650707176514889417261082274301854521641996487630389629867810571611684928096569445658081250029592174850478303107838619788288333596622788062656703055750925637631425493040515850768130196640439825389217371059840831020981402885371243543638307737629281531609672517222633825326664433073494408130500819699289395070521881871253310648484876416819593275786802389959700023423124096819661706978102710145463932325899426205140755053507799879018344186829559531289332199659459288351727743726694857324634930778970189346464088301053655039503847005423297107638557132622192684734519843787391154198099779875051308557322168462628900659433454642375181312249134670492997041125526061253012879368822063052003606573525805138187154643703284787522247664588140926006199684203270765959118602971609991997324506223543563375773751532565857791776329453240333641137586996582506915106844084444545524816000435536534322223870647438034529241697969443826551057633970901613545762361144727131707187800324550602221718805899535354104737348674448481117325365864500062678414062498137691248063072202341479181765096592941841663159559029070232229666415541768969040015085630829029227185901734549786400209449444341562990268113857760250123964181094195018592462711480104614761736361173676131312275528041164879781090588525533949097798794198568943929814082216715168277508987880949870725205746932894069368448895186188545256625673498750031254945532187322667132374654663159675253865344563221982165843032148195645090185316085470795728280151640074826098002190527348952117421019014213797098329825932179591161711512700413660883515084954599354534956872122099664160789955489303588729446219509271881844848317105705635443421208906416426396437673123205648418973882882771263480921315826110331012723189539414821356480929494231297459664845354089733808756326027480202127341554316086102936179390812834988941383532792971447044256288515666659012377196877297619874948711863365905455362983122344682870729581093310695618539791985535089619642764595880121228424943112861183724550168863930095808855189618934415499433480646498135513246851965414192793002840801507243584681099443582937241687487365609655870106788074227437104407350769394410947675537134838971418322761102140315723246042401917376182725942966726319800404259137059029606953276511407783895189235983192392788050842473370548646984295579612590730757061677213212524043759151685423537720704500039766558596493930284204826484262207864496962769359170147215017618210900545329453672758551313969847581834857943330707580037835916191396773898885692200226730765596815866049987688312763474064201295211647719382976809162667985784722986641969608338451147698900895194613692100452019611213698606794425193409619715499507483455048585543676186538339746415382971050980895359015373281289585912787994664691646874216878075512488935410787393520777857370130702130148768657662760899014853028456471000820832787206163693086123874482477520513836709732981491109535790083513386266272829282496972977650269978193935170627924956491638816254385605390815872669991204266761660624505130970873941857337692853476662925907180460598749667480926824142835979369681034132726918563042486231126284294078371671835415889071035051138239449366352866220081310318803060730305828780081107322763468354651540240232400262979858116305622749099863284644347429944409712542154912511616680904414353415346898500688004793202908863168170680079860521494276854574334622618608147493713972716574954006840219468075056795783411495828795912822411391701122167374787841990008070168828443286608240247981560014339953156720385125661025984546760302179126625168331041465583702132417050949549103322103978353940008941758814693608617570187118065120313653711441608833422182647946472659628293853174611807679588470927596556196849334175712210623850471766658533397845667176227125253288433994187603370215709403693394758821067825669133143681936810077409065873510699766348196249321730655135563180415031061855143385740947846202423666156047519323313313932234466092284026102200950385983686024570790357545579889862030081191658406364523810667270487386167899110339818074148721413035521430348269399089960571273212703631125974776043014519409998698214152148794808046822415235327673434698765470068421996796901202245284710945053559365488016000232590996854594301844881363330443231061926961824354558841855033126751193024394575089006558277915443533186166371349312016807173660032257686577470745402640912592168799418993856296030324976638034535946170912618216657447420843197432811130824108730775031563076670558916994288726627285384080428920633770177551451665890326807280096279355104039441475041124834968480818148239826149928020435973921456021456320190063476569742266306314894969105865316788491561744036403462899996691153143903192280146778269427697427404655762666747594188368264270188511103863011539962683014709779384920975647916279915727070258474892781764950924451077015658686269951274693060015264230794749384239754651766988535571555511511514062078483926207280410002486048450774884703278006157303354563925843785647825422364467883964412029251084750029231482624749119834458178869293730654482345782062505047739420045134514744191469651387971527499581283735484532394458903386179344313828242112132200774650727300635452350051640633871906760008947744271954352027569076128726775887129067925421203275913145509108734562447589096760964179312397990810529374320142850437411140015124207449924071371199263045463481386490276681773129894138129705011744522673895751140090886320956411961397400709600516916848417426400455637840328984581000183153826969960008736099589962157577666462901491003837674513064482821380884429075576864745038791278390415537298209603674484327333184822017001796465627068034017320903825346725936187488130059869488862915964389911013567663252863060900090209301172702480190309439266948709625108274540878972307278291158218691861616942717871301653575438689070399562390613720134911183494522190012113450719096908982195045613431779676971709758417341819084031982881336996968938793156901423034659991345141423043046100969455046159579324893533870136784709779249356698813526165965272374207890797555963318527342730994412182712401687379735360621906414238954430786139730713855518176506518179351869153468708129347687920590140782464907360982368528753062739093442391712876785702680482581813377354170136802892308976619968854897212375679803857604553381068417912699313260670764464948216717219301504934523147805451529543549846050121997993845816238592854445223475137491858883747951549018884127008827868345184226696960934552587309079439556250952504857713518314127251253276218128379158539754622383707849514712410541786546643493100215496157482265461616214619923862226838797614422904660084357775204939181109769238652872048533319934025492749429785257895476410373409480434270702233334064267753907776798453477414441311968257615304890704992334662615586937610377220625214928317966537668359790902454727900721672582598680140244157291713117760603293715880273556815961652933038446442499239433148461099825463389591924535696370458450480317551386554935890545558280010534728538160677129818064103529720651581316457270543697287360307275634354072203256831723801370150000997082296229970809102457777357351941189324284373367569279615903717703839916137030999159122271941178309101694509857702756651483035736773383638230530494076434361313682886521799426875734409203148788229470001193702905697759234999454380390623157284050669556965736328326647681531696349951526854509934063605411629651237797126301196660355706337067597980506488098909262464606597012545976314832948533695270409522469777369572143138140038447940856705611759833012654011532393321646710649572614708270710109830609685618196372963420888514477821301118394051966613440001133750496950474836322551603199576053552144263527204316109040292571948503728703401740632245798535628570329315046008789558660162491319740781680085216266602773296211066978370442919970150790010794808392708208094209553827961844510203503398285140388795146247588859578688259493314389147745226807391280202766446180157278972835741929004928446155215912004996217445874960620178759589661448464693192814052128294601408830692451505714119484486600698761950014657159136426120773029242190631099383968043191755311227145852582677380215500035868511471430498595842420509560972379289608075654685596705193494339965990858062887651663105187266001151084924361202383899275625416961176468546933550152514111279314286553552287794892116270725429075027569219631434543974377713880872325566297456916952181306203560019894896404169259538679182988268984508762350894024367369069896910845982171292383268508818194738375762566947342978232611381972202068800922986100192227454019740895714127174105883565203400278086550361362933953424031294919175186431112709234052670256744695627914924634156594504877248564248318111925196594239281900748045119721042669917630546761712422221394506588102287429816115203023845518203810247319613647983019361907928689029957412226968396411435986800458522563591745099376571934223109787132337077016473444232250972246538987025838870578786784940499844155526136827760389847192885417454467833827647975417104217601587656226948304599911919186684512939368589330060562542594961165641417145349921438078495421923423403873523407364736721566040929196513538226728646571009166599805803106347285198825238343743487388958643883218454401358727342250441251554388891280926507688858407533078532273947212136488751364344894539648291368309874043057474402819203749401522989389230217586033158966473327566033222561984619410001784618363405806912889545698093916454249581309155797055383787575392514869855815740600930500321845262445132304841991574144104709489411376650157804156037365779228475139185970436306877335640109638733661592500009713916619960931876522295203514492363525609385579945474227234373696187774865644897052373080831631853903904262684759283816608658988524848601580631511856325589891823762526463181739412692664019138917672230731921490611150412705905658428739461065644075078986439310214822471517791098746493016603517054589160997165243724069256244478738314802025194453489387191593845733902644710057267596154698056048206715318727792139088150662814463526268822405831686429145753922226107495457021911265235617401108850612571067644626319901738898700697989244065107973015596111492837541669721787028692657702012139518873959335574151680259301431499078762832247320378756015410361644894849429332393363914031721365328555532599784335605604056195756480757060343642088698286092320022037840529530518298857538967163645661351869526767242622141391252401446548606575283290386647077318149132187073728461611844665372238304181277775795684117956740062614177580886059492076009011366782155869988577662897226220783217983903832837077663417236521541990526436482306937220821158905895795131200539145520953253300308091310899270460892231484296870496732551125799397635609234114619963264038849807810014023331776474411925565103037877587060260391156864354722702089272126313361046798736089453113504102989102971515470269782811182703636764638694689405589736084577131806215849829183266041074034831023401549596773777985218918435649076666330630709597643561671180412343780184246686893595452520249014973303776727271581277721607604107216289353536738920542381495064457924481157201414054214843726624134376393145641507819410517268551377392723402553262737478526199416084042460156308693824709756501980330675319181178023997292472681854275987520537632919728484967322818375988243016425222640479986097876564294333660976000487150941804170606361743500799125506719663656719662184094551251925827460770590613856305078630653268366171951600270547746523347984413324426481687986764371011295460409015637044160116285786625337420347294324460130127424208617134740598240177382814714222673112233941002739392769153677132178453839817185830101991127176896216563059139647377999552574524822277353391525044178538375502532890984193501895265173286156915320169078809842275285147268591756373543309619955362437745208103466260462900084217586672001806524099089695478607940452024478005861056824008729187484779585943321449629272626884263657824924844639424122029482957230864160223282585858245573186410271044467503381143587558343212803346804875871159644361734774358330616623716187653000460200739184386759174691180171115790183358195390265732779430115469293320491320556760442513452093886134793896193162447956377497819856570403077485889409199083074644484972133225948060843636692277062265472644901719945399829043422632763726761622764218273266884286861532975060666778449391922553989445174735575805201227543556047392893521552929123497639747968667443827311373037493384361889322372397789471708778881713521840162290913370430549246290410599122109053313111398585245942507978982374511902711621293968417245245562672488841973615496690076519363403008322915596454563826872526628125018662784362155503826917335303530751085703912827108457625407338087843464441082334546441542704801883408973651653616108532389427006373052635345782170588563794397750247576270652780553056167379331969778981052902012210884969319411711415551233396547912446281260565786677050203689067442454714914711571442954326901036504779639903370907557607523717929113951192212090972186206541981248822105100476546570007562946796891528828521315027280342561432458460609048740198756808018600642856234889772648974131901245396399938551397133178319242482682759573575344487563091972196410271491248128950758225723553208738579588265870740219988669224527822352586898122054513067728102288080888093146899750378941957623327808484412852728637779842349733704868562635637189861641052928560052392922332779900295142940307280519494732419170889084667559099337311739423416154211650317481216491379200624695362388378910005735127636484743147524883661953599550145295949860029621597963041147345113870747520136664744874064107122691217628860141121632981334169381596858399848435896446311701056862365031585825838114406704635354243451550637974211586904327831749884454139077043715416988185252974230213739411811310612523005546633360145136986990167466232149877170762625333143557697942308120741037703979341255982870782464003321573735857433072834861413929578121616492128397879299457938912546624675377576986401979181145326210768573117606933487902187421133791660459272925350686398054178016703422460635709121060209149080953219939977087088611529273432418526600746989576408338079057105703588896734593562915988090452372610803279995689329526507889745686761081771560581484756334512707483930114561998978445323120897258478662221289763690633249225653159247567419233358726012384437291825215686618356943095893294530318924090990144871787194005954736667026087217523907248933898957545581150698057047469617000245714329498522509749249588291051626070647192859412385960841626493741835140604468975111214498756574227711054627774470944656417436270491668719628321066242155576308018902263631650016478376352560376280831622433015331703260233093305646516637937013587326514589061589789148721213480830679801757088338237872403713623763768907195457927579765898794674315181946561361550487397558476741973573289855564730633927204707341856702848347166644143806985216393882720081005366546906579543494100630030220224693589112745715347677223015714537934336032415955915406910946566961855424127504146749674011000272099093535309685286826173630365832487736561063287207265064025387592878011991935364107718702971528190103454182785004816532279279589391744605326994471629779587431833533906727211714640697665339114804097218651344165179007249410699727921090962802141316681962785626683443761736559956261131210035769188585362182952932597964758786977374595174587723797266758508964187016462392539580783971768428230979200706266942097121344629641235644401505594879294905016179695507203694216416427799886763767941004490996560078018679658307371743288616647287350559604314388098305598292041285778221559714651236801018177131994741544804693942698901999446890539605844121268627204967928955304492381323121683525527991975817412436624953622685851141792648024699831221696928398736892111710908008715951030134799982769471302584930749461987349674704268008078870900186175453784165545638540485324061614039169341429758434294505156994817717074079542171073601617664922403435531591303106790920983751548287628557303414100289725016532073261833095762766705157592955253762021259229422718121783340751044529627734958751001527326930526172783625354279410156221682670030394717566776072827150016212757094036954858725913782825254767797983005134416572119173560546424966391504348951958127100246624745924628924795817528779320876467625010411994785745613997844605962140646931604825213912874929412665139675589908865695088249477311682748363768393964592951512304113208638817898932287096250305625254823625184871879930912804884942464121208237330205629236368138249277552809745551314558869429667281704573201081875555833375202784971590045411675469954361522885368615541583388246250808236921390801309953656887185834772137117226610465512728707204052237699882984620983478642790909395619210447396363581001602269266911556072510750814113952785670163113908361904655224307394742371036058654322439548534916253172478561259062020842244458188240246741263751707212629065095545711308817433263361172437826136399584754087689122758945403233681566266838511973399841362270375230298886183719111872481854751477484474060520749594206415893629222408969502819444229356082209869220213104465981195980925566638690021032063038247059401193251067486096710193409281124397705141223350868856199320240951506091456119648141971800060602964948394634754938099488782156487156138666104000402402834941161417026795531187873315193952219548115803796404593156437592656154351829126857907693504834040569488251242853020819372724223655886736576298903128296194511297016484998782201972797101243476484045165406096913866988957244885545837993763602023582275566253908500918131382452488928987610896019214969903078340446441599717657033615306306775620634702507591652125925705467322139010280249847801436193366981004204662416700954201259651761615757349421234277031472062944412230951074541562718669109972780174363515333731598742380752983656605040296242736543829176997067631439482312035835461690547730281206789888306753806758227246530314156824915052433137349022467700032804980075342213225679708126633540286070351370014407282499638679396968710519033204341721582902111981737479225333433371452781541984762298167433449202797028997520261255832735719909354412829727582323830397585500461326879211965472853638953116772673040269924026689039142586717511495085684059013429957794075754509372465118657450532364713402637105794218515240802140464551549694755927292215315186321682274020373700688134180932298227267341384721102189818961038885176833940894544353146074392579293250426670471741395578551079022769402126663352255311397050509699984100472814622999816553542377667644394854645026560206621794711964106940157513937646615708862658616999920534911223566635141120735662348693436528686149173562441684307080796011252833371698906565739285827445370525516070739048182630200823934474891534942242539195882854208144488927432410790104874691515169772469430353292305903069556083675140545172538168358133594502948431353607933502996229725405329492590961915763371694059544340288166523511702310027847746113721585109465191245725897402056928332208072329680519690634986732967635102978649279754422094985157595660143238974150228941624264659984996445560312617998070089983588533301535385065238926618643659502734048555767848966308103625027740885628212818039585783520407960036408421432672439116415221272564214620032385372573811758735197116488642877816865496301844121783329950487746205714970213951549439535444827099264504668677627661253294264439338882363864849792578238438362834488487710046001862791170571292663686568116384492921306516328348428470068393592076139445371675517227529187362076969317334115265911684791808977260702108396225122026911257311557082644962690688713902280262535724909320880105792447504453402501657843963003438828547166892107959115893943988032852647501580946704658480851734297468969194221610213803748324582285530256392710317370858211152405514020803864835536827858605929856764689309718581813574495959785437456561190367092380307607182113129927599633761075605327166667410815250234356816652126976772247021317084476984404425789041053414435772426070306583774819442077633140158844069831697007730165913451335102306621281036347719485520995092673366532842277757138506797788856609164594418141721894246397978720630670256109442536413411503097851262896081544500410553220624493294774475365731365180219137026321062210896719723039453897935261313071831328705577084992494490949836493728984655525205746088002089301895633769139997598503888543132917761292840301251391114482213240189519468656251243924325865532228742654904759005675325520908195254857742772467974297405129181265560145572626802820410278370637579304179903464229554872650987219532024620161061144192523339192029549530022984144812954895848588011165817588193406071422796558534631558882015585576238054085705938599432571054402238725001840853745671953712508474100651658402177481401725845284934294846226118068339424121822609850905313897522630833255242524890471263679077077394985822472546427990605791024993893161753130204338006815734674433836650550716440265197329349386147432002095144923699187221049471862062201531063521371307920242391141218474847705850233422026615368885556926942551439984217067954938747349295182092186238547264440687291788688754360824300618067710818003257570644357807370497592350447851405201376178844390474713407551868125054055800780948939976751107877005727880960815722515619928388176812966668920300351073886164499200298457562627335807401964094365431777000181515987303834157612272775136764733872354842357587455899411649557858779545376414499245599983816182848416410917973675190800193412685637579780568059158356562259369540514944635485145155117590780797877877928629743585541490878411999441375479461417486020051457088738831613966953876182811299339096326902301152967041015637824535817659447967680753815235624940919758610312409748397116646596434028218233568031507870007144848604039470151325947910475098678685284254975713431176549529732891980644370471600675527445534164367560477068186108132774982239936241840541655702036788565860248309388219986998046636492669785788504704689423979758078550758897432248620284525500139043014322938850955959735437869537932852995317996458118694185674412372727569651060200681416281600503680890936414561906857278553672147068015083101672006873774390149525224941909504363112787292677184354848677593467290046109124847935073859885781237142425621517226817884673514498525097190805808773280065963260803015096434001436849499659576424529881549617659426557427118633881676810008031262499959615495102250884207790856885575611153136727963110103635423392244937428986902697107065469711114014393297783791844827024614245228212080499709326091359430700161049657599295075520859292655788397996846585305190871736808416254342871965942181297432123878212289287709993483431745087698715176083084187356514628312229095660792106493606115901019032420435921199035452975219383665643098946866260870887747346091681177644180145287478992803122219066351477566211050568475404662871714010228404720625048821029672815472904785812584395328107210754023003379083147530913625128133754711858010172226600387980497874146192420902784714181443691711305380254060570690399927279075000165774581504348230053959677706649907764352808913257971706884134153492656170562708673656008946678430892681257620159976099669706771682749587595072717568399480856595334008277242730165303358180113190894380131506816471916993904143067219351484575545656716297998528432781877429809001769548325607724245945679885448971576810409896771220396571412345136580097141747297106583743596255138035560101792953950376064629860654668339920609364061149147077390391192124038852827233123994384315751317835846642383190666869631760845811586403753586564397457549439771605223697668056465722908048626125796935190224039995419933490163521858063257366528023194307583360680026591611424718014788133430913576675609594895197724127626843347236488985621356603349731471049893929409500711027653909551355885705445488037997407094763671250431930169316983675541426331217722586390086237711437475717819684624727590064261750379406963964234153852686186333748119831701136076673093986170834585187967822185498788728889804383679090599701056007000823791396109798000284160938033139368598440432307383108839697685201352515572684792403109885110995999539329590436928964710095548833439464932617970639555620076515506384774636852317511084183834717571736397821191116796181063441806278380774317456677992894221190611225664742748597024067662671640899788379138947571156919549452852540191128672349731462949668634515670373057665906195993355572481845060535432340140563244561133054964621534171738465587474057306324441306019122187034492661274909303355333474995447136097960837014761841771319063972843700837388402573033933907749246060758398351479073706627130316668914153838034116894744955403691206247169843539783147097229122613121403593578531323046726663809243697865303348499244113443218444826126995196565118320368330909529897692307163847784630931955346404829058055319637991922180732408198045026048285490449479397509536393377290554728254139300417374876889427946289927716594482482707343225013618709910122907342023505172206230896732105577921535636141447234772940842590022159071354237720973783097419640589244618831979103539422880920815467737816958038525636161576153805947464468275280106266135230042556443999857754339927423442821308608475064901244665595343664170315695378023101036877705734675390524907438623400269415643000626908247705304131759603907305923003518024459906069304442989407626064112089382006012018089651130517272884477923799089624185456943140985190402395382245841038127500282633761053086805873792323735378341510839817140271026870346867127752018992198868385229214363691983070120605771269848199502637064249369088744235515027801656640159241312984981691916015848211924912095859828871417055117039454709621560443335822661377080665621524998081462051491784913594618080714025376064959825581823597755464353585067080751550223608984224328730037841886731327663834010877164231749017971340346517625133078512488617828545224836079777566092968534373288321850136924154343522939993467370425459671280928243192164271887832309117189834187235198360230157474313262354739995843145323446566554385793093890647873704511175231177555399491726875877209103306624722325766159977332650089194277826067771542143608372157255297794141143987360002245085520589356108933285517997584915946471922982010125086975585265243284063753753266019390884473697508596249525132084133124000705005358220918332169947328765342845313524906396773086395980406050071280513819578836873619255457615269519340902054184883510066261879726272254197965488926364287353706123214359728615117048357802953498166516566885398181691931907234042959546967612162365454073262489281194280461465582755470551440183013816485375248129964066619477665395929648185429856313356094084454368009970707343598929571634111817752099846302834511449696505157745262196387846309372255913384609583502082006219691839104162072916353117559964896480193155241330850684357428094193135439764016205986769141569958155386961079071174766864682019748211644471373504292536650113926875974695259025769817386032904482962642676946396951366764271074277802472811063298996200336417982992132408820096237120596232832082414181663210911210607133206896227253050951416162774662773693531688227959027959455090096985814832725577152773825305142074370242865733485937600804212065942408775945904012112378200405271370047301810855007167231718392428392836242047468751600503376500732734112498663063438029702033423804932620457498092055965742044414953356226929319366379762004603966566170652991181650592632037508644754023844504334687930978969753663336151585466277594311623831531027306388722398135880717445068597835700186367299527740056036077372484476047056659938789755227742125818607751873046614728067103997357553552691607615897193407250398358161043119611962460955720094569484057452848104734392206349576584716957059480101629606249619852514792826434069029359595164452411167332712220109292499501537114569650840153556653639220506501249978268851092149483392971419398974256817766204224922794514664872986183076082785802985438020155709087523019366420384689844775190118906453015853453147300146322823044982708283805511564802360067787466058527553657465823499495873307992654493303943910021584146217656627143738131097841117928303414637125269837278717115252877764978010444603288713365077158590200329491051073478969869601176921141447520870164227935945785073647047807441204891010664516797150463209950244535602243407887057422357867251720866117289516111384477938802243572708511007668688664191064175719265127259122364386854156234114132653205281225456372262582904092278895614231799037628490984489075480692631995724253891047582583197847501075045861699667989398820659892036817576846021757871192290777570887562454581150459310576495720062622983541914441048896213920009131330839075118544714554822746584132817106301567339885508298022551488812644597894538084129318438061039263354264647414641727498725784087492985190274674797418042526467164901037902586531633338413773024557654380398201281675706765445085616711159230810920406092423227834396490872971524799630072956304176359363441980006254251334962317957908014977047642040079480907850453816651596427887409507655112944857766349541401843179942944642942605165463973525863890506694266340028718836396304977411427105484906937814592039755511187811097734965127907137002644710632455557423504439778039434675207810761092371030622006630675883682810319244237811304343999657231886285350550796420664946434235331450918342263006597876149396595406135254085775325001404348668756231260487361579373747252970044961493434623449771498579223189241349592498389487786756155489049951404197051497626973935718123052385503683925541032197890027452030623890915633844179434922996033239689660040810528158024808412982489057024018816529516574088872920574958008260693785282557416703704997924208491106082173083709431275420442430032958862713606293639560705641737817226183055958641192541383934542152715464317739784511548522965165951182575234661105753809725875886796605159223154694860408875060496152237148290070865701241928402102833022782275713513687240721767538698164965902788171924875418608041677290192731038780200872783919972931809968891522256454627920823466815800636059963019139264730618773880774167423970930262418950173530319901614601273687782949883611346176139133360962371007419722026076130042269971813975926246514653826721057483933060617103025187398360344223982762955823341592416162794090215687080386940113649465265353560687530547002909217503756164847623911558960063125238790087658419486221179252554420658709624204718333699975255105466477544750036205069803188693369904680490329284881811925270052067849582883320638457524220370802209699744677708794658687515323128002454998803688482295911343042758616428442539703482745616287270281208757399290917997858365905720851793163575478727272491582536230358421707154442871830933240613375226387863623021029417573157481429819661198857316673422051785920601024588848060382568232771192202454778909455658203381475564397540031775002717958935925743791826685374099648811234540590904078518855291377918459820638145221641179396461583369349208739008561605870642106066091375621041998060142499588344117445677211150434933674457543948634282595103517813882725118919667307552626554043337310789842164930071118069942964497966238316105067427766547623921542788486330647866383820980121883517261425543836519356958269204920877335068733287334527448155381117020545351954059100163159585302816524397782107875560157838018442512868188368816766341430741533970554253918246575165912089039148435280047656697087769189276025851009110750470269037669727507713921072369121929996121995215795859205580441936812191390591684475990561833411764920520955009000548570985693603772339302332622968717386741939643536118452767686160183314565589264375231639995105425059515058920836215202815979361557228885170273063572764955666495492507856474981208474845804617201687615600193808413509029143083204230832702310699861595339285568992042662079152335922236687324368851807041624247997254578393161253365931125047451631844063087390255511869790256695569951072150703627752583110026992503606417311997611691282074332161561897745774309672987221615073399946372632583154859521421550199556377709475089914884991288123340249064950855197427709472835667804084107566925698113692487659997988890277292035461406251092359118583680301801040845850675447390849538187331135263551163671195404504184211296295680998326465537889215936712500019837910807529667586993107829168280909456721954256311051769337859704441481224518424157892270643915508315389336224376661841808165452565934523637235456534285369815683797720527221942717388983681192880141084122330417278045382849064294849001502336320324582755720712943516443633491351802945983089866443144832659938349309296771111013234677144677493572242154541686929853711207902737918065060309106345601000993895544587145804025693334963845562549513137905146187895344464542402300532125375281777323430992433811745596785730725724565980033268297017761648233186592785804456262901479941043118222144689512657013243475624027124033582667689937059793068525942961435582895776929937688811113692714590504975877935966499979587328286107291757429864741033513374818144260813556703914230470873973320799374501141519705205075210583691047114397556721901741379422673082746331018102610043991003819140791537702191355576541699978886199849412573242039510018150530147676182482362452306725939635052273772112559724087516830722210118797920410775440194765666924185797212195425488151621561087840873534762702716867126869292304880828752457960782332416083906874577997419145870169129412833230731096216216234906283187119110737330683949907602801163872229327032016974014339310418765647317115717982290443544628998425834296840284568225036097922700494916395234902319448156941841826960197028191162138108323863252456271381400156751463914191954294203838782261004782033938273600595492518751788210769288326472224857512514678955181377025816000408831724379992343763615109541236791501314339369504445729979311805500576721887966795173161253311659813862428514516936048714828907109634292819805163362474063341680177090109405175666287724558386477357286419833518430257266982155680147992520310091515278649585674858783415763539681550645026490643034421839010540140947783122767230500915093671880426799116415480611454579446123173409502544752217840169159239717324954769816034913298514234974383067036779079878912901907629951163666192950331515586901322865941417779656910549336436691809376578825799059818178071686126535699701161005931259698111233368276905609321762344591327136564366345987613587676740732540126994761090983716862624881330028539035298057850035429242330665689195469165365390703032303448628509373784947238171375921608578095828663427185898205994217096828180796068202170893662915199917538265225742611461746516815576640683439825870577353589868120900327454382001865317346561964772959232821772929177473337530555128861057927476317107511588026482859710025800068875076578063061227879879239396048211820344595155425925884085722836119006348241520049199060451637656807938908582314363965832561012266645302205582055811380059230273664435380927131265251763051503619329003063029856475594147171103799127256704196559439868624997697030941306540082882050267243639156154616770661685615276268600639388830011476763913380650895853401981786011010587884780252877502071186556357969452913576367167490656203611283427424910229089429750724823086166878286570166243955167776275697251062079591283854827440456312275126290430821775507856486940231070296909423174721512021618190716960081614225357691947315097824850372824550033214546925086054100441725762203769028849813962904654593046439785385859660183854218101285423956994305321167843150813180145503817092855003791231847010120630049067179600167170592064507832239898761094362663846055972899378254972844516435329042263540722842621493582757018823825730578397429571762034708548796969023712643311371723149837474942174609129602567812747808611563037481889547168204786127703641328973478577118674063556073211396367256003773287639653541902302055129175514824436172151439520465432388872655938690752079731967052298943293172597337093552454046228285796413002566992487399935823484674410545396329401372952236430225138440813115661775311240079383202981399896469192277391661839991947396296663158721974378305794055662196627044790647780494476298707027442524979111581824251852645168927609193579311765139417541111170808928965529731021666366195312550850735962303838813083842960087138628895564570358409500695553165570952865646514824466294791931374013046517646171165122260826607338563242020482106413941245342478726553593524308902523824539208091983970827884462280539284507804733850412443704865767618781130591094390200662332350235992895004268221978984038183026635472526615257462865649933531472980548201431608695430936511883528159956741047151078407564423105116408839923147080794888966869474403678202283455720820832518852562386807864660652396678797513322726767298050124351295318644249204363882682702972878104000535303842028082995550670727813877694538498539411163592080247803579447481999121761492721151364053931952536410587138843132111254259378711265325341511240497062365603880842919101212475868862303385718895184715220528672110644702619187291047696788721983573188684712810095921691678667893824891552031877992576307481797744221064506286067000522934482236343084718305767239357539770858882381120748989446772834803984810173152317402788584698263487861215902734810225004620459266986085794803522462848798013929982592070568033068535067745011627591906892793956874851193553870000941891907989478517665981581627113718099522310261088815041524659935142415901228357469680238489659842817073020233804445244684556879383930197559006337655770151316555381499837304282708429556302481456051951556095444847324250623243002951404996239745137210539413985195599813739477331352845264433561544651168187139224396936991010185041668109096868609997603924470649562373992231081079840648900245575092995342615718940247063140166780091186531410610763230512619711838378713646855077437925687928218318898724539912562489291848679548488064606805234094234422905557259293687420616953485245048148722650748146734888879842059396797786949357922850102337314791520824253529429762195673454736384467720492210997849788874803283835371742414193787777704245001656505104668860049672608574650944255408575372461629652087508746887715822299987582541557616303391239062895989452056789675014651743637275220875713096883118992152115036146080507825088649313510692543131628173037652648854247288961783679041686866668348682317832159462222601202777831286655217516874154645055081708892216347032961050551938039088647169920423453427243455503818207355744086898303745811961658537259501755843668734973227239442993766418716984403906850173089844681078464557290292243154278033197520409077405119266173572423114083839423205964974136592201940921304084379339242496372017009050491318152078187320499299083158124835441849395466936288823281774182616771304146877417898205645107708859177376675777030038975185318376572646726087071312571943428882396889268139109597903814675500844257782555052824498662699884287584547681171757570610223178356412260189012874500482433463235471006292433887341716948541135534945941619292977837150025271155670394700002861551965351823871227232503413460326174992135845650404365017298634626959690738101911268723972349069618311258890140003509302893572389551378324996238051753093702273936967572717662700513097973651376108687702829389196892411357220779968604174081072332781090707892625826646375024633242654686889004760874951582254105205838638327548316314710357360530108811057273187708396522509818185854066176698762752870026775843453298154356292216699838159581793398776906059958331871551986088457131825530309091929421222151227748387802486254821634990281856620061971135918102585228440788807069108415883991846889510176447143737457832157744070481324025654591024701181188920312445684116826688900863504090427673649553329465032037918047570100977569703091573950450266896070826556008347437764763406808326795233657808297878144909274639002209501958977480230305907224141465087503822952938606868395825239544476973349940762608007277910217232985616400916300674639927668301427410862625937768168745880396249717312529759401311442206949282061941385623615051698973568188813787896326254377363666969353742151236810417241642736539882599879105965632328813272200604157029995687388882536390081284615179486094415520141443964871796940867516582533377679258678593887205242498379206528213171457622387384948922097360311329612320694587988429938880097361878990769478742034436928443451205690371764708637545403635170645642450660578057683233938046378506281674247683218333548549676805666325326919301416778092696923172769198490724192024363310857448935386307582656109614314683911001856860652218721479833081115877986423907070419365159475488887231300584098709971602123059809909193908327428571738459931682247956253683907986451410677208274569325879784614092647177028353032922009505807437446545624731562317866314526384319836175821678609602857805627641167467336278205534547802389230284923746804942369969928298167290923492802404518315180520719682325302123125768613939914021638704623361523433359946153646954389751100242676485981060035965364278110457567828040121394134689004515241668844415552195441430370918852999692127560089307123192397109573342985280029145023098488582441991344649591549411754273158832382609141212919978620610044034628158605405126608627905711572900524917098377116865610849071680079986346025694325600954907173106079595160032300298804011331656603807044996035672618472230844161292560183434509342516275187837828164016285626256276707017959648284513422898780203071347097552684472184510645206979522524827424879212406791310452223860887177515482648832741049358662274938229845615016957677872907566548790770906114768801830360861372756232121764786694832267980694984403483916034042132167392088025301382704725682541640232562262349512533741376931250272367206195021715535478293727193218380955885090727471396875399094123129851974842799815518539007059217575212014926635786336212438287685778186991263118101293700349826723038806171701676851870416034722854333054435729252386427507292139737522507735840342210646538508785709400314158163025467250882973752700814978371035185395031817672365242766615787259156262755953422496580898663166612947592045633504548771446306463029588667464652471764306096818423674451755808816715404038683766674068244272951515767971951285982877138819133001354687764543055811606177897140041373913957279312919491349592475993772232585706114296288816607844272447622621593408348448830401725226335964571967186653494688984966684787663678613030784133394343086512844395970759005181041831530859850645326115668524276926744089974564452891566800310789967663507059116395718547186804134812110982791556151509872434533183642324180771402713322536702240819399351040887718049507519610767468962656607845533084149268392837565419721548770377612214023392096767304978550280191904379765808447636505979559422254467704442445114337300044496090539622621790538863129195062498033680213888216236300985999708288190045080735256019563715548823544467265295004069690013830427986243255485432390304558177445164926951525691096384301690875260645120289684600934855385283676044206099909188694917146285491707171291218922132007486778831889154263131569624272039468952034290310171564046761768157157493500820229381446275476967743057973787283825628631707527252753614980469851656360569495233554622457848895623913188935209334423479012682177209646750593831136301184920379630017729065758203369125710484220284156989615672904027275077473888881647652651382308926996951698848411401440787141121489166229177435039287678961176260225491322313520178220781416765163646012174239972933166430771330944568737807349748698375843525390082501313763117839223818173736427479674133681884846321918741000091475164547068294413180863316979476989386325274686335318210874234964391519603175953827748339287598244395799141834904264134252395324587739914590648522179841534642386895178084254520196491675966057624212037840781618514512232705887374944746413253235266590868605541732864423830683186565658295265752764299505409904182818870467125305864725376951018142026354715884642332478188245738912973145019787640562254578038493747428967083169173199178051588516505598584448608800532668162151952482112480164922999652570729590786874044958189539719366263539671078853381619016803040379610842461186878534465227570619678306513976823936286182136373266267284273126394231123900324106133676262119845483552532607859282171323304922456039452310112796333228926399768594598164418462542133240306674373476085100139177814186499193758942727973384957707254939179621765658066838400622359872837167165119027514809716040569988043250348252639282415895810170587023946659531115649420761293550877083045813269541170358408006857067296500076324814984614556546515639383489830986695759367436502740483940391141555569838005540813422935760819659622837798250999813806781937655718367372104099461760557146078944708576572687333603891995183969347285233365396702188854171855157272140351111684517589039329908502135470506293935802968487265363214592500913838122206216165133220556437774945666138587181907208446700954296563396539366787047824809874673758942076201865132177518002545238188038372416941134869356452253671878025579609560603549529594510159450582237881837047751397584586677309530883388889724181885181964062039563243051479971080238527256493238448978390365930714783111574431962254481342892556788226819406739380405748014668867120414898064777847726713973200907173432482530688725075349879101974713820580929683443928984827365666357692883619262219509434162778131074474955359176477104451542819674138852010205317130229828771104608758149870337037663424417802608176248390238054345616151429771815528214435584778217868564672819695270122469962686345852655255760633347978432126183010367695415408723258326916428285368212975191749118684093110367851018122002691474826832013613869349971512426631003036863577246273086612292658277069394526638783610928882870641473927198503970672996138630110252212162699183302007659460021465238639965297364144595167111842206102849057612717474826986174800741778605164591163788037255115446567038272084913042784660426808727454789756488110575436335654290796320289662454346722136578716300454853648790095247039577377243646905390095157811625931666201218113576398469300197492160558661613762761758430407047044693916803476163613905844067613823715000669552900571977255474579090014279959582533326864042953787052329259328534353455622315839508663390880961349185842296726924512138124077727666238600591112956019572957915738177889700119934935530061584013330899581023065826233211460044696254526452601045664486278195716521133421787002680483215473154236602709069667611546149718043097648496717931039761008837907462822638642459886344578822403270734627368177909924326948831376058029364265651853071595322525671718523293812289633435976653511170335950963739274849586092174668105327012365513856731256069364069752956147300159848801988224103824718735651896754048189355701758579307794931815454166531887786807873878740276862267140879720369427243317378075011606545081774765486689044147284636203842107720384721489747509235844340261793447938715309009951589401505719676659035937689213991847920688278596918993227485279532346172533264795594925770716121260465051629392287752372234610390112381206201308469245854019575575236351570017705811497381838992952171426176180626215583220240726555947594531141554953518236277796914438808879638045451433345812497428794581433269836422018382174226231526558640569286505505639029075323200656090296171947855464644407453004996904328205479668242501902013875298195792274003062260168308889252515548199667250488552446126063916914205687986719252623399815097555445854111276711693462284844443897867594223353810199961787052399478350678169027418951737239446778752941844925348689173171786787054785196865740569645024615710527545183991470794516479679539719614929134893481979919843734118042964580331673638464704551678126687725217364772246237375714783092106565874347106466898812606736992807295260218423523570305707920759056423817952171298561934762764618197351573609859806790510642875185581575571322159035751876422340891312830927469176500479068210619785666066457171161310408456987477059109445596211752421228178760335279157126211656481785459754164730502929767977679162660346154741288974897058752047541769569575356630489061693006836131004859546052129021809963648956942021320363659429037079722188441200344857949325951961885137344220999069851173660323361435597021614554698811969010922387389877728922558295140223766658383832369934493303391251823993672495321575462731373319141762532623864466328868232097011543313200779955498806479624007567707888323442191967384027576580691841401017836549957708625940343719162841049518346739900159182139336025322312609014663063862888118607630740205888669149696851669734165328315753667164384952430940154484088126649794635781684149421662943747728814535477122008005093044336202706135886506108180317836001912869009557126770149028692928414405789758756077768339833542455514955214963865208270449523921494652603870578946021310293834251422168070261519506204064090858363442832892371641089430571768674706058635241411857234595913673035190081457172199591197518188799998294791444780376999780558471748816133227174586945651623419365883187915790837168466528512221820795687111055628579111685195568716960993198032641603758471262987292116086662034134529539357706607134165444537166221502393120443336273181720307323924812035419956313830975683037486023808349003086803803988969789890480043530186361562187608137668414622231998642675112637576100032438309876557405862326469459849604252376375648791455993919360790665014590005913801758332469101925410716086826076426339968016448378377207038466210640338423971875560563042663457458835976071343651234612231472897469431384821231447875144906802678160585207715667129461182359730487954438018462802615626704040111283058497522243811901222652821218668484739290083539148361610873573677118822414613050594432741392400983136100595727895184740116024770622465210373200620130248755341048680378560656575555544534300014758558195189959608661535426300038456906809373258803614330283441315957604432338105083950391279373486114547961172533408645511867946477315965064331671715358314955814940002756630584821200237587086043446329052432725793969228353218533231142368997790398282201356024317704346328528650274433924842706776394442222934128707240324378213641583028966972235746894759888861649348946406124763317937367164088145765367805746417238687163124983384402137788123157098376351738196358839584107555852073013157251400100074457755292543701483164241314283289591391716976761864320899928693616826574463404671472889756730646815077129069726529371659115105316480436022045237907555111243056828073143794395622390614134468388692753814251745208461198580992436676449233502504354005733378932419279202127728057195451925040785360906689648028059199946135242377939989961362279219974605674796987574803487257531720117777106163121877701173515725556355697043218207655842654585936181358403192349390392745692769226510105168632975919570850089821025377506301857838884372723086243438470442381234883548477565428548930871046297629376138719380624625917580742755798108492240799902309642685841419992630001192704008971361101349343933249760849134265996918423574218814228194147589481383776466191185092233255245938780075659319742778708790341079374364558148543680524007018058802247725754685882891221328316252670606959942444379496860681811281242918430356208804423040859476272157587776095171160634839998610778911139220035300775505186266839713665342625894566788658360897921907137143865697050702655487668923272888499421149867514812156878973448724318953451474742437838798447243543496472455106975585750052370995904649190545042302487134841487047737511735653143712489968832721418507099717859349323313469275806518464693902595576062201024137608795687916963975076389041127685359640760871498330299600847289036282771959145152389038293140186946821319251776687892225992735352434567201680756788628387306877474690509476569883267258935474694866591473051149769135985733268420148287940623288616591370627528858231911495392764113382714129590560859219213480723474452502273253412678124833238167484616405190089298321579993245182105043315863700224508835598752647050301510182064281339421565150490977628062066485048235890440460696386377100138636919360075041632705099254920283605255137663065471095766603023658038939299689937105375180577530947531700288322562471873026226649665294082072708621584037641523098464423205526100813964126570618367445926604696330966130012744430835257520673180893878648165659400190817067709687539526995742202486076641683679476781443677476622013071694528829693217671407018119453199876237471499288093407148327318915104850182464266200195800801426663824984814859235430179968184546987398785682782012128133379373066139012005127336815250614105375624548673664307143575815285232497773976898990352727017483428581532475041201550913515689048175317426831719378487321377221563067964478765378951195228620503796641847853568038826044506380294704574644030388945860799577112576880405337389460424595581830412670704556614354758990439915854684767760642003587349538368593706632814730663471904713894316404701026941079887348638111147949928749698899141559801112245849112102458118308350895060140105186704015382004108406322246510452537154755988748730551513116236843040412947608668129687352495667917300348039604341497627982272312520026007063841847213965634604298888354883637518713836915549367000682721898072184203520196354942008743880209067257663420812074537589422067994462099047677166449662924704955566965279155009171438416577545854710872565881131902797680191750842401207233293328296359441028403694962624078354110812979755592187846981698647063162834576286236829456589696799009288561641540915438526822697713392570910034489514166112035380306189083673397806022754314166192569748367431815510291916772012414540881560158430172925688840182817202446585450633500187697380842639312467776223613705811155361434014675232735338350170581437454479757584626617052668534448052847830290885080610719215922807706064612847786597974850024958035677695526705337735882108592189996652393691529863333035081559974382146290202262026946349933809515791451945776526478389447738256114194097195159325185454085806019821709704176966157462681943760398515410305672933036069852299694190340000399631021123278385322513891050598133809695915001282256926763305831492043730415810222672740389116526284828711266940569237631908084853763541871465680512824533011978737712234471142146885775752002006462997598277876080655230710029912512707242838383339886754500116529325533244710139360593890498264497461348471836970846823841685802979383901275454330929668328311487524611049071805012295862255594381415620466736162967073601742416466566588704287137391575205780515046384196461493960023857086488817644017666352789166877210084298698902452168484336044600833479065592088025339113808244717980500260878571581478994634837034147731770325750812225516457036014191963054338631197906291265538872593091901631556042797259330127107681858589169303354170450802571256351062025512369279097560174519891645546533838957440867169835799235446800486584702598226447582052507236001165629731951321172476472516111140415985620940564800354776927953244562003648929800022596983963510340705069118661601742502645680757699240962541914297181370422157007635108372559935710489345186025693752828180314278268799660532049312384878006828347006621623470838042780766246630515267912945738271020206737029053032082017526357208334297046935761462232206543938292997094977377780795995950687058605879735166138547467383686781637933433100542385610702370294524557080236440917188539801606303955288525820648691810040776260672085693050647937673404494784392669924138164703651037887741307175516024165082988214593960324958421941315288663924209045440140044403188894547736912208762947290459128091363196727692000451898063684509621558640507689061215374269007803255108545512579782202159251396754827679250932253831740059805430685982091288203057408145350733582444362805146926910965686202240492401047581140675812802866025203406352339774856033748865378301737207926440936306186364000612545219860821624361946456808455898428331751945365626612633028456008904722890855495233106298452214178794358544121850879631011275184120806537940624231868916999187044460905444929105966050450334236003060243674832997846843582164878168760164207433652295869995146195398067894402129083953673928663653450317527532809444040292157536455732662270399979844767179373822228624137994730093153481068230195202884222328627342307287885493247401069797980167986708556298624651283094200857956384104381508421774036980985231532591883117363641198533080298641917534527148693335452363549860870660691324467899923276841626372868109849386478684325058063534185581878931417287668999976562056236092966637743283959455952330224757108792086146765963757291856880388922140862112741337871575606931650543544832167255380863124624952431881497005960966895666176197938561907162868870619200205319313619887447491178708108982863281542392065452195135277683498077357950248878326653084026161807471384078926279803558750450414994687267746478737088004571298162428913268454298833684781874200392126531915256960431905364625998880812298855298115598723323974545365901014489661505422298047678683586789501812939878672263458813435473348580135630546477881366244240980476048735416310699106454626413759722071044024659686439309391595128963497965961357138240391762008810091409078736467658129433089107434257631146090547178089969120682474650200613515980338357118010712166335221962720284680979884045916448432382268249885851327545208316720742880264923692270860296143712143432680871268759003376187761777084000823542190404570083654901215284341846343338118922252313046435960604455161695911459415699814074514421995087874861013240137037596778602688481027064348144935823145532984093103136097760453915367828954962164170381503166023035997804981058168148243145086345250643756826442604424679799506997633591554520819903096473288163930006719996649945503734958473764733691759942719397748718883074440572063896370082083288247916633764393188739985582532111865280662791506998570342499142557356638994261495799276793281306456076740430198838936703068395233386041981470818722981520972411984867205457753174631783778253538925411888126271327227280337805903434170586048670616292907237617396609736462622419973827888035083902134637737563651244060420875679167811772158833563628021772490725420633107033120562782691850939830317768726659768733934067034063803063989788245922400101790371211265135200616711038936690837712350462484943986423122074089410919288486686841836507822880975542796524108105159103818191473678580581187357871099119259769199013164282685391693932024722440118711247920134048620876119552834817717390801439358657216642296744147111201370021956978238446890849997625796377932831031452473878834594583266099051343647136379377294045315613755572978327489708655245202209555058430459188669921992383086813657313926519544022248269882758166480902463342089912470894839342351151318824350763265451736380485820625961577903472855021725222964846076071034720345124108583587770307986411823798503703511373459502486459882396865952341831110262695197477344098673860535821275722890605769291943222478417989243713921720510696082139143000694361695564216387868196071522933733554671376582329668813451249462990523269275557232468449521120893561360768034714921715724886693882856611220105088794851074617128520652756468497827436449752043786063171114920812401841952122880281575631103981401351586458839275135310909155279298946592828787338018875413385822119374493002345359017274066478649081860544818277492680529412460068209052770546158799202356112904979523307229032374518693289155475804719815004201084791605273413218660000293740802451411983928712471331319620835018038764119043120294510025800584990830984227864993841919390251647259670652709726654441683116159842338651128901440391531220888879537506579091272609853084405499272753156103398305796801392669065914626728786182328509922941959725697315987152695601122371444459288800443851910715557189773251230584552765046533812349908442643716902969509182091361623281723556922334193794591978403147114553704922988935335390898927816871397139290983962021149238523514223149267080663086272778067090054245876237123846664840064926537636320747130894667440633963575798744296335278578513675982771029287345815939196926209621633921962032430327834764291258828403711228642527577550479645913223464159745944889595252510409980636675314503867692166033896617726002875350692003410782541531817661434419805311741778577068550757714516518363126203612723576292793596412571391071786267091184980056296365531992682490982698348571776535438305600800381434530648818857768483966230210254725476374390930286240771671951644207010603860740557995045166403722673908837672844812771688871757871802511637468880933466593085399419815346884649896502717101164029002767263762635329046204328288093215931480214048099716333705125345331854098123800685157441769874910584045550689725712635439505946591177720937887406497385707929266488833904570979841777056640606133822885801226732264472234810319575357260385693023755751981074679973230515985631296718381633785534219813572740381209703450971870941271843845528068933735635626712828762050054251835941265342288729021564695210804682406126686005896968732096472793971098680523679357666910510438336070089295329313124559504754347277422493387334425048630368040849299506525639597807546100087837511384281370549680329014824354596900709441728499803538974338230614721614925877627513578286105745716687006084888975756210966212424048649476238447202514045671980513130351593442335107186059778524451290390040259158361472062766843830035336523498236386152093264345964785719039076903653542151392179366413109133019603617957222934902497199889110961053272000211470702419726556328491064226470738585163717298715238124645160376623602400871350332619279551332003332350491540710845657106304549617847738822477861741906165311574140205531717764504242206295634282640454114678933103530039770347945275364032023240490247861529161357176921809169399438705959659225111364198574797287746707305913510174014988151452020349342680505765209072651317038440214056194003533281969570382061416307147586334344211811770049370424819476479704976463772737803385702231744480580125312724892574833456557986674977384780806819741708779336053925439017202885602385309789203382519809929670851947546468878936618207958439611210674292179213771933195974696778867311598819871520500970532599975289828260072058058010306100688200199670779260851503806052141088390366965358834435316680211346812129455108531316112763286838755634809357329391740657115322303324512463549728747717668714527451793828289988147651702197395200087466764269099922440294830782840218945168264101094844976540972640963039043064186537450531129892721922087880692239282426323933202329290508168875436626333709616154773047642840005119734000616928328841338538398506954786903981931701460610214318024289586526782522267709283150670874166348842724583558656308458117183793889633877054057279366480946301717783944395683848410903517866379122417849688982248289614051322703166379627486687491087788993446319997618310995922290112347474089560416883133758706034413040309255182858456458486164968445720522065387290098462051447233788222084546876425282008590526014243209288941176330353319252252790714820483453093051670164479045869085794393262606558384836048699026664539551531565761218119805105074177039345311570735011188491769039054240423445163111538830516197555419310515202831339658183172966732721453606560289016427583964995025333412684415944894988192058659095054844630391154812027332329777087944291069518449734838458082064486979691043411422757969207900758413255270907156793136298071571430382560873169293397532365365044955305217194507031913245909986770951931431545141180156561699379581297420718132369406595893223512002946920612162264619149909227067179923718485172807460382154616733628842231901751354840132274537149566681810539241159287181899081007295112130601779093750178247159087897099712954093726949181597021344317393614361836557614930177776583869749169526212868485892386224898130862498386469109091031767410701378257951638299895409414435134351895420489124273748800179988262207080853122870100957574263917662811980798732213218626369941022961523175319357490160837346968462681571542675385403122564466492896628586694449567034860372985318885705074870322937658437154420311472525305123234114144606170144185502610913762906504278528813866154504229671275309938723938374456822621081115595474572488266440980612780779456700476657874255424674315611800862792050046744928529748818440104233216778797568956920807921561465813085330614414018663610868129570378026936538004092725478987658547114126727617589492833257678646829241347014806253274291367108092289558435235043321766834337926732830748982556801008819088712011853228110358813415015900577679023617920180859330770112596357122389919720004259664052282073206591171729280688265347674834202554199363779787082236365330720550899792862959226847371381086109523178583567535600588197013140385349794979521943595767922650877931173397613253791689181022961013335800273801712419844156712627292416058202550276221686116827964725821471145417499117686406059842279344266583090642684069069503395752708485532897536089437485426227649892568963624612890828319038971022106955853386718344525588237242996199226029125580418572102667554132152985460729676897390005712244519828675947986927284203661408765744294022669880624188952012677579119927410502743602259592477333635275447058241900260411756427572173911573509669519049711982856167067923157854440285416416496483414575986395823155357124635745424996950518872618171425158143916085441333375597903501474469099341462056640166343058231085069997680677522697607947852787170264400727585740744796891779208378535492383886213327815022867280219983008725071198436925584169660065103589537193778098413287999928044067167112122518785865824105120370697122179828186242969152760212485918204466551320241437324963303461851974269952829447908882077356609901630414513910928594742479257478326905717961318625685243326598737498253637297320469958167879659324878754805752857737505726686152265880225250335181267300322250376362665029491045489100409007430742045050824655523096385262071123580266591613811633192412524781989624413077065656194229550051467517953487078970725784769979122386653426286398542639130934833180713408757747313544455334421064719838945811130742107086808525838291144968806229148553934178340199572680230861233429889702415966879068802057260470819492371149579897052206471967415083092731359240073881894952602028521234952521179675828498994236085265842080219901815997942515927571019634276803036679300109999224695486483143240806202977546251063940609587140199065230144387397531605225412898489890331159177704690616916120988043736067984993259292661208075534393274478308189394448204118954095874476945160500178543435109040992097624819547580658818964930766216248348781345333777050812475772818835187572606669566933864314202803565989422978512490153870696213568198608337148404494729337984499463159356206166233138272458238348430196837357464495474152491983078719527926791730966643673798312264584054555312036436930123888181765922666545224365820778388337278475171101792484404001227371109413273379331974228204671747168535037862427749056372522394368281672929681520444810815961950936817537034386715753757217363768409474638449581419153280375701946014673451693552453995314228195238682021457407398026092108141634482564019536885110547984776609205243932897730793918994275845107630022127036857258332915258239170246407046239230532706306070122049733209490957339229998630365275512661826894123449879988811937853968773495191725150646365066591426022850981906212572887003634913776086644638780963500064906720811775428895447062471282638185420010846278402051061511945130113925089591066865408656953692686019019126169823762967324948173955265055393964957668723427167793540041817988782510371784914417718054162572240975277856960467423515662981768321319000122956003319832602726553777086756785245982167233466672698719504393325618879203786423411978337073068839278481061883433670387341467452295039042728264523037678181003129765006037059528663506166132900782491689349910104051686369916618067313050644185881870193730027455589047202543028368062864569700953371943925298947822355913410479308476597109960111237526016032298634332607944606734344746951627572947232584975939997645226044283711419823255900284182785311908524651799672691832670808854798809553409326947717649682144878038505322979666256798301589341043067030557153232434706109698765892056020421779243232684907899904698884678102099662951448682804072317619732078897279538620192592592989214605290264750318868143277392042434242202424570675530757006922557617458315358735163406365629357483945766594358853912650777637495506024731417423166150463401007230495095090567261157937753284411073532636541918994631132969358727348081474274588501569895228997373739548116457654308939563245704578485326521891279982544585301306514113663063358486961037841932544231482374097451330559784161240486824750120188963543505007932252082041981976763156497833986314256055876476628322500344099648125377924721942324160464963348831819302353696991080320534289494947400406615760655719489762087262827973866331452217950331284296797533712615952755687139949806276947138879606336614393816784402029443415418246605813696368285442711191359850900732686112101179248055843905520930978114906252579423565732728096525018189311805632501413652442037556647526158277749008360028642863096590626418105217905735753826120235890178019623156767549413349982107210778176026288206510029879452756334762754735494501792678401987257197823035275674895495503674441207648196568902896325252282836455219877144478024930514250845211460473041983981824210867005472446172059256858565705338387178240905889459221818332573060495238978810348539791302613964294373464871237179360136943758908731093954305331718341378128232864882262133011352721839560705937448609856660081140708106109416460600665559155790819230450757048559394105979619853881906347338670475401290562876818166679011865637324822692859949047321479049723580504153055309786869500465012810275246095606620674515438259203986966068139191973786587589253960459674936469398521787874291899566611017702370910929958993497344835941780551123504247302219726404454753751932592021405721619905607797961758848794060270968852691293888437508982105490692522456886175723118729439879152756038708814415502081357628311519106623953776567248016670733291512935163560680232774551429467252114107707098895200434110821108088505807292657000943857435977144386972380237642174159078260623800882518435219238216292048946288618293923187270364336472371425343560152035368544403463412823423853517716582793920300941438677861027839998100551278994310514019619373949350927480179221795845579217782181747521530461442095698345959754906407463080606715869054709891166331324463168802785203612229931738031874258433292727402755693800097063865180693807931219539771529296770655856603039070833277219091644661019776502825389548557578322680884395729047600662981346653051141533641594966824669914145909497334957061685070915732434603524538932675527947721557539364893560991340298757879016332466799448200687233661262611927158947118954105094813567873081645488415235049290212253959375487147382689832652220767136570458361327415731036759868993906216164625997105143590485869932099692526357583663957899024894522483684171441618526559070033151054421837864768073916921261447392614265596437137363617162340425613853265534494230135907152465549313471832155973191104373305188572596622608702126533706981500598509279707474234879452658534218179106602059753267713189957045685785488904022243992762530906727101792182470911601799789538814080302896592220270084191034330115285774607594092132163291125301883447162471667180946993858609028967895536812308028953476927203554084555916932632195722824029579411542961753656045744893310063299718679697799871892991939367262143748768726327646599468836391565397778699112224702329873208720788871007803985792243507238539844624863611407169863431981946145874329927366688419495325083294795120390781337933281671051838416180082818681401196145825577770955740011794762687911131771979752370232672856425590276091330326583413253262636004133155550655195705818703800009828721307327401934738041181076042273304269439996232918926892871688271714460307264625149099715252548807647510072153297286590281970226246847456494515129752985523473874161955806937282555839956841936088652135989616843841160733901518410495514260441442657117882130567968861957646698153499162945495337618682426853375913844020611907094646145638502469298967476371318161914687251151607353897387576132689112648210337043935756320376128416086680478316893923871798025588065711682242379740899572624119317498715766673510811886256869322238928035291463038093572364795407411485215784831547068974966911322296261434138571420475601110715228759947433089213844720730666017345845610138079056569466046084921482796033059718776458797207948184844683035036299549050044034138316115069840829583656024746490419507837800064466796764588264578866355948405101987295742711127498664879650705478532667939591042809330314519103058425817813239504394994800614019661981304666850464463157675290191945406878397621483324630443054638952342482883790934797715436985580067694258409450414774330041803991113999868369290267236844224515049626037154535883501068231641812041061626014887373582208970712532154787949033930942032354649786684781903119001106196892925126228683764707290114913792404358142668776320987669108822403167047786764998584118003450203756931659417816690513935336874694323439269411301879703466021666611571743056551776359202274976711615266027534169597436162172099910521913615274291984091159375971101321498447084045628557517073439070990570105452940308064437939401959384650298635373830968240012168753760609550919167546832408549839012826386414908903006308441472106287672349323099503209462925091810677930460098057467860807736440151542495806208597549605916448526528336138348623925353711290475582052886600860396892494074444313480463680713836568175364255308689931738619058119535215363624596657357809503841609678932993099775390435350862817111814625732908615942721737637762526186499946071389791596122802205867993454586362411578455420064230502538776828826197531942354021840305374391694241413820601480853024232299826164775494000150450356722906201567883764623454803525462453962961298175184159755038876109502817526318601573921351151455745156852843339280403566303582100146726156079839686800649320721950717503180992030075659636453627653464070267129996432788772064773291907985813999421090893480014428741570952843709944679705247508798646184498787729496430262933950275694540456050774517999964188537321820291822270342616941604274314145950938637123744441201635761629857053631753689888229930315331357306928004091359454473210389152763112551904720267990210570446972235650573820516437169458005820718162273501876117916464989252805634642442246093164888535615203737568695722692339933244229696905986901832778475771395476676299610073749101441563835038969748937566531713175024262437654267217773062827065003007018872372286569291895353833048401571392925177730302002303127328569979780258219193724780698850252101748202271830592440965060390662536059434468847442706222894883740236718358309744637270354426973674269570576754713021739953897750189996783255739495114698420022540939108566236877542298735593540429147626069526494522644302957608632679853622543296831201758018337667409363041250840422083978206382973053494439524473393320136615318874845286380310685203934793045149673528272081374873622706584363067329512846757214940262255169846938213023516145522123371895724928680396529873744866207175447541963346277559776718678921431916174054519050207015628827168314699280371644497639935117256391386844562722304411134583012714584791437493585586039888963667674099474143861116740867249764832696370500922014113115755544328778426351325213811783983006014736867995927722581973650330749005339132863618218351435207099518560493802117620774915748136206359980923092830337737210792228594998912500886126572453316101306391239708665755371091777975499509649365947951802451634754297163952184949837217607994859293119618831243428820068837267363858937171834029953685945112855566438391658156559950690310050776152297603979929885536095926619205580370431280709658244670235103260402050891285295907418093371608698385531030522885741970427396248497103510914456447736484216240196859547613532507344464824541542319085231635521617915137964684184647304168232053246170858238161019843152055201434408224287038467938723271440974963463001934510845642000138079384696235829840203065910326363191573903864484736994347303214438642283185663038268333174726359625281088110160683389504693839342268672250378913120950634588985195775862994557459712543864705613639847534594194182793753559440003593007663424444354588105546787079338214698802324618097637673249894962654798396150655716083655225676680739932369430089644296782363830410427177387747907487831181130563404847865327185170953827960350106508208911075470331366365470783129959926325226683863795506237538669508071780305773840192627344329120384039285608092182772560873525112125593058009136828468699503187026762922872099940948079872794804287975823546738420053493546124685511623937499511117636652269654976088726294364532226848945971363940011701011238586282164387798684120970594004283342985652751401023743739968174143296957408837712730259311134616653041191746295215279020905445017973375680596919270401363544473954301723900475442371267844049227284445976128655950205940240302833992020981321622952303785652393291447865868902515101779254441353252895157156434384073901870390844109021506206922292359324563872149410964072482629145120359266835809915031383201106622552100331403427943137481815587877609037951767706386243752229679439134046682701896065797302718598793328959685773554113477795216940857241066354948813634439775723328124691688518790335029443419318174386647309238977447293910820667935227599556535127454836125307162651784284954186561730667314713246745912869485406009417924573176025931282591448526809529588665284298507700539418918130534643197601193504685382149163307537226011753894710474000705871300737602114829297118397063799694498420773595703316513634483818398781885949138840474246682075153922419569976746527548361278542186710866735485260746409081821579849465151117731374925134131705426964404566881242847651367221535096177549265364678508486896832428224954747975630072478435565106950297191200119067344149521594834598356992429744725669215518354511507178229027926298839563065750474300810827315263555074853618985495306931755506868158717152098387714575789893928549846863565351250060800475027652117302555141472252670233383303079417545964194491435406625018315876877270738863096754622979028688535743768341597977673006454711813728110275615843229323644220894319029558497573109497452898316038723504552874097778579874338052330858731389479714320568996723031359425198759187714058639027355430225906844678241399159689681410588352130827144125331747780575167645712800198327478192877726250252415588480632283215204958879303614629555971965355382534606744123550869816272255679270119714213359096197203053164472542541376246412364215566731462023243518024063360354595786317680643470814739579753605842152082119337337402394541862021496725840833583874982918087350888362019544180735698990476097921074005777312130624191622743984563379956781463587936419725479869674319056010596970691861849922160353028409372705561590182869914046000717173655258462143433862819584289115826455785215470002473100025465518853253632461216784121092735459846406019024833126975750541464625867175740501233338769720104167801983179428556177465741025700828457751390798203071090094037236220493636560497384684664765022768242936955402780394403753644132185071015775559143559608265423105859245228210988223512837730573776924549835998842251404628183063769279049967110425896796218378905301493561177662173532822899518305088223604104218191419681861938562378713375941828346422902125506110917582165074208942544074398485176361485722577987671676791189744910487791934613536808607434215964432794062121047223474138580296088153592482658718619596121666773434772713248055415503048125277928315934268853622549058800423899712956724680274499178629724811069023271314902212410828444790463142127294627629665304916951352361211622508831745797924640719169833202856264551494810541893533188542017320083445631620780406236862601377792464235201332918574168303533135514792362083244076437052308555159243069215993761059094974974912032890727971121374692973982156520976727548234591785526506302624884081504296889049495958257800561869587839335746655997468723760389930523109163638264724199632587009692768188959440630629725986034815990498444613288856458193610128107046222468764173048763884150096886881812076020677728427548835891981192186149762360338703908587615294227131343333826874989592552609627988770758266179770636438499545518985372542241529529566691613371111691319016688060166075336619876331615301600219476340957460601594201536391884669549181290960862938983370296997062767387234837390247788173200179996941868381936799767204998301127114883512015723784046074145383707964465199400939137465923899448332287717480884783813480266296809427647527251242502219643655118691853033922798625462399798145803084376209049386032040964463665721517848178749559662053630008660039803679657953787290660731424831471386219786094738339754291612370322403015042763617512574725831699306796265139002914381727661040497882724943039462942670028966782812781457414149925136639114718556971645810000863375294108795748268444630856920725467398614073581281604834791699063291077494832908573229566594251280194636189682422863504876046125935459427277391185098515919326750566912922129439033350837230341329236990081864682371672573863816796193245350367333019255484507361353133823289295473227771054615739102352944779255050824093504123646303864849816640630017420466977117108733802092952079520674361528186244909073641148719342247712809477593691533960517732816965390733290547533382799734224904799838704754942903308166957401740333052768616713530978550238402506992892284604902105957495837092486834754831441190102855386652072882049969277754776757620167282821813745250237640297718377443790862453256793029436750364564700988064130348282612703751850259375992095421880833055016517143818252536228836430451938533669676637930009262498582577981210567451669952030870796288067011247683542337098122626949445145630082348790724909571715398191877100538587377886749390269271523731455695731172553002492264135954782355915911016436947380828870657977815940570319504210583367019259848361994535148567864459340128082726478320833985972422648236446073710277509184609299406924853158043895443085986286559081584838671870974450664775455422577148955679545282649043326857676939823413166045133053760513564221458548597826388564691569054407308046753337471365506990107403161023648305802667681182121909001341832454517666168116402102796691803988109912590673193673025029308109305171668333210824471583273891298177970771882489501308811812678946378435792194159797793429661979859074645812003491480449485927787839162166149736361967380655736868235556643830294109547121193498374026343216148013918320625563227445366749392864583892059338190484547084117543342339385822416794283238363657468752494763709868507251713584093248405120088477332302399200021969731666406467865527374605381870532350319035554641737641127869497072674268599514911090257663860019817217421839090023112796878363109971103147631753359966514033173331874279244323569369045151409482326594386258786536933392422491970859489586263957176110982438199218473916284337669072840238661283540267946535666429348035840841809359722313280522640879390485725833683850669838123063324698504071042183330484545039499789192596072946565727084450314512067167400728367941724832047069111235098436596213761958826632723566321433826775989640658950841535333240646344508033752894134788931891009502767921169837125717681994209535707277840773723115160042980939270290301112464042324069078549717745312621714036260460669650011372615490013061604701235070280018810009477028539998078476609549985801266732006124199976694640145561531779473167950597356082021933058285375921192375047910850445751119463487720700017310267700212878698814838734372797290956365177304405286547832755481856489661739595167503146678696800154178788614699553639273602486475135225696875303458929751345760444723231493869040548527323943644361426309587314116942546506852306922993786210224440800878206502180818213017239188850994565200157118728091141296711072778426160570699514920856766994455246744300403062947870034381108239948165279444570611493754769032658553743202220466671517157336098561032268437580845894273668459408449125531969208684788121946498174387910311302076631503463600005455828587704182094777188494575158202302367838879685807561556478239175921920534258038452021713283462719602067197485998903598396840610983136815255946040540770485456647401467834380813806299300870972415521335950706108935612968769561822570866071340048773699535261178882286279327174763268950774128300825244320965885548712760182805977769888505831087482349730447719857439761757497603776657359214335392007797012273132865187862086515162078988896842072500387314681113785257335232223308511894085661006216288943267091750826664013804111996191976856769621614462043561516623113530499053568720110152543562855905295132900047891132158925066944070544214563218597298900378028386484150692243073948239272284210899326690010295098994028531767069656126981425205104718666783481253503285528235192551976577446135212344938996333862286217918033410129960128795476366785451086234768821368758395400591748920969211578931555074770381737769708040053752453767751987115181752180131654655573828842014518011769671001827191226029944513532477396069653140877505868210671248445620250306506867166805450299250871500243960278846587093420621597714456708031934555200625966215852578318486723867976653911854811865152463773637516632315913869538242212720208156695818703602563855372759813966279514063690199244806862309967832146988166291467973161208864285388676997873279840699660777208093304286118852603368218795782049316211958928060771406826724008229508561640886918958038635400353439657339641129543361570710338629287243655188956484380819762391818268849329606634876660303035230188300556278204946213517937203797281057758607989901145981280505804626003082225085202076381781413290619945440108103876819970611952088688574182988014016874435003646938218991387177717247710744976455929280792081409659323357587852823672746211127724527262321569224279219131608034988148846038564126702550385237345835451865516559512060913480262821876027296181156508692904252048101650284346284845910140469294889007354629152273540787862977774338338254041018888441507510095070650102987209006332066831331706012730563075984255611378668861526247676815631272635192720617625930056265977749487330007613752632676673260191803813001827877202674295222348861680932622338172197429663620962069845148948448493756733670700371463175976679094608517167560224049540739389083072569497605292598324341275033197458115456969861098165155688676432010557983949609548353540874961271202786248089333946754469122545978971805758471771859236421567303282215025480707623556087380199046681660839607491934650858576186018357148336255459878965803914216955982262186861214410333035911794529005032170982564590153707284576215147657717351174841161706631604706249172746810651733912419264282961274352513710048075741236993380639409402287144245624500785382813878640120672264646806718735263449097886382787146158299685853193206848774900277109413236144700155397912329665367167834594626034242488834355650147411605826870742903467444508519967529504670301350502507198322465615030107064270826584080165955908586515803575114181297944998057341556862638734941901376453290592633569353129230488434923039889333740770322143966070031773595605105618568683249118926796804063991357435037252294734910169429736445497502555830991891997474715255799813718785722838841775793640888028150757384530193285463818986365648373242759652201338822405376617829896837506979503901674945320722587821481557071322876555496756157781965895612481897558838785213199385836341514981761966928755574757071354163124944214985317644418533653361617631631990089878577629735622525646567100827610933557507470906300899344307802058286208118003835698825545060403483117334162811303482375420461396829634459325887217834429081146819671143659883065953798045394408345813755862673648120331826459255651274137407078476794388896312031259914463707474938570056444838099847565427553624491630245653256953678152329300319189221743284852835350059524065570728064306846034936514622954191997616657666660677959893556368412628709968339556296596396485884515761311235170436780155818287682007973018170865793079974382559353657958311170512569282807975248526220352660515571160115878968302762626755235923703572767483023990321066900145530291291001414697973097656265183229003998123903231868782742770842463990489162590886824725356618210735116388320092127554165457081784740879337358727121210395821127134164678007565754726971406048217540110061913627690531515693476104624252432474267081863191013555620876327773335485763970851431618148183303262305530256756543375751296339539295898422414184136394949010857322498622056501175701804731512496714959304992851192872474471328573258619320561608740770008198759046297333018958578699724126881463095756377388287717816926297672107287658233205297283923029180390690905795473496459331282688324364927616324245180644397174621830764425402759817296483585804035335847088727900680020701712253172365830922665056059461374365405391768269973937707562665183657629275086118070922552917061064916881238178357218966249524392502466019629671775086222711757408028850492495798395092060029275051141119754173389624419168763341607932446686710409800402562840623971247733070270723819052183438339585656007069444110630834227267767289172316891228122712955237189097216552312039704702341771010711189922347034965296928871285306968765320184567621020053885773323543419630161019347447194584438470407242484582573400051016354930150579258974869558748437709597929818821402974406252742119687685995507264910772491087839050874838496354509638148858428718500046570419558480786201053457805099269794229202845691342636497138339993518855314414387817013180031933930635352325809356071552294821998370140994414934652170153247264066144597309598297849551971512668562685872142613139519584892347732738851705813693434057396193096507417771790623996409510930179904364347092391725609973208021302196783363086476899250166613357743883322976579063952030327309570218441564807087919342099815043871817348273658248754590257798583924212425312231239142135054761688668584156108624608491935090368157873713060843280778763805557288287845657431565188932002440240489911745824914011593108512088685732889403176906748826595014407396935740336426147124775163159482417687559241177651319613798386234836673314372422227711702078025709724299215486894657971702094500796862920711597264091547338065323073373201744329321843791355618086691874108278913758227236310567588691256453846524341276573813892440594998683014753219571600297329031244220362788554971682845346885723458553508943248970546613208518915410224557430160103666532840491480321393465728343189673163237574850168461342072775380554510044045617645543636509375972030746029479087198268034622613417398590251184518060981819672808942046664242720558449225756831217726866037315828297019428584177989571371803586242738294012587854752025222289351289877651032893804711392907112436974694169611384866858557747211629920504766937766856468705238385383503586779898190993007709266184141226947599315009871772954213051340683975131709986330967493429170109241830428031396433420166343816619886698751045526081812633176323022063490532263060068845363117930714786871899442553504123690816090471825566241839197291519226096853646852218051871380613882041277299914133995742474225468142087110107745180994678576893234967010311035797128160838172441084928252129581079722398644821465687410205646555136104905755459437944500927499919373614629077997978787766199495105767294859403087398593314230047687264946585413160524279367260742036561409750122072227527449190687028958668785340592023743183781150726492454820995108183256548749021007000305311885930813109051985319007149003022235029684939197313221041591726556549971992204169368522382465137335313457450593786387337803056453324798923710235163427391003888665213910670993192775132614501402160537692643594723330231200470591422027022861324868768326894200181384984265526407945384260573442178271964927346959900453129968178249060850246163969836592901758955275213307237736330390427738955065508825787200492000421580412961783658843245117342272659121010048938734106280558491015795465837918072622347644815168369661266736942765785311483515016544338827534392586104603457526071107360286291476962427503724498648474713740441901384954986568894157940731492637655740092167896090540864513713667623659823905747932335281108170948282480864814197605186419041034588368087229001634674131477906751709998776733167150910914457464194925893116396690217691284172718885664301262693076240286669517030838107047023683430498970416567262410128179800310783937796083250404845623022214256975847630929101838395433972721439381698902566248211215947473624467738847809143693780730195225714762593982508116055656932935035091933400758164813588337901316524357683734595896135103119357522575055058621025504809229628347811390530086942842197718758885719062608245573675517178734876448803531473146639069693513963327976362413791593782633509406289048842194743543213599617697325104007170253940707278542839835374872534188656399829327975967531284440575272778875105879433170495497763742942205490051476302108814295408944843049632259330350318128585692966304377169271246571215117519178168013731639926712911740626383962760175635549091852039179824325509946578150358252327201709485084488016614771241814545609869304431030465764810944512639812865993945080358876186705480037216641905803607909587018165843904938763511304523976024611997863646714023223812453003534462178924500357492280703170635568441294142443067516029101849094750750879247756730084357697950214315923470981668944478450803004269556388743846439072727880631973961243445483726030523889074983353596952235367295277473783797553391706860833601193527907354898903340904670169292456299530686974377396388663932720390844892430162592048316614216473630392478973542494632237287875104988353190402539586402780022379423550889745325797483788038005558555001949743333968682774226199011038209171754944338498146639862047948803947746833610591379038334054014390228883713830127711770384876360995388892712338810987054440741786674201026738080359373201951316076056222335259442578079523196085325015974350609956072834393660855997815558112550415448952150966656786387984791632324767901809577798172883298642881749164014637569217425167539180123793672399215421823442371022305520432665884027737422302270964283704528794695280937992879814007775912278573334281208858541386232040791699492172995683214590938286639461487599851678399660535061538419022910946975377012868891738787534448696427983235314168837462230011076983993853942412390963753242203398234875394458875455742779135224690567124895217327592294360693068957311734972518029404698833209887405048376987042019658863200025269161048820705041632275290900675050227940890741024335321956924824109941903374334193570334457899305086474401847978280233175585390692152560936766318973573209525167145552435374887942311019192826346034046671169447210172032865484501932604108191664237017121987656062800516156726883019864551328362877022730863681386508881025971014206340672406611445310480547450116260662757548304396748712911209222492631060470285665467218712040485787694249673879438577347389100659869590558346303098446560289586090846874855164196752016166860090313880873901077547075941835303514487960148700718198254460538186455449171680894482301681154560205478592916455290103019432780935352985889316439352845848725908867345146508035868206657254353377591056640848864813017314892140046954363851562611913467479473950073378752774517116458533216050950346815449479096130281308385135295931375229983196835418307383531501790842990301525001805857854236963495151610849445146877680669100352048547739293768779686570183525845240973162807181486537041317510957352148871456924793260532025099332411455440761789904400210798912610584935393560373638195004192546714091231631061136522456659100776709701017321678101001529375934691927897777093614533365737373687671268821119553354367015182335789993365171911636076981180773661190638106641565607292629129393238054621037800234367992549490828747659806583256931383085189637286138670891740011562581597493873902396490771157026725125602801805351157161651810876112132528275236971335767699907499722255383492636696678742911599499400595564805261468052552718086523939784342022353826113699945841877244069128686876377024782387225180625279383737997809008767147877336111970268289742705594626325534699681535445046144750182572668285954288136519676691618477218511384770083800666556883595458131004932956578235874690489872259527120974565481612282119682957970918866793234055942501138786736602068211716193609016881125996258749421518224336556967200381318092192495756587922543305742996941620430418815427172295817550175337681247325134267929539468013540439535374844994850983233333799663915761172831178576641126427186393003206390801503239905598257208694782959465298557352767117497004800170467349664392250623939442986542842097336029150337086078647027300936108876769081069615970646700147700457976940869599132282900561604150477969060119788666092055472563637162749052009546314202213491278595699829773865059713544326779046990100381105337345706251121667960248707163556103090762341336603845045498152705649040142408877352466717106533652353357762083566966074150615229453047667066343016564915137184895759729361195023024017221619443294702537402960710613323301799502866200267994381730825137045596118968602875291005377605428110664097971510727695908597484224579548884637614832221648419821500105764584513029231503614731511555479253356630011441922821173611905108596668659644756235409793042382627802071503413692162702233483760886347775439486005865566114469540234593353786705796940680138794221351245670606747726036017646653295272710962159797912614525992347436172014482939120198821211067003963795204124364218186218955996034776591209444184316265645136146031650393100656537685955364548590778701969606378175682931544640896774917854448734245344643699538356246081531114326925049265837464443354659779073111840524741834859924965810396655929420001658828971588012403156657472527607928915997803707707766317643239837337063503187257994585255011775633465796301797703765717234127555622414424217008695976966670789184666798496881987714194265417607768165413360037254910566921234764547340563535189757610533382376583208631553029254980927443240157834751122389878703776299152995557909045899651273068855998047596390597645447529210161634922558427457743561796508615494721830925835833858161054717887200681760948912347385961076872510085295035610255016988432180391664478174286643827708864404273626596703822397109718825443646661856956885025930495908885920023475785951591194962457144110507838534594905225609058436069447075195603074365280856751349504337150631502868395931177622158060293056746962541536658701426948869087613158909224425958376454729705328704358605201096592416089185161291226956384919454892204201696394422269507034273910603245145021743249475040820072953448376682163415370045567042021018008827123230661527305658192851177394700499411291803743931890170451568028864659240163459102062946660371088357781627642555499134072713586078759080882102620734855724213469271980066216920301823587964719073363243572706173794343574971095537384215943850499803429117415636179712315310937766296023922747853870408451693976963240187253261075560575592214748609945756856880760047412565854482567155308092104654054788091126582927516280916608652148286409904254026591679379645921123622865559487259207382097209356939165946242528228980209558573746740233866029089792185565866619445781771413780893671000219653535329689392320546126369937635586199778169725498817223546597969775867295338123444986872788710601384478780581127877793890836080597991605306679157677129041717111798566456338093541050258619026775137712040308854545689175380972366440223172392896156627658620620928023468297915875073524730699555828367500249598110706475398631097721002797644868384416104746745996246704792355248912097486799511674777855509106823216751157474177375297501361635964380487103221407775633355984298050428894159231673325178196255169486854808785058742449172881921028105493163238881839776338665071293214177473224468683542514000083974563440643904876598123309521936067525902352051813755293242951172896909396792008093241829533598382647901648073300088665804970835385558938044779567436052822473554226802951028104071916547844810267582434554879809208197107362169974512335044483268944412803882495304310050401737045390608562390792663068728346664776424622166815544223460656245507944496393771826969681130073131759566998202724389079592465421980366463084692544580878562341879809149872955500500096349614241539374499854612608755724744155959981117416694733994981842409842155032543806723543612686271000600845432281917603274614758433688550411091255713783704699917128141580936198190976721085448073053233224212176167913448987328233374154237988208024982350724012144168313088384843998105819263508347357299169341824271975920925778870014755907439674897301718141065302766335036636381350401225140068247599708779789257875942935295326453281918794878627013963338735252711744775818603861193419275155354318392007466053505078525325025775308955758954904382922420921523386435967029402248403859669991853939711109327951626074113097084480350629400817871091037601445406046290504246530314210746049620419641165544473447702349397304064046434176274535840121528377704577374266725692328789334423328260917922528738194433088200880878907752736012509419734133799816811958830728445834098174195438165652729320292438984264891474563982507996865405894144760072394381425011807032907598680774388901931671918204202226177971712160292297148426615748826073716258688813174737126285355158409896087329494138845296171475167070240407579094839235439515915001647735443133430619696969476060984039460888367791822774965274634178795096123405859212844089544493496712164596332605256046211364233102609595401121469640908121694070115782431709701951176683195844181786631700516382958705286467915655161144744886798307906979159697709181569677120483143421374184166019884635206326955714091339291443636539887769614844406624454425725953002828234762668038875175654029435730716376221949420685252145378035412245863184347174374365907594986764832945799150458075109012325553539497474152786458019458467655440724994229388116539839522931305885177742273925419322076150632026978001155365587661111777300761573943699333542416012909808217470723797087810444220795381060050697233214920648968055132074949868827068143109759757216879875981167382948776795686756041115906112000309720818961652057651996770685510567436455425695373162488617213470840584496535694554837616956435605691498818634611550131438194455385932253784487796762972610323102959524317376053969960394107387705653373174729762991254360737570094911193435951791941272657465385484533927812627893077690460015400585241186649332320159056500164040004466100658840233562246193371788170537037666571714780279057284682936388224201428044232773352446580758001014855995128271081394596459102216418069149653236981658108929904924169886939408872558684782596756308089607582311992555337070084523589491912316707387661102128558687404185312453895669962781807483329942478486868527492905026970090350322337199368147317068878506995362888398302532035131188492515958936385677630766047374478849303159456662589746750442468849564322209241920638266210399500155438407707771163106101415370960496677803167535638300778127957885280617773590078295600435735377652336571931812024290114193794865503096324719192921482663282002628165144391783692641611489898748740645886164438101022615812873605094287129283319531533665642174654043680393381848738120086569190647180589885305406326357896731704824812689409574731862254946649058674389083590713051649270924081299180086724208783296040221427336728290496081749873004675029039328660545551943911410623209502599255420966015364303119634154356075728179307377190165258788092099878757529485144047678035034406200320305564360981834419668008204523489475972093204361072823523517291254035540746996160264611631238020883856382443839900936622916558200876886909523983209485942816300913914918122974848241190469876212279328888972704641732804934347006153258191229034890972425207599725110196262799243793877079647185496525557513260067210139860486004622054058560677354524572946973600839545054694656052158765712018416514679858841008614775080286573368622383339869675049889765077334957014014237499731032711439773319710739953972611502301756853844049812966270693810292825559424732931981179441718825357983902293488245355647207687198127537550754496911192701187966587625519719571691083390562026197350333950526405952170370084127596092500749916513074173220646622534758457814809310990242385602453997986541933141314989446811943492519441199338304731427147120479910516095959270803643450226947133588973276312561252304540935796738100180404774827339575560813837023892558765422425802136807872353961168244105154031184543208882090530231575334117329904291795205918263408609660247270232089297471667496303072607635247980733788856701897459739498747276552455383055216891721209914761382881245763491670461910202032183798768347998824198290320240227258337368730345913050931703185415441828808197309815557027686428057497889225112678429238173386074518527097246045761461654716001531542455285358137259276418586107988190012051810854457403828249096613771847139958811656194146018692391674377195357546917767035674040795874858156603104673820427840087948796536418932931186866074513030258154827878336313869145188746075072608966986444191053509567990990995077670046715788100081590827315884894847038718920915328329802981880360551443085415960408334165890956670514526446581438314013421257188410706490623867922187373718278921807132190570020691194068130429359954675481585690991169755955104527243474829134178585095870126524057374618416812261407940730527752140405107215280989638811600295570382712533854015209633614776454562328022928603872598414371898145096224991720327500456626413777568602127829276209442595716084127805966841487979171606888057091564812740346685708526758540556530425054602390118737459610690907723587508812611377782027914850878104262330800780949109594446331286174826119400021708522956856608503891531078283963770435086485996547412598414844065014224763695266544693042525599491145006323493432739733138576629481709825844929712762261060209152760549639969200632435541785144904630855336591553023400556037646564431937280295446194580546076124879015881114190345847885370083905865221068765579721848247118966735966621614858198899861835815071437216277050022659390674844244359536746639183550444756749113713186004964263848702654170983224571349333187453312475188452204246690535892653436644883234615039848980794952037593156389947335084566854192035299100518220768634372619704092116147657389952135008883521145083792632706364888309430178003277557988882912587418026957885879248172589165129706156330382652255997898001487105309188738467683098903670188154262498528265348665663642765693412982974632661030536990881039769831423718336948934742842289250115260103440703632576356303330825966046159997928484115659001446760201390793997031823919750336547299650241144956617645820809144551104648857743587805300910364546817419450623218979334863670468082431352168492131655625043965316516731490826968978110357798912287627951449752541909888077480754521801679728050375351768435475424436180397821433200020023050002377269080258783009693056028614911368209767614231353282304936208213591852321878469572371969491214875138329994558017092579066426982732463641922767082465704171236089755430834119495638882209311572389979141346629697689248853198241890688767456070966106771875525890952429506831468573612020320251267148833440287504362962903751455835847716428696519072038179582560320310988392571444310464000777011282355667744257292700688100473588667226105878197263357139731030569168901676169489438125114877002725780553467500928282577211541140908419991446430800460468580478664542413273515162832288467667764616848771424259999425491226153343847641403338003340964387543558749135582128655403346936193311048515796688666777869299873723958995610743995498994352230292660945274608976662959315341970789187485155855218155629722436281399111321079612071374187378641828754026883898804827825499492887008436290247724227325513473441799569604937342155418038458944344602719928496879138947141880325409595331874998059525968899658285939913809237592129379097139202790198488428184673748551978956998878727118051034501470924142457601470514274664928735238867889386504772541598794632871866695021373870437941276855638922769754638280456548100547475538050193123263694103310160322606220601966617879992235185492442086575089138380005842094307158500264522241479047048472561353715486971660345335494453728181227936241186879055015551474114897370224303788147397814613417927051511412779801040977861589422563635792152284623086115359035377350853782325198867299552719343520928328125512239989068448608515242627800650617756451960808542301463512100223145865508491163815006449366392783577514255050390012266132958407224071483581949816021768347089910531810791800502569012485695940767196497119799871273170639081064606863008544152627941278395295270299304542864646135416845712478663699837694369720190778054157315328264435873325578016071681913059270755240093956888867521434591110264038198430310032803707209165881080717960217211564346625715549679695202755771421078102908133478461203230719867873332454012377774205291043526367769503900444316026277904587126326782045125200289547780487295645295986998693262905348693106177390742362202490021344249472077835306398546096788501419052195262536062362911128208516048022144460505493154973811483525490891508878421496052057572385919352457136767423226923724095142952387508225274702942587680173177463900552331365387932749912908900090601023670335854067269216732648805902876995078765864857856799590069901539403969660784860670065162755943404832294251532640121979839806505040267377277111638389410348188241612350384251412258076826328789600827544635772721158573237834810755148756773613739445033885808196375076653061170728246299853104198086702492559268779955944633341192231383621771090438140437920067961720517092812235007156252769654203200036665792348123310504692355390766322331857620781865936937853577844204049711238874059605212202091045064327888998053377786445866887574367401330677472219353447572624364413155009028572317188550331176113458242896664795045553902772900678645191073535720575675792919034547003228497321178349658568315419871070754735226530764923979399166198674087567818473918712247731012129553574959437343766320948100526089920996649249152205457318523189881129152166761257302967909273914246194831218900012251174425965011799579187037832132215962846307509790696201711771753959646879757007845283846643072385840999654738208109022373901857642910497523006938253227140778782761385849306454172356063249480062376649488363244052230931328494064348004624034840625343258767780998127419325127381913052455331614935409881060062778410352799231137791396262903699270153419581378968227158649998518210952330664700377040343897708030612885379802642555054606317000381549678288390713846759065114552156987565880308436517652288558096592383167066547559166448159395603509977687353500145089005545772819691575010096380301272067863290602582691780218050015470006128145895661360571036620841299706459455511660835434539145132421690719544364452269775900793869403118256481792344309056325098285634892135965801847548831632327220061563122246258415272498085548603906457618113687383046637426485320683571559946211840407747747793572627382830423245326466274462352057773823086375393886867192009658080757464604330933568159984372856895014647348402169020687349226738863539263421238833822085929284575610195111947075738178690676841904718223971186068501465318080116320477822652504977367659327524790231297270615131480265613196886445218089166734031890945193354662067247314102638247634774147143924415998139550790448603684386521949218738451854297152742463298847503563141392696491511710909616536576821754285568782825212279194328686232352366776719956048778749811350359588723080073584592327010487124482623740716416131116797064814375163011264051614674186099455854478444974168085933315851598682934873276065427550301685583899694313203876723779856307399922491480913189728742758405308752081388364634168032152591071212539552702323067708561359833056431664283071037647222626655594203359480581648184135067145520245877101111847202458234424849751833878258131443280391880224420553499509852963116322299185719798792200086941660006262220876227661552130930469869261813064205933913749239216389241485882525736212032953079530118577666425884881399390525564432968878002161412857515382896202480924916132542261996819964026494779869476365464361782424179934458835562214180043075047730021000823575897490038950498558861505729248486174940692478428307096279307790985796559699536269760225907543179497788100689378008751944113241940736250878784871685476739094252853214583108579984371031686531108228581393017265868306944950703619224391626741954707693500958453979628409793035134111919506762476613554470121213407971397185284420562335666077747520521263748173531235717159176209386574153420786338871282266639817069489603871769396259809548005359978039834257585084432337868714474151056676284846213624185571388115910740981038413377586156117087537370287366650029271563126694975464757780493690586797076861456523200088487623315895726219475115103011580320694541364508609592653140410018367425193626905713942741967113937834360916611843520842333984823624057665693690474294190136092303239317924122144587650626249764152240279347783591263213282330716551999118084228603041712955744187608522471289225714570824202755008007943046307727518366737898927499696969009457564651334619012480093078909089526341856732212395624094400462880455280633697744804775504705736094921055064103148732492058026611208073585882086789020460360164716869356339947553393332011888283149905674104222382891767752956997452456472481251280269140677221160032408773173247275454689954734040629244407007496671224796429011119096049416774485817779658215001181732601091639791335664259627251505002148159963586063030935937269193915060528790351144100115149368435286015186715679480417517311440606758260108805264055004875799347598021238031087536817778826198354658815836196692969834642440334706761963587552642667675950685318612362019507003787508695162392235276911691287832418733243289723756159725707487035288659344841603646934816817816320758233060234109588673263409998853030950825429833073882707817674917872072749470851182169060634355763650831740922968119745581800062872080215472444832322935072962919175742571238137278941187210308634448801450212834548967188835897704564127449985272673173763953200741648447951734726672431925872480369593096311087235405026718284039521270148502084620623320058343131233434733086182013143544073761968292025296791277374410151517952963854367367554105166258380551433968145424958331488824683083691102515504862980398645355536464134102448759708253672604732815716781225318968390539265752984738554457405025354795387128859091273245287924315823248308094645916916162531947706806239598213376078575834365037988014528084565085634097528743624138268138456268217450748815674265168052786546779745488836450727897541439311428788935135436811386488204760368076733091193208008854995210500683208519430476658715270713374483710724402345135500779332275289941678242137429368372447063362192455369916683491824034768527444194607843083271650224261974392189016705438233132503386216922683997138188189951325984385184386130569460520218014592419810580000167244456536074115685035727219054335970216021751122288720315775848985559799028066054131858402454336215502309682725850318156781846535057640622161221484991783349145888747372695423411604648982329356113014679105959849892687214005027394663769888184669459672006247632840511094414291227093154164166880197737222531640690899555909297894897712741964323357194535457675830147248130193665588267362158533836390941013769573016349028068385760326710575197382494700584038590735867714887455366856395048132613227764136998936926459350356561564843655842125055572228056216620068128669343380390590505515532911974905154606961325717224042826416738689822758746912662778715839624617968847600883311883755672455564320127900814705755493880895883144006367783812182023879308764382653323494540937501705916083536856760416297057537473037881894372368375163709294375936192625893446589102421437991442178803811026108706455190768559250382512537785707132686691985295464306785372285717424761112547256607414198544071040294502569820888727614856755614283453906541137475708582989057768855253534575402469021758162461126729876493996409486116242139906969921173227556787958449118863498598194857263493017759182518068457339626945272577746076410246529737341920382333605639027056229581673011317580738174356823014612723202409359473449641020678342658890562823272101229981733430311107039485804802025963251439778931599976354089020269991141423591026542760865297334231843365557990283059977554707266589935606948907388768514233770721427898798111005180051981839844505715948326234260395484268641980057489657580959627696566370985297465452230299088358869562345059836351596204616906436137636785565297117647034327138331847842231504395358675719318171637196282681532260500135170279711448302470619000249723668635425828563791723321921143075897194390124949124818747058816271565515012700848274392229041048276310333607890548777479510076111666709318600164839532599197159578245284209968357115033093809732184999535118397201507216318125676108981208789415722266567571035277744068749409973089367773055479422451227119189530006256675737508097456672472734114856703705597360340681966012554062664037240551638391359668533828056323859382964705740410113458833050005195370845958615983778589283371887468496815956586248272676759620399940791241749873385006131921098962834387416777102780700277798270271953193576968239925809144399084325321457137292033230839924956734203375436199385945715029307078560472306447084997543691682399620159316016550085953245666308677434119547527399525406562581909608206511203903146026509920876088910729266965284758843385109848151010188138144482650061831191179748011433067214942385670953433065348985947620389246744541188901318639983255539123966989788983858905920119750635706513115510423685380007604126856948287675589668859547628032580288069174118045212631171414936700162147605770275156468289611042853466654932552664025652250419049073585216429481235691734212461021963329734920927527618632644959078100123136109399492702994396679413256221421487213927899162656298148338817261468185384280523668822667453105466187580879996200182461710176841409802114479382635558243451432886209559376460636170444975494381040096718884755300561483512389441954361686804816197785522837611280814034031666755814994194813809006266103009098295621069461840369676831968003147588321019472972672289345511700004166608982817848000791178391618949980962096045121646629124212829139916893946074797888024852897375477516307994592796218537971957757906233629393898081021161062206314636415217097140326285662837489662112091290112815855673244824697952009610953380242466211352143036862794423915760493346904599452006781486523143139420039085119714590556148320720479634524341642545422190336833061557586285565632491255525349863741312079824799528021748176947698662034307639572422848906402873129050396804389567043155859616012161814295183340232030641821436767751752829437095778336647036297471329248202098110249171243146025651187478801901936036055338359080522349064391445158683768444242929214839942025714860175839177299701817845118351464561368891400318152530372373908494980937266504751277859842719928361829830126152149463620089478021676134669002790845042612970969268090913972639830896199628963042587379335311162227634503206502478796598638988842283832343998281791418924912631055038862514375664137866824464120110890636584131521588903293615832547300101761809214188031991155554358018982357664843263583223407334880684277404833700841042225342512878252991845054313336813093144204848304445098782247521683199838196206627900976391077455139678935849177844022919364361099226687835825956980939730204495113915246043156075673156683788380989075238562789040260407416791942315200370785595152214816422950204257128646433632081063377970588698730190431403016830844561308798663104400433996307539555081836273823308444913264954521709345894218362893769384545041777728537137293620007838003778836198793704478827262057581667711900538935268659332199160801724479838943955620125310408597125230746549078180650806762923512208496038412516849372273824159262707775036613833243344102518880627868652473371511404566885970129107265427334368591782855117573627026736654408168455335946422295536855009317193952706571090965555270076585466025960669110207726195619480100112606235000758348326688203775667250454553506518291960426837576632352776946824560997713695872859695790222744196760955220185464036381116397484669143972370005465170141704724449735193996221653537699877723229297796145682737476687127549494352935210240373157543413068199570624806749003355097600421154904991364253714644716672075659089703213812556857012455924433219851291153797776550180715624677778489665272813621937371970533672265066639172533421713549388233025606347408645334532736975856486394704647035069258796819378604347373624565801744781448024407805919652760065314170425485004090863700935350995610007592225136775410449541476058144668421120919643759649129564019157823609067793989663476163196521870637428090295863959608143058423887039247621866320317634157438849444532585612531408012624857201634658416091092921267128889575532400794033679405289154208688713003967432380555872497989007292667949473213438290780401832493449734650013536615821415988413762773217851247035613528782087730615705245387911206385534827818438026012141361130264327853686483611308890122960410650005259461255078348853952914685547533194991285385096653575522174307862186865037447346961794326075330826540990211976935234962766902611139921916419987278740194967203772116838424066868952238965320902183772569185935452469316480942577856551879481319208960923422794209957890982325890739564681527402366177086613628090043460817390487013897955411692195981454398821250923533495465406276205723436499488383841363829429540559602531768791116414436918260009923644622751943635391383537704651365526990651891532801011522218328046291966083597005862156223482873514363185801923901644062578061906613669961688574002579323317992434320162142411293311444417578757312165194162084485582658880549226311558683919655393303046453918949732188772600722890424476692559630841692517706862607431127462359837972315249018653379653242637801665311125584849527555131120902905594881965423927455324872877756568745060775047686407114205769264003304905280145526125017480982951464775027633205113730601565731975455377918147313713706407029802054053470977445003011036654603168023786085739425992771107158953813934914167371479796347509619793366920356074722827566317158182082992675533140490556042284909560377990071857092634882058865174185222930334661191340337177895995052871041055911389965656888717435341205858473573429618408215625282498560753475441990777414699176284963089266410569960693034732538973575426662715989515520704808567522669275670103372882409000731173196341933146010422382292180967323384526904003426560781004214236267946077087619958841345165595416224388956091570101190113226899976597472220916063353087588321725665729388083708380302955413077544795162194216169052117589630129265103926201425352325006298118428453616329218875804010751784484308980094696976880105279984252608467683594652810876511119388725999101916150105433399458632055344188886065669706984946144513064797666425612601732576555276129844154069339410633105886101291052678303889778356108502694994925798022510055282059982854692707375351493803405049992991255835935196628946104023888557832903271867080487647610319230736491442960206454018488532404756235292670257345824625541345095097369200739446563885233368815236079763695051031431902461927756129894363681532406464102603156795923988514171733368915197385678053419656788667556271254881101456659518962231727494676199512973191121342743759093975625269295382732853260005573372923840500326917821203351163699883972146195702284695726526963482898332842916436766194343750293545357255305975883092347201362991232706304044613021517194690253716168647087132109388864631728344836719073557775807763292014855850371935248323068041569311473108683768626013818518757641066822660796293372849996060068633884328093188213862725747107606136256317282812865062040783792621749842487071499633368626140771356366501329459289126646956817457997965116470173195593415680989106613339393459599356159318692086693175774525920748854155899696362154563380045209256422661956543376081288753501150036014346667434023848712012906629790069860295294315440944719599902610276941825721192824752260156610592766895502094219234687670543246295768864416663973542950721445378269857681420998412002371866126621544774014084368673227884766960019468867659450322537493705570894857783149932417958843519892982911964919938318693470722726787730527296388976048223971953249171891572107346245581574016594382651232960309323472715170103585838154037520873681207339028126456973066015374969501276818773162310690109426102022397590317141367516508104013440246885046877656844722238020648257284202013839060393591929944735517236534046597775355057261193246067795477024197698088899259511529476190841577296699813659722353140885742836007506134210210654391878851968057002274025595189040592716279434085513951185605034548613280994469152243404819478883434891259677217964179452802316493570533664375720166026794181014082244543026870566820790267151477613379972085366037779470126662023430354346961444494814811945911732471513946790344008839947056236150367204603878156825457163875586354119000408586911500338015145596588596389985120127273519607197317047188975336667671116902449942636748116323216402594875382957325098523936011513953735863343302867583614124299416707856167772728008748753405755902918826457589547226802037772112055796768368499402878856837653763412888477379036350858086969024152750780950332533669674562968069793486231596421752259828896093588573306119268778236892297158496326588745351579006138845589678894423802851251003919449912289503335195685408475885918112493215636986378580853886239780019293654356394160524958255609160151199491952453016137184276537121879560613844582033650716848439121195317590971828848269972279347824796678416061263762457040774076519023150449647657275918258668256044085865320692789318118712170022120546158402469326024218143921063902097801364993935159659974891864540151776566073459498977772985620414949350618358454600220885202923313551134375763726238664211754740180495346258380185750004741955639098539466495149167963894050561388265518954911758963478254161507787083059034398390757804865626518415403492632847321937149132488547280874593583577897743909649365236510935880614239210091959517423563087944783940192171736296667085873313716029803254810981990613919477421631398562150139965256158275869041780278030870753270748559956958169721447956742994573926923233565653457503579443462428678885325139832678721470003527413257835656481311194350443388484058320508064236827684834265522670100718561994624176288027135841849511119613751277381702488029212098636112728778199689245129413949853804613233667891657002033752187456214047767416557636178005481881133971341862150820464043242820062101345001022797193252791224634271442662270012691865681018827987522100966797377115015398872351584829359001915730289454139142883791329673855275518799984949899849368892062154125885760062914613991586089986089249536381280027928319122855983712193746545261647796865106581564858591985143707151048720930735132167316416853882836300616495146692810719756500114940145471557060424032528757453112591682307272994528796199846414068485235993925676556871434357521973336245330875017110515439250821507045394762630782658444127775157433788711579896151378340172447133186803648865422659953730462350872136015139358072431301284613229145616276214584362757591937766417565333207347503015169719660701303034430392636102091280725467496429735054178450569593705303049214090978264003134038908513340335222301096044262430408544114439170265711382082130288146609840269321076179123163863121337695535134141099609352956641404711639595172305818585350939258378388637465538799961055516856939162261292205728620443171167770986756365195418453139518175143527540049239492582477330539970634179524411157765668839667281842742691977425839329678088072375799664775435057019294340687510671108303038217743632126825015369885576166310401049961877905585764558122745038895233444120750624029256884268646026561689495113168107776536174631796655145789582771729985685330049761851491966363713793413224476446967576320009212871907450483463127907992247806977987979646206779909271740993653576167232330481704654125089206697560280867719479518924670331133987122366099015950504012687626262812079679941446586393757579249328576925049778449587511671791582497136227700973580827980775572184402539555200553110736242784180792330340660086661524197133063218616129684562674327167468515690035959063026436496316456954488827185437306675011618377093597447897039098201025269215922314648006991000240901555391977568034687220877488939795319328919227333160917025799301786587434120555672481329799280116393252523641449478511040618632899727192897525256827606835757554741887395262664064644103821127754851022480209580495337923607536143990043158984544626107100554747479455681458731402065730281969711788632804801664222431550776162780736813836821672147843716571356132192670743275522347483233109863389515199792185802941692576359280584349005716238228961255976194267476938011075967776138832374012643722692307583950788843353195998365686713592489134810044312342046451510336205685349939114357873898161542863980517991646780558772158168886911971432833762571800371607620771373072986470986040142436185049137485533929158855665355560812730810982660926436811039330010573772925297481375542529649040665787633226234555099564901341389154482633020959079291879676683115673719152301006913501803093799363590031960110659406201801812706163056577358373601461241903540829642316661242455158690361006561841010847702281932776774136171642197735215492431441151909925820202406628078565680961415264139630530526422267992616039818717100793717942487726730259601406877525265421002810484507136240261169330124754478977288030633087256271208591042727942750291256403190067084197627347391137789750024095152386313164536484894876032294778453612767095198610481254351994086807622737805260800947177207359888733135922012529454651658655708573056496090487572123781155198649536385574915653049585575454010491128595062204592054433603201128756263178099190362083299553939465307803419883910858459539969915460222828387415803349752037780299260541493515476543734503987801901888417786153986688779035288680307838196332519216793262883228604091521850362163542646579677681827054343343804057699585131954097558380737029139722159138314749277681526454988599592101924234557308455597589469447753799916080636867396587703560493816833778288539060587594324650517641742037662892357941595432165962522250474369858080857427116116905873604423809487202840230823689096253641393990268842586209033996440857354769477857932430948264221859107798417925934847062609538489598244161570329066752198338496021799659605225295942942534567577638441373753058614337505034408444995417052823528421319877644416535049843811642199347947806818274374402464728188546935352059221496947094299292269978361628022555860781074767699903241542355305445492820742274084408521849663668216110647466318615596160751544303527992190503956077405885610846104862012437439255922335156899442050103806276472199622525354885127461077918703436511649175299438320601500134299779920638711870696058636422043199570838544431017102731947427586251781089694937787112575979586963390296783184738967638931381737261299188687230705951505763719605321869462978361715841802073329823710227105811119891001713782923209435435635028605156108350371751976177053667407209455437572870121372858241781896604054106417674994863959440188537844720428150381936255004697409527011077815594748091094478855554486675016452745306998115656300743965757314232682015544517280848310582731408383455666864761322741493423379367022715786071850692720399944045933076083153770658106129712784194963019897546661173106446076138716450962436002046526215604247877683845161270780116570666583734971569662235704656299500504961889679253776300462736922748897983475961225514836495865894539724142854969324013679810982483139489632880259389105949119009955707816181041010535052520603976913271395727626053419567067427123644875376080433865082001751494446615345375266736992951385814660920066866814725543346889887610704308432183060893101114224268850507102107859483982388230156510901048427529684611665039544867821828256865659829686489655336325626296548786969616888529278941410466005692562060699515664117087338222843833357365340913063413887095662747590757821348443018352885462896882333586083205140316526010728001578892208483532359366275006186261666638312797099119927327183124784254784128466743458221673336820279653218245022053017994039274987568415076183504155417757701345730279179581528084289396826108420534242254924147616419342026930434206558174607838935197426513230975738858780468476223830139163635249156928725379445900546498293225030335700168794669937053272147104168905913359583744064791419820618566653528692848685975579907828926270258982027228609063251194471123014516020853543724055890240088062326537276449250072979736310433073784636734401620337509379267184348174551278385741404617348144138256333900436824050516846966336670347093339259252750138935537967552425320276801110569084093654457057245024612059391487794726290122878782726466844153244374285768101848670276036783909395621158270625914229893983890057738452994332872508655543714719195970070791323118638040024472705915443034004307018061417825172789757213390979046127463574410130829188477260857483475719766260547420385188025835847677465760682392690157788975733497525843803457713045312486669982465824383457000776421398590250321706216569390252103821557260169480224273829465121773774845188580106431105783692104180906641348032024251985952948538759535273593546407899270717376479548864619584814064611107741867097603609696428562002182231808358601543790680344847076302837849344156863708362672788866016894405927914081972776987109341243022423630286390055532974063137588288405501487815717047943665294904704600045043296142691716703153604056488446808775797618864485575516843017084732846269409540702224420499073466120754173550602014032866780133124481722738931641779886146131364017240499305341190912947526719305927763323281428127078915311793056257402128030331145570244561871304711451498135236386537819632161328794576878488205116216305377049478269087409313562432628407961627255545987926389580487036901949099343056370173180432933276121180962563577068283615009610853163012260816842702888585352819079614294568413762536530115431347785854139098713953582008232249929945268743604583771229022923952200159672022337340515587761452050207851251250637738163041269368359937492361596947133754478254629795681966783257727068845549986444615339317611129344375911337336779142574235994071448082626773178746525188874301940862545700261079947060665830081745969266935760275569133849207050449262016853913772453999497764773975067566181016414874434412255726732388388998844002236765748769242152622160810393372547965794459828008680584156649224272753849616739306975883839867157459192503278101652426844872008487261077301833492491876096357936936965612583204463934265577545710034488741324297212300043550051418876550351283394613783673093833566437392507509641089729471499673072145915738377469791868820584391223333560417519333378082055081744046124208817548958055585850547974983160891390087568978216303910738029884421092852454031568076622125345774784564533905680841554435884284072023010625895916159290500090258700664195445679872985525321244743779407476759179284463884976489396511305055034008200164190920615326425727930184230984971336383095572892855576027676683114865025992360772350070148387627044068596890539917203291445177501308239754911997352210597256831683564681222747644490989661143393848926159431304217313082601963150062178028107317854986760845681347686958498805169603134311251474192151695064204647510242122542713797267737995745823126211569270422407081280036009218953336604882603824768113683717123616828707999723782948897849916105164966312859643099889447574450139208751952579059224362037842753093177269472454256015765515231733327834780704264186253060453880516017633287430697626104236316297863625213077697984865670534731870873810297273425935297255840087764080815256159116808430874145139265154152295076079724931003135736497015444754030287676869489743516269166163907482236715610346087525018873202396827383726194423342775725457634365167579749799096154848034049480883424778324790685582876003869527875678451402095629901452755017453165839256727744007040285280319305287605775922190961513254991216921540248249030549908765879829612051456617381688176701108877568535892608156013498309640690839052232312664511739820808288079587057758053772514465781359803189276756708676201737769911904844571252548165369969865791397066442345038140147310662941360650702298164417502908821304942749536893364324983722697965395873731000829931174976852866346411266251236603484793851082171018799543245202137773831419983308625233027264692595068219792480234896018864909493804857911376194302788427652214026299519939730400371947628992693458544583240020827388325061625954477624640741202201972654206629749748347561457809447859866704761077321882138843023029721600444733127593595880127498612658044325701080557721129731644609743224267028445096590430807916893278196057145580047823546641934586686107396046346635657596551317617649520451751433800977779675577004279086010862371587758017808505569750596249297588876461288980226028116373012054364731484167412235259761803976923452494350377783138874585446098597904325691924735604652647449730028267975930374073046133678235758516967465493270026937876829401853562245145453234675854745174816742656483372134503830050135572686019595584028527046778392852027081607156810618214609348424387109153329887464790463868225331757268700209825375594211022881715297257957309785232812000513721991143462926359037253503282288298252045357129133989453882204484631292926797703588980967810752985271462551907834364090279536403274864391699954593712061606372020220147079963354121806161862061419759370614661839099729743361145649219519163780639540202770743382622444783458055430056025093544566670874875655880965370758465584806236604222083043611182752455509325002968930750774243117402208411124777790542495348834537438369568077356665274440526109274019107229807128601940391356992420976730773333769385522075114537635313150593966093454284627024980894116894172710024136918619712317986944331589673162235135737757470309729608958870597289141561925915144997122116513961808015177169805434064830457951295621823543672428969926957599555110759871507802816048349323430588039017429761014351446775411044536395834603269956221678504045027430502404581636601801334347340440901697380860707728659131511201881803512508467305990901598552382869126777656824195392802745776146409527906783944559011070310639389197431743800602448254916425447793389380026890802697138425787175848882597077457752024841601919780666234645851917205158675209851094503933379662095603659321104505088134628006048708041100324424892325839000394194680935912469047248223687477312986764886310801211901172787651533961043639249215819138785535563819367817113485327192012272890126824217424887435650552217269102601866384967408421329000840711593208036454266404169031136337285609567614074802001826712581405436823684405571670564061564091430311928614562179103233718665680636462993894610962320825418727686253892948654513641200882105525628941591188969020037712098127219779651467533900499037641423051054805886194709638418649614210687525466438001990002969651666686003465839802398392140504296703692880026208446772425155515785777736217238439972898919037848258226292877110893291108102320840206071897970615711224550752891155553982369584767156160112529482565672917533040216464319199136656562804255838177449216765220066154265127631263053674516791643612946451114654845103351723541808405654029094373181891220794030143888005372904762255785088922952393391094333043231112222646193427208321269771960148891755132349948497263129733535326887073495477571406833863498621185874175611453151059542291228970533354848457863521902842407608658218794245596224024053695608376096327352992687204865564241264856633233701962969515561350669613832095049660341208403348833908381674211232242915568822255283681423476778639563645055824639844687768424877626706508069711998569986278675990944186380536908974217087011619158979136367463193232480986435902702687263885668197619434865267680252601042422989386547191361105043807651485436828362676955426707397293175521967100359157313672758553074730479482744419603024186219286313737739842362959771258514683714332002810301706374635924296957295492147580985453590351833032473541052907652292508567435565482408170965956128530319593654740580942296718043599952898952415003899508620492108566738751377918469714489460943940865991985847122156443440431105116403969461138592916091517071921255224756166947137221795314435069415246062763796719838118270721141653796978884860184172917778419422208239628840985291654503172000559365751227069580320598985296145754421735002756960910267994013293701482135159347789775197642106796353158846342565426878848688048085945008767762060832390761812962747510928845882828188526331602162957936409401295996163816881596322138180740715537784014935748921776690704533997540178267467673977001301497799602087482825149162169265775526717105730935172955916853879165824994385794768114598949540489943536760404433176164052239923565642013935914891352106997922960321040389633792977584457296471448843529942481214724088333171250070025684129194963696422724823213360476401735661964053310780389241266656305321368656995191200096107452980518580968877863888802668224488256303121267349740187460366824125510830695429345620039027038470552386008947919810163693101208711876985348730676060220309653279053270783822217401403747465119442160361135986347172271298161045433171031373946040153584671453967766379566835116186778319419277204559495487412524241229067791769161249652007736456984086867942043836210939738110983962771297525964514686953444791548587404311895020140784325600033570742467714996114964878695573720420931721907620885470668612050344497923701397560245221406727865732659825982904411814607903521436504912545724742751693328069922681151658278212156689581832226439072244649941665948484365698707982965754792590429123502765917553668078794284039565276215892578087274151959869939116891077121087167924573767949252827559844256645835270923767831651531578610664526130229883038526455711114525198745101858736701720425762890982300353628610466201171358895173389170474727201048192415278594541232829004666769900747965495902594199726274052014321345265672881010974274574971167641373481452910672118287902885808972721417340619983783661043313917116355633004425023742929771242713461756701240291383986368080312382846592614254697205332485963420717241917335632452271221815376166404527799587432836729510167744438610341513141156665377545070537761493991946360219986563827009204576310430292595494709338510906522181552321343154235867615635855168989460572692580439785983959882901516174581911390446683558051323103679897887628810350127046873279711557048777127298723555786397615995748481878661678273793654810795638148788948421320853377008918951147402174554143226087176466768258083800329435264402740136718823123193417442007960895946973378968646828542839110087369189267934279500853921791043813739230909870830181189235981932415456847960551122700848553833494657789204893003033497558057336002705710126198330738307091755210218104077037335095677116308961396561536097547798819868877722434155513892909313985862175965142378946878693599495843365279552759342672401826725453583192169422168750670598282148318243452889360715173458022176495189455455265923404513131644732645207805669001333564269846318920830516221591171423113475325153434205484745212200986872405638978049668283728696226248865851976946984388010311997707686254568432441634395426292093258390053706885375193888913474820581627650206025778489728727852372151298409475976508554966288841036245856566300123331558352709847113947753032199354083392530416277941112493729421591483909031700463523827714916975966006863652801705992947516939024133939701160546152604068519568116935538547792221565149286067093741445937409719611105349051318504027171252616042586317994999796275995464885902810831788183030117417817008150612902289825979263971969956006572731721526619477961812540311572792450507786137228630835863910821098050078990585028356010026642725646002818701509308572789768699656818555256646007502684822391842226387889269780904609984037745193816441609873866043556525324239933441260353544417789648800690210058093446775349814666961048326691250284915899675736753114450893848630287037219721277711063325005449590307576383214611186374184098857725674633403883408855690698344997314117532605554421464190757363452620960079400424601869188321754844406222190251526168038256064352018510840661766839474302220753871548415911973692419937733557600262867914911411022893519539189712687098944026650479411478422893163354719116607363679588956551187121777639692227511704088175541990534528202016172942680451974505482347137064255214239952101191440893973437718882577841068495607938386932919346911833184597563882315773510426023904620698884206554920171186647403455154275982099493938044729408773374509151473027849668915311475451315219256574782724450781399479708178501675376629197872659136454419839470021006404458204616538742543499253350694610697373841710128448251724959444493343966330573509449861642447241732225122980074582552178995428857541214463538659589617455639734634287146067642914461827020453284145869841624899155757451736403034019046302081842275183868900469187682034450390582430090858326189702158726504711388022235949104316502836023734891398086920634424707412920145054500304457391118878778338148759919909746678130896119176103282095684838997677356191884064557785935308500851584061612308554860941137173773393154436208110117324830589529089494964615629979247745573029454160832532833059277346233710660595627517511866753129830718344474086986996510787764370753617987980442685363990396529879285179549946926700309953075478704258752746057479783618730766346862155870030933036798567552855408743627069039445941701030201468883257743693172514318071679578407884568030672161170986806370976630410873965723805365021576967312762128926688076325942409652628346992063930949686833627957862227378613074677054500315896960629160275228466040216007327284655063888850186177588790227771551488116883106279502956941028889004560942168793122944229754477585685226327600786207421049215703798944994933122000863105310082631988186931889020497115595432162159984235765955156732869034180975151403114245946458701790509794086113745881951254947603140831646331803662612422778520309641980088634357071056822221535432545445113557465065238695720265015995413398928719152937448947813132415002889062641528665142261935317671285863979277533371719442868356242877461365204062854504068946785464279061699132374149233990829407623397709763803155596926510085577761562664316562521974382985595001360333910012401190773874989346580055447646750089907138590176154256412930321769275414398632879013914308087439746978609051847980117482900507490942526866704440356750922911931624589502482819322221058892287702636762029366853606087888219455007175619381005346573978737056805139319073402702997932581857007762133541108642406061443938956592702695888261684190701214985884263882976449996274180530993840877131063458820690390869677440231028813262805287720241407535587293556982356706078038690423676784210880940797320045587203663470410498756945829249116114635994977454412466881904634411844945537350810582130822134678572045990418835375950312304198659128067347463089978667921530484942352214084444071472692542137186800614494163115552933005334658867978569230236466523225372503514218609816076503230170911564187803313530798879884085633900472685742464905109926213109832937297941341232982481982675062575655974651985728243652290018719316376611322749742482398199344195729679908990690041539694585882253253858137216249755532063451755597800457918954308731588718343625192979584480667807939777678467954141216509040884892188198205028748551858892242981709346834569893245909665919188750384503004457109161215456397668238769694839716467053438772690133073875353825672703618157531587157076088846144598751883106157877973778935079996096505616077185520801672318155664088858607156123633159982074773333725351341634000880380238829956415326486126066471151480377406367479415440394920170368472857932677509859240732381854592405030433168070404781445839157079569671604682151901873857467419560974914349912170702220981367162283848546721530923416838767530517682392173318460430464760511487222669459799047758834740842805439938542164830286396843295354032617179667862818805346855839540176355736443304078130429584528927930602459523619044653518721333368558571968255120452136444156026741101601342859009133763125604185623532318963482312787737100888798557222141408204412095484128770865167244314270996342548416151082054353254563456147398051165825448771013725991543988174125984854776149595977290375626640914032325875728412029622462477122494035824930897736760045179661688634437795588751786596564915715757835297986749066943846668732514965474543338474607320150777873716339832558367922844121125773070525442255833397158731755362176806580789230055281536862716285063103283048444477234933975366422728956899573722059464605194321361267251082389166693314804262204140964144942098162874247266621196845963368328970082971514372053541256983466536823175104879409140720446355372360627240203123273369858887335109430789840720076578532488493248575138979052728465917004696262646754194964654555891456475664323979510485539103894591720617277576826119357493878136172496050516044015234031192713949881974207922945203673786337468532048786619544463208720745872771855793150747497697246846470795517978062010565296601523282805458046216076043486734396048671453056353020009027362447761835218608871321042235278592561418054176749155016653958771079434694942158899889256009236968375445666190977662742927981810220778674018796864034478122687064854206804878616838017682778166546167053800750943713594721916337382129714654252760896867401103971258469508398868098906977687624639155912712783605712098291729052660544534551161073914112085322649675921976526336524560452705989978413702779222322082395114164989668750551377812090300261400317972980591620458992155417417669472017728562840480839573456616939631449227970556955573343236629384106655369836794967639054644265976517960366670929648316447157765636330252696510557131410529854797202601860881175951664770198548741095032623165111604567205997576869502449486807599981149239587272560304630049017979814519243411384569269182397742585445588185663888041815426618785179862687582048618532768135674213076513447789849692405650981289562613500128525298673052668858078195100490626269724335536638969162179490559460489691213816354212190960574121584296304821765585024076105683965688939654559119845077795011561421793409350372028810047953204579932224473615061744957127557933997949452043352079800540479128385763804681630714417069723797393086026644091152757275178047736046249824538916315854499368998730974580127358721740872193008037205796656653436017884999146027636989598330933860796379852033133522537350996193894603787585578820079822264733997541922037667512075532175253437759550445939624257329250164652128187016534252964105899738022523521625779819272824228780250165479745715461894709168669450051575004389626538466752500774408184551658080875082966913623191887819390820270436192270089724863296614750712344453927387408331415727219926546848355334125516321308156163213780237150468764834197710230544154011032991720347447148521758991057846458685841880952414440008350501088741791189779161659734823517519380470631818992626673892700227858158920930098263634653600353112872970317141795532399966117782773751546624870910701089907152932547071996317702771854537193322202693590585733287957809924450270758081411457689143932569249497432565524708546723740038429426424374261743293179153947838784545045405505399529008607536191396165102792547915398802685431667450622895211153117531836492872327796215982409780604031831579411810790283391138677170456295809241745017656153266036646526327565799641641584422266284348094862034098786344036219009819683823744808101617043295737548744606330848079590800672183254949003387224646871193801449119300686557956371106338406336545765527782599878148869230156965720952394953835478964424930994131384214854773090716454188446035078373825107442804619785861753803147798723259370652750457442874673035419703769836177603491706438539432409773316581955990579531598535868777528578274949586114734518615319901891041819624987054645956419536535353206236891347309589319812878780410252674950989927204792741975163749162990455888742183043085498890333320623764688029201768980634067827791829890382887614367672313707950339903778718279260563453992704791802142200291102575859709343663124921052496422458473774233842641474660789537802059698568891898241012032492036143309423278389206012840124033720211950097551772924065030704392654988400472980224428588723845714549058097904298382220738987287086736466310552177099712130492748074636950804445564019005062740105139129169763268980648184486381231260489843097456839012620838303550962729921557352709281065922027735458419117702371242495534540332856675751162422958007090100179115738496198582218127664039810713440008225391284130948252233695425002538849454658887765586983442215778916972564443800919648768510879683138206191508702954779339978687780013485398421176237745106504674392201683847319032215342680929895929404837495422012638219980171641420089765380313637971982468916993283846637651437877954986250537703160225341329709724700262369900540102592085470335095990378675585527390074974312370117473806373660607697912847388348517198615159270028364862481831906356259168272584082178661335008134061593395443355226709871309791096608192635116305780325711066547556114831193033341584044588955531806967698387631093292368877708416359808106145448031503245515183700386253319286130083363583793743988578967474198437103430572949662309617327922988282527850918166473011445687440872582600213901316430706562394370650505077154699760380997291598208756294111884436097942425203639821015265489425803050446008341172416111126896332169050660398572674242617118299663899185131698825443193263332642924481919430894157862170708561751127062972066772762030486812092268014092547499283120919070289300159342472715040068756722009869106547179044647042444251741171175494618416892617085209490611618184811409944661570966027164644883405074628868083522056497907336948154971363523327686324450554349805808283430965155907073559285835504535127403781468668516569722537177377244514102421855428859301386352116328568116451615177298244677499501862826724130889828774944614557422897044569677654554770217480084730168355516023738425217586540143100022691785206032244527317062034749974821018144749146717862357023399590608356061409483795892568650384111661344204552203384487986188143470287916148523612926105516287985148161230747266850064468962547999015146954393451975336777966241957582171617155674326339515480841197774309813844019524681455162315542620419539507839444400400012266871025885018615185840455200450058870040805933291451999041902065591614945454025081228690581541208283292237639422457158011230998967906786315093717612392200957455218653585010813866633140991128710081484514075952237203407067210168980886828416443891113928727028324065632308568392942371004650347606572254089555821827059758480911392096667984113929659619136953196921813547015751887828119445658618279134833373683506670241219956309513586740534645739153784498045129796514382011708979087910365984264447925243199562924828184623248423183501465300349855660400977114486036709203659438580101101260998187286883873621974443181711720602865910765297155944293534349331134161925983511767296645671819921864086858435116088510334569491967274106484905601983564878929869690905627117397746114853576255694800162103818789936541474710437494710484277984465808169467971777410576492136484052387490162913226031666034662141104818711956039010640873183516952682002094190290819228214703978652160837804889440967975667309681022558199755327947892518746724526079872835514503968547212275253020574261882469636325636855246374961902014515709766589487213554622780998526360929403039186634542574933438254090145921459587533900263066891343415552193293842806075187366221492476242194129461592050600164303731417505523867972772306742871808447250288885649859548660603912592567654838790090948998200745122971645561313633345840052389100562765400630527857619763465632158801185979852545261874546149898736839908751521730779262750112636362491761537323597063439687403893192513728808199115916954209138494756841700305596055890110919528064945420645700979952499343759318961860110047206791182806271683892734410504320527783750787687851061310965284378468394591081548457400257957472697418562923503224341585603324151435703358756321002237030522082578564760413242942285214310071671971431243296138371044575652439322663716358451523514189029777372984858979988465944192100305564946336399556440500191650653197106105306952533693929625784755477927179526175753217749088257883069698857017351966364442717056245073617555947297128188104731064955106450627335913508926641099076484431277690319446548964399670105036525744961876510656259474845385922450042319051507034622050933261785569760762583322870114107221973186780373976799701601255609558444432819744321352890309099535605187559200388823728090104347677981554544474704710552165165612217043303961853139413907543590010346369943286453797240605386990577562698548035458386173650962551955728777964301690455558920534999570794180425034739061832590370060005270908999401788189866719333872371858205482035752208028186081176271419159848964206189638184976379971708614621248724567781532684608694444616733583384255871527248716281980832471616910652578138112783671634774883971358556428724244586710775397338088827295106409217050981424246345787157858666720112209239542091950951072239115545021340512703221959377894607775672628846874442155405292493561609139685997839330126854280210523342119331325899979796210748311073205088099424450118751405993527192634099029025235185606765564888995519734977176895730750881034422888542528587087117919569087482913563465340415826648386181381462220751927753236862696236559862390903449951111108402765503495518476558557784030650142258555063688931176250548080642338788687954600707342960766496861573136437227638404303855241307258939246407835553333489120423765557699296261527677685151602764969957044833218847379996740030532040955560052462382944584742727750602275248709626917054600744382192003837645130619054483130898821053004496113920385508343281777041578405969541701689547492702114899342091823716655543478403938690268912793976729560033509586647525850019993928534503359403467596814816549766168832294550849654660359742134524296533337355370548697168880354006570638226431432288265250372738292157090501947075590342547699608943582554401024922539856199854039537219814053121424989773036177493917202471108809499860037899449650703373802390606887544887386024619756533424098332215021340095603315136083424315153567757907238051575579529086873176437996925078595200549342032672394041190033257964558282975026105010717126058962830058061708590051060852027140334576046299309178917695277711206888479056969411449669108859311035728688361074039316602804335220437644795388754413580227158288173558808110453283703445159817723391401013962323348915096940832342806660300179346198232010390214722364839868907370147125639268339517830679245177099812700461684452883779475003128959537776642830517455738313361876962642876024671911743526678866259969108040419913067973801534924207162277194385928330343438849027472572784830885306948178004124576279838399350770660848057176295715801287356406501447095540706316722096958153067910747105887128494113444279572415160376301815915505299204366223718888335715665539006360242843365137663778731911058195524885620353195186804101652660945843949583204776494956360032856240152598593004855225870751921486892314337716712990928104947209336844538488477981448454067566661245505516304710956861836903466004206752912368010954347217170702188720171706410648139098531500549723081393943112940788871373284067206331677311547353511488445592091826327259853695224933057088022309511834601140209478018409343283541766348809525965347976158871111122190577708646902143240732852287850745316177652134867211385453016009432183068807465231380186459889452278274147752323786825185592793401893496154883102948862960770469629868043182107171867904867824933502221102585115560665203207789207410932264373490394902414968960781385183695757611820946817710198478011984294578075321238546332578657014457932031113039495343512284408230881197286942475858007716160047037640801360827213965682455830105047631179118100248523586460668094200990533972058156865701872245635507607412394739910639818271964275767345632868251397463113291164590111771225415834657164535499235243744268329495155050920897981723401327291606427201023420260454743514000668963490801776960589859138368925822614090986353487471620102633886504243216814295546627999428129269276791445425265592369576035836740947087508980660289851611017573577334173373242105930954146970670287417138287972896575114358167738888807880825579186940999034938748569049047503949925904672903732107411252541421930340589970672388890506851546623038603137526456290082663813927314982163945302289133935214176540759924617227767309826177518855201599495597076808646638082198203430224185516440867667378851902570359690355145540897118121849810501175221250529172335149790166464536705331452151060349262800799918219260345978259303486380589701219932078952842932549856553481322836919051206857305323165397807102986286161254478002574854393523815795317555243038430573814295826613437507220002966249572392780283405197831954927465091821533045299021184731248428740367519598021986345505915529325962865224537222613975814065123826591810298815525956168048071687965180427546439745805826945075431914889677649741257710656939936161526919503705375924797084115820843776742647722261464410701813748868474711841087050529178361213864658287994603587173204620356333661626856844065330914488617272709657844857181890676290525752906881744496413130926749886286427460772656672068006661776202764051918206885278867561916903255550661234004396873453918280122756237487862844907835562937465904435249883417066411880599592834235814836733466033882937114362425168395221894788603989246666741506123452611785933558495062546522029326714978558959396638739623335358525706285521669212050158851555000657782829581439214865465143216192132291239503498184530928124254437181770683424150473933368069492785570357756087203764509196212809411632544129302476773464207415831272669683508235310698315776475837373880870879237326380452590556296224626745817249569406122600271958431673097967291672829353821680168744693445627148208722683091055315501242492931324520261539441314957881647128221963767313967822288332956662467715476891021763994875126547132872860078010175748064889640443761229817600816213839655642549161165207238280154614369288407809285744258573524058695806872523358635614570021737991927865304050993820741306200575097376745020710616855524001571167857970068810338929278019262733187602161523509780409603483473502589809738513546426243450476444738020371490541025695771484595208632002035915184337415967415651908018216755024855859334791166880899277250919001771178100870881056583403318596086422292579633899565859797121529168877482045234656310069829698226881713264796213865651077041960654353322285637437233397480512708105746076436631055052438222117134487138207537035804744177434649406308422158645478183448126592578865293976308998054667723454301827228705406517761387759903020299632869834710161869334621117434422977803159143519087563928232907332371995497608722741521978676291108139849000473259950047491453962632687704223349739988104486557884770149725110680451193709120604542475454162650575150868863163693347052284306369914735517403302479638120232456658075074656694193460622407245382073631355917916362602300555315143480879883865958706196390422923283336530514285607076041580783226698143947306801926693511380305716563365171054930375182936882834540672149880759045314564266133258713760730059402213437497610280833598988669748888074492119906415224366938069229348150858391966101914502199967234751825362202650760598285324139140826117085290544031126629164901290283046147949958261447630724575596344554272656189720220105566989813005243869588438978649847783552868069226868519775939756504269094170741678245877468174762763720427193697844998545892506278187530841627181716919817081316724431780743178919203139446928987246779259179855697036862773408780704044542642325518417537425719930724583723099296080002808073052009961815207971384868610552169171039777843537308225167940951460324285012269175117265070230207213389460741544187154717954236312822786439614570176819954582534528589309994483305160539391136167132842344248588660968313274021511917171024111005808661548280991112659917930971760673247813720566169177703481312618413992512768051718869368781289698161983724333575071899747435608490517486368840280958126169929733241185117827707105200756824983242761899403053609693038193938579494111692568924379731026215673637575759639351417243217150669386114106602903385362331055260551227154283457528102394815414136942325982537531818550820571096322706548864055906403347808437091848112238716334502748112593220418660122181378957736081966847119776431980222815545778887606302224709626354312849903959316095744919978681106495835241381155276344973561760929727227920374303962897823421576493261923283604661746568862562558407410812962811151205857125781276167897949137541570168980054345329662720899300479932428585322708516158938375174609465630595278119346538091329733202639452653538346702812252954984210700440270431786077942333640589957529969875994130027047897266156279899138639487435039194240404534214094232454532301385594230005021869905122418627487366464318888795792855302115260329985116784067723889839555843162304319910178018949635531252848516890367126072673314327937847726864498378583875930351055325557529911760216740081464118770657021406909885665828952995564838499297104794000068790770702782908846509840415681531254083716941939433868003440083970245555854733900820481260194113604623153816862040973160160607914421385229644829526572753554470575855549071949716798527195873046240106112698676340773035786667915160442599290215187659321232312314457492627849357642418114017134833070737545330501010258527225043053266124781832950035612230328743032569669990190993791020491135865191412587756663074800211766507029687497019019208132995624084759575779204530999073511576262207516451306209216974091352233515153788877032315701718295731151903420717339394634655344798645929058292180399477773054932175950183710817891931987902403021770600429532931175859756838584237401818452049081127171971203267495833792502599225125144127764749990970874345077319821592274828434699541129855688839692763189861467041065838996586877354437893066707272280392676009824667939432474921705717752024764487897024985624933219731438981308173268452851169737632516786449170403032880547650681294319216251540225277547227592248692050797837986339338171443811021659924699584043373789201919212729104288765301707802508218759482460166919838746635632196789011865806961328862454320841888365083129688674282413411687439992706359084510951195240062096118777308919779717246262489424896382471165591906349576730663419133129741457211969601478980918334484757529874311840007388574935089984955573684188798882272973866240955262354249798201871535166891330350097583348974769264259785202365976427931057658139642795653808722333236043209295633829378013569872147388831003544149588772831168527891870403866467890517096523987202160544280450861201388412798484657090603001604041737006170381249971252869847602902394398245211250703543694321149897366907705023052964484907718328639423285273086348829927194171871522929173071050830692135241288615937350800323872422524751560595071566452413748173902322161844264615665522663442144228572269200730356182643523791246078407103015032490813524224842368575024979588949910667228027597695825009641668846504340976746194548297229691722736443254011418345933489783611143912568809107893610247685533234558123607345828357885316231339005696092292708845724103616458990792996976451097440892165482206529703754489988170584641230666869336303301453904249112344084784779101615497357976942986103578072371578211315224367982954324427670358625621637244553428721939263878835886577728064900774594261339436287737291359489067024260990862402273937300150965807563834200108280937878047975465091863652804890013845581494050547451293986892412118016212618231919995143679719301218690062947425260058225369003860776375946822040612348262215464282212573444310347916459681691181071991403513031678108147469745408262395757061541407413861230787807857188862223648685581845516773676422214577412102358451715269466555417543118323608713737442498472335543736461954555147023625667004351461713718520804632525628660350960259714787892116387171575004531701552518125458000269333460375305020518666934160214179248333109131676316014120523043404803196160257907771769990004368443742084275838603954851039151557058436424565813284154454773332408386137154715993380076571677843945280655869087885633946521373361689181755030355714435296590455632734240003888189524874448631004393117521391960652138982424817338372918415840890179698090715241977414853557489392743763684280229946393690381331239956553721561076624543485332034673385091296778948925390458461530886409905027426953177780841619605411639509539245066695763265106141527424549199647547567028320477123587058361012100813628715982594485431516904294669776225149386786538988011136837846999707089169888380719454382810113865991176691925869800892780718743086624352799482386574199723926575387140853488395423265437260229576442760492958771956857550064450307366911718850491529516827421531905207702192834649202960449723303333281739320649042237557663053430712740879672262524335941002583958730950898291797181895574910165287623426891557527180960757778587948122010998494903745463613805384570437226980163962623539076821850649223625744731025989221163311522355455383448618379761820111234311977702643988558078157194788982269768883864201078093524104304092852313723562972938149610103310389078458965557369558320969016546735491034789439198218291726620402671280398719567636154433712931367199010418366697944964593722403987570444333335511319587068036185759783380485980420134757851948160337681284366532780999547417273710803424310092712723167789421216336488892488815750332849206116747413675503710828237590445542898005294687215438223315311935220287626789297865952708303340076863310936784884845247385038755583428198846192189815441432303693875644269128976706849829185838209337919242778834097062029729072494664716093952100488897011637114101513541324118039419577601556301486340276158360619332045121092514311314579546305069555149433824935116237362317704467978956744727849379178173680766184356055534190035150610223523298176337602089046355765338072359824622557681083575975603790809877691498434729304054465760077328382371397714595649406364238319782224155636988431903782177435207868988699105716520802288071127053069717695447676793893821634131387698495620884374235784382535679502712423953478787099208898525413365126996625217385777927412550895756193282524910457868120507065329896584861709134943865660752424934071129714861551573926416093578844040876548604065355343099285543056956900747036613446096965143789792450902493030401598425976084584423431300037982085676204611347936776598902836357829714261829046552608554472198278104570151535255320326258525102755930494497666665809055092706875939634061878238572339067930236681332379138527051220331600337609690672359935932536890022869258424942840798335413835548226854544120731046159324162595279849471101790811156712070899592868662949456638879644358175127126532118366190920434539206653568082114640140683128317782552700763099824355861706941360545549436291141685502311606110974692528421596768317163624923121386221804743215885123627027433837711963857043123177063479120444211375478440681087451974328475397296096541542539192872700532631956274093133074938913521785420031802910241090343448849583094675418757736961724329552756103741517700959386538232221799822369293133976702858204607966173184903847526469992312812973045545399315549470779004226829760840589772578603477531406557789524667327489604223831289303229648496092340284015809299951729992826871543126126959029219593466121799167683253355040485051017820267268490226155643037127113045513094354036322840522189457680908935598263786259659598235895272243009054114444763006361173346261317764831468162105788103353803942937984618494871492046398551146361311332618050482627713961479139340924335244862042612235636243790291230815503054188092328351718068963506850948298999711459680423552579381455118145471391606725244647330242914459266272618577602112443859105867517423452624348306266216227001189068218772592939835035331171320269855250254400023378512017846941872111523147148874139712292363691808790185327259736964619429012562175523616080657921099413783266617920591945648019157089041250503692253167073276277278198902410859428030048468051010758215835602509502080974668984379402626881190427719787153514964316226221979935105278923380062389331968866975705540610655845617798959412346042086085328833492794520108497899780689971713011941424201374111473310610400855534297894475156777900402973756495124151926574045239958228973432267460636402951095783881180899306033093315081486044826636439357018025583111338194877284444310960310310297782638622772892602723280592081222175229673135447272878214098107956283630512037185494688916807836676136979615027166279833543814623086887438429233462465214733896793331550224196841515349412096740767710500863416502981105018497611852584072567546579738801220415122268044516532015532633802477188260156624606500543380141472576540022912872570270340332165881741017810972751907653062876644247785443207676805485720217842360291434681514261178109992114810959930171608650341859020131148626627750794243872220928680178335679834314332639001369238133367141194643045737098651463828254350097613286172129024943952167786359205184877233145263511196902388401269882372311813892882904493407946958506683454524323398791350435365408828314100761438708318383297509690666813459258641674474833441727353333687143257242993026079438130347020245841542416085640227490217378979101831930781811870965984341869925504917755486196832211239304478022644266276322780033784592494697444721941425058658375280031150610854385365817947390452083386463665625286047998752742226222356532710252608620567767504298533050151005508059173303736123601337717054883366983803212661705940567130307130676722644743368627010823820686334100945626296375059224911978602916246764653649455416876136665272888468349394292786405567462187182772278033671068897462083623721841313866953222626005816981347835593107740874988645796502547900129642577844922287793517128648229427237303172561942245985850844874943231480187481169292093452321104456261717645595292365780737847073562004153067005527396525008702651176546452728206102949768535847871579552039153464913811444522217216896857172927522989600956695882555590429722870516122467375313334324867950499080147731441669745512324996845337918847559191004982723497026541138784273003948851855501471732539297535754451716350128861108885057395028462995471484401706936281389702009236860305189582512430016849936997939892877305771783316627648981956443424956362875259274157227305385370608958237771226651085859867622610239914484046126177517444426027183324209745121100521348933852522777262305475815480141573957912976406096426850336184487314098246597543777050888845125211013142866899306695374786609799915025201178242372148992687930166782506156022168937825540189535592786144829153875389084348246783339769855210406075706568316753204014249738283548107323240172978237150711255517022753771928204956510007136416309342508038400484849614754112179003763394545918329644414301884559499623115523347337509505272238829965263085020426677708338392852825124197372782617249712885618554098130672875748557823150770306007919211511998408676820632386818231949469757648617682537644199272339947001811313215656272491744222899698642532867811049671897554254884497335303434579386028258366627022737754234638209579078377700043217695016068225746083204806744025323540915301276289436165880054696975229832167300556830785537805779583109873980160429593180782336354910442128409590427671820818758060329029470216574112641279039757459357533350105466232367429055382349330030462250322079418008000856328326674031788526256691110781566839572863596984856662853791850333990989952842264607182999666087532258579555455179308526972647223403527077041458243478139726763642562726752034688979784324779016100556571119050153932010287506716093983455627644321249499161967050407960195468804777687752853379722934907428591923763542176911214803568251523245488609007605774985368698658583620900688427797352832342448622530366830544828695624805073199216197733170316819882899202859484504295439423156087348931004509545250407130172291339750428377235428527734516880680893040843407584114113241016979983541649129413509371128606198532495939992737357541911053940198356710716406014216143450033464681900453505220372750304456344443553130947550603132334928529487518540841131393532569507262422319169097015814356662972241501650575633107946294845052738026872089061309094174605970697080944366713119308946555381309422898107643969728745285085830018098384915519662097718667138289629957212882054693915964026783510833474855523417669870696773107260616320153663342741394841683729692790646539709992682547966589867005483340801629602819355792997921772501946340782113812639966143538198320260382017726047837100700931940844987574315387058756202258133736183593093870226255716803713643888028035768617839353633069206915900172235006057276740635370931460667290238265938766303398334847943815522342266104701019471553985006918905346408253427566500096144244914187381787531185063815120445438594835161964976011550944439735631375305733280268676226846625162525859041117965856564721593851985795848868512432226641014752770908338698372019168674947339760355338724040666883629779435365876763608938254230157045052466950221940950815406798329978997267496676935312395006426484641367298569300213386428280428395795305129352845571213482015156919490224145073664956579100690413019556582037217069447547484912975948902561742397297667948249797772821706558540060850419130519754944978741996771083045775974086450191017653866855977625791277652676253461330515441215298302072113675723738429966545867956619960021030811364461565751098813193236783533054039709304988738951311394196504618777129578395705131029068426056042815226577346866221997693045498732187838629230575680522696950209704940164047089401822369085513787930315056376437754872427346935862687022814369775191421332760056294682874053486920847381193846809948664676420725457342408428498614897836967224081655170771250485328980659850091974635078412806986945157267300562569055449287222304646452987784616596050352760153378002470042280398272978132232910049882098261691633891725923695468478296276783397492821870934007035804025360784990025958305903874398592695584954384526300463346696543803872336875497517711122982405772240852871112068540953590793607543568767878861445805211562834919956054989126164078040107177824302295510280435328286124007678714126385237231297290819194466941211334945117592841217361276304946954314082339067539150661649885489404567074421339962560038153303666981672783066748249666852265803853153797533659929942393086159803862578924660534640853575961390534279500743166474384669585383460330228032144989917997384370055248849102546052360618796158787672252626068541976975258705944147675659606333314949410916993648045564369252795509925603359198075895992894503886718963977361723204321142776161035073510440782215553321002232874938123949602256915123412311050159239868849626693734474306455845800183266705409670725192792488942618995473525540697352479558535726731605535864994818613294501370997628902943933827422965151153873280255782540147890706251983260643386942900243358545648299765533232004454218816157578455056859131542518952625931443787617043823743813317971611455384709962877243425915188312704861432349321980514627879386241904911377246645666008134950909598111782830808640556321764168645973570787509339801687571336919567167927876726053519032322059486175476601598686479225692785782763935832487083877844663558452593118911355806353705663390916522731226441059562104255544531198261938880553688125295428598744108175276922779536431753849515609843076041675371516642877380285401321981528959843856371515984846282454362862997331393354918098827517686367088260993972012462815980764905257050449317386457790795127921222983598971324139847118548461236740144029216235152738112808907051650056559806436392105772588244131288929509967126391919601485600172815970828296367689757725427594122190190161484305204041856411027622454562707245736244457872211126120086454512053484769127132983758773337504138134157222051197511387374323264109089385130008423457633116333300736333902041425415415693865738757353759480014894779935341628652142872981158939949697937800333940119118143074432326697155800495267692107361108627047353776268715433831668767628675620290310302800021015743588542042066691605474380783820346573442319370204093699351361313555260177084625885440877414880028011590567017001547057252631827977513888333352471421820454292963417666615062397137587144697437070790827557422049790607717264019338776603419488178803469705231965267364381908268209553519959345216998963579553886092187544905080421919714400399871611299647560055262136208830870754142156522641763772852766231782256601551736533751522025679917300358715985548589675134257317487437215384843333084796998408955451340744014329779934110251165578557158440418211128482097347324807519539954738525048371053592619785899132299308835098835854097141442960832147632210990017119709201944657070672447223133128994155054455513852267913839863453429467154918014976027844834540267067583986166824793197034245055741959927157416715969625054347461745901900963202736175603742661018399050250797016161085443945239269579560465812964478580985756929882704797926170343851808822749690136755983530422956312125908194385948390355787813899838314514717460897127328541699615757824625062459452744960724201312675896765863762493001491251769748037619970454721096629888885226190917098345667452007490018067363748588715574636689659154856921016714900773550107268656877613350819807738399222789113309347047119555951290567258511756481060585265298377246038423845048084672185420534411455288994140936256272402450721154636705815346177213209273623534861885139366036035860608238397318607981391016289133434452132400111075373603666451040809972960851611455282253230723099035053642097090667912644294771237642276444130134391199302154340196331144629369707833477872223692391566390031020798396157158175280066037264520091899518393965313503455013453047651825891045126834206216075910025203389162104892365421744353356604729317503718809004051445741011202408117462727211321652898425440002210689612672666761160454208775610874235712418716054772887650394644940239140731486358753086216892137467323043229853989865316150236900889210678424992609402598817597120340379789708144194607026831347534094868182469207217961722318698584719918750249841550760172353263726200280459491268328868025749412124154341019419246140220932586237063176895077648560596184027810430834053615098003049427592586123998136834620758807882298562573161090194243755403938773204503858023318587005085240911637322169902431963635424166405933502815135931063012317001577639776946437512975998380636744707699336811017365982748199383164435508288389684492063200683619895250994961294158999272972717039890440710853449155710639215169549061969710487712517617750067525137416893277786649185912357827301745514722383817725506093037106454079025626840395222545081797435257587315566195176335461616013902852647716841176385029461298442604203600365131908702098909907589991160745070874583303602490400009792586964947585377728760175201652296674157555219585042158881557406872619325407749294684517662865033930004199868423182568516323250694151249784385101049011913902947214290177478632086958099909461908037467744772893672626644367211800065941939727087281324546626882684683372365524001397570043520204419177151094527543583998009878358585029015792399464218473193342465961990667653811060738369750919645444706649558478375273678570411052422550026150007878408020767038472197927061463773122155881759094415798278680462562031929275573109531123634084330698460427075031405900007169626176958028624959027677081833785313961080389099416595028994591248438309733645715794290184899295660081256884316804202453364019846403960038982115416268553168313114726236289146757317575774942396265996446503410511826348985900302345310765221795684704688588276680692134867422318169949849950086961393605717075444374474618868612904420170289877807435492381904242670368900561671140046205556985971144147192035455266280172300781298098852773069371131613192942112513430108355191374955134224422108038118299562357857575347845316330807009247402259983314601096753879143086842067575168799928570796201846085256877802225197281924261835323307828711517453063741333856600722592800112548889766773611991529520626820791814141891019036605901211021697417370758632372146671307350485112831602246040310530250562234613353021820790342608167341895476919775129087551410944775641678587110912836247212791123906934400205191889615029242279673705282599508480449769762650007808800614201326549166181538264666974328903651900357659882829569107964169559086141949996411154662752086319861900010968976036760428311952652751837010410805461836198836113192404618424022527343485474076756241330319526851603909456585261332483752252757497093659007401751739187073573301846207979272456698910576841379062133616512211079874064300419820986293065012594456976415744857488344207197019496210149588463129487911498447030223020548858586979551540688384029811714865477982213507404109245637657445365629504306009547115228629665843821905152608584418550746544266391016439223764633429061961411265622964395222624492747164104270665276357302673974400883875905840173757196578450880445936142974033309559619813854735641715143140686433305010523772706475906748895148250688080567579200859703648673348146362485839703041573135971513030228856839374178521515445378301953529568878562881642579395871685068276628410264975964725869831505537063229266769413907343262171700507408810438609015147712472656686381087620245638918048109449922640095207755547756395694485012750718227949931403222139902406702743544355664445124003931044075385752326927580385201689219964571267111982434910525090707871942181168061669391797228523512665797047019947180194272407024383608229410695664720930162382690493415035749876700791312689484449538472094147959707936545319322873446272050654615034662239675395301729813076068101228103170500043295090919208972278454608901819241058902999784717906570315626495942861700442314767169375807696060921188336171125937377350907323744872017954036622481861585795095077867426137504585483107541434154945290728951510880000292890418405547048127598551866327922982187105632434208198831600076005822199808897651962350936956974689967857860775551667602914006770456461123922747036275966815056014653105390707774453581352551591156278034562854913893102564101821230083803263044896955176330870654941074087253574913989395865963296148688984996472346529326250903816737857099384227443491217089541856125302931690331462221295550667467644944018798753801688238174176270336868426889366363533084288564923863717197607993220602313089141685793728401712833943471640520850260801102949148289372622737819109076437732239167581171283916887490932562625523058099683945434739822109716040858752047415493415532348301674713482484569817880060491167493387757616750921502485375980364425543305900190016743755916074424829810868998298471005502756021349772453890322149664561388369145693343474459467599738867935255185513465507361737139912381413083588639285561156271900984328933755251048244883570118245916303050739018339799523576885067775101160809693744920692768877054699347526702599190279858881303234596225375178588592071353529274188787130830410690969081199950372848403138137739097523260990999463308098482769560898895114191102484583915986778209803687955387481780407414489569820467461223501973651110799162154734339665406668860808216867295867352159752608000800871220079865568977438499360008397918178809249446113830134865161327006507318722025503022389030694528616631486084091516547384397139165723293921253664845821506546558929314141574873476087650425652210007555843356257353800261947183976227420266674565180909351920184145785677480700696106435142747623719820743329273496348222122039305983291833645757311127434543895708473223936612175413260161340288228507085554750139899801434958197288761999457716018538424775046837377352855915106557597907892497304607043489528727641105491231951117054772897556302938878834878327898986132650270114593120739381649741491651398318462852467717145061994234753575388664831162842989696872870027477411939231395695544791836079672219442988576672392614115013656800007477791407905885236712189824149673953928184523604430489214509641281596472745122853835802646599756603079391051577463265072758371215242333141669723609399913426955084871116512256079549914721767669108596861510092736808013388351117541097235878638483733768994626477994829029490532453089421366557175962886003829781976455301299210439647114267827134294553909964643438193979434829581897424312594450275902516411388962543948158225587587371897169412636599218626333223542654069567549340238732190740720888686578522096466672715097947569791648103320002767476090832333294157908751637762677339480248343686383945718434202578929553751139245214513273440996034474671933733832563350106063031766490554002552733196258062504498714158732917756371084874254953689789490187735801651037177379473653198581672959052082021699303541222387373532443674947994577678374380074887211311043913822258282810023366973762013105158934627220740191541567642987777987482002179967476323894043622803144543527144242615235403694538377218956707618950956493103679131580994126107002307958000647571780752537040423639991672509257079960360978814191407675058360455895999095943273091511153888256162437363361146418876065646828952636009488314857774335630087745462964425109669760915527732829951831401526572349998041240145275831720165952082609521840461484498523819165810256806924111270933887185191857915475240205513537243270798852519629326432952081264678619799094552971368807167168942190175950616911625105476563082773386039162817164782981480862069582680685860998432018322982791542454497522302935414420302096092467719348975671063355514712706248062442012634038535910288454819471886138959939922806781097044041804827678672991843081096321217478869845373460690389796016230607077506900713614389950956846766357478528379460532179186394031621194982124002290627190832603108980932000444830849175538726962326522626246282897817398069483285980949983740052797785953061290588805183390530375072902684586652919954793301295935637830317320534714414420244756964933549344936859278645876227804164853207756732157498198371416342145374757334987037567119222886510080550613189053026951239151039997607050528878352190019383044187509254062229749795486130857395833727295717391838542316642240220229962642755146626596146817431650307026727172571320157175007212654820062166025093808814029359367492834756013856619202962996831611580358908119034027243765192097978780798888230787903296531376696406094625850820885996378559821525427423351059559637232123380615550896455290276208966998838847209335627862763065660658779127356586633386460554728016383273072724305833498145873887581743798170451560253168805336948024656277854910539183372640132820104262174916999394676906004628731108211057606345032707830420901043703905370204450598719062803344187491235728953438694768340730392996003190567224445976499110884487791065201346278775163610069908193236536197350213166035589567905363250136222119408352605217581375580953064514127794214501953679788548449250242452272018973383284456334478348783798725791666789287161017722031791646502391809876881098021555875354659024008446972711036438286126595174155007767475444745744052694318346219165405050513664334428516802934719109334563479169449759421914623260861542566816007166173865204220546796292736283038293404270681232909778743059488892462846148852153568111435013951919064364367219885001356407802295498501611651570487869979054876996801967823583815266292901253534138030722601720515675520535149452462993065912095254600511942472367895122296658856981011941868065414110769373050224646854389770833599511028705039241821331517192657334500384855147735097451496274760065802767998643508814099513487351145214024276603520106400392684951689853958554084080494138112198689520342051419413020727814714395930986390389428390307043755039295190696620652542508588035117116790220803934585640337120457839907047587630783456014808001516662549479342403838798543714510841326536129253083040337094807972327172936424356452370301734402647853385167326732332730477482923857714997941069767264915184797888461188005266184468854159265108551039209069134861039433640443760206388553919515759187546589971164246737051083136225735768113319634387734765303394589966836541193541190950954214336415387623905229386756295229177274383386735932741747839679082780127583483429017969225326971938971291641055994546150018343098067568682213991425586991784789297141027923910287149175168754351887251601573519425534447234734504908478230159686650623239481173009527266521123031432857049150690526657865610480275850399057973576114282974420531787678206338504103151203551309051201366741494332897899229928658308949090288817486859565368705598717031788801609553450353910668161396041824176406336000174932196772417017667149734635474773126835325661829394220494654262204548517307047221111400550535141565867391532483614500566176830962010113070409223482729132462001018354168308918748916975960405574566558269903291629573652765268319500621902492363252768931736586123931309784321947399775710911941220254207097847148357863232851758007614666077053746191862290196295565426750651771253614904232564834584053554415469058357643912318475093329867617982893454214161961621225601441872159844722934977501607029077509894103881662667395927368751275869352539628683735259147435515209003192641178209368825194904270135690751233334627219603075085978953434048130722639286567589254594816478992933069612944405080919619240930169286659658001538023332621198505400937027927285258801244654216062491947532936917061191768695390155753288788167378887811804672630137936159738324815515429477346992612172221190934131445230945292837883701559329267038558319596113078793222971537566061174594974701739715177373887557210911812569370493322292511938434613311726865598085523072500805367661175177871887048102124842414480780765513863104825501951967470941028499373862343639119025649030182233360973673908080975657877488815175092676132953362964700060713888093205437963925198350355095193479716982551860176344122789220589677649856822337932540282121835962471225438852382902357551836771616053909804612089212371629270158021961741758916610033743677347373957606443209917248082007718343555871574756767270722814612824916680411595720215900692221020865572979619056992570030348779327092430231211034042316412260484507833682328809654787729938756047615641058600619033162660712382524672668462294559671162076136698498983427190245744700479418904037210664225224310107551932415048951797563282747161098313056818452720632510021469099550250016697185242623744529739533460692889363143745164885824210091597281192244354863440368527776190596186959713721450562748266533791446296877944810455930497180008272771431106251258964347255146637664883885088184405622418609504642094036727024005201798448383762991029410069986303637091628764709338061940724918167652449320017119483242178488436371398602541803074922648099274585742164579792300857465226021898024917494147940810519523639820693207638344319767673750778884498737184115829778593904039465715216581330517592334594594743500140248904777564857860929387434581034402007771554931054445985038307074090656344099182529596529021058069867616747318922609791281256549781045135363190402250710395480795557583808098234686484894160532558885422887902966006587764623351158828004886171480752443021902086426191398727502334397892481977530137146687466114920827167149937257168085936608599823006687027714111689566620548434556999504072179123600289007870663167352620824570241538128621208578945272168950114623965571470044132839775185529613777066537695798221934477388691487298536942485286962536399798246345518549111182461656364714163609327590630647533216235430206869917534922174692221000595499984858895475584574160218499830399426303422673339447186945465774657493940268096383339239974477042134380176353110780291050680699946692614720767512932330857637308554478952032247535758997054950204445793122880938234702336529978941468393622101284979001450539094888868592551348105947918470541123164632746933965378970066279617353565166625414598371413043940926070318156299897632329477467093650253061159038168271627088027850121099511989630151128079889791222246913567773723921340092001915694495069331449190295477176520265372585310402193112407333759106485296698849108847938310714628385209902597646099858826744626283569530789610506875826250232546732879288354597951162677345904775718057328483739578917525746134416093395455294098473282436666416501177975812988093306625270924709305215077637790168079207745170436010091706401925614898799789028810006625503287851939684911304762899023809367302294559252862002777899466586692031096807320225092946756078038744110122964222610569187112341984552008419841868852239515270448758566158536562385802169714534307990949012497637127029560136841259156343373099972310404406665679535536094574033946322756471412676701650148524506691024193689781035282296970198954476799959554129384371917024559174254835745367382478871581898274110860354064137544767210408154007969146670924658145869873268589484359485589751674261676380804446299704289840535392647969045756584677340501429657848956848920122394499413371860006337767976122398687862810698655671444903541625687159369920081467071753990712025729270301245122035826279531041095240869099169239819851984001686107925366231893796113801204619085448412478685310330692495399293683853291878736969425890483304059283856641354850682014617856227568186011888100375351250635826729047567690728705184093174736652611031794939735033852401449037613580852172230664888814789100159531864798781717118651131832629399554378600462511000418697678135873380844778009576193987443996489231556810091920929290001767427507662214622823662324715301834236897930619295261162096879055527405926381576064490887809895266580202992198618565953114602811416356868292654943947670694514009503800156276080846249860624735881916074198153003368369845897800116880803166989816229546309435682452657280313484395618844119998762026346258124166598974686366256276007964815991986869238445768351912729055482827252890473286256534339516752342630936836385302233562116308001242570114819869174782542042716409315977515766066219102876252739185960800478141480503186106677528243927914487585842159513478077077927333544785915896955580572031317712486871575804201531845844957859801947591330821390303573264480062014595056764077144147993626026782545557735633194810631455301143418972594825797792970935044367055910181974163845637476716185034278411098644162112636991136306742611235079095276682088015181042744966403342119980690686161609858356390510495803001630963083509092983422188751509265251984077199552251917649532206593427354268713263127210269733786398157479478292083341260738916576799836619446224819864897546492074416328748831494418520960712807027810564283183478425991736502430033610813143034163248256419935876686319435998036491439427745412312740889027171472502375903720820417415702537140157067312308369173011070098015724374065750671387714345273547459971687519896591823201315275369572394253754866737172946265101918683956921114220793069080338547477874310082664983393435640860296998112408859636230930206768684978028788660214827527621358415925310399825299755071376554677819222354898242770494395590602860192505572317086590415801591382545239852273594378809936933421173059409197024892732745109978515890297723196738080338096944385388247988248373243418490408433757540643861048720247622242509581277719464074267151501488898648173007621064450457331091997787954828432647455969519668871136027173469838285905918889767828436647466130753357238306889746719266060714117719512146070891524356886929533802867276885825258080008389980751594370121959931521805938511319640888049735383274498831143623860193987096746222491348132329839957990960340027703748556471622179363542245613760114261369818327640062743864878216941552607271021119659709036374759107205491241308837089920638226268803438346603567017501202718883639765888484455063964618107779915206357447969104635552629633416282595327268721915636361711607777027203335178195904848287345272661995816724351342497608137075651238782388273439491696144224733510480108972177445025661547708734106794780076251341937281230293883832978619559789126632512643486147436882598636109008603633551232420584022813079699679370927336016243275925329105159843072914016994328270923114768475669310089617698370672546764362405343044416255253926475349400509586795611119328329331961354277143743201390759274014677609923876393053912056499081794799980512825879065254853898494356810090689949477746149971239848079280858378952820437771983802958981671832551263157482213799764505704752640651736279409902588470867284662150729095778326418667056160144269310290288086598990995511977426780032392210320734844127083745122024927234664425183986153569589687057124423493290189547439885963380286780209796294947465286386546799248779863258199299960527076367530741061754813921701479973140309295899265157522656115012222721646892238787270796760596376603274790574583895302641981178142876601022767204037129759581576176962441472916279567805863299221972881779576950353968149324633687197951759731536529513977332697139150492308770701689111828299769143734699767152092393915432060498329224519636916288012188598025878010382019345425458868012234945475954974433338924355834734191695263312882889350666581131746976723553184253083827871855345104745516866437466273511345635424716841946487931748503383812042760050815787066396998391666932270937440187543043742489373541832325855339999303515814898659581197783583793458928371187452509764430531428686615065796026373986636393250839324223744918829472629341916363378665897564496321767666210962311729362213327694438541588312238346936679363909990261660399088509040528499859404118249397024055210762161563275855349089244160895929255234007964498584780240721485637710610705439128936882596881290324412943755552130007683762203568826971126731256072107947088388526891571019037473533374543443468679649204773891280563552510198540986703054979963204801370842977350503711367320788686890964855090051437025532322937115176957511072369858530963421173790680967302723126208014145868544081095862154752626797490378602300306694651010193721378545494779891192085884564403856872712225098635631402796811820423763769232265093485570609038222761822475250744312594327936686056219518360024346301562005451433504359427919217541321586768636019960137110910679115533262973922489101193252725292140917488857164815036991073595394457917977616115253351313231847192443151791355545351649755751630456106235854484178877156639883625959644506133553659650124901322548565988240163202074016610969005533113599441889354331451383968352257120810515421634330811357991720916892217511250980913296671995655256205900439722045855038303421194937072357273721287431299595812777548845083488196491869748110288737255311070233941448623315437340330056642005829852245958035608222982193357223601692683877376152442282789909877613885264346874224972022032785602128928255879952530026400431830300419536795017835436349095297526945028645027456323682720979307718003972794639001995213678256684708567549002704026740277634418080070351038948684866808641866177026862570380033864241449473864263940431304750041216382054124988663001012076127871115974080653163864154867052135970753611704866743596079096091167883728878735727543898816331701956887235439181057939218571995284800104314005711591185577314382416613052274575213523241513102393103103478197863747296794595821112443595688663325669317508306871423753307670091640835432076889319535212638150247560787226327925803523979244476367462993271165849702210371220687540064857254268716333844324211939652013453791117313703437280899408299792792326148425594088988295632261769236146548317393278715108644057989605472226344849586442574499097129130956285259574728892217052753753740522231136483907893074385481845714447522279127864899240815418125037085116613441134745528351222336564065150350842590060651842129921195390981566038180762179005506684929769453825222579828097318457160506726858648462143021585821288402996757806700799384358384960785954747987336801842491707722329324903941028759209130681010865957332112052916302373379495381560827358850390902450222677524485277246119683228054501259620841698821309964978277062382591447959949842529773409198887686967215228612181582566110281071667288275830138274485153008283747985685505000265333282615841553697362478765844818087264369459807255933421307705121879734388155584508173813755676054645839213921641115386695669016189925457459150552468256853580844833799707432489067758154555274028274711518886898453914325519160884136635649919272699104696044419260089700699906060386125244780055198496390996621018740604162780855172210215401791273608375370556309609963497215849635371120412001870830707114162370832446281439579702481266496185280384188538820454927101349411702996763951446589752666250408851934792995240662890084852491038514603881651776124804993774686667175165328767961358382424290789489971638851776389387451574063228756703001576238416430460797201498893807739666999139980445319350047100516779123177747107734203018733936473908051335772562445467811125368832755896926508285699961030220034032894682605544969235574612747175484571031023754913340709965292846269575766020974796589806118848771731738261026609585322505043896450865515937106899870953095623033943300717878304042793068142765538021883295331482556020134153295298663066932627283000857615225846850872807325057578805771033805310867649919924179973533660421013861520408661733885627454912516118826365216370866343866999201523131211630624690990754406027985741499345938684336020564300271752983799739721965685446234248643340981105316182608034572005431227322753094516047171140993988961953338862328538844993972651438262001414646932294984464321165043500432133942041190437459039103964161551892298138599658738628309188446677532729908027221318096669227439050395411688271662162637402546952366996749362338218400571601368711621986539405455594102683669768787746895336664704302019907173729705677569906297683747997200005491956146210613946502517240443292265733098241747466228748837619053559381680415977327787233790932755530749898308902873324838469737175793505128724205171335389711288861982208552596932078077858975957741854575934164241220946058614742859624498757451854246575751987773090011534201618561879117708582165372925021219600367915914162314376648863037875596767437593871212422045486394636985659503618872123618774266405600172067743506570849645908489188116763960199092206115128215185758763526808578572270928417866899316298638780538488131687556664385281872746422255917985598731627236300621165842193700098634596898511985853991352408473078869443970389936803304887117979220481678465105991135082186998308935470535086553144681551221619369749005430633524088337708445551012979959741851133965796035993845957537739751766257934574373952379549718133420756429445458257535221144593743124701770426333990125022357355224035076651193610280101059731761813717286445584492856473409776429401516254131057798888941315399807696637026443453014538799511125852512871863436237156283589011329838716927777086844580348034143089731793129101628881075746573260626635937801475132214299052113078752413975921588329168425867676005592192411904619801885132999595475170789938573317826302534438373148090185159704042033014992972496640052816896524501769368017710678533922258537029659893318820214503790073658451659156873121654742647672368389016595397031952438548641611156289208277009207271794193111008234998630191507174804754969224805464990359872785261213850115569553558867082797435684470938883143451611806358641728575531102579426485730990238842275921093870725484347801038994868815555781238221020254357589443981438860234176504563435167284480981160337084242558447076050028428248174073130870455072533093418056677640132220583374159620743624204091841165091558687691487983315766411521420587083842834326205496451291499506753079435568359385406206756561882386225029670147619978473179994198496163508971350970756594583275547686246885384535414501052794205765555073327723986962771183719748524526390915716648444801901604448358478671084238131816358413003537006187646514818820970370629491742451234202391012209602121103216128924232175691306865735161063980660820617696885855101195019759657195464507659324523039797073257556593665315550219529478467644813601671108467307753521891931291571688510678360575750095604650089121299506281591975697959584521321617923466798621541288525091462960833670632510731201990727041799244624666947269131866480633399336774907218967155480138023867535590261627606698474884824012919067185390449890631040919644686587193851669270194965353577625736911691507719122818652830694835796676744218275411222709753488938778539086678276277595559603513313087383667124489528142057425005964886774700606531096599765097478034835390410871761152867697261098076802217227870342491688271314676552133458283531664065249495123224167901804599372910199967094207131009584779678214612001223937348714819343755115154842486890066663497750056714798132691218176386255147822297048815420011182879544470036565623641951833810379870145508968454933089286762867329322043236926328359621894761364965219035035337300680627931354066384573817154441390299188415169082260647214645502701637542427294648097799394259429491444965483156147306338058976340727765901243842748442848690234241721395168953154518726754619143489546805973527151004368704847443555638706877302805205678195353532167860316998996949229482618397024946995402815366480508945745233636444078960331011243595567100152614650612149692393794349381451176056951016701731638822434810670333871224627787934559902391001154214817771082149639510415880476234996752584340093115865101742871333835041950004024913475383562604705992612977278725062230509732840203098763365315703161899720696932277506186274562109595200133401782694538077062558073649770145297333314716963618596885975385418376258577067484502933633534789787410198690163346631291745788398162640279148043732220274157759273766507680129153083415059012356368157388631345409217822767420558661257962587455564746175638603070389421853847073501181162090630789296325634855924764750467760079921643617503312291302893908861069866006269894655592666570852466993819018047532754141750936688411447191773082394752681530195202304735250741791287885684427108569479680737744927736022313523803580184055005323192523666496202354940464683880669413316281845355042411284014886529943878714619352713016975264353312056998666068924375053458266455650788501696673624138448641260278585973656956409423675782928962752331573921159619341135389673027939816144488448988393557489900943595610111068679952447064316797977977612789216807077344971527729882188712567168153710857423373949331917621803073435128353159282262801498873245794485995659004772321839877968624491546671047034159129410994132644395403738956492722681366448225228770514249442572595944697821603452586242054242160677093719673405641416821823190320836185325743168748593218330340432021442082012466326674342217501637703468006023278591053884475520716148954637766704955735798659201360300420225113239947191923484053549518889299136718362542534796338664608999606398415898119678194307805838079985859715211614768382410047368239596228402917293801749118523363198389435063818316788616090288182628088467153508813591812593714574853643350408568004589115627846591694167182905827814195372556663370825266600440961274257900682527929220727517175324898681699511168352242215961417245073351998726665400003265958397576464794296445906833873975366820038062893539416708431018924819157036161749404159559475096734967178136076354673234533731749398837896633570746190928024227846225695887909052230380993909282994569495978755372719452058941579009450586808786113651952084043640758366906082262644549512269930713864558102593574100893139506213619516469391797145605774573362239944650975185707351218844591060246978619995539412082417820726628560134484051997975495398840349553464570742036681676440111374553930052650950687719287425484893974107481288955215971504161173958475897287322956576876800999444204529685984810392110893192108331929068848687454687861016740816054234133389501607796180856976196592725533519768990128901625235810127985977772636691777216415651680022870341559960760067259187889451124176975325188584339700410583983424670543093591334099186965237240339914101479953387900061145022049747857390496037183969919790243633377235655072312305649467147585734364135336662458949545773320306034639269596837519776281258677615544400039412530984828671557247921617592025049760274653949656019532201615275677284462504387618408430025096054959254255883036578072529019427110895300888583248693261549942110005802059794440182915729522151794954083937256437431892784157279904832953673528431228524158133744239931525138389794749403798944773607754655507995864396104963794372349298410397216150558397392762740518573660941154432620757782957096604926664487414993641664545078057810425606474607643519267014679453206762718476748422387145619327148356280122732776858205654439432585742745057896795854786002981429108400016007174741974132668375990216725320116655640733716937761565995731829890812336301277353270170937314017644813591689208799781370230985489480239431596572043721050868223663396543625370233547643749012297438703940555677634547669747307963533019954564652205616535919753002767211587499617522063572657459436007403771590754046665374927786901477893395015980857192900559959879259176542439423649085499237271145511697900282184091870879191206909456273235039101209636637043719605615435280949121639155860688959224432577813974455307042504164865874031057982150655880943303671638771251901058466058888782132687195090259614973632221634879489006832676153106763445199140982348296888737122898663410981842859511606758835540957687713085302518927893836433801164472903743743731219506889477942376631976982860193620200684598877492217674268637693817814189452291213203939815024731372379986556277989851909122127216536315778772115310082819305172149175013040982071857469863069915676819808421419017083559938173343033862335319342393455493404550705129945921540364514799561010298946987544996574320050801936533658013496278594133215104294426674528045677742173511205056435160458572421703674373885056341019567592852249618541587518594279504009452556076393155523095705666788136550705793342662758209280019654144726313586089641839145021925258878301101858232686300833403886751239112432897875681359762961270781796948885499280330079062098465377404731328018366293828239361034525672103793953955345109500465596430408081176385734886586001097384535784578753266479578046526272420969638123584740468636463098064013913552676948004034095293715764342046196816884855477120801940819996583962990795420606971618535726989697494506864236813306557637314044094252034336040635734644290292354561298928950156153181669208355082154340628218158457438328241686842036681411682740245525407050844618214624531271592599057725853128746310884359890165762758990355337210085015044199272734534933959513279572137087457065640832554378583730811727379138089969564361583234080449647509782251094878324490491748508962994482325789452622819469559320091763984547804001327903732407538049770439190836081910657575995548767660501390740262422892922672689771744738870865341698421048764219516829370652059350613195634570048805207770653482025542817135844948546657363276874845298806086540251308072434445033303730897489656936424911747985323156111232405584883877283683260468809707121690834436624390467309723077024942348560425994832631510399973591231862773756557011622994161972602774929989631083983120567752163456269360956903561887163107223041517297269648522965637517226420837001733123210140051890019064608201975212558225429511715796252157927278040088425638567968361043107243677368382170186086267286204799209836273060383767924598926818542707142410097756623109489874023274457018685647270087438812899433487754192357697428512384510352607331845291539646801056833311337666147928193160288111144496877256370350552111124339645638109529479508663564159067869436637915683811944497428343815856457843681236812763925544150331458370945577827943067352120459259866640921556756143126972439185631034507289609509206030544853903454066951245162145808433497256470969469091738976152865528249282545669368624793101961095565220640162454944440038427085249412336760597199321468212910646777496178204909788068126493062379268700315883218616740145283556011251516266700263518651999063322726144956519223617429137488334611162690626907937924228400025099685627120865566818769370481069940141505414440108627785975471275601755298408270066722067417424701942220791520340071406281757936635557159803098833589834644633610255840703102720324361798858124210860005116065374073481581816061827854256480027600922444150438273499218762646409417501071200067937541769963840305479514849131171850630570334896771905276209051799073823643400292705372161209174532589949955356736547774293963746958255619090913737213967872942139175854429675791382175076019922952193252742057655085737226113151059095095413526803221922331866617956708020129185507813011501869040769348850814881411583944923562781858373804220262969459350192295884036800833832159454869648451992876214120437546139099281301307717735872503026090375766704027247410957905971243653564760906078170140115693204017553329070681731095165981756470702517346338844850219908451195752316042055733364837414535903151155439275808757005633894523534616166312156507811401696201126028139483110630761974119085015723640203568568305219778375292337190844455003624253442905129356455923354772509636129389885680669892797513281046221590240613825229586202269425089492056075055549872303703392693533917400254186349155101740969115221674324426545088617928893176986987598451243864671643046286735019278194909940394503059315190827358522643917956275388712009935414319432290101211033292771273996927226362489788311369428938256384522986890477082957934524370712984767864004202657440024912865418813815137700759904456319112602253905177531998562756312679940994829979684864240929431106991883369880522127561117867662404150319353311584247943657312229348576715864824458885402870262040019990103628073392490884874105309088436182029201446153164063561350367206905288878176174245121461067605039030538911945880315340271651666091415642396162965470962065364418742667984880238128387100399982954284072765830956368260807139745642003651295002137243123548799237486921051246181008898883450092777904515221294819891329156572526372001546392301267967389157195285037978136482244468076922283176966011597253960623672980167042376661585295055464247857631773268722783484070489467264629768670663220938119482580658898725735327234879125857799577188486333736601936227828550911003331051483967159148862772586962857376196832730527785613119581404264962094086053595101975825081858999914329908342998444697893726004871989387021773956827089665811364567025251208431716979453240486532721330217072863546867943093405766656945768473635008689371934143051486493701228835052947836864930865902510242444752632576151831755584176172626812512663049361751905761038731016416670362233526062052435677902560099493903713045000083227221534131723785918699685147489539488094711461305552292976467744054867365836166121630105297336372177148197304370047715158644307958055456520536356519369010829748563521923434997957540236563086862505378777474684198534849352562024178086320813101641179738404306973636787768909073901278300645359883292669167592286130871434342790102609439876004636862981068071723505367004654462215076090379883565096146305760984815694318182768930704077105136797469897336210399992811552279889242173371767541102305729378730747409510726253273773958440915835989706788876052939676105147669922035828140081790957452539393568927148848513564384961281127747659502203342424448526037879235272936105473386862475580651680288312627909366613849102749394280746426172384005096124447321269946983418482904626777114091893147477456679678043799909560836884405248064093996369055676894725575753269903259013524745362815574424604888116851625344949703950977509046793483666954712545383635054309311895562886801499745485720230393564070234121358837980949880496457215438721763290516454756630952633682229625781093248707725621470103435891682171275034130710938032453131498076120561587997793618600720497099563608705399155282536590521715187018553987770246654410136130838097219274688880865911316253158386736480778967569293234537769775725576149757326743094554793295928555543580006013539596900579120722392310013868923580903676226367306043152344489628941607289412688321927215130430392217065589177891024869092402092397894502495737931125973467800692205820740692974195133050238567045715592000345275042332314674745788456879326354953261617891017758000500602439507616945782032188953464448859752082845732975143347112262702276544107726401728335013657027358807049846099022557069214648504034401855325183243284848015790699332847065630416207390627012630781335222323618375685792534698778192655013881628524030091599939416884756530042054772520508806610859924049978381963651464564010586320658134410709916397187244450691149023137777183068805763600753200734389520584641838198770048554421798673125110594501783262957426149866876097773852009144739188974642681267372093459632396146554761894387600117674400453472433151364895618353794535086564146629909207644404626747040574054007705258162211310604421494095452278273141988081066844345200238882884768345256117686416935880914618199466464276278266602851052756489270098707298653619393885496879316891327250103677804672693489673562624603216372825692431560817867126906315836916913272758004207437018916703386596087723973724422901551989564432893908759269491281407491825965553603810985276090384925533593843720238549580182227697428686260055839561931793213000421580130663937332486256662218999015356946461204829298716260580257330476054494166594117986637473997964679715367428711907280838579503300866901875102892725007527414607516091057061103142117645738750785179352378076607206918303351841584116899479940237182896764578116027757059559987103257973421438020191953375082312734627867141251714635103670097023573708473662786655198861518237467868163883491406426545338734564759860754984790917671890875149602159165744887340736652444925677979670790908934384182503175733263176043005875216611458152672338186750523957978597450081941002822603312850560599468451400476023046780876981931708269944353617724239752595260368501099251957996218904380624578690835170315573023465223261538370698650579380686783872360813050687570905048292556209757346828939077973528863269960104240639755975499705294557647035977635608440493460574872077366582607481134479966095056559674237672824359091393897812498398699230803049404175438524020912952576105504889370233121940221802258502996364688303979127916949675626815955885585466015688705118662713401945772951955375547737700746216208138211172330123189119055194563844141806489485975258537193057440224936547260055872804294331063239206887681175189554775993147736527069919162365464880353924062164463410363572967736892636335732977737585316276546252881011376261589235228281063595004427991759822859770489600812681044128036842892032614284481916480929658652205655594950727482580481274032828917060622066594571472793520102871956646770173105578982808626860029525289201641773590434881484705402450928182255126991251844316452596283557298810537676169635268756907099320828482070577056498309628412275008556172983225404161825923510780519688851017456180400739962466591128934555485168736317961497963628733467239559481858984812471214921761453474422013219225100178994150845995933188667169760769488863732759187506337969736064417073745478582414209053359890994960135767495352104104582809544878020875498588869072797837280497942734723549257988382289059473900582771743910186769148798545355500844824152285673042003071970052654763514708571151956299210656330647590866323691878812459672309094866833671377016757516575200223072977267351485990092520372006796563504270885647256927062858653851273518518255056917231962321108871101786730191272633780800708357752486701455994409896250036465345999609749656658319435825600065542599798982625010339040507255023174139640405171968815996216424526507364989327962129645716257734360556101264413205075088688731129052204481080529427354343134220211323627812672427609867452441503219852241345516129109465554247331265620909155485888856408707175016255346730818387914551884041351705974510530922157882750943014727148904283994181743488709958356905268675598331025038589743537262502722552530592837150379560083899661620505868835021924894818609366059565571261665411055989931160787667876129136670915673949927040213309762329586538573514583747353912603744010739649513824177755872031726187436461932435765466161960471267486619858861607756252664106578273434481163206249730285986294020471578242171264055439242666795783157904683553132317259295529247095770029422487108734547339822311745982070863745203433729430384849068843120195072758917210657726445798186505732525349813497268165405137981962850666272183606740919730352092463653206381763540418442085040042649389115886206252919346796616024637043357508447687419881657859161740388270771025006916801430713913036264797941631043439048961817491285976587718274978584020844486156874397524383500496168273354039505292310813969103696308956465873291903534567966756611321543502413465627125639725332727573228682730609035350174130201509242885943072345577845751666803687602059971377265936031358574927962139842575335255815105190976931660989345369404488793725139574505507271293606850362136816658580349894546854594104801691748678160390818297233246044703385442548437812233300173623940192539602642308706744104424142522466839216810563520887540729925750614297196510434069307703216719366938946181350358489511631801385027231241439768167958467302790312816692879325439688454779523959695077428829072890596607100765894689024620048337898124634625953859903218101342650776918299581550886351458358866830993299443195713652303971459031239068117872195364330378228110643804260660049995048278573927320334608611524066438424289208730509501418463823688729470099875290971547891347294305540066742306593921989362011771215833435349754290082448593716391804387048494654160896167503666479748684298167023822722882322685993294331006572214241309919015547637618721658245266483235646025537111486077389232416151957120422117536978449717892139731736165186575184282092410067782405904853525816715838416149038121508680628233546447708499332913004573467190305616822772085325525451287786830661490527805280544776395959125075067061051522735307950483827773428178260157231266908444037521408404552556607249470320427174828338470456118104286212248523175695365738710885483023686580668466714563405934395508219458353757297220018925094172739202955585020496740959240829242058734471703435225127203495884274088759335096915344395435324841801372593967261060561315477484811443172761175628352491593298970913061696386431925082739894787655427392839959189310344903878216908433367099295263992656488100036307131038715188531479904619602417012995635995578964567483410582016867615742847790683831845834075384222963050392854193355816929856219259880573105931500816876434252363854336233278296902116934142753371331727659759616603660771112444000382304715671592315723818592902247772009508656752318638832802140216599760978607510798775015253406523890962069599015796857841906594690732129933639197926248677473565986913090613197944974723502216205492490758057518716192003695850198984954859336276957067050387929061698401542757552535562733632020783868286012092265273081460787809845990793219703455634714977312810596940879305759416001228283774560521648996167057249393640747021168862945464692138356186781770814057603945294720609121981594329441740158496127177911534913851299358239708995347226394395460796523502279285282050526231362652665698327099270072005611699821919787147668176577476299888681942797256869385291098697113158010759754706957513685826536487452260402937965599465520262729160187417074754115345278205602381941405356530324435703650116073710731460538011145191562923469155973137017640157013709265904338618814570105757138382429119230157360000212654983327350035788640448373950734713387880994103437454235785175808720268972678629831601183474086114925674867394387833031906159333051740480139824580220920101208602843156523463917106894790682009086966130970570491447636643347408193935011199258495205155513621975770097653684366851875293829753327980031277589929519577190284634239057493350764224282387015509200263138324826054809605596427478027900701282962143966591096118692076163193520278011416704549358330848403288757508554057351660484423299179900990417253097761871650565774818259566817941879082729571090538652110301844605552393043039353445973426265263219638225279449464758711864883231994112009541645239891942133383281060213012454449252278174283149728807554569358103852174241338335541964315455800605781253025566909357886395401876641274076054327593260305774785700168265523265349450046497462919620670161431171340123976134945126416317098128241121606261936091302932757538688625839596167257869111406933253195118492736591591276752766931608443355225623320835227721721238489273026008199817935966215410934802275449764637806096671289234701363218675291860786665288052242880354089406840885706969557496120503198257910410197774390116514609413074773580558168559965758006256585718402155072935341952565774385800984894854081422668087896072352333633591039883385177635955155518038570813941787284697990126907771707563212745474031959680103799182986843913139189422519727966250756642193899272654817531661421355567634157985762452780961620295698973046970994737850171740872913073700888427266399661665102668662951735306804105509502941775216414699269612900806851016632586117110582829870026495660189749923427022757008027569867629398684147114043556519915192276543500125222104770259345494058347632376820838993295139085202624273253054731123797836291803490430623527594180468813613480033159620588620117443838336648778392675518066122439833761334117270023667598427326626014668615269469897191027793005927229181864854708863793766779872344111317561629128744328571940171396238257213945217020937065273452554494020795901578278331636656183206168507425713637183800755326206183929493694037299336343852323277917961268189567317855600686809228738220523099597354876388234467907285643126480951093167315524231513768645564663439926244980595718295559601608873555651133525606949710650752224957150723049880099866316528892017728972675235325766929778562339171645800004569425638168849424517602286925051910110793117519872490775611359483365917912042855397991613922089429795442657353624927556182619295686713986620787760024562216648962711081435106338562655738666934899657120240010969102042180498146290801602392037489836890065949296232621783814752554364594427803353582752383247506536484892581763911863747795713295639233697566183480169725963128959353131244542059284091664883591326521446399329626379981207455370342638935855611134568208569247064514649155044251535787582174453994073322118732307931920465874743037884468412534167554309536974196181257182791776631246744150261694784082283324783092958452095744330573844448647473812533034891838019096316220479060221547831806573065476403885739789851935914732946627212371760018515321803976103298372758411780804210155697041016314642704756772702832920687244611135361161634848261261643553690145502594542069512204786419887489041447372100615519113240876750226925645274661625574344529871753348560851690978100357380072545672907920164324358047055530886322559718966763534796924828476654278794409102349863903347453293980344074197648023728441853870826056808204105588946135580117661163889641346760401131190685508461574760726570491314366113612154008215016695732071607438622387984035835891499991882738717879326618118525270013142472893328525907178765215632230621302939569815531178781346945420394405445473521963272575631364567170177834787329847096633032534766115304213769984822691724470072317353302552055594378005808650177005584984039727346796651063554225717378916641698143132180529548763933002249603991870631178788906339672363237743450408432281783392261014799643629230227877397971695807798593957835928373580431653087826712396090168371978516514298375659443373082924100088362625506998787243155441774574758239569061522570911015734380048503417256810178651863120907048832251988676437544221921200577871336990188374947048835635881558027411237864775603208923215563349366067758193402904394003466680486232880855684783734548657674220625611614042861523054933499658426351983432445219221318241899111592822028090624460603129439305617304875497557503163990859796217144477984585251215894066033486123426171822644978427882526061894918766894535797790293295452817325385225241107275227050516669516207210097922575727475024921360632013245504189499520514492121345864613956307794270657340862771527668091613325486643213115901670640951028120049832453577574467995307068517722264222428076635716444175562991787648968892602830977328686985399080052659619818727161460223649409967205261281401890735853276121631690185858738215512598285927770140770652726004189321192988297651029136275289559354122488806875222558472023100890229316418295373541906844815553076245874614964058356072565726045530686722357322776572822996091136662297708321603361399133865589896790333844012140659563699063336835912820322843227277864659433266761108630738213976221452198353059583755866171086545852279700200916301924408713665607951872924167660226384036429627728025143083405343194070785459295622451958985692853640317880161108531513247172562806889206041969474589634288890625387368888821317890387762851961933493354415796557521485297144803773933329715436185268782476787772402852033463335862578080098239529364661373501410496639193920969565114668314949545622530953803958627333191739555076880438172993540257927960746872410631908930984740027540229766187381586651015554074163096596327040649215198166070693864064006164566512770514983691621701872887961818778324304439525555896613154177762000188943687874060717437676261791768541889398864856208823225531841263344442099331485350888296527104596731377055556640965586664275553988178820454094644589164995420624554227874457262748117614467529517824268907569145213581758835405898733922820802708711875481670259686021441608747465925469098121264350095447684983141946547608918257926131668276707068600312448628310585725822234679175011263392194809268689411887858800688066030317769235813595268344261852518117812698069698813836532624542461071770561745969513461499962390273446283551876277565683499401120336529436577448083662348187572926775662155086458402147579802575186939630777169574690727152811974339770359620354017385084811438990625816488826803867060811543495707244402794886931031858021219276921775368252664925361831418632465576967218590129828171664202839168669615333517420039335854314317681657668233169689969391574981964505668161367665356424496110950975297697175444474616171194829676038289235451008692484607135837709719948260616486108717526335180652561452548509993453415492053374737172474211899094143134661816466540803565570944897082376820442140968473109511927309267605760994593182803524647818223628333329232810032548687755021318468978710696702727828965308233256089124012766828808761440036901960470196372587195418993791262775692634795845777649248539893201142147738744093503347915059839371945493986117683587635426517016888408953929463604201646334415166822151136525390584038408138432149305553001219643825213506525345891582366040369786710402733713944428342548045747791294014704478732778016188526026167476478961279385222305945127278080656910010998686205914817185767072108164133364487263812676936783977254819571008007632395289532068283022915806747886722000808895644972930268429553037199377698181026078290790549923443185920605936189844596798507222657656594686538957329440693622623070650057600303091907896119251609691979913053018231712849903864273131092590266676831161896520381348657833926913719420075768108403250487924209376364075161266749743042516524654088680914916674669279033093376977490810852636815896602318468545811129944145582876757655122811368537024072952360129613882062202946125150402813500747567538685399057220103964900621605830032521615555051494666199208016332700459373386821018474654558360417082857796374502579159720078538688317869431716658324424725816566443874394735816112708433340804800450889780410871681320454730331808453425395233245394022408548978575608032220305272477449649081445969049956909988462736031722014572897618116526154452602919594598944419590136562815207816093379332327257180741324444916748630031730660065399840122217480403604536228869128267649756473211622396011360363908055428457996298119991127286993641685548015923658814051113482379916277015474429716221707902630048834980129666050005067353953929023999409120848833905162910782097745321456144954203007994056402557863915679639048895580220917259263864993944500129062468148610593859852783643908009205724689116327290011372219137712949447988558629431256062112273772543572635961088439343271741590622695460163913321422975685913076315722756630804625217429605927357347000872710254954398740593368478351795168234018164520803249581408860873883058715937265545017689888764876063916976990819205302854361215885979307225463534774331862737480676061774206295950170674710025699758989346593477978124446023541777644923112436739001612348675554033565510593341896452897648966984109757246047457752682218525023527063014059924423306560898596965296581764733437206726388797026081401158996148775258388739441990491052188606978323418652904267143945883395882993673100038976236829822970434899534766594865914660547049003415158345613578404010372698841724314789952159881607342304480136027918361254826202033154833096220990278121276004981215344595994281988032132968106493431846587924319517589665526955456704379105839255257531923308727831428429377761325277379071444719898316810914496759702184380602715025812518045316876449728775011967014376267157194807003373881517115745623391240449974527590203272532563894940137722044376151719414644381502833368299246544138590636643242325837333568983962166808042618616427618990512549386471441515830611058548908047793397368639075506365271495046002626644673794854094575543562340733204709957721658082687840683555853069676615770681132991255046852752228787809979217884442624726279221573542730070858611028460411659996759207351419532390802132292755969324794396613655724013163703472251480997634039270310322428094219166225365892887261850742337961131700100382034946743142393417831096812144631392082506629572410548276151298461951198535761562590186771371975520327216481508730268173563067650024366952049700092394178750335863147705096513585135512614778223357959384777395096655197282403465860813025932107972340291436263109053393411123955637036949398172642347110753659863188746737177334468201923420379444403607093065043288934329402326498836822194252888086099937546161436605163182890238675773714475556633413472199225069716751673564500522430986142197985498580455988258811180661919493471099970925109786270751437324963036610656135569664668082585588741147595849747976498055636751478275062569836346323001528218687022931826281699130190687547406321590835292353326638398208745963703170413722102230476369039043780565532550537333299097612293024431893603871226964581222277823670046741079007473468447498373567574563573779135408371262239846989548530228943414105771178858964804222181950953129500224996334403195335648042509472180793534475439550759198657929967950363208099511832521764003837075022497322517369061206837113728467433098996481624352288590057297563308673792113623400977965794613957942299019621480117410912896119184397202351822227630759448442495240064914731694577729981691704106354431450697646848725243045698344744087009079615199773701508589397722908832025178653940389308710297450671829901431266507209527630553867608686809728207517547222455124045305220139510462689377870110847604991766972678024862552790584976501014050081438472972596575307823374860182318531148728772474860543976842473978869541736733800298553309437160529505655348328591969253037984611019997043024863030388755834106916525959077993216875904068018831767243924680461268978399322027474090800532880163286149790053303108799611335911350845738733322313504428854190776258276686707195414103454486398216775982335678315706939336101878821766151012394316742227560947563601397322991991976476347585995348013542588801665457470882933514829922254504555941806765321138366488320662829317341068751676059729802845377124619620479309987161556655712943969781529360871002090873498633749222742731919601440111730347353452316748522729593541453210456512052508203422114521887431257714683891667756527418437035509663770578610102924897546564793281311007035379267392975296410007478121040613684241150092389733782136608639789000547573305476298739505598046738913177206807837119171983186169587548992549738076747883894858611337424188295361406931440838874420767347193327475584490827144405595254009697194023725321774614596265402866924387262874175540240377522705176547981326009610745682556170512110352213159938287230100616693320014164896822138337516432368209560092890141322315168897226568518817601547575861239891038897726300593782862020100330184803967295161886600032221759604446822035633575379854887293513911320515485701485253872445846387104507336392564347259495324383754948283432322750680524756175530573645159178018889014576854429014146943991239184548575235809806933072503117878877563692355792547584453116424435523594173306548884341013225773536866876135395197617130059633199286788805732650663091302514593352431464634336387499367133676265280569807689882159469210106771245141940888427534540312037081385550260350171214460681867441949937707959858042101075260851223500323441280685132448793227524581852458708799100546048966461484430580728407809662308797067210950891379368590717023444416423786002484639473442175008921473836748466860414244777235060966443141613141870773081918502593612864779652936884264914293444824191223407840428229434794315557551133828138399939577152857833899134457879875126505936469798794770357901203765907032358736109753264018354257854492491972478697505297020601773308618523032915373064560266712895035319747290413242883190197603729730619997389241372103221019363414110367257783381474096483635997587458726694807453386172165022762722866106496974225197629345771870770233166485547868061438808706512543159427130171533411757743715564069503830439346543880998612064241803697147458283501989466307162493292429801004983607328050262500781746452045452972543614651044887628831351744753386610073069022848847143428766796454526587213809067167615514807850702604037761629158555550122479477728391506304327642900591462132657030018604245745333949954248791289614266050703068583348029886591937270549822950584022449776203584468775460329212638173245752325740872341746515213806399475498892639251673769980995952648950068488491451317096671655741460655819905815716739909313352546092616355446441011019676449074742973672201082754346023245726289549892645593271042489969308010240587335736755956206011012283779414297734076485383968086358078679341724402506297393444648394080358829074260381328877953225205987683417032977087916665579071937010149873982909727296397362415721940872386859729426601319076957872498372484701427981464292060794542013320166326624006002385304050026132351517716215628720682700360425936862253553803983990593556685347870764826374081610259062071587471924861892857602340487662469245103140330860315340604043008597080069532491111818911175615548502920254195455658193595184795366882309632609248372939585897574597589950568428298460840676710037183176900414525375451174522167300020562267246118106913177383836369511592024567353343378332918458059611023282451611385023608026668134706727183102524286927956369602716963781660197532564663282519991401251324070527287246774678560877744666331693615201193750106389785388365557731417494223310751942833355277805595907652836257685578024561959715123521148498177881500791761819250406885103370232663989377460642393117528626694361500714081744658362616968884043152068784269841198402418926196744188524533578348439804266734586424486516710385426445183019349383245972475007357309672418154028278454427995179029862930332036863179931993584220863970626230723919167792247538362972870671229338207975431880006049683940001982403101589970905706227860040647991018513322486807160680171674493246836796441863717996067640422541768499066244033719393977332545164839648681399569051647703159369390855210555248882000172473293004997368359770399666248464304932004110767463794627364179580008079070896188528413181934735030488597966040612066862744892588498850313920811348489833003872780163567368710910452365076637070722011363031372242980661867064015352826116379977603915643166128941101060018399372498467058102297302672704240076194269168792594119630360021042497149188929312667635748313340164495603147249199555170141278005864091329209315287837603049112773967248120982153145714235805088926190526779661464622801833999626135707431483161418579650829060867821022142856563520336371364700578019767558223266238028960188748342316686849995539593192130616134870455763955492014874102939257183753684049040571928929125613776693294488233010647037508974240857502503028741403411884701571547780917194421667078208606753306633166802611209386027878554270523399991951089886392702674744486402867474605141546016250650966780533159774879574040449900586605089537940080388161830248067797693387186026968426751113057443074794250628523849528363463016300020786326844380518890115203993591246717720625805866984175618981602118356720995560702301499785074152336821382905276519851175295511514530350889552202383755539063615922626071906082308712686076396238732114178397284846090038140471901852652024725017236436055886870514075975929048175108962103820617324459572677068527698775101836324865274054971148809041624063010637624272238709004270503495555701533863389707550074936909588514639098452805724304283010799271730722648792472729147377478801104912229386914679004831718360482622012412111197140676985247133137473822857312446977028041527604085952173204216923130565462963589438309131108242382026984907044874075593095641677840883927884892392856567803553109645232482752769412499457122549722336150557823630041922963440056544483783068311855750233390879507025207774680567400533393547299208027504751428084206329729054299501297537993314636231122760223992556682794593518774212577564590415985440407406130284280198182238153511547918248467348334603191289132919815782139190401456366893932064480280866756898478658718842160082495041165554906098068279949470304616823631769646814921632373584440379303323180182663987550913777628864550256969307571907997202481162480051685802242040494584209823025337110896536586521820461532498360710137559360986591916245525974388751325138343905704372833413375784691414600969637030914101743730879262542384753944795747612882067269823659776313627146710416249706990349009299273276954961079962454844842154639976955930342352579928402744116533130008121778685343601158812156125223909406769030998533101347833639794711825731211525679145101459204039266792325363149751271730474993190385100598172821857738675118335032966274580815892779968948991636405591385882813780950313708845018507426208990968597591928256724893683752654669519959159030632571525232497338911510538263595857010487295594490165165908985146242322095074787573787132206990696240817313013801887249412540656494531375244037196208511482467226044342264300008217702847476802730405628506633172186302504128752767782215784567155080150298202880602356677490572435613865741392669523322111331702866672714685644598819652297028608543416303574475898964170856282381317938964148120100338688414691558232362377868679758986332029485021036468693591716921677901408245469234040611802630512291721909139541588462466185846380539293710108784573034037687141858560357480041073769033704360733908788467564367541290896307394751283412403957853081177713677590584611825584039529262377463357433715091423638436528805793564534846510688200240587979181039876927814183497803443491487392316456781049682584170787196931587404699412100289938517159140937488429943197567762054528589953076336970739790134380634941761810047882831710611705646197459050173237315064098093981348889008713386455319399686013741378458769281224020961116383306554032586382515132094257714201980879132401063432999333808564524283711846703493317154525310990188746558752542590260717538386441229169528937006858437838945119527450260089407737119029150803013197829823234920305589619315415573705593323828190584189564988444396360874256545613085487941644556425506944826063125647548176814026225820928795461054929285400312866164915141314711360859043806086486907782097143737529751895963728188046054471370807051395237960407062260728053510182851091223795764279209943800469674857794737539898021470706673847804061203248893422082120616097511127193360975932917268668120064083044727612914419975872080890526552290318589044907213239926452600286367726889804509606601307511880292453002516480057811003589728735080032675888804169813185755338685712452063171087007118619436178267405698627711287789754138807523891697813769574820622985045305696893900721684607195461186906936754062584879978480083881832680249720388771274666395305542431776571406092272353147371500187340233817603161089615950826789541299128756430977374410540141131417338910786573152901246456231825194171386841469881492282522625533833585342309008361451289415486432563085265474833187842446354399732478310820705628798014559355774813561222637322559575816945722639431178229025979671943496259453302721012689634916134972353541227229859844744781168568573458031785166748446828549548329581495988425196644479768803254668135425812343760232215125640671329368075523798532807196074684769601855536925908475197870843770322198865569194610221414422821064039687486752737519801122252346913313385560451328164926919109488322577367338954328506595220745251641207388046456148031777134242030447244975436177629088737583243844891141879184719667344143171582093080469643004589423502225652957150699355879125874594721896883270726390359133742331904664512698143173255098184431978163570575071203111298938781570207366132355471199081222215573815436931605937431975532225206877717889152348790816123528410923732482950456707399937710652991623163050397945085099111016562835277440427662633473507976475650247030593996485692974747008600604612426246033924449617255970513921982291353609359256826666226355757710357284629213700884083563892246420761133958054280545259849178994104621439412222640712835162999782181096190687148282954037966961126005170122166354380512745369923033567250543793548776461095535529916950832840925889629147496331719458677771082945870934740869757513701320164581268214775692970353074276376879297901117048301862168077137069306090168098467249265657488816911400658689349919206333712518734557593212200500520960285057920569895813419803836418465936963535150477853829248702899612579198150138991642492212776162523594579720507730238413598389347116466241372907489291621252578316586573490608322568715779112875091836671697034082204644997315410318405435089276707093929013463280653912412784516812405477414090457322817706874822076511979984548125540271781050292793140843854521369045309147520458928189074427409753096284937388145693257887288972921905940089593532680817868705487222861820535616108206953086794014423983110743817727224838799780573253848814631886766975046002890378958183428856641545254647824166070663343614780394293622184254638511622057662108035220286697953479969551488075144548905738844311296492018597000801776675761944738165085147800310572914629808719293255329937195284950614489997114634912764131354177454737561215064478681650584949533864633026503396368326452084910654732019425773068360430939845462518110567154409332352268175556300829025884374893413551372086063425478419886440033066992655590520388105280694833677292555666889207054095402602327732655072768615920096236587523644526048325030183974910513308843004843156448759386272265571030935631980743749195741698018201245613748483924675030648206211546907023370784639364479095325388313718611883385346261145928067732770538739112330078211421038978998036698410754589313197562209181508748688364501209847609296886488226943309329497480569022772510443347532145879146341179443645779277945227508611415439952061523181678687515447274251661460511142139454179736555153953499871729238957139098949178336656401452898743236218455372816891062463754318283240125147537698093088413575239474806189437172985386833481208678453916985058792055900398807616741359050119095252243903808123520691765546416599238506672919800736403065860417256785397779381119176418078476176679833203481063299519042781201765259168176102149287554469105019222449133421390905830664329607672303430484125790912456371829675833639591325282915650554358193136881116202645487109552248423732781178790076559061317937786025033110535964261857396936962701920133202161730971162191298807191472718421053714377499035946066669884368489768767097549886878474352355665121041691218876584845896151901213575474941672037222695120881507934494526072944380734881594201167891982700240212591835865286261371984660970913837488063062987843650947060754228357373755501180506921829625995337511650736628369894970164700376363946354802837554915272365150393421738572053844902018610833479954671982365458793303437340154435249567876026862748284523194729016334515141470291776781872066799656903903973085328688839845619647311720728625533762228413005824343935634926672424941901302022023554261018770972156530384093854774975035319257947596029150955720885158599395668896641755176578110521798251641066121721827290423402574909584282464429116653155821639826847344312429073997958843646841812176001889618536626925939817335938153697541952890888385694313584844308845297029633749076708505556418752778756828568742053498407440508863344440783451134269460712305212477953618391926688480816740834620732524841985406068196162364925007861583945633132997976881420513728991806916992858122837527360783434264101744289743194758745747994644279484717220776778009736880332855242331589372306196622758159491059371407116031981033012859615083485177945773113402827171732561075456631809335715214464263872264958501863449450258399882657459255898005621974871951128433652492150920777125836539812345261015142166352493403069917891829270824459484148808107509514478660107405901178231757945120164261959381124281283173731832861250960138717006076424072347482541580384749054057573532836670913435496033181710675172975345094706150685980931635188685957137971273612172553382179442481428256040326572830342648873665117860612736683232825426882137853198533366210430778067065442448899481369940042434219774078942241148075607668738262091105389275906587250087939305314624371565308808310240235217617150826664815214825616667568184932424041035153701551629682749154679129351043818189316550668502031370978891871969124428025104810265831900121705134316342427034474164684438314820351810723729181642355684544662843331725002774043430138381046071271164773145419898457715104799831556577589411536209222123623253053121524639880851447093220817431426470031774090542612258302698594529891088021442515711239434458909375985623435553792407450681054755770172066796457588376807826096099786551163943926070261227473916662260142683134261359580910981228986005281985168965820094925573826789695953500798464973843680174761887413775814009333853474720112914696509278000643082341811716780941886971992510526633412880287325142144439027068119101409876593527888051295846426766405194397804416334824282752947955178668588576335362149656421984614169363877315290592151697576213310021393884410640581958929016165513264157002130499406969099931946788697077974823702725797411828504592847333894550243590332688026819691060563081413832100300862866947548157610408019907522204895755590910403593962463071766144599711725988161070028163216341512679807885043804901256540827360341973704693523040003789381858851537283461833162578501600223269790356240155447486889707449693767981002924737844013502098049547907274028655777665634275307538334852621500530305307183531200675419380318780218456652545920207722205202480879294944867441609103059726913608450089402858324936453281621040102969500242661683499959804598862194570378509943408626923555151259392453875316078293075942700558207454888657455745158588383404597558159878524501927875497183905783163206503223595051097675466467883859872049385613276647822486476437514666776397825069449699124500055733820738616065451390298832028820173920511132047584976782877055609991205413746165200803028104765407204968298039599008359979170940561794470640237973949395437183095958647733843651288015829266605743129496218063248382536361877015858815963184944539580787736289505986439644021006250846314915294260725200546327050643901178485853006412116214379673847139214956348801661356136287130972001322621847343472866878671938738381822884967572494644304363381812951586667008941990705378703097709092803124264561017801420243522153842358771971102289490130517950552316291291578897444466221750629852273366045612395499437341118906200367351286642394503337580049546369516483758929854738129586931572854540834773041040405656276834202566739103415753476205573730300501547755661359846310738381612137645083331909832790278292743324067198874446654993092275511387196410816769046204394666924783743275042651469018668835365333984348986897254206996321359490578502729590142817987410137367673213929235116004953314650531790131735555510409714779360445408837584188925456235678469032430950056180593237564118521914283895323849473452530579704552227026241156995546482031403752703853965302608047438667460802538723258555189955528582957769024122712085815725103649378227025315470335924428770476175866309386454902871674176307814711928155585256653280736926255021364563099445849144155863276344487432668639567308607971440757347554389033241797419250488750410880087540780931802578017090592476365314392884000567396257724180545973177090426870299509238096058943994904986144442394356639854909337650051927596342447144805153106148558329384148096618405967581940065632350410477734302469279095095306067949750071769911452248502817099523003282904072221698882823130609077889594165466656904266759321228578575607894922664102952409271397731150973189785890749239160167707759578949745916990434942212117700251765333280034288854539529324635663119934241744320895023156050429343549833968466291131059498869446844501716340789138107669796512501777953686290215351376146023255388812387788087708544189977069700563151282981758485450454144897618214855099637612975020400520207238028852116912127706573197809920258126814210719425546112459090441140267751229780074755945884841633144486663059101732390885077556371178501235079832760035576920705972465393825547689153144908505203103242206514706076544391382925888602159729462663889296455363165676681614900834263430331938321053860976858864744466882990388041686747208481577695683977849243577160244948448246525829300106882702114520010314023257567929437416721234899901699243107102717110842034146444742771958733787261027540065638418026021955031228825958038008969352852733895673545793258295815246962713917294135653955459673844261238737735349242998489652922024990510208216764186647946432075485008923786968043053439925166710137416083385166650675870929527690771301845155635319302499453770051742264639292338521973410162310266940499799562482710315317987611541297617965252308668937151516408559501995970205312085095410407199103264606686309741709742063844771225307013516482881668433150055220121101857654510078542989858601988405875635904470879535380028427036569404301530975338207672644777096188157255154805395258694692042321956593988542591624050350228628041099441766904523866400193939774352263753874135751215687150840585032621356445011765458349569973054149645599333764733952489019110619164138568149694903593882194771603732056066014013555886705335410460274283227963332492921529223106901358480343732267867410756111686054211256553087911823001471516747197761793303598975797552254550212971278470251928362083289320672939810145443860343471841425416005212747086249220059992429682855016225257654619687040998998007632108145684955334955880179579671789183774043172110486933096963891859164552392715086121067358346792280223643762313460838273889572361314746510419817300130175788363721220323396959891701746838069439063805120198220202813872270379735845672810114143393599525343189943482715087514627080317240397358651930403565310239262007335059125184851144940123715544011814690895191467865696035776442883890445209508723673055913440084693950718179144364418885667337194959690834206246870183731636168681921213248882023314395052091895936667165639356103823805311550586698312744405048800753265649483283552745164001994998458503507885503426698555051728983836552196973508225772654999116707153810604112881336985568383958386630192955820153710744217248775494209509645434278823518104943111457409365229025847887539707620279930765272746279657573878426778588771411522809251164366564308812015195078626784202900266669819849378021975378137461719601999982973374146070005236608181184843998718186986670852219417009421789980164048107467002379067038277148991200292656599544950382186429685540118712286431575929343688013841676438207391094994583181246376296820908832152476122587509187928513079219274570881214970484290944875399044365076782578877672272659847426827895956074070675840750134268465832471888166910812559367934531115344224533551360873338785723255939270349052434143419526887756559656374450522139825199622184528601225320102702658841917220660181048265603545557922726226825477352467168087207691735350385854608223841209676598873411431735338852014379857467176251695846273007126640031701379942387600756994075156221877279367028361339241099535950368805107215277393163454516978930125932264063725395171046246676363283316482188129781149636084044770911689126111642152761751779950881678826016805038280045773717268298861908281435750182107029324469665556087366206250221227733253723209398691756813532177904176546164543245467353424446600343856027292692410733589026109497364616481562272068595043704162175466220793450218988117821134945161946730713526002660100607266833551308991704737801116986178536189572581190466572412888455552100136118599496343911676768140248689319994298956078372317217370084082835245837424555623233022806415418907194321816013669390091946208477425710548984177208681104494704078306052000780970100958683550781114270907105544827904074725988105497122078043683852542443521879667486162522913935330294406590631875015830114530790252233349229556213660164667554425233028189993369612022383281970496365841936267842642033681451409833826956698281757693048806966470167626754998323896735722205714028231430834749322768319900677535121141415374162898888376069285486909388068367062089924130584521242841359942889649160019601845102577919464174519019982922188412953405423119095819748177129003755614147208247268946810413639583324858613472387646744607870595192164558219400047862966090229383257821252702360351133654509894498289891385949112346311848506100051750173391777113722960873358831194148416585248208395891225979349370217726373380932500567180214211218390314040261810106180669119552291221846448183555646997792618733677821794838749776530561997199061309209502496251911129602314346670516248336912476700915300971540974016984353838731316255267613692969673092276882923926143599292935310708099559922190116139613930760172071174813469519437207601859290391513814460748134566320509251765608801362418938877758686475381865356825188147550475477976367060549069805218421862456677383261329876429844401430737065978357779348529909227149390501041779103367975084718454546960649811066867768365547363004694284363885598333083950648198131952335950839798003839117559340710607873536297805183307595425739795340601999223266081876820301374420102576347952682779997271793074510478136981371749094844770706982439665770458341141819330776132217759448356656758286754314761079675511776017153382575558610039780710421937198589720828518497503362313769113529354380904840014635455844657209348943287150376022350687922672655849926270226137177884893198801159616475847472546681745162200615671242996190791304597005786090450848510970771014574617001421044115165940692179475163867763622764847746372906347826550702545136677824258894521772879020399708320312171938591865678445043120049758415699108676101411253382572764856484810398303714952031082016409685299192117027812089592262638852197017332842458345723926035287296798355022404260086080473503631195342356735111309436757658528296013552098016439950828454973571044126392046465116564320712889607480887464412651983155233777013906161155543416088623217629639480664747395523682787486023751383374672065321028903841983048583907110005756904402573820932142371129546817144865136587135828826138492756510989403570002923697457776773413279024098384110564089102613473260646350288286743237042021441018401744897444256608518977569403950139759060962958855583055234812898293704896441577824094510088020046126741144906983343064097119422685078571297893180298054950705279552834042377989423776734150378681631414214786450268820018241479331565235854540533967531666304413785084256859631979095801354790625727811170116101946904729379341542833195079973849776051702573854444481427654811122862593872382678375707525717907930477051109457855368277439040738917402340455518302247171371028891855175421112645950619740066998888707598721641782110259288993123459154693028088265462899967871072516134467750079308110402326406128838717797380066325741462374552245769701103412348347708120454063160980954529278167500587856267037974235001149226409839981022543921834290599700481502511593772143962515239107923436278762584972337168232460674007967843001760198828597214865031689365022753262728416717314742736737605172479381684371107698394993918350920239584859496353310335892797180630879297187755043973841490475230383452109358970422244664221457420492422240447900439602918817691817681258764974284701465928830165741282748336877938289172110419020111171874927590989168996641911152513006353968229971712537670393210250134651930769805770202538867955904172928006607124308694591814610126825653726842645504125785038134369410664960700046578404836156053800535732499103452788267521799660018364839664222986524223654882803006016653478590455749337448697592461072473917573583380694014881979567122402994209856005930017700864428599299689946927475118946313490689348321871249843594929139872074870931429225324343304722874318171253107833764625724050836449161430198501624578019435034472803193705821796191086430347091020028199115806343864398703164292161728932959437169878168334757870312348634835319140733166893289181771652838496305131349505324796224064808858663783284794642138565198642673393443403112289334909945426549521151855069534262985876527210791329565908861411886048885228138726849896228817314540824065261569351567385996847114192317169061662214345257084807959673299693969189361756445056367865731508640123426958737121069525786090002792591646298528816447407515170051670477228066830225546049044050334998102094604502507228600827113372439342615619725423556429196676590047318720702081363576807120988681503870960812908170233182250799361910738759833702066188305252312899487144682265010988063004848858448224801039986607076651390422153055929310874272472726786898017839531352387284177386658386663413434684681598662229106886233499772808621798643175105522679982314786517201193096274573518063075522795278797139150520301867057277538538833569995053204083136346655700703529540945310254253306153596821450481566721197554934185295954876260859566095627329073847608617055523029826723714732075963090182492059784167334474326441285532010418556538127648217212526030494996673426627859537451960714911257776120915392608432252343564380881455942808502462450974467937209672885934452431674735868910102872071030100134217490107630203703453069835355773820257733091452858851365489160892893399463089111351962373414304427514296366556898116019277565527788630219723701135406967952170305826851531350236857784091099218456485075588850930646311829703547904394831912243086765989255354544712380457966373648998815660911334036494975664124923103331664754518895209450589677346659182722032281506829561233115160925958613389591744675707401296893811639577688161629279411088737432930573530180339830735855971751138701976780172454783696792211416839660007884869936156311047544914520691476757684153834288085417276446530738364645647760802252190197334382447933848242667013719428010973150062591713585472143361366222185938852868066881433819567315909802940908643530257242736599791838224677785896764409183587802114399733899983694813793334872248967257583295824480624207340837683504955750246656083702902969851606129075334615151580481177865243874875942033129636623979788929719244389563651509178996167965541950768141589534867821891883270221006282904638385412825672009645874216249962709159209773868333480390725798301527471985280788067961591586522732036593185595002414609539567233709671285283827167365910871009208490658875291755624008106623358051935214658788400618102085461020047683993095222705674168453212251055182378562944480329628820682715149167499388781653127878716981976008887762743466780433741020606246842571651258349998392672617012638054896087674870555496195387755977419995900503814928397490097681105700965541828986982093011788640267736775972402293114146189763025461668438853712632088221041847065786279789726624090066166544427013126276425838476885040576727718911944209317615128409776793731427713621557822161702547482956106395171719009683649745933085237722704301960856786442088979130624504958780173629407956955272017534331175359874780388571607883122019975361954536224560758098340711572883377460042020925746860453024073836900660581691858317730903112803378805474728248488403147623774739741692076685817109645550155044067430666394222630745209282249127654211407813186047189393049583004126368040398392529334897148396922365078518262130941596357130556468908095611141265252573812641445157001855662964174095809429467991731088414782527264669411433434182756820100105501979074777021801529419333722849656462575996205927752808193249845406380885123123198955539094193346096671256423318167191526252575109407811765334229862783997206405807714619149904009338147764699224134344397921864961581018960947655571051606053557250314198288173236340767817279233210447676622705206220001998100130532983904511456117592353914761540981567017149650196855395399707902586128557296840175746918490767596255355520989542377881684280856138339090527447836368328828177237218719493425840536854740011550653880228824785414418796580297127680885349969388338246632497873093250850344867184149360119123292514299873519939003135020160046277040525785215125910660083741574849391800291002148146728927181721281302474629477227421875659389096340874582065743614003809842544881313966270698131817062871083142307343199405854643241270207192663442497976558887773495631050868426095143183954999241629329593454840103276332736558753420395122462431862315607641203306840452672478311931434793260704175684714703374237507648280367733508581419201452313037200668558080262257290160065755045811537704188669569727276794774475844997374565711807266766825834587282113890260819347984221517976864690462114308589764015433742239130853048956216492374155796609727976687297041615022027821936170757930731680068503288692169047194469824910885896443457584950872622418716573215756887282742871192541662080799690225305744248271660769888203013702831547811339385261411898710985944762711719066840712526747233682787832219785608855442450882041249019157034503825687800149329918317979483670908986535875558565716596478040133734067056773806371286210086832431639575289284126095809533025841181082792502188159184183880047705970540881960622691141796735624271385536390055676396228956795440804547784328291584167881341852442506282277965143995637398696774293307307973783704480751891255370441608441456535043162427454715958212696183618640451412397970881953074121002501777685471347932962946878260957040208143334951950919280601262168232359928203481321153091929388195582670259053073687096988121811172237454529361848156269803143262249772138246797957886664875494150031367682583631863800889130263165944666762876446873050631090400724897158998332436123752521246222613335724725704787120128853130097575091395311120200552577721930549300645182168048449358942326044204466489082856315517844418064355462670089917821524772232909286787131951201934486535171265836980386063818575157108021408125887545322753253757718089050451579977710253981316747160440081657082872569728183850055963399074908136365069356978389475703313182821958939696762457271662786770647240130068507968834974147394907324754467673597852007046561009297334797769201286894784216045460965981784014366196433473971098060369116317288895529498488384074957911005386107236202046284705335889045894451828587897253993314024444680979497758354639370915945734222819980508466827494083330457847885310230909840523077772253431748569651509097318768376614212153959235632542914256932163164772859396627674993874227904388114663559178831873266106434609206640050366872558189844477855411772089120525840671828532667322201590381906715577618596606185209169438653107124913422462216395078780118745542822536093016695438834087413383329639150146689682055242220992890804145205028501256216292303437962583618589349122854500685880007015076604827356689972287609554853207274153753742482736109045045993624635958434062004333879185909681413344202071019137381282969208634175155882482664871562115847914271963760223091459310983138314453913065082012109666839715691052351823654519896241612595785275479448140082446444065137690970981589405370125971502795260764346009238598991857383020226402210845259358488358251700793398102063472456957288521495033806005811732504977860138196290195683841670564635382651832638922921293251354364622353810190166993089875158569291205549921559704522478522589060229922478901909162763053723755740844204245743090659854477240376309438303956291738023978112427424349335524735287225256801132669617554829941929657930046149036060082862167957867736339101557380089129173065372830650667366742059429097992689292224117441128183480003104121082192270578392400990564699908712774057025277839422100844917011546657716508849419078507490900653441593364904557538638974412266588284992091762901908809065772380153852274279071936421847776224554647216583039257560876320449634445297707592163163073564610597370284342915893749442740669307872654588979114440476890221303199035665286147035415353282281324901629335809926272299705088295844256539063765135804301177032749317158214944211807222751545878761354953821151558702193778016090044015255138680877287150204257334068507463514550383390057807113482391369735812939907097940712303027598893817214199221845113152179074290132579141504134003096839198938814795690732851935146136574263739991709236492733563150504886322876861586842468115302731070509134802220841166825876214385389422813918016975549104523634961427904442456772654297345697833078853812154776004309484530314118604067183833770091130086568569448112623497370279956384363302832851050950968617069443134018593761989471490456555564948326247021353591675844304515164605096091786179198642153596804451969964669642541737874759204681627790362806908588745199432583088691633709506039103998017776993997476937012470603297458106219363781394834942671930442600855491744522147910850966370807191422521966578898674082767580606062984728764706375533417375584131351005100529458927737791631917868028990494398533348475673861887017539218175340839781748823906167783196598419127215228165355215610092403097657549404970438749670495951250138497752066519968019409812028263860194393956630643874461702977841752303608414810635710262217415538500812521179313353855200454739423074279089252403170520358341779938689195780637354783809449324163976658733827059781915739556616829625035058267847692931713857390222619423253765852928152066510919808624059975037175338171518376014294756990940972480113432805379345701225245786367665288541252417556138922503207982590578613248981477464522837620363516569076887587023371840668350869569843755797580411972591520575599524357521518045139086768654617059424289584893715173526480653567962514834075630886436753697590212699678940184928129964616474808196350880042656455346824285016496410099673611485568979172739576149016743149234311045616424092626565302954049789253413441237563653147339351411396746387468054925949427224953103042332540607841605970338865692087906078493427339872274924305642050280547036621861439656574319551871359499244294516406759366003337253890735365690317110066097979737471492354404562624353516541445863515512711916405395590649984608609698719332663948109584421716638433683251334937422104110971014442270339542450122805426714027628485925032865957268180371839686916526152244886926981737468121698062023073580102209005138579167170776670385948811804855248361517142363016571814528039076708134196975640002821010720920321865657801559061086770567601695743726501012163828248623279534069069834706678242517590944650354793110536087875978681381236689518841288779359863854075561758518766570542885008187401353918640036020585073758976140040268143701624441890367475090615664201482154356958975769576972206132328225933781069341482124680591239357133889971235067615811744623968123441753087078020295522550658405711435059942011792564072008817848720377675191531695574205077522411801136680378180698096503353597005026724945649880238121420261783029473679921672251234845706887386245785616154501298669167046680076773122087814677618654555933780274172444797012430160741637171723698094020770888388688094750542137249736514127963383155580202031993712278624934512132008228888132849617315583524525198284192009923650466171742048131843834612956582178105514668728306012315311102724262086040031820624363899168741187177775307649965591029898465607998025584478317145419668929252408517446037649077704173112960167675192648555234200439191990812017769422872529224024769420996092858496521525177090812563637646124439562699062898039593589188995884745731877659086462181747372620238082171825640469030271637724057016220496110209769097999479295843181784031877991624944064004460131005993631398180884263354466917344015809927351494159044558384044051192184922865984147470412238019032377563236029881742360388997512205829579618639914115620676493685957838200981014146133319508242852235209372316525422744303963147185399199286743265617244240809810659785149893148973095825274740502660457050443682678751029384476049133405267541584649246432270713519998086409618756755738293767837125671217956049782472441479075550022753200023343497354945539867194891171026464999695393064734828454421632905094061101787216292318962616085519993868993182796962648328658776265508036518809491512762485581642678557153680255320908842745576924793701616588300014771036684308215035682736481826137182112129693765993518711018068533311076550890235038701806145735676802355280229994833761068272867755485978732651340204699824272439421444093271198281565499862185376172463078958431685664936387809330491724145352381693996258739617182286365239997064488503940490664962778931375844536339906166926597968608485833282830336329634702762725017388277019396747384094345606436736114695402877116506845286869359815597325112622016458371044583774308111225903274857995387054052107288971368767458157766343953994386686968524388790116273800844189888281442944064359156204348298355165873379557024118465969859102979977084790681749110216601966534694527140193524852778848015375718207682073223805223445158285295668592195490451209589756432143229628582835402620015097204188937558898708801312376923171577393630355194512045309902556005415597878059936846593524190175207450889363562766948109048443191780630302167174346829850530511432700828021142572220868814167627958973161995240135032582937256852559789137683151790830732083522937932662453687404792048848644523779519820450643315983243557669989820644321112386678647673874196726919774974282397970239815579639409801374537214926673887465564650555683818784929710395915624933901137545529733976217742082740057542319887112756860672010854233906293582628508205542370092566757503987393137524519657242750075889518077529438244116205560880898075644542954052307709016660705427474876971261369392484315830876875025631297107994631234441789891003124906678604366692481737623796474226894499400940694109087861058844455112515680618154622214616899814863252706382167332929943829436693656152670480828657091433280998320134251322608495031375201442866453203245076909668477066870618017911258167487907419829129466808062717043421023790596752517228297176360603663331888305872638699911482549654178767707215131223943642905674187987255131918394456394881505727980566664952020398301526861031728181406087819450633459842684269814578021173424177517034731393397117882550260537144759843751287533126542919358618903307463334804914452164068368374155576292044917593740838264638342478065321764538446950312554068787268577666304472224281103324308540967645309274474663136079310623354828744412573378657945595563327991043669378138244126223039548352044150341809162743870287862746632848014315571659769183920651341824018081346648852476052288012398736813340246192077067005200123404360784909306621833689497250564704221362681728530310223724264538379423588472341734773484202794030446955803659275451726187207269177404740085698329892984120765059601016742324404769864497093922958052744371176006076583672674626470710468145160089498652200586899538989529270803993120488178483093042722442829299990892814316147367977160446064084561504744689603910505516894416081838863946278273410673573963973962905095284490011663952312651684731692863318810393196392554927975024506954311027284048176585272898763240412331369249461262677139968826384795347893000627872603316753119643975499537017891487262093453388890726046033023927818699716415387500165396448409508917819424809011786027795972117940312438593694711557608407928214052363208584781935961799225325591282094108024922552625244310104185278173582679413653305421637886432359872581410855304070132628813142803043020801740441125612954115193119342604908096377365824371182732578714197177339201805208645107525759349001354547171397632478507916070758018203312543989661412776120574856514265272020693246696526814474197777343380743295266322762725629488949063679131933566440614753140635964608187792990040008182193256970010491880267419419788698667197571436535886022379282202184836609809944705251334414284615498393165004635850081025963234663982552563303415337592307664741284058403657865192779174187873564276064431537692088736913760086063372625741528262570016080867526290646109703222560559881592370323299623161641758236711298679097629857180915973481184484780975016735892783784445521676229100129367154665338436777299662367482402861898996656935447177464439962049455351723288740082211807872462734621844940438319908084136977469940314716945568545018952571999092550560468728381785578096481369375534515542460486130716157789658088743968384126039943156528291345646403369969685857345925959058768869774555844280497840585209607708646412695372737294546779705290324508357468678845421710368588033589234984596382864661293161757586640457077002687326192265469776833318236418757591284923228419417433715031842299180607047548735441174013951867471755138281558227461160941120050226301920109153416925132789350658753219195652126451187299093777294345077401832943151209173867412137186476971157850125561675324056957575415686424590974043669138966161482384726265282156908252277303898258011956633331202805429344207275332859895572159518549673661376381810673088831399910014569764308931420414579991610673883119685720409325506104398758744185513043397268769354977607101517726344106247328370703054940880458131225374959021767764400894193418407686460947599816278313372139520730493039786394577939229217710048291198567695741815592129018357489847288497015586976246595278171175729489745058327237155903396182796013100001167802527937386383457249414784851651467037007773483401097908154845169166705504688206510478930267908530095328351627178962121641018354021990312000657837094653567231929514828781092518085274779905341942625885140471808193351741377790230229763399393762479665542358127955413022742573572675035869704367565533784943844548880024644843476258943369337960831028752837441449457587110141285931020386233429372969757438839784892730358595386721148291962506219245981421535130574363550873702114108545544361318645112467754744190367491892093037337230241506095783946692989348413674015161003524604510952679790551271771368702107993462828331674718138483824533549126785277823467503411755724734413358862341886781281363792304450871123629074934251031942499039449936321984743092894591809006718912327331579279083542151425798673222876504931345649806672256601701971011097263022775063875991703055341102144419194736065051333651362388939037723805153735882562345769406345778900246096423056267406493971545169025861987559288179842986024453647880671215566261979625191992957792746375244401776650726118804340485571247625582161896409056756531397008956109563020367972844720731515787083194144173364479028125359583295120223689534740423238285613238165584420460000181515091726054873808944788007056328380969394359468405207835853751421021420836144718320289528516108074738417653421938100571540990845239264050779836232398255374668140423333978901925909188628123330051969829700374920606670680659087441639970552911129040309816931125398388789264120827430135509942090138572264951546473900537452930224022613926944963472368013508177173454396568709802473615330644501456035071357921007774212751884317811055536072235895976260413365710116135789265806876288184167196116956079206458608857727856669592041047703645010173752678126743644820992499682542039022486214706706799932593552750442725242617279504810976705462733709711249388371842726814517102809818568307075432845247440849587222782476468017060407329754227188644792550281901721208738795132289631657125838615067209113601467535761590410786861103982435265842820711313771217174235546980422740120211441966789636237766954817679664620181899871176525421834527661268360995854578798425583328685813083956002397388444305452150365237461529926417729751820712441295837878412016455470033361929282608242804110462216445516096420280931452117642835078367977249981678832891659500562048746305621803468252083528169875864877042062745203607110415698565971340059210950392369796749643147831562002481944535055480123669803519373790438947045566995242905654727313488069290548782358035046373664074977006944159278899983289305679740593549206783425018234628078873580586516195079285410459067075043364190771058972768923326404315034484546984344132735678732898910831343471344885516115401571812778973920217875321135406826100286298477821799878812418385102021349147956869911971390866771333721122967923266234606231573172090819846590821514945540840295756275839515753058905393960283424414171290723368914830649967659739921705648218294119872971006638557091022482969485413794877830558416034085476004014541657873972720470601002679030186941878800851725292415903440200952073664833465626981702306121272192978287092713846956816199056834404408515768937116778896126397300340641382455320398823872622361520970897354216733460394933343376726854742712790388414136789563224579862943851124042006200635711973020107533160199384914455207429150807699654984107165834661160947738079147702909629049769850808530655755801043683529288474064702455296346400406687607190526164352148469470807580871096254132679489310745819401700537197299901054986805959436183241198337930881652829137056631321973365208488767735651897303156256389481366471341955996837889402604334383541435684707299995312269955800238178307512131921659728300097657529933250781220619866658787095890872196839557770112534330748840652690965835295675369366647506368990472521694700109820602754638564608179745837655118486651479136617669718807378367862465445315618096458836241608751584654989692706253089761406053855823151836556102048004599073536761167270986061997420733968992115040628352256734701768040761886832905162866618999848418591948960359386072989709198494815088658794355083659316543868285995034586281678031199063205959270715929788812167988688376477172684291142635671849243181450203196292980693359670237365088670413868688101054050086500025768624835711609987655151957271382747599626022821109148125200171488905928947366626269101178112997243801865757161881043987039377162759894760494279532530685744727586242337595187316688622007906571477955554452888605425189441924898786231784745398845470802091503787574700297198221762459967246960153382116681036511229363970719338513513742205030127625610956410209345756285486392320765645183863041846283502947627679990541987451632112394472754685962091381226434403166267226047544433476003629675780220236104012762754532110557824091141192637287247063015896815812910284351017815476673612002768394487474884109235026665939231005071123775860125340501824824568620584560897918174382303460665906184141987824260078035256023446541404781243598004735256786030834489044907292329851228611115246831292458818613551734831017968085048520561757242444913361216884681323900714016565011992926565028487286731769237101710999853669150235121137233530772098278006226970106212344707085321151950518175594642020930633361727239235510787031418540564112299518660814857208773958643675840407773088065585263464648703961896404623018065140731396584049210270625783722390609469022939698088272845453432395418946334352051383603159948651149464338784620502420242714180245792962961957455745758542214401642686534112916097597060806077259192830765849435595471619179933925682285346518520362179221600591951906682689654192972348556839971422292272389885531667411983400308632653723694418690364082574765186393969233803894488143815224732607445805415233424030478790127419547107759111994939101754575591332832735447175477238539382608834435832451597288037500591357422583416561176474953385426366674308570393302288271478795005375469879296665422358819981679618374304955612695915422851935839646178537109667000135234825712592118547479012673596638239409266892883583007634423440107768809008545246020910709768696550667765725937840110733924713199845122280582654172106426810879564424087931576753702356773903946706874261025102081062917034378918680955377403452488735048179477099235875354303706877380049074253882493550796903377959752380301425541742984447070390411068360156315144754529657035611107488288183542978014231449422404395175970718294674937118750289220406391816443639262123138115348042768499190720963914918944484424480101635376143499399858545769629865360947286730395578520873540261748357607054229697923366085689419228230716548390869781811901482913447499467543414335993493762550125689430894975866579205964525074966428673306007771959889697224178165953934998385972642556578648094698596271580064478737958423307233195680391286170563107716480599815320146916283768831046451814861995575290237471504842226743912150141424695389597317368105706922230024205433857666802830227608429432542499076693918696452203900316147796299046583790816326141933916194059027005683100348856357036246369827288538331767287271369313616886715262177381748074521242407681221462492958652218962996168196186067929283343920441905942021811421107020974837883964487278814695784256357134227671667813786295115780198556738506120702633000666357368065678836273533853726057071652017763864529555338410636133289245329371841993614369746307481186006762441587036897059604943197441338441040931363202765031181653855127190508702417734366986305720917298060146304441834322392668987387532064495134203648296667181219962637490651801885787525479547533121854218372738435975594161521941122658196963042840648505056248749448595096022713967407573290611856223195205639983673916542189007393053330370018223004576480750364904638575624943066759389490173926285282325963429015344654734447575881546634517642481333759982626020725181329780042071596333228077977972689239545630688942189358800240826886008450795808028425661890622153765098747698711137446822655121172527666904782206300071154801656581235177862219348094424807389908161651646912860153964447157745088562732886652262894129613873905560930890126236474084461081705185467151024040026766600502353117849765208058101641185719198528083410714856797934787862197083724302038064910105190124724763612374600059906882096987294430784820851529001400786348385373923401008468767187068654580768311149514097286600945440290179155701587120159984083675073278300440681104809639483067827192503747898226192625305745960667632588715356874600984173200313580515190076855426889516536262419303365511134744525802740916451478007166621904503270829295100141224137727432432023144049512957736778137611995516361390048299887874806556207852987965363395120333179909104383196526667698288906295540689950691658858020840172796476705647274591541642373201079671430471558204559076665969787825670612408897753541695437802019541320109048563840791948161357605329767022938731194870108770765902438873002525244529987550715160969487598528349324018979773686888169717017240884576510192452922778455277083455463203346905261030762094707078156717162626495263362542730119343048157773069314478060160784960828082135564949427898668784113852798502928609504533503826876140308372326354391294608780168183514751298023052320101056062579991205101675926128711740533078660813957763485671203160912918284276014230297000990688450632777623778725443571953958909636847995771303897992094771817531795411424622155350773189358358975450560992307365280594467784822097533951866493241665538654540159528623362586257153128414010575848332325549538508892859979236279109522649139259085459861289232681543386609015220877912555713354985013534166807624499720642980195243526567392974299164002821141438510928316323754415880436196531031355654376205104105712689448694801556904904757126498439987910106911587273775135732671789548447042577820793457984205431958009909873398059516317436694770631162037988616838520146124829110184951315304877674550798693203798941780079041125697520547496037775086337425142462079546449096387737635094401561628798008904303342542927145329773032382458805375226260288655661569848220514375827233522333952033349966956451325871197508377132157318892550527963940722830076557041438220645715641254382322721557266871739536381101143677826830527602704287509737477192637877180940960330644188861347373878387529425561521964973686901968263326222586867650885787933510439435200790059631839453603341165902413840944374487969142318886357354491013397019595549886835884993376779033748748093043178833528379230225819263232285132978777232506770764301507921961772714174758833980841008771136038758744954621434845367318106050142721950099374436385085397725797058836037819817670687550077888209799532327285838680722406833056435373087862266393377548025510532645343935995935637702069451884826664651269299966568984810055954376696555288530413372597869038847556126869714827777280587866870292938406841202814383534633889596446705077439827218019067942965049125978331379290851439095425431729533521686919567227487745452542394307044103125767852425131810573997277007579743132148975615267935180646335232314957384589357681687578456922507420820885646557702705805473235609613817634266098506694230233380146172533539747680349440042056369721725386912530067862853632388162978504122334659806833806116487155850487508435509661729146860449899121598127912095739202858092803485262037901039023415515055166572930503712390351935703952835057376911034525101383457031378906179480527735112946417301094063045738726595834497273820554880554628502344010787164796961668175892449637132361758849398761925356631255695211094449879338894708517363666995638442171228010296892968109308151059052557327952471141659727543959602764480457188642700734916440260187952324083222333494787389606681102263495695754261521287917745187219181244342696941626705122931377147485892348776825546730295197613625873490652396615008449387304330745984713949132911840747846910364729238315205454208891252065306693654663861504442228576299189622117177804810647803400700728771834963572549261611617824991748865596326883151647550284844344559449556566758325750652637570671380014012331665951482617294867690205750893904470675133744833723757694345442167482452551785129384856350948879236272818125163943874387376268853629636018110865267830294237498294167314467609243344224522823676495734743229116251513917678457085953847233902735683020189547520217809456887806394544408999860689610918024419749610603577403702144665795043112730827722608614147835628560349967050679267840621315677225100128693833558919451357888730154571159314821137744151282163811113461395355566894760158910287643792086269619266463831050248685396593612522787106042904007288715407666959549996674204964784283800083981218489342254547033234556031602108723892985808199703430416269983199697650226334341696539761548696709331742423698861475086183999017969499880106890068240414602767397322451723559111795419986533671809954927797981334407744126748457554004048093973356589683063953675313011430855885807551702646884376968409903561756936063141102245316545487912481061944729951202620150070468068885415650261393260871906632033658330831641139153050897878241649583107514518638355633269421191110758132319909654919084801181014058804001591113316610102989675694056905168653993893472166286417014704782003691915871302312791472173227097047748290060624181324755841707564296668774922952092396973354669630008444466884809138992627538549975549636793352381639567836013664430360945551114311751105095696145312236428724177239325883130772466639619815293317905610993694528898483442427286951594526566199846624091478650327521867272572335704064070679470248539907454291812315004068222573679049047154787097023063681303346429554709636434100863396162771371632837295323874285572710950710317811922666118629597613554416566538654031341497345712327365809326879521249575318799626948494710165519971087063027934637620106363371482683444403551909877539215860889892501534821667904283103418787312793887266621510939188136103493646902852261386229977320379333166330077144695880828637542222378113319485036022173072951102369360353625890731200118538205753729800780745800844680969963272842129540748195492706436788325577962842312105778035271756742252854084495121760742161153704121462413949591234460344239673295610372329907184106212008113405874803579960178267660873984646608590820045426126903938526255574670352239375817677818747497091395006486964953773896230548237906566696262007625286860842002073804426324865086779397062103425310181401352396993440552842386535127580175408473689632415926399660606100292116247308507976439814758865144671330866066143420198154246821840003537818703888983699317921167673450674349513605024782911347311491086287499913941613443970107234629207618097094335934160843191149740598005472913963652287617825243671754917280062945424661512409016843625738968824120558280129188417314191112151290571536098760253984366131393758216428497971915233232990336543917026358341561996099133151153256109933215499395328849420224545626240566917069439256714441654702817420928648452201192696934734438410769386530727329768156735333232264258001548389846458719605048893498578546408801044533622288431326787326038476005360330125519941377900280801488869291852001226144377777672943429610438016215215405102128680634960276234218174082981671199700786765798325063582353984036287968243541382661588537501161024240393312777581695116884427436133527371990201504910419757342129531535741024164451906862737353280696066236433164900471077585738019138562117679213973531292625158333742815184649754292383388499957052795060382480727578422155385920643757103525402945451481058171938672291540619583943295249574250537554731323548739339500890106172120394326735359731983657770959352917117615355603219102682902244176499970547869549231404908483383416065673362278233948926621786040146172127102378723373070395136623799182060830145136269998417951455006609052761040762468579133169691407397945054334452310141860399647661079525294476433842426667647608346537428182649698072156867674593770595300084546004800631708868795469791380412501122822849736586997814333653167350156879576828101195854087580751473294164468684803962891774786759693269715309927732119901138766020785964135168188872767839204115408116346281554572871818344371146510412747941861063808025286364388189562782621423499257201108143874359547508532774989611222742940228125562668963584093696382852193792988744996432672456542823888337641608521785519207719787313111433564944513830327979872471473978623425105654793353064651551913004571261754765576407998879684006040489772834436137386079525106701576875651841747799821327911674531016475636758645415657039462638779458139675207910896779391025690052501529576332714766190704415640917496670791181189967471701372274921116676898501174380260205392841971558115118485094424585799036251318488967173649801885371624624050522365066705039775419600499871901698619429492741214473378615929707752662388721748731190790472756575015622945530834735218041926852794394187979644028572426190650481508652874718617841827078712770021597970088604316951717854909246645795477309558018698993923116287820975954395132969696322910044165550472501521926457022586837259857872216787235093965349139222024836383514486295226169714286317254954098980700060601948486530707664346452553507606961043271475631049063688887400160134721835562089881157582594400449256211974980818939047234235955436489091076613369680707697598890415694969735766418162477596435919606808326508280938799543589482499218996674282026344802392518358976948030398296246593539954615474754662390975337238263677308780549380559720769723311725861513150953325457206797348607962315144748499195910994256695130578651069071036155937475977059822487518917953694439858270324009262796518132672879168243863396667931505117272300020940447503819742264134447142652447991040223471385324714761582711894346613076106609414894419697578407692613204873031882930576011721285204007085297464723015251816747509452731133907637642053864782152058061327742721546574634631338239877901590194184731596694214024352084442504506552625690528415680248722196152231360018868495521064587065128449175480504857370402408939316022681035801214935887874874677446710402337903324796585638915642556467705441951983754683285923619901801026012893368005020859646513954910490292243593980509745464519439569367716145076183045586311241679416996662817933337412530386149311731738424158177881874386981858539378620311961063236992659409780074430615449632079661563811946555005524639932452746148042081769074847000382260301099469937517372642774167745803238282492741403239316173365856647693424817787389184400587366299700794767951831062662204216083963660341277472108300255331935689102586306448243093011361713318462296769153934688469584001747630399939139329001831759825778700349384260961279545392260695358114041807244120531700282344182383832404766626196032111644760128227149493703767108975304269354602384678866638130284590682828816851224339626470966104367189985533911732143262827063725132362902128992963052381299962164990067393314965644459826814031692440035233793285480076235933893328779886443089658785909392833046342175862974189615930184678994932739676879291322463530964370760993412946844856567492874209764354207781854954976731168450316299720505649483616483695577501576898415782385722980846956735671107241135784035900535485011291714551175533385786513067223610299181499406636327584070760818974257379612956259144329047926017623894903996147935147971301030598368382539474331203834164681983877177562785628309807426382011935093873202787541720963843003980638787464075448999624008461284255178518644970810504107325543957370106253742228948415140332445667855236459650889573641838396879669045547955191695942665513242592763645912781137038884913596675140977207655769916612453588381728659859865391322084740241787193078272708816960180836997351160653878747264455796725339301803805736979737803897708905056013947284124200974872898532733400608174654412964347384149000342788273290647048711186372003129928683112195852824252979266091691502967604641658081939194773827133230170687762987694063079252821101505075419475069775229401360237135874018815151001026859718999564108896920099673701420138227499417125501864221820648496338497070699148477304622851501878781100108986419852979550998429338429893875932396606577942861745418290569719791272159038553110859823704920521119887544873601763181736732376104483953896553768590247925157825559254419117216715547420794853793083198406212545740745892818130347628514099359440492988337239290339573199699711357259784615139963735406122430628552954419276253963177968879954896713767555534462065109439430375764031233224452174766133578687676787311296691226114142848688798851024520659830081665710902015231375826053281377289328594805663827152565463485091366997501847896044197601874075527755167444150276170425823274509055434201983647266089623531857118129117422891282382732790439552678485995680278967804070714972386328745449555660126015277430827872501023647092437114699950725865655065313026602351484592466309534396719635196150935904627213101349865050891407557747290903285030271977474762869047393526500733847235764269712221807426490187426385859993672440869459772718703201737723648400541357337629066587290227714967806334389514325687981390047147679205771181568272251109541897154481927034121903466532936307032196033767036683518140735219751118696523230676308442970672954087749261499069869053676005315728210713396178297958456041444272735426771871546561699592011317023897363078921661039496552374951139693417906977399177167052929717721874446921326109376160557340512332751456569058035369580698019325650974860861951934729085877124150497192118036942171512171523245607366211042392178588978918645395332267134090933379370138001854799263295923982554829860531141486327732499537586586418472675268588304235745592790886546911896265133813804008975384072008428974071835536640937046870419469243402225844596979564953142533293936705649240072537224291705708143151918989594501949081712974924211754949530554731687378434476828108146854202955156804091694411253329672220622995735533233449117840350878329323607604522164351014228188751626257963324972885116289673052560522058201713783030808695715408501926645993751119740307401189410280633184698735809202712872950579741412111993222589161194006018775558746537108954123457378736775279979721625165809251795368013309110205650227435468722646391273250723543339065718749975057300476947965291214661401812735138282520013616308148265582977469118814385782499790721548654805700026437039448671180605831472387222889507337629305770830953679572502802859202003972353265154268374876122019390956055054113080700954274045870917247675682229177906559978623306723780062859597940357436642402418824737618149532428405403518676214545900960192027235022772899009136115235902234004622213012534267982357195577199141297140833791846377300744061306301639396932446764941036742769254277834177121170620605626338626722644711229303706446067828316263132686151637967805747044166019332205894159406472340542426790873392247968077694533256281994976216739717428558561709137889922535030293941613553375482722088467371513501000696453045568841136045135621261153394357753858235028138547939478491981510178078160670833135785931054987073082485786975229923491262729294054349818005599414393796955143314972449781615346992749947383752808796774077324100666235777002980401522777142004575878473854704006218028984552446733301331822127997381629896091549485421940799796921022254024681585204877163866767963576370970316561799081479591970191264897535740252676128808469454849584578803927020941132347373631896762289075787373638413188600410350053742226627010043401156036750721379603030967330077434126779015189686345473747733275831654186345840043848308564982333789203078632273979788577164287340282426042077653428779552217082648699009173823195032967586595981227633771598782247283002948391851998254784293896061547646537332501551247868401869734667705760540291436390138837424759910472681884033282553402342944173211801551637340788564243421954470579804462664490269262031381000314069004829422445916914516496747390779926814850067123563628347194781117111999663321488732671959218888252952356049157577668297096934485629460205592880355445924529526153256412917515863502413501643151045276303348995072120431828414753805172076073988629270408676619177517429269496631692253537720516012139175431484774193774604634117690127130987058029865240385864706787344640653606183508840497226451289552012028695377664831472097319350298722219819948068353310921970938831940760760447040872282783846675487332866549996700040930194637974424596051493240699629911936382212304580517025120748204383068969357006116903121128622799592876502511548335938576162503345082879437005233870654414272825795961467268693826210309208583770609298251070158820481384336612297718150377265840711993629088846253428348358128089909682375065090167220644803873303084398070512241496452549009736858773861235135962405577845442370529327081772875483803647757254955728994249412960387906177332441076079436775048685856683469847723711620475567166141510595370490681355407022223452022598863467630987393388113304770569692430232182285541422652392712366972268318282705689435334336678980559767831644236596418186229961413312627603650625053150385218222015079327166731205608838455371255868301675989321166173569112532156709433075850832397724278396538787856105450639650182724942065075650793947247227281891471074477614972443106271558118988063716238983896755401585349022691786413483935601617740836155439727934712018592195688484411295818226600561457417222604553356433381607621078100733778217867557470888306184034677881709521619513092889797986866159088287133060231102298632133552841268038661546811327834548338262451223822201255326400003088192553218931410577688537101797689241384660755839254368365653348493828763075655560254426936490011393019146159999952853287949740174211295352622909234264003129796319589332789203173661669298243605430584931539608079360339209137217937887498388389065005924278704896979599865597721214672325633868976610437382353707585105502040729305962119770901018976722845604614780341342206334189980791314531346431912396055821930386645629460000255708529196141459537958663739118611216011763528896172387173486884883927841708533082883350804070756852452363931168067383729717866611570828601850690677179417033942584418938349638157001281919931259000772997024248348643594353556607798593401572810435673199054793914288680346566404720264571922613242217091528697048431003544244383055076242813912264037123098868110389479305214476070961111983635027205065720191183388893150526655837466822449595793314461450635684242610627127636639587700056982565867211813768183871021962783643813736907962971406681089743810375442208043711595929390231107446312308667949971103040247844009683841329506519692847325216440588563670102667755639407613986499873736070244362196050293888433023008806774755539587527835499984772386547357474055501913601450367992752694755163728327655727545037928525001821603342523929577964676324642674265580316490230106782135789662406923339558587413734772706098087182828987995855103918075848509735520512575845720988446376558847896886645328499614292104764124401432575173634425073122635825038417290941892546351112975033659991245297687887902641232995189565571976853639337868814099837995578539524613055778088769910567775923921121830120087479061329506696890940694926351108025728404912107281843719768395644865929690264985155509574506947698710037466998045593018772899180155814328100613772722191617532672042651413648087257241784314455959674530355351481834093609545716590088409286059103622554642748516761062161175029008829598577690198500763052837856979937787721324331079175654758785268107098068007056797818994695034340900821413278217438055294497119477472570639308528557137470749338971397425031636674124806468298751027657369894012478691520505868307912207890512795987117627244923495879911461747802677585994714414169387625006938389227322593425943846171957263332343833765789957102972689545638395112380638024465303549098610735471492782164191577985382338476907690617926574202135248432559244513213270576634278171259475158939236982993958583781375889913790496656209804986749028952033127548807864004617371600433633526202520677585637063306981981338063328734141389656168344538463088289845064375980183495043702124667722140232418049321515376108620508409664642766701292382168865382846943837854198955817332851811624052915619576112774937768887501862130062114601309944128646754715339893097051649801280762872139905515060480615054778405622717384900103276405430158307754297936840600026724852529942558279867668386588406035068071582806796812517134071851593715398777355121620207412251095376264887170458456015340333799925970609118817227119196041522555533286539551010343599497151909987967806707956469480994259083975206289389890295531110228964868048527724680538312163250536390086320376619195490398055818738725275973608775110904399962818622070161061759288405051862960731559080607559190266917650685333284817225845456006405885369060342544301076071908903507888255219515616946117907446621625431715222837854226479150375275580478115987439862970607801111812852233107142008784168949391584625807546201438389401741544364767449533025326337225142878357424965719053944859141087465740562075741619106792211662813003894805224437188515146650781405032752694233594486961881463411028990116762194526727455325603363948685826461374658216258834766173151422104417986880198782701789608659300629958936001121988623439002700614210250342359195921592084764680944840222529739035241535564516604684275551287549835982212879959591461809197711638504570372156415328617359303842768401836230218599595171189133515977520900381754532103846107485197545217454457352984587575885189762154420922575332993444286266772568217967263441410559528387001093773481293924713750972803678518453319161867249829452024141798817915522412488813626904502101163934429976791372560701118520758035233263580037753129825289020058058511259227501745384741040744504862711664673902894413027790604340152695649452459807262290922078369601354494628228398960012338855909362918569633961200949278632899911104946009603219898985643010447603833997939476726570744737593151651093697430115941537592045880987766609900435796635100666978982906580710656612908570238492619600752627641737730603740349584431553401535796775737139441352760291983928463467329679858783865383398757609394234531836485320707624674403960998367406139210100268936493895833116471926908408825590225751919472124606483563165781249890069398185539213477193757770044701837008395153335089033560211829308110247248046147696771306583324771785980514302661193357084073863416479063885793028503677055157185709223664133636615913568572136149331842053628809162289718268318982350316567793916482093383370780018430243237182792741308674233712923187971692223199963628439981888258787918112407376886754831078447450233252291285830108366717773873185024219848575013072625308284655574742684035908248433999899384007633748973752886409342680632487291291946306246757257420767729970281250596422199836589213309216997320974009093857946096583452062323962064899099099432602344080783220478521628176541613788496628482986701347327837901520649735493802622665987996811225564789123914767189977782259238026152157034619810755087023644382833077125391102140068504829712163628608036754521289484713578085659072160834361397975300793131757200599961970345833831659423411701182569702091792008365093564671240562378973557386368789400416701466449756375824185546419754231291712842585731379744022269582537845757594643015433944402298588318297026558572959941731993946302953944246407052082456587534628207691526796281252608508412876668891134920344920472022507085663363540292658724478198606630616420003695154437519923785156271262506363668887053375035622843727888173011682775406840378499333331449894426940526766721325249068536872610979930268350867935847791249551864241691265564943543667408117976809720914652346521612461391964588167592503128067842296744355590682836063952779092764111406463135043549451990033847478543488763245775866046373752326283040956969473532757272182980945028458062420029274756739227556709371773185091088325537000352783844521666396984590396001615907325434887089306588131934572023880133062088258500196915330343373725015553070874773767669362237294863769773002023216903065637854131335915675816725267089559369705060335327989965565890061396975495977786262434166219126542246581275458837468466310724355011831584669993896522667491932529519676525329988594172318259435155403550647725429893236630763945963422327161902691920532124094223503053403044357682065074162909914508145445338598118095594376583197776297481827336682383108955420689440859784802771378890434190708469685722533276679038292085534221040633442087681555775279397056558736974538406832384488533806297047168177620088634031439721224165090980997734275242825724017300928405275313131296074547761297565974068515914330568321723055686331396357345242437447046353409792795564358787159163859605117114537460290526020354277082551479999481365647850994240304111226005390969937258862044148708448535837027729333748723805807456424990183657734882406157485844821350676247584004323833384957857076671453792481830072257210889169721299324874838189165701227493460790835809503428357786315513151093086484882758859056959982405730327724351051102707086736155170967409948917952988087150446651190674069663720768472653487720388982095052925397647696032275452095611595605947079699082557110079512885617961676672747907371884180852815277771163861960557972020701921951491981612242550666578296443988960859617666933987787687626707815295339191047497158517871390504590557298857421579793525378371653100877635782096969069106050897366596119585845144699914527672500704294326262395815437317281987515402136093505399476642711754967718738811706193011465695318461645717338133081362896707905546155268439202367942544664845260541407717584105987017718475797848183186162274151441179588779876375334717974317914458469156798221702968731277353912763601345561512467103429002561602688387358801874510071868549266159917497389141359115291948962570529113456100011829435813388344660194400183389526509846723067594930451690831358925382713792498781857147506002682411364512368922285267048984641104645334817447028325582177667253154276591969655328327882062908786364321099530945682443491549535106158381829459952356209246027221979218873833628590356836864240136055178883920014506231234217065118593149422017714367538070321046531603297925688844303485140319903557005787457399210631435931187474514807596226013953449989608674157814795034904355028738005409296589992061476602887648685204061248654719061944476410299642699497807729769561892575053343375964223023825780422271704838689954511853883084256146330815578176484849489504603184760353644077527400519896922037812357682998833275023687179176243652873725948246827358831413498064943267270233603841680005340105243447006364192716303924670801821237420281292885172131545107975664670267521816662406426840763689829457853275683112846321172757001981035557557003576877368716301444079161720805837193663788565284687553409266287564409100122715244220693371210305852777579535879741956760830435587727398868549024125568097371171127502015086002219041457968851072019848815600871510342851884474992337271188081906879455746482972926286607666104743279836532896870094307559467567920992681599188960579817970172889120833253540977181908073316766098390697658068006467295228514698371794931454807142864675705661846283538758040994568639073272517607761781620679871282018784727425836973056154924673344173240572643167935639211965646260970507972317369308903711399169752283309310492392462121605072817713148264158240384370411473518752728219522856092651984655236757552748410066328460094497505202682247432480241999667159382845117907490209379113792755012771720869354076966434794364963622414097099181167020716722606073769121521556837924632543822440264658975378464996887593924882173117314407925494655566684471022248961871825668896632351395981221957516427605756548475654376057795725293012002946683697613923935773600006436737197546744667239780669594517936750482170099928579478826309914473751306692457499660742743518314125607829783123118467063832906155982131012599330449061243161899981886597531072372972505598884491536888605673300111319072526002239169530627667027604012971968309331452775398116407387359713917653118537784383399750485778705376088869328716757776217327846414508844338736274831821858481330715000462338121104345805993080174471030250874552227797768981129635719114767084998025343533225403098112871838336914133724266950905231447438120044418706246101549853008957264173347696158412347556623030714882124870899978621115331596301854699088845969189643150625366256169424478153118213759342512747395736179716502304967115177096478487702002930408720867396744804356827162652845697205184088610993801904264951121691651032308951767549608544820764070343567397997649667360750683122221808555860873016948993524975597487658492359405589376716196486086374883948926380549796059987560764284522748192595276175504826510442819238479376649363039824148370419222931249657779792038805289356226960854513121554269925901125862345216698593779684611274256613797009208574794430587862001150031670238974090799744384539346273378859281012372413158552226127651848372820101272497173957472364535978959744859447414542979253205428888933421687247429096013207163132886862405179635861757380655349776908693768763926137786415320741025305037988390336305333967201380860117780505910190469132814454568919259206045577347469395604890201311370540922125778648173407892608105971914718431918226176703604459115900848995691561548147918983337828486977936738064669954915470418125407386330759544842891684254415160397188225888134558138624497661389622721748291776073945514909017603156784995518281373006988236533993879367348333536862665029315329120124207171561566304844535318459012822831311456058667237418654426374882315890633362501287472212847458448752670526011615392715580586837485439752188784763588238143441504280093196140118970208359804733093847775312102743718249229481197519544867303966161322504233687689424923308073926601706865860498669998397739084910624943498978889321857413539273104436565220270550602109838090318961852038860753465838204189547308546231850646741725957550274722374238075918409195919080787036680927955504169717885635061317634995374853528954837644215062227477216927610837933169727233516240482905670927381864948580092906409223829530809311794400926192199064405969389718110029363895396375238330141696945163782319971497557126090524196486255185408888035322739387313488260183537965413430364771927241513423747634892213272002162711645988858736745917273673412780480839492126603257911349263415713910320944644345268941606341959538249837126964994903455430842656268316169498778304920635217115040690471229335287996329463724154065720070173281402259053257550234442817620630959090259037246613541744063875162322306092905279853433919574342364850271123429298591388943779741904530998255127465800420053524982396597743899905570503760260270075141763825394877122050887941674970407520617266565461569524265124344676653790460525149072304852413137373875131869934029318812648282858112765316288349361443025051466220223865747862870405195156873001505052123237046882825006504178424914147818979226434286213807778481802213676653922658990136293616238562309937484784958313598766855623522129521797835659329758442703340806754310649989227198932448667341209636685456106736396254061024051608392972487264390921564470533067103319098258566886400059644016806514923189672654216564513213152868780243563180928046229496009821101035835293034061495431777787287158707338646795109188814769410665903174052674576803341927116906009365691020511730569827005062065027019555581505848241540947896818643068421419685855134089858132937316985728583963616372320088360605436591518890248117347828805739977638943894507372327980811358564958226460904903174200848460964397098424136135055541130505196847939401405890174268504334171246820256470522937449269501018235263077418861469444588812011501305213466684717338611586907686601851522314101717319507006749059516542063997131212400959486729153989526624856069866758724418244286184789825817326465441670873330606815596543565078379576299432039445527330359428035758196506416835085356101900084569180242933432141531559553426370343012944039951644126870387598436800572633038272546550359641035977808996613724129735301777168740005968894625519510859603226988710877167588258472278466157978636494874595284235080376399487017994225928607368371942189090517621838563157366300341014025416537832479366958942366421231265633837050484999514119009072475155353779994206182687686229639933298368079054168372466551976364772954555216332318711124614236786817205437432625366618608314401338106923921536722315778905242576334907029234904431900375800086267831115095366378594574423270865789717295551184002110773314454681384269491424613960675718157753787922616417849731353538254761652853741483013902762412364394535189535149809970565175693475904910488238936557612210867216953294183326516727021837305485196841046012388237912715316910462958102441018149971734320104977105212537341248721961708537263740165754496534440703549327151614512015242051856752061952630557511795916854759150655001974158361398537331951386670944702583216783119190626684647793179514160079310989139349006686881119808260519583780112632678658976913347257816377436177686014132542314599003025333224001761597851634835367874055402817468112092945340115676441149146396943329993955372654379812493017602416938576139166038691802045742323498303954892615165270831548859795671865439435190885719308656937242143651151203651940743762299815600938035256549056039918874573575449074173130676656500690859900219885498980324271878163441725743021919420296398625697522894191125785149972689791076632632505852434296263320522300429771478518390365053193629401718238193934002689038084634775824567044635356659534193351773378442461388202108785328638606055142265527825773097858116088347775166457880832523196493469364956014777155764426820073904730580920476934680075990202574139761821554381684528894044993356843654635620653808095666108042899372872567507673168807683494186702419247528339289053333354301329566260046285723074937553037345463993867637156914585011433425858285459082697711092476396660302562331140009363458910292394638988376671856132526368495896665930432459818836192951280573692918477566659612409815864275333328468557437443589634808778640295597656776291330429615196752833868651477784409815302390544185785186262306146231723475526562322503060814992687049878563697959077262444772696196914875502504612972782574107110618600859132341128199587024222653602316676193764187022909994970239581135751217067213430504797595528315837334224064216196122998209838493338011888716303021180192051296932905581896812917456209629467217108570849640347569639417107072389500980122247196269900977434858005720693806399725552820205251642049301436259079699308332611008680780790032127411936785572831983644730690884781074801108339842595305652670781842558195340405568307893528959850042379507794347838750492397367275409579399853548186345645448240708922176697136472719007037474386775924424340331194547348732815592707347087328200643418292665563633529846096848483995214836617560359021714992065527046779811075573594546472719141054441438955443392892116399773134997025638638146860986773023875050147189092698211032172964872473464221328034480571149872596489722804761098513443313984368427488476592014679491226020454176758152944058346305530487066754204084974769737344204731600312795914435344950892462552915666208320558985508949504007390461957545947870295204946311789373565954190595770738412975089813228572379435853209730924125758719838146682940156033385868811593422455685245258348781632620548704146562289108823891684274248488581338937684504351985279910789321073717260541967665946947823178372199161907422134941786222096597890194394286174310220661475020408162125556842491053936524014150420915935455444687372572064145665984586264350400083502473467232192384008520326025090745086618361444195777570652749474847239238904122668652437820258804580394304299668893815710794152781923407847506605663560216583547891128629171248866692599673656309386027052279011311605611097675198611795783544412957680969967734316360962737078192837742453081532954714571606044427103587614106363430404346097786470367923168623962319824123984146876715808786933052205071424587976870798956337652684880838130988856414496336021298921609598032921733988160061878745799071142636536363499783550133734279004135421979306831510295581034972788745578841658365601712153134045456847907642677377261485992776484657876505292046175599518553319464894403002798966536768882035642778654680103117364121964545437059561629535878624775700699828055856335288572556937630236549267151279440659321347344800554357921598013519506954928541804031725761687262416370283566857002425203554571041969248153002176741742102053901891262514133828891234993437022143089002977085002714895663621937848168221421561458492893850636692963707875401047969235427576101272809241848259470536759262893115175791849300046541296361891167185490452476933944281112345880727267372388372795098892547818061539767594207201569954591573679576931985660009736689165025951008664148051113003198979054252002716168742379566747870214952092864608790246875409896611647532550241061913872445315753570509254024784259175788312276355396550758212957086111502236687507308027268547942703504660131399103192151873435653221440704329166579160304992696149032630322086999407859880800672234465774938999173635544167177478460679350205320467956267659993620149640841519965968770938075837678762826286457134934598946654376141804821234955831755739310770470125173147013679028861678615748388938830699861941630111403599887832824198693855650531316035404621496028293754965873155319563380941755019872783327594868451475675264968189018040798306056680357634258409716559181143102354281633626933916054702599186880067051260037636093500239970349985557585698710659787504085362562150170830794558252859386611451881587418744959582147633422170131348696963216745390160232087125102597305724386643358733402777248656926742341062108028461482247233978531184861995564920001815067989902895664802675852894264830072390035918100240824493843399420707672461094609925569665008489102821985909302871875751084514464677712309228889030452301595804107193500826405259975869699913754108797287941454312956638339347702380173294869056179786586108444818698352053220473944199486877703444904865344522282039850591349828532880493889477894367784225731226124633918409111189771876460070057792982936535143236403915454401495955881761614629149223326425626440400471675962149941088767705052193975615350666233673237212561273448176258058267237545710033486274948737735127996213643244155328179579921865079326770731143216225188179495758934897639537884239799092598718971325460771317823022004952942216393586600222646486955320815894202439099313116508365942523891925956200594662335938730739884462298282351879430185862492501829332849801184874059491857972523091124428582930118351932644854696370643202386939806261939415950018892047164866917348177430209595255881097103206486779279094337138311290555733956846151739056739256492027312951478839711657711124296226407089296062761557619808844044178481969067762722352754621493631454317022741444267946246430687097061115997647131861192633120938029678623629694827238250057208333486039040355407085458134191278058878683818668860020520570546297431708510229207394141368113295762758761643990097029974342938758257698065102332014433434780665152010250705473394688220806782182592748243265028753862273680235960231792708175866689452146449014724586664556324803502985666711645063251806263012958786424572892650779823104699251555803468889627235212359679099177387984379079563032610611378973400722631048205925537376492955717018991808754196045610493509999178779879878473946876523274783478942990117524762842980105105617051058982927753080993936342687043403172715298393673467333831070752895162323785671845749185512699187638724236609604147968135437854090965963056935805398553036953985131032291873414728541969571814462745699054330161765011368901704983522837255656795629848655399801478319253170680409813539355932269338463780226983164350858372485271867980842789388939212834168731854320769457548755371366974148730640161487265241732567038702185466985950630067462908058179855585233612057892077825544203793881232400224425549797085592382574366676610994614908119174187690096583262765252979493214340339822918016668732816159970432634534033191994900329581054079542322206451634503887578761511136383768586530279723011128856805498257507983165112690587265703391887945832933375442460149539430598619273097462932265359675623492458302629960214532752677600558145213742060774258665612010426380448329527811140986686426168218217947696157970251010802759226188075075762714879893747111655827127912967372512161613641248104283733967515646417859327453518263253388924515536743073375164185672889525301296514646303823821059599521085591614845414201484994281818240491080627263633034167205895944811540837142891321443151850239813494657174197757595619010039830744613274579515734463347713643850561045050896215005378057010689040262648171720922096211578474210122284496033966740339977762510952317037109859949815470785668699544191904010268279025538434822831153998726599700785013619206545847461790568788349235454363832367212720883306712063724512225472398355880534427476169164921780697937546131394431252247132504671706760929690488065866090151950257171437833287746526040083668722667594770435407821501627696024064440410268136471109793598164656506537879938581975228812840366011783012993013465546857746728329664617381250817436708786309373188224612721162418952796938057358156398160349318271215496791322334231713438670247623654432138707655873199325019107225209252810352336895499487871741102107796024940691094291273901741544128673190041730984306401064001126918773546573658315030659627769170021606587196000199200710973582445924010474630871718446158242869998882181604188000116246310053028581767600870059104131110755667668231809590096461708546246716522787893789356640142198108877800711550150447019335284402438715066159628422578830361613307108808082452188445912366157641924868291883833309466848627084486878123732246837824736186779349650158403475202034661284843801248479655959598945897093364277692079687742494727394697566468327887433165303682074874867224426605830720158641493961525218825831624540199294409121556783295248795821762542788581811559462038511751031535625578691062370584620839085948886623756114308518867795649513227875089912018213784267843010938924699162244557713058736975737534610095350838795204239494012081999369569242230529072743867167414797739332597598948178523509770651973555641150130769645521401591479208655679594366516531592983095590269184214910133011762539854619871315186221624948999606066994708430453820367821651294979758113725033391543438978356778765365988178475495824721512443759228732181084903492596307437574433745041114767402962852447020987046098133980637435844867583252728802940947800924276834476991701427105190776685617626374457457980717014398630144130812779720918418664876345550086325020940074509699162441783928260375915367456962646257012866276327875553042275621573935697451945106140933611665329027920416622188107978121219434588353652091176734757647339129049593571669016526739417253574005167147901747380625258966409641906211631830246941071235553590860884157856412113969139150158893248173582292114831737739615710430975513330498734616193846113207884918341250141724304594654276098831224145130625483247697951117834627363517875328492247868785898819220787478125938405974457028899716769899660125938373513723433144465792224066242022888978354990900309300090186656343724155734168242430570994582500278842790256492815318398627001416823562911891639456151990315502722599428417074861438741107266115265264371586871902727715397990563789993291144334787272399958501972790646754321835200096503853137953935518087782267201371203153040786767338968871992318418845515515227547564471300996733787149720072361433322465077579078536256493500533958325361734617203217205196182283265191946941004243086684406813279764244334677313519529631979724794226468581592989992495030192074131825712956317157816990263433619079995403453446133290146117664563134933993902772005199567323176805624479455487184537212551779289612640092251576419496994008890196457798524555460513085126192693840539253717455040649719128467779568843701965252651913213256092949623697560205663755288848129457371585999812306600224345774445024919432652766780109168886670594244789777216771046849555978437699081183081344165519662140672498172672755201190367112223055713550558762711069824733505594532347034940356598991449711737447785920203910782539660739736037853213370995474576000018677720242166991346346397660615980362320234409635501034315929527365064851387161915954179050684179405848261666230359766629608080715658355476482712680551907214321261044045069093580381839819377055918817474118312470544181340793841657281979555781933732496832861688671377214470298352560390675556339770964342337644870376418513562863279620992462133333826036427167370562256453517260060212535121814515330174596851072598066272199169828362928767917604916446482940713484997411092600945268433038530803688319402288002436599244459648834378711920751339402487892050078884468026347939590581027107764007495523224464328274494673028620379764442438201971225558928172296826218301535802332995388528899729475204198750751286073314277248085991672240239678316694077089877662484323173867153982398675033337294080934810149410464915342538207152176582152723221277116830676767251477915241926917688092833622952822728146466483286395170136091530030668682490189983814940299930850049822214259548931077458162770724600129206302172814110895579911293672826378449016138522489006227996114097495684987831187993371370680175291217200425996399801079004100617417854597027567233821784555839789271699539041820191705000018810216189844373527388648373394811379713434625990046148206453423481436218861440797505941045875110787331886765747364181443917607150840921894876837426364958575856176756588869710184286606909648986945922879649565339440722865603545641028001134592425130954805637544003402075476027797184172677534047458437562307494373968481372378806743866081927664521663912766610805778110872289362430593522546619706204987794192569629635659574642048566991559449192408163598865199242359884397021932066497987658427878627918823133139406882318788386156548834280105712338240612486182680203798489035281510025204046347277770199197899256924849857093272256434524139819564748957256177827211084459823557000495977531327699487951590001857240974334107341625759528239150230756724092388355215406043724203127466143701254064121963313914294079929087543138319896658180063830447757722880582074526112015002742030717849739047764744375105599197286157261032566898159387743726634514144896913862079923714472466446134620630201819734849787278395674368778202122820493324823304832077213510218855707149246595192420065118907113901466563270175255721114801054684342366196520581504263990081843185183029088820942945711741137069759781667167576345414602625026366222337885367652514058641477224021083276779152827000622655908147692455359188602795184813883783517565009618167069264245891298690478938261932838609184298332120127445985763387358438598744857113966671325344262625181123243956375413278906136826801488460163994083040918227243089267550213964140377949092614978752083684192499607783850896713652949784757751482922607674566117633944234629238720993998097505534176897044755027962552361825226896275186203782914608954369828017945270863059498272600500382272109729507847697014128499517173228389566727575009831041226448597068856812431145094321961668258321405612883620460083061515453951314012412279912776450748487029206711448638641909336994678811940812312002398522490057032190302036815471823495535673158808783586137445771416545348350322917519943322657098789690181164258647130696784649419184234746629507348075024412502824132866598589514998203081688235784798894037694993437535898048858369823298960819212090574981461802059298468238534563415687840029403260105457687399710078849411306519683614689494118185813529334735037036658575717254296862005539070564340241397181397042058412471926014620357368861018086563987408134440471945729664582809542549614193898087132774712178334607445470774020900528142801393777008618196284696865235552579848852107430596200453321734465861501568667723169729907916280222538734760488364319798564476990977914915918449041233159182462432109986745875132632675475604777712611263885191520191605583147784171384957827428406627795770019021025796542869534684752556069890569586350317720942868723709805507551620757891111574142778795598618096471409266073291268874366890059134348209125335389956730313012579205992080126568354450618647995743721964533561594437724543475176984162816973243999384309402149498324041655222128969584503292015248549237178897222355082398519515701377100230546713777148505008450659564923264480362643479503136374178559971696969954920828174337109155058296102784909623794419303068592822838748923231604283906396577302135427613012289617095147580206236870568763646877172800824354922889982521735024269789200429518108419071878192149469194152437083908794972744109420707930749152384353599483563466337672480852009700659609977653880530589676941289798147239711342393266117043433147266278985999335876571862640579308260848478600036143906987355558725038023593153996230250725190286407912299841443648896584528171149442149961175838668021037591838469360741844309600146836940702366679414016076247166053168456718241388641475926204229455603702951127699641981583841318254057056321616476215448913360074175407161899272539428273310561932196051138717716832616808372276501519598870119333593716957872888471298331299170049771977070459716676946105378103061226388342112402554370281923882741563449774957351846570796293834254718031198572835625994296112121972518085866918826776029195516428424062434924486398466816158032977390783381559551404244833338128074287599851111425864269824244537043674528313986697951766890695997332276263037915594107468216869633035124526399604395126468146927738031486304216492739043165872437331952863883106111160354183154152636468255210839049929748489776135968383596585545527253611397757896519153659300667442444074038855125228821685237709207336090350962920540363608514657220149462125112803371448538124198896084037731599499534084695695361092404464831306876137888996004351754983725695062039284520726817300529437249891004181651121254263739195257674596003104846597864226667251569793855152854226607251707854369453676795686500913404286810394640663680498090679206880519547689076362934978655037984831657346015448604072722124331812653505022340733670916275935983236944707010332305585578960047365593412735338913271135700392991448228838250173682482500035374534212971480760146968106645311622632322589965453157232791729912299671707642561056804124565742415128144070483417222287288677817779697930590518858823042534681278733481432887404321072857403250786781782594961700033914855423271482163500904176989799605812343038405678134944260842141421855475113680451365014453434703213120880033353207784440368060307086690937662104596860014077157983653620105545613042959318078959104746069465599364406766593633606799912005996680890207410728416453019081895891809860795665212644219495519062068268620919672518942138408872116093849745182714637766405173533495872515279614569314730159761078552183725013897098551840489233802645441212971787140372906525444207470107601971271177897705888749024715545613760718820559392797247104533098885000711237728505982181599327656133866851333964379204574591902999798703617238386547041028998965758111064000029029201472396568194896518834257532191398134562822616354541972806980403098392925232723584329558614504944476448652314791812485538705311330513916334489103263472063589230947538716478701518956467161278333419650687279023681912983356944664637970881238643180870571141563510227700010121059020788846659531995331680654891377787429021305237984545386674166457048080732677136753481212564935898377901801491109400757054365336297668280339391260980223640047862541293768348825798538155170699940375438430356275953214051489798823968616071376173169850605500803446909196711936417157697120848918107724024790322327661862270829757774696852974442533253367270940006711619252753057943038377162180983650128031071869567138404113227145446235000994604063633329001152223101937716947615843887990095360703767412164074383615970217468427696237401895206411676485351403607738789688724950450108798527440305602342914091728896091471510855112131602219740712839722901353013743002160454900811431693409345622646894092957778004104818086026703039640609815036632835235782506542422197959801132147182651221134911217014426966723438252101062227785527586105764900625408352020154455534278767983718586691524596966603867505690722805079158999666189678490095160622649408671498075675706952993323567925898459933285959477790215841707119071483583694471484638314474200019630929028647584217059269124357638091588802320661298528884656811527261081158143428191275734618386082754653819897819759094500908213505303923937766881250802945902566732257628181708530326227889287284845341191280562429986931706384900432633059810141831968038974594577561303701166599961214677454674543939631663015941624218406321164154315642651122773692558652991027562501734822576689117029329561381318481122130734764373295103341982054221908709815925041062180175465193057795400590606522732564615543845735016826678825724083944976604551867328939487826192235805176269273375617824538696572193047244544861363869014958281430336863806293696034034595179220913315145325822498477339799654414387606616719168333608326120111450328770103559999731258941459469593592952565592214675855180967042702736458826974164494987410739759306615595880682838314234745891975126815155180976542950699629439237507926799151402374762639312882634828973778238385185419726277983961711140208574188342958066720281693193178457407538675677524216485769129154204033527012455602457891598103164770667699049901393835647012520407479153821676971548445098699456240773782753230297820184758298316941156564361616667665936473436056269259917336613054499094838882551626559361473032505589156499965829410886368419435391806441927548174029600346471283899129228418595710469076577483124798820892148926500159336006561279698918040795778546338322109042383232289343992750429781287483077837898760944176893892556942525655735265819018400898406587943533236302509163658261876868312498764833389032165124572239560134656127921017378953806919768283243401420657224583365251373431488783575752382692426648722090896948222597543163942968456086213127736084533965112164844347915980400582947978657245393487067248193333166695008483457841092553492190774500130204107844851187875066430777187661591303965942383089641561235766334385113311943467675096146156615510682353024979435444727787911500337314072868087594434863345114940403027572503861643101578470598182200243719862105848580548760330287387766534841578008661525177184609566775968170529386805376286542151632734159384050239031680362409726817352616817862753681928990406195382319436111407364949023088687497350880158383458602481567889409552624300443962386909547783079161988397782298917099154880811940332606637219753212059625133226812114672315934808693686320662070522817100615306762308009753619168573383523760032370570590665240943470011883084973649202119276369375886859271010455105811979408274952343850141257694146869672692372607393161333297689775736001857767137999163446600306813564687253984968232333072673068976276446446657496723785161055648329090850002399994866274074577019242844700384870536275738285699289433049949546895838899507241202069879390565016784215706292736829943936881038728256462661703705085887457779265516783548802690887570442701781832359689245977548920831160235615060569794856758330981218191480161093302209898390787665768020865900134567478651593133658796126892316469276864823464700276666805313028062552235538679996652247981994979052676991921589000534090161031299468523189837132361741508282446490145065397044638904830404551492768169970471366571630540844768737505035588089741597758435411264422213840929011711812982028397508095893978224289513539013769097868768990865726218090373615963815184397573463309017526884739069837839606280690044448805492398040853887236494152161242428259153646082384914658232340229714536420243892649542719668013834949824082647697513131499011088052950063226959522002207476936203882727462455111552768118620495644291034603658991973005748238621072510947866176734910605086302478673182351011763796687288156700584301788797023419512424573307914621379225930124456362145965597302375473307757584237380688601650972246072480665482922040760421185214364722044984508821969316097926683009907406534551728003978453544428716389478925733188031297837276776114797408750241860655808901466460986940679983115502353008792790997365928173125488284277462223341208278805393691309853360196275419825579309924676219036673752342759917960519422584383949153492127861167323418674469775238488934160297682331576536568315480074667505098972693949525504195999044972766839880311421331290634558797423420040890225197253930944320166295018898475584339764342451913728740979468401904894175091691626562111252472012427173917263462816815687550592426476418273351647329912310240306382713648842271728515880555343819444585469621832758878120707424354573498870500652727268937824140810883598479093495410039468386602490466205184180815032415764937697712504484872947694858648246672701073488606445634895675228822711518275448732975361917877597330929473256786957872512494304723000631425722492422682894301244396203994408908673422107589072565072269914728960308966292581005903813438801209498311047712395365888415856913478459431074101720906050575985579017335254061514886149841960904390165085220769334020967639975966969913328818560185334634322162363431954628281825542345799983938331809647654535852337339863792223553977955407854870683895492260555810810274856400779840536415921458916062411256914922610903700954225999753685803631555430187255767663474264813099699243985263822011123170564409745027467421097796358682454718259939066315979337017429734050022637844419300903038515462607996961212991553872869254511213809790085202927847657703147540816114738956473948102580430951213305277305002190594059022767294940068589808021916023369118302212155158317676523906891133745642289955230891490656534875478034317826784642327997368095149742343264047255575064627992909652950924809983115746444696280512667097501677407229895359875131277004447443931402194440218347737533666646211086592493518644291242132071927660218426616031601067152794004238665990237936999589756442050030609284731084055451693239297069719533624747518859667069460946095561613867324900280633355284099082612219724844744054220548153684852866754055188191278303767537584066976621781839323735990710432438450816606716943117255771936929593348117574255150860718964157551023073843138856927929962340853404148868381839824936323772331725859032781352471663812669672019152359421751704350180932989888541961073760153619972979602269992683098017691929819693437564232655784996115781629543930327192552825472361451856036033102887108571097018071041314981200417527478901295174266049626951559308723735247468515037158498532727642068836935341316395697242284637992937639664115419348921531679686239833133663033268506875124839347422543971956572278878347356025137686409151133221846969509295428034183966279399062646698087229240233056158847758158598727116417975949756997425322682354477437267888179679112053099273089594589449155920183541890849465116398475451932096622862074740906352930854157502165381529030082729253473893866501778266445445244815924230744595392729113401552865871348972844366510033183322675844250018904318149229053723833305482173527578514170514143033039451333710963616703813844112741538886982263001471923176910584240775370977139364015109567646992805091757675904431469417016710514763786604498463595047443927572232442812922359976798579108174133935239508907917776793672485720181751740940879108435144997132747374146333998457600096769808686310083705661419659832387410493315232002874103039564958683266035563003227784763540722249219642800903374775808207870330946175698853555389647236200728568784723723978534482464277557866066961274056306332352162904118245916226737960911298903955088711588197234020809535435315572888924912595957792961061961698950968629475424034062697698871139534823699662194716128456740667234064458694037638392611827960841801905876662660326010387153655969105731788563802905099687451382936962616281042269675861554759313354719872112228357984134405872262943846768582706778622449330588395321518748718080796224731937502167012573865071202901527205402528862497515487126153983230910436458100211696571217097964129498210660252607644176646603663664860682028460798618915783993045927503267750760200299600969919300878114914216900370059883249850265437138018409258737828119546779140471451392817865295372713136930349030031542838292742709136869093027845681134508825194113530774775985585667175792912713559926199449277687180959287944642926147668591278025919593555541044648580064838420721529556742965160360256269158963236845415007152456434367568039437856350875063178076801435406735020904591732423690620528488683637920586705670178345337420920197719153759611864653646475011549396096603632613410398442458287739372858633267659254675943063964809489439771449023379900805547134910686361815923340639109276342603925415772121896547208419426742519197875593534268371297743896150568831912804924794834668060879975907584083669392819081068468860297248744335333355460713387849336948984645272069287223353542951705736391310170995931511001513170194200850400143088866137104010110931866130970796339375130420125224000711090225161668471128026705925656187246679744844909921440614789172322476459492616154478871294868576777940179868056198192700219960285322900669404198145925314870097646772863157259358532648471259987470751964535385921290420479218529996667383507820829109759312729618137874617847244302955725053916410650923346052659025094486732667660303685612499122118468106391896109420300738017354546019554345027602546980544048444792204956308502706825234416331363510808339071882862042396511835873366128741814938013742525119625778652475115852857851968015951614931938495023849475151072145987369516496177189323565947080366795375747250155572917240389480760422919144919575711220081175280766106548573921174555891870723717633850709848460492132573415866668075754826043275371788430903978113342519217167648506742802544652404011584553572565605897316182131429186471762217481825568122077725915671466533356279308984496914752073235287931493143561705108268532558275582703932824837594364521694710694356699655104729201297704523418618636664597401945185810536652153442650483429837907571027340229347614993983318774726052059203254979521096598978540500731578449369775077381942642510598230703522180159782578873975892664257946080812632422520414053587881903668925743368967815049588539416069946564266253355699591089990720413441282890282174897048363262903329428837031168120386369494730705676714503399559129749531059743728254530734041869675630017320424016452458895140877679777047710990273478335847476997478546004810632398916005532990071751908056277695947469812263745090707772401633380322747548596668628484404647650613832373609381407896265202099513371114109347136191962979994687831892044088362003153969134388699699672818350361107240963177694185787199326197482722403008754639127946757052697673559935073895639667288819807456917553294284172974277412156668165996887311177487161875902669774814813646376871196563133303254236027922021519591268795112136603371964698510663941004899201901829782162195461577602801929269460894431343554791738080399982617507423987655034008698146572938841759819686769527035145808656496415356271551785438179703839315965285321329532764097278392018230262260635963528729945913026105591549587273007880125963626560416286280863859502246062210274315688576424851640858086179865080275446019903973371089079514495743110556626665533589145763124136400318627320146310100122853294412792769923307807212968866309755803153356050797426976518734251708553191058496269094053665949346846235572440502817642945126734798802424732334503235736382757891761982063106241505113080275194404860499143120989570357244180927910800332684955031820810204731894648248079065235793082491425820878850703925336501843468797312382007105526211335770119718682180553253139815276698786502654886647055189916321636956904370592814347212030302917068410059360500904828583547132654324145160728536620402626111404194756301794012995974573914143682254962659187223773499600259033164552889524464000259595362682990747179195176972953744872190382842955736451578545689710767180072863041643646743193801393854490723542408200663837757423535739543432254030567915281494016710248172044968143099924994242521026290723657300240676326761705306933748424512254232436710303675544873650425160007988287963050552046643685678341419569695798269690454333078413706761593608886410208913197143776830984172675646995307428741735461027018622372289982513811276380291370940986984513790783254955902595627923988893492064849332072709831047319532504273882511173934033809546392049919076894121198936224971799627028766281474245315525286864398150310098943250313346681620294343676519324272045410663709249756272521690031385678678330107542013604503777361948939931801921271401407617746795400792880402501479887359544993418260522568931523014075439002475516222263246046005601590426841329529164407464599058987808358204338623868697495389095120584629426934113491600948559106230440700469209611941436637040428032977359247546496063370457608049161367868931728367603956871678978347934904486833588737401979709134913754111120109157661040619927889839368368364017140680895426382180855338025410190877674343225578561746386558192371303449088468285186454745118827272837407310514807992066563655132781853756450128590538375376788361266608719019221205656743237190256648419689985529833104712422798742861476316017343560874682821664707992557250972307553488405196741246240275731518979218069343469054068797037678553709103097055766485818987780606993601233212335194884600264560055265352465398595812532419439628003844138784658055673993317030614937228599592423979936963359653484187564870778994996919319038965932570210038844536700476463364160230777342936888928046608262671003937777108585628380465445879747475643648997505342009056225728435466319637698575062335130606889867502486016307555623475137354320257480201956574956733790899995261573752725926686402542960126437562928074960760864622354367671902882433230665141064737519239717094583141594924907686675439440165476398906159133086474283212774003859385788683399425491498855132009882185234804236060498651118333675095229332672688977084767418584400913590180281761853015110514317845605531414404994113708064556754069838049935248748831546808278583053989483519767832902155550312189323499445904836427987585251944355064206584312792856513293212292711993283287988005989851729063468816155087860261463745278786019880142509453499592953772120852320071665473134222582554272294849414226970544929233351582977900196040075494552829680827719520421552242350116124760596608364995180080739967121678224157221352110767074626522780421595828778640663919437548762153845484411016447385818239617144900870456115831679242221014020121976271248767848066709164000338993379659684296670819829541990868942456847362190044676290342403930872720522669862774694828504893276727904050573359026853392876179380961842446777854986957217143656294919331007244235225303157935245170336842660893887901610380323125971376077984489852410143373783094994133634829511075897013231113577651765862013031733407654818119674774376975032452200782232387951314078443567579213590012953873652913030258495202194416509285461770714787216493622756135422031063062509568461744862528016415624128325697888492182103586457599652984913385655656734028741957783720846780633908450203221589947869479260478790150721076809111850910873006535419795142146733254393447236071412852347760957320664622033721037371562038588567469851762760238520745838227076812071570400305875761151431699329564017269195669154253923873020874941659283696244771267865006398514161563261225230676332048423081190719016905035849103881190352522368866680020424800550598819615118328676233072020095331850596626159631645490215718680623947233501601476757030401041219500304364438740202370784688006500516110975735127385023352853001323008612447099197238657379816969643852507940458231495895947342433149763362847915688313148239324773425763160062457558343838582489772294537880754264908166686953665749586747175949680268745595426584466173958262108894467183019214973532655883369185247444981755049206688585133911605312511661050648656436735595550631909213276773922355519599608524116609433206150070146033895543454946655461282189610117499968010440115282469051192060878410688647711231000865194806914564708317746337448932170157519085400637986401092769176269938455115273359919197475755024028596435958987439335748437145157339251450442814654916662974714086258369937982290742284034289373393852329614487116386401901638170725972339802854819180293582090307629273412045563685806760431143521964551128517187242339278947933889805276371440620596090622718105268747356944627149495550034072429889556545835234151578464989166351109714431529547593592979836460988235004458953056713952081521260413822128162848745308109077472257146571765159076225876661260502189850558043597892728080261450811129335705587203767700529912814991699479491618225228887048070335427708067200383214445390757652306939914814238149718865466892446940423175426960232229538955361739456147991415469273551152489883629182652824154462636867316387118920812379364640390589961835339082140606536693696367043797568308045153292376174440700102716574052919525440307169497651909266800356619178123302146793523267226129035661708580412846061190510444151158802863187587798866498672543151433447676781457777911343135695068859883190158796922463291580910308367845128414008056602243638026911323411895824087010179092189566829671090208598871352832740685229262114114845714204064535248465102900241594820311113731846975147717403289632684950328746782574901805509544773067897742140511131473677297591864289640100360206075104965016285286748284115542719863260358169477264732268634876354124261956472630892654626274616469283884686746754861937153866428020133388555231787762167535266131218476111485957477443159732527890594669490980071003205282469583926521602641191392014298693292549527757154082736706387764542545861099988737968081364274169379546437730628271792147274584459656312614931172806027982136945957800056790165838558576218468047734302413615100200118446135023405144766792692656614182868838439242648255352161006770356578442570465700629018546682767518426748528247675966608197050207347054556641321561736434143934095758676834248273084855621862581894681316137258948340403330933905428932560707369525448286585710258338555724643906760032332733366447993468636444262642629657852605782596296975868554469442390379800846897856457775756008069191327238097341046083702039274092736587622826371131730451926596759834583244160696863364011949090473126050255188303768151865428486570441762936441032566689845626306826368627574513457306936642130565331701363684050287619960977088969714391302546545149917179573390879021928813882961646195526980249604191986335508300660190093306459855400572725386598051161811644460193008650343701280193747591505381970181656175025090958908846379006193461335707680127594203485337563974272547511846875353257254839768005940036225119023954407021865322692235497812823403989001732854877059801538718542706529920031397337630049731128204838655334929756336332437553515386845930652885377880666900680200758443043359229542146581552747443297025998938110657056669075531200533830003958532281892489451875137376634257176154377429728885673283153266304693922926370841300027064525428929634754857839363672597670456032630048137560556521240350071224470177907915493306013842395550972554954712532444034232861629609696469381108930194392753933931679656741813930016281955916377318615179749662797881216140296552798610658713239299634995855038916904652829444373536755914182430559668849735108807608007688228969156658406492090686289950801254138451548160784607589058010618074904507665189031764513627647301239115712713658163362465615036491958997932119367180996594822135376506456383619996496812692963508747027970914501886355450280073905133041171858258629143858040700749438618337940214801133378486635714315790810944643082296310844628515222296861837020350147429075704165531479892017286454167340664417575584589903087120139721047239034457339760738967417370174790312264181199876782582662588785300684967080605641233869742958367398753755004023578968748185201497180002429188942205604102801044562313024230016782795672069193204311603495671596958740538370222343505113026905896602618845716099076333004291334030663432500510010866557452778862233542896260309134215769226816101012478255153269629012564511577502484643322928489618400283222640481829082082065417001064621292327187619605870961278909900244698358569509025376589069191764705519104699453469461596854755980624148720657852175919290748929521415199336991661327369125504365450059110073238888910912727356492343302588384566289572827217397137622632137358392205790854579889937436446166141961818579737869109187453011328386016771796522009034587671324565276257096892768348618704823579304818664917703225672886914928423001859499295715117386127391801161738700570981231377033879801579979428828546174999197348582007491106836738897711497159905879715806083619617098047361590607424261411935010064311542567102431829029016496064221241723826630100790245452060834236494889560243102018489242053036205695508922183672447220935245033391898011143234434623757007526127804490572546207372570009327568951481991634368422428940262023696406568884267097947079490070268499486434693991185881532166000767638526806977013980895827961978552257745685749783232761234682704907711226526730805580222344848845652614852383787065999661015941243648711335727248224270992623772780349572539048019393436615928922227623763557657725930998347877598150363901287652732307490944496702291493114006402387636257614637253870371363423310401565135253836609237958093190334434601740943059270328081900920059744730447125634255564843043850282684818700616469357852047479656040609047837878632111677404100261953856684188467997359493791589483419597060905157868180966435605736640845813959959370625624904118600822610807522589160901846577887165408726945166322075522745128097608850337024088921271064097313211720560414897525993676942717557056826509844787765744765106201695387658111607942440549194104941384295151886490386390577623956129395549682701434145026181032725814093330692535228379010547443965753920034581860325094286241699361595073281084570926559219850286434048150850947518417426274928652189418624493348446417835861230448670164444143565132919715735810631578720996276563927541343478351846431970196379952046917465514930488970083506456245112991937800042540247384619176097413726985795547781186713021224863343555832105323263331040503665206957245246627007365003540083994502892358859462272035694098472534974493920029720597713419359681779640197413945838481955758629645202785133438985421835723870530409729294954464546748667683672300444119458080804053323848611426148876967819753093343359829341775401632543344161518051987391042417139978713254161018079208166059493099763588430191415046928050840845452841923434254782580554092901193549458737974335554321087660602961309339789201576354731526108794520635935524211277080231877173920916545245100136951035249732877795025975115328983637586600199740046174202242191866925828124826610062038369588882530450458430870765782963156301770341244493009165039982499716323055688040804326469413409554075256098482326693433645899340360236846977465843299911085510364809815365818199541117367289574128637886428247163449266454218299626129401582310465353095065988195764226466859378330840045548286209641341756564791821815369051243146776078347009280028895787370952361195206474721121816385085296902505730763705152613841819989471839387461762229627194901730012400717954183610293687530675803828455275804668759846768400406522314737244042518510333403873318369734810825405691627987434174718583552433280998841442763300897735839167655080615446720771451473871965412188857236562231248158424736193567334301873091723974783758487876876602154525539985246531026851531298582916321624317413095121855239874426513332144688235519510789759165751159308950389217066857438459691893211197786387417023302476715107961222594323678337342019579047277051027390651038777767683736638141575203791331531188650428748118824933511414962194612228684294388843391992969605863280080132021480353439965621081462448835483600175202545045597136245679995065498906949310759935168947760124228124315220616351123589639646760219149411711901501907512523599471178569212702935333071334066096927106533622318678373220602010487197698303599813801535987004889672812044021723829959228335498341964579605625029408518825651767031401223065949749252729775996719475653599821266930592587259394716824450492901239231774423136236028109935999111024698449090378742943224986641957045343408103876759324209522151431826407191949836021432793513835214836258817780255890117591686879051661933570651414565947817795426573120562734675328744824949573218603654240638515873990670137541234625941321206064506433995458582594392358405843244232434888707966277936532146123617280779405778588393116883861421789287834527810528441922757617076611475502018444636676831405813789776839231179835811812992122905711562158275965329116007083756466898990868284805301833352501034148894395487128003915946207248975795253147369147761798917857852747048926691851796031194216461940660391698319357171086641601150613806039657148492850066660449119802562329015849251261826751548737386264834997557135941233645579822451539480336453938485150286985109838871051563728063803249257292648097203972597682616847305108974260275882714848462302675531445146355339932943710970479322215511999148034879494639332961488084738343550508797297289088548528220201538314310691783603025290166842972640940342616091340863711415754254787299130671592393633870505688387135867703471688742435623925188268116754189441510399741652344267482447897134216969353956515088558383989222512062588001159486806890187864127356996433649896996025868192422925115559239729717778141596024610854988615498579646868224305081750951781749567741946265118455717256037868269266446473996023798588553494885876976960008040276375729905549588684655463422535535104795239270717001389727783046226148786754875130458573060723109792251154107176223785344813824075277350199128380783712137395495875266514395514796459438792709304875035469458309495807676362270310746200700923971473197655634795631581170636767532867874153936194994316843023932898757393083021526761506162584649569842000225154163909590425421103939045537477889273717727128681160393088059733999106590645412154107938406318102091762528572000241271014436378945423424192223818575743926405587530212744432762291953649486302705422255611304915188121695483673964173096016844205653560027278936135785840203949978707406946321263691099146349825300367643664933249506439188800636961006334762199362459803037350886340692901481184894989094287278534649456114089678638795616377424565289993348573719224998447817451484795757661722826994255022287948883285555278057665399277320041520867060535420461812065782674293277859935690043372244139171955220332677409685605889902657204236333810924880510872265088624218328015627823797390409353875850941492442930227828163203267826384897837089522373283031907889713817850518871083934749534620394662600131568207814462309986681126639946126812419255734595072995136144528074085741907291756118533039041528257975224291955724365629048517445365922950524397792593365918985824693598080840731959391167073333433636707663764306843876320265109346521693060462603515170574374391088009666833110748487149967291130839280841920679617244145508277756897008646954391351459770004341972978719076934928606457199789882967569405454068468684721178213045377269631775055936336031304224279173797258434044472149421037022687447147645251701038344039624700374169101145260749128244843157110549789943592224985857479616391680723528991120412728634860185854315262402175183096862474489333001657139712608965766931033752195350287091462298593654405314937289243509751535759192505968413431771420391610296941493352715211082189683101330683796832053370302688833884694916133647459100862264007446673339460423111289046349067001417044771463473650477506759245375203277885605170868373217161229396068932159008121295127891546765266774325857113702517861876398188167548600962121478860411562780410012904855545633871576129311782493664196053760282396620355260859575497491684118100520656718655045771928738442028692624687744551278115928267021997855027671895977411002943362432300817610179266109403652176955063602592267050804567471689304724344102503253294145108050722858421153407734981626087359142399475709239399594830963364516290410262452274577912451077191624778415439306621992274917856135160389543025846863502191661068085765343459373623519735551927588393344528694397689666114747584780703279748446379579388049176563901208403556908661961481676674897001946264820337827464620272333308903720525618471208333869891363667767925999586872910930015366030919508254858147439359481447712902719117563017929394450111850104411591482578279877766917707855793559290116247548955905031283477640583128721725214637850002265897513504416433255850745063991276720914204106574340160211476680224669202270516278549578701817558398052412691239353655223593313974478310053576760202468945506308613032419253333927378310270059530415743310707980301984776889308378808888664236147559766791428140103358269566518218190273498828669091099868895029247393718219278185297195394066454153927733351873027692809914001493884001132876300393135696121251738709524165098527227754817993647285339587922165421051762867712211738248826521310501338222893365006682142673958977333198579838614213031523704961071890108228770948435412653891411588613381086252618268868836272465385508789158809574735495720145815374311760599109775850493176336853166074845071022072260069477156816992383814838461376909644955980557380269623253903545072759508064380485495787328643807687083992284371015039586349705750329836517877137557830539195120335246452868779186837890598270574950370982674117198432650330843449924661116147377418024273511613501141335316071791788590904728163945346294852521445970124431210031400465176744660757304843671728176614826213982735871424264770377643873609946152102386313180370532842013255899783792435745610882567091307734797695212848598546477631513695237083288479937990538285073035559207977804543931205686554938038461750865266482857427413921178345447404504685782094351262926534946906934519385642749620111617255960076931253658444351915886316028336094949490407726141311011702984567056162653835990936475455676211456773352572602953163705671842031148173721209981433257275850692831668363571401545224364534867794990140187347028037451798851302443351611493193711982024074084591369124242937123763984160878593905775822352853504733575880832725230367794384423798848134986738216717399283966127671125380228269591959792295248703382067620646238732759097999204295997106212549758036448949082472719333162395178202822624484240910660652795084788927933990950261393009360531106868342161773799062736243995356182890560841801143313923496297469761282338446335464575536661915310302573166383461623059727414831190538448809540564440353038296381170848110226168103864986240259491866724360862492456297887679417700735766630217954340910298984684711554596405766502573723537222341923822296084725625231992526587164511341858047897979987043771949953025163045712731474952165559567553716001411593876406469147855711035202264967763374602944598361190209638730109734643105150546356560907170639852707884312829257345826211304229314124413178695551973573060514205459253482559063045232693677033766662769122740302809479414251216406794668489387608594721296965589528710123042546440590059080928569364872212670302953716267891156743455057348251626834790864918102207741303364597347212949504439922834128397923746874432792385728914289433649751612953998443059847549858769891703868404115115753990958770277820684283704458442112629973575633214731843794342086273445968337916337228543129470883380334078458998757279835231447850957955287178387827966821175554121801852954253723289212268459108050175103462689059477901816060720617833890615977934021413457250186763822836644574468888196912770921133469735535327433698700200029651958562169951440430453826162092952637711498788981816998216437983953790762230011299981991432122372878920666905698540435909671509454676886433705462571241429186122334681019116812126422915411309065427680495936862983706668250655871861982360214870670898309311764587361769318627970095946680193086302357314095395643810257093575670363945317617314336642068106269713567710088746188757712921174679802600347094885758772171766704300827901725388120303207478501033354049183414243241924259020667145280758322248460670787246654530923808669850256792060196192154957979546131353325231508713388679487144097110782126705664638697786580745586612158183866373940383860202113551879359364295397711491283360013889703658474122310912651973208352837629343016119771480892420506680754924499049814424816450229103719528699224266285342990783887983661974252743403849193847466176785150080492396016357361063852908393759989093722504128436417873033292437279701915424144905515885319474259610062315266596277885781924110133384462486594994961915282772194208261537241933628265283362814379024944742023018552650521497857412761934997656601260780772891518933356469405139385114781300724863666255036412811529129882646525965973629772675246609256956401540737808481391030357704987212684612723943056710719543170023543492233787351304580303933244038330737524649433444799913144404918514506226881962988223770776366647865541146744959152453972174177804487502318746212382580588946910759961725466533906784020371177398752134730479067051089857870107294270770972094982387888754250695957603654335326871711425410390256166279518118675015761387946913560753018639363349946421185806910844223895297494243883085176078220751965902297705318790135811329206919431473497859814526298077590129194560402868683098632161214271144526368949411498934245079132153080780414820654391925316037279340940023797341544552871903497399879480874234797575652080380173514194765070261080273455726972398824461119122349255695414913290835565861708454744288628338469850470224045029606393308198378628787467255988543807121775383422773001658422023094193345932808313346754189159122402620245416963504937984783964005976179066196295881731120192046558280551231881747230154849007223622838523451564539400595085407046691994151158994148116657759513102066531834820220481946501625435805700098829801701934261438341586266323061920398494294746669464734113687121302736981295946770692057792426288745405959365013151037612969183564203960894477012159119636653266505666693383661606722898811415055887920493346182661158145765159732232057933529306863289858930836990556940194951469872673021423415543939559232666508666176546203860821610570235439556155055196981612837439646989161834630799260007725589838458093657734712154771705424314904322339318742318105881912522131265033447189200668474109388791494915963017817314985561538070742607437201994914101088472055047318490263242293222546293378988375233669063231506184276474921949898637880098234626687958169608828695641996969371512432915994850349923815440917369835144120560740716276793859704834914417227287317886088818491566652060277773556519201443023502615010540159256871438708917084234927846846771266562847208582373313800256631385902255230669648058067479691847266688226442273975473831921901591641501005035818312951680718204316569444782538733330567667782386961836929356534712690497452754756492670920029900940651675306866431639985684503119727742927230267530726712753334940401775265387839960232850636347397037768854829657761876974123464126496275635083594512442578548780795499526071480357469760994573805618112762793316697668858309238322405629230679436196884502803323834466355288794766535890271849500524852650046140409385046649840648210927290172115570658561480381664287184077088551308856138205112539871932841475743566739403911252368719131805392357167419995215106341998906774316039056698426147911441994781887754768047728610582834153945329246103552483001132526245697923120767125767607119267356745580760230977500356993694253910315736570160623314325859803635816676933436061545979433093087347541848248817728580683723713414223113044155822146823232230974738086328713061087572932652739381792816952371882515073788578512994036324058041294346931238292161585586132620108541364459602093906660956483313428686387044711203775714400705305972910673141628017079022564091913698327278619403345679992451690831044347269093963453995796587262298827672182766109591015580300379932071280591180316019237247126995182323954853098391611867834214063716420010733311433626392996835750250914131488376128908546921197778328707570404789865136829998731713098071140891165902464586138374799462678764640525606322545340111052458869876986751418303703452033996373194080600926861910355192929704566988579253144999412080442083895742488561451543195281258464842141207282032494565485877918868755323051144559557473466141519744157630180928877473316274038372337360635763108145022679616709896741056966038869448994103412792440182247271187139788754475514299081662627835991111369517156597425343119293427755156327902434149832008263595622073780317225923954456102255638382264747261021039688318484700067646863820697967582220366223317416023522682167282998604737108223025551130422060685599141765322499989227391777803133511154833407360345932303948937924218342064477365491724030960864325872759989355918462384292899284574309658874768260769885695308468925526682366875937641460440562290616654169715740248441146934988135691668797612674350496939763712320379558565574568498352271337423649229419591466444971322315780868952478309618448488085945751001502128013007064564377694049198643128932315595073018694943590565367528411527096866630619691080733905292483781812722750971278555184200632753577019994814572630956116198703901128682581697918038554963635310886409407137535326380591060414503549164436596473922254430201758261863640787685544392461548913114389346266297897732592059213389970569638904085408431317620061881688758891053078393292522450219536385124669840036244853613504980261821246611010980431628284829893784786258827463212875664177194906985643193354537958886712881416640955832721596687477042866435086212492478849342104155651386938359490590813731007274452894958432366166484657364801577225531302283055924337494756713214764324452279472213643497030842672541879858383899471978437103284675811055900670545902352528459779979014073982450578637880691629215981550229288305651085931872461058683602814608797720671088193138517462680166106370583582348307591352129652227839816171308504595634722535669148156470953855262292785424274238321963571350948332856309049360105575379605840741304255663570948051682952728976828414010492686061753457520890489284911353639844658125756902329730717476107617774411016386377176321938439627962132518003223195553959423807111809145544038788398009056169014616552162679948010775939927474699082881238361177298412274561206336455355041620594328522820612519174570617989965615348036612837115662324561068555540370393997626008649948614380974596336279636994475713840653052257867479492926519340755092265542136113759514136759067744836614401519519139224099281236438702375798268276781742183361441733775538426201449316168519989917830651911835386951129271397316855412167928175682662215361063252853980344507679029050484288364965470292907852083668537807001297156811896483186488398872141762091987575411773334658492292201197541371961489354254247350495499034825502425800049562608987764989116014452139359791425049297850810080022952896069400584302670075425057066084465071798812527659747776106332986245191054975967369929947237419683409420996438809857142222372165355272309994113249445793397555825975303535719505110547634856252562320325618595562383395147853962659334762555572869284622564822765969918168156602219917465550294825782775871898162303833895863129063787260413879918718035928757830057032328608063398684642329284827757835405636946014476298884056766067301361873917351608873075531503609615447334518933855406022166338551465480645936532900283645010008356500646109811047860645126216193114783068506920420414408417515912629572628724144968597830415725756841313321122116030273786399036518390144328275658277992525429995668961139362762960639889445712422161473896414541055498227846240576628256761062111570895462410595369105526483796329029823919230662385020987917190905605580215721439633135260138057449615996419511305789492768574040170492039049290820107170034821125328710201677433497162419912800679978309919202137714752097928269861425543562930845703211871165388762878122714496827599427804062110437367315943969914320473666553878044993581896085206692403772635858927791120076353494219059965799547484846398014958852383908527120138146389120040275218982452008405957486579296529199682068640695503058361454946129446131925945843016598235633798177991100041644320753589196973289260246713331503353028192612257620755822475341713803441461952765315864369639448945331259574123869108342432991271550647154417035492930499971676480029570335693655236977046877009033897957880877085002609379861211312718834300091839457664213220414751840301092348405207995327606810215396534552730694687355842386884232756883408511184422189315387180496042981831835534945059187608201052224372471141289877784890380966305624752592711445510599385104514421053555650946891141284207267311804340675227227069535993676130106052552464853156141074910331704387356667721705695516263208260046948532591072130884641925103826723240412643108333591419517688135592832503986956276741801121631144985987313067881092307431847308023308118745705958241989463574027862833582200908334722959639316747022421854338192869696481420056521435943918308683028907375308923735994578694355480477248805682616724920931237624414648915748651175394647110934374012143730401241840773592467589737482514928510134271062526781508339235538832208975448779815334979713869779755073481653275460952273919883984847157921913304982187800369407500121420973297974632024243151721346758077922540404682229385981544029882202384269622550916174371973314966711549870137456264213928545310088065559899131366946644026662813220533392773047002617305784730302895000440116453907976703341935266569937706539431925636725909120297077912567543596739679448816168771800936321153635635149120870077142588238989568055616280659130287495466457930146339229874239778737559982702740135224668794674616946120417708820919698861455892786379221953672990154208228281627739083123449104303573609810519389362799379365400178850041723348114921882212400401491343700156302598245057800165450990585597713370020590427839247496350672965388335243548428859565303634013522380847011453704016805969109787211014181133511990268365990387125787827365426016328672870225556353994801420684753972530880293201274945669755855341239909005293839539063939527802348817837675467300943104114477198428158739852845712308588165745995458710497253180946366104911337505306578400922965926559228387267201447961263300635805850469367272992127039338708924639063921054147583807746471566488886460708060735601665847123326384375914614714980932908194923652692268601743864488057497529891027349476270224625519283651579950004128009063787810600545050799908344296992088277694472955268904705155188545365188600406208318194903740660935386481618576151847472163496831357551134629918358117599060333937584373300889852814078179904589735006224202740916814627637185772370864964249470982774594972306260266889532881762515811259868682531630482226568159901983357535450486638761688566658350133706408322223036449141858734958267426446279052638572574968397659703776106226382354008353231790093105262030185221688503928698777460244131708953682065301598159596077945298272676962461207953104436479878564831165093430679433187020081715268320331207283397757189100213397174563092382344686664327829642503382808926678489939248110221313465798509030364159957627286079002559688965530389264457450000872892142604026891216210360811691106611601144457635243076106872000036932271256873741938724215662315829515651850264980384040804207631355553254223204768078367006917986381085833710606848259993500299437240957521479654178529480523870851277439668729691804718418549585582485930874949208165337916478497020747357989739539835616995810423998841780166700007705376503523778101647861162814100154366180827750081287920016484314042396312285846467073466134650396923753191528982354317644799897212239848582240175107041431273256841060333757837382027706717017779741043132974781977096991362386271044210184702981543225897947458807342528180647505126244892470920465011944575919585260874555670755546081495888141041658027430993764483367046837520815644464909422314071525086088197812453473318438319566637267821987957028475437751989823542262310455864968319209727001528248288894932443661683804139483610916844309940185571292675653675104641356630922078930667957821651288848904536306737410647066008893672736591199547388392314379734242952771211287512841709293630972558430204525385402683497299786492905873850535781659985585830136186306231175173383451740236624338479344985391083896106668614901218353040335319007991703481484899527729055944630668913269072979737641836782766104131974980173413788285702014683470269705124357350280631497468238806147514324142810657106811573286224471311346451861309434575054138403119569864580698201437559707610402069741059099886448573255180506915807321129207972288005816016226271033880411497762669115544119922975003995557145128221709740281170043757662718540090065865645037087606024784048419481592414121658448427039649853043872352052068111452952822245611014707691260001042650513681257925189531618358978360492336897239872791593815839771868042836378614372414239664157846334452958608050085721041530908265309278650550241247360607155528583666988523817487483447342168918771009181319985113028108519626364964649468063125222947409588333606697663622058914212000332177596889777724239963444278670293957642352397641608313484145264840206273673899230653049408728919548458963827633206761820208497840348900607911561930440907910181963329434430342117752864589003360891448492880662964124552236183049689685623445414313623436760203550061521957980251256686388501162370768238085430820168281182204050750542179751578765820031810627498148043748121604485621866358497392169229236043240168028722885771734773038779213866524101040831989789726223671970111419840221309552107854869673727108351807596905265787145885126032265559468603289036410785659515825969207781535498315475325709984780175551222509421115201329916794075049554399275340703312938573419715786834270563274848589614076613035910476867734913344394582563423282228644973747965921814926951260198541601512277002281019683114887815640910878897394512958667854440596523252430299373531208259109430285090240868615170746108431473240168969722461512717067073086661406730103043103192728732576852375609149720647181793257318170225144554563130344565176639578863224464659399634069460115277714997255131279344476579135563702179194109476642947756892465966339131524109395427572576248170632684487259277168916196943642915716696919774481168837762436126534785963770275692371838767194905434031227735573456682304866101812901073447253846010062966363693941494005287069311196091372132714899822987725128968015326689485993304798373493152129917002971393483195027544085787894530728825126911752481707231145614802892072472241001753778955868664497533419430468650346177510810224060845979003552186452233654478580013766054546522805235911331125882229004161458799120252676553190692321078565132931953934954978586474124926664654424209203384928100223331237095362907691695541182539741689681332317138266185647969232154792179852780804100229643036700222012248580108932532908510982019401961015784855651719383389045831059430748265092547570063763973643366717279352797049923581642227689434536606057009593542075208410093731308297746516136195799897171928033279544863568139492519419171015897038266661359432560860034043835833227883275216934093905063633605918126078275549794762989896297954665210800449391332001465242834244675883867230563964505797114182840831027531625297648269024310813443958955765210929359947803670845528327307537199476600591066454993055526358817568585975738823602467372684864707791864254852158996020185545688780832779153239865185484912670075387839117683666491600986329407261627903243573962714428909664272432477924132640394255588548598264409332347627960596580105920946096948208872451436974789200231781731706392031579524662860628982490812318076097692250246202786711511732025165019940743429621824750300155239216577896241133717151507090842001075091268025060240409613719886472187621888517460821558524511983031057871657159290714986101786238803202331938802851908240276190426480723812728231927089529696326053306445776339528515923521358728194881782047952343272829928392103557236251137546820337018245622173914128466206373530478796005852065491453880821052475873275101865657863493887554893790907473095337072117046056750056150448828812267431197663030847572856000292210406468263724213283862029903938999729785256869685665538111707039853705107829102276728876931887851374843680087020983162316634225616733576581659933206220087442607063943765700848442850730804993334275285040767738108002893031891158519976293346563998270400094783600443399347106494093503517818321945616278815936628944005949534178364732850789971204059161881095864982485883902983546945141993316426562184828790532884836443668632939562648389722084357680847602507131271604792256993537724477814952086380421736492624002405091269593788647626250474856756445501401812138235573295477037353629288827697505503095407376229875306657972483371794546946671525231060683883540539055981164594520476318100140220482156899400951701323726477436786196862686239195128625750686017284552237487079739561785264226176757357370619212956958424342079562243281528360954134650608011603750449545762109680365337898854766382419776236758353863601810613727313562349099097436098235131439065660344271158018119504420826787152979688231716996728658793410278201567701989893808576340143603326837443491453638821963380324994504261994427062670328061161572135256541974510842312823424570819230372771903290655985434014593987545632005249515108366305973891373627506535409686414117968927514989748357319173479425845077087711440273518034645747722802867799983401221505392192497070753502221944217542465160362411873698826059676972748052702159000802082604465446184186959764536726350407281494032084811864279639738572708829482622891254434003066238505583052883170216280890009572250179427581360748588726408109197016355890256670046466142850157044236868703789394287688963373469842983081830841069277897241023652725232403245012664261254351372272151277201128348859222180925477663756121721856215120040210659492442039720892250414563072791206793308038982168923080433045615730821065579755050348032601618125104279385909255931059599388869179594689511742328677896696764063406210517575018184565603813115687654107308357483617481787479972794236053818248638708401679303256699504972497765958757179931898480145713775782343064772142323102954052909736511647754617818088638274255270350356732827704938195765184554472631959080940545336378115832537600698034033055094019849363989626126672505088494255048813032713654510173113439391355102440579714365197788731667460760084431000648065255605449597883757617891752464307945841935035634605937409778454313029238931530919422788788082882480756465934158570250377961443677567306929400613390711734213016302072840496627765270707316569237329303221124213313397866088138515989065276394446987040892874465887186578320692679310705050505450782522984280284372898529987672769268996266405573438824237367754500509713849361796388497968790777854858769433728336737320872177433603896118127531952140085031428941429084922787242684094579523395609075794895248657695469482371231825100140916210463122002957176463673265046171247317946900270160257695433730040561814664810700104175165544949257653152327035818994136928380294702439964026035468553495904153770841505610677423656972578588290553495313804341578835024401883429712885158015317681200075461579398771947124390424352711055383296098465575952427944969074965634523481253343521493542377752591772223494534048680215247461979325543308672643670455518348391212711337009436217345474855260035553475535540654492626253213348505383474647325636999670550350957176559695289664092835453251676696762521240519125500010854746993077264297282149957594771996082057443091083488344006329673152795761986483547138762093925579060737747612684142619110084835200883358903608163638248309786733626724783615667882315168810932067824660674522452339669400324880583524132978148160731610804250086056612669050711598892930611474174176722710233454155584685260697325650017585892916123293436668506149873836767647072846190124908238061893803190754608026728574068069956849005775227692073504553306601398869585174603392730708246448472652424808674027104277826375480878913480748826019866823765765757073892776168946064446460196656313892707387946005877534324502587410623933152162533252481507152908162924288019523700030017008966818043113132124939750304849240651086862506499228183365831413668856693604422237401611213984087481949953311817064230559779296464598234996332345377891591751951917753839041177207517275705721275131588314322821897845580982087242294154456116717088663524494356241892406006673282573946108252425509058013958561938576673800527703548513840549874102674062380172511955075312304636297381712423400532924493057428561434545963070770232647917394059446265845007458748735400282101871508203432772126612351545420713300303929054184602461667398558708047993787326677711187108479967519831338826900604404043244900348535501849360903012994504902464325012067205053767626861458620832219347970627882186221207975025412590623678704041466582814407066492323789585260962259472106322272897995845754302199962270324597273677261916134134350301031886907900269608805703372985381912443967132481365603779511452096667520563872821631242172518027172360905622272165866252711311468801863149906608762011845905430546687269317849595499124145706751579855972580024297823563776126081020746316990767563751343699501756703699203269180223487727187967601746159209800375988053233034838274869352849739336371328842917243259156987937115645098885148103944189865137013385008281431453180510275477641690500881659315958067182235296123408229028277474800428623415166511807230697098446333516170004344204436470182755531151296738746726606478104473323054122139039631963846085591090730432208513513885829132027275383156953540696505074628431369116634931303490451748788140697679891261521365014678023718334218619137579552300917261236716899176615553554510489773762615251242942183373403329207889941737359302043478792768556124069263226349709964726405785661522337895115796397082857379939324367251261306579557544751217186222506383253922368890296719169793445480801403786233115354504563678356261557546412283436338189682853599818026333706232127592844613304540845590801973365657287363379537219156332468417210286009587456227217459624831272069341462071047040653512053536853162357090881791015264723906466978293368811188086736643102068187062889484594947071577741411179600333817431708292872510642217105321593440680321433628414052083571971643955847696473690937269127571328438698498451394658778096127787495068535165225492755950141385402953526120903717212853302223491544491300718525935375631174165781641208617019247765180125228426751989245817332528216463479849472737226002997555509760076680992919482920479430371265628520920561757440571358325841935383871469630991697289742700904056798779726593260064708096440847319820074608072849764171297091246652454720257382446727024462962005705120644242419745751290033536419673309856000686228505643664457038328630067476933327516495302563472139118111768657158142504070934724965738506285118514335838542406717531070036224691111596906859296896874502764734892878622427089236912494706786902846700526820816140692197445305699465993960055664432298590602705639361587710829881793941876913978427366846933789810523205476387390869590644435600993364818609654951849894514336022444464618228745216403305030886733673615574844304621430921057415323122948434911470526784130284062711216051716024251012575997582261258202934825722818823336397674726676017781290487454527732153469213104210279852562918982788276111711171143880892997254401057479888232101722318750354410502516044342072796734873196084597314899587873870219697723150593533587817704442773561287176429447957648231899946943194914576768227250126077991430950844144186014403848245453194089156250909239903843579781270387471299825410551388406994044930738963348962828962313326149999402475074468685068001842427797937425643790203093068709684241497779828457454132032576767259736356228133872096281713501570145338113674644645330743882815867724296463213649303091488136824400572914165944378869055527783075091490261986687601088280912989728195513220113216655994227290361549504698278168600031601415625361007402906623809643347970584428694890147688790368337823810798338990752137159670074184510565254801248664161065236692669626661431800311786263459861180117687937661224041222115668607922459859619620173593144601427652513574481942901598699707136674519031353429398276727239574233527115036451705839909587106019252423729484549466622225639382774084767504587147879284652977650496208617701359460928570489008564877658133191345304715844403510681451509518668320624061079053905069430572753363909694818906276305650408368943767136189233020670151015667221026675750602723336310089399819168418281419343025477248820139043132362774867712281416621272957930763022980032080525359087038900184241565603205865752766389914941521956135601860221479124645999675684094621392332031201252974774492687168188320589779290222825963645265870927417728969014658057587022798093718340858690057494470976858007960264585081156377650570710631573847226562077177185102617110867536586235869088174550938219808104054739095743194138705664074507752483985000026428356927054497601629787842726016895319169444245430731858363861309956005475630053200351856767044684313611868501112818488324029146488475031342639635854912979485961813045860378767165601362948694368341375008672320325853809352406631123801207686901142009683379200089646990404116727038061696210893488967789992349156406457039259151660373400789804419373450184552485023838731321685256989650306805237086992702333749712632048607078951477377360202095000785503073194853993324777259608113737440029985099780001092515353238832194572633790982411314150555551930262981715106046475807084277089572438532739949241857550659606272701741945363290508128179508453926009373838787676873371494539903742591921162068465194019198191199856935336108429882799109020618335576310433678842868467957723608496106067089049931418047474437866904496228176351861632695034861638888911403204832257368598752730746247461590344644332871582827353085051287120922572156402030040325633718992867398788940974431695105470830808337256632501738891046346190116644312486662188180810645336883322869372278516595574461807954048935116243218994145266561382013251457401697281644016382731090569529948977201362549433123172249232630351176141291373472886776432946562896398833681980165410692815367024062021963543720729381752709128448138478695047645816199447127012033683729882130443308702916371018904688639751958819780695111112062315163017611285831940831646201390431387034435398047814933647547887476863701417237460693186024679063743409459144473876883240040821679830438792723125298617176985577082746764060163204818855894793613159486000091260193945370596063605641366654012166073211008455538736739104382199295810958134175319023852760362027843879163490039262717768584096431044057691592767765587737552349820340858347678411924983594969087372623957497554442079175573552117112469116310787259266958956505657879818015880680583056528807137775220672048307754665765532820944704929720872704870593688447265498119522936069190181439814385549841389961695326724351143081470223937324777983287248156197766088377509988722212140786688172150782760790757622817561023456937095772034181470430855042410933930175543330121898560016030938589678385861440396258310014892959770030421338821037466640303533674063015528106035409931399139517238217544672311318003751123278693310630212443684843793032151966716680048409919523354731087132861636609338613636258272797838313897990491185829348140433232296217057385474282729357716812915515469535038211111235570190439043870512566891219114482712737503771579447698441418386384137898185314843215317314773956547711581507487905548306841691797012332188564624345137072851155226640691321871083110213679420406849545454531307469283504404342828114447173488504620229922383047487312122676309547240190304827765670644329617188181526693667397829424679092855069504297184436187230051428704427885505294589086860358609551286305022298062687819096951859426608382510654966024417907304816702136630170768546085178466189439064508554626008757789883990949760187124552476048455804375281895609195659797095041794944737364267840894529277797107310092894366789567324878611943048371437200348978165213040271221833705793949184378357580993815218460122612223283528858004060601137126739185499213460385325035557630310252990346842642344707177615764564801632789345022446581403637342544430367873065434903586706563598640711215536675503977778345022284982879888323274029154432784331439226229093642671386163460696837272390612883446560361829907201168369563541321312998699736941305774353008324193943515719139617702943359452874672051600400070489490933315677836251887761864349980106455717929134394415253331744836843323331735952432744054054021070263346522695616809224403296167368398582023605846731536952981052626078496139998176196838463304687828775093047489452848112539297086751600306510528911047604011648133556281181558903026798268588848069332831948466469472812127229787732951189093348246611800892657542785143804110246179350159183282993384258505884106207026861330954578792161022813339088638948775967997187619783130400862030491368638997393117080754954680365838943518498383324223860883484370038763021068304851335435093483508705596213529603102826121790277132247938179505172069092211809591162138773046208733921715436882146287776709757397339225523946971629639329269659090936888658047131496066535238231790245713821038453467253328267909353581314373516597128658555136724769431733837788411565883515157419186677440339085985079342452629938912749845989773720989915235080872311730007142348285660513028413241530473434406826470713520628267182642002482953273271360294741190171341570643057619244463391576904057302475226291904172110888183130339728543576253825329716008743151735709813009808939657294121305158398773482785413582696757079956249726807948709839855106331994954672289112869335939073156817424597550074450169586351339994925257154739154688428670569217571296883391790540210922844635480749535243361949069569919248049309837059169310917467857667501979661808664158937478499774761097871975834360900634836111711488175007956260697940990626181533764963600509750475505974072791980679618363615643748099179575092773236441433797783311077485541354033379932451710389769786984830233167419057124396632546708188037295270055049875032523073647665520679356574913461883180521472380386525494106295004430635238900094098944240713463751305257486382796131647494611268055229200272521455502673501781759580826760371811491460561672431037316680134103705596961285561860075087969483946651816938139138273620878359814258884501799618318394977188398532682562447563449973407368475498654765651878892132344722123173501819417774194529519410067905071315033651371753999928484210257119772228524613931509644061431006761420861032673101638639315586184503514176447574507178277522134949204651756870269282304879837219174640405128361191848773619458516141158415398906576446650871047648844278587032349559863693188941017156242344908874306552879869038754848938323593141389440843500850651121690348785716775259986035511123382694401130899792343995388754370247395327222746771543220552549470818367137861854509555262013313265619876843218629790504079532262597191331593703217463782244870053700784670222156911777938719782999817609354968281773706029919003002086220508700351944353990792883859490668719550306387636074542677498347162232402768052512362058612567599361968814644782046867248449894999671403366289297768770416017251691122679878458222967369598618177579976416082814848352163172663054751069937428963606439746223581356250322113795799805640861155706865652268034661462904852741850148734460978376891996407141818396237535914393984980897074752510504990809209241284064964796865663513851183902671630584351319546938581591418550337130903153206288849023533156614898880874597171086842089350806196925866225766932868451621341566930720520174011716014597306937841554792581674954887036074496898616887293553371733419591898706213836070209608170430559730658604812657523747365375472164765199336148759924998314294814778061905890383092942975920481309087391383270086934091762068168910764818079639640852154261260277590485911584288270984727641575909306958020003424763172131415604323169070452615317986787596127969355703288676409701420020940936540729787431888772480359359724555518411168604912134649937818077991116896326718013710713932101400121205312965952978826849055372511442662503767147003642472505978273580748774071115192766266280495398932121499857364047879148747558426619691683375456825847716550348470796143836964916741563690155854420493850990185346254243121505990327313015235453787293626782222617237495485704521866196368677463313504226546683875010240694240320514213898797511247242086381123733084737741098572339445180470382171704691156513147728241068229251940510086419628370653019815446441732026222878856197979606283992701701346063456057483490558499093045900494906709243323134388598023112304249011756955881779211335334420070575534117590735770314646068620019564736559063702839489867828853129770454145195638282872972199193930234969372306238390729886733133969137405374600653891930303640337627623012123392604522632930543540036487895836375949361868319101757776714366785920195456272724854700854348347666552921391355760849299539416441409108014359250409265709568581561608376143331567159565117372101336040128554584225072327660636397443106180698876730137779819775235103280819040895852670293068489877573475698355466096194553686265087735707807144032120995297373695787041908637290723078917501269108767701388195383464752951083875331708807903165150714585694529345642288537338441304509772696466705820637969232870485352908722475974808074237288787423682928041899223207720929289683089835563617899915671687780393426269976280354299198922459831284561403496898519394997891302407056577964195199723620612180570735058036446713027845088657100203685099550273553450824096373224125999460893339829770686557267662875623854434773776160015307516486806020829510902662491499189167104537026553062948844848504866548231668680617874010767542109761678202125800415815029789623425437590977082547797411857932984247895371341457312624028550325717274089210525033772135447980589852676766563993455234331423830198683925272124993736565045051521067338837710426622608037040520167012379868952138292049205818460093365612008328521447503412842487788423252537119155510577018958175552967749610616249555530125256917500186752340967071384429543651045256428974690167204191442089277738665121957238776127804213038124946839977572377624334727654632551683707162192611011801822763029655724264245150168701169247154587909111366741247011622883569451709478695825601744040839828720951075356033068739448437699811218789116031179795684809559662657293869527967029675072299790951279351534349035698700605353768106109373975992772589637769667142566827244768238051357877353368145338503490500019492099035537848424623348402142453366223361223118631798762672644564614501427104866510109624954980995968027814258771915912217142033137726366131879700118732824283392586881588210757639932523143653428647443024018506609522923601978361692845896818504197154174526630281195401486336044411304223833359809442182559715229677337715983160905182150192803659981506425364408498559999281370509902617364316605572582181050493763762081630216416641226370923162256418284904795778731662960970081523042346798635089787177761176250746675916126843469110839919203977650738097704659453240074564025502609058533986738461537479822382742287785405318754851456316660633464125353596508527729674385948014455058372396166777103032805479868291796817368811198653968541959439964630534456082104275061678505386558973216410948944300134452283747096341653408830639764086590511325069767914392979573316620531560160145085885744387911534667792065010813274601169891530167486005654572609876494435573770565728492989947678921260233141674717201370380857392709405178593824129541652694893806096006056629914041758290900775676642819657558234335898676984561183888014253585326647492439035253945173403492784958070155503994564602093499135238711254966043121169854693845752192054472698615514785037722276249896386117545651673955333767137491306528719924152137661738398681955776818588134628522029107789096264537631422304999401489192640310838571882115488654240158857718554681796373782024596996495492011410956082475113742988378923929120018004384417017003824459513205083495948479863702495991464993847885842394647030930004263448389533845881108924954713869961172661719702124158884883115109697710475827252093315054675118414474039179450601864783461226956503281737724140991498342776055238051865424658111335539949619657309481637950591020224255721190020378245734750757151307748365902809251932950338495009566892797947219577993294568607425058917855950330415933004949078101976511574901357715516013812373598140973702848522923397305089424230612547607804250837717175839500879913093265696397478192589181166815825117292115949032206502576543447526872292924698632680011722998386604498625713730799547891494977300122077995128955658333286687771143678286252012044880408216604661399168080350683214480997771105174491056305176172238457848136660105610937355664861421427626609338779250891068010103624706190040296571990158652520706407017464829658647932638430246796706897464530032675650351431446167474067876431603071294391971921919741666031430408536055743560394531310934022584125368228715773324979758472182293851386770867245561516821107504866044254913220879988106949750662097632861853828892669081568702124625168889800532383723738187105893250424833801064572524367953187729783214470189892151958720334448428420906753438501287755819439476683940196203293841013762792102575922257210934592835819366250347778586107175020819818790871571848647641066298315059830852020389403367781857853324982887285015825629283510711943064600821933775351524201184237754719836424197807507618173522335767850308998216402618493117499496968241913453495723753076056038423538131921738871346039305942943293789451384207973908291242927687248990868863444123744966688059191588212474345858853332778450970335262951031820189881850906344581236042810277140615342654461374611522378760014403493430951280197514652530351691623201464028039614059474152103671990376767088316419700518149280444307247881379845782704157604056644023477034325190668096503054154886169563924611756030150861630081661452357070084466533690534214872384091278315106808114987831114179785955698042475978236843381806355149194291701984051310703998485491251951252076270366373599485284038798149618078956190047978570913020978694612123565664824609447948085611294556340724330907312928355464794871066872603808681090064629416385971384338429000241975534232564123986615808333839249018632175982168087065152987448001783685339125242470581259973518497582726654587104393079473519714762255471011661844998283397642442611495752242231781533364182498990810110497503387775261732375304961775211661788115220318588156336580602979761981680245312860529648362972543241279303587933577588613062274051609684842843403811447982323796123389226799659614628914240144358837539270490335035127443306102616879205262870951616359851145727518782622803722047375342687242226969034846145175637516408753487831692879618414025469617980276461526202130048820380596949049526961616583961957096908932914558322376286284486557680861814634323147377778938765089655950708328237775182395477084939286577775402265696295721945786660258891540385465854902157684745890678558832259816938927889174804327781339314759960157707830503138489715420094234455428199605805347404950925992675671823854621735649217709193708599734560857534648716514307310120161092162413813092731431597069378347403550972552348128415090756684285562964500329161611166478685234412512204660535064725364460057222219114203379544180507797502645754885090795604346264614255298588447262551516550028671297010083403980303119073955002941166722970425656056279999143826657040377524091207588691742090894856693872155238484799481357940347563043904709437477070817251127189676987352526464300382848700055866381664304412067393157645887184838714640468179093953741721434786474545772185800928871298431264313327269799339000492460633261456495931208985007149194268634678533115828711535861784486548688244642205856336789968656028137785461011964281388661451995925294274871999575026487258981375284746429776252439865250185211461790441046599129542074820271226547178218754069734476122567334678108312420634304517714765486542107960335948307010472574906946193927298598009497681157987413401500817248155827045515074239925366628501483555419293581026557476450001358702254412863024701594973621595247995074032293928625688001669138404520680383970355085344949925172758607350879784813764167410587641850568764310527407593455199774214582526265134880615017298699169865400606750969606935405219387125009276067447478030546465587520768220049927306157572310491909207920345168462507923211888273028062534730472118723094302605980728006329857166376108968408648204660016788461744444064634558216614484955320099127662574152271078553775290925953162541806219742463663632508486640527805017421936877678295651703836084434516108813947340252412757315581862768846897251476784003514514230069312863082279824041282049405706593844844675148406899360624548211403568326659653683895161180779829978142771472102066101053488608189495143287677862787549595612717775424785059888793586060222539389355514126152349970562883322004620078000092911941387090805569575543036292874744236735851878326908496041650094146850439599989838833693191221926892578927721406138426585143656812929389116897342816820261484788060642525645198758049609055611982760293758778809465128447195180204502814222141833219411910150418794166567982360958456069051622491281329962707153669700097349375172540028636959062245825102609248641726512039225700824699449509716292549770657948041269809121272113881708207410583620016308650727244882068190534888517808577919705423954008792446942006138571151038303470545669738231558661477038338559816724330339477766818564061004808263456022741246158743169047993820614347668113634560039220425482560351410660116451867735746546730943929634210783485112631153638722470336319541436082780347080963459008692989768374904775995333645198728296250307125208174578899832656461552282348255483903976071195553395200103600010393689798696779918879378724126025040075830884629718760694107068418682006326952674051757996159996151959259318440040434378991252035904633487126288905484071531981053369043462095958168239437345441147137134358865448446780197573500585747191384446285914139054881819164792704328997998160976912909283904595386042509268673090946990583351026640040937112471863040127847268295917442362192538325409492000622805030455160756254998865562599747347119636084016150095754192688696920531717046168569440286873951907921638708780711989011543701643609293637187344369840872253159077163655615151501147302677717539853864844177143060022061606323452666538285564392807342046353702283265458141220367012408160988430477868649382432546655916503594112160184860953852913012967584433725394463039635527688732379705740933570492598388611320407738308139624844829160107244022166890104299039713490232937397169965009450723278207746470923477133370279078270458289423608101118403266176768470068230587402314597540006454539166453547925199819860456774376925105362588416500594213506583042403497011544166432304286535621645968020961269031195100145614564951069311876875614079462300522939671610517383300574568833032434204389841358147943277187107250415472225561015484406018978550722472306546069858238365448909013143798027407518860236237611869656856295254888569866351017404373394237802205978808457612846445614848414351553525639805010652399432490100918903203172091794481747560615112467775793525118463971716027813812276694368420774005576515214660795410078446166360335066362387801875094288092549025234054940609621142275656855333019396289525984328748749645682531308763778871721057479010109217611390228077088839624464780622312913314005467578583512148074501467218569936324512291012980551451314319739365216544022176988472016001607271903512637118249256159036884519006525533363172925473913301916238418326366586344251637885085823811454054362317539100584233525364754763102960546435696514190941950937076573591878139785601338687296232259557369660457898927453721872948626373351639688909558389489880610805445829518396708430142443740865359288950132342736897876018330986543712774938443104502517529176106431988691199882373769123855793546782372856803628439516110237660434684324605773363753265357758236462682256763568498824264461631862312648676424470612200873592608027476197453296159857576748141250205631621881443958285863459487669410048025175087503912851356138175453240155507366280775398758510809715235836061499238245990891178233100682142830548275187646728118273663879579887903457714580701009749474933787668175489977171660085249488339371810283408049434148716183220316890238556665712770195308361404057981580088844403648074947837829530849575629921919615644540495145931611599794388662247307082001973007531772417740277296873818085791825760272244913385841448940080092879307794228440353028447323025319629026010948849294264402939185640313593456322437665918437804788059015112399352501241402283437486755501798459022699633631221186797526503360996308218918941063897971319472249915681748709765203340481751038456272197825651027823708557861318056340149783101895450614870874013310108954534575603084812281743393639315319565333292593088417806923285729135190909042111835089720291883162529773746864007982455441015557243083875116328761104004658539600855776505593420496114354259133657209141530360878497923054372389827383522192295013552133607231993791467225220881164245899726478584164980091641127697309445105418236598735806717543458745826702951438739288236551810345574768373224678927442396270891662970549643950902124994283459705250318934203887357167128074854086641462920416944718693356924088348678253371841121120380392999982120701924731086649266198163610381091494152035844867836059917263168295414769177036431303596049823317179014556416156412238392211004294043277254689395892518401218857612135563149140049315735825561848722462101556926425458778588044852952128874636904124836118750156882258990921077751592427845154131057454568876763161285037642053721334185947605560055882087694036937871632860326963737915061437174676800178188468036841324539049759714464685203348092201851125559425835072667357233992004980387205936398948148227936576431963324236681309272498654493599106752031017526602936128972700816319091964499917736245878054952427774055048691298239739253522934529609632605377234583537590696187413561307937652194626892360439843618116956363996997754566947663441884986037568287743855874738417937199537270494500786076671453630432627023722038492218014488476014145689519800776797639513495701112745547712499973113909165207266268828500468864624345805764149006467560618316551256684653509179993565573573371084285124766949495315947463948803417251293020718300479519393090455159649713625050466528224754102805057670262125787633834388525054999899661299022109983155995682709867014673452094805620710129481869178576076135468708812836745837263737424451892454917209665056954936660000380272304198016911828601072781515439233226124177106741443277044001688216734860333358470018780398092015423720997610696565680448839437152291058489310643655421909644812723146561056991720408023514287142680648798525093952070765582596406054017310103513105676935623130798829040645390664736822794153542683232676500652624200005172014333659893130011586605003444580666318173142928176611453291925952913826477213990055067914542193508659080470110294749809174375067278985989763605392940686842388263977880763072530824744315381556976806201313107553114401636046947616776291207074723270104074221020519103259730345891656049128701997188739025529427115561921830965506185620541949202523833575041763301188018942065180842113803230233352821968715447792286350419825239656720056697515011145137393665205450031908794574649639001575919965109830517767549827753391735050047485068259315956216242170132390973477077997787941789791387762789511112728732818680953390584081065475010664527591388321921995282005483957240896442923642203640573931522625644344334302807729628009015377345604106479382021704599346748596615877109309094204953171332549565126666159660679605044231454508517804819254663981867518356670006945481436651498572951287527520387107694285785454963568059995145528927061143532920989164574071181854119255449036124174645493901818030448420065318727478324317591134682753934692483195451383157284012714841821705905078290760325944083109248371114627831363434402819401743529391700618674918873156421105328297924473449251670190407079465012459085536668196307742699891485901385678378121783851535582510528905629773382408067635517786033142353903927179301083665663247268251050312003330143534977091421341284222991803962825802013146257375622436061605171834587523964419474422343593863311696949363227852184581636655406771134251966159550022857806307752256979473783343484280094836395492423180358023418904915475676782988465270434672842443522612135821056702405100971061555301112967741162027471769015374018546744222874909987594112280935686565444027270815201171736085035520262266590965341405611426886213663184230549560883514246420573037343125827438314141184648744353240253928244049147049937414811878901608991573683323439909535339290433257251598405123860627778580053970752849356276075866673582580395282135255749236904681852060454500021160107688758802282374236428703416835829895018974701580391905573819155817367225694545924034556738069068870155801979885162158199960368022897970968239258482664005736402445028649216797147477271730788375426999411450510442338257046016579967853637334090694570551028432918926506787937768209442711548822328947941851761538868780602085061134052798380736702275492983209819536576194011970737059692911774410877645108701123443845432596425632343052874339462867144051074703663855156089619179329374825190114189029672499973102305616153367382965580674588351540480009630332961782328389051106828041332111594581314738770159459793943311282513423573009401991477713355898401036132352834553107206718163100217561327235061052004129112685903658703575176343578914822752632375513164020684373458495862217314320132042094249869573219565618209123809999385091597026946615727154119930430002227450881944150848868201739767651979158370420819030917718702852806746856548703419534891443158104843416575461575461924923049106037594743553166075623516903034919397600635176588874803542133231945119912600225670185592923250524731143049720365356694406878260237809103922096213881614180056307309151674322859845927037909368574637439985721863989889302018783720339631341798759057477256457579251408423750658081632828932656422353622503144050770759902824037839484354962626044962478139651918676246184935601186674310983267614884914353292685576871094509838231843926612174531833537650224502619072700728720420583443598372812321013786092613199020531003529953932375355980990084122404940361890666805849654990079748877637171192259289999425735700032456531234364593003273559531122718494031532358196610363244463341842133920501435403807270753776112281306457811545005799991361252143353552697590205553887870076226356525918627439300325944258241948337758589948507474615221183861839693477934324127406141342228990351435270618336596202090541998330219525266411585600939993339910827693830834262693626577775114053563537338457489964754277582906616918179832918551904926754703716337865861310012318250682500406847129438939810081004739866867238586665678889603802379495325104049404868994484972609086475343873486175547251826962111181473217097994999728115599550040672953979266523774768416165093596512044575615467180917868257439095517796519661847249753451629032957448226689862840283598918749801473963364117889197243567160519944582852903827673702384750204193967904692251683747823082090869049825642175807124269550819929714889441433122969798857248087325596505539668372461230513205461413943444464627850518660259722090378223872854557472620651451399287182887452634493880636189445677451071840086960985997517721118955172967358418571733902911969841208879340885800637169923803908837841585637585888179194849341006311247768897004700666192199227639921259408801556590651363627531751724048051601591172376651467044511325746232912167895169749403162869470980180088524797888543270207615226251464167895544652950776975408924661461235700425830803368863554027650494497042810369708734360337472632970272926984143064904574166015719923383329033215508011662008772226764459791103740468924044391517032168081194517554254786894176360711859238114761025902383054251976962191014977849818337557929027802331820372776911906680180818996347087768991644428485693042387687017398522581157974454172790353310071227774705541610238823899148731173887735155234128887112690550142922845961474431090647943403112717855807259685844937433517583693797555838686583179798174327352400466985542507156628668622597691945373862020172642629314878666513062595011575958224292350090895608850209261962214642380803723806139568672644192421734420804992247335876157406294331152540195120300831586441224681755329644744283748176295084274016748423210300499417614878463379325649980107855829163743522792826996587501008887764395376458296305230696315808995292898316848095025187980764531407849121400743297271682085644978739206918915028168372730469296744052612796239894647758191213722897488312829044631198959336562218151546483780753128301360382333588739911350658314399661061455770208412816393253541042590277700646859232926731386637169461663585773894745622402525854748247269302548581710639277809252291191940545968713481782894410085893806673111599211302818934939890210044053367586317838576556279942147141288436304525690691410108324629690855754625455608370482164612816775389536349546009852721316845543469108829836900017737556869771740176147965930141153811051659262034006279748605894549675718961260349127981577420330643390081749685500533640208611920082822536367048602482333142263684785598514236740552729571369649086722244860502395205136202101575359037011771880789364026249299413397615364253889036748178260676988606967058129577029823146129458076775615923042567485778213300350634321591773982483093955980327058416361469477970633815474509857574007946386582736840071122517947786981176855103416655395204112929991412551019945667249876014100701337691330847856958408470424591821497122244826192233076970869446666377928696315205450935051861824019115083602645286283134305979776573675422025609996964009368251545384939191343104487491396201577096256594500503568362093493591976115636804692226582599502222163149416100755568940491379113741458422959025268670177790253839648488031849465051826041686085958274749267133805905914633183869196813081322360374082814495334720765228993837543676348097468714853077669799472213800502339672002391085410840940482814925021186252802921778999264362303744394983641231004838374958583687614666625104526665921579296834492150919983874130529610123648281938187669475671492308527857159904255919822423895780394095856262547101448202255588887430954771788704783109133103472725642706142257704750673234147737587320676375277994514771971214387830615190644245259192707474158766057945531268066510288156234873253460633466048176887237872881437497815394976306557018119546799903783288199796507812220835725932859958142373973365128842417977727964871083121252329603778349276540116181465531349182449617651377162778019819132481279219253478714851539852062233652931124638747489285270389657139884861801936410303606645357477656050419495348887180330649231231696542079988957742660455803678510830483469067166238098458560554594530116708754219705285605859248526454539768261744315801114074445455411205934892914934748800217271592912564347068093456885167014361551179738254645563927793472681087470619212613031997969016597018473021636928220504978917727846282816987790661960826199694233622670431218789420549136173678480546198513072999151838757879839511747648478608611260295929710340415222063812620804552757700268451542671978166213125453761424426100690285294953943686930627472757316852203241878421147996067815607058302206201092926790079895058064170348200578661884192804230903355505614664247883334099022602255988660682817966047224478055871193407244018658685099979121258507053357338552719119535228202774002264816755987201200741322125883092950014483100456077350471787069711950634879320500400995999238666177023151132733887588138102235187440709262590376387463163327388051732157305109195912370127361811061324392247753195676385208766488435471496761831387523293166053563833801507783481499591122911230251881078470331534566847789459204769036355853958066369750797064475146672373948550460760466126448595893402274072614635406784022477103907125667245803096339727447434034414798754912422993920852976779861989089917781692621395572827684521755256277819380082844394286609087083147596122447859135892770355853252281827571831786898911333868295494486508694868603668625245101225701871454599833693477417909388136421823021389050968469171560803567523289242700277040986254762117169834426664552975313555930976222393131371855539900276700311830479592833968271705616637260568974542500050840200913983211422936070052561311176570023194118884894445012441346851761648466977005842037569749095099880152380843214384259888691226186236741879618820593659368826518559458394945604867540798960763807933000727588340054291298781522961511667464074552822421867007764753560094133452646667122830019343204220169326160998368978989958732299394352059807969530297120206953645122910803214085704382969424062600788882930541564241939180483673126087117564231310965972861155990468967896171009950134023147871908869918685608791732445981827523199293846765142655796083861195205488650421979426289610463137362342327077082607420005472973044591027368680150715089358471351062124652006282422295540207730190522295344902810186751801864116641139845602025950824152026394920225150351048775641781473639359130016925954650671649326845756124864304944206279742718595373686610478671348806556128197878938700745607411983040309030210956017314164689509959331081945559431475119154432483221374998300687071913199167659752686064818977849002475752718907246003296655391156804619921732359010810881166507273449606535570769395883874242629019408468775355786476720878383206604992000175393690432260043035142309727656327489476968847764262876766312140717562982799220896077824783713731300525183815255013084288263924567220486529121638809972633133200064910194232635241084523053148766204866344834632787120149843376536655541479533789491468530703859640499764669046223934512782337250047842570148424334742535177749578004481735427671013279544324938898736759160507892611113883378792477583353286431387461060090067093865094703536205015997249836726492639133743076158020207898881150545883061583231575084112096818891969053824044277374022341952326577986323967612351580915176593249124218254753104228110043063989720943940223589126488022578862207712302002052120922414706132055483593764059676898410661601237182960272304252004682354255574216630192965134844323730497268422721890104075714560008669613465516772423775241406007591954324465879658645875082888464163641849400941951184433061840191773192544182849431626826083803925964540581964813236977352798799914185273083460034848329914709633667466353980008273809496674300662979317856150629911243450686096864528840444298051159191582185841122589264034516720987120958492865723890195964709992840982812935815714953103932913523949864750308964437023363825800400565335460589596266209148642983380611185596194030000246945347281789057273387302411376892334457363548253438276801776764333778597035642680810012659325259798424568020207055604003138917573204746894339622391056281059822016367663118171225072992470730968074423991140074147525021708170165120894230418495350298761444391239951311759006334582058029448035856527349402795088861754597259302099779805065182257678134833526650965740469464150514593088209613165800041726310773713124588406625351526268884357495120461602069517686120006165573767669802858540181609698173909855288673538653085326296005934750249943616034944407366782904478465722798306024107802172956559166970103224924145618858015765394742183245951013238846779085368090691843924802451074537023683544694734904057905944142144276699612013186917159041412806804990384517295243516219063328083900567163609641582262376055852617423278672641401315748416892212638839708389058285170513335477828866507320194315780893239555565467212267078337227459801375584891665998217166811284110364086782652101174911872163152362911211280091446954618777734358409648312779021071052772806736802947763272675432542850036843257901302970961728287197658511348154445825372325953372583435046180740207463340783606528425019016272179127808583400589586773307037688702993021802682152477639024202255159123010212528022979425625732641268354910631918474088408543712566813994760682116208548342212958130663620313833425324184702225661407817767438199980433952363750673669209230879794296047182731130090879529794233587779041837375858138305571830651765479503543338180566534553122571918518990282432105810434655694241846713720865768066008184684961659807962021967136112527483616033932692970134780885276850162251904765735648116599428545404244797518651930660872574204342714294133980210348380118338660500685239133864362108666574356924016241695678593362500536617596663719653532850091139485733013452348068922003688104318869893567473186602463819551713194660012542280951911307365236570866871573701915315866669221758968381449010917815148062524181730525357487882145233536344188047418239278732173704253525308674845828947211538629200826336544139306928899109166132536046705260193102234860971066317407469341695180718196846455487902373013500807052954731008261905787893340223138852874482277467529296638892702518847002571909692789895786390595835250854160599584917555726613094291487667686856792832566147114268733827173291665911170396591807067987663681054125748744424370268383273688544044017378111162612551268206262969021602363222228729796144916186914948407997280887640213225249371217580044459945825396655737892341251903126249797762742156307767436717250864229685715549591532221703475046877999295870450327695279093850582767506687900087022895164919055354689265966688274286969830566164148971208529670981455055009661560177754691954745903525771294491024979429387691307920840902940395156886105033759839492008393352396592668614679501915893551997850694238792634073775456268983814754765937761447661439121220076885532885072678002769489167970265143016920858107695730921866180195535416032639831622141311522476471536690733198721969112511650346320474202764038352474861026783558337714230712673155439459273978542575401015426846405677607087097156174691175462989001685158151387459342843261845993345550462569608030539999563991213625838569719477715990264755500429627364908867123718676108576674564207287139697214977838910110287676869805341082140922348325463114600067234648637881499183682737279781851204721034601817964821694306824852810508097489360480667319091828279531785868403899707257037634364698121155562876799096241408121955414913515168058742580974804452620855158598461894932259925510410985575043811743788515760775977674683257615062204162327767606792462950947567940998318487620183555933986653354399974537493412565074694129813682961989599158330994016043666185682621426734110991718684536591728790396171210047912712681564455203944920311342991762901325504966836927679175413971640216112965831012155719608255101961950678953085459759467350799818441467574571073920761424366237856465654809723888962491284334380144531891128006034854973889829150807349968076880208698291695673213530122545589008055681307550461671257857296912976633572157624923984816938143217003413957838993223053804431470011309044073812515097020531671269752779438461465241774368283193177724336690236452301783463906213195236599197241220731482351888651356549767357147645157304827275236683089470390197228344662223571101668380247706320629323246438057139464242863749984638086610247125067400790282006599596275235032108644754531733985719758377225344262354825440068056799538360110410487194360013579680684189365500399060261095870421450512508287003378644508355959553695038573571335167713865836077499607877172602973375805346392917786097618886984536704592214873411827430581516799773866167636567461680578182268688348846318143207267352258115769155465165752638079378304260121372341366369670275087828795183023740917518758040651260498427338131282503981256075867284305681419691645593146025658148496315196937855500801822487369571161158777538380657736706681799743516289092770621895935989623193377287379070669453909878897254437479183377450427724162696698706292435979345022664736723833379619436668523254148783394921099085416307225108451512184464954038814638247220722097875962498377583389759047942899263815768472870712707880193065451655994794205679235550689834260544625080862896828336731429850122165764029057973460007242399774795180828419406246335392494452246940853452775420674398714737226709714711714838865369438119392184198023297121409111879345147500083479757981629038757103310479129681518922379220663255885506206826239701607037188542113572188411540468388893881707267119102239975534762467727801628463387838821486977837971171615188591527595024461298122192475883293518095314315422282871388796091663058466826304184775369339633928547395820301610623274991869297901005913157797276574226626048697047090680314722964023305358885426242484532569894672449925153615648025133629158668852464919136141141182564351109331219826477412458449478123947291107957295639198027830571760535979252647839921736802702834381417841249605967136267318307469401647924261068633583442890092684708526739908130948494318993617889816366003621226611388060176644343825790277552348511497644606762914852280101061540694350835768393872850319704918447533824414730632107282187939406067084221979284600595651413592260101060570308451062983758349702711625893865328961901643786746823551966434940247521615220236332791603139692346645585139175950719725645145950150831190615596066126060757144803040436031592407484901055467375287041142720529982333510509743860764905249147054617433823891869558709381511732791446905700849361842796750117676345828668701946688734004307168019215217013963858058025013210081558384872863137450386127175294947167560060384116888322555014663272754688548698891201506400471226877687550767553303088994129141994967793135647596258441852048106140668548342309832850560107297884923160574057519795751399722830755201455326021747522151051803502569183808203227324502479890324047405788124831968372762275323828310748780560608611983280930640991337731007885008011034381774828314307438564795848848769309673742722538076363930329452693365047585000570115809435059209259208319148619104362767116808567051504905556707452259099479408331977240642905732158570452633172424108522215644406754301077838361071025419732753176297827376737447396995640645788490835871425018934920703110633156344080878555374160653072432217851860933906329053033268797494981728686745573981689257417875887682502688298630324689992791632794324359827718748189265765344587582996187228994705222681317575676605606912474407671331024293218645433065886627815376776148368542513957621609292912976456692502128738505882368328752346152389868283125727879027566271262798125879764405999534007462665822307914568781934880948288720913919746360787692764020202894749374721509871871371394042746925494890656244268312983419673501640515846693626826778708592435911597236818805997709082484510587765148999189599634402022913549555096586624328647039512118690873764959114427347194551532670244357365610755326692822026283289963129189908869315515150941823894788497878836970723623103872987846543739493232598039760091159273086865287515910824251155146138887694459882374362647170994604844753229704494978593542341957042395672494414695035210727078359788002087060623047951834262828889852927201194053632143616345770958135492345647752641132334460843157467167194758187489876685242355432807438951980438913234018694549799950276987549025321588940446734774912527677306077402523283607935356381701040821955379167451836567493235550060186948590315452858472227064497961797425213338331153966992612104656925741680026984413757829873103992882510551986860661024004321763194116843700107928132590182236296364192124448554535493023474512220814597552594557124961891891015256151715320750092291947212688880930171928457412069958599749875256057728970999456706532519701145880970427977435089587068441468423990461658991763255485077995782705781468594222780994410918675102834910623789494688170856778693210834087244120647807780304508700065328617560079589864745550371675952023817005343550916840314388101104119547927090206912181277966703850518207628787055050645475280926709615054199258657997110513904963274523763577961123001792096382105507054442628869373005035890501627021553572046555050415729850446991153812207786779887432918312898372218782748126787588552636242541860781107850433546381527233232756668843596795799369132634350783188699134373007284125262527525498413297329312193348541992966852550836062003935254461608087548380497283253579846858024806905315395102155544568485976863063015917230393241405654394886317080679789322368330862744196482628932920493300574084085956563949990325295418884081020023668452795531798993075417157774688768158634299255517215824318936748032025068449882926577644806500003497842041730004334037377358012276836331070791576521818815604048599605126084663676625533664454689499154223924843756933329629895522758209241315880115162379118109613235242953737722376561123399079497563328166820771430425668283219919639223667070640593763961619930531595561513646336643093800941104072506527547423878125092404880139311683363021648491809875734100694403553333327288489980450901973448546071712868111262178274348462262124693341648635186115374699512337964859245868347873427128215043856956525720196401151802363418700556149056208629205310488199194538771776840705400978525716211162405270163524093852752057245550635821385288773145550878099793390312212227396059655478436167508490351782926134112521744380348405327304419151902693948292180650337712030672231336751669244826166155712667992441632144869135480246255319175439307271386418037083912960013586482384500290681333504188667986407036036065349439251215465809710153484182567180429873773631412621487309431034934095771612537183104130268762692054779552009653075774303861796564304564773630643981534429413645213039524569319254041925904171387733602413057096095097303472858368882190888346004347457902786531050104182709751542951020984779164690456765059356965690402730527144920643118871460528760650945803199256005017769468906958967493130449233036425933518239568473759968987964258924927372279286239656581465271113263754502236231043804755958846350536548296973328221388918578378056280545081230995837585456101796426882039526500392743024382182573700006085296232173897190671305550136508385189990997109434351472872732400383866204852613443406608410655659822521102978033596393527361038192632245678626435604529889981687970788315985024631628892174242668277901013862019908897146173841559696723325822988156263262829036816132458039953978458314317304013342733211748156850633346311686244989548240736185258448741672466655998414594260540615112428015786199720807629759694071417919161222652868428116662873451391112643917259279589331815451038387820240812033278669556774090929857116851317915781887637126077649912404825751106963269876120755156855322699143985204755622888894269902379467218379406266297266919570417419168140529367398113100673057011600396944541530180364657632267288434681163603151475952487322241528774291562002842577003730659006179128930584650884533513003559420307590732344120953071857518433980239644581764428964677441711836144297167728981494099185905500546469753620494618084504512721147689710025057144015871915645085130666351104210081600943508722987376471626095141858963163673468350717231285968626224882599630565373040846727697288530764822305085112422224754211516217645240351405654101621800761867008558100659996914552360138389994089070383075675840227402592064025021747329003822832531901254657239233168537929812221608618227419110288495987259963896810523988053738699922183513199528241152765837837325189738454448363032314316504954758701844634378017291062135198021196031000131374565786415224511125786706500732964191951482591745585473284073740907207380391919683134313146470058613547434923952461610989196355050915045094406893505299697648919139264737689617746557807881143720402861426161740591242936746754468958643857128813119958254660418608337393882831851870738522583855742417191230525083637048447109162643110456618612085193906695437802274240863682878486757685133725347196075214831094200253846684722869988645904926969954502499299496141379291807246601300288405357576431576522623131845644320264834405636707120376178196797331887464255344352680447945099153412181589441899335215502268006883010730796920572254595946807339823927416702885467028755386481813566481375441375006977571278965502192104201402868846743603076183612561643876198292320258645129318715920608274605232557248913208025128917455848419853408098126890512145567867227751604593630772591827842148186791500617631002541050347974341686934936760718560704529379553258265165757470481095985486590519147135349981738054479571483234645137882983342270787946142168808536577379178139222710406231425928786147333526292935461453894901335202820958462502139374432633814317090105458241272264227427160776335493356339613806710458495200262545199332296582706046759273723112027320502656226232811310591265492945327819748510691270251955825913783216135039137876576531853642277233647002836063232488585208903977899841850766585294410368655899164751799553241417719168870243495211432654554565921187817133924887007260904529564576670198530036311333137125234850042171217681090205835011563897125810269211154337343407910915184579897470280858624901242275517574772699746763635686710230288971825617843375199041806536795453847589435624985146087421408098323210442503373188070157055927911090113858764682730685594531042174240059494516131216953708355002758743832903204613117864195068992748804549346121646198704067222148210133705598047310310630451104497944867925270204259589241496650523707754430365477945320184679324603477688762647455284824578935785589368575697179838368787894155050852363518024379368579452930503700549651034446558514764660315735389084759784461366660185378396927402560309468883663061680733634486303611541529326968515382828037015616582262341266852273334918513551781828164439481024907585768288447839814287713141896822573050586231430203629035969341371907819335820208953544742678406288466410755310344331872272425526521416003470375998581548871762051574581625667893698312321055104069088588647429004747130776527610226143491500007041162434890075895132337719523994732125971887264508935541086963699393115450179575787019701217328601023530436116024039050672398173334840759881957648964921062459081205889036464795842186124106307489575984574916893175269717943677374646385645949035869696739471744578065979912016283483587296063477049872322791797016546723636236787304579737014913008569988970826710352438750997080813792432596154586434818191106733807172006367279952542345015747586221493545851873557518419275232748279144832892825907903230580105531063279511731372265826015194779287281686299016681171243049097710834524455041631585459407084205038686761876244106597063948470744067733712758041791689137699136600006001627002876336003813882849483201039328557160795265536301476827507136943893835387090536001815946355691117834870070195359776937243404198209029528086946055927191934652159176967591317478369989769158150944959740897079875575486382958678535082115045324907474940579365153110975706473415993154473138292253253194824006327508361531734693734714926126297546178961467135371375649661350805564648111031557292205955156137713722396733633682978132048512690664703486271364400055699221905534603416865648074378626506430028356753473300473365339111490674097655059569012714281942815156505244092410826792938061360249997019773531342240307748564115915149951250998252473488809790764782271278307598753033427664907384701186064590102331506814956274446724510814981380913859198967699243079089155520115415898179180670057808297208481838005549912480691842794458134702330033642137952968180001865020052081535783769739458393466512510950534638111040038738412126751273346831943493848042937344597845728318864384433157118759619330157636322639225312909063396092237525682677064219093558597739448298876201411847196562101880518954811423555802052518440914465408625034859116807405831569811044876137423688035120676045872616716148105686826161616982010548065228121105734658440577580715953677481632223185662421618574540017371698981191023460280722092770419631628077199369086373552578055801093653282733589881756222530980046492039739644360404311970702241302234788768124731606227182004371064931911287177793258345371547251288220928039254782516458900880784236083987393398544242618285971670635650178219750295802843694728987631280301353676064456327645834392466239051888530904524969399119347772089033130349872059100466727158349611101113775731052896107614559088558500389224393697475539271948752649090382899352275233790702498376843400777113562391599597743761956155560761138767371911724469353026132096184092750763252968687961754552049097654457199280680041833156936373146759225697836174753104128692044470190298078686974462460031738193973290314643627558595642548028994026057114206675339757670184896380073410645335470831972909966499129025541602688648458087114586170741187615827546358850046997076099702246385817738523351936378971471722421371765094925515677540485665518494349579228253569630983360343206241231819613917820339195324424003212435311518369814671627040676688543444295070492525502627582895300044071194316870793563102983518581271496513259284811316633950896071967131785414651582024360826533687781944928219688763056534576624823983161085805738232350664821274021002916743830772425940494359842440956766956745245765042610994953323973041449186597046721327887968948400216942252692449268555459799036746049238301902505310564332566613898962846373965367586493432899989216248947585499915806419670744738273186696150868917097350374513376438957839737266860700519346959323547052179583181494563238630933958651839867612979876392430954662734397795390560657967383349611779674706145164174721493364084327098690485289807894120594299142405924705620541103859370586767639024499232996911796499970186397951565433557875582345747515509021359301348389966327719860237071701483202211441308931827580048887402068096051373554693159942438950936119181590282044962662312989209287009667988976653274052051572338037530775639039827057614401042309708212129302509360133091158235222247415890476869352991033970599067661371231704043195921611778603902843346689046174701412997877787444029368588492972527147832225888315533758536205060009768862079696392485170396670312993656582498533784217843848529478305496117102155420097290278457425054112371016029295480493436375358488188393581233294779019195015931879728935607916993792612780427156725661734869628352423641050301466585977100747547060441318719847319277627480121452446989696769734247035216128895032810042175918768355949342090198107984224380879045260483125578020509295413952488986724590484827631773415040593522190401150674699398631339591997937332237602698407074613296126224109897382514901786314501633354101012943063954259396930492611669960370474523032000065652202972689707928157603346267003836298913341455311129864749724361365716663207444288218122055484110945173576180718862102988439359285780827092523829509517647198190967961067357590286654222040255637762502410452439317065546330384175820837498082686433895150541976594474413005730122897241693860930103674402180784682059270083773367900560981263946086355594340265034185594884123277473796934929570425341095835031902392187474806321615197859530591192264726418857645218914224192677901282477514795689125422147951881907398118141364599945201695643031175397721294071162864633896564419394700638243913850590480377756473912651297101867614199975939788432133581961717153710436991436105180514326767559714443562986284919732275881116492735799984742514134810165618131166515851295315376328321315244246978003989127619776496004785342535844048140646558493335271564997357451935108417510207317798852744830514778453152785484883619847210600076019015625407294102789683958864374993528355086645376500030812206714739338602643259608130026999134470648438277057621233622050312916898302663348459842294095984543965244010737584541090681111797262347534934780584773271683296324508039689872612826725451044873777907774649075154570040985826558544437162915742224537891857630551975201352658181505441378546996895452842498648309042305497114376389900199494042504545921377375189424418482972440408457809906175449394358072323073962954670876858610920981140724773313262189275884372477786370011950384821842681586051576791228611098354668789673407989442147462988022042635229446325715045593439952519306542992820740010116589656886067015917846089306328393659223877222506426299252864483582720786165943411091272743090684775217455128697233814671656665979526051164151462753847237851166422272685917630721509784368339141925380478915474623410621202412537822410152713983736758711854692281437395582410368977584820162186381397500495689844188282991186979160165431380137213274247590180379388130371790678817329124378088911620516125919807493883025527317883237412507242120260799942958189497954969102985460172577910311188563417309898223291400454919832504420686211111662196259138337221169851648798556874688166102281833674823121295508087039360437117872373951780026792548511140893957441719173589210780181256396692704933857892649747972572857622280959676196248786737247365752333144382883180132752401220705370836000486555757582461554572848470327177667147847965195920524637682479080976329022296542125923495861167194911039514856476166202015442963299544880283288652132379850163649996411772297346837604920666538872139285534642346134882364413537061703167291858680827217587300720954647215428056956966711277646449874240059136892993148408589729702673752506750273058282955691499361587938917664339259325033513758227100793471361329069543690472234531266277048278157961902065782948031528532291091434536942665922295791600869985318420088091913385635949218260947200905576850735748489239165004402188263970872718564429961007144894941112854307591864116907178699668270455288847334655387360115771180299679006803296769792904953008852127412452587070908504036870765282954344241232974815719149479549605892669606184125177081069256783489324848717779778227255232137071324723142822348184575648966932658918805473168720071718300709128338626948305532049259295272326919645996376845114105458562367623017653692831162418976130630153849509469615343193299944129676563846515863858130437791348634412519887994292923291087846212840509850200257559772840021742626596132862176732077747291130196640848030961810611735316523648880346961029404518878046547426394203453653157847284718159864677626881632077245333063362364595034741367095997741189932064962276794656053868626780523808913393890014610739423631060209896706131837170346397886315404132432579143460486195259149346782022287643084013454230295041866708597920807801883530917434390987656898911763197893013366261481236575727721701709481842755098872468906091072311730424817058331318119958649463053658009240893131469075505173701842401347928482831657659974885235911347756875806009635881025571278850860241261801442108818456408138172802798082798625251148874390494809904098898858854360411347137594605207289071809968655700798463490677241848891380669625321387919664419122255953231342449812438359569011031992909191529670399478979414541414570450748458946211432478692733920771738871579371854209609668572091488952658987365562376358550369224037517552089145499155160545739690818884602103686762913132006240861486243330196259492908145364044982802844088581668460117832750312065492447207937200383964140334575091784406735173169661999210570511884054082254119186510394462224790161754082086062176739940110511949086505096752594288027204603654931507173539095030037987509055780124715580367449841806842085199640347429528241030756634719865731322495238347829430168639027221645744452817909218715022421301535902134582033920212176838908070849972863555013606173578607199395999695402310543016347173502080817828754454716138379312450132281749238331308995963879630625803141428156045829520708791223972720960106454104378205708303399132890745935915720897839554023509462459426743787912490903645813397316963999299382880335046110187258505924690204749615543574961583063422509210811256881521263271185293196048385799703271813129814746520151466157520736638292946137455411358044675268872972518473482656223139630401519984695264004531703718338529778643367350530539892678099459296999424361982550473990289805752981176164528037831738118915371359615083343353133457927085077379289114126650007833107993063846454567040578812140446141082296067244200788811516184539814687209398089611800775379233230579665766833691434250907662856926488013384871544767311413229310535616588452424422217414784304670369421244324976698813470875245012188726007437290283281690224342400557965430586247428931415788879421782797352545246743162210545303698069115525347121265795891513076851330492106831131489756573056369484806879045261846251755188594192239244130299809558757826363788311598236196570094676235441886380380288642747181785616740723075698042639490277455592307641704022446174222056907470112229341180458293132549469627785945609544495985887819617175695089433020895283287568702240947547596571470053096399077156591830225251372513829618949806232311381592230453676315286337841921568908685684307282692430688931454195028683422434170781946914101108284582551902575627544411229795346837606432518905662139135580568379909013802134126524729448376280376076070013600144192576175912919271713714568927256135103614558064816823111778416754425056029192022195522095136032387876750995394569849860908706887734996408610991225338014918640697924171361923894944304326080165688703709953195309059651318661179369565762292156272982653563771668726597572691153436270171114577143787442150756071882114248063450476014970872697646431752368183521306195903972631238686803501283949222495164371773291941424403370557405909955335435011288326825552001677786235202517582819919978078441433057025495763774029086649204630912960956039654046714716532314374419356627083113859587340000948217773953598623750615825106860292713102273002651632592930620463537532139817854627239958471962499264716515840914090967487315950557741073893243895752358575853866556977050237545548985139778818748444592251868708337616493795988757165858028586705849304230848728053424297579575726265068128232867746173494548252977500933965387038156043917150500791324220656324267586602111432625085516970789681645267282789855517149517533379240193885193585710949473236082442631359688763438228014915019739068398409593405538454341644695551030808655400315516377378055289239998971661548351767414994984024321007221817511587846397668478225799766793165244498989664255873225000443224095099062269578810056981500559087025458949907846156556574016130338893953506831391083136083888171134129790726732582195574151708048555854791089335244637307043410037138102137485998896710237669677994425955173956755902853189610971321373219454004811164410223729660587480485643758521076875561962196180283323584919101418558944754928226394850116432450551303142253540947648103470476534064324805053580791740301460453232500965246110539057698642859009113785367304574505163032205467023963515870707765105035048163330772937298396948699959802940169758717010515492569280938576832183313524323865964865909194524725510642777791565279446594354534908973229215092260731023526492009531112154451395152978423194268148779702498499560069707543481465717311836841691705829006952905549081637761077483318959211127270893509575969677628726648666050583357354623728708819741513214855941035653919517095824887566174690810621437000475849990209176566468663799129366283788293895832090560694148256296247921793262314618512203349290828093669520402749577050174435770193630282323834012856640224107322888650312225149909335679906771219522483942937585470165278867335700432564652554574475299097487659903693783326054288549062613540380795047094996892148140308999816649020874036864442624515488680997256226203311039192054547659099096561433651427715978268198031703216851923747464985457843750712426009558418573249688007345515864431170391837381791908022004242707429748443875056541706876783031548135925091160206240251503321391747586701145714835929632846586084635006479579414188637129494642054656430646843295944590669920250562142433183035627250014708303427341348145768708889475820504355010484127920419286703564055682595581519505149943183219805391770941606145834816429147057694183211829847573986586121682320956345573494989507990287789574966444551011705692012230516082579737788562646477465133302944384775664089543492003768859720798375526348916206062154210446410308374682931821352719922256323679841317754397674822063902926522389932987176213377013422300279004503414569243725163307025662874859724440958778111901998898328040933734356936980510092204891805938464118247025147923915233545685833750686929345358724731886717440644891236333162811545850107379601338554542743071583742207403544134839233808280799200940695881230274784756727348174139842024409695404422640411710657267293105957084760263359511483948742754282806373765254037432077191912995412898540818612863787416572190223206578462989984503463579727562453759158459399357960715015908084323080232539473584481310662677756721302083766928147483146176429883322268284080426438746489844432056706772895077096548827169122722182036408316321391808126424944639043112684994019059090445503320149502214814341894309951774479173959162650143457021681042842056467693241380175810537091296688663495041474394450584080655652217865297392007598903149978264521896586152321636132782335828195860673858063199130373198335011779903218410518713088675338907849660060044911819877139160999107655849693597056685543467291110998760889843596374127340439449823195789879457199559156752012234466666890680192741074012801749030735307584051365250137485146928206638342742429891913797074949374352559419424875328474481547976498558479196554901968916336171438066535968610506149619936235496989705955400249040029035772059539676720261991976689256333017292054041260069516545095093284331311860197997628407012082173818338859846110688910293079616664845173763878483879263249506904884132361208625433887993870337001023054093642161143664081988435308078635219246040499630952384291637369814294843092848873411713392091143155887816791883438696327225115416753318016637815871055768098955826723650400468143662714267914272359826044713285228901569281033321048249990615053675524718123671819579993052744544821882390126323098023701236578967932310624946960536817259410364451798391947046990805182087296374493156799700745595296854082890521176671068226173153481066432761092346037761883894304212198233511984281461636455008354404329187040938865770096620366513401243589284077210190616485994411145914295941079786941441877944407023683867201630404480802716348673565008688787534658943333503313665283427058354287541307227330900133996227991136915149848301609900328094194733968851568582029600922769976952411318608843921864408341985923081387950824079044467629550680512061452964796387052469050593377947109876994322350611094957913098718431801247032900086507825150043408941402095928198401936008038646802332881179953708497130876898812913064602677602879619841409854629768333515516870190092742133872695781950733372779250115488070907108822642873884916345158617576177099026645804587267229313931040742606905698199870205446938057447131209706182062489346632808558633464486415746815764594638910822472280851699458546437183552663865117178492447636224646972706350067200539606066787505568896073373836560021780301981002978396262609905912689297450317329530321991707693535829824879290631925357982806483677157202344580052109075644005858569929372472604729539213361422609090180920178738471467472170470493499990322209968807258664097817681170877102197071226705384187773544356080630973454715057603831512868690870007406011521489745810028081621576357342071677464974057797174221434379079652810412582456717610046622956623817632399594802245583239842182283758833057616411596777182726188690587954020828130719686386058454995686305199036388761354220651482852350586507155101011794437529531053926632424876839340229338703281140045713628933296487504738227861932474950582015401431254588512890735918204513639558358960627029679682419705455873735081979559554702152369095290413331216257970974510334179057175609866985706575361640032188498648891319409461749904635421034008097114753565110835503789349248619441787957691123607141617120881563605254346375912424811831132399491210807351593127640807754952127668723161861379743182721408379465602718306840230250087383120543756852545274750973880055227050299570339053441922929129424404862783346654397841613892627967483927468055791193813416366644264950641187754491255184993359430079631928426086356663200975302320767474917000938349138634901302694554652536589714288321460473549720563867243104136685136320601110081125454076566048280768741423860531297524726559428380439557859703225375263464855710471187833002907749749202376638546770139081617888312840412318768739820304336152394065333594377513395623408145994325429227894416907471939267581953862051033156834694408804599886497071144151975188686550076723477573637488069004917102795676630619503770324700971136524613750712945222611566152415309550423045941665911189027448766506657231949800902686930891367438566449186620279289016550384634541029427729742428985675406406658357116202543325537488176388310002840820732081300455844892846790563991470127799884380821895071748297637845840491208177355016559266579298449202544481528612735303524013793670532661196672355485724121365268220385693102936044297808630938398565010748639099252124448844738666400363206205113869223632235056952183718942200278251532745820883589747413993783334287267784123924342134704042797805520983699053305376435184634792515572054875611719733487173870787823672669262583178348164926524399027060819509621757147149508782219913768436892197643030870405812462139933188264283294474864726148613389585459205507733373263920730109057305690560803860164486194177012324729123264958747928936622441995858780161017830639882187100855557224735340209970003430249004418711072053341975145186355097248642886349616848006043498748418300995560905611989418949489915710242653812549119620620055555597107277584331723991147113829893154570239976702085721925964979129247499390185402597796602476168933719129022355368045877086647208557662606157590678602498524846985947837979848023865049604258378225711432212230930354242262039770745512116356215228960349393740796994040956958714022009102230113632551353698049401634425096778081422315049408392514652975835123707121227473568187615728515953463415441145008673603054162798613397137384182794863383318770911338752321800796373280795310100516725420609113596628564120975428666494982321623709250312022306081230689482539709812733526874407048578317730293233473845169241460572072689503301920627513820272151178681367294440419047983297365599955418010777909102151610485694225419382240544373348045897124740300651881138729465599338303802284210699423786464757835970812644243282581767816289320307745522970974976845458770859568812294601964990509944707501112707510325957035542748718245613075024461081196682927505888353617787342875316205157859032811376942648185741647844473758720614826792979123870937291103434681922070602631708219413925575864298429363744370449781345847444362677577768006628505773687976941588776731186124074141288495577473610809160246666983914905391892316844819160094945033368149947154102655225067112027066337892141874666042363975026281840667128130059574549627573945597556106536502030012912285410469678260776358419519756728874701295575830029412600632140028216374007336543998552214338516496357289624745336255010401865794330930820786661943887994801209129612756706221189578379684262073779389618567451193039045483788481513056436856089800493804476717812794895142531775890212719918951299877488324175482988729782857003680483913865043647332509006069237330585083628117661779163975515414356528385618603474535231286431832988579723553217052853837726570811504719294614078257350370311203248856409521153435673576716088337780502597932779884616416303965521796007931491153546108874350621762399648178758615303563224594255932303285860224267842879632489199614077689849971303094077260510559126428497593441058358306156638599702346249427442988562636686490756637224971502871569488959806993018886479982548284422887820604569874238489249503054037842826746276892429165434942449787126060482695473684710960699767133559371440857536547824228172912625768859172896763857943098169093874421958429493810989962945972951030160366792835963221597063345661546885267646328765769582290335086456992215881586954279110954039754399102426459522635677292718841167991588397724481930932909449682877760624456423162824063254211886384061568744013012394998524966657413949443022898022292222543459759552849604060711080919680762370039813525342498779435251793517615223876154586399406266022558729870435616073920524840265063344018389423214078919080515357598558229096994677016053359290870217733740699315485645586756108954352797415179127405615431563987979486117547192478771532131075198327863872104784410509162681382191960914571877604558071049383665171439211124589526714522682043502820791376729254780580256308168156415357777323020122392131311551927083982800315399393067865289659525365085352880840987165748362628241348684231869370225343924342740460486935124923726489726174429511803333459329826417808096578194094357452312930156152251670683614677787094483804879007184434501541552817721042259118967011496523022042231243851568786406580021505434905602699429934364321739597900960680536455764836326572653050357729501083932012898517852262531446382073771830248229880788884963351716675470846057508017577593231555904524767024826159316034697232962916716656603039945277985433034701527444250834236033493712959604474056109789333048432964559214098990437071540404419998611060412380124540693334384657766439563205478624045547794542391306784251493170806029277657168862636329346003282190026446538945364831291423585614687156411959056126558884611465970126569961478996039565194861309360264394216418147735638757243107374727544271760384165584925097428656586695570653291147467976485733595517813648897694329142352937202869680865301426193591696090686679116195731195387190056841193138678877864601774571305953702131969643529650494713557059383562573553032321940188498985792024545862941976080689121567758374989466659726768604898170270590030446362869705240027739119601539307441331561774500434866965884359005347234467457684739032364983151751289395333554157168097845945301779879785793353936372824294547497804361591703885850782836311749458758043664445544308301811936642675792475429494810033057711332278976621854116590187387775936435217970422848583016165880842388381796007756541191063177462408916425237633620822463726790583324681543455984151834141139325112960524504407990529155637386711540277595442004397812461684528714802943476490949635752791915848564272200842819921291948544133144581114546445058299539252487317633884048156409314161512878312773824930237221408063227009674421908923828249057915176386347489025292444448161677071137156439082352832025072215704292687815783417385277880565643199943596190651867207550506828621570748469284322719621434695871671322376259547308644605535455608440074208795833729849587456902238356083441497632809668337610105441461949808310795225841008815828890433138647925535512978830858584756419354184091256313928623921025611439122360022515743211433256724099664815372098991565136609743456127588384157224269388646529169114575773969496011301014384492976355546968477210734974876244743822668772543281260798946017694654723617211389026567011096282981170935047990022846571055363326811052273724891524734932557628042271568984377633276140316915290404506635652979924015884213019895609045175712048540842365763585429335164235693295723876519034136577645825475007816722244977332010243251313411380274877241496159587533044293578378605739220495426791645860586092072420788863708013634364440900305048634700122923949759902357966082230271803613671724639365665284463535162275533901659865043105180650541606844201025930510837376742054235666380360383258538232893553122685589129301176421151525865445551571351646653065278920649363178153367060495282491987487336479797105734058932858171175649409689334432205265479913883844876701728254002407256029204377306891316457810906158736427215625932205858344861012774569957995836954462321256125415264125242871324801309690008108302990672571330649711488297937111467819596530305431430002569656447589217601953373434807942008011157727938826961692591029516796012885870297808211908871170074532940363286494639854192882596805599923878023788547448105999731465659856562091912569965734785528893369785157043311331068247636247210349657943902163292724539302092924533953317041580999539085451356813683692778795417489454962933585548176213696404471399990844644946245849857257405556558900762050798561220216472776214602851354069794845385394700439232175870507615695369675618012185116622789999951230373174590831451894591046006083140728486052872702292369517158232604200236286106322004779343408684233331407952505169502660475701758815752084573473077867648229108323654977851914646487852602756279809730696740089702539855225642849846589212485558087295698692761761166395146125876004380845519973058419253698587933985378963648625029212451764889749326118174175233796381201978677113317410296726178640645248297827206166853235221196673419629758818655365588516182065160059111696363430359432629363657513414717116485516793893024075920960225284353773958817227705164814909248054911149635845381490617041679873397662159824403732129126632344079007359216114637202395029883198485686903861702413580539637845725321895953253576795529936697163258697303761926797757336980891148039091138175601582927812296122490220356715396201462904264112712414889533336359866707454406240537512156982460376765980117368855296648464448862565465513624566898209573021957320103525430033657618728451855083847436921714933692508388027358324749786433790310448649532348626985912876770561908893416289064350633963785045973149617208179727224444869721130429972945942661312388435245688724268355138509373908638440109710934920285819341802945557859068424211966625619999299391667122620087974723267935636373533195546912641751067436719127870504023219086271471092543721810854278715392524798307266064737856060227950504422430787073535659165598733756798937586846065746790280416802862337704519493323191445087322613096565427695059744074561593375154193615745297694777325199173379568003846805555557058668717601698458502901371496423454538859058672750200560609874142004666381060054500638289331567465645243882849231505389582285125396310823139728355021870019838831033459296982006586372318560537371726958154830650764432440970630609858298019679127350924647458626769164070532178875536989121304415293678590565698906986672885091869225650438088651645227918298625711348523790308609668381169941099550534378800841317000855193564538657713199033365185154349077070891950609483985720157745067742399896465777858060894818377231098971556663907717556690013212582387310536564801925437965770660328244973429703313853491158341160881983094413500496007253473018893719736821463497180728460606346766700473476928335234762728082452749611922140976872504729619889808861183916154514435792552036996238602589537236344414967840930925058836926937853240123014756793413113659717143239212025241582314640118557861091297937491544843868290993345035459364951929232133387326013241463513074802935754353740756336910672172887154030423160348161393705797791789898779508512952688697576419169082627012957506118597997081321320596828977661323446940121139493911588637896639179378431873729977232651305602014945453903635819192257090146417295112109769035203630698789463291648586300311307946192931489851661934021900154834138108523907303089271539300507980103630131643234810914979442743631281280490813285749445033350848748382451900158888292388391807015105429951804108697317726441544498585193733422338011764091421342132930916139592607932206677357032487546355995721316997259336210393227427646238542698437747857708340263606661016349225835468096926576533156913377315746441230355781371809332845219674897362855002383923999180411394746439655097443326268609501571285353671889639247571735015427074092605412108891025031048276081187430554161264088154826034393318365865202038020329635317471973798360548843838631599057948721522192243713390467188933317302194544184954634578666713533158154897662474355049696222010430885661271158147690214261405368036815085457048333135150968808333346210292734334433913048642775895053070745549081765025511503922809101762614928856080849779368322984166663550828596303394348923765213422832719852649315388730523046229994963649726701187589701727270218932291048514539092568890284689646941233568160142053434361791341672296599438076784709184142653173837313110301087419755302652724174636929691021126477281796823798083004972303622860186989254739480073913427763989592101943919183950068431697816424094297948049710568496607562330968687044003993808054962572667091577098006729399970179519237946922796588043197382355947105243263179321548934519581752259372496078578697304837304514264109173171824071691989743002977362320978961692656941174985702971628973795396444094726493116747017380500503306752077332017907307852253951517741216044576398203937148402381303796446366909524779315330242101911895697281575677788738285334236843515400582710834197638699883425422645911350153055690591096239968610135892017926343370456790509135870462201821596305787906910628461837597561214092029468934889066889562462547078698526972791237670618111418018311560104693524379310018153658268548132192059152280662798619510997423020027660177643739553490054560254291136854559088040668509487951309542841648840367065716847338952651928325640890999055185448941555523504625315341591981479835065584719085560417464882109649252790518767806589923787208114339013628686235872266834426819235280586170383256647757888257712601799091132601253833397376458158986042192327953718974389998286995099219057156739853545951680027797453977198177594677910041545672303349958945055396794452473677623492562683729376996280165871569371053613138025301258523498816799774077489348531440744095193990210582589907351082766408182759594870958880267572266796754262122144776802874826678281311711670775690991449395435594461922677416503928531091528063323097720274542603958039695917456616491027475704182722740026658762608557703420357102058745364686459828281539928050632399111691290143059647127668314078434810706405735335493173503198960269893868444002235498680101992179827701590461226484320669075895769632545982034036416326296879583205405284774986125507420936781945258709963900544872575644893511873017158499358695077588689058861212087075602600163983135267396616706871124302156184850128380405427131402924048345050016178358655382908753436052520775485734293883716817045058509925846220379528398071972280536461954487712858932328564816911309513975261551811881417984693599537542660690424375794855767993071198918118341630338012854035004571290031674538416681992619196370639746810378799931269628032584056147787578926276904398338753361294312770667119951152192941755983178398816415508828789342742707032852577643720966958952977893408907204746624164324858984106494947017811666813491531031150585070492749362833495437097575301482734631839222561225192965726085176642729103671627837803999090131973494645737218358992601898383908708532906317719241707432410139493372552621950651127753501495107067013709490160300886350465288861206287721849504286310648472164494582820827327828018496399887687918369551813694569232330773029388368631790380285645382200417345698012369398716105330666275554128489766441571394699205725148604395466010752236236280890346739958775803956170221945258454721341158480609483812209167569223401344955139843367113193761750318404494183087993355788477783359962117535750040012278582473525166063132807779586488574841994542235747203307703142002866950803057374278943947805373114725582531036067049738628763805569584679026828070374541404402427894320001398800813679502933220917857225828378590838206350343055688914675293253465657549836225775813905695430548492498072170829648201280957025916655447250739034663483226743089250369699303474349384068927642071475847179670388849374641658162668826850647541225931882170311978750937423202158769593094532622011780913193559186471235789320518629217193979056408285631966649339783336499046964175014865004005640466038674059302508426538550696814395902300102254793663906766270104019691978624200125748944504744695474063398661361808669794059163738377024872728625596540673663335424013036335885965328648523485095919775587066487830160309591230330290620790393114285955372634948544010890537543295797738014064102800330496510100482874453978680863749839017088709182879341970020176743240578869472812347307988287046285956096829608077311680493178352975777797472396480606689802581246509834491672594697381385954675706418900599304571192705182920114853052476309731753593104880947484738875827502551008647939220930330622685800516599429110156738665999276843805167273595352862369027383195991632711196475169558294558380417892853277200993493274394777871921511166661429337671115403665257770082409238411028311473906444019167972986260856526453244769006074395601099379454570990503983403209169239327110509601431150592528558781603536148990178041537352843357648065539980668460990518929083351647730494299716997139653787102962545329341040482155398081919882113554672183582907019809776150345416322678696328485422590968034439155640474129395793467427558762291739400517864668323474889894146166271095814689140465994843992242700530572938974599482448455721537485089580674393941922285747578680400926962199545773730680813751649226375148277086166679683022451783022955012837672765355584283313633989465004163448830019808737880468800394749364751600770598324911962964952671851371030098777448044027057205966945859045682495256418318945891119194373261618358985265334610365851138936455057045447784864690879355315430961876929984134703794129558704340183191913691107759822538242936111229067685964742389673786764781486681670441742691944314567328046761375366236140845200009180910406285626377965450705892771512233860431289594896161791718837129330139183102881275567803591437007805071695873491729984794286153601458728707371942858457111000154533828082562842387206904435753739565623019069535881153752457582016857845236361279587990330549477150654866992473801562622674347311127453241100448511961347788776385284789142020109775674213531571482528219803312599297970082077534431299267959609582863893062387500899888970686588665610650366234809062519631255708322380439861447351681712673614073083181690407420811190630409885584155316317398388318532794670245227027330407307570280513138278908951605434254099628485260948371415220314828149154541584795041457953861906423508942671281975741134227470709943715126305171577393890228001426291163251345158497767003091790790276181626682208402205935574198531446418292164326869337100832798669655489678856939574436968489198669077692422140302478324541487043361753039010591986699085865021789866230864992091304938318941116949647605628300710090999319582484485196025135251236263651699714990972900047702484306854734878963291388418848803897830993514275010856403113138489648799181879976765586452400898837032700248350934748971441945139478564589890465978918902434687375808151944740163766910967327425082477896863564545875893346851021241532950301478536874517993773664097963040768437015039972095550955972275698623993877046726104438408320486315956406757514370676673334101889365596028251969823431922088825751734735223729654618914519466517982454171062756944907789507328664865271799392915779577854673734279290087527224828982904902557172488306818603016526340863230047839622015561308291358559995145630174434891568917737432019207548903295077964977930084891474099879694191379725031178601606876506281883867839945413073344923582986132342413645504087687908519044773975241825916585329601146198861419803862660744803637562066764130734311695892427457474973705870491756929247554194550422396791117940952182995698474664765574510957483153652336841245802900329621680204461471074172117781068704858855467185015997185191722239179239837541740513843801676915361996897523673648213755409011619997953744280528031677108404307646592979604318151314400742583339579456563317071334175048448492077008362369387800338788217415695169075628965432188179770081025597722815199808783607473585626214201387766856713625529217656984330961315211066176726834915383199208602740106048253525725480425993692521962089456645839546399434369783190395772637836315908143297141391632939498082219974945322918199839691140728217076122884981587518795031310155031444749598181294306328027747119487609670065817360145923234263502508153933133734054431923484871474044681596517379308475535266821445108543612229841514053392657943072593274694076352101660411865394742659948259998323782716352782900628001544466084658158508005568245634226328831905076453954114023709787753090268899152003320282540677715961189786319132648070229696732969982447843229087178990722827171398225387912168260123696887506339861253374690243764347544460538263628809194564120134207799571248987262805302359922766732919311628617410904799380430279232957541273308114850338911381583270819150275011727275321276545713664928371826146943736613817226166501426557837664971766795781625623798172008599396611430216132613604759784844494594271854302941740728789795615343296354652164730073014459778406630205274079442578851410214879275344280211915463823740038743656131300339547671518127940214727537985509316481736519988345458749078384090268753078647692615470937927863329807850567266859498725419292706863613290989633264958883827638006153045463297184133396917194643259837611699339926461219366938840791321369067991337369626634222371485391156313246081260764573613057103570869475873766288851663681507299804157823183458628052550517541301394651684476953456996939117698361008375911105776512470865324160700893626490082598122142678697682439839876928277404075304292536148397981533635756939806968012686375996614081682328467901352628915420769232499629621593829075218416855341754973683948651957517219788214869717376440107464161503135319034799537360992553465644725061231909929073353934989760616887492431975840466530506669673630436522311239009074754084194653483602690627894676013944592119995175788980924788246157411295586647949451349448099793598120357455341210641881689034522134975058926019911004710180463986461220140375501623106156607494404975365639246672831441119812574766297030788185827588845807062571837394358760173465824571624684189245045498174510053671832068275052208784045989628423173632339561486709170407141185928256489092854422294865057123005334961746934862570866679414769309745144155651136999741422859235203026482433687279929867006752255258455079751072662097950352756738867341402343274887142609245969964915844328043814815868048556690052044635700895615975828232826281246204180656147765738488285792558272099168593435087828185564031983341979293478783539294760626224294293853117148502955895855798344260268392788124722563165279901843387629353835340600811269258153163714660597557194682807738937722612382281017090166118839651737412393431881059818114024464861679374475301362203086570690743306169123030506890386802800505758320225687482678303175802804948191633459175026895065240772229131379754192688399041200448691007719886695734636645795655177342178635120349981822497140364469364781893254111521780350997636488246752780122960146709650935740575521397974070761147112199998404878273017998928094846260942123285383137385043919632687412957519332964360708813756863608408785578824895086735748833136718203867251885535072125317433542567500786178132777808282038626128109369860176452787695181762932455743348363823085877087834736811560835535985694589247637989007906962498376404078061964037219587090256569471683500702258187432246710106540177896460253573490653173642137504152637663428536393045946690701902799492579336922936920715462543945065817111821526214516702968585376819590558866252372332473055182354773667205276093036191003013259152812292908683657954614660175861698026299278567459494992620231796416901845935337998548864347771783737053974417743645656750862132713098065423001847840575234339721214397915801870588168155214930215745848051671040437012257135971866334234264078560233238291349728468260282540494716643924235176572275725282677704318186687861782216549729218312663972761599252975601372011810907856781712346124197088242215759447436195811123790723658698766034139711538277367504732862529836852272090974053612065837823619815693433490902139496352319962542190439548884507744738944228682606184875178614841182634732413928346309769895595806268009581690693335000886401088372301265850328443440650570779261033935500880402605216626118958357431589791384461270343672903561071111954456797678714505377320703061110869621460319779115438249501915747873430701864436988501180972023794255044741613662616418809748023902952537532865399598797682311354469075175053539557598715838106977798022332693822151648363940328288642623656132136874589481421588990896763745674038937920339438749621018776716732010880369005152779070642458770997723820923070859227472478085156657246617538594764560033605406154183025994392723062583627590269774589706487290983965424664403076510458390290611019924547678416418113122040537762084118520332471951282799267232881710562641752353346146576710018237018799079654253367194117962297146634997449427234147851491183203581131276612020325223136298634748111915374323425484720593766197677537441334169568687178286293323673233412712021721355486944148025054875954899074545669198844112924292240311803962279377457113689040370215606565835607897003831733846700838130953211729806753791958080409003940964344478857506340365255769237764120923017502114300981982241079140123294244199672717014447981771465753531445509834473651445225396571285284682369676552499683270898000241306476762941710946951528037242177019663226582819407649909594991538999730631183655442635979966329396011212646536555925976263081625841804239457981457459880858362460837562466984899759051048054325923858199802188656243673914874728550564068175971251396551208636063222844109090000595400190715259321540736677248520388968303977449672576390775939125721036251766982892894725711512828242830697720309546087917995645120938991130515783408142502983891342222125332595526887249228413138029438834145588012864353651425155390352372988395710747396579426467830297444913864361004576670960111871475691096834276219267910636611972016705695981797095685496741484354407711808094735830425330552631250685716905726093210614163768585619541089676312953105168494598134971773329189649830388357263870393887856683793383441770592828854377954418103813785963594134435125706221867621069132017472905014299231955525729369662652899029862732766053370734178991634990972534673685074471372447399507998417916576908025902599890584380923121209089310137048559812153407353995536173722141723838612400174070406966106601921316977340210172751596458662827987857670324520831771691609762284443498500166921526356863448766674173477848518121404925340201374683134908725602901837276374792170000424573093026837329380935360182294545659627788337100011462813499366714552300605600518218646328064335531404136338903309650217536760559297519192927526555606990287184510650052551268343783677699655138606653154927272204967111731601689093537514881693507870931846393328723693736846691331964376102292272031772376254817608491840255569804989831503705172881350519742230481426165903690703521381191418820190452977176603305466076332105296823009007456336604732435208781540558125024035826130440604565333020484326169659662367722548577407285978897069138545074675191097405953986749973325968793193399474294679342154242728357691894049156769368666578811741350667746960780890062584845731377482551373770055656887874195371501614924522142822116366350897056975082436155683933743998396598570683164063084218876145098692339113855220689720512804765894753536452205427703266848880729069862698876665865949334791073172891078165462274813985994139270397096874829979452920037093571117075263036949345717881199126476038001800780034556572895122429116812657109805263290354563744972392261807390592690745226599058303623013470938571541747877905104004277278877245636125819794454338631160564911842070976809233606560570385428820681549667622110602319956396727475064453009231473603013190742024274189607037695956137212843674195126967613286324085901718452692614000433508149150562714939387151493530815901879639791788913542090823738781651202923267776867887231395755860707396363920728460715790207370809382452857488575488858226020269442865867292059409109372877722637598249804258323186889942379909803791755534998123368340079876512502869979371998652046378900174769336885511740292763114384569240104862224478685150342789681177548129053931109035353662560925124765457730025742888615165368321827143242845056320884390567687055203765366910122882456950054477833359352691107642754421133221365196871128924814102028316387999241396903890860274552562726214294317421494950500167847453929554841894934959481750426726385804801304610156955328430707828582319891081484352805257605472583717087298815696705171305424662129317938203344686369551925744582482291490100220747295155950600400052227546991766508597937702509595214644738202080509132286105478288873477613891211686074683510004433332929200757881794910392988653847096329003160372594560822104410095791125083503533440569887060652965492140885618944283916514027412388866293308426887864423179169885977022847396888649042606388613678584409234567411064496646804864106626040336851626969566627550412731999792391524621927660961681045043299254837103128167274419472092343488903548703920883628921943222838741462475795499518466274122774542708939473832831141825130395479042200656409978426041843753885043378702661724116868909443902515236553731896070011622930404380782071597383885153806485485186461744217824470749435314107584550072532126427492461723569933752604967072706749444185033913380744633164942749843240655833219045318921224165451470831531941886134445152749810548226655510268538842218109989665803420600960589969107991321115042239790345661581266317176672844157448032912092948595934994056722182222014756518177767632849309892596368768590283656858656229926405514678981087097121986270060301421457359261223814016245276316601323754743161863308390792481754612817835195973449916280915524700741943876232232432970843297267560756094254455609406407600967297470258555708332902754931390007825674993278681577890343534313926628712054130880555735969857246335501598030566451148614509532957179557396124112539356038386080727323635755029431780586307399306150442087034478173511610753901469952441018224321389349471981085979164477038902232829040622050678147702709297394938041020088923332588656134084852645277993830801639353105983978974948929834755624520061146013718655917618509980994394322624016547553531556740806066654257145644679912939371969180445247465421052725895062885832869873593153901987176494295761593932911404995209837853362883056736260497289349440081509835623006225186526768455451314827474940669181266586627066769951944815047080913268532230581417963184933598953667977659488314465472038182407357201130868342205075582882721885475766529498586025261231204738801278886387296866324639042117328580016691184074046439497469347443138134348473286880732361931292817972421119595211995230489982877794183382577905150987776199194384937970822438156756229073261102419627563593251530456528280571806228423956126605693896278225529871148049338040579910557893516902032604079203092752111217435348655322208937637999216365829815428711188106511875702596227549873160622334353805045736721049942536795398354824251578491197773442587971603267701048617330026923757017915423512832377529297841220432101087616618982204895162618716551987450276307065409056465589967047544163534567582189960999465362260263415218018807399377174224346984368201198946369931522789567626633487314170375758763364612656589680510981576958328972367359947829889992881549220788435423222257099685845514520507221763285212941142201250946667071266869888673590764120865914394376875498085036309999650413254836552020535390655626785513830886184880343052186576447017173780215573666612036244900149895990176017432072034122060809256461629232313258812879833411204712197453977562446097387777316924666023639050025851512757551363631449104293082051489687505600933541110583007254946352232128338821841605738017161377221339224635005016952826476239318562534556403166173788865876001428028456612118028418579071010688593253304933532088786309702398448005282318192849038080743245302493344136526759760362631113922713430725132502844388843140089842630779913787280329103812454460686568431816384484971414088366528576982295530444390060042155703435514100753027542600622184566214401179755601391780189471559139009320459968624086667863842836090480106106115378109289952556856273134048638533054461184042265616064805127832476933765516503540655706568191706907249259678014690641765776838952379371398206561425566714764946600242924278734423113176526032940945324334931025135055088862656543172372068699729016953617950781780191786212593629011400692722890668808044396875572534514598318115826800271709170755983870219577361693049264342909401193456950409367176616458402612059465553298587955264508046055499398670412735183266569212380110094145073927307518252009251220442823518930692090457983982130196398608738287001021428660946408362330084983274765414863511597725723178123948588301182069880234279050111669310236917775722341903744611553702238421178199560294064277179482350352422005200555527622106399187464981458632578068913918822529186897618540275140191139795766601855538459907578814848184134060789327990265061473469547133790344254592667695714908240026311347418020417298570672925692647506267369021325584853587392873043249613054765938742020811822174145068758068763691710606172295810661061065158557390137826282708905848627311763149481873341203193450187683245659107138420760121422588449685325655819201236820097961668587975462829630613380609216323183985913700468614377051483263340576984343748898628315244833880754268854797051542394981974731250884464040750660963822564695134529027487024221814706437100175336853196095527429331246817698882259500485926536206003852659771316611228862523056668687428491377631849982490368002530160688071051502026908095489529617389682957474508138339368332060776604368690907233186037566802184234913096820396937939570671778898409897710942272964640012681426473880904385118719675404670854015417681611315101327434696111845225559141914881136587940257496460669374725485350194931178547153468862133952602512952192884518731033925710906932162529521069330595222143055348030602372602539406741529836969050335161314368025953647248635859727824249169272144983031694676114416914387366232000785451007326551519568844032721768230625598231787803720587596125527369053805716361306660263175000535257566951734228260581111272622370966588219132605631185469543082219935797788236093099910943231829305983433176591700605302415517765854917418389094782018057603490495824892336047217198109319597025760790114655035768964598586376014642043972536570723472311060138328719149678036612496836892677166557518131289880707523423507146604817993911946062211154582978086659278953975219681561656456631667287144988301698659066569725922562558579074057021390362476123102126924509921764183577515921451019995123060880834542668793628528654878063273405588469987474758128256998735281523074084445192887814444518863516027197448065727916014137563292778527447271803536608562406858755818733090090236110976433986740084146011392294968049968370653026756094585184763964356441193740676447690384434545317970589582344579083107403512810969952971991290673101375590674008816399586998196107724239388151446448884635347172325288059699883225528488293513795810754881557609805794746451620929133548081713273924293256238726566395132266321037442635176760200173028512118453744725037587276233575409009963281955961065925566574874551797466363356973197772779849578635120593069572272461831471774849494048670031096650773829507637726163831276965564592724492028488935941375055597888874150362391705619457098925948215193477081954705213487608554111880347328819874439357099297764709116939498649126284101808487984100889712195932951368838152728524465975141880953577054731609398608169048295348204704861660357579885691256961085315217655275578747732261350111802524375009527809041568164221741515129568728636660999776191069274406976186539744121933744260624600215640094669654390126285204657042336467007641185262147143355916137038067671357322405387037635000620606412323695812714820065698464417006095168919496915110751625612013247209266862802591770503822587187655824189491581758959603184247822964169399411798831559965460241030801883191685188756922974135541077023343447115235116376382074632014972947545739231337435942693269729921583186606892766441321201514569152937889161301337350035239499976334994016358453538443236539893828609456681172994152826163333311150342979669899134063570223834539175278954671832073393793698506153862115950528227069767213627249228423152067121358852131256133028860067110895645458898842126751110754924619555758783364917664562239059550971666128146847556188686980138377216305889286401560757462576640674429648849543403378741683392471412088260256956861388504488934951935368843991324401451078050295331783331290305422450986198205534383891438241346883448270019658544792903815173326166100835183780806709058556568271222107612845559961483001786643012861843025307172761821643372444562012036755262150816944611747303202601120700159909377744254182270806308609549246436967243209215408908492635188088492372466729105352361234104680809424820282137394525556646571245555836409237372283379481018807991097340021444319581232285193314634397798921757001130645301689970312597362572627184649453376441198711786271534145255957029297654556296576757929336030025107084602780884333682181935262523619232395969240642464031991465364561364009565864177542550600713633641961945951034105605494407694285687056204293003788445004414460836400239650075953188314479098123112153245285006749322754397389066806017991488522329808497088525960470835950170769812045907822304054742030300883249513785079726018324018219539369099317070694399644721277457763485207475093038788360028556304806801898305347117848204407864416113071653832117219835302470987630818316826316280602334284076851892139432116658689481740610229066996265877618950427793082160849523063640413847868567343630997207449517204133370416804731411356708914159878409029963204644475034223195292096125287976125784660137397872104808190690930442398206402436605173599724477168467767100927419319561000496692804328968174955623921337646363988991374486633837142332027946860260326140078198469542982334451184602833967439726537011241353097953616509862410341100300001523340074421276544831036049691441268885149929989013340786718811948712092175289995850215556776342075690924443151381471665483108137430814144366179907130318351957678203937998606796910822745915419212336644555101683548616237524564553505989743392975343949596123973346717073020112091319994646201850226427549256670020217334762070093277350951521085414633381183618738044007303317232078987369245271601260874723671102658276907511079265942160029793192528255165327924549834412302585774059901677700200057754177113132213680600837989002507271363667992799856621834272792726714759040366149946547579913894447343262103020159221840328459212843708281478666451172138211333463079054779013045164531612860536068162091362414394451312143510158973032715122418255743677060275026653474350469620062354332408062619222245125899084863923590798231718436501045379337304859315910093111552353613415453467093961006360450398721089014483225521947253590296512235246644766753720179262563628201731125125527354344514548432752545443830008600982484098671437876987112448925801686486616318431224210564450064254828157834571042780963779134605020313076928987974263519784213002429886384000667946571892562878643454312300665309061067413511941253630358886750469436145834767723708823654431047386210963538685633190328704314564502942864898953288098423756792730508090691923091744686421759040016149776377882779161955212446180460038397911608824274054741361574919924239860275896765533548127830032552067324010944119589193548967766695744835629855616833814727050142635764934103185698006213385036973396952054325421368286477114908979275162138304477654433609600880216247413892778623333500082875083887848389767404145821565473008764727275087323129314509591570593343860340739237600716337090307816102132332462695523637994193560349036577210094150355624980524744562967991416260965413451125215481107772255487372339948564190710732816028966943375277988177621045623196333024749655376037012615110978438616493831726197519163010604138940250734817268825143048272999222621232779244480732580977169117775353773950668669410617900096368107331871165702984716714528877658635237230130855372206314254679466862522231258322893675269756842542118922515334401065642290904059800148967716509616741167575687907523344192316579732422932045196046664705131467934579599407262960174167515918598132686435400786781653869174449207544116437976720584509040121562354758351202324406751297083658763468666664016697202063002678843202513232945014938600784541695259110726198560083539378637321835195032013248573195826378030766598700430881907117232115385879022996192709588754881335175502105278830732795131688717322822325356949651255557071429159297083661533753646306894883783439342729669262935212427900720569983956718873200206723530479861079596286236661636951527215328922144029573922660186229336265891799049611052729390131139233969817966798459226884931698043875435533801335270215273709611322305146642280270578551172293639950608278084647064903243337834376589552654213558660045184956370468290856120434060453696472922006660778707691755749761589597802011232721630718702936199704635651676808607099231760964602589122846012434043117250978764055707025078339954567001083475740361408295341037250548748789184324644982988445522639460396723869481980526629686051725117907765468222604493890367965160525559608215940572177211820187878142930287389729886435441041278368566860713055303015082137518001936797604118096715996215307597152822500290394297887804365299138633547310185900184415002856913837947165081946781732547933423712628653963350821724456638578020809077027993373795496956884781429681058722018765604664127057941128864315787596986766665302235318523496115770619446026278109829279386575783420944823344941835473776568153582434343262629602968534156576487668571208281915943126972424396004660402760861479099232539709512037544072327015224357150230928387276044354701565264498145352966573390256379881142465752592282750580745792782349271364085172325201856928129705779693304201537480117589915394219384948626984583998636935259168999817036286203029037059711030029950237155596807710517172433914443796486694650249392970537595441878112279292772117120885537010973389022740658206350230960073354070033780085491824587862057151496216845714921435301359422524644069443319492089413308138055674130414658438232115462767961571607347307442215061037365504405071104820737330747426168189392577333366641657287251321173704936554199505396173133271126608379110470995702458706559973429006497942770734487469303096115835583611269392121274370999984233235643412804536034554672149906806160560385218853984466739478282984601737845067214689784426012852606804625408217896064708982671281396049759921843214052314863892930589565724658912106939281768129871464157437221363313176834025328464789183170480720545080457841167408314203626469118933393122417444822990356434208233859374223359767520571586448959759375933571169330295030136479195762691871252510592414183976823164353732408639806480929952344832521300072776949534833186484119774726348263202565639416774138343198844247033059477096702434851662958560166320497069130644698340434291346517451556178726354144504364060594657367605522492483319648434216030023678122441639530795837897233395510285994338449439064000214013762015168734761750073162302822026833997446415364347330024350857929657241968831162878378755939457928855888668999087821917657265530845572426942902170559820314619160087865654228376195877522197131716072860090193356777905624291525418498765059771689590091565530153862985025545280044023051767530248004678237788840871691436290170363672519107252000207799148336363586430588815575287068958365541175001354822997143486452301862549524713133326465511634939181106062591732892573956334424196385225946703886011183423338617688935138735229449686413820394316220529239476963107425586926808008659215983981029807861740258569310019300023805021098970430813211435036264208494372067458844072463273198270189978036974279455664116494897323117540949763024223374828354071133350380411955510716273540438548200280201729332885184897867710486062447867786457195241277114798861760957912393039072550281273069666664490056717238013085132478259111463572884181753423258694143860287435310651801142426660990627699346255300759989797419932769920042196082994120979559678865374902594392478515937835129941752064125295880583615092917212058431987678104044725793312708216110673700665123255837155943073045416447978843345915870079037344776411135776867364073315089582257763976667143671698965185801386399307919132804733757296422958855811364460376766718946643765728702373821456930624870952551151328826551272416591882958080995765117433256905163515166544695579648053191105841656202282198619894276636978676103901793822790418889409244533037651314719137914532118503176163954163632283988573524770228077521402125133071942530149195794528711655989135286282344265282634727745844894069124377602610472053683766787673901754250267142275806306998943429149622887735406493358585305453386526047587486323917846481006824158752204950129694262214982214186984769451240784052531428920896536710948551639459747526176927676189136150234991280633757718425366618730355321937817742161910245559987715307211608925986236081672988926227319908186262018766277270303616720361981167790633171998025222693145122707448528141990096700432663717553277670975024724580899153175803120477724228627629934434442659020304979110644847433449621811373620197120600775362931436494266520115468333908212312571941075576626952115826643156290852730354490763369895396326188699143269854400259323343982254569386780481872881380017998161619248268165013246587438420859282464899019101076892553772870596600044779965907570098081103708992873284235283815111036435994218106648935287468499627832875841358000116668795442198309218630154553440861605831361179968617811260858880668963329237170514449169540149548437873045462332837611498211441711840473134767292793189950618905096676990822496252903460956351303506400894034517786246220119036141645522143945896747622634529793834120520838529853201638135161755642971773622027998466496589800098992467361408321065619391664079446729663746483438269032550092872970213406889561836566740914093732527990731399007861058657583929086267161128925173400029028748192007526808104638477617257491108626114888771902954171042407852591625200605704431440051966010458571648674922134105528785846810722195591380884793739144890233872994711473708862649884943354420813787092594308933933500103162890738319055642444104457870888621699413923963901800759530859415898877192396687262182835806355393843382910641090499616819949505473718675942057889418633040647160297021942543357737978751264775080563454629914795441581663119913419238050013844452816611133681111202695077870764626776798901769946289302784134743562942347472397391595957482899392805353757261378306685613759134012840275158743241264615843321646097007972855073796588222943806745457141902433350220476240600419184995211879468361244982352186145253189518137647819846161817147307247363357026702997646571801713066682503038721238648171821252791303516493296159446365572510792173485788044076694367026039516647866095307754016367138274056182146084079270485496562623577929064011886813148245184444728536987386758129215146302347146805603817783897953595849497480090064224023529637592889971924484425869973232986922321965574350808755860943610557819171377203071336336734811423403406699434768678574264286804741030714934078949728424522031799650385796766846425367811299368770587632868481893170598215641355163485630181508309737906951621393448709387699103962993251234584160271888004020541453916371076868768527828546612276600710530948418659008037221793491001969797260552251157764853276649746624500746460832049179111099123331487352187681386308880203083958368237678663031236144324407052083048493946199068611379604026511024402286928888583005313202069554321330578631757305028968480060976287112313748655459230090706257277392641404596254908918920861463709856893422370499315144188674434921548024280506912217291309303816372683735095590003072491034783062244181090309077971386630318738991871230155023818472864471682363669386243173220606509119076668738486659397431802090687198276261575913284893415909966582594705354441914775892990241461500790766741578959920560563811871284535882662305863251616955415078830150102858804987328261537591838399678593576531630272163401404677156212494182289483310952720603168186996889154350473492012654426566931242242655308953802474645211724879987599659896421608519943909730416755676063215224286918021943989216004809277276937708422844323907668481480888840249612734939008631346416660279006960142187199511965424353209116832225797609423202479816361114950767071671047442075088793744342927372560401132538046528050127116590961593779691727777678296957514879191072700452868235754351275270601479860383523400641621722701983334794326443022638133498456922365727092710365159370561441780230631207937343716551229631535016785401389356120198797878846546812610085871986041699262086161788770960471302348096454338627279235674915963790236760035873795144820773058544169973392574032240346803169425156454994351709735541418311997954563481926229342821168234812778421643454960528472255918604749121363267588660945960763933446643637510172241237199324703058490080426424261259117302691706374469906387762515481498975373555379395706767586507892053004090558597894519483979279912119091725727600677485812667952096007642254671899986502437417545518932099121010521190483600432974767088210321867294264999751628656612651975137188321452128091397864868273964057045634354356141316553980966592793552291051854193630836280401051250855145281748426376145487342991773150419771909397596786693692597681899452708102183094065062600817052655457001297716586941924755712219545400650827529059099323602615115895973655925428190805991215121240771190306676633449131567829207478967514083553851466312714218330928309794939300459229219064749277886033571757292688647034736554248274860733083187798498176809738911067826959433785182413370805302619555962380439595524796664531434971108277182353987774844392085035713842059183332832812838131889470585041030779563581579776486871646478998934469868234953371852879690887261579094492686019174884344025499388641152773273959676334347413083766971550825637839230366013439228561150634961744215171319815316391261133415009990404601243195160350227811412367784047948014323991534331834236549687919722863562980547143425137698218901104268648381000395531625204693261965598216046438868385686546702893911832049287796051797568782418198807418203852748584005378031817498113782926350564650514366420363126858422033556379099310835933421994240844663261993538798339559365759493024504454000511549014075175198094054707836530605076363509500772859405481445913181771560258580169204177064047189286079512117961996055648522072598328201631474695033519647416485000579398752534637041875608085967785889458699356182612419827309696380753781700945922714057433221142048349019971244905943875719445158773085830391091308935340462962951936183002747167591970047786667494144128832586647828327670422048211716045516368766664113356016812001920740668019002264198796301059257193665743425351619322217154840904738428084678910968343371357600617144851381637263051500864158427006524709025221723345925017236263742740510190145659023457315910640903702195281562261987162969841258561461254953209480680602365148914138823284014245593937113578468019637319556119223433837069627032364916838313842908075127611351678941937970151137246242907524649660370951114733508823318965605827050328946973804025831926679968258380009153067928274489736750614407669877635318786909864161560236804153260807965746055121389811075613427491276073417006394213392942184265133724689603073311725970130714943870800637499993321596779767819844248581234814053866431637490611558484106600581318788249636091191440918814595812947667309486803907426401982947233361664634483758526379141205768763360931157010047238493947961555181258992801011534634632648546498988174495287936460240262216143739826588499195287079186453769314145254814875126531700275173844120305681525774822135812672840157682813160759175493706378920075904348571146930789636573385323022248969258887138550285761349891230513555358341197721295129069292195339998713258258816042148042571114727337141951911751478231687415145142297127901620464789097658651035220463433708273985268591841533985480993407146479680852019321654220731881564046052961532314953120761745504717847046415174093956604407578972497934793211182096332040508910893339337719016210430564999692531776696919838979252756033290999162255031968386531945217852257912779785600546723893979065930289066865087611972879667870343672435353888426948033877604706207132719743881116989314578712307278183624244429484625619767120286144380124570163133641125707392432876432486986145809165933671384553291522979421236760450980891658396379578731817945996602006221823930288450349964128676598368484418454421492174794708837811687456519675062369921736246162806851337813166112335868508849001057871055751841206491115725235919870821231201041737032791090343399755089542700540006714656104935986506487565602468527692971507938914360949390145064904325954582812065246236036801347680302185963831468079069071180828705390156879862310288105625072811427023809236026605613599980329272444104725583772744983492094839328952636085980940412535330541457158097707455474889724085008817583415410318499373490870459024213344114901545438059761308544718131397066616424897300040098956510094763182907259060518027087696071998105303581932455274732910387972852561306730702380021399905397595892833168451020658394097279489880468001042748649234307677804464726565984279368155320704388429805771273783570923154068339331207094873495868176016822994804411319875794187893549645552525808610570606362503610156431170162410909519538817229943763834292553621640087644974313518016097612197915781650066262904318245138482007906149638652283724361978053079809078708756113892863963997364436825897533130111294603819877958030888315408027116400586733824477746304381165317965305423898869465209175749065564624287537840854205736804423922272029714582575642083558099892708071781175812891650110094026730520210548221388151631925949399360626919577529255421477115200644865264316339123250834642028223092139393995228136347011962016500773633187521146194169309381275764562310062847531343116743833818334276509292850532087719586469488801313653173691166745712996634780893153551010841835529043411034848564442787097595112585214503555051873231636334774336174066516554399322401003323816842349516162573801229514208989413847842510755981629442321002425149685887861257068325924460491180230243440700092357585077331564823907571026146139215727350786460759859920923617052600507893008229826941250052516398450510040717040423642091546854888399176189054590444022090454309829507518440852039865410528643109345178015575195258789016741844276059760679858511659677196057826462983679064978999267253879697731829314070889457940875801492021679106908203570351545619589919562444105211198665786502728047317634845891947190762734190745931170607888418220327340864445534267176841737640454882028636946535163390387736710215920547761496541513899718794654250413901576158638676468677363372396132327659290113397726120469820977318098432026028300219823452509979545314002910873255019323001173133226468959795169549520689749244916572784722418473354455604537075892926879700297675048224325770644785577407311871837476572648090836490186384895268782838714973784508997959465201340959401137453745729942052487391412069978687442327353036922587305270183030040165928218999674450192698416737013773209430134630983029622394358685967853742644563082275727844011927191731454111170448127130992158924280538031634822035274117408326030164033204253986897529835153840884625224479704931913616593335962469170854876795495467597238573143254166671319300429076010486011105516819221411676333667870078900451384326937372568962902913668242053283694727321942740731894043315397153034494806139444212918357677253964744714566048312071451809735757701365627697395884941857090801078803247075250693532180408725613034981689328337586472830756162696343630016459675859817569579093915440940821564171602843443002656971122002153099834184316627643060894313801994719822609096058925511713171191627236080308499850404365344256235881257258874805712044807705845825821267862804664659343847839682357424349495508124167322772485626401752018317423556110467452445695754572040643990458100778689976490744724259642043010559274123669443437158547270033896292330244325487228219286673694972167688398142072785816798167850239189167740993366634489117262632225530535604998442071193738148417828392167746344124536402652845935696222373926599461919337887752570095520999339137300788919443733712637491420439248671119196935252547876670768071941487321598595000724836125211440225333513095898926825304964487546973717736491691423691729293943744029629623384263529627905778410712310295976408253660399638454256995067408646644850321845955496262977083906134111932913776595484759545086045576339530116193671257695506155971056661404610813006755765455061809328271160602337186300561865536248236057333446940199017838050326874099831242635394720724644102747023309738869120031187756734801405323721431246639743403939798474690695501646426680453527475672189262062596320846995614586942249669523381559273909137526802455516481821044328065134710940492093712764199217869219703331318164979434379647583818549691472526461855149816321946428019548127669672070129949056166136015179895844106668865789452563507648929993072799970566887072406070966543768404998848941033640955044394876847960391481935113576898290761815681670369032121613091112827812688314870073221841660902032968159975784049101012533620692259084555234754762410896966999903977933376536328961060640788977028008185666516541608700981943399702298568962156495387333075977401220354199093592379625913433902285116577802900677294008451221169277509714722164375163005641745405950171627526948274574177546611322631398700748777969916125309642167720464237290990552906913130484753286630573742621605113049833073349755490275953336563637404074202201739742512025524530626386480857215566250925538595007248790366379923528792784869899006076555218282788367586340826601313374333983670542142989182289316072672571006076782590384311534321920653889108636484742055325849089814378063263787671722041194671726447377476299633057989806124167971368297296717551378824498793759871954887825693243471684170366766166149310491911527434554093554837893285719188927494448464342921761141341960554482075927219182457898735390422648457732650318450342018144777508832663467542730590802966224514632673469299122878702245505191331704884885132898218367339434706599406264062456485950647190169339720113394503912719392560859106246445314932887538148141390039653253630242757915829662444777135023958421027154995243710464790351058493119874731447776949889629415550687188965429768074804377315540579188342811901412762554142623527999033144285918240468411919780940372324115080496932665463321460090922198928613407664811254918439133057339690252249164178178606549359202073256821605469392524604932511076169864310478853514695590825342915976151595338491040889440693883439393539025908904257126155696956195417662736063239336688647137526657471395612326799318300404061598832552891641794042086564709427891770790266108719827394486581339923470047656294995697279277203287986387361767110259827517411535213623378416449657761454352598006934385690157425303487157183671302340162876060857381048990125771001455428455069127360024871958607755221992852090076526991344410745629760327825658923797159838114439910825521695067211930435022012721359273733183921288498247400383865329882012154601923203484192512798791222213459936587034439392078861833784434633163615781204825093050045901249212018413246915658718637249568782473904825495034506394822573214666491908174584645300825825344255314167785936155647277108957416843397969937665516828544933656635067081806563418774180835918564785714342500294411827406385110754221511333258962468161266338250434172774880106730377817453579412908747333385371637220201073859074069613501062694292091109394169140927204106514126828166683694613676714153245550037535248412645642284475815325429754332005218398435669602336254593448428043221979402280008702967435428030557367853791050671289919912625354297502381246175174272724881590229374614015548175709258388627266075848537330580579229849818898462478176826874354708722495061967562125751510782871544501047321131354422206859917824248508002761612604089175696310720474588605178848439454701595919607829243351309920559200595232162457197223957435818872696376510290074746954717900771709934455680587920213300480534918611453254529001581185780449324840409162452770006594701497975020061818465790439831194733031049965703693936017902661929494463239822645180673413677865944400149176355265518491871413154464845407144822117354019075886257022495810323490460739636196069332953190000516094425243229819025917325245735198156893969152201569233800071185986925567566906352843569581574468589915688131772405457272827962397627135084258700379763061548626605945354963504040064613296211212333187808612008907262150449282968411800562804194141788973485212413146133979449472311765237492894572169238020466332473552478710084640523217819886956975032052421928015975617313502900820533483811255752291463300089571138881724194679967975197972124680189124339026894007981236093106958542794397971147632154927688364600854698627144989410226513481939525671922167943148677578863516875691790958298525725673001041983755034575275640733481589258326324979182090495413400898365227393573319996387782954512525856644115174414211010040092114559748280319839150905202607808631157280527870998711669075934595973941947729845591125392525873361538363553713732168717748935768670080477748073805527051940855583853294802545964490514624212299542636365282670920198439923468521168093766945903004685657336048035778697905614307800949199183372131801525646271046541682650379987742514283413650044275778691645508709028078769415039172734173500656689649395636275305175083511932040662901792868043518344932042184333671515809591873207201376306937239914280258016439839021464687910884964654407778122518017282031847025238930849099675558371806582947415317814410912267760473054751968181579303401105997401213828246103722531891551203738816923844289093703188969823601695908143507925356652699637888622620155688253855220004925351452414519491004203894859200693593146857763742624765598291866193537137393046418433242346247966043677818921898553040781799848304115576617345311779503465104509695296894241431175544919516270943491130685368820145777596774811509864562405724219924722475783328946337589655697447600105251076200531216864629960824935554217778297247649585884606034790464946079945016231888801766282042316638341549599895280926348886791839005751804428640546732488195362565193386340651620022938413020821103525782998603387662245367346059482200577972623167181999620430945346769319565588822470401272086035574188861549701132663233077293655321923158461114196151743931273909184082939531096775106980695159739694018422211159232691303375644756686258639987200650415500143469546872287690060448017563413437977661658852157585331538110067637176223760870647433356996335114301920328238017464487272314320036433185434843386369403590373458194556853453733923854669974171797537808346830456480010751599166795707095722702096516521889969505489811719679252807108078566478323309992717588985017622168832804218300109909896773663412887618047665746184055454595221582854470106958778733558406679832352206037757795487810643171016783232503308140729224101946923395386397309412807357525501455666619679576100838862832236803196045751867440561610709724086345380711568778404737683999928105928734925549656990896386533599564697305946396288145172081625049603137347072108525234094085059603711817202901645558935478944792438489872223379395931268867046260317865280049812590830036154794659034815302867579414687012449743079596558823473124297523257466388239879801320709122605871206461290327150456066447463354832263326757463069784892693277882747124071843085884765873775671453664593863271158668920666843254842933388874195533467512688766560585540533823762400186171418904794798572548340809922696649852193307747758272447977182891096851529161145743879205702187542327810377391704218868842719914589557799845443235510106523318986376061548574323436623254922129327291729272042768940471286153706414053313737014701391881677628463562586092800602838492252077507440286154211950250975577280779689551216951773368695041113879585314884166242368788082024923235346837322517148915381214156836900972812936180825573263010237408318452068548412975927033394249548075992234387892278542796480544433777751317996025595388517760832547850805545808780350279313395412161059927428152245118280716255819390227552225329676540374800885080306892243628785040036013320736048011095203415848784837334925083890233539506836413558499736277549760162220148434055514910886019058721149788592542554099270058601524228208562991747101850840222366169272464694874533022165044455048443375541426656317233434952557849412894057377508293755822868457903277143319223857166281536313513433692762296033484136690966676648362055080844072677714877651398170914448574919892525989801552347616989207547647353928818653320139906820351830447271260454275200270733795901008999360274250059109047259090972547503779969815203478612491037163187019379657387381425409869067786778717673685982778773653673715545077126769662909250921323166858377997251604178791978740245762654257482763721973295840112863435753200708747335099517218203054030742149655060256782885065436707572466444686032149008100043866181500942739734981592664438628638699123252085487061860943628476351330369799342477141524521606369156124022686502748462307167931670327438753363658030599697540125384558146196115509088311479484498615188316841750387309099617101444661992395429293403453093853712233062086917811625577144567990160821018146785487808920531471622028490465452688522358507149103637720780121729039094703138013325463967180109532682488164774987181155458732491794883332242876540645043067404549991201660172564716946379423325635191238459508919380783722510290283740275890748602588906950181348598186746672071766066552522055149945098840492607482100250456845299702102916986193970430707097190456701764357738320032085202494842994709963040225763161270912544938771293413113815152694805460095785153738504905993055870709447007633562793894189532083748304377642591953991566745216536343406242319325593088863667843233523031931355035232876149191009328576093884653182074292152903857972301930666347104971492763725080908403098766945224806562080947792882149895224335681793778215261204790300485183107148455800420864241166869351815031736958774231315696367951387832550394967423064800308661430968274995273515855688835945223676142863903285568163614459865679500575799016942928718536663064656573129877397564285773898568002715988069795725876242280199025217677323651638460422262882874686661234876708108158298662564498526570634963782990572342067368577133041955811972893464178456774827763084383411224764599746259781365431166790703497829034192054800980010198662324060305987947040383451693430338275379352516386628236916262456069776847958281880145422582791188378983853090635512975954912362811146769483849619487403552799283977774111668444234269363377020257935010115466777880274185625421631213540832407178110312098164527765971399140120018563144572350746198638536125873656025916094773174547535369595676426252125972370312353597614589530830915852060752953552369109580489584313143512645672395732767884834693819220669410920334862060557423961804700406874219514282512855443658024196790148790124994770631523640422901551404832464518288750488322061790584239844072737935651561631233901833130645309007395816713536798883871364700902231025982775455746955131558828910990855656909595084838168404190656824967475829816797377689291577446564708685914403096326120074752662564900783367783634040119579985665840212323719167027285616193266284523752901588812359157302039939429879609119699508140819995724730417911521929932052354583527486134770673460952876803937542065352937189206574106578222248171945394870251932812055589550871379951197899674094572520836260624816937934510485816016242269363983343974375554861686388790850685904763372814145338805254805801762011292954959557993168992092009766424437431866322885613239980019217651022115346333099410813027393405176358440266424942627405855275492271958687598576452286370627730245228240657698932763894911609339988339608923588112704644612950833634300737212526020814769887287466496440853779033497589477408436271341881093693645788871363895277068878868726544073763950007562641334921587392247172026180664859464183861755203032490155488384178010972973473598560997943389767218381935997915243451297159128010961458236893570136658996951501073832631173056454338571749893929179092638294754922924888476446194700309925121344793960019935714804299364383897690499510731985023871741769867083795042607610490207577735473394944750730572515245909603008957757763013630022251504988405822089975122476512846465893132645787000263257308079665539010648081488139484239776622571471195172112653264210658441843509342003224903619958565561631719742545235477051289744852536269248134330322683223509948210036837782214391120532342100881681841625187371640539716917714108928752760251021223124879226917641712986232021572793140801173420346941853438120295100178401266019141450785143906627364168061409319565981983793869655037340502195468646759116855959581325599993624951561265919484746605576181692891101497767703747796064164844883705628335296514496661965557399818947234596334229315326180349894608461360536805677335224662301262732658102949100491394595891079498520304795408914391763673019477887375241513533168677325430584658570647181125377364808636951798178575963510140648766179299365790942016651575909633234502225859799917113010949635838093724420887722424855954556946174061554738362550554939227848958670294787546540963306433248779755950636094033341155613062655629978166463481913234880094706387519071110016099455480945250160140861814290817074096771787958176046633674094157304730912683842854487054189028068875415323275835948610858235441231661049832532512888478722870218681373339134248553314017251695021783146592406848731452611953848669345825109352796836536175910464960933194663953832273441312480520083812703049320475118407876207136276174985463385446136386517673744234998343852676364584286605375272212704436786536827519991972435654424549224016913661976829764475169010693696056505670959077747537698769302525461015180574502732344313501511890930410816928134619380812461630148245375399051141334719559211410205117543469024016173643586627975679932976067099975226972029156208185870025037730717264992399132180472619736607930979856993973283837998998264304174425660303032579555003002054775924151610849659389069384324824868092303273031815632583813321339540519736320346147915721350215830083774920193605194363360082415820246174901158088719209443876160023458836676239836863924535454525826367416658447238717694092391767204176117265420099613274597778303173096462292476422528495274344011542114096045603800171621564284119524376125683497299174785163289655050351722729154375088196783180849736836794167920211588342906514847302417024897399393390944655792363825488836157427165417588259487566559083319894181113192014007777193715658379307397646048894473805654843494617517415829254550164952377598573522919888841614415808114271898053775154427947358132759465376327902457721155201072835603772309104197907973572059467029690307836223016323058435996965756095073690130867933027615860998331917015019040367936640701541491769365242034162425293828281642879971798761975598386887326512701821186613040449659938086150375483466141283790479999265896228788826042205989243679535386600257902383920191880583266469002432341135135430953078067882574058884623859857551771620543595016348495848308763116166920354038938327325402918034082123041567045709162304186424505901528961116199670654052103296037920596879655456738908864914851097812559705656804500964828211877965322569396821549904255529576559616742379035801453713103217164203529527310488257252652884180665726476489661402428294876797518559061178766864854275413085445266041699722991304370514531717426183798909530708989274807867772587588942951969692145061165099714589959198676508391101790197137640280127278945023517851934914176615489753900149313434077851452178992566069186036480239029162210732499695781305860083587731403437952226938081292295300304236859060873273923419212214640790371666143763358748515689030258905257022938632473971135960910078854973534108070517332983197944735918658338087380320394131394751686481611823208172304258045480737883958514744374342600827446852144633493227587906399796447460791069825647480126264476557736645994492424355872444881670981833007930924148263876226844296959564514863008880184897778477497501543301884384984431485648085943723324110058475582483181305282881980693622132622333012710478782275087811027258535261898698512361781198605962049885917327514166557954608180758447431446881940736001501171856708162770009612834162795972925451921100909284553760887787706573680887174723864950436667351774761974786356126336360449472468266729114368138740421537321767574912759662638319268387675477080467523752372722326015284174160042532435623061685525493028003881389062268415508580791521235157748310510170047452531259598070770906917224334589585555926242115591066264608412616968157243719840324386096615451381401349033832738941000982962388271502833269060534155821925800182460713897262968162646619596554095398246042066963569807934902236888996477714036772176078713018115139627001248840370398167009196121264582778291039388185288662898756149629953755262246209067729535773067199268273210948697353537976703383833956148927414854566434968997639581453431889720197362620176835465343421695369785014480008580365319920244544464542350489282799744319458480145790104615208710195488680954787559718413963015858520503731895734634681562869049912107513035682225649143790142753534054967757360123499360479755463473666609871318101959500586063842493995946992319569169179783632924206005743818490956779640698862137897658167077400480203655302064586324480978647596557537814693945867762111029025200991265328952841519685864144806298718341011307903135804025021406793551979116021140703843310037195331163274836777579586424596563615243571683325951981801403552176384751109265493039003572498469022762169542737314285750838775859435227007860025111672862641192989444207968682069003177042554596184614244007744781789234526826345253708859317527748929143328419199254407048225216722174231796135399669558818542319411396307065492614222839891208511003675303789441885615591045391780037095875281729141429864532538483317031238319242758155431905235050914596310567768178228149160915914495191787588621761049443299845116941438318823317690904423985321781410795034178871201789390815741160027626428396603542315453617697642855229651395469744240336020165179765677593117072059333345542476936712734520193509695272659752725883595344796042986250830284906949039321762861276527819940344990069549435203231752308392535461603236874005859305651599374775468270109926408197296434819476613636209296888981634521315963461707848241756205210013257306397016930894851248824769731419261831080239198935176042027379654748301874048897835458695832373133994488881045500484827735973891980282537918769694305937604477724928690171820739988624535089705108473173852756575961060885588392320798897964423855307169302777400106015430803223928220832627177929549131216653099033085501192476188433249682055454061919405434275510858482222636279007124329637365803318922901744421129119890218239326343833315688825178482105577377853865628559319785563548836940289000114875655241819766665067268737225680520207254903717820626762655249668609015760174812960057659001763473257827410098502698409557969629013637365913778750640992364935090608031139773865453174723673503866151289006500119109228179854515868321748550461907062557842078899336853613386105351931962833054099148672280987311850546794538755098662398592601696255478205536997294386586065310762971651508881083613439116123636406932028144061841470261826133354660536716537944838083368053868686406027998957583627472079666287325776375229213823270969083512807616713112608313447287315709205858388559856237348486930384877922342725626121419376796399467552941731375712544883186791407589460993195568143319343267389473512665177867791580572855290607707484812034318152100341728507924466287581131114372999312216541556949894469561245501278167516494677622711210410781266695084448287132732261713878206618551907287934286778218816565849245612902237022675831969778854833429234203453001768054862912347734737465317815786187892500340531927219867171241732925547599561156406920370501861210250763667860823677685871206599098079646154098601759841475255245295212435464019078452978086257831974634214030344525908551830924595537735776275531236969314497675015287100476286102193614062305729711081278909437716083200483539775288094627994073651853472885173438301702985111942430111940135778432190195514310348164870493795806217822824663687792562574235465537640694303052910526864112720398538081950293015921741298576493491777501373707410372977800713562408366723229798631777065935263618776037513769080144393738884948118668790468572942594973517670653080705787399234196192104568969535708215591292876325146495332731314060603810462681278640325653710518949008452063300480156474064933357731904969694645162480948853442688321002179038918114947835818122423749312427005356620297645086866425559894009866409859661919132196430746434379104751923339425315925122207277674972939728591974421490019659705359458302936359166846471684243807892618924310311527374772393536144407004739985227850203710769323351017018693914658717505636276888985591524814254880809662505398185126541540614896042232227239144118308591997398254662289413796101637115531698677861020188236964771677780138076676477235604299783466423159940496199832894858224606429664052213052619880170022159248900177356658694356594299670577150090799055738514657597271490945800705973249645471722474117288191124811958236664143782399250655517926894966055703027198998774888778598336293421469740699811263888242463390804254773430248095271975845642438050429496446219372647954592818464221213351543261543931088865707439845713305244717600556523718040332775064247055723494284213731779911890587169454023447694792420753456661973378908598222158584187584577923280220574342415909723123135597985800294336156750365185378676190180263323374006335290975822699027245295105442695593323744629981965537222120480153648418224373599599416125198574902085254929203989192526658217312275829707119616058814132273219102727403363769524732263399241946466043212944273840526575888517506856367558457411012605660723468050083663603265770324279676346879878292189470654007289328804970938442368245719357212309671603448912702261140064370128543470862741436051258847087045361398617339628227867127521478730274615742571872795298874385515636816167332220916926605703117321318192151805558315147032191631517098082286000984308993882134133620235595538215725528862247313520795135977135258452928055982977545807382751188140469914761439295846310226693255437670908852352550477904947678607655210255375101125653390504153046963288320085909395583842891657746532462101494597561152897571981386756901688567967367942232357462946825295416249090520546941937674834062365283597972352294834142506368816752399269009780681113529433416688059900714358330779433948323840121341182245415698269944653580879465999142499955462651852924201201662380689298799984377290813001915872994007221776876720939072318041280392720536557427937184390898293737360027950347090789442802389957852953885256632990742846082731524682085519474367386856423407477306835255895100989106676953461854001691772992373802341713458599327831726480839501445743687463907967637336009516708383751496298471180186893120869702188404721614249839039613566884668694356001289252567370774955367344341177425773079830166609899665462339508685131432905018406110483979890139666252037094612543152150496745873800325855715519901229398746825126688918275427040869187088643686799385803867611073920091087883636292009687443088390472747977849650199538411181362932121063273341284852876921411027484240166884085847447780204904265825811565073517217623543136243342034550717697855535397909198994440700629161715622551590329765016759916406295588246938337821383852247473157890561627858138269116007985233504477276529202586031195243174520361243140219181006126474035269739451521769726957742687761631381176870586751531196591737162932864904164374041708167554544045903865560860865580767038651149594497707741822040320718802535957120183648415646696098712731973658835159116198280468721397638360237771279637647636196438056888232810708976108782265592610058103180960282921222555599516673305540932743808555764412762346126440776255188068459991421069304805755970799103499580826196678834103212400531096796418291079914841476298290560596499837556435607913404096803734243621404073306548077754417717658484331052224747183940925402926472262104092277900759316209604404443412403786353927482812009859199937940423951601271185061439664986427628184405839792757352664114397187089807933506718428019505624833772455328895833036077728144379946863523913416540163618022442404027253117413427124976117446874815749998121140667687440573709165282914403607856614870854803620024176792783552048390392896125808712532605570506186861069318799127686009907560451375534361546501266300235007669009237158174393357733375124334348669004856915782795272691498852216477406351000757655672528151785783873575858953697903340286190574070771623732174578514395424994811828805613959666501399799511430628610859993806426324419665249067810136856760165953387961226478429024474796666010217428608829652009036740328244081602373467272800211499445374575487416703463664454389318791296457713804301425802040081169152716615148638403203209303679490381673696703941369849414515776363923709277823549613716779281057672538637333059198312085172644417147139695686174983323279966052016695067508906489838239252084283399467730701777418519928441094410066111797119062357161856542637408415624773788881395333170092828310706930378369955228447461139775720634483083976373714200144871472095094712801019697144746150240435655763228985885342740272245562666554382686039624733743701201055854677012529014021900662026788198855277666364234691793799103890592961244409616884442558289178999933746928108576919071833643945224878966940526088929023067881429721528933502176153068548164553616120252059485036326297669083751681620531793601630657832813245008305995999240983784823139409687083927522314142149376532919682741794866805785671620624387758916463975663950472158506107636215026682560966353144637012567933476021683812807194822847983566208961642506121189260998261130307792118145071218031559627195957336424333245329034970307596880972216344006023137291624378912597291619749967949643004869920405902296188404627723220613519803136166645536841684920726686670178266694801914343361703350468223222809450618064619707010317476942431256667044769884399323154545322460740942075483472806071154704650118363584282386313514851591818664662965287028213488359996433480915058321314514648162796130311932704648564054706155932624166474257744486249235013238429818664454941125890897288149716880922589336394942719353565320998803723364684801871215256181803103644828532549768263263559256661601027480383471226002540963154903669740355475273680572132724102486592599251619305567657725098631606537661941682631509606451710252914737768574926283947868130075943486472074191706766184437511934467421435353258586100755879733067741625583692563099908566442273562813625750947649568743113722439600948030498132084324439428640128377582947839830258921124834633847071988881451361013306893250804365583394180291719894772933812862857305776180969706371679630872602990017846605480127659165057180529853119418793436145766828383922105237389360811288649678077547526380115182585097735529415041652910059162538195464195047377448415360810282454097559577671303349242789724809122883807806013056004725819852650735190147043451422977024385148527276433145959062006024829797400393428144796879598838615484379610116483551552913038327754739742103271117924495644539816326860806984607099815714592504509548665302360844503204660021376724236520174406784668489442082075937571590505755423158055331183324146774361793410612206373801292118984509955477699774491053074366068274440541938263002780842561328316790094222186576545326428755351096649248408547760907105767828597993858636135375672765575959421379896027092429948962686564402782239791800699534675666987829015850826724005738993431160850163903586478443567285311354457892446373598676816682187933036676859780484184321498727376974206654447818250215348870521379106431949748286006170695849482940308324220300067298307060591823414969782013727101395613444857730611454486646004630119676754224602151747152758193675262224338105026482446140835161257300945051325585708361501388268438731008527553863735900858634732466626188351571285445831876975005185588496745310003119754460911787348107771062174071632366388116123683722002601197278440490499750040969178110143713062807320930309851318475478227841947991945817202946073153225428105714370794433982018677312606028853559313579228560597909915084457746042861329220750549651799244683533853484117665563770368432325909729755810576203965501386807907715504336250069355351812045146936468417781168462230153071153572799379331288793187256163315403060805879831630445170728103569049846173892850143049174245711166582327868613453354994379320125379605464223954204248887118521372950161975773881302270829656399278893736219761288622185521885193574576217178242016173795803131271346027762952590871529077888611350535046604197192826106934381966666369071333751590986692753599598236143808756727732340750088972101311915785912782094059335648533850779584640298932824353052803802831980661245564276437954348503357359921364717058622969553093480730339616440096443182878765654402458611203846427365038073785215350070287038688757241617875413492540636284832407560618763427919625370049613626916793520040331850379813141999501035515231469331486320427938101475199145625013548829793444799796867642701879115099087272666402572231216005834423952902574908198111029463838722951181269443737439212144741476269788109626224483520542480263798087813624743865435348686241905272930799063281918605465743962859787688981860472966256431455718536500705912048770136590406404963620049080616705508923138746853444860874491468607966301415044554495884011841929369595951313539999639756897048114927079008584667768722296624103847630293668548426259753791590730356974937284626762247943136488392852099680650056488124689464216134975327005619860931354409088326239832438291172845298187198320514144771717492003258147261219376370549638386042882239639462693547596330394211219670126338583313363717169811137386531642695461727449828697813873175311154687997645536173966950172941066985039785964430288556708165652764450541645461021653799188436075968296448479975481013047347161369156967063560438181651410614779981959214454209440353614322305403095439022229427648228075463575580940625007586606887556176918516552218065684623374768930007487029975085865168364442324405869976693931629120118497261378377047712906950086867727051405749963505124081514059023238661763087179533842111752548998410665784200859521567093163310455253843778194180865621627474176228169793114902728555692266703103903926461330460636660479156217837428024558504160749995207306654572062182249059298286947527454905458561590406342127486635504886264818946314695008287466074926637286875296815802841059583406797978130500052331832556918230497987923818904990866487002350538621280422178843015794014361958196102072246687064363529710299625074276728060911365165648949427590510184701347901703092829669112252973117043980290073175067281971846395720817785714335201803620366875116125630840304484858552936950029903706817239735828227842005948626472359420593404703762549576229520433112560458635509115771429958273390670433233508817856596411626014955674105689671387681610529904809336893444111766610545509929997619075724784453394086823774909025470846399110977795339870599432190386998992124726523457917247039568957011623574409316218156309978772924042126973370685251972562439241435418572349893727256904115439756646325116361203348626800772712954180649791264598128158597747663551082851004381213188413180304363850809412157563543946144928504715823718249775420479456187165037258570284528556193357815650396271708111188528462060190042442870985736929744759280847727884150437709305481957465477109059717735406333081518587422375830518209901020769425765960761424508116934921508853571556281339266416697391255966979845366511345083524763939760394351261493735510735566112069149037001129172210622040135320438583255929768643730970990038280211141282962703209671801800513811698866878283863385099524700449493566984367822548317385919761433288790341031716754336938341473784870860678642874165442071121723763061931997582507995340312310498755162520825447514252727784108742441507641924525635221923334202818205421237336013924839006265722830423804328433768238606772432299846128979860104662419289771431728230262015659769515375341171129773925934045640017997757831514576041184988195418704444936501934160671449011447054371745918616431813746035731865187829549242792106876326380493693975351300217952409649088720594323157648097952430891175754322885665317906518162488003123773826833917732935783330546560263633870181177857091165097881418974500615759190910207339390608426294299979140715872111783220182646081709792568369561547907798475101144047294725954796242307799373440110972545740090392465550079666305885693274350497805052042760117215524197488881269262507183253228580959924164060300050182377478427756276537469932221372867709556494437396354394096485209103007169760770730236839317491764224691506515587141547698283522980978797858205364477259503015562846450461467060120523351163750166830466887878511706022548756577502551757645521367871990492753686822391005222872463418269143827362556646382927985719972039883033234621213889750050980032069707428456117469383874382969685696734110422401039654699980195043187735925644839412064382893154584459013256106226405376733064349218249919958632205433701543387643262420051323378645328325276741664925401981598022140166201281341713313642686851593419602934349307022827955764677132268058934354111126797705923023669450009237327237252007238182416305869500147750076526379882427543522939120667147402568197998593162448537831285182546487728679723528009936908648317950147548178870588750204464225957071055544336020708366346975789533876983207558916082631450216098904245233107018770074327686774871420268306865291849323843817307090542327757998397560697702070501388250881466964896838447175713264920613141143975378755807321982006755960960802987789010246500575958984438225229653127097205855551835049587419692123234047840813061442001081205740692258648143502885263558885415792999708655771503468759913653443614253066007877505074467450661831684055149999717599435825442726961912406841612488952800643891999561591286430510593884699899047361918969398925780693976558998501486036095503315742412005889692425916827961703409147736850072684822704097001060144769397887118534928010082017239096754900812536845323026074712775061121889191381126265941323277312466373324188678445086939582436762223856223772552215413057339639183197070596322664600183969343968238349421079602012755004905478476251219099888838072184059218898708922576505972138567811826473470283282922954928459113971094485956590403785427982598806926553212849368453760473794733346009098547017339794287085692247893660087690487558780254932540510771845206596692255629812456883712052885815126596181139718688071635638197889434431554092530003618587141037846248957995966666035392102861568090284581370107803426653988134231640146498190371529193399958377152981048865369103498653329304619738662751199185431528722893499273683157425519208992966696208143106830717793104311831992537381857034099296444768930891072429507066600633093368549719113622947824683507381644243616632937114495503872071627084436040296538291047431089452407980432308122252831482847432110287414759580236606782821114705778065449391657145438798993002297319061231592933243176565647646256544920603269089315214684791519977651996943196418325783614949231804694301710465680663335109632866370950838669874399684775612372112261747509864086341339490205334926026795936795929801084950461085620942736605072566725965870143893630761968376657630130183463654484187797717291363869680486296063670919343841219498272874154235808008672768237003036931022519635133883072268478358311776225581750318923222762491365096195272306270411663292436155581358009644259788911724622937701814971210835522704834748617951792631095390682632198293398117954893480521640333685121922742766524469884863753281854916008253134410959356881096691427004403909208405533871459176467069501111553381493340553471428406483277194758685686499140916653806502716895664077885872100469923210068533098499966757116474518715538272320005471989022580243909021888938705373553220284375461034308227980886161088992116529548126337472348445797737062362174934481008781036176053813161289271990129064479225949148240191557763719544670646858054263013445180281831623081315799955173891654378468806677980436909203889668233919948818578306957792148722164674366124866942850495656255797702357374271651737323190882506309103506108037227263195040368151768586677131198358892644391784364714922635081654576764288056615209395851651806704705829514340412788485275243757886023662390193661953602564575146783825677513337330029987172154146959945814957171547541529200738346370825554955763447185198102129057236976758087364579705117695300918324190912492279881870355600281843735632843118100963767552786772090142183534958808991827503517294910817388339236214637018777362441804038535358273353228717779791264086530359021359459308086127103155164996332597922311085873894293410892108597901550997934467942873444936193912220109824665836447313507004868956859263412538060630734263790449157502118623270621588554191388499334125025975888525930904872013423361606303681223039080946318877359095099663767362302153734249720790275483692555507514166535126316952678518808095673928395411681621116992848693307364775743839736274791672322060296366166272034982683158222362976830692417519448205649422117890590132028316339722545999075394583378169661651461304351897800646126950919368226935593407823861276598430285606703888639143791790665613479719361099134145502438443967424800511178424551466014120662478454820509942418089501937344541970731169906334939493797989298409599550524412235222407814511578870276032040928176190441495447428064753993909252619356777351810222642789701661654367399121543950339203739088483751775139551900028260298564668305870989941890985507334934048862058601901864060610034500022793468873185100020392728379758150108291795187848955036112265170782408985710338425961302606756045724078675660667210620831068837858567440895171967990979958963811665426176720511323550043042664823516838293661324012305772953818363083298988062365263461943233687424907249040693993391998560702401086761418196505817719918804963894001625910211901141979758050213923140307749899983954162483159443721029803517818481067324859738816345103170269117320743619657831346476025699475438491739069474398707451278640155813287482614169274304443041956611447334894197072990806066734997951761928700575639850931924452097421525014761719701313676443765347541095727806697181442217272782813098522867932599057675115261181911642090002596532805382367896859387233164893727227318232525777166453367830443215317032729291545220887226311879465010207360037005680877555837568900866695257499695875752918410576361873359798785439743945438535099802046016485934688945792178871208743511319243337334782919519552881809119642249125465594689755890036469896582872434726924115322657465275908013805482438908902562574482946479458965218643286328946674838615315273239932824579525396941522338972242176730530702754356443506458795739459382143740437512886656482825103234855779950116796257409907092927705899933928769616369642158888887414670864894618555184301409098206664383836637150637826951214249715993558621828306170282817142828284535703202108842020432716088312081947357315082707171236700962041296470811566222557852135131386888290567513346636171792799676072202754236688060360684670878935487712904637114614935467967088073367652313731597389420415075146079741570206689224557147918705736859486243594686534159909917074792398352336883472743939174665984551720055049440597097526507515238784931426374496867172470605691909120074398450922299375299861158919999471466091681731791598928348610271074823173736407420200522367566371486331183912603657816326829727106455108152784661172545774371557040625839314817272387471726901462560749811527588934320750918261777662012367940736590269839194371106424601176674204092607591528474394452193707455089517732672576225327721720399231808152953385399179344996289107757739989674328925846806221567236000777168247008135207962885651146588627206294041093458224614771949478555291650659979178693375138351483534772950942726503489767971476453245607205608233851417462792044978428810953371581248311617245511078369589003141408567021393379361168512042288452825279507897726005415646169704620006459003121210151643709823600819536840652863222165938140350929830309533198181899932345265985726387937217638613574120765184004598169895442942358717707550168619495553177824684394936158576588097823657725186653279786819217749836358277931414864351971193597470668425131029278047157342486580367269062662386078172651426316167741127263005186198620076379863959641756017109153273520295876084652416047134168681017872272747765370252897011686922548131605507702513592774561423528663498399938614230017002886648423363299195719654801417376880130617870975767663059311783525043582241255928967780209650234380377156132501661690712865337989412363893576768565193470994986275233458395829208213444108024710044214142166450100415993281432115728659487337213269518011006146154424561444214450380344164560482388281105580158581535990699637828791946615345991220961334447693235054355779444166893671842541471874098757563696952195307174931300099995419632288537183075189636216387637163334708887976864504427911740207454116492847692132168754704714664241787156854084188407768559362151571805733366280121963874148779238022966910790747342056961968097964515762706701709636361889374514933969154254665549463885191400949659082943719102152851102041787171166659133437030313645987584308009117448205088342885986214858302927472590427839643282572149629404292454770067740104123158996777636595913147349076156317019591708308039604948950482401369677268470244952186116787157961086681761269386752358795892027992129903820762642061215535747467783045765999779719940814334274558642435579354139572329258729481802055125480931747079867765410509911702234501518052078543159872886786711209539450870233207168506893649977029190448743073295293294069299547538654470560981343179428803324767377961125672938404287542424751575612404888379801113021582290108425618368440089321045829924731253596540597707025673667523603894902571074251804540739237518651509949935557587909898477143158000465735156155120918263897708313677252030972945305362591839482816378986598583919898444876331968757731266037718389793635830831290041084526769666019021872527261380270477903293816098593834297654718294201757986102829122415178593727601385133432050367045610761671830745291451389744612498640641848362150681768433943206410846570546007843445232730057496387211251374490823506734158645952315007668436983648067617727852329495772441354050925982807151699548302017411616569824645728178782082837518722176666239121993594254924716795281213690122800152766760154344715872496243653085139962709730323964243522769072091201614660833794170603145741954914449164003001438906002107411587182912804591091113998002910096546707548120700391446628108551237473923604919957519967724752596713416510277679509045814839322928954948111876553021858299497585415334212911979798640823460339004570276263453200714436277052822942426963903803142220722694518159394771187619039786219920671512110590106729784332883410777545944952548569093824875138853005456498764488766469746242641554844917845856499706631404754018763074882408428066562025780022419964744371361830433468187894913197891191661481120045942597610264855147887636257999798502656039444166802325606041267400615616685302131013365431738493141537202425750847603389530378778501486839813084990453311581724771935836564654905135347631182321655313810235479391288135873367721153126231187135079746753136645266338123129187421779540461315331014271783926008218553618556962668969210420410924271976955905282793117038426209643429116993449713753425974380125485142954263720835069119336795130523985731638204146752975465084586405232127726544745898843448224403588681456428724658072026300294114224485673447209521892201904276164154082311467746215482084329215057187629557067278981272070582553318227655202263470195363629266042212834034971685182761257809549770403891747188631121927743703769800915473579870060847077062138779385896821756662119424879599697531434069321420704167061165914173883559409129048368128735238787460434998028111383900711987326137117040203862331441649884070999827324110291398533254785276196543626892342371786046074948404027777043946822880735330063089877293690250614379921163542554700180662446115908540601453332461825382799559912883170972275201931420567148796370848427919806728207238919094713062946218394672340047518501809310875744995893703827615983647172764653074324336089377073604511371802629738480058171282594445085886065394783192143322576914433843534585512108623034910633667494819516801098819062209723698879928316994340528941142146337851894127645036223645799813559216791222811201550768329316778320214718035853733065209605023585699936985457730947647478803217069638541385729052404008630280802195314711962618516883668720351704337914810087946592232548922892705218473094004897202081261083191436918640965981522430693453127232172369088466284729524865362705467644029070681650654371427037744298744535451952883817241577752186427880922114941612024812913918619949387567508639120325366925727900788494391096099299397658909471006790788375348542523240148528893401098765570894769710699271804938081922530510102203037346854493997199404778175376132372925650732387720562077342815585973121475510164604813391667693181032985424678685475414817962545857882101316669658302623954959927085362463440261202325943963718772016703895385471541973481637911477879143511902502242878268450177078558506169056822658814203606103905095504534442719735346457281684700765437784657200219170024474189745729234755008561176022968837635174967462180449535857098209951267555419932644812295263104276745534450473351946112809628065570203038603833114535844115342708314565335456163280400463232040921013547992107681653951832219956362516559370210346223026292309489484333029311611675488324848472693154290215652473876325176292324430421687653964927807529990480344368003692184067959930380625139900009890119892293115096919209440045262090380471009356954349352250213393564590210310153092444849956216480438086313640956992620148287682878082610851594222734292071286393008925893005307911830960568318149821412334083119157787542688073125041060633269468156713844160644428029595036947238592288580105725822154948939216988066291556811786917670000996735653840511415406830177167540335094639852834588790229322592532854786545614265161363992250148888736859365665849819145073596712870594556254395370081383260343697880364917190591540582762169070964124880661457975370903175184247425938864899732338162642893304949678408433859926596731341104392279111199885274106420522243025675012340608139559187050655038636862873255586264300594991630434343775022311841078999127632824853215785043236057765708688875011634475874908424306479323115856842464186520644686547475735310434938240225413014930540061829449225721290168585446352619086966643017651115925132496065266893536052088650482155533455958856956030090016353365956818623941043200681481665040155109692753713599456620323112453675668125815179034325364914580310364076563625234252428815113821783619779843964899079743831897130689734975044393177389868088018008345104995951803171366880155640743180758108849697914507837203821481830642421055227802160981893236098539073757995988187989634635419246898709344210192341488146381766924818541089872694151366787979071775669295140429719170257533528596026782079832811119713688617039524557770525897398722265532246443974913889935503670487903718468372195366326581058609478109171317889262293177712331007427037462488489445889139466442417645617275440262006597823521207407447810925192024191202807871647224541095005447627237857457565132153650485841436497359920860878104036455584418435692512755755321084826436470233789369828073456904421757855282102481090340022593615124192920794937636436690886449670683501187028649019066259916312473472953494580389293584014205534593298526160881885436532747917856980953748180400823072267055477476186835466156718139432185424857039291427890045556660334033923332479455920792173909890971892553976538612846297078054496393519873195331720948737552598593663916396059333190300898997752555129399653525798716291424670497775967287627887102576375761763227615209474461085366370210360067357372467792763622891291030069166816514471932291169138551372251913496087990801993407734527363167886009356240667131963738437387005803565231638122425253033027680780860338508571348391077960652890511669852676556955611105735398525160960899774294248879026695418933335176909595704464927485439518690931440582234661387765851990292448642023232848331965393261686640172946187332229086135607844987913920711818075346867421802604023125082144517656326846072785179749664513679629498116671175830306498084409411846145281776524336670000953182645540558960972192579291771443816999857316024719716672534175102701131435030686016417928189276408672660759169484663430177926358936031563036474998362090926370829294456946662011012059627498567952562561970464078137952737788146501684863139214268582805442271621295933187283810863676786016684030157128655967535721228648393436796766210684034649373801597044157071477265162713914787655638980907937663805866199199901822897202885660517317850121968879296215146598694456786191858335337397374350481562208406408606803372453953615159848263147370325114630885211151498319461621058093238948372923581766359297390213847230127569372016804608102941767274230278854140907185674894597717606461265491919894491972713223131534038062445097753996438911104724240665384835883694549643739312540098408224473400945126557841708292613378131971601547650156825612509884137883860743937738820426786121094679479153067748755954236159812914821707130696703764362456541850983615870490483626180490521538999299855175927100901408120330446671761667552690051095859507150657086461706341881750751501193467738850563998523621234906210688417842739588342372218362010512381139385743636323556773570713247654139767616246657526935315759854014978304778164407365198285200593041409674852948245784393445366092670835851375060708399683562668157208714866996322423282734582353711960898123033523824413531679026978463943007548866708447690304943604098788911830753314258601423941051421205831676872877125450091752508234528894179970734432503970007088355086279170826873524090553827829916212419011322681573093383887187562680415636877292211958205353730834172765402416418862663218245265695304501479838665812916457619831389308395602706244095085273941553826389403961820977996227806613926949002342845620149812557877027475110841742338073595017756245763990905835381663455446342903885132532825382734812934694294845974052854960783033356805495392336104213121476211751270160942911030771077441130075681675999085484874967037624594498938983524246658812400742513691115502248106451606886656176753928876450685206379527502244755294931746870202241471973935964862394927813544895886017421727934026035356306696006800825555200595555398435314093981452597604623660389446894680730902183796998707756640861231757853840819369883924959753300289026824246069513315613609437290539274664969942305474715992980631993535881316426731253486404503947568956731912512264460534812683700410191698475600738490293874800849488500504509797102262119231615842403029381817434973765569987279825753418546545768418184344473071140824214816001290889767716097760217800494516267909366708693541109090364042858031020670646918798197024416362217944488851222927641491714650326688748688211003945915488618852659830935960988100451377836304356653835404977537959466805323215945960895629517736442494421769619828902345017902138106384710111834702483096298351894986449017963741505521533611349080710683759124734966872477467588988654839730816687091438537405073127032317599797426386126336229477751509508178808533651019674979896966605141814540663792929395871601096152616547066401966123787596419917272079648713674603429153891650767952997177080562130022640970577456226542419467809579399708463862396193199470530645336221954767804837143030805689497509284061098070682068732844121505673118697855470705924057790876303608261757349078722860536797615580696330641536446201288344562146309552562915423596648773125359792347925714631247581198379550901139559577510200132979915599370675999170064776817533939692601364822159795720348453874181712824956781208777805498490634514408211719896722530817770320751103793434931426790802125865416754414706424345648461850293243997820291478340611442019620079990868357747960846779510333854037231818012014722847446289228566104126346624225160246801489821008926104592144217639710035597962149433145729344928906508827028023064408940129342569812380407025061332252967809355465925249503773400285936317983332086076756968116572369773034903620407723787130351090929991555576442630183246379895027020330009748767574110905928487692610764950706296849291585055089307010128547901878912067225797976595479574920451516564571181394231456769585902482170485986898141962352505437956207724618970626678416971062181374372875867095345376077081669296988934764661770456073956361544951068774129484689289571917459481618255365787617694961371677307572302544107370053741383011457555403649695156693591464546031593375216856844958881044286735297029489421054303391369375219273282524027765075985268010400487697102896633657342114985704339560756711363684267995822762671856864728186585254875507242854306885434039570320194093134185279899425580266941427962383878481543143748993411943044677185093119900460571845857750613286745351640948154395566975686856014500910268025448194419000130822464933817101976598013103573163383932790374563111083094005739478642293910190771712140638189830558554116238325253381121727204054564171741116538752947931566429151939354241807551760893237822231124167271148360930946425082462427581984809899289530288158952299794707514944344978855300299050013694798146366531448062845386900752738374287974624474102868235422500470208955001871873925878348242972265773600672005552256725971635073297413977505074677977604397112005842934271728975368513899764369621005886942029115233684290995818949495477027024842258282936876634818976275218170616689399009849902148084909889711528644534143936282375702223359700260260213601825705012367405994638185971272294422029800514037175183814308378952882175276634947773284559951941878368051117668070494020785530807242168691970217355439559482427467979080236589415889315058652741317440827651227570548485749046882836471336757301975630109753757623263654868293462199787612629437529303223824543202484971782839715624171206087527571588787612235669208614129300079516333251209758440475014189359093007975025200025788494221017288808372821651961690208220897775471176862894764175785236243190807515322140209356415963049992370837689162683383352676253758725103082947918108306740903250862022870373698131481809950119344168123012766293715148658676455780096619232715323786149035352138434813163544561058181323441179185576901064039741191840098581364592586288339432416038450734366191511618245279317378097565848659995590436907944213535654221192243603081922188005424500451509071076123919586952892493129209124040599283949934469437872767213629157357368038818233703566938989364420182566480154695968545544012486841552676876048507529085539319998953052081439686891838114013832849617466552819557895028629656736321177481491712751422802186918839344260406388821137536194936293636659881818030123139498070941281737552016832573921414641893837690332926951941375099729289202206761021126833654319502572415720281021205066804259071428714925995574502826431148257557431324943644143208160849939945839959726780540854020086101183959523239802130720508109802429007463190908632492168622978374435127132063861279512698632960890074118143999793276660047557236569574726033125070046460622894048954902860567903373760822821186806442331003727773026444636842045139125754980790708066910528339848060175534431014129080777638364860667567889260147886891464344861881289902336431892600821632691394884359129064330226882273288598515827482161278799255966547302710776939969257400109521090071124534657088029944088518726887736956862109047527695896315306046700933346859283363331630153113976692479166148583355776016568602002227022535965005015064642234746735640659539520214078171964667121768198742024312110265050448262640183638627402183442600116986880312897893613160448156743813430517546463273189861865261939481906566315081894342832632300479375739758284820947173850801441327256757759278034927004010950567636151483361826356898723592527179832507797696306187314968670235998761693993920929993250882037356240309121860105078565119182040642999297147560276821139923708025307738419621557883409207208941982267616044986691023043614206341463811491179250637744210403865434674043025696638534995170006646029436881588489754442124561919755729023073796551379037890059945389106934438618371598047220561108175180602435634298918447916097023904113030434095461338931143379992373611578913500437184252353415573124820637641931405109294726670465413743871682665098877783310300704914377662323300995320086142875762149289065789444374592380101258360814867537639104432462142792422007790320391782095645609097650982684578704644877204648562055069840499232514333262893997250253762150689928052717149075197434192905900240218707582994366136153898243571822217741919426976329030748675757885254424923004824451735235205384588747374807898877820952010607447040734132616696212487082877307842188905373307348783407705216323501076122250472124995229877211279348483257953365378424788644552261099651428123010391584513228883366482337595299805102259457152212557620198719933158231631971035087273909859256819177135559586581096176209312514032393240535848319450705524098447744474921867613792531095254791431661760987962614559923664690616255938523690623672854027689800309031232746947231074354640657073243236469530813878480971068343750663979746352287442465062666380833754942735926896981325660421513170945100573180353874286504606675596223142308591909333304620101663424018685017020019317186128933297573544522000913190787491378371825819362806574974343204703661992948402856398908158603967493673902378360216320079690195625172172365732891929170505312280154677647756330112248056016709163996285440237622251084900588119010393236311462740262696972362944862859844839286537770619941935188833188241529000943774764495576652763513410290068652907648565995003759058123870319979046955785911656912374743233756576472699902466915820624200653478344411672496816624297513491568693423771497798783410378992197870626560768724632203604905033626499188447942786028944327947027869236950895867079022247866491049990457410815860671711576108311348388361878392964122706016318483793635469934603963693736388334447199990005966566440858094306150109768024487517076973835412118099280339302696299076824738816827432306084100024506532802999392955026153731896399757077758830983224731331723499681463999059274422489742916875100353332981678999199316118542603696869148852677261404178466932232104308974601267264902552110820819028793200486540707125549848104295910184473142368255007745512669478823237979128813179185312597794341759349544498188025282728855612744136802174695514388102830576485734824170627731609859761642876317909223097099502901732176280716318804592787846012548002402969907035711958554219184943739119621104520881695912789821826236485042191727631103564441705292699952331443128860926821381271951824309091779000409859471549536677455372314130693600681522414820675353558549965131493406881353506096763355921973169604535478697757311094297767617476500838504743277140837529676356204609221251932961048461682100225955498534004435883275669894018197297929310147276899396918145646276898710653100360810481306986046839164817008420336812790918714644364118867839123658205882090555037167133553428055399217044802056042335073193693958157244048711966882576158482139367599544837422119310887102055224017978861012243903259023438679882055338664830490759698331625437277901349512211545424493722867490216364520343502486996867016098628961931347551972204445048261399737842182843302154921298191458458038248631050663268791195331868263881142760845302791855386110597691528175194514253613716355443988211837392902049129526088333152490718340753466592479036734292468233151432809937102917951449546803717371920488581737859259978325087093041102620956597074204216420836942037582046557440456398911927184964261692882573031108372252269795581515851855731551381135829558765142686373165043305319096392543507972545447965788416472472868752539891297415924800246296776694276171029778063382383136073775319708022454315328248054694714881805177185176604268157335426505882754888453522491847522800942778367276043636921341804396247859926963048870713438747482599072004709846877412671346468159527046515989151771168050558094350262209792568275325040776233816141837189582643744440426155118036568526355672256382637346947034996200977936738165010551025169477005835600031933053788495042634432616876033752533738582239961380935184149884970832829432931294722936376508513177658084034753263538992511335593801094243334731767014842584871953149923837138484852183858190746393604290799319782699150329444454981642396203286858259699767330164816864697925381267660562747540197635242518496349541719000845645681915721726880147168111114056224286560276054615961806697143556442055553600256868322503818952131147123817366303598698673536040123656891944194967930435495841657016638877101493416661440450681585324002259250792913962625735105857242573249056682255056165851725022710176526207657622020420979706329438092322768298037259161866294717800389769056075844709596836951594016217666562376669593093150146283029549940067250686497226866904794987940462381400729763392524478040485042405332716910171511691812649620462660098410091065138039539974124118381576620688461908062204248082186175216620506628066215216648420126201258228255870641624956830075792692469379389507959790595025795807062824124443796687076909735947038179256598824883758520783350209872306635143948760423251326231402550026955144773303627623754077748987916158363890813187227485784822956792516537247890639060024985192095422237611219735139280360979184793835510117363561794456610077229011815048777839244911761357828338088138175017776738884517240748380828057725109646672058763513874765730009580728016414669582247492869182086019109645215274872532670494304049610102533331888990714954210215976789559845781295443127386544206021207061004034846516075097689210174764277001796038965764682448370712833394394670185568584488509028645309553255854308485278520932661730141001105434893355299270619587364341675744846151274900273437135875188073448876036263438432202906480641797268835009452715831457167523245731779394794329134642212610492539247617902914477048833330801840869041299863126135836961050997666824075796540295926052084029296069708485761654275545853768694567037165901455885799517310161725281620646549739218604900614615986019541964124870439466900031151715498686966826339136855071635886250616730041339885526351217775322497134855776386699215567716154091780614372706790850625500868366646371000679593228619869870846878294630002753129699515471014687534754753032238338959739626386937855203387700565958668735943793330211837533977910805961275570723377623404659433213060590359441730339482062393163162213081141248026261524041677630580642342098709889527328813076210891991797407016004477874797360769162322539082739696331668230033679242205001724062812280769611082483903914292042943107276350845747041551995848788433685567569946890582849666454833059688542257379373352272424520822357839706402246304257244411286206969290560377141358481590530568536015256915130181788045129526891244583096870791410914619654174693947259307724678996925230171156404738382935300104906790584808453310619031364150670630569012413861342471542485613559746725046775068933760345886833807864278489637860724052926895680284919077102841703833518286912209389017232233389810064786497054093953332106041931774040457932902932728710120100474236201938684615263055015949715238949682340280167961058203525295319995325288481254719124842370715312631227483911408169632494707997404714408955376303635874754404262124424820868188468571204094002349028233431971663558487826227518808781206134453607580582235576765792671732350767842912036002139667981110735792595275138643541765198189323911046511048086362360214890152253928110215980099553853544219501920244692290047384028971124823193545492351845349490557230118358172065321799729691905650046795530195361832263166751048373218332948169084144032480405571322811322831236124235989567014582322883323197199154042600310809291856551274460835922175466672528254274145776544254701808929006088035091457527314429090581860787475652560265449467007141938328109367245696018324280134138864955104156010798513631967745969048136110858485656419758947349966867440328100807308405949020097957580120110586558934035820058087091295275383537866930069034107589795851504161720026149494446095116938939040119746838981455606498390073667648396966233555393217582934675458842135834538235242636712536556823557472999350864640255780890736681467715595535154534059934301346844056023591033538178720857328807659448402146102158644961310068542822853673350256061393086785174311160563723694207448831880400438987279848774169080098756515735543027032797026158198873112510211812455996944453166442315126391763976906881761329470848335010357583426565790130568486921938014671627854830080665954193821007152033000523246526228006423451686395094020507468822856005379542334634894901259448695299311782746075661756275807281364771118792479765112365460294884778628813361699775680514029532917641062557343571548505417229370859682768659636614767309709390554747846184080010329047055966523059174667815619964382537785488514271507425699185887099082195470623432237376919480678032672291550958290477267928812698685305629301511024903795721066213098718896757787230933223205582167636524490275270741322952006830232122139333302166917008495408477637368427958646190684528144478563563758004323565934589227338988702670367772781214906948940842830478334783504537008611965963736020384048498356638562235489045539824968278929017714086020405750419751044531440359396354428494665773923193228920465490371498951768425543173125966334885849038797399271814133909668014990292540572038509751210875040153513499782924326409937922237872315022004149961763554376811630904261374095395754335466491398095210263520451929419999642852677979297085281560309723158905651502377071812721603046587740210898266456289060127048865980507541136401676624708478952367367947119978301352309718328638410187686086767455505695063036764925952639670491429569170843362550456486488549352954482476120118389269553621722864460743915176877697041796635491058535711807557199345523289122407967769995845958537962276794135978386948667939600661663956950048950516112575936524805463462415216180971088617853100428645002090954763517586486318445926626475735709357172395619399722271857286374206064538969315264671636021971322355626106673991454090110490112216291311347349371461889665786062582571982704757167090952659150136089646265290340932329321633192116614506503380933278285478565259912443838864103444688431628517035393771535219941059842583039151231240556308152051327668525924122712714745398949249407366131689171337109080836214788410618743196598874850710599973707106468358715175428365787027833286827071053533971285474319712254952332527760815684841404188650340035314276459158890610901432563667629854607870433656521623457395324618199863686958229488520885853076153860944420742120449481534426081619547643558038277323493117928290576071416350218698780907933395578414440652828832891399474510447818486004642416899573811157363797242428976101262402469120772289063629723414737887387177611896598032700668717015023378914877358979427900727763732036058328262245478743145517789147171632080825748623509036753555433048473475385171304096250440087200554591873740901355379632242361743033736817603997816239755710362613765586614215757480226585342582126600069920262149846027219989907715091766273495801807033448649319127349206767824754055118326968085207410818885545122267720555027526230305239155344619305226271942206369958865709503837256649376146465550242011453695835362791826609090852473772012321841390552354600086634683589774478177745976551801937769172864493254636244837489964322742074019405694196889813413804312884665899688601527038652126033453747784329788137769753090697495118344086961628731627057807967894915137512919134537444236184820709581559759257977115410042684054665967733597098249089162234645257461941992871083810668959074501013952949527635283618291314934996835802037814199394330580201328644396132184228597153642287845252496902177655933175692484197104582990040647310377765185951198519010750640056260563794431667872418141474830369906595052455450153769394058512443115558790639380782222203148461717145695303478765381649696609849484615491200141404952507607609180995601724678781618785884080788938609564550492613680730831107519920326849882128518944862015955821972454722208371880909442255909671151358117427443409562157668114988182599800520168414667614503581302696565438610357758764368901537009941531667977732584964061275193289616974392673270244205910417913493283960741134140011454677444404028553750898857284047488601852694395776769300792193787192328034423535255050871965196764257730995601804235723951022011539343299247750752736986693098962247915414273960230338971748564277993065937059745997432711256181612247359776791173368299523334351328004610561695584613957482437621652094065668124886999584536438369213675881470212442149098207443086139839942292278496031758327883226715456433964973524446545237564022627682476361315651298365317034190401279257134726255008493280574300398955625039010202176977279328196513559124886100294601268915282347300027446358454768926126399311121942830286066800347145273579768911066085361282331714796511013522595645373548108193046725092117460328972062543182327524339623679313525571350302176697971246670394191496635251546182877515489298165561997377910799246238963626431787433524308047936777360679813496308357189157224398573750209400043652296742016709547713572147797862793069211684293930302649157211440379374536454054000863458216584356594589307461988806780792796235339440450166319756473378911623593515379150296844723917062874296137800098978865322356528009415546575200420039203296948372618557849107111353297494439477692507551166064803890584360680950731202346434050576866362029860742491752020537945215271699326776617740888046550292061781162988127904782923615410523671761218492096039701137523808293226099419297674356184146347698219978511649536648941005893498520357228855366557323569143329215629444462832256076924011752843104886131706894963358244514744836363546385143362836237752774508454581744059007134878630901967726578774303547191071458090008877884646419960578155745539330966356402110645298702473502186975590449621672117914261370877902377362230995678969428491951847774283945977332386989219344660014397863942039191684137052117594222560669062295972049936400636361958283825484529417197230244408874705631977676227178711638634523300283370257022245997239442710646764522845146329764301135263937401363478592269382757711720118337470732060994349194206596919774768237690575207468894320748232208579085433305352030648951578977238382145225599136712200512316868917256319233882895899829823474829718315454664976221650057105535684930478301249417488075707163053390765673922536822236880356347462852306831114756425306600240932505294620094075331217741692521258093640132059993828457608057473060352317806168055604742893779947447009287343781222851634049696321081753789464788294883968059788329031771707398370301046776074873869681155647938525949073302572582976681735408980542135325407719547485638149075493051432310835203429004927261418373505689583621295190732277919493578803133411124197770735146238180259324826300073268555032221473274339987865156543788143492514761556307755806665457550120090908148673608401357317448471734144456455107117193619284391817926961691211609993608410473835421901227409189051930220088047530666988282256836503580363043463399535233942643755147387110173817212140417456295432421310232141783798822530295682328853490548341624971821032590575319750917669466332173082782217312196504917917675696766083320929719422195843257914104440991652811868890100340474017931074662996900392862286889512323848030676368857554251808550629372659693044681258467096783092442976590195432905048554660267336050532161062369360467870070745229521617275958113418294712690405609268692562326445121174033939696006624668669980962381214211876404201946111346329111130116395578927978495652480453454955699010806732190519312274272709864184565320892925923456478002395336977788191273549591916442315882467671946307859847413588072820573786627335202147816644706021280940260101723848240585926484962801596386881005536751478529396439171682668313307860662296639563112939815196333189014395200781086039194264058082653188828346510387971031809021646313957302910841168951175350845037744952992286489244190805027691938041094137278255167064635566611533300051038461310345715973496549682222324097302305116993184783097608419155791547839948824293434337037584061688528661540266958522466236358064584791887136128850944379004677241409965188226315499945660325746519462258310942024038986628457842847140781287814135745551670903300530827113726938253221857076407876727850775110867064508988253990910509844108692449171827295021520841275274230169915486120275327348999013776866072343378513602085835757724332042463624821832936887918154274524152079703603089976811108653267166289455063462036480829546073745956095950102752065278555951332018126731364673703929033705753725540898947564154701589893245053531107560697519137368545719325507363704664959633609467545805286268737821728874086801331267478506491427091674557064995201754342581427023935042046440718736086624858498328097453275789662760613379375243007316126432420650108305949128931475289431655000189295392811869448436883723972708089529388420018292540663203786677110740633523989815061705566802029541989918738281909912906360247213304396712568063599519579459406712892151844564647926218283373525459111959519674859040982496246883016461160584726795770776349777216652742736009763113252410716599983593167200199414023861293018342917726203588298663408094849558452492799488007680419068862893767814984089246813703652336956650831272964271507848145249860394095463529393346557747954515909937475115254688670520442226788303417666124667686781236817128936096246629633078901359364952618476983422341037057603564882085348653194612941611756412710606428473042792776404625868484805380663947875049520501317604035386725142500725451725050266526421138218797436601572747985420408203899290479949447123572596203503245165098492153479582455567669794348480246480587662807517672387704264669726837386240299395512517400116513517973043312915340887748126806550829479382102534088301681783219215123211332235458576760205658672702924495758833372881756089843619485887790194628556382270923545476232241964007665688146572740932142755978290442103589848305223806760901710445751702601392376613071855081819256812645423777798909921811597952377210875959979250816182349310148165160287827015826210192689480665746851295673426744100736332214888067569126838967719376479320203403463606412842729730671793794634521783197580912153762121621956480590332064144759283254011113449070558995020002440958828283325542538755128058094535027367405930408076560079762462184201062063665374941024254721056196877401766044230373360654818945879220149335518660934181379093197712376606836755743572364924649266472991103075857041930661925312726873826864272025606622114989424404959212907507815600611322859071206390763602974190925343654842382770146718899872196782529161832688527363165678015025059652156484802361252764251939701677731970491220442375592944309417855769307875038328121944623959603458045768359132800014241640307890720354830808041353838585374895451630245646532182679178700249919237655711763660561386119081649948184939311630880228434039366022845606401778561501479180768538269105201075830375502762263770425025556448408632705211512288198755125242524904656717742852478974221394651613302360346774007680597598943921144530079675827425567474237935765301947940629504074299594807748724483843783802374164098862218132031241344597062126890295854393630516767762539542455161991859175036177135207948411057508560503437703236603582660769429033620526132061823992952543695460293771212367945390150582212697423045102142936453643892382900055635587103727771427408442734533244349655934632305886205232878840271426231571426970887257845320538094357279852597030886934492617903033094845061537332123210170442704555441886529964664430827598464409614249280924482226713644866396683580521521465233889021455212809486987462084765898815345055657902717597869914650739736104679923509474184546705009517965551434913170709799266512969868023125143457333159931391599836054265305107468900219860786305888922719348015305219419970643740936561827423144303793840805993568815464222099391636038979218779718549794156617775489490375272002635105468811607413616507389555088647973398702872305648652274550669549808913523970923029970626605281349504449898555220801980875088818474714947008894794032159104729241903673822696404702139652603453731105287842350819334126071854991306296021802345397625468521983952612608168698477026558245771296857615829477665395261551580374988554942336040236621866865169372095596024109049548442841901460036326269520659937549446533308332274617610689857296414186054045927515916548211993619249006070078151100733758930887687132763942779605191661602022918657663051658587734236555474635534188874175810610408444507492509473372227438092816145965000701867170680511172769780358311373706436523490155720580143108315346990883711237263487161225772803623471334355507648801184736469402262503240630815163326403428078253658781764830590820233158012733690425291279839176780228498385931582502957468760344300025501604191957900913091674940051229856538094144179409689012830006170331306142791383851836563079496936007922489003680020506503362756299271053731812634037008160731410541521094479491617197922495794502152686286461484382713994636512652602290209828775535956846846709359244283293661086067713410530401921573858419859750180722409834432940144807330145825314824984976303501563444014343908249380579703257114812403538781597212299128826721600439035216763408938370406599943698238355310291885992113425962999637743820465430885472692251729891878791026095885698606264887577579620107822543084155123670140893172084820979690208616921543642442978691758411260594578575882137348044828764278784960451125010303767262629898072220651195782615262415624027023106144929280541138655035126734235949153151830896376777075501408086035362019469509335824630438099602790037049905046995226623597771233852912259092032819231804170807744857171783446390004363587277130462643017548266467824546860731345014315634965498467281199230795394441671704620411941362106359425999085492364941634440204660949093029791082381038572962652041937231500241149658530813880907677452100137455681475540695545817338719886284640059302026105604909466120504102792931597412000926189392060427644879176582057104248089004620411534665771192004391770639062134407815416681698893552776017060045809360235236580863607674522717031098205894710338692120707808383657777944750706365286694090473701704596162414366118792591670585864855601498310918121392414119131483386614457012694474625949601633787271511479584847285168909800083042266467493778448519561671558658178604191474567893685264121205297693575154392321149566343464346382340993484376205328443237547746329321404992589835053246207115107507824279803663068568869906758435554112165845755658660614277639946986555833231289679007115491318595654240201613419509487218111049002440218685680089651960593644919114723662048830159392811298729557669087937334331607965393883407761738973627393035761373371428706564229818251191397256604912523782272996075367643017990532649742348839232799125470738789284501465030358489895716698584379026692483990972097737158916174382642779675127110446764442910457978962989152723660573604599419536553811256636149413649042109327164347072433589840124373484414511897400844922270506885405360577986037523181083984837130112920991969359486979407665075344960657050345146135223958268518109807506384944188502220717597515352343573757143543600112109577373972808234737912750873889420434404537649928793415667267215727694141466109547797130668473460456021027814867953919428913200777311283387612777291957842750777987884938136781459586985262096436978208532257808142350804128688965072184088078670538905186174337656607014723629354027427011079284474228388508595854326965469828040869839204465175852915937458800645129133127138206633557462828409494811663180777188090502482124063899817072948607205662491022290993030996806472626627226303736349545312867292903294265240308253539531443315849395042600085037620646223769647869225672839816744527735193961214465080498737766108609480477676072683774484860004509069468585171095582504029931597585392385403484435794541706224625351401056151561599833930500753430689097926566183923470411369322059838650730182357832880849384253957732796410175253718032327707541602234947288868371304723755243486404025199191470474628247308032397369002389741408782574431770801553092555990884356913544091689056409281232356131253052457109765227451006680921525910214967709480031252024451794154151768184300338652869372228124665346126608417950576932259198982604734679544284197116767172822527724622458176485546333692167548581922262041225464588074228899784789776078990997341133727114722657483465237674937644994173359730717270664098058678014819939921462741666591530359561214450604826149019076576428863313987730386825780953674892182793107876672697335618493968482610561817319906698044657110936254139416010949460907889736255484021210847395607375741874325590374151843496577165563154413643783862025323555202741910705097043488215846803926962959400787941753134780698522056636390531091611518548043707056691616162907339399348493809129762112714463858223106666857503996846418084226266027760290869130748134451285185777887830078736424228279445627575162886116756290312604028561081755798427275427860213148117325462133817289851194860327944927968928097098234406294594968820801680677343022997558263647425049440790803332461280721402363842082365371459373116423482064536326657477245905555335665348196828050689471147080873701113945911406974235796569506366413780164962348250242438135836590334816492986605923403136202788301243645166900025838496314623797413014699967384551483530106331457031418921442562044269160382383883546738386265796628521117102370700966824078370906403282053052566381702807794128398723817789273230751767388294122499170343355724889639043588911570879216373005706965441605182222232270375928619920647850287442628056160949211582636663881211931481565658479655475081251943879362786775169529328223429116291144844011342182396960897591035205947798400763716594600402891401771685994869436160416234079759004198543403745583519800657425534982653595177171117788143937402138694730732906288705992801810765223753003927355711161061853122774981360008522140620043832857999500291734387267138032322465850485514067573556324854092293984065927358471074481558666349149742785203354260794372600870122742323585451649046540250919764674529017180303657472253101613385762677570090533324571583244951690030794156466717959338700830118807203224860677597215153847893578712806750501246761219251641421559658774870720724353721304418804231324383175675181356612217783104866132321881462586360586246391059051992525882025560987901564822016536082428731748250961992654018392586634236982117739350356939899285287933937758537550351947010810582553413177565794232481015734584877989946474351866531985892144713802775176443416762009980998573951909897910734587675025398662652273727202300251688078229650949268606252546309308681351818315394544280587539034686284892891942932676471078506964693347729819206119374444526420448865537664818159220837182955802375829784800641633244139083066567780774877554855902360461904745880286777310508299954116499726626690834324688539510401249950432389363288748311845935551967968767043927351472585059485483491525091634375117627710246249223067442559118783037104846884919825210472991671153986456354064105282472243327031273591900441342499539908025423980754034932356128252659309980679576927567020028103138538044670158461652262254396782859379190067495635589551922087398212298209066947530721400537127754345092901833827076925898989482658775419902651453128757518961688344484040322035895775294067448986968104640412203420254782202418475596249191421728864929199863197608190823843656498707931748240291295352901697231451012062332321825099415283208559465276514352238591624818178784465856018527541012799797418640863984227617090770020767361878969626394825414816077873871256464725292439162983641551415536365218309013176705703914529003915830742147003565613881457121463566565397676552121479500358186696925110704971639315949390439036426348341095215377846390999226561226087568632152189134848880370672813138753461095221931354223483524920645154187957079560352408852606079988069857005519609592479169961404014677397628087158249127715740221769768407403607877174357257365407957175682815394703072165349785516078874859817714615008709229951572437987187992512228137958668715077942289489287269785049262937334124371621939268855056272005858755988750377683173875304561391989254499550723331579880151199347676808404645718367263856300727884301906271245955959539225865676696471269585160849947762544568795551454343363825779023706948730827707028843365439484528376284820088521302016056968973050978700505102796482718582816618031608140970537050788427726276292373115204691853799219217121327895150411021002283583650092302910648202467204847593809193027196177327110948962436628924090779213237418504352139785702947843020248220931594476972491812756049086263229243374640798317977929376643984485561316751374494668657187798365620722274720948983209671055811680105646683194902894115256854736681139598403588462040772214873030358701674314398372561161119666299913698859742421773974394593824753956722204507762885736234908701892630286089213905114575208465218070824713812005903049663813744049980183247471772939663878576007255850963941827265000189795275512617375390950046378667703864106874538600828320137826420048767662163766600273853434507058694495014399922636808523416687350537691153256601524725523870608538800226157810099558217066024565744561724436159212840580134419452071729260260605716303147347074873337913114540751668406762085802509168174216051841944679893267500486268141229060260842137755598938251601438444880485872909636016417462426266066226476899534676841183439430484775663858098291346720157657641216058691543723459391337235387899903198734155232137812076979784209620270063665373564960045066398782455186839590231136748229798303542840039416349028764066200524398146309420312887739791067908578422060680707147378252773546696909953952844381826708947260877514295756681694820243511990512458842779473663858565526229588428872984322311210297324867514489711487767937572535324175208922759789648278472965063601094366720462028984405278105615321342661385660202985510730913317372932955149093182255007223522128710443214897239162890354559815923288632786379019301675434636408343089802133955131160403695717350787140571506567542213550062510208882838347060204042003319971530178464868724954916459818467108500226937792857232737372479002394268213188871516576608602520027581953568033945824978773475534967286952517375528226804121625892830010409373367294547381237352799723819167144096052970921721109786408881503694137101874222684786404418408415472806472612547625448769637144722913628660812221171460144228966847447095772480486558210028198147008575551101834000607288567293830278272303509333563138017638470540800917119676646691617366382300645250077069992473504097557105295459163127252876876242573925093434466130989125915634258716927127278218207075064909008694770676044287443685973184597593217777025811709403009934440170670644154694685307936032381514975496018673500881811875156875691200301228405983063307677986201626697157437940475456029773582192676160243978690041489332366079860943267095259356126009627303151557100034094894812724437604958140730065015252929824485840076866174475092634696768737249039432213346789243635107664195829634650073487364977934067008041468908938399016803684489918291314089585729067146953576998048569895227873513166314431027320561898762365296338829800736997768756197443386096633619410411347408300845029636229198908377589667406730823873445916316223188255614173521712142430401967368323188875709578687914385962998218455144917111117697300760390304681313944421483406900521546153780559211115108420545223821363742237367433279747826475783689134203212696182786722475448593325086829938894030833786952714824708849391340967791810297285639470896893408401149549213120799004803775260607809585866827392380682395784800001236118045837658062399613196265669083653784175935385870401165751506069719340147680012599144110771070131134758644483618282649462773662198523482596727106616353286229605491452828229027275584841672370461079627201785172634497182473282938935719032733585805367718046689031582851407022079811722497961152958986854943044185913398316588414551521840428484872397865819651146120853778111317317842200536245800375202360978652593940533363911309025117335810945990319576667351428832762878688607846386630677721460111798142276940688225328793723968002864515736042108149427348613714809281563945215143523508978890339817147470330471909526426479550571643036754978555317976331407591604091988500493023801403871526524751628685504280470353244311486017716128153381006624260389394493669674662062971515200431376211552586109353132258263849230639773167621112609968586877860783551690603236901628167376099532501913777842127411928162913475686125639514379299781589958744842788464947961872900139699500804992492683466874590352406135950786349364993535996630555033528887707961000181987514180558136194541180135312176595253227016701859317895141228937781012471412102038409624350649728032595072997710839859432401147148246038600505786210355864764592283029226917837532710120417455018477981096084551747003235682135861201871845359821261993112369183627564077996954334111589327941492626324774724378951867465836411876231062452322138455840563918640938820366840053970206734103169596414722128519527007082168711616262421497677744462208180634784212866352802035838766642110077912230613512437260534415914619124817276152710635703320905195423202407065886174759349543226875174216371069072863059529838901990128739380447176278028571738429809324133550753351424734175567475798370039681960316401296241435084648147836242491174995361404714057068427715098101376888618760510943321121405470066723893176800485654018221104234220790025891516497352469153599967213600051888454870309552447223794317627310218633914393271490646542280768630953575314292974100037683127385399481904553104587536509139941767742778824806373020621717759017564851904396220005353373255662791929645184395799172004212749806771071485670468507412546901902611144714526544040881991489952879903170124312258220709330519203749754129067957172421245799082431642649088579312027395170150158245669207586407244320728770729994740640600513662827050903555623623883024716732410451312728120732775770033601497233139423494662682880954951089650758708767753300497024054661659338165628345270682108659415332246053315408179899887428113970896951920425016553599490371223658115109605741793231145152760559830617312631936139949054551694199607013335368096375861063313501554674248518419997804539856164650546355025524866743336774064661049379369322953470335394009659956014108719525659393722651947273820121953271986399657105863660998465801968841269424261148273093569630691202046838801926090901827841703869677582931842040360920942233993516648188622549512756278037165414951749140811302394345902267851858532952034557531281046304137077183921968771942575363382953009223697553278850169446538661242093253782771998668053456772730960553694447450740965109997182923684607669703751003209690756027291654226623938420818513679109102585886234596706758898577171289653052481506560041809353614906447145895455337479449064401840630602430902792846568730755101486042686275753386238748847432517024076915622629029951455556726708292160930123115305628701562534321356200741754099685600732106774399295761246165156491629701240625588193124203060312407098820049318065677630636767508200828448699958442707631889809773837546824239923993666895891382120015886942647729598119544386006862268474707120221525046875939835233759080062675895896203520382712825555469213072041991690896339481366560944655539249111618768535434997812552704996008057223522545372441418344850594810485861328788058767639540764114678971659103658671069752088431542540855004121305249043208205891013308023441795851634511143228482197276175551583764780338105386434428363995499842033647804954819897276675814576588585146820795583230884942498267722281132821284529180194232062452873689551818175557931412773687952140348332005535335531477024272283878546101293067546606174170645297636559267504644825219028669854227197484879229961407552935080191026836159962710369297329437863300827040582282705340114196354412116235485937869642536168647328863065666492775786950517590619228943456293381048589971369173661544377036828258428118191652942206384342281986471056635357554798005561841983909608215303607558204723154840707405184884100512353478997209139011334924560375508472595751739032323078399063937587051521637658533167062737908025255979272746286584525241013072215165163430927746753608066516422029228999569046457971667791429793125190172046747084591495684856589425942299860007779205824073773182859009404340887078249006953985397237895909515148271536531506321507028384651845106238940046307934664336008418116675194843812104057113821116618164312273300720882938648078463831019003641766447867010628241935443008999436617835146014109919164467631258348520229192106207219827815390342421857864341266682117160531896947408807765543035145003147943011900573190625928861231196124751058159270730122286677385634940260417708599545123291120447283088815846582308563460329148497598834563101729299424456254695256301632070097921376402678928121359866492080868240986429107910027632462890716352185312807095835392186778980155729324507553527515692815438721670352609728479706423983654645071253043407812657854899563390563632975653401885478373434794847725066335230315934603263206123716552365475084973750457229210705534732647493262631406839631362381041315619582769814104334189113621458818697139220946590118581935000342375777345489884697199377398052918662935509182626768490326931943490864371132727806834939599941954842769305824587824123892514414991236338899074890160915387516072613731523687000774990126734439960043289758669903006147022442423149416618798579538942771708411760263744973534099955211104153384400047125005820841699230421579473049164147842341391222595950167230482056751515479476259149291583423953095142500254991329001338826155113873700228223086517912007321576336825255942253567885041392849025381033318765562975114892164892699490302717369641747564699758556083586464695369359461642026956743231689870869438905032520227936673756747272144977259756404368407604322199026989103508151526074018089218153351525251078000951877499011543275877475044732439665436102178720722686466225407296077146218596457543959291932787870076047028928291777339816878418305721271616453410779365100648935526886641316889237854041011099424814094933382657249764060757028447018245688168635821060636653417409399891261908477984158163915723566483151899668367458036198012884160541441908258326631073627850444461406426563226476649751738963869178380876707315145042708662618222657540464715666424417324466781531144666222120121420207769782038861947727054775762533660601557927261184817499834373361680352136360662549850259024974104791348342884176524544066970190290920094085351944602119484921243114766025895908941622089316409924030898670325219966973502256374874759269904652174476643868203853923954216635908125892894941521032530396415251729434308618818756372859712048384731757705978501318207904167225417400027867893191370887096124881743139145302031889502126626911125221632458530545666312385490798805482007162878736983059576772167104970692176088410174204647783771830443099674698331377710579677941697259310673965635669993855829683252669450427922867330657151382203797018481655712473322809313390936759999227637715316062594628820005830580708215928190451020201914840688973752219903613940635890267922672586061887261026325564037438245361493611806083303572113649237045565008887961130642776128540315364388436736109474665886481106747106983210576854038194035410491478988599842347005140795197906416029502508346840451076973969037112073956391723420109953653297981523588926573512555421507525160227359503694399149396697546247247313426327225824084325210229395125619469371877080575356824771607714156328851727129710853103824054091713170600726790340122364742441753361172669424843916135667525827645536105863827054109337148755392652809918303647121432508365067049675274038427714785197962459079823401008395426593228265700913354636464893561014697115325176757490960605344251949148238486861649793884844825428449235826025349661452863873976797875087778832984311142630348823248749628718185306751506046218809352874193478789539892891862347693904055939040225117233043570126699292405313936567860789248310370785502330715935388091683619818177201083315811707680710773425291811104578299105263539667930123291403598561474105726880201217167959862862616143093600227511308725780849462398956843152736880671746357805990272793464542611438845194448010540240436264666125727191750512676829914929750276080034715391695219495970684518843976624530139215732630696081907155613533776667716265559760321623140296104038294779790894180590427568054061655616412099662214065859950298890530711782680638475460820839699117281905364467590534472357548290345425852787237906411694278691612799540040077113246395339559007577921803302990942053014689178475352508154768344943806656510515443835089448777757984818878326314298403174931052078341045745636996715976409839759525611243377765222006416235900650814581848172780042494010851366523005786448455049223390450291623925275495713754168858956940180510944082650746324797234449533552484227511416435521241296302949986207363371195028735928505229802599800812201835193606901035431164367548181045062068843455570820216732521578828819674546527516891058531307396499296650641973379213351955647373076043600562625925374975142099671378021577906250983267694420084798022650879829764663795273985884600323661687449776748264576800734821568009991932718492427045093294544164283074989902966466632015147218051600065115624229588507905698473212178183695423699650821075440993365467137995160586245213584504081829490884788153364786296598053946685498415405348369633181387290080103876866590540066623931559400375108347332375536973313708353105396337091884562890698608147853832099257226045168598289876704008183985815664661953110039404686595200342937127723765556343290602729167444195489365709048462235930232435812352008948400631600516064445762557487199186886651506972662829102709422049534160504947647532654061061622656658344674270158137859793335285912813329968145715006138354456268072039975922533926066967613947743013728269162874649956190941564620602040113691768224951488957791651005138902466756932992967707780017625588481502926468497330331935984585315572915199867628182376374157998369080984957440009475082748387865318201925530168853604642226670745798093482642528305351221974223503311891424097854927787806611484538120227671430800069516252177597134682982223665060590952394714271335401267348156128343708311245981255347969670947997245452945907905747603307546910723318631919110144287344003998941238785281385427740511085562670662593077115891059924653255998565145538139235141423256996565312880005232703781682138246348084178804439653545191361218921215673762421457547579185847890929455117904162145395286350780315649191605418757653094782427805166155994111875895415816488605336362246946027442210771129747536754320681558689828812245476513231381380936697094022584253256966200944231923358214815166638981712905235337097927071474261017723000940863569231131889872258656585192317259757039030929915610271077266542791362390316505319463273651721822353841814023327092317577863057205132533295601581753862387635243686561364162430859024354765084449651910542031722852689332750744096934462987597864295876166033073476268727819394638363854874721138850747038948216936678706735352710050865363338616943562348656003950914261603867885093211883880287939599482814074983248858860110571613643708471262149492990831137685672428932951415291753467039329179733632102524924484096529745356610545307797550457916742652615864995998543798875083759374069084496577175447475256324522056177761006732215775631209165334605932695407485204435480550594529115415490710125135772642212253370329962478896114057869759953998457680317275736097409629380683639799716006913955987470648728092089815698035971302530298714904331949410141405349529965113832473103229886600519454636419982981078892657714554184081181359537107119234911003573001906219170973506578500143326704268362931233618758489151066613493323937321192983689740468679487774976837801207131266677695261427320101819343876430460967978089202782432489336329832569392638828850609972442105952501108269838062762156884048832672088924184872083128693430325213535408818847656047144740143909018874178217722148123451915546120615195702785193780556881591512912134024529924474182079710626821990485194283096143541498269718275145372285164901867641162813348394391412109035083589417500920602433288383694386491817957532092069127293161859409040128962847322956397689422910802536340166098318537582538850265708796168046510797576888309160604501021520734150151108329854497873231413160786440944153729329857170920670260451042498252165817693318716449080244566214401807913570944034737866032398008070880507312777783730782767300462014585448558172972280588059770859728634432338414283469213278966726493088613267387879964527148254179413293080114987483384690071942249626474306480394341814540791419810697007380096683488578151109325312470657305707074819164553772666912866439979547978075350698914918235930392948830766808081197990541291040219347339636231271483880722384986219792007088829086134857267999208031653573894182739785820895561792805361589914485092063336089251082661365042552837669783274705400862878493896209633644360725469349503262928524769013105217272174702709425380526502441243602171560756953618080367409190329289442077709635121946861143028429138424366751481624944265331706172695102146393851097010824679191721046365432585005158616252245796554343630121161361946508234947215856757305304359063637280178531649496118527328575697753924993158553351687410895122046330114619886146438973406801573523492284646664185729435946067224457120410637850269079814839627061333217391347079138071701353337093993305105208337050532991405932997456801787033309829099500618824079769934141796622509877069204869575576948004037624886125934580626424050762136143942898959750411631701804038397362384120500440277724004956710930849013042803141722567018738705954127894284946005053818855870140244616765546414073910890072796683127121292984030737547943063373060864552518576550034753955396650360353007103000048029081811012498158644703229893977707398124397785187128882116260077414565687856544741529985410536844450533952199828150171515672587986241603520490127114726803942199578705733606130999935912837281148527337756366678540489562821794391709434904897763231117347472688016769898333700198853698615792098066676668792729594796067728749538942906722866492152394739811079711946124043229372242095531489233545463680785691059617256974570170234254788090314587362442485375508496858795536594673476452943942912623895307330828496253605737110957022957191562745935756565348996719440284539993435282936128854924617908642576422385441599109583166355124359049459949290245634005188180736858640156275999777897483493130834698226203355504568652922636153470398219418612062236039532760734521650908296333461263840127793829368779062272785163517365791121504135533873448401211605465477751412309375411243182865432058409012172543793960312708908899131381630863773497685728917682817638862406119524873376558530041631763414998153792684174956123227259025574501255594234621701483067020963955836270460224542940497642972068007433379364280984763198315269841104248722111200326212132644295671300927888113267328299184358961463134511528884645597837869860803130271249674810548413578162771726573182174296870451027800400643325353827209714722321188622860997117480279261483972284973823773915148595808111718473808647437866142355912856795422117856878910280754370452463286868021608662244655248088588254531018620664091872555077547698537805422823789237734679140055669152672867692595400639965478584695076819079653013814600155645387618075980279351897487140374090721045971411057881723551968222603619653945119404448104598553514052820331186645644230813962516658277512760620268521354755920603434390956790677086568583220158206683260233421683411607087561527799627739674968545847982939207766734900571228139134349043939707237587874901956393142589523763580797096318554542899930876324610660302087829977130811305109549344022525231972126131731524389023438592550172563029667245415176552025320467737235921421687337617187792328375061778837036489111752743337037313400041184617094844588946108610819069174476580454670086327851778684508841206706259143932612863326005088848752896744286116311736920850400763190295746102998221014033943548708348454900544722070419001977118563614418021617722653238455126718214483433197851757912901011045790157561939108690407896182489371046701987556150332444218634996569450783463617105620740584136652743075447418220556477734880932498870346016769113175357958469935964740572793620047530033782157741645440472702861757136042937685595397716299671520589255339363769904981329715177933501509372256010356987835680625694936028567137089389078400029548292037639465799938235764040485038190983223151816292030458243585963011493142788819268454512438765518589105421558262526306175579165243214730507946289857760336569512122037604948418161569889377642970734732100765563656152412746380340993564513751807281677473746237940323392854706211252242821083476330192358679012468252301859376660661265102967414798905455248641827208706208805561613966548151366419594903967906352082866309605592399289240713217478091119654891312200146243828818432111772072182368450145517988892929659872977171155415066879810587477098209832383588847790590165302999399065243910657631280113402814706045717628575021116427509590137624167974648449613550994713194356331610508346897056367634566139022145387015528835984909135095023250157700094761919118337228528574057591383369712384048808971613996611190504798225058215003409882507046143764355145911023267730059730327183105358220781625509293347586470145924621347697557587771083950652071465096726855762562564109595434316320822550502254614020391523902964930943134850191426127806262092064335868198116045674844440730500781862341216366642851874047351286787627649973320747825178438694392018442229959355159243637599695509435235971227293829065031208654407205839774669850301177582427644867992569379664495960564130450391139878172792857615831702172347516750023310143454430073021459660356478251402177384143342425938786233433208553275932079473996014694653438954969200918979548941630715222451742710789132269644661549550608395876264313818105579740475254309574489486549004610861390266685295551948038234861906441659975542181955267809308848923918588568867042722897838871422549118024153596032164896816054550989798412012322275466571843063559047200188564187971583836005231712281843780014377453183206822799635876218495960564349929448168075897601978619956352418551473182338301368756542754046522005739855947097117575303169091953176255152986368919933746337211917692197881996164084568819774471980989478392661327548981651196693432265290955287689207266056811086006514851015960506931051865443863454219983211357829718881667134748700528172399215792762333460063772406971011279887577420454258603949298521561216646257088209115081609616083019533042587782364708642690727322787642169286017957339895001004304499891646595369066349329324621703145153707806858010626209801345324132665407089793859416503683355092282810628774839912588071105348150438989203708543208619546998447552595619411465320701427036957415385280900961308272265317814716938333385397737392242264166727716552804083291621736265387648209712992723900996373374977744887037740894265331688248625454103923736307725919024299862503457112770311786972288417245677359942265964760685611622307453717690308904538226392453956497910971774994558653500694333808297247286702448879503253169487051297378222778533403590138502830772081080939600603624176258228269947185606644765436611909441958190578192614613514536773342623316249471913035202967996072011929038176077734209116910967703232362838601518188734773694473824335191829090330172434538533479388093094458856820252448733324707220548143256307127795231769649694590582346556163999474540834328688002111120420062418334385950397611100466557342762277475797864741143070386897578863660311481918717114589881983381647782044493944331896945534018454654420845912558361498277290112158478117603112634907068484741265458291585310167260842711354876960843248771612461481665903500773488779729072854106999091381969174792639089999710687610635903047670934024083095511622703176029220922741449437019226688500782328369101820449745986163109137270446425806179166817597153671296320313210290018054659748698296952016719489366547417870108972398017185340142440516197971113442772636294685771002007031825271750220131119238433396987941574971714306083085014457963576437544200383418021194872761880502326597006860653663097359430266112672783314564890555825982903056660175201742254840953498205696283730476978142548617132952347872575333433380149413194553899324293684067401639006881758130349903513140297349057176753938978158193054985906836064872334160649121315417936583997985627468699440004852032714782229899418263223230655153397909158634025013332563097621563971259662141524383335362461641263643379507220698336205974956564913701138470565273508899610575804594847959679829976129013975720116601955230186780711196520743525868664364144655948568064194932541219864243312785664049439795422756486681551438674955373926256893770967199342572101217403779846308081918936024091871108190165420630923276838805515008125921753710174239291022695326516031639851613949979382864073877476272366436363654651817938261548568009313823788633925657975604841571836946890281129858058089754787269621205755788156193638085601880960283784229840947454523776879061888388664250521445767355080454442744587679232547928132957679329879120736699183489703182346539411614061659871254330101267809781713009172610507018372240890463760163497105213224305183063262415263414692790795855435043880885278934817310759506162700258396861415253393184808057030990697464158314713440902417998391887550204580088196306140028652283018027846997162620555709546498625180415733151531711197147049654473769422005091260755461933051105840089510749351146314920341161917359745405729026470424295601903161141350427121283256360937509763658940368050483739746732996129278270611800995224665671128206425280733868251178982686839907127103476198638535252195466611144280390541539518506842452483369459268358587044021337688703560618222928464187751465746130666372360469183798654282259694050885404686518180948274304897316739522688549586519346136886600163325791287257983135420333708221324422076386111641289099235724279799644533257192375285227981736761298154570416803153065108084110233406614859561962876021835752503615852691979219075628946529499367982288397044070157958885491221422135541632039613198476558638707260371740466635090045335314888761396735440373116131878822560751709585802038587120204826650932757091465011306095026665954296580686604266264333307544515299490772401217796065037337769071716680539118874811363717159649323674407920719539016429314189098276016108842091082976974057871768714730741607963470448001749246019611334972404239832260687582632018339911511952304163941770266758603881689915983787862519133675195266897205614337443591887474940756025902650554398709566332204252107976186927340082537202452488449695730357652213645291343114455215086689700210356693313478793410482581121928364865841245247671404814513120177506820232133064538563850270748613158606249447861501393851949638298478698173597481684272915278421975633356068124530702622753185144286261715738090717544990178242804429967998707175641657334174302229366858520678613416730207150982503803437550061025903889954970897117839038448791211591678221276170132496072554534523629477992371348344692359185344511664012698832821908635402052462017967913336232818028663223395391754310522937361233374774756374110881847743566292836425799090433138201989362131163972792106108564176247041937677953705005960054147055497613004625559797754723383850159713544236109172392314548284184722493385445201370028142901288144424341488355130081070517754628131315370571512625712660782562426657358040589108637887468366996831851473535197432797416692997558159410929135743378854245722133801929118853571468542212643291718352075133811637874814135268875684766947615697662171629324494957227032083687762595453947666301191678051567541128895110977701704548401858120495655043072858055924590356280598389785606748947393065467311517796843382411788281774689217623366290003213558276626060730650069487395627618179050068616527151231949441440832212826320758599948489134661419359344521034374083422042880259058978591748912523550559422388566306879165396661930862079576343122887751337222447518173626942547533070185977951843304634597585082723477293511738165005316730168176596869228271083009052949691836792364758357890442591068859124055969778713323195012677122272364440209508529667675969687962596836028630054331263505901213960982317158670491854185599227435363592634928455164151242561201147392917330695137406973647065038917074033026609997461368493685470359646992538149964668044994586768517151315852480912455895169797583158189322018020081382535554742658648716691155756155456494587108760456195200016476860870326069327610659466308299622688949404495934258333312513020391530469712181714712519774162315392154502266809945550593401655426835724286650629535816944377227610619807806016941972440991945288072894822480882629693655989375798592728867227551777753774012732614034627225361116680018454566663032815152647916146344601113123830292611167036324831782628490155104711058518751855908165153122489278458009887538401128647087888942483989525546121793117660308205120964622878301983952051450398580294446744016111033639080211893041103604705606317194274779604635313055632407042037233965850497883218916184155850850223508370155377709698984451612414885597905749079474215079059105496658706447238077103079113128364747118941040501639747745918697956683342713845634184425292762007792145938785409651589555045699677411519178745227027441408350708425327888499453763588419544384765439569749307965166490081421980588694836222175990283458914231789019038071793762553266368383991549963724619790865391084399544143127171231202377306790931757841899587684545425358336402122393640741400538006932310132122221655782444865401978493351696515868187701541771240752280959912779158544555309494434211364399081649219868928029962221542755946568582569965377249381809158967383907829364858246351933298953297000684425762346061905541398973012097932210030428757563051604079631823388485396177165172031410847419154442277563520714095031733442615560172139698690170169157371564730754175777583403820783591234998583023311482998745271440497062259982941914422409411913291436432821725647543562727024863396746239965535933227041378526321633567643089229534662303464251055184065683393054043383268436604069212976524636522960884084945001896293668175321317318228011792003616807964625708181503403332970148221493649642133881719614945377657462033747096779033031471436572872102068951628690490868833735076581428202302497726966547505345408902454999341447011177817871809161792406596148842548646496499391657661189344447198510441744623108566776303938533661889610651599091358028939745262257509388292354288525662514105527235873032029978171056730228377126308409217988646707467638033551171858614067386549567660656675017451885165626049194810923454376995254730906604814544612640724601185816758648795288320041788058245309406942901022626095117867024578295857244410436010164751814024682626313351892550111519863944411358912040493394294743541229967316832744901415394723989694553909841452383469187923818900918331847091816333374143475316278518138711897715164044058050048676045252658288260586063739196116047455962499601992139549805084152128153599618457038562490050401573409113970632456586876916873162409886306472216709643857117012450288308485699530976502492635550621631228762876224438532129111553533577571735640682865588122018750995195796953809700542168262373124286135606717672078987866673259201321703522676132860669237311669177416542441243339705805692141833365816948636052494528355896041726161076497866792475964699227318418627600093051232026057029669652336975487919553569039036740863497817926790666286068162407872974485844583299663800147494878975619368425041486975208052597291416737764373379343890138005699127980170897516399669347959685734949110892548279040879012124915530564738681901145902535222230414932550874966764338157327789319613982011522962698294451388654162882068617922806886209118669396504821900764026602645890128200534720302560254598601036924444747137106703098967397991257755696276167582817405140705461132351071754059171657435038743775444192770893750242171485831034125713040633975164502325655365565643031744991146511800512547312820078347972403335900953838906215221362888849089578352516409893026844962158782409326347378585876729627779842973150393346997126957518406786935923344861401968782963343539102797462314803518446953815636926155457006296394126027218799758338968307925106377955597920469697481636434113884150087176511629773595955352071235397908934710968065790232506713343273440535310911395427822179573943313441900248145835808042212028580293532074859223309355591809412908133892367352157305424701184165898380171513360385099913260855371293811427646455302355045256318697665083294227171998846762949493270325402715373948238255445181774574830383203253627026667516113720785478200186705253448080559883929725991404109912107814011081074941487888315734927187811401535982126118491068361114546602787619281527789755666830216901129569197539795192182710072763143941812761784929406290626659909151956068438693218843959637317495467947802214108838252629384035537659799512223074573701009666477274896991737601877609874126285888285806193185887914169163694243733584960090671690248614460094202870555269030957340487019994839241746313432492820040725533002536589655788626517166898112571698536804855739431615070539878841169716303087864823915831910097443752352041225452093598097394651688375842244185712336829245612862930289114664990058730165397582357124819412390486474480728412872511034989118771133292935454401310667898062122705988039387635997492946565517452481083169701305953311301269132900589085967842985162204564106781828046547282870219617251547029510715267773640804632068397947038914113124101870824726835454179291912089155292855894396300716156364068791811741931580852523076873258971713557634483389984293919074681011555273900895612570420744568782199523112735810879499165976169231320063156105595668984851799907159417585257329412452398057965420159621877756635420361735525713466690322291715720686727327371480788329658136475469874004126621646343535949594645095665781876126798221958853059859844544707719995502040134772483918683346229466518924504060226473441956733711662522338068748252455255790867816551155485044610133886369022283009812675217797273399592048958709647030791733869515341852281490543611234983421775907350214543068500448514995996267061354790473157256167380947973741641836129715945801745353283620882660193425547234012428633822082119336578361977812161188146827961726270278916472460258320035717238243317742237879120126425470602778717566001205061290645414688237379132898172908502995003161366772257908668689414323830278807908826321557467755867712951527593110343238729061353236548993077311285901039188871492788088714031413868457276948294579106237287942152550820116397018609867403420057920162841968450772918210895960585161379249331468950855979090260324900700770713748266525580679345347016993943872007786624044855826351340346665050319180942808904424237217748128163890920747612912441768738604656854330928746159337603660371449674101159052465656159451242034352329319167526233922236574381023764030103014409377125899231475328534447338072618060644240913486755358125183268651341286487670522718098911713169409867302841694512847671017278186549908123062434011647307492940689438748256642882160530626331234422664748384366042593052774175620906926372482243729734288846038943173171263471223288280802249597866257804758051912417206568775626822894892787046968082633157792246273933683350530106296343391968821330536516787334931910131261720771803776866200626338585254437922312511979803534914827400162663947154748812724901836147051870904635381768498250355377962400890240917254014350926476686579720134974622224978945153420758550977645829773623278517075621413765652061310228243965036698458887506940312236050103493182221346792854303739906553039476258294315180649496911675320091407718029805176169121494029120996582338691369758332084132114040681657768490226468161243950346447438963491506005428915874712109153107760389310132086303553695871593795347445239902867775467475485118515369563086448375640374753385152093967948481783335446098880869813961198926463635182120689209842560911700181448957306602637444676502355260537182431462529662510996408193917256002776995373391697541912790664207238048787328254785425527610486320534554445330483471467142437292385931959604984390036253122486235562092032039560493654924123978757463056436755464429505184074722015396449289088830443962335240276719443184395303803289651493723149039123380865199259340165404937082998810847959342993520665517643486646178795398403410211427389325317657282841322391806060277556924679192692460547360142639993357238062908636404410078117354667621894711998158160257255755263846855167323250027271533787354762926461725488046890276135402605204506766415236057861749816196919898089143664583801768644643834848704980076041578984284697022158852281619176348543098958323097809279471885761728145481051061405987766002816667402126572682565268353770885572843292594148365327489933643930444168509682051992408850678521826656094097015498706112019542435042066190019556222965624421955629685175128671385568957631493897506739563479440381535791097630471241923178059135140999075322314124528171886877966338754489533319487473731890089888810172064608877985327595633295632885997269388163841780625661680024092741669196988565409729720293269643759378444892954763422653956505865717144252785141915459370548578323972190998691906947322613707480855194886802487172422558093340520781913892658055718946499790605291253592900988397311412663776470317072942600589246665272070391090084758730122684510099904843429200082222051891126244344037893499359883710038189075265969889972997068871046658385518494570608707767807486864640347601736913705598730906650848301270153953545090526567238545953924466137981888898812708500895993607150764860838156928220274941220213532964732301216593346662567480787951767412545925443024452615175353072054893631646190531208415497870210728551072316569852795781806797907755304922053084719305717761579018512752686080519284658352749188754812836800899414072508490129985400162364635082431893508651096580099398431248323228627811525999663291345912531873335591722590337419040013529752133468031215474324059806770576228214670893682985190060323727755872831665491973917747577273945460320384923627306887063458897816293526226121272084137591306995400800546462263718211379030244725343436486898503992762777353011801967415201160884097914440776703174262913576133154133292683367292002368918610507117814824051716719614621434496171986225335719451943328394913318952594655012229230829162260799972396639361224182649144768432003129485270188116166193867395118765957312589763255956674357420827104821516160493732670931964981761658531877772258925173246088773626923880839118827976439289879844612989096034957022539279533573777077190505101261450634943792841552746376189416153391937263024150026061096204015223709226118561386635739472665838768766214011286154548689314937735255146087970198577851408711457923460459637407078864883430083405171470582958626348571254049833510022850029889884519129556117100333883647177305117873602117608478300736979128654419543493023983892283809842149523152545448911242516804995015777326897323967285381119871136613507585041227831595889912685138574322464961939767719102244755506101258319297289487446384421428362987184633295926754353362394559721932775356346675811688769968193462091011529057892637255569598486683605441691327046277409854239842376398988633136532357647010992244448080144268581285884682152209486713180171626718297399560161405507670398234433456232279142507986588765896092063240472914781476583735284319783760595328886495304100214478668646948215042293670750968170775833736091518707920545312957779811281659049448454625041039824135346207123275424143004324055417742710350089401759626860338703477394291923963029873573034652317952420353081716393885627090479687474880311749610596692904387063214654675537645234429847228671467307868982825512383165963953542505869659911235240294828687721375860522421794298373093372633588394427816675334383108529409774719193200004710600452961265380574660035611793941243687642357026255517621244754026916530679475408226122175989738335056932286023315490709696847881072846947892879319513313604626110429954012594660224673522642669730939198406764144470295400061013791029302938140480296281255898682037739743977427663238585899174587747041961040447926818558534874948662208650816969107089572402767960493628345062234650969534871579014019350813068016098065749827762939243828157769721564886329246606060497164410065227424340588633268511307440100912497958900166517886389868662060258507907454956777432843288351792406297963228171436218015445198005806306995390598653006590090013606315038678876419368521090415961108785561158663539089123071513536531517473967158024380509160349390853627770803193796644353658467050199781654025639489044478737507738899848294524862153299045419592695008877186594529005043013408006877994511032285235110794457552691006755521529991773544601535854079539724802365235653936886116477689302582901705237189753656618903501291580512204186124408533469527757136566052173937288035184924193871109374455057776389425409038225294321682834847102089842819995472860181970113544663197861151593288797308828378860343063363010349569845954649655231944216306330308494643332406979972685314626867854241471528449136305306842003305101061586116662949552549205054204266596482794542818409919792619155530022670242915793205858282914076520759297874607628581847575866774648021436374553326489309890435198125241144410008311716238272928682937355411245517267239341527103826615086623858185835893798264317145008149021255916009975806060689703475681315453521941108382437047117276798907679584560043513235447572672460178448344436304963001973579470584511748317768211785110295532693370913133786442509240046733594557496620988895160358252021810517029902299468123143371581841340582440166866014849322813824288962208324231072503690014065418774274954402962518983969408812563661068423621493682268133780920660988288341216305846809937309836828267829200258903183637802920330966688322843224828349071800541609019510521678608123404244258176263412667914270111946382807756536060530163519391562264911065533179597726448006605230734125405847398550227128887783911146231405758056560787111700436882365284290127202814857007954918792035163073029780296518616939305316672020243372902593820935355667382243485289532457377836577934382054273097035972439974437299795954477296269423751696698014769896374365826265898884691860224917955026218123135865438753165047520169930316358973797927099333878857073168738470423570190429116606186877200990341460688129578587453980805094136301876436355908517977301718413890733823808462903515638006237642946099349318289163604998394973573016317210002570336871364216065998852787695081319874500635876523571784120020113620342605203120264329198246352042428105285579907221538535941796059684598109319028056799030277043120706300055875236763481929092047520458023637241897294989765210348871622165080209923286939074847018089520341938265067000279050223029274284370861336755211084540483425195612886305507514437492261096766486566688306552151214250227895911235162809627985394537679133525344768394281671530842422011556463698068919376145402889804934503530498692095375682502985876906673451874612770954278442358697692711523111178166671037526708574959488250382990182666451930801897880505965442516155172641688785809784437337265751532410981781299671688214583863508577919972328048929690024361036434803862858412416122761858574548714977879706818666523244770848834519119156679947420276393849295255481461521502447389186187469960975263003738915768527094510854448084647775661797688443473246359637730176123434316039011810078088258637724855207488832469157251166037876770167640520453729173288939213709956142810573790890991084211616233464776162000465523555020124446697195994621536336209686830738202908994560601161085826272947873045710605958429051725917545935406543871500731140209970043600007042685462675591699197786231256505563063665579352460399665181755443804189066392796984611458403825742066136759797769527612683082041550873920151676482792765594141968951895143036082955615031921437271718953662231949540450227021053044470155191783110874331096267627522313525732925638392558987978777365529996855760242152868037427423868229861972573815115913671861802136680065755428216770618815254975133566628432730080659018298949866838242299852201163445461155261116677598805056045085838012203853595791248356593735936596493971558043680143855832734898091392700137456359549826496014234200022997323436732577713087881165086255554060930567040142031181505234278550502432576784712171819898617212461262896739178588338787087873523026488203154854015546723655798811199427499816566117156126192390618397692948544646811401992357059478213344612960951305451011944165540778690954169080198345903918482723580327767340901139165540331629513819441133364698086988491644229759748826617691272389307598207367535260464122481916478375861584781005257695518148424843678143293305235273846624893355945246680947975199119113744357382606859765980817822607094797287299520916236301541090033779745293709892630237092239911863958011328893423147935159310091178847668497400759402525336565099575628125065500220416711859492144219601735742116220871403676108009204961490245271136537694894338073806567428523504813314404082294050364122324719000399268477796256806253442052281218151629048989124539185489700357672394430610595955616969323780374899224231898920084267987618103908071146994711853074318822458992432226802852012928639274948008663574224749801310740973626385836847182111529169733580653903005660493205333256761320380790133217342971930083551892491502786232727603406787935529225816290735245123851186987288841870070534016823119025760158090868498493934847986805207044196960516917339383658664786840307993722872569792306089539590974182526798106817041172912543194746817580510531791548275970895737494315379132914144427200320234517210500258344468189380558911117557841352455109190212832520593874883029144202238299736930523533382366090000211614368989237416382484211102805519912436010219373630171271583033900477954148989307856156493057752257183312592470291875816672638382846257649260776455535291619335656101628026906214351086646263778906315530102619713789135727618587306819076699005600568174234534633248579145000147463592771090195150365631474216792300865052611371972386064932133045640994870723001418651896213145066727418820429045754590496631152609374101346973651903924095962206442960553425188401082461939455914025879240797695779726480553847922933875195412463546797839041917412864054050905033881505018189034520516211093600357247421758709761726038844430314207158724356768358188497984785523575097842308293869044858630795716521556881489514820750343578661987602313272041510820034449100083119591039814997088701169285850753978159238940416149203603065491373830996889131771852610901284045261591513970561216080829126797840617122436483367894827226329377063724254916797447108289571783233770478292420038636072270293241517018983779780057658102591407250441194031868432994814455518503355960086385452915667754974441614215801625811437975018737888729640639117102646283050482472141736225594762518677963925291755077436135861480444571043951266867145645385595923446344546936254541679695928155621485645982478957256818083830801596489092449269361195169914893791916489932777691888317945477959853433632397544048235757143954346691778096426794448491931105346639469720402956281030347568450334051626715435890932971113722187131097270416625346434222986146499887604412998346844500695681654330026316815682084605534651926534196296119241000961984293313690283842948081135419147253547933839039601690421890135025426202064342263405052048931078958250441453345148622240191506641747894950346958350090888076512121311485035323118127802730597970423197357343122341407410405917704175243289516948786105601826493242621808364353109779785315874021501703115845634982230614043065092810759470912328173870228201265316504455039044142789872075026620984516380075526248327147933550374215565198878807987235699280248222582020217724872114721881102174184946777493701716246406662254815288309049897205640047908548890183757008199465064475834283241908772602621854194630593172602452639327839179775969583952216563200816335561110623514655031139353533792144928802778036528224347089697583256619515248346990772691694399238358754358347380455192329593707693769262683196677189094654812136661032597005227685278497882730825853665594982240968023425347593929090165314740529431950573132938448551996877643279197434688236931480143571960507548101177015410373765102540678515542127292653538362917675175449375212594039599263230435827889667976255552373389499842157826806839676056804481427961264917421826845317401429709750612657977109954476079031460385913578171824593146788462295503368992415332185767040816108423537325396192070625857874117102245034398052926949887591530534790767738981776184024762437591043662438216730528903475301509918793928327520847697001288867758701370720352611183235708806146194507235535287102060020323543715665214396878768278175166338877269995565599201673704493751154418784788946238236767100397537258301290042942698521750583457911821198440318993509639955263660307939894419304618457741189016186564025658088534733043515962446793676436826176230964881753029229339029514031281947042466711415780411583843039388829696170810345454524041157950858646592155389029703142673632574082199992290374471373230703480465210853535483749616124421864135060769922700336599644916594073683861915766836425944893678714870465602843191215064661504201101307539579975753141544626853405217753257669280727300699363648122878803411215612118028999974186280109376648839732395380718593831530327810011898079769441843188603270184358041719488090249498677316678537992004156480052567095578468313153822913857638836126439652846645159034231168618198726787715223766482069206206969783357934385184122056559810591910507116806280061608474337373692764908933739682489187431797510372256886875059059392581748809537646349300430164979237235290733832438623153649854667038849420448088082244188128092655927672962476138383790758028779366692853369998120008507182901177368371850920688473925690559937761053473672199878998311322270183611311360270483108031559526643898237934618255146742819356012585272500438011287882713644608214370941867897817988720133711914721462630355397477627118448159401215888028714738280692126949640886365678428911104983235586810915362177257197175174264433603608287657335127100379043224599521911850533055918011246875654649892508723234169844598975580809195153947182098060641100301368909939420647542385338893919783150800500409172228130323305730952297121786827773410850983735148195374314766585996927105187476966152180091070639627408521484414642507131235385344458489695301630498297122628266014519896608196593800580618920180616280493331108501358005793750711698784819650134026111834648615009639678819247183805058859892641046269204556973501445752786304908569687036526896577916918985854489932314871841204095972235247963377130851854228461428369854109419215610736928199988603008486865790066738878988570329772140965717181139556256629675602023496713075139396318611212013855412161739824988449877985646133631166160167364659994462897979555274681392281890689734135272557169886133617898213119184501311398615488717033494516773147881526229182479110034868977477601131814811167616374468543794219311046980393997526830268814961236468875433579736777001495044258598313652072462524880817138963897440937840428302351601242182147322277513082381781486932889816120751729474681941202782043745345394851850667403348882015277479873122589043122174921506602698093493328406032111901018580032599834228411346127041826623680925455355069244994431711491853609110994686484638676484941405086546825126243854036097010262802943700544005701581011061230202821286632156841381432527707795057210904026639881110136436092739979878413273003177520584373362689331423010185100908529992902661002620856883529814766719223064757173607649582816819470104784989286383022607662501022632352678739411346425025402245817477366622155022392277696801671694348077345762257485241405524718108832433017116540285622073015894865735348158293959103337491974542206696417488558737176918488140903986843853075157956238769137976092655268146837387612981700342495745841517478589726804754651980774575649645620713946925717439947977661932848674327225168432811679098908807728636621616465818175320943275737441232344510652524350790569636196463181126476352262242317979468918329246594310526283594621867596945847667623223460068953422001877263442500665519117355869720932727509442561547429510441084027681559307115586922322057227394525419047825443118160109883359146264198237074489707984389786281751277580298428750115624345697223637635656790333080236896711756862388200235955251172553368584430244490589028891954383185746154272085029026563323012619628829193664355356881082061151173648468013043438690525618465213719709311609150123110817902884917373857578136212620802569631457235958658674479005833688771977670891214551304043022141442113168244882180588170592855549329363110424685996453000058564182307127043083256938325244137327006545293031484048760713037885444350512861180801408903257203217132985925222853833188718015227496932818403098654576751196016645211198396132478031448501723000576113108688905592904240074607468669679318412319851194564025697711637358316629811778190957881687604666779275278416450914093178907884963037421467814728372683171170502553622121597499028769151887920215865378286596046815292913973854858457234596601558330542548499730625004123217489821560987688710215996994508275363052553148708205199114972695203285832212434864201044786383394248083132484959206517770954356365340322820030938070971031746270993201511077574782597163252790066704844281545273011533504829158897601499449386341988966397879672422230361564305893477622845459228836307038105328132075590506222162444303802140809310047516627923706270286959675071831997649349863238560275775971074154439035641969358719122480951958013482551082257315065329967667741084249795453151492983513735511395740014928917458215484504483855513908521647536746093721487275038406308642949752242805380581800075588312071884146792703230809413142416535822644012555975200212598235907054090380532574848364125878794398901340480788798199482848410068718111695325136095934754060638937048844327253532432019622663526093876463177169260481214244308859563741197997174704474142573659522289667944050334974363775910484287024694761065017194853475729706501719764455057459650044075779039857986891775058083827734371531056294120108705501356380895856484326028159736329081424336345357198483200281446307612432238248102190830469385843645038457608620266677063693272488965729798033006853372808259752925603060328718035351110516290356820951997224711718457550300102524957191657911698514105553303728757697754467205597183832938817748223542313455596723177079731692283973616733951904529085243379390499271352660716468298525995622379453839457700696905722282127847353800869099739321735617946060134623821884981430189965511995474445446985746356104010639040979589833619129662770688622530478037150711520755658493787219789207602321252587096930403375406322144990827497970221331719569376684550832148926469366106569796190105716243011600999608981448992131597333695655661072688833473196168794018366756453493404925994123009350103551670128755565155904499612965892477917170470150867930349491249438937835488119269071874198774806392046474915296012686573048806631355101934211018247650978029260007263718812645291987128517840305273298370884234237352344663953500132252884647417897122008966004750212543763502835783873174884062538950159701091980910919749783082381896047556934561403664724652152576896908460379082381888505525979902660017124159431091390225844209110071555496648801457177398504118743500110022262916032187607674829180684661972623085758160870612344042392058084728405607022496224337534507163751246222683349107883478403233411044764811594434505831869477925292848382301819816749249654045161197699250406259978592679541226234014976464859315787135883559951603306935575509318393050484939678193561126538048608510756813349753436948275168616691483134116101100626461813429974565824287465421904029166693598596695591181370629394255436683263137387741776439443662723694683149348440749989017329579113626274350008500669728035179033069674203594217478222941027236148934780756036974811700313674037807473802367182459643425967817799668786911062382507119287044216708879915225695615623570425426117316124542655738776399027709780685460567289202502188149488087698035457180059554864885888558160160798276237223935587261049633642385496842137171458394970949575562422278089438384020683632570288295746801695360783325305182314872072345926694680575034162314369647103434504999814810031814190553454791987214473685024636075587508605695768378915326356103872760669066086251288590589042425946666954259795217607837663421247758191905759045704058937178821187104489854036834625647588874109556006209529382263647457278864248651710872989645016646366056258171859790417407425027505427200826887302948113600679557389469871491303532122518173283256560344353395657503182125221021035239846934775474085447067386523510210299936848268068691043278594629130070312453789259952126072063838891874312219485301133424233785165049687624842770151465589142597110901756407567588914457471029849904795500262221577434816675809276237664530858237566577551689873073889554238388307692025714524765613717373668326636811535668594950920737199205346696675068208796719795431177995526166811547155959865209427193919291550015104949944892730581104231080564637983318593111420444503670488863065311671775944928135523456300452132171593466045718653636193623418446105317991738651601350849715243470904264476569751605052022885638240857696364957957149538727715750024699069482831622959461227329577550430546655236847897034856316990210764894415719733414676479119137487480758051139704056890263384039162840773951485325170337195330963930484832542943195523091326446693165357666905037957578490510209803428103763639950477739160277329782204580678195333133630910986454081899155311148442500498952087789484230856829715605288573760942824079160536057264695475965895594588066294228859538772944076818043712962298104987970451750126761328995190047530211962959738191115560619445899592962723368229909643116439588157401073188967995191423922462649300029006394685000356592053896005638540544961236951612668921879555050632536799434150396795253319429356429716724626802332243562614649506192042817104057630563686755963302656362692437174309426166612600317390574858559699638605879289203180457339409387861381914419305322283418416430060998542196627608597216410711650627312204023730197227157486574328437676200270766381771661067194112630715646705995615931277021928527320155519143601163610308040577924800895336537382971528408066003128275802129345593126746235352738090876633965332438285424487627251403947303072874030425570096853973000608304058332921605892764604528290390833346157712265677368528524291806580504021119642187625290309538986489783966873755753566301380118209043719261353335958427506129875646538966401595041129406304600169624300618012165667212914153005443017690727956858675686948448609473463503718473459211026438734495724274790387004304595343423114494637467332035852697803045081944911849379141906284659407413646997097252657533088233221367276422084053374422847568912978382128662502492967814509802480802758189116784619110429273956325574290192091341134375389154793895663913637495778953272320056988041728836217363468988978289210307788266244581680438245806923779451036084003104530122709201496777739755478031786819518280638679053745135545262464130816442870340515010559552194199652789906918495413828237592617954192049725319394343496612791909761070225605354884266445563638924767601271918513175692566161702005356206486623447495041247928918586606582716076297112280759063978802997031872827763463391208837081122098657511068612493734700597530845580127452172898595925494276347527498989789215194547698602756368902469633172614382775015590104883616482835924537624260194508099830106945946773851506205214811548462016593261996730706937164778557819912470805078245068845476122817128952128302551622212381391706851720084959578754951451291771364992352255115433104428605439447946330691079372834055479888611234396087745228982166050271483116244349118589303710635338151626871056526839991448545943885894261526723945976518652281986629762088695309760282557578278381965682232668620903829104132415945346500896612265220626327588082554420590221827147419545761131519758670640978390452512351994973338129468509753140817703844313206613402256120347440217772504167613347457415724238952351138647084808990992860039449343917264805684776385523640087599585006891386373966103243739467104979582068962589930924661120282131458232653284003361982578625106064404929274547406438605017874412352845142530629552434269771516249261976967496505718227949364152811912084042233867118593207150731840045288835128924561254493707673304150307105106761669077303557854333203746553237472496060852754540208335032949115961964262603745028523843983215915650026190606094995673372810732875904146420722466208002413221089585751479159936594860337208912665469731651204608660778185208288720834627745982506263181227054452000082953374746488500119098006332161101367300192135995921907137009898183021695104318222656317810428250278936975058673454360979793421818993680117221165988235787221769665291267638405957953503582867285197947646112494031310782705659499966593319110975775672920850028375707695187452188857412084215492702898478155169338206511817071686680718245241669224870737997546795622829511047725824190836753910443615634573111310832586544538682462179748651086143474224149927782354662700819403811751437902629124160000512939884024259225448763152847739378961033147328696470956318472082491596084724767115034552488742343433358183232605986356853220357096689634510743769078557180989909942842367227587287731052520098632381191627452627732553470259294017668278306013608693651954076330248256435037825225894538509764769464463610407958591698489868973790878912879515206587310666836556338923414010828087233293340657901410450831295335823435786540210993135871132222759216833090158644185257238478520251548996325021466594426727085544065934217223529451406356251122143808671120708843425270514638282432749950457057197878588012387693556153183392605406946837849189338647709512517690778400248380054897420732801817961465660687874521321802397840793386445926141214957719087318130968398256254194191008358181603121427347134233851435141038239513023938542073951659509469482330157202497356031123268961227814816649471453806984942365857603341521400464314519909050645172587957293438477990913207673423675302686488825797022042944657540033347781028162920743502178297926787482660592826380207126818142327478577245029066569190780106068613679777401569185004326304845507568799579627852674939761183481238388675606211397638870517090572866037390997210354358491280860108923072671076426734054680805060923842020491206889872617507225464164018899272736249820657567062242555533787613363887835543669966464171125806983069416263849626295245788514566710496949164921192695894983522764807989810387183330600496950513428402691781694696957803288171842270170063971760061331686296618117102242440300768277653386611800226541117277660990941782855223198016388593701190824285743519924536449112178602416587253910181272025149961494260010886903650900110605967847883620309042130179066266936135213214453184502019740892805259655058327448953445062289969880608586459620200451341784830016163889994715611110534924147226137941808438165913450024055599953807199745233968505225285002479147213280232325674289557944791797696654092842230921694639395284619873312838146341563572320033574139470483548105193859101908675676738847752347101998201886798688340629697945752537249556204540029132914456498635752025108710549163878655442212499365147873459713189379269043585656559352847281916019114050640245945785452740725484705565406727030468159076106522312934498237083497418624646924197521182096691348136812418835430232525895541178046277409502970097669199892533957139054613012341458024274400221323444418244978538917431725066477916996468228697881600084808116498758150582222219001850986747193520345328690558473367877779326635059535756236509476319891299092763265194497974870680037046467889438007977571191525682427576811469478684607392907864428732607340642812397932533948115924876820427060790271693340018202459711517531319831492217040000032508230746014682493459303100180041433422584888969766438844388873092342248881675055406419500197833324552708956531271943553676391285257246415706249794068575086462585860886350060102421969608518786104982644392194794128563535444256131050854456259967727669399171006003985171809577480574718514173686996368794968614128142746861473897200433780330558551505815531792979878048855565599759281703761197800033153412236146636233003574111958415282715227740248181995366960379508201801123891809196304446810315490725964545942911364278936154048076828576070958327439265349920363068298181132691480526248285444221889458811862456175247425940336569275692774884172497389082290975595923155835987284746442968983274016191151355742899598219234648100070604169536703864659889952803955032618916701771517750854107603921860888057386859395721038444637419990243831824363068207912895322838825914244914384664335833053628360813078413242508040792706137221204428439398606594250581341329093012090988725764999813197381020668122418721855417593980071891906302695835910273007869056086578029130646748575744226560040530791856453007449341222207187313647460300960924074875555523005915080303843239213480737255492675604036789640548800698880927680785285453448612829013533037478464829111796776388332375149950658333072486500340035574614779573994499577270427736830987803816136920808174168948069948362367029577536461497254694328178302103153676749662760178763487499156535842803445969169493125055906723021256296576550485429722134178514093543515824568883251601088495666148716797103608085105380268448009583430104223169591650159550512513184436459436148741892286889604119065107941130620960127830113501026006867440242804052522852357837487249024410096086194457175571777906919660885939833007000278644134396320933272305661894859391658082747030567885829868937848034653395455551180136365084916520307245325688105703469000324435171967229041825250169662717069887929191837479092807600858460086466884136641327682335608426053244047385066029813766623998335430409403388418432152659360366571132795696153309432103637088565302146071790855958945204418222745107467758600597257612217942013813089198799301632529714608363125817165048311854158934526803014504211601537257493958845258184433884065610129521841268346371005673136484626207955108489735101971489079124081795682956954578809952999167464350452501700678357987893026100329693571824638489956474789391442552935738933909962482240788953882758236410258452114460067151029484671126029593740460410013576125523097065889391995907627553273541378222017322242350486957127165082427184627080087569305137734243194770567768436912783268136208957688151367745632653187258599950669244932614738928635194630944438409567514403958013492840360465374145966340483669766279042837399971070722312053995832556494985511562059448909949241468264508435327193546094938091410444251399918739589397087899460933547660616575836122896693252241250540842647501437079087511752547429858692503458811170997210135435413057941424420436615857463439732888424373792776175548901913313649661858577520147580962892906440387717135619923774937809684426950761566365665431387746778442928694385922144955110466607626062994356236349065572823823447244687706629201614972032506219937859310437034104948890793297426450772178580880699078658152146085200963425211168403385061928516245277493542864263105445817643935013395118470392553158846903864972710076876621314186984578760710514325448530137764903646028806605217910933649516555221989164777709879053270739974694763484723707214419618078027856499205993620188066603297330327124292599940232837698872101885779583538085748458170317860024275558835604570589577753953759842791940131339449517650378802822017728358939971514001828855868036466018492189748639838170044358803134524743360408922118534113245461759889871708450015878478211691139120344045760141492706359684582546736970489623569030419302702544100051171749583009932911882759560062739310182229768664882672710791068235742463535825543137676333734549614420149603387792697543779147556008393056938174488001093903184907163449715308544115999247809513985584379374808852194052131375198937912987607251440243284317649353568399402937529864764116948986131120029105593120524033368523614565455730543588642649670436131211061523376630329957755103656309830981504534124940047920706772396501968615983683661563136065717412155412052236042641904619254859716233635107735104535949044577428013969815620841186126569839209215273112475888090686520428723899095221947172257136437544142089158282907654536886038379245422665792217174933106614253823267302992926389655372787202421470525935436645912763166793665462904917777118546362729417888584953896134188652596131587751579954405755143833912723399699312416254419187368257723196369327673252760264361332970480588437085612816693263615358645219512653392637238057100905005729666015346627127676038395678376419852788529957806243949792437055036315796441599670319178286387271406378814143917632059473792647441042608273841936169655305556720934712857856106164785977125531882997085400692058185987317238728883440868639989144604712527778847787408793903353609472463774569820180781189940410096043034741789541573578594897483498001142009645324096981918206669313118496691099078063351711065995119133805045558042050202218706744647151788660756840434414581128419135835601095636464783670808184641597418710261621051209534378190518114757586256842249524792874098922801345572206031989193607968191067375787125817755061013460701634410502131030421744672168507972209913371572689458828613807273322214287643248963033215032776813774966051507818666625646351365660602153520733541091942774576996565960197191014512272537884403948843901681472471604514311395650373029964689257007829173368763979902642896327183597037189145591392851966362009937664328257389504281509462905556351520399076933319105476733053719463660436047431761716564498025740604431620212362145097360637540886461156844108741608898809213737910924215184318922809925169942263318094302036766961716749368788026631278581609958127750524357975925347767808349921218628358264321440070508653977095198827920468288990955738039314627247160452174090130716976421851294132552495949933694372438132407963238613645872028367968438953606367742944938063062428099325447538187083919499549917907030443670921591785827072057151812828346967294110526602591710689820102324395784264131534626561363082367491217192550900821416290624858870707895846063531878149258128997908761489702233363157586191382535289054640535104442731788994857077015471675602258606476621618426622432967471890326604880171590769779072556051721653151181828428216768590647888627150586766694416528951569969311594608870331321977696488112585686919837178722544539732130670720033030715208826846381029048703218656725522257893658947638565288630667933368097462448917965754434075104782137758265450120708127558928467205667828653391481500481373324910810981398251732686749347162341168065648536782532794860127901913531050308369935137756725433952985207606444714731889940877387714839897138937247133816384718448569114336269071358046909052340627917566695172583367867079137309748254913457863701871117908051144491697837044405229563842845358945062296646120490021630665118777965895549975667075817791705470935203363387480771989933375075038596722215776240690006484466710949110725914635471969363532390855786945696635742545989265388006988711175375517536222857862631664344734008869168463245608594649784149553394334593568422210572618953818612740697158616489542277333168195789123142694719623429526287439212672183377292420411561347827059933931633523658302969102722216640971351061558583838586920010684658755591759655481081318060299096072470435417212942260512858571192583007182650630106705471012607074055613521875322984977178234655489077512848565379924173200794631956667786530179605142125121782786345559143263042955840552065719447625906013128537410195005789490001493050221043212895049914643164783453844369780302789379853420135732900000507119539544725518350817668248187474524920535659857703462568480073472030289763634518636190328441856455027685903268675228556559235700885302509064855903807737264071003659666680589081689323516104708933410372357763927969060541671440125813833901037278324121146980301539636098749436110349060412799518721936850731758439186899052500792067872800397098359575008611955804525966899936452866675487112324306753509572147217421636201675984742359400014173665160916425861351877575060664623118831942296185654325961080936481563955735333117132713102652334237457010163848630856402926713561324936498780126193776461533544546037227864724930540795427303910957737890143285568891990536110044419622506902252799824378240669234498412911147617531330362262995020899049415600380448814533181718434379908515698672003188718063550216786554136482925460691509038874609909597973068274805373384819521522868057280825500218400621755640655903776874875288527324759341602796787346893730945376010435604304129429492954931927036198827431141307271158042144522711441748367007794789046600646503441023966746975548841282667458507547105631631009124201149755533991312991710281706516505620648434272076133320005173423331803315731971154471916737690111358163670669469469239058574551099408670941798567760759174440210783816395714506076068787475438185350094873332948418362932870473924112873348865973526041529803218597410284531665540497507218906852941813302820772624736738414749412422743658120219572156616922939648556030389019561921047692104765703810040982075658209048777602411072372456949083592062270400570639787177591709303390801073121222721018163876030179001257161581208085406832873980219654162061844015312191988580460508812031175710706636972268869639476658092981739989124906377670890605137068617487309367358588068274122566921321332032492765644955285797925964412051924822642398903881722451172906935675727086564957748247326608886817682191610768164071282829755556125306612325389568000989869246707650153552910900118827394833320239322973014906605221829112955916178609539677393929693557962214691008173287805771093851794524027426022713567485580363460853273563834161676439559930895233193045626531335089350303558250246130265287472753677249487973877782945544512735562237416451707109475366942038108252684864053995870453391371541637498546190046863860527885300718977514752952441883051565005261583522970942211565120438990116017132990094858237694103623939423510216026426771848702117216255494551701082592775921740059669725262638491790999748259906160546215108828401176184279246602241678556567551195472339275910333203159114297101968857333802176838810215396968310049236872074067094136553885763050801615920508553199027030343057095570013376758997417969353586511074251659683807773086208675345557241167485672620641152184445146705495157422494434582354856243435292493719737050111963533133324500183455659793948853059132211618147007347269642395826881558376048506911338553469769146003637008727626241166580416795975494114116982590532484636595531922853930712540789130977133520762250072615265191392581518150662307593218343541240129090672292188872532479803646162604830359344192341226880862390778474193794816584586221390594186832538930704282273594105173534052546371098438214064780823304052805020633775065000737391284505024673109138561781323816958794946245916446978577788157558133046500308143542106082722339121008965705672354236182348604958329857146320747187732313964159048336145720297280997999423956036024975101075383940155897223857783165725339912078988899799604489019809865813689214496691197257098453884914406649127608455080321572877309776514188246767818826097361602979811981359108637235212595104662370696549313116701563780113866662782834137453647468336441238728418487018919373146805951588105059183283752080217061204215640174468878413580457276652713342586957491692529890096275447337257571457115811012452136055387350321920151476359327745010164166093964297607051477408494894996069223674185852544923269755338762233483159129196224852728861360969763765895900883648565571316695282361259144472520172889269411233667495628842249138547571488688333229176439861668525322362087565367219110817522182891190492193315312571604767522627739956754585706721952957343559003235560577601145066560137006016035691294215930206402434322845686910567598404417533729467152001912988221857952779220063541026077687016479672966383641886558490589548681258238172617417175850648875157039785617828783783151822422488246869145728100638995250157184624840261278149391172560806650966839777801519718507570845649122877711541182176676448189733773832962384262990383531505574602904488478058963305412651858428247132553417203537724396422145093138552970191697632120419766012312050706285589003745102684764198660172097856443280247544889029482871265756749023176507324418826581622334365687970444924112230188880123804198233780743194318105358879607032243721586205954399107800629484675703426883375202688986883363358657430373897105210023741497053400030949415785740920089965185920678482988317676749000222697817493540893628166728473571822516635690724510223869466334019213654443677120330777676850257082576477401949289639531082419414762555535512608995104957370175207859212279252303106960597601450444719737081761734506278254594466914569272886154406029900462326024362523698879028285338369203437495553554801749911565192697736073306954941854216895416983005497533425131887875109451982687918467254217908737125612864983995553553047801783046105856178118163148195280088825577723583703799818399666128763787439767563454249827261191399949255569748389327708429722777142254102389568636960073699461753417660774661833314086136473204442802533651671296079761851729914124311117116770347703599674643279453262958201350602674923694855056028661879589087813508037743968195844835936956301754343074830425839146165568587190375204312981805182287921306225343002271942664948598582733423585322689846051472270009055349888795884414537181697935330764231500825201059868294288487089335784776292658223348170718901859010988954670891934406966091897503770475645625881825341687137297429436775262204298607507608694475258750761312737034560762228724477389546994379268538238114187038962464244540461657475747830491212026579087775450107927986743935533679535675114519313727201902193561524371839035361545233366657247485136777609716367908209645191314355304798782288126595505605365601159307350938418996750429448344483607789043560341503437205966332212156209826478000801941542805227580590356771439698254665567871312765619654738577411312881336197717712279579586350661018000437646403722964059818741892362363619080133660033374170709272274146614890356007862699699416961938580038757573954448719234660300474078719717160004107027609878185060450566826700267900105170981932858225429236076627204220915751690028104171685258357178658561607464573435824897823408167500265824775257905430722050988493283762383157640739126798864096530758162195209832559765908316979054348000636002747126445926569612079702589140968620459611907531001548299997221417335269175993108798350742542875932191099617696433779725220412676897574054029425153683604152309233907970575895063260060201705476357069076841151695246563338210156251631207697286640780917374298785104032230793194483998110402527864303963716970110747595408432952360884561157295730630644238975176748219840502582852440793679806068791879376715125224920691954788567926603199590811723634912238491895131659045747636356793346992112980032027445011658184483813990776512829662689079790288880272591873332498703828872539706930282029394732672079133869818977112990846227226201077540686773855632814258580477822377808314762276699319847291557623573701855077413964399827282523577608675272846736251767721614145335815298532830562967675941118252795775343068826305023356525122363367682972821231060092856036751799457292123954358688595005607656900039140876317974987520118020873301215178337511288309180559445245264415707263982145086398999360353348026886437146880804870686976979860760871134826414425356054355480799472235227384768613431574002316527825870064283361472178889857109598838750888993903288664060173428457464830728909866255635956892483736962523626916815215123619540118495066287955486958678172252031287563962717722168022032010173507014264668175469253584829912812025729635866851306374062917582289025184207510065958887731990868073257525935208636886585776707282634652374531210191380684999628583555016518245940961173842698076860868510978263475675647184685456343181025057032862622268173905897726885292091427873728625946674227349972355260515654895322822784069402324217181419935458802881736151098948295814559732343862004508172596609544955522865598803958133628893425814048763845953427738993018218021238805814473718235488612524443574446849372313398705504407436983742589659997257161581341395379586602076669429328892032776815872704630230977149578728343560300499599360154627773011544114133176619895207608013203944114127536012993668057834875128418969135459057057927373318972672738210846864823128743636575644815175493099950840552703812610775453570314692330657835714199070574050208255151420856769083926508732988512838952225676832719489390076184558665617310664360923292090393944293703907381343667811483328016044681082605138276201001827219172886820019330251779821984575857545498964461379827734513582199835284874913675601757880602636329772545527267717762953104250327000249250525323476741893560945504787239135059901036039361679322299916651190796953230773830681001918903435537240909805055037587188123237372556728158703999835794254929301156874273370357685923422623972235833480042887685873866567783163013639102019296315508208801280888701427683243334350314756038552272501140691766923713489861216231472000131909559103730154814834945532131733312567205817610773952870334713667860148446905095688498867179758506689737773176693030434177511596801142872110133955254999111838495191797005833859069905381572029506830993816449312420853443600218935736337880192711354088462412401401941935117868018708052358045656764051792436136940147627067594151566206918134154196293731181681502487494408714127502094614208394757360210974045050241286495976186521168578956628121356095682727930692167133238207310241691925503893948243966955645670719996766023554157044598585385243774805475117267701852523218006794733914582880508126438148656473092851098510368589559486711646186260808763637398835355301046210048888390567469680142251818948149021157720855969199846024763106121676238515430612341943731179653890441803921170253567941542848073632711076589640926477327357634075156384254628072110584682932693639649960959163292950966443253208843423934648340731001304759923478894624450985155654218409969387868607198383711118768450769650915286740563569349083513400067449132371129141916305944891622572222213171024354554221720835706167456880647583685560349122242835864914615382887230880875802850633602722928413145790993020823198232648397684271961690889381135901480759442038558433638267229653900605039157867463423286928577278534382172328505349091348260360215218612289066447244609113270693529295240214761510153472348831579147660540140690950129132350628787624401206042158789646171448231687305774589659200621547869973101407179513567323509919562066940119972444136603448777319802643782602510634100799521962617351053939529899022876564876446693113840571240613781384298818283126577301294156880440957169322575534665565148595265706548068174794133438533933322941488057449914167016060118262587154771120905720155806256815014344568353066038558741853011304227215105655948692894602806653370205404725848065957275396023579311468734553240656886509727160078527380446031152645420570209788242164373429530369691914227838848649559714018462512200071270716682658743257316010130873220748168695738849802490444160832588342641635366042401623938953985295044272842725900452009482295706734082426465685202702347565993965388251650500748579407652550699664816734959205938506670649667940848365796345543884968902773422140788115222307584906158402116767895226537495948874594734694515007677080401318803637666899188643751769925864837267571883815555314526585196652234409443015747759805880020635995700842555758087260132349179600897749182953889312916004888899371123340722151645765310323422061812659702722495342435175847210519078359148430471096136056480920199115536821702749721499807246544585150766368984074199499041584954665027228184131358365948754938486520417138235838929808587947443927547830880542700648273056894743353798570731785926615193948064970302805253095903713765535718499596574334117909033923805870972895727557548736325892965838163820860407248647854659929824211698307557814454367003683848329748112874965754448887649185803954487387502572637107641618671139854046414040589884529276297741213944828589334548653958392291734595525100674720508949838143955569589853681412713567432227005004766403973221269290260712397133947309406723742992715024721610684176390900838751340716189915005877112812741983838257917535652177737851291213482223262265103223907192686650945909278515847490663663933650837669665988837759832854179153390908337801860052638723272202460860978338702104672160945678320420846839603175379573964352653207719505444710287429718678413123369819484180065940097403550923371891848016636423071606355227456936331347257678107966187679810231105050531352720683593998498959298820062461258316441094105759051166715416964491175748225155312558168404171141959670683706864439382232295829288133256713926710851989662965312427268526683526792002091532917103721642366902235312345107681257540094614742691900464705038343678429280688645172942481530492055865592764628074591196920970721115842334013490316038055552581192816412366542246089363974497621862670981022253462357681378472194556400235161236146928709757209963006302299610412079419942096742224050546570867480848290136408878065942043933042852477958780436008812229246151354564259660912388270227687669964661196328099417189212818105727282278379326679446169747194315873220332447495377417724159733077484738199447482810238490591032641354989921294064398480774251066780960454990334175697064923275784971258978794643530549614049656128743106744483253398027661649039612159719398649708859713675738062138429628961439212365428461279617397637702357550009070814737648136129407151288270774507379287133466529241090094894218374762824829783643388151488044794111461066534478011660241457174610658712250068332704127131977627567213917723896237551212244934768080624695465008446292889614343671823937623487657790594270030556714735758565666463473467230760269446032860609661015013753933315402581721114957674648002311778730053519394934255772016512027485043230680610278331746443947382198055821360363102907736930010873824177095677404695487645965620310233454960096484205132418524228418542730138747882852038181450780749752989520426293581081253644690120319783955552280270715561583807650559240053730872014740454707618593011312593994035597119135783434194253220450230038795442605679633010687921429155360572025893743589506504217906941928442019241763686013738394609297178055242102938269935095050428918607049033765847035810600537632396575967812112543720908008881697450286920859195108054430142109476299904064261418032505426972446690096312679619170707071488390966616891335516582040200285522649734507701141456718856013613992292022437098522347811747311775639504113395806618626543729363699261684818579541876670840220561056462601846575322971046436354163259405169496251823163122810713345150526076141619744841764441757317639128023669687277711845797967191733852696644812880116786409846501481745257718199107192994429362069081456843882370232056171795330289582064085282087775733120073415489203688569210535400812546333687157550081263371624255239799243970112948912722376752660207926812839461632675740704650193638909821398515953458431332331622937276575311565114839230788122587380832781824489671605214282742789640027421056020550022986494156816916370287695301217699975917749039663489427314555245815793595675128930353425077476992394336330556262379798956328625708834335084661123150238101490822914107719644853586796039528977698249120906730000402651881013907528903852435276270761610200567946670501825372349924856648628753883457835920471107178875945172068257068981928688490901435146030896531369227825254408034902160721906788737731895632382927163594312947979961169787059132762805759486944787803016765500900117497559780230467846448278871859811575821819845541271606758375480830750032009190062167549655676653032987080553650118754813921795426086974102864821785855371836443438499150926967370997454126851812864779014117506014797331923850880969324379868459855840905550428132935247508140745523906076253055398750258044246677038259827269323062354665142462954260953062199253278509198687508756466644065326058799382824985071156632375094818105818976580188884011383032709270096601904833525187552699389041023096983516307651624868994292652247303145346199744564061636122696382198581856463775146088039860169737132563756412572672287364737477091699533515952599507436725047104036841217779837794226396028798813826648878879137181243177984395383871646223423014280036939135422941156496572633261883338898072728814356710623660820076858065621449408524087393211605652994234052122618113284803963542606580979396589042158171897876206735653028877611570251217667521530571211144709699469975695425480474224345291292275911516710063394048826822174247899649566725792823448450052146353404537579923397612481120783698395533727614089959215373020284930887159757478393278411427136465704562341187284422454505873807561728336336239649111079511033007112173212407568778121219995604242732140015579880491843005269075079602373237136219177750500341644698360789265363368193182475915328558404779372472847513675266263569323495069899724657388597219216347428646278691718331451037456812279604449157638150193723737894379609453714558244742726092403116175891722665831365561020784705740285288563109699812851989037577704983704813047709022308897913759504846165997749972422120657778865684399718829941431406634366697694499293059387256148673220071522560054014826774076830177897003141856965174907994817405049307540920404171415804734141154133273103862664062919243738741934280803742228114169001200510910966047546786294036872194274995779183259052793085800428837102315862758940465057517301267057682919950968499656613327020690312646428564861477857162681573579155256185035555974816057228040627083287512957181643545269886585432955202470478984462807016801681683774846481373036571409423914026135621303536392297950982396065334225434190959222459535344925640055449490793819636498995913097819854639191906389402752922286752747072540444831562573140330867989337535085180672017540954349563589585838420690347727683756122483346541373649302614167590710857752432221827986011393683657442309850841858667608104386021095222630108463932519843417023188624874378842589284764194355003964999926027291587937005985981763954762793359104627939472141828926310836153896060595463042932703632748866315636349069740779222611957834733256989099629623090689395473818549559125494591358519841634149975438716958306241822112492657103433281855428409931768730934107294836626482700741774828631635663476814707630037305283234628926661974819839107708407359618768517400789643364358843310971726099376140331875292497979273133583279230300457343762592055359779250011240436005150716174267905490691231086245165969176818891586320326607184145357263812387365311985079381188539527126464803022627966452805574092670938861345272693280529386481480094900708623598708551439671147465328400951020140279058368603243276046681233268859257934709138200177274354096157039149095297254344820232579570173867261963036098576829263656919773335914829030726564164451570829945573757827764904447870440016722368100025148592010944042179929018972601848386659846453266882990834081287279730610114509704101329880875247525487102870890152688935013933090890783078697907409143252645872512478502202705560850269001490773933219952618414058192660526311163307511414668977307736770623817547970351501734543609917050852826237750555870504610326559631685722011836688648896166776902522747774233435919583218819341352429268920287985793123845610775052788439863032072980462099806604584639611097157848960325732217847426504963451257818222341250784932188501083036071243768438761927654371567837745902759685431792195928847003481500150515789065588097019282500208170338433375018476829579288226900103058278975827592475566614709261362770273194749324993869927644811337553228564606441902208943446637476811872482197974448777105254556982668832247912740230800249756077399010928129062517673394107275502248842191317587257496552624482662825239024369824606995312842412037178104798228849009603149371146030270079561504140650753438142439643199397808185513949225233985203724942856169551234253038364061750029100163787587080199647510407230101055978162215332329661013429396631743838269800898035519563553815599148860275014481517497098527000197250627320584356838109559947645977073725858150297601579181266082316905886752691183803407160645228267939596191358037950292447024021350462640288303493323006233182877937689384139798844407607351749596354004318018791642787928405475268604522078813060904057446185570977467539329349048513572117369083178126177932744514156099522804776145380733676931658364323938034885654010571694139029941996243328202852707366508484520247726590146218954331242101678359252762356837864982521555132093592152514960221936908375744015795245160502672203812353752832689934794772627428872508610968865349904589347379438472661428180194103466265890496366865385906598544481096179520916430804817796175808951556184817817461696581846754369068640618990643273417922237439438263879685400356868999088174736582389169303896937953169263984555259761967482164188281310868615075886284658413209206561043735501957532639129823432159180453038239956460655967508002015620753968014254102951300282315164920021418438528374971500469958400796777183302210149208893354033157717817376204596556171027563898711885855767756883254596388448433810143412606506262695382205243509015377905416068960822568309372450759917406297705142729800379704748151567981935255928766662982180488842336944390832736880149330279650741922798197285723207635355463483023532582011569357312829801400837996754607161547361611016281811184472537174452903708897660631863515567231917094307331816550936204974334494121450577135475955483686109739329788315431662196770791146954902707013815584293651098607072107993638917637834806799043144878780464008417676740184057805930396031863870707865292974409714559511442355011541814261506197562248517143849132327869648139257721145306352780697361764810319613250047390554206509543578601042933829756149981276102826123983462644022175611508475454271193823053550789243413180518949336688931570257731187033856118015394374899679107895946698545391401512192311141243804366799397197233621279341170358957527091118401501910901370482696374457934253734659032982996445908420025120051202632479416130030630247006470520955202621484846709644663695081600288003984746117612454597427467913797091611012078792587437325639503996363828320762331333432016784537628956211881856561403086082750104641796442437550824355503038559203432404673422840866644687968580986133323923863356635789197697765487400585949720701703268137426523909648804028455716224795138808342058024662975631392837727433060774800702967281248653644497478947902076774044878106966334224162674493952521163246716099214066938350451094439744075211621864112079584274551321277764344772113001087120944827184395931857076032713187091165915488239774096633350815642456702423097867056463257965737776747744606307341498184686942434174728983803750342104773429434411376324806682504883611788436619362689487626358299883733711917983173756397999806647857136438009061903631315408839178000424702328749462277184889656735550124260446766960482155329339184071072307690548322751144537939857862901889441557185949893824298597942073277520774809844942600715540172082796157230454736915918304568793857481489277228970818897755536771634065211537999689895986542325268525261169503093431670145846109298967238844253135865537666824377553646768872750870522385513146244751751544281337633063702749458153077087645892669058325860626697635837027518560787354197449139700122584039041595025629320386018901322426388916956609643914834512398586096270433378891274598435877105832112094244688693539971211146873201830660470924746179022696316165080446108376794569644176106084761646225014523802551882785988302443543582028188900634566330351846642026141065267941995639731031694633363724561632892392272348452228296043038614259088498826411404530504711300361743115470249898051476795619344202473180227943257507510941930039848514811390470864103711754326275794633536346436314080624887848822133133065850760106551722487232917875118096052808368413989146775882583758571373101131086775837548313935302727608461867317873936880699834841828284801118196654491623037132518415437209866805639235209405863398296824940649547160072729363900880045832825400068238609546841900835126325545815172665520851551945677986963729494145671288225831212083869734830890801374612558717369925691573985585036288509276776500153450820227060438530525094249332038438372924649952195662940973234926612112019971286659827533868068042281952089818968754032378947255705790128317026956136004496380724408941447366070733697905433282068791184556731599364581801212780559982577824855370171591471518660832831240916274184800229771805036863846490467254010011742488456638518201548289579315364391290771407944561951610886943104010202400826532216725413173453088801871470065907910809528034937265824685513323642237290505557644612348507271286057250948014815907473107659649338517201158558468643797761283945814254273393304318497124004797330059573957761643921364160617356524178299345397100920747403076743101030392023419285660789953483045520073052930400032378511408548552790202468058260409468166463241756641349983450782818173828375770305778803321826441689019836220163438598222112255793607100538086057393795493210934148111586567090673553621536165105077148268005181306996222840167479849714099480043531175986860849564459072657945381765901720250880911612093493466629607335454249896194492560835824228765013033962285267745983539492806232961808579692281801754259650275776698495765750187975411045184731230371096309044994103574646045177788811420467584210549087408428756553601870280808421209394157218974595944726478428435453587588160721759599327574740803258033226870635441248392694779307611427852037183026988092155133439729692788452957746884354259030978172806078356791631487526852519957926552623341265578317730251470745726474717491138783916897662586404444840213471192596863988121510868231265139412647617726776322388175144350250838348599313798190745418788027978059841884010758561601260654423386715859291086091723403626997411285611792098548247637624776568166555163255260105668093916307983165396147650703221258237306673406755001087061680004387847525717110099984755135628366098256106167598888802539384361212500628967840264977852119226327664280154224581979424938995043195921691192374784947397456319673151770054998353616482797447874098358466805261257698676451493518830865988006260553131511623693005763490916355714674283183105337011330125506575289274883706917017718460430595557223149928016858962227883518639242368282932162901710791439012387461477745793930205539323976602064853197066215793262479203713849200218495392439200461719953998437005109668630314394223636009011850221398364884215071624016077717060322368463851940384718429021846122184392024913996379436945373017937510408999986828489655584052599595445297515884802330622790779382959647961282771905634915084231268877824577700413732122379093693760495735675228405620288094093340194841387698141943748338012124494081152773185496408895197843633388350794343928393326934485147254777843877424851839641275481306724836121227588392588709991084376325534724507553732758086251289457580725712736542509441033668247159943162436171893568828182203367919067946342970435819938242288691654162042496966328247607898776229013261722834573558767978926546760642085579730089448350430392255407820491613841588420656930052871588013129330211128278869874436409524561979151996749228941328397206170886132738358759829339852151556300218597880373707240198026039404254462385921625229422970389502811860871712740866969751359646033196664627007940720708059959201577082427646561110189492148255014249386534194952906168350491429873784319811972128285613056808853808444623137433929876334592728971042110319742890585816427006382707352392782911807933171438210846457488310988921810628498214385528504277151657071772932609210310804651883438967405976971606703367220622369120481623845499766494809016717786559695775419205311889162840841271121073951851482140086078413060874498972688520708119747322112100133016503646986249847531778295431291608853216832469345592176062381602384483352714303176161893284707266899609401551798473090491027495925431529802621412572112082134843585648533312784839658989410415873559328754608511079763398688158444496952180728049668952956505502029010387849927381207173614854426417218158727100191525590819593041520543977356253318028832677787860813461385800961119290968252483247977705278958239112978889346957378214821734787032807398482465140072005625502002477644676866134853493286438785813529649177799190995557609909238197446699920893860374671517183359996454810127947782093161087235819713373579473055601323635219446174538859494550882973380560976510442411022912409423755619452994736143960423436796676704490068760664720629406812855664872977627951737202056962625056324707879040859073546325430231424911099829373776036531852444716030675545187544540610651343189205685991460683727642620948435607961228865406999899835664710460707158216381579563395896284998415132353461051393393744585075975343661608806624424308913281283516452330238689725743754915158602950579380013706592053830510554924074900109477430202153584152310750718261708687460795923089148986556999473185516280813946406948101060767683926271401428847456975640372573141093193678641964487696931952406856028677411405104853218732340800306496933669734024937652312775996092582449759886086157066792735962014393273715886712336994743479714776707774451673583205490657076063228027867056636845429327652714657287669408483901479872030470029555094854374379304230213816003889817599492324479773607377864303896132285024667804611152924376672837417846490867099791483506903744782641020647252641007260833096217252709499968707503970720391827498033491307632320325331351719127803834813858425156941662000613053842584540582750493722086501567399404721797852266093126649774748132633022124226411712647876081364531068262637576980453633235470322042535119453089618154665710268275924353249701279838952429890074655216646772181511566449219484285481585981365392016505776312127900370445718868894149533045569948631574884928019943843043109482873603140566817032971636080272231627627459161091141343621217361819264686755364987281255225547858204043010064901312357644983018274207133679536710150313883036970343774416594200706175833514471326818950278074138810962514798164378442829458031841427708093852392202225162326807585622300355607082179377431890055711578381936918940436970081864508860888837853887456086687423312399728625660283495909767273445212996751001861265301448229373791618063311892022001947197313421786078885086829112227334364278130348839854514489461082926868895650903611291671903076381802005538082000624514665309660519654520362918538064026881941464133416669400159495055832339026654615172279227956761967212225396051198138147524794128605219397382493677956688656713909883408221254472506201247258815431442022578617299332946182454726579702401202777114223200207544907465735263516528116351697631839495000643058661839914863671651393735673222581004121201541091693301776427705669589496946448920445682348943884309278047891357653942798000016473216905127106565332697128361065529004033140703953496244368545181090605394151055226333642460029981260663556251080729405774932855276859519110932743340555857975329996123316115317098213308686961269676042251454907687465671797773484468966984547300470810666707846593384707970705742864005057085046910158485638179631285010489848717178263265388384922515497060962994388078583534256159642739433456617473440796982573182514699163050768625522787420157992924077389108465519992794750895192476515678224568502179745220830947968978691308019621047636052612244122548548424933364734222647792175294096113169358444493405671587529537822050127073407444651438585786748756339094659896901817173500456342200399401880881394644509844948986710042432015796092732278675313813944878243640095190294023514669280279260815540161659281610838559545742600686678112429074338332581111299461896822233552440259971708007430093281266699903618835573927068470183665686340156711465292644738205675089002772266670902605422388791341308729105225879065475022759766236517781723933526955787975035490298110342595237203573878081450143583422367429146395852381466462894420581672192314202300759770681596321902421844683353966648448668146019365198138993551730575511790686187001545021603354550220568072495508003874892025827943108422803244612778853499024795729027695829324906354836025805473781560446880125337843338836557127057978818246011280752151334081857829440813425851463191540987596418898787826328251873397300463926304996214021737161057655664785019132402424335022366157810243444161312998324257703064019735212769748513611217916934559573734943608976844041754816863075598469710495848303039914526621912449090967545206667608684197714688744205853114653925706871198385387857260649082501438801287276292072084877237938106765414786412722944513701175031284208512847823406171995135785660120598527524816323037832432535993992288300802246551787960134851287951492106222919051214806681240600527907682468900484357697303562591639473989904103344479529351797303729200863634338346934854378204568696760906904701057368611402733956417008138284239103125662025854285847685035523727781128040787891604046992184096861984228905480742203130132021839028907664989869992066866824091532447534134732543011641739306880512267007464840772733800271993457109041512003721341771502857276312410851175733218193276017066645750690195408068926058454118258317086101892965438421116196816957217641571407379172093225482686916697579713777118544471402336900204234926456991521121380451272000742368115609551393785780270282033451408713214786560697383815204742885920614206856897003844605611119687570357035030103336330071960708129375424796169726716797509031933554193147894868373022588410222682953810515471077532646336864834390239668485899809331911461897049245821404517344847498499191815070916444573896758375862263622513908095782142687692252810772576269695937728134005511415770786211337783954195082792223213558800593441548431190611063175364175319562364462701474054969135813456576191247987807117240099981280117788626998018510358348158584789747822919260231918140095936528105993530196228232287192742992178816267995535153927883026630048669543832707771623377449066722611867487174999626328242269478787730749823269021391888620251306158642522828407720057846719687311473116450631524480203069767724097445926837287530363298638867931977615631353541007250555572682313913765379282611013816619379125148187332485993560176773564084643631773668265006547564795242873884799491177690577673734111970972310031025714436812260189845747847266873009614508279998702025629892074928746243422456109320223284378147865249770874549464300131637268000728981346893885337633962761078996290651587715559398410508109422247944892881068856206015304257782361036900911809764958062900059226020998927206093170324960406211026217322583476588445878691832457003542642041875773364950784412272254305450261263712962408862867045020495027240335940261225963060361185898691917345262808336244270657577828047476191287399119632267549067153926093469127807721237757103719673322682230311405159521510308894921436971823496400430276624029148906848359071263034572405452766756607592307073092172776394193682465721515493576462048395201391080894915872778736702569855979433147678299080945536177540583196744808860759815433901073120567538717645313370267817879034671635290900229248634195225672204739023678289316804817078603917739899637103846793582230128676704298689162328807651477465332141875866770526244621610842474324088407782655324137863435508266301540126798147365141712213115544429981869808737728290794128735280195050215679468829170994811439172225607903173106940688022958318857752063949358299480452477358238333054039912605409594516843382047247612753842823965835507728892808893862088484129195366364205091152325579349022516335891378853238029564006223518257542690462470314387481826123418070544147069915597834855604549188923463366418580942086733532612485709567618950203376860407285955792264161517771691847589312666501772991080049759068168831832341690285785852287371046609941775249794005829932363827876397842391350615005557572405273450051399359116772331731961129315363394448553326185671675302742552952828145369052460727543253733732397755306309005203658175574716958196235868261787631723095787416367917574520281273023573150399657793581520860494441827565983834297689896020470718405089994553825547027546877335194064095505435410763024193730480927703214979645369215123026594500373114496131232146867681731964062741054089850196038784261041063490283659140766319477425019274428198046685595792879810238282668528939732246107054758721060618360511722634978989383041889802538136952651830308369489342696489807420216621199726685986906019107454174804158097273183577877544126557703771606688985576136007090437749617297438232809729455286249475741589090890564601065812914284622790103188644387786272940135988787502044927355427557657250563926994901923103586680965245783988977799091981861313731104463151243670159994803269215615601317321658647469914789685237700022151010430055440893491266527937680834366217575146985481660792591873098685930974148357828873741092910088339786060143657736479265310155018468061602121441342351648550502917559875476366385276904573349961415829666342194699326403937099167608563121691770639483799835878675254877526350044097639548684242883327613490008153753011444760245089627032256682505148439482402058575561363112181446369474697790753582040343646696757023640273454456034515622319013435117839979212499883300281522582524577649408629525658417912758609079082812461860291906017105084223413713906944923382043480339972512893310030598907755076483001492673766559811680032484304466078018929864101650844630432448392892816667500462442125465885345332541291160931309068143041736014251553268085203519032097957077814409397495954799139222382989982316264790982671269444734928635864426656322348264482021970340290699455147931757074954823771680457502552970235615570725255149848808624536975157657719248408311454678950352264729042595843481467128431928618992796244345821575235780019814020699100750842214186220640448819323971257209431523013464123207294617462498620401366090455439290029179252771086560955744413277558618405296665735214419366606942132206734701024297052015459116257712897086699356496007606906217091161873170453154901045773600373052235080954071723750597403760516791822571305641588986325271375742415651974073276737312163010678196189518531626130268684337166238256320661062362315739582122062232899609692241356428283837165741344870519668320171884189473231225755934183569122831752568459397712031886288744831291824820345584453090039474383359790691383668468038320928843304420510919834108570141014383425577838312547827831213151591476306985155559848505376634131781527366244108812685258884574299392594257837357008651485406656880122657355540843134035309085216295032791347737063988280959614460205606177118798239526924553853897319584584495610584652715363878256702500482671317547764943937209621453789726982001407109495595471072559702567167178159702104597986476841820192144770604378374915080055022683876877307283003139225221530392411715127883460823111179628005576991938438823729489452142196722111234369291177256148066845846939569404562175151372651997186586280749478876480175119964420495260292981559380818875203619659867893334542284623222574470843130356366348848503063696336988055158408434229187359104100169958951217396502060546605756709130327510744515537184992522840984139487006225303941017576846330746427500398285824147060911191649345148353901737467110478353095996125958125253431901954062532259091354130924796011024578789721105915788432010698551724598820595001660006274710989197077449933457536524073437013329340680850608002646708723772179397333856781397556540172308802908514603130820113084231100362794468165231068062789039827651761391352990278929120620506959319500103696288397498700595563796273407156443523090960782417505894572168139568903657550231788173759319194935969300314317513713467141979455896977750944243592609011911532233540156820421353821136037188768629821537912852379512773145032785794440241058991064981107389151507397477549001909654890252530891276971593269736249321275494496646357613094179652411715458282383938825414138814786132140585360450916584821373479428680061227763524788636605439516325665253928168876797189836364623153154994049633407924129232059837515259102208269150344363211978214455088561340637602686811561565928286080665878386494902925729066909618402438541402216434612979397107587841675472127397749944675083492840454661861682902225292053073671343173625191640934488681080674047009261838128242683370937631117340733605518241862012537416890921095214904746991427617780210392328080225174558295401779159266307708832007948547177280895673921157291078160476273948691072039601312035200033477967241682284865826404287404705505781753681243345253716555330989669975820213825268308481105554514322609288222458138965681433741410971442607823707594500865916877476484650500927967006532460817599705928675781372675363976502172276715469636261785049439666717999144871178628053747392511716307973639817821081434856740851478735159886381418751204359450766590538156133769910273248145449409537770408007067243213077736488538768652140650351650690513146713391453008270764219625691765777059392837716257893322716894206427482061145380417586082808948279685159107417938649863152848267377652486256650103984215235752077165992852147329390831811801357264018507469309051281779723198712687153905711310701379456868817629676552187824795660555814501791956263068857875461222674432465699665575578785030380403033811351801750588148382852255011868502875789954636894375687360051878806995768154664285250907694142772097674807023104178141877130544128990762380497655267421043596311206445752936416810104138408283298490625702288560067129004819242017428717859705222144246984786884662502164739336090029424072375338481358291956600110492379004396171840324021455750996196709222608630796936312384109295211103626148183204064520177609505132974110789004815468462950802689604674317820722112361705467486831454807949867886637826412921469859006457246026177897918372957952787980269789283010856776843896253302572496424805446993801595765843657709976449527383783102348055685698847537132018079603054914402199397051086884594976321762428648487825875383867145283572124581492680041583044480638162703545338213046831308491645164796781188671011419514210825558474753775505150363377911883609596326800191517804425785355887068881652835793548074623247375622621457832948792564535138782887518996811167143518418044701141148919802195008682541153754694350772863931404210770013362760092043867925106213862495821226628175099712360279224528967570130831010133500833283965360279886703779233905333173734967440567396634223367718889643572986541863716528688044482677721689591454154422962718918687603765340612989986125431254789628218297182985528167285834079017378856133179397249856597714837465471684618234209023920906816693390069745675869934069063055900577463229067630967937133304679054999786021923615491926300803286517837813653988979692967546755088284887256956842538561380202104125417437223694092037809781225909096854307459916332564780180751853243823925648583878634444965276242467857710057456732737988538094873141287725282146022517842089451628147392303786273205239013879660390630639984734315239461543268341203511772462408190142565328727299802094417908758584524015744949749253034483090895667412363629766982249291293595909366732138131579499938510026699204278949290447739550228242205608172059642708732849256080228447805670405962187728025560819975937797468748505510674834599623463177841165327927453538971014160885139439478249256595448388724631397140637114276830564640890799586587730755043785118054444488713691649596884938597742979915692354125795636384497863902391570874672236405141229995135089960448521830350039049365166967272935106139139100917156108055824478805186703403104222919950358875312018405185741561439803880068522136767911250181348656650174206045408749420247425335670452777974038265301595462242684235322274449925780978801049477370983584233883181327131975589329805518311399895950521828321669174946052994448336728612471558311980513880923990279480444168523853488045451016883923412608203272259185265199243467235913049928277777747510400630204255553190099620181578640994014978426821952974389968238442739926151147111416883911050637778304676900036285170371166494613037989895996081627009866916822048462194025174634092002011224809362482538939965423511688643924609478491240681986307550907622451696406835924078218989565075503941015413807962765724939249953001099820820989457694715243238961626444489058887632466088257125788212799054857134066769209912385710141000125801919892513666213650908156278073430496489874668148791276471164045433805047266098897942293489252393265357819159275875792779087443907928930612269803319551150404449720232126061266299687990872249230915651555058993372298127058138881045194455424088552838906990370433231338629610416824267560404828895489128235832937954751631503641853255223665975471784429853400212159445012700658865576745292342662599073939240184612865170341650866264537214307487644183394583133126422879688744256961622722796641696204571439298033976737411900614640405178650546302547884749614290272069393560921585202210725489700324667792484453539257864935209951198294031350656474380039058707342528298376067419137161378398605481627887683137366113329565981489214028701853282086945152448249267304671197988308961088886590555605063835904289120393639941475785513667060291778145106543513388865084021931121287057528437620025872796344804245734730595527412542603653674233689796662306325042330033512401856995043626634169017920719673413353097077773744012751159320673983247510853789817061350417853171829934982862959116838244835143652401750935162328903107961381665171165802435971599377362965411046940144208999904008161508137066729429627613534565707738798961532795563835449346954164027144432484563492509602489729129425641431883210469147411851095719196552777050451435901353861852079339759153872491125972096909349425122877246199630329810597375188511350552804231880262408550147214361892968021489516185562709808034156787620572546643365053364297295299434867922226957214199192720420409918613542800644665846391106633452786433233035049402323789717847427731066797719103354207256329967492621493970546210813108384278107948457806851030040483163150114468836620103153622484027840623779285951212428132021817374564162522836171691574132312133068493406296071341761712708691510842469431848045070497568889671380975829442252789507872750825258973991963525903464334327846843539542458799073644681942625883204721357842618026011297701065233636782666043743367128021386259303996479219995791438309366861140770852217743767007390107591651377682437585932936331198150191574139644074711085846757440554684594113469400949529841888873844519431563953679899624049749940064427991517162296597106901568190661435715675814006028053023403547979429937032193747795188953190755588904746140302353161517392014402115595619554189747301764447865363601076331706843960909617738746154804567656387518300695252283437920554468694297410462448617639739643755270106905793800091301312263582656118235883921724528348884975149478181312314959787223007424593619836918813446958202567334872789176486211509119524945341973727167020740634483067499959996491506332301512404087796386188724005125834314603481435450747155593153174142953682954873531635292850107283593262223104202805752560739121077104742337661299334767282400655681846653899568212871463083686935786164505736428769965501732160807933938368417614541468526238217097617039835325155467538827158987869151923044242280807467652903702808613843954271735426447985087183830998609007543326752133783788259022888394748629601992286219088607668666926173098604937906451822600298738587135434096272746034823200277686312635231525941465220068746571059275075150098021400696341113327582765616849121715752154554710421989743266918487002349090327202950263570378684437723177420673374360251687757899572688026082756917386821875957422790193554137581711585169031611591234354117881681227462450793686612835503549445749025389576331187939980270791565388723181944550681722297244980162548328813190224722616364973286876888176275204070281132102993013902455900298248880501477289912697993339431751816476273916537788639388976645761862733360445587943131544307307272155285890810356041253369442689279042566965399149213788940957277553586638331793708415724104101903619343392355180478640079016210247021723806761873375825362119560488952071051725915696414106196048980995751425669205131853129837456110726134899134540057524039102300900825679138193797827804103776729841261147385947950875085548959762089182270385340954551199409577713231155720698713277354425008738288961681735545930825559709143952228449622746450986609478315338227616116897954381575335734135019884486338588032892213650890471624506477169586271193639712573951390140692496013651886463554520358143228533060817620685526695299376296836616114855463267932217503800098032053524962859326624863589392590358698006158637496568868070208573562573181346331834233321348401292696701585603336304247452407829819169737928877335251269232996923343688816713470091116763038384164417735160864754883114664836460073047106250213285914724815710673116973034265125665249503233191590271068353969044236472149496698392408196200365787736071645185629129600715461818368129378613107794655609054642215058112522837861040411296594899825551280231879147077963312512832940169122953188098396546493957325852660276347944934340766724202073824515406201958731341706049542141735282693615310936979241785765027505194059977114347762800265119429954623884824776462819832905353603433861358975127335559283937373210324829658991820137401663209611715239971459902199146543998393786645624738597656190992566583316994957661128261193524941232387856245713003889537175682448424822573721608358883932400175676944396841181384432834209752284074614608395848597992000756216649919490162374141375288246508972017067896860590298582625349351099705585588736242546586500725526948568700597607129657099335906996140953175137925252728341064742725171046063172672269684808825075656532047109885754617709881664977153522635926133000792129946859997748292843529851227312261961969482899481198134932095335387341420833638535473875401282081076586608868756096623855951618716821789830571316399190303769442683482739768746690841294828803103622325053251851185536265693501816977877642967948824077379958503706465750657047423868365687189048361748930261111227799891478666048857016880257825614110770444956716501360084772802510286037876118283518651038160106406552924605070752196155270179220425834031091584315937286086046660467568952665303687687406115733471632374366728332031035024291408186323193482094076334207512055887180067245343612178250732591903211582073721432195787326318284118955402418185783140803495318924098114455896756072042673266702737068661067456321935137512244558516607748515499571341871343957046984551983220189401857772104374077497372021749965618193328489659578076274139640610954112151027085968118342596434170440536347396931677135428176065733808677411782836699989592582800267487245031610370228130833577097295351145734605064864201882128249921857355633863866120272305271972824251161366436641673702064608774291031090485330419199807865411544075833635619673018845257148215011530175919577337610986243046012981018459433398483640028119638201789891830485594024497664085054747230564041415294080451222702343398795652685652392172807005549942764134919883121676855767058993555215924730541315031710224816494386392447985471625437862824156094645780861877075999183042150291765828395123088856294764928651836347389765493702862263727777647538925529074151107131994548898671020973932623288595202287768246027871243247907412042283261596385202126500457985335291122557552605862300854805328980553737622691299684628172293123716597366410558155480513100599435906206672826538223069614630168454998220506217589174171998020266923941107545777023643246410261145654130573850738538318909703986610047284461008013746751559754089838316538356872258430185126842644324296778152533023472471035696600113267648242235176814817965949664952044205946371187198276469815342979315702366088649296893179676246781194090164071804912861994769834088460272711843863408882891018837073977754053221790258080178693830666858782549833027498094466323857614000924939456835812851160505565684708190568058914985321624204813216323559888222956018048282507839013547495340816696677257452256244696029555136303468777429342354088156846943343178154050099161630640871828738804118798980007908073707394926286112495461039758736357014105798172880470580496728000643659277452960234705209449956971301314554256159239582077327471781535691332344659840836993891647781347147847906294934034512290793379830907353364565950821786818561401321675295532353880026411071845463317564814450187227588794882187067041910346521348948969624437682186255977927379222668703112253419357968833249999731880720544330360094225769060782076922415306355083893504006978419856389376885716667768134767966671901878353605085000180948167285245248229992927081368910212845617831863420716956760507534784040590918684766133541380883533012046490818423935786952765801728829463866255315324437752030244716796544475770939816097713876998797403801808919273529246351081167282640150018765366339600035458732187735397202237439714992019684901470970890762911454917979351404349434546043950932959209067435363437178004002371788408965971840295915990879763698595394905056648055314055375383219162827536141875155137848400968493947814524260059703426487207288315466343698086459182712466201431158387833765137865743771316779294151688494026176774385326903304484894001867907088272360052070502720546261969642654500784741086649378352216682040101721722920437463645061398055967686281521328504410969948742006702454223134890554080371119657146026584702311902277363396493664949089253694179183536992200831491933172876598683909014423921950815643377101886517343671431584628888448802807683684831944066267993220131347469798936179835081506701916053205973204013295560844621191478809913582475159811889715191910969046027725653928518089838906313524293848432757798107591631082529507501607507717249594629961812581592879499118006803919978018100810396120384375589129648338959019833757181489813203621601962636977082330440938827548101291403353602746581897670243602629929821086125043632089299775460446742560035027847428566445646167441472053247829256000057000776625702460570628342065428859524897751273349472953347471124570018521724644626391080063875392120557014482772101570103211214721219738702024851143907018060438512952935780253067915615876995800203448120928648851830725760050539598642070879602158355656232765156762658569609533055181466988765533425519074591880604535412336457585916452116690345862754464177325773416043182788942154885833833981511570116910431968857654737107869977038223579653193544051632964604221889639727532796578321355058436532195321724991980023373188991900403652828656974013279253683818585931075920770651755373050365556247632654629677068440259480115738636446036438152306455681938892086901451379818326830080960229619279719319418394256418275549613661206098944772320677434006800853889571026325553091358205646588209347716248950920124748305382682419167456205775720430867188052755422214798746846891941941100435855774896098620376404998886284150162939328987492981590638776199227463848018042432676283371266037844382067697285670976744005896037541473265686181736769111587444852442987578801124897113394815710915897995412085430579821732952797792559981227603886702688417009959689902908976719671644326478126892710972817523443586953324635091461919816505294139249570305020760800083679982365613710622070922425754385981087668165063641231614393190631994100686374327113023762059361650513618974257695259495209896539201007957819483620002238822788807098852768318272325157979965230135749970018120961759675658742926706920393563087384211985933905302806301725016797983271390357498366408768259746129678364259499006690484898216287093566199955970678816123060556646944434130187488869332033393468393510414857222183139458355505672454743082929008299543912164229254277713335834281733083877200315298552506276667876278870830580308771995420957234652449621261227130879729492126622730497567339765043185884522868399191723701475066888977556021964337486721971049108386312734658081799290123024288144174099593985012165530469437443146083846204834452715101606298426287823643221505600019820189387054264083318179888878324585598958681411117518965857199536658555077924665720731245564509382656146687757804450573106766172018074589550302759703987551176182972284837499025539307326044573230828030285916518538825513332449191571441770545471579904099142785051827488016102901384767256016151032531936004312495231567003094532153418424177030048890020008101173581777775868509557200181037538248281596329979326662269855026268134543999188420436377978667678613728712850043402930156897173142947357119188250762221566560539456782274734830779490810177881800206506402984966091148343121790197595647083798892328873538477747300250092483377938194164441377163337197634105922697978215716203386266578112985735751107783417870198297604539521195051899002122329109289224404522539551386635670515864555166884946050272164161095041832202116042957797711857690432306079837880018833270810956884764217829172022229731538621763357762100130286144891672230850628275764287168287300813104138459688244446022134902130034351907232545150430238438863225999568154332579435273721623977985525286838867298011495532449643243281711678895451573616159766640320070189502953118127278404751807752286817381687197048869865604870843131472302115356082573428284070585136033760083356888341992568880473570912802770597131740195024436558228156465045780995593485508530363777748425625094024486691624942980886436574823042280130153358490520665685622855328158399792297259962690378319113788596639457415945575401977834735727292034036994117175904893126366129784514856598039145906657700730393963104354886517957729721033614910427191169853133357678474472692845011039407495017429780342182575967495062249247617274161655716540221521014965183510587752902652499244803212981093732839814233387499990031485205261054777173073441167669015200415458786780758185769946899505447588789067635383057215751338828580979154477632765268189760619235899490995710148167572780217744243446334159834516301107545519889622211865036763883711937897055150290626452270752034478698144401483721590851138950247290996952039888097352848242930135020981020679671959495174316327480334674219055120635064396692306134043947470547323128305633652898783201878807542918024617101103474227928678858230453421790647689886655657945203526368532942594625518558650535983879013260810779062333463178134971543758318917780277270585751300598666691207837585359040696788637301095527744978000581798212482655222945690750244567242199153161896934656750716014644720729851870683594647391384111798925838588724707453894075859276371181451219602302505878798322891054511043967182488922341895178534317699864775756022480301093031889744537613968934264059217035337054905223142681943596645401189064421743329635884775795565120626135627979137115702798990569035325214948181900708213158411496491665490261429340025611244909365833561348055322401451580179575621652526162562355042123427828647334755438225488869765778500188668931557742253810412037126405306581066818619949623745862045262725497467749329719524428329884828146039713630334106151478470136756665040989986233079957407263577094324922303703534495366869843407438040777586655176269991891530830926100769490663584116694467573862595360200024022223861771280565286408348745368827401461737518385175683317862807420068002610116582488956438513446899900355814090520781044907031620849308933435121287963543666174793995077045387563018325326758430946685360381757714292434871248962096775104977490269728186291117756784517321649669442871934568780871281257545498962507754920345936302932086980651838638803129217867520216496104489851022493839053025026079497142842301316333141473337205068650178688278344536544251999174876893923099050391462522672251996291076423348547989560473568746209169762061166993786180140325304676016567385079451934409260779872666552021863074112069217025325127074473472094870104990841088484534985113742023431732319259242354896111807125723047593695175848304269415186831142728702852464022278338700330519978109924604178300458532749185220407064795791768972840431393100547954227046096175221956323124097603874034640467143309974738718946572050972223278522252574986024912193555391531781012437364614678608635504742716138601156407208353260138153979119615568485378825721162956372955128382311717230600276341821314129637579767093492221777343036413235855434209512376687983927229279692688127480921011999756613146780478619193455903971695592986193486796769796998528226924817334103304637002785702440128953226942055622806708185944725416606908136886154117759602217236294661030167258166616934849668414644930062866482206254385201120005374109791397419988256209125515597105831196930682981260755048857364755147032278559000086013581280927272000238490854156208909505291978507419095886573690817471383226437621035673141533382814193705818702052260587052846300376587716281950224357102853289526007715214589727745289459993050952936702170935017132123116864207264448299319534983429569321775680322523946578927828391809686690775924069700994708405425086143714390651671219398962877990490322649810286746699462827789770745852826756210841507244524156044932576327671335839503649885542510880983478263184535468461603762794460400313382150001394097996428521057456681051882724551230727519965154901998465275233950492685984949149169163990495945444706151803417117382953032322647055837150466025761131540935875282617542852208561970752088297901157817036045587251839019807791161893413003128036410379236067323567585074878380673292539119322494612476049256733492398517770595730269496505171099264646031257220222598828592264203101797992133446463239610695251285366403816770780509904053475777699202430548005433296036873400612329722140017148919507136968212814305817692892406365532127346809136552859900779536740738945974184237452294851795554703964349449039626435388535687978791276287820846620164339584662586039205885474121792661111844670338908514128942217845929097179835687902451312992121345944909204553052477698531616798509224630881043516391979094134929877867956314524514291787229505525466127463507880246964197127876334613146820092386043693975732404613300868461888344994500063825635130234904939324545479550043855945245650555420751292716869326524998887715522788557368895424541882213629350033321652385511722940585496554040943708182224853795414141383509137578352889648452785698331040488602528476998251108526542847023466483271353890063046104771258844121174728163141968810925917621218288851834802856296967935296477698575634562163767183371282248397828188637749197251165435683892080640665349053008901231175919791265994888826578427587206528825485875232710380517645885121772283344335798532010655681519317502420512226973616514559717619026097278967344631799984054717274383731672175511533030255680738891146087317419862998616945830959645079357534694323643894259977896210671090591204115499836730551521865978716823670572748899414639726242558126590959048411944854620446906858734469422401679990037112050217489492884530148623493250210561812461291384111088707833075660594100642093011930172439909076900441904042209793482069527421508343052215217932349859515995908478276822651144743780949216227447149379493576402142555798230850207778283561594821533075845591721601246450809616825765439718292992331927097022118938564913712541462037745770345613422639404642113373513669675097547754359878793199712239778486281866073146783966496272016810814520375242907140787375704092850665368122076018887215900119296584542451782124769903591801287622311780906595027124888880090403909539014524310239851379342540942481564817524464060112294014256983152058003993402683628033853164107153284559174345474724216701170938104235002922207311185446759035582923489187207909149603716359116839332995307862056779476446655783421240415944537186156191915514330807367522778347181114753770663039475718542092561080677593388152087531750338924470121702637033079206282338629181587277484651234452294250692481424299223576291686876680211362064534914296515577300618479961063430617172838989873529230039176392957460487935795198328201869620601515564740475411562778643398751394529647832365075302165575281773744754214169005317277709905008692277715092094821533846790335259428652824648766036773500583538288495534264558985804111902106263913462001658596070203019683161059713967247189620375930753769091601676640688703149032591945768938236358909775662838997688031609855980860107095728903255779578875062808461794880675816299180579825939759872604745635383740949854933950599342142311543826591234588566847963958704963350001026223588225936886225096516801231696227840520088369025164973860031193189934694045376298081979191654354760808476780412571712057996996247106552905530122386032072992322517009515845398099990416739311882059778753958684525407832766947266573515454965724556087910796840441475793987913291204661369106849550157741601229679089763375690053577477725590638827163581074236155232975963540703142627022139473591449952526983648161907980484235971186970686767870001588180812922004322761129825223761966033515432059509501039893241955213291053702750865810750659250076081050165998868937769100693175734934690838089734090124855961542385561775829915456346077373249038785118436698481567195813367672114602891510286495550647455074419816571139818367993862747217757781102320463574422309416590582153652183463685550219609224789070305668686825669400789324064291958004946667915653741051673722308606453069147948131299909481411294933482046560265436318127632584447911154605142194055214590438144915432174890536551804706865051236993001766122188111385438682589680322971473074174738143789861637523658385131196710504976632934811794087066552368689536036309907364878426842533118222060673131436152010037903581477986468616195156644813039300633791148884250418593653921065563074673701241416539255311553726045724505960780902854237700323998252632600256247358948574394613044668326184811264968937987485714155453953075763464325777351008070740250133579042867878677420837442076921737055760785697550792055648326387376986136871131379140491971920480892420610442746597846747244357421581724176343257540743543293896436342905970458508162367181539013117857509065289866299239181461733290844572856570115213880395452831064497216809507736828390505668638499783587419032098913838792264136470645930073002122499840220619602961490568577843598127782245034067874018667020926709701615560743047021702772604192659610543506580708667625278893395797064031194407477101123114697838117295497778563676846724301212296317362786128852807150365216274507426138140259886968031853553664847322484375350616785157003548905124853051976844705095242430637571155778126904633338495219285182266639296394134819857400897891357853468932772870568828896367589649222705955520729937240086752012830586661712754156745859743537539154619295990912865145034078597380463355498553351234437634443033303367089047969811812566854482624407837123235684994924195181691586549004402039934916905335267924796045056969394343494659792635168366797732876722703764119639027533370301775458421168095648527681387489409891598859315436324813604567822435101491220025574544894501276457867142926410880115162412884878680596637984022991233903581224739051182994334837683366746000750564920435373174819517510568745180929781980230902213338945042585868477567493351726687540783010360966773369043554235276504120756215228403644026227368654323544234955530923484276522600246837563608830848540656160201440781597849180727963879757655991647946703471951123654955861153024144612244931353445201777087129128596890748187610466820421609261896305499245715511156523507826275000279111601375912968243133271519090195611135655724183304314894039482632162909719286873986261634146073467061545592410880782537098673546357934315897839523329073596103726533516226176246130495800586889275341819908796780317686511528977741848668861662666786102337763722245267291386862678206658579795746831547529637733623726542828038189333532665080363954896052496295081711491101451939791063441536475445847770777752323762572675700242797143129375012386436823299141848945135081838845069617977734643218092931862154642636729068797946799044619317015956449106636842395058281902938478950907174521615612340773610206932748077680370979452387142220068093559411156661009754255366792677594253597509499113690209629987830200170587377296731719861101259871089721732474816922232362005464039027861162520308029079743401227419415431777507426903759186354613546435621764482259101199114987708966510139302140501062097111907254004635557899679042591665311127186972596004964844173566142536063877059233261020083837734639122832507312612911533590221439227516231458820351071897171366926153489744656723116648206145514471630600060293746749911200534626676008656068642878279024308303668976205259877860528090605742113822717336173649037876882483589350050872114498709210099303033911182003806576821262564540304861721014486946025483039126483954996689936896172479952785811473118741370537401098411560297542840593468323940858893134878360739885666071040942145715003216066778865692872707109039546924320162523232315206351224893215440387139177274385656356598020855316873101869279132432848151792020175002122356293851623178454156401401812666679380269728335333992022013238524416133899143540360028968112611882137080868426250580729132788803842661357431245230893797507533735270784683436615605920966864660990368518696716216691526349513368289489941941278952967971420634540954992717338880756557712460073994633474594567970997793216587952920867205572531345565107367872981896978927117235166103607999432420960282671788673516437723890573686557701512669817105126325493682953461620820402280820415501088187625210637165037530018886759260259709644769823596637331197599848827029235721445907668204766613952197345993349704746210785355664698652291772437259041204234873248492782864834653105199453735212825677934500784858817812195482300282908000053878466244085565178719985394648289797118001754632575060957371231007297624553735012992502516598086849694030964713989902901344037523858799108855391471276649141835664712620156610585186466373010467360406843699908890269677672664661940100617218843348736152206382225767464153430551646738408228152956035645752097984434314672838564290113128719149511338980866769636164159236380525345434805248287804917789099323922266042797722123450835282696588705994724102550644466552467462913669813963661532375847439928032186355032597856510117946668366554513870358282894724767465986745568568519173148716409294299670527197381891910342275451541645622136911846644607272843920136286547386848908711143016144418324910953353098191054080670043700762881090423321168329215855418690301833460786611628987741886667448351867708294841522500058729533754120074426317102696466663431860842362531947385998181179691522743049716259643126237387599376468971517646045029216579605744149825521190035507310267870505704531529356022963278918659328368329433291812280693312695488216178243690632037187860552288069435864753225509404537221594752601272361333259355988044299641357694982006016858338107259143457490590614011901512647328516337431099691552970395952918174991422658616036066829415760019500025867814948035098523747308945177666997241528068782275408637978176541598746477368109931738328758953722082253414046006789924651256167726244012943601308294615697723327211568534496003664114520297839800372330859669852010719123549798697875360839131954781572729462612706123966818349196434668423306697406590990781387490401182874416864769754874560588997616876547707617749726436771656320161109638276263662397900401055219877087436951214098863890129360036518685967956084011756221180632098358320812194969739578564180351419058592766551531472939858260461047522087801793439551658106064109202366985580967201127123798226725987367763779528018158752435043042716146708122942485978068193325710400854587502414720730921102970136718266879100769307530984938721621203892265822847209652037586321543638125760634950023420486923795389785410948815699918992944757985304427550915702086593709445504268661693390451792647164024591858959284209844900259018926083131677229199590000665425860032033839379878688380806293973620486879187889712492807616255116642602348619445216207953605009742250946687529528873658897242157737523630469390952871188595900383306404819226838925174983386577337751668876527240119681159428300635336524520473516826139498701696863189150179982698008709273073148014082585565339748424621720135933883777488272507274355392610386708722695450084703421019288624387072791939516629339428212848643190205738212977388479246676031440105388138192582325519760480294959380822550192478557615193758613816555635468931623648169964678837550312542017073064313128070951847960635849335196134106521311698806284846819900840265839780789332651965507538476660807021994403767754793598868877115566920288295497609629701300263206046615993290923069304575024813070875480130064308328622656915223404085505093564653241932985875467969155147046436111246636647388382683733754768215007438597731475356907994275738062981878680956022511805677613981035491099877880540661545718173693707842390679574385687245774956612544277609668901825400148660488906560490663331558562144691930330942708332629137738302408722518462079882785852185952863753010867279477363963726935865903976230030200078850418112289597289689473792731501398513235603698974788490373147210737525797259300958965171216629373184254593309431513834320720519660385201774433209950335165602729327534625023363675396040225869489775454259506929101478252902463215720239928216065856490845708037791653338746860492215128989409986769971724308807409479701233999304954478999606853366733423494059477344333372592118724544824918039718319866825234293757621571728897540133676220178590693541899544931464507089586249344125886649782597632845484789319037567804400912738551407117241634348739836035580845377332647725050638870028495908311471868126264295877341918286127983071926743711197250904075681071333319561076744611447067473721585224219151221842844948381801720063262230394382415699891160827980077288822634224005049174247925829564639676670830252883439196099399806496526474561270099243613634544222842081488939573739991463943139977469172910014848456898285375390980694727842587020733571418889327238314958524572251669407763119518373217036364795139347543524326948416426258860145800324030992838704283064718155537702978142223782336445633801600393816918983621285619843736881758629428709620156980919398479375578271583557255137324161345046135056017364381153061208817942183387851780478929509040841289976140989227753366005482744006732426629296947039774766474384656222360799748575502836232418970180950642648186470926352161235915496968903227528330669076347661567198639957763551712286465375190659781044171113321692730671476219298389816257776341587164508976798935810680388188388624293572901501308316475690059653575249095400792864839325764731315234275163290477814854460146158682319590406775974254780308405560819413878787479241776849110190283587531676059200335309038673895841764686018622047399707466057519190355423545560895474016871814465180335047928698993645983489860624334587621742691493480894757225797009034097500488089304930631894479825925946164750961986578590718924842028427870214513378728799233097099465331618949561187494641012281577129128859440766499778538056429981827342106795203956382885479615608642776388727010305229286891523085431618203277367526396782303573123593840639565259643576513262288997818729810753738532487999591502212701434195007388392182592959368437348477517910078470843364663442148789537892304272790709797839458342306349033541242205593456490531437071866099165931976169037057220679925687261512281497505391541658800385636666702151932434213796808965059087698919589680734994830409988464889928322479996932502988486346139084056817924572229259207066548745829282575848925888132164674495951926863338396559548117554794565182055397992029268311272685759390969115791827836398591225528177005203715730116952811775194610557249228900422114033411074175504940456972357228305755976460984672704618797623181825175174154616067108750395658441648395223073609425398701084365847864023288176215544296818152181000578467072918043818444076169449646240412028030532620133984876235988510011477342313203422647377993029738684776602088958638148605903793408018395532130713624384902520629616898902962286393470101206426440949644166581952828915695949012652153086976113338547100134541021897489355171103876049764964185375013779166731811207613278114554816753945053361505973936784959329010456548214289246858839524534671377823151882871436912735035258343646060862201836248146847292502619019790837762677104163118723230952080729336441338503681742202547143733507854747049634047495783790645140026514132188966012450836818910591575401572377197780208110097443999774954474905580706548494525563378329921882941097005369059865958848168660239639779804384012403864652554105375027233408814656019300005124465178730587373256671791821112878129953492228232721466621976292469706915251665620297499146549568745150873078376330715316299571140269691910709324440213867293554029972630224775079600487223392330936623020364653920521209947671562631875531592003765160520319924506765521734125946904909481095063462050153396968947956400098162892607400611128916055657589304515135387105276855088993126867893015368207772873934064368312839499974475857978900218564732149504474666232450917930973076902942771620243867165873696772610324129663997434588016561794038415121865311646295584232625008083810824956712147041477926553844754316443323076123754543341337464845119023527552325871835977355851845638872431099938165601369263128984029207052058619229925267095376330505742628096142525967046522861231828577549366090199716836495182673062891991881416294120163946087375040038665769833166185083735496807470296260234879258686186512854816448667928813518237679708537422419199207582552035506814626757722999999424053775777397340294908841270377181700805434573479963745877896221725794489124209490724610182774126309902058610889017947954981946492215946840086649555401806123590238169170239712300659037866691420625802558735632060085547887669403331687528103731062135921600807772018800873409215664596861735470572493298782556186271702565757472515985216215403712699171101018143724680269499651759801144039062527010403960594916365991292880446750578409844143466889906579025532052611809345385537596453723124866515289139683189773143546397634595532009280041541726804551284899028550768643602330123135146628928801765735801592378266469082657921435212413043975955700733611423935629936027021779224523962437337093227522250787050701172528279825814034502258112620038906939571417917595040265460779971858923457097327533968580818928630002144371049736769070300682750760727046814196565780342696602587211989965803628077408504231748879629807920982619151882415808323441771421214371983126458581143519075481131385924506766385900524901992382821283174348272486696226882378818676960038267159479260216047305458759251966393974032406372135947465424835196772335519572146233568581254031508298798118245049929744037571988292411044818020706368388366166728457565937501745041641571654663250483087133601570248826503819724604604463426024742474938865828753509154921075879400295677096130274927824550075238490604901658911590243006545868122120788210461421072432249844037132986481591889386311727831064170690432943664778720349359211749834053563863212459388902737324016595845809346036430290997856244563300721628759478779432146899618540356266317179814171511584165112193003647199273887421464140265118013050416578504950100716882069265329669257911461815442299216440845521190735031172505336742098510811408366401824070292419212241123664714181574426450718360297873892565206920622103372085751858935990796299524565252179543263726023155523119443654624199998695855756495848214166841997971601672648034891355996396996423840939475471657302364901746515587014799025597795312807441026032974355204853527058094441450591258372004445079291842300531631188791687595314982031117116747041708537259643468608877440935753185204296996334665211141006611998549800507153225039557650378096910363746919328003445689747171439884720817180521619500440814885012150471099545513312236761983722943144465458263852987796147828914790141706693586308046497537412520832776661094648621563129708593107456502948828167015958176785350718165738004660590058212013309493942278888188034692240281605348325501133412319411279397793189877314822866728857250142479129621465609653430114610651654869962013700501974774301664345938677727127636544014347088016748648573280537602444967082155400491223364327746756501580068807933770569701564149195392931076607232600902698064564795435311399190770542690665593866107911496538341937223981728376313532396289911791020690706586712916575303363770770050535767929040407849922145193813216760793655712062646747610042488593111691136941748910717990480976474080536499989709950358461660487489373136092493011816949792019053071027337198262178663974309390839624233646509568380130565049665160785229571714770517264977206054233994313350306253327853209006750116185688565066188412615753579482280416889992462698566355698796437006065775930759496244707262516246208082018172036355210146876223030396072903727056466404317413795452944005473209756268984302385057869330105632699162512684989460657115560383869602307362490433613577646485277926324883165432579415306123496337907044252162708450363700711229588982426506200470499687931797017259310931599243771398585425908727517343843261041126666592775881430272523547414274687130859420363400403263812183343511857561589132735505889746843867317187348885335592551706938885596892327368980614341610575136841478261676995919266875518007796647572739179019349863519613869706694486953815242996814379973883672045419057694549496699296187667351076887413810062633562406615935595298065424710131971603744874713169118250142619663089196586038908376345374352864121271334722324807372027311685307298683970113761797321282694974051858093176980641294198993814775627569575027241559509680569880895733039120140900641315382348132194725110633693676072074497586663451865592379619835378314401461753650479056832816363619042715951381447763778765343297965753345547380206846504076500866131951689898275300881163257397229353027235483666539684583049865775189289818402234192561285412547002239838590710130980999515738179578988056545141082634055683806368595634715573923946377839724077583406482854557828727831905652307375093796713679924215125574840938418145242589544179926024318293316726916344240011271563076813285156235709364730496770233402140620386079017206925364574216913043078030160019392032229381067680626744134293779531186915003187769855937139615211921130935127912277524890497142433472789805523950693328646035235323460471438781598804142423203380517638021114352996801061807121691659472291681296714541941059748108416189219054878547780120260208784238968416778143993710391577828920603585852042444136210623938102306158336085684875346099373849787995788070688418148757292262664265877098295824583913629104923484054926632502502979055080311683460359983352365026998622658561704802843486248205378926518885971504456085793467832433422205375789250579015158244124963209850758501108820373289448219953828723082876486415029478956215671807689173482554641328033602094176607929232516124196315375117263930112415122778411310649232966689302612676279060722513765986006341730285869403534836758643191731976795815890020377760856472513311987804432401535673843384482800058228543421307633986706828568893354604318764501607868935659871418604849900851882487417672200702843632319361755350683701695962895824083457842841381682074319879219860218298641825293980164123889268982843313001705020485062247810574233334656099789423377790712586916515746736532385180945352992825281457667788349095057739524083001443649279735064365788769105423524793297800317045872630773326565105268433003440048298782410262660797035152475688105399057284973163428394385936521551989330912264207822095275778627707809131672137047017192388617980593574548180382080421995331790161545162314366663841170233392377967119570662779109831761783103104676287328083004534522319976360526452055860810774038763070919119717345847551905657293297668029115576404276689602732738707495850563947608163944489778459962962650137272362779578407490193540785842417017986097157335702033043600774600273773697453944247969895138147419751606515607346103262142366406098383714191396948051281356127573419879447127590351417301803977651697434141319039740321618107488702579580428079943075788875816309527258666447713775696805004574269854737709814376160980034677616339797830413100268374627809646451796843434859001395338652830163346984789584482269958397136353225895882096187971072194356908699655927915041996459398959823742425472066769954955779568112172061176842410442646736867311396456620117694010134298883713294709141552835904291272256988156666388689834866727940604299701903189579761392730835104941084013519491451111580768254922881644492186064739117086891982636254818319043736733081150202313423037918895718640070815021224551157149247927157207998194003747481034080487124952424662516877398011965049537748711802911562659448140104108087810782976077811562560046340428594759118969747861615040846019223919897847606392700785586390984111333500116986469123558980259584127030187372609177541770036344613550198966479739643900876865737623734486623682578597415046463080003187902650195026054665936324411533971491537812226574967118435513405226368369849484853356259643272669632554753074229916117408702131054026019164074034616774289164152104116178102720107477572217443627683534762446540961056485849279421076288352399508787566973646701807444513094965178668616146039829284661349010106325234024237426108289984020372722564412610584549281035813553485204361731217055078192855694334564278811079032992733425960893717150484717278907948736237956819476392898099989992316869270786024812863183701025791177979535181410314402263440836561247095567807388694398656851318538870349924942391378479864628617677266600808735137850462310570339533714371959347944346464660482291536759816751211201311788576683981795482699004047932406155860066333769581135673427324121963988888243413135582750987229966247568882856366910882530776030394724649940642022099795925991287399017731633299715911471451527783781877971744387381834887749546042992706547545508677302903212582040226578351569317774398300299943188993904823116239546460269034920842546992414419166291826940848285403570355274167676688052692947384080427097261033450988494688637692048873483875933389520345831269108331001724971374718688469979540820311324403967098065960990186041185076233673447648956458311854247015909379753644908884132217335135085356687606446328919791721862647716154389916085991583317388442567363155052067830079174181282835069017708980013508075952748845087333347447801820440341987018144871433510171061505607918623560747133658645595215295196200998614152175170279928772676798708841629408501694925735372392830143433925495954200113025438215060161502695183670961715228826482032593578219763558944061760787208895004801048465797863157607033538995056988894193945905868828719747653539813024459143101642863659618904925778544263609619331290497587346639307926004418521579185972736288194305218588004566760195312338534455654814199068722687193676428155689841209455566040386286088639188136182843979838189562428548589067367809921904125758341574442778919736615692348972959702232910320430514898257997849329123829102385342884046094905491833716349034053620311720752631151374745375048957400821890104667999705066609738503898921573339399253914307384131893157255122220920454752476278080342079103644674385902465765338264759055811165993434870845580697836206363413804035762906040733184902931127917481709608489342652833636781866228246137436474275334560383180523417537933178595306410898642393743395280615342545343436517808978929036590151576156790862894790350190406405598571879913475589054865481656276815171043861617203799876546347840897323978520439229389040546986603866520079877916334379477047911428522940909391038300069724195761827501609182307612207318339158981391389564848580814028359670441002753808721602987707857031375371255629452888647634898123077072806216279988996777726660813335382130594796152971956887511316911929157994071760847188161629764602586620582168172487528413581368565866857404587616652817352899074552013771468126300562084031973472666679959239840587672927927845293513559146001009432226190169259034443082243913033984283646188684741112891320799787867383364057746867170096227461090395214852037988442236216581617894230650432940121154501460623013860500298591191525454120507846417521918113591665536447334937958498990650823382698600902093474248815059763927461770539744293768807560074547528973140290747211654587176320476482282641341910854659553963667854421634337851631848824533179978504723500452621579101603695006254890458030026031700322766493563148304780232181716804538610011506310032009896134019248553409165844356498678355165662553983158399631169805188800961748052832797857055208653685067987092316963982638861591247322781349211810106698476776240047881723762691589052016210169897656487488686108741219726579542702334043214767926096622213365800778548460927565134359302677623793992377316348395370968298445984900306771486263038353086294445153204183796501658026832753885102237947081121819932242916441725967150209000118078771217457770611607662760838503398206375601375633642367217341763020861726012428557174619387676872793549940318873660599297157677451433311871179554575985486963116400801013130768813543047648921791101971958662085586941272536871181424211191210812348468859629091209895573712373657856057027850750056856591864900984492347245540869427154879542320074602083749416263854455775355131788596749145443438270463632393716462033039520749591233735305784975793831328622496263484004673040314240921017584654835657081204305591718312635313751618273385514405972115807079843158253631850156765752296623639010423520989045953708073527758997056795308378420303565811328321784690667386716362461626762829931856451213175073865177463730999719373299066779211205329689174567693619348634887852415240471030144940862028948667409336567111484907012808038503946370249173823751934269304088592566196770011290787831942275996602076312469291244634431913979687979402524358372414416227136341385454976730438402425615330241677906522355610913701182289986880231939551299969383211360708950703933971382460540735017363360326415190333342684706417626129051664601447371626454928079673579710861897134362831285056244709066143724668226659804123663203984147463930239723500282177985885416520202592642986915735918042341975431410617157123635552408960802662575919399925379066985004062379875951706322563657682080344689738387684397062503875213210991776766951173797253935546903774457898967366634456956313626557552990082694836018384155707490739400897340483513567700560474748398068196256148207323095000023099407598065304600739647746888486298457178713485639554418928897086823759553297789568588610574202289893561547337359891049134664395066398177875216109545140110935353096761257862119039516529171525512720484095553455111265266747361722420355017797877279188882047860592826198729740125634626751774357851349559633784764433974964088906536190277902369004774659305031555281955663051066435748891757669849787680147724274925725766017096033644095779926084539941607161007820530109800310586437296718967525078175250489373872541891000641123974157768972092315426119098073991406291544365886847141764717233988920881707809045861942221946811232916400078124578183562593690986074846865843299118849561816231134769124927313262166914529430559600382600959538965590190472630289398164725171609490060451501584391441262703738615397282966110514801966573488766151428949439215525327687374193493570835807236648958731799095294012684330054905445068173275210261932230970618129791120434831503101819326229945549311121324727365892024360311326407632383495747377029901923262290116929201746547781106725092986813819690268546417795590632583792171953030769827114566884080319115401368809782165249349854185539897248039654674074412670664998934224339711491093663342469847035749603019453975105532516650018265037013976976198584419092963611852137517198526651598837117971181983589351827585264720081613076427649534289930136758413147919812303047889437832583512771457642001570418058492203750511815549444116979113075734074421316781092327820679054544821815412732565890861341333270355430458979944135335259823833807181502575498546257404909141823049139894399278307522333412806583957627287206530367407698085324703116423709175349959670809654439551450219710988140965823572859531508858992478790567352744187248026356626026131781150520267211754472160010901423702894838724451478064556456804234852869796925955774303714242693736493612052570455997888276531353660575110793034069839269530746085922865018265101214508535121918379054446815245916200122970721960746528143217810661177708170957337060216724295941518011800732722425985214853365937721087459921636239660998294183729213927594983929732398281285372891305755330292716441089783691902299868239788012081341782570448693901997206722532658983768735748326794777411326641926163239039959619450852533243375682480559238665346132946464092882405686593580261391771648434665261531692682254328584936036476661929871484676785396874019145899127373232296855582623969665942179527606644219904530144956207680327925685468410039320904606438302260947445846253380463444807183062440498992081544952731445748911201972765716334538220581353334213944659605750908901648965830265458215041873207482572133275197196651725042430165762860609695263305202149132793527387899149302893733082741818356181423877469929058952175003368910018674223449596897829418306240577553356826991692640957781366606191706963585931433022727326811679447715494089621425777544432225162377846305254546290751583253896953231613983004160813110733437439576761888275067386691615737462145660117427108804274188291512891752582909204599141508390152205645905058764098826743768323145843720597268983795370437231669115619024014422657215177973720644872885830566157267673102499271489938810943209337858175206053430474345282894757875512068612268219375830445845982807431940630015473672563066275590879618261682138484428215388392404828941887773671791313970543781796309379713846890799865516566082981198165808136309405063996521963269515928420593900347317314617086298247971057850738497672877585840056216330428286948341874684683711761351672615715114630334344479419029811668927805200584539296283937447040128653934290664706610482621265361348638353205003037666649206307883328460470218828253511949785971735443724814734012543248190549584473209907140124549129954386274541529286984763833140772958922065105349960889985312321940881478391898785954536095457402555267078321364547931836890979451261182020200244877722725929706907289694668864003155956560786029266798821606629580995122680911927005124774401226808991754806726830208840050057643223106544085394836673257584697624921363652331629136378237443267616638375574954721371860515967293175471500365769047525273906675403825805356381659146659454565701939377712818056060588677487398445890751361124409212972691792080487923840017723544330057563964830161500259914788248708413863987851808424448724353171954822458878006269403419881012907214775693246070155355476596125503996560857002313415133985607219856952359687472433985628696755519197204482408247517992161441142739885009244607216798343705192170005673339046340966514600422174316285411957942180130457186931685460184951186510130222198611661647416028820358240407537333088731514190383522929083428139335696612866212522298826948134085956965198156637734437718314132575879838105336324926963055026230611292491564581013511095973013219771220836014371641390921072523360664343009876008008892098557768740540486561912297232766208849208997567468085165385523102831262861898872513364491195065004618941958184909610784213094966881023737460671149783190770940033255297790916051345402424518829627223329000612055526068945570845976668377194427512651734754951070004450952538563148798187032220140982968431601686344499363563956337365461172475842873102247288749224189865784687479940966781345196146867631731538452737372757917419676717784579035937099320487843196953687436447304136646389178900492251585520279619281543002453460101905945990799352802224468677557631489493636888990497367010342867530502533082602781409440244153804550994759620447617454656730030611346339942066475481581230112233767849464746429951028783060582984775732117351679597924596169415850038299090351923604263243762391358794516118557609049935476410579154826831529779229799425556980176019122829728034934049701199752556085700605859728240504996175645327940259455782303049276848406172633931295463795385549169440274291675854895585136297197390189964165262713340573459197957747113449202111025144404429976122247540152550714133099525085581181397822873704274288421775927150507179643220627040189410663493776022304382097098428746508559024344047631844442576342875489494007423225605726773922511118169848748409816738271915375955722901640067173398016800065719814849788124433429094970682170811154028049510476772800094105138224986712400070175827733517545163764681392017772140211153713912562883122534092527335750056930369920217214286427445467866878828336147628431488091655526714370473426586665950071298515904969507604327229548627660803693941607641039068347478429812060949640133082818107979647644355695503162189657888120976435735784341020251327539657753414078366843349179939691730744822044923197656904171547303790939159992621839658607043618255498289507789535646835719451210764688095997577560224125056233534628919506485911418849625425242981758582527877693153256799069861954079218460141959395345763450200974952459162602719146154962632203583797484966211551667741550648957533194733876073255118192115412331189775952826974139754840995296622795752983560551306730844215892628962346107865962718724979749083872416540105497637823061910754998253290434437953109597068948860230457618017097819717838565109345382214631055446909199799238763098653416872944811595321049262372062119211955268615906034300995827077985026880718486523810474943788864949455297666388647844737076352473294620047216505303956753324518791645057433811179533754335534845316302435720163675976372695883222356817938942981493835977901335514245156469937687144991917366521840309383704559360917951906964853381934910689638641113443411737482712488298250515050060249803406903122538566287805671826152015173287060062780171006684030401147603349597975394764209801197587395249746321080404097756336026246234814674580324950015241002375138379349704485261076256832981683549495471415987092416264595193144389151255790176535455082562411083570885252589741857999056754428601898867148207226720480268290589483800725635269716385749546128897555573133469823321014489865563564343415255157342452427988419101306860823496014886192514716304998239518558204702654207027242958327972281108826160758672832272708782845280040393417371744350453355191813937815445633522355985284020492089240430089246370922382025155982265534518885557984199013114394393346404344419565731052346647655735025625447190529691414108483743504692663022736171751148654248930361783863023637945629388306430333566427933600184000248546459289390355658862168879976111165986384617720033280184317239097086562048327409823752324231008500771190661967224372591992229567089572298995160445919354105805555686746053148256445203793703319867587029024867254338502820444481882388903693806645435825542902142610901735637905529518939809622441763166491833214803330238906975434461273262836436502074019778069290726531331635598454530749935457212241733182620054103579248321355555281943389613879138355740533725580164674581223149530167573301526710862804701112534926848866379145032145764857804705695951931247894840284942031802727377193145459436007439772910225861145785514777002319360983657674469434921786589580572241199007393759412510705922696924918131977441956082927030841243877375497288987656554033292326217935850431484191380848981025893505517001285937881397072215363669627617261212648644176262558309233134119872809280234244103389516007415952101428817798746056782582500389787277483250389311730970127164615826728593478276914440929601474872981418376206516728138579233238160986668804013963854417662953876436582907500867744837970350092526951792357710233051494586742877091045364061644497965888599579375836509249912465128904164727719398632138294980044688114274743053426961637894739162256235577895406271948205966394256356607092780540926996172467309060800168897488932376145664933142657074314303911785745636411962247881534750929996837629617796716334964838560479649043961989038805097888775531618042765916701075856856496456199475067840171036030586691864225306447686882529474767671954184003432946225449205394428425492246688022010195295407222095816760693183428233153324467881834626399302379831307020304267770891684795920182803669966666507273726168484355689594109447316153191102481687826180390324091442825769789143636388282564676817079571619385254656246259493562715201691566708747373108149268117299146637858790274231061977814300357726876246422179875761788456359247944841169089738083560582477115419449447492986799881192684007995052553528230925273568730267060547070232523548370904190320915605872131062446653595303047609623515365368018235017282321066950624569553408980644494859114073876509695626854958176122547880289725893693174188712774366962075984280639449620373379660280038843397523775135322735712406389020801839738426859899264821169734122221015477012408526439785077166269924758808112114897928998838896979195581088881619793111918473301123231840719178237056864071708294703417095475479371682763863564232665839806063878954674725429487083804222849133818921565899124960855865001143310394773645105164811088475739605415416106236819473687735733664624855432007707339152221138958946654989554513002283246264240924346552396503905329760208146665821672923190131929434219932928108070633844530588062899551720205945293635062009912921363043554500502168364467781510246159276524364823816985023152720883465804900969243745633528209704131666502990805412174309833407109231309140261568297656504665547763085939584949013926191911917574343432311693291963775427701349819530584714682066566549390596547568825970654158634259345989379833384803250107634255407510945761687147872032361565442585718866972557832472699164378682414486486411704622518033880085796507116173274426669535923822496133295853331060832169230816964893992955911587597053315704181929097112948533473530381624607330058847170115076457491679822391448936393424637904918935406444257436892930008265373911816291540148896748514583737961841978765716325419077901247293669446222137045269035792427651721826947968763057985958324119724476665548913931029763806887898446062339391424652408106704313826465179452464403598865360734096974945026064067446827376182900672105106332438098306215729592619887735882604196356037013559256930692114478483408083977895186370648669921608554801954612359805588443570872760028635419549792442822463735895025547378932525449711428046677651912630963849980465484703211405437932399765426333897333752768627471083095573678662015662171494429997075470690667537700411167953102834274125529393059582805111498020687554043708362007313160462455244785942596520330922533159611549085744536837279223941817478413156836907915466850120023832477789282517660645737366076344870679152632552050209091246126538675112788820297933683839089547238294829713530604414362530436394096277933847678211550586658641484970569855568500439399439528156035729524028779555464407672497500096983762766064283236273819742861641736897420048219150680970888782748372522768369334367213089059785682094622921761032745677212967427248280538552248075183068065219698336025113078713192343305718200567569384282354226021607191010333837320397301594782451225808100234375088848237097531309657465515159835788313927189420497516738408108240619314042119940037705077396466286869023222716742298740988404055924610546779897905738308449962430116453679264030690485150954968832543315653958413555557535520752226270142638630712318740685839198584336291978907124610912531228763501313800694790975915663703618543058259944241408775887304552810415448193344762331785800195098513203239802317239404063032526134584578807830521505666399942058155092490297280407080598440225906237086633636344893913450558228129593077289412569116035965327611630250788573018000553590346466339865548832553511407360548890033779700113238707382418948713224127072401154948519847739786084509069686064194063407062907773549768325267249575641201558645671065043362032507982095135590968199540663219037944791384727058737828755253588839339013761088418254631978769278848500335600889831584420615590792868227878522572185125591039599005146326301250786414703620370972596544050296371631632566122988293749502600140414687222338275907318594701454450882521560742719652187222988998054326187813410769714519491341520875766657815667676508320672416291491828408913912125430758867902565872329620877439618588179671151451050601981136101608023073364778366629979439136917045181785834458564567544809254097075913431151288244062411929607027087630173313210764780078744667293497854995849445089378010282301287214542918202313337594785768133184561781261041479597319989995630204921720751438783060413269342688633090115496783090994832105388042728562305519249938009391945792607802097998021082364167701529770042567625651412192323814569439850730325184395303061397733808681173826195858464760461182392615505873642316979867282231416662515117579372300458572149315950484734013279577895399320405501768055853604768632268219332696863778633721764050278692624526540293963439348593224839515864142002333941961276807357343246580332609220558696756336777617451518401190915086541765307431490358693978312037567970337155304003128447880036213650093665294207352232578695197678339179279654622201376224558534395663734318435923200715403272883985265059612949443848705871416811250639546681784090860837854381977826046738723219278701364323472076562106838375853913718235970070285433231352483880035315841135212109734386376283163250497553515631522838042231877341636189247925044971013130515750814108571252929414836002075535197217594345723402403115077430624557201147864104755751793830885207351655562709314667798375180160781697173070488780191524246202940664409209204734356121384357435834420058612411618664430339988202082557295316051695466728049878094499416305890976089614091943723560567321760229371727583356543535430322254181811484330661141027267392537539157324833200818808378220634616666394323746380981326997970845421140312513423057014747841751810736012958754824174015823864077229705713275878587528618877746580462650278000634304090605921546609983719103840972017930839369045175669387446795065116672668662103194080358157713074442125941923528479329162708403459778662778708680037702999508666326321224804172983816841712490781202770463614755312096164956986657816555401409664532706576713260840720043405388306986008476290406536629692409958673630185411837260538771123827217333104031361142626182985336234764946124549184252024706906712580743115333215644723961021324105224620363358354099260230048174031582043570618716435043598682312105551900307506106471431678633131438511637860616419328473716218080763280205207517579357610933739096093511738953499112524568612985969696552601305113450571148053713590424580286764602898821693136215448090829496218267190861074790767191217840341931967418984165048421192436274347745185279239754512676236557631643577022316708841635131852564876296101232672906317885953722663566411741042107853341043406186946041273234165427009361333861638017367824702224745200170567526589151643111111129947658262936139093160326863558305728465033542112457400001250696293605578438727440874725680958545001830415604529591210461246684075665823870276076513854389107957840776608727723865999513633603260527480510245616298312441415459022575842246489798678960654347153996552702161163861688968305028355102509400500485430376281729351484400448696165534202282861194996776349241395908220288934322622073690136407455761069746239452057215040121480470471290514277161187901783116801302612176476046570266838546665214982534424483587200838790260543871421355921473340235937286810372831671914345937312148195525464861848286752673003880642189335131284152152740941838769662130289247654950026294671680741835706837862549412579653395086298412821317137557248763235408445743681347848756919589909794342774540423412830821257798911512404274541756438535173483228015389026137917010400325285200523221204093595236737214249333457982598235326104358173252493338752630353254871171185824537933123313869907712648250471517817111215573122564164114214530500489953077240064317765595756303706668171566464076442066774026349253986369373405587736110889121953413273450720798288116987929516896735569106163090084038834547232425952051779678593437898512588298084175499818754861873405331596976188398509309902055965527196237700497151398481654135094054647109379449789874203097041461842030547695223638257530779332098524206324358756393138543287520056600976561997998266724060752430329361733007043555590288204766205430755695394689001674608883029016085670267457168127055122308307665364164737211390674569635470890612933955936777329763322199502358844425109636408082435405195314292437058917133246888195141913151107944057742011330211919856254684042067090334032717637761268627244571362169620364089636441093636276243657736963525940171333378731206672557926956175417802824754384133101149423326872578220340444907370263959375835495422378777386042177106417214960718056476105849778179448372915259668218029807042786771005330336158561006960153810002488812925341554959586257804482761724147128030197693787385386575473220175148209834067355477411298055406125467423757559365069427184885614898402483646329983940701175923292895151518143949546078133855665600379877469959466409404517885734439373203768843119397891687703186614315840849824632560032868170343348197025540647295591972226658962840011619704039632831874244314999139002601181564935505666824349885914594908465688620980975084138062337084285716550749840902209368490853964090488275862407737060918955311514645889767372054878139811722019975861358831419671777575071112792904981609848311492616581505823097359743462898196305182511048742386633957347984355332165099957520381857409116682064689763974564068757229570984576258929217086256012795699329614194764706132855389590904573230791386608731881317987553095186260363496685850917812626667133534537982557799851501710494435321205393866271129112222691257688883185400260667825829190435162471543497542174442470956451021541917429290718381122999179723579269026908883633220748862468528246020518726316761575916989980245091078781219644241859266490753554937016311729114016929900068564650847879558692398509958413051241868388578146077143871308428561647671772789133609783824473060096263021342795507556993852209401427831917515450960411884219698243907011906508955784058512732189350855047698207890789967141445242219065017861729586244653831945191678758062025534957822195953969271264462530747744838433692728743978139327242073221490189924017847969650416373609827927976399187134631471589907002486047759602808613334932616434643105776150268161050187827775422666004404312973133952708084291400572005648968301854103405806879343062088428174861976705015136023712157478272562124473266722277705691601970070838878462528139968564998072493531800146554574516123248036434686334882171965913330775220831203403069588320437202027347506828966256966402596388956912321677439244192683845145923660636882085128770133115438681116676955794558620699051835975515498442489857959911873144934370909510019761304262161074882127024319264883373403030931246149527298710189173953786932690910623984174775011173299175511335298349991993662968614181790375728724207086821031269325335423833306415735321544982689472265511313035744911952955684009460671744857676625465894032327074080200387883021848460214891238552510243767234732509066852797396139749670076461831870277437738466286848199947895880782239041825381567414022722513574903551531256347970326085297308664360354358105234502550066852956699301233435681874621399091850069988798974081923827258629367012259799385557384285893548402576317137362236615244971137539371192895397667847557740055978749978973468404377513671005137969414517502327836019850858886711757276143241811205405617856027273258812347647536672732124594801237716372127717584271653159478190170983310943415923212404477893457038761756387933144020486517063705396138191648125196483687384256436602662396666058956829065397784422645565157204730667723241632978895512015253519183618223212323191505508850993793223011941806059504063761026903487877639983079717326187370551591306606937957945953471602613972126965450932712222319923307029723865644745651066069421029608872718593976533594188417247656817147746927882419924882759784334524569965958892563912600606680323014033328718615574089493645826125126782359019159423342470805847091606209732001234220131773009979388751841796734640018767958943335021635675579338751058466075053426384299388821040398180457769328305571574798477283891132640280879405205579886386863872211267537293958090614933272421875412528828649498929975954002832287156777375151178271786661943950086835751672503720596634070707130017470069079865931833992373899914215583053438348465878303987545200685305376602610475699088015369527292912387635877825532591100960594608818107729150785356584674451976519751703408294051019879593940240948813428754846931786200441744990124889378696427304119515134047315429689947133531227030929081246181324849047858399104635090304610583832877498596693616663117912706468633285926536474858888819059755445528158318847584956643748754035765299966351003196970761621321624634809346799146154409851351171996568712236457622128183764739345423203710547179020148835900227881791846024053460226537265818280673310649755231396390224779077226297454040850672424361656868914762074747206759157735474853618120331104898100949273456484869420193426913568828850765530874138456638285567527410743844706283839279636961565926309356048251350269251496149728066371782670334013749436784215493278508758892448351164401340462007465298589367923091503833313800400712822209745579626933659877532864424783660086054227296350305947543986759910450593928400674898372146746391674751151687823111302374113401307253195964293536026201643569992965560633086433062220251112867156052479780327271894124311626695592267870873985305852300378811622957145158903726634531065474212731198048252033592716363975651924939178994486311525455405976141888488444890226986448413946706609228725819015088333349197749537965603860882321018516212725778104546586507229719725448779077427030547785419626459937741566902093180725404808299980159194932090708191233856026116211563800322958222067092395837252718480753166918862835290838429298885661404738441193424273756341224977160233614446719577561520642616991020497339842481761521014029299252082284664872365244376929501430746376752248071308558570871270708753772853847205078832939861106474798847315253580864838116449352596851334441054896365881826226472598274848565182203892483749544294977547038808424016891540103020811148382930601925431273864502042036899429339420897833466402025377316877764737164530483920418342016053222213872842624237332948861586364726972911814376855565423474164089410645555412655131582805455893779178732811566447786503403239456527303818549562002873928266025858872992447169990265524393809610587216676659620391491066012717504643179779208854809640655397094933017718506982425437114073784503536663043036424519184997130527676812958700710496240756272394833935128591493994075615167048834270475535764825168976690771593172679065731305543147873871204105741644776094177597342656925463220463690703087721792743563225879254897876110256305267270593709115493650518751121450980301467813015323085129162425371228894417090169228745154744191716881644524814358902791852681228721141372320464822759418427254537156542199109046861089381086419086765570849353837552642596385096682274376606717661658373394723614175331336221820178552633031748369535098024554938383688476805957634072770585653289417534137304533020979976241892527476903273444957724019790126327033613292213761499828023778317884294178831037783269430877862554886763595536705685581664443688099753148532682294255847012161982667357395010082152163125450217428668623741003031926896301207009002944786903329289028815056563353116936716235980812389783443760889737586506632807672638304211322130138139217622356771901318404387708141526166760399205124267712672725853094428382954614561597584461626450013740848083651209902057169214954624199995204115826273283408074508950112382373858263763772628510123193887394237335063658961132582842670669591346583898257076037156398345691213431168715979041067034873879847840875195628547496775983874311720203909487154908685986837620898379520014818117808901795919877829546046205664278085392621484315339462840209770211928403628906340070810197166888790858764099910210332272813711254941569789201816805362307704952343644425142159993615996304653706992501087966502527037315244358849042173728088237197888020172089071165583279366258222707597636666552457096607199512106391867321843879812426916012150315516820002403798596547942739116363150794844821179222252893608668812109256891323730482232324937440712296668102670970924030835477034551114727120878164017812354569542021510506373650145139066355342128039478439138450418535351912834253130637206706720782512791066878297482765027736910412488994401007908482231715162966071139871850840267880059351920401329981639641848139437545541235300213843550789979020556084304882111839981334167178061114094359660655968741156856422474307692745323676254973349070782460367404549656925819221258235078105973219468716607016795113306540003404828166709849476333364547035989612320119029868987849180684845170355733600018842399058284067907069070821049556608508384686237293635555462761823723304526215694993099559130580330039452136932829525444090561771283109048384346831225297709665615299493824971688425667110509108761468043773552818978810219477336602586188762461827995925561750553378333521175944503816746371682676475409681037768431740823836740429852455933381168337847533816295606036471542761584836860865744985709382900533125390097709516374176371463574502100292969578736830411481183964896198000556898533336618737564028679625724099088790631134165943582146581480934714707965743195592185107472367528110615296720872282462951955558629626971304619436659617784281117568183377904127049395655297852505333515635073002046336061605426717526529337866027189579626679188452035256333608816116174995981752463629574586168168659230261558417366555459491145299931533723255097531062883721524958687236329457354115233734370161982198804064544587553935485270021948948816096576463327400362491462708051939710995402794841389524521398101819556477338586910181421981212399394341386269949465747533797772451418210318510189963869464958840961158525108558395191867241207456801525739144220798047585964693920336124105819320104329567594442952072890338602483376270377640901256924343579052888938270258312375768533414236942780657942553479407556085345350720786605125813547834710005658467321824902611185456315405500266830288716012303621884478039083035438388983231018367938000808521090607774602738741385367474706144074112504398084831150737107288956830091921504965249760556519262310546438022748447831136466402530919054662376946467565914025283601075808101810782004058102829796660658917962231875083739930094428250808976126002746442987964001875953963101578910777865427260143754045732287915464981627038558787091105240187334304436623204607483168796518404750016035770192210722201123269353016099346143276185051608072969513315032391702932983051733748306769776131649696051602248918590955405392100564673427498533971487936235118893985065141041510419678430294820962721101115404275901770529079521743304889882803841607330003400060709736707111420819186591699460386286091635742078830209898420418056014293946583076615365659095791103670755555282362975480319917911168856412556918929186700208189837052672414357826030230724736305001956772046460300960253321679295599745061242889348725995477275346327602932180187299691173282363379219970000545609995094164175541923115920184866755069396038229005273096609949066590935449421461858901454716172945878481747002635194152767767432272983898832780910899184439372360955972849228903195730460905849372971804873568859697962887685655195681415850509130544365909764754837594401515175208299959432874441465087957357076807010654543865128036421676775354034576435617077023890380968808639723417857276926222891227676331215053232622778790107996050715129643754837553762293263750745089776379190386141234399649729017080327167530872373977324853679346265816132939780213622052355574140865558570177482353414081391396191553809053665976583779539222637230904225749298106270758076891263865045995357114645598060405323769644001770265899628140538938261016195806064241498643792057010908193640222284411255764030564639825019994716488229763959752474084829021223804642999060659048694457959746945854072032577047221203388082903784000627459683524721455414355158005257309515557987856766278448527242663593886666606324361451951399955590535243951068901685462905709188312105757790250004825110256359545519788961640050157548317248703375528571006527183222513820124555655106869293465934323297826784573291736781668107420275777847450686348677150939829424370970038976355507905359439977910389299721395461246073404325708843101669852652668697685055825757293832397003974863862008279553791140096875922873960079218167254162346464992828627770686979357542323983231631582216875485411421552882313083478849963400385182291201477629593804528012605584406019433976740053433459198923501305815466123403132163733282809276737721438601974619562402888055454601015134807808855817250384552316493667006113315692397104401402129308377918834369500995879037515835545826346084109156456557994517109221897695506893649348916585536967620056884532500841166113077581749729812674250217768047261508396829187157974074615890999044682408572822504643266654485201555898881862584725291265489936466629890126142047349873283860313341830851593998056426576149180942412683460945645548449587337412974508952179785218418731942280362748837761008292532682696973366104053388768816033370755126757618764998192211921146507207106449182327765099885517770078132594619508894337102643012944623700377538470408594766709009636259545833148002203141442839655273833879740762607208405878619423434716559133300950841908061266060055811337994268910942163955071704091264269641759444013810765047096193794101154811795634910261867101671970813846122515836981338055424120391482906995436802482652465604379733349718881004354680345332962868192265906018695171617151884449994055387931518643611830170875322286214439939748552647618104337741268910709743953288099731935901957590724861269522891394319367208903023044835628005169303470486705395558437429551290327546506957003441453253601068744893829006550915485269083119889339168405609979093795919515482680385352804283581915259127269017175508670058834274078401793374762606108474334122307177905630255763878359671755825330181264229063377959173455372757217610205328287724281483681643950779263644077377121067303715685863734187439497791299647509816627739187100166138995932970103388718037035699612618229853380689760475629708440338433369384152510399642577184776783853923580014619192628812233336555908646137898599172611344977566154879032015999736865768827475639914930757905753101447631179237185938552102200478182666513540915327284217273974789891786169960492956940569768679595100898050505744205971402133025699336224637147132471736723829238083525727903857310150994417652969768342646804625501050030093707664769969139245559990504163990888103659597498513112317832144365578928758581940382748705526956794420212551149211849541468490966066495236630553638752268724430068287790184963857383550560364129925658763441252032434949608241915938238351865308935638127531640069969180116769169012420768500004532817661884572257009736420148411475792564933343373410640984408163126857956945799729771648588496224420796432333504017179242088776929091110486638802730324725047600679447569920382903953278086465288129385970508556191803405294298184739441434406417691405757478066046468957154525051738924898850260272742603144234574799340826687442569631986236998328750933808972391546116556720735223837513795207734673971502481615347020930045692272966971058073188436340812490894202100986241156763405497031501798439180352177739991353140863840010320919435726276461264886482983015409663281024746119560309691423433094529625939993970760050228837670212989684768464817601469921865816225455525439294420777006299570000222063205345546794648834788852020298382987262718223609378092558020940468933653592415872636238524419372660997407672303957896216676460825127030696137479906605299494064759879261550401119265571972514568822372926952565565485210052576961679477740986236795642511987395936880824123883501568178643665783404925390247572301195932329998637036710209828354499472812969018990478673782368932842544598043417141373387354347997031314037113356152099539412050657886150683137811532315140277659723492666814118407435591864151833641278980411580986630207311360425678054111949840041428420875987742369872629781430054215782353892424367900457950631118895788251974830444417915223797143511135534792186561446103199644616078264800324595955678644512840747847409575476179274733553201520268987043890970846174668303637078003106109918179987194505273840164425493971754685544460438296391568597966835646896613940134370427703153746570131871447929111986143686419885294971296982281332997364828838329396307639494087266334526228263111759673713574384968188096297274341746626364974504818321485996038737400931068189370671832293328083836947159386279681376484017532574025097886521097084202425182821466851617135970238553117325086256695446867602170012302047627055905931410816680594405477833778625192863345737433648922455936292629150122855563874208240768868405375302331391234565162130294032188246283085925145109104656159122276465637138023142127596692339400856625653142867416204348216801420434529630099256160893921312162847029683729166542579075815615081995635495430220108636912939114569766603800116190159947301925024496632023304108102997797507346853126489420414675177047269557996904030802069410026016851290818935324624225570879818652581930098562142194195431467943354636007228526598680984866340421437505148222717950880631020524857162293307382010166347401916045231795732652961328622549848810338210583257916807743876901449464523164794784181967010771410654327790311488538841358346829043010776076522779358644628669629293306357735338167055048147845379674636537171019940944752080536652928735264537600850709151143430030993315095047138119543326336595858417661696966500398785570230945478368287557068397982020709054992147610825920281778583266502781752556365654128836342509127171784822855055721575099475458613735642383772494239222223422075000608468175921020684646621788819034810728206751771326359695137704770481388912566133468996591982944856522372252785134963629570814549954263932387815969949885704825291558210151302093250648979220882509776491335228040141432387678724358966105134720910593188554647338611604426639878383749161365766028458981015314518433858438245983486460068737359160417552360972748407625944441018917327207724176431137537238504650120703087147945696850872243833394869420616953643486387279832330452767719776863562704526669970896413671454176998706151859726533620760494336153598715953136411002811368158391002428830019021335997184993550158079783405051081687116134275551016915756351602140703257190667905235860440304159637220088205944855440570074586361787771518431093890829907517003462401417717808437267239424223530291252813044785736115494752502887629355919447682604740539963771978398834857078618783094486381744888626897960930362261521086000589402834044147204290312409022003126521288698537958131524709610945954236777715259962365686630083816453586584930749797544869232838944082923587041267012507319733213317408767035193542980523671333919247017903962277333508226020647769931888408847220757338848007564846050076238323957199312747972171222739994072700783644423883833227300636792121599824412469644290883165258147137811023729023274703672765691369290583524297835927227258827125641402460440070546190577178472593504769247933136829665915906965659690194522202233345148834640566975096289172991471865698797493537493333074498762214260474821106268521702900388180585885460327029617961093267763446895233132776959796271311338823689611060486160176522994393402504118815154790912628129198757552962382582246058144315550196719213563742707417315231895288234538213426816770584843999548253377088221994597967990943992458328393892857798206934383841270534185085334086235612532247804755964348299793436706283362017287081410684172082804742256045427107829817237704074255323632684909813012196845637049985837096599339946907025392782873080205560809782864355597826974650414527247374225369794877257505846101591329192132456459206682132810392055125106701305668875791188798984999046359431940546846265522071650641261495466097114535882830639902595622970017937922983593861884661953969076963686234196557539391780541174184276167762382029715729496638931879998521442371402914686420436658528776879555180773465980053189900575359495656729450551351298664604055345047855598184160804736487319446358393637923800119207090048650879600961249238807675106360576833291127265603468031246378379090631008247691196722370988197762591365371044565323796067150409420318191678513885132501531722491311291574405934069053623752858639848767933114874980131062169824978171406602909327426372176579355324246040126395838821674521628285993823952055310745469028336804451340426481233837550143553492700090771173763135236072076035583015429349287162862294279242726506373162340239085034344635213468209132800778476733637980972482249590930489101608665735682363834490730013827811420375814939636816977134130050357951511450538531893574159844799327665747257952411689774181855740139743523057666910189957358395974999727702840034350660058375404978063444568108848568139038141617707448713935122756565595922095860823454622676669936075397188381535891881317850185820917360782024446101316754222765812562679555017188789720115403062945155946805605109880714773986241203393648546244385241568471615770355637444426487752216658423396644019781604308932127150361811660581489226016023252102715376237648989233752396290163059149637063338493448021862188096591125601048988556996472929319704733476595841060018894853424469890539083562594676763008948713579923484022155573459240058401963282512940732295760207200203388033635306642743874874319745247112038882431332679768260440953670041429303478229547716116025974787120905610622996716361128183151049952303879746484403130536395775511528745322143928116183652679268294205195402868812026537491098514396070281304464646367892304722121893992129448436600358418600298708670970273192722351035783201629953162481514009399758691509892141001395564738230006054834097460393770856081152516339763160620527506063685366473383019907630181270077981606413384448118964530028026516539019555373876166002768859705334450302765161175825519397438545207612845440587572274686869475040948495386247660658851199712846771115687598112653236174969937998369657634684786330644656831774060545106709570093191260565060710047524856327698557620232257109995178357865767280352599484849962521328215958558018578164693734765931499175323028713704407981414296882697794516858803657087834206107889341581395693206180906543104021650791719812325740697866357842749280541003292963646082751158148175038526982663346793801813407038371831434178717369684712335483479668069616417088677810933291060480052270263882407704604698912667870284688946927374803454465431072185077968890277443893612099238998384278703938995030756627607131381112863365095523067581565459041306985343093049671022034490833113789472929785430366779619653010951692232467164146686123050781818903384506513945693704348571303411822798671691621610192367280887988015699602539748330796977154297176595972037719198295658110001259516910455379646739077405355098142810420160920879183679017707485296363731717461155524307697998125254868370745323622823357681606016252905438496334852180544641140754145705121241163939451518552147650684630573251032668959336217767350898365531066538069605667378743507969703629041829268179192545265364691553052534507304066618969583026641312451726338614955602251816260854005557481128423248853512933077450978326872633329426997756399052733439893744369578016262690803596008378788990915813159093029471429532207910330278286082911907418592187934867567257792466972419343512664647214458405186961010587950509469948360562291004145601239857431722951105232258876629271214006339511290419390519567097662710766593599863492826730548726836266806482075393773495210226635016537084882619113318310817971986421228358348432092142178008623895585776416021888662611023918400323853330112460887404432984239023750732409817234868874563200719345750063393357225025192552260388015160546195596258726103831405751774953007041828400461653903784251933154517034972702435208999781856133424987686846143601630421983883444882352211759688077213109960008757858420904272190028349223429158918887428215499062232602721702317453766894819423532715382604209245083233664200007953657880704401833490274423243028048959557910117811121270472120120660765517339316522966017059665317081346981076619984423971927823354437672026780103060266734368709820618734605539817431651476147652110813461255694049629483814935338585043957518997951797956612650358185280844144016960007392910589910312911435219602835406970023015500272756790847578676693513270529704686608416889854920072306046143305771988777914395519504667674718158919672079939211206352662150745116860110515819307411106622722171220531338464093786028311617789594395246299021928599955775017610247690588131702100098421158500238290382609648481509242835237593023143386315729302630915036335101919757380297853246251968905658218454116347549472223268989178896380283652602037324942547129182963377723882601154061421058897082047561104886321765919887130610887626470064854930545580970612154605435507837068750972477003359573717997076500758085868310279300326007537630501024754043038946317019278711791326756715405944085907474920157659514149405249756330875080130663873190474227696681314710025516504876199574176085463780515241750372141165231729141498100176870258499584082733442633531484022874396547681971767606362876196664680590143655407789158116133850764052750043424028901215871821412918106250314419241809203031575415583192784551512407565248159424468404603547341041281947717851027154419421929197035699118868100039870798010135039314723240540910888702298335983861383218206543563931264137948034315050636355568098545395086589511724062094719320717209896442172135358108250984738489934487832776884198980709157074013982359409722155504921494955659335754742008139137664927668124431637730251741179009572222470439339789755554621090325369743308939170896977055864858326265498342263656295370965165547959679622916802421790204468458684313995575206871752370656946508786440603021082770212765836436298771494299824822111760725584943308782466604848884253848978397244483228690106701030273033230866762570418998496149705046615653095362618740121731723148094088324650441582379933336895202599901416831429416694992547138831819312579521452821719016073973678570449514667874695505255182122971699959309203239880936419039014274062273516683066748454766979447795052589187993980259856939872500948073518034649110830919347809915882180239580977314118687877994717605597335590689457103795992563630513394150583724354723383617481579785905653318649585046127816325004613344363154624001788186550096830961202696743706073335341560129833680544903826381071349378719951289899063778563650384921930258817100378110371289624578354538204294996427746400041621240108513050230292472545708203078126022767096717214127649146803677297394126489371717360704197138212967535577938302880858245150988160059613501938617920267090854466021727772422264239199413734417374893017835258322390759043102084312636698920638227954732108040088933005279135036601050260906297807077119668072202444251221725115741375865475513849589180665896498989186718037783519637632283403335386742374621712059846248212020011847813478051047985056808935179449686845561262326649831930502582143850325140194597404417251975394363538869831594479666198488926350428143428357568099691500204370244039540622628298547410367729042275349499082603905481748746330345522377729145268632321945235719256472146593071414401838963992550914112322574033260799223105400878388383937369705107438376034667738983370443848452448335402785757113286140186870734238944572748502539485411953502472046187856216579416935440780917775657410739115980952166360038222186616334897987321915084144884565302921426759441404109283039502532523687374746757856705054051028158965594282468009672836269970818820743604943193644941622596082474836012154074495497904068616451177685230335134174687576989161556903112466638547556691030319535007040936982545709739796088242729248061479490606775281935912170782153278551299276650686678074837992599314085252876027879181616402827428087620029695640902738846175624153214806415541605165787900616576444708894157027860334806593747876337804073221443280086831094978955662932167271231150505833218505199887119267849653157053402742161171898747649774184337870917493954841962440774687781167699583687764243565799990850359809496607629215765110733148047614473452442962087727354783887072946940058391589432929387138482062546098467790009425585199658339291792018610984955843784925908220790533330631749217491216553829605979062191401113851058695618236260628740515514177906156851172210082081595003506043053082667246382099019321466148204216250825518532677578170551418325085011062524956940064163485285621500812529455430580301486272329416123535642600953357504054328405442999866501571278919798706711632843208194255136626874393644934520830959349586796618417509954465969668456885074594597350560604547570729438483374961039227137310850551510073689434620053674309512253153934575925114377202377492425710885063881019892346444150067824658641153178719734611856661412019910210098197988704599685835334070614439013698905884341158516401465355412161158024848965327108379268854842611089858978327082509000332810421457298521901083436608522054590613985187373753384794287037842496226873791045909995233367519865627045835259697191621522929780258407035347542750777113618719697765843880151938876232122487676338550192032662101649372365084708693092959515656431653870266260599330365850523340646808419751077725103543049428475854877501539154180974126312976182730724031501780443950399487798239265527556458237979860407605147133088503785953362890715994024221114522681704504099722462188739522202932391869311900260260895749495642831820906999111594879944921890850408624494414384473609471730336553771733402972559779691025213276945197414806175091618519196196040404666118008805010953465685434157647133385693012017287334545147091746389535232407156609196908640668526865676111114798732690957335377755988881099303882905755152839570714337320042011628597534510711014323266746588112031645771054668910433981732208807658761956097033707968749210029427059340381808134172406560319359971285639463989859301028536410692842583078744447077504728139692471734614966864863271368036334889603672478276643745483457954939541410732320303798833212801249603457880372122880745331549841473688668337497887487041644264245860345396320394282007439137122238840990205505791769788805368298918676440749555900134540936776394573732967096251336855021020521938267526749048230902635729747673058211085686981154593753288263849522409419513068753411924946951304157742220547213118813217273310281319066839340166646719276398596611587743259905860363464234808475398325732868910843307902081011826668720216897108289596231018621848476559442810315384005213279140356300037892752500938962113703622204449735294531294153379815259119561302360368543661535085945826264510554640936151699116582927256310338321592799558264625182223232783706540031136651780712997793175800316334452650602652672546504606801967675758120321388470538950312336213229287872304201880806828681643325591285962309710208880340979228219108434272058291406080006366503258538101791546539338619057002616058516925327502186705635568731656739276096963060027393488967178314631036831086636461843118741498137871021479778669404630872635772673928268711671923130131079643795627436991196358029477725518791531062381967462088302473901480354194684427313195031737173353324072784431006173476812239055466593161940842949914410286904068309050319605354480896998452442700778137784321794323413247032971713577003370106456112591827073289419210962722450867799377543558282435864850819177714833900423721861958059560942230716426010620889462140282708440520988351571510803287460663894535788710326096264644860863799492185552577874718574660563527896026380069743873374196565570067772199840617912802598863545119714471059715050265859455364190122073937898998879076027985965323588872585678093807671972634618540492940246378701182566393130668313513125740150093824137415338140080270627516388302058065673152286053054728513997903791286750919797483760761228119401364324906960212901215651026764813337957446302723191241776160439589631818313522704609981768109116235826822081407437805126197544023305254144244205361439916947136727595943850523722421310935149076598434018462071525592056642650558307453618370139494119683913583797491774263734589189480503417435875454730443764259948233604788716060091217984555009079088103722404955803735635744264738325715094917395565032190161532744637017090985258453223772734926676693755275613398844301847357748154178653729454070823823091323166292322333786418631000825688483934692543274453126019664213434694801043984369225958357589481702063805991282413520989918843964528930384685141447867652905461679916387283276425752270493962098183950881672699625553055655506554260188753074214272132874122931554782215275310673886741343139361536020875440287461222893792088800938908124772596697748752768524653089683764937497330533907486361116427873531024777838362594652515995743332675258805282328313437893664770809910063863582218058111012456698081515230696427591118071286969908382179830531579111365310426675836817093399854796962998615213711047218453727676921664677799455029890329217157576784046823685395528578888403000904693750721405815371313667206712193674700757064294099465787142473672663733681803065427527205901887253306398669303139959123792944753919630135858990834592729643010752648852711269030100938597114723753131793558394708345473073540733335924493886602000823282162121450756394995872702734804940376698003014087244419341858813611558514057661466773202381177752040562844388168672316604721124860417934231721109637004672141140948161048662038823961819265883663670557625955844060215411582166473399909232297638515178654163011762530518031082858523060091723958538023271517946178802325076822984904335112165055915490698065868206239643511642208971252770332980136858241559510711270350021754945850832396804498521799010743644842844712292868704295795399405714189613401997215391166874221107614587842787330747244345454646803355497071014044111194046340481152712047805668298223180602660542997126293171773192249783774853927279879452083013536732963899849929034359986555021873910259802119781284791941619010271780631287346938639353727687905379097662740817016709066144311038917747211123179928614244309466953747256063365643478414426239735556786545232475630792514412365608294165629640866108577156521989959722380173172937259050682433091448310785075661453031553432499945201418604175829417164911725600834767724049727610332396936088916338307899076857347423293951304537776500742790247062538834144578075828905552671979963133956417406325401475291319851689908330043655092400609953731752173101510566258471577267690286612163172955270110773767909290093130961823860463429260866650953668143204826495018669679968285435423352961540181514904717080128018740055639334743869209922848691865992361635925963862994137406774155204911381856340633113125430541041710144945381316325728855633478729990107305421454820803167990161990721420438084963251114333345722229654762863922630231862466821580714845800455281474258857423810943206724947774113919175497889652683677695422725702755860631092511744923130864000043939950846054051291987802863611135657735877114436694407552416042056107336873460251680609895027058276530291826860354777674999200979226937776838300759819558188257260771220501054732305603943952633634327847709393284534834224106099997323539606302462220560557218932670480903361575941461378290123815897969045605699528314530931187120989128126881208113977501272345048271756489587820833909302430409724856577717045017079341551361342887918147500475730170964829796199416627940353322160223917295377940468743826397043853866407987186760773184455664271590424119626349079809420283880904846824233695385491064254618455712949496188928658252416746202134769219478225674614328502498753012669618198092155938637662654251386694250051572927002912595609381894997584737507566138535610030939285296702466095197681505588123406972312033627229167360352356371398418085158578922351754889384069275912093393400951888622209638874292431427023834101766314754792640680221257063581207481890797003058879824571615892811264138229413555177671588932375545623955332471505365575119147706781175917936483718894798669347735005221741952874134000866798770834150967938337226982587420629032746410472061043450090829129134152336507961063441374796472342426750383486308976214537631106959354914790272014486419507704665696539721535885118378477107343635806807891369694926214920136238524032196824050267168470923547565651525707206800562831325419824397350838754307563072351633802327719468552426282866503417115561020136900362409498489462861748520431598874159368975189773159859449654760342830520359317963353472219232189363712376822192798299429342962918577250627235165651584065376249332554245259707135698390469294337388519406064227379595528284626568537419909419040306812661018939210912550965416095437560449001520374449263265113406439045721442397825268240168880861182671492245977660409406114046463936886855136669389452042182103965994546766104213411360917154146114917248668127056009491047633198984914562757784895447802576237995037972855323688695746264591014460528146520122193565282270031626270558188006444848280647519484284319837384513525223791622502341788593667654129734352086759385151731953493038640434321026070098297459265797882352825069007141617347693936172498784817956101929901220126274006849107481754519005413249961692553204537048156649730719632746172325542579612023116289020794173885084746992834774273971698769114130319454312613443181175173744325458485301734987186486819182056602211453960412824522885832325002153787619222790956404635271506162581956164356068297508803192806935218767000011865469547397282708810272409641053700382164025776766948952356826829927648052980679391936563372393068359309518779380308500561259098591009655972265890434969340759892086471851962023335638875691425313525139007211809860775786404077310268061453934640703709801671735985464859779137574599335325895282072491863531030673465423720466296183368192767830204605781526321939039535566287479369269255263554839168403802027160965682804141833724272106174610413610832699655260883600665849965118022845388982549618483988676966008650967433914752610420856805087124780969041397946165223213966947936604046650852134709165397673821600687216278744858563652226175360144146175503110914738983149592750120552909848681295621395565289574592406481613397481273750365831195932684951379903265508215579760165781715991088347168394032183334838995332995729225276735922802185960342534150598678856441192217739874858779818476867555102753881989196618648044387580893688469448058119090772559725439879631615266838079318391796889426402490622395396232505001993952964479773901270162973027364477200231176245195818760515757912989555823389242720578409275434929178639356763009274469079371611148273348599286352922195624109567483124469658168171365675435379820082117752370505938405136599806937809555425361881782858307169378445610921996798558461272355986817048581656852391917099660345993996037891290544733231181063677665967326514481962008463181329995990237579531372905181316392865548910520194824064605792736747431653000095618841903541902143583402267541835359028467629937040621140205888411373741584084471195016320734731872139406641948988133024683791397247459123068855197925111748521985131019878970407496445509924152664316178231605267744448503340937557880005032574781007456399498952062131842516824445368787311535602307807595384310544435479519424261264550057525293767629491512106793750796792199943219635372975250374860561093993016776149003688097521965331177058711188476194697077581374983795955776235293959160946921913303546073587722559753620692510192051810751446968012157017579944946420373616749857835137772732585782365675660446152642158786180992997421905835167777001684643577618249665795563044288215618566581459798277619085916001743273961050792490206345182188415118185090464878973279528282228938587814814177749404308787924516277810650084425546810538591901783813549618832410375861343511456979039405515121561207792572999011351352694533289192321488154473568420683830719389979767263268449046973869646346839704476242648797411099291008870683956739668988771166946566587946428701683057016564017400106650558951201139756750743457015925701866519808013678707151371572491638544041323381553496794082210368343636949046089210682790280977027394584156805610613578278397902932492141963472813416360880460197744568454176041173432480021731676982702699253899134339207729673947883594489338305187123033586605058908365658845626259792210100593279858030704484764502263810800197641027289936575048069205503060905648014394059303536036005051087895382637837766475363576484717470925387372215460498198979295892394353883666141201848534406888666880454032292229009956852239620859015732241313617373389526970188420986480542298969896880489802429603231002905205224348912189175059580813014256915441941838816719286702333582130201890877308717603785045931526531287957973610330737471224538072131936609788344058130413686423198120382345589580912211810747098267729794502818419772760532676304130978039176715616080653371766887865955698952077903904362107641065789367637437834977976973456700863401621519836994148316326342605644683789076847780110141132326542949249084464736039183146179770022527875344057772651541011251610143850156055093976088224111347177244158737604649444188915610319097476881857896847985178497336107992366575663611003831078052260291654512595996285011587711438256885020038280487378264808680034970952928476261871620468509567212325242301903504056254288537571377264529540049906334423879213820751652110748545566660548523525958566646010533184413276920358662609107176378521254221801968066209845178710808942998714720621467241778723793875761157164957033989991664891186337936247923918121148906294533908504076831950637355685984322596963637443336392210440199856709316888524410119883248349063093142133830648721514130557362354551241117374630697928437056804291745005962657400347244054860089944227242441675454089724176687972715228724607168721403324119325336901514502991409425476857591841268987437619464979150810092953568809079290059683262424295035328174838526440832337677278324828384556901851121780759365314481286182159374438199621907417602705482914999507390058373614681525840529122822839734939566002340261450488065759110990537035277398397513448536507725432405833071760335216778601041613511533721916243547870979860231935831498592562814276234984313185407708410318778121261483854430208808235292339036402068722278291191953377486486545055388344008485244365842970577967661209602583733393352092787821609789305482919502476888352406067967176213070911808485072835857491880763367699706917864376029685011278985937570298619536323022598718582072269409397756623937233158840359661734164725641288966236118537900911357920197649109218406076712147640992063692282748769315426461448555831549693837271007828759157992079466886441843748828750691180954763834964464696604584457488840044534123735548784065186898046517385832548350712311898101995054752278942753793584538803461829061404318095073905530022452659244091433000289615366194351436871582547100733744272347712158779775359617437814097760031152848538306738166201150659157054154477166632500585590341812957156990814004219329878364773483399800134471086546999818575870135497054127906881320561980446547641386207769905082845495199732162986454716670410495611339573224929739528490451562338398232539631608216565216164849489454151704848150353720085767123505325701662470340654307397123896264444433047785978232829124192967475369713356240236432389319509419690459869937523746585740339202050844725842101712954538402900953680592549374038207625700350920584251796852019007207359201562739013529175746132287420051622911959124129287277965439230187760471554704127163607819997945934977829690212774781736657981196174534582296941600289167575285207773413321923874275314112654427194081990245779057923182410148195543757188546124948713958963421945575387316652929843669335548360778731964372010501985531333169193223249151538952495880970317050202198875497897849869064280967540081884646945833201299754738602325154497400953538856530342057126915992505196595920709328594933349549352252728194007605217403173939522422309807261700370948811613308667761473072578690097971590589957333694782255216080270023784742653355918593161755482895609298793063165283233391349208682087782286695272530740838006077509946076775372113543468201172048597379438229097080721192643840649753703036585552126050612859347117057176735118966453508330064038626741832017183921560959809189096612077952686861835478104979236886281661944932015876983952092100523118201959670482687220711604416056232762167278462721733026302187872726009945675653283371787800860339233986484289994395322283095875850748357849732994421230336624430970631340301091738392273440139777395830436658129041564867878030490951111130428984637184693882129076853248078510201505298526401611836397112726315852477018699705882831470364352298236328369250854428545478822047862699355097758108436158196561688767576475440968713333648540869638659353316145835407619254791232128916296318865999584914016610327960743878394240291856678859259956170796552142699906483246914734575480047964647195841773161711184405961635081411656497720487675061416874189733894968231045113352731576556487640012387561695529435994959157732342457098911717802640402866591246150689222323082599909135929961822339399934334155015159749768859700978838703294131675042550831597407123308315598816727070981528807867999153482645959156327857146098564078669809221936288512296467786751935573898483804658128931310941024276739273205910428556945363074418480915161351665168044595648191791931327065129832915497539681516370279372656545283806117866431013793740891550802896220164027458686241203919763245804141758474752893980937955751433183904153349210465348588783370621660812855649912779191150020774736535621874358898204466183868957914122479525512859465370687045596068595529906871371696848565462333571068341491675231095212150492351649200708301150050600275041109475410678481890939344873052341849013875533436992765916843640853848261159927548945150305937646047843177693341313359589979894617982482325501087523376773311739208380366554181841161805382585134561976473604766253565199094786647648973712128146519400773500314891850165640614823691628666768609722632985235880489987461833603087378890050832471676016130186208290465363673668200438409162645352498336351255890658484464828214882538688955341357100561143962296049382156442650413213850564537692918050812349587012284557545523881400239323721324738341175813615399221392991976128793411977406559857966713115694891759908387864424579626632981547309358246319434632537414428843368727295212154079498005297387383986301774613798672870138210798827580716882265551087728777046910594431319321784146400784441500114614149493034783372234459700164642853812292092937796156969641287206482207218697654199456958790158996654534816435423040212775621937249762956280394667971767768665368409675408928628709676798913789354343808456690182737321887125713985999518970225989531015938928047601431210624134450180232290450145222483248333282469375592959971367489369624975520000982021439892095062808343812075285812362331043422263272798443097144261100309981275949218260997022222775147960125296433133508866149969681283055907430055354230672699306258620728801444903622554643374591657209469104653884371668597459249903477072926229270362883509801628597222730688170832377831899228425748695862329130611423013167286707580491345352517766577486426793993179019725731630642165289932890130922646628120147145719977012705061317356149537484921674975771644096856397335048337455139984384157616516419783084155503600423967212541214288821515183678123230035773050494133182774336826441188379547877446250696335090324328103492529660239705764081420265848531513478256106296480361871009207937028190557810091326020528167891065223811439389996565152334085137450292911061295940851098538870499797420851200329685878400287510701805924936628117800064318931469162911186096644143765683933877163165695944369865142032609835924326013627972514788087335360154395972681236690837861958949431593878658003852402790886333039956373572913808585738876902390354731121402279695025764280433090683156931392121931102803397218924042656559844170170955939704229394421271819936796815402866040843293163322150447357485007138191008818921644656017767517992371881898101213312018999618454975115347846744491507132648146441685353934753287634262600633462646974270294959117814785285480796396004902554337776835719745723894719726779670506202955202593846693694266918225503689035391145070243530808577133399775606357719103662683730806786702244597882402466202530688827330982176734658315168852215580369328524995902533958365129208166935550479802921476547445678870848465345852270815650475933440082615278907667273852201292494574504625378817719681058696066694178595681320776880519404194684621127224496993729582932825026630764873062152453485020111961153803643873617620343884821748861916983665235923684607570769315208300176187523286502137448284403210007448796597730640665473607989413610013504556921862241857599877302496124522642284278404531925049678302627956971027183535126054593111733010685029723942783901484230000684108961356811414486597264367999263857580046511330544885765905753268977691431832661193997909090596958565153358328601387543456911847411003834731871092265391262944041418028759233114874343350990195631929010266545701125242559613844483550701901724056119360257553857894054546063913476916016458697398630041000828952864829664790173297650547048513440332862081234886964660543423879342611880707216856446558186235102835370630041908785869140073030987933096325191152070638604512489711497422951373543907718212786941810962316652817801995624688427880225853288043666331353500186878943579093057022731888639139093917338502374179526868723129033828698614692125169488382767345139850049803549826939890060676076666093798277741830063350492015178331394069233546441528256496157490947727477146398217685354817717059425303519353839416535484502386905356228531156939324661149445529111461156742130332410762647892004961131070235245691890270867084095750448394400186012909500621988194834318194855271265492528122783064288892739243095119499062132645531386686716392423640445453774559381747707852943567775923723352980374075818574749421682320682736291434756074256839729359540474105188646175456986085760553662514085925359197922842046625204196982535944936228582823411032767120936483245255548448402971166038874811466703155896443862299072509177609320659895384763950583088088217485647860666378992556847240578674805325537124263064853679261742618764532888229564686470080689641213175757789820423899483223321028998701580825649420581501656800080641800255983980928723746379858177419772699219946661695505518649261717313745963480016084303580921981369742316758326908071098153328367023580556041640362143011128190069155430733766719806776363865539835658913461018775250249841072469479543459257886403697731305481822467377632401858077850774596313588566094224344071431085883654192425760922000968281716078502465375704208687257047624776155004275874534102491149419247385424917324675642114458965431661763273997828283540507726710862850430481136318141921698879507137753606117626282450685746399838942804630823127198753452067189598020133488370101331016167499724240919917536035394615538721913930896935354310347595302016495613329538473868834413306159642704816235619446125749765103339891557674547685814550897259153850442577302905546898077551185259165587616244658866875813648690835635492334371695975231272880564851648545721529095598732623029616068051144522921812905887100355320709430564687190937053802989348188724780276198326558218778484937135638232348322340285885714175699500413926832680958933117673774462906353025114402306582894171466270108262054955497340251840014037485339847781477071075241138329475861043127646207283479210946448633872280763485474352778925582748430067310411111462639640800063607799355777445973171518174378580867337321569670213663699588277085282265302199822333923349804171093623936094957287681593673434531609376760748843034410100807641408304043774386156361189730515000291638182398912425887738706183165034640972037784673090607051461661757266382419860301975080013822491643330111789501706509784607279376239101070738554696677574179293033319459131823584246919297251164871922376698700583934382388674974822216728096562011777973461006143890785083781767858572916052193437892324052729241074583571213969300743435197787683388091024730005731757719339427050636663251500838910752995434423169189184112534020709067673317131648985419917905456238063513937846742626791845312235878050347693399354644073987356683467023457749744700250182022361533610543832263461421448179763366911187948766585614072286171921787970805919680262066555114107447266803789689506687511520421444522352867922634355115345092914309390376001666522370694042779245038675472211775802496104328511362967554449739308112984340128704578488550282371683260297595637473487209056293967768405743751824433509035251169849763941786344320336702317130121067994772465765679270215848768407340315038811226634191181187293983348258749687721141917548810918048617109690505813550630077183002800434972249336032054462220839305735148988779827577650679348323428847740981857427710559268854224691637760207255467183064788040508259602305687201976116680663994730995808002086881546658285722221117583295439245665345284839890282515681179002347280189355047896948678762014528765237413818164850313976931452934161687279521473286044982397849207463457416632814614860118571248149944408341543258159940422632820207248169107537840646460076713462741221634439383240923456864431540776960579160984144794258635084456051455878173395530491228755328430693703765255507290933581837592885519245826284847352180862493229316637006311817165997647901979386575086065888240595499751707521917700460434493433849483733804749771721419286660061419772370121768726252014442471237065662622568615533872085116681003834430939017725022267379201928298230821532828778057842037298436451263018333468712169929992855709673846808454251767299191529451203046416177262653638609529009505393930591064641706339176038603677825932243091588112621553768844578139423708568666260500418845012114701030415308305692044000831840848336089862670024030534866854664178715932083574827114585113105976198896323266024897801919220078238864394768183527646068693035935708000540462771050253099326037220395380097313627953847821942995514948554613627983893949180995098958734142564022853705608503029764814978713163893193828469477607480634977260376473128235132306524194742492894894837565939213323137223673787832959785458365303188295306203127719428468222281386681617416567803897258947265849021288423825272042756383966791682523487540091821034291862172899408859453815831316666314217616313075030609428658371898726006633768045869598085406683722963847138426692978822551971717114700433230936574177168384814598136044660557888379963754923874257650333352684726088295812411876424754072993636893635981941096126134276242640489863089956272967182663086023919750558881889637735933049424690584977209783540075643732420940755022453113598132170516909672488323307652553259840655247306260076480876809461042486295963699010116446836846862838377713277565312168419692663395184819074741831422875703274280188458369937881024144264879542709211106270453873666890570098288952322287738173315732028236070686077576047230200385809802592171687801927462747000035573672400651866006346972592810446049989725774444171769605925771042758011641442275131822118188021242983842316017448888288814593269229818269404184018194615357627440541761974778450972726109233009521670601023111298251304934601847970069334464083193800287335129414011359822338754978657946491120793631099814377828196290358541482236293608050761697847562130135836644375580215239442672939488596029204878962887847664307699424816510339282397952650444006712079228039747803878928432225762662477182568377824028395037810962081615557402640660048334808353938523796829954318168259777994361550530529106662099417901061933324126873501709472972808123491659771235359019906062160697871386845878695305295075264600822934845769598113104517343398012471862472813396417599418459127551006065202474747317230321123138469110198658045006950595600161395526851174800360927449796959346046687490413022170015568197670622898025474152175797512763759961350836027255412286901584198555778418447145923730535033412685207215981971175368694541998280321643817615734641451088669702638887561639688809593767584650388301969092722232733143942161100604182206191958742336371685537430654943356441973229555642650191561026240187221565110626934114849318576587375917916662686816262077100999388464134084769779769463497880786673319948678363026147523844453667071338334978598273401959040858045397131192844126247611020000647435416629284881933850076142607223960969274967948399102025622718600474627493125644052158968446244141741746295722722847946994175216443845037776191751405042982308547513330690911624288158899497888702646354592829318512837535407508676689891464394274627776169430103438683263021623037752878020810776831305740809641515844398717099655278433378818157517019830848771899822192641253972806956364152839380601981748057198425488204151942589185170357968059468138790082924097875724293349433615635642694288108387261301360062425365347781417426257742625476324638731558569670036787643826047988161232432384715347789370569896806250724099727519870179236008779258549448735481843013893522315098466450271228011217168836786357158128319028254280063961840851491472633177541804588874617280637930775839918665553397211557681867195905884309443199621647867830300474345795394855238967462764956069319645644513461107166127967782556580658237294724215748902722946563126760584657001706613117343400455173987882960513038913295004965210969879974379777774011155600566958647419822851224361309584273774484549200749084899137537033736256138313070161649019409968355969464035162012514901805995780760477608862990560583514951338952796062582487835231689857317193922107045487775986178321489266401647551713343650107445342563258895188918623515555337439698346360582583023547469181324116206633091471926587694214714207023033600224891556017547861313194804280839996736260860845640262121354515695115623905559543290467281008062236994216132904122036022664574844932138201727739996109832560340741272580366391460946584172711324369140613104088853829789597475627516581734127833812384578283943436931421703695568251623188300805338844990154942676698262415074570019541423680385703268765307013881456592153618318221972791684935191432582757254656933324988009443522862803284734135453360101784418497448818782389250089118327675869433001798807053212461838326461983830684943864540827269901781812211262450686971936312313141972741318893697284767062218588904837955308632214000961800599902290139855522215801172911813087219266791606091264417234340451319087013342896459239973896727182624561405312654417964140171832959690146226621354737771416377495746193625227684784496713662942069733097947965614383144358564089113935210822897176087412943916208023240601500460235426127941235099908389900096892363986648723016005708125593463842204444466635336229402652317100143313114327467740853746966221259164172442577847684719282565721936490397881569112675959252068905633954598127047501398446883476222566466523712806018145583176296846943596392590205529087647728614671898290648834852497261653206803522473170990241042270174314982615680409432848319150924680078425306533207687695788635625742342889554455428582532371321457282798228394586196935503089982446334258824638101572014694540896444444785452456716334738997752081196921809999333322746134445308731993498735386519025600215291239312792309557933562680070154838106852042329618858205119094502699943130039551969412548250381124072596294558915602873715653623444518684228225162168095394388606773592775675872833549292530578002389892421015968015650470367471135598250790814228477644329189039359540214521063606665532624527008073395820557172688685664134189003354622434047794152967959840477146476243070602095992230697098242345895806495862588019803084356467148257691860403496538750127798803693890338484075101875836917830146264966591499220306548655864638325571908573433683370540459888247429360081529811917806095912570325994159280035335179053108580437944417030508903217637378729069316820832124309884411494321738315416218261967259476010135052108917428881762888191505242645142434115846636575137724977288716430734910781676630436754567956964089737109695829992773861660192592978163554392802343361398512706097730582988081113308198117854470803759974784536050226711940272913943008366148970895173352545233534758706274731439922572412117608219701861656768320789863067453571308353041205060910401689286099634729537019129534736124891160881159760923578004371293543999248140623587603180715802322649755418693286113113983110307245516014520953734643054269272299561735489355364561577989943038441815146362973090047541953823800347524685898368078574398595198141077161777844522358012561419315773866594368138078253090502170283770157944942312329003033008404410841113793049759295974292286917859621042560715271150218733332609308473411633588708200301907084448979049837946837474282968931919449835763692340318319113196470286847497971640574725600763772960986441939889398933121563337068285957523337391177735980477112840924396969771514708851019363418711304922575684583261738203105609059717919819873901065013443700219166201641926951084648051607870794812294632830820231203698183322378610934629030495970616656876367920050111678032772676009772127773552810562404927278960729337930361883382442137053199450415357975401982263849470007820554961031924923389208581637281797771589902750943870632069893606464617252544393751987674884338488847324704062131821171553681503062495712144919742302332296080313795328622503057716517758983593570325394427859893673338548526595462500165132461468971087865471656204234717418625057816774276677691456691765634223450818722808586067017019444012467557737212017634809725608629303083841274548217493942095838273128352717241414879601991633576736639099454426189212836628100684997036266885434890615163116377797186225376259086765740330513925674495643959844146190343486107080394358398652675979803994345198658348244612471717878991546217200338855739783073820925324990736308077525802515124880532075793274718950869127797156175291663495039729713987496940393694392459733623466505084105156323150549326348855659868596260295016657441445098613466482677653369320593897970447607803003981946092812200658503377640216060839141253256852520230981853274469914231221466676200467751715758878806321453550885498523785600800021368236840172899770661494750505085957547866115232505089457808585077411802343055963451918799455987034656172660018179088866641972405648746352042835825497555987572229456541924959297676388100347714162914152607087465857823474747013933855766289017135226742108459563702727641055148664340560353206592440507521502841968254320869225785835352273219408911997548649051086802483169559883705674492220933485489293637765064086531905921964098343302261290677377492444001124334591239618076397421489036957573993663260895783195527451869845246925360365735863445638355744725286603363440159475611745926536679119231077965092992258782794611570978180013178625230386723693913631134301256603927454230070288592341436250760515135761394004937064873218285025430392423755167246063168332421299820931701750892657660535928671838887009278320237917447719856497043507486352019823595806797551042264500545116242238205004412495841747010253555967567145989463884948437284208968172989042961890003826069450206763859926640238377173070335145389911096917791879367811716311406485177874381133588831314041750806564366615885733637935333339838118378342573578503015741158935108238898539472899289300094528410381885676048973957231851817452961880121360066139604277012184700167480808248836423136096647976230128640594914651677635715776992545312911144243904821783236356745594787004876871126192723947188816266803835935902008752268193000583666199159049681212588310455649229646618648059563779904778813884840776386874072015818499721326765137864774875840496619844038122504884637418822808420155568452410707600100139611602624869810431843719219993117910378735266582756746337224182714989514526824391641565417411048984015296303623738533122229947881393114222857697107690767271359963500683864630774583859717169677982929009090471880839635944887668331292896604167033157900982222063150913477214376109758859957318929383497828003548052384128456065600086410636135837319189013074129081203224766610292240246368469847038639071132617912725671032956073158389441325472726970550650563110164123735119778006884403103908625973365412169778268267811486121892505566298362268183911817867427076932782012472026812543000696042207055387228558654157874518313877599919830049347538269294259366518348205162490687845859656685792419791481355467136477249928130983439222225146546572158296749693721550815509533514974015005968002660169145419529706883518482150461426928626810014657383439892171944260231790499567125695113026768019900702214529650755213916538970327531422438039598895881839263779100459075860719717928911327428568133966302084302598157698708909811256149194174884458668159067909216530165010568096382326677021149989677877122140126164986019899392242860263848189762251078912730628854719937063699730718221854138293920606490444601213333872700128906465851578115708955609384799379634400187528151944180714064817037279318922325950974915411559358678644205145225895586025670141703988700093075608391945593845505616237509272687226785757869412731843853967246460302444471940381261035434913719422980524759045603319786424206767658266105830342096544423547053078347572214959581981853083511005228368769518500584980298133904729511530669704736801208816229497276589155467040827379409782117279370937937479237729864364509024557074929677022995125577097475520007667987933928871612830073533269492587334875548444947566069452606157949038904237334193317922729725124782589380253091506102215775643380698782450040919328070085089958334220991090398161043867928221538011985691824167343297268482298431293301624083256695895173144785989549564311998902212454815766325241103985500760570953149970025906587511081969883377997203796026504339044503152387587596451485507772676318247987513895179006315634289548904404204118489232316782275690933149579650418329702067400016014462276488851304831022672843860301508193067042598994417957655112593763779903584636858447443313148780959603962167663404089641795171058471192520479319994282531060131041516876229592479310174751965292948143552144014932285072491049391205329844714814070523289166255874232835723671437243749155451664287051200887124797170394182738783055504148186961444236641744365770410594250342427303204659793332228429006774774765480941129288180258093535794916850725252648814879256836696786454690570306405696261281164272298308886197548228831000840261625473633378140912257939932944365579168795470850408200204992888657887265364247937519179133258582858077675708236960984408830366564850166678849025564696906278037045150485076496529346790177188969315417480669666597227675413892050608418715076470843278954210731339652077892567213553651262747077313000100929214669953354323702574126305795073885456378040293753800789495244667115659211028178668051854343340482779489790089591836918577167477650797550006650402492257179229253654823344255634236260063728351221636126731739424604951667073643813192414128033381493707201064722587546023882521002216659398264598203266782275080022873861038355080184291562584722941898497316458553362107856700672432768630134797211449394432616509667333201238343120153610384730227625229540567579091591084317119848152823257744187818442323189776691952776882717666157430141417208359345992504758912791166234888740437285842316656826619749827920925462104203615135240414203106430744224214711397270368284305882405724257582304844741729728097467522932754804663614832072402557532877784800857097333818997484726907534876320134836550028093095082054325991726510307382431124436010759384347013755933627758430272011460882522275940373185765861809069966446635693396765641626140369274236323728409059223699672507358386204373743491126013584940859947833823171582355390355868578339331430593718492218098284018363752297594289249440576247475465476721761641097808890815976281180163149190215785176799004473319238959701719800014706708171476660281322890197609238218199431053680166104951883947102603440431602319542029291712588772817614435997943511645292675788120497364504978616881373963751856978765722557161529092356068217121800271008372839752872770891658495385023981659235085708274998229030865918413946917549237396182725833801853923345926591884190822092886423109622765927310435738995478670824927697359469570595547072594936648360380063767270513906580174042827644422356066406811141271375588070562568418661802143423402291780502812337137156798110082140798675202270680703123557711844016347183130068170965971309034319103472911233919918449193336921745650909103963553603324273098597393838979242154587274265204961938914944932567620243984427180549734927260399915595512228908963733377514669155101893425653037000510107879648072139070482907130507485505798239435964024815808979253016785007688343338021623508255898729925877985025770894428969818092593620935470192641580957899707424137058820682993280150242124827410525532595909674676733740329748868238245934933549866921173873864391499948070528436429517139194013537850239531711934790396504433983257918254016861329469243996553917183198258354569572082776773086837499792188038178604799985203962488950030372891792254774375404293027856225705073098958070052247742331303767092172019976989477064531135395030630882109014938286329007673748353795236302474563401990946876161642001356034883749271397752818495956764875465941419211794061386577413907854886458740790708556182690310602507453668065985193314751959242154381289227044251800251801179544869565621150534212953240873774583133804711126908059861612621232733254230355840357628601991936290601708180626214175408564119940848329327238760132779000510230930832774883013028104488496902633083767858575573088064290280283623097422920264598554034344187503077284494725312573223833443140615967125786373353222712594490800564278257489406433435566108186395834110192991534012903371034635830915800801733405477073166849140358791237112388313834452345671490343899408874143789693671168815565532472186102237888951495066577061401097869602405446253479841882380160868001919082083877984336287064722440596837834324642187849056226684511308393485982626451809770865450631439266640747067414153313131841843238703409986364629210209406141806225321816797617932563258447946003233374790162804431466936746583123023090271384766709110187489014586892362266244428364814810770824230478903535322202893215097989056908885519364340752726255447067069196807997304337272220041538267600077479959038472083064727880432729645877312814401793387789005921173073785284979870814389617528195245102218834809877335031859201087618670459600344549088476051938134634529013913168122982706208363254276407982635386517575343506066581391131943532251872367679823677649196425398525017665959095335683575935261691119093030899736732324720812059284450942476912023452513588193533058806133164913071755245048957809789853807003812197877542013373708750259857462450463068720140611111463461547045182298566235457255479247743121154446205223458634102655499192812468441746865042969876279875329416077399060151976581426695679594164988734990223206171002302771537703433386207287626317846372263752161024145032899191619065330390538132823117730630873523837754606666378427301014340649471150013203582911442787948836627009330412489232637552932037890263418272746091753699939915829609921337638141869661521045851610170116959277462672621195311808515983477496609490385828056629888676377452043540172732567540202215258977879466857635768687636447248631993547064850653016067059693419874767145264423290639483500942484991503713779963304002012360411308774557817958015308922901315076191753083822516999673603201372770573509054182000689774855455321203042776947706797584755847689932821617231296477877256682859441240536111825004450384857503874169998080834614150587804404593048191211048639841926760412717706481115359321320087801429920554543937510636590089389453837697972154237997084423185069441771457057714974624090518027704020025637734461858907874755966167098300573759785434649736889637458289787940122045970700463047138011863888751460801067679740422490840283959377666386443071422030161278215149441333780561903856774046408219622041530505461993795257601971214340882536277588591520108469434023803804215055572515626265715078404383231924015791369245839323185872662060699769497329914997029522542573663814509159083963297092586725484732030530821071651253555980814452399317210810710262999764268821475087635095471134240126331229836500867664391253901913354936064232899794806204764766581324247885523183576877931354231785675444506919275468862912331061172464899616006535235259198834954351797040142721926028743640129734547884053581303884364610226542554553345030131244917659844535766391101281313031664689998834941428560548110313012933914856305117853764566589818025947469104928463625908789528276340648596222924203704975283144882166409070428463489990420373223567468826441845417106889109160128171569576825849248440927581601765893776459776137298051570248762848413132741864292015181487382630327295452270184581267258438769777740655902136237859266421689857611585933377211035947036288562173701139159993051555460081940918477497024672038390115809015974317088220274740133439148014338617106864556626179368520213849898491996647288611990873082051556781342867891476829729474708646646461100175568038690917107218716759792771784377517891533772619883129998871604887359645521309792137899093026242055602829491881830217584177905748965053989813066323364676244483227638115062632671310668526063900031808952607801374526424382393103956834913075421025873710616332855069528354915758890844570727415193075482024187001301117067751715662404571564199757931742137706749932357412445531786011279621087840399322746495701607449402345281586136688878210426981516305204256768395535717995692451866539599134445035979602312417149318045416592788408324322779560147396852579327737310583926201064090321014347147091348101434289791423937273379540656377849250359133695762508577940137422992078360439830654251262973387753958545095276253399878057585813109286491954487086409149412730972074063757106109313661825207879828317222013511576279072198458738168153557905180195570187461137943323381353777761608075306940070002457683062114688616854665644681216443782438602321760317093330079739246030468150555519787497492334297387483852805955027493391876692589321670233864439876130405775863354861624956294290403772453026571141250881856964362856151538416949102787654126342192828875599851486305610491081464057949038738249856076077539089027569636226975292913837878612839416598179870768119930660942907261966268850930363185436517800645442193449941104018229316806808501617209600198942397814270691553227095444542681431357967764026608128050265498000341492458963407124166955264578774795431664003697800046771501982141083758063620943299651802555273567415063223115794553138310977377323695563602494123369143407553402231823955966650361830833578637150542355114336544955023947262085552402553835050493158089535971935321281727578091397713034586514317174357187154540854725147654915053622012824974839338720856716869311923186292718896674811779705919002431355212709257391744689052860632510922764279099117982633082668365336736066156554157537007835956924458601710602025205610560872288729959185111010283319748735996448090191826848369080168814942615999247315360105809398987851207843164065501603297403560086502041778466425218134382432805429511056191025136037166090971242766380697150283962234563880717550132204777788491777729678141926190628646020731889913939869363280963449130219433147295764507907085393185054799543428758512179048156685342595718407146288055227583904891185613057953582840474466535438160627166501219853239229149489701972865699536057627797164043790580308485884991516316589147962515425067101797805996924537420864612340152462372499367410199601388790033888427595387496374727813786350771210021505235466403209777264040447169537838033089781129179148735683819652620754791287881239623751986076717338322255849068578941223730130133425410820247664960394735352538304297137201259621043332693441775075525986854776049637400642135983818702551221623593901418438253411160434356370616000921796706326327062013102802707238075838453859005270631641056950058597093756628214332917040318073036800522017559677286467859388657886950070697035139041136990295397945105009252328788778350493884782104820172479282509150664757992022095131965706946390671855560906893969695639077903229884115151232830800188694063028854581659970337897444694217025359828959917353170921441716060032013706125398677816889101086892613901962973434133036474708070605895407299962354248378902686014930356368665929695599061992602381301770754331047084852820794222070995232844825905444652350895316332883812921347879753389721509481370817664719095615748352238194030364530549746114445939009211246051742636109186716794466103712082053336192746779547410110113697506485811206366107882275600208974360063181629372515340467744132782094164302869695565885610980312049307129732589304732457700613457164077938301774158321151729797539708652331378928606479321621354504152837262468347658347658880305803875363474886865172985579812062814400848903629277716541531068089737248951962264855053713761569510697498727046389214296699123178373471226156761802655728541612740448593798585303130772571558577056638519886169527104856180703899800086517811643307449265412789077050990599769878011470811546564304154726459978415854466709638300590240294464106394718531308844616910392830959009627948713185046803630187392448653940461812697538591622692358271822693865074341199459097287292589215911128447025382067279503543257731391851354022602730298395966544877860109467248254277867632507698634437189433226860192236504763991644745035264243795838218234405507072492618900015775752757102545152256150677029020922247971075936367895733256715688113435339153897137893814286561969395138680715232877954895297249774469581233823815123054351931588714723882076046170099683093426364204188341355254579272072533262370072444798108203292341088030240629161066330129922910813403151317477737006583026841012394020045367840866814504569239254486889568235996333999774481087490780588585602703075918370436652287556141331807055935080894076226337604659922225843245873508805945426312279288461697961622007303087329577133582153841717325242599625755676175365311003083310381424756868283467886456219110728528092259871942418321114572214770463120937968716219982010777297914896970898840354964247463624945066337300516674708885901507420539323671746875173651667748892063311857112574762324549826684184305226327390729704832569409041188528808420488310189741060776099940788972536471732786998325093341209226518206495402898283400482071890906760339568969017251646626316749378484325103103473561986355422626526029023459371966808857783411380469289759091237179573766447401155915645196430273791830227202637240780346954343258914935198436596814143872312969686349882022011627095553502639076413533971842086407433813048209410907990940391208244471943488995347954713070866124829218416415074859695281376761300234387010756690557694748795027794892211614675996730469182640718977959128209030193254730653903548896963807973930580387741290406847355809563829510382093702717218642699045829727841166486125394244532113217997169110842051060273988574444540247466024848195499621759313772832514031363347611654453779423877615076267025289642491364627326900126339456580988004034835187464179830107946409327178335885311157973234918951504924538194053712387379363395456574283692811618336899656734851846229619401193272220504917289652571646886663319438994793902306650131670929835833537175780959404042800170205562109951625010737299464843592160347956037761107423384509974613363682434726442673038111180596906072680000323772276470929548494734328418576246105645346210687283086327327938673501206256633156778311248256566086075068850887707594808237673846231699286551393368941604200216346572358836741861714374222068515709199945094445968442652130311584741672369102157361385999612934590595697695917861189787195996481138532536234330100292034941230250401242217333608699850116877620031817636180597500848647765413351842018245592748187294674755086993588131555523043372209383245947250017965334191974357220283836448802041413099158457380394775516645570982005754400120914008398463397610131533604573046659271848844987571763070675917087053643449840204675761459322035267504701190724134456459909673250477852441667024633057272063408387374247851980336592305286837401109477765118097615651473165134715135191465201319099688169817556363754122688698522354671036951609947772209350447299553677230067626006571039195375043468929817601953891057548750480041889657647746813238572961253432857255941426926891558483982431853197249226934059881843425209093935840755656742610513698901535192181693133308553793294034773485269832623311514017130193964288155823630410611630161252286809172489723009029983822419449722342215004400276366483493277853303328580189267243306957984478345681109098324128549000790570208802134447099108759152193145235554851989231534257426310219162314189397157943019315101720080060306986019001952922041862987933456130570316179231180006575708843772573498055920471255302065851907987912898990345084917038203583851672465208045886183112612659558898316294363842165163547498076519338573670495470316229141663305264266743143874568240499189670979039023592178622608987684436125154284043769738469678644045657198965399117401375541380769651098244859207083369739130713414231243962801414833029589479026256702302404074234383094651270408222391201819653406980910462262548389382807256557591665913179860133075341524378806937431195352268782147013696278762808415857072768415229269503502644210640720175341061639586680965918169237466848472597622675750657608652867238750027073290906827387216613803526673376147373061006928289168699273539111233666112481342006614678876872352081775978292395967747382643181380672548803456176415412591240346883405652541436851079966360999479512025895979444821544524932499416490571277871512879225245914463484406267730518993050134935292820873804136313912066582623485688359498008316682030363063897965792568444329678649723023047394796578142807959910605281892719754972231719883378532536863230543589305990866997445836417873285979273550386301959201713928930804058571082846497660194229639948029130977724281222872002968116701078524224503929326625175312440660882960042066579778699243134636919713617625564145917809499558314138654385631948872294051011578161622430291275044038857575594596431197881135258603372317512596691235887375207275591084985530419403711769204277546172611737694996080358318789540848004423060993395822281488278022060908530206232853424851530738368469196730057376714398506172191286697040179610577003755239245451642508720951429476404765765471168993950285447873863646818751930126982911262702379661315101829735363569527850847128315998859225330134793004659255768099885826559591575283844693046522210313782279179648655838074529774973724231396529907804959584599410926986334316332644094292059934032387748933426797903144951326501167095179037637237738480991879184209471170952482336468413766529213503918337177212905650349348777958843000945531605399415266340405127680441456487835905193796856947742900592606606712946842929095983304685313118526514483006576185940914975817464848159111641993032299747317960583222861958552014896689328944852039047688202900193007337321276458472319658227290412446293475453939993098179534917761456525877743350338938763682120003682368161311037024607707372633229733645434788399303787716585565913040019667312420263014451757038980813704813437450711488556736282181796402390508702855012909477655848312334088055425888805908526793055037535274609221467078185824221622483736368111854061375686772517516009054124660728606429771539479394393935378706809840412878114623641017482695931070300476405584046267084406795521153203492643862668159072482420696308511998983549903128782616268741825391644459186498218473498935421698936059445087302010420468214036679791577610545704972928137510680963355704502534240841369651300168687872336115350485315641659508017965195537932944241992640093563158501712913695414827983080354447542652962403928334495038295874674983540072918866577703575887320490462414684231040250151037987966398984034425659142105010631576295282585461007329632797101821087387882522732094861038539694393358012825129836069324784216477179891284685710342823705375744884580313845026829477313207409200507390603462766530071708934890042170044780505125151945904762617753212106254629901595991163999717774194165261635866590167270458818313276763079503760925089194863594362759133709422467388483887446600673989351141159197143191976349101108483006526857383744431309393721118197082272789286661460362570476434720120584171992914904505909861735167789680290088058314587107564491776850471288556152535623111245902401363132347327581100792586890870147531273854662212282458199599706741956518719321523805471948074196966312363478081808130513029915703746985064659414669448130967669207078135631905206898041743501811394213587291434309409897300524666210039877376292021136729516746006388903447463185988953256993380956296397872750072486478743102786979822527095596306769156828012941459276281627932772850715482525198331479491361447530453494184760337013193909804055230563953276567618618508807882763026290118363833533470863444759131538045591167042604210849889363802391762953553833760853767182717782758553394047618391383548136088206944172129189922804555411178228378233636873849422503810345667662658448092947262039530870068582618208250476206333757891489595965007179081864905621039033450924456595475537790193054027409667888006727738520907663661539450331689956305584546886222620561142823788393913109091057947067936874921850199871469312448757466168108754281790206238600084614882920690250842761662916587235084004663690139657158362139580538685335292161047898409278358786844483350316248210096128496421789792345982064175201964105672386652087343159946870106421266548530741154628635306934750489983395359324511156596230914102556302422882617238739054324332635213375708382892160998436006322087535613332489935622630371702835357887067713722995633557102988305961082456047415865739846255650070522931028204230480266748421162683581745057615913038383378411197006832165424579032252953494834321161014685584556489727234301164948983744814815882982250963111340342603938716701473787431414846610582585231314841846461076349489359788426869529060934771555995157275632040414637029833866058878229702647158874016628218715424935061934184325106126009989567421804937967249855234370048497848153802114378475561759647693391829977451133718723766215184606575343187610145161872013864702803002037400745740712777680985506838458739382216752781945386057972417426042980511290766395180526600698199744897256520535774506855125068293296549506409623603567859426232097844133060540744917263634184723556975530782123242320834916778825174810675844880599182180992740118801143843450265845338482176025700192601862937477103793001906628539922630023428605764436962576357183155989229808246541592322386671376237533920393931600878806707287421506531720080544200669481457380264238431689259694669719129573374118452531720981892206651083850288167106728393999455516675531629447922705298537091218443502102123262817944140649750499667747654855096280931214074003591898168721984927466325548656716271102524588450994438221336709150681540669213873637103210048108647740957248943858457042984017735177237625850213640556186935502122061233946488898764238290021786281883412773196923762769428691933749167459991871800825488263908817997443635024971048450994013045718538159756938059836228140320605955804368571481043961790188891519187445645067527110422309731713657829435212953706946029449619505468001148459826628360467469649478353501032523298815329200107745524277357185606137335062221405933273637986872707071923301670546804255001945922799345227813321740382768439638592467840502825100837655100039118789237075012641907735160239909939515052956797591799440678438764154014698475674426243186390493575198815252559101478303723903353189396814365510496666230442918723686293371906847698254978825284338258335442219242240193763323848383996042117263534483620528183443234623196970061753809023271590826959520241236864797427901992227311132405709167054705290487181582448545829184405716114154494758688968488551857971457972984965187863523127282362368805388890305616532302187592340121108998417009053443360608056599387820568612815956773672296660036958130220724855313970749537599142148902992267163428611312868740520024163320550391580595945333165697792850995226755854841442372751808828470464906322293327887817104124677589077437821454267475977324719133632923678160987969555419701201540597396081222781420342160346999340377099178726081565994964524896152453627714052850849251721976419543130927993957205322954979500756133354881740399699399928671618672972313727956206393588895127181224543300300220244184529799587941942540439886656227209190253794819667859011002524132618379537216538721845654940765404214245027662656590648769555562935375370278669470459537332102695029539159674968084941909273293797728895214999743941935279346433423633810272723264480608469263126327582630379661183356788211854398973902929532231123547488700278313633294055757488707666614329132749281832347087165512934870803169766011083269239043225953418479194189791615090989816897906141498988947554247890352642206193759015294086575229920584616858286743968641213270736684842854240112072201484993200442232389904811557133676760625983721022231195486519455276190066043319867114571509117903236665928242319596824810579296901174163637090531747237245361067247706665065060974423401309839918043930863204976031597888516989464644691072168322607230043900204057091766437194546270779847238328938275139241319006282306431375173357848452209081714551831214833046008471734998025861862201111496378258307716980587891365500310074146079465997528859979303093615253990824962305390779903029583908216696157517920454085394875526238760936658763828637069564316796678669795609053280849776650709826920543923562250678689665915525202311770539471942649485682013037750757141979856807036090430667364572536858128719400647262771128719290357481139592313694443354887249212324453922342104104960367917012325522502050480743981259825652161743183250606392127513148798645098868616474699936432429209123593097142988335882680996574675796769561899556153332333960403206713235148564000564681509361797746774283253344927423435767066439355311590514572923863983228420892065420560502548703893356893363019976127100780806942574480722480461543402996226434250848124273704476358798029103219550351353729785749297856639791811590391869189205436865039002031262343538631940659847797849429316764496249988019653119099211631425184325840444467483199374871846482001556419411463116490147104668973656097542601548854080676298342321627323862858818507961193726384391117668109404069598539401436255893317046083409793615177967547719984553445807949224535791972222369844175562524802284548501511237189458124425955236530465480942600865655931294745828586960148651682471717588801142332458030637549290313140804665703067216697358610875899630224361667083152234701760696228286092090544916622428221884067815057879983987338152318201486309834829556487793654394105942755132201167878099650216920350214602219674229049775153494387091823657445417814479766959437970656961665118548448169167209639889085649213387499099631608503770676374882529337231342538568105150355187121777433948608084239041343381374422604195712670608419900344785569432698666166495686656320194635462382692499597189482012753205227224811523441701418902723671330991404707141816123399214875528530026432038628890366497754160320866901564154012488158454794186516601533303999984302875001177333165794906760664075747319783129728801693514694834894832138062473265349508700329210770882679432354342420707237000532598411652509162454336896324897897906533480096456368179842626456265663647828159277084596216522325450296263005388546565992710379790976806438155538297178824673248512660076440890620596221234796826900323654143673658745894024626494246542564745235361264208087377730781908134747704193655286190245112631616487983901614773590542946606534830244669413073291991396199736649668710213053746695782042500807828414038896599032912816118699682604154858509630059825280779899653268422540688793899463616420610595092410593696708767658170947488248097081961221142448239959781752643326597812787011558260285143353099520318694409550030038696799523804902849817122775195243344573742065909028266458372522044039769789670022545394874664391709196302102982196173097348680116808501642743080570653835796524367384102289446466900952499116028461012354480856213929645678886452446702825532215883850446904242389814948226429042921305907387387741827531346109687494455260313860978456016545517506261349704319370226321427869813886856225565528452961553431163603521414602072151368613472913502666559744690351295210205512617424944496655597233773220940369377724710631310251422310192692005649690123713676235163573567900009670759269426080055084517220296674336334092116156888274834432071573570061666306285905272427920344256769772574463133117981640474328732097002582691158985437280713724541633569765045679255025025668680100621032448123885810771300805868833331493960531049953353113990588348804515916845656387472680220299518309405449252396459510460351023985352967548974080859324088709035395213388000149661201184584313625626745327913315966232813583523914226045678423107733919965870933351564494124246526952379290983320517848310325107372368972964589138978971592341329392019969248215530420030312447143521611187867053209700528401641036950751265034691256743870939217207043795340534606224510216932738227276559435183657004071403030862349715612846221761222662959904257846969938410522783965813809475552862455739635225889074871958679850113239357831548728133910792743315108589815591776722148843517292929539569056017554157500375830565377608062638613645063156366540420440787704145033955243855080256542196305686502164787032919782713773280419452434109124650219306313222479519584142360864240210629011333850849338980149867512059711347312175032741225983410924665427972522027778836132655619054195026233472908824183795877568237764995805344113242489059642446745245495982158744977382465278479475012213578366585460747800643200051255323121134551046744683440665297668703625353526504131721055727218137607149881376210217619019234351440700511515369062915055187951845640576911641677711973683055427405544370188150639962891164037855697225729189418282091611654397393490384062292189488229920536506084057706123929038505428839872326108595259917825084274712919501353839434676203496494773093187370250734986186616789788885674776113132171036003797824373226886882794704107184363683837029868243131692211901278495468859053395997789300570581755789371035303918522701466213348221517938652785853601239465889542889783581506597613806384073763419730534416994341459108580421492723158538762001551028937925452687851568465297574498241983993096884252930467713331222603687183064062434148097726295656858503165766322213195561540911325297797989498764233874759678984824197306449006476840433032305717216220750562694435633718883074417713322317445369291789104019630909239193404077559940434042618160945122055049663193112900499188929987512160324979183667257410166107890485964398809690191780558963434212255153307248582253100942636740491992564197584244524230720995350488594153158341515501664346865931551596419073186652586447809721024773466006007752197943707043993050930404482297902195635917461011080050820714414264836337080744003421348251516647557376367124324863819160317805253073754112027327739888696086707667547473784742792770797674540552357533238571734333621929109238682517545616918781892985084363367716833007486258607158659647917651532398423835728059131060586377110455723607268824826821577042775050461899404368549724000048733028112486530544757891859087470370980440219645730890666437664797699824263118424008915603466062766878179182400949856889381306519425082770403295353923623058319647754922052643851550261991125203480437151982375664194930507391014663454909403382245088533519371935826488790213700355247760115291785646261136131146785168089120759653039141912330068399980122588997972663179907805502103764327891033855678324857112712242411833501540162106050063672409806294781584721114122398735449955576733086991777263086124523008658263849774757781337098009665632279841080570726549069801229003347727043259529447341870066862518284869979320572291644312647068142259215577622059893896546356753591690291412995978748486065696755867526098375738410918298627246678628023945654595313841632551882362324844412756497399586474944044299477447796006367463045994240765837968254740886526427331276093228116175346874605660858642362020216371113493861862549711663961820075625016713057305223070915442128197067752507446676139257412395760059666204822295384295237867901100703985103068332706070080713621691706379588586637043206118918876785507765849677768079296966820127232328814149591664139516685784769584569154438485222177359732643511585996567342748775706680897640691355836230851233650659295350218424845409730486782295026763583290138944291965057499577376348299172420352076684307229393348339646059923243322628677692431012763538200536678473962014760463869531230907535685137746564839969713332570870580638309825828180321716866349065638056778465541721651342073611454239513955283805052842623657170917727137314665139806483010187372887733072003002767998063413549022054418938376270677770684060950015707794962390365236266638554493362711236745264683477334977214391268153305909947706812353837640731960034880760964344601163353755346268212336762328630255716293562821695188405188445778845541167924520936005531497802701228867073285673613830894184247406839516369656456310835505736720416605522589560373068666409525701358742862810700664274279451129993320479437431023529978496427194027965860449796487448769949499088148533247017204983695934360167239404207655931203036577716995877304806697497120891265527501782291901644042602299096962844735642873495100950067546070162409864972120950234116222684912254110128028343871249615326748766936360619637413566208505188692255030475624909872355273097906165275823265193682965154496694677760063626921398222374479175400232981938134444624957646349197525515148277106540975067152947315451912520112721535400683327905314047731800258294896315504633950381335486658040076110246272666269329602854490926653657612859523620844988976000377235262671341378226139790707879364111267494367829629053227632970569530458085422531841411239514121369689734028105409274175307756226618999218780653533074091366283509914759763137652096849544518219212306501394454425941392095399942726200637377933394732314327872039595135692868980288546373000545421116189114710987433145296736194735400669105156840091958380132535783385484206188992640008151699315825171075857600674822229959956052019784525924123004394379775671535174294842057349613591231032412283200716677826647501287058513559814494347352938096210921791120984181722376945454156286958809793274497187635973579290970278544838295509079224461047162943787806685362416772051863085793871953266163124362193112698066966427402537632981541030205758219709429052916988234213670041275258792898952905456980624548479088710391959703281700465706975982879946753777815729563078328343613547162903717522896009836643347197142796775955585441489416826116367469299465547961086694728519527655277310789450238127675405534482059351832854561119209313941753117486179425296300699938433411494651752208048900278958274811521128292978921777156784513488987916491574008205591450154338701326208309491081714692563137542265643680719338695557694935875884399157781900544605492545300557485300841149087498071521105761996948844133113819687449533788116387793695862014556242163935208134673601195767911168263727469540830352671051193412317386867603012127428057937031701239683514364583538053982798453599200356238395944688638292122625024001553929318414352791024246321299767052632304399532474133811177510686518041795018908125050558068937278818537474214259427942259891346441292105336114266064155223918613788080804560021682655884939030052843788697193939358541868055327660434028542378471303978239267999136904605954983894595568910004040347280492999313417558034862518216719964709422631533838611391291739025869998193126947917280574074113655392723322325844830484921393384449315880388365353075121012849193809012474950003474655213487969659261909584443820158226534155350657521494939238437306525251857003688645049799451248558854466281502255554625790654067436676430427730578491403634413341168634359811447732091157846687356833886564159236899541330782215021298224855946208146341394112700990469580349802507653326778169916585185854823715352643363696828944228775887068832130071991523182588742721114182267022067616977789831180475011915378487478941954598275458167194917464635606451031900289628348849032727837626559505259005583839735279745373549248070493043774582017393061463676321895658018195191114650575994494530608589622483716127912331170507322022491536843463046153542201860598582970432703647287807086662319097761269972750798933562348356867272131510439484544366840878167583516158557855634145300112819762108537994827375536023821601937639467805137107622248218762384576098902942465369522177823786218593801638024872945365087809526263942526829889590958073289651460069854155372486187687376101643201935281652945246649090860249928793169415550686691337258515546911574010822929543410527999866179155252825761158173752012984780005506228152024870933214781966232446371066959806992491588605529628314445230735062760743014034877447086222061091059744921043656541488105893665337823410155046749316800885506367599283978145738780138634021129945875175704674490325954508916967841025658051564544735908487684918476768719988566914462653980311368982030056779177455895121229022463996068187657546667961087648385865489525582531693563116919627554599204361219256227234834278302707574263974827853890525313713801278620096930775536863096671577338030868813501432360626627542677154113903631144917912096657436850297715026875354260761505770713554789799132192929839282101614873560771807191592328158179237485761207534579116014816466560538467366531403376295327490127523781130036104498699520656053311749508296425673228277913820384407436174521564168486601822945636935250923381970893473976308073415470978467193339207863666388413660576944866282393301073142117761945851295919550998334742665188417289479041165430213672821835131500211961176439053002266017788285723702948252541269072999267760212371916044044224619455160883307264842642601546244947068377273298371766854502988528091272564634272202721616925148158515619286588579678234346208881463245028409006532895315630458447920968250608958735393597125984056687420827580232359513615263277900529885952030188128656512357838388576952972828486037744047603747897966935120010489657773339465103608447776974318608251732988978521772125025552950937349238051490119892398591559323081139049749659998827074406299060757893228925276766268774950762747208533491794597745351148877930526693687772321776032263901599306239047522327039187900645037080986103395034404532081690791413836735343710408221298107630158694149659068189098062249935364028851063198395226879956194074397290357658479711836103074444730234414744628952563248765512795711008362221038659070847959996288153596185863469920264252766836827406591330320079979264103626734660784683210752683935707714316144140944961117999831162886003431893949080807334613245708535883714728219176607417177444814377383652205471284374079694739662008851946921502046565282013492991761762039174821393407493509420314326951258099143219515459390480526208342978410819085508674340890862090230851640753570097459718780441098395981185622497141103310770938555572158830250318475320763056659039146898631737819387489807379226539371322068390692857899289875585424871494617567204000119632796843263128907096696549622742798972433780504928825390070989020155342558085087544980383977005167247511567370831020273532987982011920002622752665423946097539289191313728029505457379064957217851980008711034374271375095824807210680863443845243240103245519898424710144787160572551494289579485327037100421088088584437079031803982746792659547115925895054078380688401883933341542872350559447329455916701980563157939556826985768625030780001456040690489368030416317716418425210405535115270285745417431487239395422017762687502765395940633899869565623575844586672513842285231388649429853721454931193131813661529944258465463040489384086667303644210527742684049366833425974171516149846757164500542890844161385815923182606262532816329152769249914663343413834765728785875002554412328246469968539116790289903381224888663865031732737602464042327064461949490800443299426728769802246390904200085361528975843577819503460900192337679975938756165562211403421414772182057308904446054011091105109386029460768291128113745918861422220753892308307677444761001230386566130692895525076156666791606267851823719851552721331538413640691472289589649434298262110196673591772279947782566427226211039375214066244157175481421958537921517243788491394797206703728864443504603546802201211540180520587780296481248604333144821369474036602757957355315851964587680433324879751960695113716483073958979950569419940871882864431306849744519486017508134896786503172587785837159967065235441894804268770009243662179140679911587164659615526659413163056311115891231361612179035327447217611397502032434171519819592415708848417658445994868266620909362963607775217668325024479913852131503235589010426893180130473876761365175517107563125085119118955261880471817952237925511976481701139765139439336858543028413280120258950207069091018061756199259067653588275610735666641372873776487311021019562654226232247615144902363150988599970219319353863986449685150009562177386399330107692603813678028249932634311502009059532382941268633476838886162797907736433495436585484826711622504828569041997199134960224493844921394568293165018126749865852585125106789611906468859469697828924321042879725876332919843620401491790426720263146333075262963423228789475447632957806413388601290868271410859529900051877196713036104925304971689552100784186678606308497885584555706863940809336943001259124611555115188327498367359116464528394300806927307011508920079138252583477600361319901360650229986297893197451110923217938576847982684560358860648420847489540179333095578168273855914314913859659097989087807815627533805299301472572404231108804950747418934105381903205274657362894354610542384557995631039298133409852211997013610278029321048621773138693376151549302336728087332505537488480874068375442950705594804843175240132639741631907164487309809428482831201163239852458236700384617683421567215253216383691470262948041355917331377858825887620652632977929807255340638107051084881068878348200483832761471634478373537192244315723964284128105919991682843350572693268542770842204740349178554687870532630426317042753703047701486086639830828391467067827508760698443825356259107802060181683612865326865225103768089639312129031541553038382256802735863856521802418623465571601250652903965506117390977571650861800062595839675567041271530086072288070339086162274527129006478632660964318282963415119788919434871523483436102389514864285672566020445873523731094015067795567581582833079618222777149379815917799180994023328581403529780193414360168581147981832441711591277867684552210320934269852124123447853735930653169129229844752905215724431150559051945264800284755653799552102640427960293191416547876698499180218860038656740513591970995658674581469205137910791389858875620043004647703875589860293490636876950202722196676419813444585980064465481035359652252101357014736659176810275489511214951577384181012957646119299001024306753033149110447408424124212383577786651253348910228715418151252479295094878293539063941042771397272431864376899075982000946886051804181300831118256288116534324646269001214001624335922364213829345234751325094512238075998258741513876253582229306785656926694011901474368980678158348045591039167552129338974970452197167784616505948049349174961802073551552597782824958994960840370973381681654318354029589442008863827155785450301165055903779563307852427115633639322872858920371860610957083754597514009154380460272952640664384517592679032161210604647798662154588057027691122464777065605038451271612910186105495509982018278503871052942352959638021035505860379666125418208413935197702965584227985231890119903776068337181111369957017330843450702885693405492366503229437813319922316575017556655619297056652469027338004973697108288248360301029506836792577081383577062857211797603242683955044775692829067841244850329753739298222183265590438139698299264965124731086631124785052037212239387400389161983666422409838023580963488403887181347565971625223248573602328125632200247282209034420012355852517249195253780584351858706428208210147107875955561245116124487617030235193417908298035557762467801981537365895191374423482371492270843640127457828684421567842362705533567228556190589602838740617605916645829577238245170787876089034861930459956420312977283971644129206910418150225678298342101255117365326045358978634275677561677039322988549067507825459272244933816444123200103696191883737669247855090030042775173332623577404708246681742767024497309263458523778712105330795787385659141049257240747839799558821255475121599162919876245548631665619555929754693744350056997818759955759737036226109171251811567302804531293184951432215922672312184773512016315025562989939800556136026319627018263902216639700205197114718001334559987430797505948716780369199531462936168814147963890203912410818950139292504845824979623702318407886666160813296277565092893201284219408343684205725561378034278834013011139943912992100763552984743436501220879980627417222046348682304188997512857893017817446015036729751134417761362664844053133377389546306371632061509968250371954572420982224084203035192005531248192286225664352832088937144861349121893380313446660605610047448804188693407378302520544261483767500184749419423352992460392811086281903473116297075922643117706384838211373128523677483086147275841827196735952360414435828749857900566684559878139996255948493363433188037395124457393951909982427119430165311024080449979176307613539103947949327076951107626062329221159278890065737899519215375938347591418536696251932596531606319347916934231408560767961048352053263121366673735866098176986726893575212416159861107746318935614149385621443446479155732290635769534288862829473663137689832639818241741611136060589679828191767984947983806922113963568926460413070687523860467727177225671895888869979575702182208095222497437377579347361752002658497028999707305894583106689131319226205255276374566902039218192511200404738909407892832230671048041869853022333739489201834266555478982054382420856361217599774995958011860279977621673538318534231221127394134436692392768821672578745482572117699482298343253488735988345439095889642679577037490556606262873177002393646024852931664582022620165165980061136926409469355475282227429492458532427423311070956121822537249603907061289606280097510000596624328075600294563951018467909344018880966414721961344555798145635733175078109272816157125902236443729932363608053748020930481379158874929854813805902715675583170768829124882319447186582801921732769727028467523765703895501649852949976781108253354997913806836698625372394635280327657195782229742853690083244419107971375418796756011884753330790586897221780304177998317864830878059092021015255138567879520772622296485708820912125403032260596809435125098003637256648663970637642864586583935767106387834724633824082750724405934798458107142144667865873665727262572928035528824474000991664632559064262016881383554405218171731459603934450727919745065428192515220898134772205677329045221678457320050385897654155819213647490159136610252764063286100608418567932220628546137195437456109539922453822936952992939928127742922733083750223297671239664863697997459715271761337062761150460425856500885634763540082364587844028069609360617102030452714293400397911246763004264022595376472383403919406968832514414877699781985110367157643380638723842487547718392301506497177132024218283179021906369462319504744555117211679273759533911242748102021368912681544453628091885506159293489121762164760399157069886907176385601923720963130663355823435442391269260639852809003286540070795858217989012485354216962955057244704754687290398565645930775548442089548871679630969152992961258930679898131524199045041293706434982325468212848464696826122774271313291640824447674374127570895858280629031052745295156814159275109949780165128166257869191325790516271835412803542441427132395945324895142605284265151956687616652252696985477471341133190105012205166620936729003344368975227615706493975013231207929276784818068622114870612202275620326678523564367531656746000215110935521599667874943189494821086213626902600920511254086054232321513436467437313963600491835420903929740841719518873076506213846211239950922427085904604101428699038203650850232873722999733019689669349962480763562046035939374225770236866959584470024975594429207436895595545930809156541044625713015526089797354690184265182273846043160963127508025340008272291981472694903022729309625168436910124752948593133320769921050863224886781687039059971413024358231981133950297134286593895021386193085573315127096852930488737660456290104664382723550403881599538238091539368966049011092996838597832651348830271178216342552925287789204974944384029240602408507996403856399074133012882174201654425945246139878898312190268966659777481401119046167311232377885410945991515104010926490068115177808489757638072714575783537345785239646164062904534269499217376497113400157854590517486373699429419494663256840008355294784668622858176052368924258087800810936651408640411420691443950125454733549015524050118879068047166482515673058524010233811421417471752308695850817340514885572188106167968389317053959859141548688238722872765100356342372005674822401003553124367606267990138825262043354465307472169136227606004233972269580919981200993222200682519208857392721267151908754522162519436296901017941790760604749094199367124600215855607516663185843559074132160985767300189741848416692266924557761442088674431432005353925835411622465413973395608928520163516436782405021727733022341651429074060423588374699341529977427242036089334892380123288800615480231464248274354342541836817685519387646215114822203435180823204080396478074316234569858974301557210829683711801630556595741932667090827714475472081629299862723934693031553186186105680027373746054058549692212787647097363740393720398531376560436501094611076802878070375920510615193650336479151512164544944245485166187014131759376411827664487434970470388518323251447499578896332546802946871073971013547136560406170331971504242949995945402856413079608339089729783546914213164881045478705734452485646818720226938711019131307295789754292330005295023081104882682873597929160194775753217777457616443825370463392156651545990367435410251650580536690961168637341728382870819352540472595070395358279524404297699455480743319344265508557565003926949606559993273535221775704822327545371530880429964718498622480627960970977312372549293965770476968693586291507502729498931087001132322393508738551760363814985739546116065918121683420961844222378618497314160678403078322135368291987804060950282533988511340217607885019963599256401187085112040034875371338790222309747859992192566536140195793534560068837216264866083206394511441008593880310215500439808838200363616076243837132672818916245733696988138344203946753318885688402172491598904219530499284490423289178712786912251206926846541407234744477176799654306567056563380234790233991091307499820312142780138132469988979601606405137967889080872504741798800134489398585730983781185662160442776560834685121430534627955692286686834505992850468106244756040193462295979181056603171993070285084039878396306741901281367635819704927280671056191241757454860092528364396207516511188361304315529631814239216658650813914650612124143855540963710897409246438604168531835060605624587056882437136491222291280725054322704836015021199656375670218173624565700418189630437420030557984224097737756998593800295254957132713126742714950989523903445636410806291901374618738678463642130113951585212381222795630008449584615596450777209410476055494593715456611756113804923025563037406978946708190421984294661838134998876811154435655885145761889487881803604376828786086473962395428813171768107017648036835080248066845817905006642627624585714117858713968201124999762877305415150505148979313555132560672698553788994185547512649931850717670772036726304806242942044524693879411196176402348981842134088735460656759638389049729761364107499578262162554391933197449851515992756793333646292605021129689186508416104426173576638503590007797432097182126120848803701849932765599789726191245229439107411560143271605698134035425382063378928744476956731652714103109158195755436721989732553911570886783517558697465574402751451074382496699543255235094531604127505593372885505461580391671962922408329911233353502866194135052742913794099297581050061512949846140034046251207158910380901677627412345804376226528565649737760487205965124611220080111839464613135425327317349707896664834205543153217021025937702258558082386201380443369756714055658815019823682756893604614484872868492336128847081853488086103827921394396069857980103205403116075943846592856617284067727355181953213125479628842545581687159316808270515359836677684032311097580871653533579138418826060551326990324567628784727745043387861445729100306717156347219944669146687533670957922209630149600284127676775417094852185702685073094407871529597854607256648181902925450118946704596374838112497371988754472451435133180957986386464493183115748889993581125183874280874043908908813270101568271254945932540914022280686188265408244488485724215558071972438432818084794988133049404327898334269940538579838783842754083179173938321294089052483977066979353396630796132141550306791268992538628470599186285801950351817385707030247782637224413304342802086285676565018904299658708199368103081328725512343137426129075627895065981532051869081338776635863316869053941612257879790031538567967390543207436148797252927802249230830782841221044253049490513718023067540387028370743807359056114980982948307711508692561536462271723533134722409807666977663394458934541489741366020223059413640782027242543480969168343998039323767484441515157702207726776689927346497680662288992970840860960849473982340545948572845888213377480186338807277133823473630449932450694342959318167319216883722579754748034779755528487316270308137047655463831548818064237208674236376278241447237491070323452655283146577261568952693062641634806495592252339205067621802886940949308851148408111768048949736984584431601379254808741726480832616060119327835484390953156828197510327904578603296716155443022615341073665304511719325524626333577008368712560906564743307243188126384337397622202498549118759926312555130690567824914756063570745250840716658833370523038984877292821044414675713466069809544659916119167442720901263965176015177473398636229324971806468567080076311643121089483381947361484927521991523271932540803430512962099762394631328680451984938597410764191448648593794922027768898199111092614476451868840094461427604327721337498250823564740891856902243671637588210316882140141905342870113304449188435729582254865927035412764703657434345744065263001420707185645721451397617722735945147005383889901190095292929091806183494790816688064965828218916638507582495473112775785086048172721744925670558323647532575985830151417195749636186847627832982650727005639096750098830344393717560736779259343220551802608535001678729088296086559327951985674044379231487634002413684200694443364132179926575380306570005206832017086979574838541115732057246545311674505202724912298299852703908459883786418860420336156329303806090499504562150048606346498372481716313422145841455287761981843703950822907132182539918796843374592848072692232143652337146855062903468197357722274412021939747287130841175626012879646064721298171645114701719630964760206352987692798101406611730730302464221099550521208468509345878223782112991297629264504589630289622561741175398447647924716920978096851308625116422328258813395697501708133663938178498601895837276724765321914098047442861220099905045114916769516965872574899935788742004534649438230080127267910023954551925390275826968958331704134244744026465096578277387617599097806383196637734751086364446313824103592142350221720534288903885174873763151792146313660936017204133948851699346545486838477686594695221986712481842023808228298394604829297726455249367228451856690965602878849023576804832661824108297445136029570123491687743843655353585973016372897847122272147747069491977900719653159808545298937536708150466191811811816682993558434568049153353049095804177078517055839486946136455260289774636575250601725910852921974264697712329675843092746075991435820962757282309763553914375897083560932927678261212660436993499573842473580390964521679907379251433356975324076205815849504277842342250389204990477246372902364859798885963856219277923184970128051853360249072883029486569544021440404323902581990700499673594234894124612694886732115423534059473822017903436660385225652232481869437876028938872760426483167257750555506788641830142634366289922150905506744888523256321813724617757528417733744619569944589423326660944121169239544423322849097088934361087888432207308010648723062209496471878730901900343108064677689705170063250971137729928630879131943215019365155359705943563589264800984477614953734795815889521758991382957705070784465652449370741920478750714608538943352640244948367049129684052999885466868024757903405614256195853418432584396799803754510703033510212108304635929186244311640686161536324900512884927112616803589167930805027095791624250317659183615938663820039912925055696288744210909967665907957440661474082923707644377465762100453208314476388133450428527988543485993077050642635171126998130529798988142525324535829158284662519076784094964279165808026561103537340511920976762884842275183258152888105886264302827962835151216665577500566407049717202112694098340185701251570978917091399593300099241532570008896632463465056017971546711146493199255717518382061761325040789222453611283297724458672578855538588782741123175407747780953051384520698312753011059325630726249080298844753737409134875712100871602224051851068491966998114262950358946524750943485981119611861420582899981674653960927985320720447100957790333282393358131118949088089673996975143447004381666636131333934137220963546352408270640298132349262029087595301247401922659653050959649333315151735689005148539080494201414070235619628232537855659746648592750534888979718180238028861473799861131778142184194152406178929097019672794660612942978408221051598953804387838501344576417467720011729781646696021285422054653831320235529628475239509414684594402330648172294614212881388950407525423671304665732732582274121301523767203996213626773366270876079080694720570511819198151794465966147924726707150515793682181506841125266833240933351400813807421966843489025332734541077601124759370595253539959631774444841423344558698321000449665550882696782506717302865988508520591866301401516037155969619352104725695978087287988560913779917961697960039497063154824565743926553502907782390512058465822923953740928614085349348005849057049366172862390843871720732411290488654841224664298305431029107046335287130914324116915396744300431891464900484583167005177123390133185106316906484360072245547791737403400965594873691242893223445952934673555059364931574651135614978298755286469235825369282174741250632718177018781561194972134342957633734954261145289367747760668430069319575059602829242078912717194189769130224371293811259963376022583689658979734003291186279983313577995411006378939943699354680728291240652772542049079466022810644268530872630323717425356029120921813314926353638784327571494673449246878137135603718608117443079787142356083771762612947603349515580717819887101860891920008392453370309106454673113626682191155104035142774650241125345924575770572732214190576074047570236753115321113394953045109951825776051792748568082282806935285006419972537937568907562277402327918295504612328330372988138325225021951542890793482824140511099267421116982516699082439582218543640740770731925737286794373160140631680147811105952373440455098520649061908751380469185566751239383179462844926249957745609778270087376805498670448850299940046526601887455382985755176621299294230609577795730545452450772246725887248258383190869333161751456002544937968995326626730747255958354051721109140406395067910711847101626800918507535875947412428601549553183912270925480978660605371544573181559925297453370473792632466366370701410503594365731390504703913545260302704375199888259705975931130712444841341316936518769605052090146509465044187775137463374202285062100205379375837210429360361225031284975466561580730998201991349773494329894884328906652034258609396833847803640372869019276865492059327741464355068073700033220459607815078376062089120058125854300678914464055922934609145418807721527980546196153346194008311714402937736457726776368911838878345267353855960017997377929645586214231025502082006127652387948864702629423427817075994412106880855886312031475395420996570271303534248491859469330316322584134722504564363683463065093055235646987285204046433031397611595208754839871595796637534087843220209423173552877388833519160646134634751222179878027222928795333332476966904033059746901609072888318702146664289126354637137270008695555975310259293405314590886285630950485559540176925647191059097909940817733246914471725836664434521185686022349359369934573043703734928620191808752489496673045032037349168203132432975660579178250418094520618756493424582909938958400167149595589393858930855887728699351047324308889537922973014147870335445463660328175890963551705299640470140942968810050296447710520606626249996852741520773714787465163096374714794148651375258582650760607920970219196854473869145260194138408227932251112203740907548733653803831609768528357420521507112784976149183130620964127224523483853901262225928375783940033606229060019144133377923251548424484871701798338260452034036321250788145532233475285806319495776592808149096356814314095693933269705710657996228606990654682882448649113070468202010646987145444286392837495745350289676551056896568493125110406110921198689348474052876902145885346041925985508040780110995958713320624099111938913575767507244979673223178974624733959283091746511027145894740117638156420455999307508479405509570995726053889112692582852962486935212693741908051097370190128252063714311316798640622761699500581671288379299721208552563416389537646788132945688652118982414071900002026124208141675398947530528166213980221073713697440982633519456948895160315158707516773853728898314026394965028849035874875098907834469533572996622498846877353227427704494213805316521400779756867374595735471324302533973216459935890178543441240952054946935801833287710967478948361332629751919284992015385852437267169032747108449681803980617840203536087114825501498669846794473207411732450560324834743890052710174286656499224027753718805420152226415722232328444666594607604864377242599689040850981745881702716515194640106597013966328809341530989913566101011623529034995214750422789383003940782040227400182489481375176492258516820720269194549796128306066785055589938908537768275016347860979708846069997712897514492001302614271163594043660271970668783965504911390856648083041024634760322994441902889234521315052515754967245062091109213741033261822710635000375073391231598148482562768671745107436054270772119381467527384893105050411543968528107690232504754737043314839759784829858071930361896424209517591803864204746491297298678455861452551204103318362538225913319048834058377339651485364250054723703681398808493563105290208048250926741201339900389553347566150260358076850262187709518063308713175059686003446467259257643190349656966100897777552462141384530206224528119796735037134299313029581026172221904034139073586748668180758942663848222465420367813057884544596781048717654575777468078720395223100163649155711342624746520527350080975258311833310067631361673109967876140015327811488200143562766881784070866992514278808925987019929135280907857912219633237898695966603271141671902522316331584473317745403369968312118253047141389734678889534592647973064279039734257956664317863120200679367899403816402569877207821250566762648916571561326775268995563411174208434772930939881041971280926371926700104418902475396452003102755397581589723047529745326368548792875016038760637725669654894003172407927105947922617149285792828001073471218435510250542801262457158031838003967128672794851176551505488784470413706067124467654306949869601197611716354275038158493496371888567008227550480640726440537480067880243924969454988420775250153318275282639323249346871489193146009162217786824738177252955769511720714762439789604937754102221139048084627659564213679434900375619921320615822996067722207564122104401899892699173489957629074101256655757337300731389895853492481044327606400459443555395144773464039087776403663221863715989716377355688441400510316197051025524994075919269893736980943074222878842207253891964666791924486609119150393139512623852333782800188909262645520458639391314578283308167601996048354939485389205267318021253654974287515953883002125789531213969590740783934488749012500706754862526694824204725118177117734793349899785675947276345250675347427721734374910506769972449293802231258492669475904291960245473104076653707326406660937102502833340883499443318640141877441855047458863345293804578533815867589677142746630897241313890469475834360139149339228799873802243766514992779504888235164728138074642466392510634219398553928905832098022681644116318818061334402151530344932157486987565067213340202458273941434878853501002880696773163033238883685149910748745275656657102771231553983926195249274532410339609188766149130860569093384986906696988232628166749578304216521464004842995639310403889380907877439159254573641220733722409655264832277189519051459202712139511105196068253042104640018209751614540557203911771891294105221403930630610328872269627960673934813373197463147779506427573123936512371259110289062637939801389874114038666197097471238535474588360717655034166824462096990292159795928111926437041925694873462352158903926669608956943686360174885225128820185910935856338614792626305461473972729973333522201276804714933812363428119474947824107342683830328743475293908900601653595886641314438434360248175728637141494054436628172466801845341880744841806463306033136772519449881264662951760860542558493361758151420304625582049242245020124233717644459067485455365238556072102825683742146229039303993304339857793861832240289996643889861430983216313223525440235366801401214802878978907496714946416167562867147838227819235426034997237224993243245261427780339238038191655274693358949244494166812005291744816289659315282855211433277814593152082431743194915652875774671984126045135914250812871270442030977375668757280375383911481515291291588525977625966852460999845700216566248073341526341099550164918736301411559450386635775811627709635129720958555909810792427755258112428534418529758047313303565720769416523244476976329673777074248272147511523792444623984564215674335423249891481500946724674054686491725730997938991203131264573669482663368552890964148825652733832490213246415603472050001843195909833029034187081603295848624892328917465123011051266596718800439613867616920387624062050580515302995377518195094839038507775917191161306513169444537803888205814500928845917167484166983404166684213553739529702727591477666014670109150736345773791453682423166418063628616926183144039203368312257103654520013909678157673103813309365711359998699613907465516603917791491652250704844343427288899892365374076471921717880340887825503484350620671966254765058872287586294921034006274283051185786213991085099998394010486605077036988611186982221603537150096150318968589321750447290094100475624174492731152435731988335220697131898015418637000118586629851343691068939682355035448433063126211793349200056055622841727402820939504746754230119399074156176999005097213157726917629186796483191210199099966437850595714904491516088972711684029916888087073901764538970201422716694652946036149194566499871004701367492128978010380167631809655965506417244370679221004218659259027664072312194521623954780715376532619525170536333151004499666652568895983090273623068406255328401293139795694356936405743714679049975377119075490457980413758495238877104773294986172765961767587959580744259019395801996264175259315825422631922029851889351684736928662788892615766946197784335012040388737298404351295878603167081918415434925255222400895327927523936170011382667764948326147093065629652346775831775290833208530037245214472201587718149232831819019497448373524825807578541934575306967046691122459260368822026702287247011229606089769720940900062329827147830955429949258270961493272255687661883152705296842413666367444554227615913219072179154952966103863674242240360852633361309492665318743507227966019598594798788933078172940984053391058928421606765609316578619523827596966282612199222431821896170256620816316284711016903631934410048248233285538316388713756898667399140627447476751151844874902100168212419900730650762479912458228738602690845628304031336839601921412716010142973330036203089238069119244023852094985782021059890994055742568459789408673952400199215229833446031830839156678017906177988394110564947104390894781462717543861707897038528156336731500739261710116798481903838446469338673809458962638657707622203923540637776984366422644552093098296789495856463584947681997123024842345290534077351484576363583268894677758061379951095067033009440691026367333634686212651106215876654072647604061739486457160822522540164919693610724720087765478086824218821302614965908066225752844357678765394328725013111184971868599507283980733678437009140732352259890857249501946671816285705631344101306271147984394987536477012541851776403445020128745293731224638330367957184863299822158504221575149956409247500272157194697939781529496445131310484702474141116828423837628895266525864061174159804454307921425211755559264108995780900161675352621802350250433666435226270108942596682042919898888573374944747256637893989988626793881462006100356518597277941790202924573931739950776182744203730917121262743871261360380809746036184879706706502346181152651672339536018669678759604505143853020875489803683105940803402178294528417139570294313920354053023561600158183628570681581680236443849315004249691984407842155686915483830024601172949937753191953803429337557891870053824469302075232135659040831554332390347048542079928274869067101520546654612447741611510166047159905058032068873525335464133196916831587082888416790888756006013925052943738746614588019256741636811189805756844049085492066194347924550285784365845382348210666798456539673436920849497808403095560672802796072621472556295910583746458411043724342859210759066375710793101773460747861106528072186308474828782816020077551283050416578037254731384394720002229264188515039767640687790641263341693689897419910956499024677445763378436995583310437059029804397185968192967500343892197180602895124407925609911985224681986797032374193807748128402639339883191420789454543028883259328339761773924308856605567053293467735307438596611242466317090096911991735892214438657792296794550652331454686591674206635957497665419052836842641975970165420046284345875935541344682429049103468096384406043998709147276952167813833961224092311051595627506660791203499317990198606530420721989005355662627814059196896430539447476164553503465209236027549291961797464311402518068861570805146667933064877588503089043896042867756464910330937155641325805951108259425970610613992746791409964127785695767695775569276886767046344140463178604994184690831172394933740420626899317573119384488584483290460556421103761563810217764497140378762793096956235519666759015948199808152972455783653974233427074404387698091053294486524705298928476426490610269096681738169427212531592270064642397298514982301924594410554010065880558772925334219855868268886585363410867337919166427148441129308560557412413566951400411210725950819023302479673124521062842248050453784350053446650028609256271917014308728587245655127148019948872737208055759757831253950953303903639292819034287669328032292749000414933545706589276499255694565178540117305363292534979283518104877787418973522277963436153585166038848600522860541111792732496344688515372470505334179943852615805807250999391937103127645737012495752810023933308890411564386816353613739753562005584426720050023107346476318738269283764172931331351096842837674800259366065765414494912766873268692323008851185419397841363317728497673545059128069094326387553671694825700891075895073216029008532090919078010897952060008681612332510249976243773804416054301654786085059614060097010597002077376221901236815466581026600247819389396271233975487537185153504217827538601703798651867651848205665184047033089435502198618803251144794059832376876915942850117662583771794184637513988654873973211890819963817779414253064146263360001366811526092209161961479414862270751618798322588247448966605571496702322328001160147946662290455727119485577584227186952252698852892308126726247358901037891190729594594206195679797492673978179432067359230532956968893478917976706132812742860647460645045562162253619297858099869888658064704863135810239260596703935279158022177255058598412776941239086302147655851299020683921148627896352181077846157899836360602131801386721201454827864564608788893742491710165231277221246673429810480306575949338146353728359471548272814787269286598709797565913800188044625295441228016125769669040834813903065195466194443425211669921873106229015328250544890697375898452075749891084066530076853077303591904736324451453377632495617618510246703633458245878569577930809013700669416130255831463698885093900002807857727435253371850839585347298700979035934143513144322435749964813379946797702413237328314756308038143160892355598012685905777064981634568284089146773098877315114188216823318666698430276677366746426410074192367602229091267312479455645471053066722209846752681047842487491548118047328689176093895181321297119299849497646329905346442919947497960929498553213404641997180902762261503002972139679568655717122411120339869876327768479201149521662280386267555912375326124283355638488253044094355412390003009367794534915905260125430848303759930214045254888770403685720619752194875675029434419066837324649653574126447519675603856718628015009435374008497711782059590918859648615176485403613820090910563393880500679453354113446331788138289060987385833407744768107474649027686168839415382523530259336774101864212219304594112193358491083591863964348244786415397283646180431256579810874721165259805074677401726737926940533074476420564459412820203376095536445714375042406856649987496213314866056345376243876788676942256133935652412072466881711770082229191047279048785070384682665325072015937131138982474273393924839173230325845572869767023674723885179945364876674141783547141516816463336074662401754604996623139925094812346391317713706127974805194050522060491512389340571037342473119439811012761417454122279094211009686704145027024166850600669619631067303467895765417781520415391874440255495336192532436295791002937920290065487488521188873127934791478356657274853425238752433562369751270374991112927077595535853212971121423587764019389825375859095433115784531014117074157188305861129596080692243509121909047753846398633778986971780410336575599010555275603778583932439934677317388803366242565334464558137707627047401499691592170080769167599875038979695438498098304775358077064674052705822304138259833478488747214304939857744567390070383041600220067149126729981765577418573423622601910892795440829346192271824678777302578665125353265220938346234074908963780319059068792562852846095109522766404635120071468186584898384417146491896220317439912412622850776507348846430533441979766515090060430718868603878074460763255784485563411353370929434514792861701624662457269969590481828072467425988247359747243179173559977438369295621940456147567801104933049848688511199502683319568888716517524150457787410958692629612714538941553172345788585382901299638449744710654990249547992992767601523519880939561141698623839476074950231650114387977570488068411953749340819773517970488481728212837412615010298375732601926981418697562568059490465173112786194706178626546917280517723630218737587814108161198851091711389527727841820878894755292408316499869388182499150271322274746934625303288850393448447781061317421809597404556736426477557061960459101621758102034923205496941572259507054073059327846976807810504458678160202430674220091104865795619730023265493034480496593878472781920001745780258982517857958599934401975204392993763764810835060249275989432915415928082993185103388996129013249381836025499292228622876136535224766988772355370056269567060357167975577637543909999106074051897559223295496570246549114672253310468554257444248585599870852018305265880052172172092786406347710636576680548224571571938023174498390582336187929820062955754521352069765069142757749630731648918679598601028967040615707333582376310319750783541975965713690928297020070334124617048373786822269434347575706870154593076928967601266106877421881893471325235651639130763517504667654196812570242746284127272868714192321430966230232582397776844351949084236091270921914749810777634074148645482630461255564717929890334074092578710531054712753628217111592042259973851898855139349446414947732947231253106575664608512685098104676132722200184066814631831940476521922068510287196075835909661630202055742248248635794339418981864527741967826158550789267794565072568405833930622789598953412549862274118757752145542492255203994120030066542007445649808850535338335010986434167451362009055874348039245350407744293084171061531560854020620919576048662256324598527519493265077502990765941809037237197395712225492303416039178320231831950657250319618108802405819829039335418397426711901484688112721214015587156805337669025171328323796373091756422688165735125278537828438880584706331539979432626462023486926964331752528801044103984561892567476918619195413427783006096899573249643993739519372281168965536767474841427981977133025286751353223520900897574996226240654234944028765150351831597484407521988853522898279414053011734623686847455011790512077425847249445208186766329905311048388277674138258952809779713202427944386675224817592261485704193619590355628797392411386393090284363770493528184455451966535298975535983736110628416215231168147868290632973165325558495269721233945203707330216506360353202635533159852252044690171312219594223950574253183557160469293387093020325062987224950739817530286899329591423551844769018589110447086175389174530986486410941379474730160793103265863962663327167105761321103365230779528291675446036949169299203974946189868980698384699420847967239798823541016303100790638900194527539453798506865235459712435558783775744454482062583350912113858323736709021739982276403965721788646322462115707903137979887244748473191647025630321796316162206611997873347567867975221987999552363964987387644698296728276064400083462434393221497576296956962168111726439492389748081830350321154228622491312612493038901448378027660177056211931440099410497815824452439633108725879330259592841783187082173178875101016717981815274417138123789388954854199831568245386782489925225019174696216529042296922636830553893404110175385642798937216438924056728414569016032414167673530778968122754428055193053436644940590149191408103957098322377926473214225351084609865740908805752276705554112099207189314475144625453224994288146959737423972087282135334137394983470799023810957455257900955310159985743053542501222297814300107462202044817598832343711946373197703836937791808651407679032798108544262632752059469158974048502042457164585980364933790298384267267330722706901492799178794820241531703408411753713837269741885302575322312012017353611083249156007029493448141658101542244575699043986511895399001783156198346587304276060871088567021076748592374139886303995093375078559483436058602247867378743530313063489569248892967437784132092181733982433123753923815438016208716443770836210175015786584412834132609038338767621961785760985195543526462158598866299906937719362355360353231894434436823813413062773328639702769075372523820687084014109252810618904634270353098963587429232743879234299359711969717706186136509454554457438439948915795554064335490068903749608486051734102240857023402493759290504065438619096172727565695532230735574413508942337041548724942120723176685978522709408594491826180163593519997560084029795038238134072612313787878405796158007495542144568626846642138910766854774257874492000993330035660821201946797577968101931289104289594561360349010455200370753382836179270985903119966350444866625282580183171525705205657696610609504787606291902051078934869327540495399789786154587173200977921059218325577204936964256970769958279408322214001816423738706965260798491291091601358291543464094929883025548439935528181987703821559147536387714955277606805527656724277686473486481668132366807769764081680909019195456070887025501692195479162643801801048636846270214238699268427653285908606163769648565504012333165492994014124468132659573127659183864190512363905226303586426205502412635521988617075597573347692185038895136358733266934824759474976821793405660740929679267386219374020785844673803434933401865979583039325679607797379370379626449629729576483246942489651189451080851458343052636603229883821741991280929691874845812912949098225588635240528266043988527481060038469648925164022637989436343376140657406461459893934931909227353390996004765864439043993963625714199396085051189500084978748788433460796569876749990095589213268479979626041471481404726317034743625951250857530637421492056042992545709825669151228808389501810148862747249869002981833520007438790719902593564626179003900071625981985952868542207797405115151203735859096722184112637886524608634625942077406379584159930579016990339079167414371469720399083267589769627770461143059780150231608705284801046271006301047617521702402003262465477622017072462743167866522096248944044527322907840489324330531454100691098589241090820260671995916850458163003844587391433891974650975110653639356611859154095581565021821548829755208777110245439583402458465792483936130467010523778430798641440107130962274849950825915547041898529832699014250336237577923491385396044407755399021996363487933571135958012404155852811473574834989470502410257773029711948896046404591031304508863525305248552612597770023840894483836508451636717492458990192632504524875153276830645751279005907816228490299614460780884621780801704042108024565050555301396554692337996244073316799837218640899882239048466976331590867684602327383774755834009260951418446164668107257444795855283337231237638992149661934852938252066471510162810323979530157369625778789878227737895987097337463882778511668337874795330606684453381203734848584278880801722602711736683022012447356884462748414380507557424301519371606792631846171781267479587122457471833722045075100086027460377994020934053813590886130049064733254668319312695068682668732165069245537653624268261139523378463090138771693878154128798625774815209925190975310788461808445649058715707118286041195129638638829087840133065724018644195226246138078437883799324489037425121421992783276588036519712471948724166379760957567957012854312135032638512051128853974827696581412669334092875200033522717656518062254000998655038960737399308395069490887857143361573509702888138160395036481513450928335727535932730419694957351127632104615161284570426956198200570647590578643060813111813847153653323027110705864050467366361076574175826727099369399397360699213946696969919112680884545684485457414617566484110491108744567664205578053611505970133300739247207094700470170772111738623471702218466423565696951063894780248016446496339371315001153653773837219070252742851159757532395470194167877248328484845073628822481250662068649477700746715324592374645643152427138839243430515436797926840030575734118758237331091177955381883225624403127855929864870409661697460123055164042018257040258668694434477055051433132001861084438262275553421883656601518376604330715578575697499994880777102479338779946597152367425936798957515257034400863895523314280677895738308736267531697729154222259003836959663058461187121641525376630642117522554276016480291790650168045938634570857109224028636867992151122011446000307098773511241135418005866233829571983383120563564118890752637135158517197268173626279611711157834989853686213773519298768105792436656033852285116918415753253072115638312787806421724469905332469370128825977880120668614556983807479118469604032506816562323252727872493013041233597870033830061873134502017062873723995049895193034684436025927305778748368177102991218710531655180902620593830977044387196436516139270795464009929727987424430200402449107510054662549202280128718299277470467396893890062733729878835883437910688758393691832397028382129866111256468395049018493850014487849777002704896602253132795614426450661349811587799941702926952632739586516543731083121862840526330833200418617416143754482738422296235966650013111959224871708810616589562501713401946294341959320361357091320486256630343738686911366635614300242046721122657487206549297354488335073173866535407129096517846253348393483882480680920429447576345828742455413574393214756486763725563307027891278284665957500130735462575546777952916128203917732213607825200911666792769830754740487825315987854916459784989995655552121053531657366296779036990593775158145884383541291766205948993580139643115105344607344186438603972677910190072426636426801803787154833418635303849195680856595883459434150058094513284029985014942122107632189845419005178314096244456088687449663579337322081406125835922221673858809562387841197297104741606499790240233846438982290017819019490743478666112860349169809141796246417725197326186800711782132306171250258559870592654212034983042610918770276665076759315940256982206525269558355384762549140274803488883906835937092441413728839424922455405336134280589037252492516881633580009283745886537247275170818275375216643504641740086904973952484579922262970305916293657151425026041516746442132392280661324976617113339032209584004685845481544131625592395664572797480308725929002248384420535452666610765457602305230529569351380964798353828882068467202997314447561928131313696460376120385112512111232491253362829470817997853954898295948206047177414562488541781752144359880709235303613842965240442512996550944201414201070635451371192066798489368426382343901803562938833014713502406305418762094953823311176714666312308646089877778384326667014261147993836010478888317601892599902312655828847602656805599100062877399303319843464163847564290989868532610763710267648791369745304276078892472203654467361840399926829516293442809079027369852022537480483734776529023791599541662045967682889653526729179326001501771386043353811198527620348140471927954713356334479370696510499479364200280729522068924689293958305006935013253130561264137720468502083084930356424578651192288611490372319446501401774684961268261223656065811871139602702670948730908960093861552350770637491392175787792702465681140630756705459701256366815481161474542786836706329564884983723231683066166237300940719470166817299091453182716011098112749286866113732567807598501642631129824099662120074194516293645793477859583124178006031319526953653086548199472024988426336023811391631570435223850986871767729967546677748880282423418676515327919120780214468476677347666632158599072054017451433794717919811531356720705499474126919110226334262948686095913503930044876364598499924984171615085587637030401102947488844610440791978583331742392037535598370527486705753387720199652498803753775676781445358662670821333036227501035546034832253042965987658277788256767577720049033215389794643949003697190373413438646659546465617358522180823241008762974036443749529949174495271519638915603450189816404623440056627033815528689973289835346539932243464018609245652665094866124136773638515894704919099079408065605805405874480562293597626710564835679776233962309397467275882093000594569363686875687186445536210072308745869544632421325400149487292679455990131391255349905382949242808223962922162099829751048051224562501336982778639241067947709116205964635455720343876127535568370406437579978627493560362454776203784391861356790964912316955883603090493204230434860710953079868784447965588712357356790588598988439732814355352890120334199358365972762779828338951769498724437674064419003731350648791281826545021119209667769493967535093498482259543798372564301004598800425591935274049914131553208388169711953376432679920812029043273379159795850369620526229868098910677221424456303257555308681450874778656751112831668810699818060069140916357717863865197775820245605958480013290011020117501518122932437905616275250435868712665187279220050422938550789554955428912325719808104078999001478338237821022304323634806540179951277875812501227144080174954466022665109077860440149026736833552082319166883238409417407120546576891154316995174768613870427238639061555154563570144718797071058654065689552440074012044646716599739837268842790982061235015393366241759072009781755407018792141012431209543724606331497122121195524673968851545917911814817021967759305845126013692600695582527871446299162439027478735881362253508495186277972892687507301361344972114372330326481645614979812643528976938208474913773625431897585286199425915635524371294763402157096442772982116639115324863053165163931719588162461558359105584286973842000039608913011220642745184443378857515243771849368658358571104177018042367265853627658324411207831967451781704147933485871058413749519330752554992748110191482652139439871152366989472246054510834001846463834353064904068722468301443030263535772779254851759626509704915165521582797844773870874226087869462710348459680462812311926597672691303946937606799986997791066934379451149535487243096357938609595047883302883641624466519109833669046421179845622621588775684782396850682745819712467018553046795917430436772966867112198975784431568744685264982554357955847758515582373301578275283527150090208716095008339614863014291017834556084000411110515527389932893858007907087464300581888040086244813653946337869863241354900550674716102640568854307717293646036020705684009479976116011843292469055599538572987012754137634825851365576539143809052090670115880380441309084800943264649175197260320812168135864856060842031779818815957623003144397277961366343099899188369113654352620444184588518743167368636783508564119310750795933742454801147904136822372980646666433284373049403955817211061057131852711564420967283845414479965981200199671777261304834849888549721687744554351580186240672383134709782984101925386153640406609300195396963161878877749196334043646529377617822631658576383794782174925025670883152983393718475933393914420782103039663471545772748016135893312905088038676541127628618307959966439709779254392075003216053833588377007349781241881655514751583600133376321818519714300473863420377296879292332749858596109559861368987785663697685252317075821372415659537511586406132243023563012672558706982337550675921340503458048683977799711667864530013415371033900994502960555184280556957546495160266884930321960682308492118135788978039515045386304390611911136412403691744811737569119864622331933646371956169538430961350107873944481437369561970983984247274217858382490832426139505150582303684210516637840987566488027151322899764090259349841582939524914809095405908748407887035691826844955553319252343272985494667006519189627592306360736687395793859159466213802346703633593491028427869635977166021406404258032355664946263300519350255616549929907252224814687336510564660492609627517577213695124097874722602401920966555796399418039748573777143463384147676832841017681158012383868084934308917276856575082478106736564292188490597333394008833846865184872997510144901046396048340393606812960775721719912271547461667394051976785566825351740706161750982863914227430878694028770743460939835203803927609654896962794978132305338788036473040376966213386169749881348478393147362825590709793901713036637147102529684514878911368413795785432091491494652149382877416523104601825833273484257364255294777082419009291247038448652480366762201501709000514383882623663661052623556108108938109340099152524625543806991822883771870623355035509869898559532498343105360268856249636512693261283702627722556159651770407773928982524185938156724943164992039493688335890940089430358779204739848495964196478153557628843195636339561800979788959284374960835920280793017120154590962442303825585429454960349026842201330711665419295997782944332457846486004822785465466736596622016745219164813120515509872587699277834884703840497036334100118626318498657749641977121984751645728938980566194923961792284678638810387081262620036754939169260075233145221904376044172222187311780594895450684838350395921879600514311949079643367238252846227078216160922615395527515339027279721029704256445492419477135589467014967794718323592000974466211316033286499004999655018421857353806815501414356473717757705814985630967210033837739422685641442169676656519437591908628993562259651720721729991215828891826344559553632200455249839133869940074720895619897699237310294054826283372490985991822581104716475766970535899154117457770153267833435352005055219967566425195616705038291110438087737795241292969807301022485212492531418723042414943201708152273526498553611728661632074727237257289390389834170913411110141386657443634652240791244486886507645780185273966412563197650702123796333699337127806536664153114827441054148591935788435954255317856952719522687038488451793642476901594548835376290027533168334555019528590117368815015218230312324857584605418582292733358022794071078391430373720249744689579254669491871289603386938054040417392225488943706007411889476371482315191174953090857960266837851397342751596793868658296304102847644195768090563673156463444648908451316762267709039154351006796002866558964419337181621318735374708439035191759733020828320987914758498009805562980445623751640574847720158084381684542796527093278082680272495198667959297108274776804000297461208097800549678284415251826391535635240690509055826446891486544162181016274095667364702239490782101099617799059599819995661396304738839184474443365573736915852109044545856474411932931563402862945328014085258999151715891564988611143054925941168607541318687901724644734291567158818218271614423849742550878259331109394365998040054605386496017081999663026317075982976737623485494122785227471275765444410031666692570578978537945344470303841383285873131157875952714095919365730094593256970862887297867813426980427888085687238078724196501268632140190251848739443508949722277523827044513228899683477155167923658327904180908589694422644761843039769757132620301688837106330160782134754724039435388968175915620397720764648939299283466968054804799982970116523005208238253588512528841329132203589652799158040299473094951648158046711755754624772247719781338734118961565286586313854892820664358029947827140347559945559160090615058078675869660752072677256123795282200607762994207511527753385813021397989218534402938805668176122197558454925684253571611345130558661549482690133737878700860391379072595600883528841615335576027512699571904334733301890568926769085144391583577405624904965796984797446317042997050581057430836157821145292393664942675950225287833956533347066434116260350072428251201494200983275647124604126508911703245316873331947024371723058476416805463905541028661568161000976703409267511235715595028665150191927671152913199169343310536294810122528984785951998203705279721739921372795088827123733087953812343103288883613585834304008462563920459287246429525613494447089910740304373278299641827166087118040553210404281217767533856024633760921672284934284633583658316101897830485080677285462513890062951895526282409064615181247248166787312741962601285647323764092807614543790665574079445049419895827285854194566735375038938737102657799286362732863858418273594922327365134108195042348161036008973522226887961931662171385466671034590392806756518496592806426117704666986005103732954526361272916910359874185457664934105851621719108743517056925729187946182337960240810673138816249822754229009793078000804476842788746041935326313479897935649127105337762707651730300150268226204555056821465759478151448244055466558079091097788619490663124496681503008997792039414427667147499896133107877744120944905048163577982095697240745568860788875027994034883080150325501853662404598359723540455419697627916194412240504303402776124065605834040341590501595873655023693372171764615836811905489820619593864236720221324009843590456392975636837253215852867106436075439486346314686340125518657110366536242587822357243545305184606527730142097972831735939253129772643748867344119122933482505854742893076600547454363396171196324709067210833320798216389309050910638680725644488123446524406624541020373087943920398088351703616772863643028493314971928841712602767184416374650591165077865092494316560677800156388029197339754093004504537816530664756589280496774570591660100577123148053854005402295449148333711618330923862112390317627409285033364868356105415126084544522504782578257055842564592750301531709767719529040723955790883068049648285067898975629501493362809760016116641512915550851276512024526714103824967556599590653250687998515847650396107899601549779768709429089371614803797066298980690171586174549209618601725358721760500079986809432901709386326313403159571831411144359788281465890643052197041754641228258719616671282788994031152356581758791610062304366748557651113826841476939905313950956745667229905545964469363114497018549942722298655836642757363466087377788516948131900882254982242223767868801579050141447135999862605217528101027496111980780575965653905843934453661019827521643900384042189126986552222532814861973572116395113907173593273574592207116416836249696059572362657065696129696556806061852851180816008709458329319788500720538159912028281273555662756272163397274079452809069665201053919293470041206197186819857390442079918643265164386895055695930368287519922409382812201230297756354120446741202836935155623638200714580805363306505409567377028235156780804736706372173258923274337345593152603297793806943663690282356133412956187527769011282289888741226369331843575760533460243748691073704004595095392172103997222226156902788529351870958992074290161385494440927051375000677907039530105352980178484594822137738258788824681330070037629399950293575026687224755521463871214001603054393456717299729419335102157421652055202866283810532467958644543932272615807036004998453645121129778940717859343945587006545837877892698029398759311837018944409718089154619095630522726933313911291218456227755803740222750239665888494562284945280614150765532413853492352389942159514386310685971976835675373024412853415943920185194060729414527265461137230735690127189875715549775019805083928608420618404171031698735007995188440758217616286401767454330408070727381498200879171120520877967796616284096498174012010492259587777719141036925266613512953767282239386308073706953447745908897528510146416505124094017929588609164721827143529279572912821023184187441934092143775551237496854269550549501030607368883148805054666619155518255596630001922921269193943788509590175394965456785999261189165634921946631726359171461176675568789344388562385562816665479200581754900791114724381802962869177485291852035041828904668020045773568657577950650328533808946547919347675524959644157979109152353762579305086521410989361040943328803578875603356300948745787298597836820931551628562290750254212695975045841308594517161576314625737874971389083091604688591400840288666648544477335701088955190996731885572242879608154202316023529645452795508873432953995337055936833628335384937948008377998985452618202006944648560026215717854441450763047783516629699180569504610865172575823028623683079930613886871082005824127359540696371017463554650282948136408625947114261561925898730225378532520913115616313683624446368278004953051304658082418325398516977073079783403589884778097167882303794352869260251592340315003440000008236139512403239529644340313146591284233722690293895835090312662775479870021388407876384918367218226848251226368574060375639165424120532637019612516415765628756109785264583495875079123558864865000848307441577081665703149963984298893322980862650347978864660092608521730342386897885653954000793671009067056713741983570936629930291422851956324390976914565374975612095292518208374532393247675945128381554854018855431573128466413010473591881397400319302397984488237104002223171577754097694831937377928817923338921377757659912842992487679865269444895149867630641626002335664830312071061760211590014209747527034711585692364602763092334382962927927972863536400251864022960869152384228887522259680785399993923974628600424184307722073167300925077304623300323145071407515140701958723858825335956692214728774091676839939680206284822153408892812350678315866730658325048848150612681387174200292658758234195648061864593295664884730958907676387590771828671563403892356567527601414389453679092127080873094229394087450381485933282742115222683787382948689771584941586002502804539101915640844383465732686977893444627391124560789527789175215395087507870666526293255981259434317322435987470415732268070644252052714497577062662602497600838035487974189005256035889696360084629537816157274963719656162126585878822510675909475745457499522539248943820504987302966378671774800558490842196024483413708125298517740886327528722303836756918886645819238298813324934498479302935517998902383268164694349802430809817356247295108368204796458387991008817195548334428714663183665253134582682746166365283465390656031719155275828581447156742391311873194034418636148747721554903988501095565523396469359359553438450433124662990121975743812064440213452029999568470653036301687879504976714048067444529804550608850446318016100653541764140099981228466208443249870410835838996752278950579576948503551818803136791952950697278493169438337063824459372462784660338646215081874722099734449214095587222170736289316659273725037579891840283725675140086845986184723372589957708938922736056549457505911357822667126956858902331556624367784666866003168044725463786193293068922847744733848801111740634719610268264817243598842295849749051377983762968527966317105203073688066320400996056708709541170322530144011569776625041435762013213020133301738211202903600477855825784115890077826719358327059537239530580957306519590762180115803480004892694870397615674414143138828602062682597175512318920961889596528509162591262159353763234781123642898461779331462269077389897135103369472647112541893107474414570059105165337639515544668742403246474402444498343424083281377480723388476134785526132387748252511355821243753323062386598754627859474111109109181346354733593493908270455309956647232333772135040382904203609383962564904443163517574415560226163908339985176968392460513994048903476269609894078138794176174253181610127578033379028327522762804687289499486940193444480920345432961698817948866967305171734490177808197594966616785167265800240651003779824399297317499793841501932395846156088471561562676958166756449405688003512324618844704522588086291798277754363840412095981526417277254305204451308269915283488862748855565334664520374376023499685290614350578309460970028750787417957592421308042782530829388978544198259472912599163343546237139333409762184375324661872972494303819782443769649573199982775025625858706374627093066505833241222141748669109517414890351529515512946159905350032533147049274677372231910737352324508222450454373244726370887508464682971668207022609039595007925986597952240251963830022818746369980129824656135713871216444300584437594964998624812021340949636791132487555604828147557321134296799867220772498053705393494523346734665220822770008425820143241652508147409110903981200001885171431305985025727609712397564523007989959061304213291916753718744177955436566527412358034860069535667617423833647590765824647545852406892483292723123508840794700400880910100647913798987935018494326571743394741223148612201929920640737592359594856570381029411046981728882646345175990647935289773343429172851598705396852351919854665949659598044437715560091486920859852480693077777404031333568005403186223427202192105877449828326953664616836762588174128724414658012690581468900015121143850721770393472896992348101244521934567552711074877660883039229227749718682010449446568373075883125294426106726352972606411884179627698819570691455137470585019904901985912964061343727484342976117769924610010181391940515871368402368254460079302725868577265138578062126377952480026759499927259112497565905865752919503992156056263567292766522965973398149797431826516547912716344768252935141896449423328661120845976716261471739099990675991268626103739840510303083958510249819865706335531240645604394360990354740022297220594532983315381984373246231268508529652320729128014576372391276156842976163386485616860583235607138279738945762222233778690548678815644958547122501578917305114781083027787693830463943343947418844092587940874695546460792080027902793691598838943584749317232384786103944422793082141893571894035866702342353276506423804652602113485599466828281638010321413707525885598934917918494047670043877865857845728829638986544426427740476686642968593394279297344795106443384267202392611409930110762788124349887371898406594086952771465487252560569021672386669938154315783687073071833145310476026193970806762865692942398849832445533497896844401826929243930213158322054501162545050420923582591451525778264860125420711557333951163480896059053218648164619449529078686155981533501662723172331276593893917940005353495697302289921717677944808108125505247379934495926808849376825703899008169648197506249230451277260031490953042866770937108589429566056297047752199509919444829518932026689958692398881446667138202678885025704142681656982868775958864708379457472431971441281847118047151987012990162553292055369720247894228329617642085044151904244722068386346866783312663702784318304681812704339361917553919088948918216566150452810605642114779613221429462425719888426003688910168391887620129907660174744936216136878683744817312612963031233650126431594938981040510443974517752033134999492336690303989617187251794138539024029397578270960690299566392851173304859100158012180450164024939130296118158540176977856146528419047013666356121571436802017144684526956382380370460790742784085455630603012658599140114768572345630368524488148117822425547525474280439976290023954551381723026923875765598674092273806154879337845090618257735257397680368730490726287637488716373532109670832099291542063495075408381086769950944226683262986175175916608377671731787019364698902995865309585141138054980471013425492264690518562701292747219823932598579663509137209476014742569142752606992759415556813726570959149581559033914314008996810693328597740414163444811243284243870476165910674383387926522915207688337292980086733649490079405781056947339980050954562713257300728296756917905945009883103259756868211015548027198781580356225987292564490847163042302951116930930728213712983221427275566642138542091671825159692700826721915916012126374507876294206298690349949385880950657684154641940687347966889979424000378195206225684863210258244795411797252516422548412786867252647710795651028817937148201819899344244769978198465882129114915525457976065959924190907255620981405536162351141306382155270457292472506376785748295976099581373387788630263991856637677594568733625161297267537939957480397469507654039086368944267226027044679949453587570930448449725021575458818705839867062571389467732385908497984153829940585436375190269936667823987135451587467262052414674232762422433802364359781086738420531488705226628624009240334146360340982129793503546822099117491125820871983008017941613308803712301346547837214612801993243719446946864850652881082400427328895180828639390190250448677505363641246540043633619948804098020541164690799544582724675593747498463060722573870610089651174716873243624408411142914682584295278829415889910980477866474376523467871053798148628929737193657886337668969174137416627916990793636936760923145286756827509846970331854473145867838435635232868035469873740885065551870372840363409077423452063504083332753687941129841203770505250832687196651418895849951355025491014499189854563576169015884248394269867164335702201758524308380597242606751488043134065901640472901738317124825055805263539076295266261699402443735899277313507372232683714859278223755918658114298706178237012597614218155443494458491372006139383448875727774128779418436622990220557224802304075989646383397033800203519732941377893031397072261124801939527709657364185895801196919505187751105161067894252023171907821942892861405688141298881085897568485312430927879057289866429150599529439153583475731816161739577146979918290037552314225939839896212476188887768293462480658348408771654132013681224620235154349530098732035923256634708732649940762774062298658298873166961319630916091472558185439375615636244547711697450718325714074500677678531469728429678530966099181351941817759743149393690041830956416793143822305638646013429737402286310828223432768835950928158374083853864562073364923970162726041431522530363101902514728972932441118516818926557385532655835225411581990149423049717051245474880033938238916336313560115877664842738725965975742693193089788413037508224851706820477035105696582911597561420021319343760881697631453430353526710493022892885722469296749278162121577603220801837185507177361818227795917781220294150713399768387363474783154392054460442322746207253875722323855305801227232976034219497989267515024983506809992521179715346015310882053981049091850677705036695745995173198333572958986069086218255505190687920294313486162156524870670613289510668038335829872550641412346177399534317374358184305850156174741469479150457023071368466543205967172093647114506193013699780050201693293563191385570126143153915654358585784116889759909132587354186004541037245622310342712911133457730446816988942714559351120217780631082361610120870557189124647814562196393744791582761250063346757394039020716859053774296234846654785850516533187188666511141958420229364317782950609607626340684731614351948537440807719486591486524935145771832595838662335060885065429047710884205144588769803009007678736918263695375730118778258267373159120244845499859195544664397373963456497211152063361424653616206732726077241455928234818843389001952760386334855168881362316644293362868675293833092252986394186331146177630014691799934250840177009088060157844370767077204865893531709974853744090121476970625950110633555039699089103665679544106015635328117538956048020755770668007923469927114539125117046855545020348719521567160539457247855298964117728392181630028896209840960411276162250164394780946395937627736798963702365716676674871689202586812831157798481795762735032942947234405234509007137949540558302459329911871694038810227114268501909373070444974279531781260884579969173759744908357475215379679860112201569258135838735081741398542278256076961430795742569054682107345970553918912389378775638838548498130291445012584550638008653111551782402753361046388205761734164894762403425490615883286742577396521911071314307238530506694558427267149633499938359169801146246512697871168277473330945705688458147197618469102668452662655115699255963220645609453682691370891962482236257521708635521241629537007102128571856767581374797234959699226687436840779102687299759666887426631130107519709306806691809766546011090654431527111872278918844430151380365507270329084637318601544193085006815790333699624196177342981829526399277484171469085278987049608902492078105390338206889153103124045245656011717696577978753975041901742760433187221388032640010248952165645789687460571400795380091704813412535235868433716488805812037108224081072326217507824166851087249454443978811707532088478780041842402591896779218002734850700752457574581760915137414547206836702140155947598457129228494023604855334501296840653953088909974237559913168779313962347033281305401166570327778592163755745646806277138858816158609483492930539956557456527928948211567593661625174354731708293870935685215323872760039587281904599656419917399550230054890213500364066369552130358945402972898846718576641106907129714877820703294516744002620238313513911296881777614962760636170530850884873829283514752421482545466526653686092655833766877252521843866024552926655482261789585944333952374665614536810920438629482400280264337404006433587059740909470278009292949685698157905714328399912849163801249628693199877192063155762522991209372543883155082150542966195751018145700677899960005283120626525639043592770336895376906619933409037010224661288368568402028475539999622834730738939632159237938980113752897529669384622467815497376615235222585638234906816947194368626100472572867983451223759601816226176358962508294890275736106391648987373388428785994270246338917761435102161004747761996011968611409523404629156984928618949368675195487903486902594588456464693739367651296614920922465425873396570296125506049064067014144142712418030254252546420866102931479938770190180816685071834561616385713275375744879429252602514591021276782178093912185183242485526014768731244672219891869459066535249435092308905574805534457767290268358857974598971714636486500774966842886977378932615735751725396752182124098940113801261890899026508755596738802351351926512730279754387657914313114165623127154204351331458829569437448958005143542649092236918325543342306831336668706432029801586956126162368859565490848707872188031496045173218633878431663827018046748010733133245956608901910454692847613257101471826251929083649498383965192064470144123429574254965097387644772788867559457295695606916410018608571135986610585691659091667471437011684761170011602523620676662352399621325592995636663087542409848059549449500385675064608280629368396441457598728662863301667695475075799812659336385827290529544037412024482088917331345861096054062545345602747029974685687931251806090006358447637268959186449549357345849170816855088458740100456176621822011227236564485930433242790722283334565998047775249122816195300119336329890001354460225397527719290855167994051536733311118376062328089236204377480093474631833063835203179130656231973326789671516694655081974598052426482221502480821368638177616907156689601774103631989649855723087270842327493177961994561626874012529591603106397627175342477802490766529608787218530018169309316488011052584501038729700676555744924720054279525666882094326431376234986620782221553779434352838279689889049031024451291863764395417876855185911413900822448459727699266933435608747994087302823522261480592853054114826263223758670665226508024078009547793532790389086096081385835419032001678310938645171526638887788382792710151980936235004273058860243858246669621280445257633940281551534038746586155895268344952759856309149987802869993435508743844017580517592239512543308798855135427203827047553178855653933595469548965575455960722510097794862433478339875794612328871183181620162838980309884911550019224871827866505892185148085407740740083360761049648364578943881628533808529327293270793510289433103848551082813864399674534788363088942265039568672739393897705544456359269695558024314962104319528500404946068930104605426742326375783541705324771751506108125464267735306256074063576075955025197028052151148746425585407317310240818260309098664397564390109391542582385105429785409970735566239753479603301604076872883457146192274741222458131068431449453809676512297459148720118007036657957456431347931808317000626595464903797911130784065502815088736404327935006378620102528671523629416640300126182125692095019130948934540935015750011136063748329355150029071100987788466121058888662381195955127743730850335824973133203040421663644781844807323291224427783102410808635928719766910304623705227650878933048764389419118853582178254832481834281016257003291852260787106881896367189776714044280905296821675959097472509536531589483651385856088918319188703951490971814790267961884610069912958413269997324655845788974029169785624476645298781725527992458606438482603632126155996887537834099857743282101625674118845535262888376326303887627858308550658778098464186067078516430615779750293022436466250636848215108814827431494592260421256549726037990192529076501832962345993993377357377018236385328352633598585449578327069184211577562974593127295184563416838788093725311728934358543269390367470587847520963005706488051147910488325825887553946106161208231567290008243188602232256803872438856177053225774330761775546618471022778310871259701610319055400347978101848803247697467230898685424574224593098882664031021579509146516129499573094964554950318508777600381947195023346961328200423505643852074134217406349060970602275911025475286850799144111535504476847443844409161184080214210441472769970364638098723081595352440098558699966742871031493707174591789248036974405784585666495227109357311306602654973897588160659096740593933751538894889201888299379513460974743308604692925459105894546029455653163880323463502337677043276480602853011380780405080515356635739609856283806421639047673170237149228219133666868196248062105470693740372468379724294650221099442051380846121624814982412846417294092877193925840620038508438648103932109365399985757266820201912338729637086993417777781614369110183623429135521126465416044865426677003652431697493963489212771400087124652754109016311372654775307403222777276683796154727502278837711272629992048495114387650592263292916608829650521703501269373764456514455366022867296612553710632751772157881558275066875369035834637338706235188759628854997529713533470883987937784642678294178674440751646021186370905686855914056104882918562700062373958470952695198203452831369708701287342071692189640219415260881581162016499174891941316048955261807259575781632834183738595985210061809766052857518267121924878118860868890274100442890194865617256287889279887664338121698653813581687732872719818416399587897955275586045875440224839367100030972556837214131823611643593480206833520061126896291934727273161981323572981094683815087483256158331774341443417540064662888162976642142470693946612328665841908355255020823641638078293367317708550916882643080022822874149574994099536805306669490464441639906625691207669617078621659963147656615600735783903375304560722727323908570575628110589550943493015028319849976730117604993513735792875466596579948808454921961722805781910878622673834932648634344386286219200149406589530136681984030684885149374678940636059392076459162293570824587467935508505134466300006831817105944379073349853187535578573646146757763988637720537075715353522276928593527378476482541895179029944948862316721976210841756830397281753970125565218211365139118997238006653707790614819899754335823952121252266912551516739437970178509284508144344397778006697342462243740596030984449969693638404062931453996254675499068008265183415033323036459647449774021113176002816718106136690556030414422394724151731057180539147637909724261364803584841216933210135469332011929964693174701366097083215841019316744670255364476829351018517203957864600888704456671255597240311116021040779843534574057568072776465645446559649551341165535716045270338296928363296640798160688750519753388947336922767270118867524381676571173321795684885903274175569247768583390710904476432567804664601037852140431868368008557206045465995663107273187186000292535792033121504686274088962978923258252989381589287268226558324809581621475635233969872345069559742362779793376462160527813545313822837746339416201862945161480754756405272349586870107456574854298954778660428291390706025552398191591956911273427091066141405211883259075305264301819654598990368384346929635128920763359279990699145676336608779240105880266953762698041274977855509866121015969598264281192576542500907976101868745305736508677321119729835235300630396237582008588756486181222675763606725586790482264441944110223695446324542047422302932599536458732838921221840500179255387069663579996158503366011886338375246783157570437669713755949046465055177253100207210034740360362736693583837022320633222008553868238801980833612404299377587998011721241592811339347405772926487836276232478876769704628556168972093200733987800551577433761547728588603928318842138093905255649014632558313799375425341702190971612768206430997575806411870489999927907522023872795687866177812083487941276167472539201943013327509023222282364682518091036407934335031973477278925095039744046393587390707389851024870741196961489443871058055461116589038350653832594907956139963772495975493257567591290553574365297177817237671616354418487664188018326740220880400425803555845879236444557728540611129468743028736709770428825041856427062146510016016483163979994458711490216227971984371178812570208291655205375375829277047317003584902678076843657552129595734318240761455609611071000469240085142186211970266059740478205813378078471656723715323644369693049780777657433241209258441184431048649326252080411474700021641379470288192573243210471134126564904672823986531308400641556054905337711743184468535043018949314687363015785305062776333595759871076185202902749659433108736831420398223401464542829917475592696561517527344691146358252731880011750841776870194568292609415526999889195262210422241286262638018975438879765649183728892401350078499998575698566676130706186489771781718171507891133081020953875177289606378075281117698248615875981934657339160997101983977779871963097775739919433346794679560801224701053822886128245005964614525428386387689716777869339120985064364146284361903610859539672879701193533209643837558897975426389483410931962683161969665102884672866363895778829671778650981636902164510609715688374049322444018260868979405170131354718753802616654609395044564192412711321201109518939195965422733211643579606463685859118351428849517840205397252375041307086102176364050250214053360834406701203083613942881758548633770813486340075951136191083544269603295832617319723454815167771616448194672950933275342709880555636784745661544525924175406750769083890112293706195618182176964038377167832164171508163492753942827795867229659412627544831873593816404570763567172019600774200940450368241379834118778305906733689300333326072643188708908499805130864376486946739711497838612493585438858125047611454259946809038944425550718331327291183454225810061332250583812117150537971334856814256422055972038157144257987400164118472187814100303558856085711950999272381269317745285859047738210203285204225095943417678238077818512412955950249650465138882363237148810699791072196214104276048050903938453827790017229324387834296991854523463328673522947628824839184458709274310994738247908784779806624587585949238417547507168567697646943946703658259398333323058282984041348564880141716668912276374643927417123797038010721829577755360162482120324807427651642651907041112759561501320206558278820778128750525878386986434990501926204840048295962239385954015608276451612677649464870279960824699041052095151428367963077491899282357671901463870558368152057644423775259810941326489626170824216287493639948485912165169892328763991633952389352561295889545381092904688517496710741595186836765308542973021954427715678747522342136458317352712733025756687418993577142015915767882000616579966202010771631975545107356865159758563162859319503257694757287324922410341407766015788976415622075343836411645468150896458995618441941335430085359071770290736396292638448700805122736642680401416175676687093120673647517910228451262256934964093796730931342959753617231901026731900714249849681976723271923554155938617088909939026041945260612147937855674541370995860005494195510523680002915892823105629501479065633138337154379306119035806890670127371676857357332512563327871501094371270313188996453716764741027983855518507559360460092657555379625754314797365711362913979488781905053444027145767341621450270198277952206919071362141931928612089121425051352331445792213194701059532237192220332117454793737612900031278559300262235213514117317673990254930932212140846040013600765455173489097311632091569602527404037760735323153016840100381481821601488033568935422354066925205602845649889692332501012836870043888210167441989219913220458490433137969514256029809716635333516637194864113327029486991466113537558554322770981956860490954647459527084769473195911633548783498973634642700047029617049130375278337224737951925135963264543858299957357889839496589207776158940089777104635669662644369461810684737802535446625763189015170032063443765798735590707722451658933910354922669822530784383461061057702860399375801776510310535473392041982037878945574468670919861473687952461450859700618609909945841177113297145493790328182639361577587881748465112895712040633954502414658619981694314699361502783217365072334417742871946643667619605253855897775793635682465073452027056376517818366633000772868916545165239910610393922725385479585058133369408725937663883455008791844022426555935327312374260302041404925500339248240516268308189184145440175784090856265207655443907584502105202597815872881935178577817739180284352148061354360605867121056428137017509055379163755441303101942158461311128700839712460370125060092564035573553846700366494170763064912727137333704048454530973617878040169847841192027234040763359174049785474303184884150838876504252416194125611043074371999436006980359254668825838802389026681580856033509106586248524187707822769262369000982185183136067487122241583375213963885315016034129943898856732187156598199942045289305456731293509605228300080792867105262404181686540764698673259062348001673378798006700779880092383358992982796119477693803937614680071184044166518864537967106821156220604904061834791005121644242741757379369526804709813146704661961429678206226094255869989790375578127577564546282423895526274447025509963312144690402709008069511488162788085682049715032101881713535274920663687100033749875277807145445972012951564088279527340256093237754460016428952738434911328221965175198865868596552650509592435227932366782055121646513950442226483310233757171699946518390674403401130245222938790228307817554709451855780253145408778485282344891901504053805551135021222065878941300456655652155387024421527652221999773235306976194348530046410370207128791847959371358516455961430240627239693192450929311904068037205313782182357028431847825090041934943872000413885194619458014020153938104203640501537538909143163700340016954489931717462632149179657699433596012483470741734021115711022608130140300723894868580162848029061564867889128999398271671333834017826426931188505283581399721423309174862536614146076914790650967502232528734940016285883213011401898472336507073839741393144142814647731910719463011185756697416707838323079671504038213390315828177997879284964682260432594010508404307739011759578774353915807907539810473186232056949969023386469060017487088078267497370953534054170017847474530874100858463696293221755914633123725192717185716449769818582940890906781751051332313550432287393039570675400939569808981557445638046842141288916677291192959808477029774258418398464733177513527970480969756832827209069226004597698517724994716679297197928705226646455259473599379557541878534758729190262520217612602960267366793607108169882235735674547456025598247990155372000841841938934374199739186176292910318672897674683766358858582716391846422417884957223336083489921423298731088451230539808036273362492907453779563737547919639728438999856414890663767179573073706579249088464522724462013089382036530669703886390367871854241989686076651563236573158732784330618142943837967767353942453663764960902258506735707684320102805946256344899322488430261022285874017485747565976112125027115349266188099601113276824252548918612387835557686312996318149320407235829351421237365955188791367026250342276674921138085871731273515669108880032255172598689190324013632723497401796394689815576452393885667994503959548086802029102291895555307607348102286589015373655870648663123018980607007123932175001517394548008167751161124394328113957538318284893797067270967878281088882060559552540145696895304631634682905488670792394751849006302431826486159215165249692647069739718040777589653228167760943096697331834568320997795570633582317219324981842437327035753874976543346843141265715429638944249993335671253584739511526943930497315265196724700293446099891663278216193412725187436458324642730855659533452082198917430272326961347514315572210715588104563209956228437240981728031896615785618329118471360539653228759526942025990428305945171110151108778280653178909474899254143925261479009044350416666166080403261186463612968931120340751907419572699609249961095586050635808874754264309777846057581791645632864924188056436379136498170590827752843929912177875721872541910585422096005287841896213385744135579253224044168503230961064029790671696661722875076230664844074706614802108635240710850468526897347627751148227577500425881760979774109192695518874215884613431875564346522591522299013165009099702448177137467153437372708830659821546370315483408064849408943851829087950328530843353853745848011258000739853143853193487833819070773014726701254596501039145681664973388629110256186827769319763905228512384433049067050513551503649546226109932112108226125111392976123791646875729031534272922115966722649664362379067784930774801883500306369301711355306961043521453424951449301588280267804923508951964967562920987525003696237291901541418916076845930771254631355450860629531290135122475089894501346606045605488494728256107030375885310729762733141601452310261950663525811289176587605698988478833325711631708287518315111117561174304911331648184485386672886705681011443075167774713084496127160878939269820118198550842340803751568861469509093019676416559925876233307504942847478231608764663949239318665671730035499765605910328303359835206556506049158940756092712346544814308842721476322593700054451896820974401156001358853376240191321239323942486393731437073652294648402771884608242995828737332789229195893817619179897421018394799454599091887440270235819725101000772467394560447883473091224401164559154029798528817397037181259686079451069380669502888353634370323568801899706438658708774672224354383763545357934979424288360186240498194571179655389982004695791861000394254335128864337845351792881840214948704679925704809143459029025893877607251534520814967448177917679049613031082115213701692346392239856001534601918246986799823489927387295194611740819300314939402415431201124497200326585362526907839297876428217766860379503645263035431050504237816164551047646181553461031167409646316442225887301973620611295497809215515447514787171366869435870045790408577082760024039071348711665015607873931061428538954787041943045864120632635831335554982627205137688204606821071296078176729301914095414333110907781662622421634384407630580803993409176813138327829111612210160117353085932469969526155465355318416026275649949633767356529888018629694894577623505689499724658347782561006987288641675699770129512401339178938508316514235054660107577935528272066644963608713131238520131240051736681748769074196252459835995817512490427751385744385105163354591472118107469077554222424815789426672354968244676460994504493035335742368240075313538846398434450927137125928735307957327050619119813637846503595477047841024518638298201622626695530783790486429102707611650352439226067080342362717690470409138990863303105474440688976567939480327513222030439575717155846348624014588458509681254061337867206939128702032242205142816757683408180059407471964790243963728272428463601753218501438608478687717424235373091749923051344326870791738209139824332438578365118077798927155532492887261355899650208028746298730134668487531382760636414825186717604263473937952128758257540241987660283812042631005507807544263110576450240485286099036943122649134482011990693824964931072628808225240814421242863200435536973142862453553650824576376386675420118383082126295375072550958348273541501247448854528324330212832554746073876464441074318912156151664767098470194585274186681922457826173792279954765465037685128264368796724966689018065672133245150214064233788605122644380569280320373700265842596622033201727590780815591236334312310644939391359024102977809010820562102010332149211740701449768496325736883747536939212600181351719136099894126931538205662558636615848498233759701933793221153401620116186867895131049574231815308354665928475596173719442235995853927584430958053876495557285215512181665880204374617634709513001564218116515330036516287801298405971970373606687789703623579228052342694973865496308202443242786211824388076960224318837279014588203304630338129001297136018138299200613819401436494814301386746824362004446225029862811775299845995359358141138108084639602971573552197677084259315323868547489365169700220331960610820264151483221817043740184517683831845137693997196884490223070622382442655351369838485507744491624671282536855195301541620105821951168921361641127526916731016585354935308431123244023405111724760938080035848623645475796499791770600609697647903628997269559478058374817707075357994740796217844825962727670586056554639928858779013723426331993451566897311479090323400314409863404310743702280106997929886486038623321420119365749827472834601731032492726362449187707740585735709095713858126273567867946301426728700844589165579393850296948963604240561645855809374437756582119137276259236549707058754692181846933778961429622733515821850682766498418154837151898934475365292016684130398734990158005366659994160682986395370399934869924231492041172211856025965723988336799437494051264613433522010063373720135879909326863387400788046584274043810610914262015286511287958189483274799396564051602264387271632879858280287035423835865418671236390835965511102080086009883416852521066414357323478810329339554242844026988493379545599552357006847081629905010103080271666820246947973755442702939951917709223009855289320578957610276182091555477968416466706790837532292458457455471659082128673815591427092683749327407208612232329670539611678584539014410605803192037105374429875007393441482835016744315396276058151422056348811822300306295339141667883763953899182288549155423794381739866533725515888744052606190748329171257591645112565331728195022760797934957584636339041109330795773616569155229363057398912793694615640597381445091805940112665538096167634407746521348385784844176147536298276485284875459234416179236956905164567798525309110499454485059286139365159059168622114470115746838806663768718021053690668752085953255482230143436833567595739646586049766747146709726476493857088357179754513982048241089026142414965185987848549193774698614313606159760166269413025469605254125248046004213436734088098736631803437836462365071771428366440807390890582515160962448766721906107588902206979992597901613180636231161980021107097352110944878485052197242093751210719310939059281319358364585564296664210482013218827947262250005430935241976129072668899405881735829679384565381717288233534947811402471550894558028347491281332523195113322106449258514129379642701115886774917718396497203295444187361905403981434566995868153500027677461975045059110165675681329946630943714458186045471209796580399478850764078169914895634362504203127033838619710715925561770725891331339656819146233008192706156438579740959016111886027355138512330423030662697746071030879210705290726441140874261185969898233188991589982941625511826096568609239003349901876262933141255974674888070195655572625855484523534996862417702865186248971049333494366315664293071969227730875002664656187113348872817988767352654439593845937244919480064758017833109662627892834003786976036715409804980897592402738729427143484251838892987314495756592764161764505003931623456662396704520911201241077695795114909144413644966369793308570051320590022666993676354413925606389861745529422679636509953721940763395033655884629438392703220844048472650318028436068921551121139091752377760606919206660015907819531128107487032187357248545360822120804528032042382491509079801345462466694629886299195493874207462776310881980843183473837751480860822741779565985247252537485024701054234186148383793959676068836585871046722451337517863124504920093970647061116075671340580626339634390825970458962111259336549656797910569184336655504268391049958466361110474563673903547256633687069387103488515118380272681422313333511115749861162639110593708286574939953702119768405090593015550347055110138973619735223707964670214936322496803196880567153527118741585982405968145075488109130091835313820908071194209885087771113735270918648607003970299787190180422624507338720644622927474741079614355221595730560781597357445261665460579147937524806738871756859697223805990389828658680789391056150667380149671451596046660586912747689121422394015464159230475791629631412076955522352166872584049065980877405606850125000191581440841270065121163451194067665805392167274260843494833275189163159796131381684238112382088163011396454017207026116961006652368121613111964656658386806605503855829507669831596367533900032673329220895523619942861271873697628657847041319555398354276584439914191175484547977793166445117660302233217338384608139725879615290059136021601458283675332400180953071085564958935925630401218646951051776950563123205402265437230811108709734481515986274868760189228649817158377109649180802839962335010161934082492052600121856457023272061177509145690576598156037903165580931492944281804692306697588377182082631649975102988972237923547157391064262009690336402257625934892732294112580351815585079995899080988093034560483983030349356551750720335255749551116689922528463736603412149761231760767692672685459660304818767287782018241694172770169443311240839596669387668820350620324945273379979376770412075308862177671893621647402486963552509443462866041554658343095958611438062968749539710050516391809771893279286990832808521604818562165074798367684472898631129067136107081685288244110196355969974575334950391006148071169189306863838989716314746280080575198072100507970785019653460419984243068207531287523159331445704816927131021378058329021192172867119155813035561478045131581408750918717638090975210824024549593980032338044067320610654881490816137924981474738164015036988025901359257288126512769506091072069093516303547621703490586379671963875590537899008695614534615158445043225127862403640147352325835811935037984995138904037937516997332713468622669426226967625104669059202521931975477792655220455548964774666012296026533062960816084284068173769328472460813041987024714554769327960441851361109689489814688031556217421124547126839515293553421753570827571633477808194486889428655031557292465795874658635769299099452452415856164534387064887278042553589143635480291734604342443980215922737817419555212425442366636204112189622943290076399179333127529876341159245103896221904071509704860253614816451579410565773867975642954762005549389666575566762421806488005434472967771056525772889689978184044392839425827127561751481377682410783954336147682458761985646084505650925932754685691714491953334851243361239423013135894045059696416146638404820168964754700419692039955894009356554219041452389550165991823222601485346995667785396359672532382547268269816067736321462650834129171247649783900449245342916583948344496315222923541006685176756409660081033134995659645219292693003274221479208960609143549886143850326930626869644896344169885985794003463858547677472375600119708361033923724173128469159874450102902728316510086903131458684350043932706546941354033951700482936213785100661008604418066311519823439359587101904238087756469348400746740620969068112788719542620774420118572876616993432951113412143434884767323452837749938851708146122188190703688568211265393179356738062703358526950335257709984704295403232015572435071155556433581407793000489190977839953386726513628873305472485795490077273752290427512809917201519342107712296654211231371884832136484868727724809130903447436622172048199056545209195438523551852263572112852874607105397381783553321701730104440610718929461506274294945191444454313820935600519006372806994554348995484442642196837512468894546792794607080600592966969309615391876949237784271559912256306715548439804104065672197233756029726628419801563173682717584586561476293398641063151243661313484705326073952202876175742376004813205268550129100115827193186550650107487849765306728621496024636864031611585948315525648813054044724067151879523115672611243982784324805869714866060798509770980773376446406613731041270624552842047437423466431033518390289699223840218691396958065738061492247701999461929362775095293762163847563603644623798541621120830084730418602530570350950512555209600672014039073341270391628027767259823426667256980849237960110418369594671371890545414740374556297721057958316521294694682853608420128629289804656213360569863421143734070574736889908549561478147512252570263298288587029253751949092935970748266297653334735821953277429225163427419418190765006237900949542020834930421602602252439661366031789911571374063238674048222653287630994128782187828626237585522367729960256018130802668534273440042867322398040087080876217134420504520140241072170035991099400959653294841177053288951843706582056202358915576898435131893880315954588581203013052387295256597922270521648735176675375464876050093117659025906800325343513018344721168597721605664461209312546385464624160676507474941844645106650655130253954167035353027713164563065065715393947096267470083057691099381573141912765949504344921923971458562123270692485909320041746315350167606910094340100593645009654141167000035305405815384238788006440325910160021353881031869583378831977013025452067276132759467909847194668255201683911081621933878837753839960863636149778373325156742299685633447311461073736876504570227928057139135073780111278568478209638780214293104518708664967845535689728259657661679814719729232747447102209812383968458872695701075073777564213885851220885397447283084645139906290884262459609091062064588699028497736165398369398488746167514297827141683238320155444896052527966293590385461104760563981412472932516394885246288959870475601566497559871319352069799192810552603455419007146411392644635611500902279045821215598959393483905108081040727941191422270133703407288474987431262263426208316582783305778107570950412631948430347777697082568940209091371887466250086803964101372898281178458593392360702706331386284029164640688733835477780439049955157906231645894712655625303046596201496648961049712717597222366752306677978738321639716053421558750328052892277063885171602640151693178038695085372714864386425797942667731314682540806516934864083306999528146125606469642353215290396719849460536407360651747345046101022969923815204806124164865220063802129067682420837574868707200381511567657534649298494704211467336258902133833772815276702891223603600308851793351046066139469671062301975489136273660178624835090340720883270719593470777731404567024828787040029804866615259632245735671843067409972589455881192716912833558415689054483586684033521471729354219179456550164620436745387256942816954742172400950720932139432288556218712105136656021912613363128371348623869935794928031183630159526511041495109759846064412745882637888947243893239400772918560359979973070575802065929112420686342751092302582614999667271635570164581396852806193221849836766093827363301678040731800434284877416545037628946452697632010794767644972454106507312947512735748130078491579611802846268601526207212430784423401546053974036300768874905139826587542190962387112273446823906737669678965662313286106366187625422505919176450603319593210312721036926920296783308039012982346728760509791689646095898068940831953011733349676940105535440555759743509998952934108860610805400918541201214494905800158400347768525645121744034511271444601876950377858252475658362841397714066437810369339597760704103560651547681685653488757907177859858394949894426090294928707504524049944158621153198485807797860698721439630401220395166808628191775517619010965267311784543815769792268524644212269040130554364227755957485849829305892661757789723772171525487372852607004310157880256521315416211858037921451509604802691933967932984268305666346957158945771052661554779886524213361904421887979695776182695498077539091328271975946333539355338696751052605670583447070600094228443076061613392082678428457265120065788535671954756600245353739305862156870453228833375097757493222407218366924061642266724606538650033297511062354016294495082697132487783342802913904017070743795184993865604674451912924589991140079800785800950834259077285302626628643231777781950994611313959229349430079223072819646508441645636307958881558676789201338434015429283773224453023122672102811383410848959866257778531016848321356075231486910474278627097784388974860061573568577809289583589649083957846478658761413438831780076901151257003071629317744558822051144462208156635029218779662916182569145604617306954906660833596192647173877366514466825928095466590248948233198219936953279929206440042791617403065296214762230134876557495906488382904600239628980638456517384798720950108715947741517558056275703705363340918723228490019284617727638982274016304681678018006923898468268970765239253965511925641107856724691253139333672845478059010390624998961210752470724350194593307652165015062568242196506612121035558561701534945207667886634323380240216342447181927509730066578609779438520544852220688954032086688776503358891471157752298669946684842731030616450245912945132408399988989370044985206537275500396644004682223460096896501998483169491870444460134550135876517899972492219048024413919519588482315216616110120166453461144117698394577139978041458087675533503039202047795189451925682631781909442758834249329506891745085464833829944690155210422391902844785759380997961313256458906043806350823015030496557236194164495134520572780013649419024114057656203162575135063032191750055967989909043390017271934734447108034336316826916991544881707777339796141245621406512660257773446662152179452543312280233551223190194606401601006117931088460450210550345236259167187164517475715480244944864553001288148656162773557697186753133250258960312713667464586951381197122671184664814914078240964294241870848431009867785420086276667529159224470637214655445641891468696071334597231361041215993340693876541724154464891563100939545077759163840458390978169924538647230428469953541631818241574531372143281754746978711407900933549962595685765970063144166043659907497279640214894466526765673754252541299049528779803376404046617747976427961112591714144362797701192160057261571966716701067447988195304603857366722740361439245944197652884857053007037232648850991336114575538753600723312877212253599617982164253696921940464840972076473609354295536276510057322696936775852689822497285566182030436651479620619447456501975250204784240049990083142215001124955314973670926791929734452111611628868297867409962705727687057605222159889342030139453950041877848819649957408098460847597091466773405777963181311950348377205894081757117437487463024173595963893341673335339221776139311855805297917714930600142076601605682615872992669063551556534223740073023343802789574173845573808190151163850133002099709386487504328710994771542688276272171212387165036356676089712404121500771035917016325374748233786794803705612929804396178661191788394885193709731812662635003574046162094083505483560417878758579902872161477127088401590739979170651079852370693757918767949679541551578144155962591573093539410710392072293688210452155923170237306680333828521782281888578299969120389719981499283727185191936629325118109527031834450450216384773058468307935355894682020565891989391612326615844081062913692239428393446266481485566757163455572432890575801284412422015370743266735180871478589935082559322729912847318107958002024967484936260929591810419267057678792399437035855060476124928757596580015595680095560044650631217884601846849056259892110087232515800383105489569565443364187257493324836603302043449437608599578410441041722204865585375117417950367341101997024309188445548291688742651670562945201183277063121214228752280865009425422925596617126516912730690467978406641410048458375558259818239480881466680265132395370190735123093288326763228201237659072810515132758928428293906792305981013172381510482581556144475206287844742404663438450626950154605464934127456297576619624030836723970562380295400680511429793131270208799563312468247523704254523251413513327233113439992991480770050834046852823506094429603683089506800152134577933244742433948858938701536940097386877957570348884819615042812766590588750901719971946955158401223790334657513967588403997511636170348385169415488068418476466629942612030481499277238377952060123287714226350675646472143145244618416449245958935070146435999079601330272385971809017337390848625299426792249592917950885310569062762936650984870164205678927121710101014545443330244414827153197240431732342277192085194983320780962147652311236517269022482538419449415387778955188541797788872511181245939351936136689981254329087578115493329859042447444007745566133571798818435421649972386618913028829903847008755635801107555665753272348295897482573299351713519669538835660822933978743373556673743128033987259828883186213666275146264565500487296289040274526075847486386263214953320431391572121842107430039271377998974371608779189336376289345319781183347506692949324599624753597258121382666774111112085018018393688239799893206334468891108075455138070156138471932942241002445291614844918498324207919090361308948782825079631253822167132181021628882981821990453560709563065312896288575076645382840072293169585940019535850609659313154656896347834630827283469965735134357748079593145229783662998220759078187827676772542145203757829023202838090649551945573770378028425980095280570802473755401930297857006009283414197647346912334511783629841856111952442377342588355861498561685367844215945586136002177438490505312489681435716690681990179950321274351835279583338516364343011970585545758291493908559027101734350444540259445374147639870815745743245556791366245595172682060375768882805339359781469538737562996302138584958369048549835288166000525952617299361922440413285268901459422627951048259402549553050530902527420122169285921511635256387265562575386892778567820351640730109216483206520452971024796033695159491545470345939116192770123581307225893656085743616950512280505358066504746944988178279821458048079239533163415283479501343661903827387684519914477242224681950798011302539815546943088327112508780649452495764888336109125538482126311777288955404477991310771703318902727640600428446639608865962185069590029850369465886980543511859506927412370466752085044622262248368023524745365740035567148549106840280754044947665254976108505093236464966830187358497191581547277773636907567189905292771432044228868331608730752264160772823608707312187553775883601903299163473131401037787666570729001927901706443255077415931159447915045712099680259142102676562984019545967419721692482508306640487898513794296873750923714474889923594321674641041439098860159734661911975527351062729155625089180541857680524742760158890847261299934877865039851265542971659522825196198664503630450011025913318223940161626506900856578283998999637163264055600867410738664813006954097329883139659499326082373423338360748608834294599334585883701655441895507486763378681837016999807142020887411046311557566201006881591916028414769407370656923345781550238760860604356904713509671691626547359423740473596359803766344740707051104209945642065001537407774039846933065281681151796223655970793636475927683811103047709942171277968625751086494580249610368389207960167266708075713054790454399485623478681857921280068188844350833361202999607191206921559262055939850577429302837282074503861477056117282559792222598243336810673343785316635433655668178319035809404434832270353505334566329949592372657307034322528858304257037651783349535272454420172012032491781900293744945443966958050833793280505813603398144831890951197253900710263029803112528364858020590037556817987721070818353020623556400392269113971360570463452435606145663562751698804570123489624819486966465293746635820803642885385466663330300435402950246035743700049462454312847732647163102661972462380822216874361557923853213125449260470886863471422351664281684481093913910571628576684460038063194273217374902660073246168927312192854978078891029095777489905372354888222301987957058383532897465530341514631432394006292842235921658676658549733496810937618464551874478321905502345261746870826672672571401067417008030402800369359950321865983237580903053657515267599156791821043568706096564453802185494002733326077488616568827648221503906036406778142227697703570760712224207218497152904054203175288204853191769271958729357958239952223176854948355519189199683790815996284909864800653485544260269742918010415694570445877534189482191191272439191750598802967608216851350253384917829066917807333523779616915114436175991755587321605970973992492978201787530323055869688751496745400035503741985530414250477428047882341971278450399769984621132159514142378680167540990556173213552686000882348634633626742616084784365834469918553301765063285206602497748062188223352181720421943028937157066398980375327152114138394282149474026420078500026994956535768435444374200385008828870078704507513014685061803031172298496678169620636853396256096826352587699859565535847118154808969903200482185764927195968772092988862927936695506872261649793758977455218991548655773537442944440295104564753409965710605120327120886408395343061864409930768135203171880529294973388881762570539227607467877399722056630965917698291237832727413366181421569698569355365539536294662709720990768039492809419182426936319425901568977644606922926832584554959862413657553072509206585893129544855340886479352004927812864883069967566030802089653569653621432027683981143360390500454253484274343835379282766220507824505154859051903193100425005323770077739050479898022947807108998561504489317977346253824970750388656928333629675576559595621900972046333107702619641506927978645907343169392547361802953482481088409713793111387959002259842901444019757014757235503841386432966303098511691942326308714941772382513186476954440596691803536657800116454411094384582228277827000536450464537612891109678795688087415990883355406844527568749974914343444947046468948026958413169122365025800522531987529236292014534982090790879278844274505522015201576074145232654607208634335453568759533055693588832472036284942857004740680396852040527667163948956673799089960300302922280257499451603546173893451209928418969465513516296006601718844406230701859685914899838740856880130276986898354913330581819032998254724361440266981829333506301019485811578094135317296631842526387397625480361229406258336774518801000400185740940266742581679383056593785542769112333372403412597723585881383925443908291884733765223697441049971905186952953305172793385414436119726532817506314226462399465429773715259948308664952223431675064625367837499615600159098154130258389581838935428654347507729581267270807217522242438065463872016230486993883819709165856014484942852171160493002735178873565566592468521696293296187266244521055729418523926923846935639944950897060380399888315586020852848743040732683747105293522720029779285797943103754591152012504074003332066377228082126133667485761116304474579799236553981369917162552686253069581501477128728186029041528513330886477286491856666749072515283081048929674603144595083069405739971523695248887079407430520136556248777590807506181743731498693613681165158234697843664111819148489745466909399477908950417355068544929834160811402696556541209994852176611514845187620863156924688061397166880784993154515547371991470144462040794932451919010225282201977750231648082530464719222764162489049370726698684934202719377925249752526563512126417815248381400862180559051396970622409247507143350402418744015179037525392243637525081763577585827621694334274732946030295425177500746957876115355527639384913116683520188943877834060929544603152791256628231339920866548257190366578017624698623863403381809378411226478174121124270301285009308685501366949050907230245472188008082215124364284747139616412370229460027743835468718377058497194050498215126475166720811137959636420888965637307439796436560077865427863824024132018332317767835524687779164733546008292209947560365276213904405733626077225113465609532674536679352739567196842800897539508464278383859986477020027809457062819888757198275113818684377224922990928618069116777785041980020035294480199715373379611864040227400619619708432824131644876896904554085353447587012415247135918351450628779375933127028964268177329177135557261727985994954472629268968679938764401372786393108304834632802552722910184369386662308253899061729886861813400416125228744180487166562706664973984561206210192569744333096269491164415649371552904414822769185494402343009814002878677018792622121087346898240735858812093021555004176169702726692421045188841208372408031516316382183456772093333642216100720967252774820698652599573842200752778730073862134777957606578882111113511524129271492051406515489430954103530638705527364135173723051231140546167436635016089784058420508543761080054299110226219650581008562644132616269371341107087139636346329977670678152369492479226961558368232128963334970777458321982752484789814305255225764012056669297969689000961805170529185943275923307311161915115947201085057086161636979493005227032002167926980588885873346712273762568205602084115682703563035862998381547255951460049140408158772756794874070603773090850782458175901869930223036419141163168176207114827344525611139842417185208424997130636661896541033335700356316168173614480308229386921420883542247689774174263602855222136129035610248303666675834101850364792375738658469405947994282254844605457470573756101887040724219368616434821030776843937171159202196857762142905169890543352448508264753343599411275161681978554639058010882771714275542097375516647072995807446943479132185518282621812842262534786284711991783814722272237129497397637651823167437168094353090805125033041586287821017089404353116592342400409308964457751047482218874883631830558429691763422998066755662694376165070483349974790336515379514518308328562602657201640593922749131190136278850162583139265901933514909751274066141304205176617570874723585573394505395881850574439546075723243971842419589150070842571581823963176358620414922843828965482427883167115237201379334264426626971425944090160414648955381992836079168587447117919880618169236282624155257863362991915633460985302776282879279693885536409607294798936023187606798853009606351229578120152717740393602026204104011528127478703231498769595908477405538094277933948511225219105386650808339145795854900175075776812256132152500495571415136835989935001745644210466589798876462044960540905673353187220160944560946139699432091880756561349590928021130501301920966283055975261232112795420058998704227787890876563009121611715757410182701298727903833890017253850356570541711561523192910307370244439499766540719084715505471781274493700016139383248829109830082902561162501331822866270932704896380040952966132506412586110752382651748777910913601637392020095670920609664570714704338690585763548865338739413211168959144375274202484669777080309117307462246728743938955739327209091548909227859777269445796544279826866591385341729976840561868511021062800118123986101087625427626507313956046165793984287438574456275280553949380842213059639338775662055308730137649947768252397788093869122210952599570887964278841299257591859093401348864147617163888776686623348095805795929386305600449337455048601829075666423193353386154224648734365001716737078573078335835986641712184303136137189003510467743885828684293564876033207355297914443239249949965221493019289085398712804809856859077500734029125538243866330659803722756946882006919942595247735269054585830293674351229552601008334360346030314953412876061105681509860222496535277870036815407727778898041341348495097068466960695639690288994410404797686139079803212414274800356149574199224496329075736658909797812002174503870592899725048515456290490214751723555301656707798876936926596164244394595928322078492273648877017273322184429298301856022537185927834733452627548237125685664923152609463587757015858929643919271857747435923781047764368132031669677286910656326320146695210997185064487517778524289509656180554686927831924710400966690039356674108455653776119691856008556685358801312930709626375429048490029747083076251266347631394459546866140864862464362712491149978700657488666248069379213760791751647349403075170416278838110072248976313941950643725984615251486363037337705305532931488247386827121387910356560642693588834246104168631618260550579050791033334164793008140932814323440409973330818723996274761776795106933161355424525738106776679039084543588619741525086410849400115754756015603173866766649059970665406297580604575809304743904809004336339354157993745273923054301494749514954244050803570298643628337821403218161465630680061747384960732618335434265497362622073042332472693984828444503951836577488753007577819292964196694339559064716387013432249517507311280231851433814173982441522003313662314678690152433101476390838653095794667609676071067949322110725372099297064183890665559163710112887048907211648937151934340259404985112551159636068800983712586084400775498303422631364290406840797460379843699759976919994028446828698454616360235505339061365322233829529935285280354614520852845873245329513248793895359189495135429786818596608717147437227532131471710190754666207820772474599534647894667673639224825091492491854367441393421412774587684171831906166975193865255111058825166895260883279339259409027573214951912867447154192461409167303536976514448219940787595257218124426174106372295297171343349614923052355509338581544559572969973309094222928463576457555385831200526074924761800184185561286656659642992845679994174318545979602310647815698884072173336631866108158222333071321613977851693060502242821790836344849301560827632725865100451748523845318732106785663352640511698855800061297828811220743088830830696915413331709193582343233394295008821058579633283035652432143715618945187172405319983559667640794645089808455447277135775223144430561835075593644460967381377972561400507542631404053953601230457289088393778645500035519661797590332803954215595303284370038456072202759455456175735276930430001281540487047522920950216995841340606688344541569741201380203511776401171130740994685849916535196599964019189989073475068378750069413663790710135102482390096739264363427956227601133192157124306843849427286252607533057597275719192416502105409740229043966587568451076585111752174192043009377419978585738149494467676163323466518562885822636977432301995388825381145258074968009164781667189663267460508533083836908071220991094648956823801990106724981457808970768294831192854832142240216864416510260957931750664147928037645118975472441872319016167031771676318454530830768799126218861032274960206093435986422093254858503100653646743729822869363345186749623223675305501573732280981525378236461890770009990725402956679747453623526909873125060469845087401380569093355028590786465542890619785341243032928316142740212465730517159105384214253510898774810894505287629129856928257275379711209661886896023891150700879987315700792168490378531729441218612523729306795726102011364161096028174552405764032902585907603247316497970289235530624316333481446217457410765473776535960745613569863235413867420102074544902771246913179472824130007697710215103534056722836002124360185346581532600723419274311936264343251990101092377489530866237522479179930310091263081302627485124023504450689310353967305823917305989206013336257765671412629037891135408188980859838372656829470251353009900635374534877853329330992199232443013517837496307395410152494063830701918901078354772556696095628898996082481736144658027613791337511097517293591044600266312341117446056625082697957997384565266378261299657561873370894133659120840240648923253499005493438064626100002693529658225049262458972665106997235133520277145643197275789860177073766022020969569910539415634900475470096737862655521459298505631244110134938138341965906880636768933139172226119721401420335350444344927111055624519333436882777452735435882919830264385207862814977133164803246920727012072414630365935841995531419670978437561483651192444779444020903491198046074855854446652293111688828216275572562120374962645849060956524062427288069777238356582513037482710521943560389867226009622194631347827883694067908808905001929197001646189763837723411485278046468318599804267434556505031482031990986937694365599160526822983437451240895009821923732120964806491459982799604856539259503800583051368650332951023965736582398028991970926334999850923759878671069949310861036403322002443977636297012016622017611051359356230629619007403532115828464739708385205729005666795248174848681899863270451378535288796326672904962678370912048530189675153119109070536530733890113888440473458466744839408708666331270516383836892408855821821512195421572156381944700899738306263275264542132258425785736063453899605979894276171274366226192006296154039589497707249139885166158680397944431401578476952633292174528107721121328830146914432600082670178121151962348638115562191696103181003507460586600803791095860824100601910572586117931711170823989387234727359614580333491494360981927748500843859310693754985221495450211550856844246393936552313134671574607059745720337742754711934605223395180815195382911252047241935869446013460083557686945849591491526976095910584436387136264397866116337632051346836641516427341281017464363289046629424398616870707017945868671496237340189941670204690879626087961257337003640871803288342152471082027059112930384084224203420820568213442930752081792727213754683160851564665919340917146236629334762525616484733169544271259959990628001956752176086661279268505845619659885410290214273868562859517261473612567959106465529664424628274856105088788026987239483588129220482742891449309179535974028463911533095805916163438261901860361955865021507082107951362938636309538235174469076017242665137287145204092524228370995171558881401156000925746814528861767856710146988662785179371979034510926533360469193082426547530408531806559782968167109053572678651280374015235601782518607015437902571607762277572447434372268944001795014891384228882377430540070980609452938825604241902542948823739816518488911549570299368425157914234352665669086799775846862017825329799801299107931580008510838322635759149084210133735188640564085318595174322576292030754072151240227686696986237671704491386684063706629476892795450796167606010699666119098541293435243541354805238909356047316512485292127474673708909212427735889442017739869616117016061680576782235057908960141992534026202729943036516530099642081637940872301182589925455254483441923492708841831557058062589826240544672101844041418608480319641491195441530452615385813262605285366084301336709110908955149233504872425460749685025978922368216322536312826495634205336665929772567448985841751187581491802277787334741491607242162969989670244195826084140896058906374142755831532369175628852032855729413033570720989060985302504595068831059707726883029134332945822673091567848513256610482180987382061327061366729509486980601883558945989487569278155551136871879755669015265788185530918425739494042654383247939006198206962710428039468774940241593723223011955592953587678203317894319722624632500937827874298531026565898072942514844578004000769493275921500136851401162334456388239621685950958221050022913608025082451245175261342072957168625791255987160736718360665452424359466728690706607328247670331692712109293953677534668761421058563723228677258010011104994379000449928897944804846004760502151155189349898532096142281271859665504985395376271110943967696467350160845124130243999192170753178162338732959798099580421159769002369722076107956178972141450294781984251564032338977256684999805430380757741189970965975758259727321980689204047869038728267442088215631090020708834729970365043967500670270089941534311371428722297851376882164230924271907949951586407500159115126308504332925509408417013885918123782967002516693532858960157269473408068019354076984731549459853297961165516684148106815038534261191161094131522068097432594350840359122742597809122335349825097045518618705935587382263955273576356457385743547345945313514072512608718443917001816659923728228523718885615097556202118761589270969442823076963159646298500523131099678864024793552887797115946591245162801907140089005723891389294561610177974770893537710225716990962725767418019408626486500097743787014894181169110603425666918441694505943870033507908534176573352813943468597800487797813353974040717689685921048059748776067247132326970807584982691868137157723859098614615157634090581668859247461781281573726548432901235129930335392696965226727250580876947950049638311139931232280192650595055837070754558710440043752366981605895085959250926740311050498997772058982574759097245678198294029192990746336789269104133830036343721596373398828101000751460332233894971719045019839060859764764113089432058020703481394413744742443778558575961074910169640153995043274307134859432850464301524156026157492773389507702626273769072432386967549535078713361595038786458287515602980729320528804273812754338309736975059278776783980110697764659018168867981517430067934245511456772205773838676516239900778205022839565727661831827449592344177677682565041643569785343479841747203486305091371679824021281007396597105319842390942781384737368909434879042782445643467230877424319286429341903523678953028996367799350403263079508644392712176759619852185469121372140644772339721063070358283726926075656630273836868874920970288900879951140318305647485969275016324527336026744324801915119754419831256158880895682588159833417130549587661497745918680174172029203375379449073413563841804792009287165577374749335013337112264429602691526830636847319483053479214009651160177016315409108385833070267387995688262861602912971561213778909003732218792931925306091295670572285181988192330680563054785210302395785167025699129275811179412688453101269318856522663933847789111095043477371095040394365252848450567271870889596725668904279772528089469751702657339465806804743912301530929630517658837141534159492651067120881227366396569322416295778185100188864245940629942547088724859875990940764350976135381291632952781871075999959033413642291997046658137156327508723319482712328425582897688639714088866920364868977630688010560863565841807343294171022500664814512761474516643163888913057722970491894577316448405491022132010919952214054615920605030742538051123687561741055286477962479814309958251126121635986890374597650774201319094622568728203723014682231201178919170828995085942469596618155152346007825489424233630601548498345504454275403998581837278921385974190516240804603398203771416428026801836408912953496666865997495304357975433834732364622666475231058998828620175631685342618559208624194750596083312849246316578033982148012138032596123375220092950834385092766108786911966872878145453601810372531151897107016183091005833010907439003501349470239010165501153971741438293463150363118336990445073767728146281284671263262143204541658040010970152720566357075811525392610491485573013129912445352759135020620311389427805996785518980693304540981647990611498893120078162617763143149955807469763844504127005859560616539333386300943711263256439915331051180146068801452529470174158627268328452452663334522514706969259663383376215473991739548215830074628599396605803470476502568104858243647187903545544435239672295440623738421012797090447108530586812762592498882864153169497178186631444448885689115927394923121217371101978628533639248214137856634183227251783387207253861662222662035065330799893720988293583898552820762951527099338532168679697241456052532946686415890479609640989766735353589669030259209591542391289681790568967873145241470200382035798316273592668156226528333092654389762860968199361942391086895608147434411969634709567777161670625907175978620937793351633585695846654982953171860842937278689610199390205284828908474682399712457911279981115181797700992397794610574889805467620809402008350278358897809318222586671153110097314436538952702032517735451471163543105583087720853883044534845142286015776665414218483842812093297830211707118339433344314674660814562913152556141868575229665736356090639179241620837418549280534865200066555028833815485956199643985189694768690729512608780986586311910572224931811589640778289568948598793919413244123658218016537404085031159357655467750743059693618323259801633184819139902980198017162503536857910578916816517483409849581558317878276442785926147841777653800254596236310889289541942865669785769863235350827293733109088587157661274521091595411587984492638587565326324786006669796352238937479846926899163338973815622429979040690130778983808313473092597219363602531770464333870892951648411533425558656001767213926533035815244955235615984291608435057412134590354514903311060925398254030067842700646480802646035948198632699308727890378122289218697348209128880593429201411055904005947140810811658023724794492290479923315450740213255150039696612524101483347784767686437321516338266602013732005851287042362871806765348843316403821738873866470980766161237615161706413984017930281045809212253684579923986535202551152680604705465181683587225582593077718595352809607796002612616669226864552050192411687303063044879905099546484387410307452867795250505829918484619252072260425986764984592066472419055326379307115869873633437543544638633943584563686665441284311824479146154161473644281401864873434094035092959432402583828447460922251225123015648560753560834319582394640961080526543791271533287018808016996768713053888562172957302310904043314889417216497638272436309371930694404004190781628479416510118193052138002779378995165489031716778076360553291306722065031784449647067954279920453960556927263459056478084916081870859183418924355725303465548408083428474651475303078548938049663846988281839412433429927042204605162293168639256540959110890622177417669271125503175809469379181431133786544511782841554218994909610990164811749006922250037123868033703196792746697614847258148634726059823823599230152271921516805902455728141430973361001233028854553509522068321879521972222936004427972793153389121120493252535050120825688171663326893285507153094735550640340624520689680506345467414119594713773198629762798057303467148940985111750291955122724940459142149385448783083443646932536008682319160593336694640944468162999511564734048151102707612188245646223363401947433010631887687256541685995654334412773904618404611695133032377750082015648797168020346191438994589748365869435790474225310264777695812118349834579356159946796716537159083116066757880413859853615857502281274366618013310012607340623086056221883483445289517507842495620968518777010575915584590494034653130766404029233701278225882194062333359386675418514318584943118611834380050713520531575947443856687371234014273292089565037308526038897220669698678795542956115903911574757624921287705757104139598619361104783497638911654041776622467157591418530328510304961839606259999054488725456936434704091493908882416689202754539957259070226973817260521519671443537156160404176524766930485048009881212635725206699513945855553834081663681100037757162402502725660938621236670382675670227288226979962407029244890057245570442652684559351234287311445974485194646597135452449490240881240634170065228250217878362164702249432528442192664532681995229552066127044897502652145797604086905913070808830717927069480295627495995914436833309641973330364887268456703612391069710336063935681331079417626606975693844729665417282903890704037722439265079249424281973860358867821808830965962666939734339487041118331208687419572884670544489423105041060911445415583818611822131220023394616902047031985459249714279915150385801081827457261097760418064965958053775807947562620388347113158445043626646897432595190895798637910936189119866135724615966768373939500132832105855763982099538379159635041914029321256324665632601000300060730730598470754203148054118844833283484667521416989889898128604652150230091629174284675656824899105410483998817640401160064357994184895867014604925237492605443440892127447631199644686151169515242225104392370029195834903839306107658466389126931509292189672811393233419774381857059939361543933400129075967190434040430895308057298504223254382758981146417304675159698170442503517660319448843807557850138784053652787378868299373951282483518755163603095157886614360264914740189433229631120952055314058221136013371779021750949144114946189463016259990954782269760464687402398232728913146317844849353182966386916687011658679107427221787788612595526017138839990685334147889138901845708114256196895809505016403530603477939815534496880861012491912959333784339850500199068211456686403434609089191038118770147198710891885181064884574823651633293599655915345747854617449258745563870089784112476257885292674434122636231205695119222876534532588586244401530839207852031164202407182801699773892975964026543237111716600431118165614536409355115392044202894738948433262716636800251622382455029329286928229237304973552100324890463589569167589000317389140615743840598702006338608397539415762948133959501434874301228040791719169663774558696005586213395408923495760429633631925040230437307476681552958410926116222167511846463540200798392012187757075348568878488968812025590389433262473389926544413015844126770466719398284082158130141017857309790646247436421079187331156613732339603205519909677458013403520416649563981820599772675598924598601840438505363387612491952921532332116838655837256727747646215026248239539487886419412960340159073835268475025047844844450592999302552269054123166035490058224523304151917863368289535453369199134867003873154073816698358401922749263139055637036337221550185768311238807855034314578665095179435745503367445662556395630955231453726546892019618387911199493419045208374423752512337304576055641279550396378145797262452660213001625294276421567294994757559565304302445805590942444902874527310839169992363706240288638178157476021025928347481868516268935329477167393591270847004551806583566309838873248477145126574805313818202791477702329458138341088600583304990052640342869870261932301685007915011310087501589199463690856201455779453391703235010772945087318101896387211240510034054963145385070829903968154706180854360478834279724336593028837183412252021395120595615950606836661769075777201824693137621734237199795930505676743924068255812414728448659466691632034277448937761211313057029357163875327892449269390370941435741810392869533295185575066296264117621023225900822870693308241310520249832209859733300686265146780069758070614709898512976271268922190031279853951909861726051786699333263975994137346372632137432867183072125951331939337805501758796748007389324644448476855942984544858964543445720690236548375497027909860568475579785120343299884587722473136952198205531756033695603433709930376846995358842666640265676299050730953847343939653878435585578427046273567042814108149496533944117867516541186736931705757487761100290264407746394113981513500861825068753997314698139137276104676869838573432410075302759137037651486488715499428909480411561534893135515320312952574582147327781678757315130295629199689529417062448318403810420354577058758852089378365474085228031080333090940859964802648989497764819833186984993164758664805681441734440357211453563612101367800356911965706994866232555013371548083748872665950842082092913666990439926916005245210701079982119430773469440494546615946734450227619250568746310999011844886108526356010712668638092936536910035757852887572363550956715674669014056511452473456447275374138955513257034830072653604160641842597541246926902838740477863010363016133301791624814173998519943853952847224625202447415997191265354388300198287814388539058770702002017589730262427662570958590007969972811706407980371891198076305226870439787724597405974855289807828897048321437043951664923310998128340303435331172039781169747692325433481868013151792158232815741420591592830223531251727724859511216230422060056768973929034301141306666930167371641320728114121356600213949929586399589641161198344744109934853002974339423752160090523927018701212439417296472909887822261183358100866837818989790582772349363842763091299961285667393116685234661271832342029507501717562595485948656237019510352765247982456438644317540964558521822701668353595924270679860618620495324274020744673094109003195014832769036273777673178497418286036657848446707083377232402953744770223808514481989223119892710154568677356990881396090318933159026877689959905563590013243648848893472388134967942485614326632901964604949103700368205505026636695319754702120268316895410342328059462370209290969873909848681315521608385469676593104914965601881938696262233192987141614010916353674209561373827799204673793482840219565182447520522064248806976608111554667426646152638363310119543012560169252458121666359738879891721317967199223295839270239515098234551148113469753550212646007517220547237048513775888518637736169836998792124885853902971897028881712968485654034528321349836882640539935187701496237298940427910753598655206794881435448584390610269995652090093811528159899861856174095481226153757468365611573260848965093314135533954091467685394186883199862026979625764432305728264190983277642126213861679752611364008295488244390921285414438690514722183996398896696571324362834520037498077515952149092904197261677670823257522782315418987326505838681172499399340353564631105828089604636867267168395866535556010037452010512981808688031047043550916322178919501690068636849749918077455398420129049385860130544960824840441989557224480051769056864192734155167875009096175981914747848668700234356374914743677497405853428674119342596049276408804374959577455717537652777617771241406484567390854079522449799875807290083509161332451348883876291322043688953260372017844174100879258000980983918837249023668372735814999563442759108018255805428006065422965388988623147183143636118267508375051450373162955939699172155299048817175663399215405643967180977932157845805534681769702532771703480948595840615705466465319528219640645777206063197631755128664453451539212289795677717804687075592318636513869611559598036842598337109041174978030509761349098029016413290855548727626807358771553958373851172948234497625877657642709143416745571804846753704402100079490906044688219479522927669641123628868047457903687176647065420767389468693146334851491201703899893572497275296422728332667344288140394391826397943401439162195477075055178082093078895052585342728625069498671230762343805771013242703457369736736651109569558833910735183319149211644299212596970657241189084470147670984627065467870703327787456044611774042256996216108955996370805771652927818129444486431902330405752791006992169500829492729427055115644890924906944861218996980940235523734314619911872625861666235244390270698812118688266494297541245344629669169885527396616687410914489387078728930569531134646106060619408791451323978675857261590773050607372454116691421701944858066951833915482206603477726971974850756815145423465592887078425081717877369681559244421044500101617099133162235067291841728727319374222152227059807463698145275063728963859465444253986861315652763055660967330329526624173800968517486767379058508778552648543405976302718311688523077794899985171408284432513642228964590148127352180632347556992118304128582963267165950652197999626437666410873718331849770306433101351805217323157159999956276096821717832143243474952929621107604496104249741647913955600385831934302727329384228233818566012093242766758379966607795550232597508740055547656916431013515502099172753016273087311317332422183399835778627850775635970257778671916139736405353898492799278734456002832286139485768127959520921975889537066791917220056643249083681583154167519910184276909840915576277346455273770014097653576247633229575841746527568318266417369336265512688488679644331008500444183732840133952228245478993064430134882457649229697571104295890751633204081786300950244975738646002564410516718626611459897229623222275066005542041749109648680291018276444236194322082008596885142614370920145244985694963883516804497247515901325601893583591938760149761578073592464504460713775408334751914468070789573196238457706166902397608189304468986597698675423244439574635886105696436595998638857861393577405334177954641170294171942019035963231343508278078980966487403029052687864732963124367142778125665978221637348989666446037461299064442717253823842236783272700314717825199970901262571627853827867680277080999533765223763237816577654613251952371551465986533925796757422613009474136896125437342302332275557695623174187786591605564725921880334635967320473109694092686917028704817596326684268268940081129964424789934827943590444729684679168726921139632108681704535538928485703250283822874012405068730448384415886914208466019153359363064653058938470139491827504409503697205021772966828373552858842715930080271123378820417761036448288103635534955393488706715088023537788521826942949261978195325842629973405633080327832973603621354104710507944228966157492301922509990118807713602980168379810473422309840127116765636194307150564059882005496483286388330643109581369829802586111789221977438004621156360576521045200882539648157502557202729589417169212160115020752237951674598649384847750744426352825916612000585481986352504660780599307787034764178660655863021660284406560865879335727085644603678699075812581897348044996900917367561334816327303310392894906702167503241722463932287858256442130001824166595279572727134682213180499622422747009699651384389228844973453522390266063160550966130668930442338545124327420841928001573814788123354833365372751347246742856889450860174138515375542838003446780835124955395726562797101227432458663763595299442907898136711430814291188138764901718600364627501243187437356544958157646014242347218459344182552083230299866904121530617264800333789766310204135715840479095389685556470616083758294983484457507294912238571756059718737882494080418611347262038452822841830129956683744113389308046093145874548988515633173249758102560728038089270863619442183532867382920216779507747462163897947994121629654591885644354265510253404607218892838916885754068068737266696583703162026914576989639733681667531320031909587661974628223485511346835986639982715169718710421499854070568934989372565824392456069908824277077691114531175179002319316428503653866004215308344206715345623729318761173337516105899160901538834973418340273193839328288154393849726826001868401536638604276825748690693887575059665533807024645025246963162240198615507581248082350339022788534830640266067183491873480757194178580397331840532767875669166064556580129043257508964550978644307232450402056554615787704664385220484739937378724226828980854511206036796024734154563054863723751472988118971037612323304490390815200972215330669706856601393634346507099888768195951203570653725652182538496388070899693512351697603567295948996582546050402978396112870352996917065818174781115580954690816648858973462396399303056413201527899882628722222614430117138869591603640090772683540921734597954237587908463468436204570423271779064438106044883405077876644781900331800896977784639896557297515512792591556805028607207579706382035016928867597012229768844812904119769575249316013656137891062283483102751641276723554496174600649351768940065256097690809755071652073224181540657059246779660817082157593428491589938010662653231908117096481076947370491097595817504409668253483960102846395890600422372583472623708919657839384704527922547529882954667499652971473367198515430630138425762162588616627190102602210984144785726618848047434532346288711382244469674296069078639434686490678722943203406577925629013966344916783463837742172527564767322702570170279826971614106187794072547271626659792449066438775507746006394555788023915927197809398278513621789981634598158501378566584337460567445893127168515119305061905779891958999771701716174705063094240467006324928507841772790170700632558464414907642070078874535373804682253185036725316708737192100304793446681816255780756433706398787004118272381735410708902889529419917389310778563419987026591427108526095142642007122420803583202377639419585627457492871656973137678710096355496801969868686307922419372438396374035323005467833910110512451848767243091154615951852194605390422864551275168866948118058564553025625206961504057297939308058814444827528186454792929082932019630936567454898921128018672925139646619465470998629197662498538071967364301412385670022953425012320261109170557965494797200847088257526964307012006039945394439853113384531573921520353997442507432672435148262457016703834468199583671151758825970369189649211994584114248232810374819867137279351800038388578197424945126923364803151280720098121621288143429528413352269270525617085791552622668791695134078015316718533474031008259311493820916766109878063842045521472573412334109598390528058499808902627853897101144786145197576311343441432103058217101525783782764127664434832125964447551503236558723644543362658813058577465632363075729456673028874466433890612537947532341602853336309896550809802884921345552592756842530565081433210106771290743150086508783281867275599356249435242061999094405640135947235442646658465733449374693894132449898050450545683162728391874688412168644609308399582212138232062984544800318607949079467607719716815073121639997456753376188802294249227586225111693787764778016536592591480908731129140669153761914706630593188123834166811429778371499533150087111802955971785244496960139177489646737190793938385304771676581132343289769651043177847702903514661673340770369660845774334029164349762387754224332093535249956446824337708966989726176271576129321562240891802195621657102002809060311545583330860643688584746000536006992345603976176057573246500127687363960491564716838983297845632840228451473550029817118736897936347769578368993217427473052271312361493375259319729717879720028229418999410666096444811496768657481965341367026690743633174071400135855462660894892116214255730185282122462827220690917243038922416205412244845989393415818875198654165294121088610679440904660751813589372060451192843022206143840257848347532402168502794767984628791502138415797760182480484236665410712563363538204270105882917118486325530221659014606030143603020344663224619009242298464809035372687226991194727676177729144400727235522410460890497108844526699122659657376684818862865640958396658814762423327223425756920033433689330789670298934299664074915709537140025708772598278293035877064317475861767108583412572202677785215903899031741602337978406254332826767432444834975932094736771737726497034263191600848522803043872409914189476229980213001017507849045787953222891733438524353188275315937939217168934479269373050424799338942583464707243420064579516159936023391231134106744444315711760388224518372205537088864990679172958389116791482101439483303771805084638812437704709886287154631044727186364513798138992072747658616406466950260177683064900145608675633059176381984566056802817637450169145019113372456391972707909827626800992441722998879647522099961723788565824837776480276420281392074012481509927078705262406382313541772616458419158870589521830700598880649555965584400110540400379704076070114170736625322630348669093271005951556834638051885023763007510207925608662680256022207177679380477812549183297526232484150493723562167627823465520166466199224809738102043167596723980460400726729879577116362920106064434828578043372587471290529152577208291160292916622602405842249297254399359156318846799324544196128681102772872476880495693108911151596939044404104868760787681235443807261157432269843111958093953041072703803718249756161248239155502187168147486414878753321561485919566853380466087463849113109693022309235819484464245723882732921801564844820493930702555955752177227681160988710784561966085853610832260641432084708798961010406608262076642954796941601851571447414136946774486491448439781036186039256058202510311708343676223933657911964731512063757856678385336328878497948448226594835507222711926852792093268572157695229224609616978869956515010414183457973268101397358404112448787855892968626934767426541237606655034758104630368508963309538110853583138486181230067257376827754852043948514976560185757882318337102358020019976863388675668625044745677531058432282065255916233753900731884071212004835195458342306902876133401644468901046023378903023054669634063350281258306922693552580318855291013776311279498657692226105582177901681191700674063079751387030229095357902971488192884648049076650116512698215565028184184150934084732144979443912176135612315405593636664933531503110244119680689550977858583906563027493823616801026864116520919339912193557827276791996158215559187910663251330329140055277327233616621900816673351269652582385329017530042395253230684985163892060447245103637998521755596972429446528380786999858592905900478789013626527704814583517498429698266214199936827093209095777864386252021793682304057695333951343180693143328552130167323384525964634453064132756969468981559440370794567385185576858138969592482862893164354119183741836144191708558168473638530645863876543705747088321737328364569304513806143079807246739771078385894761480235070158056697910872106191395074269313915023271368052927992985351047163453426176323856486986555470234402238557432907970527542301321707926110882546548877048602506906685959022788254173063224185655492449124345703300166253185305122569942296559562387224310058643067396943760938714465512184590836799734408717102448275869281036133214484757320810795377435985969928130821165206905265633774106559858446201049681262627118953961471170844411081048416722725554834641639600558552596847633068476902686074596612497522397760955724031478236926891959818678925558599456243888509796109219643470152364922044188960164769845539181737041736613467291908118821289195180639526765887266340682913917667000877598618568566955743902301979551068827734916533296127807023094153423997290644235588361204557896005468080489271690442327815811173091415577447706263417203287533066534227501610453875301938534412218515574899594868748722664389349737287403092686717652268269994435871475964566225989193336483406525987895632093790752534688109924566549968118459634183708132704823689100189289104357112026057314711098154160099829767025978708239668846736179732303784390537746475703441552849822224768740576701515778234220891212658076155411602248190692913738854761660716599373359252315861299215259771253992500713518616052266548965685301099448105229229702108425547715062603613033306085564087431072710334581950639804108481239225022685607743846196923801831623028979098020372596488211028685034945637522591557572142592061495131966657297990688810837770230411088095725322371220362256352199597245901104101935688570597456832296249055969082630920585947988609401805916501634340960217278028552612590963228068224904361947360978130046165856177122411660953437682408684117287866442650042458038784818962383618062596314317634682455317305706344080692072208200401381917504951360619148817885225755534015291017618241224662561480132489459222844091514693594902169493140601474683601541792581636196106065361616082524914601160029192445701153469772574390585957014825741268448547385038358761664193741383015811334711540823121408899213721754590480900692174691725197211082391563150554911596724445674386596222577530370959594677764043396855966588910881037573784170894638538004199410731066528568640589596654002864948386592983150300846195129556368995193193910673620670616228882188754441828714415281388610413153884373362244850861849640564718511111081646964744702718056915083659819447366261654136550838803753472978349502354876735736239827268316422741147094045338020696408835756853717252531927536243116503665680227705000719666445503019598287986849917379031954020077236146191175323517799473986991742062241753585421970959310627340265957300549816934433117113830798610852475377474273242302178640746658468327734222521165166096975771851048849690523027295627920411333777833393774949710625437143931241317548001725392796374363442311384797987073820472827936034980525366967783959625275633161755909715252499469038085949714447847534302450210795519252373243464936398979296254761701559056974245352459320540399688651328107022218315492405324148395736768433797104554918886348339075133396865726498912962928973873212341977627071015333463050569248868156195527469782156748793430290553759046330991055464994272458062849005579665501464249174009901254324479200535961986318617294990215348887380795173778496592370581167056709216751719756441083874108095082370851263914875693549562697693756540722344468578393553907267993818402058680501620987049784765394849702140209233329762500537216295790337289145088505279618087153156070385872636719765735259173029378716782493169019141488597131293722673530706544580405318365265458923146983258123918791024442874651339932909071603022895844202342902956934591430964477911407113723637693167189714495285459896576067708148660904399073928600123410717302503744755636891083036958614243613828407357076864929478153274858307583007559603024989799287827176019321489243037268551661573686292495921521553835036840753156156760569583198739459068948668684761515592186747891152872895803543052082833336953098643565344094416852590521270169539824421601991572571377560806716155449324942891926762916039684417595908723733279595543286374973332135893177588134603264005076617865167940179845531175922421594476854305819603287717030607630891846887085883657568396205408143623285024935465915890631781037222295449523289391844042725306807453375139298325557073644964447739440078899770538665579071250193706233867867297888382177696160826336333263633274573835346488595584893392093059080731433202374562963314901717151324881554551849391192281306103840239389067361449199003176059194334261530853334521212622538054358515240326226063135859866965900680778578474650475805822626090170993697768859052854655358749279632405464785825055823390763853193053341581288423224687500235571484568084180691078232285826107938899988045470117208883542479167096931790106014005859100468605977292302720273051360945189550075663484722237634275418409813739536132149064313014218991514719620165994959105922278919249728262654126079914483404762049729392901430179651465877181747193160607681149528567064556406073899289071118158873870949050030699504825698142347087243628426376019636074189155626292187143326548409513961770562393790810955915114967397518736094737725490503619134202930352467883374809560140295175210570015484522120481230416429712384928726076353133161144360180498749715569972033797512187220014670093936418278292061513549627155396235239553858009009430746962006282859483910281817923665243780826659145725401759694891038090289163266765777474139517114997950746920099088660355995101268522107733967513806190399939862882164466867744220425787100342605428831366938529421046967965393841797462423815958818624809909796568886197828011454389497584566286844713173723291257465926689625288365865321470259940478154372402724705402560773215160070824178450351696398236973598533822316132376480896401552189390331969962189505535484169365582342964675930502276912606082543091299875141240061461228178713807011017769515365280686155554979626491563150169253994764134441851344575330659399594630020510426492125276017729338305408560804911896344949210460477554784769284137119934594327088738355249835501391561124385849039891756328842406202685142968692423827196677760289442703064884323628545503383622927944427632060532836246637167490274837184765133024546442139733027511505844410644105141750357935476372032577521774992727368159271560282451562603183677018235922650764462937220778529463870421274186718838541347156129766950991546019580477274759205549293024766511458398652814516718781042654672347574515504534305217916334421509400471769583694890780047293813404650820608515265907278385710822119538496618302051256079005768887318840072430334867306861917668473401971793758999911972254581614272885452900967821388528044244257148318689935548456894728068872148280765212272129622080086893268640567631307664485010981634626706093712616056756751158942742818912402084646577946585347372802020599145880768150332336850543519975139003844617971103834020930649866456973319075543254698856905182755656367295970013934257709616516857540993681490557398912296872084876898721750424502839112447293424608609594075462692443979312023925188569682268288271036529758467862267335406987691602173534463310778536127847300464528610432485839656990800224035381083949702516188139346847264479696065504953193277105124510713602503438771889384258912506994181854027827441208813615852794679017047824280491743293780445804478130571371277670886771842487020157206343327731581947470425064303941609054096958095538751852496934104527751265374857966362840561887715821536686466558321952935111933308073740964682564273713548449437798005779360656913445151425155570189079496651734591222554294080083778876728685235852111350187775025279115343090673082676454174734381439178755547172294542485346025746993300642886789225455509031356362925550762893590404551946302873475103481479204525599990375731814941546979934749474641683835726405220308269923833010605300801961364284470356038275071203035881380249049929252061777734996674256989929406828725724350523626557292464052643363222384685351015694578713242583311637250437154348921717663494779253666617064109279893765582463842093359788665792084828687309312507103798232540596742214449493546097888955495203584716870503549146466313878931595817549589341516442499312023058946778435369809785724836514674316014288572210146985726447363852689905018539901829540843388908231301004929475769652880774162468182445535074913571550204260096733104830784944658047230153732401934220282101225922962270785999410016230667954550457817985898165223176512713622824822343724907926884637928574119357111031620795416845742340222647117071738157581006749205792364994394387733525023382726591505270375921463577687318715230811591162417765956532427067904812461528421701312492287187627881139076764320508528086322175269009882246892992838663564709390989521317560248908886677004382072797352535192023531075497725767913534040442515415162817209547062791967053585279965764750949181380447396062532441698610982037034666315675553474606662124269652022864090360144310476353514275594610460564556196491055454855762892348103749213736348339718688339998785497233227009729973049287663718232240486619122459732499647149691074263653440841251354333548845284059398482329518632471153693653760894646409918964297849268330233270339130287652253682418108877988854392313176099731934657346106659158386589234828966253979005302569367826872512245715104657624455020649228848473466284261964820699778129725943077038531305497895391979410900553900370332792495230185384439859015796730767708514870576637375211150721355800736945525016475483911654167164295776959754876703667387321169951780625696967015007931688066492694319017412886833494013668032216673843229315276566530605061667524626362333140943328578988240176693040250256434806666599606316051995658679482593000438035931289933241964247347923331474183106798917516178098683164070785476088407838170860346918471930631994515892602914503782683412596075823797175230790308481865033290345474820058560603850216717000818368184859201742268992750401757007231289686611469346780717887100225821994800740469342601524899095449312571380572302560093461746128413994784654894374811621825145807021459743335553049078160202538980255698701148045809738327034834363270170900683055357018932674399962444432235234335224966524600120412671421170158091335575236412575612590890910022819035626732722617535814313944539561147729209843826857128793561347311922439188631943025408434623433301407116572193416861595850042641211612730866143726173563941795484847728462098636008791709735013199269406199108557514196380198257768974186100130728406632067915929776969046390467804162309386631208637315255702076252713845917678242551305030776754304360979502289923266638801215876008003050451163303083798898533310750890940348457664773195939906254441646211405691974836728469223427638494584686176945055037360130121298683570360885622437491879535151811054211265047577652746434698986771033533394168863988816495375702848007956742487242558464827148378267191630087879166965883334364692956339316317186621400420182578502720832750969020300031884135809277144258258592327782530576800055173072188954379986392939611785736348631208793507145469891246264729539104439203491801220375074099649734502919503366158300136079295077547956591680779043079413078087940019673281252364709839382343915324286166801103969306479533665782670324209969494938649758317099012836793228232121682160486383320950788609236271708960104577306951690095370637818851261552192097318740830615956866642003248736035456203555652046968949699929843883675155361086069710546474638963543585545478523730724083442429066415266470049175973078477802058530852680448977271042426800936397347159114474898105582474593956504126938541619870126687366631834923818611058259623561253958316064983764145404839826706040308452957361416054932528744827790668704486210438934653152370293942151181737420858745199109620332162471604182000848909184623569458622103377559071692863004143017067830598330092037167870386981197658418991420485754703413267866233276986541724723607252993210914181589045120843331787210138620288753744749849356821495620141973667979784958495296144944083845154188398595680515846576152203437589855214865077583353441030363716580373239950884949459902221576570088216791241038559505370198019953365771485172962625518997590139153790390889607233056671737046078155752649787225065022776166760036537853554723441669916142408249553465799420618858842733795101845482438510754502703003885030435658644319733168191840321511590131858863388488930928961381917797324447625185252461719066100341525614825934605258800152840550642087770267324907767687993075015273506705498190690019230384463566734645541481277452856245615793448303478318956527146880058796943962431978012690349558843485988444505113138295824958322670095447187727269510799295498693002267419229465833389095990771696045730006417635587311391882863405697388225310219583935061334591329385421714347454431971731891988589866095914109475304637549770488433754495819994774161303717544271092689075205549266884313384570203055493129738672153770843275559059605354155456712241939870196141453109954003080469850001254976986466157017186003939567720705232418778070932491769673317264385826197855451711165874891501812749919897808428046972496421923984460038355358544476588635460155550511465675981609848603210953920734963975537039363986719704656125740267360998558989390677621665312043571896197557452744170471121660165764099746205805019030823850345667122797175940732009492501669619785491808670591041988899892353911560272007853723172040943571495894185726873712733545052439381391473170464505631045760612472935000119126057357345108895001538216055108886814327497849423348528063987169483733058073494101210872093609984563602294822236618786419763496951124117042966576625256571180811241584382747432370711272263040081192239507170459757759104014524587411804983145134389623015374452087953896322107816329300970774417401921027399353607745255396389513559310607764231086988178622680238783453996195243860081765394165493852191342492791927784550661176203080886012880962925825663586764523386554929836847547626842274837917365559879724603581582849095164584545250358787812171676735106250179298816464420025817535360868204571326153183128907849118051995277863996367791218429244576259195026191143764976827021926785469120225115287454299502058307725229846852396289886390176471397730644890580821274459340683927792244561519932486105041480660052762149660156947829477461091910929163568336671532166224277265511096521824134084070976411135149991515634517602456122870725949858113592029289916012786402362133030849158564695375036531599556697920900581947207470394802999651593337963696484083908799667612823584454695273122395426225642492020561383788897383726027318497650667750607385388029116169992226792328489805353693531093760250321207897003858389410993891959262914413677188142327388177914804877163289087469588049626222501658220523862083037244941638146485796166643013511823184045632467823875344176020837357319515155912425198597087607905746662849069662759400105113677341231004979040488615732349349660120938063704648362277578236936938120263913963406115080237906411436259337176292080034493173689947258761012953587107725639759976703189082275220847613888094994012689366376623911175056840204131735956964539390395246065204363208947983869871222818079677934856377229842236421678829132554490941816576277821818498882714412850368384442656863378281888824926278791884948469408210624770822708878078713942928393551836827375762544943976947111905452593965384039559609669232530211784606052822559437465708032992427193635737454144012875987180908782096420847308422969704965800576267134078815450704166318887126644953428840309502666071841813702455162872860890178649330541912628429407564639489922333990593835653396450334153382133010246236001994099866981948629251679609156841715966640913508585124311906340057952608726996806533013602371186062803943543222878762009238083915439069377894450404123767597659510125881867477960595566777748755519613020263870399670035871706435709281872789800604569671084148858925927865150817322538758434799895520885329957302023466069648523626459171961833457160639713434794506677415115461410502174917446335906558923258289021901186348250333101368910303728063689009158888270573685941795730018878812622148504554994197748227997529440491449749910153307292285154492747854383647543673730452451717824676353493634954665506166194141825286480529357208372199709714872195100156369457771531215259715461504017983676624852123974194148621841938336261437172070915012248883217454916191067695839953641749617808411532328432545075598713761577189322964177767138481123030788915183113683188683382029903889060945647684997332352668027506002318696402713023951417728805952396018441700480519941179009137456121365985527860780481800717838248836099310487881785685966482817433774050542140754696640508612408007229470331166226570468332305239869446672263153753798004483017525796875230984889994827015002190715869408898531520566311529001916534009339462967899709651194575791715971341803643271646079417562266531861992167273062774077528698920891157664048485883626470344591163941769768157952915003250934443596379908589103365027678646047445289665233045614469488869576925698548684971160437972764794689318743419016930209783862826105652081319733041571690284995395183827695003585244705494285975823131239405790483152739467437178910086940741566177864249078575218636294065770578412455719651110451560181236466862959773341308995766785606889279707548681833444654565437778487885336743161500370391573273500174176572061014912374905819105005306565555532210374977865474806305111648909028179504276267177733059591471381503131848222703750948924114263061852104359324357596736764114386904558089169441248209934506811612030139980426584394823659723856394429340021150242773534455752506832604506152886134802569087744531741873445148778613390995992423570275801484151666174825263868862755941473116384202181246173987190489345987501116374558818710765108634036585545416575019665911135310539723606462631534967126109244272626817950635981894223902912411659032275463655438603005314962747429722570494556137292411299705648445412975865097991631240718466197879721126465868238942712761375208678551313851267405400584448379496877917741949024022535609578840276425541320576727212160948579570002996668527363705744550129464389097689315481625479823530483757912396815010943994395799563515272588313905750187824354167324436344163306908251285755509212642104614172118198874596454687971429757656289991377871438490997007005332222736212287780047327730371716920703136910390019050113990909690051053583385262947054536327079337679245603121362276545069157875544336365580190163162772647186010560214830700252096787237738479068813158277987170204716454809800731404170859981652656546123698296468473217245015609071905218999383441974515668380724331255833095967785323622666836807957339634152751096483488833503499323327954129311531136792472256112991978606650606530197498540097548146948670226018034210219910129139827294504257857593263241689642874201391954467358077510147199820286023059502765461563360004942494318223423906105666667708757856606569318772708373282432496656509447624214461080378004006857728874348782917321577070593905275043919309432848510748059436171169494043337059479083991566961852411366189412673363326557142536776651697668408558160139046312382459468900822712737452006653599298231932296817974831062717257048646534964204436177984037154072624964713072011030179207380702871734332734021240338368526400343553842431041865666563205838454703834518595102583075369535041961181286962945167151297181248533780195950298590894613429710009782851506861863939489591815655178040141135271362398754814056121614567094779565340801263623345376254917337855458699758001571432792705496028108509569451719500548738053784345369969312708972755834498555343212995674656171781156118509491805893333099249695695322320967093014525131420111058958649794287986215858949741226781684143288296097190871078274557499532176333020099407099584695977756469171766346658735386694717444815201825005666117673401865677476190862231059991065287509105149260124186021173215409810074274448514769473510049830700845942899815401789161222561652040006089271327706194173680129065943372760676123484585163738196100870803516746387179403200859336912155459315434262249795497263524274618390983865136061504858117296740333142695083488618731149100256376182051986208555117427805432850227222496580771081841517966372407104526523720962418548453503914592712460017738179067529257620802061518414000162991495760841291248908950205878738103330730497177889295749875567248183439954847730090168751480592345861372742627341083614175109794784544313556783509160268509018604954799522044024852298494699593693460198705126414756549383646481920629760762348020217527308138494786004422258576824713365625916985228174829482709352387311737747303020653526700487432599567489392976098613663366713700219476377630900533135671303898816923031830459730216149437650980874422406031059068045213385964654839235470047302425050738169603261013411813078711964902713196711170085648959336979066956623229381775285182306462383017724042995601415909592152031760619145395543148624710668531430188806567547577851341781320034522158603812851963443607763538962479257775637145646984461648420828174073818588942866497974397783671161756077885006973290534064265979481533641152684657643953846714035639720108437371162381295261447941361119409627138247832865365391730179040146967915797764953684123966171526903812195283790451106900635373165309473769893693836527318065041943812029551331393561304969277548860838960302965282453428694243567675291417397143552538500414542085491468601688453260932364333183297595409061375860564478004012245881026798236211116951383804490174784789732146522866348160044780810160463817881245886539242751117001157732683880534175214965967920972898774944152209753730019349947160794932999020926911950620427598729246803612411961116664812806145013366375778738472820585663035605182314268221303246807840543557662797319190859935943483702240533518618422471887512475406450339825704378202782893464614019127851063475999007956839524530402098172509026131678596487478149196424933033108012617270550466409699468520589963067414805948794118855086523003788671831853965638996961020899962679523907614375619202259784865464293581776905478945453176314612039931502358767800301672359402279297813792708651222839719073514104952720649441933588033251389966040212545220982300241874872157673474755948988833551193409063200628629213590159739379312038037214762729160535562728959106457054600187590764099090101456879411274768349381376921564952126601407532341214272334544021079583295585936529802343445408926979370694713438081449142950683564145332144725776944937993543617554629061838741678795021718582256963421456194143314958568142957983669773033659332654526255695242884075961699864923913393974649038513761210039945714664631574045940109340730723208538441442783359777157374511965607901487457987653823301213171384049228488519406235764243130387568105371944278977449248600805121767717271053528044208886585452633832193971538520608998964420038386939937061487193214559874109977287049657490358912248619822880004497448864962764539234272969139261242623487329268591492807091527696283275200767587530420142447802483789964474772495688443424145261522467624858836329702200455440056097267804836342514718847553641991118724213181290500253716312890116907705964111463413371619958409511829555785300417688789207496286917896936264824251314257487290963096007556709296871940699478313785099831774437031520977790296110948501857804974572516260385733472182733068551378251087130082740978901671507856322677283982588617088479240511621680635710082499716568997050911213539335742657396661667541464775945007531994169067900800845325392247669736092629389146335249941018346674167596972556739020196892043255369252357174416178686584737096113410734636017648019507719049169387307364051263703238583860678368373739074848568642965939338081718764386691667404587540206237271810048201356068107952766494398934641353619339150481227426841383645826247220523004208570439865045770825354151611424761039661522771109054213903949389135570513845749885680755538068133903208817494472101999875096919964861542493261614330204636133847076208943995774773601722943482455368816279454346765698567710059405326310431196665109969713904420792427619524739025338504647905860608873284211854756419898446687877153416119256940332812186507348309957000450656673931939183038696805016500558008021887093634015507571665725588152900450042920439102425751060630900351941256160101944413686828524008043571642854976578954942443988180267706391794363073329330112492517507158686788945730293567247733421302051739662967933777211776456026574566164324775337118715413153136533377270780281950741929062430565163809601715477299410919534867671944831512977928340605266319121087417694333130626773833986976975709792879765443543691495870354082781586871414063232399706862424314458988873368224666564251353492591735245387667500852895813553595546852676676380176265097397915279585744087556744466603943779079826824250490782014623788350634392403583247506863252027638561593939784271145312809941885058730654527639416248756663744167007332301672050553092825375376737097543389170937224428408841581370020763130296567309635430800375256861355850151793232980264683334699542944720953464805274164744411750587846227114117328002164263363583472865570445495459106077213501634769554909522113048447840001572779235337496693829042454678668190713721869535115652349982910372899716920710388172245432659613887219072781681336239681716567883023707014371259983216337160380380054507676370835446957428418748677194909842650041254014133661651437893156886709176830609099779546744358452597074966485691958589853490760967338274268573224443075620278498366398224132849960689914993964391293253022634758266796337953838396547087630154034197589902291247386313407699687991174876238448495170574362754089518345969190755651302691340830551665302335874841320842519017197815725735522862877033659606678380839941732699411760816856472067344916580497324518162129356129843583814412302871111243203013517269253847298794136606338482305229672098859114259481002363839221588235121131834543230184231793853011874834153994284620682179270133473284559629623318182583729103736403495853269584153317382968673801797086613216259167227122576709240784278319524781440974551793051183000618937699779459709793730244359040076458360611955136128082890199903107432059319467913701647205634973892893342906126496282244300583203436977879191923763323119280680577555627792859467876651528030666152953130983935754200131023863104208434075824375542613491874003859035592140378951956757299367653204533867439090155652691017810124723918807341963871798924471278752630013558245447758144537778145320036611116277664595752249094999957201352512170036830598611407190927542637706740641306628642971689495877231491783723402152699228557138613528363184381670771025406038130748922441850265085741232846232895930025464804664623052604666681284428163000159148123739846633473903019734976292168293916568516884462690441194516853384457958472503148791733762876041371994972710679596615017077449461740444156499999390486277923764351763208274557799726128919897590114834030271512212771599528047494591809825656470003363230311519758550093737104044241060983182036631661303961692376468228867117299717888204703818146459910902558250314339242169514170083111225042081285354155936686786604334913860237938778592308556695986144180338025463363543761081478202848350945674432143231854741332541136114712897101846734373749434539762439105499311228293085445809812458195289941874486994690857940340362718879100232188451786676835299834021286707291042207790628785831949917998717506231963505303712635795182362053066926872596717341992532610004847907763271846360516379315346693591483053121263689470650876918514495607081291109701616033041979285122844018692187869815475517743204052359990196822466811429182914979579161183612789706215666103036600281547709010288043899130580362057383568759890828092565512761634289856897132825065595927330049044065232325385512980763713203634681994581698079718606447502162292932370819683379802895178392805604939213812619181697817260124279732956359146485673744773863592425878481018986052693257919372985948805019029943679799143258879022899456657461920669206652322780813324049230460416352167794531510006617063567695492564122795651219291353785927285209363726244841272455779274725240484525470886180606627938888023875887288003642098458979180783982986429048190396867243647446804905056584038762887521278316251091544340577295631616690494439363864777280195073305767397413544151710495831269403697962132823980591988115892630821233364182096457947445555202882364283027648391531234485812902156280459828201332393891383213015769559822791633575333780657687092958142320159535529302908159680747226472337839385064677319272776979593440816543936274482576813471899280153381936732484086956095463812578440916364576862606906096423536027511459015653633017380767352275091300592238837487105926839831672134909283013913193064458618225687308362091243872709829887901558408683443732788475177873691141765835798872987764964761499111034733026278217226176817014645960118351019733393516224629456667272740406003544708172794458984594119429668744758680185896912171160043830922986140813576431169479336563754059592311764504104109969099493861624922144828111663120778553465038812313322702089132050029922644009291842732634392704844895380337387573865833623551711229626016158542372883518427892007429396370952739138283237414069050523682324525636279466016585307173288994709466571045352602211360891844917009399940159731987868357276002724964344554605812659724859697313525110076690892464535807937383608284058848580482648525045176386652927759938199047000301623760942460186088154310654780056720919392207210791737956982356795252561531235570941922490716340991803362172061559559228707841348294653737318452815033067044229133854468452828237578329384494524411226057643639004144270943421993840233177646868723346951617505154401773110734437164218695785018436590327941743355148877577549093720804020634257795128485564295033885604857071308461858047748756925055468928094293955696581173462687573611611424922273773328315772077821635592567679578063144267470011938146688428361004867708462576291155877776554371746560506965823260043093287594568130012074466418408245318686725322091820667825283044226242321639673532229234992274426048383636416592633772393900929244257845075854701809799777605188577839828086449708372077373192847770164370487630561427574605013796613299950180419977260798364908766966779950049896950319956653427848747901196121699229170808348305617844923797458595354220340795567736893206234466368886918140399730219692995542439764534603866659213123854998040371857205142770934300560181947729943235917399021429282210188616980214643062311665018443654006101136442277838319196964773813465015542481674326629915495461834214015865198349235005180132897146484209972015333729600687823944131929627227164574985361288730821927140824261928692486390635578270635745534643856108589909222044543261895954785312934668338507908799943850419535488143045032560857106372749315063345497860052469034571280066985714921821505645044165008981441577796281483940159884158340589890863180200086461896244486701459652397989880184761164155508830152845148294469396133858517021417415301289543958962393408036271326861174140909334306152049554188751218509405845630379715009515265716701722021470997652340541439500643984975706809568563120290015653181489148277415366247711190201038308231195850719398659989253071918677720251198678155451201705048089663521644253762299023025500871208910332589914255606397873510624610944554770519464362421992126791867441407471686753525587020505688909891247705870564859938725533416688019716504837135141521968309497531529979064107478629383816738172755864946241424940355439976287899489320821758135162120598292941197041984012360712047235571972951838483865377917502683877087657919134974598698709631405561518755274945698377154771742245720674949525988480677903874897642045465389721811504468458597792098681945743375653811284993866189972175564104241591197652740596239862947413169840966581448400463586367414417651070730153096344928051484757701355963504134324709299603629238224503452773209115011149816327873700509159303723347462406542256385067826794272353809286663928561571759219484450566176886942855383487732173143772080668923472952236118694634282017014141552368982426564269926710077585479491382523309881003217205061314505322849160454210170244645062115678880515652082950083480228739408532122414799014620466872535020486721071100361997687133418141518204130971759159301538617150894873908781071796178452055634899314598660681336652245556094466031777389408926461153733539247720466335284557766323217375547639042439283166833752468221191501208359980106627409007287581786670348534167966758891520761935878812245960238038729982993897745299508573190893946721593121458871283071006966155882718019133523532650719648622471144959295918531475810209492763593844612197406185929402139560517580452979779508275072105751499801015545466516151747296819950596564012225367034778714928068163776466420304176885422121211923199137811163110417471684515311606849468834102249650329882086551375137876948245000893477784803029064649410670013950342880594511937846240165712288256755385775123536360289161845512243173785285585206655937622899670334423024231343961022184398025805841600389875042275252848606942328717924795497652249455975274740288672246118669410029442773156091550522601115716530342593583700073318863799137222748356074875201908628761180193235557674309584922450991498199339925108221984546399978930102304699829342588391983812522717684090724315521894489031344841693167371476884312880857907966191878132396419425988903077695943420523783771314849646093985711967610986662766002365716472317847090487576438891986741774306713213734325580666026445423658163657952109618974399319729184266630324531187221013083633645208905400849019757608830076144685057313339777082874512975934893695270133088027967882441256915707247295997720206014606450641410280532914583880738094657524822594435100351588735219363947317720706640701161863128423754244415779726993038141892421692294837968792867089394743293537359349724500399781881035866832054922277977455764784361336332333324872947115243161698691837132219110547699962243714729364951571382790356154857099642275179877475435374844980655118657279433283424619497820397275844372378163770567713422656840592700104879151037295318522658920224818415905085846024184898523897452100608754969502434721091245158257838230876726648687665398120523269606258712876765764265570919581986188393987852854147275212188565014081835167583065460422275247595384473856992106798096339809865065415722808656105803068042143893180495738067364604688424089452995280032003271500793883024563290770237592813177411544631114352623658937465389691959578608311828300955463180206291358947444780636930429765696455012550882744691199638848535687514796401726979967312653302207269209093403220920277372729383167120100575574494927729917825476426069084326440378682389963510197560265533975878537650520160086158715920910064764349097700685454431530500031880400402560603187167953307412740761504541295337506424280063710374618976918322253898727212356826916099449423383004738801949832695818574119769312095982453450336365930398665273449853149694172320801212451947526601044593073167034082598365036065364879470853002862783382578020808601347977919391562720280977237752115625602422041564074062742731889376927210396370481393526920024482322862931579478749217680077824403918260420444496869443719463997740294979778550518501714231042333925371127545436976164570655358395780464616458669318245450706279435777657174450753130912108085926740915521005794670555870801494528019384311082380735584522137777417414238900962170473890798471344007083646194231318203197152507330645741255778127711233924680143214642927887403720553698027754081809400316292494945404662670703391397113765305594370644408755270734563000134998210175407612620581438118046210354414738175311228733346888520359952048487331478429310374058307211644214797470138516866440822363067172074473310158455500236250308307661513667541771120338500832187371521143021906172545265628592923013957715091670298714945274616869611334140441913229425441656754945295346920228214542414151251933787354859866217159165670012332209085879754518162719742255429576386296897930159939170145060866862154557301147786300573219673012278476097893789113807355972663976481522807174589196974208601810553724636310582353550411207675309624409427493141678264880662367537520228990676430395053465770230616148307403076699950357847929168898979991820576060055575084797841535588062250050382796567758889051959891656801757462187731646946446367595436456023034749237763301880111293428978594413746795133012157539626914678368078204135704802545505145824503686277199626650907976872088575617114414930374404415686028426461890178086306284528338618482854139054047787795454901961018864851051269516249555498457280903028153760294619155515673108502071899469893090564427237998310660477492235677814458854372295388278559790564930645524049405390093233497706334255699941379182822916717030504147682143963745839277840343032689323403105187782511927241030701722091677791223504626479147710325933173316907725648177060189248170781673326082849564524551541235689211277885751373249875030898968969539337792176906836682840622918270090590241992289543671094459188260124663033943362691263671653284033618469900669085324043364436962781831248482231748909871124898267948157983092226291679851453359443383772000821900983395056143493555412882481806080411745652496528468600848799037031587734613505457228212495026938884806097151253405812214316851945702994611823872311895801267065351748241831619942806501881706459715912864074060735958739110607982016893323898623592851140173906935764995140751844635495138295888898518495780392295895711281584442834536331806778729888604840099844154369767188327714815639856715598230138830963143388338649957064824772391568411217015506511493060858539389770715641156119542960737801136750627901169899551919914795208904163690536849509051872335627041313487395969844377573911641950732736261644546200633083239731254768176622607411476274221323761385687812684595158569887968975771040225035929583727415465284980472752184018783318776295194302680266555188814560930369379180494853805074661584012144834162599148594191933453443584021968446333210160840051217830413104074327888544842861526687611461007481911493486155953158184833410250194150750073798318151507682787821661272329068064032976488873934787681295838161675000740918876100913490296740386178405707349093454563193198273672797152960243409098040984028350025717815451881770624665537333055507019800913907208001259184198671048729206634839115888101759199402607409919994305748704695199358053450757181501485868245919496664112227153422164366031021017287228761462257228502562668452670287548255658895939450506758941329636156128308894772478166729464896444248944625011311356352215012707781452284768546693374345102955775655829231445938105157893966168716901421125427974006338498617896931750625476401019056017276504896146058992380719192493176778106816310361293923614965808442759109180120494241373995147652632671633619402261260533044380814953410456647758542420514557608945818829044672076130766782866896628216218726868575292605303214725328480866979282739088270358241159345798277993673819840177960059720221195722026671154930191623051004017628077103437891627378893682103572978258781835135226357653466742841179176362066330700988372026333962518907913494583426130306185181277326160121953947619902143745756945595400941168104056804412854662010601159327396137726575498840530599845221257832418674945285593013164070552631392523750160647884853647495908528736511142203057698987942387866923846500860050289301705341142249157615802331595757417825223696038980937713374491462501592451919030882871394271361841325700562108281902615091407836424654881562835528185871586406971060462419872522311596607674219510723891831266338358898006496552828511391874227604644889312684750491917708144297343654519677507057992386437431340199815467638931265257905686001684551540581769989451991420687239430891974771355465672923218510522344484700877148420199063965394569394506582701718822092195246087824123110701841291736494525521834602055510029465777224551996886358848363537257897151862310091197359122364443018910992534179577051080475626656779679521694075629841130547580403936657933911679028069187171377917366796312623032757943976402208901849261032271315551061524275026651205977541200730612513934163548382758707477782341813063812696954820348028674663349276661127248467857093057101649731080161706920356607751597680313434145297766891634967899368247874516841449726882170793537331686530344542091813117817732731782455489040919718614505843889950871926137130854505661826474077712779670044587952956447526159443479204222481572933242841452095563198394594974242559360419729205632583714664802880092046915652021168504807203944242854056655242874485392584309697554152487534660891835452313555454706210112097226541035194025854743653422607251759602997053090726363730109549073978780068399090253176203522088019280017731997664760919472100862386821657103272085417412390550398264770574312511011854673557316261678177894237763917503429894184390609836425951110985487392311220392200137320978001247465794709881663094145604504488800317406098804359185212647302832841116046874495049941847507097333828924315635010169310315665129773058970819777175494050745153772217575115147227160456400974069454678755090795926102408435387624086224605415186766855321350488834015782690042077796482054869617283913877394712879430881218266757139874675722332097889841180902486272840666505113324194781374661779337994106915694154532421007380302199430525273061424651860060548229864166856191226263330870608421034016672595969066450175946069734608072308023546267226470100252358062419601292027502457325196478413256322816538086278529413499610411443576305287388848720202963826405870903384142110648638517367636301154673799204143519806132241366596187135143712414519751272078087610013243542724365024511417968678539921907031420525990479456588059773194922890710479904300445798354094005504547317181751451158831255096596438443479608464829518861210980367163662131636530087837617727420259365126816976085742936462558615876564748575814648931635979974798590082205693886612211256690590692764102133160196495530555279236507738263369081164592956044364534942089040059754073020453139282120295429533097555610434664729784414628283467753649349231614775261871485822555009343156266745281691956673598297842451412966740873704838509978855909569331993622302431446312880056250366320042504934519736139500908236894838671545560346944277755966856195876372661957480593136346997600203663507929632789798784327174311083512118435659059763020214425135128980626987514911338097586647793919237437852114816348746026551278374930662803626521993692499572275220411624433032062033462073998748405767521405824688357069496371071656007431527063526404975029109443348221000258167003326563009790068513940677594085492880041703858573696116982826101972931580695709286367165302950091341983857606353745261848372218531552260257581920036775930840677340043864095430626712756196750996228678288288181622301373704349023506897477542559298421287640991424258683795348058887051990203662292409260566408938179851460521733659064277274284356737492029092674755338691377947661084911015705183452985893805532651009490602962352800250561845011082068804313756267215447388867231496896244405938407599389269065176009980201202764674994513077120098859163647746847226144258610086351334497129043812599746313473972682675425940047831432913605813128241168288606177977277073343118811585173134073740500682567600651072786774864010503008350517572273138132830226902943326448892031978644393545897285591175037079435770768009960280412558334543664136403180612502874725665457674319782864490081399427548695708778124513390551398312790621476111667627905268230698363458468209857474877563734506292630546547892361007635428743494907099938421839067418672764216149047220133678594246285288438801652020986429762540336804766995966797201301180034639175831292974530961228946551227822044473056829996673252053814362178874966984665555921432553487682186351762128492084642481064977591053767395268258568368402912965852247870586139604539195455052965467644841814411307279806562168346017957592536245088591048578247368255929023822580966830649351405534394728576974447352276415880181456718578488879000663753961362510592248290914527868436772121132609873482459052776375972506723284498436837677119147586672882623086816641377366376249596065678309081294118817634349911770681186723222077628505015775884189430257862377645897968673859663010850594619139833910673999422921018573762820022258754440764290138135161759113519588400034330043035550238004060995761317949020795758869861822317467179640077549817546584466106303498547824336502337108591566565646014794929161670275469766288782477303773512521312138218850970917204479282662674559937248922426964222814265192212570142129537168487290048124694067173806430124828048102778845492381101893995516759574030083422335467576151762619550233877917434184717051572378823215112385344962154662847758662415158976234058037782342593088360368628570779915850212119462081156591327389704308024151675272328809117183859186971476158438594427423287777513221222813263132461013717350138606828738608726906662200728297080024066839920784739984246276226125396939195104006735854978210191377278962942683007196603458552365292444470320752451687241252426667970171323117029529669294405391985023700353961677070054029103342981797738438577719276705848419488803567094199907483652059178605191324905452873121644236139933038360414571024881461733249086678724617328816991982190846602539102443597317341376752407433606579006949555759120209155431142458977074014034345731682553151065156408325420478589271794887264614566039159913755834651069618167130429408621530558393968291151352613851479688951890879285427622398534867570650697826948080500281060746076452197946626558231128923881507743720631594455602060086431496535191344516531153811578645765176325614350870861052505202237587675370174436405055739419695413290571489847355708380051612215280387123772609963046615709940959084924629824406024742209467783682323212418919703614446905762536393315151964127348224460803568200254243137009645020884240655461495648804955954232117748836078745401111722596617821911283937654052350149253803993365446555558052658288893945752631995937947164963236850269057823382745037614470688813271921123452984852709748037159910219358126690341982157751898965798254264000348074061864754218439351389665469855686664867403102244640275397842577709942309480578237454022248168426663920551117254383674029003143260180510773887690478805415615419382229412095338691674372246380476512511720438290629718130025553813564399198934068963798197264819893921699204289328107857066694909465294130321513283336541906009791314773585618915497652847462760297180111169640933558308674818732661887418938186438570838263266458228708503999819900466580508579181326009222239359243647541195738795848871925092729946206473351610241764204910808659914367867159471266102796916376566717353186568979497526549850563994467771704831856248914908870053868286024286525025108558486763930462505344743804714413935211530725187428816138410611893784822567174270190113884937328984310071646896387657604870296268122642540137464986811438929126287730780909385216905063215695337711579012876125711150184101804414336606066202371394450971126036187593345560492150766265985279610204120937457884625877349352213127578009690550739688942595917805214499935707322681511902472686673673463281480991162667499126006426076662482013955159973029054031520840298806506275881021026354913745671463728441818371539019564234319705109600935996553086803424472071210527367279432609868920069397099874897817370554358616705411163566330798305144898131771358195907161051693238835042894414678715475706397332351173719531778524968866387623318642841005039415437340937852065869883174746131381954580338102226345342411090510571503366829787460479051391044884884370543273288567528506709108176771525712546693750473226111042301867375602878034732323585826742517411436938193375675650456283537840315357984000033481897431448115113179784998221485347282206438238607637639666795564621562114875013263942286538954663307351599156944989968755316181263336907171208438197781950203596214751455212615026599728506944468008027559243720313613402160330501334032144067198493428690440472508376602450553885625056020030265878939381321645621761827780217566528123213096520927077723526425562598085413224224844754978923850572922337472387451675217343504814192048189126051445047822666579381408956670251930496425615502518035384756738965487467715493712726087143870018502063550520692212796298620953850386963387223812211046938340946516636599641618101637564905260101247808732614256817999700669120607840409071280841504948247339213452415576515089033198595869671960673850140535894805099236543824243048191881611720178941325379410360193255328317991977643974231070762171186405226626201512092534024330209895325239143410599974574076413258056565843739113787734650796397621230614549939612637993344355617079091897101045463762421747051468582015334708672734346611715272633136941663898100082574382303643251134269595576781300454850829313731792656513112752216614697825205194850292128348387251475358579059299877243236465407208235948716831164719646551033885726288047592020358502699779089671010257759543449632936187086887534974342718086760701011094217332678079507408799931543904501161503843896957965642715884655621616326204530412291073051208183225968506364965318398992320946621399832490220192025383114302210230455583274618715848385203669590579869689748331219111343170555119914183247078193244606840944335901387897309985731668170556496179607229647996368305291294671448704866309860981133425372916485716225118160556591466509542660574180577723945030649960377342912478952264938658060488431460941798242173647429400743087116944031584731389458597197410922539924530129162926218312393660403352229791731163579232264093027621642981937238120596782699223587199645111808040761293336659662228090780344304325659676677816636564796258613677285318787597596258643650408516088677075472636617721473909492495515136389213684199307072409359419666990679171265653941932551545820420693883007250821353484863188697846769103922410559134705002365548078214162998689951484404896418070354834322577943528276174280371151333340411992046462741213273001828182661028912589943044862751774793427501003476845902784791522102753990878492711733603987259563884747771667500804975955645861969362542668554965827283985848017477142781748738524837737645219046707584653975119378831433906029529242798298658741775840071712660703861734772018546470911221715759588418169397034342985379317212641817363254921902469352596141275288621820873533625645479210461269553921689123713498683519073077857510292800054791432030106588356051025936848891758633890485841793877869659495907740396872532967327515502705776588102578736070093955095481725723638411161701417926655388416281496865712611730079494231740272265796012583724586509916688796430263151057452526863535324495423900030496343400154852108065471812146198393782373418722935123708674811155339979528960768572210037372998007303183653353878061527683431774108535921643536105002370687211448177242728876446434653141040628339394162106681880659567573434566960737665984895386148350466702209478229094896759821470919724880411493777851554725623270210924631453399592206137617153809422967045649274266385867776943584452500884899656626303899112132013326531492590390431030731393241311936033284878011117456379013389287565779819372946689825304382491134029041655609329722445448494414129945882351844274675562278969991223010955561968063283594881337341224501438178499646391992431800068294145310246684519138392241649327533619503569090637311726206934015434634463481130586829500804513344093811660666836662211613233493912442487507670430406802722371872537652465664762915007245708353295912341632244406046045570917008760569205667814178733529346337360080747565254589987090899021178414157313530635663997997224564207639102027303482891240373627413586130039526118551630473217950742970135099682858918519439774367291139986942361356111483126658929026539310381006821342610876174498696164648582452679896157643584244921415826390775251619299281260417448362160502399668470010249849631143451561250047158606233068693057602641858938000862268513777959164476700296421396786374290791302170165284750216720427095615685255803649710551017617982687491204859206111762893342291620238515314288010378638874220649861353544269606721953212326478022223602780090813133504715691332759938828993297146365393156633500053953223091677664023546589909806040222968696419310660765502367195094768720466725121594708146909194991381896508636266951254226330607548586084190084181351797023649551892769753335333606097726042636292885437028891878830643276328284390517359493891975585929551992161595694224751368933274877570027968167387615820238208700832641968714488096626653882468127229223188072775549603101450756939251530147878021812431175074778830382678453211954433917484126285528453532674234548682907376229404629698292281646736514597629478101766820538422073702479530568191986019623420574578364988730024561386062188541024703463782589617618022367680936844757171661255743712467185632869938931829595987723664430424036124591723343591527620566987921884229760501373608860808864770529246950667938991544686219463379300296833279990453202031487917461155116723228666226890436114821254595428361095999701096511543271750670477319628480763468799832093841864011569586367319576352302370395338387896341236760456864030658951390942703729911036335948566860851926413228070567689041027749337251437519523648215692514816185416591427586383208370359685088203124787055474148403389799769370853011553673334361554173906446390062523263746322547966587127129430223556845569208881291278074088828503054995767157355301189649823550702584457291468272244358196463159041012602962793476397223917768579314163890849846106273765184201162050779979497178026410718062368725790341529155500468113750681389126412416579703746396306378438809551456346823298162563475305680237642775541438679427662002091353420245162874235699461948545539363344397897190500941442899715344245727834736835909689644364280995347269284915038246618963175995561222505419377186217150897752638332450617532067477722178583239038818338793572005426351036632854353212784454031161985878685170573114430567448495318806280198863441751489624560394390763403982771174053417565698890754674408027043366672868211859825448321518737088336395596939484430858340049830682238383259555560357074491247938287002861572786162632377881959582477620751314250271215863764150041045193204848871102577307968901735684540976522727076276805969596468178542642719851877092475403457896500726183617861001066272342073406507669376305574622945342047879596233773382049632954700674873753592516832388851951930680468859939641623545622916026118601340809405377639652767684771786355870097087982074911809516885793099087907745996967005522426188047541986114414731826080099142892097202609341360460230260761928717929107698848302977407267237143062652197032511445680152576759401109491761082056060319649428020403283646788396738164673674127271441075722744952780304809772180846109803211104597406402199082395578583055736687201175110630239267256185922405540073860935443812986828576183924397165670773460455687789093760939944547119941643383564815065238714590160861580853708574177757403740757374756762644747355090692413709678771984823870348270165398593960625325297026636382326402726171637906620768459066092686809326052856268756855705443531150704651641328596585955896499978495285648694761425914315077057773027235020096296989145076334584959041017725382629253926316004261870413493167844485834841291645052556940461524411710670109799206776463327758156333681180756333314655122327157345248102205813367522340198909620103531481877964621402337836025745316760611959977776305190483458208199821884728560632273847223394275581517873372024101285785117876809122037941201495397324959537219213327130251049241634696948034969556320375538358755922444283586081877554577341819377326214821707831793229519241690383908881811425779513864791174009078644795019964301503325279086560738582112697343808429822075745134791299301271651773560814962808296475918808806760483328849048455925910028367586607738652114926712474158943743791194469117646371077125260437415909190819320169788675069610906553759086190663793243854160582261604851609674195468291306409208295103049985309495402763923427239669106747816582156672357225608945680775262218384094493089425145125810560443651136619043020140312730166932051879335656306221134826772708257850001850541722812744732543523914348077972846778753845347096014480803083997257881565985766615769369743442858057246737565991951395929558087683405133305007181899696014615093030667766751757534914984775516766159941032454856647477258718450322879841588109418650037097332549244863917159035247238330386982169195106407942727958150029597110803013626492089498245223047261170027559780151985747494555773405295067036071369105461366531272192725041339430532997990962554430908895482319727393235740134280616201021273291913283847223739632413475952551577130370185854106254788801952790138788880802671801543460769922522733154296961514662581839831383013047113901104957722123714703566902985579886017841455003301394082367739345450994463555486625827772833642990317752936837753313413070255145287945419383114227782680824420278451215271890351266536233861047785577205082451893146112364793612463390010742445132521176943154300171105608034868206485071546319815006769193875856106692950945458618331335670202775892463751604793634758766088064078639071179645260677358271375976147318840376648815892101255898344805866434775620130069472497769613244857816769016102317200413169424260015280466934525095602062805173187436346091720682077777647431375743395276027274900034120614420885479574885556921548871162092664979983265411106274389921501646481007459227667402454342025448317433452360393408588146141052731793021599501281999599541392955890598929213020906397226830133460673073693181390352948924308484204713519329880621476833846033114716693850177564870206764920922322447319784242238179702371400849619918800865981398242623199654088491546996067284375184623044814800411351707017499640077502561167377107905501923667399844658100319233863255305213233975341334384008457986538506456033925059975776902209097596360822948240773502635723526371322577487418070402483905139581966354324064130774756544497132606366834794676712932811977324384662584035227431227103723945498838046076240836368972748714743439289984051367872580900184035661958308029549410624944412933657093637963344324697390332818199017380425272778006888421302823106098150306064312882707931510705011683163835575405437290853281492919053459000176918443156756758202169372629156726708122625357863718584246706675576014270710607740870228989794031528466651766366228030979230830949855387327358891922607824783320231760579502174504615364149934588896502794900832997752842834418653961268676669308182829956047751315463149615001964040295150359043595664310712700323264694785963939596675828958695714130774148556989737560756113344509389589042914218907287732905370508549251292169388752424127780368014246891873678438635803603906238957242931453286895558197213339524333989560154176134212783685807554795122772072019112670503249136609216736003064335090573156767595899389226663965501573331192207378281548035558462023563585708742148239900720419988706394809279126803324166224850950679469866460549085159462680047454613830543409322444687967278712149093182945072159200314669659386986223174770327274969934515011625394156706681944402004545125061427057488644921374837927625521956144827122299946095127257307890591422079127970131584786662149250428492598177417193841267846251823493672473713149366104388554379218286170505317774702213468116819475458106482478069408551863446832328288045788256469478160157045811584568798512825061171459121771204496348165256784674407947046442387604397740441098501037804010877705382395354477204869821067908923405457635626301843506195614140746591404448558364798707609375492360048089141263206725032597347990952325388064054357910220303888313232988914964355318601917017185946701969222750781082708344542724868832446505568240733706063404480109036548016141790975132053580209704138402922957477232124293295607486975848673868364089817901382952484148059225497850167497398061436794998970206395190684644933339542138942920758250603578096441087464732223270392138601644580448566490371746772935139135890027811880209447222360575887201628861028259440337946191995567157767883203600509802498311913904160480883294347541825031782355644964296460672954903380093676495592956461273835232180967576700828606140711661516349389549921050896650648776512599632740339395015508523185703275834482936678455711860327163150467799734245264039876323498299824580848884069328545466294898703106668179196925134194152157948094002595152728192282553745791972030576088195319567274730254509067801787555383820497428278968692679042605485846588818408559933491773387270195902474463644970773963746724528760695506572855148362619503789943311926027520891888363157403521602428906073493614414101059241296218686287616015933294009303768453350335525983209370024979257324703194469153645883510030098354053820992250340385750825886915965661791065130194492595657155557362314293918306636765690568761401866740009758569373564238514375314658193756227717263228065288926770776332381168046302284882271339513367974126290064667271951269210636361935689776159169665137055942198747156517222681882224755364928162985994359644349745566169294352878894810172236539638644028454674113638382563899076718975133577604889822181604870970138111189151732413607807420764111696669274667001455098739118036638621135296965104066719307874334990881182998270346026275739324625629362008515202332557020318179622493987009314941543469061102065849154926143583348656439090548279040360192823797034635510686382931523775841429291964861042068245355674519120037336024602943305378049158326920233718319441768218692311780211926288909705328857075131650651618332387739405033564080754603737871870591447520689555611637621521622701342043838103417042575095128702747956022592701167755879313621328403407245608055027593140292365948785496746733710293735928411179877323391566216261477494765275449713571329324173978079234257901577317414984794559824976123443554965782045300539343640125741933824833220881600125055280558493340325043755383166842323267835765408172690623988970888245699312864498696690664294473703543109627230412121665228850270053776319999398139101235490704283773748520893279618641106734361728030290881011355855093546290047667669547149775665919806870727473490258152330082268528116640101314130598608863268296179798664639155531369518847063235093704023520207684412101676316399347046386515694650850508187830764735974673353899344604757644567992222145644683680785749772491524863688153099227295581785932668304049900869656426639898626288942255344242007527520404138178912054287309105180743577871588582033521963452400619527860001789916510926032420411972735663777977442387196787947386699769581867754972315657417066094513079072135921615469349993948810874764464637191621018284085750168862066706541111230182177986662446393094231246859837293118620300426270738684759706299860922838154195666976497717371987580896375701445378574280980806997154100448984196712788264960972358079573325405757491640178107282240065996338990833188185198250330633698967417901071650339609117697999120421014347583992788072679107368136955950312561935150764441913257139906694078291702489536797174073885103924775844434080835832580557127573182397872320212224433393667471409767077462116103562551719257101589229145102793144053156242758007888276168023963306483213644959638917399620056367604910992955606909546586661456959102550433787474635752632759242473001822542526066982298343528143479948310551078277155899351542195085626603165883890121933941834138242985393060763054044055724724630091659209648272548580688416435464707736036264873062973571307636190960323070346163402231190859362247130791261319248890335491621950592935760372372265406940084964495248444855300075748640608596374503919473896285063915398118644112411941777102944738445098617984399593483485843720220565431953337542452906420366103795054570170447453912372888857608556675239970389905496811848453573919285665338033878240831829370502576579661400122771862894885543318633273952973498500792858413488558054673268844275617765631411087611499844738389370285353906301718567608403510334880149658761991166440202762264153149282280401252060391812830174905953767232398625081767832692061208853268864681353237481886379030365793914318910251381643221918526608042478075272095634103036243386967933209275241073909865844449879427376034128741984600277175641709755627519319005918189186402309501918729587657100106358727900388923654754440298881601670132362975995847346609272862367162134317409606925147513319624370966372134798172173829641450003305881119867763304283925858714361479437924134444201452615646092573453075172999461318280611521539408231094467193581979450480274643986766681431417164751711797602570982733948874821837004143584974575130699804564171512484947414767966534413828205490729914100581549232947064234064362250589955911084910093444283431807596752689833192724706308949887600985402490728215450559543084161678347318903730470370436007161392123386382712540467279737360587676598476746540829144212745968675651459863880525006936055285777297672115801417994552197358352885131036581299725933133372301493871293782001449980834077669635580916331020822418085162010451345412690220279558479988379774985636540129301860617911699554843578487464502015258431145233370456359567675772517167990670607128804136647282435920056350400485647946821440894694839433057135866265867433588343967287392960394610450833105800733479482001807928645680015779347777166347927693431018875198151114714844531035470103565193360294734865474240214641064449926199847796928534869350382811080118189167363785419115722136418477603920432409318929529168898916175192227213070206355893783010120424170804698623224225894797420518597806006330815384308514223187832203386818609876963843928999193818318149721166137231519913135992158107904072659067124023473524377367313377522145578902734691627410577861354600601760794674029224568947619740868955063247486751799857791993305096884841314949264804781086887288412084314040597217351278428359931858840534867572162236939735904958453465336566710428470202764545612432438483263804055187659564204572106533942849388313319854297618955615997708966955984400772488940596666373771416407966441500088441788921498569508448539073685123428319549894266110058963874685292174490960977451400733995697831748890757787387865698096227703492842621172491596237360171727606609269988521804426011306456851415430767793147852483805047244142817344803882508977428843302858944563901716963150778750509589079244308376557683979460314233249644830926883715426098899725323936367852804979009946630396683105035526244056359733548258636271996784988847694235658828533734981137690601136886102121754305175344241140892108666335597840274591659126827739517028964941657718964251843100210796445938302579308580872118254496417862767080199562300558110576503886068739365553183818045077404547264889976969491923586677464157757564207975676019059639393404599662612435706904723513882907050252817503100326330342469210491644053495865402545992709226728531328830899857528562107217029958703438969208320031238783027082286813454850380773457396003504496698570756465244753385567053806956924579635182520699736935189430222693725452270746388888595967581048436818167950756899047621372540451398398250633412447258930920311710100978712100017621523677827331668805180524683701585682665130826721118226518470684450174849048120122204287341959068730474387169481126871895844276012602335754630205765882715316505751438311491949152737278333435208350235512874046671950036005559557596717324682110646311035571583911235653642357522161505862009176124594229062304552761351888804751193158535879766805471104020986157180232818553335316302169334162882285385139283816539873094914146993540741737065532476072421625674892709896807205063727856515422508995480750373267797237385300740103254648486662044571162621333739170444815998359462866375068432166056306346438934891842146200188430611801056362005722935921598971921268149201132100791015216161652364584422656828744384275571531580288735768468423242151754124124055943602363796027496452340287464351885417674386430668428393166147678480327765986608609782288643688406770120580163371321173684692255248398647856575070128293420906478402953661315077587748422728689090784976585226083934648427718468391537531321849075254412090633214351954127634911316984429075101630551052528194177470349881069937870869887425976391972261738667571692742983548245952590395114897374634315478426251781391913255790933541926680702945804830355241005164583857165902474922394369654736183037430729670964545444059936790947305339332344473814197962133414717968832555227783549850402450265540355365391799205437272012256238609426978817387452177610347174580633783377302622938072998969812035531151310599719326673035179821160697347945518658970097050981358107638048156129566484325054326615436602376768340213795303445951202057832965894710928304739602718462613108470957681921681540517910774863152972252247522971862804999908171190492007402460740357491299990350660284630793341366521646999364107436457372073824689846171085303165275249949019600462294185632140534295111270962429123295779448746253794505647515956916526325693102922163349164148607745278329526846668851922770699016100241699928537015037818007008024445502495639477642163143180351061838089396482538792430865079486449220157931408750604769181394056968765040138138657080238347424825350276880122475888478623877688741898162144564098993289562470269924554843733662774777466028057518399256868440843403218221705327455985055314672304390522881576114259346419681982195075105767775003864774272816579003411987406808592472305993882240654788564990115339355885206596863456417959114030918870830006541943563556269781479913224632678813427824687053849372553859135462871701328138905142498982272190742721612090380942206005096587076297447854604959651711162093810559957977450888077166687080634061721397792683031271376159302376561379785393948481413780120834734052748425189868557599001674320908693937816635290503945856276830542297337228570298423506379157157535035389860505206833774116846807951865036656402885180371813877291043151852438567316880210534572911932806144534263574397418747394911356484714528130411421581527553279653162748893578018854278581459243824191411562223369176176460636270460230311864814962839841958320164805521297037628466466241153228382616639988535059334373401164873562332691032813011834898340984866675959801176182365275632331269320186347576879212376922412348497341343061003149962121314657509013503723430595535707176359322324889494657666296440699480789816489568000686614774289625908921747922834294267393450509941770610382177207341793764169702049038894979719293736677066293399798176522836754374369900512314029606321292284529182023289307489797496884766597959307157450004384259624689767238527552780246762172018266340373355997204528995147453313953318737242550518787775628940342767908456576364075303052156524320215009269498122236159751886610464906094356387628357769322127021558122012232666937489148122787267239326575484800777185611149504052026592130131633629530745589242020335826327741545026194372188361955845853304319998271775205523709036266845912149327040304180940186673389023730575061054086554433713886486325090847277843352932013561275649099114669767776767074265479987098276811072269540517881044318414910654770407810226981237157654756286475220360282033207461971926299787470206945818771680313769061215327902999260152358048153279255590814066502193257890122598081347382124882911067040381687979294185093569596413671750910123630770368417409505346420093002624000356758568779505149514147236296493976096976661527381845528160801832912139827893829679214321588520891237645684702682605291773608770498930977405716407124549569963962017520456651938522285560585981253252448186558329046544000020020763482883687029668067091156667223759245003657066667059369644555913347326885936026116717578456594566830921410991336304884418291311635342394194346014832976772378496049750404603188016038219431945495264146101091852247215117645354241996851885253810383039870811666058214326274444570937648733356034869411488942998875998268822487635475114991904290035093351883285264466557022287856155293975059613550055582781192501697208514640037198225913479780098434515376093339085470015018139672447625494856349260205117519123885872342223009788314685914441184167530423034298292617944459272364745244817157028817089796161599659730193807753372730565138261202861616848789172529974135596011743101373110271299198324948063358829507477396901405731604945811064469952248902822252036531454132543271746006898223766755679095890441013956471673570839495657385221691492709922211785864036378277016711448992970562462249340578218323493608858743202979692392628100222093425353637644027137232665918498552681766008495164048177323779440012378020378422340699891458516069110712068797550584708938715756291892163508368942532291089684265378501417326736693555233530332899834031942307007026354392580830799663938474672490089198296653669544718244411842743754973439541195308291468667720689411687831504904229871052955400390924454779774749706772601984500270820461751982296608538570351010909831469655306900682279199918933524411572160926302032740142488267625692312393258079775793133684021064921085423128168788581215718926092672199291692894014900271326362038374854513783923952373909992330402126238685518131318973403522315800530264209714154415318984342587639909025707885239782807896171894664225519984731884694291802299710495803559973877783626164143253668522376985512208021344088536025660553743700632753921965903281200063377740195940513823390577771378743476596089599091109435851072897553279920111971444122516127152138556833903924026592947631828903521526568213933071575221529572422201028685292362523360317034902679528164193367365280631834246282141300518399885820115479330290886796609447675966409668428529486750050022823895571135492342000946998064798954039776491625761805950681880305460575942755958894150609377340896462223228187537907398885393609567629558390241690054696268123958950246034241146312630674928079920598734328150225585409112074402117752744480081741542938786089177860053686242036311751148735494483869741093619240107618639499278889225647698229360700216851871883644508716002518254940727707379285562403962036395318085050692154357840722566546687552179167254783060507023109761906466661732675816206372111797041720407095269966613156643107363845599192083776070107924777437757673493294770997565501018654863260155809195215700922169975439150119869719360539062207919521945813778849924079910977001680243981018274049265615071282718099673666408509307910678260106755390326208642850844153732120031077080853856629612075814087570227173625163785542708824156027170633325094603037569060066141666169537428784863587468359588753153122585841931901379475108187996843627969383277746522285223058301170923787920659255956402941611966482692138229577620915781099701533481449179124647969499788797961055733732588220173746326215317813604477538493830807912732365651910985828343131412093209716689715272669881792313789575922235562248966617167634039920838190736219020647330295282795558090896072446224633611928393693618680437950645245197770680929326421846308976776149747370828768685827387027510863869074627762116606982775242692900394571295890641900504573001696978651781124641023710516637048523607927886458658268575624936005822258089669983113139990938418556881971766970159598629511564298410626890688743518884581780479768701792838897134600330721074915615812545445393231502875260556110849579334899179424125150239814175781865763363450940443336665731441422358043846259398838418191365185003196472793676899168539489601389727416917094938088617978160849237227981867557540403377702562402851118449311813830704375142082580926936810068075125746015466437202877109114976829022806941500248165141513566317084663581510992379000634674774543192335996922351876491542907949323657636578711954958687374186836809522494277693161557790511874048480475835260816022329776775316890435921447218328237858284888357212381592194060161338435543133137536665222776567996061210906769060811642151387021436615235399517397744696307504661949847693920346721220621927975164770687003590917336412080023777939368668802398802591737509811093592528507419796739937018934651201772912972216652088022591678153097654594907678928719834571416620375834048889717242061645047205811977714305436382936083179832603835110336555768168643618299955061194790473619359703743625709199473409270677661667132009875174562635423448618015817539421153035915418256981093357700712676527703883216112804882740777218277701660236115115368321791461518035534931903620644675736575332170125968203431652066993839002137212536749626883339498353142374968998197149275406265228528416783877704592104602718984138857726082486910901670557105067261194700729003510100194698738099665044158011657509978868147605694256346698999056040966499722596016499228717316368413034344607271638734421451987239139404437607494230263265711120329324072641320707528313994982031897118799241861785025724698900796405416944530926986796123769590385472872264241370830013645821878662651406845757144575844591717796652507155014336533409140961498920458941451646163831471176463658664058040737036184795116378555083126561764752723368526063232323967432835858389472260306236329521068320581134585599403533126173417255419202123061819995865984447260219100293282384638874966734943482929546953722325910217594962003586386136922629722139399232375943498274463016141360553568262563546812007437218459752206559388334177613696431130518993297501149639344189646514224468514738248036367174887414230541052074757088182530712332560197620682328673884728729115221638955479759067969202375742205120852526673759854006085248060684057179904132475689176650910532606587386253661741826588667818008743456995509160157154585767890203464406895197500933369254490224634960125259634578231981979467526822630005725220325931523664883569831124180342872009121382156640985853652286308493125938857120745232099432755503469928839159507089134173112267100023661259053186819448012480873843810753177696106868717874901702296046857169950014517937457101752501970155603869698809910741742160311497868451073235456877157999473731815986226515854333673577198876315529692878859250390789438712422921334602617249486213771165910565617259206662958628648931475469933313773901413179087342278091385219148251625461511910094042566324612901275388814509408333525954362362789570665036949996132128061302285880297120902299337032947056498106145510504202689944573817844347126415561703415022556763777841612443005794435948844704513161238280471938068687496038296393102723507139455490250865745671429366336683021713316080270699886311307120916859297946245025139890775286104471836883486191821495146714702495775207773006830489881012202453616626270062101511185701064134526851511825092436646263831547762746681468020625782932391274221337444016214833711080988216826187766495209033825269223681291194077868326020365047735473630928062715370121988631090155812398446623899033624910026943957392809535480771031353393387894107570744765103011462498835885911503898055393106589982378074351402120235893933202288599081448610715523464936969520289522492647725637758271896737098539727309610265883994798579378116852122811711268593182936791774663387843638759333024007158223499051832549499160627425124731298917966958648972257397898683783932740816770039900401292822104768562064719604014362244449453226413125279094000185462558507872588679403806903632053780357211868075012547141546612763320464325084592253842222784964705456729829564656501363812232672644057794601219135471642403580798986134967206068312128418232544375672041084706328655715944527784471983160506297340331982229899508235282978007815565604182403848866983191576249223467843068850138738316085648021478665220552561950339461118560785722024136589517207564062351354934251545514398183485694539384019027387984683589965435678391611093120709387115446793636013823985098071555794243150439305127060070539570926368653680673176846245436095223028507545437569352280316730899629584676550085839822658701924201387855028779992832507309515798310581640051167141424624227373332224044669141093808684861545493471693623450761726417409769938879876893254340164597041661738080867991861800619832364217672290748692731897100432160284202153658462356319589594467129986244389003976033951209928034049487208345599877151288408535974755045179291897426779718504103042007213572679771078766776411784542210559646049831199564656080519633444003263678252533095464321210012467907848793526285831630331000254001741864998268248486462968079119036612603051240579053920690295067497903654877481885787311288222608469424280250292587748573737766107098320548471116220277318065635102679459554248256528646651700262695599663731127406243744169539469002939608169782474670109118402296885244998574754973310643635324087384857342683148292306613622904075174562463142203453628700322637576743396073402418684814069979216267432612231573601137369974608774226271110118186809574124804924964184328343934836652982517455662607191197391562310030596779210886313784706757682053270227848453044666042866143011575087369604360960163033187033066396117702754113472794385834723549864287479478155449910785077376186221500760426216054718210820415731218766114784940831183496750288047268189394645247988018657829712638948393029456493834909341061045301510466610999050309046797641899713928423954146806576716991095764572989861903147372350802107452027134945074789787851241151251915623618584032861520827907956310160506674786064228178749472374811044502182161352910859797175232686877833249021193671793248369295719524654252014828985663037085094525780088364953686621765463281521039052604699924586925095071621570731197392260037649641787216544199346024602381261710901840342424414619122306410318178338113312160718463967599944345770089363537478258009026146607600611722892396743250447691216088972163141281541144246036710981871882159931332455000809895619347939387296366353505512248679288891080513174360841444561841328014323888325959302213162106764833672866538083676663010240897883763771388120463165680607339800012044289938556958493377793862091275847798287854726295494966201078805974556990806820461050202636174728384827627675048025215054791097675124414044845792124725605084939180030021551212883545091758301338103092868276702908626201005246547166679889397276042088082832861218031022096825907004625148111304178250180898216409570653244367917467173671630495613677331657994068201198570651366277154051482475980052578407738497581786016056594090339504312954112339877201344507624913474524958777007331910914991137793575420809443377126579076212474722825974458998311976845914730852039864953836939032025093775737882059566256422966662578765621109103435919138236391061272103504767551354019504571846267232824639329465346080457446281906270893238136730743715739260087637857331589891336123621770391498889282328025976044812705746714924183691912231259553739905782820563191502024242707870747351053256235747728338537376433081927610951584886147695453817441824401695547694897344959235873092981801456534421952181715321141656351711290848354560423357235121139164633241793040371005828404540662997987733625273535841614657438646040555705726875870359312912973703901846845035523022956288997807624843102655290396572415965003569569174890179297789165217162771560582458150195532336312840199868674237782908748280597871160499308389216629387167106500068447433296383118110119870943342190940690527020944168451257493444481911413192851205160334796804940140196808466131575115216112808693516744010090946646637974722185384515239242469408322349597606999975443391938555966086720085063976215379345970242221346429204688291199225714815331786057110462541893186600390576960595956899043178532937219414459825123167595267079106048358126046956244136919962946077559778388146186255285249712089219603655113781419753800631625915435683504707869180958947902256658183761547954850984457031552036130150881755338268239297629148819320221890938451320479490760347232897695695166489533273304919579433577051308749396080600822043920603860960803496741532567817481380296123607539811235664267484700434793418942971315957661036644038575693024961724209019510592972239562945207798292325335482186760199672745550983637068265424029203553241857413369138851450933352448431989370334706722747815279053742800920301005161772627515695511302814533263502536383488584317920019414977005805347349726982624855271185752014509877424082395444123765570824760476415949592814178232029541947264756251941509443664975666381839381665721321287222642509238544599212474054661626586888173563043680815619282312694901970435893681472681851019978455227820667656762809069171455821930525212640210022477846219449893562440333807106251232980507911833325635420461489199643081801575669996798696186655754403366368368577301234385026350665482026549406853720049279094405834815097512359549116627505512079397566207479936387453689345635370574732939408908517110148016346305814632987526332682755068509689916412578533541049185656398115205357995481192003994885369696280378755676004558948876877186672316165653586186616813835062351472834171238516402603704147435365270893204466619365529334456620864563604370794066307933463640916382273994810966396328808575498489091753143969704625855585386622779339685540606519867300460352964227090295865187764401505684269536492456795111881256847976976882499772353640079286849892577047656183903246618745523629336258653993717696097656931182861557323961286414585331084545778560520599084546498612763039920626058905991016311101986279329976361859243617615905012309387638915616723921216981667144355942001115220178040148173409051714322802729715969830877014935868346163649264126868302307028598526249590872215256073320204981263698473183105507607216103756946945914645773493494606157455270714685998995070571549201335226699780210178170386602388446274616609116946409061245757284279140076872436421923759439997538580160893221311858016055095124316937567956309682351294507827150804250254161085012764794404000067227836602221546808009746003873960642195122902379812896621206903606284881585138780757005912587332912956906532490487533808226350887529238552169386752606900657102647461091453767879950333855696053363764404550889577637257256505437582394461121536510349031541824648458200080331478705034907057612947691041819920565299025530299985104389392658759941044478931409397083247996112456015289659132590959349767985813083438075575583379912790217399160189570877798900261502430586094437541823059483617558664073925382313895414094350126489242421237740887122336687521730362060572177582578460152049455215411928707405702622786225882048638821568997818333234359871118546075242608273474210597268989527283518254114814142001270640537599690450748451265661699767127596816085348353810322379903254978066485314118083453957547698036912368220546799658078385513608532008942845572209620278606523382087822430722036837840211769222492914465075873874586325326277072189817929963291913419428272414253364280774534733617061709357365813375318709560711373884689939416059936012088538867910504452267270050147762073462882235643929681792657837846620779118195723064444746407858216456958919159129884951316179705933062545011269916326015855270889425006053477147241982296449613672897176830506094986701076667433147500772437920639511060457434787916177395003735579553658254704027616665224586419152313330020865190173210342687286314912280114475697563752774122303040599974473363412905072056350471263425384223677092712018475038882257232974029044038492894970337159471163502394943321365691434540423392840064384906980844693248677242117557799216570724913802972144027357422659624475045459371531477598947031481909524013465561600257246034036649468450814621847310448277588423585647181173697552537125610684920421333792382486879038652886563213663600825596622775031944622107755949573839965298385079964561134723992406045639011136668947219488107828357638776242162064401025383431840560525873041778599494152292312984291184137658956776607589120915101734301170899707916069070701518759593459456614341457652463245136209334235918249856791632401512649605765867708808681504066356000069043070483566377729888051806695613120093726532412952812655113672232649414981716892079762811645916239928867968610830476168882354985245844077998193513381509685494329109549686572993471911457516380379023998174801223771803731972202536021995671694768650044757072508534972654029712093900436350870760915495350342110039001003249771557982388505047784119906287821971476668608195337782505211364133661948714422404794209329221997926041722230451056801776729035065458415093596724531424789152603913147034605966902637781529231617336305733355906234227636026658131221071722708011095206120218481560140342264665837061239275355935877957858136945778505772621329219425420864726463840627481725745131663634437758085775513390286697176818787372699546418691932461669232831326935925789426311573658794525781743310728455136005577234310801060365725608318154380893107401706561202517380218053273824906022284747668997280206208095892781262629975623345634040656694400112757308647715636444015536797999809803028390771403425992160230972899905456924168192795477084507001105762078099636072559116270227913120744476789594061934698105539636472330987903001546999837247867833286700464339791773305513805376292151384427030971747498132060693971260467077892259422219284242657599986962507884375501614475895399794198984848328193612191456498910823201853385271463929942836813434994468909562557579621812216035753400987802688010135120782205068313425544977507980554156179530445841902072042836318236742030956005988906777773760490865077352687181680640160088355319907012247412557752811124266661549230214914329544942156110440466275084854696978545519952284732604667627351728585901044552664435535576277668534261141445552447711098160775058595941134875737802920945179882744779616153314944530159682432995754092014840381301039335567730380284789942173966067274114117405350689739211042542615730542224645336424345593478514349573043568044331592591281538533457415979833363708817487926151226690858564854721520794908444204961603507048541660807302191202127279411378922912389730069971149151879576557743213379740183205849965639718906794557911427977043443617785522045183910547487748207932055164335944237189155081463530115485548022514587057698002349789428476250810871898458645083490207142521326403908021308792397362339283904262776430077507560883153190796422934887293516068163083293521720992149206683482759669623820367176866128930778544095834017679277480922164921163567608584145284559952155277511917605621502158611861710017972753208821409726164930940984317217144562661644855899511853657242748422396311177925871305613606904041907802277921558878245566352469117218408176471265156022478067696257369919878626731335619262274248123749486377192198121622809019990926228824311305234013342827250956844596629133530514291092461103835992791164782677036941169681491644061332814319810694310826187796923310463469985033995135569508562930328026132963606888528236258149847420791687638986887508853129887455009622566781234998808965062234167662699863340398494903791602191809535765467244309466342628455914959750343600957021144069408848684790880675298243003082421964345840766079628902713505073463289936672600714316963626382903476767828184445307798010848585487874284771701096463616566978752470394902282935069473861272806190819107553348162566157133478376278386861986833803963562204292976718684866204405502527420365824410385330050517141658566406004652662497757861824100806294490677923932814869902322535002999739931042235290280070528463594956798687821067888726399764289823089917974704494396116286741663898561403389305439877063468360716322509391716560011684540679909609221349525232811477247530626535687483300306972556039277905366456829956006063741086577344720579459075603219310776586892060787134833960699510100883982292645958475212343403748703082455110315898273069268844687445612812367462021657418459774697959426465275738826628950172952455348358578107095395916673273795140459038098903458937457769129696777841653027563428624509024932625037417060284273334235832836703593786051661248788604735342124696640665826715252187947083833753378117374820301131651476561892918861344536260811041415956628267441415329443489253293182307975776882336787532500846772761560586639823839311007069779542600036784480330347226724255465528692334225906449453500558607343263202748623725977840045606426303227174934122730276843754256411479850140382635664524873226282989134395387162404532722282894973697283207240656201256354219772924171368448386565207524715854563389657211978515706859103129473706394018778826517072378286737787934893927986425897769003533704616484962285766889289281772673279754381850758300486409791029489788449937408343560714610751719316247208264684184868569544077611839932659306393199708375201627062999421529683458724895492074497985768714005214782947521232000348059319342891213824659330109825109979481349632186982451965956075446570491198166542083739862525616013022755579710980982849742673468337890033968369339612100130934579357434171705515917681103408426967316222546837027780775440529843457613835905291418111157650317894503066500905385908701154583455417400333576717760426460808381748240938202704000923796887932285717512227013370125431247282672355551389013476591934495643383933466892188221017032813554948921948983681362039317381018285595092283225186223948777932575091231861140252276531821621390205342629652974229320688174617235427893900544622333183660102525562307649867893323575326740743753893331333090467842130068830062938168130747579089601324724213813036334397316730387031746308556262016780534509360997998474283332921404414731423061274829752027480419108904448985296430807924945289952709537802482632993006064214100554033004015698341095125821492631757056233617360149996667082398166930503225366166677981748315612995003159209246514341190159580042944007826425885720862501071837243230646755639428789565707409015337293413201764974212760456849961302212421863763681067156214276214904838065454198549883748807705649822620002409821864209929436646267385777365105236128549858144773316387211823700625631749533352966980418486952788892447156948797286741252288087404900375548295425804237709697263411945539139989906754809537706209645480802733296168352875653194927728804954605733241824736039490548061210856346318452712666307118691824779096934910476592687843810139220650012812028656656703878478914412041410615635419344741050947548839344760322385352625193493550690247436857245049664962883711866632482898871399634244837569432252166820917463332720245819618647174456048926101206651629932163415545987209460597306385638205055925712932711286812562382177393450822832555701476136763305309382686498511068757436969215055382122829654550510921952832915603501885071783186720956435220137173135816649953170221789035523964398942219600621670343841485942280875848918011218017809610661910349117361112557082084669177878328732317868248669455421152921353401804320580372272581502318470350815965798723330077817360106389434763403161435252839589936743476318596740744062946743852840876099289949861978348554859784658809130059792415274704703182815779442218961838502577598349778321502455415841955631868750675251268272145437920047711447819160722553773241377203217252324397075059001610842318124665684568765029197938869838221514870651049675646472322285788957123456157605824610885060027923292181906198276176906806545926954465867442048025129214149545433238515190034568189919052946570717381090784866087487085639331908849737007244458682726208413141432271629306870956871506571357197241544262727825817363000756408854674271129262420321768058599456071012872340429964174662645055584683381338229201359831225766626813663256668739536362424814196962879458570148709590405130513501800516877772587262478638718005625197992976916107024813316462880078106992711813094088229904993845604871906144865105423470871993127912851311325786168757184833706501361330376925960028756892336793686409283019464501005740612211949105436195061856559029265464278442168870249342657759184328154819931356563823118316006106308602384165756354265655877097265577410157690866716094092343306201390289756413181848900026702590896306009581860405788830209630192013003070657768456780762465116486324349904968818350673978453225614464328455702898976146861117054174899357789249614371468989615966430341242364896190092990454820296748055417142183205825103109804881990640241444229610191889499247726347356598924502774591894655082336653534734934134987582788808895616150819502753495463818125512290857474690715603451066244892414509206713104314584655195022071737091705231365088494405446565083795412697621187423001636715413492095177558821860484391942672172219460540904625744043590257508928459688762419524544674040229461362165321484919365902378019421840930416242175337957478883621089736546747610836289641025560241667973674098482253755733305185234477856479366132605866918765020396312088339405323104813806781194266674967794631813547544478368240744737691789029060944020473062480107215010171843511200296160839436615049838513071237664636438894097479710984584472518683305097647735360042798182455040328111701176791084632243473123815542342199049881211061168644942359136941494288783208752210411475698776236889073344907360105135089444468580419396855761897656985391070765649678599882161282409678953620160770142397657263356343089541295066301288948909049892164984674181588006848574525068508284908686316352123010953552114116245238133472143339215506099324361701871189810081105215079880981981416916899391749408477482895460082888955206201460014366514207096358332478096840769887904580058036139565362198173252045214501843766101472256471702102637647537158249826403508581165922671070113380881074416475683658390468226915198093536465812222887666998154255263168362540960414551108440492377737845169931319320257563488330375716798431828163053838523413581014042564363049746140697715175949911572199878135495029954641875233225337854920977978834605745780178079386146402787005283749539922065584595658034391781113386526231394433921935805366068790746017254254444179375950515413804415088496290909915219872996040958945629296187782767893007920900610585250206808474320446288598877515908541432791456672640631712922845255594122413979906283415400715011341957568138869149406708984489621976606314520041835957201965507146686297334409844995981737903509380108885381770981725982903530344550667314937649648925005582486020078142697281278090474317552258648891979297666600303195927173623730370507088204224926617166129021281896129222822887143165181984755906814764097324350077107548640306712311213220687788672391093133291630794400217131624196808274754326937036980365110198799905125476143500024701037229698902071337217592444290725191462917064836570000881682913463256338623510267693297646839591951939295517836488697865978341239704910692330569259284165556045022803596132739949327576496033690805231049952139730875751659342153120523420662349282089122109958596904001465364565211778398176663130642800257640132725723985328932568171182061889557902696886773945623306168565307434360984699430677891299708794228412536423776191358336983457990732671974640982447819733343067364005161430379410405261089984636394814502039841233896193791054049537880381451011004936375636195811161783545044478610066210049869693207612850245065068217886764589252731870175851910719207468062986884012469953446172312995927502805744429751474765627729168232596088997478120347636631315515057774470785270096264269291980238475134132923827436518600142582946212290223979119874155828739620037824972793462613461569752711723222735607932110905072478135672667765707263807821337548202865533756315629098970216470149782792690495658553961498971327931513424465276579849869651636572317805953859523299096757867072485054151847625582863338521074318458162052917302818921336938738386036023090323960915960262662332313700146026118527003690054056642063776315866747331443528315010305477095445530260075733890849359673887763570110412957741719106183208669029944159766649551340684641609009970207321639437833495864367592628888578983827162471739431449849218039460672959940007365043242659187455601494480676694406396441672633682235295782900922210498684470524881331344130695611804612842141538947740574207847040906667179126268468660482408594899028821977599732714947798308875050894104634885045932929062004105532960502084707833345376301137698944241967352715664538800877144425508433846370066977500331947846013865690570831053133046420229940667855291341826167340174472488745525999317081897255359125586835019042631086644827700239464733741270187294996285182472113487689173333855421449285738956546383185248496819104689432754994847628503779524802850430743440669540519333630180418986252878396641315365770453023197882255042418830744433811813913005771407773005469305263047121711934260164552505432032194990235610239772162437345139023832505126478011453421149610216373626033447642047517518765904073933291962156250004215797156279993677454593717769773788607739745427300564182544933173011152691396890097598159117003653573641376343292160105268875875828222711731582162394890288165654755691830616104247847544880954235789071538072510862151485437228563896657795461195465968064320486113950230969335007374365031598378409222229648091265593821357711367647182316719323337392122565742593505735486006373180353679863275836053289961330348413710271238089177156193130126966153980108975149817972483389367685513301707494442371582504848178500963586830739104996289071131155416395264162491476204012784234635270948813370092212618665265143484754373489499006327430063573605266388986524651075415181821932056708779273472789080327049086660875791245079067592473472455638248318282922302127339175777087536848481641063409027804588226450914196057069638697255777225100238175759985976543850162494821202172821254848128794664310732810428607707322568813630245159638540501094062621648154534265782973451189391303285175806668654243247986348291253484970832657397888552982292320986386244215839778781319988295878547489791911724854634773290261714746938167556961607758106745811894456393587546800218816488303265887758489807807094890433263838373017558352586922689721442490778599992727819565132273617821592172630509433323567060609653992259159898841992305007388974376042365835044421125253301231055172267363849538713355249425424900767502522684629041846589824855128260102978664900519717961795640381755951125545531556097855115929565074991380311693445575960319358056687539408725239792733409220020989491756035322314354784509431782901026359228075633855400078379382049744182365633225252715362570162193041862353916774060782167371268069154153930437184066885550106941696374841708509490085894106909797353612247754547979148052201234853981981531695256938228428732983490246821684501766362094271506478631162190643761250970132957919044073120375206306820609733506235850939746675025189111086839194089962497651407489821164806368583350242504930060365382048069523736091842599243354178081966866739190685430658990266162393778827143077359519733789273008301032361750066980143924339810322888922240558192660120525146042367465608233550389755273349817812616762178916681334515100028522192286263323883084744608943126263400230879662098464304551668365434736701705172257946225100460750589162832139553380879505008929685359236416440135859522818170864759076900640140517172624974834353501611688997270095999797263906110900726058744518820663633617394454872094449650152707050017628605974670756633494901606877675266175822508404096652457360421462112254657468776527554489257285099025480740900409010970186003277345810682286404833478319113628058294192622897019644066660632375736042510522879698967246417409393149404777672433636431064871603059080049339521044175096305982711369848406815430766911742894068966090396593740170879501994656383254221099050002569765686534934300620494693924974078577796598665837038742575627839854254656963937902465412448386447640233709606219120956552001669432411231953662743555521431232397757403575065927243318289366655811800032987920502092540976802556257584717651686085157526169430479816074326832508305393623048395799315473109646364365753361527588836585916825131773258778926101838924431644564381704632917484819034109375285407305460715582727633257125206383075262188742324048434352763573793096691772677602172570909181700812806207042661857216677718333245789000073862966840788510077453582294581490266470166401014919457971281104439004783654505292775867346118069479727303349607795457617038757012858713853268706777511744259184297094562068777913316379357918983442038270494735178463460623394202894325180983129753083077499119490355163902078643922210353609097740709069801876893300923347859727070897904293677025480440394275140554103435895630451096318303939604446262774895270356752214811074021715342023249134737827283235344350202078948445404401216775859212102495502012563335301008196105355755713826736513627680834776505246021234524210673381385264803283713334374058501527707973348376442043730021481682714316612965814523561118367577769083323750232890235475082144170216284259307398970155454627717380884036977477307396669149751936363654307585819627663383301370054244409012412563059780349305128411187368385629014929281241103553300672558847082378586090015422653125134965626118476289199308330385745082704593653054923009999276020722625422164988295354568088939283063289101756077176351962224999575501382967123202153046063170178654793694158239595605079254172867553479520661778112655575669750282709903918116305563950153760238227137483869813071593777513442040958323276761215502586112563854711405448905939343706069852332974443904916715940863541763491738842464444936138604093728014289761228311022343793577531476622145848546562428027184248598927223538642300594776018007205840195680965988735174121501617147297920997250520072797311502123027195260875537162446525399308913581288186041543255456443215967998226183320900205034002024067356757567264126685365058671694634457617259989386963412126161543064583795906825333031763885432563540178866786546561264093136362734091230860898534821737729662937442000840055882837866155477833516817951057736985500149050463685564547695375678274849797198069839597736104377054427363423344159496603364089482318691390011009708642195216491785619629458832974344955107463986259288232864952667817341346511680537704631714001073462640040744953323053480122763070244654093330492221740323577494046235427991506907118496032442296210251201597071247118996527998318433783328132697539036303186285511001015581902319730332286741664604046312552312561617053335883902813255115819943531967788572806686004815496987410316808996544547001811032727671496673843503853940681071207138676556096121359364234517930606782648556516797539171575074305014230898627266641306471006067906507338768807965232380987937180661295288243950780630201259943059530370253714739334187901660162473152308473129643393345786233163074722636916885102447664328309099535218283925906751104784984327706322733368611334713454543563691034331241098638576515427403254069181260505705973425368776256446965514046198191467978715839004240317641748896135821928593167479978327627989599448898724199211793958294551209782490844430511490467218477348525067253651653413200768259698435950611594203867959448295787778274774347094600431380841390793393875470498808565124322172271811192886669290128085725147107736244121086702525356924145146826182749335759735733949923586276474537670628132212129411503029342300304011620567004666033603988257514079101145913070125026961655272403058337338386664642261320331574010172874147657549231684736889482012487612954783035608362035779576353448891551479304985482611572264842962167398692110122839802823342102491302122595645360206957703031187731569395968512082820369254149122837718943274990727911011992790608255952242492709410650384482802807756263228628996783464200786070362438509168915089994846271142518146777349819795882329022232637831037956999341734884258460932888379899940657790296763301765103189474576281205945943541761665936482587690596109082247415169993908472528704405564884225010311516765761366885410042930723158304780193098477073409595402890706956753735149416481972269202980689421067422662632486008151410699335869895579224431069149038851725686657979574192450120800666309021561596874987743949638753683888558608028792675407559416958103193447901569466082183173642268141559166682114794054846324671426784670402128634624864510389591595159251986014285198790538120226488058220777689270495531678929711192615383253324652316600797385572500939857467385694162451736724594586851143281464809972237618456514517975924622817368196126035636210744104765367576368700581104871289279983987547699817501152062588677170068933336859282874144950555639005785831588682576920486976927846883056463876171208196214658845198925267999616923139978807842242853514987447143136268937073239363359714864341429036349282022606435018556526492324108152799055415338098832413777987287933845984927963066378875757010854070144052645759915556254810388621111531902365030859636237379137386654506804416160364106019882088721971601406934006115448018809101048771819982931155369124500798750377127029689396408330564308024186036580430231786396739436113003296075255595203065897472709350365078922395840003217575488116879461851295628846056478121683005827888469926288298839806873879093026625232984459178329869698318798121271625145277745192391150646221779770278249916700890280370979607310147938815548066077439538498669332022475911935122826439610376194147543866301636212592976865660802257088189627695869377792842011334367560984673282526495076551094931076694689210055000584998064691670768485974672636759728405422930176245849136798123790057398747974697829979279328803565443498226035933552078715665587818742896914808449656487602503418189500482617405825892105913533405081137750778899779503547250130699033922886645697810432701039145726570705909576557680853815012566011014626125165181960703607487185780668211982350706379189688582980300044831429738536350364201891995308030497919137292644224959862993296914534328543320073645178919304858316863973732852000177227108828038705178331788161606090371859386798916498474321381849912285652039369140747249237766840206579564749642288314184175000826818243942419510812962696907699335067612797457217954749294486833362113779896723648754585789642679642318693441443759848914932322099242942175708714945874527335280717428032001858755511761400293671419969137689839227144027392262873050734553439317940947414138648727504220880187113535373274473876816446972799456347671904979185129396791712712926726814763620407869218923901482700528618056146107549636922728326942380283786031173752916428849842174022963711792051096750483514074916629442633639689169429332424922339494479639060165469339977127504220697149396363629722652015276786011167581884317538222280112538440878036692988978261555075223468649156905975839874499880736764739359519852724648763679206516990827502602035106456149735039970969457539913550206792672879226092470520051605568269695756793305539217570559867922767929722918414613394783009512243277605091224711382799229688890915913506129659369166097492160316578438811124639369175921637493631196637835290897251525249855236488916641498331412133594916210584483699419998329415890895864352240530316959605691501203354279752729163747076008611426252123623457489394680535773958235423203545840250100052223367276713987054315429224637765100718541830430917195056054222042862314302319841074803847291356913629912597952849223977642298753860667727395926184455795691876294786298736231098387146152795342100840219747578594055846091594928999621458344219290402864224173294419849618207128207378105844477360801403261500874462511011903198402568178254151672996421799050671130856652257257604844876914214471694535564494174932925563653072539335535758745475536720390962171662388616741949586743946329764724434417503346494090738184485559291007460412220007407009550431860033544076972468137446957495122151088023221636359157893535089115455060901916836662582705075615441497685603454527960574219224090622662748035081507437107448653883379710227558534458318197592467915045453467591221027156945793290503237295768785387278398219169322241775145781120598334763440633980886893124780689082995367041055868208520211609187603790435465339341586441719805919012909837825781625012703506198459478539214088616799624877035368989959331935296503934276570360989038345674478945207867039085867647923152161938771238331811153649241736098040034468279135090103541591648507529405833684782412644047605685530825856027145931778933190957552991442643409796112265133129978697448002252679149869352519718525693981972699549674962843955881495587490923612372715372089778243589965631141931442850321840289219798854517130648009340090246797228546603241463780684728665660360166562624978102911855740015581013578666116287874022250705584526508602409751796136330947689276750762128787064415712665952965155217442224318519604639617012463073881414639906865197067848982597974421364049606375380042535358143469252598012211709902966402295638349183025960522350449458767784271832037347190934051307963010037040579284517025755664352795179264213858926802740793167007136334789523598211160762811185326228792827389016513090157648449345080713189286948185833005837487209898037827521984459822070468267281071987239901491128622701256606125795305943594140457668243997509675118451089500128915919539386288496264460402892683028383937626042903800273155915432031394892818364047232413613142528878224352273312108703150337419651972549382776963417135801593824219679690831112815485418485762878466647790562537501311548129218179925971498752447072601493459312558119029451576654046471808684527000751577400483495188873774891337828323273408176207824086436315476360272914826130973692962598601502789244936338209358173521614271296182595205363486695821642744487115596545846738348240159973217516921641336361220970109490516678212957135061929372169565783395940877093485149120820133144781166970734844537447510557491627381598962323099184727513762522729259799769502377078190808918509985351685494156916835789998571068736675806649190127698398238448911315423744296330049286980824596984171268824899315098552194175747367504837448720639548215475731676609188911731373870955785849621180686277994844579456075502506996111539338855312328888052354248935393919593798952522520165506091634726358108723492458126161409867573966963412073453359677827059412304896170656804937498151541091906386410572383771717259136188504011856741255868905121413365729155481398755855708671163186133224694541047484403709338339468591518347711085426840542262547345669788376841494868934645276290357850870882440165297577038599281799373713845195189096591291868133854604269733829453941049925253783753240825531090340686863242244885982065691736869534729476293553255687833860550065387723402827898819293663737199886677383540210461165834211078289842253975621902943274302674513661073600206997584104987111161892540414083768954644001892264446435952913095542179463773342230192612742753949298959988230732187626102848827222087885261813446070887707411454580622908966874329281027668913181468191564226820662746381838672541081481871575676592213061752528840101219716939363084987166162800407542332372318741485226926860852548761979674686637709520658376648791638956510920208338009037837336973125157889886606065595198319332600339230040259925901930019124747976892068947492937150168260014542354197168076857134738095478598797649674677571802028727054209737314384512086693277839904120621639439104716658260292417337228146712812286918426007204918227294163836542552673355174519239192439465418739916870587339645313012134112972331403178828629025635135569249711401727765922675445646026804143222454581972120368886088328591431566743286036354353608027552524361308369335739920056028284382104247330903289465885579650150806474380852508038649373975359425636165265674677807678900558628967809630674984048845924662208705362165321986909965165431483529596514464015226210392553746915749349636449610058650250771343304535115897139355002434867574779785134637281175549585267582093881678329676211710445013035255062126224811819070523276123538804683531645110788237909846168409552345796510878767087082022628917263445603521711689549536264580692290468708924502432435211245555212417566195378853073694377422083775554641369814723887444389828691419255849177178079234068462527208960586063515557162597816202910726245710182820665432401120602112521742994198045366658997132565658686330693803117786619834146501610150957780127839101265738271633666796230965476088931393681487356145603454400028637577321878947343225724410417777208857034235898889831013544176438376683557561058057092782265421564955489619762963742486910296269448348937657825190022230395285536979623195359675776942045808140470631110158091499128200135346649620082985537344362711564080057519005743251096306484835427708573210207290350311714170120227272733712789753518518149938137523858926272427696605817210871282965418833511853162903655561399376855228489403514944860828637887915707927573514420010843734052887608470969913000546855448184748430785774487387865078250829120267791974570852077483429939534258170184516007734615234877371550168792990346021436894596541669767212108580663812056739316242906515427524975061667877357254385022232590684606745183069452880601207928769194298997742788270246130399533142472039733230566317268968581307049719144956722689193984693272451735603404771065538192722154956908330589447815391207926191446158165862093343747166693868867703121882865900698179090880153173767790278258910859452496712370354622593484426504917370442246232675010085826079601055820033198038916554989028332656213260726975756861096109118435731960800560883291548990481138993457084122068025872322052520434510021372230314969305409218313649309826196058066097923229150359777127787087147989450046067342206912442654616571342106449352377426044748075662045503771070099548000183150728087976749059767337229170003337473563912365505913520953899496713618042469132641360687312737299809041329973703732355480349123642894295549410977243432412461101174416653924281340797788772276798853215785962748796562796713149776929689576928363726045485277542738060149170504079005550400774951377074379288243154156938475705236037872263416215000161529771283359264142831129015114489193293424365687094824560607154227474817953140050467320719131338790122814584713465290400853752033607001220211074163420688643203196949190936900778491252269223316784327095530333426754689705319732971178981065950695471092738003145818857672066678580072728794707191857058138305915220276769161276631969821784104619382809114788062813068998685324639997359681090014111383627327687715701449832905337078757507668649162324346941520148472755829737573799319599052645208345469035670204551595665848013153191659453855120247337228598875218233576580736028486768548080854775571575979355246162419602235293174508624342361885999355751235176769665074752014244572246801587402824050399360182027610497280566600528562032267866151671678117196032857799340703534645224955545902013831624863004691744641553921500126948583399581866067077138186487927236404971590533525142204051154831389454599936671843376215630348810556898435047348168847491024104973138329088065122617005384411297270748491925638678286090540373983069379278970185643424075187601984084438684033548291808780465457345042788629566951465063690057132916217509734419807586743118090493162264520741141411601886035561900619617364494914554935243653349523136373133825042658946812681704437634931366296785744274255167554241987338268039557095285199678009779958205067930618621315176652637872367467758529151603705755492074146856478301773754368045022516277754430502154334944478354776296360347376521173159426692761096627910122935971207228182569919267961146429127218095725699542924139540145018585525875411362714794853713072718597479848009089311989217727194135613869974561543695347466460031143110226987350330580634600205436142802524433523938441395669229504888692603979204108071300856684328688574525244166917880570883776138992663629071982748280710167612349802933902417495859501691770501158323010410685621565715069845866919098400913242113282353563360601234921003753145424241328718903308858769171551635409651068681800403679228798480130073814295511331133593683966636335277079131706253429926461821298792193520728505893117659579994749121319944146847300474691684594696482224955742854712248390377561419440019983872028847631798407238306642963008559959963130890824145291249427005576911615461462179131301966473793109700117295095331676288751656647914489264842168054137560586631587008137216154036522556982866551605286505212612865071617162941602294473491238881080789828658777583423116984085829059579174956140833340211964431614106027952424396179836006212780121756930992934665567531737238289019029711273200988444171151987594405757644643595110562586789877041217795963186403574582925760903919080580973280789814364271675485064855731775382416394169859591619454124274069105741330973449403649447759547649458025658319213771379316702654763048088786464173037956460942109715265284237360067256986584698829112637122577993606661108737855145515600754625675264914186531895610803666919504541890317530219355397372240004582829949245760442893453314218666147887925764863154873103335480012010454679616808056097142008477639575200113446872401794973358465881174977438185342717758035349399633718906070713008951151777984512079041863675445353856660357862983543206653969564725810473860125600021771760925832781908294164613582420533247384515345111214140572299766534773022026354613402255751353901523142475859771730022511356248891222520205105425286520238255079180851874933201231486740693198195151379463767980426816635458684730635619664239329312808231834105490471983276095544823270816802912182877009560346871833005822361798353053498734653787106161826354638717358092639716645025914437612655463321218844881975525529741112861999527827384600661494333766389053175680971423189001730904148537007897327923777569129603046271363775003763689567088939260996947811876498052538055691676339445703561751590545017306110863929138349100950280017252993343787388878093729382262463219133220798414392856243135421439001101747059033493072552748352385138155567016228064663124536254684029943894458010661999270601586469218165706628900621360947184415622843312041618923314487487874440287309816586560735067530036758198819275310772842529210921567695071511714208604434374022211651646776482789652854884629932122860410098321200946482493191418593536421716834783751266987269267469504364243836666252646765966354650250585447518516318279178172939244803389043809343507542331031175014862566928945839080642561946426151870592911132628367865070022307437660113437093440549330000710964385278616472610675234948471076643065081598049143784028517541055806754118763523316975051127175398850340395195035106858248828918588525115350662070220903318474874443274665504725986619925490802445458943892156585291851276524605206799227808103112075585667555027776823102408507481740622799387321561104608330498921311488442020071274411110132694607949200351764015816584120310920723250010025140843405811679950111369124065663409203830056859015791401937925803037381100988881783394254428781930845747401408258669299467741556719618078012935821543637141412893869899635871825715419132123300466487700525167016633067575651843819733775895713651579446873946160519932798954687318396593246090802306460975661902164456381253239926828785975808403348765945192054593318667696173821497776772485540468428448389961828045775542467098014443393079648438289559688689255602524105348266374415027198004057819036056601480758198200759396410622707860982709068889123134272802029779180858231861402550416725332419428030684823998332688294814746261499968435177976689693111540615727058263257531504076103148239612831561590727996957339127650230359881413672209357556818616475603853481650886423413820029828975353833823927611170632783170738698469361750912399032555199587425417308109914958999333549591523731612250971496847374283594575183632004033682167962516819998587362007871811474543186986567219837329943520470142388485642107742840565040694943282979515148326632176259793305851676073928265653195790100764581209268381690504016921275149815132641583040139942895283129993390910594118498755242065364841022346659491152873981389997726784648738194785113769879480062579431908291317003276233867548130012356206716105998641816946407461659765662347090435576372615146425550304039128919495507514328711860549717329970298397250588331085357809019301812343531125618945666172884053452825204857221158154228928456488741701498854480894937639214686259172776568422330929776151192149105398290206523455878988278949504118026647624871715442833810742129011188585848612035802786518709456834639174075648173798871315289731512303107326930729041217568407644167055305108396709251653491261503852364834005163771585866901479455818017613212233689688316790170272608210879891016199456529296260535662868764157466764048069212539025846582061256098160479563808995977606879373063929578157368233343946581741357740688627578492365189392337678517880031896798990622334036538653791788897552710318192656966678963429111992881384815535540306566620168275061275332716169091015934670321614707118590493150137656919195005948525068625035582868666142923007765822659183641391801552783633962301738605257578180585450193750510184505119333991315857996425844615554380594503928389917878927046123777208388758454582519274634003427543743309353933409894995314256472559899169235286385192450749067669319421989878325470890470416227149965451716928555873819724686448311375448636680219299132605991894006855343036539445691460932905730702255388664300695686420202566942039944109564756412641998923428377955889492662223659750281519989408946650501693018748101757173455452296552116251968935368751066413531723514695771790098732935436997611238113097821804447084330422047883082827738615865490769613931213324531567222014849887346527366003470318433921743610474901272642543657254204411199569681808876352445905443773508086671107936279497457674325205154941666788992244955284439799684409598240206613202188671870408396562753953499559992758746770175037241510495316648847592002399105063222087966295593356131265028478770719513166709315646129549703099210015327418865084522917417862956246294523706595262338238228519036801985200087567312762849044499528879817644428739411116658756105096620841615971872670015390486109577856599486923282033295780536905819295717976425857962190537080590864365172321631460312270696670297691031481914735449587630143649861246805005999967315385873818808514218930002814525876231281686335593522945028662490676535421111303098889486759802416422120116008751287804579559399886072011076752685177393982654175669048976162531116667615020251046145165210321533717431964602700595576469915424813951165309153784954652996263487976240644630463032975981504850348489331695633692748239436608255496906490035874057081437712171389854590179071694161342215373758480900798495407430757276158605694908677134004201429274885976410530675854760790397428758313872253274378104227619541139098017869294584189027711923799294185227975666086892398777420650672163952634690939922684449122739062417492252274366904147290230195264422906355948483090981934441098310935965081088601566569811324311640555735701393379721073900307110620996319944241923731598568720810455865644795688558899192449192539435857334397516627035839781694614450108138585399808985959081012943608734079030071429095440359135591804989101676418293591228940919801868384173046783482957201796169617681093866600198662709314495143595110077682240294708475281450979828403730368898429296371560455659690800804502211046321122158448328631050445126399722657951405425427712814693480509111981172971113113367880383466407983655054190269530001087943015877776357738417260950901438234953900920484262405041679198702684092341763901706025640886491368677093637694079196285919289212601890542232342259742423198452746956264540913727300721987882682703137328058076293351595400126768280619633721177964087336688224642901907022252389916595685329533649436700991173755690459573826964905110731348186156222576422016868508884627897116873933099165222970578808120839602913713249438928934501227780637558658548594488586197663418736147223197395457115850396521055739220748949551429201662689584140487374623381542796809242720329137740412195425081948684918504027657332120474330905122666614007589749527208086429789360556167408472798340482677246768674820865436340021403276047016686266249735712819097691477116958717249010529307570250961545714443806638854733275872630471167138892023068949435374809294385393889531706924298082975656632168408413859210015592667530679259780596376959372015407599164133843909569099614438340786082830859688294251150136079079352965152869492216179685028260123450536038830407195314440207425237020504612393766288025761582264728532396446373558342130612400945106857525498706562495368018245310917819332716846101161900965588081254344854033254808989867666825405183025677446547081096284654478777289213096717260214354978292180953452402196448847509674743156366884594438453781501636153219127954880925305912181520343829971099580641956457043259846694000909510745358134523062885893263288595110230613390266964063801377288531723920929461486538451638215608177215488411097576694333500310364812494531829835662013789841753476301221208682096604550371084583052112604534647776816423407093142310818488143625857390289025263450539132086098041486282891021137390680227172857242303023204340742504747689110519076521649800707043138382014054119205355261136412830807298689264174596668317963837444247572106086332095222019885845887073552335117165485995144242053152633903911565521324226118539982157358334856046931550954062788441978561511245684482839126936117065907913714438135664079005676611305604727266438010660568650083078987036521435020029652951477471949924980184072573089251565654126398575612192236756332309713210208179417298609168379576535583034608410737422269488175153767768288937768688637501191991000903180232215687490017289255499651739647846906244964058742074729479466603586521261264562552748862657095639097642960494773580434993949002738618789054875831970094497645372830365314480283431622735568334039073656655718108777842612152299060018601643224817053816545397004114273539442775136028030808258474321365330810276921716375265373778445650954301059033952688247652164341056866305058612112631653271921920205545214573081646338507379732236331173259114549888107752406888596044693055501062648369426748471227291100638978963797529080642585407366603131934045860855352113120033066275173481648292670650153015872690194787213743843819137683267865197970094301959701585029218764165006111852385936405848407232155151741494441079896223949632511384837072439874529680107482286104505791389600726758788905968595503367026423418376828467887835175261912070845317756367871867139478438239147884103407977756185827407001879570879049830309338380772474887495901335376436824394206017393820386238698460741740436908000552778290596210523642481467393582325200553127046093120732457050780370624215351329357556484156566053312757429265544673024879847559625202367447831895034003912156158596586368073182869994593041186152477196791981742049438550536065432688350250462060199171163796913779745719290862510535219293109926413573407894284451983150784681402167712496022008228092763901795718476524590290428026857214825870118112229381487290233461358807029686136888650402050864745054485870703743842464106036790982536815823203291518685024847478207467843745904402794601857464006869737409137398993887273208711061278985712547578466914850208858001026078100262768568608040554374246151719932595673208222352813988046380560742688564350459721194033806729793713171488901021454191537408353580906837374855110080629925973482104349380733944318954917431726705264143427670887634593865265341987947619537380629793931569602377094513227933490932384784426149509492298903787065629448908786039634126803156272602291481873720582372678674917807733686974233343431798316116569341671952331778366304872182713314808896628228504374449284542437552903675632678464885547499657512727873892032037703580965687617868975122984072054784562301091090205449676481879995443247389667322875781691349344835704565074345688930264521701074791107591904690252287151919776477405906660216552669534964010056858353610942021982797815368123597347185075184708773592122582093632933293925361929058359092185766969277329227996640747017414141891618518539686493115414839217986083146286134701898656658212638384394948066875548594656544034706699647739257902493059426819161763323030348475867501924777775454787034468107301965768379186993071691446380374549829124029984576102043434197047288215550357694669437552062608384718084056313425199422789749965110546958944440830394567457753717017696485840711973265340687021206490332204377977050217362703121478617352012127644898218740777304290203135765770905719234033614200876207851538621107643430662251011942716034156162366797747706837654338976827099262339282050141962323691082057648909032898054091257006987767761420392566914254918016007836028565255789863485212189900676341595022375348168721013615519560268498549695508914880457600761749206759015850212753200183435656545107399195631567363096489502637177299696939892431154920141801277441191081349676991600803704351987515451528220486477296535654646523044397600374881564478367609357039413084912972228073574613726954183895545756797666782960795619199865002483473815850876316383981889631723321029565794606702201335558977011202007954754274051436871762843656463977822232014533275206851959724096832356721902042821822160247634794468488783910419775719941425468853682657289701985482789497446260561251527637965127187955735507446011469776430924733693893068757069650177996215357859771573529021138372194646795495481593035170061357033463739214030506391223579818511991995172415756556157993312638835754747323501781530711297901997949137398786867170430973425947843294813999062683318738098902297648979881982586721733669195909065036671069649945489079539573655810611299968488266473377223467099207654927819471716162602363623557734462780321868484671239087813472383885545963643253532510094863938930623582410515502625978298017215070957427730699708649216985865011461401064077733090772034485355647739992930111147474649868387802491927225359492452947866270735189496359842495033248172816992918952908806028119097531386104423359848774424748411779258256801731936149301241333894713140676696367646842776897890871941327683487985879071713924563714561276416986149797622620473919850944837291060188197367755624836328434915297564732201156502884489386217988473110419930611209711905524422201496906142646562575761300481620206417038562099579081096161451388481265162952747053774445469424624121721687363643542675203018305612080011053595546831169311191119585511244730334492590824236616202270394245145407199287374825653198761694844704814373258179571707765197909659560337594417769158374425656148026309338988983584042029822910272623543762943291021173586636370342676098593187108711835138982246909627821099415740032241119846077441832555822288032110986880559327535129040900172748584880815214188376505579316776436011743660753413807237699667111197623494148965021691511284760950541831190345747592086354117258899522111605636835468663048824176522723019226273031498359118147263813821482056757224489103225956499016620695550446361628538695197477601638279281945422073734150086775199448659247967647035154965958634214891711727018919618273935534397664355733090025861557926986962157195793009028234963453689638173558078751028247378808541027013962634782081893088217251530236488611515292386278199292883998073517878002357908707695166972557977062484001917187835955631800906746050796410430787313765374868758919106042833812610363012054316642807546041825960726685700961898158950619741727804288658637320444342919366580328010038886834911308440412848040361566604278052449059861966447464904649647307551665921008628688301028687204205851334801173299913637841981405671895552018347218836903922641812599018006006812737174623418485655141627390061358716948317050166236410186934195973853353765651185505309742053586384957586601882659251392108404718414340162140844124464025373010099784478413227198793796999966980108081072900450698350744776987533691285480118844607890685483936214250357382159424000440936206679779156825456054875018529986730974796052604196959217207186348279170265335180248183175022392953790554524642488648220135486300417097226979355495750858751346986606154440289748163328988036620807837340307143848263749619626996299546165238651902863844677540489764089499404880889476046901828571680341618098857746989084014294220174411266626302173508561274023859626779609931010306398328479952865404447126202798725065590882788859233624530681735355808704534492529441277210696423691440602922367917190211062530085779944722063747617589591313050908913298488722751796514755488244670381973279093735658878386768524875531729542675064551150536716014738613829197706791946060474959252653168581281597814675779518943414278351737563576613520878052873500513153174120861354357745041141300579326127022120695174644514156090646717649799968005202077371335826118509303637444875756754683826336330211678456743080161023063315807116404022299010126281365110786329378547157337042854787966314974956360043095574245532396207547819756348064207105204308692604585729567330591531344281548425446866637951359924004318062558566426631813010254270432731471468254790545922276933395283713602621953552805292657512131721929188074042372834062203223315072074400621811338761097318971422416540478622081308924320145871930830867795595791234151703858626374686042599939517723052209641426799905805952927483330016447288959301373873563219390112331017469816228971130278643395928597643513832978525477803780524376817572587016003039910801647295548897051388263262759343826818388365689288504453512757060747285308810013200860148308509533948922282124468617945068832647818193620511356059066149758967464535452336276883647658208805783683746841788245892985515519147536889557343429521655378303307936882537585363057845266936373899957082512120352611544573282839365453677880813998955257198818500659070970920041044884079309383631663869153844894621815592445611308202731096634470533029696582509307499611195349768374521510284213834213625394152746517091829695363986129343514994166448554817162028960961602150424276368662638827439973586023274333856208996362612761896678435288984354408618249855766445624471800520376996617340297152828278150413980879960830593662456221100012356360053529698664883683312745214127585224530841642185489725454126473116836876477534584978794502100195456998450920979324396097272588902426377957552773207811338373421108647614623519984358408954040601641017956889390601395875218431871341014961480014506551101921427741158296218335949300329117882499222015788046692995490624047870381748126530994598999361513761886077347730946055822375666292263775848163117153960976514996923911713572364912203457260461494358340335694474553762197796636808142063995333617526990592062460314104685098689293989261829814860762498638537334392390694814194332117153046613100782538198565223651327934946932190775165313551746949003446331845014679159763141548233626281646628079768326873458814927986377689422728229894652919618107592571450871132653374963602968863814190596474801209962514868754076532157098194580688232338519139277089655468672084729103466674818669386001265109435456806310011662986840011770210928147059069670851330180807393939162599802521964182319271893946740988250175462202863072964749726169593552873518561958903761459734906098924473792495534476957288096284821084714916038500770982967212587954462934368606582882909728298244365818688997408199893384741292414178425597229890696657041630013645660080449759252192668648826782638571202338683283082985624124606563611572636110389755725943412358160676082014416896255874759920536943562893962267721751343493545053690109762052133410058383331424856069434726278437502380343205211663561602543625484711851923860147468208676324853996266871666808807560228496739552877393566145727066224693727674674234001123391526109524256436668903158148078061736318381690621313828966758853628486265027323146736822690284834808303860392249620141015777408633955674389800106680259145147940093147364173303824285848256492400375898903951982953292953314955442963541860747196677065714896098484579775026905222930776355587341862899958038735801394191488760115131853687662580710343304653673398935644766919280571523306217047044330582785717720516915120350547422341147277834890683367999000139766829695559911450989537134104634983867071062292445086671765149319547842137102116543536321351608067043457486355221772415338602229961160162641500706336093977199481672232679433582710889703221884584838497171043339046496719601437774079950143398418646522544407605248470119161141758282474119988328078257379059477742898137071864177768572690130149343705317169766750347327285949260314775659082175441780828429575401743437147574420334699280607381062858470269208328743717219766258758898257893986071158595770394286202886185039895985257724281866044592785291475566264451929379158862781361044098589651567508264741171382610756478073328397383529334574376559636336202107316049957906201772745416318167476808219822606614411196834893050348211131314989181832923584655992490180682484415388856833984046551079348539176962390723425353860375736827032722029741948336925065285249434722205751839765712940653435354620049291221049318878823993226384286156444494334696321116722267407839432626608395163747868945429810769671192334375633884079620161622964223348639883543503952321770553541382654171501736898453502227057539408276792178493530721648066836924321393472235819666263372100042449503478362047677956876498791049719755765229771653103307395859116310650355143514236534006369036992492070750927065782284235983706451833146139535189235625854071713050239734063585829709797977209792424284303568819199131999122507690820367345521285752671112461155396383502064218951931707358666919623632421077180874435847059404200422805080482270107920224706496136517895827249793057936882353676846693039161962575309558096591835990839976406877422014436454701646990640930429022972183585260745507799273589180418754846897682049984873898319525341562098025771781003891693014495023724484622733752553298342105034707702667710795522817145661114365681475881076073456170781450977490413014957089748390723934409004959731169180059475408294952291569306960315196816678037832302416425162098391341476281856941534012997266391322494472232967397884848546830938853296575599205811704777995380078973533525403491999238309379189909481490026003651215418564358835308929682086513643975088076529066930321229233035825575598216867263993520400936534619875603372234559966590177288347399302914349179313536576831764120609236317546281999123804414360191030780245855625581437718532320401906602337654573902959584744469270472894994831734812066395982511389382391003828192848507706795437670242966473502577180482867484272027737349915884841212771600418505128676180029818682375813273102859735922937304024461676741806599794641727199704541025812439209102801381372050550081968057190668471972594373251860037342292665675993167110180116577376734453270185249191895241222678634414810075436866388699395395711404590779764687752552609838135763242815498440945924440332625541632070837108495394539084360693674143664022729500840617543538504058116084468175157297317865200600713042757329536626532142945810552711483918360357817161790875952020726777614833308043182944000013872444866019451247428744420720529643250770171176261827077605724165783854834471372726433768975371572016987770526598488655505527309526383669116453398189884923368045523687074840396477543883013168058456771386267424837353601798699707526563401058691124982704514588473789013890441411555289492979052218540517116963503177400466795370375217303260038253791586118155449092879275994355382609743119572330007819255353794204052564168800486557513457139997372625555796182856624709214073773885161505036039259513314782319754163966896929624401779125716788700555664981089915642135324964476041865847003990460373239445010135690275267149736303184096157001252037670729905907251602327876415155769599136023489601291803388739814039103899010842945797209853947616962402302695662053084738526047221311073552217541662218265118761614302782122413901336371429877117125233946728106961433777512079574041717109231829403928368826029406694400304534300243195364786915479493615168406319549234934110151236936216306096837248478798531544568698603614476499664721607388591053168265308444226311746275339927463216188268558887213983986665386398450404667980243723020150391922850549025825192551037410968120052601207532315111998279777921943170354022779956442026241835489377386282252716614645728428176783498251780825751863972421221139570710603839858798800885632677620543006057741026410215004803446164827301129220976912184130293479528953859151399324258547700767429073745470129587733000120291548511299764853410827033095332814609266965505919953806501836499635368562285430849435505203537199043480458040996879820285717940773914798001102530866671436346540395997922656845308678371093011267938748757306770365718535584207801193630553076577032713777998657876042585141992249925467354832816045887742692348267639168537517137247721278300225284370044909714937173541490858611330929182869206959888040056003492074242052185516615716221504213774117185379530824853600151009046662322510539406854281040184346860497761670499024590307238644711895513808995070104892443890790328829006094804346369207998195303719993008858356949596216286080338341580323859322179217620545455902546900351858650849194093600011611618251856006689222627047347178667501214177582836062361894458755220883014978986523941335002207156075793921160531104043839537314663730654475676177301972885528766843258921168506093045189456289486067154739641498949484380499872131722965073715659975276029862632008551950464131185564258505047497706856147796537415000956583571545889630957180418337182909045480992868458633396698567792896934775655816966992764134554220775593753513832047223233386290777700077091761337356608003491640280098848236071173325254800160181439550572831190816073183287576934079771919726010760814724906214583507488845703940147180794438779802051780130463125346601759545867998500664990190242014339023990365643880188027943854061580503941502812421631689522955889448777429234332772684671036637159618994836962421341331056878479905891707960946088345944759584878228050056708810766078106954227719593624622145921028897827360752435095863916565199482455996520549762250379568216710046719276672211265728167422968285568136793828931716446623181157946395630865917362248509890006167569325606516953924355484435165964662633318977255081032651391897685654565764806190498763841067490060966642604973946825956768721267261166839903618936083031754498420538597095496530846310465460105984948968867763516923219514418363465542906558466870500581415641290075584152560231546600933998568471479265130286850060455920547016158272335170657202911732382303014907519192346856332135697400721625116999633810370576950969760022151204386947884807752176947917839699827407326686518487347149081557031475902589443519602840262267561071726045177600919624066652030535029402987748054213790101572505847401562493227437639215836107946030969260693269441150543119911026067191366780923858671849851382017066059157865246384693803649201634364351806093987227070432143696269656526056794110888523107819276730964280643900652295487197235667380400469988716327405820770554525776443590301364845031828220015680085249544065678849425832482548272395894886761004064166661147870275462631838078633024359076827560079348825032610080027681294195727337803125975265390571919898430264972625062480107537836624157071307948181363319927507906080164197868730343323770393967402593907891142539428441375572549766953934552762781084782418560737833974755154706653315758363551808349765254145091862579653887346383510749839526554735200961662862990049636959891649518237573430398390046022310015831142356691072632020201468430797447236385167122501505470362947791285595710104846009895761056216438776805818782405668202369991975435745834775000624311578385792890773754693763482131783154919153626795055150078484354531176343074712325342093903687850291343753674614738130055633302492299047519564684361967806125868450500991124183797373883075756621323824493121362668975215395170206634263683968253480179672519588600341524234425331623836981896337606195827162531454813180998938269296898622449849602684363645723057015101294033875050144174837767618708329041854368666633888561054914956918604238834284707938760562981851931304811018244603794613075743227393707238701703082392633590228835157130298399325241199558369803392299259648503317177247126899189951558520021229371176493468633938947115874401557249554195975209810272249293777078556845435402938615188220389636772991081959052953984821904146127709998673781417595343938471907055051593816252357791286835052162955179488883085698991261539988832728430550143898124994608874793050694123488595726437758126374933410905416929856666835860520738613882913221392788071542276791760381455692622523607816826791010981288149080117450549460968109119103925082129399927383579959541464139400175122074891318199806118686916919626253842245849193469214310648389237088811132477550605541215914552643088488933351421573072454589729673839377742024020941931421460011416985729134757457476496752104234132361215125771046912546922203163150323271513872904963468451229283557087610105758052181334820159953993476300352338157617275486320184935802121761435920327662479924825074849625258934332312098281744149952638961786596549942261606770533573563250829794111913178805371637065378267497383512237941226010001361506181359479248857438885903568212254294103010139434764417258964093190730683483007742406223271011189597178055358050520265167958987145101365338968420716766206721069894940729784852226446095469839259793790626465664150626492913071065981004830549189543357266689539780606120157387434546078450024893105010314215364986595520610890883293139754257831178316011003804841322529087515679009523910996615556970580057668217707390300326637153718930125815669262583708059667304349457510527992632714788358497055619852626015151973184498111208768376893749580607811548637576882889784614645508159348435294440558416735242667633898173086308396553526192586067816092844316064980823529441475969336933728451956100144310241290229351324412071259614198308057105816963620899840060676156427658809735234575153898079393165409107402215619828983310499914918521912951819030605494652970724307332516079477649622079801008727419070402594379785715195097885531565807664570345256181204401880328869987869691806101836128141575026127698830943855772470628087945379932624310679147264066323978216888453206430577594508342431653013665279283473674224222122423582168862856056180487309985175953215218862608109516769308016367368098275337318393531733291888950948999208301502858232249435093345017221162877518852527154571833654496370517919736763122778288047144370737924607826179661994975027428289400791967398663123373446008109974375839374268622452258783973587761486391236793117193832929914355123105583325204956392999569158117711375048802922712449643900017362101554734306276427667599793161570718727554462825957024036477970542633522221631373335080024150834695957870759210027810903473554245400452943069118109644957279145742300757573938342942895286641046401998452817050231825621689070408718051867149124425452996545607198904139187313133636460409369870544474507418181079796408882588375003409554547036207818110328049003939073028218350677526647324893460894462417142889302725975897874162633309829694849380330618265254266015543482211305561357974456559625810122369529435819630616238061611279075010233496989241488315134651025450215117381681598195033357020652418284248321881425026307169817002162072450260671450376808518388594256458118463393991311169044818759957297773443113425056795762272470794271697897665090115136222389817158497745100862908506041625711408341992946899240639098182598414136440490371057947058571870489541981338055493095103168129224663070843242873654854327322713238337626650358097964048786499939140725630119976902158483750596178828214913207967586656288665833113445768030159598412747442813521182171924127254542066006614743159602441771687011036646204204592878525266243060418687737656704919957276714469272947779415448212754391929218092011403021117503511327683529668390330022484893475222043720680616981985383409008962206812578481177665179784542972077054812998752323534655079056934640175890126368982823847288277105011413670411170367951991493052941384291325020920410237204174857081096113561414477162580187280618522606534414720361377901227871034132775293646692663597120444055821876831411817923398110405751954734766073322797351555962642582122289646691073565248161360811720127079022313560679622450859473660509761037311494826824937551223366235626263575113427508710574589252410628046739289983040603707501203696491750776915744393095666241400182433764701815545380012331872650517346243968401397522064458649770567386121093594978388235136006101165929243970189971981808345049084887924671443163356514661100806489512180098361855279382271584448149376916834117976154605636441295747541670566497964171273050494226847175501240641047263965877085202375797381941754859193769934773305209792589006626418855714329370495736342060036546536789173839575895700906074921928379818071913947681756454544127461974739361882811563050464189677493855506376272360425838066542227515700556222561574945124907682225270733055211321904658901030878277935744673671800231180400933064344157124076708890708881581570982596808234210098483048697381400899300571208185769089464204037396717347285216683413700799076580821730883770004370730325901284087557758541560144639922010675435373706318572074660195299572660321062986849812326238132104559814461552460618627223233052986872031981264167460190352081341838930997327219110265877264849534599343756495604827675154303609861679882792834469406127685484624139381051547211286907099354106938310521696202136941479781293055303648262863914192987344459311381506766735003836947623481154159620057165786101096338118168996650186971398926366593449180236959927823408616758876653592968341575248379827305679314655522476168989160408738966737606912030160353074034838618926570033472403553057724626246459931661831690869307941118720521318693915924935310163575322586246481343740266185359114563945681491158442966585336067815838163137250065041699435611915665784683900075742763282869760528764913276172264949140035718045876864515495594585613218637787240133044650165136358308457075171989998351002683220086510274392388609134342101294121621538198225589405201158261042388079039611586188710097304017812922361216600236307843181642362492777557784714019532119626777254940507381201315769237658942650767706877130090978078029286446538433983169280221709366779337421920312522589621932374307148897654957437192635547327505644088839993377449586104664607241030762192949685775997189966846065290282683569865300417479304105644251918604641990205273997195791999419563203973719343998003651091804699342678713216812724029435577483707684647131429077417699218235555893723276029568105544279024417365499472546742222978293351182717265845043548849935906745231036472693590730034688690511860939058360792646381931088713760919713539426436244318592717098307797566746331078799639592656483771900889208737906665300590293447172036194391706057816795003516036171190069563416719805227180767491123059433026962582057855508682323521171902489422335528756815825237104079008111149185998086756859109159084046289671684650139437629150348002441856303689945827946253125451706920539704943056184526911119835154448456889673423937865769724629963104278557084636247269288115306186663128053562167632810644844084977248964837814277711386576976635188109773744662915778176495197997753464575831324925599517032889924211099938632154585061427854629835282683693936425783268595185502028284048269708074735696797379310274366054376555769759046308196200042209510409924077460278748978262755223391868130832958754123090449183724350663474095209085300132794694157152526302713666632379252938561335052306830604345030385221274844891073149078639912036508421183759931753134671363859957922787395265440062687555208596759330373674352485335014720032093846683986832060451536555960081241210782536268778775309924585204258329256954579233187042874839025597373190104273055625762302218409176201133770811111173799674166436051468556068560546995604201904515403148135040386468753655415769951525760190902710018341165743393367222919732225629866560430453200909897252685022241163804202397301922273514670995348694669501261810372197163737069209855091431334707743629262100971635330358366477036817928270119950652688024662676622542972702526614602877010151797915375476699084463203031757453313477076339316575945122409822299077390041613163157948362938942982345419319039003698608300158398854803494538574273904934481311719811155058500472181463950355648768703329091805438148444148764429775582899723538201052586953351679011109847953168889872241716546784483724978193509708685982434416398183937323670731109917853479735942023896334592166135667903596266131123846690820245951160735715143464167702500141946625601006579145131589984281946124129856586780213458287196871469487325127620925967747093914849617606482143500503803196157972934625036542770610822010378865175144036658659300482599558638243823290695842327650396199819357032127960711609741366595266043571604826361848798571695143328208036823361867586725935533685779025421186049226173389019021566031962130510209688222392170328373895898950033517298716210857908496584126489753496858434236594681952233526029599910540465603477279674204243440243995307404983644185962622610368684961623589203950347709042204596831767987040476409322454911831287303584226679911173590977671784766231177915948216391281866151729236893002767424206317737796840921500794241477153232250471288345044429198341945914169081664569133497515924987339950058614139084524833913579899130610067631874481648260046528237275899457923381873005003490381055928154217721537253152248063011860573071804159029818397079402911457315395502627729831341409487818998749978316903192049508728571460744839072455552930317932400603448259546531653951872377513147638471698401715213533385559443310852525545230910281586923291445878658185860540214227936270189527646470502609430907773311182986069280375009778501323435935594754846313794094366748077806114755851180594531950510136679169176348092745252030085924381513502064500793877733561246270150339269437534479274944455597755648452521509130846313560811221272774960973974352921924076978630258855238643889133914532722134979347921240922354501202784830007150642543452110005676306029433694847699056728007781783827793841760738215036644075516758291757304391843863276761335596357931294209499997230733212110925178856788864750647313380360551105158239305539009442906702685469655350397410324302467313203298757198937233358847437453242966365991581291994769321998557165994243720974863415917577024957227519725105630916533641005235345866607873595284883028772640218716010395765349332786739282962493870578775645597365172156999842685657296723976052497881479799442706675177873246827525529761505310990609653906845079244183077880084934428446034247470298519694157625801364406274423456007193092939823210931521760422178610938520270285864066022336371179746362535686176623462292165099303325673227130131640816662704318477365416669913228796440901370679607449527208951800198609893595987907346654341555774840921050460426043362023701846616159098613957090793964043286748949567995238842950814753818018470216564419052933862177723422737740785796690015462610415925804736726353788211395718051920826445769158587020987012652805739536411008398034190741236985703540029072094027158488983132165746827526758417188050943628240746938502304667735774487387705420542215228282909543719451495712594563967795328897141953119683447184579123343665813989436631500880127211347791469074588737783856461471341536422448892599989161084266300053342993180034487208244629455868271106009815443435749084728894089368634227264556384448032015762471051973524100164394659963558289412127829688565479950227714661521683409956026033842994505105633495087437618233132407631527672148502693305239883585427405706773380480203388451585003135401589908718581203646251700566530591951693787751364920285338616415379991960220439165278987246336812599859865531630642968901746738925187892086405171363778278567088480782946092083243095169756929857659652103707773311627322120359424914642976059722792498705587414418934665576525549865675886985011108773788104318227316062004967320180841345598305116941865406326198506971300669969386445832385501794796218577758838167697374513858391194483407639482648016015597992682680426221474504901780806821574152206310768301160908574578889232635420019296820031148882453023818069672564473614808936165434645473750752226250538757220711718444074920728694788653674068338925426806700373265366869591152373217733332604688648666936470227766822842430018399312301563931164379464785242756003544459418618869518123054662839341839332844712418580589699569334116039906555479225397646994431619010040826150809279673610843825305294023075932773595807400511722487478829227216848911118358981194408485592906489429388638345445334175677174197242432303421649371506652939281034095457089488330494977639398736731876751924178065305418125615944046447365995945374235411349847188521436186041540578241069006889602904155509996273390837331732919492189019468503991277577873944132150677013042559529707484431971751753405259873236681958092487238643585419672962165864915026668167638398566012885056141507938933210097491137727956333789606524212542502607103971459057016992579243368287696995794970902979397028852433210024497570503070190073928130049114589056496316879229492264954073243005131163574546886523472745314482520336942346597291956457615474013584946536125513282841300213036207890888340251352395575817071412192949367084297236954926877971144059865149132591318730822961740883450488031921794834742026146546542211000661353102184876500645744829188321157503376089631325977836434942974985887862000864248699664052807781626910418601950691825231875259496775345825786173422343631102066601577787784558589166667184570305451466010353616357562392822365542600186713180856820275145219536194411391262279327550508574653905051124443474816375674322834769121911574475566839710233387492258151600462756761663327978470168456156358224470209280678252935156010593624471187369981279324738660688450010470482591577550287128037890897141424214769354214846293939584334837817283760774022072467542324756152767408489043272181067066521677365719394344766785980815040307065834756395792993177879117920184614681883628765743235170533962613467961448656486230721791272101993136128914060833188924299999184819890177734511320724647788948815262956907105839590601569446097966628109072305482219559891278965755775325616688058115516859517172732550186355797991731526322096666215307339173795353182414321296658269552596153846709847050519621627995565552976737779189374438923268219701009279028839289964163516462864971346064015614480411001589593005328077637396806421663611951093383011519792183772284958696897271254986043840592522518022972459414168434997045698563742775331448072558991648767059719111393465201856273150725336236493981956274018697540366810328710565679913196978898088742460824674459222139320989536886573823238037796729339759395259733755647309608315714623509380469683577871375811717558779697824699604283600896024786991852047409336553002466707569359848311798543757764778628917148435522692179770088148582225256006515973040071353021635125582907201882652983527757616480883413629900692858375086023688754133427585247230101185371095805826709194769183415510115624496120944997361845316732074002545456149177077854261932997684095201813741940832511785890907414483766055506211790480141368439078576395990146440540628043552780982464303375233316441754071096808811894085134190922747562237904179853599079263614293871440967518847434611343735358108043729702061695611271642841538425319263972861942719941757008997398291399930315325653247930419101910343461884168416932301607485926585745060922059556412198770925190039368443868817337897525270148504591022414424360919748108196489768075425468411538365016993036457338041023270179913063146436787349483642323853490954576750105059174948933858075745756678623879438212129086720673057879383750510775820140531350382106305910685093117713900067650448616980287140185635425384718753644349833622765605158491877537046939513890376400980069847847247182683376192933164844405666553474379606749626497597533874448656087199932356771470208767266783537022255099054767975252858575802091560594491997121343927830789570659164484586859629500962283557464436830616239438026931401274451168387974403366872396482531642459567012994240791855923670143680811162251443359048286306134529550928433810849100045602413974187059914163208982344788495768691152301711955274715077161075163748549912235543135625870648254415718925836787195948737444871679488549438155999116778600561379285632879720587988290355745164637847929885728678150487690536223081319496194879266879311506797235944001679735511539493933171321617567627230773583663185565544578983542199336704639946363002108133739914970560357206413711852278446229807078962351339195598424178086902954771902926839287529703002903498204337880434271924368105260947668908877088617497682432715319209075160095093596095349786811034044385576255576688782653680094168714868424734840833122270571577181068182763520182900765783820512918866975108493929972752993347045469545733960285472674650701774474144340654623337772707495985964880407336863652762647702847532474735402973793091366743243967742491175801297440317154638313219731660797394510452280306773718078634250046406307376454422786965250491740220476502282811934132763985369600879416351058505081059237364737518298800086543700356390846518337223711513901549041109717577718850584416854838327587878023063657267245585707326899709044275376718983002746828901881054031640531688389618456579306474415186457333696468646358676963974826896497665370441337040909254575139583514947757964608273751595216392082773190468043436686435661271668586616568725723585888119801681520109958239161019616120159388002768273680621541910769693962358298357620295733873627969144850243250008016890356240801910594281320286397072725434263575959393300314975414438173523830465981169577722342151990530518660140661836936363124643230931699413884623145904781977591015726217676924882501430202304350805780464349857056146648542446099139366963996018414609565776216305390637639144311266812737365440807025393179315605143630697938127890032649016540396643846016797162419051029180805016249682022361988686666741507693867576142445345572457428155762655326520464713947866414253332313284648578276389763881217253594488095536944667902669397499651806340531596868010822516729513503326224800382819377419039411940467998521974718887177806751732049261759143182276938833418954389712562997089221426459310124248477975441436971536840703113213530367640456240735837132438275528909260788929348357613505254591166499876469533159997811087252342616051213244073516824703104970090498598531871938620235312158908883623356664813431170727628782732321067321417760817761224445877713352404184698708002504996143340498628652836831638217039060642358718008233336861687653013182204303180783192367692796707162509678187383845394122950943564510106281354668296671003749350609011722959643080812836822928263616890715753800849241062255752989186538297481176470742320987746464362233613753134166461629033319448993138091934200368110371540841350559651765137469153356837613404008807933296295962451210809198529150695738281153461843063922004206908560061267603311448205979139821169317951334879945500112168452557498667697952995310446429888762424215182199744819941214100622143848222756788448287721991478460978638890814571413175311380921268612479218585141766169322912559831015875845368442503234762365252604372849234974164254698310738694210842241873625398032388437923300621595528563071610285951395908334226343664783995812983322909731220733556226017609435351775642109098320662045755521639336502797249086268633739480660189887316451537877825653445731138129927376258001153334311956708888789670029471269219518810814286525940578501830729038118786258768202002063378951766693824315747467556397228965617855352410427865326414444747206553031054407538321265842332943337043908402488998803379613447130957106583574497975936245768822739887334574878300722000872317233452252781006535232679157805793856931416714775543737567430868912551549873711213669897137957490727090844404043401179186499490836057111134187605047069135276396628874375681532536749306876788651530262386435934909003299392385771310346647973472893974147045244928708847032801838208942036983066791784495201535054093791417536077306021842692534939804054778650900699322424662137001461729516413271010096693673170816281546236788754607342865023302304297803118724595036537432630983324730189048875791470059672076604671015737985836109555163988703931449153755785586231417554046464490230052071945550937276379904437979444000800382122597154586474782881521044628667363533100967220301718627838260544756268794916744635624501688823578855885481256933072771375950351777287365681430152978081715890944986170241809065784955846580006682792175425776006658685582475138659669274446759409152249583206197382440611900023611134020511614202661239004615594649747136289239936500809294776092251583096257522895272645669655395597561332954658955094812018737340183074859042071807989415748164991412554574656060208334295593184210898519913356803215097553738674728854436392149654682912345840692665319935863973071285674336345100669719847807262330977434240727811167297207228811278760458706558486508368876302519599400564047564105847782740748636997162957438978241904358624534027175856695589354170062897408894785991493575487909615078753531313496497859544759674856164446793426464112736632360437029405371905744998883680693962898243037608674650239343262190929178223668908037711074321756688714139761278595238698944993517466544591393418002311769806177012399536010231770728685356039968378088136316093547948895167818014605468141932644052574320383077575460799487304217309867144512892450218484944931532939863159963247592801741290528585783202287838456561945426149148608674539264560721613816572125567844023318881607536237369326043001035591015799011029759765610066133918920026084664363311737613342476180285833040053017058486430374682900124754715391076574657493674990493934204799300617548802867688193294252024157736033265846251735900798782573106300522094580102902432424334318342458219001832404092446055152383160037100904432112112664286170047900796740458865692274561388689587644274657269168131102747535043001411072587238127659626208248189685724232380907453202549260588286153701464554664887459754413372235957005286760120797796008427338422582963554349021997449481469674707448632024986995133024274033942937825151425889018948110538712322971754748672634705371466595258524507287892175792483638757158522204589410045563229567603177883297776304513345843168632807758202493777945037962187255724129262640776963189092585999633120508024524095907784850045650958165955421741145662502268525191631514635419967668099097277770028401936142994825280540136266662148158740153016804439986676463190666921343890805240660943012019315997795878668647896351172083923498514807665293522644886693953671649079695290911332902971803084072341525071663625119592370384243553367165930482329646907254187644768280074297693106151708910079211141393070288277182972418594355272174483366605723859059625929636169759793914332473916824449966846144979038331114373470711061321039530074885302599972127124813929633993835907102602928063565412659298975419208717279815886679878153952782398540676872050149474312900111213472003166789685954313480472636419060610037623609616379381293346518756094212250182506680792808391818808676853077099154308049712102463199727854870023032108751134165771769956216302615380890997189979740677236884621516638580884206193845010375995804817697158169147898875719951134044686971778562583007381055524668811961102745446105518683813954479500068260515075550346401577701117826675487487036128445775481701004840659504647715058006553323556645033381357378287790535851123067698395728108420924157492523077373100295229535086371862843834218119000848702627376585151599633496318209884636328437536860605681862558205438537650351079843245730336489688219201878620346821665400792867404770223634570094700910998696174105772308347024172795368118120998747546871634490856064485777454286254563730165907468053824811979834657137205529702813587800311352267216026529608203170758639603839891309945919106908890398062027737793170544177929087066678216772185016210838840320185702529934218920386812076392519013016349005062826617739275057948210130597887342993871598150115159673618381677745349734686851965671687605848278807800551420277264756852514597788849342873097017879807307551443277008461796298296875249768683330847372613317479448759328999002423651229154640680069453680346408414678992347012242240561627083948499514084497011813978437514663099288368692441988229602182056872990552197421055908123308891932147353952139614939275220981553242792956126047153504520415035359866884318113440749810951754454069989418360582963392291251721873415417619866108704195300433010928060227205115990538595987861284958667932361736825686438885398085528478053849568157765088545062309788521678163038366697732904610198779005501860342064705040656926302398803644182368242549179407115702212012329388399371250787372343073554384638969627974247155354214992973942974274638636661088927773479838349753055042630732998462167121916415348159728316043248057327465673153796313192665242912888015144432495748773558773568000420637664150802446117437210279724415490908605140796322600314236833354878089125435256038776523100840210976782816486503517816592092518434304093484665945791346824305399834464249628515227784480436309014347016169428376386283066350007373827428775156616513575927483838145306211531663401997493579104478240459128191128578194566647149238042393332423432853450962308766074742841828439116852800777192524125077160984788252205903853826405830573055698559652746531762057861282849050227332666269865114756913531090631553658938281673395991787432060337065129277406341555069987926963467905140485952791215389416856468323240544762067448312089015294856069972082754050702751300818458803470479573089475755743875171714623161653704120407522759923862516448313082279468239471032405473843370700113312255979675597701456082195031668543578658253692791376267783526961521244064990063427809995168481711526316227426140138057217480256748913726960037889074110527968287837719381358631797716812362242447406149698270335584962598710433123997213081711685145568183482048949405667914805611841721603478571014527576102853132069652581446367413251431753906559306734596346117596423467706832531218291294492588233000670150112580941041728249874869731082130909042931208381353257035768441895366716012817198920730206403936550626615282142523518018108909029319022495730133925928882087261412578856293600388828634102805540171104103513596596960676060980046742302297611899816671435050172121139138938961148396023328830040292127094662712560838597570143716592716205096090768053401797344869412570062605452284541509966134533761192049265731825042032203897463323163113562044250459712802677141932580897005458319171955443929555073044390054770131182335428346575434118816129225178356567748365130147466653600311033661536072527310326240321866938259222733893893108946824571999632412062736635297059941300089539803458592290002746189004925207173748420228425120481137523536409061553543286484311804893781156516506088361076353634752944464487910916162914628725682130003120613667107709066731228789016973741219715423968162766342819938397829452158413904491030071674741867542653751024266665446256769293318328089590848277522501283395944711810196535508252812820533103179559393774473183875804256788042161826990369401686563788267461131411603346046409233239193093457404586519609777253817011709993544116823881902852886894608686314625202795155224882118777024531611698854660670860992726559434692606755810933796678779863997528122402562255957344440611265482838713601402354040501854968061233434510825854690564417288876550463970301005423883631203679337685741909948251473527403604008882861547907162542673191348526818329435474339552349631679509748407471644352586054478797871913092426596100079858877878686910716520050802302286634555119058704049249616283038706015900767827792261676874696133735595928137180175511257319577610895245916053541609526845258557802151750787499740131886361193646922669562074524246400141649914073586966306202695922079945594763604240653314871397534440284528551892276935964560723262857876426647189686825433673221581674177373140782337768281384777954137148106497539924733357952846460339562690702983106225118808651377621832511322056333144956599786659993124815954534569853373959565886185394297211295793092381270739789027992838261576865207521962781307703417376247481438360496923601788276042624639471119600185548472994932471866188373289549799606433074064364223136185366225150788824611096240105738453249004907350845911505835653395561314307969306605683291559876126782976334254909746570394105055889328539567413643491977381671034441109911021191087317531479403909654419514720027466998628515613806052163771661235989035205431918767749031218414719673136799579462139769847227963866805160028665171868691800783844011099086272026423145612959886923779352038191639136289403685355905930605925451965303243969930339033068759377262866776810971919768369354771094617026909522983614277249146053289905436966180778873755242760955511775724782526539621564712052338602551278227916161104827147783712610369839852493797790248525288557173744469232883353528580982903445378794159431473445120365855658078119071161722110856377802146489292346087926824842047737388532987569445699335039935682240670741336459326814397741319439343544270755256424839734182503367126105092506261408506173501527801409056430422590833543456191662501295942860094697358581770714544090609447715356492812396080153648829451848646009482626681552804305878318452782701995703326983759364887762804796959793283896286505481217255366795752407574161239044219248631635523482516148973995358285608931848381385061446852975404846399275301191880298560695807935355308427380270288536299549704768306695059254253082408190501223250807668098576642030027174773735219537406717339008186667925323089694799612241722356302167635957488519305981160914255976599133259611805552916748517039440668617346332572565245800941250900758748090984409876876187442551016657105110725402040178091354508008805331361620654849025012280871678881761706475008877531000850091830483083176530796755467707531354631750784574199237303090090811639579923126047025935196362315864743163444767629838690812130375648582098282054434964118308997056456939357760585242327589511165815354439405141262504431806616268009204501039807792639978594874386924227479846806645474898452804604407602624964332884885288724151260015485646526616251174652219262964751194643723811723093225656509445829718633897782738531462343070841558476132289106103243405862205078694430390068352260955443239389406359276015166509240765836428146480307746729627679641043189846036009087773819920831221556259457713349901028227494562117357213116153945098640891811599405589531383617996572882688704399632316580994604781715651290759675147591325913621795872323045161878959504170957564410151621530506873086288398890503104779955031289348325590123810497295693244302013086838648579860259633175776947068601192616670921084500539632026239074647036909182637061292420828363446229471022065990490352842732695162730131432052321274484518066596629647999415360803665665222565914398226866727890598181716296914744477631385514087961434896122798839967952606981924085820033306044768881715968816476338176486103678194822436401392198042639707577781052354096371502345844358942679098406494021077688132037637545714449519667255954008679195695213650478639528643247339210750298748764719054270853290989644783971653677930813023031891261521892817733696417285503352448775354469188604674194894717672141151736396518302850026980485346863887015122681808818129378116620320292342540128660699672970653468407576216356852203204444770436449758848763560954925739653052146627253794317064474575696796889095392542511786652127842931932503695041710274910097734683014939207659747880119458062906572457919159708724465097371883045849271228465874495119292506802752518709320442705533232645303339946799543715350086971006201319709690643029891701902058849050023965325383979014381804774172932334892090355989697931346404447493081382622338550063920385244075786784951174834448236134555731068682620904872023579763818922136518861334338401127304622122157934421016393031293065909428997580480176037520020716215963705395448140490530053050660086383548836749104204836014254766047772895502034944198812143488764676869018181306438229528784213443036373977007886914212106162921276044628562448156176108038199168118015808103753166297232018279309186672117437383240748770771305036808196717450464850598222047913293067852638019167126396196471475735350535834540512271314353655062871358714633401523306426377320360752879093536911921146033582179890339304050276791001077653194841282416765065628957414588303392304862187184012799732500594300267200479233300421908123558366420271918942199769543094584644273747513196593146145554672802098242262153751394940869930954073407283572870351394253977596780853720947992554867873609208769507162779813470962923456778085532796135904398138892523630691762218142588177624556271851237104448418323507833085841686999089332687521101565122075742485038185211634383591811987417967753454886595479889998513325589731155209351998364191272024815983353771718866573310215208315863992731279290363671183910968584660871543086863386709198897543533201414168805097790358411049146305482273426623468262080618589105101420935379527986053523696543139750889667263881054376573919876672676627086827479282831691971524771201898576902549648230629459217269774637564335089246205167270450856203809438264922709233509975427825823168940838184290966008077129305088834247855454948509772456721593519716547040413147224197247460157532255652552699913448290837694530719064540615142930073334491424560143985032805147440879173196573249592128977890786275968971498764913707701497395123782566082024592812455098228446536084795068250864319578794436912771830071728070687424372349431608579397353466234868468291307584914947522524773024319168783925443111759445172983501858362579485436234792133655916120079271529015307636362834820676840042456793592778550290708800971504122025604728060697448488934470627591861898750745121147551895708503157308877649411805397348644640903798978012434571184429257565893751327231592124167118488455412992445294253747768918476158541135976893367494635781232835188006934383926399640121402030912837710364511757212109232418375615426952209572184682237999828399520887183984764862078706235337078513670708816170160713482736600587042301286690877303198568774726958198012264016191783010372510194139227614367887922999616092573194255902000659463240039582380704358086260883240517535130622643796118893114739511821737304838522626096578681784091424602176871696380621151258873004022437639012595582818432492955483233134840123349145761759970580866045245557020486911431859834514968510871528413149959910497811314883640487037233267103106923412730126243388075662148501139473579384001232123303509395177594384697338025227253686573079444674970989952658712208984584296664371999038887050953153000417789151202754639271656158440508707118442663803829255534696826846274512459276825557951511197754077786613859987304010481100162376935748468157641365233542207489395098986044645095668574237005104014372442912595895169348705247993593817820173265490220078219812962861876546529448806287425001774049608480243696490959540829859306294796851547296857568713515695419779380620136530601873526965914026011232226963412650915919353827660732277515145585972470817604114717434523690323025158712436515043323105914913823701563263351833951781038948360312439044473448535043037251705979414462695387061830133678492164939589818540310448033701638331069929431854652546813310506145440041660813051948864937711876470994982829106355110036522276797363668288914895161181150752109572666720169390799655108930804115862880597968496765093438165562185727094089090051843589614501538127686141380054542741005493189310841744802493005459649510781612970380093271087613148185338708302049610501361917876037020357631604485549429388068584356676705892898041774123252013450138102338835299846048787811497680230803088457287410302968057900503351519284518959705668146271208103527678320473886098844830778285685852784869438230081414386265795529696665016193781330908129460264687781644852003361782132278832630096193590114864338893903193666114910509481432447589140032662428150088007882851443240351728884452105947708014366839246770629864879960780329815548459607645962033678034256271986734409476174337317164277113434949890035760398869364630317403707383825494842949831031192031831288901541517605253506768808779817521899178344003019496140810600449176340672778891873421636638252254739873687874329358930748710433655278554102778822301335982873686762863349263059608077813437865800410939325565469201774255822113373730918682621771697901825152476992443932219239053823493062972570592633766109136815565718337481264633225236155717582205807135159893889528062619351851007752857061340920069324997819926038157257594553325906128860838829964488083895862105557618569283067989898101314356585258934451434064998341836161962866163204479791071309807007128445818324292434797749028003289298102766205674889480744148412140093287799621230247235678312618104864045260265396186685268307243882768555090105329076220885108582474459854691954141721154924917738800210511506139181910237840141470645503482281001596732020671073836321703558246362807951036147635659451550774876650616108400670358877122070725851814700825926495882757051790061084225541273768373360031282390179595773797346153131557516774997892582169226741181020595947437107145401413357390264756739477512130976106055707345668958527533833192315573914621663182289778381928087982467608206650539707164814420461238323833151370655276229951175346959677529395308231035987565186266954606906437108001777088631240382616685941762956784289205684415804374536260666639041635913703269224623805608879492668707827808908771075966317345278261734951683954266709125147650099389220896003323196834377363884393808474572873778068274455435023117350180674689298560151187795024045487589729115554998963806190860923136629221261434759075119512439646468464408556709021474370978645557566450576521178157223432297286860825137934822890126079775939483593550866970397082931983997275842564043356021145014718133328416836409278320454220683260229599826983685703605740988286728069631832592597944427663865915383736108217671631246217380612697745349895123036342055953765098768846585719317528599159895142475564383882713935244183174922340590274738605099375699611152573806986399585214991919299536949382758944689204337922276124138757475759668476140488258408285996722369187107012133019887538392933212257622853037309183529733497391220099928190550485682124234159329254059571748809644643990053701506880622723089856808368318097523352715870636766161553658401702379392344524337536627362509589140053984364022661659038783906258206421132053478486653764594401788181922633546256113154161747825924409481601117535591662697624713665390932995664429017148215670016300601535685544562759646545134868316438660791734572563926492383170957842396848475841060411047527388374996603599857171931193810888790818000302335335700571059275735352125065533230807325400021935585801185220324353472880587394846202165885804161370712918322729984717692973637459659504465170089761252179727419852248233452882679123240000959844583749268660532358035053337364830151913066832211945104697283641135714773508292233997968924314010322629002849804746888249110218896560195086359703070308588642609764212154766571786599065632142564558256297665172399003056537283878219531383253993528215346781936946320898514188920960027075003439512606069801643486268148032072359284293192340726347774613316858160993272071229182796279462011122726627764221156661788443361477944323798857958320058335125636306750653089118271215445043647696052963951303300941147761530663420025726969498179461436847634051020398332758368992657132059396571371826908719770755033619500141245720135324275429919952317459296142850869422019591435393251410064723787226926076953452752988486855971852572609139362712062994272679736987757726012797399643942516205091018463817870950174712961255183056729378065232641306693124930264218229014577901362769059154570041021047103721765390119317381713638706862387396467019625103450037165139801959362289091886807637798000060223699170444723192442018230785083946842245310045930511942919502171176346979943016185657396354632391862731277634004441280804263401052992350605585797845399927129006539457218284437399463098799732771999278059663876733379209526702202623876443619446113979285946276857016178844757447193214870227882522705811685820452620170958808649220680739664795580080037320887961419440216550781820723781087312981416533975176508486134984451283992629531642446956147795437301540830624196202454900051391828031346470946346732611501509605789544328768285794245082626286946331162733918880733593762565376862172550052511232791935790679269117943835136549460660501317772238722276592750025334599361599600697590033579624926934872039849398047827384969513757971435235644028042443821804602134532146581656222661570721886050250791577757928674428164041406954359829616606950015426258710656804516631452496644431031875600585670846090950270856408966496600878816887014785189928306448526453159470141382641995374969271191449371966306751370352455054944951080355654924216211200299188871638804078316289889053030558348517498597897130450440172557022316461266907928672183802081662297663499219725149237886938730361602764102392781905173345782016738192185605498254477514319548240044574484382977416558601529181032957888772924200074770261820762290894787772329588305010903984465237718543069376167953715485652969733260387118461398363649441277599748094818956096149406915913935276633309356731296425526556653274185538547560855894099883911395448198331068719750832851268218715064406976154796887364725813530970900013176915267754823907486979507877437429156078922356433090848263258165730022142123306477403623323593469044862075259478118000104069222503770888051345117369198342162714273863213635194519679696758555099009041341005022242675275194519510414087583436857874005631382433436178430422144212232097132913345204723520019333448636554655792826755324163905515391367952922603216053740320171487619870989711383698005960947861055026382835083074720025021320141039794274755770303477096534256562502500297984131599374420203026158601059568954352580870789884544055177039621197697033985199054882458978522005215331904090824504127083231461538209269769430835197536353532208739693618092785042678541440029675582236566811876269540123595949219324966293004084925778590615605890578261202562724207306693276779921002647884220838671004013675842196707521545389985838637176433271318163713702739348292725851892352523906208117014095097743898604663597485384275767066657546056667592983029568356219784634860649020127412101375541817373903147592986204932928306543916156025006992385582059590739473168569902666538079926303637446661658866323880249876183970756687744018094018977370515059874053430231422541568060183475308228081624987202232112239182516692520167931498289477690406291802665832750463208202357534626870857646781227401757236007370632058297161898161957922546895346922911099583319435190172173431069229142238412121310894009424256200170717176574579085668405548031765616535797058745671069900571537275716772230760410201534398226152698070194322275769544198548806932884054410403843393147187785131970943964039219164849818572369632470269513651856116337127877169177747006946526810901612390301078221792559902401634726576222102823023628061497501677965143330366761784845170131866672433467927576283495731265377658928842307182973116622308056665451359401389488534574083397962915562592792028445274847148277381220023539177039742229896721869490731028910773993064247269205340488131276332127133882803059764491096258389072912617581854960887347612725169989785513904064855083891466079978653027219525984605252315209949913283498496153941877887481927302517033574321302931007575998030561583651889382612959699718516387638301967697372651461285316843663847248899519076865312161936294468717118546380076941337677883691005103581761832383871704526352885581443011672918233689061202456217055078392207705513606369447473726270985495731417805383415476500515799135393902001205051396629549705927636451486194358628255919752107841544243752221159214967598578530731513576427947339109104016038112268485291606970979398252659968374981132107745427150565802602320728959001311327462102825582030905132959001342638949322229050469288205862115067272177909428909465351126538818476864838826819367795552086080112143323131821819147868757658251161172298308542371730477571807446445452033888599887748478554219125445044784554780290242415895429926797239258402387289359918706324511973822249100471784178865143798552277842381357738730650490662884233504506698747800920325335030932151423628488377741134477050020014110028434661520308826999107732472175841787618217577334253593240886476648083340076365091335664947466317731705011541536063721502029431840160294009764772455300048960670340477056179264574174399342251578441544285634600859931062455577003928925603232113109412103387142158420715175776327044061411560962525370441727580071308685689435909561098191325365939743717568915575160465458637527709667514644746522642477196292601465963419705216998721001521966332240725825413460547896711433403010935705379232139505152285067202911574363771443881204633577636921660151962945764511698258245955468821417470662419812917674832631618354106622086988703189981344285208224970247015927329240629456016025450329254522850946184875479036145544223780498749238065341446830607145050432119044744622748786067646093807901133971275158582960684234491737616609454758247770566784148869652907801654170411283062950167932811676078932214773018427664828356172606210246613490332861730623799379867123154708302541180602234129624700659283885493672662483434962193731315496184946406796310853735268359118010007627146950870728245572145667674663121660092082488725365857167803488448626627881117798886121862726336709338281790183823251749833382073617867464640886695423484842614433532732903079656600957849935731434585796101478528647589345415265135743285412812287959103272580418075886361380093610736073557496379621159179664645327664802539339662149411062592458505052266101530760749651473545053202637668221871666367533164563091912312736735717988332246085282456862369843875792857206003875437178747634734461585913917559997145087983262440194324627847664341348770003867387646614616120066094262841867539418124453409201682627869713434501564783725686999990282308170622423118275335887245518611330399153695909469005865622981402722201597358688260938487719146659745418886249021937616948303581484053804367616337019756839347869683414964560260443288262007740873808854814283567395372314686507786680413269809814016471077940727465834200769809075054236864248297893411819078163968040552285698872526386765479513022289573228197001592609597868850641557480996712010540159702721407662097454119109786642393973185655594941950517510367861465858940963497915732893667253207173213128536915526239679891468258732508635810374377927118427820980730712526568630907936325846540577682931009520517060135735598622170565334947470710680487811736282471860610709832111439695202071386448282635826782175271660450563318648266064718249591886251692556776368708528286973415139888818013110584614560271610603948135284256323776570875878444577487936280749082709206328125222079793961693907437276829525179055364957268539406722644426939869299416398724846299522041053079781427507571509727113542497622364362646729445441190094040937266473527993310117663357448345805703992902798304099933605091014196748809338499377942797281875286066513316337832243490055803879339143728670367333037418132377747607469679541902436502758840353240362291707188870506653754778762580871989933951115895345614630586635712567870805268872265979169656179017748423525164558659575542910197559291605064641834667686730058812355311975564482033704204501078626164272265578210537365570387248136034316937037813675959928604688252093369746649964293225759116123168424939446635386811213632434976407613129930026021496335382719885321018299727596589585599539080279274039627089018974775592505141898905632776413918368305386666011774549685591872265330609143908382854607669517152851454596338864905278736118505284704924566574690092653971175903134452559028095745752808037206520468641789014897976080207357310741746025559588300752292983988249350889064506308212878731948629504951646705781304253984545322290562581174506325854987970518899197388841488547658455472723729578630391427706020930924430850426576710159560287253018021354732861927447221922573629419190622062632360224553860728928929640091515204864162460883454788330202833288564982663308349896978091666750584968122436661858248662710206080323262050526103803118265839420090173081299367640919002974100848194058095064916863098549607699858897150832952087524644462866577290866895008315896020143928166588207893146994941230822135971899649469219059025166755701405048985296769795761101474020094416904716213775721965293483189683132405375770025379484655473427741602768337042521347453945088444296619825865382256746890204150445938259587168791014204079279610386394716382376709892441803540209444069343588073795099221261870166282215462259648417509333527856891927405126001964404351032071957894923953787457590050324137146170220517261899568714895467683184039390096649163723456616462255670387523500515519752562508840155309804679871917084881305109745540394908707434748909036268351806751169965312241464477365524308811235785239694970748108262486916568752190780361677587763911394613634772976816182057571518264721925602399749253432197258200912612695258294306663950946816316697830535442270633583856663399229137541737847628687360729123454681125565198359790554498884451578585062821836052559878051107269129009148921523555074229945549602176986147571283309051423092572642403394172810833424897942875888716515871128137108978884375476808907799061747410288975415700961661527015709447765686565240101184871371564346262379000358344024896865868918434363852312718306567238603130446939373294678873426606419228200773463794444626265701496794765353257097525361032511139760076435972929181073079678065157512856304322294762685116626388653016498942732119063394148576332982483730760076140433781461587920876099684227186073836351416373183714937960255958395238937504265863719078061799901722814054038214024514924945167836958316488961507134298541689531004190089485592213275960911433530414518610510099194025267594231113741524865609962953207191062092696199738073305900417232859684371255764038359162400674463406238160673905529682653625819839075897640034678417720000571932682183943476357897300416171089734129530615947662956160739348699135188551160899172384806696819332490651557372087941265833705700432195273520637890923754914026252068444283156605380155193547087525583660414222967891128821918972813326525176150977132024876482319288837721830418843660625077631230483483219865630356099641435173172690360351493461387907074782622186567053088626580595376128107483248812695704131752961266805763300565034116361551770243452068964382603558971714408832598099258321487003702715379583021837529060001674488553220961703300637303280330994350292709732217274738023528957115294622159746185061169600974526122988463787164521105903568107318646154052316760980634181805624122066040790050771935900926700107934459598587283042496950775866565699887841893453630564689270912600483417389046585655599637013462222626344725035111635929631224762714412340517273553902488916830499276641667919950733096546695578264222632129477263056738910345993084719188110390167295172003093550050471138426059081850016591288302254834096135246893472088533837695840536090097100479641968356004514954025925606146288933843488898953040038960894745306410599266020474654326928477796382177207330146759532261207216579868681790176006060850605948819119198677319021531409017026070113078960501834929180439267832384984676088510688594291790867103384854051989748778216043233124691533817061430415144748056307835925925957479094849897073814639599184844702532814779595846111487716146375534537655828841258563993373888916600617558370161687093296846403667330508874665892823272503134938142564229035767799717988939064527892309716140039190307570774049106501327356660796826719917524928173952281709609316824133296706683322502947672069992049328557826098720511894360632104165905832461156507824107434411180771353897977742950405204811267389939979865925666851895829514390215362617189544700178468536877497787901285610844491403146027501916124265218469230509259603577016240535548366775515078708665118728129663522031215659025350776271000555233532825724105780210872083754247071351126744368573335112685849354967181418729182664144335621470791597621332964428167310703601280843623341635247385396529816793758655904701817516726810854410735092616040573770565265742575219013847754745509728384037437441814059734155568756255449226238623865610050546490144713215498616253235641277541712877388523619141743461434580071132946593631552078496228473548038468467919945036028072251238452071790342223026486823474152747623015469075967561344955119277805070130018924000734483647263660360137232740042412059940669790742470042109825191638635136331554068126785645145023366005718223109934742241922731790174159767420550903674041823389387789588370928548817668752638329617561236302567743487450640175160620213494674788865747534956607012747000668548866818799212443855926354961730010207305012552730607822819935251061300318100931213454065352258553107463676127406062414614344636943149496761336383547655998670516622526264431976859295496858974317471019347590836513283498751426147153072040768654399451512532854000027843323242419372628430367544347248440726219104841018112867295298430550379970955454525228487014872141847328369045655072398048976283882980076957335833428433856835866249080914044903318066745528302430871976725609728617939363375639868158611348175587018159519799326388931367427286107936033686324788662048612673222760399734430102846133518345630720684539300149644698383003161396384606367691071669184201750889800036250642423496184603092334231220171732238757334028350274603886351715227675696007887806874548753677574881181409781291459967238714746958393830136190909188546258853167819820714993399811981625503639499248966864194251234484231159342601031527984656796752113881436661791518390282957118736561618910897600436466916059229677916548058520882896841906291005853424752324121193490176150464689733930110571768743775063204590252727040883455598723365397260289467401881696979843494983202261442058696043666547519258881175226561863873506712874405049116855370113561198890149085911396248755786237513976263888398576658316009276820663350814882604753959669058384688653472996636105258084041490335139906091754993868422424977054749123596732287352532222728337701304472077874104478820070802191633849373901575383809736519761959044541493501157675396922572140996632768836144636271481743892574999821419428827660609324682785891953609933831465112061313566145866000809296659517657233260570774264116646844804824362572282723302946407848659447721672447195228216816240009122497732067479976454386764865542172278394977062864352975373251631841470977766557212178794034745547929822291605260966299402461976059075762104787334937325315549283671986088731227829029359305145340454951334503655385866237200103716506402797989558743637738126374292588949923468621364891092894554178175310547641681002359760562024413595432110983762384246815723028361115974594361802904864909098350378405208836609044010435044035549332585538236744820804664098530388801460575411675180741802902698328301009783252965800365142401078088348866829351993898720299884750056654629720210316155847685142217874072040833123369245070554467496430981121730970380465559202283386373254319478088813407341646409035081263167614345321234995612907253024694719309767085337843873356040379093664999505369348402233057336597021515170660294411387382912706981447903787423204705382966996454025029012679505566748363505119079880018285808035356238864443092046737996997170793103222470356441807920666151086354839242006957106146864031763076874422593584558756569689218678505170183518461047471624677118202207556816288217392655992731825495541838580692574023826498636385107018796679385053504022133620483285210736275899705281019929076306128888178667210742660089926002606413713094661212616529966663203242298315264241046007873380164598235975845740358123336541677976002236482113040031746986961776806513625579631354614818606560062128447492567405490987786192494449112734265031971758035719024490574989287982201398217453250820995386995368372450686603260647351300112500902838803968759814178247373189160122900240324102457184309953409018591295011422495707457819306662587448203426792378772190211022101191088825116520555143412185732240161188849301037988514688240164695172971384465253088766731031322708551523129285136134306801783655631764686580465482799447688562720573361507962117837692044602594109150732872962192381460630597090204037803173609040359638013845644078995892157565679690350279740380490266064035158117892420683913257508789576088075540730125659108898616191320616114494872552929484275576776116171476515314945245100495340808175148390672102290738089472907657782282984834052387280537246397306435164375227837136197718743224756659965950495122109752210510972073230638325928351942094999767345430360124720192879495453958861274502025321256178412282618965544767529244095505216219432268970889621330549076111178000688726504877054901509292775438836710213477068205410343469708200464661573741346779800258330875255120273254632015851010788505652049410986611347037841024948942717417194765784493218431935060405120631534437609896815522731195054640476962028423024801113680137202174551855753644689187991033585517706939412100017611595594331549957559679688953989497104549964586092054829192441846652038168465082934426416166809496020093195932346760993695553481633863774903555496069212193437985574731482559280278823325035491174706724190006520938732842643576549348694069727317646748357431857711365751306132617104860813422784118389959898418739794485189312532811323544272874286611264048541162274131262735490243141856213796405095805540381846972601846703710983681500564295475066170787530713847647440574424313812151670435967246978648230810991506159845317170250494888199348212181802219075358822706305120945587528888382129858334330306341879691408328130860257802357656761392025748903885724976564699923239497987630086716346131169504554537929671992058067444586124476601811383367981318308353297339867981330305137788902427914198669102934672097516438926002208510036252905933465422144109372818695539423812323087791582222561181509585990955159983304835335562801522993303672186026399310373235003643695251228105528947760993527650018417223779424443491868955111580268167776409997718684486264666799665140196821950905230345123975770253727639958083384511579807381730785051147035071332277054100802198577843384904570846996508189923962925339918074219072031221927441938961247286054073229344246187520607215562266129848688251181043088049103853084724112584891594734184432458744006359164749403063576258083675850264492750257257307557779157410532329144536107427810241798617234445820684813670607606813375712030227124541372833614991948146960821644937562992402413353809236468332631005567202046638442698252916817959505885076198960853001257438907406397018949240147385400275934258119357922425517563063394091849077738567277538595452335452328339482798876860610014914527825444611267622035302096998057711447081677564240447584582091538935150198452991766837047818705152726606855533580206115098231579989611572226604199709472501992596914681259962532708871049997309645544662639367904887235120802548586526743282257681798430781119853916903889566191209445741840809485071213354841663838108797002786039409987024507597839735574887996790456666794586334805585662350635657455459264755076106867244344369608227172473102480738463239183289947941951264945463735952530597001043855595918322377451404106380937812511601393742140705242797909788513572857296190054032919992955256099580083630959374149374652111630707994157858716374420678565600030935463415256466253297439303772435788873559813044065017723663998652390508880949616762111892576294569997685159307633318211012832068587618173520375730126691740903661095110871711980764020347382622878893561780340707748514139321691824420654473648708380252425422766618963494648172236666298626795956166608119776265746948305653500587710478216036856029177783071903038292767624708120711368300664957664578462378017934896368911820111060337523912697068457623434568736808816968463539202284657395615264083613398183057194518279843943598479626119169553824742511501179547837050454166319167672001187392039517203312589360799739413998383184073066526174810931615701526225051190341781309311348210678081955163687018752101270482760661423985623353248451281893500042544138506674704702401517404944627751425314848401899537763806737780984522214061038325294050643332537226631421728581987812904010754845211344186697017930194884807036573113501511502124333819431697906902773134734962917852238437521511426239559085386091378760366609184441504151835233389820999044963819103815213085002449569562461750966023552420939226724818759603539097312574181665888328959948029510046260326274528706217382834651902272000582016664783673972375850742106389223402124683259821737556822722783368221052644898429585020270315623127821448294953006326012700477455071295753855210791351932956228464676188080774787959724593585170475472976141150604290567662261130740865145937231522941286972384809952691788609071674939113700873994399601545766321767082952409617896877612920209965959439848478377951702692959521594123311071463291690556970764332749619439352530269359435323607524788664697898611285641447040252328754995075521759604471529916831042509535574468580856413645149484218155018621914385769159452367143504435342878658760981452661062972275172805638401603503810324763337312741669529307179058141600182516152886561318221014222505890349588100040850426104818272822852336422395449948568915348221179877633372218262141377230157668537595382809747180769869260314304542963797940652710571380100418203529944054370407766837766284561451334730568943988068142859920940625217169951595885391817471426817715694201723201019608355735803171452344144748197332257203538175944754144100799121044128760545203523713201348963443606819242896319787319446114063029013306268131982991018276944154740020679590128823512733634737404596272912377718177181166738924669876130565312476412812742397773851170673924086640109671220178059686441636689477814530705650377202055364813853983745126993583673043429669925891279746361909222620402169459057959540758318470241210925967202421968732280771002509901331585858639101247346559958503784903759025583105783508462993548064299287222907633703154689205234028644668693651578652232670935045373133262729640351826442513195273434451146573825139878452829985251847900814263182971817404150992525942229539742058148144291938942172859433564835619117503385620278722862304433012813680560826922369746854215493110407573584561617569880702760274202843178554986485027830548782025041317176798777685863873958813000712515790982342312439693533001085800891087836670141378353357689538212637663614005029267332838827827246615831535704152542478625181821701883800081756470185986897183505532885557775768984365234189374511892466668375755408727493138388151594898891541061552014242318234725221418384629851764962569801016311632329272200678571984830696718594992020589353688391869177237655475659311625737327198398993001242921353154692725108246229325104564955803678776412377020436789762667608565628405785799110607139972137314175095193734465142769595550223767047567877391662054663498530426843310075888026019558102849690912787412572424490923233246141239964864946639067173553897565888137111276683250857669497948145380499581306817258561029247514064215381898296363344388011791565916044084831798861863006624161982195176677430121358657655806531509696935424794438167970011324273914605656046935789357766050010450882956143145368502439561540547337115400884556167725731248379957359170477296247430574480638310601300155738870480772220849617193943814842031691041551847641933096914017309459134227830354961432707247937822141361452962769817282695767403432037772781234250953940668588404178878153638649556708036467760133162770359798363601892016635146642870343535392997876374599173216567698002246826306290050311528325165387041600136843284615227763811679887072479543232555913872906122321509645791556437499983140053869143553061260278686136784356271361574577467477058587670057961711932136549741155903295323836944073936516424934015011434733473446381737616660383436610067937398655120911056030489463084199346897330860992617141472495932936937026068203485143911612161712153252714047731691223551173383055425930965327245850659048220743437472984237144890541892998177039887167052356408100536596797242893466491831989752227926309647929415946255236492309900452228773370102698171933054645582225068363501799998301693608175221119511207817930337566131233713655610452191479010019602195832628288541134731687805687557050765978377277811842688282254376907352586339461540900424676472525216277540919294856531403786416254934648705487844964158738553101267210343332740583051349819101383856794585098898950555774993352630273895362960135192077577825505697664191792021229027810205536851883310562073565189774774947645362675790353997428315985113432344845051868927861147408752153633594808761073498943605812965408386085938068953191465843317007104411502673091668436496307042636939985258189655860413685023197066764485038812812509172873048423516477279012115450684197976006137046463154354912640280847790650794536775458965685635270670751436993854720253404396828319772504429984074619906878092716915596187192402102311363383410985362952165107936937843534244800372265555932794503683732520932089449179358736973048350638013715360813421909743757380929189750739791170894902568595058386175308997611414382600478055546637997452178185079419857507459640945573644629665690716758276265832715969952027809653554137948836937264914477917755029776660872862622806673254059244948582188052276540074715952634968698880211218251598580889669952806222621635741487208602593469463064537935113851188765914175630359818754071689117089083355685415234395629068272506014275599409168711432550854529455423184381853341751881711144876637788092909691176258294602346516629648485188709587772586882944805026108227030137616858505188284768169881637217380443368496089415447077920633046511950965770631255039411016800743165377866335628007928231469952047162667984618809566261633479286691731652640191921224917303106454392999781133360221499785393875316851584458496046395284359998283963635687930520751266300950624792597662496081044243755413683799191445813572264152224507097978255695199065579824110479252706725514239690079467994051922136624124200073452504139284310304559780480948910067795988617096332983528954323941853324532077737353855976043509685890424978829100180303672495445348505656333913890227711983387985819597080545867123399866947423895314826960825882966725995767935192631316203366587984802479863581060825698284280059809086293484303998356774025803803630620869952293336145319559148543835514677018065571518145084513475634394149576130881978995746527368572106947606137403915799418647754846024268710275264133239323135635499863606585294938222599153059172302326134784799786186440848279415888999390223343306095870555516238179255419318867016290046652575674383122477719524909025607549981211666049101814506946828438438231494427961009588734807425613623656189956751895802105550495030645607663670318518619630453514790665660476680416572923587054266264275993801672006080929768402667445498663288698110678923585625373422071685076261917933615081398919372809739956846975836452345881356832036254749124168237432256746082547771112483850735914251384478352827934713691215136726474657866688235476089094206037129732829632908573639511758954741194241073583650806787656930358790397471909623946116880352835581705141467808882801792284742582485010377332299610995794494508588294584346377684741230752262038366927369519256122509377845024111773290371424921517719096245508899730478220274970184168803580919589838977776411464102730912027758085036766519602146620425760196996282889461198894134898511532028886814173909983665437547014332289956915557010149515928290116825744214339090827416149669664195590292277828585494654759770908292431059505561194527975546185195020526903662774363362317359122962654076091962166957863228622733475398796990301360222330321234873459499828851842701688500508055524890200750959751388401686514483686661773628489020034969501940824768976353853821084374777831013840290841346951645673432564422566575137144014557830405669163580097874665459939121751754041751207622443746784508893335848053614840979433826568733644214647511856269050342475739808792183954525205642817091742954444858886609911937458235689614138871802569660669694365855857953028270488679909104712526638308227551967100222711630932170219884467939580276969004012181797633873003653489348663162565772640683382306477553636660407538407108415451483688836449552410280894411296129775937604154721843631205026194713412139599359808229706783221271442345471010736992726228986293849737869802495893360738363964069486714450345211395014525417870450685017251740206043861932895898828583950566024885646536466040257264593563500362595303448868763617160609219073413809170560826620461519552853703555832099225038208819507497690246804206383073310642414250403746706859607063482726606228630855631502606847535168127540308363734226560965501456375063932958607027894458101196016166872975783796083905832322997898294499109138455551361346511149982402155618313625440465099022545473894398673729609031183240280077176704805919945429604664222349340108468753331665585981124389478728551197259650516860246631176826347088017192519633179105630565949179286618365838752232258484235840298605797570395698614999392694052439148217545726480842094313826527178407088120030993573415435922926465500443639379840020833027487918390285080404330810255751513959889736272729368347973322542227971056358304797720743473262966400763433808317293943608577532690933272359454551883507163658348210729607837159471348406352115819467929539955810379983002232421566899608911463094160364078410484335482419812487541696114906720110869267806589403548034819272409468902183724027289226440768838395035040486271836768005099638793354636182508890415078156793113103445776272206105243117457752320740602317725081744181281263766431175843695906028518702127035485376674912475646479174967591994600730809732778341249506281051019993601680842023088110104064181422892277357046333346155244797101089439307433202358119295859873125577582799157489292162950260282656231515084850242661724997589276697940190520645292806276199481631314907989269500428354505576727179264755787967294975625794247819790653763887912551989018346647516036019057253751747290104051384241624174226850129999209217442214217305813407102859180400201362191166967209399439138730313866757374474216228946301457471075237084446606720045256966734769936610169412119648440925114720722316702457173396960022817769151705971695646379593257831556605942874737908458034057120846311279677563050020467981579142942948344188246560600851682963193483727728126469320508451104447035764703876715249856461081900340476432946320804451655617244739616470160821730691156285051891397680136861640328548286515979974968175007086195167862969996826087479445994986179583675787069980342234181690690384877987883083822001868944111567692458761690991569848665487494824625173191915912426052198161937642262403934197919940955080510833361777174487120807501715258776966235073264495554068015054715917092926298119742546015995192553095930074838886711640668572590758396578401686763320899069758235430536038954139172769243488512306221877801354121366043618723045218128552280629472772226375559304718931989839302611666204469583369529390667240532471670744910925540892973130499105153348722729672121887518692808893692476858968664768307755414442781475811933795414456204014751092563359405632331654626559991706313608141627829196854684028651538296371789060658256864210794020768557836641751432794137803010778810197469977510668733244961527376098972127659888991191744094057680322400974313445579098846111511253305702198750474704712836132581401787910312191828369592635434937383865744229979332984199182990704399598679518019476225061569201663191451414696300250659268117560193057801338479328922730079296363100129536132614452664972823206535714619250681965707928259094713295130376379942144794946616544846142870536507084467561588244263488979951487582640086410871584479089389930804465515710665238238448732847367605164619598647370903387549575148370024488652713764396900501428261467021126334020571820934078053458266175286831564833194332991906777370585609619899136680201711307062896498762720679230029364372689987544803853350630939486684283625047815971511061125356779923706892610894543805332833053745165857361507590663480786828044974369519470772902923467736139996623106991256232391455999664997821118024939817800380879194557882570848520441105963725129682964141859297545465445459083439667800501456349687978975941654893315651067671922659601564109165184475017301737367060696407248529152153731873106438034246089619445828967420047159466736131054661962716986879089997495580964799779727621022515391351871262403443415950148399954889584495978719601396800394011905436790022652214301544406043907962388805717640350378486750033414473471731866920101706688353500678980897447621192621094186208640596964979229225135488384910194063916010633484051956177614308281223543281169220582042554822511986222949204196182316596006534532448855834369157644079196046256320142166655697369335758644062268774328151791417661787842454678979859173314549157560046610763846768255271788622890394432746615179490907219880257415241615784739041599885595293107929764255942364512105338567533695143909492015378334994565163276700554883934704439837628232016092239747583874407854631231698086353550375543867846685438344590429028393618024895188767099215979860535829229439139782921059413420178492887667007111762754787318801374642606488921920127963011455879587774772620633629838512676468083524174678786080529941042735172186425916022035752631281167573457781976475597301263497190147759818207794150238937661533914382718046451168681405376790152023724351085654101865684144990950907465812588304311327311800603059342842960365177098505779129613502842332254379071556539089337992294753793839862858330366741314329095318081962805640976357008775747783180878373710066035351421554211697147556836224448052451967042583505724929079140359704602907965841311917457705283836183825272609607104440956320083124951934103742891015594116596250205059255691625260934648936602460319649572012323888399468505507333451337975808398435103400273258225686923007885789653780534804603474865328230369663108248479247804933788596706106490758588232709799674424818462194498730375158407376552279608306229825452425531210993830862889045237887772382319675216779983384760785740273697760853025511397764902419304003853877650852929577473968389525671623492925579412153420688907159755837117959129717451067531974335592329147235985182648821670065118143492050008287820895269646363266743793126893749920902649798516827334621646990486194298647151582742158937231927580357861429207131527948342932122815071192695276609223740283299535125910477416302701689286733269831679103531870031652922718526778523303821063177701562904310960580822840795052722975944918518683838488670096847211393170396461790194409953853204438900937435061158897534200053171695591064155036571524760314732117873623098919480614581940850953267959879557511546678958526678128114781951743680815929069957849155613585768924416678865261677135038481922977591405414094597315501779797090672313850521783341966766609720918600376396669601441625822088817686619321985959567726962650491696847700519603444091565241116614500839946751852878531596749108196185554913955835798392071539669685405875412671447424202338751473220279398022389835451205661296682880707113477288219769009885463077328851231811896068172350499595255620265320271858692012630555364156767506459637901083039270919620116991217153035176712708693617681637486518138599225367255908898480570586346033478150451097042441324334865240658758984949629784570653646101243745415311771172621788524804016390855537030261479523112710664007822966564342278050888475665430695998707629700085557906566241868710977156932237407075099314871272736463757552292217348717112584188313738574230376411650005767319059191818592756030266181566233926213592780202811695434123577027843708815990754467305652343482635873725459146159941441956683626669591830140039942952648249746658423382067888885813579898473429867556586613075834313839031617512630124233448590965242876429650205903850622055766937433899469167641251333333923750187174412152319703386928780198775839461338568748434336718087409190504503065453389857492382361292997062043438787462369470254349184014542407129461259223992153279977627172951854925685621600021958017769594568954125392853343361757559284662024465103468896901951645110400342262356002371987274715608801319687284233478031874960862930869658159599206941673747230415333533152999360099002667725113279629377133060868704637438027139313714250536450271780613216353907237431750626859146834709726114681894836876504613707804364315213922447856648580224294106310495419988136846432964902164448982648824986854971265792652672117408251625582414580182181702082094209531218455738985810697361145973253245639679601456023123034639419996597812751370523107382329650809384313413897317410833179882739433478210658914655350320089382080854434038777932879957373517112806896131935528955578212271958440656108898865086624895421777065839037685610350747120629792006645894472892517068597703240292610886234898630025801155768735675616845293587531175265716422350187278891803749422064383267641454910412335296923776825857228001999524056983493793282399603636153538891289262162591815605814915751595591624777643281011721353945322010843422274109752420666173869561695935879057387724321181757186574116449633333040978269069802498293261689380954126322933701360079002925991218386949826650851010357909581723308127134067645641755686524028129099747716204946814277376888594369743768669258713734991630499587560297668371152235403926276558750339414558180567184162045226022142119807380072419538079938107115160568302304309907624621326838194785703164359823606310335652277617144220392099934222914225560234949875764835223798474434502611620542255251208113339011373424386910140663096709889216515376874524881955305207505901703932244238065659645587527269648268643111039120212106902776468874306923318801083684610209765209242753619807756474225153303918032895484435443602830209599794247670958563363707660660683265558699210362118982051690830534251004266772510300050458153595496145670279948980278991166607736604255663575419326682037189574295329496593066343267818363797535606147591760454035325695600685504697953803281189775979354857022366167786640091772810714475970085860815187815048207490711991786449969678252922517426988223654734503196367762926386779874227832722458314285262672336037503057116872549867094298340799897196351313304516994110457899616665625602431210005558139571072592133015211588132730540249366537726758408175142081235075152749432394729314429993685298260198135816697600608173099525813231716250729206686832897325797713535804218398991413557819280381636399340110864376210921638631039196947146762186149168465269057426485911109500034517247856750617433033220331865981417467373136235593693955133630629494268284384601496298104234809046712200500727907012160559021577929621944742208123615419241284747188840428511550957788926506464627171603370645907972969362064011907374461352031982954367030977191109059726142823037236332394995941030055384955310465311536626737047860858341952852772409772867192137319368621910480012218231754730484443862065780642526029891967747984892630831409914472017535007050296422194673074588651485905732725239985768398504146588609464454065460331185178070887109261358976567667194210399699094876478832656441189416401027378174819808208838500026240365684203207150232630190411212473205212061067284374531416115960993123384934147332498738724892460835956374424872998937823424873906423624964507145363573772679335722553997983205505366933719077258493607624379224549349226214135524525146395790729077910288983505082381638694848348222810916452595021732442164176028650117015430904338013078535136908614415235634755702559579742590508245082098235126662888461976369302803750429861742874301764992206564919173078047167765514103367075808874826849454767698835288382204465586523221470248833358534047348286480766199137329359532691145004243575672544631189059569032639503559270297634406006660511793932204465953978274404108934400059487299937556961603751819194430564368792391158859263461985552830651999810613774473807568382954238730057405809979888558711987359825624118580559745850106720728736495316162548028532130779087034287432428725324005146188712315228607350119162539424085080785899354625752475151992191050950140457672155045051833141556873991959085898129741728949223316642668290604344497263999970682926139718841862793213051680269226012342086828995478048851489689132250028781325935423237345844122696114091070157220554734596384384766525399822883087291050302577928342241563323882920574137711347496376673211595086904112500846486037956519326954591497764497622900839026228099613704968258131850275175402717740045281495664361986021015396528952404527150064489097135846764157526554547361174557366738148384482466132052939739522970568933137199722347838077669164666951044746972161741394459302409404893343322623823444817678465681386481759404034113949723193786113150029095215295230154195908666125263647162269981736378642329721981435382256129311293335490499983183693388540631649043962159334999378680897550388516548605028782184155992593622268402012833686064465154595528420347484978581743247981090873900259836671282460291379934678820974499648752500754559372831164762139435116789732260512175184650550902567198056204550685975663674321636007140997270210137703798913301816637341356573919632949030123494772686583615204942029469412482026930918850935871527782633221387404419549508559694857686789800191187823841533931576845737634824106833734006331241453557505090316658480406962087520849482066106074804512987654091930112764950785074719414909190251793237629737719343449657219979688463969491286632327108620109574675905892090953649694667277889168009759829384236782108772347492578145088987952575490042402867109629430750356765641498947920513808297317302285613186801281730353820415898114490735654067140716117592402705947986115179686981327262137690440052314660878970397117925293006734464238548877963865397806107548018118792214325320372637011109582511234766807856161479978773910471626453958167039898905976331273859378752586132596731092268260370021667452688929018016783083338494201495488915524287599764492078178569187065704983594643214312108532101514589920185006945005794921902228241316858574895646111210132695407004029653174054350406563211654011099030105099707334432276837023638209762659134010316515520888185974010935367317142489603009835568199841785880660277549124182992124994341400119757833008102488216117572598104989209900093997834804761232944267498911190314938701061071796322238057331567001988042821436795418082355925318909701919655710009207020419207730132147562624577547240330184715449361515878760626626449642648583422795111874298370434364183112271832684724221716762217519970778362386623956843675042096746336581482216117650705294459251203579912325847079449706376577054817346891767392841264127482712031327820755382828947792584711482705951942678141955030449236670609767948743988798832627708775116253122462166460490697262012817730026307977693789656656151872984672630220005355836047485022779315022921751208170277764468110498925885214587913359351046240835739406132356216170191693338073453490474365653549023650125904746256154494168553212224596275171036040982347841186980842109037804894992380301554156746854282979704606004849515074240029412447707794340304398354646666496888010096679852334140066038227139885929741653502502342037274094155482842550072969780456669785494395264539413791816448892174613966387473994258156839038625641864316528204031404879241085649988167617578611025066797224244814771167671228033071056316331213224724951578739710478432643145466724380722471049477983436677598367374657141990271304723595116633289106325017757126121376632165879751173322981532594106584130309135873029592874638220165013946126484280547069645530428462355557224722725673012521427754255296192043332291718639253943370896280563592886320043582438374646651065447634060234873422839804481208420604091904809887181771491767392799047115405512912248506243400250916099135066025346904511149853521950667756745689041788066819041646296880290066824706163474015151433305659997184126847391275729980780216032652922410990510482562943428871364054912087395481342608918707917290985400359005212221530762760302578461819245588819275377352005638716539159303039373391558909005558812915734073950781940944267172605254102937315624348931970076422103491719645780728710865865504975926311066874512437787342310041133060471120769935879475516115660147083379656289823779616608599344684296963105324803823889892255142770493646879304759747834648876074199818410486799286760024255845203768896454208562345668047654338448958265689895746164264858155960057718731344359051098104890983436482829823333301243682771647900911522856704575412213991001984879913507799612396297811628300358830131157977187485105235975432986148122664889971137104641532158734553599223252283746575418253231462464452111703251843894126156608196735083479592502988752735064589825592682795492317609281801517333835503194227731310494053746414382653660469055900774317165012291242259180827676137403851537177091840882065755531902589883330156300178843763107495688899344229734049976882218390765451039561914572680766321227250045808412203860122379180856419886334455486429492579373705049609569415274436893467381756692067606665743507645160849216291095154569987275010873545242799555515289628590391945282112216727804352293131217363514141559346500252158169938302662727911798176976670952762681637245940070735081828860085602850403815762633715692471466760293248380476026537833890518682849355162584849352817732544247109043027876038477314851286082771668592229234481289998301613789889156656135093942307622755772876928032573825325932825182712168858693509875496744461038859494557751741102230461597277293729353741255597096151270869404060710685949284929216211956768633631611640433036629687439025980146141690969660711199610671853527289991571185456662540478102214721642272315451175396380464252881122442052882349942524968497313874279564189833103689804979611427348660972425752814794653535677801640394676604533013143393395388054329354327492048167109014196240590729207679691837857154674937105604201732108301577912700863518944829970070733619584988010617267141793927089350983711397869560701582335098602569413447621963843759298165536780388218172916844100583874886275341511671466598594956116757973321734801682219139812042952629405015505692967049590970685844724612476021682220059842012979835747402191699962899021130154274714222501990128750499190620186475132417226222317875816455829769002595557577657973219031724074701613935787087983056099809029795423682512723778445100649540682095379584198407461489397958216824782042623612626907696559910733150728003370485218965910140957269206535613806546393171179956511730790867515923729833930162264967655900097142676361039193213164592776120569241440040982491526981767512603740967337715505867131155767557582852933871236106372258171538374781483122211764648333570453934724295613524229025464470065429974490377957507063852249406532008108268678043196787076028966950874287518290030878889302962222074946058586544597013387062813337636572722896675031798276176611961967974505985961753693353492136199509721376901043147725263690325887161802686604716265371217099827679328076748573074287831006335570784502050190234382971824413971385204743539351979815186037256739497692885595711506873886998787313042937164450264498800975529221713984101446818341123414309527622048961049019415030316556441434237265210822357570474704294344213471373112045702416196851574608689660197551401365711033636637597594274338880552006440648295833527571579755207402968160950432303263228262137980626801672931869462662521348141680708041762239020499217389318690276867338293955751576783653204244861531699701683802760136325488637337848865496055870645611670877797959425102299747078481908320339768658476232142447428393389103862099529854935778561704489922558304735446767917860619001980044818172003075306739060322183941610737717924465685888842260793761707625754887426452787032366334876107253328385063562619624192565564660074428845341424605626897569688844255066683712083207609233061342206093396439292212254319327237476347717493982915009886367886935999674992072209027228872357881354547765886651635850180966659921250580939421293324849076672337386151342137676643273273602125532430731503239923671839010915552215295990238960811558383985891529046213898047944303158315398519374912259515976962527572223265564276955909678406271013075921790865644462487202173303321144623190945655696073071610206474784876250051976538361848581565574926831395293853702771030524488307686699452303813664941823643409321396913732630022443831262855045644818375756268620875223443933547237033548434315981849778717352477693785139554385498826979135613410552563406083614960849376765879599954429995156486615611013261088932780556016936304136495746632833742992130838251748749633600150147541325410179652031768650703454615434539106661951622639134060876991316490172972563514699902056285424749854497808946294528369965752069209394178078198784176026696036786138703604569743791451633162101475678237064995774021143763526894463735799389858688573249558578032326760247066948685455580411241978311105501683704463926399184480547190621792714564574999366351460671072229214644536016289187317889253229084559760270698348159325387492447154543924008276458806845130123652553590647777378227527514692452004873248818908931543116218316817207203745592313662088114992294292150604050744433517195668204958710405326177252621732185548215943989499846807934976679780750132259639688206142471427527381187565626253773186951588711783692479230490841704903687368364857138404524586295545518098699836747006541855587039586470303442576101166458023693607730369050533168836776636137271082771131373634010484157056355860498881781238065401798756955275359400644759355150848704888083378015317714662700621092505249777051940098687984822926631741076393876323492206050662956997200132701542601957292748651070339000544763259190418875966887017595798053935545116660638322235590334982898855775178908235251339352611485850518447489287496952130955079775005872565501083822844308666817294154573388842816474887366487491253104808624219473458843643345020139586865765261750235096620416310019303905403644216569876982377030559746432830650738668199712923495058764599069899763204599972482850686387162671449045878970404504486903964041741549556265391458431202037552299292548246754639696043717393754646989681702584594820542191315389390440893475728659748283472018403831229663571605054793615735903585672172610086515602580644579209714273724266778686707973820245714220631964455844499300839880864857032432290229953570508598323713639695456105142445168531909893024799268262418874350202282718829375825935551143099458582313370177069989814837055433633231916638106054553822810614071778874340786115411606305468285790146728388987309164376379001813356226641058229891773665055376905817262037183281455019830671686377478769933220540063596219783615587931064192125196918827988051748293921991721105026952589353108564042411750594146822767272935095989303654340812287288732476364528990242698337300156485408759817799520677204638377401119208962959329817582975473909915753995667475700309005369286943374800082865417671393674986496641923527525460734623231225328061996726930049105053603698929002063771341855719431253731382216499714280506862194691361489826082547338400595154175591640136289656234348203378625343043785169289300142730141206185719075091457236123053938924322374853142719643445375376197756657367593973530172988323776348710722600554708146188929776861558963952221423621260818291198018930867617509865339384464944279058311804749935990157282791255627690626039277664477874268697580771466660037530595694626370454729039801645444607703422427495410477034991644623608824728178833987936338432802042261808784347722326360589181994375447601816835101037234568886587900032764116190841046569145646110395666148770608188207565029023935822732212097225949127155836205041343100884996666137838788675103001042969652513105043589315809652945580382250165893331428076857048267379299236895158268065973602311153221744714864070786936783085892556484036069813667196995569589663886970990749996750883077376678369735272812617854275319730637693588030386854524904546061181939012915466513337183496216763838041366292800462989038858088914994380724970077855155894708423787926033383347919958093023246329844455303223439901017618329036885173946220167713922693691928540653116561172917307805531468076133763417590621582459955126788443131812040872123694418384372330046258708994774129688867315027314156114552262120527228923132683006439396249042440605839910708776219501787227968560393849353676197960877595127300646829094013652205052358145180525498194260084658890211791152217323816617765533966725379600202213307264988843851338938932853703957784479989957080901616001367026259661419135361380393009480668779086713977721592961503683939119382152044322850901826602018496087908767633792964238320765959913382355040178455090826459503551383031993322861227069798060919004704096444042613292041444984809338287255556225692531030346098352796389997823449572346762827629485683100220491956533525969551657980169879258438506116917763622547616129364396313867943657274385750572905656168367550040560086635008003350804862241458678243976817858639019763782603996096643159725601201648566396948947969046231655578156387316715016415909283959614057011800587138813289853990725997989120443906242910130747874573758076128559578505236431995741796252546771590501106786885434930929827585802775106107037023233915681741064009369159495634015342729791510801505813183016550845946709732174624832228293454821639923149448816899959436141269567708189659510125298216544575133737619309487595571734624489515688090854359458992728189341251168010810618219824407445529077056932157500301639826078351858781856175617193746140536610790511727464683431402402117933251450624876672460549777993403477729856624369704214224129129752954932704464939111083495026318957816588875770033507437423377624484730588501137004161799639785029185788462256438575306027469670763875901329341341674929698046703298637964298737640278162632598356026439568632162308405054684442123518552479386702030379665526189501503049322652766288029503261557215150016962372257265384790192455771556850165055652053249671344779594629247752116883880503225346576329184838433053328830312972960164621492144071888849615154733722839333325553840071681266136073296840770404510431945499246154184655854694298006381930858196393816474435018336760549741404926488126537889315181910371050191537095543395008596772960929498251915289648678726245694564645403335393155333632251498952838770484024158371854444544184664593782653415125073552657182096093399481888014344361278720230858110375038875811257986945279529485464348549767845196273491224988935073910314565316596801784949208173142099492389018350684435242370577991119708390308254254988717604590709299015779077576886713441485983447784143936134802109911862161257343228703770706506257393771340166936930937282033573981373466269322393359330885805679877986902843378470040169331963749452734684431935244373845568954762766890173101773961801403760099116792219861161355656019192206120014076037484443186299413431169423133856656476549289029612547948738094849827686588204331938151144892005518075341176821780662115987085211618040333713777271234547387136961945644663781741525137471327628106159027393041290526872217532552179805319547253920602341919762496496651682726575600624831914527358949000916190457293214384302822099387638856326475503332543999203885264908630395443145977423688331656798427604483033142950495252424863139300151509507158334717598070248135290974651519256412417645082536249242385994397625000145271496682293119961926476162031297419831056911191905440414546284957463981770831254685936781290443275066599943802018114651733007565851138974737232485086281356361907231943340416274665286242865034572532318903643954546006399157925767490462135151932824853076766492926191314879144556271140645631868623203344053902879384755350510607468693988917098978963056954126400008884263004863686426445393542944877816503735975570676509740229619255939079040002435601881151176450142976940616651317400345709745565993843239922989487938208460755609583088406719976932697793131957613373067068856758328845932346136248089117784408054469437411296973180445539658045881391868955677368937898516553515174387135737874019268467125480466507419722001456796695863228298086292518223931342823332111983523957738040616074624547322130235746352082641671807529065853932409897407297838236938981941876622357234503520645105888096420894929171956545256949237272554762799818260075713715930448438556871128832958942103106309404139083348119518236373790013547783771271817997298304561324504279033803540056712492990405749344607932434563555500991176344305307527016307800092029773729799244496186120761812050116689355084558163689860121123748729855690890475242490111412792296464381299697645733479076383269147329503025712931291517016886763906895548552460660020930561906103137648845663396212135922460137014146882747831304882582025299092683813838047349920407576958460470483707784611584943975901045011004158099662292416375175064680292165420581930324711009290564399091327815861041356962229422722405306445326517726358944665449438537775941220504598504088315863338000131178979348033560543684488105503362574418772568508469510418373096419549431951091203562334990650089537280215755139546041616952237008493709880905688212230197952887948112983434973385118628780402935018810004763042521609908254113167479402718913182343569680032990683466409233139854748818775543574455858527683302553103918062929482791820279145540708447940112814827343340029716857304814812806181041572817607782136905406519829349741494274486252744318496272553532911388959639949755234169868423270388860579591066147930059351155583520795017661436332443473325569184197430149625963394473151534534403693531267848876827546307316556674860240814720327844654731855122670703345865862376458613557004175837781935361144287015328823660434654983359659575213772265800610502134005087008796881645039337721487128882914032334905821863115049291401759970031323242794399710158057816074356459483735144459770571031243158217283078230866246916696814050887592332552388514699184496232351174817571691098502664857073846769687721403680470869428065684615591270955374493613223104726966178271146137553822387716809367257920041572200880061773598158832452828053177577207870317679803278939451605160318500077153986671907353597778183071549165833661315010754243622286990526532821340180013184538143818263450371519049906563911461978268741384489134013866569949367740046593796881352240110504149239005301204371365689170938529416130275681873551774819989778193436531487162296585434939671384606881542734895692748919367962551435506126733902073919356806737534043708943313146022288009683248993668347406074946512960280787749877361992400157306963129113839423238983148926486081652323336228916244317263504340939235304879574203078146661698071514036227753417520588846302793650624919195616968839000452800970071520664246069288284512274537278526962967079062472083512834729250606806592022136955504151963646606408314008843361702978645342158079095720410365465068555042969516651987909685765391103495845746578351145864871640857488207081047613596568166986050882224044366682020996078022779856561590385782358067752445591622000892034315429826757778532613314316464299198937562679880806503214047584818564766685853352726330232333657479424401022495430206453765104844821948929549657471524374212678865758030130342039505722375480198467865620731050348422565931529376538810326783186052514206612564167777392103310069273929155103791185505570139459381163810556599837178909814454284603286473108709022885793379740367464884884747119242334202363577302900961845310672341487710299276389394560572777032083114101057021724796307695477370929023767933005256107539002042614709544216963984321212413934788223515736764698112049398377315654999444070211711689159727250704617117022404293896776056101348928190878669010003089011218539399136533424761360058349049137281918764008870028407775086291137950867435150038852796595510361382646383218211818222024639890299858050139326864259223999362868613198581503219158614354170557002908899117536798470485830570773439898952810261607745292584287225040335307357296382493027310274529345093400112785721525827009526029304698294349378787274759148740740539216669621958177860979489788052292585848736207298624130077169665672353352501831552288563603414550446378902087471528660779076400181820618138462984906612018356956689714304060608182367722206558894633680450361934670818644151444657756084690298654417762755454001661921995364137204480785277890568078866272340747117924662248524786118574142491877494126120090511616864245377430309703571482604156886391153721243720293361886359984944454316020513831711744129627633158990673286572651443641355389281003327232273755714081046386692168014682126743523758247255178067251583615319064539996659495006828449737130861454215988774337126852234564319686946877286314315581339819394580011686896833204167452593974641827238124044140782225019634707804741980022065026692668437590927009655132866013038811935701934144866206557826332280926208100598612680519790406147569063862898911524347503281783179733669183680012427845714077882228756313172553997332709477241540507702160264538225419866666017422040688914719635475958739253568978400880676958291987614026687263651840252186967430974006497954689101564127481026894007253364697846829765565795609470530510883559991595363975973583162386617654617860022451121349810859098051355676379928194574291810956684011471328807469395949748677416460945839704687848307259791536421831420603887964087863552696577414637079366629361784703778345522354735267608924135080550740920340627241051741739523592627247902927776604423355508874257563979339390022606536820682291098235215437643149957954988108948078436535726100711398040199107137944076508028243748673156165487877143924871704469587021071947741445718212685277352358035417780508877358124181634766559200865821941026427501729020177752850714555742966095065865809982090832078008573083875834041848061296518868688186391811548282333062974786823891498346263560455023656557293692378020126829903829747199786438113164862384396285304636360043566119027233016058718464263733913164996634132691968887508389576219284616200344131096221738992407216866826411350521614918207637094270752913290285202045402499276426440840401499730866106410295377426780867884740640706554856962962359663082959592125378503721292020747717944234772263536436851816538524131723373492571115885408840269271711371558761018092857532884313171947376788520242890782712693083758603997583357748417758136058402199982763633915766789098735454874635807343804522224372370974286901021101533735361860455360130224618252906795834887267280816930620025305568087001375711031163093154208562684935400676611368208154220963131833527096512953165448191318382682155411304559883135017039355571468412905450975168099519591757338714992748204836552160295676488181570868785236779158899360628040358235678228252003649999636514868438076815014013264277576788631092775146192743956768865347294401457389566200833658573865473591663254285772464673414494323631439294851950343082195199816196177838631287345236474913013544742892360661174052722867791055418062123005563718985524626432649587588130785535526022404746846715018416382178203017977443377536924430583213531492426911574244311464550701559113410662872127224819921448691606431135117286940928601279264888574364322195894216038067501223234167275607156119737946478070288821563943068437695229856229986829149782421915653070611491869736259119709858558702535737684181805623701547299656194421660554621010617659383803959931928002783018430002586097265812167565153487721485233146141782828134304347174544556254139724535489503291369337236740937162317549759673861462928526818798943533468488598425094767761769172548110593678179164725882766664112217527622541078463235322918726537673077218939654537091609999759359534315868071813336853868026703672285671883291387048184458998213913005069009436139753114764299122883440159849909135055450879378955869512224759308854495040233347512091557486543351694511517917828648084986353555670879954787026488360925429732447900627282727780869193864005531179552184146168143021799641065128376731749391432390804900873942605646128978952980066870633968468256359239327558801589652756771108369905183675077365522050106855952514199423765134773980785745745804724737632409635733507136928772942548802040534822796954467763970593305774532523550188634727997235084181516718847365513944185323396199245140603731954564725047741441559709197268658135074918597062999099864852217454056041432883998832480141985264257957431880135100415373946978151638165590649627239936024699279496389210660548651855995773101750085760986706910112175783693905330294762172210194290518928250115509537551582075328819318711390583827037016101588335141641330539817486603040778392169679853369092899847436518268744776353600862829920950454817301924784570158574188180429123519235035830608791167412729655399382272982832863203005934523084978873109756899596772072590870730033431317750950256370360914511250682650887011553248003043237324154425088344725724514712221661368940165308886194382606390932468617250811798580563300995857046420528168779295547183525296429619752389580613735571438189760597395176135457441876821347938327119787598548879973967790685897044450838760216327578572058171045804971109124799715203460010063517987061961238628112176222560592732981286066419783637464661353937148905473281309655825038283220749704323336136288526543999122076402434899561266146409270018995197703603857400755408806607194593690320161096416626962320573129689743359128364285768436565054505735616406467142160779498548755932635928368936856445151108280233179274140842265725642302071406267462797016032410459020908653770719874215375119360974517377155194725935480189764159125826615085020439748515025942534758332267800781011811795969761271841904697774577298366533434075827484910716963955996715184136010852078038392018562559490491691418959712050498556824281079002122965744046306048476885481859553550242287371050103640473646137275686149287781394325168964948824363928433251473004144286105578968307231244820761770900292201074942915835585900705342910769637723079679520368352869902743126288339681842256475999488728928712761469871494257125282652204128902213054834936707256453380849959181595965713848971239587127655267969702909239816900003399987899042477377208466292371117487342299359284388246809974940148112792199558503735521893531097219542609675612956873770133365117258718048131950069356888643019252537498970738854158347237175195579943977657633960403953559384476084159877222569811366188882948370782018710807892851535125282618816412403182182929135679117413943166192960135963854386577709462220550675774380568280603390061496282441508373354302041009005405926390916636022387959232961065347164883656547370711793019425377839185714055346130714838859529723857971454532022979173061893709665822728177281233712999686239725805680523054772523084576890307957130209650939601862807850107325870267642118167832586914450619198188185411671746925913354899172150005839741583113958924490630958140718468110417846150435934913062612173595243259623700397307327751738379667509513457634722797958947301450590057854363465653596296899614099196843381848586313635877878876445890626738284940950186819654281808893527060354458314393603091736665432025195952319915381744905492558022356591955852179639158527344907772582291246437967286650083032414088366837234984990892243201001408415863303329042957708842844461333961460747626825008002988639393524198004086897354406532375206389968603824737313572749554965820124743069230112279270306447851916463248576570292960183768719687673683944809964759033429098254792869837570255479215915463877982161584691961641367096090683660921582597300776127272519527724158746301498432223256792044585423025962816960968459750524549913022780418616323370832854171936505193507594211834920537781892321550170499223065521979121144559129905135569779920946725464156931224884346430495814973728436756043145449080126456002174428896786764884353857943724997823450674628389156396294494316600931667860213861845063119431612638451160327611854305302745153306004319593003140443466096212828376658163922026864066252830599642942835596419286338886038124605780856606508381808208620623122148723071138802585772963318294505269006018334463556379369718754022380113553217917749021943773506520721097578884283795601316724699034958650638754260633315317024401981320790054764720151509802624415915014349185722085060511239667344900670816800433799342607451576818916846479083606392449429943706533842083088132002964597693943788508510429735215149150914176514127986114942748689997287240193970344043172472457867992283551055925710920628573600173333023291922559077470658225443619102966765558241443265239460379192698159901354192500479071423948012653309771925436549622817404851721760307189636499829043397290239856900419826619566285350092223797046034465768153054357664230794394058544788773814811537580512823536123473101267742134799266191314958224918731863022438810052713689663767378262312816345299068096859839639862880716153335398244480677518095014599999076621552384808714963674085621525694632083947888189297859499763330640851044604013092096321451969283526616195066316725721510632112554710100038003678335697368304713644953868185225305314619569548864026837926971453100948690057893023902395498185997843737018132903504810283987369697791411358382915361022380553874581818362236928806561286989094139224146602130002232718323327286819127773047337892905750744248119406419704836863241398373009319348626884526168132283543711900777275912099816714550468841441972289851595961893120054379417398964144793088225165677731943813816148688241982440040861623352340499179830250132757783741602411725360644495235338416903887042254635330762539220278110971068738753916174366288295148079925024776915627147034019155268396781976905183146246042499740263328685394476266633519298819446603042091260170229039480432846715671154541445353197630688648452110387973925611514533477218879654996160615200704863625377065096016449357200819467469919710850248503070302053547961703268973470566192641247439469090000848336946449555455806249305077206494458709633256026813855952692340028369204020214321777576385637900973131004414242630077985939948238408870286183654790298438774364521917257023036932517711456112956828878770425790304451110407247419968838466218540575841343092111899504830390168294196912197865894027506893582009103738676297297029828610344647419984886463096735092379823334065992843906636149136591997245494222475006866708561278551605908576421074460862833676148095713462797801731194110902728244463981987854796412239433815561948936258175666944131491851340089804936206515034155193565466082297498807759815240444995801570386710262152523543092560508746246390126564426927314731010267649407978748861016562104810104705060402431154488879454799105198080620922397913864043829865106581264927171534538394211838541482609118490423228000591901498075082055566873912587782815215845285354688267314850118823966864374978562725649589328431885778331985370877406434377544430549189125863920101516020314320241880724836352215680004774809117001464128654657929231945947483003549944571896308125917095283370344033653829118104283214883453056559596553547189325337222924027492929393927300142061575651471653324501729150460108155971256533178276076881463401567827343930745671868716014115649556946603870097488570799000285886049032440949446155225408213526592949030809053208036813930931953407552985921364808344574227372327838254474067369987162437883551840361454155143601231731189016853093220548267376230723922329010316221251567559044530973673634902636480776590246314859945316013153359419752953369074235865204646127770508832265671559135739663162098023064870059556050405494561231562197867217682664220352306196685693380774698204003087025830742528387066206212665749204710755314771600568169978344099043286594704108981065479601840742982312736305881752587234558115070250408232749898445850708308275529692136637152726183081104203706146746621902068747488791708755126812219646792202682133940840307254649199135232305869527626477456710995827660240680959216683667373536743890384378718138620164619975699624524303357322864253423982107827174044337114962503217927699987732823950270903614766641279242126863511193049238308512727767351337288350010788454876417347242735001775923558028604578722175247870353489937578060040554042910807291655690858823968396189590197177910905873937722428704415147175142189158249541340209856485210255715541390590472803495544179507499213660397491333031645778216734064545756917370288707758763265050248175629757106184788643876026955098131834308646192673175597539475977003130932020954375915914705925770911755218585870750221683295552920419365551496656540707228178314118786470909236891169977362989007599801369342598982029827680717863660662813409048857511548041099643010025192820135559980964794266994855332101250933936173864717524383436323210736596004833801192131567256264289258650196086196196747105744022624574242320860953850532573422669616302409673164135645152767834377539140082497813581510847236954964859103983831385527642235008891228105313157043369915580501760483519439855540269810276599159589546842015866896260884311459934220544456869720456716529052262973325582004280819407199107144490474494400814511872044126686236575399026453681157240080212667746390367818654042206053682131133879908260773189406621176966554559983884356575869103701178801062862952225313086912672671146746318455356571363390594704127741653153993655317522048755643535713986523716578428361757316987471680480497601958159310587720837314940681439137399727800345653127578639835102911012992977382443771831898086857784689864813488091200619091579910069843488790372239856728389945686712605698542558408475156923956290111672517629041182727476503447197718473632911859864559705224601814231401338456125522649809530909342847802744509224158960668920048385686895924889152066888278537956954045611225498813166165199065295921969496228547024765116229943918481973348078884601827883493407943071516713566734717490712163332298382988053208978284394780437868850060386284603886423505634110724350927836188689701539505038775500166568839081769698963458967185820718453124770972440897261925431438676978117373349052653616772102583483670110366788601688911484190046845011569858243570268050075919105868123846706195185060355280585765672060811766534341010790580364478546994760556271472444047499760226686443368648642439711099727971002570848898977008932905704632698940851875963428699563083682257287026043629145525590916547417749064044381851694061754038268039478137501220279844518846186482880525371853624592340664898120372719426932974404523430156851034380654305200753944313665152377956447898622726005515279048010017937243388229649753663174579068908864302201910974050264157289830517600227648923343277502809783407389517941137774913597339448130689048651885677892608440001262281134553518523013185945732556133092476739734455202843742432901892163318951455185007094226668331235427687408743841941787749485673436042717280300629056305024427900983009729339329922130546181486592049574038826933256809831226262882110650689904623294682906180286213094523031012235732542392658821817122585053851748150141761364349870253616045531994118957773683681634740482301824476061850027833080382722066354652769751866652658670699484625499299680934242029635505781871412303657858712080031004693881300865269694794618509129580956560016905699649662550523942084305601975856669304328703045072607049770181675902727088198799786191083244863170194831463700389815198721398116929810604322902315928186731851129825874591342011352412499539733970548313380172107342044484691617421072768896192152720813490596874874324427751651289630652587446695538284609652903402923456584054420913370122851486124499689568578091387716275261473317149655098035495028923653516048765830120761431860037930474794511871705403648613784166823100423050423659775341444581919544727148792258625895605157241000887003405143640324964778074336910090317274358020497237287654630310331002279667071437106385794054585348300220995543044464170191895923807805415582482151994207943219618780059303691452779186436320635855862700505812110048624761530881035584843553270237711963722144952073649087492501192974763387558464044678487031433939456855632317070391495989260575097546232832254158891884651152817785629549719774736939791393055081317210722682476730322625695705413895945886095118278829975849725878321342770119901979293994236377026998323389829102628080652473503711012921702584689134176337086619952327843772165521371043303343616788957856269600969287246733334689107973290285956633899487788267502059605346556914714714893919232330488152818214450091287044591723798620399285276627385486330585174885753216731529417407504850235477313934316402706734020041823626283054191756501909182048630127329831679858412244247028884231553672373855552569239711118764830186198838596422354077908483643194238996786693699167691519801276564076692637581080132088963075671004545384822413108583229194582084963373890890762476477501158655552362624714584902085420523374315569306756149599607581900083949327223342399183482027100432948333326447745928699236285807684551286235664842732599322878521928199568073424308028490657329427853693117454823301101563214018583346954037349345590192713434694965308295942996947215283788623737141842180625255969128652028033856274676335392457181031547170177843595914124499458608046967720293888607377887210800821642590719456215611365120121726178110329431167865722337307672827973136315441262668289652882708734015529006562879735798845887654195685606004974729354480630691784503652910120181528021802608055857127319936951449834131998892196375077035874688557590463073084601599741292394083404459474365216781551832766428602086747080243016176960970623920887374043022741346187353274061985980412744398046847027512180313318781415740032348925657181291913626395250570460004845849099302210431250278501319926167210658012835958101784013811585020471586738580472995411689352017140811185115894184638729443962645561048731950135027000262690794993386648034575011896546996922606421018768400576587415741574101173290747725345802725272592719726838928211426407599950406105085165870504550813619119140207573430524632880287187080920833651517176108135766950643352651108798480514283525557652998623858339449862027670652500455246762315907286453595776378360293759100065189493756624535919961681381912877329117351737170891490738570896428927926251308648226575565832180362751269385545315179613681070846980795223059623326881281577408028675117220134392144117701236580501522139580348817337409286304786885627933348101488572849284736578633863599233757694552225178390326436839686767307075669081749594209510020498880950647332108065000865539225226411644174558222976179902737258801532210961744654126999482361674814557268546286434378135694631898383181323822509662562823168667530568271081801953090613103996341381893771587944379831493783595146152297920891311782694958137897500431038898021616681611204238189292634499422186183495349132785678455686462513003334991821818996674446269717209168901833324472297827979455245271686577292599633652265862400714970599389948131391250481023194536439825809042353255823158756385052143456546617669476639391879502672423607222326354259212602903192077994050341476007648670752196303918061906729145693245069033999116378057523619916403123952769961531053144476453108940689488053020263690563414051769076089115826096693807328986946219442901193303888429115733670979892970792164770501388707629038050385992560907557516896476358556989169153336015408101959183421732690875341639171784486099125941210063044035979901744464015030748116684232971739096620693352614248369228700325891295729337490810218969248001285366281187696008343411574398557669810167124002593514440614553054207771012122888912631330529976080212930234731453242296724668377897673633280042249544048847020756806501311885300445630408253118367438515968094344670862190194317214465259519813279206669062782955115972574929196535374498482652511545672562893527668042287895688393942886791931823013202975550368898453789599894876826738669985423293599928075053590520482056362311047812107571006208488455138432402698431775275287990567996442023872709102815421281118150378116087528750805747143188993256853574334651735562146379751744296079941399809898852217667562123559923063215634063952414704242826985615873971446099733387212979502975818341263686965847828656233611764253048801638300843326008215045162153682545487725677138181149385028347909526457964177441197806068604763899172309383948571281179051954654996968130301936262250679256197571692019406291182701396662337677448276599766959368785203359658384212930336886255179306680860600579291258899068332614759224834259122374700673241906602378151044379059066988738817410357085241227022143233888987724028102841909924350053743698711201744867604433102227807499607363160313398569321972106241932506536597152078509514769025513131898667714692503381481161276006630729539605971328420915420859412566721134852002053173030718416967286850163515808633857030456490605637645150337012649943809113343630641513659045847908076267295331240303441784909746378030938245318884369662522672738905032503197766028333315450857931671481828278521166321376415000595128295082164848670455979351692747939740814708308896837222725690100116870299326136926682720870013007555909560380037669688056056934079582648548955456007712867577314092638502509656353539192201782467489248973537088722389255170829930677703253653455503200441624313949935936040664235833173434023184165827738508374180413657931811689590385102429751446808194039419818829500922271703315350551314841567848549466916761902317483830996147613359995010134630014087977026974307189240507262148185284126186702951631163617993131553904042356037986641643161806491139499245282226558927618757417672819080633904773172305774654844709399223723184407431260418212437003222835311646678068732192618976938056843472383296764083602156344766373812474974519436574904857739063524173550579880795997591877493278580143477470097947322420329429112244244565372750752902782079376733190462435198477227082411593895431006231871383287418176839243476562299053790002733276710247868075139874715657407013368481947114489109232846788077464079750061803180084481930768569487183635903129809809473872686607552573829101241850518716755402751412329561358480976662388594445111761274286712479983583830716081784518901599567489927077277308406072654804721916725722950200624088279759324420679527130308863765941553707623417203365699683672775039271369327703262313551647934806153670644512873675324352589920337938460877804992778608047335000042574444392014517640207881782648455464513803195610878241711578470802589924361081349299470636511264523121544987145373686483502580079726461347296359985381130656849937069368300613528809648235177252459775280432756430390261401976968466228996438972490329781107353484458705164259298710532147954969389475754730213150223937093146479088780537237225927464933098585386756966570881498729238818512732476765530875883910147708460695123849558253451355897251209172981318185585236639630333062161635102034483744588691391838463154156815047172524276492274555707036682542984478486940099527909461557725653663667665769980332306710047837581762736178791469487441935500835620529848669759375042800288709988396738144413473205071115001664154148897163468897173583337012314119103187253982009932778346330296827044836497426428035439300505456518408513615687150096618903049121779473820326821433402786943970388032452724132747472786001951594101261819821130054753869565955273374897171998864780277321321571413601329721775670207075723827077682973223843921458448385686674198433550784559526186779559660502962368254882310862396605876449160592799041964699593818437694924396361924281476753950859726314429359032660704859790931721026831204745960648202629593673846127212132963110748809654518913961364331417731570217133149253676461096912781749802572468381788017752918924293961111729034322406073846948370192820130451619309551889709532478555535279577856034878626087204962454848777377165946517831774939596816680828018344545574171179151565201658348675599573106084896896956246525969533623990088938706337889442316475177270755122634483012686132649213504588239979166655888404614377192553642495984623946525392073086428479373077833865525167807100280803566406456154144202222767125704780432599161552367318945264264261427503335845118130578654176575279333301847289105042206122863027508334839220684339930013302584382551948817842858601916876097958845425773062587138959141289207343601805892226981659465661604976009240636842772714143498774409521902372526213771418468824989626080749422758615943877573389305878185103407031534762068841122833878153633656161762037519927136713267673878364000212950943016652028363184161861923190298517880209877924035686863513999891474767290667508055520570400012857317978245517715071257639946940087246892050981551585187467959435238995620288714851284218224858711788454747819138557221004055371382453903657225445852225296235311591248116037961301152053860529161040352926285907201942752071200764963056883584214147199516016069515658494548684489817555568004716512972406090440390900713770401466932330823187514023906171608378726606760936257709059056431618027318608767723975814441852536321839538608453380842045938748306245049244806291839695472634579130541755075008217757061890054296382771208599097373836056464298760412526405576116054407086825107703771644633594496408140969592220516454642472460409309511845166784425166868236328227513144586347651247750630858532284307457476569462450757596949366544918382911398279962928816275980740977508136438637186443848984073825149859837361903561057762773338553183552967653989305593731170099317268367347193719136198157659200658964693078253720808511355068304745767741515236280591797899105402444704525282439389657679355476637501348688820397834654873812456662249171649148473389106972367840814783843619128968660372903952861073602658257281085414473804052666716744297880325083459915059677552392697118064187943718124127940976196284183281430094652807851511147914814972327770854797428398461449141123499640636315354754227598412822036762800196181002791293539832434875600217437717037928891023770042147913698558413526186308153564926915981106523819222642959915416723840639438894727137232040894119812280496706618983189940293266924595299324114061666523306268669089018403974607377451208969690373744440176376663971398595264161076119999826380370797937997589299416675430599829330742029224766505887549849400778056625364395637478787229912267721440704283462931537730993510638299381138752988162774723753114702684298566059364172099857132199029352179529586433492091499096886138627251158041381251844309107689800179142198838515465663031552386950268794014939503210401591784669502718984291235123051305269897097890141604221463105533566653043783502278972106060751235056739671545398325692037530434502703290381272768579310684370256304719649992134553365719851507849717184866057741834920134464994077206860341836548908413312975321161492590862967227098687969496599112564526610190272616401712010285232274653136993603402153654447631517053983984894433824419649124701532975734695366626397510310531686925166425462205373603011714976019873370476341194369579192801471462138201324304160791183120484261818615315991384582958309252429896756428073551993519703383221180909394082829535149314907656569712681190487858636547952173564536526603827280751229205845794045597623060913849253163365009265039715642399024709753114957801980145786643392482493567544787399037586044049560556987546296884751604854408654841952557745824518397024799901392414746975986889225330848458681858961264579872199237471694201467132062197150170835403991597030476966648451759942704114310116401888413425630744870732602678699413848766885008322758608452515455301940878714863679454952837383758746625966147153921092324773283023154489632898354883961312920205603465121922444117868545143918401025115013761978702253246577865712939869067892557460440180216025116100533029868114716666918324915763571404545629411070754965921010647724689222172440671638118455157061038183975399448869728282482864847713090123808160557153327450573182968205693088582178122900615242654758145151719620717208571756550219198708051144944728427347652863900059247727650099782090441989037462914600980776694168676277436718020212813977592405420249446124041559810481601583123335736365742130435958526619630649521368970116675811853999431861776942431876802132931910340890704902204770503667662490743849293441195661358329796541363874522202766098860619060302211628983638764720813237228724553963019495550031100838027991511038233359897888661557308061204223389867143973549778766492387571138323360315139316234284979859766871516358429660567290705709871373521082194458800058954485297003108697278178899757737842944672268726769539860443147519542520330681840904548048568897298489643480825972183579972580880667496617782108087241330396518502622612852681058528811940550118184359307413164741278094695179160843977693222643398329570561571476728730997483111271587742872391951977091271548234158233558751476243475065522759738783342998290021049086658064818353749534684274346845470885328124188455642999000616111896111141680325572647956835191625583789690775070363098730716960870543888760364136042770238845661156682591876534690615986337031377136480601164764280133048152374527475961454597519698896117613858474927266789450125091620490052848387238700497447099962699819526920995254188110342858218070750096945890611088702928345791529871412564239410167931429771146900101417205591145756191350567133983235766909549658689824497051021417953406410604724996734423023380211461037572094130755046603212848297673354985339803281717749481590399887699199845451963042271501091780942673318381398574854280443624660517859624685440382927340105000023684325319296314364445612687343390396149703992852624762589369989468056225816794678066023050761221313403630288378320332200405471346106525746878543468580016075185818970533137067037773047324953029415790237797138891418559027041711132258680117943511863990357580659644482408088992761870647076905902755447011732858529042624064672756829920929020602800012734065576219381502113383651436646107770517565926418683402532992539158504938356856622892938244810833945833587841205747299811956371584265972109437756823056558650428083129249143407263965927459003329212327039369402675848706000841739731687867207282485210260408822106126030871154548665307056467809737039115060081769247451073885039146559651414360526159341327118265480643009043208484282093025623719750229137744122555034474637573447278978329232816298570386773436784940933691101840842809147517671685645318790082215283389482503126885209783620485369490049164762107868659510208867000348944388209169737086030571376206769520512854287968477814802427537334559526794751662699080547993068156521784284367520546869976300056675424269101072202957918998774977972034430831374866114092131975236008277175608137437756624322565600757351800760031265529398702225456630449561093100660230428256088445925729271084975631307150109971188581558157131945315521113920157904922666657209048168247788413277078522522267966871474360678513686453905173979960394816701567444171917128094090082316778707412474665312168710086676675629531172504833613060076385494309478857302394562314577802237231061655715993803895939026767544439054850703590236007772491215500225526639044378320417215242107255460571999285619198420173248204039166919447434623700449182196176445728714387334587916152408481017613658807828019683976662855208603266905539486806168452476382927155019676471195957579654056800432697537458827378781116399395113888653546845856035477846291954070536054583108233509369437152731145634713568111076528229324386707922238400898684482164535918753739251039268185064993917544756014070719080916364851129521659636877712452970335092584453502984799762362272607309855943465836778791029052056012774671364686836110932895942822214944793828734680117203788236839938016933370897281096028226807132186123932243134657272621544413581943821083944682250002715383343217529686915215751486204776034495980239682459162649430562652563210564619539372870403168248048124640477726729611539311651998266169485300116067255235214949433915101788990496578201247820442959685952265410710690608252872353006556951504802803704223248110901215147511927970411688592561341587087686851457454472960537246524741694515097028425566542737943242810759957442850097543397290079137684418045756031003063208195321891226482830288754014756199367192841256061874227069091713428066144306370920573294108098218511164641837382395815799291015245825794475538320655852349262134789164825675561677370491671731508601686890948992967930261738754239889887432242327271141736587720378988544547632413076335287183656013989410228238132974293420148828338691785185621559921575451833318624270527524672127899098494032503854295914721656605110966319400141981211139318813799534984846511471846510268926846699269279367969190695118874946259593305148126381719294671920525909311416463243867952890813078917808653312598270779934405047195728494769860970505521786753817492921606740906357584479920436621375464411332913716910740736852181998076328485749032346644899274159264378221810689912376792824755334214946547486235929527620046081590905168880907149727518093375685353728785847916625168009729498594444810030171579664713999473276547280738911983329584456025620475519679198936383105353756832535180988391228653813492747557637546412827943650692279329634896763257781763525498729838900467866880256805965342078649027763041038400942948460349364929975565513106030710751174550324512883089591190348185632040480333940730024407792044140537014444378268869195047990414888016848637735095418593866173158531641388691642272396931016576841139386289067641690471402734680047682563520851594899694359077871526611182567015042791234981530558959480507980576767201794699756599183782771128473753889625900499285924149313806720875658818423932532532692849028460698216759550234496242125646581353056059873486751543278828230142081636570126047046967554978046995121573084942136803512480989697189221024195315678542703123252943407469357369891031130522692348977879813634357947178783334470295838421069044444708529361534973365666210324105161687449343599683262760886526722217725486882329548874834172983463337130526610986166913840029883949114043118836951669788783411109876015768971212523497716744394569869342570131299440719912465982749201397318773092436332178559903672673560331726852313224015995784876136583676072826626906482255227077607641255525805140022998452371562997419337563179668205225628486532142973648638563324477358897899255764193278004731572484981957328424338754278451108401638954439750757564666996192450643327672790485378369087146904788710022262554802221731649243947734433613513220709279190072639838430368152233269553159908062670675615800149974935477798136247699029982637948812694706993304887490885503170544652808735482261788807406574724680127705038958581169554939995777358627235616115082604960880635285247072451263664959567762029478179570691607376498814587563993944100630978800109045512723573450106856684593149908879645202727740352854795146994574417638495627509619155475202192753034468437644370153881194691058153708569910415196967455949219963421065805488690913853012099151133097150400696616507933478702689554148573452271308065047484158034206167027369575072142960352166467987511486252105836367964589021110858724371297940196802283084998118336269007630351356630384588910492550980498930142086283614357949757489727929534303946107913224176074733797317282650647406967331392737913684698503787067071888668664427096552084626332665648638967639833497547243349333538773913438950192103575775141155392600085822512347844532105259526053590123275759075996923524289427572112680224343200034035439209447290291167871341267622569588869844753553292311659185788337753782263088514298730582531889026077912889256335378169996722632668896611535296303780998914489330642060380486286695226170921348988750376081133478662282787632832438767214715112711830404718474142798673795983219518713499686287050336095821824220812973111796946339968198127959691357763305661977763427985697237468080075418083658937015427984697946167091018985136285840260181148565303527053025158015153091090654040343846270774673201151579364772539371195013679303440358689267802696204830371232299418802267892191764196927158196476789962929049593879341582712863599187507141195310037917919054279165594372521509157678659961966340856538383714389020276157854995677719744179909335871162591645616054552858709569169302289942762494268983104655652978809984615344950008997580273277786787531487413042490004872194071251886181009850086225814456008937620304495964707151130436017466971421754395695326415226649931324637177550576685953833960016023709807040823137028295946611087926317660085177453042593613273540456331859643322009650343753307562720884884637000698577601776708539518833347650587390242988303469257735265656352200071980951123529638635886508301013128602387086344742833461023966896780508963182598740438375477463614033454185353894133446744325372501843205193178380191903066420258599471915387534095772487055234094106019938960951474241384441903076320659409334749320582268034538763073876641858835446756487651465175309470793837873845987572215971383223277330804585715914896722166004354815964216633928436168665021157969280091425854785821065697055791100675854301411090924934091463913664525491769638181198075080850767374748303132609683704689835705283217236316031299174787569498894152473930437931450709277039897542776481248953632034101422166908516130407994684760591056072602189582393615749116094995773628758540865456903967045073332568089628549302240912293566993402480780198358338055567024379470433276693940174316055044056305873333818068792599270700266662900285494196001160058242730805011171940774888132591509549969820206890869020208304584959706141631072084804663418279931200065048860460848265353422349623703223214143539120146490962125758335270091477907265649034457358089293212043620796687497013083998832058800107265889573138717986933908048187227173845861294131078957053392183694332911432934401465537376639228665292914232763928738564594688030813404153324252003671343447300470321199387352353329224912444817339752354944801360037477011570460502576152785277706232554971229010809269732629461618438854401084447590030774858856923304678073479182894835969197439377632165971842965497714911152307158816849725593365128313081078351750259855229479152414618124422353532479255367036893790659323913018861019711757279109747055949201231081871469703130090268260467434230527814974102161568823328128418738737277037305782098902371991986094956927934719192275246118088996331432890401450759704173715911361547748369144432043489051618910934295789780731504069780329709624491730873830792607956959829043604764869914105644251446566765491218142936720422394867806516304022950329881046540510495496879781334498792373848399928867082917337544558482656309515588380469148458778025936868063973460820196643560801982722354997546676457741035887712684893161834393848688402009616458148249699490101231382882837796720681797939200214408980628931706685107586536191654028985692428458048301493526953852924854719238459323398479213671264481977799999264569627636446278706026143619341485272034973394497815086133774184592421570450007398956558265721715917538136738628227692527612849053631224038719173167439780188623110918029023114665758750878337103457447820494480451954945019015462368867120906047043798320665256838591024798287697645166739281798437296552631239939748354173950134156779219855013702467460941496369657776239779138063743419818190191703620250111688739678767870742982158079584414793052062007316135575974715564979773321864389325799910435055060697415795438602161660907653493283659219271003239183605387460535626232261219738192561408582913614622033974960724326549924962356449048775954887141744644970466323097709202650555824638721938889021382767128287514359518567548740549399807741531291015766409116810959331109098615223270312766825675934749722239471238209968003878301463647387529750448840041453365798425422633518139086732191973899909769000328268330672364846046647906884224424154408299561497733584648367464244619737443819612544194947924558338757182063671848612361811182461415306216667896589556733194600033078668684589812907975170689864200363800369567953444497391731991827636637574777388459766511456113957441262516616644150720567202959154194654642088548016196751235930849793785345666740489853716357793396363309773729539906215382445630695228206558619786808744287588552772536126350163869124546765924376645790870396715188179084975623589178516277407532572831328558084325456949879250752828650441079902631358545666692379033488363307879310352290888088429852495702490355920586523667560023799254893735954553983928834071772975980916473290223371747136935210171564172964980174809028718978286589832982558630648722586152689288163677540075288749546851896782841703240498825992673742979924520230727958810078561074204198366415655600866214693678903104536186343340261543843971571395126658495319993937774803682988185986230939002502959598051920395717126012621111144348067270368765388599713532973731457714887650540075492894065482137698175649395684087708713638087368782938962429332267077821299560917233951701091016373784890689692821693224994039701530803358950528719365243530879717224930001573483586033850463005633199782893219999034258406196713670839015550383988273736741336282291458903180717029556129646052863293771292308096348604756903846348477640226513067866475508598276499199355757998440638502754751532526120513478095585639636826632618087765697833906369518595319240771042519268367168783273452413199418854192089805360545260435040536081617717360985769347866874334548453089557076275431236813509099889997874347224404613123710687087997021763068166371860290279021150206533460971640380337373119877708619053900351669038628615933140840601950505922415346797616859583875767772183846306579942422786644647748923119974396168944412385333064110830336102544667845454998559801502879598757547682873237744578452371266017329417672507867031709716148404837930479434242556919214289368680966748228697943984096365661323372453792527709942646912021994247130974740849422422634087011430979711340749195309124508843728911200200300448849949259156935610157549554290305391723129213530114939743067205394995456972482682452439920647443936577463670533404824993527137517442128263461390141812038744807809247934880265780614359340882732196087780337010493960181978792680741146014560385889505944753497095843894612615543503150210639001689314756467951988088368894486687306198488141257659456467677772182425159103285231067008945654188039966594039824203318279664492282305299864707450039746953684575043632935878738467024988766632688401004537827923875230429540839717504360162670211452441924853801273683240027773935019574839107188243526312210053293396804387399956640962826614289160157496063483236640022334443207074577981794891668001000858219131437752144584476929678124313754651719780348696512015895479542738607857644711382593381782605112113013182818731475050901512688444592691202687362297971651921218689731054959692285268910464858606718838774906008459609932249969269517230965487745947608800100834415121337570876921735138229525135723778956576878676574154999029372646946296825760928406841685334290030155418157153608514980517181922331086562775140674446728094580243759013031355136202022147731901954932863571921004178680820798540383220419308051043999345977660189440112280729197741004885721171851717511834900020813356623141861145653972527094246730251344846125682175239452237918493218246634057360642335422874936704099572607888848007701903914278076349319759621029621945926426944031490877772294598318434399224324840156725665620274962617193985807466035868318569146543252548504304765966849217471152077362656042291866078916018650564883216992996258424314295191172020324100978768181395685717968038310690225820533062734147495054831330796470497753966446313322570875980575578720166722779804106627440323181379257894766389606729177349680056992015378680998456930902850043175199579374408826343150485362968566985475630657749751952872647621729388974443562401782781245642888512707172389112114062691029210341978930391166284612024842854116127227025241175398236281858653167727163637742814967337557187819927855909367877272688881083874566956456773041062040789869139311233864546553737916040186974457183345748548458104524952407185662775573213142485831894920287661783426752380772040314394209398378776736514938241623741114111087234353551295935654915002468529655577521186363040699408429206413103471973504107173000943048058615554443321990103642260501400104998268236631685760762330877031803832333999584552571294306394566997486209013045214668526140003548574246226364407478991277229760101261915351828277440666374198736637168358651341084372023820263090652992036345304681009455975192351208966761120622271262279203018090192797904043106969879992482636813860610986783303160559146247956355481312217047171205588517008218468482528464702407468309942754544719730728276650971817602721238456774337838940022756849160049548508202524765813058787131349936551038845252573633304699220593227938772784987242532533275258248541904356760296579633749258019565268857187921605500797138540082758656696307097073707050812215761687231589129446714685999253328911184285667933206914947510325076864700994481061431197186335420224860903878164009426798211397739493546605696554504238108556749464446633347742483727975834949269177347424331337824454330785973589582230581898978368536476675244777920266176356540986912119318344332388870618068739532106207333891795712057042467971706077900637718168702707510414802005220205399040902917724349872812791438010867339292524267743403408234474288832046524460937788353438435651412731071940400980658256856749458286296162398324844080060929053571985207545039593783433195436207157593797043857481168385476261363786389785402403872406780074922826793055413438201030672045333572468796569599476329964770141350212038541190513103999572118264647440530482849892729861956281705919846889040579778691344321768351801840165093369611977172656982588710329275183041714874511177637225769774375575163141434593253119764451785962258134142904106150198049908767592063345421960183899065764670388332796911708390869332754543882372785386017759853339724598561700817873586896414120905594136748944619131068142931822346325017175534475078658639201030008157174494259056784095133313950614194326915376359281556308637849537066668369742328213839123539182450963772142982845935276549882483750340898525723613843099788697667286103615365147353900365157619394309093279058556378278888630158724560562953390690239346422004021955063178006948485701649830382204427406582655512628838030782168071460965519660040222123414638306482054475163136466728984818752632352223225633784567789801833295581202495836533014567387163427834378631751228807372980665710703857604834184786013614488652156107982209146164850676891306783736277051847118593477456076015481623457671756256018238056386367108686450322632132279821953243235859728872042233614920645852220148025277681405905742513934793414317375138406467163664559655820869744456082753169396918663774208576667067755310273313667212758505218689846571942063734221717145156122256291648630940852553455420731078040740635235721656398818943314603648154718188596545523217357632462166230020778849180302755826612656112968379534076615270013104677225738751873580450258979061426857903960149567862078591729106890753927923770770148685707170465772730317936333382310192482171559993557653195553143861006570415988810920858296103386416428923142047814928572878847781857135435839388091886386325584768674079547764306659778953294364286819556469708006035878061039570701197482510920842079015019033112966409541600610262358786380962311427365931102533689283080672503904179713809087171721791176827459927560464248234593848579031437926754287818966468569814096682119317251341526369328875621515641770144298794873264026057980620168586510886167187446247374089583877028796187749562635132480531201060405133317967780469449863442139111869521950447178723995451498627729118942541134804806757017477822557543465327081737670500507095580408466582890152878242055351254407530010868504835131607723491817446273899542060986995544840135778846046290652786684696043381909907039943945002863467963921658787751292588848855492629275731094129626263832069994835685877851231777646282216939721183394993618959991326033560262772942999559210211205880822519840932930502004779710470430396948866978362369614504922943479497662910610917751349436665397539318880823559062725032350303987782764377723407031990747573258265638942260437832969661291280306772240802375872140491495071636710572380537581118151572354925752093521902520397259556910212644840672100537111255278765089663797598796490056396730198131632801762114936221182761545556479075422882501204228161514454564948511569097993677803367778112161040804864007317506993541653119102069207703636527536850683940246030243948601351573624129818297583847130654700062885578783125824392796607348701741761156422612482543438213522301935787301417004413345838286354579307273941525924357778818310827127093358880756806682514349228509946249228768350900756349764280048727417740306301356504907807528546018032963161181326446581050760628772125610759924818840802378778545711301243834434205273098041115514133833230726311492812500179541208339349055609833363365215544290564058990451154553629548921941002553630030632307478859745647712533369336639243330434233984914868511801796951763134571277083773953456126538714042600693934701910309685654538468598954665843395044679890549766701129334041509969854999845148814587542853441228267204203225716664929099935894293549417550739452530082804841964379459814542103730925740250852244607047298643303633057697210322612852994376019069083151552826537827710184903720382997259735554780366414457687546015898618664500862675638891488770860814886804306335179307692082452482499189662881477128549182005252159675190424085088148365773627298144152020410076070682161186495540229410179459519621283962701727974277139697344109838423036792550631041485374877221110182173147402617080190950399482109452158272610256765966230447842832727827379893153849464607933051239976255312173800525637670456752760318700797113444350616185746077283334123454730992193819751367577990509914146856682908630128951370014923402964809412482265550426866087964143086287454233105175754513013531219808857661214051883455831681238222962433856221897809105955868920285878034156607103504629405407043440984111682064093620360886773480111963394114233538799416430006465216662527927808041817520133039512677045798160803100111591454415317377937487731404493479988211671661590424514036713823392229302045429919690727125116895201608031785868945179012764038348400251669823437465687010453946604129795673923539216070760436826337857017289736070741021759960837406757155480925339381928380302432220414548457843146532208975233412770731641009327714365745554974203242980210600148416839202134275776856440914446529984977447567608650597974605774899354683642333165193986731332474772068369062281642165206995396313627442776228895091896122008619102159741754988488392282757882675786819639543882616589820544444895907071719246881094487167219573506232109379383977141078563119321825398792866220461255384733721102478917235400220649021040632646444755359185003993528118523505960702420332688089570168547769293391057826089274096173963165487388901579488283868440859924413458471949614465198919088267335753451485930839268710453192689814402683163413618878044300839191323996316381624873853461864019002314709145199460852254921829465074027690966467988618671858244874146922166561645715861677202393875013579311480260506576570589699804740654189124760758671216063401132481378746176445318635852362393406532602927033823228229560697387226678637317618061635137314494074384557727903542876870828657030657258860767793945060375994688483247625147295038116530634513147819106717972437414017318511428125132015171786825728949632999964400308925785797918771680721700539537006510743805086860207221307227774745373642436607463928071809797855708110503319813099489088174814892831302692985707875003384791275486925304302095076123082481700055304615362636883042364567006342752886223603989670209473697155542829428908799337630073949331670224588744357980969106518334905306178931378903300309812925973310746070738395552649500960691013297145747858096601564789174616681302187793042448880531190177995599046211913949998847427971930594603012461773194049704254753009690243218750730704549114988335566438762452626954795529230192699533113472658453098434887702660345490536545702759222380799298755003606429819015003649419994532890480555644595746180701459294599609521025862593786467334995389915442559948592995791774670394903584510350019705941146217275239720573061126899786674260125057738832717594373074026360058939774477338049826250358248801086690201490865749104696236759579345116426717375439029317305978241495806599237935509396459129608241987631774801107041039960545426446272431140527493403937009224350615278370152264478821293591672607841711748994274845854705826616412313176341947788113907218971826814385779182355843025042704099935668691594922355808197836781414069127679413168322286852266766938982981309502375695480023553632980851685328678329626122757344190532617767899238162719809904809090338498130171267206960854175004334672544876317141001766407796352453637170299440240295194544892595319274872237025090258483456283968040952805106741544929152884029828243282974307712532441799947650265303730159371038262992392378206353444774687523637101256798847427686776570067540709892393700177169942068454995940355464954226456153826229815504580891705569057418776532107725777682562583114118595971721743654888728683335052250583894292968661504690982546930555560012884115361851739572203855661925995735368401216112910867734347162667174894654046138842006493620445028242137349894316147683722212250385533106181185178044056504958697512091158618994691320584555495332814831029079803521196591978787682759591567105920049868051722709435983921353483501573412745789035773511952866688781083851961481988288782242589994141894643023237240986131002755270661801685119055662380995514562295810523445910692440558322275278811227066324323218178894560317257949622071180410225960146267473139230462569271422766629392466904598554139460508926068437070704668007632702130583239352077747598175853641214794640874612277113139357416439678920005363014640648103549061281114666483553105293754831989618004053882231725778773115816166802166614293703688747971800788606062320251926151823273359764513959061858832749627802696493331793458589144299540414484157959704640159218927041358890058575406718250692872671355528233552463836991159792899906765521648172089321036421652778399114452887027435507502831452341728826314612091522113851992407836725101903309770704024199822781115539317036043194281132766698748035601170871459491153876383218438862654220383272337522634326289695809981890246905809612533708188385933306052684341001320982180945208676900313856479495275902681109621298063553721552334359238975891198353069561607318438505367755089663316823199722332917212702650616371760721679006458033452397174905051310599101590509610734788084405219082596476605381579993370343106293328165498334669804116510082592608009918279981804651745080403671440134625570950478995901850611633180731391309605870519220560952446853852236807459960595008552824997824385252242976210390967006907991876160429059290553774280461771783108381127407450141631873088243389124187305655775230458989154428221478735809078492922843490033436067264718018254217930168474892606413247169716008325861330531797004612201212048092412661896826161497280372009477793350637306140110190831320883928338863031935857872826106276384593846428006860239738591541464579798711741614056946728798912261363808571096018644168302875896443170320422417241944863236612170048560556301032437850139775021988754261512144495255449500687927891326995733063909575418716635212197200908765438179960015932236837878264349166256229776790316500007069503563151100615264259255525324869485394236822486565825497929660675859144035116136914512221130911204926489007679588914575734170340881730723933815117203993049373938758693470298619323281425062937581811823324728921177574481853606452201793313826742693756494044914934163969279498741496354272050358928013675210579600778029757420783206003511075087661657413981455889173572286387424140366731979770133517885090728254690251699701788887861939703097720865744457648509401008824498709567323664066055623275173906472079273212180189428251898118657182683700464183857852726163654607314978190357881924138904677266868823767726343338366299263202396750997561220604378014563810876632332297660634117091704339851236075828095243530812064322240216629810529789993212009281649609961520862346671832037458657062323808681211402573589099951933250557443244892572335752608309220088809426830826296114780464052032914243484503461258203904208979911413789997551318702861358161713854790052475306913958013958175693526546339466917361785446621704438447334251601514143593052440989717044932262125073382144932993459050177801215840970338284618668615859363420789837233283609011873604713829877699923830543632030344540240026503987609251071866093848584315667528423428861781238320108586450544804287373485564914259487807823462806811846727342611324448635493617670449300000173940784138584367023223267473438359064491220474494107340515102905944934800372576601986562765795845357393778487458106276867427171184142687971210211745547089575024688886375919737469356241390613430827437945609463121875735601396293771604892267896219592317141305989634383711538282665435746978149129866644467267032760242040304724451995126685590556976679897659562140918198698256167405618174934597504147374698615592781816854949250528460209141696912454307445844301639856565902206292994280002072050010884941970304550827329499806400642505897884448446647120116583731992261084006396874304867117130768376195423550930517024694116290746169038535551464229362085015722139775794407874721181157337264215217217612494454216537059516820849956072437558219603202746278216145833687436940437549428932173232728470452662352847498152111503126303606454066497365020862141735438369253850383199862534748248996260677761362924850243633984382834526062981488376091328003157619249555174181974135118209881316192158178806055593914771180277748407070994727464739678439050522242150507308940685696842892413197871659214816225307257331272250735205560854063075736520036866172026214532672300342212349243569685212342812587316868736671198226453271305328541888370503672673170191350647413725433996240382080197779535460576157739880775097353006540283100152473938200245751598491329003988384628839469489536417705185568025862929009801275163295233167111524653837015353799650583158230312257089715363016621600050387880354036660273133236510212471968035286417709415337844442287835717729776559947313170623462067858725296339222628845754218485586027210952330923280686131066175679786474644176710241541502756973719703476093706530235563416605174907096593286408728557685874240991874449137332342905089814392677573359889897663157574360140858510413202572677353958293615718203150988633159151281177608595373360972745687233072466735516985809950016851252854101424679278079141295331747247926469996514463763357541985293705907715819916698251212100203283247827639288698824576987225154508691265049407486094745044204005088671472957606869499906213070976066518861337450982896897107677597691590285985490396177764029191632252803109950417903998326057013839164021908950704001289561088085185487627025114146813172051270017877038737042945218367619063812127958934866143211036999489169402332675471652213503479942165097288251656599858423732734494220988570449418436050326006734103676756937102704433546831535259854550392342593562354924148870159823247987549796086422210287499263788307518680712396281561148947479836544856278749747463286459188269639977922579094007875162681969880019402630616085875484779764067158893143728171259487440811775349733591410576921831294084377900440664037260297141340093412917271042409683722029657654598355320566654674213130383086754818275150452745448874713623218057178123133902545418856530972227888846439707962333119248480221286783933199104609495815496564486669968625363240793590319453761805724262175978031129027614887872468326602533798053094942488643929525738107965111733057067602591421419893211363733591274288623469630760111865054313602758727081401415789507974059814887118516676478448730219486396309283492030664217637963237449739031338192421431908025966005820719371901874523491889148709365386415455307993290712158239574557853914842614687130167587625042136482519439806788477544681614594583750004715546943174988047058934032631394058485078735107195043910031980163594985981755298233338515636114224677114301839846966837853157686420666045675543125265257580263784735680987910293342886984207304490336981053628544362449539941398668859367620899687269649296404431536364651410969501677589638328682914835965203682384580653007260983689648778131508601672558926060131375058437676754744672501343822656587879657233505584643624149897324008491114231571317248941255851454551412436178761550224535804994385252393579551797006032301001829325652030772806284681008624559245306720194692270784284002029901366677333272624063536032967338753032163136247312253749976921238466189971315488518668237925470586658800506046737314890964830886853602694948908147958067317989443931339299555473265878635518207939896828455407632555240760331571240656333679091895808011089732900727588741373851005147987485983879666398062918454459415708702236739918805791627944589377045891782260537571299033365812981977457470702715688397213947747316570055474577102559498738235056154561697523152370524103631434940546086723448700561607237174204243346521765992436533446604714063761749036922283790069300541463882523234971525430062796710135146136831507981547909083885806221567583153138275806837049264718209610355536713813853208835919207155578159661811937425261421280628029849020720987274877069676674595694523808599196500213182571069703917792939422532673819600471126771774891788952594357574369351007993100312065432813680003857799198474396911971531496649251496197910429886511457622141475897474516860034399133431030105611274819678835944198599537953489003294082216169070212556221674094796090426665525418747714049271722394077866364156082164341439444172949422005737233991986873093760224917581074224610622943655731226515511784398414732892411746771321586133411639548613536544394047136940685316699757031721613027599662043463380798897217730532200103599343736734049421506048369293540013968537731767200247581195374682225242398396434035361041144665725306132596706061959012970278199236559893922690314636263789740458614856004844851479638963746380123498743897428967681600438093612854859605058778086173633755291966391602391184904834259384904151429039654683135292921421831570614594962236367339685492955352997224402572329710571538377537276630051846562451615298047226902403420691136217169774909314726266684240263392727354795211955323424537445318701904093846009016035871080702745520961101005454092665790524387445188659156892188918799822531539096459640017791079318617807824056287844265119361889672352728942429212080224774309424972466945254117476568719837110464344640457411483344282806441889810261543378596718502253835519843195496811075982680964124231949683848951585258486916830665952148061169715714366926601526710004648571290319795405234501751483856426132597445946599360954955175509664706807325666395964151506959219809859258019467088700660996875323591185727740092551758851848181536938806842770876224305613557511711283577420892944510743728159271050964284077617009140938679485391630399730021024285613924994678582911807807371579446485139578929825511214111161338367175763276651771604352723887085977077910991193623804467743877537364142120222403140112192041093208762780730209794764980351317724992850660535342825181183043778820738621641599286071198019409487853777447696847935691742299669559083022965774143889239061377005349272728486019792649872507125343112090929663121210201328502989129241619883737153817628990792136741004686769957735488542583879520432333999728150582461688488385802864068446662871854387507571159510907700749468697508885414853562526705132779780633184120870447018579789409651612537033518259334966949412259284568113194208628285537228056114330881288328799527036109553410252068821889480382184187406634409271777454310890157343355099724054228911465437332002094161789971972921596414467949507283123110040026815508877890804509998561306280598763149619065347452903028942332819587048782112149328370059760602669748640550329056692045820584787150209311098900049824284941802772005570569517109571506069311019328654165483476486818945014181002237090171908307117015404819722116234947299465306577140516848761938834209788962733907200622923816715917696512255450867766097944551702750919075346389331226224261896747351186225364321852085261418300250798930672354019912739227741544337302988741706002075989969233766836012392380048155839258172989004059278647780385934875955359086546574768331286635466606823214590451083615089762029504124931732319546204706969878454660119340339530038769318242013363707293706535167021013604835566080129455263302359775646468693881053446022942004327051153315056560491970280105465682526105650406834758389910681791917841463792518031155832438090740864169716286379445481204482153738211541275119946682637293588110747403592453237097140359044884638480261237999386261373063917249969961047005721111099431223463791032654687529838918316401917204488726697945568001118644383006309282984222394698492124358065918153093148767076108161217672496574681249455815084840871097058010337451761416928109582309518109157059859037278938952577516518154082661153186862685349452103792940591658526773163564418761101020339080361095012856846825296556622208667989138498108932159361572796338612374661449447453546600228798725685850434439979945271783635948820518447561853759332089180937739746320662310646661867307975879820991731045159200659590940845977758182382583114300133809598352471984377229509816342255789649688467083032328181375890873544524681898002719436750377062304822403390695215770153827059744189245485057800209662885767311896163917355423849524817784129268973236761563791354225910134597009808343271327317534193408138767241915554310781795372620981220773829398492507114470967881595045554138998756027603424613989566675632934574578196949006544550532748595915962611407610065678121732555703370825528596410437799327209294768263746780462187598984657515205572414650402094580913010288281725534414699750810634298465383008071462646642316494528205408877428696920986720638273981908980905162986393432792555793992431862005353223507485451978258539196826086642533736980845078109455940013689328150109147509501736974583687834541664720365735495190034217826775064697554695871795769686734845872812441492213668963887645494386978119796755246192630416643760944643732283670454572574912686051752271186099840853800748946859266921244489094361654064488860239285094737805173608614661273040067967448145554585157954197157556686084775553409027839824977861955349147767630613109516986627740381698524200788766494974505065933982521009336043342539908511903200012181836611842853717188675507334199945994918589199171816073814317953046902730997587763232021106067552314585464035512668092657120489025281415241185888196321473481577603547616498734289087385558966873456688128595190849242500346540221507063197117774587071003041105056874545296319779414981656172123598572108502146002239446399521546716223069241337452228260877541902203902651435658760561332894953313667233781443063477371300025089170486308565986229846626047271547828412990214575178726770387292665736429716850381182417988047404424567923225715697494358035767669737007113036404726587630116657131451844570319787815997949368632010672280986913445176484180938886623876302331051040518368281238701473895820319691669272507514086054893211722456797951330276079184711655418006094140134227659983525950471278022072450006016428236079885224341161711370333678715869795287157326604130555521918723028114563277279827352004795964149416758839544456305738304867130693560963709384828960616903022110904886815685848852204083071536001617531070467570622636930059454258860098740774812110339649097095945971644595620815898646699518441975304013503254903463774867343326328268517888527607817281001010709548798977967275693181722488299875706054877968209977299688291017932622482981243218667387666763146293014277136151786195578839667346203627596107644875548263217539005687561791406762583489967232061765097459530460225612720648172288402657529704071585534760908285677702383135277923811709900639048926344008555819599129346585112831162696824276521602032992587489340284915494536081723246863536918566423942144050757030032329578846445717507624265506242561783682408693128242941812407480372834481317555940422806732043583619981312391794873678492819596112875120265121022211809961690217441427952937086109312703864461561361873050177982059728319683556779011249334784747715966098455181150593726608175534588709440982247824976128737703881938419547185619983612599400282227989026229897636771992010367057096951411150735963152015394173213364805223591705207435162028706172943622417699379463749103952522932430796151010137504295779030555745421360642087755324189436030284899748971965762549070928356831339777610055505165620713290246643335116972786326959520061387385125425219427140619696169456116170871394761209706214786491673667353786014776380066926078789052323311810517851472858372080768222654859397867759910716227676542708320627614281175321612813407827825478249805664354660993315396228378084862082252791935454657907932565708547736909949155114412073490659383366781240920747187040827536724561934487052158041625428668994489739396564528216132749513365750861883835283598490953557166899126228259810819050060543787798221310555662887104555043968537364256485326279139521401924175470277890292083010060962186762077147942173777373416612539943926398893604254103570298817494679794736416927849109219822549967804391911029972170164234598119324978316232465490176797349667012203243762511123389729982890676918924752206615410198863158531348661300849645266169707270171373613546994839642707062891040464543649667146409681507567297059139210652977710313739287877182339859555335417095917702588308033355517232561967726831386923935265406426533595973854851367616248903776123465582412380579551891218194890111999026541410626467930416077613622261213772730045290370185212872086701372429331673008378647127355092298491515888369996465380916395344502181388977648746879644274763595822421824547188837455075779785054776954187337560021225476126960773330039051708307076808209999119340966445246284131671975041950000607279444631409852486257990102160683499064409871891069479888848525195821408051005648482932115273048722224448478889747564411465343477792074090106907031292130460564757010943170982940257515941999843918599339302294849247889500079836880089877091885537245902250755821438289948116297601560673637062373868954374918582950657575359822515005844075892403596058141783565316709461830802169590770105093874666232102216120925028645999196605240007072061214153707304974907508273111499664390165427004236523638004487865774512687573392895760387537121788490072262954906882137772944900710654931838679349325651585226926437843462590641632374189896298219949637920769604681403294604740488659995695237036618312657603516769655548188413291762368031933487470051528941777968799339815259463949661436658363274837749598900738433123535097386350890495156538988276831964192526614865398604776047756553144057801621095691031999557212130227829119006510576676924556378195140217410938697063539973523540778456350360930604358443918231447190334371050553413126480053932893838739664253835158840333585825321205280215123050773811590165197942169786479850237953400776069117426000988958592754903992937114565987641250129519004425154121628936142345321491525130916061065976881757431020525154813677659050266005624299673245807237858183778042322844553290545844002716079996499783542395290942121261029586082212879158055407075801070125642552334502995006900058611447820396037824115773077894895991748757540238725764848201471827232264198578289999477923399975216544561084826183859879743269498986877265083780333023203220704165576076126010653456316916205225183980049006149151529785288353356111603128250015645379290373671765201233318652354757681397682193544360410813209852177550020780779267016391103474852159836685022456431421992066291113197266607243921450028105119238754611443367833563272577878614979265451830974488008673812326670684916830026138822703002832613905507294719676889310717814070505160526927584313458208928286848480092913577587362861732510632949787147040272291883814526471823619389483098429823004049951947754225321012692381045344237522298637977029118263145819968508683190960742593182150043030300505976522632950985195800996191856154694120634916557457018111634497473109438508526878950065976407093240609240853971460181912975383422011527711029870544049457273358830814783738361983873721461070275940877094035715696316999721562200080740498257255561855217421427832797349536876403239182212905078889271603320095688441497733377225147017640217917575679081142134696234843916445168925779153987015563558507467668556958145489312103275367338048752394857310512740896210102460962765866724119193074169441023403379962941680043189034751128722002164855230045255355706858519855598549143994464452791052541347192958656019800998463668772347266347185112859129267289202010612384022115211991080659590313438543197190755752113404053106023203930182022886842531486199823602067171441593999493544631673025383918316052427343007067273674312589043999142383079742642703945087108688512716217363091071123079673811617970486174549252840176212126853561210857105199852376004087553128563470000354339567164229116180234879104650236385346326169828111605401631359166021586893207514556562568880289218200144329512331366743369187958747302564328243012762258324462715566598368949703612370936127981590241944127066069650331014176969204329877741564561725262838655093527141329180330421572789908358741128258123287856298115963467153582871780739816862626089888134857339824332292044128169427964049620178011420640164098739382032131620910242361511052136752986650452573047888040452755557955050012205261358582093328730764709068839650387794874602504812194546541193022663178820667388865742750072387311858731267885816170441837267043244933520404991302349928667936371564247471283262695058372092909948628570705637933604074962075908012323926015819542581991043214234750719124388404520854714760541130031580306940080565451109516316230710273039161953100421877996309601420722075846628897310214034143057783619649541003379038347681173933876997492052403892298410649997392400058761940689183114344249964223855406384899905971969917856458399517916846874080338294552620501123655785276143269744311132992382161432795330521056257159360600754650967996016161289184167114713181763617855791228803102507085148710192904728769448240663307224504445282063870753110199899306252997113669142468527930976150892734749735042865030585574923661677638687233181793527207632736007044704164483037238445313435064309724849685220031213809394175113598494990530055364983346253474716037259555560466987714608261900491862599355642168609216647208310055011087382107869971621115198387419572314657347876528866863794775417334401375736035458336892955027246237838903731217917707717232573557546399901660676887738867941465100676613054996506554280179148732064574571180238332938376304127054464979724281983495098900750183588942864422152189772517554170229819513838145487484002912195888574977056080306020280996256005590443249650991093025207115185553912281533574099259409889471831856264099465858647025389571942848048095802606288448948810074877759872152061543286048027510988350783470378465114458808881285450397822603213299964732781510332976187315118751043085277615955608632558439606411607732167180850878248579983024250350083690094447510493450030659924213778774816289830878306225787656157596130697618608348858739694793768977752964014609042920714557173902652358306611796473657721091841397954269567496025902756463292710056474126809701430396564558926278440129048534569833540602948744237362280824090329870666951370344616841765649736963365267961782366651006466943237052194309814390793716036803546474696484174518326730742892930091871093796370447626679087261038793378661322866058343321048173576710513672978148860956470022701867491112428766556956905099428407382248041128973031041676064715747011350864814815986972005309183698613595946614058374564333011958405182769231455010309776248160627632253309897686547530706663297359268989041804651148611556274935920469211993140123158459741019508822993089876927184745616070203902018815692071169329520392276288202039811611528851391622003988708265932796717687712927688134452380484971880732145340904591415943930776166529682318490864061620221593485439621940872541554443082006830998756708103361181151472767433933863220626703759647272807754568795814133777765812108493661080827770936081958757272272967959322664391231774758864584661680513654909388966874004502771009584112197891996003325636158143916465715270333543807465996510792690011425603967638726077392751054564507730007337315434721442541485362941139557663947059101046219176682937965226421683923459771688056106838392303754620404159631934778033212167083504827568864791027098980952932357163642749037255491830303436928635051746391975378831923837892887452564414622357853446365364047362731163909739888430806599600307583756930570171943127604280269485256764075110734409843013945116886814927400081978509843643482930273673576776297033762294757286636731142759245343970453988490293649808543014468136048005214732113957262229120827938164579005392874928068715278411663982120927742182031381355948476772754798848717673540574950469883523857863854649871823097104343809459494949252914661111228728916972767607549301400808747329173975547865813872874691687176925170828956465161707907883471794658122410978316864013409910906193240460414486358140098494364303889711875456326411561288916400004445934057635032639306999879776914434803711792976950012892194290317705125410769892506704774846616401335801592127329372094567894252855117426478028452933061491835184202121871930169986804762119222880142124579128248473918245621080640336813469749170634596938369421557733497579220540740501072280119717105877678532284927785484695827431915192709747645973787209656401156702753621767988546370085459172243953598743883438990433884344212771987365745416154916972715419978209948132586110876908064420805696983508706071837676656415809868589263463184150234721223178397601841616138494343921357760806121177557877273292778451404106889278019832385495879544668369255911201258768977621670383422984805026777160352808957368660940882125720366981658433811646789303151693225039691265625345733333418205279858211345302364681347475910720262311561275581560366425670069120079445232517175252616677212722691262898583258409645398493870312331682960820187742069603312427211824787958143841227719807807655187020629360449426832196984653068624308672934304830670247168667059396459535051315770667984917749846592413653737538649538719332621320094502991922271326571236161732070904598513962591138054778492144512168797058099411924680179134473038356409186772052416605880117284829561378612836112760237515526666059419045181424633652280993455732620354023708728166895928616942289854018090560410117469333085065689840664755120630026105775664663502450282080400491746668497577082950938009806830178272383400071439881079979401452874026781597400884610942774261575039417929415158965648727408557889016129065282823205106971066588810117727360659762032147464255689818577241818794067723112109820648944263527481802892378274737138193581262915369350206414859945754109554448303217893478320361178199297552514892770839977635505761603408608567724955026798928910344244415242008105037478290292779898099903924541750853486625762046180772882611521367243021263323045266083693021970333703009571227832243050352138561206524291579965968415550337345786810546560038537188462453663085292723879197545976283870069409782962090167728720198740789064257860692188956279896108385219125980767727666513827439852885914868857281180493963143292834929946619788397263857446977811860552274719641152891169526373314283487163382362959722379491529985153736275843858822418325784755719799807808124362299322176873048844319926747461566522311197625586877773576604267977957512288031077735500006893927185649512463621680029877635733595744686524993534276908819030523863045432255883576415728064785582114314756825508999572536376813742107859448525547511447534402547692811861343602145134727651001210982632537622243836161786825506948638900902215729678663926128214166637583711828118305218965889658635201318154263956419860186649190019536813258179237798658071631875841866308322242662020548544182002947424700808277929799832666991237385242108589516805432805270080989548984610803329738247805537318366045264397183098484642452277545118915549773173854047275906266336846736072837503459430391396045757406602238738797688163940822870118762111855701585279950504082636528016168933188362501766944458547268611673649444041574157507447846185529483006309484209338763335941494507554318658026180761404255613550787570402664418014139994724230015931665657771120488715415548952555903610125537880693923828376779571464375361549247784448411819540273306822135677438123751762467503518544334893498840474038339034237167821099155913238072028523080995820512194288468242863425084915176971154610931527957269664206275603258493223995535874616401928571878850764927084230904826148951125990502604269326077902029397740940224917814747420332563205744613635040743858422152712191224330613669291946942873358948411923169814976936339773560977230091564467722395996819894583823542659639427508276333224715264655738866011145017890709085752306187633410828016029374083084350347588796082084480810240932413250792970020388563191451182598464407405612081741003906039335762795189724948852604159367008519157934563558358591274323348542121188646134809764202477138722388270284938385913060218918429870098582850224413059119292901648932360212962665279396926816714839833940756533967481815413391604016163861929786268833016314324322144910114114291433039925768519270213065677085109529369890370930509210657772455636139030644929010729452992217991447909405294522879886611177383368693114490936588017861015705667485671363934969291468953175499866747117954829376445712548813643390090350279643207774443028479254685820560310087889559097726049807364341032006037890896197937460800383797209189878235630906130121477475003498240305721298186612576866889821899414353020107385090293332505182600872371220465476157996909911999986771949438612384472969654008576480274149967406925360249693279678246114522526463441360776288076851973900776649582467703342646027447012429188392654895762326406300566614348325310113593553170088092048776785263978748354375499710455178999211077663361544914398745005312775847598611934929946314345712873180187108793179580073172672858576640692364536425593687318025478508742366481518860464077341706095021817123772276770436356914828037990416033777535711540867098083727717946803000379502064581978923818784254398027990524251834688814066165533802465687423882357544670292195719019680811539896989218344767893075897809153642222875155648238923913843387335499383923339834109314701204493221702048128335808148647213363855918696408851356807233183319173110171552413655964439904609900603999585183003579232805591855023034000183725135134144212636446480977173516285128407389443521784198923995014433499905590050022614335610094926271286959482911144660060802941990789775756690728614707752216681702853134719395080239536665825705357133090801071844432190966050108675124129523134848340261531932909155804347594192715992969325363925084371247116906607964789934420780020413723173341091813491019158487425718291317258337003831742260619316350396718220234323754667622425829872449996667154219960306820463552263097671540251360659881049957921817444016530329487282828838579279140128720807705787545215738713708218992533404054713893267697043037558798860267917871331134038485868131846743416871304155267140509609375420548929796512931587482156449263954009520807337376433775633644224505077096668299046002976470635813520222360367152516852869206544795585112074664486494956114612339423577174408088645653542150494774901673658857594906482350992664489179258096605569997039790135770070254426739795935815766468838387529443443554400703502815778595873345132600263413424429401993889912935978549352308589137788819196204430597717392169836216715875427177886913267019237498336719516173880311607052773249622446519813632978996655181868940039106900347718979699085643073236856638820038185247390689961503505688154134631416226395448323278616375174216849333573348052296994317450331132178656447447901063178647074973579225440409378705360999199499284158069862823217926281905247205995937517594044720773213628173158050885774931942144579572603779647375098689501057051595446522506502140058733667779661798961750684214254313693601043946942851928866426595808051304029008062929655674765443913610257562533506824433451162181796008794161869262445861661797559302266344886723826170367804174127548586384399637009213991243821983930226903537795427967054301457875945899385411160901750386252457705737281058081610742199343834664528297765936365924485247588152735547880346580661667188255645778156112745358156214381931177587363459135715558069042731547679334091638914937461339870811458197748440155671648497093203406343887142935521431144155579963850341436719095892855500129330557082639586862616252309334963138460987520053134641598272155704778783081521497629038866479390727694622797320653091194440635089576217422727313088709021886443125856018589699511326780270732812111149025441409307581729694193639220184166875261491833692521139649410033076830305050284223514886623007093559711468192853961438532018072517588933593285501766332507842999044395041443900589986232218835292530887979207357075433678581785241757708792883902522879750685288833057677780040489898137051599356952549805010580482310588689376732520086827945026155041317646174554712980589893370403983244762861428559865975111102936269238068682260549884819724401947522228412974972086982739025269251146106364911142743027298493933199286377813873073604321026566161739125233401492355664207448236029867234550447887738049294299642530721504101978228060037679920411064624939342019404542625160754634661471520181461415533995238008683480794187513290516735418142204248134094031952330391772514724457025145475334471433103924024304185437549067028345762429234641223984805116556078554445216274025628083037889679469268966189560882812300070628121564619454990014973376122556514342784419636961984125320456525101484970662741268489254279982033622025261477847082741737863932966446982424659727806502302177285176045582437915668043452882347241433872318029026483616521267535243752528767557644309845457780361730680892040025691443651171101625836250633774600123739868427455066671048085146284273243627212345175893338272902538557599374978775549627488410282019764474419305901606628111131746225781152272615153786379094131470480179030982801553104179199158844982040666649779442358614220538162171152367183396158432872901625629744349957443711119591982297012405507442598327741911272456299253397797850403802330158840858712609899340973342763850898408863359391749472336387020776797049682900190416317039887612496630592943125050730691196518462301691164894427428511450846266454283813337452240512548792526117084734275216427858586869436176458614914695755750644677181523864551239651312657944037917501786996529453982297465955062910930824569310583836984072442702384605353250702786219954309358780840578847073520548188154010136950888086955238584268547025912659288379228670251770187328706582033746286474205099823099447448031169981090400174326687041046922631023497722141561167368100587758313710730956650933118564561114627076250359772410297182594540758052774112284840797684350739027568090735034328943814972740637932789545384384776873431534895396717900723089780071585963030437849338984277533517245584442227292549862297964316317076129822067003980533870131078229394209948884326450427274536139457186697744580027430763110285146804475231165272020587339335898979246627260300392446194625799783378195751760954014653332661370426129116013139523313365739811072852493903216942208976266125307095518548454664557589955326463215115966709309848814887102470335987692886827436289260915970119661264830304995715044232939737117537930219650161289768992304853859559601810164957416860516429484012761942683343738034308751084258523867322216080228405400485958807006983330240219507603296220666726756500814760115371720833690779659755597995633481882663568834406497184127790684185597456805724215271787377501223283028243962538989288532346147068020459280710811738010605620075578558372173850784618031508960486717802133951753352349111353339929100081198538191641553902468782506522628270720494990560370715937871226257895136332947098358463562008352500771088068147253374620519851098936113979665205417785511686040873964291727014867129415856602654043711302028191421449553019386017941885502119128264778527023464852874371901293785635848638378929828148736940995800246279941061057003165882360693830520674165568140630249372936293469456687319673798104121277234744681460423925418509360902303729744651999075053783380586784035017377177859757277708157749860196832523493981789206161206798362069531144386377289156843590784259057380390622630957415984707285808574096378662781016717943433052918665597775260411608510673388991385175121452078449478716353717312233312297080599337897259069552438408374720307134022526325117268008216958806036079262104519217620468287922577658829422769898071875246152494789968327340065754696294925942255236971701124388303187798912910979340863867794310472985326145974168978516420656174445085199577111388609513222577823949502278201971440696426805205730936852743780566424233952152754006985174893363734945835310910239542109595246735586075028498729572227016570929845486206388993935139931527929364694552514488417078851945901606254408829100102482878863054546850435791084657101233812968066269496396036216217675711488278520634399065437365660748214641936341592763440756104872779109916413871950149429758205878770772187430040229672756367245047053258620636234274775469685889313798172692594430949901506593264527886601319010717205392756511175114161371160130600128340785184654068902033585169974735020020342954225373164049427174510660048475270190297433441753020343841860110518363468155694762407477609264498474166432520081224227088789330544468996904532073264073360703805973379016699049523361555538321833537836418779289741694289630726589882663709308655348705355466851668424902530204498335361123491123152202164703238621224410073651789450449548793735256318592250300599697936464425895087822884403744430509422906389509985713156929943771925754830418462227590741177105050199639196775216480682682269802598401925385958678898859210400999854804769173894184792097866218321459389592179829173395047947752677431430372280145551419871311001502379656078049435628689789216399127196003709939301073103378866606839375603068267321960224733461232411700072887602556632820143077237146599981158838576815934320675937388084673154642285336881856598739132468009564268011342989603955275493773584619083104217857528799090667675494074439394351329296460909556645499307756158534182875229851007950932627980236488865715165407193236163505333895282124876601129938524296746799811438071137411774903458391004066089154489425284096433448279307220150209293389368793229673518436595136823842476698811891336475841096975356409925858612850995781788903061503194619626762260355161790070075220576574183446152548274858714163661959091611277810695067889838091823197246681611374322238569840067942639267749041086174445241450532652658317458755056335537143108761637663108508710420714509532405310166879399015780058500874915039728401665890212871960827408914215742942201863964357411819337548071137858887323846423966720635732650503501139051520856694117555378565792431108839513265528045279609399532436906114682325939573192654205514651222561183948913543188543112399905941048061538751690383122458701189327349290482492263280310367756357460436638040530192212198816786572865669747790720333825904446246735103953953002234257614934645950214267068553926031616265002757095116052472308105867044550355820503848858181899319908184693263692455972533827285057038925380473975507033766967515951503248074629199234689238334342080439410700200399290952953712977683480924877317418125489861587690508633028690297592154874059366463991198868499362119473302553374979102156173223251930806693417521736233387824931815669690200758820636343055193561842102481326204233322040421820918426384977312785627396119123347517846739803507955350539841081049167867547872023177133633028911574537599171713388837584573133956522077130639199553603221211994478847091005010965477729221594398284484890579263706285950284088009393048518685288343939330995699814221751116317079138271622217302995218968215917485047298534932899667160565421295611475433132377196484093777701119811276395541728431230298535537745118094701145228570770645352095016154653251587401833800290859303747787475601454028500549839724321793105800684024343531895020436854879514697698254799600701267446060073669896462917169824084092122967692808421642189448918526152020695948697361366027495733615531523668118603881145909480758024814602059176714288880643592518722157312041422190137374012359640020500177123847888456328807508250380937371182558172625124228960100159160339656263206078933447491687372972205726840788624932908796579765993942525112175693672529436366931637217356030185738426115135722018776040706356464351372163349202854119921707188719152782998398317383021967194401241496908502222214701887172683419394553736053185340549914489778261001204934488379254842748268963302127446400516498407190325740222835428932664683795752316190267948793807635924117489126569385596398879013860627570317785652993091445059078299588820537658823000563870323770950641197121597926011697718658485322372371997113911302043122724939059973445941962474427154934448731761318497964813585581297911477358288923901960253351051314273495265230940064803679081390842962783892575692418073700294149272365663216617145134962612178175664373383797953437084407416106039361806925951871533091572014455296750022960963937128606382211063059810866596647613222727560697402236435965278631480710217744134104379190504043928493076640115479094742941181121081242263507507067559500038191639305528667052146150816509661471107044034431348104499776039952448327324228308391688515117920127447384051243859073199910973573481671776963539738666891102461431561089722727789493220540221944490677829742824371059481597424563952556791695269013013553976509266245196955731939406313366491118107047711321176062312721180040482872001796497211717818931901138503550980415912160053200764976207284326394780518109742731826812799589789193568421426278750929766240830393145697663355338375054368896883191388561826494736353108969219278751678110036186696271929905505849259279505856141447187644575503187950356542006634953400292581426835732306143183425004381952835532132027372020861372863870197817917838738245776131642175398990546904113209053529868565943250266310099688267630922237405017380444640639691982009303129014366527890582749664799325655262242939718409792798804019310034496201874523129161882029818879144940736797837482476496068128835967740947570345679854192879489127629705104958207398373162410557437392274671118371406572805115493385671108591986529333333438430479605133309222257127030548681760313634187714437446865997856790127676651551707503034471495174082357805843155462506951362756364235366188025579314688044418268387264423468274533681369319577638852390076305700052409996484741677981024053135883055883694145238015633559228740007003739236298562449583757728719456048774089142939830298869944301216719720007229518252271078603620024020945074091540821948381243375047889722725481103191113726161278149031487434103692088349016398260564641707983375943293979401369300417759573774935102242752978387883545735510079030977409983729996659791580579372885004372992715143566634543728790072636177999594085123208344928212040937475612021618325965519318390400100825247002318250368373292364390108726740884978048886936263155009827907265334595339764125154314720704815454462917472351917549719536304603552572626138409194708343441541566125063828412232118044894830296737289583999711818591722746268443590342384936604670513614793629994034072139991882582253830577510207414770415626005877979504937400366814340062349770044854667644469809535991130469090814388742642601894150339909548022261335393300769685524529253571967846546934464511789601977678878416962164317519146833418935130644198146209888797326421967072257398871467121378926760333440207908679791379668300674465318566337608376987380966682861072610983996044279623022632250652557375309963178436801345945707800318591792874399865779485796983357000682367111554574807031778091552826230363236668569391076835972497851338665324643492344647529763879225635225199190609134609814387825583256709668121156545818178832288941562364477674351388235055458705776554291904896149334601205859714908426802173971862593284936499224123365071793258528077279979085569825319940356743915452730985351845394662126527456899786458835311431080358279744736044309881101348976975584412446238075330455186202742190892448068828847223643072339800920313605004911647825127236456112414227842103886213762142377861560132772144208059183562536224047322245104675948468378618801885743621725389150487278242823569706879948424015488537259252877808251472190456466699750342918210257474674800245051294001516707267344570965713446666462183970657015824713390334847558692440542383461054629320274991406567194778753327829932562221565149825899441820362300728806381507278753662781079300903245378441966437904984477457328728039025231356704225179245813012616156792900813344193233273087287015189325357306661496124891248813754391784404799005845584193798986030908453572274998608072838683090909131711397133267939582251289794076803199893953913762603839779753789000827958030759961265538214315790659816681586754851227192633551090330129318060021235925751666435351053219462264954842492255669914323035101117996609624063930689988872127320244651124321061939023963898556974263712919060941511519670272475466940727569198319287140502449776776771974919133885140690671012579039544250086433334213662753357436746256492995079954531548313248414850361710912937985624188052948133054809844240473505516696103596072131592130384111163839698387905348370560828768525066087201328556354397173100683740905722744568223874149313015706328150261637228277786243204900753861320041401200329542032504435766201929237001999217443619915103759399172221584303005820814201139487709076523169985663671092705651296090581687187879866392725273807018489799301679471969328570081329078873313672160520658919345993267378287691087011421648483226338108505091544619944758534531839276849677531121537320121917884511469923442411039168805068786586454694017072618727225354338165333008220054404915894586213274840531779508433842734667553427076540566561744689376148438423781549383708850274168914425946723391987756826781032031447194770760815625779452791866537417733363627742431267220457183067894005940016770548696476338813073660688889118628649238390480063924995768936288431896043646549862341345388383612450510704673683539659206727468343184780632299767683205285595923618620052134280380468240726537370580144569081337044356519327224222186074332148042575089205524557337208015198642956028769061614890622313381427109785833720246588671278229519143817492424699883893238340127177421482346661965648318394879113025965514923878132672348568728994863612259557937863387599680326228370678689930798844901387917134282769927771103942801195745206575664140316219817835232692554648104765621169890229952630433019572841937969292014410654422167667295489439360302368893585066092768792007007030224539096853101884482724144201985307741038104663407828267502337037606387916157170121069743568536196980892566557459429691022156030471231702341076426893591228871824184468291975502445876281365616528872519310799587495815949335548511919789577564685669749845471968665941274208469549799973418385816956819322482280729470060240941700688257554521165066693447178941222475932745282863607337077733846718370959459655396546974745239194694060745520781823222030611161475992243978026462262183333920182942186449572044680335510678103295872582999097982470910807579977510136633677804230184416603884782062106514357360224185659756313239256365847952269956536200738628252137152535062759268030847464814394306241921527937423085119498576165410448660470306488688551312521204927249313234693691239474706568956938406877403221686981546550788614531938257144020531884108750752577762761705794703185178046281515502650226567038038991298919652872397147601485654498528371450157117755597732444002164378857789211236570723325606808030700619519785598209926075275931753563580197220488143904424965493657076738367169926597987501283038437647557775792276478440470805873458181575166854205720355405718719026112305449119281943538943498965859121671738088054691435627953206692844785157621831770157237675550781035755986127194934240123679390931187005455826741112809674200811536502349578631361697179684295085028096307020302245446644543394684495005772482679744460937653827298663290650583769124996950362990512066055476082333871375482772413067654647306833866629263546712278774896135885675574071636122126163100501615053611741315607854833387189056289867629024471252264360888168717248073217442163803327810319455165238146002132429792271124648156012695008763879238778395508666005869075460877111619520710215395188099677567795302626947836985928473196963645145507517406659654176156243989536908779144292601265993204405174964130966914406457294826376977408867160674097557275278507526349397731292408749485718383900921413802907016337733337875496320875529181587415249304865904704406362624085831189674067876848040707657664023056562053415092765506411032871868883126443305726692042903531394541938150438962030602321761280968734405665374053299412698883638056976708928281451946722193863520801401511159356534859622396104995869404141768109788651947522968099464428845958942210845281339407929660533065184422088770388665665888170066592880097309459624873223163011672697462445690423884549144355909890423602621179032979891664791045718428719657164191147076927538512852956052589182816808618421211634295321543735439093901923158521646457032178035557661404869289801154669129095175881154779840153269508682833685327083099214295104215089063200879759684738756689840582174894337347735422513712398739954301674095574440619371828161927478002029456139428315201548478113113350912223050118411484174173964563104192585925575098533548990341086278126011181609807049156291678044118519643995239999004888481730106214686999700393176849873242047169829924932326079765347034351396902201120170925816319389785212433958863743368290711359212566547349239151773038680360616357136193454097984234188829447157262947617807487228461686569687819024180951582211552332318145987581430510261394889282920465384694742654135949066912883566092825136775595088513773050890647904153832519975977547234582123285966740040399057772532010694619873289067758892019980951798807197126059141498496770729329536436767439478904728193707733541136720537956770070906727230597511327763322443552751494289577818449730395132247540449161033846730598063226101768498261981684306162529952661826547332124580457469629258506389246931902726714219989082971224621004926588941053059040102407958296399988966669846804810278858122411831229997573292213775898543889129526621868730707298494182566665124147426714725611875293191485687045534862620282271330929624659433848332641938647183081392285228962092984070702443937507501821872075681501517934641591612105437584831055785417790727665603217322912098007969716929450959651490057162225500378710499097897375397858092769264590332023466099821533277120931780098095410379708934532521725791624258464611586288837812956011783476453573726346331371525305249650635251539815326804611975325717353801665962272332210595640784309287480687347364063367864208654451247912794688606986320972989555325696098401255311968967924715130395738897863559232391613884943538892042993175286165906749470651888889003412711736231131086088960163395464164808209859354825417344389983837766443487596577802737243771710099949601214896635476504230629028977740095235326005701882847256623708563664815592769158252599767281998906428937682980380013432592999041023038394741730993807011430136981437651809452399374407243863068890897966951942948132901960897645856669235727329892560583072732811226732102250231348921902054022857967794887198337468425662884645698027296542363642465241170458128382281694099232797934909041438019675328834922578842796621852646112273126355764559164214070475872689406889056525246523774896598345152409802251451133567751581616619316358686785727417125193256636723188301072558672506708594500338005267680041584901203100104740603744398416764664848042336088272721042505161213674295227595239519049408177573732425824041560836125263436248133213297393243475715625831768723107913950050617308009698356312860904286809706681679517626543137454452498199933705345267738721611156126238622893015661191519356978718183123180731033556485213742992468003414265137188536053642820636627804753401452823295067177069738567792469146520769696014259123455632216749780508702447219521518857771385313779833395093407979707838388832128509845071333270418252337150173426765805493524431424011267209349783406077957769821408047903322800825359325721134920612649118564747732716033335216882058414877866133784923851212654242657592489844046102356855046787476575293412005520379433232250605196665008265329438566969646835418375102826790108229606233978302216106321879303248736172724201864845570864419277582228706248582450407648433483818022792386373492873013506641557574316551656166176882257591504804693951227081564098005228712848172820808755556781260534361179796401536394923388348122766067167916062264250774717567724996984923095468216398464971960128833595980188874266096852745982663901199079306421280640676978998716850554926991962509161960191679610335813747030520950063340795617032236228347604436451270855541741383629723129971315679201131099821098922795803140553641261752366219416665388746260350425785752430244827977470780515135155837936477229689296631440845059701463038163851478950372168877927309125731406657058710263042266374080269524988080397235275578073938830360073376002794666556820757211918758930590296616326557528357572753096305498526406568714193054931950950345159184690916485563788326562410144651315916777255107862888708201469242356449532100560453674136335086828558434042431154746178000914455446826862932052705322560199903217710174955107497867497068833407625550757265845957821326656598531133082601799927881301520847478938762279162531786378734968943021113639826952294136737251164969269696728893580665414407815892341066275920274297592285462062989888834142822328370267736940870516553864115864764031219995814010681219923832642222452410404527677218309620052995906645017498986556459656948461098844234380124027558823822209018363728747269208561394761996233589088707696613087112429972194362911114332808143156026358853367902764269303588825149379642452838625295114220535932541363992199638420216057954308631346432849839851711145089001907353586625131970447375590441785464564183412536073499153083799654092823658965687834909862430335092867434794337317015292999930006271077185103880808587296412174224181297137524737847826672349474122580049750629578368666783229762428125926684446160235932657411722133381065133888932306140478606484991031621391821598142307862710396531679329694063387279818822113380009507812635263223316468670307580796497997902095418742399915206934141127782223181611486470482822958844129292973278848828445431910029526090163405985518018974345463681760560470188097041962485939847454293456678865300874338233734518745489794401893561792959065312526369871622052152314947143703993582350960382980977156393771219295298905252330831852060446228574113740525826999712919654016563073026822659065656959716165179505486037890194326594378993831125800469883054562872598651513060107731050251814632271063029277070757657048852919995075010428531190912610720238403382252331835280240144347108004925355929057691028789803368648558631758987776670949100017719873498461435698718109565463379327760200421634868291639204300133361948154075407238520726844753194140961490096631031233232913842766694538954880051658774832377894570808366505782230569649164836756332089226539122555456016048746465888653235907429179178305201588802766817659222343939671256736498424135260832755717060201091694463655969086536843252235374528332673576245602249102083328739855316478335521468606076722370906255895499812020584825133400835641501531179454384096299924253821142043109419769418271575986861627282638454361984238928652363702516368246540644299656195395669432007231809118043331768767305106694482091973343218621903683762950598298100808416483278254483297471221639983784666983353211540947345529531163511447246088922579003017894116903189455216770135766444370301399415686383395786817532560502262743455415342649309106175986026536527129730329177911044021760198964774723992374293724512775623027066783410961908778465257163899822157864582728499717950297724833467030229137106316603019584132553574850646900867791409478162425359115005484597956624054157597691633029096200551458361598773089428882230475212438725842556576909119046010994905819945085051938024495607752532851505029195095604150382065615367992414086677774644360258057989117909551740338496582466700536128610427631895048083764648005086950486286058100572990283169160847897552936458975071325920136670710552920570635088917218883822847450188945865780871806924784230480226463561062109615326397806218835838897457400274337525283806512847522447747708239818428003273990125746044967124400786726589820795783840928672154496818708950043428626547162594922445610880433868462168770253724974161905081455904143432716770469326603186301952309867328045081696011879557005083422473221627998185618275474925506680173962096105344537394533396529076261512834476112298628795119830471819581018051944556890442152940788119182621584852323594713503011399931997278493138976670975766489551417535481460780853891586944975677345693037986400073270501464229981603573212007460562767225215569267904125174246115570276657857720599434016000270817024068999543688672327574654997423262324757047335776264562721916062214440752703217020561301812408688520757692191930205966902560904179128927466686713776240604397718637485935261655261044808302039507766685341795829562788964909093758028279446639755887484046206102612148384471959906651440522212160471714189242236284078265742013271655305447024084204955392868535881945941013348654460084069751256009508434381243213172282347253790133878493969382162088739940516241141252508213463428339201344148860411015931015059103783471880067565717333702965729404999246635634437370031945891704685572233463795626111737304185952908515204331458037821988794596610658747509319959627417579391028774530000569335616073699341377788083771229841190029122956804686429490867831368042167740742604170808587113452562342206855609028678127952018670956374209874098359628120355036904711171647601649428027442801538063242935490891832812506458250517684766240900299547541742900726633481527484654514477463811007643977091985401261541163515667173965050602177383677541990768744408448128813591356426020304893551119591509950392508731326532055871694918190389151730317250195948804316673200666073017392051940197829859724384641378187230692439188651506182399991218841579190252901254944300688240711703907456439308611908622295559861611681919052238460323290968451754084098220727366028570479368827553517842477917262865476499399889139465841494077758030331703036256813254665590350511747748155182948667591366852972353586998996374917523896364487670267749925031420429539453856653320725580414910226001283773169103463566717641229060614445656944582807870190669445017438004502653380953644123837259278592492277638387814269102907475483027120321878249721705888955558280197951648067245805182165584162453047572895535704745883868781126050413174462801167874669535250524177321550693749648868413185573979539163227026114668226139197653083351987804905912970759107590815887596397672362027310584008025740975187397916086734739070271619821285826364345003892703509161565026927377512234098418220748966304944959884868264459900555180038871443567888218399269322768975938859597064656766666042551448196261658199438025466351700923681767956080892526028384491458842249888212255935136234658144288731173244858793545420681369347282123077316108234609904398231060286669046212887489488962482449487771105796436972669613814283454432398002573541321038708570894296946032482434319036927715171479813388115826562576990281346504786428694852173651927546965391863837512833597659429689639262561980543648310523474548771611614753968555860821269524292161999295336855760127463885280479213447469185547556690666357694472117178840129100749477624298519557960625322175357126501382902074849745126830807813582831266824722284757410535799427199080908849812836168687848309040781068719602150554575834269405719803646888009055494699656962973360523091520708154519066782906806693069876662992473697535597915683232752030245565671510929256076146134546092272570022720854495395465030475295041339342473092755221785384599817827719622651154885038338219172906449476161885641212444212199890862618897533092889106470830071462001421063979190591678461905984840183816566197005954109838859012887130800968191077219227957065067076432222626664336197490407722836988743746775828751086355580784806956314281316782293241484578105316388016662466932944894105417597853163741047832053687234706051029768537841165005545631177681907875531479041787864548031624740927901298416327155460006768724657813775053799518716151583556578729517909267483029289972447469103356712437930208873250616612637744270831667722639472028976125420210564518089712000135364195658575244817516422976874111967365091445851544370628729020357504425559751770844675798898642267649190184325780644277671659179332544365915461100866466216468119108210182397859037145025489103559340766213988288993803478995752531930391211931938407854082984371555192820981701282023914444642985793319801131647744409120730316690966618665313430839225024465419977208950856474331985612875604097199489897400960732805721982868167448521726691642007896712833945850451493996165918405053719951405793826233101759519302959276752405407032051405237349512650975163059287295740851236032074435911114952085914925172257747883613579543233868171148808193636219398390746218664246449419794075480005159729820844432754694518651726470856500994477794330324852973096580364655767152351281653477336992327476486131560723604029497464979984857508766139947210954155461666396147545592938164223141774648295537148516338494180831471855476391657451207042614866092573765607809892947314550593904660725630811802759230277591630877937776789010546451409689727138649519887478061561788936949844902796114400502630964364876170803824254716119264709069602744296356555129574643460520705075638786106906176145511241630470833861731838280325680991791317355010976223035726371173454773801210476999935534099990051257365496891334156135922257222860794768730552407956463431385054858188867495262377159525097470846636890665951984650610771807660013820544803407128270871992137656405713176156465618581964391530536169914730329597926678790377267132713645888958337273703020190293313482203400279781016771618901477438561650658725870831412585315000407720287538659468352331943779643871260162860518414414839034997035818449252459342461248973899343380867006779951361122521429899617168278578709356337351288231613046261477958968977815674933565928853963120831823800183897417170394958164051073964144452905203924608211529156607849187570728881842876815016494915275332939567485352137931888830231900711265565178765711178178267140085866792604999367500566826339084131293555110753026426433901016264052486500615066969336458153744007279338431434240570093480313204955021161320044614954455303772244497060736024901047208275433563285101894564469230834182043677807889202646955942499287111526469288766695809242446201963418688868159195515383544841966432757156778755246054757119506819386311056250653029731472944031555019098801312759907420729669944822247468722280424111539911483641784976889522858882628264271419383054890204878206767869561567240720688198950337962224478910809330411070875907899955306813293475584179999918691109396084175931879638349527121644627447852321535185136257271808996697745446360774535230165137845473681683976350747596058124764841550803858251313669752875345878598870056216632715113819603031285508723866170517924731933274129904964987919116258321997668245067525777443673571796916011673445602517697621211546508244894058492164580003215305159360802787828321358081753804751505028713345266839663446013251008544131846328835374443708432692451081987822046096576309359303718310911452317598825337077796711319743301245503114451212578058361184003412327220538392390017164929342823713832512367889061713492824742032477175660765993498905420172496941160797829794721888476616075063689332762409579880192430392549381282063162276672730764736983443874546786297894894871364808445843582586541300562233567062871714656223837051770736485459735371621772034736531976101503621538346248309450897199423980864908215152921194881646942335222094023726539903659349994672644179720258660808573867068942864041154111260517405777871740142395082969305350271013039931724804604344829185204838564429650195465431517448018298550112702217595709205956014719950968295582379315436612377453355338996394598764893172560070961647209676625698674824182706654768984102736457632200735448335057108253126703434146201352046456581001659246877480764071137510981120763596128785550589002972422309177116640935127880283126665614542604712957811942619248370862278216198111525357964812306779445988353479851469950071349065948500375522638069857312383781213666413566198835348453290624978325902350239136021773679097949070385535137274456494423324459402198759572347959123934741855595200783445087430976692975766282649086768680322220072372515962020374246759961137812054720410735879687674084493565536629354125157112987125169914542548530981395607692488855073700078565749693248950404578355312756474668312527134685487829880741708592531264673011429082214533300771921940640406844844271873697008681114873535932396409099532634371525528705590340531350353590673094922169579421431715210334921652250140988012711148972465264360097701115278052509911487492072882874908347600446457184632925083241924603692156981788118817300325023483580325382940662087597133521309558713209765366430546095267233729756426872078103988815334635784052415051966108576645505928114164076393706536896903442106567268016858573750271162078671247159321811507782840201284875103108744040955013122357682344710382946720047419993717544079227438338170681271567548349072538816540919607003627638919180074966411140028583639001351278665346059108227987753197704133277401968661515722161731656487669924412723152138061915984542367848448793024913376885436978681653149657659739072117419464531950446326475935809909102782728960167003911158764800397924242615259569600898450816358158649457894100140297753119588981734188707829614144242171111510397310656459471788947647761342436305875177001082961153167937560080824888199099932521304563121265916714480202035065537554645326026308264888462548104019872968411426898615662121156182013489996922739927831640212970463018718597625368924089664157359075326241235318806384981042463459025582056622108107438172254849410701954375494306848465239735493036184011534273042393183455936390853589867378527219042754505698552992197166643612705028944173874924512277927456366146707706133322677821708898942972582497231238535576476941832720383230189003817712712741788246391697078651996405024709983626937016712701926227740532571455306738234227690915353542332498033534715738797178815485277312474722912975268884640993338463710274417194750523408751587135158832744515040387587986812684637499655804741905312250177786665250405661066957321839550302490048196470869737048184031462724896095040934465237655883851185130166614205117660756869968829346111273792441573567317236988481000153232464068604177129138306512038091999769344076403330181682557218763901882301449139828338454988788755922125020184570801418375942858406193307877456650545011820846776800080510592162314180740189136723630762342021968056066560127890097082854645925735872667938066541147768232030980785110488722633284514466963717933670948119844719391997564706901277956225741663499558648163978909078635926971826172346038265374401308689066649010394690313101914537112347842336778267878483784804184551832161035704049213360919221882505675633114737782390863613447459045551572134007733288964603842813722456408679281393661306563766920608182049975519466391014229445111078809071122639124819001949683818459702941577435997399154568844402994875909071312711297992022664722112504698980231727796545202731499449123154693263815011541118169500660369938055279337416521725424392663752395341531579418514167884651266866810879657387898114892963440448256223499975483523908930069288309431970241903786210620524138308647763142065422712525148597897150017552383234043959748469200970954176546521452657647170140729865040374627843864577583796852392758067568034606345778912910224404913407624162356895432403888488611254654924254113690826279451473425446654109792122701658352514950086494129211100957123048928556183431733317325199419897672517493998530732153113842896145024326607751529116213430552198786288033603084200465284401817538520481098117191634850445425816890973958084343799439480372694974575284214766272825387393095881567555624640144279520226659069925501077726880479074604129707181615393307796151321091448387230208598464860164727800845784646399557799969012049636639378934638485909216468914142849078322340710823555342413486549754001111633472911100200507964227402358182643438458353756332813390305657713152687227269545656991601774162484374817996907343960979944178388718678070289880905591395005103192140791699016695850727001402778497947242261173710662844894913434286969867331284545385873032851666615716508926232993501852445574822288301464877094908371503023859588027043433187850619228406291225539705917331574695619755815116298849829965343209559049798260651462345711714132219918110486160307853224318286817847077581828532107488736792011902283482458690923370120748101919698537474899935962429503120382902301035497822035094297814650923769298636458286946018131413840328362526537257200439878537605602089783665303866286883678530224656280520535355516373713971283450407801880703651202814239332522158900822774484082743067342368887824409217286299887694029934128464725505615974522867088656303423207913707952834476304621592788060155068079354012705525085591067710506237348822221956675220373735351270542182571920959638974523204397661501507648233504473460032600061776513947141969981930883719285005896664325197859277676443174295309830938190336709375999729052704001624528528044844292297955856985953768716392864187967734461365616951526820587913183547364277680506170201003484398714288854822943634846528368584735132626927346027773150897145066478989533828255055964958998918906937144778169123413929817174516653498401066941908321856010965943068159575529498977502191333461062042631282760029948550090424343123225831924849526608707405482897706521232516743163095151434215932145911224469754358907942769291404679087110001582269557943543925740010185109760419587519889526910799991262173641802761618300015467075684456740747050431069480302474973423694197185692672491515909166631540991605430987176677203705965024056631919994131753123646961735911927154959256855951450987327420484099973378370740351659322300988349419048430234693689406959019487549355042889598054095489612642740013910262190209777862741624390391841589038367277364467258290613285183912942088266190659518992907367085871448024928447226133054635086537707527962970807698282145301117105012208369896820576495746960625542489089269340599834181306795273822702672449776799744736419007401423022580969005287910852196119743625529896751560862637616834205937176166272691519991559547282507994008689641498250106601772558933954699067149324754786627324222660853194466443736838989351367450018807294445075562573727675457636700997915366486318274821169221318891544031448861252966700520839585958778992389029427372312898375340439884838251726194704060177883175920895281395118993310301075873921343720393047907146372955213812312235495713599443042328013424832303633824478347585791982880048475375183663231056610365190572996813289066135886797227719926978869358266568107957182098376852925405867022369737929893395250102808121332062526922402524518834170282548261522021762667623244093090451350332431366939585459706314901928044212304919060921533712100373962800176093211222958837005555798176482542262607709393593161722514480229104695417303311323721502752380061955070453252644082522480487106558722635448842809453365988040916727663525921813881105302720508039578806992662746730559201017338496231150975954009701541363299341377999553579785215471725535424093386520962507469569526802209849285483703255606887236435948104123020381560718320443130212995023204818800165649622182337282472370452063457220884871171777958661019025455691098572055139245676410149321217669020558902911890688561365922000859872620108667541649068770411755912794468974722872737632736174714496974639505004703420341720559333918160523690757728135260499885397399314114805270656479450780789786753551794733414226390234120288390764294933521097279012250567051162480405321117003493476579155780738388092118068944915044685413653390906165460273823190844326259938816415531895458402366329584204639082181472359929753321867267650299948745328133116827585683568398889295994735351554594505784753490263947213137136016575621547729010284351439793352885654771428659713569571011622024523980489787041400497062199401459229827926527442167517702497329696682471418407311229575247150772160667493316600323448159368663867142332527426919664065743077753265556390593832046878673770191190462375117690419886520618165192612504244228910004406574967716332351089957931981299233476629335296662686952785668943720832338456570978663648253690315191466645223930859270621335580265523845733313669877570087178681249044164388690333623725003359016841785873902284234924887069858734487252324315365141617384833334318809806249780823787148374822710685061141186302787630136326890221804570104325726650046618134691682457105505289917155977836541343433884548889226121890049854103898653272572342564766361335231656152638544137598812706987674985172000771251882802242753124336726128672558512305521179479423393402041805330517456818509972193490065243069197983111960754596160109591539656094350989951496383289791618252794273966507926180637592892638154854556182670666913338210858848749801233219973259200120990904829965222170806226845117752129680174372544377758470797516199666179751745868898181473859397864284004144861140776423695458139833299399446836613126099744389323860226299980312490358344420212678981825238012708250505758328138425703504850709172359742085628604337322386474770760190584349006991849190361767858209292426956280189400968566357760608681368528496439199558208106176761707301039546393180951409377547096061780480481025153769063272490473679227972784462465601395958084738475910166017656113999412748150530692048078332930820198740547962578395263554946699212262061528157596065341399128722065935242041763969048301366087821385744856912212218843065359522324793576947342526545638874626778893659420912436179709926248160601659662452431901767232638972861431092198543010816013602145927627613196463763077741542388675921174451715619860638253598731375622896529111974557142869650398840754388677981466724763120868968504268985615251834060664797960332311136056299930757957566389869164450700909792918679695351609191214720005405336542336089339866379486574422162280779348702772908625211392405489341293844658026412174922068411549790987305059458675644292318837867988580981692552991690175930033906986917988918961950542733137811231928524521925933284077854221342600544688063565195989060802336728909751410391040508005696446618962698012955821372898581345068137842827275819382233421010786517701899517436334642126388280890366128143372651282522677577607126676238826648319221611968975723959105613026399255882234022946533296601468449698450081223905098059062001744907697192325879048652923511144658286231433018991630712888662084034306410916213573106670929068361250353875891525476969039769388939604861900311488427395362588518436768429488469286201667076871489242767996785663176879495682082266090202516453131661886984716386790079165552995707288240558699832851520286233977155393422756912717523300226930433686998412813077288067507561493299954591233490234035807173062157473426729940197389899344194222328849803499757458883479260442146318916062712750078838015005926192358931260095979713340287757257265696431588128649937841442797819208694742707978027721456846134449703832170114531685569423388273631527283698839682507471589023240005389699867345994262510079132774285217139191076954868213118329221346950447664218856903596247828711198055851318984393368707860643800971756119786435713203259299761210095292919463951624149789993800747524859483822846286680727749413244739727463588889141254452587471703387475776174569424035669836170771684202908370160077624634758747314230971452905425511093732242734157893045393801347288479420129647891617832632609477751450091104119204599535040083497413507486813738470474129049698651027410496556648831785756449721340446978829225899489733531127004955808845495666917702060431221391207540771950225919810245683088932769261270494513376322970756819462194909045736653845694775837803660553699159955595565739562745571502948903397325705313998424536897042293973103436344950084034292287158462330488383866428532380701328188213949880582319936666715521300629770081722281074479147051017988339996503872725288330675414631970253144833050176573496257452111687598668619249233705063296313970644738570834870481469641119985294936598706703235251063689592337289617890008040406272097051082141312790666987978609663814483943179805426419638932414240473343957077830874917406898237655814149035482690384519681952387142073362450584081535473423534209820755197495385232125516653595096896411676569983788068960605497363966117718338944478728543429696049126786464575240635527866703614424396682263525688943800084017207592210033416982928358333006719730972337308458067871288577265648263192777422303493333398405461650545912730162895303182570571190060736394011558552279923653400005057975623476668669339078245682960757369096603383845359436553727190076541040766022655837138859452148280566983672623479181680478935538926306259946106380694351123011809426383423808505331072920666441152512737840119393122383407361315968730132936110378570792552995303843051288901414210576599027273966806780289166731574656258113714779619388172887403301172150080739209079984064059499561145385313225019073353499562754837580953260015181657890396976842324930380583198608568939095735293648051348172153428916302544493203701830103092711818885717632038842383085105169566723084737131165343831899969607435160882350578140183320025784171331575248749483371123040248920780068305821775978026249123580091781728063763778032858654829414777931420290981501502073606255519808672098022407443794076645616735739466091492182457435808670298576962074079805288016287490570394807779685587087660904295881410775799139829472707554189185004378502938277947077158216525043477034897369737800259539475169294689574767710077950086442389630898372519117965969111404704154008028909313155841014746280450180058850331748509853431855524858485754149781234744706756619809941287437439086767358695167912395097867029055689741639123266604753362862272436922113049084755372383020199890050904266238542511745917957117504989355106394499057294201040065494905308057985794630813531762054050465327501075943495510068682727694138140209213990274646966325968676012888361732497857321723371187265726632742366894378868595917502175227606244783736537721308268625709883441428505881225808442650628357933565528551923585257956014047065556122729254223778842539138564735743906620044802137777944799580518625591990755766523600364524521389961605565365224298107979040642518339384603096028197078072587726566126208791458511150539702664995366709180003347139217941946067266257141348600990101925503776779576434685526131956583846578500039441204457871153227874916576125344903984444092827228767205457092917104373862907592076234256007821364121727081877250136095177416262136849285703493170616887041969342570004326376936438758814976315492271113873183276295475895127623520217416294062213458968301694817182150953731214852109905195230740158540110583489951522143814288948732652690795179574412742214430883950995836868793160014038744343214957204782812062449342939741398442465242278347846442416630074983180861460412823252565160778637156348120105558248477706399207864847570266826140451596040785086902430684912219092918336473038994048161335297310279897786682044228577655130345911414515172359927071424243057997560282827607606552762616484175068546557267415354155951841337975014905548495529734310334362056790776523440655585853128130654488670804680759056288830103770556973406255241708170998946184929649590045704348310612402686298744159153039388368262991219909389646483087226463822478576698058109692113214085339077850504131313899420735703657836887239158878225714301956109086522060344391361311717946762515089882409329402500505473564299197263234461170800929797449985642955012239224834296163307753675337344513101503370519343340984398769973682810791753832148036792361119144901566200809548805424250406878816570827113189443588377983819905821827267224572309105306204875658466096080468487309440278545159065459923142883785278904700522666901749839025098895129413911502458678472161769280703055376129024433096496650284255321102092046107609134752787768851433520262995427676028925679545231772187807414359540103436865031960327678112175280772697445578736144484479905119811595738593875936320247390672771249240109031656826530207271023612357826633479203374930526073204833191200799210919644830435298146493522279067680883929442820331204209528842299734028299220653543758864080129818269129044777429562083167748809713555517171967860348160097201481789719758216360610207424073832920775092846455385816964821445089307749562742285883448961936636413127630845784924549643595910714466778428545356846483706251031584153923827614857622900262108471228298194149713436886379595006592937338520639998122431091003844888836264779945660174315383880940159731268769909390934453965820666332397715450221374992623221810399419600959338923041299232169443989566301299405749802442361749722023978738359830607362258281212624826683905887404474267680202900477700872689305569142662029445825380154647013118699119209344720741674069588269492294072908381433496499076209520405032944853368491076090412746963351849476180265369341185953408758150922140357352133684437166621879528316814067495763905262020210433752073049860026961527441945837233411324535409960143006669909714496006798296741567772642726622674635176238139984442454088754221405047393358278942383305070133128678824537078009161680069923713086444092320472652436359075219854933561544039612950729335549975153783703641193238305788550367557773993745704989439404338810065757298177585474388872194439176666134288781712065403941445096470698661737443741928967624321723433739088134259695578424611586447930745344187473499521259732818385741744138665897704792556335865671704265247246434574466532066156985131145223305535942399361816855945880468671840504010665931239762326206153659789099271204191897156396756939888764095646182539866534525452665024889167819817681158436990713833992199026250041634981257321040700919973979209767980662334341174785223059673901022717221397546843959319793050491566659537407795253857909203881503431923416479886365796212869380850912648613810211264914278392522827413668875990541548600654513450060299128672541134410049250323102986628623542743313535173875943108583112072928486967616469579016215359343554882442434427103027022782660354685644816094034304736269494928892038010868277390685091180844011347728063413260967189691111134322824107359727273145375367682930546661509467480879645713288015461924358888455802131181659304776760950918072582088045608441145646467274289041128053530799643304594638026561774904802466713972584351299694697556151330861833904134566675500325859826711666284568287418452529294880841400276764492447393457751044262230022472292310630113427822713665915820071012350615019850996465474323700344683436704987918858415019925035912683287726291630355672404797696030411398363462563230380291700549693174976044682753228576047966984098247226939901896653624834448729640072821408945052808958564809323235865419949107761328127927276705035791803381730273756861816483199693131160030867157409249430914453191316846828413931694850301780531008679720400966165948886885666439308982211202674416776030694137154410300521361617845500107353883553686036726636542085605033363948837549317523324157646163543805495030892436106419184525453437900542373152180385326089316414184886084563148209694696600631866152679818384627884248884070354945308074866302934911893844737483714707837070516028183177022823221862846510155745196865329094743153198777176796831534142970315712892855740605605721993660956609566765566593625090374385344164238591209118990405349630341545335470102647125826916900324086808514676253000572350116010831977145180809696844372728823799414052972488536964826118564337432014981506150076248280031106823886210243282984699991769605352910187670957135397828515075506825140935003016597956365409089511271170440084915015093665321634493716645387319547112572755778728303622708356484497742792188652381135674651201790111336160731384830689945881403244647864264954011182803741053327855124473272820269357282676677265929108139458379902153131843802282014358335827564975000174154567497887588697958639386258960468813525688733007006593517860480450267271732073447940645201307057242457065533952937018561178815692900412163830958619477697564666027861818845242177891598885667382430784315108003141145602519173552317251126217614801062936757878263921462192437796593626380448663235344741986242137085099357880111453598313752226801986315924794690254529910321679483942963111248567369480519786324507192179662034037880894721914698459461250743194661646481914817511428585783095192591908712309295546912380226626464455669600311442033076976344330121668612922708946803816275063039987480630697767337785995766665910024650763799097677470017995962144416375380078024600669914243215878674383136589339904822054472861940522263311075992383619930635791461062575659473815373314570766003101159203366184270761754416684091802712094185500163270220411385903104702599931219572055896446860254380211593314734113803753763427613089983631297430000508593544273801399386785721344090869015554554698287470192114944167972359294934159905498403332142454991332242314266842966846732729642798216403782278579115870962333725103901726529968727998824338575646954702146151423146316385766065642349600958829063866984331347481030177827258441947212915427041885752452724196258274736982280395851205146594990175599277162661202474684740458510030006107795758125005400289435438329407290492312630274860676119153017201341586687102282708460539681157275457417509190053258642879315798138247183316505941203620459012021416546881988400647345003393267366677276579486708066499243373446282465338584270853640341682178501846165490985357469364292167602452672880941262424586465312455767593461942526147388635697722765062157398846457963596885450998086756419702002408255682413382353425822314460879181091660022483445817997579933409084164324383884670339424647867237903173433017584561162453267917086310630243883536085504699059632099503552822515695971517911121971350878196116384840750962302445999510270686206921388711198042950692282494019107979049837094330052236130878678230136771673441930318717283490917582039451543873006372178022410495580806190600003508888637841025319449694180206434794992583779748188875520564293219413342449451757958550918783997992337146309169108000159141633401353145734660232551568313837599946721932954206935669943342886276290444345604396428018821293331394185302896161197429152088060453678559595766011517018349974376192660214534239392628475367365709337337716255475893689423320939473369638901619314077912682516143329899972225495196704054286112168370568849074796262053049848585104368710869034758199697650878181276406966719227912868466218645766777391897957633823776151893967990992125414619992645870074462601583974770112891709767340141704848704023172072243814638691887592418295794255942273804799471312175253753362996968540539040661031372146167248784619332967089903579705254741795499936772923671934499733299227521514407139102846873555516841076600366175600686312513561272505482981264728301354001930490219241782181967355024904597138146585964852031631001248532373925415839744750727838283890191030038774597173195319200719159022919063528064691816648257651532052907382785190965780919190789040328656743026412174132448865606420988597067260453721106092356180515820794196559520917944302002776209492221894692373882028399894246386487344852201640491830179068133285548573162744999480363377196272566090989124974464511483976471860574109615332717357122836941122860932391527041346943001290451260440729119653390773261202136302751342792407525451360633127106266837888943006698285700710937802820983544489395279640247411744322601806121740157538011634420487380596256892980708544570364628587340802296862222387621584378876854030968641654022266458423679508853587756641192563301033479235327775784308249737957857970919663644169143762502168783480850529922111217736451102375984587868481394657984703406906919558597207971427222944953763516457726047297481134028792127683492369335143210266785566543517277357972037849939023953475516239446431082258354805027683913733885583644555759248836172784870429516923735271767801411504394404574182157800884238487141731512044721771772271115803001736107288847273261475412450252438565600616827524022787883356915159882266546342792932215886926547428732964447094386422904613457396186610807476159451415713189795605238571262234859780619858992105658937889397061046176921002023671574265485302068993379456399542540641729323469356180961694210267984132066761679708584269572107003496236868711527834996525270252168218317010732892352285165779773997861708640430559945024566081935851200144237680664438590291342898873430211973677125718352930054336219855252360070259423051113184136121529480912660246268291243765854090764094581876038444200128586028475436057880579593445015093987875983281876484557873896486111851602913832674302492694737706926955528710892773285478643866656703045916995980099143076501517277906187971717435399533166998935492084302710838070720739124961593961187098734503784585763296031690477468857059370349626023502838119696427916181919366456476484359243589171757312567082781582430383158769152606551013958600063976082294229529125142884308159080224306114033258251198762936730522710596693106846317212339499978025994707893076313704075178190097254795751603003911173865111533390507878866505707296805478677771202668667266087543284035478645860014950506324032848203271346970976241679852596862232852906528285994147045200024032879537016886203052785074196600940091545587926940222967924959180420229895618227367696205382575939988012064308681295989259928811333251783234500934016926213100788902835375275059063137930044044472307997396361706140433085839870103621172517169092365837950872337828014177243512520317842430473972520049754886595025737401064295658418771753610550808014885972402550231048944521482340798661457165810440295956151098777275554864099899505516993657250118124992893175196871115993311568100169540320406827535002846080373911180824455873800209383539977996718224163136952415979291503728532683592333277104241351496020329178265933137108956095916842527912224727448275988170994853728636662150245192432804803673360742578069722368606338611244392057973492501265432742998163402887150793795704349322503975401233768707188612689677486062620091052662050373608903126569085237537547863295260626923638734641789752525763960877959922384692193266899809128802585039143478414855553274228142578810423320066369843688830981933412786870076573510538079903964519947394717150481363097834183396670978277099565191201016401525393693483903803107244360290305667577588878819758933493436761049436770546630522331781022363399418783600092807168105457796214201995257482737853162246853512728468337883321311233991593043006935252983603091743360747743053348856766113011563996425402999979540560631644354716798759528818473874473095696767001640556974435594275632095378165082772598793177837426096868435258554365568920313383152399844956972295067604914834122143871091808969671942666809834598137532129487398699242720461644323577831883689839503712304225205169788167779523495475595188411203265339951752959211628024562263197305129281443349312319268192108746136084376126983339760882165591525084705203053212563337213943597510898247827235539322004690283874640857608662604005248006923228471695698717060331601000785596186945353269312622923363996090641819525108543280460368402204194001399442286658568068787150342241199507332059515638250893330653653986003213009914711469393851916825729290884726195062827855118622649091026255528134518254350638815246194455717439856918137986694950500906247160629912626166233624668062321161813998975041048390066950350753006904661824087911876256388953496100643137852590200660327243054599009941551110999691790046401504406061293369837313441291271227789212634615390016102889585761848020467719843047060264608251283653842838087022369707357147326120413470890348842970844392448682364720557189780882814422876894561607768279694381367028144804624151981996272713810411528130001507995222509100325597976627230972872773505819489170402884110748314695917658883159034493526559189819303554763731320663510545295953501355923074870018604673391877314730660098458674140001367955775661159935626021684603004306534748368855720888634287196170463161585788090018456554680440153012160939833094541254594695097850325018009132770422141916688911685396625289015091974221221141161667154948849934279149187081362993192742541239380589823215951864622508804946849801794989108504073946063231662782602331369395083282337769121008843074005555335126194022157703785215469709256997083872161416793003415374170676804446748776051539742643697615143703144704272207696838228036313823141991121108349932683533454056729475082672541095679827395335098316475625479059322376395298598435513508020644733214458883644164511357509295274113997622969451816742436220501478307820114780495399007435867192032022067308660144679705153410089378603663841249408124252470236602807688848244870385186360306380348581020159375702394591774839606532206143596166969866994451190362812519719978606453185874542786197052597563219410015806783616978502260226228791552078932214466035165196252603614355920422145193234808015762670555813172652122054431957275329113740659159627929521553650308328101167467694517272144439854768846310070856035422569882041766229577252111507432319717451199599684481349585147764545770071603581863672403473782772989109750749605607782125382144040196584196245354266194859344306244225148819416827923030941415268473870875323085617647268483123780763744415903474517235573714713764890768799680502805817435389286492672233772307444148184937310182834822801192064410429566006442061801722405965547730584327919307350260062253316455009575550565251627845255116248088784287566260579662943821038604412037744188891880686183622204785970592074745826096582530248801787566881467164964447438190186598066131080190905838829714560681657729543018014345541455815847846715467502015560824826092409367219749907091766522880519041879027035718525228688267287230918285291665667433400348940831352733002282325390983000672890025558386181080353491132913779576438277630568461136409086271237988104266312347957838528259613355702457507572339096327021083013072133157981434725498799580519177618470535587472015235974745378754654816391053299982546228566294670215413810406973838504093264462969206481972047916419399802907446373432897334235142863454087444166767677647063829101740686590661729830185937586115625820855840805817855533010157491247674549136403664547306496055413363339278217972758741270373449331871209957222622595227424507794950986069152776194634965792847710199414325103934420671777309576146441802937258226489223512157920356896998364187153812560158088655485437228290713612589880873555240662174154325685109707842334888035778525297824213185005336528235068649771025361838151030993745482554864567053655083556173438026510270475120343306327482408209529079572368343234682279942359170823669441958291274198393180110218018657386154491481424464301451857357701685241500548259535443803350025933973905518260132054689826793302168015527033707902969054039094549209125049916238890557818274198707021800213503771934086631048153286274311133197660232506112426768697487971630924402031004780890089405846285070104013727497988308463123996682068648763475823691360580253466400062970897920739734872006885441447211804174631873252267953302931400642191425307196419825213747964369595721748842397642890335948558303201177456424955679906635706779877984625654421101788865365898386808076793342988733992230488500609140008364842674797943328622801298963582389253037424440702185457349499466486238793569023568765281335416092965739979026716504690029665479444163798493835030012839661130873888324513464899301295730741721912977942029708711535695192077018460356891413308118031180699937765526166053546135089255890376916937676441316564569760570093801686869720435035877405477639933169092912177404955241596174978484704457001369097681982453990400047199237814685576978844528021258843270483096583536420558682268598533532300421606199781525618334166477391124552863308179012067646728186771541963447626467675908902129056500791403734786184963759148370960722943916661078548972037561644499229851218333481519340787387803454269821890650366101357063951417052116244126467874672431095732645681688234163459323313209900530776522463863224253519046180442343721808302592326088421838341996157517543536227878403412969735944840436473814425448518986488299719180251806760941673956457921418431994331101120387081363698726663700436714698410146561904172126629946276386562110518387988951181503104228862969231039621680292135776542419652670218259167372686462575765141190835619388980823845222525721357216752950256887985874232907419532088739372812965730278723001684609078991170573119120964763607558479344492101255638450474428424329555490898865486321805336734970792365702307915049837890017788752058914018801338235271901277568717956262283639181118004191788561245137659827592896904649193113492739830718766699165579513411151923464798292692476781513830620029752272233722001277870737884245364171110906194897504663571526292776745953047618930179798383675797960547662937632502399617304374942837925329322564956189058604939126745965593524770043555910849185453717782974898641816644882866922256755561850086297256559277904110350592682030759054965687425715074825500786364357854606506594459693679291506187246141760745201882475338615129309713232469029344477310414393664919919669726630091838035648712517664324079170313915708175273280849059861982762452584646034983142486742261531078548898632309474442461058261082049948414727926720537389196342572593238473970739617991583937421000397996458199064235002274998367015850529294056172283890158955718470994323543110911148301716141924948080561890580948403225375587958532872061759749437617553067413245642212226170023121606802595031220451391611165046671144522119222486273511142765864749978225625036522547934175493993818508421464462715993366514377575018003947428325963954436694950944582511596448701085297888596793616695239684250987008718822575438143751146725591059265441728323354797422133365074881494110145033528014158662030008937987670247232742772412927469286703855559117120336621693851380254006953890718328867137146633436893135474814480989155995839164477790722365799888794600753195974442782066702692908681468114794591743891597535328694968541855817291456141442429166357055332252347755652352872967294644064753461104397476892122445663971846484920047857784608026995027736494854402100935900970954340191437993554123530993903349827901755572094104333362370550415957186199504605197615367481471233111674132226952166766689650317423207639576626554589281699147618071453046459720785261915055912621189657002711703425277618321991122629936414227889396470345818586572576708341674137534679196350654447203447641612868411859187566191994166496045881835625015376228775189718647270141728984775350786827532858329700272411655288561844255128291757338209510446335754170969530285013505651712478364484230852649271506101105742448051201091906542724213307024128833699820057391345128931212391167518800663256410652078296419572175749543078050494586326703888387624162971218838860151528220623239109623914765770137762950983373227504215216702310640983647834760175770755658584176457943971009220635503614811450248652300899393157424462896371796465931769484164575964957731118549418465095507432856536599958734416404884926294806479360306052066067677816143021349499167802112463212423250197850302985221250137615458905411170561605738011963765017558606031025532329443196332025105061986493035398978252428317178821683583018995549887258798001361636433231172815636266229556382703140552849564216548734731340853290428810263821538279602380458369910065198564307277971476333258204522339425965750458023569560498168323075765370095676787030333635589250537872949810246021735205429687617592917632594353760381497738782854549383058321390527471282279582843045997868107926526935041877039216888905584953837304411751938955437240039805697490212041585257486451157851895664581053613211361162404807015009697415797385822137548636250011203537625932865559801164427878562671973760859436404762411230505034042490511052721512033615511363520950707863475502828731851943823660742215723640679013725851612674442232384935410231331441570804755682590791523431116369653390092410375446903703253250459586256294365145437701769838986504070893019645867487767289876566445178198877400827094132812267933577385898571347363756720468015654787090496112555681945503437782602837958192410403411172852245453817162254976858298654945701768691064576351961134960456270091668327961844937957461268706526570083563791617798244573438888844503178620521975511206111467880582235050323320382723912064493337175882204253016696259284155262620344167446944415891462085596147134244342393125876949398255712520093169916140022738138476154352108409220278987654600823285477732201046584162408032297421363343683606836531090641503559476911291958567220641037663814041256626066592696112000126802144366210765963418897585406520570122344831695922727066578456423418005929707483434135272550979720325240366626246356950139325640168362834016952436957136353246741182560258624867232819917655962069842849262045124728393742793886076297417858884697016320906610850188717650708569103171241921692386377134568534863219546243390102871941026971364496216360249359442366824420439614905286611050321827701191574432152343207531883515611736620583512476791680217821913713758600295850453898620609283567285563594536886393911287638626168679125338714254107971645073933197216832448052588008870737825596227648733658786670772544411846717825851777507257131553105877730389013059862181022413450422006088509604336208891337528344382435671702372175644087082512260318416873409472448908490046450863083737291760362823082359605091586863293109974291899486538336648431654166953232553515738564065865652533661928789929800894984216846617654702024555075191394095221953389733014333951156738775576082842211550833305661688524463055890928191027073428241327979712779599511395506698501708302082888358139720387846690690819339056428361424533410662084414185311765162185822448421020929721958874678060277330813142332754502060993746163480907063165940590280462616117493518604410898405957739358122772358243759478936378989537158114443930094328887962760735748977758186780894030422112965906769855763275658556203147205763625003156375439653129642749314156658627555751423372889257365239461036501583635912559508572789102109699015128655703602663638564869865907200360732527468210251206518440762698571184989549019418120002382941953778730919211678545547548882331736182000407530620674477691119751195583935584073756504624737672527768800911231242695898014305409835866002364009747581973438883115372972379848763022861313955814366211294314874388612012520719700440152805881181187046140148634871603704484718633704342769370051696349659745152733232646099821796643412777102634517929822103627525314121187620444894877638941480142157412097018329679594206589336707309366128804628230792720028210553436675790702835639537495442991339152991392998592927460213864711487921329044105764943346225087914999240259239122680758255735005010738231652509906544000807521039681367616001020357526083751782443539922361364714096267217758731077280949406262465759308414443680451590738550240759386353767107598127965759949380585456091634531263136540423379868942714362182991930623806166492085215324883940117666912853792787049103473013786255685223106412782099809350122848557754364027937234125216170220732653643818600950174802822427337667637880719005214019533868220669467331110708866076173024319688524639970160290949968970113639744940924859756876125684821579966606338445656930461578429862716212560499901691590098323874992952131406888312929082307917882993794171559255374518925162660816946044105562995602836341854572618110229450534481596532150353432616927432523010498834959929471182231949587580452385334853911238601839949992640133410167449146829578380593276495111053535131478825107237969577900788866500457288047171529043747466227099230088799079295523632191161376555197031582218679905057358564584852136430967773487453452053473186137160726914152764382416297638358611994031342886828904445841028685141730153110681732066596958972160711729219700631998991016673597900632019246956693683046015921248636350265458145395223932680128022671827532244694202241754102571927520429852738085891270988348032542895941771982559834304712517867165673960522712832137185358474033108871432975712969340770396853120297610534076329233430080633970945286105018523415551698380308757250962826994869399889661952763357980740487706136922948350754578224092698692374875199044566418685231389665594105474467338137691849959921429230937161247193181596993765806421291077815085544483218902919823532502359469699459326304186256916693704264426803681372925234161508562558724340939139614422522165396272113989009145083098258319393717701759666997374451197136307098568258937919903447493964402333062493375676474158082368370542600486329769058275478428716104423601785049405297382999925567145072579557795932954968349023370298098331351354590632306458786330654567941606805693132469479563904951864119217785246118836752249194624773191001101546818002480015196084106453320701768887250934694406957881419913435690976425516531619508358615739669943013765528310441962535654106526497948035411152753264030644900526136376174443628813929980089101496274987014118573157288459609179841470815482120908874528849221058488067348178415701405105032604483268987786795266018905766407894043327483418459590448869958194163676374992709613519939010368878269352415121267959837930832151969568462117291407057951219595961992286059477766449051531266707767941983218761313121525489646775703558417551768290554882913151665281312010267637216071172350292853207725985883540176429003581255822339897063680934227439591366709970954470405663586853261116627661599339195175484264139643154683936470820487968044388013838536877240821577971600962637505455221703159994447122929674853499378049239179215207065141299035177322329298714041392786188574013187096215267865203266293122617304293591059781597223586192772303927830251821973366160533406353986513051762369107062418627626641721339803553040397683103121553195763096410391732101267821556588508016692396319266254181133597979126654430585666600547811056517664749857873834837316426121121193042150602375055932576118905650248881432370858950986959950842673371146892246236015492633750522308696715400627367442498701324189063812702506889103001536963334648392921457944477829928711150432865351456552684124916323149411392420383063585640443925853472004664562986203585074878211488733775568713255123302507661947570333979467706828661404855764681881666901351616890597187443968718108176455744199530033682523105074870322204843693745753285482996346734060331657123103463557285782895909180150229541950487038035307798923787655053819500829171400780166424339717872608621844972981538713566561479037589676703257072866319031270781619529324447488431004322511019526364011462556116165370759554846397881389774403874352560589393700122800789750586941546683177828396354455571183922485384611254963541990700541943756749893653620726335340872038241427663877976547923214915641075224601747741547211203639507565066667860421677228369488805545967903964708532979864155454059309064370744562877023259010579979437860596036648202843817152398320552309937105946789348681625620485743981087528395733930353396035369259738503730499916582278365985427325858134054004165621211002878432087028403802305080961050238388222625425618029100769539963336463927490909588971027639503695538167921340378743656511681919839613142347550737313982574986928220744274438764556667528147952535605443448118813704292876186767308086266749837873675864555858399287734867369453157042664223332440266645996184054145210768171426302904445065362697972142395438829536237160152399820350251370289557152870908234563724086756328187126060857167638832272162590093346603136957877413648928882346328886339255607441732925490563801812989082108736259741448693673510926788684836723350743088045796789986688633035172618291956675848366418523888343667024550121257812993052353941063780305465701812750639841934126508888605622837361755442182531239855815955043364027735420418294873274155795885823571724463407738036764422998993440915652918746872889707721860943709393925039420719204902595102917137861762000772520856135037826006930154253420439643568891447129619156198725515361927263929158410296225962373443028250655132833993211098871430936917809870932763476338317118658654131688656169550371992334341087956226944348922196869746562132986566667722557459106894328567573320471283690806727586497465389515610478878037941354765276475612727857393827543886178097225946652423929966371233320492028513182730010582116140672575870642987548537035196020409170277004560917340720521626489186259358656830361011870795808663501678768812839923204921614160384825874196364682678377919337785894064635391071341850958632478190942485487628213548757017906928481112150011421572541421558362659125609175399687815474110772615572336369835136967566774273297546274423120936829359031123578116495502039260992477675726691423972377921555205803273697420488630345203416684745046327956446524777349415869195333611018126684722795838980655804067177798317572420459507110466176582975977643993854567886191335246592972140715726972337471529509184071072407058600949837756490876319642460179988177933143856551704029373555449001643934070732326100703392156224921524758901512569352938129013794845966293195191833047185422967167581971819997829828124709468949978583042667946183650318297766142476461712751171175816361231613749117617919129661104106306843187351199678197864152274013589985272018186890272142798864868928721270123366445327723356717145360533472429781385647812004202098142018489532030091920188592797823704049514959706767666800412971463486588257257422340713793953199056531478895393397011212647223822306202313546968610051331842775539670946505556867376309811617804736286031791274305635819419640893803542190246343540912929853279397359734630668653705908774883604559305219988231007650825605253358501312065368102866348891589372415389122880873550733548404498142274721107073837888341233504455931766312139758255437693621071762017250025427457488960243323480197975708029976326585766925795884891395590243574376115334541651257388361590583702538092870389647126219731745428571916381960240337945613327702201708389538160827616069050406842589551153390846697042461234431583603883463317740266511993687515322687540282598634993153966390157567278292317922684519825731842261240839520209131101013061142477637532451656623405994394903640776316628161247540619834540927538633012503338278219949285809587160757651017357510925131134307774011632136814636425367981816760368285251164962781858663355718938183770321555083688968727709415973820193287965318558531727391138289942197525701638387534872579567599887116716270182083570449461075558687040468538681489097903949125179788824330559743840365041783123496635276307211356609760514651839496464684933339379423843481296567172152635827747589839789828965800000184927318213159376468550355856349610562798920640012891848499624116161651817758801505183321546734173337992652794693911454784880536880483137195194927149400813353192024047491665707403380838439497458572891277624908120286639147105088779452575545540946855171126604821252315115205390763416219056682651205302214228899178846474158652804044735643417856317792633928532200601055601996043252065040658742018879053154894695044971262114612209866705344551824417425454536540010947957062798363755222972929335275707919478386835878414915509043022009001803493608882992279479011724772204784831195814855542594819872060334065324623662188325267881173771204791280113972520050495413952075808239809881193562296543529662982261094833323016668359708756978247721529056856103682354335363890125802727058813743111516635563748436233608351054211136443214364989216902261868492692489722571756693246816709561790822816931474399457496130249827109107712160936953843012990012522734542527219736389379695851786312204053130039099552905969828870733321575064897456298897653410324971262346913305271501000774712542840757123806400739710732185358636841243401301488744575724896192462269177872675004350589177480610373238750182637211758241235186070117113126035508782522173539592106101377291633638260550198346751769196230972209854742024081755723800421060166783758714162519447531290536184663968752190891906727550926789096418281902715205357013641137188294444132563146381689628202654853481748338763250208976917741693951923840299738420931656832762775689581561711019004876500011748703944694605420462980216251902383673219818712640842177334844375127396927533661285861530107121566317615641395690690518506279098942331065995273878606317661786890119684455968076307174471761229324341894706119262569641319969895981624041503435632950633517273464842025702744081550231201959506737072777646291234789677734275244114442489774675761329623377562988644532891505386903302789469046538852846435188349231608059461082335991102851083870323069394190011319803589842584655947399090549964502359591622062002108788967173082170394870470951784777552918285528356975468933298944580117586685084291192325132876576038137074992261076588399181986875446621390414649040292739098544458000981673727049585199615317649733427497614496569364233818463865679825954563506559607662169447257752446772881843643412703715233635973425000370653611431507601586589649632558794353942898437568880834160272019724031081022459474769518867543833785460076235723874965911996109194022368931756686377893118196668175480930602690459444773152506887120832916164973649382202394466192326638203384236587051602886792678581683637354175754868513680100417690279289253845332645348808419023256503550611482550680642797877451196277377658629377965860196767272247859711905648458990232331295231358801935793166693907193599135256671371549522007005321789949795863838881168422213649226174699963529858393187993374381871610811038847255739372050919669334798880024537638284781482170893985234389029659813235652871228998710082626628057318951484901644679156290302750095685921841246293084515735042698116431057195053639826501232138427706452723357971714509624641560848607281627542874666197179127550068156637230095800605168372212758497788484483352679041670353264862457508038134692161051515034010498079723497234307189410891802832367836076471543438509175307856861712440158446088165308243823720475639214512616565483653943546554890100124889942268565644427261478454046071235523850883467393523178987688951838361320800507043809153822060214658001159816857154315649462682421274994156532109794636180863935363485090739117849898948411692036655498439147056734030895499419442030958139679953423980358435580274330075973337439917599566528650607872109088054731326082306500966967805253230760992710543814207356596113322878032682206914489697616440149970296138158851106153687425728376382568098097550736246374792905972632118482222092806089020329682922080998588437178568380062109115345690159866939766846891578403463822909612922895311909265488120451784270999649351625984000032596057278690246247193430984274360504574287383836570448066784600841852390673438166740424830863502789521858084181742406977295185517861695047087220904818018138847783679014962092065849239037600681170767538128046385910996121828653060603984053587481100439407600865497947485271713404601902379181247214103299346493978718022676123926613615296174877456634218751030796100573407421684389817542980416460198257994096935042863167353547415938742711145829353479634614437303005788357522615299250347299070046203397965338340297738852058668049844833821667077259077056201862443417290826771936265053557006552274816580685746106233029994272399977865198640818577870753567753238502901698040296315990324275414538709407008774289690930473628996617098418095992308164394445970882796329789436809749032972983409128690327165646814360222639730822194994438694266070775673458524721196389462670331996678744240693701655286484480336423083563383151498277679924211056001142630608466605801728548192225190092025769195783076527810745019084637646482630416431200725942846155624871651632593107833349649561899718456610693915235566549488656594357354453446107352981240060321380815763830906489275308669265071490117814849014570366828883039993799644205072405160795097742842176245964303664113316900830505921872546056004173339269843753791166784058090313701003066807799433555052586646364356268455312355020060702878259161470939274647423396081968129642536491092124983711901085251842485137677544618578083133659989851330424441370910125084412267363214124997188127310799898079433858912861044851274481052937815151910689226507203710379882144473800891355147410501471663420620508129366925152376615160249109658138254509080745272644425047567491899937039292468710358024340950474126569647149364349082381809329172507275521399729080148925234184932538409875235461800944990018103729274070653259100751066288119756980144139955120674578840094591221703490748840464644634443999940647914540697762079677723151909116557208717801089499053025985290807017209836308295626707810691278427332197957394007071097488244069686334486432722855751355375152446423099552184988025104107705921379328110761662462698256500603871286467598305044140345707994124670561376536406591557966234282841022476313906436655176062830748795203560138558251342834162718197369796417454432310573942771008894926995595271975653363539496041399607492634868729227451358985276680830235719825025511081941601549810645880172167352945268572379594128438927150478853766851624348386083367009069337633486474623736133087375507328254900952296151414220172768193284009946510530017282326427059027526850112128882118393841716650271066972302104465013121648966883283039539273820534533455781758713621042099845891177914755081426177313064691287409872166485698559286535960841965814108818567916092085186238305029572017996658569952363205811748131608065462901891799858571409627635364323004845704401089476876902359143555891531186993905864164028845300584756298778407291083636189928796314656303023110172831855171620371202070729992266074627192938553610164213515029867129930105868011089511938184477817398034224919195646437971545151684456974859492899872469391692463548343130219843905045457297751961696859624202705395988102077477257096253855765732488441092600550444874230650983717252733746526477605224965230648804787912075378364803338982832745910172602038601774339568851736706168497526327082270887302555768961188523696216873857784616620600063406546964545293395330968479003333300222631785169175823958561109281511142428204751085286396159833566378931805368812763604893092478717964195384084017651662873758991462545038874594313848452982118012714725614242374707988934151777594088238662584153916112345906029651250341665652056715653933838904444111868238688280249631196311887675331689083800308593135732758975998192718966497768468548234036225174847751017709792474627591201378790797110198472253253110837791933178224847563220992783666555988272379380984229932357943444242472728639064674744048289067012664371894905015274489976414513257492134875975389938262354273544251592357932139740410769606968763694520150506872774258962173898159658444414009923419553219287408636598904677680644605932091753127735057220814516322593896989031255569879035139130686024851048011798986382683756686954192583205672736003218243992952179045079843802515628688223499029351776209378839909199508810306595312574254430186000725860538399290012909920280088691708544480321124856626613105114170410163383281108662020509522320381291894896345260363189909696805204016289209350477148991140375616956070647035935699536911118391441546812991098817072934837309115792633617074127773362771252251562984979684197445204727964118348028098721569149538286320917611385222154219852367857648822787935919360746011952139556300832140115717244910328558719445317976593176595396254379046592264396274100860321364432062162165070626510759578988977627414832987331570979634206352199772040840296421724599654563192193720949006818919807995720955972655717086229390927298440433719299758910444366518114251196459057097435984851355279569258821644828650552965312948699365854841182999260012544444868115887203646311017400216015444869019823938633621688013963903079401590289949631108288040020373480105282043300356315215776807476080317559599820189720671646499537733814397396796244963186993314896201376206544487798213335615036344691164417708518061529425241924327640746584881544567005017983683007456146032119751844318113639932065384003972132855830961627227375125338265315955810073034507205127078753342787591821777293599910229229745984598343516420181109191541883049996380843573149863157878938032332669975171040313055186485862057449980124728665143562093760305904682684798101265780601833985150441510884817124148023617426859812155659045397949632444731542947948805294152762692567769319148994375156670474527963496468204088271689142558581288058008341896950610132072642545253780796358502000597484717260231160526216111407254046245078842834810084203216333938554000653836735556968987188540884692601727578934439261144597977031330826471857325803542790305649334388139965258701141807627795734069706454113714568518568361333735298319292188770885231462456916759077202192056482753290966046426135888672691211852894640881159224604953951773382890033274208399247981847101982069563157066678496055753473286433353681051343052676687739087507447147625547561723203550187092880582233356548034765983849698617489023815181926970100200096204090214653149279211334551998280442362670799563829715690008824543770503492412150306608729855433569194558385447118017049130679527248827909255429396394661161881749288179649270065021475047433078772462214990383350674394851452110921372976139335619536775897911541655712759968870274502402516953757284582297031900248288249731348083912025890041517731688820626977568455944638010936026121712106978490971038397754177065639820084255486062851525636947912771791365482549641017309877463052114313547365976530792870090241211830766630017509752063712845041016236487996892137641885146789982567130077797514898391373070815306782187549531879011729952626473678695472669282128869721032185047164326439560251695859581659457464809264879535330509809080527576738074223327480409218572927035865190391697314137243835861083902805270722707408201453717553814607998351292959746827982194397048681311219521850829785130094974046140323099342201452133150695676552475369271077987140659749478785010519064452454051173039442830049961033567729324515242425110394566710662339246494860219912021908873076965649319328163041218968003790103574395597128456310356335728001947802678839830752476664350271632916271529923278835235319448024608877817645446503333789312168990422873864170779898742208638405442142304411520280878741374476623560906481672533151512542864898805146611658172318443762858592152160834842635532984976100513063350955763561541936228771004455293979480289817818710463334970595929197696189044929141189348756315967435098717887744351460755268989672493592029370046329893137860765593094237509630339840647842115310695331821164762381412380288680210820190768692285495464147765678399064578945244204667973097962664542034407808099044557715416297814401263048894535527854909750165248216038902005442068782169022676148006981894755518051572385337589420778848098608592036112589506905963503400416223251537852897168845091657638850820895035278444217225414385306183459609959266106392632218542658776244205072443517345229541030738981178865624706291101487025303641502342100652304175724218370015692860366638099311719460877706977966789368249182963097050922428681860430007849814067493105905971862352732218691736320388615611981515337111707622384375401706554259815175973987678998574364333005206135054906718179882049617070048026143785950767056989590395833309741318522905155058917676538621020813735153067850701349911768588959966942487572098441366729899471548714185078756841871357530567157562357699524357400287206167891511412680500455805621435479993679585812450733303901105195826138126345860653178026493043522497421364923820238694701018876599424899170972170108456342165026081841005645139501536979515608287279089974544806003836315907845164824426477474951531274964359733238697264020963707634591411123056326194377221145882503495041005836211628147932513461955940837330513414671002152542664963425776630198439151500921893452073640368543398951304281254093231742873330403464158927192641924287725774718630707440407324418119947587274092210870192278838453001131367835202510822216628437474008872899033860448661144248475957839327503358819106023470203266354289886778210290789476101512698538652151058325373829841024207456353172605284284430007657201656710379759254269555104516826790148566439173917280370180598096487573758480248328782175854139970246743800087488578821314177317393512637729695218195184657165212735113182659289606207583841113207356942094074313882991269066558989313387874811618873425127935290311039353493176936706654405678298572845811114838453846436530152631315331142826060121456352270293593696290216316988030201412509807614274823962120236145490255956730196345012315982166012471986898189896926490852767168736583547553694719904720765840381276052715236720229538430354599353317084391853735627065588872331910273876061790154750333512698327069395217927775822346170871736035110649184707120504461360291436494280563677623380419674461037905217985449937492091691429542440815506865172258293855428409870551647817796405593827675531200591933871122232075595094662384551292479643679521264433549013559145398259064814872524548592639038288896681533736407028772917117086726481647494767437700226274014691788009408280966112273823150321711796452524709843186269450792335252570648674071034069324135965993370578396243692437981969514101352862661356992453790435996412026673032191074624225703275488932317720719803090593741244844850901883095766374327804110887032100915211477095144247705136987245947524500049604934801551843427623976191441268544165809411674902169316312503375458568144403465211603154911106633348222153585823596845867658331422986789135189272881209068465950312682500535508399888008131211689558062424916629275585280313293679659183566320836023127283087168714717321275943340200200846909299911194323837637740156727975500506554015111031822345746523981996742734133391089471458489668627727620795862986951527333409077961521772929883268914988594376988811363026801714281996456599573758841663850143232778406786610878096978500197149818777741299371710672118605269201606329584904957898132337093064385208066020302260757531914564056115151618430088364248192621954608024432506980292216137504875838257093774421825212813297742667462740413461205409029635206531420124198672053931647327350589662485712253659932549000023360806066542359966037586377282654671203467577237253600702506116533727751841032815849500724417751375283520036063474374337384729932504988449830035444765843941111351788674824938636547500143156304699741248910667176934987308664860252564392692166280188869152082082536659543717141918286193055365712954656524056875927414020531984742449948626480490804997756377606761608101211775375953629630972031978092499606735211904089225239845545311031977046452308450884081948676874786980626117720378544030323830870164566456147869580325330596310373176642746092749830172780310151576065695595451550438527858735727765419722018312352896355666654267912941275917148318213822700508322024987499461829504878181157029265604885174396767815165258170654118117821423798474724491526556318389780599218938487396371757732501266635626506829364957734185577319807808359998575178789069701970573809824489802378488806317410346585318165002805329242287414158873294808864417551907345930536047791781435180968586555708714168290900081404348998371276603398690362099259657281803069861183828825752838155842103141870407970262850544914243045943635712915681370838855118681824267946497492585542474097147258454158129671838788902601999476639797027645013889611568385700896537340879563171616522300849722400537428074597882241902697937424503658823336989115145868366432797405649733734516335265211602357196910473383818147116459550378116704373788581475232863258116274176132499267804743943651226319036881532991710542191109272689918252958854901613347609028108701001578820190379150960235410196813770483138058986149148560793789884426377392488051442377524437955003696238457485943718700520238160963365839240826534338359244766978346210473420254771322853015034330375047524639747652105571237236982000731063499603128125871199965682224696907287603603274775230783457142878510343762205470285756821662183511775432693224595524453746430596679378507797001806785280004280024875472111028755823972792416779046270705588630648449141289271513831254636047574300321012019796435852269129923859690200773961582199820561009261447165636466596369741459235271537015476816894968078158644574591478813030383764220963398353185532988652562856766890933096581756433540928017679407551518936575931963873860835991919860508723922508161484897447009749194247965990067960676344054511360478726213072882320904168587019620802919954220753651517709804378386085682139926826717788311268175215532313702587393372965092390979340083127198324198760336114042826196508363523753127445899761626024850004409686143190556100179336402285067382007479613620804775902902024177456586109130972451182032404432412342416762953937648687357250179515752707297709708685258442761544119540048543442685789846104999740593901245899011211235184429450439327880064834009662090122155369009429743015085607277631487975363224018389491975233577056588292067758642988330429444109281736187406566015030393219832604522907782675907869460694504417159858639521128519558844718214076933193256135975234740114911695723547967715403390851050644392207015767082370497304656871404474315629585558790645456101778195961125580291362967055012714609415226097899468778354586223811037094807920641409266519820240698251619220786986978857197665583395847738380427100807136859158370251280758486534182273393392576041451023347729668857618653750972082737123953193889388627798312347937648537968974944753633786222468604986454253715164140257450688074828458041149694982688314476403507013212818041297516200309415893067149585426912033507351097406082262546051963414264244076023461627869838624679447744300133452177248144869293091193018066669769235884538091248702827088367952766338403807347537291279791320977555912224495529391393444512228543680719428798815290290891899825490673879119763296927634893034741311339995485804304276993462467402334129765798856267031193044830919281469042959040946237889077878448698056933892992111492151502150219327149019734939825319130896395298976633503181311587702853061944098815557804795590584183934402628447440583170063687959681669727816780828399952371547436768837427124200269458001788204857432941759979488865098461085790411285964293749355872489020575938980224371927452654128079979129651745607605086447367452654403028416398476220986411089983658239611395897640326100162785665031344519497962546556964348846479747118150133383011205466161474051123497853384660473962958746860714286895280508630836945393490911256365817336615665024428727069536013751340016470461059445943131313565283562819069823952474745602925359764309040402147434198274104744668931304562338870677029579916394319794641976012093275890565411673560173840689150829445887390388271087262304513049780641449462444307593251428830277903026481304317502537936396889556625214060761176537044009595032015980494109508723317489588031108693166609131853223264996727958896117055211072522461749473696992619854538347265152271188840762048676805319683014216023463150788197675729887511274405659213032690518314733281086370661970653259664662858231046427027249126288689911929903978916416700941449061425607832298353022734401540322403640774800547965303098682010489211299506991440018626998901060651359919995265957514573560254317006749364532678340069872830902475659905776745751783547030775858700604062383595306234844906798155220613201953876431656035147034745531999426035308512264562672131518414095886054542637882494712032625936123666255951068836162794116592677204666543133752944942195205286651523778577950165771183084930437395813250584505761685215064568358078925811063207272997896303185426622434195989733440427406688084616692416066116987353978034668202944976759471690955738837767510946975800888947184674394649475386045202402357003294770206016249964484331228077408627991166886442837577873781012146421169386129505406201257470971338895320967227146770798579110572710747837873329554379070467210463300179286413729616044520414416566351727641967399073520623731464561949951109029449896647916097452322886515224041519436292911056869908349105853367283755961028840764074225385061251976757561561953300697422883980684554340777990767989005497945995631101188813832767108340172294431833780803146811492573481398315789931301527157082352364571478110319606200813596832384362007820857926343701121905062195945542743606924684242378686359148894640938016062016910222192946479144637341725336973765966303433217786484723065638610179790189860429377578950377963889981774385334597521308615360815357946075026926300940154813619708737431185401052021039097795104222233110964342488195126361263066816182235760905081442154013587539275957635778607692588881039072960196253787300136276409982773763051964790638370766029138199510282663015512418907452789397156626115648612457381404819031082815323802011094910327970918524311139736599014760952638530025287103073853259893701352013282276680606715095899713123604647728427417979266233547456350668462562995487959641932237996932942041335183167800350880921385501002619680389319236907675846258396071996733649824437702431744503969377769473687251811069626845422462354635913652186453249006380180751771710123761589845761816704758442228216054844121096175508023778533091663875034590881243673256985112161198316084161035881298351516067299723896356274350256269443901987821703423031033173187547760718932008044483865744585305604919162291998957609841042541028776178979130897777245375008311261650346891781136061038190922678192062561084937925977678030879839702795463598338813171453594202926660943760780314661260809956822386771276707368992716138245258115643007586179862545595544276916916868046162901815890418377748400430267915715089561534488026051124259132615712688752923593107070595188634442288773389233759697104181404076644334593312013947699810931181785365399012158654686131593492903512462864642565630685309600404379172974877912194060871610674827144090970536382502418117940945854248744231049196853655439035496479164458677605624307671070971702617989730579238186823842625263962699699546205840499306486430614556030341815417060222784809911054980878006633340878670019617288354513837688771463475327183039454215244613698553559239763461360418704841571906673451470902024628287984146151713232713873471798948120190960778180034068610898033244403202518930613390793732780851341629325158746821093290657205598324938468740758359617774548039794577672040421875279327419266722639192067726991493832897732834005501782673990998404056831200266297363282004227606022513170156028618364011737477222864693425017924454619142186065637912174203541030522104894768156930214278305365359954650479791694319810389128688625093692321664761602549037557123068958288587995532633399517354738410698352776877734920349200911124385222693501582301509739964628525101461161889150854036668021913598264681885440993961908923882732016056078493769198309928677767751242586713579418893038620325092545754586118704988375685139337219615795586934992416199832476062842555989453256627319948383808386516445782763352396024858011700367784227016272683948916775951031223022875733328025259647458163522756120647858047100507575463819813791753667024496305872291585308677655218805610103099761614818963742172720571099661038388495418222910557999371727138688087107691387900867704222345119156435426623266514446614734758516637633562450422470174420348750373651558228348232165029161686119290675799441404591595563570755290901645890706468002338348797027432970771367911030472152347394935678714219587409854490395065746824429964545496953796196685121825767818168651490025454682914610607272970651405791982866229778407644407666600001035075845118158389159136479405688426575406985645798466096600905019892521180338215506200613024909977485274303195508805476215702460491114870828683327410757573845861089203247063002576606969391189824189609016487540574425560786251422276124340213659892150736871092753373041635382097767058602570410895353820302162018443014896179906834944302864771489840210408757148212651946910019697923990185924007237492913385684423335892459826399559514753007390844617770516942078626480203290248763584936557026617264384563294924176996295891557608607459080106486170633393418712045186732930041763123949477361289577767484621624492727818324562730582315409119830203026244252310782148775115578054458409313565066449425663187450585614166426473136445839349905174154758891955985702635775386845262431429760988317459083285859610497580709781641654293770807569230966350711324364003662091883660756463898123604826895521743998406091006777128834543470867718553821365962744792156644486749881641828327648364591045147671307356577190575735308358381545951922958981088995803229409035780804846387364916661459176881640732386800301289455620232294852762212796528768207593007286511941638085420861502477322861966409967108766290164412379778609825194992601568559813850673157186373518912682884261874906563224212641364112461407748366524852320753743457713779566923560379846988073489413352315475990609808468441529610390166577151067870847499574882338549066227043305027097528131178327327166480013785585429129198307599715317689584891123241629293552295955539665960378432379151951083008500752143844275829017139271042496074252680945904165222007570536773897635386585239016085779991314646494638763505900867739505637035542919357364220275425198858636615502143469018259341156799210197451041860036170957696183536327366689830534635051827842860337489484800373866948179540343505536786202887125873053031560059923155260625894255320396855344449604746716313960102190578045728029148923613656473535717526617030062580772848221350935867650417877381415396152437362125596896971799073431970873553434733803424282461586306324683144393096698249628513683444364645183626663361301014650198306390486369248559046349514317524378000696756529500877769430776966829326207284177362457467155794636542858683605076606454895343116400728443748664097449764243563863974178289573144933559209517118917540540361116950635507388348659851690400445482994013585209789264173496653904749163238936880801450605304196404074625207377972974170128084346722106457744735712541320455832123680847395013303501396951594549189511857237127595775115607793867117847994142189179668477388291511574759880149035666278547485975040702335090938855409765666492374710546431529501888321684103666843962515592152892634713883684376059886060161754043737800170574758222059355937935387669529996476677363527624802448044840507448427662212248925382223882709760042943477237989297263280673976447776488938865477478737878361165228063665494865610052674333431751002629625019824350054241800147919163499323302990357224201546894001330283686627268589816881604884320583731200941577772342330617735469628659444233368091044802966159337487418447133357107354387468620999257550941774353392123010998164139933203319659566580647130123367769591775605799775820432113494707544090669964199659280168176939198219656941386103011761067693665894090012058378402433704081643857636780121239025425460445795537630237297797938654901316998029346910887705314381999933090241350790822803208787219050678614323231642495339041897607067664553319431470814232289345790127367320949725991593914273998428588994365503232954986621262336464878305329628562684882398019351752150694924909313101903002087610205617316582782396431091543997846574701349284346035402797282380217695636272289266844700455163203467960737778154836934471219769134564978140136897328164976057684768703263843409834906060292852231962990763960359105839216662539137343360128055593649724401191298831873443758560582825645852783064407620517754516328766276699058526541219120215569075529137937321136902285089177640298931551423614795014194602004060060135058688042685686853930029641011690153373300475365302086455004496540542135736288500981522084038333500510809629265286864857131871493405767360395826411529942082651309770682260383533974075680837788983144397611337787014599589328773090599802949620408282333582473138901752614641321645794062799612579791466586136655383758492127863292584713974273210315936719294328820854449773669141847961556733420476441028635513248963274580267760050923352483471929083416766387944451138022211162801491189937366159723557989030254502913838029474856707876921681981470465109053640793628213467038705790164954209467398559573687096514787681251023405317909002326019788947600515783986332118448649198059316979626296176002642114017571617356586316636642888225594968500907471680253143193482827660538893330563374512751739814437329224010433743820881302380126123311068935422911291726452893349420854055128804018407887050869432054686395370721821830176676481657992136186577082001404659896253544432857373405508889492541307710394389674114880686928440936874499626192297924127186927523727929429252971839446067699115246984459299538349580499485006970783749359777437529589239972224868544393111274803029836715694323307545672069611762680832423467114261287204127277081118854623003810792248494187819110496967839200806713266397508579297214077629567306571419852788430780310469705550255282721293045594860752709778318581266575450366598650015689471991426246964137890721930156667445607718718413850231891040035707970310996262104461072757106383084929927070693908895470456870983271038721994485618893351379202745441238087641196192179314708181751629138257798860728183733552207034876273453707298051560356148121231694856611354690282277013559985648777762218793001858475636146909484022829732150952581583355552525403854974591056504993455670299053824355310170242641734116438369700636729018919885720037457125931945892215093658453174771440077868973564996031746699219745593712449092691373220103900514028728182801035699425127888213841900589519491917248195973196323451058352751654780168156189931014673568627158428382542496394561761485999453608032625149447900205607754492208660018243529727745257438669390911129446001683835040629808928743571244553649335361733894527282197617535831978742758298123267890721761430178811537034814426506054767718746194405702669823592553057157312660617680545726010689119182184398687331590620138687410946461932073904180599702149753957697064127624071768589252323712599140227396330578259560345881271349726957990891980909319202076136771525368277786862252329909367388079093445061846690603051465270207091902062160392422481204549828766328885042985688350357475511006360593174482164265230882295134272091063793245088777547590523685463560562434897687900924811645435614060924573003296681485646531800340381193929310871088022267295486136012114238428388756165061175448334073126583187689034932367119503370464673779942010189356451654864211674829478961712529367001642072737455215804941756920711053085623839329416579309380800660465948437367676489673281658439511854438607869124118392712355437167848504135375931581547332357473732259307564222968903070274395480126448536396023910071113266426633599507442775556916417414470254536316873125630400478425837743719460718391458937275611639797111639183846847821846014076523399668919161983449959785629101059222450226841254838536717780513790008495879951640645096439131502649286860480982984393115131067002819169068229263056691115788855529946755198106780382969405144708429060757287705352598326783013599150935738477510628427995450558709183373418546069193450413004087173624655136336724105061422192850229917933323450796269460266969980278767818667642002557114352330974771722479809518145600470223814314510918684732655652937131354955832941287537451759086388058706620216832657725503740548080372144257800040966089051046194353174556523636023361962347298918201087701210820226049117913493032005621557137236229744751651140258737164260260090467164578993744052460552343472017551985076039557054041304525608636948495128837596670539533082230784132867465575805733604914179169848823574722418980886140762622570834640326353092108116711051587876572620637857601747827664860360123327362289051702405949871369678382785307603836659227961266376749941510577083406167019887609468559912377051263442058462586419615238893405654492602755241501961650601189151551215035141348831172528685965871355915394625404150933035816594208853686887381834075844777489273135997578677499808857215574526655445917741823781673758438614950768657829761776182561949696799493323307419216328715815966007446697420771286745956715237740529030592828224601642462000064850335873295030922667915699565961313389016794193703787130183528194264021832545176597754489603982600078346743969451237717982947217559934529939983311996967057168481292605911365703827739511723080161593543807964555448810604668469075749628402411929032262922776837271662611245700598940322207078359901940238298690565661094918519909438445906976253796741327694554428231376226308829906551187892935783911566692537204774351205710317662699702265220160036032702235414231689446398118025175313265089787081655237996559526133513246800090224136326883261812489436902093067143576395214412256232843059118923963783385412399196683576508144931533008695743029805462062846697809635351174043852339406843884988510101876448213096389825038819956971087092559089881016068932037928488923861946765962949739518345049951972521331763935716336264569761971460165239062553281018940192213450900445901722668170962632919186796962447972937474262133189392023644542467529579894450796554949414718650344341512317757526253238192031071432485641578427119521466046172939481157962632536874195817019601785192272936349617068565750603422040022771862248072021741861987655322710610659086982467045515172874474443258351518229494594226876253099102506702324587012132662185908093645376189100484270017270563799620413255402155037977083761207510831102993454091975340770355986078137787746884601066646112839406320216866338124200715753388128134245971200302069160622169305505541874532888643719423854566929823617500298578341705390074022416424750840334382124145580552317049540173506228618733378925754064025653429029944258451162902006567626540439983208834168627476002773614769655929011651008619471004830913666865781978427124629330619738431678231625319665083529102215876659375817417590564236950142547455869611212027901513785512719705311570489654146118047661773575305074123131482920574027246436020574904718255592044382680131836080067456284021619029933545537137092886279558131242543893226511224512757286008692807913976295990067472482714064173289500924219401054425018958710696233549431670209347883342502073562106102349913326378604730790302125433705226054443197388403861435751586297408428668890502339521350418260507915957167917140185970472635452370558958630868193272772539488150680235115360742905027174086189212167184577488195516243782007385951381767262022305477011881959080010885828814122841038144895337974023068007533728362557630461932341445558201089382493992254832935937339448451628990701813010315733496635965489207815445299575152384793220974200549872288499827893991828470172997652811008548841830777926679992975177610417853442511056792169844776099180403254961015502362707995236938233017254879973276524426214255460261384422943365162868344430468214637682503112284962537988132873434637885950499204263670187759027106740821791208481235295169654945316801991584828264648626867205065447146717266116362183861486438708412426628025363956511476097287660245654007878337739969917683953392489415469954412116481189038027325061766525111994951682267655977108054639318124344956526648517563822640212401241444784339731921255503341666569257219443750385137688298744270669971541771670801831161654259407799438673557649275074231773914782812964606756793073633975130284093724487751066781646241304937691663104205415615506195049193965517956448405757603102455899344774774663148936935736505011213568720051146032647726700603975052421986588748239048095002509703958624628096253899078042689423404878127879001746608596296817160355184004595066317382568697613528448156263659246530642075047161746571404791478616442248460843507832712506242620586193367126732325281644198102911103562094944097087353703895344402767396889568007941410212205247363998414481873078657393688026722046284594362457349601741612353369546042815560464997948229248221330780494714037493392069299973198049884811376474679430257133373618791491805127796015583426146826594079085160872207599519103624814529719350533963333811722371099716500338342385921471704807538662479051212741460717004898304372536202272714685343473422427433340089876572282765516844922890609695716850342270320031429109907763045907499232568047978293282025877338554478404729779694792425991667053027924065406400565583369450056197783459072451522302160056738836049180472894295540720845155353697340122430820565863313426866113016506833575855001428539771048418819489776677397461119503415100008949307730236463070663530408536713865563347733936394195750194585006652165664323542857763344692567752439051275102247724498543058065488671937189335692718467487356595586869541821728198833229445472075543599572841679169287497411536385699071998626657005409850366907678221858460350259187992155567845415706705124802551457701194867539155422741971972016547728441647363631954319885505905276563674207095305252205848534034736581829279673457520388985663743430842643102027927825709427988825297910069740275533411969361442564378203954609957067695024115650691561866278351208667582854727060255915854742238486724471824552937146390506044921011999829189246407438324185383968076255269362558823024576895953521066651215008853736631942736493055368023978632011903160084878708589290936625469915573147560960962752063055477187427646287489948372921578198475344618906270439850987351030745028635783925687596062238517144116252960380461550057218357561335457885857859833175898288963667396803475426363300299880880834064333701786959420611130613632655028618622997119532934527615538918394926271725511898626370942766557418075495912985709933955144390762279133956261841799119486648096604478980177049206992312230644805653946741210460370733333454315625071937671647452553739393694638720179781107126933682649682434975889770709092137859325947560182341123903236202042053384102076081315293645560973979373394649451418808520138460662751650469443996705976506499732846879836657629403384706899575951813024329419566691302518464056552281233961642007858435643208466279803435478644173822712127857958185339451009352006268975539461987617509339024995478976357094165189807418523915069142434369282063320581575376821064667920818412160427031316215206479490663567451637529819732577869462783433038886259251366715375276676981149673126568660108353877027900211854078449158660207185024032407786664850773111848137765741698448378212477370096919475190180111190183346503213849083288155992972866365947196713090094008318279995968153530170408098825916550079166054911437423003147811360289069759452158092973419674894291309109304550365268229254322674396483844172785773105821200050801589463624612626617536846787881364043413588776081245220703969049522444327263688723681150078427861698860794120810150431149549053388885773472784919475636903377203772838752989308918149136510391892171558619426839255202737866797535921964154411795846881538224938552958285281716952463307165781036176467735586138311622595598857512960839741838128503938527642494630725672702014255423563863760326869191962354932793224279618891419298913389355629024835412694497526354996377778541794841024910758608444344108035022985304787525156997249661756447014134484624464037958083616240233190143801075571709185010851882662603035627732877193230885595634877748952194144264956237431715921472077839521512076924378991078897047268941848969600204732928234475050612167478450985069000138778485850890738764730180391862975614498636683964209297612766120613782566055713299953676853529476227752548941251380624326834163188536642851926938180619790423017653903644265554748480308883847440347490746005990888021410022399873475058547594316881902072923271388529149273151937153110673009168756521861854763542987263079324903821816547899976373564299571949552525240932663452551228492950886648857823621873351410221953937324850423766941499959592733270781928005148892446469930104601431762119777729387758614347006936358383395730319683526452130649930364704092051475171269014450043387571496982176295033850544593702027613280543819806205684454005177134650506810480438109808856464113786031854412244432367881556634159092457196802558808727490675531832433657384223907436357762963387900083646484604872977333820819003333694515399017270533107104898041567891872734916012445609467621729085050503636125678998142111439062158142633576357749695039669253882690123290787057743549231039185474013049340631960980670561741178541332255239975063682823787635088010162630278400894159472182386301764172744894291773824181389990729653977270514141975553122500363679603523414199384534248474856844682313916373623086285671731843457427633862609052001734702463201156283333934619709225271728795482086518695639945330742233220913287478988809296994708687326982083516718730459423282063985494134072343918630965021145494926704611404080851845864583092373293131916619827359599859878817491041875895267861607501192845707808867313287919244357962178488745802430846185997743906553262438802500809971396236380681585340516388865286267895573739250844995538592251718868563363491706255830941641922680766034030912386076538856515134944202104152385165165339931022064927710358793874438524693483500079480853250971608997015262994884355133018171598087344180956260732138863138700029002704700255332320672980041995762570820675930916328409362211640767592647543759653049892417757266066447686251510811699950557119048877016287802975419243356353515396608427016072579111980662306084446444592618362083589345647831871727793368252293111347042048044820719801329340158034162984556036390070495880172482360088982168742745057980422804597946824611402838561899350615636531789080572096359110442797476179311472254030032195161599063162969461861200994868347071506632962277680654127490495234524252020652167465504526990486941760205354870005127579602956135714954031996028491500822172429582027171071125410861798800651154323793361606569369744430720276307393554252194187166564970285411683234285113802099413954392899168449978032605474482016725198382116023964337391803023987161829064177598917658870892054404979094368265412709408263131925854530552495065567841942179857949360834820132001034527542568473249442129116686353302449168479488781414202726291401692581933749677681819022779206033534352638109407502173322815915236875693342842372902607530794448475129729217515696524668960708386284430481803510773876276351185128956532986274881826908406299373959006040011261350323638052230651184664609405216729181836504974659717519488558974913456431660151568889014572592568572877458624642450944169088537728873785378316729446096340933305544229111332725889609933308677378606968419087711426312620094721808860933660746034459563628487585139410787713608853764900028267757682399633433665871812798077226057444090144855406118377946679112085400289045197708400404800707775211100989061214335754600205510987425784118137387792747355265761792788983660481092820802798536333056205558663615971326477894577870179189449062817717731962114027082972145147402918748996886563657796347513636257364299878775787913284065309401448643771077675375294826141366627177031073384055613820526418844104320658593643579180719426404595016844820612776720531787659254015871130716310504211168666986875793562947685938356347707011950581607414831672090134184347877359367887470358245949609822154819565422147159191855497267370528724306857610647082814671483820481837728132501946976417897481347295752734449474469230987735618640502959066556184216505750464212739759098202552527137780367839506337452042964439383869004550093016441867210744509569605755408632152260842093009795762885187810829541759397072885695753053940390894434403076027626483999413301537785168078439930261832329935411603487793832298044884376131986984208594508802570231482895211930272625667555285688326308603303569047955476449871049124021320907756563472028132975601712664854244989199809879829259827143204023965990574460913874847358630831191047048875769114902696191924420104798100660333897051760585186848153036340166440558267985387941505593154001480517394460596048081639340882124448775775473708608812561773445879171954794224078845881494496844009000786271945951995223510658546929313397445974758609645583785624724460276096070219079044860891915638543482696219676119009081459299508474534802102936452019954774129487733483748181374528129638509897354727060775865719476965875466687313640713160788770015837621444704082819821778075494025890011490869533165415935174351204537116220561365466079016593355298171065775593332856685298702356143539822018527865868020290598829196326986393996062882032942365883853832957981212781261561660874399590625917217701965577464580759517635262464808033867352752071449758659645331949084910733075212160031378129392522984031673539280464264652167265560464763091553345279654118432149632518398540594965911166598922761229635459622836242588009956238889677216054914739609828909735404628101211938985719272623610935066947193634320179392982443425299969093630838681138938320964237104174485871354865585746269877475172467291402713615469367352086026227066674591300707678224555623206375682595140954439046006550204577628325066423442898239068198160512175188185306164012607897250054957846399804822807252797758684069293458427705922498081438640075146673427176670817755782227728949475065501212977702776581933905374366689794494455696840624879577832678667992591858439916630075476063275744738918506757269522168636185473829585908170912975436225060251151971729321419065420698333597571650016547955948062294324115562115586352302217013821606184214675095789042545595566564694425299791503363234338046697499498961201516698655141116628796640305379194566985802072687586035442476223957631370302692152782881104779960343096234525316977076400584490864557163696557906252771732535468757151594835098833487032828490065266319500510191141057641819871798226457233719813789348162677773044875044604704891719985688083717309713435913974990681771661710059066058028739129459942846301732693844186324774089925978871492084196903363700219114547656302174140904484450360643063361405908611560101495051895852146892900410791234422523057601279164339486983013417531648722551083148856289430286034475973883043355239077213006949165774035048164324737859191446794589395855343905830808466753488777701894128347343400142549677478595545927604440060339060790637392382099097587635026291074016867340104805471689349329473033950964556890229281623755724478766569323133828080705150298770037110479794496096423884974371050733685743389786577604583628938812916072853280076152052263852130607057079198426985960555780608629946930246081790398718378716081437382793617440772534796826740258298562097413569107908847224873345227603746261958537541299287796107730441465278216003538397515655109588346531536268053575270195221158900518780246271504348421294499608626779340167402085458634367911310617857256921763685406479654761981406737532203267651445010806994255279841026131819762059122853111628648626584671950478578056111226961562186884334106627747658975139949309893881584903445687382856036961827221390129869478556751300525947333941255472830384497795181369027526186795709323458990108209865076513906913006414780905121103107517791440028531682038614761876914208179804054624168433950502359000265864994555268343310674196052855466735033053905859766701049083922372578208402892577834336312009517875995282060100982815430896259211888039360918706087364245403179297848497778834299318262600874247690225136331024497520536102370670009031655280596270608671200913434331536931721666318591377688601322318664936629625357289929070345826442880152836703093492306123952920912020845995450653332069975155974034359302089702909739656654950039233788195435538183587693165767406730706039159251163128115120225579799649207395706462184532866073939930233290709260592836289840517373209147628739494068208031859440625841069637246360520027358684588045938416725542852950549304430616103252915327572040562643416683741093214167960210936960924821221484995523113612438764758621901961023907884797074712919410096238210846836638861213266336850145799822013500391977768128104386541566041642714986573307166873828593740796822258765027107958541151705733755938106901852841009815488145132589049026674381216272523270540440911493894116225915910248966849864351872626829281531126546225763305511025121265627244190022262968823892082373001506056894254810811053145370559253430582402100148808934566255116191749142885083380065962189722831066707362720781794308129889805764902784858783843968750532559216250084582776128773145134609517366022741129988337730432209622653498170179380432935932825645328995166469566077286647723138234697429599624969987370670788433684975009698071016639560740458782726426635197581219497377731892025528975562496468601564970200067291447893987255415516192860208854423423921439201165951060647871673549832484743633094886648633519754696394080173700068775415624983027667568100588501277838386900719990390167014055412123613717964145060587568988996400758888971513965569778803967872770645984349733518951957528563244062796116941773232024981592290238741813907531723026654049279119703496310803275386434976094971863800806400366548390604684750564263399826818352717490528577446225836860104713685456175140348629178247144049381744014339457280433694507794447800891462070601591693335613816067491353493867297703575995256162577460732991232992482768986154472807828492889625284854358950645579990169996612119717664877353697118382056674105440082106745676624483613736332126668484752896346976242222995448987180177920048429175472483198220216968544446385553805208052894215624284328376091551468150652355128900777218058750338909667144218910761591986626305530351742295820827917883180292289259345510286813810721282410926124242129933958354772679053678406463072384509029357952958723661275192095867661556578712449500542183644465654257796593210495543731181104791704234735426759643821087687068299494248962382502479913500194260625768506054393326218953617315978008194214026704163864093946207922398470588604334596717353582498547869158351544584604883069909883191384908019041663297958564473565553644743549252207776005506377419674697303621339738429434452390029514182407977839947812746852528632660452559554271479644180082057097332823099405606875656294858254858135477522360732543071309865177049335836851549243023499291976720656807302989703900660583326362332082479818977476626626016985015199550668697285122138234621691672785998918902265940250550485792140860610899119914548068222897670727119981632114901187400424978908047748826847763777705488666353598122703255287223307253858489685156699884797272194590626603545698743425757461513795420904963641695834503433533891947741550966228507452328720644964429202686227292057429631685409763779835643022328799808172704921422900146372205875714964931745245297267039663286259586216459639828479165758908385660830186385942364855616696541826162883315997956995162714175324879302882532046218637290633581812407289098191779147396344941054123694442024404667324855340225366816022010271855567921632172205802112375510597903459902318126755011953692498310504066730599623630306871257606391849420504466419255314064623454027406775443851302580326991322056386868346685486061911293167288577298627988759017436052916797515552030662069336539765174850082322802682432420982782845008129144366362435384058217298862744475498644776309954433326793795999761876420982719636387954085501853870062609029381841066194630112004035595169699079544058936633451123324294386622835449520264984607432123788583674276592754432889325701656529555768626432068048174640440961521100772753064092673600168581224674891732967534914096709758807145589965040480474770282033116978885588021700642965366748421579476741518379331106266335098063200184434625097663183804294829032488579994747809682574805173212215390369932966618878430149659024446837877321878155090164830830624663527215257255644294611288431882064916569430712423336235818576265637566444046955456954805164425795692045367839638489802937726663976142645909059230478066097100024009333637352770978639332489040270540995977469990618750369763752871458470816501954802165676968112653802125371759840323714964965050587323199963951958339935495770431712072187422970721758030586636753626394187934396139193602916834982824989573800694317001814114419562487108930263377519548928193858712970263827198263389816594981134265756348664851350341122489165851661886527390441070743002900321212331551166673672889371014100757585183093223739669947944820917733300522919950276612296864401522335939150216669360437526434940775357499314629396534394396868113950536227121945599796766330633193701598394182679113143153133571674564017946674954989192929405615562646491730348269009318305737452082623049368386895040738927467141057744592094473469238400716646104593092087864876443131174715670473305926369091607338092521808332611094947757688929719723337681162628928665421838707552913400414747531210320953044446048743701789989618735211715030025484128516279946909466269354642602782343880089539140240525846969462732865717389664004884543122820777542137365585276986006011075526111992700198128344330157924275255360278260043095030782242123070817873361146061111128710464331951692984712017135133306452515439373383794789371698857272754754255092693437840996112233803124562940361767558166116816291483163296808800979325859803808482181526125807764826207227602749543173673912684421175443820552306561523303220853695816008229792320327165226958120734337691518453877776830404227603849700372567565002105622759908548425622036427288436654933005352588758433755847952962192622137153466607460450403139772446814787194403900615490931510830604785903681310444743327730903771487332838073717558095713465841817905082116381671438151910117805339906244560204703204748796516795266314085136779740993394577519120511349148867731769141750957439053585994026047554668751300260083766968529966022555521249249113521415195509728291931475580443680827090770666964787666942226940192301271994359084181558792812947215704979276220180664988334583431991715437094326319643879033454197612823976449554000357719863663578666306571521763036682295425501157460100886639431315577884813769852525575482179952590899640500688545483605965129192008775964865194551614413320384206441774966189013629279779294338128054462739615119073204788101892844558230656201182798571314855972965873724681900385851716382478843209416565571606367896479054245012095641052359475970213249187355468154722513748545381864933103790673029933895842604022886684076525966463959399412390716341705118187653746168390033970803998665063811589863977658862942719422247401149999567580287803542924370206309927262850385891802357064909512460607724277796666610216360863527807400249937745275197467036388808955172325633949741017334160777130867371005511504082676035423098686122026241565294373066205709459999058459063310957365330622267245445066338956248674342853439495258214285578938930846374128988111569405503331603201847842752983888611881700393391939887421108825195235336242681567174736231610104015433308045394257217991460439142761662972106250669258226945557657527442127040501375221394865113957036181164601137795570964708658651868577708864919821347141037748179970301005687157051582069458587415465961177847036962437132408643468680914945464259907624013829203355440061000832902953348670312429553650329956416246812275157853496893273051113216379244509900721410634815588141849512938973182138883615577423673538988785374602494577795834962199444664691357772050788416383463261217121728279293048796643693371301893367473799073181334527532686371864753818142578883254557641802585682112686782256685006947192721562919177681812711480308085162281140131108981248555013321860194406552356508413420640695328953607240721348661612886830236027192195986829489232778921662610787325298150758616585439914577746207516498847358307780689276825824098724219364929979517324261797498330148513779440241900502570497157749312850898497729660440803767901686608039063005856034907588834011173140229984322055537343626683807881876800866031165225599313859462243486443322845372774405372749441104213614305123066320319195962011440011020732017105243096496815104261960960381307299048068843303658017079084969776192813395302900527594715858350231813489523641745336178022862444070776258891444939917778531100574494717244377369250740459927381269915402874160496672639023986224300206329095515436218786806438879420226939499203429904277091149082413934889743173458765828431981855012844908703825717822041805356194249198175995190244332032587569399119998047321002983728762680603547449396963558758031092217645802662485920988797701083847398406796780487888821492972703400664152665749863758857169605949409315225093162252322344150580255194407240703625589217440471072163968099781182745502121799316227293142465248079591284384095047684086921343278182848958150341479002071450568963735483735468758099641354582502293757571375643027924193639419848666200524572288051844222779958122659105257087186210891168772305415759283882582143792400653326732844829772030024110946003260960996918700179093027689763869859029408481365627020144981441698526393232829631144559828721121914296166509176375179286542041065059912000078808295709731846109138616290346314004523563149087118290969214582340431805580677841082891310969853469282085569049441425681576121637597941405099405872825279171907953654098883963264673838975489163682401859326541098481354978460378558666579309831833745478382266423911940046047284870127446286573444848881123258288041892626797419341843255397893150393388495607429923737543988172548603412311489914419515120410509615577173752557812483900466045958942469714744303357353079631250206619792195310135242295642093648059576639296043982057262233408146512240877672653433837637534600197410432292398837502269669381207235407086571473470990146812442722026459907439596194350468126379109981849685105139328909228331645212424923815901605560187259010489953931790201723743056167447591029337020565097523410252501222583124155580178261974568211113663423312080337685358750569517742729045573691040333357210643449673008057061165823240628273840701500976717179479828719883908680974695603911219191733497077760860276652240139079636345338566833566721938759035691722721808284556967939367092070132541877146443482565688020911797710768986883361625515593300632133034327754093923748078097764121780926996034514009114003399887076509522691486906381402607921024981326698052468878876702688705695331550566528473296922203796039123340023618616325027533715864515689013818296648600940397671072261322263742722056623648822703993381523563983561964050565316564745061474508186443351101532134823091503255072461401153468560231760537899248216457863366417383257725258349446738177207226045951979419236562358384670117040216956615199245251968196133944182307360793208784148747665759533356129433996273917326046343302744129185118877096966369421074582334158156214979444246077063387378709251014121348671728215575237447447718732376286928078081254648983567848186305174350882702391777372277171995550618590271949401262781918879696936741620863984470614620521629052033944001569921781762748432908849894273683557693281942945021379863590990860282824168611361657772484386522661981970006120084211017848459805179269470167735959160247114445434733913529499769686315934193486539212694912867835382575535879403907454192071197030192426123067935968554812176516479389641891562694790596234220907856470656286371891471453831617629317864119706838661901352088496418041507137386598102663651888765790222804478641561248694358141423436092920067889927586713069994655997139411286274340989969580189040232715885141975610414638136660657138225412904826715201775462738477400507809687990537654368671345185577866237178570778972980997156106351379898317515082232949479433123494820438509442446822763124646629603470301523137593499587411772048327541908341046911622520813737848727907669966383507589491140976795958564126253317183603445765892853232070816201021204714737527061715020379928156804664308774523450300847779487655051454517938069373845939092245049676847473934015404447441631267653614750874298920291648985484362272579068022064020605912418267334810169422078450149923969593193559304812499197633484846941596769937331294315025127082477163070959130546100035464297449900847645135870168659884040656557012482358465504414022722951510876926907722509187927549496918620266581915217510949506576332050939064333458891175602412251071546533496750164122496875099025246517810855656899260708961795789012839236563002237094187184792399076923138015250817435727736841707243189309556390410951409530884008177936443658867991117332653029427521607826945640706895602231479958725365476509213832961242767122854881843467252375969048572389630166720342442848385825263264307232701938208949038837710615728319480813495582983908788301197522370780425473616269781099883484119981574756874703263118545774088120852366937780582320166062500155145332552362212060046002982360530161722747712539304385222153805262929020072725076437354045786729043972348281153049448411433543691652114823220529996693385331374396534663658803585449608282337859512344489656117844811740458180073805533020702491661275381883763681220709488528582555173811713285638607444158726996562865522259698544135611016629780926996342196819254681897628672468941922341978716009648400210190858718232158748722232844771064328248448009648839685704127709534174538044658037364827864581035572094599221510971093152351927034971582197318358981209225717872541513871049589342613105990736010281197974798916680719354772712014831657649400866035709731612455453772080779202046938790088274903669684671547643852000206914313827451221624035480563346812570028035542952564912782514657514924337060155695883040919144977019373507933039720690853883788619509948412726029321404057235311315997225868943561895024530502014775096995331780254206831612636818246397335691515461937821165332305214061934160340995548184833112155885081779120467028543170249766999535914527087891852344958342590459219318967267040027101034601833997224813400475757207430987334393725271550371589506337282516903661008190336391471663983157397570427870318245109645983291730352961131299982048503060936675023917862897187642023248640675942113187284795322450348038599270132108968873259932742754620092858149210071250226246875227486939162083945801837189953729438371826615059212414463413051531712841436933789438950543123941652731106723718779520282570984221005210697912328321031380750671938020887802348502142886272478676106674690561246448142291426667085903706383581355533226123443108317094046276714513384817071664330514284360648746687142906630706183686259027466378745969658302045707681654815946096185945318303388725985550496992687294824127927868676059261768784539668321118936529431884942231961744589137107526957775894204787019020434037479332796782330065082493654386083825600890222606286288930984578503516026250911460230070298129632495578870806858626814143141544020787246617571635664520095671090918081557799418798318188196210509437123129113512152505136882008430517814302373704138279370569416600542296642634692923834667623224262338465179851657168757921001073481985512816493100129116926739668443566479985276209320017787930222590196272842473979598144248314913888188495779096724799281858224538010100444886029027611372869241477139657646788449719438781612655154037297458554637883814570434060190908561810692563573404158508354155408616562994822044052974509750150004673049992856607636577839402000139672257890227533475927215968603886004075675075612024731320542087725885011773011159304012666402276784149826162360666549520588706656115246073930164368131371535005249746095466580398057896354726447590670531705127259401202006898234065216345857879127377744480511234935043327320815542690409424326666929016693083485585943815235620412229314865491181028274640986173199386805781987014604350612092991771941832699569170652948307259953121989551962974973941144107251249398773542347140090942979270722586829648155563818881559134485503967122052777903965164564977895551876233996181420782967545436272603052379352720219603479508565185399452696929282290281447836944184942070108095375067275998089460880270974645854179405946442596229871915970522822636875112561778909662944493535525665264085797982108857008024656710320494227598485052545977166284996800097796470127513319693340337937323927107200786052205300557495706966113606497545855610158955682515907487395249653456360151431653023796715817859033729332744639917160809303483504386693416232609179677599426157639703808584220121713568778380411514856775631198997405816434381130948661915010383451037011766024770350327898178220158818854627284786017253545815745875729867991293340891213417206183294948839067853121755832229868054140880343406122415534882631951736301006814903861986870926256852538327068301251068225784501812022938711184420880263136647999045218981025631566879839975903426667865650479961824033104886169593463101435956745957403492694955461675653285737207942070299824081714514631784711900595059639915331352402401305146622887882537221576840984398267805367480786273444649432628816845299133665007368029232739580360503533949249564988835862247292000984876004314365055165643818089621625678560742403071278985472346720421377627518939445487642787321887960340202887570540724220425332027783145597097637594887849609676150573878178123230096686701117915220788874979205101080708296240634839255928938193334667079676796324263869215301488766898328515813773572050579727631620015954171674397551919689187415208547238488804177910290738610565288020274686019027129349782268053767044216269987319277133955336457983542197668359653624178527304124856381707826827213527817145851062264828745456016338274254249625057322779853783348209476851537051652705617418531970040055153778536908111047349680857603081023343237024846954064030211283032758500346016408301130482933186159656005731879842176352384668647883546160644926837456051627794880086151688278638823920927238669528984806794963356307985775956938485731198179796700032930099980816720194642391675749097351735524602410574959877032571924288397247855580894116829859950773989261285632504549761396350224893738525025747591514490366060270923204026638876239676260750621104797437626280854327707932469143482010704964318837611154578803228514283295461688798911168916712868642766087545497045196639564269597704424531380862026580334669354510993798342747764023924711931099136961402582435911376401640274509846051982734458023030447621906523309489912793511686103582349895940349500956342737182286629047806730483414134659495248942111255857169610326681688932748890776333891363051796349388724830571463970564284140201870820179282002023984455974456405969923775379609359290001106211857574522171847419133293009324271250221057363734338043325585988234138266241775675339779430985892123254409212896813905164975963569867161224784220438351654306240604512602997375518832176794736751862087235810154865790569044383862651024912704895150284415100283139445790429466948961450460828862884069825829080224745475263166028135791372796073774825945579406040709808203354895409911317245792700070439540176661282921226489171943336817980477352001661506027531769265875424734370575580445774268461827602606427318144665289585568211874038502655608612066648475086890092163138904724444113706943415622951775724524998443841115479453922738815699129258536534167515307562487245708431081767742930607334877853462990626180542129492266826210613629497471108033342020564108982523018907220734140486117836104498678045127512810580121677365711731928982479278755037710313890095921876654454328892473176480912263409878429082279290235518623408098671128151035894836392025322294466833834329820875867980477326885399302750564072255263197679048983598272014612277741430805856287557307552760984143718032667859207359592044038237321030397751834969365722087968332373005123337974670249168559357650922886360040920084026499676627081501738360489961453808593179408456612437266101230096738805794397410081114968885455033196899713963578886752944010414718694051019676976599236558319211682145000480342654757822384374072818301871629955553647626627885410291266772940546525308968332540936062751446136566605017690701036551142149848349520597074295531924327210902365185684836735519739651470039121592948007466208961265818919219961155450239656772936670593298974667577757403096749158171232829668661250561456277863166971947342894012474768903674251240756507193387351700949149879195892819395641334522075095746300566972831279022179186721070144069008365461082713183282633785782539719064478367592214625349392605303085958136847062052778961950663678943153977519837607960730938914241850546636269071800974366340370447997147444946890563552122093090098568593181389764104109175263754937560409600340178609041968603968024521048451122115613115180694395792474645864798253913475769355423227330734349406922349696812086447870106970745299839906334130138424669677654725927698779711623215525481302061469389337742709568668497019528399149699451444726391734131565251322578777839831737255660242876604337473915303696154181816635162776444277934020374157773404041873919455790820197705740696183999073843943149777562128938539587959827792324027428805000923155222326568620244122955434885586587983593937279972372641218979533935670609369699041588567636912650459393748232873576976964363701016118756844963892602324306596701046048203100074015574225496948793293260014301207381836233136095519141954140700466331718306866780542451513360085266081972320640479788494735734457974694400189643286829141341259314598585215181506219085179180008250389990968771295005629891233684654705357808564751610282109025244211901205668164746460570852618139718176619683648148925351060446722481527167343013324662922325141566108620639157244151153450447356011817939154206941273462988880206713967378903636556087517248450792383534626316709031697096365440334853236342661417628597475650955823592566455808960018059395865126114305034741759786911077861897359406685963073106766172145308223041608714642557118988728710677093151217277862407400961316303096069786683094501258498340850773661773534860444643168868664314732062750680176901932783395387450903518515181339925268439336266900387657951035132396785849168840244884477534135385517744964937927686534129130388489057765949705117995272402806975141246464329720322261372950224859340015049678229843912761308414953632777337575975505156150404631300467088258604149151905989165369069518325985538634868610415593937170214880279618204231014536084902728071552022924820053961270138959496331352349648039341291653234658874258404067607165993104908243382626846456838649754018399165459030871678201610116995277261750104318442988008754466006595741889256809971942207715390849970646017346658831711909624350709442587267560234117093861795094255114230356483852888245973802933950966760907470372626417935223601728908954537879172191350745768756516481505563467496594319348072900238213767647219444005744750691330102622301938342931024936425556683384787180645346847281691856236757522931592325332198243305744784993080891159559330252318042492128466797464642673903927623178353351046687137712724256398136676375982140957461670943840959420514621859350583215350113198270535453369608763546845151615435366909599317608203306662121979098173987446214584468206937263327193173664033342411542788109809590777925037150557721127442575853468496735281408405303336481138268354696013096871817010642086293968620877734414289355673375699288245613152375574913428559880682234529475599444331982737017544894762532127656592746215160203582148881492017120958363660816696388299956640757510744020099443665124992380141287113584104107836481925121812624948669059360295102571836211975885083264973450034416123182331089810899360467861468692593121686242026202728985881854778280165829021215118108277711100041307686541626963473727233626844994696274902325417185716499929319561116778990090323396632231196019991194077301539519609189799018476186558220884065954231091264346825512793266798852840527259697099061281323824432682588025954366942765696597125633310342527373350700586018698755634631849202326445309415159920678224714027316705396508460889056911680658461611088840172372099254273130286861637104162268798217221446179066164471661131705369622259036079836003503073783519725732179815743557161435167620522534330219811748554946938912217966076496092281331768193765124750982154641856951056980456086638931306089406371942132339739967868650995559074418235426479955484709609159020945485627103224767482690810773475602868356427396476237641661359483068026765026140854672602204619243094640774378702816524951169768693750949670112476288622010086655061217155924832637835646470573969824908420060542123802641205073831938980694976482734421632267386045226980188705708958167627138908443913726277360356219370649059485321183760526091719837177899797048399836049726702547282546165240622860701757357702722229592919826731410695367521577540730197830055753040967152139674058678646263608221857394689321604148813234329590849245913865613134795161700752478262612227497325360848134560795887225539666579556529080160314795827253382138546391208310228424616027365797023576618395887486551968116920464162881121915924522236581536984372518238213026428620485089112784002885315701997312451444574473994840717727243766655655732864515990262980396368236405992664773288083708204485319598891420784691023789231503560999198567535388177732038338637826312484146917130274336734788933441254500983575357048343739484002116977851081484595532625126537998311571084825517192940037438007537107901323867582520567824706894506528904449038035156355916551129598452190648284522462434082906192318188918385865990944896789452459556199540449887113639394685737294511064722673885374581970753770479195730362362943855603970280799810473427968271049981497570959388126455173462816990641388377445056433522714440819202098448333713137652866334051696270481286391276939581502789911044982406759115817899347990801942412055867088592141799452749881735274977307985101193507362177157524378144531604175095655606538936625721342941373342764188637258216398728249671417658103921892759397801921642749053486717554762564441188457093235248966926257201710994498407774021112397498172753395810702630922781570256417136416558300888378018111401516250322930382931112719184060789846078212592959238755339822005864016597543315640078740843842620316166089476824912920731641667196842372314821862943567319251986277994592353832765735250476309472842173568624148959430739023231940898170288036672430277694176395693481899435004500412701799680253584040677714515520206281990409350109047437929895834240602372996264183225459459335985399187246426919610911399130547451429481524729394541764572768547651154775491283111728002362252492611268343396440640237063693542748372063993860868212024045448286377519835018156180729535722568224843669983189803874025257531420364100373221761430131232386971165095054749128176014959207639514293832567570417088105319046448667716491598816474769088636203841178545401434970939312079999479290789045462647521709599293826088950218134685273562004721460866462251847723705232263756520226804503709789332507004427251215702530717561379843434046152926314522683288563037492015206980850705075804123884587719146545652649940760135834325127578384834401876396402868302122796814442147214891542802940451919479602238313543344741754710070556072518740332414588659695692527384270224871346697068925467336680564799227600728795622365959063339958987791510224791145538024307462538745925469474123430257159105369230907111214405252103753558966798044240166440734810597571241006370706196768482111698706482172649463678918290640809151891331980105511111604760923628385109171851323722818464895489740137375554171267060223833935621128186230465046445389257915617616808094706541920137831427062818570250067324142496205681138479861804020466636477023675798513485813653706705356900578392220737303828715023952537736460108508854926389634514988560565781184412024839403106539599842552100770915829844703701011496093365169509412885223396589176105602708468349559160517254329550149823308924525837659310593670710353767195452513222177797205449316955140752792606487984442029597248926965124675541716567429138486301300702346124909352576135172001683954334946209947992759682876827204662145897934026798221865169488510509309675174274612447611268817618576378372578645099769067473289711431959396378310568306349438386222070667491247939445403574319720198890298050467229700754322667459112117219829175815312050147864675700395155743823647437284773816271224704631156943007582445122205594675634415711207269988894996299140784227990541323466180971706317385210341899916819499811128368610256572607267132842994364854883822124585178322678617504095614375900600003727991146585323818757944036597230415002592530303503854920057706853884583219914660595312219463566527219734323361655410550732120512698837287951632968460516266882729294415087441011876542927865565116219736616780986275141606651538555404813073896620515538796279725143358094100251249482068083806967591767388414617959825539262763031931043929366902143274002514732544684688786871886340423105670141639691699887607750351868969750945316718212687580205630298887231710613964447431532651779014762568129090048887427246790341891446374970655926962912123780128767280765827386827579368149291457125098932369142023498361457602146793666078625381413920174413533880582615822223211605598128213468376758281281125528292689650885622877268094065410103404106948491863654669668349770754691456119762148364715105108686168970407300745135271721136043995783703535043657712134537560335998404253418361963789454829635820675649856949171023887903525551940496450496807882187798499745606416521121446123842683062249135576964493468703219087915937472449451225814887164472168160436212878795166710005102737098388081330692344555529311872453789315214697479024298921009435855032317411303430881629769824395042238156180464667746827837604745180891018414960663842125181391483708566025538087924188030090764694368277915568775067179691606625591124044855386624277640950473784534537361729784442221915708594055180578983997954962813297007612358993470471791811965108756773922735200923919588677481615644192165217530359136374415768261441942472800247634683523467781543131804578714635883920931495494760608815409478133869116596263976490995260964954347583652431398491530618900550884328496533158181298061137008804541514358184168051780863562562838865323613110246632024157191428011073756027831063735427238953272978731032553511817487643248401288798410033697151690923970388877405712528000233166824278749562988440115874447923001939677082427570623731297507719112366961647350208643703590903883645457627475545465537379818051656724835502309818678067783960272688283385820737072133430475051217662839904701362097008712643049354466599658082586367607211977184653082017365834263252037061261651921807836804580787536814033321776131705785945615241807023478757378016170192295878345696052653835115229973812185996088006519561230117454413152892743388411975460164431012216152715597957820172238942367416577890998905892176711034461916241520377640677226874375777226323555120920840072203594088688030719501652712367390221536795358910510617220581329113314773519636107569362556818303389814793933482050969755187610232980969851440071005160823023477376618855579090399592370512048549052762244861203645882408828531148772108232547496497177741366559912434977364544016057749825326686794975976484567342771143962453989241963403424996892184317764989060725926688008306264596125740444085670458869453072682847798395544433312384317551914683297808932477516266197899488998993232087412065313908029233025907354370059754778244568116975279151821730921951377559899492632303731051422713670432511998091988416113807890285671098216853978773168673461186708815517932121953290896067359950055837608100395130978566001301317053191292076210426257627713091226568010860847103890783976751217841467426406987061762686836628604470847814703474552229819841023805638990340291335897077846753833541131971887955525362149655832503522053499771980348981867970661379881904177233482669741181256242537990778145721255957517416236599193291969183981539270177476242622668330620046833225420100107087537296564688597858255406583525638969538668501130609404505093229046799257841850195954949857038581323015866822997741410794319940978664348207600423915523044198697460496736241055922214342816061734852458798861033886950044672217976577647009831569424763444638002257971446014421388176754871221660502290445436118628164988016199960590658679811430100034772687153919593741641024114410893597191212285858502939203777275319011784277453679834588849659928037901556410322054230046447591854178925492243527351226812626247892237978676555059197835166979799221889607227722217168833284692976316702778460183144682860584984699091109574102871487779090550508086951220190088378760385172328021726758132887538733671907311614939377998376856498309813999551355010966913187446732763185634979098104841724298522604027363953838031827729642761844389091851830731772982056142831284424077959293805326049381431907910901059860003754928552423501576673109864529224270375969353530203451550648425277094839513815664019682837322717458514895349326392855889043859168585152722886583733946740988768715074272263505794766479468811499573530158428241401045181900237466933452463529851403278743095868934629248207074009472699156760907920041902968335573623208164363012183573834436218042221382177560157600956303444597093235352754517485150409314055057957760615808393291292371070648972410622090280012693615820139174877612788439998358577355220180364097386915071531137095076536657357356717679252639356958368245659937050603953487551962958254739424441727045767511574966029453186423519873808915975301458335402119610027196179335612558436202580529274276149207181238163707018771790240847662302976964411274056153305293797455237509049272203707621519471526903650151358924422649939620323442948943376265906172841931131183230423521914670377333291460670488619959754068268325569885473722509310082449198352196502031315720181829666999182022965533124724015789709163059646302391430325293650467144573590407207419263779284942420842292729378458940902620475956502536700283001912960070301046283746646228521743241261633693209627770402078201000633762621965254895989827335764979512309485263957165381252239459168758528654805976657778453389854228910111275221774605457030213725317701322443228346158902908613923472468711893497810027120977001974785854562512256603339815415138199836620253005962879086028097845201775975279017189944597411098751949005091426590760728875046875502133379133650840470252367707702245051181171922804922554158761916716837993586905174393684341003295474661407527662570932119007801648459775784487193283888685652869265007633462299069081899932120931105973528822512893292859288356160708225551547940032016273841779765670383717754104848078136770094117232447871995828197261133405622924016873577603233330937510178131301041927318014186773608833496417935692451140103123931754158680575985122695653148427747371327849384042514260364594618524312524404896928540321349602145584771801313200992242518781520357939790976154362132111412234364089987330779963538984095981966600228207735908925069504775873941890802356113242943684490831487879753311197797729637907104754216487192941119715385197756259790465022410284455702568764490421932806340735635677086006634092929435904958870377736777751769052683605576981279159519414174571370564062121053266973224105055356530180156145083250320556646542456437891157061658795283252254935238148980337138473849079712439972348203321852828966342460552089382250908066802092449230609466422397413291205867000651947934081145720718793938714517497625405275165780537977084668874610706840729708785000432917100157937715895815863746192340904017023510681326626768044055329256593374126851599917271124399461044110454283569069363499486341054145442324987977120799955439076483080726770617939556472891243374519764335508007510572209379474308744405325865348481401027156046374650797246501133761592169387101930326793737109297018910950499018689205798947090980223898677325555751586156937137553570253978025258005205366576162450601574282180666899254460601989900570160732388685227989968762777702241786556373117807845791748305497818565335330606118853423826150413198893203056888961065606009912939921196647963914071716807575132822456418753845313851204755919991173043062712882864564886267293244021495539705217633582789014563528909883857314474572833127289499835812823536686371735208049299163364477920758074502961879800855321142804541306055244309336582302255951927308507711318333424661022499765674546424909948710169045515750389535320067744062165448750733782501263416122581231133322648725152260950993512477138849950850072282747942830208154558721572693924388500305788665670005051626125374296440586251690503853896948937068118247968018307112642328992388889327710958615676695012016097469638038102811205988977401222658783435436575494255674052360580601187381223672280036492733026172774482821838069029833802681827414076862487776444412441635031987936844279611882825397045022625070048921646353683025368045565673078967170379935808937908332162754447262591708700841526515922518230318828918671423468963039591110109368601133267621898986929481876538621643490768484014724442821710963419113158917766774062885167773015258971878576942833917873584836670496337663623070620433847557975127746531147216573423378771814896771428193128229713807470802883862651220027788689824816252989375835276008010860074967527309958726115267148302777939952884135229482452667375803680559489921416253477014783771780918446747213512583460151193521264883886733936508090944438478609138933829476731056924279793205706923282609614097468592111204576621484215648816103972175869415572847330126979274000457417206940856466965553399941138478851537113894166709512808336553027194837213783951002949690656220326893482810214857079737843945638185125979503857455189674957524703168650225181019615321273555047651518584392539431952896648266487798689391132476878791604392449181079129798997097020143290771489846272551170324670884051589086784042508531877047679751180235596009833444990685471567243583822897369098911866902532562037888104005884752433591654242377311085339766794939852262061322253594095764401408180293818449021936231790553556390969681879284575141749688110745033946534762154267478899846652383422052642605744344309046210889236335793710783643672212841890618992649444970928197649530602463202172295415180003429170566203552267431054911861542054167440404660222881658817959121101716451878074180526165034756546341249235406421940146910024545834661178266407794705965654517837727217641802204537600648282348608287890700090616114269613330054362192622978520945942392124589007191910975965907709605638296745542345916187270176509305709294973085144407142148538934270589058402054892258000648348638281536030748132216297775230838081366809324850294590482058579827587992262666266639411110775341984777869675057940784692202236517530656968066831237752837675582695644755243584669915451855714401234099074227186690440574090829823251297169400412733850548990025586715567697700394834298596606955206395590232569224451765591969909833884816189825466162473579201265993718725815727189833191617396186479296845561197813026026522951094870157848572160056545862036290700685498802742787952127742020913014251550753184213153913576364648396948104309711804870784866769210933327663475231844062191215091541012138855972922921963440567442162374913294519544784028591600923481597181306215487979253055566598936281636908525773984230080588532883174581853252286573842618048938031662702955931355801265661410673582912126134656971492475925228905466316510112313003912563698894105291990612570870442729362058273027006512709436916477311892011489573626060513528724762585242062464541123005498330242652014060748428900468768717495402358724432321372869269947359139391565616739922584877338478410643499271222796869061499695694967277918007446396129573202396622157399578054583191078037733693870439266360680135059260705112843969949894733744681430513571813309799783468716775807336226643884197680220545491043003483631840679091240395530469127000231513091332288294322829507282157393022509782192613809755115923409583428818127784873025333758046007712460200882879662319642577466259908091022863066216583370155991936845848941767582122789230294581883364765379948005238067954512041683732942929626114164218322205386080176504642231229438477813759313139536204033677324610677296050207407188427383957343475131892901786394078230851749431873892051810647374329851526828586823231287261312174662606339286764000582708536959758675357251345461680926358051242309717764248402757407208624505858288129823147233567622415220227376306511717290334999961126383284929578804326601652854987855769657930774789654388297294091202495365886920157479922505642329885369668028774661644220995434382351781750205359149543444493058570018946986511610657826828429306418152963560736337162754416084057143617493414034925771040357961438740048611938784967755912151710430486591554624244190806263726585548628415884116506043470901333525025822407405534268067905928442093861683259865104473628317272505025082457829207129527211176391029152168893642391830317192171818401013094841248670497224509487770310147710188154098240533349834070513852338642076989881214142362703196319905092873548599649402281917777242738705598247885474334927315249919802395300465951265811822579873298801254474159762587828522893826084507463996280333696012958155777194564886258448030571856172710687340307598063717292744097369102074696161185868109020764762344501712644757709699556033737460337169284359209091974231210326451176822240170776248278310153955573498674032542245276235166936161731639786908687496473370919430145617665650695063534270370863677322655059953506853469862617779873670481075509903140886409919739304492479196965267971774937793971190863151146843946746113247696632545520614972304912740890224676618853689803335518657658378305342152924727475358683564421109898469196028565400566241953512554447206419782165580599465077788076023233118267811612910351551088064312745157877757243333973845631834081942382151203439283234547292219786751059497336791879205003540616213182985488891444241496745202635513364309515121032100104012075861061396741888514425092404753924776720615593118224676260491133764358713168135089513729235195483404488344521881687688102654439863215611653019390289730986143048220109297289938848952240621393932887791114985517733298648565539109114513445687145671706978581892322748847463628551993124099693725187166262131626828813951753455054983709014596843075574432485094104491033472205086388559262627359973683287573900566409877908758157552209476552220239461803425458621481612577722635404504912960979764849757165515059607132244150156595701535039715241364835685499310645920568447391174284141322324003405827439865376046073521652673683781433575949207784274208537959932317619515380084774968278632757187664918765899809521427256676655995614603539582176481082268635346868596077964404151247535012064199127773894672391191763943870465606516936368167630013525471404624396004691849604504114381109742997882711417017740116540146885106299266760451597792518733189478522519193658331617108371176887132728895520418069640864739693343466262592094063188805623285308945342338803473207389574988481387890650714308643674635745805414713693711752607982577501170845251234122431800895857196742066344532857152091317774869564169986375597224103673519492190248711393229116446369937949989371291619719383570692470051847412010140742885274564411322269103853182526353541029647653903745909227342034535451771162295497225464676014537120176181821097506276618511883874675694074579844247997485394645869869436431229941137572264190758725777926575459075837818426148916241920048273912320817357822159547163878321807957761459781827454330127326467571871680278245241223386008905597625055026655746497780575700006029175230018938559584540866412962555645694957629037082422205722525868757121086203257991488052504206591275561005144323259408963543192661780007685467605230270928774599950398603942629576427996325178720023583033915277544261354974560884904047250856293584537010367609442423069932845003288252151878892317957065999604577950978726333713526811865925876929611302169308785125903113499101454592205163040600781927239968890787152049206763515084251216145553908689264721065388655535819751620694200208650144418071575689144903848051846529717169403978728355727678492599280140813071106920615485175260648157052955102805646606488564240941483418740296730313799120280899355630859050962066274056089418608154261602135024683008516906596631510865988392069635304296366686680306351290130050321562037689431522479534337132071236133104134662849492280192445225967307371031289691731928376451350486249764381640724039679835544944305328910718197642271713231681275239526816286283854369238205434564026512361624099979719919422711192336289788078479343013716844379434825270328443089149993441402280527388021647989940820398538627105549233766161835499009547464529419340843343783040807997260193404994812530340745667572157261548512767056254673984048200636958932352108689835494016515358743197087829904542964668775532609213304741148152313072387329595009707109235417565149482239742858686327271463313950302900434882049510989488453440511846369724360136104731828763701340909509473974098354961945548986785672673612944376077876454521888123676813525318802739608544926261130287235834686094882389956390600642082286221880081875248387933275133579355385212831130859271722462912298035759191237901992750403075244531796080121373508940160390696254942349110963072937011023808735143829429491490396144319468182302477682235441628192839586047680258920387040326210745733891268740554216790121946084492965289135191070064565638013570009936704728152284590588044171310277520548724014870717358460986116448270914833453401076790847437854038614687076453514312306994112240186716595653525372403116377172001292747220286832589547814616056371711972134368830907275732320176422921092679276985107063695185854498771930694564829952250055416621417422831881669758537971423303170043668202449611411867815895143669225331176731389243608593382787996595813089345799620851979427031079021110151363110252572740374669894121315057727135835247214120459648722660478919002303125570463949390790144750817623057917159177345327585453620555919333245257283182112533510631036123401261240647789651466597496811807938216699306536652265172374249671714540561398252448411851100259871263171020308216553630928260214922910068632885188180915061533068922210199004787217331283404583146047051711028642221886426713107590672088862467733088385269398967609523335773043890708604405377895774190999271758990055232492314504530623453302478004924575091776007328884243613327924749646677969751043918798125496630694278799139636882609261274872350000937333636958212453849284913284855633791677349899903631216398123202295979538422403787308576863543090194577303392617565601588216899828656022484836981992171957558954347891646946626523524388860703843533717000505281907707436340031271188322588488546804766938202783770723039153808067499109339752593010892905510396706969986828837392006928353452933096081826521409291013706700833073851956933486993816939822264835366313366509459460314060669876522961086212805626655197492623775467536055303426731866991565368703540684288172073499176164910313645576710845295614952476837103565003266311048061196101497105813670576561302284055029485163776739578212001125128259248347885767665446129123014404624565708314992057340022924659909348071409766098006246797599702242671727794158255225508563971362766239874308892244307823426127040382331853146276490015419076626916179948627642980689153352067352761013533296648969079375214778662585788533270326144350097096927498434587018417895109350379084800429574200179312092069705012873563770459027797929423588406628377662880547640900135653628817707244218594509709376793163280408526592733364953273023198854164770526647869780881866027954456455488428365155380193922034969022492508498503797689616678594299113936846897042666276389627018193786185079312551213173004932514088168902170245784726299815432348097151928118589073636010756144621733915758804713117075841975828687631942850791570553514294106662663702332386380860300278898187395174857565786888231120405427709832927874480208677411396788651670611488656167796261813495306514873761779304366377291774931980719426957986233219722898338292267513639006780422682615389508056315143280912323240986054758073826833157337564605895263343093086536639868520810883525259604377043722136821613046658777911783126263190744649346477758556605435960207123246891187142591359035615987281138679377465452209676437896544457956359914030002333872599380220008640319089304591557201435723200453629531720656559601256755927499052659246817163890971763696765781658483686285741182349976005512165785258304664722222510953692736573774656062371005695100397273459010120655569621087413250711277912805298383459447418161953720473821174700035492650796474496613859849794495696801738598351749556189648724663664883638190898817462895676337243883321764802057095077785731810604214616282787912666537384770492065879765707385073877765795825544057105607142976184576687298015874498324129646528598516457187999600906125849153543195624557949678099130829953322645805510990203169413508231917589069889517462823942968384350993775321414901697286496275335799530268629148345090570349970720536702470731632588415173117737166473210252248120241834378208519856725517099764824961885645364665979613503590983037549513458963335786702796607544035644167140257740190941462088370196002735491007537122957580239439802997669299379480449114162796026008604543169936189091089938800580352551558590320576301486531341273719262308703664213387673168369846108277574371511667772379168890832864121317822794008239770593743185444665582142435128647714059258812984900834991045835501961874816666496223132475773165896918298868062427497214346555006668489390193293869434353968706567048873033332687391568980367036887241265950449986464517215983633504478309729485036446114900026842112107410882320200961072271100558572024891835783142463703151877738986246300345064998712078334860538775486864617925974969290636384725545611143423381577592609415891353449530591064958969819785181547215227144631054439725619058601356774011917780108693844122684982805333568276542980628301136926784216087215687624834998660954767891692034128937619861642125005212902233237497049772009086978448808682085132889388660617322097840995153425401811398804984723114944588876074258467121619987410711190182732536772315254711075015088325192131823725211535050806337267149312910469068958445633440492814305226086816487048209668338729111526541671576405222051641227866251836512924826126312863814209596830504264157905788789322611844857437730312370694286406027467790430829641704712329857393536693521487969977199369575217280828881569554977126356420848067406908040935816325625347919117920516249938881627846016217792149199889449092155483192440862771297205165695585835257025855601733301842341852532190140672967584834279523882753026174239910697079020299127590613353749736808736518741402074089370885205167688915377980399723432716222530884854912914874567766343868395467108552566456397150949492157192451665040880438063889294935007628095540170240253722584544580560730376197686853004788743921796784851005409148645169168165421262924207879062199884261738317781712991890975216117598510417953978529566060449328937297227007488350490719249491381755384022029108598898036480273304089657734051619928725773236544062481446970181430377197289451703745405653182189842063172783415233874890944640480188712140718551702436742950086477605768549051597608789909188399904198137077684958892663210962446882169656355178521991346716635337047150098336338481712228539025697785293197313912667192372274093085256295115847539807263672965087146270984214188174219402028632291631048309983094674595943369342635517420251700273407850619501529544220504243445456819307389678473968395333022320283688956449595340138485111935555829954477709190013182261562387065922572266351787305652502192297987060186691360526965514845805886104179889767128001828297721071313394337692731301518666026113360508134152607981711261443698787032151373084396580233971042001071732820615558216994985941082932532038919750387581175428236312663888312844391123890768344172217634465060898632762794617922257576476919710889017485832825479480614329549433284504051535179458056618227117334983319700174057388963301090347583199430089351285662802028547511858833363374940119355685374656745191778709058152222688141734568714789594652304433218288355516648135225913019220139343601174210065171446530232982348768860556411933324710133326441084150283388338166356952435149238983494746909915164090650926915729272956862171049664734159752478619144656890217489279722689836282086924558773745463712144975164514348701119321739134676731630541325902772720663088912829789638284128024505272548620447216616826551368451274440955596525641290843541308907935151127770280385311148925720889901933261282439075488649373410540952758264320504155121810106818734827301530360860142780842896394418639888092827806320813064006557806382170836970754016954487022558006456821351753156946743201617942026707206143880213762399528252895799954440851036448702276800030352239675397558813639782771929047396022094383203910176072311955431304134628491454218963183042060824118230721657158260597977549651456425389806348650779143200994107404391485743911288083928345270226858573549219505671984958084239208097764714735498354288302191263146305538459890290345605772631631038994482278282878193228313432398355772535957299186808159702548127317473412553492628920198572209958562970485862790515445910069720602683087905979721775869506589679161082218340486441592092852224602523585829286409752194223127618885621428253559175190086658199261856738082628453450708830763472961625303156023552941544624598551539644340287451699767029624970975672795118995143766348225198627734189570775863478384209955704370689148545801379829363288509941368037992249420284552768889500696541848758144452474448690659083627408449556240978353742901197646657188961056905369728995511211280072064240726498475942602360695684163496929339393481354816764727303080189946940880898384240950820822885415673740543331152216719945616884568455808169018514661350174396232404688520534391735782948824911397874264115044198448700537536478822660006157485798582289297340330136573326121470004449349852867385833005345685587058151632624178755813197342036308721375634322591249203424019747127337540970230187196954784480967549281257158856361321763811010176512346778683886530079787929385475155939349469844033691633320171315541271237941843379882302646519549471083300986394365414588876169868146869565619392445187349378405507668860032211981944197446632512159971193942891093663025567871077007243621606606248011610103701362368933671571736707145794264919538848625062937385366884312264414903212011074471141253158590105784523768250292629958600975755316752549533067189804601511632811810286645884681620707186411456562944169098168281608712692572258455437035152491231069809571289587377010370326683211668802740388781563874578818370065430400355609452192317368377085231161079787621537189343897595230893816786837060328945564955305735798104012536712355618997884601322418104400850530007534192111484216000894041804210637476028485865370602629001236164820715475625098467891387005956059953039165842740012568857779204519806359199052406156560076231634803613978305317196282426454217046633309706797599052101980909426046627753439654188273937082484530339275456864244565580105664857980557125652520495776231072845683837305928647090405964102365779672051283945651410667413302552524212526569227558608190386178376948460459436970676879527639320895494803478862391736551118834958000592613442503348091070241991578617929101170657788593040320284322091662897804731887780217247349335573876709814147077031570687354597622744205416929528551463436309760972701381228328025419297331336482518720919243163913015940301918126191836736304310294471948614157803114655990297052434668659702782855821883882409666989598272969725154139802023902356348047109392928728952559974462168032789324762530037640896253940048052265325664635268034217475563737462793980591960954318758540494424331098385585238680533398252360572401349109154051544338382460085222352186552088169991416590414194514409062888052378575999790552892838253840290396107137280107008267425568472097888885639667564124762941616314581333951597440768345525035510428402238856627630037205305076147787968935677390205337171157753366132603042408542454228043577896485352942600935363330415673242862928253693673617479673983192701310498345416716196547360737043141488204958230972156021417177629947016298657596328570935196106969862965110618953726124051664858658085208936858195858420715309998753174714243452356615677664262667211278868377163598393472439169682550826262015960214999466069132527686017315335492316328304936850859157286732835612017173407668566341775604602692578804006018307896303313801359933160836749157263277311981967039405551663651635251592249305828467661734753519032333992532186029121542250783993156667606690624312027645661887695004062633689117521036267296050212612841493362371615478948547103940853037685316039600852019253834730240156596339224990927219534190287639250095663798704281938045167327781586826541810307466377839228379876887902165157703837607133382564369115017882810090338421717840124809346576459618195106336798008389427410792744136421030367525837466131282725894077655160196538931436947054895468713005645085152384467631011329004259257121546239200643256091567790944516885413386046970566643259978934155911260732121140734452990344537268382928746503113404169868020271402506898162055241946735881756229374044394704155066395785863162111922812952755375688563381124921842789634584431893187058670652833720812602794560271601996562026920835095616943481096951799400228724785685349676973627340915368709048298978511232156450981931324496638505872550690009479547493107715478471991139300430460314487265484980038396087899735237928892849260352989663397083602234877038695741108847872199171512385399016239227021241796501480539327741760956170812027807774781618595068537923534926137047951694329286763973801785587899119157591202135204401545062618936956971065606115185883210649391178917996922682804340538477167825449326780703179724286279481675905440106600606044001957391431838909138038097246095969019456435766952471563351547840992104266707346318964116613624050056553892749019231553245531837287598947252396062338151861534372296067325247277294354609690234747846154706670561057069343837774364386624048491488895422986674534375402938507453064104654442683036317552044272876468603586991404658713584719159456984288329080783741322234906984502457291551014077435957474900815555749857961384732235644270272066644184826065427859080337514234005503910361017981617332185617730333807747562857234748594141006591923115379220866507210281521519651225148149387681916711582148413096154866577893309837434571702563147684494874540083619641001539696884986022590812970846764063242954171854168422247114907140023564724310341164783912909250888295966000170601079288631855700896596556943255738333858490155455431543400480899278681134115242559233355902035537348786234020180915541382289170440882040891140595936076786833611090584840730109224892584550135929505210387224519950611928808536644892582067937672519548607596002614727348966394797447704986638645311128701451198544686585057049679467000736505739964817786495868617752872429549909820987305651669116164064304060459561202219587846537713499596671155817020301732571204655997995940512380998727895433152465039593806683138022420623260721106669710222009928486341010886837020416476818483854977846746797982431096384413966267818777621100365005917929536548003055945635885617056611104238731173264896966892733175859849494295945331953777771859704580370663244706471750036978619875911795665676383108087761228583018153302315620055719596529571341343856607698768539112793991512977203689630818566345422132122747292104994587069259238906462271850709815306888182877665940293676949738751685010585918965624622423383863888341857211559656240668534714032282852138132532193199233989440867940057001300571908412359134497824504255043208366074389812682784916108563076107835263894179704951704714506888626635754540630338617445772907449362813008639634002519444487691451766988776384554400098498730510377966362387922591164875186200801263660611711236157339661927311674582112593306615847350461821729990457580191292089492758456421800361181779973366081442361059426760919368655791031391471137959987707162210912602968548765506633215462893220561968783760869287690287890660078657049820274524271669699841510917426753852938521512560516000124601159052181044009788085472543101093390206976967669514584923605074661576827338025036135111260666875024259166078271413905538645048222460357664116382647080179917498986313944945378812735534225204489298059223090177420601184232943477611711253689157020352532815397514822617545731124540050529827901185303126689016122210212006224260770122322741534017708652087326751054662527307861296526293907459845930558745416068415014907902619193078721528930332442480648487891271671093840116496735682978701408156345813323313235232750753290149033516710034043403693228054474702826895106689477518031219775030579446473055528891735010494356356703773654945618603348339933325651525975364364153427312587313672755057268210368313886081264884858857412157749230486391393038581112027213042964585375654422471807841920686786081563828136545851230195950183702991101668870192311748114243034059199872709043758556221629972310441628595281674570113085296584924633773381321231499563091302031640844394700525133644542211123890092586259455558045047325432507327155242564610415706741627788567118155210236604643355711954575334418371444729158439911576155540817953931527140624851848533378180836121458222379837942099369466998695327211279582217156097888839096587505888018632174723461629541460603391357516865602076872975888420462808797952403835546059774581121158150649699932448497074322070268513231013773705331936681057168650986192123541600372438002780207066415316009923248692746578304348939097850000848659586451270318542688880637254529756518808718485690315688260042859644675313024906913557563007458343299849364527401618882297315142067312121662879032618104188495569912823915184647848601037007440354559072040429651423208701133405863045484715328549522503608796224798135902851779231194455532052525667816731729993257537876032986180274265198753352730952368562480821523661913429475019688547645596524120453527365665966023648299849820507325481431855486672078704083365333488974220774841987069564255882444981712904765579496062491577047971226726616100893544708178614819110236236908107054314323901440550279942936164509756424311861278590657058455190985326428517892638732576311098977665622165376698789144504351779423671343248078320619941056718100862818390849186336310831956263550130318621263729858599199325983392636498843652324819176207385213665443030450367033085002941170280072190449174424847828000404649659729650257957147935715534780566099414742967380092692454426676106225346525336563415904080747090264886946197797941384749302297111720423671487239349169648185224550823204665263319087088692517988794469567046195977042941846850503006487697555220586642983447875584131221346468310158803550509454032084884361451819207693007603774492440043543959541114535459609951288810062072684994511345934611978123277251525690441519193256916469789486425304378292923347506349936707861255157036956657262288949577195711266050630832020349346471428238658901943530309817581495994580342499926938196291635688289418050909080449080400238161359339580374720059806525370910195814181535342335386715980645483107324342210333087443672341939885145665942162524074600813420388456025749711266292041150142554080656169343323225397179077932237267190616848103141243866161164615419956390513123367331525282906640153071783249736941925866570089697043535299693970408548751223957795773593605363657757397799569143235788079814785389545992969285110769444927141703314357794792727953752963294389093749098839302241192193413308519045023790056118020445319719611413255603980756920926738145218014976989694004534184983763538513927069875766654007253073569478330544421523076539766179794201107549965975176675312392461404372998426253031866368709407957752800962087084251589433521331301112296056877831199535250796116007586417383792232811883575994429558337040201865606963225499226861667017891061185751068364087628718028549672219477227798122116830597284850029410605590892400828110094153487560440067495361220732444884880920220065555786570336574947968747330970494088979947106212614633319905474276187588602232777258230373033845622711136964377153004716162210393790079659818271386007720402253711709678039347807037214325253142916719566162015022837188074666454850506213309294436448201546582820698070853977203923978397807927515099592007393447608240822055476775658680102788395879634160807568653479609531031866607755290104219109354634328189264431047668865782098776777565130816388879110367979068598060025810733679599521670639311290632047817090559508357908023446656524561642892174473208489292983541805427166435842694778758302335848496701607008990210258388393645836186904681086272560352471715329542507670845834396907408519553756667179375990477446883347331522007314661082034908467134700008970346820781607705653012128871724631543197464620217991419126905711737398963203034120772165888667640601076288630564241864171188796669312523665033011194241145524206525010124597105842271561540637622809497324845644118820975723366031516118445023585299834535958734866497418249684558210279175317198386797491326725069315977347567695690981625204382196010962379126769212254084857558671372079307027606659621910992551448773089407472096792159691049319242534647156483053979192189913181623152677693704311509420803489321484863131455555143885096463507377841080090848407102756892598120368562708925015310061571925082518175383796074514198827121913754100747793358783000990942607070165874278141493744618662522639540817479089367706977591082804208170639458149055593326211817312638874493417427786267751906893017073125536100130609249083003533347426324242285708627046972997234589538123628044106403341676942505564716338928845125885329584781777336707179077760890803437508719102982461447399557885064484306533936147947182067656428634356018656218350724479873988918794676551315478751019463522017763369041179385744336039393979007398209526946868779501196824296913524415854940132695518741387820057430931303621297273084218790993579115303764859320000366188561902960707842766392030928880002012124200078571647007479246407405606188892473782008235094688669357223490392478779313789958123056783954344276346190837171621823183718888039460120505595272134028069535554285683803612081996862303267752414112234224822779066064401599598192795298202401782054117586191371928582429837222493174625897290912049371130212527772566052873237342929551972060364021270591018428235376325148581363257108220170865721344805341769868633673073803763211132670523067045714078286686476643895882273186963437485705396323619816037941246793642475728023261350245005554839490782768428998995658581463633258518720734438357199189256035599024556088116655183477923061493413026176035639402034259193917013906584815276713659137892225650220948075607402622212864519631040159079911895934339102576388973299796819711554286092077043833785623941132848790881306637677044801491878810313905220803243467459544567739395581693241722543250024589048546269597553787569506395438032937646845972895178253039272682320281777673747421688508710459449808017646120057875504366971569481850251241003074314684919452477331575551462933413176780200560417731753605653172535220122459870159269931574133214512519654546905100940550720993886399645860007133394732040744957969036262817991270317891446693474882544817782227995730469054648246303441413145624061348353753194090931161089468434978419833581471038182591541716857839608225053615536714483614373174509679467659977856485400064796054674591963736002562808104364245849280553311142592226775200332348738448362731147446580352343430278371920866867937296960176884951453845854150238397346759653981353400245902434600528300210674830989416502926969029341613924377879117634640789296654280966087640340829426708046934166223594077261247442893998994452005172428538908274262122268154070696078262958713401677874589076343496470587772677082474266489598931638931347060322034389936244142122620390582098101224808602619093367192675820065312545546556980651163823727684333018169555956836831860835615899646558388223518166087073124746069923296309343831828973218015991588229449801951871530172624384436010482598086939394425218916846331262091534572028296271997379479312231572801910832041989918568619801266176813898558265145543442730661108397561825603524189604437163222993297886666739927153222721991053832599886030443523943533993717766429987840146614133595359030712958548237150722750652563021947860919927196792226896033647337709727682900435125786189927325898292091974347502331308542561853200323674575123115769950581303696458842497870110923997406949243456251692025596476143631677005678585669881689363434879501241615261445829917358925244228484332761005629841946432146394269193611326681713417173636454074743594658622282490228162847592764269931189286243207099281616044934795650954363028834389178282284739724641294067943401386194144095752650395328519978507556040167404667729027128081465972287860922979604181424737942904709995525293943215038788883101615968571448533782407362659682067387973421785141081403383798276426050853976817020889295774015158102690516548533830673170701047011530811554302130117071687083069812462399365038887126320315689444512135940340890930929845897420499802362237072609363702892697999752286423106571953540804402546931459259125460602512543917610362463652967824750713966206127340824686266471622446082799431678089316397807914944453409901752601652142471652490118134271694705046528056520132263873662931419374690883306206202933285343255877048304075487936316613342108286246316515437775597723975015932675329411401685527338341682126047562460239169550595142532643374722540819728504305612679741012511378923455614814824604483248458401984449200761835013926070745414636183830737383687253976537669410700345566491634091295621890426631481247814889518727369043563580999817499636989108977342254722548462943063409728274948962675532725065509369597192540414542132804056361529103898957888929408116168177925891229573314046840493680000990350601086490272987222177482851676552154017014188639344540549052284177022760123829068309026629971361291519504354353592746339199974682341079775487270100081358516248679684487024734320732063477716957874664872406678184442344022610633241543345809932653336114616207466390293736966519450346530156472083360986722766839971096690827838080355644580564156693751366519545209354701198075589034196783094077543325404392443610708546008239971415023033940482355278421007123072059030863747507952066685733750809505347126716987030130631204218487145124360191616042622337848971263898142654531324248330647992571145476238312476751692508454636862857374804639353145436406248988192020247014426293181446318926619000487909233201856864647911808997128799025285345614566294862515194943071586290934588977815697985040747349405835695435213544081174434739936840848611758494310860845753618368324537446871080542649215638462570175602202449778604017295632056987480722067839210394463140762095105477409230873140892077165932740330556346046937008641259654869670739890427565856570296973018791871149743212706479804908777587041164132045079674163615573091251028937434014402390307428221814656510543301751723313951372023007087382555648627297266067988677035067097733360805915210460091774743142850586138899234640581006232395186895710143523088901179231939065441783877773012168543520609111167193118506644727000623305572142727940722023307921496464442706900986296616907199896618590527064326067922869101414834567133920155334063355737124839372914826715061578663172992632028561390653931193720837762317708227853864885393784317253028326767371427515118856279386462203707131044084082712458082406322802180066270628497926414139593290943374844569848567855702361928785769092113575088544363803161341226970737903941647834065398026512738345475149728359248715472099642049251330159605339251485770732958619880425243359329827711972223787611664013968616218073648036513865692791168944824026068926976486055940962797625899518694898183695383145603181986507353408682825000697226886876805893795007308641476581485510633483051416239825438727731409429688305210570179052403415313087466243806800768568922864475456603984055986646596665889435141658060240033027015987189021453570203303953178492766287516267523556349443308070150300913886246093355545941141251093018631951680080077100787168888212681456715094684762396963249059339702461189026932961081302393700753079745420690288265485141877701304931291880191913527203676261631855638207731721886878924052866700385806852582827614725135470892778045768006264442375155708503172545670770758692777664859786519065313604901512483383416716476472133271588998099966313768496299762992599812081342663708849283504151269304754957747368229122313889549980404051356758871436167568369294578385176656216036530271846128349540340266713881836818353306742450022997375601384089181490300039167802864589201364880816026236410616568880345897416710608938266897003994398825536931568559069897224340301506665066241135400015861022175379611081698405972238810113297465487424685414138522586083140976545572770324056902018199403601085190511409923555918027047086611579735265115114898328323816618325680453939630758467916172686542786858988115674643393365746200400892430035548194529868408777741644987966684883595822377931632607699267316533650633168205971041359672159173919373839274586257763063875618931554917085819686416836048478330241828093829573803803973247319496013864714037052556338385244819742249736506186676151980982077134066602069968673833227710727698003077206990897516250126222546267667941277333081023885330630426003857833340561292143151228459080758218719975256569905189181970535393041041231770441894978831457167173238979060962880296874589995837529433681306753042444478111267497578295828124299015198684424032974278953340591153390611223247503114232545367916598776486377534402868802410900353309673251326629679122328704555681527437766466846052993241805534319771700768695379588484533130052225076799574743402034829514356165161897536630141218672109116411708933778429765513562759152542698400395569183150594889652587403001652528217989926991391170035262819090651642361776476837720582029472182213882687323238676599413548479833392600169148124645624587232513458693213713009249916286935052158716748906276228729098826764165563151980266291605226002484349090357620476986191829490710574360413169813885570940633267677399549065527745970175519755093806432511992138658075146287572915504077777656412030613514777069814003483180102526198549360835170488113309865352427987679854486751209333005386658347896249432558109342967061745573694754205617425369261377753190122363330833426564991346586758190521517723751671446379253959542213912071641480876786318102457304258218013992119794477907366894556873243180825854971406556054133741125842829667064683260625315078517935578289753521421790649477444275398859466138256204956555964747726717254473340538307717233790340116248476271633153243516236199345592450757919664902756022944025674520071803348313103811059253646212382062161561463865758447191514133054302198062662784066366624204349856207159213871161931930828306145391974426599919423009820195265021979678260412088889103906002215152511988664903880081683976820124396922203714345474635240188280808874121190673629448893674202625921835010213885904235803069062140641691177083639267023973121134454435534719148235663646049705360863400239112264866000155040018031680331818531540898482645167727618168126848060764425585896985272797377833442098721511413895734474076792819277323895074273666518827054711040922393360003053832135097347410632722024586304527110403584006413885249178338684272165825699977575162755038761779845579807535105795544635376623683145497192228913025370163223585048307343617700482095764102601273565871299940616796276615814115768564880954848723257482614636389710870581045208219826541570403365710618272218887201845960013522570560428048263832008479381199042358784044886930640560393241777670530575057444190141093104853028902025969845779451797244177782828478489252389778418103987414593042498053488721649374063291749039544545487959356391739626380327374969381819135011393812479322199587273273277123075670676066725894574294328305692888156255526159365997485083809393287975340546643649497932265201683458653771487825445580055117370297223154875364532050896747576067542902261607963672839680557493217261809197290663987748982006129253898977398837638040340954791102229137065875371958402774081222933707673216995708735333347999118962962757495648954044441817977763456917734703788352878438553321967643478112786614502526262693024755043704673445552458266066940028738036769342928757370177314176319065877837478483658910414598369203744770067756839640597429199620057864175106771300684274512939420139410476183955301912974793817561224570733068660605107369708228826672330673579754412816426691631605433757538804694653184421344580772451931081047770008164848111195423152232751667664662010313049068019610616592996958139545426218229085764642413785460130860223037645140460714079423406756908676701130835235213649502194179031667573587977615641374017357014374766983322847311072466472259414271137257847655933679607457588103447637750431400712324488957277599732489020974849074823179583688935063776453578267513769307865645999449390924551849358797837277789718202359417188700888125697238421964974276708701165519112911087923788051989265082064706707766541397456783188212495868080709307760733629783462458139157459717090897216021250265541671673131242865005355994158799196157363729822734068944763681178610968473404967474702142272677581061627553158281637629960688908207166308005923347679421574577396147097089836630936700261845114372529217737416746019732332168467944645452384758708723942081313464347584809429831220684651942596173453037706736541915050917738016691558964826607176532785786490141291275720008724942054283291057502114714640080229397310020092321938454372381639747429537881760152456955645195824356605780730451116933592409089135315409240272713758711065049453508290609077910475019255523598525253923821230694295788543493206660863270810866351983034150953837761865924158411745955662834717170967585869643319922470380618790206653429914591185096448570665047556297370311551800065214993725518295041352200827871696323613068898813000831538505344201663526280754664396536870018481190719652700857778882664064587111817697697194794610549231399028308651081671178556955541366062048090070235785037023724674265380552937845142699748060925839408366128494477716052579290733652361020079942491031480993985843050723547183243093616837832918228887395236485682583931400573041765456527510582647186920774779862414144130271734069933260232760276430119427306045028294712646064948726602576691712118589316657110293200950401226127313569138187104081513691715350015400094878447941892009557306287815246498597701741128118383457363775422124227551150519974124680583400990524538194315826098157320387897366611844664158866377059257743069201438899016982353628938013242767922241241293920545765281978008101642152906137144805052834599673748465175399020370149911847396402388826024599662035179789641857993590199314261690708592790612887511235196190156928828626983085219964186134057316260141925469194042527829947610600089305979196340765229074847205766449568981999488192049429425095865872914045352473109068745658142356652187751919733412317278487242981829120647176952005723289009023511016124025462761493808970895968275230251214896931326338692432480271524408666439695569340619234197100867137288084380793909614917771256571162430913552702620497757990787996450289528886312271785986631916218296868259964786939241719591538396214824681580932459609412262047444977241306440389591801356402079608517944675149709195217655906253006966440816038585248039990467437940347086980671735102945696120810223673020424630835386553152563908718557195073287963037830177747540575942826243071280742592379004421858467797941947143830130719557155401444957745460245091498972257671811352375167721485534792052551852265404045525832624283645699678545125451985815563157088923052776558712309953258976868907028337914746858053574533819541843835713863466538775814701883465453835366268731142835932590008783046740826413452788963254244000257492771916441355223492285790187350971889461877754507642782095321116184023475342685406879207383541495475951471323197327257595867459616724756952885647814521987112995922630726493339815222472055024661252931859296895270860718834101103560921556955901149460271519031504807021500336906088091674142842609408194589074856172014701136474814308138697885521535453091963272294161647729908064761564677691602488595208800127667835172401529871939650782219113097274988165408735078449843952316191009439055903124430062380673737391210727519781198829782583885632193559174357310630425637296349977404088278671385778642484020751453120026318652237693991195667346603147006311541947661278049148137106415640648053862754137597464378922174905157480217426819012276723590261787262039476989039767213006154649763587155349262909133391380048875750712088209150439172568817653793597488901078224812449253794394548975672301470432449589789990026802839038429531360619123665649622687695632839912831998776274230745040197397274303552809930622996685686543624974120614748781299481420090460689954570600806190373479956399284438537954487464413129612992234661681243752212905406924001570414889644462820928182603674764285736083427557014776485428144706275194403754579017524339273282358983204804767524190291305624657159466460600063111969404939094263193988867861834072771068802741187553824859569077437117949809189996524145236605145941134317110981593806523079917587004964917800094221451436764656972963085694671022366560209884930830117797559536229095075283815401138147253803796769450363259356740969940437896983751432317440950533681850472401187161531756505662773519465467830100966561577249539856423490358729261345222518208096324611866708151680250530104387444878979210700668513834975910511112603881933709720713783277024358786513136323123397907267411716112616345647005326003552884387163782331514618741513664678156017163448598894674776207509493425905687568963620925173438411333687921490943532765741122182911685258733924478196446990430465735713145700673228619374447930739063958991551338332655214614202872046442271102175050719986787903879586300829820491205957067511868151621144561001427653869916480977759467589876062725509299982213315269495200161334282918908465550461176512013072808536025957710414220191010010258784689462219628349700117101454789104846944029337879197764512317493038873452826593261553622303115292643555142086376042399189410078696734834594939744821930161579808820467014101608486397574250577211607658431115774147917930170450491584557644621794377677446489658649520038861120983088261689930240618510572437970456238297495715021436755840828196409886628216775908042765121180913600893730250587544064655810275411337479973879706528248603380771203779312592156173434244174687132499128121892331631093646895490160582337157656385387365988286436600461363961614511880903907189868290939095866605896000355522221764352283721102841945077802634261078478024599095593216361486784298252846175815592332466705378625008145149071347737398908917901330805499146634789155698120636007607265056715274970881887268307542373680955525614139052993389911800150659228499900660436270619916635680227066195682690898274057232153243434090347941932397339943647652560076437164657397303493065632448747512791444083339913258837473676122353259028169017266564682871463119534336273961795345496221123062861450434569331861759131634063536832230893612641448445726426061418333515151164061274158487410332952620213709733594175161446790018752224504957072936465253892825720512520199850861700312835472115456400175992178106979657253833774212493172934987101502373654037637774673863864083365913902030084929909425832938484629360342072911660249949453775783937918515153311975548615095771208578417599665021797875002400396924033677423711154939820515934316079978365548489935594468248825114531897233024867278456231091957903823822555705064132409579732596268830082702409101596632836143827056322625567402214206513646839220356358808657395565731941500364978672095562533102415097608424065749683243671748361799772159280465711773531860871046558794373483653952157103577559244595281965966218142232018268815442119718261525737226961306229483161725180903873320880240974278100322531214610589224026505879486820993402872770969602407836637481918357925391086737329961801881649679808335403646293047939410830227418187325605766197034262980489502119415056888589961060024910662703741414001487659981587256050086646740580211754506665051506165896569896234091851559337243454856511163257458182512371664887044043464039184259877315030043060475662964447294299044682109165012295692718564701066306331671754255477939455933405932414791173720327557898920959336744795933511771878852085399145828866357929739898582352356016834347837699976690118060087771504853859379218676594372070278483878692898667357307138960533552393854607265199117328944619352323779539996392170672007739639458874522528032147179026706599435066668980137369574871406863696194658184153297971000861164044622855844658544606796515191667285050642815913846580570490687491259014245911718108932902948869009670662120314568391835855004863674141322110717993613793274588698556318727811780074472943267011444998002320247280745563267034469074458243697590109306143813736729449909855960173619858584358437237644394642243412452040561193351826012222524522211254211461460399832537929320409394389037017686324507535229780713799520657634250106139604646972485094110598165550351781620218400678851832887009965562240018455864475319879807155950055278543408661993751546138706516101925062328296120580811804132546467174872903061094564334720464851017361023058519009548227693416966715322351941598294500278051137319970191763129015521570815251121305924841487259562385607139725225949193922767006119050946829290962249159079272492807010954587601184095532759812530187913401347960442406772092221512418252791971937117906575490531212634598836951821484060914589280397578408825133964716850081687699709111526265129065312428510749638791240366663126897719691581446478115960694455780445246590144241223679744411264389665917042015522448860127842679765840372385540262264501551829076791447600339126048102843195300139781387246973408522974565403328397607939110253301132081636668778624589170086888729587422358873216697565460502351147774382505063820743715311298319366141462822296213269705882549420567057291597085842739368262769774030086241192633068853358450709216150282637986717484202222179803059714980008154902360597260319246505634803283001953226439914721800928293626031157391378832985560099667719684202516876397718951494381265077167280254880586704170282413286428624639284435638634006503696022282351906076008433715307979600175060244513851167210382441554962876237682742675578406748442186854108298538271093435828938518775246636055690189357639846614516763662038924033759649467029084309738603472973802650930790553156773428749098463801836424347650888704906058922228547766571626799629674322564843840064612206019407052669623875552702553483910135662848533219298565005776127383002608301893330928241062524184643008712097491120233368234797655252822748405004837132357335453193990980268336879412509768306249893416041740236868864949182246212855778130562333550091604693086193496749298293813813454773828576387391159933208073262497550300436571450747401163209351912973267549691862647982754876746492174489059816399432749863004150941361279741734372704212656196765858156649326092076644801351233408468300136051115191919093611066506952922022412467682627701267067072093496012108223038884156991062648579738399272306974203185718216731490300749788123668001947250477441939649721445364056668859384503226682140856449938983947310505503835986411697114070997822595905574262623540651565632828758275310449828934202536827137013316396600160599130315195133044328719630532303061834870266079250032453417843217531412929550253839846355279758820834061173310501628051502050146786631777240391335049135431929038662082458714777057278883615419776819015778450100858781438619997042918065707181041600133848594984994050450453375878696638072520522407771784229482430236158536756550218759683175294270331425535026751291577678345801028250864727003654033070688988996486168670665700154497851318653311089746244803122382549062582242602660068584615955367778860330672451307100661993388790025040898705113186229213329476869835705876641217482840024970054987985279410420699181255687143072331653165292362034693060510908135671570937400470704102983615179141684581887514017371233197687527998792145239663123761969371075569053096353399083524595790376491430635455286972114541034383535816540011120801530700157350922482555657299405168928524596695729408033593592041129922063082398576538147118695321656408378959821644170000222173205172622818219285644440998021255967953071580287334927888631370529183281898129228630506245633629314399000595280887419217304931467051675017789522656679382500482542618096736726541825244801289690195942762795384687315246648236425612789195529404929024677198938363819043669144961253733523587284165854483722324168335594545501089549275538613044736887926937382107283313199822165453420475976537025836753511678398642642525730085320954275980249555131996048209324210856430381802182106216372118665717853323470287375423308078057802336113692907467504094059325836215928766856550363349980348927212124578792118508755674713930859232464826713495026139149272353546097700432891887329955955496955825766251915370237858849588827729985401086014325439304825453552504429855563060153288733767750347338467018083044094562541516838681718384759883006834261539807837138316346233241367100365586567215345158451686886374079554471804122753169969580960253848035205541549262372062926303915886604569640120231645003448732033221348559235991122133972674946103014666234056841148737777871296581417764896977828554581205144173037538959089990316022170128766746451490863340084351823140150599604949359986421555826023329963217234307489339594957880794363964813345405449451509064318515058517091897951722945851313534574241096754918653556698153760193484893014232155713100813353020351607983526076363303342212068508133236445983662926509856573842419734955307516561845616144357728396182142210800936403732886306932641436404671078026756448209610461672974923588285833499787302424863764608006223297974594311697867077332567897870265719556258886763452708947137177847042512255337544556538489321488645454476155233020109913759041553718542329736582013234370284321303400831271678291360965301614486301283209822563047834071701225802888899567016708688934865947859835201660707860044493956026674896820629159028908953182866597659276909047449099981492917746660196979503462427607024007166134196800707940679663750380121756266499405775920205895396630132997274076538815288279124365240373209724461028131077669831902870626537297512441042694153061237481372713673153200033131985331790759660175609303662350403269503243911459905059848020525270438320801227491109794502333145097876952703430535353295172264903782275650870584759728253914672577088210901453446897169033872302912152194965780548873358033615575681715663965108264195629728225803123585584405628418871181894016043845161548684044131591875939626099597789443876608854618276114576580707436926994994353442812479962529456241320196129255293646861801149910957121761846041471850896030136912594039009838079314756665352721910839845906255625563740780735359173054518400774635907789788630261884676751449050471808034665115340722720905410892530717869245661534666091346124619865746021416342339181358868685507994519811944387039988985307411416844071516292192213500380830483366397346012711004542545560495195592020136481103492781185067825686959394522394842865633849708975871256547694650051521398286433107654366508288464016728180601595600320156507315593266318114314510821835202277896028487556308150515588857905807479067529943955693752760558043206759088869436804312214095328799476106533633881695620731015908419571535149153496243398398679674760470521151707833101764347213789614951900720006068451081581987581827624799583056146852595117938089906694495884063729092462265449157912603260671394234505421983318206711541642256508733248343453084131960730724749440460772560334950558450428533407173658390985185951228815227162102653556105778931046474065028840986679025199372505579194427077122260197201320035012561195358765417890410160492359391153124089282970587447102232111541208367597140392970850917471473733127647135173517843279250405105121780466235151173364924968174793173511479677665745369041373729787746437118139724920385735238345044488933048630081308970891391233195737939067600584393774834119451271515544597813733925600611118489572272333874082485059256030732943705173919578242755107859270882948641462328201649416830030483741070267493828485718607603721018448673440278163816226099388049690845126058857399670606841317486289529359498762142110556949518236623501720628600444408641085830896606132306803822259220040135619011908745852043984676881864789912294283891877408635075571312721066788040304544419159569201712657271910030026983490052177285844733588867140052239789317527405708524015079964229091595546419504198355881259645456277428186064201814497747991064011339087836093821453362092146631971489043986160789984646615673147089445416229824443304552877768828999230849007056315115484159082929248475410272251903646124395348898276747634461767451947372831245824782336314014113930903425494274948939274888405711030763622885997850839300545163162552369366851855802230779633863784490363553633727964404135797232282391923080995300253170240289821361256073930186800798739005538599249978378962693087549731251604490683237517111456158751000944996880457284929345505089121946574778136744143351866345746512387779081047170247178000968224209008063053700069892432558194182804209762664048234087515594964144564058601055876031133077121017047684454727347451729076658826927884546710304294384700901662486026287164476005019213030586384083630260493514017855592877085910225397547642898419003765720316997416256778262597061317112198582120348315376808660594205484153027036772461463806073869919205401035431471401442437871893219112253077268784232298564921189633779604316358391063397926728470990046909025549278167254599508032435773886928009242037202882143351506298540251638305437452211567575656978888807699198461279040564837535953837117785232662698833594052287323326190977985262022970100755208176602134952287269674200393303559336307654241912150633221833789377885072990007836570746213902166838029618410461217841622710464847425677223987532229283425637657569758032249867637338085857301590567385473901967058653751932014124046877851290755016074532797458374965012174241370314904819164707942734445397163996686869345513174137753481597333743256848627184203212516205029220446444816666571779982195453942527621712100914012619618448237347380021182925058373911123295423574792165208272788591005209919232792164735640456595009916082764893519142705874058839487783116173703666720787067334006542851703079525806235018443906199004662442807479170044564490527381625233291472971042954440227263251126820704680722088156295106986613201885477081762586640172672879992547833946572951700323454985709494259987704852920032531025291421562824890000687337656721545542847586275571916566902395201588627496361972384767091948758897222019516018149707267134718274458203581372587434198565029762544193577716095243805018387542947071717256697884688673249142584474516361494425557244720269047018688413422975796602173886357569824391479450558955595493192852157631019634990887375534129617232585547206425471300821611256305109841522630612057452886581172497925516296617090568988250415399302647449957887042969816609014419531258110085549557337284230536250509214333482812523873115953099477898039414140891353097987877509619410829633282758054806706121960455938870718275341020371793008247788548704536634708328817614777014738391526835561109410740527323858025309289901644752477644530257518112166689272811366305096188334362267829960613416739678100519581889846594023860350873173054275134791913449989571406031176515118806669742959059134001555405327413029610461173187331608996485984400287511212891772008967796272442941709110901501519481387299338047242181696734359946665270512629782367083228678618844897177223793502140662889203247026741824985027187039253300911050348629177701354023288735003107917742860684647374828610016799814098295475561334442412452322918571186496552654455566256663391241255226777970621618135804783922730412070126354131307087045475913094447801679713523585491977513284622030297714093744324593430529089584659972457428882475043728202979548753414467987279437558041761198865610342636854366101362658434361709756754225303497416119570129834232164071706762698203711160133158778036405236641098260787590299464221544902335303613590955516192093555684536821368177068073084953350645172512289787771933378319050793218085381908341951228806281242929990428184150229713591728340347896109583607076741603295453603602410477919311691657895226618042511050827323874875983532130606800023217975778757560162527432800992006709819425470638774075522665781361465094928683088580671799757496682831864556424309586670667503692970247467859047929308990608352967226870014186285608127572881211098967586869522727973770618387002704710552808571918446772476730887172051759380751192301747124286991691074466970544240662259932221422589585068745483775573293441145288695683299004946827272554511970950229307590143879707886797786229366305105330448490807362139647426056408846042624244750810720302882182417382741927426470772108490342265840437259692600052857272134055440314535642554302296568524749160046998390816199088993745408281258466556203007204878439259041607378044881515307878123852153369965715894441851187479042532670737685731479321788377884733775501654779946043034476489967438663867176286314969255358640752899619991591359793970976458388190016466015951040196813389711962652032224167825660433842889985624741286368371997972040145865825678239599227722608484431486608278921198527563937856114203238172718004705024289704132798037602038038878329989324290742584298699456833431908781620797155099334846106016963005756278500946124901228951759713499239594020369755680359433656069710797459490295315903532717152984266867450494522767112609344089058513157903809492390480857782156420064731648326264353272120923116803163759059552499216224901846014452582337498209906245188403322866411846980627634102969414953862869572076153490508724018714097408913548912534099060426065190426535945298924920638929235277863997937536470899328499132985225697899996625355583278655262288933401269482802080730494304055733889139402052423402679717913991264598469412828760805893122090379316177517031000921723763924954276748209273663529748017273438684114345303290499005897534502297433450787394282370962528355654391711406959398471571806671528574403412020131313077382645665105505673518774224437906856000645993922461248667913360328144909669097505486363376060984086335092950487445237542310371790380482722752634235987964944384273693649110610468301948409653233258029085367658082944948498816608136906817708297487733985992886052724552249148375981834680200031925411766278490692006547688297745979789054333637355557361748709009820510518896076841925928511178252025014861320111897020479748042723848287391668022793605747401936239879967054955220698231066519496938250383710396781342048146096294331705000975831902568970002146327464766873198960040105019482659215725977198936456453540772326398192875635502938559954034563103292036345918336801979032477059102763852239533517749358542288129310150553715494879992715873159903440932110620222130184586557856027618686038911546560666898267789185839527476745103733413062741832162735884410261786075542834084022145776040481839266089002503982697741802306745483406241084771923218012842056534277639523148394185481356570617704426160284561959013995419013808302322822696396300449031771433085248433479060374486590360181207394512581523542685817972043801034638892183034021476474443840301117721047929232029063052575178104399635220968781645658041408226429309539656809736973588812287016677142160358892035916449920196882176385979669131578196368926512217847957340372552132958343992944199905374777536592863053819744515703967475697556661857301700975472750048524829866616777970246544169063239596652252541113733427827863302288273708479894987336660624378099273556800606329598440267249694596891562225872679645701055413718580938059384117110703827283374245920527185177252316477613012526619869424770916371513597863829951803803316888597671863091536338003713888969022025945739094023449563197703384258662270944836943073197728173111282716985595997614569929341525618073222470704914691427714631998195316235561548962962451443801694249320664628764660659186564982692234043620891970949590598217158143446693315634031635444530921661734618392308257344826647001509457426632248271978397059084202313894538690700142786588589805304424492457299916098282662806457399833005289147099744225823920763422659536655635000564099067427663002388844882495722631254913647122677930189338808182615722281462047959150344371267359336168402760317576888480044159341093653437256462362523067548099708198047498641971801640512122608298992871526199321133470514915698920292695104639703771296043745063918996567249125401492225856528848049643280923141217208678721804896280369387428423728427967166053849300318269985208238092838806713450378225426396779519994824567899635608529014092343813163411818095476409053145936200704048646411771950234447737107094340940263054334977991434385966836814444985603115592668406761863971302940383621507731926779295175612870355157005372640065000263099423745786343489808109004717327926534438647302295235110077293692422777209219063725431032615481940437985155518046799030835676759187569692278504726093416787467795379671937485342425671939379067767727618238574539149802608606268328569489692092376403631989186647803015118433792213967287685209441072289713667984953488898632375678938502132081152654545447963657654066765619869750141498987749079331667999908795250406762025771930330134756079990870558455694499235336729972206418238334782804321879738951191691341916244619626070483440098611810200773995555235892120778415490611466554075928889111059473281275440031393776079704839464123863611169681719622991161843562640344876322271831328570284121594082443852045624124552094159309165323753889461454944294870919494339788313216770378439483769422145998425547182259711404470434300673337667554572459731477545371564507364695356961227928608423970179560852672419830665367137520175483557488598904851268138791047679886608042946149596442252880216391222160826732643424303063766827930766198585276514376333330270692868979937563725001110499861268187887318089749514996063294699085726885348376120430067374537848454960165811829028589293166886492578161630339037301520541636329039796164683555189625090353787855186294062854356023957878018150085717273133604312050463179211191352225977813802376043187267120271732376827154201698989196846542344227360650002780012045953194809078689572174301926720450363181086871361107528866607585146571351291765735151323346157406830053048189880344387348378392351463874069549213012501489538071145994918546707648901130685842427582459113039521578060755248785159030611795510861545831533692432036601810617385889431561393731854324716518857007148557067073431185980507450144738310306648078204730511370177412827967597232001098635890916539912960262472222403110871982454634843302282739384318567717095248947490392862430799602413306972302842528611782391489774975920136058709451102036095785376788547816764926736802477173571720155142519164125875605723647297499410762045589177247061512369169868485400771877741733693086269767048417476314372860913548980142010663756950865404922290753164866605953122908885070996813596044915376708152393882378915001080196039507516843622466919353876460252082028298122509904656653612349112938394204275025470620058968203704369052950415860243376370255487853762117503402520220199411841788839856822061001804255421488791244752286542865109704789277419336139355152590573936563368528384675366345155028386853945444083910961493587057362057066099378259587655951839043640088546432329790595792905187136246155229847718467566782456993608229073805453231585658270112093835461775561494199576438644190441774409077792804767017769670764187515046507384754485872728004966766078492627445866611526216594754510449094678270021024234460941720096785494322745332541432157501201105335964358728690754300530893847126182462031166206728466150409860765660669503638189545999012738822427763993148620700676334519909176950004720621743294513543428284782189458501068395662368844933227614336855695320455138440593825919841448733859913033191385238776489302431554073353771770801120684842660099448641105227783575713653551931378732547652804504363313652294276973557793450712016580839514875015756687933535394062330798163094739823619698002010048849155422807627568661687252358222434480327547791139413789244929483272239061011510054967591491722223217841882369988278689952602826065131531616619807873614080951269345119042122952145284050824275695997636161620673795585410604003053181451532317793705532003851266179636465640174701323598435480877493833956917550922639598334867922486119066383997701841571550461707832495523690378698020082151509309369628938172407422993446263576505491080038043224159733239487851374604708695686076737347124950551983134863288708800546460429358381371778081597521439430197122824793432590810390206429688409675061480397610230085845100546514912227588950726977581556476676351427796297412055077141387754072994831138353985391814856306340756317184385246762944764814211266033965774918296088022229599339335463400444826533698575249282326507037935339537825943292745844610674847236468482086154974654746235116718695291045669440712409228094093132213557467426268484606871420642870258423944605849974866217790809519430030683518877327480953500387257701679839455234021368870440346689123714244323865420494733473518517573109344312085638412343256249525171970483325624435623446411850412272635946457981044051662840734887424189503095607817553294299606648287981964132704696720604261317793537843390142481667170214827016996414265512556633693904477842536218377681459357409714425927205155846682971855014292184943908581916130984326272481568011862791556136345340592336257206258304912693198024786994268875699066107445108183132172420499484843353082626955689760333438256432145211558979061569992786848909219556578795911105907904070447933583931503799740222930319194782024358948513944779038345692685244362205878993670195589964168727709220320019628965335826232038336004218213369728855592213443276171108665201333943161944098327446116889507826813003704157163091509747969665605172655794546101906911033148427403544503740872045477185036223898751337332087397311281922617989902791677084244070149536120752189314765789219448008801066935945595691609582379489780011408190203862265929323243752558065976736775745884782319598520044383824271008172349154569607601101219185556260103414360098195942363048836732478692558240546388463989855763588835987583247226546305472357985787614359083453663793264540565165495398776263051560644126491081739847000961488319197621229916608699408399653722687526165412894076289336479922205151881921798956182569621542848869877831714574378065814508514816772769725752107429016598283573364496324409981438368887986901614843188524086444231311835945990329154092711409223257599168457281171646889541581043337051760927708234349880693009152573170087967498226614656545411137174230893540097344243478325941352318496500009537291914898707922537091577351621879931554889553599701699599931309144736507613498712043252943070917924935516335855188256596181459461241796162374536180859958320636567711948914038894982296281183652172228026952835492099220750670198038503926984002290087849659994676780966974424191534522960956689269891143222053038656079632019828274613880726632793984298105788592235740725142945708494460682415124881274752837616470354503907818966834976441851062333358257597572745914210221005416478532201671215313572499205430797146390107657740812394848137518620699377378506526841868676342931995697872751670868363666489193958937313511783347284869949018782651342369120525556700659378072791412526186743346744770290720250407576129126970562142757708531398094734603214755295382052464934915447256849958250273141927788638977381875741825324462765138478818372891041984800288758323238546765612687548102425700635777649191502293149156745755906697362520225121979082292590469275161003916202611652936363088139478151518933886431514082842035342921462942935700433234899388942853809576370272446760659041007808326795777219115060216995308318154353496301372803062141213161220888076872434800038488622490864549419454031895170370791084528050601477724648464066383230645664763034974040820033772791212876783578282309946661284895096681260991519412874687953223360272247227189658565140813965020423504068466441197782720628534673788749542521123779861793321645768119996041035829926714863514779486936365047231059728400403687490264836925979646615532036447142218073079215986061414581270652617730339940729020120535622679222957807665722463847677610473719753960796900420985645528088123287984618324752354110267853537587431297338609139984363988628297507307921352860801158902603217361132868262934989962414054077557027914838810551446375942580310751723911965171701243543878592818833847630760362691729491173119880882332306935165195655804968484075062349975482610717964484341762926094611496900007361471965874335221519448927491975640589993105280120867837037404438848227307763557141735450006611896874901442311967970118657404620970207979469606352605651483685353428476078334000048987909294757297649473724137357779545385210036581445809558814536584291018203264777635170611663259627548484508872312527117957236784502620581997658166838547027401319143605400501368158420714207640646304047885813737798509590206351306432275963883762818043091449700501301155704235811513095022317173148308038720767652009010291988540538092984416595758583235352616734025493889366016593189925323761601053710242342629189083379699894252770108929442944457391751800577999779417813345031176524832678205402686383147484042906486618978933495663900616365963206221390122658651144582397955733571012103327538345170316434146922663821604704806706418243675874812559154919458126082987317086964411542938304387369616345170822023407506119028925998424933197934105231102937613151909344950041695469530246877151811831694254637573532056613402157349162472420686840132675680235017115010740037048130757600297714222354570365728606239551223622103049839009533873562748966916650753700537627745120306066052701702389435079281600076461099801168082327081778717509254611148982917601676205555763805691917223700384659867762496673553899331379088880641479631152123611366751908712124518177715811659866037250107093059953079259225350846237012406228650077608467429042314872362368306917451161472660013597504320217352095280540375223588843516882570420491188538563698035388220110592985584005019981249179234117003278415376315268097634391881681252785416155024360939034963362689849981860726453838566920740698906836166929371647734774292715688874009627466916853908947718610343009372809872667358246415017263240073324556329990658610695449293676678219518280935025972926654829165030883621848005291490753459713844015694924860459719338549851447825521176915931997899288898965752550311844621050612926914079308113532565943060945363795714949929591054174263444092395688097760277420006063585489480339425474163198577586806112482407946656726239230943896839119048737785327887899615186888496084284358364144943443090700439606861939966999382784381509979397314985870954120139890077308557894515305082943064299404757653464795658989345964307613674508218437484562541743954938168112749630739656183985700655908231087198797235329477421219735211803613304323861697733291739294995408449223358623973879818224529748871544521402830241434145414927702710102727938069245833630590671479985203329421057338290478706212338156896302365744158197352328097777687535841269728102567796696496882988824795251831706001894856993739255326948260334201120878000033018027677157549764250548541640375824902241519062513523463971559199256134654599779901389042916524606928514273946184897034906782827419300389024402335346914171517886278584913189440262438071089444313274657192001386846922746988627448950412867408190776790886246013161550123919017194928340029811005067541699281192726914113954592224515642664969024387083853190413609271105719659318406680503293233861970603880657987828951902611566666518743276141607437684613331903812068626767640260716552017020980620281503245904060264858889918651894605868150995117260412935415506386221822796147352277613106609683062364227739346897279982948815886638170185811313893287884401990824032755129967253737310211204030310433364516475508977178605730095476561381014446375817434176564538943551491695102460759408539663901891969964342834362292342098660155566806366702141753365034722215322106017733421797541512812859745074782468931682330686774942254760079751821057831986493126011703708952367108748627343786371328298267114122230135467863901005823371897665407755591995245467651105997951298081826547140117061648217432567725767155443863303761880581559078637898585750064024146308054483215104345183532527299372359199347399237456581593613435475023097835422213996856736131927780908967015769219287461982401490498817429221111587341304655338968771740179639099742658314755264736988373600741836383045313583604546550881676792749056965251491918144172312209114585277190531764743265852915380428520488741683648483827669367023056912752016449193651914505716542071840327258900359235041504987892111334080566050057559733521474829193859230961912644260372801306848843388143817277533144957267549743610279639026831575840369929688070201585386394237633478088258091311904141909226658700127291643113612389667064726026232446501670273496665972382599395050591375102015969291111372374232490945739276171266101641689088154598249903969671811315655263583811608938478762953675310544220410725962119743479232473765448776962965291039869687628658631765161569895202551147099259266115383736840784360549309572093329578067958670113133464595398541283708505575802545929044476579720446060220657863139524688752662778950902870314798525637655605714402442937660932836672007043737576030588546200550299047849782880755417730225988922259807794550978095523740202259891248518522907129258406491326066707921784159151771442282071805841840198519074102986878629433217241401157366041223375182860403795412673768548243934769825625672984775918614473396221275000593306488937932943516570299384431675855343364778097605433462428410215718955850699160108796207405870194090817629545552659142442383336166471156642640287697639290416854749857277747305491630730168653669855258492986559200360454612476544475293192393588717331591593098094346192362549902528754915096448417083899387947773988254051222969866723922219386399362177195670526102392403645586689305756254880825678074547295356203581163119934938067085421628571803451500781636815623858729793465249943268965137447497101257631987389188711164164484726400147651917951052782902251608824146906462185582259866545988024365685797947571221860118119395663972561889856304463676781409551926370054955690970304448670922881321475010454875327417861004352573493452401684269489436720374240650470400278861041038646299200159296565728826776484287213936933442180498026890164200669339051600493537206764916232612074911948877672830768526135362302409333357778183061798878104564328539651880577957295402009332341027887924126489374917630537905084497490272527858556454014154581786851255739620533686285452438581047668259514989093484296765613107230469226942476597613900490500414440045415179825760726445319996315130564024678032131539374435437146356623521076918809204564117675525413446548651212092944854394532643298809399449105373315911822203370161471658202075063289066671643770228362501451943976081231865182819467379045025175410932617479005996772500238414943910623692235338128998576404306076690088635779730699397276186400216231184584293087544478426146282787229389165580870752211358906005564368687779873538880509726455672036793699415270128448133186385706257779183487560242419365916345379223274081488788211594796503672835371161492729193337833113059787699500803591205974692451366080250864196109572514237332506400125655738573425071762531707718749480324553298639058902576495758891896451722505071907281979361832333750470574415910315489048990702129738474566024855960227903217214814843692801298553399998646098435390930721501745262334501006477417809614917569452846999784943518374338335024322008783395927323138080171843455396168902569287563039471718088963023186713528360449922198263326131728253948553687245988860523164835394765817673268434619749818842036691161397513024117835956940242390186259476885662378708054763217141125954583685783240088689956928665973839913961407262735673579504344766409943760245395048377570563779713636535342218852185778253455558611919864518229563859581642338492730881462670087076836793589061195837999698059542863027471252249124661610764567459578982256957376041590902063094717149337933875929297956552689544875387686486405308524238857461883099953903374882725637082919482478472495505479519101956998409044672354521644786133214697196655772002328248075408332811560875907863698108948338739722589025018751238516543928813426996488132440482132032132979165433045395145057838930265991045425335382795660961706516318201676642870564334743304449904596933427125284148655929806424089131040739383409772478346585884987093911401320800801469572688900562073795007225171396829098883189646286152651154714508043225707584387628582109520826592161525853637325779049667920969330407340898369011897105506717200504809515146951519312243797833745190161988894648189314253888824828475028665727019188737167741399194328647243997244448475411899389642410454298373110486754131727246048625873344146254720635946657785649583462840116598304892777140230205642151821252940695591707138506418242708591309349536339608013086254112738394173621529479734743148409408408158865073069882206062034210861632080968760005546688933472918103349536613293123021085612305906459125864865736884831847763529120872379777446709345724371891927796531138627447864337141037157068315787524920683402065628800516874426484212630807552398482322985424515680057537344859587765672858491714514318587600900230315198119630597068420666252238224888756819050029674846416493062036099489378694979800898821809923194164803877389949816747698911494106957496334637169895406145264471253404398049326970066266605827309906396999529718452864017325596204455630470566877702032320466651354764611571540710802879370199929651901865271888296112626437634578234238413565820687484568393644740515262122490516493117010141710597453681560730881183303614139425254054057944914661683401571763862735492938885874695934157794332207390843884731393003105520194335455644215199361436849848098609624782083700100090124409284930711816508461068402283162883710654649361948656442416247133541198519753553234130240290898353539013364620000711460355921805110381562323973529469691081193644990246975572197821765716304838674165367358972062364613626330283357909353309203839684184780067821258403372531119717757292796380228879288465675590105891790021627176729716230897288624436639278110701292086074088246553416128034923963917042095939514143891067764167657874680976131419108556357634026377760651451903999301986708564967166352044522296907212192003076413261706381544875798109923795575152847994455660325591697659974683036735318282840785272106120817874350295634755586191786690500670099038017281578630999732338119043947109931027103689150359915744578967663288613861139375996494210769266820907538995797578830622134616522772337667986909901621995783895521415941252768030273135009561239291169834465810472149552308058670303612236210357835762537971646752879773873652810304639175817582553306714009492554884406819813492457587694423924279578377922424744597565101424799550274363659178199954369429302895737642102255484882265502736361520001786712803973638342083188909447432043028567045243373715238728870091595209746029163803837438828072622119677707678824381330078275363070294594978869389046795163832140378505290140724397805512202408747215072280677266043684847105468015275936179838042518919620567048012764591012230870954765826959059570365878571556850396251632054717973536584278071212075119392390000254779760341218703063625092703766254879488022648208603497670933175649738783817176942942550212572090720359657257454613025537438326086495417512222491647253434892664181155540561539495819966097354559224092565861657195942319686677770846641410265699284690288583587202260148384417884671872423596380945482531516030092923946233025171472319469982744986666906493644724159675390507368920630403898582569948801852143899187734880659023256853895305421295045432333824878321317566096453169476466257254574126631592217214296906853411779253429029211789517119031513039800218910391704626626667976020150889608201785731998686333047943268776747365018751014836973537743496970223841825760532731880613642354418724104059605465071140412926380236755142369190907924029244863433997387016485112277506131416654373191847845710545885722543469349276555641605669983030690421332236089920899747616107729670768158248726937576504231459619445824530799947100243879240478390769286593929022465428269466411683388198153697622386074055559045385335987348296273116534984185154293425192973963475641019414679052303824525958841936556888471458640275241274750622594921812225051329576306449924317229667388880513979914253748133829442391219636673804384401574484684726554159255054190694078606477680417349630905090582745273146725294334835878203144280023172262672887189432455577082157847916080200624052022349852063235048596257962133305529250357251218761659694442228873993414578371287548421098574442529248738232408058307401841577392949709866760423094773269753232088209985969402787219604676204461089676235242675255337524811689445359148451809896172851299121995007763112827550826777520490079302609669465366866252515735702285592202181878121383563977430781001016933566112790037274380114346259838609455970030938217192450366722267856239911720724754951435923925945880359550276858349230726453263752792403564926856848376411815094397577616630198957120545866156534363948129494926201332853052771493398821977069798676829828272036486560215342263322009444488912187439979054487354087282506517130825183323351019521813314878055352865176595850544450981962769333695381576705707507140804565076349450897615626560625817833273038505061243321048567057918217708755703190026931497507206900771565079918941791424380294036664340000227171973235587959909199013852409047525289647319110450712170143541330925739789506262545963306351169088845524794844608317311001073967709378628813989397012125701360991154506632144657743841009232633254679316227170000876904490832867922719314631870512483882636328664358787964379974307642702851796761253589751965067466996157708408829495912966319747955643150677019384944468668739775242913916532834215105937528283222111170308321086080140907392366263614844219985258406506541451399499460930133440667617884886216012820634470832534361425769828599515577011775026699517912825960709862268272824382858233196708705679112038799693975875681780397263677556236281203414685521718925699308750933745318501380019892952294719318619533373356442242532677279224877585350591015624111461529239114060520483733019805730578585807272789984789249786971986761950198285098745852383553328154672377605285704968922831781741908790197629133780647299795084477015760684455208744640053454261424519498248141463956268631792023142877312030718734947541664468378436694398852557621270677952577563691803057771786229681569084794485606739586106993595947999446521506076872702141372294660359876177855456638252592126881009447888807557119128223513423915135013956437468188775423888312005927463862812009033191342319595777586549224806917874268869110598324196469376364055380124636323722172369648900309461932427129266139066641410182655504045693654469508486061257582786272710416164694891700288407734568628564184572362404058895855789955849922642174110617209273942207154299006646624923931624490260099904060305110985487050662420027987597831057830019700432882500696850818411971828945299730797624230847570475075998322758591477399946059454954687631909427345523330848715061258915150729190992991173969273276246528225149506455575908049520471590819361151454667093898234389594023064645283031901993611332435082393050931588752416175398007944414099643019483610598774391243683323647229779769513224571151349536487784303647769158522071249706370388728835829881122446112426298526546201944382776129642996555799103810276731054192709752847235818164821097080699962176293217130380870496881879209203566016501701007391654882967383429348431307283389131663460408536939158550571913479536298350903645262887441067493278934406659413535584919657106573830550859482305694773201870909262221542079892634208056161751408151311060357408252581376544941352955170561382666872636486548829053590108103007691602765280143600529069874439529166796162139874984380211945938154696941806988569500953750050020916096520719919940067410737515924039089752433453824387179962730822657518953742012273739781087408411432998580000246511396181043262650299514196710953944032067653972157732348651209992479606737419240789740488106483771344452313073218702865724090943025179723087476730942426918649818604871152979711443562845288888586059874182118361862186582391031668222837003906015682406881670717567148654081602235655677918764631229028098066473912272188253524483116647527670721728808760422994617873604067826262675168403775909951738948559626778553775989344139414078232058075391886471842605709773008589186366993676928222063535983895177619545855060104313827526207219118714331224483293275791495021590842280939580039352332184341511889953908016425549758105152566074710376345735623502848594377577295819927640346032046032612309610928922700783922671304884722027270435739282702686607570251287324433162418015315314644306767934472497547886925889821745446205522958008488044477972027019745642566013322743049631404353704289921205429084826375400588804248775337598875760671617502274058955475956712527873015821426620286029383653702662912411822917101438013802121235144902446839986033204168752013821712031859662982176486075755124941590517830899581173112635585195825709354360651341220983644131605197681900111104948230793736579812413150664137631949317306488779196166936185428121036141255209176428381600057647607199985679647796654534065118319055586284187488893082156948934040806931775444126339040188589518269680564424610581983777712906026048208077353451370344660931631589239089132840833633912429602153414583752188591284172709096733286427482339449855552240655593400435303779594248253093519816767452969707706107499166436042405701040943046666459727125247955067950862874446400777130428912535884102697491456294870637191265287020568517114421076926947088615497243556425868100116518984503171692604330105257121336282425619147906385644870070779921118289212062836596710353312666211920280245530045951443027307756587748182170858451539348671384280283857390577494422466497847537188009842605518741337442664814166940452516611096062949717986368099881993112080247154844140468967271871954867984020051024336481110941651911690296725146262141862342312294705290955277395480416397321691983711113678774350267961965854757171019355260713317538973300894759445646886361813338819225265508855531578312733400691008670633361164043022043472485529610826907147298017326434881664184425332503221891934303253461133105513246456872440022482788660715442707727937545822051996877739794811107798304243071440198563138748528449451355069050997612674856692953966267325660391247253329957465829444562475533507419059220968637917502318116674436784480344806272266224232242342523125596135101302867611408276377893967515904130542070929118123583536833097522819144162930235829008675385142978708433981613218814753015147189947483119563605650215828435636708125778392902187425061513040342319033912365838834294610566069888655468796488754829708993109469980040930315359598564862135197952712250695045061136994649955349957104418656925292168443890333257460455909384131258102502146285803729256109646767056737541129833145701089635085713882717228723914969052564563878044597100245366609457771300230423644081822586071036379524712508845435062213935394819349536500807425550728429269300210305341299800294165333658105215005796251182524021723002681841620713112169378558034244516154723491703051885649748073568070488397825365012531352191366329326859268060724867746661222056825493300550207825281397826253076274044509452065875921317165830070547019227733934248985801770606536278760300636398003579331709645158232842983677593141942686976455381106717588428669704866380853884562637589079524889731556826134375985882028805024352199506780994449952101493082462032970391444892437798441988701892883143582617601697112756380609481269729202092667170316531670653301971098112642092834402744081315894403415394632158484935192913107182101950441003046428547345044503817410374297685979086316039243245489847415905971941419897961186598889362829044649921626972537928616514687605414922192486287196897960783763443848554252404586977324708655156138411560978283507401478631277036728203067218727746266533276082721394840801899017927909567673039813955078218201384857384175794855767561311423374765618197937333123465944758121732464041489509065486992288096305807577329488896449787042975555399911004743436694928333213064000509498098473994754340190329798503569021972414144528650393318793058904004072709074327589770699733166931992733925267287577232662673589045309548687949807343497604281640228095346549036779849535110630712950267182526152631852322894625821849012202224105977244753429864334820451319613214836393847379972866731253804650344236550849569965106432529299682322387981890360608153150472742940529239718644843414778711960795903259994647317281929667503855592219019698039253546219299809669532709141107359908302069219938932734454339657190413674754264547913257767811161923763027625834500816922428235957511050611226419377733845070294460602468905037400860172801060479111577105620878945432732559995239846642754694242599969363216085848321454690501741034003204726005852492176444804469737876061380652540162195146578946872216225979607826221300731453575796599592218884937631955135746275044673638795659577891968723087966540927151205142140259410706912216806343376807404985754544498092713092458905274984206740844897362801898459937051030426951517279955120396585052697431471162554753758440664947689300638013649736290035804961926090699140954880393164042793940611972979509034696235262777133707647947547503654003632013104238065605281402293313452307196913130864792692955534261475761253714605328270303703328320697064124126924223940233177434678940033102938143473069006104573073744572636646303666917887004052158875707727769315209934102659690455804134664680119235082024852448842739102134908878602754708248982569407340731070094742474976025449170796370166471720249952659532029536651959057818840986599517624686984141965705341625852428901896118455760169052818326113187739611680380393636498562910495812212550422626689710870930516471412460698410109362083538299754051996445937842090741438822998487215636234591598877295072842995340829639885931648835692957960432281645386025705731330991975849409344964812714640017982110524121403919575306166744140569325327038672886194005186749457004384153232734404688394031631010547058184579209798597210345776376404215713213714549135832929883345087889155177894573480381564797170241123342104257375385502136616649568677424283295748888212495311694432797805741287018437863602648983427763544317870776536579664929076495007067996386776802623076991796561980602869527737359950943949184901187466132652477327827691970515591070895662025834404914399417055209200336170657952330871017032600833629466910093436878425068804161252772775873003263294587330706709182542846714142615721865348297443146912747694317279668712063387998728675789830983870348951962435410966556700280377532485653773164026575093860953538434320922897643136959673406002308892728809958934061110783222038593056702671337339394631580309335200226803313358277636684944120346504464663047493081593239438570064503770732919778337107916171159681585683010652606954651686574985335604107121026154446855524434119196145126290473664070141376008341855022937927967222191743941838978572816101788799635532323797485885855194026457759176856788534550006057701206723346903060510912391511991080996047387940808618272607149835862023444541856219470639351374322449739942128153205961562758645063255952098957481039393702501562358049267600133958200563718004345442823170821406256443798148929501554000600842177137301022650963384000865569274472000222120391408535637094082125509967397837587942118496031066968622218607376404469312081516594455506652256835449333020311838451372365376165376365011730694507078980667198428054949859254176363666848735926658625495957984504056908119802803049916902004429117059260905120067048428403259841561247128121901868219484415203444288472778164027538716840986154316122144612594280648756957313855324594960887896808515973783723593961469633293075025653929544604484860908231857099011234475310403027323114574460148052675773594307530822786861036136280998884646268680459243469601909826950945153805788746925270039648683586537482010414261009901664894239582376244754880059600934542506181325387894295568225876411543221996783151867824619572347493791440193930326608348984062815723492380118650929722131433045175865112382862606430684254920716296300765849390278845986733215481050470616177176523218599920704437310149610487362302929140690594909761919734883631072534228601848740649759004635823573175438284519053111985118601973721722945142489353262697892592733147049268503006666989222608854555532225922978932694810291745054975710238996359568658524867536292003368289821634433671035542956900358380710601189091516934684184482622279127071389336240858995693729437809680605617187592852616719933763598701844602002059103269846946355785646208795045608204831443117684623722396796953360172368096997225177791827554740894913916607299916957788085767815843014941198794156162997789602271056387922145944357030700506560663443887279683742662410279708652521809971192161603890772754888440983313106401104290739313781889807724968581095375733163631283757738320417177186965792136940233978946135164627249014832825540987583615836830890135718269531593507307307402221315037266384433907523136689217139008033549420880648143997879635450825857544913359991542708728160813977752187224054432178243654806871525240307729780114136125869152985614691643868223065502122860255582569554388614130934486118771356840688884293791032338398870675332728185994476077768641773792720184491300027357253878188132804699005556285776674163007366850553782003956098477426889941100794234479714264689311075791903887422427512984576084845716397669598596740301345818165016209456147023232285533704567938653936597809876166260727065997042355019160383806462672674065255113201836010372577661386084957562983612633550669034524392400894855861293537851152753374492279739777982238882552438471544071912726264342565382985494496822610489643976214024979735992045636702303459410322886908871299295193924233787456460786832886311122076934103948963186254755932776816777444660605023124082174764571735881456802792489149884829217397367772696798900780110566951373657706765831659503256736990705459638874672886253343082284170624102441947187810711855356106395166659297802518405751017413464675663540642605293128623653163187185363374832172544700236331547921126027301885143969212182169351732048135969901297153419499036374684747899673939719954265587282331619652435645403158992334688088052587095949907888767941288011176623971123509812348679713394599942143910774153456360490186728208786171133766534933602925438674965889228298770788176278652101010616417537809647591256997829537361038069030354575489297927167057871392144942278193089473282004667744615854100322586326911841148209367719719982202813275705371754578955612509682740965850464134692094855617719083676276861136896776744385709745832864961746002003015278521529544067082899844841257606692441910728793309901397135079142719328217105256981144849715213907777486818515793969751490736843570067216629659523620209029659167390992049961228444381894258829854974064279108860088456060658761674541566086032410284723253050033279509093221368766189839803229273078984940626570958181288056964465484291432461461578589295587623741224902075469702367666970191736962513552616445585788753013182968591480914119936376344008308666169249173546299525693190511498409789858225137870953128086734520624205256366603894156246564299380529985963704944855979526997805616754835386683612061629879186615392441350774840003361909330585743522921159789824395250060372480982018748477002542471191308731928876696121169435969320104806836221032649307887181111774899341756321152847743497369064493397676260619277138508164936999265600193956811784672465675322099130522204221638874304816257062706355761599957124938313977242068073510975944979792958559721106058504603078515108795963980997908076048557465502620814706521928449189874916300639178641960462963271963930248934753630015773418093549597692058040167829255600083506996141485097295499421048664333650913552515352847895585746084591775356874086996889600301243922063662379526651885669498117137821871119235556170282295313867243942931620294590933799155683525703378581918217340621431193735045838432691408222481578542453220879615555341645618086512861807175040163878416152298074826002014586701977855891452079168899619651306417398044299086762772712686867149372458888440795425641943831219928530354824698089469528194429920312176504056389351200475732562135312905218533382798894357905464836259746918330736114159088964377979872073143143266734219388073554896979786173361057385830269216074423191276525340583469242609464514103678720767297948770479500103397337278751256228140071002604705868452928524708012182887678436691672909819628293787058572042567367938364960244237658429150087241034657964972189887630226514106847373222334552765034888286882197093217377015301085321722474828852120454405729661411928041104430032743150562806152676634224773066219222116814431858054387156566740620939986421948761314315336656348874728328876863548452386844022154287724228184027128988322892495613442973961736600124255047750576399427064240895239124283149850968551363185091654308209755585507065516311146393712279227934433277137541627119839146667704175985889918655668410305806070127196761760164678103117207909710925035702689690590270717053464722403840792620537264733219242988316793077900381106963749514494493288524612165927260523302926374562869804520217567709253280375000223744116326261643572382945218182167552029523867979291089037991828044399657967046788652002814375307685736543902461427883894142538283297252419683735748553129929499525177269750176912093053066461420262624399887147322886952374113452677465231252040027005149950718347100770806853492154254198167531422374274560405739157494856828249602321618546508852854089255363867138748127817539884793095694941917421768006556684461079147847483894665617561547442478609411213661988338575435690482188407144596216182855595985500649923348393807521001087412073770626204058691530110147304502897841677517558651800872578649644032264494663291802452411594463083915582541364565779768549455149768976054370391582385053376207897140195000502345884953006952986534733138511267275435124918373010804871763876992406215302031157994394347432231458182917228171903136973134694478320457200221992749027716433281272767903690878450779768426191706310308450714729163106578416747729853898358944992499654525746864717559235325099504918224220267632884941184026749068135158885440891326324419059493793696196499042811572009391568655303445995121575420396811675112384163245840630824760041801718801819644828562380570183205641753143183643457856357321002317481838118336434583186792731904012756530243655026615148499961248002155933270731331371679808179477701739848679984910353224744074598749352200955399540219467682659349815252834589604524406627209262787136008973453813293956221259862974986011446993074746077553961309423878298149399713300090453349755153308785887109998795755105062970138562198217455775778753525883622716577734151179998440111658130472652049619378229211064512919093202985674369508412291381747225809875778716254803939697991160182771469288923312008567672677308898467582511893375690322904471668702025843894846093910228429951058741545626595868206686640238387490401697678057613411220961793018962869808067000278762598485551880885906396841565781547872521353075293818779226012613556753718432150113018532211047408499636530585442624244506064544166920813243022362434179396225271421526633329880625752482451070897402984819433974426569320247228063786849914717210520305837322700654662351316791880714539552056791015516127001048375924375085893672120607516533981626734153561860643016090342154493006416561978358544028002774014466046806742792346599386909578042492677362263613043759733849019219253637618897565647343585244292121998368146820037698586964343974949275505060983462967909564624500375100022914025395308299671326264445967706754072095158580804478130340610697744227432300140518256209147052989305494048201713178169065899750213744844594427847610067470067015949605063103654025395762653121639160783401954297139420683806336529674424426065466716369742923228894045959335028413802214657615234072690784668503633776781477157702993851473003012489577060233811767890427601561402114096614423040724151807275015378668572188415930686458066894467448363435847702263060186086687484694297077551696018421014026566372464659290844311313815545725280650602717642069571542721434878468185345080007964519105688312351372440919583588626046267163258180592660522664727459281768091091447798806272908062543480115935419866640600832486429702522379108569107661049932210674413156947376209799073745625891255447312876031324040362951689334924914347003507488601963109287320817684447218474433883028412709692536192392515278072782496681038636242854421155906681037271027886013569233492901394458960884006107289118670262035743235733641713209023135590152086969732635150494013024972627492099082721613090466862104765017335843308242007674978599427918054152908038287045066789677556110777942561125976614882406989870028666773656341086732801591397089742449627772824855532005794530730923510977718526840931246613370470791312816876781579051958164830177042408171111429468780883050970418318016790964636634290679512083257350798014767256936285577345417733812573308517498912043242638110819529659039578174923665550593773453849570589708149590379729701957286663390997423056512852615126874438335449124565630354321616953718322444768474753314217022279147116217601398870907598854958607932282114995141752455485520658797560477850246849052652700621405924367731417217306314783819656152545489504347047745192739419289695922897589953828002447352603631415445293648911239518321566684022806224038522716768747905935749888524805757423315457544776588739175367286534999718693262470360171519602564628032545589551627238670075429197750588110908539055863439834114194935954393955450558038156615002793377934345811037316627620624642942118647063555183891857888248992784672887739088204631144682476722053053631339574823570449275545992895740135824297219311466500225038542099887579976922355489989100582458396257616806412725925848899918708432681122410907890304202081057898786315864861711133239942280117269681154256600852997556872474337342901987079011515560863884125443358092911548581201205425403036824462161108951808331725936753526577760154550743891942323550051948851192962920731835993010469767096903612756279573233606033853931682355229625937752038175378061159409182323853562557730793535649159397967492662983659625231374331385358877748822522293244228904212700688072229730618651268593260874790155605281432129131413388529439058214341428938947036992458587775631972005816178503685953165685339653579252692731590558220568752609187721035267018670572343763184962738991849713096057622947482369829147087097415435215102272067803759849879772209597731985111153530951660419920768256640222847385999599642847190640061614116262293031521431199884084398077361573596121268922181815080298858518822636838430767439307064087511018886210410197949968221718914170462942205852890982187726811253578144439515956433891838151181590652475328464427184531524622513159648370458066169630482421696990070143069825706727695608698657564453071869569547317555328955324535114948298448552370878935360242673671412661815603275578381972200140733973226807024867066843750050277086912896884794120657128009425004313690025071328434589039160824288391190424420230759876958877712654786716826644447470412858497264484897866476329342723305866678644802151026419289441541149506319584638443796753697094514448883855667777330817983649819898542874771687520552404711831074488902750255528085613951358858423804620093814787605419619722509434928968342394218761893149283420481433980476417726353214688386056022335605346059472264176974113664867334934142995806057984564239033469901928332074098988780174037111294903772641185427466809305500432645488995776830434991644864965931564384625932292149649083754939784663432404836753648058299529608182211629797579770357715287849130003486875662342410322747509692144552790748719504134646115363622756425740760270753068739156555996845999105814781534459089528575220109779764039337468456782060052863039049099262777806130986775270937211868062435432942721026145280429519560664687638469114571011010583037760706151861909087861379163796481958804633650401644963639103152768720156228520527439992518986231476681636597206347238423075040440087895358404965407788708697635679839094184766920426513569866742840810904984729414463719767863025022579214566762577321911632092726900896913811621952478195638313160623094473271541746572661671913246464832684965828077565110364987555736380080857709729310275719401288421287419252557333391404424563550219286553750384187644313122698470661053096399448373880193035308806458971326628060693822734438105685194057964203880454303089818806927737780568970531782164639420616182089439057957146225752623562315043275312554515898825067194604308800017795612447777366856509938320544401160945481690686796035780988948496352807674015434467025220295744854078540209770249459559729602021443509373667082696312285821679462765265049829157656466649577700165746661284937056023434673527586378885814292950459248252512572349985599937515715920327509218195765856221100542405498292553128519935108737035320152899639121632688205805435007654411813840952035365264776709481568250523746683508625184068658565784633703802313415066542311619716892630084289853428221014390898116742991842343255196399569791568717829391922322039500649282540725823394987664174030367947909825661416119321637956487120733691664172383092166012484213335392049383999044933029175715317518272105298838222156798245731053293623223219057779202682877271586522916117038659749867591160394476058628978177816604662823946092871209839160819017254663822996473118841317465660482776440746981567465845731925104282902796271599034842749223971347517667810802457215566369890369739399443743194232508541934207539389724193451500167740388504886371189850598329752927536955787389023677451365841250709110559063354899790990052233360521152071926699340345211123063107384922478837054980584879548745971951024421371036543192820192320237395298618138333330696610614048494664120688402878361680703996270532730008870579486885888112328111169070094242199267014556954011971473041885020534484065521896672289645268780899074195049018042427897987876233442084627711144012491993179356756832132410056693830200819412173441488042754110724047227630915740027334681170473145067796772689580598999823981727981643272235407379680648658947710300005251742567364218218916392281415730911939561323292233003029721459218120692749171575480241485747994995835337511820046584013954648225715824067843012045917184441768981265824902311430895702650105979277932074947696960415680031548861037460967543400301804670036054497746186532430270316846876963597466084147905644678115058930528985497301691836952508766492698321002118995979417738289619759105633893477670233211178354928743181884406807151089913163982171992242986393406792515476298637961768264588948470541450724943229162272428177571516825685858077975609709844958460662496835115578858613017784997569467632820387903025567349246333124973700388831512389131590666483160823396908469587235941943462026984744975258620176676003671575523679314592383764456036094730611251136011949952523396527235960373638773544709744711373881494974615308791139621600838738538711103762638164485141065259863533341415381588780095940327081374953540752533157017947801989467811319933049498924566809894001996850010764985603316156419763057994232488865948639223034214292520613363719336626859347802621420485373303122947729959703862756604593556953270343112582774135357649221227397165136911903819637297862801352302155129093131291758061862145604855369038706201991604527854125139834749641463029336678490587840034993030958797375901641889648206062695290115684476020362923261088195356759832075148606338451029720161925356202208474536868569767730554134022260656688150557224435740996619302135237471029572012651041696464294584495596756786725254993035766319453927184684453979067698974967338318666064104277391887814377692740626825779656365526058004533012722709920461227570814940057126333596893316756907028799559552740603890697719637426028176769818130706961355493000135974832071847058674078349890368921075059856361338504666818038547945486439023889877694669725529539466335501525692424353249526205250049653653590868108178695169507156199299534020042463095482528297225646817275636451674815888707215613870012495395966994585550337140404587838261670392578461827440126551888912492159422046134938716726745204735421134619742826648229834362807423190612363595235639419866314396810206325433795292726267333187143729711559131552342144684801322228294118220569106508253970650212467897383861782554155143978366385338077087956937363037787273236327628476840433332635468931188716050219620558026218440588276691641769466522520692827494930638708266728834682091559079961071969640759033394910881330661969589775551270384360950231294018345476064373690285327584359175740785121333188333649074301711268212030908836120022027402278212297344598150109332981429557371132158848483236882429722496162160846923654424389560805719007259976457172761542582362242283838718122117784530715629793630455080187320391901121604876710157169605761097248258935269068711650909572889309009245441333367268642389278595786174815637924333972248245411340723714398928699023439578742742319151190850856962006329775176100546127780186664974959970339922960073071375430773695440274023706001589955995760964317240158657294865672019974283928684126046011932669835595735742364839685359583834286403029503304319711752076986232515713145488235589230379371435717456510182490412277657914856082766480419394534281713765975558366541625429842727698119044699801029566149616127397204527241464158997823467240865637263423055101563195584531284316646366941523510111459519777327530034713061427246743381082806293022974317048865764943099715384512246826360284467710136499698757188579667766217368691123083133080132025038305523149489196382679265387639011820103190731122739688322156008244353448517191601179061545078054615393076745379858818320037183655366738406366196810029586845852267139985205376208278034454659285234933436695537621074736287282442114873614026585788118143474579882578575661724940541946430635711890148370204258414979817376477401674895616439625662982761557071017261397798059452845086352838442405081175798838320994056709681423791078468764559066179840468536808959571041784989261928443147136948037839293137673807467649011218294647740825047662430686562833615078432267839745945731952159083641196048421139644677556254095121795801737103227267812519667987889566223878479279238808479499877850805962609440537662101182586509908865197009732985171104895537391527023459630164013834679077101546077271737234783377661974406399329431669385738049335899142902176266739165550003114817210178270708189237382064061444124132961012247166801168099788793982988642469683851914019596607788069898138485978166010408604485728824931471880537702973181035040464743684981915614669506451281316868433678082628630180353268976901161830635378004716245713929904881301278493335846323584301558066228750273296182987076289427253550181742305036546431728663380132272529195635184025114078271183523009913302998274710731231636535022837922133755313519143805520354314364518588068313427216137201799336233883733650068471627591950929642481588570995948368905540515158704782932064533762277313808613498661363440387469550915971397168825053736603587142963313525246607886919585847786159465179241134026103647198980148221844135555710996598756482066853611804681118945423570483060942803799134154167321041455121147793526590970125526039870444867949682362218471140028619255638512746637515357498844013340928551303532659245427752455246533234731386290254298052079427368710143532841763440302791982497103166082806805174836128817747671209753029674750185836856425452838718232730108214927109446781060910436676191746072036441776941371680380119070423891710136674924317550254888710417763532416415512042892436786396606571036187631938588174593038919180351224414838809169562810543943761015984572097704689871153685783053076436153116437505527452020549630387512890780971566682237442663299280713817462583668691844394814677101639763703589971317044650989694674570621836428461096263765272272497929187496960815209112380312014949601178941540101946522291619053371492405068606471350014663423743906452811369673045123287728953450545009474687616824184836463896172876483258739693536325914010344967431610469330181581784145159822238256624000113368782035677002634537743239225385286458762945476813562964135182437692533103492491128428671073737842177881759400772614426398992009594890717945794707670742834495964653710851128531491544661383220572846895878762243933245712899785307886574100628917055448571378878602150742018363012285699430153260099357556352064855683027375053896971346427228680217724051212243596107395789623520845010978589407186767120521253507484243135085980231361599137421773714990503051194775643040120152545515775692995523809635424845449021584686330857186628824071115855668369789423286569015245382050581290453546283231507380157895988983413803508233653299597382569103927827410983346062414770433081493415084372062401540063245962209617452533843406776205123484961959647228889342809843063420424311512745915866987177726533495802663714102113452150949819412033510319566434541754014772097050160349513240562113483471823771177078538814164168484691918122631957901149446764824907271413448881552542466506200259395357451574272691277754173677173390410138467894562343368524591078475622333730163072997052482225624457588832648684066206167988186204197458752815799719393610209260406672546128201316403163009044285585433218708789394523434253315935851985453522554950896061432458419535093143623183344046329210161556761176390392153327841756121760986181980852532223980462414394370417750089388717257919740451685211346640135668916793479562812208006923479084701429582106346262233078278802363055439403526220670017555050681498192393671150567654949976872723056952706843278941676024717643609468010855960865310877920638528569189987674683459173485265712644123348005009765116781354590594979866922510829298802816776621358795266452061389324125069409707710951736446615964596077882257705843587387807025534533475521571928058371129447822928154599208047804815560810080996990762630969782542827348665049877732643038638694566910588026181096224531344782600843849663630738611005302796581022624384053327103182103621874661953093970888458229543210718410243058607843401330245353382650791157694983740870999759278496209541085821627522284848398150064683461515118434742956155357394936008494700476218829249265555093198592890514017913490902813248227701248911246477649732172961444019323267860977720009921469235155163995111939499026373698436845577413307493990394430433333649132721074511443121707516987894626366507031073124142145760334437914236006002583578170296391463916648987150220730540434379142285513592366436269992104708272390891442081130489079545468281310897015441965455776505346849680771863224322153039460237804553662851253041854933398787379215452096098871454206961323185282924885180894478956025939691423235774487162325591125503041994198353570390189846267598285989042772331443045964462907879885984347606192204393744918700105371089546362455949088363905469815703808275983775987436394130628544198959690495087139226533519632496502565814026353100775387540960215398858020471193925791568237465799397409653888849685023738003059968040448612586703841297623994194795102462270733751138045174939730277851714563574876079135437912452258906316422866923246150721744670169103300534838582019169544623220302715703898220617705306179112506294136985094471580972855963483817517491409045695580293444303189872304900140472094158789081731259663883139940505537821070180818025986123368630195671288220696764914328129851439011681153620462544041008021260024256712088612101817061291505742934145684550531052845474827526983495904828037791953701356256657121508190899777420077987774882468448051819989523159409412329346301652217800412941793050194714462620950339422637374304701580632905127884382270147607286071798704137262372743009081988867962859551682362425803894687119119148979454951325809541184089343173172847372875226385472328223575790886304948823346178898942282982464583625784868316408111894055892308601576086683529573916269818263754895512296447026097206231357501461154076523419344165914755911278950835928994064760575884084010610115280388774554215590260144717547889908618671803714053049856298608063141681278012194520596683466816183628754947675148199520227304241495411151474320202656255194506973606646421090923447412944042898356223632678121265041944819762796560329787223234479313955243742102924147226534593204531373899269687755069108083601223256736956021981707190463881275594275166340031351382822681974398443072691158712199403478096800218164465817369782866743622087236823323352229821259509798343059956718923448770755398076915271035484004688035467460479496382199823720003260507994556342267020660187432470136110979718587685545474365902552012768586477051339827364724611625302847095116781678615668357051260413057506985679057436503578596354015035943400812443073330044109892079652465694346135246990504720363304185931886707352798437599435037584998153885768539267626781564237163962298652086133988892105150109028940769284161129566249163204469092461117571827193699183801139731994285267805426658421614131421505907233252927367835949653931232334459550690290793221111550257548966871472014866545419007349185995548876213697160194467518222485098825691827510228554908383051963625501758878816214614368769553040205744373541373246421777713360737799005098929488929256345941168837075414283885223357150214994490149964117885401680894576180168971365078138729905824480890773806079722305620545398855653640747917323569598308701213975111316007583474812676774774035995735691674727553921861672663110098643164568396790542272905887842816436472935830681769358577841948622153950865322360234821937456785547344819898945709010443658859314370842819009187701479185447425002220618752252132474084767606824348838143449672815374188021056479695227840555509530123062490246703465479188172787537082147720304568627642342162628043220455104036488342081823055706162104267821808962058214983228023933599589965891146993160946165987265788151614488026430243793527159358829747626400205437581309224815859376870471149856342340823068579204895199817553833030326131547014820838782278485257390961657205424210867565068779610891585375458106181425901411519906775351088259022293168840322232972985872500800540103166555337135664435468429031555124161289516296830346383197199099568630376984494884476322138478468544079037430513011540529081931378678915577070381139845136444537993129608223571360083219827909396561127303989810025203407821689780419443369086411298615050191682246466873519690693269314309545466520814954741403061193622536930899888226973052045059085551706810834368671421484837316570363467481578947316630756262233564023898814924699563748011674917348363756208518633023225918486681109342056210871029338731060716057841458997179035223708276772018733621733396857064632511053476565347204360727423967861720227664015782153836604077530062216399924801752062474860450163761267355284241313984398971936086779851431884389633626608028461671865293997460469696181406611300177020706576622205594367165057753041689392891593802565114816174581473608617783248779657914345659548544876637377889699676161181108402391355048713908585517318143377087589853326902173028903602572756570503134583347715355390416825352488750380797744589196083586967757854773963474780493879856222870962291931566722467686383297247646023414399818317959099176177648373999921146756811321771581387879907648112355124666115984153834936695439913265682367320386033662743225661614635801781396750612701621122125879858718947377341615487400556902421708754544755281449177369096934857463625474864822009568038637112590210862246904590315816285619442692172788897843920455504486800220629837190880903221905716593086361052820646624561563136247768221069438394252272504113944157182659569030661598324491872454070958641247760366029482078069942072620194105960251505012838218019402421466413718968005553481883029235559488419805153947512751849938635080026701076591017115499242063733649246969309402191312721169096439126876390679949752907013099784380835224649568866124948014046367984967122402407761231901937507080803966444332817233767804477189326579617877177042722387286566260674482487552658404593832207911669507586158554003321053025037670409097727187928471397154168247628256319367995401718209570982630144827642563520585850194455223098757618978312744148396142960606532112241167405917410191333329856934346924079688164200405317870719707059469757683514358616999369286630972698118203856264082635864502453166177835252085815538852032839193878416713863274875926534580373771675630118761503591375344037135062739750890237805700703696275736861159924182056069821359958035126120559040358525228667181612340649835498129409796657320522921409854258435363915586845967368660268052260279106197719474942951874566625251431954828144392859587142664646715227802819401848141491467414083103057486138415268772846896482018249205113816427112920646590607960530234919725317731894408307346812109316033345416148722552183306529157096886408663399089918303733606347941427543437101171292953857281472235121259183226082719877940545853611888083979472005500294841057729814407725102647063480051821566384777690299893351504186712314272935493672440754790705099891409945717647290733823300802483720475495766860319458166092995074981465833530681335092115174376623240700295760052972949460123585480731953231075836517811262261948088134143508611258048158556391217441524305030792818463013421738787667110984679612044412595104363465016615933345209436815519798294570162313337719274543535717114380600270346466480840245020873841600958225650522064395558025823968908373156996267212607049982242787528825955119687090672015672897256137112696609050065171019469255102003936083755626232437782094732173823630292731331142893318858526906275130708669160739976334122672001625933917152705143962641879771418131407807041577324748990673039696045040996238482633105011215005432556999278210116009398790803169373842672220715993058617024305447113064106845723222090940149744584793795445571950980523511820029506086159018422926581876760064181187350565295407738850352147428167726254239333879123015782247879098798980958793254044445489950680541811810786657973038018853836983404337764237488760701871760742340786922712389950147951597731729686991980639111550535359190909320483172083192136827816862494558544580786314296649049430509729970971232845475820784207678018593914132747920626588468266271196976854616761313876522177548737333669106714925294198330166690172057086740625715586213360363619136176748584810131501735406305937970385843417679950536151650398458780621011341425299950889762328399038666850955041014544807816023065239142978169311287407773844954884013856227632058178502255425513231157412470148052137302370311661973318081252718459501779228574554582570893266615382715660191416621113601896489058445612462351803861562717455485318807066486420751002901768128009605568017586472985955402835184048353993838532403264391550315295424666978891144714833385465771725715101595270144814933169826217322923823375916808673078443647730385789908618363056510695745627986610610722454386377443908482103515613826558591506415791239112524428791782443927020781395424846015366657780737091338780141517534971501100716680356451174150330714620886887354863250368282801567521644558409579156644253875454242556826435104299627931709907852071486550899160116673990501219548691275644392006372446597882525151039620986708013602182327934546400304711573712122012354575282685381723937963016668342918387478981296046350820961825809645283896395255090037676721524084098518000648632051122072004234261627353039960749509166130522938011873816272428184619286148361357063106760513893701321368847146032270625047781617184134519966927708948677073182911120320435301771117499819171422883419415290021522671304531912352954522366657103642606371599447651791139865579478363113858961534346129517226661648536611588188573221219576942711877933442161177085700530668493079773939652939599183439251639057145917333364936666748327136326098230063099079906039326274488432336394495252223254592504519352488945523455740368854315060812967180440987624598436069581926717421425159939301816456371959860499624572770146622366153302448651588575287740213926765009637269018879056131652468857778916198167222468931686032980510737314129694897200985794833860322173554352197214615945490462980912706700454891942117223477128342014464944283919747153337490499154164938561158188439108027638121158865008197548410726284473803762014369101980681778422089525076722549529614076411450636958495425632646722442360095839062999923419924277605804372918032063932856478503581576947033043256272034875138914054865369199752897991333683890400655315320715128341363117158923842613054230269767869121761717815825012480452534176455989089202545686142414778840932175775743071610543956303484534055828390700005467573793170967014937622020710651875063009283968892707991910112543927152863158776822455978119134300260601178581490601834203125728229155323556938958494688095350357858037785692604624958938473104557598197118746171653099583614980782372949667574261265528513985567129077907628472639929267188882737030346555406770963562418645789015275457462144828204880122302388451370986066761575973466766393075187449496957135902439234525934739658706210713621920028263748439115845367486638167973784510265950809370755291974632976790550971053602764308524799462552323018173958063375938874100897713137802560405949388899200501244260402800757855885216368882261081190634623815879889713418055279908793164435993238485133567789567282492542977701827376971490738177599471149650360144053980258961767222089637976053400354531895793252501584483519459180599277562640541311348382255467428845693021608844153067405469230327945271384049545012171151567893362198896924439759720548331645696091659590731102125532444820045657734367286735411757783723332535382061190675801236929585095864272342669960919062385929879126692017841440248485592711932320296697627124007153493113080054698813204071021899945197064634423355357634166868513668818797944583156042973971234428224038922803058654641897576743645159776561163570245687711548736080781491592451188578547128031438175787207337412691576656623857548205138500328443987960141317130764771789774589204638204063394454390306198089707144637969303350540266316368929416504709693662403541095215652141971178009277893429496979518788356214212625074308691813350117297949703648685416179503918370592066142958866528390379305126262391894872750027706703205832760131111647232890111399335905324660388241943538508511115518789126690671828284506398713391147857315438961870863722138038787477295726782305355946230091852228583124068715933740862933057005755745331958841149925827925743609014575180733837510856519858869285083458237232167534810651662567437602842923168344006651934549772925223870794932323388790168189338265577127525253357281128163060706238012902263623751236452087608587215626219361194299504115069537164376606441988001753821331021247276394426827489598010617838060556846517635486938365567701819258027939292441610962507153873894894319836174112888636339334963204491817401824801805073025984695786466938763615454348415118757298463370588589157034006452211106213519106759353140330667885583735412747916650618337137719652926237623930914496511906876495998051566793998028832227744806315271502231579978047377976550303514391810123347695834381606448415567043182959521989956875875259657612717787672525773003649032046556214637707292826643466440442007025345550622840198031278366811118406531220889045137066069000682739021836918163140352452994473199512092714452348100653355506540838120786363283279933073529304445263603385215588136018032761283025687752151400431149088683734022243453422631951557039352024186264623934605607240291331127872439787927392760218590263655335295600304726802969700541760683663461053848680570302967211723955020679428461045315651702818655951697516110397772551073293068637234722312737579414960263590088871884212631363995626718430312666112546109765002200927869649071911851635601267471139329421355277318331643632670114788167674099887839834566385085965719105569385425773319947657323910520375009171779215965948379988111919800219667336571748500411899302869772254569761994269902151808043034068408497537042271820092719756148383024050878066068439115004504338194797552348895489776054557621155730432264188877696961614647464433223421747113668393435579136084167742328464621222530898571569368019135295203473118693103512889811053867285114644316666358926561262535086221126343116941061969773455311951924896303235462939125856105549106394095246687280238719541361594460069450050192141427690841079866258964423953891355064450457567978748149075906760920262012083567974328127940485229100488724144389503102824135810898625767352267349634693631674272752596150731091766505258757356323611371997084710578630146987022492295662240772936827171743105429540337758642284219077805741029307493063766088653691566394001005863424487350585302265620515383546078578257836530764038936007439271054200838262775887475513009394369039689060166902134136498462431998340486146287647628420742867728306309864946956087586065203188580301761126712002708932028041715340335950173600948633865566940163225446012429907568086175965322965357481660211447174624369556158492074548964729332540903415120110386570200436272811592004565901515500105184916804052039824923242909348023292125895050637904577556888273883592648533788604930443754832265614821052193686745790324145929912325269274918059122748968260043968259866207128852043510007172596037260223157463123478527571624183253620427517566492949225667504491882410508671837102511616336528237653368541120499526571614016989719870014403953326062255572492238695135683013400535827991327652412656932089209859853233649620721827950759081038289185462004934717554432342094069303476633790824929696998610585441831878320229334291178731821538104892121109422819785367411720180425236975157651411426554800499503791162645095306699716690971011780874152946563228510133439241040227726892840604800969666980347669213834685399676085823928786587690148936281007852180314333008340946847733880709594710794386223343976930904723815502540472212555255844698867298088252770740962430108181102839974415400127777035299527932975638689892915244101284555242402454150049311806535799782386449299703163913267846491929419865690927764577004073083453023762736684192394948817077929921958630456867760686607647789973484375146946569734116896868689948234392570227150201867883149838991357021382915935410431105730426749029657790197595471583104676982936457630851891807208023824747505149995599240362195988085949238094794123454735836280332312722264735832548672410676515468832032413815238717608740356188712506714506113682931109077424272480902730390766918752376073880835471447148788650340555583654038196157950067502742354010500956508500898721546321160423630288818285739217159987765055838742348352258358191851478066390681847538099573160205053298811190675279234993889275178855611811086979707363742083879102582843112661928084162421076663461828178675117637560910243641328058243483372462812943623678253722162437013697414038189205740578005646955855649846931439996639628214096269344850183147000609119509335271040574958964225940067531774115114499126098258097335591669534652665279220155605571296079197248444920684643382358534213442328268532327157952561762203926738376839002722019957408178048882994128324459109244547297546379736702520232582690298197195081847338819431147694075387182391719849629400568887848736990295897097436839212281975633364783101392974415276930162693818885206299944419924108372702451232946271309939221495611934659296020401955459222020753874712389508725782228657680089691775495341791380233632515695100791036048496960479338243840243828237231922416886455385890323794114409437096486374588851464183212747559043740495965705497963090333529565000027545488748823267604172238451230390276645558929483594107684640232787560660487352307389038598338777960069103405926227972893304693148805742020969161358007139232045755920836990842253310840437330408909775483730651550944365376543914676027068354949485307080221569213422777252644761935908693544453451712461740329499742282204530015198940408650270085685701808339638844973089574055523009177040410473610859620219507826321753316678860111392826927511591178193263083927620881060374801425976669280402463160929513234908314850152471914011170475214230426670292184995800663922705596803706850605365084664408426810863582528614126553162654398225855608847207761587416504805318602916191383874605263441374602181371436759495160153556770582106393436983899794003269231040154214619479419136575159193606641865786144356385681308777363179237465646099834991289833004951166930000792298904239877903343190701724111005438408092033118021371028669869153983708030394637831580524076775848309716130652737672241303848483935622249728035507776245147063446313950471535791781608931887423680226231136642515943390849416210361693679547247805982231519139956645865218658747955245122654221846599422599818236720769731818374739657534810711258102049021133564949548322036775771663489053744208318494507344314454465612280813388825621964737826960764554715243657809471739714313779551106276701869363433268608112313133341248244802188841658254419137468628855004950584940976292965277519137232017284855326989645127739461300780724135296631027721538958638653002304444467798582567278969495346116334609365912763788006098371278320387736751017463830895799893237350515085272660343910142943993202433486341404254646717634888427890679580931425626854756977160125419998443380747348422781775801789031045336887702094208974112233022935559854933874668178969318493022556125792705045718222536063009675128156634434710948421814985732333862900593869767042008604959971997930262658986989186900946508820643051170382825111961256046955911260093454221782800670471174223233324832097470020454443181515158029072244396879731383293473304285431794138692812151614386661429671418756953751740713519448770574550907876355035325760724231898730631224644443059141823605573564115747230195423578893288087253602564873241378750460531687296387951405616589753930465315024713296962687643826931989739733847828014606212372526315916361273836555749757294318521394829734150988960983583396357950259790418758229955566777711737656429006144856483020830105038059619926751792450746372568449916733970892388623626843200688708530756633676133247210524830150508202812720143196054876318755153160994289478381188224222066174812816042356306019832778666709868367894127096311875883606518630092917880763892251256758982956831439661749837099604773967846754565958471501399734088548587509800369311350249000970172699429815438820292928787299505181680759103997683126849151179001945312006957709000504808691047419253907745487028496619522361242219770177940476162773961176308913209141946046706934508079963744681220753804950163925421842535898790012503705132187235525603125451124958034816604829450851284320432575304402186726859256633941837342576261422648359628587686485235251413097230713298373389653132863797601207634623687645524979202046506179964495761442058126201086596248197508231427589466927631981759288359103962466988198055649501238381048338801423955595876315715047122773687357369071564043372316623511914160659025007397348285629440366599373851018104503234101175486736998863010331806360380193354339926803843820212821145381240508313349602544154651850636297597123530014738917846446129173254967208936799737293026614167977860402508574263889699343295594420898679058377025110114458052086587764485944406289008330374098804437120723731780653410583958414616405143719325230579094921394416541608852346589889105245729937821265325162047579140099073909686872791681514776288803026350246221953939323786891687450275642046086095315512351570574438181596140710687331756471931738111308613860722954814287070262191903778911072271546261381299470496849967758887937138797141932573979457175427571712168366329820900027668408651093227915337440507637065669819089558449090409229674225674587203257826539144325462785794397705812265462940221140433546403527836540255824503096116638391708179136510652776016617120429075303520916562685880329527958912393786468445709558097449322492932901485479285564078231332380712985884433145972270893770835798343961262571448580845616407943809663750756896557590713356260266587800035308568996880890517161238612339076924241315213691700270454620803610934621521472949784440429797326083604067302143480982008817226877873071083688890207935393181321114652300633901262187612815169610583617405430960883156244361165382677856899283310258527026941731978147809255329805524243664270475771427294420405321736396709014899854943864222998342882801423684646423803604707170072472697717301344085430878497911342749891874084862518666455766499546154460611627295283162668670281430854570031996586535217048375622937552176466727828192181087104119695554101417479814949001509254587737961175184392689616082088465786757708908557503045032221869610923743208980609017350982529494372968747373636958849800601360717678415112461878311627584947889209932685620561129916950677488721768268384969486027386535174721435315545838771423571597759142241038277614048370890288751783511277893000247961423611171251627729126547535965156874074077488281946375149843704816114960053687466442772561598125263739739752480548810751717305448492379846930147859867754303405917269119569080276778797978999947191575679505613156389522430987270095692872681126983816952320620814893374510693575194370402547696094070392728155629235761509578502942801814159521196763573469647387925411866000387639408571437770866059469680862156904031478243773345180477386352204196902016816305739497232568043581272381121049480651736474894501617595087887423339496186994911379495956033558718250058572043947311006619480806181106564192203904366985917189668947383879677831157162057615747897240880684414995079964228126718591287488025667511400784158523362719243443843019730512203387641694754052371417509975097261120343649131156827075287983868869368140518961747911867163334656318834400990072882739566183483961403092495151217752662348580906025786620298785663920268360328887076532888126359980306072799206211101814377122063217355198215411186723734345484053702424476757211474320505054819129560368717041266609851113853458976896567016889531972153058372106683593817496256200115448107643545014163836968739855666861668900309141377700525277211242379986005046467854219385027984923882259135890027028783871376395900367543490741070677185258811321429107332803287845214551032592710499830207418584034701034481299689568930996958661558664992004207163089798835043937569975475846178432369425671537335860527044190986216416665815472916758674493733510573957864794500637856605863142359022739912443446533872894503791458320012969908404582840200047462707206657643890412622110551233357110394827062597186727929512405345275117799519657793448076098724822474212125639648038430076663135817821241771468096999412475424157160150419637843899465699403777964970561809520960294884399272680674937365899024630012157724897755445365302325997275754006803098572378331201967090131308008477033802759872416039623108860053155990361680225396557225200617812756242839763013894723180838306778194553135112993343607487838145016011471021414706391012520094114427771056266086590086600972342558744767251947625030976735667270213485291213666847557267090549034745278501340542870427461271307634379958198339429460398859600731900397092846032541970277454962315060767074798571338700798270765710315664453522294509059330349507516863548659288571472619600673702483685079798363670667145397544452817112987890723904236635960296620425735389717580289072656291813981311390523572642200914407086858750029866261899332992234379011816986676987139612698360716518357918926633604790652896194047535517256536566111502509122218894306190814405825497525447082014470511553015199821143964033895122528757315452692266179596278020722285377834891686541972602928633771917835143667462611269257170796200510493861337082614385828019453203515265812344949235603448577845887639187532353288690453642494648300761228014456711688848509731389606426986379952417386795196289464769527334705149936467617861851632371251210556117957212216520203745628851816252973485389717136297556295272068817870642773762707873143521304642318431899887649713981905578593366183965861177933714503652711394861450813438575988204015686695343057246861690628427050692906922019623463576094059660159967333078625361543650369489090767670442024175956719988126087696961403768537468821768189183290309669636175823880401100295227856278906238706501234251695432201205713434584915410379818726588586196535160440265600783863882029619699459273276633002686314340152906065491763802242246201414937507678575560681713373450393728899313655202183502572984995552831024213713615035185360304101940803954688198756112417300485320502704000782118107079622695260986496699835807640899574223110367288123474053644640953283824806174255241293307094735415718050080440018331608678511144640308927259000661449214710442796733119580277969772833927830757023179262578755415659750582038954325788617829482116638232145189569979664300257886526924064331586559335818148908233203942116765000748697839124312743033281956806192554362922259440743842517015733366196043230043477740153879467078064571122703602922468126511647241932363077314691444728458919146117103224868062638666425948084616337731410080546068362981572460939489740325277891644295790359862779074707553702471127138547053575809077107322140331444017326902833813662889555387195506719215249430929805736549695685191880712564318327182456527728284462688785658831776240587257361483058496740263215650802317901816104251382463287459863129972786688686418132897552916365857197702209553489281863431437349346028149818852414340645595805887138459831987244485319997645256802548471560215204771223360534761324823076647605371707565330638625405381843289481146805927624111539590800322191366177476443388198132417613161280057366678111240257744531720171259265489533693685642565604845154798496185928372608309213820303056968283951828758230774073018878355328494262206653205654541879571292461045335453461891461650296093526876443181951907798495524673758084811621586889635601507445348366066979801182762798978203012070985631401028256478756452546912803676253209860326309729837898981785633241075039424657122451797166068622397530895288475267636626033402741950574703124297473847413721724104907556470207138277181435398664345758500192586801616084299788281127424977034654204686446517161797882862916087618624038405969437200816527759434274610021880211409884051460622147185645286390340100320810005468767936768347299249679824121066942876389121618152986667482124890306552217272663649136566637906053303210671416815937253669202368106095585600673299741347881000412884896096857383963347568429126988441888380958095555116473811581525633080040842782170922782191978610295748321859179833712952878854296368419786044288591802441770966858310204928173266810587876834687963961082777429226206311376055621694832945652215032584232503630921090141722507026564467646154918869175007339233519034784414996516795224402668383518813441888066980914705544070235942667769271682833910742947172239567219749098302230014410361492127197537232250178152470490299599918013937169747570473035961250076206601959048751457596184549289488105377180384973272748546740798451019856176924063778653223336271023294722522410697454979293593692912860604551978381359345013857155177010585427481697433053750455842087424078751962126112698000534468838361415723886504515569610802494285092542979164317990646058334671550467802475770440402039107006243111074995606913212452475825775633348210327438743547416996095795326738334089684552166223587310379692805651114174538040548920469859512262839180593699439786515311488190793369645082225143964210637192940819719262911328384881829032640351049944164248331214214262432880488388810063854699506104458774442857640142423370554270111232708759100501721983485623621560412226645198257818126243852280202559564689814402070468815498846972229476322036778694708807026082474367336674691866686212531801277236055561919038667894451597127932905876756642574545626207522501788751997062127295073732105120508195201964791235427884085595922372458093192129914317797809876803618983860759578688412056782939738887382951502929565812382945807531095697091157296049840266263908648632321049445682550178420541968657431457202113499559757255391709770002805562125373001659945914924960642296936873671311184073939804844578003572356225430841570040994501114195856369152051208678654732252297326314380945461655446166851260290269412516538672297552024461553483226186181861726657455746912696391892894185084216292814710098793194720361112325768998737054349168960736063432892336875579855835938238344555626250045635193227307276138563488701813749614690261594037617133732616736412009113463040236493952497886753777136203538931293600442763539439647510803919010731342927661734559582845525018929491073363855519944343755747708247966000039143526934919139605933293917773737062333722211326171209391327297280486312584296100084120796629286076152391171571321671065821828436848528256434976882559552806029500246322793394024913327385262515735720538241727197412796544988367359103016246233253418628272197553421191252071524881163226418526330695452697937090651059048004092095429312458417742250044097212258375693623802098481320381677782869079907731644524735992490976751763648701352235242125793386730184969814859851413054177510186435513113072076480178603539006359346310183494275747715675641489432364655713141594401900754215247663261630885726364464394318380601811617017283541799984707945016922760317512993946594064488286552680280545386559680968185461229872117876002027471515190517364258623204204797648559950224031329357396323755840992053003154203047347120460684798922913423413801953472478468700990814778547795183617027978414043342240274300248468616604030360262631221289855911661927259115464617361802469661841837524774436844370323213196255863633486153773062491685526018565046093970276355725773801092898938948839276021398797274350989597431721249921201167598219745772693404811734709633337156351242668776010983820612037794898029143050988924241410728396488511596200731525128934062140911510921512802160648824153561362612785085945880239262810153922040771211152545459468799308686972613948070936160535740262125308503605413195136930590311187500668034111333053896827669535486458342524631105101055023219652613016662147742502262870146012689873475257390306804259500090705386252259129746367826813255019889163805394988770063121608185771144060253509059733123331527166895293684868642109216878904198851946909100694501872977800507322415048817858790466219918700998820106220816645288604030819725986701413480277252114936767134320792639766953462867865924965542479628051775543794272250427304157987800882337178387016104745395399499835951427839447837557373201886718145507475078851863039770998002829672763138487731350162331123846035181676734377503600794509063225817198549627666581634234199492842079656175030350570617195386917364781137656462272297140399730559410339128299258121570499379804706067170158483400310252387865359520439979641879471480257905233987408911916353024851372558548510427281490228425613916949818499448310228043784282149458138296403746539263286925666041667850556886935282667720072489394155022640778594523575577368968844082574065635311743456694665661085233090076913177978443346811311512530024275299734472775763512802152649987349220904397386052973076056085379215640114030782965083486032389159178977680577218249437902406670153566598593066272867911001441206177214409554824172453131532720419065881851839096520693195906957109689267981522138038759539658632441872358192053819951623135330356202095593587407509677091007086336501823072036197350729380637725932628066951447561055698923895780546900719352168530353438762252011791210378744206637718247947573238730973949914714251679049510520235950972485506260507067477613440500072361670975495622561678389581628018917982544947361810257629078232853472654314794804027158678953672782396488971159133638922049604241607430323333305625198363746579488544833352867783813981350594246248308389564144720007919785777944346498604569406265438754551802230326564453530693075354927896329489470894587598111857064382675058091461661272635400433308516313933267249303860387812247833379050524683767936096039277183719652162875983963360069364180350767094716987801804491842618624079086171845202929157997754462916972374734687907970253825625082316466608677160351964428509682936484336317857064570656378064440562085530170164022267809615740693130770000553323095689815841218081790269209959404019923398358113753649672816860052059401266557522547891445803495633496800191479458972091809926088538683771902935000744989701575396081769725702053319428371521730531130539810239920647106711364175016993910802137570706174861991389861062244284292368741324231640944063454165949965949319427400518835041822933424708806906669832054536282351801344609017128302660021457658218633979417136186855202886857999826920725378808123909046665850370038772400189648625913465744973950238440195662493049204091258026631190125518241237131745367737312384100886737081473189179977276000584108318495354247259805685828498059509691128212506571466017774035331711254151995560984127800222249562504066228596382332655694105371550595677614993946734973848499482989905962881234369164801352411416320994272486070043142285633426700700207367525649625806122700352545415361335172431621279830584679438223040225726710787303011399315947537716214128317152965071542999123110518508685670583235070650416601182034601225525167526712185974896801749497900021669621270777707359190354274960657507759862376646056836672726889468836826807936181193352935373101990970393260231848583154070330053961943133027067033139044044352289578429320795009866640027121945697840880129657579522568612367077786300420630148523874724454803816673159433428363282219212615788773031027427806555967371213531517203467538375590015233139592559327283720807787192879753237915203869698731868076679619157330211936922203609395045311824502373496092473457176982778952077522752949611447628987473890455401681788159355474510045969853541892668893091596540096750401671199782921169085352256679713948176482964710545537472546620318570782938966647003985355561742295992156821050577423446208150548051640627152456032845855299360404683721764306553895087911783689279258653857185352375830726938481609244982394672438526840587636384698399119481072813404652591214398547806646203053110317975644635765435830799648522650040995950593027039307971488668257383462235729786949295439468386115796450457690212436368913203690987577363028049846920765654637045301241248969707603329752437193152993218179534798194213883595318164251045490119187947777399996679087726475936281883378124794892245223467205907373933305925171577259914625187063614660543859179878803987971044121374978291959574632749176399072711566092305906135721057738538220558652133857321052491764236486444414974416583626975005267461086104592196324203047137235333898265276915838097402042891775475018132275238529176046179514080890172500122879968626266370721865943609691583274855610166237551690071219923623670333254744242157007846378068967090641111285565623451268479332103633338831498984841635087926561510107628412805186329160422054533271284209674709891511930248725889128822020765677846014277843282999079875519328770393050104327214860373746073897074489344674612815148293578821272519314979054929438317838169146383496747667734955159945088145390482263505787842915536752194635547753645516560811087737297903290162409763823876898648190655300939770649243492000021068729500415253803047328344219248425531387106835143942357431800819357695267852319978585808601799216160946930498248495242821749137474885782416959759803594319337428023498317839807058071419782351113974466479020432507656171391864291784479416424322084580391387583342161665577898260519789625237660727425614998980833029740282774289930175685792925533773905637645769229556280245661151733784872709345116855285524819572669684979932272836986731369783100096163571871532521157271934816648807825771540005483867513642885399756477396273760409072284655200925004602005108844049940096359542992781773856286996022345471000135621624536076303865789181822290407360673220105223431214174690238158467170182245649183155944801576740523829183599478046297685165470585745667920838595274532299134719539441680038865117122107548094003123136150858859407083422504607800998673920989838807648836950454044336265796516044283088288914012133307176780252060476212692421492130942421142508583750083478998348933910438824032027059154659527560094189963566204807061964806652125580367143482687241364032210699739612119625674225434652743557820018487371534562139567753635557794941638629526058472077194358152236064847625468500960064483665991443940446898468046938530721690060378196005532044696820995868337514763036907993422080561907792971989992574638987447758451233092681865048065896010528030694963961197677584237627968346384460250228148816655579060725368191543708471973368876818214142127156153505771341350145970371860976312157348425118978941256901374025202413424882593835503058481668262737523895011688376487192524159091787990224891830899539348420955617873977311146082449119464104725642124069816292315130772936053143960224933116812808733879956029473885016640927896788997616204148981624592535072420433079545994828947602378007130009911940060489724179299177079501301217614794686782045409338104510491764791299585751831105787633547907112793377970788133375916629004034934729169041110786956082171284322424550639513305895628728846047071700606576963382759136658533537068273016180986504472662499868624053891647372767793356782340341349609419509496046778079015704847033346192131213153573473086117928206215694462125773691678323825176896670406668728043600117125485344682913467854262265964389489155886622632104614417611785099909424391477346442332251105559235319138556009945197504760750101937391641976090805735943943574569790291185681749163415025164686034156362393277590900326249678214406831926852785793778250047269948083846144846886774277235786070073991586252063147503830267670489854127893380096698363455397905892291402466231726486912260011344573284054199275770799638199173172688257373824600879476750228796743738027219354804597357081250615120569752283286927200569047128939346786087020604532477462417970495681078769570652181410920666530122326767262574235540722432430604534751265265553963024229208567267455827859622091850643790365229913596235289623860018546137156150136786194589172485264242798308875345395629426092803370740386377631014627769750065574983421800701461799939849146841391930167271253363580600580054447499910911347964180810831150550375104283062537380329933449524546983153879272842149909304465927245809084608702531085194578124379915803028022749198814557500939522770059179458847542732562112703157579688199454896892324398844505908143192809010842834440351298949799655450101393366580452650491382957326193677509785816173180678968290931773822538520619990573924494443420930932556800534655636651036519566571860781086222297201085833686866489732560532118098410481902353326159495218390259517647088489033361415736396318434954050156200214265783733886122011035233148758614412348605928300266967880205825732889259816471769452150932414184461607691350988620484734916301000770024736473029677778895412340299420253777558881272121162393709792237783529478036364624324439642207043898989520928697797702547043205460923073048461502044610896088542343721081255563454593539780056528917038803454284801305030626139159734930215828758405686126428384141668747185307802289194652155257379969472825213106233299791727066348767045470909218734401431848028205094685537091593450056654587332634174993628474975736219109882803042115299285712429342091513719259464987087277329501681247323533108328680497162958468955493095624754593478189857015767129402530239096522144955141781582794988128652172710682960584469970334189099066651575278779566259368220527786549403589564778191623947863463195696383415320323567970432075491724845390482282972600034140556540241473379818706396100886411872514928604565639909726520125932092432953473563169840257451519838438351171621666579186529576191157096501834275306084445096355500364063739414848973461107915463120916294661238734803966960376261272992274500884467542121867163650573560216061931601603262258648664580769679475149044644108857932224002627536118638261548044546715996047173697915109984510997212908979017083492308246795536593671289259467137983768491974130144114355398504022703460545960242062101538973896443600791676435516852830314176209943734014361951993120243554452145416147463735800778976316215638646042314017535435501159454360770102164220727477861850727760643854673122998980322849307992475570022649765234448229936806234319741284651911562408573103926072818656149778161102065057648126054950539295693816449575307161467590890575968063560861120988785219402708699291556040543089902728637229874503056963744303764899666831593853385160164769088188119513848871783402527410339328850066566590397697387357991643351964106663851056538895858694457186070903834890711400015594612535590327657376123356289799488762700433075687569798928223927500974806988675293471479864483520748226456917606448116014640066555864665698895629839507642367067902049497874902003373896204532141949731175227786847843579535764614428143681758991180353820805971348638733132443783342106611016504221959516565423722056327102744937545384975034910891401798481471453286100159699495097346549689787960192520145578671076320990244078819884483373916271869445918341515900916078281329827840286599334128516249552069853589791659278780571862348706459465872324673867924339296970054646397527044607725245812636467014061186955011155567184297159966775516192420196879904188009964884130930055009589443332180131263558863029926345536859545074637000145930292699977147915900492358349959126191948077161391871959422868129142594314854355615135593219373790657269039759440772694450837346633892902205590108057276922305759722231445472393943956799561726297825189767416495491723251527275196097379633060360745771974534832571637033515207703834440885033428483707798909755502792527127206972600281907274018791830462083195294932000898953007183025154782500038269663725592539643082404849900819086660070644778128963870273540286530692411283861390839010109700796381162285069185294828192741284183746763169479605917787729552093253862710665998892326952911207930228783735202835086183079160560944657488332858486443856133149362881013952565254812180037861248741319518706498961130116196101889218881748015542042210678518584510955272781092763014760843225901150043154912988825975895689823303502633427358929017792572926014250576678390179411625889314896625439088347641187874974623101454784947301044369921791332885553403073424958943036055265199372285156071599683966983090032939765578128412273238616069980705216602272471347714509985227595202332881709396915524069574346920365733484123643426634964013614804728533191033533329681776606927384467174637298186449316002358243824965001368175046741384272388205278077160731653391907213261651230125279655378065582998901860588143247544197676682838407869830648697126675402310237400986801288240333550945418679655971334121813371244867557530647218002009640536597761233894337615839469042191886437597246525430107428504067517219721016194622222211254380125300913770899691335749737717720851908212798185357416444401098519561855128016495367707258399410343023950626808889074927532312132951550087057351223975367398926005525085565827050888552378415586584941996252648400709652732867530824344716172223518125861745729863524519619016376367721965242875434758972875366855238321773935565405641828728522446292565686851463246961692476047752109882463804038279559565494857141978000454210262180979639780994881127152391348680737818794608577846635679566516696178638117908954246698182321091244280235357011452455903678265570932221457198009515350321370684354979768814433796253683518050255069877278859843186786871484137825659296457201888249502181411285967559668649486769103825217065686460023870137708365600822289786634691049789102632647783743623454988366896276422546817815428918620632882883235040201516964038716964614094922216591604649086929694585237533970313211867224628137033438013523804907477126744754561395432083300715889209704439519721424305239217876092209238015926122847772958187269297074179208543335281455881267474241027861225383174888281409730647637983211495382998980680939206658421871881313978279228381899916105915177309879174240705525685198251119098083117878983961839902656493039037446626993451581869272495180399702369005766826933576553589505863184656760763743557850144700443822670968226232511674513110699887226404721293296817321685605801966696928087776324767947739661980566333159777515573146066085569199217127883970800258354705215705748359465527969384475653619673610052157371116583162207806636682297011662498596029142753652622232176632195710310134638813379951155645582904619821504739997468475162345509892257963740235149752417075005361361381083828634333471147859994036154279729412608731053991984869204013440761859365863254200899921433012837123842726174973737272879663965913915366492964049884061575086939047521254934910354356858907190453445399584790611168678163607637312588592685821588451938826898253677042253299522896627871934362484788272842003515925186345242146084492497760109220474492903566868133795235592459399690643234304009972136437345261255305776685327819081016150158154007925264115995575109352682977271202881896310633196508998719909275509840200298365229486540974182558164588759748126766863411135997935075628627091342970465068035450323126312584053914396571785115879726691198185860386632848097065416443156796912548698988495403184714885732317233381609469491349557781369200199223953588265132706929604858766642875029201937185272759118740046763943863797696062662890048917511912372416662220510627033898601953014519660751199702442483493191461836199594378913815643342095935438775352547026378241700959345761358648819015354795927148757025642426004517345598385766049734569432852630508396348298103132955695846379684112509111273215630605942080004029127042799424259276312876380433874732121961336285243509484684505289882556950073650480493309397493284320920007344083581171369421885925016439827184674462559962692170487166081056247127264159781184171182597484312226475327773390675437578137709508304726770537977251655444921458474811446154648163125792488178018252871975996175648098512590455989709835282509488792537618066665829915497874535372440092756576568636871340160575855881358103415437925903170268473838911247769517909174780694729007122809801064426213225211086717167618156122047537832857923177552662455729186407713933658450188788198406889857036917753328221649846381312888410235469772846936860628158701298489492226971870293004597410466700994265780351984903946396766355038464688178608396215863157367585625610537137818064610604142411488175672520291332261642337020827584597366350447382874380020698259316650095805975429077996262285856583755510717694175864608641518532985158085895365952560967423841423178705974413010288573869527815169855036545337732387904380891879282573398768959090799186788284606832242541203383705822601940480746257378572675518414810757518761682241013433698661433971139225036718589046097905572186009187817447414113571109889580254090553602791471178776936416938313342212690546095358585650142706780499084772195805481295215932916891278065553979305561426878902747935928873024352780383410432206984096948650996815260709011242747077363542009243519063958755871419206016626673917343740010130816411666061866518750904121062308180010490691910870451188121478689289481623170600647783058103349947922382840945842037471132238646433969315437438748996922741367355159743859027864451152085098897046682503116578726443227578405725651679038021756291022174730283527130873839936601004994126855763179002811373981135674562740321463851478425060253492664771080744115715653274336415981934920642070294827911315808934525716147253027838509907439619940322357619911494749180162924277514599331348735614817766616024862370097038139016061515100659079154680477442756862828684455629542244245053315299358372319212458183360423374150978619629894243993891762150716879411243548289728602836557946697872323842342050725006934329527767343791725308481053047009748995263551161872255307698607569511444277059840451787310421260547030455053987276172462262327179010133002200557930502411609326376318306199888085194831042256467374257152588638771059634229302263036801012118119877907069396813537942026947847610130080301659674076179968830250009954994652200489106892063226797926821088098807537596220243277559937442794269363941457410144451488177500382976313782130694239307960399910598120667106292434447690725133691973802084454059840796384952933602194748956978165782712391825770452202886854733375418349971131283019258786969012431673001468274679514594550947607337027430472626178424254591595958695633616418084580934278666560751264940098527502856831450406465986637699446643748260685902859791970436216545344091100650706907752122539988621715896989655488789407693188157807155471162091280005533201283019773994573834366911473628101202761619039032325732564814489237060592824430080035594547552128947583072841717729315471385409118048716583047291505267754351344881985023871481907185213228430418873174503613180571378620403124727560481196342093709129865845828038941724060178766031313896983867541390896397422289342446225445685955171435567549013396116726733349205075528021481333151475550719644357844845031104362311232889986090691697034248112633718367747112175630444278990533857210967273958139424332302255025064907889753619249858241093906045355274868905550789203547701984740344740649294437184423765250557573272143964288776863026519788121128597627204473999618135956783719691469995840961359758684302244896145991052569729862870821395830664825377329448526054069906958801330650740919213261029624370084559349428650247662738938581605884353781346782105053784041391240003046656770547474245360078892584914727351369574644470349645428470288842622433645394383638017302516067641002357146235552854178169733434067644064320739573427439874018291966821398086678768354264261624969849333917286773241492632494882304839041732111300476816769831578247276112560236843985887763757038513277008837037648039966605949241809500780502726207367909584858606903650571974502691362213721215461580325058258905232038748651972509109895843746101642674438160516810042462488052741119460235310832784989420892124566078869967534226058201701376612062116889827834735891912182342882801035432821100094618902769315200276029257408224265316543004419372957623507599305630608473568931498545913869474128990583953524355852674886692672939600524819030088811252578069037913805902642753794020099604692505818899288216065378571047288623815434724475587560349990090655533562922715286249392295240925623660301287493076946964939320374446511551410479410369426249520591037865130026992152877471156135772098371347679136841647831676454697801342840664763909872976487413093147403400825871546018066517735997687305651713498613306653200675436821098738951450120683304491313363466671105494585877831596516904570423561730583839302008340820708774878898369226582189389287892668512891701894573841943874401554956024868775554556124831310316551218868321826733993026440935411526566326155554089584705832395232894998644303734196141776845258445665365842006092345197536653864201995266604583898564080004448165593045945475088758427799222061361056864162789249281716036066552766603778922715148732907328970314563685825883385387043664509454134337725327685650271227444088410269563534709727336516583205765750415469838465035108155407522455727136929041674305682775360438003393898567083869546661160587364085496592172456720952622543574624480889048676288062071889756356039082919904687203268523933070610423010819812910367109628190015371200272358909431891853048789497630107931334648292392113335889275029276823199729310438332794639949415509514593622013781538329919759251263412747631591736372383914963572639981355020719271798209014980233146250451586253394739917640266600766408422573514471102154025273958347703408071300773851026119175771633003108263427588379609583361388007841442380692138157853032984937707435216801578656654887835833637799796764445883573049150540777950009659536290922301041213352181675970018025084216472880021435784735270004867110699664512407021691814372971838113936042494046866209208875968472584018293818695038759022499960760423401617108158421277218220812267198124558221529542824515966349590408733940671606119990687687734735266428964986633943818560263616765078385269547690393899607017787952368860615649440573176165975050478000168194736213464054984722055836857209524426958625922524942260302452146464818541994984079117005085249433353020373557493202822262893182949908305323182242323678917770794022060593922179954569983643998745404755941628620065323232024654985889973359988516732784223801250088904787004243371174460574143679866038662650952247244376848907906079461349128185307844650482103228071392697474828422740440882619080025037211954306180965052080465157523958625017701530481569549190628132235713902619782719906681811891264892972033840804843166923023739302396417681275387133806042516176488723931418885903091240990024763459630935694609518746484321400852732506936819649912131526668474526613611823646291512386697013862580662876910164031024387644284515092562079989352215478196235375260744004848628005510744792835340652459607163273726119192713793589955933011179211148592909854987909612073117757869490757924466260180284672015229172423441963124292529390251250133211847062722604863029472179160585714338328030830673066674056106293905413158809454989122177072533464692540495768625976421208046510837697237485013678439453026112302657927941848289732615568488562845167256291197416696405780250215823655245656902951515722045413927522192155623250181228538286255734623291180030945454070204038039635169617780809438653517513703638403800595740442070735591085372237306753237268305771729170613856380808630834266157742815031284909770172682057576468084448219308849250942251579226020418659650950751918059954037254385127332287543735227214186618057409986811082117257804109509411551721695957061044825591342391528004983798483140530185114711813811658138430755334826742862943481383526142323194580061439610997516229017222488640444296580318655725421661481210120631892765796893085605267574166149169691585730333328909542289264418613493529716690609329536074708565849946065959448736272257979883853350631262726196002917510605253785994053603346918320357446683327968205993564367986160561843272650901155987998370641041082800560496005282155973167585596085017178487565357709570883782223998737676328237320327506406292196880430776190025907773973977848614559848011088978460933440190501667525512055851812298845149963552183569807985902836663779866938616340038206621900215554834039636941056256835401287662313326707025558248893341007074566305717425793141983230001588820279862868035480321555437304750485150833387512082415735086173066019505551766758561840355550679714123570490779003536512685702018871239086269350921609784135372003567228339722231372533016720160032975654693231090389325006611583227695843720860962382734939592182209348700975735835828342644663335294887960983944865045438317625514099296207264573524551397240710753152652957032343770598685480257302487615311931482804683322891513846073593967667554914708706348079905061505910292436469828933804143289004407328266046012587932280715649967912887882084899924122348786350190102147306037592901042548467434301758427157536298376582241708717516513359199975077846999372614834572885536049773216793289312797568831754283537484375593340573500983424130507472228728496987654249628305925479489983523968336965988307879252778436498232422032991186199987152816990919608595734336490100082544606770355837777422151667880048152946403050430647653358403851917091840589929197388808934204298145802937726514114085327670369066597540842985725652225123885730761185917257708160613008106018804813825831081990894806035969026839467648067590100736286214335412339589505092443407796039574847246268685404552632497464688080478273139585479678232068450123642067403286421224086958169544998816323517317077102851897210499352639645746306580418255764916539030086969920885067444087547886989655247536412623296085425184524222814650414279034239267704757080575004500264637724680032914383971313121422977610584359515039283104727591876438148153485150080714663792833226790198575145006660832149079349649327042557578874913319432608237984031953117713340531002276133377530456848027906788200921047365500962381740891847688501171556858098931335823451465818256579385983150294341204954959503343457976421813133290189166565385738952930885960691896060234575848983868078303843941093341158390726763668865895726546645016459386645020736565638373677635838651340155698188591163705364976939691238895674403298571298555389298687204004986484185430833108189058081325185423928790206185470410677689815951319730643321661815260162087802553624843747053630360156852109123418854405057405705543882756272248844992036718498788112748093416980527721229708526283505363331476446532310218393650946336831536707007297509209635931859029050749328777834410115506275939158836687381663971518252409999013623998728682080755780627073404064641243081359137840927584892657153221857145522011957788174572953815373289489834891809012393360121299470620919678849325151025717467842701290341243955373949404142077974952431319709155887611803631318246610891256844664232445432848704844857156467401948296459817273916957728274293081463729057506330101060077649460269091575000849582104464162410853053645703553698664618978837094384174477495412009156827446882658705126267370958625761756698092213583916883390442138134818676182225254991310832183721125474289816563331129177256063902581135789316838403095749582717403077738640245864644356236525358365470682643615688409282367088651265198528615440795460502798733204167212945258238171498609811710839245954412380009736995489299104711070494619130482379950689415529905673581544639107693600521735409717927754524736636341900309122798116360877113860468889512274397347281988894804673580428467292846544893289194985061817689788616786844931051676651061723018941996800381718148604810044290837749460484296928442375778619411591245829829570226890261270503453983970697760722804357346965715062813691919856524934731706604346500036250881911077493794607893983381039004236820175408511968445534716724314268364685227861435707137534572019247029199587764940209633067681201589258984419473515313712885752869528020609228272001361356559593401095541647146664639515070671086996713630959276409885658737735893929219452423517603005914299729210563921213249146175169595659079143124175276278919517244113798714335933538234781500856383201243676471506382998056426061846690009444613092382214563923659226007108839750190960495947817014976677704261565210887785892053519086521386127590036185460289868761108847265214626784445601685906943432976535544203054639385673518834638030923665404283270922299715131447150109347538491844434222919633726262018537069247070577090073341019065500161301444174087284838209151882088789844737589584065033190982235448392069320433104995552528037872898551489879047996296023617092324262408792144225827396329258712334088631567188275600341177605847300615171460293626418184866660246099651051329909752827858218556166002677848202943110473904929934148584259100844368872212041596086767979052335140791106763345822947568336035849180780007094560052519747790582307291498789325737663624978629814026332210392274248315812549910843597315189230907988004738249151109893463456041772603850125807931557759187355435046429100271023758227595493323697759636467466337973107807239706727404483783591436081548849548745485470175516342622436709306671574519243255813447235352346927229128723892786788674160519392878732497957603011057038856842281217826698985087235002349806565820862604429145663656751920343263937474101434273095644339112643642009645363166655265733799273283667013291012776330569646788087800278773711019164132002749379640289817921422087721173184306531910425605046798088106449136520815662679318768808793838869140960363125254661289217644372674743477564179788035397585509811045992062123732580812945117793194471535906896147054054414890167830117213685296045897966046152294904222522863485109585740361374954124290048938324867722384738414857474532182747210362993200273405663117804255184558187640840190196499703740736780112205549709169765284228884452739492965060196653749145893784832588125843623305587962486694566113574203032995899121205114509420532384133151499871298868397146027249260012846819808777683110620169906165927957124442086339654765545298098755065673599439131918164883500888174980516501131987205548129488058852482984204803356697719540973909657712446695608144020772267740711326057679107311756917342740234308491165530287379838435956619449373602582001892157309152817103812325954004162183345975382217671723089818789084537737426260381033919560542493914863252044724124820359114183798865951558046563661888780347800405679448777980490766573212789564394406869297729593650939924390467712285044492319802812187741198283627483651805601327974471066891312041576368765669548574210761053810637280441887840544699293091255666205842414570419176501584603538453512303428667646651424375714021816580041334643662444885435749845469485263668894425531714044711660697496069103970070102683741064535592062900675666305574595230397514605631173267387089435999149733226962194117268919104102656961518249201286296138905862715800091623606390716976263918700970763762076960312283064775501872382617298365235062730843008902528463852455843292044951581897075059304396854922266047116282905586975539852514619135514217930424289520515985000513338579409010598736550328257242955319394275057043941091622272287146357494958314121437209243689891681987478294148771779149389422910156895706684621217393625688358991415534787461194974485289332356433748952967060448928230104074087941461482854809764125280364285914561303432698019710975247185699375595843822722168412811364569589681955883652336441223754783223904348388163447649912623297039216752824063955990390999557447731823725496629689864154106230583408432504823733481079147305017295955479045060275670047425188094409625518279592316015885337059638660212977116894281785479802792737007937020688019714573107718431921050703063895814620425328940701345430655256152092041217541723950410167646150690264085189395277949793607086378110498752887428366441447020087084032916684393174539124795029363033605088605362666283826507406147013051118640512042063810660680236533712706569753186938322346028239812496101487948066127978607086847790613937078239641384173716365905796663272475022494737302512843004528637644580132284280049964498131828651315593095563458539107932030544236337213196423673662050593754333750522843767560733352113528960057670363820527722176326430680910110208182950143275330031854220182765001516942164990676616029426790901615008479738522533496145316180632751421005206214733442549515989584003539107940771975904505853891476384680666097126379548357980207895818921574709666541529178478429228086479179490246474287793027846776704031643575253611264931689181394648377246519123384722239201967329054655742690573861968032003052640711768664530341497179669686219062453636073754876668779242587204542241746221432643479307229246272648776408812612503218684995464899287155683136192852814344300990278218676674226014100120551269122395295115084550589580661521604305129492878993578068101578754748313598924649436680956550414869672054779613633824075345943693919730459279187837945846271937793137746344406381300068873266267550835174422744374685276283885028670759394971063565291259232025864462558970616322388009254437212848792808640678378024911271863948179571931742884228010244001461737314602457938466894128385585734135504080092508782454809468081238625805997824855453297008331995554573862822793713772075375966320935568566062424961971965578846216781920141565026281131067224468625745516881351334425880675150790121761831853733866884230052805337453730212525355702120593823607183812180912237054456693693578264465012917262162296558088893922591543353138114626996846795983011903534818270778984713336077383671012662241046763882092544860135250513338877849498263781283600293362037421137740409061635122404901829939568863877699214650244713346536667414073349722348240684567031099354011777686137995721615945665729464448715133880368262854270145582816784658327906123487293733752001870228429905806314315463587609826022981477397978634047097697482006272978168037727612908202090279719651404773260100033870978443137348715279193955818618201766392189583419979246653351066460358500580004525701028441876715523655634540447875933005593331015153246855911063802739864521795977104815978599638367749655766374726347442172057238323805472849659073476742162830912632328297384213021315314324348122491354771616096973833981689021211124658334881626961031641270400688904598041560888065137605748304406246527715923300499954377363376158922822672159265632143280624458832694881424474336493728888954890215597638220199696478639937925282344224358819530037913108104627481625435450148206780589165434504591629513732822052572216284306599051682421135488029050871860651588740634508715774074887783446308170194770226309441185963438360732973339323607699620662299866952293844349408318813738449134018538386052690447842369739756715415861977964323873862573657659127338475719414787309081874180761664196128603779535529082827512563832480176127213839928862399818873213086228246973809829885450337625127726146651013393997194495864042997303928881087503252474675698810151965369515596259623981923778817437715494130716094434541644426557752252675805477993318889000066625286946561818692611963523543183606140803870892415832167016579853303348913400678386123073530616856750147672971415081725148346497804011493002926907057228577658101404575824581169566193903583875666060016185275270254527298965004390953529858500802621112773066235845714298535488274973664077021452822601679245768423241278973566987595554667053370005871086862894772803653970643969323523625987500742298581679120766004418037489353081855907113255879797533799611744488041299178473946284964566285416988256654874346567215926363179626755501388531625109612791034591445425920233361846816415642381596167692379821626687189759061897373262454539485765532403422469282154661296649022927678173348657304074686490881084953819251640289980933769985556194862011759436894250917357621163385989404818707059168767264247170733243102822333779439339108301152043617311110373113615817525562031807570160313626247710883519774697092426640898468389509925471976582703009501094365118337697027346028136394390590525487944620118590114715053275428149827657635952151171031445419346811924707925491299859606506138151233008882748449573989888920267438776352158423809810467170542813601808550174906656195998569369863212704590638801858302552092900138830510479423896145972272724557924191564726729293409391025035140395134652337858374788603899360280535048965752453393332394666669623784824408380931508827054737082538194403080136623569116355474536765269799057746794541579357881535499010084688280431910176055673421771654503148643194443857681705638581476233580238763955040250063540690045104996384499958521281866259298653911499207126148548167974052165217936441939890100385940271418752005863738324012745498390446438978322814943414620689256217865273153084893898941321168243053287079891907007167787483217266044938820569455187777276402418578159352972905419884720313314781300997362599275867146287661365339960555407383937353995944903808785858539154554971686423676734114681584827051249335235472843224336304542075350729560150421059133737909247614849311036084171676845410283880063173402947139291326861008885947692413866709664187007554708358051529578941182816004605153340292042026751147084871565583136401863696289810462861371184397119020372320990252750091849179147263166708814027271598161386366504148718717937202766480970715548664654289963954614867729527436906746164396467892750609037929503130341944243540163041779734249362891896401615698898723824277310683092894811503020719363714120005671763738421528941131703978378251754372586963918611364574145215559384045086964639632372448491461615876169943683862035948884778976256461408521476742396432797065565529990194313339254987281430912276674534528191341179681440082370122037083007696808762619344831913852057471517279452079954886213398026117559029486940983178781624678132366018757074929873996661318496224323911501462151357114731270287227356215574616276926567300799692061465527607540571124442193715612513051574292031266796210817793885278513939505976992378355438371296262453146804105044255644673684840907419654467785402420345829003471262223076009631640111693885178818260747843117110596525370993172848728042637657750668548940770967571218202559581261677311221926298179694191161953464954179552070729303094974352404373213563949518257169574829219230774056813915829052842646217849813513035558647639389098755239793919789831358773550505965327704180778970172241260659197821767735295277726108370684751279026960262148373669832882675175882600525137604577945510484557863248330703985688425947861151843565973248744685968774458338807735555848021005344603540378672910211663867340407057690773755783821207280921317701328722949631330395666277750031520845523307443219960316616741706462121614427458849910474372665128706276925761925643684505411188966667269126424163968350029083885390212832513650814709665841046496972968619114076081677519800868427800185649685039319272202922523470202572542447807205972166520719896703826657109301643305448710762622712800105956300628914080923882283153179540416650363165796091278848312391368641769061637981229686094045973914516393382764791652120945889027739265634697432635338094402607883877524539490180526284214499895681142139603343686562099206042925983515129125221441314098383074970050720402401635945440809516140446706653939125164230425690029178759583967537568877446958050833901130660412207877815678181482715144705920159300299734067649884869148699177385818634121022619041231847337074598167958771054731533518527920455271430924985445897138617308424432202858026413664060200335159744216450813657349645074527940277478286307049295618894569703784009888522547875276942493865645474783699790750332620312800759635153052914516493753969623765150952833252853843446204754984418253278117946975642784705315068369110277532339197258346816042521279527585024503998622629856227543565801482103355339855449327496996624703450495225608704820029383560868057840969888617624801714048767804915738634612844265963980814613935351873327743427398837618261611257438698019136497806109298177151856780783114845394103359869685206951301809471435896863489180356234168879924034594538345900652847446491732668120766695835974771647559040783548253850821672954912528038442064588702501628653824720096949329736429609353601034483690055257880006869538659567802435029980159571727596746028248469683680607711423807006512340809686160991966506793456777941026452797636330272406501528392801153962092892339085805506442154858040095587177926617256372377490014163119229805220718788995468704704672652513267144554062544268982657208019363541410957484599997244031956051627240748862541623388486553949947125280430465150289069820818156974285095357699160292598836960115059108909667627089196010105426284256138213373405412017835775948577711343573224897051200257249093530440419946968946464020561768731347727414527841868171414440726311043839206311003031177115178407934722709329670386167612394220087397284038706690985593944880263409861040838315401183869033417327577662495882300607606318411853088294385907669950361442215399214746191050165568115641768334336382805646631534499937103422392522463395253043809870097985417396195380524939104553727827693728445098460853194641685960813876526062262346504702028540480656353729402838127421231197978182736610060770809533089691692049599953001518777246843887435042870385822809195726367892912440433377718460663508183642037638386711631274295151480404079838196617082195541089952097101979652626787360093431711662768330716489276232027436568521818894919878303706864010076633151318344252556261059028698183395193009674274247481721333594177674368348777938106486500187653724155262432240949838810446988969829901870432149375825855676316028023712746608231979617131437243208225752860748408791236334846110258447869914786569266349105519262220133860552932267720972850976116333017452569198279313725215920528698329318812878813403719000953379704213268728857131409463540660886602442558652854387070163530322442161212701158517909490979376782351535721096822228410978338607653580768698388534049899801551220721999362557291986633391411359275297595801950128201622965228014250686126049305301106487751732367737257040805105247704334220619564349344703568410185039475494221365594889208158754560096923906258049555879815520173586332467478956293933164586709690726754549291924775188024467178908599653583190441559013496957084181123420326252735290187932643433826833573774673579829235777329956850063960226935696128087887364113770202565796428817369437972650945156218847163369480545197978986819009586881865604497960099386943905211466096134245710485203620051122084766204669501612149177721329335875207114989422288778063462866816847647935496958766101474854307813646381419762172610734967298765768185410574103624295477265311672244342188159995581290151860292045847908359033156795328908958887107760715977848853883706803483312165624974202859547138979767108436283018712060257980136990520457260432438670420980266948153382020358930642251621968143830024972258856129065843944071517892095872493484658750251481738727392125642721870712705396099997435593699468891588367744150491719222723602691852288554223729044343785349719419623722615101995853245153040786551604560908713121162255060345605643650307606097874823803321401485549573653051547125284805999296439672761515335566091833475786785017250814632639657109097835742524711444901547184182436240957638419743238855031787674132207286037596858987147030978100198060513963783080436933398049515912612097341070388215680809377918711220347595871673662150922492917625869742117499667851137907254663111472865436156142377894714883737063077714167413356149352329769004635381681982239000073352807251859267008457491194884831498574819056134359711693522935275010377970905246608931138136071310029014248151843151375767158869159616334373829997106179893574950710564504314312131635347184360152200910718851844871491616592057231989551213288596438978064711956211925897840622470567648191523700573461587941558357383970947304312962888999176379945997271770919707026902318345874662756010456655397823839184800470234481600883782194159021568232268213738164133561790507331517020044872563512141347613188422103570283290869169239957267114430053140619281825090174046054342934519227622372513157722799340200389189771201633963943708319113162545165276224944908128564351853293670621092272289331267750225766550206482996315634471803422896327101032891953061496036575926292926383724433310951769062861871910943021525813416810346504122575002791074448774972783021234073463430623679963017141088925661280556419282414278262478695646582788787602554208665197640761235223276847992671454345477257056707175516598458738521851991449893956873354548359813837513252016633958059040964715502190066428207323303538587547110667905422288216001625933628562049921409760340658076506643457086725878267173200118806359956553540652226370574832604191884700771118738903196157194080105387083704763794726199723424578004427494849919663982440303063579226493545013998774584003242264011572759952683801355532485043006378656251686127800988708699078773903054777968562628684489590345126241621665987535537064113765423637759933909406871324802205264990392776847918472258458235449726642350608647359073323810355792627223018890532008802474722905417954115425608089421572587935811609250175261785646380677714453213391768492384341077739012981623008627750931380949279370310163396819135656107284344794147112099318846673281640552794041994884785419381002300501999645487768134823819358499190306549930332130763565947355500925162643061107293436768538171844680973701771274811522416544890360498114682524699678151982710293406184626529912869925993762483948975284734804790051220155467163234185504338795074561028878113366911564566010268364857140047161751374693031869685412962768462071898129311447540544612581024764059960460062661783432877765207517884042359746197785861150623085891768336456790576575609083278989435033553184899889767393096412401615366377852522119896149703721450357450206640958243805229269774057057003822487711213098254228782108467554490000301214525516955604729702534574023211101829130713848530981494369397490704072743948370458538299335833050134334912187247766523361051651613504535585452443859074706490070047286758582576675642183927456652570110573387230547459649810759366502914329272101251327182518944422997307003982615985898666406271557361932006082090732600540313575991893067753234218486509304347987025548735348904690911269562023682900038387699690292795706484474603923007655547514669232687990400222126475226762188206256302204088287708626694751506867776723417482931462220191199308900772157638557945403879187560969717778355214754464314030648668568473383456491697891711868043237069262555664781319288034485751876098946913400789613283524614192978575068289723126096754875056332473161536475472597315436616173357627035477792349078429613226755885969558897495313845543369748644605821340607923175083406863538923747413043722861048861416543714665930278256379673566929936456253717726998998708439390461484849876686204423674127721110865323213178702598748893012518877198817773215632594957109158850188615392401229511633796509835851262065435405623354439216917719643153761330960652572638070757741189671042909059587799039988572559800621766012044460605032708745711602914043455469945886135020724425908661548995151695665333307797813937116369466206583773944194995680890193449996751578519873480748424547740306615000379955186887790808534492202274149583979336097934199021896818776494825659719125898421568739860163769299591068573757158743413549290978387538070232300668685663419730601332915377928001383903748124630093955476579723417549360487237741860492218695795616277374658434471958198550244973935385671403678243324661119376055009495724832120897449386332547300603596871422034331533801148124850187373065231486993045340241605212632829988482913724351539223033792535283816946888833969648821061276411582389455568768250355289695162356992212585851678134835977407931395436847313206677484166529054474956470170697255179458521280162480624577424179741281448372685731266547379156855650054418960047440991221195983358117556173501202660765292601210311834980176754953521421174184976092284800600945787122775731463174024571028129318228403328956597874443694364263180190277590317573006241013057506413838872705245005750052493852405761982123469633880276286648590965357299027839255186910722180810863995319987709041510687033786999688683640640614420831376931266157195882962979643370617677843940776994370012535480974311276656453880570704280437317832959363439133466411796685246351289287924284180716317492204845946625150770308504421753847031489672608004399739273612198805653029732023943176090275385533060536731950738249961224038420161792354843353615524863777678027246480257864286802138826693147265415231402930551572788428167961032584886718974125731618052722170390604337332637489042235787086405796101313140228455048755321344972715999038748124180338823433326029252562258536656148316193541619435112890867911412008333605648038846170442765719342155483408541357186154448595442941806934614336721478963055052715966780647415534674868278862873870067257624713660574523812663115547261911699245779698534754237671896873329573836420718862718668413148521978958706407463366371116761406872435651115507300210788388044235661704236265618085979635803239423369304108641374522633874398236804227768828723522833778291500348962067434300301149964295962893928130016376326703094901985179172078760404507814502497597770859813925214694455970042576323044293905275834207029896486421848214473743391939051489605578941875945974596537839524351281379348164415300457699730313975051123351837017931736695949865187300263864024910563498572503873348951186401916368722745148606795732446965704115164453381226847543326856489486207336254720238576135542100683387809533201765368030426925499708093518709653137850960288685888438180817273911143500567359978729275372381566457383472536045911079652223249097874694682798412551823226627143429008185238287891001279771070874697928344039269597457481482296740055213199232879085279881653741737877671022801816790953277222078712989592186019390084671893667184207622839033018867524489969358509601067438775978136561909182097465585128773456726191534705280449906246014022769445031665202787047149800224056167049377451215986482063177183248358892082433860282645618139971917911606690588111274071931120607346761702801181728155603670604556304870931530004202870081711012641297751395539942341745457302487838800738127575239199305869786617212425860426041937583462951384787563700743041977678841037196011900823135716093159193510588697855236444335097511172045290071534313076284006966538355630223768967781273686395885951386664251061044075379466357745835117951756866936656559730619504985064611090129163163464401452699791926779818327729158901238706695014698364077957055642922725522366126224964917724365917100600540375366601527181947369166358132650144975703461774738166632339966074373375393890290073262701722781041647412381700002052253457217254309351316632146468485552616366144063747139328133625112607524753366215930440755660178469864283641636919200801901394550612108044913920955290448514475425279454249720630875526270037827460318800936424237009841065674120351081434124570519805241042248523475806660498132684282944561858088700951610100799527879614784912001856724250651990243042926694277736501509709020787927825131519589318292739056793618741935643521511083725101471935439622729839777050139598694951953078958288233728747478109752646966605650513963920998023393968692481719439911916636602219944839442054635335751714087588103592009457942476783543859829864966012830357303658435319985966680631977859477581758387516939638857273287149586095216407560209099327182766632772783722603125939189834717674739363356253754367367048123484017139672484774324229768789314703672635893114906798087835666703638014413353453057252381863619505465192742464847150325996301138577778492520516314263147769147377569098134948605410050564259569883771981650682241361914853950413625657293999997469682254687128024323240731508125895445961533159558227574904349576340993079071618282733308165911642099343565351500872350619628295499082407806598680944241783060670530699230233344112617655478598007538506205191331526857522645330340459413502037076581045998959718725070555336147309719121592331373532376425170788887922299906126562502572460041405230204527036297726639279954468814473032245816023801052487424683549455489303631424021298119550687428217660358706501592004490807843830723337390519841058431332418857525641037796362329924323736875829186065390924589153966232186520267185687710405049296743280305541590938532062508322785388022885160154986439854644686262881153750026898618284841290030365936679732518109190311110922750109665151730781388599706673846622605733875349650280574355247185612401954616404644270988534435889665206267861618241302493579217854191636767670581306552730557199557829606830386562313306952968007236929278521881097238983647917457508333135860496319013754378463543584532642262268077381670858585291562585329815813231897790596630330021648324190735079706471924625035145986665133291900239977578258904655895845099323582917232009217879480750068966766846729744218681721241802775080972496547568808492029901745848735589442175335218912930670402554490845218346876470950783982451093269224653411986918904839862345809547936490507888115987087448260021317420454614851449821968479914058639242546868009252248595154132390779087719581021129991477100712989495775046126602294543450085000655916074853644044117659889425515930900811860490990131933753307544483062911013337783578079971264074797418458524747374466981123855596495789159722447043029121024537838169157591198082481180471795431866063423643807343601390315336020258150227661419453514166560897599893571592350756239310109186778681216969829225109098447220430795295258805794153623508261363612628793076984220045751635693497807397315455795009753539508873177973655273235891810132433794822514553103625154800209313800899176604675327259749570122511172333952852058900965469414412133604219737576639693965605354158837874006943061479764791794639576919012449895491950496155345264476775181728042695821222215426948349644430105263859420279585800215810897580955543952063314868373362828506908591008008505495964781749107444369418057385753735055932816733642012298252850687555302078849840384819976940280467560157492361758868946941740299479446139702389722958909532955701039690587146669080551193193946608767471710696523371568561700957804189596575334738896651078165698555258865635545217033719283109630216788446115700156510981837561774035426244366077997644830402372399444534664304413351687148795307006815611902576149167120725471837055888538586538024440252961618062354776439696153625155018951941339759939148981962555848351745007716931617032506316379952065464085353031108619173820526950135871397154076039804965678747653216146276579290434422637676071939398414967103119245711405272298121069032584263534876633750537698769785780899503470050683929544417946703459033162728145926048626489797035303102424215268593943491730563151745740853725704392332419020535147459229698218384817623258969693691794321286213363549172348705602759806247257162150662487036265640895153959203576933604435910505625525126142759904102384023839786161367170246953798229075378828542242281651575707910128862778254443609830218619131828619952336175626517624707297051796972649370624982769371343999364306135659282097177492677384413975610504523136916931987505833430273282746126907907052402944122008210992665511211411415917560904214024537154719479690876922883320000722646832606314028779759932365031837021462449029534206311515630350970330217613746907789162853155634337395076803127766930477529499689587276626777356655175513583110894316421005548580677352812098819866023017423261343142348591597188044107741013710496139158577924537295538415502813084172958814428883194079382811706928964828576425408383808746444620247993636354454336763428094170258293293261642149489122758197024099387335782696291548645123018297851862495703076017249204960630431926170134025925327160045229660376252835649323498372605429309735088557196039692830047945277882801688511380373624425433847132349478076682372019588644021463277720103245808408502569713367071431504621667011145361448011345645701135671401305855034302671936009831767061723602459962642234770412868538460189320020217172206617106081349549161309130678421622085687937725137248121369231266065651046130977825153446468186599093111994498092445131627922986038322891896529139043767620340350697842412888016981929294233984935205106967401797180072978521574815964451369200428540203378216821576293998589482589030827452808713448645805417243909159145456464933024226946408163688871192649211466324165647361436555290552994252422070833278444412427605531780772368046058211075852485098109109338630943797911437625554401423775956121448920181028948675205830308824265624935845919127547559040081212929981019146381465793836100746112258770960272103585423211816517980763868194649162386204385986723926193760114354217272934182729252525678800711725751873374163254818821138411381171710116189725454566754637260534417855256573223488435900800224628668465662390856070907505005441529117086819031012365438475617384184689850760226683409185074178552336813464592075801566385673582359304592146654059167359021130527966707311231657235717520308088919417533146810680864045840044481584072023647450678356166144018253171117773509757911176579241929627942850179867661439162021282993528038348563825820461561965411198121062816404409707447093715977939943748218299202330399803202268107195321373371300088244658763928000838916237554950640668047716985944009416138742488833287761406984077655769469961528239973338989173332765923807503268853457746165857202462193943144294930467618077305364082469577921870704380939752371455144642752221495513510651007892906570379849935601661169434322924261696327215859003967587403110125503976061290703467371725561331746225836285250880643430612865034108763536698077818368305159930409346390971060239235950622247801888349551237997663038749051391341971695654132562948515001407680009548014834447301725412080398610830306643955440141593816102545757657260407898339362000832112553133840302468077808286728832796356521860965393310849113716991445457114875493900685194787060068954042954417569111875792437960808388154522116715416298244676384117202378790339558174239079631985547152596246128303087321173768865404892584516330985153618729754516190965870245674029131960898996347103780475867313086747556471672981137422350376176434502434378428515805283871600991623813917558428688174690636207424296429439605231186822472016137027565619722875940364862545709799697738175246574219983766281429278620844340308444051443084096604983519226241060402123338697107356675361023227985112971871702519460940880136366430907599809822362976186441542040516386157044187164138984832302036672922925924924371936740686223746119966635342568719343830175962121686406680716012227419055952170180918252017102126713346695812772239256639258386907907165001487605369048607804075133815065688250495519807924914101922512465852173356346147904007037464969693574528416532313453139788990908471580607245261382846410599650224897282062207812746494077834610682272904067567009823666624917419889007196326132545472796368192717304619394505328050283482149816199816694784815574658126559549826057865273289222539073378636990486873061468118630629256476951788948534216840961308498204937031824945320033389047236167446439468802843884912574159357651058323513243386243793518601360957678446025034584585871456744849840913417564116024737214501164157664304411851261551672925619668449604287274269942960140512811981386069789385156873683081429676225467068771492041089009018976963122179296466338461330289465254121665398561719565523168068412770622554129881104455018508226471708475532074740243653295763607428446588064323330703733690658704702874141758098736911919988842003779985294360002771917702469810896064160790342027523629217850228100892296269597999323270771069639330392807042909795409564322616516086751526958046833893203458880759807023618390838762906623927794071351995712159488682863787401287640074797588487345657116420587622731877594870966374503121698915234899150947546557975060987304086718902119377078729778394452230324006653047853192959186676750542672920932170182891641337599523172031507892429356330440098057921877373411926675342876954280651091248675102283107938058829279110254081193101208342573071840202794273568609204891816194491188224715904710479674776195653210244150189798538449135969360454732382359916860449115133878902445631936661775655872901039662884055056700635655725781482105075980441534531940073422925395072708755685109003361620225107135582988423164859889411862444388781736361077728649325435301375556876908051382108242424403216235539886629861266111531961621305083324595451007401245212298082667335613905198739498166146166206386451607978278008614355999640840239056804821599287115181828835716664555846448901516695285256016951667539849439857072876147390624355195161212466887474326246078936516375938946977650942663258013373470442576967523664559431061914611498171806147412743389147082008052497832834261280595271594105122917991401492712209996494555176551709719592636756633129075105838666879417358645263767515235280708453383950765288647830601731880973302281379962711280124994726716887849838820539003001011959576260683041484459924372996182021949453244648731719696828491789582300060828557294347422541437566703514841244147946034498661060423366027497210153629471022504306865346675662499930550579176978946480145762521317742126429336306162263153644207714460084837664593003449180327816142374069402164021728579361173196342322270156360496414183183791174293066364110651084992787428300672666500031831557704178971209244746070835022157672780175246873858725280818227012778133407652626231949706710243479560880329308307859097991866506473783083732775917354056485067826155582622001479095469936973894410306695813708159116135251856419708072719703235834019885273078709976716795605664535387484094237567115819261252898529924458959267817452578117045813993606928741307490556347802271161241155123716921682103904285561324704752544566716509473812154417551197226448648392620935577717003022089457921602757266399820825872278672418394547365556968727004302362296880838619285172203692645388067923697575588664940636064166904511846272381066565859350963658311468302065600959529265643233345829953241118582726542330835328645579251842665436626726760192936834041343669010666564614923528290018688764446279702031960363007360112148911508831567733924360833994870028876584724704161797114367063630898658750040574839081876336898978163552251575823155729670010571820816463943064241334101586476004177414334616465288089591321114630394271003582788043481104750743637342899949770652392277109757543095537107481318950067237100644063822281939029587124318019109296750685915883894621359611465049353598502706059422530304719064539711362348782645923141809324442794581989364833090398725789215108545558275923893122080247115853790625073930301686003851829149493238687443475945005339708168040267124081683019492588413559997776008396651421330095811013291094021927508744851309147577071032387468330798266232789826931635469728730016190322630372058561437257531627723306636939014931049936699016728236511827009541354096689488398339947838684353870901213477781908150762918175533017991027875206774328767603304597333374739628136688532092557763762265883719965716782536165224380529260434767111929599679797652158258552695085404357064500300295353319940122576709288327740192652383446074213709167019879212116346171198296297467094329452244825624820765228688824510115054076487848440186206842728255215706956099491246644778320203904051798488333892146755975864475920218926198304755939188635858691446588726348875968337884974320215187274212227871212212572928803141950654047059191430052177748574735532862237572987138318242369023322513679266784794981138668062762811658493011883945509226374148177115327497111578099417574658393284158409943953049887920400687370660420509098537848056767420409539333548802234352068117783179663027561248372300759083329830334632262744563854647470161951745855368629679854177796952870105813254564988605067182508830664246472087045776912897023597986923590107850657998051637256575655909904197451866806440640277668357971872137945690265309290543567585316409973730824720870098877505513023001888799868114731674530632468710965826788848758019526896682921062892804005938230203400343528489373708005014924819185979348425000677128779202872766989081066522176975223471329629106371428417755430484442340579710640183032365210856970280380180745550758980966668744348664037749434846154558312007271633912776668510077957133732094793395574288464306869450017973504238484851414428427591433086444232008934164009063462692927686348465678445744431905261003465934774258066487494951934666364053596856210755530370795193556393148560781345259241085145963440883835517901350992578893682761559746286407694452415026372782403970133432586037879471472457798602181240376386348977294626206139622178246946407252118195198263532348074177357683978208317788525011306603899818082778415071141409738857980746991970696611037441747898741284006889253656880708119366858561276208860912270925513349072871898287407090289778886152246700910222241734252254581591966925881199809836168640678670597606440101807683366324569960041080897405458326270012950427727324907158623767928185807962315318695099785597206694381426190309805718736940337431191747681932475581039710597300382765860678327445739003834619507603449038570263085311109395703308533143649338127421094438457159033158608923519646472362787737674614738914509682411407759291248112147893736630663675236421124831563086321829114692114102333756518526751256244883131373792838505500193755558702992541488236068895506243044239044288556962719481296296623127286781087571722199512007403324158579843201995094757054091580500923230306450857160955585613916918575862874563084017244384170619607089286983625909399994890120086722184474536828744124298200941243321546454477845679313895845763791208006809161969933333411853254916402395136346539401208407651045123517244448670804337049241944294970866808108848612483242153478251411850863515321713995386985398049393570561740991484459671734222642189322455635010632075937484723234721278065202361316303666536094182520634991246033122710312676046975290258380927759552804348219381405637049437964628331784235408320218582202099870318168965104466516378754755091033024466809003833023923134057443727608686752718147439016619015427403476130830485752077260915010812686474816723413295841767096837529849585871994862862235146983324480897118080158021770249449947797227894524350029068257097611059457249707011289946570876363172095123096975152164124517294589506781604246411708579412079978338470607535575421507625034833694831718308278890998921823328967775513542403020759378070204143404667903286770344927751451838644510431670151699946933587406290994564220925586124286745794314682976565540136169294691397573222590329835490412163786364924912720375285520446329937031159151364907926589548471086729848996847789704487060014616893054031366734688413642963235350807082969158626664994599912005516134370258131031176797369086579809387590338529036623034862697164543811970834940438357250475868690813414470073209875774533423338345099536975139003388330858629518524382704145234874019150574255101979457593794396158591655208810538686864054642286650418064368446833652238805056318871209837144705337225961670660623363843846142409954093356949575655598105540478899089142920780130226953350024145290280149017391326200761176702215716221715003400770276583721059597607346023837378003506689326254307524873442863202152693831457549849598224040580159490298631713841619184390596093796115648079583585035386435399643829098075590146326940125179708818876282359915308631603346291445843638926270913326939611487141808518968341137540020091329837075109171870459980087183051029990531870624918315276859496936923367750796285512576160279415892085167596162394478025987394216600011593798589486503784444097905060778618368142790640307276548760503444243370863049290922209593094055343284924352797107465144858618465124098671664135196512102724307430182666251525675043944386302020643487111605903270892461690486408292311192756117552320108019473700185345886469133980661593486367613384987935259930389150285652645502522340701009605029883278218177726518679724833023052803584028317160330401344501192304764629123747495743430992410409302300617387282122245881029270116505093002189798749905046574421891189647468352933689002501558115096298850907621208137746293232382064015417567656076869949851037866658148730656216953576913645036904681044993758508527806162486044273860870910477774419649698242173373576791710489755061910092617211852579868655842635022756015311873361782958925788000477076635601600064464375470528093964453166167345513833149524104459285489087354207574426711035002301194290217986370156507051637292542242957501547751194954515750830924115320363191698739662109223315010280010196573285739943521224025563649814066887341815267553456929989242434635047942221606069602404029736841219912454213006015147199301619996365910113733189829119487466794537535787349302198158385953602036853169607749803853011920846366996825238268975040215536349969736546791607586806761032719319207246924812196117217868240492731174150742802841515527596409921830727456564294996116631300355357479656463866136613597354352664396740917460395198281559457214768887274113256389499060395156537436619136395661973969494933246624306686837386857089612504503625765532100531747887792729216030104586123149670956177606050068887642303568741667411371446837324421906399548424862418366752143373023679036431972168778541313580363705806642056488547759295765418059691323765043557889045370073704783744215974465540635440312522282052578320690210073423235523324182617665744433918108415046078752633469086519024708637009623470331620272184924100928027007711636552826114174946497502079601844908364444025612582930073425329547468870256083915740391698261621713655966120785352773422257368270327156127041869262919356062032688063206035013242604485567808344541502804414315623732993680729969310118274100559354651720622897453511231499006173669400032224091437621427429884179513659620613655605246766918427002863697951002287410532523551686821436403761237183003470192390777281028539717638567051658025332225711186246211688048818221764116174799853193815688165546096988801830129662235231735935319055168589942096773390147324749521151613271015554156213373882150538691120092167107856684612307765600926124336716473863691785689538511999980800444166893904737345582657303535756232286399392702357349624635439409287761316240239597998248656467298450921270892567761724506497866243485342297837323176783674642925430590424368477733313842043098192923406028510336479183637647264430674370569144642001592734497654687670449049925992147029045516136909048935568345641149198499793290101906515581366098669305998786350427156683629438530077375292239703703573460784941351857159673635341912228441549021619378296707746548692201449954025626517398650459783516365083618831498998017469639919566576804492101262698074172388451421417838546864013226000429416241278150721400786712099525831638121365604711109124370891073579011575608367336516343256401978133623103881687939815824014766695414754008024634066930845729011074023099976633854017579433262280060371991879148070179134704075118416670357039821720286451634755916295833962511545403632587407768688181934678053180595860406558306834792665798775898255474769386845294153914944044226934097126570205068082328017757646126397499579712177002680774464303529494375795474469279191411244891417898478781629044693676747595054126180541477660906056053312674727785580011942301995145154984657416260804662686906476055405820765883188508865867738478607397693495148760875724181913990423372478538056723061313225362459165497264687116613509396980230915896381515244950336329301876679103707156615041770466620407697110198282975201201481914822379455548069477447782413010372629585237735105912597959230207767151860460461971979252146359322899049294462047053125363412907561275267536874383325987893733521703405405700876953815317503354464248440123437451009795335769051365570139549801756907683870874668878579688998543511359433183303332098801306436996898035268372478221933627412696814612808695479783873953520877759391842728756819595082612322340605651732446964385750454609544331398985035609359621270609932619906291319315439548405941710008824753510303473870182624767821339760249496111915809914504544066942030425694488446250492486386695223871190858339247966216853325337955334626599179373923640058080455632784335530075895763676952693610892791640776911516696743830279134496167526703955359564003898929169729756796411177937708973139401767169430846238503954451055435581623578246349677242585879999450518007784831213842426073490808648665505449957072715495280685019171730406098669591619402108730900024463272642017971671791164474814666382537601741474240069923458288273253438613846489259656947836832696436385864916195044116521972560986904423533187087211843070665147293488285298299339429529038086334473674233966101586247847933093116100824482473103309666556913772552664148112912141397911770394909880939114775118923413370863429697409725544056919067655746938475241801508485342886659875616667582995698813448413327230430898915492794956110106483759237377858546605541838225730695385051187656803186792951997365107594009843288577762465876540887720376768585828654279340539027587422774097583639758607910041371107319681339616680166470675092025333480293541977832013975506918693254742958352659299679145440363242203679741417959518226272337779788876096324980939598137660693564527844437818915425543596916187272514405895590403063466859271816340677477952208164579944718832013496858320358479034288648353776884958764701147365862647236055084949826714747832936487216424837658362738525606427477757191927454805540119723204522202649899027158475314803282961740842500224895277040012594570293311817718565567188694081478174145640766474350340846353704267835718324365348726940698957332244983009525533780130505568046499079341628101267452852600650082244045356113547190637671069618575701235741015611460897785589539599076873627948755408411926839620724074638660728958074438425811406400371135791830433281843149447019623573340829754211899016824440789353917243143474467055538997134323394227064465456811280361140361414427110756543972275342050821548175102102427518211078435042933735520885361945752621765862376503027343447043142597493998329691040366578325650019835193802566318005757660418447435176549630125278273865299510720215926364352741693709526345381563491824950088852712860874270761617676305287221821094218002766188316533671319072043665367003771854593894040926993097457922559984764122010626654023843786964370802082329443637964411978486842366390994808138922210278671661770591045834412157034551328743675631732100604529152067882904635842009445346148714446472336730115924201208102900229101614123172353717985336131281955751953974703913268183635098296318557947282977993550974998097402552422566425335815727658614193033746472493265043415182959102500519911248600754314648044986659217167972104290496632985235423679267191425308104118854313464176226974013803542333889852471926021772654423855829131527547041105129290225864287691399414200987658053502189261870828584284358749858844794135324808319027562403652940683223935601484563361383494600149377540270803904054253290192100976648145694016863756342245848120866920700955048616542755222119291435596774750148041660642191446364333401095260181741116619713989512366888702604747178012155065587883570788578837854986639308699366175034889780810194926276375849415050394181896462930894428238102309289149672468552186741059239842787132359209122991653917957833900312788574808365737177151963930613264540122115318977356524592837467115326598126455708897981211545181252046945274127208118921863603320190795972660957290460062567567959831949812239758856117742384020279386627818795800516076007034867286732268288429394586531320198376289464754403999963635808507218061644948363817071751262973570461172216983250331059629452885983827436900184148969201396865537215720872028488497431394976703337140239461355249064692492962211734815408603861574830334778757637604882331522813700902650331716329886971767021365847664735310170977961553223582421451564736560941027563544681989447754448678568946697660687995683798054694366146612079883201987906121904883678449912662920664409711636915988796571095660140589500875787801730809432278161615382513621765427125347839785048868907554690986408408928228441654437085846765099237346629952546297055107125739362012326102621321818326335806166917009328937734468416348078644351593740537912684920285847410013812697575257514998096692987728309269142791883746716041075841301406594174824512417382378767484535645820541848398643261287006935830775063753529905969442363599773733670473051927246805457601225239363539834919388433884245436146142205382712544710169948156193618839868815857180305061214659286199923291931257930924354256803005353434776221883947108392732880318174349240816634802210221129480914654305096737750323947554305785819787297550449278816706506817205600556670598595453353346858589092989991583224839863847059523674438652149599185370501975269613092062649429731021067227877344513372313832361881964731228451277688825011575203302875768528174521624333832902328725927929932965471210360936438047542062358517556995628462177598889702694341221941945318274124850887107612058553271923276349666721770833136312899826712049202764820239846248053381595934424367025746025204691961579903483504098962389229699436636990890825037580918440274093365004533026440372955706752524456747737768811128826785213593329973551454924557605896670641173982663291886175636331360639690437106763537786883301978168732492167643717299206827696166621816943163736583850300631771581314725485419707378654282296455979722578116444415599573996684729251846680121248975191534840454275745602762737258712494378757719203598275526039626259579433190197244423082801274412671969012954058457131543852697780986626671566974392629302056064963669124643986229201697469949413939617811319411968157113535186733887054188395897373231989153737620053684069081762409797428946094252245645196890233475052183798196104142105459089934936387749464622614660658055200430232227504366168301450894455633425659474962772267500356347801176080722126980780208477448916948184843523041929097235107871809079451943706534600132422264162161689341912513129740685716176315749396139458006866048221573947081581157761652161040210911161570830549099457968491091572076837743178118767755111268096774412970348131832859298498279794165688686500404207962706799954596569859173628310949128217724553541318629511236478654385025694792823251878836153356950164234530716025095323318356003033124336897351151664092486653920818421195175199457521793139129196566041932727736537461692473957668691391353919763452490114836314566400050290359928615928039150788057354020469433252230979130800578573123842903629214319262732550892102311042968057374270491477784964165545370614564968646182867010332763155995656714194209423619418460084532197010828652087924441577065734675490254917748910621391921304313756662016853695822153656673754102504917096780090692024472619604917020147703076836899309147472716525935902436724995590203777383440050166953728312739753923411908194225625994175646953469500657324691851591212148884568782093199624365630395077887073368177225777752702782302399602615420727256828049850797220028744835236070463995049151770030424698954128887365296068025109213453321732269123156964013355667363528388674368212080069183028866991816482543163641187430475902043425110915354976912365579224076707916031550066620435659306976725011536085609078853350857260343576878347466126354194377644008900949513889114373202792808089436455863011922377911914990275631847753084805506490098252586043186564147163681077789044125569630991350442483302740051691397011552062489561448554581026746749573556150255961162574893652834589353826230660605829948289909783090855152911603999467958752800634448936772151275505610352477608598443820944436860648153396196545053830849234326030837414488417319401777644273367845247083452216981023430496618889219000961221597281023486662273744003228015378360708615414997986694364340577976597120217778587029332870921913633165498442369004107971885917303080992380897136765590252865284341196629895301491054422493124390394032941903286421056194253832656390107003171997414715237278702350798446162980410594432703033677603467241076735889986100950650569219304479679540442751512314647356184239296005090778369599889697815457982244930281958234548986802925758284745086692215350947608371039242307384688290357175675535177739751033629304169016172188554574018373850747663884654603242248455237440379362057646216414106245422637998656074546538154827734341756834586883009681913926108197536135885876391772293682228467087119441775597066458700630028227908326159947821331890772062438372184763339584719075586847858835467720080189579661771869056788295278454054061171258034861517896264692527171918582609864532352830303965047070594601032133065709032721720564761488273381655628384858451946268065405923746154553300077798830458462966961317546277237803789445106136850384250269243069419520917178450778075688869880716431348162196007294034285657067813987494312155888901218581761569499894545448933506072644800966388548869414887715720265174986416764529392752396857652285724106338169473507230303509548937317517321720263547946212985407570959123111733824344413261207802386512647524220004456303035009416612332670735918188258745258436736503862917463671020046604974194273292164832275148648947095052018318681573914733356802100539184688969856860354125769384308624896802025541988216985243019727044330941282639913206270108679424396419233282210769944184363325633396172161197419581495805951851051795182370482260088553623080842940957227195260400104807589201391183366812581162493932594495909357113385672436170064449010462426968281494494307953821061298663210329928111585066334548104142205801745986776691872460595333820551978270564154087693491191945373668857795431385481514340984893393965371821728306159118738528037496550591308409020203959250877041161390910281833814016951739254757969913309944105661146223394419321278613555019444101427362819848138974661546896483782930426844852568249378292071730868530371311080350890934373414176274598364276372280203950691584242679209365131506057024001437741747797774440998610617856797398390189466899180473569381767202399077422455507982688033544532126413699053634896116219244346744932983149283218048770465943408633258763267660705899151150829139807344209387854167762408552333542556671050511540426876961404514634839498433540807080956054992034353533273773077663998518451926586529731548839940622808410450711645604609131971883277413039015276088146216590321233752627257013762722662564540311691225866465218824978757889155193363997902618402753229635340273558533591816977855141835726171848625944772862065899194737737494545581497057046171417625515538475185815000749956233860552993065318840285822576753411816405457393670862657034947851574576299548006223241858693062284923470188537823985057900252053062222109134633645007084953675909282601020215538855145238083610021529168072147890312714632685621049205515914146211104331921939748406129379731528527950634376580554883098292989022951418456800391600151971609581078208841044230951828920712175760459781493622938335165719205912003853919963578755802540024615128282971287155134489389676048847337078677609319669878708642750979523133391003830461670604235968784834756560537006591350216954586371360714465656094716628636987666680400982348936100714976960140749634112561639239363516604296668000910378935339872014248174616275154442892330892091392624395561091584633561531761400885929784315978342186769178406837061890324582695678453660035210502225494034297870562912351094441647798551174787384068654356972596866046084506056085419455116559270422996497536576012740400909672109248356025391444192212627000031527240505076643879707991179945339310769685110655083096826715978961796691384679199000317826877112088203602417445656323907052661887694172254288515006488418550237041058243357627709502138906368635926860981892775338436679810205264879661118382490470355337775040210116447478533960644836320580158308225730008528254889623384956156583216064290309413881402534381123262204331491662568984616825568356893923905193794409197994842170630937484875462869083145556021450983160730662528803583729635055297095926629655779681764140713849699759764587849031698628460951268959481669584843816253774884390028525137586488093648702715495336215557239206787422961199501801476413237601630329137312256819596554335346110147569493108661188352727022332433584426170292922150501151136470872407169621863658710896705188114581835201491221710595211217425929959778112778215940527544646725632129871445061019948604278258336017409819865683602434915763399968174287498988112896977945391253433824853649026065649807057670909811103999881155776522019410208272623431086651280314661647343608261088085637576817861434704699861673378310556461607015864156194573776447412761390519965088748978444460704628700726538290616615189927061729068589159606777352270297555178677578638864042128560133696805242390796095602415118495477168366195409636951878434741052487372006945626028005249567225905877587541630148488221045020446301773674925321705826360439325694507318051831954214834736443234119516641509509605600712852996500732745843621040468454045920870671801779216532284750009004406484693756048748923317799196334932724256640338705990738776147062011780616308180465232982665467638318744062260963831980893721622761586029681228309474698064538876940280953235669962367156472524027022882980753115378654928807360252309788349146228179112927865431844697456229098938304635278572767530836715435632556370878091672626414932341234024163292867084787471978407099557451170767384981673850962903959578208787804674367775216235706376538547990302701328592122203440815028390471622230676098990916570063002011511274261395476740285066785599917480245647227119969631602086214345402591183786266564174530810671641498610511867587471631890088780963162734015375231134626606026622102221383849337853096495180723064976488234665854664800064807055721912778547491887094555900241775036331376584535563248020968728041139396358251958600226190084632412791119012332405059986943150970654573169417813190871318492674206270848280968133899011864363602656560952288437396478413415294358856309338936921126341185166000145863592823961095679900194221252569569300610755896824125547444183212102885773866805977606487594836888183318298698061782109799311572920235401314029351141283501121039923339973480660344877708633289067347857498865603930611301207070396106962177137507079948212553646075698458110463544928731300182736757054465636647046917770201586996410618592311059975435507364606764488589111478722484436185419667886554346935160111448486879969039651497665120653662921487416822112757081971156223145802835458439416440753972009030327041318910047273751255393854702304147040303265722567789039686770931670351173989601835373609753731454600854004341281529766565431256538012450601390080708967404247141497338662378733643136507987580729739983921043862675652652558949139674738180071196999104050561939345938584452823789763153112724971303736826849543491328836694657197506959505630600893849312050088040571568529032425767989314088754509246709345606013449226175061726658201840755400526349557149687635024885436528328491673042996673129983201683488147541365443315387082012855578609375141894376650720423183939708618208305645077930932270826117544372932678539398448954526728951344919725540636647161668575665397957122137533833338880154781265469755961165604132329252268331941570729932382278113290671959884881709926904788721378563513674325770945695173981838821970507348195053180324471703056279999407651856993418935170870570669417101351445747420580912743884853362330115972842687366318626242744636763733404056664044193268304186703147314214777327311712041468246332599344760433869766173335886888552308429727306511382649646487090585328712850125995470445492214227079108187196247718421718422748845476872498334343054798514847648286153250148610067351822413113618790210698317376634375610174872132154113721711799019455090919507081919813747039495139955850090252174551402727887797244917242063202276374389323475969880067096467910916611959070124426657492159795021817668210355388878335532492047829747330421846349911110537397043552586764736112255713109506717991630343544153757957818346410262334905851351276196496002553559599422245804581206613905064505657237251950792319485996962266349223472919424178165627888424411014499897239344849945294462324529847340958228691873510116253733561965066334274757713612472062728672565704153008105435935620403523644145165416730490746016206812292686580261877618319381190274412372651290783682786857495399842443593329498204292191785799771841865946878248448962806865285892504447869960180095531915169301459337194591738124714003387157449131365166155707964458387633069357328864051544092013154964025573838271949039176857800087912388161540024632060228190542960981467932959661322237400115924628265068382544652077150104468133975692548332997946210807105470446682801542201957430695249114706306878488719000319615087070110198988995341348200333810033863373602611374867907399757917003986526714404181104974815902084916117338939436104177819961288037350229502607080833411273557142937114884975083759368414454121587718807685615211331476326636938007479157031043327402968609835259237289243560958051712204952142857244314802868202170971325759378516502897971658472623402710425749259407440762383146582830488398623735702847413380445246947713540417089676227460975468779972177158066257578915377076453989579317401854087946020738511305014773146233089349744512341784577234116616499824948070165123542548020351225076161971690215290179461159028085500786858102387552539669955874654708345184484361034955199249538442123232411943971866724021578321513268931560539020339369771559957022626389542086795045237294800128241892897581847356667509987797985421783424198461007008821598263522527081258037249522306956071988593046659957989928146965870381126886708398808286636783165650635607808470700795596187658045531904680087136580710583084992520695012152343502011408086593006954428659984686005079255867674718231389619855855933135324813841887659736922477247910754666053899026315326560660613183436539313819932894081345633467456470587472514103737558261900858407050999077376767776798379889808642618214901564852459061741883430613547088792373486007962170376962394890870188393958124081865179861601414968930623730546208785825620063724003363429016310098107341258480605663524306166267333275826612103561727318542506860850164192966169031983620572537674440640492633362712472420616988311668642547324936497786565186097066113145428076391698636156035609492195905078384094024654972136868628293479675692625733934092387228771617524564840177646745666837427362582062650448838938131634980471692479637321139141989669907934348954385896484653254696543217009989144828272205847316112973677681286454938986425480725545523356187055803692340912881881545418128969788956941269405975714024536424577209323665674137133698324264634393910346352259576280788778880238604097309844294992760869270010233003757979257727586584120770709316837803074852417262003176586099334305702701542019170292056028027946380081661001739391912868000256138188535521816372524842438655949807190225253607765797489584993945763797110760457017430429046298344841977462401945989522827884015133086034692550259886720510756354501586458411951406934343774047101514776710310255066259893178766471154183641072428841060524301064637979960282261057863742313327762680645693347607302393581872923001778684813626573349578794493603438053366758345283437187613672210018040200186282557068652347599206983481848066941561243998941575634950763581642029844265570799714924286868050821065615920944037480685243155467366564620105499298432427645002392030178065139811562500063075184073855867181237444468595490618014376918081299028513915796258795270317696639561059297511478489974317700244055450549478215805118410531451920119729637939787442212507629793177666996077724727930382248322113811515742197594630366937292885222423641977515305615086621431064569360517587612906443007219977967363317712324951259325837326248639951511598169693284086970457107362438184397969758749396579590743066362518716506970577125687199010623197568673786773598739444763451024736099564385938434430002234797206747115749260307199601233153244677510021703046873334332444670941354818285820337875331361312285233873076491035616610822495847812056142169351519659085493404249714832643452251515864141484959246590323320233697270530130242508704978843695630979764951193524993502215004003853085964697914228339241916881615717654820190623731114640071203194547746494652630680802609435436818150918870755850644698836016997924306737252979361063150807665368013771579617158656513127032704719501836583400890742295084813680490530200648083989798215540753258898724789566097813674224074516024588143590921602315741813475915725493511372905557387024521258144740310015149942091707942439021066453248939607306046967453761459834686770261852889260926936507632584658354276890377917756635527068623102737235619806050238995184250910517221119066433589049448589904744799347007495883182907275731601080065399085126829132193110533021674986127097003174362138886533425936712351684206573614187108133033447539436094549189301828542223713322333283803856393986458148186209184899751940088845209582208101919755946499209779111659777760814675128942533047771420940055690468133140056902886426491087099426063149714418028104258606945305667232785171774182230412643644373586575567556654943167187324887917119786487258284748008369327930635752252903140243297492327077164914423543224310609868651996722618068228973587020781367007413324606349007078595764973989698314983881349858216495268543140594253103353115120136178289162807866054496736891461255440596790663973601638277914063425754091140644832142549647333849412277613543882859278203066677582378627969934726981346363512231198085262092905049167037386534091902002462057646576344014745761620601151815284354049497991363097043962590305136199196063620035675347738705984707055557964382086586028595390575928172290120450785024900800767056034471225644761072396968709077797894431000578492476811329504265839281498527896231022798982046597221706592745717385965163398038057043262736018509942608250345172098574335395684025237424111754058282282672144374257367472860151800119319017490187653287039296925372400953505594677840407750691717896254852325793788621101636744486873377079740471809405171090105698659940490198894737311901042046965637090937783452245861175001356003149351108617401749162399721545724340240083457350178017576921057387623503115453839866562261610563817598015882178381997021857775705666277955132705791044630068084798604417600295962859872082008172123412675717301424119662569039000847856707133585884376612893003002733164697395217994007578732263175486368248673263838158727657516504064799468364266020931841894586013530058863627019776675744856693005399306592113698564866498612497568915495191552469976750850196514813026223911230180308404063676781555651660665683010114967131795157399000181473243470340107914567960837230966156584174532502888238914603499693488135189705366441364500535317013843169733172887997766241564884101089549735960027440647232103230915279851665852368213831158873424437819102997049648088437609721340043889489151352047559696591981835192882156738414919424445398985405286923592264485232920690635710193173331313771845046926562008656305109905884841969215224010136995776661968948944587092147401805300396609344706034194576612447442014228432870719787715353511643308554379107898941894413899948484028489862145005629034008144967375302663368793741145498638258543407306547897529399980727150070669255570660499962251033765856768770677102138393258477877810551148506489627702691321028553184863460652477804878564969921385693486134974260581360019125524995808667041100121124264608527478295992460988905408724798787640233678000053304471515557834776002813428382695403188733397177211558262171577701547781748847254563837506374113474097355251306038923120361595301533715209865945126081241277872971913846016300828051316775501274281912238754817108726980600250283904306026593525837030188013779795649147326272330612209794921839923464738657144827286530255536584356459116321499306468639721029681805173630103374473188813013281751960302856222435884191893958560660626008874362373113866170443053549652691390113969258979629443286436273835919459975403520211967737317877401708042369384103949020468008406290975817906597446729724256725344419650731412663912932023682730771764713140596763771348322696484513900702545871363190182600747287626065042615943158473516012455751144417484100635421733013386200743667735980916438280226801568530949909774297070513572511403096164450383354344030191286203697235934102668649945385350423219901791673129919421833909800989392869476916038018404051522333413122702010076102459708362845908801887602406497760913305951116855546781576635335858462829099105089955875169577682845678914348599406450176371345200876675076161942222313034905803890438088180280179424529710488071416839667852025897890705002155753687087441703267071630084511201972303450461095565158389282871872784083504081033422017254248221428773898724636399204611418082029435886130252998662708415906890446376164506157998424585288231566896503721835384363558300633904176337134219669070608245627438625450884614838018233833060549837277934120371839667081328715978289409983977293485862794370026483594275781826252082699693812066088840634524638720111760715495829262471360654283228958255766518571921904775532577681843614359966351115118745651747690422079460995136805427341024675232836781584492124893902230058333056863860317196086182986079498150908166680567591812033205300893425679556707397704323782334229989226190892431844890174982769811611982139162866236332159077492482223624928655239171365104085231870013719642446520392292797430606329648059835031584462050966442901987689787421008840247622506343450676307181373487482107700263992078327195930444310312321919382174447156596351654651866394607047938214949826455756707892131581004738500740129888083025961123945336768257115754191138989280616879338532039639227732596195280410645203162216185656010846226892115208673614288709528314505923367131308646974338373299137422177371852567703969948182386150560819275733608007752620676231364258585220170614455881317296773659941113797421379795013218592196823507943570130554975794824196091986334761294355710231132596268029310727511241137570154538672945328526886725763273988082485656522288403606433559469450090543048377780436805661393481638319683164724413885849127923001452389039566018460220426931807653581919779683274776119604107058772650282880701644145115401137842681961057656180201291195730048330039110398968563030661740284542538721125292097553522347432806540246753939002363316008591646837701214565004354324275501961572039996158430985030850941317732572263311543899230442846565517318695397323492094441009209582053644776625827982747776700820847417702494684311827843235400468626040202660460748401047661823779419457238926375741987530209341099721769615650981577060626981747982911711343483545502909361685974314576008303542152733973079581382302789215169273633029793695325410280773022373324308509085294489594537522806113344593655046056424818191358413406890076484172973007780402616129755512046560895043878963720131270570871805616412636162655558526194726608332450757413208241418040799516704226903391541291427574941754190424031372749275750097713125425234311993002640177951218380991935824356251498216698157757924840178916001474926060318949449810282814811183018374691547621303184389081608972602235213567319121757640240987013495329038361900786133461384854783714824011176154553109637401831022545762008524257435061329615457428405797740533924036283091724865764973995151086489826742762571042856819013895171635649788823130897572952590277308328665471054473361286085275547769935370073330780611109805888961322048764778150059692350095132931653000675908878453778401288926249339655142582708447250954510329778334068610348232433059208254006318679211432172694598011529520431847702877780158878184355871278711754142800676704181081400383863272280488306289631771866787731511467673559041459969415796997836585405778842333678142770005849607439881686155556061816422774488462278706692757245468527244799215367433733571328320871490331030013890290715273910696621900199534200112938199726595470936322793143107253396151846502540949342956855421966898403384197748770076665910863097229458817414059609766580869866682166337241837931826402092007000315274057600213070531311112376322842331717728585464931059060250889719941030922327925273239558136627712822204898505941003153053577779389694319538698455486178951380244395030181180865202246962287118580023980003893422746463728307855468424792830315037185885104680265090956637527038716875689422293493927405054552246899827143971878402918778319827399287977465390353580567764609577817732409494640917603581355339797051963980868941645359961323919139667188709615392393314191965992319343809092624688996182672279161169786194187302500904473665681972546456017170965485586709313580088127717438763947948599505219535776339645744606790499385433450005855896614409693976078332096125747129854177697585906212132611834926720207180033025276815839739441616723997029143882028927153293249974126522615414817426825530498880519139639043353842640326798151482115242361827229240724076128556861887874337180114253943494736409567754970472461904502133331040887058795292279901598085554360673578577408228561594989902537271491621151907969194344898246986140558343158084821107046264647877420006976742885707566059042202287530785983684029418805197050412756818496838029699525848560473118098148828829833786637611745746010139364798516169872809619256289112990861126962083556216150465069637597332383037730347850552245967001181558371443455643424228886285664520901257475723773110627788412008149095791927004113788400397622120423786784861664280567526454143551682380559888069663023739755740636673420015472293661597287776491046025666304746665033875743400731744255423905821375732060831510182507450129467825081364602534913716567461083333408053697175123371428235806203213022911130926642248899429318341755787750839504996079916800830716064038804349667699630137336713772537123783773283646763635840055269152837229032548225878813806221894763484093266671325980482471901356333512088593823655602826584027589796740150654795044610461208272231712753053851300317964978004750492593523778954312635102999354358734004958884844031296165726625146486705611998862377525207554364454382688120285206700662948061600010053969864838381390954487593462256040569801355964793298288717315664827094254913726756712435285862450239393147926830091435721272680305072986350770680597801463092132110102215616445270385614367874510187732192392716755947538517601356634634281728700382582509149407755366753270025426105448470898375941030122135658683732711773282236529783123949510327908908289246314762707842157259309941406901579595243150902030244966063876682728213204395516876711527925285658348076426782261584365973527406265697075037073625007956422016614988314555464896461344143505806065818428149426406822717922928452209116982337364520099760665947489193456885131420459238413621111006854874455479223531116980148970987634131331383422739300507222539870700885303663791396937038437477625068092192178957464646240084091863828888147581880608279891730608459908335939181273547502044022297628396166012335734459840053817379706222020275818455328792188362170519110193814957129559159381628495887490630066378899707110868906428828152595513388801359683083978810090648937459509704112286827240719371809307913032814548252142033364504962697372484415276952479986813492168236338684290398166572196856617802869172650867079185188373711446804003371828209657521802860935616649068881246867248358675220845013157795766347792325685599423352400692849800975238099385908534356096683494545236152983969338286166212030545294357021019989048183551067866646586569586422910470032930466429154450536424716602070826618458136473433560047392582724200192262263984913855584087740070888159780366314729606814527748195931822381990935248475244241945547029952388477239857460026594921456528917737610381953521250527233063980351295034432560475107939948261294769555767856026889998467856765863218741766115479890568009179330921407781565665856928063979993927525571736166179966734094023913511799493236186497211738322617439149175346596448074492787375912010194648475284740490483256278296143085375529799680642894361969469430809081456567174467978149022304496609875501135808138412842080274039183370281656839959678066643493296614340018747388266004048309687399206481794396836250609478480425826452951960977213871706777620192795763646437228050581799654265649249547582843030815713447007068561060799648140056194943505751766392228737584215784265073440059562319422288679599064383638820878777507751897701323973551254911972972066091487775663214343125946712339889988419755486475462407404742086504767616024548296279598346760031239043639619861220794450353224315295617711730648425524991206687441792769933759296169141715888171146149724354374524465721995321018572359546128000662519854500187199990159853321892053879679936269595537656930078394858861080691125545468324913021046055953206681229289010657923017220730903152655773386226790070470565605385706336407807482599327133367493568979796073659845885138387050931939883227192798349652510549465568195818002524696714654391811396496635932496445412438950981753093649002703231002979278413671655249894625800841309784893939399596409826324977504141274837371084852478059840790400571241374795743050532601970100181006324265210191690922670993270538271648634077083903886297934373728886484070738596431982959614909780035112551714597356449794303837994303602003026441932197172749911601288120815152013740583028017255573195629172264576344416178448299851668435909331839195517231008005312285185546762964412682065779807252695787592527516664491691251591388616500647334086983041292689318436037290512630158843273368070514993617028772707385205163535592282511614893323222756196261695296453839040442012615593543681031511500286923990615071335130232327206510386645363355425167796101986150778255999721396961880069083016056417205396318756130093156857168735514864493873327380139306900582721781041781297647385229452339226365499655299963977686269671192423154474575402390467769818584693732492606802205178899016703261020287431694282267439832260568314153809190122327658770737643437729610486771118161810609458373613099093777190264667562097349565102660336515855890827174065045123973525924240907235934796528829274909085153746423420846933110437130027441797543730533920605882603231014337320564862061904977465545902863960238403794953841567762138236462940367195545556477551984057248787908852372561430555752481670749577267371321595674956748825364989092952419779747316526798831511785556871530290643747033553651553167418073061840351264818734500449148901438725573598060856692332877474267584371709617974324001547868834561025777941565317455755124820651175285684666254517451391640627089914273786465745062357820143587439938442895878107596293823617106716282579440090290963756270948154368341871364455674660129309656965216831864402117092127677224543341590054478150385392731153746507988081890619755758902585974898263519365664837120970563157872138255621968023504573533434758998723262763711683194037092433041133662496693568952727716874159901883423066037091164358125384060887611685549228895030858329199134480409659408585085872908254590345661284187060599187692478845497999509146141364598264295451137510883246219501231617789683714434905769045728891349167093168272537780685249640398742955817251518650776334834973325651994058849202879396358358684425080557184414836241501589804879870750818629989553095035477514233678408466772502310309646945442108351952374624282383185408111921394710027930567864824496653951334297353859979611312257018808664777858226380196145844306502493406583292295674100765988548252055534885811088735308809770582189721643166389996581172547613076289402100935450310483997744261991877280542881548035975899435443501536849677675670944487738415490335232750540877875761765593364765533183633765998055301178655137949494192776332578332657828408781008575715257174608960366931796480392480569922905796277340128220346654214937965254111754276582059153547202909180326802674627517335213899296498099458845260937820141152486385755451454428854182285231512050992910053465194573550764067145529996046090226607807348445276459116601771852971154253662151854509655881038322240042621649603046864263306637414252233539603215613865621912733738401149528152844934131275173962525372914004452627536494066854914590342328248386565163723285572759868281749659155074016124617700962247280925786618464989036621202394039893697998832397412980490991220395898602293800986454075814744260116235337900030018715347829852640217049744055437258246887274764121730995633961113562191844785968875123407255036470391171620726778447614749538786214457593898439572509710091510585689732785945724252530840876474021075668890912905536893616271084373665947802902831854437761217288182853403206126766494392389012644158556782151422006071319294410485467749440967903414270693575922202260138167435616834824845162023473244345177306329221124202490170763675590346563228767341443712621682072296884720039752551465398932448000035370140627137610682079776192566547651673367361068017062589619963317229209367910395173524188084756916487550804183041308348298951992455603659395333244927157607435740368811415496562909406857518423753143568896622387842658215267783101161053492171579028631351767875929810952701940579349369407041236651688606526544873610240901828521856336025125822865678488103745792369109972823145003536967357206581071724115409745306601910823521314348245394728792859255088561168808862133653333684427493950815807234161706214266302009210768207207204692335037528834700540339228983187773397682073161161641430182537694609395791330598064795404676320183380535314051594955663401019600843993516511372046935956767792932185184644544090439317260568251721324960518413668928685347368590969249231989458253804802740957737628281493067528038491709150208776502613943337649338812188853535516416151412632574914098648075993216155916751484234620370400651821389950972747313568277454609384661309181432781894301698119159277171990717210099834824930322878395522487435730827436955790491156018627948799555393493842541567907027660584017051381649025176381177406966173044033875635921069626317471286548488672578521387056104782573870287542936386192177108102170341506343653708429646481069365903456933490463890330949894295664903692256973961922654974380753567253584533941856842480148477398649068365407308270137969428254820770903145530499267625491855030300182734599840752527653282804997645801547616451787472884823814717467801970715707577499849663264222001318717545960725271507169279892373731003218830319502308040097479759868849508152581103597493837808037357505874162366026828248760630671858600906036763225831417927631223081814049682278474144216071495739292170341187545684752916268940680672077999217229505900665205925605306107870827126730277296433214830261804326730901271624811605935812602588132431888919890360030469254008492884461622444630024820591422011148795192583294581705931687487614341615016145614357683356280397608034749028610489149402306812775717649226890862188259515882635967451737589261441098758798895072260866313264007463248418339399935111676195403829999455273043291114366761603487850712543226248638399144876724639216807080430733332014241930767374897354010135736499167644513770906456604799136066129007996569118265966958703609407141985511551724446999720919106156006185619422477218156115467646307177113706679824791220007336788226288041904658510884996210540502871602972580649168486113222325719194610948991611994861272221521391338086689085947879322382368274653686316248756540686311708378505931813098015033162618757350303267386665391698746080380830127141369590322504795871387555628516647322777576583141025839478739218972083191053409748028146428649399667736783884980262346230955219443040914465903054240036934701031633648367139443687748582225137414702193243165434686464664495323589816596529682261181507710148282686458303700948252942035287977679927306952992268970346174309433515874632685818770608469146393029303513430250306880391326845563364424635356749304613729325341974917838053740130484220852729002093896699677481403150942920086101788445127133918446897440661989106264047561964728950723249656698573158442408186066388954409955267784876666975833880407342319971488594786177114447957990390921251621937294300144050254602190242460795202102167627063433821129597667997113510926653905578586574157066960712185926341823142155889439338935192645086138811020611665355043132159625166270943681864276047014626288992163250709022670238841393362775149837936747756279631210216965775187856766607842244281738868444284886817258614272160364689772392955717974132086205559240910880228855721695404548295950862103755313919287288579999861101787264347195438274814490914465597407989876564344318606969997495799856237754018879711060685873328617664409484171028122304653467980112943983058826594381751294269345867391702494713319601745312249178950205039288261934468342508087344905888903335109815109103687565286965383208796045920210616352665861202813581781737086406063105652162569817888371494747391805369995517469586209421935820162050776781068446539818761484409894379424907547763094194510090598165109426299475325295997806646605662257031301086678134600412615175742391049694228491235108188714141278549115674091908138970828637653531555249721567175750631656582497986849261204871423288905328552191556103444733242586791115266254718098936670511823152169283560943889768193452223513780482236698743648210041248723879634190801815454885117591673788753395971746875840656742093769093000860414709528844953655641627706493973395549298091713364104461757292728107526526335716972520805586008608648896448147871544537945348751584905404001052493949301855990337456000825049353704280762105273757158108421899506184171253992614199422044274794871439437524447242818634652822698430713282329223829487955604459484771043534876041494281885027605051297155785058733346396711936692410263252374412659941391664740447427597248757889732557829412549603869655220273403216846298175224218361368644890232775664855863607591377160782699305278484077043318774269150779636924804531362044349738347118771555398736621554699520895601564200509384724387764903773932859662705746648882534814216501181759412194206293523902553432062255344089770737636743392445807589777824840724714289725257030315651821466369548736751775742851330192285161222834426118683004145354417689696976706475187040269336784111262902351021711003734655643037514975947659734096495857642015238780681899676651344001833617745628196304656091387598089035208444516335717343817039508206586656182351647910384823549215804749459479777812369980759386191815304031548537934190874258260877303579076263754357709766070308305511466952797876172993343793934256977672904456543785826502162339370256075336766230332126138458906533643742008180571950555251512866939712443388898921327965883862492005395556809261623938557341896694543619298017891768991915982514960414707673383956934330258700315047831416808824004330339905129506958305711782898312630825440272017737845166174340285040723949331969534174575680631861936606720362210536105565264008746316666193890726690306064258333666781502020446139463377364362440190389387804419535619740447538316194687526430303694830098603184715121352288367852185346857800255373657533785140222881810383666065249521693235347642614129191101735316714336828724915381690833619518471961259880472620390481287938245074750445432866846520376109542918417894845394231243894340096275528366922005025300185910667518135443155519765550752520693521468730664054128611451464200561131799746863422822643755903978968753101293228746276867738689304759826877637681555779717741101552390733808789821416940707117815872527379140448664947789067316905356966102664730033233186722922815700834162807553322791424974042580249838117821112287124023643594732936543624782155876330346245833913258247289595285327134229016452254229112959513599307413801319220191422886987838828433700910521365481278038719316657419422856321751564371258462669201186970050026185159301829512876882819573556388958772475323296116910536043359081391447810572052698979823085929522937443538224708243050617796156852847780345155791006203558559839878815590740149280324760028181348377525394852543472724460919750534465335841391849391001514917594435321475489686575569437026670733718688104024981201371995391699929184536469762472357938175322977800967151025804066412592865349390535139065648251277166611980605728660793113169394611793757810706851134393954862804238035423114532125235217021175990137155894340328983766677830312525277891925092654344971596814339453801583955846550548415392081308621358203299267427057781364017787826876845056682096735559994618985081604311744900239575088282065156424331120658462608087912737816923020052892102403088791277066711167342807506463009308912273170033186096489363287971678152035167961518427279950423497143081928144157102898460024533781809450270475054443027568958626499961399998593725567556463571643086958332596050413499403332306873322331214625618191482148175279699266723051543623905544737690875550182805074964904663294672992151148928409243073663881301783874348281163556024928921775096500263873591945997180708710266298702175633801156454246212114037475874081337293919221044608761109804203215977613318128237148180368457706379935379849518082217601320651950364861760298474474902672332496381063258138275485751348467782000511295321098005948370682958160492590780388219916194037463149220280795870188407987989395769482834907673925730546470012814511591109892852549511753224993740012616077605797227612052958407672297822953707219218742909322654935849815345675398273479143670900542467298184123986850643818512900155575556379904492938385516095464610107951738136982757680822934177153452273538179196416044774623914200698805258024537702789312917770032150743524253962527694022903784667000124812471663765192254082918132983490276279999429818982279427949732886220012591057266205280064212806504914851542403024316052016852656088687770593122594182361406189081488377509443741277239858367618828586283848002265213052373810557648402008853682715463565535451071144068963496299123642763700242830622394159391605497279014404588595437760847410210187607037244410636260209993169593338483355167993256992222308198664919419615315490310942529230607046913409333409930169565917836999478523645495159083079462782028707580167623469309792420804787157325948672023617985433701148647642025462472341680031550488257427909294536189778086422956902972492347083225763720178294067299200545623414536473383246600971465664766099544327098873846111620612088464250583767449752343663273776098515501599117317364001358780125451745697031884002653210529474838893306055978840620312304091666943664797304182683532321294315758783215103323219932838016519419623044808692385343811820964262725244862951360497807757921743715145371215547087482784740294575311319491187755028093003026341826761362699388375687927238141217980036036165223968334527366401765507134548137238848313652021299681636128808085063961133852395473992424602860424717322953124817844338278689195111047691717725600357804622138890060614013355854931769936670910630108516895843077069196812503737871288351341410446047800203943833018178228745898877412201856995448467826118810310841851257589596941141362598738006766171149914874193497884931827603955922605622554812511738607776683641059972919300280842651862462456408305083697892485081109074194470100306601563478504643454539350770130888452765463474315157899050424641181035567302877439949488547372132932357218516459353161585642956296340788934144924965737885624074380468968829560284709825813047078532720301757368458741661153738312131833671715678920179788308271903963684147135773795624087138784623706702905728691551312153410109140087240177949507452705784807156046708229088867362294199483192007038219356940357288208039352025798956867543588188778173007006859877784100742935699124065608764105739844767721689396829463743188860933962361928799812069725413484290906287391110091992639004982343178922164464832830607735228832597341113731775678724900468816837982975399602949959601899563819910955052650186435610166538637303504537595302282945275692313644208583306155661586973010027838318390094418930949154434782051662337370076193084605328639386274839477040767241775930652776912171756417431976632793898220824583679410689881787940692480558865941514536658489653452658424451230583650340673499414395654587498756544924575717504180785683881849087971654734665527784435613732845869574892588370500471532804164278100644007456139593012691613419072178314508346977520898908636916447541720518698731382743087153290762434607898435706395843914381124600911793074519867828764071381197925946815590027231286036936226163214210951657252080468878611446879156597854221010943977647324878904813297910759021707219584578481051679792239345630980242105571133488751253904092212331229451152921077380035894158120108178530164297766806887242476813695957826976325322423731639492243942312149700627005464071657027342440245122084896107352721986928309868217178351881546540843253685427920497451070491990854689179055309851258644958054307913203074147973992620304215098126266821722287553564834176532782065117888480934566517643908847150368519298779771660117656650503229875465435264267563638612562787676205860417172505001309926614771697157154975694075257289001486483330163293777753751301816819524618064328171407739381737165320486058414441023566654094346021029115086363714558277664392558030993666517913386471681821630014867277721021016817476397443341284823520562173128318540248539531380737660329893927684114328676912782777097485918037915503138825774604402481078004254574951268072799632686357310915910319808500440495907936090013060110867029802581402557721811537023286021262256660148262472405619886332379788111083893249649402824002974339112653486984644187764219777819119177197379533533844203850575549784934150024673891171792705243539603366043593246427931277697889097202541284049292417890145355926737475841790538124504530136489475673248472278683209502997018291049650045866488553123133678450632648883231779702861918239054807836577344291630959855645233905895849257698955388795669431705953119208393313535036289826800437353013461918003628314038502219672350755789159738612708251860661820671810216217604037987152001307034349160443099479395148015456469145631736889561429061154473114474217691568370489097380712572355840576963338423236835477908514343373348322598321464540392712156234307317406659762214840621446568977304793230641792250929831034901582759004731046684192825441136772033110113087554101407301407207057034051211716398684960259385794094291639459633663812728495366400020211442519952747437333753746875002802660977561942968498558408001168378083245568804809945279203639820812841815092172826067205488778970377942246701527727606424961295784480821040383442853214231987793334710713997544008504250311605438873890713000442659556399962496569832631694501076854150416867251398750998266684763252485656331631493190379059501932375760833077074817712924791366688190968382911772546282203305008403255625404487882769341363518511505068297668161107498318108504547469883073128540899875102446775586199511344115344813043907946769511028734064967030323372967497303514199805513634039769049736222618240348470862748937775967850489285442493862912847776247317317140485407923250027168478462941242602065226153276411357736562106768592483464595717242881606849292040270801197140709233759430620370369251497050255214070636781655203949862088827278185071058754996277891869981744208424100506808907179096157110265427271110194496256345751665459327251361403277084795091369205443419433659743134682926652109131001587764985616935869318644492150967601033521439675780154784511320019552998350090169160528950512460243880625814320589434034940766033996617630137430032257724150003691193610082405367803319323186875494715672499556832525996001723702437251909032870507165123732900118314003270885159612010180427783180165577041524486220921972878396137353818740624578031507319188279685208816943523020188128457695991623089883238830382134032557614653242535230240531767508105506955471736669986177118078481902307795120394447788095082262644107208530925393268818477306807098719243918777568211149031842838599916793638414752574685793045890673219705453423570308311811634637848850602621509206295786796205617662248489652837299633536581259972015514497760317332466472266957079131314651795147088580348894057767414905118233159379224343869361194662820936717536595106159163109187128428996959156597381827197545768370131445718661215744879656120461595352898324127121181604102113006269291003770726181905475257458264181323153291295132502668163057595987781726954372334093395213133427390161624365627700146093202885667892094634679364154005796762663996505036619214994739170367580681528965672024444411202388085792616590416910505985692842207563090641896085426453811699734699193759461120698713272413643511961887998979547744469855781922817406357224815495255172643127479862848399302008227859570898880576091100007974956833412691406606432338025116021312415925160249764579745027129049694503694124406854460931983059600745801446882075749359071883160145634966655719342140851846801225092780804346335986926476662400783552578458155582490149512856320818518486372189880830144443056176573187100522202952171489938101113405835011826901774168797126844493667489817794221329412299106017204583293414054912658262956296317345550998626912950119959989168766203550816159469312074890381113672863792811079753803986149278933036502276876925947905454047596688810300968894152306027669802908650465572589809830501331146193528111899933167920390763754450622324814564884575240678820976797189888241752445902565623023228858065711977686302677257200927966245194814617211601434045358321154554729217511859048990453687950858484186920973574591982247852493717019839848596013973555768513084272120600931042470727154298045235227169582276952630020730732875583529090952672046917998798174822447660604526283103264988560931538252978587510897033989955759062473490864909104785403745511403837498819976645370997703310636806988695187671279743207850961478976937258133890622502401316438190732202673710832379961744710874530498266324642047810088087458662701531701279914287994296753408796570928759099722207393526598407773694149308255849377790163203836646583770993535470759262032187712813714465703720145451101032189789229425465950385411683639995912610563653623918899623953354365103833603669491500646211794068487270312660669631048188091895506995572768660671174669894686905412205721978329703839647688620052442892797903647588497106093744826472997884518110189398355850768083185767550174375171045719039446789195546287838776858217182964776291261859729039461425482166632449687813376309836482845971510341355279472563521742574736330279789075059852461621712802021310010205302763775960140064499152488029992241638413902952460485406773154138163640242483463228952403602334079139195175331556938909393685214645952029827727541253399839653849833483627381105644416286014861339241587853718616544266734350207979705222705843215876539312446279649981935539541958378350267729071990061267246858210112165216376731549346299514667587385504361492140401079048813308997097686630407007633030890646400790930266843572248843850226139595402496618484930424075351799095243496937100301751920334918169924247005681805417827069512205943286998977246731276718397344269626681532644445603940448317070542009317437656718116161576489516137108427991251591754357903494352473979518107919325714719560389521496869130651073014963133908863067378857321818573788476033708783483802184205665288191095106118769410531504946017302492981992287059293336483925476350486481010228502386284157760520142862011666953099471683626729407065665504910596176552732281632805735225016999644657061361674063700918538316873721449337179345601764288516109103346328666030480152885902342458950898003164581896831604969992325109295372738118730085500391706040267828168776938211882010123800400169001463732522920408733740702865684888806059456101060047061648623241360506606764534432503591485526210409902222279754177104851826921555477662564402992722013460144075747595823212786224553888029523725779501966415120176478244133558410245934061191326949054717278699808500232936973146174734862254817427500459915745742007471256255904917839154808098176859655686688290005272944337108896890898468709475316253003692848897511098579688580583907086630577249898850040697159132774274076281625359959348428038468527007393878514188444556924201137490462526752062632746581875964784855754112824766288108406129364182586169039388062415253674938192154522365714954195302127813746657728547952626421590294094828070864117418548744358942413015659071389220594648722428136246043011682299883772239305955024540092383102738604136982236418684071975614806070043811900009456932292131625399035484132250530249823897834644234322413425402258359493732438156579167598505768252719882768590576178140356179304368731016581246357746713384917925715617506658427928780329662843794607731492490260167381699090949814064430449586640138807109667293506264509162307585009933966891717517118778890198828846499862936748172902609401662923987181586786902046426626372643956301428854244994801853417235150413320704527951248782775148478540956571661664739061964537512721061724504576061426814364299558488823894330322414571152925780444729784613894777455249126876943799793430628837236886479771212184783090269018564463853554108383495775663335646969395688424038745818653516465916366446187087506690829085632107136703937544751615198466856562614655462078644978741123691502604415283113341944895138195045733807985615063325045198793794566172750334228579238142227435657652484597334587772008817129447365789879920038023433738278472007408612431726937219743775314321798428746963154051082387838611852708150466817787607217361857062833597875106415747580107187860604969333615764860177968635339632596767087845293435876945207469687011101592422340955812622924302070499189265492422364043373059740745326690356231635638658481946215408164693558836195996474952582071901439549088623977174306413992552800264060176941337804358381404640543812588432511876660658698125662739603334026727442936667655180354661401269984390351355492729760072129560215002954423477919182301955294071727463508071365814261819321158132593518828112999129995526812638179478513517328633609145185932493130490757326270277814317991004723570816465136681811663389864247134611519717196458994534202226083115141596199901359124931051475510377759502343734444311443741604996479635569060927435666969587324652997230924217399922676363392424081222575373927115227054693466704181859171782026631438423234468396358902738237279839537509113959669342867033402288082137131132116920679998205159745641398343482242938745712787327671069793612687033617981315399294933639360436060811518074538906790503396551368295400249323666166336481252321130009320870795589106754787530067131204815014930540732283870919234085963032122486078180966902575869444354506346096081438948240757901120987387833129961469883704689009948125222650766985940849514422923711860330249274852958834965103431122001101717746449323221975323132308235096152939108435459984209579067701456697052891154013336563653363024459801508170840134401256256952274427692717912206951537500744329611663907342363177341387759422331007513734540108993074465080054623497503924631348862811165805618638448626085677241267181646434049112083282959901855197434360341986055124525704704954091783667974886827607805671894158833531459013804455532236516658318273896515605156782549484773585918796083097292489237921474667583552673414195860511559986885870710916759205339906465454655401376268000774861087170688435371441414554243082439421720969600707178456314751373276744659822119035391682707344833218701768539989768214607445766914244084464008488575328922819146970778201739356545947818837769265685300963799278300881021817996682643457094307200026707019609301954191483087413213072395659252178150397877839975938026614524596146351477058081200782334753413231814296593969967045290765070249650513421972586582620435823862815530841189625150059788168157709393510756793470781484573182114882759009887761818380031790896759797322544039171330902331176537815252258439743678317554192623059754559831493603289919911408005096829686103897378817784496117531078937143345227544912911745736406984531810622445402108042653769971039688079520889767283374928580376317560303801672171161517899346233174573741952844720948788212355516187279562489560501116357614891669312064537823470846083977393303128864820719452379007773470999793940201231982383090273598620117429410709454810041371437496265677816430653781577038330316622342289701752099853443430825619472073113818105893918549546740353297372453511322027643964949908052464210699914428896362440702488653673658926113661544425260283782308864875911037558516777838471711161006740272387991372873284020164124297821050004349286865029855621802273540337935964399232915890347190261140346900892133334754208548349155100602110028087408728675695405144758034120842830660415959900216178235502950613528261389608496987518665905939115266523313609843815642367970132870136468745255261038775479630052586283066296197503676515984764348909996429355908289407002001605884966281511882275835494227551486224427815506793757716575236762418522290575106472541021763634381944192633355123488769020717756676018007127952155798840787058633742009846333050117683370173919424413604027415223722359156655539484040609200798539996200102139980665957288554803016727247076165325813280352287781946757848044295279949017328320301973700857244917228441693020817540327092105526386145539703236460100937067253718073081455732700113170901655803765688305930608097561917925465994253595630953668629405779898060274313646437376219359397336113458259736026074215299679912246460227250979985837443818900923130968932139816751014947758623144397893364503836901343956436226140997471950533353777642310061785102872718636373070061814682140373511206719466807426843156755106777058942438911587459502234788564122831826629706905397551305685726039530593532329827044675199035822937821600443479032137931831450440058037158398345595980714736414318873024122928050017267495582974732978800243069882524224953075807552914264849571062525975510233057588893563288121555498213685673878996148089541278430439956191751473994747223081959007299619617543270395079053330402706232404075947780361374855231459627357119260270122168421249494210572646967987958726840776237148999812107234720080787112354197021686448569008769512634134120908779424337761449675782942131948802438349259367840595478834341214970140048149823946732336610995458214004217341244105070885066066983156050895453320199597559348247843692962783816919014225342414815234739899164111394586675007765626561518287796205031553190204442225356627830448309738953308299820178263847017772451766059876185814571273127243661694235313999966739571050408729012673163219291070641768044405867136272229066546965208389945067658724750483625540095957188859562563341890627640663965749043929777344501630985740652437478365299196799663818564780291850864599071284660249875917456474368659237464036553422763964262523418513065119343314897202143411887254340796291495674659822018633938080068906658196702349763531166075912535083846740444171650110803291287815946392019370653228120828562161882240210981395917534064655185347710593110858862327381765243779480964554266916495575245763470614005345855047280318798268160170962785524051084690370469259419619732610139801074517223143538396758216319368974076751405985717060778181920281461956465461820884370592962228299637675425764898214269489563047841182134653950771775883743886293760650000507282569754340033633835137936172055347587146552699721605959239206117942010565540772746148647707555109680917465554942931333559798055389361133055051397465605482191179904605178240153499864293057463760462148095755734502022982956563116716813585083804088511545362869610608401493912024669926091468828738394363205578704800486179175922167539655990750319323628686702368461316308924658279420514228922931338308826828986834043681905403664865718938235226203233839920526663972923685274309051834095683797082602595211964264665699798788873998594822718700503486225355671070528504755506415582306397075369391093602701607006464693937321460164660700101664690296063935191608263311775804714955872509389419298776433013771364196606756540571411177276128312219259678618698377749799620503390084908788592021371942270712974404609090740908719968233359367796877541951695808871987455255459080156618847827489536908244898154406148511656720645726026080569396648220906390471191025788928881470414696852744497869771089622982224130676853518976818815494900385473939120924345993982066634426483149159143345944245469385039947305446972988486040859593142543506958105900130839198125903475203779878345567063528581100895954131372845818178824453289941049938155166831743795025224406862356758067868638542316728741312093967874754480101872042998984011559194688055199059513637405550818341549083043718616220197655069199052989937593691221852248326445212654568356591332857939927563093182028230536263974402753014034267743279647746300102661639538659080255430610909117057409183781158654840924519832018579372669511950223326964370388085316376783426611025651857108194147414904521296219996184022900617593298217389315237924669274328200188268615786295336400181954509362636487828786694686043431533065159166724502895247182343209522890844807556341884625599032949849390566460433315378551745835034687493435974046089998351758765411051348078877995877223296354554702436322826901974803932326947744552588377204964526528323075790455737100841026539300512695859331192177193329406633283901571078472151603830700537068986195173631207089193906535599224069138885115034751488023377479792820563214009143291737052916515663689577499084167503453865061151533620856431771570300551480917940706634433312518578436570261811049459528452348382825513510679047114617279828914463697528837074173512170351136961524960038449459269535639598565220771347026696196350929331412321693339103463995267460485054556022749102887925566112495208736640805582212052361381016459378039286043387609367242595409431571506212268659443598114258685621018685802225641417278561514182634510271110576009643347701894440881483835612811639936232600095291249691955209978787550900276205066542882008511036213014054491373734777044325787168876437518716522613580025087993070627536849168635739170669547457334544719008820358967355754444703916865743901309241564163938001341947848782362731415454316150951486862361174477377304510893990634286017638260413745877820240723101165730648883490948436247632932871493819873691206562647064360021130974075911689171789332355268707114398195705646960784732075315410497216679206960600732006671967772944054759570240378172736431959465765713231178631326121438787656963536258368571612232064743751691944079891486749814045853747886127590293942775486650926093572496868488842268723890571274380930506564142049212954175922660137599272069291572778954943497486018122179313724557418746517360295862853196027903829948198956734510796232586178364583794257418809646525638988201423859593684091854916187297178177503801498229310330572257900221097281272399059629098698746194523671363259970998343561728352422599349209640017599787336928805923344621045483692797688272186284945979749162060471672461481875132253594884212470486060169796465456659827512053654377112174918098974944630185473282527151833181458522097452637554495968819303137986844792624105526584018099990252792121642932348690449425264601537708912105907557967539189145484446065335990348311303028638798369368606106096599819820912135470932730292771989720362397595755976621244783159267481199684957820508879107217533594403281939732256846430975987536354679291618913942592391555184943082229513384455533139248253830971520487894079995656924892749730201757898854358514982384020124465617551727754277721411522182503737487846038027308314145718582623540934789759097675941287092338065924058802929240361241702816119021944698219274881175145365042869481299079416598973756462264758559495093911580981011517645880843440721685580202562737532654973080934302719357190518820372037005690686228135031191097003077843105792686339638840366683799810265223175337104696210841105040126052343544324683307834663419907857541439992431668963967212389583864478734109235692982291443549739647051457673237639363966095407557373184869223636447010283815307621948326292876742511995666965292716137948484051958563920177855545004290970893570876516603750589187648177819399230584229078708659260501728094961082015520673399893493760098423983062206904573137031060022125086341873546478787586478176441515861008976853836977880205380788466417658308691499025216240484573568550457893916881734321302640765701037178206544988868930537694095366874309131013501989158320657343368298721298409422614994036779348443431260969836525764215004755156971904172638140953492618953829575812086855202618770452187728339463703973872223916623511752350105173140528410709594811322184952706392846396694957716148681718751552383925546311661334561386890341689479188451411063280188579773544735829206167372840650597396188517763995221399836184503008448865703858406806862099433255936222686736505001517211242461343422345143823366381474207326299580981854337059439523520576073750988928034470192062341457945574733695608946097221900555443089418332736456941435543370343598769807446978631821183379409852315259155009094737887362961355709311038457698981455922441804795567293559893964933341920168010106960801916065559580788125143799370514268796150834884321136025553754908510534338602479301200399077633136250867271997570570484316954124035652675119614683260163261298764934248460455053294400403404121936070284384233040166397556749400508987728564141355412097063077190013702150088488789739497845427132244281556401087047837425052011603474758094034616103391710231315204307253238189964158465349583902699419812561441887095435121726226479614078538846776447055001128906464432545593102159483486583451895669203561716141316298910177003037161891368525888910070318831099370382765287303402969482787997032862481590613408229693891526042275908844771212076902912752912148085383127592818208879089770869806805039343332910412177508694978230189296555673611339187202894856291068774102819471992600956640962125872653944143427103438349124003434802093049873206055912108237970942645662986256197380767879177035768229460030765477782821501564722400448452125365614826025049635646520410468872968713329638232391159316159195021696505486023844722099894643743309747188170672398840280047970688530158314424716639132177514411805016813193293853413124162051760427715898683367085333612936189835742263931950164994579927313324112579149268417782687530451121842278191148041205451581699413980094208937689103097192129034496682398104477934630051437114712190494953680111830218399379574205844703709082998318452949285409888857232538588822623637243504848390840606203176344391707031042577765393897162735325337760453203339252385667995517300455697264407424447063427289822556286539329768333653774375447303241683683974685692154736415070016521996679941226672516369926855589767759349944296068906845981762291945304575761361335449022037616796529932142088588761448627548107708071748003282185253055315180029572780725805726356953147280924868876313578575403290212410481762360113201331015089174259385594886935963018778947085688705322182665175291828594094444596965389114879372371448321544675993019538798252267160796431056083680125757920793875107949064658648360982201634508775154464766607550636434450946300589795504552476068219217097236226317900061830435346489603387120817803622936310586387142762517687391568077742880883034401579346704409202472338443509310451867143982352239604493450805844861979543740836917175997604489308621753456874645139384389765594461116390156479748040674182384804992871645737866344270462979495105653764278375073411865026949064525755064317258120260566018395378887192828416952173390890416437677754871933770677655516437961287067386832320907578382411691310313501816680350524585873892133897321104423603843885811510809147816819041461177592890271092586579940852707037043002308476939657484566871939844382354224464567085259100341414076954520677260449539497268577950160591517752100295609030186049183909108512223965624360809048158906596050369258284719999096433833792202375538035626290801213597550400823278037543024839948269697007545166940148678522039179330945331659914844854795106666727054754003102532926890611687627272346887396890753140352496690890803130595394413724794123080134223110570935129494872017004280666498722368807201444936220314707464928637221604538697419066026302424616605153045462208957399335271208402757458709204625637173021923832195123626316566896390588319747081449875812935740467386906677053315224827300669300230793097363755918879030310069902253628688120261200571869773533451644644022363877745957206131671854741402119459485155357569172673297252327274170148986154038843131520072353343912080194171300176824804295104623744772113067982382744283925535176555223602065238077238723459756868646937039225028933316450346446260752115711753872470572012369069015050112793299026268051172064265884857982775834994387942575899333442762829621471359382469891017366848207145337577815472106892583154445158888406723030558858031516562527981676365656085172340072454645130152086889659777852438210747759456098742595036277231276120865537879745951485513510287205099022487205534414009708116711410778064352795991258379025227676988572177215441885944414489486577958388627308362784360972916626021470413592209545856111438965983563204722411802229600752936918515039793757170172563601939105787316151417325964168485439908014416366419550494697367099198008986861263265548227223417760485447237058943337483818287271483222590792055286995945834287563861912750430467557861097477171816655165264623616668231211793514339814718427717874716448903386282467736164264486973933324090463060008231330625317764611076922714241053520807734460737545840909174833498366316247127494010413737505023268858243271591515265880680670156398700585908197301470009798802115291811003902103155370409469933297178231730765965041486799217840756587044085566844022066759196984278252507019621699326433719378173293792683015942171671434018321022960500697829080961357794517365312040962232846615454572130278115770707001923865883469624545080737127272629312777074938091631506860201317299780904173895723563600088390016085085025420720701941135313446749813444813484540786974627393689028965945126694582260174564073947552044031602554757450225936721740626866296037959563402334601965535632176135714934388078630225777435159795143545772524465469529689940373040890184443789258865782887388681026756739308181064012142404918087281340473243195370744027931701608149168653622898555192646802904286254461451043292009118898299406814059160722842851330459246366040865796490354768225050086984351506541078933954176843430440733300702640004145984168357477982283939408357068814385140947840785851330845112008349121511882800077025697110737403847859520743083505968623201973556114408342601296611270978475297511374237680703953944793993613102016182034987847183858576249465851918201044515955657487958846856513676622672323513313313221711962105944843689160616240789646844776109442115189082162676009349137748647197950783442819358777853112519663924335382630487305628796730746425803465597817382960667835782852657016791341660942090350952910904835934463343805124056345455653141650053164128287718401186059616208721157179376444425070983970375720357795177857334125171906618986204122531017348547386553982339194667193650259814500078126123893599044768348906334634880223875788166600508954449218905439865829631721784812041501050969173829914764786137811309520997434025871909892927244436516510863161599673859155946599481672131428940126327108334953428205664890717470431589475503234879231946980478678385787965180696884157225013772064317241072138373318552806113552178460599860312364749386875648387156736046909251783811292996887269483523272287063323739935323487349789276517379958658681620147271945463234016252981085973719275049069395921920072380468557026646918934381301553396728178859119746869550215825550229598396173749122103882944331997251075084608008864931903173404501179039089982350901591829662609184141117051735422569858119561869960013332796614013997123154291880764595497209071005540157640549770076423949484705707259230079824406693774547296467575469206244220053538661579649645412555107549738473567046937068670101832082560199192672868496723915946431568222901518138904469257388449743302607293655646895176155082433557585436431253616708742599469606311609610161969741016851996553717775260880624854603979163176912356083117347476017207576529298155416848520350633370688036248269269089512973218121780756780806318918189643364841586790143142788117869045161114068772783537766754974673258463387962839543525176463185139498980466009930354838728566650378522034249322387806430409526520646964862093102277488654369559723637949830679446086809579068960831611627236988905452320817431953651205850713870397452993330434730318008633777063530596134846151600790342363329166584590147117237390409702941800019617614734844869478665625074971489641620778756811821774577235825934275251207599054753660427741654383704298062537556622979489048976399640051535404972614322229921046614251538884836895948265480486802194567850946425210682102163263406323711082967838147557827528716883882459188699034959743347560538767491375601345938645401605373563830253783472288943352883092863934569831578291497055821108955224235985216440389768790808725040141407722040556292905441164747235753041637740500723655884327030350836933625577101659420577370451059126617742252915089030244642888555857821948688922034300678827189333629309455150416078640284408286507726485783354015386507349935895604512026226934196524822466112725614731054633839551667659897689660327245178579244929099541054241402478924499610402564020271902223364149859885641249369932568234681175378218833637019713890085149655814968111983167631026710736301272395228582945208309503258012218612604396040507074296204648359726530454798055740649629788087789113428493600410995752964836830729888968329037235307775743792782595884916021776760121883650737947357519920705656353155896422309709145343942752928501696105501728865110022537151196346977885498994078033007599009898284714900134389848215109509154471557435665860486946597748973675940154000992060099923218164952353165241835341412027333605138236517831074028467260972818285446835985551873429757773936412746569192429374177331597779036188776227484302109223742735392296935674144454165772200636091609788283892358380473817400218342427607865100671164931492893729130494204192459775140465209226373935386823329906011027536508079983408004980472518786464960837227473720873599667052371403100887919126123652141994185965471431096634352719101445456923201061460389936881962938003325332855737391047928353518586439341320713751155653563396929748612744692218972884253482197635522087894424129434504795495289478673717513737675249764128775715943392714278100907781140767829787256671561682477711688377855168263649257879778701572386381904138923089172964949737904725413816664410963177386486430268938664921526828070574533897255906388886996052933512546755698623968693994120840066839886180992293934771694469132152637583004429820869146136629816603740061018409007884447876746339928687741261745090206582524674558032636772284793799411435669319982225601170709641483317952355877256292208177975100833811902145780822256931066382158403421595807613990546526431657955073235446262691505401606845371576379742657665179598669571443987307473155794723433805273641360060582633516913135849902786401013353702017678287053215382771388485397500366905377806665766854087210728840792750957987761140183709329419836251138315341956132383314329198140081878813237909749215516804708104145466209714712178376573770007965387848245191530271758992752873091242259518067588412808787152738255530706611560119214376998125205279047426588578082804575814821150788250102026547188308985695055969535481810717572936888513488885524779273157951860911061097170504593081487164669527410454149797104745681404319824434833786276363102141706923061227413814206193551684579499934858231805537035446639809650981778109665675216832811830452905382706407063950845703276636726695010955695843030187308321499753750554913920929327352680671141480140559947611059530598147409682560587659137546675755501452809204941578903255605451132327961150370611181752993247578064250695655969397827687393679763548381882492015466259432568854273321858791436458706276057857179934399107792818423568680103835563544965236647953968350943296684247734029106684731956485146505786344641783211946855970180459300934796064789771417929196409362578543583952559160999954026587042128195158942177717205990910840743154916437288770536881135824009987099286448315739795697333508017645364720219736994945635142624140662280930436761856153920008826124485386334468834468588398992404944416892644297314603756279514060314464942391440121277965627906066983194432897176528493424899329157634858801779610760231542095796613558291376001882024950823210516068752105439766564904742610465214388347882321266318280004293008060505425886321578303871969062233520191269200895373508723168821345712987647019966439577497500897870239438496493377525823357427269834973850611332277986827389606198863778236655527896052414640575633540109577141088939495290960888406165097844018266186569036876964961370988243944839468204179635186637662127959150580334366888155085134102405435704684630749067783445093435204282735814904532731898578388462664315194694508571883288031931019928547664217964826534423260585974174061313909235523793030135420553384624805497807448013980721905939216887547370972675940498332873446724904121217086204315141651844307527076319864816774379020259674760191440182171838908197809408453788760321260161180577277100227727061679811098085932109019540995693729584369498872601855424144139681770422800431099575537454716006970896971909983358163457968937389630464572656040189404826365087614434656938938556064861188028688691756787628585397371432042916462437482016260452999197216055695181652018937877816728184138689815410893772348576082465890367725051485203926518072021173845068324591362024045755460510735426576225696974852352177719918857431682067384404040971218145375346308637406038252205121691613652576595124039127859430710792358337915160058494657501249596932477491948518289082548518558270182506575229851333112813016162207838383962505416201679311201856462407278677854593176941955640545975068226182099361344640025858663699908490848629193326327529307847983231201286461238874369906059445252733354665233412720277595556042717113339786703639783728117531990874331860953799534431207588954188914279763428969721599055140726255061581269003124732986222579882753977972685642249042039141464782989022714859249377763657973817733919793827709100289490913047370437770664369771076244311302542801081383556905589519577137493770061107591926098141663446019626003491123860373990933828710393215243419611881464692340641480988222232873650023196399414398752469207734682585795282370678744653948719578684414138887206312168583754400878467980740577740420376646347515730048980916782170266236745502412826880255009034182726660070165802457930251639764584294783975210064577642872451567678138193092666963331422756525390801970624656228226083344278655470199461819197337320232550691800929550956688998513605165340984980460234560786131175362377609507763418111169147917147922307231907101968222533542559479953789152242303382582974429247567154311480669225993477286831303578778639815020250726681854257929419195464313595099195938815247786006910848508247071368654845337201406742926162238732782110298570287585845431543212811003696461178175746659394206545209369237687063638194095049915193820136809668260320741620623311907363066958786926951333610284909367918201020159646939438965883429829505676804426536685162027312445580714714286989532661766593017475847593678714208223751652191482721166176965365484202865870972719964794998971141662389427431058305517501924042903237909740305558634441112779294515261428503784467429959747703104037153203999087677168700235297780013245300318044944089379173051549793791195867009135888805371635651536593172236637233168205282676873209025492669367589093177502831847111363471792302080900927282679150042117820931422781848041130540956044843565191708643100377556009108286922078809317026365719174963301917416449266533078086445382733959604023370442347658544327350765962655194890237527311044024497301926330292902381904282948442389226479624639091209071932134683979217471987872911035984729330299990645557550110559242719443456898196039448930040876162743994015873279729042822285170033223094825902500194818370544364811228641935389436394583101740830638640627553211060761811045576430054530200145468686102274866052507194632815578141504713023090586718470415092516313687190345272469120827881033524016253272261436520157988310068786764648286974327488236957496281213428889508062681015507372889789511402401110260041058979440666931064283845428898724586002860528920733588177632131807430008851967342230770535483214238080013084168422373373349912256253372137003257648850568924436807161925300552764481797440519238173950073611566638539514451446331453839931371894861450016363330930661675366400319092596520877807026622859112165559916372816228750674662906638487254418410636615967000498180692451999815704516408501847765177249837747801800748118117835664037957185869464124287610807180540926640782295894146849580144601636677959263184029519866732141608166078177540314721147511449781947000837752267582218431439500077741750038219517390104948999508341972485921527628518279050087411796449596751218188330749895474385683072802312388808042799518254225251128495046911299131743610615766689540267818886540870400290867976474373572619877863944261787796109579785344937813738507592125956194156266410667568018779135829274993291040942597870727721225571046346623860308276932563363131215127248252672103937557330376899419751243300669544973323677122560012126146888032320182015975194327678117466358572986141661340380963646461555836559546497868934006237878040564146555956840633371547859053298040156121509703595921097406418004423543753415868995826323513813707434895131122932699875379763932770203059590013697347612994073424310049672801274147961314667229080554498132103558361014033563569425262699654967555052706061585126038578827978302591488094298641949666601450379367307939082291133547729274003485062096392958564506749144806303711803199626948934454762616017830900052269207028992938698499416946397882210725896686794041586648616624423414170924851109999644464142412987195457510102364367299773357098715485834350988464024190001479532529590788355341332434537051623157589318519609591466280882565759484271146770868342161052915893257853113282111920067786547801796507864035129607294469549357984386415316567826077006617861795681814021867705097659603297933851501388319655529909524028139841433899828012890613194995714315713402642537064052506848210564448446591896134095225985662906951799753859932610890756686402329360241237477875346303404752924832020953160965131033530807687287539572272798681680690608020650250211956387303270277511001721090214748752438806486471837578540302979675653796759329211473200417858548083644448985317344063675843279564286746397660829854352545514430112950106662334455108226036360877057424144265607823607230691246800222911154050721649873396271874949330627696393649344579474921183743096094822487861354787287273168949647525185095936359609516384641786145847429005442581638014379361467527242124562788909771344705325889357652209011960748849571049618490879424885105212680303304485098757426355266971088604133137191007626651222926542632523932836612053517276471550419843348631819327609020675638332188048182937915921161589852486083295997027156157342765414176389816501664688529190484524192021529449611310912937834552808761689261639835496959349791364950045576695549037755493599279643760996234813673758100292947454924061030961870204273911620398456070287680705535755224158082108461668389733234560693363782941796833941402759406995292314118738029150607494497472062969462371490645864902859671518363097752374630666487140977398800175289542645055834175850022891419982071305261540154366596468459818301093687046698366561249094272613562940244117355320140445022496739320665626748265527454737764910583297985483751888597639381713628771030100152272611030965475571639825470976595160746612567971497868199421060239615106728708735097247501947665551373290251082683804840902132829752194366281581551364469725431984370295813643382512837103048425297741077001762971463804009122001592995565370657871984702103055873754405951664095164175531158618674908661791430224873512816083914790072538244126040707505295815498010681073131343209680965376828347973982094183815317987351549129906873402342174311741429613301186499432019681656380087084094880292223715419894214465230820474938134452543306936453729004846958986507136239211813434744417742236969766703624395640213488098969448018084281167762702302781012064513124337525774490879031636204779606919199915075606796773920054626716703639558457381006747625294903472110508919028267732893973062581993907979864088155382618484984184026623442425606915661878342168300325405626923723996259434326444538135197937160241100338037270666332238477550309635702298938136003531473462531787379499805392822584204130048509827818579617497299054190113986800257321987778010994008165084997177773160331761348860368835416655716923670145815497177152954329743907128287803013178539580844061822861187226563783863947733944873604105683735267002983397731092828232637860860705891047434031316227167524251888706015542980421461309492912626874950187261616660358351383261185352920393831158871312749700898060535763223339590344897394401696372892445830856351362199698904042705016490805157017259852768026794209155090142170595187255201648624531775381936051090358299637255943599891800316683778906603296633864843034824064738246752501856533426269256172795880327753785330620736198820814282042985501298079109158710693653029921832180711854374269851365046553342037199440462065612955000411956320567671151518007637299236825707154246866812893005922887670623609917781389312971756339757660626228293488354750268031154531889397444741791809017871740205406799439633891904303900618921667165888284845957350914500698435036804067548359592045479125836227054200773481267859062872536570714499995921561632763243764440530289264214391645395576880608041569598810483902483987677639681145046326807972860019764640374345131793234132716794034770661572987555578488274686065848684447028687143327105081264069956688968165855666307976878720865775748296680696356086421715727777969365472341409147249554396097961709922534093808058081216984515437438870317112214544271619315528746991188408923039186360877701864802554402300737878522694830808430612825190140259442911992662329306665564507471114947035242965292914202794703085788581274067459958074159169148956064142714071037078279749455418167174835731891050819593995242472341965601957974720596433963828850604564618756501885137873945393828139823660430106621503220462871142686237772461825781421074265870813206082083650949359508682119063687894249075669416381527816577490328819407221790219124362527369570998907371778353775752010343959272392622792921904805968162006526890361937251977308110021578515683306956106864019427438557884561268214622405700234225497845851909828551918882247071236446567809859454450746139313998980675189823539483177695155189955976226643041561766369658470015464512748504931856138787378042327164308083192140430218044126768482942962783678188913976652827413360169673327561791925823627467776587516460482471391129647346875128277055501626075678835100510009789741711483327003078981786234539666250498671317201852750940113876805441516508889256659890757857449222165813364963723233773147542428590258260628798242566291233637022057642924045686756968805615682836913607609035010076728781296408034652052510603593718742696318688192173883812289703921946652789301638910324017684619614982214423760808917532703426626109320679940113949828993249157487068441096280342969529021478716584275331372740295785655513268621205127586087428800211815520681985195319431076517112131557149060965088792026928063331072580982076663406473196057878347617290596576029560080736666708704506216290304110566215915762969266755771299204649111303290594986286979610358865307943484311430942504069595870188371716726343609788535069703668694334027890838473898667564734042621036337731529729365549704204467584410210218711566263787410518921445202856090751148246198149992878370997028737398334520615971676921216883373355107578698326247698794130728904070711785407152488000979298880165012372919417239249802045082728647620486043671781525385297811397342220929470172501568583040177950583818389414553923378119862198372395709960639044506906731877828301083379981688175413070096319370760570102019575342585415136346961655660118367025441513769776303461068019842110586817313548064349351008918430218280101513161952783352940588415685030985609571831656661483538937200230795777710271272214518168874502300327789723599551151115688056962679331822473814272020137759980064369382233946226760764321112719435059123519143919091849126965585821695509343710122679790750174362796892755624424191900146168778504685725762328424184924477805101971524488552076465849669426616227066626385474469244904868003755785734316114950783234291085729379844308917735500708220427650491888071668562449326475645576208605011151693879506014538580065197825375451995551194761870545830750351432122037979782152826609446357401741465854846347340619140304287815598544807337785152060601370390767526969236397325748746966892927236239044243787521139769183148823794617046036434609320725600945238035728199549015557403202622626330031180617781416799497249295396460298431941046758467526937026688146318978790593517373721664033041397362132014444498519624623906673525898163914605825283059786349929425754968541677671263192128458981291758463641889760054053388900186544661987129549095809990947507978112309790837257034789226566075494428815832341155345180065690757449112991835482284990054989335390232366738952797261097833345028571199888630767841562434566560645915030396885357874469101594190453963166470131633891335548210459110621179621096978148443344621262900878223659623820740630914270894813883635461738033036869671929675096924391438366599424955470228427386202160532428141703066159872620768369482346174384535773701157772065946562345171731714538612566852457338195592958877455885298406922210954440280060113638063801721962346295534966345389325467044075227832235028819299041091198853456489331369399616061945848889147798847468144673512239850774033451512786855374221621276160151627918743785563598531367271958400590952822493545436156254796666852015811685959713158391893790963052585389528018509643132408780337325977926150764778227189753025078089009098070743599621890150638770844460935629324479408185685775490569953700437692375580211461752361154643127714783455103115943699110332428551925808108202758911501500952037254405062630211684582812213521279201840680561753940094442933254625724588330056424919608718919188237779134634208244863258115493809942205333476585262356407017876376046939596102611210765425131238491201805193826133100769978089174284291409684259124969804950152473287577951611171371382922325113086565446149749849780831491648404773908520145610510698526909800057576002095183655810209972239824685255150814527045407378008002383857294080380640271594814240052363099916401007156626071619722459991183941124361669229878997552234070948207064649431521813260994742609257369403352048321155787789772858107256536550411691786467251419233291458569705634200519296313764738272651734749694117347013063125562446206336106511311700900123117242213176012705579897960484125758471536373651445552267041253483628185983170021007413724362492791160050190827909214588122976998340802631820311169887573931258976000475021395915124782332491875429054054793435579758505972978344302598889720637977174754600773632546825100151205991285604946969883488926797090787873927665730528255645895788355171554977703439464198899565988626156262033094849350342858707232359218881651491005543564000246444073402052486060038955898618704655613148366810374254809236838986229518396314307830639435078817537754391407916678015145980290028670678191859437799811928285727667070461857427077560387541533314951201544313702970983762387460067790999107006600059213585460689927466592040635615173158835548476621915885559046547923776192978860223640258254139844294693126055862642380011666583301017036810775599254665770003474897078260224366373084178084383373817933996688201340871286898401403802952582888811964133134348652038182763161484852181701394031789066915866870130206704582158240004109460167649551509932811504698195265148998553486493747753357538207774955521617766980382952918687796639390376388045268719046420365477443741117365174030406177723513283887907957996887079979480680529857841442692074269321294780735825928574060055345183681886528325215544517397666611760679780693461081847995965015903277038788494995063670097705060922823445588003173398328525291212960202366088233466707565687951163274265029247032059062448257446396098737367247683541325294393043176370736533739627784045286106387024537722528896933767687048250037906278845947792030064335609454706430160139870794460440414109990117719036523713991688619286709392583538864237928833241836836249660269507581406359082277514117258301782958430868758769240710023858020459346123658733038783801664552375350012318276991432314068549590872220470982954955865957226195707729039811618761327056449155530434681130799335623714671489438992373582033587908706013216965949394615626405051400594709150763927621352667174809396443557803399603565720545170132209739396506799855304409607823011856769461372969025326328964155933033696071961893119756922146783683472001514596114641489136531985674741011721635933862528881460748450394708016983135748605033517917186519089719255395781258381688374523626722427171761045782140288588591350428407208607327773664064213575538724848079504106252232315446483924461979026457648210128461653226319846300346249337710932679191293762661643511824045929447782315732184541193973192007188754973440781959830881466356855687437750118251776201289385015473293263235467780880586116812973621266428719131745661201799287645770830575519090488357651431060342209287061644988197776410001080361831863661332249249480919982060654028539768842049963220274911235551785566090289119827353251051250306729903512876093999458632043027608443381632696660616935065515219938311298284147589682186426126503469029371013490032314783626711770522887772122114546719602243285846398147657368194248845157925593974274612024024962144695940961836286055276142845604998128880179862470118389465251107077355911522143892684996496161136993487469589767604231699533536763586623747567370008333203584871775628623779455127956709952695174070286870793818280319472304273153446474684679391434573646780857234962704730744885170777362714809680842169666732369845899455225688711610687942445294473624205258945803546081804395759656385302098610064008084642856898715618384807614026512493475807481740405044683105480395397942970289176912451261342081590104329717213661188725516562271403222767774726921630676011883446468061886152188746986651900995510816979521586006193506444106999380238736349991217244663921732596730725024851660974913471224995124245894710599257185000492537499074188219452438499029127498363007125571044922985561253986285014675303946918067365433082418859782994797292999832636977253873610991146528824992304608482664280286381370988660268802979692794169606613580566584387716252201479821497803490799287449508843661868427641462227021746772638037116337715351921185213807048312168629177968242494132354586927769893688843279835266676131395526793231629458347740531733163231599193909093630148580562688031393550164554534986068485513612250299679158672851008383110615468142917638148728386995585142661932199305943344039874020083582015387627685188872098376746289782648148226577583528761349149485447141040000275193857296517823599367963905399314192270258159381173613878025466676281714852790993490969960161351022448922982326716813037677143628756258408692211195716602141328769394193745352835438376253396159427452374243618629587485089759291408937815532963708056105943960730557768085764721475491442845333806394330419799581803847942399929868561958421548899389790905580955921122184758442019285339018124786839465498032778911448219314010748527079870810737165312576142480121030832947165988676369522076291562769289221845629060835620038580064538275064072861457662374623472213277738593763716779216355880930545901022678087554597439687616230892184427650586746076150201909838835079233565202166392372589067042321083989343554871111654151750911602930564451237037194498921197808056306864331156644809532358437992264599918561783033990584301014518300762502010358347958135581915020538041585701577412133542045315443627479764463133071311206627901873448367483318089222917710250171648001503171757548826078918211687211624727643516457408201209969891740676635483462236610840161251031650586072995354798971802007041212849050353450758379578161608503330825810103326803791016405210091106487015732722596416628557374905965150556058858044801262207393480561701257553244231069927092045664740284089071170639666277058585856412531266042593809844113300851284514006162441508464102261808972836954706137677630775246719474718968461802991618678811184557776220648280328192161323686257195472460217995015779709946945290433325869154804152633758266810612730243621287740186379731706307827833875299695737462832199805016623485271944239675889474473150003775602730370259726177049606774538635735148810893107071530424410885146331340433247672904330859271831777120347932580611082026328453599967222860845288279053089847995834778448512228838793089016807056046599906278610155980220233114586585255489302069907396846765367148849336804551202934838806845489888106650865414121587572364023596372959688316446065741076006891096459949470926269264692019025234009590426891633582277274053193354365936890088206332452803310436619686346155570808156336448864486667351929272032650964752524952035444691439716684600355749111072324556227483796132099924386313170637690836744813094222209833762072692153565877923120927761375781725180623007593150951514033998232242192512853939995750278504700117939787871091884857196562510208491327377844559597733025211890424152173601885053403983107680708468688450394228003658519300364768702822709210327943187135320713647996074241661401671057029302529341887864753462076247120289908510550374446735887661503932719605479829071750506496217726211714624569503033373796987385325590975597177139491384553639461936162665454081674727381971499427643087859134861648656830632240966930674168960380344552287100712246378482743563823899191675156189132398713397059951287926298993133947306359609405937707159313382772166642235836012725415326986428429423690661119699356132296959702342318856732403547006162736623541679765180251656520751313855601097660605494301688517524177288170169008294325765683553556860933823725515683896357098164798780846310098519035220423403098356164785261430256467247792767423173404322045640068074258190045214416075364443875959229848210063094042514198181235741771294680392535162128502401412322153864863126128970700467951057225760532361917045658168375157328003887958334192175810180508760966724757197779574617151244684684866003402491339032437474193048055929899031116007157938856806211394233261750781607828342578817280167568003480000042318737134427437173479448076809853946026933017437935825663890722501514969795115485072351150729181000191015050514309255440447942802341099902792881372623215666446566048016064753999199440699006354422120442047396468217063088710586265065265508621761868690386642155116129503475151941065232492447300037962212869535403087911012093543575380505013611068345676115228275626146579075888215476415541983044590142649982164906153032797104834426793054955522460957515937750004371940550626834545030850514120722565771497146270832495215339834493687935269651524329869854947602391465321829118473035859807935621663613373639778418958928040555328566893203435022228918207930677473966324890928787602271803310713309638628444367944995341153325351191281290767994199926107844559505941136376679054457631012235572011964228110788697690815742843351604661251162087335690353589800866672037251566818470351646720364637900129657602146327045429914482087642037317205465478496243014304404711123487105439427308454792441832268541390302401172739328425415829951294748006202046946009994408849266278929176997701752098542114827887295999180502461328255744002870423182062736811336407519833949242016014059336908546128495927249050091732799630171848581709715282562731790100639673564766878466599787286850514309215931911787455545892258633281128147155827431776981975017955205895863155248489901573443883327745902863893962517529401065101523117997650045936024323388539034693853837117359928140247610598293863917260904300802751050675504912789665621121833890027586747824984894646257387958545199813827734284517844985465745961378536725540741266444794473515538435143084310280690602745445708948282801740438304066652063601200158794828776256090604262812405544106699807968058769514869165286955770554665120611551478114219649128642827647875747204081587430032880456600993548618991443317078996686695983009481568343709102731521133069669757964613793125006853506924693738860398303218887660884762005641177669804942036153755873954142511724302136525464850544715442979464454433908509963494592844648966840529015127564729152479058849689663851560335249421419774992554731764924765678968422922941117702483930772585531562344675337895554246106129642449459586689681560818817696351079493894942278768032326325467040314142784558792061366023777065993074155696199778660261254060089178996033267715934604080925886897510923156429459775716455175124661847506896743778711553959657008857750946629423265792218345460877748634543181216282302542205655844164373714288712743421251443565302179896997267248348589035600527646877548920380473952117040804958052136201438024255008206843332221657903249775641739609289994277768761039005954225274553142730679079531199580065990984346700437646757219892737250733379734941706915718104578907305886135290652311914873477135677327283508691507753380901732690015879286099893511464225760650431302718889512469045211930432178376502988850949404024773722640663742077497285650615719199145436508838653439116076471716296751857738011955165265391143777736135025605093039128741018265803211233317405649712978000725021558955703192407465332097397598116424743953401909961028224956939222401500810283827747389842040878748933126503850018424671814635886483198317600707191323362626975342777390659717000165174993782463289546299593535456759298617120393249579803124136415169352622648860008741208578187586041658745957058817109806593166703569867284577550029655089388106111603025911899191895740353188462688635400820865560424467603608785310421154102164683250695413549117943139955166489780755171131378034717907167635197962871797490228597780885549508706985740951957267236710559888544437654754556217741083660219219985845255094650857904744492739315356612385352736769210779755105274750037733238222136461653761207419965704805372517675380754168744046371485819893996159993669372404727591979907658049232388759530274552440304029258645233249176897948465591174529886170647401108904946834381669806263011798256222520208177421194794917068209205454218169193039853954447407744401310375402731595646716079710604869381301253335729413984828262434988320068943030803779678313737661953639837138244827331591911399254329212885026720088395944185021380950275441947243046572064502178458568449450119957459246508158886876590535867893405757739493847003177651651818419056454032175763395721136776294528137928009688774224662020321802229724814858581923282445336183860046451840745407057258764518158086552182743357116704915159722894269537574413883217745273562729357038808184818081769775361288416570758832177117443157686095614222849873755398843324503762744852214203618949035666869739681021595233440183146351080850245969866593470143711075943470645003392636875007920027862307929539808083472578749816856504084309499083365819630965716894774219971890763848738386482058143602782868961027514066657912917579586820354027934138335702876156947707976051476271902971726765843927937077282783809004664564713806844968447600426574139037230122881784917760180544617407482956978124546484002627202727962494166361957445172869605187646880963434261132095187547370053280316177182764851470063787472810902440360478406504595271136925082537932509627568573745656319534369822508856356864884175831590658398063024138384083046412044078765344443952417870293535992269347780905853184800616859484909318083727482705185995967691885324211737392391130577942948409816435984364893309401658839357222732803766760994567791989063561385340704452440335196451533692317252146140612666301213444012206603885236268250972803901735141321203182769397597928174083506070479449786858884686437690211058857582445567720694329705236639801827647725493645333902544860547054676078300880762645329830118637913769088031097099463527947544163599044177107485383974034716278930351830992579702392641716991436566253758297204632861988206071438997078580533185194404257779846135040922210635838837562565143850904047691878425591046196357845036387368456554330312193501268647206998759711045581553788937482217536542343927650544593673341078640053449588062040776300070208068633819357778298904234719009391500161091695550621727082089188101311159834010835165788331122469325403543470127979202410045196422123763662975248250582059617754957160307135045495978212308663124532565033088277538016758016920436521058140463995746311423090252700958266585818175969631813424138014832201569615104014650243192403098878655381801366393706144028035841827207272527809017606684187018650496109132131290502408409168614696618264555603974944834139333319733259873769192771457188745368566558126607940997982918370007395005530622889059453791694868760868775124593759457258903607104854487306233290684456165689074205049776442985268389153192787553793879514488698512032765727783837730958213644776544191897424851721593705858852383791550253133731466929188342300047226000353180549405573268813733198592145788360123546965103100137432408061446393719397125349505262043401290938320411856812946202492920630726103946925186788959553119967611457394632441661781179670080474885570495393283823775483190240943127445146576876096491323614612422879491915173033728071634955891694001127673085267264357154392753267910785683478420291827474858067366728058423672711958097869467408060544106956719356485296159446292933836188245389286300504210243920532675925160110070968671687121099930342981888054355311533329595207195263340030599089402986347719290925739665519012098236047169053292926844406168192714998077063465664732161806718145127933648132547922248084792831229346101048205321649895696591595445233145582129587996970944474535743734936879741756273948955809013338124121422215808662769030236447080028820576344958330232061828947375379933542392361969965070223256893785364668859033494562991846228830052161564986751202648453301916085349062885288192414807114545355462101655287479501166555123276815990198585597594782907827811125646479028673695916077221377101727331040130011855913404454205995124927390314520711300648730840828228223922923398578540400882189015434985858721779656662793053806609763907552661738115410981112357104202917887326704877693526696619303889360667225100385499387983816390763286037294369464413911635620833447608099687601926175120569355970562923365698700959705228109871133506478658084593351462843946853624701250382044514997988868534633881144369948619773342256471198711607748828001871135745729649527417471965716417917053215953820007425571907495376905358302098969218471579173224347815374885628846960176909046486098842608904764680373367458588342317284836489504453300760330014600903390349724265892281573830251771368448558160179207159674221594654584831667062615126873861530805585572257116163595113709892874907494168670876546847495249933827572504005437248626706880541035869108207594510906786831568992820818548796695877031935703332429172366003320830726897937182698079094739469760523579409541750944595407507261340466056438339343113800651072224675480659563582571974749800704139985407587440187851738575697554253967973695293006900007472828463324030668972826504892063264379143960921376599355724893052081269013058823229711277485932965454391771709381678567050387524810417833332447113343087308815925505433281372068551605887273246317734942913643882522192177494582159286352851385729536803648456163497921236137323445789513565566804735863459831744867148488860474287603949671722131646468333630016682203671006752537392360937495445899423234168922892995055900670037176345795445746907957557516912803675128007221077199948745557139491830501434979127779481466082178241353309180603522161249944191770760076949382729788301735814204375411257782770265073254593388964207418545322946697105774471619328844371902224274179376437127420157404079343473398371476266395295180645999459282740902311971469786976108604957516698267000097967478981979544536444768724502809706373838672221560192001939136355661602025170114437607633175623151307534617098512513526342014819681071455775696030861784958063730266514786079203524687535242547556963024870861766123701476995041483447989864649338219427745452723036700628636632415734012560235259256218613054780476828050944314539868509573616495976348746052215103071375086598996660165809569768847777445246353872926466549589872572912333002134556108834049901887164745316671346415609379501014303000563279393286857400417906204024983055292526506568277543488798506015171227016852084363344110855548908357244745111817752375687524324718160246432072063191716978929414957624700236470829917520968522436178557209570667222838823305876982169047853592588845364966278234899544551705987552221568971663599126055882882617541056452481315339477584221368207635907576115775656977158951394182190325447106256681831142064987642068110383204425403733108376522979935322460581849494419317040441224788592356162721929009802477064174921468914809158921352100888628763649929116603959201602902483696054963954689987018258276074973651008140075248523094895988671211652109387203377586128199014474291643935780425070713740119742218524096467687476966202941460136015182304919325203929554397823033905317223713231425897525320015385246545775840300696242331041950992873458128302041080378918443616459876763269450748531019490504903504080378635238573925436257706061187933075581065839629561799073373131830694512249901962910591006320916618192764739247100620784134089960151200276157836457625656923518503331777131314492714017011400279138442867636849276721771423284740022973828519257113165969637993184941805603169316774350394192020978343163975528020111410375864164408994573041317947515764967045219760326970393463321311755977539095152468556382839602813178948098080574977652082221202430671999379201154464524621120334754704251466731173308240371825802055879925950260681719012118969510824742943654304759399530957215662275080813231210984477968502224349157789133241425127673866398703852866887594824911183612205563576270841405225425692393257115259394941252660660346533912029420812113244086681082007353261102533464220387112199684567293972854771066482309972757883591623833791462675896369294899646755682342985862574690311506338824425380001626016812029717822541662280688012482088605463609390273450880183535740845513934904221154441802001528368214252247022632758556630887748745741174490646922425840678385825720372792399906800446309586130586796867007720804869587675512184155263745802481009000812869597092497469511247278614066327030759107394230657262119823481502377195549133899042054049610764168582501139540096997489040778452740936975379252810815993653082893896763453240591230398053477814225161360744631236999158938000137997683071646868054058807381341078646633665391266513831995481545676963445438473340472343560343570348803892637926377851854485769958059524414024495044091476117024336575363633387324455032860488372999165535029242074511666631803025177982920723319851498603839136727743657066964588090437814705686029520324076557006668520695879973222430406762541652948632157491367258651309953181982061689224310986952399255515881623948683527264801072149265845756071399955410141742259475648303031791994835585223244301323478347304045423994463316777639188601254323328142085839638025429335306387734622531673669399689184461793554134496229167061188589882058421351227839159909671736599258783939584675478694443225347933409053484345529500571707549850422395471355301972350035488559963263048226519009412355321316701232862342980534636681805048402713416898967014524142615555899719153172311888458460010805899134696438369553263499450371889463008470225917823602471809057140531376418643373868603390197256776137894247959841201304114503052064224077202024086139698174627380335174112162162403516469784079307808300512121158441039408305107290886336188473986946515713795466258689797915292128423381482593534072351313312218612069160051805631557742542154886812424619930409154364426612299219537954029981145303813295692943784225957527605041571119604417662375872556058379253333610078493915288803187244941179214238359934400342677270824196557545959872836610202152235489156257070428446337395958503343278695710800053628039440886236754731714368842139427977479781352761100396988284776877346958727995481402622285129085752871090382418443251204785563140805584304744408469151692384292631473509450796182229446370376302586131475395347422534058800639731774707538988349547620739691278020923972050791203262480363434117868164202989761730107316689332949355336428514198911114720979082954040345381862586355699282903139647719471908452030251127576762255902348462337672036060810490138644568674070486873442707006753387441433588593281041877316951789573756611791621544825881474092171068104852534428076443160939307745016039205990090619337543901567292544074526100477823476717963865732043116678948809389974898085811591408760704072315109692782312144833290344695526921658292212109830271881187834460618148752231055876266540855126053227962076826098012447868383390396419331599875421093701258854977349817528302934714237403938286427528907553061711344285247751174661041024406803818683869583327674519405957706129265299453584449823685232188788196163446053383808175996457424753644184257845203552896285194340241269177054381697523603140422665227735197597366900830753101343357338456390984858424366875017496527502799383251118205731244448585654670851851094329901953166744038319392751643995654357209765515629433076505758841478797200489182532984943776815728961957806853595056877612574732801485318376559792676599256523952212071477476287244179552297352205864770158465584336503073357609790033109680268279684558667398359539106516671975819698132511767435195265218026462955147053486290990193791197004848843402953026390685992470430720598625557101056052978973856300499280906632688950657703897485600305770910978472582970769854640428550583202052541610321406837525561248725770430995660159836758497204650740687539428948740679356060159419617154053181209676512529422767018945380669009656124354655547452367577512478578856324048391671439214552362591041845733092922523846010700838112231424812734402653126566525267730746355185565838988924786337824191830531244966238618107417738778996724467538442639158926894496539974756305139535299071579695080491689499113828803936848141069012199177059036832146680873917760118739026088046324770453414184178669539463652017096516837221012553244301136510438012238839798100743231433030869302392965173739759740193963290975226460633903825351719089091429819985498882912302753800900002309758664588766205146509989623352450769263533273480062882969171122517705333029560899598869333719601887963816852787451532400885748347568211065698369452116151164342915760458136997201032479086561835512956474491376638362081016794568607038582950649363671710217626742339733351592688279615424818481500334788797140684176341502034592771631992163127886586316393552787033349895355660199879213683235203896113358413214770387200294288162762835110254121643341201690391722770275485821439462050618131339726475408607528636793484572812778898993548602095279411363685170724784817792315831368474790439793347678667993885319583011314419697626038677652164961735170844454567391106312912931378332049736633303470426353766716729494010662451200786447733228004832228007538839984405890761915785112196579443012439004666866325536335830978036686568164366247754156844629671090604224142398751964698173362572554332133702087366477664765543799075115252371565726814834918662598453900385258381203592738583526000793820714718182132319328394423944201947637681722764497521693716429760093241991850006363251758924763290260550528192794917615429716315701878456946883574659014447939263943564598522889253991423196868011239429961888719010650401796131674298325455033763042291869975506770186832437004066339445464888310277170545439697469223805199133916208209260400272900130084916999724562248689556774311364108418638724222346499529604581726295233820934248558098627754912273363143292443995669436891522105732116299693803937720066168864694401105238334865250354668078746474606394985789682766487534719810788915829166644406258436515827440595948013968987875807397775273951262916770667546694454691336347087585844824760640143338554843449761223979137384671469956905505071617059925676006541195229719497282896336347511365158147252276047328951014163687996811821466229775856740001356760157618691808031902393531916803025112713843824985724595668555988118770388002663335113643206340048883239555510032295794814557358521318445630943921588550328647550523761904122761785619451839933579239122078278076516119688445910945897604944365763604089180746755348324033339051979065077773416283450370013559398911595600499307336283171714411659420374209933271598045848899293383255104615561217958161266918845066614819610974979275990182758845923026028699215641209643048788640203734911695843189022878984655817832456455490313967764182348867098091993786467304959630352247408157616308544281977729292579116858081173874609560563617017482847779744522251783087747123444016784796808476206551211251482649525282332070620928202423885526136437217779250619510599085058413051387165997628635891329481716552917672037220906835094517058007636079995338578021355520803652512037460481086133152649843727401823211728671899149390217721526692439443039756425107108972235746314033235661165386827006574376263759355726690961333646808757205348172203227290641376560648209863296759094465014206493220346272374902449434663903406184997777887570993131802051881573718724208474277025473209132130280850421037277063189069229331399242109745794317384056859161505615794061981064372576538003808482691048011318642999394909147199619701350815089023895865740974977971482594534334971513734185032911434232003866318945092431675114090494362708764601823980982843197564757260060733972053597179335776257334932520952002962133528453887306492572476913646896758218506771471463482789754425240748467062507846640108975873489156290412586327414559541441147170994006856045266611875693326496899115907514940346642507418492811840449075977261323657115458377694558720720927093664254219230602063001137037463918818392236666464167120137755318220958285370585153209134786227531566340830958684817206817939872723663373234814161690391832931918385516218482398566153158489802647293553153354561969428997740350049428700195803244343342748626321270929903590886592930548989369528723311783109632184463332252658221478583429338400662574833510968486442959191137947571236681014917964983416532316384559763086450338686250104824147939724367211557193944132868164333627128767590949883541298948261614261129341654637027195047573619324131369303361205741706787688683019891610882325863281085513924979314709139449303465165526003934764468147299583604748690193136356706795749555667395692865927653850296343604047036280425895518930818332230234686197853010991689929641211023467748277659542918369412066465062738079925905908826372374290219122273154899881274551568702054707047583532947695999219693296311382899908309296418326803291826868235857252129517706035282067287476368862102500340523863088210087900716898873155703159141910330556217765136521084194096843727289268788015749134867951157700829615302998315880594134732377495182893898165749516856520192380476628287836961302499264437789069378386201928310914785660810311956415166551007390534982422725161883141208254468949443302863152984111299688860204706314616996090032636778301442520123946103458156997306082434795754365666740669367327088398373498340203571322409001059824258943284000375038750256848061552941867965490813808934610487907615033570635532290463599368152298179125122828563244361393577892237114526867756344681711518628002814448696827670298366067622297677028556152362252971124193849586884364762844693119153945748680609498096199069893409282550154612407404370098666573691444406451601277059116159353380456810722514078138664156871317870465279001804615481114150408042126784172844754576624617542867765339474190591532269935676354861742035236211126322345111842145090665788099752058260288258524408607158409288325110527849176041654276216855075770945615834655239328349777733936182279822681207332420037432440502940035115129375812078611292126800875919150176675948320951264598639266437365757655985068938741474307353434500149552199809685211379658388183509005144096527490116691182761760504315627004017154180538731490934974889971054083675600406318857211980924185107728577231431991877678456997492655371666963588889580255881448705610860181576123823174632003370994559238946154411438912400671404015759396702334470458923796798019795090714582049875521497610500648518559471367168420752019722778521924315896283597809794442499370357611018667758644227913351779889591360900089279526482788834945065145218883862747868683889090042046905942795540713120198011413135604077080047493251865389039028004014594402035413338492575746612075494477643907705776046012047214980607232327094009583953219960472858415863215216522480490220486852716604279999470415998639710605889578676893416081331667891375818221538357676504293982480573973914103380652979366402167774945781640596376254233964283631892630273203031581981171940697167503602200542877667925491910656795712621327774080507426574653247954739035909567895379710635214340455786654924003336479409159569829647137261218953783731476905872306283055670886099257475521865251228218242929183378523611094650147088974479700521857308002065805494029946083890224206065483333467843246030416730894196823436063390240829353966606663804448622629003801307714419385832784148665989061574603565259706517777115111268878526421809640710403576014445463937429203958350543199437967032493160576483832117607001762758157634810344062370153984074050934561330672237129078002382781436936286204594458183335077978049348108041104317504808795348416342512426952315640879314236067899193940405388910134467340337819765598558307448421192919917625936679264114481454853443435166820996278948095045425053830131312270369707893518487828695519246041301526156675104804954551298151235079882698398185536518282143755844253030236990033078856201688654615908500125192562413428284344173077114518359664931785424630911754030586904387048786628522242873236440510090219973277169851159304895709699209581258772333642636370634282420111585490237970934690417579595223326469277947539916910547493677377800601645356625431662565748330939684302117617723388151159794875896638723719545778307700174440116695041635828263044603110125679536793554395626034411161411491826319047081369468734931276952362223336414664306675306534410161252355623168491538229977888616006891259756740144054386086683370048544771341970680801300758774636788368033262255213230105282654508994653547479059005009755120471349807404181000154011011142573418690024652501533355020440868493728475789674457333367930655808091921701489196728925593734644675677389897413030919368593256744635957156717444265215348300129457508081405907984306402056853507611926391044204619290851356308440399269804389079486785235600697244694826014194811001675864993057934409353261217210444737127079121639512738197379690092941222358973817964428557325982651502614930079606807053058869177414901144139396750533232983955536124500841455238615450555140234324309385071249968197924026063369269282725431076553263456827875092559324192963168469712993455549705658439749616297266005791439764307862560956523280380933620442160133957291747721291996015849000363582872780646689067559945037371578826222378574390199315763800933826249126085545849598349638134450418350917699220730782572771937831016850022122885028741286706484380213916264295106385516130166575739070559761515307777340472384912892900112576403073453641677904182275928224220300312834782847017096891901748424454237935195126837234196237276633366830139042861325572542809568931290970964236758133544931886867109043009988788231652265284305253983634709501572397095844801152874274431233387261868355534208101906920107493810099442628429165014298330492814339942975581947854986349318783615479232910914212604931100709749915281015101796145167624808277037869457755990661838500009029504611512801331871523366186164687863955098911896459857424208151464003811997405116925289916664331168112057254109595374774767363622387706660769616562856938938122511809872664063564086489889745008304402333785721624829062054619603443462249044211947122899588364150003330869491094538474070175144738004134170735259540891443842109347900250715710342502453642825691779228640060155797404097941511393973984269726468314755590407523279004204683577755196668009495644066086564900903886522901867827812259120012650636972336626934408182315317285609855104633238276201759766215457585131801546692013801163663371026261808816382207633940076693863956177894363021136081020245749463157548971479369120082345075963212009329444491118665218608179143459804816359137090335588931541854638660634011253708087978857454677627231202257829480261915778624971102932163794965837047883407235947769826626444984987065744066761770769304142037117720610523812535054700894515457310791939579778648635250383935715795533872632823932372696911635924267161083679175486506142085624022782165439216213539778450389743995819913887983623007094106088099249313376166313712735545099204267310350004914267684877706097861350474479686630628197210885201226995275363428753487063688015450569485817153924792717336648725644631813166323121882104484065941899976179218358326019089438754363266019485885112628986217484354035726789505441112854544407007919334475168241409001767452509744627027985594873682011819472982397469936770331558666329990848548324077717626897863325175552429196786978013007948307818846877036496598425879082089339954146131657001136830415694089297676315183004535224896693165673787575100701907648865531806216266604784716933176354660623535713863006301103704536088489071560597274119405532033106624654650519616610728381496977106917401807937094080848561840266318219411306260491212419509519963420987451632533418234744479164596783918714920578764985780531678573692513138510380509650177402647792986011261446025711498241687186120719773287680793227357895978399445514098274584705376717612385811759242524288119843831313375082850245248423397959744513621346573968311441591719870857554946287729610140052897725625185729153433656876977868260832823491569278093434349264083397322775133592782272352024148121561152122374118196882833843831280033682974426490796101215894630419745975008194725121166877925444238281313432265979184139830503847176015203234299880853918885765561839992547399577571480399221665894186540548206086406357653845236367319847144105489817876295761607528518964633588789266122095367513944817374575522902591207129191408225105539228811677008827303706962627382179592299132755344473330588631124475041902942538515674311090126165805954927221858290985353677705033962467419682085455052145151735714700233565918450974252493201000279175631128042775765322474969128400689408159503247011583204174882959645050080293072182850791254588918038800424013210054960970474502993172838993810474318202465519161875929770349667589934338207673496248372671209019618380341295115111133637148544335542968222471575085743785793768302326687788751845580732595402984921490906170051473107982264116617607793396302584096891318014579196783901388985097374270740562033311906530230764597966638552385379342846796078754762282167215270014588958959066188346782172087942829095448212453009116450072892482247227033895269298389432123138249160071784419458872719027507493263205422133852736533669218620964109070104087462410450343877914119893498187307503245166020093630866541096673114525198581133558637623547032864050453402588450847156568656043919804899689580386205039899924483194215185381532570938281890457518017432775418030304729915371558224458498154385009415256928626434790473740881073711106940492494926355629657490219919119626821218385812426734014875429000708342847076797466092796357338028568753112088721349166629380435781262412157588774876261884369718922013427758329821988890785622292883368126072563950723196344347227421892242746111633704766035923414460422511900336304531292933732443817034696522220152044548659190862780271885381429858426675638874213729929686074483504385464581598908962264265100728538774039470354276608239446984332038389325427613908613974841127972439489869133514672206354119972795702266210161683440389461473394720536318401191453521237820947781786970502538912469693092103153051183771345135534760552905706569239861176609968790915801001216592683846158464192262805931095495306018029205907633332825790405412337661380810715607165661187961136120972968038855325576204118993558731657300510223808985451040519529588156781696868487074792152005526478261460115829574251068496322960057805523900600100036851171580820727304532473841712282821217418368714102050586897472168213623760350576267112745801817044920611150660767119269602497510469343840238322871698488063233203959558544555586296816659981612492163802440819882582252298927533533532121989651317559716536963047561596206930874721879633133013725637504007908204327110631128785810692527676539483921183788831976815794888773746913254074487192154108824436064450862543340364920495936062165110237399045861778984901089336243148220203975343672867090046370504100973857653979422253168372453586043650509046105226626228149568930317215783259806032170919873732921124627637849858901364365722406224918818452570755706617158688224095847856035729361999506513537755610595138497287920905006820870026111867319139686317817364868351485886648408201266093853337017507039705539449397700504584312628096262687143663391386779038658164359203293628631341639278137262326523069480222670688617251118509642092894710569355488851065882861314802382040033309481382029816488851188042076021495932801478026423124478693747894332964869180531184476179567206799490975014910989383338079937894027592175390542164947002310447960276426685494130728694543480462213812424016051682779171835743754538241848497216191847467810238359315945140033007883230877224427983785216987651067525443205686820174492388192339346997565428328500546013611609515072758133719308060127495070544144519700105110319914545574184802378210684022413647772461714416380255885626172187828290323674635691136711657904208225411722634926692907766044040393893915161528418874574068520601025432557429933670437153155332633576934802470335858095088235149720063087830069266455145050822106038167722062179063806763623277072349082613238959994968295724723535353576973549134484257047029664345322325359301091096156812740189832819384960521612957618715125111928533032949489795484289603065125390450093449893064267915971924345735788601853590652391182410226453467396038307919708109120567510886967069325309693753111927990230804977442643123295770858566109711758717166796876217417227603920690576344847777553595370158867092056635074655534046191995512949779218311680098761458167299692897096841639503877689311191173190434604972475155767716151851785483699460956322870696048888314893948719035132872623313511064875138244933413147365115561295079887850201836468574215999351910104278666214524037794675772399825077073881590256705876855051599731049712788689004319240878395181603153496932033289346619170602569080008773749173761525509645840912361113849671546377795005401469583465705302991291400222815717026822519984459616538004498827403622445983080232560772413077120468245165737307613798986374082499647453326817238081406289576941063876055083539695417689387239728320374765180637487997961443983734210029933669736143367427809291161603481336190857188540849674278433077626141219753847641351986469212825989219648192003586726412226366679128808937953679342255740195067490585995524797585407779669733125092259367180068229377005390172945618433971331560980463214608303703550909113628736066977010135442378064989975403631721314958884721611083745014132568517809438945200903550190058142840297774823732304680071283907909544956641766822849277239292437086279031315416698717506006730999807289312041379592699695476627376308719970857640188540096663872058914138633682537076704354079554965269110963135953251066594888952718145386240916131684624651517240116578991535975793604731693807106653706672606215140413487781187300975261415841270716122570209557641277472738302915334661175826762768617288699683867249980129113460377173502225072825269456271752865889321052121258172452318311428700465228521225322363944166963962575581545581043151784596885050357999829815877264739402247409084126641677132372530530614902390064154118957084099244488225223992935327350754587727915430688207182630119459367829765447276564349972919317382015467423307165503853392383224402561940674079959690078971607869471808109604472681798556965964099238558891951463417687019708658763928707748230778305512791802965098362632884648052608732511335060544210912184992549363783063893967522340192171986003553400260655241175515849347948214824400508101818755014941256839483255148895840987706428246581446008840130284344565717382221155554363098046113981838042279719624657413203084557067950019713230508910578922270535486237937619998083905354885610331983613527378556963082269809019151591392412192671210055992378380399526756269078995314783284952911631019773507988943789272642395677414855974891740601214401130674856369191505911792181030979159478826551413144830960631242539386948655559687578371695659758490282226219301495357731978518411127370030857611265428282946151784305478801103758730271942554601976057763619696321208943362977782717035547107068437681767170618245184606189441648483917994635463327603419029915395833062779034255614310465934501564236998322833818451851473381965122123259245432764846376114864220817969209820978558644779580975762693894934518829681482866108087943196033056498582124016759750548060248054205824361981111608817809846615575150636763326142614095118875580336229263259004484166966880122963609044585522775237510545899844857848790436952261077619633973760846426452107472938382689193826534576879735763942746292874708304114875647214324254533497989057729122449084070950697621717068526454418244987220257887799397082986189802060598080740187067785434709185697206805483114553159224632753408828442007963491443008910544027845850339274414681140375714114796711772633023397273498275900853751355277942415705451200234712694715600168326025672016929249457795992033900756175937699989016404729839161011081422412185413197614279089818969111598954827985939981371993849110115870562587864033701782541919758049863717979074323455149630636409279471023003887041607377029585303327880820007926265371996171572514559386854794531139941211839601698506352428181442110604838862002544710654090650019521789995317558821206951525348028879470469233014105990460101244225958930835531623975380938281139360221721784808679445269002983566638873675911602008702035316917511978061230661915517730694885316406648563860811587154967356224922289186764588436816136365825137144309341378807169464982184658313545631522404468706883237867524810154343976389071963126653224233982147259950203516226732618716306116337151501565611974432600187931391374618187174675385788658302726043068398100488597697899370183871143448285522723989109725948899669415645464422138160466561947679306630319332002995878850749274168801290717732094954989845693993253592521940506539922000831850118945447689730169710833998779119917009655009376007778213928815818650200193555959574116483371566289014471632205257274875848646103350001010992592900643807921250977171673703612729046506374008143593323228100745556605352487756772895956276746906893930809834524496140749588443479038795158639220164452166688928754763947991942865398143315975628760349919639567081600352204865957834332266127412703379752288738509680114469822707474613767570614145999817873492562101104797556798623004396641143397647986585606733271185089285430885717209609130365972380892927925241687058161820321509609340040871690920469469013436620543044010573060152763181768501212001273509865043894069133804855840759580389880659319840510880812962518698406204232699828737369759950633187234636540919856602589953926576181594069871302103755052704375111292966836293547706221005243232125444923637142297741388028760401016809643794166305478056610690932337373730362359652153098119603916022014040011915865675884395018713899364745139815226988910989699946055446263467812370706178338797724663378726928249810089082882111771973464128534564500634823074494432141641322608621406145362767060337938521901253996236024362639323710804405094695091575661933776340082856610275196749842754592196572825169084431070752814599291868321908502869948699702133968342326937801130853522868230364868949430292564326004616515523253302767246686092395929318393379466296761637299726980916917316965355494013966844877822367277802203886610459826128396659628162171578310896760482119388518441847134873475686528320051085359095935774683659093332904762207607113121583464957111617247229375041485832291698142500392378258371997478240901400945867555923594453449620379985897592655763985216360407686838302995465717609944687238353875552919934522841902074079209009894764816630568203178087673199246974889851753911074974027235085612858440011424235707462897260151895283673808557455741373379790538804332522598978078028367030774665878397551183193461246336061830496743849295188700360874929141901894771282121900017618712696641006595426224928010698542325076223825389495650032881172940829465389937826003962435626473131560672236705762039951994424905901676764058459513220076622596884195493425539458019793833491796327156027577727011051164850389780500760273708244905223446296513961352335603617264608906266184528252202230114569169346075373630240629035173109001826322332057025481182941563159684138263917224370431973696604976346721963335703908473446671906423326082524315065377303403692075943571725526588948787745586903211098562687513512198114511414673202596092073564776226554507755370570232381151766190926426855810516742597111527564843965337523251701597124388264674229837752409810939116636022087162861165476563815847711794003972874659383841496395916435466101702357427199850398713282473326451266593849937567353321769336632766469734936230640523737979783796234935906437702176359481341636281590072797031887888240686385126879609993102620728500077862707918999343856266362006953714120274709839819009155749137616987748711421652163011503652906902378850338074286158919989095333190222039808509096044589083451228320921304843421470291505154952013448375196864836677169589203936152164908478200522071864322156654277456215078984744790468522731229180558844171051044474591575196709080175276660570974221682641343872479763563957588801219897644287105311066738318749482220508266309492892523763042105725965084013954035209542862783780566354114874596978232913034091927687147126137276033548626637342559637011222011042827175378843925053357010048666281947814123467502896079188943852051058784201212556912212100233571788554421611795194075658974997790512798812044788322146693767974929770994339791405399119459765223371431184865692402454846017678562852940094840154197583474232948105285857205380217645097737990933547325311703134146678115865987205783189720472800799745525899472619046393800411251929119464886968716229186747891223789908174349365145287258461791073643578110152593162714351561531927531079796919441836895826434524532011528192664522244725754317851101143597617602664045082269149744575319006992648773440474056726010056377375339853463623298202806183005647899517234885404123433389816883107124902433255240502763336429796343139585887925890832968631186656194653752463842564424035542479949043589647939282539639717143235724575064207856997193107741775625591347524894303325346211981692785200217856710248750593296711926221445507281584422195643874668849145203543726118783033982563589591566311552865031283551644026440184870971949918620720663617212776770123352693549891469426454922152305165899610921609680832866547038035496248779721852521668068237450739839808601420017377803859032681777744012964694602332635866689595329141769288227955413121876400168032612919508389827574356988505197904071708996786490105494186247744798276981933764754328193302510295429624258951890838235539011574531748492361172048104299374788683276331188187650692122589458862049428619308107806667320878161156846078348971580595172005162349945049842198394552170793134397542232316791214770931732323086580803699642389712425744242594479222304404034709357189304095227891330268768869180809308913596456920369241151929812275759709199400074022142719667047118945728983201166652369499756497867712651671253973172527367646471336287260519490528863592343183911592508747809420587065023561473532087946660915498553168713950412226326915807277657669430090953488149614756037330191922051350950540889024029073993288691924826222026026686236727985287790214964352071085321991361834874703430859942004112773082783227229065663741060140716412308888477050247132287019332532245571925046169717773382864439854900680513084287312954990532822253712231854964825854644432592910024089624207489401272406070919889077051352736780506039224088972965294777065597428710776739970178149097954407851655470069716336364510915769968829754494203538245792069528234217670487799446901935966582146900132222800937990121354343478421349543451374201936363617401875612589280816671042465209409764183011581063712531355198022117303023533837546462909925260758314931670274606768150607976990826272091207148645142877220914384055071874929870805679802623141285092226046901319720315902993280399777458569459162493127497334315971577076665213181104141626037354410873850395874210171026870155578175907954377575285078004491461496140693335728105766485301054174412194404423045227054670537730389028804351516642359489778018059131837017610074055913781020606395864934559584589088006954605844652963199212571202016697536107729818873014209389173097923901134355708129594032387896660931037702505553122406588379000861571200793431419401987748141356701224948933708110067332609889543889643538176572835395914224350358780376711864606743663848699775375981463314137083358996547063438326337906970869958974203397130934306968953902213092663741037730227299661425414078100707456473710972058933621833804344150412928802845279590696582823499626126242740641799709385327940130127585355673902087338208508077256840439383617029360615657651645074927000172179735363548186007722815443530661409717030981129296416739777392446570865178510886128258718680719054755987781629031605534055551595240832208032493319279026423889043269622410985605193993005658854539510975564472015051594272404490265783377442848765117294036432149766296847435108523299977798184405558093609754642732976210208708273704736666343769567746643642844875580388117965863462290928547366136334627658750411105266847469846251047111019391083871025168116531428420784925821708584683162990268582050877763376032282719175891112954175695796084569220714304499928168483616785016320807508756884554225661841074311487403915043203249468778627963675981321702823834655323354823755206214671807759017700403521936828460919425549744569362524986715759386182061022084079290139240138603784736101469657334429715214178106731119177155426422129568769521639140458921363262124228388693459335390837987461936572240419780096175999943805976985260559340464952906621964638081988666984970352948079637178427453869557328669590385958363528354738392605139418873548035382684287652419936334431527455952567231966449060196759314725631501268234044674301429622836835188557404870376389204938447663009080726615840812998567503207800968756388785389139258988558185093165869198775179489019962470035845053813665348139852495163001865439057181676308796239892408542696877235868762217755806628770032302426062481923394417369367822737699583187222179506106580982908383676536218333014681784521113767788449640472044464838561513079562554463370437326845866725700246857134020283160989938061697912315968592676248715694909741726337143737938325981848300475074592231020381879588304139753938020384772925033395206550601053299136189055332323889895469135164309622793131553456622279522683431249421259502682657100206745587496814299410552174015441248427268691101537403678700497170341616561698363822970071565088397693370767845591847354066551313415146779617259640752788668034277245898108643316536135435807025255454637016094358214747813617867273621589651942094246533617522742995044482401286624771406192312122689699814307284253072479670088903407114791569444140368266037862017081083354994001188589562285445649348029678469614214381391803997168964478084269633911538519526379946741018392644442729567805725965922262745203552634476841631005292829149968935150642992434856686018314368768060369538993348899115798178058997221623859341183648525438693969280265290469617780248590259820620149143308295365328170628909224272328267715623919372707389927274749309154220729832357304863319506956762303690288342009292093652498070561486510643088099759249781431978784475905301435225283616944924433195938489679355447397396706433123835692445663039238022429583905339308436219943375606662585138585725390787411837928559489910599575517763599433918011128544063320022411794861749649628288762578519721914599388168511759040009212469490758440232432001634746179042106908663175840455410142365999502843771825175030915968259228835577896842671392451572609082531601332745734594725608121631621845379324416387168337694499811976476115520912999810808234944079809159525678153486674153942636943897725582363447943491485976801234530131595143564107333073009582463104978445735070212527963968978237706749349951111221365612190510010500752395377879768007542278517512255872745780122582831376083790188604020104561499675624763462553589369794692739436106742886721652145494629736774284428815430665555201735097960814897742069732104066641401490504078367907797398836660062591540124234802329263238446413266504624553656965082255180443271225855286276922159456882537152179579843488245286626083086025391713716163507673808668477734049147147841200956507463760251018149454152290658849642874338778778876044372269752022829470264461222002390114686059808125890124155162107589856044697570613315829251673811310832466787487243703778256449051378662354939716030475579415198128290390281203069804532400420067541778839565247003373941112347583746724258487702602913048910193292746051252483954846823869165829685616238805110838331452914171140438852437251923015966685207511165068820680453438674123189962125632466877019907198274286918310123887709138858931886549049593914891077936798101362923980108844419916042536698021077413361509491397274586069592003318446978965599939494543497869954571481297993426588684373854003775953728611489749045603599189541486588676321748917888950842781065619030056523621724202270935763061980283321048591021389699547486579455442027229981896519222198655071493808770752432193955281326684764899000462963322824315136025238828458396160781887835698819421360794581037668243894296244523536125536301846613266556265174016074249347037994483528264051949441943958175629572937857649770656155648530059162713069508006267895835169531298714257635408528615837056885383280825196026185230813442615611997543078198082359415502830019102093013861610001037672782383343569441833001977933137986536639959517966698201791857831263416896604884890856567416711720216211707131342471008687540750442798461148476802993624396084635889841310616092835739619198214424794639433228340290493858630190997485055042481580997068673098317660292417590902839651830132654694331751648590922444564805302103240423147992129483958782005193170510180640093093067018880502708231653606990326131552398952510866986915518273315301886355771149437609626807673459191180158151384205683648002938547018273383862666558343426522956734917257080954609457425721520898713833066872420787596419921202446917303831816213941133595808819899344217741161760104604269295999363135682702703883100742631643461195380964879044142662796618965484440440395002194524908983521572857086041644270882915702279483380721043134585437027353831281413504294204004340329999040399434720637465838512194191881503690826815737965705998774070917716559206741681547455044000210792487181383114736081592194404425623083701344073356425577765842869686027242537322318983942248688597650431261087766008499984958571346707645721393957372490486399777658571940420636097833305637030820488050515563912631303131692187220393994657298754443094697950577608649431766865884876940683650924815149420585052327358145482115248561607466709804838335782432875622049667343663865886820177552444965932451073333507181601901709986453353210889854014553294952534281582695105981369894741312609319897335554766650708457848148827363785578039010410418619021178083211568102310808649627425952048424283748945860898493209760253323684939935382899144846270440532869009745338491845215972031685731068620321359504688569011782055941135492618894889196367548336777852775119498110906082855207965246354572998862635084149475126751905016086182515239085454411511888672037688712253873526676023979075095807776137339655598493989561528688228365366088071235405748239106104654424173015715457405183262947052283355280410825937947526040820611335449755521501215052073530877854076613203361899423197099398965137394070636898098160876047819172743477562328800037575475848775625565421250348697455884496989532955968271657402743795862935774175400125966606488991854855164772005440109893996328140790504310014312445447293343517421390813200949794228408612465289540328268764042101877460599730038668477965091638841926149649513174413709101728228982132152457529137783426885098325390291832964934685407516249844967377445614571649964874010717901633311110462409526924059533012044642338790433958369324227234708850560639956460911337646425031612909286769028677059036565513383840617894436611175307273696543366556352578513219068409579693760460280519212974905377764567241062051212446522638134715830175373162644587068827906756583974118416817053217278052718017453586447635147737460094514633835678493801386644004851369820599455897492252496096101315437129891390794192383017003379480369655394059916240656039507623469183149797277513498890357915767321396374972855354674308582815962839322218153367603822532638397568044906452758779410724787933313368642736658447852355202950656648574265825624492553945679287620907095032486500452729492322623783361615414332484937541829841271506596214359477576389802728556334962058289778123454663510075412853959567032800313782742297698555897330949953272159412167837633461074257885760564252379606426662480957691693984981128468363650974693033875711701771320968266807264184380003657596745576731039534977683252284333359131132142555756770125937128775610156333099843841047710835395968837830041599570968794659185409894674260428104758453717027289181987962923687378504103300750815803442128519179871340325764650137883952809689674639371848267920107872131203926505835776795477480077040648071168232703793462036132790705764108221684110760483971369523326758917859179188899324745289670818916858511476984277635361097054439040062400804451985226838732029828611949339544608326792861826670587362943105864379824240742854045929663136772034721331086818292526932611413783251545199890944701160134264389729443929383921812151770790023577041475546494987488141846196796811672663633012714389696015811648375178361711975683874013706984305622433180160495335039130383550540086048876563096270794304252767129210186786512283188229877774846011781752310496273252642725712259674484120569070859749181084334307392202954250247795854036087173861613321503822551051812360118535331896954715927968310116798421841310108495687846545336771224994635407284315724484168764705311578259683535342858407892534225823730805676465675668972049750760465957588981189739999584580972012421580728819428235295598339678296164154338839117471260743767202539341547830869708080661976935432644237793960046599368874757081565165797561962054753646499566576354580074688733015320373465062279422006617035384433435750457141423162405300288756846728380131256513133388638170463391044500554333680622260874469731660175435215560683511456129170827756810353658920896887183897326761161663235407774015231924494493977732171466708166932183337528593943959846132574979472573547022751089310784363929418325506620982639822693579371268485560652379071033401733797374633981204347230005920251301680425202131212907975936900205813911875682000494623305026136119342793632384303299703398984508928996812277276351733440452286550552393929548380338898781222508190956801779340706920601337813167036242430665441187119532663799146617503143774738510943424436552971396097629348956169303102605482039011888376699674746868084258767498098632818477714485585256207985159954076636169343360590626642866209513564693034709000858576595587711768281681134339811434437273727527509275871713179302877087840127600361850687048901160731038456881937682296064144222823693444762027627917994910292232092045805131336343651051071671738935125229998365846128004025784913728624620569891788926656131338520346439300590315677034935690371538359017506198493735442118700820950430611701224422589229806346291011443118016415458565484767613695084507038401487501336809965043770376751040858524010383356710337909642715309012142483165280521815428092602458630124269095435324626320759561568765816855127041945326330398184081436899718786842454835797593334915724443321154081991764071122694822937838674645170266656003864517834077255251298308815135780906950362071169007199999328932478574579346875206769795906784378298634482213300999188484173757598818113590614030217460128469009773008206021230428444700855860040628354670112798520221103639711431530534371885987384518320455247970054420094173478165549776673153948002709420357763678965021600325909980167562044111238729475999853750372760837595091272355911968147895343179512967063335746557279813071565638202568506066172576669585484279634521243479086532958378885315498016636809875767162796365357986271346470806329531617834255859085743054363947077545460754496929591175946137608398644834951745492680599522329018055726885131570228961958320579379466939635150187089959952948211298253366609013219003948462713332224979035857418038896409624569634472399083807615928358738042599670959409008769806396662740032756458941745555078899046095270818284728236343576103636691606018053058034043752343250063981092045755534099909518154292903435784051240717304868168810725571884298339151554890292168127904252332231297241502013468266866296038243267063162087889451906534225910503393190092470150020035256776532658250777624253227737515924695668897084653993285189003206697699021426711628158284896834739290615893091076219248503852840420103958181000824451872307914965350919521085909595078471269525607456981850174256635414573869105054439972582166201300409626693901221947046962033270579364492114683173916934378508661871178907797568251045684894879503098226026577418117307420931590406633029096297324003383722488434019113769347113575735070646662664364275871264049334825647521297515899229222262654877301779602826808124352906103357341029321533304426399256118131689727309432075914375600596078334991294530191717651796485076310663253600028134976542652007857048635690988736149818601708203415378422550276675878552858446781127243002970444217753495217647450274925786857182111433142077008776515438101283285963682843291110148421263485368143611867158926015531487135351709707952463689147544311248780341311035775704559956239532034205676397530635507862384336009851364022150042614530369560792592004413009372633557206242859857431233967450195988914147330892860464532215299229238477591276397551309432103847104370334615976377485748133291075541891806069913751135594542841672583847392085132322066361905294358660978285585393283224361963463178713668673175731859294922482904504813736148619158621119730555373234270834214642173727959493078590989454076547923483634479795153836222124619884125487380338814031250475792347210341463376460743581266060664895691098512790937174888882738611605232764490102216873247963942049258819962661810533723340485092367645931130693745219309860322696596837707677789835721577333099241531897448399272774349901947751418317144766340961674126566009282307934550155490628337620267358116961261077702600086906110084773613947633496964134573178819972279641466964533528794436434113796826783977696608468860413917884028460211819331069808167671405168719887956809883525497690279697246383828206745718223052029927383966241062805369475443071904375447759189398187792209248419229191571059141385100733134762448487901040580642301604421575426853867532860158979974380159582914227136256325467648000882481665315990135867415488025376781182743610085906482912260592363230615328085403077515101322432103517063666114086298457793025883932553315457041551364452804378098148711346389279278805971146541292484732443534634437489084241552661488040560175394217078595391206849875348349786137719961147928041381665570868001542475190733829662157513976291993856181711777524464748485924202951811348794378586240109214574649496701838482962909352054309305862050913272909391700339960257951565657546835655892283008758615340412374345499059568534702347268449428634441064072559545220425391329323186249415171405958529659912004203133557436358998786738016567924728233789402577127916234241028621883038134054841779480150368512938743645869237939819710017601554582528483668740439073086436297224774808889079045593028033763910940115907517416843064773423858579399980791281142758462749039593507441724123402579412384303093336246109467769678333459769733403114857944058141358051492658407314235546177992318196850422417680588336005959063981842000860508015065368143634955891490276557987727773419152879459507331902919351963030993350220841928351233028653459317665174831888357380813257909849711237302827352875422398032201186942730606660410092786581869400878811636956274765585907291333792191815362031021614411753777645848831406740970975001568776608145330847451271896988052162316438613583270220998048409177318321337757211243150186147836775948547387646941297779735724991508762690149402565838825434037361634834949805767810983094717924865821503114214183879435010397644488985501296170706789859041863722804831010781141425041272812993701597468233547451328193896596298650207384891842659398856171029798837674448116023176390552919526502472730877156838168659502842521606690479843551276628068874890439314966396478445242059865817370170035026775894552474831838609757452609385219209121002807247387128956547187201575918897682003568998044134318713730820213819916960011490290401638054176502312714485074797352723195096305076714380789175822977254521226011607390050313027299539165930253119427210181713060277306096596713453483848060138991687117088848506182062704337270031490187352472242961744674734031129116170857173381646091647985491673811829645844001300740313120415318045538748705990708654359083180539218051807877504727310559613486819821166165039452164009007312328867462604310690083313946314695501457128278979061283398580551835781419177484925072049043609243360122976182029545948293248462969688049535151620760108447405992092290128456579116002477390762435976528235525605351346323765002396890031229714556942452823560096125735678369198095095290468536056029955080648349287806996667315300413419824243472525860130695249906181602981812288317993892419976782851138344457447543524767138611630829308400955163461496435376507534198202347482827131511697112225870550363345667932724877529275477273121751646912138154824308892416791236728838366392038784459355909720919017785295720170919982554786253574429093237754035350669111294282891884536566651059435717005844707005450796243735012836278569754785794968271277267024366854629676373326646586654871976625038977330511653467333167102052240908418914250091182632054719654064594565178314240342029580475602895645429492496093477590551469897306126302689417242032789192971843560242874319866905262569822950770450001252510005180208391065600841199143880079280134710499133928319231659891361206205329067370906249551892923592458634919618173037973588767348683930145878217089904501143265099024160864805407223422655331173060265726391853834378217710931930288507528682587546480360654802075483115518184564571703901006170095141431301876707471589425678534633233756079563947247239352965433818372820462821553143374182968243475309906817363392050149218100019975351707421279304081792492988873768815272134643533175909399163822579725818657229245652502311756891676759677798556080624412065390290872736359968328396110454333691017994517882254258620835116634222048333405334069562874230199623947463472931155361341407792679834049247197360682131707786693538538827614632307817033743966214847008701092959189412588022043826392348043306988965736923130962419121152437455364304865370681171488316525664224450276268700938608526636584190351713289238315384400928769367445591939927757312506844508707139613702295354998535983243179467028413804156479556317341449091194713549889216229799477793241314712693740992113944094399267622634688654373281987765499549438826569345492812219890963652367404899077588279188080214542752928851110623650810343124978729155059890641081628570155496592738300657997355468516493933979142748752946925294818208750185463823955172385071212457636767384570377822359289992109741644499889800747024096636639679005253486801231353807876593152623250703158564382254725620780530134161615727209275420586965604935958922827268608143151461316591000299251079437889234701364018594478562556994073542976157452740667916713335155038317560533884812779246546615431043819597682578514249107567837653760866609777190757064399388209039466850789051363418945937288785062164092850372730903300780431127121522987555966024558043246434928032805692773754131332521663881316710250751156929898979684149068879172970352010219470577797322400937769523672324697192287853412863734288632852505135727835730572304687114604082214885592200615175002914969634430489535181417445461362159500755574238308860502855866608774531521877662972109708004030073464055739338573535507593579063577863665834028991011370638677974778625988305531013851255356127221091681749324745373408546022864663904682206401078362163361331239783960579517851626411550827920314660819076202446522898564014323345167228942787582189923499877322660327127087542211405401397224534464352898269566129710728952091723967131409823915227186044445820497483271801519073888272079415213044119018866957321546002150747947952847446802011456151105144797404107807659264321325378326049632206294316025275920076195225414259507084760761596809506678232790786232241869072707087740754024578016526413651832892109556012216595974412433552800701161427566750001098411343406034662424694492393848545499570696169110478353836232226805816343948276330508509033786415873509320110910711040403124477698881186165802016197295387244031244584228246235165949633731428703965365540674714612590454284264718658792818176117902991867381436034637541044609041000955151860651317766015127153592647869459282755958936834954380681370210664056717917436301580945880963344032231664722544061785522371913384820208495536310616130734947556577417560290122763593186041137688778388612037160552426827640712772908721915449517935155837230760920716835243272727167029988852268834683491893884285469241385739822110304521261985249009075308371805522549482465269695675401039347163726082776764092068218528419382438796169547145311225020458316117870252336626304394475516776804062639362740919850125716281531003951913867597173079397628485161712408004926909523371252134324557140226776425326589431957514100744265912567813116572828494025338786209132729898338856573056540573896327718789922246717331429840019390799621645194435809711452932449098900212326541310222136209654913694330691403673366439234893400209731947756658531473467037014767576512084445116911649204449481962401686017169649060619213203076772696030115229053908401333072790871140853546773803461564201636699019840757637148032404565236597138433627441409351307879089691114820910014361413569716687694938015342107829726960947392158890304522524487277747006424254415439528573386297602949445144826270886374981467571954320112535749118628531075016307835115860528886252772210979401495612659368779633138622029156884090691798278884265201452647561813846256677170020616822126646618532553996824858258244408961686221713000254149017701438446941873771787517139855092439651435899728513618312885938799500608850709328006538100126439161482209273576256289806329173542648564146042555607251440770467404934937286414528157309756662038295539320994028549411954009703867874692743861346359989766131390376015892738461447989138927810722821491509191964059066975821762637621365613408341938341456818348524955659793523132023382561135028157050809935361387593535628065906394808691324834477878613870796752729569056962078123523367148395342462252153752818393309964027809382522910894529587326183194861647315156298453880677428680481361143313404375572545989135577887488408998598054952201540927613547471115353749479799165802067563640268258806071796014609658584819973078307756412693758519411117732981226591066894220608659705308011026663754492915442395280379867882665429490541429638045948920858610479944227857910808215990704028404461893685904589123109072268013235546988477257634699400840067274400193246419119305379475534214902945437770583051383143441613217985833768432174194123657230078762316435317006037751419151187428937440082279970933806014586235814070068869439938617274190192655343430438512586152429886210868199631031662113877230300920776665850261390839108868741038325773792082424497208018868302924286448864342731085850230857250133495244537396548056046862965225433741018311789598890916628547766631912834507929970123197046658676941487661404346753658916461516904609943515343371441753795504460874298443565562395075741300287099040910956713087378389796256791947023599911270990641268498446963746905225745909793103795523929052832313219482537530198824038091453801095644763106059789306217185215218950827270016586017350412635950258615843336223659419816707234447654028263109731266786244138402989171063380871105153003146493409222572327881074237236924439621645034721535150169496417938335460264353318252611563233449144008318696043056364249367996682249430519308077485690821738831913028760847039102460810592260582631510099912321454775275418071281910220896524108159061470715012180962751679733973520198782931040151924762450128189476809655322127109388993297086220524830599727053474233527444594398045490031818665027995492610541294772300348301355012154841470619409032287322143542529074610230216153488489524104608746254867315097245231023033046609617131073003825650669077628508622222200087683539808863107739241999710382970061765845314921718954860506575732092318047707661876500450692741579783054908141459988769709083754501449918417800972825969568281275552882910621745347602052871808744294714592303165014086510898078746928987846754523850825649548358176266253696297093238878011446204511965727332278182698472602161205845315773116140088298721082815380820177000451114502101310404390910514773116403656857301321099996498703011581426358599574010659775859205784958830846505143626297874604688242182826369030465105815365592140268835546276930182060681687235376884607363715490229570261188218503879724412402237211578589494113389564394428638165422572873566737632951406034309663228466911686376207878357647557256361171993904059151960254875051603903760170154823135999061708685573540690006190361370252950640980270262276433549165182491604468626828477993227788249915314930107762912410537449343189980542015748787460959211258533159052843786175042761651275994461736264370890874963555346838327331617726316263685278638996061957205436461443857388992248559141464439167770004332235648338015306649470521293720452212614153469251789438133576736944712386658077798404663537518683908179963714271583027345946613433441906750309222501141792839238122550751141791744095733332435677830054493750041432629447161014363964141918215903382248189737933117790535819454961957627117252850077060674697057323725721767618371719899064868107758737066235528900831496510941486484166334344668731311915176229260547012746873464850747627721215029866788410057532747267556789961220616478869254542475618692693926689303855786427320697499119012615546514794467089516602538857168396368434093905490717088248580648966625054104128235628654698616751443789322737617848780225989401937779615499274360717697722437022566769260933093173799412535526330715081664354395157499759547875834037105648391074690717828825680217742051143921024941291589540183351257860140876532593474508327878309754227344253661954979967821542201265678131102813057428629040209643206575902974940230270461803419192417014072817739511208960366293879284612143324683343510066752785184838581361589736553097258422529162248851707845855102309542087070198053475492376989588676560668209903183811701457287909927903427451151167450446276178178340821999634970808064343499048881792103499033861790723005890752804496684194900077956764761417821403236805381744258738655953981795775461763928943881737963741480670826736987886933977336408339372893153401356568304297884476847464575546343683884010199668005700308390633774077735836908197917522729166820159368124660091249799181898227190851970825770261748455470867112727122803843606928113528434007405402324294155270035752909017857987829548955538868858663291036903101430475550192204970582523361353702878018505141934648995574382040590427401383537496380072198715183953633087844458421156828487261777556526252929922652707140869636253718956552938619785319916175988409343446716522710374378601659597692175310693986716143143955313349092450823777015762108587532648312842257346781613244569509662392080802513017292610838330120668177730613885570335993627660164879317192377446146847980941193467392679244682788597381101861635073002351482928768729604116586158248609551999444233092992180460201147626382739440310612043343901006126582919188503780311450803279166461811929043828682273862223464151207952339982990572225742335932337484138922941123370429828401304393407961731610246395485433104121597252645491264633754081186286141207768152369222029519332845129941791910134298954011633116380392759578369700905587868876735379425039273239163114057022942181514085896936671853222755241926067205227157674530377014806478133991948647392403038987106571625775243137954955712686176365520761403171330948692694263652091712830094387997336070134779402387908226103404407200701054572106867412756515417230871410904308882992540617477443759782889787272308789186877135560462271205304066884623159256988566734757554744725954223378721778319744791943248506045934840992475395169386662225964512194959588173239430690474649146974675452574533776088889122040995015106331555350399824676246982388268947724689869809270746872223072344286657867012126573695217891629327228877474786157681539010723532445655064745071334878214683826332660914468254643596062857579332891164077708812405040690447797301364862222707038804635402129420726043530904144913888518854742649871002456832357202125882875640350025506928931654533690255949627721616207719585588400851442730606615663224521569253638973420786614324707061037198681323808291698471470144045682674234376713742863858603570861996352032898190917011830971487849713230272964296325972992308203685478918971199173894116546848720564599156949729441125434164161068850141025329220105765052767082368298215658790171460119632934607537646243885330355596070241734637055281395707295080701407159176349101079748305491759371100122473588181396278219118508570477693624908718889146630078418659522408299934245084527841689538587828626346277994247429530170122042256572387239608828474805234748775114055586538321297929441317784921852257408625974239696905805386635446970739961822961452785853798020505017434250973662309211725230352914383480647569604044429318398411427147781039589995810417744882221314070565366096101440468723094346624424809453663078048398913189239953718435923242407112869009659106213648618430886779149847309238700300632677459687443619054126250824833805640717668436460220216510669064766238877372256154648228070476053896923901152476616888420810504173632678612663630197980021276416251437135018003757925027529933362011055630271359765592621412552757713734265730397922186004761308045756076266785090798109726846909181351298057562375089006196673728614445791189452593112153331995957653361660770174864878070777337570033266732502305694382831504001688031756644719455878749179926686407003594531126269819410244818572339594778239759371736040043518783159333797456381273771618409585881532400239602138891784608033459728524881605605543989558759276376254261446574541957294137112333859210878610468749272110275303215304184013796886160942691019699026479351656452641993316375417803463122915733852892645728707588321475371706075300919353750197432242171757402814633108603554040200360754909057349741683381874084508611272029416597643475782697540771855076384896209609612753560361338816832574440049260456883482535127457406795067751062989681027830803816627514402948648337382206438958432349227042142445807089848230292602665048494909829781851655940660081526390111947172463863217430067580608570123844755745162296436263310152079187683822302523125105214998744906126605821642699196048438601898970742261492187913871686258302336637856367604134842950041477594847635823721728531580528833954513264308164049333161804890460814336631062504008644372717295774235865011119391761196459737860240528971687071473278567132080865463433445541712741524467336860254527682048001336468470508834640620712385991300820969254626715684163042301209998819146175298473474709819458409209956298081225169350136301890491589190673626763126917634279066663807431081930503682166304276699935997072237292643028891913707270475272911760657017228957514569700095865284570765641438258419207874504832848490532268760797602611266286706548299569976384681430502674051188405872370376935823781465832348995598795301256906621413063025707602587374112458170386187743886105509280827519995547799053652589303355787876706601760421720485306488354704310287750190704929909372053512904804075038862818328822928797442284727836189485854686841851166548871333673671697186567991757261921090719579374076719917123345174777601323669455322819733440123239551204122944979239245240217379372811017569751170869732952453356791384682382251016424499940927553380905248050922936283561844990397770929993432034567012961171210253443247891747609491503767949635699768969118351765449356591446123745211185975185110448909701084871075191828816298533817478655319696607284346265498620621674835681315594363620001954367688697841166585456863328547355827319944422558083011887911648008805765306568523701788161662759532047697869413389587822114634313193758609647439806880793693291857630214275270446219697374974355041804443172898895124423228536768195730687113981587024066956730252527752684867777705930388023669544508005149976775436982718274818467812051199223724573829165793010776024360952901426541931558979042328492158978113151881374397087537463877504769893474104190321499379113420566848896743229561324760283871228061251335572807425761806953835149604879535008158525094418167787349544585393469150240287575680432803214651922157427327540384683763859223045065071537031395410995632003454949760023815958040976933202484930351402982576054134080819350857983108301796622163897082132392072403017315267546978217007860572939336102987569750280364568506105566897992330839988939195620783314929593199241928027278259282474483108935501244563191280747674227377272906756854894680176778509833493648704967281341654270832365265234760836856801300684794526315468935455044134872920943322371717765234326948585383919576860209509502743391232692280875411213837983679998145806741299268376934110721345835503708092643884028127424804581904826629482756226163050034610741223758275005638174587029248287569531355319706891871417225855227679274950673282832333954483956027177068184683651355184568344074917974674774799900279987182881459277254386403014820739300784387660579708994832689735879585376770521869710753526993346493968194510375221438779652246372749968538311656467648347441627418711917850849879163994235672863281087337898544291009861727365527477968190806480986366948500915551592611369309905817677764003304356625692294804405616071004788543480412084183942675204683066354631016113708002381040211728512307796724831884184576209303310784768242656198861553174959669288876468673230142200643781008681362453962782161604359572446083130470644443907969330578068876309737394730071283768791398112176290500681468699322111179877213040547057926099027703594767382285780907339811670957125879281748537638364052943355549385968523138642513390017563090795075083537879464937392364677620621880766398321013850449122500962553618441068210496812805713860428048257394874501523186746942602414534233805990816079759458400136596644167126358094794218082927956027883324539604721558619774955498160499391668113416448513352957232666576585141336898655389058984662508472458331598024275443432824260607881662818345002516337132878245530937329446134751348345183028808786082469552498499946394118833106333018867085953406958760555370434922447062297435134997701839729152062774166941591218293757184920869698812973488211807279286031593570211565942355124771214656717139191994319488657372365325828661912025653904711406566755110040071671713931137249594244326912886178243301965854293130797222193698086200447543454891149484609547125656379018525419449891479103206834325679150033973419122866567065517429553783879226009996329035332464849020261968031229465340189274409458569930757349626993214743952578982692018515136850025450454176685634688813536499260890031411953168264706244969567426767306706169762199273002475239471934424309751602307148546337273175001201788865695818953487923779595680375461529443169618031190511033709828159981590948580956298510731499614618312274459894861698020984657584260394253623267389639337685274929249497885162990601554376719968213987980745994029239178707951400511183766119081953452915097338392562077459183867399824820113429479056040197783506999676798718840561885661011097000518645859093669256703469128363775972949000691247040603075992449348351969905607826352662924244078510749724038390300115501626575098013718714575659714952559571991401109173882712645049295423074441491670583921394073882202794055493870159804763353064163505359262235457344728975564086301121914200012456555126916279312368469375776462368557203553423552957264217624427443895158934165566422585936434868350462300315518265134576857001429395224880842325256662334003393564419389532618321885302190265311106729346344295089812486111242836570760691302880597251310530798933214413551129260956079189672400195148780575781500780528215811985231848770950099993474001295102861368700836380586830394507526042822192427299073298916964953028299596500736430860071430230115206646072469139437669190453456017846485426412479189291963669484598873299437494056174565619019860559905645606625883772413224450847645641758607259923758423916608802773898868179643399384588037037219650630679168674060460284322065907962941418985480956285752706395291174784802783596254801984823478957019415820118203872640927521327024072945826833120204595491849777549895260568048131425457294550840008458433425352156457256005834204869573107670236564153117074455996760413058800608074026505581768889330841817023244704017312652944895033566871627839746667826712234934413113710294592465285305322147134855078937805510722083427594413079329712174295685050606895985788126965869163075237787135624764756152110552386552584692059603402711708329416422078399783520054638275486845386682891373223964734401547248560095167289958469763006210895177622332628574286034969510529610795048779858769312267152576220141638018397505344550373767155467873798483550769754471588801155340118320910685747047181639785265155130269889810004935833860529909167734721108003863625985562981857187062230053162048577780779469634318472853513073868886658970347106477640690215713307523654857079187069053678191163955998472248130886808330688992231460241186939190225038550488031107775458084857000668439190588917204715819747813259705001495677961769879901908624092312096658669399756695487024148349890725018619106233613769108078897679339257255378951423225905187516834585250311658644142322906691074164207141671192153910069840629780856000377483672225563592895100923013511365571309970500944626361238102652695356944408379526513688204773798589345481984536728859900078808404122594248626879418347177839166583024604130939067758923034021292653758934993393986921368572464234908530834762815054096201980999372375370842642842094418146833462797216357053205529955620728668179751628457420918199252090573541724590800947651554815719881377265176246524567328847293445124914064483121253099469645322881380113982619853894185118408690994582442341473739557693253196217199060637973337180642365735710930864364844090183968863804228160540445700737578465412752395556949581349887493170252851350578326880576028599094054999119819265946750158336223166812153329548446081532946643729916178985153360851522277204553303670403308057744281976942050699313222241691931043909159665893478100997643530708515723524142857091616569196062005963190195989950278675033726825643113211766948151237879317531827523129654242110558384733287960210836643595528874821470448083136261153884270859471034543747672097791023358317101921207326135533686966730945225489108661566940152747952788221596334963920039868249144733719213808912861928095784112529697923508433072938171051780390285048351252762228593461124917243316398565283547962432869281947157106959405889514958607566468052707853848854996003361709072503440268627028507764106097834782452465923521059801246838060426928564245329192562973163754003796617820771867814359114437336850863645096034421414231241843314543488822373404766189756737777735291435887869114937862906323899567768733424481850227433688409172590799681190176155470857464853284630718609275605663104283098229004716449142071579311702396290525585074988622198804929539605995355635838701702831528270703626555340246169499154212279526020613036286432114867235621412378324439045289671262686119190225202223646076807526546840381913130130656540740041920972624688776937782830682714669479617173006425026515287441400044197068888379292954923519640230297015360316230583318788565064758155490445174578344618636334493289834885864448909617839867019366054415216450130821494042311903755008352737070000718637127793819156181831167319651081631739214084557897812220553019528991717119607704740345623920375854689299772173961165665334289047008983536938776097204970016577655675974987241254893859133893441208498674670779748629898253641679092370636657157855643385516725312627385497791095048630192847933592132489851795288780764718211018102402144784463053994414367574155186852352280404387564384904257045188354424021332989887638654979846737873918409737150877197909160792429130780752621305157401982807231698464387683075116250934335819007730459407089629319360115824424864156282171245791775335167584516049387027607403779551944996644374721569815085105786754378411105500887499569293932403050529214110770806364451424644503252401995551652349096437071573512596207302508024048135150366448075858351139159805937744957473920923891375064440166147931503973558009421513130891757809749470494053938572823078096082094126587716103954935175627183588246509845504841175605369604799779961698600207482932040824893773679423512230854337471093939881702902405459763268786788075521777641303828816228181073736553455869974581545451589984121041771749743505153571360893705230117172834437769682380216956918469190995447419329459326648760473290095013916849322294776558050450824928891060732498157685453685949724595076565849686370163076466797548921195861625232034206376683919611228743694457062815731055877757864235219863658386532356043405986848055512651149964455108839655129717693491176448038310554852415558679941208042347690032646056153480993535081252242503333425628337157714886727503105019784261763491552606576464058516906646198713528852353218303787712470459284362983859669263959359978559047803096178840850677168438671578253821066799285155641448400309176578946013394531279556033988289627835111992423068859255036432733012945939310238099893973037849026336941714235086577224586046673465675116928825618461135947750693598017005880409399944837805033906046983222908008506930894843220783703788509207020731406203769038673676769360099656509289399631280609218105555502507130834822627893337642717588606967641772111300035866712970285054002492596219918156969026941785994165764855409234457329553860145123667399321814291381889934550205117900332894100992206306004770417250199107448506515950872295440318794074562039726416913833209719813114442705937908600808795194084546003392889303888444925695551844629883459880245497815417771388918116162889851064908424378541443580888702587749207582179004758763351063043224759245136679864655032768867236124114284286605491885803127576301225191788304748371432669079335785135178142901106401265178496583694069978348657529203237114811731545172686128403147170336173271074216734428010816412552707159811120647292986790724620056836230045285259941511895033113556811975643317752268138094825541823623071983239657617802878274517872205594516792377424532808797765972750405492759579189034241376978218802105545381262289505416289161828318458306958936999408564439369240034212659835757935782362448976167889015183557347534871494323620259423504482018249207976624630806500676701522038222129546672192679834662573960500242023172356189251048601595267009670693806414190052408952337184976230416713011957039568892670663500968677876912611943680580336740232051762013131568698849793094439062049599696389246013218249979326147380065061310700396351263774206242841501154297327516939553262427556397065402356494208746195393009507700686410568939555225848800024780777362404480459067973796582523391641587341971729523438852878078697812575755799403080237445495811728790228010831971050353360970466103803953189457207988891197331569304339463781281996829110009568039660614070232367052106962850936963825282460850336199517690615633697236754387156490852686963097134856955182849289815594130424992679281489069902747412471148045046957690090506972547789653043549992748930060276829873110169829168984882796119856315189079386319826549364141478353782020820930557355078259292013629198830769896536651616298321608161073415585617223031375142713690419523290920575044186673149595514106558235238881392615910525841675533258595241280414397030914749751621403096216859199076227884670994000944401459955088764329584377232490612882712720205258369466305690682626047801159516947107660637033731404016477689926720081016018951093992257306231026975891026086945763746578001862968004284533255856564864922343254279860594607288896677212500859336225405147813154563598001687716096472303538730298337578577884224821230952525184008472928917673189070580248369484211160663882414108106307809303321992557009792271319461238868415565923937840519483956887296060428981296115848504279950950431875483519998250334075134442215659471245437598602771751690571255200003289064311597919922077970029032081111667182561296087646541044338366436072178720389156985709601504471958829298584548651197890752780577047218841860005797330185776163281423845448546322975214277533691687179888266927504764286073139354843098835952115929873719737790346738735354022644465032188036262384220687605532057290766425562551805525750249467960870545817719011630991152209193539874232685987249544663588333435222665307498338693623905038150660916862689537799153819958016138964417750336195248115699950298142130672285100262683384688266748055349442640266103887430671397839465921202310743263898238146796679262812131416897973764274677259250020762477468816740552927841601184242477568174529057896110067079510357432745564114747154690170839321596700276454270726336445341962227180822295257712097087933813531481088119816163255241157038656727183274967067003943642173276543953421514225138907095988248337031576688761781527942304203240127321165650926535805370398635735487995401511282325938503930946699088289792034344181722109326271375312072243958317019224426011197737170414423708818651031957871141658804663177927799604770147615372538351331417861919578862230324780504688676067968812907542694331110117993024153574329952178264913113733411008211902254603258901510257435352632338055814132907968180532305274834737418791077085720587223599511244660736024752749002241753123634747996670798079253311129518905301833493338004577088191677654994733545326346312777464094759652569850191976717499174305715204343265832792779563801083482144339008844080707811110196930253912980132789698223171943608797919832561313109304157396906471494479261196077942147792474824321623761594487161947023033700036439913532661889990621282594403390936140264297923539565229838690590146618654986326782236599319649300010017784133089492803663081110165614993863775609899507369453505306059098957147267208327676795299354091109354509118124532612481618957617686495268933241999039344261037986959252637439047990400968880998035839588349720690244603846649061893468141334588816041861023998133011276397044526395279017041361071890355836143531640930786939081123778779849022301167910882891964358677184532032845460437148050810126719336769821278127460063121711119552886693445706530486019644643170017391399089666472373213913774324595699787139763932106939189335254322713450688779826499276297380614493584984426687899966114149684204322714161939050528267381752328355727053951088522681035886340849141027397793116488598630718369396080564132391626283911930020028997814442068492105363898095132800353247454794732243616371946011181316612082726680079533223645544138443581465981070092588441004647110391214634240012933838871824373043002621227538203397936037075481187226158590304185495752769057936879022604575286263773110351203805271883318914612551738904084463012667543398759046223969807544646464934582721721684982638762731887722355364211897118599361141657901833103843046603452228847577214854799314402097058818230188951034393093928705825218645145549989011079217173406424113465492406098957153278175170436377149602258596485099635658531203472234960318656284474263094878495048129397568028579610110090025482937360275077841131105422632573579490024936211089946068244359232932576168041087015981032673504839634940704944574992517108598694116375355108636106563117329764220874660511807491164043685383951181173994029508018058659774410451427163680224645033406023616163417933734040467255980150816526048777198451197522441576890874994660948066587228630727342047487883960936101096404100134795303139785143985887945814244958923243427324044393485584432408113607739672835120425812551645497065883716744481428730224375608642749198427160459367101262982053079247905237673450657351357346522022394718362598317320479207283487974207460263472603845547612618695655838111728564824274052857010280748798705317042755613930254841863859527559477356523295285135092558331178060654973379808580995339695438264055621389665395218895983419561377935998952102205904420917613840759296917918316519742335109288334839035798727984456937921668530783537679991749494335595592365854112823161872159929321486334355117957262088656640049361953294573277913186108719577333833246187621111527619651315712487247305426235130109721664400124855517931200340982431027795359745388867347182991556161598836407891165496946059415809725208568433998982504913991042960753168847002998070110865741941601184423401537614354335133807842196832341478919460873288055492006434811147875988787104154732159426199925677824661102463764258133751458998928347469427505777655277642529537799631900182002637786787431018087684091399316538023641255958392132958866431209149301451515815611427416347965735080579000903787457395960283486155660468344126568894209507136087235433210563962853837577727273422426144211393191428967024141252020291860010082828647070124174585517884699504854013282539599333825694303517453896170020064666751913351648745162140125297271573547332387712300558912679528543274120728365310829603041922531961574319856691826825380444934664952697086834186563093993362113881767009532327394001501504748808034914522089765252787031795067155782719045953564824641719152599856912218998295505118184296148096768180219644539293693842813220819751553333588454008656168573594535872448661813076584191191808715575502162752517304858705642451700497934503506273759290346213287387954176754764129046854700045290218161433812743928612039785709540547207464683740604588664258244778069064310352113461434365290825300500462595335947558040724055800191947730623923718515449937911794951459718160649223003589223645643033833566482075479179953183020211155078113734309087162254583107456977401070052597127953527604287961750269962394264116353213828984551822395731534330342671563456518221657371634926522914642130142526572172186378284644968073771255017395044772369946054692832780875166204293471939246827680224640081092191899257393908008607951772759832411906023621163577586283120605517628465947551398168151931464826528076314352740402577661553964565194583999736231059016219604789496888261870781871883608415331236961601346302514691811657885331870496518655055763773024950929901988688711296767222587016141815322583952014524666866930325417997551445124594764809632926761027986601518808829417863072410833253283013091316485591863056938231654731198654505815092635107109040178229950388038965782197777853811307193022462537990464261971960912300385206689970515337744127376724799954095349122511631012751207144644756663271917189567384031729328014668571305898443103766906697363064615706804973978184651492186656663792498177765045116498559603777919435641493151721031329556879040379193568130119151953291478440733682156588360936051451256871202314844966367376562967723856275050647958088226479755861047037959166245247792174476688366536223221559887910614788879802651868031691129668961080745596454740149731924206213470878986511314489970431364780962563021374641245938491840692027020394363093437215267186782012243469287343195831151858262576494167873266101736079481471123969891626185174164617432834598661060463585555444002549177054567979864961220001261706483624029889068296972824650197975269534648911261931652076118871232606241731746990193194624658515011662348260436366973135077279694437496868241736856999906936410876442398340584472773085935016616479499954410810836724339941233234438495347805347254094326743371180557727648495202375915017016796400672810791078764425140007855872180534814705309755196730832591018858425095337815304055910124208688677804567980790620638796279819313234136867593110843820994009476743856713277538937659277382609403133070611966861626223298759726916344501602293987013465990528845156937970680261027969897280213612732841876824889156882603678148880751531580200360960017934414124097117100734587980494321648308531676459202475425339981551825559974925279068869026215596679912595707822485168466125414237758892218158062010955933240771433607022995757569499132254349506392123116135159527879690413837499146495581839433338735561236312404576681666879677363979975873362348519487519527489794926011066814521224478556151632438031741223103877695947947333345143650031691365530866110954997228350590040919053143714394791524312051207617065071933955076861911045971972300435181046825435310458178166135566923861650244431004457960201087290620326495270926854313137646906232714878914746634523549564254886053842552288299027068048068840472363501777179664866619297716308304078995795238474679076501662544574665841309715521674383407686378905141744983773462870309294293958722708440864196612754027179074864349144667372281169407942412580828334965422559172672327356540261821623408424297914604818695140686005613682759353316702241810361268733577995983216572526791284541867137468015860410305153538334425422897361350451144948241585121076993047911695632815223779395601663458283559501890585069612777291120711625566406818186260964878823158496732252439564872119830464371549050114343825567038385887248141167302381191593407910201531249443097386253555704373036141835392736090724950831161889077260098286929223454884736034040963789220034725031384522429372950804909602639498577960590009913748464911487945190507290700519195985619992754250106359067078591186910283862798174948020979600891702574030207098003811312352965265665565092658865359336615741405319317628484313048489257612435428951059367795632176367852214747270931691653188371012611558044440587044426346732050692406333856351436339795468598009937847614495316908866874180672289547392250239646462937609764347909374704253799888371543638920952228662265858361710353788344991737391694834985365635497559324884752755238578463846112529990410519288656768409192042935686403169275088770535577991229368096535161596409954806114645533219451138800463129183145921672288869366583026664646980782827780110045577051825762286440095616685011687441943305285963053622623618460769192498919233563437687596442401675812048948953291992145740366042826647519718533932369620506729463342716589056186222541771305854250062193512600853001194842672408735207866781062404976365415387284087841326265441586274284460661191552162459777759083078785759243724540316669839642890431976795241747758854837346388778812448493596470048487047756232139884847069799937024161200297729369697292767475576329866475386670563844710953618395228039790376385848015761069897516204719564573559747904774401771092567834668203640254715848478082940821815468379582532160624173409381560615532204340246024542620259940825739848039323571191855215578573887327964139900238330430133518699187334693073617352632678367225133078396836870663934317431843544058015357806721372728773654273322595184965703436471518657952581366055265877936991357856779477272063544221338926198371280400673007967929427753854875669019445539707743431029271456348809252408806345989718601192745580295015726097658554353998414072655805329845789827095893680881341411352458561818626980132848046266131672591888880418631108503212622469330339533499418735583510399098658300011192221271217204532249936447136683395312353203760620206402076393655667748128499663012698042696464754754553041258979293172693766038604080395671480374780072168500948294311038246326451970229707060602749464014277205047759101529826622139243208763164868211755445024666899353890606058317651885052641565480651527693416135018135447433683835122814409557351375250191632274497120209082493902567114968717960721413930640866077525130519286710718695687383228428121608892232507537863353095396834156588109930654572386519730334485117909945523196016805933600661981939902219984903726405012425822614463977840263399547601568740640439786548092635152286554454198291191015099766775408509636340450230182174705851670255029553759882363026629229729430159360988499457599064433832935348797362182867889663509615414993767778851933965572270814899505441134951624880090471897812453699561052412675409925823713129120791171109462757982245601767763741935738321745555115188338361674775770287971639853528966734815584119686895774881148164236599021662605555569687112936286769039412002485073278896370487038222672502488088271312023124615292009293691557216711158004053842483943850479473606603733720782411555434212432217263745796366967106200295228752782402081996487569893581354110127674874949357815672272097282634583204488510395420951690481158726659226376813748754630123612338428090156471836677724140112301104137556675479058305667519434075888924544253061304595188791113699998021473164575785440714339739138073112831506227947603682033956808548224898684775206846739578774191128334352025472340474290737044220016653085948767330294412809559679747055677762607053490518471035986130203184670338188702668708004319702463578842095250201985939424335099894563396826342823210209259588718641814256786138866169154595578737713236232793596895112858453259255233695533163813219111930535823686863180467991756323718208049582964126983449599100996299849252795347840037139853625624091154109836535216488569090203017998207666435141399098348554020675071732489576696767212399160620044953957722404246648993456934178074617617208639091682509562012745512405682744865531577759661292032190106647940701325781275090218374152396483939399056845397898195110739911926870138669187039516762922008074944862872668420859293633026687716452787458492427685936712364320497840998175327221569216469795620605735458337154860849659194374259929366093671884052971268172255029579425568008552873253541504046291475245721009331579208711632224350395191989875494139078467595100771461824894317425087658496331230249220904122482459339198462133718707762000396925837402656246128931875023371639973378654278754035429405334838421881945322091885777326128715398736766147774870083602215597824796958036176565059826407233589613195788260742653971084799332124519688598028502780344185155290838889358121442628682329499230098984383605897791207825888250865438416340475147150995613752798712164120641404455032864621432994049342724961195828897043613485089881382491111685110909603156751501720672841453125300171455386252619789111045679244533566549777786305905764505896900554257019415601647125098193003026983240939974308114350966884207034761176337358000617279324568594295539251139490481650483927362421824612177670798652812447982051859022089652790438557134903460843025938240878276583928080255919560610078063731210848825371556704240004951421322873617662576859462259943751642728331236696710045508188801729757189549843509118126618692804678465914598908053858053246659063042373008505322441163971300149737044751554040494872519331107169103397609853723039061198973951011388096749473454477788644879751237510738453432263046353822007999501672085451089176405286316899500656578399660987287053935818394883700370392705035275970431807653599750105578652579056559662958667428543781047130796028798684833461846121900483004284827502105552282286568855352764874219410654814354141098867036657863255709662477501231746463727699203643135353609203999011485070993278024522163506920070344526109143061276782267618340603712975770186676731751091157398461922434963147390026049837187741037295080366035136213050999144023824420374123821833762107037479699302971936174776681359264597813242195131647817727187642484427284007379767172394445348447386630530001028867493135435395806938357099400787270116707527723025676538054255703301698075942350504860004932450689341205512175912888310132297257622569968893602746155650474656931536089189850491175147472245426753198505564086654631430357925140001411789160120702147288091512846111056120352966133954054599827325864528004367076308893254757773673703311205434851924571038032265565605560364683234019389885800290185198047773340668046447748457090703059689947409372488036892226269409511022899830021653734189982601214094413683531623796995735068933785148746605594829425293350630079234232470403479230725212683123982062920089662344049527867566106617905843889639796579241298364601766945570987476108433031369753065268883413606163638659014278922485699782648038845356831602215811379326615128756943134854157317684188904148615492579497546820006609119062321641392293658098234783836392742408312679330971461688620351139238283216457004714964537388943608862235307422260885409865435623279623878798152503221740721935664206977033179708308217131226436424320274977878546835606918018619649087291913602274015736741089021367466168738172708622218428072695826981502046201523266260494533125873356950148209648348310946110288555802352086862858167483778921170207545697030295138049087109748841593441003688168586995230488555400138884607347900465877752502818152225618099434216617025733564623098360734104638426120705253263190561710154934714398823271522306427919632781187582337012408163596455587301499270451212975468513776969968899357168889452458445719526002235442564005845430641407898188052573461297101007683925017722890641438110315636121956098612217198321160487136811942902779767857441877810214271988395216173446275782861706150417957204333334519475837610135164856314076284341639997277885666062400811221754175964310269164809172903232465219927745968458498948162306423947565063054107347051038016932636989903485897567182418675624227889228713233064813562960887843370341292720808308698657921629820991439167007412625861323332761984977030379710943962323908030121022489728575204951845035325873911012039023892836885207919353047242832523648212734004088300602916849678754646656334365686797725107008519859096887060816915259252664547498366396870558757755080397942864502770714891254263011069501563096326343160426927530308469276270408302185039687749299087208753710087360744036496024782162587829372967978644144622451099928988102929231123791620482434262149567709935221818442296474596951666232150425334566794205649070411355669544569298919649136992577590669313966996688302830303096850376916188628888698192691290893003145541202426872141951829891880857845459127713856157275568698164660679111227689313614687586484141187165409100205495390208397902784950927726426620980328979177125595450640021764427705818656157250450787420004858132456218389282081312568820294628474817486950637253130777039088811592856302997269204754667839743954294943557670000061741147460294302802777122571850687408407763025925202798114103763435057834063529097116769652800034407200865380474364721764585840080923053092258547202738777498156420369821164172424123086488088162608090637641744505333673674340217794300921620415648887771395402009864482193571013959966352136588032084315270049070726119787119677475799685560037843416544252035015297863172559055016046943175631984795263748489744107537553793251101283534341907521459939833034947454746880962625364807913703518803442425589811754868612174949607104947672668704269701520398175253491636067233230978041504019920599114542402773504628596597979234231238281107362018119591305377569687448591228846086346372278084182457380027830458129680810847277074743084631615055145193165674601837199744739142559940092599465793114058047582194105154393520170631547323078517388204012586134873348027209673198125725406884724238919802986961934059495344524733909378005520172019055615278184044324089276256779776818738272091028592764681988437329169832834291107740328575196072149853177057660466097492004668035298521141068697247553743472980092364733597431807926694136313788572631093587572939767512358318743742504122702307063765467407584615805063404262223061750057110857893180681448629307015729149144497272322735083793827003552721800605087308162703005129337823218628315939168614905618347459039613135480647307988822963694639318193342438128016184399178313671054867247911549605264703684968122638865153567032509329825029968166302212302305989319547952785776709111611549418733711320664485147549401571789810417952232742982060320425959968062532292196274460602729892186238929392166635892259478953789813449563600313416439645372006940832308413479641152607701782652647300415565247388918391877883857660246153701378561397696507701819117462471494771122403586989999199977594327418729135509373878818503652416096476332862960950879146532162660308773092459628549952379140170053863621056141258387629891857471167072596479145040213577195779270047657995612537697582532917800142709836254654222626200618489966018320368734631247133949284640152691011311891954348838735595837956360608163825383597124933423713761735816918268985420896094706872385499179844614596683901119816087960564598228714755943506072600535749462449137940122346419713950795420677188898455545036995603130174125116493102258143508232723652008972191416342055170951580120155889577691940241986299821495226670588208215515667000245951887113956150209746555959856888896948276464778988052376636838655941271379703201170201376252604937976149991500109884613278877049837460910818362609247362326534530663206311489489212403970060975731322497932180446120228448327099781026834107055605282122832010453088958654282649482236859252366261215590987676801057907318942508768362654270703815779208601968321550552293777061056968241068096687811199975981642375995840485524801052950116334668422283437268981142357243278029904793955258885890737355033341479424539581586116255829410404539826530990968779882942256606147810173496772215541224550107839178273299990377228784872356188793769555241224774936315645344061206625875751480788802025839861741312617982395386935622168527594420488950444509198832324111799208513530724647580625869436149195576586912600035438696613802758111888437624297765190306583232455820517180740085782897465490236899426019866216040025246653419009981261396043760439595339358662578223875106164913947617546345310059404421533190274548424261234217682577310657477425902802546840688583938807211270747674126312263465641885915796769838454922028040381380410191727890613862758485071777552208394672639409186390878763276619198158530337728861451038611201750436114451666915296073040433924255056781284561459498440610531011006508471369087946462621695149592095669072175338026128853156721895634469661328364395082940327205015473833006671883834299224447093530173888182091778224419956292230680571160031767709743957099117647432984884070100848745061948171196228761438408120689641804242104067598994994645244974462516105200332234726683430118995740330925284927010798448262807323298152166707649912749500921534148782527210216915352171514153989791074569538172410269203874135014872308211907798377338573134438938685521205591973372887882679662453101685963114298859026491880346594549332673171015334476562953367723733879153489085394163102376640468212538216064481553912675287328358130861121948532050236178009817396380479535655349396600257690942092935905758172923440558220485417860087300956491760958602906891850792980412736160683273877077278694222408478387424198222836687710172790887424629525602253752522388214861330102110473170880082958528048499410842876139281524955831957486386327408635738895834569536893082959757439444468783295739775030339164688340736208364684971892812088252760695044550608498042041204639198037200950428714696444671412263871312860414644088911237997914307704421511906277646812505220701028281104833759032877753713574636535875147576537780244277779731014517781365322566039556493211564681411940579789947798295618936813675835218773623566041836862286635263383029103714121350240479404504028947607283573212484886329457270974399468930813859765230567253232215469819923952690813613638712649963999433414244457113347695652587822930490536949318212356282028795151777649526272402267296661487001453475857552029651188567755552651943882622023960625741327983319004952484406380056710795179812953174993890993880998076398468054840018488959111486703239749973241652323050430558506107545853161275071208359900928916479660091887835386456692327227735932508803319549614043481000716012417603005641158512952099730177445087720841659022973974395966269807179177027517278971188991406319981747736238866515161394130158927731041283686231919875428955590172734220230074388317481819903497774851049810887306824271929201881168200645731878969947640465634961980651664307454276066661593990324213379326188949693437974690812721012233293421237093514864965678969637012230087677248862350925462067596601837880271523074938311289925390931486765457782555172586856145202833802088207406608114138405438044311542555903952089102895227371342430211730786449126303034995551453687030473557870302909999831718590864285697054656024860615618314258359386470075461020816495918893014876592991279409729813321999154247239425818462242544839795029076073982399053452108256072321691330542328577887723121430515175544737047747162059634681244279813824623139151486618036517158337241198837645091803668369121158195497300745098610421798398006554097099084595048692922740467737609786345778691913699658517146062549693363621596846373147736337744619515012139847576938459629741705707547310286649638985440924634620202458155851802384149816600997461087248406335121586729871169389408213226115586527811857949600313751167701973285871890630732617140296005338825912667907569093823086073228724504149432718750500586295406305497566092361259749679097898402307286502227716352517236363079050683216143238566805864699086021428460846132654427739564399271335803401362706635837337183401131651221932458617720419035070532206324314635887811829044995354145550337637507315248355201303123106182714148736804918279756580707236757013380825990888087327963297745863362128742709235187887142954023494644111534072687728158359990422267822982751806617567964224321923413513153181789450783695178284799681402679421527707107615636852716246481218066746368714717876798075844908174763108872817633116964807557985975309704651075038996357737155009688534724159018899986036559509435887078553448434393041828575001387482263194620983760616296629903494384443931299458445725076585222234967802115485108441321911630928096971341505757269416696019969828824552104958939544581102783214219536182179410084988547984343272879325926470771423926264947748297057591936674442582436835626585712181800172193664225777754092564949381640236044018725485139765547011366075493890609441878622106526770020731188689532412680988236439158611301654675786891320905506990757814930882002044590418767175892814838783207933825640917707499726852916301666198471524079195392242773752898949395018444171822505483083876513996096194348631867453256337227250838490227060323792082995763746299125067803660725642718758078738725156113522488439556655399341419508907995587412273670807507369332397184487434531528819781547541576363107018792196356575881798651736239555614066651210704957181382526638050721314136370547342054642897993869359065133813809660533725021971029302211750611589303620974298048744673018234334225240675918534114826074995363144539204107006874961483225976153060843911695334084526348853473287607782098392572386022248424737753074360505525371623299999786032451400003393203162010297712792610766342483602845387390444881021608702473466322016472681805334400901348711124088305736013690225600260524468866173470103948415608834314935726944919812175623143130181758196116720940263220352174233958824875746169041486496764208944866679700968940932414066491319100872699189746542719621570910003544342442728909341803292668337432837115141605531331489388259303187635097802331091051717112139051760107454584436584836454359439680899376185004093760825586903828572130137092926876299201792538536935450557413093778893681526925291362593927031455237185436191152511785489162261932347025653218301663070554041316656103976701826072426769995396234810891106517590739108492404886667460993399339371608942832544459713282439685138609185832338860314186783298672453593712157834048005023645401306748620282039955652434280797337964004408453121906784916017475285011042266534915100061791726210376056059728636404374853211269832507916419144194738643938075412815066014560889480652030016356052609803291527696415846696660820702607728663234742190432046613302671170813249161250695862365831983063757426684742442782083476466043948543767859945193738268314117657989671074735166542911920613080684569839343168169461756093378846386212648210218428373812828122047128495289562677590779658257075689158283514782636859718459230144928358323128158820596374459164950553495895085759807833522965678701520610119731514948665737055730643102239665765735049012226512637774713431120276727436770906556664157360902600521115392292957637898813676902443371370138442801755966711547729670617323765952201540382397674673772383657641316323383033051045186134426381164123122880183506793130462521955089814547423377495944256616754793477704319208548927307793151723477065528326097365001810934699263579137795399302855500258209653828505408230412377809834157083744136293684601126343082182387388486443278022533616880258824903777653384299317777194750437653454545221403165624774202922908450242817132262583313981434778786134400891525998082159041337625699463700915926901630396854096890913322157786558398849032432798597592989545121287985197350232401406695842669796784755937313465620755127284010410550517799542181329368281971196675263648418057925771797802151264188174310285240613247221433844350127130780155377583120144934985385835057875119383590863942315661361900717017481308560884340110848044409376944075881781299396004348401712813419665286500408084883737872317176582930710693803188933574973225998862417218640539886975823061635095387322523722585955991976764580177722867358164648397852103188304779573448979597046042412330575049903800762242588895196733486202322501948645183357325732511139462982717495607845014710514680267360724810636587528443241240853572857299294231344766300085425932131720047987321194087194710289983484462158993088092438705309207909069842553829507556528492702713402334238393258389402522030291337747171492210718102807888683327702063004094751636075917483666138448520551573774049052878655796327291195485439240359339733644888445862592878827478590897612292698380290752377773115052925527706104984987486972258170520990472075198591956706150184972301448433712275565911670088915068964198045661839507315948563107131883423555445146517403253870924559896694800937964759124109533753224634904562756340963925640723270321653978069997688733018387739057335777095178794444557859170830617909815718778100071779846864186633535598842368701714960602607493945073033576238546564759046839289956996373566077064665935284545064485494722081039760422219885444734796430723627406462919453792171050523519231464234624334440880164903783602184156931527835104878775515526523097415219870542541395563756214328887190146277538420345096689614167428603757082737808852811969158540993152981673943789429634989277846609369321003152699850581942139112546387307170398061859039210155905692122952165826361218161195289221702775278384451591765566185216654948463323509234091521147665666628869260979353287471344670012344965823733184843189187911368541967913085494270857083693968573541921233775298623493829624738745804957941414322883475796458146514908338155983809483783245526745038854566427050157960522086698134494374193355843840473656997224491267886725431979685005343587140362976117229654482813990979507090403860808945261586363179011129253971944673779897616216500761308935234474333719305353053986016018965449263543882350033991021097749173254438538747222892790336749230444960198360402463898702497536290262365541666381961708720627763392292608632767489491791681069657251145747591386373022805475621430261235676317828166483959716534008760943678050252604371374839545125177402285743201867609957924577730356702223092871064897873659270280497597675096849545075090515901956311239250350057717961981782856210342106787266910305258782552427474176765481434606805921520970536953128599316378685513232437929054934181887942368719831967471274040233739627128837822503883264280072721766037556426375533931096461030126222810415651271263974529309113300618848870226803339616209448204557687938941975479800347283527680789347056496403504747834755047109694830085059955002007773375617120377560937797950553844962286558262742395728553538359549267278694846952855382441924584963183432949292602427876198536739133537984388131503947077728713073765579181180648910552286374867981825585995375883771123552734895934011734163483826363816362680746828190314976010356733273993736948825283375389477973890541493398297424705269499241561776578719464177525578707582004562012548579042564604638873338857648974372008037991392254577809595196973093406413570591985135268548316188048816577021642500494321790826523626339443170357790364693072911897433785874227960215433972969680415340328586083321605979789947390954230397223374206110588642898264807955663083569789522021148149928815662546592978452295910176657010389506699860630843515836762167431421101983138989955702036961116378929883182850083418888053235367992079552093712455175137384213452086778045857366647669438387002931909119538268907914466245299520257341477440774462929886111572079213818801721857922955266369995656307806150366126175519703973647843739395824653714392333230561816434477630230927697400166401719544522112642201083234308549358311677306031427436310974450244543253093562117422675661414186151328016745089888304835162778150227013926666920474883687111556029996328841658299425741450001189786659192795732575422187458973610022566103627363218539417635067485117084117260787494057478747115683448020684719408627143088937163311808926681712102762287248285806583853646580356119422737508203113354372758275620981598501962134884472312343077783401659433880963988712000356658823487940934638393894966264919553369751213197027826959209686546567223703752735794848197760542761429450104023504297784487568697308036948137617356606260845471245520077148973224745061483752165312939219320631343600999115955673721915611119382167826915404902676986513174469352321416596061190602574044501824815398070585533743076391124623952034420656139919803757634323737183596134436991432134044384941589194196175561877319550836066243767844469795475146832510640983531709754007478551184508111307948844584314860993511864445313703108957886218060272861538036827622795258353420179924126438111726722341109479512018330361223871001952412928652823083233115090552231115513440820880514828720853897917775712606483842026238416970534791906618701570934173606609299000547686934678939345127812726766583069812176399280589639849498021275921282059876421636034007953696787026558969522379525320113566461255326966702024214871288453575309747619865332461001863228700372630734728070914024457597467068255115172962063877212695258043501185089935874513065745211776056767190829704268412432537778017646712004200322984378701085641431811234992000367809658784447486859752595782934442001302710480704202239289483264556907511526995449688917066312016409854459932471371033080741829376230256888250419648789540977176567066412104512247140585113716527870171163231656568863385461257547457776614294427808168151359694800322917168210143518354749766665545251427441638827246223725884988742271113635991698781420826345623787418845073304443682875567484478557324856327298797836273487705445606881081229298642937364702565897867890633850192809514468118705767867757884572912142940975360701206343141835477232717370061386264522786349205042555407962913122407529220193560034197485095280665612521339638725159212525362335065553973708294596638670631964584963173333759578421073361354606004827072395596767261089116064565960406917208664704310057950249062315554588626680750562370902061997600929206361027614210415257030431387133923927874978113111726300830929912494388001364971316562996529202389628593335765444331614270546818971530259112708939924788502121198536534639294402859736409881903324740084931941445174566193390730773705733165060726820294227061997131529467960343892531488812375170985396804531198687731488074436076095406117369077667666966045861468164307873390287506844042527756974889623336222343448784376987439872161621634444236020972564227609959545434824868326649427372009011079122809859994201969914585908572193327293392398896452689484188509473406650435828760889426946856650845771069599681182963413478049678102495717218649382173728042178423460124128050749917719513153611396629405146773733514750957645378209972824167025123004060766069184256584499734513460446711988015608006603819211879833195721379202782688950446665156752672378059920399616719555657576043081061852814950947595955692709617222318207394237734329228284641550311409334136533964877441684855474519752994334314944437286550898709312337147943591351124025365540318193003021705127862336406495769806441920238740683420468093188266051189475988404054912962175996791885063926723905259483171173502741754794949811026135056058627490370389565940851510270298321699437828528251715160522341272256757847677620327850159021298238579203651925596071253954822358207572652456384205186342362831692050155297921148240179934643451778169205658669702394263915581501123611792204129533868811864188892783003644305456819450605922997106802205170415516983958215832192095586776194800499271204506863189814945883610197525582612278792478137191727044095817535475389840548729789872627845548274551380724191275791457225494128019581783079098016119319246584581659691160757452936057328048450371417077415634068525991628047301700415232667397449046772183038950481703319991836754399336509157831610167118480777138951927738599459893915510086336939230793289935198587876346893012432309126686081671678055283557899764420649901982213850857618745119746326846393191320486776566909912153639743179031366290614515013296862177285714749064366480753384484983317505903241972370777507037560362573500460699432773880723037851906567869430577521635896826192146300843757332788195500440375062658990341206652628482168428554822258617261385971014589944266860503698224876675629106925912442530180899264859579414567700699279391899654623159163338653951899520166063735522727542570717421487385765759156063329169801684851824856180154057779148223623843535161201357738982095391150569766976501717255789750666741942292593387596348560847773334270164058697326513659778841853904118012170812300382596718463280852615340067733157103147694137571814660917703255938802735197337642768329075320649365714416406961622276383355221943261982686246298885312839322060940203129716704599076325169945580602379661154893725323206226704225321642854176982857627223136342638319517057535629198709635493586409705878586066869169606876253595347243377624721683490069325387520966351794792933576134512036889668539494295285278710741015099367265215414667394847821818798554724042743901667013340281420533414842461369693372796568022586638643051658353379991062842063363722464984977555516642364451668248659786063001655734478224417383236231419979802604845106383923338779754458374321517883326125120024803216383137505455241737089658277928190314439263720384158951895813406260809283145479196875023980211439806228503010691815203026225728877360332001812636909883342984298574418474259160230671442150038917113918264440314279730751780051031431237517394242188365568634222256578698910108574685060261159170766466182632436946066124391052953400679191202605716071605054125484901625708162160692656190775182709010719374483509850583872027973099715983327412661514935382573672826482939879945458099541607303983150169606045135854536876542518429718957705213854974994738623159667990653381533634368042894648406996692916044685934545262271207895286948385444422850527081258077267912040996116421161933245258256116342886795212603927648858736771754225469577980909321238121193722282800700918069957361867155909059373239440713344938411671547091355850610107119910620407078641063983334386145569632648240337853194094461315987551568929728867341957137519593085773147260469873725540674963405822134131394412051132664533286197235028660654204363314539097913279912673955108456026313833622208539470530984741601913637048882944091813372134439447444914909673046196412927906003445310069844459614624973484208420682813706543988392843360175070199516565453600100417091824061598029999662826411525022795545174641076565074916174157224598854788762350692580075817116585440157774363173180648372083188733583917702657646407955913273623890054691974989236870757883544198643988975784308974546299715702293181506828679791207114309747917203564887567519027598168077665151218158116445040676353416525013281883160585695133647615580648155722078826418399982429224228930299511133924238412268473071744405770163668750303879763251559402043460378981237088736731954462317165019105248914257810220584141692732764669597755983340911554438026290159783466462832310526496786127276493136611475034218936972423176322548011542817717826891607137106577221477745922421973980677756337866106882121312033498691088508931062053752558095282914676108413071493474705884082079289664341808022386479412291051603286108465374037371424265650933852037128449248829921551099895522298663876537161774147478697275361560733526986725582842748793179444315419697491852696388528155846067239863337371807768034490645551476585146446599640619300564406087904050823712611711426639350223074989921043876257672437632594216806390228318076224908387766347731079132337358427198761814976143904234984575228344070419504974305366432254541098930502020557732688934430388551501289358086863500837397355144240637069479738406068945164653742412937011608674459751292501993688380111173034110122568839070886863227342376605320559154476166723715708052481360553202857014827879082839470925177993576714089373262020595721321283276906564857702716206565655633089499515982418957249408673327775368791496960048111375704725187864333828994819234401751520540994009271030439984091368452145148326148312633649960664326146006067377260035422115097339016140620315455300018238159643788697513906924684316580741923052399782687823848242024234036196760823878043197703719447192315678950906803578836320977942092178055093661692045035939776737313008490104800628786854614010046049363664242852167296536329446762581413712760895846862677480833155533952428709016700481336926754006311794144905417977462830466636284115958437069142580143826496907106809206508602543000693900656255114862345882412444983783538835686095852965280554264134254763674318013475052742042837090309310605108997019866408790691662360412326570842525826726946929783082914007553395452977214448015460951266865701947438756331956793094205812401254460602733960549388244248523004163706035748371390116165394935252227773126089184968633824027432859328597001212261684327750405784691311047072227755678896528017340478596162295598493943950199850214125406582381879898160423163436522359870182451401885086846644891082850955274182663854572221832984475651035810072311032372952456453196139283976947875634504284582000916482838011220601546823774689193061269524189278165880903971525697468858685990174463971920849755169985585638511921948052364628892121287996181471391856255836140502929554944179098744732359957304111657415713134590882561333216223736485814691113689897688247443161833162652448264602268695983730224761074455637976171945223158787442316254105682488728301587438310903577349950861039027041903718846997337971826622845700119260688478968822154228445198248820286279617570212385508318414150603581715728081980963975393067294215803015574146386151101191602795412722463532941837221939951057232467171816597196555347031393880369111090966051824593212366358186334639426389496532395075465647207120004646132535797727621972940283232353403664201541605871515509231911907566582481872667224635996136831847879132389976328785215763063488565162660457987915464933716439822232598500432978869244568511882802318072936330692442381660602625342320216617678109996359942483817815941146153223030612674434259145784877642694470002032784884117768540750132348567413172094563805108637409348913594752610133240052762844135692056995478578203188268530866026315072639306951916285347962847591566710189107582799442761116475337841240030785966993004516654865173828891741955178847003965538472783233910786886192391465388462444796864542538945840573104673031368041867125890773615941465541079865495532267655957636605374797703047763447679821276478605461668188654976262723884383188201652461537118720246707454269761538789428213868615863955086747849956564672179916176467532676413888390513849021986477616355868371462478143077250804450694860640525101348547023797134734086029311092075028411567848375102745303646375382644236807339354765895598725015257839802840060256542046286139860688164505667971270546417018508536195040064379301299017560114079265287393763127735161911310124046011787455566296081934906236808492564088835768830385202460730696858034091299741325438167585899508128250069270091258629319186066178277145324447616031787151930907943304821914048410249347163348733430100137985502919964421064099041530365563958360526177493600955748640081839277433647428396124158481933171450535354714528378615155202808066415972689873626140539425845329996637639170187213073061249615144339680174390517436774942347751880001077972178765861306699135873945161932448984931808347223202623680206694195162502032349225269178235191502263282243615166834195023372028113663391490487538628235987284573628915922935354636530331801094516551996751684960058279622096896297424843073648725602315193325169990353348029695918413942302865392853600136839101688563150100512532378844897160853836615167321982148465679060625176188785857721335797049010036522737526446111545755238021842738422111642172634410798461816415766894488111398034378347869363769667695099311311710490812402087022735421519243864287534804464031628569709984009384009147681959826668759412935498638636386919271945936383470608253119470849751186580085773897144587387773223948829883816888882632239326191817907311664182961972571594508482297066801523069328296027540543396653343160025221949809520833475761196565121356263558663000889031401266622225111962225635208942308071031215045593357019961187267628216427346866973094141482166421061492397354703366360193887195481105906569772290186793665395660174573280374959152094095590387474591683980167295540693990921687119054621366008250954899179659482727017253092832393417552713433589431351535432376797552298179694046283436351741315032592435475941193430789430807517707267256227028852632144680393192595194515474213979448325831815847946062666116411775187009011801046089600067388708423566037924759566753730626009147097189395180262163137795165485286400501341313363836116580528974166597151778999409519947853842428332931295662448725993082708287772253550351334879434655253905980793639220118704780067835214973535382637087607655212576535942157841097157977359350933379333928272551273771214514721587148097859307538725896693933138946752746791678111126431800239531752179762546164693869732664499310450914583557538088647280228866594741381844533255879581453941816865558562339616383982043143295887340474162215517390086588639250962376674763334266123580146988008868619537870629568398027309690428013600286363007047637883769164357761415932158498530379114666148547919179674767394290674420307420194207928908203683817501353964907361881687713672569827220639146199306460635740777272265673521474186506564974515822817392157521997904918499413893159165148564889933219567198419731343956298764041412612523687765585867649563232920051387928176760619423866245839163111293421549556860404471346566385344178104639930157898782220904183323755458746790868606005048625968791482857052654649897445391541507606491432538105753935329665728150025107197837070084635301687487033526317128973915989725686984168981223910602232745258636683890866874456769903851947658073447037729127155499295525752405545394838794009474815990734652540302396839467779022287953896346621602230893539073268928367006769357434932981200566006441520737381114147067745315976414977874387040694199184475149289582464251592364361612354082790686785654341404857724210854144802827768813895202848741494643142779595910078163196576634634114380587104558117243630334402488498609158801398644559497406479305976418091885800272652743705304742624940974940041142645070718988344647430602142600029094375470685248357270177227306711362712875666965305721272414817142569932782962564160940105171941506479466141413950318490349799258883942151803950926116993560404437794106952375063684113543182255261781074499902226037754894677685821200094043200087836323785198519849025940287315617769343395065794711225503660732788684913295945493934327958107124266480478012535377589248939103954693223908679550720652727085481210112223979503715766859629049787303234388107184302211929981944913296365548487165531796301737207510078801823210489477269184231001814009633898069154909198186087808855390595004981547744232957219462890378510049639199087431377352345577506479452392003713902141387771189411803019857353238993651852246156530665400827630423235272904984588541311127621899140037461426476923756380873825063459432201488593654172455064041197753128536069581822088709590940796978841395468644286852125779196211755514984912093526736673094334857502857945477833986630738476712496442096052677745627108865751711089853337911580746851966238025069356103545293426463281950736350634802537850798461657727117978417214922839834128044594383459558332246417282396921481902300720794830564796031621737692461777206106416811807098328995368724602143341645207236396560474782518039131373869438710241678569130325046778267642590766792408074288938974137246987176293391786388664604301473837343919304542922528570716479545658156704411398489799682246743622369038228861647882668953176599595820368696364335817791117438315729017689349074323168623064347246019547829558282198202207654165368889347850260378535180975781907830916856756470498770306077406891431010772016822333939666421427079850323753880793658303229695995221730958683570395644582840447158862075066899307609756973852337795217350468545463337379170755143827674283567519300784521828081750229342704406731464733448783867651824797635583077411397956869123882256187380454700783105647630418109836380722767272731436767380842017476906215222756457107711935824556232363403859942041173530916813081614650154638893657269938033533085683912292390562149860871216828804443020729338370324117082364239885595348216280748015180823326655084699362552458410941069992120997313326961107677040266012706095445849122312850948666853666287072067422554324910514883455978022702414853590596420407245138943825251286205891558676126437212879379146397137203016278088419657634749115517408952111301639025741748358163758657103196252299775420935917082945363112051726746796651122562846657661163280878077712982385755344651902703009697931670855366854422283683053632507144339948351653417884005325802450552858159032188537925247384219678911996583614405143125403536247691714369800958429769971809437261394101751875860205709612474755988444702519144735474059607880485247231849939169432608353267714636965520440387781304802405611213657880550149275855816498687791857726703289707133225930080150625991797339888353445609032902307063913736809062106821142850883337490999089776364401282908037082908205088895936574814059385214968188612416672835697497297726539555474904817763867793313920790942151832899278005872343443267289097693192157582782254817131202077700795286677744411518472630136047398571302426097174645799824702232616326939497705758996058911616023678946757377980193639016566664234313734435030950372738699544502244312298967150838957043723172636785119006865312126612926286376314188892237049702056862152685151867614453502836548784565954157372510156903106148792196369215965191043134118895097045111180379892156045729319729897173519118845816220527134488306406684376198053488758146067639217523641766747924913047969180154641497271919694845627117963773659859117525810062397247789571075933427236695405038634191480772389199654302888728246165542453767912029976615472850394708836205555534653000277390556495482180267380754193325885784434867227237704905303820836822694200534419682046890765362361360081004443337154262261461274253133263771644173811898017996072094314589248329549290124649670532438128109031974520506720879220670984693374497036087119706111182022656319190078637149887958718932372884030146858980532826133242055399776329322290037409868503860074988746099751244828930883447617077511833803551909790315519714962216794959259481490546987603106093890581273070029328654133829434386358760695179855353217794617957488239958864996078607587662778189850021021899591024173997802456817439788276316713749876513125130975301624289605969877184525422660486327390659559456740833976246111362254499449999310381583523261440943259429743390732711232932529016042618986425394312290033965596302697025348179605754021281245228373012803746694381874359794113713399960724451536466538311422513844595465806564328687672233618321774713700317000369159542143367700177040845067669384128304712427134988559964607099758748904915133768953291551567272030045453077438488305958763614479648851527986496184062061120114830999049550701364253370943184296882210731472409288401287262788370245550490378316917720809362579771583731033974869245287318797364112271582971543597352105731211710276177264983943625750532085097899160975579973031055808206226277246003112262657076565940127348503882934447385040800568443121815293189402697568628449905688894094550351802050600341730030915224380241061500207071803171692880904767135371065170227141857586992705071818587152647661509338729468548122415281402843228227750625453058842975732922340864832839915922463649574785188845570339319330981661420549729105554050265505727738420255292301435735433988008648935362244583571381664952118313020449919298006952762929820328077392070880853903198470012164935787893702311559351571993898644490265060597703293066699248142490482391942830693552608168010421514579372381326103279840312584340936647544671935861391036967734333263847068606394695929812958094992806546470457840607412528877349031822117507049228779063752031195063194018645249423972515311351702882914733714709571390049931944956055801574800694285070405773347367306088720798252208496150617874973730774203826777172072302431684013201732347513648482913686136487810440176245507010403457872880325813116532767463805151892228049055277740127476514767458735835748515318896488098722664363847826362337405512306171658778771620780682596263498967166543057789938032142928490807720760420937360357348210127490321282745270854916713925803807598483316273890192348000734906885157059641277691541247615898223900031346773016117313558357409533499476943611630765672094599700077582512226363618628031043209909335398696113776088934274167109270866698983911653227173303511052431632324291501934263062789391509450265531153729766583592890950147957243689065277847902816783379155380009020559691615975670780693592201948797747616289055637915409321595296630436502812082545990272131019055553585609995463006486332840792916034879202715304406338497300663149468025820660038408542935151481593935432581667161147556867804222419800217664732872405488199265462923649149713757991179217883416897929353273769041939329317705678411195648205115986779373434821434717834378891889908030796335018481137489961494898825055545213872928191725071865084765140843995799587107113701161959515992071972550676378662480193852571155590892478667451712209646322419212653450942231326292588168275795902609990188757888048362583557361022071341371183086415047232422727160809309474961805395904639228949034758353120855121742525541275922636947240901326128335909827280975246468001559761003943779414790246928535444863399086206951576309624243956701963510475651795061169994718539501894154260626952767847235349447218775532385700986311784731497262498563641201577836265484774996614157778930703652100178568391167471076943240660997430871905211766685806044972563532731785432587555245336700443687901514500951604919017436671253135221862514364037618937886578416738286107274422330105967890327821968822659562081435407392041236716207015331173023746819525037391626340235248712453235230470809391232727898111897780732160988723080628462265460349266160027319655324821055869579167419887913306566150902481183857394515865045845686430777381442729839963979543949104467489208399997429134502975357656051423279065206977699948102587974943768997304649227556536124014636135001759707004745743997672455778234676804566503669734675659143113150707080252713069444164990413814302006146618184026023048801871685252556959165649985602381594157933007566500387990293617517684850225665603981708585967427298750352953050535668804826280822951263692242189993260129015892676417501481523084014704710355489844472908034399595702381117706481717432385807647179881147349245745991295144900750652367311565050265393748003119802016513299773061081347311890806601389211075978036238480080123699748137716209499556891298027391959976671066611220129856670475388038216228478794696288272253175959926697795956686230498595758168948797769383875585997622153909864734936700921604357089637832093835300125685732229890781837251809823263789985852156113711204836576353615836106479100601195157429021898945948852409351048905199329013122669173035371998577375098576061220342350900829658066810505009587442096528752134789662538316023562005843653762193781457380331984246587719866852695396331168706005463328745468040370373088809661148995246738934624693479980640984994029608547132381294096334406392493018816475247805476085875778482781288448658651761879523134526292105200091549461257469840277718219901034375347390818684362279860400924210994804906096789988455051545797630114945461350117925980442590274750407768534130856775333661560019653756418746239299657565197545204105242014907035786830000333875552118625931855746640541422568121493703151272516861825772305640389375780138165219074396009436441624894341425301072278894484312861462989858914970441270706758381454708506091727289882443200044424717506821835847443558071662862596087866798491319514583757449817527881577736767372405641397321194842689471493384780563781852604864855946108674279619047662162621079410789595789021617766969725367209566915184957202316176734769779138021831676209386544494198147414636141149157722988716047209848651479803251459007198582862378754154244766521118362642650637003696914607852415955900318687827085147329524901212315724447532297461493134457168729175123899580552542555198839640023814471316163632081118671015374373132050348970556372390240283725680044971374005627241660491860487766945209997602011041605367709455193966113600779182364548368202722414795798267396410685888247746868217594968659306468836297709083414007461058777163535901233922480341738195900994618135490102223488983238849227082835197032170065463799835540146953812321725532684230771997273419260169981294686816153419626525621862156966060689671634509002438532859031388293800207678191351522500362302332679974073504037690014556972344168498599804095422900069860048598484796518803844024061544856910901941083571969990853389083666724245091365450577512398185268851134682039983358549059176313738909220926422344909327985975431093309831298673926443583006758142827213924089530975847616604817804830564136264178518761042952778868463658262333783771180689384797051760656219456469043997675865054453249929352828796211731266564102792809363990493669566678242683949855855895181467346763025846531705013363040318754479379402155557877248645994397910836694901042668687061639566459288352909016491081445786986505394429494325136530158468141452768829719623096773860201778913132655403959125244564693737107956380992739432493218540848591979310147241440472292595470455090390539804705582703542599921342684756429916805772893515049147729084687167789967314917059267319350916468913486184157150341740737402962019148062031397452575877881139170743342416683487739472175123421193096408366980521561916123331145451660121853470336081731936182083863947139972862532247780133922931046283865804197816593773884453052545098343283375456030003367036101941062071326128320052094679159067591164397722926169775444372493326251729242172794856114716137180954182627313605030573907014878057309591151747674036415245618215350752752152400193933408936973471313346533197813032006173540572783795557005593112054205430807919959131698710202959411743368363829386778080845820358889955947126552606705618548770351379151340857634078146478572114402608483178479661732436201874049074152048467620398812271717079696935524662707314412134980928252165664042616568766501721580851207459006502062732272341036876967202525871664271078032052327951586010119128692433524231404119390688904777854466205960208645664984582766579251983261162298692514227968207461524585252385011867410810921456467124013093924346140187098927099027068070295722670434727705842429031000670933413521986607395869325685430237301637874935058780984304370353474506079210354462647108281876933190869891103482963455519201502538243748068705637224698067514311019633323922435924708109265910604562382043876978519241853331632166287582848239866874786768878742619601862610377876861452505873653870309076067883101983469438876538433613082801424087637108197923648343629930125912750367539192250108324100399214391881343819070458696925270993742512835618509100577941560918145051800706314736621479652132224350612028041853411319332784538193106010400601178313463434757750419024618066288082947608387122125067595885796196596323753111248511978082092124995965055377986512474962211717898546119037214514359622703969271693795997626684060373030622533405476589034439761863659149047846906612613456596689643790419039908832527119722947559767185031512461021957881337908220616476465551851803672584932908784296744139144615890194701518976414000232032187251497321505962187514178495581593312839251381596924736571991890537873468293023743828758275367285658283232533181001354128301709975028158296844068527585898368259048518137991621453502432537222193844981745008440407635683194600494793677050222854668626142296094952547964167947663833780792513942519349551835067754620952314764882839207978524181731809646907655250904241608262590064410731393311590338116681550847235932542694557685833372590712676963334942955683199775553360509447505395983429759231545175570235562414870428963422051120695916612333489805822223149859350324061047732811414816731366014612756869215076314809579461229635174677848396807514817017001195206465631786590050345158368020605022122158015807343016303008004973122508890125098787088380790650330510949240101156613774160420381541012966315531021401737441680219511100999501727575788567219983547159276829417027167398843864781968744969608205446848223177476714975209781109978392411486134990170993152319437985263317257381600226449309494601053133657585835462559960625472871047919781881515252928547357228091091809561947734955280171451148779441461485877363799442385195591558774306751637392237140760370936872291905205768434462080021732166662907393589054756374151045847909373814464812315713454719357664937217263043192905953687226093117073356212723282231416696364347961419331972579962985615945076673055927284204992271886646050231054767682022294240741167095159450106414687574770558478226088860694716250952642483989882756958240682439756681740395540385599843540511927309110450308412720225338772473290264292035035060222487976718821925769558468703878994977517541288348453864389720061798170927109427387903503471282236855641329970935811934561574190806664421281434468332893530560040632863447283130949823885324588308162391943419314776140153021295171408043704999880146142886522052794041684184736973486695082406878203391676924494750793928908695923436384048764949578928096620951643523814800811994332724242630674116651375453437797840091847855220268859007362639242818885031040501346193330620292190074946597107156261631905642781916699181506184881772417036637037399557025877721087003702687443136912159669175226861469972077414703527487233195982990994574287728819205300909928963097536853788853613225185065969334832340984910703659460598390501709683171575717694978201531495003219467524871990896842701919613407967931130064218907014762872516566147903533924586841397882241291344724288200496350038946837795877075482048936576429299419240824448102532326602925598369248838633811952807676304282215084749298895347798670867233063791252016011776498266500256037468470047647891884998098820005924722140735317711316107319310278858916576993321373449723319270718757265293958573878232673276318523069741360777041461741539560557015172695318267071213139196422730651243896174667448364969860919864730792154404084956013100082954667227196643518377099530903499025651343829588581156574835952304001883791808163399271605863023962048268621294863797069709981744671387320134838958132975797649063510459104279988785184453337489731824221900259340615325236904088296300659859042622687648216567711273036032005576923462580779830556888254674720046530217635827869313740488539391794699065493737311282752677776262231284104275925291235326580595582244328416792889884180907313416838277293694128623063108524524453760881487631645068843900279949666167024411583256461256683182638297133430477239827728579175539895239287313954793621446661742050339751999467388171917630311889223892353051367475645692251721778280519722456898883727151647013645945775250076805963776027885261320168116159309918616488473411034760170541710494973763364542062250431329004599922440815083486497016689483263996044444455897813641897391976313957294041933969050098883647099066426265184874875697928522492456000718176281516420422785777788385537722810024326925182843024849348397869733205573232293567569666153005411847322947786556415492828844457589871394683450742944030280863418063857075857637002495234495456893986922482309185637619311872834259064503983576420642944055033212889532383349209187051757255723386133418105428919006206671839805835166188213723156557518497068317413721985247359462018308758397130252464619373645962881266765991085591608200482313639147521064796661609864634821071038016227284086649568071246682245578259758131045110005837844927844417665577952148290223766554518781749592462350227421086511195781722773769570234188705634996304100872798742547931170695227611301378041723345496840809694127905069606000002350321227094830473748738648962151732148417606130818460512911775567982019349876556728809287635773292705033823303995575065901334617011202036722362144586268130997622149772864486875456662607665302590494147092908056021748095655876480867665186511918671378466032538867760093176146991807381591353458890231550201054179812273680811946020938054748317276089930480977490135010688877098879972569533266839986896233274692562264074811337426503984061554302816173997945079329691658939073969783237492839315292703933719321787137057530803083217439807880948390063044241861099727991762119493269253822281776608736308369268945728035485838815016672488452705876780457610323340452797629547462505257479822845526956065263048245183342804580666930968067249963055125715274475318499471522791203749243779420909450999517352879704866821338795647828474202448415045945290190157304940246191643012838997010148773511430590596063674667014489897866248402603598816243117702115999366021650487022937903877611631883381049026120501862607160173854811833163272309645809850405550561330694932677779866561366381578034565511801842162027941102498943203359831124126105584119151412358775850918142452638861338010638959403472655623888013296956773637373548616902779698735227980130062074176109963463563865708946432713026274202303972439554649039938807227588762303197078552292848974057375375781163914964666418212837963953280310717227238626305335043914943528409062860423277535680249190328939144656172083550508653541507841450689016678121439311545520260318158558316316340839447269091373882961291170231791506251921361217974825599323861823469968046466226243585035157490963462521449918504673923851307555723622802728766239414126310283203133897364584585930688129103496340087502741532617774810251252757390369362306033287760040072207764357769317974557942703737332696072314471393521742682197204205876545475223664889000223670807082413152246846497272421397691452144418539316755647563907150282969234976747054066536253633889539971533993746441724858575059737629384753969547562252372072224663049031749834122794345024958997239430558599661951480291041933344211972764641451072235651937633743339845119631086898658194642552143492785432715986873192132209401322856405551502436360654798299281872929731296582515288335937712195502352027387344839681426551089249504501400482205798883360540364614086136512116569749903005005568240567594766855936377555258504973622838160684185027623370827580349314693319735645839784666581186686791420321527502177576363833541590681284642286483462983416302220739825186449205650515922744281665831561001864427109732559790538982585435892584539115440313501485239357405697184614014327644211217180432456318410393710635050424586111533141872819604749640293032349718997876801357401338903543305790104047583941986261778171739880168382259489893854159644196636571752263694565585338803642718392685622298593123205603183554016890679692263123942582523758788723128464072942692547567774579544416327560175922887323259773058544008253572091016047372387153476470914073653810653719796106415363052021590890697634425667219672150465877932978098868532155443438597587210580201838994851134815202215759683946097627282251533794925192718344775610149593184497693295049523274427200544733899734331837232684354001016837595825592219437008387089587293112127634624732960921378493794882097519236201257845326790244458719912064235758592643129883675820321112046782310758222202252229302345997785209423210043075509415436736987724745364151465925086315774331253393525445967733276629832257580097174198360700686437917027608048679433804466435230822575652308689675273028528532492402626809083610896795698214985455310806404698807584197892197482815726906244915842056987009473364571354403911868038910213727982537361892935379345254005759309295149173914644214219573499654948457203191223531011968293942435605143625657047988762864300829931764670151793616789315573451493757927209745297406510985431482795965374628947175424099182932029678153775744387082655947242312845256836708027703155972972367890296902381597105776206557909796020056711127676713813213848517630958521903794622167212564739544076853769114115022127748208943598798145145547040794980000279541259744066445567353524793186092932324987781011042907156873718860956680174106575835405679460646883569995600639276661335606400863447713976573305795223141241676136432043305551923159822697557642318100918707828312981148919777834225549845428663462422893142407913885133465494699388279754486886070642690822744642983151229948018101655473640182043959648148421870267969436958191776625480248137744801772304505498346244778044020148744747854215838037098768989322402962726442693426197839717460457868668606923736521688494098983978718520533517076001349415566494670446877805093921639596473912244820171269708942002959666037223422585422558315061905370487042739909734704702463514129802677415371778181029335279659202787363163326050105881158623213546091471024595381232446453654101885209308708433576085426461259922187260933879809245177458237681989776103034545441448478650226786286845959935789121680969360569567155449709766111237787303387609423244927693949697577528289750566298654495545770144576168075965168363793152155534657372107541547479882045926845858847877024852701548739403335800322780243505854812336561598941091675784103291525024541042004215480659999081860926443425085957638225882841009728320564097243295809485518865404608648227351030124426863455179433054585884991775367462887097053227714033143774514589873034929701208854702085207805437550714233348817058149927156862704816507989868496345489896750591131098687606824338268886515395279453703395444402132921649805973854222626388761309403789389986696067514214988159521060916860638012986519351701726863381718818669914225415113418277132298110555661624558246107784837481563943022744185672943399425600251200640167566647898123606734643910689727602216867177716391813408352308697913566973246474191497950795831818604763660627179682606067781878512325970782280062847759425177359507526739315020933930666752145432123212947462042225858131579113225803576382392710983774554835658100854653217231013645163290223822603854032649728999012563140612359967475273366731933465520654702577039148932419048964856839573275444682295772118592106374184989845249109851326139377336273343214086362830235846319508864803920540430227564023523269113875443918718087064456510657918044738266108942551086242891131927209827097470778071425125960117556676435732091758432396105562653634679795713653240249953238947142752481952863458218868447763288819440215367459675113358353025701747013958009808452883859342241769798289306827706155849114252171078572361945206986399779513520202570307993524573287541563799607124606866822951357692792957386077630707783038906725061364513032862215933885945644337429187878095165293076568818934374715732416886390437070359912041962592750896356234018573623113476864078821395548160772495943863963164001178461306991579713486126493906072818680610139240370398895309012073156182126397321087024277923618091063019099805768593954117821331811795963500868136997450286489225564407683026988175112692072845462613627920943522658773578233701684065263454114818758286347625570562995826022381535318449320864637246062158736100904919225129742275064976161539199167850291191691698693331639847793686979394817844084954981329248672038567439781502461522541177242325830344862293432115082755407632976572658081371647171899088708753346762364484023847679242076362185091269957217675443524400261328950903137810703092856190324254011128175571975348757717330500701944750250116660727577677293769448296504354488699120935645619998776630655758703531525103498853759576277995730348681215271011379449475970906801688871015509163404421800456053516773865720236072546314870039499604957637957078225211726520505525116583050177746967134477357675770688798542565120346496470290635610832471704639368220681325982035156790971346463551236519563625290008423892089798511706028651374008515047882959079860797436179820063164107235096194891940952909845374554981523918299697347972570870852557203968228603836724704350811894820396337654319071865005909941657350948306824632803246293059394519308183504884903157487606274376481715785388998855521159408812800431536063309305449327526760425806505348364823228152682765651021060741211290033427950400363355487084369108619243935286203129070046406820628496335826678924917233391728877526266062380871465398374553245450391421308728857514380360238556666954308460425270443686980386162823319753242604167139499956275563669544410738655804915645192219058198568140132885025059166037962374035501373637528468573699255373310347737640587731739985105939728790072262405878810438875879202820718571183234344727997767719192553254133254773802681379570633499456170763787228811368828749371496342178278112431156787724504888861041280050887890107697182810529889075957915973666987638862895267237651604824267640458320901848330320028909215361399299422869158063840235080097979549023151448770379137932875652139794975797791890614790619032828492459068117556699700169377063765768752670999906108490122436385539420776887016615375876541449719857840154336922986479114779065345767526932311673855279837200966904168513823958022530864447140816865906651720977121546395912775461808793968767694892618855029953182347021359196295356585001608010500417406228863209014970055980138815482236155367865565543434162569787331283011919480398964677079153282534700075471907923615769727559085173687863177189682657272413067059214825356912451362415062176542805746674756286897658607467863409294021516175702292630706123456127916461380478965351858766287335170869997984687213174901726547756627094226269947306920468648768458812577341177916368095735488437132485577699671495468628845825578080141576621964099400392830272365230495508014479368027246256157677121122788962131849970247022416001196294752271527144768552434519903719184165883283719728895822595145612515412096731298124402569042242245943689077481305930040266496133235268108579397784308308681914678884785634960215817540400189010996111518673768127105124311478635661199858848151021959275379396409685240194374421421314519418855163227416806631739021921069350950424104118951900190044927508261751376390268792343685630253513193651482890681031107153253458731695830080617996591879115810650068029083207079776910684661204906902368917711482716701492418410061595411185184976021456616125852254050996195679489020098088469202899424542558732474676561331337800463510748268327523563059917429269253439328010020229338040399393497866338541010434950207601210838136836498317034218095506449664949539610808618960526438873073698478845891137147588992433908877465490483475725752396937589318817417694903186802017080820685646814081237051056448112711709702742343272504887360065250234873529745385417606494908746125357454315120471115257574810020815140821576820594686136380528482106256398518265670876274591271651359912009809808631061476478445898067283086094686707964277570651263135800722010189948381302956472111413756444988482691460753504969214876470411653760256826186460945194953474646333322907890331157204354924715541102856089400515292890403917939418748284963327931014442535564201293715042639604308223947898815132348540691080584946737316058083838273436351438603360122302938749975988562900679820914966562503586332827539530225590631681643056783823645931657943339454175733497379922687007877032649607767785551722116246927351766450143434075597095578279963759726244875979029772379673294030164881420323658068303778654670097070005209969151959920486082946444060079167836038901787438339045720540102039472730595463966831719152097184774667608244359672523419042693770950707508199737792643849791610475426716128241034577808506884740628450087005605218357011881932756913221647730734950607464355620471644890995034283075421810291272884447500701784457003157061433672223094524245516013118526912790963076406363898431072172902139501811645092644575200559854720506694507520192342278791462350860674375902274259764529011243055125496456303149032386175644771822739947801217483595335486455607793890679763505732991861208355516405175129390140526369501609436742391295045436063550106311194045331946031177961476168841389670375859796887685550552501249378406621187643383707151270281858660394469827600642513151728346855125469431225316682567656285925913395088634364739908734414368245212224008262103868158207071217972561328114302114346569056967765681940507808196845423447770243455135514795394681356602605778076499662071370581265674516315504777282748789956969578736691711440262044962940342047919470428354977717249172185770734654731348948908622996860781315544751182599313843850618137268372416080169678672885098202793527595754462294414108043350662850055190745098750968129127225604117385442806272767123385748464031772837924691390572469726702808112594631805122952662330639469632926293104399070346747456083516530159061176752014386863567801867697346607700763532616439338226871958848719761309536862506097798381861008546743041561355399097958975163918090261137294967539635172828394833893846801448922892357570106519946872878635367466955828438921844818345191237405941903630623315212735480871270167234564745931966609510265653606402096719352330695936368780229591460845635473662138455781096123034673024374286696518409037534251268664640905905884734009608207980329843694343919711398757720768176418642635954691436646536072403140017560592507832924305602524668666130866221171220693673011335165636195047672036610812708136767053081119051415746641553189596929663068916570429330376439231756115082071183984908655164586099748656676295985938341120859047397366534285658152745685909724658866218579449921795820181797574709646747742293467668022949037567400290355195694958550938895431295702726537405543722329419618513993891061252065854034457592091157863599649661510842293550732196672399117481389000178389154197189406744011486412596015139331051269287420118905634584656245724323988566726975018000842290395141841426935303234401027201707796097589993164805305580364708711039682591598545420843663099504580149987280900887493501541716354372087668219060325851870820422652614090671175960176563878075560433565010672965086581601961006240339522708711148063151800528140947462139823429618765839827745304516829651961060920295185457257174534545172652335764863235746752687610684778835183595763633934026450514228740327415705866998931552404360422204889503810687641215749051910736211832926660240504537404199610967607128209002787020040491911105698241523426383264251967030560766188009651053240634062337272799091582165102060483382918400578067263763188576371155892655845319311135019501500930635831369865441672131281935050578235522111660950922749038729232086485789932632727917799402909100988167293330314493159860010197982311696877524704363678653982309886437012552239607395297593025083042906046783451310897883681511254768035657382626551624056412346240923921327698821952442380780774199834218062248123279070607584015721960102708270980947855201824072043972171584147747506115704060045764645434276462504520279457324156894205409089909849507542619876471813960871188862633462849630912026603314274828517292050612613132204420218873594510358671339977129518775242391130470268391414194738853933472729195525014644338250631089975929054491566855305947940203389160227608947613609692295088790791828310132564490602995714397131906505175408589458339045168904278820286891276740295297967510451949884165045768941982218077460262180486385765783120981917992080158810143710150542938966707900237076049401516763916708098222952964186431028235154866238849252772559539475309021079092734587291643643428551041504986878158969813885451003774509439265964543858020329589747205254872237724707584671847466081542767196634422830116596395719222908049399981656935845336834860866766564939665652401927670741588299475785101044431876583585747647139461007874502742151321326339658862114685920594433451610934572363947588834890957347070532938589201550844122359550333113652453482867015279409447727623138827773939801340108396015522057812814626163730426964094837805693771973106881793491886493599732097833100428632007233599267609193176765822079741208655494714036015888205066219547286630416065991496840009836268612877421475337344141706767241579126258979742432974509304685877304875281041271022864066489266825791668997593067235411030417201845278471053108450752891901884116336164241278021680594428911308848175486885434597603318222192391096319794682563910647790635385072079567597098551716884702205803178521411011820868322197501129216012025495316081508382312283666677218669306134735910945792828967277795823139790348150105537314930093313107751446958282529625033001884653175384418053520370712596898534747726233955031134140150398301581394020048869598490259848545852590399051971772056296065356495736377207107158580398659844293109422759927875738011551321063184414076469403549272625363354222190612464137532577354940797050510037950445777569334755123958185810142674945506586685334215762605173016534838072709485415761775547108152956437021423515047618886981083750807759309614744894250390566212146788361166955425739919151596328407044144085357228322799857944965797592337769093934286981136292628758418988503654174952523619505944684688961843577823982275904595655569583183496243193158207183835927481191610162212084028111345375045547941979299296164352202788770440674919848729242110148281426206243769432248803115670416452585638595627860921522738253829071371842180897052688157762810111795968681277130290404305478650559639304122315235483562069283110221165457535366043464486078532667637434316109213757535711913926203717953203337798691414198184405200509189669761774999000958939157507424621313506581994230781169062455195538557678999633048833204757293035317118551316057411935423800283944654313059386981840170200290860187164146447917457776121761413618524659956748851154370234685993482776594257264225920343047239807858924009774746242556751771721369238746477330033941114467438452565709171678685403322674358883702131259823913954876809594228361329206113536725985258096222582158326313650920138155238109737067586053179001499969483034250829530907560319176905291349460820128026134958002547421448457622216577646420987528044534320250469527930836955209555046147940652713508643205499230877012719037579407150092872829407091359173899587313702831014544617738765753601547991999869675150205203659694738565355880053301631539264972666674614270380200524936069768539597818028972661866830157197391804374090797522645927399294739344856027119205024404425250882706127664563342224405524427592774466090480132550920138852648700197765373093273642768531654949008994439747184141314839157793552174007048106035606512268383981824847518492266794937807250495664982105201193879634456294689004141135922880571564713167437535781985413467776105359323497895981947139189232367089859639478640518570952103421608733042093734557783276129473551223477243894693552975044380222246477871104227380631778935324025553983643688566821425269838019630913750071324906205408641558571013354062810606362950566044695735090630294186193585977723580186051968928317836030653593103470872961090757006034224243831730062142395293498196001586225381153248974049730270532304628501563860702803792790386732283226514825916615283593513885476438344322567685933383492952851381993970128904456498038716742880509202736115417459523114709033762440729332285624951580052222193575878344404859193593392647109965610272248641565344781325004646796682233799926835416608857849897790903645824773794981679145808986342009659263140685322491619980806306944836694315446334126211455738522348633783400514006395005507647619969263186349345648119305431762799358174177015112631706047926026581701080256935832642501895012960127234614078816549148959765635092774547177262370120995480805140181183498064480295977570230194951611648241759974488545721360166992251811437123975320124202635804758797184382043122963434351351040513729272229378493811078021404185485088611612676708226134054490038743696276214526804176733664631184598539363595106979319830819924398484392644785487794066887766284976638004717390607715767728697418882584105342041413682691559520721557045260616173064865520068005392081354297618343822737335433550724755412153197725647526845202062919814337950355760910038649403816701996264824298411734146760216552412889642160261900508607593794097598406077191202129282254012685580453317114677754086035731244131111393976456622413864664428037969672608316041059481796078252744330160467041001953978966793902704633301805112822070869359937097882389319908695836893097309324019729682761123224235622996419985146098834464467803753796514896043607587210913721016893272010610063122687120107512336169940426319283318178176015865751759668033478602275027011110196692063138974804985538478081664090270203342450073604459540115751502895191415390006056151236176524080568299144613931819950823790945229122937196874630235512137007928492029231101904462312393870792716693287330968959210608989231907136124479085864077092045312774956911669126181103696915970554773520663407587694975295475189635625841381784080715823194330137003994927805782576822446299414847892252826942792127806506405245426998181509583879747122668085570203128734676283829520015730772586859789934636465632112049378302582208367032127159202277781678167405508206971406955869808560278381758437810649007400551231008346685927873270704721994910146257999033435478128645151698821043165903054883967068550467165520300078979659827147615654117181223369603978794047522123114941586935598930276417465311733783083239542054085503440225660620648371749616847954081024619881813748969258390815852119440884571116615950622445577820303786228660473906616812553102833033218740949255473684225033848028061236664335142648426977980566552715103812972515897297402477559356034854157824270579607722000693241439729789972842111645050469096260191076798224545944466233355402331552746818283337193891807334772824140658736648299457001886884039188643197583686367024896531727057434548553760350817966006774537830496623789148752974199646999343684808943341061929896969395215520412376859384213189102399104485826413823919568204059711170029358604342328426668375852896889637554005915472548213871960129873856015429427077020283052163826576749060312569525312888333346831192100840856466906561908743019103238562529617446005287384528604477553241165048934806894431809732361219103257323935775640563466624700465058664944935881555280910378585362181886709746007283832445329851944754572654499881183985349423788129523610835196631304877760563001908810464866100822300932225230121630042055287644826304412667858384152422669247494091875296741634034263187178436228745568457566339705207858185477708156669664682421075261827754745012351658716566098132455509269293617618757352234015714419853241600012357666134757485049099749010160060760118161818813050292162220008714246671005230787008055860309319651584603797491000669652534549806900288032042944663450623493878112305931815500854227481739211680919239124205694610656202639315671851938290316743042849968015475148077835245861077887816020159756002664639817956336675074211807207640427938712035605999126502610817405672519930264566638599187687787401541532978876485669860135738958055379284423981553676368998533640036261379016009700586556699933752021606111854829845830020005659475969171718089003447277145027303288949674291760161314916697842051360811863182958302472289506224054719776372579118477130899594328750993867023064264755904075164181403527870095361561197891576068620211369091478383128886340117543730559462893669682840283817827226300213705289329535727279136871659975695850344211545037066140375137701178190201625774554198193365178309156612497134082915759180428836020171704502555131290596456293362744200082593266832722557201520133115662598555097847451805391389894011118730891874690467412548672810116811607422799122717338200412586328484850845466781645539271511823117887145252534466350014087068091948870578798392017642706819632763609464465103138045814289687878322369978130870424166844660743068070241010803873571650849980270988550874545427689545587510056063197768355283972069239166223394260343470748880343106924383894580137998715646920628968315813897516314487213485876489482228396383567497079399063602947404619646620118148303532177648031469026917432390018301670249187103883584699785192426371540083006098754132943741930363095912167785363921858318495590734801666559341142979228958986471855130727039737137792909769120264684086642380800780110394332494228522141116338257144506151452974121236593759695884630596348200497559393155131700608744988675046589183599101926743171779692413499959380085328732479285100204294499595045765488317196204364880228340215169693959409588424399380753482084189601820175738871102031055548504435313129524891017330410336030384058711950518893205221484306246298477162984557186582182274531954655441654228539761610389677501826377612410057968281139760678117509019790377935754803614844607507014483729817612282092765902685242975190697883969145021277270223513117201253050873279149687159875984622633441114775305152493397283043796364705737309413366675267920498126175931529867760671604893489331147486068630397721193414538780402773541737863715385159535319885110464297978029499468828135736797009224198815950936102463803665767893374317681278798273310204239129914624706070879611199078325720356735842624150871571017747887378266604238973748126924494257507744068566367556626419917044269523880386801661321519416128400342870058413986553864026292027600759740205498694024222599116683578792676146217768012921907407033934919526649342153683711639435195031810450666422848366308766427916899644396970438307818177554451894079687508467635419733847002491518256793410744897540627775663763052481439193874521572729116679159524676852131133412823359610868628626338402630161947770288507372852971168757965812014037498314875508183272541625056196354966890104850391567573888386797841727010609034746761437459829018315293952207608963896946884688668630694236960235867560792825605909311819318864961885930605778231233217695463645124177641544060623187015798576703037681817928889669926741033551531150482198313766639295648673902547119180517264156040654562099080055986007824685380996476981630489734255490407156217068003792344252871509467882979908916742057126485102273776561998188888156768399022627531651999469997367905924707889893444084275518314253146985420305561600243300120668844720774049959557968236868145809148713649273011694006842782219512860509901052091952839485754108550619947077484846405909900844005840955144160731345594832964726544121654201353073915687547571986838870633049490223301374424244742419771804607742935282707560747805741443850778657464762372959611167152237794682380896731918322262588721709431989431686918423694942617497064649768699263635337225630789784298102546930066825402091318114207655725020710876413360076105931281736841679074230722678461957909792439333819374994253644912733389983197839606093009137887487492179431484151589071438167222573223041765148867909365712781315889333166423031907739452542102776765801144412630005950079615898197783039470558663119468442230656329084698950749388705807613286167218875517154705470729974021148119167027958242149958487079326941349143998483774845357705323797695267455787451514503351475528949816828790996392129403016391708393693396896287787395403768526699796938960737739899791214597910421842762604477960310254164812807869236775664690293614401490472372222145054890382336402454628227174414864776461348144619671580958756024843144541749042615277403912329436928380762412613105718289257684629480197481117906720060612131250186297531427094941556932885675272622475788998519778794941622831797210467498581751508550003737977220301887662920480316014620493636394689080943234086561070016512735782589956094381402309213759353588030450706004490989375466331925942363072001759343688525410504569689028876506619519234785664146297475147822775333932562752310885972092261049741787636159010589163017848942343238481418881687059583070360136215626398090088371893162807021454707238120741309086604095346228999696479057416541214933327109355192655888317315871293724960822260844704590556735219276411115426851633140173401041220475824419855826385302691606194112304509570877418942694735033349875893083163278035578721536211104595541309136327073358763136300274135171903832032264503138725979300910331068390105231118134550487401435475465364404234843016356988439735654531237854435121328784336868098298786064912588397371414247663033778108340099969388064137198479143222880001807222016034906635129065368860275114543987154716957984674274541221680953064045321094478818471127948395680224199849753828338988224208522126500935096235373493507482539403960528679166792044435862895054060933563081936224300916348462659182934025112913678369251349198954531592906815425115365484689427252437668032611480704974664160596536227409330982043886429666745443500821748376194953389232673256325595939697054842137993042319463498772303668461332612750551195259462840176969631126332363903014325456412483356652343999620741137801475385046816936116102225679193486562869862720695249830274622437482689347493695457218230897288572413919371556698940964795013741653085999261846361890376356679243868128410495694267250368735040607631397965706882748256564160057643163060208009438546500127473120687404152194835360759832229796232003478833053100739912428914611775507804069280906652770288562220001995710587467515088436148579775548803145410830063686250414473741007779965945859680411423190396713410632424492176767600663798304429077990177584912465668644226872479276102985718441568324058812885697487421775425352000812571706861521200762373165738668487233612366531790654206461572381784127355857533501322904535133075967691371336793183797438207314350741167326110856710960497282778277273496582844845179482361695120707057714934753538438997670888080630543270997910233204865439551753577099896079848135054519498970275828799288154839672864196042634603720328237024160195715842817479605060008064508239373930207360532149220925971256201899332000486416709431140271334777247429051638474881667295903633389052774752898098795929955964231989001261050934808439295032531605288093969009619677298019053703352949170440280158983941746364910427032026820906097613355019488411426229157747898792568277221812303030076210055974114506691815373951811671704966109676752715266464654377260012294544904952375352450367137857962254237909393419551256753135742707249768780242501181177165027314831918587660968765375043855080393931123347060345518303074799717085597331954870475114666759493574919017424552575164196401125998659246013564520508545801291186395958744841693154991286067097618556268659612097957439525199526714169186887551356480438824556731014981444651134528288815743881664417389587178857952369376161077347456428098727897457002863197847949304252818963334928204065355038846153098576484547661748193035386106329743775747812805827082982364558621611775675581069302313538521966774033000066640364122401243970677048089213523241754156942895860529983980160306208415019678740367535475599910559831767070353415878873208239937505255417915610013338604615064439214211003988798318615819877801305884034857970087529125840511067550436936628326924656184232840862264713269256728627907066076310261365991518312970869562564248505692705043616298989711622729772565861089656799325919329759014611904725180646645898852099398655300129458793826651911013334897046330833216873751035720069192757728173689244618496799207703733115211709435821967178396604830387139113710537141514203359850670394215136113566513869654041898675742683388903505734651584022152521235166613647995899003568191392024629886644140665455195381970941843854604684391032482562076418355439408044760182537545901754446433674138637122524691879376524166553160445668794636954046529730990078758818307814441541987331106983970702561817939256758362992804020812410602305715481565418111925503849111819192930504992053867210132473695601311029772435057971608523619732040324295013241017712311223565769146997036384721630208845257069498864996687664635589999307584921287474681472078782888383030827554508414180905705422426514744537693374915962762659014200599689748213469720568132171247553703816219970930941593292225632250100177507096319628415880144591583373594097158495904805912304540456085082488636250105938043742577422194018380261937180180526020856031832386867412288356104984726249695007859822432203591529629738640836517723413621958860759600058961199284550703889277970365105876390756496057175602260262881707018377187598736652391747890043180508096104382685561426278787503369577739630746162501356990671765933648318655119055232760103242897421839995032825744403984826642089977578117089972366553200674255408957059133633465413947345254854557075570649084766463667653658398039498518729712310118834454372731980930389150762028325814393406913321677960860744612468009277925671729585921960335903584668552982579197137124697816751134367045540964034306267081497631319066365713090834266262572071774775952424636208648089278851507102739559303441075421049297363641596399438658498828682456246654564574554164376109240051658915592606145756543292023815292470763218246810220531484965049730792776067676477930256358741391294350746972313312005022092591774408636902350626134052282937999583079466324296398274597375028450639820864870700655489023724387517991356677652464342871104068396364870498540631856052964477406991262827309575380265600583545745359015559655693724689927477397009314345398507505952373788863826195441222896674186733640271798014281562862855278746145410414406810129446106745173371670308780786088694340552318780360316127989000554856284572257862880525763845013769832358946341411012780812613699340112821069608052394968781963777303914432031648560730889280403835086898954290381543733169108747713597415562034708803549136999413298541369554370547076140280071474940296836968393704197747205908422209172853374126910858337850056304329568809264278140111053563947387712030626185289701021563313617443059559994133561209587255106064568396937299794680376036262046364740227610566832119937666322125467303333091055956893657411678857404360025702852033837168948276146140383935432090886398087959738861264963038932352380758746522290195369494213401241490774064403990269922989407435794794624842228012411706308846331463644788338657504013172891622697992401831384206150092067104038776994827789122474642486580604176683322394682380992092421523627405016709417694722995221464018647964983431290302132983892706851202233153799867292046474931523623455369965975167187853728369330927327069283009299436417716823198154507535915079141784904403100848143449966314708039675117592775102475038697176669340194726703624011193117570003779704329694699107115410109284086724642544255063232943632432557623533516528067019195414766066934942308399220130087344185991929265394900110374675664054359403654217914934036075228173226802079887150560639037942062552934961132958697821801557956121504792907253348539431994913325538998497517700966050370898534220665805729657494191784361016409588583666870061431154744966798405768953894653058961319057782862767365652154383163086561084758806735947404680218979884458060274515053344938113967926470635870929617770224968778521939338041621890729385289345826158119600416366711470623075907446965399404374548704894644442810569335626136240054880001845209933308924711333875354502704031020758808479732159520919106142631746515586924067917224168850072558092974911065726212223985767113555235248005075402925579498961147120810422363532954265860457920950663517643704401810026366878511183075220853626178051701892072757682577925403915527453845255447022894790433571589168324402580887224903717526008790357464690785765008226043617301616945229526852416623732493937030762056528865838744210435481285311338078841734261474695338514832898149870181922810186333726378405819598183834490306373030450112095336218820918343930714130069404121823932468207526338760078411745154496695635128674274575981443166030602939228610833394240153776641387141694699075073356982203019131125703975724693813508031550246222625578162971874790868280495688372274311829566854843763266119731295393643813567483094436803493556011829494402005124798437358461479977237746869769712090713171154340818078935488947691371229299992371493536249143058920430437547401539815784950712230654208751134025721452564796512756851806611507069369570377392916988981642262342903599769802577331284811528152659214086307329225956989716751712223677176211236151742183148597375002738050228125040216372150131168397825054034425858712404223679253442001914693719350078199492710923198846325962473492925573654383892125961641943592394831885174998782198864262555716251386525701193187063740734572567156383846833002726185196872507944834291617318628320493041340660189191344472038532895260666661124688821525383896977027733543234513921587813573016785052628879351768008714480620354802225236846759778625544810894286304702862506989588914542129222913384042060088200209266792186397717525553235363509619257573282034782316546800719579120943666098442457116508723566754331835257399870894709985882772398881249778980841030052969100198039806769112944582773196341467304917096294815058770489628341316749614651635452315348750417238323089163308084191282142820008450476279334152037593780502904917987783383680261276715853107387199112696213809621465590534675529158148659980895199296638040761281897852894052378282688309666073657707345254389234631848028174783952645135207622414787536962807757362709959675848236902530449660594952665713814872441865459452917203360649587437628282207544696559557140760755809683641640195544882801607939700164290926174712804916514038378723880142431422200827740728056819138472623109688607129917237847095319273225499572788489762478854540155498414130157730505156762200944180616134859926013823011139241370336640961019710058065748104999109834569921902825040063442428828383466405389137308077796075714820689582176184955650892355683021964936361220079778002664149996616480459211087241357442436595330497790229308113741451715170661244199464509754198699023622011561858773425689779183237387788884478941998214770410562613849090690441086082477060521778829352672957909765843579620256937962241776552380967897598625625387634245511597440734822093653594854366088455584030223622548746883856429790855091530942342590293131314555949397348638921455028545466126283946848599836830162255101168873873157625380048792604532014723731861741335070295438670913574855407231929490367095738825240718468990744909384112661337633427794101366864473139421727360563121855732492213121307459833613162531580561337327671345587600606134629593489143000602491194942290100058588059495478022939499733077687275547356778570493796517159197804750324810790608011608884496451598200161641602058408130231246719650559868188877946618157614313140853999469108472016479896485523670929674870528858542658067166751720718310355684553504059467630919536498388767711091252998977518092699238633655141447925497117067539542086897583540922553479374174345521038676402764991197294155428665947903760711437653781625787631981387474253032689366589314481181181073867722823190732134427344875962226829068703717495128100412775787276724321338634933470133725681048899044983298571217562213085140323672730887583719442163654175156046254166711056982095622951124943194711195896017605795838004461461585080002030236918037902203737590611507718419323743893406006191425182666760021544849771357786432781209585175512584171366325944179269390931052013444753292871450583894976603976834738226362791949058215688704616161962965877537798466636392807306147014441664000220753668932267203628082441994145564173098689242093178893564901956880628491814876033771339366180588106481721932156514206901665784024845619715989937825766732105559343292168212532233721474233603135281156356349404545015565961425228961828424951278601198686985708549930376685344944598317091409769195249781025680849943570229118453360266335838101256211104475748948823930387280496978819752207034032062454625801042436637038671134571423494612114998546634799144323073238377028235898255335485478355644855994614660412691315436445411051767928625826004567670912207092640235249490922464901934894018532078963690203934594164079683009403458896414747281830895474963097559736564635127399034552273646825901829910377628624613770867633412068779296485180810698400568540957560185141878958206041029304789469754342665084656151721598239682747125931882706033158003850631296670010375618244060529849009495288785222751438548070161910378987944872836840968424175377376487459765108319236868629348727178463251124150944432446621405287232962138128492091733180547291261674031134099037925221689056109040207252163138932871343935669738149210512012345488246724729102519802481017702271732750468103695168252290766637093909563089129147755632870285250688148973480048409402494015436026476816395534850805997533861997522087779021179653452409799706455994937721109741677260992796430843953258988563871445479481128350841401340206709841683513732669259641762546342324859034974752864832566257017714818592930287826673359088957372769958372565903733147769025792407694534795853015003620689348226072973165964013189973367619302975697716037278744848148959726466181062593876823015002815774407491860685635517131238008880755433153141659970490880496376004946508892818618695674514325667151294125696894661244205605551954231440329189829190762017637981227046860418011573699630387263655167550985834083528584502363261794543976777672545254770369710535211724037015870287414020638535000272166375164655248184518434740788393579048652705229263190856672787002406431948851580401085495331360623836384286430492864684737488545579377057322316871212070337065621970853545683461509679280731159938707453307741880343365343669408802191307080486192183301037313642916226813241116305110243239646690931616291832949126740689724187097523990525917392185377031371323151533103791514161703228444573515328917870677928509705877418973304528393360341308624141217026346299984104343567483154124450540160692613837924691971447484331810111729088786747465783778854761993165580743572542425144207385915015096083537323789765850585314449159997333000360947372406068208414980065800732086326449519296882962323655769741413318867228770784624050973724428058712363612485366885306797004755142771253672020216589327339938493456623658279354964780636341895854602646738424377536291394385428558742845418075590823491301425582571927954437516833049054535606831038741971637008509215334226411100541583832770031088298833869825772449152433072617123139221168853342155995470296467107092049968692150114979288234834054237430550413977692141965479392874703512646883961425363122908081867264375523879994248130192715369785457324148559753727869291821495983377541901903554284790391463145450209579641300465424791355151305164791761575321865734835349639910052774695032737514980748811982091207816461451436429447024335195821604553093671417957343788655286119028627551975669128070440784326797569271457157682231562724303613194480163987177101863806508389189731114401322362865914764552077406113588012525304805977751740646123756326174705800570260043713356972366808106647851065031371594704576449073120498467909640862668607113934555526281025161427508994362558267805547327584664246553233783262357528311972511093072443989921981146772763576503726948957356081665624113119694653938359176096715757793112126030581082719394820380525820319937443942905792222005664298851984440698945287991917752381729048034739288125107869395026877422586729767773974370362738943151306336259229617351684542132081400940352378923646196700761384662514532729261734376864365226153453224439590072021598310685055922792350879652656635598203195606823537358226887131417585847729995864563161134457110320646810786658053923308472504879703796518139456849788021489493727806902766354644230844283954213438217343266700919795014485799197683098809729697330998495239364414811155300919512438247634437198114679518623198049977323587008259647384605628965968114892307139435082862068724967300903526158270845117355871987306180645346181876678622519400775730940380441028708730158624441122275877326661747942088923402562620513153488133819694792511817070345231615376344495757276467835704117413027921121894239285956591753130248115360554461849506547627898013738363782868784847669437273857609578322011313909383487672277634814882639085814412080301595879609428375199196983412833393380447249524753411032068605884248123332088824408091668246587741671721315506611394489955709806215055351066926036163888467319811873626372799888974547794843382655949737969070206992233950174237026775839714977195889984277834228185380354735792925568313512889808522982928504603145319536473662969379993443324311931813415869542183224922063550767434785243288030381486493497724981408348782214593559924534093329622748409292933940478698884074885255734800796505440435090421756022215908117921822636720066426231241634368197025511148909944518174481386701647600724851942858569819754181680589872870643741883286473719045085676140299305198298432987568764101884101735318986711229619732163932239208736287156496956500900490611275066815601879413628909787983560908215823310166583124803878184159954070618973150061865481162223061245789615680739680417544011784007392910738938470332299765626637766623438797184448881094001581392053884087795074481221818794430515323958713673078038487709724487958954911028033364472272807863642921174383631275209848325464763117526286022477083925165127879894582377191835061592137345624366009422655442914328366681952696094567908488868286773767216994523680840510348737764557351265315417542570650335005381364414023541829071172174505259713394265823778937024391436727587032535315574182782374093462416624248563035567775513134233821445022228786924030118158064647365219892051266171590175354166119588680008575585486087454666717581401026742644709567125663455827728717048640789122704306223478812402497925057191258092605533256228757504393875182040837382981783119609351186272085021619665875266995796834462936668549404873544555689444700912851314788874351121447918212740655544201696257369934021182776635027393860733970228928598629999299534009003216766597509257005154294401080302634986630038181588777404488578539019557441704899521969005080156890764407862510277505582764967623107053644283472911164256187543306255746230183851116125925612273037750664295488268904577818663212783951815657123454786426493255301072109490421781695329442384333859381827129723650682586833007429969132910866448548273373853560647629655739955033918919106561296269039502936742464075542976124956146884625234952245963482199353247307320051961438243758642691031763706486243910481966489127883734884689542667815215891434373268053888635682790804071065049670214684127033640742467071497017114041945246833875999677473851575443500664800310993982369810231295442389096478036456546272443968313019429069945033495530424874865240126031619024956347989887468515757780869871557107786848606467648170634208664039565734172321764295993378113963327488426563631948152162749195501240057172878070012027388097850475702314730145524538559960079396899696124989910744008709248925785280847521231095387179382387281319519260756226298284374635094659928160215695369297802742217401866682607021420511550341777401513980419744329710919694763242116148190390142378545297112568783128658315834825404991071238286979271322000992665344406974577152832213806750541222847688895800009557079457545903707097524732951348215397454696449491267104687687975972864408466570192238529494711052896307845390402142276622699910522216495487434840035833387513306602947204082130570747708048404966944955005506362569212073488395350534863990905550646294324476682689293699799954569551139972335940042814641691508090164984524292263878486192159896053927296632248063661429031030753459903533171891033570618873329918957739466461319032101780867933969141226901831590762133452322474514903113636893492433321631057868002190011336629099148011275639683648651548598610651315060208311952846261261227487372209493416893051217757194365821778721390525875933406929657591924528467655493827496655219663487678416113728218493767989510416538919254288472439449421142499408034268158726876573260889254270982330023695819358058208828324018947827797298421704822451361435449297073647884085535158920575582632103385561144057817097332104178815763087554536984897380644382850101856553429478995150212810679478080566184578273210572766050433553659387015854479808207119773061111806436324475022693936566668300908984547875227424104988638171068148670694867987905994560242088761192719478582688420931517659388872959772808695171135049942706595397259043156413109335150258527106998924855507807969348281407837284129025337700506534808927057749888240795998291847506511601955024383227761694090020462554595435687454235077500807962472199175909115216566058087810573406736813757750744906762783934140608115709967655859665127712710401382410896824765764266940383237701531971421571028978109948284194081129600286463066377552997555621915472311734179083162100183592729412686815531065906839173652227306941432706082935225440313741817573465440637821445184689074951165271820741170437312633931383114723544480813680362654170665358795979834421452148509137784855694741181206488340965708257463390356126065525456562915342192787095841353227968513781919451365047558256505311319085859698703230364761740574745139248510421071884396753058550572701219993333162337406457790366886965436090813735491315858135650043746263554764723716666863413246177205492025552495903365469965819524510527082729170204373238917078136366764148293342751409517182401737239166815498225729472843087201456542684082113455697394482414651194948102932197834703526714909761001484326848137037285771743538193911238889012102307512070395573318933707443950106138412751839422215304601666600885037189162513698719527184228281646380011271040425644095233587421746917062994363142315841571232750294473911536520680205557779917851716275685743700051662348085300221432044204595555005281644802389053961850036401023555012568765267595715224048514477707593498258849508819025978469351181732219646410500611230695977144878899779111850058722016305258985874427710731326897648497122024444594746665885115445973536962819954904714719359669667650238150128726457287724464021196531642729393329259529428595747506985559793664547077658281491357669328200461908669492202249149146092093142018322348532718738863351080741717522844529510075596170970597069633171501474469822421272687573272771345097963102262021565806805872005853426210109859051927349821598248289376043367281002618656637865046748928527064449615007053039524269880220857549665911480964306344620825050399500636814476325580542436130355311180304727612763479005788786545681589533782361539973715299374797859487404394397204012962150383740525901412680806409275229859659314567604392703721182927697158336583269344606132300900040255745912786962719263844815317176154466349558394662890998734628868784422308085955909206475679077064076026243846430491841356889394104861978936134191628164021794834553669583786019788180309288287047193353899720587052084523045717317826526926016503630193311929278987409059925476797862354759887986271586883102859593612871174156893147236447153404325451450499188578132775316087369063859719289514877775351702788342731370180462161730186408759952046332510445863716803705669731505718112422551468340048169240148312510799459973473112771372448792174306789355304250585953724250929602578095939003562282930739297522643092714462432761320416931028871473493898324929928376271439922586287030798007054646372165144686070896762462964329786444949849220045550667745406558190206731597863263441865527941782199219232173438336046652100470680760339647588317776138010626414182274913344304487603491824786468842473960127933712737493636137412423340452909822325998292825752139340370031264826581779712394109427400763889933301449398464956749806357414244073090754386987952530039785210080625583910743849278866230733597802008432901843792441539839693253131830832030247092224384565540803770175999606142508984048711204130036449366477555427025766581344399660977251764864089625912063633563943753357483523704957716821824882787289777302457144543483212236867164833847862074364807085241870797007465602109013016576935430324463394137306612233890923835039291690572539271576653851631592540458732709453937977439974803926115985844591276052380773654343258806427117261216130857522276388529168246627952401019216350708963789528182423452230002629368113744236381525891281774936457688204529697566902503005171698276032404502563812079298112418548510501945099700102558771462359882639442007463002601358708452156946770872355802990008414968665996890909596800834898711334877271502998927259489432422039902109371322182126612942317021948413080670602085740032682301291009888839956316661876372663889923498962681197925331385440115444859127705165935441925535801063047533887411650145249914377340569606565046653671519611638869188598595850507856908806292480312449758025198404066217995064058490771712610725013792575271380965706236301592739830710540800561203009150189572921060394095876050726248432927167560284300139829073892669156140767627357184534153786305857516714055322356776052450371421061240008729421629707736639365593597151760459845881056158758914893047393080046540833376344687319061892062832906178594717529025131095317960040321967706469474595455865662521518410778183152606868760565834615246526615678824751931322605376176716991776373513491034998725144617420518922803935076016388624987648265183999710973059178215225180385619331841360003404802162264524837845813445147001224967595667544066679336263912875130180113445210619717355410321371890868686816693387264439207675682731367548914299135518111103062925588195816681075043364023519223398902613900767652878532374255586654902251030597677855402150392092959045721805507269878352148842374885043422809646588196942795690289938407423839960543754561645422269352946800013151213855719239983343150138869109386173878724084113504146354030585219507186778644693914547643194238367141457909369796842850135619975446202945191574141489745001728903347761685995307235642161730624507853218302987930200177235651376399439538856528321245805819892739668045458114346972522272195927388608436597290916583613360759709879452369101911128611761116860729749155854422875681991097894182155787635233525194994676914714810301053988686033407582909384609646813479463585396667516785885823317008975663777008783778367861793268795232398183299612222549173116394048710672644541666782072525729793004834816687916095634088072022791159926169742921486601213265670884318252028767562632389646419988948412271994652101270226299221097013551009672684387899823668074862216738446155891750087677790472235600338848136377875315732379024104049745881605090087548706054136811118168266836772537349293042081210901727823973482189469885844124614948534355423443375395330962501727043381542498633374632181606026685434170427524540181739108549870256472236859688482925940651023262099116832901529550042185743898456001815869658186670720973622568511283260262337808728102028130885371523077130112640121860623602725534405162754506319771867913054460735805965609214166873538629424608827203987498220753296245406845214185366027193363389692732152685380184354821104518197796894306229326331042359739977966574387009683343111893046686562265640321887639379806652105232966215608257638797386113153263633217377431842568607867441222883157273892913660927163446183010579289398310361491595156206890305193713879160032519227448982230588955921371666394751090339094225616769248269880404704218556302319652541438291276466923831122408481266135028788914812500888692537440867015103941793402982366861649222863226993949508281340267846080328951587179582152950454346895778075329695800191679215968783925613353869712226675656575712772122015902204631224123141724897812873580115701773302990367335883373654828746820611491457445954594876971489667898725382980176958267632562420092088467088322810712473435013501348034591048847171965060072415050290504929244157574710202190177720338653242999988370113398535152638209646853263721816697649685748514683253723870656400357598732892620427424780861133816330022798659772132134979633656277595760386936034205666648968425661569614118188416932206494304745148114990778292846894287894719241283597854721732165252683161814860407966281673054073989296398685645505802202711226194405655500428368086503903880935416028513450975547201762776605620426009339822698420551064679591077837510467916916403604693132037098105689978491945505478201686410213607807211119322035662215154162830347709987432459757405413457289244945647039609498873932316000120622667550745979022695715717755618599524813238720346678143798469996870953370256540274578916298013318064810009588122022595800584927674097711621016501622883497002060214484078766827139383474563010787298875881426270831285112981406300425769017159520536683818947636923888067688997209751130445365630072432964522819731386521473566067573288237279890045594929965053731107760173038288950483162264451881265755853086865998315498208277639737123063647433047071362801364285263253347636062078497189963346662143765227253953317578693854809396914996177234919828755563050446624703783768266195993645093879772050940124176184030837588796749484114622978583360567468983426953175732384588529119383656041590898873660885275750393257487940140074811092002194820441311264304867602834822612111346177138468917006956472650581274389057988097713774398971360180038293966522041567607804301212670937168774780241152994805799570377027841380779227805263333294540809469600614915361361137505296876803983128675879329829609993023394292022642487233354101193975322406710897683661286975229025712728263123773180593905255499807719225570693834108327821929867681350220943031003481029581103242574138923046547534073429213110311691263846971475522115301275359073440736480310526643381392758220319359300410293860485510062889970508299215678491735121029965473829269876115991768437629477933375415777015023817403441129201102724189067791389686831790205233741849362456605533134651548099681557047467796758675316051607756125047854507866543298960142294278164222181013202150548796663083665756244811544861991750552348522723189743346223155664867883800436653956069166916889717501797538663961964824372407635057365252138598997386705320645452722369762881734027948303672526073283012384753129730997517585318882415828799058577960118586123141211789152824236588988206504517878594667503746828460454091390050110741122631237133310760436336100484503865306569045234014317444772036740243313249233772422929763401526944568942701732695093180186517173701685688924610240746584939403767247467141178982696961410355296505477521115779176702992791381695332313724145920261619732297932675593058506118976704178161425333543431816645096338463155584941492423757518281733387421346117292060551707295971584399694940116236025003358351634910821999985623962127800523381000159814534409877526102409172297832354394188484893137543013329116466400919613077762931812472722774021884550294119510894653989184206967675569373488822395310901022804256168353862666081800613570875748451545419097189964052223162266549090255058228958669370640081006225719038450940162680668209913297368031368061702859747769301177389303479697440680783170132919285831539993342314902606266762171527911209377935929702417280383974247266405991611220628926310642450211090460007497421996017422688292331203841246218727130547536028359708363496509881628659202560121068704293152213604346240151484074249608851701586077412280962969391770253204011908666045709594232567701654176277634072085460969410172990662044716343111068781119357192427720050973947953928598907041693586102477877979692082190654994904516479551363625084786000953377223410221236787391962809442610330950604730108945389239855345458564666596554613782254235962386850098022342999617022573961919352893232586552136655109619242762586275708986856015547803083329252377339938247727401606038641271279794808122861225447578078710585559952364928970620872271519158069260738168441793710794598243594168961450781818619286145012496582686320042733656970203489959325742927449173188703371049436120360070626572195708175215302315044889925476230747891767528806419299611156873271272356365827124642166348914332567479979927813744654615992959623060042502650798832146979967032830432946733994175223331645825938279078760908837598177294233383994781282385286503010650944232107422908026149505068128058531132979686447320846548234852062847739460403628352468336011192653531496197803462433495477661945089899533125985492627452410665125052729843725252738515047279998250918907833155855744351295723288959841263984572928101521345772600700916835888177234882789778391824559139519921043659821672770044825005904677143285047075949589824970626413333958417614678112228461425556338171034215922071252457377363197635868203995532300304299295397813640047712575694739532435824063933354641407887108057826769978141865997212585245294174026118721745637789396206799131079461302436092012939875075106897738862321924098156800631582765883947756711392306714169135371885704375911250316238208962954088107760996932849631510542830949970034224119485137157776824011682164732660422714635537660782152742415566095630973645276231456629991562506782220020212205719313363895902561864997666798729521844451047536715222386577609932881920614841129702237685389776812689750705637079256039134098437042917503653455219167367156798370549507862405029067468860937715205298441850362660953502041884821255370974639517292913937510347331083315459921057051712279078559934331721321077011679903625084887250921748690264382405492309981322078990237334437460688796922690142103600767797470650004909033256083247788232101073762746914536374386260503811029984824368454787248462593644800121739235850579605846328437279654789240998671177164089506454916050792609920403858392512200710131720315531123987200865251989442916311043765406244110390824146051396259344675596184850446374278418229467356883739090667307057351487263458554864322060037940299418283012225526122074925563743667492874405973853398893158497636981412682546970375178766953847635347317345293602386375924103807435724188566429680854160043867918115249484854521864807948504770245066054482404591532738051981242687534223429303823561272699327770909167332457878688728365410570958212856935174564026504417046063725377716600319336613156955730127340561232595524019989492167338791225297104285315758447841035877614344587086611103715848988126896156434791775069687141287823628072050184644171305560934767390214667840453453308685294391272804983250138074033842182427392715340595378620179861180696193813925621786146609446336944429816976590912793885001525544163348133239816156066598409086073553882797605762843384045738553228821715946753038594456450965771630582982446332764062175015876101746036081667324508810053211971195975716114516814044138318375195391549339529543114564024412183857473584014672772038195723929495721477123927352295313140337049298023717634541178267294472328780643140449178501153537703274328308204561845531743587593849803459343313841847802880922201809095065958528845309311975496549519076402784533130863767228529553705474775349242658453759946745899489743304668353754148982220506401408035236949161516967993154547461205837175926451861514420165438688461691744859451741875460054531947457637530228142088407325041540654899040551736522776286185292499578135196873590994615746563754317815238886544367158019345384345003182538444486889483305992871409840926562560847209793069982571399900250452497586682952069104093626079922285591667932186225373694706510454939446282299307445740829652478651749877713606108844751771432616889358561979193728736248472091680674872094940136555659270945527247479548330147953427295508743996866273404137623588277899601018104776106237585131194929532576706978888501864445039535858107052761459309640491651046716155100735451936335172549316950582680131831884389147845149127280504249408741833404805370267835397203621649004308712625272269467349310383102397719274015745941130324388452857460903133621767825238679275882750529328132566285472007345470182930617085051633931146484889032068469739511379294545052242366783841058210473064272910052009225957181386871697332416393274622088243762234434548223046885914232436824457626553143257254882877456021064261018721845185102612263283802770003636688748746668492941901994860365041458501923491063308722557762287951899879500700935897638882301031857385477919621073997980398957124780827797524308578100561484119270101920267315622260266819842668659231434808207155140858566567529640217651352891806017000031645730516267707619840831771004658456037031062428095419262020805544561823333142971070268920856418573672665629441960618729759578698662291733459688128595311874385755587085941140704802149726138778792008605509896855461405007951210433722769185766452961948072455775913321263701438239911294403458690637326811370487364487642195440988052240940676478466003946744896998341619483102373838755036496679960287696196453965697707896356093464011468701896960390286038613845437427496166351539923182580114896196953069346659568966991765795095581858169498573159103916042481505585170617519357793606324101305153188435677388073580168508616426394127279722771566142778052141128028123433700220909660792675759176744887454143679707913895543596923882001460734646647452354994546353768481494867228140584615297869171676176272302978162366865669355408754972836836531297830731765178770606279759729308689485066140996746322194901532153711090943266551463354488453207988782965848153475557858063131766300152556356444321013300565444589991703883728814210652123693350511731867353873057860778753602655666092343387980566505927889471295151820698107200906688215557464136692191024340767132926723320391051083544649503683810465221591367084977211604499736781022256803422905402127713962156269156788714414746143320262054682779595751472965453570172324750863463364185948629399014573133259136641323914367582370211909523383179683701454991575994439448319328426201077498152951442466602598377836855035238433782246137209263221848139938974475909711021069668139879320248597240369189166469205895105346679812718894970378664019823438968367342394143822091888768318692872968883220883587065923266655738343940199654137266225850530845949377333521980767363627586804912430882834888008574908188621598111166154735892970559165151073957631380788318070935664684276538331248234866367342406748954594557536938487761404980717111604880949384938082720592728151934258255697181577352130998075987517292315406670465536807770257045564373733311814912998135222120462917797656545235442381042885291293644913894761257314524764315917434468498814249288185901020024006698614300069285026891048198379632723873036018781004655404617086373887309472800946878863082767357932895977789393633681135745448657695327617297198133521585611610036731256154487200602331327878545791229984119990840544676734243744274473268149814716668610846433753342665258486533040530012254081181541715352668135563565158188719595925543595008007838217181566625659587376019847849667153986030830423372438649343527544001683730278117362016791670408429268429719166997745017007322645109889665981878541488360949241323714331975114382175053163749082164841076732877621688972281905602093470549045904654036528588191850991050333736882416063895496050203468756224974476077065070870204164737321534162365699008709108756391171386460042585999717711874612269202827584330647777784971308615286646253348227755744809153196982568750392950155035607662191357426776855927325556159677241194581438579871706484359200012151075914927662551722829913305646543463575658082648172212673808250120894168349162867239994561562330920258366334445338125028703719763767668485814506572852700411397243616109446247894484513072098638145120350826917294355977186321139881989158797303923526138184518438310474646089192807138829334627966725057239508318136041744522682904124749795649971274569746277189220917031752276201346273916284653755345618888452833204391372978574687063876500416238075149896486099422011691914667952461679879105282510516399035284623751055152755952847014948724010074043396296220042822019185397373178178763839070835312302004548300015061113865901010826594334179747945190195077727466647976878948635160260376095492292260338629016628887396444597453041627163886043638375990591903634743744558239048016942856267156435389495848162057408248445400335880251357650007480979949359720627299691989922865796543978456133562780022760835707995830810633796521177610706830703762330774476276799833547424871659296058351894266684823712672985228475772355165193183697739711149881133110861440362834139707562523197888616355282193187204643852652817641855725179113471608127895780901724675216775124779797233074755781955195919990344379166247056057755062199891720987482499214368532719015183574156634715089284675053674785240044797715356271454695263579942579548041766477999823148651112659163318878007504135501191122829227447013509664806588087998473361799224637625703873701070494782305386708603839480042389032170955948433728377517467961398236659816933410576511792841613625482138917812516443888976659480843984022094675754201993325703562198586603227097752203514218715342400085456768624180713977853401925605184118298771577047321866353818788235513207549072792424285946274992603669927594775162978137145426270143405698419698904933059118761475249979823340701624436452251539131090388082695893448669542189958170394132071218149180110797093605271907620444791918304380550583720457847271823059436328915604330262100468963910520742555480833464353969412520697580923537698074239662519837767645844111443867263058360974760892137040166915503234314732200938063088656511324019683145256827295212691253315602410234540209519598022854475781508566207024618550412324666835488928514762863199384237492691507770259460327105241499558713969533647932693222381739311241054029059009913190859145255198875448501799602321177811140935744390442949333071689271815786465456506548971660719227354913330659023651256979401212655697530596478510439368496529694069325724236833958799976468007101718491834618353203875084517008333231498015945025513743333819412406960294226658519622651390226310366506212435577875557042685806795265038081103892762495857142355869024542530963806821939075940875669386742377586120330260346207045965020763701640118316471546035188297909460590846382400884237689303348848282802144823782564549382117981033008060946773296339950033546878589236005724179496784479625242065875498938180409111446788139168166919231964048029178230000598682377362061083077266993803519749794288218320897876488296110663035345848833632286960532843465224319958628031591216972114584746317370398642474294883105954399858693865407179578518985724159177087055691910972403461192733877150317234098124123384582030542110042287659360848433481175145667527676751351334875916550198707224100946098063654866646605761569052907482450181936013463086009219443246182432699300461614568593597072791301403027132230100864553560871957492557470694034592927634987655087968718342522570063842700828558156656464168185418439424056790057098106614164796269049418076919856816895010300564929760582104353918788318217284969296983045734936290868014205382791213613428161178608302403855655787264697542916240973263720668733415381516404612691837906711192361655399103397995971433556904951845783953683932985440431757710839648140696302893765400723236784693390420353700349439339438885310523326594946935419300293434728681207974021380817993065870906170022255971399577185488157561706625295099147292104897389823256024883530583320811615538873346729496877860888618801144300226427945894656533136789185181917704132808005037613997270168651190049140772726220402519197818914393593630381067000134829811092036721328650156380231444359209394348990670764581053098270895406814396230162656056809392197188065239387828454114647030241397603046694695646232692017948136133714141634066633557624794877681500090723075681905853851011865731063148382135592694942267386477718181326673577554064663823806232071805658949069438027054513321670595519593793724882447775780039114495929449825505652778323380939897833514395353866553724008149379903608082592911678997056039521878728094222656222612562608924787356960999113811044787555886101754516303109921973207304465182607807954952713888449651802288059356356879984837843499464381703103401023082412775080889139330533990275814816546182248134483046853818567536425371203783872641592104928567999374846177009931070284908304870914087997054705459049791812930153226381308469644319485272998168445392373426505433202503231182534692475342533189555338180760803947450266118062255261311405099102591127804777993088086400584861657512521891896503531965756563708259552366107178281795859596669216916601212034074541798185322358349073690512796693108084342144460417053282497003830935643092642527471032167305477211798354694209945755179624478611548416026141489449631476344073655129288584866514576397869596658656535039620855646310018595214329061342893937172830563140461178497584959391483433782989781026890884405450760227176290194733125191626624061321677730992284739164446594776891555549821731399237120337733341389297227572447179404200241052084392608637389964974019925945545151486285503424606679710614118887295983216795824759178655111756416881194879736215514395924699127420264858194062282794959173705339673001780426082386776831060861513709506168659051032454985625602260233985622554886389096815500871382504543071481847689916250850428451971097238228123833092168491704175631248227233470133973102192725179594327883925149868590214623371384963866353872736222640516920054452002951013668688973136443745082336446302224862294371651722688917246644750100877307405456494920564836904485397398279585577823971813121777208172580999662867257577462835900941093695859460550627548674455505497444905723889195902702572733749807668070321059892237472755993620223049277977144722096236218235287846874391407258890889894801921652468347527584528218404868384420098754754784357122897758159768769991250708137507056884761203324701864726444535753683452729799666007671676215340367457673036641565711049126946563865762755621409574854259610716240572464080927988145788657811361589351377185675566052359353489251111990821442004916782497741280308001231489157813700495637200491265937866943151258474293054594502101547914028626829628718832643102381338714677364426213899192151832559237619292592949666854477249937678271501335333067135062495731811808118189358918764097958659181706622436867746711263562778272659472678916632321355854729008714855622132710309499414100108077313837226398564858026792564145552771703220350353267062517582592107052860506714031617096413821076091243044372178086484868122328759640050580205472139285455487595683400337613298070630470580518982366010598734333982652911945596163104320119123097335329630794615214482555652273865502334569663744422522526615897073357092232764733623894810126932074973567531039294445344096810683222131131045294240072658269068085716156086577756764393755682391436269266280917315313943047080389687616845579864098633240635668018393687590439381405574978491964448992378358688871196452994660305428136447390533134012353163251495738468290040982717121005993726494877506912548201626629457184206270350504522714499356146911514075035437820463200379962625802662835318315174959576623034230218364614972749795474663873527704562751243502436010634563870379311739628650265974145759737672211367382567649123777202292135478817107114853234305488298723048013527806246443800847808123484156492489635333255224824943944582893228084931522720285001643428577059657858649469000971432367108010787754010769012029002343586600540141309097121034429715083035367647074509040921107244823680497049179421034417890792084139966530190706471642334153615922232312900233625133927977427864832507359676128790049770441875413666370796433799048750786921693807312748051154107692710281306763756951813370393108724120472196941359773328890251432155308752225260277699199545058448078216121218941669796125642729033461223341670272235377522621666025114218517024126322345029114107138607543677526826513945458016644499048428020283585809178934745971806641402721380572619045992144807139018680254953626360302140872686149334792252189151690180192311722873324914268464352850300464696926793647134906851406894469841939957101809792300518422570268186098704472618577683572217512805501207360293219754446636680149863621440476813389737748192322161912248351274240133359148470478778264989638378424888093378691717712444533470396098063327973301566001981362469064761376178697786055642679317185851814737353785321206956801940319617740742919516181548754710853608037479255521215926054557295713839329055228235941987173172043168645977061891761928133444178439489556956841320516982891815547349536037916510546979537776169827334424948028376226680559835971495839774018084132281503965016828895864434708588398095051162086665311430110537737394630549369646327245171313009939100478130732039924900290644747776233457171716618299361275948334949649596943150204404879927432424062383345810777790812153281713503208661094222245101016563989979053824522275718676786676165621540082495871369088325461464968032571950710095660295618543333114446999935079496813824062662590057470583421496404373921055008575330546576355148508878258210370788755890769269978626117015406064443904547721322950015995686108453040978782371251390382448251328676391722648535586037203107835419696632965624075434201782435513760463584939976712269810909239184349532229947117337678978537150064623098540004326034487930151215280101694320264723643125067911051410933353509136787260185528561055231681280938611567495835292540106584050683106861128151480710610985072461910979539658960069775384314556994473927625229390621096833939943958610045561174731782238250272445124997140345650133751480273881396198458044114631050269653347671393492640058337441491340918280550502936678581662857260504897010693342726658578024687817910010042810448802042494202809298108863623741892771818762096865642660620183977914165851104218289606209679215814976828537766013698902379256892038414122042225739763576999507269369123535119514258603114961959370045610393413619732196414797322484541853567073501283591589135628594690494593139994188718189196296797347819547172823247350222782655995243507671885530816308391245344226319331096012911928412502741256755624203950947939821541190384688656771111944266875306943670821308962383779099385785121369241752550389394534799774792694661376815763457703220080439704776655313686326558178707107350366568825707740320469317744165967128194239970175022182301739869089959333932341389560218948977539508950276491715852620349743748259111595971930168977996513440273359647380746975905890630360274943622065847321070604397929386537223279123236266913626343791048639664816067210144093509024880670959526828132400977686306625207103461911643778304871979243638415055131648902370242990607846579756917523650137009103138424972955577711398289903123390231196880280857745226748060723901676202756317379752758711996653168829827853387477725093257776901658891766734221723145335595361665915606955546340798514702033553611351766242065496987103027538666463326319600400756509367884771046973990326430031056447196935578734146134210620868530155978762779674671059055692525550876943831647843893398016128256241298046966037965591809093777482793662017471730042592260180402030580175281205106911599005662209325546330429187453133680725718821659511919654982542195436052308963596299704139999589802071949282895286510762166343170699798312407325469504231820684817100616984527630565090080454693050997341961940950703706846807960423301453626955803729873980439030145148982403278831390859065546351096932946638057659406013058827888794762056588716129864092620560596022481052404987001152295167328555676929587285626277735901152860099690181613401144710285452902430891542037037576838993376830045035554650678669906832485200907836889829442340754317634255728951474560840589838036628936513588953735029161226935544474816285022180084003844632776024330104543194645514417507838463158092364145011004757484670578228150808061132015234222731317754738533654523317521587743322318501279366246116897197815215266887645949127727689617840354652826088639986376343920053444497753837745242974824012092998245696148510929972203382164044839743016383575386023282331116404319615638611360748379289071028917079025835456885615261685186676027049919586645259859480731955431426190970942629898806120312058503794099438339307713775901658836174501336059165607653751029421255658196568180425003051250571702069394291374700638756791301473747655469472342288270684573127229635732697712900408633957399928951906939089939275343882469462065977105754856089209686986180963708978930299898117791815503485903505326418798523147766171144162152097355615128056097653614646018574316385134158398035539085221272004742500710955099182065105220986281982675041258281682630486174177117488468808409731810332985968968449182709628153218496068965687946678967247395748377125425628009418697526402259276251522631447137696152283198498678603586162475072868472706313204029444857271327278051069921916221433149649982633057285006580296270212038763544714101754109006290694905803371526969114195675487028253837263084958687945378843908980193270777881524980032373515386776605350032171237868679063527164108766449634663077445889310331608290672052968712026367528368806859700139069022986420228397848460189429046895727380059437527848387969602972546493893570768172454396304109485609915181740913522307381368181166954230008776610645408754828360501291910562306370898744666465576521964062416877019208160334751208846796751672917333116412970494049880645918681714897146433336523023918143061118109953261282928594481887674020128172978697768300241083161354493068895452177351007827389329387831575085286282625564024107952514028175402409335535537830628601592646960609373380625655391015042068655412071906382679393562679019578680003645811645130446703416715774034168677756121614094662609247120157009299265157532020476807334787280973144797428108598738862750797130238099201746143048665255956083883319447538347253921939925549300978652904088254930408427374420568975792672920990351000479669638957516353089828895130529065714492180952565846526233120723671980658433313142611290918171194943776814656190550568797608903403203956236356154692155577049113481344365596609672393241818127594327840009442788629162716349243327614725753242476757931771035047225547141599828288850633932653701079749588833978426812807843054743765401166888288993042171913333156750804296605127180420828583032624697913383913899172979875040375991642747346399664429029433495040102790342590943513163984159073170475174353655298548382205558282178806769433857268890524444107990047739086675832443828799396096210880095850835353128746124653470925521126702740361238261472204974308456205046361077930414365727411650840376741298480920186720394368392425516626795360280188493669590191839666895903247281783362740686873975007222372573001200805972833086534342458092573938908410595666080133436567117501421093813136673778509074181105049938089524747437518154628264083761187695546581358184756004569394472241845520249819851803815109803452268267729338714490226900811087823840909021432273058168018007586318421729780093941314825894560817856766282719491272860312153979154374296872148862286985730291807460008763126445127889092949687057653076706425504276084438033626739036598224259472930016934782683270400143527222930845070580418029839381620678299270457810760143517348248224327250331631222722627210399465968565714450465879101100521792446099202950430728406649847212811382435694143078630271877612076433040104455240706500190456016830923776132135437897414172046521152839020680699024670627893034687979865028520073943123957575741464044988593957519913468878197746218590700109312367848264719040182784441714597412653241162738324450180627557901976519817327743390480282603082090718751253597259068924318961982041505210965181612993709307984092981093075902352962405098298916668196907477340383522232947206374793417554394799224263520532527454761284344742269054067984654979638141700194922925573687443082704632345696094875392929551339494341282151388919969591441954062845772133780174393828212193838402677235433670001351492838636022800338184665558380764226060683188549765055291303329757416809042057544046973943815542315202399418442257822955005229994203910600381739512210417761248389512456488058067449880939638949494867279386361204885555524271986357578769565457850082985072914087181094670217813660158162396722189256800741830052023567483962834679474645870405658535873829832370183590396057556765734409592337430964351725813773128663119964496274218064414200197548682866719843936267741772936530192826234783701830092921977000422160534372831984965567892604485428445840059000075309773269814226294854104018483502496713991982517292599956475156880132383578345211859723247620167239152624682054321678644790205888748930496708004175962238977710439939840696374123219702774180578439593639671089248199457615625561334766452967086599526498578881113445899149764736919689384714626398839118466724741981762147428409102483042564355688684590433026164050246718662884261761947504075878778198436226566293181715155680955363880200133000232952808062454091025995333177774951947097059172574956863012695558444320635528785906334238207793228621078815309561224319035664059877996050591261457251317823548478083712712780635534888016082404628569072443621746757310792270760437301525426281266960696483365091063950653903519691735754078846741947719394973043442946448287693983757034833116215094689498803410523204507725910556713668380356922446525282850732113418431151385135979282288274980707254401262506829493559096584288366830332365008582714506801506319181278628405621839302456805081504301991659068008011557918400249473364850148936333971986620119867529576874349409651137396065531325839933307632087311083234599720778367072293789011443445449507259164837133539761968923680330017100633149875411365498085183766341985100146150502521863200801295528278027365274132400206908223970485367411018488692530708157835318362647134087830980487667277283465531145017644131924747454683594084400401507583920117476568597355779360374377247316324380804670732113462269695173562896802364496561601781772429824193281787019035598556139286615953062480630756127376409668913577949975412331720471089608085016958289442200997506973134409981572341481038821105306033108896803189788434906580137908714597116555677005200491037935921098196390362161751969375354465598184864014557103055343268638136491621962451284645590389882637497825200620525964298192501187441083697504563373821158696600580106876066015688144463089957488811352051726872117507960399237834470103298043806613021684105883411345789623192159567820847698216141152057619597695155798675635055556364356912225807798882528611390071102194964748949890723078884502004491226306171385039342715781073648188688094158843178157605065695295845466590575990419980972813691552984486628402633648952953088160430566801828605360677734091947724627224411079572082503201545423836351704311828650878512662832127577781573238676095486636583672347097329941232006494433528185718409537627607233473140137498577067071175414644942456589837434901894845080634093359100457268904413557733562242677101472036255356511356565741291559753270172914013957051280061288795505924856307533115857117623096401283256360282618588354829881225439359466803190166288905664594574238577465028107588443650739185089937822722146951183568263223886427952686094487388608212475261776111636269727856443112326567352730001595476584747375917905048056399449210148717451584242348583607370591889149406054756500225102516712553751136902567427550271532029389090063199807632844022159538569504920112938982801054330074072913188061520699912058898366758594483573826435337177178134401018920369332423758598547188823841351037388975880814893128681290448464188042276079170591527217029882554277181960293894680175203675964457247648507593099273134082559080521942978945606332428396590492465253281963566905170511832009794763495645200448716575655338818145453256320048185859944980781235057574724547465528170217753381173280994795351558518573813008072982241870330224841966167764388482856141448263217262314464813705984562663547429232422751313870558652567046063725224618886513057700672214857958945896886432901835965590402294314487441524131275080180405101761117628790922242064610390158719582170976210905955599119922710959134920611701902612908074720425303232600526553651813150568005794140168926468234664625751821882066714914929879509704598701555401117441387837439067518220746568522533934343077589094593870646830909956101492734890228070817668662307239726824712251516443236015168692785824564971437426848437854162410458135243233881140457182835969045899656841039054562794304226956062188324684401208138802428599275344476178407475532678335818952803665652741282520061441085801331365019048446545152400045477836063058165724886857539659667675285513050149222629658778848008407653692066818409871744501848711384107715221912864188370212928835439336290414916674392785867239423300343652933230116836097799594204354276595502712467185644328905609637728483181821623864912077936657610848749764729175115456403085626618025177320585272834803294535233582790092371459712988600162412091763553770987565868478788445124840916693565803839814972406534884242774598027766768028470818271020567440684748719425187036248689190488146118826779459103937353466507081478221265205108458083385697984531316919280823818740940177420201046669904796920256701808557106685397810251863246407984694034533127737410768079578319121281241862068465800536743171051693586385622850630992593667096605918887053280725342342965720939062821489912010675108131717965637227286406796153962713429838858129644068879323667497530117288703635490423635311359446740305642151503837949404701563670835318425695542002742922673477962807792205338302941615780390310349877025655973242894137817576299775952634786491981505687676305789569236956290948625677185348889012135790560475128976559089356384154335223504474085552321336518440910752682667414400081258962595177509733627147738091557278114868214538045243167671930938138587205181079452715716614606597315869492704621072758992354142779682196889026300005828084322920872936215439282591387155009695730564903057076512328154654219153412236478255563488220214138980452955223422293792749522360630857023565314265808108672571894925297150083818199062933202178265195820788325154661904180448513153257338378743947508212251486170392316422079480031883431870882883121346021343014146899970599599359336917967410319004052557186758375611665312013841089172525025663798381228042599789647225882830817592186065024416661442056181060949441912824725458136834788135382090365732289128949658652471769265655217826238202946436217649015037400089108425014860262376139255837273474617890722060950359795318524793575282723373928152821661330936591074550817203291185743775065114661682652994955789123500097234293715407219905912810971919122714366524004484348659147556239796616175749110890308081566555037922235204507427046917510587930872918870186578580037769241978835805540426312710709418711147903821925075055841072012517434070460287685759307088533719037501834367288807938538656984350385121812308139142625951817268589114306629002087531377650179246183200021923161120756564448680786082863092316499577634955185050117816647123546786675201983313697677958342331415809771833384661702161651559814777959578651825231751559729126770409471162098103569101317600450405347648983939813397770947506289720624506732149979630010061022365978031661292701139790550273138095690381072467133725280912518712000410662978004851857628945295594737908310703045828514547078011112109023201051462874633731787225222189796611112912453212567730914348533550523393343795260380167093541185492674688867302885585735059081444987170227663610263537537301634796946219791444618096278173350303394273053184474807739259538157128343210214608478628978383785476540670768980894352510276786164624422976113484210322160025551333488707479815037121375852040627574045323323082324640190023775818552567437376647593246423021862341119809757441927521009498395743149928944725041647499621202957149793500362185554138965960124905055160890506127851361159063728486568644755712567470882367910306963559738582539550246239095390689939878593765344168570253741881790398119510763934755420786045247336921296921667531602585244886857401117472089186929443172364583839144733864807807340629450584513051856424665657683859256857380054196331277034018712975775859024294975610457854766117549004621438874749490828613848532230794402092114877242905343611006922832258146350470467948379008256668067592308127941227636438107381790354651248998303132807018826056242551366998211689606123777387579210289444522064425981509460392967505904220636339092268279688434550293655248448199371493949723457626876099878405401199803413945616497199965426495623621955835396509927349190617518158529482628077187286625790330929809991988288300631765670246229699364738693639972940575177460927893129729880491677349047637530710198346512493642858055216977459279277508525390419480858313109454064454202347206478274024885512526118107689747252952041449760340449507377063990530591906777112995336940041967982823002751100804917347660291539818676788094520530400935409151732007443461653930647844551328510782044021484335801681041713988067313880955290777875621925372754557259521348150758499170110142403907080365804676326284707695453209873456708516628005202822323739419750380616472024877283207943929903445012203334988190888118039492625804608124111438935317460087531583478955080834859153923259624000176929769261259300406423480378589198027768911367304354390580600742449641842865294377778509315290841094929398678448693590117310277232548921027316736685203222349479892111307584853145119875053284763866182297570890441168317171650007109977857736847386740373247060900274495860221814312002858683571688074055096821674849456831290644307578776306833576852779829263296777216974442842306716093399290934743041007997200279698391459026133986293132922606330452967551663245709712945924153043968257177102123110909649494696503266994344993297228701433313600113706695376153341731532463352319298291845083496713927104679904020314160559518327838115437628925151945339155476523562146010529700984521556849885387349195207496994726361529259115270278061047692929597302458070405314395892502824746681424022562240840594171551929220800008012472823053608098073398489313898261129250209875497059872811561282647591782752576305648138400342510537178763502425939034459647261254802029854969880598421660370360946292532736270465010797174065987129621772313982006374257068904140025266560741052779629072425284955416626971708231611806973564370921833851252503403012078859681839055399890910493566307432028478295638869506811936585630611810978578361271761904248676496786607039409033513386231503260397400696966111250376031781776473382979723650012474788116746422027787437394975185744216277399317960251481497764840050326640352088058612966360031225130135391514609396410415046797552909442952839483240963436962169412197495525335928465834378195172439912260371328626629144644144917939674357771134428401955668789201165148622011888810101425369752467571694672776614533542399135942710114610444091876252273037265228216181959704392251392434551765332070247011932404309648192856338076325422608936034914603100313627027258163060800779596069689842989473937518667627739553658419994082577084002545399180266041049349261928148333115273355014928502164345185105922832666813710084552858561473095024826607265415749466539052703626829291648097680539205324417431680169130379394935563826040699125581491516946913165911865040799862553009818533206508063542911331767070174492770583590167106863817878836263125539208509012149880857034164160668461173532831918463279113256502552020787898681986913090159697506684896114071456556030891270389909150660348252720246637226427430377785420800693107129661347478242594342103141278759062593141045837776734952887214231560903711885183524535366314108584425918761354428137966406656025654648165607891651519181379820789349705869975529413139142414871529930835101612643956124479576485744936298677567891186218154764185153096246694912521850441169830860835120076380279763699791103703669272971718087922048596539234090809296988744844357121956085369016616558711139235846636593929693477911019588835390362558125653545061668871534566718481022441368588977166525368277031792590233547980788846681526406267279281487148957682833874048519668273195015749008636419767065483296893956863647923808701568959198578403020087509983770335999868507243248329400541216228323906304645539262712596045684709300193173987714998935949708279821067344322148883771182729388484609808452296366386009301723994849377905023928584880216388946687425914622647578923648428311139601819505782933598141477546306030301137544736513078275042665274163764266413126201704748540400703024422124079304769804991638403996578310666793829841838623046520897036602508636105555269291893241216987209869935336430097840367095793184130324849513987939049445096050316534063093346179369484488106974418349457623207932578485353321717136527717250363198215360567978634716961496474303820688924775432710571065733287937093100849895295247426038903157075443133282784167079350957944214298898752557184873801473837892963081657656640501821223945475263425370551238382832055598226129279158226005342490622108462052228194702845781186793519617215166102473338799824591123776727682640640551983571708803224707780250350279573977864623243319133441973512262126419309847514209469477375643098332750318172524126665982089437324526738415235613170666831979202899359160300847890156956786074673843844130535700017609089296642403633110515714781578843460399598280056267248093112528450547093971503349910131768554284478682336821919918708897693131583830239387200483988068437198076663142409961845052134710118870939309856665930279482115402417935800249996869809051287092732262987200907819299147372280319104107983540206096195778811069621121115080840631234830414413795696406840742636432726127367927433752145542909975657739016783319866018797753135746151983531728812427327352267208667847806099239197298606065781036510930089442234254110548248016253748452199371377598535706002556156528282735422436131647665131876482005604361359064683444870604268153145707306423672362478178218706853505973384054549453852901504051850680663565745309795109415823880011662994257074437321070687177758341079793736250241730000858074463013506728978298966056351858625520993906916340444699045988945102202783710676970179070293392251955778243495267871831499740617085526466736523649941632306632405652691866183478107577672033464280432884248605720691500337035386615960143937039477289812522071403950749186884620780589016393443221964741062088171847800597336267776617550203242557269240349860288398978974802894278320894218223563918663085383925926128395592313072337132166733970825739250510572104497789562010434258188880221548424806605594967976615757450808222774710129204503993385695736236828055915981436874843315826866394971407875965496680899739104079379687373283497747152521135697362058993894287733304631368439305704129283396432717144149610376859434725270724249683288320491294973372711565396426680657545100148674209329433597647277938461320992081147508792260072306608782819414802560926182862359965183317150583862258501110421488299047681004009264347833936408970571404731002535339633921960125674367834124647761070712402272987420066275560598355575902275317449074174704366833181294512076166453322480634282457360053670452831621723348104302804782774057511043387801059370293733365472144780076864080204212373264041614307962578661271507861948588600869841146460348132153934340365327983643083364332885708352574552982472234899532982647989021000345735956439887367073078072939909072200508768008029588963868812905948672867495581372613473920412135420862842315306101758950174874622644392223965892656098177770765900485197605600901931098867724831705269060032609131691315732656190575380459808134937618401889768403695227102404812644347724064634389063430795909853722840523763139345230071144582682422877659475993097559695500490812332022038980341848372774784262754527422507217421373327980007258672318003268892713689164232248651209892402719307067916114560088091177465437544969190464669209010818517362976367826796226942909142748828448416743325102285905649353051737976431083768712753692166775947405963391194880181703149461319457158087784545810608588811457365823051047200357530464419238394427664494836646921190550916830151410996285102327732020180614207805272074533335477937683474615383400465347439001452479011990691516891011151168856276042095856093165323555681161883599634734579146423447802867345559940584341586943948397484126503037155617231279211146539077411436533465190180824411618655794239992626030297135856860652828004793361109213288596661264002330697551312550893709124741434991362900056708594611521686693520638947703929721552325299542624236264265143067995099198686296766152274375150220325108710690491877379357975447826282276900973805867103841132421598516181265120049889602442009831913368372044118137715443051237676008916618949405413740182879009010283630684174431479631264286817683665517592138133414977959030982527348910442308903922386154731472527635648099666445784102055070433550310706612936834787980920792962346674209389328380980821959981764291317996016696608843202491296769263567117829904603858082841789397776303443645502689434303709284477250145090425709336085792722585913887554446695309976844345387911368959431391584116817109613856418215079346943893104224170364065921084165897612598966703011809161370271681499976223309360280386486249053015770850626040087321451349289274791487623689883336776256816274265411761154342249864391586851955203931594085568259232793408947991550336130522552332786486785269914842322606448417811271340749657760483065539799050803076901398734085939637364135870338675153558161706866123607961863957427676059353783981018896078511559449517552123571738024800513235219069046787359578134923643082086848636152285319211580832419059848503140387653743822362130285565297058879664069338606944992673677046734680724479301112465879770189813142001731086244093099062204191800052929296153714761143130158208013565341858735933438449331798576182594470917177579824936418074558787330622570443941946811759172832700020770613561516593062958950646280089365553795496726090571768246159517683446761629509300582799763702992324252151639059645949500330151220963873911592031043958703555667553037387358585497132777535923344981338115519279534722909228885186314833536148537832174000217578724015683034724195944071706500351919665756435855503009140189570620765180803338393070049391757268072312845264943175500304614409600456816012301078306897012727318153412120177418424055351773191840739475873405374037251143903815517740733123244758148536307306536212959659576066793515862392721987678431304539437381770425862531261480219059573582468579838396795925198703265926257886615240407093388746228879664252256234644490247267297610260468376179756429331287669668164640462717069372784452892734309189650462700126978377428938829822907276649435497364953689063153184276955955150282812405892399128770257835681736468040550507859954634741233992268969947340643692908402132089711863038117891678814477567912817497104519320935473465437428011258602193009115739327171116575230813739395567513558695791027612265632098800271736963265743250973257304024830543596795786409353817733783452078859867468239736211382506638361042989361991361549842758974758231360358612849163784299978739182287510502901999155935978286276015144520976284011238546413836575898914665576487489841996342583302480364108728717761615264397950008841497559134494554065799420643830493007800824390593126368659398367511542959978483932855511032548829357494440171206539038361707395352031305076132539186847818739969197892943748644173726102012095998622146207682078283188599955652158480505085327963414525649737798860433997588735782445020461556040911924338115716388982154673879528676203873481038444411330011077189436409535249147090178397797481171378900805640482079610691223112803580731046510407309877148395748017830176617071742819663898222146732515175371102121827977687247651296093104024071198627699229746006078851805633807014366658007265340195071656398572819267931756306193210074861415227116646474980409855119381110603611775909704490125235902273186747787792114540415141851104393245842866499742175741010763961031305564152894145045987711540273228705402369004686287143879730954840655629652128904213570302858353441828515374469901354614071666640826666985421637563200764665255996729922161187514743295286723436733983079376512070989713288466031674158628259710180976025022153712470784528058153664759127938613292080819975560263978400057995990505534824901593455668076815435401935363480866937484992767600335989098372841515518284466090695925986503105194930904324774807210795188766451403275073103675961035465311835309201473361384076305614057630475481854905756125640514861023664545487949390322170054542088060917495797506904423945521992519438624039441823878632222171139306153205905884876234406187175607630106798870870377050205194421914556917816086756193493148583394626495178811536538638160065603321475211964556757468160443989505809897909607585764067927088731572944506854027635788528482241140459062092166861515592368972065658224025110513913665436542634080631569220263277435737877914344604362972696965339036534306141786471529889755634429939802956897715724895272202593318821889740456655430729285559699826464412045983380543701593643892635226462432890386446931668831571684613323221346003449827618197839017932884229716151865150884677274978181358217989933324192815400882755840861765634565048262417615175359983395910684658964457903053078715623443417439991408156191913918357007133405552417202838393948895871297489767887400061294510691541517602350278843668145953303025348407851738147501244605965200573198356549051948998699502480356642604058896945913022975111805859830897876617254479261199405548497077009871985826711072699423410972731040251452254422408743599418320901666527829611460937792193362812488835050295791667944762116403749884064815344298708373300095796456015144967544635683804024398093892196341466037657534434236257471360172994302578429755332629266404251085145372090889786900413339852817389861014205519466635129603008495295966640025522591373447988465300791251285130963156114529198418151925474654928584233386928053516416348156063881076498352817330525080455299352368249544261663345900910365180627295914900374855996219804099376543487799001176477334436330593923653731071765769020720230716675557653954900535816935845129654591828358344880216355729617228369567099748182524666757148766612857192409830587620031652953257398688041643561211000815046609053508926560946082367575772292833175095560594535588576950914666878245641775096103533855848108786547324069775331745753636903753947790721469059074803068686732662686712391829180230549770001042580753610664533564266129702708155761739255671655151002724674109934999399890654569626259418127792838780060650713666074358829744213632291390127122188014529632065204536090093292952572487469492168549114771291207183762084938998418841213869521438053782650222515512198292677811887718037060772084114128006182063495711969426408224498283648851830761138616887634472401954138064184620119203893207550973254857539088999834708822403568429726026997977871987137079050149979317581074830235206874975200313452685693765551942090240631913502443311639551910622106602767944525395144281447117251037688363885518829471644900491487808878228810089224067622842570076042920425291771143778516605327558451470115370304980179025768905358907993821930598761737488391300862236319481274765022806749428214788980742344781083561869803164203344733591332399151504631437935418450844301914434605468099036595778467560903138471936327706000956253107788913382939744787986112979555499876230140917283992383187932720134934610683662591150846030438807593030824163704995567435144217618474133520092454128823596333212388925863902737234483902752429799015817488450884945721187820619176324379272599035503914744413710618429695903675520584741949526868322143395595767538941277516525407684485423881045425923112064016472215703729297845631319618900785211137095074962199589782754400740132086273078663101571735779935581251393232013410032668386896724601149847399302943611689493824758528182422970789128127131727528673275980238805893461895923293842865022448282315697372357114283166870865461183882965939932289460918859558427630720571795207390996860409914409685164584236206917105847364627922781507961960061675917708266722287262478417792918638756003605731431702971392307849057295734234463208555926435981148493599657236143937785708657876888509851302966817732958039114322900044910038668476758611378725329290617140560744902770696693627297471412441832228354391359595741201721770510422549066508640074248071817903513802374105778295984960348552869075681401437570713083306993828916350274668648717329419279840251114326478619242634195488900390083781617748537246784789773426686867194472029239482370023115224812050016366612007439343024397577857690630585427812813058683445552064485355794125570428241712968377941973569970129758068517216633702960777729370450955335057067367222093241696017381098767586358357851728710121530109177128847616622165496148910482938629374705637799994625105813258783377857730085075921935822835834810364868250912599828394736750070964538058993283667452187426320269376785590659030210936400249625557719891099359262792138745218253838627034922683747190261815014492322729695727896334303247526475245959595137283312253196288733649465611742659870195297310012614711829075426149251331612500494602477376801659262078629053882776207316991129357106031291803940693737990227932618586447457938701283697454605571172350495191112195062428158309853520625567045847957354618572877921381059457655939818373844038481933776082057260039781590541413593547776754496181770931093533276849839901151801687550039599845622105128391158393676686344749307985650376073648622665675618992405049846153136844938539220037176541485405995456071858083036201077089368038871070945873820560306639432265620222750689927333202057770019812178876842896720524054378751932782962089076172030235093726974918638712200575119217056748077139610342100888693657377500930825345116139656863553621007988923035143537326375150604747550572033389498979901319544681502616950688211625877332983844296986640812278688493927436250537797427420460494915460735360012411518999653696904225915861823599019723276109538521193628393363925020335479720125833987962546308342645655095788066635355698654794350827374649208015576383742461236547785096659978351795814258653110268308200392961826942124355677415124235120823463765100788010035049696896615812352984566175318851155914700304513767094406755982643744471216781235768660277991791196209277955319687077928205944106258433164482668465338427026885736621991753110013923409704377485340849447483078432171095689271043248995004717618516731191945669470336441996454940246234988197307943545995601558511428495620847539149189396003251929316427715058428618358727262638888431087195228579811297181683330705173329864670763864276848647696362034943212877155133588015107160357985396602397678728258247036284484125532474497357421584814374550891751024131224943076782721087570824127986313420791578717522621126265003156459874180701546178299719402716867190315840643477478538330000428254778189577418561335013856103962469315873526123489381588830956167089678204318377629428608246119066299420818392208205579279576032747020460144110848590245565482386295380882987915999628259275961208320962544906457688359034520493266556128910630373129234921529172945196985268928267675321446142815896008378910473082958330368864037136869091529048704145727164486649149073096775495263037900672806601432976676222165205181257389007371305124708265113701924561642315139819976510060529735517665765333370480852650312414736076974066146314607079787559571016409477327802888658605006922490467318585089621800371428869367502493533804814043386695766576798695870454519142605211555830708310516222842212990664811141092595187767882742486253863712260637553370784200001496606574906900083875952803739102494304594198229170451031801720077475033842430538876148880313818800208691536187781394299874513561060391779865635814355433771959043932699197461115006690673853473535042404587228567820341468778972872771199094359616523866848116370357765326043220389399144024612235553802746779634662907286216538470037180641410699382880558948015130943297137124205307713856970699154897451210190024476489607430142472017116379123675313071005113226568585228844479423470646151992681176316767903293955510584633352807067346130289763176084554287348315646748775007459806396826891280127528309897490826643181291209127418615218853763940456513167808569460434832719947293619601010998580981613594590095935350012954452507662919438814827261695444742825345996076941063387560821694079557928197864059870828853906827042916890578880827826261962521743079539450147904245543535250877632290050718848168040012306377473345077272386150098117776080129010202922686554198668151826725764799051018039098035555089012175421239581067970501641099122299515382686890786608133679755468167362133349288772112378506764888386109427354443903917355064501639151742679641633647110766537847973731747684991379097487969681342278755557454028494251568702422726342118224351432218068624024086737737467664302486134261895067526331070453633002991105592674892685542632012841198755095856638804212387556922283253413205520037012594363046876011581767551311378392473605483954660272963129872807860846876837824371804407987874889185590946493316849230503031634715880315550348394633697210238192436575288648427542696001142899598012845470899751014223614068917059846416912254197759729685590293223435359008090147433451667290145422680827374655224215480789274597266651102895186019018786562878281070413532467974545161230746263823275112950426460582226652913766761800235593118671725247790250375428677998837982738832251225550774875789876604158066751479421995916887862847466276577107083347393672325667920514537439431055876852190237693043458839672973034633027435915975182739634988107052937078902481058851067509544332465379085504616103971687416617012724196871011916862334480700597944519883382042991003086091563740748610817110168682731342420634927444222707877425384182350897982495856856582427992556643898369901575702570556176011556397235858046289201651367154994245625877778422162762691687425611322356665448502530418361242173730365912363008015925167735205885040052777867686028733169353559543129209460270005857750935585714855046653255007776113810880881908338096607153621479458018146182556327324898002126528236481416983161994175952616928735744184735507276646792510561947458785754257725494119813920494363636762694081080070142943819129359759768717540125944878748929966208302318304941994792913213111708061627196326708959269719904714637813002611150630258420961784813652632472945786686618309296372572335743046134836371333853600563516338618116229088266545826460417038224948710994035046898026158962694594816314406992749076608402796294163325237187514516452640055719057038440998809854596055436057365276829329893607577117399102800246063319928550701845137254938532395162631617214514927650389337887840349496485389349739982045239373292482318127190788376816049227851653119036166094390055851920361334860329266405405069151614757353260688374326691788063823319954802305436146458127599407176183076915059701820537659714513691766532816062808744129407840709119226164255570757764140478810473580291512193515997129392367326106379549285000206389525053602022258699597346890696487530086928068159135119423640718538700780748372481645462497451832945609796441835701421825000111833040404337843034048419583481250677406579543574622225349209351572011316325149502122403294373204166127263359185836430773330558713653432692578382721059819681930180643076338907655580962430512299639356550776295381769562652932350350418797562388823848418646226384068989574243377480188148241515892166162842452522738887384659786399685882515936867593637206949031398800322934149293666621654184491137428833915653722166164943944485035666741245087774378820226257810808174604400621257431534607094416277833257049093819055303345774342560411796687169495801527247190846704435259036223289269928235536833980517741854785637864701794910517533391485138640744818907154764102418049761193243614748534436778648964869302842008984590443656850968874346581483684349904495626761074664404156440735708383135024224752434001246274178539421067941604991171266504133047325722305272859011672211998076564105363019661604671234033939530753982955185150238520131458937290343429335342498702503114042862565281262657936105254632159282627665326834181069584716874462982249512100223760310541006424417394667633698667989023701527428632283127231174309353607574101413809011065889623835892692478643291587039627711745765758615696481251721032681625783480642074506599971379940688265645585286698682672642704151575624974700069846381651583017616573526691332345697147918352022398560696497595250427525976130471582710617887662794714518800320428478311321258700937814052960093865406459522757089643376527222051014626525706794322175807658652576035445369592084950708573578759111091841891644407106750848214598109525094946752273190125524832146667321405236654659760379841508331908714382168815474389686141147971485747560698814571471343238809221848075432022305519223288413090778002395020787196354948330233742782328639553554115794523346255667390118946636244078338203660416397791995207614809410437337632185006196413005745235921602668062463195170162599729676068198989351448387289779236961135169939135602872207323614974652610742954494352607712271123242104062373352787133465742942794244404268025483731442693476072346279816546855999400069956676474394544225049177765991224846331370363156533613767615688268378017245789023742961414161682396239820533744253113339412351023464445370249419546823716774103034998086613831989878057566513082681862153415000361734544502218229935319973479778685712610254664517076184587752577932770783511478129410756844975122280407772452725426509486744393403218806268402568929044751685899689925370824740191779920581476261341707786811321974543852196519911493851120851708558612242333796374251400558251457678495066587498118114656132042790504680440394321411517739883878669985000630217640015079816288312080936214485206313909904638658436263757771996061908503497963522561916483864917241698247363581608822960000148788129208411160597476451496286719293533369409817917129442702015761014447011835326639006241657717461121116313296100769107047064510393063367751776019919403370603992395905541381551382725487740708208480647711818528948225278483627326920683742447879766136954094282151831244533064183900279246176951379325325343874873934696971011227815156186150137235150105675367025053176376631203061241883258081798322896521527852968112005193109390125379919359241735820023674975633407560141332911191905651252110517032444693378922979444411433534453478861379326461462798248908276961683594137655412761691190261994421555910032247202735377282967703720210720816164917375679083519831184005383767920562206517426108904102855280497428176743802178189068072890313695909692040410467164752834334031268145166672981533279409921469447208485871148257574550543759298689396282895283213175825146915548156488918518730130140007878621488737769310936547712446049708862747234130887416038498954446499125119988240115990014716105222851412173299301762745174717495572395207656992078874274164743585522064262307190742885646965749887928786166850782134560365539271096873998776204277035128906991183168604429347748228243651418740676145025155108901436556790776645545806108033895493386947353123322190067485034903624680188952083319058803311261391809541608847846316399750904346760033996526665101305538488788172436960712351724821564093767080070187703703489254484304552612832101688718016328408990876951320738145066684189285503276197825022663815091428661818811697291180115997498024297339659515887061918187915654187973675719272351282700404679206684018576521078685345802287177636478412278667477252729662887780652109138840714378682865020583016961702631584199117713581854819026350955531138070091060223722110325452709807453355266149468788854964779402703948986937512065206829228878991821359901107411489786839240749617804193716231831088293482163695584739964358927859099515382439945735377141522109711733046225984383482973290943496596042838970777967610032916204518846230490666411382899488424291484297289438168873170839277754181044347603535520264453536330463702754934242862381222710038558109636143904685681470748675544916099722695444838700043576895171023286442648711194622834424627357267290962662597862368932661208868641864411744299930433843811689530540236792108282635359809037002601963096452577424177836803124355571002129127866963191155552455638620269706294553510077201864749462033773841222206118020917004924749557653607834920738701010871835070619165550471523812958353991114037094076804711406613364033700011916263101088036100095497502358000460106126234992086778991884123686073090940957030738901651150626591442010602849545846960150781472493264802193901115025985559002159979785585091123806117970071123615994084195626207378788786871646750985680976436904583214657747964110194172632233264557450665789151838231615870726801121481201750803120345952575167651528283884250368956193737484776342630625141210177750046475524439434517957928752755087986675681505823834888350414779531014267764330724371301709443255970017719938166260991347296762534384855247904500392321743574882190947335715331300570451693943439105578516555598657147742570530273257170150931370655223519329090833185269136083272562877718486938232907088963185869510294817188809407307427715683706736847324925011510292013841405706728439285751785542816863359902194972960349483273722410922065544306941558853890211713838422427766609920426697239781054341088035101288035894792450052747183545115485556183257108882980007965217033883014932274208533192771793523685780868235513031858634600962693246085292616946715452442425266177824813574671001179198215252222646123645274967179081764188216316029207558950361879503983036306324920336224128268553609848363350358742466779134222365319174314102649305299148325818227032066390331877268614745141364634212219526129343488421211201245267835072588148175953946412253389558572724138462031746432667249163614192220470979401404441220512790930060870217386268694304379143277546206295637884675163030414565594414903935015768800574669258362317197031926968386638001404604479741958106927486286830207710223462066385415499662967088194209943158085348314903762588872869183182704633164760771798516477577349568982207045352771692433334886755444377387876837289379140176239395335926016184134372196866729287948789773512950821605428358058030332043743931278470673679074962545643330479957466820291638563911204708435184894848734885639712416422676140751975594542648028120933074575447437573985392028815439201534927302786470459329345111867141154210719950367676290017693756679878958195554422116759139948483731032058869277388050513441906297556983325949926901142537342073198568045919730983935479353509627767345062220424057492545323602226719075439500555869811726411555937201246295250516495356895441196139506853839103531056822853797854501534687804179671421314221834323782094592973482692242683116724681805487373131797883863708967065562223906276790742895818713578758055785440368400400763070428257767513270534925061665368742279491568048001569285410534101929329535187460641312965983632124770906674511892538096502540779008573440288470995032975797423885222698249189537057746322320440545693749488266892667689145955119776339304365207665094710739713299908985944322926904522740928246748911585542949683244741682913337241906407049793314239408209315900937889672434103091872798804787540198047676623802333441427983974222445997142843599173970270706352792625617148817621488774973687544102308912905123756943544790598621493432854364704154772980135635562589939196016019554639321263870780167596986041522489606316772698794436975965987204513049971766080322265147590367945537253367524596121959451155568242196477829260151903897067956872692473528862357708381094614024721404074995210706068730816465589100909984298735804264569669094552599310647287575328872445844118834102863822657054373865600659811171496998971989488454427544193640285521006123889880181911765062324136309813992428105227265851581582974968619710659922995998750297299171893483626510887027824455979089924849601496199388083999665987295496610703939893218844775966853204498534647106627332665808687485734981533326830026219360469382441761598147975865641002020482645707140849377475162927300522801900726261789171292198849266947455256709629019654841460604938041233211967465474010210670045272138454875448568169461844835344386198587968468921859391559894246870153601358280434568064636791086496797993013501059733464509811418088602557725878541801188175877768705334063738743153684172801139705760067607553835394482367097992762297280637128668970922456919574376325116576052600080173823384337550885509479463835183847064330602900949346809503309104946194173236670249532412647823878167275529824943405997341388476950518771996551764004878495821555486706756396970865681261348019093789673298889092280244158479942546814258525348218307163275156437042026165284412562818740418463856602093841101032676784994407096499723347530659925430938517098658099108455339392435465152457578776668750171593955292504701227077374401281437576966726137044700943580954161171976749343641784594696989836314092866228502465918861653600415149443012829600821270951494049456764256880649778881804778137858363641312650858476802509857164878521825559567552671820187238505902632009843960389724319113075092009743432759460195279934619235588516477961407535601570393354066418490892090715309510201812818459982485233702756662543043971947594612291782241352148857042973857043315143316297325222156023066326821747060856035144060403622648954023035651874308947293967217403825631602780366881836442951655188019526948333298077218654712561377045128202128222584137847853034161209964976939393226864874638085889711659430446056863104525426766830789427734052092217456734401138868547402488932370899624818386192626814767603030352361640319668997624326710259009825120372475839541416241874169862540911544883241532556703423927504473484494362816402751754612361605061115638327503042309954151843076146668390912981059567004505523382864179581661195069523621367501526535025389852791048044889894604531283980191502792946753790705033300623557029440134251137284048407212655935021464757176191895720758845111059406809570480055016448859860413381237330580580331092011072852512732377408404199627432819120364161704874816951876658110661164500235227916808820439709049708051592728413296161058991987618312813005988610259108992994549871073060571662615639383722750683753990641913367443369600968171249654424825763998326728580438146605160227877357338793059838586527457025320284300510806162386141865122785879091607821708555888540898847642831617490448854822898109155745473164344170068228625358862576495245435504718696360649243586022137578461161978130557083931129539297912492116724239448667355517680904353851236900806379276059391566303661223834255954086717407565934701324654013716203691857227125463416436306934498143987687240617818571016283887197523812801314520279314011004878153373875031306810662125815735110061572787364565292993351013591090744558719428342876705555311325202692002929552160573340729495035493734997979756033786150076990720587633118485473074502635635253344283349152121588220758745507358782955133025623015832120681752611334325893519179645659742151603535515225625936590964441319303394589437195976584387499403387368599298343001990107995611732209564378995926066884325110171704074572351015331077391771126025266707373212132934731402289587593219760794468315257503982675513438490034470708038171302258854855190526845955525554866662891107542488621586008211261999782973927514519422577959209720976455905154646284610102639133816209588227537996276413123377925337131878932141685972855355015943065303218194909995590432948080516862406275820788230042485828246404138585728357756176962201882398882368360312398626127770913980350598007298354347594220071868366658095322454436627490089063725623112171199760787349493783878541385543575312355580407426833688882453754903423069613340411178922233057230589665075424542476560885627360352579801929439955738299307303427620568069114901473398475761716672557209235585707161858865054007199078243957469721381402573196319966625334963287057611991699085182572628426316264664053992213226314588907165384537652374434588285086338626599588667522006763401905025208525156708238543202929431977237025432888189007588861168460566638750692626277357275421186906132468645916753265675531597756707896517861236129429313076100111613969636966095929162644026931832632546795531666605715648280468569979134834586148131403992949170497670685709907295940957568581778232697934512675429541838051924162892681177132983831514201835418365785688570158821630476711143707102175149588171694629791214926904266965879665682134416524934458780659632761185312953453855056976099079956447294262012859516667025537106169384575798190520737075413359140713581642151705865530437533869956660413910811680034161118305202610933794601078103835920557019132941833645283717320053310438826615237161062757341442990183874351287341747775626025788126129985396842655813574540203376833113789377584653577871342934671338233398546939606623693341444939185187566017001164362904742221033846396833396225423562028763571428399679917157131885336712543201590037152295067239493440746813919443544972400435496861539737375785725297676807892602991339635212873929667077392768697547092929046577808804612267615075388513593482562696337361070221694841557947375913707578643673989614875056238026355459893597980279530485524639006415035250123709672255492877589266418620170886503823623023661243434652039436897077008385384601594750104944519502876831614142855889352612454337092817315175738432652004648113457330766836010969171435834132111171623288817114282817197875193869163807347804431952425579219991972434290530569557456565278244863456319432444649273174350874652457164126429331313100372990095573857902817066641907370125649220008752975956512815542099779297279227238756587846588514280289319256580844386084796008186993695883825057464561797553330613514068251030210257420854391576280183053400403227034142934062588046228100275931605750142688997437307894377684266328296530657112439162167549244942564659403056605428152847043959096437725056147368847494886660399910220098085789888558694254271515007747089281592895492182183845692747255688280940296480258294491740476747462271623326673088887782314017165034113786381168348425905562190714725313610650476775055550433913359572983647058278085611190980568634254915084146580913963955218509300718868568881930700953236509735202491126968041106671193966026228312978346408318781222381215170535154679387562266904781718876676853952617826977970159333003662718232746030662222922820721546249045808514803223965154590733864247131807160557775822470748598612107054251753760348592693155998974703445602607084182621516892320992149618985746115988488161813926180291625952071473298697301041265796302214612794851708920972241694146142310254810734356852324355616505763392444424846044085600430981238034777555849771941099972901468974839524639347429552283201864479310594022600531435645626884403716147502883040704197035962554626204826349107982976116768093244083989982759880862778873674558724354260057703921596391461406421811535836116029555749185890075226867078884224180687378950962891686104906878276360193582358354250631562735755192555645935567284201878499541000971102359648560684115014294309332632876830929487633029817448397823468143469369994531345467294992535867689080820464774487590452657280831781647270883057422816687039878205334656031696359475540975846614970623929766756687923243924285087608279924810332300039372564248256416124733867439762607428690528541229703539516021071285054205541942393529268758339629749585106583301424637502142850980321583825326170819166339788893674458382868866176843348777055199302424318582547071072205754282565313434663411887298373108746819398471365789816651820982721686734068052052400383656552286359441200407307600979553606797625955229393893543350617716032677886032210710977249357999428041959415893715097034833801361897713235388241358834021671313362104945917356988588236137117080683386875250243842573179544625659530784165499888020405435317628207889321590249145143749007006348537036622468228321012494861771826965810937613028850911594272669533260354976299756530654367664352157854939752513854284980073123362349844164252831364266080403106937220424695306008124758767645951792682040892458616808768802736027168513442296937524040042422480241565660297763238291590825908320445889168140725717109862640302087002254749826500398818663712370292400421686894829780730361395899252797661690996819117541659064434697786422577270063738866109157140022379161075047840182116176654681313756168772769128824209705375107453490285414562984678017732619908075166202132550265619140111411678351899595409795724531391713091929415239896104384112102153941849169021197440859718781484753200832808116679087023313266208099075231146891513572080597747168077308656419449971409914790487720799157550499706498586245368596958183107473057179368346329990570998631294718646563876080815590787923474328143486451947016402386475393655069625104857878714317104839074482334791516593111230905600411891519350942160422625502316992251202080005106446023559942993962404084942172234839961122878620393519810657467931266533026404786577622994629072110696700343528542232870383121047990489325023046829369720843416973113385775196863850611203591618204018784316089615929181347328780755056221825004946528005207822229493322518933116823006589102711367945950300243195465737603906491418680220623677613058924099909970626624063494164699066530089828577701492381510234374552252975111778903679507774531816051476776717424059071231204261286462176661271796626228008834899631500892579745691928561323349758214507564987984555923106765789460199218834218795857415711024730571130148013246176672328817931683193325419164415133461640867656328039744652682178455952586622358995442680084792900776871334433061393163076949096983901980784770788406578596611692065997354692318391439344772784992110444089950267494800045430330757121927471934617663581567895419047596903013757480938026573411808553366188402116049844187564637731362807114533365980469912851031411349911306484314725478244032154536813871734697524253632893163507283931752680697653237126530678442105671932080963120365656917677742668590577936232929682447966346652576837657947551091364072369072885990881826515518656826637158146185885857171399181145784000716160781240446957271630031825169986406630290334035565262059234673494260908120452821613088799573390789547576988513799120386752028449394935029918455142268284771708175431538562437105176682023704053289204142247880304481436474126697614153664452802073034559218277406758965131996200223263972004454826427288718746569040818531130151351598089714330446776751309508071114474597134039732977206013555492638279927882062233999379756246839677800672456908892730145310761143883503215025678844754887857081333577580075678996085061359344105501664608553218672468590997918895618219488906261371408475368675730358003291501590761389047899682216779664831693038813036671688348824457086828289182847211038844730067014782426433359848119843955545433832974439294837249494107004480671506640863249739584972961691565947337910420417605242277785455140962531025743023923596943479688875418891842947821920198943963825670369010031670847401504881376231403443468117490685619324066546124714286441262228897189954886762212288261328881612986644513658519223342475031328429940425905380700589721914706557387014801225004233170828372449002448433114319691392347276236937510571679754577321516252069885403638207026398986808640442422888970824009268424286579860937577208422782726979365202600557829981530266339686827924173108508239833541670852432458137875511563603748959806715336556786713747635945437014604479854186369244271653898889611848176136343838225370752728284354914553627320742305763320574350579762555686259789553891512664437450616568403290263355846191757286278537079986117233087588289729047547201501193414439700248729761705468817949628862408860135376547766680560437066871001427992024536395396817098500318129640330001637991845092031434515340795012103591852321671708045843313283394477017361112511485244690912072736570985536518721277332241721644783161514238713845593584103409624202648505255862927124856033874558089494360826004338294974482092533697697600993377490415576187858996209081445626390651913650433327241201144468739599729625664197476131659230118484974889868116262638032442214013367912324326346592408871400221455109288245975787324404817529888479129318482153366898396508638872450960783870003565173446914293882262176193359134951282734591851217106184400867699010759897522039761106021304491938042619548763448540824898925300471490275445499217547530887748264582161820072212208688556716105807244377347786994373379341217121378809419025577516939820640241388655998996032165268536135816447309215767377827383052017714753769677186320165180725375929450412980087195569646364806745276585288260395925819809728890410832176240783342233949888741204924879223622001584911251551997895314394066584574471552603354445206032413267350501363141768110692593499559589201462837181601951618503074384424467966365471372477721137807408272282310932099948980344875374147060901583657499678323382527340601963132341236626728128510936427054844416433288670446268614466372977849731731899168199386743673030050530695034901830537805668302272603720695651532163389130542964090754035579288770023891588841715952174081611062159913128843347312069327889712223031303621521750323770387040129624566485453666890383973080451471322264272838988346967784580678069599881018070832810031910356348470336861844975100788956764210498187140061606331452870718969984948192442187087745689668972582063619563885141646417845796629778902406968251503908217522196793818032722557026292354101264997096701772769150847134677201134845957107068074747416052768345902746288933816678675219419141536384169697735023935616702638586286844102553907725908678387728134374472981738234884751268711593595120861823283778634072009904733204684181196191788372270571772259215315126599400384652430521067537995061347378898443755477916641218113076447029772046733841489212843579295482724294426147966616130303936596055612819128789061189378172490535055453404733216779271296214041150159405805589571214635883660164909508144368759798999020790101530603203932483979057111110132533904132973452952795295457310935604327930204840292082746003945165266536399462600243137967127930551568892664844058676771490125606580826164683868326538199371900667468943220544596089684676438696754516402146284318282221743768007057198109954442041202669153516958041722311095160269358674215502929157455233713221497880462288001951895385195818393558263495899337645098924796976208041357049834570227091023820006730581167939543113590549587093752529201044969182179799750620911912292468303814717538705661758080802670086512860068360149450200174353930429325148006206761670578593203747631475487647352625370992567058916623339696171765415065414048314356211219680640881701759911716261340390164088684073468104940692741589131444579786787453436000617084119248079404288817774078500806080496957993602284217826585830460448908447149390671775242658173336699435139210840740176981451044044520781314588406564113974182204754967436324380286857042224650284930079637406643998269995917731321683941881843445522803604752339467562397475516950338435174530683408440449105547423127123689535463783612884357574293801851119234425780287014282374296857381769324313666825415036998153976349510775474242420727028814835057797211787516966625719772069433456648186866859256501313639758964003525097806332821518360947381747471480219524454070843662144327828142849959503113458567376563737705421763455218512877072932282389131909171133750474571268631577526220142874798980610641249031347343784484674730577250593134985916998581856265868984723478250905090011204815668193526568522619410534187416148826278396864637250738171338441425157561148538109395859868459113745093795797782193521050622574886960896575943348039494992992665971144886399269824116616686481901770754092932281998322874394050151908906926562271042391352413743221368688545088121507220468582657374519815262083510735011120426472091851809976067974974105790613153825002478060354543061652377346412192884685361046566666289036706311963296049899865046808785490272916244315967483042670254421283950863759954908522618569632384083163154103512232264855300673177440998165620945860226477948949922643295625370356304871145271238035714229322420995644047556724769926667856068136706268010082885871996985114192565212769545756278350350813468943446222280123234627925696593134433652786782438986276437842441576554751087833149709113283808035053580727326628423799441753388718048655264394279894743676052334597730934076093949962166031352375794478551206903332844472620263183470520978708409504708258292004662965059271052262261226012593936067451548663063892083775107564463026213992228222319825297910012846890031555147254209918832497529329358838313006507027410852048583561719585771425112542558642567917074527953684600051960540831737307815065620566749187670152504311132205803532442083993183892817849571372048893455444851529227357967613307306851568132359404363210914394287465130217923951529812640061748538751640488763842378516529061326145878837009976066959236410579223834828104992280403937653886473455993004191166343068550331064038899713618098136446983665527354097140979358138065867320113853547547131015025989361193421524039365852193801006414035027712533783810679083138200582294663112722945288563517978337817687957756171089834200759915776275746861045635364098433660620939586500821864508470752750338040317815166136415896108281741360262517700443474629747700608380234233972929650499639939433514822035994223638762095833212251394644553040862767100001387497748158878910550618845051520158336567544880932213120400982151347536044342417426100394394045127577546394967353474845564829290977425816673729805526621255684668554528414765361793789082871480123168844075530918805694804837178490088324846913513048639878126715880376013257190699085392219202296416147055337147814620294509954019540038458968196998461092625074854318106687574475023173671741154468836249383932198947220591087948509399194980762328091947420579927333453662900547092220990418097153242919923555917678193243194592106415864161416273578245254488910228781114505097839613649038753904911418416781015614809447040638219149579557825741491788311484745644173247663409286251529313551900309218206285885850053764488995964581128023933361430040487629773290507507079426394372991779309549992851883361617374909895009121282118996745471960775128582205007327984178325042061734894572781077131507130903929796774765779560541259428928829072451556537212752283510809104673343270617107714045686984620645548043820358020956282161532434590136848080787013901770858996695027278140032818811269863735366307510539445809706707195834663741727644772967078433970352037504524541321496871422961345655104019223166455608651892525599196779853782953632234323003949994566261382895711807096792290093696621964721882562856958423354793572861443684758794434266451745859556974390366043616997152733248587757217987728129802389215259417582077523792987840581461831722725416560966172568067084919318169981352030646031716581002875612358868595499616362311586244729532936610143183581091714487293766902454408602192678163604574832853790774832565106945413792245294449069763175387092628361286867940440908118553308612948783244983763179169951705567873535999835445304678323327120243636434644427040816275687382022144947103741708784109307984987099867101656747809073598143631040747982221874026020555959450402328747573922457688233908872936352871496835754109638963350760900848914726028994623898052655926221373215772767262414707759607219724144230994512036429222876306741999594531873294826262071211066315067454748413367683427077447667557600798566371527999632196052310579172707633341275623009086620383434287563636453821154540017606213098191787945487422708597431671181329509001191936015665544539799760415587800342382464896403242338665516484513552577409701177842783546470354599802785961450612235227643650398487375891693207384123503526004453932981430415508330950356671132372363172152405802485540321471674606691124920888524379614898035107614219263042697820098338131208266118673095552683703781448773202244237509308093020308242021287114685893056135827071083416294241030060826103926012937330542137836522699310530445435710536351258564073078422446501866110619480325928235637549860950763626253502836073863156177013481206283322881693231127341710684940296483915848297286000155801850884434679201266190661740702214140469452735906846685720590700147907380175092139351169067571883967525776779030563997078485719873311506130475085986379629233386541785272233020729507283570576288105859379200020786351759557987105557899865858328082255555418578711763413994523351967282193414461090744522584476082735862279868595929957157164499162781931476650814361195175726057508220684558841929115152703697895581778446239630418847606121215509410753457457123070101432285116277378478225876478449606523185883595934570814441891718949559117485312120875650052710149605598963147311641176904692565811067330469989914766354239673861643708811885267216629613302917848440989360559032851358018661012808785165713934494845568808954534169484450416646555715040213036957136022413059110514889130795192979676894945679061421523927259605887057822457251177463090727088224996997971225641598762148670303630613510384644250985948239638626845997300225033809362244261362686422310797121379440919428013340018735010883510916202167231147844387363709306154318554471024641362754707995557594103440022693230317942042044489091284684561748157937758628993805588627238508219413478543379666841557443743457779837429344748170651701868551361864005424710623324916886488777925790222474838793278187706114123296029428183042835801633327872772195514448047655359749456072821008061159618353598584694469384301431354667156287533727818915968298131421169615720301203686670805284012275199674024448708849052162428777983411728875406482855044655292041709735016019088998698767571254145438388252261328106452318476654647105562116335564769635458952808723250349547812518425041650659237087243590448597195319638579374384656646304053865799842698767190188080323548893790307418248107605812988491640677914464055175567813898727711971382591938529751083689688023139591997344625219795581237015837405143157610957166062867500072144774653397890608918224352445503324497153722813029027453104003134213742745595401695550864658183456183717573410946767348330601543829515158603794318205633855705323976812591472048904214851149032920083631798492036190517269624345007494886754293861200209791776616462561690779726583126580477786736724872927307103550543755732001192905999451669589345733979868906481185688658953100579188299142536040335216979297766060943646387997581068934299090391428555806469289764837411576229012530024293737506234444753073744809409321055648072996618110776175908986121617959607195915298098550329300523972225342310952787422960289007323279258920312283357746275993910079079411435206232865745252278951527907440631901161221521043946221080552692761634447681914849196076049378715448847151689805727661093604562348635261263187213198796682726979702810868899713065152985863934522496519056955053605237826789681631103172961281450276856519270965293769280377083673383850092966440212059415595848203468307924645290018171211813937195619599008179257477645377060479045207819998125737421505816887855806583419530179222882339283820799357992653029035070763099480698719716102067833970217317816428801761276256200428432183708481677802082864599287610436932947314631909056133761408162574003564980777429004386050640977564535827496154981422111118830448555456586504307009140468755872656427284995640036691655683193062994268349007355359269937869031611279686577634940295884734528626684597806112454755607717843544761188458451443061028704279797356523281792216254499209957891451187350614497620102291488035010241413799505316147188285992880179218225635479621028456534735034022967672630220269385066056158156208386156606447565891114164120439400616747786453076669138313753261750577756369809962175750970176552225778323058384947310820839380822923819937976393814678376518548741419767339883450131012813931546513446418941099657637149730088077418245064827039640681762032125274611922674745204938585956790513641590301834895513096921819354103035026247591718296229944250054797312659973364027784013192459878013439573434744046938423503896525680779639752724333373756841077465723117378000045990163897353001523142145732660823603970433120202027953709846780171526441267825489088384205683887410097859730850345922468875659221054414076922529717427674579522210246119884656751022201958927880785690493509110086036851300647516168429224439288268680075585669040534293449104097650073674492565455503079213715743342403626686980223880271115296133325823467305608152418286437235617056336631157878346431682110965889872628575285015410631184880477023392270744417812640222187400083536286420261660824649611978572631266035792968870042870555342097637479393792014698223785785920874640175323819943020625299686719894302022250332659727321435746004775717303265225902030241551617790283057451050459457159271029358525539580853426497418677465744336509451599972140115289801869661147446580749251437691395226956155295690068283989778889225146003458886276038249736543277733872066761634852768735628646617550312974763394133808542378037185368811003543795814868097543697936741030213135760422739321227888158305001557564275129011864865456138970888436483709263202860246153422517626592893817440384112679019049496663066662183232913673250099869811022356752745036653114634943893141337688540557203719031762583206545538091515825311592766550234602095017391370040082966742719944992309470744838494788247563984830652165147768969573862133684510101884396164870161656892570933359546046771845657897137677520042637030308590858694978974028319319079122703496801934073349085864084402272556238595979329189212725707615708507408921553620628547581185874919392988336449863766402294164872130446175915399146074853430224838970013781812840041495199035769472030107039903536835137992629929011499085505005954113217905071444891402262465372185215246286849884149668436838599456039756104461440760627963910592198700904970725103941633312725218572259730763549829679127811738005819757792313490566020736938384004108473984034196803653260386237119761290518057934728418161261990593456635390325595766928882071641380835656794658573436703601917017150973242247093620550483464455635590384201564098774371552277199422112826846506632665817458937727863425034100225507545411511834571038279475529091297723275368366110494881453138567082327862381323721871694636793241993549458600755221478672276756140110771867468307490406860546503462026209453038673353154956207181594799048686520295953772016815854261914154877081481849477421304119237778405956326728272426351901983050552398345741073425085308355497447378387312696591828734962873362981368423947156948520286974635518114593945232350014826624914568669936904588398953225187483731002999665679520823133222463966758291551631168845422373144488718554645748498863879966853769649948463906957114675055945978316758980843805866976075646720261760230756585623211691978958885948622079692983254778082401454524352969029260547771893232468014293325897373787919667778593890320556826100325428938891994514201422462824314740885145302174630102426647514402477833796244529989647639132847785543500758701412248758921598369166891665346179256292309215799606189533257829930914773836749316215920267977523568153405395313595289375458808434869646926389264495318312020661523827468804503872795378506696622370327103653365843235215022415261346518772951060893891088614933452496922378064544568209224233589617310009194352851405199325322136769671048338023757222236300853020952015224789175881313816325145001786954288890096083457549301562525916180860030743178655340453886060376401606701228155814096334411162052103980685106126801381995962662021032281109674972712021236449964455162311487241896383105139808379943173652298412983856915224784369334158995665779956194151700571633905315597815828805057633352108350905813835443524246519637328939464815156989392743657025444906243663795880439785784030342367258331192603647786785733799580281708077293524829279602152850484111496975320693162265008726482039716083611083645228271118125572938104725054275927038717659378968651170609883262868166135606229764776897507990196731231050166467642821998307870494550139350608605549201017156494956421163562892730028647708188230119054962072746392468400492064155531433557784641457366712255350582032367401178794105792868683077805100526628646713150814914742484326632923134233122223787413105925299061353804022500647747867034071250700287762963524203535822200913413574518272813164311665932219725967468176121767279047041346729105603117060750674475370570259873988317084278007183686285843110790288830359884741288421578569962045209711831184873503132577718488290444812863941018639017960276606805989821968673637347180699573928794485580789394776900400912802633723615964562757791701419237872392015392888220351779924654806456464493330751790006040070195523906611416409670292515849333239105623225625205744399895131560051384909510505484460227187250622980628246056379616432585910478243001324568026582329955667265210766563936947343101780971631970287092823548953527344792733630681685433381256652847520597615040380811903215462738329522608550154298877222328198461267983750305577582351280979548954210230020812793691787665396988895236773187633765374809524421544293636853214625629207154488287083324405740461047149359174328449823390306091657591316589183055541185829413092041535866279116015075054591245146345196263224693861996393498835937882024393838614764888204169375726662948456303660396699736515363465572222961546889805299342267048717017981950532221009968270141721809359224720724062060087265681272083043717453002203211244272653400089481476169205440226674038439754978822871015610827670836780123073749338291151041762689012697784129514837288897863208218795637076421965872501156519321515494774685011130590524541014545530212796765960293703565021954606497010103930736416279627287091589601725332391416423245571523188827236900222553489428671894527203790606492566075126682673569873875458091705346639715102966233369673394507430636553330691344857196516867771515741438425489006422578590982559637611108281835548255604919166003250296976203981681196649874248377854969511817408288156404956486357399403538120542962491826802872927666611050814623043275608913276593473561205042010717913852047935887466177014425434132897167108596995233071752223354808754729207907065931915366736703690483160397957613894585070504041778217865112163781763890344795731220402041578991147088232091429317807389365600419334284102233081448207938494409789133659190260350968992478657085533847022212834270315492381468925962022612498658289824741019752135286752666681047605726326736439724161293762423640702364750421894783010953276366989621842135839623427536922753866058724530781289382742077393893933609784857349298302736586853663302974346223326937813046359355987512830387473908855188420533832642895073772959849461611765965399573876961056494323179946925813562644928389211181260748371128360182681129189691696422171111042553672326293852016668499158640118175952888741634347077504098482422059236532419268911823629466638082283045691426145262542102276749106637271348862066085295581507536629206291086908488126070192694188816044271308217404903109998355743227335639873085162366562746318677717058672455898933590012107908153797764321166747508151491532714418427504235333958251593739472519010961755297708641879157650252815808130131765464591797038469273495804818447285636252400559904170288087815312333873312708343059896939276153993158047440806571450951494394011411269941446150810755022677141353034772913474198021955290299645959956514757292606057855548836918959889313471605370307977352855732491629165809419439319653608578804579499612947091220022566708051540714250150511757164778704367373264170970424109828905246509291692933152436578516359349598285278978461989008862892324774627571023953440459002533077926721196331492359562907911598889710533016575383796123678794294347286304416592560099687676284271438948262404891390892447954604527067972470107192794159605633644936185801293097224622845519812412484692969207503614160570655880784118612661153999675246015434083157560191497473384798546976353453835207836576954709389816261516683323790373298649576822242266886634344150854693138000418632116879223387232388461009596239393575539183454448788017532088324612049868816475514677299053673964973434276331522099766984148062465562713658802356183328446399894421157952014550933864116725844684117210750455780741151739747422311078141597298304641295494565872761921168148091192523892469528858540474497140390441420599122996985682543374706275924941655188775118157462323025358875733935338178576219484839937702871631642021119333864626645729349120474287661919875644667367749812079743837622983972356527270263588977226656067707606542692830013112526170956207915756022927717264772858399227687712305214856336857541304089327988900155787752496778057758657381390641439427695832155406850733918733994342161877141841209342393848451091339996049625243953114560323227053556789382125054329385445938399824272705408254172836310948295779353721793567890286606090314395628714941083743834274510133200053264368044721848975211686185285441147588168683663896629832857516258494097771915047495504550053557826470665124192378593858782386288073242369635324148918034044738774699973004536404403131167217443527696721556708736586112706368208714694347660741384501230964666706066953790973370632038554605162459618631195178452188932991680381979536068307582865020868228351172442721141356938371340799122009453351876277503262098372622722545775910578955054093067216555688299921754661390475196485220239015419817128628489330827663010925055320282626165652681684392109804575540137322426270828034205557077258948895032172506912485074852810864623079199979871273597721204402676896687682074607044328886077149154619062466056947575560711254868109702541260139481792268167276540882435914876139833175755724754862730607866648224532807488330520858623237329941759014773348824874517509509528500736982941588578507437620637274723090059983804386281664968007098417797465371195124313278163525288606833975928081170641501307829167556679857676240209977566267936581649429432012705473401711914260778924405891236878424374415715964881934633434341825194200960128616181236286509798758293319047755558887618173288120804873165733173442163186093786624890237450727321348231774224639599187754239899775121116340715114980939028456303434752390947516325249988184586266371402244300384734582004747583522668616564501497343472133099539760406422952289545377829660475609937592019624907631370776777905890922567007009512530913056445214375513608706861102849716402333824415485241143618366326550259140058057772287454236253386111728144804838979893648604397793767038730414446300572595141399513842850527167308752506374485901122062588586597295377927530199265061181611266305612598176142882582878863402869999919494145838365999651972590355717011725713035992582538502653990548584188080328651546835266666918241215306199762282778862655009871020572231891195810689552181810514631167699867058979137247261440910062647240466771426142291165849989872473933048090182403225966672618591980213611980658682735097759745796760408593124361306370201809147822588418300384055042933362744858525198767714686158284887644693270322523766193516563715967456222517532662076920439455020031937633787248105588610526337205495273885361633808113971959606978889949807365460607772292046394901775688434524384736935237558001021202919669492929473286191039073752442322711162632302021037018724053698041896304942331326800008155826896875630318945306101725399083652664680852508889078321108974823885189514098149590608727995555873359579636129138256243252965282282934769380844609428624025833964421689563276991835654115140508291125156068380740581198951865722587050453113736835950373367000984766478575374491217325353962107777179620366723932010595155754886787635062954549043052889172799762511422154636932390160492561062692600534158378019552440231842601502923561802119179972392977357631944782520579710570934094669124820634213909237480944153962189808989910642434110735563713840244128174379405309867574846425440792102348956159889154736737713497298896871761701360346651836018707115386559790886876075860388020826981471868149537879102009140174337760746693818716966561125748592404388658745058211621363435763381077344990192694062010462882128631224410472821375116305920595506796666335893248897659295517699484524646119307247105822950289267868033840821638272994178162756637513718581635114311647895849577150267166028780173975181750435210197857100874791895569812458773601154947073142958265741837330666178736890087992749871483317242173673519522119341632936406101784672050038068582040839075207565946577507476005504452394115341843598054211090418506726273877652679008205356048091259321512368070500944079895261928704001322424792246520154958416974781013361806081968278896295808387818260649234889436348295646724013496496421428738802965907075303731895737247510788711594713574352081666032564569079873696776980783865855709369709016270372727643065097414477540825016903146644610889236570261078427072979036987695832100407873689341751483895694904467018648315148887687816868340209486643956073273633413925636013337255952955284397670669611095877729550099910045980350982373649960727976275002776458514852993544815755870695948377937664469883874125002909196476479558721575870630393492670691293887420763762203586924193785234593571492714731153013743229818223266690093753692694969799851691722087184912699520620690115273232862767447796647630440595566946526153178608740655350996881948606915940269641056662245301019336100378492960997639113790573239344077057382500555550554873292298947446341380058861527849750701572279037667375893554033218246488266125503415995750662506087393496117372425686828059081769490364937906976711176722840293343441912858060474956027139111697745751600565480272768685372850938737864544060452714751411877290602943583735247581750642704886852680330086815010182907991284240245026757362739181148746322296658675045586519770725991197842511435791087506192376753190289649879100336614588838756396413767992109050033067929171049565846209087181783653931767014218658969038063552177065843618815956443807611755829413118768747770743499978059341576005147277850996194278042163730149709118283240167533950910607797498103027864557515181214791691131433074964793890505934753742056006876138942597752381530748299108930808313658257909461689414334590352265429000204586392339811318537828655806043656239158714725890394666183043090092400307693168462444441328288954429866426207108541276664207477996803690063842706982305524815147356604624093374531545629469481690685182687521574646646223040053899596532569446771871355401992798547158216978111445014319204920449401848352028587294500097152445803476932044722279754410655173387632508038437757044197231059719810893237336922311058843993204605330475600106534010318114764624416749177954368272501313166673437785501771404941245188305004678582786938020848431443162656507916105876895666049056284496033208241193062670877181816976407682843645687457059350300479045783057352675990039272897257846260936710384154244666811354676894880055754461396951255673367723164583052342605163760187328474781620539156434150814981920841682541803655652939416772161216790567282515151811723996429169178089057626227426186785324044626327576570448150711101293945047724071031123554790915347176200847215262105596831119105285568868641415732697254029277298404925728207372665990130501592783208646358505540340990102232078011904692181694770278618142348787326790565179069526900796760746401328986193518783389389431254958098279796157602373621421588958677612306819958073058649018987421022204463970747682364509036625999765040541888649928910130908799389224829074762510513312303188382596225230817848137574254255627560442409931928633930664437791139232306979701773561941056379258814797726177235712814789996998968629130329915593585414315448393085238027557448132219641953260921155458085395633813149276141627160246241524243592998958619614847660609419884864321145402602680905093533641867786146952615317223926213451355088109559828703027503735073681000943159379300281467182358591284447929605885296683815378586551121898047905223539891027293970814208359142585437606163554450310034316039921314733465476391971134050285282307334887271556670004001877726886694794200683282846338700668074407203367356663038134379907913164138258133751974740562797452647033729478557351797105163852637325514327499849758642009554809530698260561285340266991776380192050613668529695406789696325598883916369378936645403457531617609944471608105650781960548938616174787969058646385721723815196582177835082036526320927379268224629257242578360341110844910578973876302906911291665768667392658017221221285042367732052635097672448629081045946007633788172204144306080270123505457447384855399711742545715447552008912443794645261995504893537549547670174113999845871616522245825387941519794675195732343687844616419685025561176019277941272259847871602344145352087964456665210620918473631084534597127649994805094787204103335321141670305062813460188821109558731311380897784554615408949260690006184932410503791276702090325963466263853389319500267560535099419675229268976828821329718230970644822410562350969824390915853972787266054528157018657408413781080783534350398193862917278517894336002464169300329744140358433986503605239582037683698936653390351335711158999186460723341659005531457893955584363571655492695413878135154545931631881041616578571370864279179785077857993176359816476514677387296676422161157881182973926675694520897433754265549870487646541376645974257495773879153707763922608481646254525905026433618062706522577295449052634922457160423281604365298382588532052721759892267270115204350977481800451820336256619111564595761113030604264743141287666736991146200888851265056510558438121336186704321853494689579549314753395164702801041314501671770793303304807305056308045949447837106818840083659095345357537239780087082536346498656839476716868645072482001292627073836349439872936746787878117710964294328135368052398180715460278008832038148880356078465971074963573763693109916210159692971766875863004029870436320732569399103546491683824240821877877455884362506633856030302809966446101276965118489118987991657073123131148316067091515595639500155247636851134548402264107031183602496352563342193594726924606959074691161599083637875724438263985122399588242457662858824238401352624413688320579466773039667773557209578480550473214728277124924891995047722031283828464057173058098625665524429007153846214431290731936184440052136562536023677312286576322718861590708231354560524253972504178669204510043935252120009381626953799661946310120265747876782298838670298066371901520064610745687762240746441745013816073468839931178405896123395590639337102427240506960770095023174692499012965807324792729855983575672060636648390694960369611134674909544100712514288861319833633751287183078550910076862777550240962754886409010668393030240514101307690582576300377384976159077114823244490801740817288006756686878320181141152617349636019535769877529764203338237710606352397584764534681351390229821699616776381604278040119143949131182625759539361847177324291461382726960725042266315362751411696307750114262104169453478696378251016037367701132179916500936689930376515704865969455041672965389185774265129571124561003046155571632001921540286547537376571196817326125112199911540395060170392113966530681307762254394819875951254320097772649502257006495692172488848290911004325161598092131087937905964504365377622098830272950039576661215879392751439325403520938416992027313388001899637045580517646728431168785784272991497272570877830264845454869344710732008662489157245342185861231942017007291531452507898708275553326135561991634255188578849725729918818062235243685493506360212232221638216401451197235368676094531111006639986882586243220429948773939529669894065390276466970327925027158696124780270814092259694782217524599829006730008331557292999170731760645040604223222403151533905423190398738742492626801392188855139850907577514728760925000041589146767874668594825378281982373038409255411523526821558907649074068237764595877058360324716279632247877144235191412469792799064933028379991337407046746231966315710144835603518807680438400857584198816248265815392792200707698236769456337205148942166173429441667699501733518196842085986820345456490919665557063856609740761770464612400333456205834355147012412183123139410424461234502872660351124745515071892032184478929921961003090742251901321329711999543499953134686600143873882782435326868578160138852614513374209426048010139190797761282798607439827311166538138489212823782475879949983908484228503909970118741152474114922355799844729587952255380506469927047277072800002441584690829725017750741071350824560633076632060165565641531786833730371988694566715877286785194300614730024406173563357879072482377423605507522371384267464132737378456406439894920948854432941263012949753267893033868139176943322988463096523822847395290546180284114165969809170957470214544085413873610621197707983098725571505883019588776501137765273693199705768343492162068624101299644258657228041021804907176543877270005471189846870990693488952374978392544592384741098438404535275053787979906833743347559972031320365258976417927641710959134295285267620298081631311877938589994343000090694142170632698426784096383500043735016437935298729308949352813815309093361580119176274905013763180170110621008912841227857324161209086820982540504510218514908524454833068856143793294916325588389038776572276800104022926725953178466948554742726883124809866059523806357345907750039884907737705089655711056901583332432715069069089057443280641317792864176441493063968083257940932012153145733508126206239239786155423065029327837679730928327519531868069690656093020575077958338873076483635726417632513592970397353684087854742703747202062853569629666085022226974678057059814169410117202369405719600503360111248337676265808951240288800895981950888139224087691119099491996326981028510533654609555068218437058876876664102219303867971033546153310090095712861410168350285379002398980395182523623867841150253457420484887777970299848618837919318199711950444543686148783183749222818785247058182063240785954385086631962317530116197618936158174831995815253460957315607536344164908440604711533138382117464748025795978000093275266522881726997548301278199340916940373780229281044845460752200386447092072921088733761613033269970815904907327784829810907876360690151290141988294265105649102044345974169924632415284124255927865856110279020092447982350146972152551755720253754269195223869040070172400899680002063280789714957336213012310014577992200760934360210848179191796287295429738792840563710618546945561017823218976206412297646369847618702978687538172809520602636618188358045081205951134579707938625020063621383761733182665600112704193966804718408018472977973492507319523073281178389271424882245827099656726664922548508469513279322719890102521249978497779317990611022082194081921488186310555196860828777536875131400980451511974385495206685131290443726361126204430401228139809318809555729996859628338258960611878889904068200118674714984774520871225917171635513913044240165598328868680021598396375860068496905437018476368093040678164574396812321380188052447231314006902197566976380346623751878001600343214338037267336553851097885178206145771668395818861437586443222681840296755962288896863675060196311417042220284015914517015711013163417217622579302366387614348293390747564388027751695657663084588116510002220346651396291134128401977565481928985254216956022732001023089309723074607303850345859967260893067773536767528848394590637999691553423366729328270403690181964387922018964599762147783365481100936737315720301268004651822577819501306393519672135925612117706359267327439218574663842185495281679178915527987578795318440179208984377736758139112580543536412117270854426728853645539622104016106108958343080693782686871404148093267108562744276406089070788980748486751026020951230202327977786611099554274268372228797474179893170035069244923019265403309676753875862743256040818430122316260554622207556934084794100161541213081343582983920074143765492832832963704317944298198243316496670452866054150542651149996393164132152241954775350428062536610988164786233765517956285135227086184381614521001859058349812535472475579773347451027633206186467661199080573288692254509210238295294837635789189820672228104059611265730972003562952979658270812418404929821905755320673215999427836773115958251524890294613137750072238999465812290919817694747362369163640533759551285167929956414051851348757421046439428309633670908694428375265858027204320622012363776080575202209231133939275102320460695665867386043749588746402897627092769560863627059912621272672892309333379611383858916429842307921348640613984179523388702070114851311767374141922308757060759734544068284714689762174671668357271263560112278824937328626090701775989616847083629076598413543661922890279855341274539728451184906891015212878951950759867586759443920825447414531722115032674771872149626385866778789606674867681242707846504562007409865131948044963424917258547473824758276850100339172745574196074333528992727291131762360339311375679413947048369701761232321746370739907977307623122453915148258976828682066363426971422869500087135230200880442358373588212177053881215114437425593846299065104197713770462432758941975603467919121590566493065388357875872497694536964657482455089658523902045077508382276861506881806178191149177332734460231369790522250108183590554098221892977298438801484647960243551231742543750794299784360570988778621925942916801158014363784516880642509723906166293819576118698425649385443250274528662630379660969426320960905601287772968594747564920116186642710430791100466455693353431169835655913861620935684945261505183767651258953696702278287256850958325764809528518365744368186516674950507481950333485450697552195057456225021614332856615768426726172595521489971948700078941025486125996015195820597362514819134885281621158338919661819794444608969102538742783766528768952226839752366926112596180943743874051395107533091098201341263922822459988317365229338006762373197742860005358278873147105556811515168336782960356439619328123074232137820009177326725946418964367795578366045032713621726521444695998541174371083699784974991739769734507487215666979371418239106609505931928494450040717841785834398197558804633962780614632590016675717004510232649729424053815919740381785943131847740800316657021598710819711649369061836346686234282632575216407679611820093246214506251392338203297895135308386378731789685352438951098070403358600930327487396044335621483160840396043071840543242920119028742116148599310226107429661062568581940285591078863938240830743922954277519094244871810061210955463992559592910306632003616444653402621449543059468899239282609103486184234521618011838186306710599974037713898315361486098605897027076511660065782532787321275535220290293866587813956850372922097140492717404952622580723170909913790482544175703973664494272780379492892446178223794479336966804186396467765656180477497776756598116371975897837478821185095387548842576828802182795636257558428685748165670816753218482636864426274944896803625461412881810609507602876421836590405009034939347321199648472061775990183109211713804350420588828370961952716006371023756057433298143125250987043183527149609630102089285005055198778012343062764252174854671404145859095288640994476729811284067720640826757851234735396158258447673921497829024743374426572678586610560195268717473216443908646770101076323049306428103864653692850451475702071738798643271414683791912197218597529799175601743739007634935733172555932022023354428238580570453921087058684661492996881265183316306092384306280490240256197491733557872128414703197290812698713398613686520356371931554872254513155492052822495781231165052474634464036768683834538525082654629304128344608361742650431638719421123555750604621741995966842616755018437569335625988598045232365695738450347564580745412425109287559976465821863089082502070583007469237951757060541794719984508696326842391216764946678420750890686067242173909815643072865471755900932642678192125765940277419974860349958929985572450900798631648188716497188373874883001649262401738387871711288663732511116854003982015178758236776576398730521220710792670653344175533761327673880017941767460543688213087516215789509928645934237009949925682299374653583867536786069964352208130174948000596269136080743331084741403462008894951029122774663123187642363576060281377240135201429172008824904084429896683793789708392718134019752056412354554516042500362614727687476782363375541609379018985623632106397300590045498819308552580040663954493547021157820432617590602896411203629426961947942811112049354035829289984833358733460503418214650436733804949212176677593355098555087094924578366347411108636805820451460939137213766616288878872244022051724770893121074740015272270914121203616283063891610839619950835093322521636276088066404195230354331795508852222881547791328026982540890991753891036054611031392496613051824920338803874817397848731091206934978738710350486483819320361647752251035074019691620471791281554678265110225699153012477641576943612210781721198690164666415278347681559542722453703262914239703182604243582200604667193414134730302521147290517592539009193627710911265443948444785988003309239127155500392567330051920862279639723417101588142550045987773490871281905475871427108147543173851128817582576956357840188818751902541495659359169013743825138140508164038373717642909568465366679066316664007352210911397521124583500886872967768675812107832317352705751364422262956670611966966818897129899773195324201388888985505094530516273971507730925872779341758949941093278110895980265146279246341004679205296834540482938223350731354335559584393906691137193954805858631524390700068725077506012954906268055903607974378436641702057410382827077781350719022903550280220630340727802300177573645540326522636992805578351455560306698182646559839149984238198176700886478883418812120610545387907920004289879173055450351255351109255495928367139332275230486827292433327647895174803174692813993771888385431538202584927056892138931863032210033945446180928200866301229274041820094105900379328623947469044994041748377072138072500183617466922329333840680183511819909105755101580215491881011329915382354471411458522122609062867596734918663814557968886450410307204115461012664872633475631687318333896328258709464211136589195883988872665100730012036877000164225773328447694972381623008769823819741756011083999885332284311667888089964589437082902810308850399922300481046862462073426350635990371155044483635056049402590289346620271498291924033193097193582200698761516560814623182487824283262598218230054983530734673961900259034853180371642720744915101808776212414015259690618811461519197470051461658264747373104829987982435834158739323075783896678884617807595705409263339481226741391970273138883812757198444992017646117950320347103800518201846419514613630699537371831348513403653132645017974881032221790907353753449479296556330861471729537865558768635893381154468297321396077517807660311691583990142467109154200644793342714235596059829291115137190137801041181656049138277767021561239472722179981260879107074582731276601957353587703208072310149355061035653778138004160620156999542048528320931799051660098717438381546409377638347035604743011278509786762104048010159711459999275486512534881900695329754373083887799957423635755552317393771506607749902618589264729867573221597944300456967104099379825039409569750382037451948975352093108071053827496185325754686719918317045867942763507975794040462050995167174253497581478166388307205991677695027440712517468413760159946929455754717839203852830247183885834956704893494771697309344688453487803969257946036407340897992569849624126757090889530379991280675222332071718785744638019589883914968566070123328386635906986228199141455424013243805495256022019802043885428103267081331384574881279456980606538845126655237637130572126543544453807129350102223257793906931752180299327984045566871329584191442535634699171835025695121063124851032931662750402558913761010723849343403602702806389356892035789653882134721758409232852103140167481119880572676794435717631914945755086142169436349016228548266904053291935620065298850452084007482903845696918443869270862281219105495119268248400737683203967378637105694815066150705640506833196676113197374885934619763561129748036425262491489415326229376900118789614361039601007992195749594963160314169639666128035961676246176608986544972275415158776104099617980114750920183498737974773259318675743922116157741038294165077736525888711985845351889195532816889216863955074589466272508405593880219670321357803957276367321073061367016724185638203115189780329797021858373445026303676327229147935984076680520465785720550184283271124981934172167443285209499837473512241444454403675875773225863164986984794016034146265337111479767567010101437010098277093817211999687778163402029324645153725181739446263280385636848575039162917063399031190515794267738807793400177521951731096414941939227736452101646711414165177151888668442991614919130276860403047435314666329163640510306783235253957456764945644566611867592473961529934046368945052907809470669182574415475799082909072560529821713046891613974159823993629137626737825332129129193159408828712586440305232063191316091801492483939658358404282302901147877410238555932459741434634928368308879799554555121439418563882749769825226478982096199949803975054909302393818440913403687113526239578084195747296933662932871039224446500311222474036544804304359210070094779237000966474974790193866249773608591118927083059386147656851924436186585369724843350408952192190671105917285048848644698620672673685817149446149919889644626349537499396404124002913975840202095645011551311932660183130800826888288722865394653824759143180406715638591548990764361381873594586715896293495100879527913844579407891079040380194116223365983235473790641575522927048053715589799945185904298475227243183741936941611637766490869840186372555762960006565186739190877364029712908753683574306671339593587199972867723020816652865550011095460021849580520906221175221022287627449665036950300514854538802985562059442178833871488783683302771700648720777166843763861347773892384608689138114424004528882729456462145734811250645046051563378732735317246214346304924347271568470917411168329393085521419454736954392021264941096734417175375983473109886368851289842894086710047685378319110636938003865073612495761416110657921606413742121780432221525040163868383204361716761462180710534332534455775377108143899877132104786245951245550348216155447677790157654577806554989707813493798878225158032894661875123243525982945269938645039190774611022089592996861954133096016484318498885298347937951996104077540841528109480650578402107010607837361294720355986067329204542148551286238873833840439053974060871138555793137462109807162748626365272648192380111649799611956347027581108258638335633132377991106397757256427560940016197596075120522710416062991578520238195484400523126730049339009375388386061932915931341551570432756806661010699538630662695531743107786709500898191657883995573189553707344072555111784116956209169641813311755641860580342968409145771046115257946556002426029049042742769039245222902291431272178125660515593596193387661497484116622434607583314428220920089234190411543288235000301400246005529960704867302824236678006021039533005457722947962117411370659864467867875207800417677747484722894521172703309393809397595531074625973982727122757985818391195734063281341624279802428149223635091997037695294793754914197049498001053564767329105325274331317221454940176163001019439989911268764440710671427713037962330483286657794468735219573193897956055366584470233132403569403919197542215840716522534339794968551511433364315653742704302292131800161940573129191462677972220666462177044952568834605562690206334264120247244002772890061230553036306112705840229669981309270443201407983077116163587685602563276612835550311703888318126793819541122094431726216159630565136680257998686563536794114593734277971412447531283486822868580119581627030443092534734387582661159025189595479121764942125567794788462047745322266784020798561142732293204091628152997518329379297316244748145845276816370171350490311282349408218390329532996985547549373367607796655020301175003316144653392830420844551435309144590714199412572919148661484713451273214969456717826765650084450685748854840403300625375580844972328147530744850252777581433150834548999947095190892772211649051225955731584583396448240446682812059196013325826553690084384172086726446949710868911600494548674774808033876142417412580077261615210524658037179868390611560605035928120002757829653693927136000411526035204691847055930107021690934331865109926436327567884851405779552006299776489649875193787372659726092106658632579351771211535860079608520834911709099421175682969843501595264592144809714286697850128499350400507074499159288591424663203064989068913400538720753603225635634535019416528515932439000644299871340916931480044869184223464956258322939838709594715930624400054032237763119481256387077801320995465445356569112847143150731623722959401428481470936072792355500764125751670694026894302260348938505293496912260775044961043843447628735190805851554661303303181525264590406759072586022310934268804468925654003385058874903048107698550025233737303612496536118681814875278181840996522497928980832131050545424868791613120832431237537241762677077618521581416029253681493231562734430128820329977492312737865543248755644557991025875353096490382794093404065936012315166533899753119384831925452450578750246941957269539794718331841459804066703777937531769825809998238530979592616248914709962135984299943862621992059880307480055196832561036332153316815917260327663560089217928452108861057307341979390929974369105852990151655108622662361315925186919994244474581131297865244579418934535080846993119924720469396070903024596362521397439322394001379049195240368813421484683525065397751013509716170175332559800497209662274852705122086384682482996024752743727138629855284554232031392265540548033197491617141242505188431375245615709114681982533292937078139888250181847662262382502761497718675214699905772013171815698137887426942364595806036989267734558592730175307766069275144876325037663648333108716340562994136811050289399133437820388656510559266768283367000805965416727026279617424833439056867792235134175698385339030512100684418068013468024950018675545626360953446954058468942556840046710136839488494515056287273699038427425393958252782913953903133015358141669092862576477265024108454063494169181342194882689529953715083044412743454231442682774824382812233667326152103159769653211433230681100323681314238789914069809181754817757441985156705576092614449150763665983957254584813447568267983845017224604410229938626962571699959791495685943471823419567731498190982378327841027695446520489840677491224609680962168470910247775481804164756233839933193004944213486738060768690521519696478640577000099243293301474389415997782412927486749135817357106724844625917837393731174752284959264207419096642181468526346089833147997818108564517352376775486505728678040971792887285147055646013606343360942032554014076933716581355238395857946112121189407759669639993784306140502296463004363380807782116649663723218318820245313213926996775748516550283055370384914796543966017474661447440136913120964740754798211004221936112504294598494470877571043696747953424961431007883968692064864745799401246134258076345288983779380296884740461101576002673254350935078424577581665241700485450261313223186849141686149757802672819746305230349942704973662986640809457248702472772789119462259831418464364652842624736991140405194609992405279107070732953501634973697244906502375471147672305074147237629373538234134130825128691117310028236066505866943004536246915909873179559437259811567049733208154205527564940947858168140301188088987653908341730371798272966193493910995408427520497435638130509563241685345755144186570621188971908055988877424452331151502823053070595375478575530886404870888403082480329061304146560363204457211132531457408521618977200411322262356556783363691524928042906196657762107229340528287024509861751541497738362710424104382082464658563877577345377702872403976690850065816229801652501778713696803608398877008666738091033112729320521687993688810613706912334011444545361969101077030241136504996334379764061121327093224294034646941843850838408608613340200257644984898531737331997074815854358621659509828989877551068804179892856010231002859183985817999775312043479599861991669538421845380489694233750491534161341480096192276959437054658391488817064580379357787578608315175124938905350267695411587960975841523076685523972584979476010475703081580404466302894364695921990787955002500862736143105072104793698031336532641480961726668254068833986925546514573677669285219400670970010017451030429415444156681973003083764321111105732746068087040757744858625873592665840265691130516131271539448948428904685378469188162766041707180306195091382681039204833819321380325503161282757137469166861943879715473294337102536778510452904940709788934298909232753903441401116028829121982507365531405278593747012094451822382698305412181603609228975269342014757917356481629126127145379936046381237232396709150226062335422083015669998664973968018676976223905495148371602300776107422038987726680970424099283938695486525432619986099615064304061844066371927599593109755144845118930499169564334516842719234099594739145706063624420523252538687931295329490849384171251408168199680642269382203113663622677312770732404411159710361299733995339921380870695803460483641096605444704411580153238752227051390261854670599806531162654829365608182848233105355113227419389934518722265964136384179484837616298102678557000169691224003533793758617646976918458001226890592636905397527735214315788100575841203155892452976913337966092039573943625577101899201622050342561754837795776167029007997224649716836947350379838092656495949746192225329673683134962398431245596972560621440116814759831193352804398919513795772667781991164812903083659207988312653374927119259692653792785697284061363717532731827845179620733255395570783068313349186250319956369594311431003314210077091460224583360514646297221106810616662434397375961702150191053523726412740583150330387741644824168055263282759739630299999661554609493135518603454332760806853249815944505344366782228211503063766477765631017694779976764881204644281291204595785031355700315093948130275744602528291421333601082542870572311101881555513451082608539477810719183707266226467630872961869490755205963107567099840643093765321192866843851586872383168104985657382404721208091338199211267356681121546314387320430529246147494310428407704927369330480089941424566973771437367569229178767645494914115488838471022560543248511791848194652762041547946780364084445783985225954156611743135127771769279301613979951294077731321687330145865581226240333275670401850892654563992046790919668233466099769059934167940974551325916936329416502303642147672062236301537753145283290531243654162773674834131831014993291302731096357463651400033837838667508255492932545571249214195578781373574055244927119002685889318626793942101665529543868896833573223477535204638497462351075723604648997121150853471235381316126191053033120595351935795144868472946713038102564967166961319585679488050005894693565914908717260800679779479916100507231945109050417573351501494551902196957417843594405511126648548132517281498401370464465184724175911107357784911542152668492498412367478816644511661961626695350209486837033840528691432547652483151207184669446136282190997199221258050457710067965467079877037279160203377131642139211803444553913626255372561353514481707332625210441699374972304959740773749851695333923701791586446900138381422508808111639794598619074007350699131226599499483598401153419705406837929162269601037515969463908042596545931094072095318859544656928112310850673273423274568600975950534728900447182383995339583009113578674661527572583225754028304042242589821770073725243345536899372321481337176228720579081349455393206658983739730572390958294220553444764706337871730973773821434410431606962021689511640804106326113235984852666594717388428185614421812375611028419182292329324182672191493308971391909703362488629216790970644827009019462375114922210808674129488739396217723504537158446212649147456743808527051405636672163047803569525407266686021865302327000628862363795115180342476410154379542242229613941366411807715810761994993701218845565893180801143099508898342469832962109735879525493549911862150555291576906737035918421277557939165952926355582865225267303868887028159963781660511461088122652267639042844578125086570144374779446177470116522930810169978362403569376266459368769438744591142520584347571792435593769571526276045765015753419662851033873774964286572197792685694157414949099516421159860367173810146258729320721101690587279238069698328233275339167549481912134239557714772234043051635938435996581781703252307774507767648193622298825247319997983022423129975506306732821753398064820604359417153838444696824307075474082483984329428733643733026584640218559170567927751463136370526124113617737286431085062918846832243407677721654343522090133543122525107562700356418265797461968622740283734039060136413308990982597475761379873794185542496371381570427566164462993306149805420524897434251559220387163858284324993327796912778616641070015568556062435999517144104353709520001952146128411742943269926907331894084648611617576357537772623179182705283647339029801164357450676184411404182492778964932384581428149828861949463150682000893072926047749591114342096130854433846346314751481506502206678287936026104323851847216522794895644899761553012104594233947405686353418392208856940216729418104789392655054390235821227630059925433459748370319927313976050843153855819204504454939073102907108960907802842897439930180656347958834334912135184509801582861890253572804295245301957227884801053687646520241339719236261315068264638129158225529941479474451325439629377408158870964040402472986325525507730375444877793122301849961671762918218943226806536608990515436383056053920317765607017379093633266946486540354943511565064322027268069495653175131414209267620544727162594908111725561692150175804933832068920376422082668992748327254166099478335421742516028627022080038175293416811651723311657516349581788826700040102140144016105532584222300042594327956556561268258834845097658216637400971226926344385598043073690174653302874653394554996054177707037127340929586294300599054746779827615374310307888179520437045215280929355820362749064040354058967519851308649102564605054826079615493569603460890156179340418384473117204823754126777812727878239457825165534371119655621867864818697108279256219515428890838217104678101644717414573904428190756099596313522852175581694245288130128039116574043100669375634320576230471401821539178217535735539354575362062624466462832854643831305984862602166716259659571345778204709456873707284944889921333223297904486857150685406641076588288943494562021411779920326858202715471802428531967128550930526490522843420188195185772752994409779769174301571798789421397737684395355111682286905552428088951516369042739467899945590482927110789907578967284507933335407889503861588529760223915585559174014099504984080335872248459523674437660248001648150075795322106166710645526239261496440944227089054735969210005596868627045376066303368959968034521991460609013488238677136762959848760561797803801770684557654994277963995640800505832742348472575173105054973489362540035286847000687211247282398129383656007583383304173874999555584692236865514898258877460148292245120428610592452248963774632624500193833683206006548695792922025402921488346524792104936627254840565956705630844718294540058646552556781717737242801003299008647331766959407138911466918268451073309959862581396314190134310142905422986011353064716856198549736572514280222853120230931475552795352524823944231069126903143757452908874040766125224906647422619973497933056829394596632634708499915292283676659479708645648288038767911941870106056632356779026290582084589151921312143661628976830425996384621634776625642366014192404903829230930151874554937040105675795661199978151230081688783896820752316182563392902846813647509783449972758708815038947810339825222979412740199123647991474695336455523691683760062843676388990846621626536006832514726536085888528812748014527227360634075320303012133663910253378113359213952343772372291180624437908441593245691442739346199165652495357848116011535763368678480661288663945060854616296178983786027486691017801732706073523712904683102538288501613946062877199058459072801958084290576401570186598565021648769172020149565030039816507633895611530375440996038249789090940636429455994158161213146260537753455811158777158586233783916449992019685614345134763334024539211468830403352106150878433075177600424887050042869881048937170020391140499327436496310986139759499338120100089220081388689849047906952631517529456547182954149050448090267909723540710258890934412028521742796673535714035832522470630889124205350859166354553735086521409607380000368092471305167873660592504281084153176187168824239394634448092752913657551803336189420986494239239943748042526709808077321838102898240514981459631270244905735180468893195741238441108110829808329999810983379613228577964507890083229154859195947378644339334483205698854826212637639218039550629358741573835243799229923946065744258552528075487956349823973869207807537747354146562183216769640429248063251274976526844285805402421921218997161659446122356668588181384659336082946818087695077768387251458156709389071374513919444378366978463366831120040868380195245299962135949113669394839431451455770364112231229052562687727948346878739159385884332339930369160527124934629118564088764023079187212267195436996642902725211520493597151417364827850224455160326755203186614722455263080892842719492030675628141059041081882161363243216578915516467162091422185800506392282510092781995340793727748439633786082459409110481909242272031389995949715863872605150750258220407541146824100374078854551842392392775076850526158966448899785805409311006076662928558167957520781005794118684996735133347246887158423474985865536674642234878563068750156053222704713297028260019818089662481769909094501522483451637434771976689323608317619342212443041026434574149735412185487979994541308575569285961429281120652103796890485178654886630393610122565403679329060275979255641664664944946499982495349950409365268669722556831416699586631355172604059250589543268935237678035517767074767225869264947623739377111422072648908903946215188052933870344276673994610916463705557504752653623577349533093020074101471469545061738786881201021525142397274744713852310020261125725471734239832716549551796604788077057964450492937649564643593826960838626107605602075682669891450430289247511590870206910472359612677510958232719380507052285301903600686083760264955402064505991319064192301372299954700585920703626088692720514165537574532080386060186788932230319408236814500738246359432975761295114463417785699677877629575868178292557589596590064348904730932251717769880702479266335799744127718998554767411581590786603418086746406315215100671709133562447654836340922934208635484380534562578497398695202133887046288869964896403703270803304788843455477355596601913308947769606558874311586233673194017842755321812310309643969561814629486337836871161254206037318125594383597244321855485267484035873107995334511458446806703210435062505370653730964043579567761949405523403643191372799452259885146454777676219276934261936513968104284968888243898309708701683752804429527688056177085304660614935845002924773454720160557141953958059063607071279359032300968417421090867056610703404752683133400974226441951831547523447533381389634968768418056363510798576285923657569684321413232098980364616229738620043619448536685878909515416313902451085948103530924190451392152991635056109002594620039029673634233086166595847022873465429169917046502581617844826192788078553884311901605965571444816269765773947172504604627727813476115742470713538604641340812299942162095939746472495758828476057414811456768768205636511831128751315253839331606602455347454158676737171589635814714337774406579432776810677585455673480094673108843145989822376408027638031262055685095810545930980877030485511152924046972980661960028761058131952318748507395721091629435582463958661401834929228889300343247911850613124843738955036134793955852484011736233895337831341706687622682921505489359267600557792743355341113363284277198089762278658777318308615902985956728177429690161416411334651832208069742948467273340371801535789757941977556407446865412397183214834813365409985365820421514531695257096993335111638053712811875188607207256666782986120052097725743918759021293627888901248136827136338880791526305099663380956904639210251849833623564588209716492354372837784613733816478541442493159209931923165903514177239757277925177598466969758651311931920107986212002869656479642495940616414202514864154784507412809941365401168120440339157803688594753199965573810618563431043570147661785959533839519440957194160645838557607491670622924324273374770370729618972423727652586950110762031033210521873570786596314612722899835441755169145902815964864285844184499695973407902861831759883570946327130084216775127062421901541108404313074091731417611320407234451093388409570287152617715518570090817363419050991786436015757687894741001989272355961260673317477197365594084960666662304523574364468954673428930336231470102423463880538565110651213979884545627063468662293852278610077431481031378749007626821840208201715112138402844645036877914744694072053974194755462738817277180538727482221539255855578334980719488637525691802016857504645329455338424506482845548672320071790110453457421455103616315304456613920309811389013639305716042117437101141074592424955634216835909221406833516177321288604880379925492133541623987971501038826385783544752387075336984997505138988525249165737784964090814566432404882424109408588704468770130387913455922822585653563083393314416499154065252777688145330618567393058198629650114741842763230714856517157475116535362477336944553999659287826459799267307683748022699141233448074690127637636667628016503773940782637275739349200399233530713773288440513441986340607694230777075980395443548794927015215633030823678417154901207453748863103199718899847866991144562506468167615366878973517670930388791689787187899611144704537092271674381863944783876591453274386224460242608920822787862977813236049920919914243461867387996380858048555488113431637732392895064689652991296235822057397648334174703611023487451775006088820043157379321956807508758196213861006173880472182953743268253254443331608908813679679841492063722384324073602451056606380533119563546505732901101894906929267327538218876165535460209311244012815093173766382777316416664849121127447578087282921294221241690434906865873484980255657578212189866353734357834826459055299116944378386835879122437815864362783682870736739510063804634183389273040505609205261259999823947638708062665508094402318934291116814280259479682495688418913180693072312938175987837565236677308320324780417950378966885439961178937549808557616983761008937542687252808460611102137188301527520822164347908122545008686709274958837637429137866279218063687706578324051052797934977520781577979737129499940726373947130470982660236190037189806954461055992844467389085961121545645107561242791459111002453655397002745845242498004916541856392885492657596330124007662503195426072492857532057831482583055641935091672389503758462155055080943168714617918233066758830819033527071347154269341282443446883282856997825967947808640401086540315241038595481048228496513220356206358989798917677732923097504524047156911228664483858465957947699456003015623990055354623748573104581007304958281812444387175161478753308648601493758965828825870938437642753745675554463943182668142890566057824753840804761553846018338586252415118993588682897146951684285553531843689387900150661137991099821995903071629892295684038385719304574288263667324900777867817605139548819278346836032772217764278800670518498280319732875243931609283263929631449822994423697560112206671851912112638038407893575894303471205852088481504658922044139200752778744295618593278079500264057032523690679114637042448930345376801973868603812097421502872622441645664615679613074209058118831980142985237736959507353049492703155560791636607072412125326503686460691675601841864448132167189351370380392595915138345880726239573180241787866543967570052804936839907886625699089731624394557789211348569318597982273754747036132727388054272445872854738064146532204017153661632337903444618752755859949255745692548219283341674092362811067963946120631301450153907147949151515744525361678677147105643777191480715148631453152231221569339352406144513582182678502052638596070077949525650875717487815513420087617055646528790052201547511525598726972915638670007875944649888849012185445890395101730665636268445127902348280102362668216595102299522901388595045578239284577868600243465570774477773901500342876771915348474913771836725476242405625169867695321625087846617155709161585231426508817111849943283718136339214221499996498676849747780928171775983819672882066229218690112941199566585733064953249954387070908004056491792441692769128418791137770758535769126991115097314704183946575430840098701510987619350156912046678955948385568647017776292775337531930598000805504889446114592432518650772835375264250734875684440991897809623457406568520323417150903596801248564767665111514213476662845575533311644445655757531148648848536074908462338904767600855471275074360439810754491738447981095478745979429343732988634235849642557638195206598063738648267136563204841869307460445298643902840213729736038414013272182482501130469781463433257902420147646808016842599043614949089133683797278002575398791926580033092558635481419877071694429720769053585941390279739910106434813651245784539016592691549189998787448875355990761000197460234916646870230693688469137062120108593211297004615296317377918870810532988112061975028190712775045656173747539458014211868308094049764743446267389936929304211746792803587501116902012792937404749752001270564458847140489438204467094827901710918754391655574863921505141774341871769663513429442760690337631119873616034867279128508064688544907584159321115223521409815962035830120601305657162096211001311038184624927428919420605822493028887259344549791011401804015920904675680457668967702681451780153692889399087289409725236677148850400574455226889041309235918056572044184265108029376080925131311535396240965200550775534441371570619141268615393341232475532599998290089577962815000158741514205438325122477760250651813401895360305679013544042960111340338253686830943068283594876607480992089114775377417281648665874685973520728571195417888701692771713008420091026971145911215853665018563276672523965219729985511993649899742799489175767854450152100086890568079403626367990309063323262454545361502282650046537881515024826273757881581463360601727196034702662155923522512359776954006898332717422999405708019707177438893817201765087891987599723329844901173637572201951828828918529348071058497468241844781532014805063348976386032870006211788429742180656721861565213989262513176374793078991239628424899053617227774095734579737141007349841648217805386578209189947066268703470544336235622504920071788137856427827935388035972304198039080296605545273631403511901311148147063860243989686706663126927365606264473342404700458438244317803637114338063795626801828248895849897554449899591640962851987341746695273881661133446380189107752601218550410911158028471674348570425430927844065182546885245253919642636182137820767588546770805352747348654151552618242371816176333957571290197349713950392278244110775707668627351186491215944059639137541360130725343157400176643475936653310383926234865597994272910833944937994175406271840880700454022286446227726573017770235437223032745908242890884043948243314796929537325565393815482203309138095218503457922902422839851584219437739835766630499960342008938196315476580460893023497365847190135728086081646612162494176392722180401517506335368728621361333275483028181510993548600085939947338876376355599933419732033184780358787463930209987946828186807785680656767012287356946687371780500488130139361011932161155578384929262896613160871591605026438641939504536697364943541932857928439742786762149177462373934278324681487831638389191955952107919363688002475065874470055027791095446016659844387148503841561539158411168644502188537506933848328578706926700590642250123598239421673597879801873976877012039501788591177995092349580504994587476304517443823072059380507012366154082478705605471050339716396275927162663554287959499505567126476598878336775345990893945913450965692598382399412295199755860489263595402473942628832006050497324896850708758210695289170881225378477155209931034725689341074438501097801121672624428233245180205843380589772386179054125744113922027180073609979631347145015378242054192327208106517286353136152968695409451807102248937009826382023345752702484468565483270719174867260929115487329162353349600405573391219970081952675883133353917437284353327548876007544251962858168287610806633611766440163040526088265655969808369564467067820843689330430471209275937593427052925903187974910037201244932436535093866800530447386318345750183015920626537121201764643279087426803224558247318496937077060876347423208714333942772995784827213091750614878346233700201736650305069103289888845743332272215765730173328788099550675900444283964771967795852317281304318857867982064084405513825330783539412111683349170851551006340219303269816708906021204043016623238790507524918464292678742016275300641002762479444900925934165177040338444369526213482341743144642429605460826657768300448960328317314816364810796387953113305716864290148514947515295673776294150414712932472685077458918966173932413693717894565957647713561703707504664865134165896546377403506328976138397475855734562010205619452862108640104884111322233618370114740696271563853613534074261311249564965398082033821368656451781399496329609024850307507701456099789226994997710129293339847275919979436602328814125508092466766508625913807988760163130526679235057417791227658493516277282554705000298657183265571862397473343065603703427189651867581177870421298529695123704431320003517479851247840995085679945328252214530062383591269519945092153146307532080573871023298971480441868352803167297248966188881739942033813487222721120561943701235743470514643489325489448333156229729130166848019809115871449822465187254711631473214331866426255345590667680474125477588084790802609589449806203501187205236539424545225012320400558522109044264549527156270824310349187912125585632245200110165858768976019701272186176636432380113728826273020582583487517691600636284634485491201183588664336589865272993599451499323849154431935923635774785602163859412773878083122343236061234398311165547234467898606322845538557409762716130302293594837057818617864144702450655260713315897330108798612480896180492557744820699148695944245075147099624403210329434015434423877066270908705885239601968504715355936354954509028852185720289893776042250911658486404862211289545205396028035375796397438410792495811345590652822359752228117032633910779686657597495073444161325562510877384479998710403277436704003139018014059519636776147297085140685696741659359577681245022387268685157000999957913025498158688403958875481290484541643587165250133831086836240928756232340335115140849882976990169404109547568004048864235038925646219696443495272176550645566377071191859508666042281018395667776396280307185335954897338609492379916183404477868234622373976769616743113786623924610475815496233049160015232917110000035877139380396641558424721305524147880022946290446028900302210460810247172027584686591147805023119191029499253484702445816052924062135423666783739950573576836222406069595177098080973564120194752994477645488199180893054995816756882458002713466312798595050448767149508452049435166491090964596994973559919242895531760787015107936788694440536822121561178144985424779904834984914913624312687663966138903557435398461727225834015145380229330773333747853289897766714530884747432214600106019366121148166491947474140151948921972806382745987184538271881060283988542808630423039724613691889541930463033226367523926629899505020712510797511370437781457770067936642788136549712889527047978150031131951687105126589728286053286836421033390424421194257588028998815187466241446809748006589980136338857929967605683422768157052668596029372442757683630972843071088144861794371372796321919574322687072582952506651880720715400218866424856696668038578227178644329493534361869665471948678723094303030324678932381068062486836821338267167942640454115866242883794646101763514006666925972862436344831097982955296440659332966803409355377001925395749711227056553870093288283512711817899591539591051669974544500084531319072065140405805766349465288967022336754806841189822641686685603300747711237469523878161718432128289455035095561439247036190392669038487827683401791666270924161919201792613290695084688183113206454835091083484139616831393005547833258286973506837544784825515986922501047178559597087242545091967509510048366125370577514251336725473408349825464490316043090372482491339305734143640260467224189638918902908462074103796767525103781733666097378665410143955616040871619754468474104820733612424951389795016650990637923349162743794372230615668954039985830550372344674087020313149383024584062693727193291304558852608206477601490614481973472635457120511407265313034785602094101268146054667100298321185590994157910661986775112446024374114068524002870784064474451306506648057493818179717030234645698827884029358689166509257466437956679442738134269262814987013879703808585311363742995433600467863764497401230279120830749144833207594320523712884949383644916693621091170066594491826747149138981244213140637607762667108971354465347807240292564834603622733265678877852545005784055587823121035023591630334607804247952183883047645057429632698841753399656792581389322335520432050237909543425428746860527487250227183872579413541652326225214742726304088255398562912293969076563668359171240360350556826974645192748927851834556190075873368690146174094613553708664565404269806900500938313173169262686264979979983841562594966957094722137747442563005284681173753491036083564063736109946948130154084633800063938389993923575739087048716503529878946565928853040623680620427077442264141091335285818537449321633527912728009959298413800669677627252824305973409675599154790721454553769276237415204886979341607690226501544464153047179550281542857021794194669264227079725863091678992538390481926207161740049612672278202900844026587330075228082730402793765067958521782577222772250966171200894869950861662904295933354736036815338851918384977240596627184971754954335980320733972712226417696531451675107518364871720293635867313287693483665259356848940014893959248471567386027646833527934870479739817016610754611433174776242215566702098901751625224259665127065559986292540018940547375761785237276536809619751396909219113972965801155100409360305548725206621332172779665142256210589057245257099250184519295055715006521380198547990112083225055250082065810212360877267992541392401786145020785186415726220346691225247063152627936806781961453967513670878035327234268670750966155792384591027378127278720366735313363219482424936014351387430541119803778352730292581368298898415981139008628202621693686114087720833960842330526548152716953720621662944812543885370974950680019441055065762718430386972618087883855256512308618527703331960116460705045388157795238237683184662081317804192430474193548237023265312860811427942980743561367175027361763129824955794119841257747518054855988741746585972304704712794268356239002543660891014531450927785270615550673212062334444979812653492018008833484823020446575996735563406449993399110411062176213616514105481705027261930942067235325583919465069936825622919099332338414169537807620997014507006347207124895351245361504181962936418344387169889025621234332143082103030024133202555868768446441895800459927308088764437847552382353896457480073419410051663696296501436119748315642338886785781053512987515970800787367760749402748297628941338437156691103981782563876802614284542207628358155282442123662430834819722620057897814308291114980524516794765718132073965367397966023491408635553409786521892330058351131884763049748585923526254806938789370890477410083260611532259046268787057539845859055832917525894391808295455064065507430028888006321557972803302861347898178714831336220793133073902034495166211233523625121917101048818635809729169040789745347001108159335763144294607782387718738456743777116698112095124444027412215365474653317883973591356631234429609374715874857656087022496771306157658787480604082337085373871674360588851129835536774360554895647401414657003026173658171871475526320047862677545216805704322960095035962072901187804582508975306015835890493703979326333865230652785929139377218584350816574669997965646016946557920388895271101752946362384493769981882871714848086582994319183224981111841319389519023458144176525705253932453311354051166446226696851608269596514563876705620921569703131177597859474350786805318851858254742059211135278948072077924877281976270077916288756924512624540879624954996192599497933794099937128050656247315107705787704015561961339324486300438075149979398967521021792535919599319038796337452122886621788214670072295198087058737388446991116507984557328552277950377379065410789904297712307516092786672429867290044910022626470437885882442499619654182828234121998633796738338275077448100853118722872298105127785912472504358634374591081373928140707625103843966616422671613945651683692797485681775519492855216074653934887729373059299391916484423861011568474871569052483365247962508260673022169274315660892457838653189964735883603906662250312218031771984639244119339236641642093590656530948860597272164418905183677888639279965500712590456057388354654509104618465672532310557069290586885144797636991570124178832976508443251363020813262580900304400048415739699294652638943862162008022015536603874403071716089222040757465762103604689136761004123038156837641847537768066954763544458216260659582869032375133344414846634758776801523856400931466935049973887433038568171109051088028561198461572568379792503791435510858002183138024322189253808977022719970374975696620677215212816412538417693448503480275307186252416717868791361815615588528449261814639402389943202819544656508053082704969573391272435042816485014406055901821714463076545708636244570596807820088511384742080921969028093856240224858102093128643791646733399594428547291829841151725846061206704607657557345651869355927972034187353079946025643571890257744758802001963317146498210201442842378933498696196598208652063159013443611346345440562617127546930402169443766113136361931234341020255331404929332883982452729893985822083013307972165048630817346245048378018888299040666009912297809382932483206395598757266897296680359135372397368680301513693350846302586322456157071279050940559402534819433565816434654150574806537400770550119183440306208557147280475999969112389367652712138024338473320548877701865334067863991498759132293401999921865426051105837802522407293396042792095329722319749624815335004613214576768355286231957808570938013207574772706372725215965205387392534659989609943907434911873880694211058805532662398152023173341882994838955223804941522127680268677361326315103688499632890651466612221593133121455201781030095440533533699254793278561684664751400470775341712058553978793976120664545345032877490089973234432231983469981531144968047134787420242930152981741796376667847220352566891172587548691013238751594575593048564691643476790620162355076528129354603663496333535784994524615719237378419053422627435013024158873504355617348678163533354524582324201267458416940752523927041728170752603160713250703853192818243267757194676914665424674127378152775218831975470211280743569954949743759805577021644178616781509567669184192801076291592230685404941067946112517500249561869576418821323392867742083024328129342619168002912997356078594348034168311560248517860318785280543200961682739899960357855978018735903532012952818415852095216943242760477865839096210737723254535172361146397187106881729604673197649306758809053614892361739807028873989095345805507474275427306930945366145373205611484100024723420637727120900961321707265276040739250860709156269931049711796466890812093819777170500846807554289826168277526979262939758905055771580325087931683949687423271001053678422932839276650704840054055589006478417541329575658098304601308809915422711200098990939253988977444546594325757884180922937815435709067051908985140611050551630592120696094934762012477222966793956542526539445784139844191736508493760100396253934282439010038031226383884897962267593065698621769714767228449368005257705422123188266429924678075851100864988068629120392080706125011298765167718712930093452754819023684524003455913662650513457105690904204581982594024056809218763399430711073837711580499786258106488637026786350766423596043543737300102866144389090473570025288498619722953360380719678366658185749688811412246942731867876903432668938050441882937702180258279163831163691608971862661001812585728150382053318904170552629807587648145533414947170401308977545255102495222115313289708977635695513261010635498550664715567945781313338889931852696008068814910604094491299139782017182440494530662276062707263195717806701930566413057720439527064367668619787418806932479587414526706074444905798763755247946335945615490868384609319505323012444009487838559039333174902829343267077602683899028513185722108378247376768253984498903745297887028664937098837431920545108045497305677694804636801259415857775100436501625894913338689613616990637353042855193884765560991124211966288654736208245620549371821514867793339408248612181005688853237268658344315195563108708697624359943906162599776535543125284026342455935840250857604830921097497582842798861424614631268337963443126798616570429895792049907358152727783180450746920694663050607838472192678688590665366307336226423647848632560163989118399210632692577021725933827949583718533615013331781255863587060111411679603417901414082523205870357480106276071502968312386280059068258681449492617077197968909126396644730909232744320668011975977738739252338498418712889996693122549585840929162273152156580837521479940557212526980336222532198867030237280741590216801708673980676923847338619618277015863391828917948191263619380385073103965401887178773008788566149039657970203050622325600696818982502477037187992486341483696280506016998537194111105182242524929369004904157595320836980990542117270401515411437230364151455760332036191957011112013687850107690100821394026051778331949801979061900875342215222028824967893219570219337093713324544342710714937356376820091830805050626865611075751730777388911107445199438782185791103784657971126911624795474837100532351483693054627947332713568956213166834957647434205492390480312906151880264650708354046398313599389531773783948989961465651250023547447891304207348078910416882399627481591294827224311841582068939047256776995726141451556068201032629373775919665968510554196311575892135867396997198771295133779617510900068718414599102176209890518024505046519402592108451833626779863833155133668723452399187578545847196010721050389999032141587231298731393210194686507178827999952237151894152234180337301130223657393442181815486634522965548460872752924121518918963121930456832841998869669955949703402071650947378671687486282013639265581464971976426992229722088023884587278715300225941177928751294079399693903474785874411720688706026316138131924651589351274553395987564156081236787848495444498725144211679927031202563948053436491332108485079583096769367410688771104707641562867398973294240506867448769799677963187714296948332140611857010328274740912563537038866476252038766711158565309101173605418898048914728939130943919482966667132041499743884697599993020156750168263937462122703975036596991841710723957797946432795889321528348048260627233867961534371620594757311044026274983983053807658209753962285389959511641414412560193774430877464150965487100126746401451829578559757328206793267517181156298652161867211137449612967001185739557294966882319133418590617024267882649383907614557952094161989377811868683394559811644204497533853774758652249824354505622160130191669517040422591820215870552731674350132600770359207481404984557198218287208501732600933203466174494889050505072000701542759157195144494609408080406347646918830542010720449151319117456184417153411863445347809566865485170558783325791675644469015127166222526120830230411310365481139269474258039969209438615108238848020459400796988424783068380806695377115948390067228038241381284798413059660109746943165187580758064333568517416153230522842781144482602844610741307870093023898798417454936646815902937354903100632536414673638460307122413774060375273186952175958044894580442957938463741214376807773404036686660029824144654170585372923438100796834013705278327709448304510514357326968428907038883624763398886864585077822034307423662882209741941740334859129307337670954574058346955137963069435109949311639411050591987756324525020005861829141627656761716368116222222566349624177633993304504566899111689867648374912738670894366403546012366290449196900189591786287705110695727343262049017759302424606214258496760844132357259150704336715614263099925047792879962541139360970952720030358613970004592284644063988578922562321061397478351783080246716510256942941155361781397584771201141629164323713701097365189562201937225704014241277585205089583807447340497047720065292713479380896269032458072924406325418951488187264405555050786462427900739230739934886036889347103148478083089345891496198585150762609092743083414036977046973909421245242242325798557812776833964451871587264792578357638823948680182657716827872582881159621600048626646296274118514370413146008469387826326677867079181238340355959389619955338488564315955323757205358236182714357184714841382135625347076211397325017421826191621956330804860325375857259697048101761782816082250822067910293331301846136866126474124108535926776137637462116215699247649037668696068181856842331548899486685012093170640207635684636529613221120420787593590531744026909271578276190274273379380560115207632115841118719174871170561400284842771169538997836487940851769139644693391960194240527920723089363778533669798597323740553412686336454621693207255484691596474091808002815453821259091026020510046413823086534222085252267590598504165174308335052847458835076436992524312021553190339824525878181795521209656316972866366067934234296376293893205704203714810635428383002951144708345102217386949288660255798488694090821481097281834405145998976395058806556459232157184897410198896112465801845964492875130398770815424394064278527325132537455458669348459086145476062310264018693142070150346041960891449815172464310910704308022519347316762002238109895120553086813636031278324195028690680702246590771924095122078574035807771206401173710074306726171167518664338890710590619847293936565916001595045006059203579180934612223174423017625501455709891781835750346500647274409357869960312781923231139972570070220115148795513719658675829933609557034157496632792704666280193454173886290003169775082378206736867002932847585611599310071352622383366151638974254198926875065358884506267713050639694638434061788817227793752617383581158142971166535207821717586963485776768606304284634188549880894815232807813477114099624451324380226750567172296004769961923886977358090397940197308577444510446442446396082406114893048649509532802679846356101492351550662890502944006500349932164706399204478955670456985077679830254012416161594733622913313892379419380628612649720168989931129647563557654787880039313627745480783347389720597984503338171202154529493360418744324256328381046582525807527885151417506764490854576743011285626357025561054299856980861275514358865524776711570578627494158487557061381967046223212238463461688497740058809175840338735197253054235672747887245855231641909823178276900498751194388641074761033368619460554603832328876019273769409534612245100061965524125084963257895183898181915354481090221180927599742873084075830755935479027656919745245672365930196249323120024370069269962283722759461859411165274822832440393114131159415442414366388429651461272540098379201536520806356168153447260855787608094914651492964083410891454648998322059943686343245255942239114249308187965289516894483290348129784613335869837156973224859644851273137473846502755101971759204091681371528496829391711761240293950850131560033456960746029580605665002164041603592122667607328313031019177447696357169576280872861739415090359378913508289717787715504524651037849356034321520012592696534259090342486684309481679856377589444457373771773536046225980037086687124251161894019551231171759761338136459809584079516662360454490066026373416581905802045458596552469515692984344647690093103405480874446553924685552303085821715667040849914768341252635384723019238525879606482813003788625451100223414031086230756599007625902477032824178631033902395164554360774601384377532131100221404887019056367494110765004494400689901882320616218524329151914588837677231010767714536112870761616545865837902677642074530126576674746858557213217777714312385238312552001488738279716743646230637663282545553992260094479736673372048822752995482232260513165206496984116246685798285169285374389348680452267012993204647261851826141603337712234253419852187358619545101017203323109705395072536791715804499471128267096170644695230841375060808053432937576178304751733014791808520597940588833119318688840734808258219670857596410374349149916181573253956794753510385595189434490770530788979076893993199657890546346129551075861620930888326699495005672651766662677245268466646747193715465055173561292659819149798392171754926712046712045807013488977445261930437997301539192521207772815258329558837653081735391913206959474898692000449531969555917264800369690581097734970832555556642111685179849050920404441747770403092163716054866546482337978057330744337573899802212878091802654224236142351814715107364111591911674697723118433252697157196017052816750204902820173215647222336359602515445829110762100536152859738317325755189301291426449646805166182122403145539164668651900766005356668352323446754691440520309539138550511250618716438446959965745815555141513318885788038229161708882277538939384302365981155350716182458742188687572756423218524704522694755809889821469416715978294149183542119670151902987717277527229100152215120672999475222324244219512448592151076818955069904511907085800391592023711529602748715648252506468961315024870666625495703974202084676523944560889835170565759767367808170858319439731224760572143769480446711192247968381579410626176659252519719344212511238608943367124256573767447551908085650841104272994743337762955215591806477330974618170540145374189596334608065542734712266944637393898817994360482552787690515559780065779077196461212625993823683553140132673528437912935926620059995669099938999071038861590245492308389899652613539049241048611661022968918724120435909761113020086768126587225301006175399036308951170194218726294580052757812367605920784549419510956929683575591983660940298206403541147679504743031385798952186133949384495846689505531625181264191840296795694853092958793809313897278690887658599307060180476384293649712693389439019342797946634670176158827003600436642695790077281334865877748381585434221165132676047190149538372831038950935429363417097469762189406008689178334093051723931483323245819252636309977895662307650370272534551272663917536609134237828602431628100805754109578487122415538880200446386155377722587521641541730956317479557071875852191245668976927811218247452866248291206642543610793926682943346993069579574186661621202305930135997550788713449642182058649476241385792161983580573023948071445515593523358642932701646007444788979635294633993938845805133270906845645474940343215059422043340609694917311434632666230767911623576443328842613215150889610995781268571290846944127415450388868418149758754137055820508303568945035463066200448081003603483291636204684407530379945326982621784859266648883501829069249875677026829973969528346966870550640604815513613300535519408585689844553717541995449486823863718512731680163790351860871929507399899636217612484141257014425717115575100674141950548152498929450183931599826046058666746233139427104181496377465091137858599778043689050671917565323845484482518650611275985005214505527475608640503395192386634879944235281598239537819895278075498224715118293563311893390164620634091761383676183435384745634820067535544945535953866620141384655595150787845137703087883704649429878766335412428598571137002136863682229043479465333862494339007935285751419180399599707904644474409040481294589280378943441502782197417564876247384305621221619064524151780643669681114320699796698785748113930891287758269618915300961170216391418583042756833754826027729171858746086689442942098294695040489465861782661003406688494095252523940005632364897289532291642916145392566817703070469361600225775387894879445888768533460421154472924921060515990238476032468553553820293705772998049732355356579939820645713637931614403999438360868027854129281056645423863660344691748178925646160932332330573124864690840566151700421815136392632851407700788980875882460451703853531413834935614240497227462790783920345952045812206981048561937665333527084838501426759027660334850265788585031491923945880071231457675039708617971251156982832809788792950253343966499506981413161537515452815266704692730827191402196935526347330196816631786690595720245524249677704863075622733166343813302378008764948313715006272353181693851067170902587768399806037275553851860828203071415184430979534829705760388262831584047047902382160532550495591350888005580448931049526846670207394636551361658788971431031657072394476036016323082356584463759017911855599398310337743345580878818393501592043397590589952550185989120875550357605682432726646479442493302158240547565969786662429384041954360105752077017111204794429223350779734588930049627938709144008703137593944831615949131716729144305545274489775834570918055458377569885382096448181051463979844805320026192144006368719833411952886921054621144002194940226265402987290805405350698582793013398305643810955102492712166993296494509778315975791823254424113096859655832479179260221870854741791698469391996251688882962980246580158123937527099078719507743583390963408559373449698397794469343199589738296864833148785057229527538625812589470982534199980476916558430381541037970616462377901418795331400988534392113602815800843412601011448290756479109027105180728323674588732098563799020986758274651015964665169274021543111664269008289667577391898543180392099351477530168973297198385812125619677497032471498234913298401665203195038971679005280166181235475841075470708376696257455993625948947248159631108734879343746669824904974963935223194095940302920350394925840238352653763731795847003272644218034054009739508886834299979781696991191193085668420914028492103497562936198761878966172423938316543904729043722802264361234662245931524805973256093335430450585869847922334670874122553936540885134218149610343011008235018594583333023084063593436519741478388342221539884841741725059451240227380731551100302753435791693198129136736797502594136983670034234439204426876454839885925161862920726726676109737815530902496961004177779207570113597666326181530996185676879858346331424815643762623513489216840595003214408522395742432342188088969386275516090891772978637716953733186196928560243500426497721680687908785801675976866802545303938810706818076764791689414172093423208346658379094777290297625052452070055771709681631441847450805396381655762695603951280388901655760616577614475944606676831886827258730915984022004335648507854940233320864091055408934214750681614383583053935445136604087907761720759116289382606503571546656525830742610855821050910587261867716324122768970290051081864232960465192465157032118878144284225321266553709898714699633507512669353648249413537033463870396489198701338277284843931851285036495803381891603587611340871098154312200145238336007147021824908092230862781608940080589290960664791956136758268443046567118726127249606232372206737007290011209469592141675469804762157374226934259657669991534539885813358969021845855116465499476287946654762960786995258964306763251967291539882577350410313426950070188775966787391903019977165820811173769816130737004513001970668288057023626313522065204243889084784496027944109733494644832784938561720207685081268169095213251386861746060542354336197845039831009578236532125758641207206199566189514136906127883509734305162550321003926556179813538289774078628647498843295116534181482707693048010964963204543859059242435724654801556100023295105779382774669966425100665675860673013612355938790725626148259601816547853836352188217881647088489288029490780414074292469448999908394005176514114164012380423147232173191370448612765054685237358959436151482591600734784672436372788676868389478213170091877107554898880304317546296386175994480677865440729437675261699339055519594795537832662235896929083747674816266905032270511110317073705223150558309991034992836391818305437395174397379171073481687903119461545663893026090915487339884104564602697892036987528060246833887232413703178099988239586139010208314035305458031400628156947341116640126213437079024032245465370932500662412315799598634270718839850546430993861431259567480089573355460651149397366987980076568966365174784193522468875354309887125016741016895654580500460054138732902010071555368680140906058078728270078479090601701093225293706519050431901350121531771699588244687954881519587428574580488624266153228095708364247104500067216804044039494862296630556241646833997141556399740685545888382967230283498976112922908843674897770136555220741695270724944946538964701963985991680227847881240689377236032842568632568509453747871200181578511428960672512657305889804107399177720594605208473912900327649818218505905648961158675205963690632008071369076165234078102513241994934571803115146239058499085409470994412838527441139411911677183635563793836812320346979759763030330272357239919746351945216925562339917900570276541161215442824252957461956591434805033924756934391942459161197339522830275008723337458779613930995364102871907720240343990366666407958161724345848589565123399953815533595317788917574248378174879321163699196943066199784536523993255041164716178557388840574348329855554383273411790766357314029796311002549413294357054027144477072582961883925668173617328837097484994033566037496714087118591152331503563929753078756616637508316087595317313620447162023545268021306299147290350955214676401151112345929861611527449554123959082081085621616281425535533604122994388266572791721005765686959449919848015167748508581072888280296462485048660511548452347756450480951868116637980146463841682186544822906112503428023381055822414299714780850962508828466508436612584601028525583325202410084858211311053971516150564792604381286592433716433035455157050567820413028336649670799694759059145897380734391855342577896827628532432731783509483166110052127218914432563532611472373452716278539671469695999053587510612947812524602059492761174525251065843664129792109157063756554520120196531957810338761786366593766628974312729728152661929179839045527450945712252893575248881781882969549618219516609771665446700027599400490103353630711244973984385367949592768293392493097488062888919859115056038383932565719980036930499816768501604136387725530024821238735340517457890521253397828052639068839135616449232523200363803948215846191509359837907684720220003630800509693574911585239195044517014565391938734977561093592929190866905393806196487016587745877312739050603303758114649728382604591511071776314553080003569716414137395477763453945574212302880235813710236575133917785440546433051285575808506577883530219953477696188733628171563569414412869313453134258186798393106059050264076912536938001784192155310235659653243464040958339895306830441669301756909065830863994202942287702662774935609552414200206312619369039419313257141572134331006975063970776488116709919472145356388352766124716690347099024177289698214594962759781451407849624009529316933576919591369800814152011910303541370959504395307931152358374761744855146194887832011577496085378277597927152214282886401962075659357862382716008383666685083447169316422468590913020948737562871662414182510511964151149720809407448616616797180712179083391051400321347303745739046351477735971170037639783755583163947902894498653711967470694607365784405191336865665981541654036880849893584075510732780241321396257902888785663572690563275848767081378785854695197412287380619618003104179312211527658724542337361309623635906156427601398065813588149805209466479019268739943719033364596466121143824218283759063512327930678379153583206840576143652481064667642359490303157312902934503460942645447587550748723783858909606591582952977966454638063812557023187792252803282817448608987017153501945812598538033790395002522450337119034208045171112798179057187296605972422267452547910968124911782319032009768661286963410879595987883949624916523983584474112451503560069755964432119158987105230908636096424939372985476403496949292949231461997674688620189375669795880298274831871378572552883640317887264744616541762347819604680268323877943967825332530132127065384763829126406434749223675812411395804282374972049701253648791467829724653292975969634067835788960726039003988541829624023269246640931554177902921043632443530119022634216105011521354436398384519309395895947458837500716025362914619426365636699356760484957978614702396543365426121209970794567115991229020720935592806151491724969746489337991398281869167840371246527571508739994026704701730321631155540184963073414806320607346732067548059416038493152971595535387834969981734543516338290308438480170591771877681460973570612571446890178107963895896935252917975983295599363502857222186136343826877878202977748192594457204441432591166903631164441985956774452569624275894336805735108164770378233293936456525834070420318756092661947236160338140640110142405616159846823771472678878449328397926849513725590620641471378130027837183092077476652288562344411973614154667213619242423331351856802414934944792573351617829360053162251684092237721193675937522107733342490888020875279005317399979041737984564443740248180624896529512564087987525080567303722709790127635139289291868099418013753429834959716648957124521565401331229953127114505778581368130487884054930521713683159127218993008411988263864517858865957257630260718461328089889056303198348048054369601743491894556410808278175027787365681074720558943302870686574432834474671617880838386365347913326205839727216553637067783318016282963579248429645291743252866514018488645399921389164589175588782408895439597966254532790508807878188581087802060910854630057323661923171311289796803741361101252927486201464367947947172461161348487677833467909503550127820656735277387255631997569779685029992017315743037204817143624100257682118438026232589238938822004604636709034305078902692817635138946156729698299060477550587914775618529035640528152379891868661212375334426799900368174857480107123596502793576140400593067490368509228884156535679625521131019135355893058633431251549472588356177500057864094971117617453459630407188900691542095906214535531298833299402227945189093858003539174483309648209662534896684771268189811348196350172572254341390809606890175073639214350084318917777530813445186690871700379399387761497398396084157726835761113319098414634049749662875726986206204817922233011025530740254789067773315907148490977233367582839949170014944794190313290890165476097990411956370281930570087056695338721355616578908968066114671433956793186962564436071613031895201886455027240343573149876453763164253890599867876549935964629861806160148327730277845661251098141373589634208530289849852128426270867358647768902910172590618010882648418574883545934200935807913080018250504166868636316409754734300606297057962759004598309778789327391389800599341837039988703382517374299173622760455640833748336740428127396321701155528927698523771861921572404375461558255411312117962665339114551140409120765628336247437416348543434324847408037513105806457845523149260985844627488587338449028410932059668313600407212215371729330358868831749374920325939276103668861654102347513206279981970911574123450617824386675656475017077999986883069050990819855708853115600434372276978737525494448112389574775926781482516706257774989143612411778508481605322924500072554011682732459558381049853878319064712495616916403255307907038687564494031751724806640197830422110233480257944209229227786336351734273909629944611896712447876805647608851255883057626054815533134400654774529261356371685143946897561358359803381401987059408912249204670469061816102970616760675761782098452545584326554465503768676273838680095125407923157343906183113571365993816899127818773442287544818229719222715701628498401009856335814882667435789458379782296402433940372264168820748982331267718835191949182656658976252419827735497979122703450439331393192316631665846324778119914367704216692908953335392639546096771754214332902578116069842228890954354564108180645484907303679782038804589411982623071523502057526517715346204023668800002616037846582192547568310004794902831509472323990002599732959804968356669353318226703709250280116672578253818214976864671670764515191580547841760195735349655571683955864309817517040404290255254009216643279997842288521218557914343740804094930473717333777957428857749757435413758525576736871169576225570909552457883351859353892823948168172366876121342699540627868301085613426109441501532768022245458699744911976937171569665340066650924989125912429100372096041658240433614276327039402809901556827224551157405094731865186239277858541955609419276466162396350200941794661981514964565047992596500809962948603093006464789787976719510754409619463299535621445158905250774731145608287870291942334516223797174484932830132710643199276716637969639451811282314356984690561342731085579127896478756494706371575866069767038570699526240646115082558461267109096385659318881062483109627582197261624438917530583582910094337705466631203027934038542928615510256136324880035655297808448604763791938830267387443631565022540498108184063815468065684083871522019852211310860640482571412349841434368397810504931552006700697563829782078603998466781314999203854506748771200659171487943376434733942533492017283875713494899590555845899838880780733384362152779898328490784956392021072741457248581873116769355989402109302908318468239219674354706467213910496872741056856376584654776619518074077312735896227244563974907036528626575388810675517380567916347083792011302912722813927116969449866032194497430286535232511331546309008791090576024380322496231458050424471043529321884099479138617208706648533909857481796917588212403706631253146252435594539554404711277724403886111895711587718506601926314331584410147450967621095929769668973598829853752907534717573842062135948774195293483353889842099307897661070863724788826507561030121275080653534205656649215551085157516469313357695338005718991179553890865565156137195847047976239617248170210158028701242580410837031748521375357349315160987371030408686382101247203154995725928709777699701786268793824410593345362260142833405836386286898393079149612639005384765433007168202172433620742021276061589407060282853406289571839370024238834621754872066810896733715190518227531277474670169902631756789190379538452047907975114679154891353730287867868193744090641700689863583061625061394890816914250799358848257869187569144209803284654304546555425809054276075583686886248506087100995752100788708124973588047388246216441412812741445265220046495691937618324959793471995503452998825038994112478846096045682321417500637363222707304800586983746129079554990093940556155557795190447260325005343038286573199066708856044925462513404635382529223714607920380441032175628451705669586023995193963402432340477330781304314962959124913500752704508759059971333912467645971268413278763718461514040929166410817490351173375771035832442753507228086746489402915421506928519868673165692872345865786315128175911273111118815479466698929453477501734787373227572154561142856141848627603569367063612248995697695592337119419891480428895734959145802778710457008691338065529183028273103463642297478902155394080556884441211536744689176015906478901371637991911743054349931496646384280509293013571401922621077472442690327115210638902848490573697794078528631970724079970628037575361220397639366222841532235947216202475636565383574571851045864930283979534473633148985110780040223700248661324503688546464090886750198314043131992850415841375506869288368761870662381291485059588075424829837250955397944247313890732192124958206803285189093399806277641526662635819930299591482655216412482476305794719517049177579004531675261064566503191158172109628388140217443588662998184714978680011605947758440687337136724604841182006410277460217370814474556415055231783765360720978681584874351595150520609337932433554101645065414009094911481944598737613163631462771947271175704697783719521046831506993456716896468436464902268863621481659232188839614339992131600792084151637440027265971965084008476721196648531144469310631288935915829711683775271418269235644708320311671144337196869846144751588389165495820457620718478035619235383964098515460311869010258644891795278149423742485326752434569646282139867387259637522469530796249087944131715245418214263223604358161115828329086244231226755095255757209915098986531041992628411681924966070943471139374250306054605000788548480656385084362482891272513566732032886160613481027283854709958576391895548364184026311030188455397494446404034732120132664829289955140342282084521007058756518525135188676702586519853741855127036470988694594373127365569722378603944503019268365725067884212605419442029386917353401009181338530907686084743443465950890847932490331399967239139142117857753229135281805203209831686531401882311451820614409919020318473247418959985829883803280450221525628761456956939440037376189489046092414906292878003079645525378082944228646570667845144896999607529126760661283285253742778418769942561098204589124568936521383008091689075104242795305827351508940009771880961908305110752628012962858765275558773468614302120805506837229169421644450716124890497532797758780635762687582296105344144677584723171750672520309457034770095257510336269800413613765731520232575311709307129364952303712379182683260129397772498380440602302893130508351495752024303301954363261289729853593998383643909189859674195590508847997372615999776824764416722725593132981102050305694823568651768212863182102008779804751045207174760593191163577564381471419137196381591673005213856220165852568552932020470343482856537055538457514675688006188407871592790162026631836146452494506802488137027260347783871638924941306385078843345791593743510738809976711815467562015333864026205676436507513087410956201938279346043981604496803248877659025806076673012201416941969657377232825458183988413139591794533695846592823848008436328682494826014967868493942513386988311260406210503190181533438431542830022792830705014789954353474017107571919976611467000077965614573160432323493097554185926336945353602961474329278917866971675100339862710440338664767138106151190812883950581986259159368395272363732689343817302974952142713277068606121254889719139367150127369613033420022645830075266946241335840328057912002205349292142883218172602272841506046876754105095476748319013850920897940979051398579496486381297259388177092359299491934572039544966690537312417498232201547174455852857974610205578164094262832500585245160501042640616176320567141543966986052373419595592893147554410718725501164645556536136713745544354170063782130877913062514478117301739308807199823908887798432364267274350816089722895233692905327200185870144907955137053330748650051224270450512731561784596625802822359922178283423729337128867969384664402520484332052791167038803247374600848860585892614429880338522312109866494013077319777099601890294373156082669650351364480220824930223244506349554307255433556158589465892014293047931617590882269834883693817591071021418229052049241230040393931201850727276905315849327968400099738025247811946407553324762257135757979109904254027345889706133900805995749881839112436999135644460682625930854684258353708568525248431070732310506234978091164650555686200354285172256497896101444085480950195751755547914078731119731784765681322439365105752468285759607407182883224355454507989884602342801984240020594651582165479452688463256471714103890711039897578258010524311097562815918782562817493947869375444002995975075401142905234704123628104620823017537774323651970765837051792140682765938610522620233218716333684412492239267693138734361343610417887712306020303745820579292503320460896297393015718742319150339922903153749130668666874445917505380634394236303645069720766739121320475857929912829242790202445207750599679567915275367655383277786245254708173995816807295830706116911176650496900080317639042892251972496272510250099499756442913460059480623602523830882586963677433120962357016061214817021957982501885103906453298908781642128942578212548411038525412205794246147139422335563888279961248057620373217744016018440692325310206049698118520031116124995642814873127500278426325456313558136300828778531387228709791508286491935800905510209320037007169763687036410466186181533527959480396672972692009792608155435096692003665545505054153899695783548711637092006404248401382382068734774438410789991218514059048555634573588731838617897971291561766145810798481647778489393164538112267157615621585194625661005895549477589060014219520842879777268835403052106603163513316357799289393597534384914214967017820994235938086102233684383083873534481319382790260283743612198859456304570369433075252461308872105923312630836792628999793772030850334310609700125775410483972704451215896905275336466657346421251148508726349235993075580873803172178536776278234188214812323528635666386493410619880309147748196959389906396654760658443673289646090530114909951795863363022576350955877000143712590888889591500121184476466739076928112255428488506678020522458510580571573497922555700816698998528915563967806566479329902558978556279563286208719980208015562175239164662837947665935387588561932530688962561525532961126642843784395186440284288045550265342464106305983207361683888359556586323496321579950766621353352969166957806521499152121318025503435693547442396618921328254794233079825188768424155713986807206764273673421314075130614932847645529818811422641072926476112206611389558971150090564733088530138261582248457135586007168119111925420450919990866890856690504748379463871372872391900107158714762089622563711753405211648011271244785445579483364776096872790314406730826509451529259635080990514826673412080358430335957755271355634537997651942024976515320369123669951018164081150010569506707857019163705761119136506587989214235619194279429576705682725616013200710718359261968474385788706718228478970803559578449752649171733226874935631465680358970951214765855874365310315901918055158075155602882849378713701635563286265969110667713327896579709104403924935829072597512652418525799907205717418353658430554284492062085135386063059517715381496179528434078936664275373282911995131878177552611526552931581112966193605944432515559364662685513018178549153988211762265748156116680430981346097645558243314224720894513922794373332142991346291274324089402661609964650821191147583127887163327688824010519658371086442300742875706193257465189444901830123030380785739749998784048231547836761537460948886497471375161393535711142526888869568627229080259048041228675107734023034143541473695744357187987125922004073507120059171824460098205955713635976680265431578189528144899060016100242959059899552442956644208507404706280210865131938020823447724004528270786470327290984965026510754278465870782473896450678654119142468148535741694294629858227784174174319174135019053069867408623921751947137110944083385940621600494770438792199951974981073193319049097944661654701059433379792411564032509699980606365901459033810089295399293256244986230571196147412363510952757330986537415561039563054878849257036962167654629458112230999912128819999555436742330090341576259826211548860791059177559991205910109130998891459975128611254431000292437862161848114377315298201373482538561790952913697420036458335774474571569288284043508531616845490219327109109316954352485097996717402929238767375166234995980590920784206708562618819903194607981791519064564306592279886706141122480401920832845309741306596297639850236679769192134799039171306711098070476613183076325188296555591942828614951351104941015790027739942835701977870451722790833757013111775006012442915617331760909545461423451761353073108739754363433972758751970790614605881455815772936064373056801828611544190561115626469346857220103176808106331903830713233521871285739548685602284973360028836738103678305255751640469070233695719154411895264798373120389304696979360289633891222583513226834512461272203791631900218754022558654248043144311438880061042838239092715388089885424271944811515668107443628683688955895522284648890569217531653041973322653499857364236970971395007583318089809629392593384139249019981192347759465921678996427912154801576722163937260908761409531453486852664964227374782341875219633236443941176503825579569622428920564951918949373436939596627967884542041510985369998047657795458282896592584259651878605845991922326223005428501844939168963705602288964912483139453703738098251509274390461297095451025887341942793923035241373631789591609945651439095662651321359069961561983106513784374343000317377842339036246770973822341334557047859179906581064044488601868495379562096852781193224437003268743130865296536690233833422521215189011028980347751429530965667017911274259686139641985884928533755704181111245462325584798172266691532209551072542648712203063659420870954553524723197572060200645370308932897364902312889953963767888591126950202114509329681387018173490454510413452040159038516374803950366867116493120683447866845440339984549381384052880960866144415908687927491524570134086254113772550019477667333614330790480666611474522567447031910572302030606425615977695467083673936723299752366666781650731037514693366319097853233250314552532964808135464452440907330397040898599135521552306693303928050344531002192939687046760145442887468605198169328766005706241700153122231461604481300842417641546072045178339547061645517393780214940623766480937497468958242709985694058443829495678895417937408581738820578691950088026597764162550424913540755317950697251616798839988102154101604759693603703954728440155962920852967235477860528657179205422333857602809379643671260675442217125613198400624812474317172392906705207150010269362183533230010366602614461326753143272637854937760921953882236311401064158395837113890799093139815281961731873083255142755246433418689250454779748343755243181569506577443207251866404601785559631738247118091599177195096898840449534555963978341049664975369014087582079046380953521662591598562829247465816984683158868737957488737079013745601871968139753597095166228209564646255359879864535840768917366410849089593711813271898998692061756562290579474917672088503608969872214698753758040940620097566577769060840940973449681911266002876450407006127894124397644229916678267488978457449551678960623505522482204121048641110433576169181626148837033371803505028154941441124144166353673212076827984554531474063032341594073918561189971485490618045664174253719383138573884634101103896598228743276818921622964194366731499100865826382925852043119874644341340790723327824046985786372327634615046224647692594947801959491603555904834255531256530434489130216620983370474159817456270406868815203090690282661739478750296888811367758473101983265113101283753969774558000229884131176230010724667964987738814118268264714428389236985384973533618790470515508606580313962976398897685804231838411434664377548517885236838850657800911581198094962437222580611058393248842927238160132662285801957847714592454317003784726190829621199294399097901584325533718434055498280331202812536171783829787755285646440089796283602212368524643711750131655333767595274815910145913043638373748194697642740822079493103661245895984262114661994542464443441658371146608691359678196646997461769524327100802609455110460455927876389217260474294733179290287248661185352925015027461696089190641885913454336162481925710998004478432526458580975862599591341231864097636435809256895158583459146214878688536931742667520979703027788563572984824457637667141294455012734202954492315965987147819471810662161774210053261239569291495106195094840226598721755203141287463852785474781059980635504362145307200085689303380567014864644414800139356628523760651249510618660910127798682512356186921327886710805465729097010670802935539333670165853422405522550209270769638579177557762532586054899010417019081152935293604108690434840157044339222684961616394645512599691597106556515083009236779201801574001624198770700825857712411523054455685458398281486770587467918810226939378347407008749472124236249422256199238496702937752229740271782111132926229837765262123818085839624975069060874116084168521528822798110678659193766294594572336043707961663694650483644022643142288680327181376612420070801454381289316638896271973425185360129887474593992737744353857729450438874658385235906036484369982445209626359026005965336787865930194719951688939385292640957076617787236466336816748376775183469640740926820908857061967787766758264427239647073830203996355619243329060742447095280489547319814970845861684267715946496454714224695889073875551669012978347006442257336091193820648252670207677143869449729920130904089686625254174691004378132893374618679148400257733304046184407479558471145180288708203705809285772136302914499190981253620964657690353901767095488518063262442086426110584532779772457632018026934636308239848498602367729784341558180894144711673499876204549488828107297351113790067487792276372895946817059579642026875252199492147226384826500770655308414416595135601967990217866351103518168901703739724584169332950669440333915987004022775167742162650047692653642944616544375490932414484227253559231060733393268342053087469226505459780290792307148190622399599685347065669299998571504216361060141840253388827894858359294560413379424032833689797795590938471544581523162562757592224238113011440290497272122980173707303333546672851140201773040598301446970931658202928113679781740494762002220865658006002306755806110367675961470383798805844578816901919778144921357198515886285692906576642996185561883619281538890334916656454374015282785787515990477472707622427957458491367333870254636961926531678440864548517294459947836957885580712669269834498842687631552426131096529376097496648459288175074084446820336254152482423943172251019284148274444596712890882048310851831677114405833677463488656678582531938288811751519340653793735976802518064602337838990978103646224771618412993470812377152362450376871953625510191107240103065417998021333343520165206677097586541141960782691108939260149858550397404955998802175956752349062904264498751680096495257985074471795393914469544066801403889790226539059838151291947685274056764152271807424937056187884954232105940313482158681861514272724614070620582108814101680485373150733587089920698481109748182631494833034339777331040237436369602243854602746941025135106327830632960875232317076989880526090352099855104146300394872860781553459264920617550984500844279199828266761654593611151389428246314357651420037891478279770884949179313206571910990690167618696434307134739125635096918606977338901264404683925706892527235974981202192686770580186875773899503964623537533574299116167532975397102125191100727972434210915121147087634022504073235767479093546910753885390198057367791660516228699611922270348470893361980122081175549993082822904552178709641069151718959597593792625631592719560997093363516423695713392287634147374220566581287083382048602585048455663563640480946758893514735562123991176767683488161210705582220353892642665331911612845211852255696116145904790746719461331884102584433649250681321510267171287802626009098133845946307801856632020464505061139726149179725717880769525187171865208982890520598058212331253775455627812068456109572863847634154514832074953357786943078405672898851455619743873300348280300065439475731233096786160829315850126368625258590594911105596737120591015992361705050647814196129163008601373980930619420562925673978138420175429206220336123833775667182948421298389933816419911341590268013353599536790347793555455154127238247429569565696986710364241679548806480162930447631095804495082975184693843855427101770937488568121942255514285370553490289242423802301263043620233764826706366456976582860977818289253723291384804181533897790327615509115704710339483441040274458972731653022137609737918422700013406424443980574274390845012053208843957322901972034509431682765541129575975211941719486975021593246060625129917589415944808577601824739476288478817034039721182806857942376487481493326313237232871446967646421703094716421437396537789221671154545763293433932484501724618193523993421594063715029754526003024093577065152078967815686065948929035966054645747460184008692633181293141402753280566290021254548858420864855797170602959872131145210186473747991056078389229418212395097981844058900943474544948315815853169635025432613283692440917850155790832383250760734572970026550875637150779002599174727404792828685231231148572931048586705958088096337409150047263209416583723319052166672915873978939593886962193877781399187918350025127012324092844428123298652831551483058945864733655030158174415160845447764798097487823825820677190235197742126073523618159977300558620326145158299498509919655857345657594070935296448263862509745729502427761419733559794578079223846302604379540630040160984077889789003346377004080114233045889400979851515738764275506556881416042733152405169440337671482326147906608672993397731647126465636487102961072469559374646036147266054435126257566617676345441651191268807155960565295150538594100723740648838195469680001586529164623719570983951093749617820204183769110772055159246006674126698644869650490296641459649753571707345119141011762099720836609667101101124455837218225652470492910351115955908886776221086891926382586627040294907647250978880000140159266060345127556694063999127037915781461466944111560815988465234748097320390131145666797758728565788008450069957033400702956518770595713437655513333012351738416066529132854338053461074112969310165061702182584129791747431672469349508761510928355294582332240384662484383535029919341148016053586246877735747498333345989322267758378903038163417914907117049408249591088258838119184541795079863531227045074507830116232196446078587937509237379615563350578773348107750354269177379244403476665260681045780614473765461171070361592106211814683179968137524065955303560391185094678809799972334472551204003269973530112564889771109339641231250553027810735784710610068291138437115675142264137391285259196790733818845807635537432881011172771204561292943352035753971814317492371168577668415534777688635010370283758032463911330545002473068909890313100067789762541794734866576747415076753908025380884438472537316285914731854692700636101165879893621154509529579620626306389525623541004331863940728333600735109558038102019349621595114549794066698079486227236372430042775264808387695940694582841111318821754132174284121004932561657341942026289559568611894198501441689250009156644012226616645426611205366287843534006152254641713760721286755717976055307368242111382395241631420879912626271318632956106407515142705616162453933158172133967843539871152492690278956509082435567908731371136246215461305787104764889473050258370641271848849928672870966486822114050292657895577594454837208724600924212605003755612270541319643563617821219524341738841096910259785932252421272241730642688193174675824608308684540045456604469867927581978463684676283082251470383678046582211898900795652867329786322928186568833917266674838438396857033588427141125138779455326497953613500904790781461213383731159647524623353812491661258711332653187093755593837940386581537902741349485162616665611951302693609437882375979174059600146191384149419002443520109105071113181749859844868081330079280620221403819397216668170139762852861925997278531924422790740356294390573042482201548261839574185834639688935673402595797671777203544828264829475631775955307528723596252810868774073385339005835379067854640358887700705169747183046619152468476619590839539997462145414614088842175411125303847236784597732244141001708886637798252713715426809475675644838974242983605198310792726536247381388443453126436299110399800186434037321761747747770157008551960682464122570900113540446211980669982038477582343914274202606567700884460814932039919385319382860835341797174775036310146144632734750223603675088649580115936987595660559680334707951149594749638223437587189516198414814961261961248062368601469810253904104051296101452054769376753661740819222149408572364891888833759193709328585572592581047025573948133907305509460108962125306588088775262236409451122457386480629652514090536067741753679508265103065484053955399105338579436607323434892781176976010471018410635407131674921758529745719738676901300717314736668004354039862029394620744868579316433236600018524961710505613202430888925442776297102872220772012419742083933876648469776062258053225738773237684302435624446778912754857598659501775953698957197595777417830866561023002022771347147076498311976484355089854905604394640442149309104930664251018906249429142233779437623837867821360772378751175967782987572478452823147290931993535317963277958531736031878936280491948829901259854294520442070971025738893077451059058142934357044472854793877365689490201173763441781734898342930256225144320860424949123274955154589117522885511579987095492007386063645906888856806523709906628173770651704769686738124244501908666749308029512017023106687589208524461738193620083041246747638367504607372140608873916083563351130414690491180579282264272957527483892736915299633338670129942012764800993882972956270380408104710667917916070283181794595814782593132640884636060384922940284621790132612596138918045899680743465811083729302245110563917063134592305327726809357321340851692025136615295489165076311602472067803897255665554423138873352521195147860856792462924258583091849873730448867903567757168971224515254604811787854116543657423612925515761418632964295142095839665336906440669380195069633208890222357414651140884627377971511869958069019970806125861430957062235176262953113495293885143342932450346791055665816089015045570281275625652081516469092593277574950314980211030842829247417623206336788113672229767180515633871515324659097824418002371778911045236183245573621456027102310448433665671477523100827631336703864166909422665974724250489329451627384792500950549226091095567394220761985722655601843011212624698095743886315601962812971419467581892899185589851167092887758306294970615661934828792667066597755469704338968992975211780051337447662197894634751207207348035207237182032769249728412748518784000996320324111871050942482064539207612068142147364502983670678690576036755242144733133572033995977933819638834776521208599002560661760856317772297412014292656082295043556276769630343492504104857926923217077406666830690831570349504514869855327117538608954853725339118960248695848660475092076410212449835488843387089001669940899926968166267965992591598067084635184104405175953705379035196875629618293550432616612934104929428310161655346384974414200033568868740787237268428783428562716222994083452911813907316551793444341185444125596538718364118992315032439826573399315994824584259967237997211816446438651974450663151093120693491737565769565841590118241854926105865011782929582089029556155626365412076320162787710594799908954761814925770658965287265289010850758265540988378791240389736398765048901582626040845238295732735840863592739098423101911307331538461798647822848205702857527269998781656705118707461947775621659811221570760531220615636541306793200816206124309948987103940527885696791522176359936993330905647759512526842928062224610094890907294722184773162629019314087300854238003642061130068395905947455252333797628433436485071977485073060802072381365118007144563634578608524860813442132293439735757869521298587682958358000933226101059191262184926311986749433412283141465123500337240530224159049289637204289885008295310337149101634921863152161554429438744307911778076611527277982573431508839610141034360715551028728679069554700044668777733083887253091366071422557250974827451603727748427309044842287603921220185229091271123341582272713797384991283992529040079470625040325419176143609922651704104335724306463574165125471373525329232574233683657739648534118806344226360449601506469533281985216617993449629508928399416953525351335725465360445402886366690636990743837605669706718252836624128757282609114797754703533005660626302580171732611983833380604858883406219590895373681861068144490773878365369289832034306722827697440960588343068486187194157944761913849640732560311983811202045979954352985687184312512931786709374995184638993466251023177946232356488715607136690902196830560509849471445405939554832711820099755237681425720810054191556011163537484652682787133262490835060589935669122729041561221122806982258550459659589156645941138792863964475398258312545294668133244874055301201006688174439291157836343112590057069438791653914820434027638563749802040637023336046689205575841099034737961709718633347877326716420330212905026948328550333323649156998598932096263254288750286440118877391171272851266075809939522428457726536972944309006665490961633571454582556892426684441634392683936925108728973026481414690370292007484897819819742399791128072010526117858687147211325543891200408972228256796110012315604817620269426240302804819840167994990328759454344681155623156633897374632434585059745900155146180605615677571829493890515970502584896591825991015876087850665971955884746088537726364800496747269548459573556491928436607498052191508116259412711323618286050049546594293786590736078531778031265510948538185172556942264384073605259492071394403140496200246702428928506458155769106275481427910106342785825974161655922029784690757652259136136989445202005204615428848865803627573830206658572831288467845668005685814594722719149957738715987813432791086011003295610684614094646766384594036045039985355371199952257654437505107435893488646892919858544976267039191173723254364727171157314025185306739521962167871902362546134406384790372512165976185913797727366984079341421524777912439428508424610137297204929570400835177116815099960848981475106097843312970165535457843252550666553194221642211453947529424116965016851570870782808929406809303406650799110245719345483919273724046956660937009527730290178091141150998450983178034142406372302859391902075139383706548955842953367678633464318950133818436125321479325724818675904408743395269006927721764632651290592854264636817781928139743485670093423331673452655785263160602001418010244245380644365261922302867658674124855409585659515786176699375995445032247446946122430407791143041656942569059104308114245331532574151295001934100945275521146828821645471230586377696267309129749863385944358575058655342141984203333803439828288081152466757416943010685155493439789008128953881550693451042259287765087879291642512311550877661388735269348757240737383100951957584749715099826308530841966754496235624952401450543047293638171710201809273773211188881912991594653358465107181940223066046165034633600883151231516934469700278354096641774427292721600005219668173643000488895407875862881521716155345424383371559959650811850776519079328052768944866656804767876121703069802679072091693682606343793634424288716365319794777058550095766752529734709880167654860205227219670966946234957805117945263732202477834718532936918461289658512409923042111800028057638478433882240320918742132881710742615101634325324939040116880444472714794076975380599936930743609932484901946945679836521725497414453569948361924934516061596357237235103419585163632650370776871793922958041770475573251178757662129181617158275537633810810370198347937661253505829990860988806154936359679241947010310417273349418424859058083978905129955802173605658793308224319248822131750143135778460406641642232603028953993828990202104787052341588755662376397218956404615481745167079086684075914324383076995177666105515984814481686755610881276413582477712191166984439544109901142005527053746535916935121134149708034562197518234877287455810369824437716498135338090675674740446855752761593406026979822065304750113851689846297497777925593779990027656332164441405722716687396704715271250979497010983939212244108767575992194806014844779713386406092626994953086085871784320431195544633308406286207508791428571854994168670836460402806107523683727822659823317634096540179707938334482700473763906715215650884602918303848456051458628700862159170993916476566728660988607939746661339895126080396492065060931310373395609437841030711648061762802790619486955772193965552720536359776510328821367277279621271554375751651583258322771323700126185361626418198597244148756325683363122446554988384407981829144478221827983993807292992314572187702653339400291845946775193937878825778992032110562704381882182926341257712069464091183035763302274511871081261250130377940133916354606262197333806254934694180705175557348147832519349270914262912406740297503405411852026602061376142815799838567044864220340921756131793359546879818234923843163733022100864943194395441903980436704705138393610648572052799866189773754708048598001333396150918771435511003630548428595543574419439637548952029777263818468776660253545597615523092915112290732901605152420506637744127858676748345057647183489135109134465675625197402188265084439932111347657199667021984268240162563248114845072137465589797785714385587057043582268108877074863821316805611057014987270367744464372937704735436611497690660454081270446546570861909628001649165564622527599917996195710175016643981799308608977208120748657682602899335448576186393650109663142335539970387977623892534460427523174057973652408635591390355627386683507675326226616853821818530103863587533163836325605124947474825549453596116781077760200159448378414844929678768052913038617436498704739538086163485362377523204332922624371612808796344787834310484965362453809540677678472809668403911449972739915045874413772455711121376536260018989000677085737600863358338903670347341100531925139001409312257357827320619157340990066234893693323167921948682906166286275673838931107303582156293768063052845758983221998431721368870233913359279393049673441687580112746340410834938963510596341997210327604738603642316332982772656205280621187998878175757454957711011990070346271603794767609463018416485117907813484698872298126160059576001509464046798925886530373470349537905482989608938453920346194856045338886820561628919850270372097209314790796947154504423987124975518979886919350056425581195686364256636393110944520520664586042305139463665716330776893769240853261347071395951973689736652955526034527591000258508551809416952122741086195201369831678947095552124407439093440582667443983358649597839900950309574094268044345499330456764449310462118304898960176170100775809207882650747606910998494600987020774502960506773909567233167409494256383629688936317759270694729598918587281319913089892615121525732703053497289141956660055537482321422693986701029264075394601353205772927739615861037039237297524413828739484915297145063945883582322026421573960601327931301970726280396481318492971295643996462691735144749619633469781612410274005512496677592704363309220787918473387916537933066396042616813693931423746061059819515117281200378290241818456740636598116336969259842076471157477840697656578482718461277756445426564761235247415647333716057473107935367780457612724651463767964957575035303963136178646377161366242863480827745792022934221178246898241791653846774454432356689213231573616958603081023673227827426535468135752784163659329129839925593529690563875108031062900874580011475311545307938466022272737660934509853461595992887179420082296019799352528859560518542321395505472458249676283786746074036782840309051658932556041844991077186570326177204456362510918151710017109113268606918260620922872144568746909398491746363478737915632509321309912430317819930621816329160872265977679083899281202475495679446243952217535254950553096231902406996819924308457995131936799280080708871960024648718156423898068571250624336097571095035122668454738285153800982892548145756997855524939800524215103565147911649667010374270235952404519106412057819948557527169987996868035967217829729173478294847742255133604946252472454406496183921053961906378461302023282204326942237518567834062218413554936012824758420181944987890094751727705315669365317938591400612135840550018023546419358767618925697183899187397416130099272289747353056977934607335662574340704499857406451004287149991294494883486631768994920123893954170442373036983251191801038508722421203355156334886656426222806800715932063645516554610289665264644285773464232929877551337921940941930587097835603469779815574681212054936139132233371442893233162442779797210719210037296286848430409552923482734183700330300697048957091133383509629584938755374434936076485840721136267594459548595375907199368299308300338126446056414158822456263410278288880528403146765654269084051423859229260246049228716452604278116072587605591474101816604557624630238969150878221623900087677475166234588507379095135682006760398597519607888811480579509267440284859106480016694856625514740739168008927061133407143736821862775898137552048802616357464187187307937062895295216848486861730756014155656997734748571127588295212183094193870089968014772746646122312904750264967963074541894447372450097045428157617630811988564881568907661718768930283648166840288916407328023605962328643428230942419467513565064339970890601203090378553441322953971116286703195245615470871507039436270557549191973914633882543150079200487621093380875351785988771058782145487947586352876882294161880886193192552656148063549490906787279634563843061112795979340266565373172928176551309751676120994245721160540976940096396323946746778665526955824230876351793514686177136440384040884260231817707337231724118816562856928506156932355147794354106299537939144513071471074475754764777220148289094247444998407700608651004427274620190931567392135814398020988517689409935910073294981239368196121407430476776686544057725201915144375710544879944761188389727798870149270607420702912432649799489605013059747511283736954082341722058989731636451078503585629294379208974279930758750509271415864859154611987159481851198215402394697488695415186864865908317840028063265480003774508632289271867679133358167038352872818774551325090551075238750415282800103426315390869981925645297113356244080914383872893746180551597446074955900425036511240207462664354698621562182573209798012670334705035541573996949023911392134750843576937686595415809140866045872057990109043151596079658872933228307900222269288545404209396544384443333019162699229492672412908314979603595273733343847626612668127242425545855030471750945111445050206530406936028398588162541504948231592158587068345236653438029079773622407194519474766029073362136330680199726709909859452159159602515647298282894756464128789956735381880191570779848683784552883910584767845340605089474314721106358220588312053895410329083782162290817807572891101502230282155649197499692993692160544863646511311080676593212942006625210817694024431473024171850666775336737289515856932005500097333384564253848094265971310117661440460348656333311057582425620733760117262492363376222947260632827409358669452699023893362745663704314384136272015087527672784731610967201069260341870651705543201248526320593052499043278732151092670737904886689612590133528774419912259182794748741331107211353985405990101290009065073846163017230910571280304338448154502809235392474070456291634768848160439398088229878243140803646546615990074293555010702219538157242849691229795312710893702497850563716448842539370450412176461112067650515793015512686433658229175616644543077280319147875328028988661799984643172500152460670910003083099933123889110472946903966177231930228064273671149993966330101344991661355840961860108952951351941178376110164953123475088575890982404338091107277501199857350844485786256816227080121788816972919279779972999083630188136239987422651156055819157782401636613836787638885153776613165481520833547793413461225748656565662549599541206245598327438159464159270525711608678397861936801819106189265841229857587347263166091953381357454974962420738853226285400514345841479875955157327858709448560462640437689452927967580888499909750079245007833446189203965144453953525023149452525311038784271294025510805812995680658895958282397340730664567439748933485123813294094581146239996957837149699925122819844749878005806355039390085852945855194985519782090151711403139639003370845138592862193811860110818427190526824246844514295640252177249042655881900991668153609709129022964166068228437713950415553852926038883737373320465990846107587531043949686450768712588259613497499765838577507537492226865782016087464735156517246799574759114651741068072921471094925602392655679540498231411630654681472339985246660086710874880907971316302791198057539411830502366037926664012144805648813461045282789720980373349721184791825598375952378774194360320008669442952760330518062929857917717340450171601369453206205363143669958749870200882798128754582222979260725768611052457854754805401254026641350450833407205329437699169191698178509813549715918817514454385377187953385621115967290027314412387519005690683695653471442828262580142925758449524770875430733859272956914746115626880222959074245197923476648550510560939895034380014272018416394116372345963312966999105328774797072809435621167147573758617751194795244999943597381733674459916991561513559428017842520265092232026209366996232688759630910579024740260707222378134988161016034214181870624183744864116823027550700260579236550692260210158698454454624225834073359195436579387137856298119462665649866671276178738105157278655236703581495240444506518704230590353849415597745319776356688303882422256915643310489650347611529042135959934009568272235523828189755987664740767294783202257193788802220914926903450460562138615516186797678475587205443194736276759370107700424608854503581054676769267337284611442506076945447662703639134523459580996170976596245113893724364512000079604021662815091237000586254850368472220422481486723611252958028025670211818975126522252622400425203388173542875761357818869537288714500203680092878550536482491235469991397283165363757851684915364767363786282660487693585479542877090297205153601611198138649053157588711614663392462474312335825021262012446064103011716183250777217600639856945495119300857928584923194399317750458157379710854874335300293580522721986234961748216326365567764184759539310591873638182777154500753807127971900361692863318888395107278035424773716960525218191778072483724671030355909135028707575708640084321734617361261063486067310306369683563476733156975518924378230523580046386978048476170648439883761013602853143611164834288534651685347845298505780770908937654506830232228750376948333666343523234841327256563285487944208520341575485484131540034760498993466352625489203002490861063173043585110905475641190948297388557133991050711413110314935392735090763514376482729388727814572414933010797000534985432352379055203513996647444308744936181612619049298901844508528176079082749288343090791127520307955771864779182466934199444302182901835649255165166911810491177937495125524766098297706318205920847649976942086672659723495227522356914550000667325589587417283423865906152101542500147652813385469687547867925410687493187293867388164183478426492706929864834754402770771271966185797220330183701080216260716372363175923910084261206613193846946407897658242123311943645807133937057077556913428898097201462395860902311017814298351162261450769540921835220120393380166049998870381744217062320969266651153495198675626431890176517248135859449993249522925419671001847456042842555698426739662346447530986629836303288004171756353933527950626199668007022459029870307345111718241154410143019888505839372617414511690811788311590974449847798939313256410985892352725029208747677041631346924069732667884062058699917391839618589973182383373640349885623963500250222330058131017379533703811799774424009762187429987476398470064417458444165081520238106297935830810455815600010619681653350136991622322058987096936510042467844801888860502599685679809717952265639211170570463428759715433640782266800399502616794495623513377430364834009762455059629791255764581291834266723774067862992239758220449169192708151207052773333156677716508780103363043960304135048382498235180188081591437893592613516020612138830448614964015415960711820640143418411946778828882303233388194204019475914069846894342804104575624123468799229852133193459265064724965094001329915096631162641956387381319032319279675657487146042871265726102699626773304323473437181836557046432770866784611177202111882667072772285572648874116989060822974658567888856079213963417574503474867683705277004180407657477949905648201404260470620474373033538485041044970375907167026517576117101947768040512378462217965101547865691252524962526920950501553440624837940481219196522826358280656798320530148782012640286057837646636114942477769826051745270881273274371139481977418180529159886192687908112896095993813975631048886212832420435574189691970635111259902488076203684322791945964419815061250631654898062822386601432281826682601427210856616430418183271297552173913334352689086946981011891459219049257978916240831517836267012768801249752679225926562087158173384388687069436220687401669230773791114142022714531636613910340169214077731056197355120443937142210496432753969323404343343052717193536233455601666163735910964775901064351115423770367801664033913956888921689793561129791332875501618920189443803448798823728253327232788582121050243391104819310403054461451011992776410210011209479519901267524281993010542083281206457037578846964062998363992402561865330129812944493071178656540281061953168462249990374870527351672509037937312815791834237806768013495484570782666723803904993778857805879689546421048263084440720201149152348619406992795734388197429825050738436892608306534402723765318833549434312351785401487456857977758611451798864984104527181301282087956175934756506754837414437574215185606587889748540790520108473941309602511154393967325297607054641178890127714610221399911655469726465411739365022175330224825344763426508589655234495319828737341125769052439748558989328745104644352647993902568181610074341190778509537695744109920194866939720423014296657299001441893208037534167084268929521979722676730129321700499361139745642921008882264990829200708923072001467706853275935671577602007440897656290084711590986867802310844556275152700920760146127984309734574143728741335576255000670142857156954742486295288764879124496182720985128972598855601875154967010877979784541018683131846730459933381203120286670696031547443456235337099239402458454382943289297922978891981432514181817022855129751819434033226084319157618278390692647935112155582009569784224688304292817906952935335317285440251505647942326400605767999928946944443316135926260691071775127606966247633209786011005776106786433795804425461765217060513091163149172158983220479410601645567803743014335914009688985574622583174141786816521510640971384012440214549407230796529457360246408491865720915228282201182762958806611840959502336945324048750990391686323162513699361002319536295842665676268916427100848538765564766352545207827669583731286959053475828718695327955107781109471480695500559584065194103822355694323376711167894625014265055833909039591592981435728793638675548145523966107682954633213433912512102261150800465012388780744182821337249480982777468436841688226288640526044263081235644463069725241173280039682956871045805881870493822284420391073322901867822395593006150428835720126923650270271194707506828195605127725434081605991799048314605270125728372568943251657311135860489518359306712328994745404960635173490102695689211580609441738477377547992678238884452765955325002023137032983811688548489976734957429942965488608981147109770364733171604798578135588352796311677227084312559688763709229755327467297697279288277076699879324383772871607908710142009572557687598994584713061115589746021203126978242101916402624847723701011758695096962455176756954460476052054270609583499414065554468904423441106004318553230615226777401019235108443592043292923590569095574654244429975820651892946311970868885070003772871133884821222448071231011746199748535016992232439633099133515818039200878352340268273158742755913050752011695675276678146917455185094535739557304891050125643031438490256876123223496650216428778452074930533666582886381661619695199159284823949943745727446020686707824623001335042653482783575856294403184934700207968081726154654918990392724410080410372870046985682316401013840177578658358830413160637088194888747621315381237340923458248318273653086327749837648083638031290909961570276732688716270298125337458563990003948118497325248398993887726739127094787112590793220238563078081815157514142409752427588650171446055642799019981250914009020402121881274672886592030829728359050600310351309967582081403605376068893410791747574149256232912526149436613358885856667421469080114586533503980475596547414034163352563421165508807430244223449207992389630058705023546828994138740173179036512529316008034076954112917541771029060548557708588415089245500564300056699013999311067608482856701079106737498412879446649315546984245737092767155853151699854169741415614837417270000531517984973482315603624763440942429407796440294663332852109435156465340307506392044971465760004586867081967215929117481646814124504680600070685294472184817305304115997201438992549005939015479600542971080066603922438858659762754287196610641288151066717286648702312572589828998070119471343550256092269436925916106525169698819229719807419598764246954139627243494370174342607617335721729227099019839515314313793801618491814535495867597929140058238411374425221284467808942678094338508846847937114005352609374593244378151914930772911137807058917423376887169173120851789942876479395211304389274308523118333034435444610465790342686050415586710170534984986754108261827776754582385664708773516354868808482012552473612550921162130150284115094661176580059678748338249872676287187985695749886576368964210732070301613851369536126571145514148143225562415731395171927413764796736420492200932530868864404100264381042508108157330314618381143836983148736835686500936184744201109006645953862956941483188853801146257499378894085713387040904801303893373136837578361067147755713526351610335328247291536021264513317950726080663619212985586209931017112870235607713729687692604508339268084958729531371593297513672605183110021959882186021701896112008886097586220674862005015162168781614117303592436132593080931938551143753766506609147231215090851364368315252651254568258196266176890621980164497802011250774987369726573150708553694956888332872371282019075583883212582879482987892931646950438831344745829300552469947706544350590971528998354476574663935760054307820563854519466930774973296281692063874161624980309560687859475361432829332406701095823042295652139102788227449283244010049876868800271306855110218063240105704290539893480617098673508257027984217686942998100131423072227293772493425384853129453085648743067289680825510222873923472018082823729699663939797140790002614190012557497223609894736881383843446394982460898239973761860925929388062275852160432838577200742091648471141859581426589152220572337049523111140196693207044930412997524977800727205261037519805315387299217977188147069127041088211115605939943557449915802097070943601756032025053237135498361842885986845306848159042347244516015806241301225421890873462645466066141290068255196084268106994978589943633822308518625263520085713991882017785118064645113506451229011292963555221650465106114870789465033165671018218676449452252099085879043871044313393176828593130339529908881457471620325440852530575461820466366785880288683555877562281967716072482506476445722631193728323422787971485618976009620692486017897385712459544901851163394968884788172907515804256627770166456269788798006260535826029431666043785568150542359804926990014534076223201291627946235049018267284845728143680465932859835360267136349956003149708275344230539917083455776340816014417224766805356351057490063029630674667486476750883388640936445757870898116993093397204746229910521568853852707129840926867703066038434303123100087785510361320284211309222049515932191150436163457625062348243655429013781908577375658875186033735416903188085199702651923990399846461815241784258783848685943892523919607126756818277727891331965105092101188992204880447663034513745074119294112246044154490218376123688789849244994220116331071646740913487416776541540857965153891763137946043768768480844183068083031955858028863147299503359789732180405774836130517866364197545601243744289353656784732917651673154172736671460633429268773462777179619516997563077976219464258011536722121867611486079135257249907176639100490069753909977398833573842893395274195255696048135321837215429615678269346132992229845340524448348802218026916326129477207113425374586434024801490704338958494973850213073183936680602034362290184620376861209676102565431383499884441218089518767745563594140733277567076275635345413627248467557763241619367280698416038273519413041272970709524384511054556970439824185604211732193651398621426185126005203638172589687709904869139988243198422736952924570163171985494403850946664417113974164158992752409846729526550061778174899259869622140178919371651649779661832099111162618063647713495595951458640436094169464800546932695319398037216404014942494361296649442458812601198472287901574334651510211923675405093457516963172712236183858777625526250975588871647580286798457302724703729362042049129599605349037296909022471743467569400878895281565224578964316626579777925988151505136504423831550403704221513268795122813610994184523718621384614728125569348247888121317959935536558408296106340295430715941319480169810116261076481712386391855556793580328988671694726284160704827827778650187811214091592824417794878361975071217832171713373392208199692196377773967947057319596508273542475226990780811424852587978369248835177482187168474913221638361951609807832962411919093045177369599070262162500982464194803856222328455099654478337175282922406650933091123144168855940260104777334307486408264393692897286904491372854732296618317937960309794066693982402239357120084898161251408571654304990775994961558245590187247258582425011372184598325144083065761326734402099884431821646737686215213168036941425426948058667033025272260516305167825506094476813475950390933941816984689029206831837976490148137895087687931407756560294744155475509721063776553302778091168243423402464951879365658807296812398679635081091593843530576675707769705419843308265913045348849319274241890193488217465024361811380796473356785100609811280313145720031539344394347099440457201632208107504572885282468004208867458468811898657435641270637013354657554287140552748602550710641436655045605397553194241154951797561745298278078171958920606976868877535993935602967215245069146468117471590306032743569344042373774605568993095130710923131625610407258425937235703680175972779585425795278350762109932305248863071011250452713546645874016729885936835051851004677089506477266494099506958853778289228239197821987807828739033167468366752967420601077702551167624454484505209709529681233754027611909654618965803718685900832341230879685646259210889826894080855296794049868015566770507933814217592891157485720124832102094828794884690136752408747121257110368216932890406528215338813479433334599304808215805082771977003937904699209830415100837000492096359095091675434872064553075389069135847421390983427723724504838797249146939374263726829542162181300448123861537852891802759838805035454405452868439924932385573761402790863567493422726961467058450834516558525896886182100224146289145807737782545834774154314070072703728840333916853799727339960026085777433980988320151439785861940603311696095560443965274714957167106311280933988268218821638960678853851855144973417423367058220492983158957680593050944887533984353393671516652950731811054937705465301676535572354252961432344011025464991477283052338087822075621707102445248635112432340031858896368612618998305224631514434818679082668526790568540365505876959048610579365727223538254091118188374960517730246501609335936016865063804833261277396754079301100008760194952148553666219032132694752610087873170639950736275749041467340722253701579615757034282400141041140707679964129809470436741076985569171877363881428553432764042718385923572119689471995596420323487084455659751330162700477905351735564418714360443447592152754983099175598599272064345528020204374979216006569754365752132395223652695643622730075947808951922287675983773906925054505443765564881719139777154607239786684886305017105864455002012672878136308599787750766821845288937663379041369687356319775439221089554147459677031193592366337299651295526406643850594049359303086370927656246086951468417365594571392983556613664005945592447839095700520935918371104402785110393594043057868190965061540616914824906925485231227773045013428325994988227186507345455823393538051452958530049779297221869488863093260453744875795507596574262475378927233472322656352655919075971000946360875340718731217514819024704146204814471231399433261199970562473275618583186556189558064331343523244826644727897549164724367078084570305251099149762939488651292500042848419613722384775931652648275328872223177694967464261184413982955069320409060675427114539751695823894325893642734745091322325166532217932733950871968672053269072828373595887013447063481925794456220619227749530968465656360846749427688401444925949758301787750156768235853857632607605692358201744144361984156260218005719928536552486059884794971136063298808229200297991391728579016330924755002988102172669604040191086775897252754216852350914194614640746167917396116279348483228891472066041233324866399344419012982442440433572403005545466034067916092649593828419525151736392366398718450292078541596611886808749648720087925114784768130140122527030989907223483052164399365213190228964127946016122016632201234920621475228719490459076048113770889570040389846267378771991260827856366893852988904624664795152017595474551004934108559203874392395649057879216794222035299705865363745139471162964807976873851135296797403244155017793987001900506083650196244570491512833597055455716535593747720512953776458286741210981981683556125149809369923105593774247087299309333508201037166704836235351779384523895903488965316755764787185291484390435211593038975211894379740413573704040615832844416330255660266096639358741247871608975499445165421591829502780465550073974141110312966832250954524016390675115063133868733468106279233267050464740135691301486546525959686410036354020659238810733582544035220645787093980291803237163993269563278615910565551588865443649958586344426532214134078428464944459258640971927090801958297449010317540714920842795301796994857704289193035584789461317957337491306008700400401803010714386688095382255314417372498128817721323343387053190782257374820077597305499946026450259369579395583361374949451367034511555767288576265272595529129999076559559795741518273469036665538830244998457260554546433331815128530287014763131478170564876663319861558762042120259515886657755203174596482577645019670234844387786701394190851740700802117607968634004030843662083199736389885451274772930015804018816683310750741527169723980056156119422201014617597535127652594344975725052083733848702143061593460605464990411283950530341127082789074431493834710066155756614724916502793333577797558430928767123287745708784470838748498376471401592963283918566000200866755359922446593009789092985301909750795794885351235127188558964648063895388583417829953306411159006594366487707669608728117125820698397286710276700509948791401352201021692454062747946458608234262801693221394416055865051779231978384961228733004953988316339292253915887069549750013222956692635313660370809331585568224992823443004710907355352723385578769971840935088451900593672998628324847339624754942611826054959511340894623369415953273539275369975803778965714539666365940149383848053867426472141329334939827009350800777442945164195633635038143785662453099936699560833959144084126554630250160494037836801829054285635022456293524423069539092825121631293339728728895364314553675017422992717875649839096303111664521669400910370800652944976437420713384571647423467381246071815858267666930636431757279263562723232817723920665631369250823731294433570932910130198049882773128705540485803527987994894236593306329830122297189157767923691616497492248006746849625272827978495365258203428576231913874454593313814989735909661542626230793947112491145267683791278553657566003421262730161591726321121014129029908715171668235223887067675521408728698379590310001960625175523296182141381150694410511739298336737777089566118424713055356967050283118247731983485894629172604800006383383779403483631061769076853613966816398158161770426912906528687353763346164927921715755283857565328815930406906573776439721671989812152412211213719449171940735099933300343136362211884432117407141881776766629228703230884683628784461740628793623449275471198352001535437310815024990131071911035332080146221283639106187227759632983416466954686745011971608840141358757776372640210567504253758191570308432665647501015573336101242108240143508197085370933551089363262354538980933505355357968398502800415258252954921469310035532636814163281572543179763356970201012588198431703552443074750753682297987954108046517262341397002445307255708990180721030716920446863637710366285844331617017934283589839878495300712303808473451324474881167437881947334852706627659132771317465628033065586022947315043977425934609938807368909007943382520985064969001732006220662375396502349250253318009989165983374997646301017088524121289152121058431659559926561294785121104809940547669044339447429993815911356069920359380160793359309530983765616592436028985099919630972102096383909425971395784983484146966092262199033062431911028204169276908519076028902467115690172830325597624936818899846170079209932560836976906753431164666271100182907482565309007276318342350331147239739733787859020187827752402825540102803647520552524241430987192052691018123988695412579071400490780207607268305356739725151379870794496149321481708579364489246922478170004926543140944650291975625597707479766796044084702191436199394734931112070862553619975346461266191859709672418251001348500807665897997790079674787666668019894543425403282663977769164901655048319387992808490866409873568863289679534382893540294061573335169590247264858119116556848825603166462484447531787823754155475337455441002961469250604081481531217949158635859991135006451809512406346272712965329586457629968877737205590049910249772834595228755342603464792843147021002739782637183084656101247408321293137757867918393349053743295560898165652866255197229326130408071547790736430657537966562948508918106113622651870689471536317420027978624045543221141715169476196525207248478376332127914141199317918276371453342800977866058754748737729938317992422374287618526202961008269728485816323804693183435772699283059894297820683948708430761186813699061990898149006456463300164857344583917259170277686643549112393497430848247924440554602830509163573283315830165568025373376294859614301158908903559731828643592455213712091686619663369739902245681928334532419410225377322556287805897707136079805378125687658556810884384673140638178713327951596221055953442100597385924288393059597898291201357966425020522180967243391752187419895248568139439633506161566922211603178929435630784127016262674634171204906020992241181242636102086844648782339122685736410621378967976724692212856150983967614671464997215808926857141260495060506827825613750366219343859886875173536203459274051419650309324683008947879730368637036092326400565786899219913485988090495814990641177652754052238627952098357927621963498581749365308323885293447989199507103582442045834944087293467902912365710243219475972419243101600005880299464765602333866361367958648403205314375045990648888238179652923686389289028304560551183495971838520436950824001732012747441224690656184290669565760167320257564475789115222718033907798677590960719962746269620989303519016488680751242179197038494901323584564001262371250680722474068336573375182356356156099933393958918777346936450864175144498343012488214616046164944384021271509708709697785051136020222380216568793869702474267290785505300416420038239191261451216565265423985633525460685605551083063766849241065848625449617654102372601989250203552709448088441252479046179506637266255849619571459988922915057760272758008466040859745772306896751041423876319576372515123542566887200294166175037746114471437862161650438181775814200170169383467371582561312538681980083632003592426977020164305686998158576438915970613932948889310565088271993643341698783854165564367260421465214737201546736340243142673479956673353453727785753702982915837000800230934149262212694278568476522873128954897418447252696708024116887236828498994071266640054635278914398768789626625999385340276981721039632089853360431523632690755000292116129925195977708698292540526172496758329475980459575158036584948063014096349414835365956848295455187644519626931874454838025583527285598769299733892422779933855263892012455001746580067586210324729276901739049748724657645854118398867007676859315001846212801001546100911529723419124165372402866866652303456629909098409831344487079402641493464631845564755022257913948465786463494877076582485615236886844252029325626622484204634005363169854697162120971660121457693830818443250382502877780740441754750970051196932248340778813222847423023222887520068230830154980001156517153722355656518829821048642487961363934957636066803939369722525175923300235795176217505940323208467467468219244671154622365716367616342533095845744242327429595617769645009553608219887032024582708316237141392566166073303622119141365084928679153175053674211110624714995574050315800609844071413060888020791003722225082458435982959010588869080092077622031813277071389013110005514119171086566655061595315887234423541591166011600913275678823168916676210165135502149778889262986236952468676044755057298663089151010869792397877482952292473556229425618141008660865715126842195092165468325710905952599956873457529243643923439631087284187751267244415098986402061996218094649792234004285977627411086910648696343467227358481606226025102012307976217587735082238078569703182609717230070202114585917847185819580948074055173026601119248460929080069926708652667180042145813855570769401690942954416004929763280583968927071932410324127719868384787946151904543147495643434172084546593075292505287444995358991623355835786852686319944059445523875381712400084336281542700877241310309397549696723608729630971450365815703868780112069863818168841002179937766963806821259386700566896275738955283747202907177866615006454624966375014772656743423943908869352045639039281586558378956066186298167538908012396637501694552688036921648964813402698166418374204923735512409148709102343308039754976754091860327144495290151180842948197438242895551659924980531653133348762586781633655952666594621434545635671549609020488813460330451142691343716658541731574269643142001411990877019773156043860690480734246383473933188633513950413373682528561318603120455297743091817656201222401642146068113408583767255474333859387630944707478936100162216111922574841822914898658327961759991657587128251788948581849320437189589153726765974056852316520659125124910770647466266383576268811695877826549877839297099097874627273853188327224165950165339600412534939124323694709353717640185616341813579670332345690464741849015341719777949588707038104300646734728322162071023273032904113558554908082114340509301368104232659427965859733519864789076616847826187659182121373798652050338327265766568979684619365350434604162255647622744063967389325462585363341578875820989902520632852980999663731937955256810198256362162020714705712390739687756856309769751522765156217629605946617698130180994422775123724373732426261586676665050274347043012864855315101291000785113503688785813441409750094519490701941898983960291577257534836265215488524377258374157146623480229428147843204374156022065449549553212157775645003713558253889925388621466031599152011879463503613966698935265504997347779926056672742962636710841412396753348343910087161977634320819271630246754649419406672613140996749497419498985248536324185667074810296933108628600500045156644966114067665747858814004760503455894244319517814031358987172047753654793430117213539689696175404781532683441862824367432125832260148964822329487585102115692001646605555017600725459460797923039117415691188379603890355568189687505167853095652895672763335041694357295170477780877656947794364407280851672879074888643957143624400744618959151406930329945732796295087281811255165506536922219189071316223030328600643817961745056483158310459282596300951868464629874980059720143942011758486920636515610188356048602300716876994609242992055604960578170167091038354283529992488845608515704303981715590843755357520808136407572961505340203729180986260047843568973831939752929860046802911426541130172991220226704745821622658164628724321687715374455309827879606575695042901097931582630980247562581755375724031119102803378326720219269119336208704714335397425067035094684213339876537656490311255550960769112937754228477235492897705643677402070126692348300659971650472154445551471740937059196613865883740504371498370801193403001018683612887014031990100658311617488120999247475079443434110993602151085639054576535109812917712026981739226820156640961723977804411948301709340156199929703584383124082514082900631644582177562400049957700705733466001896413413456705110212915712175063932891562537220205926993819277387699676397978351568987358506997305774610903250905925887501013159209596382536357060302015469320598420338114703632140114947792692804357258186139986551636486404155790506459693214375005681723082414946780088696196128318443729659197572175330003766904848262634197973302441581266766970679579594344402546639001859378861052697903072691759162041072494383544569395365596496751967025712088232907261039052534793049044449765863762033738201872227229480822320686699546950445825701311456475778481940126258835192780551964611181729103851740013416870647342608963165607424510313274181149238395995117473216241632694875438685412577431136244526929953716450076641999787174767580686663765957071082180240432635470506294859332067789553948154733268845752851624713794917437555524545968766983258386642215410665377040871509430855450898773156851959039511510444052792608901057523423390489477464083903751352069062105631842193880184387677226664227530297367867893056810685802857031004772632868805203043552961664788740104784366661896452557048701408851186984131266959901777890200086586249202506396506652336765515709494130024802682240516453172126514501335627730959648810083145567838003057042946230730395381998140980197661805773763186663562804030612164606280007095706422252322688864104969509123529272776733751465701973631044929268725333986393634704436028227168808033248090797300857857477586081362227117997808149132887165018610975515915460958054310025304765695922339937423161195945257206032169703929957209114210294330181016313408705154751672430390572902316767955019794325455015467452400699156247021748062450639514434076445291873373335105770846759322016547180824279387349076107955832807485279131326167837572297494225618410969406825048345150733614673647153467212950149712815691183255033192306064045734083764663560582295848364709818773371112420828674907436720728435247676774365450834756645105997848558490555270924666100307825449034134340148638933442105252742230776004755145502759234710905967752132053719178528627275329699642777824454890818875935401886341245350707741969114258602076417061632565380547148793776519688734672151744642496867978532648983983417422317509849919706152747639625657936810759005793715078637259380740772938833647980879961367465796711025526601168132057532656943898497099010248355146771060661078419732260613614298110900941285253226822422056779294578014850978115993044570199784786179501605404920984564037418335339116740318041996501851474402087740815663751568008333803229509481627637143915459708984350067319322638291423404394985798823955404153193062678908775545471350159488192244793382672839447474716934564169601332143899622128030014127828549962975057848516658701646491754834297555701089982009825913006381148995626931483817219261124267888424060082654103642522912856759841959781663086743847625040748345292680078796227273489728349290981160327523262967287688306123119223507385396316672151403115200141481692577475357561494796982816841777368883112627484833823770423367572404636574696682748611489844857095275574357555661874972463701534717205270603488007744969641137873941999516498057154831180877798237895161965261021896675279197783717116274644423032823906255734127036868767541469235212003391439814393054369917348622321861929468971575344538163317925061639553977596480891622256543603269015834668453571312841535026335979558079861018232738386760157388319521353999205442236622234199532596555405530013541638336112736035527993341064774880512062938969777026297622816976084529698141690901082370206411848727286022070097911947076249158140908062337307432945754188716480742632395189204049144656055921205464288393392774333599522423530350125966571214835204060313075856240942973291990542317376799088575700878576009206636245651421503911223829710259139678479597399985546379838112197072900273779187708453392363111821759477714757978438513714995676691000569062482960906961192643241467635386805253434591117031840342033890799799895019259603924721769973611352982647912262703316238591718730420284554150532548600133734532904773845238741521641026339716607864790629063201530538624487756544754736756173348690512145194188422566584678481452553100926912109232685352225709704966633644251993487640213756353157393244895821714787513449734244417518848891971871706475495107983637762393022592560894624686144663644964393672844537942457902471258070163938989429032575779314462293415494703726712214990857858139350718731968732131082381836299004222612668820504252892833302807076867885193263292982431914228160240188966795754719751672233483685514234080066589999829779322599090973790511127141160364777715129343569101117755878016083913103366011298606157635948818662426846602822428455622537334595999370494142384608277240949917705363883816896955130507811754450457816951930064718396006904368403495159018934480744910149579429259884187482839019047024846572864335778284770144925704994646256768540491143770457277273702678020943744361981353180172183873367571028315712558082956943438521558265563195295629200791828514783740695922086492252015035994838779304457757151418691519439074273657222695118351765372445145575213875520715899864478987380320489468908224874955745891336124333693817389934998554324218334644788590372540697408783074947938485815400082721826942075541850133427952816816191355765044177212498776785216191337094973415359048083827037914298323730671911219721103659452828969336519357442648118760443778178979515251417741135071260838954143527576430572722419831864251284531625013253479009831752838821165345014491278551742473274134290047830060309193366668415386451992753280437938064024325533481366419161482068160553123897492352038010322246848246366410395587131917690159496408849087826308001123827606818594566170810233979074582544928490295220325375251803826976023095784298115521238525692550729547572940240724654476349349356567644849438118125504729529528715244571015352490685028291494795767268332962629101693826490228868939543372730547685465096265964051468463346129456372792676532711478434438169457991868839821208308227359243162090683314856339827482148057980613281646624687872490752617288141257183624361991048250390694496022318351114953343552153874349043111370332004559701089801084531763088163775184096407892065139570368291756818382305518625722032666432871765131257581607934431894270432793690203672189917111555123957456800109705458152623805291338518983693718845821781054218971505863694861526680740776759108384992685751476262913626471832461627612883646432895247064193366784994380748978516110338793922060997499410875950156734237740419575870875716204800682947204712799476924428682141717016864892698418270409350239117437892309094202424486579829476493809619130673967217600095143153628204147207828548431669417501618132385193510923757414226728727903363919003742882630370909238732627366870077345992716972534184578143146223945600346628817095426390520964990584307057442497287702344029551886811607188034016581675082315242548268507835671655227359580162303745356070706767991002428702848999758780592243746026716144519936969530428499287171087915295262010903495725190562730505275192564244814312788542699245589352117641849511721673364959532740186660109275844147927977571532762186979521259124907566853813070615476904227624056412536405860012661216809454963994490422683940613989410886264607320212797898152566857795602687367062928583596025057050653732198735261683491250362448074618528228339673669182832371448750052185046165291472912605144354900641628600211168851843460913721287828520260342779459358919480475777645134654448948454476788451979822450607591264141692431105517819567782452598627866178307600292057184735541946523661877027063498829689032442410974005671622109579408014343634934976546611382456187663732572799665262581525374233413188442198396510503250895749586400378230378571264289945341798022918982998660070939592635622606414691959639927838168035111821760517954419007190656564123020904593629345548586226334837106166376902756498242909089355655262865541950837110137656621397879967518372437466972304741113402964763282800157296845735323543472133189495658992724102543157227462696917371724027832717292538011379999771292861279629130277359015604451298319416176080026574126230653635365317460814211244994136088500874405629895708347472878390490206955867488262051795530168216925433060578880763297541890869615600211422246672967045101136724326662157020839675352376302297312436354921180737447511661235464200273047776038340580366826929912902720307301293942864278034102022874845432056852340519876329189578309155158891116397535344051703044588276181963363698898554962915663268213058714116370361667556023880048244098131200000018161379946625926693594710882646598477014808174894934159740634662757060784623498038861035861670814311930322013634365297949555540743487880848061774027645245678250312822709155850388396602085687233073045473181287606189765180403933404955126900459574503463008811159558359222949571611929079055750261814507945685342890336228484792660793677372213381365367816952980956132218892323747201108485262103793785197107303318550657301008772373861861715319270975014840188217618060772483437172723815642719835279225264221820922755478062772644684947623377219446165601838438171633481629574025598809390054770940800053114807515901993914214960280027582810253781029604772209222236598642813660595867382769177979977517964142897963041063278986918519535836626384248452099858682241925683221740923998866857076738693028728680742728986049948687358974314659871443683402368622785041842801096701599522138086858443978144895281794536472467309806116232522813693650700080913947139952148313596342731216045202537300007380030926911489928132631592477288660314495060879086746362889024297832869895066654486428478959189038493289349956707650357216407058720800823721814295626425610996372757016980145001696030020091766952831887765821633106433407512358799364816654706794942298732144691942038735699679150511192285856082623202216708144235763866558287799062228862949634326497633160643871765286277093481893027070369765687231994963992084947326328459067474697451930669409825545124357355383410733047113398051133774272546560583235324612638491455693588767024776839979798069172376970928890262819295795415754517778238818625641257568386657728542528521572846827459252409540891376720871376162302902184575189145139118314843710126131395447586818652887342063872902795700200005712332906143604262364546488324830078036594195339996715236578641163778073124742980501279418620179690918661194009360181678779008546507265213740746474585685652483769293037418399861399772532012024788904703336123706788928426117616577390642762215139490927795008609464015537298468870378689752167840890009389100420679470147715027921015910894149145003998675456772740905432523881099443166291152298173635893755027014232480072955263665703442552361987978853831324481352104045374647570354245721186774776527040073011592041300320041435857133424965628380344187935531999775799974164399425341736844844987577750278516037751015864114178696120856158655824632859948560252621980219245407732570579164884962190149152266975796500229938775184485990967143033494979506416726333623588590410540421467472741463267655761299752925732128913833220700178358118836780951513976504620337840547931958265375910483112617919092156484590895030830095658146000368841185496785424721461959793984535258162702346050261004784829655018912225267525218093137766784283477966385209184878890424394044037085708788674414324477069126163373887740483249365341798190175752897371826612595945682319749493490050221478557442865566318845455428618860430953492769333363655840288364924938294628998817724148013808632265317637052284365987003898492080585342204939109109314249352924422179668111194170377860752537900620405492852838522480203352468728380870153120007237408713897804634189015771511186253151782889227480678436143972777244431108735956592494823910810053215488809291662290002170529901231558251962263372623249576611646853924137958601806823980261299536753449808089510756610400685243292045264977141995799070413030898263242566764907284638601837838563931214535640636882808834399939707103501850463947574700891957990340933791942562468513886871818208571786173571481223394403146242414987353727561372226574461806492312687264282175902970132286047426906225745777486152513045296190093221934807272364381849422948135393466658875888595831920796873312476892798079084544851670234731808063197696403021260002800406625495809235872149553218848229790315291065091977825444985302083012315622462500969086049218002601714766572155876904035882859184146398091848525936006220970306715660888033217075991993334503694941906376356479898809408858636737107134140821136499644469342475230525606217614258763126937496627343162708496800287934114941895997073682933313503691454099466212259077254767756915049639374932175250487043011227809969725546583183055215813950963501557149498223425857799473719343982307432731392582883659732342190190969061011577324718624809762148446750586974799082212723557782351456269343998589133104579208871943862554303135899013572577778756404108087121388849515224316053007366319342417796824583369190055071961977880493462859519047108902403510011427370339536884920653484838759285342980163005928750518223033573443243167606865002061062330052321786017150155313204590556866088832719548383795171295769742269187370959646314543625442750952557446038527100953605006500721477607658522330567780356590814220145446958538565466480741231807123079169317341020724208482211874830677846236021544504621239067924194076273245857287023234917238908613549682478057738278661364849289110373034891554671589115299618680742945362233770323970840357589992197969238858154750333896408011414753452575646833627062025603875951566620498535996480295793105954769855384141974546973764650533747933018988041937062499519754065764691239651861358787683693592563931048581330325221171361408266212822626149289076562856727895236264565947268307828210892938028555649996175930577309012289789751713897163466808599416720376562643473379921867221102920664664030080755058972251674984528572590877536875522081573314581211968474097108001709065967695735152139744392249118386860943656105668377320627229206712680880589075579605798569349856055924926309844853170968571761113404915098589165966079854441120800154765881948499553182532034440324906241890726253985664038177435093931574113811796219718193123169269942354508531065224540984611669912766521944457594146358492524343507604328609848888010524078882340212095123427709987917762210479473863900776001409638981879117476413996009544162362675911063374474677448964080595699941047406403383794544927474495454477340547538710177146322812154423515091613758088017555419030017660298511566855728617086645323184253651226812778807053368046175122520030310112302279670731066245597492890229416209852325994052097096050097917217979145003536789470616130428617534524150916818098986566952975960848517291418860941627792981640003932943903108125603090380633219076709491528724446994349232496092325113349972952379076615326714202048737921144329969445712205017653516437431966643146850794899696573140810874895333980686092357031845153674501248120071274344689656730021299055611238571531002643445882917338100244257879906175676439820592125895979372351578715234570835860893020164077993155126124134629103312707881453249022739497590047735708283879757105344279738973265379472647560082174599540898995527514676272129741522837660279346997895978704101300756321486333806110452753957173314604165696575280349275652780605471599639600156059169326847318247914606729028858658026982370397779186382050257244297653320692471194493739725487417370814087006654080871280821181755581287664891715637037967180052363738742714022393917519841002040597417972825203323790232514668961456597190445409856470959569254493968019431565929389217246759468123870044771494144087489263813849079265686963714883407143449889465426506475368386467185831901903035087685083487153665434369993722113534234125794593166005917342811581959221170523629894408108603111622632463920999137514047216228260798301669700995495432247606156003250403949077215899826004034097473201651579734751994699459169996638966907206410075603366764757977269338204366384051146222690997078367817394075555977380623044148010879838578391900546840564682796749677452938353247978077133532202451097776818702338073775626329251024854780372047821056661056224013637289646624162443267705467785133326328537276732306287356935296691491270452864515765187432639626468181995868301181973494576252355397581099968669417736276785935873702194417406673710127517836601228391271471363984019960168458481174770035898932573462378968929830226942056321336474157413124241971076826584450519349329794274723182599283663918026257228920388390988276484652055993516283662087839070090112140621467751784063783143569692968754028814410303060354185947543903131599864833854500126909721843644332330758878461522300547566451022885720836106711470307209542857183123647024753114801366614062020984688382661646928657732262679484814600806462096820292010960135594891973750408311917008189714133007854016844728902061978404239965170186685468129161240861102305115350681756678989216658913231851751437206903114321562706329217425610581947131453894307763791802010193600806091256866154429099763606746382993809210916169424697914137054621301469147000924243617530591024863103672770421297057370578248429130302279179196021037835957777022886866489548221906694170242208752212104396541241122532789080320174398796179328507592716368854853901372600939158499242679629547568700807541853201941013132666745020466344199512586548350130783868431003024931763380181634421275851322710679660391979152091744919802033225567302758385926824658104435015643091701761364130031576553212085314230736400074262927199018242845359971344348983873229057234320255744478285842948269830390675872565825915162434713550017980877258439731811778968490441531884948705421927570343228487965531906121568619823910224609600985286872093472453170934656267865605444533955369245637226335912018516011172498429526695982293355571629464259213015893873111058293997621537716747618078320235352494005793555748402703385822444775814094909305931396814483789998529146531867886961501586530851109242650789887158756656440459276823489929542312702774474038656385299391849963222571384982784176701193650996522009901595020666969411180213960173657867965873380730129571368600368989301079348008304966579574968833980853265630435618476676582749149951528538451526688258152159248633907545069395336052275746889461453832593415183776038206957032991405906157800078492478084160969285154307234462768953026639739742242540276635066932209288341641808533451744549987157776674065717769300943105350305593759654912449697779648929757264055485351545089136624287212589928738774656503339900391529756502876681137524928720089010951793675672708319226863757406451443954255850438698023818631153657040062878879636779187392248932361759310202402030714230959509984331821967899402690978675713546083292731521106071164438512727068153068540363462226139575537604668836940154937742090995686217526559047911123675468990376595876438164201176015484558557234896075713426371872033659304915965642703656313226543227300904509624085571045623539141200797462827756902354792059853872008975146894151556192377127814850838919567757149037516713621883565317009536854606875490092721432142473094433624634293186581092558470208394343482759385658632258508676441661146448809963663454117613882247047885606587199425759300200735240338021406502302246520204722313563656593390716036555035396294639152223816529233880858640889391962243393495044047469443429645549114511918671442648204512855754309392812879616108399252253303059782394676439028185948940774101852764783179990986260635512889135908483405284936312113285402853738422900644869021829966668945145012449729037181319850949236331950830304712693975654803438753298852317117838231727906948643899688689537889974974874041278150367758189756878188643931194121565895456936548152951808202008448909316677035249793691480428241659105704214007659737243457740038935604160699138190778012548545364834698176127485351115282427631487160127356075633178487586713811450455981815580261703819915607708966938021434095053150097985824249199410886145210396815940440998507523605265292979397065179432118357084479213938637734220865613561889038228236868942301886846788447135253126163016995001802341883896957589338031520825484567141798008085094211563380850655465580160996060976504681895876667480947476545447477443536169329633097428677443802844051845224111354185147158054970254649617093940408837463262991983199476155068980545752631924056510724732623055561659771126077891755559761794796193826947496304084762914212903283413040615012218495984526287588690409661277768948470998732022934396031941928731997508481566208295696024501888433794035805560291510005281358436623420988579082440836813598073365126464155480003889151662891652574857424994509271893431603129589204754181022280754069212706218178988610824292944558918248506023275777389810120187936316032702806547613510811402832124969021571382987317197414139442974024092270782391022748627558336422937753502476349068426534872028192773374165172936320449965002059198349432712856203068804658736941140503528725131551780952129923632849519144007067132632906269316988769607384437399701176182597659598704766299887985784836778675418953019376097642163018395878030836500004117463626234856614904509889907405440053439129395083411895223803432992779074311757285442182577550875280870389129243948255395176073762687401016097734870919402604691208359638941631729683954131027358893172244511700568174729239205858122940941205918004106677867575680132488513786267146753665776844981781489317137134066062848997708435663127293868509078483838895446314329155605262348305131522202474808328987842211209306726062865131397583896819655590167644183705428088470365836138483669544118525629425701695211925627463322897970394356857382174201587601782947115910739091739945802438115317895938664176033754704485711763461616285656880167743815721943209090897920203249740567005210841471223486689561703730283213911215595539975864346462757526932093721784561314660460585708550022324654518204504441080603506926869267229687492182991048965378465476064237238439277763248120482880361182249247174729254063819831501147176284820556190793021591730604371722879926125428256544299360547878605834584626704805883410534962946616859431139048827747094830043238896701412071501939757218849159605374196467309233108063516010773412288755071627150079523181911807919147757192556838889715984548741139295675868124408934630276464725305094831162820632636535038442477374656433196007105508907975677243008073739595214643921139679153854904537203772998411887835764723820832631177285571679684844864047906246050830991615581455674557057073581199480790396656601944121556489703098381051366149490872487427206713454463727355875281416883851966718957371140350138643113029164323583849357653300771827878206395206076625769162221064491388481842992654911456879355764511266618556373862006007697433997067570409545854666644619462369957703212108596742438297037917517196913227738309637873323651038370025759430425681955178613863088380771008504193714735528476565426804296749647350098509290245654237001886357160187269530043338091248982174352486060720009122774373034572362835764086396342053555088666005436036326029973339526228197974771201398667393783729453511091931766777521336717486992231574906452829637392082507848288646141286292549716625727782990015941808596444572449247880547544275245537483322248144299199814696053494705317575269249989850861477001819714140628318892634395059367438050223511353721164928913197592251699384766658031990499031399777842253752060852899440989142622314994827942813930376791067143695051996344781333851232545923405257158993339323286736576486518639741741180482208950648385556344206611841405529840607994203702582371497893262744376819086526131433851264821844868253170150623640560286363203630113690641104739132802432256383083102880527793273957632605552161060270673662343645408466539601607678725648941931292236810001348579004889880348514009316924928771987554665572581750911222338616349206520505070349494483608354245776262164447214139728816600366305728411705356297158665041714999061820998853931033131465368673894272668963402596900887140084460134087267558156696416803754442287952445015110060073640223769301444027882303780720550814313746689267674143843870202057398865854154120016341467834577397544535180053522311259199797604094211173980724074474789044769666213156759571021013424284203875275229507163922147087789658606552349483166975711021793786427982575004534879914334330126252501751864865260558750485722254754625799166904654610045747480617084094279655571417001437319083422022648805518674871316412073918676866789558144804164902646987651099219469630590639307703916408726220707851618867471481694149294626584168076150932911731016677325095333925434844335325523013945209727068598777683886591271712745952913313643103193229753848831940127646563738843043139867011930958488648068400912047203733336483221932131878500528823701109980961249484731812492541715728638395653051521912667241442945609772149987875430848832519583008382324521404373384094501448798895160781851366785133128748910443229213154582452832032697054493873006222610314963400877502891916015237890564081770131982551244841642697301565520911327750302887337010620107702475850759573825659859583850646133610210614906917499354880071005276522429030547329163738832898727196119093631354168285163999515606713163550855826169238764416444801604032325746092885173164072310505265402270376550472144658342346974025338195086279634702582002871927690543099612397874555374950133068083400742389793796226433159737427839077654446790992890058151855278414635330408498608982201733760380578860081509879321563086612868376640189238778854336730191448729406568832808848380736583200739706190451350212158380093544331013259928490981735626790053318656478392123553997181850962904363705212268611569734811743129862052769254744653149014908089047451505931296674387230065977779279160206407701350658155536293711954400871413229630908828091695772376426570182379105262008492009559889168859404880320098769726213016130416323562176951097292948896936367816269327038880937953342004910252046976500086018937637328402629819410575153839465393089206384071693536634092624600880786087932638350680033616048712343517761278239237493310458698754097407645963986674313292789137706351961442762310180423995694461948090027586353097098314339146874297497988449413487093227272642867197034344075771019765497516530679376334312784207804955172033781869005314683757332589324744662989139236671765203122897070686930707126423602690730112002089364219814241596178321613613009353196706326894430684695440644219628106489029778322717469532438803125218198415773611378560728760418963917762112412089641809932149464281607768086762840598443328905548227610202144718341946148903367520025275606784251424853052813729058698136395468470164666969306760534357375885507348517688005653085177733927953080546421116804733008760426848766345907354280152968728759157141431448583168313994645836258899076675563885424496346897938623988916210972137798017589040413271416322481961115337703635083160757708926000479433865066073014046547210147513248201420990181907373905284324908161542123398289478148151938274235751450451849126606771601422887873732852957498386771849196370729317380992452073926595701448840858755147960347295355415956014055785051369038442702117875113605400131095663966462376581097487446298293405439594719476897789754130210973980188536502841287390400598819871949051813442569844634825277536555395973333916609385620256757483865877658972511669139620962504054419720477118037174164354565178904167823225867382297173358039398834120350112774282241825804419521415209492008455776852376303996602302833627006265451347203963352269112081984562628243196047889639257019206902510960328138955498222215272163780404490182213392499202248948045308384448836644595814284878251219286313536358943581574201559387192350599949702935060110710626171931586660754805737623934980136439089270556631523181409769803965457845170357100387926017765712111375938745547674748170089670989489439792267068407284068403170395946363365721870401589143093669888141226984076515163630516378143853104849851686149320243095497420729647257175143370752611811024989222024312144513547680922673727465836350769896492238180739025042849548085368198389252076989198038995873210208819858939948683970945179254892446970167303520193948343238630381493085032826390218993771108752809955947130204554648418649845345483151004281870686625357394232812302940876057175555401590737576373135204330644210766808730674892478171109835194854504328818170351172602073451016333304995495366824871587211859554635604327104291187119664277749698896522113780629696469760967308485593978185657238753558572590702902574753881022292237158338799468958880645432605786875448366131477181043641754137777107561239885225203962625200189855818124526363228748892453544273410501015340621416372927249536696474908764916260382151717669355695246314445936539580205088744733282135878763176273935288354372860887066874554665924257176728585592043483552046374350279222216361424553232063402830517634385255023389929141417873681066033139255493351666778623869328855616044389352270946188756296955834897995958929573320542831030980926731541181166047769393694055406030941133214040981302211014241779696642093955536238113474269509727087750279673880998363525237816465189151312859041836322416515462377776329856724354733501238710091904140434742015535225800825180442794949142967497146860331181327404146507633308835560044250167422703916148431560999558044532332145474007392674014672403030163741010565748336691753017014787455063590109564019933616380190802005175278926579342949884238414577355858069960083756672203179454719511464775093043307633036281322145191489497785668761564714517718857716444099376249494789040836806208098950585928091046872727241885333479713715015592702086055036718749257356454693841440215305441487229316813507947167835456404144897802987637356201499660067745896783240308783538050121969748883788394125559765855174394718956949276643200908380165231872982136387076549655178465152323315882760368124540245106484556958851487486428461057897460787403706260246779844168476246417235875160930407278644427865859052072897575362694292209324824622246564741531656924730704494979862245209817778550651195356103082404663287585516013060653193020587600349965549673072551132683786574112942875350743637369960729488794202034864658053426010151545824235319238607494571588561455119623197439147089230240909512187626361188818630304410499806525541830156158591868339622019393540050746902318958702790022248928033988534106836983727977647963576968156131599944093994321194662865773577531682893747667139847497260842958426796977273693252814759216921731168206159244408079918249065080547375464119325162343547780141447312628184682528905646420920051111356035376498138413256003485650724399802084214188704402655292385751848034161989887001161393079004660158561612494937117959913584915834099196771532585618332580352050536579608949092161348711805120692210464133485249121571794907628525788708753907077765610009641720686342247002985622408617109767538446351925774812272761065350209437893491652544038645558798584367483055130883527391392881601623457816519491062653999328037481802724046290606718200193056364510876908626857800871527984682497650306867819403203522050868269072000677052609143437596583757453421322345662577394932596012334271151271266252179383946339275500817211843560433648057825942673165288666344470697165805611901196052001839736820295445418867011312771049570007027805202981099148171476962780572296392759438434560528342731442596075960251141634251545191862392699072441229181054951000494432171238099166443243786500397768784512104499708099522661128989996286343904577383154477643744505118931052391207289617165365338220138414571178963724657514584243909100102179912703791045425294517370225029223872645839915866832950852044617421024061600160674613478559351926510441221571368466899570383480249800945132400849780167253137696340665504153267512571450160635862645066421165698869145180506319228291810675064767080120980064922544535010511356194606351442958316734616028974269130313273554698419305596231169395935128057083276272430513910391965377950268989390092929150818999626440283050779727415011682372791726034701097935765669987802147262748205437090628100918527600128030305844348222294574914874053133761288504029828295451462443419394715123696428522033201909279070701295646719052351438508112745979247804400130576694226344387785539369924242354425267360100177364097511857030904508987502208110375352331255585702160017823345741914118176410770210408542987776403555374982401528913295401159726181839125620576506087923167271267795613679059659579401927522608933097588487613896702099313500079056449813903922616328874357332551373488861265921625628737277464319570680011684450232675434348066861939940690580994086600500432476455436199127559652323547402740582780437124280340202125483746069811913394923797754947246965535272820684648432186942380392505978724710470990744272252011737062774723567224960368156448021631309288518991566296674069876050267829226469448681320483522446382482950603849414497219920258145627234336283488039274022069500448027184134077065003530084136542547536813267263574685556395174390715375213835324513093282679696984763259378136752049377757906662558044243724935620760274260564761000840051738517884267114954779711538760456113238137987776325223038379748989073108715204859781467251509137187968888403463312219318296405210483244346348431972968269591234751330094775045222778645648592309783478243938657097815918416105909950208728685489449114827496832731820532236570568312339654905892408931351061328406216999752069629164827188695785285935570525750558688368376438357111164293041326169432082153963996142491258909857014867044864603857155379386200230053260735281361191109080572205519960372240274985717758201271797261914433345183912641290895064658882216288920352505049022143005756736656079422599747545605462055336826125432278011626622067795054314874412143839410926008477296469710448716494764082097814084719440227880362764363371782479704984312866797360237135633990580608056601201782735048701789450369097541185861758605810946003871044738531492834786452353120339770363336731713493631451573139165073075681356650712472852444409228077615520586159152090169675004135089467178490326696451602040869472047233046037368954540443489117700910684506513343055459250903017844022820282654374919532927593235063378583226710505212232334781733398925017481483608050122039187673537120777276517181691537262277699825407518208345095859480296004307245891831595490338074853676414002118984816672593267975300556640327236049539727328730196029922180883399319175431608488718601982840453091788993090391671616813041536124715338346158581516721608688820256777948472067006905160121694071557486688694242767069039336732846367041397497788580332216471329581222134162809766000689932458488468254587895197523186738505770144406063926572981986257139964646145595147756877632049485868161958063030378925923769520040944125911493794313329973248209303332280371821332191979036114514392477423244648747782886385481689748270830029678327081973989297680356489795791917272968126617294767640851233057428376787855599755149831551549134053169066129785734314283518086711018946947599391080160420801484176879418545779409984260537271056179921204430975829150633126371644387263385908830271365212051899401145046366621676274780840313236973908315074538228683948536774879719444186993577088543083289560516752921408726870759916050486553200925742093030204898612217117264805693275016222102643041177781641874811946244697257197223644140040581945728168560872764307395111436988161128764233416866869261866796693494604175022127282404059197030955889684021868051021695273803514337630356944444704513854359858947848696227601150704737843356454087761230144432257734453264755536953356176962079480032726344502347385872768928473375390654184748990287977767083361478494027261218457281777084612005090618576941306847227051940507513350200194163115279569906282344314417937243115384868206298757317381250843159304302170869379115153761095841714654855979486670754840958433683210440032460093493826414482685112896112849262297355022311627165678686892416046198643944170197981781699414856738333092623538560667836813593862867309804108928181354092141663979250355513878352593171086720900624083140794671185336328533691894862249347867830155442669831691556822905284989954374716937864571152135441892408881026623228176979177609117387608948684436820014692355367390574731062790302410948308043046036070337540804321036231933096663820463500745363086401545189530983483978232582369748091376393826377646329148716618376420128719732462319034361287057517780278251015943999621598299794060335217226881965142206499206843215407646960825972774508295910734227918615257592226276162626087050656458231371543751061808562905111850374380391436006548718720902266862009461738281247892375815606488798857174950858673357694352934434793134429195233827126690474566617791708538924894659377588283152209859373014480722856159377675047668947140403992902651426035273319835317923357364324210237855687825614016278421521499752523829384550787283716304166573247576926378904934933407648331055281722400860084970156924157749459251803852016529476207166348504778857498305476766309646377610794386732999231771496347988218237129343689293464496349595396035424174980607670614923998027254764477202720521598825719125937627972884200038686838173693940876221580603977364514836103578636865861887552061711140623969253894556981484007796932910010517100783701069452254471650801177642350787128926514931804958216449810480250017274992202824338793713448448967071583854226627196562319578704529551111053057214233113019177115988441513655804055553814933463292081033074740829534213354654653051659961966083208168583827822166274191174500677833943898692688614666973035087725780988816300314656930662257561618445741615620169647135413323943418743943946875117128560624732271531953706599207934345863813810199094040494547826522543566656258659834381837696262460982113380966357495935665232009816831518849848307171387510149860496848280704243527230357294212276092142224681152543726409335817525132798484261023988712082778327763652907348263777410332435623427111325367710196422269158228027116438411016805753311660409763318497472270608830360963085963996752140469354958121402678551476837464370678731450065177223528188767707571348633785122547901302675650642861608415485810909783731566949344755262071924254881242006301501781244837596139024581331025621931259901149273853171142689975376845648427782405007964261177456256095039351210549226977849024432642318334016103090557891480101213932003967593682029027769064545494533250186053890910685992594491622712570324285315965836282607379629628610344905528599025661477253886659003055453157332769669798247714625796227735884396873947940088662349602332716834148151016518465829344521137753739720744055756037766810496206411947451537099444658469283730258346364799389989963502321101927829866888148467372648108471233724103843424612771572505454407368032045241592373292874599095141181442775399760619423440602406629265361689545462830587974763641590184646828184348368645450305339571036935507058727478374365388662044446494837407708329745546926868791258804427681497529583606409565837466703213169741320481953791756047063281163625515430644169904602190018473510127310915914038144045266619766467723801679837031972981489943419249517510837096795064314016260282955677149360998765087199396337102548503599606720563560010836955313128761360255237895266953032618591929354208105701736486531717796840516721235433459313554198928815686521774292910824003562876883030917306241887397261244977233162769025115424027850162000244018525919822111115114319890807179075021906045312530026502459253639820895055115755449195031503895187308327087045609961561940029144343845348738263549333542939239170210203605739993727288626756641558857643393345803841338483122751426480752968861312510224065151478241667254335480622320051553007834402525412971780015251684908592177157324926039817409318558205563984718328068924269099160533389146631719242035613129548732658679618617067348322997165215301218763996558867959341865019839856693501395310605630783563986175451747557081326278945451383163652765227432943285508186195984965799902025367821387571042973197895103231718904136135657748039223635005561994014203389754580835708829964391598508371576296788956908870516717879497973574456970529852481418112158365716239659243699399250891231759504582745525588518094296844448679508870892356162545408140823593611972484032289353976651684363846570727764457470126042338522344511875714866402536186460727356818861188898938361328022410236297429785549650129697154305896752944623084792237046554868623262053296167539942082892210388033705772341365238918173759598987908926853320745654366771340279861980758080434924518294929269407600758113898384497609759243825389812462139573620265493542520467626456034440974918028089049764362488401374621120668234940222426265167420883170735825711444599349889257899650918449700171064666336887820556067860042596747022908449492013340599473837748246422240055412082048728400854272903038898657882756708371971894692024035370907210690512201392241176208218646196224131121967683975586093215233687544344790399435056757915352734265602900232915855424085132030038657062359153822652752139668030159441606695173841671617790017502453596559480113073765726090400074538752557788391866557946934374029849708483491485810507290522957184778624477904608170650540433320273340144078371955376420783593983121002014556705688684136224286443602207426773091746048757084421594874527107410524681602032147212600090335358169930291421093012117751592255033981720818940835436249388471015506378669530161016899451406705634756444124506251922132522843616677126976392859404222947833277118913243806526486439494969420066157717870351119444725201845243242596269341517395480644752001066448592377248973822154065521573209895196509782514462886898972213791305284499618745878660109158446948321748554371923909922102266777895130870504568071183406669517807872768750617640094632927826490488917979350396873838070498125584128922159821048037537953417677227953728048009841592459672506510536058449947922672859886641082246545997750732173036622627068551587694871257370581831971692451731720264119813426471486023036188493620654012940107488293836519748251647838745166530946193714197929744275089296403150571713012214717845211825427051784697576965749157205486755543021250556506048596110567620194978737528138134960001544949130945823288280597312151826733573623759614364281213768821284017601319774633287529564426523363562754036778379469130054055637092066485917033485606854198137437022660088432407392818346213319760211466842865827332561723685654328401749352905156242235217866418831559341666034555700146870396344109055047124913792276516171158327743468150957318356503756107009898077840925407211299340874029736347932453140581629775396911611002809383831506527620709263820264977280394622328817801211530367435931681790549266584486942170524734653149819922999033315204142394645893824289746768215721421287412208527129178394644828607929204321361463166461031751578958943952720372482012118284152021063801643444859937082518049024477494619796513352573701467296201213244222870916359117581913513590119228824442251097032839397528699615429887692336512579947690683839723078281015582633059798606161334484219585411060419046448163769317561492028607727040066843458524110780018886998213720392938193430293209881862249084540098116653392349388360247887897658674182568822512789177040260171128244171047543084457408985009284945227708132706477733895475171394278017777822302125700849362884744577495871765285733641269623342251764320160191062448983777525704948881888362215833867814176623673905715254731257833674707534254029474115198221528268605284989504550331933138917908452969267002588526299073866863116325521261128345782670149690322318105099517444236100143483358867876273917765171851127469308082292692876736540680726584379639361962380655240886495245423508586787398723011334257667280267583517306775805036785733002763662089594260053755435972103128347673613259006450911300581655205610547267077608663576763628990002126047323002303119809268788652759389208445911011317078084776390358891784377341471706802650299431974334637306905963773645882994950427806403663580751939568896148376896739381866485479760681308887009873974443491537085901762048075736750112722499195620797546497890325213397779644411299268314813839088778027854488487262183346953233361970835657740306511319019196108518103736088785195393609174237047714109636767417628914979175625490769838559240605851587279237249116703323607811537495831908634008371766890521125179887053227105293721260083684022390210378799879798200750681706341214608027300622929078948515263812383207616843331357993529902111881465904879600145665290021404613143680458826398533815263645960947480739766557248979962340544142918916470794692014687175281599564062386509522876152189825047588988262856466830210608408825706407610380969877467947794785596494597918321931519518215338789439901422937064518346726096477428267402531680869928538980015853481965251360693992374064518064122360780115346555412202683155862472678787897180657334875444934290363616071568823023497367555552997010806891048397449851941233840506258589950386639403656978301944110386379996952310179521257744361677016188141426192909690432346624640203437071127043904660629450853774062732714162113905020611011850923342128446702727744001120862794567875569149691038595365527000107270696431115021791535151635755962608652647676339234952094829635900519097934860711077040392958029449942960745818188591123604054278265067064280201421375457662196452268198680927203937794786714342706910684269587880797055420305747092600146577882469554332750005940086232386453366023975855857213612971059146829382713318419531295739195247421354548411637291848099634937288835867405508587637171808160366968822152780158322945436513635927166661886212152407016406088391672794404646033784337222771128321291049492136731890576921226450373957520251840248003009898956401257297410814687752107102872735680465486033936796517835895456493474939602297150452785559835156618687394044019686914504626915745601772232691252110440860181923302886359190597881163551324295040397175650271792250590107651183776991151897357835638805631092413671097258502722368040236225696493470782706631227800743260123323435637781981807622945915355051715572124793937801419451504451970030599531538987727303203813883346666779789984011631510742907742302885109548372082421262124765492550049531964447137295280196675664291986040755148715700109207542005789272271271272365672965936996735322560218231731238916460254856582586040482432612835419574231556261784688018955719589180620763844616811285191212361500094007880582331146393440588122896836988042717168476122606560460663324622319055184012518786346327002362985001976398110032208252359948040141807459997673259105045278858140577092750452143988146628677845791895786753778792017286552083204534544862674094540168460918847312001398380420192029889100850395703103876453952403088672590916973105490032690997669183826034281257658588670159728009785375909296679391276476680827628210731659422396483926897893984494725118392256487004119353572270497423867519263707962584466668913591392980095945965696875140354462499734459345070558166021753369659647425257469350458246678966302515190437667764811073709986336920452671552124038308239415430737063382818076402413274427427669391392577450470973187283005199829475120641182950256510293723228523464027482320738284584282371962210797967760067784884560105335648082441264468542698007727873936930926394033399005856622519437717895920585371490109179059559173929180151208592183063188609101820000744266339094613996091047213240186592150244593621143137038999171966867578246833692257585411200495779655220919598707885773131106726772925673221953234116475267956970360355068100624418405922161800138880752266770863664254396629897684152333213539167828679262740666247216641056093067897572703689764615400395318939046538901943486542676763418128667903416628534636992764480952327860504002816001932607720261217796466069123269347975024811414365552872438821603876364987771979442523385258929201329436911268670178127315507488742850370959787763623688957247354206277177739784589244807760982358381745988932719160757471588317847648042765590510594449650665201430257242716943401098924079928899623828164917829570634863279321602253500639218269604900072579656100653759148816973385639435170334618646118899863520181236456218029403207234118275461198596524407369538055765441442545311726856503484167205884808100548967080814401939068698376343091268390688891641624333173546127860045293547848563289064199479380206513417107542683938791335746241579226485271942022810957592299501226184158127513255603642337749860459915012094001510487021354183059810590026882419966184283229267715831532910262221457115575099267971634150603993935227261062558877868490389970991777526898495083304454178976645829573239249004310498956859524632685358458933147924320274693605811239499139612169827338688737055875569070643049418692598854030666667813312721353178905403234444082661886628779222795657509021097239465435240413521703881291194512057938708840215171356136425055166826901545018479631199690359757425605249133579066165359903189583029099511151072881827742318991506163367250280075785433795719481277506710271085667906109085573677111909670569047407166120413696004548032601741580504235108336322104477014478518188513954357596042865372760962078985183579424014568453567837738208662944465527483236582704819115268257912508704599707684736424472628350843748985823003645009520405917399990097758226119948398617752282981513701537738458889424701440856211003694299753863511275447141524104842392801367794855874058969647008267603935652223970365456802249838621530198864532404483050013010836151071123299714193629507933436459938379097764638874761737408453236085097218450055728749803816988014532734114738181308812426779902271403299759755022589923828095473752155665649748962347123856142816720817082688246332641509913315393753844291183283319208061936940032553680942736318330399037427627584973761436834405797463972283513462422648732262513171223742099549482140349181536133732098415113949093295727303700327878845675293800155957907619741747543948426666284536572177902304470447608935580585707551906489714958438584700680640627727338230479803890044882722437567696180689204213849642542701698465498570620283186474847496316916573238543103033998775626899822069247101059675060118717593745075656945984452858157665744491575597055929807813333986583742485750325089451002330040773226695024610308491669664726075892272583954190546787330283001971748369318792503977671060341579204583011573849299327273608721254877429210547011674954117430129472752200590317954977944772182750708573641785000105729656126367612766000820139810212088646876882657502244049012874773585115243138524936164859746304890252891722057255223053216378418596192119093404774276910282362444648994108942316838796362793109005675349944248985402324391420632627886892266610689407696368297581494968728920263067647183590911558424114761788670557389644708196687452258133334880642067311684167931123325335143784277905796686773939870523961400374185253329743114668137524005205405398469133927884610566987652790423761141778561929635544739465648546207942680855485997448116062562019170432686299359153067835698141659604277673831134270242031015777401044878588545102808206481361468924904823370192363507734109147977821662863913166052912648808878642098018630537293658297753161479649359412420416320848059825511354154529518627445409925959393978821963180264113464745368947754690447996175317955753945076474125658091874417958103596043150347000891133265385108876523671234612051243777441437790999073695960023749003552472274633779514858875808928385821745708922910744167964036241657759149127366998474150800901585834973580172196295653234060269072239066235131295724564659378621710417489494643821601082166473708679249167339311494950172637738711620775446764316083923250124417939493068333792069978579772649157814394781127024697938215983740216030242808938668202967263274518367730842859495819330951492787485635067853635141919128933282401858223762295062599164391635899640288041539130705340225246296044891104313449111951891541027146548616909397661668137430463058039845043074178989757592241030033298161235086591652779620219147529149188078434066880837897424072642080359656016707605789405052004904788883678920240484844829579284734194795769125255821653874417794483560503725800582341804421678017602985870646943028196418503301593474498720607534269693752522985759775405530767897567855880083227147901329859583687248596686007242677203008361645732513947671236744752775806752429473062723814048131600896201265127865328772429945298793418522824189702364228099225114810207122988230843744547922555497727256817381079872648913714178595412640398315665822749599543193845166743105490068027172030693648098609200340180478565585102033956092519754693678374696108885703347997168617482686766084422578314430133261771398391049699596778776723163789989070251113578105916492792495949333645616891800294674746685631650495475683251033882559397268032193782059138007541911046531245940687833651505320339372160099327300131155068957351501872595489931997180740064346272229938103222970268471947384407893270010167489235351422393097343038153570770280831703804793122947971548588996835038831593929032727428672661982069863679501202169042006300353903204537522039406564309248782064978240132441564625015925209679999150447697718264110659018245822844563625002989973613304131985722178248281128013933632749387141706256931427260283135893067703851504759262609541265662503603964712620880869060040091401048200763657058742169055158376543570746195981687165258234077691927474145609382473036157539674846090213301110139053567755698961759964271172142181907559897836487722977882007803031250762085680997093123137932574760736481606465811815445247667973615219374426647344509747581991083312396104799114834785765291701059541105753843186090482247247382977079363887537652181090190410084621344425778739234934408914115799521772956770562435978225573630212445372198995119821793128279311696310928677271327778360715747632816300280740996855520682442435469163318962012849572183398151037224809518224602330665560954097112634121874960027138750644367057439367516535405699582158831893469652283048994382653447586884806348640868384610144071651767556840748641408376937359077912324948223194848280256901992759532538349142387342523892152353825374281512099785037688245607964551359958495977809721494570745671784034886230054575533351422807355714513219436383624943042264529856121160735337373707222651581636951046953439113575950273283056978877121179798142308472420333435041254047270418352830943795494014932414208218975034871097766664286906355132927020965525056044698747474699647194754786836047005255490910851973434514920064084789220856715286398563433226666101346277074288334218869702591073524507893715749525498933385711880157067994922306379894029466634778292613735789610712569002469466833006624447604065144139144295227434782576279825743231061753683366127459427008148765460503248375289336180257602382417424792851223561314359639643232172749845831762842418164679912872847559640571505718148965991682331507283973807569976001680454289912423482304840210284896950821943024025307692548121945233896516746059718494565616721917865342256953283843091999866234404913271942468653841061416773241356872842871278101294716727176333338106270170463863571030639001687283622112906320640410194831457307994278589580646850456760551673153619407558729890337333390739164434124186581127611086686387721165194042938524940308973926705341878780885459316694069733361841580835313825811101528703892242620113863811299230354044111719893635185793534306148571872913076547558626056657342653731734527781912515078019642772421816242801783311822971425752200481926275977623335597159887063482563324494660315518016169874482679003886124048111591395895059163618976106380242571629375577461745530417484975074492579823968208801203144924029839734828923878867206752003581628570492558259622860364719724959513844186905647573654246412519273289507496426876467827027563287268325532157692697079583518257627611740199217995951000765043885919885459417209552521220046895111469121607996496841865508765942913874036846292582518989948135654320495582548349560557104345934967304915937003791592735573513435515801457474624948418428329763966760634818789727572350294920855997009330129068883967483145854756946060658793591290392695652518685914664919431707430006586215115516311449170497355650879595905399208183875066148347666680593886238491769555209270796660280579560095747525995151125144980999439564817042648036922095427348905579739866409585196289751617251783452998594768575730108082154463702385678471555622072106173246138868653434374855118700656407338058525794731533399415618829418606121987489305528896856321800947719572024364948019521227212996071100095444975222055349116883487616651156637118321664559445443333854044490586493897900095536108172194296353368566669791730917806016197863516484303015873153503470738512297123594178909236552728512564594655729723105825196624226262091462501318742589848842460933464950328335155339356778281342811625269019491493217212015056402089785212638596132039915995048984896274251929782073293718458836314319684407341045401349998731880460120820391847466924663252925915141759523614498471799172322269372476431872146799524032005802254245262378283807337420641237116873538833533661261035728489261001744457439703133206133532352143970841216904246911483102378016828981921911583085041210984909575711716333419092144248751610614374999559816678373474208360402037384992082675897236971742477015000391646939730377723608317869133064616135565993568150578966519544339486503377083762598276085700249043619693158493077100730233164873049269117652804751639718154515212451617042319372553775252204251796497192579302501793341936639842495015823319691049426092463260004590190950798921442426477202418709059445668033807921683091432743545743724315128051950507382301258660183068777573419616115234447022325691289302191896377359246723340452719344192979764440417485273188170100593591627035481525656971478727551245406602433460222194153849493121710207233066431558569841225609249441153968737471058060601186258800760265929653639063602968262562793001105485694176337387701884550117902096794145537185581066790181277634832039898496143479271497456586527400552657690905069219759436542901545573580969646636382458541551797292195359164821401649830423542512493741368378749315593510943018989772862524811760873473911676077349147732598080379346818459298875646283336015519761368036448736514352814690126766935010740117350389316936142411358875570199034238569090232443961898120110447778344174642688800075243209965040273149051469621861217062214183347388149624166870040278261014545083489827252714702903332677141327642060561077840398828691508175726150334476846789561898114307028108745047151130486251254891446758914737260816602980876390484527444428974938297075065164791821271154743406887874576399587524608823292872722196424544475763180845976269016226381792292225342252593584762645369030209891211010640286263426536650523801319527779054111258107879727066569430362594810212866109031486910437764814736699915842993424024286794843324072236744750711427222750766373092585016434363998233025327701278703576040160754529085692826737783975046490210772244979628621015913570639520168145165844100219133845474300600470075001491398910949989797840016612259774079272568677387712053521751804221629790649359459395174435852993572954625741097807417052767447550019087511599402223953133664044817970677530531319975162805819684063197073333645645096666856158276131402068508386219474569886437561946020415524907860678184152072422693307298222086138464752720860851705703804223687234450402581966946019939039756640649099765629172515758858377123083228419055068813940788028510617815687799165760972465081901225006757634318575257397900013880862711339814292168000349456805003966669299568198917341324217589854028708629761258097848397317760449674267330132329469566523191838990372513387620235798231911461982168600901965056310679281980818419289119543491523716768813587503795766098527045110233690908141167786341153463535306431387866234981317050802469677834686370942234909213073531867073185483655765190306176714725655969084369637218478805259048303942672547004273102562875257229637162896420479144785353515960801781547191460512264201829377050231422376729241644457080441341930657487174181745277889972740608605853274404900456350035469936955097941537100634448217880774374788947931314679805529664070212845872378231012366038323500155790594436539688587039649444983039226336485209053408372328715594743598367808725468803960957494710853344101731601774545485714921257449222476832905651325741034242768151105955283647701706238395391364121527842765270801372760166091192634154867668112256439122864874407799901236681167615676641974983349225215081077506510656931647143524737981258048477472690944936626861594393219824136428320100346076726514041152832517451027260493574132838314608004033027606477644377698128152640037810165906883458268444601737460683763032530086945855016871383963962435707690386125000161170467817879966730617281317358521389942493410599980384116482847497495819128711138462067788389274024968744257415359174688787445487743276347390952848001109916719947393169134831165743592497183085309638180159436210525654110856130035442816183281992098732007859988960279266089771014223969272413537082567275859982382597023243529602870145562704952687715913953108373118180612485836938705774582631921436571769199670573654575505773389181419199704406265885680393447579554419132456733168277836307650134416111373726809154226324228238563056298550579264931171801436424627080599057158906759294786830840996942868338660964572406065603142291973624999097225020823205476219999996226194627159439847407172794264590616211335083649260810163806316460667055274752144622046716920943511132746386783097642969215399203360003860766654832373224208114414003895834554470752123526655151832029760119474386048549765041084606307891149213406197570686610429735755317472236278566391824000530904712474495027335043985102812744362414577395830915131191907726161695010907337090740535592771554548643088810552632177741350495421254554032576281730315502577890309762209737868432783246235096885455345989270451676238208751155514955686350501099326089442144289817824684804093566955915983001163098124753958557911978813749913889594683297588709221322277464846321254561684845198917990002892124943987091293892314488111498523207142547382326993297377673513820580599608560772559360293650565944071033753404634404040241730900912236387579425173421320386976949371741066324220078370685282010357418111392104936343608681232606657354563121493725177136764826029642096142622976950932247454631446420039907577415949275253971006480533798085030969838885982306241100951886065861279019794295106064709183712996602171857404220117230209498182915974117363661383308605623514107087298431151202081983145927911359135442978629559290303145686302634524726302874367042244513962620989175751617944414688099122047628375287425803062793937127333750398289191537542018740940249295233294543624016017043619590221891529456042020765574555067238956132748152173633413119877318629596958154410941611400481711383709053796194426814391565982084735109230493934024120102075118869960695732163811503534552706778833798940333763513779511506660712487797236600080549279883009110045420570589879971918441030034750943659932022846988815388322526970257933470504483259496399459115425650924681413347619807410383970060193030904197038194573088887441229616144120684981483728330842743692680381310029302512073663438398803858101647279375234465292405932377916426331069042542097933044124639265144195106885704770567585037398566801303323920247750133710175055570204513351967227266804430114675899130605614836479965909133598206436865554388799264334446448211386937664696023989937967759863769548626464999249020852840010589474683987358710596653111711827347375281516495412111390798505775420378927786527288365185928043901663388313546428671631588387135997196122852166347877264908163493875859427219290254362294611339917531199010936954929599764197940877728584609031377808947109472320783802857911169864488604576045527451402197136184078317218090269767264000050427466370601887699092933047999467462808209951359488849094679293478740979974783061978238589281861047309291020538802650536689066149348832908162103808399848316557241666546744021075178516755483535875364355130393366398977756278354371340468298427520361836962135853348267658818093914660974639508430252156303112994610159073250064985762543416312340190533703153015414118574451491832115374850859753909989776015923552902489472976390750502659043153134498658863807484258443580258651121963184377656456720518169888652891022937900449743446883211411064089625445327407712944388354070567288338309797124008659192567723490259740921174648832521145187015636919897478764603151007774452852338408996578120826667314424032962112359192897871872431464080109116289326868568789639923180450517424700118982074121467765616117678563251577898641704504235258527567827775977652366624057439825264857462826526489165717068200370159250157815005616839249897159109421231191103623929764827565469883491168843138014327572600569491618064551599001640721877230635714182756979840830980152841139938736131187801674411286945622763302317466614618806420976019535546998957014499420070268063844748556704710990162868626401656188718522104273718590666454938765882597331643140132496616125390662861070869868814523440932259247571306706740112612929434042694694760137074066695528057089025369267341526434089286231678920338439567284875476347771015303105714387830508102498377490564293968720131152659815973098607731147276490940882473656447980701660670714713847374758260884273179471255997819949794022604084714611229377778420723525503625532834947376450112864610956998223484634820354586081053838433189736272804274626414436861688499895021186373288715146214382597147479457629755537541672437678563987162424372788490487428918921910238196608839913942554719783282780385036728530074325095263739410017341575095909758488463058134585191618671749143308452265029910753162208703615618437546830153649442291487748758487777278555146363404715843067914441698090397780187277329541769674356350348841160289542396149055165257317967944139070956431287637843038487961398055756958496434249065146703937341506981063329097421653370494626468360607100896646540097430770111130209009289541917112191626896395125008694516157929959161792140041676226784653919956970244677499980301800678670140243206040292853564288893666877799179364542214036503948277863839951566249611286673316033210345720940312675786414117373141650568006319876183772941201466075746831667908567828866272843775240759474058108194746222421668923659758440991072048048939486228039694506775966586909656365130408777061736734075630823706571291286392398113501060763034239184532643677953958630711775453411419122696308413657195835295636657485395558839023094970787759378252492336574476878103397594436635248295171030281927890264467257715987341824241869646615377120960390119687716926937141601876622432060453382728723804895544260338101055203668396353552440028854098067968209688865989305848404961898250077477239890338580574783041009961176040322091702613815359637872292760225984056509232202153097642534398874637746187699429503193398558781961983274334544872649704540175333949315816460491087398284165540466953629392239907382032863189789337558676122911465378433028740030730511914521462182812037840833052168344706382200708655488945156541274478647688300739040444681931305779901322982302155559164679522361565154810281920865184829543491645448676705937810635966297259699476184111817608177035469409874589424519577083486344126594823378036118268892946535911847611365196629055814895655848783258639802973649948986196034140641017809120471880129167178186006026522268027991725550705584139110099431661254928671391392702467439068711210221225553131606997228262181485844910627508147909533142173425922263217079682527870458404211817564554728052554924124835841318431751979229863570767862403382960613955855065449476027026322460908061910549945549800102836026554045336634146210389273876798879565343048085446361306519533803049515716895284823944432891174668809951424629420311421372946954857827563870054250801280539127096235363820944203948349244861970018940823153505689901963947510834788546979821466975743482899863835911027447736926421144252489743378888856529725833209899920282116726827500118582956543510098512913831007501463141545399459573647423576862203355422112719176448431256420320044487204467959212601925687326067826438819084622210738172248836554686761038979692313025142148415813144476759785000882992879917909265295151946251456209211346328321763120755740600729468002975833952200697807917506103912211432586746162880372879261285205749172960506785891350022249019825019753708420891978011319367768011572453979012484645265840106055443935142670232552673094343539692859471757819880781147799063672898031850417396050660006500380954299152710470228193079362578162501648691049673667633628120200179958617321015684409536787830014359298078480641144931363566822474523400269016072260603112420693864230638012192280044724817081371562551826438518307914481082599107629213194782278415495639405760471568182224753928398642748610156187353916958028774045320409318731921595136373651836495768812402842962348751087572332152302148985599703134888470468744721578620252266731775887910888347636823200868942221650402882878617523520368580175020081498748908118782066276236128575155075915692096286080253322659524039160255210854776832249735160873719879659115669187980246256682428221877429005447569650778194419708699092719563512637678868031998147963026914290591942837049338717658270604157495141191038047835048151276891835156185944852697779236162311968120925046366274032349310161515378669504578605289495858335435983847944685927505168609280548729094216522439318512926248785244934880120401940907230097270237442409278856709521285968043018125254720307702142260429571197210218681233111631794312926068813620606868810664893755480771387283670202952743181780608165308112153680919140050057082186375914686464109307339685802804458239376926745076255403075136271400643466959068541531465303721002659846848051150319247020197946045982277424267056788152237138516868544064833078318715961896993574307966193335742409343305265434950966282927137431985083040144892522828681947169190624642710567651022962440423249179641685070933343770421278902033750244589450613437545455251258533418534507205166086133881566959154348246841511106130540795658540597293992111785522660586378906109867121587165397927496403749953759593093539966963186128893514998869696250657585698354574516833115875300006306540044324239006715161677505841898266731073793508136085435028814654231786718518493735868013782733379070295610273578088058077312187939518325960983906588751666043252819678390149617909290080050518315582299398977220595713592910836257139684048919136335252543254816246979547166561089346574423395199132207929269041091908365670300142629623161964753153347364648521658824579904551733094741539553512547475598387955040363702504658965054847787976871036271282667555853415984289216165135692438133768367487454596001313438720189242994374456028027394648600947709620203389769393256447306431732542790996026207449038472045160911635272706367741711014950551536287446545873183405927605538011248287199637159666994525606137773695177284171668009029543100725479833526261104139452501970971704299567646866889798121202449289725253395028562968822757075834208846959351356695084572317546338487898130543615092742891614323659844753883625386357542737106702145854093957573078323531574230483855027280128715661840763730513413305296262137540656912509291164210463502498738627215583874675747764796004380297259984648893248633605146740985137827702977784392040679942271577434825005400496423085239503332717178868783207140149614970825371750009025441447902978966514725444626330750508221730847159260348832722476585904725491525522979753592410390709836233434839037891087520941973488856361525359586434605968893538862193978509693957611023758019143011153825494673272158262577238767883229082647172542446699352303436686436646886968954915322765730132988989945521092637898827220129013222127313376410255948363837443279648229004147641342430600444725507873990260851434306016116985781810970207237202789306470349187737783473669361229043996969089574588564968586680286647406847363366038762333037557106407076405926889284789664304133261878343336165571854444676727281512020642338125355219235021733036481470085832730609568281426558032380197166410858735828705914054604786926748239441612963262368583412770622752414946674211436886016193405760375534228065297668938494429376792514612736153578912849625693437339821831961153914319076192059158672153658556974304599859009768483258644066854032393815888608976742316173682910829424972000166677240485692596412422827120436070874442920608874500439398878415119771169726609101018380766174369559212609614694134967069454791204391708553449820157471408454100309530565191719901400945490786393310451293682911764098240412491455113856784852373784111037973173491581381974139370955278151292297653060754330205694510013729111814524983106535692629495256196947040575116579141737692047329376657813244966136361184575984063047559469488589998803848047388171642963287782278697552668968173134532549082479581836370434346109509859731068854748984152604864291594500942784367259689113582060397558099241072868285571403919815824841795444446728225013673163029149347334070721208825411300605088223030129334229793880188136941368080733444208584719610525729016213660694268343883353283319598401465404358919206012395183647474440378828642274368992957722207810939739441517243594123728278822685841109089194655889715733458513586137034320762308397296940340361712747553042254293853269904787381483874142401440817960132848853489647322890979256265137189571954360790889307816763358182170824959686935812733727602019603755939867597336412044504302722080284997771772098604443590278813657256237831124673177802214887423674635700717069145361513728007836974730424887196962521847155476142465076136661875873153939211822621191328311312498252209480288884021574412812621696076408487028294800234135485845054026884078448194886915917345352148467228429569706958928554262605550255990461019238398869312976367954100847971841842722206677795319894228599079041643611400239061457862049237128668713029198617813184244839192758228990255033722715600302228066993982959377484286790971960638003386694658540651061895044894377277751273835586310809861731290999586322264923140001987854074182565984616390455882287496964193469414626690112555180135562865155915297931931927876345024593930998715144587242867446712343748029683578251866873259570513267265124218256650187362787661868692150134010134499714077015757948251813819065419773612953337291237302773110872778340321303019870900298838443494987492764974597089106664373772527481492987313325433459276215093245424104865914503450022632086473766121046588526821571348884842780094982251388369178815473198742572417434451532408411000375084113460283273705208690133824836994812645027556806970396542515273543185802151133528439955771637853063132967375445557852000283971378831373587736256509808275483280401700098625172953318920689211007907206109778426785868850056645300472096494367535411639676394564711748236894915870523003105025783436067586788530667316170100915901227351218154031988274212926832859959746264090798243497022952329073402801962511552951050709344175138061467202870476162050055035118031599658381470228910290286038515932515161941442825536488697307475878623275842951451613699156052894914635647902556457433653495101435877045432620522033547873211438625809995267048645226995215398383923166154776757942643046138270078931854985571058677533620628232266172236921491197222914735346269287776223348568776686603904221455134673380323771418944574078117035605312733024941847619841129757132780846975648433726419565414828061894969671994818135079660418563801011047727425932968035828195998977914004774053668061993715206061485083954442446810434304375076717087151431368509076841439303810266976971193502726403643049596076203318421915939319527884041912151660955738633158761440267264071029713510796848189446419115613999182292116798314165931789544207688287566587180945953290727049314535619853328709358375356606219012078415698658806255580145026574315058874619731551848434371017489936840265392401150648593658590568025094545645734828880383576887321673196660035520326393505716270990986934986965812121972122840541742682181794549658924510631591400708021194228742883578598693649635874669577614195457040424536790837310905884549252705366232352975438474832651853582941401167738573522193964942207058876608284551431389047575086760060423034038379079752844376479316191952384752159642731678545905562681253679163289696279326734922623698946729219371112138155964935622219988372009608546652071745072145076649577223542336751426894117386346769949488586901670958313008263555054835130618614292193332602651750576279365776884003562697348353522934672661549735828865206372735330176641597782290629188349629255745313504807790143257516604753897000225810666903764476294433856594328165065485920816319369348601067870469006140325207662607556364948972553844424673284669271581414978220734866018267135938091109493983343128894645229148072160926969902649526678784135741368426038173047493238931048964688160845763267148741920676920036138460056163859036628562190280305532833912064053674742211336100314431069171769078338494600430542254019100137482146235783777768052405795774427541422079325362573821532984466648844343565920688072332673300632946408281743118208457611116877099536983342817137735752692171177580478034119685448971309886339877797471535208643860879370686085600306283556044788487786331682400264903795147062763019067503978945384199466388248325890578772295207716550462470972293804596896582839141121434018573272001795910227921315651135086127663814033760157693919273215785671573224755770960479910735308727057317980376993462861640504793830832019245872860855823778107525835610450062327027805916275010095756719472274284401645412956165915605675111986433655696275201138638455811719730267447476223997065051163172937101172629664219022889294069499928815692203866876636872940020625811556246713719958142752997283569882377257369851019078338989502915209213250496022498924015120342929280893025978715825561785660902782399712617486700963723602286436074211613318063126924192852781925240568109331878393069817820933299176674487132730282143239161315238740555382615885705380694523723855919062749098442127169037286028563179094348460951734626118469424652590430743687771152521063347487719287857351258422521888292806793110567507275833798223813243678446298096591200075962709588049811039958897462289672887981178804867959918982441916486293378698091586326693119051497603615592447299378792737665231927345698910909370730053400770183769265235494875160992593002805946136651266483876357254138286862840763353549776692726494599338183428176542664396153274426884588389277137995794081940624785450250358678989682222846186817966957625424308292124818278859283035561311517986703678618265331671431184754747378177297191722363845003600469383599899539595866203335122255394688692514562497983647458736170331095241855365044661132236577445365634542207444466369648066411254524214233408881691366202742255260046886267456343730285010583167984686709904109117029817140610568165681242576050022966597338291094893373659041159222576311004502432081811667402764537881240701328986626141445752163389609877908231746397583895542019092138048225255636251973301123547602103364441504802766486483855225462600161501911838497195196479266554122777114511055333137660555820695972314333452761991337307279560534611852985983333432442437410498539439548991385240930476910572380268297954734638931308715251571138196587805942765931631803954546264646408851385557786771921502165023075137692776843768952376099320434485947571607485761806885267361647238877514364755932166056279014543158750947039629397915907989498377489137335019712083604529413758570345368532221933913388090549972739023236117980032100749711660666587615113290978001433490752142566914550555401460907468979168876217145337978422093021751897856599056941286700733561574570532634677671791510673497203232614656603826949374531350262495093801194711282863569176300945278183031447423960666077702258065023854293358288372084157871388690779727676255664994772556338993860365791196205517363683411895300514733480750351544291249270461797906589922898360270075458411876240123271425608897511352948311269460164593065750211640015844723608014754756670284027630010813780505728878552568678403186142096367218588052142951321531671276076594298530829398423404860941397193476035736463353592764864004642077879579004626896746686986709984486656226694200672057465831586534966861563819247215819817320119475351845857720146506050815555163873967676124816004414070935119306173017766192291715356997417521804336485817278585401213054398440505670361272017646325919384820939483484473750303030196035434170379190337975743400208343687486973914364808278806836593940332592447106781377569842128070642393055380445473519732044950364924638589291562799569846116671405815588066644975372827870255014164092445866253309502932197235660811771884529028477422472128250121051151941982164531533255466462917400206911124028702474769543971149898379906868024705801657882137482250056053195332948536535086822839851249297508584740531215402287590173430922266985357512228175442838285423871194441186846769119038471333028129893912265076974435677021823236100778020860487821958783289258339834806385004475550520318391308957302894294478924275303001245025707456335246367536615801116204735980271240971204052139906341211229887759809962763781085457019692571674641432780262253461888948765120112814070631763842974808688700298154059734460257649798753973022368967958764389224840326321003261424945595210205398615654578610248216262465558876336358741389368743300523306313102057515346340296798445387312427017343095088550664323770982284729895708791746740335154127422172153775765976744008892936212735683672019256735982082637623933331947916777237963425366695071589301773346196575156023106143752820322386909374763258582152490133558040926247098652188247442603692247745036241531833837389010703234432367749928975863477443824534745411764950151818104748156201432923844153793054965573234139186952852574981930388660518014940725411013998981212895482984026307033361677135973265718228897701836461281501615447041844589664923545264218732897528939047346387878779786288191499237661115988522829190687644032339940304318386534231230270222610647327982200922981031191928029718937065498130138589168915253935248893983693270193300973925423891195762701760424613715858790455518448444048535474015317929938498515866008848285952360506887362921953519455332215536823357356599006342153350645466032732389046452544260922579095052913065569567357606651037878788173677423037793716205485176651080851852520452445649949646482059361855264972577778489278942982544448149709886399973255632937798467850721446947457622097005617578451554882366320681154758543431245722084562049720014544821653845357322314515004587140715596980845306103579803452100716380430739333488309244483273982679653475909273323227255588042556438339270203112126002927490534903057217933496136858284356908103052037945897339791757105998342061641966944487745069472829401869383192975690606644222776517710305915096884036974143757872382708094957519189628819147431902016112449410581349314633945465854329153413101187129444576307842913108478289946605878477456483527858114834527736884344978041290283128192385730933816389439602357365439388631315389801300441902281149463160962815705997307299225101977223925130588112565312527814532357819868215413625085152974017888532550852604046001290913913693492346104979053312304845230597107442146113655791661570415512084976212011096883811035133204200590403362541963591140292896439225559322173478379551174181288407613544026445002660280474498251306834941290743660738681199460746963034553685796901078175413466408109535453018923349638048892881829409197616541101906467285089046179051965396643025105518110661462254851506717735334735044632566481289316462705821513280218511937636740624387279904725192991665537905368042685984657238091946920964727178243059177796362390324889275721510806596702006819293307865239901294780939836176036195067972148819773351783330694249025734641888869657538018030252111868628490630642516005446149125634307746975207970576889747526348847196921020027014600888816725279039024322430302935900233224378387346670275456523531687308430135162536955873207684612399211683173082376776636379566305985758625429450177047618188709964926541675178487694701785493478887732502452637382469568185085331325171844999381145607075880540409697506607308554573403943009006220740515365633823747184658253228452626519869412417393428965902873716285050302073081447732542717220576671523419065955992981516136687323459707633587981742239113929537508846875084559896875086094930397953462298679876494513748692564225914598955790133872329803219846812698162224841294615478578406135570273345618975965746801966906023799912570127674412640964971504247794938386365033281665599130706548636833766302637250759719877370267206066938771901064909298793547972644299755312098910177576726286285432047490208039081099768086276362037049658127998089429955204340066633002565525479003982352202246884760494730423943940747495142715399795129979982680368958957054287748775950067255600550004123471541994874502386599279144709591761449319926564114140205849575936268845740758618969020893937928152375710268627524166790788331223843595998293747295448970839307327357206429715176087184135891650116138601009677802631967850210720943098995758579631708666016147524927464642735168860303489875654256787332579624719250849714163810916405509786086232709042521301673854213852991723775775663388140615768170641104802479530386638613325692979274666424656390812751304284791396214709725742835766699772822118336721303691549393007341981983935668564271907675044682687914831598147798659427958791689802575351279048860017234022292780669740815998154131595859232702554218227738807732355738322179281317438411417433726862921160586905397921629937405445432505911236319888478781983207566757037643725860079200400880207831013913935193143116267507146837606421590486174694178884469369351519568415341076114553333612100730327566179879016734530428344994455345305228484447731554173658626676140073224520273588482566345162037689514992137958271165172647813953869911150833525908069243018771885621903328834814306863837819446275364793673204084053309471552806595658685065225816273618628683179844195737346367753410950545773525423224480316383190372895846496293807479647640738918483119149491978707831368149069281963999990879938886630442881093679536940222666168216907272421685643912356573498334340651765853221140961483679159442612308012162491934439643899502970123859433936856691400964129481160031504748174940256792225378348776980190944925942101296142850947830139200038430048430092617398190388736471404442660138485362713081439375084225114208138582042058175451062111319541526846451540771858854306574930833073876355954386558815536387662115713443525298858681970385569855554192295714075937098990617507082258413992285973751501216242951332909220951156951965265811540000150744513095417284920567226980138942877141959224604034775026004414712225018487516228980401282471460949604958205706633338706122316485333493796572509282765749368726660883713915131050196358218120875975744048817058189441457215178316987036744197466117587489006232613967109142511257734239050666895276929307865716642634359431948132542371179705067072514120529090521858021599648532500191678234673294908598734353235770314500120168638631534995745389266964213987146430892180617878036651944851732071989028023001925286200850209607724298820020153616011960851875520923274613823952558400471939005443817876410171609598299739491004778125081412128047370640377101240115413790719350622812592389842046403996531865995595475112715943759446551106097676357800775852773813910780054588082634635383257963299438246808881643895443167623085643003944251627143709731003419863691509333643478325947009380227729906994921066874188300477537669601344547975398686400350320249520592109240659857352978653598725611757737063013322976033265417787086387122696730379106106857752164467482134096857347794635155222504481354658254144056661263661548839258110579651143529970634229622329494727600771391747213316184517332861924244334548173264056753367900432226042754075734084924589042990478707405609450852306196851771169219993183757696884765513165333077580194991227561849213825564625877038716333037739850342157416852268362213079918150810236495430676871304783021462878544076817627548910932070977519706355264072400903901339440496356793634935377129886993380003684086804925372212641226390379339570070009206247088533710067775620305124089589802901212090483449603122579419280086903411427886745096132187501920859547968054413914453763792088722535891354923232167249032765721559194822115384434956026173577480874205876282099094714802990469994957399891274275294762235642959041310816482536661214439619176556164707506353792787633437920025487231721336116358423600798630012539168074285376903148182178519826653057836082508503476203055396840687036983649759804191801821580496281176658096671893923765662967963005106949378853392125076185954479375795885233541504237167139586524721301559283043520569623055557271606935410168669508042759039046854874439938961223466558556257099578676671514080785034505280694435349913103486098739768932821518317572817775136781934193501711945019739305572734058578609954193728092911429542014278592909826375258946176629847369241649687475548537521769067368936684946015121911694497752758780484629646168378792404092756957054709212877144717586787439464321150700617853593039412767756837196548042028177851941239941390816384898226475615172789498042730523365920440267966053320607186592060796555786929585736803386815485778416926519824930060545526768709278817248029865254705554668663351407809415463945990172175252918571098951635118249658636719758435500729881822374059560841001427670358136219772640248952667195978564498690616793433424707301087218721049617047768813168235511069842872164270947046950683961673604596613141939822321536998832944518729721665862162965296735561325718016492914269708485567658049052083700507442520871653307498632513126987598932426616567570912328717029050545411437155902099236330194446455510586648081112859490613798345679344526257396473847368493446734692137580193951311013010486721569663176794856200118115119418528987810901342266730312850233891432113258417367216303065207618825907469891507921285190063320481079004389360999037919933823017920905444953523725078821457308321001762690303237918626405781377843434493032227012489412131070572249126887658605947398263603440849977266757055455666339891240031542613349373754324232386645902739202904714554318974026337562364141853592620577460887917619311565609700284419929179327039218142021075193336248951864163435335565698753616376768363037098130815383814217482081590381138746680673280072152255006929922086957817243291256517971928310086374197652978728430670703176907139711005533761074563820147305314668099544109702863175338649069061331835886015340243682296983968853684771830631638919742415538374885740323911057580876113070105420942869020036273831224241501579813704019028316481427958337945198208900522268968594240524810847605292875764207357389268189220973706354592958773037054288435227683919333349705594090351664493984383712742536060219168298578072540796511854024436326236871712238376367406697862763011455769021598425041596445536952889971412498227248094772245261312453593791323085590763103807823866866613660941578423670028875426459543615551879584575476655272340851886547700451935151391456675596590629387455090529842956510960784224371819144906148312600780409281322977318895098639573473028245148308655241767107668213768254224445155975577880847548843408135969481449348983268992866273956217724024326224802537506156348324631584049383368851526060394931897502702547251716344815361628597663833328749792645481985016297410663278695207078521507608844075013537261169738011389967603597892875782832981868194501715004688068047035562079035396698525795453132213249874615565584712578737575861611110739767222248720177227071741594305157601011515237553091141835040408275006954101015160941013857861347843499256931371220820291142180154819394859746894312855834979357700433048437853331486044335665173091340808597508023701523664653442448981045611427328191512320515756613342082172791351984133468132174230542890009787573828369850195739310125443837065468141754972849004079991239088700779888748240672341340216857418347819080211646741991628996308221716638665916731110494186571291699705351728068072609703318614734173694762042998251194861074125496399108283544403009916868946390192135551388011328378057930221658149141777257177594443490817319742725984856301030076661075924659431439243083166151109338695035846205221772998761118519980350692897409976579944245094888459382385935081400809361792406212149194072420388777553414505450900384629351763314646135505495858126764881262801139479120700564671716520013635874512001533208383379996838702673296831392920700199142399730446462933910023373666333117505466869010384481102979145498642354487535750732474567910215956724049584421660143893035050090654730540933838615728323844125166161597720932075692004783390408913892632550770246297202270074726343760458004843369614168675094579671910554401167697326051884747740052399949428320186200641056063442865880018674400441548569519699903600899171542903191749017156892493781425336558260525379436843711542760495334598289726584896593365959012588397448014120748852837305556919577611371325769071869243458226877817032316414300588026687610761264856989469882604349428989154414175188269891922372245628646960028848532341373109889775933996306364915162315157311391915812417721149794429561014976395833288588355651083658807752850705672224279128800722952345481170408874947638902719801757867222778222658294664902296642814574392892992450674817274989771445512180848229746161197562039893475728128575701211166955159014024890912905407178724506748485963568467450074354457395060775357545888669372446875897183001814848204520442917215277964603461620696135868505194363593747995634852336100320194670641006737714773002729959837451976801786872706614930040850167447257309621495284481008548039534784249194838947089061341269801579764104752636564264400034430844380567079795086828013485762702403666010550298674758699738361029516923399855755112313832684522431470502769853720573068308945750326243440298027894875051699407369786994111710996118243324235448266411653479790643702743998773177928821261539370897040677527585652273222695055066691206702304028711412203490490518521106756467051452163423817707500760946093333073709126396411703408243783341030919567127090627188861251395161228837880224619396176329809247160661304581577166555280344642465616733111624890621053108188355787486497343420806366679398439325801406927530110439974158173422895398580760012927649797528479909959177203617434903939760563216910720504765196930805950857362214044197561267095140298613993588965424889681329844660950361293103605919748094680753147343920644787680492531101819505448062517136568404141435337610546517307691926388271419506894240134293799922055732703469024770149919138126749078511745977728448042150814684297950042531158276633216359181576696539191680473067946624982312066740053110862202393424887972378965755418148425184365831130620443023423951404893489003328984232867544891881007375390810005351961268933954678374339382006054427058886978317266434515620140816898815768921061423299981325080422739427756767995620458337219153415995366433434345311016094813728369389739418399571968451662606211707822066930720029889803699450608959201392060029269947596725936615439762793962736111115889069792246704629308752176360948021282183557895586272629070100349831417946481305830154625504999322666853016667280439638139928065740273414483625406128221763728116450879755984024832550508295466917101807048410484710869135273975855068815580341593838861214906132410508179422574155248369631918393513531420280749168114150566033933245689623546248054149165775283132491587869586454324145976857385394933991541726492637468157001738906436373980820793052918422814355124993781303361894984068349373789709098057027579504409793381283431843046500324181908177893231742555032117681380658228549196854081619672299403564291653668470226266229386744035551361702257766713080720788393215381082156564046972278720009412201012404768460815798189149224307765469853047839990227044676704494516739646564561587556158550357464987604650309696728220145183165466656400771049378263380542757389690147786040934163240349703658431703436975181356672117495849413573644774247270001031452517198344438662114473040433471099389332026958012798216702391243443002533819625741486346563641741267125163694181583792604522581954904483561335115011009728775881007167800168750598413577474216095938643439685450656459213722473549173412581099871948598665693304282289318024340510979168147151925296327271186840942754707124738820904437970315000471978046135295406095541473433262042024073369300749495428230534452823989478446799042882641665498155161744396948829324863359030384391956681634055299396640594495139207884079853010425661349846008744430684668525237728960500015136585039335025607696535934282786934158045144757778526778926963257897963008223640090760357985703703372608241014835545699406143532975624216774248973876617581102732194519371433705737564965546146177230856085773044076796316127794868435211080103609360455989931671785066096489557420878873106289161880627622771543285192259449976894366953299912842299281600339039790325405002406122856570943790437471281121787556137673492592069776964863317789316852984791283057415156024107479109481378132910630453516666035957810764814483775853714832738903372178662755056301531977491815849474725579928683454440414618678217678933110581742679412583369951195338357836424643199128161404516808951896543852154475303666357583622267006961081877559309634162847320627536083944507117399349992267509165946855847327565944820124138858521146776385704883305600130601485864054041334843544520626053868558574481621539171818817915060936912040491957072357969752461336272161513411925273391672441420181196671187694184754896499222767040169082397166475657517461616319269866649917077933450689911656974157586617696034995659427464798723073313715166665837598859378146290562841196468995870489313280839449786983879159335170893892936129055397942253955546524980782986966761677379575133076921397907869125834869319202773375738120375425856137292676656184747895579284627919917876029543193766935993264622856281875441521583218380666477336124080844853600194892302052462598948168047570821785472092562963817112239951889781679429109143670688703258898834932531991528962162061327239131635381350322677913668032115577615253814892707368132706464765997955232031576255397113057185069261971422578734673021664784870515155737316386804517705580345845391809410802230540544410720164750109743839189529040050621217246596740522283434578667598499949029552929003134024936265015311881229951002448334390708689008811505910304004195137303273664471980233991548439430295985243429013369575318262524845522549721228712691708051413248721619271178855084127106947956224527581583912694528005880929824352907839317608375439178587404868360875259678521844020583803166111831864776690101383589604909457059529015904094125380622644761046217377559656754106381166015785944929305818012541382941223954847680317225414847074402138221962717508245336264498089199428988336614370170310758760458768576087429606651096900862360163987122876439774521650958300586479792599552682179942402010575256692434000251818769455455222206359858584290830516347403115150379339115461094952556353242551622350334927488127055666719662755329344941585854738133113292771289261866037598158800730512911808634043548374203990527952980459422940394926662923839999539971919435450352947774240544148067840284589535412237737410034325227742282155127437772449126596850817211343867256664207993361448897344417767493420754443383353845763669615677868598004619276965101129998937225854509375981096474468282225400643918490153217376755305913810974528954227599041767485246820412966224033554584598080649458482791022470114761627070999874688308797292183994971055184693838550487069902249789766903309367721782331224359147443484590364074346455084442499738891164439997966899700553030694159640027909655324914855244094799523067718661511436038677767927735976804198389492974436120509312288962002634721110506235727083665057970950524515591841022542406609516377430700098598710083069496099984184208210277763965586160414334824197899570789572676325796353777702457811063165009089893086138918692987927731754417396003158424061496164359539676434802480207955199155111480103971796723862610653275707306601350727071647089969926776119626595028956502555005035411608724782918890469956684236477375143820214253885074902098327469357939732237855698240853963281495228543555315222763133523390855088941821924606435489740723945123281985061010555687232691281269797258403323827285497613370299480514396660883673722990316095808371258908353251450508757866064898193160322748542291630143888764927680080386646384622039102893265117159284649526686288596124779650133223721750502302950251541160458197268552308547642120346589682255195909096816378420249893791960178456106374458814337023682246879039369512397496052709049232525401979389095412045485849660335841514922643138991195289713291836995241812003106898632614228326365944515718696722387399710969338385457997519230884501159817952257653335859150469320016746674111879579163093353877044849310824551991852600944520449280128134647740955504641413938255010439682177907334014692189250307965171925047389637038231816054271528568005151339999747950025516049365715598018612550203406474603451006137120662393776618926739040408557931703445963938436068248135294379837828301139199850718731975670582778995304758737149606339742243242083415771581561389527678433117224983430270946775748103650637929137755900471607891463646414221030597567431715049157899801500797544135520581018833179945881414633335325704908113774362943208742179478307486662671111202032634600657841300522915773162346287352231638078979911078595509866996535204340639174466169325099211824863021861312585352579325906117065549180079047432330693160471904347860901856627450033849321409289939018192180943733333192998259210244869997116861144045756907896257645162933086285339088468125866408519859469771948555749076737554669623994122553169654069507144251533548839555067188502481977717319136379228450176939673049447987671770818322927126112651627675923538973096057779457704462598516639568119035880941304995803757499350093570992688811254578691494311927556661407339984471440335104630829242406482972622624186379684827985915269611958867534921048864275169262739822608148028951853060126368133314416378598943229009980752029830521909177418531891362569900274693483967872996079667073969071089312984329844125635112502530958114529703837501933103073883986012917441214759245602353267585812226519210777862733001314263880808933144916612483826421183092517754825454354877894423627729121424919138161418374309060514517583787241864227541403118680403974621739425383862218897027076063666878740269395171452600146417837579065396137651877834921114398216892628757804844806566918025000445183848724478298764506837961834680071880414677780922951043847282802888269007773902716219090187334476330780934580895879222987703496759010577192198550354553300245293929513998555542989355980592816825378747039987444376620656220847272783353843701289261676982024838820523293759231254919859378448059420869584635152984487313352957382973706381861160648838061771689087976131038031983815275206961030143534760066471568095871913088639534956718519392962464634448739251424640074440210353611573537040008093439709830817257765165364658791246476736412640234937589998317997380805535598471606913693082922807856706019247750605302796715660373135823687559529891774206501484093923590059288119755551866704785299889918588727252143956533765730416116410716502276675710043429748523328667217151032930612524874535250759926094266050479948568944788681202877360011313923615633368286404230671450121387071299569168039188474352839457450425952446629403062273608019186420424101625127133628227147191673757313865090296467226472625323222462255525942986596763098677023972109125907186849733757222682974459508332200040535561419267931777050792473829024044644725079166505423680309559434907985499594140411478183073742332669439540580888927697361648393134243061205764869260138609113922793835989295942931360351512046766376336226863385788333586652390165121015303169886961303593129402588773153261658147919254185252489717487837068495365219250516388826603316430835257011850572828824340848286779544197445962779827892408217554133813536332447021199177749200173497816727229743907500312586559850469872101883783799450519356214177030759668516372606104039394679677187793726279123221409247657552401312391988542276045319573919789971844976652038303248045978775517391696588324219544201147215620144692915662777402363166196230257103398107986347116920262194501187389141300011270577276385883405483744130692270446261031740237952963935981436413054728611408077165572596395815159686563418227339777468979704474608022425222953960923481550293985562490729031023977155250291757925102702206598002197341916571896910072677035256151262305391691341562667987361646083540123527680592654197937146805648504409400818507862082909979302070992212354428613353110113285549216649910833791187247716292709464754360438439474513137518975160776342250840313097391123554071948941176139910953427433467033257452058230194387983740909506976820141769448291531635087980272057987550963885048772059956882996058499497019975556641919254070021010453497315344840653127037002135655663884305964347963123056173209145852905337597413036759804513581449256368052517011986181811184028344029172209478460843530418078745031087400017996058632026364616228140018636585314047598449877240536610509122882917471049502584536810614048103607296514047092911506847134685611877282243821886960498355822758165737770334034927418493612077951541186331951855651250730390192288364633993566221751322559417599407965831261881180366338392333340958943882852452354273860004880315574096335824711869017405506424175607810097416813947167066654257409274637779843659666937464165711967396675233588737433709888171645546818655736990589668829543930238800154842404205628972155754182719927213173266442731394161667520851417643975726105281879385288033816772500215308232126382424434925587947305134205821181380274257970359031651153737080825507580329467711390651238238563135314411592241948779331076457575012747393475992226961253716435740027802519002035642155590920446000859735906239462358399499377433741733026722364484532544437070910477773430663581740853960674394524188777508025129463626877830433616270268369145683580692937395027371510535728569609459569824902324893221269578681030993823951137343585069686849833948293304050941884251507624257914974911710879243307322459798269423726129456801240358805272348975590658987601421394964618124110495581182688031053593881230089942351368015071765452560563770662092414203736681834921067429945028965543667141714645657191985466370172059950338325163527301876531360123753912970297737811104703189176478636223453854877677564311823102371924355408424411038859770050480162137786819487324382273801735782969673512901883351177167986784155066591463153172784990884038678027106554515439823204987263819857556815011554586107221362466479401193300641520424311045728471981382796914825236677479330878082028950276475887208951138294624488081160571772747086510730880886019196605100391230034397661826388875548580942498528187876524886529463580974110321437801611962994998380666373189905639192981342555186498022424412098651490060030822322994129505443438780061671364204505548286739237688162214236187617851416302642460853058952287292860620196273345854915786840627074423736068182177926622815236730986501064608170205495179096581499133695413291775243356205363821521773424669489582404281236580804865790078863018282066919598869009709673359609246641329707180739293926956476414665564899212063003688882500749931300492676744999149622965686881782548354603794652535688927705542893908536769669570439096199584723811623691268286085911226520905899387929174814779510717611851237521637236107179872659265976026596807232743688753972507283044100421879182119089043589833064306669106635111204083103735140464487609271789238148014162407816750787701257915279365212967331566111021585484045644185906644198926785886884766784439809716286123436779540995914505384085623943549164265158221967919808116578989369769915528447096245732710349001991479138241897189332275093511573265311125640104130730163905227414849043557000059682014830292770060218708084142691751774824224350730876643230687623183014338328310859454747809623032249807639758329317829350466130351636661201313016031665368693226164011710295519413259641552712552583289562291435529715075942898525921495747791867749310082358128128394881384579088593650741142210080134762375576702050062078049515302238284507559603965121508089392297741267041089453376766999658329693550587552340344381144902271784939630695449677156243006515684332295542230127990516996074159367851350516794774348000793029707897403661253074608522985287412291635566473566814377418735513335713324670242609932848304160191881389885065987533048180110373826775081090679738582383615540084408133643365494508738951743289208395770729711102647929487373025422734802947146133777753042209844254629506406561478930266922130775078663584842784503362424175456131240287986052119162315892881728335567318292189263700461788000550017039713401548052935731397752791622725443498883755273622990350420965084238324332724414403590649493565621217437798754700389090226213265238117366423908713625236710807158359096135671378792230516114560354147717467739492952767036445827146497158599918759181119989887184388877119615292215726160065304242573459048231007592906775086720721695401223204744761245999780033410895846474113798628576676843015417836964163199757715738166437323777620615552098329762211419965907812060068646939170578912320283909384848200889811589765638450598679963299958108673465889925380296074710940448395481629236641339856687752230262713230518281660286645961879260128950160820848166275453034106082394771929980667792740209047821900515261084813800249504136243982305794132575608690399188698133895034095153959800739690024039335748461818842900445018459255824060122749347550700449846426758672827797374498274660016525745631197257421751022236809314884027739324897915004867167602254313636834785243153750540101466775596109850319841547083524056092770278609840401281313784750844780975018358848024507024907545359708657609327135704063037591247906066774153574096269965422827449678219183546772162559067720118738725074155709722849096143716212423515879057567004232212772340892705074523157983285190317297058699082409755308985923173973923564669836354619213156724816643477958042492608642146331321738475511880123111350605990447658630486493097085823638750121271991422079651119844437144938283306228757336289120623159005335204204426034435042404684435382346085941236573934941081531915210078960946220123108648532583898770506772641092811629834703920946366915243061553313252317378081205970931040658791136445922273563366445771571231002921876558185199383656888150684114059689032793688147855116488338558854407437284427160062199451322030129919987707012503607636595879002366514682297564792931571071141360619750918486686827886580042088398511931215971019898356718810103280880677882732704806674795161625623781459808529758913424709050299311771084219154537093003499230595049819144510162223641450716184179421928640564599604393663105714418029491973430475680636768459288459239432674589651666161584047340530324033383497535176672172529259577026230907293701897788339418813400278123468211275004745822680722633669556006223292113946900762729474218108994754869366531224975481254551630276261763848514791856685771241856441862176681365178317411895855839370542231596556264817900342514947830672141372791765789447331795099016176851321741225712029299429702244561476304854473646542805079485232022411079976454486954473063593080144991581971775020377271628880062663164322507795999951608861002276743573297198795246023963863826552740299745280423199257811285757813483975509052634945892569504362773976908474756973170758082490262640466537177179082081861652301790201559477684053330325843281206038330109535757939490082236807945901771785263115200734283029454899665455631973713764360264556853509489456893236141365966906924642006879387589847584564543224105776731809041315224776350349739755764880652553964684561851939111378605401121839214987757900148719407947467764958240574213341257707625584913283132667391035311130848655955369521485563179451714181503322813313652121297417718164934411478213847384894580343199392762835019379612314929425815975264454316312413499161493636616721285321801823190112805952944355655285727441395106280557568831558413712013751972413819310094220289106966322551070500848434087613510954047919869749484645625382194350614411099644248145869518769931143125704823118289095669085330090751984088237777225132537600509357630300259282547992755697292970142760123000367277051971153539794534971817355761323158170420184969174944825817690063060586624303535290612375426628499937229120707022077963225861851568363400088402047478585894389798675834192898363892895001477706369552646601368015927800571136694065854390348028217317158262659895265912216120044207438569954077167481178377379231252346436164831510429548231080338569862465747610743496172591388264632531242485662848202875678053481713570555888573762398710503130172789673415386173632593584167098478797983509943072728785799951916101066284031101325997101902682815583986599471430429971771416676493841540060761343546814922128522865685852003647158684024415999015458601965125515215961216596049569182901066973656610876758265751561281740797900918589752766037567293662156957466699408283954868036926019857127150938356746166493585600509151193318590183318104121140982591818612723263107584763350161036879299943031041266946854365651729441571721493818310885526853674516758877918524890658818776762701992987182220947009622713309818853026799676319064596401469241318944985220518919252106756523195588885613860329477199549259934578328008886749142083263148079358826930227947765248151448972211262245497249329824499544547651744841903642571040914158822339664694780610306004115729795761613591668876031544306516405552019196531891048224491477917106428309172766527460077782033128816477934410326721714549571135315685217990880052135145427598325506504485248757917343237222663455786046989129379001291269880120132454278357340958006186330017951640530431580093349010916014235805099103696751076688551179995209590385583677078297194817826629657775660109136475130115126126262983498313108934487891661621685073126194539574327969917619774001850766581390370341998726982812463973085672103675876819777453780592569372601550342363757533881058180873151986812495959038859295524237102304547094360269749863163427431529659920436160907175531182206405793589808452815431317323033989584168267330242467385546172989410059751562188770967170795867663868926808687597853342918704947800514188768113323563909400513327104119078712644752960238897976597491761459028443838051587544883878325138759936053958344235177774244251286495439655660552696586570635184639552835369377380914782692782999574423709933281869094694649795816995700191254176477989850213723393555343187348265100026492590519171839059819086071223539586920421468809530366904207396537202969389060785632496723962660799650777399936030657439821547079105915963599716181320576180745320864950568216491161988691655766550784097323695600204670217835768036519164646632155672103887727059234525122173423664977456534708317910412539083652683623122822693752299744031659746712687442682239384799681805210226700963523161851387617472364496047041611571686006094512316265398373849864177572423680515359848224508265098377644806010848110218037823990658750069925817170805714827340224538144319599039005760822580753728709988591524036006211552801142653094859800478260203227125141558467046289984143552935390968749494889566142645663553600455933026861426125280734463573192932195224337949865456306118269873625411387597851641263456133009850667100646982120679097463433297793853015623115726340550322372420919536886818350242573514800176792571571753437198136558772867938373970554086369019816034954748136967265094499066291889438212955151979398832762782720853173927860782007001098316851211153251549628419940018327902609025202636682170380372964084185744562179814551046187414383269436729833291018202272694970665630813027470022093334254684819072737046152446233304027509477048360775474223889037153815666620306085946174991372771342857748342102634198894522151437438681748572149596370006662681805427772738350010855659397217756446183962255685479411838601113279217907578729505822313211476254896600971004440702655670835172071511958883686256011671903424699054397537196748314410303979115298551153822611727746851132534881937937512931070851991093482200251084859860217855903050782743758276129737233746672706372006545543018852595051101011523430369006308325638060368602473454019672400065364301683382909216650849529318208422753556092154729039202944872415149288871062762235925483846638909578255698953386476767060911632340378030158923224003659984320716901118746079682638416694836960424205439110161612788224793130829628755990350918603473931671183897057108171432302024429064984967812443338578141339207486119834476211423022410440865629607927256844391479354293037089584731784844932786029364816234746595083859559866106733819420912759802693402414919622995748543668479750467461661306723266578316151631465350982493277477202325605591197563363402453924538215154886666040938650260592971107379729449709704235391393707474809039674196070247145198126524166037936919186121843338165631412449885422912813206600923598157096983166208126212612599677318924519506188328171840706625996684112891885786921767495104871634580421407502638035900109629169805933404702000245542480440908793144490645707781569758029041077640971883223722021758656717333761528695288966350207674891891919089184486161976004225063251616280661012870151171429099676016446346949290307392950879306332976402100404622320296262334164546908307992565404559630371522619130130771920244253592361918841775460666475581556070649439110937140788356167722666690707354316553900726999999974533055215581458145084688044568335367509792900588800633781627319646032580572997676765201249553809338811571469724291761499595576659410206021438831838464392365006169654764908718492252952283911598016622625625780821857744702089116465284114714128545012514823599520299667084283022063838361924463025008504523169034736962063111204923010543522126041535985143921277876739122358579781031947059682139314713557684095017451259538768680777590019346079170575412221316528112240328410686291069749580439186985351812600161022755653262386646454007585588788118284283416214129436451143595150732712916644204612065087978532958627755227875577291769472802998071552554918731982981082832110108663952058041353731732821056359196281850835438745902673699681627847532372873783534494295972217607351819090426130683627727387613646645995901033907652440946192581686144981281452459956837200954723194379536385632934759824162060253092535576488538034117407037035279782080572373947082078958155848701305943575249803884202379438275199666545789715002355784710193790541724791389958567620700394234234243568012541994145841618393646137436097149541255130510288677823260690394474552397661460102255102742790978768677549405475483537582907871161972067778517236435110230645140230579107564126542784505286508307588494269582503058926983623303329192962756158456008583311701660793593166998033719976320536513295418097708156771406337968387254752850552945038334141318721077931424555544060659900960395017285323434694564587900386943684873212690809588794432063531088969376606762236029057712412388351485184052551028146267732735771252770040867938845781197996211122392020617372834552207485977376389983752753378480330739556515423228960200972660508083929154135150749493598116668208457862056593960015253930538577469930832154915681771621144302503292828205446940900853077488301313800273562245822577746183820578789023759957678986611160623340881488511572504811384612832470382366456189568607532127024916925795679547208774255555676274769501260124154692108656406706203573053221295289773729215753945941061733654999721250606455975768893346164047512730201893543386891600038407742457062861136597669247830416625509989279874631004582806029481126913899127140998851358474467697522325935060480170678552076625645148823569810613962917166527584010658999259953606027832960353088668460011506423592351643379055222119045574357144491548378933624479023516184088473997478484147398523003653151511094557371896571751105642997555610626023073725246724200954312799575908074829579935284924767413569494878252099700695055820566935559439188001324723473033408088132636574100966096231736466376316648741326340577975787805209821711821367312720530770295555817884348423038022637765050350926814564231164927956515314571729803703589077919881856020773589115402177555431668372004424483659468314565390723557786040325638685657282103313363836102177593016285077980116487481136996271779180215528391454088659394538376402655468690526988825731086216746115791321476112074442324636439831382759882130630600909078758829738920732229296363249267145432946835977150920525307452709172507339357849899195550919666532660841385440884119153845258687064988796412036003133785337353473742146625951672620623660730787994568530158793747082021234651251542633358941981653664451787479216378126845249366354640351586957369996352235220097917796391569367818989548701883568396355709717449639620700387994687373032960342734640128948962576624811772383159659609458770713227269258560811039009599369801445233631862161503039989638175335297163610094796252139404255232720139802242791377605333945723084853983373345154359472998530133846922779381542775676155233318828987931843578265897170110924303529053094656813338621675844460631284175567654860408729055584190874501465774472964677101138035067415977043414667457224535865994148478135191121949130416430844357128299603854508934951710682001994642379969724621089679758134351317123267137760833755196581749948626741925224290375617409735751147028238236570002404483562744391150776685066008358028400376359068624637895524395651207113626289628334390435940594849633730724410180967473336143429057815709086759154526556994838518373187327381838003644622549423817750162603752609317826905510151816698947996698962907721098683579677160681355583988089696405583398864682155152422790699121850310933858356939106800523378625756197385429645367096989531728791807238485542161164724817528556237996804209546264720371365306978957755074290573871588551911917623983286588897411730357460757159489762119715193049015962935573110902529678819132294281923106236943087542458671022784536639717918426512129602756072611322977227378240104422226377478978152527959480235517670857435911565754724579730224267331732445963255283499156025432407680795408896836318935915989518075099867704623194541142784486154878496849079809516465559084762450034796108491662355839716108724282646606712131652957894482039815713964625550917705970021615685139000145615025266651910218043436419576787233250834900761448230166506560287425393091211293343270248674250728545269466780119154210394713521616510180821548209521933513842012644467363815742315833431574542856256996450033769324675582277958897734599993510678879864077938812498560344416180388756646443920037616941119456853848136948879234862516590189662129894248681810422836402436016316312277985214285303379439554320509863120823902815865115112910550241760167472008622626375783936748928899228319469774804449376941971685160352085822321519767206879033091092417098767878814665693238006357874357676101176493195993343860170712413662344685456556489429786014782374516337696339825879496515439787692127460881564290464964930163510711304116136625336315827231233740819192147256601137625746704782677151096772236504347723561181611296308985828223695602212247549059045483354524130041315729221716094144954111183019549097520362001171250260845293810546938344729151649640647642760501590024485304888716676562589200619030270249884751034024419368696593311553721328580547007048434305708579388944491369557251157087026422649265068688798337255816151142350066197875805486154731580390325327448840039475031191607651231757670960503583226882519191869806828523347496494639500932421294419746345874799295369235350896387793199949292757220737480046847408441623003322467519991035873114500345531354584902589143229650905034818917581767389949285671332368776842854805455313018517096827444019970083726466726559766214463051502034089039640623600480568949977464405717949207314388602977430715542492175397833457425729796446232104897312870650693272710035476995366332742464049408273702907639871327404391138667382870774828232095584916672161275767366669208953427851834579961149416631512790344380342393824591939657182864613812750937768475869351787118627583527405931911540419646172215362535781811276517017013508825586558137968129113463551398328289915817251719272044196843012577316954908932437226826716051381864680830606923793383527577005068539148117649951688851004636404831730464861332303378795699011443789116756093361493730437624824569892690451396169507425108375120421470176438904806819699248940114093991029326507166445392196143781043058439606245373269079464674386007117083711798538810882156512308048864542597511376889210589921267142532252906050794035651603748250344467135625684187105381234787900047863249139661275054935194168366001203221896828275690308546473960004931981017046057209208512196529215677853059086348666777055185595704604128301307449407197396620174910278951567103433261281885178207231957035677492716250997448271221387952411397119460840560120338884443835908310743644287370928505265880202260045252909445560883892464489085364932196576362503404478333077071749995174536323043919423619843591163799559297673723732150934628956858468216914876123204434213259455410932125754804919975192490200469723933399222168181473857755971115955364693343403124309581814487315007286605221426088333275607157345740537812020453551592774368588307486594930721997217759713526446315643236623223392023025782253927512714352299650100287071311688332089239810559820169752010233818263331733021856494761740468625443444139468815588060029623742568177477352338083490934605613843888255107145874966388084596753482216206961266126313455022027626713086158078686268985001904926387092696757659420850067010532503074492955774096498516282111328271084343126850884374158801820948722327632109778639490639999370828468338003231916936431090659624739221853880738936529622215706902837581370478083510425510252033097951469666907824416460149614573628885273534264137301748573354741384799987756565574943507671734035102840290855061358862689928754213483214479085488292169275216068649332229950642833212067920511414377848229711015011760480547205405742454494835429481508262559996312065915390489079083743340233152685240143123102563806306167470962462745271724389021036023742481397899735435062098174981753009706429118830537059387685899278786114825245256217439698789563158984210695301323838432045918109503944215713308882849984518775422642918687479371387911089953679212141624208413104739215025304068127626194205710633957562743185698621190236513851854512166562365664879357688433700625889087873807188133636753573700416458320868301675665192364211963613792670418283247871230754287514831877852479575370544810615459461515161226049114950482189764620783848912903478405905925706806397617849297121205892376780197262700459855853475873296861078034499614029090122293814782569728645557180622811252875951882715060246578727644935816760462296598849900538271818658799585695059410873032053866052360703391407461242283577996219834599934117504430937064530629502986070958110213844764746310394050078310946377685995742444351865294783959347331326955528149183156782677852193940195573160634160832637129285555157317627423836434014841161486879897070133545936682025237060751280432260254847840123374341271087206944853931735672938701950509961383588149884333917251396567258301227476375430779795710479535644407783912974268431635993955312243806807337910178784374560338372250612895112250263744498983035656308940462388602582990218234568661571680092462320460534731401464741092186257837751857336622685227642898736102524311210246403551780324632264255168940688131697862735355220559760978720727557386419481240945916274324977558695931947834190621966657633682534145477832520386121434393437619442932372175059481610072106370523512859908157482111606638139369249728383323880759819745198557050457982293821553119631509369563832604251475839485629895816072095881194086804368287544381809319675189408508767899487574104778918892162937731744949491708677761185029099433446037011856436812657040087170947001933485998343417963804417999595029759869673749614979387000190668934414723741466487483263166874594664937794944090304239367933804912085670783932787079119935512741778157650826549303350252457700882282654052020580279392984214817127682502432943387160895326942103751960637375475418887998904354957456539009690293045021698801839572942591888723072030497489649217276707033284144826185620123095192111371456023404740042352401953318349691228383262391870891844751760411483594413160780274206678368811215330867124265431248781936914086339177088789173406537452440814439918704245544716479602225638408485761624794470014349302346612058614047525100413708179661267366443452007613348394443981588614132429905078069092402242328101088803158618609635622850210773507187241452616110189842747483239574088593407321294362503459101727042063902982226846691032339498640231595529802300694870535006963980949076417385505120008335668493606392638300138851254712143244075777587604493196722364883168049671667441293536367141131987571257577231083232444515583177137649720999976329514516503845949786878844013075291497506778261804154104603572327906867927899937125635265177096181397370410685652740967041733531412931455123053907609616673125383654954328186650745736434992626018185450124538701825643181731496053808473205522246177917079771762448565659032711758037996204255330656221865534563181100497573465996562472740354566954620589745740545434555963155979328329213636492585368690248457037957539471614842656349572809645321607207229052853240879500148605279979398809193505175663138901945506831296449437825502836698706906501635970340233008436791530632813239009071584243733045051213022211445564808013368256947556995555381285271428815950124538446271470414738560831976082227514480306280931239634352175763332967319399002437573358222436306817485678058439853902114787112125861399610822002372287401125014004031970527338225495553560651751161852519957307404313526653661987492118624816908845183839811128454618213810840027540545728664203836110037853324335991311639047606601904275194978777688878914800811993062348561030466472785725747046631955232436737435190437450710837867040945878671234114435645043031913481618637933203268859488717178800060150208518507217823708661173830010574944800662238661780523245562828537259578779098845849182840029210986073412067631193604857979871871673985314590113050632036861165914957583213097718669231423492245101054139908554773302405675816177232272744854952139229756091953602711133940697079746236745966273920304606890324675385406025217100652998203546847615602237918821698206991450929538739858333251224471621626469363559659393511727650262598001846693998885673521793868124507109650256312417537359136699125766279391615486430251111439936174958811389209134469886267202455964955726262736223030002363583374677980272359575543519427155065658777009158631848359694288379101463202181041568101137206445704507084673779431974291031127871681709473352707771819993929784210601017147087528069675038155659967954081199547631176152512294191731829713078911829160470183110133408141637101797257351442377537876709551939683627442806995359734003816187355836572203381722052651953376674117067093713994158471430813709420297115561933362879464980774180400325599945048690285552016293378033464844288367100376231676894495649160238138393659025732552193017873242363898666344400983420849592759755202198365220634418098869954197376006581955780477193480249166004813928137311267790529275569033018914222587036469957250842689239119455714387371547774366210167765425585455240414001831533289077516565028726126280778074672032776712938037880823720344064992506282968156127024257214356558616179431193647924026392157230089218554553704497875641597574259088474428601003686495898410331066731132552032724603160272466033958878345397768112545484319073261508326483675691598581216596542368625707396650944024891687805379235338996836094886634997103003761117631523342491173381542693173507364424568068987153133946626797962259355188135271645810511109875226881785787755156949017967325259147996582407743415361913296623689199609707718014712038864448960907045952219500182284409368259752274685892401671333122304349619803267463643159639370011155438774844454461104516246681959292988991624567582264591300082858286388694687800581016701313949895295432097820063263847620678061379018582225528096108361859712805268478869976677223224532358377213090134695111470086551682134101640289573658761869162851124133914541406034187524603164352223225635871452650986294343205525387341394656786414277674022823149017916639680187544261002601230491381048679249466138089411387844537802872488972237080819270605509568976053022030275537764857799981794807971864033106687820109692707395733991613235446773948142742122003635157949483861531846416404501574442184153568527129908161891193193792603146061982808439002442082126037143342574181770082619298352011270824468521056092903679612153905744605574625651282662800230030496307128604130467828531239744165320322551370187419527269225976590110858355430950224284887365818974977401379054803369306304907200495803036536013259563246331415447753225767205866598250700936144309232367498077648048750797708043537063920435412393800638168567518952522849961057177506067332888432705111365254819666483632650231348756556971483746027214961332550315585723576692345451235212717109020059164556349645690806881630585656045518531044230891721448349975710934792360755403661724749284545727167218947408279538585313230168803911374306782033043879486163861903237767585157490156108290070544911296338971021530472399922477612101966314896783885489302425061861313161824669681012624162929245828830221305169894458064981919070265891885563150535052738218571218376359445206546773541722134364018053232502210245869467450918494864382337432589269265865270822299533241164619392617389214211871473986053314313559886172710526550285473519805969106838659235609247596686082754007773234299593422027326532954467871169863836201998073747913689289776343407373425082503549905771308485127592217653481533889253023994050737219520001453629349282990354071021976295688645513923772363311421969352327183176060655004235121780988319273081570463418647532673695624225908336938887945280760850337939069394343588469204469669186048507837967482524085353301341680095489932513829072956976718038797233712046028921399635450885208375069650014829138620692979635520598107367090327027456221386498594959368428782233107636150237368715363162071293796503777870687055517581394629543080541625513760858051286761919406773226594006644556645133327343697288500652583809455622706400455373180815382501214338050356303152240208923687535737588258854735923523127932518777656426316815403765949362698089918036552208334324111232397279061105659515274056539545659641746231276834668250273362727471114036743581058037944844001199830657415947020470445942873576970127217906263838683529737694266237348024322909602982504343924463050826441466758679992085410139600326557019909358792948828739700262826995232356025395664908960724976195748187228194697373719335722152339911665254011150744577484846928234490521156484681818453790083925818185732738618623027914130868289615827551795238167408124060697335214790601727933204930002456268725417595809672738448273806879821984041613550010276593164511488891938731632415499389300914889567062614855674544238193572285952050244193558162102165036276857975365474892871534610867414081626703585617679471106921428471729333571784332406154605733990689502931303377948899379162454846596384743221206338938804194960406007281414853327249919353728178778718644806718026667424515573145484792883918307949465899232699817823030436398796355238478484383624792430215704272785988516083607378994920923707554783404485974052377087196416747758176399810573517354201328906831182691537096951406974992309869930254160850610593731732487074129812608501773423661532666905883970424775008563737782670715519354597502793289151476533100203877962234514359669098374901525987812442658768446212915752235459881199063901620133960186049903577587286840845717850871964355718692974512509181271798652918461633498855290440897599926750570526395108277086240520149012044446086850906754223043919466318290953442444287016118680497129915630906291539411830433735474147027586164655119324174910420465373219515595085043785454408050180277253478506805271215082581511364999328854778197575272726664642794900164464063819028644709474208827796844713826401203287424870117643114593023491558873202637397769896781030882395522270220136449305512087429738733072303283726676703882681309147036085017576273881042219700378128126484565145176036525474337976410864796953942815528254235765751705647634882747499377569932541257678335912613071542059170143055786507298621731000681011946719678655051411973839908044544760262706864179435879667618485598459041208439829724753159519679914843805059704069480422592027295616216123845937093695856183795759084737006816545902685856751772187420759852066265251049697737499183981005681761038997103836325979494883576198594327005201595159205863018825824027350613412553324365289913655833965206804763794053625178446478709348559825412903427586548714693882831556238198845171270271738483698013279647533587654960273693913541584805987152974779684787317507681626589289491797543947016742529749470770053923000971641397068212258846887628174664637316285713207731805439492560312390759010979025654504718803590054297329557222615092789251605793333933490374893861757561612388415894648896548502534795141071885439199429823263628560715425854722404698451910234975551605083736757250269203033854088298199115805342176186793810926210145365945179943536956893765662727570606832423465071847837158955250188322684858097224936685433407161861462677905226870544589827817395898309901062225272087281369066252100309705228225777893256951447599639167072848453568763751484575371074482407619413822944273934250630021151851378836311397333492351622619898018335890255151211693472150030326149215832582181782190807408638259424310961162685752587596781066269345931149879787770144959772368047125051393924040596359794133298788150822792567381237873439258467280406024985974404924685002595097647508355161290973591920827477336957189461209237377419162680918225522275631540185385322198056920395612632321431290997682820677912057943044103420983416038235560934719293491129111898866244891739396523073931142711361811755166727437440778628219798859951158270282531095581970943100446832213136527890400522907834948474487799162714309852719997078268758030030743720427297837757012458820943959320926219790721127642384997669592812462144178965885415797125556495874496878148157206440517769779758883504997852651260997362297612146710693147588154890559319205919846964307436269754182528970522638453065506740016082163353096848499304561421960615378903162283812492709883319400367754379525094588359075859551829139588606278510032369164164000244473829642102926521273108658480607507978924628693991149942655958394835123639433301091992248881692810344681915230143611904736989466181526497713350834044362818508490229879037510245921859437729634482422947328541015388085266953795745437027399849467451351311283723310630714321292934109126019459130884111141248378045255676528407419785756460740526796525947488007530400977137532010383286060925869240794002462755566783295706888553149335434740028730957257296916747623495438973695534529913478972393021779997119350106788523656663569144714587045074276766661711123114448988836329978617409186544098375252311131698678527767533136796126598943914205207112205858348498600892208090903915092036954038369120019568475920574018160699823579503071801823934006012161515901080302001539763885995293893371307459308150645143201907976326115034352297610103154355893685674243787179855596501567902652478398443573143140496541359965956273534972940104429019680055330010404111274990377172562479303113191652961855475126223033286447613339645023689874281295882287700648192266021202326646684426302857097348091915064921888996909179200955397320427720273484164380542816329412874129941283297058711360358107266146648048081455176476259410619820238812005281834527682586379534640707854785357151295115463647462992818439810337630430081286610058956300152648942701724413304527974769758319929488570531438146113233298599978523810384894525149317568488092934540854394397409551834154376739685928592873115600556541308479714222936912932754736145436828233953666946155308395762978365367563724122955559861718485737112297675957243380558564785751585295675537353979823316505919933463416908035338455614426811288549553681913620868409520513388987361392874872853624671222568243341296403624037724791272169342174105201735635792313022703994732020391936525872473251025074677593695847420027587316879850131684791014152459351757279240603920644723153589298198665959921203273362262317037391051850163088297393676202220162235354505188734467249377413020768449619806061303293169421723584079465713731116450838383288334302985410226825521724667164551298583084933097525938643949189766302296551289286631022281076040534687997811626364978266045965059782499883124349575923036313269953439902164391561214928308964062568273153167610396453043672678623142228854992534387549481297489511185409659338745157423467382871904025725614483736836103879312578545923314042684464080148267271942670983268434441275042378077946972288340877769799065317217142126785767891587865832697794055845711821006086986102354430784254986630947023867307508250071219366925098879553797954588564395102997359187212637453599561817420291019301892414954438996378674307777222833413290578659940545610222409428136937701468963282907584417453433395534657560416254892319894176757849309185927271762505328332365773994089015045178140415221025831781709000278899787055225729746148229728871927961072502104939556507151851059076346643951793377806305606581982132583182127326886903918694753611789840501535125932705734448794319477280661685608025198255747006148280567653804157420351518815214492328835952024507102770371461873644647584453699269731779292049809176283498860950958060288881641228425948137059319905820362733967890838200354488896742727575148145418330496878334046486881336852285011042748321791509862834623922432530762507208931649277683139974071282726159564218473086804584750443766256574095976236655566538126158475750912436315212426277918145887689688518735414120651018185041687594144941588146896394620008079882790458760775593680142971913537077201201119478194114230466479173436016702812060636492708038983512415714979471240789912653487691290549869395099461951777718943451874988443975566339357897803260434249810537775146815934180576537287960361994280084453493012649156559121188682200801376025679821350798117021951777769038776453838513001761908288692512145273129570522891637718531569970133462605221113335537959463286013478721933096762085397894592271745491169661228810291748417947492844059422610031613739138135006616263812645941778492917541895963339702371544085825928609667152787049030055253988638387292040541708189726553205906925238572313561407236980715130093171631587674000173809299724168747685196237614585246613999231567506803566878625975065131483397442447845533805112523706773545076745281409598958365491893050439436018067767708138362483486342180810717327913172897266153228701196390339078470029084050376653709787389731824561761905251045111402886470958470298449396561194262583462283667229191801432385242147401851535478165548836343437955873016499244981716507564211731437908903514420124493562873488564554581769703090499044427981415921507957596416479977643126227768807172336185451247210249626029650634933094646158925500002279487739349102441266962319254821515918410806906260357394354574821915515355077536362178098737044492881042256978620535291039620427729814901876129359692984320332623599635821948610769553539862759368803876287041996244711257159300474762764774281245704681697500434263981892457960248456692044262612274643636587489274162862739067834770111868174300215298338657729326267444729571884424586712044678310241619673737876032319062167939707859003667235545982356405749869495109104553844693144369053737455652782727832218820831384458675993026776148373936176060204904991034662107372143866169038027483113414395248914366272695039772416528366276578029763257094169977796646438558016460567123553485331311193202439697346703563083742845799166426102250536396480426919006134224290389478599839309372828945317060032047139447776249357910922189312035830241079292187798004050860467838908358429296868079243012332345104214576534333503052585971065724246674728764954129002076601108677496077196778624425819960715478976765269502083813455141746379972387451426798525924564799186739134810820573635832649544961929848651357567071672010823220203472535638492211680039185698837141916029503209852083662769280871569338005076635791882844320424917078072771183312395276965309997388495959435913774726027997164034152615857687518244433753893396181299231256458072549038745213166343881430317174071818912048628082834840887122703783550703967584424422084729565299161444936179692103725983650666979493093627805891479108670847502449570890541845657423438144604427048946582030293090799883021768346215585598011903783890309955167073462105906079300699621324689806319940243837400059819390116445968688540368703010919244821883217755025887771878382525508639809774558792463487734671423190692783255058153293790208848739861750200078829851318753593236095969295847807509128367000147095466607836272400838608884632048077365973266404946683463993836778084606127541866423341703593482011864576647775221490364167660386151966282674912760694356871452748870408705829607647212538936100202156048522016814184557961212079989664039946318256019851848454940663797413770884787242771962355931146966784943195645363670501929852670637386864450533166980165235757649760204909185330521473077048632198586729518031280240390502569844586881951475272429662907395099508959703066004187027366928334641006220975403033552855566992527696507501584033664274221659510073458989702050610954136497849716105159499732126651595478834574510129552401070874158370414859917759574918258244733178262960247553939924045231600243892306517301050216950645292275776437919122472748403377421165114689420798535993577701033856928181112567182903690601169839927392967579323104440624075263220253511069219947365244247245302507330336677255996250599910834718870927740924274960753904868787938627164225682979306725220925453638417491148191388958341704543603486874401652627116329298397379654723242815344157134462384259192406892339662898148374131485006490194630436603936263491498067232348534591964831348983755290585692999177608430026653734293817148973465464201205372538850235342907669105981038853019843501628164935985282345031771602492750459683482694260817874921929257866092317769975167018564039713674962035759537152475294932310137116698251616778327123033589687909110709565737586439637736681738510545986611667617974439086178900568047771258701930761125036838523099375164569166969405682642371818830054228531911658624858240000846298804026580944996700386957677912623806810366828456085116119568124866383558196245482805448785261789922626467439946958536521624509324878081671686161542131917683630696440192976788610383118054849731592314969647811229894562888976177152137548628447779667909449641586242830616799494131797909835632977194156477437698228334429379038829254097364027780843166015114073140593561141067141007933339180969769205250087170930912108602693415379071502259820976345449807532604539808169850165324822079209680597000929749014975156739372131558485002987807326925538354710325899105377150583771109092392839654972031978439496393800330822430036752075102724015725129898190102247217615901438618233293607986844860583756820566793558657595283987868283818629252421983559780807900304075976429995053148428192936294651442835275724803698875208421215166276103836884469877771587300758511564311287722894236415173808721192253102979458477649289894167206202227002878614010992491963314872603256558894054151016077812694085918035730701909089495985422360886578463952081158192287688139898124716239850467626176404459066318468631855202515765256569127598281518032931938711651424741284010984713340206147441597479834411128578005862495114858999888133812561349069577496706686733018981640880337476593447729893365306903197928094935262557298518508456254966647473259251437418659877924779661100896355814491448986267429335285012820519097017950618042118927648644386008840295176837951431339162998440254778303736009465496089381365147559969877233895539200127185880375388167750523450715538790909347333400240141836884786545934664158826380234887360512642363308582584222762655128222295665993938942849482075973795454365829937527005304219909326679500916810951591983825321673756701940233510509689480477296308615128410148347064807485723495403759495872491740690624621955230997917870838078565570797527871779313209499593401916976910585952138627641066941438540629273700677581893929838655412611397372324268001587612354292582432700538362089227374342499341653698439920762993805702888497655727225723392750345569739541592395268995734050524791891816240865041932093999685931496052188997118292107010433565458311307873684122313140974651460724300405927196124395862739529847851358420580879275237832039830970026536094192771023757926422588823073097718008893110664770272719584615988506310068804871829717150848166082365369158805013950237831469369129858333357915193290690469686813094431811840865407659938182941529953641111881795751461390277559932891340108613398335161871308088353800628679634947944998267203876482240046237332714709073497478349689720635281526737012941846930017834086737051806527990886027027081173088438643416445183665996013515617083384210660266373630913487273328708860698776852469684903032146591523804454989816764173129822559287520419544736395493753682789833081841718204684405199868451365301440620829441493602670975070334244377598040768778820574213599236206442816239478797841988687598534512496864253441323730921637651474786725764142765867854412115463826536479432428451085649894096561965706796905788640053374789586428006089330775709943464427305499046392056710238261211537756023153421485891354592747571763837730208001118645256510379771455701028241064531211026841854927445908704054185079721803517679730836465728040765868973726684868574022360538688366729967238743354515718047296932426119164368323064222562154545406245316622037661543154915330032701719765234582775206731174476792384506855002817666704858022537438595299599410154562107882769927470417471391573878736581354757869857221542337591192235745598363099618032675077573672666109489918902567580764504110445208988324299829561899447040349593783421970643147937550838136373549239015386735244667651307945921574249975104049381097514457542119364322003558906982059599745757509612496617024057902270608110829614262990842094691896176408044147879837559041841472712688286606095162108000980470006924115174198252645127080479841646299135259105532873233003091259524511652967667729931852224591576501316117130720984154223783235201957386230900529540814386406629092356108972966757248876254180099450041377042612860978932904061395052191388885306302915383819967591952082411202265027474644837833070965237312002261299818710598888320603069217838493595451783295872824641253593876739399580738195790174586544063667997495010662645339018642356172801291650417292372228163306093804999519415864995400512761623949478121750873489422101597456289931343601993812917732911504859611775824641809340609185738774262319379062850612830171284900806609180839896419273238447236474867400754089129978655603550970572611513322945261945847942594449150977730418092164651515888718247855844273646751536841644777443018016194616263297500835439838052788630241360459665223984933411285260551385780454610565099339974087805675508050948377113119979939336602913598672653510827672921513600310138212502951363453571831906532614918532797991752184502984920177885664086271617158784379995501224198212150066390855185960364977091722635240876995352683459785839810781905386689338513306078097612868249193424215567521009857703833357537843619979140534622417681676666901454475881258157921463625759024458860256999926670167907071718373201774882623951022293078560176304533651918276207635074812771610292912941362552853515496021014366542195953588069124991362668027983285225737709938650011855084209732819673729648211856565494521724327163362813332405870140579695836608327551150093564050285157440867702586687973802266647124298814253500855170537675321343970240350305243721120925899495598641047635231987803393266948665779556732605150592149051319829978786917149846367228286202630298755315969240345420711927247963188499873611332849448704974351188087710846124894330623709604184771035216202568368312668613160486917860624447647996467772538978141877112652787302760874013112552303904867403127891282913985902862333664006587271207877871757838130404828905170642299425473318160403767744377763358437074277134415268889611781966307353200053859460048059164751852136145514264608241426614936072954781984600319463338119841930765867283932873734236023855167672218259125734428998401032835320089278098378977248505379431629331843410737689464413192284280619169980417069201397983676034710150584609039279160277466294946540305248138037539296281146431510033861503437092258307868325160457973938224852943143967962732747224725864736272090758881194595873300301779646144100831574184598798765096720315445153879291439336649334611533386085366608222283608939932957667625961263833587174812777893908052926608766779191122995532825221142643939220940228435412250317652972773308142830008644569220145164829675763646615441683822103920373533351468306070099838103752690579240844663541718543464033358611585087219096185372749974881066753948333585170690153054428050568648080061425547715002785636855553092445846478806042411374707914740928518576301158052350806359166517914201786426829605088982186901854874909331711547497671318850651988971785729838558660289596816690426849309145381901870426935675794621611874803648417845174650374335229271048849806787929831257234408473820356153218565827834485902904032081608807638162151275589742296648868957376393856623866992415707601265862598867567811270139480362930037318973387796289761144372029820550066322380394545012327117098649671348081689344135456991520382687806088940091113351132416196268038032885362925468137181242960977644209057788368911091547376590723112870761937601575073501937664815960873020184388902831958405680961884323671115952855617971183515895607128294907170269829113464881664100989423918797158988166580096953337561393707429794932929600736054443330770851903383072046757480086724600018854851657725531799597544705281112804286622628453445645075630012970150971765195037909657921118149519323527374829025447771765073284398843558432480228426966854615652827480313782064087032375003684757205651175463290644157823983310790672409814661448447197955817937044687528349710759348133896218915754057215421443747454030356366762128100616943958793472166713866005317844655193938467013449827326905623863291402870784237567742088308679444727869856419771407075125826861916621903235705737818448336095228814080364799638215187202276151628706817195773462627405442763614571346744734839537943815907875011244906305594129957238824466123871131958636804145467267533340915562160657742573414683712894324853104470207854430429907615148386209707705073823610906796933046798220552374707613465998183943044291267522235250695935241438830068588178530520024387791340892768344580860744318035648948314903918200330438068440543391213052871412242236813623478754157938067335967105963362611413327381521946618419718280959533753889009332445712521213156384909979704242967103920645725961537900724899977561846297317100300507315853312516922735274937036581775156826698670620865456482310939049837177855463615813450072339216215266778061980917899861975431385174337273518543771407373869393816252737202792771756990654543888865263225107952708342112527212882950732769717777866908393655065994932978404473087824592881415586271768422079860514827332271501799518902998370016834156779113453960743547662145722384859285994513053633803564765687856487003023006353824500042009505782534393278271122384949666845519817222537508454645344820323372111375688122298101923021972008333500708746990913517851081788717101059617658094615741184650071743481080440013171781575790992733999855729776344257263943119352592495727933583864737850932557559320033469313263067497902247527409574078350161523901252900457424572513764306072601078311569384714403408559592923353922454892924396191439862669785729151827496858221518636854861912514512169618793768827743904286114658834255009444419045401515206794466912311800486847941731932082461703336769074687315825164063910140988259713093086708280295912040520065367498725987404228372423550553918845166486453071651157807493296735091134981595712660761587468448844314744026122129000495218393432222805409915694686986502521604544750386927005945136140546631202641328776789038711153536581393523858743302937025149920308608041868561675489412036682625634291043451169946609447041610983773084341112024444641740031391740444395980584116063420131601329205532576441733236627663911964608004725932963623039439388348668270261451856274713484669781114968578955398433680321441752857740828106800002059246032871021636280764749869794911963428251350723873055445904826027823226761718741066846728277491176872085910937225819788593579471884197087280044982610771073742025160418437532396830998694024944530347948854069093341819792695461526470205492466292479005585616773261762265174450729423597640360794964488509301423966709841716893225691158930806845011174423580012833457522340308025274006570381125372158524659156947276154304799908230996444202572903072341098989551388663999105723990896039255869661216981644193135025956247180955523045921760976116475574529661805403971172575253884247663175163779054504967526939835845045157849808181920466021876739141588343137893551590979314710222559268711696970045859942246987232915002574946927047467478997357658295238547730166793962038818487279575622384696971394039993322066307288382435688750742717967349775855980235064226638753624348939724859723654317970943320284019525745270564670701856833255079846156041535595205737360436849845434063679223423736495023012850726547120339216651884717308430130361586612211213654029293188595417511661242572267575761681496699613064961640029970588103129404386081973272671167136085075241640723492065404787438130752851130225763009075204379067168121497873850461200483266584431986792114569394914075294400558967453593102405419253584480890079829720254004817504177669831961922165090296933494322006053109140269120360076614749397337663448959669603093184679601549871624301455130606391691483194660493706948967144756452782275268205302718552515789795473605559820827492631515984545529166523454969282722385996284246402379209458148038696202431950224675394020914679122278760301984351144211816995040957927379943508883595679797139570909703276016682175635801283757800368091898898394332452606016217669097325405497042584827554169356027671967608761849354445800265522346321559044417464214194901961938092745879949592887543850949621627822978198449783008670498244266126580179048204003302356821409190067188865249829417340969877222270415457198936565059373247200670706592845092173652429758869049948386648481697383038478046237768724275623219966927043813941441585088746683201840083980875759840546784468534660927856763486609802761109095601015990420030764633176774974132201906874106426551721289399143213995075396698898658103724208027291455249932413140043147188824417135700568394065619162164546457156396885152550302724442771726964945205073260400901451259625760089699258657947834266664322827212437391847727249314472204724182033132858115157081330345978957268878228046683838277405562211007837572326238603657271234081021253324805717483522573435613970521403904316179403764519066617353549773353545445634693188013114528788281085085641263885457019583941616357607764642967325972378304399638080025427150057062641792244568946743952828535913472925305658599720161172212287170527217128690008198548472288281427611212240743310751545777871069803310347297748418637500880913796740131361074658332260504473624734815459537710309542940348352051859076236591505686634524954415595234903743475636446863183838232157476009659478757981150338414558090290700102534647974149499815605690768719130378490292716787945123147398121190688476614216004477414783095199656907247081045926531282883394060547343523744877396175031721496043642725738878522804139554015915312505557012788653646522991147326546068887869097778920708277334711852910130283077888514526511991934851069915137477691942271573175254126248479965125407643837167748649511279355757301251621932245362025212870194979291960219547545233400500825994875425571099216583676853106012405130174384570072584537528328113718651173226091275964314576965936488287537131037017316894899028718325346064742799657667291366082005307902746474689460684231418210022809247278468929997594921616495794249485000304391098970091461344753679715083831415640400327088284113356428525434783437295276654070277639472085334197077691270955783170360972265997917603563952280087711320648871864928150328678107346517862814784941254914846033232819567410389432869476034624328637945163410555769628394267293377500155439702060867180148200178883778215963641826945480161620640799893167364615287568466087629761076322011817029479255891050770786367147087906320321058800340954181053937058634900580336186318317054780127659199230734914847563827759862001409618674424351760951701437624107868008104393481253308566760059717715566874013908999840677959040446529862673704896203832598743458435066400275382281307313872864774037661794056225090338744251054054494249716170191363674222408326499878497678427780771383105653413425079921486391740647977952037533417604470066070288118609935882605351110788829956170552920321929841407444978615749177440174047157925603236672572613972825709065083248655104694424040977768109163645573533777901973185586556546711798266346490171790563135749284039396971243496653615922991172035129701181055094798645837414364664128847655165511400614335667034161134867765969944971525245462276272587036605688475491677203509212648615590967604621057231468492394288295888188727247407020090593662089491522493175700936774716796786200868358361719596433987414695728441656493440023383745405826699507508528221316345106838059017207577760538382639182924999932039861841805814488230532882464799361747562944654034174679666001489714041695147368239786498840532365256335006943764729588211629423967609053732114564624792847322836953189289950842168611883859153145546901478709686626912585745061098499414520647388772460468538283669624397133991893466642314941155801297232615439621509174697158157792727284446841696277270647747070578896082030177346199370674012742943108674460329382740161670394126491927069222623048001690476282615524976572618415710663017416406743498886393210678169145802875454700227290918703922963658176745473291070338107396849885302284067278280101818873917664255624628445595123713479037786421642891457371832645617942165012623017782827620664566552658300557146530087773752224034012162180811314523942918754767006364044134387258970856579338426474956707717520659900762717360321212466844636721314745045611456759461497191211650106350344721675256667182273917342777552109048752349083054019326440505354303587206099004838994284041661117383088772670510086408700125935240588699081161341804592869497063498844481585097663646776162388269732287058872358191037917262671587132796870178744330816835792603581627434061463646649588636167321484377327092606717969698221764292423032067438479859441530990613744967186190720901588013645690296945013421323686334118447446048191108098212842425065353204673173847762943027318072610286641311130600205137750833835593608536920699422546005700697491755085326928167342971779451774838359934127622763239948368314623866565695506149075515542475213031810982873241693845899701218765110180374282589174873390689677505449417085450279614131523833481188295571522520165809222821103081553174296437511399895306821522965946200790262115742949243832240392363627776943930517321563205342918594444135231435393682505974682463790395608093073961185103576061831653944412947764185680789384599274040257362278282877263450305020808643799658115554542047240584098302998625896755567430991711745770794119580053400934509269569974139897623199445340495881358307850426019158600999269795277023234150674662892185297993896222202781204568399871907705623792106264622708159112142201749871036007206898015110714540410756521153048756175231129089136953673484357224533927316128971540098110900710899505845386401616771348556093235894794314144299510583854095860013997422202866082738389774495628149627690677157669090338559379545176937892492912040361589257789156319731772872106727888472263357630229766990635198091876883391574331416989032193565214474634916599192744660863825771892722807726188361145455262861057296207282460299903986952124545330225664356000989026625423379449965378327668346340027215007763194610455762486101815371141483461223485566649283442877417148780179015150751050197208354054893719963500322395309274889205797743304609293678735850213932953499962097537418521548556399425858120567320795469419534430662150871654305929369331952664105832962678185977892714892878827869961667091598673431601042379481350160726636643317428422052636308080709600135942821209976050954929968932606693657086848626376901274268113145363707413009518595878377624805282362745836064176867840306873055528539504682343155547479053812976462148179375946864720874771486007453052013048092062780776303017746590061820594821943938957801239156736127712631540043639015732619608963850860633472611150759523637934449984584550596910792246022318067655978798599033512281146532844296037745346007737653779899828962722422978922135900527141215004991832101390345384940375953159607258442466114230387139045140098917263689377016609308604265967352510187647146957206933441905076614466575916577576221786198187317819406223413396531078715075857333898520510784109507927615550815442399252666283454839835860996724773397010574331916716879908489783724638146081636680780041528105315453918113426036641977482474977656917054966479787242156057562348152240012589231517549444414233031736052120800910223139768654847641680906303945735278361717191632991937511402498139302802852351608207065726486297876379437707127514236837105701611564751892586613276788325403300643401215645215652143050515717513505899800556250251195389424837965889548659425073402171756132263658066179865237254902477046247852905457353176860924463969763930846991497555494210881597058404110183115366441890292485537044247530978801930181104145296711437978111215187372690288218516556763620959667101513153332683477086013531413608325828506082993886368435378358273366207797621784985820974946167748226574881806179756617535096522328057319371233211530925743130076273669126979990397197141635701382395537409797057079773791671161916286684344353476325653726475418596554485728922622838843503986129449195634313935698202374438523851204152345407799053460158850251816600789122022111471082392320399333748853519607463358392767262879112328091807284309985104896209785656999828530669771677528016104591408116403587100010230657089746894379899646989861138640703580477227732149548592318165971844590957601150200433007171869067783823837743306695944714817813728423523748955121497691620927067281123232457836561875519452523123202898497624289394031848153166839404483242338009108871317776237491811233143234578949989918528497522981148950828291001069530842056396976132228385746816255526338694366644976873476214872942844897202424515361808332748728380120475039130552113031229310276129590575593582074922236122979351255600252194870202132360685616024113462393239875085133028324153246143931108604304357719156004766910634721681453461385098069259442338071057379859312607020078450255181321479801931963095955768181154047474971908024243985919680690484888350107158585946610075793044033944441780628084128668384673522545923993672649058350301720397177655337283080493858306965488923633413181620280898602696342154308566150452146786941212424103475068604441130811965916315721392053176825326176922748351192150095551765009874368154928320066748008533804627053443069801480369847503072154501511388804208613654273769877472670464610914638000531711306680412693709795632162117057274686012950120972240513794649236433702674672082360423000154137763692841489098932483852086465386146681523983831410575444061695776203156703796085083161637980620517989488036370092178606695911825325021392532262427400955416613776918016756790759434526926752822684838897425290268478482905993303156724476480324549413524206344618586752565683364734825337277532342358781218826498217809481444074844800681394854379201921406497330835439318367158024521789012309314003475014458850779107869463029393125400870563649902954978463845181829667429437085987393625690019262400180662815598619701685650219745666454567387365390835457568921409165774733522292714314911445045464217028842178211631134710798904156868036860161364161313350881547753280059603567384581950947103043056460895894678803472971470701851116791161881766206480625967170114476621707995041949083326665046579589066719968620642037023018458663661197021539864958259780479985926500843028551378425053748695248807761721273360589577500068442382078155171804569380709722762099666333363567549987766877745792340170165610168935600994739297315264490336296100367970874000453303030414585126625051842890837051371413539198161480702592301120423358647151853154280920703477969097123243124953979892853541019018166326826689254737561685357192742087546078561948072609072299015193250899448090511889241781890113664471949508413941802864456250258639166509670364580623202053531768738400238230073922558882453741381549324862531785487556968013998614119189524617055340727707424813786988525541171046227933062499688210319085944060371119079583368394365118870575763316462074480196090404558809229614610833016661981874304487907949123910554748598573145553940573494821729259349550866016189334008159630265143735571908997913426246563815672623464862772503591585219920346303715689290780135272864640338478051621929783959688075897351000070513415909556198942273806455024413612430712732341984737021794593295270317838016280268486915275090007446823933675949660753586925270361307677198347276100386301067958322948710306312224873471375561822197748374601380361541844558917171173008361797024076113545502823172743277468073571702292037309318776626933315286528523225451669709476023169852839348151932794061844219321232735867394147365282885529001141359351210729038778834051362561371142379252735450206159619124802613075132309493968194388437178938164397472662006103907803521997100918534734774926397645031086407304273368365484273952640150835205922194379281200142883468594966920031327490285527482108019240266527794829958846200146072691710169087985190594648714349835843160560582918142171512077945254865879742309936835857528429195204326795297235811240213075895087639319710784926414615882705074493200891216107524215058888523969115434310296755059499496380700060660206482281135644363969772494302634124150204872909038661902051984390465824309264434391539663637581544819816329549456180155433155042024862700533931054695109212006442462535079933251597493463570137576192865626349600744916589646355923288972230054327583504062123815517380046614695657936212817711975535485249889952713762389395539163335012281249163146649059665505652635755045428826465983716286612965449323179858827932038530058771092001710153676639341713159759728498631097922519304634332460507715034132236757020522092089889661027490929808843068749540818297128380909410947994152379453332984088194339152503161374740201749652507204076510960005694724094421134396653199243862751289779003056043098590605491528650527429284793208381946008699301307027871920041509447875047958298767269227796657045796908963299353708354172274295054481193162189471206266575045289351813216800519204095613657798075278150428461829567186042450710415767966637672416269822747659413809187632411353659093639951763686281856016426589182303441082028615494232564006908359057353752816760118366295840935167841500032500734448981160474109947961650220690937412673543882157212361770349752613727895370273296953315388122500855992212833107848856092265477437626713276623670760647369815796997581903532179082678142381859482627710389897147500613690254253672549931799427157416801900547360729372612831565708358652267351571198262049448558823470436741011762149100828381316987428692810554565128914975463922608875234415862068031726518527718532130955146712987201928433048380862983440396716944743084529567696572816547190920017515978410629099842134630860760451371707340111565617652274313285380095153126582468959407721255302784723400307323945859392138017020628305086615943137409670208409224756022894508565955122205167755747679955458461479473463575319112886697147180466064176274709305464109466147757145728516581861527406885727794674984511642077180938230842464299401940537100636218477226305400491257671367261022172645291785932941410735501367425113171321776485187411688475282664271793174627323933125231554844407155941900379308565514462938201600154974023698282149862514144474262584415180189603050223189255638706289248040709969924386786982986670458309275129155904761942155860409188716662949867405943352839913371298434086235767832249067880562748785396448953234867721870945323888467558223356409965955155225525761277706112528664383020272517074097468292222411987126036986588178196602373439147222963615270548607694779662134057537100848797342877751520253441942996376012708446706339740411461879777620309369823908834316088886217205147053937779699085986866288084295340280282291575461182581435989561080561173021579000533774690813967073725412187944690505250320981782823481359194473668189722688092459131822050312300211393240856649089997930189750136711950385168670363305346970271137418002410543012533202522122367087475896375052138125673907375808866869734033868197073335348580762858450142761158254277988876321922461738915131253342733341858413757798444924972631810318161873409424798493624718380029056317826276873128508412404063811574811195957939138516558326850776520065265505206523101807140054507459242728067097174478306102762121728767442002566991095592699269492420424471481771923668087190965118573106950865445690450591760065487405728064911436458803860819810485838781853826088815370697711617879340428260601715765371218059942409460828229612160640724329499616046908345503657032187748634542214004177748993544096165198329817176533645431137368994061533631646995659843980481819295371705666707815784890218036651227659989691870502834111305925709355162060665325330164544511446741265518886107121739026557087058380488163011923160945911003679906169096111307955500797876781760398745101237116178971146501720911862854430907054042260858622686509737456932589865610029177027712782287126416349483411057618969936990595197867133815563103111295842633205790656429945182527151178280610242996157761974106672317398003995037617957047298096740889613710248213589542535737452957915154390658520595730879976745568093163933667498232396923239480319885226362181526415664886438947745090617237797117483726571875003722913831156575017813990406005606530452194240347219265142976945800447627186629529100753573426536230261338244287980257141123234148231354012357392773728946115150527239078575751307219373077704972959237725401999593709271647345089219983880223483997081816239531910033068155174816339483051932050114511297326089734159974352833585161854852770483139171249796958458888436147307434272783057218717565428731150471236862366872531231703572568967705715461680263070112727168074521701125513161643792776305387530257725035232552012751307338132941219600714031652220856620894647786535481884385822121645261738318576628138652434889223629809444747690259030183003548615319444346881088951911643913857931666427448073515582778374138785354083213754610776987349129409379400769602794866830353186304741272425425314821765040575184920110022760040334393981136404768795238610007163859792493800411654849470659133817566785669458130573263181907479960399710917508245137211241758352516457172668589003799356797114036196970737863545785748629512762758449348168601502191342840698575300281818887652947631675422756250368300481827872311663268406987511355163608759537956541943547174620824862090629212853472045337897482103618408273104845234395498861421264766086042340841798809252597839351586386510637484608796291154336107675463947122948474320369256712312461899522240607151677430861296605533320788618687187680813656810760494758926991447766974114562804154405641617924695863304390178478679574846559616200894555487670932046081236086413480812049280399845992168054597932130526348739160152672955899132063209902058218224951836278563323484375706065848628472407731337278882254822025328190804500529394762597018472997388993630932994980104478419581901510126657611839903382369799236159172957566268848923976165403848271763360993431550231044939663768886510594178369257654609267453658695933186384682980448012334999231040339247031698817176850118520550997885825248146206639887195586933821108698565883298244941694121046995655273608094543108664575223917393645353408326017106806193820464541520013494895524213213673326167803358148161704738576554272836073840065241057744671576174188104446648788570504942404364933951638963088060519069398044770006571216585343463780497588990445789777559104943513609653922506937177512928257761155452537241985974163934272660729317279557802782614076398383752113582471645106900279015596448211302128894724268362199589298413220965259255221855108178522934043184868417284889132412893148298984304793019529712954518173641686244111827772220222934127499712853147519740619977990124162036237856729262896791910459891928168856859817591942025759866341781849946914044443725297073613798627252250392434785332818776750531901621600456059021467672418987901535617832891696907757047497178122163669553038703479206912230597335193046939304726949446317282474558664367766947980115400936797658838218731191667935000899481432993130023025041768893143273195863379989008610932961185565622730598549249771213057018501864805337211669879596929345914238112560215732489100741680985682807429948770802551205203200364628549235483489698970835745088324156253937526945983194199741424827546500349093009186906962195452322374890483049793148213246503029757660629079945135962107982926613112764614386102361389128921006842551389192028986953996635258158483599051115428298138662877769601406617189834640976967387393722899399513021447318591730676393850359330130997085483641731626226305096194145814652482842550207803783820691500832193444409603285825661353206901448994304751098094523620769081210298525154226007202061696431609821915467620255718417507432051922023011008656789825621261421222775379208816734778510220044226013845751537134668355133613721159916069799840401760773535812892767043436447638465325197170077284289054490636249508435713666709884916582203108505923094146112433596965329677968004492808724054656736881434084473985096158375389563504051639405179934569210804216996891369809907278876968626449386567880597077724133042291261584039414065812280764477392476320766122910744586729569820157463303831139130797439135525436667454836962916672896977631992286922557689562928286767716311102288313150503692477185549013244588150281078942141875162199174350948094230607738021582683400335028657802062481110773552137104591869557620894425996116441000906550559141474032706732011291924494997037842315684186979202802351387643520956799537531528028758194703948010854079932282850640089690050898511645142593377947507036852562996448035360215859627620886051069249553847094720149550924258654532899035052010077233567617375484397021613032438354007785215111427384886217092686141958371120800404756076066904610562258760258967878093234424959152840990297491998514348896936856830746615693599075000565589849106140817771260672478050077881766427884145722310653764725376927286703084332126739676351712413179072364369608790700772147389078783618116133431885599884658169071855971765053733549066444224987435000511986262391950706987614257348483928738957081847853460535057814522627184823269274231480249580920464073675362434832810375157325855769433294555627450460470405606061008068116190175753564398767425473853600910456932698838980309435827404380103165064460648046299468468826053293715192863425169324259518536049419334418821061845366347164004458382183009331933099861695829807134597204937821345552667343027970112339149822802407095749856509864717145760900068071438591178270448845282151260802685656640920266789759938148705107348580931876541667745294687537597571360842161457782432272776870367278089072998894023797127914722732438688034051238493670077414866247703467787688308056260114963761455213213575731515946545498222896365804082031047338033468591493224380897811471447523108615983524177663032890425283981782441863961899377767286651243021568514435202829536106394237137250253599707094333379452908809192399202900282790573943659745303107272975648130735792362110238141793328536780598959815666978429787668909966328835045700736495139441497116139400158240194457394493765590497728347305995006051480688583496341730346615932713927027723811049297266660562869020424463184634918627601207092013765626932221287152545164436748586394209516318676746825186710727875937832845581505532478770563519291758321336929807719417040718051149363885921996672167228678151225997473555325490622575012209755621486105299142741623025725334273146719773603648628568102228058012923083417503309125324413669888044717431995534770110945115317991069565325727303900032503691716491756072567341656397488750253237543989306705783419365298714136822059021252079189155384480774883686420847422064391394623446400038069468105709283260854348757926038055459234355953304043255267643988108588351278512886085112248371292822459872134065916229643777308006684451823295878411669242216223691530452902608041902982983070244873823636049925210563740093695688633646598069212323981485776276230913098627174735255906578766615726580305353579469576650634818275989384083732377245507422755752905324228780065481978183527836118886283408557237886092520759796661748109821376132300729922079113521319061687119344120942140871300093501062962527646366111785926629120769985538681913205845025053181886376538163931114820423342444693071832836318271126080772701638121112439226770760962131576726986864262837159098354011584282624246996580538357407903481903494909508771391404523597204847170032365566139787857434311723492094976866111438568218286042154124888018061258523556938531048559464321308249352681141198858442095582300360980566494890240761852267678119250370141514192147396228596263027232378398417367311757419910270979096351143394174979385322503456116072208738792347172170023256113808025567688032430700393781706594684509561603234140206955218443250578107956350891109525359537569405594532099028389487553963286564724553280071780771665823692343718280821245882594853677580887237695264120608602949812255696053420037867455966300020773881354648037401891600951718438839702563348192030517379194795433020338363879675190440282124306435477359172347534087800725403671388491796579838532415875221327811863412171159979570552575216976982033517591299481796437088108897520684191064975848603243263982968173604305363502047094262840330086145629922891011386047007803189083344893784177298990817731859403049353025185718763398929895781991560784799351575954863982911312417870062111484061771776223532319075414719916341806391853106003519034475104672604912494167362665295897719635080588121135833050045932851723841495437695126840684161869743467141546154202489301452558259229719612741002139759022164734171489204359746722954650364403723556032039919945466042692314060690103874499669664589875374830642290236870259712743390997567213161003883680609930833106652235682607113622775764861176310104279949052877041284550242394221478782676807907821298577356936410100681196731111397840732861249406235055861691956829344699243388323732110403693447004120299790977814879465860981659733866192146707251951372707582419238701589798328772503028478651194487429420957685352057241022387790583191892806704247051789718635413077938962747588775265541984438822113347428893924989069325379783370387977115440330563613438602158227019239755316688140187008543290275033481534059658581653654579070139156912201656482739869405531106040280837926762200367791570220284213964003044722393757472745169449442178950682585383243628870537016452690100481729174204920060642366646144095686987573998936268165623958789985746723496203316649340313042518820893223747238623064075824198771932226072941863444291027605144503169584376838049851737245873437055590194365978127269720293998877927909724274186374838510478770964368734718160388152661104755807763689274907590987605205160293464655953942425001479953502771320272731560220091119422293897804022528751159678192816733407161321948712643112319631342033598574982361905582239139573503024730584925161357525832741741086425964661659837011848233317728202320744075554017406069937314271138916526972390602650389204371895337077077176506827396921756423385840015635739613738261870508890685097609445030293111375641774753798405245024925080372400117618119796088130563181133721899810587440342678012526401598493665643492492377733591351124851201610052216439351945171840517368234107961570570074625861459359823759192620270517822104665688090217155426644909259194938370861521705861992008159791866286517348863814927951387056308168760800418192738698758106964422131428210527760032381670992317939695906891439468942324367875925086134016283090740255909007321623023428936663714103010977058216882550370444141929927024949453506048124968042114045386688731995724947487765439348338819443809445146462537553962348013013131201554003851511647134055633150308538390961737929946167292793126974493321029227669536553179992779552709463850993172609523966216307412367440269901553505146481935139537935199109385732925218715104323150602424618283376101291528515583797507200897622084741225371790454282394580189192713618384973912057896636574518336848478126017379996606139165725310681913594758998509642401161682233668212747110871475815822398505734729456894112846234410938800003262283687857099630487322186595120532963044207070547386892858230636606903136570337156764934694389726493934279991695417250835491266385911340345787612246426286541600428292789695320756072056108653096659733533186527574891191170425217183793598173533745569304335184495531840592156846759742058124973084831419504140675305084656896767302923085314628037980174268291802877301190075004287545138369057291833177340583555123673871665941396540978267351032193638929631652727252247935363314005743275044127533903706668668686176139307064089402613953725390687830297508174083079886295380303354954016057901405347407807107988222028075670605692233941782433913584552963532404709612977073173140440430894060784343806648341625688600389800415751700283425284493589169992221293179457033213800342772660864548117876647763116390449151203779950386558388099365861640099794521701076242758431500909623517262630183796569392174725384998390433586292333339731699589651144400916823159421016321938820653518706317073739854798260376125705758103846796364783752219052777603310748476516270188194939709716596705393897729798985492504821657001226621004878179523546876903210720161956382998727830488638571046517903941744425197204626169968666292427082505783268472290890674923891655904911722891529958018837407423337922941100238671813562755183056499380139454735218793777506650533981932444827154310044031762602248482928564897041174301031298971342437510398774183066611130638475254457768999207496703548609469773753970294833292965888454439763825898143583337515508761540719733382812737086040282123612725608363917276601031523837067347633030035340265088397793973823189884861513584830583764943750706666116725513654953316303477411090576786822506171812863334246911521350074645056083049472040373135638415459846794640305701039883690399971786897275928162972634123825698874967293772258621982397009864070676595821363628866899444935039082372408616627417789310129612076240371602540554149678655492253392978923039412125991472190377877931087070334888409065349776412611887897232323081316504454208462979538452891723883442630385064437922248135898590267055971112221234140986407597648418282966649982198614694388760005715608006134527644977374503370611741839310135937401037742213817736008955971546674048341429751639622181959347520301373767876043475100191134733080545928209353385966724905228347384474351004413028402083944380516407464910888377459674026148674604442141459605525493224038995064701046133775321388607489769982735185559155767253683272699261343704008507612559742804154505262002210276583584965189490940485034046316623049113199354060040310813451794872101548257285335862985048630272846322446006041270299975249042714991807812252765306271174273261415755350830880264834685019446667695511464684305007441303609512286303817475908170180754796677700265493678857174900450741012046667616800663455982369308602057803783704228510750825918568972012941935318769634760894481721065162013294596812570352741673973954377335400263959477835224374521289296613885452046445478986310801138264415286315234140236828154892717346460248288903863035254591090411555868058247086724810958674433652824995232871850757641795011960371643031868920788930963552529895297557679071505544957886274089843462270080016426294166146216075966173992084440611168362054000171900776909021743832224142947259457728484663344544931410246291628468978738318944757874202957067804632980314386601913123984458641136788533313139142634820041530602160817140532970104175339590510521396674992752569660625134029133359025232423367588552958786716481696370646074806982277268933597869959041039184324379884185326258053367928903301437963703506304447799035835342557116642153719431064349330198040822603607030690842299927519846521226349356285194551983466847785556822392040956556905613288682530956089563418735303422005826592801317187049862063666621039526100443568588568240776738297276240916572355400482840661479286223004477739649348152899525835581731211448786921039192730977040686830301336296459003800918784153100181865779074698394790853815323373149230629539525757585197797460270162427076573664937024357666931613066058740572083653638567319541786786707223138076874390794319133768535852248005502779500487766340111586860354133378914154445884143209074588648949712879960422389553190764326045913065082349793765843670499132485116085531747473599172497464514237428817818166275326981728355741022205053059544206472487841291612618920934472379347456814446461520460943228152965615075071030155231293460483323994826778854090928798320900026148327628059138334894908600874367997513973186465243580778117027743488942560671256637903249459423711250843569351818937418928381391894742275320496035497554894741323388336561998826334045318780731977643979419022491888832252860340483434210836558747612773838724987707317104374391898196805804294397942077321388422188462546418137095548730006452646652507028456252925766217994930544739405011446465129535708307331524577887786519399079382817577078477120307646585390071266052369411159189384228676542812238186676504799532082066246754305733361124494370061335242208614415023519825344701744625429030684401059270033809475664667704281779928150419390793098244373015325411491291688373598812108834221645271342575815738057697646822262551542791842309414830751945964698014522766767028103770006324886400823325385652803661652351472883234860451985115515865706703379345899816824542721742511629634447794489514640904176750489115118032476562160752539364958499925926794534231173903168225512745579561147218241436417109749990764177357471423504451546704901867029224923911982350747892634551996335403277023943330030653609644160382179148398862306895481975760399662333192048337033279694173313025671159668570923972199365781390988643412644293450631305160803246237105677550712575222687966056698780178265303577474303984180780039108266517470103061598057413411245947325466039564196944477229392410391012947716472096528682293321078735699442015719778518640486066648322821289937693824868820406504572659390611796613664394525066776196052094151726510671418551578331841622594612094817532529505856156723382138359605225568626188235668734997205184959785437361629046215701074537330864646696715099998832277936678519399069447996257901815165939015388820166755858429277333597335042205274667720495023879539380666241589211289994352287707581039429080548467990713906036286031737569098366172146581978642660165579201574387672307089684412107326727573387828247062858376104168521092074037241453186531875439908857996942537918628193857333813715271660606322933369059823492349050116775639602367518620822409366392739777928482237464119658234224525804813712277329292753319138367701109378731696227470027145957330632337406572138336373077691053507776465851830339753061132955502433396297298902216426965214609218451509023436401886741239798641334499413939386432113552447707024017553567200335414417806106611340055354908143320140351165933513654941601258110300544244580076009112062807794133457533564687146076150308852849377969190883783586177151326174486786202204596909013540089596090482248472736156471459889857290541505666662406571673744982327849132413337180454442387680781301769715949388670113981981197789877285913514326065051095572800427559555820876034546931355765171700450650447739749695553714735724010247790863938729977560040861133101426105415460653199758566135616215192183445212962499205955723527170031024648398163629841361732868839776330967575381226818588081699150123192364323802334233805394574852435826782044122224444033445252854468864464507253419313268960192105703264898509140532221562749909585740554866690837064611114705566252030103776582354369231618008174344689821067272558212520607737401178806787612163855786566508935691744985137612229384277709472772460974635594067115623482869832546446020326192562137570776977692459658245987837016100220093950157323938231167792039237521503469995685579259596633985009388946919116193302291762971872925847168779739172772118393317804365905038837066280275937107731722858974305903516908189659045955608985833230933124563901302559106923669692823084899948017419580599385294279336457075844459980190119420929703115352805587095994683086875266948017245993834480009688392075312752127443242416952306728367428281393193854827383297255235515281457839327364819779093353867061529043002685486198675506340677762650056391502682653938522921501779215272085182598697673285337944273508420724245893157656596508016360132519246467706424057047101469536908515591541293530079374591738287611396207977159041021197580050576674216804246214268390125212979640401836556638667550835669553448895846441106870627560853485384560125858417109217540472526209038792847064282272289418497606014975153646689612509475082092242207206070001817210648926396174360189374067537554557757223807201011695712694097147363279186621571921806388217438956893718834813583327024194760469234202058774933460497780598010704600352523942448897386423527841818083474657691920809399441165037531355265448060171429750145274205203111159268253009989870886813427494623822060920906275933798689344097338753422385402842216017293171561334142144207613971980551906575586946901776253645740986451868273895084984735654823501133407578342593784642951567035705253448016868876536098504104023208763781977103781748744034042947460795827162416200944116248650822939902521418813858082407648356763346291555943502024283419050472131377497008698222292183435062790675263041509190072263425456680220548642399131781154239292691861642814180742599446372218283370428554380128707696725032527628389008544709258298820611843009360909512330447398215120360179947346300577288416863289463175478956823084788412824667613858826259503820279246742553469706068107990480236390920554924551280301932141219435031372496147769562076717300915330993207030154538726712503858821099442582703438618008098991351071267345735249066910352649313653001053140449797716043356524181392536383307742948016475954357214174627387350981608861420258174119708744499017722235033864245267568667466432070335724139713321567604395973810018431087167557566084262250489139782014145776642177406025670836930594878572202040349785650314108836505759622002418716960297718806222491780614648869134412670127001655848498740761502770283135878311550041922138523018619096593441811851575675262710099468122988293070191010228616187936729205679176893300294117834527650629936253840553492071819698432471148172092216643012702244907899540322792136478446186741621861061454869407388884058487299703490640016404769262361874977438900538452253606805615104468271934415851201610450349876240322662518698158890249546842518367506005817074829404292675154252453993534784953198272286748595718421509176104871239801878185611177603136733123494547230473658119945174484914736318864123653560067484111175122449302524308364207483708240243099441270030287794437990529064773961769328421693804162862719430509959075590688375014351021671893674695100109169597428025130840286201114528704144923751667917770502519373534095367914618340317324026939286589513358036318160775447950751700178012333451216819941826672011864706692522785598548129983202996999909408445548023326013693308545243216441566499395034559728987809789879493431427146407907306843565224123799985863137150772632145349969702750691208154301768496648346225290817748173787023143803648631937893912300382233719597431115499556517182950421536196770019457674159283537931938609759527625749277887316224168117896888126102752676575144512168424424936810739585186340367830662465795424868636425813137540657387648231747083590277964681886375087345273369669478713963794889483168520458327113368188450939365807217312343755777020666324542844266744245989378656574432443792627735006951953491984014213198430681156674307237755058575411638588210796027462549481921531984776117760561541590638967552024584097487612764974995076613684594042009372324198870106188231275102884370679737295381827532987773743606700581416929767347380383903500655524610934760413077204308594369590444229459786273097594598486696967356009494325573098271701057252479868560330097872325558396727377082988124903648428103427055169934217970688170884479297637393033658675704075529728911185192435976297017789108629124534471741518111697836536384104572007325026964567027429273874979480326033363502202670019940750091406501060750954811880315033650977211136559827447730499416754313191246101306762255970194296856641505785069245739353308263917663660867765182699287905077870377585586623184972713349241742545824434551329187463813452218202524926128513247895872011698414616783340974598432566033766199832286999035375746390883200026023412434045889421018889940612738037691784520034895794396141641080152708247043911695535346708603756825513598578064135643802555169325620937439536248531451563596983425028305460601397259141182288009265461306927309880856115884216505913502082188706974706062114668005071048928439101029686520741939429809718111762995643448918243869682628428163327355136792374658721038987551312223030817936982383510287948239322970244437423229914255298960761398518886677048843671429080929989431001762690139188208629917121293700469810292645883288528012127845188512701201931413384679517486213182376766361770197687984555441832065278898607502229890682823934395698330177225584369436959561024620460749831908616131565628116908011789118333691340550010198774201289177139040325489045556512585243053905966494591108832757299834517829095731451129486679718388836269083823462885340727601169275139385405548661330988301400979879124012414610443837733376919211518858656621743964980666242034827658096544795276536606483085386613500335089607319979113427268414475520567466724878140482891650240552929760601018124294876872779959326388675918934164226789851111555705396289142662059338140530416284131920711024662915576213163160129630259720836260876863659333419924643921380022753388521580155093575658900583927824456982929831567716043872608350414941488605462403367719459103847171997147427023232378005931512405783475484269672117716934876630922400542812606647027113393592088923390073424177197853321259199316239338689465630304497463694750076154437187950599829042866111812540921377777679033114165514084175055463676097644120686569075869522188252883608051255000645019158297065991151077545884265446369437769433907859372091759091029922054286504524195185619864085802522340106140060904077885903915815086580051473716529992309209112064533160370023105884771014964718358792329651123978488980982040279161242285462224562910636186388338571946225615750270818317975516464904212840767839523840972943488931547530444465198914972276641471615132306037872351703379660969092195135557888155936125849340460130818735768227320367608523309458490877778451397951559814568934617359058045031929399912628918151252454769725945778703147838778533358340766809874622782931668447579953538394076338433306948219556224722157296555469992823479227821736272478089109624498438507056830237564133650191599017599965745636250796522624386164273912081063615046630900699856894433433462129679852575357310803306105972562563497169640862668765402541082443697611584348827241403825579104365008303118658118713093922484048812932580601727597615572856544803286530022447759953827629815039062539323497150695002642006541530117340920265674302784073005714914896219788156364147188477310112858576169257202217678668680694927449391707087552955528251799045675959894511285363146047340746530058995908846821176992671593003297770158786740526021597560639134451570746360686836900252857360281213134394152653532509184862687625030767715368776740203558416595019202637656448531403697951988339323642944054651567150478208086532955304459449654680214151801235044904590957182896178058622225156162454207373705421966908682241860713080737393747338754023174474418967259010503615597527436272347966836209746553457246870163876461831209605111587725387975138631415410697150979825821715781301931313512036362050265953179102777637676934278046589636791496422437738548311712942472443384433399130765759942454013127517517989380862261346833717031270701516298587681821950203533936420951638283480641146566884856046181683203028872338453299286880878266247166614323579942843392301845294275959390534054176203999231851900076988075698344427442899423317382885555166086601932501015776280549016977702480299206361516518284806376983816224925380906046847019449421234327697102256729168917531166861833804035741848120650785657001208737408273186466901218459835136575999265256828701004777834084920791150503197645729071525879665326836996245633031721426426517987178249099491719923268642875647081093011690681464664196563195703237426022115850057137297573685993512522801892864132131877530317852656289785914199501937684278915151860196750348402817296233741658215467628182919312032708740012780968386408981944727648033293599681177148422855038338673033137281775833317255585519613416015250291450765630055573895671136206361023167839629262017742947370137638369075428201362935692327979470926012865640188912454645847682139925380331926156596080944220143459567372543580744185808985271240695585334267850669319786227134867692024370148049782795106948354609465471296410187871148844260008355925194037544652524246875197181847999595118151269374386520063713520199528654386860751882928966894870485701855765703704135254511007168356418683363234516927629913287334249133627735714116305693514426803577013862643208711562842494337358159826342586317666082979487610849116840502572096517109278857461778882519353166404823631297464363552979518661044038805974153896680335791688199363146467618157902863398925230750459636346009018687531291821259490638873963483086403525897722303027424311913529789770598914441239309757496143854689869863000082860138010167505477555113934968085542939967268609715887634179112014915813997597019992953271569103803895727231841491376153212582947843020922516134349385699223909150600411896217228339075276368312987868928939089487252727595386007769706325691155230586650926510159277925902138192256791635390464714805705043597338244071023856500269233375419203579139421593593339320545826150899212230206658177679666617031907853000212251416446468681836736877536085905977228412734937380359513623456133172287517236505576224054408390864324167190960779602230246214658464328626679791955923480014954599175633972930381652484965909305700979035884030808075530112315261684086584313834937724597276808073933876627243051057797884509732037549641163668594179513853431440471429514998938988092913779138755887775031241664063684784692131843491708924023433175741828282096022617210384733064311934095510571704781159821723367073985836667511898476889263001233398145713447471785412693870711432166366036950258029550091012921102798170748633050832832437471712706719504744076077849230698355294480871663791236113150839477008016275407400834455373805556665521960071040892904613592200288848447672005933553433951241428645105828002969116986029493413150523747856490911638277770893226861975588638233168650655721648712208845353811168756254076076793423833198033490311913078776436323460153987763336643786839168971339961013599610697121970540236165931711923071163723729715352519034979546178744648850787865535496482768272896958514909322241765759354768554241201865643856451729447021751592658056051048250994597570460576565245140560398946547329016310464037575429407989227791783715988024539013675862702137399205419848368238984136207644613674603923900039078729473485947261623190436227995384514655092730419626556231246865116282888989064431984275565604175037989532021913187909113973786880091425808952504399088737971160187666654764150018428144370025841651323087010473958466225336149564887627545352193576361104109467404172382794549287601002541615215955822459436817090933836626854620586150698850591140752176038081871909880044570017918611888130775046859804610393059909101408002938367445436027451296936561469447417173398116621856821707630269156186519245905386113950494609511691267033378188151915279976967831938964839754508138560018941290272175468012923040312244267718683806550117175576118590201382929861977304223894042394393692252361683703666257804828539367424457949820680375069427463592639361730434562238237447010734183382975971323781212417020881080579876014654524522682014508010151455561387568705302700761221804854020950158708563118360977794491925514497100546453508526725415560952124126878288912182973947050599226967230157385525315054873515215957469030890005603738878386484998970204369831719883447101052156243934788969718637871362144217565387506845788085341964778098887982173612027992820028235968722461253129072599579815993766683753269150869407649953844239656625183237549756874174614444506312262068373923370022393041243307727450403145889712316078965573963197158967155610795116070511859154198384961654122828382084922134681739819859941977199634188189727883502898147403216350449052034405623171861416864419217701830522798328767995931723567413088090866360039920726322076661690026705670400282789349301218939802067496006573220729698394399975432780493903818515211171973256237293126272413867083826291942069998187851340494966656622981917885558658427612293558326652051126996954286794637137768947133905428501053428327097365991552668203221093327882936424401235406280326380807477740325150519983934695370248713280848417370769033283268108235082191974072129056350133989316217227199254265197410733708621051887513609920326533461923216810862652701561571317396324163577129045796400759095857015743233239867128606743275602368639057741757580671980237376678979338400882315142123976393932448099804513121141545430393327596789624161937639045699689671689457690386896964027494484214762458119023044625477929254495584558720737749108062295955946002721540438730003498727979941172485200520069428221224990331941250769464549280034962632974428392841067540242045577041933656496810510443634345165244003203189779615610596033034561067093255629040552738073293355959890052626299942834607232190847700481304844234681322579236829281736105663023030215896427015881353679275630690453324929846498283475606319387029223250204606468016053406491088995079029395363244285434042453794337464690355231783479565893699076489710989598415704501050986044432643302517776290607591004021944649653862866571284104117880794298535910994053108041253548044818395788604783559778757531085745012248126747149622171830599532601169303922985364259667645681427075683525954603606168946647220853066717809756151564315889524449704666298893888362112320815384452479680237886608739205333898780274012504909780199913953231140422049620833031830120772970815696937464619822957147350153739928958612471234204578721376802542237384485753289480545559904154860936988916575795886426542773857251182599285926747652638195736768525176747893356512252823640795598506966736597980247153442016208199930487672520747752485782564623923561145070030595641339653261170266822262842657854687246274169173887731354445205660937923352075248056020160540738105104754007933740968146694471598334890449472931098526999221122872790891821949350321808503046748134888866521949304411232337710549481363169438069686784119715801687591628137762091570869288140058126414162018123819368352308815196542177984457472124749483588568715824403051318255663859487797946802838519211194912105819007702463836991218779348462098583162151387262531661470358398542102763247349486674086474400562293327019665071255028100068632690765561716829891823046851178435437436349336621578799117815945743165537416868032880588181145048744913083114662128390022905761406056425428316664114811513725155448844616276916810263890851164150458751160382355615957031803033156990033236306835949655568932686863976271378797835764229107167480542995554708672900826268887896734819315965140215663952447668587723710312598413377808945122786394847139026240706814625478665115199355949348056853269547262579318597377327425033798366692078589280773629211236047013231306327113650588915349907297192711680873859865700009439878721522520688921133751040057514117157751078355876370579450403329207810388052121962613472633688993374965734940348938310466028720548966630711188889203409766981584272818444436295687667996083943611578207373720032012721667189577951169842702205146590773534000075084004726767712491103026915905977856288271403685043558281108329544841844852830124302961955053311358740642012062689346737837837907595828485355504222191058704905428931649236385067814115107278771950982465572419272313737189905949324097072112693283305834492041779120910907109842055467812833068321104468362053092218997971850757241125730060942234331817285309056711830657760008645981914042305365672695887093949743080395401112266331943749194233693730275384137749751675087660104591661330257980179173797677967996697453762344321597163150526808021892815974749057592581529121792080743327726151678042852004998242165107938360922657682736603780493207843687197769556605355174091373209157011893035279129578481751608954165075641780708484033447440485278411369199592708819072008021150767935829481462442520892780345405866981203451800084931612898800675583021639928749400955432047253676602598990353182039981460892834209632175424534580532345996546477527749015402816202491439789317982470000409715380474081733801898257214850416010552973439529010607504792797372299810057704666022981582185481615257417683258429424022082478197477525656909490139895104891424510087300943203539441018277013063698715692372916004499321378105090556386187564748035042007264069271032961526145281357705236298332879516655558431344498733579693776328054017529517133458168992427581893859798869227819780851781404063308017106648888842956603304586576956164714417092019781407548550185386776468591396981421357652765920324692137689538450792230646115768615969501985995655392220467736511014799855313551038258842346624786060330895228208996049539927692891581572397335803246546243997440890118602312363559769472204235096599221718783268390827674921287349211760184231575744006122084775520571744142665606477901276257502845790481443175735446718532113956748352145039624106342882519695564337425587949811948539525665025000779270918596604864457493524272226170174489034182884834666520383716152986488799257100597307723490413803695542722777426012616845150540308036287511230403531686874890050366681548246403497618360193891520577642174427435370369625944302299079784643348547270668879394519955821231149732366153621893328578590522229729078222368810759360189688110598933182950772811545047456648297460966866328821156154089203251828530880786422375069662618607141271371363324041789527705278996101905196448717790351894638777678942119121146100152047418028820246344243262982195722839878559938836959021119715899532695696104396709925992979854076283669934150541904939374768524761116480207240826351177285771901696098253950692752710400866942963430522171148829876995967526795026614711514141303040394238249509586669427577795446330339198065187787258802440206028527220435315083973392577095239459109431934665434893099694587652729852309960780450584989723140729845558014651061534386201254821968385105923402801405119536491194529538422749654451909013438782098284277762367058692382701643909508627821471761768353209107539561721226910915927715706434775724988624386738729480662634684223653885199258332547591162943248137332861335146016791459965186754490414910716832459488825959223182178196485799502674508193741457153030632634895132400502359506257306856957219406719533930378127886323909019214110160711591862533295856230031553562683891080565825428635771045573043056901753603804972966506261213867871845605431762856026334629776881965046195832068841566104936787984933517902139040267997316678100693197758349097336348046423074117283118932218122639858937190781011762426963354989836847129555532265457027326321235822304170119754908008293051122427852529397646889907375168207774747427179334313775476434577133088932197709302313809835908979758325557896628526812978182906462897229282466837553891446786753666561147447806185067146497399466493183603128348132971571762415054395622169791116718568992946176952904584881687362691140090059197447361285962738224691018875794903456299600708259219676080767998859190587842946422698287939181935306846432476058182846883062085469267110262231023532960228568363879401831806030147354614432842726410988458450420609505034910676259879865847946114844156031368203547024910518084654032409442613681166050576442384776792670931255361286212579377680178228084044220284575180152250021480253543766259873076382983380238773079527463384202726009903627806515584848225198271158507161841686047132130513224488269624561270170423128809165967043439947725976537892711754174412807456961118052122231104628944274510218994172147238107107619816243081278958794104297329517105184484495801578605123412525668739247871639010977752855511821932096865835707301078179331417297143066092953979338499624422172793419814245194868461484923864504518572631954766648726347954563636645892466531605173150623099321811027023680656237473834050610616067526203960036782935401819644806670819059853545236289941506299874118918722722247217747636148115518586858287435664207502784528205630608731046033647948726710085652213449781403882937230478903273085950782737714149724477424554895019243087225631946691334790959375828952279302635284453528923038087017407069191226625850507512424435914137921751860588265001914793557489471634685873482211112419984277122690373743108965241756742238560096852667271105424089097447080658564393655932010219641189811660841220302205575060565555292106756916556921461481676940489869563151698122063729846356200403504279040913556702914127202451983068902062172747798784479013862628879745517131456869765978066924777180001270077875440595739085274142911384286556279945645835700541306087979440609193444341001532478565472943819512052792952914519185496246321165360188414644372617757729094241976781840337180841667874244215824606444930287244987271966720558045309788673748249736961697914930159872703703201628920714175894462596735273897958267453597956328583664627048592387322437032978332355068892720637784968482632797015427997444062772556817517886369837548069312377612837955570789546282106839624860178748928681231189730806146271170609493301591367133374609270045218360922941373480329402587929671678705413628333442108389831365181447962888175665534826805377660325377381897991081342181108109180148071000620975903873827558467543810869714843836583876417932481244169351998908214955907757588125839492937110050645882653728535982867693957069481770787479493369939888201102431712853440809318766073066653030598763160971066821873373975342354609423956416333025642972007816255631429891301049521782612164155203008628046828795113551154663657119613327750771269971440147292225993627931007220086575828907235241018112122809245604418929508041478327674118078316853921331345044385250228884998766222600010590077691341107065622344774734731914004735158863353016379322801722590543701968874178121706577634525802204805463704896477522632318608760930826941689175473314491893910577408970663673887891131263713718336689263856232418516888738830316289327943544834524727934822698533716655555223564786550954409138562084864897583173819522396433655355804467315396452662767227733352160027992695370896959459196102100295677838168511500860737990539044123228031454179584127893015182280770601121013211842043614523883943007357629375030672527547107062972176809601885291735818696906410833922791356941204454421709027100133825255155800790085793431740873617919526654090802211099337867231227641658359670447850892449249046334299029562950705787041746672018164872620137267191345217401216355793554699055834561846798500991716862162867644510613884436412506904839927050685689212005740426912989141334080863681751539759388251129732581560000949702849831357254505572151948536078289439941258797044479398344981390672419875484672021021398560900737163020473335713613121282016059598046420151159485668136502831004698152621557519217710991319085964677503754723757138742981750574699915710971737477754301865698046727078834039119711440028764089052490865258882628029016316718269646997444146038405811322052191000552177334899858572320015945128013871144381080825925882251980760102837614326277731386246869878912477564174284373999526027698578767587958246620723505812832940801376123856594655331665696861751840271021896834428159014101221691601094401080173692563515515389674430135006390273561758620680273423933185421695144976776618382672516690672606042271646844619696406144819018884454726454265538048472105056432768090115492810079034758553129066509043175720657634711679216201828459268329706335204577802469227765440748152936506194521843135764314415638807820624301524369938009152394028181012630422231705662824799813709148243403071453032932545430370078151390424286735962898932914853447713140442205926131563944201541512065916484577631144925606060419612830305129757803300385438271912895730841504372426972079568507757476202080199586775843960333092517835472476918664878114137433157165211454426913653969241799668568968223626833870472785251930099959950884665650131130204895828763978460863004454111214962602596582653431838444573251066004012432404561546840351667738344792724830286503412056022776517369215056628300071086693853767480875241087202538947804658542641735181230792602918308976124372496428649199977625857685547470193738287048715227528446377288944891159871703281875065395261412455195884931003796958931576316079977484265431632052766710417037328434337390650204550246446041989333182295390208999276853797824545501221835744694609640840374375212036258285484587294851979596372990357119654896165515025637448913633918682553106484956186199426936362988116477849225775605597005253235551635666233063990805440479677663237472864483407727577728240083034338275704738542594298121963258795506229672519366287832688001642159689454183678814827528082402089667696855366192888276801255922750120474854431401511488757512370090545850189968767958546814189512912492415218134227968039819573711297641928566888625380625928544922564874516226149646372421745622474075623382962743925630814077025360920229919649073485666009455820433435509433211581409192988578918505275687494387832514934274419434265782401480138086048941015466545194286759906242484261790121629620387957567724167894088499332909712626519760607059336914887256748637306685269049192140076604978371597436655851996771247846877439458022162567340551464643087111366174244377387663205103335104146730287602699478075331540765593073988304112411430076538306185000168945417507356947676904973315964624598634287357600880909815044596152759307262536185787957173512980991813440312427788237105270904327519455365524671763692986679839220701188093676585534196904982893956821493511110559438829803978841243569298209534101904931855007351335031815543252254640709029891900514952776298581778373626503358585899986417339171041094011866291878502582517183805866296818128722975701270630587723566364541623766281700728581936879069871984604202178040086486917856022171699433273627116850614669513622188449339865124658175719954871871565487405547791630011521465078074440887503088824020567970383854867832633394055052078566967284812987246969503878703904527832346427587893970357337436668806945574451294262126971194983951864313683244313287699818104558161483103455217685018513098885480097723357311263029495203307326813426663984987268606025821380381928621530227119374515753858810418671429152812318896368432091995271660454052135502332261763873095199462378109093749560093754179240822043332362455768127622983718257180324858027054112260452461095250006379312858716896108858999180560179733728436162534426224572168582899285130796520150823168018596647623872982019235067359312084513700967193879427366308195429630158263885979579553062994654372803877006198775453821933287846594479211809094998696334075811115771454321748505800526344698522743732227716613760748480446769824437314363993388609114121658923080565139807420779269764126793495783886875932775765116421683461561914395691926945951725453406886906965577605526804054598353473586948087798932343703763448765769810883360303524239923396636848201495158150990707048591241011989847845788058349741764812802668742121902715688840435368841598601305226155124801367053504945648277524289905295216502901864268627450193845808774939187424796752173788601391192801449652370512031653626465762627280889753491269875092212087776342036523878854800398491070173871957831639514992204676124077438986137982953990762915536954964009169264417485324340196145682557729002420899872808645021250875426293829526243077533054259408225933809970507863427216340285304247223720368840918795434682364503538230376676744012963448991430177438110638215365802233191270793404779706406603446117693896020234691536950594196446547844549589376776311614129078789232357110029143475599959841673975625143836375778683106202745084782921604115133673376785845326610132728385926219123335089533213982260423946411696402507141177695029000999539588354473507859272245748487805817930109652920063643955628544719010358121579899709892389170286727738223953896519889145544659400315531088385826504860331530283991028032135884966508080066945483231949376082799767167293742935204589743181592800915640187907813825223825816243693011149661577320315522420589101484421425771313163160498662069262280745047400217405738464964544185290897543682467344962080347602053271777879013535165821350121426648215009556401017446967401294494434832957941683397620629544165199235367838434716703294361971488426500375898642814719888639933887080183132817895646543135792490003341730477484906948304205660098003298179411959855635673282018468671821862125159882950132294839270579150146517811604446335634337840900339827135629170766079904269713201406807407983716472796364423929387372354360370797998102391972783882038945439714448613906676487756038698831074797186515147342580790080522541444118063427327446337720014409436178942282239372548393940746438265165961369050872482046719624743117221602153183093325667547223891123195521114207587330897455666582445389974609358797376676626697446680271534622303870757154919572358496369685945394983295100869586801127430284598822870155905865562295527029391518103003240690510707688210076060089118977273893351487382776679691728822757728127008307420115670160442971383705960739473761166665125672102612878931912256615462157704658625636857492560339077723295582444440308610139134630213642452170999676877620460615852738428348066025327626012752444516781407827145610284505263627566872155069758289902232105416325500119860372067951043726382313411980752147911949974954721298965748781828047652659272630943018145919015592548848830855641923929839928715047560662519496364090442541307785024704385832034730218065102337017712944857570832774931520378054803047455351728435039765151160787354881311441044110395909546885578368576712587058137177175168709736085296067233782906510171449922880534015552567844872416388367039812156797956427723827291160054871792750607528690323754701898756503588730986618523337743608787868738046756019033523471535996442665805861968192338480961539064584766343026963867865048834359505455717120885347638103151055753972456317520135024840352940249862267112934200073863497028571939448513503061099018730369897937598768155626471746976630474733336616978978046156635828774383915469143530983448132430549698363896397798287229261117134417518991447776291458411853063112161891188676849023429939003745088782446871520837797146524797363036517189688449901376528242406529291745422821976053377805070622945399956138568713299997958504439981658355010596746474015653590815436036143812527399973038693981661913183484736347732118316936485601164670333722679979628706283814319557928176565412933848877503055013996736456094385610909886468912276614414274259536731338204640544949532293043256972194518759643753359270441058523054389071956742105225602327353725965518430326982850265576830839727273515746797900982069527796401597473919933842452225288601470827601798415446591565026846772930609589547891465659874585809369016261433784827581478481344274235240139302921669062876698767777220770723484135645175384596051167238798403122631343466136569479372752043755659774191707238246100615385102178969432134768336236181016807072806449661284587197968414909716108956255842868833220565595184084902089827776959114713077414312862550001743339202599637092801067010134757001269975104675685616855672326982780770450245027445038624141654511573647740073003535589456193967307825930380776529200807834239371448728860534153957546157347971897713185632461081426849759359719360207928937744596722922757046329023119137113738413882983353170359721532901741498271110288317033958111766022592107543558362656091828802431139548700044487949044569152993829871001739078498305247096241746513671650327106602028650358052358172935287853536215323037009798050966497501758813878150119283720760502215270112925861824280984110171246284828350811579424083194819362744923891818496466055413121675658925352934989325056998240571198523360757653319169039271931030545071917887174031891172567702616153593809084446071476663340737899028688351487656348047654035248916962324608446576870831818142963815521632678306528202108899562902996023589941359588494617478398327050411758138282891951250772624129628972554995010102852246332853274950153253318528844428695019945565450167310025465759111132466550471754324604034447101379398486832267315158548357634730584915344097312353550127398700135249270653450229104907345355149995930058710264300077567477717686399217514627418762105076035672406768420213447369188657803460050422903568369874891411825060158782103008204515377446293912850110898368858093659155403547579519065943527454873426807526500985235129930423409029452392429554232185119478068596279775531867259587548187131361781093765907394709137205581952277664738861079116558553495998486996939238812003576934484501426367762903378132919335998189119904009239169053381199745576347331571113832459944136560875698648237734091653282146834135041372995772662998626922684649008539914081293588335874864115432350827264640214346941443323711282284922529903316374714836903952046671519932095315829645044230700615141296301684709314292133847490891351490700879444908265931953356376052036844824497213425228874938086105146902811678907121358857168818730696999622041037473313697290547567073487582149850443494588860529444809509556108410399126112288696133567728535434806150885323161315917519530174393233360400783044229730791538661132092882031111670060340340278182470632218972653666269283275717288847511524842995014278854553520241508335480008203482521582724858461113295318231263284357762799525719872294947884562060539735486227000901867505273624818777159928523604370734094982848847079675034980381700621066315597086159723985719687043717573224299528503766362199220996550880716205362674194273912698417340665891964875805054557303656022646204953197669474383643230506528902875689276667520271174153520849045839442877590742034658458242661874388875848978449309402122007886531492078270888560506275814829895334467630766927141653414455381153748657896383882333783044509684612402736541761509954167943932517832605784092288524449788434442878451174958730666288117510963870035820330344083403841746708520172824263068488302023962782757334082922392009977035369802338431250232038243917594552467729304892887916337271370609905460397325672825570555358913693133911045825066375987525029981484735704049844082540468097399759543289801389841630142016011845586061492258514295708870744473663920168824467930649579713309750942127792211419557848629709035933378286634000821272001617777858172141824729873194628552104909107425135755287669580290433010879170902402298932950046910374675567292901120074289722567294580546549150124375605674300806839679483054059466709822674411901989728443293687455044636249504317799262409930136040394514965274506162693655778919217736321267649776661581592082708641869328742032664567171655821011547842361722766867114255899925595400694843349897451002984213891361602733593503605799021274847119427485960451799260089112276916994748843052409723784029426500715911659853066238861730467734945636873439238067888214312438945353584681578068591707122151461098111227183941034893926858687634293723277946147508170519467121161716041171008604964224692472666848320906588127522465013519671858378986014552482516645485129526772799463757620969350479129841572105702880576705570075639118584515697646237976350036028369627928028995083068144235951821419149233968640019753857467169539527389076070492715213937133939523218253350357469659415872129893236354964711573430816749397454308896367257882048032509729678222065861640811553515209588373579514226593302084415812297562164984869705787697485286314326833910772751768541304277242722428315209250789178757059641327503997247638415338377603117735719671673690619489099214687029443618524523826437624828400502249668792825633108958987277726213951671297165847233383156503079739381149741538101000903443070931737750429642478927842763024246333170346951882692047121414441747062656562054357672883702007180905044320903234793446023538867650381493686280432149930052305459380283335930745095011534094934295370709840380247032857777340015026420395703934734102371385993452993836397021791847968918455918364009225256686421394776043246428470019143094720560033530961844772102621319160619517699577244352593064025708204361831436217493501904102842923533635445226505531993804977914154931072498153362526512243328561807609143679303295641525970631219536213878846013330276305443080198448099588714378742889978661010462901192606400620075101118738227565127033466793114230047122809609456102779344375672269725693737010396347044921251657802161900312929488634969528090291584111756353529358328255639449553547236216211198671284497216022127957977288128366913863304198559789899152071245140604820207078249467429624923780247160174627506986315001471724957262047127470894499739893187777899876131299409278109580635865421956459368774001123478477908805426263423426451808337230620079350333855586221908521423021711016104827722051213801751298974119017160565856762780346940637003728440988385632125565103803537540399596614340466668467985623433372112569137906109748690529363446919976304884861557490532352440744408481012863081395820155659324298340021798294079954305807982459908767781198387761153010474060864760134757340101445837599751134361327342427689721766688484086638451966287493013662611758663521192460323356867519946661223092684220355852674682281709748534300689555220927576885054362614440059553142773561635545512278472590434124426896431611539112476070943341408027141476640969888583128177490495443421914707018594254309174379469689082280963424061360574697487649524178434086677429981105851750467175168733117737782963399598732371413638688877159967748123831241418593346651307343391394237550322914125333888819443152355029966801261406616617765922728746294516343597020863809387549561522584184226886945711051068397102351870046534017146440891906532208217335980519950716554339889121609308706382431114727219185938999675913818857344220249830078727122586817086773673642970717364378546863938302030691919276264368072821313680329220861311819907917401949280068551570581562144295599314577003805105658242382905719888561663920803335889047233115052546907529456130851582176630701149925495167454730449492213413893294628378772460956168507891650022561704476791183240614301185994386568009852809099016075540646302629348419403087549244299114691736569939751840207070273656984722883239306013635295648987615854006482494727905134378955679835516490506139621904154557235822636155300920814979297957177378319283071557740107054197298142752285138181077279908649695670097734424410580063489484484384171875623662563065179761322076969681939070309424139769574614194047366221831228315689739815880418647656343752150233449697061844940483151494032842830752481279612890711442638681114176338834750197847945241963324845616551230807224593865585459443686469831533774185100707772606062164338040222268647309334490856743386819877412157997578108276064323996094558964173529946046101779399653320496585352629470100786848693229848362798703324756507757580996414313333662609327116648393406703454277531809194863213472635100853104704004742770421488822570347311270986644455291620019532725831447318616708104251766469712782889952266037697440190409832099499603522257753024612080394988255976375328641947828756932435045467697227007947161791853167160551983798938793715450624457826667617747289313085349586011768457086541069927954803417556130195655357281389226265669622759875668694298298297323700006795940975768921897007187683106910374384405205421871170098468994892971054231574953635768489041616409900661842461070544948295625493504273323060102240775891271456361456789270198575265822955067298221168795129796152151835229524566198855940025694588440257970764135372908061103842551867334323920666830149662271263071000538978655462693901718309915297579424023074291437658474689597418066219300633313693960417035253724150005912811341752884786699678209643106251826067002639773283394305740624423838195410463950617952081433746033086944682032266256426965575310826442047242962088513798127351020508228533402940286245399380670199214003978153884222736184056244149444086025788382262389190122545182631172859656922273513024921917580866954292387924214306522274593791678857503082015115561362251940786759159815003316587895568145867676636441523965655224102896038926239157720897697006455141056667944559335912040933963657590203335210216874156974102555380368941065748024450155248420090913687863300869573407220737842401347745155435786676874643077682087582896587322475199595128811452116124088789187536793347718452834106513893286278070535104526253504385428499005620573882268356804737065661137708454839866118351301074237877046528048171986786383986592865868676339895870028333345776987595080697247128985797035249661896545765784718613918081276535542855757373604887585103943995612993825554326288098872095261052172673903049111338326693324130256483912074396888312701392990965343814894409955381532204892206263524708442431603541422424412669935342085694769032152651625269184238360979192799886216914234882606688162850305838975839827655562261786103908126677721483066228526971190981485345898891811119763099339203775643772582249678264921138816731092079275743175991246854174993809757368318573362058913580606605611004537859803052054807637144323788530741107432974650380327958573317592980474247687740143927613762761158441408785651472652699829632534227263952960119490035502152597069104445320292321543904718079549226639122819315976807727541717109344465453079386750099302009175611274184569471307673226349429949760018156188829018133383504793603791649226612592061098873300725540539511007424131157295964575333199058489498437397298031906435152923445595627164399477703621614789833244749479775727189538942335440765591959668226874106569163110587559188358180081711182795324959809080290244879312831870451716747400431625266899732587933221485316447449480980600617882300928252839682116929583701959557329547740902831905920517764746660194129455082309513812388807512029925127582710013064494313869373205844972232092231321288510366858218878310003401862421325380039269456332504925948266236071124469701291476278312221909854697372117221332412333122872532474664255221413334295924321014549100377124849193666712745861210580320929938837234277605063930486403663346633202326295419886975029617243302788586182052697246042342513936767614959976815304351298077069115139343978306569753641320615282858628560837203740440255633604124130925767433046064843729428687206616603548218152562220758279079482099545134115671610006407505619245548733515361599039166194117466020393293432824462553365563984229199962512199613520278987926056855655142734126204966796725058152263170930746229647909595004926694293294935056641320221207631094393696454872708482489024829505632271858930913095035015021280086555441209569081101956755340019661837402069674301562244750715605369538987038155536683222372886878519934661903511191567122571306181954911529341619328068496648569939570319290070202747988409973501936679193499985259292238137560451824243459379365551659963826701566674428454987859796351168198352933787164743324314183813712277061080449768061488563929796402840175930734393480766688116750837354586365322169412725098838815400344375829636819426691944827605209220596572618611655615994070916112751332765300806046407650741933914517053859999161042949890531139848369323226187893163718550828635786491249077402121387093062456595718484104035691639275993127895448149407683387398487835286958611341725728742838815749412325451012659050294487845874638438262012274179831204280505428454962993209050110214339144818765033350268158972807658468882882656742926380066788661933373661263692700925461738981061345733654848888729767779034530067387792081027726123515741190099610553586752557596625427819884657099407235080373977424457412784478766866697126587135183782481088614770239541403107011296883867618246496843464251743717225449941484848260379365887128582091164583835020787361539095530886544438701655496215238583893229066716610039681700710288624047836442969977690592757445098789515925419681116091529833249455516398670333753343980104735062500393110677784670828462417243895618305549811708986497820098991734223082829662074692111977475252717115348859012575050122541128017261947558252391236481072671392990675673755207896100665892136982996792838785281309959319997538759927158800265921745908862303712278548157868414462415024608669361533707362568990432420298403663038841651014862624538825714623948297956015804529794315627925831895849809656675302360668673214307824730986859810257034899757969018486796110626584463256460580809965323355765645327604007531412957664191639939135531633292820170413276228561500377993983713028373673322736100499740629563181709708626628688718075193717293257883311036760249330782103331710911210853317460012185233904487105186112813992921747969171332371082609081081185529091640509805845568781441927287524033304468776372913656539589046983240561597103300549608221592106647022902739971885903880821944263653029953111584075485697374931982891301925433253502609200284600112876713974102580938936545633464205855599517394136409254473814074520371026191139922123828564828107025308071040561803415001937631012982017368267050271094554578256336612190265497810298895952048177903689268359039305115942910113378465574919854396354057106573520925551636486985590326705138392846403520466975972179408863091891774040976091723453152033399023455741032114780122088340541374154392184144164878492633450191447355305824558195536532785022551756460287299452266081180986137419693878307630860796668307737596053143345924924115175437021899717217679859439938168357570193766747425617739286465707852740315504707715580793830611722712086738717222157300173757095245937221668598649237082606393669515454614843025853654884287687559203238897367255504321791201382962397384828799444770350590255816082586785231583407054194447120848894994239528492231114654579508317790704345874794358572841911774503946233819308645494262802967215002599988944550325386616811544467553562780327926989616926102154962331710698937511784257021487081161073662985682188705983633945571180541449365714773644351092449461333034844843811346932469330995752982269715571782753243526208676324330851780847027094821718416583001003901313346540034468293572848922450998578815497992609190555111833460833904324905326901253495726507086154024263138734233237790703144450561294923172124008270883629347738224691761886500385402125637979223096694511161232544945880137418276771357828346160610615669393206370451663878641476473784117062112580289405296880401951961878560779784036910904219660245624311963508632666520360149230014596358088960157814380650298244019024523789432907581536384490440107420666211679006318840393003685478292093579615127144392895671915040020434697726048102301625859137636373398550911240201173892389040022478202533114500895576007110921885240739814923052640996705992746620433481720480784381797922605080357086653701986655923609690822781009731665190069525130096493032166566969768735116531406398870785407711956645041777148326110768359649941496530596591253684512609726433562291801290772345248741691921895269085300006730497043507620352696559257352259620105100290347261289311742559076555216760587624995074145573996862663081482349961749981916904513946276713502387965728142158911104657736954067885457739865163712990219616639530753376033227692465841203976636108220146108611667043839336414164650244006829643035574848177553835211989486246080151703896843496987545582540569150088851715324626910586422223978945189362148129359028509086475777594330809891244549811124767330677600273080027971316315389840924875811447395733698928081293615977715472237456192243322513488881792098552432222903885979850680526752868075806775178839597538367416233985518544893841655031607474102148541078654756420896397889298388936490758770933178310716704158161880957107556302369090654274259343089963639768750860216295106251744075883035581686061270977310910429738284232078078894181039312820654447071104020631308558388624915325072937547633416293671186377476765408453152420497250249025735402155692490415726645433301378001250304304351676507183479462100601177418825039273033949199247039832900496100094982636177297121577212533339376714147514303836430797134072645693378126578354493425163831100960137855064773503816295531517579402745477128035192500733532367423724166958463335707768834074579793017165238142298264488907611347140325399119529426190727169864288550857975029649045884103336441620991063781764205798430889732196486565348816037408701045834535151867879864641206042794935178467402801062613793886308185913335131641882471042848760680955020638789371764295028357023178089799378122626625586687278486194696327334548398147237987139044248727138959654789094086636262880723057845093379726061781924047945652694179891511131593762968108147460862197610948843616986572652231746321941777014680901695992725886250831286638819209754885052652835442416181601001019097148680574981761720538128002171822499377721094684704439948761865566977765725610735338586151945658282538285448745491183489851118444706929221258000562076037697678510427238692721632235539509655680472205500603306511247383117874357817279779381675514506760522959263513392075032872159567526043381330173224687005353699968134860383392361726734106855547963564477553855136221675625889301451225993986595394555576660594723619358692736515318612612870704918811242893335901307469908624491634547475046557896275000492787707284970385801570762038707082490165041010043501618646914301341566512637485282864666934558758694566520698171828872349619087292127153300391663448323620330085181514599877821311121391604438647331539446419195682493508461698278142102829370190239405506132631483313122877848761097715927776301283722132097226877594852684476360704552425495180620553660944830483370244284377465757678030949475269636699289386685876445113592482698800169811455517115038042848343879779113398602574783073825596615500424153328855743435240730020877598730243815694013271729700865998205490181851088973740020057496260872287032793104816265560660051215596102282890173405823323760971536374186219006560721355205754648865112686354749490176317550301229153800443036580580122541067299184618887918784127159963870773072759073755060629804614381150252703247106718602171946871428718546259796555130483553546310143086460813547128110107934746747555570967023303884282055328399188353440356774428353649142520882118168016758453937714405343680766379786941768796599398805166712767196758407641266419530500972302804434798771719938578303795936711874178247059478878039890800628629662017891021566903189203885528160059997162052827152561614817320443582441156539637607783623463617462983441260893770016608150450706228414106439979900057770765384814873269351886092352890941267644063139597094472516259693438407817667911833330585037325667641259337716470624285654213593037214417370338863451665759282519650216159750745995007736652258782870492095054612010400153326102612459714552023853161854588517070583914979028018852342091236266973200601884972005384423971499223421386828374438905831378829040004975393922166670689975152253978836173112170236076173058442005483406812106346788073067345328993603401533526071885629839671149650709768223592290485049130241421452812382401127768666806140428471449972940258737984294396374372422376927877270678339922692009770217386663840959640657050411282072063517019331246321133091219564735777155539419801520093424284813461034256478610999227929227463822389146614461919219638014263678038730086326603546135577074977070596530803540058103716667303045613646203759708070441523388872976314049085400351660285129443891874293054027914152275287664065546033793582798165927827082760531711891329033509892971531264167753561136111644874111621593718966876685657106683525996331040601741225484850838159698492785973628863855293120191166160240033086094507670611540022486079847706561874152331577232553811408263243804574778688775322554800433468503600873066238820117268463535732797491454672431191457854274405549640886605011349988929175580132852686839362550045264157698046280637451811084882753581054397231411330801662454876291350261899585386328894394098587364038081393236858906003899925915928208636970088694097046541522050300923364437585108856621340656982166907255969112130209830683551048420426157624324393943489646300989025735377064681866710391376376549490679433434599828272353696061217853923778887471718515995432432284729960710145715083765661482426375446864554543649875547477451789179512742106008191448218168679162776211693741100789758090829005410369173814975438448342295631768516928366118149585232459343395999814660866074713603158549870685590693016908310806950926394252127903392524936588909865552106880360769178460966226130805466805980376183520782437782714075799353489822208456136197207693291823680409068196530619740572450293876399805513224222689314294769567008248638675058797634550038792808137469590557054698952242449140564786079027813617605954213973353962304572482598617003783984649497186602634717475135426035333156089543451420959970934880077159471196234500376205077948282380738503693211178280261519966395069687375977635486169889495689624794870029274229459043533807209341851924841532389573916151274066299264640011468855610983485949000305179662318570324739987143757746174931249508642841049479567069088048054101972815779855877149219821061705148495399496629515280754443816139775446824155025704902119982248211418282163175783048320271044781769014199913359506680398153636178583797107485306502800971568374446102494731818054909041993649213856403893908498414449206091396368817470732866959807633849120609499954310463655575585708531887303983822595050164259775190326996406316625625723107331114505675177578360563912780144403494482807660629131457917989800009089609020016243144601163895587732327588459447101973973872083352036958995949230086736321229655711481008558144242801726459314080615531814194933244571125591500215236217277869518770970821466760619086132133412092049895209147343626997099865362863903112356682083381692524915201544529518518318057544782740100346414876032812268139737762051894817745504151928163058862302353770122412362849429778541154715450482881453785094637290902067728504550007943514092069017138382406319295146055874259648929582523029377931252470462142718978241453182758181100710287957709109589111419010872244030765151942274385988419743319330106808332960332219980301530803456514789317919394364894808109996553310928613385217731768710928509239749697005918416006565442847717851745659134432111873551862240751658431991281081536480302860297240098023498544342316069653824613040725913743348394264748166738109502972534574585192556187304050647339505217784319629120934516765779750863641509753697862026855325427067871172410493500605254748650019085425888863690723392224428678239421321606961953330830197960362788844015987656362255016662021997992277089876781144405453654306176513884818621025309546694088197462780648418170655363987946492085844105292965131771845646293667932027137525483395493980931133941466501296343376504304578203851040802566396065522755646392974488575240853080874149358434165957401276564424449933381086063857443792688898225884230415050032956603636909028883025016165093145827138313831509890537403087444871061362639244625097270505139810307717615971674275834555788527838459200867540494397467928821303618277568929800518055135902925424390355061350784349656239295732565117553168155701018032602218362329282288395825690629670103514171293425709349310319038253680891507845696796660996380973492437166612982819290097339477489430988880599216503581334496962230955258434120765737379528681716943540333153092404629793446052427433195122071036277414113566390480412584184838438158694685038575962587581866464240831728410430890677464810719193898232589365358325455404482503520912577405820455420353164640938098941876187766460475151137980693390171320564295132395093210933830751066931205758615463225353586493634986038541714011844653812337942699344681952989261959110147769674893598777128783718467645288239744174223341304030759465258949525318519065162120903683600805116366283853184783342715798015716955569395591171342384638919008292388450543845543377758539742626622788647308300217560370533163308475897489040212238885947802545562997039806428317641723352585896566726535183396306246305718449059210445952950262862139165829736842954630161342314948807309338478693465462598783771983379376413886009725992665325810365559959374893668556779196256043064428387729133242222399698000038214863098007713992853284892618127167006087788759154138165252067197746167562975578918061742243676072219046691080858502155442830845872362674770751147647954824912876215057403533296278943325065163792292733227354492577166082628309238710345356533110600392280144240940840440182965687438350433799829142653400843935806584931292313297720450628003586891223149807607856761837251681062946390956873825483994753364689560935901212072776710515268525874744509660981060063793023232349171146683050616663614673157639185417843261767255306192650112010328479337827695312539910422766798019170265341912438319927862684363587032604035350475762206136221878474344370885529212987005244826815145218936787272532818681680609245771831706415455570091991741263772198931098782257794507429336896115668704600126150187019996246980307293146887133667534225234326314231877811187975032830127150641119739493869845654210092004730888809283279508450955221008146823301832052865380645284319158530062373274803770435673883381256207778499399393317025760450230185700216417319268649642945655741818571493612847764046079065356820369510012808103216676506159584809132370228706120432467490959188766186107820711758143489456114666176845675511919148127433798747413266780228368640265858960102693254554612759819540098788074582823751272959910969545978838668312289001864455623523061032957207886882689802882104498811537999134128901775564206489782020167546255802106101155844666002132833531011332795765247535271899376135727720367947438086356731761663642291854911163902265823209227273312764360107216237967820281009750538528723705998566852141858480711016684947288942056707790461432910085646714051074448170491944237730457235210978710456058165455842907590065289307396122724692202178386629605475390789872662235379404358702596191682030223389576505148172470421002776827565057647719322107793369837122074224615868885351204275949754380606669338190766855785069172660431641589008884383846990636180604433107067457736157558887209847732631382071206608204087364485963530912036171888450530286126912739330494114851554525268721175300940881532086979088511174142543905405273880578589665828527826815935636613112368883296203818669845421609966343909509894144108088962107871007399990332005483129122371859490722973039609379933414842540662021051355489249885015103267305887123901338235506963011914712359579800325929550682491193932542821308229672163283526529219899387067935006802912019512371792583632968252749521773244224454390245761782169449926122329288309816716688782112279545607999796522280028048980135359628806607121326038242032068034272883198648660369907210372448364988984507319160176364807284242493511474831000211584907800434549955234136734574290889098894312469045868613589421782710519678866720812638866592830206373293801686108960439449835523067899107709572048046046062874504167151047897592889371399864693072780197591269644687294600179357545665453432250441701073100015333707414053720878526805590081871373363442660508729784048384013216337272005843108252120698823148032496748843170292206291273333870086034924363879792162169340674440912021451456835079902174937522235679005702940191628905329026240183589254546251303923129355019368212040960213653805458873273569438191007986721004385035803703613388673592326012832719524396418904651625331494248600302936511343923221838643417642311456004076561335495742304701320224426079330679678600282933005458324544099467871271922103717190932484085774621459074050331920983896336789063632217347702776801346985813844176422829020935608225680336402455328933830381652339493690331987490765114104386430414039764325778734022179079265103701010529368330849479862598147535356193949512671251663230945554474588880219405436915008602016487794467123641640827011206407915079467735556097620917659195561790628826206979213794192851201215090478375267885380284053673536115332481197782174396621217951826722156184857649258761503152138633434522351056432980686452392828178931981606853386803989461230943650958730873375850171618049552215390395610594571914231280164153578731835111127663613564820305488111066456400580263012255317010640086963663814704853991291146499622189065825234351917528888702157416091883814948078179960593042971685944997227506191707850749799364008580162087210418745742017492690581201038780500416640888250514431738742939959830381797793963379717929215779554090797334203533556017566680623601323455223305182629227414543082579726130531967457744715347715373411929584496647304870088108855464706435008959632345262056254907944321653582029456354840564632900680418407778754790165514739409798311526679521926949277429938338251310721569462562512294889110436097786985316307364965760818568170848046408387920960725753967364235493646826934450390371965254766774495354289765932583560631922863872874535246944743221330484989503407555050746745221580530994655011050750853142880648414478955676459173411760712817454854339679201774880895839925120472356742778096578867263551393898029332593813872166154367560277124651248849837995767281291046430976062506486108268689655444781696916096098946961352697530572400732696854704894358849724393205364925446609914890352166047999625837392410743821735155584510348610225382224408382062755321010674622723905414371826547849552502643877197935526661267204856694321663555135282149639714812632082247503763476208562101880061527343193633311288582872163813432574090112531137581520487542325455520652493350577035887770157592612572922172790519660003057991654807020905804155284517822682505433099838195623509197496321642850058837694830158528409752809250983011592587779272307758965245687633262516265884934849527193681290141361197605147899876770121147141341114115228369624277586024842244689677511782454322935206703540897243242830437446435289186982982838481799778444589416336687584809522762463455190243385858007073638705691169382831736191137652770815556444095984868271711296571672443570818642986064625266083712816653189546290524990530499807274712253363193856183400134539272326901746932375712605420676631838510701923598561738806263740840497107267747350259278609382769972625541996483102607042212828041717968475448454197474822170530346317472299940728659437587976368106851736188410672343770188413472020958815322807481563399806806095825959594581311200061899738380273695942509224460578784994791205034792523444781628145578375882394566377163896956080441407252985611368439710978114491790447037517840373008919216963774587943808204409245594676844152568176574696596357162197050364128797418136399239543236268605183311836113823798925049915817858874222767619266491075305140420329286799494684833222483839722779784366098289176355585603343747108546775347017146985354636307537204152309024210183105625266482829157626193856506586627728870291508181377710479102833172445193042947875057218592910680904907657695612099424215132520267027983819920574130445299508471267624398692763864244569503282260490454339629256713586291812300558120768390119768741490556366148892621470872337811897357317829556244533277028971905446288663857174404128232985965075770901512097259639200509824403341362079608107097954702191801543713509873689648612357645024102654458846213656374990268146434708153406853527337282233368058846096574918144685055373586241440130531949118535924027375756189644107834588093816113884816862811913046587491177875998909956490985229590782744286143208403711702626439513468302532049257897065156611207321623676509793845642293963200608533435804667106638983344800866708253311835793866167424072785631063899143046145213453369344756109164402297398936129273256123304229917674790984774101467198965673342126383966351556035867970357767602984247131450351372451252388234262170196199846212493389707567657315628977184025945217108697763276918027446543981909622265092822450439235620306507183362959575350759311159835623928667622969039898510738084745307992226503233180381769132610251613382222872137313532468322667257278985556106362567203632891882372205872698980785549405228231140149104010421775927796662383385518902867863583171437779790269744714755109540265889718951860335452500694766152200520809839996381898618193899019728019808369634616937629880267138057081892032644645324368296618502065011142157987274581486381188576455079820940856733906618198847834108861567682371209297500917832311366338711781812391083816196058202621937911130552660361830087302173300370360157093013051402474206081686097014559428639775129478444429483954743298392230553949689285285496765160823046247262722692073730518526555842383946802689084605484752671363984860329980987174229499286806713046188062566797547639417892730920757524415888893681753194832449244554827551719235041276242114031069476788524380113680205651331279686512523677151489310781828373642841942044371292370849562887796972028714619423608713622277598720503089881101195483349148245295991255000191254560551414961820708594703521793460250461630164499282347965430330802441805346492275417418428741393569252953336121584419868392468044272044135748730385561727798495759865446393568926523516476310405195167982676996056372890383945468824696404313376696024922639288835238471604008253000716425568558510897798745773943725252808557980460580228384580921061016920605078825153968586637017089034835582528073670872398220536218742265231743254620232019898053967823190021084867569892764231190088662414951017265322868739080138911962402721521916187205427503941548515083173396856016440788472965949649668898741351105993728642433740774250398600963123173131908411303869860503019492744242699781708449572916856523664960859193644864675802116797191838490096498762390908897551612798014681274362822057249236458148106410704168561442986663104237256362082115306764607620212680288183356665585987931101406103773594539354219859804281396721156254804251450056657142429396714857037998620929270434898770742535188858752713258412533043456779650364092301740174824120372161615953233160666480400172596984600852888543767387161815659008453709827755069356095577070984625478062721976124738092669359781250183219173951631485324707651130417223131630554164172978259615183635553997898972162830856853975082583270841481657758649202295769593459350429133939753162675318634623096323125884420264780202505984851236777184828975112746915771042183130064583621088469352471816371197311218673947110658886882626267942692942178598256089664626666640799020796566178873857532568303815082737560887156372321719362111240489628204893526963454453591290372875900047432629569464425969727280067318024560274505887558345999126257349809376646301377660447621404645244185741924899270811642106312114039017068812584832308287086626663687921555338730811653916256712652382102974354589379169172218010989166640196520025479742718690910431596571716155744140948530561445645951025153791321081618909820071304862883038762528085548886233397913158175659858768165933543419761425837881535668384406573065405623464970940835005487513202955508506778379714030600021128298070758367215440382731496659704749549374505134804093211638150321900443320411134946350869779242792798577434467769918312856440669807212400548221789651630367432179988804706973815906345965025279730904266967902695271206745346460208524890593993903437161611768756667610187034327064610694233564569056378699773923465684098375501970765003533524352695949152074357059999974408030556827293906331321116572272324527092822908516373565097666729340294626058751224635003550594451233671140382877391147390534917748791434460004427167823153052397178631183378943720182807184586001088307122990223470057966793227279463066208576773089036989032677854331398758310195611398055249340321709206265363394370459543732681252443118193630661109376117276667406489540577272734814541024380770405252019465501184478659469009791460034137224452508432092379744128389309886220533799898859278493205630474976196883084941013863133170847751599467799446387379737112983580244249045575969206923595527163734904692272689379552847641175027129196866325065902685878213263775231048346259628669001614535326571244725586222493254971101756381297704645844048202832634940366352526696613338075715149567866864660044313864567403469230934250812752105217147684160724137159821454874972708141045441436965808524145490849999768361304461572502281785682650001493125512078652872134951592917416353750643930545331910594953032135214701862581660488622835044492942755182455161227306579177977514963086938350402179886257498771552449909124892901608858691218196372293562068346465030008674242370736450653830919509675861316658109720783399598240728452880982660388005886214592367247292075878527730640186087172969578274347285861425638102135318755939433260686743394255333369092610964688747660293533597422592998347047147213055987317125062083082461767621485994248733970950173095429203330227483596911900495843710350661967068764455651319133520334859958058095616838574977609775068139759654798296391168671353027666737775725043644901837624413473172100684445876329767959535046091323504345874243417648981960705019301081656255347737921559884887550500477376918945485344947431185576245314061777826278351725840830951822982755655345351250683958155552727637234347095755314896372017271222151812300671090142922427968785372570843848759054562722006968645029049098487624267616370283696219520354574745891193370296344816841563932946897444805600498926749624492919231171337817924863032954478531335446523495428055243054898822225387645526986201925600981929030246203998549419697977886786770271915365063946314916985959371062467757624544045669758476642188654404916914531275468372205878631256372503626408987574237564607635550767354025897791943233822174353980994867081719859344625407932381861169652204718667199084721413588738409618556306991277299512452067125452203603203170088628590040544003772130922637917320644895122720583743966988469372835968728678081427523468229407825386716407325041102966977012189140820492428703268535585867201692905057553315577126874092376368701255075213337601022347200091741389547405460802549142852586493557229735602893646385194696294747593257524320495746972467278926238053609849223744044969753949400761141101804109292131946523677136824040274495398355819126428369416487297813026573287175207638627378043365087725495427340261911082160970155682429834638187587662701572724508896208009275411279966919319979542748547221504317936419651416268783259126606204229172174653016916594880082769843370041414068086359307055645109319175114826978651195394469604827442082487487734252004652374988334066400492422828793083322593616899488201639641316710926718661379147071802634120165499415291649805335583607923469345631132911307925547719795118198036316018410551860807427316965220669906153591032218830976831587292102877884226896223256724980535147555590750547729645344423742986522005336026128363143352404530830249625596579175627535827291144308368039379216039951193756123720947756202971146495088981636793212722232830371879736797971596623133738207650360892279568672439235993653828645658978637786147852707319657904944038334365684600304731344209594279880578755303111574188657657449593295517562283314476592124496270098981024537102458134697589659799555684880293201535825977515979993074247044439210723156113272089705606811346117804556695411299685998024994012080378935996226832944685247829769289042272877161093362978333755456237876788589700781276911368534072859920011609304565960580809093712971073803428942025163496532386811708858602475851843612925324704715296057543595347669405880027273719850541266945145875399658917094761140249553958167770839731015674634595943234853638076057804072251804712840238258583512700679613187224520855376465527486720180900249333550185000500759478719759752449707049419469886316717463019668480444115250627752004784301143393837796502286591549779784194921800381328526176657809105561063030881146320180235426037590792736610434039954034478186631357295528278157668657471979790226879354247839409286780334193557510930320606130470994363530062090228045820888703458757293238106948617750562407698839834463553193449781234866260813715467802248935549875204470491351564765267504948431507432039339235968534759596145314781076317001614844948543078428614786926853312101649448136825685809431637597439426662159040473383610020417423291415291164401632839349473580680497548229171957843026029475340781479192762474527775601090796099836509262832137512332298344888983336127410824698356440615925447056557042768720303523426554823995742455735447668523248568801429911857833826108982785955674821496720549470669397783418483911232163363860471021363572583759852372588806141909395028797715025276673993049169114816606286118647119428069304390365003881641765188660027409489515848077879585442891936141060512438475427023688031319522279169497684571228133068875974755897550356410033791348611787850599493898251925945429405004666064677882367569318475978590326398734002522877575604679936118778462170834532005138418899859832710183582728629797050162849597236659771225207275450298158562744558558605394083516353591206492417027624750456677915975609443095076850132245283990649484585482061316855512282891879487076721679169595762392629911483886614223336107019313460801613394550524107963999991455245519920159780660862399612100065391565743781831238760771806036774829252658271606378249337457386136204078977790535584803800376068755327684963007243180785071086792348543996267627475335978340469696922779841942511637429749326039334156168368066738059612987194842087068723207353374790909538952142828136012172388710920919824294206039692962379707855249058857375648537449588507398436741433053748624669381900946961253347726841824607381854059155384459139030509618600435700828830003987342506740397541170998565156598371253122721016014912144981803489639808037674262737187306313347321486302832158779173756980109985456191025356339568561194175451298210657157739318607797988947249734957003785310054073870849268224662192992871134066991373269647084174241407716965133258687462060570651313642135862552628523335744192446604829704891403153815966966187557482569766069875582821692965822392834799524393280997943223156947924299025127651528728811936708649136635125602327362662466705017499052797336030658395198457012318846119490699502549699791188137598344758872718392018067737279617812190417851288112726638522306423681923796939155431705417009361276587482102980983643839951798690010970995967323898629944302944474005005005142587988526396730691547328637064384613294185492530785452019475918931762872127809375803092342968569650226932886472318672711477142123983975523452457573421557278076513931876443681960189409479788151235585461866030409052336714123899042477683333373819293237124807949991135023083278492035079679007358714776305200694816348672264983894712985667833651833492711307773907132465632990387432777218642460454369336836913332348657227352309998830210062807377963945765411987561628737726037357952024410484209126596224145549224150262206228418832698503571593779785007907173571727467020880387786515719310020238303660129271283953159254478498777415220562100544579304378953781741482033410984990963439172195879241184166608199423696384797123324713282519202901296688981038842688871968433357470862522490782936719922541920047784863964078092906946725659336228377507624992495793769826389891551091824037268940997231476298871405014330196845879177764978292252760569881494106180117109892362368166821993552740290318517056698957665757283969405693812293938849671809978941778743051636874462169070495452242875096650584199673751104295086691838176832816800952361562894187598905033467240872636349758696929542231804026130826279617535209713858730107333105235276723631457542346097108886237727996570957196967878932527304636701198016117202352681607837488443249451387648982767872916058394485630233734947731768332668620324624721590400373300273989630580785159717596300798998639289893967032932221717665873696347876183502808790760490594868488773925154033484769404269136035462230716197225446848379395615289147643062661929909796210712436250499612447769404728605723116716348361653750469383558817210226648871406794959292925265136972922136955134497497755991880586881492443279133190974425638814325534895960790924870044120675653126071101356852356231052951553084216157561681703725039795436811203097034209854778208123475161014335603346208634752511399308905532728086060126722737908200880571125890121385901902152806627817216470678540959061376721006260096108436550768897173301888319908564996863480284972344162357966264683600850975854853804252680200476693426319472369354022837301215518016706397802775046214902497377461482588198544993567478219742424096508944147206526587100568868274628398995140883362511317343996380315577107808705416672185220299886062916595123897019485425649579302797020266648520921609965746886724729206541113379897447818165447634923058704365367885690810903503923706756289821835047887394085549218175057933970212142281182291654852704458682691310259690177762763010510323537028897375615174740470099788999478017644886986808223506813841292954717178556296353645748161319316394323488360651393689438589178956361304490900977095235931867317200453046757909036272273998766321437518310154052500618809254866735774191217719529822955970475849586802764648252569456836547342673120308866365918734256136640928992501093348964797951420511836216609888071133919081365335071470875991412162712519567570923051787417327090429554675575709145994450504630725215674966114901417971066372438512790578740362754494032983367138789206854211130371340177898403347620672610067523819317887239905023712029928432387501030949479493484313213533601686835759984002974350520990224664159548134219613303208105242011994993725021860097095612111505185958598336642285613313878200165279699485521302827784262346377054796638135782587056345739756548979581259460524214101270619417372616909153357201516117073785290179054056734680291330637978833675638178889241380287357187005174261027379898254390893161054147337503144446778086588221053573681739289267508741048072906579441114055020594279210385007620361323044739091949845855491991317523183520618052431752359004063343427898381761795792139581179964870114394436885564956401396283454560780807699280793850561035045797040558726569914138387809537716154476169534632229665581712418959573321310266079827520126994851208171843717444815575979757917431158313837172333678677855995298065093146435746425480391467393494227033063683464738119065859501464043651264509466197109537785844445452092695688864724775349257278385678881616262534429577848442884044463162101701994526997380592747265783917472561523441729543055365963989584651525395912298384621580432058031557326399398770406978858626574172038126578961172490679731680987530156063139464602553649013447893053314513791376581813682040544125764747320328833289015926043181764037985157006494679064770849567411884808293765507135110484527423438809847830897283465176682147191545017531135132625223475257034554725895155143068128551290751813716014684687447338295532245872396203357763685330177618600235963506352614536550083850583950379315154990498817945074248293414654826759709614433077718210426486712383164868269755740132573201674129080309284080949936155075443480393115232995180345881736014500522493395357846680744598451422020911555737428500426540586670634345422364618243892234003110303944931808910710063304706843793538040328586623304625922145061137346579143157603806268516633112075876674188832527220415150762080430022963893589847621135962940451186350163496981789539883045434292907621147309631249817697677040000209526682027396505849387492689474486366399487373285923034037570444115986748898557268483177174070254707222111823384843497574410026887803980571245881619838897677224740341401702150102284232483462760775027438601017175647979186380744107997124981434954808686635071363560547720867310798000614096755243990179402313035326256749528822308030779096345312493006968677861295832235172825064949016648623986783225228673167626589862694747151736633852693708004527203768297393684903625780582169001974458195634904730482498098323574641891689644598467092357482890853097210930785808244522404292290832628898648323213552818562348772813118601328018644347885042948810236086956870595648075970623486460485453022934028369006710787213474934264836391174326649071731355285619712499914802583913845382096438556997224435863069879357609675233072405858606778837768004867110431877796542525351446827211207399936796700865022104347970162229374907499186715764168751991822412924649520614494050643522374918705585073451663547725655758247483665620868100975936255705778301161952547314477117706089424120783843752848486131884715911758806788030003094512186972753444362931610792875707082851480357622888173183971363943013853685997655104058107232302718863064015118977645653053858970852467803720951150980857266286956992419714150935815309821562956733877005171001461325359646421551003858172565861219410936584181418003281378994374170432488107140370574119955663174223226272694166505029226705974285331265564645043122105463402279389367092210953876310336313562361785339555956321222509670911302788530151866932194404350342108153580311367870112206330552378343762001160646226720667495072335862713859267390998554315957580303117976507766102813957625734088960506256143888158204598667523778691510740901841564133462896621914260591873203065202645385436475428951082480801529124979937009941131390620773612301934525463151554630733707749272077024696189885648772836594167865083659694094421112863516949860030508257050751978524775825215558045996506635254226400518685090739688264592588471568059617523296667625559355006692064152159223955653493840146401978642336008890670554641990907416187935479595207898841445965286972267173594809321833704540342406513320426444839211011779281392022501201186029633095536396695760744547336856737713378896348308361844264475512325056058659314385640368697935947366924232650158527141671720752376610793627302425245086716236060401047810458082219073019412273972207711823243908893560641867269419233710706048350194098581413713118238241384665206261671324259559279996035596686275814143776940143859003146225897064488887297801603233005954357426828499122490372499567196353000266811889071001510977694584037274273613357298280892082036582380368074582967634746041539718294288995765868319287912217285915499059150236710617172405411628715338673789058812306684756392162308023126804354198877404135875578426130909676362575133870082402764679444264734102852106740154498009830727920095955109095584247499757675280576957551409256072157042536659414388034740063569680295936485642632976417128058290831921165692170503892234842228170721012478655006592506311736449459696601892510002189076914646225415528304877251735223321740323786498433827223924356069224175241115460885398415704512279030116297090897181952534511401227390931642341234235559005131156378011997193186295214394620086730426869667952664486043335096017870255817103290252446765740928876791604725298361054380288109918653159618263164981499450367415652054746944753062079622579910621887158153861311671549135979068658754765805195558066390008118617924867520832474431113264456179248981411660962668434872638455076715718554912864537745289247200002752175021799040547569545587036256651121662911251466287143423196516266805597193950709981617631632288541041603002481656189175472269120456574046531329892677003695589512133969201423281300042269073368327668825865584857487010677775538604270463387165900032634465636174329005931483280539551390926285798616709878310770839732972598364762386454271961261221725019313225832504670657320462459775787648505783973150138206010040574173721002234674296766994506619779390331027312454713464666859361129793278419580373272092723909787142339130013866900772463119877762390928213267485908362666599720466236863880520728630924203698756958652209034176702688275072043060449688869163112452439202192265500221040078456781997889929201680674432874832271469334535668646610709132731077504114247444369624354000247856157548535865098850444396036784440957271942809468423418650430896410583434109761104297860527091206165422167870658982932285735243023893912796999405759009652308418158415780052148301644276251355183812414301340860495258334205645424746340392823370699463909279366715542867184731187367844896200622670663535002261373274766406862736793253056394216472118146140742252253453917216947713703247594410142943305666700787980414061184759616515218358209974689740619950525703571991763263305747199836327047643433202483685360854005222200654906427565283562666054590921306440777692060402896140330023006146188183627555577788172272716724593831217059948519138229361771618151516097380520279066102075730360024422578919193934878986336959516356232156785680933976377385856518050772307794726660869096291816839816300459344775774841425148669472647484937965618315813639189550213302151824209020556877858252418558844219865930463048121054166027396324907986047605228078196488384780581017356014373613552204803323866286697120718856645277540783365765034261521417017397041633468513090374995589410354132708848000378761515453259512431284631664293342765332459581887247345812097295436858274629171022670863557786923704108035248001294907740309505159991824992977812593302906303485852101144173286436822791030453800405331843161409002674680815921219176147772170606980071110438925731057891319638919278402995580987764525166132108760238948049610293126049993146000059210489335660232783190772845648447542751005783948985860464693519679927606486971499905757524801992155805715078993829539891309996469765543637637657411491453202659954861194950010437987728104538280606457818180248676114799736133625495247302766138621377648935002191201346959485898030502711224667763532937147320894600007293918827468340370080941534963651949565868444084840019690625186275337204828189593483385656822766207989288784654510508760839651792241503370311343083810747309895767023639965574367763014674022354270469009742338415468447395690233624078679868892963341733213188972748127206244684457526994294229455914645201945588715250638144971098248125500834202961709990675235680995526131688012326740448838477651041439855107034275735754019897221873254970930731434413644173155040734285384084601066216132889809616597394099948642712176957808197676375887400002253238153292635307106124059237490953870583226666892601687498822404160718097757241941468697503700665591992282751276340570433967999999844246686151398609200708935765903336167739693470249448355916749908546987946130741311447687345770366454580049896605262479359366458018099772950968224151611877881281905144186619250638016622927242710579904283763561045010163236133787306771345473725464359039011098607703307561067386492294578008235672634254603626310316362442427123890292211503689860178714891339457626904187063118329450465584068267631439753854357083605190207785107154733551853667755003805418441660347238041805030681322994107140233350249545534446864694615572180897674654835625835736399283235962734078637946139071882866667594294823524540740338528072263375776651443676054831806352902219542861771995318643218644387167752641091368674963869781908518071401824222020636231131817896931704470022844201401626524107354441269045666702043697936650773001903746266854000854906179706655395025293822900820036278142687505049067018420127090864639411977314131338960163585822544222430896328295578913897666520946463861382524358580460574847040887023186206604034046694967868822664921836995504284771375847099007770029329543734682291470946353956365892662544866353971347683102374696244271300422101109754544873541465976941213578364897577816027401356353308613013019554826719130415882331378596334337288596543603500607258657413843136117471576016406453385616176189473687331029937193254988927123137030774976942953346276290980683204919239916868991859995137884848820923543387024986926586391129799096057924116243050791513859126714045194004294712698545095773389149024541669000152153270291530110747161590299160913579526272338257865158953862483179460779202392149357212693621988640884917020150017987403771001086260235363557302111191438869242222914108786912120091881834873799321109292817429571695771036968521860355140609523464265526551146014847489070378053658812533836217624517577002207777589258954427035122727427920762640183228446175680154798717109818808578942403673035992036656496062867078451393067746137004893473822031696613534176254495127589753560995557806287115630491568777529835527538689937694283327866878410986118239239238195359347223610627525557218777714130760932207396220388427821691179106682234551758759194762144931763260585449570937601752597785711476926261806811511193908835129772057181232871090445442840401064885531008324164111586424054395988914589909472110174334932683127748097264394395715021388002410363187310012841461265752086554446773235410418861426057431889990528806288916366477614218767650311337788598909777892261149964990634891801892500589017194989634382967807243741180596968962717267705978322129431180314958250926864708017595685695500839786918398012589301033563019521535200607526383263555133917179284873768517462008734753949205534709617034739770684166106708383350443434958605139445923540556565992851388003726170548547009531692425773898852479776123164200501509985681245812703241427677651180286878118256072196838015192031599126744654350510304152303414630461128498499154635984612933708563199362066425353945330425310111779132543929335824944350481648405124179440125655106672534517902281116925107971788874760127549430434311809773690097731972951540512254070984385466067644341577953178414201983200453353638278581555594020157458022576236558154695144527710986979358378329890677108825595334221401481187222287630575474090667006571938941264740038985305556246930790985960489441614755043166492020404100937385637767020376948309282829482740419829550981916867983753440459820904714035091519508408267640260647318843191781303486174216427677595216728962867184627493134581917444801186543621764121713542280470574150612601284447312260528313145424910783302145601825451487240332688837005832631592082453207706987344531419733274941440488142723358896932349065885765913654114002442659465800126095987567787978942904635414467244885444370462824402402498334637527705706670599405768582460364330080784522557350721823882128122413991991694485822208879765748130618062381489258089798946020049714064901327228666176934376447212654346498925391136796731409004307574347681807989745894034917747861588700916538598072880330740980690547273765322509532710227110152941947877576586400220607920224679065591430103823009206873134765701723704946324886703036100112015844928628995431566553599579072400829141757827104794059685717500567236502479229127098378959474587222665075828689176954993152695433533306218629944434288492509465781866224521057967742767499570557506872979825426730510362334660975549926450756769959466508419574236992324535994797723206927334041230711287925903363763338946282680341539062699833565379654759496755908498489693018661725310688142134873261830645994336874883540630837703902923134987816176117719240381671813714029843161712789289536800002274070995423467553255730330050372855140728822175185651816110747671701352211369992542824918674703398799647454030897519275583133179151996870728175858838985594520706042533825558374881663900000776488254915597325751273034330920928739532493544304109620273045862951405049829499756450263390350325861856455466906263854807687564482596082228091022285825314906101380921082200240103833122074171446691339799616375049382165250298053183877409523410815302698776896860263767100575964263517715905668429397724069338943215414571153271351037032824650128889232945358233469719204136939716840254749180592554075548024457197254925885641676197129639733302004494896732670118355430182546905188448773904914094745221515342663602715004258544643022997390992444004479379365943018952448865690660861263172066953079328095592048850985012803437807215112279246052281206798455269299687007284773708545025266583352099668158602771272849182310269816323114807957221707317636795664940814528156689857728764264037137680710126657105816142441944634261077453973413361606069611744748482505541737152199296808667173567374600578430479138181759662830460523325081556944742505275934930615940614266538995828496510163259916872578348375210381837480661328492916265724775704566713206822141838790991181592200062025693441440774111832521180117205984756926348621282669598642328063375876075437787663570851081814526205765172431238912535110345793393074210422623117553028808273008314951413625007812570963179559472663733622546590675800265659513928292488814586303767674527840180381666469895271923924531874233229293719882042675393247101562413143083019592612867747472057643872456176459284928567279118150366735070077374817369198039576344185500811174710201533560301921923269188109306811053270471784094507304378953919614829935539109649772579165437777923959611951010254655199037730434912146891492629368819129706015673147892453077688049000947581183269255710986163108367140907987994002197785921599698140024430391169359938777077451619716038260319380553794398006320824665466137285757844829402504794901560975520383126198056920393401279242787250910613976328448087542280742548212310599422223832297063579468334579361977818488069431213533840636429072237585171679692279109316472740402709827456107379662028222538372597190294914120196780260814379768908845170260966036837566736853398094911559731586054134209827316155773212913019608044489078794867539105131755071818323462206759467283926395548417616986163527170467658007195547446668329098881399385247396056411756199003829486527582219909952790170157482174305390008441056120310084356548215323557462551288469052659444779028137720489055058475387293014540763310583730544736561769835188891449816850492977477016085308913407792080658213517605353444511039070060978425980914733591623224039337154673952480724444741145025557312416418267959737422213349675637146061949445637170591751564132443378449776811515193342273029688826988012830983355015750880290046603690823571122341775225077406242295532323610481511416873743788551542353376811739139266258930907399506699792960135994744727778394992118784114794130989204209232763283101203775496989256397277886031366666712988330833345618021586788659867968806894887186522122342752949846912176598669271038257141203897292420087433735796114545183978813654360158991825151528893128153174110144774295533512654716264521217731360605513043229175213622240147677338126477509939404435693791887254071536453368474539022460972715574790186286263404108044557779442674265574428695068177006676243947026272246066619215761992672029833125878865468698303317259332571403030442703794330286065739797454818015401065128905753471485450181572911256689345975250602715902664882700915826940811390322498529646782545912829918498538043245053060875296467542616944892481669656868280481608427220513927962086133658437276688676125994586797371437330416817111669730229182049037084536447645383115388180843553386185411572654196997734595240796690008086675851664559854719304053912373990383670782427758223886559286559830519685143218688217732241428365304144035756247694286584920253516276237674119080402874287737642222045206958532427415970178782546526886362263011726326018930402303581276046075100195867862162609579466877106066706493045322975131011914253296363302821578870630783490881779406029296326560427140094256369893950623856199964145993996593914479296587228191459015414786826647242246666085497821898138005536202724523909057513373821004679595116830758122426220583956406638143207344917456508753215562656111153587855927581580451958763863328387662335843545586323954989216567132321584242938730962962251424253368701136062080563084750107275162322463392655976519722411842495023761459904939707867777506111428108247074561795181466905318678243919925951697743613904782865459272867061968525950072955112457847086039862593984068513172133242260370117610695709831879839179470128302737888652927172743308037204816931136865467310334335022668034214478237120440147444386573696483950080859470077757347043656835206712485712462168142799596911594905791955019199157347297416806055812449533476895891896159050365866914301882844283471041652786279765937746638739938647906889298230000638617136243150767038854995407938794846766505350441492523679060059511410279631875731453762132392185043735353543014982582707777746562676031990420710267938913516969158419278435898697099668460406376226262337132760642421666376215923713714410385967539930417151160524997474858466997536514674974874979195377528415979528218181325496222612114923377881829281088174669088577758709125529057568258871197600274136274084369825313853199417442332630102919199003816988265197727555674872294270786413353538704418543940233211384768418779110636585695220287556559632457513466279573564680007252786607329108682639804729527477528376660519134474229490972154015888331302177838197508041922489056278798199206334997228158574479630190615276002583019173639517839622500749440909493015759691151629910484180138282252547998380606253904830070916428956728899995051285240979326929224658975960556346560117894543019491327041861786710763185030216157856733774066916761900478237665696678153537694548233058675236199460756946605917418095396528243156620970154052414549831528827156495758078128155625307841033779134024162895531746117347420725885535198722294212092628885290028784834070391362402985348741321439706410701381367471478628579326430860331009080679950979330575706896154586008798253964044373088304520408883724705396574139960073780625557216937581952316801511153086758235442893035382691764404685537437202812904326239919879415764629668822691955345504940843209380756174971177144092665241984189102133477378111390353712427227825526982860398387788794780989815330504605991841485447631792156872647478788393736452483239560365888582387082204835395133485577157767882523788445211260561332443394232806342846313237973481299332377718997054303459157024744268435632449722714590467811122730368733131692507086718011851846079941298114287031126535966016375956855850874663490437470583398097961535237919157775043109262076469541833146963792706752043321258273370234465567532690622925346281929485476018865017744616436206150690539353568814748168218813727252093675869505820365216095502849112025734681293985032714125057270755685959949843122091628655830262281656115751920842991387201003679014576783509167133773706238773506820300918475614770088054778252193566119746105919809836330091504086062550889757587785866352734832185323833390009568992296051323978307658426983627282712819115612663973416877450299771396364335333124224802717031933941187199620932970545818578284534077024393441466568248475913705209888495748748063324841851428307629176737483258519681124744432987486505484888365903987520982561776250280468155330136941816824649351207700423838194864630260630880899187129501781658781512176819859699931791793778938891004741786973630412509252455013613644577397680372988814471980713864934734814386926986393421566071785623554256634801407499666642109950900214148469925943257678562196481925853157213040583504712390336790083115922950838026821351323307083133329065101027155986739534732305354793448660996831772926200225890096202374103637322849771675761319400178368345134709060355267785742196817868464364488814757687562177845449848099472093115775706133631863706647239386018885959056564922468190105912897523291163467157882383748797056952899687281783779122882535812726209957769520445228313314404085905019553740860006056280416731359617015461885635491642107985626564459415598168469929750208419793712165845297091862619039056285616640452790764748637165993827532948799777250908694417450594328612574828311577536874270693692275672404023216213714618625424256441712163371682564281479232767706405324664349698880096878364721244200888778747976380725202560118129800243970512695413722668739630316378803222551257140683452283316343151570096873832135968848597857549701526682863490803181560686762665486294597160049431119667398905215310396140993194654976795700280935069556230823851626924193675204537452304334514357782831157520202623460884780657323626997203636412431694500497365514788248879718973429020440508042000453516649373996711264429878283425762828529188914378440393536703348950613459705951391407625289228826213413710475396491200452773923170403172799043854465465157179393050829376554896322228176044298105716330250451127559190245175575509927264186764391210628953173093956277232461543564947884537163929305604718251335280935248512578893859565861877572694694700797716477585599065346495145121032527117358289094687570042789407716108108313447494747056884087530215240349006366136238506706665895766588666650731218433544166179406037867446298567043222810210707363101758021240143845971246231646305418942430609836255018816254213575735023334950676308651137607005958140881676619938355602473386210842237524195761034586654777878912057433325397583732493726057205914050519931467586050833627008513465744262082252681509080633552407359034311251006502301044508781743482827431059510306667778207603630112527231713568225645699066653729124344031955499930406933927060769205165569148511517957017772483582157290530592307207943829758612444374566620292596691756590247373778129950193310310417535265900925857106469342460824100959869061053884234158676838244535681306136994107111185114463591540365665266526911929813061834980613940805048989857329216071733527879657979174214546390219369326523453359443402511592931691101916563471069690966878013452080127104533894872472133530691869968249734560748115275300392843969435972394085034024426400507484353992267973381898997541569629050468200538601050870667224401707845920112180738294493828748055399473854484099436200870949106885414904383049347029902327929771953568363249006295210714815580121137192775200191504456779407580820024698013305796532904330717049855079882142734321671365006676096469263585215452024494629777739463175669383056406288935805539384261093185117333935354727558267395300291156603477710852425626826725686185008310596566172129631736597419121011531535440268480332197244835182003014890486588532647710980473311819216534377181926395949245192953123394223230829976706848920488546466351965946333002389913788695413698908918375750702593474052677757070324473125861744948005368398048194094403491676688001966930031120600266324346236191991153615316905782348799457204930471495755839235041476766658699167925701911729569862536704091902249364379004319334850883978566878857097175337847503257441385438244546163179509137673333562932214495239922276359551890281261310149739670692579096519532196740790853187090621875068232968232318505194020638593417480378218199536718741161207499063864066009305793711975472524912817232467636809265225875817444461548787421797304164620563032985705413831794094049050255622270233210389471323649194810439486065188849669483270614104236376792058562707585947108328483330284011419448690612999464256908340529266144518875860165821744900170040005776850221639385534511491146871441064724535924401420880955523822040321497494352687754013150877165478400704766829073436879485134595050823981106832336030177991065671732035970044938298025124497722679317345334691680310977031542803436990510271820400167274718476795014740543215156951587694317336696256707766202297477007418613736438613340314393962413567022092291489366066806514849709806375030617407006042319057220502731217794211063714478936446312767489173261206910858663217417827101283487789847744744743397109221835980590546098440927501202675888006724344080353171209175286799038044853881865524287945650699955419780466912004107580137484552177460408564802437839091373572469963755052127472039470061219515771079254566369489049958893215277859016285944837540225471732209204250311933851018453548926831275927990472784548320136183543255823668599053009416840303878596546105612769970624571445354588199667954135476774627259845753943586973582674622338986200505435431055623226333275449271429070688751118474109810139239061513450226228584760886618318062902907076862831117195376389062545109346379366399016073890390111085365312616668626906922906046210003169790322133016239345800409788298324750880526351918219959107040954948338209823136813417009189073016561798997225944859214637753313984351768433654828889166736232647545832619538441195957749186193356556061089928038900121957642257648654475370201452492620431237065887058585436071316908783877103281940290515627312283967217466619036801967178406911506243658458811262483898130466204027120990427711898362189852513441518088315581406435439722442473243471147077299338862275242573528269368142557001784261820131442549503526675589646229538127670962475432805210073427425820814222111615045518330269365443936499043133992124176411269008652905344704285113056452461363234097111006495210658532735694671264168206127239860114894802678708078977040934845613747592037510464568938291241779675591945023503068233557785973179856058986963198954769788077089662501427474440761016822351166239032533273325049855008812685702688743118516407728796664898250240248939687146696444272292508849516656184349846688234028530663004477306666994905880226788034242893047304217816586752880269547827092310994212133877011126295927980248923984449177446563308594102383975445409150576373088251105172033064934630397068831621188006927990485192306804887581560806100512718378213190522529622240303774803267393820600305771484603970863476634222405617143021798437655476329456595164188754093215906875830082452145992773336812314726944337250077204137720379499169799109538911409574193424993951411095675785968545743477949724583648377493735160781902303357039114482416247265121506744218579867172624676964153198175016479106489371645421037203276230637431165329902448303602582183486497657835858552595223883844985503453701997558679359210402002874548303396137113561665463848846010367274226144196243713087955748922583440628678499488096140985589869119082911995944004686511320074403895387054958412481510540646361093769005655021267183400686685954308935418102871199502261302412379378671490555941213523989758916814170845029885120193859818977421880885355397070232590148625509842374179343518423136697005721516420006912978881231626052342102926771193387975809803909939368566231766059949315044476668366745648078077858238139319893540870843789048807913339839227077474549678522951708750716121677362770896088002178119832356045288534673718223181293408847009645624004573546158443719163912528971173029299249853650183783495686922432712598991054272351641936473517926316361866243070464584086643641650614910604711183466213620043493141578211350899394253283216139133148128872459069885899707810218810839133836010570377479372947411661625025799228073224622815215239266294834536683479165502173022084453642182926366894203205333369930664883404065735538334885059381732185904237583290822709706077827451800805033935051665178988096619190023721452403529175359089277137893327483834588641078715894828885972808324277798523966220549681715843528650612492794868371959624243948644545105753910252040476484789944621167983590597009168499733997031272441777057871029498964888397170452897910228726783798908779583501632693498915641665741018797738195886193707489971734208771195185403110410814647959262608875664936776773193953528833700050374813795964250365127623183888793663338474233176632863452103793003173849386862379868711325435554473736198303146143021460520565004889437286224313144771293646588113383391563822707886964380879257835593194599588424865578067279874432854119751546667439036449431895433287602713782402273782547823154317892081524548141879683536872168114778725571169625756874464344773906048481627220311267733020366072927292565354831851070852046777656898587380518023018709298518145091288410227119954100856171746229295486250294493670683214321508086690955501750395638262263083723410038953206737196281977813098151391849406850868581248666450803466616557535296687689780636569812864705733812978416224362459094273392985635606268990772111328546713203824943577163957465582111060980392137110634047909982989717253765898920452591450522209432321029977439019473368320476124626398331485105791717130380435547752358799084032734460355579272830005561034115388414326532596097800842731991438429284374489349498486167371531716880771340012516855752625237769239840464672450469600288425923461090192246517135823405873358006108386160199208652614281749616702319202204992191695764532289600775139447118134750869755899948879968307369513102830627960569551433371157705375078166282615691248258462945958877072145031827481310282475465043483510795915634488748131739620416001366331458341007976816051668436395483563672181561407030958331358701493520501669955822731192412288701980916197688809200593159554458814324878821583391307173007183338644327076678132605614352656888008346951232923971537897147803165214394959330567725563847388694877792627212081622014044160046641749147871298121728098290967515705833611998359203003857997916435260100071241308477437624332605189036414785401968006552887670044503386062508039524442470612865645373318615620478370977585499520400341547902564468207223293849534052805616286652721605127841240236921239680797549732048071081737710449885552154102049971230958448003869866076391456216314687007474483314742476330568682318126240286633684821273686673484075122375582983021194284262255872942816895250433092998748169792112912171353706289430471294851339646416611534071591990805496252162935628549947218597925441553209131329808042384822642258360358861823418093581008145959208375354808543094457031622844826605083906706976107811684450303857753281484792840261359130209106447805130982079349965360144050872781501682112686568918407954565474431116201460919770074803367245173214542559799182502893397859033314843802005362596989117685319908667040944845413007143200365672080506936965539858204269741523057582141818358553883528231825610997941179633432844710534162497355133300449331124036499730276221366212441550320343770065635925050356997623360624620145682158322223269215256675852737448183230416005918141827756014171502409928557972089172786915214610759095408150282872829996240301254711384600531333684774780596082309075272639683837904143792264710488095447081467438781323774058923078828072442971995688607940713972473090526684771231475619970118065430376319309292211783908172597578826574913670450813597052315776397771937192553089583830372611655526047476767272774234600083832637646602830896979185653466830948717441816181631668949062908828529120132747896920047959481674625335336428504230121813457735361926447583504879980844160276660215331334236036529672314142838600669861905796423738153243927982921755476720682010732769761169865460406355988686343113558849840841756420087886689890226851099815534280752436145091336697438893775511646627683846386427502181443514000143585345378266787507560019546014867402796774154685443658593729886022094910992334543276011639222012657666088393775702550543818216575841216462054876001873043913427027170938526891685560650716566489787685083270727913052403086274150300452997765551127766706015145405331318727195288808549670855879924165557010380067608193906147077190996281638890669073840796438459481349810398806280066855684605181098663611835331347087893155388784837614616859102537421910504782544806029469954241858698312009201428978986527775269708684594675488404686973558995695129328336395195903366272181173207799782020057279668109049023800846635909208122514525761395409199967107783788628617145934375684644914556275201567758524147867926837963599037496492445763986292020045676414233749889707269526305105483105049814108711809182771773193766398584721718820992448968203514654760690231040647814859560944630528388467761813403384176349817961721251146566186327610527320550915295296876106642702789245263595216640711601329997988915039597350196466578505558737349672748146235894716185335349209456360800921980161201385769682989798123288040789240930508807651204242493120791214624949248260061898008224227932999198283618545121603931636485374711771191942136736393041550802709339708604484128288459716253221881933483393747446837586994280695038914775748351509236608623709497583429874849363258459071889589160531938439028063852056379339191108087446338414636843665411353802974456512524850387685181529071890295019570387957221919823752688702248865649566221713344833767014037659467339777639538252825772933004689949920046214150789474370448763359531959514328330932126163783325913054328117736849235820860423144796871290315735383064435992709491319097623605405937261687307165751321344797168610305438110135070131309284449758625392014530476319675472687656887529547999367006397891480524149915936069675586834089826789873560898616802555078311825336258923006597778213638815586709057723494071738179835474052516750333014311105514455523169598933980993190355467072781951547710084778072726781276271751399949870772868990426103931880093508296273206295665772272567802659443972699885003554615030541921851388238813506229727268191544416227568438362138140327113868487518285627312769227205654015583390853787359534573055571006421104384853457326555099711173133716564432081967982627643800922117358735569683572911339359308093254985496084242523834083487276062015930279027519325021544352248255210974041358018456456941622065482828874485353940848936677691064409028062178064155210837192313289179758820489716387029943842370051560556563123291019762974224295370875610389169937107743265782070015864833848996874735440255234501456588722765696635065706471088255819705478833828040556013719167802371419022006276379324889212116946915735194501845543396433778811183247663086934674286751520250382453658993040850340271344446344062718835545632809865405335133996152740539576324045941171306721986968018990923138830226681448391227396034187409294336551926782732065202324045043741480975874180105736894286801783954045874329220413079704430298950518377894845292685940337247647751851346313619839776099150535310044493802162421326122722426823048795088982148132051653437514413581277248393938780739609616623273330221250331891260385826878918329401770266869270840961447400102088267060372818373443675431303936278193751030515885582344935017218262984137453811870390668784965708916651799556240438787212364872871263919511611942155635782949327576715943581176148235523307567757261276243659294847380187953619123293692774018118312306753195369271599704534255417939888750434611961460477198826501203118553204775744785580169188373928129494771029588009261611851478635799071062932757012000729931275582947390275022136196097211234329249104996899742516882496206720713397059723476475011206911635339204323299517370623302872284195188805516801686161844799042710546588609931963860001655728960536896583427816266050351209136582296278886302169693112184423093049808147224265413690306160735446450567489910919049604112313422651866485570893232870099792657496429012071853617186396057536293641161978096302724352847913611919929386005190994697687730795126028554535956725047483647258690494425148237149295924346880651991665635569320006257767534896033043110220415434097385605267478549357854282545101934076453472538815536522685384296852728110766832606776391998776206828622347570795114737510944757699172825548093954179016759342946880025311931020642374041042459635027546913704656953071509044446525381402533536133954760689050840826897429594418262229139872826846569513336748905388619922710505093264651673452881679002148577786206857151577809386883572966686716931963979579623093820506188990548850686423885282278246845573611760910505766449519468984189539120242382583348180849104642318179542498341648421423985713534673502709564405986684165915604672949683375631780808293342668293219223439539725113704571449187175562970733740703446737543214079671417076413529096577784591709158422189140041555774393408640440590442190264502873848153708541559093506359728568239814453457567091021774682072989057747391261910076893389000621047725012117996599937231252978181957979837248786066001351715417947489525829971305142096838597452750084857686584104806769026413060958498423168021134377304333384462393426069122524371999677638533142708425118190981982499940591871385484064842110667344738541746992963977379944325672040146865912511437363656839379529824828250077435091056784753364426640660939691981875037431660377690223057635818262158055827329226236230697417170766642189922004505531391142305775312894402322863565798402282832160915736162479677494379502476384825645151422745070920279734469323706656010013033842526063821795950123315211373631746175998333214454837397823394399427374870664723309318927905877720778358129774134621486699078107633143936405632347373681045244574206441127578039542568064186466761724083846286541209998759697782997556865687668836514728477323276048618792388488992261944121917176818393676185405433619269541385235360252706395767886183678233920417598527894343782303162369222899676763726697760293237775786260132513783103632621454696061591624934011916731007634568076460524244328537731156257143214780239212342632572022397968832547591167978557972997567676665548743382528277696026352490786172183326702223815537790859372943208451001701757959449619027482222574178236184817677994230783608139088943013536532563781494445960832773367285288704172821311632727638991347764609601599224789711446506906906632264486050348264716785008293101498494062587894685638642065494916249955298493931791124324258617214499908362922929866705088805971549957775680641793344911250345004743520607766602082083726981277578235066960745083002210047749724490494615341647949807370159360961647128808567845484072955441883955593551880409905699840158900576361514262663300197865492584280742694853538476329199099852467187669815660475731463361016389505687517980167320184343935753554352888559001066185270914748212927932356505173678613115578841449549568762305137730917615186852144146157316136303193022122356892343611994359078931012516853479333210232310294481370324143318551945612010820609423801823072159150585658279765202334547209984731289018797181458442661548788546032163330612364975870194407929434389171326518136541841967721652520015643893238671166619801924862475551600439704240703246152588699698337640126352188143378857721906809173847511692826189944450586472937533459554575685197239929363991229858305370421173937100254140539471074310948414120035605643076638388526317738604083897997914418465963858375590590207123527943702011876767726708709201915610396205275856657835011535619041897685128171583333914789831351026958074836503623091479714875531335404124004971688339834078423380590687499105342870183996995342771684403423498481126222083451866096983926340860122209673334538217835567772218451599591704169740829887498606376972074695854850268090639654346840041313437545279360543072801510172730125205274280518851963207024683966116591934135566410822056033084629627468553701962160410720879232338359698880607859195658545018733741632600613284809995720462386639589204595535999738500192797450067927559802824435044655245480058201835537552650732242885784865422148022410885459889324542626314472552221939935759789160167356801620232307056175857532605296317306665441687015885076568347685410330711772679921727171103224968797499100332173044067403339335853666506642692743693991580856555945251671044156291910052400340662912556265935421004392692059193827921325139074184045504313604048148629076596662702876991745619524946772913423977213654950337687371952047982692691639553040231838867766155717498435310368304794549507644855017244369322848803719873628690962873145079739068120980875193545231513006704799462856695654946537674967984297361656550896061913339611414369013899388082877228212457122298784781348919898930912335676312848397464108742650076528612245963724861283924854435637868108090827926752817330806365424426078179338302145024532383479344646951601980025192375678033825813690642320346050721534947228993088302746980851160899663000106050117424001024735152641275923597068102079081980147527406319471126167252433593360273186139824540145785102879866364414531893643899871603226387942129772738120439308065658703220834285952325521645981820740276262304816887469439933326593014765937743599582679536870690554695228553966810346864196589364840696485998230849785972443792541702037597311962843882959359157463849845755217896441201845390482356839202450523295652367184261256916145671937181220333236212090047578723292158984608292111584666868548175334252528781484584479766388463710617422164191049545529253734758767188882451098049680802836292519560131939749392092254621759596328712109501332040509442345783295830166582612328659518185883983293363677827484640454010377456851256615310829149501750036493478230940082931220750087961928630244834942803296544039695513385551507796409961144600734332858216972861088953509926261177051024546194899813227354007295565682800853051784326536428889190034918429798611927113107029034364161061406657909655906929826035473019282099653526254687852398948670126261038083520953198439557873024514283917624522922071740087985559722170575236916143285961096798389027064594341237395258301634036635820216890182583112122854257072669706006984484143750564923002889837946955928954789743552253163257153096328181122845900599162448846195641586517363226463481728517669859439772225932599963972216771777227034380661507339633966116236228393250714260081414788710505245901870841868355743375033424774504801040307045063426145707130972134828371214485408866453717559507267014506142950664218632934400346531861466079244264163898426842591405294454951312007574308315732918815706162307259814577842819648096512461236389717752037621172913717748727124301699936530409104340608229133105019549679174700717103882276211946887782918203475275652597366002289164031159452791714700885003421496382464504046352558350424147048686905479853937551794005932358862805581614706586140669048273928002571639710640499269199615805391729760162043989584928014222345743018668060350438135364648393076404328303899060911614595312645279814830299419055055974360368770108356942731320477254544588136619233257657655789769658203700696611051608100761705347832659313517216313341787982049886297929377252905968133482967765134100074424491698232582202502046712408978576781276108466626747692568251002334705269044383942351381324810209703598839275676276036059180333883675542584396633185724897289757358120030558385649865172781986040078155973579438144568902837421002173189469619855457559509411862904918054526758986971646318878306669223051862893311642617165875391357764401230987286592562815964521011212116468397247995150280549877118505980264926295615609419256927721385558841429979120197513307819917636351059641499530676279060929165738053446484700191943365350213416933085236622388707578393086742329678285823299277088686083584480265410987812286514530776978098787164089467891665109313434658751669651584359908714140113156512043749608212793523057265251205447141233803345975432774018095405148381633706140125005753794642256388788652493233424644681444458982675850787511337870086702300831506041315367932313996045712057217730585454240068008096509162859593416607486851555858248886164449419389869174752771222820420326944809321724170804969611240776509099462024018902816011021646142587581091635504287868447453166931471947585553358012486789772714174180449035404253784126849206509577928672531173125928611173992451418386368964599891008654012041836482313118080785387925045564432254100557097912352817785013857487832139549888658488812275806516180605809263830751120599003257302624440256846508501369594082277289160679206460919909925279232508623043530247364361915015061557959798703795878742662078092981630158964150396314371414384568487319763334672512215541736987704877922558236158676712797995480669065109581095920954427292278929165890494822052057838240598188710010441751301717589438043035455206598053736346026309842164713151560089934600779808113842497690446386709893916079481016809552832219288424380021632305584801411309631201905920451302556182850455719743618457568818137057044904308233530935602508550794591492454909952157076905865330658002872555096759631565467524728744719169975944256854104047112044856097126308794511318720378715747719701049210627994773371458761958063650345547404313336578479218256971944013224900480488315085403278388417781161262612903071668201467769134043568510448429912927254470936828640000565736688505743744258076923182070094516400761082899725400868299630951824890719115594940587745433566487121840927897547463006527017802502986299793741549643694105502480365421940378792083582411575369275656881935919424396328429148010154062160426753902838393376560638542918151245733628694893030424971516509068026913893744015821856806867462040504244059407204971207710922689141128144645524551961674270143187834722048264376385805404915116210543272380179216074388151432488861239209899579129943290055530345021693370415428482038125185715278032760302929385424174503988398173282492110266982533624057599013903002001584796830023522563922782788226559892541188571444447291211866841597758534194463781158353264298631311336189658032121282340570633834612414764635645481828490471979766741342683834182968199396949141810117084039738349943143257253799797179324304227115327601615810790178234371606802934675155730323564332784328938103560127471557857281779798156557165623890094429781412823021138186335537359488383210749490373870702532746787288945607639437465093082172074087398590230727799099052197972076754890747603281885771422687466846967815644301676220346486143381966078372655821626677518800085264635417532723653696947974869180572993654891186454573608301994658769985797150151970351247842893221541266239804426771304138587552173935982027994590388283104098850635980709179281639362577783617050644911075222926562473357456001432233132131186115233344872190203786921846760147316823120572643333421343996766365896084656482527556758525074646540469259800729968453450297562454961054579253861039612321825648888523271704009502429470492852444173576382077204434580225508064939444898688329486996693135952578915783147111454779298990257719497662195504293175157295167879837313405364847604426846559714872313535028291769438181054047513143474210493776616509478135763952666269757031890501007785816547986724837564506801044614084009954747268426823517604944561912525352539206651183335388868582772713454980053078233356304231821280694276104405836807891016737626525581688966306551506889532945019931435815780317830551783107677107972377506443912126703931071881354805335408592753225616439174469114456352214754834060757848101985827505001672606764268024492564878112189776854341548685719480973123906959380615911732706026628375862086584335172397021127667828959514545255309117985950117399988635210482821106957521389323234369433927565764483390419345918072420496648224780802639800656236942564327053315599656116492992641967759207762318163078980264112182888499244682365101823207755778322277524573725469984413199265585747995534793321069961619056464558274315371783556023351442193502900233116720253218746956312083591901411000135192438853504381713816719903431113859140986473589556319856371870140600532339484261407086142122650003286102977854959476138308885799038782362375682091433459895421369678142332266977678896413789819843852077073843056367830036753948402269742511903583675896290419974007765667903463374046943077343037772377241712633800868344439126300117606468528976703304619592750206224293929239928672995214764764130211415059905821180628336067457003824812416629595515879613060768974099377974576559438978687332850951112499260741022805155382596577501380625578087149185625873469034865834430903845726693083366561716189296088797171748349939471834254825909233356848652780311210475433311770615709646626667926567142902256082245992857790671573704280905636109781887413178271340949597280806519824633362775447460580796597424261309888830438610773210497927455732901042917451854670024759618622784289547489180631083016901253260419017686257962258909391642021483034862652685713668417651290758105729470583433907579995149625746985906173997487648319419133144848732196837287997315536407158913220939203804901039913774743586663676156074974584944740468658918577056328823018521503290115945897432556126262001396105986036816248199699729700655120085901694210794225206060978843851484804095202918701484741885765271451382625904300841104367178227603542924111276046168293763907251804573839303063756709873348420852577423072689889577640831268877983339378349896164209240020749595064190546482872124200335433084110351470843375797146914734358434432995525022460990285065517645186582776379373774303364850291407809121746854840890735362636211973110107901797971156935779842824591992726240675250125864514697149005196850261317700022778526060834269545809292242109045340677105774508071058407143915471206110373751892814931438395470671946262768524696869044178338972932902753839408917095788937285677670962519157154322704406707581343305782075520364061518780285696732018059681409683897408969317440682462954768540835354732255685945083717346754166276180875241535300927884440599233222659963329517584753416962157977293847343278849146333670970652738663653640119256532223085348030847813736690022281207673758831235405961004173651548389417261686591321536957393387960017306509470844194731878365322439151331497761868693065767429370014667313678510128576021549531174119609194612301300417977983736535700467198635806374440956529084024630532528724686903604408241890377319432708811085314272966103195198674883430423515839994325633374716319969025438758985775060768032338411620783002954636641652928592652992549517659386161329692847686652507776433189129492513781391931104558384166922953752422777074323252049628505954012723147841560712205403129677341470716369334807296184821167894106272520087719395092572724108218743654833265089172145625684155932885643732909569694033779790126073774173561995808783596678728691914640770459857267604972664103381559052068670273034361745997123536055053729176885753149618918963335126932291343279238529570214508326088221151323314907743024283835864823003163428878727829615921521864975463132882724926803523712923571656622760842278663292116781570703522472328556995595632337464113893885337403907130033476853250994914634414279313516801660542998733066571315909400764887115327029164439551467841532712477044800430753924316993412164891215457887564463991093354615808583086593279943756606275493280373453657660553623357498935993262546197504580234230596035149831385674856251429288424600961846763331657296911150091864538111900334967887315783536729475129305139382336516573434533774194965563809568658092992179980751646993328863408029378092479694520827169722017586889025353926132993137562980223241599780752939455854993943399834275359998559571564112936876440137107016455662051775601876401960624360931242350469527331768644946274197312914087242373927338588220845501674160247423211852608408969179468061531541742658913125691600091978786803012621335823074545682465992632333260368322304451095755554435994566050910592872091222368554900319169021200842842788599845369407793119626503893532307253720674822228176475730638370383171911012694924135594332873285451548149333419488580250453853822258462869104039009558096114850540546422221070883911952217477304757954008539977159118357280380703370573286929403691082359484464701371759609287615379351396849713033535753857909804885015953688640264120438586328413914747590637085298669104175692812421434213365665558756669212085651978867269649013167916438570693481254466676267024924131008138865168982199305103203246232629143150108429511894940580543236362258841794334332797025321824599470139863027732650439077042709909998890137274548213533265447107959450151699878344531133360727204596531755204057349526767426192043734301213411176343373900682504404285927504499783203927636593943248978350989830083779261856270502682482845547333689829301275549446882174653136269317451245503882060810207410655951759774538609729885869659655315694263390322731591879302069251036020204168312944664729612339678538199840812761672380955877871802123146215455191422839771658462143233435258994627969157625268974695462416200686074109867095000800830369374172374289667110613602096131150361302208867280179511859130102457866879959097413820449963656293510407299123235926293233756982366135062173007955763126883945957816638377917948708833903298718680940649456038555049402506724801819194117476116682779516433272880692752374398773463936054413313704564013293383567756933639742640312629949684904371187012658964568065262209089859061087114747641454610736623913911228683793927834283827444931004416874373649577139235534262638849093905441571613118659281091194383874526467821233360668453687110244440469693221841211070018438064810228309085980810289871840958303067700545186674601665883802087688988310077561512497927957790235191952739362524562758710369191584752103057093059204348121644655189019074252702622149121516037636009138912495056156801558560095363301856061813689161522645742745143277142056359890343124833116129101134427164498767598993309343683116816657768801133798539565953310066349398418462254198627042436133974464189365816101314371338492618645369089907351726070329358683855968318348367797582888433887099780183369410645363887160640399258486542927189477381964348087792066399010251956127940517364415073941037881754123443262244774013621866105933087930679302775159362526907671612117391573762020998015401729741939241848335741540889206347777035152712991681365178356725181936106212606312047402923793255192383900903313806603371923312171801612761941237164713203977009913085782903378320526845499217670076687992921922407208604964616989171842839925471441858519364407023328874180064473051348886083379487842472507549081879022452812466343933924427292289335205183139265338466609938437657634401502463733135425437523469732016079001117908843302544221063770540970082867017061972734250274138675301288224032845894547451639352369392647551992036178251578649803081396655758698096830819523185428329278287082804771445995031774195461399206118799373324582419787886191616836280707385671323309187825903666337918011426180550797360106722404178010578962868387432742989087686544497565837513679800766126729178077889224743792291748173560673371258667544749648984634668389036404097662686920286657141931207431753691587691854641595139414360616420138530431337018818021707363706462372912881282125753937137935788901153736979410661681466685725013419692373615558710702209947215039775923237006277199235875921667652802549598802829218430352171693989835401470810944868311374113031862379200108687074648902611355158489667563118874953945060098031408663137712333218225424145325500121585127581449798839565424113551962782989227535836061868181233970345567646331526989689244585735165126839025316489258419361412302389243117622595748246533834324587341992621460385965052472248465628461650587982167579624688329649783382052764787020659407203743945396884051266600446293302634792264641395620126665888107701250136337583010240362016968647162100577288307890836428665441922820090332436065504272742778391838350292324871884400196267025453632866415096336127691903560459304947046717293372373314753929419575240560381921699643821813528711231392378764935500721395057795753662972084891898775095083274093856224436720394388774311310223885201947019337382312919107282559695249050760656254345514949854655834945797718115454259059400479272066242666144021443376925851415969611648830939150023418376777611275517234072040381721316040934546331525931832190001990606206035246295910127039396293019501806790601367271269461694680915380332249533445389801823354890019958026573545046319814460337414533373499831418030540571961409365734059517557034365306195863355353218649949813566737443982878324682572555241645240602202397404977644946370572137892913614373504180790269195242778754951587405226723711123481557407072609765844582126755300143043804137017107489876892439041504375709212925820723043463716056170782028762804613570318622324009919479526474756233682053653149065707881430335350908221647894261506399320477580992672947957449994499726182621794262637964390368207095669614973724566406706688195446910054419526124297202278004506059304417813380321905617207880876658894287025845707505597203505008587091197861032830007890318620824199274157965960238067330002450932714391562813378194499542322231161678049063475855385957415490543777495071628870158707996756167637472756523235887024565238380406194688886129465489077865567737344242762915451009585070963971670420216193797749291319216081577718015497263555955907927427063103775219326581200572570672316321511094488468355567473418762897780387780985158388818620751644857387240953380783169240762017841394404303027887566225773611422404325316466151179135588281387019770307527599801979005279423553056928139361753283340618283158539458974722250930149968092462384683776831580121859122771802042043551685058027333481797423092785134607482137209973455089137377645623638005678615447594487328679012330066661848644355056210054020795802365706174407670051042024279662426455729643528470181075405626788903387806229653419337181807031375656313770237826162221363644333443576779499350220964468449447021196722428902386155731171328090089578920375849664662509608776455101588712285465801157477423780308279108133262115714635882880593472158696978238277106651197284273851529494774290838413297404313540715259726314494481138733738804382213078705928397733995430512576824715651929231940293311525134375077645532603327964826852963809758737353371401236672698136792011437364441543208148245291447294652535064041414432856825735571607114792596088454473998848213112619307742417391989288288612553306112734551056188078397370850103632515231698791690038217262828803525571023808378188146526489018197977805084562783167203509880127251848999856256487492121733642844806662683964346066340591264577696790991336457983000505312568465854301431965091458443244901457886381712437565048228285894765414564017787643403327904659655738563119249582990540247124430116277975488876411651855073227160793884797519646753563858212242407343973679329507023155950140765911366142368956131307668742636113929640467326319000918979216352902251088537480358483338727257875343554422249475323098620172873365709870789261388891712087091245196032670935556469898990667889841316187002046087239390375148380218059376815984581015863575360136321340543998105270974721450434054961159248526989003002876492172157214090771146316677097409013436650892445582848450516661148914871345585450599938950909156496202519117827157034880376093615741990833539657512297479772698421443736727560106850485078661772668481706797849234137411803726903199374713757377641114523887900342845138450634556655957981065683352323223117514574561864587975539073097288505718921078446267119041716837178324564680904300930673378296558868944387669345188381873679004593289362175920451822592351673870024933200144830984311166746265542176625723010775448375575366357755127635715462758135297420765503764304594310411158519825087427806747024651190023590020068380284953722578727222003667557925551219734854030156394373073523386995864963789852352598654993726565859382748331248270643044058066801200339349291853278472131337968808472366816272340232151659149315796683609760943202383298999953059483204771885047885875590487729092708240530262978160776000832363659331372166187211623696403457785389946717141869265286560593315333489284491205219332810240764437867382501866360463685903457405825228272024800136416644498875959484636113472952762560751162656480764882599997517193249955632379531526745621133077854537194109710637178148397703858020385974920384121445778887469408141966955830413691289471869975404089482497613432480640656319587984784475038647142522055517385004544588009156295767056050681857555889836627193660348155382207605537971432333296700055492931456724145437793304521655099019538510800057422139937064544379547518808764424406075649136909691136856064388788415722245953019423820200931917257011621989962492890014343134565118339790943347633534515086529968559765103709670057855577991602567794214265734164194605898297596735012582340854257073454407644036015655945569236587999659332866265400721086280380929416110148436060029181206588097443913126037240115888043935466656080362528031390126332749580378943688164044611056646156331126154914229857625363250493391382504722967634638411688388766578524262314342430947742270470225600800018717313775105210261425981802064349098709035517413658572089802014115814691635857730507926167190873794805441872381406270959705180745921099515266638657310368245657339311258138440294100819430815179521505519990357415399375196408883905361582597563660459855309890831970163501670996740454725669894580219658815948182652129200784216032287613291234385164395329750849852394558003952085033953854174346828052598987032070534195396321586476669039381272389720115337598566315356915565662745284863443170677059265014055357970783606749180022053435477049241665769364243023872699611424966583918012966185813683326351554126994630314153046673307482404718671449031080296935666408743647511919106195311998457208557278026145284703657664012808282820286338333753020461251839105565490622900319892116422696587599086950991293551779558379610194843145294321504185190767450577871403429860582140320798271369764409253513678620022793647223436822184227527732363361423638322618124778932378337247655353046218816909818400129398346090942733683970939396386330105545335306553834202126011687025975269428299010408419783123135671700798548382689598284321520954493230875724889643429155719681133816897820996056379283330012533169267971897908101474902193878820165676458537833464531111434326465189171863567465592081705790051802182369316015818566374765526783921151879928332952265481767856081583558515329396096165486237714421701713356959986232001056282761528016595759163407045812829605233115443679650877314945739358186043682065495161753301986326889373353429076496125089797162980120709784603523365013232775526830568710994263575355218701467848630026803751075265116074678827128240706357081756554847770163330049330040510687699918398531218747197098371485901131966184147904011511651013704393277723570837355373576703190607814288674492169376730025935348500210055463556350809431922990724435314891335294775013716877041641307005754711680540771324127081427908727979563103152580972587634060878409331936292890689063139210060854177116875800324513784576871851584962949741629666275803671040283964104065042972021495611531348698344483520695369718157168927056458428659986053936569707417054299041799683371408338510135866507757787505345768126092458894607603417227379565427416026381067510893647291787796028186725059142912785964976714023649553564163716650629631683957052435406868173100170087312632007499891228760920617563166198873597434876012563925708445662735001552373957589541639179195322501576962888987672191182709096770637579117682174172978482439825631068901713188883044248220670029285370738353738237224245727008898675327475856078389590488253582352394910050040822245245812860298066666664694299195346964290808514281783807288263972589843504224993754074720968343775156771294762861298029443547777622391301635666134729667714603130252918415235219311847772870599731035411580530058158847976430701031363128229549756420396857810434992557305306124811194522538156481279743004568078493633623291964641657400739204119166504498586124626682879312381079728697749615135847568681032689672844161923513051344555022712528395302784376824829666399233171102144005592255236417299273341512531735632483121458118121377813177820950428450810081516974049199121637699752008720236008361484571337798095911064370329401808911912493226678221055746622016942313047669804384897046579304687970912061166860079881668512783219443342627863005102282200303615783808309934872493946485517929803638723922374828317619267071802449438832829275624941964302564300803825587256604817677743785288553875702065779312364589595351302213569968425962289869161085660263636887922313703186309104890360695819813236429057425251436367151886135911169272425999118748579187013857555939089933730777807629525744203531386960652764895141592761372298233945177731148996289531052916945720701480501372121268110120721785754245164860609973623477501014350109969575326302393388505787824072985780273569011191795210343181582461316323493858973836190288444784206019887862757630025163546853697581654863106622574081287061330365886213734497831002145413784692629603219574491154910026151501554663643616259836188926162597631346581457842242733536437617346711839198468414228876967884014290115434124969036018837043989865504988151982222871524897488735064432376279284082550462463262403323338118137481322140000795987845046914727670860343233885734292210572890214435445994837237265086070083513064926631483560392653116152053057166064113437906303867559679922691027172303211113107131224439783515189723492734503942075988007707344909198048929912858610133699972675299268648398578023692933743628063613607465529989108984016278300286648253764594974730073073958586558005014724562536237856557569656867055465442582000278259626357728019308374945399092740173419299911794440004464791870203226653742099375618122734541086614775186901211641042460664307336126467414949261863966523584606418603656584331837553102665368012284266942706845005044194939324483919904591408659087084627644087477723794505238755202855389734942650306952432560200345450833285736151224300438719003777521038957765720878769783265232390185912037761315058326028973869383371934804169777719118393508440258968996613821276658979850396610728683372862000896926347288958086895598016999207456579730844180620537835195177185564127288914980014246695364646466829387664992162224213460211704111510716624984429379351652042875096341499396730433355512096222889247307707874488657469672851810526256257772689964105951753001974087920785435685872610400251221563411315940022161628165492177662710936969309826062748814298904116524793489839064005264019204968605629101382130085280494328140776095736725048992494065130850075144905390559164359333112886323446560025085291933270857305982541289854248356253225548252539143191256344353485892849737199251468071312363091394074181306646023052189468586468751244976885971943898193592418809172213880321655406598056503599111596372437904788183564289304537196888570317308963194653559124866805936308660212873815569668621631549457095936703080236871834328541996999115747541916404813162976616251311000734873571148182096979747508787307099455643506564287114693133088099341993852442452894068798275310905983736670017285813123646879434935260155502115894048747512129470462333042365994524395542330891193614434660792925756091052691126731695047157351163445036087186012593669719967972469258850763644564358404762236695722989516218435839097563423173145490239091171906731341974861560147456291711339661927698692424561050209975937491489175555433581370400154641607467281746482455194929064513704339125514467623634906848021659271334091008015468683376179668725032774632206336995198095576924075886069658324687145393882562752276836758889674749517790673424577828143674482660291182872188763483165006944364677144577574908438430882063490262817000731370640479149189240871116618292497176757080869253737455539775526896366888845564707361745836790097808054388844535754989866319325227058094868075854435303539364259729625536832320518982821652624413171080932383821989713608113835959734521713347599600362847861859475326535644953943893406063600572888523977156160179533689506675821341765900964244119278647859816347348956924902865688989261896011424352403456949803708654122573090410263743651617794269063173845101167664004242729261752873439370550614182832715711486302253115245032323225054772581622078281056241711614001583287726962387274308505275756620475635210308623668979360452409113410093642984199915501800330597621394012474622788557478310893160902930562022214797639681477121592015438903770401371998136750139325164186090982883014821522792491613758362497822457058471020454344161908664580934065014613223517160479573360940074121698474816503824320437582571835570756822415692875571272875124745784303106741725617792409125107948602992101333845483912508117329457225624960206714810564309653461934460810420094658899790745262112378879580907183359042395592345472185069704684873281829220979808227901129090725584574164364842370136057143902811750840977700000540049701820759893441728294523578861882739749683895995020026515826608022843561913907120389937342408943234487279118160226505820620714403253369450573067127884432924211245479124110756072565829185106014048298235150714991773453419168264189261714747604630398687698478786314754036244736318885388460027362046473130750482595284751357490319110515335056241957820118626073199244961280155390012084077854767904028536992105401401038999086389967152460649067088439189995224328943080429102260228012043844163669070420252808768365647830121267453040433680837125908987593367841674613568561433433863707110952686483181267870905103234481553013878401406193654069165097934385142042368907094865942574792415821364630645256242123929660168134522464151668615910244867568871464535984042166319186720843681975636922256057981412397406798305540168587148852300345909108175560117676854766773857043639985416959371011895864332205890068904478264666982102133130353871536417917062801814276745010695755286105077877016361781542724542417571841703081118452869925516179530783117381574480095843318381960986726421906203026852269057595235878706248908025945960205197456830413267589861616297764596398874719543272693481041418603740026170482556368661151107690029649908614162763986381895599461536518325911209856093928444432422971844262872354544383695951812291845969148810091666811391478929871977884862401537244087809777071211253762941930560796528243632305870426250746349000821779445339105518136018082620050378520777523266599317488483188967540071859153567356527207423969985068660887589733635924527580413234327020127259480094873810268417030606294097764314289507862828531385210698834953998381506471442031210065935964165802506472939143185410971615509950149849240209778688378784266603137605049856789534896197035815600372056064447504105681495973550144409717372303366971476817127124460796429743068773497537486497609630326880047841908264273438479893639749495113717551785882878825169634157537563193436422182540092124469563603698989561562275807066891788871907117684306514508524098771358883515616868196748636648405557170445706304183190711055181092335150434101002913554649007467002066328455247894479569587987847822853162506267984419901722166758787129991642826613840903950063181841710169463995252760959706408413418173529975140360162704425731228211539319017590648876074959115114087721315114754939639838224114710210290100993873152368560474711619666986758284863690644839074732311419598560647736570090520450936938050057046895514184917893970529538963568073686538741829986232015209911182674805057516402956280547810940520252986763734483771188041397891159052264830479943162361027898221555330438852526009121952245282431565248229708825956718691809821499463867018796600818385954634665058869785187020747661438507713848494842259325008776159776846349844810618408240888869063631608080154127105067768851467774106324741384206113279634332525889874743870571660529116254453876997802957269700351980323319695981789048855055566404516304957847455871549275334522963111128649953836871020053902836298493141204456286201419560600199069234852783533113468805777138545969984343028308438758850842869384906319624225119847362319770797833846053099451416766257740523257210809349368804187935123916474350310962735743795825896537539712878879571382656196836903725625478735701883299028774358938731731287417941718141293339356363797576469005249094148506507175536564814994019336278493144081136879665799342841468086241112550055649628992918360602400067392609823606634700005094364024880712196652743383758642519233839693642884973319866385141654286450677996274209344950246250976197398398997793959244654931587380996067062006814198436983370998561520016125095047095239526218478635044802110243863409767208713139989403396982784340394754316169330154495961293735034618902302015383676058465466816718354643912382809657385741280631855941446281333489623886879843764295302729923843863426703098069806659730669890574531950070414810464882183920791535025812831285665769144494745004590130659377024857280374066329065407259567509356647237449383419564711859106050258746820112464811750807063436654756190903245145800026497450541378853574980116704025859510700630036560080841697710697021462010633766788466831464187546723631751359358521487094101843301123743053854279466263576986715424128605473458595193099811905503039447377852713546205480578705462979827739500689884524653752155429232601542483652141812948829985817088083776697858815309798715941496216608543022888039720582181723913606916506459722804645580148585514527495451358060155703543909684131109702212689152183355200443193979206473425298714458272300324718571652555273836022207985375998609572202649705082563546168852458851415760218436812456880428920368574540936156907072484980589825958961303492735213637653810785456503975366542500029700430006268466312270274900609317844705551253519770106587053396259927262406042710120307241393120558675924777042590522314133990573070670767101434409993725219917700556083676974188491759652708713031975090913589187813985132473130307833168736885772186395292404622756702669199183428347255578954071491832606851603599692177125130279095646561508393997191272791702775865462314928036129341712798693198965600880658759078154813591347862168199525971532358726716768748944855566457982733701276376160158879813773894608619334624379537440341567408249485628472280545909288565795113171362656719900513090930476918192118946815885828597935549054225203155345604143544188392331713170850322809811202639173175150871762691756010625350258570933469352313310889770135799504114271180954349183896151166991791335870823452019733408762140445234400950343370351660486268821767818126742823461695333276136277432005938740466446843313285499598198325161478472645330362277509431745979195229081406966910777038685554789015088809247161106369908680288077530903907214574383719479634242546667196456806063191715290937516949634522026461682583209169440137572256543600461228093133094800424622340408212021869327765428638323057534928374870612664001745034839127574804903813524498059777763252799394422689708815108454058723128270985658411049324884735693476217601993816407785789957136207684899956690112711861540810821518101141504393416777446094737326131996569085382682730155926127146259405491454000156705218051146522867247622534263074604264581263555472791201092047569229198718737496878320321942198287888890396168093481264619795371967498446624670494141213119922450953762107012644173273349741675293436912604910275253178704815769648298966565031575372675297017071698739546361976678414940844410784354815077786615111059131092320009698790332772274682009645652057167248065182385827360506948516206245855893713247277025575938512778236665073277703292890467204139356528083311298613814758116408702948386109722831559972197994575424302433518686309568293091317655487284014489155501910937548641277825285387250042102333427050708616262004112280763186653390914922989673322241158649752961357359698985799854834348449310319697535542784588817980864012628781312632769734596643673470799351991755176297999036055443839787523882301211854619836160811075810616120820989724047504171892606942942967893828155934439234514489612204461399290106924068781702372761322957218801249538313663391581647223455845888978057240447284754405757396667039017713386563297076974719246301568033971359026916734343458093344550548060810828608036005528905827993410878053114411809169131096049990210129347837932411930875955728054657199723758196457908718843109662884279722328744845386663075276753183762206044831640226061424946557347203270448330637207247860600439106161902931397291621209111545436161192423532739009564229032979186507978356575850568996534811443039390519433140076062926321950684806440333176249463613869822568596118894140337877205209648101058803568247899508352957423419352894494441714170199401325267881303600629956312359543558576067628043503480952984810316064984783241701207303621137008606547202152843073579639337697783018178434840887678088304606514366163269875225278474671774260840219603334612564865927401606184290204572713753393580688105696965482683165928637744757278563643348751688728547260707677555416587307895547135627775546761061274310624199836360496386356232510604052417525038678107717540707245237983093906092995124094684245230769487874567182610450644767499837150005875130766414259051335434004756440040439484118648236243403029041675140226350532202168944435323756682632921281511466187864207384608715880003209500466535935917764882942828275478570809572998761196743418449937953538282757846259966396961701859106249403498676592718000590737981927310138821605826346609852538291319379910048984719080080065451641417211250208710289697835206348136787749191649762035454095281046890361281809854549464184960584655951155907022630109818780553774011385395224708414216607892665282224900939111041810372403833590221159618594906266841532289472568665575839481761853994126914135678933524244636573369447109950544952846722431389053608009689089185419806779798485479937403174199935589838393865660441156870247621483095149412869437577303222334000630100577529924967136060270797836840441540990687748641083551397334257730315277897686224882710082213725609300962266652229287717583788880489154688896170310388900153777094533134224542233941829795521668998836060919756480146964887004864321248986515053466208071478624810531750071442576232839880704940884284800493595603530196945978481810090033852317853652768277643431235144713865003135117550234921784303704665987028144992974457836346144054855583001924137669999084769200343157903718613587350420172986233599039399775531673980174303652083040247105943529416641260513114500174092808102825474006672094901112814490905086045469471485003912975125928524773817694327801393075991837006208291713093222050002900994350285325000812208405199110062489371497413436159140391331010894576417596503905808505793924016449944173891812269444498000421463820767171814170392955204932016952868569976105517431551480476445475087647982723167522864101424000800498505019813162574561898534567608760475506607890158461337783929127957632753834981508278028746198930245082719488322592719993724560747313160552572863557576963164785290820085725441760620010829588510203199588650586597713985788154568800040166432079024142060955725255623628234710846178620194706973880694465656855168328619932479790225011479328463598719539319615476791558972368915760155137049194238985258359518126959206025223561116717593258915119591967823493510812196026152819087569736328967227469834019517042745466344081320313226296625972580379360389277359016923291083267181004161354947219427780788621776421402710399985660512348086883390775687275420209372074605037919989705755536573740170234892733755949854997522421734162027544803017163995710864957156951203755742148962999410345017316574028924675326901686614540047628904590214833149480646684934294847677952785131756154593402845150463992035232489000517403572743376978567480635333425124455187441400916244454701138754272955722837635091693793875753389818034296096915691416121121093410823598608172600252169398457721143871117535168296832285986314021158968066507979796888880600783161531420550731496533363858009488621408301980296883863157441417398910298772477267721228607141941245642547212857802507681850009699728684987567777146236323744866185812958061066538670149388747446579635791913419801036519529804918080904214838276957284930521519670662053538954799465497561963444379325655113482196133966381221774162144242049439604530165468109066008700146766609771108079656561141074191221067799598400485256501682341948158323864809383418386511631928774128996720161368862483364223532322661125282854246966816892234074474407242597867173948700219260878170438250509751866542417066067523776981475905737605708729169186503985182244386661608920653766980896029137649190485090093517828158909876829713215221095397267873181956450397087669635194628682684691696273968882983034574263264790162188838043985357589273923286272705396185083930557144631970035952142386779582855689948840926545999147079472997413423228687560631353107476206559731804675215797803278603152885875833751398920614435114724181853885048257813905632014539098444682374362631574309188941236708263576739013568843685241349135234012751295716539837813079990887170787801037395193116025833691329158551926430893597841272096154914143608201859482146555541653377924034420297050583915970243906173319433677076538574638288351999872857523303880173823184117758198672804884904743705876459066495481698083114058348589357607308938805791271078594635525382797738252219517171409840098451281491998316918683275344706158956797095656939963327124131271054837967067430629271792545851333383976525211274929671901102231248988630996723584980601335475602986901370752703466159376869787577838046546085361275523767213240248142297067552588166753862697847980985260102481407651323034743749454364569062709289528950614192658902388304663297406168928119077078236493540739575413694236454128761234337653591919567652995157207361682629387995685423518740603757664920343456552279351613815336901749577061743098676965886841094946542456743695606008569760080166342638039263184294495085566804003381917672397231307131463550415155682009803022558399240812061680189617403760810116456899577748730911139327516947555024211431845266449464132678128222898166844380424219259285981819305271013586279533058623092772099147499065097359664906319257854326565798160399508715965609711199492643701988036662139233186645804935242174142858612528162950659504079950594936333666660297617206296567252294415767436398207603582757165626329856909926145054024090976767036674970822171419012713104102632082857556090776649037801115065729038972534773831199186099333742262152170596805494215499328727721277877998244318840623371254517413671704436675719002445460070275024927207443861267125434024076095157194477313185103601122804915149433102242602960996320600279294211108299243398022718286002719290813030597667412458128662010066088040404836058825734791701970501739866485963659084034189363565659365840424086168597001722796778903916232489569110751686722237266091091545390747142608441789297593476194840314170322102197801675525666430227044572714154603765689239821383681954825708307337298808827485027293178047289402510522110377445138116674814400754574213296613209071023183911787479417259472966842272943633988519637422838129131273721820422929604247835679399935772826083816147103945876069320269778387432382129461240839698604435999379738747041692992834361701247809483716186805970751725640473636694383127017489147210413816786497546418332215981472359359625288021382038461829249238906366411903590391288610805824655747333323453074347982886202801514350623698110537547088477939019707839040258548813978934956616045083290995457723813165360408589523711998786008692237519021465946380917728182336909776474675421270909920696584516141572685658299689542482443117157082805004485822440939363258191874150350344911094669939149461564629172744846542311234230644066062644765552656356104277472100939178489803635587594550235125069141549509409440272793820924118669579850289424278752144043068833989769272102222011663586736378715894966799939985301520034729218897101989703074553824958451371912563580640340050795820992571714645760798802039567179722560987046335759169365724878599727403346856534772310863587014693493962854679501285790320530410432233487385403837744847544598756404806751314495651662398047626605738890079528565511128428899678091899873916103882407412444092284687471673612034893110052899460326573882256572489660686139300414022819387718595575896303914703578838813850932990195914498066652203963797231727793758269753928024760806021121228093383316221432274498393347298008475992722715787518682079301181665790999169872890838006893466920477155716066172512177885956427931293891922818773127732218642128530082882341982776750582418131255252943858822737633571153206310218097299023217879797952075745249697458704577228002018122304666325052886757391990389312323390656886985643111107254124319955858450373196646147927138549513837529988975635779205731198373270027354407209230505229946019821532150577501707721264124494918518055556519567969452524715927713347888316779002024055099447880183993671530352230801085680376764322278882640491565828083653124200639168248124454753989287333357519235632601065856905721784129432069905734441569121763183950140188536204420275356114778959499513991512970679440295227127197141734838297379186652729370744604923915069101562887918922052214719486480988015485796733966507558610451207787780903005793725897696752094037378526440671622803061760661649160679408469065222388468057370353136886049465223504875504906683442748192964719316804738346885665240334317056094847328987393785131923132054429695216079791080245792187213583190298740802188873439336224809026146067492550907231476966518640023405206291352028622883610936361133523658937764085050979911386743496852929134243038065281362583751476759379897072865910502996713584953236341949052717063625397975567211514518653678344511388688568355240508056347884026927623049840195520666573303495384822989425586308208950508508863040535742290415156172792630904338117867431906292154832401334915687481308422823564092231900636349617501440180505250519766907235757829768486673216209704230787605438239906178649810813146486207910020238944659435435578796243939776404244219945929145947647551187992529090181834395365431617769086789579671011885511407124900647002941025372159533816690218522794429111258647148540304867535802113240344049238191406665080028303113550846384480318335415804927157665255021737466731130446840564567900801702567891488444225403630396687166271963498749706867821281197213657708220007193899516473985642555999664449880266639007826640293564475665548147130929132249731570475344198376968277032945250770021552044336934012798356594918471595567401919320729936278935715440814885905765623711395000451430084726958393334099303020043934552854751720992590735694243503231925633810432884985515442835296082248440371468278224696706899422806093091827419169370152515977152540650783582030728912994849165995575105261410808630304811793370898888816038950225777103836954314158521841663952621162085739273789035618844018597054170671526968313456002395812143584972577961159100048140767222562260315696503617092377029837012423321428186654446511290753658072065551712136970287796602218931632971578272548353121040759930485118949161552983847182444785962083488766543726708449774804688005823622495753191265635469115296740783180388269236767641784544182539871798227099385391797943177416301861905965350037209759931200741914432477718160724716774642039306049458097177048720969790444422021905933100415698061313213535907784156637885707842544361296642657586678964112968305439450063674216015637102626678296854835352294457615269810909081839649101076462267611572657094060382923060883477989319981891647922987906905458706362648512950913113419700090176814851679028874862369936983934242372629602280307975851654567907761353219480147066842767154294863030743460448106586419873148091427452706891010615028690304620415178097436559644550945756337356611388356244850646451415201851881492069822402333922812283795608925117661074578980644120251262138616864950624346178474034696947596072497843648059734011529948686768194461247061288643110206550134086601034460101600469796318645743795670503243888448170537062971615898226135941676577655530241027916149564381916551442844543230899697538577315295591900018317539246441756562397944265093140562818239938956323746247650956860831821933526352008312083790101915701379635797685798197593872278889943458218710574866998778278465322454018562438707122272777411962529530804142141992118830347857409394920906928359377155809984694170574482695147170386610398900334935046752974942673737135428224505193390652929459712714199102615385992874943059072660986502990992290816056105289673407361612487377365606620231124993461923310042026567602879195764857479040958239509442456003204271099122647514519583704168206791604290891263342664709801835527081344012247407979614292541105342348323148705227926239592968335613756495569573912451159320274617965164548832659448234939775600150309579693468714166894331553672695101217898604792101064002498446326578386639262004584553724729955332773282299950200598874160556699889771896778720142224356284962739847583936303114637884801060863285177810377036249796452456400685287328057146805652192331415924188816766420876851571215048538171374649349640184252812332875431188613228467141794799241412914402008257467781983582340472688993592645132825881729517241401060983705928839969696077742643961970324390873739399018897998711485832129231664265745199360071359249298520470495063898518118774877883735347949497184857049359002852970320608605377796944964418329185856885268074963264450450670840186361848922709005441456331506395126050532178633778381276575661961453381588353870821414781335776628211567732122457768236145043173062657425403793459476576445294449541782043580341172789944320623220355911182954000085772010304071084116920375567805328860258506295652239444733093774628194048563950629819623617793931877169472431355936407764678942968241306446644249661305757886597233091261311180722583463422555863288484007235210606725068736754067361511475649367507561835099846209434303642174836886039368992627674627838396647407556275765133370185832868193424301225237173507333878045408515945388334238379848416495065991567806595788335104711673015985559112577675437680982467042718100188784164501459936159110351631561990422835562948931381175163007338438973086589420746891366923064738112934595668035453294942234804553986095439074185327215227754957504927342381403938592975245479915500445522483042732452376673352537149460685224503870082961754658064526126913184383370276795709423111412282350037660813257979761645501102371946433822190162139419175205154275248629188616783376088149696740318545480985577903748770107527702239354264920113242689118208271705584816018377431726511199551324311741798526428203469682886884755926761523830546689836533976426001255562922563860265069685145591424936522017051312727149563484217171698348851763704548098383402946080422964119738720183969569349221017020395883826444781647710047644119311842551107287143347971608978717630930474085123587527836330901386453136150611689341470387767578338542908464447992971800108544288333582447452436387985860307469560598918019505683972830381031917265025578989779787586224213209106545581726109259196545061667189713288707988238466423504640537877379184322236539840826509883659538851373044399221057245789108314053443667103550377178014561994075833991818362744849677021703243832542550201975033197252428206820619668110402683370840989723824013170095924203816963329584628087242903044088006030680388614873900120436990011657838808294217289979885417785974019990924570544015102195432993313521296633147057512592967930649908180517418188582530257729337313408936453238138786640077351636430044725246874143665702913498042707820872539426124549110925822547776881274808445365213880896743483631316280730695028928663071562829069364945540022454515343050517500592072687085418398630155318736389193146087438074909219113981810541691752479150935242576653827621137554385814706042507591816015322380844351387566308218737361524189672975386189923525625264323773302171639157898725552167814169095952538310892257706019189480631691342625606182719909651839499368668672385536336342274469682604126773199325077931600673133084738131308147254234032503895936980377560903187801611339568670107306797607595630562089847979641858732242721726063707704062279470601586775162248493510276017638982201015336122201914376022586742644858626121117239628051345397137016651450400939734675239059386136685819750688789544864061413889249074999470400373020274820654107120505240922501249128347912430759585893594574220552114174851664161305238237122711730475318746755026634938692257662646285507615031273100862070927925559801459843860655875896667570220364849301153797531996407050299767733663821175378509278499165362188597211843159899995963767028259255237442791602799785637657113220377828178862044462266257297505449346823935777214166634103092663461610883212658002544128036295262935697873278634494173841239290802781383101338037594370715099194907139123095865251724848278751639479963985438601198503405786911077007798938822660927995681817522477612810125912901247472821918540720588658763514471147065701792558576135311425011710959349870637735906020309758135898683216721868788623194426970358070329564769820545149092901772781518038202807612678384784649210300294700893837440066695227256381163088400072102693427167172749252132787119498313828816561107673053311403364811693504931366772768329894013195838911972289246200825156855887452848636233085802382030171682007047983857850387882519295213388216159339391020977877330635169200098648068693048225704458447298294986994332692458511512152411258936655256232487539898475435068252010752012609482686784117003349372582144215078253432828722102547453190064928247075605452266660427035925067730277066520113871088199195347676525218983443546408938549143123865373618629132401374832170441237905952181722018243521098843174981493829935056241414560519346635553621630601416440056513144483628120548535800589962958651521853290141301159688025064923822341637521762997586840662038905672290215854901114534486823906693543579802911401420526126229164726706155401446546216970358490232173211902564036229322477362381552860224465860302828638972020732369077818208629875259560770764489768658807672902602025923097404370249241145027107382318790984397810718525376825067107366950733129365117047850568502783429259898211712888214705817315564165809766810608936104498813839787532667422776331856479083585850147411971478878118757563442445450711539122250704035666051586530419635543195935095889986257385355687222074277702100448377817499867921777130176392224143515300755494120279348171423489873086191132016254386707259737831978091896783679565199368233898923381732079892161952209818484073566744659206451436346595627362262342457280974204680865009005622410829230414779812945885480973891302666364616725484870936785676735308618005708118864428567533179658559623369073402549211921736977526152183530325930922674020833560144811905714678400884899643204724935917892899765898413251205106530189635195682771077496629787323706584260248535737600511767646467626947620225483742272736711766133184768538361706730474906057771558521937362643465594292469926895654384920015038284713856002641237279857572668366994588430252597257419893472765352018607485748498501479828787786799257844236196136159944622527803871199649911917193567534657964893178089225657858399512515549644582184407010008959832244199382929505825041307370614362646012168594184114416474151041231573319059282313783777952513696309778381608196383055017733382597980549738058017388236968984209602053607858947046480718336783154109810225819973569944544256256533581711346308164253866625397195965551675528280890347738423960648030217421163411702113234234471940126594231177616873607244051124606130399419988384700240777996875888335975134248768392091261871598824353149971230045761959481991600900526543904298004173063827123454101750949881888970290509586059820332715296624905007743924644175335474259486539505577394617891638343145629154583924954777520853078437475282823167156870149365885600201194746410665500894714425777072597174678386147564941933165228009701198471579582763190025637334432718125086013964792765013155365591878220419269835857532363188749888021282983572516560469694041502193930941923449576062800060182230891983988101188821243716399070732435704254513571585382391569393721266297160660951724730435456570970188530526411551845992423171608173342431314517045642037582620178081658803808852291529285611198198198528556823959430642958238901165226644617305237402798562367911749318867344773953300359571283591770695515258477800229947594894771573099326794006112869384539431296996189091753224920348695695830408339495366865260938257660346261745975954870249931100278565054609148433364513597784522811455686623386146896090112359603432145199134834086915359725416189339163035874002598790056265672671542531404935738601929333186065676220037949740331284861034723684724620664640573204353966548416777360774815364710325667975707619673028554679511245803642585138538701688573500284457893901721292086018140573991197548347436086015522461626042619704182256333590595368615771401429491865239713482835326147904930581774462761724312047116373095651194551047305978962330831714398499953790568768879333844934902257050827120918016349781430183937604649325574998312266485678696168863985660458687168649680715906320380649543102762712885133298538834019640966988358732732842670197759397369966953246923542015891976387666321402840979162197337453308641718489419738738392590330233771780541847631060183433535909435622335317410373280287435311634335434780435363497000009469798753451347728745667008782776791096709100894065336765427553432840334234912768716951460733444255935415783308651181837523423533945508790828967808848882545192572446029362781290397779843646855858410853466732105004445286202572903383325744025544579790277029907893612675013822054194126814187852829092527300389364178584106286264779071572522269389524311529168330736340286352173375115676157062737119474485592311569179536355933088357004395654332267388620105812343367691838515435185162202158015693691237290161348302570712452903740162747968316075986349566494613719848958674117311691563903198240634549944766827224708827493726077483932024629938291193691669619120426389551503563687833702227169047817208473073071765510718078287930273209156003648235617213604859367887469164126662188167188080634314941571150709448921565243198419199950413178793087684608948041523987322204981752818704962321771643056957321926680400268177145231810767076580962560757913836499643846614611647255089978983681601829584823286905885745187152071918502362524157511583112787787146167466008986010543731723319226442402057348490353909461352124308092010571911492912410846733680543027971341345959486982208530296960863042457574486690113623387093662614627135424928983408655888196582814935572462763791919096357736698417849972946186966454244571948667048523295330630271598875921415102687576898745688346797423256235286878512824985738024777270363953795403503789083994861450620293615678480531548865054382237781193228878579082828610636772606131138294145456718625274928251306047278068192605246255716209452044162853594101803073967160796124285375577261050868848794702740921883341273725843790311348598336995417503830969818994241565370955759716194263899185553319171269546931327093640055967121134299624771739871516765128394372526364479485401496862571763542716583102344384946485216777936619787529868819324589699721911688858978090708165464555769529178498895623506325193796988502735437240688964024550830740622827916747906413470531582227805425510921586854417389168648505713747845340846648105014585657898100244205466978793022145958474932030731601165794145043542001618222194111062676444498402164437570344157795768269100571809470308097385136645553669645611929162184674202092111714253799558782345809223983709715939165817156694106167970272438048081836491031093618536861348162249416507301646568322128787143879491667539751147384645004403975791715929658277860350391478520646037353057612869776932482107731189578092397343076837009523979424422460961134055452569538972600435093790525481344864876808674355326900368777606449815104373785129369856607651635824579580498040520152375136107319626299393739575407943131255489967079293219741362291525072982820455233682589294363070415567397461602957748006696422828121086030843952516237387106625070706552748256883367726738537897166346966842705446082058854286153530878691978165258678835226642062991206899440625685536494148794187077615697348096789586702611369337452324311714389005184193957693090398825636629988753736689886578079757026071202576468635008419518804524830512584824803033370713637253210433212171056391650710966578331666664092289649538867535408439365112770184536813725111176779953254995655761384191540891099882795688701732769108689507994495086369362045282301496315499802073813485099261373384759092991904571478644907715118393752501077767200533806295571471547991537461866774703803878683108325352260306307981341769651432810206164442432734800770453658039715998679717156632161155723402387868702528016807302078888379906340299302944115001593054159569707356408862554891887819700690956872657420095860756560298268687875073043286456641658483437701821352930494089763395565902599566708033775692283979730142713114710462085272452381648097563987373020679838261349038565190954120754245726954630170501541730744523318590653280114843753232620160577696968776677254482502405984944792636880477885959123561495389596579918461710540059258605679157686538291226037438013648326953717629983069464320680859931361626180998302318005546457738989403836086356145692859414158883488692655994134216207680029708448116606745226870644258659657078468039555403046516720128066145437500741510155516046982522580959965916332531716334367882367635253672386979964653671759869939015578247325716024830983479368637046080892454067518445317584516653287994763633765417194221767167750686729012194836944913834495245231026094619941454174579429966226803837149143491786662314008753684353052984339738955147303833845738712169823821471019308249895259545087258595648931262417295312776031464516917236674409452365862595428590209117396118460831270958216129497232665043435968586445384586219216425275748657762012440344749430305175658872812229096277975989432901386161898408756211324794170700611583646216741931475758783321901158446861025277668209570624719854840993784224411429222455060507176048139509272837759575961960165782284973755844186160510763235905588134573589792648823139363454866382350798790091707191346781995475793655583571444895619031649366281004260672080998827089012668102286772655799193552377003345112127667914359150197726256821238352894111874944273177254220741285858001112412134246825415686461973730192540872587393308167510087991344152236598663457944655449199031661499674262703278474987337136782219831293494118438000336891045609176679295661826263834999966538369949096548407983992592658363619069064611876582030578722279233295544635865443175681119453841934019589740316122557592087731186281719182450164183959682161146732858147508401025614510772322973299195908878941656741462221126193459205125426916878533004849374574514066445384961519774002748751952832458153917003356159427651027388780823446849336328146343117635291991824917311936709469263519238503931117167780694855705314125088480415136320543279854920847305107053927060257028243557670068854642003907728430648404847397032199342934720055035456475417246880454572349120690888312943653713151927165284891505499717262945627765504705831805369970902080877067277592492170531278402636076008225151520638357727330141623854603427893151834951672031721721670179690773995890118360259271756172569241978527231302573333069843794197817523634882622265684706117253010191511093632153873371412158598891595420663507410978304973309212210806102995425720813455470296726614817613326240343868196712019672098770054096280197906384797307687770575382161430828298304471667466317159853986413251367721713753849430217850942412323638127246011332723656205575572509317278111848965189823895776038762980409236986728588684821829590284655098353549333547322751605177685696281477806494363551550991809695791339219655989627358395197737661733486641416492135573126402472311578743488472976281900796233161416827717270641031306913904612654351053710661416013687812854833456072760069978858870867857142418142702956552428389538519607391706258779760161905836508182512073699792246986275666570187363227623533041186902303504442583826043929861112236949695308057842749011235211582728369428619017094632570355844486415470365569095453098060220997918436565240949939993150072535239156039085726058280684169609699431035137143331884607676155085998017041886363547136450488569479050083063669394704806050605600037642441751680032430737184887553115319645102057691175597024862346663950369620161183370954120464375868062922950948884850490026238134133027011612538165953469494084834707627798262871950864746592715824315102160886392973802444211143257416645631475832174794210920272799007856317612642859327698448540181191160743606495891056359097677331272634463635654294935799719454165968319167345287821259603536064207996305973610599102627790348991549823911084984123059857298268467912394388263614176674742107631122155958499027768645586606741515364894238212066873093179416870152505445789053660209315855360559913740500491707889560488983366577361281855684946831436341515414751358837863253272400868138006660433117449217930773003274197634824086898662849490082534104801454685278322691789420800464258733081632742908909938282528431070216860936404016836224035662476555294673298780064241897742960674584778986662300728493007025680011914225849959219192776637830721385642972880070983270993784316423800684002467294239721762431463423723926377232013734718086252790547226360571373021999272035079927718737809135174401437201234881916923326656836669039564267576106885985299028068258768811352610077218180210069789742008519007243059637912108909198664382309225072605679228522860087642836751635714175195165557576384314090382836028689216692365662459330775285425134282925875050946131667340082472299624112845831756483185876450705222701844356829491919823094118612537521817399217889705973256445282610836425080751536310130466218181126774372113082497444679964935218274422254807747270768556666112599070522586363167885199407006481549903147469584122886772077342594208731367553399774524999442898640251741574436543638771164596929041489542313119651265580024363267567915307758913426912731473774219008618986726189920099943038233009939894020485139623873851627235153133573561314171240457603948557480019609457958547422501115663207904986656308469719523153060535647851999321295278502423189575517889140654122111290110624819165758586134154829130101978822034220833302758448449083434530040586652278467218296896939564610120350119510862520971083295986537364651052003069376012079409404798269343369645043743255573265345121862308374918178194847231623410261123752376715338593077091415016163714835997499431776258140010228166880200061756788909294972061596522591822064632929098788602046837189741752554688288365144507269859307564911882329077733748070509838074709303514936047272119576788387656149550494232782803164095472275547440190326257877584943811052175162800782931784702708151585161368305569309321110874321008561023135299853522564491245591810770289135834266028511029127905653801746181633009784915745370103547920545246029989809956040425070413518246217023418249329223503357362874145459234962754262694482086844933807658411307701747159744678338010758923270085041722594223960863173347485969813899463382732681988033435991544334760457302619371356491594067205988788922875744408206013598176614072723767792634516951332930459148948849088765125312922505629881162529106141702782900473199853267545547178891506693502852200825483698933821371634386997316519524175281415527560806352682240461190659798774112283855220071568130828071659849269590934244523224344378855316323005528593770048584476411993554400877842650599722775473856163077205113195499411772406389463184594734740196380014530187872947304587553484146574055380682207230089600876484402619744683552296590532851026562605239693011987080518469477312404029136304103730827824711269375975139677784040600943497073504136584677187480904111125839215224783600154277748972028428619517948250403496125505213365608009214972457910307099646145598961287933362811955980922531864482220909510647056046409674463515954683945930928727891774037696184420693113569169366845216990940699303944913215867564474470675006787425625431714982263569565168668826129369031912337734215571154725493170255181714517747213976594083582960172148671665926629184000434566390711456792409257500196545253082218191961198192380070407690098595529356008536291425625500358681060368144353343123788137103630670493732963611618946311012686424574182921839160456483869500207987404274096131907913447380174863519550098117331840807319655619220934403585018747144118627149713117925095868809080476101220987743576371911675856965589814559605752271620359488122086331176152758707470415554177077513236777597166094196446306253218888584051158442135957007023862115091796999469342937519813974536783858384465068203564647236796270752509804798334906381635010863002936462437751362773348141972927291464341070677387246639179510359549406027923363794844805098921333216482666139425186910453296592650243702774960625382921998592660497803701580871327339651446385427975253564458598308492803203466051368598309589663712317575680155976427697905000333380151292032465607790156391460982731622880950373171524372143039968988924835621893553629184388723830851458763431694914064227209511431636870906642959062565462435266118926843999552483284039499042688025679754023531809502087495973384714292673961651673101958109899464871958138015498176355749931940708817733424903211930708308216337223774892603332259436381821396669353940913171931251521580623097586693423460374924782768790902972114407741896014660743583334491897449953725272502900811349396938333522281912591335501992463151667584604873375972038123930242717694333951594324887555455334650359625856739618138362505904894986865460911741549496350207267096193959896834932926017398007019358047702820771022034105869345818425138165067813740619940501181018330688300304117132591861786169511792750044166150193011794933563026018075245218173215165660563209691796892605663193549833196885667270087888086794955639188698062700765816635548000856621725698542952377521563034955691316080670091708898535123002713257676506246935272385410149701147559776267527546313855075776305841310356329378845036455369667803009178321517844943190176404797898920379796897956380337944040208672357119920743801267507611414292670147367120643130274175901435989031266559898109037315334633661468594273346985949895785053320418342102959156306233614867268648658637511221061532358693983939418306552521666105346430351563150081879574334641249883033932420147074828032869898209077994827279956307164745805220534021779602226975063342124860266509493800052771575842996359243309620085715685329961146327479625055172638657554848190362366080578791848299780222589483914828022630963901830787171033786831119801594551885270389566294237215672888556325661931930875002675939450247603968101217696603055523288542543951224604115490359453095084461449751641729128721667432737619028259811387984191038322537499849173881263245786390301566293914596199674842546423272735503153866155479564918149948919779389933769999334627248802145091659576792550970557171259151482451667194129820986739451892958832087608847402940642266597187721818735494298934381742527722501806425469163832012434408530239825999555692850637026951730440574593244480766386657740932511741697998096780391230980371600404415742612394441955396379226746927101625530003126117436328819152950827658661468422143913243601869383989429615847879783944293827821794092079136941577312689319218126438872101747160152506903313364710887858476893855970360275971486909822096165231197479146701585227944260452860626793538692434068763014421466478019047293587712661043219686886157024018913810847225282252997927783962270105774552982058365745332988936920084015227816385121489015390242318567182125176819009563860930227209494646293010326872029093985011959937742582355181905534286898569231486394823197203255353804790789163220850943727701175242721374661357574043092707556206967485477735006045157784741804342630812185933488498829939754527220267292267351588426535282782316007514172428055877661854105155012328081019648482560600365616691273871639476726922266610219456293502030330438083324906239913149212551826839091160590678512844758982783923922759475322966168731418199622762305227400622160058003376109053974554331897520483588403853819417783242810798301410215173688377145344294845092595684352433648321788266284640082126307520597763489151126851656226760464754709288270568236153372383150152717736018302730379185247961404395044005333815088895876757397225312974053264165030614606702244273233145897526725562818037586369948772737272164136534128901464047568587728666715443647691057258559542529522983911754748467256806212052683461341812673171159940429999205705324300360420241896726341501698229006870292207567588723161870305031484312752007240964253974426807133711652983278406466794207565093773587301900981709572679476150478549705919723961591958725684371572882889683576625133399800505735855489648317822547075648571380594909412996101477576007715234750239239157260328257854981029124251642250154118267495397843705751278836067068492320516490296654813516728496509379446400955589392514349861582981411501404502882125144406977757840492994380205609555934099420621331338593634153425422692128751230102474970318264350378288923596360876993855166373002592099821638794338247287341339010757887328934503502328962075775153456872118957088046432112440210104251782198551075706284881236385026371182500112220189885188187971977147886643088647128127592625853816004168763962903006881127632934526295646963512837580276452004284132939729256280836088247089325976764532692301070472155759453046809692860049575635911371708402913667208078883924902397413489467059328046630525239255818477644301473399809237380873955310884009372352528479673195882637922618139271905342225815731627794723288207665159505629795269164715237535606652594382198994138705758752527662460623371064012734880031433065681597986030537790053793210504073831831604114477018090117445664624203284524147178711781547613818762651704953164830806769745981493747193870299200746912435184367071720463072859018353293020495553102074361490216038656858644786780786045023415167723902225912399086999059187101565571420174397130602626740255223695441814487322670116228229272427350751255233905932144428713714775403922107457817793746566984114580581389213373333124935028229733660846198048284416296321753612906765935650916104871859779523314295199170397191405231483256795453292054117741082612788040513666157693254937510300514454090644113115377880565785982732077482135551900312300718417613464493442270328876562673589925408210956965892207241854592774980405818011613757523514923831673935565355386856741130154778313907336723658709638176262184438595047164764425699378029860184692402823985867649690089986985328286757598550229215496833444973494994360057706873049599148873483762803670507282935051635680673315775844380582031924626666852957369600140854733220063429261574676196731443748459727724370439570506747797957431091259899886469180087992956194437184089550906975032609320142723637880841497700219835822377054102926424378392226884697636011811450787763951111710542903433396677812482792612547015864837887574939477251821050974539210242341841411721853917187700320577494099292608762155644641440550666601896536982716713648980193805089888472359484844720066192891561318845835951727382257830161498167945868804018760851046005323068570423196603143354239872021279151588996641055576021339395983903800808665686636427241036547723490433720702446275238629668187605273094439127191681488807935910114954074475817203908085866609795598228062618014136214826375614667297651043072317589648864797234444024865038247518307638359451161666419865217291201270498748986884257195768374792084615991547185273375266447886134531060030929327167411432593617259630140326521461284865462918375079733797845255041261007568663651993255750957301430155607222832215778847547545949273255805330126035258900770780421676473370039186962439938794839345534257558593222605516270373655002956979489764368196992603564371228076611824404049662434935696402428471690092238349068819384247654518098421444070936148432655110361664296744894354847283259156926043238724082629962952780468500799679430704308648584982400479688357420078254184468278524410395563329340759917400446852650731893277002555009708865875922547191079826511201793790524522018951097440560024848609573501834868070286950043389373129862815069641489456879117086950214129598078537934884403770661213663137369065751233385276236709465138049245294403861417174623403478089796339818822564137978311412935437546040425400510852687337345234671181033716621706095414468431211658578359053407869266908598391412754110450574437756143615285925561170631509337542441643167533566390598582439286813887545464488869699292645626861395583274604581863521609528291277312107556308932151936676088680527150256733675546594507614619934876678266989910876279835965865808903562213366676386210102424354160284452343498292986467882345862290149021478302973481571367992016240289714030201587087687077860172510227026034324533787421690123808571089798918362388107895045123889446234102542806537934151113579592995781153008992551183014620863616600443294247989777930676444131368989745549689963538103198469960044071137623592145514761565768957426900819698024433692188845212626162292863031301900658291949025170436278563825681743023061169430985048511339516170253414578107899502903219850396409594128605686069519570196920074156063059097790050213164292461135513722932795350783975293113436418980351103978461283092972394022802564329064332790834480299947259275721436046375328290133152929799875087688237474406371608598404956187255699310778338886174137045305136288715862382169376766468338285568910393302873600562978504225043970697933945668607834102649685182625459192344916645972404908668443750671325312619664081834603830900274166199161874643257049533788954986348644732204645981936648230917083007684338076848975295505532819641966261457368637821457672443055068486784371948805258343819118126241170231534894148587802601768446538226199415193334611774674645903704125536326939523515345027428933254908709242975099035810934587922898414588140481611853122930179550631221395964433363474428765715623035989765512679088556920949254375296103648589544589618651660633872411435848980786407667404562933232264036774915317937721114085473113685460103380498957560661090032114187438262812520817138862518782254560400534358649629120532814346554276051685378584171192467397140767307455234130362286142307705453608014895135909735391818609328493948568536452276946195989071262397486082643518052409219424076836737000782962976749841737191365017193701642821057696940619102667300183915076958565722731994345734517281900535555565959158462366640785310377297695601314591525454354828491767576373581936479119574441348465153084492624574797089674586191874362461274808294106205605502649593896110224833656736612880938577672853031338505222579526063954295266576737726554632953461021194259627310066204962532113390231635960642900255248979112908497987138545723720717844439618558027515003320194572105300105761597200722945529690429793814629405557729979632046122717948026702472990665823607958537398568545283357195524791079211213957492000022222985282526821770864428744785611620750393132529490575030513164152265802248374018540980791622110718775847391858936313309101708573241119000964297845212432269644721983936936176889968093479553568038849522730880694316394058193841887240283108777859391658098825796282131503649199285851486230565111086055163553418196091990184554097550624877429582307002927861974974268146663679017865157350776919270143880444732277656826383908042942449008669312602383932912630249330852333821181202864541770338255778600741871152277196972188881897706886991014003663498954467036003471698828411164125684322394083453418733518280381019077036410742582028585482267113529162153293420725713066736533631482211252313798297199341399093614022267980737074746683442656493695355959732484637448458338937903951397556781805532595970470542966459721992971273428140768383116355503701652508777000789325859000979543928799692866890360202453666814671644607108740298748686529474602597623343163382330337869565297630722151142261003486793803910955861423564744827552150131894343982994816456861802189139390878853785010333063189756736057463350383397393872300399989664605503779881563053896840113683400510729784130145629564946025465751120901287469682296075963719316608414095076469082886790723981734546583445020856223997484625084020497924238303417205314276011774870146344663373736725406527687213042204726649488286891578103553137249633564281069891303687301181535779371121378833050080162932340108931294114234258457910832972559630071706767976206545034380819254319045905429258327749481182331810411206982477546739713599849970149376546415021734178525986134999193257660608480085080427675490255718019324869303393968559912642194827284267857843804708578681121690737759677924516017118954898186881766900611817823380716994571324365204448930300380624906702943383554605416627744502607912438481255288532500442536726395876466024057525795616028817931502250368354142156138848647673664462747094890628708396595310086961872184362368499165618644404596231627980090851554903480835272109405404606525786831753356269912906625145442380622808411453838704583296656518810610366702809757317800987958269021597996237854024840904349318128783988395845925832850916790805979627104626406234408528170638811040802116673412543122521784108723013670565316761602564348681759591606865773239111041279596726269905812767333976964895144941450578959631384683656087356843598727073935452918208706172439332761612666946855013407148385301465897236061516545368690716973120916662061059716446802777856648230875544062371750359807706695949736118009637506658116057014224535921611422457507051396806170100589561622677387506514747900470347127410693839950318808062592814324869568095577743738493705528265888406889320840635040778168539495532549031917248413988582428044460824349497414924206858878801085908832242111634740277169246775880320544126933098163450292735236680011989791153021324335568152132567488288914931882947478566868216034566009318630497555987244336930152389968534995181576043106223002861584730221774737978716787718332640827917402266702921619505366174202871031542441547263456923472550587917138202691753836605298507333924341254590600173458571535161573273291707991876319248827588564894768439230654917542209337378267859302232874678272316498900384148735831306338775953363520357610430317271594548088662650903029304485685801217453091604667765103258929937983737590565527408281229136674685696562048282294036683165895647267317892863030533127242087541550121895383806841722328083188585386856583568756259921180021461234250661316351827147123821070862744208367094908739091105597077359057167580743118032241794948483719402845329045723662344771950162766364468451419620993197393159496848872958967269068862449187771739935997028003807027881066103793286983376799983822013489338553085271023409467409954881711206594467900203767295354806913432211202275619096599982551897287288065242540483815494754625814156986758210576362524545719041216899255490509083423760838815644759908492736469173452996225290902455624655694560522802379631620969846461776580030373717932529561155597314025479633916117771886284284162526581518757746928442219111332890429752409548804721960417826127762377078173883559599005323645754235307979100537416588189082537837634839338141016813610302704408144514510850593579482507834466186146091313031308875506438876088313248569453432107780975809157034878173341616151866958949105336442017474100617797623021737059991144299439716737467828626217384089242560667532910886037563396672479540257325571414216755834984554473159867442778850026599123080390642470575461506865029665776774722308149791165458627116675672953041406515860496295358375805988076698053561527120738364882795929816396928478148156054444149329537097144934996711089030292832343641669289180579058428794357625268474101279153163660859602966316278076990676233079513052947321259541303101585474090159815895271144195236659449933388878554645703578873084054341845110459810796826973736982018549105968014126657832480768602306621029399034287108196375233881477499130194521536919624681798005189613316906521008524608603142335438312822978748869852733311072931747660688284620619702882845800920974027641502740736850375836852269112089201757792364615758752441404891735140853472832470641048326675069052610269598602900391908389465025794963203870302334466345804098061304152116516621790173590881398383836616181551266887038811522139265666980310161796457557779604446191607609562192798202374499321388670167139353189873434446641191028073342211854862389996295025954672237545155772081206671336743884420901691698249763789276471557414604505069665354678048150488210837272400395983098375007994279732931396326901466021785404821034543271899410386090119749218074857071266072981534875654985019168430440947923116970958701497175289574529353148991698623732024789367713676447354217130674378571072452762530091038277786532623763709582902298474976379402489722950657010427838352262891985651386181257728848668003931161489096062677963705310669948022465223799767476991094900348463050101465377709092378992596578201361813480649082378383160328124033890224943983776910614570529409059303635442017618898222863526275201615462617166365752266522513266642738016982298534248266198613136792490655364514435945547234183783043892287303252408459343827964787194876152941967420815903686584674804486985730400431064910184559335811872290453202608786996983791487067845809822815080282100581842497985206142860074283689623191352776827610186411850542414090895260366948646198163929811426690755396903677403408735909932644999490752385422516995795581786366510144566239869829973783729236654292783404134613154135020587624422073517867597386957389509226164701471095453630487918755923533750660360867187706678599965862667897754123515237437174204849015923106521247382422444855772379682254643591266857679610825050941588655327487186430483755207587218270327681196238219934469710083727846849181871343038093222248642815680851817632824622667621147779210771593540598075491863500426373123608288710712538591556014958095914679714569145077943858883512624876401778641788140519037531706714584923125284601025000414224345966788497071836162231260058482282151864474624038636939191097428070701675154807190599160733067252803251712756788667768046372319146572745761505907826667077504356951991819086751317082698593052570701739731674227439790907356026318107901071169384624883351404818417109167368344544785402422730757457184633562585196138280770942104793296219402715301042329964892600182364753400910492713670470013062894945235045536304471700314625826259440216896467727355611957549638788338968988213970303002699693551363631630988479807583160771113545247116383438345809360626754576229784382198142922232260159822611077484709518123016079871604243829384782621540852105693926429023250775326600080851982824292414957597683280337859322656023923808686525777169965269884206976681151730863308220973252788881218411528031511970484070794664693261679282068074589419488823726122209533949284766748297710683915204106812537482960641950784880320617867751137334817363937234417815517118045970074345059927840466814770101806793526614488471505735211279577664410309922578067079013032042942512915979815184538629214409521105879518355130891236527256725537219624782540301636932336220752890171266586960223872967236591981461789939557373194021454174913556599359260000512774309103701637688820344410505028121893380042706658225939469705574714480881761334081553582193583352528392689190048113305463480273385794415324438873983612940513331992477211934383907854223117503287100882941582617510298806505023467400756244221265074930337852368936682476081669077696607434485338816203573288335811016157941343833407574223025877994697397096905828448533042730330782333850387135812370519879477727075480975648178108654160503033832299090699001692691162249185842153210464350224762192634104009562915525078474876437706021865507611757855060429793951803692114833650106901687205823877183322542452525250936917150303963624677744774191510837722939713423847450115173537965443234440796860244530014549593951162921929724536396086225526321348981864682765497706198562617611306950022659532434161581067017280980911089716161951981853109901935690394559896706968774596926194403022586884512654277108558394969735389904374889406337501340755184720279931289765066718165061659634755008820262351848721759381023841899448859466350716545188349688243097253323292650488021482008431394826242124554290240444379232612029286502072544253009623929290451128386712943978939224988323726056572178005009674417538210792430356952755248641720051300447878891202080223592807640026498550529992896753064567481729535755160901659261274965274513607968219975377292722801055088354020171254339265589238401567334864582794834666837300402457938243474841871255907843813607669505004362436976689264187939342231747303229475562849041016908875671166468645644260665215431072547822360393271675502635776704498686108475890794733026756878523270430911671540832190283217841110634863457390321020312177437153666183587341420312852889043010983476525237857119138056347897863458240118401487594892730141860606607362330699039746829313190803484726348622591860475995862897560102637344264838249945467405159607388790979338473521235301142409768929725263726279229928209475287381458217977448466086993041430918998992954634176214410236037473946109878323235157804917787577336691166072232621699626114671823489492741788928777773690982703468800252550276140187919102983975506365254477567263769075798335376590358906036794486352776686358135674641651055516868185007890367987167663458103959690388565620925290265909993010366810761965605650053359703546396476424063137405815529902010566463242245420530294307350452951283292594948304933533267668473710553408133549360219727779310872128926490961549817438995060640674798398848400578232657333248416504398051513799886207823504966120337983515901942973879461085937294926182323513560416227307151781485418258652715447987047834572368566600760817590790454471972362687430267057963879967590745808754932651531281601162074277475195548785205431441081916070959126688484124031159149735921819847653411778527234815318208453695391540460458743583359149964620538624322290535114603088277996160187509610721908838554032851848792568953386074756764177143535800263721702248671689389061159976204904811995603458543265067050227585185528171532848372146504631570920256861736477725273847242256872246937796642647258796284090502672859505975735758217839907096092551271277619013914162889060718251356030352921106297111131268499679601706198761227308838199449895471070583985109654728294596075202887210644125261179160470607378945010642775801125306189891600645540168647929855483656418239213633192126154518673292923057750346916106843101657826162424625934354726929586456386311486725798195364242917399852527204147551233068375472945599919091085831017285410315497685573225265184567019580978554198085789046890337154366944767760374653427024454405717164030436966747605994920959051517250740275457080724465008869868767807454534314141282691290410040344652529383606044254815472094558012324876378224823436224876795609781927090063528841527530271573092054614459791769136266638003854303237222747283066116421016549364212969481125009485399886905208437849264591922825509026012002155516520702729631929243444443140708073440914898343364522666976962326479066685755492659628242962373550122758526358894055022616531774163012160841134856662585356454917091857249033784047250328911554380973736414391082139468026518773506034575587973437451343952287143495593859962466952711525763839540399118281052189145887902970936481339939199485936448842619651436691573874245084872520148358503304201945928152647734560789112082058075958481220293499136854411990898835817526289626979692986914240794331157175386725506655585510179149360300367075284340631047169729231594736692643463093695285325115056605733221829377094826456179088452359184750066447052527866188275463188915462803816473091983755614521382165164795008288959520466535833879856234072377510556751253604142145042227447666500661644069593659622493147425431506753901347560661835615146767233086632312168207579051983127309140922581627023158153754154751968650613493564859229307947331911718762937843885944385121265471834220409915466388626967103855383412642405428419442952145566488587795744128864608925120199720222029723004053954864282164845698260045133318186690517498262244082151337945658767233485856149972639506163587469181091066816926138702197062175190624041128644849865236236912014957156972721591179122837159139685900921503852991273587050369957478010358082856382475333773920431421056286720887662891741909875064408430250088192901213219515552357597450347617256883718783648976391598193669958454297637369064133341774760167707750035341354218018995458236245769358001706684155886397241690206014617399485183722514090601165934817806188401165883742032756984754218145054066230428449199221462717881482706248451328174019010994178058444771818758136055814388796611507025561256324531107434544840724019533631552465178503078451324509441445619739474598011445268203909813484630351318247199271899355323402167300702831104810765401951882830819502207099235683677759145720579080933550685331098468718618221500099343532335796652095334398430832312553649977079139891817870885594498211961184811665060046830346395006457746841813215815536031046280771729660244394305567571256918706141170559961014721447999398534130844340342144669190906196134418264665011528423008218153555657777312529064318625807499427043808608493762876087645483037410163341896318184746407499507844216592908754668850415758186571203893696176269868467865799023370367691804408058481334082393655648919296855244570789371812092297920404748151162551699195328223679602597983184979720854096382334087076281371478759056018161349225427914146722767253997587350877896625377186157483962692590984972071925172117186862524287326651841574242018558880046035731490144745073371412245084721147686350387965582437143233868240093985683535128645089487318156891039037874866859449076384744789730555996344982969677479807389142963878740695934357960588488018441366731904953951666469024281604870330725793632765190127434274290374933217243492438837410162050100669885493015282516834845723457928582577334907824237432439143196660639869561864985436222914901074590345710688814395551811585282483351438295237748648014111984683271157620911822079908595573315545213909147368019447850545807550407478762168127229695028943898030628505183293068174239233771160910322605049441708820092986104603349557892054254786932912098261493048140496790535329583949765519452247946905053426161414372743433421973103503609767640073099260900399149286886677337392798565253154129225509728140991042635250479092192250528302064409748455095854051354118856859691714969873327689534385957224593973506764039527645093516305585692271048362071530992425718136276871167210938278411362162758108621922368376196399835636402653447797315204257965228328629285386831084703248571894705226314281949699358356751502207302798503316583633854532977625119005218691462591220588514872667388863486834318888854255768117166559107180332377362553131169616685269549292699724586545998579426382993558511335120619178889839870002032056563254324859162168997605043277558841604898931038335430989356533768103773265728011525691608417280114595970475460862340460134250651305902912626192992993114339433772817816075778707950910162242512030102894350537272290997530511873914419595692548437375386329769313245975957708824793385926584783265237533121385655260083108406131750992427082471758256112691794148279372263604358814480114177593845266742976595354283625658517211656375285224207062073571988869042162238780485538718430495090704663093697948401427640072385693600859226564983680893419787937834560128186342969471756093250838912428898916480725585175481609854908802940196921765869645004710732110776812802554409887545530974046680742347770550760422532779299420806853148427073808681684129976565560561501368042592737889925741729941638065356280704603405417202540932727145320472120535468827023079877299620453180586840790939347886848446579409881945828434359171736527486624637162025679770417662237975011443403482634376244275444213917463591586571696903085950748356652179744733218021156293458883182794623598889803325256246104490306394222910651696644452657297939447333172668200464060570119451354173708414914359789158021904700581944199960959770931091948512161582917503649125380392715364649977170677243491413967266392633722830007078672427342654750417537267787870339479861278694282510257690182298999605041732573282155700864108322417298914584270060563783402301122452511674443358052388255452237911815674100744590998532928337672910998020856030357383536120809933420863225392698447204772774612152581128678472133780172927405020736369508690970370358724273812732848747554633109232925206102911515590332119158004516766200693931797095056755790376323596800996397987932784968874963225567460896219393484679122044146462921866055557447787990118783411172411785687118970287024000442289206701257288102372923558660325487041670215105570976746352532482928090846093625278824322126098801018170420164544830649768566596704746152914197838033604726360674008014174508108971828494856929493763863366626103999514255602057547561740740476784760813684843286972440395550781446089104467123591071899013906131032042051186089267910111165287162228321389383063211727334249289231396965018760380213618069806813665874461038840534569842949047922023696622451899302894186446551652105980787758930348785561215713006132622527452513846724239152939529786179565179863517681269813781883260885576426321944997068493592541173158769782231137499381274383501748027526926822561816272661868476455904475713068813969690644747076712754861041306912346228070430641016217773609206793207271691541040494181958455718848223767002230393439440663010110713200178040773696205310026014259864418445310876963495732940138473497518239718850284652929482916720561270020660825713603644248539278326382439859864533975609791640802401245646203911896569888520405978371422840032937723420921063279019838640160234384602565237233224957736315784960237163874297135267405820181055105044630000624994225375124342475651443905116622435309201488667357400925686622750648428375668510304747319400914884899024058328774903668155835711738776490791790934699678734178728305695184987907763642305325718508593906119865468103613666147853230524486813935070737002990063928596372657215490344829218788660550519066045730504442978934919044637631906225201934673646870238558926824160497647327580989431088563480895822287309706729677927892455846770687156025935080071357340033458842082105350947634879050198666916563137866667585172074918807562144827369538378214485205225015592045464042544391679325452333550141458842000803006727195707448635509654606442691288185471055637103638648827290569577035633153103476692637569902034688419076222233477986379531584673687587704104406589357949810455360946721962198863400195537535899981210234711883898552037756535160072896959220880894117516697857684362530868938055072362199375198346125142988037415246873745225115728130524819609452663903187049192962978761206463006464989044555793033073878492362521243842838595280327286672819322404977897944700953158858886743354642465709299908357729513021233323385472134524941142444464695618887134976203002112185566911621618850829176286587238183805989392616619147179244065763228747609564904112215832823373907836033542832550581597610488119622674459928533946607684192161652798758921537731259302692923784717989280311813125423991470595852450453076449130985185721799268564497754829210790620359785890318321141899442396347351929438823743718773352315333579516349931218427318528961239362018688279108795998089246877793899549643283761664228398133045770140792577794865490539953043166958979548447932580060651551653526439122150451982384376488026875894451364014239676148078513556726112546643406078270054709332110465260155635257666019913775750345354451991389886270645373436966499878990111478380023847334807264119288097163786347214046079550815098855617004832820892660494103897389789099421140116108340069714710868252490749458635634458487196950529532780856345802679261312333629153753737383057955562246990582187395513008497674444178008542996309713282439335394272196787220594502596596015939090030546565529027629445677534050525467681182109974629490611884246780631276887231140912389975960855888141913511477870095113954621863989014522628002000754441679727819488463562434499475621673547341152864095065621918772579338545935907756960292492521380310604973042599581549891165796942745413251816676846139632803476167603082479032510771386874275680388790692896599307207518544881686049413928977235532531559354195119552235744522014188179444400698896424076867888634365515898483083263862590203246294256736426632657686144505605444850424859209886047604408691645841818050910441291289342349933823960469446619479441262772944269787767476567862161209719047987120165198374531408821148667277943189016742442114317495226063357431156523486494195431587618553493561901450272449546052485284623134324211480485716313238141067125793914269195562730983475832469533831297329788426779923489729416780345767401974759813002858718030468922187792520299305384507829242927869155725880808304182094337566422150554693257197963807165964561722196267941947317460819080686704179399478757502407251665065443608709068136888862699096889852910888573952830953862155253401208242003924630286106505539399732430719481814849308648340618092887164153161964453548110622553060817585270673929270040457927779701511734966729317340688256703234946685113474109889742418918372444985298382927572867906226797390222483861350157087353153072976502809087697555174029050942479376197883496486377111015697794814488221083482698971951782274226661773215935039937652744552457085294844206193954332306563652937290268790676452587426837438372702557206075602538877600112932602218385200175503499507491068815338955544831343451945468161932436152871392273621614111263534081839690025556572930611266402987916669317984781008245931156568861209762711646422210350022022119050220422847693810024366238461891571292751143847954711611640808358192459767955349748794904197199089469046899360610599163733247558456797467891510018170450663631414921950134451390240626242886677924920316971514881204964909678343010947450273442480599411343445183502916416032209312308486540585765722484525419388439671439565370703110604666999492016456059504689032915278601459514576892827292817810515331338405215210048182688323456293263076852325431205123939648406030668442537300263543304218208145998327332883021700513210391351069802844707275500339434254877230549607625271896959504250185595115651847308606504802182005066892722230153904570218260444996830626793873537539151195953751855029397457434954185190447374599158987531212670141201929923823670499543442731839844384638619080978467883247022535576794347257458688079215840618725969698143721024099977177188819992929151653676366697834869680025966075585340207973082719153562856256846798953287782013570372181716129694148533736374195107160426445121636626316899893267771851216728980325616882667620800687373029596745885503485937632085446249524134349698034104357346353101385509147470899355516663544607647775834108827454241850795894143930083201658189023888832703240165612366663955999498062732772512893969088137696400515849384896731632291778497198221268545370879977752574562447695229718548114546465173268494195871097295150625737110086783774436864462779715325108231405000864246756460637516039003556732947513748338477782466988690559039480567549609749836959756889991134339469556163795429851592335936537086560536704229051206279726613492098559371059469590533316644696853766002892205520448225347296313124094997890717953212360573546884928965733095423750800283500743392284103041311483385976658257563476891572452909005239211959452780043982942578240023361097984151646786012104225091757720864818133347105209969810330979610150483398165690657752494045803238424395719733060334603505340148256520050015447759852309021530703046039949037750066150025606060071525999474561617132000060560144852060469813974153927976918080114615078315224201215866298948974655674055292162514998485917278761618381033633661482999552728718656009084182980797788423760417153134842970166763141486407485421489299787486374869757143455980828558103006205541609491895788384520756153996409155490212859397146545414640591656155034187098057780793127436282202599706749413674858397698349314798332278438774356951117299410522891779030060790684000355233196491112416970587720677483378755158226449279633630127177329728884337497498837924592923661446899744892360557822892417551670923855432111839222285647453897092481920310440842932529212795092911493977400419602123311271460319075502465675922416418386551076078933228622037197651644417541784168296019256330667664129463601359119674764087823382135283777590281896757248209724667408638799730520933522242942778773397657511068239246672573570299896944864030491017553052283392759408495703526033963722699540389054983002860536195335003667844114716035257805422413735947396856317334505208207686088139404128362083485999455358129371496443125065838508415069212875031570029399403513703734945174380160624123874713056570284915639294010111233167960249132106523155531254866759953851867683345268808495608669607026405071160518498598387955432088710211157566940380566392797876191781337667454443031374457558967657199027628258793369541088357520056815140395407664324949761443939616634586152353185915659852297674887805217665158671016323550391937635800488557626698023648415418827242544623572940379733290428695650196178469894683880047140536527643337876478749196113916603669076667676570587084188715603482506308729778955444129507256666126437812350440511808637712865830556707683537654846374158690799321245835744095005178282123600719804291185171188148380946936761424745673454324008723510026803341208659443085014632088351766550937431931017908144095901930761444511475645949883316529080714360614809147654849979724882948290022604985395212453007008650618986210704652989582423706232792871768879755357203998626132325340924615629633397106158504292533731777467889817819548966188708181635214801466932553726033602053992134897949320490477594815598012643238922217826062669645213042367480196824043153718966548014960972151901031449638755402044631051062699736603881631412483765663731317175681417928807396012261207174925021528981514690842373561208403061334448684647545727914143998320862689080183625081644950241676065835206167452174328005910400458899800490429918972325432688758756112083373111529658259374810350827512638199192272862265517468945900873389365945293368826754433198995023095653773578561464815507204759473016726773391504720338755171130506971104884413117618038778804891256124499363581292557738849614503400852861478294127417932600935407071512429015525087949168826513870062504744583932255352971134171190754145767038418251460000870593150342778610519769671381406869488100004335089422566699926514240183659682860957117936599413576087047191139473506758090297262569263045828631281756422840324687930743734947507129940022127093740034138025483574867842929414858189172134235472939243051395336496425195700405515068712972477847299858814701929508320826894112158932424043669369194234004876499254506149229738588197345839969336643842969400282894357394337144549921000363658516776617379794437153589872306518214195463128583734946611000922118340559526877645132567753005038786940939425770968990728667931892515250937619506688093128891791696206688736705995563273430738769969141871777776993178709146936303772061373009521461937316603428407118897715013631339350138216598272894755932464833197389498909870464054359590783671452042413475320315345770302328870728238980375063702191878788033510341687057633926889817745628925622995926077686721021372836351709027462342612819083349578738738363756959831949817932706020356729755558183059365875293158776587553539953269464520246247884318059761126588297149949185385028349229332235947113939600020813849328996038066952228526642983889723502239402394491934383395187714870586941033449551636293623222132371296725348652430194608816064004889219777625818123350919711267821414596543946175901653648039409020365516039163097957110755713087472610109877252622576752530801520240570091251991982703143267146032788728190000253709250357686188250650711751897788014787995833389834737168188195754885123864324602517231190037552592909325428887406911293142625355129039152299745610180776685717094163288688689371928930509739470040164293402875223966210816307862902435401154087931659959470789410388005099619417720930426806826626644525136667606650779416917822424047883964415132020609359181642464089632428266642568142007351335942905820623016141622827645769631604386119413093696368828118542929484762202522138203927714142439877935094935166409459218597457281482904057225040679273573940981340347292226590814654802077024862566207669068071552703664707271104972432517474607590957190467610829432341285506876748057098533272609330042225878466742046364608010323713200341386933072299640019858789129621762730727017969368226058629996740420361703593228936508069388741045902531684968224294795497317051221170724352203569226401417674233849881023728193870049535969148259824515849501315463952954301852867971282993749204753275092443958273029481274495397999994775765312991398691477184825961694238209132065631893932419702865192341864594402213045750628707495851731614163400478313477642081855699217840875673964879732500656366555248227616569158486486708392753387974488028847505095393938252196254910100676294727084260848326628249772020024836211561964440316567781672944904858993689495057966745473612933149844996490762444108266143080417518310029407898187708236258922117995409596668058749922733057046109604991064123378186211654816356724283441519744040865374108154296310520213746563061348648257467534804132643943926479322534786288752677018316258856263449848513604249608211748487732929806964690455081606754988789850942204552475525608084239880317656701481082853478582879750450958883848739112458588920530332779339738014738281500589871775627370524749007974187317070236932216123232650895774328760761081350102669786128121499554163090164032979984328944114193240517749978437171004524209342878694818874817009335367425005358348196656231282239607778588336797831385240144679371744605276819963626205213492023379412185643738170618305454824880519161031578358973150914213011051916961796971825947227801255803583288701620069914468574893736165680782956371315460966116329794525715862447101604597199992858651948999463646748317551625671019388910338118710653094142296690302842064612758141549579565818933141271654372326105659133074825401623031551494654219220947595419655979459632247017670148698455255764907062699775620628986483104747408839671583615327389896542787412722983627910927083463318405927544999432113261593287220078043458898554788493821077702925343260589577411102471654615016186083300635232498824101162827763709912611652259946768413634136874706360216374080657081285490250483307625072992016653621185551498266887152010143130771673194206616443980240787532858162027471679775079355670618951611992900781734248173235550536349932017794637741125744497981830182674259653078964636649739932652249397519321302891579240207132958503882635245634176779810726867298394269844309999456001922584061372839406151261682904636640019935015834874955003469128118363816306817541686050005668260228011807880730210135676639180102954513119506537579605949082942599740989100657222582712274759181978362606235682576762434171260734550505108685618669256637838752889603369444937884868132791130825722438998421810514299061192923440897541993746547216089782813522669748220124508956551765981960644345642825787394429941148747162656091934778548927939543729680892495149620929622739028810754990898483682381091656743236220231271759491582575988554398845611492501019085588976719288288488835968046633295523759110749660269312080427254519157356472687311882004270806581620060289795211204130494132641999709994237589213650407873947360015792626363868536338459321439487932603683772838349500059297640809104138506145941167719230231731029301019217518630407248704083816911039875005514687253485735975393806627134942236967099581587761677328276728569961895036414570645987012183369870783134224788830620384416209275207827573412393710099343248120391544709668508405075770922364768104407809474713603528925527904426581911271516881164140588905454378263638421626611644342730407543491142703902443245097008716249825116403592808893225074456229147594756317178204747389819124001450016961555137975432253698941503368478513618554408377343205666349339967216207644119631367035177259923575908993315980684342409383205707181512974314852414011319963955447414277221198770351710471979793135020459388005857377338493347504223183412799442573780823459791819819432166931469419083577868694736881305655276931567415184586215137034774376295575576160737391059680604127368878406416620233671055824917741356332256519012444648623708746878338284636017064980669031864293985801026456250776665027478268241486558883428763822101399513918944316681145583244510965879630403789827683707327081615373644644878454818582049902397170764590634302558056618872375106367235418065615289077815060797111181902605594282497948453295628952160460415244133989505817160115422533472432617983348079880044066232835953787425381132516198437180099243183095412081365442709221476144527896804909063845638278197066848239522007801286792795734299584490407107367042683099575388324400231389459787070614639210129959423464000705816934932644906518775234326704591278726066138163193198779808167736736811755657521098367076044475787595208780413086172082364234052610765110345175828736715043128950149512809779341279152775736192128953256546467118950298777088931887266216059962153830396379407619871242426550028098983222960491499580445574726101231467565386461972566637863123530952341629037060710356283471443983496858546148386088233479201520653240044145017621004122217194122361918266074951663889005718403241868800572250709766761228493088489309364217768062951900317532539970168775740369828578784279117147337299043736943006329098201168673200444664993461820168423928708606257703903523356499730951641484770439056889844317766409137749244857315807686630827887453111115278793505175983566369210145821067383792974440533866939531019045626166898151924366001257965650970762682625840392662943057351794693191463780370980375826469831243625579639516467155132039990241711219790980256515552609191183826905681539553095287354081039874716752819439033606431777534654443159980398746426093671805473981429880511388454775498699437080836715144378701637324536025388136918140462777082778504063467370728946161974188785730048005094805546252976579732563055723504110389228315637990633495079912376995146868173437910998199406420721066744922616739195255877372889817087617367962266389988643351385380631631502974557959625022574059599157695516386673411480996641269619666315302826073753227195302735469810616764268489918679203289342049309818549071948375044124797368889330224680503648679930051177440612117302665945570572793444673074205535254143252908135386864551171300461974098812926521358101362835429305477499748408850598570752497834401332619403031307484829053795867388779110567669067248813534671789851200613374335269412607335521702675802229294904953363643881754928676115259905149958803216022189898416129501376416207397965496756807668984186701972866707988351651703169076900157599412098102519368234292904799704205078121127638804148872634820612571232680549527160193892730656151530718632633365148455431208557280183580610320888790909541652741670053274147211277136844840658624794013397226942810282165400740710276684918740438598634724511615374313365817636841206325607988015713610655419542617833367759165288532186773145457106613142000468926928227050624744231574643075557816764250541104003712216122623946843767152607335525491774283960077272355776075389287818019473804015039841321282207405530666281384749871164399336208264196147880333855575858564265369009532744805527184962995795597701806775686967686211870810135820204857390562285510249251533600521631951689050255358929641349837018800289044219083785759961132053110454993655425474341070844538809787083522245149170939146691540154267544029831570365122825745169550062224381852843023342523028143208031502857590057356471197321941381124888913916543462248626984144013102444060302165152552098807773245532381457367513101847439212347502584864421638733244758744637233519212695034180671160629704681061350781615908048824707815278660199039386143392881542626805758838740743815493537973307621397536461189735295557334285343389391378185974182153067063743006792229399260159661045194334942258789179460130298514912766981684360517697036855684626610241539259053043189497256472093608253246038210768807461962240570349970186161911021723151121273302259685980673847364556719845044829373136079998845867601004468753529047231193176151269547205892950643556138801328688617884666521531278490812789984626777735902201195776649232128292633943377093154301227108112208082776839698519846846199374652753319341660693264165378582293940923147790691001534312298937734016386299432497773452220357896990364452528285297400316146394507363265022138228008283902463128597769899840857285683966488453952755792457359790545457272818661039387733816912560360398285934524378185443108179902079045689128810392770209197740255076658561504687038767850503548767138054004042518942500450062999162123183679686723671444593429544733829621999443210425571258556950763971895218023681452074047847051246969506693073502517603349459104824995260974953955981912085427218195347483769541220891584264814943364181075205866159865485081222410016936520883161095971359820871158792861825075525296872725418326731748674421325800688604132655990253079428874976236702748538821441717196992758998474410355461258010850523540448200909221566495148738667581118571630835871351002397848575665591446690122981735046925674850211727582567417430020839077148217564875332285603618576424240141051316373875496168228302880563522096819970176441221642094170757676324332091620206884958807407823883331287293034342665083057711473352474264717092255231349291405141631025167529880792113190839925395231227576991353638599966433027503501499027496470003297764128909450386514417141290842455383934620930892140674087271745927452003747985819859154606496138262260952371674387894588604809240567938216864755285295934406355320883845918024300918545382068776582046022869056054450631255064140521842222847714186772642084128002735557410856865029833567940871822071767146078113058941116469750151488756512989854665508730157752912317331913262534570775294788428672853503982986514964687406198425546452988872636736600706049739353555210425104361298511689529829405966882160195802327579960623946536354930785895035466471149845003780967427204504811635335143087542408331335647025080570527260108965213877716958193389522933479134397551120710693536463383912387328038873132778593847410017677361268018808456279023839316029698552657825560228974693887489282088749026734515253889060470816556800312662884917286491384638695766475941988278129039531951618023165412757689380232848260403391579954875499955389872810882334086099933546032226317372878644858480260500491180544248908366158407057807220497869868909781606044536820699888417693332014420701907007937015818371742574750508570185549113991425957488072297729323156206249966591692883433253177194935248617895929344155745506450966204324969042159678336213493221755605704092971611220364537926421570564419888289403576844528424070188824200972489288450546287232532174151083925224191167051056508779093016494138014222387544233394486842526240492753345877699405726032169800941203086122850710868564880805603171548510346144826729128174597579200986019805733414095481510228554046813248672677570033493425834734074860201731688978361810195270376196256873174000407173222486229534316167840324463091782528543843733262752882468828397796300378765601285538531395172985076503790030793681772590905289164948956891562954010002326148104580413323408676777774393336010818499395784118069653737607178776773206924098834817402486525788559719608232537364894004988334342871416720482575808677224937087257387182884279928887032496801984042814943212405935273916047116284478292027211138737743761436861844205147059478582937625450033372620547685423228333946234680649639965493720105397597064192893080348480215772087407898184424268935184055102452191932765214066692318923959861510951771711110680219069358033260500431673228522866912143755389436008672218423286238668568178218126153356226238783258937399566183988742289579257513048951001460810881028130008771149898255315519954583876048404807422997372022972446303044146932027043316879946720509531037635335501737604934975034640568904733271901773137497209339355181761058469369221064819324974695998134658543912346500455153358885402200926160907557606134489135933231764444388806702018849498572121906511119197434964533745460222024880673503500401041675906502304834665492323384181149837072998711028068694783797881518527333434562170684716656213931371979278091917047598408465230432143606707067460598672128739076996953631513741083693238900500753306862580652127732467885495216327749780160501859042401612902488306819324750356941864526678738957258028890005913551033967223610348160609775220906142631684148373665242068124692757449285914182286367679518791231812037572199746442316619522261536330117263987117224426357575833341801536501998029336299424815286176488348977774896724369695956105579982527732446785563530263904862461459763516473842574301900273073204442638052874019645575612526866614415963548499629824130343282054904863247162666548174416594476080392710710587899815272081629708152129649133073540499394539661230565893432404145380081413265236725104776806675250163827425582339341821970862455204158038861728519091582502201136008768150240612581075569963270544551509323943842588469467367613738140661794980362863887492438491354692606966353295313452184326721210439974246658573637482321040965736639337606422144583255899298213493196265627998665927413241201160375764920086375014210301727854424830311947832037234570692656975516790754180274092338957959069407594632007891365646915029520957684758632114196563318941133602070541182747149234949211431356450149372414396070925811525991939770838251018987916794206888028623488635544930710368807024057752080538991917999573289339375238699147743758005448031609655895208248795552330240149365755058418939928698539951312778036033407093376942012150017566977620902950061166003526546891648294395193939687930355509383068764164939525398140807348136890453104527814014157827299830451611430552367681917763650913243147978388345821655242827882569669101532161387639520656970080061131254934281054928188574029529234368110220201238426566737334795563563894856425982799263084005028365791166359981650355380377476452434790056143522602771506105515141722682047987129141008627444878118164038338187852912900569336889997476791657571644777276121278973661932904353991681428929329955355220633676655732915733868864370064599669409678558505106454101934496727960970460914006344677360913092245995559998393397583191260124433631937077992892263351169083440109503268504500658449706199685193330692875679320428727050885458623848445031864136121229840725083263466467756062901486327696395704706167347191518306133319052000803758968673879399877542437592608912475285670089782189609337486388282435777383551533148667155813280922225881776330374472134646779495033187364218254146984152167178445902338471527018571503178253658410741888983529436628989320488814450181256699532106902185027685989314606112102870164791712697533293621400498334898936564460933626186361353910232375505910027682575449427312266883923437623462596010099946296078284331336984465403007229841959895817839788368034012046604765418709569234574449613189993750502298730767031959171753598477567323528570611080319195312593150788653418010234738185877545578470016533795648721595368261613788539020303308764092179917519178399685693986343946655483847112046039090728191330772165393061070199055800063775436075128170229216204932135066186282451647068279194287929551210510987978161791743877412526416965133859509880003857588824887378586526738969023382561181401862197654225168135376993351271693317543535882798393811217630846323339160060068516873146858052582387142387623891840471778762343302640904347871057467678654749859862409184320807470842925047336719168581490378653888718224357542080078165097792672651416367371592727547345361203333326246422756721139274394932036174076951849701055917901785833115018034658369846552444131580252722602421141120497592086766509601013874638685303486268564073849722738582674068935813257645772025342668245461818662565852765984713249803097998022710363772375325037295053789487869848410102324357011341095685312090798242493524993208279736616225115662694316882854314235244455852246930192634997497098227432849988897800777859493153346845615374608716114238951238068929799019521636936643641254544139596882435468673205029131433155573214686545804902941308974896930843425089543824245061637683858073296303608277804878330218918933444228639896737539136695041690181861229898133200783788989673365218780381948591108702006165404406067767655386780530569772276192690924194057394290382301265187595531148849747511152930635198407970535420151503694988870372495815662876533567968783941161555271488053804187337336172650682695871795493645405134935927149614135257071066183205800826644567461820918534988248751214541777994556647673640334854509896282974886515974508966962419205588197741949767659258095294767932698163403626171939554986061427984281121527473632915718160338241446737744793459554938180411951244126334021175942445790610773976492395968051614237181968476790853093001334662186949477847060314763824887271772848311270551678235425312633906231970118047717101355498356227380376623748362258103383819044206839073934926689656820520269634801004944173072320711107835404842840936396491145021813297509505838487535499824786362509786653979697806459800643652678934949209014982695152941833527104532406951064860465237401180159408657008217002536154402899816721858926535015933641180054159926600361214831603820378626189351984487077554650356493244182800478232579142544967685323345086382977218414586081789026272833718740133685115416819339876546628774101686858053013326517119317149980882342152507276820341231445132231220977190482475941241481278553037585062992999134889722473284999107814047662375542222128424272363565132153026599925717383848060136160768667724465868145609523074212665699021027159703501339386248754997809458256304236523718513559260707668067379539747505075768222607281482563037770175884769105963813169009321364980123502206296219442782734229777850229620479323944509067014675184622952187501587271445631513125824267393357331297346811818946226398264462489608684737635377101433840610647536473263726495580594895722590550816204468638411697717499264677262458716506163111960171458566449478941048179445350585199973026499126525130491292288940113988316566640937221848002996337264785684629090430771121264525346891151212461927055550698402530822350791948415139646756372283006427528052323561114439773273460978956331949199420587132288633724545781205739065298457510066757963055867360647295292983668173384995666069545295572601787442856248967520792264216475752995533575376086540581386175033503196174476027652983056590001662180244518665502036112399420050756324592774143591792458530669628205635024706594754650028911452736640075696754961993104981666806982565105170131790219210541917591709149200532013196631270126635949175778805245320554521112944713341336936557369453320962264991012841681632245260659081741972350113265379316195436291875257485931066463121730756644868620896792290189402434454062501648482026689346134078107103905807035539620139795477482163635207478781771507998939019996532408658908207824524500005783607924233934545793847254250587493363449262421139182746284331540734560748449253118629950281572005767483530161832202764832919417652902847473655395926942018000545770911614023428905057479391256843693167173389920560265531517029351089922014223097687360533119663620001234423010898398286312657890937307184334013069669865420966314551781355901323060184624249850230111461268036274706418633217340656021901876973301377108842750800767633014512150228254556697703253611999089290461852638183220882710715954755532633166057961706436151797328322411722437937307349875542718584221082872552916100823728021477820613145934381852820457471151754334176287233945478428672579333239705102504096031441852259961773036176206057331355599091746721875651713978143576029758866598365541392961889724788584370285249340124112921724187136002435128316123258100010320135416382125714016130347433214811671075910529295203734782772583884483183303751495275591658588230192616946958293423768038753892751402817684200509196799962106969051639304184318699652813812912952046939862957429034105620321163524308517874759552438355476429258386004029875427848914833783050236207142308522785648753686205350253351085195094052747535600597104719002829157407646315167105846413953958737471844054551832982589316276273233145977651243156642115502290417864015965044154729013319044048246799420099681491387928406061336871670170647662341562609804908091976790422357446864521620303235779677077076880932161872972462341507904456774750805048474837995967398315997601082034879251573091133455284471964009569762933350831343198357282090028231621836591027727595728359325922934675314655333232861019645302061465920420507577096910279715816455792227688927618996866712791339443314000019588841374212127274269235216854675914494346263507427654083785654537101410907353609904087024690407280970001946398690222533757749006353478052820738718151953600763159441747458178654205333246091148473267292857976344029841348392078992283923907509708668015543746156089475853423661973215763250347235177044424781617986946992407727053603851221525359612257875191622542962958500181911883687890429105206187856722124629886681227597900607832821378357775435953213836561391488884664322878165185152364939772011511564477499132966573978594964958055758156791708765160750543418408147296878367657874093496049366791482025770983559860084880441157899385307610748136024050433638311995598203317289774710534546431457156792632870237370411501783897669287513262171968449528409140051994900219735071246453211369020086634556121659408749568207327725574019674847347453462139609736607827759065490295792537700575765070843680567885910543101235139999333033784267095824376551473606856593629687933353785045501577346552839135293017812387038551424796750185445579983675464090972290387002267609784942263470255902434592249767468969676904207769831794036471134385302400920545485280467339458047681651510570783405366839530419249722004584041632053354172949573871681175793341248894835991240197641949854150142956803217503918686077045475382514616449660159730782861526856586991213707876779794042586290926346196800505344011995428122921243441463946838926965382948043745629290844232780040538795173025184829914184671994318702895240328555449955180345164522965988717886880289321491540834869327107430136250211948983991789564517296562550595840636737524298977326377119985251255330497139046920827251881289353792068061561611143155397381608396815987658979424768135141384438656378170858176033478233003557902603523539501807442663594533135095000463559970493789319512251167345346851945065470586515977953533241871866783428073682059980053529842768452260210585906127951238122416317328079613541441009598380950753363577650991965525075736159224789800741247988126148631166435658770259102805267131690419314029776766001841605730076586732399682355555306029731291620879214433669011492237141331421170490966054312335886244115835419792633361277915097583557153444375550222016081013046989103907211341626067970975635296076223575251321528005576381231601987902424863447263697984057286544057588333643899247823115035384355102344187313807779471365206681438954681905242305390637836745583711143982736879042467141334815645968664978154219128792291926866925617653168481191216231403427610832090112968519782939927984751595415275908133475786687812793410543081688383740109008602010579257082903330979053333707673055667562151486800943445763557552431992371559769787683013333663462175852550201581541122236233112367722638312939057015976119002411674575040315722162413314153998566811300821228417610419644002065102491437929731857650483693535768783831510338556613671694872287495964221645593239535335249402960866774259145137780732047498454863571405042077157912071224599887596352596507238789342689034571922654906993107202056537330180085870694937458200977036224449503865613683816374841809431172325771720333677466267607791080215248412596794760433105334453931272240721631686844945628577311777058972454519110549160120474346965642042692038217927706510783237587098312498306605466667922153630958954480461826654219011200663460812515482908617549308828620610345393877689676133797403177865792383180930458082388679375599173563898886665029185400021018115598039758461275310952343956398494308454280453046112474559366795618840524965195046141364857925868368296251751308860045047410677185038565126598528655940748815073180408957057116918428537294245805581595416080163228205694686043402809941640510488579233232170459890370191293255948963909147303854591629742834784993154023140231278513609458334834254749965511990437124567380282721342972937648940747480229771221022039566149871850930664088893487711574212827754814427070295865495178227876934288345993423614997826353959740867644824341852490564260160783293196258664620409190349345311198577009548367597615127669153405861488886831414464019569433340014798491067676994027022505724944416211530812491346315802141536119355172353173144281053945414588065495445857853204545973979736187443072932695589169763195908522449924579861801830367209757885326785605916089770195271816109772954416711217743755508102228935855320346112302553366356320818875810626820228477688774296173983450269994205145438290393929825785938038429864349660451493273309255202689248086185650301666401731882136507367057055073882388727582622862107978640239335167502560021289431236940714371658169800174653581971633215525146457666583565418133526481118188806540512255892499963383996578719508095180958210617126531929695748263968475965628993249398584968418540398102057573427575519885802404619147344738122596506167826441474700497029335778586946819958513753383869459184577890116420354025076751721997207686180711784131968199424691078436898268218937587418995149770976412185765643555716928278922291836134517294346077932922614187577177981499757576222554623711349780331124053106610590252673074704522058373064538706815627698622460926288116089917549649761828271605106685076485955547957163950099387175442577696386625627083554663052167795467396277933688946236831406979042490339011371628439065845303891956807665332161598320690470176085425963955451213585044534200843664938293813350864986637068698542363252268631471797496776135829097784442085041285175047286957814585702597187006807906351322044072694864748171175956884581016058962614635957008371687229323200804419411520120584408198017634673188241685903886320703700063334949750070686631898935922732465469452533337798367621478982703463415788363255878888992563198864243994638510930898944129720260557182640487204140390212256535927101690659674486969591104474876899762166213657346175380693319456002964639651257546688611429018710945014838495797261786125304540534695755683321369787444637756860881204628965922497786664762362619848257686688697308391548548234692562464688281236496455586684028561200579821462458069760556900924975058180248887756376219495748655569579211569594169324313125705833902470466377261568164338594384985423420201648338523639299246454391593212049215425994633742338622065028336619759499769719171814176111420016855571586801900464534941600440946801247996636342188428557290966145265836293233345956806938052656553101558083696524580383523825724062226523441872012404696383635945413027123668787111564647015618547429291680546052885246821984504990633384039962771788182638538261345052773798530038772964519551599410181412842373429871187956003357864966282059966279230520062522760590276909176661599901670017497679148741229341857252321305645316899013737666341803093773088361134525279000742265024060294310643421597403419814857955653274352808155248570596600789930260332277352707809272359448225368026955882705334874990151197275827469901735549979988795903532470311398205500694353031565163300210339207149025187718445085272211353642503340681136532328951277303716327865143974201405869985935574765818669945676802436164847698705738027520170221711017302799072502009517692276584559405380656527086468716105422917008369610768815654772700125012234545887636266940770425645088565853525134172969627671136362853522061418810452600954880575982905711826502738457509184078565875006678055319005492633444382102904212585673609622327238049344712130164879937831149888895737969288672748702114707011536965804830191159195003594154893572418108149674927914172937196727013148217541284995888285155524909275175932136275114965339111978694603995691037002644026153210570978340379704808821139270274985048717983581001446034032936794031731917033364620327514381578716250312300770803680080605716675437377719724338190053210754528282437347450833037472944652054779806279807676514962172625359572208462059529237552649989582305434975985322400018930647477973879412058668620795889456506751785416286412985540916718944249430519034260658368796650663570468244003279718874092908170465742117824290822209409078838842158931083466891919295756560799786360085846676148284869594826532146075695095690312157063019845894582152736072990778519966120953222312320782583990025109428459635316336227965381442058441134910283920263595914641608730704367932003643986206506739627479672068660534215424691806774579518219052056860509616970891530319685820755463798127629000758184118234630237147911113033980696569813643427916465033363326100818838567717075961113052331589517620641624832089298767797670838549006587505696406908143561222071764101873049910082232341985627088973958053582542738164330768073466815155656135844748923803651001522738332342256054895650243601371919559170687372079461077416139635550197442572873750127935830115466120881188072501738801991841473115930696588821223566046607481580463384753578667131800000617135959207724338920726166279219362117466990159982426601979156460727766488457969550075210917524142256318696245053583614493752378789887342135830519791941760390777181525069215025796678431665527854677328227725013185756359576096173204632744387923690431914828933246545875044322894047162646399145300372018554187405593517803783655757748637865241854960225240186603577992226165011799507017156925606015533880766537326072934884190149844924553953378474421840194585518112438512923926439976206701164668753973028381647258711473301402888120108346941878577986728267474015336697522060130808648356010885583463720384631272357252704679218995439585045166070085904930773311479647856466004179027425236626765500084084584785427853866165665761451615506742192048167818399876617353388486151521020616525046471458519388099311645193193914702194243442650734341068485777509234906317368125255881894736904559088846270071208805616242316821704896405962738953985491905864729148034060664779891870857398253283781309489730730309205222481306500575392960199066228579854437342487318768848171916909739869726848272980848172089506725085865424657799051500967820813245131453744187197394299596028010033757082039746940983797673845461897936750620499739954177591347604203668690655388029718571970368619172577459011590172767132839825816992498765418803412496049691136470663448217949762377140715300273130297968522110350547779438017484994246396657896983211747544970821082089832870992703633500519210359158766981530740115540288316371032322873717997018166277701582083375372028564992938290063941639021824235290723761762648858661275715672758953540547800581857861070289610252151037571781364580276603931879065507929045111145191021826402497753796282420780929408912523620978607445931744305775051282639327639266413684347538612935570218562644631951054259302705773456186165989241310009629654568151128689692070861118646686612920499302428498560277334764296416859310519035541523198193491471913505699292807728733763584821059487670940173261939406877101134170835263142269061887168185288693864149351523003321326794092607278137937010122978806493643263713050245713908519475393598477913223380753457205218209357711832590785449120783669348058579998189054801745763166392587899213559692336369557179730656028283558681930876516301449074579579316005877741037365476153845701867930592474230607407613378886662506825642103246920030292329705880237694714399669631124793456562562069871242996847254776465227097198122662932725124449892678743168816148132604991316473847166779902720587721537859955460763253614340502808483995512109136003983304055951059047407178178933518347933346266522514253095627498803642834681928067037289659419211348281810818319481463745599534729032886280251033137787844647997726155507113435004325941488280997901044887763320233356593945345003128416226558412997449717274428565759060903242871335602240703210078610839842803222948870141804324316181215295362790854525306315559636409424950881678436483107982697408690735154675947352710622844061224575607297775227758570317097571111964205050217969737552743715185540659836393477252154692888832535562414969328216955571680594372026109618733954525406144891872416622082238958326454796452361868724389251353423400289283317744690927434981740561568122511769524747251057640170233099354076334917991072490825182391990413312315619500814031991829258791578178180952537904172363581361664165032796313847068840103156676986960341357323727225755890763548902959604766634988568194319338967049292824331904293975126944080395468820215457848354558337698919148322636723900396248571746228088129161024332491230534965847083330204249564026888579380668286882433606100164129443187316688066283051415672980165736019764779711610720484296123959126007403671099171021906408067219530087191848286415674369223930859068082803859548648866413582460124593500822418395172265994149841267169033262076623408810615957114872522312132216191908046991788140141248055373959045490896909963101105973812522409724793199308861843493806287175373761681640891914269279612416061272644544398337391585772004253788467479372973021779904972598575477739299647374802817083735204710870248811925213802737487299275715376026294081763289188759223549775136936659605747904614566698857773745855974454425616454739076913434704721339597655822186003201212365826264077169630587082891922271808930175007027215383987926750108181618623826881789079106534161882609129007446410612914911780602453430452085107601742507968361625826289962081657758907350864944515031357368684429354294552181814414164079858323403274272316275178782318226293098088497414300120498343619831705724598556960132997533345465036866294152269242798298470296313437019307569215749933148113199292889511470921777353234418574869361750262764599370985931914540118447281111510699506348809102226126043745090383377062100666389613966944525339131491868885835699006915314642756856356268134897376992123041488841658863736761166421413865920663793330318524880865943832259376502136959068107414063008049197504767604865220261071539749461479015750528698697099963201831074577071192836225553895307445157941497334988666316261070951842359197402094591851643522912409627742712225105239681125578791370264607658231722197075270192242803767653147132506234928801562212602069871447575209462749762679380869571881285872570520151137987035592121118439764512944647668352434366607996608564889727109514376493843897334681833602008100914292850278605193161941827913969331075451673856211555702979881439648136242582110349378659702921267806239662972720780172407291479302094473997006408098825151217327459844050522454206612890465163550780424411651211475563976750181370205457774740787637552532934507707750362303997244126966188764532161862532877824142522936092597990294892979851785744911217023742503617252959826514776870501567525343908685850768076888579834294087815461942585697600193282188905455932760655362865769674679951242921562125568446435998415621204082325570212185670545642429769778722097397803802246888500559814945217442301849190177979002583183209025083476823183273972271963216266969451093005220651555329981107178969799692237234618689853993600740977412987147152876567703420386794448952977219110289236527160425837010674817481914730458893845440150268971655335720662698680296401974358599455851064044504766857047967851300976681746306859420164286434948835819227289224812066463554333290896917974101415331044433824083638286817644658012244307233502850066704644568273869000490963115144274163607797408059424620919594354839827407357626063645588314881485523405288905390626002622464873531063373958807189438096795227455912683282244543415579128376764575440186898363241780505404945238800913369669415137391936540777281782595200721651044219108892929832057433935762402929112781595259602220212135810643540949965674680088105547538819840812168250201783767415386668702400422060352920621795150941079280267267926251501501416093319237585745370425976866502373259129437929076324611952324844642133884237298540158996172615263330998865547055368190370476694005436879741605380474304878322709951401388008306390078290367096834849004293789686974735016791647835039459974101079397234462454544304847985377614944957018026127500745971413586292388933986800816859312205041663685732698691627752672526615673370835982979293801121012104029941930369710018827158705208719816994981504207637645998372900349069726652638719768445667214625288410254150130342127014128347772601827433859430541222404352567862340606387022529247551669284188225399451674113564175351433934166561439277288409604735600193674426179390936209841780842700629203632663878839447871170816328754504167380228497620126549716221079146070035325650061898872326358700580209356899516022505751474057248258844560932258746348404125936768674887321676435178780361521565010562007321138671753752241410933526351849703074872234509788360467554189703770895978881355430778710410742518389055325079481370089978970674182770638250784132370467566647259589532749233570809812820806376499506359115776647215799032310019861488034430281667690064667277382014493225255005091611439858636873793651517822366512861466302161093573467604492679907650233401462021788492330658480135677336654179494600539599612062452177252198494950088669095000853033417453337509212775166727815933874424967743607972637831854834228080617066212356787609794021663688593481720150785343821138036284635934941092619551329356705953790310692578227493433336338306775855650438123604294348873345415867067500279194606142016104097967211595015228923424965916322273430252858028042366960410192044130168750648228051996906620046344772677255331902290851552296697446400696519686870088540097228625733912362217000217430593491456305874049241352136068979644250033740500593386608160282317771834256529917317934302523951940971564861416244066075072194194622483389826549753075395612343574760819394325729127904410413961125483113238540480060704055278958020828937812279725564621356240486815943723372178236873250316471916046690197901320759694172434690342447390739083690722648510015488932879189768367007756574590594587489618965369976639368439146375828441081158105915553461981977582971587773881020855151596930191054208091714493727375362975615051289363122545151441941256290956074387383076897143403802952397433403383775786637664637372232848278680176453894535742203018427061830219887561622141282324740378685273847988078016702665926468879094311112375234134127033979403372126498653219765932678931408681777795603412865367520082760833586761253985684847190914439672608441009292086164631457760971452238139494320874102161446812885651564434421008060149041940576429595006764421966455708241346181105912010907914694491215679172827385809222989320994020436184011802072771619323898673370556459815012200501052912667292463567652448105508528151242514447133451825675909186024837553098578582284446361910055021161680964043464894645492021354495170614262499072743738969552950150836750188766185857651405277345378597911734550879827814691800848992278836229684247222044556361673314078384923017307008047901206988105974550981010700327101764547724306548698659305597007610067108277283755547676083848441808863663039949415815439682719007141992362008617613516917809886839440867206114895775619307164160719061708465347840589336232039300462145381467848814128836866335496140539156469251856885591250279339766198837230895272783313002084632461840517339827524103239962929986312648598513907830534583262487616053436503351503767408819313155630469334180334231312682568561403819509565048602153187879765965888169859979681690318981548977123838811954221388727804552651550783835788044241616158272316736518447930277029256228923396560815230729150488983119409704588266592510330973272038210993528687402677928348247172393380155507672580688381124423552569200657109361828347630917533310732383805753197765545772876316108562835136639201393958089113130041727616805173815183779236137120012392199823082716973097498169548475874464246513085492942427896557177025589634287666959090461360337350264450759936798451256085388059065699454762622506988854989486680913442005522547140897390922160291084228290126618948503763082087129591138974386474376256897332170482307481988751478607375808840418672576011354653349525967819349081083236072205551389817797483366571340312401235873687890412634248394232301488790233915475460998389974250889767770832917458668315959256821205364506246996842085762659002087492228251880823571726122577301477820281410241305998679660655295097885311959203938017019890675758529557415915265227024507157275817253549410740319829620757211184970073712033631546690735076085163994050401858764328343517709249898721003619596218633571648502930550415470479922431797587028691304079747891896441317448817656690753008053738670542909249681232418195986262237021700653024065124111666031446141158217703815475238080317579593238875451515705513513455829632781113410893121365218004093797712830248654654826840719094264626827357849805681927102250435299216837072936608378252456437237039536913941345233268409574144468011258828172234567602348393907744619125644586046006755531102448115986856912860682250163992023415819863276462186187714978374524250110536024577699344366213558171768647856229044818718792813841909716269571526666500375332012549656192301581211340585388921578415761315930703453766062367722356524765450454946305088505326034094711406259646843632506780913940885262021181533648771490325611090238749572373214818402662400694591715614585680301541215310729943049956811224179367565283935880389784877661383867322328017844705641243623186413773287381886511823624334428769958379550385799490840104827662442468149138426664489943833373022993092530370285726736525240485898623222088431810983176327269568487985362799311512736232857018448753470072329422301931528909914799688809161328299909904610837316784863307197202579676940301676111070732752482415272704264798573488625716369902011649347857175067499943068251975140908359042217324002456253645546608048495226970730793707644038998917555203340476799556568126657274397123172651546467317035881337944500331330322925723829069078502291501646688878176723389512602743458268371127053140128297241882911307030394766763465202249335501639958213583666402541326152438457805148510407697924167448158344903621903786821892074407646313930617865174474537618197151114460572655090400279897357182085401179635860875208156370417663851446822008089740102868608547279864704205812108191256230800661168543518343588955923891797656699818053549764151162315710995085266575199760466562373536012444504393074930080629025592322734695268966830574840909898868827673700807895461084577351001925036863996843392499497791719535198678222208805138589510764683066220618889909108554028263366395882776951910508283256316912989945750825956688665613701742724710801410465287594331430221515960434658728173541826315378030432295336780810998228960962886669786974106186034969819582490217820043058740092790248950125535810541002499442870003418610013004630901342231311311967551944033188749104526477398643573331156178332972762283996011478882051238479482185250599352252809518992354755882501135385376961301942212684265986054280567394911116084354569857453426696967233947236454537194810743968516555797598012560756567791134059652364833571923710916081624152243222548769197072199544491104661217470471355859725735428832731213299827485685496619587137705410697947479667709213189732511874072114194087133999517081258427633686225383824963985490077308382016046245771855591607714323402757906616324033071963299715529129135137148251461425561040364993913014005942382559528689111048819133531221591995281502179138484117907892237925898446438214210437179515357705381290447487117990691513874610225426316088076621619196406075798389950915521157176227969823051000100065679168250080001867318079698893077751074894686675319329143378608551163275869491164405517170285122547932671412009552904247398918913730207459349005416099921662484421130327840040103390719396907985404091746748503865258633261840051148247517588576507022297795530458779895168865158001807051954965202504157187926388976450045803039648837603596640257527064975794568049308220524627386098118772995168839520094399566136584732456618066284874511585618000587078562609700659825128810654781611231881297285003070228615090351311372737104464969065261674068010819388073924314576396071261355025447948672387665703842817091056314327559586423751828140551715605799945824106136304530182729080426786610090407279158156838064012414496166313711982011737158994660741328312733468532144513814159169953264158332906753389801581111245949006554012768835450094253043283838147622215750756387765940939587839318936097611752745460417630576414831626026111622188905162944965294128240882129776387736813695194933930401853123863055001578863862655420653441499954280687391849074048548822975000498895239682792335937627545661059847110071659944525654147833010463713718683494884742845414883954847689574782368703352277565539544288052963844474916622591701937664618134384659483907750950471848172219484720248860058216240037268652941699382754142419362204839776922635405885059629063490555035031713106052474616468143811400971177671572188591263780820156132890970965469973071409894158799311932251409127829445306381270014277493338232731911825995197008050071297954134811446602667400033160381013523149538258174274699156730974856896627945612833673884160326165785249861837817087094234434905800584697259274901965120917216843941628246792412883626874331950397542294624971821223890881907699625461630627662080374305149872011077106367262056617274829946175429627411811065729550814918622349463871614170333313607970966510878742619269703604799782534444114853207330336904149342158792416081471753046014594052711623070865527562479682642227762784942066013834812275477282382857063666968566845782935602695290338626022204623994616477177184273283177628764022270199879581268449194601053270551586082200085321576142233931193775631255477876192045759292521919255122823285256935249568114466088622640621008469987137697173093206618980725035994765391738493339676043158555795167602289098355640842137589211270167301920548546736773694724962912208078983511672152443582466436817691717511907152931118702324615266375271680696509259553440239466935151696732309194225910992969798505610322091255646800396035523410302848125602112801137492831528546660630037234615972405183809585547267745597243970454084861849444991871969764686131236970500186778154956268203562132813339662773907337420136190548144707609218795455203625296460803001585500368816749327591460012795201123318881759176988914572642582709592211103168093371131066902177840899520433390415366228207391314772787227282060143202611186887903510357216004075590746248164229462394964451722067280100678374436712833087676095892961991902352390382024545727464256941070426868815929877675294026856815738742271975717813274606877213754215397693721198180156901403300767023545376078946182393112629557145069698577941344807874010671401861701395819877647240774092661677594619765487025124652267692726328817370479180854655407340643169641607512626061115600012096098283579494725287387535378972376083362870911812871611343497100730609420183244454244375278323962981571705392403937271212920371860101327691713342146924671548281495827982681962931942049987491558106621680792278117482249202073340519359637210963352881326796304966643702822002052510740958283808589055570549031188591987866969356472559592348679180894917546866495707213804630789041112303652092035318534964571344752877394861821550323367294912599359882679747028005321258004527385842809959566601692630914989275874482557618573189797180490491531706065705227831740400229924779373595799675077360647254700766321482569814331636635067580402656899327882844752100756455096541884375279827761089571513294216384537345656262837137802898877157544750903869584222465361886890530345777315234335561061145932090620144927794874068682258058848729535894082655934474682835789589873589268575306925454048816536045205811000746678811977374994717243223366020264617933415456703801784808255986354852606035316816009262349351488805971461976732362290393361448639965992588715906299780098318827739963824739641196972892893154059456282028547564023856948146415990553793914714822570223075061151268343515689938499422342301235992969701481546927964863945550986693160606988148445234736698887591961823009159951441389004278993893050482544048129310812736664489594644697040650217831250817757267109668484691739206518902635850156670668913996857506583433527946370409789074730002986824829626736361782908099989810937379845622931404390373331421367229990733087908046050138027194192630656452185422102525785726905018519049623595692261310217651937978719293264882083765519263296655193530123139878793254518850361590165191671675370858054989674242157711537455327361210096740039098671999621894821845712379557241093810846133201358105247169853943455066961375914092979163814849224324806073941573285206660102219169206675946159252698473624379093986614199823720120096491047655936746066158331958269004528532544456439994112240453042912579977740422502054824037253313340996550862501389730865200243511363037512583922768070544369583701291275135363184174955796318244104287312160159254899436874649359076188713741131439657761978122241940398673176658001632166626908066824984297646744427140368816457159720088871313785888497995051901338517710108336434338523149561032329812048638168944095948804191109978778062979770864286816896634701807614355587574181852186769011743350522882535505404914227010602740670366404106784518654253023887209227499483406312970569644983717586069698558645092962681507279474718893945814282563524547882502670726333913758194801343195143324699545734049659673386154844027273231433687926895160326427146338151329822831336510579080106529388424654148910921748379570129229716111284129537963152626320255039530268505896047657564525535848312459672871076852876989702381797371736038984128016866295522887263478586000641190277377412900092741349574110127805648315184268540774498582211452518631719000949396617859880334404010085266760488863709907895515683897537943588249536841065981094571836107160985970006448517619255936244809157244967313196566402936669475816275268707643417126161809732429132927939479310194532271247273794819658427634033324309454707581836455044755184156885749520815325093813307891587386684703876007691242320518526131760941709834445752749228530596312720681652130880457773670523350100831344842678091291284110214204993607739914336264661228142460180825415857137921026297026867516158108217389298827085449144470639394529963068672400276826689289620445209592370387251458126552434960172652842825134291151878957229741810661190925270612458331164355526931137049291589843242003645826285757756785893465474896398087681985925262648389123409950757674069397750626252052442692511283639085551550235955960020405747639045780497531274038519943792754788174381508295332900588643305967594440147606641373040531499050561703313079280756645412269799742881011644960271755263256541199617989551319007692814640083374816723875228084334617210000208510878650144919264294457306184760589070125887882698592203975426177332130953072015436423568187937822531912015402403252883625262084267450574296512176085995725707844696856734622064331467707786051278758975958363548853505332291435384568447030258186297603633731056077308122312659851742919723096494639415199360801095725850666326004534896637382681959882200953870360272555688915933608886835985693906103973485232145988491813675920504154596005604315670710174451182451888343427658150924599790437576932417224474729865178646683069859984791592653194899489750189493693227395045144660825931141136689319114032214875694947613242116821655187253630328928729314776153681565207098250501243496690507125515634647057663480176298656620866897641842475810340132970257547905198787615316044025667747626376115179071243822038980922013803346103657312782823326786398767013728496264192713384825357962523309792870551403136154118789339680494129675069017698305195950050022720667059211101063324187963665115195008033507081257577976142371648096415168400268911088905265491819149495970028143030955971764946872870934529992331791102128290785458259574347040012178916259212135601967133485576962899803192043581139722771872920026016871019490311617201608725196315338372528175577773903278805658443912592073015261405063283809011217018722940834206779083468043377366091661759772881083734399193558923417979204399383460775879124916105170932069202403516715232650715704071768780299338583872061650139860321339423844719036201442972567430290375052726998562554775850012202671750116658841585719786526957687486916458338137253755946681053218439800657636876289795449589554359527610731406095021985280005919417738241856416350112018762483343247621393949418631245156726347761021322316937896010131436427850933017052773422434701068207972141289916918080993284205375009499615925318541924813053836991560390500004258283478817249233998673443704438675282082909956763001876092801447755645102084177749086056203525300623118496862016803120327946437566968197141116127803220439305772029544811039064222464053358565821043735877495379347367352000989711279863398557616401296687857151232639438419585854606500732381249889887724085334291697856557309076341093014573384968718994872309362615757759408278337710414277970846838967735991062803828150091627396060109224326271385806906411397313722706961628977599134301430256365727533015839747286973371324875511962155502079713457004318406626338086764336881785462523596368586713046076639488120665880034887614645855402849537368827619387336557309715868710124145562831639287414651776711197637343311024025084448208129193753012387222320420852202190921227256973071903063425847931290422782935803675832087937943594406436089180780944949145829393629137039173636815935666160567729829096543343923405522085579380559345092515090914058674915599020116024840456009917851916059351553520503126967166622064501869445976700218632085426875409947407930204761304939429285608500406592900673726861843054950074095031785521914144344067957329485563686945728697654988676968015813427348161970452550189715066984251181276297665077757937987700051234026314043392597134631142295816291023432312976867078314317097961297337808177457613734657915939112765952140707301848536937757741548958549104201449085169091035038918169640985970369984157489015716757910165382444598680606443578661845093821482245581918020115789716079489116344444517260532520487428013209006912026945117652796046085875515336325554787478895445455700527784205182205348212267481271957480071177491958934625136311488125638163652806720850722809825726283217062631456196247324054953049461820882370939922417145944665606123210065631031499088941729770646428477510579870331478837645267378910995401196576447620176192664775185610291712172627835909940012895824902055155968243693624692933425205932414465466787739707150439151718495369925153697727012278506607030146161490067931415963715632817531863927697706242818292974075353143139134621675736353300577946283063014399910254368744549579813803052807253065313411794340931583034458058145431144494456230656228004848295195053899298146904217609357265403906471872136337204222848908531468234540172757040541065442785232001327433474455905371308504866590588215789953809757768360831093182987003266496631688267919556947405913295420953855022563806211759430446308676267822717101011846418463321848438952001510535587509421219501110428479834195473343953951491943658113867846223990079337548864989338150492299908589669152743604248474466926575295203992745105091421540181940808484927330420751150979606587557290516768275776538812755614219923349942650992897501260637858919299927411847111463892753666809772513719537888923734897848633828152386405198773708622024017766936736136867195527981334037570504728664586717112132770549476568388268838139761105444753127262255303393264203211956977799218326210058458573146267387710901838042057587798310355913630055354132745057696982353908500332659731745333286067615580336661489178166307233478859571164442356520508065678588070306077281988002056818402672123387114773885397914867795818237646985301269300860161921374430733765787383533195852813484253393798073586301777337224964955940974780667391802479632023509718468986196639003624204281072502414621301177679938390302361652017398640196532093661705436855602197540609361072847154901220097667153595072748203165083575403199700819517779010433469891386406392205579684825570706293191790642478049568622404760028345748622694664911665285982279695930132151564074543169538523010724728849381192046011318475656787684106816238728505389903704992854694669097987075278260269547139518388336394394097758265183089574630116283480342304330095099187632067890347026822740115485468722738531833014031137959467337406929302797450408228634381298769362808118161520585207535062237251807651494205580113370794318568360301567502569819934802288265471525699019918666600896124800451895976999394651754977931079914812523176648651586891493768541243394459941154361907711925468994417683648222643324065160975164774783393221871171752362706927696492040901354651847676932449206492854113573080837694916257705505877931200003075335305569470923442147776478417009338717576582396379309010209049350413790062227532662984258247798948967233662140080681297824135779840713062858797523041594628370275790007360159605466938874336479824523147331050023685601947104840131558291023872760222165126000174182392562557576020220055285556836155795844966245662169688597121529749726241061954884089062961473351265857248925244143966235905728930241806513314501007525419728071173873660915092908171175939585091269536175063446672558376854341945329112448122409160819675312211051652122183819689488230708132907245507312416857862471730440140155408247539449655589475139057912329640641729561485610441491420959652903525973537517037454982750909388263880232145241676417595496140089956533647086052475600643825810363371608956356094415267997658719647750347587450725135861631817437448303509198947800132710027643114809059377735555389188224979523125038576562243523180322860649544172975530709758274051373133823056741424816848347679704918904517648673286185169188985679237970882950940619314487345594028962215151382412428208748337053975194113204565788805831573124719155000734167336905739907714935400495833690626180227339290443312065932644971244273399215712690919547592714622186057829021786833927679820515197817624970477499042498774464994883680511260817701024225175047915776079841067070848009266738868446270916011343651437607507721346343257384447854355050110904918460259498614206856195351638819545361906967223234189318488987915679915327455638923236793047841086645569896703507098190487906456963936631270897368776146791610483915254072602472032027184160707438141673787973947835081863041392383262700180760034541710066321464158004174417538274679450697089029416675863238895560868748568573063435767499553475397209860622140712168227176430993524190813602983595352805410097401538049124330760213370607672144337644943170560865036720800573533252721744538873194341285128982049631359984771006701493583986766478222000549753990496799346552851885643100094561276331343098939380371070656809799550268660211970867168102959509923272558138922827768952438848660098761039746846614106535657645807240108753457250060917549809621923576441794292164601705943305233345468907202151531981028859745908258631819101215802247216836170639582613027700977652248332452538572610663159209311337810476170019877006055200156116693939653550544671876716194036119408504805007958608492714223906696850539112815958573216784580168745379091278921362476482168138404714468150240021816701596618750251196387515237080650780429422301418842163090389066064389616860894162494713579887969356900935495790405678286415343813066333769173797631065977501206193078295505854110011541144477618951150087871138917915687195167448503804538962631169484623733462389419215030530831658623825926345954445455428526590633021036776916189185731330248778826336404624005571677719536640254436651912500763989098332728498541990253924119749661990433808085252681834982430307611694520566747277783885899261380761268644969333029662109423720154220918624997232655653130806490712796350270483573221626831891194862687183292372358533224297890771035966089120536929616923433431473610600128004036097485098906025244513629925365442648022430506903598641234865481027784123960162630145000024728670284847061394516288980731516158771466841749033795940000925658305868064631316275136702696870654236609631216127827504403749718474752979260983933870654978128725498848404924464040755688727673184151764855907648890012544575502729372491214701109782520869135409709952453591656382389003501676006944707130634036591787328472895737964091939186670065824578568314687101493159518283175888684952987855498412571593656060044220045003696647192282831052214836540702496192323023300098467576480747451408356123242755775838483349490823412974349211963920106400838166394984452561721085244755063325630314256267411373212503233936574041730574421130861303718597154487559085107295112162013731573065376248750641103824162219276352294113995572851860607961480997685164263952113154616312737327161538458848983523236652108011465445512883148457409174459080893895632014386303967140312381222276782238200661300834682346456171543726544528167795707085895336452988486932200297391284230136437384796710843130068794086299556407251372977105401903493051115800618181090717663142570254013053924013077044261464966859791469810624412808612957108698670450239302776054714648435981762401954401646887059825672671436235346483250156873786173922036365990560039376433864290100180868467247673345719476562141417710370165427329034108579461546055512722356393044733269422538630369935046404629037747572727080602437861226086749262560609096785518069925836858781221890220864227257129585930442269457693919647242294161739818367104692542153356200128973799770869524364536537895189230030568193428193768417234569474314286198609542977844462366340505661285645801253275818595519718006244478208839324674101586498228183724213319264425702428990709640178933453951987122920712859781676955475196220892991749582979545065776589135668671037892819146217155451832668697631999827971015236429454524921603977636486569727227378943569562255709365599856654099141367730179733464124426653032159875662613310576259006277398499296688744946424988003033310893991252070933670477494404722630635924185142554001765027182254017221142251249371282751105779579289403771286536595785368584572982547298552392090945796989894556697998371896451160005858864697769116600012306245198752069291271169351513676988452041582833462935130795116678854375230864791204213915937229324154643928325534214230652221947639477926434352451040705088481544773456509311609169927865433362533742655135934421168521315692224531835140136546559984932584031061006449032063522184954146094868546576130651404509196907285875121643799763623330544563800501204306024076591559495505641844241980950307698305272987812143788931605072919628567882269961883625227623257183511828426066166425370677498007773217819943904696426503368181004217792398656279161318286763291721348036310050231390784600449526200910383340380062937698859049281377572981825334126202888956818684809015813605399320764879381957240093705180173720134203234110382509676039426689437350312782162315776813248749746097878283692540767208792275859214448963567709093296259884941459178046219988501960838897817558508616925806311136092728918684790163359441305256094107085063583272019191465056095579718428683323956213433047618257487187163250890804842248445193495173992709487444550536431318831462671704841269541472660703167285761301853857516737443645852712032664474788661626843692461898274765289946338088547274040706493693207948885805986855683424132119954649258310924770569264602274452684405888374662367385674105547895131444817070520347482825965709675802855570109471459847934477482139509761916910659564673968501153537444540110160941539527072496780405568992038644203999765424526853395564264588622561042027853867506416283532792310851442227954756474936513325364091904851319572412163752699218909746876761949904378992210041767746437742996033336170061091314067709071626667991897736981002631651001292441828160024405960065351965603232348581561492882845833372387334818219519851585643947974828453200581540805817575892254809098003340730720367715673951527888662889615032606427143080753322022129318282004725817262964373904253332343797338089247155560966026386043126486071331116531247561916551486936458041776789056212048471123645562012532183634399037669537367569653485761986417194000527682354832860121323036210940771945340742319016017033599567685362052836276859867671634455614470730580459369084385276775735440999330357753624973213879550381954597106440536565158455580886791936574013898647908760102682497751718674107589026581005894278894124751982694334091761814566056337920129952766013575569728236173098000526697937881260671462738503445056981865902645078735907068278631072488268315301534432719926741345729200971819627955503617525621646649842825899836775829323676635351821903584068957842376650187134045152338547295777325010182035814859993695043414146909864477717697041876714100593263273885716680810054106979386728528842665029250653506906595525391300692664053344559891301486815231340593848118114148224798751455059723418606782823398340785518213728994432419173345895886106184749162535206905817139729858274919363289241433530092364851015118131436002963774632553569107238729447949692116443505939864731937023872867233776495035612022747853855867384298330398661621196992194584335197863271632330665475899475089739490024022755073120201080794036112083927529738383277997176581509505501336342072336772641768916059918069129565610409675163927228097434665780762857288594774713961111997460801012240456190340555172303016991050677660152898577796198685127812333802520783566547293000629090947461619159834046535935503126715017413623374811202531082072700248936029916962942912407143716963733273579675591320054402821203448149595536502754495257201698647137199628232595789200786631247281151110737858732188229754804792299766299960669388373941027794849618960383103009972132644875195750637762239359043184422038723815852665772344397686437264897621236779035433013189664080425772999945420219932283785917456272477133342270551023165866220935964030508316057060720290411161345041175226239915655212182224118444106471553975509497228109167875857679893500159655174461572588655631458769279819293487234928395645897776539034890401700553450404160403912763005767574426129225196015808537977324419080242812765901535268276464903381727032024526323770225090858257588798050117404115082392378117947131417984323840523912669493055713900364368286033110203357830125469211275696029922183570564289121714551981201827959850738981962429927049668670883419053704050702069571565877789324756848972460072492285090762600710180098056965907008933606624729466871641442572000863126431881851507599646396544949196372903534231833654046617609716818629291440536495556886070135126667139890143638223050254780261402794104687756999449267078307749376117830506018899571773507387777282836447021105935307185329387517537501550294314408976220768266003272062607302991717827547270580028603990504743769250038277991232259518584054536614205691988835426703273626190515032337081357680504011559897963926432016050681257249982159480856410890452948030862224921409953547317721941310562261791591200559528206507282847622244704568338906700823711736829332808896098805190319458960479653388565841023425842398571273442997090167064877565243670683587370846385413627169666224451033450694944762188219487458614298529654220587873024290811131203418282014036433075718951418452222408889202037262047038029031563437526493210632723440591288089733926591043144174371494534980995950294569685744526072729063337487434695957966138922703466242090616490159779386786231234648256211499738929090761065432834965662527819026767724176071536773453801224480666171428275039288400967916609675274393891282694588643438386156485834014875883963959360638358582865081356195403369293792892876046381166394583586089717473023490831883066219796479453353106099520192353978101578755686238449742134806487260915733964025708955406958396115480217419089117370206838210348570356112741273262358180253801541879686467602130416198131239591535063492298720217673594401041463210486870730440843668922804880914170874312645423435789536418536027112056814293784582000957250769054542946392559767206333058372788789718373634617303286138802197322517174744649121628480600357698872199656551579458567199929368533904602037000030111656663331586947179555488894260433841934593420224963998221321447693526270690745987245039357675673309422921777370483826313853591941030471671553536206142546833397876739960564326465719761019857434200044439127274504270849338469484763999133552398035343585525880856511356694498857956358082451135272110448701312575150823539944581599514257905550833200987161301201156919073859511516996584590806878175327416698511645476474371561499696422654712036423952380615584587648336985075221172950725784407922832432441087423972407756853937750747632217651801918304540331957726671332845688700618795709751144567072255449871331180924485487988115788645724788887938399543452115889024299437922590424220446199551583160722488359486279416963795632593995831111972996112295445141861714674523326039297623345109769067061367557620237926505945370821299594856557140006879329075432678547375204398430065656108361666406252749507877696186597300346060200704155556006689278003549747016212548855723747504914749985697770493827449675632566959316847699390324919638293503317060941869069108345260586013694856760165725657810218566837098005630614156887405713019586280886763522835107338408564315647136072212256823006654202349467904328570051106132136194034003031452268356075286174641511810982719624152291366709861130116480851837772751351286312236442066060874264110878968994543550518063039744806483939552257386776352879050052126901183720839112062955932309176070592984565703194567880958948677509981841657817118064471642084371234752545103743978589197635612823782007184952957210786084929158593892274183967913845838140874470246042542393850545410108509565224025730956666198175050683591506873230651610473982693141558441006702486356740962279720082093515384605091508445586587523609294358876416159572432145484103756873790522350138017532380164256410869168887663977738046426800989200006264751355576793447848371470334479393574943251144309693321701399279279647369524836945287655681249525953054981211026752517035981901769745220028310569716706109348929370640214866815566338310179835076004231562572094278567723009090450718354443145017805085633738018900728080666678132786965124668222741845111889975028513942813915160801752257160528607897041105318306769615473380765100145726688575305825017806599082671455209211574806516646165211159543524524477434042477333081638401184057142421027673601405549650887343394101071381280448881919906345193842921728808750222935189990203025713539224621969041212882336824443321071446535359375967932200656689652442538163804874771556526570218709097856312896798540902690535090514243875873266326992091698763699039824934697274770693086364566782533794911513612597801389701512458512169043664946264806414559796843570104205484706183543206616181932893086106355595880532278994781680477570761876181631691281543529674136211228727034454999464152989630325359624122986990596940584787089866737585547259584560674416447457645427174236856399745336920470270321614632493417235836304035333033162473218552590443268065985461868862806417131473776333561443252482704047075238362637660701452492576893380013078776278365254500230354329094177689036837972947959948380542067947731031218204466100824037089107486607701580918525864221740750755445917134883898161499969047166863894328860515375511964124924590922381715136255634761985748431946700184377553110485079796332346988764176246360965892707541262267933200361046751550800893876101193192145002679082848602842313352050333356049230599077967974158983238165213090151638834713062357143243148142158731433289238518637434277790984278964190636832204558427903187437833642641459425217308452425466207722469683254631577841174158964500866435129958442183605969186990345969405935923245122324300078515703072375669398323709321326076747459457322135552272143778866940274419551622590818571942411186700007895557525341190321559150420653022196794098398981428883477317050281550298947746061656556727649841049610859546694449640185428233989490621216612991975914177167226778574952936307952248556307588819119204295178510749597103505923750492183625479698163462325203016528048283737206416192482047775117766789733598434688711880617285580974150734759883014222584782487402112380133978468320666588248963956704130702813409550455403488128159656667885814353655655531098706991921651286635333108859832404279275931717625503156867538697706081263058107146845167242442965419539897342628436245605609645862507709278263679216673592100883620836522503226809938721661246056312810749581241704114535859050099521275522095543407806845461635891987763194090401242812108322974193280946823448250057564650344933912689342113582054709602140663604320861433375086919823817619328000706550974942384570237055509509375206669181147049697611416645787727050121842801054525908617020532447006080651526902226099156443920032895050522948137909626175818927590755470396036874747274505932892860392704291405200554283710559682299125883294878529823907459719355997266563647716615573201448182915663574310843993994123707427867881058831902555997517912264863316912494320227370195207043894244068546389317453927051651168479343852840412210922017593967071158591569170781104396046376337157104316254271202299386021319863871969871275285800337709241734027999829326573410105716305123995267092658134537042221335249381864718221989862217167930207113282100694036780692271241221732121821422898540748699816736663412031013086851166604135510539506662522630756362739374688476964445185404218569005266580308710477118821697822235926756815106602347361531142208732084380454013639402154821501972955858687041548699132140298497092031840763445887526578787845713786789091489320124046043986699925989580195843472158023628107717025304232454917512326636855445578022505725602569402047103912713537008150103348712532759137264626311922250335136016331456802643895985195998771529633443327085915891633279367746742982989488924670011657497558176001805644145134865917392815124925430512641114304881335137980709882063507735611976236799892714882369539366266057999441361946958712252211066842070482686560628558952570406348692307913459010487768058817514029250095099699629712190260525294196716121207640960971655715817921406444901425671511748811923418237823362720667254898016906121069599913675598183757814628792835715449704810447598871977467352506335879741646439458554248890100606097618555470972466098051739490056152292832315646141797007377740993081458787620560414534800071030766559061465151856471805192829931763806419947342443511111183085357648713780159199544970245774692352531278984028213362657138704193471851489149364615778023094275895502031099481803179121744678326709233460904100140385830530407314727962504023678838868441224763403400478283810748639072327403434193166673154869454352667036618763506318419626328648769071222834807683497106377701252633371468782734063651453581536387995225311394347581316370211876284387221670882503210741103458925251544660880863477825094103815366537164702845341712124122630036599106612361855701332377691543332823703590382326775647336350124020886087208241462615364065406778547986400084880465427094101155141089602528710740712874327477492612323041393804028145730205883475139783682980473630267713988974408109809976922606085966093763810971683142142547290822227254951139127683090167501226204953990585026555008707129224922183120115265584378306283720449912681789875811706981275339569430472009052257377351873463585168773773337093475444676659855464839601119926937115191206806229176109781801534193011240356479051496776697745589773404090193672890427672805742013225947580658796929567564531634034411760903688870158153741643615463937077149364097620890732594322425290235964029809932622682417134143948023954015345098090760377527523591795947483941148169676098155108482963845099519814544887250273657958770031977351750418274456416863083502065020953656871212983925245900781421847758462117721448300246136307979614152062617767107312483107660911893596355645427227899481731673069252286011869694527565623147931818032225037493855329080192759249627536894645178758366862629899227286137208897079789049331025413443419685029682737347205882936586471805194532189549658324170953604685911304043302180827666739386282026998015545753606956701254975621093431314370062675368208790362091409946573982836424981881766435074293690677539658397031252100383294833057704733015649029352177541649299799770591491380218249042861255572276114604226785256261396461394845913534084445612170160936880330396064583214607627605492340613046548718698443296078351001513504088348707248857719751549029989553873610269914428941883613932964659594944181354129707806616422854984349852669138866329603155011953281360198731446721489957142789797361697293080131913644836717921964875295356885710378153275929139846679630836373225961026988047916815664172711664596721724655910690580122377395884010814826275975687787153081454428565255509391350588867466319531921953662790428819249060692302135966885180859874122264024584687441075809729251696542500317609141253514431469486515476974590466187379724155467029794488139925936930789094838269975159865104243092948588665893377436355231381503513861337894363096405179478330192258425589036537280980911429877515052185674958021669005955570691221020057375736336192035317654799502130416321058928199656875583697470971483042136183392399314890381686376307243816911110090566964825304932909904532002474399915732568377278231205371956849748125207454515472056410656663276210743165847312725097975629498414026146179789039111794032383275277808237372247525315687811219883579374345269436737178580123128764233650992799954645502607414708694606428705731545510809225594490039693215166277016102003252092858363414289131762908716154157610099193761312494906583697632797009393766855211064374970366632489061724713008390563537607827364416795847025619018827576993054728017527751801303457798629360053121412858964908287579229097688234354571404271931461965042136242349710541033541215422230246543915789713722843320518634883031980463165893623072618109684084739857279726063896191280463733801367762785639756055031445002945936360314357984755486466497941596468053703391936240759540654003317192608966901785137850053095387017502833518753942249002622633330155108453883043525400726156088918738429371736531247750584606480844123417582887077345117767798660573516530582360772735478897479382283177272310201832697973657336905716022779849372274582001412928478341969846037346371443179404781917432317540330228412554901956417494679908209906208594519179699779030610088539924865900940421592722112104411525719792487975538038042492701255669851205359096346524982165079645410009483718046227139891771185155822546706428871815395386340865719532623639669024917086374653450663236222867973497600064635592170847071404419451611183236877512308913088320707508123576345684370246145946374979422644974188346942913442002244473712299241258109507617546127078151044784119151505552732337591668391753567293826816722653075727574714800013890596646340893947520404022617277797010096165124229614343384321955560835598445321564426249273463819504591611188177697909253371416783417540621640912709978987130254043921779152741630167366119379579083191969137835216607054250553475152984562292175657460866455408195733432568286478941917888190248891103997499628352208788112014059817867236282251240632047598889536518588453768224224620125545801814294648360245141874114568965781977251325375601317601270892218431583597849823463838923014079929358629127886254515492039659603908122894600533603602434232661313281912908403124035889611768397185648975060995201716853200144136833254064330276779801836937546043320136259925449421598703875191168872172144289010974973538358057117067728567454333336565452901300121576863326829323351348235770175178942550794924792327923950343417143014132509531728417728105385943679545396052842029914307762418765228400209110410831714934580954763934884282364810554149980220398862065152820875280408778073238175367546791656272233759018091486266048651565979111932467444845157234351499132923961677883283571199372775295224278724058875505372532341371182519415910991554108318354712230353652854723708418780785501444869851567930415798015500488510240071890713612970110834599460885247777660483689380341903522259361255714604074098667128724560968973488923527332235832880985363530092834343624152580447877475573297302792302914141038673836045389755868538783174952863472121720741046623906287477545586047037516741712617455058175325567432314072890704007972683813362641734979764731745034800032503218178237043514539361341039756604186895692471696601859085412596769594743406376722405798956889196082590509546103311073816046441273035594582933270194898476837668353223791429842444136491713536205303457408801976317109699901499004292565321201037294907265695854871600546626531428340486293237098569100097724926402723272000623278707912320979819357119166851673068101587305248387503950033073900755244593087202393369294240476457426879420432932409116634781158483912910846312057435630350957115977620737770683176191084803133647834779282089162649766219365820830003023654248497760130319219957172806460906480346651156627685490243508622685709582964923314613632677018020271719404199348982477477519670653060933932607621467206039501269893760554483836455526303913356821676988411897570461329443327972889309734586711541526983454044806010384543592235543136029441539521099295747373737801961057216244351003556435916864681084616410615536044928132254936687265888404812261312722873741982073657880595787739291837647741063822048062550591918805346584014320154633254735088218711749465675560718509365105263981872269876518231855610486630452246759970080341385535432824996557210905283447421492715719323165810512999265927653339249805496738671737119672759932281295675274388367116729417457929914376409109087196406451261042192946972049151500985336332092519534722682115320215904881952248882545737428455302055586029043207593970983410588873750806416331090292984383114541124594603433421944575493699034812561850391728944365085960736759129398610835611119445956223369372384100030617373520173897055462842314689854603270933718179049722263235383937448242553877642321333310573535299099939919045064274520505771953739539511420943247122989657732857010801810844025614156531398384055291146650497627989673790216827531675092396985776229065870757722553164719091362540513659868605775817772328064245932782480576318326531937634441406416318594360924863276839051241630200450452698454054555521504030807067027376370584412337223347492602518852786852650150025593614736683896463095789602752680150751247853326269520713872020824930635347767369572773679932459791407454742076560193499729480479241680398272480132745673528514182651691065954503252258770515893109958150546542233931888740054406675863568252770181924477723325986321371423246205718478463636169656421431772295799351572959574207340161676126454495841989431103536308851836258596783512475487320228783359489709067992646188033435883737069634661818338552075998622152216638425430817935475673497429475053553435988772715486801311077465912622957238823903265860541280652584785910950384090284357398856983071729325273244772770364892182392553202358117844465322717582249217855755444295543278095166420291511925308847467500410527379763757994027219826249622574990930084160783269741857678519784998657915125803044406260913055632909960938658463760530802567919369421509027526212124278027419111078909594880877602172362279516269712527621392268814620459809570601414040350851031969099157088347874959098140336378122910004098471233627487686527749818813389492954977238949143900517731966731428418503317494511682254825689266045456581233403712824729121720374479911466713939465367017423160831638525975477976030314337326538163154092494046363744261131894996829564227267498890121252238864671023189716367355287134536673913842529454388479995712830072119500228619443641132601679063865586783927724411336123042180588286344052499329066809907745092556729764667522820738382639303785139195794661728567047524650668965236042245680135948344314539682489056514222095009038118518027405012785196930341209288763675359737361638109599809248675015743255800038025672623176773643502242787916063503438857413980702260770148595976464722100769074042018140221913528195447567983833404437224803482408325654350696908678772145180529778977537104931984838569959526119189820573130867544355062068794124613207579792456353747530417526754982188826595018097859929225225908799427220911624485316572245213884058784744317358926742866632047185231314339376899350082286647538899621721762319190100365817310529089579267150062685595755620640581426295973390044981890491337526732542947160576080114399650359799594638322792196902346672086496168596414337862097805086127726465852418184056618872589908720466733824069946192791962488746144797150165027721097908599299899661272551565463416275515242528876632505042941028221052596176666113450703412487057974046370075262537485507811557447381669241310367208409208150342280605871541141099985117750681939415906510826106702531327052426329228092532564564994802516761869070335924459527410941829875424762215954432126068989392463368482167799432017719369662482746303270591548009100370673054507931240523505637966948594542074545360467956762743326969846875275797666926851447589263587873518703517978500669715610691631991825065479827509225800547345886013674267371600017008702138252713880152192855278124908704058300848215691142091897092819666775997437695374660779676630831321687924583339003483470966442382940756034695861522944424063016924902819156188207665269005302502648500321080913166386020340868267355981004132973010538721181050901605532443191463163076696540963010039868316099142114473430716037108434176595084782894302927464469281061480151252191988847034010937606547096463451059416795791283480094806775851162576802761996167873215158031099902190338016755654627497454937714065389716941004908810791221891131930419281099628822252134403456296895174089311220884736743457438727831797068063833990284793969066198114875444124494339430858092275143485424807835400071700816385270108553365662900853554619767230316867648578578449279299170871904426062187572316849721690533405669643062517913175193899317953192404901911313617201220829370717879132208668628839651495218978503267376436545564841685568194818722605389479236586626336902272132316200641647583725944037535289276927702866471026951268195517642407645268785593468094795740994806588386516865109255043919788454805177454693728700942679034039808353526406992750311152988540303065103106396269652790694952546434496761045708182566464763765300182608005001760320319265639873714891624382783720545094711186548067987646053673440444017638726935939874521302981599427930269093233846042806562686629536428797560412073081422068055969204730063857597156584434533144812746143215038154969070841444697694926949225193982863010886615604859271892865097054894262779986238551383246705412346690685175149359396238813171937030899626242189883936505223923957321542244568145290547666589896930321081392013112352200537796738287580289824037525596142254438021205885443193066788231990306835285566622371618474730216937502637286604545314722293102346106785023136375643412968519334472824161784341522436436294723833992830899507630376334219821765605378441347626294299251708322883951679110025225471054907284720338358645064155666115023421119512093089275564713925396269877531506706349094562886509833366485382864993756171178709461078701764165462981518538057718300641237352839210040946122035858716183100930712409630757699222284148120411070801458576846368801219823629288088600767711741730913698238334315521585753229349253574848635674659106356956011309673080792518982807493232589803047634156284995838747040115864841014827911033010296225618495922739235486522440498512074274835986919762336684300235040151906985344806453088172564122455718854519553476484989669891005734213419966993630585181493922258963187719597534345815316341751132500886696619017186755650842996108169172362938120500869105535896108075388124126701453390636697214033176253128456817781632271842541706210303007800857436719067228013493742417701080936890742502763439610103436933827883858762045498907520571907134999178412553750781175854650846180326002930617762366290451762561992751643059490368050812321746619371213457974862851547987008896530601501809887603287464199612162993845266936994146851112111567643120953207524998528508672157668036090564421818623063477898468169976271004884835203963648735829815927053979162275367156029483707141232980298980221283548573532513757937712763283932765185925153775688119008819464193833543043361906108771591946180237373769276922506126778520112776080944365782749302926485910787068325823899571409010078207533728317863722683214946032674491805716456092359026833121402583792332579421956908863601417991820334014695695469921063902549971774449445950963322640717518908120041677965147974141979508414476206389441992837913361108954334143297108489382382611632974163701249074983125590888868480317299142610591388993574959457958081955462321742919790672911279989159573005998151251951692187938993686740581307144411588526633004893369797121506932226812776341224228503659033198284259431127883336755143108401712603336319322531448102058014952150233037583646706232250584991550111864428992577248460352171404643901654075482193588704250891645863374546038575129641484732089464381751038422053543875003015279521386867388420713653471527543284732728199557282721061585373430001016180995314831949666994055064806255142244001406108126578687070163494571351729082350791700788068133215608267184907956667194302919157320737599166874941855549619917202254386418061639289230846524116681782218347915233888843990444980191405430875479286380805861056000108465847366030203528415241812045365354787831903955149004915418316541315883739015518975673084591917979754642814635524086967984282935340521794067178431133570154251344829610495922541471067865073672880710643604188847073513551842725503000047282754191071248249951757970694026866681431594509718052971346880421466298015449287280410136459420136221667221029480663585503417957770451372950595639502041233523799562429343223451523271974753787007839659798185615955423306822279275626645045314583841313757592341665329690817231589057945534455140454832839103858257948518909069702763275522429003180699668480989919891536618470013363938929378798796540398776735026038638457942666481538533162162820369987461263334200938461715768775241188618583951915636361639556893175869845013489820465797449564237685217773100967347046660653140194852090276502306449204706124316799244003382053544963644737246588477487036749740252790674284178220833669145809525494736660214156788372002666724801580802890864932957747935253079358128040910750280112927319113439226920984080095587813083887001127309622850798659255067250069721740291173573146793201950780054898524658107001274744830588279971210804653889598164813052809395342027229871881951282777753130520152660217591065099380874246934505254073113454578168356903364597091255011847639211562116735911716882788186223449052272895304360656574011654338927252309492442271511014953313888654333841065274683117802178132535940992490670278586801038909345303067035112422435170707114716288609871881535894060516196124272223842025012678706219851141649663927753158088353975188707415678092454604422693696624845481558889660815328120982607121774677305388447430358147227262042568076747399796754103105581438987014084704183895890445233824096767595011844381653151853831828339664989992914553676375017737552741222775343780820230118307906832364357080290002783873593359128544715666903248654853022937728858109328108072756094899971024824133100572958312271202129677164903742731741567760065801568176632868941473033147208466499198478283410715084540515287886981835337168006694953850862232759000893925565465766820295228714570032368775616481755913786401639696451224203329892898799153843493804204919225076568949998514166296239381068787368049714441204071727388957336385656727589777304084414753882111426698839090626925640388113570141365461055503680483998075779953649505167751165672674586564297690663268402450375158552290147211552802518444762727570917554731048459071303566207618426294416293070616708175526987771654809873894229973709839929628865029330607933080652990141194262870289621736504742392955667733430818746276704349703586204383755753881859937694813243951490520659780080152807273724669736752354830397421214343760388811305874390211335032110986200565570386662839631330449228432647819001820351829002475321424592930400244839370185319649629975683370573461938898477383907137140510541236776871203696982198589130422662074542947551646927425460920379755448569195764087278594637531326212717106980201585479933920994874497259713178911258932604570635833216512906154326194867914029947649450858232975971568051666053302894081965799974173948698764790139958490641970688769044079363311261285207454048793039823004869787109769712712349797848163318270613491998074860409464215839498930357856576942524896673163049019222724652918707989498297729274685443893476663337061317109573091891580443231295626244758750636601258468331607745044491925965498779228642819947104218807448694708870036290480085260159579197574719257807173478364673456332959356120735966600209983820397930843522554799934367015246824323506309588156271237169910922997916078908210964644782059165610016568600767948620052408936623727416854368222736137330121100779794708157253465323705796779456549338621862136801752819449773812758292436318176646052926036631257646341218631186753943452840057354094612037235011624503521105121192093129822998655322176239882383139175666822369910714865038960351738086900485162637352730560735995025849223999411837609255869194516679123027673506918986513344577779128748917822018358407836277915303414593196377767718121113947998171940378230914352290080494397887211150749633736774368084564029962772777959323503993345934972919061235207253976167657147598277256580491469184906312385119375993793915555220106019649375514685060211755760970626735422361344283549938509444413676174849941404983258554809088348460702541501911282285514219658837413674960446483076879861862477822655455439252896776429573491352325550083322631077393764032559993998720343370515835938746589398477525131314972257325356227808519140371968614099458944058701718414925107779471112036749036198555518494572325878883219933249608623022967069918547260059895867103936782921739476756652094113651022061249797528995715812673374255755578961554988962091239560515449345347193450549084995957253957462273705793854267054197720062391172138589995749170050782779034111185261768305800397643963194172107793655249882774516009039062353019707116539329303275997187362003182724983317932221538209316181530925357808743339271981191952947189011425109819630161251279972527027128121939034675873384591556744430571802873415685280904995917734727986442226705361680489418298489880907488620718056200161146187378973923516588233934247161602531122423947076637959367067780879471529723530733568872638439272733063746131243761874467089434751343580518618709389016298591506370995045114599190775173250537778946391239944266770420769736030889749368753734697462398795496134969334236721266335304313102296043737865656177748625421566614444898889951918023279290784226028208368243309371471269434935711986005224615963922607548032173888598518683171107608069792826728016921519779413538974201110067349635421897331709363119358083657403026607833935611168228139885321437751796909225916507200782762098736573714880196631839880636808705609793493368738728007802657209979291960414958372558904654724433954917208019973738120195979610960004602725926196443815826740105192401056981489094825326234437621529441095004683895808836430637589398232126071855309153588043350834350678331712428726402858030778508177952790147720999882838532941306982149260259832214692438040180688112399196193131326854151607341996388739959124148583134949401871204033924520936486324683988338308652304279637425014946708117249206437487806235862202688854272218356155177213528093237893212884547271625959713633348551641954319661893930085559382659619313955959869316789620005239478495792864665230696327641205010020736174179949619964741244709373516576820404175756329609861566881499150648236745142184368689686281713458941189437746426215420228281786241265414210279384438161605869519807692134430413693406055324110560646155386981125429897204300543003770831788894500701072215475682525402419381342487587155453043287649769994966265964154852704871864232846271617021140232729731617597126222683855015141770726829489783553499524964265717862920556163332879806185656151401278498860865518381262160160354162824352102732892743189715114014361140594534282936771630848285982872048736333488284833864919886246909099006123358198276638169945070252873594982358332766236941436885012562406022725166455443038303769993864075171876706875572852801562980997981743700546143126130289980338466966345893566812283619876539956125579807472345766546965637872140549422150921128928878475546607640442781672025697422944365450054143928516079789486636060320379203026199229129115062932000213703328979549291652330191553478045355959454533527979724638957486660039431637833485056596534655965042637175319039478703336197501470378335947512044013777558968309011804029286469681455644577043164659538098350205921290309602387358009280434467481756017463723556721759703490332988932104308061267004385349788039985028877724815704300205513469011390347160813365988839921839464034496065192938466511241272545197922628838417400898549887844753941103195274267959373779473007770401296625878873869807917933522914280080046568601156428361069838008903886864789330940731427471022358963179418153031283555840114835597011534603267065443913216168785062541475164648111769432033109312224054451313086784784188351307970087970871100629559778178789893635831393161300811319168122615274796238410131276491391442826029319456049592767593436103862798574626073521431528247415334878192344514907166494234087078237070170792994215095270685761551129997358238814347419826173022776337856909726224413334093382187410185271957000123501630394155191578478017430716558601853090453735231897639677364930608705604384383074079581985358737690866694555218996630795344494094009417902894192437956137152672874644748292062564372998509638095339106268391870263605672782248711629355050827011057700970002283087997390553789461836505707808616293760157420180670556301249029328516604585663600076003371536673820097722130884677791921769175844851281072879741822953427104146792060716110134511727793857812110231107840966599528024294453865762495172031813352721628246429204809833509059803980016310841022774650884521945389600373826235736292871659476467456889373580237011202511864483572082268520923119976717107946335019858419465446198484683829569930993143276124407170107380549648621130626323357464224022160024484095962890793422174938507526854091410769907967710015817143090384392468099758982410492054405879994686230071758377672241161599393219959723200340403250469749952273975637239417376375958215845122800747026771268822271719924963194107601744229523740793941864948311045669071382179340311848136579439891318442367815333501046314243592263015262073032325447518207544300578372585402821384494626428118175908001064752392100411111034389057198623858187826182754944950957048026308755565019363968278568544432151350945472761572712829971367522330249967096128393428791404195577591915570674314242850892691758105248336748632792816439246458513807604714637147652766214600597555291510030536597393926644692442498134908058422343658866631776090060083288128849205383605404018830243340363470269482263253313740960817521576405909955392082691343815286880494624847488388981496531562573013938996796893970431641788212259806506970207346251097387958009919354391130349766432108530697090126461618261683120243108345430490120360268835937106579842957920625737148327804769601539208380921569686696877416949605765943232340735154312030690420863276377681179827992592917230984055673398575968769772615528362678093119379324319549074519374800433464175662535118363180592570383088355240193368966109633985775960156480162154916593268397911889403859385838464560173965108683226165925883209859827208876106387941506772514510691348086280155782776511852164298211973182803606335911070433737949891331404708027942057216350916342460911923751346721182394017447481449594693882279243260432114826366626802969803522829056395682977629573945543476539564460469100414708989368786831848774275425147617635193227952498230911953276219780783724447679229143036366728174290686262883496938988609423134450663439972461767774277222094068052165694222498082316400505265004385061043583405408049021791956494643713607374739302137535143631409516384463119831236412418743869440717427196880861823028535236024289672602858898113513235903568115974569540537921677863420964176788836646718893072688275313508232997846202915096889819693425604148079300141694433864174666427712058075725267202116976253753260813162899074467227567979572122454169180737641556576362547882810427102703562885828460081638484385560726138791662029007126945098075703026980588604779585991769486790574154885640286570322332323059900728240898767651319685908054273170147524856804650239323218893583938408871844763249226981039047616735405311124497120400377516978219100423792681109309001372938589404113659026465914749622260629657122660328292509205414806609854551497647887566455259729948864978959789980343371002741628469211683237548911132158182845625735160957868049117736977761678393301520231019710253364529958781896268768793974474934941775226261571174435252438717373717838361552045359248256440629707450018318125978471983886158887781646043236693908313512131436041096445155608078385650780014697084590745734160006691368613172199692308088167343059757534332716717181459154940298568479234642334308569406176575006349845429102642397002805177260991151916383223083423493267288050784809630349370337423719484953172662819133062166516218969278155964401089811506566755461072925310508306164629568052684980786354303944754991766450666123873953923096829806768167310807061986384382437219103877137650010426652283170807662692521148024423889695788106638524523709878663555123560259806782313185748630715791921781041125799182048253697393900656652036353472450594020542040699992732103758202679603170532892577999917714260395587308160374573660189151347335805131942648520154797921311159535254874784629832079246699029783919562991255859351016984465081289623920416778788841998247138811737146426467043666037424177624626790712337702795420095101638314815975027557994800223084954699238744278298871852053120018033195569528482669518054118917149087564301285863723427408809431053524638034007098294573230254359953706511451151945541060077381206069333230577096697376487614771003145402465012566983223778795377752160709411902034461070996154463472858212284652985407205582760587458977254713885192099026597229029964974236094368855017674952374412147570877530688466597198093450593367286465050542782128211857391964912267376209030781043167868821896337651161210224444916833878507440985255233252403941026886552883907199555509586197941415987296356613000370460795183308991180246035300639529651182998949499593265213740128984367150771585545494517752871701098822373058948018914476700783928720795548599986871031639023693600659043454625967386766911891820274239160988525655545134592751176505863883279776164082176546891978064049532722815485773968774046199183482201522116591171878539237800227631083192438223465635084874557880255575629438077550187938125922270821800931331937533834447729291423771485777520886896314528650132617618465088297961626493797962846746462236379509911019125051683368716815176161835236499775667726738876348953463662144866473176420059336137366316613375393873038861237232028651068564922813404214445055635268633585843209410010157102055285139733724137376781644006614137873151813410715524673497419267945093211869186229560259977298003273169154326634308579254506225198128298815247290161509066573651038709184881637243873695115484952988575395806469848263335695476803230063442238990787628750711718557529349292944272557109054123455446036962245672786233673730686404346730592086327031604354565185574532058464869721243791090280219372540936896111651464106902360241894379713459130023398195114610963664836449833869277528883561877423840913129654566292554606257497447196877967706949018324857323704566598632335008520784171732458942391154997469583265100023736139763747891978694179837140007158853838082667160988083645759574469680093486105534049403654947681882105586249342456309767551739924018142584531348553563651549127395801192462040846617698710073577884319915643406815998911439042448824140484769794883360424223156822928503618975885640735557949886410490855444705697030381372425160571654823268400280264109191725817974479240465384182685657894634219842337008140636962131436135713370730782460299671270265323295315315901463313491962449046857953305632318150019239634274993122432542152970880462334239579974409321087936468396231850174421442379765241180551789170973945603999371880991388889529185440571431675644040563586353812182306361479191200388261020109754441192955792955518557039515900371084594469178041139417038745737013677389448234050537515617038889322512710226881856441562468067142157744673826157002530272465925162921244363261527252367133175258873880712910492759592837945140553934288273775256824726457578287803705176063374469944735751137336135015387708598949458515115008537239226623175795221664503819321886989625601518167611559315427530397915196033805125536901668814628816053984842886735601107812932203733157630508737030435385470596467010913851323597988220426058725944721995710541223492882406099579122361075000299829973575891923847062855496417209016036566491519948695827055095312000248526154303833532279031563586197727749533056528821198277017252677647077816102202291569432007888833783169744912175214552683275130815168632120576749773826028833529077670412293799338035012798944769399029464002516427323938911190180396656734406571591531206929791248448721946053456658967941111333364040703005186070020287299229251532916273849101847735355838969595544845607338499440398829456788458220231761261729194231535205986357690577275767685795835586997385380568886146660509003284334834307757900162770707910896592040638428110630217085366183689235840949799308143698804497479939311551816031872871946640783455735102987376503800472906511298173543677955496331947688634852748952334357768807311072778005166436950246309342811509867194509923515270315898632117549707359604880947968305944645270291814684331062085387110852049199385964162019657344640624736246794010943086172647841878820254790908088312222210034044882764145253651632334962229927357835651373097648672231449302775593795180034909644832213303083921794841256983409968137449675484555911038067336652549004478644550679425473197566024666091271646826279750864020281559794419090324139609041011128007408506846823597671920624509880900051694051821760800379330088389148235226293203942858013081993757316960440987707438349869627274692301977130687755678950930227967059570368284768663990697779400997620280209356000092771862234058723672460439670608476900133793409981198338837761822711973614209884199791892422760691046343707225668708755148396281401928936416055114937309905837838551430184615735745237753061592404196931181796546342769169758498255149449816626958305801610026262048876135651734691284868070966812781025986665309013559855376739896144885712698317189172998000855074378281900472275549277093529488862775694461203105150993181600869254013678618333757110652272152194548593594569131786651560111118465278706035945658864913139577252640924215896444332929431002080428196192365434347218716381926608377551724148978414530699275701232199648285847071700144431932273050407703704559806066826098264498847693511179991999787192031429886909638681558633031429121774698456295125001741637223780434042338541987722994079521069832510459716565698671615742270489625226237433845018501550605946150987147466633287952906038535171632528287639333385526397154777996871352376823461672846608921930179003832629011730591111120525175891825804991251937064154490359213384054195896810400160578773234167926002019206263985546333939332736448612004336287346440899441146098790644890370485951116965953159289729657046681754627908997648932313283796989879978084088675806819539109406846359606411262489521406661838978365857998029526861910771149195825661709094607461225911122415262113615243428318890703912115757420589034574596787086282070956749895158795870594172143657355608584882692250519323403251183263208511130274985449021688157541239662500559828434894562594742788180128054958091798592484767329452114215439060567723655244793535979129081716798675665400476460070430595928829422822674966882600073642815638761472775554427867878087382624860582475246820258167803568223912360423923277528935626286958695941205218053219113376963295473054769881274878957952291404085746782703569639704866062300693484700735148346100538378279096211897930633455020068206573953520420620201582519933718708454673448902033857456790701572930228336340604711184054989555214555551671026796611814691876050869080503100793024185977980939458296460359752939796372477760727171523319723930999260633991482084754079326518753691569629854427123905871405829560450887867245300049298752248910726786531673059728138646029174412657996024155207892168846482649726586377241938045086427040783825735660960880186864864275497228428560525063728492821187868058045855164693470321234487000279948452708480913681179235993370842478283469467421133969126571283888929633317517395145548415076069370181459198067093837034353288174144654581039673488053808859710922987582208689773853520415059348050232349611039844212418607804223219556712113534175774484694865732404421576058849048585356465151982160396912734075270402764421325363226160578636847159237154032277331971342672763348147848239102793940029802386059990151963202827678824590101056851596469978606965444275833575457703130823609871152690913518092251053903042240585614335169262652468633873765855481657245767285080729288212153487521106267311194642401923861559347645152658175545357458733804695271595325473519769415570108421570074691719496117857354174910819573004684519742099366585531646711660492944502508175901406086267261157040233452847080048268442238168980529539261987479779894562196861390427503322839966795009890298438712192542306764317971648001967477288202906461528467631309138616710624632223836856929615059859307516559649858801002534531822517898928109019933634231099245635997458768588111228928609316061618030446343574592616120076466529690309480688835822097011650326899271539044186299668077282138999953224945796736319776908759791789917999220266092211031182045720951766723938213604708471684217431859107439592293366181278898336957437644347269906915236224272628571186028791886124226444704511116027238838528034866556176650673381880746245090420332825707889968573273343420686284069488736976249515942122387281887637837741903737198969198459188760480211480504966836940621261344464389925606632257059170512627634276378929450574767997662077159702133523732639358338751151133137046098955557330420467029917395970659108358107551788727833658316849364690927878709564229925794405463888381485622300574002727353448446135266185027452659300197233146135187781012752485348658876914173229429075475952964281782060189544300063235857225564936985595701092189829586450359893560868362001151244525254502901900132590209595098854562096143208856517405960476560747541283778791321616072217193924010992022562435611523422147338123445336288176790385697689340638527872555382785763578777085331574400313824635706011194807112127447787336984696087605453080531981112293700769741063237496427965023738469462106781034570275895304128924573132634643155119267720756318943110019365128839268731871593176892805071591210106445637447201659863521593446167244631283578550008665193042571451573626257003924108228280817649595201245250551290208515548880200816891608521215009235662711241062910801285915754904488800876339068094040561556554914812031082603329756156568952889023398185422968164966815589731153161692485526874049910247445747249956160622237454344315808455039602280685782088751795941305809798549738044694413951464141398790274614883595418212035722518480855795019968343224947375338785843759614913615173619544849872095313474293055840798495053360439890455870401625009453554527148133911557481731304383400354561787865136132858389497779297235777134400939718254484203470702461500606865963807867058215027326580114520267111539864067421581713902605567932046100387397830045855967664498394274522655246590747091164078533204425213975516839163217672017711662448748029571430378559676992121467030838873646262440095569933165455679631277755873486978145408227513474428467930012106983804701139212000803527337912580765147787331301688095467587215498169653407724074053137354986693113483736942948762154374750826445813689576887684216827408960421412567581991219556836216777681903804778362370657988524221660164493346961779851767874076317685226475901539660157624425108685308567836152139987501893118292544465259382737706128752399498060397349290839155818755124991183175567393644170179925417813754323308387338080322916589134797178315356980865209419318594793066352615106527812608759185770349568709339811659100115504187280182420492999127966068279952795713445542769633017865189917551381530246356093480600056461627290387140102759895564544294752332142220146252651313066067444747990138969855643452160932935571356618357044156339451652479755367546912730940760730945358788852179256463889233026608370634480050854366286304494171704454634561932006671401252093680689834567165243181736582509035138755470548638199390258277617910691170178631390963601605550778168844724427194189286937608126269921763938399679085395750844427355052440428771792943547070792423593039730781605348610951702136790738834990381509792482842404008401024579900463562578166247718069834109056732062028974604228271405865190149897273259620045045147832010754972556473872165340661019445063115978625972744119215631395042852230294887985895384823177888359189722431792933977595935836477112328272967627826176437964362207878934481291618519588084547148123994843057004424125449435619409027315938255899679470191268209707075110198087368794063965342779998557311326076966712441157777866436017992550520956129149863413749086889634535394964420400277034906274962738649008815317306014110014066679037319984497407788293935106284208864123957940718368369768884366346022477164517950871947167230419062335430320630226551488728254377571493808089594743431310477057425573116622087223862165270720034823814521995967952441501993842410155990798825711187819064561855355980207452459886681863339777282431321602115889976200818792324383318511930911772503940514917420194902498619919205099077588539789914608874753107793639125929034944604128495400907194851885706096862851575442307628176524457181745422991537218389149609290318856202972038343653545130908948022570058848232467144412637229085094151755067194111293366582600156229811263000822620647172402714407377212584062255979404258641833427179187463742527938745325998933285959818379851183618915493426261867388159462606341166358771300587789511822647401153589754366599242973179261631942544965456283241369498947561344214015523759301771729263800246675378427512466170761176818346368219413899890471329738377777460028409015673369731787075690211005483261404238191706033274338755317238001073949382776483293435066842790194319358651134481123854069747569509503358565743699976087667596308200426128181185086562449143414378148399481720989691387896940122790303760453687529691766137195391679888563199022518278841100539887188902777465508598948520665163159052096416917447654350283381423637424674059920395366230833384749541806432201568836125738753426879851121785980953356211047912320985057757299995572421303174020523816870669874934495545263506929480348299878524865502831965959588743850827753227660803129005210556711250893434221166350314345667596962443550071821729038071111033867601964872545683132562676453744264421937253693297327153218739319579381780333176775182768206895351628172251059658478356800872953126183607068414324590506166247499869568466907909276181746196062659172889268672317195084399534590368795097627742877375294851350597151176439710659531958964693022974527154175221861866491748499300531016362920236159478962172317063852635425843254006036224721329713505383897979198017584845531726111565372890620724649026681733740717687988322796465499661390022920843936594795601584555843934145393797729464643828429910151564384771957317607418216519121712804189594890125012428999540204230995330534604046374046590882105148772202782917020728875863013191250280966740038264789996358510711571539889497815991811733948259466278790689821509298852103684221865135688903247097496971971069206759215658221378355963836665139188648880951100602977711852728517690233051083691687041248861977702140011261359702892181414711691786749869254196239822817143061974842303897584579991866249783965946917678627980285756091072635165141219970417760607248698596685128104821872756043135077145055883282222299756482893546140228642813170776346409299714044746495763573798286661106448450940378126318777130909166071499356084680203087992222290041417038369620423962411975139745791680336298334736240848764663821019336516762185921161627575904379377402060165643503423713266873652311596297816322666160089067648038411836149256381656206186668708742055895717328941055591070410476954948425690527936035965845376080723633094954583108227545881119443780662726705617517096225692870842001874383347161154169920389196751405016962474710879471331030213237803438716576608172833110182313722130180383534335154280151725679886493046247671803317162030905607641951351506447706961286754820320607459760627293468020172797524767472282646624243025490467444257857474006832073479567852611606133878858375353387616576685394437052277777127197465954179980233500049751220428443050862274869672665473887052388001700477184835365528861500302253400568027572312447808550335489382853010803804945163053593930473971686016202641592130498355508920799880157384194526741756430883008703438789639177420847840758605736558833500390324286920255860366447600893100564457276889274200380753239471987582537227085676308536904308576719834985215287734897023411033258970003136724165908644353983658665488632667488630128549599336524131184107817113080124422358765472770227103551588361877301603245599589476482701612981511578197547377488108164639147058977111072737384468145913934417125816341677188914472603461988415360942914458065764132829552210147864534697208233955381489960720027118110184752366991787155797110399110298468804176332931158696624358563569555302411254394677646398990382479961115792548221023648435116972234604955077072361159477178457908619675226385521010698494536592756764814545080069252216182715841348842184321681642012071098061862577970167340866244141036809243396461852143655581691952056832602181330629408090481909518732490081601550991444607775467931143186022615070385312155709081079366346356508341216119147343698696105628351150201608106052852978867157190698841535882431506113658566446676912855233114365107376601614760786192349553748463409579545518886480172621425042887227047820232214398638829655780456705267860032479617813084901147541360668498712794882112225773254018721153505931402231055975682388395495363400298246490117887883687504329555771620488312768958523817995711712481820169484821923192070344037596209700625843292926984868657251616924489160329263006903631193500891677979220298620149852519369439749410838685822901315117704055085055051200361289046829053245124740106706267521017721210298711927542528291944547806585655224019133947948894588559116697782763461838750589397508714454065643931695139862749985960963944311297853086339204580223397714191834094998094140811929397700259390750695144276112698400776120911008968044905247628506615646428501662864270678847309009826444658974319645183417367924865376916566392091214662328081234402513262991689561557064316067743435183433522426609051040681658579268751385809689502959032784943708093969658866643852774826400032256864190178683869882760385092826179805463381220482632229266417307223998183322870817491405729891279229740320906560384389678196281529624387435482328437786446037181403554277519366745533972965990186371952623304422149669229207312463384699987977619393082581935639713876750779887750270401884856619893017797141186324199144391566714840637472506555205061756277134609956274808898675275325522504367007203764665138822933075786633826519066310136762383440667055158184863064547797485721964233815953602511908918075061402292345532292152038190137993972167146230069952466982562367117526115143049236188469087558856350490501764559490254862305650712134446813110482957900114960725812879117318212189716222729281452203868945696925199447548923815003475151587340436085094222010822685741450320127086510474362046733902663143660544526650014457405040745858079911271105049213179493609827070196323886121401528203254161313427500574825355119383481674344210494480511155569245894119866616811525304112537181523821675925569172247490157439075904906802484895891951320812913142668920279221831223349461283317019202654214781741659174701874097627821568171678217591821981378535787389952985531636974136173691910617556408409092878725044768793069848649489268238732547535731274247574493917952386056078294148635068991922443994592493342561301478410446217183431161151319089753946170826480622456586345141174021091527654055485154380434253864568333793782998315481590733102264487481610821299025959386832396420478830328289165785960791054168735638717031249560639881030129341512650747779538684319643995361585527963030162581846919552615513769503641559578524309122919409641716615423239029118741145325532157240527295772565089525701153946290028837531085956680108980877371947151744009674618499254801430446616336424801576106891589886987764290994778004281200320551473992968803584738645006986135747280712658325525753522998805190317296958055169389201224911300643271895269280709417675422491798844126283066756083998372254081181229889572466214163436445113395187632079766223551353106377823992071370066730650524377114947384788293922523972785660152827578036401063853886114248773321703743020018905366774184497956184759121746982197740121974330351867098871441421018280864918914894139414793867392685149480966163456098916722014672152062018784114408242613794318837386729248994453504123568157472601970781396641765355882870938401912345160599765489734401185833584459917263230650618169714346209761609326153896019528249699854272430351957395874884244707534204962317753534151292602251293664426646582105922657461416577978903960323163767546492810815747895346863205272023616526577169899540541636762828609729824217287112807077488417751408810545450232224478931047376634698639600294864888527004162694390340424424774381084762853748928600287232997202137520097176602335596008616329744382013870967841778574841232118270605078001546272043873719977585027256395877906337285221754116450406014317949376254116394783117158800320258148190048599597696460356688212842642972114569776747106480392960527499512348370349520062411231338551804058673237070215100284323878542813128553165569756258372394603593850961312301929204423453531087006783715193992589149058000206606805507558396202279119524040262712136150194000099830529368856383747583826880807640151991471581996685356329377681908274998205955415462162746575304170652901799861139414424140916753074444934943363460957402476522148093342022165671940457498654742333724683111491047336458568957704880105230449106250773454471348833148787754899143872657309957974433781184008754488929869323721173869348709570412183013814587883360750805326032613072964056819915972679308718540712223674376113475785942973139890294381220115843377340796364489443533571776786130613120423412264182410662197059689570200799955378749609770984001367603851879025797180269043611151293146985376877178368842580911942047141650231051203623878309138006129045173373846917578379763226946962688492672575580040523066417856902769545579893884847255609312895557934795244981108541789358163824483240163629979478379995178554588817340897329757144214804164980948886552629196576855341092890794657021403185387445233865560692519363777670901118482470087820411223270390837657139688596139562328718303630643627350388658234950793768691670703995279083626531155512722248618263310744750683292319209887168170733822035346131540665815234125698735696114698593652402686636982376419200710515694549956317283189975684008761453501837152091887171850136338985119312707137976016451540387817370433179892708693038958849917998549697875916997824318143556588608250393663110935404575736676936824537739712239828914862282153889079995924056534757278884418835099834389570897847019463491610450103788046868039027754793368238902462891523386578297940745079182820756002453441890908467654917820318466332415676001806709602652818936437144788773465495833116014489518568209561844896352454057194500060819624153245641321323669806183527866671655953104849580346928924730254216286892237516256569315390654166649679190256268460965805139792807273248004063751947300359211408994992442428266791264033641370224708577456591945301233400938935814639255065948111786504726260036827454008455947534387334324996982491870993230323861055766615201909926334856532669447210868657981142670112099489384062517068495333353739262808074599227258451220555883267125639934015205399486742349930150292937396722713746320840852647810471140866062682192628720475806334294582004056765909594322726148227357404647139660651399653197864273111826770078884322112790242504539134709544205119139539763774241631994733843208877705648428786226246579716244059449943163165963260219214753526813646106762434254177327004953134263313138147712510237674716576110150128283653699564897249307313007496705898118694609062910749253564191413539582630041339898325999470864659262372352505264282664239151229746087792426709182727596012852867011105146018750954194351932489822644382124432557946489305713817428784393263315275894150477145181823934615117225239275054039002383881798024152629107698010751245453593617493697223558679111546364792093865766569750284041914746749825424642971204323763159295829076658738348654722700558738328060799898584882180119747653722642268938316409163800442788721825508150770911519007284009129702520133030613362566287016265455128770356917331366128863287840625068874903792451792621689576419335666772308607423269474574486197927688309027174803169834775913957977096285330493183513762277187969123820253762002776408072112331829978215268127365947925388420024545550596161924090357610124986840795957629222844347585452110395539263599359454800828789143506645743498715525277019232946997977922846175364979558684768073057597484659823947256723825689708316037287613351802019555527232650068655193748387863370220040909234686698021172667692192209491940275131059009222163489246598965767082354457550982029930230640879325670837026799594256123134789742455484476976399743041169856360635518980321598834104504067574793179192097575046886827312111862294963260472001525183560216383507590961494922644264083625260397129960496440560044936153815944846558203516227541871317005457902377372847690461563351276884758337729113673950568777235790036803740899989101579149875224116194350195020140222415243065565004190613230724008773259991225884932440750711279199470966568972429630771461569685834960526142906900148533565364412069290076931451661068094894313869013885765655479226084292703692209035779954406971042213873519931621169732592151318628191186297492770367031685094363265641971103338200413067116691634206416455046035061304734271789037285201343893721163190293979441516226695883336213536548732280761262436220811937209026570641608718219521231912174669980944736656773795201052383114943229815233113138864209518865834556790927935006840972775123139805978520907928614495239995864909214107012013100436795553057802287456241564026977607147638570547005772013485443472661154594693783031225042940397871956523900091416690485406860981333813081160362018087397536533937275620846651956632989168690287835666818090963010276953411207917072329451542583012380728145609402637768955376333038771079099804149828573099621369174665209704787057866099525736367294739611160060590788519327743378373260693082640062215356478999012317958959892462380336017639081326948085492705393906407277997973723104505137583560605240573084488125079924054161710532124406328688770420318375315696263594876890328278226996411861783212630141698554410730291697458709211128825109223561161551116349430962468684133973686728057357399595945825336601299117551516381059069079975252045278420730044156186598510027692459954130525574909010128064602921695440660589047415453806122802265947800106582450538682455202350770627009991628516001970656231518969488179541481700699043153479478276245232702820637328739110958086637154380894772493436182429315605122155741042862032046695929643580017364222458010018505229451463387962763229232354622734206959659908141226924604717719820974048661737557886984126474905958468747181310332134705592921298708890545530223354709248003893237636072136002280532874679252620005123713749216817172764037013324213362991186590037145142012585440881657524759305354854991149649950119482684593994448523928224343621625240989865514051941520776567353934208795355875603891102322735434419019577351105339151938115210830003045765398538601957947400750243664113931322740639996001995210175982037232155655248147465502232435851564370821376284989222484280057819304707747824958039671237416377545527106478761349229110318699884266674206711845412440935878694700934717853918219489012565620610876392967896482352979273333316759678897828461684797757844836424913203023532569717674914051741098772520653969593021258064397962989521581841753012183936694165817015304822124243058357929435267745033778609910752807979183420200591838571893530059834537894838281010544506478865236390114189777391489142881243344273727717922621920277458797467727849422340648861048156159642104926088241716650881369860415267965733641843787603823153696004183830135880341286240715821651809107108593515720370480312731742072089386761591019786745189463899648106299512651408909829814677643295666438123455833414997646353945472423972411077013786028936418669231723918303336258865726385863260722144251602086501414205901846559846302835640887077756831093095827172546178742863229616057007342682493681334267207929799452411865362235534736402099799758427644954294505901632359657261690451343664708439068355666538219649485806758789372306181113901818902356133577720966778197067730453789879488783513097350992470287513544194116137509672248903844414404773495233920502706599792341402167363228371282069656844123380181452166621063493328114911620443808918930491069431123474425525005788386437765996755089432310365205569177708976153790099560719394471350006822708123231925705819345592100018164240619300689688348364351122074453454788119699062137993451958454920362025671870843464026395678346306973882056442029137569045406086299527524473186564173760083921817591073159792558808264036542055784209902597672192038631469939781444614065983455913816820233566855392430703161488090405189209067803236795619983582527590528770003614470784718378217610010090445920083787546580643307100025527027427957375600502962252036451651292449936019509346975188401543011783109070281561008626691237869446565764759017500671328930356880739858680434231336334363762609465434439918523859238187456357465644073911218843689734920491525937425320310159296451605746090597728015219885832993630558836909023534441209126575968196241311395446275370311417167928236519079314114167846264835305719321556717428733160244660337737952988766504070860024426530330074667303767346154091810023489511955636049764954466793231137623599144127468898337874162118768799891793406033402619722422575520656806854106693120744642265444417076906483900726991873835920429800359846640255628573175930995810547851989582665388322648408851531684386037110700257300495144261343573202700015596944141546700154489323407918386562637211558838987440246345613865816890455092448387413932104358636824791269207243990281558683622338706757826010570264179903658372424170518557368732993187145113481642243773390942087454972792730654105873442134086176288668535460568117229452003953777560752636701895343538252456710016564811275344965415677717365820879594371625853355291981319325625239049681746687796626950644671432777299295988541903021424950072131196231157421999308568326998466284457775962472586210200691223105407420145186197557583559072184498640094191062568206602887341831661443890069909460646244804176558441765912160003758434530855236354371836206313017108707471058135990353670106014537703485879640647389369620509703351109727599934383482090131845758597256694676203048250850023068654312691211072486200574447984334230234297905505001677997871336390792585232879574931290971112161913052370192109188490790827960977946539133876540943657989197750495296185218471112846178661549023389865142161138162895509936913967806381769081135476010703746754803909737967835737832160163126322030964614430543418553198941202618000381905895646694167630476573673911935117814390137191486772707743823189956837427693201701974274300870435716442096182391808775876964366839053235046417771148182562783621518690923022787728195663693804863374307175615320830512497729658603664241343776016341393091650501514200613946344538297360673478375423923480798087414543102268872911055944717204639481797287115887261925677432379892877332052690683131050716687761848013520681349588986329043364179395936891781034807882014237927975224197744490773121451344633629366385393511126551968536111175555139098013632291737804229894965705890615024983179093893022328151769789597442877402490389995815450040470754643751597125387594234038693584272142678688499147378278958837673698180777266275924327823393038704853190529120562328298355610875327578471611103931229288995498957953964971066831343807446808370541494599891619621368125411123360323349193361294353133129225511840365452153369710806139483491186720372365041099919690656047903585104077874706919590404612138995967938326661389230489731589863633366083065656941067246425891751043872317777442628664843767785554411523433703777710584630735935437755677801190051077682673501151536130380879827267898939122722879082091209953522306130856495203521707526562294084040354395040663166435826939288633926289945151097061298359987402558346606432222112627852398035264581062824677037737013668343365909462244177291260487339586111901927543696886717955457172863022654377268979329364372925269305654683105901147703876124635751640865884924131638311863388326393036805415106346722262770242867729417001270943434640091411274062224640780558901416504986433659844078188430612204218405797512731643686912108773961570388604102578756542091964592165538197799650248193518545840642184747233527329333360089713281459059538480816103765120790461431861151842169209066493918023273745490925212536151032143800993923743997147734843646257032493493269681715670110303056824135457160610465835646267921229483706509812146041214778017224141535453354878973969468681554320337700882709809891353169006697558991535892593139285870437578071537286755789903337667670427932750676246715380558976138424825990857290666990235144897163722089477906338776544615500210497924981180719426931729111003656011178396135087073190006967187430239084805242865140724244270089841451356597206321916813465289440786401275221235706291769647941262057674632756201484864401164319893722922782480642325289117878935380401051066959699256900515405227076074813444575447922832297819340030660963918663057262711023618674632934146884903768736658369987922296314367278815291987540104962602074413470324614360371736454975921602213707328054600641160378839938035126198128272312277479916212535149435719616979944257153703591028848530723172375963171333792911631468575412915565521401197113362135137499351903090744608133922594206635752092988038324892195678362227274533205328443305783298581622976966368468307591727542345636833887289749116117755615197719941915321442950746436289735808198104718919011883831184282072302786011521619269120122668423341477417338737657744827989667287701522610312871124944020201881291638341486491834108623242919763231899289503853622466388092896591232345896168943299778530331729839785560913550210822186562602816937789929623966356220234712283628614837214718101492173539515577317092592023516613979135581131481114189689504333610258737660837536305594957605655386644983332275440382056745917215845799094106009799844829440316755975099461722815444929805045203594658625217267108460321439154968400249815869096374564600981708998341081376286188790339481016454750737077722695214683687925125713958374843467602258874428689793634214226798008124475320898953448379509005521864932523921994995859291913397973571247069038571095272696549147710997456907580542048774739537620146878386054815054110971067814615661410856953462980267185519409389017029200808565710130349437979170097529934755341816019140324995603258780390781071404584051497973593306092425579427571389072240382709549019751892806995149512266684242740446617127814904075635429125222909224827666734699718594578693949528434211269368521511620334895564886152881706103353307112497819448862448647215180968903741383994294165221116435141654462643757258361659522114272530949261453622499274075794864199035092863522630562772493259237947740508197326838296383228839405288978893961998298509370066961672926570030866679919753048435215504882827520724543621665795949594355449935926636281273075077533173384131549909398583244151925605606697013897404897926007181723897357679388180355405388101982138740967805588919044669432772818543311769952798548224794361584609722764745286361110535589598304527416031209781516755138087115406381404436269214048835307122372361283557424231117680022628101386456843552109528570845292574937330651994841404104410607121497946739001032022130150067557228044247540261601064288637139913537181274352184064271542455711193504863774736416483120773794912361477442867307216700890272961268343393959419893170965721517462196781570677475878056020685116856008715158250727768829084901887820349035371407867058687670249957919295541149154681141852198955585531699014767071032392678704978816434408734811377593451453548454811908268214462547274391663010189751495177493332310625383990659573181965807409195100377969286243627406875785714860272121529905806737806959356442092094194904954487855158740951402372913170529671104907910806470776810951486307268339523617768250283221768941581302411643491761770086852770385509285041526023582609216364689837866596859920816941872008269271573252138077926532792120447818962416560622555961093722977890185880571962824282845929286137369347713637463085580069170908317952179525787717730451590898012478163206796165654007810738462132463318069402251391706792461523279467858124249170883709149450270473559402871840752465738409374477593721763290675792494365132137506794325051956151825477904182103408872372832311112771782165883954416720808271923807062805177199118723433717505955531244428345946860223717467782401926297073719192532818102294500021433561914876574535492836939046582068218082592982551451322229721316620347133188148894248391272491392336003957870010512563299500216682512347648556765330445791392965432448620579513529792282140568026756892453339431262521302801759975227165109401949762655325432840181200108883798652071553681067443883108808711575247945283312327109640371705443227967404885531061180841327086323671697517749798329258448204314640836307998308416695111245217846688517025378659945882464509080868140806034891159219677649404305517843323043213368883377752288515285521255593830845280466069433210035776421765966649808414024802360757488164673533762083964943674191322479561467941986202691948226386489146498518291842443537054617235616185093355393401776664835293667218411880220440139050828808705763249188472215362212949172560613714271880787842946967751407162198480295468489887376432122849744281904888620012045627205345582252029468354720348900397544809627042774635778954218985892189391889834223432394947033853753557385528040152067763873891395042150430600661542376874587581918479245652173448729038127535941328039244524799551568019934375516914409530322988365033847148974465700333988381988462195626614147009659555091688503481517152056196511789346123287596435576440271914580877739149386979438902918911268502748439233972063003800722975405703228502045018611971886129429856053708655576803257451997769861269839362940021919013921615582776735709292541104890734151299903695453301519213191436595799519713978169957232896522944746106148679748706392156962842931578061020417372560765809985489661495347247940631569260513217021474579367643462613849201670108347474793234440451351183658720007913049665532678728296063505728600354411341509344863757896697836356239334511022658182678735219307098679202090726546313031537389604884908522357677513200484227216219418605460503106379525250406660998761341641320502022243803871931432208723511818806176593313644403378530685108937346746674970800791288462889644946863286681655541492106460663571897304595590381941843689864662644239112399957206198917691974695618379903866066998837820634773238293696347481198789630987172408878085248440414240514978994029412866586751330745177247980171590685643874743607596493585305122233918957446563654694818274951155857594149456451702570845276204206701102104431142210628852666704293547968269412283929713451395077397719978095808660609016468028448830251540211146252314024859063409049618733861352236831307856396715643344962835211969482714699039988592140832077953919469834391847291781780165183458554445626505543708208502505883892641286825120419265204504101622771462378634561381269643906452210834137221979846583522062469709252048427327927895044524987503910359830884941947519134266045884704804567341714970610022224553121294643386587831119665071063221447628901328017218858578008785734053234489272461241265016086888727952473523430186104042233450878118982700637148890344437003312899463819252179168729256048730809248821848218940255770086880633428751811626515956209890157487487155566734025934493282754227812431057999156037428131362656105466446683046996078948067164715440950162428999284566250551582894572606253343263217778243957633705921140883792655062172250523621959253812009242225502314493294400521850452025865187544215620025797608118191541930017221266291619588522138390075783260545202229424474854743048109652217868583023504538150414648621777428873133303084801144354015300123148708758908354024544703589086206101815113405284232102667160523358322446603373715608869893322537728774607951158365940741672422142697227303894032962169943413053011304948095503404967331995686457792091827781346488352199178068602981494385210603191570742322391287388671587508494193833587091364338413597592017503799975134793219711073145332268433275277883797675461218122148543261236395171375424835347659280360641518680985567981570997281130869354166314685440534089474876800997415805872950391049842267445700133642844480658038464501471605881425511341183252540070129138909367228917777233413794679596800387521802567118525598967372256859199354759514199497654436433292862634548947821137381874612486152244171205919438370434082849871214040545570221328872595605687661212285398907826864919600500235393103997097560342691572524070295712476523471535998259787676136453138869516258589147884428182128984003526428954670525198070069446265550714603568273441321380360737931464959233377396775295049111125708210771866558019041355213599453114221625169740239330633403665186053653394878909635235775685942144398385450967485832592254696169506912877552328433178547333616730483726039371937162598513844404059421553929243750804751976032701199502155244663420342523172159170510635021164822489574460606844236694213744064559002660769214421790986546959272393647344655175291031208046372415766707537183428384596625426371201603729514986514624725894726271607302430320102566228738742475370099081698980316880194207319384888816731817806949717027320828016922261486344699472801051410122595617563930944888187985209340887497508286885691885107292715937737722323174329945811560166124893610027090929554173972311245155014775117989145913632919440422802841214738370206720875686093511330839388358740927989274523076646613014224967238124405077453112601090421783954796884756253042737811626325334647874430454621759951998986624544269379838428468768941022368043722085360809503925459345985289780102078397731678629404986556719282790901693649400418017999157718087220087436016637237801333745430933922335176563245228635403275666043368711807746742029319460634898396173189932432247152690454299670299041449861403931737095144831720975721723475003760110770778764488904225480346346893848458451721534679169815781999095338687815310431139212478944039236584127663778895601453542273133006900403361127824467352156228293011737995164681190933034596872976197844909287876118249066654876456043763532482822401911037046454673371330018895835136260683963993378248168083775227126670899188206486281088566962509144111250398780150283380294116507227772376587940584221457164519809085456538589356144020399096311983077503656675356432865585279522338110213827394082122436508052673942018730289598113910668077469164304407902409419640651454112481460699826424426768068805229958385370479936434723729632049727362102312756690991590315237774579854568560901173123165798141077259515949742680556876117347370255154003621204192379692705231291376633856444867991442522207617600712239827773710820171541530373092510793104078084386898180670405145678495907353026114442356275024085974573596540977476620869073764228280994584435499481611299721596117058621384353301891857927631311838260685944432675043003776919574513330622439346915646834741664209205904414738900062746485186281382987436103103914659644036859580969901099598165528829483271567698250809610807320272307640988319217386101966367281676980202464307109322287802549582663657916283159156954701543438319384284301146395689432941994312474966267434195206010936080395865365222307688125524825164356117884069011229330112977756520655082537260649421656809690171888126350329650387177810317565613977930249465524213156755959089489925329879443775155345527635733168213320090905046788516195072381015876564197227254709463426865933873012940390089212685033275352001846647874677955078719285269768309684341681219310582271668797465629520309089682947109492724175637246168105825471449353238731098659764653781629435935864953427608145855690104734974523085487278749499867849790646061069291671340020749409956140594336242521024566297205546904959019961905794942008025004836998514225798645928796307747051001186163686500253417929984872002462496913338345816513592709715380851646634552098797337439379812191108209992170080271754005188479264187405649190456153147181614830430695531532461425042331505546918498952059091957970502391196581084473535155945545723255976716988928820199814220652400242023788768334712607881236874443162758358695248123834480651559180744285414625902394347373657572832394472142778109824710529085993502079422235255181894433133474648958881122303651286126640497180438615950050237795881067255700483076319751979231325695100025211898717781446590252063047236415513975291863128771792247551494454506206830620159735792602196499190422475156347553861978258865214106037463736307341672115522151030010708697359658342295831537975783478359492391024267142481600035936681101965188627980382988515942998691907433940292479836554387694326904992886535422874722641803112451362447056447534938803194068330504690488604779297086849450990787049979650320070965143286188014647955833876276559691359224992455011612661738319165532719892405515012088393611267576667070034149617820111841066401212960961434049620683884386407017418777283518854354353199195240630193666196364762497917948232321502373950967359328500517250642250705383456752087116726081245937884620500462849568966304766329556237237176737614359737009153060938676069632406805296367437282963306304285127529270616825680027470749588426135859583588295769779418523639078313988123516456089241080762567324388623425663781832873186105900452271780527677475737904829291560304854862212739986138503475625652700694032771969620002770498255848276293634554472201140800618469356565414834257048519686682272024036594046445248894119567182446152889282461552162051590279066651225924655942829197782738159487582214862720821916160623222995346805173833555416844679891968740386417677812715768525967238775140807901100616319592435979346672316359965183158916322018849009240269854107571839813991017282209181522150406949656898173667979798462846459854616498702669563864269848473242254430518407611124051964553817281170751962205067785985079766666217053938189470482996880493023871319570555018082551471633284718253792880815868699294333553839648763717073239803589309324063236247805365944208848779764544369315677603942572655632053866031309475072965236475294867336454258700581302535922831774177195014938111092119181754933031478460149009763703714102147446078597752669578921443799136687523069104314790339414353762726520156618659808450079974768889770383387128994612357813801812203401967796035404098858751648854389132560500354624679506305168166060318157044927884387761581481504642713163329874519104543805299632917649309496204605934389238585608078792938787488905637575712958561657698628756198475217125047187339262674692537200417159721796915333434675942284356121692153970870789373704798972508365263908889579908724980240351712643029214225168765637697913881534119467893660714864519452734841512910162564719504622000482581469496843682885654701782873589354921790291722436765717023406308838777791595408478567420381925811653886196350578834188285833257962914049461864440088785874301583991986129013293930382716043873329247938754903988349751051638263767496649127598346940231343385482612633243730988767216667135580197677597875550864650817925712116988592495767428840147114641419876681722483899190559098386034588837234398623084864664809647405610136335021429185200680954502105968494498663012543870331746368711466425450266768708807374999556020176533686695701870594142613953765701062686246517559355450356483945317142318963188766463711367114635648634496492284426972011571137868129926330003256734868238423818050738620826655374758714628422773743008423715838241912852244052855185058039482244692206060764479528123372640680401246123471214566604424519134696603092507844860372146754201084882395321991239571101515546870660329082265474466722392679382407142013610061147624357820787115440087120959618044655046526613191943340841098222697540527791121917340323772452382718528178898456734458437912736277818266430043935968774295180464288927233935638019100042808904611424736380331819250426873474564788175304631936053714573216424253407270964318718088327555345720267535768526136578348560598856723124785225630520932273630422650453964037691575970132630810903513602633927984699188046646854673505271382457706388945260349465846286127255344650824932875223908328752544991552416153603985737717264185128470970996038675659330766972427411853786229842625806119853849940814900649294925456585441239765413571208432612241979146570617487036835522039497050735655403931968634814504791019647806553464868122278079286776228045125608667783284621437773716020655716633477261593872430105944243020364870836194434189191033552019595469435964462525010708297542544963990432002937304599076365921368719093823400916264573277479758663201241876315453307754952214873776730342221003491850596571985942799231037060576535911633657263259610216513395134160915640780990210971902306608107703351154150908408584510263513836324567091221172624032371810374655674577846515931366818547077878245072305461894953583106626661254069236769226351030155397505650708469782974528420722928602538605529222368508448674803158842610832868766309810659360298824354492054843765901867084842185658117359814625018481353272706341399746433379885948790669632949089790642868297682658273455869375789356874204698434643976130516876633525509240575839512267454297962429827999765038176240771505587967412276595458252498287195496643924162162798141828804329745215689134034064021140894304504506559205876970840683882618830386665309948672421009345284355443531977036765760642048554588194831624585800924885687033357128492324029832082656142452766371684595741307858241903442095816978191480511557160906230394778891429175502260428305097097461742048152149505602783461631070739530902570432969303642248228847652261083306212193152210303056136621005375873839383686017472613435445238986608288383135877479008922012022219831333839492559006141883462308994234648497759715942626604532032787550380161910949875677693747403768418693785444898615029264628214559562304180088627094743010245057243898257712518557453129449094185211701109320912374037511022407547815938328934795959435682220053742985467444412147666570652015319231808729781530943173171400116783678123741255138006433938522331631773179552315135803011065265194309597988720805997150544634707146489698392846469497156960348200295184922305459944414763515213518056621654726676671724137020571292737245229377083866858173753520249182349699070634157457124706259239882936943087240729200730334904382167980507098351973160569388016816941433828247880469753828553540048521828170645785013360930847990703573505515897376088976711268971403641030610735551947316073842009754227586604114365570458588843846042128856092756208399217678681339346731543022246839828246255897672386848097177744540451868865149789468518527276038237786267917708846448751298681592177340064939631308650260236175092428891036315864089575928375174004995099151398264194237483101189213712020493156010361946117783515541573892423539861548850620369560520326814316567695681103854567958023469229766242456679117530121943806535937385227173228333619535096394386612774628177373534977375771378105597397516711299679028914880197028098564901916692941905537256559229679269601626703930369832026113390836013712400199637633558731075065123298536502802227493225154972198062796503208758511750124061646444006697003549116525189579660959479417475757615901592238654919394235717297342858621782123548338598781352016329236768808403862068138344609767581545686290805805805975259815575330265761278709699421943063803155656348315167899692098637909906261443527980002459113208292094934495137288346166061515251137834191577555807020223879291375629951779606165147878647012880052567475596724330036849554224717883351405312054818470272108034553073746316600668169930947683332871915140849040752870941616971507607824578653598816212860632084002707128573193792315359143578893180138388809424364584714258528840074990137312764023803567940895264643030701018709468587089127562592271124115999057374600984894529703771349911657377470484096260115713286357723890704059104063233726755378225261288146765032478945269764889521979212989400640788343598968798978906553858289141261593149193674556324883810495798113316356716567459411181242994634682760059146862781593243783643551780140910404238900308581813182882100914013743551377301903683717371356575460418988221286435918261101911032939440526673324205291770925414162655512528034472829293392675766439631792007442148828111755669620490517761332816465370999734528611113771909148405004811057990066915516362138594951296377711472088589242931287606675556348318455343392864724402013275127298680161296166492985765179783773968395067320701573924660577476790773027889159152253978169535750317417859392345750722368077673386910078186937554803536132986184903975638556622841824944093909488680177937390558592795327806201976118000809525634560995843894883253647006282048913441956235932454612116191669452126534573455575208704567387891743101390015963749759336279202500066445027641706628149979606871249195957803117972308265250875961733254992417926418099739912132390822951843581105194995808116441233447325821666144841498061817465410791345603667771241703809427005436188690337396345281184436966305033677622432498783326955072539139581089183292677376422037805692059620971944912283490198653473638926931861518907655712818900359180963106307991010691273436976447117621532180954380201810245344638332187046852270565956307489400400754396482644952504752656124753467090639720462434192953894931022098074537906671265106664142815626835277768464164198389007001142679168478987720970809416816886570330792722690430011434597961929714736448966848890148123374974022880717569782359346130609887842362316895053115995194602574679105577035306792850845280970460208437778022223917392547965048091987440780209284421133184731620080314310711142250509734755298549906564077206897492112882035928783805259348780879273678751477396989932772292849567844224810359472981232260249050018880505572288063275225968139344983228221024204453238613156647626648362015911293072116488854794706816072909839169753612473239028421031786788791794410575546491586961666790568553810777716801631599313660876491511708645820791888937027364698123094508372263823488846600665503931821452148937874743281918368033245376015419132676637893617682519807378012534149815655895851659920575590930147341386858085983049555055972924129134355130059903502098945440879236404435498466318330960827467284739165886122582450194735279990132110190151991237564988453596584041761178266434554853673596597729256196360709944301620669665520109067217690234988699349468268577278616750111483222860041152561773936794150319428635892627357512907375604769365963147224086704025434668069674796474042940047015683785285494190688634779102458461155930716434957471549184191802864708236313699213831736856716350782379084275930538623239442025101021479713832576701487780470883104339950189374394756498148551925323624897714941179516585802692932699293486253417344526071947511337177645811165290779760029424761502343417466509375040578969219643736533823668894120846215931169342270499643499646176674178908544853428266516667805439221657899802426280979871121136962075469326192916594126338382166664126546594744975330371539189708091475087857031230418032610588680288460449365744870916127390777862658165891752083318796803363315995405138656755906996884490944857905384784583017474480178617348388250255369768840328417644119841060037067046574822633594389887814898627157951624756108204594119272173078739951011609358318432290343370433863576940478985189089369959660679928260159035942840351637744407716402445550066659075297772154155803374884646329504171674051942576638332314771263345911760093823598247075883309617695873630857303575675099450870011190219756916634597507722424433676613984070774240273796157321490351386194898804313302185416868998411451110751256228278273599876205900591392419050855024762188447618386119182650580113535635622231602347855624253937262034748233259167708400270212660160152363577323953407816942989762134187508671501486093709237780543113812275561793411239177614738853202149343433769524355689286557960664654271552028084210956234116537066907779331447198998444179626112897558797761830212985899503960257295486008747431157755028512149371463055741309288771922920817378943813883432283610964071560382440693518057058277223077673458080059443754947403405477042911958280846106731801676090803567105428033654881509771623480042407024474444015259025499127202963617709075122885869175091939726567832425291935037467590099767991095566441779477737046810614516238004516017028239636976563485740735983698540724691567511693911387496275849207258527048032918229767081298355988712253493618792725146160625180141511341713810546630976448547703133644245558896419125025189426084282041242770299145351965603990037968827051160350539723764865055050369154771260779644279655237840147312976349769228440298140181584683818429961313352863427083163156750577714965232262411790202990200102439937065610153963431980381338823737808789680789645816248333377719408288172246206833657874962535246284226829127139387841314984905214364627036177954556285184632301806980402141849909590483567299830541570122033272209274855805764470107836478758839812074209598533944764030165476020863423227176152087925641344212167885302435119388188081518755509129091220892774006037355355525045942107377902718517334657968121589312599789666797511187393468442986551977359519254392167269713842838010663360721047252360034560152963105775313338330484794900245357324645662831556719787734884057563818010556768291105543254930884451707352129475366644152716723941416051905376222063783651006187705794091117212739013319151021190384437344717431056258652294141162094270202491718456431108637109062455437637748458984844268905453000264504058825618158239646825843710953956728102389249391855604609189842165781178367325594974956645144932269264427493712957750269390014589571070218684994096039254560402037124398302458060254641913293382077761523633643505564218824736616534203824189591252449835845862838585486891546216637773366318263327839278375578672972634931274013811495824163635302864531136928880680241778206767593037888137344889984825353390763608507626527563822525382710067810052241463444231513705099375498082960274923205911308092109767371307065768804721545251587413301083420938146900145395313601761741908836081450865443236402755724997203988290712128113606634579906653628742221289482450587984893263535076210745592340232090345582597047942905476431133752943032291068508396226418760709524706058258515352670711906418279107921855543024892861698289012671006891453232733630425416389274197083749059010573552761657709451803001239385144071921395374145912224740765500277978459414235722954312680720432367587765132611310414617513219730164330155360980516495875962926655553132576167414305015792990370765838672420035866120510619813668140658395898856625839901393517792462577745889478095163312961901469448185734311844874584292434884458695930782302677670636467104866835042956541248719823024095368250691442975465506229681910843233271508600445063874954309027805846393786830040827214422093918180795205720015676142681664285506510968245208662206912238538718153092637092894221363005914145304772928670985355669009807255752594052357989847458407909655918435212727605715105517873316723923082114001354205668562434727372292266716702379588782866703163733990316049214766746452345235525121625339981952849337445552945552315501407490126078232911229441584277734269361880572248348134337948672794833136549206076658744093785449678551782139912204510993575508191484635566753965608436236955197647659792751509003025636484192454368025904257544175228682619661665694993767520828193854156137762336285515459121941083042843258000625589041196223642492002996486091503751524059817712960751963777486513010860866297352933195462418711252999247495457857520256952105761281825226862335816585946795272565643656582286555876065798946008673377391304201700954495565207465405392456523989067946893826779014342195293197669363584264345041909010650957976696344423426670631319760446431267407140160394020308676947016280250644100139376704076178431371539654202850086477092272667698595285198502598431220764248861852312075409805781726530133995727527570151518687207797124653311742839300991289592866758555112746202659605285863109874856224244025698518309730524968469946795520658403765293289933030882451708616633930005097162663694428145933843975982623582127146046096060406232743232317232689486989681786522732813998384307317244168353488172187781981855310168520974592290960096324640051157887596606930654760239244095314918493832198604793467393958165602291329480668166720402400651927994305428949398500348157085484469489809108191249630929228957656669966913055701253997885043664488752966532728439714685277163155068122148884972879658660470209957264551969653215265645598797915344819737431121208848166861835236208064681029303344660845714331852913697345132744453992007310654748337006330437547598715894444200445186864137799051286601114335041175679112434620005064853643922257284661789082687743618802181256140135187630521823807191638818362535716426563103144491746558650728442883785227863740006015807100035457708755903096706775811321228611285911822039985512620264516286549107655330654751402669288302248277792595854708834121789683733963519565772820864918542862343469723227501986472473475026152417188436259736179586544578065353487363562298288052635278023764110171404189930891940802097200582018097622050160504645223104480550052124981781170261168274330822979130371434106356280781702938961373112647972855561047476606399379411419316693252207353879021047462808405090261494538414192358939811957706789884443317804358499923654035057214539018686601952055515648273274882443849845325609502065975601220377183905627461767200440278609483074413171718309603987517981030630577405491449733489590657935089924326171533493010759998900633859636353816319181155145586725100743649174975115731799448970792114145126844294812747907876199053173771314548139235663925996074844930004485391719378937582676451703337348674999888871134273286244588332136292418693451021777864817876473790411549389218414050714673773402472134886207072706493104110908392848325379158904170978185474720971221199630282819108224051442086390733535947098656539285425373830922603129913104025129897920142301658842069087493061423293877059312282960025827114787297562003684891370577169348808675740581125390640298181364009063219318484974669029072334031634744742737146592437795397810276259371607207973791055672048714892588442943476461683608383163464763534259557278062963422264154678415992390793654551754889886949730781063808637540903333615016241847964651852487273244355972560880870994070062917959923193188803802934442857697647437715468843742884752898347240242952324909921133067706118065946936183752030121266231228717829284684321654474999940277812637966710668420579170226915994886870535109514608781566982644772054023363206931567682402165661419970585592413122945777244039355147104010383550461286596861818476146290828698402757551155960433313326292955072716441417614963606137905271713672774614314954841326258283132226198050430751259712592664881925642891897036143767890029479771639521680199462554230544791669240834843321058697346280652877776598142193157059503836596749894259174042494330488154424845683769128493150650492179796501696690788994550355321150314806372667291372831947757310967620522526339984483329917720761461847357283542803514606755716015991591490449201375747947433809358321887164977192042732911154841907602468127709973694059813742237736687524569634132820356565519850786392689853714955311683850356526057625498642339500284140225362547624450145491496907864323045232989429691437216768592545510857752339742318915912822308561909790034389062000945561758183672637447826577394455817977572396564372280548915980241885513948484762681335558400160413520714104399810483433897409037666969236438258058419739444021599063579657907582137058866817640417315131553800686060560636181172630233914390206686251100596810465076370253709934510505095870990450923640758559965809793265627876275772641541360640814311033094541820620309653808517730216654481514380945650683052349520625507207983967102469783304220361877402278490327290093437869731409601214718626584839930443354456007095369812014267460258951440168988365796831043285445821861500941422591116105699527018826229547024656001788180147717517707210436631348826748576819909617607593091042499637677757202871143560346160767236021182004120862908113304527219047755218629006430935640163326436111561307148206123834834424878369722871579427814900749223714623592204140225386414498165660520733248514960046727549072536065365455001785879630609113770748313597517528608247256463814421789894488590582028973086016098951345517614388881327417748894670106367977646548920652715537479444722020303095749005871816427642925875222927909553159818930291744277798641799443306538523063193957234782995754500904777243846485604318808493371239698434060215279231040236868811429312293431896199881838992066074778752277896402102121036695953402422440262687709240972553411466390727774383365448774185917158081811002210995715165230109913031772468837248564145688264177721758673756572609489043162584440972376728769753091393277308335016401101183437582997317231340030714861638160525321656509671960592663222559197646971912597483115190344611076094218128811601164485746450101615264553116857503185474749678270082522538724748294213678299366317682737982532455285363527337464405788033984086007816532604612047300451551643116963786734433713765716174732100757164941776415941192174712847406970808478591765945475040752636537907395257971490303118806507307881233187174959621044766463144715708596813714425688704230165348188278592296664618302928769330848462485045868640802884579709933357664654194762368166222396810175163193007278335346290704132720544981258981766704745669796984594313619871349874824499808439922506781195328605373473741522436012480467300372060570503677373364576292082986320462707050656864904665803413053320950992677910071011122594295132843583596668143738844348663468614872831321835013738639648442733398100065086324782963012064882216981705070027590782767477798227646761044181993417755935723303213636930290365259129008994057511769178732111714083565798326707044915000944300222555234621435258590149115526375126853663431720301080568088423306213194429469500959594167542671895849051294928095230659140870938913081036726130021038504146329844230246383903469505996149677644371395133173466821400447041797153625132867259484281721615929936098601406069945154306074356168961103766552660151766734311079345822130839339223287093464743337728671900108773272962009979849166541096947578256381744763563061380800220906067722491238483491789771166839341190153124352557153058826709587614911290487998407431475960839530106584661004257242567891147022300637290676515366902786593954291442917310570612889127040846010321294502618530718187575353493156177118735726226922164216179104603152092784123465984124623108991779868891114493476216672115788632880501488719166253698244397503045904039362538121190336633445424066569000775704474632579653046701844505700900966447389164066738250203172762739080936171821598418830343410579783223263566606112181480342777654142368759864856192402179459532528223242323146612506785141498533383353842420888558405074124411431435971123715619341533852628084518388293725512320387306752024732093168136130716901209641043087923909108235371940985888146899449872370156680323543614480036184677742666408277476464233319987415736696689390339224001026331258425411908307609382416569872367756061743778905155212596133166612280934474146480400667836545334498169812378479111738369361478761410027195372920004051495383472347690317764955257562807156415249726361085123256142435131064295029071310789895337042928602085740087187477955289350667252325647638185183000504435333294246890022854769647118661103293877384329317496259028552307851249041273643818948828490450771902999706552524006561544201416186683845933420636478102598704320860037015702453666132293738655262310893453458654012785119823934314355744953734338804083513208669083518100740188266416686485463202666080750773666111886100077095138901836808170843486888443517875314529307174180993973310179330035465878928133144510238101309137609621238033776196859693152837308712836916097986985762894232963226935142401576633890325810145741074644051991922352353916077394957632900351116923534331848589845989457110160082829861088321890537166934189756647329743433895366192581363365566151408272331263684490706538943459650784067909863771062695567463419572773344146519704090123702896624333343710201766149093268594934758951316119885894536844843403485111218998395041527724684315816063858628653780195301667026762628312848794051587383876578181660519378422788319847463737446695576802514133749507409053822674480575366667642045718144008334711392615628275422718773680937615695139525673867717676509523036006254699232498945679418327787135754489252834203836483042771788276151424219273547019556919698976988470230078191725170330691288898659792304790749757699571106768245820487944584780182555591983566607393851214220960365887937464535810423954248905812988423986812805697824793774641557297620702112854240987085642248217001053654157495049699087997069781835753905300824270277599557856492615452731528525859604428523655541435762634835223803709504779611232758278902573631461238944464570868919085152535457707041128308501635849241178784094085505710498430722217096567076297390343819456459048071798393609814451645527218388503258406917437118830522772957096373901602931376476658810183575741973047890820969840985136605302624124122300489182055865275801663121206243014660340571522091401567514663052412814405550387063410687442897449664731446722441592810825716686958543915160523054385453115533838265435507717701878358016585958720486703962049142651926982735696347268797553690858836928735653556285305260898141472859618051687490080452554479805213369015178537661727621165462305722178877691425802442226381027996898180047128422754666780249911840347702305197725919967386879940276212139679029229563666011040906338625798881043444318654929065928651877133950482894386784625268140834145044322299888614201419983538784852867115678656627968160563350469860156924548166081326052927748074588846723464435017095491674122360120898378224059616868835038376142861068628296882128703506438335259221247291136086672080606070419301648246770754404639111690906071496135135408952927266584514266052568227402091329575445923454851292175835707831003494810115623399645187233138939530998102253937730145539739979102852233530776453524721887668619625466787818414789909996317161263200550047132116860385873845557157451526481108667044672730437297476117058792121177976023640051404427690226720736437967580329444769533924483275438267801514601790516991266615295925086809407243050488739919948181054704073681555049909895899065143047258455464158509939341234286015880185544124469196758998218627174328653135915495702360989492400332033858641460840677381690505811182378197456386957749019719293401388749213206393881450327758577509905771058302807170728657126090115869690909631508603226655153521949371817464219869916922926337284505810322863301815322155860069516488233948626872314177427751474032717856785371332574522633899543345624668041616839875884081839086469569210686468950641217660576535145567102435160278187817726460702641130647205613953433147761801912926516944308138346039007384707522690209687488613444099559241802050684590241683973322548831148351535199146322173765089402891008230064600850735237587467340398992399912913910272936678323250366153255764257477247506359253700598288823157691691929743957023312409744004139031833686942422893586437913646908948999833201037886071379932646185191812926691342734866300645020114403385777384954985057216478887842784122594203537717293115752914309834462676617613905190724337845813470481095752339412118700960652874165564573486370102535481347786261389521879134969379818845878470447191094775896351501107604955534929595972489980191998474308217600704244157525386455236320453451508688750931371818413028336120222058016434190954281067765217764647677252553170744762433939335012737446166934852403183375511716286345654522764900914052357837556954563776920249434839309828009740728676828853254359766650908620742334670529011901749209359740761792951463474304905828810331834746307805614429705664830207904393442740479733409513658928157236319604203011288845460769886208566143291170079644788274231202350775677542702252526557259190133645977031363459060754710173364531865593650230605464338529397654861198455942137730693069463366671625276849698298158145305139338329744572542173536167985357328752279315466647079162267707432803983258165924127178820061815241334920951017018791339808796552929726758476589368708787933456235152206968722528530400823240229866210749424684654813449365211726492445175301204431712392682394805980918251949843037090426075311213616875732349693598771916072562905705897469068232926696240037971821405495149956477060769981916426622831096544656912176989232307675643106451075169852749346803480369983864563080916865325849270932598835079327010841683399448782304596146958126443541332930349503428058121841925243619797484584708122221791537266670371444264241079793505076916980754168377302210119194970665140611410050023881549930395600950359794469982903229376627693414170036793532577402648159522012962186672071347148080434554564690688266294158665971695621862268395503238414413918062128228105915164098884152541272982247750360546328619856892666903127770354399395395217129314254778517337687009054842716761826441769721176495958940334259210100028851053244974187246325984926905816390815866530838367958013921582410780152046443202708749865022854468968737379599157776633336827263828125061320185180014331430561059120230735043261312557163347098931479235919413001161380325179334023228278181796426649140289348803246340367955794194775730050971079902091734999360806262826366232173912014061850505389323856716646607601114396345739621507955436352774450769689635165111688921049368617287204821524888476064461479193843190511812721023627433810304250466757525239267378417315734946997140874451659727956052644054776102153563471236301554341210356050091325407129407649902492637685983142093877741759106978859076479326508494107690070751654075742779218320493128840724578439351621579418973021936479533077655461468027390040788895952116823126322353745965773475160126651358626254061676170070944749672217539764223151159309678765711263402163710662875209462094955503609038448034342547064528203296737390277739590685697740600052653956733621566685331528597673961441569271098732045620082428451499941534921383041490889351212370979813665038206714906043834153404581720256748982648902445352655965048804052967593915062117022628496323801467472754645450979142953383989611771551805488346199982828621180250688084987702461129319499027824711477162992099718506552422629970263655117788118522060073498278673868364187876450093302750527193154112041338084069762952417539072807153253764016620859675581223696930944356823049764098731849602930348808016653979481906280875994739935125884156901556376320530444611210393994122697952449756411759447413664955528011909027361432322401771590540800259739553316105613270322225803897056767862126733102756783040400456492845046557478875006335772611989842112518463835561212553518799852341907036996149369244079324338448986272752753686528409172258018105984546103762892282973809798118308077425628673416731056269825677932680275557539356072643487867296504757407099035940806641853492825210714090878513124464591741838880620170828823910025188277059784825642654419561767007972956613078147790094709803551343697929445813708141693240840449379507130912225803312435347774164659886876497003631395077058549474170459929647558476664895544998190972516387501123525212588160513180896535093233302211887714974239536101445373901605107486871255400646716616825561636116039899438283088271194000570211161686768385365826788876322920222944340226457501009145657114964599416086056012937420770035798494438704302170882816571945794293207027990207211940596419924310123573856129965419529147524389224464538559393857241316176057121433368950471968624404852044596751965159376348305107714648797932787838874086520966734897475301433168344836985567702544224143687664459965721655169127898151988319695258996901093150981075853461814041781480625326511688406262191240427680618582341222979410783109625826253407621754276640277759595471099867565862054245442638313086192972579654321191005506334818794305431734707108801693640754282974703308503795247152017100531768339060741805199436420074413595890608997762641505742392756974086442636975481515207363163543942273953369024424500707633408907863907355552941098517163453547242454747188951783288500780671194311448056729033833263503498508678144272754191683501830242871498927418531088888817162620277616801932491108546079864364508491466484156949285779347124874722592736137366908598819337536262547440404126142626206148607205446716136320667948354114960595694853343284607176430510615751145653147308907413515185849440529903188758757253851636208910962330132772508968107606055463315858408775626230540635957116686057151294627172184638485411684237773202975973927999351561086397196843879797055305197069277501652390781371006173106592285272295403312655525907133341439328393657109528841776122285633199745488382339409069897464859560221953871541619513513996597655669903026016229112049674977805339565315306711035497727249459952148167979901455298362499199325241006297671629826223546217347456529154525185877868052155879015316056444884506648942608294959452109328032426705644250111345016684785407342146141777195645436835756593346766450539092186309456818445854356230249502178975972016122818796952014082009858871007638746230183704781043196297411593525086541209162791822668139024454873276719138147920807345933042844726422737563015134778095167856969536069941344477762089336211617054448496419335414870525465173887406899926151423783165487759145090321547576764016898662404768468731114591845688285051362125581668543393220403759717396137576994691049177094015746328330101978809393744423841381438878280380052117652070946853718481974804196575156996577543270035251933386977219505769448381228084418105146801578848498685921606203731642672342287725663790708053321516455486538479549683382350113466607018782065622749663526097440746267882137750060108635825060814971718336947882603006717852242217573327276281073266898531947961450031251197916308423370350060154104568423225594945570407935263123827533104314309366599151226731655985721069823532886832288616716202014104992305389173701563490087917850240608985472341537855845360725482143336353725943842445612977462984056899185119803383299926273214371876298205178463552464741856145552628742199038407649453984992837540888816772509937656491906372807052865633842656191253967676714874947713085805498473945223145729333315935844523638639215280777717274754894739031883369710319054506918244551003349914157552045217497756558481836264892667960815194915098828257882319763287629974152581210939332865214358695173336627184488680017383901014444534328217317264443288765051237737079628842594389349041020425241011413004607628100111867469489236110511695664529748287384986983915798521885419612938625939987849692374354758397987711951363472727580090922942863473493504484243271633755159985897152277126622369824885385105507046703720823885734710367542798375666064485257279037243363541034852355161304321744888894947047409088117084326859121688519815593253683411787390656945801827281031226633027937792250650327294074305721756211409777322787407253265103488999904120227971480893435293152604601161282278178823322842573289033870494202241522337157935976961785432354703793869575711630704822003416586075480694360424407210486535184053071975973231498062307059540777775151534237907399011578223096990973576060588826286184933065462198417196721387824808591100145440551571999224020574153566196378814104278448457874036276068613592727264902839204088165201912761910751678393475756988953355439144808622307938967336929177267404720462540754960509852652819204674555471288690244074952550075189898978546539734188825429504618011017089990742308405054329842760744523241200499319621336663806259825654035213819282311217492895430727103295620352379264468297517067110322761659489191694383049040740966889997850212610525216743559792370543453185552529497015690617447720862173321876711410198816108997271314022253197449645646587769713019595260031133825650641101000661357478090153147919323892662262324499578829351672751454112327418297112058378992942539463762252961840805246206506679762558743489506779742344158594593180858111255764523419295544259753707557255492312180900462692965134495074064227413043901563087579733384512278134465120802656285392182756120406101594890140798106299030553792134887360728597544913195042145730850965519398791838697184274176137824284759770752547027385267378495378865344158059747999554632814881732068894452917184496070173746472491479370482063805937821099707031051823065472189210029534425046087773287876265846625007290078535940120172502880702904569493797582666371382827730855138996022966377328913976060380613988677612388556759082533270541112620132931735387388339096394453688360567230919107256672066885705316320234985841889835234850800698977622676503309317274649179299584580818765681775266259783331511109410821072298277565962381757741365265563291752984959163425914028566338392570084516594182630126142033890089575505222875183813379056365615368526620459471729946911228262126239441171860378903492337074684702303903427494809299771426524193493784457416396239086596541544155424199914689436474819980998845254040342137683945680158593909073251228729521454333499171044455514462635945885963052271076482629676408531758571982338805852572122614909991003886624044585020267790366617483588478958060218275657639404288590000518263293155173347645414441910739797698985893547104608178445190700128373082377135364697374183267356486476487374525792230555986109424905544985721237993704586293410605641753700924986506224615879764034311785043052169989728386323697378491872044956105254085412207524351963647469776079616902651799343213619541929930107415814496259001864802554691580245066896024054709559839835784597370277589854667130718045044464106971623299782545472364763416360884690393605279634932606278780909641818587328135071385782291409342553558714283839695982618302710552406556539651422019423733628215956910090204140379619237787058841740365130206231267129653396140099862581244114159437985379484886946652964329547406967801261439220722885399803078186963198924194018793228450998247960311128154291172355112664038984170127894664456062403573183557530277867951075717684879037563428266159270395051243172276972357273459126162595186402398775021552946517127890532267575528762731093247311242445064347596005125994043826301320495648243086549619587321164094765023841054669892116551644818261324166432729703642838801345767666900460627680431665113364779298047684784658104854793255605446750239595935509863231529051565837143281987171640496083194670730172053048618380586144867788936043825405660534839573797993219296460270121739786678504308645911315189927451313424307097849901651574587584704597169465656441133189959837405933009500990517757796324243377774127469806393414855326079270212640135597208780190906790144800301340229044234502958547070614368311495236477571575003239083365859131348718585349741669357869343702080735881870608123775519465240521689319653385673099416728373118794591783840362129766517283960827981156378308369898078328208031886178219077204928722818885663564770339876022425670758349818370314802689498503326077310618498831800779005666186012860050464453372930258378458136598534610769938765371349086590358756142404323117219200070760828722954260844714838998099152923218111428824243317026648810433774295042109626423164941959609822946119729754539403886129483637958457407153028359489060136813204139128104935084959209583525723888576193157469163221515369134551284154620850481507126072674137042825763004889447127184530342394370371717922829498861480982237581162188470813915014526838256302637644204856322567311605052157229404332963473169815224273911293885390102357270774538571797105704140557872712870844930487765186531583468871772640484341478444795502185983770342801186662743458564126375933020590095013457889029095763849752098458647346671388606251837914180376788968568188463369130949782062446980204680338602240588043941455842705184442467733226172217887141660031154488170786305030304379887264848902845489877431211069997544487382086093197794346182373722735281148567986279289462905126223610911253068131046973218992906455273591169349855682306617349494837850394949638952071784093952468296145571665790168095289049532244386786508710561928842278575897060398678466617552366609418821692735959551352940467411642206277541066071469263675851554582321391311633322180677972484753852752340722952341225641135842341892971925534300408751539514681034605308422460589479065750382241732621517655129667318751683723854065887249851075189051654198889455441705484040943423237454409722413074271518278897367498740129855223965646396759200473661135946399967598588463424885237044649849207548001171305913787568716600497835966666495232315791602223816693847274361855135595869978340785785884670827326140930519995320248397797256215112652887629952657229442204996314628712280818554906377193468172397357009605769552474688036851957235033055023352519808146423541458374062472625217019793604353763694053108940109420635688824520559926653753107809506053992218149339799321365454877000956915482489634337147362429240054940966730020726512890254801185011040116066335616456475477567524913549389853089889459172555685710753147714959723293332191663843286151416038831676448934330555962128109492732429687278733895718990396476712831944701763950551280708546976914753161522561321788144693489424279551455912190022031126149390579058100570893668696496790867646664642047920090384628703413173597328469496359065801074839978884982099166528572169539498993942310987791620407074887316354553423932214185041327323704766553774869088477081427612586149855714656924287516280762859928344922348448968428632972852979546142389797132142388855558781158643809602734265615834237619125874454622892777092227196192309342978025796628403986860959664638677708172918853537198639125431919204281303254909628590865960635744287590429402888630867791776262312714647501569355744851073309011704004139539912190849665061682393587786348091481742449580147805720068130670977292387909995141239794750167363620284854637536905896678622149819115239045048356343205905899656851179001559882506234297573316708153754656052729171607091492547349739801009809546478115904802643441075394440542830157474497465667990347398915066282536952358597880380897917434144736022304803068952081242627467169245106104414735866861279835858979034167825849784039758893786118655042825587434868852572027037814627969425400142991682129498029525192648938702076231970355182977128379467961967471883436681698354772246797233980128395783923917431038417116455279333580460843272274236153294327183951357198388519609978604110711416991721877638869832654856004258416691526588816313371206944705930975045009492364500866329304743476952541586856525430360852352382717279689097250374737509537108755835666648841761463465479468956751885075927387742720854759413817906762085871052977474614221632793886640176065380301272173657119195931068748948483970343663085756176608115923873380404774169302054688663178465260003271937068352003206843434423504465979941149156715854447064435814817437070890052230284226838824722721256855886589654552348897099819787858506769777745972197110904729537123728063969258838262946081998323461601466188104271249334432013538705965375730789734676129450390976415838867216474091642856183465608873106243594094366706837829613308464502494473900584781702531789492132930160582390622589697947737796495347902457647262181239468640266741769266586556697898567592910889129194825847408191320100490803174794490272893766710099795463204499933958323575438961977417999901778043708844475113193906803191409502323872808793105823205696473259167349311551072629906875937814524891395159490168967507310988765779520715977886317988868587887543856911969425054829846989204721240215320646525541580535933155866101879721321996748970741453450649009868562912826068065752230365087040435855233817109436993184883310040795086131664104077690655394730240688115446364293148975750379275194960681793168264950498461303889398663531617344318591167621088885038058617145889976647886130985685404084130948858789710581432806447652515871499721648282670414490916229517587572588278082798945026384736930414278619050386241241036454691134376160362188448781448455053815331504172111163548360290864510374069269931754079634498759658057933595488319235749734051880182708592136163003810593842200470140918506330567605728124332493123505369688480328258547806434920131312948265987763640054191783636498616979364404344047455295514765631339336393654237394889433908608519682190648219667743123164654394323645186447330140164030751662606323986037802485537172923708368449170465388906285143973451918023791881705385275696006275171515500882865492279676234792713050419540819000056983923125726911118026155620758074372719153148270156281418809784952255150302227787956498070491420993771823013433129193292940986722083102785661743918258573265665087874267672960541666845922890105169853067174169666294264204142058408991997047592305880750655257003548362809210069985545868587840612706763581231202195228278848428802112656561707009366615615488897386492989725698381076614438132366577612684947197924615400072934493939646699159217920882769396007327154847727425476006480568759393229696148255088703091650766823403561961063385286769630886369058642270593966240851171176829763713168212820260015776117464139031320746427198326680248488512526726894213518673474756100994758050511749460978471835527445650462232231667000320530059784601044038203870761749636802523789771366053612886349274784172916208719652863864453080482230724169957527160774354461783934311031677939477434414534777117906907827128487383150448046165266056907444930912240113816651277664744496425122041608598601351626314555740151319376491415243115481778006677233229715671267883107044048451793109059769055095143091643806433368760464235936190964895481566382512192113372781519037028110726057919210529726568686936461674480324790433819504314833390723975516773453330147097974990339056133689670437258506483979768757447864923894877665667768923484307828923588923900318528801768375261659271094016340341897567667902038303776630362317559797043158224135190151595527714455659865002397681453285442675491594192126010674579731300922599742336423520356755394881776744564055348984610801573598237820504530558571320866814954755594046332308728928477102914161907412695735335487771647220032032218398373916671623239873405242815782836968891321511492957761133177460850199140102502203151005132742338633955535725298384301373330286634543787974208841494069661612661349224261773072681208744441041919122199358458508235966885438887963679721672988233865400112580776349184956352790302081890824925936812495673550689983494567082873219119897656780459446777523097233549410509707717634340630549366096605997876792886942393456034072257298297202012565417529914314741935219468470624255530899127602006830329405775126348558710021793470354834270404775258328525848143295795411313852965169106633240627853857647285411934310418044211710315214037583649303172031839457164771075139321998673514915265990373140735006777563903129929783839116061771531841646114254306295004835769392221327285110305773440656897277458458489502678481475645202934712627307801560688375256006784239508364086050447477651922050879517626332558814005210041972856166638192170946313600467645781721437119525341453475449421058130484800396827889462064622902441759148394874722144160586345225739536103367491714909421033200691916453073369582135386899238847361772708731941025863474748416754917392961172494843086544888997774284134575055384345860831935472842023486051406565601681709872139556478420719953442718728932854577623085909290718804015303973008189556743282153509720995356417199582104584663586930797499932851898310703240126979546138865848438657907953769389188843953138765627967227024222543541696337025229098591030578780422219239340475965374474807880677446648401803986459432044524944560745040240566519440513097003430695281267640078542408283423512218761932856701147639674935744939862567036110435881065948270615319077516170861986232404867289956220933936820294442160453389140551603730180573482706363175555279135251803542616739199716473368618268360901037364965860044282184049202248589712775776723729178228650641297552396732701928000098651434740345970243510425759460434710595463836102316525007561516889240267515935456002913980101638340658539081275341847353404749783389802705518312940909797490034737962833915872952189672121955405599507951490498440703049704486000933208964312003928181058672753047070896326380318405709616384858092950455065535894442619289502040248768834502614105874498680811037415142855583748253021306024596030945119755399444453217657588238630207318689189291507591935318160979003879080021224473673032607485771242689861992165604069095421792891054935760676213356712238352740028044576686461710384022497801715015949915941759560066441803914302333311777220994347891755454101022332724640515099173614930358683806097718472947173627558163057825937796954493757447090309265798187976482383416357030237684443605199930327368217231190382671483291920706864359384314642652171452977312755891549747610400894779194383461585601484978901637696882292651903399046653989550776304742021080855275796211892077608881600660293940186081950939793733551360478898770941118697056501149240668781304092057840825272937998645009089295913974582233145813770904784384322988635530485035668686331938235848084836341961386661932834683099085600455846466688951297037074569467787053197236760828653977404728179420471324990270654880428037981650470849197661752366644614622772775503602328809005894633825110660135097848184225180208663872994272197425470810142944733899831631002410175299151499425870656498692519114387525120279594211314258432569826230300943473901392721281806826475633930360876221902485091258181296169990872887247993856086373863740418856087778334255125107360202636061064313522288702689761272791421673905712746390840267566073368504670375753273353234404476520525713377051522912023734645910983651442999511459613480585124825166735684500508035051764347809886939183366706815520815183515060857129398303342298424489560562960334041324069248638145953613224933005972573459228784099822484896418405890547773767280770975267579594310125309821934235365242849171693776344203091772432261135278510782614844711510793544649100939141601843306746476993627436763738273452754968120872851135293857367833188455274435571969003273599208125182510951065110334948064190554332214264957537309774798356940399305266092134226865763383688332456457935535657705637094441978664806455394371655907526918736530113249839275442595215241002175150856795635402657845746637652412632133117243739269259602372882779872243312120664893123305989709252338144485322620391462078045114508923477647237834389829597957269323413005548754280010239385367928550757582153554702857489244144909228293540660740453168971432839472330395126190329582078663572816305079669491380224088723060441777011213577827967570694321995108341114160815275211344607853676841844374725924398596229187907660261456780269973830073898941256458488602613919646942224155526958300977217766540458610336148149840838102904992735437015256772309977880307858936156070619405731999661481057868329621383995769475380566837890222247517388339056426076232039357444569373430512150597593439998522679672015231490394161270161942928196982856246626270886603682946647830620555373389029096342711308626765640859094816784715689381817810596306809439982303050732292894338002697365319740903447015436358320199351444185501054563737232360834118238868495980184378998434273561201322864262040671494222486877029433335777449250353759691361223178779744968336619725725861714547074925385570138773250802629992776606582340697868693928351495614792138777554227621412602354437944095112682079772727721750477293913131943370899164645212609473351150016091625546741913822514195565809508146896436007838193060566059647956124027161082107508639903452201590728827035153820550439825106617573585420531443652073147577160335947669306831412277847481662801308790721900985792934132927924276890095751940722403086001118956279833072179270230708274327322092016066245486049302205080483750524389345195904289218665329712050761113646570673618076425733582355295420660927244394854894881273225496179766563371177159086262466021870119974386947781551074164337275513052749442951262309207964326378919504215427394400389371601444885386036794433260018362006097522100020092180318456970486947765458217039969681488862513825688554642941228784487050803816213242126532934346834724714698964008949796272362450694105469055687688844613912610099556166882367368497072008802896382617659884165578471042156260092339678042969886093243291682605216062913784557285936845153095009106695047620907852047804623563944346522074724328975612288075584951011655554757613526885977093053629376659761815390118354243637074595296059969334834922428076591310990765379152774659313057367769072782119295717842943021280187865936853539088938150366060832454728407623077451360289652202681346363760395111053340320329477590779275691786349467923106055937878802464244462500754004565118618371001550491156591042101895427766644008419374507239332151183290347664314564442676389686940077645777287665718908744487244661802581946194862444290101710084128783309952995188173748470881930918679435375437640316226919987928367757488648914914872437119170036320582569640161834816417320242044935075531170416086607186356013016629848717934142497793794975148572271858719831851296366925929621846679808921639625290279190510981977849107090130339495845170888887241858313537027832210003771464500881226576738106601583762226344208491971086465946345294382111475095858134666707673420518676972811035429110741791254988302954852286193375530953601367004239785176461368034572230860754048916191637449592631460651988228778202581364934168062650813847676261049740541746765412150835002261514654536199102222264052378895324732354547010843428060895211009450199722973102346103872901687114632481683393035369295464406084090957473924077035328471987491986309138382226626801683612124767087021631392956479299125159214981125410599814652085057243038605423403185615128730166276449210062630117245834133376310246134327816368667853211419530653592707392098791765289741825633120129283427758337025352650165818202268610711842064960673789183755813313731243093596889432190606032933864474554094786424070668348005982712934974736107388576037231182459430287583319794396959818244484127689712647566188215270298819218126190567493992134767768572073164891108594768739271085617408952695080718868916981370845445074232799820788677421293495332712101889049582926711594276360604988287594371342925526863319372061307980887084188705909418596818579320209548695805437589988085265790035033576413700192658842874336180495155157410691807996696645835256962456282727342620142023259951329431973817832868349001953307783950071515095098230974284235027473052284468667759446433982356038106943793263932254542603242779362519441575994201940500439730605657692130839591594210689389629782489187416100931663371542327784227019543418845978288142485593981988001045553522113776320048117913582045589252018663795391811492269770632641869032112089804138175371236486541895423591509798838753444560723489241598228839240914397323028689214657462672584992844724403931166449099392972592899897814133810057127082815203867418790425471842738329055316052376809968105562538131091313529677420012411892834416232625978214136613078659543655570902018489225077872548052031162987592349405153154135874021102065937921728183124812291658634724530316177332350003288308350324153471647303883632760483842588206791910642017582007420594613640502731569237281479791465112464409021979705700162719425270315980496769911553379345559533186599612818580878185794118282814993593625400049408612367136654306449768509334243492224075676133116713924673926624244093633541694617204815662386090039389865096661688467453359228936108491487262540357567328052023314859541159166283179393963023840799567002264564956023018021182997488298299296713111016838489099860428309965272795494637797181462350420107909389926802500344975557819695407146654779541571835620968958260192757078489200082072262171026508188758921156340745766395424611749164507808406968157649120485232169233574419027020427267275792239499357090644998838120317062890444011564627105469816768949458787895614838989717259291155719739604789384292016028542564789353193790634755154440354536385704095517613907481988064255898760765802301774474255668958236989517518993637282044085668933549684617250528765617833515676912978187213719791774843562778293571440965380295107525464851952047263465925040383116641538510395550410551421356328182629708276442498379506904831979283368820226736990364966185922694293786838976646146677114183263531863666075031463399666546886508146239169254486562715363716229030683037125635333247811111698153275235140708746024821713808414266156135365988308186710127106103041532591337731814357820339429088369944250608062753947179377713949304378035429020124619716515522884644165050269378470640914702552240621469655995859653212903581666706734878774040403857518883878907787741338776633191292229047534231976941013095030709431779838200681614179704627307491170837089054613229280949262197366677682707406217708716006516866119338573879280050743309785707430184972963400025546753845598841857585885855769817664507459394533520575249815780010614801662041094934877757942142419362431104768601048070029899254151676339179144280198147968610915935803721274135429706158236469281873805749348553793751362197385699207231482864715711822302627521341161618275825234902114830089134588745329978936737170137327046933621220196907445592199695756787906875969387360619678895660908689849889430695106062114222355223502053985860725707336778847404747128381062170172403647568570873451705574918791047549639255931552380203719674598405395879466121534429758026999992523406866493942603313896811196423741040517448682434844207178002384923144447060699278786119083606314981584576603795607383752035482704308736586353398749124958423762443235464684195137390826441747916360196720058526782067904476975319235368658814181950248499299875926469792538435477604548161767342535898834196563085481781320572699776733743079418215335498238078433387524342718958099468288036237583719590329477052137055618174816466694989054626928254371832823279836569657288523425257037631452357275073494272593343077755838108093451694679363703591331819188440860106703677478890921294864316802179620239231771056298386234772252348780079376215564933643039319927643335338536538471089650160613489005771636934772742960587970664345002540317829667298905256836350581151975440549456738775302542641225908703675811649429305899173814441920529006987388641274521635029458890923981304895252770754789433071550218254810018228532474840260694948203973250686076070923669723595916514484734861020758587898894468092917427643491488522205162350619367156102362958509503252124273858827236010903915617416545742093677412343269703061777475987921040974572317180822919042972070813603610875687163702678645247461709504699729585797445851659191609520514731200849983164450647146778259215273590739669093066378932671490375678053631661243271763122598678930331982568060588609025825347406702996278590511095094423999146347281564023843569155476911281006937290459800406638400159498148016570914081376666953215751516775955660286261076969556984229236935110932199706111094729027923984925702668715609298306601369240871850612010810504040559862438034947465039043790754670380548221434542281864733347466116840231390938699129291961814902412632608295224923018524747726270432504811880318031070741330281413338655885935599578404129963642987724955256947947610628107203073980197076614543897791908051187238155479982335895153555919354840477573032836179498402727266160072552467605390969999907022315644361389482544361202553212022809046213598279326068538773606529448856783919316334397022980799177415512546456382555592828426057868895936744146492829542570394515702576587545680593813632150716195449745760632057466739368768938154302337517972026920802229257799429705855728428276190924466623963915931959036001129109119250228127112934615979928946521875761263373736915541095675427701560996119166091752470947087742508948954510385745571605468664532535447083063696026042013849469253119978708383884448366738930240618878852950638480228033451418049890812313853008364767047631997440511556686963481875613805293887866838015148855761755085155573943694781001363013414325872912972173617613138029489434075935317586106224505044870315670956181484693279456888857233355174102764173209371747953614812501938108404995771877945325174711689676897301291846940058706438664732928330048690587251091314665856565961571066035851750865129884925364139288640718215339326342095096944129623388304054998826912083453117534887953777951484754852622202059986267113909164744397437418518941104794401737252767527430654433487848739573578925951315913828182555194009619301061851053837567915312565013125548607875835566599601184415934587730881777130757016365457801206739752347896819953583094754222916873522640900851635133304502193554166094646323045844148090944775300776542440850856695232122199769208571337120645758456604095397094786155672501717720087342633965076455176826231916791016692944303725247766243481398059428876586822087880534026658546510639023914549934576049285723927014555335659431502317206414313506046645190229238957210679786849041887100181520663768386280624737164163732369097475159673990267816898925275950921753443920711129207215993623615821035494722647080238788233974148599934234547867960464813139538806671996703733242593485309947712715220078585739377572424527893805037254528347751312882784915483683836881950786405656595370968173639573612475950749840594459282335721355610832289417413267840701312028295182065467137478954676904005959784614624095412997912709015203294609638042991423396440213260623473990425165912920991985671480001806197960615632365777926159108845126188294555510577827055635514642936214468975451596686189233638973000807617440014686566074380838850848803161682894971127385596398222744718913610832668771589425246297217568188227063313839543484248791783649623995699937768483406476755363251055736595441559499513503847917444405668019789955234493163007204716089350052384062995560532135212638912440489583009245311228724611765356746332617923308662534933292878325298895749062579462738389724060254299289019449381172026961882949675973259000780396550346757855204505117728178257006796726710998268881903842306259443417739429525664255191523959542576163217397486631267667428230870651369339573361848447858412010401367847210659673887667232916035381313335785693118228959285862101810226291502634409730974112295121148110086486417532366651903869406022272639681066662525354275491899081153060143646255195414301596417382427426900447002556088388544099242356432267425609445873013597400500049471212698337522552788842327922404591738470464592409691235044767298766072874797480312899837503346970822846886608017890571178246178971048536802526685888720652742961415433309152067556879373711578121253583289639747269672139615970519030545588822342452580372732320629966981096434853852774892035392464753848324387430959915983141336740792358390033708824097723412391539182149180479648791817144974341626802184085387648500069766730434097274415580772398842474129661987883379859820113495200552872550304980725471967034331723506341467729902872570446313505124316233757743015400495211903508047321874300559243642773282431622654146090525564522778439179598723008266913957752058530941424652266202839053872266006119096808544182361463376262040469082485963786248011623171364866404745367292688864331641312410434348112706739504681313552625551362629086424629594217241851833048566382283175997521184071792805852316289926584707891730770469364458607213285576102038539116528004207188270397832606933660413355049404788038446052007270881638747594890920501416734872339038960488534358641164364486851315276106025996788286654305620917833934815127480455748921056353220434338470165509071172621369603184421278930449777886089231236548241240367934185941956340664671121901286889616434096099287703903086740997073952562573939867196397756655425213810692687608561635901252261363926766102405235554611576315787294405716696190001010503611760122481283203702951703423725527125033664470457122177085964476219873384191569770990373607438789951523738721065714449868148010857848163530084906641321594397865881668638473413904177139839116581363138108262728979606678271552427877308408700502689195034816687059526771431748292127940980409128741412500188337205915782373849233376774767687289821470467471263302084326380860811832349026855549853876449840238115981850420397155672155555764101080007715692503639334678023067845231189173990625192506947174313856058763831481480411605104831372167944920410898387568650443448754985407891065221098278937167201106528024310788764076586208166009956534901301425914376090241600374771092278141873691086969663521129156313725535615129061830650781765821488412818321847948462571262965433463699704220792252109679576773718105415009845471202802317797399204564103307709780961937968966826909105487713141771895455226034959638717023177024345031352236868413540171757074446967695965764905925761291203398832692941538023219197731537408452714497477822667975056943915724681317960921897170958839598826762262286581472005239616502364326673094781897554639953925606714909836293689584634581246121760036343713728367334476910180123967104056407482650924651287260230385420099840802027899549088099089123068451919212351678635647968230769309986679379137326262758862233557809999684136196640131170151722278461920952031541706036340484316394359423501937753935493805935323796101611010702981233371675222280041577144348007976823484672169207993139200380175413399487004274698016571082398434281259203892248901084015724587336520866915364491530617948750665561286151997664511287588032439048829147095881078636132804533620342270677213391343111032981696359763801942972397531616931174518060310006515403742032337058171403286221586360082922879982698671015878249193944746879923196394387198071814539077384633471136998705884599712579285647050672431551583049105488441521444173223478027994607450800782176012887583355490574555480486774568302760907049430862106712028914115620741018980445371999986516176323302674552889311727802227240416440866378047735980726394960652410923271047099067624133947746023098506109753541438152511351864008487636640652227588858914960421776665371226115961407466159426426441726461271925013333592817482292478833672914814048881590620237678666105147027758995310855397676192466016754969453057202273232828525592856052509975254810107877039605892281124685590030468392618264535674046056289017300106671691103341984524528241434468319918496065612254274311548197797547103742864181707677390071124700750082970796904591325356679142767440263067627092373636989230963612262099425875403363967600856075470665515108971967393155693753238025014157445690585673689961588394513297438379941106018305074232346133247556451123256465090145872754419349558567873478059299405783428292897689068502960772481481518697805048343044630337788451316230065275749481833978071761500738919858902473022451704533294663263400637169247271735926927707559134158216018875923835881398152881706224359436609919237778205493907601378188258872195949431150462846053476784810634552714035073455334684286344721119298583646366695322503865972197170999026174997495400511303054644209876925390424232807524564618475037311572720771724794019610827895637030768251570272021967125591831000881146980506875919404921997859790986093052406654980417770868004529415065958303551449088105799815635267492771697814596606059968875491232375047544562004981845546486932848838046712523147989658029706854719881888236632084135511450988376111472731551845477685422648122119457606688764437206175213645765296792046711833155683975381026994490545882667606215823532342427989059049342778686190456023238872009992481265945834257341693359668519914567170372693139391389046450665818567519232999977846230161434817594590909103918927212562750507220915852528657805505654353387290480429536614979034523788011585068345596216732666345882552645152330309502711253639256999222361253285678195044381825899184105939272067960232423620052929371342480439801487699685829870223843026686365393111010740605728890012935686326042137573336341576986935269408911613109685247814551763404676676684338992629376257989282301184320693784994271666124356738895446377013441303461208475627794168383234100615852317963447760911072659329002583459302155299612939702738738848690542507044420909429982627696750041296083062443012448894905629058980583680857870195650347303575332993262152871971882304491684287065195435292543272827345971881665722264445425636889929806871353101828728092089757645495543842714612959169890376847862439690755697415699119892288596556969255402432582913026407043344001071725156822434980467847996930831995785951403381397072208502418882077600277724810647603473985848694902608726737987101438624077663824934433181784820591753897795600733882105657435360234712899861764153710034781215688238837928617086581339161600388774161056309089453766645760217368985193870306706104856853017123658561346267879080248936144293343049385502653747597622218983393545487448691127125626461799358225336575330568271561076505700479824093391188426599716515086732858797396311878446300864301232457179793900053970630309262165941840201067634897819057175271091256151996388503816346234159945478952936335619712079546108384916413842744218985482230624122727940940793282465675136500344079489974009784198899407147075837531892913923806863255586691930068673415925240760502773413295379713943476511464233205620580566174882790758176827333517568083289135248646841532634960514437450637629623150183166595539002416951105651672421733048087248164392662187794921046379305752023983835396570275713572166302891051709233235077944059786752520949780557471866440032391023325718333708189291754056833030374940806978015632818940566032058308424722963225155940353421129289119799553161662831702115359233193658949005548168095371912706056298425370873218148436212808646756120595785121361284156513496637134247600169167606387005062327662809102267892676948015337217567939887773949941959702687808836889682917303591621939194189110107221474688629689561413431697853495785601136236870851154778905563183075515679081852848995969869925447618397174049442033197081359674885229599038500106811267260803250188979713577520012461765317105436239087492157363260748019843276312310879726400815852853550004515975825522704829723058615206943739121845812344319365948197179814403387156180135568463200026071971316086837313846163217274158972480071903203091896692001107692818113505605186187773367110521771570930275035382220433273293346430741516618039466333870314397454545295036752604035164250189464455408359871454982568993853905976899991030939893497703363855670061420423022169405432545527481563596767841378720090645594803474091068440939864435512119651852579338539140513724107130354913918927754320900426560892218041727658407565398060565299498340932264725784082767862090323809784051795017015143588570910061417990544675717623015230230365343882856739745458692793512818829300996796181575516502073051167346003521937125218648195812090454807149203057395869866309738071276856120228143288294640740602763162329463356481547920243847947556631764269441313614411497739251205456496261958241353551011047790288020834284997087934596175540093505259245179205342489208691276873741888404883923836592884301367830356328121255797091787507068402079852156259904100484525263514526272346550338089199003537796626731489855146700251200723210929133768764513937663034675912570390887687966132571281538510480089994635568449271232997240892079985257871040622593443773858662230337382629665497864569054278058553356516970266687147637808945195092985063094551824756674623005496269350157946901978747902306977216253660981055202905034348446378528650594193163313042340010178795478415558664117290565482419553478313806749609370542368575764217476923845625368256999294418366475228056041149001837767166178450710656880377225287608647071184572601193047086577810791527711915978053185570736710783988836552177040501165300380083286782504056719630375880470644973193546351699496199959808031791053519947314513645315204502395236312547582998737634949134724702322501607748203301403132244502661443497486849738426233237501963445404744021014579373710658615757278090826910095933587352155883276659063023781294161859153164644599023130659706081709868228751257931741071631704934439271470608301433996238308875099237187474435208790870672075158762654258109811968440415599627251818177328285877179375286348224015380055794400908967900809205111573040473317071577252148355167889816142835580666014069481465592083541944533442656877515262558996770426864038411526208524434424239381552841213991930908784256519750040233462892107051806355022757791174006305217063388747266657344451493774563706876690505736477125985544505122856515833181083120149889290655698042156014353843040041624476666020360231351144461864382054558400761978730742520107925894871477447925143509514812636139927330332934312350976350493963109003556279687560032409829585603658760497148510078029363062715546763070203534736050931933894809206949354171981923715242019477032409420348322280667945831332920108884872391106477326909121264374368850267612360404612390117817754242339073278806290593307179891333675086877085223240556833211151036196550160379135773402649908257421755625439464202194656239783743238554291692649512302224779359920962534864600084819432679938167224788966851374188599930742125741947853373912895994983921142245352231057175734247716892867755772881790322900640666265087446801721272998323500665002687462554889209367767091727629467503306926804618052280350026065721415442316439899377102844189281022592259693261233693156032775918028529995753854909004181206234748958596747733509805600850364983653868324677569382610738743370646974675491174379621055413218865622856367068515278589148001432987358649161676542614599702919816657168903425195596538244314029170285016461666296679347146705855775345886770030721672759409252445863158816871962035713202828423074225460135194047790819534702091392281073309319352764075639292965888080519737451189919357482067191384189619738541568085397306873726863997856913043310852922210206628702974933346617446820351153986411426709239814254952416682909370952122792838947108284254124225055388472388791413126126766725521388025078222193243179809746401069674107126130786610455120080015501389890152528082605682477441146520303353099612890932643864687648035539724200719951558530105604865210402139669182924762631856856679473168856724709639929341674913024019066044502681563302385744687117231711128327246570634526072355945244591073923304331996294853024567103090717528956742630901133534436151796530976729548562447775503178836689351181247827354518901698354230614532189249807255576117569422503608657905558910143423062828142827614883441342008859980135737283927562376822780806713978933723721681019745360612072162081231764469036629759467240314740401731544765858458655272555278406597903767476215090345920897883915938341102910831843858111096901524036360567351979412456948162493034984130711316673687164855180144617819082773873602973605798276926034824099718001411871191123616452129495210835083678510108098970143498785009350976132951747317821199204303401942223659523859929685697791503469408042787689406393678403529724859486798415255345945796783431329054525798823704558859337546852947276018940147313540991643144033176670854558747887493776204577633797179054844974882924702839040086036238716565532921421901769395648248926488802381998497024524434003078516634728911186857447059216128218367950486109912898947172114112618921004663220388856252812307346455131959874981021654360686023842977993094200854304396535569586952978854748652683678314195229036897707562672917899515298217529949181421063842365434807914685519473940813308046992124791133948503915673973295588784991162553805779585861637035553586023453853756871555800104932271034799043666412474655768866878008644478332925186160786006253719349325561254274115276126743332173540116265618127153319979291882644420799679404432486331235574802798070601145225525188639999032559424098953480013026398110001881828323678515405561088857256002951015772014575289207321749136356063559560328147985076847705516619527311639209018799432026832352275036191528782773202073230879865143977745916921388012454753462327037016664552296980522230361194540205979337283006696799501041461201050681741239273744694228131392401298361553370512942991370483284476975077191225762372231223096889109989782003173263683225804658726610378633965069866282351907114134516515830048489940027925710176807786151829608648324151285841567844579617867569943129380286625361733186123151520716779818500512722804025406765800302850171430318482325779057868639133774726352620530584134359723896394236360372499104722693847613871488061824267129274434735671171295483151578099764985736747894416001296880884953042383276638566771752870672201964287610813091503865237316401186136784501216842176796292837348746201451419031870572989979125367171144107581549619218885088877850901312055255540429023397276933453774952943322416385634434382322004818351982488968900739449733321730601940054144419017766556564632648345005830426578293297381028645472781475471287033100588253940204465128570454261473338494102481781836567438780200110922621407521664226049456665941972826877961706902299078671047094397570456746779883518663873339156289630104610347603479632066302461346340898430731099214294836921340776043665827057859202452501018202683580537789468999991301585032479466543902909061378279074899633435527027636869384854626591587181115735398721829242789084616118624264969759042832432345519003708010831191138440252070210535927508305459623929794650899264517942151570238876995067985476038896150637679723030350064588291770338949578740737064711733920371088195677595840556473461438989391577368648021521206267771447212438907521268377462603627292848241611812216388050183718335071901232090433466688499150371761429020948633536634486824356809398853090836052605442735710121098304463914004721613525115671326446449913805042608913387936299731443647173495885160761752340959574111077536645428779327784440713834183504054341812949369199921009026430073040976334721224264188517304303653369749215448183261613033699945097065863597984481754956096329550173087900266550675504806118733920360820660569459658195933645476347015544130048257735748354197315730227297971821550915981230787135655484923690200453157607811169014226024863816756901399518139339565310497325964278719956103433838487276304728744950685221936889610784246149334973600281790298105739276274643457007429152227809640328397939800506976670390805465512189967338258670221107524610780456567774753498845082545912755431464423119097124620226409237746958720821456608624802438274285825276659729318813245120565553973835464623782734410098924464369213989819186893808504966784907282558666483593398326190998576001711006006310054004559199925009054370768521850089633289908737204068646638427612070495587167255254947978851729511068195740551342704936828886795986719211190118772457218926415227564971983437492519432343466150626661882989486566044572301595533737786125477265970107427338107704294738958277551835360166509776859835981172030645816623576753793561910709595888594457031287549772329941925354078872139668415268088058419075415493938505327659143229044396224071326488067688564214781459024956912426131090134866070344513707448382017618446650459191413721288152344726735136786112114633637365976018687319366838570103523299278507675444498763368373321157620320272097076788615303430410683350580487954838604440578088182002563419386526901198806554001729957876124867101314733225683946538326004855635013711650996509897254548503429834491221896928915448211275419857307123847107487017895130561696164153627749515398168791991841187220199176742629381892528955019623971598861020255370375561493727858165966039626402365074153790881104221946246176765722627376127883318460476570415200748456218077387798661211891291938283965645882056879771537435694306650424821078185879061719456469969239024127528884397799665341745073197536539882484531227124330587844253367034613264541010064099006314168246614123684268261534845521451771567854768522448254302006683361635054042819876145343371421904008926592919616710279680772625463054743660981548501344172861923051182238716831663941004579900402347274919700628224546782171210782409341819041010112027914443570546865451960547852428150394330863497645709744419044099785956013859139743606151137682580750949754550614228983924809400457370090507215276831054536094365053931294629429046570036004509473556975308208525325566421511556348334004339514172399566821497851128444596166660918002118263083266963779141502434786919255153498857002914642885038239112050655557953788322382927480620210351863698633957105379705615067699187351065269316274753835630427241608748769746481036174748176039538738459734231593919232655650603179880177037439292298950668346666554890975554096309034188323650884013402455096179976672433578271360241240271283108212010707487460608407437937681889094901997940308350250635586082606081653373966249022929291601138935802597270447307224116240066169824542528638554468928216406293213424049146902429305437137661879422572000297937687713289631952027723315681708974119496708416295134541851326868840141574180014045002823047702456448769241836120150706000955807856240120725513141879422587348752900890713681084079953911947708190279473593518163631183751714621804943670397470467899953905988158586146006324196004672358330686624770776539888693445849540887697994350368826708996336146465701011075559275334353052556387107209746176667450734802498789534726193762907040693446340102840699545222777057265983498145092820805517545150819080256707781080897838387354498115999633959367897581242193573502006708827909325745344669262535269068912306933755609125396738118913872978818398256837494307985924759775169886412629051547198903356706752778540867414156359324343561294847694558784638772749484692769536792025746891788388891683721884261171412047645136351992157174976898253061741924280702390008011744283705909794414715214491468048550111770648886678588313305264849707759926581582727856706436993158637688493962724583341701074621611372839819116070607234799510702518902457293413926378637993627776948114145208349549758308685885412343912946117557461146384074967653885062173209758246084218539539472784812598698355324254844736550935131309099266360708245197789730564371808194328998609175688138186800300578967217335457817909892431119662162379609035001909875902158814777591829605169924997514428104338090233897238658623059939675030075587599482585115779387037955858763727026974372667033510624175005764121606461014735798606510125319047386605123882984867809278732660667917897686701742529235643937311920993450627429158569298676094455170262208885795536343411034386710944795557528686095426532100501290175621257717714659836319763349958570382408450706045787071724452157140512715686670662054003336840222850106775973230410888589698001727160379664499314726283569989810440449446398447187303378438107653334258543968694590086729892971180351715715601103701123009531950772679970476705180488649396976442098041738266870711898393092651216032409120162295339570867579511132860328313888085090787464963807582180939503601417307387899833776616781346106518759399091301565555930985046599702230830097579121898478711007837947666724232861208941542187268880881715878180767832604001482417063214219538733081198243638944382026263589784049980707727871059370269887726916409799035990682788371810825894034463720927502680118824665392722238641304739233376878797768954098854021468407579629422915145709445726095835465893226805545286056107945359681974920657578176247074381715095126343457807777742154745868642696454083024673646141821634934723296896077084805992283364081980172127696433104777538182137358688759985005984452131805377628494646171682323098885822315423017549338010347561774754008066693799407726259176331071913731419104023536899613580213799933494867116165826822601399014175602679615858924624059505276690883211533759304913359356891250435661173159799606235339101026460950361349014713473460242270193870037552596074598353902235280193887740493264634501662649543015976574695548349171720536937572366741694263162207527578560474030669505137297468247200105865183915793131830158971150061146788894410184360557003308447519330096673767458890940205397402352388232971447434288798639693838266565044185274692272579210530560381349381719799998533224022464161481276634024485582600357110762465623413942711842684407129898295961413079989576767928088591581033894633749080833540204608971093722442794128376194290213428489469559819137785218986169257281624447631546242250021899980417360224266300163246569876609786200424089503897159232698884522709938801812158953916535173195743637599064532708843528523947757456840159723176100235358600789052972671358798011819712099397861319944762461323972069356208970522948283444782468395297177180591605682672220685899931634068840579339572980096463042608378641232229883876775445412679330419933331131193040080494776535695161629143598652690620900026065023244205023025828243695151656077900325621968173446220122282973459786642416825848549093928130344504127689607711662128918844636212004707412076001692702019727473716174252491866505325671624200645624131229972802981532329417563917220240992884677110038655636739258529379123651350967042520078045124537013495697151625529865088322473998587400623838465712904132354360047575232814699822352374080864460263430099120960796927265139163221827581528984789848364221657016779708602368660961381133475951835645158400607638612004724377437199888444046878283763556826937635994301555807266168573624205026749609560658729651586524633422483868378860476012812421416361778777898797809055853333621439290725572711453658871280479935715538958886851108400227520785026203635631499217744940377541000573422994183367771077844565106381264366592698006676621778640750618608430373160662017843522944766838520773787752138727789209766502171393189637708614611193591143467250388968522333450942923166899250171049935286226844093629971549252907673284279112780306938997401413051881290038979455998976295586422984035510183072356449928748414677803046464765560837814382499889967707190605095620452719704405683228170344608174763202907855916401748179096588125564921473579614974896082547992328264029053511639179792095249503162002690230342668284591344935822099048546982124932736216865256950700803212248189890793318994680822035779226343227584252720209279697686119681064352142115162023385101069527461823929773737724149072453160048536535671108368726664892389230743693906690413683340666579520155543949171661927634875801368675325944660488198711782164845089614839014291286278190562263868152025917974735907534993428700222942228790618173509411285736959752160468342099932755769701397564861479474423478386758826199923265562566848165566779154267081935869581018033403391188247980013721138374431908586118152398155490796006304092456894967552475714255955237875077618209003912044906573591421644721137084374947630741602030305442902309780376083225653244869581656280658198264876285656535313209529700334766710211535787287270291671745230331837144298442125933195075399683523209789287963512546763524532708649431316251985054729695785946877901061555036297101711360554675518410825962024618867283233965826909015433728076109576840863380533773528290619880777043300999070223587386092775352276679592661556885847184140644498752659210143392576555926398375210287987166543132647068667599102863308279160216783507166574439826473076287321485408370841129028175235683300207439428958280101112341970513438688062758218565191219715634457199896702248712171728515237609426764868205987894050650478387571866288993240217270420114575192955360591175233614277824211970277647593677444610580667798764662553790199258018474371498682835470241835374336134742086797577942758758306701755070140098187773215067984403568960518387074235017334682168370555942164301582853341560856540026090507132994935992034713767436443164957013396573535843492844994755884513802893252717262787200858800255074702809212966909086655413110749516065359928052640190032511394785256781943514888603798686037543292084337393130224434850900160912667550380453820453599441686320198335101456670820624758424754583994757653465271508911113517112833553412647336647448208570055428917099827505591021651575660823670828800691981274856992411817368877083268595950807886122652334487154270972469977413555167943432664187966794477347673550885440907053080955738729291550045797566529228048333521090973200585532571914349274578168877434321389959573019520604450352593006068759244644796807009106082227242554277507938240249812006537963622278638461882642669765243397477435789228565525017797493078088795507586043601681130840017212389259128183296139295187665868037429930928068254447206195086767264496285522640291758981626296011823190370819878378274001881516580304888938015518251370796994889344522753075435818020887337160552613421257572051007667145828683190883494701568069966846795788751757633298027163059260420347371046040453084258741658009432478200081487716715530335851087886083831092934262353975392079256300521882650779582321524106855405846499323192237092386659901537616638587211268902139627339617287308150459533236882123165525376177588745472774795205289942703497721206635383999057719897136698406154716578412265811864633650347947339317320039685104710516274310796406217838219286963164669137586123317909991328322442078040280099723284599020994426152408233844092472433591170601382286460730571416232536079461844223724759003021384368711516893922048793406321177672078640092654242092528818533072054712402769559387900259010780340227321507945112212691156525993693369828759616240214507435764335264472057570830330968221911087831815860494509037425017554470980713386017789132648150182467053072618143524784597502896105629179970453920646123875673529410402911873856909437369789001299438343464123811185712164077012617819829084775238964213546650207019540548195419429580863288841026422555083632382896414065617468558086415709376264162969730081651687362926550234825282624984276458782393129786601538805625642277061234273587621732436972797044838291792232386451112750456995177295733288300889345028569841717694320915752938934144379599797193210041454070228137908025897487173137953935672386205249496140915403443775511309307868201683800910999517836522984109981565756188720984419974654484791895188096831987963093139297821138689239890387842294935310591590654097586149089600458051459074663114279624840957002097832217250410561448072971002084701612307287876747922799686952729231668424706990021874908900426676093179249891349703301903877647791834392367409113867660793205157755570668704368628080061455461371963179619494583892518916206894490546598507720823404257504870040502903254020904529781664111375475148257594825519263660842190729109465017832613890263239049804085865615819563132762003542373332633008870211344912560915757823591061875366395716644078210338250451219960488074704492835965980550369851378174460244983504436893871495039868916208433045888779337217795624599807017287132850120234561048735048340434756341498189936188680050028037931062931134620880398770880637374453707166305758333575334764691880431195354820495453498092212758599468325029323079971188604575754301015464656957327756372931616072504084250057542239205700646283974855470041414814559806043286056676149866216465949193733495174324637928533768089220557205412845947291058159253290318116082264904126902265877697259260256107200078174839447841979841590882421871951599184724347164465549052036035306279708252598041053202674829879755730260637902022089539281456085379810981597917113497465046723847303222294022585814983962602583834076362813913948151103160309373211764907801935030257075687645368186420520846164180125189834397827480992733058996984252268977004326994646245877232572137636138304546115153378894820480680048633147696908765131532456247624677077962801889578175708911311562078179897686089176303028124571602542058084654009048161655046322182951575591760080454403871836787434317599527238503881210530333694186844751680535989319288350845619354548535982369193426570683302696272020881419393701217967683190914367640134949390218085065997147071664042862842631360244334779993846624053264662691234368413864266493796739741208189679842520137418340201282343190343567614614698899946433933587295204387090895095758332206145818552770047248735654845020417792029203292346100640783196576501334571486827872411420060267705684566144184176818199729151338161183540125039807111821804083314550788644131121585607734713593479596967893472929464583781261531928716107705179043808792653135572487038640796340425624601602446998854958475599481390972853170143975487519211131315964078191502717219166545410252810018377265097981574569994520636179042337656973240180837886821994467996254656993819955351838438484044091256517446186046798872579161161916027230766619004789310373373754045330755967012963487576749643446634240701055573772693367560203961781109390362732119965538057575876762339934715438116839044107660053654851189987276906248046082295089918104382239723038186913054883577930493677890848705261787378984871043931131382207440483501267705046565676732192563916915120022430647765960657001263768879056249332124690601950026077640722681300841604046863564140484427266216289297675340203070589614201684701767643984267025870454941883177164270842159046981697231259607289749761951951245418862841660034872518415063349817837131608434399721675962303915816561110362312969178636400629449021647572258502264129312592837142943823771269059462940314895208538839552013266258359943291936665440740833104696943287926325493849825847540327004926478030310108211083567557227410669091955368178132989735792367468919164398418480149116424146776312973905339598612600765625391198332158641814016066178312325671815467194482540830098384130806057807499306433845396619745535472028977617781464525360931837781039155527776123530598282345683398290630189712805433087492475748452109594354442615307469543915705250392920577842959690303389730566276042054942981929471231418437288455454584586245670778665879201926593406456077773734543327045183010747047649104930175826829631268991508666990281896039065883137750344212699793827272309222712453194573017469685832105653915372486905202450228816722789002877455384316833192787999409407854023866380860377036016480562966924614228027126647923892353018031147039783116497578422476768648075877092528559377575319276241664106981191827905234973240458006850851679484362907318765844200852895647659833873650045115837725963613996096487713321602989853337249377410550388979607600854726332508337192058499346005443129766677790595006275221041860380929758898125913160079025942612399001877716569705807964594037427759297037093020335694453140411559148733407508424096917132206225367630860846705982497190087482350662292850349218483111551806112236078782059800991055227869368669073388858340920374942743347169164953036489473912074869767146226998554279799077365277327155688729694300824394234975003778295583995941472883521747954805475767495307859367133267876295564268035685046073319574466730686437445005039903380477501155315377520582605539817563081773379719992807592280142660200455811438555531260701784082166912580010830827213198253633130017085416188922684390861869229720755152717533654582631051661443708890457572176567216410645980847101351399833455065806135445464663647273360266522256999330627147640451953063736985011639362272645026949309325389044240170907318616131936197195115312745710524391068849265920192049560925935846970772513015049541459555285657713743947707020803759470913788254216148287944392065927853572224662865692462271941537413779286744794145877009488724219333423991131255902862884946433181006836341644187424347108493767051587893881491834351340578348401749403527887277837956174926554970760772076245672532461090134685347869110826252484859033746655892340895824003165437422782092064189485345999947783838702354663722680685820735959231772100693826877131534163179077632640171422766819480852543540079601844613849386090931182196330633153370494834299812217702982559968351886449661244563895613434112122249697756399531729764377596912465725995403708760397028998730405863367654645995707877283448957885121504241713706750054449483413206664200439470015457851156438266500245296982135040679596809442577248139694297925107904475999424741641649879254115456131496189721478443164088543983372027000300458708058403392951425650182602717094222510498372608119639606099014787162300558976799267054981779822370346266270637448410710794659976667216917231792921024073713047083345099629789568122272896645547661246166900799157530944524025409998130496250872021006418389807856307738508147381690360548244297759033176910653071934173777855462890610144214768717548851654072781142806575715436064646800492559261277796118776891475991903825396983446527761542753121673394104845194949707123794509999462834901410320349559096245754996946084838929300013222895417297750065618477337994288869153594636779910351226590388987983698151894864523019486035263544975773020124192544796061462103822061283358941842677458568429678318009612982833335088391170207710717446823612583241067979136323545032083675875587071929817185151080099526682115510948007694619297337382171352740430103290252537032880981412975490275349102396024921390686640700863890535826824733689944619241518939195707339047670094637432664426314196992918285613505908897504556909531873125305717944659145843850135206777314158651782604722210812168887038801955253061781539761325835798808995562536318778301046015807999829401353690872697018101785032344668206206774019650567824965461005673822639864629437974415361573124465275777013964857933878595826787129224260865215367669598803706486796946241472892991670352816784029716065420290820332098838835416468439605851848054152822615919313448668862187523702021096221138985691466948197703262319268379220540844866722797191708556277227046880676551214774803058398755179158342554663646829486832763187001474168897041897313461742202665439001092646939297179763094129833632179594786210752232708539617949575288535622224565636496196542654847118964096783953322485866801455261468954656510154310688260533742332547557672335366279734531305153929682020015574871877755116707611637153753720819321904972352099720302013135861168448182408297832871430818544438249057133704738323459368956807379761434492931927330334826399683984973695129018435677106528428441504078470033134411317573606039412452468626908837017610779852848483399681301994422707597179056605824489020081590452193262172133091147178672777060708405541106404924013271299231065842545786164211042251436789943754864375117979578141972756859891515067841412347188165870503973406887554436023610437842153703874442429566735587715581253209998522206907113567953342568151770005321159236612511072856800410398076010937597716321016319389722560006993179955234850957826276922902235240840230890887545132114099917189464842196683140643353927409981677772578730243663611457825770555202592699366680820954772715122956941497462786257277860101380895069382277365080907808625377775739725356732766889551360118795558348135646970378329430228526596143184999608448027032551794009375531655380407983577931361337744487853614567811761084624152308015751636145776125274002652451431964839828351198449996668890073245482357717222839331724710185753585514385821685684044030159099180129935846474743654554123597006333802553192277250656716387732724464064036690931031230418514086222923556670573207653793439240586257151358252893977561472606229358372829087564724760144866790902486281166326442908741836208286269838728105989752244966620998692697622922519688053504051898418389782165819605381185119358134695363763832049572763180845093215548130455107761491727986407878599629895224013428650195651846126383768423288144961265548222345003826511637155415426815064321876296778281208171896160694888079388811037327860430014891016659278472743475535280117502379038086928678295418893311366925803249328430640666069562196874763205445234549183179163175794228337068799881422411084735862154323952821643333740935356704789373577429227776279125716527282819175834375465991780905725906646084062732900888977661764155711178773217229443040146048858938373865349210454929242025944560961593101189240609406939223118104041187000992491861943279254738509803704594804591195358200005545633068185707884152963323385241744957624242201191958609021890842894180468572813767509706656185503820548830455629175100143806632273532307023168055085646423225504159793580771127820628150651509404314844637067835128948148538646838516723465459871908426699734488609257743395427119739631214515357259589857628875686500794851748516180292880807064685225698184744999903567991142215197435816281997499493052133664199170894990947356908424661372204979249128463934555441375485069700580367270024805540768921733489369819307891926683075692187322705983071725477840975495754115770647191816541701771801477336366025841799982815526700772958004070975316437407536925764524775474627936142398968395654924789442018601770558172652288603228099108373800763649568956163532719549202247825995112859949152940829424579008218543827021901015405828184771915114951232053316150445832527178834383326778771416731873153724566640953073388507094666118974172450790239652806641037509804713887724640098577900314935500453161203965314994100562738632555044311048077176681609807350899572136168736934704405534084266332296847385639099486256401661927480873243296585007950308538954137544764501937099040862876861135931442951128637459360789343347027591410742395234605247527530424197446765320960903322306725682025716936974114042740077842816591821004955364162067748879307128294042623404985805127237761073408519158481516603723737048116780072610924672243743208851140239574749456985408197996685867803215984411375847023964960726312650729099074588755235620899091930425198340954253298531837242529194854566164804838563213913694572157233855465305487933794701021798668702899696457381929148142096140384407460076429785395349323875210789500342758111878994788098564016401031430830152011526565448105067904878198033593048540951897481518249739665554086177430981393582569359636584279357728932823111595687324638058845125936675592448861226381049306109774234248917252552705211555746963092612695896174387708137780340750461123198019514624901331689532206825786979298990692360542091859568066798203565834201380017874354054292452828731119681669237316370621599066434045850214542224645705504295635756480302940970687998970171757290756508555245638944950113757953878480450931112301995677575653998048127810377605917152435689414057934833191834066415556440700990812352884683369964857610805011222597640706585687244482744976331618580921869258759962169314194784718793997207203231342324424219769824081418150058312292881326602081254763161995142811500365788978028790211326827230400121930517592110993122664703613622773991310378364881662005660686058641973155801554497282586347394429255218949431788946462643056078007816243062921317609897707686157358867386507284668390957698303778789326200284426915428256362108560055598691357719078252314488145283764105831839298869930949443182037317460910341123988389112104627736500761440191814564429335255660549228542333151126685094153686326237359228770626621405937453596169782109257791727504669253873887803790165739367575067121339788557733700810431001608819164325600801911978668422392924845950631956154396440997282986318922089260626474214096192812302333745896506755999329525149740864799073238604671742379884176928125170744844403413091767208781890753581428163060937209695111965947933705224093146103689742471881893579705718429482018278049602087813973868787073344263033626003626297977188100517822769465937693168082399887053760647230509266985236256000723735592075018962753524567724610100853433543600914033161808313173223777655229785941865117643799299763030547097443685572285995940468963161955861015926398701909960337233487836508595355710434575188196336790888498667161039204409285821545680877975182668014906245548756304029682871078973262308980574296570378281560525532478212832198079872813877909453550248112737201795044732791300200659261391636154430625651831920456666470717911839566389456292058546850063065032420177954836746899220151716688605327788348939512176589245120778822991587334035790272716512614140621096316733768351303351497074408676311421859652039797203921049264102155393767202510337984884343940203568108158311885638922720066431354749908410344639258073085872324071481479782480427715299952949542607153348513914331312311648721868670346524833855282998503618432112280554025719044893221907196279949546316394119434156391563635178053204982923469289288057413366300925511099840291442862387721695715227590837203874999642048751776497895219957848041625622481352938672507269960292903623569705160532934406296756851142757453481858494434956411753397158756521482482079089203301336772728265838640125831773538472190996735643968912767987128038909394250479329307865291702604465855857988293846117015895368135424114171000962328554360225000705635669629280472351201750970684607755403659959111671005181080154548900290562433610922225289829534847119345536608040739690668052096284433357810858798993183800614635772569009586120916019385420093920771193208481668304379457271147492284114580133786064935434543649982795105126138424544873413005225792917185493154299523068155753392917543648834387761480127372331888632257460071448163013852121878189698558562276861036146829990671454815715467258477880794790150029719793137441563086116984936398239898602502906674671559563402601015247347447165656973696917099076665900521628654370118110796462617770074191656534918608291541387368285598274144168186075232172221093361618292362568943527702533837943974098661180810595518564044015198638658227983274755808752594067989995364407384301036251853881333501141334128815538909221703488175259933287752490322545672027031557259140067941419865328940354384469763419512184141898140275647898595463408430299109047453830447453205465486603886229407265875452626089646269835308865961758614579926390918238900968117686802824091562568853336169422109623180874924966798781202753198418280556898007990063325067619635375576382484183972824265450514449587026064498899466416257580903992624126929990196750644217820490544355768198187158296911246420814448683502799359091013932702060192518948580993024876929285166669611521976651602036496215329757093037560684418144085712546436527370770063682123388365336592491343804124199021024611759387835103003210891005520462270077420317093931403986358665477452343929641655659288138993283071585959677584193874746240513460716272106676591899722258154278687604184723309456476079204638539083728862732711558118835059546456760926213131795405924295680795914172352561095840993085012012151613890424345092980522340470164568278887496158766504684042436218712503860939140819175147936752240073131279749869982352679850877673329702345399585056804715303918515231097143600957771263274114052516151986534849512456782975111666218320419318338404765878096328001600549470207189843894880808226887466526485460357603827640097478568172198194985798301369087268910523044950315992262816014818982906017207795689916257641068231016438107482770129415668367138217791370282183237133352193757678646539367284998794212120592438028290491408223004084843984667040964270988998829201923048162520125381217994473410383562902660349904359685677056799133033298351935425199737714639624763844677403620094783145355781201109594802041464241612307685892434370015285527547906906715026964621154165144827358780036982808353583471741867881524108487365348409185204828677175222379385139202154042712672760885839094954469132398958633640275480790900706951497663319695869576315567583388146655638858444424158289395089558133013005767108284499284915231801399220376339640564664326180389901723108818362740203102188397527101114193068818902419144220462505844110401107655858942239452263065725971961071100478208033942309777315265083886714297325926131217821968049486166458186332246955698066858194033540911236990386411356375717713877884423667100597884789188725597628139705817741907205895890270543085439414680392416702153439089793976850759200755980806752615452021011402764382733379832838809246318964218794775226755641530867302813765386253796583404938495400501998064191647570797391911397723893393131075886107827815093943798059431540538142555148342580973942394157700123355510861317185109527683541986739245606358427974971832004517690278367747861111601663967871996844268376681398604137717128354163477777117902851252847181576034407184183121907373652872580202589250491677764726642711117625795559932993174761023937688748265392803722806036763756304909922481482645868822694719804537709972216832554597025455451196938170785413926643176503543931572069211386344672041572663958103258537117094466284565070228906724787790771605560888450391177847532542172096836517249564868821481070855577052308723247534568439099193954116006258973051593687762299633784125390765392549277924565020749429650294862929437068181911916553219183796288382687506110455856553796481254015800315771802428549389121984908210020071352804673958068135387919262805592566894731171015650156074782909320923756870161016820021708981628728179572558722123224634180303600642435441843283320782323210986270212474000599660813260675329022559623432736342623303773004236525437413633092560165979145732621189293831716338354126537988028736781794272275760647727715782727091332666415936137617353274465572311612362403253302682203791627724385024666900298065882255912238039746356098824124072077351522715487107823140954388376162025773022433724879363447098893425234700002225103224728826567571983272497050336778623040195888123715562472243312221638776032849519066014980606521540864876374238252937970288151784375196662383254921407195692572419192581588466008682337363937769034019633619716672416629685812384547023206059747272252355544057727281346237408936821948538596355079248189549431110357448299277645913531835201918176187651993484025313111103881139315842186491150709868289385667956032784794487106123365830453583207772647546776600530556460085181025832336490095463888887485042302657191622530586478139829964605022308144749031444728833533271919519338383545107801387004304215033626142438511711463638006907988285286484328574364979699923130358060638311800995516142665435143654932561461996721642459700835733523841885164679930856843311572813701905233072878570178539184604222042241593349164639583594066602967831696143791807941322248666290535139303578820242037415662333266413950946989840125591467035471799983163563275307020795131696086177084581310583829601619674322303331635809720446629150860627775016074865324621004543218375058426342769794188270011175128624570536495698540768830128231900329795082818456711926137903699931998065731688855952969812317483004954341494956680356055288460864738477240355243762060694883035939281032466892940717948752503710779311122577814546357697987159323675592647328299836550934401023301453758999692590557510000935986730200981064291713312853737441796661979761433918153897127937883692013365795108885748208871776505078116709588112228618417662641734097140577540489690170037720410979896003149818564846593409062084255194073247827702349394139276749460752329381509975416034314067094964301857238033338365051594226541883119998938380337242351266485143942984892965154160308231454823476386192610901568833723496355710569782481497713967846526941227527051498256050864551508891867016843725343109584787885690211763085816570435177015543879519018065309810328470780568654823012936054849093820855730354296742666026717253842742024898536251914793477366416688879443075922269803892797003487022664227396069049211295588899320655987406256688037322862463245446437087889245999737190676300196391125578791293150428418370134944273754056909536412975378441245377161766342560700790944860282070967231958677975546069260929099513455828018120752014110651283419707175000428381710536685200390969310923409080775596609479948024245613058241100331986826543328002709367376086654335568742095396183871916362387643821534582637037984295454170978542616422987951614795269987871621884516099638698123127791551936409528153962080943190709274969307442986827613901613403977911616296910878136461268313731416373183917510308301543426917819410831449826231778190000481905206002483772364020315550908508903848902468305031964454564662629820623095352644170667483056638240252505795720467878867571632929232512075765773304326803790299565765792456112054291824401751348601801365159255726122236902801615128421609847855195541957944867139725692053905756887125225233467814285563453034608940904044273392703119618336823557814909268870140422878534258298989920910412018929328987479341787398830853787138599602453694468882730401833229749931042383865654889785054614402458788190938714113325395251907595822692220235715371068480486022798687730215076400847578093182150203714182831310713662528721535812303021487744945733868081910550587820314090453583023941196237972218718634835967162629479324258071348503290436858647444962049406029217374150939813166181339498105068977588233411189490214802609178843840396311245588936547395469120048300687828226165200093754132117167744174300699469888461471671710324808685133083375191694120735233583158654030044529526013597520074343056617954803587718826843924908801605782742218327831665024172086599132909470967462453599767403860164863810799774644240743216662374309865834935834868988179636920028408417882064084064502182347142616978246249022059646764859093810350081328355874588887073348680925339605755221622145146358578260583213674175313378383447141946902672612759569965128594152364970234152851230074355994789890395690443026480027593909423423790868195460256813673038068385265915549637628416128748133704645295232080021810460602643110004801587027774280596877087574565010945992297730921140559036159307751818025808280939526461373344026036441523061504507423991171123367849782923939460569031944439400836374703898872240746528867588221908105228530625750330758603370410532379219452050817656888097726244563922311582229753919037303116123257252497201301031418135586906291811110569195896961203719873702221705671267100706214922280528243427030111483482154558306923130474378117584404768148191522912455759475367267093678787619572893655277378729399654607799452444657280690977705261635350522732120079653001320280329750704898941175968807392011213816391938318593001006019674372157727548126564883634634038882810859311663309727810471123052850442023787898056225005876711543616068263974372662763589460586490987803308685745759203607120420391239554347200738542565108633546588529121479959336407885538124851967144319087306835800231602442089022511084268431327791929914328500307186905871997424343328010115228102809059334326484874561949336584137570731425206416210733438836131163979429396806491956424563106706900421472620993225283921639528245509037150956806563139477672210767327201809182636801793328014878838436582525343284849834137153364703023993534178430787454878866512842447720137991323468332959310934765698433238319627564529141142898386351176659035877313794852750185278769283329083558056315822149657944231442747904568809703594892341545210963714763191796925388336173233356484407644083557117108747204310741074836159221788792297088571523997857371675608753461130646729878889949707462677854505211604937447478477084498573431940844402513091117147239630906505244525445557390606725430225426335130859137275641238266368639442256186183311794986692792320677280484557101011424504274650421378556916341719095860655638688308468574413945775527624672370207718787970132721651590487878246487560392918947911293481444629777742541389905498261980710039995944668469208711924169396799317592527976110866737652005976294749963618880564719175700766145072156531847741089302824555749983210148006783447314985335353893324893110724033536754346498033406350801946147774875164318673104499590515483560954583350653565590116793000261985525928333303067372828794768158562822501946401945614983349050435291818512996568889113810376961360858118345882952895927884267066440873562095458428314836026210098997188976686762275272657340034978627479932129116207391173008743771195833644305835453788902556721403264313603381950222179534606058836717425273287988801011745689874305324681390312979576791415930693835682176685921653919976504322481571764218260808747706687738808727820989006938171689729865391450625861555378968257983095414157198193636786571081759916897706861108023732394599832891936656570472256857726627922568278475353437895775126606495216100678455422372694044123131426905611872596953485522922032713786565354066977154711595153814418816540448724090363946935501252885415068689413106448419922103746528544289616616607062433356301618975701147391309249318179732730038822089933575109129796471718274354503935605947389953798305903587388936309403509740932715112824378102343980781442929162316572184696178635204259156671268420309515405912572698545586254597837456682090236069652816311164244943015171913209523306452784198317830002962627994292953045291569481273381470242050039727563983616163174525960103508386299927031110340192780655652005727220404523454544692154195919557713411984194007978299655643747995241299731385426192227751189447409877623379554353080668529500517904869919181207435001975332566128944001349295772025069234858466061781588863952850176360987707224509406154222729391516458020760179193541589085045120184532512470707742301037930916676065304144898599918627063147286507861752606279924451669476588950978480508935337538627824850517037462678790405124226867739180115497455460158633661472826538949834152208944969458126005416237942024136222979938963657059911825082742261673178177649011938841305416396429394514768995772684313311128308612770534551369496945167053119828513643703903589851262907599430875566934514881908300520538402481841287751258190806548858625658362073679625794080202628345935262602354329235603158189031219040780575006462992144926541417407614691975432036028388734205969875297134094243059235104822284346441867718824894755609006723061076318652211146670184232835470027409947913834333644424634667708010796188606636510061888153097723071322007752186799355034733499319702189155170457562857055784506030771419112490785823927370809195101469702672241236866685599780488484234269308044341621310834439605355779691834524644456398128043948886126063397954128581016432829536824368297527277584220377375912462161481032014644907666139273921893698599716297845680375588547099370447664194047397791369848393821874879433639827443950637177207444840781472360607293655507403875656748707534365303654358186494424666743087341500720605306026662437546520087754467048713427038548351166983314890271279466213362292880125830090302769313963266019995801571008213034091807310642270212256267060248357054756627085921050392901812325178222490975932779477240578447774347296001367781645477171095570240994639444025435025155345278054799327960704297032416822001846000509984022984056276929605385851749513175953740552287962233087549087628810915604059321027437523243390183183057112762125064564216999972028053695273176761720884324855108836234086447806958453168268723512007320602732104266012421240830611686415577762083679570233875860500944374453847240868766999721062653375719882684847263436312468077264251202537758285978966227951948876193385409637846590094195333650803667497332576235065944015095059052491858913081640219314180357125224668656879061199145092271649405001389235099402060461923421806933857518320197783744836684177259192051738956842746105841104309164579815378072636878747324903793284073336224922357620285035237785385432609072555361838553318932612599380696227759517344928489354630540087859545862578374906815909709159286033093628885459176439541815789878321970253976035014427691831054544871240662360148236646829786672313351362585298094344689839537995248498028179833659672468374104661967264579442169300027343072156136050262749785336459633864291160181230310140505337331702316434797559518304518439208438643840882253121387196303412703491505473772548962428243906198028231536042289934826685083900782849316176290088111541522099512016816815839588671361772290346607604754446715171847006058752966556876814989257185052567475284894077231376671886942183880121125474434208118714692480188996532036923123523766753903937369027506481437261359866016236557720832556078590704491853375493268041834706748568308537246725626129682136012867631512603634748339529374830383547824053293140479432906237454179501013786739382363776571516205181182676403020660522965692405417338186862356077590975415481846284546679883089106069048011646453735822736827077156250255558422333924542874009254308320297470910014452431026144266007037289972796679514460331906939354448810481072085660182421452263637913323895596622968614625706548043809701277009020933823401434641653644207052542716092678004063199945260391373134604383064477527073436707069313840364673943349628870595312574610528566291392644149800379906363653144644190114577597490606834954461179505202154767312564576733472402802259298516331485235986757532644655483373514897502011160012899185491939615611005995950124194041898360688725507528619214718484620600303767796747472359434814782379363048244801383964312148643086408408853117308646868134077238094835830882116303944846319011464026002182434260208500344175189672266683674588856938542744382530592433148377888125726301383015876184939794120720212643768651986062462236126666014760049080963976953025952812422468607602462074201844956539717089088769951538735994714814755538189525785892260918498675168593891325017258099087332529521887110821610596954868661917028614827391240809496315895807021655500601243929971395534976852216635982702514180077258340550742811764467546055358579147773884312511310032913818257797417230150339902038248085744653255225916241934299336647601126881642135460339933290249455706161275392750830088846209288120192670338282408857475434432908932350042870985557753500467526333542222726500627980752637253601323913669986942815503171971753641639652366819936748296044326474780147240064485919625880887566132633596860057038483818904108424568109547472768447020957608903843979048013359754090074763595430145622041261574073414368327429496391068658517043783435261324257991163218226453586196105469087853407258339597041961601643852384476623374675276181907015720811164314078697990170115258154178751548645178432624847778322054510009078549754255633019206687372901484214306983880014830924183309709398279089491728639118884070449217974576628986285136755323874305680138262617555986318744046041788004803091898269870499228490614431465617226707613925069975710341309007099248699473759760642577430193929244175489970337020469874191524855888694419736318226252544505004691391056771263834103966676560553486641022591237396460737696115153791098551110392372521365774411278544844668280865679618730816308232749349550977961991728971782516713681622709616240624505545998161322203131211258674755493941011574921217384375532161093157329269434521096792298416103920003079825384146280202116466398103434068452202611095721355845963440142704269744215815068339916105702185891938961119143673266010650641099878029691521929449559372588916680159926364064541197435177767828424360188557848127097451452742782344419300502336268061030500030928244525009247213362292010616365830424743812764185219235262937362318903557036452470243313269720170774876852382153246240318541876749811942567809465154630630953319602237376910429052160835572221327339178642623625620290608243121633381892380284013709109028036569767019932079329166618373138601718851418476989422709039621081219626808857262595419701337953918887888844192872381708494712106763780493929147334658508453511547707316347516935143047259057130611476816578031758165903692387435275962960129545145658440257046383600577743240348616695097223614101082785678425993807357450826371303088401612863129286319888514139216976930145551207423776657033817485178275452347771050648596064901296334990670499829253783248736141191512765049366130492837857473518520488744622708602901999719895399132287700551489765606146559849935224739921995691871326049493111519662587591813024473812375878724221962214229674862727388563898945733432697433515286374258552006370936579833304299870955550397631519296424320246783916616076572014225882140826206510588058735029916411773428271422684179709806929292568699868025277639585507163439042791974886274092423838806256384243999573544891117742348816650931878991812766419313887112296733205001747976211235133297246830492112555368980883641991341783682622316299600792305574872436406115544989984267583738078286545374688769408263927700055349116323650813956233690034528551908220088572423492351363871994480100812223846922397848686610912284823580176782686583180451996587814939072082704693657760235475987727306820208472732928854883420763826002225485795125633712731566564864781300239885273042181411475451627916097484169004346612748062224522136260268866257412458304909600272037003533389569639293762796940937457692390879375762532051041700002030249875455636348764652151051413438145144959008313804713050020872622086346377122968765467001443037723731286094097139852273269514324136635153827848850308325015543907463285531655511148086225299637594014391454118487224053041044470181383373872884826860839820553377455918792750607574805303013008590225165805665899882508605284309372207601804448931455505593869301825273343874902975981089570322288872775038436830826037100433813596110447631253380119820780598339327042596748185632279376378171424197101722261206687801165791394952156818623895518877528219708362843456280414987656704929168305210013712925396673023539870605601904440752468179996740456708268128311568093166546923085641289508126929369962882384127036206493119125667475203498867721656919266448105468118884101923171438190563912823411389899412981027248723534347857488192791045348176886370343659294380142163554014743419483224959801580190772352268679395620670829852687008915253672328460091455737696768758080665861750309293239860699524876361672866353674166847307177574480169432720341949307103827924371502443305220825683871098343291561905719561695279899638944311611463258699779789160107636632818036452199946421785189782200180534791640280126704721077651194536316113091918248413602138116208653986184879999965790717570707420961958236043334528917106491946089967396204526769342289968800122455707142352747269016675209080975531484692653400962952436958509841049366869487510818491931901599969627806175091650584612875238257957003253638882718723252207780091762553071215343691968381416570365575292974931947556207496494275149942312667551256896633987760271143997428438503079162629753789146178683592601109322705359862739858819063631510502733325324196654416386864173621094988459874854486734257142166304690248016236369550001312166979783941740202518991153732245535242295712063939551239878877959507926541459368369387943587573110152396356987792197259306207200934446520955750761032869301130229984042768286601221213127455937225760423673266640831278945758623743580358033162673779399037125031515476531434904742687870731349920626325268284714281424881693989975645733293660121585139316362493998632333286240636741697169050399948465381057883841263114276655082231739351031423705851052078600723295623306978182685110703384121849899771811343504611410308775479486873882415716889854083526283643326736482519812675734658611451356308554024692951255318432539842175579313212184294539737902330727364004272158555482977577598502937313466416137300654028789312056935628528144275307395045367419502267017495517372854818140998097618474527305024354942924568050010382128999630825908988729309946662358780256157053954644522660567591686855522670934322522365170411578416515519880936328453959686678885784865513120446623792962304065314081399636863870109438203104179500133004755215077926990364889047039184179031210403385140512896224317184140281323320500807754970278983167991524992360821887030781774432152597694067311766022315133265176757498906987160478848409987461644368832295749847788472143692841236253258392062479579778348273150581743569123295594701171262613919765311583793162422024764965772805696660002553322025261553869412043196833591895190578642870342017784689460775074354199124209512059569128118193165336209504335184396982559187868267792336593930746158134271702050076223842072709802265302222602316599015440153768548227360562285760712505071528658172329591903827874386609581727769092912947464871620833621198743573852771071373017963342297775717118840874390908873597344262007827764672061080333752822499532291006197121847463746252426604101477227522352468543740583137397266781437482659706021923273593463873141801452474166784180105468663123880840388249491382123785551610071618033531238327314242708819014526509135974031323641809575414518244384667967039786497135086858681335525051362005112508881557301487309655857991606024112050598142649354273297177589265697109020310867205097260200274750317059167367421837889280251368595557076088033517622558818316726768730516709644254721891299833998638169946484388091197149592807107634004600286954331615091462007124655589166253134743835690097656986960029965696399165648795847758538643422635729596581763477962138041694573967488959974376925521025200263799929439853627699018751447068937169115507394701276602884272413203159427215776303080042683982418727985483745577669421820878959968376860004195700058480278698548324271287672392212808502707389166000327643132379076558807242945279899333072588291663802909984111724614018563043071591177321502845910272360195011996262435570049393068067163054170687215028925446340885638294478828641466479394191455939820122942967661115722444101078452040837398815106607512868320760615335930607565698833539802733226651749741611495795518011188669521938726658859634427954469245695175081721766606837855820561028891382934699386830183573321558996267588312697862081131325102910383824960015100984632325827833261876214937362832477567905666376186639584410161306299093942043445311145924186155796937215937973457101761409511546600897432919384560942623916801617870302759203434002853801713497188376125377284438291342500342021495197688907323904465698820878608903671882163480482234554302317430661661724824704890034850648540852706113104329337583349765064760792980020383642394168607052130261003917462637542511999482310680537736839879105552551758132421999762277690436093654176396062502291826822708818583387708542214338498679414331320273737880928953923694378426338463552605551055272486794374723595782317575688654368508012495657280007398033593207810270679216942401726527842457590474770432941265713936486418968179397270571509363935527479727868488961872140286457860994855497773751949903647229642544973560251933590178986543921492871060093171168497086783100602078568017126452557612115405973834308663726658137588529565845764885055386650570073302898215103732059769161031031769664127505256000343595746478854998439969471451291921005849079810951962441365743170437507690588717970484334579052755976868175316693560411742149314903691684964496714169105982552984630036263456960363464476911172834031259522668934179536705775779521097754715323260700506289370758272104640323514906234436092051162557424898416489975997508591183598657285754885831068884090595475412700586733237762359220563352078317836486483100815453375825175786069115834696786117043834577125832618411806875209906827320385143349187485816472074618762625295073862575615876896619318092250986017080312229728501340177875676734695576555768083187069715795485442952470995462714647230115733045987053907484153417500477769478330268020699292579276373845821159482958676837062500759791085424885974849865978077868802391196934881245337286317722810237169465621224646002132406540223503377876136035786624878159906777000185784700673274442340517499561865528444203816402971209431367109073981812999818179501778444980833432036630744093691010441639894849642367704943527959045604393035568667999136052776181516595212676878023284116639270050699648539504345460320539357322275480813599088386287385623621831329459234536850549822229007930996639346367942252641400382798383916332496878622255042358001186398790732212485593206375848189606139119944255767719943410399525945902677436029818419717130779752554366881005052717372674749520037061381821793245312838460769705058871516901302842917748907537214992505407992654370722077493187912348992194202489190810215455753657076122987967228116002508972040166110390545957595328688993521607170467505704339345213706726621475333302897440735061435154180649575452758556761997266009481358628989442629889683000150554372293842797649670062669793636870003611973028670284634595336996241305388749225461503650023842305141800043053577494232047575434565037112023611558409559694410807321771931584522609459145211228308377855396387753227420821288996372910559974939219304677478215390728990582128773223935044282510604268095888082954885284627215472639658553385436600898789901109686762804985705098160974562046482996922156089031169632280941668707937384219226021393176621172460636068388798264098341963017166366728814675319929306070288712916960992418510625776525884257110858222052654222123844155872701189659069790243381314961234446628367994595055196944259621887465095439004687001513292720821233662488515540701072086205452890420998033420858593715977413104490928094987042692068986277685975955532021128463989391551522003683540375077024717255233373427573865108608539175707920884178636835151166798856761457692144214510517589423428642915729862763232016441078103273870778295753694431222938579194076677494688152757120777124327709136225581577379872890719232737144944991722444077513520341132068273842622010170595937797507929621249451962808526956287242661752612575489220999631191588520629282177222666484211091359073342150929539405513719209973667345235219584749588538343092308005807002946706236601197754017411304841840400029381996165159182446838852407773052503192024164046913552120203390031927423821349041278948577559636959799679749990471372584657820306494206494744219701150906224763787690040078266933879021489209497747120754454146436666391252693471074401809281755921951550288180850280770553139301642215841689155871622651054696589555443478241602066677744810738345513619769708973936921913245741792433424660553121623085589752578512146276985245211104461173399098119974024507393889380142941542672905443694019784397259446410585970164238557252560835573428059812690341390029461961258267394743774493752457546624316797556723118072509368444388218519338036510621285021890301288190360366731675108312385816591069857700129024397716115573420291359393063463168676398245202358199299722494898618976043868115823817742842554842439267106861076120037429598871711872152023268227673511696844724721409080110362179354485974577017475667627098515501594750155487793708754079328114091855204828953028469725193244163660909720773689599182014415549350830025590217950695037458139680119187822298094475148824375430915968036124800110664623148571503511810517288164104065137172499546079112994768910831401290200473702912464036500678077933752830319173204545741447907637580109508171255135273538733743713804349100921100695780110370239566742412877250232788024573362016086328415556859267039467194531666537104590538188260361412395757475190048104015450549916411376484824290438632029008799274487541284276722617632371611942617208410841419410198752702826018590550578309421151861813156973480536241181733370564905180683347841123581130337885633899675846048465962383087156175079015523149781259577461392745283393127801359649031836981595280212452897809662079687874946111353541934559767123943525456594972726367400767584417478018783715279458357239558953499072551113981253295674089928750573302820274836755033417516442054372702661891908299273969378408140293034294180513737821673324727366428275647033054664859246446405275528494829640815562436037409809665199204532510863532928929330557823597595709491429122117837440440223092749161937644371282952479665419501290610523394681911491840229377333734543870283580808374137087166429035011871168131359576373307440694920740056732087975879019267758197261572068829678896106430681342144783725238260196496158027417883524492102049804257375419760648634774483338780988250040722604324774255901328455186667765168022248335382767029390944843166960746884904176731549938647966255746483809922707494476660186548755690075063004866004772543987551066101528739900097040183772515901987542030830932348061261449668538538565314449379936478424084215836210409517044157712273489228012666811936047231438733053163902608463427722328327746705075298796660183893075517457510434262714674330337955524216117983834425383574848421090386733881986454336715568082160220018082047042504910484231969711821771682522586272623750240121751834292969968430820867273271632271044962180527153518204884175784950845024559481034892503986267901040335382410470506372131547096400038349062450693160058243767835617124025261088961046161151961558543839597790822261981527984673193386885581329163064568769691062656861919477469439882746506722935549500952555254894421711850652454202665501354944877905104475224209134850437705411508625639267767765980211540794121798148740647735827679312171293290783218901828363121400573581235750952145249904930855177884923880104225619157152796341542039873926568309231286839104477361803953809569196394213968662105817249141175167132338641198759096140386039132080081931528213171185982128168224092042076977805329503029836775780891587813244026006422835046592894401575428351286776501862407491327963901761178261045872455808388257885311362341692880514608880126215953384495950986024430203118792101686292760484269637374946554886579301381782778547803637471349619900538465658483853105916060992717498007261861477627784195503149340880118922043885189988323934678173878858727870511695479882954691738142392943202132860604243379514630828151489765864024968087417217146671590998093022446813682722066368432682059998343259238712253862088391398549075689866375580303583655885320465177518026660241008940991272244436932440186129976347621968409131603106187255333525395197970160242377024579344563856246440064295478964064718226590773048522491504865506657299248093569374177841990493553988524589010480835772846378294951764326607643750805681890251959707088974703708926185640815784230564472744560124996300303265042907621467664463726470235396214010298158123426845571469110586826663626943568215881656260567376830455948890662579407306186013057400917517504659025114869255736707929765062189354105506466287263650863155125833131023954520179142570300837833757656677381366062537990252055933223071195233774268230875208964986995832852550419785447405155132103014881101408361219571678851651903814426805598181249726688899892209416608006066671303266903460461376300603201910612101880801031382038283711614732026543829670263941520579570532379895270380928287707428147770767229345559275209963899276713848282344790475259329793990016721999788332945221793082432022849500288726732662639007001919511883602975244661500782315826794081383565544791520309524493449577901272439182023009993449895104873375178176363374777621195828376336146635807815956403346491423156045444224171831616303174273922498308824941937873714651548975403287194463723219083792963063635934214238980299619781678122355582910753517524336578021311815150319984542558148240850287573277800154128626282183075704721922244954618784577245618494468495790187185845746584066786418257683534403934906468550039816873152229621499251071101959165611211149311719476305449716882573666896518111220817136163047955027773618560855405911156440441800195668042032264698872942347950007503910251608386971724325213667933873883304524438048405755867743767279494905288622655556069169326040893935990419245101231341147280879783191145969522295464029221898450010226741585766571713496970473715852621355240968972155102857848924128400775299431223590022039608128703254023535158187767088268892600584493389384076894260083309526026152479325795297173531832106331698803856975430944373315436109673709576207400563158769773133558744956037883252216059906307002217021314975630260137200363946138613401475837083412119385204600990264408839335183419908853283470146481699035645076559310557076817230214442339621039233956208227620786534874546097720470711346010041802720288607466056538021343080865729571214028786609490264521533454015314414533144976060579708474144974060260931333123997367133066640438589248354507010786081043415464648179223886962689837157097815949897236958924713601858060191454679878187697981314528428769984197048192253920313076774224813649527563671552477107849792327238974746258477096680505179357573140595072092457286158079188171438575810340832067978102066697641814381888586400903067893288457434587247651037726504694597078352012227628537776255763025295548131334605786461621514085879515876747349766673759022079997777707834385219712533418356914105129772758548578494298289839604374931020062542385635046702873339313142001209549382966398470764311737132925370684508419751654488701323907629680602207498911110282220789477567903932095304895590385017351527537525256344966143158435226346709980617116756874826383530991075665471877716918571954013798654379972728644502793495111677337805386478699797187151053504182705145291473072931129566603351728929361343573692120400716109572264200806674603287082756026720401008192829693730205835273366082771484784607471384841038622745253114065182571418103239158029837103284003354417496050038589745755426955924274014742021626391076310436470153605920933687463577084468463139729150035113645194743103062327879025599094895276147042766885294179778168491360287285399575341078633558618637369327352937286891919540835344618796022967434985228367286368881035872399079744740266755514058633239479061135052408570350944880461694380871817180570844080300406460632494524718635462627395010204634146760260602145705893368931412634913472944922341475180154783364024547555751175304159113855366374872021220608492144732801450263362286449712954024990866484244332877720395957242314538362915155951069958594030053297618046898368392334144994194892584079227840389911080040943420337853759244314855685271567322299509072125147117544634278335989408987315763415212063546201172491110024388211999230239452347644367537544892973137721099511983100005471961159431935178103057229788835716555508236491254016753877634755082039073360373234457718905757965847821313493551042502706237944455153966385681668081059846742952155713875497396574955282318002999892955805891491898170489011702727951189125226722844187286838170952594919108909162966052234042005477693447446590208206651045824984477578431649374889415975335160034568920893260119974749421845509622659511270126211241540732245108871988416268559695921877617130555869413294694828623435968497298857091805687678098747091006140030977534141672498735112496017116297153659853597822841753547969657024480810548665188077107911346909294910059168929533168300955138079977384767883256834726661525783318659005247714328113207923026956024915491456328145538064730013552445027160818738348404188101100766410407929910517710367532814840732995756822154070936743491843284291638677197171035253671142078690810018749082621271423390488496574538648047495587813784277937542527277577024892375875440249480705994966212298103976690826891596177477514362267313357965475596334857066115942623339020733089807788926659209103940416339003808716031528813549603911614587048957406779737875739863487321460119570933284886024626170530439059761132302810938600817623471982276425970824519446558844336277668533774735871893212518724669731775879092576056196142570039194778767735224399841173283277121942725670135053299997660013724367580649506374266352521498269113711938060119108652474503416748623922534978250826710585721599021920703563240187378005362397228500938915157120529917816387949330542622865210759229722542312284941182009655670422371779831150315693587190540119074348278831736566790612340732514344105624817789897283660083836425718566796575677814412223676483574989346643721374654832704310397517667332367381183368148037386567857462026662864464756523113997470243574552302090939880805821735023536141557857051074673352133975487727942425252409410770496718157758528375645130885333369089130665650502198427974369708592344754973709664505733462484122141247056616219455431030543323840411677270589174515745136547383560842913704948179420657055349679007076270024246659920157201971216368794243601607353584209533473982989841679898352240407080288127067245751519310626261300249158042939240721706917523540735670339248236051859750873455006291914229199427547005818915911945821179920451313219767522492388013311956653393232787861158260590720768927407721668736645371560171961598005346319246281464524967101120434315038669746259997606964668726932423210738745921505417536960216475647557702682685170945189183038806987561976841166598517931643844050838940007129851660222946204256182246727977195450566494736029117758778076434253349713390065946656654798485570803336365931489626071058627142310089929079516503959361879831435049936754047813439890573307518406554307320944146814504466949765442662201418629340241770326349335252469068435281301637922308566711519617593291982624254381207052399624267011563166279232906254835390434207594285040794154342112552000949730936915330278136558272430824326607955799846607790331414091905129279892414899544287725950076142110885604362695609318486398363062553951219376601947409304137341378130103614376034116563206703953139576914601343309874977694737954698634939761791427314193814309955450359001058031906958671527284018251902386069536307075262607634048140558664439493017476440513244104517628749241370535720279267112891833948393306072168502412694011516315883937479429815773346802867004703257468626181940840967513151571077274978027790039431662422108590769152531371488988219684191035561861390087913876879025993326769524348143604550544533831573249799862736185716217855024915746173268619759245068808806320188882193506920541931498186854135458428573323368475403825214741830692964539576211003519541079427287247566540919585577157986640933789829562209136176485172457437371167312569343626557039237709586300467994583267225454282230478599625715667721260338568858100686536619041700363737494897301241094193905925214965774710126044099843338981718612831840883349479625395377136705526893087600079960241779381815032253517126581659749809050440803204224230303900412534225561699377769500603387856292189868722384953162510255876944821799520887922769019386797540930387363060662412348962070986915349895207878466993926355155899840961193344980989223410551098395041854628236526734907507426994001727242196135929305378500913548425572744057279876145039775939541051861326756363222858980247632393460838413776777091493322324661593184427634624943112413223758676638486550397062561600376611894660623055768176903810925986935487172753687749148502038658811820926946160935502994252922664782937961680990579158739572563080995659218814516417259517080938015546903167965363188689637099822439877695207027074867781451898535270791742164185927050880002970927242587064591857208003875954546485769734570942420311637006688619113900858997836853277474588797199449147762861886134275209786175441120437651522927029262226943634308094263451011095251291087960563528293034432312219687939837409392892010869466271559468548958459506927405258251025876929520765987761776373024545050398644903836824780593105412307017001402159422028601001057029369690907874152445504474360836978487553405421857968601278509273379941644099647198590490970160292446124263548650143262567867118072275580299719688830496505052421012548190497352574915167381921283168806113090036150287256982331301189650691301633254014364808626650569994864866654919385280522058816412125775047570854657808489603632585778801351232680367153758231632169752138987308952268040556213693359734730520183161978633655356461385981724295892478462910533940916157877009899898877108258468168557084543755978012799922644273863762760063402533258179120443264290278486581229946929861246604635479527091356356363432571195274705692636567352104260445784319921068931643072463699120135376395668209535183761205558685241172385011884510081750712532876010677571558901398376039273137247999009361149072956606076861959871275481958402766096452644401102873084750622589491350159045061593866811976309319829757191385996554633679938949037277819218210355981772367706119186072655040874121227414918248656693252251311455227278852018647653085873257023996491390004921776316479192613797448238089143355157526649325714123420678408839505963231915132440794016159777849628547225054657964583287482099549917606457016511872659827608166570645222039269791920917488121134806658552604968470894707910512725645557089380528185196761179447496979851217245033419668268989138660106708744243982341055501644569845389584548294008451940429724555250225423356851146499387355669743489582489330945086904735542225568075759208654392270473162503215107735709894535988992979496469970920078463990507195953916207258426449382119436884003635271604916598726441324150560915256257075311340183299992667092406974772243113495640392698440449634443688255680435400462259466384741962863159056224138123020089403267936674949353210632742095228188304512709679606668453067446750699139909169917361787469131125183722680181119893222736070749322001851148309512348238071076688076361415791214710686467960955632165315918083667577244485139255915581426269956392963026370557531837291655727757924285710539043061835840395868157732254949768300642767974630563472379339322203019813477975480979457409123461332540067293102743348916903092540461401295011466588252190221398356032620046874726986654798572253181400585571941186931773413742203346272961989445599088828633775004325352842568104045628115099995630750053984048703443836538616788257715697608305143994552837600656109932468443628629306149789048036031901551819349080309233631522974752133217937719026922468967039761025093338386819029153272211484856375281519442847324621875636641706802827001517452735341454673604697972053560173294727372178981591342992640950875569332635251206955748267916855269238264656260337510348867726952487984796092170293126596216193057941052792607463546220967304647148129426703064280687170034774588497979285600973000194117654619985776447198165357581317055347748660582929441450435343905998052090148858735012325925453545031260152659106074577968647311896241679584131688497468205174214153062860534194211457328422086724131212584692818047343189457180945209734722011383942588967278305993055345998721254434277766870290998635682942315173593787744693353479100269136268019684157394834912250922865285489354102329324138782990171550409990266922645045189122933050275580184969117147333306927368590426589097195535662350242494888323596952879264654178074949341174100876104511679188622148936535197158749876879215673313755770094519171208886452693016404984472645772383351261205873542888824568551520052763486095392847049820356131582056478073422726714986027850562077976464492955721296965512039644718878739789388982802950824360995693528723402098188345114868086746131821091698815642443815550177186580757711409255433462397458118143663595113833908179390027129264411898726341373552450689623093244426311490669733586025244982220773349155346983466402855737600647697593940092539055935676063081776799032665491862499679536747693605154275431881234151677676918166685104737770923615104507236509322418204924703261870198610543743417164225243238329526745945161893344812949279709023663210338134243896893244774933958604731172110971983328507103689699453537846644430562627332781388508014311898975578545404583587526581488511353472212164657514295309066095531460488921834170959718173779279121255907927299413331884747149658759839509711196264847179688694372065279385521417953892519452987750632009648553020330658225951992201756719972661543312749368133361196245777980296113466535920030732484126201753377942104320789330740092143276519383897782461039384311449028068171572690984115781792258257095355668741250272073317796089863354639176636378389123697494037642818212851775067062078906308180591158048903326739031103736031160274881804806762820612614260881167561773827756897392095239825838510129792996569966263224048708948520172939531846994772869471947433014052248629610564746252354219123600766447382235937709257065647698855047460037843737819981090837993450462628569955199154203983204254000764039428519083082807205423900045832636211973344458438533290717806158658056053539325365934264016627721865581376433444070053261751502841410785925525491045968240779214613834840705219391749687360089230391132299887359906392434620883576751028814317356007967327888122757051806645201771428423009672512729194825757325154363297869502540207132790194975617655261009145988300157822298485093367593434763934324233410704222112376477675217860081454952990371115245560569647494825481015240101979679790632683518762101781018881630729676110473452700005507494175866408814889579602797337822376431842640154571942988675621089308250869504632913330810891723601306872751264662319102604327142743412964058058764625428253776071496451520453516779984371800774324202369653122314929413983704841904371094948286980711047113361436694371656292281306224273653869040403030008228564961519775661546686471723362360186868691896724498980616613138360396272922338124641218594815063863855486367958187393851423317954318222595150389873779328033015670699492681082509484585904038986422894371890572716708893173806745706518533134178435484498737410576860715164213630801193732619537136290606121243752647944603106126897701800103295826240809379058832583506815008512480324617563937574151446317966466711566954336364063488156918096033276366586182697160971465637163862466829497612726158416767450953659605257347220769817083292761858523883249027279506664198078077375310975012969544098263114673312107289226079414794984646178477919801149228276913819406078570149861214027883782530813530842880239687104019608703902084971963648525476432252557165363140908198527955820442667548823216053086889418292611890389836275252039999633929366899433331816364014180943756085329346958402983823663338806475623348787235469652419298487451869078841181039954854623127688966045923694342232949620213073446003902153314463813067358655333947982786692296769174843552192664779945643505570134107911141302254848261412728419667147225205538630149445308411872570894726239533198395265429600219049192013427096337119351547765612376005805054302921872771440397609488432803335214672674012535952650818216525081461600838989738528414540845089110590911938015614762432918914026407595599276880487085181088809349112527435092201734351597350750290460143730614820865672181015334912405797844740518351287943042937043937749520579132762027707575825721124816415562744539796131908339398092835539576605938004281721175689719518590811853289342802429912223796919511648935543769732496505484654876176144668233224220912845080345970001050685279553661198774849591001651926902361114558831472183376145235467813387401275263508130973649539182573541555849768451475122491201401716521476353694041585222806302829946562224491130332682821093090437456695644904613612464213432890741550590358097259539743991542592197650291840925883699509439946077480394465642452815686545361944344891160495293809782011710603429149507736135638668209971029070764384317065916974338391647123401803197984060460136786895552071362668245993912391062561477065694677510366150232813562027825455100845054586046254483324690366238837625145343311693715623746884394550086175153567500722937501201622651990402984122175247586779575316385740452045760749747042178856111705845013364102079803159162517470157674421818397135663272845521024218739924251332147448224133592673215209089326104708867997226337150369014283889471702068462451618130005111500815583747669061375574457942027328335889047113232882167189969148876003354696338189143828878064252254215259631612179830501722185512699989869045958145949334182263107971228591648456467261993326862892052771341411894529269836938325761593653310794029238114534972802156175877066712783712325856744266492056407660592701109445349835869746266931422282887945124222136998192402812487457836764478736850215064335120772457192868703549892925605870795721445277166944889901826933989010712770073345787346504887014355435201743658784533414504847513481777385195726234841001376741359984395505181331931180556750316531964364416843827670741675359667779718424197432317386003221971481020409782227625141503567833853937137291040402522827996130374295819339293409069573280096680912113646867042885515778941996333811771677504760392831693648356399610959176192708178394121498447785080878971293553824172884013984703941266919923990321425772049070269571197486449292468696985431389432216586918121475711454418329528787420632550175781808700338765220525299301795769274832703057871297506810057454292558282628031652277474467695451444595591240873541946841121188849858615291529324944609428545891202913019605894442477285763786155228383881712082342387468463695096673334646935563247994407834974589084240239038115729022618459287441564624021122506745746876491606017660794199537370484435405470500642293946153739243234301693684167436672731080743977260310593698315641563539353158885247745450279020672438024763638932661081879540629684602688353722685216221913944032505390963546281405904281166591118796425304500150725215365033786069749844811825631156734697278416098368112964067906448083073721327648573173985562035931291428358847027298825788258125280673193914672877734543104033942032247355045318544350059094341836728167219307353153783640557816828863241162972414313676998630553358559566627963987276937807926162826945165655137824682398600193947353014904872782471331534621534605598480214691917573816082558871907760527289198004059912361600881562735203006384844309606327347481500429545760847089714370066525420593184232589806638333270021215565463260918290015460631488135838207098582553693920107401911183126447203108604133590631233034176025548313566069199315265696214391629368713059419386490080952096075270209158492803332719420310970899714254841685566693636944080601728136568552630283840224475122305723007721923384408071311907805886179544319294967830591525173625337791203290896338863468287980668017884717011479202684064320437676741807221841545380762734240369657342152914897827702071868023865345222697352473816855147027991420453764340202000979654682773302096640449401477957821798401033661633399778508569678558476562838586027790894432268182439369857705572109959233476884160393482561254991109784050756980343263458202999885686521747688009730448521904052827742237545842670612180261490416624868627672299731865057042527151697635362820807573896516164631334705030342768317949326813210931008717746935015301716490851991269714999909617436420395410939613669657603952005864261511872399375573573927282064129672629200231651203572779579556815534150980896025735719600661138405942734214754028746607726827212448980601249754735779221154329185229788665874686926082938638259078483598611377840228502423674830858967163957860586686532862407570000763895765526798123486726921074734498227126473747320535802228759609132193808542027425080820755278416064051156841455505655007767678217657536798554859573549665336249184211643796651655117355195282545162544457792503837233734424768569466791289319239901357361828901465830751651456612053565165130939144151117604946790485428067095902811688778501708819912058359140681033486844790916258668158827088342837323472895105404335895579396630991355124518170349831581933957918613163515770114417475965323943029675883492612888234873304833409804931466957626604731928683549585148984511273244583916352581860291622450716523936860537764208319222315537170330806648957485610442266185104579012793532706637904973149311735989010728053878309112492174136811498998560446677801330410883237472475022964961865868109227670248218301440524021571409454811253957495001383627245881209491780986144184550732049068038252435290656480896046753389537308712787773001751507768307658695519831580408969540250327195138285467562876909306915081648195369059903270188259885495930127937522461500054245061777789326019032695156222416094252462702589696190573074281230294100116268556362942106141766024296554568150709961414586435996312718266364078587727252769210404164642826479207173310489787230818601003851809056019722847183758030040719330741693893721298704693592189368096376694809341685795984586829937671479419856426164251878784128919692049432638771778203638503862626710231140464911655284453579076675720262267009186970880574177451168317995279996291054155549143135607412095519647443370387221905872950736027549667021314983101707321805729140086167899999298002880925154055467717676216361723508934601426475496835874570776398586249286351979915407767343755886591431670466992535228832417830208794217504181251040692656410346805194666788613807957403831456548195425205737791791229048702602903100117980321955865753804763989090894297896011516685960188153916580925553005313821352440466229761936989841177776018812260211010084254039662159588271027974792628860114915242347882465328293883496262391158509776856791774577368445866691612208576114349942769986469590501250621145785679154619005208061478054049225876306475291515069008827872409092454968686986275649016280037850648191674975093994796679005230754153176549892745637693982767021456479717912709238222582327358486697044615298825651096989489023799573240440909000120810858148305843391084968657560048744880523592335741709371883313383238631947485530586556367601520030296450424033439136754392064156036630939997286412215182463376164200149726168351509723609212740831647842284896828924710728719526049878597051455862099675264571357806591472162984427217477371534445366039040529621353400261901217063737057014493483729743241316444782554787495038803219525277290109207892039503508582021701021705344784415081834226074297084737031054225990396558088312905857708424335638306608843412535691306315388950511539879547194817356158028472336096841090303764327468251641697376783960079237855997806949000558121875832524872213689045078887796753883361768462973156096780598634317233913966644443203638959409586705269381001510393543259682329535619922225828495580296864370893271377229393135690276018308717438757119873238099050257710947042740947351603716055828568016726129581317454194313225876547882597890633776436384898975505817882774113711445803466083222029693865047221221447942059891070167394352360672241261779065697005111838993606240791201384564231462146030479068690638350096413554399503859885844878225863667852859757228479691002751800925761729494949701592516775329444661257575112304142994350630203202795053176153284542526695539800596268062786709974491990116395513432461457399282043627422742805820341271553240340944992292596500151598970944657474142874916547594584733101727898057367793946417020224610556536675271459391550529140949292369548952332556405913834282099012735840161278786918605181569626424211465624976435131984997514386518291740112999628767298135641112437928282107730142139979716412246279448304954241445218062491994352239466571840589236893450578565704702227085025455998743723914789165775087242383940575949561925594067399068071679695293824589448548094004124507821037603384228343707493113315316349038109906741296605641572723371209330378296848144801598258916921479146401758362705764117114589735399782235015955943069547923609465519498688488807885276802237915472584298145681290840414329527030225587072279720875613009624692651975631027233592992631329261642253352301508322872658013736282137231124069027180853402116634663440496295642409868378868289113372750409006441450379528286308748379219877800701325959730834988366388956684756644448918709387981699078881518147074137113298542381790791423096746379625297430626436004786970884241053748315771438955369199874031155620037825429802320635851237645282739903152983875766909390277159736090098351291518264916526373447585165499906129585376442945268868777415450727846209788532941578849463811658961988028301393677517007384236888325130171680432208192783928608491921631820867218676193192635350314535061417003775822567466856774600600445977338709036972865257252923955412612192935939672841831867540866575392556938122969888736212242022379076336845191530533925045762444655630267756533150967915926350425530673797374775525349381513158734895966169514669587274446794309997387594023175322119286559768601187971922216028654471864219434030076245811092623253296125462553175345426233872151078696436964027512460219636306599309207579486040247511857346363777706244586088175454385949297200444383373083603886068640551828842360905040888999315867913009046070747156811573795487558747919101128476639272176126563305182846269130435493336414070113795980158972150205542764708297472236208592728374834666144838283708751395379027704340366464549714705023606813777276946033477788755958708989312320463644742239962052475359979133303519476310982259540992781725035824994685248688588023281086705476084866442537319172476289769468940237902867502310014362411599940770882569340865954955538862363047362274643362195446709662292010387594224902506236494755849485462494498440484475238105259978636819984056251144708479116415442341110434701107916548363759174317911508573698251971467321670444669797963509154737417119397060438474820634329725832911169916081125516675533874646020808318159571129364594094249632540012127701275000668190234029758607694028793669458307337214167624772405285274808798655727771153026695307228205158204125001793917819231682178228919613776419138387878314180015233583267069739477215896457928855344172863999845258722450164250666628828299097336032108783367940773708821438503665419297901252264385110050963578186073162976867713681759932391571965788041850632833579068403049158917230400082695144431668489139676394138967718912138290024497378578558337839017821604775100562811876155528008404341711819984171402119326775404615738234405234729181403519614193104551826274854331157549620397161844362367421473322478042437756879011996446982020853616742772150164328304225502028336337178630964910651712803949994295923890186363958638708528746700451379260112809758069502256151596712189885332108749003437283246549154292723927739098113588870360880289274617696189342526502459360241657997734411281796523147194011926875971747491056459149716155101378525437189910901238526105815769333819095066024282789465250499450622666924430663167036464126949495249411966708180421099999405335785989197444401236171724495520422771559696494136395470926323969844507204871835746066648509401998364233190795668046918442628342876936013331245442946701368314462604274322522650601470557203467451411357568387611018510042475182311371315743661316211937488524171104754812166291422916522376104468977757913185239129656782770869041414501608357541914569010162896340162556304736815815312095448264762649803298410156021287901705646417378582120911587860788118795285899292847093339144463404156353904684172592749017462551169347193054732638357260202887025188442665370236639113222442940474475945974376420916039665929865220490953218016379503811571259209380474238489052154774938455920330159673639193839817947654094264408624727632851991454988872761139198853182958662370898792157511372183390929414538916444459119552277818829658189449696492042328681647976155645989597734660066356224462036521928709369288282436978077624130326832007647197508059296702658754498918820311948226575615078915627083284174679359688335030149127993627468521681427705573351677501114813672896716196457296313117159712051267838189945168690362554823926206450293605685156602036273952895334011938631946737365477039922850210030678439657887121498901693236430365536879531874746109815520301012159783092028962692454049955225883790014733514982718775497442441881118969036295071423509849257232505273385457003165379868692055473298425909975236101889941545959351898885300263761964177126852528797405931601604586524169068202933040443452990935628170632730092467987973749975549034134008827771134184404495854763273682885807781311826229873252262214010914129941592819641369505150358778838433032882468909853836611326452304165866592041440536441575661784280083746709182492527377712989193833148782698961862882884652025635574494547573117877338682193277662143644609328203299387373707247153065490763197504243187796367923082237183857775765566029696306191433184946742249584818891438495236003187905060979328899502786002704845448066668111732054991471430211800196983360693925161046220165312991819326648282039412224098185545895736204315835187416770183003983009004891011864861955494564106864367271380797153534145354049176210215578364943957538620995095031788740597231399344552427047477104063159371469717718112197266313335514912072801675980435393874991159050175988470138324845559032136191539265865388330977638991061907310619919941442906338934508890081941732407492856037707632368617101457505135267183606160158170645605990110424247739443775055251328661701712031851015323170503392533101436328342958728017400763548214381664246246638706714892507029119092159837551518714686397866078405315376573363281588075679231421216811710329583970038853980739382929506447246057300146931300226192464717625814948874006044876687722676516065225470029030232296718525019090393178248752458243942134193850450095592139452455986988654563228739107241636824531915907003685569447321806540533305490999558295885329700151182954682470969101395885424155127190031515414305635233772853402421711391051651022244724164150590412272059537034649730180006621060684355636957199916872990645018194373115749369749014757607836565963875707320225230558900808929813461378797568569248014913581380689225049744742534353244772870423497907435586197332865731643420834030341610552093813874912947867929733682104513397162504584323605048274662363124908982022676078434091651140585888543114658075153343632640226609986231484788898625845214239131055853070298108274041820025047133400875136896365501607118549678420329890127271129358522565807080215402962900315597877705201273973973279064574315141425155742286592400539336989709722894421896601524729740322225194319429862534610776210854249967227686408882717804862221926559105136298865403012398641014522471516213270350892793401298368681960046809615604342565063637456704776266513589497691415569121357768203944085257340573606732589478525647886684982891892042695629133998348903115929667791217355288609246569663641285735231678040969982208089912268585026821863142967065167705376120221116438798319937061466549606607102799561794682523882476648610550725309277638174412790888433718851989238236390614274552940316590209529988347615879911279944487614890254307867550961421408083756672609323540073673621675428027338903838053314362920975256888299909890740591042761899277416186589176418863776346011037831029620025908464919699594514332751906848438093602182241275953817409457052703402903038822049800052195726820780520216547516434785802336353045041725917472110891347547241756066914648928090534202721863652487109432203418704079026953764531995720750840696602857728324628707964567730278026833351255746328865301643670266730550418478084862195865553284930887587709293995775676012955876349276017942422811178017980390222500537750491139137064154896743352165489410783381503099422436714318056116826012365319407761160033199944368937732977391816097109348992609092189176098773766632041630563862121067641225033053083235255123164830136837905907340848158371862296429573795722585537109044932458311539220004334555615038976624620888356029066002468464404699725480727003174850603876977717902018062473636814714453547370506230859878972307111591065262834902883257612452373688043023567940402474684929264844783259372087392423632471955822972740848760652697714044424677049751635406171445096703659835953038384124315422490702845255101625717727950961733967543356735052078580905770910930671990161940384125904814826075891427487832435994774496315201848105466640602944496580841225535254004640730613448405994905789983986215559485503829419548832703483898887582851487708125998639969695176764985003460093871310008431974156023644569013862513318127317957095287906292785883066319616305078027100477361276340860089475472412698133091542205512576182729862436923683484646998468255510730414319259213488331387489214319947960564884162452913107235184729360699533416718523772840126115404563284134656235213248657492416339611054612946156612756977371702145975553964586678621512716076442569953801086729993543617562263288270072298573873786720393740890125087038932998856772059443020720163876389204600244436416435840127004885336187811778542625768504725507496379784451092048224288786015312367307531266051529578250136167838038443312483392929536155422305876683786602923306010391167153824563598210996697283178308313629449787079945858490119547741485959216973406445833332632823674474259941153375019923108253985110421171016058407099244537580975028945373854026145164861327614744378286285630990046210390112181522865500730323361728053247667622015703542813961496637168643016925529516731037517505522059982991007597351123870066755863020075137948060148411169554768460542605747490290486263389766421073970041349382084831980633916056822976687256885376346748829793202645783038905563548290189463570057923235522465623909432581379561104996676733474760679359861109031597308174453898840197472835440132059948472888895741621285736736273015240921782237744792171326433270553522055969485834870673659779097612818159044898314591969710876725086618840439436448388840981211798027335609920396272199394506075248798858275936301286717625563588615927393058155908648931532383755686879893629682622866332209730917064330899736421459318429960466446206479746781601090989719879192539156493304393244018776941433128505408985925206186908854562703187614068058087471598761901675776889463650343373735970593419414703610702604734076501082984275606841786640781738917840331765906834794001514412684262626373260511323867020831452686485340178821493953776043168382261572558789701368231205980331615461980209918376465637440825405979761285165581270893539920240392975643597275136289700899787445289975254284616498856153167171668350624857201778150504965756038714752049962728998045876281790643134071285555423881547730392086031705815396080257232468118259440458092661553345212057095245956390231670924675432555217153902848499139814386136539241737644558468098082117162914544861932559023310331299554040710797369506425937746309725474557042334580179879678831231499373513229782846235935391671303866751975024930567922153042217249644577006567148381227136263830016556022985278708741406959726345251988223744513837531051669321159225144731477213969292389035792159379514903025871546188674874431533724134476978836295208052776836619035040478504935875812900942521660780522552860347996568273456341567467842577976308037382127047958427939395729531142913123180379572748014800350995412276480561431235097565918013190851117337549248710509122003980442555884571467998668148301580078536499839713877616816490261239324937351248387853581175853868481564526927118613149062672399341515797927806689272456924105685841028010534985775723014929478299243471235156735420653375150657499568200863789881234820545365360398568569322676490615912106818777771461369860839093833512598307673526578576275788597780115174425577789123214363127182207770994297640668664204262715826094234060490812369330670118296058964047550301961213508060432514625097812818326027334569270815599975993034150905929546554236081640592186915598548371530942550683608348038871326308864277457861708151214735141303692783329114927477153827523283074568250326539730095796699648065647894465319673698888477710042446662697225418139664837304132260224826934004767481708961338070871741433070722433112173568025026264455389371726712410422761176235043638668746091584404623708959766716542423770054146131916954428095452254092879670422942345959991541079632553542288267617735915073548840541932636465518216709650148110314629874278799642102636307854231571428860571740021356392806924974964168955862851823564002665124448277749393799743066726581419497525719232203918843191856307774438989228636489424253800678454195104622822209030588802151801821893560043139527404190694064816105457898265448150650729332554038470088884486241748853610469293916586234675548880981552588362350452445485277499445165929781573387317097842298491117000610606882877416146102705906742559807314767356471706330506358722596830078317273138887860882146891286855331279803484450597939383947972158117416509617773216216052036866043245580799609446576267563567741525652043510226173274071995333072594569273963367910422963373135222488543054174344383065702065308605265615684164682774031407797342982278094771920868650102658497600724899194620067583068064124838122016689909546551139405408020334793682026482360167475404996325614282120375798584660585997415435858431595981186165160963538978115642535448562582394583863890329943728681231659811729605555246919445675596822797458897374196295113118980490298492959602246495721764993224216733207692511083658515224048741586375436747387416604640125032487901352606792165802551830336704640570751329556124465108929286168223317171709414291636772934332171457938106284945182841231903868323479332613266410786539475135416965436783952203071841414313039421067293388674026420593945336714721364870900758768259623871791526472542452104098674910071957913826980167654310719000238171835878056490978377741372229706644987127905030660003708835139812065579862757606575352205556993231964068451898558888830880009051139305011043855362635472193029494157533492217401689876170212932488544522488024401154908667704576090846139090348683956773662500332427748610860543097936261370851244125013398172225475625695379976036700713591577705472145899018028948239704232625392103201243366335681626057500407986657791067338355024915457673089476936893249893252717585095303364673306334821710120193903136527112872155368193654084059826039236087700816552273637098456351265878643078776234939062339361077834104427515192989951422017137962194263437396562719143282326243209626210849859005054007510870627678791492520705852922334605963083722559080075167185846324957817771724687247348445700260413344902203695160621654152501291788784735196034036924908554810207633181687142661527782794617239981795357806474020348773949705185348365632727761779842097766082600714789856275085063361756888023901222964869381806924457138816600219804201508031127473827294743392885589643038489318453451083435175401080687877770754661824611274923574049284954914548735880323888966701569153493830239352750220100431546790871944063227855177916527198042913311614460032505386264574301519114733128323323334843695647890008457462339237913086146220624058033220235441875389497435312592923208310979627437400598417856692328052382768494875229769585476064004641488866970538442593030519301973722152181682928531716166021856900855141745419809479877944240833756698398651930756527245102907381050347447533093214684939215920698012568215127467536288977179483701072106830916987567085013894580498003022740200583853077972215613848923691982984907886195529464149626910918352018145558908774854212996340969007394104787152529295625958894170548307808712381940033762538311128247825961730710700198966971143602147311652896544527039258699719556335784324185420562853512824856472984765924818779699266736683475746048416994767522626237622251642491785048410255945195239731360957464427075658226367555392245098690107924811268773070892042153442398226862857829324956249194555774895050098678171362790204894433087246154300473543426387893335000324373544074176248692520135202628278091973771880928391415117366861365139723231841542755559583816235555809249918623801042914331226602064088927836581239204287849618351427493665872112693261748482374027787195290172230718749569363316657080903391955262508368696457926641240917532998774396177127099741600688326773142062181668728033047379259565425744770064292865689799230511666375565818324966470866822510295110289108864305405438642418689853712120729559618050601657425696629100161206869899936423442994367524408771338282476824711388766221424337559881439700879873090731489830224995142670062406833183548434341595716239716034313913759978586192712200901400050635662658061077192380684130877098426348247745521798055177069779193779377494483764415847801877456479903714629506061169214978956972729085076005316288036788544863672934172105207743659946910656708976759767042802983042139160378811487546393346509621345395694232088478269381510202378064687878729032273623136166578786368810177980506277405030945306931212823750992885062634751878109344951481187160069633214343067131301156992986358150041320784273298160885916853785912838364313452675818844232842109254462225599015221666295887145504525145272209587148215603886919597232644011806053493199467559048570526250671374317446606704226828287857183488268222209107216556819604328429560352434344484449730627038707710688093592548153190312178739964056459425525920427297244646944130851228587066123754620886283931700935171193799917858650572193789149235819450673002413548224055767221450344193935151146978918400926342727688437434436473887920302754495311578051226790590159751397499114598229054231529947927861965524759607510184175348612933554419343852137554799827798296081197356545539778175622114464585729476676083094685997951356493572830414123554570506368847542673977743880932199434299031628480334982415640471324454995160653181848646562889864728404283928126756410129794703272012001462688001887721638761985812356359374838112257562366623868729390212329498364886746059094411594337428062691341555330940894441793793433055429143525337773384084769215358377210467962659650611288466271614522456757888863260907921140848198890244840266613694620255406567598344921369635526994521870102482943402261225245479527104146693243851048341867601152220203474188980934182273567573097930264554639397631060749323095739457869571011962806242584142733689161448900006022904202687868058301729188739315006143963696834185139302433785341032559632649988557442105482189460472718146395930491094450824033593891328042555681932663842191586874911227724671637135248228530562727681713675480855657247073505477807716706843054240374145447966047721563530629212290749036712848403488288206850934309745881883673932632396340692690244287711943710480697264008401702110431802596819169241802832355826816117847169424220652503942072294247068067615420151656399618146137754710146358386254232858439926370127547605994941582813718490419185670372212897015039805255662488013485391931710119649723753272551264228829589874808554055605070383515526505237592799869382574487909104695094637264675201471739704933999624717363690426330726833123141187223140593453874872059814762259443903533887622821413471608031412899227010687618885991030861612792159538263921386948867680272490175965098492658676211530419791702119007631671589562214572461270132903219853386381845927357844759726782656877608567053787998586021393072573030256614760067534242173307002818064479966562533559427455743446127204558557221801527688379681916476539477310124156605772340240266258688858638758337302074872689731028737774844834280151744885605305254892810741018281615803470864510512555420114464258331267936773302637388628135574376042868277118202718421337197633591601721971042369233543617653353830827534679809857329521114462590538456226442269151120447052723908255821477168953656692759431657100896175910702083756895838115694642167696891706525876582478222772354670711018356014364147480022140726506683121003824829908358575507307359251466118289191595172327012270714831087021319011800365806565879585436162850953073407549138611874774704873717428156809094231906824842891539815753808149236622898049931131341822855165293823150929605563909851096950805607452415161505496462316284467290957762335051666767229257545348541504365097791410891665874857087123540793329160468260499486578631738615471120981420549948267914836942382116947538117280214449073193210656078058751957012419404572000067135085454620586950580542764521879313686522663610434614771469030964567210777107506080167231726398682470494241290658303986979546352395170945476368073079687522169773186389869035178223913203222123534792445129721829922417858395976158746749880112504722828928041568702428357687037707026128294543181135050899530508891034420418414132628744769505497618386999683106237218272912727327083568861229119741585657844547393443805580743888663693942864185862910366350307564308539415188180634358442963608674031612366727910871594525975170503177427406555084194781538673425135969009947421096782536817062811557951022442934264857154487182481731062186465447992417230404579995658387268074822573738518281294278725776375399354574180659087293247276320003164580785965306694834209592264324077008867687458987243591408415862412052178194638495111799354673331785424714995525726219530998692819908495112791579361725484162411122785988530289891454824695745376221107244719989152782216846410303368910375484426210481468735335323354366953322965307240984053636896375668101511469674755190441558524864334641150083637062964746898177763028739876560319204098433223159622090992687642762713289364949508452584442346944034445197368230041991390747276815954256931072857534160052288816631780626904387969522551221943524895608585416009149921841548649655722286457996848765487693826195564722925131455094900316906603171057275735588510596747740657346488077208415997623833691940634473317904790573242992619024315991386730770426262106823447291012538601884328224084688674302045408476231130569968940362278553668539805407471178107903652216308680195909659437580873602971580389551147102308159574344271733790212864140481265012416072728365014852673480695426570053008553146113971472492520304565221116894236633612372602772826106852577325254740439626536811424592376461289786719402960080712060213904854119984336963148335581041772431228083851566565997874486723431176280896297252067914536260247979034489303147621873807260224593285344460139281193170348163527816515343183327681361441958200306120512803556785398650020137190614947608575432464167415291477802329206834049779826860157017524375551712139970625020989764285421078490396162762582166818644469839941150833380484061417380296307635864518588755281354773755214588966349613880646578321911690822652349474182027455995630520463536976053225241451965553954809957724628129188698391132054166863664963059769850383757767020406181876485032961178354341404215308558557001109330212060227404644126271364080416482159884769450323217150315227916433323257477738880087473422885388826841017641482071233364917714578954911848285413092799652105558122883609004945099434360045372525942512585417495404486819363917249458243321450654774819899859186863660844210291520933834920183670976712928711922816010233734442073296284615873487374112441735329863824867689449729536959208586392707566198207384621298259290564253832255963288308768563599963026139097583570851436174610145446192289632689418309793893227349840580789273934545408883263364060390601874873799166640714780834793048804953560042005299901006475483520209283890379547145377495668075626965556706850076270331248189881030729782220020445377595358946692378841466251641003880101527119297371684252067977446973663526769104287091304281258837162704709027225783495874390305883302513589038543861633393999748439160151816084394765776445545036366572360086282983644272461381906297574330827307192349811278302794220109043254908447240038539238389513047001710672597282096347634925944191574304895513496448219177445091392594731265981157588639635097396327692747477269794468870888900482961204367639334695681742080799730575259546782726129866656323125355849964779034158831462360026668293517832979827345933740760799184978586110698121137444789805934785679817758271541347205850656662819292276495131750485352633915347475281859808001427876596359042191587402078793507774042706210297359185359584054563300733838063524473644713792472406163839645264643950709518114504770527641608896835451625425677061143318714251026944862231811165528903282072280706013168735217962116761592326232484800496562417799460810452209708951563716698259107012394178678266263176425983748557959918354531797704716989467386362335377215689685331349539550979394324234182548378373682273191660700823347507999381061598079856904906913088767136134360308008768595901426412585007996034801271614171733257364208213211851482881684947792207190826039292557471792983609228237286559410965444330060198679979895286303278050361960480313573505006858277666200304747809290736598350386229941522472068864320683167168141630513905027791397113960307750464984156805605392314886365234589283741688464258876395584194455000655384566936537320181928627255592321257804799458400243705711823723303009470249623840636870991841793006760100096594426424215032813281500771822086217953077322393298906555815996443707659310790739392005776518815283886571498021631750667973292712233944283681605520844708513599370742508408185596314515189664241110533219579942961361211996903584638191980645424958246720201169961913789968741634000164642332046899823743346747375071291520118844256977035121318218958212280502561747636274113760667957934741356262783656183658212363955016212983825598695550878352630569453221320538645328883904152674020206486491357440283365474635286179026691602522075008584224408364446470432086721964324448995233433641386596275750031082059392000859207501714144514003759545046600251861931877686679651691754928713111456816879532963679310546161586852933343026396761380825888368288641672520793596379666251093919949199206586106460502004106907685517430399544122287859432980802664560485993453517875915396591309047562248108100258109802151422134540749634650241797729423357358628906974160661444797655025748346839674728350079850148664516534508466798222880573788841328434578464780556408054112379153344173862152507653229558375038762059404537440805603475082026016912804509243846113079433728069401811789281973958675478626453301263151848691936748568664810913695038446972996264161471510340557445121706572061765471542588756159204351805991672611425702997883888968792596856614625807661279631667758469151490692620792882712197362372469978752320808373184462495609874560684906855849886803131709846332976698338852941236490790417295057757599759360607594248765200006189196117102553426222732294262922587251846013606495850729433966776580928472253914452122678673075501466718455490409626824555349724515147007352632103685180192704567722217512606038022881310476757821324705742432793730781101519353894896176310265195398945826005022386727818021793599316951577399343079746781684439069452480478478521932916460257759957414400890634955213340128750855329344249302497168640108162397174711994975470135097847536161238501085557610331728486704714124229120530747214459165355168049349264142393003066108444401946091554036994976508649984868080827536755971830895692465490711100407285710254557324929969430490973093119803712483022316307595353298755290439089767876898981083409627030427690221620288840531954696710253803865912360036454301139838797325886666100003625709860152605544580859790519706357323790265109794201590540484636731113458953773996349724958259260435753690184730404367133351707679600042286878709857129359940598772873628317586339066317274976846691955128705241768061462809027257633891536063492374807094486318579478212088810344506445840954155378895849145837152720366552252667313779003173663315928208656387290753672403036150887504504833099479958195869538595139628538007857823455187171980315965994627772687200789854669900392902601192400303279827159907510458185159297058822440441933591292119075773540383604137530092860161568159106558979505273602555404951164969120182884707496742063680615418130660287289364498269092118020216789810461004573051126116585784545263583832603255909184778081830865697182910055762175851618892020117883246216238689085839383699643883104436474486116201083827224404452906865428640694962993148935818119327904773365063015209309460169465847903549635163695188716743110511623179500212976615515246796961219152568292395967071991665320484328978851393526276628487291537756990973979319061422466504551077902160684610618376084057444506906376276586569826655067759867143447220175630952610031132281511864758341739187226618607964860345537751463165054666625749819763750929569657209006915583797688061906753196045997358267266222979072714126863745861745464332261549147233321337552057031953261466904848238937635537470580477135078547424531311612289623800212335096587621192424166931874032758999836540741276732814142043647698102792357113947160265158306484795403179918036542235259422937553593407893319137027625956444632124024806809780946251739116509695586105750765022501893711250035040800638456548305555611130603480220887893545613056563862578942137465160902455465655705132452032995672494958043160135593795932825261027659689855938665763610779157291837014613560086687083938407019962781896614217860659563110450702955586521964856505300151963844463198730847173585274032310152434704657156095596317374580616279299117142084966171156785442456975363245953027428118338152189519529148363305016571840600186984180459782632649199488154516420026478905859535448101243956568035042175271107752289316813330520650311485770578682902498498078610967690657519833050529314070678648025882460183047990501449903370820300487524209614576033963491961901898445189784283825866375306260248271733834505545366060346535679865793361590716487722083709808058336404073794673775085748045490537337438961094404931605656674669771029924596468317179547599039340277818202992077991676264775054691584813641713188966941171925974289531426736683805179445928711476381192762556367975254545180702274521576078154302696515894794116653834430497386407994645194892858068295915112195623534088939900670025594571278514799933185182659781169570163674025288395603767351968039447597832654585445571712715685478726285039259537304172770584836844669333397704675716896718682771996229742166553256231829629465367914480197049327195694424594918541409993334316465220631402003999722256072656021381733899794856337555726228077375422267456088971145163805468124853159069330957427731243390297826523967346623176712825353225218971210946170904659480879342919568543523807674936349507645530075310462945931305106391435883514773367674490909068546983163903208981925317733726904986952787185476432095914987113593205371808915259713216198025635602704158235089734101894817477224345742521635792191599936900066014017821662805301374001701634184067108201333342250079194516381751986210581055586608081018804696024911790380018101915733552033809866290103784067470475314473237567877843321589379237148211568150269946230790697480181161253578467466230531869922250955567236300205161747331747594742049677544891148514960583483950824919311277700149108391632822564160576811188492549610893447583107975614912275054048009569743481034702802691967948952502657286175366488491608438966548163223217742757204598411555863779146949928408848895237216483971370808418067018113115059037833711702590290324819461476361659437906295508579228872691809202138641897656358692901546999814555589014185893237734064404941107382321074830970034757946966300003975720405555248362827800617385793917675869670546157416514554992136903394730837834274524301251296231590158306374267232284705565902504011987719870482953600069065033820182969518353382054531131904543915402022150873657908857072171981146451661334006782479108353343197440239453789682141165907986600934781583788240406555199658636483915120822809707071053860182381523456601659607451082712453143286630015355859537829233985812342835039827573795450312710079012308712618666720610114245009765819796803642309511722848494327195714101268855633797358518771222153797133697736651575054014360981453863792908952724489055280725719749059650240243836199891130447865047961742971113124824728526468514414085529947503240563464441808421405133211423885557550062883958141419611014573329727714060839804280412466273762336890438561953566710296193902756353373937408375209780936885477511807584335839036196686537695654528873836588517527383418038865145858049641951889107639980477900492715582063769295083883132337148803417290671845262781803970031808975583113419656274599772468761356443697076328043161694479694614335304620761842951029223747807486941693011488994620249146856752327246157482136366657613847424217264324048348704023251202084710068208041565712653332311694971449382477608113804398924595169628853526655966604727736681176576945214949951963873676977427843473230903726595325319663416944242427684151908779260964268637177344867844079843677377181546545941967129055564503693905932782092024080438601501495692529536215901643671366519298688437415027562911366147543648849391377648100834308076684681282954435406473598370237515628816784319720823275682314455709440411997255880479728228114714604646761839961790128663663625945325443573053694317588636521841190632175488235383777176651708333968917638835508733691366365870002763178261635479211843342351787732418217156028156171645191143873578211173398131225222913583130932384473791384594322767203211414677972293767634777807075677200439258888151160566817285190371544377912214718340303084567359600481950050070414151195936443392042656979570017807635406434196528110176599004084820502175781537220313544667869329021292537305530955867088629383407159692383101170445479665947159544335267432719466004327420748745467166472517431490320344754244327579193449578396040383797795627417034390281447949152466953411075718792434622911809805495364373366982668556714039905304723997295441397500303472457872409577877470894595560238550257973113482511843199284005275389203152438755575200229294154084903124095623780504621696800514790870480643048466933888664697679447709205200720405130031170489435186006277860690438274663063082295556442782825654456015230955762497008944509963729111121272290932488265997702202255466965817732113210213184194100474541887607258178710539623164070601900778908117378764915125498160377020464279791370257162846332024814944910378229254541018175050702605508814759953722691995222651448114804840563158449736256489910507525696699617985175660054222383958186567260448855028361208626034652093953513472594409539783124762335184358130032461882080993566977783342780020143426979051687892621677812642025931270777520370009463951045102814155784118818928259429123510965966137024412249866334756503067791024079980881967000377373608194334557446229154753138476910263135089106453361366737869531914193972584967058171095776413313001223149621836484914667678433497152942723983558361964967674052710416266953639039957522473929749954972613918192918606357670503543271188402789513819841629656407301637477705160472750865598103883237994046180799938195128065599243682299384877537057689838929098364822426209472983043971540635186785812394236659768690440411116466810567623988392251358047864494487531750202818384930096126886945317203766343526469919218716056213472622667509624999442811695352639461982279807640456050631872765878797378506669496966023309102638350704830598846076462212196825106124530517061364008699056715788440328367853805363814673170438847615096346838304671415523763289473802082745727164241490920512732586150538816955025483610044426918751249880492885798514205608304000603116167191876081478118311787034964954320639928478320153860243269801770558618149292782760184359174057183842427085247611383658505176626234956940292266759492601855405838408659442775091364157012040091701486759202530175979125778496549690562635823106254204818213340782104136866886304140625611778188360795720886893595469605455822747003887477752111848300603980947987645814389931813412546202232483686723381678573451333924389505210420183608694803512531048306430236120987807602161060268852381965013601346972629964993467031956341430568724076345008856492218305456199454661375680468095626505361225335353833437487747361058499920699224575067771349811172298743139528629297559972210760020768501790919630469071303100294071428931340807690890094933551895022614699842520112274268410004997668742357769836765934736179267963877870786497531297338054775988283813022309514912588742229883331864047099040047408646947235539853139062680268644897441181611118618624744862658920238689036741120136743781720045429574993806471968302896043475650872128711356752887810207662240714023523830257738960971603492931731736287182780442129781999181624915105080372250294159251856978542569736330043453054430172334095955356747407992184673045529576879548249868855190067076487473413202454618874759501565907267349664669111228938106380556669903596163457840495329949841061083232240693377158878504687816602611894580225596842218356352514018808551492552595111770327476637702890779568699725750850748623209004868759824675287537640385773071488699704424984456322595598130160266395897764869893191900481477534840939087004881527703244906906434928050939230686373473191486095309021675576068727677944376877718676803667006539081955120963726388474084413807743573020449385944892575669175140386987314933758408837193480692320086700794075010912914502152250709111437391131054462133265763873566918343283153438212939763198451425825178245255166109357991512913942160089300132381422020990559366982328253761792502294046308651504753758744246270713437076472587615785265200433572941397935101891708423302510017202198180927782756619639835075883273998751398289174530222530732750959986909869614404237666367416301848986859748035564960428054499951383166170226757869966914980808111215132345306765653247568141452450719025626512247242665594660270443336071195812116614270467258835307720356153068771632573908127360780622467465846061237668432311742486889467850286318368283191181450059532938913915425110302632675753560406890286207552015202506742131946833279970376829105483767848440666817207675657640604403199996847124333672783543268217646409935558094217989792310520641792570117883809858013537098486629881518268916281396317627073035361103767918744783715769668131476969914343296167512530355264044812712450562913129027651331496928899626281522231906785455718414874794135194989030010451903852333825623467637865510025443698674515387103796200866606438737841291234713637711391046671450420481057267909207596425595362357139511319058051873999093390042786883698842561621605149833388231649923378110873596797881568314321469114151718228798514129966961216367686251026432036918617029200412609814163291786830078577408105831088763991843947028954864562201648697249530291475632819471756022731321360966228064020652310889561483354121941532333274900711132434736852940340404184322139417611674160237160914501828292155706210461829355489816355861455519115689899499188149461312191091635927302773027192883583955289244484496296133632499295536166141445579274641836113624288531629714538301834965294696805387859488329048550404918121025869784255399881956446007135421573160888202266640076764853748809615570834283047982363872462979086390986154613287038006609477608386981113048582054921505486676109862787063993520554422987282152761663511297218004016364111127743928395816256914172903551606781944523491031098283036806263292716171249582471084289091038696654440739453347600086185240506368170505563914288179481873492505642686427878130024432909903542055000008000425684596294807308833104010003991055544079334842337311151914011428525776061370467162968364412899283499930783428729579103901284567768194461737682476859603402703251002720373619665718683374653530591606923094218650641665306021887464969173553404108754089958973085000925114498110781619603596578818896118970794999240376702425188317662173043889546593424327034517413182551190198226064236696742489457215446587489650493767170105638393653551908103187121590456912839006980069369226538825087283926401219392235736018867773690672792326258638189337276011305327567235587252339387906907267357392883761979685945053567739476205891485137014099722780241420238920893445414653975909425861980140791455321179155047975362551575373827189229734514364801725384472499546910406328178934925577482775079773536649799474248311834065196816592952290034722108075554809781259248376043676667001166040168349758115587481768602740512361404523659381825280825415337809862017382697158833480225210607695625440898744114030534833960586443136509152714861278616165168502783994249099462491265729417957630707577501096369842834623873628340952113807690560538166492553250639513314992571026904899971428194089597872710208304783410834092552762910010641911482492973208927874139816055909789138470193526001537672767778740751596390239872081770241883534001096981361607547952878905326988379858069667122611646377946416959434640909804148727791475417902435880639186522462245015626965507268422252629220312283367592015890483042193539941569153387841811804336761834105154652658688079891344584502897338702138048952322634992721346557130712234575394363815456458083046581917418434715526771208228808238787006885817934580975891131940099479487167868975376592416327777479570769207364216870207965220921981736979848562941571158761482377898758475762885907541948461093321592025567188484400970601542540910587604628373610602680687073841365064476996761395655252234203614996345809200828771857848695047502624066826581299283341271214708584859014133189014295443827804681564017099867247585104239255496072668767139239031718939142589194966434558030449612708540162166737031831464934462053155318528716778989268699066873336519710969926022137751493914228038976141534381122140118907643034334621973036268575912462998523301152304226840483756490569408331157317185020773732464807612076724800625653591734424724679916294143505272476437803216960147738541945075384214708294726514929876755602072455856082835655705284051650180161084071889036596653544596588307050094383692435328702501279616250034727674304310494614826939256211957850949679338707823326677227697806944642847293528572175705518420362190102377099323711146091611451523561410925511072215287363408526956254047530574655742571217998716572612898592628188572405751174411455314775964801741501016719353302161717267144964884609528793412929716708872035141508608578993694922799659322462188213362830581547696322777122047675590479288645977758739282748111435679919178206116842125436595639616371106924962103792860861003863013300746438196876189239565487455946332257604763740075035505200471571528773660952929088346166743162831291857859973623130645967372131601118538798913321100226335879697839845635208154322491808720891344345865982586982648862109099740762969616127646461106382702776968250972976632101571074910903213453519607381868326296127092522317444904356850898607131532889613539931358968154954554352772950613321259437259040141504840453609074037515050051053491153306120915239101365801296185221634070881241202849534131302602471813181286676333101931145257084245665387974948714711197637219471448684132757079170126546099477917293286660577678813900022391687724003187620404497599827675567075398019841483016586197816146686285188407891347683264437411429793403662002307114562320461480688819901084091788791811399547542378595629160823064892107147358641268658249633716223834189561313278315148104946518100042734155828074890971388022563750037965437986988139610879190469145382360773706327242107458262529743808514352648394910321197562664361324411541942729900621543255447530609893931367456586577068439614802781901244529021777233712954304070068831062507757293264097907624765383465332094992631873593264196225310430228054821769309283821923364731588396731993578579859326370951100131725750282989944865001537848079943344752519019926909526343451135898407645236738104415515740738213871102254022589211715754708980121641211164173972669024125062932979912702411982152234675592371407482011987980593094861345886709106620314231831161635236197560229635817184992049744150336631911959124502831113877943596999970791514728166071164516797547218848102303641017453308876750830097958417228200639797531781380860906262108120699401570218234028197043876849466241634209847796506928225427775449246702627335677094771631938800067490215277353006026229539227931149870216361097877655109759569947369956625898853169698148693952615047504904744232264249944521260795426295284227382987674149307584813676689016073830308289637777513194434512309553128689982428654264634076378599679443886309376286190905058478604373248440021723650600340476941110488073832022562628668234130154959180498724554440782302147613108516102764179877753831392126883843320955530893597144970356827407041429824027081207727385385474728974766864415881122460993819183423465614325853817689574930044836473072266026875742235076419146825916054041412435066575149166316609764825510016195984295774328554656029317454652396728738134513068445407623659404700473266107248157112537688379324622235234093452872781132350690814682702311176781969582135764699683051942831182719770054585034466628381363479493003367763741436790687663646924510106080830054890030255314344574599779384254331861960472012841489295724929163689845118363086326291608525999242676671211978676229390534453519115647323604155590993050308326799694255669926089381897390184330242658138125055318419528411623458226095971619962457530784917841656715094849691947124682286781764262636385347834277197798541011231653223687807205800870690629051850873339537082134220144921584413716073708391589037443261942220463105302220043220393013108573176323962573987505815953969552278706692767301351910647718250413305465075186620505736402200193245518980803079644426435585035117616268277235040900187214437342210486174769467262176056587714314664107947131612580030784222499318530178709077209536090859819093952649218991233503180754774443578873729856002766281832006220295830490169209933842110938874990977504836439125588733138383398550104445646572340400327033336849108979544306414596572119731690875320885066329820852180369402426889356344623083711153419266890624034831737386926115399815943284967632163326475586967129329623736397084474569689196125504898005164033798389618559788506358933292178282230987605765740218915588095129600580529174486180583629974337279301093687518166084995755913029141705208141013586577542672522361025529264074328382058019249696807794388494074265019010647410087522673356981647863289603511875946541961035085462424893789369398995947430104076689040672249737260445622697949848432134123942642084595606536492067360397493818659856225569995297469090258397668993572287514831796784783297504948150239802538367667845727720806551342358445168669032924075654187808509896225171092200240494514758037840116293676142565900225532986493046476782108778707619154347922896660540521828695405032853960991431655182947444688168257976884142818093276892936279866697926016409657713249197000361141624636705789909234494851645849719483655160520507959677726599811671513559131179688850483571882234501979521091466203039073621862752104038599194530523424337467436697178583968891391624814788862336135528090779464543604274790155592621735573812305089682560393539087385368799615581698683110655279390641197330610529996110953097095180458403641898835530914995600480648412506921843924631597121826962694042481719151124347741937988111219872421833658313968382125299181788016703471337932944941911241099611627202790482735253375001945045566937604367937204140165764003814136741631450065742923164961863848298861957535117963539960287088118929635658344876778119420689138547642738171995360814615836197604387156707478475442614249755992641688841628759980653886489187788879177839978576080459689443129318636361981417157417854729629585823023581825397491712199394001946825446817571350840378726857869435492871350168629192852356329415706313198426868004825789455162047984730685439527548208702227730178982629059743255307692841857296003214328107533449367430613276168357117406984589433338195056654201579200508406726824130898312655041598786931677087220289562595613981253216034318811287819564956876043003405211984117546587705242223313691702097711631141549283331074654636203215894083156617692101212440196736447329810472029927683191398279550172277485239713029120197860548866765406988835515804469644033611217578712151872587319233851503044183542303316841757229461935717684551887238773614760295962226849907795139194672854496629054050075161317701935923083149817664850196146303393035104621961207946587589692018586949125203316866468489350630406389607439611859480157873811936468348158644528465894542456740454001674595591986011530245143300428988744803070948166391412753770535423141081964524362839241462619679061667467213849441614659086956874591163663080161150551209204895754037128483249265931991445001958445668109210872216516577762647209688341267975640595379669459812638446525495392694091753040243134150468698038299216739072935925074421624701199772780438459646716663003472724458400262983177205880754433603533442373002571359685910919430358217404791009039199876504511312003167903638106249954672513477423018113130317138272111797114095747611596930303456548118562246436576097666878287832321967684000240121703853781639705058221937394233233999792224710883248285431510130843801273183280844489639808288405860862768030635315535905813620499652152354343140322115522161551760857853156273891770832858291598529265098256359073601096034945241121079134805950288481622983370619630891583235663194427557207861506520491719099320377414841801416519800915613833442889444807657570327163171877916318905446081960906528822229636688148121734432187038769159271257507911075828541730258258559395602921908505637337037083497635396555174043150215565160506072261411418219075063797666136006880413893111186936509921427561660256186543621090987343191826927488740050863497559414205093526397047047356339053250941581502474183992348868167803786562385000449129549042563156429517902527277107801143788890472256688859641965501330342624394932641786453262690604648250446843070517512156527475119451066910754541958995119076751888646279973767161589335134692121787404368379466038767145879424622734609772746060849151813188083647952409169192162477423633457539190266895839537509428301687592838440990136149681774529441285426051199316390951339929368453026239621005348959365882247186617750235680168050515924696898931114955370617290771686648657635216825088158722791519888115685030656018007755659195030012042128086746016415148781454088220982607190840488204644463306179552625685361155325649457188351141817421996756850011395985311079973548767288909304727579716706735531224131924961033166830178940571282061231413948831866954151523889124074838470070734713117108596744147398488802897804748697260260621476634409328636633074508673383877594798753747754758139969119435355975385932054396462308782531573631700407073642389897021660566993360574253918587862446596674513153373781234773176425959881325308328436321330291541402527372821791242285459937382886368422938764573540167976390599654052186658900749922102031962106337004655628286900821188722861824681837588364798832195776713277208760025488224132245404171533960654497479530873199290198350848016914375171715303299271670652202347027269370453285464747231281495913094262935221931554995508306115617782703448924907715027285950229756419243831831566745194341273659332234949214157610104503746781267327006398404657306059282023285213209763139300323345976944531054235699203685614404082735215477015352931378948246848191752490700418632382782872806617352606061779705462433973704373152363910193841456399974003494761684360919766336767637522278352205454304013272000797378810826171451971124663026275060691972895498971348033911578060130796706413001852190739395867107787765470189437730616231408118171944294631572583690322336833230122607414548504813653188385044277744389490566773243743764831677380140445648627890598653076167908171738270906915054830570807996676669636281105387643386110055874259579911294084665675990753208706521472187229542258832276810178170739077570726442487039163725442842852552002193907373660514044491976011119882012273365995095252528456204880613240457900480662161515139575339598758569162960819503418489897107431821110008941391026249837100008668612372405739453393327005980417786023532697632399179634054743716080947818254272130533987255348519938201381406583585308916898750238348371921076293771449558707144036598285391895140477843130132515074517141118644891265083360420978388773974143401982597921907697289988232503925440157082705894525560726976608458064775751591801537313336400797945026606892080935488126859773294788579084491185000824892424685835131023111766709779153520382754470596053120311800971080765796007587926226650206800324362405663006810101884750078835918451950614017334295522975246103779638525477940992028035625196744641819540232813982875286011879236708221411650039206304113911485202720986280303603751686203508207342124100836772116933230071117727676348337686050057708027853734442885765130837888798555624291981272283626505179756582606515821377613586785307191396582756558369872972192261716777967859264304349341211869805570148406302586546869865167864716080006796716736307484608168581412142362012890259165922188525873066465798503974616775828064781501796460810769577095212640771425329158931352855456852342820185296035895995932513168818987323688747501739038788925481713273896910046879261834330418144387392912188320891072426882448781134034935846361245186343507192116563943222648653393207528253124263020311780036624299251161652575992831570154278869786743584870863045869727155749819063185310647525898589936210190755513424267831887438296188104100953227955113322530612226412734707382301609698758487593980582643570186331972235201023777178799393170428203240411479867870331374249411328636805182804392283340758736607425773915751891368632248197135184379847044554839717924033058496847597507791165138292086032206505610682625050023231956828761604413418903224433718609874135272677643210909508655854953837668827439952982954059950960551077156745515107598803346610631754643447898363392461466740643467506009396799790026182487867804224464837131640883463665748889177708844081579278233684497573135521450332790131416565968888910278663497050676586234402927411574489313509299754272163169816035242294454293074467461169032516665490048526604178503888574151017047555251455536544608433920711023916099756498703611931536363993297966980870744628756397723714685528567621659963502300506538264956115945970635770751491261240597004205489897025355431872235905504194374132254043761934676079480564957019077202506577540369464292005859268867131064706481055972408085512995386438724807877841658367707966093752499239089631519748955738894655357878473159201781594171344934337728955567959917339421664970470428402150089370271541535503950384824898473424127218509477694230886684968599219945408755947449088211377422611394252559676347551433138264904401107844190152225474514577964511605370570215246890392795012972888779198608344456442930499718605166372835410279139023902936479635760118282256964178666820000054068265450400082831977581492961748587851080467621744318541883220953075949847909763512118576490082203758184150955974385282678336384987495977374661567913997025147800580220544767853915868910599348558768505676605362892957936416711437777891627102843042555329771296875043721662272908517078019808286817896866490389124759858183481007630352793474408329487221747275769451843726221235704010610316796178867845190643685115896796544193663145048964009629564792483709413953655486940243388874704943185424499618831001327313862930198683240821567953279659185115565161206558927661199658079690411313312053721943446422415674270752808781014436923842480530430780056156746039050681747492044691731119680065720727443666726853967423723915166828320197162302475275760605195294387349541990208269865275401881280267884067281240831028692174696036780699639199248300321487760461059170383475132745546676882969782835645223285360637473860614942851240653476586484459518683507420982523041966162348217875954798035428552994169717416763898864327749771069422847844386813448794207584841253346070425323632887529233409103041211227960463315374746110203036229378086362281189802735514720409688169307389862775832249251642172573361172326133728540891417807046614623907305123639894142968952845003697760078810242347645482127890318122747884490885371065019973965964724252584416476317180644109330885369817440044216617292984898590025538163360682292697893932352004017570079387393643567352280823919865717789259434568664029262063452434632981205802280243315239559603016178552050473024198373568107872479775900399700908465820487600025505935702612773672589727302826722983453630204601588988430293173774937149173036636207588106182322158897030710481100377367684199709115828586148394781910054418038230028559196627289494112948339487419066731455699578332297833540736011735947099510647353270340252520073582889435086791694000025152846593976981278229942322999992972014860252870221119660002116694562884155342753233968448112888251390869157717866434846246395123726712355867853439944105793807985741570628823140427737065957828461590286765947655265235284587161490373968051924924680849656068318025161308786862458770050961357291437275682179189945445121200632797706480679063192514897237294362232752884194392215135723781322771050115999178790083809165905515822362258691953587082280263780216947521153274663808695291575687908226776361152898003852521197272212553533486508947276292035977866862447722417436087742118149989155066161914862474469630539327384473208903080454923874085687641575174252920484899297251424331794204331306491020853675487111526229228786485980003962854612747240905807826741050396909394806537902706920826836321030210716401854297397291679107391560814274142417420471999518740055069705388351044285503658242813797652020480914311406501376965285620677993073182529503614691771515854098181621957716403707443157847640380263033557293322139538528539399685014234430866782300684037640462653922310448898476496663060296532420522327043987824987558868721892442645595203671416562147458245347640707234496686924878913820581481140997213906771973026604902134714342603411021998336617371491321412273538540203538381278085795641164829183653153274613275999658568140893843280316917941800848769533644105780173849895392455740450789552935979072724606300358052733241462302016643040968512104100583973206021398092147508608784489742500789321571173130020966320531954410525267956060539035234042026753642267223301359338261964452839550552196722934255024552612244232036007422021497559755867715856502922412446068937746319700677317539920383495468519553312739227872103774234680835722393813551849322271058831545951111494993393523573858801852172450341076734240630952684524907732380096418868219376526532477175511723800525105230842679004967491474638985695577503519228391770332623381591385524000366868319141989333782679128043191505956295241158591222866172185065141667387838159712186144786870991797063508842979820283112717866542565829042258024200941200539492360463585757525346035423721863670610237582040409253853847182410065950511516890894055203794796397780196957862618231029914861920693766433473533168055898491316560441508704028836920521110860540421006906766525106846654061980798530510280955000289303722905692950705363207269087426796359406994047821473668328322790985626140211160959942730715127072976820316542499469295605478092182640598476851988024535364178648839350257952553587324553266431623458441483358022956897680035884098802670166458818605249989066207554538198698872767360522937673114987912973323411889065066817930636394514281507669503327943258017531686999845651671734196999781052049956443908875464742305496660242592614649037724371946937145538491879920745040014138018295631853354206091170679748528124908207608478020950510771175862453145716187436852380440191402327835233270387639728041752061762481062447572185695520644052015394958924577546884155082089182097687875055037254518825010089045672645388112762493787813037899290688427959053147548353513064566035197339974021091718939680547330808987949496690950535258565943745540675702506967164170000098387181725685079967361639995541274421950540257399848685994287670161345557443719654176877360683520920581231804238099236009333873540985112398333988403781640535439585522430898965443066725855070717243707367431843896353735685947900859535487072753788007359601707778997409733998392498542292486397432063575241461056676566584562455239482192632857237660424998132608787806300031191027199341513036579096849088668373243737300146973807036669083446137770924236043388063890998764308653243969881692164251416427943251446962618152848875849255164508138844565280149311015614535679882905667161914014690110073995965858987979103042442097719817719785374682760041784401792585995393795868127031060542439409856350125490448309720711899045038316391671942926463765823934580888327323898130498813412118884270495517743204106529888546153309873362324561407450715976203564023607809229214090192295076363889671313638307935644998930035493021093399030853967634895546627174672160064620647343084438549388018920514293322937221050135376033093202191819737059382244096865201944252649205562251842701701320252257223089908508106022663140363659568979386631206243095575132429874233054819031771069751285653270195283355652327059016252201578367085562577291266307018246071155238732424742857719959819511001633504574900842307566021058711523091110051492155181535179875663922206242059586328719690125002751083482939395229304183158811725421827402974847644752506196751478263477900995849864529821079645659826481417510249997261851164159198338979228407546849996146355618397364073841229983225663966483695414606012691158341162973419287089977980998850134538647680038074531371530442251731209090644702057751383938905877935500943549272204041391879302790057515893600190137705699241078182137620708315115334881023859449718080825650649809869088104910437557116026067216789513388782802284564702361470628523404082609618933416359897146065690860817688524041502271707644612027569547811248872531402917398111060970903935587662579788274864208346651937003987502030182114959295184242492216854209745791018486919780945861906724576744492124628337726117852366489064389870186345579402433085721634979614439822517640903263460464609631445109127939139408571083919121216586475773753874996722251673551235064608088748576546012099808372120302394803125105238938556397022117295278887048483557731114573891543077123619825302597646643016535300090402604683932781031297180917261474932459803799633000703829880276162348202184808042100582290973071587529675200724939089494405679395317950863404399603891566749902017927134527400550183038678253283198086359862473306693442482724186771453720469890959597459449637556753962090254300530887918541456727344870731428964537110110531779080803406639832077912555605619413019380341577910940538536400771370100777534413729679365959414839699716717014692552756599893044537185384255648018219797308234226202393856573817447531467371107618009260217117961607489676514471060983295675223513533064260284888855391077678768257368895426397639643133210513563185543155677677156626771239788448234139090572101159774733718976730037642394426492523544177872397974368459811368490986088050671029648915370849023287734659827016081520847337391394344721434894995794210343101120841994075313850233920814176702492660273206118614605814168393605963673634001954977151880559999245605919658128871212211636470756896953805427270528379611535520935856324725651019432666692315467574023265249229500273337947480687025484309451852726569933425669135691926883049079686660867087866354630338496702544403003303263053958253178454294989100184069790870613221273353645438466677848560736790898366156776662966741550936351396295120192087478149825672237575105221812886351547563310181315294497605362469431532451815015776825256731165519217557034222168600955181106355495459207392017015402806279351292283274200828675065509256450150640602262899557385773323607198763019582610828027096765615567872290017557989326470080112775673007363938709699249697378980530728861157686833140734303045304194896238707726847596117879166228949972088091862973099835044812370459385089533329407777119736185594541147619924454618192254357673540414033485846193399993231076629625830099470960644839724007757162214328683367383701900385094531687049020727775380254364878165796876127783536584866145800270741311995962043309189202579318529450973891805452234112816214818764331027354033703978029280412123929717174712664487817000417140202131653275872543261251317479905313373982595792185581689704341823064421986599750325920259065512524506881792456703155252254226555410642113077789264121064473152590937771191319479016230876990934703652474490501171926998758835520709682739461288881292131865366815470504696987541332745189656321937004076350373487618696703329411395642462382919352052433856173018224064146694185118006590597518728043230385894340625582855547798167737895791339036448577652314152148268107003186356743598305400652145322692539052934135452539489394416414533320690622883774620039389840982432070223499988359591369299113480877303496795473842872477527244270178408855828139368554124265859736692556091051439591796543236630859712146513667062555016685563354785390190426219479845039290101281917614386897975162986551453477935368237248188487714392499387481844794309901902531895808075382842074796065337562543464004353922061319155128802371609689951377950911239875852601117250316966616639138074445389496005501753870629553047991363953829341333099503401724142881594421227965066035525236258844104633029394580602950984666875454003835752723814692950465713861860206448040400163912035505034543831033947450215340182403500096739955594497496672288204638284687641154337300626363047022806754305996781646802777114539968175469943283477128094973683072537748990389883488865017573111481731898814058345772387360434894621659454196941073306670347925908818719688593292534311812241959337111434511031606733489466168537064180796266171591479499878278367695926235488377373685332624197544437999577287029959030374745726272496502440682893564458661402604259912622590748524134825497594176759235478336169450894110857091224656673381129115601158560596353951583842910666447275463882853490052475279001078730215687338632816472013973602767290449987344279053451493560093684076399466138525327340135299535607065782980885991831587404529362358769800354927167681381332738796995027651469327195597045281814987037336009471351842534303829365372159060175820819445332332961062670023659922113533600019167842937327808865209418150128893760576031617133012947607256509709608181302813869560337911616384260333190109967942472425568579059190591066502658103302738358154156322270331547321597516897185438857188939057352773914779293890168190977386945917705602419071579668134911005065386456303121523889108326817114651733897450190742127894136101535767031170357656730312134343556807989427518193944032600180529283461140401492569350421037935293868710559173947615284935208217112242623433910997590674712207335669528488346916136999037340592799719969076175956100791736120079204070392514458495507462264521022572030482237702678744792604140073633412379570892480980440174564942535178021203522600392345712297003487697635358183475505963636195176550951874639347869947033832896063512364312953214216863049408203625529364758660803446911183943459907581476753850234660961792784957741236229106808099943082498740882492080850446746548759312136531662753545440410102094547492137126741634216746835877857395463600706688298940786274314877262308433186033238794214244185490794307040272619033522224724116847168046152799280481495805263187497972280485467362545914233185595178247448832490071818342088645736477393069984967716093446399607551977929422345886011690278298667735882566594977096415111168907882491930127932961492876975502886965021604555309002224573040695632582781367310639207738548420047962826966338801408315177861882454419518084830321937220367646747097959387269253360212374071079552579688835023256701403294704009543788558842134073378590471204241257263157657134494247461675296071122890938305860817949157188662776546363479559790470642132336499906509269157156798837603003333644939633452522474020359801067874732680542468421000056890356098310082964960163815823777439884780391296156309334041740701829401199031340130704707166524306978519756155283514982460706894096341239389786747155914128780274878951481353170827104591782199849454781907163456423619812261267704431407619697551303420124173044957560172992804591740999260059172245934683456358456471900158272614186248782017996725645238859398443702122821408982329566926480295977451883418416039661354646988760072684186401895925319683621833697242275826057624815082875803203388033144940275618813433204191203582699189469028153242354786982625067779359572864664093812285719386864244833837975221867222706755078273683836847832280231752031098239868701851194697161166035738236738755150449136990102506937753535116413718496023597974548429596859352732513663246196713973309774996976724712755335172585530886686343266607873351121496212941062920676604747549661239799312849386919034798444939137175417270089715650279710108604985890415798527210609991869927206426558272961090337181611256368359727881278274258764343204288940958668637492114732735801495766785537487414806698688490074771709943238663218842676522883351694597478391318100934819958250006960472943325859585893249015072567871464253959746925418938037953963231091266469593787179336798028368056317176382374972434948797744519383029237278819050695354554294416194378984256619618817587743087666705747188172561518412666323774133084640422050825307638667116314552004975069202323930158368354833808304759429832539201697664452366892056996887094105849332638228805190237293654790856676889918158971209739860415298739275277919083277366218312314010223789278194598654483724789650356191274219121306499281329334252202970450814674557909508377131598472988422431833364593205226756730359125232224888818814861001960988634520039325532185879628565241243301117734891925439178586827782581283235050534282673380886208067439023264999417065177931788635466202541693888909690343357078498141618258417997675628667527749329482668641174625366471021289891991739446775096478267324336422557681784903316903578668954897134622848543718501317777061767645411773141648751684141177158037620980758031242858320365677409860010944902031765812397644031744032525852622139864291068951169153289643744065831699834419995561874623645473881994996589059045635622283967990965816157779286741859263527037924702038488449670590996785994384870633476620411083056603896799184272875335729348912807685001810336657896583805024514556567580075198869766023753718192194404252371862109134932309546174407283466162115563213562305684900648631901456379350463831148527839179531663376215233172756602965295078978067871218373694253507492898225839801837635869078971759751142963411514564830835285863923313932768259699099642330081407347076758093298269821798342100864266497893585266142307905178921279229770542888072426799247928639514970073087366930331540526644961518713674027666989616462934534744880938381751874974590949990810159602440992812694286428537754637069750032621859524784240239351442579177075566150423910958449257392669180256543445127226879181010093289945480427455121859182263951831421327042389395372412278101144168441772065984578554568663908927558657446240176576711991788920703156353505300051997377617799521351780803565513479822110989902137957458290482980578408171543980943868831873764212311447742489552798432070551343761937652011651097320714849058150178904357030882316252118124031922521202467703902924397333790977872905628786092165110348068562910620807494328466535331890914420438895283755658852762037573804188673334622021088241434190928258520917614694377022971054974044223101985938387869625638896597680863269316643704061548229042902812330053977544775411906822533206933894722481682479139121737812237216528776052389653593404447439057575111485766299115951798712055161299873717600006527444358377710045453315401768869285442315205571461984760907226466774618468705853114538477328398303107368449249475216810717009764589657736531959747748300692115517286215584036343785377760506040733304986772948646076662238649844994598499426026283826323744699526403819598646613329453476481760384003761237230763664712102217261042000979529709329980327065992872819597996968514181105245699773108376617361797965904432476573138572827382043969331460303446613731544025032019589093530615544015033280665639500494324189551739726662462633542650449880858618165697816949796933906728633060841533679343933037102210288559152048891267569748410903380214203230129945999577995014734599581143098963313633909409916229512225613198227422611764605283075552641274742676454449559967370667770493318249144715532360135168881891305963288473080675978972562873162128114197970694810485073894591573246434820216741978120112629565834326144791214263144957261876914959083623095369307867879577143360817309756983866510702350278792298764144104137403709027020479282508198308580467662117407520307359410773035241848602367640806106481074627305886984314871454894597566552348056004360093776963260404138553671303851365031341725831652610048169979607291750947371839270535402703901332800049179329695587079237460282353587649828753781961632565306153465063979636703891110402200943297725995533164825029379998956768844918804921998912816842358625237686850233506842045936569482948084075038153967240213803335038710543171936535961151507751941600973258439859265711281907795957386707685908010997859845378725315054274541495906516607428802491153092938950052314387608079148564190485233276718647140189642165596795425214682379747340326971128732070369093652084225769160005709426674976594049891938140607539089722994878992232701428501097775827451772695516840170065135458336029994107427641599375439382220623962194527002299936711939336183977244703964910041269462572428728429419359796655396339772667480371480824519042274201634678747347361016926418676839058511716346765161647669912853261234998731549796814710427870156637499885248106073593863965304260557455789496057485927658006211836315951165843953554815428017632665186681612249475537156832193564969061925297430821064550067373109347825159492866208573652745566615370927057167492474914970715553573045741197758762175423892248945859875567291196564785428195478880803859292521779260111881453890589521160560298754455072093962688829277340006300865037436569671112380845072309810042434427832837188748421156360678229745060604507933843757266270755795651351022769500016691128580850230155864453463643308582141583775310787795145272523299081166356327266798183413274802871744371766798446206289179206873500528254503327005715680358507821514651245147885817905836273605822127755512023702731957318626162558393784637244333230676740430536790385386482265082218074808679014139555099352513841495427529815583710510806235384878876120975434251198883904610862027824035829912361440617648334064770639373315932103390391732791145490765713997361579948445038016941589344919266558707227117923072555102162840651034612267839058013618449819995328994053626688202139389611950088721771369909636098224323725017299120251926614069898235024601382337241828711270767665869324985663893536007071105108460728497518719231694848766699408675204200286517051049676287470250833871975195100473078209537907034158848689674932386903602699532044383375536078025837960547750718153082670671631484890280011836953796270056289473205916479827095024466540840480753249899091525111555524789172344782342422256822425615802975763618601961227521741587360970950666354985814369901227480392102630355977237791578607071923896882825060406366959995900888399413944638263746629456370899698236546751318651749477140669803688453565560742756920589711488944617722068083906945013050246975853284978238808622164225921254717000022636171952306637298170209072846627365232647972644460398059201652254052863568358793757998288602355474245077703508538841157103207693589530496874332712803077207556904104569867901905132820660066463431673035315221015329681227505991818563054709941305648493298652697092175022082565654977231526628687283363375212540728053350549265805944782470568589660762830549162824708822754031010875336982937538509562237407452311029660955621175835216088324597277482448465421531542626483366972560532410935712150814896014198970156262878798040984746595406138647495327547632079787432351140484245411061514636426983715057886854296824351340254126707609394173789500331668485609169600303241612889502876839865590540327661407640739473671859124477967581822074520697645091373355566571653071501019471812954583253368765799317423549430280584010507175179337006304113542684193115570005503602887702443378028196720957380564478124746254327277496998290065082217100208843858141082276854270720509424581758296165610925055685549345078926368971259487850876563178890474335965974216229527773387763788768971248694464680183137589122997609170168490620593604294958188540871170618866787505335975827269482398842174513087762366627821057847643187651223651069815379997266877520937593019264563529851941802107250577661232266636641855818927356311023831705504192075348530454323556754825310455745258948574689161877276720129774387233481916581832847069498138254581460391542584524817249910423275521315255652108385400782545340711129133845823783380384947999853425226479706818337573397070084562102847133169396204990132338845106466963965558875946636522649310068048732203511969179228223819716601726046619129669791657432224528060374768682706005780383889040682770742061198244595397012103176612192148107857351613720854955853275995951791658796120993878819205315613242292108441438499814476179422292899961277218999827773830275550763198862220849406848678757312542675463410574299105362061623083236513742480894626320467954954013272779313647234495819395800215886937188274333035846863777970425854374192947112242531311625661246479035475783508095755673937750826921842723933867650974495767638579633403767440398806554890599605157034347075879439839273257547387815620195902213027774371251768601817899271295625695757708578028391133772561759170677846360125961988782617249797267374883543902770134854606012578212098500216138052487185651143727977964563355045632279463005465323069662639712349804816358070007768800521659632111376561743360105932515931914573469327694292715071425185509122044705596919883922102496941500938592919638422495976490167897399165978367977095998151287501464552809912384121541683913372832457546706446901280408642890529970390311312846281174628533572163665904578505855289238877757089500398188050404129437770475027146767682866835919248733781978860491900744842748366110418978651439952906909720936540041259446236073441327173036108495232051060161304999528069521506983295871570669890455521173182002159559968737724331805001385225104266128332745572241241026517970565448758057479235274190711764664181632241395025290861621731767609146534718922135372385140017368516172802034126926210938180395172420742782314581623355103866956517432226123502664194880458557647912714971037180819121208840633048913592275796549830735951831607808151627994721368233126315469806068478492245718284651430668577395656975593397060830614297415286714769778358751821947466637500458771524175859591423942945565438579392223612183761985832135254874032620907221331007114261533501283085307868517260588942268942575524822479445889080675862107307357671648735944197019169050103699664310746728311183542714446034556296552643863011437091634659541066662811679344285980603755143134766284353718611185784020490840785971943676516639434704101400843406349689307010795540616557212852967477432181750800364109758457811242839486204416614534227080208107025853595480362574156999262568158656096991931675292160464477950414585031610807524505804289141098397442287914422193827539532874222190361041705854170364350297037932504613218369556466825837890990641754057107955150584839696320052961930141014675338337370923850377294398637879437485738203144354484452838751524576592504522471251109107876046664714789799064494590379272833072673481867912832642437585052700643502875760103077486573060643725121716127159260830225222518145908915407634206887387172144800738182290853212885982048357148812415269348998070023485609010448415730355751787245315940299813456032055622013608426764247410174614041515490829776610177360181534295683183712540548154130889613800118086352246176054212851728857568238576714433207356703613047232797171967475018803204086798727056915511683862809068930564991250624044070364934838204772058237121621825702098729095038908091137351349207276277878521617661751795541689586109364760792192349600342408151872204928120712923354028107617572733348222793981862391921015407896251184364909938904657328487764416086421429911855074908846035626101944645415345299033136685655952719326612389635204795036828928850709503815366058442884819063743286366907978352370513545277683772330823661133854318480657109578512829433471722470318558918810255621404687995371525084192299362870462077977831537723256916580051053327335848851737109260901559718841675786205837626209534051975345096884004962076637311630295374126256388797955654445987439597227529551879589014871941550233778228472147720636676001433926518672125794229303064041960413159360453452079533468349221286700884047721115243500317091235061196085194840473188426653775312858802861376110968465302956351278294337441023328547249558553976194637116282173738270181229271618655795634725248276044885910040098409623051890069442070793151815784505598834824487330669518796684264129966070275605643226925305412985736724374272141309715469467685598292331335867133937038859185492084354990193302912010234069759282270784146753351466447640646430678942661757485784226597108942625137265298451983649580407061298089052312604640485929906605695372142889669385295204181878609012581726053593389433542873269161365437491467566320601635009899817125546539146557623224884321411116664717993865809451153840494094921647616643193289516333342596886686450603514195582243440969476225445860971978456138048068438787437334816380045074000981427763332311689114311872801429541610003945713502032948429200308415372200224809928792814411097664411371313921062371843242537535184561855776180224870621758594588889273751026364959200929919384531292566732709343642640383603879434586025637370813996015258357829685856261811622167038175014531945027992679048373407432891162767520303284296086477784966773325903539227373805275668672842953322206310176917982889087922500627320438573610191466303452488109435780073813022186404029285897626755466537504963306281999724000970457338059308972548047759920735234024046571094670895082656120206364550500900331570206769369725565436675344260646495250705904538911147121379255978957566565014482346237573818473786331280283282761730903713965174401300542244363221009517102205591887835559285930530263650774478969429259903970403130279030666768318829163853600511567766387978931051995536160118697432892287113944314537080568968291938133818036252606853650968327235309891577058205970832581459700264685698089113982212358444973373780614102009637073362079414017041899529843448453107153273388458482467556053803061567226771313286103569864740165855122753021299614754440048803403922560545223546742037748432006803242253721976652055426297594060455193612885459648520618329928700670024640347869368612624393496928715848608685643542148364582391518554984732205925499624455014150839958856024872618660864888855844359082892494994401916387221789353035913480855691900352799133747904059969246604514786161718799278201079401138876035538080755405528594973857110072459326992543852771945181446797227310461525841722583133438270446336492188747531571378674121625195507124180226816721860448649317508757174633669675579504781950405533816843973678103573345481771803995449494703482211236258012832605108997647466605954091629523247444915999897978421248370939272193843343579346164773682172567959968090058479076721243988479565275280719968747901764538835623227736860866382278642872717166750029161347634299436977401937837343854328971388078518856513439138344789868917130875468407577282884988901445769864963269955911720074650999529996136987135532422171397409966915238152021181969062556312839756897148015852251976072262843267752210944998836935608052364994472463908378450567671670431638651486691062675423047172355392562179336139398488017768143426380648945396120752699057964315072222365056964662818904572529577337588666383382803231326179634190993529052651198148257192759584038894064069009789858088290722094142484074040626725818718059662672879011886171414340003863140197741736508060196066317252582001509147448395702519329220621205644336089931279505895264862912889502200652629472047464902965522407487906941220842292594253837631356875292713026366700866345315198587669597308412911836598797554572034577695980366913607516811126424362775267688603117758364545253996515140203423640278782535163539544255143931109577689610857923397529316483914577297705082611884622456078275211212794273107042712351317688289554504198796584960699574196516191787498626183003029640345281780558130712372720078472787650947356038215702267924087595900033919918962758937010027162552673972536359078467017173467418246763225229432440571946262260949130347733418810387035271283576913396708174155787900346814354030112037609463732900653584416134008503980767736087195876865012274961844807730017850635231580191913460925702113769911334080007471839245719952279839233615321857118844344882221759747952670122600449709608727299331689380227403762836466845917387106022280347667772894583565345576323372664355723149354116686348968583420076486383985872262643199942551521190352667680502518283794069175781309593648927321680514565355370252014788316004936509386609610064320886782630642933493711076737610186110621168577457121397037464678046224859265125833865359979155133076259438392570713795758228251490695023072306311636105655596723052309338683873395722767274743279564550118389073487864141588083446800020591236252280681940449617537753260727505367228834711767807294728178792337290100415615850144504482336713204725469621425641432305483366113700699097963769027177141540415924893181289758672665963629162724606756375376015551737675898620716948834345862105438282997459229689746306308013784913032720280274775578999374915108531737538654662179515785939856940058840644689355292800377225885865753712020290722815070610227355295175853618628790382777016757494092158938975135487748999407570729292364839370700095049567924490765449972521411448935339464033194682068468436979720952445927844073139635248939159661612170283220889108880229883591900027063436378435818053529199012655320735274916471339252784627445387561761765329791814913142423788920349460672232268581143053204132346731604024397935172106321285597750350337190773817705689798266036882561599749095484851515583311348933534496992724653822794201426140688429702790260196540890609051863386871024583459490488404515030894830499788209161607408594489306980989308288389561421861263527661969525334373667491410098230775401332182700414819154819440363873757129097242454348562366952729037855167292894956981379824946433041152961949863423301462057459116829981067401010246021251093571728265362653556582994384263123315640829691831117599213086057062911017181971041457248321714088859940465767350616355859000831616833891321761711764163066717672421346452739364146309653670829136509734302506493467091828825272602550133218204799903309532391227546630937907327541291855704459099628680874563402374025388135284100079540021908500440960087066369643070443130926449696018156289735552988403359917688233482652937213408355977487480529873852607793485670219599825241497726540472698181002949537035534088015311323935910810327124836109225891823059310691779379797152876303438613419129240782066177778612613096827989221400295107362666720276887249289359588885341583187099363028439765743452704942120096945255262640600868093604351235062020113767648567179675038082390312544568368625652025877844021483989105157189689127141339135229395057229914667508782971448916185086090630915901165838903961488993960903646817922924845119305620451244763796625058819300325384541792095319897275888707822831139262901540125426487445678854314696736460569269546335259501151246195747858173683897827960802493452601328258247270303451128906578638149590199966110620112121034170298560352910648933488980981627647870941241011289849723811438420623173066547628533176566128562788243995961321255623310478318321736334702312439307437418318652995504544476367320430338997020716762366513434766294981173708946149685082256075018701472726397277182981117385241901604033811906922491786148033132799095511314850718213717653959950787808596694933790028519687218049893728153196590663155156673603917534733272859010354079627416007937876601754650547877926029947503936286311240192908776982294717495500943711094442725714908113255045338846934240962824839361499479572882512856278880066104650725756047998595628802020196095035138575445168302823170633395391966235771874648676141202520988135657389271769420721974934266329650169330811737889971143751042728866851723937900622483042862215782980059310584071258816853269634679262217182956519869965124389879085730190619019793352225408719132980732379587189294226823657539246294315356890608022468968179548537068853221703586303145821253150841401580520527717616957564847644669654108050361750679244820741778131907047878338579050171313105881857118612044476115684225985920447749032306453661617032515533850007952117827105653816333470052723485576185371175733873899582864367489538242342520189966421462126159643501332485124977040845945193006850180105595334278743252015864826538978355306897062614012681769057867832298888320048106796841103854658478384937781677000654307651301047556389153120045397687321706580476590101669256444988778491558160890985001155970666148709610924964865245375326270548704561262208530575867203853905231662965034946756575394327435311381982164273531908698606929909226046647689779023647783361217997146686245191853057097072168066861537204330035117950465448299395857986173962523047211086830006929284433164046290511803760005975635967872067073473513284954059122586621360792614389021931833262320751764179531198526125609227036038780778115244248554255970845801339242616105334236481238123261146194647462086759658831549579658240930048404173390529171508942473568076576913854748097311146837026295210963772123934765822719069466986471824693220015267875069127848905645237019093701718842270870219377640087372931765265917115932626931167776643683308498744468582372760132617552818776784399085962180595773845854181017251468223847939778307299569107531844273980800649568229816112361696970750899204404194061198899910442756886079190841141624367561316263023984641451018619660398484529834541359378240364443834858779783850710566549286058561657832659455808201291444671671071077452657252243215603626716254003095249243483253543909532052914899002636342434497195927646155939695573090557476746913582062017063282711208619190697038320332467413201348685031854118971346719314787385525264903632697680520989121227459270799143229663264786147795412399302530449572515333546902990117328189846923864684075468654910456861575620262375369685672373210031571680417294901830101293923117591579807866266301913229057442195771975450657677287508848143402858351468603117214201673272590897093927882576218330462388344709227817586484572039574063213579962556152891294269377756452033472758095507109652295074883561568337298587761930663752461611182776403814752650848188838785742834847974297950807070025211152791441594952180971953930771803991473544934802299306372571504071138735081534659318699346645790324117173612850555970988791516000101974346007300458666560574684597015666229348328672652777687113786363688080084464856720428397308365608829271171125339890921679794844017650728206179845347902434489488176979794335915927881140654803956432958665252933643361608142193778715007443048493867772041209045081712052773847557393013040920577517567216666584870241598855500667328672041570704150610901655880103685668022846721924668482896495003718687476241004787970532687612800856921615996261625444720122859557049933474932290507310468402744609899716349506072878198713277482042006392808266934964608409850674276486939149264354819973163662900202926093146367414777273345556193301202648784596280805366614334881859326218644720087144497232816336042405706308220444770698734292343890672280147325028407053119893133816766117276144587159125476910812004905218445222650221425093088288744864494118646269088868172980386781246565921363367040716664009967073137642645042726011249869736871343962910141094647177646282136060856476559248544541778828404878047256206036699276136769949219301737868495767254488607214523002203679990008004506539125780905226377009115438060433093578318149768281188580013617905115475882933302101039929977885847700587862315842905913516346114066586449170492376075395944339914410224010670221144482843531364537280057237840446078641070853537526357803414519161729835937221027596716956045157037309305020820666581061351217195502314510221091926011305763134334248117608132148265122105986669075870278484465062108701835113876308034363843255676756703926298287345504819295919549858847326657398674663446922210473582735408600253989180825751989912352091720855947780261696672063385737913894314949442605620581559492484380376113369279988518732336741857817447919220379319758356323990668980687559817560957667000399079867985431691356096514183418266541042112651456394832800628766977419236512567350437628611378597202243599631633347153934522548130001119217569794437031273165744735594162444160424017565086455758736951616037120949995583200793868547958402787272588227777149629215754325179855548952099977389012463104648455072902844834919868852815615949828711910511271419500242969344331412510612986541610549791305953052318332797452022305084188504448903891477402368040017162841437298978730107479748484682840858185197633577600439591211626431314755520364375235092811747418198082656911262903456923084141203026794724174538613540488452376816238469367241749576031045691381682232554513899355000525520350334298981085138740065130990553961716499027913264807892659553370793122625768102757631415015142629805019149205980085677717822346192452511233891578620072743832879094586911470002956064274407065911863928295492137737784087657472321516469610697804224952273306722269713756453440251391511215113649719568897577419083545479872472574818858414000522921299809692485386752286520909182064570916666026312596208521288713616064093227700798011565115367842938324701598029955836769086337356611774808079850198332398507766596053757087190441667459112191970657105983840546966023115771117298071098273996110012132381041530494044385435846864686189038731641631359694988735712842681492195425438936720734006767844809117819052835840513219996770426968311455419475669456189457717503419128680674281285408042597503793540390130383854293427792300049944531528249519964235453863731452942637661103409769483421884758663432918973828195134751741833866951532576127957356040139008470275356369989377328542309379661061513177089204787951674436472025593119276254834076546061517035418034138778315802136711128516051985484477132187701993692467100622889229296528194605869848547981597758078268085761694656782671154798347423056380333250920330356861478251197023832430195054932666539801961048460939624973834050413276165793605886656559936783160001826985962484243814984788275696387003767712201026186607765148726384292690677179171793813698949318712928274907405843998034355114102122294015640918496728444960214958570086548812451259718646043401125332198393955242998954197300685360248402134447856518789790603644679704985458833909699292951622576918417665437809587559151529080577172032599212091805855870561175744700379677766328145278103817893035895642804660383247685981592569416333316550637487869234729761120574373671632833156284533049421211430219587125424501298848954731349022064314952829944314184711168853977294647576127233317162135693873608100037822249442160648651647931601150006111179117678243284798696535352408295923211664463388494443494572805960642503959991465634581939318645890851677098576686866058744441018851780457144965104576088120199212896146105929619514656405484184107864848029734828418868475216584902141577304435508712879987659057277191008003068397454547312332468029312548575953890145809582556643048894660001072425464214050964182949241390823640012953703494821870561956038977562667205812252575399960696988147450955374180962031402134914961020213522241717927172339723922004601565955761962870797199181006214822393702959968586672388659827429772896272181293150909986649177192510592783312191308076265680974157575352982868187166270674250557069525420173494339098300993453277715187658735694997657528437857586592378056430813051305248095306664202893035882021420490019557733565687605719470221218389914583430288446992789858143100623403106968982520654038439232976780892373949469833350905360728331563420345549980745666479900887283532136894734081935896173894178187180958261548344765780613373974775499983905436740272899476202487543845645506077179180553567938346846800537816233428239960284539144617771730603356126475173086328990889460980759540281890637600007133137743080017376923538824779768384792069170832790561334181619172198204620234559324007024747762876613245261996170354379280752073341725411023266293885705754397219673737736021060243082775744614762288718242729572199511033890547491556209334118117484227223980709668808439097664733986905311650061361511156616579776613719705429803967051072652549636610799317486738301868763115058480505693502933255262218574880418164928299599105419610261367366402138365586226056983277595007580352569287760052882101794184128308170097056028302975943761829018805576020734749860564711352792309092234315697998788548609920007513910951375424334133028244040088352731226057164295382180002939047185477755223710527021014803881621158328281798771848832509617030339345002421064632386813596722964850394617779179783624600607210476422954530272289008224405591806564218681099099152285944973794619659854713202503241717059251389238019462499115076668347511018273053566588253569886376476680110884474107284919003003911236690245230774200475308370958802388558084163422170656942335207509313560286753719701989890438557611510704620602554451130879728407207254675510571996254419317921035562217217495329907151419210092352072232031763459482743501925245790166586457117813934458102810987459263825727240030354731223600710349647642466708195146871743027733016269130478602633073870256342897423578733501023650113106206548190110266728370303997448847958900580166709779404388748991911512667753539459331038347018338703044373754995385684310935972051366311370700203183760691445679386888221586966460345275170777879590069917951164673730871197119414061046045193217411308154591435778886072925660537664316955495585762897964579108757437786380347899280577250072745992736148650999625134756297025247530889739592370548536253857543631968113943253120060849478844084669854161612542193660827331047552175048522506781068392365596139696019143702395912614225701972083149043602066628837637102804481518637529232448688678813363000661164086015128909912624701906696023234071115987503333491414364276319386512992008577415534884913063767486064765581032695870077220330092371061772426970630979362744577104919070008165512248062902565694337799027184555739251814310195126525150178002740416189571917099474142289377225919983541693503651213010211768619916961537707165207537316642537826033679853259874809823823255984708833158175112766048861678109448596369174119824906419421183428222224647121444540525607168001280621465659407274644007475455322379094493070406595672637946384642037144085946483634824785294896072697293258852016341416796319449043819236611721448067999835984790555017400358902059904070030572630806408330558196520304331163401769333344886946125855767336572131124585471598064920804731983330443182919390896977335130013391041886715149684249959176270697655582114557250859715006845222900461595467228792040530374688826948231585426780775945158872428069040946559562563440775670616574442772129680313889446624956224627458294232384157841204793014090209980865141763075540442334075498751328328054276618475722714880919847794087387438634784207404275379300377153032925810122811299971000596321260489486001292252806986249364662732482047042912456134024561976447025254651536821067304913463063701532243764134727259908958448719013473612934380995684362691807181952576809150780861912789077894615212694865076696753049305190004234957405196890981315839640642321907854721643311596985846665034193104389671014476280996267326250014849981813044350667650708092878005975353888771829981706713185839211270312529056538881696800506999863995638999178275866211205039191772864578562102939775327827622439951130858166271259652656911157035417327819017677066030423001022366326348417320383278950226945557919897762803122159168484202185034881303253555541183782105462237853086802029192551895516637775399057440555319941362427583148329544168649952866684174250133920847499796241696047289446722368200987651776026487823189818311575685058283831563318472335615166560840795367482517237633092863509243088530643462021312321198546522365538611136243594375769820591911869059630332875855476788494860927714115224055279866591006329287764750984759676249554971466463706649501822553177700452547345334691184551218940731706247819795068425613608629377986980581893464213858941877205093015685914917395533725008478429752512580979856388796148038236715553333823711058215536449004361263759390714044076171022341039475538496218244523298430062475060761459663529075283021148922203782390080586252434471455428684794787029422083974219787929158142026457096588194841176234391262985712927822036295073338314791830694799759400606846731770430583767283296088878065739337795611766810512753333414139016570294631771053519875864452095191183359127763350442575127574385788527891585658431558577415373334984426572470447605795320747196842026006834869534086028502963194515270225250173747761943363387259089879607493496042179740750594737201795291921284182697061048982694489764251180951638995130415761448252070926047805919774840712776951188317215194118362886245611713852538870792866580700340932196963845396662145032066698314496997224159945542086846387950092634404029999492309610403773270995913417016356563351864090100717580643063733946477445813252464675292001566917188527293856257862071119330804336258916232332080125019619633364775470365774868270416777047968409441386986585583396683687005715386876912597182525185886148847525205177802005169171903309919315435085310188903667889340542714068044256007241950296704504724124324989943227865706764748334993897195315224098007736809020153923516138932720104602496613940705145838509721819168086931735807035965594652401551297949861377179954905417644953858722815310351428212135684718259461583107000679228552162801094264097131059251478456236161377497530471881810681917274300480650975692058026226357639552778817006833049426405483709605646987300472135004655988761973662061216322048482032215148261811565917820966452443297399008597750004202180457673257655453075847214549746996196517419110728811039284817934635616238946574250832883233561069601095000644370841239399777199542885940557230820066114079862667532210698999349152514959939074467493276062928537498501498484559801874234785847358511930220691012318870503197523467181055309801477848032915696715138716519459431813175720608088210752383316272663287244486600553891308316691969299315120678794766021036445700768039325241416271846607120321695336869081957246375424515240471391966195343615370933988031545377636771805115652192481356167227099189758024727065533623306522157467231664333978329165311549471864367857101251677461273969041186091661683961914167354217513649788341554999433545013455103067716447278277481963097069557821556054331499107978003345866297560238407918674352850643770166186127456270905064234303028838055644682140366422566006142801777783900791129369704652713783124522199327216338886746380546690529371570546470413049792149781644695637806202601148814760821731962756314384323581393866504360089288107438838991707284770008729862393830867561110694864558752506909625735323912150949664058849835926415488711865082279739125765334070994079083802816686506792795013703327398294116643598919635034084523414977541170183904587352088816370657037903490392623969258839591705110199994247474109825710409396927190714481027350282085772594017556858978717821849728404407002295903972218143200980992932952141043602642928956212759930311042101889738826061169524822992232780793266380017818991995525826685576456612812981606866878727266795477751766313925607559031493069201983442192726078094758715066311538468723264078908165982589406806525693937370371675592522153820414449545554518965709626024319090541825898439550070595552670170613677906081706021076438683374863954938466529518308399558539255419263554655579752475330707915333335184570903746215519492383425270153651247503457645660899619949660541448126026540170098309152418790626336721010270483859007547720551616243159535427519152707935095208001514243014102579176588498972172172329985327638305325472693476080090881802456777619800091242302865140708334786669219016758511339638461324102901045564215312026768444756447628845512746363363937062011215738562517257625147340315928511774184464484402640628378533494505107099680202438664690072058203378718938240234020202642576777125123811289695755415509876351456265081017966576858313846841650541902288144490227474735908103415583723332488771665025820977012963492128926358247673733238645228477200467580578091347049087598987946046750198967669663187677498749841535438834815795781833296513162818588380836582375149780587507845961572300256329568399324426748268099122726338551274841509949568746327764648116050619922197300344647711689216314093261644487147476629167593860446033348719274903066274078225332248572878654835702156112327884007290147467802141623517016671127117544371442887587570817194770476732817572095599690789282376321171391180185284813030162729521144082394072246895939640813252168041221298840283170938904941955000728184410077411208281614445092622250304023731870342084931049873670327850325485944584347040089612292235476526898606027805170498656524860736546210386274632314125710751952073464840061688702457001188855899751215062907590831154166852110615072847432325670920135695195711554768150344867042347850616926357423451987213803507616466602314563011945923819473328396465854628287103749978731463229743994312858979527754141823006517644814037191998118758309673682000932346787071340284629472504342346439899082576598263916035353433549528432853775448170781599861125882897752861654474988430639621221032164032599905565487544690621181519185398337096980688894434684170737756284474442351019309509565928524048564027320152165003811663281669832414468685549938491214286806037656242504430380164603401858279566320469592304025099806155753709374126621896455891018251099486900373759581014839038019466528509662355937967045391188483232642236366613383407665455039412756881200988511366602321403156892845915415431296499167890230943132550996253529961580000321842183743241574038789931314707577552945838956816913272178305741842803734877217625649580832803917433585960232965946235317552434657662526332747821574314515429796528355194401331416623434118498421440030084652097651588886775028994574864544653731677480660191513913017112023016995327171169541047857397745634534435657311187773462502206275307725827047414001776552793225746407061274639751873306316338527727496471687594195663800214076186470312764838248343197823470659949313219509114907069094846579221161595777713680783083482199152017164767759284670940251214394514681261480395954749026021387712149729020675128294287332376081680453224069282674303006421318605524830714953336070363098278549488134707275450971823427963291477859836103441808107214370074671368765286245419083070871965226655359913864489013575968154410055755428548432337431931465548184592716321348268327204721326541465803404750620418138189499583490951091802478389590480571343207501795906528298117423723426462109559607061656115625103653423305552989578568216958629871384720351577890777174751825185752373583183121578799540786054233781947290436976414057566583319919046208136355590207549890151352406685405192678477221927779900397711100790389402259023708304268477994745384320938437150847323499815265293153790141894982957677959163907641839740322184718678728458963530399181634461220023944407771411964360685425717501450373933363345628863177744871177823573189797744054975014918412178412330073304650568460807618430141830965001950949649204796137899015974836204417797870298949295282289208924922096303286523000073152434457814553490301026770024002239471448105892784459553837653329373965941211197012394195633705131177711364435805823866622684272108340195952194587189293912409822606517432115311596635135925556798479670571055057364225049799260311263653726742547693070273046841774752758233049627732027338158347543434720981849752212747991528142938962903763419160766928667385461632651738282043926595439837301464910087241713981005352763784531551645803839578532750250408164587123517840360584793167385019793903731198178543274517275290042658868980209273015299343276301633667719743708246555453422785711041667058512985855693924993735008991750421149908747234803352644352181813157881140634934710859506391463575931430899445320951113013216871279261444956318232496048033470496411890958786160682464602867612103788650023486204769519665088656993582413561082177713242235971206351508349498527119334036153500872798620472916124053430811878948036714383937960049147737640466552439964540234543743443237842273254171528737740205732856457321125251498917256540361765372435220241742195769251863277902119998189252246560420846974294231115194441615359030726022551170536079836911918683586336541566848056451056931268683275936509947021097119815764756713685818503612381714096700024867409134734990558611081800360641717799914217750518980444796000693997789744714134824381547165245857550492080300761114972775541586598735255144168482535281166884884191972822786538383261157953596701558149696183420347810854709969876910601727688157587671785551581139270042892217858223674284326275929956720237348776427252304436633965092870450263277663957698410160437499424050542840255459847800882850029879660518596057593035959791446906662975912502882463217454183631830629338008467329060575402809440046278212646171392852951009965190598054436985688985626746005378380076795187178575880155704086168716159108183736535078133431290625375773544554440814906336960504100757415371857557618082663045644193723569896784201330090983160689013618819381815771713697148026303510561083834669877059454326955315407035058880730947543656687148578911499899936507987771219411266549661429974733706278764973396489686092152341008445146600454919988319053463279552663488272781894414123503185911285977557053297648132003024888562057654842663884242553504991305732580532932556452318012031775396420157840337133900154528259833616246150288467652487773520700617334650993136234500399860164877805180871285670140482304733701860446358275216863666221963875504070060638150690758097376313839461442281666734581824583762448972290907863082959446702650260240351223794869510778290916894638612311562849352644668141589725651129801556718018374476370563044756466397712341707054090572592041840402184580390241018778944427207026494218206481021946724566099001036856060670257948749241392409710761727249003524821856412688214512143909607170912714906683243287760335028192400260972639239606272753357322531336055402187910079905734618347831353622637389886223552777461817865399906147422050879605212478395737062111768124013182916258330542886910292359199564460907543666545440228460812487592791967551063375605853272039469104738622257670879389387765362024866469288741341931208825771847526693533450654923087355713286873002756903015250073569441048083198255316423099074943647442401739423070916663324810599982319157586326038234517435006967799003726260258476753311608728742810305495182369184538365559464962806141691061426137478905681924143098689462053187332213916872862748279947188584481132570634892810898098256546764672203322982748543677978021134953419100136716732292480524470777877955124684571945569667800516571286934513105273731780627803152529806734954136001703423834139186992544188536840565098721745027616212078585752269203585694635190516791585594540069035358191777668626914400828693129264995657142465341738336060936150548064417806182358813664243875511990874167824145302759656375675415353646902054800452253820828187346395289578676647379870778557893032728976187178050267858160541860404418336036561449857620208186878794235897222867712379720693815541797103415679678276488769707647268958741581424310889781779842845941150941011258898419212880564821431984928526759196618421543973547289791132536971169271444251123650046762441237354616461916630389609579507714189630342926507422645203965831017256493003436888127729669565123261235969957998370894097465268237407496834604095493161123949875329443608585868682693344026422932274451200972978257197173102904898495832544648496231593243517381378266635203885811930293628665163264362744865171196066027691886294168355393077474986721521262744368544639977266437971806998933746065541719082060217325333628375975652616462145713225780112688539737341978232701217294811860808415970941969489426511095628256573585087578671712736204137521000712064861225469657136404302300215189879357977864599478449886126050978214269285812379017269699434367895721176887523541043069957755781773024235113297553758704307905142115894937476510171235142283631229208347622128367736894199247141947892680108961445451625401886288907791777818143573290614941060781007811661203263325853809218876802596067254701848515848635744470246460737336806310595208009804654121643168052127961729640609772026489942060638982117704988333807818637019944661944915653152051019627401738941612029756611507061534976295662830568223432624926964171856323763426761064531169580224524907297102010486159389908753381298236971073382225687922861772514162171021769395751819080999319890525135451495210853884490684240456038615737664662900835681990203312213493745304894716762044916437853396833126166067182884120025718001083194644207666350153050632194168607467049816690819488423702430786808730502060779256155176005977495342383790746551832438580872614482301625370950688735695051883403199891525447683833473491140860875768540168677965814683035746710764719551755264083153849715290030721719059961382732239394119033196165941816293952784547735396871096214560183656172261278746536181886626245363434426877052435013234584616935108967618207140459047061130147486193997057372229919159245754448182531954180843119733624804310905099345606000997232450527977072051662239278353186253239598490629450034646640661553369888272460998298761706366886231880775023382801592763568305235326340318410928169253759124776702224263779637120242057215338664107361655697928283194346391521170362086283452924145265901786037411970990933482341167812734955348037333001626129406214254679617856341277881313200934308728012782904648165409597872760705730845032978056491338810497919811184782343536147079394332388567357984618528790506609611617200610469841229923595416546493627015106132333514394441382584298506809060663213693325587327260463605647019537987768053856165034248253910347977958767928014328443363167871712172387995037532591502610726080712158312071144474671384628630642181554910825518943599006812749505978907390745826390206988033034226280527747558643201135253436517186033929222875817694347199185599196504327075451761706931257650816485169642030053320425976202620180472717389105344776114021292122432367336165426648333783787999507021145319030648032041747099008174084036678345528874722187224220006021276982857600654044875184137959935000931475629701475949192769816395962118286663613675395709078771326221999080311438127632831339159281094739482012747584802076336573413662172006256155039010946988511704904520339202319898498479079939226244976764997021325366707727340547426986573744443996777519988677539572628098479046275880933168391587994358082420692757413419865469866857780388680989790727521496429287706715735054135758073125835911782901786798467008163755185771466561998978816424629999512522650078112824847184211126847183771499471596854440970463773759384618424341217582176796200731122247951905066849062520797089566814932725681391858974690026642567130683192807294875803652346681230987264349379293488406871649713301532527015840609414134340245758493103183596002055382025769413875645172224729298560944357801328538328623341604760291634497153157654186454245605053889623596178666404737622232407795641142790040778607226213336764582984782979859789473954524625155166277852768439519822405655366014107061334866550542728048246222969211664329604493561029107327048473666014020770220366674461754652278266969645704337659268269500815208980015458617790212443108179150965473635156643190485223365580928028158391321789317669517875233289617207709787408505735365375207650149556793187026348812609568308984891429968962106527964477062456938361469553161734009735467777934063119981902458800135565961276209703417101033257623511240996660538799990977913049512932668886676480438820542589901048547995296920902864000774779077799645149426573787806718895683398307141479182298433349634311645129787459060630475799387828761613663639318476430319331070613254862252354134651508681126809940961805605189965345240378376253672434965912349507756134625638702253885073513910884927116490641093054898688765736051444334479417477571886721776181927302313696848785975270021022984306697224237587267326353386377002454535439391584912642182579112750467965333313593201334018702641627008039688729476795395282388106496107893940178359818513198460242050000575003253254837122933869074378716282400148442239522415981627687421230312654357535360458238845263476716178562365096054375328098712574652077544000133071328244620158924685551906240601204136665953837088848855763074398800580311498265915490267533800135087196107060033156498289827801604295102405518901342390723476210733817521396509764819524460623960455254597616518223082160618367294704395076212258061356892903788715476770384864849073870313766453117052984425154696730451215024647434093746418008868303666767809893733293429419680039448298732135458064130436469142645095575546408656293109537887566594830341772479940543078705600849769615470818860892503234330484070469630350325175154315442345936527220759115101556643743039341125414270356860640022674050652907980830457362525583287561012521121829922677868333985985185157603757756901709784990584075452462601911259035762397935685047724989424795429101329246278146411513593319403874522511265731403818597037583807603170598094606885559447469840876459121857179383942132330308042576217305660942474185210329765391581069499620207832800893608434887448703359295049896693326412260827385728169173676458325248338052215425770321248002946273524947032044976292613250842676107066827214534225816646890999170663542115643156937573032548195682178267980066786517017867917736734973098570068633598603461756775648444833677842677363670453617205013235787744245116821775064999676591876152718946906775804755094060839523822041547971810614869269947666074292788868542810836920663365323719420290508232627651331276640795193811601790796353220410240380479903554217918508870586853808112467189255765030107578409800989202501773105121009864909621341781960185491758857528941622764159021912991351467632849897568831287304647917608907505643241543917404234570664273634984910854476294650295917790148490458880326734876325048448445589293774706052699882311152911021767210580483100560597789780145719539512288989295003871410769533645779884401147327803579279836141157778393398726014160435723002747794767605733872529306117682700895059957838739042561391315117041820497093822977437584907845779687414713467874513199698195303171007146715482768411217576342271969805577522294095610585700831190511298681156057453173393612337869162370946693183543617238635498972395070807255346853045023431817484527730684921243287651912790000275660320868513945663181087513823498370220550478729809107375433450704658658563012485811197008288014370438323328473501037886424568198174730021213787044032580321803551821268246427736528255362097176659356156160766256870786563942367135656348264728472994525357474015326306227636666874097351532251118893921819068149044649296531548672862241358665985025015492994043545168326723928325868518373180217435129815015124083370268720105871629267035563780176173033142203661846617866343188489173073078281014479657348563724307893299931264862270854333795503862069384045205173124235819424952818346283081748468407640418054436937396167129550266959573946744101964276537364679439838588345461490512099591640681376860951226958301521729491608904230333989912455016090284237920567220176528914399247696603978055211395104362952293036993236694165918164278119964024255317303122336989689612906682542100585085266575655350647031888003436916004537645794357055039659471847616158812124145947934022738889829923471516912842470089523433850278167680970452421130860097246022137080172814932753982732599753365544143396536864376069321728359871993920569460734502486932404898909755733593217947723998504041249447981261232339400362943422546197231303196825456304814438572055580477075963029304454910206793358489331260395909256150611437560464712401556593489389432667791058837678160698772538140071411952308198206639616605957125862327586433568312199831549203029752311416659380829230265815861065393245930684532342408049212251441313263813223442671585514028757745945292862625918813708720773905797613129533789676989259850998893737498505550551192156042245463560732312036199831523774939032791754290189043000365433333977742788993678789713788767988045646711439430487624816575755600348654716453651981311054907263060221165973443226813714950059027370205104017163581679482028773005094495561174101458053005972390505548458071720051534071477234382093371863825014521606625919592800990878339194403651739552578220098838297929761980884686316155890199097731921878796939288640874460544545770821689839206191507601850415393445600975226504426823930101632080259217259520786511059735868067248717805120324204728658210771360400122531685108101590698442375681807950332838427427362441341828026375122556213908357001319124283861728262467937423070124649581387765872519708646397738808346444354617332704674331228975885787161959199972871136685953371594366160258071684898325779168485182432330974425925086287799595302961326142257627534008678394725340570692793223824882997407605739314278988418831996657727312618413315721958401083636720468529169492584885472715439078810483045704342527266609167093865045327880923649468964344867553274832565591059805155256714912522068905134609378827651437108668084545861003036618480473070469200867866824660630936257884289840830386060912685658233342895625722425874756403173071437474543490281530395931060225953314523325655960885289217307425727747581301052924340899236521300053388790365191068256604332919487429404349886704063082373525773206520285573914449364655933338243595683790091011532568125948307563147215717076564457678956205736878031931464849583012838153493100273633662914093815316933266610628720884472448073124102765167628373398789116824343056691058011744665226110139592485025777849322573411888837850151113039013306240558133512413934164969670119516053585974444063426651206917265751290466566430083768346316748974163158479316356919360874557120156808955347020743088590838663070745196570851935111463652107942744370720251075163321287020446774132250799528750697647290867828852667639929663418709646690947525058976854937356241010155569006093926079438758864066436048762708569948379118274482208242985719590356895416251089436298269835747384548716597654429285342193871845105673218388874155364268902273980276665570967003869648313068251883740682670818819446017611669505415989972320046416451901422597009258829888521453151184494332724350701512366192288191147559045075817979180015549099322969983319770378396418009137468062665767575932912014231601042738017098974312967198144399349924758294934947632305495565380452294356215979405333796399486102706163505146415358371616014818213329752311453913352810572561585389488384728643673757870131314757807686821164780616095542675765252228594988802253817674983713653017744623427605977069448004812268027923848430629902653338529385943249625365642529016866214131347993916219530645750078218594219923803003126558696686676975204561972293154739718940661813898111063499843611370202100558943267042624307519010456311003269206133584204080996876024954101042662392301167882223563008913550354234097549626018938901614553376773936436242693498334480712889717023476490073671110553088444585915620565654125088172281233260750009928948675740251350011057523345638275839118982437609230650237435103359280126611596326350017309794920029949537595800423036480554474310717846423837862715196156672030787869367854110848310485622573017207223478453551896086273588676193007529160821749551874901287594917800630517461015964599657482208706327755888375931499859372873317222003661657099325173966141952900225666749943195341119603134173512940596962056434504324360570075232381079855139850162026956592998315482520007835037858873066097509243131462176205111228577525007457991964658031536990221387963457297217095573385158306935305315178123239861741638938607607769464958745154135351777440435393232464398885269302854244182767047475399243090045285848734864394455189999323263727560379641994474470633995432222956216837726696293027243855497284762221489545617678228304353095727142876906199019190004316892209371244621243644626925966054603028918638206249414739201004658772513458187850151788962814928805728003303291588116660256822918865447113161276735331885942336140691447664460220145104192497993532847113543663440403444292263063996250916017687907476257955711699541561373420643445874043759318657432270425831932491708048371351797187941409328755676813172216966876228781489295180518481771215675967937738926606632198318672775115797931124931537546064594405935262132338571453592185988175336324879342022284394075599199517140449591030914947069117329097370414232320435310466929943907411739979935171349627238413859664491340759422351635577215643755440100857193599643326987460219484963331898766080585171508473941740213311116591468339094264643334838898129161905384483567453131511584452573131621581779068680718193701897353329112641496351909603202098271396651887316750387569714000657713391486290203562317966806808259145667104578390413773594534531835975057024158219573917888339110965008675150977647294520178561148641612245280622137157895479082265060000518527111042401784371790000244276308777374428478022008657612202760787194680879003075900024526326068785875490210912051185247443597273366262179872104432670272169011635585403070566441381676486812118021778688315817233248070406109227750279775235673281243387599202007323619680696377266304881950876501823095486614373549316833700031487348725685574562511695684028847210311006331235919119949418673843189355699271739325720890978829561150485293077549455779267020526063368213126237219347646974078652878646151129029416638694816241113064345047934601577259148546449543814811681960525068051280901744704956515846202780713568147723199708069526259116597657359991906601349697860863555274809604800153361111414371486646367026271372913970613621407382935746775200372313660430997876424971707935001591278635821996141648762654328767319362141217281713750021325942023743315598476440061499327690201439619856630308296735939263978577074936247608035774829178556023678567668205749173244494644441608060726623031266981323003635203672237318449850417327195660423090696538002150409060699701931132815371396531859335686641236460799653419562071222238863237248492827488493852554020930848362847523186093507632120489977541121685564194217982843311057254417473330215115658464393097675792833663192671391756819219628180245899159648088526783881364091883467883606286869909487877167318136904456625876440288462946241927817755463914038506254033146968083348853267963823485469540140833446263402599607602481167754035825166651294851980834667524008548710093031873780047348432740917537294833787689216475903109178725954579630147776551607933944854527832202625557077858068471294608681201586887587522204435714402697945275104316713137009583389284768307238860421402558169726367237969281841742697173776279078962747864084993803941135324654709989850754223453372190198143163792185305841223887839548548982319082193991773733079167621873545976650517725039005621503285803399021332659357068688879908082127927856984639286405342201762280571748902514533674266792187867081898335037758677882773958004104032725010146891138561370160520442739497892811112323280511199299650619045943323885366436911685773429365453414578618673668182005834504027450472743960438128747765820147075570595503811386010697146572343957969386834762057114359098375124236879320066103735949050882832080489681236271873178781738064009609847060210804332251412392023922308388585495121094827666525480631830745177968449621719787101443846685099023475376071844717075675550197860644944573934409016719105848497016087892137116074250063576204765496575133369772375511059750641528797036451374530391695078455916004587890330413498987580000074321256153336263259291503106240183411126527205290653342437210243523008738773315463550661619987100286396433150814365846273202346583865836821914741623503285187412782384343934953582317961977809426448441746763891637047146642971537258672357301324130003555351822197766370494331976839437918371659958160720015184636071441719653971478087869094040529480017210598620195955409474562887584711071772430021135268074681596700327286378987972493330679852920733085565503871953975546750912745785621197844163489328139611300006257271067682410450429091398568869172822175177380286242711679453818736101109930815334982637700738681012320783142009130082731029672380679647878379348076584924850928938207928514733644080452434935701928869421358111111600424191627722747283490598659949136978992632182703135505388077678168842443896440519495135793821524073744568280795751170455476081950004343726982739504298548886294747751096102746540113716566125016256433030921858876326735523528295063343999856653626221362669710544521017569182605812524747255753918052518757523888817853462801220419724652529875189383772924471009796889791343406213134721744271205077333940361365926228032760672003377720863538569691953188547608076902689239391391486956038491279698455698321390631167281512135526824268604570392203911478675267082105746470592388484921594126015952398734496654409649421900312126093774111577150931611657084025548622368413349350690557368938500923126844306004404019469595233819557693586907546915719846884970391643087619746852532155770791925981210619763195326416167381198859004651736563656338750036467757806219183207077606693954589892121352913646423843761085306172565969672507019540872948272699037226675755155495788557772919673880549228560815973556219668762408266862110160001871683566194037022784404489213497212875697320197966814590615082514997149838852571521666516763846566112832890858275353692413381215534157585882739527879110347114521351619151257389801119650089961330538336224416593584866151103749862379831727211090451489733342847620074397844649805121945889160313868479985863827502133831855136006745920879149851448014982437986187816552853042054897686139857727683723968821351100202770966017582484938084901478754932069129353061124562917159793668622642609337652526175588658260405049259675036963341126291200965745971321404910945290358069153976457594744225392519030703213241318995461233394195297001011325962329329417594849319759328564240535926386143841839645563556119051326474430140383964296473903393630887237833189702100720020866499439083562972619242907509021614698012477105991236709939519691336047564262932940128414360583678103613215026165091954109298248800092866307830954917863551040257830798994446727320067959824306036754410841842622879405401487657342788557983447687527743114745685944308350638278125641640014878524813367544392009005200371931949802255788891752965771884405109105495187396874621619816188746616695501914871554894818383717718199930312652441280607984503199337393835907570946484801853897046230709497936619982744070317996152964734595917567356308590549800904479456676269698090772993925632446349213271502685114579961653303689287397776823647690427776724532273941577800985912222190018776717796727314970159315422330585320959271038404899168836357928085804235712121223408707151334759514196555441789470187033099567876543623707517242678159453432438411981876087938354105667155827884609456434564244357539654144355933567725102454558335924640827169977103963581091159675526135301370656124057882528965657845609165954696558049405424586764040921085389715873052659956835022033247976101051520501250681413076466320000271173161517765934395346257855560308504745918753496615033423547811206809075855850207141414202271468254416451450635074738067160036048299999674424505485907283208223366700093781005761718135357355459600985934686796466793861827276313638529758307670390463922707015722840355905966968897135936525955784317429427836814858190418179482208075811726530608322878196526608816036171454901543720919541054712339012108162198890692939488774448461782113842658125671013882863353363271762391018129682840032647882276713778104389438968367294135122477200187501771760724888382276593824258722451151610735720104612893779562868096260172629898792599913974115026251285231590907399458382315110673483964931403864420772751927073262445277963086025595091625234483070701824657677304238357802920177777218282411174392526185897190130228360480845732244885600142780043263366652937463331170395352121075645011658751280400841584322529495982212183435896451482871843049727804469375686644442713465630620901078856205235773874766736914053038497252668645146354952484370473910395921625156887819822557982963905394131016043474860750865910713026389455120365663864612044028220929307041953779126879638519360820372603844141307479823435616887622777282578299181194424287001591891931608860068091077472009877274358659793908519010035666082348747911110916191245920691851236113612988028257487524328642727120683805974779885378770690253926718344590183342949923227684135798533044860286232320419571376071478576765294861335072957976433228533768276274213266176046181021963591418175204310209938014248998432540997495798962248220449306205914746103131450113686819595761498262332743506227492954102102984460607575076207767181177958465878596368305163046622653021820230327829781543630458569305883784379691790761427852316698539003924072251556854050157748279920791285072215190879023927871744170974670975540089390414849098779977943104705235781954724259067356903064848166049975132608833884184376168753054028376577592447097112271022739893530450546104406684983414475204733601664228349870555613708296800524737422405589672980488664364780595778950656065009372407783267301970729419160118134108149906929955806068016565594261534405737897884012644090375509196499985522226346345898458875064008836920668196492830932181122464066498922833930457597057542516724724796492281017641637844585542440932215479873854330228609482290060345977953757238169007975596623798246847889767537779044263603862801383965695823897823455180127607994873064198759813999983834595240205566584045354766842432147941778114579479400683519197924303987246939651712343610331638397547069509332705727215496970410005008694095997073986171348201296399768233540933138052032269628175140368840520310441547036202405540070681273504838266516169061143202131044678518099142724131553357637399824235151829934275723923109347374254395290372542464813238122203640748012033312106288114336642286444985519372177502364855483020426184799848259476595785829620773364783295425447350665845882870506807202388823758269935764124312189638785640954787163281865494830309547539047602342568906342989697412872395803543248027126602926116743300850719009077928872230103259975224551950598018898608671832439536796982699259370600109256829751193295207251314180320733806662673621854327656995872138047344607905560333224767164751837595953910096897831608150582251645313049171957370519941467669076438722390626102813820374235473410626931265732082223926252740201868338583925390858795460290476551617521785886884754512582443047265982224865664818019473478116932935549143729473100647715529473199996558469612845422185441169891019089867259677729986398378711318898228602221964699449976748116112314994949248177893135909246298879872350971384447119898568978003136085025083972000705674453111830431111419967520401473049138518695001201438614822547943863663149036123270045823364520487597784938264221211032804861825743924999412052856364769918876921790925739213233675636736328562413333712310990864668939247906549280578279250866364802141897561402962848704550411746126252647854178950787342323797545355965358810186921863184958993203596559108418188032803599640380366127756710998771022514160103292052160646500600233808228767526088769960883606781143856916775650700183601558607967490483194807310540576471223351666145985409520797750265371603242655665258982351556852511393711410161163012003700599566363870078645807658992026363236644415253989580607012037765341179145349961632526761004350301414704102691356674609171799498476349940833541905719759935504795618643760260800705832181070847832542870082485423666911350740688459587877771573370062299655658522798432818888340627001947206924925867020015577240188231855456915235151608869632891440261298166014983623665886178334814093071371215584297474977095716259121956276345385361491684009714121293408188496185726574093354123975900556525516385645379750813400620641396382077470469621622937581721792753441270784709763683564966352621167296176809300723487235871518045053715133180389421909303983462287619373563163079612889598399092399543151813809123575081806511784742030124260286446244793145030895691022576014889842184525790926910355674602636659641216990786027112946352185509326099739661960386436456503326647332627120621763657675639488308713262379646507905454522705647256473531369269366307227804344121216618470534069387234057884310337060302728787038358806802821528818243351508026523313835005978826788488645857216138906237349430142699299682545776774044465765348911087814567963631933900950036288439672385361190145124495413555216845359183894140657332035375277579111170051310416453644765828249521501035021454053600583885001448918363473706899023535601313005755604868430023456684495644140205288489983249063058453809814711354604389953020343547054978467174793324994874015753449429697754660582373416620959348388311442222035151991308143933580261894827526473730547248344254476469496000141289690816475839669057000735582676622879879817354729532097365279742003312801477981410244074003081724906659896579037999012146546698108598672984133951899837367109666106103127164766901901108348710089616955036403935471508904484926836856628252612566179516376304127741116303286473931183592829977414461841291557487902214655993213114416287017430809238249036002913013552967030175255723420940193622542378035142803595451035275466297302235520020218817878394172592081841145686005065862482111307680494015296326614841327577173997378210586501724224780244899025951616732665725491742677720165326938051942007969532398285200062848646028367041643426689318007897678987744951752046233196305506092502979882799233842252426289174047529288655670283958361757792132460320029844461359230510675954834032126212268408957232170820127842653309844335048777964136072491087079593507354178655407677373378716527648339158856691957697272331420487177693773873124300643608819952583300298286610035335076590588937384005626380619534827354845420043056246092896501300207092354533304428889384613389797521176381889914934455607543376702715543407877352482673479755389788924795018636898579779845915265528233944301946260708207762487133530691007322720715041735260546509645178030356157886251213711672909535331818625863344761638318436595437144108929258601141114464421933497944118695342483291541478292511002746608677905081422764558324839438367381522020264995283300640825699769205810674866319582479890388490372158251431985352514886379519551066419896693263468319918766211691758655102773893760485918619633050913912720449255039922638208879589338417795159069233798694404015423833862647712932773494991893378858491902803431950906675527288444315175710641242221155852871487605923090103596665557090229369333585277090583525817608569755021113487578643121370928732382236187487337367409706472081678946591604677613436504744176564362914901184090670504059546331679367362496897891728506039515259995621000640429080180435710145979359036955123647679807421516922066089732109479614585849389961897211905585017604347619997315100175159594361987690038083067829372273943111155514131311646892160373549471913147955810896379935989805104390168593568580325535073743759009540989733997026394213170218649355990030083846560132909479230565676019928815228011958558609977060333199322547582372499820141490767798098509869734860625459967371210992823503422043149305870100207979629226104681938861711190532004570353259703919616987737393757083006307149395934621577983467702427552724098434614344995309727601095808085206355925360400031398128978248199035105638999007038726867907724689051886978655321616732042254026647956675998657358643027851743990070464650615485067686345499458395464663956730014162050272016803162831663840477471951624502067209304727805942989132362011887740426611293666480845173558670869787017454511131306569002404446837006328464556870383788617361903991330910140274653758743025309275093586097816601540663903257034263388210550659657165598728529863296188255832001117197773381281383890636268007007545101193789145709931996817196418215390539182977359999282760020893941390458520901679516730418955783158383677119242950294529703958286987872367483344915415328351845501968169397464903109296968008388754347408148322434721343498424403530073233441502989108151276422154345205582281991687871564970723647025138740153864479562694704553095474643402144182246320922607681976962239063904660180374806308403380104706883461414119514566576917355795414164537640714336769598576845816323490107976058571144564520336438347609780444102445826035279616286629150978617340385323461908682168411324988347770998017941442788977722451587829983242290320087296619445458980534841984967057382675919569162823824135828217615389380796258075045461078408751361729951922912843953242901434420655806674905148167479790245274469500577025662971946047921626233263644608190312810627180318436296952711113714905865811900349105602894811077363073726652881753575184039675605082487155520526364780446684264331384244367202925406832547574846885750652976749845207850460995919202227299198584891622316700480135823315372041637650713974234702405481384483716583224076768370765594930658676765397859380651002312367687094334827024411608536366477152533828824399149056612774761506700921899178518577913442433999309603174455737073377237124290799497052139307241072020546508383708158777765687141690807178083968414593007762564811460172490232079384303497306189583991328556921025303647406815371406167562136062327332199324371404275469928537054843833262065736436348063580210189644322168274427261966275739401042834488890002719694172665082714457874119485474187415602527670017922067013179533024174296754961279512285128677578440591959588816642134148145024577150155520289911290943124341176398335928635988031633618770817656495494822503434100060535025733475054394969663387629513802786225555030413602424181694520180267353569726399462857083530963997972618769732101010257406155093717779916904921565777270077947288297207739850297345120634614654370779467572295399199289261102630413519314980621963707496448703359144555460406942063028180916436745655457653114121018144064591443409212594159265231862691499266786910462919582847932390983101678334086470340380435123551865587384382912689385523658712533837932659108902362722096996226006521514011598534607232100780744355388607729060906315309627357686349450790284629439979263416364847356620069500410502054306266606830786505716604195279930714909700797452431440225062291669349350929557652039638796767816735068990883306410883032931143932936303378311765182846082497705443284560460700318077493395699910571948605087393745857474926728212681259240273330570189198608705389619981721953319541503044791748504661373221593672017177466374339897659294298631164290282549317855746003405384515112812809914116516844887886546265483345572363700060050906699828628326003940459764416236258447890753436827722036992259527733840567038001493726971807612140437175783741683599474604118000249200176700013489876777668742962799181727623301842552128810113210534533139145975734735155163793718932716499562540779182764059865021672695662083567377193695699465922962361080502702636507951619863824647855287447014451226205606100489173929318792109672217726223682070219686282683638628917393991116351666983838569955189022624503976899450743544284108530800127009508148157942462012366708429644618037325158023051621966724200800212032196707909794049337036170350845256727386073540722533702722996742018069318139631995353643546813852415152563598974887515623233203170124782913161155528020690937949877341543835186244848940949442921488325779995260543294900871164987909972511085282834394685410441954024238582963298120911617080035674609674265712350295362821201891321062524385882285837015768541394300865942776333685264627858033457524652196477922555545867371280116679920863558770793347975764597413398734754662521833889256207468109129462457941552958722319076398423015612771324971718248258205333333720772257981714500849444789859911146464430505971618685499017228915774082969426162758496912023989819520655810807639698962120137955095901642139155031788707770930854307443394389745675253463785231704578669242348142050645818063236750385006164463655400066641922159404841632099770422155904674317081510218436359346498663164103473028052948692850548088793750136105571741162709573501882946284454018295867038549766497225422339595782950441423731059190363142424012853697218305863702837748881609524130035415738060581042406222478323702975508118480093923016581174592732577449985839425441986094270478362419067091488110223723074208104833861615183719922099125743469185492514177743256338361376084155747381341735020728990783117588065859931236231406013730098726324528896370403564238580390708933788897119176982554956189171699539757861454527360726181674838723093753607705612077601854278121065769181875677311127194980337536769856538891698690001316012421335233925187757291415511383677905280986428759620619348418823114899677592129414411040160246997663897618774752772118948154907799496969802548089492997956420635531641814308926538958565402551047981295144735879804088470239115465380536071822616755232743510664474375709638465553438184618497766519380169448403138888919729707616292614030703958265885407446660407405998115711542612260899177597599206329129017371527278089367324867213709681567999045494678396096500492728653863280464290853491581405159096641124277287835925093944335441139131868596474169224283706648418098724981418835074179828697201390321504908922594978544006907724167723220892016925888006397398182031337709338369242222892812524663175464545243353482644468006261672447856360635215038451706468352655403169773700948555848002911914601041207475582207179662357817468886750643729729391520814203921731085347775630066639742773286891845866176956487426234538817456483536148160776235465217540806902616848023960637607790846081263120642105315032902771234300904733571888671955205863770017030993416222669877337265209911548462188421642833446600295166394230557098913613614877258084865406547409603101878438069449013430073014744893003339246814396869764050090729613133544025650193132384965284843198311030938688253150830332349392256248932976537884379235968927548336786910450845428003904385584748235361948982628044360266117149555950747038733359742645040438218396985120984423523713784333269574904442368757186347186182452782539817318131874428769352391641797524512651723697410312132158238261043329739045299167173733474145583064542302431821050645532426444360464192612337312491478550946979678560032385238762000503066857929092517264836642665036685063622995451198092519683304325057344876568921390443297300204261032834939047799422942385911316796228158660411341298057037929817356838147903340149361423647969174879287075863618270613378623720901077408355761875023379748913105454564114920427585960063570337706401168777144955126699748870863361127909123642119792181670461447215313856666933646547367277752584597587469824032810759367609013024160412745723671513382732771040659788361426540000096842132470149456230102606584390728307524916608807473286614912734465335912535522937448492928317236350615980709024788816744271978368557326230775865614579133078570947161707485867977724374261220561062860488700858856232713668122895509959256336653860566838347635309675369314479778216180568484859958075563744750281259098227800864303202672242253707979527596844264663153061019622622544989814487478723663600820895621238589533282465804512404055043675295942124381662422603107439147031913046260298858243971315649691666242658318702311046118084877683252712139188064438018193257828902047024752223499152473215268551715618496493187688658507781654687692327571064613761499819091405538327197152325229107843303176888557445810372721492418705058835506213203839915731561500547553767711159685898514657318363100115641258170600063407416329766268121616993385826917748547033984641156838282704623628434243207843724308005807042819013300102210437429858042053373588033248078469758688464699725626436271561547824897690281741690622166471276009422232116192152084639533628937452270374499343930333298129192253207657062592398062295423672744009484489696945135340749377683142044504648017622111409832100753852344090636563019279384948999275050482724790658175685293459315097065886932140874995718216769588920039474891781658148483825222586412010428313414847044728466951937810806628611549941068133961354669731661655674892106117698945689109563292127029889234975796268311985719043819063934645300976837383735334860630434300748919795244818773779656926998320044755272755956265780028101671427730458965622609557540248420526437246593389982436911431839029793679693834131814529455617945644185268295603649428975399249357808707146431064667009016965881813168553913743075506516147323941262973653730962785310871487563083723804434722540240157653382051178972887158405282780222557559905872629061581802458216637352424059816050290209186649244862509780488443926511918250544403676109987772350170746809642552307187538277892902402676188327062869089951292629017872641117420882253126013787388278808326951004268109009074637017215241190499416960196877041263392645678857860577837259688863391858747330870038131359901646092091187251286042238896015985071035614628119430202704411048907213141453658860476208457167605119974381976706419190190509283158374825624810555074854488140910879320554807573042400662025344213829011742683892343026664321135508442960800213306076305793689430648611630952329473546807799377685353461555244875821828251134885511136782981815311658341448458855441872929053138399882216858057447205893024541668115079357374411147699215066476088464959017335653948505215165822314693092522790798759104214538933745053710909283413417226281409121460877845559309188026564570373430406411034436184802086255026885970261061387234933733723389811199985240305660340630241391786887770270725982390366949230366233866083799403503665206261441849291044074113737211782778640155381301138610361235288864553723830942994626160836993689915938539573277676655090474605939580655989052351508556259825190919306789483422567530261406214356093804602915405999829126335928022968874695153632682297624008497017382877410533275324872914414914736027044844245583277182994473193236186162820834798869274928488426716079699472093803153908865518176406034368545301647657338538348272849053826436153006587162433734651135633250067085330287527387283594485518657729900814675956724680970434197781118437210463181134979862155751290331657460752885512385500010642319076999390526779329515504471917457513251726343401541081319068939204746356566778846181490794229821110944524803949564125970132643191027104505273521972977640822329839527972871748693656110010259492811293678204273820205965804810719066589681769718804046319291448681091328077424631562258563134686748577269718552636617840639145011309379589202349566315437086237188000003330820848387818124175426242647635759256161184109479450960028007272384460475032614037065653318867234549635537946130401552295672962659429898336563907009745454414997298413051473338041199489418465279236011879058093584531011048833617214173691813195596742016620962798574630418917748862871195768181277015764739996655598828366346197680572983127385673877465163078592696600355450964865639325734418196691660853279028212731034756710608753467673874037922004748885401953602846251235984936843544214184200290305940647350865610373580131512985422886161368340350060170431146614135979583505894502676095713723854887671117192724319695647751313473242086500890913898922926521979057185758300094168965651540498537240915789375845665753485502868008267386376531965354918959133409249451281385264592913810108145753421703228045274126234815499566478354046399266072139390731276089577380069236030027305723127962880860754638749349846253625196874945384049629227633633783976560718529746336725874832958341676619600693133504132812368800937317231930294312926279229598488889834448071262052963269038589732724317391604100266683822527571021236447847951231864120129279084430051983380040467250812485403143247348123295634600507847917217983441314020493646118351771676838151124186951803731203593925730021600045412215586075994483354927831385950348303542010305960666331255700717809105649607923534423622938841837605195340662498102499031040085533474304233891208370347474232002027615322619847150492364627224960150245479275476172452791951178837191836939002783120731482635301827565340385070985305517184287592438773691315394660525720328940952903470775714163521042626974284937136570169361677029849608256651061800064100206316256680674752641767771322170995725826433955388170818644928175921427126952527662711927863996699744733662325014225345782625917848997212742098170132766649176647014443462097963465198917266438712863147989774969725934411589380975157344553340185642964224425039205854484939058094246370084887900451334727357448438272163317357058027771030077688729270524551658706532854809018097978181656133934668200977882967285479526501532120390659092545806145460064789949301824983377560886754576134362819753149859164928804518603955235515957355286049235291401480112599650036175588154694673608637341397606083160620537037873936046509255516087126539011088510196721868369847271348618219868498701740660265513491035456409007053510120959866650793045772363661738397629692294774191629236724834438404852572354561754802303495005435012711067064794627378576649138240936948374557575699899371915521765610247866976098151006393160348025450538548523896836616790968893379242658083998282157322028301003834825194089596450735944894355658659346919356914270017567728235238700827967145595890665776137907912738336330364206108143630702737816264198001857192866723992579905079370601217643193997262536320091256438325007859401707460254614359754930695060763104237721474983245673851023316796768620817833288488807410440230220438197365534433490743131851740160201984297492522903619486698148816628015975320645261966759732741783366758712070026327546233356410118522373627908276341645044292491409528713404953691159329432599448517570830722333383937759136775564370536554325412445384189007100656241766668189165304263380832830554975029356660910188260541409764879342157566685883670478117091822343388529060481866672115058179593076700429445749134423796902715541034684807758105599326801853581329796606328983251024651203355339115110208551374132671254864297640153362773898368731277515210801094368008327007869596228814682452575278409611209062148316839696117473387981850837905540813645383092761891729388508620435819217139995904826701430519976720036235744491955022706373651892713125882329515565593626277758023503930753522429685724968329890225384914942704261269943130312527704149390773390964131602734267272505650099572169534154538806244391690960098575173720186638523814738216488419864684004494121336211032670649363126287538505467057722870171578128109102692163141887505351087898607637043572018778422736958557635958147805592369554848467723689125054749642317228973191119404845953351737315700888245152577130523341983095987196002522564036993715153792144523142467831085535755308110544029548201618891262535724113016265764229484981987921196266946645913142679473310826781255424767105138240679420006411651092357197441342501308465316826502753156455810438435572590616789241084699401417493751421779584597763819582260581852676855687169642435856980939589283453065380222223583370019054217520653267294557338698889713731443372645157318368498115561529160293249456287850740505924598228151552098076694465186489331601856309563983365259006081843839174998004286158338353364514881876624891479220840992778236824283004916769397786625765460365512428867081120417254199250719376157700230637035634809593869776369523651476916097543940757234118737298052962163645099719524952214622244348924776597216362370960299884547612804029227418742041717041761139403342702780722184720244970539432960175405638865351270088547315542279215528662591215730065889729723442863790104514605628434237074658194790310988271244889616896766059254302337750298563314052353335597709115045952578768331425091331543536198527502698195145655931951714381277534248495506224428955055640503345954456482099308692681701067133246529304036540570252823510808823284208730128622165490359761004812686335410412009714458321053999481639063137492312746780840884594874915107541052184913008656949009862013373260847987460653702592410493798865817214582289592523775084711064273071573241570314296851769526981897280685126088933472356669781311761159105793859329113785146873301857375028419354767313707752075749407381631558936182302103459052951723202670714211640211364274093432154864398641833237973149608508452267108812469584840076319346352755029560001872319761129471545110302356751179538100729107242157107575270020826313127714771819737650089563276585872809495206121981828363799588722305939794727193793682798353764934657560792231963834109078742737762596121398742095117114803961843732405421569359328164703745767083954199869837002601537594207676513042365792095518709294785686510243954477173163411223839684133018259877817261169131021796126496194757328504513673639062579561759490645780297356227970641189320581228637682140053153869006121104908170523555478875907370189937907438432915382744507995318117799811870277393832563017458813176617365162487884363507339573583306327925118136804956004927964586182363678042204075694773129569664790502009131727624750164561524461073857642374474992191276966677989389944010973526498608338395941965447382154616397962453059267191586807849630649044681767022926235592901246172552645192647233631653685606830692551500497383620776946599806706010366759732796992505941996655720658476082740060941394121525366330855854078361889926688571822044809352437163470083491962905589020092720186538118010791238295378664845072797929963100110544179190671865045755318032857326485635529868655024571194251908825388759873498765398341657376401470267152611362157927833381554626228766961275003568001191809749566067697769019391427074933524696265800749598749689901784194713183883470596999495945314974573737620521829646344231090885485454423636453481953649658159810041095577917026846900077460016648065996078732381680349688719455885609934345212852252870416402155532424934167773125637503404049483443504496743318390178612970434010522147634626588931756995190789544231514825845488244134740831839248532017571341924453754027772190387157011374349213394118655394368443999115867215922613168151070038983869031746824941879287637395114314456994651544717995154701597094400425388676234392541839340091789401623375464378806351767368985304929365835097766536050299674953433152854910408404949406979631917876103191089110995252993511017332975275673131958678841426461514273603469638344076623182547097749206881451613220858647927144148238289548480758275434751510418306640521162761138406042890787181103034451861290214823729383970375881587044126130471223886300940272706807253108374702082108993279922856402118140590540322107801452396736064199915719076107805514931837025547751897702068706094814661645625125644713021166474042912565719014203287099531619088761864357384351878693581440655480939159629061117261599760030016800741806489297146341530897221384463568294550406771740751113152708573561260551110336596181832002434178038259552382260998708581837477170396825230144972962578428856955370257179725668643357775343955141792419563937200539030619067362387724929666481513763617566234966179991332815939081836538534213604544416493275650788932102956294005535577377694971695049216686580449214612045051855215285611128840920599242868401657352535042412255719850286588607604738279592066197363130800896522873821337570198880986348869103207136746589540756144752249342602732176175710911544205475185514877514493660549057996552326946520319314750452771819359212530127472257628489625576556899771532669623771182858045812345048228779973039072689726952594241882987630605935010508877710351543339887008743440389681818315809053741211392614060102127853540795862045457076741882925272092944622397576778966231358098579280023576231975568536077076667855767448575934747233848462577592845892356116197657831310325819238500003781817389427524738658562386302994678470928283305132036456643708833766972992744830781160000322185218537366884149815801782312166182356703355019355041999632806069606169467875437190363387318293054311702640141672176694547414965112210741665951739003701570894523167175689667564073834416779931173315671557328667322743266036321457078179815491414568718609139239211336865360796945140053374690865755770262023306855403406005776640750204053484659318946404687254606615329540420783657804039238621860574484955888174217790697953506173868324552177336845053148987619706477229990122365564017233877729584570248029176475171830124551341745287754805098898663724835032334692665133175034657860925885967468282759989957883931100261548253969618367670175389562206390927075432940776375331672178398037084019447533860286092750774006028603362314083983512766888039771847546959183039044230728383465379075673481121919220569762481489067880065738634451050889958024858704447268398048028711103934351892311503769759888544801433445230367650175044286529284367866835282029517715096983397467156403192219061391413299131274481388583702775411179084250289752422924495188540871712929287956524974965597918015676511610320152481816041775654811363647576284043006166085930023494307773470584833228269758526672425344183079852622526988905883472094787289695769591617086408861198254097671173266339501282692971250681058427785187442769725814935341866501496040578675361133320042073703255989974201608107166875236352273459550255852789203747637665756967729414254484344305754237107375531807749110700608319937854346404811197493465337738168167457647355798056036708707945999943905621543556855150713324348545767858817420272451896911895266944835219319764895531992363889842021229824489997787013372800004594778805394934975591729133747723554621557517433966975079722243666785746077505508549113001449816674793759152172197161807854270837252906257611337943411283259448858500839649547841345203370230472871988801524852457085440109707268378227786544563455102257787974023257890293907009981536102518393481460947709410026803044856175148065020022861038655952395254860977690714303138278853282986124042591807563314006991551543405468490539808724565581417309421737251402973315610409459866323048966053522970263746930929287847098498446408594393517951147684507080597342273183282352451280281835719044923896091195420090433469254951987197793368148562582524427884759049502735832094078310492842350886219605745145065747037532928148637705408608504617240396800632736675482910352548852999038853137839941537952316408555282177006437680244932323866030247362004961106568612868861079267334694664590253537622002281704668145194592854632808063409921401633170303668742510296782415338091447023753676617909048383054902596542314102004248029267054127030707106490464271332370131889528115909169835380942233527820575229832554328157652247361618529005503893343288478392775493106500156151019999453288047179967560702929403599462632615133773316598775489714792928095655771002832962220147404556099499537029462242959478056855940335215150314263204373651617378761729006045418016129159130602239565859049709515033032562882935335291647748413242718945671911529402809691002732990790567065332266745802511624416012220777351140428632598839457750253605954218991751425244067256715685824004728167256574293722695134653107448868087709548062031674011389853524979298043885423771880624686046686047000585816849022709668133519388978292486972560465785319934503336122087520481476524487086657057439862874166175844901280829164098548249973299565521484438335376186663318552299293746623234256344754981476798958431980375244027075943738624526294022634011034771843649906128198865417662535571194188830083284033756781935769617196541559872872378826444062623909958110432228333379861266634725407791608244645528935692368079743289693742280460283264155002284159232667622622309339067125646229846177457034330047773681244749569841325843445752292292093666873075880232422929574504409925396900176128599129985063820986955338108762318632483484051235524902599527930255016513112993675351876520110596796275355828246321265174650989269869417968085863736825360221007073118152457674272250806601130590958287510409995861951545494439146205619251195426353223981695545911236803878597952191404948132450798094404927453737161005866327890559431650206064118458219390139734095768575020268427579071589231209552924450330176428508456514459609796199834639009031760700132348905263698732437348255198280119739381313346493328522292007769060291847343851193863823487812044766975522646553399873511821396942236400084424026280389313699720295849209238321740382075598741081823824247085983994113781689296568931090794238647409061736400289834455279125657131606414536324687375199305474035265329124516850210105880180210390291233187156221643541907564660507976570917033363746661072241473420369342786082407153832015628878138377384332646525858363730066742947390384596323215058278824052985892083725348641992325577690881596563733000540662243771994110741586683138833406512397684434502805962334033952348079479719654566277936477140034588795161380183376633358182124070965056346664227958102601459208615113889960037473355686654845357064984259274362059946434489083035505885670138951476988662381360286665156781488023666499742998358228638535026392780156208846847917043573229265775098189958673033759117090660597757333196411745218653692328341072448238553091308834190328942017370110444982518372786587491196180786897112111073558909304530486996294164191789062130532996452655664328654279196417384530490034685781988446050441651685794783483129549231577314057506898343681357975965305864176784965998696807374149997154982978025243622822056922638000369555842939764304837838887955671861150418602942222145816719394893652214152711367127966451805369772455656647048243623212676123960535776544634083616758374030680791403951081327791501025631884284514712677231621653417399648232733759956289491108653379459111502530340371715299752142979443748196946381902112899798899150962701647503420949084723906334075079735721410314944865743479794291595550532789072185799510157470167154339427225273347367136210074011804102638901143207545787131647589569810662489016627413070994455090611908577854268996703772230068504056599374207620145911760940730132261124616121139740369245245203700845939702423212221817379836731082314938552972465936808795471299742127668566887297249299499573437657610369539077963038231927857333878541359599166625303923289665281809641110420049184842083689131012397962902354030686643901071553952652640475033175064421400743754483340377926376565137997405773112868950819417962499472991188112548535463092311388486517670034614259842995450506485358753724828756288346131271405933910652654243155177273723321503481771074929695307795376683399939156105814574905194285050961762838570057219605532907105500450809387746136461666282645487861863353077278735516272016351872835506253150019292467850734233453467396330044423583857312507307413493955407801057355653343460981563528255312216846927853108851203418926301076152960324376721758673158122483326622481060122996677539823836148884523170153446052287507633123801235529216097818439329379097911112911284592790976870658804709190128342263716314445705624999928364582074091450554034768747208902938697421853964361747455738358752281181917994385816806204990497762816881937731024192327916468606061320006136653779216174276158592435738993869054660935934808479667670556267465040567500263135048270791039219706587899873293809468540147218535283117461556364971232501045109352497333448775020440077285632565785548176389584597786833805821190948330548181523860928265451068188897096163428225415801624059361674089730784534977305000521857937764918409302364949810302162576916734456091762238729631478291925534450579096695784916986332265875802909063319859244144437257862354707872081045910209949584608764395650474170847984042812199590378915488455843524317362589859825874779257267251652834958447685660990657264801831076210270812637568195276200812523648474564787646298940492589324332116060151340255140999688050633025102821703446022525430034072043483114511867158958954466758095720063845765413240817765337661744959859528602335051099505794183825690217798859223770153930659445310777258970859524434290536068653145378428465103848696987631508953277406080428431514433863972610468447181350618857646281055573583714306397160290171318895190796014650654625815043812736097664251066258855315780683797631050698936203813369029975587233712321360588588825865977788172339068146713109719182783865278878844723641561491770359006210289109114010940429081611838092894170935883074913788384345833175924370792075439417331035108308713010657908001694137675455823299341433535818838830839807080967035410776036131104578226327544952470042148056805475298469048723220200579780173687476984953430123579465845370340886140660160344387266664783844224277788160875439671892192744071993960831442520813749521967169583655315419428310411875959862783750282743028943109129535595696691513141409034641329314297643238394112395929961656995229336576998287003953519266565669477718449747491863192773425871914211376670678205466941081464386403385998568749106438253163654378735866074030516137375646707124035666928647278711492766390155008863463024188593869900991895729088584717519105961619528928875713523769807775027940264595165376658709976138585699483891153913197495322111050933902438974587646611178243937092712218433363338134517733376190528215413719257949241702848148359757783002493750622404132247547229688049151707547412955714694463328000534485111375292779771464952599906439173166400756582904424312643949538694042612143355873999096166042348289230698531432867935813275879778787996216371166779295680995181964847738404909628287176362384807382588695533178752612102743050017199957163374766483495189029465822924840546263543717365321429759885716757064204173177970460802287042077333618166515047501174640891809644673453025501380795434990902322820753958671447935107244039032564539942136347261901150017567579596520004467145371128416924554601555340078754117641169097185231684069965824608969878720259599138982097937880224854765905804775031278684381721791560325064088579634616121044886551448305272399168141321977213017247254067261873740578753136354782078553767379238655635943381746875776449550534141305743406612783888321601076890823939277169273547530733647200530024679466220203864812893624325259033288823070886500302687995191694611665475111708944180803438648370365211154472257729890525176352133077863384810311528952832771531606760504758492548657530062245005168801248628417822675501893911103911397104693324328916048989056585277434286272902079859100269983857014221799906019167105105328268706680780113867701161361618413317290424473279842948231362991497620018179595970201283732741950646413967362298618942853622767348197083430395919013382747009570382033029844297111785916874504120161414134984004554427472694617777067031942452543362794097237528311127454972894224482100624573507507410293577454325111476856033594779989560557754459026492584380006761272869853079370144201204539896740954463197825136202027933841344864375128066365372382474494981750989045145894672388330868928137490322820112149761978425379707032271772495708275577338995487614107152014379393801742151882718033719023808007995562664410397161329933444208511533893638379421788981064407696921008242485538919394404804871343885305366434794153213814807099652475407867550671478361194565093454186805409679749191486159823961344419288745857690825595127520373930930591003488721939487856778938282011764193516898230634538841766371742102205039591122106160251775202783140362735039006310646069558200405809146880277690990286977806374848318504114635002324868082249616018161308454005707761801152702970666686874948400057255619119675005784301406081807911591181469663043072191404617020511970524580527900358559001640758134927037047647071510842682007878941399869271261353041619391358858085033128234953054330573663386823347051016052448662997727452575603735023698501586256413997350845173993993642933940712167281842518652547956164136808873728327965131496819938806589468979971509287984611248253805288451691457975693850362950080928838606686625843318692677118354636763900193128195570992047947586432203083487036423700748452239132087283722927951664469653970092952540793735155692658692423475836265970391582061119519601614503656068562652277046223165766561333007617608543397615478843779437224904381044963065345945087763560151898947770149729935730014411002047774899175283499385883898220851934725350570597699608109138545429488079003841882904750236311849049683186735880629925313922336634955282395284811133786736990126239168088872415975134321733659331154966152843886878254123247409222989277302976319911307433235593225655269565852219147344010803509948038513277952931240974014776908049984412635009352956451850020418529928914058985943931721113802989007918797950923128638559769348006202660111151086053615599849561910134228304918704235063243564636194787132878964743249474064612786450203402009285686658785140692368760471725239301449730734279216587684796955082299404962420629208049538138319235073825612787726166269988717918153378284890144937427280050263713672785246272101921122083261080965028738530272973158378119248115045527814099154571486644769372178890608498405262215369587322187453333763609650203180298498564899741090935071559981939092775831524087861035813042499110090188012238662166640070077754640731507717054969438297079885082970388361778580389567731355166732000340702435181530464830346015772451486014349501111915908833048016315891983779444248473277209411713583905030685749917129336148046892751867422248391968641798238557356358631730470409378713085934668318104574442546810850703738257056724418402667508271374479712313290990784075624207959455793379244691441373385969156469319106400083130806055812065006143511867455645624147012074855805349388452693906461790528490717247227252683444536547874119946630588000211813390727760169505132676298392135230490054389580400084595862803640513235242375189275896368568983905128529726295666576893557863707090914213857866470608625703805770890134993088834821171771241008786172237938964085892625498568019748787351313367971578013817600729994781552582041003865240354329663476612869893777539151048735467874741056426585283482968609920200606200518170721085704823623612086700787124493592680370555330524415423109912316777911831198011317759102524602098548541800560104400789879081744543618587744974923482118823332299384295936488600633036015353951806150506113655887948458440686944552949829668347269600316602529643736843874526902498921297607821670325066722568425305671061113768397383892446417783747488736236735703767163638671510800538999380127959660687035039633634588773955958272170146650052675081788155578437809942002135786747572391693146827143004621794833629052568866233943286633360801890378528100143959882596207823268560990049180151325427379525417208242536286972519540672224662890789638937727634373357537392490718748997798786907634276684140001808992895215958706331610614362538348350244855114718944255476175871268988869330659685813563585794787867597565380937319885047423782110399659411702580966205284075016282210074723072332495685645167837236425850297374387820932554955560032871702569150390949247051455590396869222850764368146757066644625832014231673468268526564354052192004191893965905204885600890438817017256642095359910110844369951684364683999043150361947524385220095681757633078071552160195896694059077428257331795699501325655128962948348482037009514775398496598718405988162472721849363224902285037855950964649443628444445263927159645455638653927797890341880506284513760863578770666409961963722163265982454671599930461155112151004908497717548407496679589491963599994601769152848587837693874143912145228081434329733478970099593405375782037199908054897001902333595605942434230084116995486386212710995464155973487238900931618682785649351908930247238487653134484562121448328113669720024737675623595179695858831941267358872870078683020998275993499577903313237327317850187168209735259140820756096895701017655407712114268948360426988287080535430518638469573724448540068331903135716674395819182402977494177828875809952877476699369414491626602758919547220938345442542417673803471573950373990465616419658439387282239608278656695110237477128712538925071650847795671445396313081245725784351207149299306452133894789887834411955203564065415106753295636445806168944204402552497818558672817717122535079555889845288923463338322984874785250443311109482389329258175151057655360139856639541065398748309940975731618190549446893277659056525881306703953415429799852781017134509275687995605921692887066217956246184723999658274251397716138258146814048804229516533937246359931201402902504025482460598161470096126141775753635952233266582382248157702058772224715803525807358277771797450757021995150971808052415541090092541437309018961551274772213295097471644242989545071536971834471271839742066927727834138496502367323697943513629497619920348650719067970511169354278169268007529581393536271974813833207423213243289353454118766235120822329825062382676896363257227400789495010827123547377404836606364531985504556289453392836929431262420639137171025698847641928701876721318068754380208936177858958610224852341695361243397428744627517559242087353794174777537585715556281094623611425698837634408286456545978083507200792159798848202670784125916090450623547929236380202358832236889505569765060507098605975742211221765671771898460527632934849262165292870086364390752023124636664534467319383019974978471866992043428378874000120780849504091892342054016338659172065878403714697374901311390113051676648846304965019840843093107076489120201418415690440757469111753255526997140618313617578880243685081671790220572749861916145285685850275490138106685202637199827464883437294064129779671559507576777235079667291241584173106705626718245148625065226475938603238552862816739785767385931190127073721133378332460405633082189220641499733815443229666258614075598138299162583918023451803523295266996395715055550335511583068241257590900887460059472427263291832590830072100947963881676769458761028685413398308583968251362351008514396218869425731528835019715316965948576810710514368431967495785445388185093569303217104397972772502061432488376549612191911492404756257613085469946647957912688385006562869632508689272092533198802859815686211718037821956459693613764407334207624306549608998021297601960156005135230605606137278027785412572059921758182098150297422112834844312765147152882593961587581877531102767686669114336030758351619186633211962138510640398093416084536308924783220478957187039943825978682096945926601735644242100706689551901821291034871757930255237292396421902247413380722084752493652211307491690501498832798257276385522544844522092458274716578889195254403172108465185328396729029285603101727851936182958307148228914380149433471171675433446377243541470206913972756408464729026089352360112881940413559833182228512393429942008925465141833040136535765325431346849257665331315578628531448341518637011434423682717150078431651872460160327908984826620040908341610590972258463403178237968339334463781764912464486065246194743180262263175848535905783199298027222091469039584294235496130591703546167791592141614725386392637556128672576259197990267807790748710903095718507882073386978295945728282073470362576208249001780009615020168797636344075522105693695052180920802563863113938382793432387852440548554937537474859158592663823378958753059860515489137011505092246706478854486877192253566008313055074457967435785059572937356339204908034307544391341851295399645974756273285138151155927146927541488837189793465233552809358153133384245001928323492110607195606756187927155278877514338353329616252991541047879215361462940748903882563917739644960968129296706516515355867641139363830860511573259967579531289389676281277317875069004507070103950228478145164245048763994848528810865094263104445414746039798309419802664974561297216646122805242791604862929708359868093516804811411199201390812986136427003369672324709902596786323842068924767753121153949145339064143917789061877700661190183430312736224655430270723998385700582516036928155767773521054815225557171710316184326777889781484842955325752808578785197809067257975850137518006534460819983807141844427618935655773449745826489274648831658669228845768880960751040783361327079000256717733182894337670329613367728605197240660603652133803961169034678207611948587189845721282630181091757107035134194462669693293468337395650281237071707893387741630296976402517959208965593497993362495821909287272609568044779759821778400299908386048620349565521834602656407360586084093975481578603621571494404015054548714336131356447114718436958871295698039267254961606915874613233289795591378297747718909698949515890988759126039426070303471680400635072091093930584844063887948888008927773759703680428131268078369879355095132847831661356783535354879480358021377325491526595692534498177696158879368248383181970686614456983405862650164327325783445144462356034645271941558749935256989691976253454790968992171827654887278263930055921493902311371433322228469417000225644497030109324443903735639036366570902827350658572799164034379077167963695938006953008490552653805991415522739678855486864810755814207383026601773191349328749872722481303689582240686022686561778951732028628513299535828274524126758063017228034386453222789987336344039641483925182377278092154964683192399133552680914268608841180426458807542912235181258515593435754828987970420904480887021302551220030263806385947778172338097230554176656012731324574753552020699146803042741152310967361879165705939220569179557006874090139525741976740062219887219448639285468945336824719744490980945493566442650508875348685021395370413388671054957286261554322849775528817997644204392112913838921984306895814101525654270518569176297437100403121557324063729049899436222327797416076211021042545984726361672697664285703405454088444784470775287106761860264181635259835312184762311526971274202215361899380543373333487720136526087121679999797987391457992098391692445989350219973007425787372297040653563318712841144066780094352362316883818836719200862667109046755040451959537525732355971545523138563079997781359955539284637575832179086490353791742169395740494367275606798461884480592542788576955390615155348674741940643596800695983081762833905391925027170105797441026798396134950779630545490584117704541767668240667772300191486398486420634984917721212414814907275134951847777038710751070642314058740694931282528564365062725406173751808114111050447386886836071518383634591342346041391410685224184072198145283553772149320767068828134364340100305153417296548041175202406804383962084277811031366876406391541571065511490171785993682203386555643950876374591509937885071384708331223390644582690899753891031163581643172477890162535714306998085272076416377058612531123207189363453077749335103216900320176315013509189727381655770753675529382974561584168205638115185663115849646350441051117134596810538768952181912040064226411303231854529451424568163089266596989703543496288910625194741437437229546193555279612652435041568074458794019279228381831055441905073474360914459482166301471134846523674649465081641484058481429645815201391821682922970131952900065710358700400886734766526861871953153330277859932408860302382464292294870068204408293690952666897535659721220066988608391378391870358015411828434266252459097175614784538296607038151588488878388386515993470493239340513715156530318096511855994077247775549218912454682676404639780911406133025909068673925717017748472417777628282833041853226610501385162974526041927242444306182583494106430850440137486042593519712394603246354265591069757420490146670151442142406180631769587050266189381286929647626862908050766881617203160198422673544671193599729767931593450351448371248503993848085385982404699012840185142144739556867181113300842853419297187565554557617540996652319722782297800433031291871550411523173770369798575299186474112039028114717393118077999433872309817587480216810220258089808503114796818601009779605183772852217257375558158982276523833960991371688239355527899663922258854580230639007982971642820985439958124607734741862111550614723609507553106016717605155694403012113113581500309185614481638958394469864769975706879773745607597906879456021094501065990703197823561791094290361626039724377597044255717777742559783450738418934693324705053507287185943319263894906626505975548960200304290908111548066644168696307390444197981936227016404514335528196504015319360217313754423715740972453299971867293453472734919676129843791987917639421013403141917023542225958347436913442652076140794328461634454870543863690406477415693526294066713308123524443127460549926176745157489997852246370246261247022119718030451890844913942586675209070368109150809987783829491258831769889143632325992872729674717114611859356456964086940392272758434137324454988991788580431558993319322214309201706218279804954815809109131580986040818578668423078002620053032922483306299958507820753008776702723776524731485223824410275095050164956403230543423187881613444248633585695610605199165741406579870578826455920426585541506033082489840520648579920475414074313038235977344449077883488178756272045376915792910628612703998537688144587351622088910936937760808910968968928517109312367034118569792604410616744084080733022385354279177989283738529095282575447070269344063699630845590941555933842912767945853470781251514958385662154431655065458072806124411332111125173448683838157877975056465161677972435888785125609928192947941345415899752732651710735237534184960915790498588293453057566502648524981584580881924392854672357763846145981456797368562185198041809020228792011099066304230906445301562473194105902235577702441144660580024475742349406883609756739971483087288310199408325262333936346358927424546045971387206470627621450782820078378559183548270858997087127477454446524908209051582739724984660230459344667836077383913511431258966966380056024399627954491227807873656617804163995418772730633117371033724677052357161989046660563931480654882217887691505345471636873110990871231282215768666931217839925597764243057564339694482633606316254458281399952671206488180629957119461238398287006462450288563304543321855995667188878122183868596784135879162261587370529932590540533362920078855064919984571041166949101557688156034500884015312607408386462038270395074630982467657003534121565830587281049719201017301875952674848429046704756659683521958107258548019825036962032180122991916719207165136435241909392345369257845715932706503775247010946249027394693015958451757223616971988811427054766088832512821553318098846893574212486691528829720385539494709793445388726841342156962579734518196856261046781394032729098452498551878128571517852362272323171914241426202659813985345185164194411549917911788285980176595983916123594452616416865413230550282223865963742650493383951774570577001421807415934535089995416184413118921370114152476712702933559333220071989496738449833500850339176810565803128538341041690225057290105241587640997939947523688580972277735730115236881766366016604390524242684690095325597402732660342514867837477540022537992809604106811351727394390644312434760591689611302568442196400086801509640338640231907476856870314473489796639854675113591697698651248607410205139032180854297769941789797558364789374822127700463686975499518725558773075449955763047491559220366324521478280255940342051863615855023912663239242126775853107498824649009711989951097747033814751095978259637034963846283613115483597367162571279229699577129031991329641099821936299945878371378611563491009817769322510420296175113163769092370668552180248214998154452734291073830129416739792541533175268449789322706287442652623640566606175069274442044540507895542565142881031818929360894849887566518520237867149432604653860701611612158282257147310195744082819681279858518768178335651287306021177428648145676737873932042022181324193305515194569862192511116482189014899887471780595955742496767209584932089897203441301965302568566763165871950815314057557025611844566607053582114321748640096409727203611359525316803536622139185278200479775463600191752043267726423469978935496827990790983347475267750356964359313155073278502263527321318213821535312531569662974944002988827063479557932594438325213300232424106374599928656305456781038219059142379144862741336563778391940087133238521764679982454130230611291578224539109483059001438035514202582334961276933391536225662358607717404486905177805986072379682480110238957203283087206038337147457790796422934762558876610197321775221201092867149715351315166463557234916089517322635926486157387764614538021809053472058060315586135967766317036721847037898720742958899470626544847003571165393999489189246857607936031893690898087207704713691974545537770178147002873696989242934009429529387121189992816437159464382975945076007364427221053339117166215049163581993456796256835678389161810914128071480282009955291168092128641055066235946855145109181278012491474049101225764139562865460211983754298904390481966695118140216900440300468593432326329387917883795163337639256071735794018144745140905541073922537756903699609236280322386277359719056838952889814823998950514657843852027034840562761977608877529765286512850280131206725377898268158525800624817482581063310948719970540595324177737092363744058141714150704921172046499148873548374526681771567827076411508994010124063152159302158371815865790246790192290385352183941678015221075828637344456495153523016333840444688207401997118548011723354195859690143009202088920042517308261716770834563337345371939717745127036570972273588501403898889070799347029731028559078996172154515791881675027807505339892135623740373333245981574640153738222723315867880632044365860158227560295897406877180572170190545597172712470997268609034593294898849638439779444568737417367397405367053658204991583327272652543583545214967768326626014214731651992554683322013306671241715376066945156534623115207292870956034816611155501686929289141736995042445490969982509775290900648709875887308348289499523022371214406635728626898088730859553865139870343179714748977792741715136331412827916808948188266873004621054794006424351770546230735306177473904268962872779927624401801344556285640623446992182254523017820933813538552279977666338622176456684784889234033229190415606102064995146278838162041112576003465617353654134714549754883931203211112528312659131157958776736341560503931426130208747480355812499122471561959680630043892247374558287660236586839788887204651607043381110474419057783549196008634888064834514342788602594959210655104496557062721715242598535710175870687279034702324432194400522745790657809571050166353375260322275205994647275266924234935475345364714255376991623611125516867603804587903650646397984690680301802115165197140355265450447327883215832628038598385189501853372472581440263583168686422896640897547620203105306968936860635115684789571805963992798543615654333549445279700977491246632822265988638430613929766600423487773838184093892852599255661022051277523078939385539024107090136732068320435177388049800842802532710414299238671226920339631806842404902631515230759867361923141470494923566100877883731664538042027324785020999249503257407632813352375632005220693445473447018921935074406374262523675249016105493014404780990237836331349937499598662406192552138313059794055603578624390938336940899532449449278886458556581563897046417240952438514257983442892500642932303579071460765978574164690364859542669923995865664666945081922317011834307111342857375120099471058030387066721563720731822736352846295896682001728380816384619417187571430727009468345492161128286440456366300830188910204882611341793121041734720407058957865394688864184020274929402996936607404760497279950737532354759706682745819594406677736164708016526069111326935390141282430610407831817037830524895144191239552103683755616933218911706203077048267338494632576653754166535106484071383838967926080555115545222964433277821051280656794556882206452474010942645659280405518441760765412873258241049955435409130674922944310422874932774791913793007453975408831267722653148609781216232182662128621055017898330261447470638826852237304889458480366878707103775326346506521403100921084698972398951288874441657265977447128413465132772976955937437291734365285465133031189084202668397666140239890011333978662069992679182573644600666023763775136583665174758791393048350031117043665009721876655137090804859388439890862644461797177981096008758119265824167740767791942445020468551755046644663560429640236118305961633097764591543184005415697920648562120199183848289213538834580672393235448874138953498725593009395386262111279884276717580555917715581731204205361770544802415140675852291857577083441104499361899446947499827978904051062744993499545739254454814030769608536215010906783692176437231644479630286612919337305930657457996782357907860443928299304306645391034997202265392749977086125517176827047566823364768682908896523815016519504196600934083201451230293836355369218750030278773754595755521512216969597681899668166204093047132157467727024452589390191704760829916292414002586205056342327921605472159005422930452417087973207916697796062066020437272737487662676755369978299164891368534179986351764538774785783171398479368888165149675308059793677269016222419455943003954737956648458106987031553113552602117497212568397459077286436204602286237146984850667404779257718499890064749152555593826524723626749391918761695004046007789253376954878161716483748776372156301832635195253210523149970319944114247136701342780849824334136942434592548884603123789529679715885438924381790829444618341498163043691646760191964567236520075181042159541411162377458324182013456631655953730922190702541169645649290334338400139080000178066906731902622702730447676113348007909557990420524485814233634406705033305541492687800244242545178869780492981660587428354029829794731312755690543835909431942857945645535737157075012655968832034181715843360716846389639748565740748165508088777461649943265154589919042900414804434192765068364231220949331393126804693631928104573836952337530269979298791732770538229751893806346447794776139158875567336984948874934650231614397230113738874167453947277623938647380240909707790615576629537006384629519505632991281319158147157400410512896038497951607182030190929682495512364675804058272028428717672520893965464006312601986121101008093424557604650763190483337664616795311683591617912220332300057067093689731923211484349248289867201968543909732808610177296262199374953157698112073299155866222011330918060362617601416652152237873437194834248779540694057551238314635131011481030039472968561891080146067876895845635413300412009832800441392486831589451743406472545817528867166077888489336157377110015132561245712138701011944102264414134250908707538788518909479036138955966461780884678795536437239867655077169199975287891397951834882649505906417894109860164509230561500141228829314670264595497430667802521385389225268079294958378852738378220113623944379809318253909627356544953991433804994933563325803992015131817978391501000168708407885162316390743949177534983238396552641002762354156657511748477067463922138624856897545206832462816486634260789297399541542222562610722871488393475890888811634682030848071686787715979250488146659177332089489402687886697783148873239922532401990253094272587459644658002629383875921203302755216743543552585206407251530056000207523508677598500031233577492049333610665452817577345970336342536177917363495922467052623145823087556646769389684812770674314499163543466198498216123029700231495114421410715899404823361852113965136770523756272802134778046514809771181015140210319554578253067166030605040088136381845975389533573417016064875814159356229317880534419434926713181519357282426653175930897135745019536657049840746316930449430426916730898710740319403129280656711125272126491578835972163208062226382574543095309992845114453024766444347815626446519548820660421349586123454313946251972303728182789813384939860182857099709119556183332550977850473907317367786279661525337867607155150447099185452933774812760174828013349408900474401822140693456667240354303757092699586741616445951361555398745258191851800162998508375861402342128425093003379988497802120930506991198266409831795861462943561978057382004540531059276332938850596818502317493353021467171642787664173029820098370664622590205760492404414411825085725973326107679904739468413938966104854728894001366811328870354898381365676354759113563738618270282847353508929415384606940684148705582646981003669320840142136131717026023808002362913585156151547861093155646236022286805533123832477222944646413748117186325456802855409335763903271344760250638062326286976976270923426255448617661593173144288904382939613977779287913698144573741654526402480241893054935098804025375475836119144383387865639614244930283034540451138734192023908508859512210311543915803244669315825970786977657104804892391957349412330363422597983710846022043634581990381989268651212019899165345333125370093808354764702464080493996198583269742222043581381791241760412706484924194787347621049629310858699886014854987473337579107587405279968308708409489062266430686306659919806856298217412280100250930576817719676276854720797251447402615767824776228435248388412082416010736499867594496817550902796157915242612629403310561463219716480599004720999203454807831909860981405632191416703545979680547980542111199238753954251473870326931319194776940434999787947781945103743939616223892778644498312855594448096558063436014877870013974160834194947681874540454217226953867000298582239594951846285148016311824366472286070466879895562249714057196114538447528676196426692248401998284533921149177081562715786390351335010181189438804130131770047357626509901605998344534183033064594192216842307575281970970206680770524321050864908164908782193562148048115916451467935121625491840461437700352218590262940373967355142140902696650462466142613440043827307249361094783576566317015894330496989225129690165347966702317555283652196640811289837845870326288525810130675079210538814202444287274168662233987238196479642256794079602518602150561369342401469255030794248409655877627428148273179179477864264180187002485459035876350759061391734008906945558454822922122595683986416896474041233225942993770303305814694803760157533224448849269934641513920736539574562362344602227466214795961425647751905602585673487331805475254319553694090204209527037900597898647934500579165408985040078796269991979063912726044556603848269279170499560157648879476537377565019829825490820136456971635735942996138222388691740578340006144055001407824861249880264637973137180610196038941757071748313689536255313776270708482097444298403926876549117231923560014910205599828132655156080101391900326642142882862783541872469009240372940889027125808597875106236936027019052354353344682495122607958410323171094700727386047653865295146481002382273693959237370327374788172738847484964566668259739237186792735455104005502742591735424899092033440392635402820087451438902188572291499519238640924934880198438316997631528585920650646960377873709743823788584319998542411549957934804464957797841994924654579703192016556719638110861242493669005803929606176539958959234838655093485199774050594714141379765555384237117927816314846860428847236805774947661710681970348526221511792704610734797615304870959235587042078184237818187004068015028499043564921655246217097472171027064954533956541113347226401245831261522466767566564317343891078040726978926309872917448112736109154610872625141119945590765249129659644534940787116823417910332926863892134256980841651779982352833903663218149743945273261637745623887445300494548168128993657114750805772340148970075735718966088349160667137350287566398934962149999085914720111642632474143721114466906288870687892535982014774801736228798416036892977646110611125901124092268091377925936454889869904085769515963695051530613536657645952730060187799511034462745896298825578578344477017528476873126068491401200931123956101605552005180576648630228798064986766047666012324588450040982806735065841898589596376001838180183604592943625677166708722942209972647417693907746145963795722594498834661710086423676531991792906739675883254504892059686396565428883238448849869489097764003499789911560556602458503828353339588021382866487632646072654161977588082613303862588255024257510449055424293797331783388960462252994241555123633419864551227204338212731413129990152520604636686827682514722217042821200560649483447140441674906773433993441688670226926518398725455383464404725253734019983293333695925118932326422654443347175443759689700897188891494201148673396357980963153706876497186527211396964758830069862684474592677691789891188951885343745347964550482713897566075781106741340377027860764817037009380297812439878043400270088750588254338180943640727848809554497707648413857726519183474857946384762481370931039613456128848725452301208198215071650972611996717093227967100347165969648890055145368579798960797524434072142839400826524506213010354844030118553734180619741471790664769936588942609750423507980212852912241063641194778112422016969100762314578188117106326770471598475427133698144057414746417852947328934811454528037037831585486709500411755903341034258208727173616264866310831555129810847671690586986738466786408744494080570171716308213981369412660689515358767529598325564532541298341844363659066112587692359793397324493523672425240824731592269767331882610702836349962038381677394653772951642382227281159702815893504591226537167798218909463512443151320808217504223127722037362318148354264736434542262709047152170008696171826726153882671237492472884550508895137996451566886779488210962837904954728981486011295865233305114762400519588136307262522892617274508651690178477521520235680497087229236755483108222523526485322150978170651211552335881859789342771098429529222412799303100139129861318685076161726875744272330655412161542887116002670765914812573348963957823303468496737168513558391488024551966516457132139729350642030265459063266361341860163233485429294076521466480809001920713834059990304098416203674629197290558389401732442000246974633472022747677365172695971159419110518212930021499280845001269599373076193409163546725475249089161673065393919036353546792404416101234403174062935524377002012687158357039299439152896157638704546063757687065357672192095362311449676548321619797458948901781951807574432149928168373089455653293985342023673252113270509568164435287583635839366759245826662055435099539285507595994903309986126178401298938352183041430636699216020440958284194009614531605622243199679756595202559491795119912787934912569287037043294888443814509329276053355673422820922786226177569119204540386965670714179382481201910350243031476741034282020087557066729766505370908345185253670003405123659922915704751781904306765966243776153393929276945369201432737628625570816751309021418540820579577410897498278689224969378320674043916508288541408582195937872515144830465718302789205050681188871878827615863856777368523965201927512039000239176364298529431240225502651164114163214231154374962571957052351684746266210717940825096015528854458130242306173196803910768600845715770706363574977477741157720964401490322311764656279323064777586011613623886320099403513864373263171589362136551045089719758510473897587976338595409311679071424095998695554429828250995589380086554558815155842944068210250347484697697493226151834778112310304845977228700996319864527801077427460202853882883567617162407567191738160691354542688458515783378327226809594164438437480676974711914474198082626052465983236523183564483946313001401853668743809055774829538732666147385852538582740567728301390605522881022245496918883398232512080294130370680296018888950489241200339569718456849475450457390789620940487494402600878042918026653476919862042295246008040943394880220332852808729110340171960190183687263962821254212049209339452166542481454285337617998015514782879771313202991349716265949608161779828705934748769712596367731607152928640979433822124656615135465318507916111171232723027141429130394474786223736526592287046940522880272422030574105712832358448391551955592477758158987926933962385318771583597852279480557812287866349415809511833793564809430146315600088801525688729342725673824225269271315492564358329670529145543652611644380244951659712036689381200173439129079607396284082356220944093840483654865893375900072047875430205794276000168105180960855596478313472023905799094511652032901443096341368823532318806471428513196907193156313243207536102007013787606793335236017804047635902373974345881377937260460994799453082207466623987961666440648841713461023195742342074911487278017169683903259378930980863638608258506889275491690408823972819993145303489946651126489448930808634105102123804594003519277413882696080126259229882640514634341036661541702970507606484448803242414225410640924522030929826891038074531761465259371620127662652281478358529683193200795486058455132903562430450744482651542660155338220755353586106262856476699802240843545765517837351062580024356121045918072168839760129760593472740821293001267749267801377936478341959636922835934078516183724817985229877385559540360929911147049407375005931590195122975080674561190534620392515306062075030744896942505942919719348303155588347070770744602429653399743354801112438176921054404561461851150459007046663831908785373411620821038081798628473956176471749815018468192320733893758349663463490976189253254777983808087536449616001797889372435766433253451061141036448210440596162931211485232794686705427200483630682199664757822016318898143898826886425354178832514875085870868951762015977157318547168430496039796902710172952125426383884483985195599481012278477774503489279956220419368637719743058180991893622685029232055106759013656779536358428976170212140729891750202111696601378913645209667615908324795803233214956246599302155064657147491824088962263198842925292284209026902309751961742192303708423449615523562867377874711257438888167078355612151470097897218114357960631756143205250526981422216641223021371633482609942817059770690375284808745840211001800269144549286322729546357989856714559997971970822403068208895845268881838175300848274611942875554650043642788926373639875535113746002293409880518160083826373527604137233698947992850996535926566548177820765941394241582428063064091096906124779015427403957952243077945374947943999441229557480172766561852299471875014157592081900661137231161496757673456613592711111700413832002600362510429709059615167890259692143448325584246969018044900216572633467893233847281888676841652702434835684354520389962952300713866845200959337606345542690992044665740464601662381613682203534777697508718438253479420037500690358338895652224844888961455245000718793722048790454360981892210707905400274911149911483664336658053346489308425164818668365817326025792927920724987775379132281618008080444948224315047441930888098883875769617390209819186749669021819303235146708865084741012834728348194512590094219718498903180690409216745376567527689130003914336984242891298081989471539939353629884259134178558407421366871094288998873773108962809927497370951954337447235552174481987620366581178124269033349341307632362771664408548502683957822049774677054241120802613415592344399794671337931746304392252879285267283914906060388568878087322493976487651599873543892232478182520171463205678791969196281318008048643422112875481132934325781177561763067094951568662116878123532818470882061667110300897483970809362758520065978365113459956515118909238562896401959435933305910609503946144387219504813871367336858548614150715790637957017918513236478552960815630844744552271569176298822012666680919549232320891499171537360716167218388371936908704513446226100445979079989226609715240296299893703125058185064170870994707394107979554022445700027135468811103613780776297749374990213048489176461071694663089149821442597715692462008965325805239963128934871484818773772339916907012141287584329464890856862378253851085308353819807574392528536760369031166569637358583880873623979499510065387705382832124431706031321985771631132137766496098936176522727027146191922329572740360663061645753396911764465984501648045211087570329438683561046428395561900042426844928163963206126891210326386255458515286341357117114197240788191074851618926205965302543058565379031209477880406069886394916835446663521677808119124949716259546586207231341347836129125062408064718476965632724149916878839837852571356407871605952867262061578149632636307113895247658420143326350957990712644168007826315114952597501269303507946354408538489180204616228176134243180391231816750375144831972734691489628673120267603202728117825386598166624964604127406531945307773813169501853621614208726515368008144627468929783028604958974259723778142043288013998462543638263496175244321649210440534600425324137285109095043451311138701808828112737840681780880942003420650990235589224884118962137402108760697488623706008156850961051829396918861324255447439378299214137242073264886006766618131167504393929938393385144566275614787799889373198065785555551195029357661965553915633217495965711576286074401812600378082914750877081156097499372815484077267368155014450121928255295893965425734806708827454083836466550124567475343289738783044760779550862507937301574301101698567423714402857937133641934842275257052156069676040049632982534000846289155227723825503414912787935708904698951723524847873915208878584910276856665978330184499994400733245067317437993962734183305555364693061194765127634036386262187557870366086999779065285312912004160082370062208580826290815066343996377522935077599714205972965603164174676052337615531666162841151982839660791788887349617635951096883548665890940466863100024665928318115146758401464956248460423962697131503819663744878748097002542562050391935443897810044317619325548371060042844152459901529803481545851198562604157928762391340765648549242192332642072623102745651997597675466494409439109056372200855990859434548550807212295283754997609786741346547827831708754782996390953470917471626919447086193872122821825255505052503302055560558385802987136052783303231846736981933031417276186196645535764682803936939485572753989051738800895542613798205788909587676344839283038366825278112457632630469773985525182363416593745797362469174708622971799445898865186394758178052311434875124401898920897735147672959959427940140573234507603401348083861164605409215256556529350573102622418090307312370571576018114625222341791088347769523794747307726681909161377630185863336161543959877882253716162303099442280389477092240416279308496304261630236727963746542940407835968974409095353119426444855477540798097508552454082257763736600598803213192746749538770215876145795007602231159463854010842406219326009191035455224125890600171222621641665494022827017919732205201439391206878529733590314325504427542354681890288779975854070155020609420989079829712572459010428979867341614137049720173655576382718143832343033821866729864921622369096652031401936087104444086102196143814543136979709853527302542054373889990728458328494548872649832139717954417931498471691729074137713081434459079568985074706360271334530730584920790933320071020268991431898799043880749593364937638250168911464024281032139075424159806481317501340348802725770521986958402109747505651418897868222779954807232423341027214776451337992407851261996676510865558834643221176367054262914874268125181943294507568521102792317982177226534550057873453300811093050912004494861154921312148137650672037372687926222381427042950982218285962666082478714299529018410999898814440677394137957780247347923656817224900034744948249997935926173478803302311164557029731731596917233162933285546739116018544595393200344142331002502444727433214339587120747137695620874313648631628466070925663770171662436750796694345507146480533636440289843244956485808215979595361610476670830195347434714729101633847891065002843075810107014349101511961635482583006821791731704334925012263290909521676443773728648319230869408804962889097735063279280105469191724854011402118875654278841173092986711246875664909545925590793753427153013384094184156642083585994545710580699712838373628323914339851072050391357067513558213437414011853796182016690176656992876280770082538234741527427063874543723196137619772052154674446053438523341881427595274385590037556366281902304961608321152747567909868892181974270085097074252847094948213284709148862899633458167531211254303775119185545987825374340377561367158937291262775242924306197827552089275063659981108697705369048434279522054697793706431966488784963919104155586824931953101117699152092418072521943210373672731573527298959380726022322959321725165904629540998886252757043840404224712430836268479177136869068236577300229999293718759231499152400827457695437957440019765600152200721351106131805978125545018236310505616210053292007964910810825796638222845254151845388469531022359095202491409869457718179184205220937189713225284598039181772659787971918398204961034644497577815688197462913768769259458594690524921598492630986707756174042945693229623494021214914944188196988916805518597860522771104460592004301978623164550698306598927533002532598431526185199613287880164519419186333416161541458441488668723733795657762356208036415497543954088171342403967239331873256590027247976176115618379728176977067896478957777578289842057002373412725912638984075405700387197860126576260794266556616171730448698997155560302414626861921385986101613922036296559419672683004476733024326127991504795932862714474611997448887634587965769120659089690740823838977794689252541899975507086370038275736043045822772661021948125030390739898757673015857815220477000838534022624418056764334389459354614149022043153520087427784970587481926277586334320500367812020168656751480258693042953950530864158848932426894476404557220239006400057421114392933135512708998307586592379535859490570590182875282046722789501430596333888154836433542924074104131386327994822777327300732728051276951303386313179051326217552913456433411804742053529709654907597720902043076977663219823128889136345044101103149494268506512875950559183640353680320960779166723543265086520459568785105112239539431159308034933686836815961076828515512924622485952756677887160817817483298863320231310025687144616999292340652122683580896987400203330294550545928121135661816669367955485037704982297717101217638424404406804132187786989096222895611702809953418830181238941830301691302568404697836882667561635856987753337053760370162367568115069350011593982965690895387863787169771073247459169138184324327725698180265076559300652650859596923862007774961638190999213229840238646571597271222148562594724440245221696090627184848559491421691487931881125086482845323771467013952935803877920620916357385272453560536346179499925308717803478018351689178485524619571384673117906763089716106058661205424180141900108459615581082293362472457738252673360650825765394331574498714614473505574600344771107053681279985082775438145183897234370862420091153647050928708064564122285906433685773042007249236291857587013144126912148584191533740180340095537779602203908843944459554654353840255941836136553153477462717669517397913766411125674182190830331381486121502661175096349572204039325081528805666499433438670738179671456526942994849764820385327953419404575147376323074769527822559622053008335554272299099125050617878465834237417995238052598362396336232853682776905168496848521887809858678969064013846077239820102169021362898239770850378737501037628832021051947013828047761134764086611580250927864705133698891316614989623318118212997967889186591226305113905049891839138566756879597045152120769757219590921276500111656501371264273085917049372942482297024285175496768241848901624249605227532906612999124931595840206424858598032718982014936753940666328632311140427675649297654997603475070073934513768930139414950691788486938830704272493350268304511825961750583029828110543592781240976185394268047570843401596944051797364626604131752241182025284109786699793012215320742658901981082843345470955843109765004456803902127659150199645208924178294284187018367554863811744753836525528830010483490272600612033816077955592278839176642330439339377958398821111512598264582327802558959147368786580006024234643761109817029189516454261940835595355915374220060958420690360103814334228978869791634715884296411004275179539838453748618513086974193401278880381357460604105850483585479618328002963758199143009443542277498253532073206111143840597335942793608675069626892795342638190198018104238790378041714232826843566820383545254340948656118688106315427063205498810034043783477002446739025255010785898618602154202950450535267482339454399737669255283892909903483685736855264327267884772454280372177923463177470600938778505530572375048210077827301349052121241971863366630685248704673064765823025210783187209264749056672371097302460520700070053876499471630816992480366064517766516459890571735309874197608273642871692282701011801838917250081833490848666066422420220754402993143354421710813577733202630637096984422113975140341253105765032892238438336461752495254952640287917422754619991479091883950116914308212756639607266165175971468908684061613596833398391076277572067363924429040688417654812394900832545021544357202568997311366308840389115786000366342919202058109790361454602575428482032587643326461385527277523370187200830852553721728352568016098982715348976222914811294197533882820396731593536875044045859654583573736616098923160169251403608448006978087613527447983628298661307504663859203768633444563316302814077899021918269222621229267986487576997718490812473951886382164557592780508121376092180802867121314171542612332700905016750407947727862067392903454397462458087259489246538621245086584977144263996957503500732832338910067801916265788073096532119325269026630491227921148954264926175614411423414736570337686622067100479708635619315496368679511448939494316874714161288080470677414092133770336280178356229635440157192653862540785957379006036205580748117842813094025570861540459473631107451380106445258655908801611728550198355869567036660477405819113334571508290207857708097285997758876418178985663363397413861212734151069535824749487622402836793717989093687213654007973546238913195166768555364221625991399686730507638848219245219396134522408511871478732628919931877818470343563097435412881135330836734024029963632900640720650883796062608568264375742803554970842293141195280507253649595962398685375149191154469352207384787142782607126960506536488555593899916354150568882585272697909021180253999246091654068772152484579947940733294265012734192226209497260740360199936220200248860413586562508949991987150515341383115822325203105573458673983828000877374734425070667901231436871667506495894040316238425234211383921137315086321890701213538426684767036649778287627504669227928859517738519665873084256922441787801843731685755582637676964587252971340838453286501109000982036059644580250725584494572849754909695267546055729780680764442725957879635547456663764560870660791448732967142716021363667066418053373613430487364170402091107800139864795732313791049897136766552805254921111336280596109100493848475936925695325642715073267188072710600594702210698455550498852083245103455400902947066407740501353551640641882809657404254910298801102829167502968346474316432068283739941247472092006477942821060976997999126429586536849247288563802864320073682774405946025996938724175166260335967487380363809171988133600720478558057851807256280819358419892275256185210348855993598886950421364174215763735412564489007972197165912344815836110371169710340695653446067601311156308036239088763452222683404653547625192037148969570562077510987040262848659436210560943208380396847593429371476530179693294981073887627079324773534510262838633494336191009488503721567039665394957220751210320643034625346294926817918715698231732025088716086406852897082812061552169492060797247669923606609776868744527173097909348662128601555931767193850891987571464393250860572616364168077562611113965003894561596110529896969484584120233403320975115274650681603862839849524878119149931217639125529977721581003048822387359923460079643867021051345477580372325679397783828043147392825328689447866408191787382136256534721968325867496219688158890525662476535771561662834441778067358480349478267590845701731965104226915611423629098531738483849584924363571893048384804203419884982919968001096939814396180154894743370765561657686578443527250680473694805395572827923461574429624428323176039638566413312658710332761222746294732625102867088725502422973264071943060346145880584951318347839023024814385477603771701409804236933161104675751139883903595470507209766624936229143550394987812196551139007237022718505101836148805361461227081688159008082495284806042809450269979918847655830429951808613122931161038144684071232772015009886692964786305896244973444225285172599739419722926854604226406120243220274599526974857519839034589823230715867233551954273961777537008212554360809995998590557946593619017025906735402620392538376450793044467330965716446731290218825121354583665800038929630235724326504688439659970731789740807404840756282907234864972784387433371545874730211807231350845956944239667165888642962331956436376187312051871675392694422681241498143913079307465744275495928883924107633667728467041968809289619022907475454738132240058969088019971940452937590230264795927742182184077457288018672564182105007528190841887478291126036916380191233732721082769313737549431480596336945386304927960362169241742306088021761351305422765116555251761898236958679974611068636582782560984164729909965412203019617558650820859188635866785840047694331274302401242396303557625780483539332994246789115402816207859084324453013071587989284513464010232344548722297356867230126195140111027995746187374542961590476259327918026923942647213095515340945350813093091537270065307381285780311708194271581884363094745214250265367611043152291517504220385709677362908207143544619519572409526307308738296558162366138334289787265718011498851133000450847769647183899058698893660119099632163939565301279636263600893099975584695552335978681979779803584647693339097136216860251307611947044992202288837062857312350891552367783950778094738028902344285882858747612998964369947849186109571250686697421641329299147174422088175940876041886460062699944751007849974900764022892837504194220299697378060705472892362157525899403593627445696566435702491722749562648473948905788907491623070344688644217079004612045056188278800519392842819256992860381221236014618993125186882674764278823525126660154946221340296546214943876948894810336596489410981697080065521196199891617712872281600635618394379962723632604805426388379528265669436063847674357810757242365818310047955725796948193400377338826984713045758205775829226906105615009260035721345933026564060293253337553740594723567545130103256205743244708102879515753245092851460398002770429450459441834067948965141000511329427691141212250916516712921628339570458971234158363212084044129528886622220475907435787597051155126233919521858715200180652564031141549387844964350255851395201404832058175305857849231126241263286368901034653177900879005281915024945961697830435862656052821486294887546169824877774432338340294952710712667548499546739682999058078846306096766183646399515243941796420356524257927948378748978593165957769869303009391015548720696729685805367283842804887714003431538107420531170047421839006467747685345144189544641141446793519649157007581219357215979833263150703291673527342391027913782386603611351899076811121567960193837065337283703166859875358059290149098551224223120743000893162656797893519196901387236300595549564272688890403043808611953249887754864888592385413225888480977455738068362049271315112691128565934825071332613416572425215279924009647196843807676654641962821545077417979898608279452440808325973910286238011528879465787174087305493261746112810382630266429261088815169435595291110890052740304672302548415627640891714669278026811243308059274764818832324447215775338344474833031382856570401355883589190830768978493880381051240778227227791327725469576675116618017777507497112198724434635119438097477980640219089815481919490958770474595747175486382607425580491556461901723590646792778912629276785784400894132140295399212306648274220058987243456051232586746038622590093670545697327938557515255862105555524341543164237513648189007798151015922349327890574458621232495355133109601226250861555512731614018387565840352980558833704631694977096992528666868019079014581405070540947506713114914229070690502154371550523932515665805923178731116510910520695516033933019486912659238139116484698798512055307513920120135546533482503828893542602072985945660199933500368918412602747059368039392974668534804629155833817879522422819256000479651274778377047179631721656624002975026083394573570523177567934569971858875233771970310928225775899138274248639346731602517669465271688969204364523274909889464955601571379515573808921019062503038919098088657691907166727507722563323286207460330840122020116606094456731841991971678397861421396817903047371658620531012827389525514881311404874282501674974186471710752199299571375361187411791627209600762831328597360999229008246869177489336147878384018993015728777365186348802286165118095636345957945976975198877496301628427640079112591295548054980355335792197608951555286709410401251669275978361812640089235684541768028665978683352622458668672488619919986405720410569282719635979314403848570652488874281077979177227776935758530546751779571686836227111593983616537462744063948565952593619884599625528924797562503454928931799809025485344764623699996846743782804711036376635447795561084240279884474087871097015164058509995751804973407425028053147875468582436571846262892651802975980601405246837634787988709403125859455454108818031247434872387669516808708929620781993783599656473383129209704270361013087227505246925777562760003447984821906718175983533544850361576329451063076459879322718792417145300391657945422656209914559068443257262415976730370619390443385067373844839823650485304983469272783774295338341592310692450032423768186891653896921873273938243383677660098872193822798960382144780236658206796307581619093786277171444540005729972723623488506222877975926629688273051058365515376911089925220460572916531688482742259993974943128925237480543092997198607409976227453798152441062522542618919625854310049154868069526037295747870379385031703297794809315837843536574898485206214538749444533934062150877129349496636038826897182511632785122363347254254705582340539758120975646987445208872147651697119235401219025717681706250893359043427153236695533613209815598117914491403273043328198225350363576493232038234516793685397394588020004254430883985481012920230960139599954079538652702229868237547637129878157827274023664495452846712638520165987529228734506578382721491034987885023248501121020782815206396411466369700118288741159499845854708682443432727626252171304056349536287261600985826798730531307097074268283439707629364114629963873378484284304391586610016241074820127247838064884404144543871518067966657039809505462702482306052772635587444155351389208588323472571328414845738157328532290369816120115333778839626657592857232573042235166801590802261204784635081341836921482518117503873922614937158053911875831619137275848418711381724979042874463357239514049308479627538729816503764697677438039330623264922511883762230414499554326646509316068033655720485179223425197758248878916796785831107642872122759941106095923414938354960577999223107574080294232649518861850538050708362408694154591553647759543746284567793754724138498585857158352796346295635160543588320078728780291754428671275018594081237251568458983276952240734712782612942245894040448885760834638253829067608687097212968236400231148601766678042046295766941991971606288607496525244504988468121371327041223304653382425907537210203024161785858580224830478870867859215987495817578694905687632706048015008426100996836476725029222562681174887814508293505068840712644015449507046639978816449962535511098382230789797581116394994935564960060904417011473976679395467443871018470474491720275465173896930724309249811799785574342613948425096980753012014978570479266648334358537144452484962517662738561325575597383479868747839993535473982797205514995588114248605525312402405055348021668425718603052512588796382514466110198852259226172293590796127324145423605055514270724620748714645060473213551882408560919027313809661538030853974038194815346665651323134840311642555467209529598919287453735826618011100701431700865053534765963705114384305032934367233445359034686866572915468868535292858231218853973769126954385060023561350849706332012390261756209295342587872386954208619541844301011898278288495281918107188181090794526567764288448383867059671392212787681072978598555095292387246527437986440915889752842032623996709914197841695585557176517525616024935231035069007399003134051672552496492245165377885386117163124885408824149660301815814137361725154740834453269208371493620347694846346261937327803153876100323703996072752226223855609856944386180372403996201924570340308445262255508534595793830300587137591482869738357459747124473756136693087669782840906989575340646930896239604307219312601290565162444052368474996573870102449277268513057545930380979389138119194121443775699648769200281075336674885255191526434655009036810766433707111250674619195486817301215574408662270952662365342771485537163549103924143078487273078074640693592583789638700191902597751436010723407860973486816833421034894470407250346623291841749542117770689774570313303796801936930205846990215530875571585487340917633803157011388316620235451009285786832485835812785257241592808163639812341783636149180140159242839626471302956129943249885702373096963811195723722308644887344956998032640049149009724558585750396119079027908633357159759921335576234624405072712333798725005764207394827784046808191358709321431950146561860987364838327258298327643696295701632564280434430439717163353640278708840533453067106814155654117242738122857125552211853897972945741550807691931801903392697523508814181768253544746561243926759177168753669670439352691724458637583101823970115522309487138347674188871148196878427330140201380630613625121491021962474925442961514393450821954932513357549664672231409058598183948093198744866846404881817727958982133992007808446397685522469881673945610250214281452117959106062978757224654963915325832166689853996988824829583733406652248505198652327406100790473047911670168583326993005028962067268614926984726305377505420680260652159386244519356043720084213631699206058185752583454721859013488579279320682408221690218588161492610609846220459360045707759665221569432638267465641480664811590508236498314950195005406375726481835297696713805050732460618643985673066827089106634859604097855288741314541460757115393774725149688258441780824595112559785135562125022949684505546885322450837895393625410827875486577451726910283641752498697375190040909031598849535322530214378325827007747868132675821286585468454440338794748901301635577808921756610769886190713145284580835502222799341390172531767687513244707566962393867610170453948902484553731813667632271779520019737977957683655998559389986268422388199247427421024213626234982017315539889537329973090873144485601579122912109354437525642383798357421534335202164385809978014608880498888835120829197245566144991378407199298786362413127991503965055546930455929031250219288193076598550593756310681208785144972015691319979676728583801350632961329678720817582496152204089277675657235661732878707247445437296365092885277470375625563864938648507435578283035498640176298222575782256409014964693461956695348115848557642631315702212392096329907219751145131522169872388607388357609716358410962146470774043257143123209848348464229636685299065141010193296897812252540371371242342394939544462046777975400753597657191892038027084390920125649217907829450855927780414855684420524263132684936052704835741000485174461847440009637313658902707249084207973076719892297569182685640061829486794729031204099064664565288128531020384278924424001494420405734325950189670980384137108448701747156495022798398263812646499877183549622606238048220356659099344928793773534871205247704542083673546851706994548082286676059160018198229601747225779871919646993117320984054868611972065121643213698159137201491643334921104626055005135460576308082230213384884877696461250381182669404425452433197601159117895658211255028919443364523177455031953501643281018997093724675164023128143645463017382438709952501997094831044483631216527106741744399960242578616830972283596165281844324688849111136491043168521185935301498316836013913818425889800682097015173313679603319224046406533043939203819512117374949584080900842113746516208852268156959256905163105618107903679802808807917864714397046225529133712826835034357860772950740902735307685520379992063385939246176021019867501854209961429022089635537851121756717306779721334321408035374253247190139141743889906959817697235490521186870060797817664513986232769844242589310044045590476885642992388386526283712391351518178808881789530576544437242689235926029216287320660060653122146910968001738816956695035607436701568287409159722168133244927604636711826250480346032052303294590676435040234367947699380466833109495292619634681149339105073748924094093149137748275983426817663822181915136027189382405800762014963379417144861243458535814409421083045378567939842529601579130962600144188559551787989729090608746844714926162983721307311279592279548129734969220018348110419834385911685352244989944991164967700997784553619571599700338946406429595375504941040687273024664826605999278902861541138891122060538235861866955537045381706944913295439070867039978683474692083419413795005150571647803152826888466682309774971979001316801320732465292675255815738771492733730698692105897825876972899532860981247594886469641506773932560951177383101320099556836020156211858580833679917817729225888495847065179046455865967518300584311576191823993876389833070326836545666374676820808983443086231550415098971184928021622640298203397562655617964843897424938260951998215385061425780722139312261945980213045403609878705979667624573050995563029987501926888869283250735631076942927536110905864913106598702433335439504514459930048341601145243569230938430840408297054429024625748411819834243354463016585446031973893028994632763406490941292133773050658484861060752624919246099195426832643925679870112391830825787845728442119007604424901971552308283975420274215791455033692195283103635503434461797709830685914243673334721903336415574407875863035296931036902442843603809586937133734155198356567103542374690440264528665938061566865146083825436203674699316636586045628720448007255857346942985400207631612115227501279695331891081902314216903416458342647220942377150979688720429319525849813570231657662398345062355638862219334374269685052838700848159693018772670200597081217193089467875738052765333207326866188155525946848784065533346439440248683924744975360209615308118493689015532230176454095690873478465380539267276190799833925988911818848914885799291754263410127585136122250084927643241194486989000878401611808114242553025016417467297611930834863009481270142467274323664241188209278697775479771267401148092993337319804689259485948042818725750173097873982650111095155871991483434252729657141852009857717459484589960246016984963132573231888304403214107321012808277208640636121278240490988029654694685811173794152512353737790208764272626682904197283271475637847849903187648955108672915603506638875839932694327443198629467145511451544195738893591976036546814481179358591033283703200151375146941648547384315530317262018934412316714750887196040871562478513771849122151530850090777928529560455474056607268608244610566546219235028181587085824325258775433190878694299361403103516780647211995641682597646870747041925528726330014345845446615365464176866424548078261099810657719031873473626988232022801948379895391952359580250879585788083867141155890830071681475299894661481358150636313553219369509518411833300595251469346154406943857763209522276171175957640755607994017102062999042462870853676820482950499359773712884438710489129898785281476442369262185775110886820032597637294664441808960389689945435539111263360821243827553784662840033401670266889355208547858118292610290563490998578011917445049923305585491033571460217791472264109329749801019071179692950632298268479389248329693279027848390946426125768286052362037580522865736444817772907200395871062258397516524170533743948365832030175809465162783418857788626110834997226686412694481604803526493588243825220343092008188559003690277388152509108921508382994908896295509663468938520561784997275664827525667125973878606062713312993416097321950211883113775413908258495796028250114052679587506758097064922160000492650770443678093162691225798135161315908320167684105684519093025923775233852440106540115692773342594482686701032899139643091699903046224166865714503521263043980567027281989173904679506071190605279605743689223915912502970725263612775226651672261303050603289515407223814437232045327571246349108311392016827177332377770003956196797544666878364538029983266267054604886260231987788676888691208456850749064495953142168161199668825498696742984922219129920484203566473364427329068477557729220057862173368014129174748736881823980281600639612357275635922698189277001862086836398700551238691098606062674184015989883763366116437517705042249576322554000406874734109751892794550398079816533443575760869137189950363663643505240614078247505611181618972594507849505676117322056932221308226930257380760688888262386716612852806261771364058913228647252469540870223324583149701086537551123753669346818719349903847839370771107188362994055111578813145771414688280966555356165649025699911189914930620032323609477621244475181603317736649311168003046569694464042671894277765800920918746154035556352387914920141790669611816840760664991509953106632448799733354054372381563122704096895671335047676136470411977882665429215930602389480052157911822858738201770991110052761149329269315082111713642238852936341543039052152729776217320754004822972132906684082632309244374771700787349125285913202954297613507708918605519025033140022283882198068544240113135702868526060317520896768428204295297494692195262872634217014393608363546739187500667831422196458693756501569266502762421714315027987389518222606825026656779932533584881840633777469461922578739477534331548914817254275769733801994689096439990700474006472344461420280002511416636408494821531289633228977084331731178243181674441535877734536440130429279523540516045538755720418369133512242749290822269473812285628815242172696711019507755874159446952612525575797194440496949262608887610555630034008766902934493901883391772484736939986505947317111750372999699618615949572733763922474285364786460663625879591620131980906758251248938671589645994346434723501697034093274122207656642173595517049564825150162846146719107129807141733707173262276757952059252379746016306810778186768186103656780909842629051778532340097515090244745113901415941302321503865706106293162993101795195593993690805374224799519839622272033972690786108848768404052969222724112217951014987616101184079721550442027143536139608777695478296887645242752762332780237782774899981568656901271206957661387886385898602317923840679187500542957387966417861214532076453923484435130427796750783941140093165155831779134366398409849560800285863933212275627436167248830928529046664267499140213943021102644591554353791601974225830469009509935509173583978863777793088923878570503036638442973894973302257775966888544396916609904854587872528460116407392450433953543511731695083176888411011285135938828772050486808704891062001084684224499653000019784696803794214907654827746448511243210977572713473133433618660843958009961432598141532652022592580785853042054068693277715815232798685416815813813710807725964628728957058694119091117707718918213849898282003514720290616562155898181125296283003656742446857756392516885632520680716975189606037215964738222452441130786963252670867235791979718591007779598773629639973380366777834860229406347257162955243091555628005647082904126810911280037101514599096819627342330245917263427032028897823783624187765042539371980572670558710237775881850637376908462663245784124235432314188656051798174589938106350573614609717766197827891303675019223493935004316736781862894217947965245894945769160498480238250539057349495978344154962724410320064112920757845516460744002070489661065094965136933272790342033792466209198020647264669151003785826260440493277373546950365724898398613861433450568935472921958849977657257989970824563723365317739306192057703154388745439880385016031355101898169723480898298587232181819889943544308685828464455094064948412753392170669473903282823777349124463140167761603622135696811076027763959726885623868671440886086261949858305369601288196214755177900510102137041612429798846149899930053816406573514270211613800989426141716927790731462556376328024090697738065440032114369802371491700592815052835112488738101533279407560099396773394857201811663817309591433982227180844413346881602751504533101224752029092965437947826386778947841552173022301543643063184647331476337317061018506243275712966519949160751796566964231851095527646654408777317922281678293508057334474164877222494421919477004831239266428889410449133459259646714659047116803431043932667710672880559450052417003914521880951378039103493034145619346655632996421159578128496937867545300471895516553584820650532521194638165460956977969771341399317141004639316273624756707079016487872932120766601226234755752573980723276402628629990880698241827141249972895238969123302584535937451126575459793768663508239440168787878109822187260458386167653774011608084938672472493968674148821418068458088210574795306539540223489926658569768684391823620536708241914068447906641140902374248060488465843896154924668941039904561905699637602108833850323978196091809160484807422277603796966288824848496276687999262777844367847246127584347188211449850758302062972727130322503860065306728737902777124580657540205794762690619723952137818682308213024687017854376308593120700657347955468331966065815767996532975177549132102105288628398243699881344265324487126922495398027570639603946338023553681194067252570142076907966006012985581797064265726232310374715046945528421513342075993720114146692567455845062300354070386254591918440661310532728400043293134930812951872220150890252683438225257004780399027810066430636891595384563548501673806735937126997226545176361344574109988044725388713168407719779781803540938555506621170956028961905351899660082976161919170794375853497676015847693224346775536427938073944470934979090741448637813110408153938287418036799759175827409756606015166891475875147038759322923522063860122565341736315128515784316688964105409851377501018233105451414056374259190488568168234540120653420863820239434920622954966995343265297576178082420096701386852747330475694220679094415546110422092308432822209859720481957032908462091793773511272458536565129743814283050185384977674637978620753481067111763081300965942769875865136223922531660906496097623659659337541412454969381865091733490243791870839299119751889343392013458467711810962235730753396167469697174516869631035429998093182145411370109190309506481260712552359578561183012458233106052719729846191841028321657878895694984448649784653549682005948706085214810170711378502788472832186688229532882883257920835219822232659437353130884491027992052871312999636833862629618019120431268823781707559370076578563914896960061367063012903219841886147148611376036359644313321701261819419238322035119277638614332092995371941939380872837741176207170828582295927244827725582464998661278098131232188099932869880924642901335372893270411494205851736553575069112147899147001092567837274354824713778122975230323959334199318445170401583209292560246267239748680717053441218021482963077154011364475938731634982969701426264097739281103112282577938277145745902636662124490625014495906845128230528378147202761249489129904109030796655205655184312142825965922026812305444087939344910145880394862272626377374807063804295074756490499979057391387531302961366331773135071817304363329415908712944116815447552136182990721023681447507596701939530950976625401538781467474285909718088872144452270147265297462358615771670549936114704308000157212033098688573342512818995589305348489203311921911346104175199615333188943381529026908044099392388951489382055282141831777012212463271328350137972317683594519991773775630036805835019289515862931497287128350825116381666507907533826078249284048133491988704406953414779689087018043853216852672758644979038930551988456200382429023745719576139218539833497542052121661242921428760699293481230970990668923781414538039597721240029566044955289449405566213135662610234478915263506204377725990564800791222285208540797448375629440813407810900906393231561181677449375509436090618083656899970401440852024749977373901550030577167844516606083961549473665582776392939971071487480194801518933143597688343468025407940460026458789304697600918978179497552355285707108148634350658557243392787171816870568382920123723465349320831348232676400530410618515534740859813366367336807362742050624038631053027999486685592780215390023839749671172950809662271163480668039810935248725670307201308822335084954788996863451942364136202597169364975898248606978669749011777983557710067919906911627199591877925234739485593420597166386745856732674096875272118453446027709166036481424069767143790833494811796629015039051535650396798692761862768281713953476012759232323881726331396418720854043641996651201850479505128883241708427285439019187041728972416190591494219593612656480696822522761898653445326672939994192633095625087160651557106005417150663023431484559714296316479022821072984267441309477199200632172991993344505200236545345387505866616361912351137092689865037240665441916419658281019986701628810160958738160511938548136796072037621877284567972836479241441476466494943035608802775385922847315637290112855887360438151205370147529834742152199016710905439090061841502486554036431876603195749824598713288776016935137599496677130805991152342781603007894304029048010519999116098867143786681709973994180906495777379270308210551892088531072329191739526191344231422508031322190310922609401191653364673019738895346821265723411177245658443365174069511613943131067695897516948690733703523150370322683001183791414024171705444123363500518057608480600231319487491664808033955349807340086552197067906765849263561503890566036519543924146962004820784662617816777106967101633416541404578514141768578151829112165491248219047812960834844401270500811983633493426580201521704904429192595201456270974922409412285506007815518097259952358888258969603698412312972227597673343098471817008802619904251104543988252891924424335634189357587249034363922362655973010160613145471301809631182006799312418108512561481128295607327102946488115697274028206560682806926683577843473376718677868853332506579886586093509361775205726717315046600563736116948766714880592893803023045377484519329250426218110570618054618421278756065273176224092466035682797538957369208788573388109808743965177886512987653430488470047024194848728742133717347256308289658510269902288706394023271924277453610887892243650957777485413929503764178733327483382738918038295798616990505462387802662075189822251834625667713846383832767106982988789572606844974869840822036200647036229443349986309804827207134227539154157401316508890592206724403537332132247542830287824073919870851065136850526940780409035396639889849039047621868163417993847906453736246231629497168626376221487324192551099042294655594922369839107951019743286742789536164912429916338847814242882056998023588073097982224451930397462168620054194829092079412170705669940936397312442099399906483271533057153010500300234699271526509398394755217088276316466431834460424031132596871701256056901320413938197523493703743964761226001698914823733372094313454053289947273666680763791212183846105147294065868059825205327878181143493780437603092898697558854670617185437847150868533442360481302517748262995146169856871268568423837036552756986825821594271040742152518114912735203790594426727324446595760977390417064548293042098614205678127704691641746335780703658151547298862858859506667956310923589486484031577487817376481073003504678711553267193599061899979288981574860021470941104037039262134916528248218759036516407266727903039812351478500518392448877668430866440342713653079741011817496247949072832219346702711747576053881464121992781063250948003472455785355129444614428527427952260678767299381885633034544669213601957865587148585854967624642422052668525302001834495008525234537591070046666680231865339097422894154418622850215593562286131565465241972857502464990863220758485331613178451428404161584513636398044936345227404543409982817481558985633149647902286937967034156689449579608327525422180504166546708729119270156480200794009520896286789202637442134387435295654381076758046404647802289707447551126336054000672208915495992218650602849605153267214153748355019584373355748834648229338870413490529761759601329218775179914704627096479259785384398007096653623843024694130613862514195007568220260905883186034588897135448271439074694600547201436510834431811738074834201185289658650398868484646707547257313150863571671366941828230948612715067506417221625375400812995772520418217868391603825509004527491078862590198118857993606522257986486237609621808799180846097169693252952715751287389468149604642567198604118918491378019497699066420082184201792530540602602570922080640150467862511021257794164906367712795180913036966273735048436064189511525611552651264109392267102115254426884342752982208966343073958810329023330218530410793421491287918140444278301275546553219057517235154475889035087285772494108151294503682831944444488605079778455369131262343124418629215148344295608509735411578719091964984443222651579734007639853315625172073996669752767118730950075862115235197457040676358705607910925088493418779216704660635120664726385206390858649527591583039823052547513341768322418774639980139615386835125369966221554402993120342383302166475073841899907056110081883783412644648509756398081256914767712248117108782914454942546943024423522667574948366268177363222966253922578490954659232251792687359153423749069258504697434486091419033709870268185806923660709831366989829573323444780470874598370743928507983649661234238826689225861633692443410493444743350129633368271234428838642187227362168394349587733948322562374836595577513022290180464558920909102196463875458113581290919067815199250474001328898587835962229420546927967893360204388175287113169269809973724942808701302539899161006483283892046189356508123753953493201360429033794264528735757912145913115323579386479829269259707141799146718507758707901084264520046456259233438767624498674006866857844339934979072393732123266883310599432077008166241484106796475841547681406911477698071984878137023336783088788792450828520435835878976046924345929418201347393127214425950519575935480460418024802026029352406822366197556071220957615675549296149625535754440859502573521475551801403013954185099071605973013725276570449664723999927145340045755956703012149561540798880095431443325782680294900105433053734993118986797577062371754909909901233490621476490918487584245332782964050059500815906547149246013787112648540180458012777524215211898829256148211632824026059369426973631040380967530360727940168219969364301450015100844526069831299485512912820025547765046865451102636675623686561357254991810256726438731058092077738824769343750648248669798005408698093160326232132258689834269653180471911256531074774928136846227271782365912110482442582735503229408745622861654142497987221522691307227568869995298771613025537401240518611251157028802525408004792268941738684184879446029554435583588569386636027211229394212360552106900052529609619588376305094669785830774354220363192751637856998953501869344347935585377656355528914065519586466135881491692735327465512297067274068368305914464070617432192525565612103945432661519587578431879892140443935120024487655538423152465183901320248886237616754301142805736073352942908693859961524214504868160209017453960778670455097608124582053684464397822352021105035638052974655281137311991809882937036788597098521101037245546157228686835988829868650054449408125812737769888398748988994081088715123097718775379259742005587942653674544357996629421628183340604716972861053446860089582905823478735885006834040207738767340658602882062507995129310085115833610403652652155301928418022741777256058595967871378106957025759428285647807474689209051160065565075369214824607775759026348953745727584777967403860198878087171640916126572558422204319193626637770630510225323238922336479580755211996587031393974648561687190676076232647083770254017739797522941403101865000384498065685111065889138482612097958917339238399685222917192565824873848397093480518605681280736031572792444532938130318268434634778677510690624153685074302313607784239986842288626026600728086581398698747832566361480290082812381836740466809628178962530118900080165739487491765155807102636710953063623196056377717350699823710917465737168144554124228786048181092413238994253424043043448484018290341004796622448997046537039987991551469881087880038366403683730336369382173992586600765772169934845639328829199036200628541693903440530110618086203657556546266277308086810822038823077282074135322887297476771014526237373001104477140794707052024370610030235334197017156001427060921359429672609196152818130457190411250905573886016709968250835874121517800530284645445856265313355277838929911596431799403189417681149221974184512147141599409699625247144350052785169776787426246695827772198379146554415917035117972860753122785963069238819336821259675797833716803973109745856036977444047778409929288666490570472537166818965534828311996278124573818320566395603342883568012669809454158197786807459254390548284482694299532210081419589450373516361514072597102194571983933180926657956709266356851019239016559633719703283264698731833943293116942055954050692873340090898641980122696286359989179113218409313366159007255930258569114823055489233911137909887775674053329939871001125060693250744723403474647388025248841303817634709011401838825693331938170245423045278144436255768113765059788552904605578198084374188460131261200967099753714533101520303033060814209399345524498697774530927355950785040188989478733329391640535331837681045501969425142350289372222509128323245756938452995909653420145166854159403559232221734942474142788958613151327746038192246799142020026367206734293851667766738961266410062715497549734252435188472600744953792672790673101405529385397550138578771807608134510839711144886734403439046822498430818181600332967139546153495046981045973480923586145264984562033756401107975342225455285688545365083018694982178259714959806682501955636017217745203556844787620904870478331718899655823513913848391498072367469437096242338244162017851405852780458559397237257150697677707556765370687908942123331226352501131503834489180184299274164008656676050607025948045129987655045103965324070499364311874906177967840027414576217047691440017863855166996841158570728552887330062014777707962455378364357586164862973879079751051265434060304733885863377514518046017215488162807491954737314902633465272370266345818137473495494413231020866668556661340332461246394108639926603633057742790090312167962514021086136971652058147296231089999423070198296482936815722644350584826499799973787761034149301569147435857975036156537360922022687377470269563926684275053769557506677597283038091172282529936303663538160519984552723568896972439905991250656787969534005168035908409249693234936999229914139431316949118356985606898119414981719046290412841129043524014051274575172719186343280019894534074994326793402582578072722784656501779753905870260467625253152958320918335972444049409061260722559692461611123590048264485613600298953729691871162971682109318094202849183353725492699371436856731867141151712650474288357556237362009176095104120520749666023928889291845797621396928502358473175904068445979129414301817613119580598261358760253090565901072511576621290365644083654143306998586736831416182296114243592373543693523557346146039426357731082756651582017630689950483093129697047084442485459664642553313216892951101525880468892230482114612071068756085539176119037326219657189678107304108165084722100826943678677698293342819932492527069112472741006140342223904545634218418737084481778306552593237876819795877971451647883378429674921521374625385708153152011705080193076456209088686124796702016002180759598925479355509938472059036995383683328868433066702300339434808735860419771972064678269039379885141079743418867459652083610024794594324923504718472441815261313692956699776647772275124862645659224530560716171278605495741269948738842296124451567445239534762362179773681626445250729752256846588097554155407364545737268543526785481070733993745862755282647629210131499261987702162591512074003316138373442746954864561322145191610734531408038892865424418209768286158942881439070141709948339027175398770151009232662038048316658033105118792586983534627040314831790174461656149350073652539276685891614217878388450293847698742018777386287639183838335340970556499937341882389257550511132647913184887296845356156068912180036343409729854257627359708609356175722097902282911823580350301650797021727449188693580536769466701355477774310530856878925623827371942477986836497228901516544516946398403063951551059056488935880543154636413981449196831011591065825078725208190688951740218439554929337761666189704545760297002981152483442961931237047480855407567955177485630362537830854635979661660100699543491896776549186197238206717959614230858671141865895741777415792771965545523832344233551670463373516061067288024071669883459593809060170428737678791212785590456092433941686727054610439676364281015986036733911100652564454122184336529358788159480042410935117753349275045171633911192394347109409553033257372935591850601468120823603513660691030458953877279176237421194194922999232952820193151394606875151398306196516247567344530374784770437504699419967541908297684998355549532420885121794635064051646203730810913586106002031282923440885717723919537311088827200960029475545639740886214237766366151309113129846967544325590674466361090828272838137035491715044423227538675782282575795935461929206309358337502565219672522275530646282855811194543818337137712347692258742619864772937997006443949839166776471994275244592162132146410237705251915845329252427061420330913562639196367779576745066913724838507039762316153379191570288392604460191127649450158617332289767081433709140530368910581588579154814598748272908308477888889271876777884691307439604569158054406575695384286343286359273271869635749258077295880176058901572766064821544749321007476952589694896224909681551696876863843201296784248775749952243723094048495676812121425511870552868065656421122430428489262065959531026334552514315607228790093933956552159069877891831722693848013954540938604085249494438332733086842534901314740067338093640626363238476012112726547108285726840150293739783228495510104352859285029191402675831690608868612281794219782655626329363943616713236374875403164279679145417327502284799218543016160501613513831184480422504147266755974796824658703028953009150306421234865011842146124409626369930865732888553159171275466464737294904993608167239820051404993594463958225761211624382638267048027878047436556709573829802232532103829679445154188182384203613035167550124570422635158807371553501802066538879821275668505396226303685035698382996606778405423742399846955617431040514472860716004847432723021721258834070528069459831028645907533653088985025542338730678036751780118466539305840674672651828071254499435173057471205468439934268844283244877823599591218083775644495644599944265110513805667596871193016546858674931407630196551109305921601983732878417489243485137217798617802720092309842294049624189276694082805550349247939466821820402400515370702033770170727903032355363867836648422788890291895840670789281795289471829432524964445326973566020473267216913382307243231618473464574033239159174968669737798078270404065603797265815002067598397052860084677078952258222680762553372223818703427982977938118480296563333495368854538514372532805288722233814047488793027184733336057244190845930419252037924940010569067409003387497057758151100412505375980323810046723042273272067010159800211864807546769602738062943005368831962757178509709821214984572607131887019174553754811771638001267139280460518173588350889320084440803128298670156447309273198653649661680710373127819132108679314311336333924532742743999853088036523167122620814144166071437241012172161980868603949019097688698766415589201039068960555570699992898584204829758592730474759430886113258173602661916730535906735204165952255250573014315726665457550591394765669752188086307034561136766332194292508344868554237442308247644054146281766171224397607114899413979236752056792487483976880748992862720623259622689467392248384631748899409061772638575076624420757394325788776093311870249570013525424493433187513814322203974641356227877803986540615555798452660747677317145885808702780225804101753677790657450953674943532996294443864146870715537649901382879778366326139781387146161739877764036731193191719246416746851626359453348457726096757627781589585994009073011009943691846300623207199529617509435770281594162208288859548760063929880080093979149352066012533377992874223793825068338098141680806570697639855327711598629754706503003103218193912316266204075679800124325744638048332866211843900689258443658245729310777182730783572127100739632527287963088247208713915905061331626729418587275029252153782266340393077015157192984693305817115689165052909069464229892614698351598378969841809287735458819232346111256688190722474508497793069496192836439123501404386259810589633306467589823573703460608563387165924374029238480962936937766387561852451223854634513175345811062490574837621325014394066682228119016388323665105660296979453012352600022390460753421799308113197896213857667055976699382237237435659613294114962263473872777892549167454242097059839594709125126496846954052782779340771659798155834707804872812180780951831832098051207526867464647751547036384372921408771097520559209320751048644637754518317195595849045892735344015016609559495390266034160041831558616657751552449601908972396457595236807954535902545581090505361066636378991835576707183097191739082665164765671690320451322154342877313329512298498255327996260665684706031717566234791379060531484742718716768456147610845660084015413557476926343805890232981817247681182361483551438541614845358102797318044185445232447955531057405716746288048670111258464969798541624400048188386041954266205178823576463591316589383573095002636231459222360593915919972233116107705068542947034709254844718364847111941686069466493047584390142593099887479199991513564041362193724881175061017330665056160056740300415255509758674646931020161473097899146592022099808414882231142451669927387974719945392009029164119383646329313203308658702931011008236033936185624194433132997005260145651151534295143406298596104526026025892163109657958712746967903754296095713889573280683801862148338400990265485255848250222839731328672695687789024353512699725455180823866388919901270043231701029008335704493593324650570815352038455800544693691411220079826781729251473767582549002737499497802983353654575055472404362742208773312870805068122396810994263434275009652253996122683673614161499616849313353905658456346649961140984127443264156487668767338994410118930646774697397780325957277008765995391012982006368144259993673629191426582966544541654049328612066739831825810686887084309203486422710641031885254144067774023736230045572405085092790869120708387427898802461742161030435180362250030830555858453571531966258436386240273644705798297627398591780366730426121785828756639474286705086158724701331845075074572542868450912709044639402296792819733430565234910193578880442671001376122762977901596634367290642422307249498243132809020844863137256106101099859488230064217242571364278045970459579088898047447897858410671515008844066169403031475616316942471196560097686311238201596493624659842437275010938398455886039208134248348867044684561032096430531014900600373986479798082807453058414797599465230201748540629026883077937314435980944219943301465111992868181110518008440583159723118427754190220405520536162747380365252436582006459862857969358505926394191381363721684684294616571106825501567197323986295335394702500560519169743195281513723535403468793726645275424909120019456297165924675034006335753318400605517970237768864494339145778418619936266908429482649041049034037942352332238066626149700141260343772384475039802814857137585224620739051347932912559803572998611634969615525758921459872791913362332337961524561280006777149696459190741065429936313461942476455535711517876935991408955460778944712049227433508776481705508557042868270867228015063461554235700429897534157333515299196156868636497329253873833277754624689214492825086457174573647450242131470716214530397496441403850956319116158576292179733478778239604823396980189268553521869900220632047742217099410809312660428277775955970798331346512605743727782828509357391919221250993284061397270687633290781513850295659504075361024369589886256602223832679907082247271651631941164152465533824239974641559856972722511547102844479437909178215941461703448082183495072792815582493368923334809711290793180095021779507894471826076906208342520058419401764020424931478791904849586157348190284569200887287324873337935202125139671067612018507716030046343613272599657684630725335671146497728890986731051702871538334230851036572618024447181041075836117856338128487490541598024444737289432103260117369284186496267569269199637776000401131893397442906749916129449524292431395064574634049822877041099561013507473867220918629753291337542418382154016123148088732400679051834947803620421991451561049210684554870784997598197261199069523252244010418609271363547446803622238506047972939543226252815204656334055962736389151003197236856553073247028427598215875100938326372604321406067348768122719820327136212358337459285963795875896372050674192421892671202787759067155781414540465222847204974072512885904958110584121034642941678315850499847388156757767302659583455058141584165426401013423977421325079148278427379892905057781543628390951894903575548149548781074365757722364344957901990680927776858881588182091279127213866812457657110485335041061354679837712502782472162740547897084681806133924973803900987486165883387472582568929664236372085952724323223303980153184987996731614428282355979040484280185771303772815041873870228378059832935079989977927532668200280827274353169822092998894208855103368692597501240873009176309565140586841462220688769885503334117832462316820964679965672218339238003999644635052554043659835713879777377405423169857480069447722755854930294326077386272084557383276630796384524009037394371737829726974629418550738941846332405272284446516467973580706498326670710253239496830530332119914809990425526540085128361366366114534578098001866817749689438311350637162022628796924583836753805481830481217989931717312704900661773547841556287778675866059791188398950579543539757641367341400403797258392209377827273944864667890772767310529876402581833091213640277523360211094584628970613361358321167040420452368105826326255445666723097824553134240655847997904757927014368153476804189353682557579139391416980794625988059288704408110975537281470122750998354702611400519621413222616921644160978176643406203867487510030866738913317441940367729699587825079677633629474274271955819309365391227443685467297986192756301151819060471988467704531812982402280208311693572717598084915641262005919885372167745896009176574206937280178610202943348001919015312710189562731721987828013451988872414346219441234062122563168687034746748634427695113878190028747405545790847243066110673972704848960659485618781340957688301388999643476827849867655343548288032012566503563130472301204049785262969388333599519320625352929908981426966275977687310534880890622588841089051970182264019190656179905072100382422675790161927147194465093999542767609354523425992368955810923077703903484481812073792506966263727400389930646780102048227851290987320539994453073391870472491905516303406009547901193657484407417775263712579444155817476899272694099324537690944547715640790055843389448038808990210116461286073249881878217590400293044718684732812023366460869985886194437658452381580999404767393537681255448106988688571340357922072812689807672311457841095098730952194377227087110561812535529216153525583063598706847492773652820134366924678280328079024792244780343809059856447579416242155971356540330591949137794157962264817982415516685069241365043567777451948948291018593751374156802623179117120309819482106746309539499926468256324055470921181884638994483728706272507940157502911027518330783744195682028746626386980979755396159007159065600450247738323849666091136271936888589978927181069039768066323427330513612052429654527968553940640281402046909058139858048724301648566831094046388817212760292141600351115731073433422579330332830193637144521172808879132110179298618752810553834740174312597629455305479526759015285578388762424317824865802665368112764334721101337355136303834146861516083449404316413825893554052101247389238684380245916310255049089369248926080054861220264872155217854380192845359958979661745660066460272012524335097940812257814261553248509921513814938211670869692530477045961179235252614869548499695276555547921863269544755752342957240848412168063934084489270325249563227365360684192660594897082347794441010356590669849833552534032074685080672486642068369205164622953792863526840803129559921557376257547507669905352570790583034233942893159173939859980243287355298302602941346778516772284548245596278999925496263397194626556445578042085185184842563923299579238898160621974091538309586154541055169552125794639150159253056446198970004283202271060557894677479490999038310546851760381588027968129247626305042191698011866686481275889483574290590038072126730256997957717354618051407083112851838824103946828706753584844994579999281019486226363987681040543555568640481472314794239240952327248075956403085458764080370565794085356872175741673372266493041861791497637207260220886691812808105035919816484797291960590079609487405973662469107121839151429242436782561387065153891433910376236091405171252911732904287000128578605240094883914202852230396919293352170730109508989028819634908329364263420634266628315612092446776028184051705700435414438852632008062463863694927203803439584956769848321034685004239564494330676605305265406679729535091562475496856863390555162133020964824478049060647894579609190846661612747440363817170452132769172414588787561856806971224564520839740148772945124706987278106282874928090111303496832429004087364816865818228153331094227189768443703629894216070193056379254230630221907094140605271274237238788704839822629166329947909297644467236672690291381191694414498332015980141072067185893549295165911408161059421715709232357625248684595312121616112125388718011294297765988201240549213927416361390496265757041729255716304149442481764047235208050800688379500234139650365105815752052569373700797930939003614760181734075685292707488702867300804052867475302101537741115579761334885358280354196381710513273733301228393675211560394327680536511064806956146314720471316469325166242936061904260110024515220658782966540265602471201264276143573939187734698230269016251773448773388455204585114910752810087725232479201369437368564486598525147641595786055844205226258916066274369719752121982584639966558624870444526778000437563956803899162079740252961352160570601077910709104465107452475076921747832900854369810010772022786760460304614709413389516570331201787010180933633434490207319770634619114556285746571066899756050093259497826381528612344436843899647183973187937161101249054610740006169241818111105443848357299696683900725211449467715962585101442110351488615913211585716909770432562994590812009154396930388239585320129827151867075386409506543543558713988420858041725868256848062420129688863078025117808353855223320470475338254466025081485537033516594981973574343112967066005085060181592482628243060871634493901575054691854296203338121558000251778363588924518103914098594523965984943750792373815122736274742877511987780479097843562399696889413924207313214898229807383572361041903378152566125689773022819200193100745680640771456967798658064784292973790433898367770125206861568100590649719696458369359822295656056698786827138691894686531673198820200624572379801018422433535482884827183053672876201889884045743217305942517386476669636742645125876195863647457399126277919366956168501087598874691429140350508766287230737804868687039216093028034604604764453459706644446250335530791592281816962096969672507013049304133057182372306971731639183558629892838048188588567527136551232587800611175595946971014827808501688020301572821769690961719489696760398556109481372504918810316245487191554574783890024530432891358698369085570912005977398929525541649529012572896469985508555034532066949587044085505721703155722625927330634173622016368356664126396132551277743722657953063156423585624225550779864330505014853497926420463131139623921252211050707599597505358078703171561257573058044263769238369180727620858891410834838811041152321301945841244651091410679484371832166291953964560377877598002668669133080618960592823827956196644821878498167841146054976267665625065061565689146655063850507959122348237185049533906869478763800046728245877690327543805702691173711434824434013694578717881472408517647616715751939643147369699328835932147782991370542742526119573105015235943441441136113160449418444474500573053835128559688347309361561089748882362432313035840618574375431233596731667528592524744220144077365194978780634285012290823810712982811196556169900125921137565483932933470022994832981679990399878042231195808349366130861805155152267228078181861352624247938033569059450219575521137261362356251525426032703249743267979979578236131910561703210770354108923776146614682151710478903773230456104354164143347592701162959484278014535498931552605717124508704217930582653638516365438841580599213121280117411535905942566080810322512699444327573035883068036988690244441047248362247524719608152545539322750383774002278040222017300114182061402829773716804501371582933978626890416361263880805816197713318444716114325456499940327484586532165957840805239845047463995643029983785514950247700545558226980339537648782605156646088026307825024664608094449780310425807978698238993553190847580854920748605907579223177699792312186157236736916324004191882425208017377920565871892252858773869528320747674406809689624420306030188926397210362707769876980450705081651723824511754007756859006882245008025876555587071422411105513526740675323598135775081875439346419125781923868818896374086809325327570988956058194413555933621185481493517930258727421981254322988819796998778243577116646015068926456435912841505919135261724066410159324861363792068671831001764291942752633730758309926360805904390048768033097049768255072449596523806376988150553310722853296426159065730043642284855065202127583370710411143804444941093821512887219304407493052866173911851352770576602953743715758459338764193288245251050193640929001649945578138562352457068156513699848791395470661931761495871762274808119769690001910698052614553397633407323819382705876957892399825121234145834046868800845975957529775190332367501417259938111627750455181116385198742537943680349944824836098932574318302607606784696127430620503148407445870482232483664913031141169561608212161614340645753847191484856591554455485558213035261418864693358614373119567553408429270698591338316650392256486160838963832998885907052703754507314511731999603745027299312792409001800293548059400892561658278119360698404130654451464941707409973628539347212010417142088507727550425640731996164155871615107043105398741403584571280941023987984352205609604521556768180059596511486713020852948914961054455993588849097317300284709768609602574910511367088859715332905313556385696281470673799837856737448138288390174158323273614288566119019161158408351795549967701105041036246999143936270691353805990358533655717510952442160941813281067694800900679923691581426074615787119009698406267783486802749294076336295423327515100568223113955702082621683942693021944546596785607288908108958814057315923507594561083947607732732712665158977605022970819831418749222312981808871110710586357389844709790174479058691320011172896882805380261584208491437247507331875601069968964029588340826226464939697572546632494886223304412572379901941685074789636430335135807598837214035713292391993138417093276507622945278203426139415852682456431793355759322465856308535105755278888284433355650558940447487947346686124954036253204045928377606470570807416455999661013038111491556745392745967726999892732667316777867292879529847611476588307463846279823080081279730186792769270900548033831394125435648863926384866945991229232066028875500509030964157878633676363896747371074404077107448661830483662048007137090563410690939575609405409047069875521875028668474274868373254579160288247225332823357387837178085684280015299697017721088974067044342939691201677050420822201366930804243710632547306625877554335726306758418795369310880885102221075876050192757156004517243634456117133471055681019572664205174142898349415693846962692212990702470128429328831821217342303613081423952819778831725643547962274284969265499353225355407456048380114698447295836569256315855317107584699332529445561771594294479116993313319517944799731902006010754795027153801413282766690756223041308598533513998917257747683434588087266481186405316728948576473848723939881117212212984471607675864625313075647047189391882999425349664159381230047324473131934045952637559708149859281542985787260744008722511426298983964849776217392173093717399005472066413201973862975083922935328501784103456479776424236529994400661954221648365018580253566193303399360628093698384219308337387877563991667039541831829456643333368101559676597507429868534247631158217960430411278906752130516222394343184617899173354152637615699514713230821321491785786479593400287597294831967559618028063780384449742588688311880023627315022689896471798097541990289746888449628168042031399426344160416004412665430384298270017552821867997326869485542581588313747637690861680472981715335647102385076211428130790533296749904523308016253488350765852199890000136345196998859478090564775884587653792527816066322221052997712749772781312414758416162243471219690533676973854680016946571898953249695206123585877950201737048609252286499863732283801969205468698239414026757019700344738690413759740848899208409006732770096725285224368079044765409747815329312076985122790209605578836035921826737994483208091241484560025194990015164615354845607199328862576489151852531237123310396615618372757616317323155746755717584988477256922918177254090239132069719789122378686614893708624001031155154430978997854272422040533027244166026867625803665734442653902623143787225642316754850829226178718072441761545848279648415332665795964954329309403584942755420809936782624345604550970294781447268963430841046858923408534022149711942844888811862641977286105688800894971566197337197790790492127493159450462067024410993049173123128501286700979378610885663113696237518502451118636520321949496046997530012840630170336621012701115567245305897368401492547916426811217552851581601809011913261036160090916277610871676244398326918842795149769457483509853922699740548670297556405821998848479822648324542076367417704569703745986676230663725051810993398301797385540217693703750569160559213310455382427892717980050764476738599182575118917443142469651796740979558398275540520209695047499224971321037918805697788322846216094671381905476445879962853051168423450032965562746006243180125520595359617847331368689484874995945262808035543483262381507034835056585368666191555031265775122942631354157381456775612694945867445861860737293838425655600402951736767632358013008223152497059082166991360810055495305501780187365551644535090445722371087071518999423245579821764849801816910070565130256945002108497948228140782155401204513562247024615725158696193835181925304943198352617366985285061339385390474808989275077052665233617342273830712087688350001829377274579422474159789805356253479638963116330493379776289498193903439221813705386463358358751863722078536830202102634459671356884721450730014494029943334992330808080473539871090737378113288819331358441246873646018149614502928729774922162042891122516716890717158952081547100260976718125703286867534560970986647471253367791158750847873283571815773123223912647296501750822766723667431478226413305164615934671957298268523874592875642275131599673707579410091816739897100714495806093983352526081538771088572794977302428831827502277792191802532564641775617313765233050870097507688834469555494420109872646201797222484641526344776522331777094096228191242630409421971940809305040813541576459406494924411984213687394535182217429738241431031629836925821482568156387812265319780950288789431865734130375611385541813933824153064762316750077031145526647616626606225307880041031240825312900322876388304955186015771240727558060895738685501137489627324262826013220557463438080967093943854770629608689698499532223791525543306654281925742398258168777877004673799574847123092013010583117437321674363069111575524810605308203461901162491966296408313390873504755644170553179225200757301599757933877144417928027506471230829271729633075040958121759241921025267204555388644044377258231666834988409839864617273858279095326151278299009986873561585929151888876286905102274744393744695966198145212271685659903474685749568084757583823248744894114145129159727563655490419242549782441036730700020301389530925283513415151598256139729993119873232515155089271860833683318461277227022497406548801994851112016203165133801108822138255822833415116340690697271162159702724462831771886141973556842792314764652296281129109194680802439733421527004634474953792565275111617774841186940566413714245356588828320453129031344201457590693293656821466727104376416314779348431859917406022979583763528574140860565119789924639953875943319448869154683765279994100259392648227289279081717435637086981604799381906047996603324070985494850153629851493333316705644177457496466099670089940778666512547125807222154198838786406661413252075842942232068483971159570179478104864741615902312646339566488345935901363492766552500195036010733611731493367725179828203164674450019729700066119780066961645746648038983172551247689383912240950761659529668358408140695030872673138625857600972092877483751602184723194991195696057069237116299067670328523189307600881955513776988685236597584515747421822314748574546017532765660163499813214875847965932322357257234830982744285410381312237431077013810389098501420884964386370254722028541499180357828996296196498263317480164850846045907132684946933891511198837907195372470424502737764795788779072316975236934024926155167354426597946494531127721945165402758680926268370342052779789730606425042528394447341392087621645525278477202880472993972919019995295701791325375262135311856343724988137958213981724208871861708805517673051478884223492384733897377181514414955567824437405754298422397035520130578587426305141330259444537021746167839579891420819143807960670263382266822084976646907203986571650209814856349041779013846342769103178598609769023084371541020466575462625727150949815921866035366761432278396622659629108903014480302010442297334936625743066618505398694342473557678180771103369388163345218306373659407725008337892857439770249387201121467315216575339575801960452445076480929984856629531310526406604715615895563663994662738113950356868361044838940225221168215837778741021450617536400484863812155962264961724162024709800405637861145140944028983412527109292744694560406158182466189838669656659859786637358400439683458379409586589308035188010543123810745869265646105134690013573078397382713552080889988010552890966821390481252145489190518939694367411899885663357037031035780246681070517025513225417785465254461052035466023732966607921393942475691874669930561653726192120271778693809054332496423046709077346177011369709408661390371868092758470492288622650819199253166178665111632722509580215385627272892728566346081477672598956632701237595630571448225557612305033848155153321636826017937921093626653836227510370513526805442295683358927976055163285217804107322822413545082001785922136007445219123963550071924387822103536577496008084800396123889032410064951716387528524270255373303070223341075418203120263473972644410134632028615077134359449770625354430884207643954337098408615551766786256165348653901889159915336313158187516795541834199492252781058583968400545173828708099273840614667775821738135660060677588753938078065771014989672394199445757106685669844064336353878318700003154448124415661125598935643940275304450999443200550805555162610125803341210587199658850794194524771552522819192186541186073191336608442682643355326832262900057624970591369394791639867122162633465159821987332118311438987209971497426332910873162041952186905277253474885519981515260877412633330638372110250929030666405897122288450214861806579405881284260947506471552113431721222848104148375910597491379627752427427242599137986857488195734229184399042730283070027422932882110358543865024350487446400563743962560026563465699177711707439538103547070068863196380315770298570308891580276097315898358869113600788909214732898864984014682779837334595615928601694750827229699974522237094588060479731747690230106755094127470630401398991214790965734525244034959396567415555247238719531908423113928045153321829254742226661534694823545021940312100177616009730492959406064545346274297343313604933472448682652417338893457983306317222885248981112061131814135388971551817444300366594569540324952343876252292328494738541989342387462352142246791830379605143713141261573410170555450441285939761662816176740345003963521332175994527825447344188393090810807675037942991453071031149594633980523542740934250501659544347262625678967086442996779599650379478683068984013001997177643102434968491019677694426021669875119138766078066965282564404358556821229834160840780281011348444696228909962669970025390865607516899945735563696003949110230188770689190433728246735871099489922101071031816029624165151948454595197049819943604561219305638390925826277808409020100841708923413071312798075879517252659695473069106537428860239025471387409640621312529338669991442929277527889511423880914878764015921634746528215489435347740417029462220811525525617007856953382311309696941719854369750369168976222443252845602194282825776733425670360820778573489935503090024788882044678105428184319367897903551443637991066000058339857442964419611997389980058437448628720750491676768982638520513060739369811045823053833184785748417045931744868902995945795843428435004108486065643911637835675164119411888907706529779928025245919120522843557098182093212282482924167825859266342917220984471539565785677367710959350163783678172160986450318716364913520201320613118680788545273548575641132171494629356673172087012892159716868268799055496525673667352714402534866171422632605671310689388405691324356823569052699654433843060795345691582562902531273853952854712086498535276968045338836253404476763904861452763178898427558574263344271884244440561252025830363475952392753337240955278396906389400688094976997995193553170992584027769687571768877332727377630187693902619321345743990741529181243254202099235447530177087034569530288552329720205228773023807746626068130912979394602865809955046352378849265261183585191144924032898829286539752343762789988416703924649305324359823356710938757001154844432560668303354582430249705473702278152641929479231467686902238228034458900523266770973035894895034446308370065303804633224031398345263937901333944236634793044557047689491680866466162367669958574135186399847805232437070891180405362523468093372436774470362372182969032691404745314821204370728802406695637590025634618477369117915317172412801728910667003620354362997019425520985935148592656406104470189620928937492481841294288658193845907432964958967005826064919239925330338239469294405070089306967926107961992881522092466997778365357886029678401861108428663096180569036764969580709554116671949243200232672781128227952355026758797816635978411468679741733051848964100543667806286523302683688218571665976522445183683259078827698513475212819318307090926836524753288190461046034450843699983424365346763370820935407898017692444071402117484322396530476206672017952579525094608931516664412076310691994546071512371745833373764633423306413166524971758926919710018545149346453750320443701986343920094751590334969229588296767896561013966197020828866387814888087914634958775065278979421453945384526416716077039615959170792092142987371716939766477109046523775441161472942754786782147983858780959857151145508229890611143190363877486611124311688303315201542553948855424885343136508836208183747887785448956072422829098166432932755003811572921841728524924853263665178121915386111133354052786277738934035931952344846211338014170587742202778796590709525979351141044328073813468710729070816537888612108504819696767514598395716017863401808289450773835295774549933839107250284723616158022255556371451489230117696632513125710408438484699853537261149179793551977840741842641204141227781822594163310699773041946209913904745546729708333446900477928505893623553331799603438769303383108278561653802961440068853636183643050640340587262940238260232116479196804404371892750147535722410187635672502831846382973200881508781503643017615312722059601089143594096737906413041841951997895686483254299778334162751038519009276028044950568859072344642754910553883627547229167928172410477801023631714512027673276522633340242833171772633500943137596303911832104705533624479244134126357688715438980839913054465186387591641173358997224691619585370532879956412200937017465933957942849536411774394154145725284499787571629986553382575421360154317781666323271127238746891756871282081187530831076407722138162218030749014627970724948107917745019746069870336155496266776810296381597084249623531149458010278920708406858341685064449140926099594779254195479648506479060046158427552892234809889881262010370205488887470515315560756040694216473839988419520243513941781177001677704075346342195079180092759756849644631727275718235417522153382347095526326800961152070464751393100416074756707585772218046985625455908301921067815576937615126961718167382888307579691655098479313850516239405177664655045837708714454061860504214701810609678982216369053652095010627749705959908933963693551440442597932126060090241089365863316094239562931588023073625870544455464227892675000133330299610369482061386959456049048647391905791142688869240356464277624416796807034711219343469756448609543475051961859055102796546376116194080597739058831590984589142328202178618772060495649693630000700895712365523902361239418339787100640653302569252793047063686619473466489226749439361182227753773961380441317619192729206521770639656883396101395475479338750235301345674138194585251389667131260676150047374085867512071133035788933966725210820688639398120061772119043022079265088249912270845376467056327573912970892163287984909820169653448603442070986970034470181450744129848534721330996302999496252959589632205365459766087692394818196886551521250698840195350583625396247526809304025217037175842486500450937554505199844021835995354258933835484282871504648401812520691441763962893820943559522299172863456542110503282743538499170504463626585510400371315840710425894340947001681431439846787278294731016825580911994721002647146400991663333651247295353793126339851155994734018497521334295774149630878962887244756958338046070607667975890816178202442711812180517184137871809831600349082242220569438424816389129832613512727502317810153698428998932173289309912032387160359763073749088695810558560044803638301044056944363487760697841180435882304253884757647029505594638484353194241707284874277453604547290374500686589087953110676222481820183866918506222567097475954210312838119730777582224825741826542343484356832851791129570798747903427791209430928297746652192448886163544445442328238214846707605302751096345499724030726357910686969617202391212560992220942084394911881225214413062875094993976150899367361514273716613232617315529812489018688028784676547005608953259223191134748145833273831905043714242209700790612560605400396143900899049176298290996115910638200818228725073892818628973364702255187090649633583066477821291294298026668493226538554782378389048583247938041351889050291559698956884591276746895146208146941882723917327214937415875099265700628279860198753625549705263182254353548891497587241227322945405722946328044720831994797674122562922790792921113966241245786910026376512012385416173522654196570280741179418368319135934771838400112862714879124530007630875706884611144359591488359206504459478198266507780122977955033661092125509915056576029754985387579881837891741474130253235037504655539361889370107320295139066039842667717635731963366640145897681858922495263354281773068327571565023810739626755490809088448242034470901876560095264142308699566579541762194854589518752705919090404768474359228699271271542434320289513646990381730967107780127065205912605376861338556953657070287711132984628639930164846836382051018757336168768061845122684447935388665127430993537558283440482970078767416976874928904486363861615629358351069224628927212343857878518287734489613741387268342037224104433389454579442802632869124541126924220239416718330769726511617396024807039443524123554091497297817913249504573766516894801586601752882947555181066397866708705424439184664040347208235298604520844542337247268411705284938660437243823472019001817939443310314991237726967612326980624112722305032766232658471588821711640978534572216020487992908465994560272561016177614026893434357120919585110997279363079534339705430922593231374753061069811645648121667218547455645852597286757384237770711145187739487988052105348710556060624981045278670140565131117504044731622103778757162038841562206684708536443840637229055636154729840212130073290849392859951117439013446337945319197349234812748591000762944921836173323813641093479535339448549547668729808377516582810553087580341318704683692953195655257725253541557671818441468483648062197775583316837574223483603137483373091592837964011568675511868153865368088909723349453122386085774681914772481917320964485495221616799148258798993466073639853717307798696174842996451492825201668980502453955074664574789408009662882024693915321646150259594607031386276815886096797213420155314823662212802772867418042530838429917922712705218731695233575288350727346040454814341428446219974703327362810138442740530440993635340575358141131628523452723405341100920578675928592280747806456468831213838787176177939761288283406667793693746199749384370971303538114756624771751153830804367059589150989238227998920099663082664141970614797674923536357158382124483647878664030871455803615695195218147559010144891481795334891257903368769539831084737825885693284113875059891323958115454806562130158668455501136817696592341873687403745554409671320580657544405529767640746184695468040415766240200940646157966924123642988707633797573260621018719827208499621763746366563781398435925720000301463669370322290681590111279548947680636003801484095293365218335484881139607924061272376218612635882766262417928762677661718366984371810137758441634114259618601957701565968826833209295123740171810552374132875226197795425426090340035330178341334791838514539902140624219757837887091439521662105344707792568824547202461226884859307942727705126644938435741675675941556397415951867215378225100153858306789379118860427627232362265389262346051152595075031836508221437146056021628267569330449294476161104527563926202011838968562515893569424810910054500261543627488574605876746076329264315033740905752655988826612666536018117232850905295777180948775995074284327830452366188073765478052203907341934358755374067987636314776330230705476989328769501310871342595197134418714353345574413430640613940932801315139457290383165423460563513565736734441223770490144572868112000864884991357961049482670188299893770666685951690560989884155804343824399529455418688635279401356736271364401461312614382511188287604201210194097648721647322093770055086624065981513951441199078581085795010268291759228622554904825094100848633575819598726654473160612087931072162181506867563892286454186476579702352583489513511260769007723542107532024016487711757005485870145391381211038770103175163354922440021940574310023592277227920789404193477801515757007209072634718094648262830855098680745700154650887432944109395123078654267416932825971827815931679658303030875734334814459459621240916832519480713220988008663505056624307200452138611732072900269039389878077151835115731672761256264933855315394078642613914193362972652649612840733682738032423297722820731397904036488528067288591009163450958960105602753408860249247493803390679596876083348544569680122905613557020772462002517515099827414150382103075460986877141842823638144119414243440529512653800828019102611055061151330307019320812114541960222664366165279835260529719989712604303966337983813045455463663620977446990826478020048180258971620787706359484897754047306820158355572403306863956351134788268875546714500202677588211410523088028522440536662218632116584352122780560355959449875358605407277016182645578455136029505706833019580037843997517866030282017402810951296510302850270212032000478007615366230256460812793882798651841720928271904679759944737266509112490409089322732906390545696009606668626617361660871966798674302020404260997161463136696547135715761658926986490677117280850291163709704925687703301125873157704002278034366913294172857929434560154511477332046622071075718099780565846916599675722942054012570591764674377495437605545837730125853474386857586780043433650568517222036425243485993464259460211962927229292486549803221990466468463314387922040301799018967136920593487111678603280370927204479505964900667627188048800435748884381648921102072390017439393945866360826992567172908204163475299009605565107775087134096961821791341251448812376074985176907311681914374558459077131079345553362252854215282879138771939624519390481831329975149433472224803098176810771022040029929367916243234603669431028714729074224154139696357648771996437617900028315938430099844077627103520421273141288584469803030887497246935940770850187782476471271979453193925653622180798504252461794648453517379818678582277229905668208571403204432663568156721000606126484934994066468357283602684418031557397963111067713522810775474767496933518446445055778299070363353238156072017801364949051881817427578289343982214956739116302011858370343810287903291009237913435859529928164342100017078757553823767397857618517790854577071520073669598188212496228199204633107751086315356545851386110776292181400467095898222272881375954262996818117600091044220655006887047346503724942346217779484191386922798093924477923723221940867611055029730156446413770007155186569554083021067475223206707734727340921412056128623642328194837418719432323151445838194845354664528291304846810807818048402984572064068890724762535311401869389173173972390249181179923296293965106887943631361092097828320476110033890957081698967837714278527670711076805318109083766705614904182660869049717707896022849268320939918567773790626681299726246223606700488700395744995532078926504877170370838123109055024912122876457982519467570133901973278894736331081968628961236378569374607580128821863171719179280645323288091865702823823484919459049918636857359065012135670511178394919062311859351717882264801628253758030069688228066750069000929915057312096531005592628534908038593994355659771063123091850227547404740109311528240622353344851978771672264796650516902627683628178542563901790033166871034255414046598774797000535089079966574059956044518735702937970501859086752962760306398066585195434396907169557374381002139296106357388536362681765200899889409124354213967247946470029395948918323599185873994359201695712817396401101527505745028703528868188456032257175508953218870319459378329934637991649802475387461999524556010798459812207011057218921691714468108662832620970984398890552768924569770164574017761928580055835937364114783532094546216643940666763579930168193304283045128977187143869394712348471484471809110683652804066301038182226469234370378195106466046883165520835779943941789577579299795302771728365340545216625785943956405426500356719848418953613043022186892613077000172096210079668930196250391887049743357968307373454527978141173258583946839315184849022362321478285199175358767983869439153802242963956465275157785812960308463270329122555501808191598604393749934035680241061328734844429910653811180306528638321033069505355596977926364396871751691556207329233554598449641099077410892023693416336252270507608510237010515016570529210990794770868320448051027330311550116935280553446092195883475161642691499824919343981875577686219293664059637457068056999634348447531265553954579876327364928960351006048851690053246009470225583063549236651660029637825926073279582443910890866669215612809207803110775948875989286323942195463464203097408515578733498201094300086214474367760155647774290473015881420360352617869169735241722108184271315826290321561738061716445028627106069055277428490786989658644058204749910465283911748652968174175049417519654519631214935792594670993736231508917582614551880041568571554409814646892405838129759282881771500024565354714299233420230278887087908803496951055917433720038179233926853768235206373754155222898631645726879803732969528325583110807647666933354764864464824366218510197394468604278686632367435505204753396329580847538824743749919655507916160471275048338839157048590651263286780538361148108397040208391730188367474716853047486049996859415772167366357970075073138131274701884028609761742502600726201692916155825389241033919777785499215134330942110711852845721896409015063965759394646057171764380899511072022631883649557277352462613639429729115322314951872580705661597365372441882541094752084640401013342130741976813572812726486731623331951292377741441795939894591043969643498252263431348248937760011230449926065148898790631212222433037890721332710907407624865968499740173274328862226272524916050722522686483437714523774302393953392227281079174963236747663972815963337411017211429224797047864379639416016024856500184721152757058470004620805780506123066737696414528930385809674238558083253388797751665819361415399194739553074919209376457657894095079495599636176143160444787563411529650712051085910218776438462452683515076150569599805957812832646777565719767018582593822205985300239273503254341125165098378423264233995820839210529623253624812921951308957886040952235812419389079943536583211307299057527449655633407881877701898138696365441406008651491493334065986744314687945580975185044938480449892308290949459875921036227196352873126553742230195165286576119058990000142781919954275922192026069905137969187747141331529580053581011656927187345600153413770353052255382345012567931428559622922740255440055128453305468036061732481395583229998887345091725170306743745004742244292329286831811372504147040611708714342663456828917223218606418655499952534892058607899766695746852736220113751184481090893436051399099031189124698496609216585457802358776382656105989438766083258633343327597286096724770751788027893199498096026813616197929015830749087778973335251572171940746064202699638062030998012038339279392315178539426540719363519001723278467089782323935737839563599088982828673589458132002710613158448036847178080047094668961694931496297280330024352003076354754917915615844124982413366322080729693159628444229998271195342296590358995387502723185623218602573334599337277352396652060306335144382055553730760317731503452595493986609770161234284164125651637393406240742886012741781145510220578066904489606039603088297744375941071083463395190626861991733942247115144948474562458998902862418605668782439750031987561936557215243788915263226353168464629198140500854476631610003777478110004817332080283800961995482403552350163942456647653388596397040143979000023291735479302112931000344442223933193726945904421366756707707159582231016693919764359568033131854941559882462345966880757477193661126783279598712216246453010981682773819178547991069630888126303303581323717518656811760159180126936382367710097807764887257135518471671543644116786293826324604195013308531181076485424573380633889486596186435011835262930958525961325869845655714858816080554492023374039216846738665041752517585174634482462553633443904068251483945878770824941935091095326429831123111187018720988728647070105783920675105834124579456784586257904225258537886315081184521956309237215684958286867408551811280972683815680880904096699374180166159387006047872861571291717537126446250222155119853249458612629221046436486145336400007797949316878586173165875204307492499538032807574932527407491823784500968576263430241419238833186743790401888470512082448383948148985343584077743857629230729244428772493125360767025843448278299226598688123423879540002508671212371245060280255909763239334047197437169583004799432207105254112092162041397483299711558180533731104709652096988259397157777853078035587752902168323105426555366106948342777506764991610489284879315145288717448532301288479007504995906176350499778553219487202879956724550425289380420760941045778549604982687789800648539259919233360969409554070754278291890421302607993951357146071821522806828204519496012379202113282364678421669721224444724733230398773506379887154064385926390812658975246594375188377869600241550952771884896723303581713962314115580388591309513828191693790370943444133801738022255379293571483273104411658687978764084660924359291444197422151151672784952368867543655894185850391320481386044845250639379920819588280517944141448608608012077886534480015564602315692434281656947800328449343777580808647606081456987906911985251911147469068700278536123025827065866790714688273400200973742110123546882335497452772565610342151583182060939900720532955669306070821370387725101502970371440271473482308740179170042742271002391552659812512282890070653277802802706277614129696791692464017395722531983672210408296047514524263342778849450890904656524149977525062568465828583918912420196399994900213617466714131979402887810896205893205955876238012853345765879858257362759455630188235271497350325878988642203802363676943218388306922989659480098576022308242283291947295048123202664874843302008371114726216094206014707620770787366033873039851002033298313782206195493382200764397363578231396815826475112109544776531567798206419886596845886223329234891927132905194698232307807977219775760294933287927964373376926618449905792639920091522908782564538024575455459523582136205425586930490929006590699009273901238610872912451337324841939599441498185509876867728289852899377831397084216042850234968606496338181564825957246443224826615839828788923126179249446246322637544854152837609937509490440341010105105008937846263952804082225678999457126816292555936370839921056014293147472262722481600811215363278169332796776664508157465008753756956349866463299308616416114363842773076547029386958444550598504309400641858111758253178467600370177857055259345270198252713720121763901881045884044886887385084463257814289460627212906943605536343056213711303187927344334294111239641634488483754417819651104790724417290366099187481989036439036268501728015517784608233470893182608285561281231629781430144146364692515794531523571100332752287568952141921327466179767803343386488283208871080189886668856813892718258226540112714385543194032163958029856538599612518485442153856201811195176491109658722280211802187132733047467406956169020957743750846965691765819513043162707951353551413245657479336124936401479377862289333609434386899841997884328285856672373262339728257133820314686685017827011088637265862558182717149630386728674581425518446280398286838046201466719947801276504994628688776837266843707930095640806654522970036691084954514026372243504046812056564144364565443507389433014277739146359769777989483438474579961510564275252066303842251500407780868048864168928381660183756344032273713140247087296214451888727005000936899518834225611264738219902896725586897506050557363198308685432577471620359968057546727872077345013633971304519487494591250147447731815270220501738367240565149515302923907038539928989036979058755467112258535152517732196034721976936049721154984407366311262383432918788015706607907867885809870079288278907823091904191919382492284558927241169942708352790774223018544912200304051556599282285114798836594347423063533501799743094357785390833922821276426492377897397144191167260439433203959105234026558804793687435220149393488642334854160689028606895955421582087567321551102059750256087959060343840805883021107343389440166697272137798020665500680366297243207730865550180145830913638405960848790417357592658769372166111325165774883997859578987877871974302543821193389828842756964271681451110093687063767452219817342997339585058574709477050533233441085186077833379618458217145779171812121982128599519404555535948480394565227003165399433892251078551864284664349231625531943528195659901260581479633160293511058129888775677557166947673021989220172361463429019738653170312114114040967972402085491928221844730900201255013008908030860156649561895337357158743900997313190211548953724783142255694813348286970987600111111812072865495327394023169232847280974934192864343560773610785439185363129023965489292885177172805927248803259520729306058599958024106937451511961816615505027786544359760634369536330575413604704799173271238602789019577246009020167738590180502211362128439293612636608552179324439707984623572357155896055825193790721343497101185789062084401470753412037595507716331237170175258801650525904751039087840997757882761555477820298662296190668346256960617832846369226634164347218878435285939121609681839160127956920977869644249353666074159233289287933011536260099812074472162462693581826273065009858462248844080006297960865466250553252431738961223271128686967442149491183974078567495833711962228221559443450779850399545677302939932148830542316803383332297190833029686992544632919379354203675004784425532991158342474564108438604016696153881882006439779681869697938624738824263149297754948773305561899148181261588301453990974070208930534074157721613724559714317040203326648528304836511109152464361904803234590608799379916139033507271578347632105051608070371626211406892073553406352813986361749485420696319256861641549422535581621887630146173916844130060047429815849800256691015724627477566445348958776032384610083599692541311146834607358707098716509082242039741849337778853522462670054972013615481393499916998249982873146124186298364814832734787160564859966413429706276962215396342020136845124460950772476409169572627006999030620738386315893974178681112413896481965663079269140830971981651254177218766979027776935972867830893084736172609428632365429552165947917574912523197152728861042027833692038925512126956809747830807807847693153356907204684002324453167899481160389263758106061309029870295061260002895952740192857493053637928605508983492719474661256388272541905836281476052379524636625098647265161352708551509960922683717899344233844409247171759267745323224835972284640327242896186571765035530504031153609326851609090900855426792511813073510490631185534102904130007728818974025769165791890779117140137419239326320925851584989463090801494457407277737480454441484256178599512459394286724014971113685423468498976189849348774441830220707152935283745257461789379107847146415006214795761972467525363844859686861319922375939206228609128903562906770504035976511087264463028208238198510302243612079537058997762300907377782419667537466300290408183360656857486237852509457365901852046648163852237372259323995729850920886995909259046034881403893094921733450290085702529460979290061095652297892858686775643078451346360551536427154555027136536090680723036329895326163491621742353912431315516308210335817878758231335480159979224875017314314325113941354424698851772653989887070757203477780871778671029949894374937997463329832847898295643411047261489638142444837255176535036851583447114009707598153343039674462887974165662059054040983063249555564772378945183714465926140651673600339548738850878925877001830951410672612946671441269554785371407426487609922690603995711842163595985459293360859553612630093633244694569045497990345961496907022577448721765993920271438555360281901612195442724469570088997389537065102831892552272783572538955257913750913806415116425818026789667941291492609240320226427899498388809903679375288661699691722643246934900107356459353559210088135058591130440048199021495586328120593398054837278582204003042484854044375724307753446803334125583377280301512366372168487596984317806091695350956230174220252236860728633349741244214857542397294432033486697076651958861755681451098155622862485835230717358529656802883505616617453127540000391661339822577404853343517593404245687385262510084259227362025905224822797107510531607182985929728133808967116708577182407069075608798322785307018889662050808648869026546500256809817278637148335228400320925299703905842154171346504305921346684274900329930319390141102191211134890088857699963376301993290497168593501952399686661185605790656450888948948935129980624040392441829193089587171641154422245078773645106165102587838893834769038698914211395104199652797519575754904220050970250566774358036229670300317826342017370729230872231193595420981087403761883699441664377510520376688376353447337936573594654094773913822637189135791649393618167517340609010756692536535549280232644321868943697101685483422129397157411852985784049134737753335586580665549010591053499771368843990285783551775974608734532049917074202844143963424588299121440845560118230144234162048038162372791918367156435830335795551044410933521012387527424862039578152502023002909359169810172142414950275551245054903962150756357617408423026109959456534075923743488781867313151726420238384605271737845298116488985220372500697381032182605131199864520259403130695261449080129066683551854441187492557075135744714937053975878255908908943688344560239436185787418206531641395774567161834790257081273544205300423182796695286393706901144964854090534645156371839812337016362344298336406709804194655454982387362336544143805495832811305466635138133545356680320439591522527641681451565431444924802134950909972212360336217782745135176756503903493982464638069347681524686550821752753009574004225127836084070160022953753095642995194227619727660833418728077591137883128061553997776102102751816480191941989817049941149622031218969150731950756368999551611526165948413348266932220504659938853848784060370868905157157730340591090883343898392577524969867167744887526039830422807797294090386602704468954058172080355561739633412207265272178644110398395528400601033937871319170124945158596859506299882960341134232412072422391299085647734766789034894115261230265199102912714858604882064154350783544574781214951564013616109285919009974360798745001847966393295007739215760118785799124196445346782405470124343866732074905448244170213685271268486076783792127514202305166031516370746140049642761783650734676316942417035984566522754812457037236607594273907261774216964484532419039864655974843444256727189155356501035446054949825271861065675164391353935027766470345395574410635876190078101518542503766541229389348740758310804302751462759029513234985037766099158080063361301292552767338703399993075170906460384229158573694227418448292692784389776043954262644877449305930788033573474157622962540496538499451405077610952895237025799132648258001466510929507900437533045229226542233090176086506460080740797592721624152904004721355975298597254216711117082399129799872612909118028894888077947148187264239296638704582191255562516344937463127414755255958274224704211462451959201856677360386222818261118539565075539168565467592189602964508444943640967674053906564040464429423851768479784188511029270728839062231862141528656250290678875677508594618346023224082969216233122903670938985846729908371798639419114509182065459275853563038322600215219919001155002755016776578249841420585976165921445539432856405996745152841267672071905313222673612424378727271443753041666086218036499761599584068487374453462034148855770831534959587483069526549607030737785205222303521382312258878417628973616205355771199508833526015893102890669122804186783600073145950069245408316112908140220613017548191429219542790674067798903498934736078315083643113662913978515747876565722549089391290672511619011641158681507162718723783920024662630942120746471856562177285618251510454650936528615560825857845994760739257170132601846999866867073210066504687511061733378029605922049071617743663196581616974905540709976320832370440300363595677812663292811500937728168388906594481410731812639951127951241060366965798302449718180394687579481439308949959958844101380577439393054875715568658593338848434323567803968446213220285964652534400279580843176856905114448979728431041627898131636510629529998643351659845663805846832292566312170745833328078418642327214131818466382358807056260060003136502204768032795565063584624754502979245822877819583525313066129038660747767441463998350015910873014686502781108860369160938230943900861971802609119089584811109304645281551466927046027910710675848329854885771111291768027145569457895898139738980085920724031710055599091615507399975905118448298565763910853741349514641542835997016871661064558943821596306671803248703536301672280548334716383237351325838785087837008621457394639833729878820723525657552203455131204170491986251939242951994177944415668808799726209108505156673420992449646047558496739680359612586484112574933259699681146496257536706755739598670027624689450327240737949357374849938238028096600540934417135795968768877155414089801056948001872504351079720248756862264071455679640754272608343253084384604597834096848024431242768414985413937793091297061248323188915918055768032699813670906216909834312347191878860758757427940439795404447163872194957382704203807993255652359151663112721549563875183996669017626996789423166117715370550272716984395766737066592061292452442849696200754296288792290324731157368915767089867104122235188986723462778162104816378609889288577125462771506236225608258487610343653977006362017476355490337441184991481612541449800348233682294010220501708440395546250660909643758097841921762355176812367882512933890155539898108093495197862577808769616313132079572779119583467961311946528330400574729962222920543709381421066850891403003080798433303566360486396572014929461476504233740996898384972353824701439367789885805778882022361685426059586404219733417111557652993141748530374647106437876064483363020282136575412357955042843167201286469183757546852983619601198020804469385623998434980440184417666481286220222259614229698798054122336459605003313388765876150254910160725629262850466488092570132076747770807436057507536110762385559643460241578005498877862330665763156170160409966551503649125857837267789667809227384628788153003420609593205271197240914967142567266709180962609560315605316678510105812054676440950200582541700113637076659110518015531432206550036162239669884771755925713012966661589819813373368534984479289985643044344260083943173112531957584606223576567725930498373843123787375809255267174001969852806189916843177353091584955348262304217910652526773987045280512492741416526026015222010486180483848597188988046416664745110600127240869051747235957204361818532139572325218242166054198362598202694887327323922168833139499625040574052232720962136380321842029109990213785390964227992714687613229751503092798212158882083874327162969846830207072300504696154356652489582006907957281127722099974923299770401104017879512277285709148745926303945883296493578777346971351791513202741687121091268070464069961585905667411580880282738437830999994536788135102569137127644017179219632274540093487884751555264837912562503581392795612829260396124353258569766554969681035824092120853231927688147112403071627274158355485929169674434448599930238246390211493990108513830721151884384670869977362842867560048076858773367568576436808452932577138215597474233400329441038829363688653922541896825753719260020973661812654224980909044575862895179599987970381722262391817990157581407855997962019038543584844849599934728565834642177084638114910154573008463621636296984245428336741416144913066446957004962339588684024530125223553330061012767749271941692648116410124292121659374369989298862760385376775149642108355596642061831021126478766268980650531942654553172267803949874234814610718919700001443757265363273432939626740252284604734353837462423366589280671125176979360867450364964237729002612543231395938369855904975147830845647679010396342224777152735594625281894126806650207553994287304194361187849529309580850389474497678074697655962413357876919178330884336300696796156185578458354771601448567313932937879840458017214295328257554589227567969219435283834194826035550349946831774051601676875501210966078657498614156413800560301483438983027320238711997246306635603812203051763696634632518462035786424922827982534285256350458792444315593317336025293062429472317126815649917084291748046948753048088627759970255306368795577758236234616165620216176981255938943069745186113776682327256530042527269843112562979651535351675006577070506820101835050332879467260794232364541451334899041293039531282237855968303387403722243365121391809343108014496725274539231834681196237946435098129192811495600269558728618762631111851039215219237111109877702811888227606305262341060813704820012365848751546082653846159686203107032358953505544550079647241967836925365129070469054348408835771372116436894137406264565408720625374129842550849722107311645881596644506396396960356884446187832757538872399168743660429620941270726352342477198958031742481050277888515210858787573815289829837806109867635617975452156643971505944561183635117139086278440382829647707417358751848338428569017736964747128417157479731939759167355773077559189539308885293941722980138819365265851053547831043933441576697444665166353179217179193480985463978602465180621556178722486367203117694959072359320431287710240149514490438444399806007123994187571746199774217545243158897141081795209018233639444864213043511285670001926563474960561643595070864263522659546229053800014437367372688733957709212378632828932543303820460491501741866728348343479701657530655119728493449233717358582374792393673263146524170365207481578814730790021194941970397544148211073554445790255085075685991362006258021549025333736527850229756315703622170657476321271822366080003859858645124229044055385032105507528678614296209969830678236484656517040124591604103271904844600540374759407660817709313237170789728629729120723552428131398511565960579101248568880515504844077270174212764212730443640748462740195498396560340275350675079220415357295883091624442642654715864252542526685796946763004251609845221048846881468626876289045801836197265435977467050768268312311481574408890708060077092486734725242049772477488575721508326640998683544664019397194887546760038402925580760089713479957389626752518152349712965762417552514025004525722857959348310861984163780773751547521942878866495848038397129871078303709017576570230518205819516241368493933546593078754029935888008834849016382670288491179003122209827136854873097585705434564335676859925219968156843058829722880421133507204656856848785860659179181967208576455601276763941167635762074159286499245573097117560731759612003229306648766312808462932822711762494619128251957015930348347610706261917113296349862288772407739908802782767942573797947848681095696623586229980788904049622542377549007008140168864017825364395385641939181893585614686236803017255958514020240058223271942938727738535798443127029455398746122850759260605817475996353582846756732232993208921427953847437645331844793327097922537388920109189660213324331298831970727834618076303480708839491130892318375392345851152917232795780838895989008801474958042747361179559893778168313390809291494058116805541165599820822231688394522064022396965004794014366611793062293983605928165683540879910983234997497560640008707236901929531304438951969204233047122318052871272817255518578343977659943350535960505916923318977451271318422348592577192957395870992572293289375507111444760447619875000068066628947476255858979737678860095809877513525355434134779182289153027542621492100705936090834537546458458115047206130416844644598271635042863013032084946613502020745005655605018256242629471767263580534015884947345569806827201538116050203925071236710631107404510072176144771338493949462649058972613205856111721784646455890002171716770580969132620022163476469970425290982864879676049761193525916736781772627264565496368612566519500783882148241922021592137343570789904134843338270311357222739327170655333339492588001246830941765116716143261485332741236220336513486212523891441048163647339153868141251701211881284128968498471427622089869259623437105052811080923107352444706892170479482833576696691833515155476494161467974812763597223357137140991219689930383768759848671883859483109885444053984721685133516036684779945392213443038723527915938534496624840651248653027470148822972141685553054503800485130255299015006363682540004840731995754191280197285239566272995542690023198416839704144887871011192871237875450883734738146816777550504541696402894692859129756902610677834770597614746761012112902635893149750362203865597916116901113252960035772218643851033543642981457414902595045792416771272668059490692373851032922990267129533840496418483857164152994616792654869125601328627140480593803305798103408911990246421960114801918280490045757618622051992040880261019485158029413367442958392360559997710786971333519284774584642042540807991307191017649110651176014379214393707275524976081237934207860842521970097847377393465024315885008702188586351930265471175876469880537279062133987014910666884730411674253019443455278837386495295005224942427441974625525126021518938867934374057811105312810269668042922101572836518498650433182334654455018189811534314094421447460696199676687626287813989663189353359023864511156453697498085238369043117225225768588467755769112080518333165079159274980054241311326579369074572956296351114496293043949789262052759735685167110374007051316345247269327122849569695537711431825779360165070099475435840834688640196485878487815356146808933993324428900412643005807469747305435597143705040663582990775592177185603639193714391166406732057536400628170090729398564417367337298282139956518323202831262838754073767877530104424068764364998728730957231059122061006490955539200927004879474492632084798747414077412217381069024245664408269685141959501577950784560921883777024698789618710098206191659088219414921694812983970197237001792833128969632251455947146691729018550377474400762766024877162247133676471723242709415333915633501526552564386200358039952660710294133903415037755772743153327851810603877582119308191635834320917039672072776778773867775422480496947785111778743619521037084759268925662928240430151737512220311783649952437731300711199214439854946512211342951633987217009073305212471249680437789562171955002252193624155023426345227202564483897909274873557519233164642728013526225113271431355258269489254158349565977820758599805268266032691099862799808530868440566687179237194928390241356899228393236236114926901160700111659818139570180750924055255227264760414959382763987342737447548073865855973607590779865582186987289573276343026968272042048324735413296689831291311767022547754244386390942102761972997052667954517709499265093912787669873676786449219707954229643203332092063990876801513976176343780091719458668811864330559597121041462568968719160550200365170337164841845947108318852281602770055087345822532685734860683510529645233744464938974233068306948779311131731890238553575836421822217889717010426621811136489953561572863611111264107943644705324981060300747838996072389936126025012307320030241715252736046373953102426823471666099259861310654571930387010422199874599092948826214264221373637648459140064044431392707439346083346551517536087087903241528152073484026243983947149915174348254384079751730946780831881098870953543218849869020318628140876631123133758104622719634005768990929667453470155073364031590072810926186980032887382906641431555143472656101943290454355432485766061420774874161802284274855796601854122473181590588409865607618196021984952232208064352303202240242069574590523880396413620039137765164203410051246638173703488300828514949110174616123401511779515835417388375281834901612005507359294554459542578791306917041339211098287534499084380898318818788319014571199439036271860093956623209545791277982983038929415036662530453539559405921549595023783212439024324045263342856898057080666016901461735861526088824840677196052647992277011278106710562519903534822140628438591294437768250135565117433445648538524856228821924393810180428528586895667412904370700475544660091520349456068987667554757097378931031999923967693142521889952586920687119180523590112258336367593397012744625600698022108644854026522990917434117125256821535010680001413100756019187322576711866073884426195847640921997414943424663281823998925135575340761456204458669676213709791522163208597755324359411950793120160374030612537459357437668372926335868049190998972259033415189038517652982115443372036739432396789296173439283701003174868133223594293200110135257371559791281965294055795965488568287398990927582376169236920364974904095616585703929075779888022466938288460851474700956329659839976096525824358944844675446810758885733785289863817010151962369026879149112620999936674278489813100830595771839058327679967504006924017709373298775446218716642184128239224070427902345221045823065361512526471471620327942116316760007206488172702987667069083519906033266096608840372808073549003878031661628940207251397389863180833779847292924890848588606392648298694828712485169533422342769970544610763226038108844287041077364081844198846365148114039350167967773895599292266405090846365367780461079402038161443978334653745148970680885618007972041909685152534704985936876969868709114392866490575416659577785266015764567406829985175361808859072191539454475027096432615575464880906452937807312137536401283029909436739136356771848824811962418789018387576904937392334457895881685803644971011312162044666932252429523890360439009033962647167459877432177086718488699820120568098706099479386425104728341386540235724224460464923411822395358103929688212371676703844887468977467188274349054607226606710865666716710610561133100039495839575566231972747311159338284397796779261815583282782946098775617660796892248462948378239986515223252239018248871997436192927428459766584303740210953312798291952514395078100105222542934433568408929868572825301666673220982002560484254079484694069220401154575033174680590068293739412101113968017917020052047078165068389856195810182482731640940922253549343984972676773279338103328587428441409315903833198946063301587812302224639872324671464991879690391607870277307382583984218323199697826237739995678446490108628395714567182628453970623158110174268774774165196274644246104093415017723188668439923693370243583174480361271272855835910295154795739124933242973536044695235896585959460725981078495597304378578992937008427902530944241779341628050426919818072177964326970728886111844538205617712869801903269361700381378399022100593985290232247878951092350367444611943776188696863920925949321534276576715323271437818829711700016499422712350675424420320260704042723979193037116704223214759511544051536391162558861158530879967723254728184469006846204598028810056622054252031578870285084930419805101454067068522049040900577098414051719205763296174151609692720240158813723246012367060030918825122423144057552644122110162522519965231440591551839966938176199325162071742020591970351928564173829058677073720373100022532200006198193024786757289995478069100774086724125549227535530383084213837801990948255866268748343206719507989686700319220693024761859062269625737463276575813202452996641256142628667732355326232782872563728517491049142789559023557466060199639469639000591106872162163219961551123221050219691266338167522427318668211582091282513833148632317159871981460513274178588428207443229152397858137706994409611871525743115307323935557221734344648041394268930640732828789965915815035120065008245342396105664294880709626360326656218318440053458226115943137717285869697009863562330332939794084432718039519504009378928591586281049072134627286282532267487811375500414577032098883741403852311499878336806690286460093167602239566374914242887472299670502030446636058179822178012428086428469474753098932754912161120108746134401070261206985979268982569257471293007682231977457382113759895697003480708095868142286459823032289332029228474097090999944869882861809125955311630946003335698417628264180710997586064223501301848052913272187562515474809900717894534251907977770216933549237568170399174385721819784253344182742064703329278057045528932858371994405292779719517297500363177652681651215030698879313455015065272352551097118285292643819371266864221687129654923491120821994465776197794412838668807780517954397621120634291312949887011167872610307423294746341326373040606278773846523057691387672019459514940657807308120463286808521447197203468005489243094895025043278496746862557210500565154837207945418551843402225243627538652908823680945438923191297122076508046564418267091753078497803331362361682658012144806397346449389177677383969191007313854318719297633625370442274393605616352616974899547664575037149510421829270318674627070636907061304144795608727508866819249101153504457207843025588372718590680936546859420108597684850244420901675317109152341278045654300997152123212590280984193339742955895509266549853242455875923625528382089827462358257614283181067481022837704914061076593222538507020980446489788563760607634415429234687989780557335817170904057850170496442716521928660792547785055441999304626668148272177275132189296876435674230672100296088544155111280988268901102436481280076306135846692112135164833023903285112155530845611322120539478167831226645168838376583423353475276015002466465040861229582998638240371986198318573988363563541667709950547763849212754266016335496746908061278288628671866162377429004949874727294935022613355536020040899860019599779345272752399025622959790910239390858314643838705898779446953207560180256371186833396942732642518851772518947818289035030683579550839245045590051592701478462317617461952122245368067836898504152317273004825672211746874962911095723640855333468346873618475400687278812764441316381751976837376391422350713054725582977737450101137977696588115545924606525096863899657824054067074602959841410434439358331260628029143793630755693982891796997246520051917033438081043541743249577903580719209308329603759735579985508440839568502199761044927553108547750108879635577070567257367992062363662725379711575851387194037736045228874172017328402213275028593298113215613634589999498082091631556575661169292161884798633019486679785605628159737265507203148383205036918504015894287744243999771208452246054156557988569647498347301170569228109044870572659543416622334504988453530021203498996914537283318602134969882281591563530302862905921379443572783133002590184130286543287889950855421585199999673939980341538060179672642710832025320579977532639739081178849968606587094665186302447934227081725850805185487778854907679001095959234510233697705274682858995764125495849123332230223141865828771385170641153919063420462479051391429148924472250960554113662153803214822923292814525500861661171733424945578130683121649649914633035485753255772127438613067516571478692418171300367705839723042960509696265031020090817316178430022031761159357505064138378016298026666271426381220481436858739082356131337588782031442072805717543266473372405794195433136100271740224989079839811702399606549077563248479499000215076906211475098578205616530487652668390182973487056239200018351353061328222787203149053545235589788406270836647050290055991244959579298393128626732184870359390395233512021466542849607552206228111641649169138497538107468879425587314395836963906211102101037409020587988922879975375066229985466247202321238394920628941209748107325801109518024815861285122650689142946960892610227508524482412129474023972954503539873987487703223344682152272409436581397332443082650283576976740213978991136931002776839113318748803296158530744471142672114792526306765538671086408872142111744913720650258965603280171903292337925396183615154810042533137616344109965663723280924214713319948663430906509987240695234477764979768879472137974525087429557585927985942062512109712420844457594722176920627600320446983097474659112968692264492457889313428578626007234184007550301558346677122480358556676596509975596309242106323672480340784432637188763883949260592035492026206336827224066886649660134981651448771550322792500738958354716948796161133814948893266286654702167380644656345402117098954003735353116049472255592353704302253267769987693013756040942814897909902160465930591217126983428250719655670979036961823690639038216052979741287799489109653520770823388729132374251270727228275973942413542684784757182665384910679724308145750240966059652212010649205931779770627761600250713633014961310707847771711068638685501200619585197050129626794388737680868754844525238592771775158002913821560549865023095562954484042773118252963560438816213151569855690421109923345229094714176451980862571229711344687499666728733672875396924503064786323399183945442406540831094102764862730320430316085461122112869384654374846081826795093724124155413490112049190939450436850991925377343379411176047054191923861447869594953026886150969581547155351131059248868837129417726077698116572968630506315215546759913587607523802136061534996781307789184879128999090727351422528863682110080145085088092495596054637880697867148222557217960787643535519455410731288656116850198525420223431374010311038631775091208056539073195536579083442640777058135173131119578895357587058443755991094257247962189772122110890570864311014743852755259361150519148862322994708207346140836747556333628500341834515821974230489923725467103773579026660330685989706848202041877026117211446086499327657528258047635413693639647806080359869295664646917130537143989721762894245917918160874932705789554271532232485563473537710072667770805481600814258535912591946404715966293398694528494492499968489997232941829458688523537908123386803347712672648210046532204176208286058783223129856893293216954966658004057990624445941746175579915904508227832015017391339438566667185836180539941475676320024641069605134237269831512906163501019526220641413063019896742864579656195989794407071229415181410536843540448342161982474146416640218564455162581867184704047379460405832945784953790614836366435225385269757144604021454845677614925647573850907419037092047419733974182925348200072682067659414662214910492328128631571404109807391461604234976097117760917159245634841568202393364452640060964724190606682365235951661894965469087682730754120183346193848616372864932109679809312213273694491024036967230036921225821955855082160489043966850175811284015314060971820318368687893219643446084796128239906032960578001478089941599207339534265846114429314987431201523440527030522380161778421931442220402030004453473546186399907709603160748015598791882229011755264451384066504875722198012448603976765292886094424044951870035225936967214378078470619826656243985111606386040184216861174905847029382533988979152167685596205642894634109596297356511942086451968686237050434352760779740629961872699112001995668651801791466870576862037145943094719996667598638594369945091830787704773559920393189061979625732450391944026559129533042645456491059160154151638334961422384963497112807423144995931622092641379322371611843593321075056379045022312643693150094535477734011300956811145374970010497579638834875717720708856942001446179175832290771262540543495029658312943368042867329558604757214730203960377961836796766822046000210746412653342002629159474362374251505599466802848271281035978115553030450721212916165900357281659662389082479883550887397816633623193605217307378398911014449720429360186638402745598634882071125002087875425393394864709625619503455149903257902769059474202688711626017489542646800885385677512583737879652007214103949759118146666766703045448407209785477473597656477201374347688255460349200596261256173125032752355533946368378095104137639923165935778273559781817202324470650738124087155792163549487252340463959384377803482964845388319385666639832570729921743220735730826389001103168316454469870467971527588553545792116136337711919676564855995764249536410344563160251878444433906046169895137878256533134897745586073178277355231834833481545043288262127860707524845376366993541773517036424655370450540011415642948034555353582369502377707106548325292511683151081746853364880531813088419032086891781891981059380895307135006371665743111471351251203961839743812084144794192748846247960062381540196927925791210397793404813873840163675241206005931141341590059455543603746198492175927220162426181054380083477698334623926846964695826088022589876553289365627119787384449687108293665065318715494317710848125143424583888341273492525908048316091813114643846185244600923366411136712314382976796982327400357612687778980721656903358462766806127014272921746796309227108584346485051870041094631070548164432993156952071695208741614674253615597123303681843394120864100831878953779229272203249515171823718714713102918612312361424366885265533161821977680304994781528988758050589275903623831433639549650228267575627207719280899163094480720802100388732006795263184062413625913494321487630635630027732956047078911705780437682198687080669576227096258241944153362269322196157480603788269007838330890880145300161753450745450593435469672017007504352103633384822455215434295190241777471508809191340521371916617119704355293320380346370333524645438349498035808941263710906758191954527116213867555024276152873157583413999338391612408696225104703386365586249756478022769830135589589030346682620021594261042688287148361241974077882725615706500344432761481676281325742765806222518987501986268374906182261471376193514008836533184355607233660404482108292152902828656681150645247371486268365290311105519528178073822940202964312974829299993665124252422178043520844153293273701113825704518277402466324560468221535374205998575177647067825347943053561827303108564213790047882839881117156935311957184263662682194362042622686723961225922193569273418131112644838171783827901486276447520373614738661090053739207445371460409861156363540816178764241311038422188904774804866799389032666002709186077679737836901703983979623854245409969534876828332716197093625444004939661842421171077554032120584773079099358804426107034465748661166008813705771853867945991629750968987459971412218241120164221746161830629460439886370009978652316990087059219222826212852744737486392709325677296944980715710339271181607464186955322686532313334524307858076373280689957033517529385545382936517622184638608602865392971534561257597763216682507164913030597571495535182836790603443161490313595924120923520567346092019004603284904960490291791473068946455268443287045255199754591569768637034030570576604221357720677404949252848807255483019054582647223162548065882873681715856071025615206035212057946891755462670799869146929852106691843850255105415954053220330186942531529999360851374167082856766325149338711951092107738094434335104927116222566951391177228812771511962778613644652146485499924111046442341569926870410904053540277732231105945706925401377896580844728167620834833191007678505373207331724237450066341883088995007471944098774412867942581794212396506083560384041415460860325897217258294806872992268762452544082487229820376883407584448999192809047635001024171968930320752232326407767893124973179040535218585032879657723526898310167909432591374711199217232584904601686128744242277551572471989550770955102604133839700654604813452904269714682356896609830390759966552573557888104745980550525220308034875441226744441913172149041987723577819028470064204462965671762316293518932530109033190010614088695286313912577360318073454898397420215408577903859464443039153048665874896237485870712105488567432917120091728465196271760588904318626415633574897464666450838660696557022792311098110928832234206252469170378108631416125448185941084848501685181979314719034613463922981121641616573519853743424718939946882311919570960965445020278957065500640766194411544275696907317223009619307522751444045081442292960495587869452521520488018409380403269748932446891317739937987087278604618500219282008061070928697382960617179236823921279597550512815476110486009815284259835756991529092811232214432859931959542371323953997843697729091113137184315751566219176943880037409491581751508751484306433820623858144141878031518115398489136647163515797610786009839620415914895985424023644748301976426098207795225499898870226663753154425142448776418192977365085806777244985988185087944613557368905948135878607873999247618860208023829248171789682516389197857544523415963156990500183141340084889394507070285875137895822720242589842941569589835384524638502295470137681306559856163870279286774264140783803132921039830889578786699320128737716164368926150647466603762129589396909216527850875969947036925675132882051813436335008070194832289116269626868810492057376986958726466068067705927276837339123276918180239651876693034906460664792615000217875356026860368184444951859023734898900171095800528284722756098223308960281608831029335010835621602526515110203195861562968192116049049831240466178519586900987720517794922510099208713108110766838562211995497256938280908140980893341392595499989026167694554149959943473490206058489782723090955837075553335674993109292386013054482114624385058841205331774465844010043266460945168354069703049368310211172125560632414402089068563877279239473714959376984451264453676899993538378535739712677763723754589887937102738787913567311591146413684308449402191258394788308871676110540389797699521503600696878033162679563103904000444601248706927833547494113190497748076214321094213844531475899577944916927154365626032420115516110216011941081965717718689412011564953887209167603483144209449835276479896325868982305545378408598795861640595874210603517282206541595917193257872524043005904469315677978326320909882632304202558712659638436421503673885516162684904248723120540995911133152983635915191981080490120015997347202689850369943160565331638284564812549732065382740573461517967543290550315765603074052913631797118664384589844787456177321199908780218756927214835479061248785130113219020355336252543364275761067345584683443314288637133176524973349164833094064507352240021864670382564336451085799705295567218079087337859543991635472366081228195118130573321950682147747903447769705403022115246855847894182235728602954585649577851275280035780633461495222011959710679839782152008080486935986086002820245614000411410243273272107762306369214616410420979838791672301741111462563687302653606039594953363464791299346778136620998018705591314993096060026041809826563748818409255386058239939670694707013099982007627591258804006671310522829182312560368235861702527273321782861014487434540288569402754246882218644021731535966769294885121015999991885111078164228789188541776983800051483853336110049232676732757189708123984231377599357172452601860173492646653355606222365312102496684124926036439833684544409801331423506700051470830152618797936019799777168335662369869280918618835035782024080211109702233990953456607118281870392146887576204196004346600240385158693197861175544086564628249170945473844823220888676917299161209481046670655472437170315401972865929618404240152788365864323643755236531336065076338772749688602337621061781315952221068764442760476739438620116261681470379390682115146418162728588930728869390862448996291851653480009736906371415643983914376943866082323198953718693479806296088512520193918214274059458407711599616340143789688301175425807313931965752802712022170580520432617824255240144389567895204169400356148888595435768389039217376037643953051414934186547859947882700402805063234970836848133575250892691586780759072857191264086306775995464066074422862379785561722546226215977682005331289675504554410509724806874160792166348343232254340555516813196750651527481188408187520253463957479020406685350625189497008302484736111006560500381259323971071609090410586027485503283019302044907792756153321774255468141499766516822595878728607394120553940902541921584655638842541589769056781541649605763357431625037512677637945966700687836033850256668616473603864577337580181240014988984629386765102946286148957103919683655177429505141827565255102399051678009312499682823143742763797102390642931133685912317984486777609348019875951517473991713752453026811098480443032030023458688718972524667446565446428229873200232832561574334680719992211781893592376079753980962247644767521896206108328049415943966390546205239670226782231090811159987095021681937708323160260155411873414596238392959292587476453662212705826926909662873037435421573924057581361554975612434535869945808148491052841837884269575904485285956573344740939692398674670026302144284213089517429841175820719196413462534354493059335509594069100726606022764234615918184317519812141393726454541192585578121378319946261791062352127610907353617522123163935422877478837194775133306285699880805580403891799269960514036127645580810222338355525397633898304144603271894531961615329355179619886419747011307206982306259763331695614952956035907070031625895532561197825764051879908560098052578653554936435225603633371689085295344538122048147869046804502012488118264734743967135315599290761022842032050794724693016139583661551510425309579549391871809121304639532052108996021486907502753588775833722019542622696860358878342998993628749165315281030973703124819410853235374126805951688190310811506618607201892136900882168359648960732727809600764070377321892277046632634733886104118028965259904573399955932547525627759095979433399935989183164252013745001544865345076213949844915861655853303160591828906277307491518849876284969060040929844466190451802376633852936913682649280956731572451931228601932698064031084365610231032033997780127134673270783739307134947353415127623421522936448227202966110389033540591823795539115666620186039623417372800555487668149273952299995790868491377853617678553767440266510544898255866919735542903356506979611392482140922966793588243095355922487649774245515081537550239371527044879144545247570414207638742855256135039297205989637666340793961801323368019832673636241828809772551120000724527344185779917013697076399161248475256066677972838860461121443011032895902356097433650567393763022637447307538491312592205431530944407286657553343782185818961036859267430197069817693135536304271499421574472704953934722956941411590505675466038433954109160121939703458993560035492052463169090397665416721587968039080436996345262851408757821400656761115457967356363418762455962805726563518277121991028276134350911604710820680863350115627737485139585903439437676746102420736300930713127770216332668262507749881407200567013276707943519413316790273209503794863098931072785401138878619375273173130891403087700216861972160430776504399699508493474104698554308652756887300510679184110576233607817886572773821941875141872268526141478107204996258230312992520699135431574601146612015035445675183733153490343959944241059511998985183780085616693470714007655525602275120165859826754270139246229494792740960026015733543868243322505649258602796093326571398101932609556636791621391772239690975498138413239290881218919095022366530450207030713688100531195563427126079628675602808366787188849005651646456069914222996906618774321465527551159862374169720372147828878916866235891495570611639049492606210117407541811646073591277375381192890705864346504839047033141575885780941123982285553121547913189887083234777251379068958674169254754702311639947886019055219304270682577802203009256000518935157161290448752252250235270329784556672756502620674619934713861525363983467564399169314836408780394803147299445932780975305199303771706963158777875509902907266209519439739665235622401386687019242568024223475593941542686749883288133976602582193246689196830979331295098401583696139879006438858403676354378899069091634238360103514807630884019818553858299254679639829770119437449155973737153579157802935827782374419061403725010028952391069741400537238190054599814925027447641377047389247827611054768089224333580243077688250180602071858406776629361842151383401894819683131104318015568129963666286747279696039563239020539212285127438722594801343604232414452895487697365219156558128787618257890187531662838337151232776044751435559224085655218645567273661733647448561281306837750006754423529766896090901522585566600191904816078809043873916865072075748213225521353570779170437516319276886437834429735100455902808109550524994275117806824228753680462321421519889930019746670337887815424751527342949540231643484257572864309292732122786146257195663751331446088199752475565460287932866957311634265099819776681035049438313401139679861829414376947127646131550350885152335672627296273105445877799416347887578866736771254032107190493576132159940747783768601451623610239133067240290759443789697368163643514155276857468247424201965475608000622313075283101481317208733453948052968423635514492793390685520377645166832243881486224145775628900884465114397763497648661052189112017148763665227765137809610081424922666366041168454948599895503255468367213678380964793628740977778813581517700971373284854557784686183866960540509087378923209154812214247381055467736836026667457616926649820918807715956059640116723720602671000029552047796060943765167360960500703393789837364490803876898501982905814718545368726892895202961831961119984038116130333948104916711594020552457579522656346865596006963198070816178165920174285319126358557619222410196509894061797516664633161728326772427554794326899294778597319538088029505550116751623127338895664761068539529113029212854596764550729830487401842119497906388182293882527197697641554833080276956303723606551824396597504101586562160899495371824351814244046357721211166424693948102832854317183512701293718159754093287853014558802284638528636278893712484995726847139723112049249370741544458906478622466398340806888320532268483611667656624903093449669826607085007380034020399941528010673586158943744489609413811059415115702614135667769513966376758275314252919809296851596842244347916479136068982017980088072890187572780152339533668455565025072017022215190418013197477247873601822785016090624278261097837097902567061046140738907618105331343059440369018788083555868869927763502844575507258439424628873004294749966533582303622849907061819632709713068320093614448650146049967133172688687936072532667457291211026527735607901537063305389878422353259876240942043405325511861951073365495638515718468701149134251783622999022318462148766083455021120797695291261590521138396689182578997850802671012644965047810502110233068076728959065017685660041537959816214330018988522047693974209856463025044920779134403780354459568713673486683972408353715774661358936315928714544595278765166360852926921557298497000872722242153945983399886811888203833474268393878554639786653939680371569243494986679023080266559707873760720138228640620204073345719320369083030848178909942636261066318059198102441650472163905029048431275110126783517533962218463999728374610926934668826885439142631065919836505847390620323922341632257507263438206765649820335738297513479958437503253934587950425535094674929321570724559558889866822731138817700092819633080391502648453611214510074694292936267323813550553172449845269424260425486209160536593907796859996215729562955505393169776041183402563454353916097568491388111148838938319229570847676377557182088391536972174910331209970172919796671024005476265885790952559738084913684362765540402231588471136039958649246606815085804320752745877287693607472780587322821477948171375153452786541787901092643683547159771105430753900429000120185185472262831135914606449798351777538076322704478140641819923962793696925315990389978363269765576938317599696199103915560103752347442040010233693391356440179141039000765964065562296894053168643498094618252594201041596474870158848652203226633397560785312806339110932223723493480842870467361245782292500403799252562796493008368096081495048867625663388714411509683783053338028800576127488896771052731873002491597787684520731075183494159281870507931940037660520636490757077655475548517116645343093270489163331661205807993011540629558521689174981817287614166650320464670484112584328806338977571873508360216404261042853545356015486227969416472453539679141508280977565717997589614370580722382351551196947522433030264930793167205230883552117407666684212712696726402341184683838160353616963399605458205744699707833523436589477906251221045237747467402358015916626798478303672965810624891841304771467867631267939151563353607680992514869011280108743149420251243776405174760362803725360751668932473038941559064946081640490920439415671875217021009103296316289729289326334743308624306851418917518308316774735347718730629451323206575982777856745083413089167344716113621094377422806050313446958665153045628891940700624517280957729943145584383239428606542993245309434049709489704248619719553795811881638860664131913715475996757282662263214793260304522670828938024674755278044734551470007980079639606510058663172587055779203325041647513646193963071522939241743270900063163885532867861942306180040650187884877510894262050356487869119455766996444436346989630653180341755532966668664434543473275653110043011796340245584856958668413099805307714590593320854259320843433479499432218980832951387976623456449510885133497961234420453263213606592656537697148547058523462477241159030153039762879385682311308834796149692540294185807598888675845562544586208676859572013723543498629524260100378017482138025057145600400092119832452045618310371839063958229822723019632046274328939207744907247838837980577642634334015898809440019045027843943537379724300010337999707069839134888440975196639680620598443236483408676756273941137564468186292208273233595663309894522531598443436529481740393480011531032537467442821005932868983257650688347261982622042787631041498019365622138766605276470225802419812498724204056173287780076583476927413365864839248488815953622740901049730486660652805041737511013319280437191800017427733268861515102877924703411227641157200851142261654504724709106556514241255917451004034618742313087937778791821857120106649202261831089512416113928982097630781478056014341713659000660475498515678324893615244627369450917390870539511490384280725621067681167092820143022374561537528430621318221574049711958483400481859246231262058933207391365749222341147441207969680629793308368349776032921527480277814128077371437836478787424045018134276073394849611447483646085566314398676479214365776428404656190138747371897705432704530980321018313228853096995870409925367041343221452244896301976691932088796050125053512214251688416803934264942577263091384978518473092215978195741136431909831278083315241878390500209344791910751449308910831873938967260120174513425796365360625991398102173547549653348154581359200357627440196055506310925715618547041156341084494301870849198459699484978612251831932517948794180736695526547165578366049029992309313980031047738888892065708725465483501039253990216716367598805453792027591250290541192468438330824961632082022436957300034129082186477125100701958467530543948819170088021869374984226386986999004341163965527373577228330866573413214517695481154658919459768553450874903194865351483866754301472004360160643974757354167952507366017201915012940551316822836868799809668496488579599090912108609592901602529594708815451977100656163612038322688669951104844703919277023535418395063130925591552565252048073560535253864769557361170284702532879802502130309267641660780994491709867710570266323986360410451871568790871356011918867366826728512136099555726341278589148947465628504924440245328664699210279558369851220028225087950340360049556075705620984587836558794905401195782173016892938548095798343754411710311304930773087563770678486250068159286794738726872555950326023179913631581281292541239883487286056023765698836745435898161403583757144139688332443150881685878240173052522423160375946533213318197730430541339800802201101126103472665934849533503405714224523630043363693312463221040295957885445677510412334428597247471714915610732858385729392167232372760198745338901423399933045265238247509911929195931071616468612907754282323256927141795515214834757407094041539064098507318303860308329807138967174546263932200301188450866740169502114846657684545926597426050808569292972183993472953052854035526051708796266618596027173227407387765789982938431938825503321681005627598023139459546901527715289112322697353936129752369368046948065359962749744519850954609493326441061095365714105163747314192121871545187639738346609977765646079263247316586141589188434469729921153771363441911841869913731340859086248492212679683122997684716368544913207521104888955872176429299776514594518133751376867263798980484300440727811553459117582227586143753429632718520956482751302914338672287499732678282867526034980650032568687336263007220472742811228787272032047218332932395051244908957376837763237512712608022649794612067059054914822029957617786136251654653603978862778315569279362275303022906015874532700206725310306770041351794973161844018745145805081076918038210501666886053719194995466394462839103608870264661187415250445064728665526693869252511242533205282556232986164642503869690094142754437546699866116112803547054184498791683850722234536717141928841985628220601050127077953396384837765489255742083010771789173245340004411675675230116992517780434797560104094900242735621099374755188065483846018722805635883573896738175116166826753906854118837624383710042444859115770178567774725792468583346624415982638175778733231225477387063611898243018287289093212306196385812784308792613351156236631242280851242505442162023319875177006209900077235593406696153386137995728239340790518601105952176333957461239851824146389397011889736751653092476150125216187072331960995047115377857292312156257240756186162537319302759126827874664959701120076584701154429943877766272839888238492617334635753325141996899399785264827097750801955370873157246319348832811946555881657256208992949558732788238800733671736778272833446900093358579170125789088820373996298537248782878440171238428775826933378392958305816275425649473275856666049078391261131071620277984540236089433303282100298175583761722392605381318789360942679784078868391133240709250900435765936680083481994670420822218787693278613017599420339752975054557922558925646510029957841258992502462037646225972565493373601977786853607590594024009253638752909701254360110814638288504289057403106812590037449984527698726101055327130361741651729913683088963024380086342878618505909465971071909274867336787514151144111239857949718053427802054801658764831961913605432607847733434547518961002994849789789164435170206313876871139311625543248542397123671845300309324812272248445708948450272713702576540237574519799914359413270764136057139583917417794490553995988619864289885622161457475643222019635741588223485068504081428895783333986459127364151046163180978196406602184395788554251359973246275548355465316884994538883841909400354820528170550716990342115999689453263743963283274079783389742061764947424429379751440649430597811338090926822303860425530734617433226278481749764454795479750202524430183190750170780494635747242972739048455667259939502571499646150831944930658198504162147566614796385904642362571358011043070932388154855137580025050532476781208081905122674715608289815768404506631904548465226814664151896768731835766548198099158725478253651078601352004688720652922397907627969857321116807242561704279230601739285259546988502754646137131126782713749574812629738846069301653930292664468652574039497138509607938372154326675478523185350831803186662597072233261411787258302457956400622863475976271564623405172631183877287075933166037254266339746997796953211854033909512512233737752398182636397306080420887274109364652296803633999638960260099245144303527780771794684703017568405460285427034731854786155641232258330553302536137498304738948287243968485341563234941804901388212598846080197610493172745702059082451665754030725669552977973699850924446407497345236571148348903499597999149530450167866383785872792863444369975409672058093548093006357931414608303270302108087438027934720647205072552832545975112197924445035831374664345105538812240982056291805542319084624217073703136894908242523488298710066064175898865101491851741341455547593867634407511626472745496173514070897664093192200932680029909425042917572728580327597180909743378741747682814853069163129942567394951083925274252540620846709924348852743516629464560535924514713760724363946336091241144460449404725512444827765275765420306510731520894229862640372982779007958245398360711302825254728717468463207808858373905452988518962170041103641901924064521932895881933462549696749712072507125287225821467047843305593122379856565430890472915403669886747369903581338214315156624678634559678572939103038451511378737860045939812742234496390483814619567960277830206291344156668407953858603037740728901310961433316216935416927868811527386246972117253492422195573801498861745587124074156700479483396533399114526903072369206055332177660804349306241201531690727513109946694664202279597722580046418589374734801925060794577579532643192583186036096140379718283214409681151992061394161683435426253764026122437697843100393035735432132818790746119911305905858376816074207138827217665420463205495064511669241695461537107690456911584994799668185278002565419946865507546222354032753852424463656113524562672748569178701138758902228689289727824679321817735858463769142562240791572678655316144260121791188988025250668860262119429352414353469611251040281772190042545081593631850034012105020631307979855938668286010250630200115022786082796432029520813079462089669582753544219011927909954665123668300284525827902724413941095886639504294353521586322129363130623967425320211630269033041932185537127535412633322358055254412158711234670625522478254377234082343572428439809118787575285750612408431441123651926360003435366306175717889708370248618254769994376645973255955096345626303908551930635095162337979127062826393499816917196846080647497688782075572364180376590324416493367947578161900071963827057476720510242672120934096127165234725874303776897817182092581869692887523299794807147157568293635509608036032397420086181554736100004511346493406106057146392922818201047311519928877937723644304667431822003138318076193821863769854206044231060876771811705161742505741403150996332996707683098549852089878418348711575290109249279938749796229993406494262316094418518784299787579357763840242037379174496248417771261160756225042326359767453240172653564540912424145325240038843622929196144239468401424545365308320117701209820593042535810359578203467285435962437124733245975711135067963233648328964741120552114224570809108340469278056104189819475249844487686232422730163598410937500818330518451889516194752205730578574766664768329178505029375184719231100887685427599899601289953651876668600296991157332383407328788790836270317711051396800311866723445174732188942630727526654025127933143269708088890297315806949226232842364441244016801065246898638967952464166369166793366801632848965152360894147831171122662814101907257310558651720030996011643515198322930186935626305855331340230637653324028661527897670670114336745556945465925713208042753075132619627120658491856174969407863683848890289471523900794346114884509728513331983256170989870554188659554712156450683727695107328208073696461914587454090888506835977770326123637802830611459849956232182220610769870389788306748360447163587367402371812227475311890932901796718016299342425224378692977403353105811821483721463352827142496265455854198713546352085101210732986200809216204351689702042343431650326777350676224300234379812801306344924759309606423693398316340247876094885911595014467568421580406071778622320319746023874847323343598090281823464670219192379860978382289466163122908414272165413772191199140615889576704643641146449650774706512476019303609631805895854570960675719610444971836887080079787447280881207642360741865507233430233597025239913142337450055140007324395814534021551093190297548549345101486354014337202232276275685718721677979691076626228353302503387334798271579734066737533451168107005947360220473792718209242125084393937568767636900158063448531630775469074005902652633376587774326068644631458936795159088330186205905014418542066560721386343813569746667979025168446774892439264469032994543688305298889381292914258430481405028726324907479330368921919780951857111056843137199422433711303170917360354798302585396513352976056795008932741567796308692314298469380549267038983022903867186619109248731477126192198044944563811460843564978460345294897114900984260079103851049239200993663874447084401904240840442328088723439154056918983333086005488225781795426182152477143055334860168451377055514540340941203059013936089448874664513392964239221112134710818457562396439490900355341861734813829657817818698414868195864470813265971534867138649052908193143987268725765456899692210788650557806322605905461339015942950445122798863588575616406169257695457122538223839193105690621436752397150241149651626588041251094323587179064059088219118565677317794225491598919872271930654759454263502894895437993856100932448386304854360189274679643901987114638122348730565413394401235151320933630151926822910032040785712853055689317104495304594403176079868799175659619358987813110232922685071833398379800007459661208693462171363757543142841414568126221167214619401755592058501487303673969641212992775299043350410419475570174730392093474737389722606307683109266353018100425351182647111019256398415802541886227689191927717639791103342490038983255649795261595502437137401063315893296513141877017040136626220059218726342438440737783246283045023445123940124221857867964479786749582153975066758511747665430337478745026244869802597794365500469285958798237163383753686438726459832242006405013069489893631812084271182853288641512795170761674339019066844736057833673198554686752731082966940955637174410693506509904809532746291550216645193244013711441288531489176436772783566584088151164056691146812589679495475073860809972413367604251804137778447699813271717198629744911338077193401267488737956236261581197549552480613631279829014093213939261133434467175164379033424129105597959361906698327515144667632392524910969946249514661324516978011011327818860009291151712707626870073684880205930045327692004539408582743789172372331885119891777689670553302113780084376334060810867510072816432208547743580038679579229703337713541210028059633331860896509639061778973663293765293904958988249283881619327588212457453111743158096503599209950431602042550418581825296632834623238126454006077584659415730943499006845291349654227030789842034192657858707977362021133205702244239359883213688370439378878582709914106177985581231256883534756319675116801930721855802041565505509325660775274598048629231104855173726852792068903119293014956226663300163946544241163913854066067691311374955905649173352724472558311096656150827127817662310268470768193029115489635281929198669342437687832579788233129406699041893375347697044941711580261165351263918236509759201342616281081074692384026919336818557796519284678786998904732366716282909627965565672949777785062166076599205289984408767282777859442697387577778565944515986394699118408512322060799938363519336502667200350174864313810497068174467623822473482507565529631263871253209901313318001366564863244386963759412090044210632353045401985450266594720069559379238741225596898846351751226736829106574115476159643372671955419006621328212097151327949733015165835085548840553422563657622897112843280151908670388767311169855151321350113293040190098060078737946757299749556554333335414552260140647442619731329455046031746648605469206746065057333286464204302299986411718925036608718845008578614728389710637752799285402533926599553178778136715747051926490625657706247608816156926867001233456464514519265467994952193552066250970216907093897271054451501725015887873241241426958658732018155733328319479844044204221014008543259753365032506889643387663080503181156283440271604255556296736481155618675150936694559551398933422330697447620121856898905050228880449733416115305966807550059678577555481993056060108162046576434423616183895983071743834443967203539362802720798658102990445810017570066385197984652184841124740049643162899420987322527436956160295162637541193505776310837899551810483194608303529893357932059533631501985524465526684231928495690107712205724273478528525251535724216429034261167685383402796340995390008795709756225990887807064979808882291116932848021574197988019158185421040256833658688353475968090542995152430777223095236089802259926710383717968237330076986098531520582703084029451977927385238863788555362813422841078049193420572381369132647340149438401000196933291293099225613410343824362327608201089940717116139073382558443699122976062405958933877275868287927171790133822320377803291289889712827887726025457027451599111597533349363287943371853229898883236637706786892849756487616543645071076523887267249115900033719673910922233688127745167508410207014432358180219064070037691257542289544484290313351241937287164365229724712729550703455235087755257218677586313837341924220126025262844537770102227491525847751523607385870216020627219230714651376103790005201722270402563970576892169342492043443432135931211806049184444087476740802427300163944551889665256803673247841087770932129004408893678956138560984219476641266692839496952628039085670833800602968488033867994759208234301492504786697237236233128065995956520779660151502575051432277857691568068461481849922897265955764390172608151843423299104206707083444799481299941430783988083166124454238221443877360700952721686095596720900901143011378030947344035259205309158196967955743272563804231471862268896356453860500509408777457173516829696719646110008149228337611405664692112940834535107615860396035653918502243837360200890396372822057268743059856466047798711611243306425531960169647256920849989024177370662725000816015412455476284107845612703050340662360638170112396092853194477930915217186763227817056486699952423116320598736542935046836628576728997351419479152114276361913930383548823898445565851430331962393940462313657449087119348105762793459746596289629330536764787657520145858444345022491747605455176746953001448797409494248067579052401425964055774937802128588568593432549337158470088587708571331470901634319064573954718725234828337394247622909001246737103756719332386245481760566612207817753907705371571435875432267002780340225440602564879086221160762821023942026653746366664888341832956630574185969191225134043256719342380448623573933649657820655935735338838157368531925019534137368398150185817611453727493904812461580368664653363081713166337789256894274791427868822154598833997860731497028627088990424359382904772410605900324457865889544756165101795784591508391450225214010287197380853614682491217465223825192018809909796204689028894664698487407232953575815943768834074960549295492794133711716731040959964483822857890176390055973963245645241938146219190789055435527493272750357677089237938374441100009295670884033944472602827467027182549288685874695106530408184689133775512901441892522659094823142193796794006514826574060675893944701988377548061346972892051126265304391868134582772230092926105992204142865118869003502347691899441536469106202465285682615870092769399681523611744133355907870633105660846205379593758821452753879725630011002173207656024823024322560446168807766626803202397188738532832610304492805053328907626343557644048790030550568983216042287919953378971503917698089468208846115427442205345098442457551000186246268251212103957023163043584393711362596722601848240843405904655916160099363677618063662637248019018002873499167152167685781646962030172651668277019494625505025672152724103242600060296554065606015335455875371124303357997266378466365439367730098925937606071265609878612324564244495542242830748824785546382365524907791201503274951879900839136667341997732072379604994152529641654891967561947962737505552046753528966232406051266077656427479255377916815188217573638010690883572661773669772392598236549731014746940545927163247418173439890829255124538563248389842724336779395384905010602882175842678117912201677532246055573424330952715404067632195573013286039457191812100889952777867988357324175978467112837551511901388138615849091313403988923900190390184347561074988330304639883419071733187569267859115822310607091304942816992006731122329147332723180209352198053286014049283766728196564573619198034756793971731359189583381976951454245630857868457119117543029232884171611186697538156629746193397066891516101718916857479971647884637266706007081160816110366024971790997511124094364684890671390836900106150833536653031371488030784983543779680097528735929567242705111442121722317812491837390823181241333141269329639753026463413643458665889886342588094430341794446193978169825332911890593550882615400284699212682454476352641887708881967414214326689955893201390341197794188946964772425866857127795040856629574865868850386322345599183109957207153166664942043456968660802807778966455489024011589509436783089044961959209687332494131960879415853080895657596392875038057606411768941763476015506276920765657969227357028441033635024765090465463830099926416067453851801481171223602867332864905805983885822935950231975774103993432769960883678873864527361736488251952862368534836594313734577060557948009392440486672348600187579138036414825663701424835847390227519472852266435013131003034184953073026777023834438496928450592716471057861385506873193706386827896527176940122384116976083872059204396107065338569336853468365753442337528940762693183847751513033751416046226202712678553223374915007537536358160808810202348777019062781200079173837737122242635891780612826535528653777763774643450735244326194600757702771112142706080314212967853633791811767056600127305318157684213314104876888764460516383966022752866853924748493368347305395891067016340838290147507699401641824004245128914939155019566278011270553444990522234403064916661045790187789749161777751623008679833949421046331569218496241765930559932590508452223699416390694772702278084036799541058167594317507519549927484733654420888261391380717011003149975773840696603447560615820483997929568139426583598054633695284855126041301081434977746052089941359156799093108306541210921056181838271538890658318834182027651102458515147833891701973263667410563262904748885087504351306462001348031334934713347078580569029925066347488811822953916460881045687263799859056097094158153019053983079289272181533755864118102670577840455705581080546900219780051691214610183966370651066992481048645444805677966989680292952435694901908876323110269706815475365850628514270910107264585914036631782932648437295869319966778219276188439949884970096723969666236273437859892847104356407486385772921121097060741227602076795418742709859639041534655151495092770055426554213015599958293365282740490163775323661782319635961948869592308498015268152626642341512408391674030456852819306869910517139708268160423878377188358964168036776035767416190663158955876628792702292992875379836898519220658355162080607586024707093666028395468596109789380458117475570092893406871939763408357710091137357014242692710869803751097597161766435065347195812194695154276830769353451896358744901442927263672315510754500509373856599093385290478099046260478328567211172457949971407745076027403430271189243545125741016110452240149620894160485769627950469071200367225210570810266535435128579878278707767401560875904266921486189113897074523418355124716178989724057476803903890481177491538149756525114752780086147243573514082974596885567539177204120386309641249285117731710253602517405005809232090221784635164458521016291318845801714871925047612149492540522442299085723924913959569321550126666571179017260353263847974550745356927379855970190013060265558979423319210061152935933568536958234530644875123673657918068187459825072445013486399669419436285773152968004544247340933548635763136038261225143929573513138556433735322809524597945644575325240949221460389549562461747025152525896526486156964635244108321490904846992343586917872633508743829306332815343216242694555756393396009749460943177589376028251850671519331537583254588434536370520133052379548509605167298058975748963388817088653725855747770790949148064436346215357793190594338377874188414342883500013162708092853185913018816538732427450448928717889111830562803640739790844146358182921168944855456923005201567059550450435889496680350916207345003942048028269095336149400431776824596331145144650887664264177018144303907600245462009377906699869939804033419849570831144421913948784678664253399082775347692867229638901836565366440112549455417737961027368364291171911284087129318636646223300955892381388067608876993165038336859294805384138472633766618176708013832668820223841703102445400749486052715111569733032140929401071690227930980334511314840364386647638910751005736450997562217310167617393688007679227139194894729962616764540988889211230428456690245030273749086418950223817234202891715285255567864708693254761170521533517908488372988117197130505004388072314148099850519469065176911194362513133384915539328997800497255494071071137540944606562370252816814754067737127639627038276557063718932309903654810608041153237782221281912134380359045650070434849615401432223240580628455435158050643443690037044093284454493608534829723595380138705370850919578214784754466334909517104233479509124970364876654806625851751949076327932024617903174612662331252352558965694505833011387436126528788550358526839924603196415600146611106663417560641289648612099365979999530572010883072813860479310832909562276911378641122439408951347935708488741597861598485759362200420580203523690738605983925001882133265581550565385537071894364922037586267989188596940958793440442075442556436536321319582609828723870924553713551524904183564746286013761002372754566685659070499195913949669589256465651545355564546109484223877034225491095643737120164845205603467940730879248552818525556740056373313020127914917086834263349631120934316294204557409622871044685782564235167066710976437478688843039915726341119381785851818599844277934106276327064531240125492001504956875486112637344786494766390709017894119370534848274906263380890725550450195589387339576475738785183541767576707487435830472958048838259012331228876907911208491923675027387032374169993737411704032351493145386223230329396647440211553824852579505447365522364699724249742861861997744942054147638793790159444651334262496618886026226928231495508709233318204509977733905481338778720075571320177041452953204713209415443468423851865886188035435260132467864894120858571008313417460257822364148636527297356412653872545652231650129076973546160818422339319056904946472555336108719411387943072627722642619881126228375651231753870921403231739353877825592212798727212255825802669453510041891156439511928177404320062203436134499262230695126141913888890214122059442577168199546498685601655234594434199919738115819540716642390497863604097731312997450901101253582123340365317360624964079483323609114672642417058037643810210237737932575972802319930930976280046223643947208545720169741212139059310903523961662815443006347489063637614303695372923253168748131163581024265200870659033898076476095548065277248346008470764477865826577604870589455671288937997245921323468206065949798192997228957879118963106967793757261967019069140823862142618727803027625532674101903552630611480597139551781530662962006482491743326448377730150321659820809901852000013399800806776693394643926511185077437348309864327238974842475013382800521506567697913841370589051815665839846606504742434506519603054905886563734372693530144102183322543476189975697489107075870340444305928820044584036720587381149489451886117745880868182274540589034670673031426621233526406216636543840550440400009055644883652529572720471393156204825245682424654894359032838753005517538752331965225943213485243708499457779555893888896817709789994992372564530146242946677697776310371810626162709476962741750684452030404857021527622092319018881518635599824363470273157714967001139359729979439789041944722061969812470479824881088326033076195425794795216319261805262366273849222935723270346646876819822793048107874669277260689982004762762169406280905013828414052761852108974456849469492905467349826054192581094918460860910148270365523038779603105698968137852081174449827037283871894536719642779783425086522320076361319858464506959001618432620493626636136413529404401528322124245272417006246546225743282955505430935144773880727502079702383696314392643597043515596012643582778053452401454297914748607170046712423339433591274062491383674173469605063238391377796845567523540025396224845996310452432542352263197059217070135839853319960962178571987720430348823495492161528548457008355690417171699308388935611672555153881627081166960208916948846291487992428836466849901725800586347414240435357473986922428763764868011730452486609190153335418373291185798862652664278089850692504346232659387397511226813404558103113749074161535798416347058418207287742826823071348455850828379908561707132287309091435475107168401376534650517938712111930416786023502767850446621580214189225574481264554953579624063088142855680814442155089065275912067437822486116256922236598957347299686584482593969445324338728350574996952894406044402050858458621468377153406768475681223879000954640465106735857898962477372652655492885534130943342755977604969236109519751085486941105896973784786006801992632570446587831386047650080500255610678351443711796758399715309777292275807957240309440122824193713360902192289143542579188686245191051355175416842786585367362547141552928823380053343959315069633747288880581704822865615274270859776167782707132801016318609645304524634012917532886674815195511240560359554870643562633447428528464577751442545806375752211684441903200345064730940407815641709947580269122402709354019868335070056450520554882140467745658719888084984619112059825285162094551363767494929984049196690988895321753485932166744291985071098401626518139221235038426721974494975479565661412393989217323625039550096734624748342284645366299684542533662361009384031776849144218966311069336679131196688673956825122487330472009934731343396796097186464273456243655179819182421472541520190613094250914082780402211002253985677628613715035900977757041358310581662609942633613869120703275393074243312783973145303002539793108767851464254492259464735929592728209984626830308518069170890383485862964315344958490457018678057289547240087649499557352609093183647016399110076696701886007055128790887394402280441884201027144208344413767135734972023998127983818704107549662060440000667980154447057129429815005553343983647295933445600545644822599515817141158327239770889505763689059016804209632889268094993842788177859118292465763709229400462302942237975518238987827241952200575523300726535776957930851140996682227536619047509322250588080286733985738217796210618034160747575096625744210622356380807559075281392054622094112521297130545117235450010071541055911692977700974900021256947756142339768079325079909991028537563995877839079638465953090693929063277070553552036355237456666163973779809362795135497365745394836093368703468597325602404860755323884397310164304242578457952130784990736245664791684823372955899815271907750727987811318401594131956833516542612826923518001490776017185452443741895004268442307108452936185679778669635073688694817531459636211361802443775130267956201929627288508029224716510109405557088995891536518827440502174666049559593138774390578956549420435920231140826326634283432659017296965650902910608390247844332085912999529297424956868542117802663686718611484214712240789614677036719012207319429863566602055314486559184598385680320163382872585824515329493102551772496047948794742295041105578220222894167487400047892312145772864962678804580865704308506390595347488274068605126034305866108130053720790108490290745931272022376419198971021817825185338382513622891605899961132950654922338054235386670118243137266572000133567624232527182073101589581538990241742374330387439776957703306142640087467809595975133679151099831039866145560997840870039396815758586666231702866016734712612399417306864251956327123893637840909724575564726990360110470451096854425036921595645591003874296719163346504438502437033602245938415027207689282290444107942870508675830222628580090367071357081263064412449448313467061006245258956025489291790795195711877542945035522682881730271334594939948394320832693414319922359389116659729908197048589343288027183869771328390740445789640483106503941525759600705302235083950839073612733000883238260458804845835193542577776012189491709686810052445936162934263149933295067324153687881098555021808554492835340011112412332048455255019931721707472233450344237331036829260279020144941602923822233338722568575895820099843953917874235512041576162878908890558020313330811044177441467944948146821663411052985126923638587618088508545267343521376481381678595742200694483843978038062495197380750594861802620918272235103092475468037581052769851639863177157826083992143341347363907677801620386913365783279785927034548743383088361406798103523940302423533654219792214421712047487102414545503042659526526978873468741982143115514983296439899937908682957171016922788561507300974170980631891107972147514108044708210638317482096547636442826060237161163414994918202611892995348540843916740085611810235319327611458291730798094935958585048467983850480267224656178692311985796939555423409149215195883764714201804243527243567316260188200405387444518268444390124332302983192827442744797828096384046755757455860886306475972368136044311631995378687442774455901928358427683292351245801372311979267972990434949379373421516322454195349205880800143062591090824793732374234677474976164517977833936179644794768207191158164324683442570017012987504750131884952531143160066944090571995650080786633383475371863548055697968133148135853834415596798951269244965872781618318212633044769102301216452737186060827400448397954427779203846576479092959193432985730989477243264556109543824776847998930611589775186268163323225299936707635570121152751292185677502847419162084662223378127450897901606100248524800060588108862650088614389657749378702691912212369493794176848647511946418668518004477302844995944337404402775005651014136246232238132373167824519453589469928625741291485678057805938394184038527282066204755914272769669877648289912851705341477343158951663608676859287141557700463736708114900678000426835336788890125543105959868347754644793596986232654832298597233178324505083182209566491377750126134499248196928578534960415459194971977907235743912872749338183495122483330652092578157881123418483628907276102563312850200737066143712012046835116791775452110617197032168822727826794438697085965218361904196755075136427449926718238114174079928545875102231868751661656129498204079112923125557418076658526497157965682613348487655482807065389058591079524221556380939002008061499959816765791383328373585205887283020596961551429269904211926600817991132186764314954935011099473491233064408168512155675614454039509382955594599769182861974202302960077430504790101965653225883519107091685967616917048677846910914242014468450895800518143113868013611072263546903992918495881230396195190893396687334405781765507645727938945627761005844897948294203684771957427123130836123228685298212836088717517943296889559758254407988057742272210830361119396417465559893406641377231504610223630072546328291835568763880647384762698469259305542997173220073780342740169279623490855845801780550995976141124746185379397807390298926349989332144603455079216642138219902306166374251557455841565841100990070324023471342224676242994632795819265942889515158448044861643183471776042729078740620207355316736407055614157568881747705196894450500470380293656978022698171969090772193460443013004457488800118831776312234176308501794378529236497556483695847076586197087732435540389154371025369738029322746533886538884066811956692910927663827414022418146963193829710178220000272393556522966856144966704796681671864622713698583887744578808980932650767007286453286733960529241855654540715963163084329776457511745446562292141735096748625659069988746742396203805624992584462655502399848964623283607452232386678255623951980613484227787998921530523832443626051189073396310795879682931995234183959391829363956724127031086399350720255890711514806085693037229237794269631629703685747716459637568481057838010624801327968420251464270484003790760174659595518281361504786706072308310605334429509459038725825215060087874975396910548100646067575838815830651332878842591549875517761183945473807536651353148420075051966112292114751138299123309255381500163331544019633011627143924087494977074442266637517012026814981481177941245343589001232474246190567237913925797619719963943634541907953129443299638920576025208347424849800815054723185406167863168368354649725403779589408530293732405385479191623988810892043905670424579627264428572817324511141842311219064789980073101472636833165221443548543900844542302877015066436417570160086284904194999369495100271864776951414461225753448435187453317779413976295253336887530174287899973668784175308282238003855605593445498758370906656980314606269811927081990848600803024724097828179061480636471924136846506866335133559019192540136062554443909206391011565198196935148928907083758282990521650681304086383832444464151474573004497936372954340704385233654496630841451097163549764870319284162091746180837574615730135906239880498605466377344386380329890719356590188252515777786829166340752543860114824888025571251069350257714701751206362859407649773805308419053793231352563803250192824409747040036048471374592171031662311453697962544384023388644379315925214060505177449748998340756352698175532706878911408160146057276049342518041932733201132136972260680352827522707851280079331761103709215922874578994189692445581618006394146226891697004250943478781269487524373327310318530409633095629597715952298270191231058405076636895097208573466992903776082736461827650228875033347304997056725947968120772265496412710396579374478890317613534062572424869924307655477998184723746879104381793061559446623261692938979986999143444820337356567822555791645375537228503834659165171354573269117371708893146121223707089030503071248110900909768074843285045162403811233333824087260543645377553620321976893297567616154849658420288903447016654588646259026288340885219185022711459454411913101401589477311840459067764440640918829236403266636193020520616399801808093750969061605571453516062434378030129188508568910140879204292739961223571486647486608460642351096121740248702344721887534549464698369360860877374659117620351704007648213117986083027864132696693561167507656209742431262115057926805781371336588732082312083991789825644435363258275291272868138963688276438647327079399652607897657467330448453956164995876944453504121205693594852777306207870328176771785484255610042302425405277464289146336285770486533657964145028008379596085328631154864226140954891308639142870936194983193287144149665426450921156318934068139302554350619920150990830747209302025500050727517381366791068976126375260984644467706859653473721695816596578276418133357568355363395112202790966491558936244891653568529445982642706720501874799422564080224183879919673934992516762508010261514705782075415327135110146631490942089924413713876016784459835537187548849939789372204362904164610000828660947894040535590627947615080093442945831627007149293699728800640748969937589220126432393894943500957298700970172780680721064449156889926156485888588197285325794633834314535062694449627726618818462420726337238684930167728517095390684153864242338900172441227349521674600291119970449207391423562850281519282892058156523523699736290164595830183362952840793829216136591941306520811333969282423487182203630422677343201193300002964012742479225334801035449683616053828076114707361281386130724441051475583488785456071854719055553546553801101526499889222074193487141533039935963588054671997641486673745242794196438336679181948402532049011525255155084795344483464134822798897591571955414633365711897318466946806975851444289962341328356414405221395608274462852782844585183573471878094276636595092532782898886157731700852593294962132395720732195658376668288651877452997884590799844156949358839366761517184724892212557406923623293206629447769855925900221807735461435787788236113306835464351719812969246183572959713941507764293435599293403690969101667281072134489412686869871373647485606024611490859511947548071805798464517684988105617972153474814268144035636984245756113383135409587331386622657828956710116295647007893355856877098824088874354656309400114851864599960139813442203379002717486183736853841445722658203481178807427490949260055773251090696164190290010409928572132593370885937147346110387407433163822760066903195210344501262658277724922453919841076768616569587062710121324374536234938815860374764836406463899484521540179745906808323007815571527750289716616589709957760228026696997863522483308215486658471606445239299674797427787143486872775718682836279876739663674594446077936871650549092162485557542634594454808315151619176680724656262323308195119968495648452683524850071024387674865595318418380091085700141191656950044243654200866799244139107057801484739219970343472293776522211426601134578198892710466487834287128370106495863054223442715913779375984410922203443456192276345276445209993535741767905696674885509597397529444812196686039744107121467494587176338612221415232863812293300716262235998551991897286483151945445364522457293056241378492814747752465372369644267546463491027129806198554474335361236818806426264476735598374998034807116328195339185871096651354064994334662429648538210243052629903655688015014152842526316830301652288998268571722096929549157908717779821093102469409619349106188770901921423907553189378230973979356698647194754909919515167837646671216015001491578363369944440369037503275980432480340431895674159840744170889195111711293200208021746840280472589716275604723187733142643566807723643505007412483008800574995940921932547011859799301716913385431167820237772693821518340909665347230827411896574824495257570467677683269621901421269155056257318632168834324201695774906908408292646575209392202001332108990130714058466461176599531937566940212850765909125473403748958298358644934653485895069972796796640776426500339780596604890167947931300922197390611722247774270800933129752539492796899689528705810614666110353929066066675353315071157251293859225139892354247722638199272370524194964830288542750510472430212384052765897770739623227812235018728501676625708493075193456421686861182596408735600089822460339080293316599759629945902746515963212371138081405557320345770469199154295132306586462112673025797766184237020725982268691889531840138567242413918440920818092167945797917522199061307758693112640141493668379071519271505927287561720329328772253797789960062691365294870362576141512953426053832441165421411571140729983212736638797540640098659785753296570282633489419900833562157772946236707909865844331178455831646466471784031554018928884356649396514494606682027054108358761253070205716122562151775627985617701059262067941484329876391036936678923044272034455674853346010895955039951216053861690773398619742304911651891305566217556213325104965954700669737267274553933853235075482929606502770134599241483498173841517702662323153420348890078353545740348383347168526511080797365028149064451845073620436563108295598556348857967217424595361407646050303729260974722493879045403902672618087389604040774883147556196273842119263572620827043923159030079911320426200599827452026423648002122209235118593103206537342159265949581623065805727492968078634261109774893231505951947047963664081066071351494298154899658405543063141419510031473772034836621388633420320287591751458391128100934198971869964620616977309706832715645341809166265796974349062252729789686178926397092695964024520988188135059856230187757329688124978568145121808972713671372674862319962121140514235913766564543417935469903356202605640076582010565043955905824403878758242237988927558979708891268625381458275612300889570146127330645263328264738826932863562691153788095083885954762247828709537998844900389739869757407409908080415745758367381739388313377010592014941288898226076230008616063588658746213221333972834200947430574282247651185806538505595748685608638624766183322776226068379912135660228839643831350662020265350419786640978901994160006086336611182636827225246372754947834124651526937494825372784083638258849948583066543918749898382354159162679281158058553753436391148549207357562252503832428233804833696433438801098624758448856713900040501935335553953805739402297725222364114290610661094931531595503764726348623378931847735427506782496824968917179761469813698400152946273848965661186727280994491389692961458848568626674387372898103312552855185871497411892505413625556491047836654984765742108694419873568239650370182895073251666031416713554127340598578523482295257381734758650024395449663268270835135712976119631734996648306620199750127774889070837838927983156097987260518616526586791944245273378343733850162690466362860831829289128281855235038223240388063150297334406462268921786222040795653798184937592880711237821008071570404195836924149329391632522499242540761890218869424426308323600759451160434711929429998377191508923599090890355631973606921665170158139152219573925005191589310455922681487081705393385241191015497681229156658680098520382851759443426272353228285845059031907089838497900639407962464288373503144471027406638178088342682429604708378343623135230187474886294725016952856921929775470671893028851036139925330419633048881768963052802476276365249089349107012326768655854552040904534515934136620867933262917307817847533081372204277634186093046354950162248726366757315795418182065369887274045973449903089272850141138417923817989858364673708387316796251099384446225690089829496959346505336124558340028588964967488787675619801721810222575269028542997206230439575554967334979711016699089576020340236046620965961087157405573627830359265810467319806707556298549263414813379237034652442637861062793882827956943613583225618037174266061213680693713236035518132374647185988882008758464483517737711784020302315257660805944178282065605443293574352081103502371292807284055248416829987891964283804516523501862484096535776882672560696171995032690213562861031751354641030887437069530667302645727464804994784178090994538156318266747973108852897539105938081064550230627571818408181988781374121731647902416086280384901696009130363358156902707918452920287421347613187017561070645149066173858295646292315811196175420878726684527062382703071060962614976962238128845921344930192581281349866160371133044518289969920211973551390094183244205545398782900663129866659308299528257260264410985888684707673461287722401068299500171449475610807331187746476694484228054958050907688742106573449214773669491418166910867215313505616591485712158147460910349051909995163994535469640898987330135978579280262619612405829390834028851257305129551803222182732074740799520583657247452916875399710686918763821786632750562698773541311891894208989685296174418456300621285448897853334002109114245286776607054836023811509612756769553656090291914750874990091269415880187146775012506116334843817326065021145606272312122591444738703064059445031451891576194173639345772723582645527310619596597821700695534227288579844980492018811385525016025156215506260530404519254811299385903994118127760979284839553774376223330952440131214137919224324047728912299864156676514327568979628073355597865964716483823556263129585180538477272145278548601109674485745303867010361220403725675725463605839701492519945313126668084154949020775669132196146400933748342417531078147135137284494727956685667401823181389349463798325181804654516081550500840551259193850015802731104977411933110507720655163813017398064725250767085166717234493334443324261353991532605486077655589755862873736652363290032624716698154608363494833219477674118844328038791189325137636496411813755565346739742041857792216008141532238860557663704467478018098365544103760612478814034814967995100031321158340834830358782473667017603493827535039962459852328070085784056853983936092128163245022312100054983050704581610032007656084908749085617616362152127453337515396255546047225604855627897266423598830786231760298731150238512513770833153376202776007677787538152363087558470361095646800726863793195555248843708516267219857812305405202548907338666502772585065118564248758943296003949359766479596278865137214239237240503053142564491088495308017779253256745590659101444344129392073445164030062640528744290255114925557549545206756319462751389965518216318380368039272338856111199048346872414641715969250508938123172314766905983893695055704058296855000641204721089707460142002894834229816003173092985719257531321950095061024218478378622479962890498208170779713811551572579772332701210393102459101713264163830622601225107705428143312947300001670527304166553210360398283872120334018052303459930263055057194221283251695563921332937622101870199644033096717863271971955985174034127437941536350885659966967936773937557940665382749425970226181245373960411381698574165854815607489607153940775938117762691566735346681891329347596518400779932396952699122418722575651503983200830737335525632458207168727743045064151889224551516983791180028301884691635531301402240869810113972101794775392329545158382742156812024572768411281856749461097982140609479232556810285180449612219710373013601397704552704105372405728440318516523333855070251389476800545049466751684049012844056469167224688957084701343887154339005805347589039298433106053013141104657373615681136251461916909479937473855656768983441127662829248275656762362183791799798617465693273756368043752640910258857879209152427947183940887839762729188719309380822003212838556888396016738798172418990422968351996550600454896247890301487478143043667245719089197055387276429004920020586000915604068516013199652742730362255901961749466304086089397227434211754122177781878859941572501020802080508195783944735093315588284894671494200034326159709655686025415698444847034796368582231298409254578489954760345239445675903331768599119476432858811324549406151539778996347266222812669220853938874281731677183574194783870947752278479682631223292615626826275858150987629920324696290451645090389938676612251463550824333226544246080325564336360048482233259259310857474547135764567798076120656042277001961243122200354939104956856032790803507278976155412365201227568042716989514788014535322179873733560613787955223832209633677837643330643353766952400861118300721053404481236946775723128266575785089725273211432631900014675396896250276110978015827527001403421889231296321757640568470415987262598966556999732057225617749624510791093045811946648244748368425763984923665489904080868026409370546745341464137717662100066858065437639858199528179110545225491691366626160169543117737140549163362355010718173962543527237032594176035803177564624638421777085219116652986671235319080458825787944507563281288137851556991373757046281954368285040354767006351809624118830956991937920710662979259459099102693138664489323820050296806146225294117472304176262166420747897601075084302363593380698917257075695081657155990872623836075545059370705914558066667970294714221268542371295746479764465220708334078137361973481871247367093522162652621838910291057609905381769105553822310172859175422944545026458232481770847928994497871524663429843144996307216888382763649191599604825929858215822515080664333544338768850507869892205646841783576115313976093080445209467217115469748454695024097795988502249982786232738082981309727279860558240456132905543071406403222535130495247064270342368258676063663672543572507456033618898215265025738653540786947413229807818308356875216349978073679751083495016210026155027556183116284513492063350766782479168350918594952252502429049443682043895761174898303579102631978835322904929905988683725611543201944343822917849527619594686977950076217839778505722921783483855375091635511997977919943923680713873210526151610404275796727957295060831980655816132900366831283363452901095322675433719459202543200381336463924483546686415975008456484741140008347910784728729134626696470011769989930233662557409554682671369745470755664127566199571845681685992989674530252921369427034330549438950707545778990163310317030432814591843086854580485797493752171381143547878686897213274515696796023753314149024251015594502028243691451368959093355556642263827681144000241819110555137995354913174543843186234222618436062082892352328543623310096655701278164292701743198871156731862677101748468771258107555997244213790978462596655100601771058503862769677538328491931323106088493314600214940921976656292245445055905513250823039191189593488508590511913960121383751600384721856533597299825085113079188566998608353722946253058970653745041536432345222201384653979992705961576077538618001800897918480970988493418232748199946966479244213441693021913027150086799667307119221601151169709465887389905611439429562934070574272612466361005238122493229791630186933901552263689872119251843453695693519140642849211837542707013244747111221710413912431463215377769079136042111705581331536238387195757055946016635645869026177131695208644588862779884537043739839724636614548440374049811684017225741612046269924766723717585669290381860835571310207054990228217014922831517889555620676427097751596853881321879438976131328307842218388880735598517566450865259771527189163218371231134346258540278006450829343649876437877029846719811148222302917820063967088541403045303955870769312043150766974861900708639145838661549758476178495888949028504119415638519682414316882397471975027259418388409348434242033652385690898840474745484768888641140015782911875578912922384577921441347900539127518950529066063123529497106104330081509854576068107107183807147169991904790780828150191138860241449509018087545193867767889117636784732406946966475084911745986540720526895592490244557410480318102766413384955754431453389388905020778285760750441125413483829107539310306377355814282974967121877998765038375563939595228519715689128201841737983127169691476074329156847456993527972615582097751263646082244388328370540912356493034076286728357403881496273179974422662113011018568619894553427660665308115117838944581343094965746399429076507262709261419319164360052347002975829431266840798916023968091393427938133236292487836978737488271731820038994743217704993867248739790360133048347723535454414167945541342475326058661964751948275652266295323808685681904656115735461346505032193654075246000173720208110718570507300446492167602911029040229179898670874772841895640734321760086385062458856849498049327812769369330199746664238218532221272744764896124387515647383162075021988353613762311078064704698303888231426784971528100410735583814019293142013229192283667284156211466584231929608593146976956484924720582908049745932111509135851876683516102478924387443734705587727833933093228674577183291449430670677479788659254970509635097982006679007816369678884665099415152112243381172658222956335244728622600524526633976136340684612695744331965867373813429430212206244936497101895433951208494046669202370604779108003600701597758426795301915715344115203315193690008539727800451446753186986282176629020411632635574907885620593830119769490187419089341514459033885248769112515739269081920196572237960787820083733994757405345719671872685183339524617647479090247151497049398028911117546438242168162961049608021860578539431807750001155530745479538670411657109170911728839201731034773391063420359347719619149642410745745632690049166601654342133759534727562991100400209126258581281892811192440110295072463212450675973096991755705556337540757511901766350515408666408854325429916571124552702577280925448714437428849585380709190200862427191316018113063175810551604316199115053553415317595776162185734887082803142186184834396844824422233166010109659851844400745305253851867933986834273593741300273189596424423993496940150193543293166819108333775937900341522215179951691288317139367038860992772595659149690766353340336330102160327820115560619659123740955567345124160713830662007564622424969038469230165919497709347801761670568480425549854082707156818140145497600467347385863798104407912089212658466410194623424790205366988667340759556537392714008192003219978989752510249127589263605835024776264889138981436918355072217272225614380027759480422412718085312838526608944619744993139375319726527910289586109126616116793752983256255366404114508236520791239489036998766208845701565348449079686961890208124963722071217101914390201393685110244653707594960485093829274797578813703465371730879912806816581300383220876056739161633708350901257280405323836760968952048516902275039835447754642118194666237194279583368400862633145459036360113330243962664577601694661398139560657005935485797642698328077134972830225327539973661694046722148572215396224857476701175415874624433734862043538207678156725727920279056052715567618663187305620346150447698160599118394364017250184554684949978324138541451703789014353867261918378479107028107208919882487067473070412399917052066339194801688562519510980644251428782732999733275786407053050099599686701673793024243996077820274730025176712250695400763129077339645056559660188179268777248493702163826682136849325472261005689912070744680605519115792017719740436532229904392630039375933667272553153409267851481961774101497013475314141683474533734899045586007744510893531701004813833206909072392114604844534887062763705877907855207334664976245542896037127200050477114730004349186278821254272393408067293483765531440926973131691849394613558227951464884778122841354943540345398480399818820825326177163584092819204009197593641283848285232285781373896225422340894810163926127538024961037897763512521344017792338625785144656861705464954240023443798441046500791632004955659887149594717682055973065743374607307795478528650999106344544696624604813046736455900957839921778743850609192406820334618273672478937281072647830648093778037960586597536078036732206098087313813242830005471769484620617349383352998414132092204942359894774049550625183362034519951451124387223213876534316906117596983130234072018572142874598215653251693258071917752073483845474356165838814164484046336363858620217032766522898499879893395472518623814981280469735389905502463732106375697096629442321001399217621443617065196913757317533351541213552416344363362479957174507466726146421259214858510871105472644625924111941777272347793731240039257179856898473955177862482349471806086742294351424479318186382444863384390651431063826391681794215580534555125533483552503886554382211777729710248469686195008498629927761964192871000162592999353476394954162021067485658494351701639976721759366156094992609605415944013396284140979905361497068827011910799804121726192401178254658648591137757452209328212142391368690021027936078943863940719270065343873671686432993115506040336513702785203300047880341050048327956113815362802775978823350079762087211477483447789330902143223285612400574157364947045327013672046820299133723121752092574916907186264610918702327748085558755149112581252982128637986295542910106667346030766804932127247373744792579825466110580751185426674110035195587073648914813205732821088461456917577543434834281424339859940322939074443629591306170672358705506918675501801597571987379541396522048903737114657199498279984660075611441547841246374824942858308864413686008324969240345231506095452719739520788336763206690984687814894565013630231340398133475590332730571254023952296939472881288498058594884936319113820277328747355062673338420506962284043545260700502164305501723888882523764048341014482865051407501622829911281101017443018437838015161747445608752533550697519912435378000599846081794794957321527341787150723221847865814398110042232494922407299203452123201386552524247552284437319280289054295952027412590737644174427255799935615237055372353383706177182132692627343693450653580392011208245690716568368714425876684708467378519969099907697804411683069780086731125484510051605775351708864832238727410296901052538813939901945223911548783962796580300302263562854290297709520971513629601579926039319546056620865847630815788213731614120923779982060367410576391896624572819571631850269924705804932932753351297440104902229575371000964074620439837502450669813817778869268584877265838006624822272195105388828419819750433548639152738185937440379660082320827516591958776559580132548132776793282515659511181385634977960378318320412961470370148499912394398089523726320211131374502600955354792375750339163749284873853439943590198431706315471751487859936978880159555943660608953070773532143163185090051588926227575095316307734184179601279061754771041835674009424184208183452644287007135411801250748745080338467860623654007484870989367341244872527386783890923870919703553862393484870899295610414078640281432124919790109821225508818697478284624972972809457828669221451434551575598069192039052815342867032728618180334554446529039495128444729750934217791405496452870272573560317206539772971582023412827208956192612466779632430242639432005209414877864217976575822654248494186876430271751019338174921168934720346527562669376993982565575611701852623191553710601587507000892520100733481866287023516503712274250484276768964876936288308134178293347300082214821202430048433480031516967011256027301671236395768850386756137439637811575054180757591808666757842139817390229397362984063957220581330934589404870455323156718708105331289361593289494164098172993087823201127354899763363163025298076036965116042861215606778716405712352083869474199822241951550167978365872030113232303945081748638428816564676157841408489143568153356771891408515564566045836558801659149570121431735626450954472664138977892328683137123563388782194391342773245702694160442578147687382783558919754468321285182234000422649216985182653636792719757722569020931900641867680130794750417862072580594491756931872478398449186691529883944805062000180684761126459894438393797272762522480157162240439982758674274624838360151566362758120292109046009137810261774625044870716993315947993198046630726704866761343324380850233711746771303798957253726777347122901335361367308470193281720977254182124380724144442700797455208179008146108949634905240824174900018507678284103031246342346568133620342821586891483921409671373878058200165288442542482503468458403537382857047310088032228236905621090108950771090044708117808155558240508882632092640242088565541712711996971290159040354464314481903329997637638333825393360004680582789089774367335818750534839513551142087084364392736057598540410968975613945678177151301573771137052068805110864052496506961438409739875085322285105313812994087654879384339301037365844208954615734056015387296152795156390091005067671962809416118697447557117122198014586622281330626721117942486418140952045313150386020681179195629508231340974527532009605002490239501871563166014947306226242654419110657542971432934337022260807198680772384703892230332528784622494179918437611309616455727841034445616332797285984655532507394658659064574193430012759936731649716612821612007768058794651987595078652739102649665454689540174837532500035658162486113029316814192285893335497952436524099692522806546505597076098555941800705484009660089254581819487417092614734972774873856142932838359517498223815981243075346183937696131822588650997196536505455717965807718649567499661781397543505156878743751394594199735073242601548917208099824256440283849856035438486859573295789847717950020574487911966964542147276710201457974782671628338286598163292223429419546092765786379038508823523191422859548541596349916883116720724034726404834073531990478463992397836159747047760147365402346859080873616925240218624743101254082111077440910489649607877038729103920175523163954372585256925009327509721289020684563369848077095953014266140950120123171586796735308072924396282507289702168181729057259725377219871068574426295437461861649413782161535211402145121494298203029284172283670751480548793840430870387490906146518270628837182911489807650235408311313290458248204988334189029716892976238834855991243779377619757415012143473811452472924889689055700596033192080130770332414926663187869571962953984406537453923515239524559738725451713217978675333234540827115951381161840227452678049081865525559249784219854564866924038538604606997654782312566687541842124297696218066583861970098841653140107692038712799519964665823491202848542454248342852211886594165783833296330027774890699083238972070459356517019042727096334582699406026091070080407548553258218830328360892141694060707144836660778016815117352776893457992265508262222821471244425688944337473618823426322992900085618589546580483552548028027657454196690678755069432739219602526845921137256156860965336155972020347332202330778704910133982507001258758296366875162496269198366192392238714447102525166720217560265084739263207065003583947830459059935532112773680061693315126482231212866453877765354451096862774841126269508588552756568226488389434804727163238975389508403867724000472149546139726158421109073989975700707275778829071087871099833205341307474357008709392611301062525239417780797788484690864818492611765110613782171332735244031430481469146972952506768405889007322399594465195164367303002482429954822951621383832756360098426032300539618237272786411792398293386436341013379521270184155694997328397178851314059047636541505568378849948677027606807964955752870581637719813372354160044498831322534554866981888316167099044773701460341941257267892270568810691640229575693127509211635148949743885534949308277259825287241618422311880455358715036755671406136537905319376505936952621993533750108026998880479585134372996992703131435545953051611964216648616998519548567005927758751156125719919752140092519613505146682135617948027844006293580294054983531450287184209665880996762349636054493684579522536388022430732851015512067057602987273867237977008102307033601688486549271832127408462401056231104864789539567146720210841404720008083645930551914105591336157174814920309486538547456762313950458679590733960580038718854765644874133991481864100710393266867002083679455581961683022723298025206406203514543845488371413822490528627743788775995004567912608724076408344791276133669442467605383158534586108807026797167154295301551370747703227452425187115429167249053594564316983178070799961606273418469004216475896423857366585079910682939934165399474484777847618689449516369939151581923043641944078615952687936624138116531491431269143747067583361375002543110620123407145235363407999997398711006428675920411091886658982215754805130162605582173415410153941130464829505422165898031815872149700686602565769459309508864111871796411200471794847185457822530937425661374810554158016866913790198190031333477987140928955262962246650291268774067655267042080535866814385986948069160355452007191598282148146675546575289451194185955140747257576126236051040183745121740738369499401895742463090557993178178882436175865849416488343095637512790388424630995708287367691066559376808807957067960827826671685903709833976079498693449619520247733530227879487732590436607340840035034691873658542731170222163260974533910677036326334863374506665210808200876486023957394557611462021446758761899843598336714104407669809057646547415512128149941277150632492687134058380424862180109283685515123428080821845396272711638735838491323057033877799971522432460998354595750175318164760754861923824565074594354002337152335045651118854995533816007835794604200852540321255002464057983782449918947366747159892459648006949768649402280745593049729530595883418770095796999453901728825755061480748189810632313951106047232190601643911377639151728602039297967802685526145283500467791705897208404422975799458576870757621388803459056131218478411888644042775787987931173787849422771022729259195727801401149039473495665296842371980870825127807121939122927869819822910001573711460914065152191142768924664222557403122353931569828374799021105688553673500552369068672422432368606177502935094332496108430192003943410654721815277716127142212572153932214879730577215613390711801238769348166421102637729662065461672963859053075694977870740663596200036141115251478025993605910175910378169111251715339556727158976848401049242899249558372850716030615132093311853350220836167509973667398141538395283532650418980236251481005681214300537250907630935622546698400283067912559494847284107951908677020327846860914424033169513816648618122963810599639678575547788312836562179965197667248625777680202159087714025023956067845721826289443247983143034456125589310754833070533918700960788643338131011411868332233715633455803669704172022324318708471696008337742073467218280613966332265685410691489115167403807970573084073571775327044354544948008230056751160080784578276167281375378762993629158802252651177265015902961283886841129942884043092940551637440381590457393465255870779444618998822533330619381459662658713448050697219520573889542111220452655271689930723784833980266169623935592401321890957589126135215962691960766541274438969187096317865976278421428869189435331945926614465532574053274825370721525412433955791673125503190853370774710913064820733000233989824858528662347485819709315798526202521194744469539323505113950551919563993282820812898887968522248635627573049545053214496995080123724055752800578462302672246197273657496344114745714321859374945864042061576539140419089975852202671178884897861103270829832985131495473742075128785220668878529805595067410221869150225573577466939120629118189952503396957847569358375700658613052994229507331737001592825280255928376926973668091164700790712691341366223384951844079602447741960800941046495002069197223849668738765639605700365751335713111454948099446708813038722252139850609868928414581918117484408411972433072213317633572787557368279205675700217769554614490728355567530400524230256848104323486856845162565784705542067685556074833172311951335656839465994961116405444284958468927044972311378337621250337742942947766955182924782480552426058836287628497144477713689888695164282620787581014051925779389371393815733001646835564397431905232393206898076408860851229940776290052586127457004962429214504779438436346466286399023663008987490527123567111255635169833929128418418455329548267849888646061627388860453342387367488600922093381848658998918143555946653878830687126542188750307916586814553489591663835436744101386676689820021904604199161975270550021028760657602195169472399230537887520695018223998733050724890179395838674327172389353960788697959651635062877033495387814149636847278856398867315966869771494250178368179132796279227656909014702538173657743781273832301109300375966696770230673814420739755233059591794435221022567726939176751715359184465592591310969608775640727307704510585002220249118692132132314025801296866283338736776135030379604799469670322296875322353453544244707653021409481080099549499138713767838760417416568980225062080761091135309023262176870251559037021676139494520338636275433124737684007414552801734604053019914898100978215744430048174404436783679134396727389138130585764973383527589087978528245943113359778854703040423508085316863462158663995971282078226047430348737450542194798927419258216487712510896917205675535527572863091492067995967871660493618639688582446205953814244779872910587773574411812710092450670828646332750777619434082215620004402739717495218202734934213905413581790079371336769530875859679152296253031048480497537553538734655586021793633093181807539636872473497515704970577684171706625918159611334510490437413465750556973752773079666353411956505095471822251378126874503234597207319285869548062829350190105911415907044624732365336196910573370422236109574595632068342465560246065184090531515331624838612824365460384094445152034006737097081196084538321530348164684583424149527655414948589554173323816534395694019844192787542129247771250853565200176159520926407128474070682197078480485195225118312660335155832694206964404602184427701934657661592546932424390098426396183947920997947330961443677947183134255221947406327009744545368186927709344405063694892782619067807776938348494998886250858438458707053646130393701836922637767364956208672796577837572906005396832527767475247121408889210529158505830470333813453531834981167176243448679103337529669668754346988269020416810708699396740267649009128910312818496220575490674664438962333150499997647624391748457475857031563083784852348680903116426260888692197390954606581019389757164218149153953097502504230789877951909110666313900263603850037602367492993512777550676912982188500779530353229328222642876927450354760373657488842262462541029384912561697076444394512285512930142059920961323600380560037421161786672895880086076242079401029567129431865265081044920917601717731898729686144932717684868834282636052386271477562952704510865565425540082029853806562276213633312112720550346513722941692233833533982440243412920798100734128673830129756701302538432020142819755755281672350532118138052270071179236045341247355572340609338758890427587527350285734647376973673310526710001425612954687674437678795322178317795838200412875760104016560723451194808371540478808906356179229886362790238100435471709843839599584991848757650139551798957539420516175634643564721107563155549604614558938310683720462900415562365587790672961274552426513942667671459117441039375079542466273538199307938104469189900008032795271779838229171508726264349372728342702974672522751587923523194512053622134017648863457568513734120091707312837013621517635788036457034023917562103201138037632058300530535975531985041873654460059748137637168490419545870175114567075897131659443441011975554000344283147744370918609113019635829128951291178594742211422851387515842840642874671833709186617655548781552705246678339684090466449108596323679364955772414369783467336794044060794427544289454493906395037755239701107418843319406618980944938769981406720533991285798932540906270428103113133846377762312296548684041340550225784593393848241547470875078374373766851875290026726898567986130278796905870997635194420857683990215623139357374076793309814817951209333373978532365296314586969791799518547072697708457739908406956593504904672714010491417126659567170934157096124219866533995824076861495996598677417101681653564309615862252002032985656002184224489215242724870803208468597542553350245409928381696617454770386059587374468362871248507620851740091768393747087112979737352728932555989852508361707138132294088694859693426561324787306703803654759100299960248272373664088354790913685815013346522833877431151673037364853409593099606883754966267856643829615734903976689760923941226329054979304364457775362031476205725623274091062265263085229655106978163823958024392185495494383330474710027191109587289721543022936400107432201461366936340371246151897269688792275588970231676289116674001033090771618656390221457621897623652324648576781418175034373341289691606546260466257566761318317228993583360289118827679794791504732981190754229402348372883936164669638632096523539497541471025047746079455984199553691460998874515174278769144383932038389542634457036063217743017484260249570312748124265216834938834928277540626952893818367642797196553859404876302985495519526564275928825054653834398673132737292811115302203077715676772598492805734456611767951024361292505996498252327708126274688896364528040252236867702778323602284771988693212101922275479593531065373724020238432604288844515464402147533058943313051236111928759182434906841844475484103296512535157326459752361356143706630930732825303194966284468064202262524151947339625191140839579991145109125310101550661109583139936133262428619410046027848186912895118289499894268215787109329995730928476549580652881228479317876209181753732872319436122177515796412360669372428710703663256241321196883102325664919253569184963361620834962828893620982395762414875734274469467217336939294475084737243971908977929118541049807222590374438267068457814782383012468728510343473062364363099951410258781083891276197317229718767526770891936616217983534159918110828920285779634380330940418512128955561005363717155516405112600130722852869882951250039439357313355930153520983649485980914146030825924254439605344915941517401073496052605182520240242808544171974933614531333654112038986504835523085056493598226088514726320205582336514930304696256795942597381823416951335393358710486257041784139486781093027311531382125565609293483962888812969446159336853738262827307860185546629141961726093554731856055039383979868476883761942640664212136541840734175322988177660786299318340553331755908404145945847067071407597603039618330355314189900281705389884966099340096292821632153092062791956377532473035222999843180410432620044126737364462001790505945647376795753815658670845659784862865357512803995596037541364352487621749650530004174208834478767865371403753438468768358001774963731967661978726133088811521675129895692793067969665414647094491553620749731603869543217320752670682351455339716321691939585838801809264656392050562370918803722130660766209170320304683595665856852623864264668828761008969055899254345439925498058576671958179501610385318211310487730405057814257703686475695954198040122483954140456294297645978865175184699991340553129509334168187892285271722257976367249844809051784395543385403975730025467575299698808667156639143555361195434141939676594280023336510232406791083839493970536725041309704818643519959350016260469958440948971537604011973835681888750248125019108667716698572448612089684898974941495034659347963929232886449556782649608635170666902649197755321718899697146039055156788075978165214802894178808168455752847192302524085346059223094317569604101446042594069747322757415456883195226664643591697933400030693196220723062341570203859706316670449135502709418022103630255429973705213127500069172038506029283860848060482557724756878452262766155555396528603204764188811047025161334858372552075430163017204982223642182392961974583438433619182385072708565692887577033716950033845800085565352580190344539875935828093864604748166336925333013014925859725107284972484005826962320722408467715954766288842730409336585938663675825474742625147145534455268339900770415812424595069140041271438305905910111068561606226332313003923804889662923153485978840082357469719170485942237822313297216568872091908073844701797350624313852952985469045256347011392715621302475457477819052293260951905863500541695881467238535509750156299452332513096772625412084386548416963386709203431051420121982370013135118261035743348191723328923034218103923490606583193739366634077074507151541000517439068413065325503007335637292138742477050962368865706033871641904984210995949534938400064161357318515924361846306259427008737100135234286562755441798782491015929810728911741495030054005549972090716267881967624399353458799291910492266498513112780144239940893080759852091782921149787740389395809340543849757618987595466447535088162428540130693864833207767243868331483209068569019410149552832617610334941243229501653648393165454619214991132216861861632732392337338269491481856980704084612111867970496036785477254145588167421219447044469865653674230968034066004751128638767773867147677487270228340924895789319767688592417233393409553836638038274940937936701567693796811640142833000179346312756009641941267301718800371633701717574087427147207554252090192231677009785598066414289779321967244882984291168963334913021886551511432864016590771969113014318552092505962379565387989546232024788198629183236024171517593678410724895022010770956083140619012203072486799356980877705280068577640468943232435746283144706801224375757607079184921272214210760321581852855052519402738897599954890238068463990560436610858407695115523105812488743189455320824349942101915209016004914709155698818512523462619604434364983052834732393859900955747514742358998301625194331094479360487626728238980714678844852539199029204120183668831517667044991597940727504956952433025566173649597122147483048893905148986340583839522907489439902753179926608725816487032077763914389450451535945996756910460234320451832785812535294571686425709292321580163101390205711433908073642957698545062768209840799126032656125367402380605248843744200274711036883353966969469179409921865721563106174564734994535679848328059843326453591830940243288947981893486721783613860386968267738724616390608998528703000809971988569392999509896768981997894842708142267848006627488217550801783481165295997595068913829917505596614234299747629358399907338752405466933670110137932217439873590671495563644659180457692716714280561294782070688677095808148434722289198190658087487530879533984663659229108932888740869752089781571358768662073202741034158930458867295356944899465442095299111038599280227149402021828963422765234716958547806849323509286918635101476607616711722092434876650514959242023404308746009240818476971137244377230634582529961310586306321398789429740131963792402137084494086291580119625924543223443297635184481742843169129000977866206469797752745918869590002797685478293399721515137322649627348402032339778717814946086407807647280870823703752494515910982928033222589365492959776098613591232588857865446975252069913789309501273838730950627334834507385510305018862474655761857071884182747363485820592280539739220624116951329713279927922214792486707899629080010232641885278425851638731508887355135160274303064300857945325218379300486868470034320613403825286166820233362988487473291246492553252128684707698356718039408678483289444664915932155103648672430227821962574324267012993073724697162111288282192274460446684295365837453439257685120027644168122707047671744228507099873085545507875196775885660558293093619759793941726497081631660186841022305069034194258487318645034644588310145577214669181763576840800699198089771044452952002250897764751119183564791164978726190599132230705108925333734223386744287658754237015184426647746511950720023164131362306936087651491106758573419479357714895688469261964259289626136030790301976992980979767677944626681274791038455774054971221932340216561146809344020642613156427120352156061431068675232765653284561484109121419002337723125276449244209381516423998457689532833824253433581909532120490357881572587167149353618076682804171894135119473175489320597443140216770775650846005050523121469717562893656451728252799209679917205069351274665993821392614221759774181998171155852951296741862927027672631865637526323288241386185912447554224273839647047179905627493383895823604735401085543022574038936345020700489148491159575790667754925867571341701269879645980374853795816504719899482133468492627498958112225241568123790481495284974669309070991668533862741141502552840779083114356955959640011386340147970987712376367259035323320164814126142241181306643767498915680532280926805471701708946442071608220584997593385199841059695031780751360146242867832416274486909954987644595203245299730860485857471340799444497412655152764193555613138080421351332488535083531547262096897788204479111148378652144231802686613053234353655195259367352967167476910222889548768493672841141860430838680048032211487194272131832593356476272087286296160089309261882892595220926879203023288915423846098514923811449219246008587728054781198279704275490001232402489611042299967484580408995658987423311397498973187606648673384558447098040154868098370503341337224170001285531152164872256299192058130401995055119780654628438631395097162909127557395288217313742997819449115396743394780325994497602677300719325547339411765330729822639471640375080513239059024390304559011912466879451330129241553337658569103189609686785443240327353214338549040417308588450482395833985972263233125797951599316920981754941102416104356544470222911637875748517467893207050942195101426406258663411621945037462299692356831817078611025330831981694269141255247736259730953524242844333773449690683712912930223158446459821149216132845055094595371646884977507583360005497371547349288462746199864856884978618231461392646993356808945536324788100902156505939834862952788465875599791200483020903679543665390868133918809557309636353553057994344386993725246905926933556215366691349035033160242948669200693741457091735546969282722129566961033405157764478152431713651424021544178013042367008436474939778057418094940393606737979015487468796739723772873408414544603852274650338702483250269829609359321342407760164087440553354938584820257947292817133780297796996659703533697933407700212855833941879428766358953520336763417320423102998442421854730530626317800874384808702769086944001449020994256038876782469034797139504190694290144934187128161866167263727114882249007276878620723979899573866359267308660912771070573476246505404508606146566597059209532303003108516032501428986645023467999428599097296153842007477783979057767156332760555253768966225652511453439774526900271428798086469548618288873627332952810266316033502333612394161469004845183781886046959256774621563018829379527751563102347555034723963047941676328567580334584234031767169495167703249458567672581145741869215136684169247050198470890406214627963398012065704221268890581350466270257130558825539941953406432843278474357881358992548467326885776156042609305585986424383813602244181280362430843287112432620299186682448587943115403148513708782726107834299197236331303887661668004987392590837162695082053664119788980046003618003911364040419033515281688660295805347728168889324543427878057529837363227657368744863145607867753978543022525041504998893296979209499064696367744572393854444048339040763169511695255992041686421514467793850241499472652484636672987435247147840147221455972207244654041076825952565182509955350542958689455131696074864998742324107290989191049769138859433332995690233134363968069174456946073562926855424601908835739987008877403771624570466385211635374707076667198521766129588022482058168760004194225888897087080191957780405914948244192752561927690138661198146262985294658739954507881758573770703460412250328264957716963743965692929677618571564233879423845038430946182925179304325866306901871673782337251918243537181228933882159977442234762265187620126272863269706050284400157980139715329835437436550558096480948653472370729906319260107094829201678281122906674859159369315109691655437990756801942346863624246893775536716797914883070129504464436867005359089091142246411532116981394819013809085660454465447567040908411314364094995137734982597327277689015008486614977002357311144246950375245611967052078548691458952645771641342436891486262393598289941748561113263169089580292904697221170190763845101667313386242279397485481722106592384948800854576656542234352235373010937501839659463111382131827294341643390019481974106544082642594416288233421092561347116685664512474161482783550964790529612886934696444573650643421366368375686794477618654664712591424457358781252660857195274666245226057873711137904203585308768173394530172822140346248369145791340988856978236977745250928124913013633645020942361548390218658280058268935210908295496810517390363763073193196783330032957735956710792782028072400584962411111658900109323228369785112887030131680025459217324504730058055575180927583088483139825427928244628032674055963134798617476390462668799185006532403151062222249568657188767961560799938088515766873515645090374175311903949762793830127919006827045153011241793877304958595582414573298065693268485725916891859560706376646248538733850404797860893075187612213668283726670803817847851824868365467340642699056084853220700301826256977952476045948945320268837164116678388948405591664393613125902342488130277371581625739864308053035908991758795314233603627718318297885071844462174894177498558700322401320093559561995086029395884996149795723303258465189278325354047646732629025054954223845950808296660696571812089203638821134739751074746866096326492288375567329052559984836831363380436390232202275131209870842328820432612816703610915080839920061002849243083274111816396188347774644132960342258574696994456157551265326802247057472848119317313107067130078864120263497911967029717664874457085418769068870568476646997306645259858584359097971427484580641968203471353506454614837200796781744405730166272793663906329538875067896040570818658280409579504296709923460890055499216714754802726400200136397052935394573690163083925691891826774412599955091307999940088236898010886692034184542722201906776701319236753654815837099440606802115590821872005861059147406899525799144613770343888090371422003081693381648257899416353766676723805940047646269377905632216012368808685916369815393989750858423094289147124109380473964699123074341363937375640565548495642294063507290618123596186988658546447744094663848873110953795989832152676426276504115854389896736970354216538748571618184804035034271772110669280245033694750647899464025130111727311025969658748821885556181814523189510792032174738028699781858267508497403088947598120357726508546376789897719173554364149236414971176197652599649152112950762121888600414562336897222697131959542177676092380996296577089806331874091350472144900894210322364316846150198850891692116189582364172407156600950961858155784447076993137217477135735134303319877423626593011187856467051640491859833470797370729449915612494908492084238628166073165998942961937169481933396446271699947823882493778864414821182648711951997089484946193577617895040386278004359807244524444346531774640696797962376638902235143433039742648349558282073062595116201800965287978992229283567266857190961453515064841358159078313737820043366077147317881750232322068785192818298673546089651103629321321714140379187049380240755175277603110072848553960726847014473706315775574263270755619513265334479499399792725545595774634665566292939004168891102225168534260283028383069061455072418962963380382975413763598437264361397330979741552409906204315106655708731704113312326865744084872121503915643228444006051568235482918377897934475933324580812842374672845346610786046302985918216756045318509905507966154815771190382545960073809634293437108905289330830571217413463196647434477603342203075861784122938687521747888461207832718162783188145432819268269328187625113744143243193057922826105952987043796544290343932007741254923941071755181030787559042745964950490592386512291278529326079539442098775089526383509943195163382740137047257505423679388777889020552896331504519228777640562265377026914467570804146928070152336858275907919262298234255357095256911012578338365472816052231825969508667198801235056210893767054879181488175727280870241720455938550111762457844428345104268788622155077444738819602119820306339313644553011056954940886614478027400300906962222878953371979845929503605938424166868394991404850698264087365191135269246767762604243461518386231833336713930225051076961570394646024992349793734064171319944599621115454111451698849703478699040742610055832406566952351936776733178978495002714891529625369710324634218887901869585696395583443851344126092466401670817944885225966074416540896460438159111796302240511664498574769460673100744772990857505611265595167476976939421508110521958866477263858236517302536381324421506799287086527545323972922627247402412688338611194876142119648054043121394108135911638355640329505088223187980219649786099091394802944295976526112814784574881618402228390949977684088965519302900160661907784392769012934549969614181772231426836369457208816922812163141259330422816014093852071517622588070782263968250452815217903043157054831334104669151632067266852834337327912980173327830532235968548154404204244297430835650397988266229923382389904377131794286118304754337969606017694499919879968492053016747334175675499552022523164907504922762366861405709179258106091156883655213614888631412419338644676567837451303129507607024498819203828438769777537454023212170925606619973665235328893099419492243911733000065377681756911559968353678151774831626869281619394658523100452506887708825133569072304598346785353606536009899116884904022210804439226254246438781870362961017763445846676249793363620347772648049128398704795649223682525359973169073937923694427129552773667754287940590575763810882473109494117379858334492888945782325292770571333686251197734962269174144679789137424087550075537899182202000768134975561923692910480770445509383754305775318062806001649923189125760891604990923960762647795845136172151419330138869797459412113046237134115555529850054320500509508273977557650293614111570550810166525518524863362935185798528691805702204817244447226826306834664045328924027016562498837339649275352930044173551816138122937053999717073441308351855898807318046294922334265155360253395031348415076756057548231417686993609846993033497354776917189501718721695494501687260731329484204752551765012784735422499706206966879237164743221343763067770225176413291278267108592489822988657171444735298800946564053639460352013245661365758055489798558724582931423814151114057268998606564475299670237787886132186265873690584490202805867917420565442591039909561502122178698289492023908323796705397635688512825697543805840655188311092912400685914940110906722076429306142685137579560424406026444980977488708988279380960409014637274951982473377615816167222549962890172718466162334613956900213152115380663274413772014836398346173058665619568508567902946819977638941029717633021291447576913356582055319017250470790381701437794628593815873360907261773490691447711205728295790857579057949307443055705029460642163782035007966560741321844447864552019732021874777793855029642916781913220987591424717202231540241137403787841908401713713857651568869657805886128464685988373782904765145450767479324257312807465576272714039607138888965308198195226555301693675538950125050880625687763108324017329593812538483180314636741416803075067901114691552692832581516961090136068090592788114478465838213792247166890515715888121633063689909914869385880502722114031567916735043817774410000021982204186337385988199323178446050553860228386284964727868150196501293414498440782765733560291242466530853330870009057540969434430114226121130557315551072561995307676433168904995355455618437698524183118707195462933679107563607338374837319429029983566809173022031965410123223291050665106912854995207132493394902660548772628063222393517709471785875734138465299768090165363935640503283654635264502275084033471082221320015014108498695670510598365437225508120724749286984377329376974426517819005914390493205430073262328181267532940779932665339570983208996896502996649482070432068424890209499654013600249658825713884996641185048779084114771614244892765527832426735510648987983046661072493689359375720992582090202465922560902634737372065713302096106814810711277961134314508910255715610613238443595680060258611224909109776198380833254866058113989786962286015685438665184447299306221095893560002118352846274346714881162182662771607630161067701840312401104477314578600792814980297056457084905467982743082940474567993929123215386945199798728807554832407463973316310676451683812634437240628873864243343031601152927555719237974662996356171863493698492586546483502496394285431062548679690675691373954899069231050634705030904075035503545517140024475560886013709794977808464217940832801701089754609914032250133552026132988303927183045228214576060832745028592624135299062007419449461052057202808766965292139492274883870065748474302642979515812190044843391552024987270021523219142636192718951321181096841002026041973049074032312365097450220746609372355060049693238063225058599157288744480762334897739445617911414904916568243110250100307752967259388460581457027164903529660560406582519835248947981197708721762240911797353533055391655147239197160829600104883832088822002969123738854220052187424452372506484499661432553296149960503317267614147183964052587500140797776457651023860794822929946890906656693381568501734610439752227367258416036397283161153676341299859080810449688619983510834918408687274643375219380672646834217517823684338071471536789904240687144682706486893057566088640464817601379511980652684250990241025047198741764823974712558083229387530150859274618857668253866193366113294593987797200054877941197734463020730923826174083921802709361186817956592057977537634416309639044725189001875541027709813752219135735483405392177246799777529080879132415199349206074550383240866693813891442423080821847024598004905362169719531167709532248236197046034012575188690000428514249961056538959798324200256945825404213642036898723189510507852256939220885597931646618119517324284549559757990133498630832349293341726936415422925281288017906198860765073474816315256482536131363414312454866940922617683643777679849533268395666211250246849160230792032503871887260386646271619874765207579399508167874919187051638620510915236220332348741270029583323278043773581218237557691994512520259356842014107296081060499055417415400194809098022862261621991302432845654795318803905986217683194449761978643161779460225008121131820537213285632542841964110814808760894132267401527535078409162376469651622136555713762778627673180167598705691565564928370885479423014556016370359030352312826878477508783304224605220157993867029914543770638567709114880248347159253000468262345433109432062041883539937023965077268474492675694749638545442962643433914888895480476580026330233104971068759013093160942716013342287580341011481899899949203750264693380966370826811051212885128437423316746906943843962358882762461049182664660699293391412292676991864542684024270185064354078099220949016762161063332867852722650233823214928743241324102595490100323629573879602684179713166292447951517171199579754290589135858592563693583047033161328634890105165791278160298808006257541737199916242625062171014519740430191261753512225183685890026446033917690861498148616564519810137693969623962571917011403480015962189962575428600773775635563870748794711649540947552722138147712306317273138077621227751833603789533496767790114463931589153668870254428224248093692523765281073112542985624583802543076344485231241266507797069829844532604540158900220371432847284772867639566508458407293182306487936324715870348535975347569560548768854202368270999947544684080015750523515450128454478425115854889185194478938742101112920099321816004209079602365674658968084662398852973336292378762626049029507904645414631318293581267615253526795863556039287523497278185207406600264259202948040092756862124108678329923615309412694333664716902265094961361956238375776039908825406906981100736031908353751722512147358898566794069352657069565736473964848622719835246470917693795691362397014560373486533527053868976411963122224821233181381620327755135561076455844022863606124678527556600917891777134624624448591579304790391585426357716063226610248697185465600917156788083027076471756922533708068348399093144930403392566872353899539113412225182919207975521918532748461502579163673090305389796589320780556546134406544362812233141069706730255521944944768255616167748126129415636685690783079633276813500070953924299222298273769082885970783562564508606147029248343785960286587835082119809837582870434536421186378601698276895105723480873739445667522632201820530381703987984342661809113878551526320124212876101798575632878258305025114537353263816729932853228710105497652453308231920139817702119979559715973660373664041491704420436013624404631074857141137498157338677143397247890343738708824456582124314869776792493979261251161533613001974005517743508462316160210972324885462839229044180428002486642904448722379179260770294663055662197222034494760767176845960535631640380347897357006325257476557425781259666074322556631584908164917407654682736765293554841296379309648266632024351621361195214084641436530833372866251866020382311587610714398264258955559612708173485439840747831499842054509301345805560706109069851936720214536916563559575200460771775967320950280494873964497083365413882057998331033505650301388915658755601774923835412496215257008429570949394558419948894487503809266793090962214002610321541448801495238442652258157510978812208013761864718815915439462607787604969556664687677005545443871003146167960385480534572126330990060177347828455467243861323670663847941814509498497149314501046143076094620426080290767178945191745695801069541763043895739651742394024816248205853285175295446784339032008927160888964983596025825409393759632412986475055779557391622898196613664385599444645822491061186079929038486277727569642061247287181840377780149390170208461576860741078849814882215708374301395599772583092652318811150741330112642453629101058952717248501098406325318359846195820110125166879041517450133725612374888759053525676213415800117629009931568521047891299774516446034725212628535368228292862724295604438901472038634070439403907149651691606639693100854024945766670952733416927112571679477175614465502578162685187120376443377574384023151788653682936525046913759854813206245574635880370792401552482147024340310568157948419041320490004375059125373204936294829269318822226382912691874920542193151448104201513855349029236682706103280873621044351796828030656070697482851555632655550439368826539110302324538396062699888663023318739851365528232451827846882395936725364184816712616006753049880522897106014556041207940628710843098214905589007328999726379043043975111286392107665770030651692256712208297829993819177078793801079333840631298641481316143125747352978917248174431308031532563044491636131899783232006235437750710204098564550612896340861146672330190470524291191039251670885161285740531284103247893402644970310595558250067075240665650709209917426236586058753786008535644486147026585185760760556469895163529816883771075098741651728039894598793073552338334597867904083148773716134646877147639718223632054358860757090989025947723521558418802123980451636381038969200725959514610052563976291343969959186234883039592724272665440897471120075220881562871989777007147134409762895316892911932474128270131735489217794276665223108212581383815293912197745942393163546205442746885957641062268582117906740227253030577134128886244016861247668732358143120276970583809106281689433976612731701228724689981013683586663702291855022803615985058374397381481842569509386681368475197815645051546933989285198260884965330767816029580510551124806844482337740549185103009963571577337794372895593940752056423458171378916299356069370893675823039469264426279996344626056917765845740191128573297666117003027051243957704042615267930680358249944457605109325812918552009744423315649815850883107341181635429533561661835460558579880932889072233687435109649522109614721944441305725310016102974696385702176275431386944998858595947821096202312181642706968096130024680784653479951979955589379119088590339007209381392088975557685068478525686763523228953826882841136755342456832875697948569398879297790069803628291560218351193540599392155068585363572769996509653583412338983916206670693002387906910956398183240642064588551174583868809861381943807508022481955515447776779172230278731697266762254299735779729464710991351795513777900717046660174461214122169986016080816189235331903276355971408771097279923686031440652125944095375140326839630342161747916540855296506245239869662329884471216628850227199484428700411537400730627904779174876614817597324647808715651783507906895387773535663761257117149974194911594669234437659171328689956552374191242116829297714776898668055734245713180975389194776398668631127562967296747882232406326935829204284681871903714006318587202304893999824616171178128103862611440842893148101370098161143793165721158774750903456509665892157691277975819561891506025608471238591095836249419563456977538033861410386430829658610493509934636343323067541937976993653417313768257652944270050589310782320039776233098959319131374845954322477880661163690927261730728366158589137231269574723246867714578593123238075202429051829238943793818557011531367637412697259811375128129905176308689651025014279245397536113630093262961717907770054781677097629672566335376892716876687247832141118870114563579737963550662413248999124805369332534221799413987071565649489013742770837048796959593448244263911872715952983264101323812023601087016069283773793673002468077875102856036192400715679324567878795095775290201300901548570875933337915137791830112841784038170921222471874265603760071864058741045411182228912599342599208535862898811399430281074143389405782989136409124288200611040538420327465387663903298880780948015399152846681485200169603922221931630375501334986523298871596018340962807172209538814653458833402520787115977041954436025295714482381432805190972745142801996477748390223862755628037739777113964078654419349974736026731298640955393621668498588615781815591900118426616291586593364456049206589421797959449029656748996145042588245652676852768450373992847918665250260478758776059434963819589316843302454778662339466191102758029236783660749450711678938263203921609067573240815189063437720528338637536352346787519892682024345160009741775636834746237223517499259048129824234080198291809458646027675449273581255269923294535050500872832281901396238680157625118324228116652518745711767259516818196765451042399033723517082980580878705396503082844156011897384243009233374354336790898765760371846885937611462285834767293481889464940052578492878672485347634174035012430819948791672525482888671047630668781062186244326872012260450674052178205621775049320049280111125405294087559728461409388100017576120302662382409498262440031699657787587980305834188305296239128387937433485423919441296362576554027235081261327451472747177860251246628877168007856419834603074988203253605964203957454002030142637087896594449671775617276240581872584964235818686946526943984341716792237480023470596030062101959037363487167831613791880761230114679538722330519962961451279444027097311343908134525709264697120876569032576986242451682513936959380898649363571807412050464693184937474319550008672315074897607633053837000970179954495163960202502128568951593564757024763620252452168402757754773566451533377026392230089535962474204685011304466059979744715451810490907565235290668830424015142346660580665401806154902809672628450889322297693581114636406117916759172816337276428054482657722078212742537975497363805195605698620814097311397112181455754950473379023644035802558291429902160133753110552193227865423598582720273406522715857119445643605884500839733244705498848307240278584927698168997793726416643149460800842222615996872304619122239296369323476458567323446656591859497013441920940776369753661062398739507534446164225311083572362393484268321559201608344289869800221572400812974138942607674262329085723936184019464032139482874017510627720006342875259901555940231194852036893647008045775170035430459430435060713682641274074343571000898271269130988760014888806319307355791324417412952581000780367361653776215123124819592322176462444717633435911547650579094218822975479402925203268791002368659626020110257287039050140303322199683256363215572049936071386269666157580924044666302503361166238744231007899378927465569760750973013161484791086515724097714749805698742909620925223437400087067523246754356152140277084419938633237093810514487400737801429606403051567696529646083857907367254627522679689931455206641922120290180893065925125688743240003587048165337395633532520999824369794877189563627517494808404708738913538218731475224631774996659788705579850904254546285493896325628699689175715674236160641824895264474468225128747915137754504297197504693338267433618409911121014162246295703895879652596043778718201117391383479576437781692902729739748837898404144594068451038076044001390003182924618260162231874453418676147403846787673122622529841946802480128061964185636316400490855122857449501275857387957862327452193841291131959450089774330577485011462448366611948988072960793439071101068857437838723514825360102647076314159641758098691839733427800898003184850298059963409155954849234679528598787355205090483388646734431265128584917451737731097398909174593840744468069212900575438036203876354230647733850716713235465034715130931638123504394951839563849731383640304728304248137195285449269772181098925345253980872277779955295603644415592015594619236495169644023469317210174319347315307041801666462505488285706285177294893400617411013851837376497204407036740800812679928430467600048846983228773574982162119769634528904751877321035653978810513212639267435645816875742274224979965789148721118745188248215832237724869494928180860441960876567721541197908924724731005810528042965526066330744141250813141665222213974672587982220167803934864867790750650822960057792515514825346435743435746787410161721063145773830882932524360550305431609344581647059118204653429558730911291546796352044521995728673269200834647575113327950586669389679953347189199451200990978918875502838616600485955648765427750099036478025606026584555871602713108024265561629215908928423458839727676164817393882966492050298067101410546440990837125069812722865323619195896886070056262441815087624457388291751232231395503963803060160717088892939502629056164003724398900040711041618389309132180468211893273220070171031606004792890487227551987203018963600666741653058207012172307706400915526971929516008404483787852142909748945253585171650921940613108604509018951937693912863653333140207011978548344194990785859614102909422591460455627396372696663035608737662936134732588890259717101101005352333949906485757796837708304795168707062617888060695303470508612234506243236821860963048489283659902715034525874621822706787439259035189653138761955464156730873840882254236269508828002210246951440252796206959598598311817541812513022392525564748728772076774141411708493355480409461346890695758983114835064465382957876407333917188341797416749952407963188889355670807144530563580693242539711101087352972997912087483949868698012879908214335156645364578199759285157288816365012333540778577756837973674312763563817950959016266717855339513963926921121029339278010564492309523444983477359229558410912889530657683208983029142073757785292411268646784468464420595157749178198366839657539223571227674705099890559239073326879880303829184445942746727782074337566757720615141388788057018801134861290051444212298537745083869350016692176470219532562204089720298798742066130748312010970386925101811101823880251856094661498900608385839887895160444816064418834880278128753847069978276591607819085585178087406636212031808283380212117708063854430805453241447678398698598536559094664313993478068913529110520827973683385219982927436662763398438831309509502002157491932184121098161949592713526343447100305306851921999701824573560847306859237031205105404575133790604474026050410497292048412813630704188784350454945757403354371604305858069147115780324486886853139042719631322186468793220253307827053740810181764048850455376636524023781500634498046856798201184699253757864202752534293343910223977232852507074779328190691487376781661859403868478060904186268286091138790004210662571330928108892917683417724268356671807720032151791088581775821916001385053292200966434628082626229291420907307702799624532554931500717641550092103503853570270348062985679614491263430237149200566527602091872561208127053585336452480973429816316253950171232582217728860929605802626053423751561324682330289245673681402181315080174512867184558033571673191388871499425371633412326138786971172274149998277213038962746042858130506326112092465143596910240601427386368299794997974167296929498383523123048581091454288854151479164037170117473921698247036680148261245754057559684939845881674234775505767978049018857496443040188326745550706132788507448065986439635932784662506464792678565011468068846871079875962812899409954829390163096889723970090081768501951065255195561015087332197668017932312681788695987083421707876537098428882731750089033888219819984780147484472125087125610347062254413317205180281225064423997294840075146976082199902786612615843545244531346827970082814542806231183902868036148940914906738131989259470738228128086739204540695678053724301447744163875449393786881042555187275849808110954161978452362864383252646293808715371677881363960698414544357396547585181820905593164898980286051790965693604404038574496262065822803735940155153559230433992241203101499571593862388058387352403621780574199086685409044084504816854380120245045881845212903917742313150465830563036183360613149438681206834713251310570596350247900829391182881381370344583830017206987576956674302363155173263593390465279989658488242049216517557803885704092247766681755980740610779900776478308245963154800381481996194681470510751532336060668124048985326471217497836087202308480256139444105455689697666063924628243487594010245309950818274241738972156065119726263663922346764277928208903775865617661508729852796274211669302264043870466634681448397574290854383187318083487640394538082380174053688780313575190634574812151497406504148680334510102191061697215020224715155232976104789619562569025346137990717131695159483514959887103391999033728391624237825922161979947941763845602247510766040025914585137683135314775799433544719807723139176055450424780230015657536174914831605345570272615578334239989529595154075234745825046250237664960336646472979608027738734708810147863589010471146175089543935193880236179801904537139720922341338010456594750765293754956127199713159431706837541623847024539119162203889729665958242336389137028001309454445765251487847335854193001934721178581011107764194757074513122081020905637133137775253164901279252540974012827331399972162108469065360081588594337242884774927115666637106750445694652332886664229302076459997374183761744156431256631273789684630823011032490060265008527384481472107238232886374459609895024227376805255551080663440150750750614983841904699170298338806561151746519343941626616681406153324177921870508006380780450902410142749172361934440582270380858316649491150666856083271800343389308576548554221921781011611883076051506287911032926428402503351359071307529695569070114847348500582578363130734575746053295167790846886202641476546349706473959482207802368448116061505705755408812613826073742329179249773036464922724824744184954640655431285077524589804509542789695539145550915558972306354745034823426562261934512462690641123937348662326711475320974685195358471887452699118092894451531862090943494286801868629670435342519436595453648081894843296688948697549364103677305164555255239313118488484159114308218871318022925958764385216859287364901651691313883491143085975768044304127074301592353731594938097863402697527805841612934030491796122987096296447092042546654826218992234453205621133936915437093277584049055289494454333935028063912326315969338036848625832208242712919720515720302822807200139995771678852627463472343071009768984996763391351015501725012861030104228507167623540560623095664341825427353285350113214870592178150302802123058973539994063775070775538944122032446971104756473097171206252433050081437748266241656000924591057625583129805448960131035303677332964823343555450897971706510087215611550981626768558799860882761886551261741393273449876516479349131461500995303168037070944716846723389175589002207196473809674634683835415859484140870699454254495541194710601719225211061873648597936676534580902698519286951003983076215318119828226741403323326436164032403245190211285210660566975373910769549632214816422569389951974051395527062098816757979485946695302432307347914180557843343829130989332408451384041085937485704188753890619962507091719910167658785021855925929930024516041808971278837802844080584507521484809916272116484605906298950395144792634617141136667103604078587225279142956269247549335744128871541387003611759184682959581930345900466221554963859394640105459864994049858159426004608757148440058767577102081906299152116787642262179905006657289645958726496759444812517606320576120237087704914272768196228600329817024902045044736605954156447139671894191646265910507941433732297306174352882219169598742764378666992966130331471994095911685237327131600412250243027666395956656266275506216205968207545305297201540737812011500774668996341772453953717803773815608251930181414867172363634076255832239019812003087401961253137011035936363929805453762753646648959152135903385565434434233701172500320368063013157642417127810188038411123849123140673726027722429733684540744297994084524899382826775111543456097105746744333892472804284549026702275439942036120853585160048679362955519632977932504340347092254657580193036137023043473077905654981896260486644880360046871571936462190228004011339661143350855412578996234398813728245202393029387662800709124484060021994071215188363182785901120658725425322244273634156658662791046429165427688111985141772727353525301398328594773958091812368692780060032688439234098575939990062768059197945636620856972463507500316826997654390919769329813387069904789160620800907758814950449467124247396594046811583247552594280046290731871138873076848842290375480233690246301715080982270932391893000390252213368593185718655631464814366495174294419888382696340859629704344986680274500593519909171869957359329499822501830966026321569555934809323231584876979020179619834006895950928703587832857440893176588084640412380219820417534687334464479259294645461411315058489691218477473352190597277488953296281301394709570082349136226265150379134892122363607133165328256601875826740883982033918597868959375100033466970713853920159178538177532243407417634696323047073828732207613985950725360221775171272723266262854717128519912389429171653432235898473467845019947632517947386396402610539200511281037683556308304994829489392225826521588201813398332491350632297688079798513561617992643844690828771822129210504096870904445378005396233027490072984146409675284391935186450170762253891464742282258428725297209624225357878703971081462498192842520388275231263112181734836416907452969088269790908031356554419472478921644602458582818429898691438160790072952555116776012371858988163431439804544249233535732215068048779403629959465674740843546413743455009416517965024038989345633870207470039675953302016844502359901575697475451733708918726042132144057579426203492508080527204478689142059388942296546841893999594600142505340865615824004404619400623211240737641000838838730246786212546546198129869618014873670404814800194171741134181532009153368487720438681337371925095379076664357712134839983949561703712775700898502836723759282279124725592187953160627828671051739354152485139879258558521417031954547808221006531898273888124139060075015175994218304114895082706987928339769005519124394888692258972921358362439611617737031220802699806916004582538592176980695999525711045672336924913030880078742344863828655831582832584842489807873170728551487364829221973514002203548897444359746194530141471913678774760060086978485838947166319845838643258935781395461396683304202934291138283527781279977123366227073633562396634713759186881897370629823685994846358665862954042359736069830103620516581818900435905574785007839211775868873110381798061323457739655548550932027547266458340452070774632144469101134872913128955996102124681902337851346080343456323620818802451416088086743130597698174008139920215759890570992396940503162917168961870162808855181487347288393660310406590264200742949347834807978527428062264238261179841329770364499792823584712274341624339570994724376236920539581915577186552405644076935251401451122633137338680743386867461315366234521558083338617135406468804046670970947284066733628235211179649325934424380118543449326732067437863815581774876858701757133527602615383881615493751818083255035692683238348139120521246244279823957909281088488119917469551329575093035936134156755965310197079158522845317297125113140016454901849408583943146566934627070537978635768653246380551737224462328634633599180315785768564379313052516083526196672421330459085052059754238666440445449930723837581217909779360863478710868669120292881124866804411704683534776849512652248306718616624274846742098103226334045223735431914816744261620025786925707304150590001766107880709660287990111771915843266386956622620626518237001158079462651780940622098630480959516107488293297999796274128538962779469800912335439115822168213838923277581147766735765737010097379826865590272981829171674061697771948932818371325183896822017953113996890630142855355267842251936334282367091432187966337952452938778078812235164834673017025227267322729916227677564582063062343259150157244986596618222744350139798001432172908380857301035567616432469027022578407645135021554938073465287722151644243927734359711680186607106707406662642493530417287919812945206994123932669681240077691426967303285569197092585068087218221299701690978072942132523243635999526531476633910847745108133083966799942857654350526437185571794678552378917700574336824016818801907918197185474872474081478756247043497728144846363647699772256262560876718993663101444434017265518511287474092831473169044678300239865452259079842388692634393958461547352518654724125226627995987715893238516677742053037580431279617701047290132649956987536840938393999289011973290591554024264268372564301451318117314671934904734215419978203128805108444895618660138315496296073724672698913674938501094334182821081481932501864483068461756484887807343914143096924603729624303446850481599918427308481612212936670526677492401111244109608741086771616975475902558968587215654955062931072532686845993123410807932208550585704111980051478614085252872015666946593997766827455871409939035030645571855355900125118666837394453990577088585407211510002226918129879433970620934943771994944030410045706039547330258096401146392107057034261368130894197881524713697224802785770821402955755200825125019913890957943809545358806702645383608826969658648573273001488260018591433006934425475698010682323861012769837277531554069583961398504489740539324646522143824508205201317410170451995300844435234768735406388624827460857964689120312583921536558608607889753327589981903497642318132291468118079484112103314838639895559305494339748505944297523288558267527820538796061165791997714571379172676392326602795101562375521656554559257707723026490745029933438648619589398952152735754935641031498607937965146782383435669044030725247213951762866855145121492346724274093364781430835471384910116006625053749950386614156297774110225000357572332889055098787202110519923168875684636067814522978290037244941824367798698524455591936506958161533363784989905073469366022621661488984656993725533082255704611884356856764429824872816921265510175702843899847568507018437875270152840077162858264084086711647779748878145719645685838570383609704442934888375355250621974927308042429634593584496096025540104696010453073750311342100544468274332429003125836135464681737516316612720669281624909765665440979714137792554037845629485942002291371070300915842129270074013768557101462369220383194398161326262472608571792830983425761297328166326679540637328584038554927428452885367940241134912524122421812421739466710791488119464972962982218389075118200066581045946404457198602421898137764724010058177931949069504763296848114841261879905166758545471240476633833745641102698905509250586929957766182382869666888489354723588399303991098583494916890970856787984939864731612570675464686370792754398833964307484026709011665712261361460850451868317708428509267009643688446089445354585406116364033365094660042599145116615842070077637043079329271164744400433830808227036901074481296555446826227803537585272221077012978642865217487014317010176259242341212944659346633194676001773470909098081643267871809312480106876573360174828905578129083703372635062800513793669310899933825212209912566950390942676169335479309217882923623793928030472128518932960338421454105440285780054502975806054015839732975048484399079405149434056859082061607241235508508337496660569787236493930894129851867289096189175429634077215489820157660152145002602741229048568122966847952772070111018699823587669948000777705339717013193107926332792721338792565520014858123957660937509462295884689206376502692612675431768521375042393572322612498983540119723233005902669616116908848590965046005116305210977936685002459022137687442418352656432405063878924996196755714760942802072032932450116711715937565369837380912996325266318544901172220406594717484213608632894960068468062404617643903710858434006229879604868316817974799895750249468236738447652714128502704966193160632483823389207808394518753578121351674845577256542338014113433826722904086224532806184689895585659998676571895073868381057820032611055159576433607466891586241306212765629772104050564831597706233233577218978122955094118005171045278196386048558626034179642072251735027062823967103412151058675460336506564542784668271852158575755741338676582199432930995842011058979037338256112448714854859996333565888329951478886099523676657732622426558954216117678788908846966539015555651426225957046846296106539263689448541557612189570522424870600115096403322487526720480146991469400350470542223627610023380254273116797817556574415395641147315935802008883295711345894802778010777838506697865468679612768890394307126715207981463849157934042180173925922411324597473739534864238262131322299430124835375816109899449520199300313251976922125106818454460404114979857265801117238298607921091015025622230760422721501992638630723893548833213562951640610749051969595864885249762088590109624215488205098452897161248144388093705099641715316969437133416163171183966721818574844700677512300952272251461159474277903255206957653675811316412943326221841579057995809514374168670347855976560441397089588162582705321844735598086285346176007280350771570880452525383847702294799701284404989894073196924337386614556572625055963342709712651780319949600152691873872985500481651469963843209814342354993416129672493808362331452479864652327912745156209986692448658186483755911342478935607634549923569482800626115653330335531496659588951090074370195108863045307563280265641591395028257720525163196481596890338104442376879409966713453376544808218023624979590587855149894158953666916244753998417048212354098691884448172471355326736541930218282549897229657889301460146830803835972411458565014631856618107885433814482323269296624326485113706698610461743692559037888983996143792940242137402733252412051409782025070349660810451533834516165928987959896423885049370995512547669727057609730852427416658439267923559959429799670506608017432578691767064613270494700082714980779812787629952361887512316792381941903907283841760740616158542293005026465438936829262377697917551363431320510071718469159520321701176099903792067428169831381348893431012295220652229377095402431366459636731823872459233105518258474600445490133209380318101500079873348535562168667557424800241361850228361407289925434285419258401600525003700200121747029933590318548815293808422347050543656822576005332563109737998922417471103597216811535517460372234695612836888693363128672087481982764471038815958256662927882585460290014047837642933714944796114789602082423913031173214003175992507578869946751324222862936826637050189901205139915543410180742353040666992256961331744778578140664723104697785384771008239489479745638796188479830169405243926077679003087493886701674722543380055039189254428395644729964959361654286266317331264515344350042112641956665226926307782487163965970594035159664617149730018588577296062176891411545808180499429575960468785880601917037595670258447726479551338439009306789386845420981886055335916667492018515588459195677890497524266429167043377641130347444504294876807250669352430184186425968141740497470250410982240208925774845973163547877340467312235016023000120262360155293179067908984823678167798808460096407747301514057847017763562781731001641691225654367390033071722489308031200554154357675369461321391998399581526890440819809830011665509343318445848614006242210360568183490269088336622638985926086947033703647966181123136358817860512843016371140441890245459257248767435964458509074079611997550491122812290856444795722617952159494591708772487020071838165116164602532219599547435383380234113230433415256365318889131605698587256457868258926108913796042484045927577361945406441068396593418979560796921173037706174497680187504969357107736145857639629924175437827246257906487828183055023465929659532502737872317514726865186429437855637505001156495615573091859683608743766275172481761066204243753274448063675144365594249612091964265987160763121431865647852428649732886470369914594677867128702216410663929258101078446153827665865222444744762810596701669108717764667424099082601624614657015025491143488800551241622431721052860116534554389447480247021376569751799601588628172332947828848853188228615815401455778711856750614072455060057635237966473280137687302523806141476136875747675691208033029033482885974078670198862401763191135938794551950686890386637572651829917201997873261408135514452661166853377606340377720979853036357978620344371411193766625978976895974418902484797886619862083861940313489773323741391272469814256301333768342632536327414996332429556988866771368417929168069375803030687811545735459162777977445791222084947347665407503796594188257369184755601910912578073537812268373367100906796391340903246558652252101285323441566962978228460076648923577218965607494354331894462111720748760184244961957155488882203341945957280052184886016983076044780771175416861302056103335060597932047089141962080394882022529469451193030478440528149935080849412781250537147594780329762321804968488421939566947607619100273160494997462309271440177271703038072500066729565867470741848430131699926339627371494759902993582821873426802286784022138641134648425500340146553138820246547999202541510236619212425573006486592917811726232523200385962491071380515779541043923327046376128271653326128473146716409492939647308719014256146389963849424340047422262456412080783233959038161141544911311054688670264038602925871891375450386040486272058672593980644897319702198750286771246033461872619753164840498547186455570625382861885435749873350582826380620650313740416811072268808528705913354768677359151481199750258966698936923970570676121108692326779171008223717156780726745388486096498241840409976077216498104292254031678273465982868958990365295430083512311170033493369492775989916309913825124256573012661768685232968431440093131882733008708316189909770494606469966255756931947286294804873833188375084052497305540466409455880439439972930513357698215065844507373359314978808350146821292863144923815762458208123354368141497492462866930931502657562854914307904917220040023713670100862935574993104443716254147384967211314572936088797051410949332691214103341901884320331369950411198644959244989622084214480413200197217329743901826321165523570593156748599069369582051071337469430798659247184971990749350433561425653876290118925630503626852150305140233585531009732875546296641637673155654341120149597161142208082342951957745069417000240726315841370699909712012127776360542360037782112135148402717519553771199643321997386764207228902872752246692672421374589549079830425483920030816032244513423172807003857600294431692618200791845726711178096039305393327727540228908003792545482069854977482719381194756942594103433905533767516855920815185294890533295132331700374695781140430287664867554939658917613802849089193127233036967340950069967763202832901293807122982475294863115866059567499515166825295556721789553994109579264591589002618155788663910325000547155877799062772299190290792520565430937629991656134750149237492127219671537803632151167143148257713421456523519271639551285040159113223991155804668473800965573042586305642114903538996245009626775798436134233648508824444428223891062882324314602519714650068960955961391615557023287299423811136815913924638882019539380909233083278582399835406267235617528612732303728398638151500486972564825206249004397491390817592441787177711455626476639493542589969675960738141383596746244608458189048333595681520609109478187119711514998906368637409270188429024417488663801003062399827968955587242750161742021496906954483331212284278890128722732821861722872337505519179337119334591299037362351024793042523241263572293212557939733516913244779965384170267386652567235015256983524344525662087286713225309211463616565736435993954328146950167323717257290626800627017325465818234636985477781153069147809330675941563150143559464574324803340646339423051925987535132838478589861120289371019490475977016053225308472656798656476073745813131816526834627934415339688886897466302703613467260061350948449745909229977461358185891310307564737000861038325512281668830098279980919214052212702082900415785088187473716172228823426983810360473792583589500545112819211447743086984172506841635608035673368982759738133476447506522362968760054463309454245103687041728757561151616005231051790247701143079726068371220829713384875417294539738634725686272320836704720233940974353628747444492439590479546250201548859461891138215229161833946216725765130164957835106511576576605182896579525806065151710805980144826309962164159393108626609997031345135995451621460132216010281634147270129466216967624011491120874374472085435310988073374965527046946282388896922046365904583146926107568956578827876703011211135129892967957424439476615639183098642545508087453512406022057668392810944202526685790617227327910091555926840932698803679004792761593776133908416619089910634985006741416877954732157261823299592021521108058650058091438257680569576258806549560744530289353308585133341695286710183358782479538512655967296452062546186345519401054746693786783434298045150367866482514887257902475572250569865546765714424423297927035965470211675604556752641038062587610456356549632485595128116647604184935381471274707341889298772552617023226991407320720463893600384352256053413167687838398930806492792692659237614634793424937272707960700648101469892073691120293781776355037409315955904508466718818286838334874394586156927845581241705584298435270325729081472968680325789263444735562209994283785928618448425689964062240855191416724337884175058387996043162377333283956862410761663613296664193651696859164088210811347549791232332541989607335001520736204139194985618623114128631098111137642935826531768869090480167388020708639182668143620068608032402834511850509961680403241128824844882619487493839536827048942136543333467431009891619603892368036941086504424101544584442507807066785344761889927023318730430300418712746599243299608465709671290627974625903382521350899186833971393491252161608317249979111157731984848077336520491571619003455502055816443672409577432099182536481238528145825770147767530580580440393018437993287671614660728509640303216393039940854508282674493036126391300021388342049796174689086994358817937527373282492242431826107113543019393705972497454370746364562099522156693649558890650788082554730631347248993971940030669524332441384357122580425726590699041983312588979636702129534933614879776892039357933390355641070430531636138438376738997394281636513147373629097244823365350038679782677848495857355952698000429035653219780941992969940833823674905053887689807951399941607691121349468258945962261526603451853944191125003972694217189661845987350140633033801842592097767334166311266966328822225604101195825710924812485676664423468805768467629125894571044191078332811062817009281069800849332195784700331351056484781836498224153084466989808941543322491339438809239069594588394021667648302559714700138765931162419128335701902781251322496717767268994812214893239240733215835628292851716650525665840138680196962782181690643336259924527398598800574476586179704768522782357905755212169467938536311154166713425405428367789108289568523719721830358511106327254982508359889153721585102441339440689209279926931577779223961378772992562354471806912493976459532359669391767960401863546298159474816811081568321105848537976297185031854873650787086141120930969200218738114438284608028384073798457844168016453074306364194534525331341529510799253330971402421012037367580843131094449836950961363742768592047005698971217104090173397930017067055899353785561815498688099558929843822304263874510146044404841153223855686671417198793679500297177529642685306124873049370551273901357546412726860900029435455167595487303308295062811662388686769623935562902659165162023409525406211551291860087849963497165183637205098555102267860589914087125993738511480277267428107243796305612239476797721543589176256777141259875723936243487336115592743229812469411497848610806242614058904619891532430078678544420768388648270147452577935627815299688319200764530232785501407814729646217794873748197246955365631482703698171308568444118244518241727086004029602354116614748699642559920271742760096872969433275543135146955750234093608835356498286776974035890340103216110197749693871466465263972188224176783339159761451646378284602236963255494097904889243679595541261297946386215591952021472319163842072325700809751042331203415740725660644276006420056729977844128101955480521542486935938374817707346261903252720094513362349203670501158098457794235875212012513824727374364734812559031014896854470500532613961943027609656677013632619843584700505389203767906301466245454773416492542959931435793428491956070352015019191627602585192181676319698567242492471774416861615925181089211036341348953583496266468595469685782012401726553437565188137285771888267186489406762347467169435335808227111109915702133969112215063171392782076463197503072430394780650459652874609812142530893803205625796535528497883943485563439841561902170953632333048972458586369948069548281819168966572458309915878102432354488025339978155011266819905815468886244632280940444836822980732609914533124575504296791257327447203470985137372595556999806251193969122813586251398593796420617586651656457853135421280786837719542889963069918678321268099904485684342845465516354200640573539247659894874057351310990916549587586447903485930893689851572067776598145189201301707530609913915042054604832169000465555939979320613267197037744708367246331367038447228350675431889226624753631252980110777101914404218273958689365294561523809879865690274220064100371050812723439697976594030436201065139031263823050400303975396776948215591537837473617906159225991990236066862560383860511652480271260990729006131354574660208936357319412230073842655552079584011302627913780176883310818353292862963444218534326068746740470661162944996999282092688342042426501928427384053274657956447910097556443448421662804227563690614449751317261491975647109095316496934726375912869125016972166529857998874238675702112749166247961041801676965430179571991159897730877882946948619342544214108783937216403392035065485645748994943548592423889713332399167172786681383124253697110030858212399161080283491067646861341387200423685788066791904357009349137536562806162493680988364158107266740713731275070828429057284318985810726419226333800443531423568241655170298943143176383091736208539205943526416740986442843539875761097881105153999720690236194177024087400146381117687696946913689348378570838854823745614867127627076110773440257260848401907264163807538428635327153068856491006716182648910016478111604335881815448000223621384238719604299222856068951414101175591067498506370176319084807662905045448579596277480064227653044136929564524713813853223403560080375249944408450783904422964702492113438320385746328807519216387112538485515763121826863494168537790379651387656688079962206573484882317113455971934238509570730626132228653187315366545165589311894847123089346799238349110826043873849434769210604454731229598846319155358558442818826835078335197070550884341862294618779700201753840519897973938981285377408287413371414994172116478397299339552366629041433068987601150244215557930423053178218554560722875366128141383319665023433310228840549751083850354907579444385131641768771861494267754394431916109607032989726826408190389884653165906866536626042166295231678254115163687122893758434204781242365626600946798853849778350180196567022501362708051844024716720327384874955131454180320448426230341633485784110686140129071056318309717506300319409405631014071561509448735813870936577713037859908466952294669477698819241610520585692429172202325531329724854767483532284195273713633538950811388301065654362133468033278456713483942591128263367148483589677075256676253304453789675796143207559416718028079850766822285607815504381873257621737679037139328868194250100522945199750580805577043951759569198207513300456955282680693652615537868557329836471815542907140586627948192254484956833116366540200827359270095797350843634037241816302560409686952008399496336041805464879471988733716367248527317358852827036076865283015971117120490515493709058448824947920138107075698048548143391869617797755888661985511225902366207088119210647047839276549798858323409353508066337433730455293741390125954486972630831139883938107945272141796182781325424108138761028200613426278841045537433452716161768911819244421296023041460331071452516545544634409294406636294087744023893633196262727262377346614700580057881694538974367936595760577555135056185139194826329963279170704602195628307272718621367089853538547632385452226594267416844005204580643715395079908979772337428654556451141125777763888968743924826860551745358650244874428183523118987141070052700668468337269832658921424628324553350794549760724897873623260354354061976605962666568487354855824266765374057081406357836695868264491800531916091369167993616486293933650957907904259541274452525881418236421893864614302272364001447274600083199918880036024805165110855375927855312548572964366344186600127945610270762263599839204108714735842750549493099425190280388746463161706148545688824355416460675719107207288775557659382700509703322899277913884569029480163235175213229908033277850175636134378168983408236263969186109836941009984868739466870890662024051928480288492759180399319898565399603371072821526482509501592256348161264904108253394077427039336966444858723649342443914603745625611225802936373744699114899155792100973340998332636672234276048454270907914884222600130073437263176389791939100447630863966753016591557645408977253042701512473985268145672776614717404395356871704752931562925059422022288597622064844296353702350043339038259377867701388087620226512793969451585888232355500121177212673269630868831757754540542047188741022399845264322636500137443989377557590082701317663187395229257354381625597531240676605975119970232101586500479720626315291800598281832619964679186967841388831327227449239017671039937182576771942222238672561690737751475302458718469732931313103910955490496687650545338960941090221562978067260319560067874928590192843949339742347686572636296358954105680067980219870082950916077567282150128219957785296919111422317960068661773838291604580746900504037058481312832825394109110875403909099301251192825667008384904622347555251060072425941503523845038387501380650173368019453141601979660134967336877681220867156954114920696063975432689495305750570484134644988338891528437511150702666403608431219839482846738995164236911123950556959285199605069080847853950692584154261542014332133366863495607166831047736156567940691904261218915295516925694559671030562946325937284967279609004434517976559229423353055382462811688136404980922175066826852587283790052138214660507020149107005797538811996738906864591073770603350659789190466910379058461992629119470775851754880279260270545179342278552725132802768296754149967861612313819725747285851794025313769761817128874246173131557487447096564642603045595944892012550860071894306632280480037217307766512009138328861151958380808101573686464660392353001577205526960087999252068154535586724875823003801002800719087239348693426757179760731643804306416565934104319638420955855515650644235396045716950379835975770035493527590702306355326466702696532603545271149195739289607454226856670183378320757510077039562558807675886364887973594628176913863903944702311641740348660803843774247099094306180808844658614582617392758953782472261970725713900642442469640350107127742844065496221035379782346544461946739503900249695615194733154253029212569221948490290027311512866515301227452821365388951844528269903760561698124652491197969311812382980881997744216326987891868037911684283306038073009444868290289323017278878615464869523123331767817329381287022609401782002063877219280454849027613505019932478827158561563634299439767898187955166587310750444045503842100557778845719716781267355387791386759452708740829763848465670294345037742779711326032942152894153560643132316012136521220502299181293791899225640536009462473028265363085789341784455120328644792639823479403036525769045811787987884785617193774318219729995967676986688336319644826535478513962215775992328181372719111533282355817545835768663828512110471594583109777973369127475353483540056736490504103803201888250270636202161870018504627328547911486070480535603901939323728879941491843278446115502189176342708261743341829800049955947146090479460592932689607049041629186112174505945080849360166094466114038384130225002688086330762368560629829021970204828723395068062451074350823300287921934833333797429102886135888513257890461526243638664765012801879377944584175417435189519118341238754933879788307669210912693658125505519965838810890970670005383058604402445517505559618372451105109141602264658280301352186712474235691303869021668471339053362483953509727570131318543545488583578007793744722354565373634290246410127504869799891958773830628978981563150970505865302572310458407859153895317713789516703139014122487565156559762090791374709980424310046340442601726167117765064263377288649136328459585607361570121095370906836250848728168609242399591702591617740390614044220339721800807617956938758744916351796855743854143197295531523576381779230561343916897264549502392842149210238355762976410952650567563623706971636642038146869699106613121325672396458657626107842363168904032846859090690246696397392097689779501291822154924495331285488770557926307231201876436876543085746232924745462645991080792512173422862224156081613673653161636544228524448491972064688952999033800584623551095205478097099573346806347704651125136504432806948492455759074946099603302308430074072804236282776091677198618288999251238810512964849461529616743545622339886128866163194365130646981298135292186763511721557046738061874976918340801125247064093820002695533459364379466479865375807651670090000658569371550649132148532858300565880833498272938390415979404688302552959360254052959400910036296565119277550170229039889662963980097880392654335183538471569906709836241297562505903225244734255901502953609233534332727402501000466632741981375453377231681395543250662197439204598284361841846725502289069587764978763795909773317799619615161701968118849519827660211703314063629463582901784657153578931105191250023888606550926920064158222150476412640365217706569512197819645659891154173337439764561671902155856215248086328319696069897639508499176623426469761812511906722371089316992665845973774294538830699074759771654837018709758250757877831202122848275413552740396463601315687378255716416063371225976687616957321114810647420382772808252292430780978262936040362540500778525159143086791181049926588875088543337255004970725675120468296725800243794859578505461580357626831521625402156335912506699454363944713003637070272227909949029728208595152235574424024500897016348953551578160436979325862145427545473769449624660455037810367751201921341188898943626165227310038155543112180958433952670483174051470749244244386524016005177965523175082503198513733331253016842985877491403445066796536404430640915920761096892119445447205183589271984816751789952987979745948776514669584448492823250284942961152430840278243490289101016501796468793830361194546350845993923417884657308483267912430959316641663005729964775082876936997900547582255993668107155721662998004189477129816626286108269243263314679442621762252247977546938168631217157953803398787530714082542004364235909259389868152376130008010372338806122109415919548988672482764804091657150229458269515171541577838670472855767457808331393148195526708403816741651173421784520161248217341071001068056089320905362798660300559997446112829566293121508947880943279125404082386045446844773635145162113437211012190250135222880861946478141848266849499036843430805698439900301438199893963336712649120267874252370666591888041523244960454315688454868826716010181697026606518099578598306755220806276471355110435500093404780078278626278173851147429633845604169477620105042112006478330552394777088478404112417830029322458539965775562641697204981998214675588822961315303341817465868946177633629318744125893871243265566164489224119975057937233797304142642489138203299641310042701023267292553677950224466875163957132989422163812498080177976041218070278480787091351676369447153941143342248041065082889946238866217147659573300112015162190244448278740036030280167606002695248799898582889927691959183171448425880276721193870597367386364808890153724865342315079763610723753077855878549216973505408499820748791856025429476744276166354499414137113654322201943840683515850491224860436615448378060959361898644019016908454487455275519146875363780801772972521695541963454391702138418816771555013703583387075108477020778714074083861434332560564621394374135268018105403222836294349571301066013062437933932031001099621375903331063480325064498490068570223876178088818276935706920575632295852889521050822306874483502734763111251930747703749157330351639741858757949365785763393386190015149725139385402159714185114695034695598387382649307181503103474423738809237836910466415182549710718490029778769842902295617154748383897024082002050884635187889972725171411921548729579502170413502692444012456279788985477966805183722102096542377941179275828701198454156774724112448653187449456583786637724041460144294118741777277694284083575556042115636755622344330165286232437923882852950592319329868944650386958092542138937916696272494053982858527866477309154831411334702147237312335239853144352495816623200127836126910118374935227406805620289869194599607456948650736778835620783588131091165812039606596735495936250144994769358182453241860023131244434472144540870771229700719395326826770814340208338027281671273831805433739692161597929082638198684249278636723742641633537137567479509319140045139896459900381168892036439633147767880348990523829814744227004949661465355532275214178841477399865044146642505239742571683519118958338360081050405701407575248192083765924210388619594039272563259047904089170657468143851076109809885871588453729645448533631992454797692068458608001704801865225363572072839976102621843854269390330451135585042375000197818777210791601530522722019361903498791166330850818006433272566904345775869022574302652658891672169118349032454365290443663963880617390651742499069929721042449513188791875093099420726879649652617319272986633035802150474861269952530248358747627207946819457283221805644710590540102789374224381677604200549754743971558726993796526948986993348711668442580430674911401061391241387336089782259527043975100793807118287063874487337575635680756733332321847265897006063252740009503732629494520910901084123877758593412150674657806296875840891944199649297090557402304163345764304950479995326192323323126260082715894543086443370654637072643375671413238460271125621009709904092220610929368752190059784354415038316155035508206603135228511792214311940883717059065007447704068020819883638666222969897003389586024052979889543747197124009688809736393172650169897496228112411764262118976796655538830982263958468662728441062019229239220378138485772153635719218385406576164153609706543040757266475999370871313691311120039782068710906074619269217478858354169337905478513891348924909195059708448168906343490012616336949816925794008741930394828388739860830090346749510689137486631941978183090608929050041294500427142887757673007437572072738885918886499537385171172791343461814983126067545996066656256737019050556735072625325398727345865787330178433882811215671257799937984139007895719274781210128925122093417055619400069108166427962549629754673102769585784586289105704206809626367898980029195444900274622250704133547761270414040648942447629594470284967342269780413381002261387753541169513619603923456842812861976817540105804243622934974214633965903933135416107768857524699571197963705272352473984438059507873869573273599772271077365585035633741990800042072635610451311130678969823808772212083258818297552549960867785696283155678882881788072730088520571175030689427339460753647055154860968281575017666584876973086293392877393982137101853061504699079155505872102471754100206211354430816645793475451300685101002642232011063053109532325845904606651558595753031686027414506795054581671377445246517073870035298580190893800352339051751672327517759697702295739386462230864561674097353827399000031694484628243183611781671543479442598934829519380295304996697192928013475404849007593102729278713605027601923767525309731692042283158785653417398546932463847755568995313016531312287307889416206396364384644256375121980569306158342906357960396221363843742080140764122282612292423918183725538384971380351859951471693664764900923358653128482528020390637380010367550526011882073195337221538899780203081774300689746378285416085044401858827604858291690615270143834753792797004502785943919310194231522533371661422134779213983332014153281348610372169645488849492709136244523420890116945595544973882268467199371890062554362821973513962611852252934178039400781807717199709514114132498268473844697607375983680981838577610846708586934961488973669278264560751949114282927091703766588803757204084630995470307224756955994250180173265099004288402702446836783226512468337625138267299288564371819348796966791258581730699222696259491824995882623181279371305859722710970080120435904495614275512923422095746386615188041524525057907528017432884430779608222295361134379080785222343372372974737674395618129976501337576072537216952413827547295669431330514964897518843410148595701873136581094302053127366287144001927621775733797976735986651857381099319960512455030073641433523702761264765218218206258398688210857355418416608855613136518978320384789242513860939063000088146821509532414838975178996069577221437830410902372123797166200610195597991358475885526285156100083644111228095225024740183099368992211983514109009576593427650439452405932261495253891954733499003493607917222697530683696143101823664168518583219569092641986922113197100464439818952335434479521492685218190684116856410662104341681868414589412975186738615650707590218068913666933190669953456968391150882248755421555799449684343318395662667753793294116651909366939351407481987940562066053964927990176033044032946470801514056193694591855166755231566290640389884200653622721537870718900618675428621703361928104116032079651972295085087139227616060917854378913778489127416403681428570369043758146428250982380640415091145849759500111325880752490020924348686123620553826034158324796678983821878362742555870732980051741207595221278051846372223917094233263193056881001229921302382432361709679183782130189567659203470266913530223732686160815164561960883663150155697511555440007165731126388258681525259708154533824354731211592103880690647935551740827982360815002391252816488448478240052707263607904512396012432561604831120226719008070447348645321491277084600066581116793711924830672875546419001532169943832676146273524921354007284207675122883802162521029173711315107654661200364340969656723358016490953056214737385675528646366223990032154691570551739033213732266198042543170756383730335248020364418691613133934866975235304215924002342954069369233652930988591953357560323908454299870543441486894812591262455185056451003606307065800239209594417878085351331491904991281358662326567635783935951508471082397003338764108029766625369791197161160792860416937613135458187569128874145194277061748631972003218583263640124043641923833326042827061129984930742941838332477888630926102070190123455037134012299643804328321610186644368429502012882228684498049219024987519813591427417634186654110858814214955557309207643078519711266391955222516841576348421829483114449994592534605060669416402562164394626237979488984775908743556060528148020758283680475460988622408369412424514424426317500380482449701060228785495277659381288413587138310913250351808369983564013178372485056363551054632369779472098575640509231945689575640289847044691675122102515936790928617767470561475689710187178219796089384631353681432403932305618443932859771234997049451260088531595954314448225178020981135608282903166246073447028203245415378830308656337526030312918439506734192960983481421705890075105730308670147997441724441162070969619015763768099270971852433167268075008256128128991578740157491600059159259680633706379106178853438711134270044312294845919045540841485789002575477654370395903770424168674419113090095486038669829125302584655853087597299488614315268122372692122004386769369990502914100690857047895625946980753430465311674907604223554260436140680657472968871642965849660395781288433846196660916401067840858183053142150959417419568995310262364831124372438002615859713680820491010417864709363645833970342723280001012868713470644704177037494991938231131701976560358952023126074142984477138373742461793326079886094856811373030005863918812004844493067770184180949275226988038827975218475651561227001856780597865104639742400599019207416170101056432293683499217239917344755413988460998039771918307003850442203745319124990338827034236981307280385880073987793814114704792473743650311851496694046892677938961997163376232301503170691503120263211057104041271274415531563607395423261629535367631239060658825359019559335922689854488175452939879678091450562528782419154019003429726140563452198480103674982483768136035577701889225268702386845822665085133448592009456607299561035763344504617718595424322618458924830699689337936349330309186374405157381839505816015693725793252002302307324256037411846787463153992242233380299617903904742004923090913242824506162770905358000265505167938811417898556294817654048322586943990124581975574504726202863101670986773048128142155553745844373925414484725508296404228123090601638879592042964009433859169305600311356229786217374502791450610171777486148443811528322826613631757425828869896225759293516742401951166576063368302105146102105774570783802963780465086108694249223342226795268053434936618349589182123769135841300235491513194726777995371194759679434888685837957978121341969834242097717855254403922338131635674460776490060382653571981049961091899820352645069150910805467165115109350196062571734175666786858522957303756115649968959059514690632683302213746386963117194770757783151034333002158426258319151269517598559984978389268354152576748178603874617085736274237134481227225646087661819644472504724738711897303449966179316074740469534606446765473940559144719909580977801868998313193609060761798372225459867010053128965768758715225278228453567941073785353806199646753794805610990635255845450478853877964093184722611663233454832865484903640427862900262592150255034697872052723259725059590540398313504680158070068573522690250479542357079014150093887397285833538675963464890725550423734017538747128918619299958509664665276695878198953658412162403056007702447054172387303482030376721673619095814021901844891206048920958549562469310483185195956085500386545746114859465131555668789102107124074815285931190848462170590131300218084267208688474535777784866654985209398474855533632731721190960817954645718873296237886972563112708872912616321459648076427617256961953968796392938233119570905669706113648377959295579545082466331972094556975000254398195411033260753360018652501725725665034814869092741152611076693064854681567185653853909027792405552248234626041540632644932469904494448793760126189393022092338544739839643925317558261843021437638024939482316891112456118054988859284520941726977081630164137892786527369522239378650299611498314490524643951083758426970942792412585352359042761033212181646671174659607400706381571974545387985211751643551145770103743012283347984214150904995919488296219858987029267767336302089351923232283836283955057617243499031572783245010802029822668493868735667813897686582536663669121625053162430302109395430309876137126365480899986997205549709259137573978389366725385463091511771601691643764969242252608540955376245751194799075389464800688617848791952422767158988755104401617984140651641426202251201449155486485672577897562636578972792140432159982342903768760371249045442941625628098706447183334551928213819759988674001251973321786623252193503812154282418489436345641799555923125623350982880834760126695044675105577667393969830164360194401905078659371031089060630291258081685267033831051530317380478379446858352534283661632647898075897763697719194809850311423046305673462195499270904886429634878773735154414112884358040087867454111752967550540360519238974633916476682235306053304594119736935144746849027893676069845576944726976372512936274956512858349989688301741059415478385241926800499012872701667849661007877937533936997345575860714356599782260933744785395951157635228714738724930331572215071555281560126249357584093562033939712847920583679312930910090344334399713180774026854802557410576487366382492648886381422284376759999632557115984464209101396075885103798243273074712229984520324808453798343301777390149735550462194433317774580169126510581754170737314512946275912534685719691961170190371450920008565105067419697505937671908191421435577791363718083170768924312794303668494718403493680423324651007576545623585123102927733856526032188874328783582276812289813666184715091215095640120734907324258435008867370922869146575136289508234781682418946530818184259498523133054415680492077361172864173708733195078351773995244558714819577110177199058249000947078652172757744091774953215570382875079522088058890354473330716728215705129848805803016140872239964174894470069699789143084479640974803384436253049240095115473403872829550098874258315439566574772660135718447640049743258560245334865611789886092383068325913993310807828370263047492090725555499253031863587610366918052702043050710901931387269006248057988486687890622619635378246536727967413827985068599235836761130420428111381331512530422878797856450538206091453933076302768745506931814998763926608194364991766319863217392033038694932453866656344294252420008180053979120975291185085586666106239127042702283890958132122449689685700419355060777090926372932151765398909779851390623604467286897015025878839013896460272867416611189862570899299941136534326408397914878874281736667203304103488932703533598561247868913497841443594044693524018734981627631438150475022361763899133499457781733314755126526499258108977687671845115733165425186722443810674147822419857530600889179003955444786847313472786405167735460233511459949682792324737160594283695811803436411384714745100110634888560059536191728718588707206151348598003031566797980336771156350562545182693973651794138266561695439061406710374756260386445573007601299020869227851267611767711538984654059183850874105259502780227149934020369500130149831456595582393700714079870830076501411492145540989710201749726549948943417374777511837535176873497645401003395361426456194781845369573012326727401802131776910342850843854645558719220138930809910253187784492118318604178355405220238896806411707405534935755849608065625299353144037992389591002058253453406728848904343534325010388889496036892057595432502674824054738109478421393147690889330295025688953087908094125420998478547954348938536673211707144092459729675636811085127183286351276544698807315626812606447660494064443374794232545528611317412406764912076682077358300789531788959170164123075379790200330965950328407643133075118679168631787222926464063273498273713463486179051254228486991175484534851014803629279196553021316206626382362101761062919612444533539189980727266466313288573520595169939346467311227795813238342724658498345977610422239344986672801951327053945173322649659072774237582167106635048522453126923830247908026281888797684379982096966696703697748045337033857209079158267529032738933671167159790289828008664857655241331228933556940379851484073493139000880201963979430646490680722897015798410559467350973428247031785786783993206248952477435415019168327935267851824233184817919517878830639032606783825953686738484651070586555151008791506617846171948508117469944368337221228935954576356357225759300972081475062459032113730903642891981783496712227009939188724069782454834481454896550943589494438257613070001286787840618867074860225788948773478389757650638525444154526873096168371495359516456929683721985986177950896797119998146213014980612942781722067902427789082574020019288181625601096825120500788457867111412849520270321070530647129311910000715421975599800181102185461195474752992219981456137925918742312663944871899822505991171335337532821511193755553314668757423266154039496362013846276401626216194799306615854562653261705606795802178939942542162988439107760815108705063291149766322580672275854714164046533690167541675386578524262267445949529508985311822727596540534953049050825766384665457406558415392511588440597494641970225697281259834995833388010042779094329769905026361123146820275420280975246962685863285593380894990884467722611031711910822443302232499331392477662069117413825507513449305684307577450503654187562342937981549155399498632565378104070916204444700024540217916034422871149996578627806057415423653433350461420030512573428369477471358762955796987183524222970352832187384601420069330548584795092903211230306002658688211082504447262542430669120549773630763043953401057924207453797609789798210106621755595532516030826592003222532053635595694604842735446005403951104724079288629191497434068158540600411170611393993601629966673338804309489583072789354203898365496733907159455500613555399918803128025268634761696720308825406557357601387634338700327889538466573339663041866455479850418903691930054367855984248514313894409170477674963494106221782242869058022497044906718091130549790329217985975005316911675744776738163037558381130789635434949135412016849926518947777506074608385956926218680291502500045150911324133893565955739469207394836680738215529359921198263042466139815513077801737366168092713765096543153859485230236321838154923021818446863720540514640765691445222735598894770791627413117389626118914422962449534945171717995081959006359064551600851872335012281110075783503859142030192992713947831143882749470966243542701131433680358009839642735691062198279772449342571257448668123893817069451125045421622061067206543566851002746409652747374651856388428781808629688925400857884878132099036606124567953334700767391338815705620575733326667920798789703731589660620155661175119464666548199639792179020044023550459978943534993122693360241107969093398895784654895918070773085405268937509646473867002403316166720287059280780133697916180318224397607440002158159901848041117814661909512956394994371097623547805978321468648291106248939620369623862606653745422998650377601210744632925790818516028820610162274389200176222224499750193202001120014330110420917692507251954657505941367200195094930565434387174144312989746016339938667076195599869251453578977363532269453527651717120802715978015015374424096851887230804915765891349773612752276025429492892868086528471235395642736882885601225845695204247259381015981662220053786698055964794781732369222030448428908189366322427878698266537511997866541349063396746903626858929193922033701203293523654668013575594015010581699566675800914783032590737555381459503584538589161526217681493656808485284733349315941904556970127347904982869016931031189358684518998327053219335839037944915282397625268027401728471336206301901006678551875059925856969501143957261597356013675876414687366176302442125888120797439905164512061875162409026434451820094413384086592900821520649771089001694906106958751836911212490051963037272257627195573411360025774605768994412271051214888115502800309554309314116912701773258904014968558236499691810250051447014467596141051024701595058082317978747051213996460572232510541915436972332388344093746310320104755744680004527809525403257977402899084383846184280972464375276753450357491176096498124150778332388528315917525455643914366864301657688113846727458988319636546233432188722298453669611362586987072025448940590797996504308169915233980999498061356011236098839303392221968604591766664021181654634874609326884530889235528926368011433171770275765247670261686923690705990087888425554302792654112019698546531380949534077587961814166370640883178458921355957773578150857748401015595115213354639681953003344143854734749345602187036482764608551072327320207914883069961213052685653924739621257464070632653797116501537730012531918357349316331561341521441371082654168722166668675844855718594660036028918261652717022948925149302738707106299365966902246761231854487855860479712731125456313520591125399211855300583455322264712486153346452104928536392675628764787855891122613008309129755417392680298775398034745581711242763764306720024986902821783963172168177457181161377720945999731901346884798322681410155728124710356736841494097925740857373737576999731488347263309784132819335066891616504341902513034884751863672374160191425090713613453132761650601436504859582740331048569700883725889141241583432938037978688831779587535250025737207909968095458934325278097045030712572516127257384835788210088913744275833412568334327858833223228120231174655083032641548248059299379081167808341430187698171364953311013985924112249728021227115834268709793167068529884042148553312305566384829777093230042885470134468903096540503014549694636426572908237525329868857880091265779795299699213222265309552056315747755942468213332811118059638435020795648183238376485380204341786928496796896119592875369254093421167137326100355006370614269530524984086261661532505306620517573055964978057054422900285144128328864891499069292368851470273455244779341326747265673219838961712070157562531626467349658940437617261517631439057658019693450374759474081995303488693237759352576771688369861318677146622007888737102652596450022120282013714183144128031477952392309242637391702192958515832343043748587188256814711739895522614439256929439048328091262522892225777842820449215086975532827310102236358889540388440592464750999035076043805743329350054706240623796412591673955374370987708988283078155452809156225654532724403924263939084158830422607139889832681143411136349993350909638418609167011724646163565415766486524615007842911100235498930646905655097637975292902120096021398815637299848515265862780274670419168328067466501668095775707315919683720117102284860569366366625707794166070497071674539455017473798861634797795272194249494306103963348544932703630488739130669149509622046833024734638919518213384502645141616428496232361919195578796200959328320782855666112472748260064853404858640875039743407507945254501133887213876659350846703696455951838752235133178647948046498830804672423941699777532392055037795410464114215301323093115018502925970585600708939852307669158418995627146746855998027449720099409215699015391587514783917656587517249849720163869443809236659686161053110688107303870856831329705004227752354025782274792174164473073093705279374754173853840378827679228169397653304606686603078530248190660450586594156546185777658169038076976398958770762369349995193243566275740260940210050346954442767287652493271555763038534631525223512455769076330287781944450511314302163215580089592989497457509513567381316836090115671432240657913365299772862687179812420184424090865749506536960526030424170148228198985373990787352220353773955095356894484558819689652827137965943844717212951089582481090331890942839544923718971138955161017063135866076972652475432694358339141240352952885167624640109796852319483346876548605641976639649788617988767302954641562949495662070306989651690446808108315772645716253686131916640545074117895315854744506490644464101791641203383991307084448056306105666280981632335372606871740575522098035362138910729401418609568303131779661376695610012447915943838489938902252429131453123949306257852402781288793174707091933009264396498304728904322684510459504660712306224135531961080112755611019147790889809003941081600859374126250378153957986808816516378348646781133643930824101734250323968365431541561928711028811470369955297675514212559637153115739817116290677305279834780013024730248460233661932459424185727192122293476219662673567136216537175046100531284182453013366236934020026447108144041101907187737330076915356948205447206473437599575117991199215048041098230631177118909321295195779571555328469141362134107753726420156650306027193065394649776965090463972771580641151776069263454449844162764344551412708752792342084567772834825356273696638540299955714845087064764719112221161017783043348684680445985952468561802644943328643371641451122258405199275658021884563927255871761502698900685019852835740060140355889997740199679905104932710777664144733664899838552334638568945416187180487966192872448803279397409601713050960592579476467383309555216337940918038310335577678839142793594327287106529824780867939339921084602333438334291523550961424747877961071992734329626931137303350521246937570614040242374594195032711311988210697745510929646417331486652435980165892434067798212442815136212374860556805836192981853664111945308910035601077792661387151050759061885620440407975305055285978121103117204740016545427622666391461141041100182547744549033612386225027113924827994328282864139942626363033544844279890871396388700707269223965893708790555887336847212758073553430717321640150437904984058478815784567366231557590435414830973723662101833811906344276096363911603084423257602020621397419597613047521613483478684018427181170776526869361016772654017008797663679035141284356039051203717013654335059783854210810757838103097628461260311581925316835293067464007172178961359681268504827730446098765916763534781524433957935167265871241729976859929355431717599949141181525302658939219357584646343511954950077086422784998408583954356005793659366790663370909948383347247358005189634529976959191367084214000369376460822984596506328520603367539926499911604480710632588913289780250054781345952660721708333066195792209858292852488458922690430058901112733753444755736883393128040672659358801546517123778177770643768121328689371560300228629058345657610755140533986851190961071253829379612177386170818962108023555275910459036972812250498236973512284602094015781626280424568329642312074777494779258592024023311822682512246700081498730381600906171646225111235702329763385252156964787560778619983690387702338192277601497858249825176781624875970799092914963309469386478998885268313643387683573794590137657527957697261429001246475709952551649505220460678712946191586405058097807497430411854493132386665741997118876017991985081008468234810930997336137517169273939916073342838950909821877157717878331077954619382756512025414962011764733660884874664790318510702369262239868140329129013414685953238091367765664883348067862354036702873043578556083904222327839448780414074953312099361775485363729054546152089501961699932189760667247865595614522931472665686876669763380919836756669135103235124322812280507216342366397692089387251519490583433900688784845477359673468533063638326074609077340886969568850995722297919979874598540008780300061238527942749545149738249314842270988759769614682106178749686830104857222417982372561369724220532267792136346976038546822114600351407389419844191459463521557979995405114379536860714189933483857758724429302235349052873432285843515599554816139047464883148799397100274475660110568652244476851384061179020725652035498394348080758278118266824012167219248234985729021127117229080452267318667192290158740158411719881471044566587345046530595489336802089010875663421276176964369200502057698280617683023095931686041253349204658613371168586016885129251114478578003759597138722542245543252311168033170876457909361231884675716339404463560979706291057445377943990584610927164257759392228326683739939315748526044289806349808992672066585515894254679225357200720812853542151167923852589106945614065878822202171542521834616879491275809528889334034213586245964216495698177267682491270474173724076201742767424555299670642850393421965521283488151922259839074737343029799888009365626999049142348421532602422350073155312428783481912568604845611132913564967461474688854218156702083859484871931050482998839647242707044450003930933358260923746675652144355925848643124117782581611990093033802594477914490076001924836296337439898512917244034843330716423221580354999484775638797224586607383010902527908787695919039138042777498048360049951540311395702014028121938664738978884624940547256565353712149329606272625943065974591501988930001172311316071462376038915198947086760383653765735876395053302271556882168284753414021973074561595721507837960315172068434508673879864018715568791789066667082968865866578723581849270047867974786103909467075138056564834942080443331249389550772115799079760029748720278608367160085702497702421536741856330701384893720304195302831909881237766569846118034461742796315404060673637067128787669714147741406700147251999862393367266576780642917741935629311054609803739181011973753278728834845801090250346233630199995442431923701912750766742533428694215602047286189372089461732164170809687017095279756300630507060085479595112387677592604966187442012594915700992463861514185262645431129160328946804988706127566077021738893514053295726069065954116995414761884668010184078407822111555182109042610317418002721760205303604067450063991464789157691820227187814061029814372184221435739718855043108161191362280358931985465613373398182511923951878874534985170924966894399133421289225852044421414576465531896239012348079868588420179318579625756282877174541314954139948236357266295282714263839507911832299463312027948562047383534439802988597769453945416975194905031568364283045971122757887770732798351289723750538819659337108517100561704842654349602916793712965482793429914412091445216744618449356382083957557138374304956171299469848157522688568520609683195916880101238661336324210605608581079586525645576627458453864755522802518397776188931645584919400888070782096418585814599129393653632714821396193787627372836101664502873132610917727434227703464216324955054393024498004151483063402324058887524038320765017497356276223628423788951481394653859119124319202345879248758569450886556881912414701275674561938819634486428226284611962536538257993310205927680707432989901325982052731253048819196826163678135390146606668941074267027785418024032927234913248474391138399499989472051192471070266967676871513489817910434382465939552383608012875363140045125184266492850510278611781853627384827835206600280993620888414182634665727846820149480692367884093325414691896153061640328085015215355255051019011102375716839764512340437757802879295280332062334527432203465276965597474463589736230154937289557009822702713488595251790372195288260893716352411046268401870222726114318095676688217494411677519527895955515327191002789616879417180644221640542232916350224206136957932905930047820849030576797185659343545588037850769204474967797829935781267556366331953739956450662707861649554866260859582010826094085156772120149399830816096721858542809632764046501626065319863700561849857009892092167260361292513291407528819265344627370022347322033582864062764479688373992298289697815424142375148466497029444502749626199378298035749677553804787933756971020533751610372782231931079056009650155400579886622060126333367094193760093169880073873165282575751256442710384505083102050662487471268708972974803539485918704101231671238090364092788649780426819556778122201813443160171424605372296700130439740189578285627471344457842688111846857048930268553198006019119832315458329154314257332993044666918325020546951974791778213844537831933784695366320655777723181093951383017337831687290225062941359650590355825427523288558991122217882910430802720922783395054892992684140598004556161533534362761207742567983219077150965311057677197159783762336140926412622362698039587108391849310500750205484170524211189402098767159271018161505485595301167891120110886372590881348840609406737780374003402209829382336380413097010609008436695194866281860194241332677036428715580182074351434048801378118590971087524188968744533793653412257776288244770663061754787292546528225093728865755305561459502183657764470552813488984172164122741148686155452349044427518416978598763876259999324422029371381236880542988509597974329378576655976431128228439956731727787915320642850789987710147322038338047361424164990740208317844012596863941430487954195650671809569787689331926369704097745858949796598063208246440565328274932126016103725820383616819717161817354433322008269856065612826615379483465331353523136687493107033417401560372561233688928156421220033292654664037472795449132026039890754848918469010258214637031202759369171797182914629358130062676879778976072102926055073958806255053237934693036944684918855278881135346920334096055456998745761048637384424458232689009446304533864306339635020253524555173629514731820140509085388117718636247932395629987927622309260839861152378785336115634191893822113360469121950093489997666083541300339857572641344025357296743054165374793221259034558553970180714448314627264212423944287192419117599983873056787250199910509933640215096135097180723077761631438823959062970471586298125545761911284230013377513897836214905271243213851547269235318699389834919301583164831183927800739422224690798458977986949265356751256187719207038782574921606621328279374236766885138252045926085405301243064195552323589104996187172556159344941517942711628820711212311172881967624535736761977581047987067972708875306557421842801934957953438268896838818040177877112601655306543351763026956670361423441513916639988781898128053064589832862537156377002605325760880422302594251978594182670579118030437077523018696310680965203173696649088335633687585562502002260921280298083556211931005306366945785016024550070431171203791096565532141533543992679317893751528508513282974648447042056786867116768429190561214293472254235790490684436806328987062235456878207796523462638382964594350137032077904488588762301549429586159868781899466630974242457957041730842154574676546304930693974938611712766088004327769765520118381488576687310720627224723197746378035693661532799493065543498987092441422220252818808507152694361398157409576072723802457003064998392715404970351907771737731020516054572668520744129572405324061676320057579876038727701091939125887407276100304104886914915326976617893977044792761285332756674000179751438893594649812345411785031429541846332888730072564077933815930269882599492834089969858592375622026230163090932286468802558343140933370241295070794373573909397470390860697271352456749912299247744613155614417672252099816051068158787263016091274831454300297706241254576456217413568965636425752193659381132253066774518437006445754593939058389224800907706058179753007425477601732210165576672744169754362601161626854450784759352921906581148688928273292149872415404178238452496145379011998354266045175105931719115570131202708025769099717265557740274944461194003006874920178133038948142185907057094598844566045544493690299263018586767546028236598467908544845188794044826588474954036421368598307893896910602948134747923813782328985062502643475604313525479782381464859436810992679206038075937111387156331155564375830257794286501228898933935765364958584903572718258031985494510059206051459571970857358586311264910142971216043614804123578189987350566880480750746209671749011380346036348073553191692256488652458049594715875383050336389006181612049769792412700479034978799750486386147705859203720896951753642423631142447944968866178284518776078297595944136495073850963023325977972975822533768122971250822365211062101477430966228185490551373034750099717264821413189885623947089146177338071292303937262676748713970341649343296570427631075008046130083237191728116590500377726424769649345955210970334773452461472206344468403513851149984558621617053324351867464001962246682136562041745146931067283125980212994426063473448013122025546885033000795155950232855364265631665454312435683414915146497649850970892555689048178857625650396222579176275863699110262949035571235084627084347815124544883762992083498150355733013086126832724761534879308328936417507928373459374681232199995179552432052636647828213272997694522448870957423690153042420266212910111175602026532650878362233685098838093515986290729427018008636706262513545165740592962020155950030095850081663535184019446491163713798942580824830032178634094304384925956959753546382095422881220910007416771740489833651700904705088683780572009486615898845497012560482435758016573383604097750673663241666075286116251538842847915164421819634532529609081753686933719721188543426295945210668837781990402497874471994015918692846607369619061522644149479427084537625232589829662415387632601230071868795592309722916273626928230075031079291234450332374290552785260273902783230918871023152249591446946825103873148189560116125311448028657246194468723126076919674605845006511692605768844962417152664076989865969614953146784043748364059617437318237251878497449243686942999525666922109413683553451321139961659363556230849890743491803795726292839523254526184760369304576004014660681773784400942886958267114714585297276489381452481738300937715404655918624660455916464660466760605992371357868362317671148414425165408561276872890356065585383902018705015629578140011932062450008378916262965279590452209412384171146577067265886158894635690110756282327765050449207514271657312292211826071939078840892904728872234067860101628385933872858802871985053378637458272205218702103834570040367148608597268888474113105364819614363371564561510949262221065221945347103174917026399574460628520150794372399504553487544843670139204708642794412083672702898120563664210460706651009774984743974088823919835824141568473163339503847401654837097474628992375173021963989260053926611926706841271198434354240576319124738504662474322229762854799476940992705780593953379245678476382778350381718908975500623270097637638231054023458754200304135634453765298903192506563087181859805716794636665133892482144902853980778664520071045007656216156155882954105962440323718767830771562165713842010637331294806393963646639093273269493982739554384440229652484422337331936765635158419920488692543559576103358817521041308597553760512148550516028011666699070557223264327044995608879738326638267606303547395358622489842239122975284131069443428080798720786127494091221388660004051078029773040050324080325974797873357926149031968935041050262935012568042061318395080695151393453608315929117029750380267848847469692742143506688500133803727533768584745915851880990479918990450993776163406919063688917902881287818269571417853197170453622837389251278837345184693789678216100584910971499887657853303217665910218058828880169362704110405862422733239285853707164192308356355200164632696699099392293077980629151851775349625902527331851777271843941947878599305310877253745837220061883546633206759898010282704794783050543387796770406310529383223079787350909773547407989547640242802230864603525679998219704751770639774955409348016699161030190120691617845098327304384109571882165061699328753260915787626029268717153847897095744240777285434258122554878227786428127476104831141257723980386891794186435907193253306830804747963799846557926417665471955790553798506114519794101733100503350450797445297742982396307083136426458914456071053584785015185277965194405981069219598022599295753799143926728213982937525596995961071231797780063349720384741647960060363346217369742446334961196510236955627389612052060610498323514281880387490035146972193627832318404939447038076948364009155154203632325705769342382997418363679319707656533478621117104678714290331672195278752139335820152461256904709699844219231304077715296274895563736095371955893611354497708957593254929407644951553477837534882481900904814536627483390926027346521123631349706162066860709109787873322020694063079600831530272469639906674431731968569899963771266298387242624440076007993632572272933718063675547829836594462475877689647146042444427382939020891351281321278439961594607955383917283430454207596544922582231628015315729634491063547986402489181877621493982736071739950589978328923245802237626890003343733929346597728320195221651481806555388947901899211651939325232567074941094508702961994589702879399776995891291482224601903000493819669470851926423482490211889767215338396251760942651395753046911040965970354815762690410443273786081902090018056803428902923415733391464488492475091374232150959709766179573811607271805754710886655543668612513314455212077280249009949990446104936743540325980040450610063823664564497617260666550517701381367091292444654371466561041994875360455650657736661822440986184065514951420581312247741894025600047316900532298108079374205236074038740707606176568265073029024853715558105165089149994222612744560559881430611088014011467904598677447802661367306524594540061930232495734166284392765030637929195055755514790925625902306006546584718412025658148539615552906615438503285920607319272063765753883106903400403373654023786467786611228395820126229258407748954486099443873866060090635179029884887060620416092664178718308533462996729334343387443502042589640773870141482119877810598540134350887739680079431242484051019455224260414891875398742205748435420607542417889280105739929285595260708599639246191451442356392621559646348716934070203088100583504689534838503755321303253160778837431665937540676825459212192265329819526471279012186476389456881795326946252653350284723542785955537016822509085474204943198155811609746186679700795375250195557514228761644343490539088802094732452328422170080823959631496722187390960069390753283827537899904465102777338211233365806304605903628799983852908204357136353074283362791481099551393966476844093480784133099957262387348312024631565392773343167963364061563067804955679213519787566260444508457957931750758212649873949430453040213806610424783537590343766133031756924991578565921985502718231749078287813461458770351409935810703239084363481606819621898786433668959024903942106707299232970479177574481519811791772059240710362587307343055213560869260022375542798949180686230838095352675139795622166056533539375370153280889889795004496817574743434661956205465701194905030552226600519004648862613718388597201198401826036144665655683140379105098581225932630496589458822069616713223251379394233385857043740913436385352466349764495375134168561910549799292330238886433058758647129443604704351848916721311668022643645620507826245999289449088079332468584494788734006007207998864577593167785597387266676996955307693940790015462476489145477245016241614230749482717192345091119988496064875874072482012032715109362771581081317681871522429250730025785993770344027757533913901871175217552620693087218107715922273714484435785615335172109075298549887483225328744345361315306961245884492518698469878114376733672017210470589282004920032146385506617837227002960822809395973388014893650501554484040908522438656324007125134697832480747605724909367929960200570211918514077185449451022621714451892530417989660520678581929963539180788408697914856399002148896000046467927273346763572516388364328150323755980449467971684047159022842761122965611673640316305768058646325577534769630709573317663226168255947680484445203659216143057643501802682031740609329903093500775413734817536174354548613980914522511013824958921576545014809690800224279943316025287717493542365467482310413436912916593933530118813774743953931418461974766650689075018986540535976771422869691220769223400344603916747373589698409206667227390980886447831785676698558963576866232764151212700907472187970350143986289092775984000653097471341470878344243445333263502647416633174414768017735806647417154793199998483545640965402558164943296663140584774994667613230938142759932880361577560375346435808209749405730286160057973692931781297776078537780261888389875366244642222077368571021171841576931336764861551064708172944405247451925354556401909464701712950592249840355123551755172462604756877162117074339107885666494485808598572752094469031937473951666419211571486922591178844146899832918242063102262113065626880349658055429842078376562441635102169789091491276324957059008215406009088115304840827551420510063051431117739302078962772775938601933982652952097910603976835660253076777428147056183690897805787964610905893653207760011796896869395362569920662640736950320660656318174267920868969822964101545991641976460046423816273646053912733502097396611204634865467262730912063003168433379571818643626286883467769353214364840764839414685515371667333823319856183366939652199744681267187344724218492253159607854867433762684753562250757311992063469236597567166244514849257166753820357066614754933694270184874036137166372498768816327288425508455843290821086439059340454566182020303335508310163068551601483007209427572126452812095821006507555376516754735647194967873865412823126718938369007007918428380993126873530510021320065095595167361883910704273549663701276148911442792518163742732649230366257865392298815725443646128584863732832132459811552707673711812704455880815862604050867152839034389758677166192536076670631805061960563499141503690580165466283705008749550830438324194079267962788274389227898286158759574235849988805411912320941448321630173561606112324398311322372599811170965865974999968863912675185935799878601254525088615776405021044953150502805641221858849034452734996364559522207224578614315177656789144331950381815443663612904355454794764396700749721426888451707756242064187930437295605814094425014009962682637094561475639178933147836066392683332299363001336077009392491064786905664215881089218415824633486471758437931696510650567872270062712757581558261184880802794632804889728859691789367169826203062722226878846345785188420688549531072298878297392218806746521823419603376412959390276465404783354888669535165432932878204003648537705355786551514406318276186825209343201893760757167708524662279703591910454321750571023413783759197389630798396481257101637078716683835927188978763136708677696824719044306362213293340252286845084502650497254449223444709326538876534947548515131414265670623115696046389787495545621415722152406154687791570380949807551972225217890316053507271828966577829472384824864086246063734563092911511019796948367063217957957493220878004249320490959071431038134015848377837284352600395604064059172472706137308790553861429231646227757268587408622753993711419098753629349355033354586309451874933172956816167452446696868616287854442065893430606766004621905474904234794604773815389050237120537095302955402201228254686315653791828831175453500357822521299910603033777332887638587323967018493642483062824032618871811737334838985265646141962660682936215906103250852193649328092626944997692104106461751206227689815149099101322597757932813769968237741413804999874354571588114440271327642436283229158415152168081375791942839422232635141231058757974343409360700502009457844285056894370083878803030647371437821298400360048321293497794627343283935574931461017399416268069642962922004748922051161257692896757057753712014804296588731734079678164954001843552637821003910697231427898963630940689087443560054302420394665106260522283282642576870371351028496451561804174079534261774652203917799234925526920542456589844126828955588116994982415265122749152445959366806752627912895117830288423597921987931990117219714776184798792135256601535307600903302071519048658927531765230379291473732220545110819380340181814114365803881124111689700214761309695953114721271216671639448928664227032848321965603586924733721926455895379112337489906925738876368649252914381457877850377696019242559293623839560323230688698469562345691116630116075035640332928574978102188817573793828770321240222235293701574099111488451253770828973709987983305877173979978755972300793399437433948982825083358290769371551236454984781031667452956261237072861139848869704836693589352913345762337957867442271445475068355837673842363857785998911530489326250152701818223953349022402018458175293072276448567900237085664469814995263560210834761778427493412174479781297988652260667988636179166931788213662111889622986561905475265959476839350482149586085280619488502223611812555364578022243324332635790147281866516660567681665783642640248885330939171343859817834777561127429041027628864265166398016362062880280754275132485535178885524793764355876579389811739809224476055346949698228359378689936604576627506102309622504912135626715196799372235023865062331941066649926237668842734871534175616961060840866968879978221320878365334005423665482826721178230288776305401930870975084242933353000950284130356330656467911036339880092546059801456438463901541226314367688469902199451817512404169030951575424747818174268654962434365791652324533658333290302132376107786871923970688419778634315114794063405904523841863522490143051609497956802940242763600967033430593449262992750385254995420052774365601488994211094780372623498440071624387302947765608556082102361880721159939136346339397916524558414212671310122318403353924508110245683239517825822972306805408864809579658376949869657537289736560334285740664679037035471683065281683889869919106684592398965720159964382768554990167661822806552069077791801871559506452244618509179692856196936496502874091742005580336302735557644011859164530951931495258626235988287561627684218129810122070408912267090276291905953906705856674186293906956269239806447739915840771535299311653763065602955168596903437149494921878466545795006883482648735125955310220435738878606850843182887645477475405860142226293772155568213377767050771934566893751468346374732899754531254899373584783899523700503800809133224696518814140527723808660285401787879536940981795839681103890684716491750442387578208683946574782980317527831517606880082097091521847104775167336794265295011311717483363286588170268694453240072855146826212378176599223501817901022107319074093586277167496907801541553251124520723206330126280699668093910030746151834910383345758129770277503165976522713042792825180162693948290479099992573570012438854862893030314465942675651901117162451546838399865032094220392894421969994705499287723547845534162364304656872134444260321886165291170510878852854300659741229700771016238837504095150373150716044761839218625301945572882459502006124651536086585426406451514487628484068093571752871802227451044445484784858091660639564056265392890805594927566123305700397561723966985721520316896596355623542640249406064564637522569179247310414481785357254522949520620503794624056323808630095535014857035764787751363720742667916269549957070113513427118367345270658441046490592193939717655761053850191642285645460641663140169607318413494928214857467220110989392202769562406188509147160584355446855046027741214576640540880903558427343664276832121978885448550197857893997452742685739842347741265941435889954052462624864088309814383076362180444525884085759942916740961557797953658047217216698854530229455924301698403981099977382237015324526452614974492288977811352445193288778880545933402282131578812794234826497513212896939742953608480957303290506497785309786763954900754825345981373501306300665325482070129329200077140728053975254612556451874386911182563637321753691692467694853223934483565392861511917428636880715377562503859793188030073158811381474732414895214985025368524378131274171811868610892462400047733045515186246515747041568431510611173514894426519128755256919469777707980559439917034733155561645105478885128192585775375964077336821595180623293201562319962115649991265875856405940658716144923979306673178118170878476855565860808903139152728071629300327396357928119820288669420224682778357073012841769123758941032859331961502340415041020465677452879131697306368273016280913114860953341214549896862037671639673472976774902760501614800979771829869505442655718234504831464604318623260044299583112707144818233890295309633160854410614094665255167751656119646958777450947502119622261906535793058746853484972979739331375278558746842912396572934406794383668824506479614767865153347609170890504496588715813654979864832334121636082884828286575170831103976381258114911498222874303401819536662884943238449973199929254861178173467934407943582558558560690455479374097536324314282668791815269930726358677706593282718469719469668553291789243555776160272388516225008757243721811940880097301626999566106410015421326903899061606166785378953728655162424813144147033791961147502510248498496476918268472786944482238162716275116659557424077493047628932921179671268457244517399082666187385065428239749120612776850276876121092473394254423088436048042397965142234368037350883151347269639138677131381747768380005970038658817813051618095604297582053963489709425532359603528113816807448765615460181566575565429729060322973633602106097288153829118936662388837300641697297172461814756088115217943512093474626901922996945190658919401403218337332675567865823893800568395157920561109285327981549840628108798715798314949827503496429893666040207458975928922523425608812886802132677371650720578108207468567914577601451104560560847715745946972578533038587881216119372519647240114196922708844821289037685022879819806152605304072801032339290870308382509180168515523936731608667593056702891740272472686338258647812077551976562899057493766643088460327269062047139313737752542260948931082232982545516651792682127738109417057992115218006667400196392154383877702763112405741622991815230123544328243357219789662800858939040850449745130349206660297403338866634943075282027884982248452376869005893897261822178295514244196356950697279428691122826480330119389555597648592824420663022542721580178681284795804645535018918144529453797261577645894125739075673086777924071909838487468607147504569473081209808081943629712521410555573736858180109749465309823095902332215498358085622846785461561985574870179744326657359047986257593791188203061435707825312762443934263179390398072484362881848929263786860663481863281638529602994977224023558912213717375100468100754703170699454487605885630192886809614497139057196335231790348705359230010146080295197101289658072829834413377386053584446876179395959091372931455695049611168342180593692936221271850682267289821196098772678626828106208503379083356225194738061856987831754127093917143408947187906376915401992127984163415970686163709704238240449999357535116547430887156320397543765667622345028546979634803532151797286706296121704335270020805603546357952029821943689854888927514840760149585968236144244417249492185267121029262603095014235538619933831978359963069609687186600240111319798476040157955497200551697810900607042596415277856746100329042444275680349843676566926270888418373959841682684445186094515148621819887998444751829245140381534176813819368333562786294165616659145232433032920884961507590311514752965471572873531580963058801510418183142920143457056442424499773008266564195136988052516520613142252242364504190978683683435378044745484412212640236795794857281848040240602107365723410209018919210437777659492855451526091787125060970976070077905596593197836734674196481576043661067880204345819962577477089842624777563683172614070744866390426798438639992514545976061310711773398569971000379823563789968519724794056738573689266627006504407549393579044705772432125632617342815716457372536859115991846418970847478438190518064131092856383990370050207300776175268946880358098796330089320974130679474378576496304272596431467746316735304584195002565625022320832774238645610485558130497749595834173337073806481305461605938125919890755601841968578783344254442195606984710840939284885119166371643438501088783901409316374137900261481156980924129158095331081563098266033773333377335976461438766272768876298980599240346212087797576455311860277870368360470020498275385895944105473418731049741718988250838128516820299245382760704516962352321120915959041186789470835162651929621588753577279096084231373687725873072656822401728249502071631959487432604646635803240787272000136086245648804989294180451093958301413468337333519148070728170698890445881838845336748038827075436951459144128777048489295312229524358605618987056602196630285036406961305333725548533744483238010981131862710908211838214808660510996071637575616595686337443759003484723322282689693494379142567523192121705237182206777915658724242743709097625456222724177887049762206851737947346074640274853884225146348098832244225519960690728088070996246604429320643085977165109379390298815816374464915709775492507239890966639488227961316028281695236268163692968431415083004716820208924800360647802024740789794876388748008779601977764470366810503310056282898376157748207299990477688336239536433587312286559286124417754359827493466918809332202005414381521498094041424811571377561099721449903250434475471814468065345294661117597286132237032804241839839637696548041631690098210805774361699657122277399471000862128964842831765606480161390002638555665627429572816679086656878061087633654586953510213309927298705126972653457417364566916482219443440398784025049244532918188199266774318730802634002155593049677062874382478835395771173153123220788635973370067459985877319192071602213618041352534886997263689318739325011547744118849646566980774974424626953347547601355483997555480726278708987836006659279924729368519925053766825701727360162247073550332314184814938125905830131570294042486429526316131566759189354234308168907851118992044599515460331450569054133863802335057740561353675090455931490259238684184367544509753677583310399880092381952656779039228275101217642615126957686082398304027737932923361122555571214301078121851451861229040575221654999033308604839197757696397898184412388704914563331668206870753701528100936335728219485019867980295324631049881097005990000476664994391303645825897107396123041850693736941536433740700719292004311075564962293416905862770056904303187906183443131634621356273180087132227520620594156494033614888395969299448622923357483283494638823863587887832053886918188828917409864789630672811849686352441586746774109991573033254451778368392357145540175712549784680786399833978007040669812584919985384936993048746002909748446435229815383382154788826842793731236543164477919467898014726677211275380550584706114778563919352369757144057638363606743934937185373194347917774621360503255647000221478276207412080042640840846059054976404130396414692618793036873771469309092297226867537893344402873550586872535012063898503608674105578985105598991920077280673488029119171878015800824377740453419610216398900464240248876921184800641833513251067198475859741422817320499970464941610709498512193050267836983452179225571852765960178684642665530649866673479050639317727342917749357703305870951322378271704111713412941341974145621043990933203336891937530579387503574775388264112085269973981120126088394506848774819477030565497486450878339990406062371234279810616626779301811650222236671484628480667619769061868328025784709120036347416993837181449117157184092148009254279406426833185010031742101182176644758062619118534449995175181594872005438611406766865412081262372528002843063403579688808825471119614829818863361485721223028591791700555181844563722825963659720249191468599392792620976636924510645049358297819786266870810290993399837867253468824179553852292691535983054657814830844384905417229616233076730725594855820409531386949118786951654237019564725111198177301321629999618167886557513833301417631193829001058157123558833476860039799939075812883151200790437167360076048361398835336354895540579889578002323563251404579902346000039366363929512995864179525495433005132521270378111021339908044716232874404011818138571105404863228872403114684313693443476048531715595358442658624677990676909584208819002496874742812450561321361852110079346882483448101684401544666588671253911403546916717595553606963761887641845871453463096483750633294908590364771251789283693398517573157113044488427982681103347025212631907082549893097450187342932899013780182077019325594132383900659187091962813527577534750238642976730220627343648310990972674375745145261668446684734542916140915154847372486174480152632108497429577217312283261663770976845957684447291223364987865190222285489833917086239015796856598823395984863575694538376920825923884255490510113307561252895238965107078742039946927390923884326022209666468654125093827002532039063916612293709456055192823726849426333819115337076019368450502258219084100735225068835729423050606937763258579859664986980658384462996864948479403544664379907616267373831628387609445320222837798285619699260996328043345569020962991722776229019179209865569473390267861653485529462401624768803759397341560717000933622147057680645115531466198046799647839389670362444027423159550655891954803923409899913735982328387354225862001168963949430124570982923221507399097157131752121596733568474753330344360283566323499817098324022535579845391455257006597696454903503798978397289472943573317493231098567598807777585556017142644505491991611006993353864947367304831811104941911157470300674483821341739427434693365694436683542758232190061021475612772118635795710645629348854868055057320704023903114668581554649653028328556082221133682116754658764943736749052403622810256551235959338334689111038493439129603423387158543174379119612896356505664833191748605893494051161223717796796023355317075545860100410331333383142423244632213299311610255219671572439130584800997440243756333572984682159187657066372908743487936487104536791720121221292837311758916511400787919388007920503367372405032533142848648389612825684992569283744401913749908120343423525000285197579318778176805997641145442889723924410219531934091770775062491950688417283431311031387338789594545186111662115878854865898557711867208291752588441315864819351638441282030038718406076236496637506516447986896267643685006731586014129309719596653147448280252930876026503456493630715247121518482069498854362668311028411250476603111394598308827235186040781906706201363599557492383382679788508524057349936888250352161256150126769797251209734230553069083587359616736808433502960072319226092344672265734141427705518444901245670198473552389352202532819095455528353329724295579003578793363377486298704044695049697033625315775777974589113133538714624443965268748909739405397921853297211894627720249144730594173400154269655639513460337634907327555321432262566611319700146556246265796004942790503029637587155226000362760838190825514833717192425516300059014298359885377317091437285571062045711261120611514377374576199240982793604899325111435883705934136929430836976527583844854379701962061534202183152536209535597288926533481234229467280960135847637453696522986329103256937190529325177777990314251401835811754864892502009716461675478115476710743003471158863286000735261424692360405695465951216977546701092614718903627361272477036759195073865968933614588162746772989563475233234821032284588926338403475645176406333386764929628256547464051366265129720842537524097615222028551672587550896454944213398358222277616433079333912474031162502448441716837775293939757077113800487551451461356174802436134727343885581032121229757741296470376323320985818260125103870024791561172445110077746476963256191134033319772092054327602465708584228198362468659335683105395919466351435937786521258796062198577798815704145002182565210324751964066638667303983347907562978907021546096336022989910207347985921549352795557361119330734090695397338537416669690523237082071031839288617186083402072200923649201586336895879755230379849846043179710023713415247694847583888075153961517983046928497964952198395502558014458258599650319900518113701636330064342168751456929070261794495116644493888909315138944742682526433475225572853157433017529940498336760584975980512452849538626827131393693528619777107853098115319221748469500270041944765639075884364248105363667437143978721780876110462903135503678631854803331335900178445467963439667067245927722451791924558574420685997434444847174252233239018435220286506568555834032521822303293616397791611443543869199901090668369780405019778591329403808803183447160271217390297998173858434562809911588230009787369368567445634019144607987305993935086146374411754264090573590643537099826807061033644465416642835350166641465753076415007266010546712029900893464454721290376011451149938994456217121270739503728261983428561144562738719576822746669287883748840794639038532053710110764541083263562590432886898911507437954292812307246386148085865630879341082735767518877913206931611288633227093119989388177210032931494839293463898363654511206051001437872514463842422001368233018227779788475885916819205973164644393998851406311372629548640209087259152359759767864024605255147559540566314418459417016606299562121125727958923153092907125440239693663799307766420884837105648851687234890669250928563515186615567646148621650517619326092980235291980087688163716056712416451504988327081334949915238466568196133670284183606746597771208009420396124096862029415154986736760947302329753831998218436839110855833862865303097088882402678592990788439818277505353073304608187516934354614300494929523252022223786011596053186659805664592323579957583601886589853033733560222423660393493694478301740115560435962978697252238934743188333311653917266535634998963043730739859188663111463763851950722305175164352330345148865626587420246860609448424283571446600748985271918624493390936454516640775554361238507903109426124949192029860687937543156163054930109411133966692741135652876578578821357130156143510394203970841894522640395491528733655455893047908110951302221423164847397153007469223751775875850067870331981094737698424110703929532896132448261773788862366670627850014177340771928530869077924796964202375101762853969436546513896226924852638899708952355514834744205710773802331825111090524790120215577052468291370128302342987064936375663776336102894251135323987170933563883372075797087065706695675298642793712046500029033101249204730194069611918528363562371575935357656411818693889149634630085789423691263173778293167493404681424075614717331500294719203936161184066673915154061981609949397730196394633398869083640375680478216170375692113265327923563836142380742945943375835318598385103865139899376442083819195725722748155859868731069107109661272962542713719204323457419820859338944256151713384373983287258478839775293985506936819131155117207970419040079840917003770972769406168612285533768755031597593377755269420055768831575769762315071091091654990507412676041762939682571761111450569240314541220851684824501574697847803408821372860890571925679887488582297443924333521665216910096130807509708354026710803104888667307899828934171293786519641814560521563322213717456767719823325453800810179817915182343185436309266210199339529100253173868375863265944603233415706630182198552380874597660642247913498639087045677590599327088988045858968723661590542491278074034853051451514910311163542800229531047286419746355851830804471561443924880824784984649442135135298490784106304148012965906791350497213643276904827645298960187270264999503644936680487052814930609101243276744025280493718952866029329345918673969864887525468825966651114035229962513114565823955380777484988858534880911405470491734780487674598064146480797831777197896709814959980368929118425465093942360295986918397094368319287360989637173983749494433063635700694199734420109721897854726208054830351996016782080429419751406020550882825241899359981503762244521705954114748063608638068260832964040618442958887483765552796449124908646127400713737920811760989305150362175666056687670187613423833824834102926185931840882881438231799616041849167927170672270419074801804298660737713228132153714816872355429656869910445591679407811295633893818272493310764274859361018957463761223854723489062541492635143171404124619336792572048456613158236931886035390365089119776540612041508133723275568690052612272872220024406467848021331807790295840198341919558971195752149018594483983742380116301792508261987584257729521253531646953524582368347856750435479319038066880488915317169334603069689033619133507242683164453218123326711340897383421021379988861914491009860640732992182964251328809463400479205569397451519767383332906707122146259083563908601114517448819308076125356048388102187802905869203826230596922555899319239467773165325796455735606685628598854314642011856980615201294878201280830531337769389833103720476212328556378599775545163283516541452171238364974089718325762530977013322175862087657198890445991425080328816846641742321821813376201777859235487109760259936204929270740354844665971868918412112201383497792311468918310049371199869116531077233755115587113553522202791366830789487094704387402082136538673091153415499616442021095672640389225411629010125513548357569134763138393902360212077387144542312066280575521016730421555991344070786670321003156167224292854820532091336442822525662223257988851857002810165703290279903442031183851451612101703867252929934476868504086420399593491719193714792537792797194038580097671946635186279941812164923510370628032993342822171925974520067574043125328520799415208120749073467645417227670732053261556247835377950057978148091949483067778536356649486052551729783959728999543392924614071285663108893021162840415966211505075993609806266933260152961980187533294015633989558418962209119090928529383996800526142166496879387012880353341647452120374114308600043008344417967168478684865334585564783736839037837263046236343523187058591480368536287203899189728693356282511388053239217222766262684107649108641546644274295695069491664219580974936939048141855784779650285991790170630532036894988929093976524730908742032200611801263665276270477999650885895989241369251776050072287124684837646110470305033690696887529955995620801409968628127643312525403831021621350968285793417819481313496771619292081265008012421142806597002287980095568812365361579654140317980491201841549657473958947194988475050000032385212139001982150256831242722625117994654662327084806906633800267000906046865864509917705988286273825928645439564634447390841405180394723570047957276011096138545593634726968330523752992936700024548277330536834173607304208433483242611248672426629084484528031955835173267120968425879782695490606584059759247170604527821710807045846096656631966229652159986940339242851005325898094201924062112589222597880596701672971064703108261519207231358731061467972942894584752712184535131064929124774490346492073385259131470709514104184488772957624706944600488008341440214305887662400560201956846023297078698229001757968321978766836664250566995619125178886714059684763954997076728979105174348931502688367780504175381087936149380468991541408426362173248887908636094475489709607010021305523431244907628988100368014840086678036434000106907662523707312663321746620109319556553379863436944533384219421912466110728385266909689796857353036598353390910838624628641781934848475403448226382497406365465371554412830349192241510354441813697639164348656829090706482043659385003791584115961079790683278171156082433689162391018495753023589563077208113674105972336483441807607956200398666271066732331985700512678446249559881505214932517925100876569598470500492937658846734274007780530260375414396503029389610033367829032111339823982215447607409447086709004054206805271561796375258715472002137276271537231113925594667629624635758203512968883656700046464882023844832007099436919178679862021298906711996777177927227399009222814036985727101785493911807405418338381397706422102561703506830611102568471474100078912935994050943737196838760973549285099430713794532908436511525149866846765381428899273176817262498523335131321503314971637743427206709030778480404309834757502522653162852684097028345798545381826193974038892456401532916942973560040751674612497188864183350618302353165383727669748398568227740847651089267213012191081033403692380248374330494408497379655617526658695515340145071797695805836777522489602273847473061210666109845224970518631032888190918393993142944726699338398896473276782583413611063466227154633106768629233045398641331527522906783199099920900893133707366021156833076066405839350346101665552870587378232961281871692876767902240009196518165521702647364300810860001834562856610675523286141234347350263519453657725214380336247237252682102687633512907407251024111697365380600115030588399506896723388973235829182874901305540665770604920554717303791600921135338011383254802986654751189912732260561858048370470791719955521511745217910643156384586327556501696336139887394290616820181223308763830906964116250613155444962092021726116598383581109297611292756015400047397505953720109115708106090659519989879433198298979292780169642081020733684987348515550703586050513170004802362903893244826621172519884722583430400468470230815295850276616679982390111314556444438066534612978143382263068133503097096121706882181122057360170834044358684723311931727363033402474451477979179702946750957790919011666999332363992960640809989055606622775450190049390994674254826431521428179966518706453183000698187238655346620367351405976597549151812627638160387505248409238564596402822092411119325913874302442252615313741592235883082267093722154959608651117462568765897056448401312991402643236068430326541561813135429347708431501704365420465016585377620052527375908541369052093069481438884713572785203212268421289435646606898303102593261429212845408677005053508863842380357568638828215923441327520106958236292787546038663005041278844320495847445851082854542655321612101277965795071809881953066660184436186027972645925481798166708044352213441452422827559552011809423698757496804947613865541959542803003583139506286416339764681652832209067032553022740097365978825326555300803019429478707168256581640658811129027202755427179481446087499975939672437646738296488047474873657439349071912710238045872391723636114805165046269163638937146422288608871543321665297752584211980238278771761109122456474618801482496179900464214472813647518819176169217408997494920187222523239542406598052257191662168327218609255076663445521790252115526494291292623736216534468473032769496438653212957019353814131593105218473160462086678160183360928681492835218210473853147112440502183232939305816585866793593238661879413883430798913157259884164282003047356452762032293726006879872776031035723730806946664639333991930616243293301275177349833340610357720020541212830409568745284014107535073638030854531056524983270012362638227736502072787120956240957963893681525471571687142060704186808126653810364647347138117549899293477133423904410171887355010317570756432925431444912706542011177068679744035267520784403730850976157776861641948340127622622632129670183505484037797080450515138128647719333527170785864827080848881706662226875197860492555941936207544087791115454890988060051027486294700079978217430248874866583306519526897528691173306771486586512402670257226298860400523298289322136209681499100000915630500026447254125783590217264067391988391164950183802981025753951836165612278406812877397072761195649557016101274228906340428514639359435786953232718585387998748895896110667763604115732856636725959503049925810309316457678116800438860942682057276239436346551764842567693962358613866312579685703081163235769136733623477141853862843163014652805557358715178540372435538616444737592093591071803921499626539038832390596596499085923871587408965459459368527306186964146325958536090701217213477198086665651227698690804072137901475638440697391790389275991022415551767338663803531513983012288297130379648685172081035000017217444319606172097021175478668303633209137198242982458802320583173524950326748052883268852211266413191660014537771658382166422245468580066538947369081384567657042901813523454535463344430402682058346332831213723438876031169226314459326203740749067854455798182163458321465682746782648156295625784613329318651004525380236918142746617316170480474286812516045712662935142297807541101433143461415087264418414281394539755166703245116380570302513982294853668532426816233077630928867463745416869775124867503468348560281711603478154154364787588294914516477355030570711239448693869926460740338647603457378774326988837559657411870148222579332477214532118041265290668082314629000282329596797465247779991530452545998274925129231643007926097379933413827683614476965976738130681485514270428785640932738504858708233724859857963064076585000366060338984319750869738086536377883723681788145997567850216868897965040145578484348220114566578190169721095108761542969527539953324979096201939389733374633505195520103618902383035260539506461019593268865315118702635686516879746959968396574373470783937386749287786966346275792220736374859095565397966154097245083656000824788534144074995890126126061888787961531234709608691071761379193793798638374939046010362527601892114074640684805970190566423342008466552065997952791658057105347778239115118952530695287822376227039729907923246914924440920477516645370998255502963344103434945051910476039187075767668207703104391616452671989097880450699360737075547861636508427070925404286475290589369049098426194570136230349318449085631706911355256518956016002228727691514525090234717469488059840317375293979904123811017154231004220552987404907311350932526909567899974521815900336496883961421215818710097029772483563760946381947133933093173460419579239372633451986257371799411193089363165065492078168140996144101159238586687715962638183455823742368255788952872460491779015989006454283241509114746491761205491268429349812473094239182191469521239046778227389560560709639115814671809157167685697074566535354180476635948250118995193258946612470697997867203445993285525940090931801213561868214984972804166230137219839272776649282852088938028134994981440572660275063374384118365191528663246186488695317024682214926605760312780539145051935477933817004224830090068583827804583007567962047808437655980693745325945038868210344674548018659587944569353535776617296932626620169140257531389713375364857642900320852277701354982281680061973523859004201600288789231632108940071447444193131600205641242319581909833272642319905256388332897007499908432866728079319089126376444166416712600187353767029085660316607521519325431350776929876155318879043179587142061420288817122646239051829490684189293259645987111079714521443705217375087771720241246422340656214065959272100837807123527704407623641703586494423200165365971693710227723585076772705588853066321823476851265193015594160246246148586637818023230711527058070376503312335420565374466404728604697186730952201776804497607185066534327867843539052878737841130746117034589035100342645360051526319645469766075131695850774453910703322918614673297455083408636545904533381561477473552338320849351934441918116225289282513566963093250892369507832938853374093523068399023805979304478797008984174169281204525962323711784870382108571151490908049219314265288886052054609042956425055663332356858440520415142004379352940023808332386103488002301197281489036106580459462874640839373342640726970486042627845774965255447093623390191176304169270821081504653829519868557297015649697958326227903911328647273090627110503358344694953957052577007955794368616833103290418677391408091424642997359150331020907432125324459939037641926559284685249212862696220137002651454351377094406151500351831718415328821992194991966227283578706619592518844103570054420224456202471428709990573254199424487320580391278647475880650023996274312104652773008498992860245189422547478914584791393941736189375830514008956461183940991357596410898244109583567423145329586073945385612017225104860646232502469101276004188254536924712889733973305677044544311345924972694144433877916436428307852135064620269553969173037945261380411362936580826556852621130023544471269930235678323000825222872498110172697474506441342390930986997195481337232256605858940766717636314621409172597535666376080092321944506131633206767232415997311207738255589287334629960354939564088690385303203976726563903451573513654399055203652800424029879599152513093768548716854341938757210966403548498612966583455591539224612349692741305780483358974072256546617114192311585339481819490020952938684727847630186369464410025784125841540683353046849450150826123983683487021951952119482047729609314112390342669010645595697054952061363557499588888259664619510166776684567344113734061505399164088730933829294991649406012294588955357598380272538252154540116238972615790553991753050249035254247942780414551586100724215089125637662817215549586728352324479519967892764598463161088385834027026623327791844382851384816207888077034804520498718068018779274767696099994885488754160777912306965395506759537625001546707633346458010824239385588519077924679353936755028455588690349893708687484001182972188011162961050321800590653686765032292167455602471127147522585300420227748112461576212810919141486259260502956154022903995433939641518431746649418538779985483675630740036628099584931082256508434185958055125028225150806010332195482422706593352337025368857599919314653429649876691774396373691733722268228849948661752854922647437688444997260348021494698378792866227390635918425451536732529807224039034007355025156281467440134723120161142415317250000511780401821773133024751738042078440117685340800434374188960715508568507206389672670531990406457332320365862841247577114626895971635647590848053664119369384927247322973611993398954551110243158379403524163443525107619077299890953189309175573624922384469120934518713761805426708402010000188807509268312080378262245139520026556112778190484307398480974403462972956062118704928644965411007800120729329853380367985085554774320241728689601803571130735985679411345968983382451166001608274216076032099926076452438219124093452125453338542049042177967690655701705632095878775290326529179373351540849313612417577438947126842726381195744099243332961024089331409345545576622027848443813596484631880108607095377211682452003115006186388177751473953495787214404229790805103463328278288156931632654035990427345809457038747143679123535601672093487287689304798034951193417128077642573164515805653598066538204268990170077534798314849168057859099322943934964867422965829023830466593970093759851157110624473750021417576963594189365851564349010234482305128887397828064338844743000102557994878952199802551059465069609512827763836983630088821407144574991810415041971657505116514709462340658677975043299533706651065311653763182351714143545888788344883359349679542619239612234419266231275562054398857098806479543803707847181658304488206163321520309954763627070257367539872278749851014599416608459083619456321944292732579049877574228510455492613656181750021003942385969767063832027684971230878108481873844776473483100672039006257429583924226210961311970756762066437300938302305840301756014514477709485850336326300885252826256185624451826246131987791237717606798590075620998149754232678608665385769953650984259081476240799594462972421807967995702827300726135343812813810413938542463615354033273567686045137328706602788106451408938998314379757169254016876086692651085300048860881557259748749450033612752351782031764992951532713440576273326391360141916185379673998940195208121268247989994506335107190383937820491050138601302050761087037058210687847061099276322564608654989072898883021821246349770745860866809040519149743197847338364126166558984347008864497064094073156863132566014317787046907717970396181694053698025910620695776277646150125795591220150304271026697630358265469339762403030705276026239396496988503021939335018798784395908323991106814158238116861363679977800744452738725068919046975875642175710815715770499195120870688756959798139217551120734593546498133539432457425017540747434476975163948949463641682215921513282748886212900194745736785989633530791070597783069087016307195313116751309443501847646160809622628453024217968691283420988495028071195178898305442082436912803754023469664660410951278247015535235622248786422819327675792247526300343426973488695722541777648100528262444567458994329871607548837536389695081144100117147966945141716264466805201465468189644420899128991598823018792125741245008261037231056245218037211251471749836801808931321401244541637343024564158432844426872353689256276443543803736881287085312029147324852093089815710138850499972848249524323561923899450171128062080701454160963922926952694314822567571257805832152560417960192440289138035852524607629054423972388914923927135175538012532312687553285492446824044585939036003176633542900935583446117775698196647203713279685181815175459196095746510442926880089912630919906950483768785175143301584114450275845788700544487029028996568357837925509815566438010623066889383913368651677928520334295620178639808126278402182457394249230470678749444590007631379416594615258238161549434587600072960381867791959954257751929636319875436812554058952601286829124767689347691634959415283779452405343292172320833636203821961700479059530073755887843279252606919019935439743474910774703538499607945685844174447563244710052243139716555385651702856457958164958774409904649381825745151335284911941604276005261951023372079751363740307869271994399844171360020853787641885457051203565206622797859905117023223627986237406464482345491512367193023094690058365234306931589326830065072712686568330019651204049727448644647458610724976322273521112389667110859297617787887013486493451626419866213806392839770815298933543610851832947485724751686643934115109279135422391966065702132026919160071463844921085463780376606089062444556067989395313092992572465419614647381072523965283521759011237451242356002651172032549421318501745057071093984605771374324698864551285173621115003144229470739425800996202638436703414574248788009128355521577347118200291373194590810173365891710837850304777486353247798868822288151922286097185943227041844984260657652638102206845720864910634001510807751855536604593673904340016324324321874115775960895772412911690384053345041775485529038567402156555666025535059657112215843961065228581103878255924077190169957495641234846331369758178402062058890500241601278407862276394816738097046150037918172707400726769380230389271557311949814436182275226650750854028941589280754186354630982286874627919414749698728859902275530717026184171346059965491817628149107698783850132136918197194871897534291208754355822155087856000534619488115357260841946493954310699933637342024212914389398212816895483071234514883381125813493967328961638156565418138451403871851925452024031100283286166755778603438883542536217508846571544818559896573052499237060112528346918620525346229664836170490421195552929404721970830236445970225179845751684172149542676534678888426682939063364138792362041178787048633314421800916906133891730132949744619966354872711630245996854120095097392550505012078495120071933710693348079544768281138743393757922597925288169119295674162236909418401148156130049135713257350558552577303666472283518543903232901404894214140997250473676419354413391583990395504293231550053131209093076548109744381512021794816883606563579521709318688732948605473923356375159426149666321381533004110720886035241371766546074759799746601537950935567382749602839715743923011509077652124292054403075918513245663302358473194674475809930733858151787985542197821340272669151679783264302351391220472207403803043344911548194168932278448022632798722199685016982983398000362804739838329099766073898665055356491238677998052187155436986686643744201228145105231556426820871725652686195576748688428900926367193462346446403500118894079895813123371052071734780980169693235433158273599293731551359032154449702147886254131542461614081577695183932467365030115559305121553081969440887532191735137633514838883566295440618365955183019469990764844357093589072717907393371121123812880923580509780474978736392180457577495991447126410131665250040189665831847104919432362472199610299683123476424411321952636159513675061210456516466584261693459774632950354302060952653511219508149159395673660898220718336524066080898898982806994223224639003031160437578746881773457470127176473221436328532442421955462750463203308372233336064613926782604787825714191100572390684137739277659338137228528010211003843175336709951946036610193091785163589536387345592122539210356642461273934222201303692322785713376319289147886323406889716510348955540497421882964114313066781009146318548547950146230325948361900494915115047283130750490914549437170816374849495192207954933557516600359244193101085470844241306407225304789494515557766413595396932271861468901909603511816763200688168510763182196118698406425211010296364297406294288562043575108996946084579489820350697575190394121193715964567038564156708316363338942196342645156907496050043600707766965692247214920736277536896643923677386830578863926562020513180182912508835056328381830921566953178126385477740895127186162004114805795550334414721238918527239923168324237038033597312334391174169546504938935779879780161853139323136070523504465656410794744417106099796956520146405212931266644495102455015508381201789487848231512295258262736329682613139379632874575384787435025315221979724735807818917804283385687779712261937755811428620770670596392282670959254717065920838574336382247228768283427997890366328300360584186332998267197867950134403330858430497058592524622121683780881645878101567808915118000810584709277213660668332581404933013614711318581671609877244460644312154645233257667514276087685883400399345302509991029080111423970915088914914806527229691516541017331975490985240383717951269285101343936843985325530049611682766570833026005179594427196907725239952981610426417766001782827201766147095493684307142262998519997842486321034538887776384226170684556842937145988534598957066508457949216444468923707717919489037180668544301573631360792313864695326050045927947218974943104407658756584604327938331520091282891880099569489613206673885363314299726905014659785006865512892525362345474375691201023678953670098459037125024403972210538679454112063804909918108139701342899380742664444769039133954567834124366275629970479980601854272840413768585588507885388491772550146661495093265094255011493066240455097681403271428813956719582220268290896487045352217083124066378129745282906613943018819772677666521846772690364654478320034331640302982293150213691545988431294503316566923592749183548280269911694005054999298714030359274792445639846668729428852207521576395317862672863904801892873787217234728627479590171304196203209599161921850809265739168674925891848185495165118802170622135501497732557795528226096930602350980267096248829581359834827344643209625457563098531638598889982099170474319588193123858097078499060625663644891453344637090775113949995267267113348241121901720313845868086385783084396171286244725810620744217360393062955569617658746083174450701930755577885562565163224089290962080030585820537266301238362133262087106044717087460437964617843170186992604764427447070289496075501079283729339058161506401087881354225480308756927185381471899066823274095133138429813235700003168364643830580965586584723427605913270827093106239548994237934076149351702733253874312529675518270772406499216760191124013699673058053917269854025280619444416396034818153049152631860020434489368695262539383527101761801354680146912265403969781967103247673100552712404511458463990746409824267383873122290342952410784212915435498924770836076684487944537583772027913192033651807921506210307348851083754362637849740413677008592997497550201464932759982700382931606760337906553297749069949193428828978574823051981380678973087315845970932913848820087482494476988307107075854298248120802333582460473217395180396132428240053485299986542611710371814303884613656460063768856655691159269279572026041932197402432668051687234842828468425816395757524759673953960833573868388045005669637379891195583063632421527166090801563011508906844562943185409465858908132677509670990070304970284919089256748266878916199670229398696651571985393269569678350220195392551760848188435366077391595371105003991226901496485112025359589002491574931052999578183220354706840709318392652516837653034266531714934879013858773867369030912893042814581470439988393702912896466520601051533604113575909609190488388819590344757749153046198714555762659122274568696647782578719327061801834688663015627799348187509483163804393727708081821630321628635443582017787584420705166365834061621248837919132865082445625193495393200959866345808871722947078245486295415346600324099467787752453223962253441798544874100826470412848600473910638363053783615668701434352261873796477500540550386378780697730881504253344425475659473556912046000441464178343006143093265749542140167998601349101127312212704361777427873256729465308122843680531773843274389488202669266574881834370163177145716006337361165175691153279249521971657307368644411473760035399468154382974173325611025071891602875958804465607056858082286485341378381201604379068698915351043667829259467326829477148532421663466997991558086739313746225096047862972222144476380510873531413191338553691994228592881421684486004015870636383601580797219434829503981315376496047052680155645080378503393583865122347125980271774096019845707518089895337294978521726291369764156437740407448022478588363954321750950970922210162866112478761364807457951448913861406610892979678663644113658221379204643034529329413927059397802744583902508545781421123742400336063794290871839824174857991906048476854814053456979505405828475673914545625889534037844892002671536526998266791956237405465467470718559336762400538954007603567590184103423164837604956754950139663776091792409835766925029151285431450482480216803384968753081874464068312542707955418027824602838764260191238359630041345949068135644494567185725443961750872254993915745650611113297897795994073632998144041107992647090795305394233774511356096244879069223163272481771351602951554349022737314017507546111473211679703775593019124976463694983661871209962988464356318449360584856171790837697207173883565632793790240169899894606740231206351079982348057896278042108444921877091198533758121524961602015725410906583096371980985230672803088387485041081263950707342588834493738810035007954909899498552563338562378162346235538147286106467580233094782099965248335935625603221697006977804038936782033900630935446479557879072933439522776014645877609248870353662660217101882183724163859848062096574448202525778374127799985613416304059251092168179923486600223277643555037878807121755612204939672389379024148629550204330598113542030501048204058982419708612761705513036660648143831902325458740986787257827216926111495997221485807246207803383693375121906267014512914571763445148881811318573477409088310586869711856088524358849978512865832949872470928153695767314671110694940767044909985169191247983377917498049997409395362512092679959576803421070404536394167990421381768577167234762237146243452973415321518664567665690853770401008097663730362922023126238903084477501148212187800622838541323865037234882739278112864921498084549543769948931784077179452431619358374366665623587799975684896148624227953044658190245228227231337580270397970536084920311996033250351549076331956359487400444613204645747783634106440393327318282131639385056467892971217988070065728216271695397491502051232184242684738708002862176899103352658364634007267099725921150719208481833695964609623097951868571087726119231872869771410984570306206842437739948324482001772959937945866445635618933425519284646767495126634462215230554472684737269593509612428842697009962227136293573549854391634423012715554850453628720707066493983967377171688924782903144641115066766790117341522774125285123256404244566138166285663320063612413831166485626068416838777358655745600425160346577508255491968000428467799906725388260579994154159110217289891537954797897614371601828944552666800453986597187661553479719212543185785588897493026869855314260428559986192648021779614497372610599517531952483196362608738745221928185499526526296832359839570766292617766581567736654027683232390435878209342966987047183492774800810900538510494006746524615168931320335951133236412791373636334723862623963092779684003176593935007804998740747911849726225145838617869365539752334897444989305532341488365338574947888063496248578530263771676205012980298201127912013299659008453441992570694978929714094433142380678297840755168272527021988267911780953150884742831411301677559953978202829735066162071818057735618736619054921185858337479469098496730895290403794463541950520417899152691283261108201497297595266021396954592889164395239905428287420762303199656634216941949705967684582437790084488988846852948048739473513846837230735414096931687937642393833293816763646686198537135982007307281255699682792258549921480194129048519103672764008808526587169760132353492164897839607796396104208533035739519944976849992822273722861874922410635414718473847730331890814678627146357584941513164555853558966885825921391016477591115315155894126281619396425742013114647389254511586089471519983775124854078360890127945188348724250893744642113467639853050776578833309143099483790932493278904267987179847906343463243349358358407228471449428672909291284482835414300708615522888795215617058430475309901970679895704389390445709236484436507730285156480771500306052039540768559335645429496932900450372344798083020458309764111869086898415695935606130187136959418242005261305675470633166844526329955940735920409973801791461136859193944215861077419405744782990457220880473155084730769099934583558076691471045545875496725067266060497415874801036242405074411596089944376468250756262357914727583725202106776768844651356318254507957440631554148624488132090621460437784040654086845643831181770782862073754235895430610912109350845339098015409001254709911829395566875959986597425117005379961601015722888303478693473224723560074011674911554811004830258712134548379968212593694652464220663291369851632396944989426892732816574078706358419332853177131605287256173108546423042279760669795210988932332287039931794096830125620994432738937857211629407052596658613165126951994785351689483123065142375726719613615881507669495149404166783577580262251175851276285328742738991408332518889644737011381142811935517692265725837854553403014004934328146032468450348642153480174224932100306472727685855135047805092860209259224369856285521858206248778534391704522884170080624676057562337393005708104708278041356770195765094495175470720394757763323426252848453745357473134799928051231394765343688897465816765915812361550849931595461144143415307501385094531212638444786259452038645907214452762790490603512772225213885040023179078934797726505659025044643429921872328584927638106935935876153264071428873964448272812791895313567867335949294493238309820898543589076533268923142414029043175468394091917348178325120650869165847007413324299343645297544511974736663006380525359167975619090096776501811180214655556703479931115243612142264124811479910796655514880422185762582971045418556223490273200148680483661007444820166921033920406749684473700306812058884418076408245921530359661432356301212189562062324125668158047593794801885256569541217110036857173669838383824739974263656468976749067878165139110608431295215678862825613557852177368631032262037554073539325153064046179732385274521322158399355802964961178373314689849240637563612358248597545522227779048264245212392942927922812569123406808129754040710955496792274109915689393548456799665615159015235708592278374642580085121115060968074002463334859261023336375536762475982974817206193994901753125474805086874075893464358452318051784266240423855791357951645341658918426128690255432726055637991497424965447599932725337592926115525515366561884222989567978709601789347308221803987758968454690658258074696880317492899542506750702970292757605966034838036647403312428122357283145826498872184859940297501082397982901930982727593717011006483436400008509698392614097402193765464760617603720684504057458968173398580974412131106351579590668655054609006369735646765177491278620775065942573747492738673836709636894762714187240731103985490883669009926265828139321214714209829694419140840926591756387681879413701880501740014218900991584567685912501424525093150964871298795132604748040701916811005375933353688961334642612389658927803551346504762028390292733020507391298801018726203095555390141587014947815892834334783559958265057787650135323447568322764441127842775740455363986366353097729317319920610799389750879259905850355971870071010836024896700072174653863514829691500735976343602796894078938115359877735349401606675447183389136636980726552850659920987782277251245732698551380081026987334116435715382272106717603146419927763731080532693407214845320792085241510493632376848358850036887219074857414568042456263771408652873366792978140145723053362156854556371367865353879143400408858737411840439493829207566925046702385315132254421766618437752402830650986870152160026983799476754271064695439480126546865838139077305430686624093004746914198384305927865745168758253179239939651534174238695773668595433497329773576309182162831054349156285704910739309469981515052486030869415852503072202137077507911963185357656695319180819919565061730974749497816111045616190183487978055565325449266902360626736908221797933112801888000985736064663232626412796355848105707695912719750977001993064447344751989837823186144757220612858667348290886984145804129595782142265232606577662477281103373636480699808561914105063466794641288350546202659895943095387007443299136195681041910353907157375311152251904505286157385649702121457708533757278391986312885320768419770725757114498407659989131815409618778158124469966668128183958594520153540981163971889586070077764137942284929553330978715741079187107437859734716265214196054781453817583646443907951270309979157062602769121241044485806117762606887984725184123741808179970302558490919065275036062470160347970378173395116928492796243741290229503696479216740281910828376203432591285777325636123066305213816413425073814801215580740210614249564043946642316378034526587678879827725637902874670304369320382156833429698196506667123596166898845456160229133593395662913413692205562556541070903438171526697422945396880044689163281411773872316080265874274429062267306211670424936288760935741451499420591014430307008180882730278512817879686342456555810412813821036085031728169341198249658918176616193980135388729104901763426090226473551525621876175498419555777017989507749278937645055805767437513492557669858841922910675173784119434348391856668902124000217887363828373046012541630526511037194891698890919394998637546895681221576397777142182138870052521481855286480427349071156406669424051871911670813045007965805972111465494076080187066545801819702364300517099462024123909118546528585615028450586075865366824115902223262472861916206342401125112570489056055156986875155927683489932986616070326853503896780867252604523533120309762642364719408715898784983802691549722086207423133868412893021510146212561348802648872805079072204545682958670511282220710627708436961625407372151747017760920251256079025900897835694998046580487860154597993315404266835966791025919652271801671049525778497789504340317406790518671789060861683093440046320189648091643627214294000590491030560683983413846732592391543930547218618975224611870144914293886518028278031702343330939902722316962832636065820121162067660050613572813818091435630648213161655734113308834060935397188042326574696037608508284155451105991463698560455620357848226660749512624851653380074746568712487020403142293971020364731701216433789099231906286089143584943584502072919916737279046850666490468118544006212858995391342505163115011387732130983716102423620189501742547611869216944889086536462208906224382673253908787624146966269839554884856113826307462952647431444375468408502820053274256107274999573814319325323850845557958673656018136525254676366239807591534371156397177574913290674057503489140181780957826872220215885929179655909056956507581405358001559475772750013025381112116833385699129050451380420648557348512825886669865745064801341853448598416584805275865695522673013608631573482500109633151564312023100367860557389298090474192819570545171280683148258117381092600998129068721755556649444929558968967966498228569797421755054614628394092215416616874520055503888022075026695686934874961782322899392095963673659054191335777510682510630327612669937312663834457517765280312939128263159402930261578870760333513068531597394731919904433510132166128736853885069507298402740870027558875700073966058398888253269105034381880364959851687700822598469789352295447289299751616196236828100190351917943601675004327489490523795995994833034492631748031197694507251663061032433506127574151744961823952259952134596020594384071340305895719506355287596359681190127603485976291639167694169074278176689127347192616732455085743290958765468189929734951735460480441277128685196756233607500732640122099587061186644788505297017817060372132380503298655214395530010659855230863752769791364689470238821162976213760977502752950717407402009933311407403642735550170453361197855483468120821513597467340660394432016124030770793484204665712057768402562704618043154214248275212366933189882308492898585594515452589840924613033572942634295017801610482774925114793991599997868023822967139642652656443447397247862144784058159494331051375159987275697684031923558843597786188057712134401195335759257331810436524694208850278152928984087033826577149640043052354747482088092245019276762369349786939305925042291623229325714716224658415288890078845034443621734490020482779621705916503545677230286423286691183739243866886535474935834606909275568621910566762835087818477190116083219639438649340935970041758121344376225621814251448768510538393662966060755992763397112813183946511817407060971164444003664560547768522014808191643885248522470158754332450013887587372542952192913234985830748065631282208151239218918518601270663088387531082526843807773584319707238806938408899013620602775818844726200508580680052064897073916481538988526567420744805096154464810259613854055409708539130326294107524030994294386281256218443991499355828081067112738169432594144901992228628541126168608509108330338927444273468014305155117754224522617359677223621499862242672311916565096452424119182334993993386526125395230511243857369110659315068472761670641103077747381251361509024586567757623055669996579022625289578204747458570586348035481132825388328748536254371450772923108955196724370077045660374375349264901071337958255560615322906008656663752886518177736382381418772087116739397843150612840944036311727120082650229399493764079051028430892928277581008809204585279519673140805469496539970200511546266521911794653737564269953257876083512437211774094866435804520986950081316628685120712113338264584543090059036162129647397841701236375329836616108244247691994523494372934734736446581205445412132485373908026571071129472570749733455989721408109150449067193363734792982866193538189201739058948358347563298363533833403729299458825179052919101678242204585005031373089012914550669438454945413119208770301829107864049780462234604584330846575417976572885580350760305524464152218256008715670308589787395487273106498050510682722550647598063937200667952569015517775987181316547796092504401170201307515025997895115178865435101561457762470479789473306055641054716666108149677578465198938480614463068298680110454677787274594440338732015442728498895588087261699197778273597115775960883044804184057821092596815154638913110090087529990739854820930956325376355979380784424106687005183947131141190411002813170491745010090506093553022565439199645771248011936729617152618623037309515221001434051113617233246802802986924363460417684497906186761957743394164859480852521882462541871519049836717711796570551698145101019384845881436547478163825968518361152530596959352127061041165153759611950563801255557192491690132518240625858185638289777846476828658558358087293841204923085476519189794234872229540869700138728042953269471202544724889064470880507051342746159063128409979401323710424332512295746247997063745070425386506315772418072628020433903383581467758360587444471587994466051129639360003966909459217175610001793654235391991782972504889205767325459040042458118544139838514128250714791792996874476994544392258808209054723734807810497044058417900553651062435982493325852141067034429197188177111211078949712348430886869800663075437475194561174068110819339849569935769584857100932595371358937118328457124544635949235288500224555317046128812994045638291164681557141049627370326225457226646549203463818922945250658281947338544595461975388993595559132522982820557079964231463996782947785947089983318316024851351306614307443846249323122793225622580092930439207078289487382009484221374367937965004211080083691158676889426430586311038499292968518293606484084341212207095016183219866704662122042074690145987362525480120103032277347966196122076060250180093200729118598184949628303252229411904295285604315349299908674048764472595460304757311959022704726260525908107474374018822162252885097650807525310770537446862372847579142729334608555888897139124678150985108325529389874459816525779725584048712293544530740101477983163188160593559917064923076871036293974108049495792679410857674236575395954973823112981302107178443890460955249314867106164247870386791899456204587047536137643309176918155081468290549875993187791036818716253004574959552096818924086597702446287766936808078199675637935380592336465801041425775907575864677554769935766690576834497449986963067654696573917000620519741861227194650224279178254467879244316940711171395776175427122101341363150884064947589672504867254196320013006955064430457624291767432581942986754069566379851490363518167106818437740798126971698152511392240566875727494565211289659310902109017310755191809358366071255590202931495470953882620551847549117181277006307832284393958171900464376858472214741887075047077687247320499062459178901893095766938786129825203025009018829161661984802761224201596454301620641701008390905281744571795872746437434673659836869524802985734174850089506755064737668153259417711978983108802735825968989139151026617761521242663531234121345181393459175027098950314043314980585186644902423903378013324687192545658093345930725785959579869389276177092381213278288433093355722651327905343196575790710337699361172442418234705293069754726226430296206853514119259317553297343739601325945617464673491209808021971580658874581565566123613090126039191992843080431834144945561598424639442212508710789344396773955142054204639176831960573985694142728721574092041496880363747164700817164711871651816554961895280597680098763749852887651244769335198415631433928925313668740751349582947308181949034277626384405942782792352827336401424650967378199261455578084315040922232399108083816753221692728334677211099560425643215666193194057501689993602437543236552771489098847689001991311864182068819571542079266158107433503629930800676387584712173508421159308429163491520566888915068672565313278585461387340383460971285384267088676884415096979960472398098137327494607226811020643638817692129574774316342703607485672476766775379896401811025497795105012715912681266235974228577896504630976496259813129913211306733951540330129143640232990281467692292915656909401330958837885112460230933792615058815955010281587879971098367568810384306094355447088211828130358192247618807154365205354613491493314523596682542705869531644261232763340257645846604078555105467965458920466923970609359503806922643850262990139898270884666325918678549044052428311820400818148517669496884719383076618035035390487142524303512531763630905579513092436131070492099765192414923265315130270893665378029153917971899987296803050038871218903264322825387346874679060635197614381543202579460902759609561560011573914344802514052897944098583069303489125503486140622143128979839500729381457895223740632614782318318383873920836652970871409975772319833769599599820009169651175740508659274201661140722626607178394571022739062748959151177572607230759465588289895020609930936741045629338487942259880879854753640897017109837369336902141370428445077339404225954768600453411601442849603399726367203145134975560237849279866458858533012329645235345688943768508194021707172213045067643877701202247192777931685929104525022914100402223103154569447081484836619457252492352741947901989888761037449714781687952476059088306896416358172318052277026530362248900038113914329655962435578241350092046302285431610047637485789378170048294968414984880249205149766663408233257769430699916922337273627069234477364173257102404323371413111607854602538563970423086190605113707447394971041688276248201071262945225480541812395680467444316147830683113667492077960017902822149524668370702842370103757494062155338669344857669822135209707053659509549387445517641683342672872118048105570865448034697598296202328638002198387144953399550001460483953864472663372334820924430458143627081476653130069842326616821091885995286242486135476064773306569187542454454646518332056044847678133252128598297306554819920874692787217861810401577305162778446009559417543026313290026695197880622639450784921258331197023016251017033693800258234997839472798703192833945942585041301106419234182924312841546759360853743266341501076417701078026907845504987103458781277492686223004930817990648904564601821219957784177176794117780002575348752882602894920426940678465482328673110799229180191801065799405593892539774650890351978473607166100583895321366631912010358304312257722777638807714661461029979297468278783529301681098783757546278773229376878258043295035118832334568047900899122547450773253918531141202664325238658957613588412830322536785273526745854105028688756803584050625487978853405368071315290962945705398268695620694865907091204718675579201853029181354355875815701297496044585456751884546690663150020797450457076297007075971370160605110531112456967719781494341337152014484507304562646516430153655606424269610506657835182909330550401588454419120720564456568125501180015144911676618212798646038569385436024124461739809377616343721297056519525228676829794032996593662240449937776997117087137649372164871398487583123615211891220592521322444742020121309026214844133894321047683108033610530877485425085913210764541738478576347919033832682389370284249684530521476945341230268865959771057246139063559068321248354675609758217375499588894968118317246499813252090862428780192991104294621483471944196985910406269232405117772014072616779844841963399257737602078248812430346865088779281268569726005469536380416724553621001585590859373237102180037923366149164828023072264327840783115031444483345061953179851922255094039267398284295351430658693011121899790149403150426101778535534373227427717158955896683860937692409619411513407659623458184230571761666788503559444208271970221311005136965902920265082611076059571257064589591797838396847429075945935813565641748800884964840759175990796941060467256494602970509122724425920289357124406575153570115134772742687930566113665403422596231066692143040113719035485570564462879538012106774427344417691412155051425066426721337686988824528979758613551102471402653272472915091073840034866329801850106663446931717985600422042703443888980792581076516431958590308002267537341579780504999417119372163294235701750997860403850543791020819729270646474260197053272513400357317841161113990048572624538958393640637972271885269136530466831145845960334214704768025044279945655866111516839762225547378602849075555042655052047655827684561776989484515146983599524001036981559928792581427750705561859698356817916830588395516091366239396273726868091236361842510201896361768325659358681385089332790648741999880790835123522806946884576361739603612373466778312434811036484985408051914767002236424430900242133023312012119901746363668822881661491508406891427204134200281488116404999876120313028708645304249562280792859056354178797465296432234995000272838752748411576061147949468841421517711177062263121404448938637795268611329545076200758111963861190882414885301147516829703768848545633563718960662759054070762076475472755223320856308832310225180630904545326739740518183854208202012191359283584939139434235129231989436323084151228694984192096570635479625780468591246130749557108264874984686690626516736390438534870123343650900317989149867223919152520528475960421909106227920363859276435031872556632208447355055950938148116983900227349989911960819713008188059051654681384879243500345244759669955516359292458964986391869920181388606777999715905902879833829366338170558168618065564294012513946040216102498793084033076274416317549403378100512222305884371436770418210716944455460218411273898684554962695874703282234621904508410729710836244229480006507103819288046623174587836783973777364910849312165964354830145760406697612855709842676026107971662842592869765505543612165580867512466187451635806887284563384323287211594441440963436738645393641552098413613922105654946736772185406823498456709686454592556957685317925889821822297111118780291925035147340491431760088294233646316184900096465463844387848295407578460126625412010101622553778066772915984549822780785947645423017205119093135269438140385551485998457605513817163063908328014293673842722727616777978746563680320754732531748570609014304449900041947012821134982881728915811229355358801103390738656965925178652792902108493757553262664724582878196192964222988541494655101300084154691938026678199165170074894189521270061303663228039334075352311008733467146111040997160748138812728171448774065395602438363555308933140949387679188664669681724153623471788159001118591474043277638952449109284629827399117360146457030704528443405408309724877565631621594692804861399477729404498777234896235560644743520619810045635896308070963610222927506945351412207074798368818195069760725903391655849259172308555961736007193504146359625795812191581128771199845856114767022440853094230385514434318373585925301919640380844406494745684335894280100888026740840885921653731113204914257498445839511139253193053124165999673140867863519019718330378551494178636996005881398834613929830941772922880630731196680627804764161346086265039221102316955642364525960481411713115636168592622511839781286521010099901818118254887032923993720927101660884812357043838417501176138247333808017650140889330788189293894244591009677271111439575695307128497879135123479280288664599554883383529573166964120899017851497531557770834258486386353288220091496815354978535567554887342026820274701104878553613997740051419265827453799649062825344210012138158805976758042576089511453305059491565330500969676774912207406439962119401369882221694541710139909524302272298502098624804772411239369839128593063501205342765549004220528193525309048651464721824424564943365355544317484424376217054483551082437414343627104583354653576936404414328823290521690066583241886862912267000397532246512797552308401650161682375544493708327668350863022380414720158262409442847864385810444914695378708169287887895506544234668322809217665285359627542491866458329662119040054473990011786878979033013087206274802142046357210506287508757348870108996765134235284136998401542426997971755484226686000878870367626548562253975029566153774547601929338917330751487665194993531635104119800687572879756759327695842118599083938259454068130083067590809902281707852555837161461861945713218746352678342354434898670377158594592417691275942340445529872027203633739060340531359037325006465593388583472027381225292042442132209601411032314503247212993395165312870046158309260493501065774277705252583647120998048343349003053158011985685335197551186611327549291676983026606872112441522977129557492877649420145223146332415962404802605856776899434634936880019011246586143735867780013650458360873207765498099788796196451856282036793925396384939336864880627420363342950092290259535577270566171512209850186315680795327156490912630295921132357442008409812015458716980996089069509543391252731086057846666771438046298881353667092639071588886868404327603316328339005016554774779926451465503249342401703803967942272380670123671478769250138827213171756714299777806154521647776707715467508346650549777137324743405295498277251270562771056466985006125691447546964702790406748256269045740174262010762162457410004682624778436496729362573424316962634444453412953481787130681504112682101327724699465922248549878573996932558319111913121019619079167954353090346726000305158271090084038579464392908551844277801717772407174812766963510041668961408135619319242051862912002258751736438307371832718443408356001965211960831429509020639003979974920134658068274630518213409804469582350333598215045999964399510916336763482256640612833997807993094470285852703126097240155645116507314088540441864928617426835510362611617865284165420112691859236332829837191121700971058049064731657877004331922489551460624097263048166136978827092510791225330021539746153107799387590145339267029923129854691953843545184413855833014591387400082692317236362321021830473316807705370118236279360428049062974116585860969070058279209415539143795899418242480855735488343313296318077285487667859833348474542208034215955746284690592105584881652173007871276035269035331367372993926729726954942610770754189314494193913754118864132142136965200110015548610508923529432538373086065670883974764340624238467286737392432712321372161671322439301845210925303093832283396543978691153171423938929230877334373698192792926948365941044496401725443616394218751179551707356874185298383624491940131083369012821584347573158640330586833294139812645631484585519158842548992447796802054635578668633693311397712003794304554621484710936087429285412520437350720066091934412692201312141212340403368571339239161753759056983466865780345205171099746595371528043527234182367672253177622578494762206051216926888286705903707109658502005039610735762236869209353614032099672714552921181633260047668357879643008461912914765485551582825656370330736691835190365799980068891477480201479937718117127903010439383729257843068570852549640655376147476047891326365375569913053858685817048900238860039803624198949631867625144956848340573490444666666376789271064694441080009421191395121867764031750937771683119591392972015617631215923041719617353415470661570734501600881264817186472687543573697136799423751394690517427671847511345758975919337152868277651738670304033003203393347505822074063872083169763634384726468434867478446033509316348416664790150915399957639668054934308832284602179244381592814033730051459728587385251951228140728830111564673228310751401016648300021559315906475490594904212068174681796294915843202929700912668204352311021896169068217080779825675740000994982910866337665083578169502033980109257255327284176846997724547356748640179819935121231775327637508311816957423842675035632330066503627805390793265521231826984917777127211459878208058117227144810353878600862856244889810142067785482042541349591729324136912306341087036348226156953270004523025877683266317500890931227826984766377011954784499948032798457232198061136600236099285269704452075999280202078891516877028342482796881368019764316383343581829762799998059229305427514928916762193779796947085354493106750735430357834020295149438312897711839254157854351232500767913795735663178640564922482763637090514139634254864646527072948905838829709763887746472257963566366990805548152128221252089454519806385432710765225439387544437631191661282649357689421538191063952824244774018758389283281569008607384274232831710898911572850524536592367574190865667989390277053604963962371326771431066412507130459174881253095710835228931413873823016654517321432321022235398719152189329571995402510174911744940102188537730680329701068603194810514452055215183943121539954414396401425163984420154837425606982701798100331550380120167920882715944676399847586439792885019032700438802672726558331102973681640500661471207327933983373734540925736427237495823773489859220295985146733522758052578169816258531776876020040230782299731002193222260978499724114785964224275119303451779351841341670151517165392092526137694008272265798663654197712728363361433708281114967438471823820403572123368187009156855284332060759409527121584808800528272603844536605456059773956345887668924354967673654065655742027991770339548090713514940428060969385496965124766856006688489415589844958524037892509653371729293379463953701748085620965296243177265808621901466241228238286295350910003168104348725941774654549614041805027075914780086074852116373283208723276218756195962282154712057517237987195606327795801045203665584948231586598131472465691639934376813964349758015304505162702415903115469829944206020728031638965878769138209539676865689313540175005267900046133147433190491666914111801953811500164052177007676600840750890289206608131541815250324963915004654135495554508331435840131447494427131056169799340106469396131780269500479795751770548679612178355102564647803855354600069495927663636060013753117178115783428324298839624144230410917658172708516070606204783152676943121382205516440002095995953648983968583170011073737905706597817617028032930675635471111157168367889347582526257253953637959302972499148068205872083882658283378946253952743504127533158807976392864849108387972585060284466987389235386071211490460144828098777007847590709269168922289122716635608711614995927206065665369593660916619953472104274046627580382608235987404741431933996792275917820324602498183078871457880297342554040649399099246813306797216970038713981074350992245776030004084390683024772618791345132031632323047629372869281160528645527362711983974545974853669875426386841926401580727630027003374968394509139163509007739091246369376224031788187472918214662739814182070841442340475913206833945746160868522777694862451593286261237770079217253359001331806490601457361305161485970446529000400927399668945542926235208793760701841550256626418967563526566746477269995307521311959656159599455329047887845232619076271504545984820595290931920376158093473218393421076763572088628436347706175095112526488015307230793709602001699422220885277828395160455535253072656215976350346020902302040977227182891974914519933209204016893877042093760670042533583631850114665820240187060831969243780412362597072476082378979389376941488645824112994214357639548294889933230937635709247282527051805055729035211912817710354902021153599316838091438902504673196812447227636738445821620438210981471311913656505358851019435936704208254017998911792146042950778038613014752076574204439510419043350091266671680404941440869226915855949406178914175734983100692979025557951641301645536435477667615770280225451124269988533850438942367849339858782129300174341708671479734314923433719860591535973492204179710533239946796691222382127396543648767313561219977806577244450616252381474295849807584286214155853072551685112949451063038284005577636901285183313857485811662376087381846828750629591710134961159924252818562908896907097841268796326351041679555499550446313125051748532236396784756230783417543493608884260632967424791406583207608544950424509970798536234614982143225381877529889289891071085346059973368591535355952151628395270602027658106264040826180697824330884178952232019319655658592270821912497493752670266169552253925098455331398936534064531024148404594148183240134842017775086612874937262348934354027953031211413932574365734798114634649090055088105300229641604417555988858015414366866076724864413408303152672989763137534124927772415846632425437411250825309378095156433962462032335222859799674242804462971785500123350933747230102054904857217811960056409187890340973840158946127500665207204515063315649317147477732468300519788569841962107264858207876824470927345573633553674923199612266597200929051707206311124759815192110546306478007363645451743755761239056181272145613062563508285978255211502752779624589381701184936965235110571414143729826299232554071940145390886429412643099562494263484330199528575629728878272014934249513831119448213955602669240027974346118429688497114892800657495600165091028943185910462357508644044569859141401221035580857425417723685531621956567146905402302840133894535167007268355739600262642847704835476458628825679410894252036416002659131987141886183491007556725405523236833623195236011593156860615730525178775763180942238240051617241836657288366592319525999497593880496279165758690591727500551715557721877134932865076128845187472302083828519951880128377866780849291373433971132185743628206843576815992828454123391560359194457560328770471287588619589794401773807302879644488340263759740823054013341370143517729708938733141745565335520725881160059529217535002593659953980727894430492163460783086499668719712509164116847164487529381098984613179888246840292140894076692016044073888008345794713349181566850320246206672638627209847751886559206754760837999238009630573666498900200699526359583341892658312729791483740260792924878192610610888360303010412089228785542301173660210891049127548723584787095948931416147670490952844752419248803933619763686064788471739462114351111966833872994040111228618425391900168337195895225784379080873831685224447848963394680045812446100753106880062624269162162636071904483686612896673421984740157722152839062674207114382182434980394583494483992091448059343580537704039383607463921356375807329125044444125543417996073147319953888702702293241273652327321733568580206483640575477754606090451818728812279472420291378771037329412257867526892952516562379847372835456499525052334750451363069061413326496763833746652378559536460549410035004434652755059299244882413153779553097468650295232968297785493534896891711817830287229257725739244942951719717679846133875037688356026941237432000014565569210635986452087477955559416034430857559423025804336203296522419790610145404321702566539891366397679600842921906815094405022907947930454113003288953210934490697483699383476947901901065376397327724396232520726729196619462676646089242826672517727650774265512302424553832629047586041152274999358860879052408759971477061825274183512816206023232314772059469087575737909934031258983048771100749494805272494174942793256838764059434258175540395989510498506098214863165774075574925086683756291134452519035720214867986477485260766064824047327824316898841837695642749112452321576034825988949356094973243001478471934290942475894177319294700700230373228957428392526553809585698456141322747605810557956064511660709945484689653220713617029118840910436865289877231653162241007055485518380839290252042874948182746044093286217579348000780483712715198336995322777680039928489889674115824324564676592023602488958960554106751551443357231720075402453811321615863413594721647797910921059494364508630627942996377647359914341838384725477540086725086220815930807676001438320260667636975567283163312254537622964218316375287284640781227823881527972033490798622288287501973935345321958304909992413849824721267552020274273608439507482768991048250960777497625913564174317904882524634647999569844731649924203648237137006460219217827990967012196057417804704447982343461958265374225348495625192575422202530348303336839294227444507306192588847280554169863003010173249975533305179557106024377283402463834232540155838823122566828735463215205088080575444534602322040746958627823734143981444405220492776155021914585553350445059168261982533863672417995211063373236212481851135741710951305445937796314633973131575559804129742930792716044924268655596943358696898755546119326199643448198875229678306216021590511817986883377794613799791114952147263062301356572828882762331354626105281245768228736246912794501206695988591320015708633912760889080843313066892667881872466107877130416339451878612341243642379811770089798326000041103265234355742324058196679677970633869392838022255510679590292519074155811062197595289595952782522300607792994760557726675425852895533439377697742939598366821964353377785800858467634167148839793312891411795204564043513948194739223565092053593800490864236393836575276473294951379822333204227335711114084562233611281232496726092074298538765177489883308327926587060388081749039398608342965302714168100040321854804060842848801128811098317607770155206617531556412877346587355861494041113151238657644165789267460775185368530555407341380148849132336996632385121142862326831700356480770117799682144867106517037058628948438750686002897193746150887675801988371632128788961348644867097746403833820250258775867052586062313778313350475657276216014526334330819807150453006055352837655039329499632178775235848984744154763492888978940203139842955698151118993805678670916555028142333730677663246540765519860092763039633260662359754665563997780304593738721579800231637946727457453270853090091331170809825582523352239435973484145718011921778075182534701220413102849538609282820180249590255774705368548007900431720310899471433129811753930029321706596415593583204248476389744400942026811464106028424465103702421184690825124433914941179541237819825932978014290263383797020341571116871697075875722896510264990166501754425608926805195976984524780520040907330564260072015864585149883264191453961186045781358832951133603519736074445437063756180637604214554777535386820346862271446313573925837003276406609113242435370161077275043731016294661883704807847829672784554083313342448165964623540750209271658586633443174174534638435093323041191770840216591980815541792811875878181689830840326650383460857555841593887287814158111764482782412792749644178908012344236229852935129531736756055602862517219050148367033652782191304888711247897419064031589952743139667624521470092199552914276634078313124682269170285782270878521383021090905831065444574562202412076307382438794195230967277880241951857307766692767398450656780018991162518654787570429125461602116817353683340268792526516000282955826333489331177564746618179398367175384717405080527575611901164634718640793040802286076183630839741985597379695576601370665163764839701448480591315091201680988613604588887529411711439766325300828963305812780975539229194216472321312434557937484087714656701923423523697278299559784341369569636418676601274106165772885466473489499691674832441908442103870594689650217592873866874381554883356682175360970220134544808092083666572901029043422311835130641391581789983091432219414326048653675550687136743538560163213370157329736423824617588449523513640757591758101300388561620468868874192559411224102521351097775015281793085956479945689868488291464510187321535397259023470175458624526244885326485843241611708774712109577164989264098879257659020362577876129104103808638033471607421072194763957651936235779564533157253759901952455720654593729707047720064742399893767457510689011284840487874241333293531936754120173984314701382987293616973599856006027308158329804088534856392086460584560336487940763182407847275521954836310995358712861158463916488555471313022767790311977584695813396946540823970090463755791957727938282210252470442354473467349550287415458101092875857234135376072554035269737491107878555720184379513834846405788960904731456029455812719594703570677565562550540906061245228903121339110296414245758115293298454236509619543858967324289674434429356548021127643567109697864857272320534640405016462354707672858505650831415164825976488994825315742207684189250127792203800998288281735448792694776847064978277265532427269261686132583509160557660826298939185255668451903895646224062907622329511746996453216460519345327842250142637187083221965652152677497850723501027308772432896355970586174285034095522736927004428208640104005213095007381916351368171558302212519632115656863667788041166538680819006321782877139223881997447497579390802404366124671976187958978740489012014779919623427821524106251752638359565581849457642892492949994754434572446662257664911214950118081588777360000357391614112391669425573456685873091837360167783742411300549675693837504911086483531890748275546065993876837618422967246152748512202472093653814134579601166641010322209074575086288390878244770485639000891216378694364600112854980910129881331109628992290456446515380983682512132840195656122944720776169843587115043112890977501348155161496667151414290723167108699456014257998284623511407149711617761439947773094967643812734527227372840558724968399830506167071850312125024335894261816164245386707635602540570406383358428701403678404039334270944390918469424054582497651313481638767024823209640606234709086932293132260978027217231357406514363923857519678109818016866273198822772127289301416137067786287371727869096017281305037511728120508628406426025160263268216409834672100686406910101277542207791011338722487833864080453287835543000345048042407735551809524553043946050818145828611932747017225105041586298310757181028697167639081146326709814405628192410058224143594346000766075981158490249605084663485767285168072790083368485576646756932427997989557153765822096459325406073310003591193664926718417748017989420050764732711263654312138637643282646934709423988264169981642032421276996612170873922192243977515096977768261713868974743689480751024457300885247774559962132832265770004305823040582770039166267459486289728886047683800818429977028908677878105840728654217461223698701917315765648733060291714903696066578264291624133512453167753291962220411179047822800113499836125300115202886347376517450701090230016317990617742928114301836608312827946929514438689291227590935235652614411901291314042735840349705865406158568407257619661577391034992463552050582581368389207310936450774021450721304499410399560539096854692901562013499390328806343218645369222950262175874383953585035911255607223191305729517967813907063583521146716649430109958691931744863597984071296660275021341600522407690682673477076291538082223623374703041863854205472382048912115323096103976550791213492233433463615771439514966062028715783586676192494587866515461423006764820878869200529231444455316691050358399425983900930992418155699426161581284453480904991445662414969184840679604327124060484250064085186216329775268490117805187789269050649391417544480883957561414733579928361196356266965016333782557246644733197347548809663730554987477415490171350909722141183680757149400163433012421451334363598547590561971394210175671911116985290916229923556671147192115632102825132375751873134406068705445905290395437654695998199183620696667643879673506018101658350797622777997452131868300005263440060835053394681069569979671582795787417851057180455998281453822125253100847307892239766044607039265581316056143827568824897191047479409765871529694667557485024020034732778132788076378508698087293656412663281129979950303951630673344099093124856618578024563502903196802520670082947737217045972168944207774315214040134785465965953784824442829928696247044734725774011400260455026496386886605494804413264062301426476831722989879689092113193577705706979392078168117563734633578984808424325450074678103839726929960287736938996596319010525243025393726134650739026295770209590449820802333750712732493236897085821643744523237161012879048062069244461208737542549406919360733401314592735991618062003576803504202285078176398325385182198166717630032445667073872164213425244273070943055845039609507474644600189065899969445541249360312290430315070632058572478549848881488114032843648875033150946768523649603062604016378222720368367384932788996458756172452992037267957925750173777284227912599639436369323401232408146742671677397680323011837102645546763598450327303252366969327419959732062067768470231626734144308117147354137801286279920351786355102268517796858014208384547281373167442890357838989183930245217202993836508326158161648400320082261508612756138153629744308288534677066124933368921502454197359562591194313360893042560505361900669268319210463754150698998118881677722123789032216062676538990306589773244220956295091902867938994358747080237343849828386002649658738736423840899126375430746777832585818140846698108790091541700163207608365555058894566257491327673893503580666074618118276947777315274717115820738518864558737646422545575692103776737974141539703191910221335443249347520692996820225363069703795254077558868655790299609102094616892117304556936127865125726105947488100248100056566492651406059788596530909274910091610644722482236121866656690448416004890095479170112750810006556875103573316230130002354331345833493674109200651064055417229357334158551085815367120537236973948161200537289674046735794228728086430330359436453184257169615448470559322980266218536008955791219308506446630713677768915462307432390702543664290093785746885759682345267442450786128781708110987693175199063230085776454902979552260801646815775732603805264478643206267935058131448965772473812601411445681935947318677354176028822574285559370748482090134684121167929281041672075162831097728458233836421496432314899481669866723497650937975553812699274086303595098848643529907938775471511315332403717316113950319852018493417939808159960925669019471685203723334503877475236334200419443709536756841301823778996782254204845985325379315412121974603597497371582273094533120348342762884146294280840380443243501584241535572017301929440914774938814446187888669124872120125386254548386592957226328260598624111124082970705416709026782958711994547121777380709860237960690088666195572695842014848467276602143109025458160602398227521440196659495105530995056744085706800675216053629600581469145317963438877572501055938977183711841237697930671327173077986559596234346495996427216700154352628354415992820418416311728576901476492219835955384573908883934832416620007626870813732899269182310258368868312385259653613824947721117893609376830833266554454917603202042325211273735741888817584609892929090050528003975677443459642786675232349437757221905463762929813624067297419504134740818684316404062136544859530003037437355070852075363172970279697472866439082971769789751389745279121421234595389207018633120453717144398835038369623089137357301339226063288159845746663170810613265518290514544097541597665477508339857369684984785007962462825008221420379791339536388466517163871450713164343545962020944374585435079625182981945808631437774589526302615968482512839331669005042748966081340683258524112779266513661801751427103885565317189355741150771694793526445383898173759990202801512822531167809657451508938169332553390921898600020954328294756935296864114202920820750901745244241476676091045520479781756617721487346389128324954179379130670794292898844026486716986273132220557169714780927953998047111507882963669657919805891930924144938536009615324244424451889565342082958690879948383122980854710028561893296861221331144161686062387439986474450267445863362419666187362197886309052823555677489491010681910597564589800292254284699803235767430537305501023256791441066351073631652935885394316220538443292678477404803173436157507278884596594119034668135537780398981746853613831667158572183498699932024415473626758013056804366122602158342299673219610032892260873531076983964493253319972349651986392602779263101000515975216298681801992957688595255838678625483706524671804195565009872306095929219371059328754986309191683118283773595391535185369581956404482979523898751081282979218822375542781207117212252333752832869217116008300166859152618215834441446129845557401312168645152889140139155489387201059253669575815851966254398820603952641141951246771629911663026087956633556266097859277020363533879353864104926866498984583347471638305359573603173320271383435559140134413412240400318640810792893170872721587556384567541116593165579982711332908496211309940206332539269033785385680712083529578567185234520468094860693994428580843574896689044785867268028009460511791294578921206067906125782165844055685521658566058971147587852127597311664517210119032952274575727607918718766846555407628617132671622524661342173924106991583676109889555675682329206834926316701866690854119723823555088962032660716241534249533258344950761638210896423552805219950331073431865374067438360825463924351331798108525956372220133750009360244643530387447709171718315687270329511364777588683536248692623170648247871546272074754903737433287436353357581363658043575622914706905831947777203409140317947534764514484297607923272993713494347281642324540102984555533832226345205006874807970762332268272976351617807359212412699740780936403606784335158857435315268025091731670643582937521043537783859440837033222287588663900035916996290939658257458708154387205946379397832997210161122171469357356675666480417280045386323320325813338159545397194708783345909568152121742444320107481425616604911987940666659195108302358923169511306751786997912715832534362383731986720985936563966054492928920080105269415820703629436967226477654313417157271606835811008578125426424507652002845036593349813245922437455061662893740168576267460909561539527522058696126507168667947590609975632791723387900452321064688400600795157135467032395927168825197782410374311587343101840345349009448293020428726142134448466411215325130065057171921070067502415654571131768572869735739040108870865733907928720358239381588327062079147791580118833295795630286394811279394665802801194666311714836173245154160006302417170136320292086127733624770720735214520100553068254619402503859275299751098540773037257993678567057051484272613078460724998135770477468556507007128049050815432108281927795183515614222022100961779606762015965243569764700994634517545041976444733987239811926278114125239149083628517287356145241240379319610377058514322913908604931675139781306129196727933827858700853128480321423770197091547043758420969978801931912718491411834959635882633763422945527418652078937464891836086906807968154545679228006903995780534033735027983744959935487890428358227720956130441654652166639868962043185512802330579332478993468315232604101909212284638662389013636584759003500323468025176220597332998468521918406118282855039641758397433896184886773868067396140769044521296968195069119354683568909240476219243781928685737017964761977246933314831669479303914451227470540088197939474998151026553606763579626216118876622581318271254735231648390227878377762268486124177699892871196496021104574228285873024971265458898557514472690951757511996364151922565148124967846993666788121363673102717801008688876034341918315677846315054390063310514763183542416688128242777202759552093789640250773993250662004682158889411297642109251585404845009643703458812276428585330905740751283759518484162301155249124306956258723484204469185826922141011146651999118330888355151061118208138414282584231399577589180280511438814815067543845547766136566670099866434951077161496854020863619141113539493450781858488838775551293636429590437360310683911042584515970314441912152637289633307017832690513942452724807560488840247089905098510579707465027238652571870696185242206936182620474019668993862963703496506272322276284869912779876135213479293687652090749039883779724343515324621516234307027851795410035451569668433805122042602001515509549223074560565824766893677833150167623242694324920748304838575633252096513415908667062242821395020061647869105678547465112439645000506323273863626351452520416677575274985400801125036908211995254040163858683024045379387016351721824248029285693924598511225158838972005892220502924561387549789645873437575709616058268064867282952818341211842446958145868196866131524802757499989556075735788513565195830956083419049677505208390998898196998351851741703512718684432906307906844259158591932428513912103359749895004615274427333952594764495225896968664903464604820227337955807355034983063649237301082139894263137832363451626250942131006435298181462805508576314752290612309922041104801642345465472842532696086175894082942111260407021299677720390811226227454535573340160549275726622494895491660459355720586136845745315489384828282306341290754422212680314755033282095593840366246411880471176911415878753931024494139662276086723915785967326597773776761894336172039594879821846670545725883481582522925716653678839022433623603556269880094129095703531912732633829937421374746089914070396312523821136525637339036899220457589835487568932150530301584814521875363090891738635107116244653167005867332813696818474349077213634660634242199030740491895370622617274145228424317687077223146488791967705413291820333232112511740202993686078662416560884940652596820413605758736279525806886862131644660489815294977648008242178292479617445225121722252512739221954154373011710142236368095503078155776363460945164593676280214964903497423595227849544860224203787785362009956432589893433630301571140426746941049903678115312519016108469175511185105716313240159888368610547407988568589060777702266802136794492519345140730220779003575264319885579479065458758704679214602790290679697294774931247207033594776483072686999273716260900417410002476520595215376557857176205512847873330808330462472850634668404660614332533288219846119376988068879101938574916565392132526502058149348214370178579337037117895002795536707303463188392152981120345706720952411907901769583152804539615999828000978857939615088730923430014367117439051358455896775945517683271214347340511794792677948173418791053736360816687032344621708092226995131480241678312580149332871305217800533379324639303400797148686983850046438468703651902852795196905364736857147027333148484868914923883412262541373084618440968475515645174326038934359619476003767476517950878227496869036078854113978730067753960342147135504935026203532714861984885870603729718607953604841014381023078977072210620487872456241930440456963168534089809493386487162038645902805262735536309483808004199212075389335757661958751305909568621402614281057112668434286540322247058354024782222165538356643944566522417954097817460857170811427169082124736079631849172964530462944588621792660684627189375964138589202361135579291421266944332119980673585662786321826811632415728910688614963545281596720675962487423929422112425147588332696877219247250273181349564067977148067964929960704543923162985678009051146535414891285401090830078402903045621579096987666036575700279655625746644591261209549791328979938884771768428791338592981578799471344334633063674243678719042791682743576839960556565485377813602538755291378201106575731910613762329408755741985013599386151300172186399219773547060808102745813985341376535982459726524807407915706118856122756338021148941014987407190353371713165223649171977051717199903622731936631525673194515945877489144586849826294347882325346179407891738116518802098820307422192588734847888891704346151435704503212659747832721009937039806419078831221820114569193749066014879495279574577172684827370259586527377776187464146452104615013545172156888463217069284640688412152537710260390317533037793143299874877567204128763941011767335012708532749700487183849545744278797794217115851592671268777146960011888141755679298074137903711534658841482523791619298843764891732905529236391028499273202071638610279612520570799730429781440268144808915063454615198283642137635326356761601494347876081278692043368214806566126516575037137570054784665831447254804622878345721668804209641292843914232849174674732180391253316576205694415328132316936135696023858785520778763749877281120268474866782332861300473073011830238094181390301405323227387392941306534393553825808889575335307449614537539325390564262899290146323106551338619440819056752314430943235469313064069234075854636480387917160498392832243259222630453292151754129565136636384452240439812017126907874995008735734165764662766579503070866929011040175096849646539267819551414430914607390267391436931353754477549404036365825586828694588693250634860226931050802842498366323533772973215656814060674403491521863161677022190346892536796843284523025375923495200687712677159752098707226653269585751578045149100569961489268307838801971994951672931703861704681368008811640249893230367527661354327963539021967909724028034513868177178490436088404425293294680245246463363309148060493257876378149704014650521691196465992249340101144059896334729899932650854778732329989659318226916689188437258473696901918529631092018188734173291516859233307699784951039226597466389506022369168500382557247354555066635758517905364498860475337248988610220863882870426341907247629609410513337865015372579484840040099231986557784222445234600965121828855530697681370153820511304143772167888462131638169419734973247460526773273948966666414579293935857247240542537371846484965319462334329561593531499241192606343977979525900722298582605842927376804734685174363565195511865491653002010294854490082177925386209419821412982214995720071830655843267336854829884535636113737143706971100756068894951445467133979008602559371414725977453699673768513496035501040249561690191361660124347961483371056811561076610755773715683505439145623535575924658138688345643602726716364785343710787471555922622117137637798624352137802431985750956993887606861343189411461209523020689230135257816570669787625855609087923723398774645294101000384304164373394017007016844303808700418097281010839565883401063219425105268418374989563893137919420630465290472259627012940024763931260933978964335640992123938940282549604077043944910126192845763818411246944937889995711375619099906591379821189024179737847983587791568818900379919285343270449958872484764322132524784117843328443648341220926343993586614993639043206450610012054300130350300648685778387285038960903266664141398987683096986273332448752174927145969190179922693776829297680745328446285010729633769085939776889313745821325163915736503993297882245628816252957732608543129714114426101108602170604197584508416730050132618341777563496232867072871225786471309617000501390148328163055582361072031035094163469800289656626636143820828178781540379682411248594954335228945950316717880312184326001504311908531045115292392524643446966039969550276966209386251199241464600139261563392675817512909220608781944023062144516135786065661910009203220844020356470580460910512197259632336837067386503577192761534974619647659601289814270466049738113480706956327393643332532641412229570025670350877235503498596365588991399138037447305833163005218641517306397688141902623929638730356050866761523970128726940314303143528680023402311105311833586736144513747398788246765241418265100107640720950477423036068356697021993894760314064680580105190424762009727771815282284805286259584611601588201455952720390045149691111583650977277507959182798684214956317855355721125503792864059728952985699056949978977943228127132575467849860848245002705745136455168436178563749896680474522373292762787642743990780799708899523820562127149890220895502375804475014472561063429151974161981528170188050402367344440711424041903664969746656765618009268851128894088257857656368526516472471352750713812571203259079365338250802725555251563953657515380274479431975883441938830116486551060222066373255462235813727865232088776799333779267223769477620823803846331763644120284272575535969886802938073422362047928401341308023220484638404224314754707122907678776899896822055021756375152108173045058366058341839086238076064055371938404973481610854297893866394515080322359181762315868791518735814376974790095536939949999640576510025761968599407566497204851027121904016142920425345891554161641271158010415623195047580210068938652411731638046616018222676196869452252308803405993822880599190840071881665293649490916309990261207326317113509262733209812093966120264343369916009936937142236674353441645615500908781065711906621423684799648628526022098607041651533875155024232437780272363397517179342245220143345264302291261038019664907399913445605613432766729852058214725539334742129016666146197682978683310653429792815302442517924486889408478452039880818220396540173051328179060055015580658722597562610416361410172266037447345910192016013119568442056164916044872005600140448812675560379875152954119521953208713234249111907048507223415718510023812442123884617362308830214137539684771945469863490417508089428957020476164412682266913716043613465455001131583164055823983776660187742297217817563009841627452162611186253940453586157795816422781636816719537418051463734465293874098091630758156659446706643120935835147325032893923270268576360174877401016051185107719891485731531733898093768661688623274464033633807674619314722380365395080468091302075193372624757787034016738389404032658062160773272850198955042673845953970728631805876397719759054291535284166554407857111831178212842915709104044954984163719237284730875687142810897882604725757513607323174947370989896278370139555178834724744362901005866954187487953836556312281803502720779547749540864050289451324448320964719961392297321282665386163702013203851747572697047272067537955081362907702521486576430778564977482651873144454439405698549549191783388922490599313487306693477944592413106662883455607591301171812590908708344302572892338162074707390297948461899915089845737860020927662503712162955880707589573709604800983971194367838513437706937630165855090964041780545007148034126302887388638220024395384200146862641320947962485850562811187097201320566365313826539591294928101951120274948423644013076541356053390391577910476538529031681406813351417552174188777206311153304056896751227546729930920759341052364928310042025554186977099878757558262819970023084616531214915847832069343952952933195771689151444262401945239963370067145310143198196579491578049708199352363960055320232858407150639761369944409300278256928281252424148255459316537675704371315242195631494270071670315078342828590084805380900152328127200204562244993703019793187490261818285797668235551480396722446987494980259325712791845444917457905462831081238526071538406134538199809564031754421822676125912196501250006058920233408848285883391710185445383333452602762060265192036504319671324918808168900340428479011973108908987582366703204035026242831529805303154213818537659828379483801637437060544345391012776143264212562637389063098713593051820384267055190244883971199633558245876214665072794870939566233537505767136242988903109752295947559988947996099039205459004620274093294341638499126488495419020984754490203044549589804189834580128739410099825863575440975421341924166414687077252299399870200258761800790044812149094329508027514858735882900052000187239982800877660395626751140746831639499588117689056575451343555368099807903533951009942573433405866610401172609275348087317096898667022137947732212595008329931478646443940708837783984722985235022620250243850095905215248845845029448157034686865636223197133873782578991979884335556769681292899263042141908022759599294803961201865838693078180649327352928988223380934178857445281018983490680864242783190597497524102185458869533788794894211852767413208709455405158661551730624322044741094385621050190778204033135227989815936231026401176277288824819162717490617387099792168143404343842082506527020307429373461783505446161532896332235491237950656393057087091033854533968466712563241606771804712568702678617594441609565289423482610278443039240775863271336703842801673024014888776341160860840492900350449103606153525210222446164625192593926936457229287909651964620472599110205835477759885208290507886203013041199878871553079131739965286637954134937861611104466213799115354159793231812504671738207933890187047247195983413415828999449272616453664436800321114960680408019200483391211648782388960949455359591503545150072280330759803662430969092823248727426867969319351267730337933276901182128383815322316130750182838684136512484876430157603349740430526788918799958817799289507696665864754873320433538693177399329407445852328378989261186269880353853179877836732722781911099225682264657911657550961575812251508952228588251441483271681132925156958001184849224475405126124445699842290470871327916962490529182212614150778287411951194207476804067308718401206792980110096505021557636604271925023806240999351612997251484308542549740357167117847953669209276747378862777229671550760929693434732707421910187558535204353158772034681053391599312793417565132144996344571009137678035399498834447446592700515255124505675428527167477879544582942953835025970071620321015001024092646011064962270480384483188467009726768252963251119281544624238994493018266425842439181047600840628215466249911355127607021060173745867268853805025816582977242158634478939334851807782439041347336246109347253759016820952277002311434007783484543241745200106041827465781411627095597489716687816456516098669019505195113143804395736775154278070637897803435888558060820329600534445445031454324550218123299237051190210267260804283514163636849564873321358173322946076324227421822819625396887389682536361608815200506249314649874167924452302972219039004098885817794345772154119476419966666613635183042711512512879932836657834523398045581786149486577885427817800448885474925003455037701768841831104277172983155136435680277725932714353983940603282684350510669802383253866076850663073839133731165465535505716993788015313710485781591165304627733011209417461874979347706934868905557106574860951203939092214815879303518045646682156261392982905062345874822999245285762377769162541775805669802578797847525146968359108709698247620386598477620556541951218514391963515455970946248138333435401123723715746314026004471426216316311573800701361947099453204098869415192106648477538074412865339228656447383471129084022402490047339931462917897044860325176630879055365190357618314756990572651839095728544988284650247820712073877451502647114682027278706596805060950269019297308655947056484518677603015053002455270505872977388913142044960456743287216740478963743117780245779877151317002641616497096374672403909116172548043983203087261829663902853242258697065343923248677794878399369619970872295483952999858249728297550310984677232366001433993330542727774402980498362316183654747819979208447318812727530653504079716280508825512959686363017214171830959358978129135018792190134857019540968350150820801780830331227234418927938648516302460086943485767767090872420295145068727581831075143723995972008341217240517568748201786493701426907834177910990807736534915451820595755404818268094181000357423284390433937153561459433612116568226756043641137047872656670611207034839880223256619184336812572064602999884418422431770607541697934438184528274034423991319677050034861540586011658463025849006140880834972625068893099209555873277683724684060553185031847062753597146611613008051682624890292553524836388287829143917424001404256665968906234946967354712061110826896683164410754988047186417317956085240382253168012951706845298821946462521486066245953041056415520968423345998122565011447881673532989453982484366062338711229597765721566598764733652014215471661556130857774742001304764774717668252690861084338883309762597863940062949511201266484733513644841759392946918722975663300749184027403252696673650977680069210410763611210818409809845448585598975654853071339579589985411154851797848776937803506733555143400534659575546233801817268265144569625115214234640954537230703417684833266081052686002992742873275406351008128985823761864132429897554626709805811441308714723902542677656597257178672437069130527042396997139311675094879416538833198833034034189681776011296730012757967219599061662603606372604233374478475440761483270492095232940409150620810733919150188414201758800933344384796857511316651156977058284804419480550318356566289182970390776660316094513765174150385963264062432300111134608739898776657700938111368513665685511859932438774538438263406069082506056112850854886907127035466056014037206108046404889458858937979042114965680582535896447884877811015511184270141147207413412317748747726173369704884287426670899756973054758485591957919609686423232601676567271825741621756451962255677315264844892604113519707718304027495160191792646445743590958105180503679483173772106881583342089323524732242209490473571756974837912489862376225920493035365959684563417600642939105971892098544968177489654588504979205014817908462633578987071589757258575882968198402717787223964757031804373557736203253627798729243534766607862205977189529000138926398971325688380231219573040560509701505850059711569531305262418737231390541262889702666351072108169903539804847226804725120747706918757130269341883857159569874977100446750990029603753465209863319357335651125023628516918837251718121374183095261504906889720216987942211488940927845977959485517922670656773150380665751224044405892204500704681487849870087033314884433503859237199698364420101646805947234501058613547303039535132189643452684744863115770752473801222847037952709636612809160701438269144654345438698238236146674550330272543357131452373839288073372602811665603553920056018353350315334057021576318690042706768377150069351914256544550257108611933040454587331021459548361481467808715964707074796113005156324466473861813628588557211926772699148823163751888382384843237397627208140879774143281311939744614700580917295844233927642076442112941496790867804280100610826857807827271788975313746332148531859872257674444228863401168163791540584018532945340691396904209395098589849086206297510543076333329527129810105308691805296805686750291091623636960694037450139504598141245615655080382906645851286203467216780592312726417883573218315049688111314345990010706169965842404852164815904965539832252400753749173363556885413253760100569861914259158021094551654202049769902467392676422292890143024978200932734636642094952412716429162406895275360712569619020493818267946928028919904407655138775101931133773734180244134660401016549427873476045027738973603959650266839664585159249583827689889495635070385254586872097191982838376231398258793150597939872335960072065263245725486987203730646914046044666986337845048702018247620338991844883278967188500022467562172453221146293534061731692199346155120896836533461336780018459818489373298733620508251625247982336356341152768190242899851866690739245968860268794673694550308335933329258893644601477628305202368814357264581219535105210284527245065819189984205087895925227365175570654489877643126428771112671884293075843197972250624674229988652202350390919927160119190542869670432290048780466097607758971311953320097066639380089404827401374810685967444608626256513876994280404797475027524522928927825272057801756199482340203499829664850275344526847566417016253213321481648773062535952981547437445073362788543338042957639082322315704614271845272716686080401218422427056563251475241805391089918238335513131487845536546757581891282323982323000701004820209960457157496458093437901553140756749723062779987886509340165910349228704462687007988130648779437909910746094227988914853980064725468810814222923023063883443109078807658818514001636319518048932494368188101724227021997220318170045514450743975903035416834388623631349155131028719283427429642107889935036584835046808503465523224633711401220320550546224764116356823674945861092017700517939002280075907184396172736183529679807239602885191281106679465378407253378885368351392060418099271362441199214951054400140938935571726092065548725092487471707325461287785196333218764986907785842017964007084981875080344621137493931436105371462886506321822291117669048756069464875719449012797818573473293188264951003102061904606231754431515121538819031681168740131683650785562956748753935768904053730399342381353025232806267144208358557947188643893945307577133773758541703311217781923340044805017167331020373817133167752597514891358181585564914732531372444999811378240238955566421812251612789067499949911937816070341962634477104246051685922595333323787911240938578661339199240186054237763891807769833487318727183205162065953790043394587681671688820988351106918402979164023312994409301899278623770564150199988891225573819105253498680153616546780134813928983956747396762260207419260021327779711537178092811539987515772342320620463622211299745599571708700279593704721338143407115093776926000000826055085582399729631229662351150199988275805259324146864700599257104439933142599978417267897147449811131572476538600913394014137759290141474286030405523695499555582729769905016305919912822467522009287748430152520562671407891077107110460144219863386873380321991846118197273720715915436549604259376445895026597278441593287777932836215675232617194459737387852444236821069362861613710136264630049944361011312240066043623061630795511961718725004048587755522070417585398118940345694501001719078765850423912867755370902939606167366074553983288924531766238245113196685856524363372905583384830160987820923532327953291927416701608880405388026571268631938736554071026017685912621198201109233665955250764875805720882385770578630219530295921469558358460959682613032648702022686216752583511774930537814904037962498076829557572221066853802265891140321017843337195948666612648801004107431112033285731351300851648871303549202397100115389774104026830083472784983667990269956726306751410174598036642180570722670264685587533595372963254155320396735319659414909394007464877250076095720522411933661074231580769729014922708138689785469001958986179982472326139344390033448856995406279604291447483009894607914995697620339721067484904895125096269596463854504024510144082088781225735999993665867894583530984821081260636292223685288056255799533061123388640112529908832037478576048102291603276210497116516809226849750833021830935774265042817375191284422070595021639653774987781624741478214588993825491809822792057973851584360468244787525135092613778387688010533264816311907419661026311816506327074798879150962631726369329735537686764220554257498652316283020572633711762408563968176078384060166421611016514404783713519457386807096829780291214040834163646314956699809563195198091632464832416561162688407489408961827806711881607367034893506797382444215462511216720096189669826857593803641093631467670904424693795912047724440864966600947908620647571605949170774434617765548087832974717845949872774774903502192866740484172744394404746710345349433853302303688886268010004264866142200728433040544323270011884732225809924756327923244856493216043810368483193990694429824920460869705836845788809924196251582765520578775837811135979590600577841565250763309600260958875397976385366842369072324965724726431172381308445460904355983990187257874344443542377836066980141023417604084524919363376326051558261709291543685952833961596451021358817894874767565841094720336129491282369309476780128066847569124355513203154181058014246276204960290106458995107643383404310274532953242627821188977392415240461606215636595094836851076329082376690930402347934868021391829754401754363900228826587172446894644632858451008751367641029422096455782118710062769712776614852349145715731241266729980494503192370205607569335514432628655561703397049673178063517086065927710298164637401094198959216944145087017068026397074634154048409482553904931410795267050983414043947962343072723370499910253567986041953997981541328617138505225202644545539992852687888077914199251802123003306717924850099325691926770007838229292223479490028880324705908836910645716763449784956395765691560292741263782834602823996609736545732928554652687964689152511287084398351198205503632940020543138127040717037113332260118611603252276624670470103912626392835465719280833922716810296274295012073450314510474066173452135726930666295182809730783410723602680058986504783703793754002027867881907867032560809762915294226796775961940951533260997368320591970383619685992157961326114223969837966616060583010801234959400599042875800163825510283168843466728960482341946023574517866143202795961650834234948399212179912200228281872009864059197487885792734579141324288258509150537651233521062178635855143092633705184016705284186910785529384845272139785490556672603970195737409184924461458398284863560139620525853518759221450891906457288262355299104747399701747609603856402617313516873026225461727738103234864490970253894040641125535212140227497086647959430295604574650829398784643138042821829255294420969361184980312055568516365852944888688001526793320519541018804620144379808475915873097874108912240872747297143720645848922130079328692562678561547768701696944244233161905081299186535157796979932385610002002540912410916128142941323898479729215642210048920623642764371832438266353112396666105500169951349891881329723868445289086239199907728391956857658901583872133154897461527821679545420486163064953037158142333486414634333483222272577338941623326525367902074008879136124416764626502733703363276567094806140776056053097136473093724015546610554933563179808629298843053475044360335244486106736169956303608691762632547015883917380551280048374147890851096444393898562893931068489702241418142113253378691563383940131083307681987237463214657645969060378771187190094978981254849059399515594423802499429291710463591220208439141683146662172281727695499700689305976647880262508900710997534733428303956155446962644887905468928033759266664660397575460382726254796614058498422574856984091192643943280155293632597334639147614841955026144090595768703263397652460219102857815013367053291361661826987499206175839632129552401972620877358173645052396255206495904350463875815293465584484823898905379739470601178455651385973506925919862383603393467129995174432252816254001553384874365781619397276051452298102569813968331268367872065017976968700744255068745657931435150623403829196139790780971709658299056297182401131684912446682438036607350305302063588062648367267309653379383409604166592539189952442859877767417586296594874291936149810911600084664777160180698071652922626172589548824044305586677518935166457043425565283594844307951067894827229925730168819027987829423501101626029515863888595850087057435806742681230285038312399151677316006814986958400319025230610611748177408890206973851417581819495896798687949180073481936797001445691521427621797641862072640048269202323956643241994787138075371115881015504950354968913926844496255344562578424608961382297086533163360072822186135367922601196069530288016406802580591455660540101786295902241918184059387418347998922582729717911711882038035061496569626139305671401586287153092146102315398609702672468029153321618391600833181014924154978968677770214171618371890055588666676107173887325222071050065091271382460678150058412071982700706189075138525097600029208276012547976065740380634185094832660866116912355402587532611061279946756666712301426878721060284264120087576397882601037652493613367034125489120084524720811452042447893488264372073725668775159872897924605561414817474968423598541879203005793593699418399935017563612266924113282061903240008619902058620338486521009834633846800580098697598466490302035865824303983710587914822099226647695297321370874534539447778322094815172597810773858568483668148142832787610747590432420787366698033048646218710551655404666680782469831717552527773919657909598554156587142885798926435891781777106720315305525323660538893152985054250765859163648694363238062615893983823522729296225820612329603885271369919933219693608598768883244580348351634368892629692132893983605284963404673590729132574593923756310434752316082287277769462369945355133819909208630515219678379371882567460932975757798743790056698911284263787954157256426440911739462806296930168846990812409820841132209940269304385978712106813102605925114107619534237078106571825732933126115196956103494942503609508128170564009429846995885540466777119281611525073829050012562279806099379466968368993730710588922643509108700322196808100965684037364120401346991686178558289701103819382581669730848413533080574182926188024191516582460825362266562713150684264147509626091280283488620682597373984539773472430862926983882652190629079504556754623274653786088100444762652075580773581194502549484644601405053556742405651280414413653436949027070452612466062874330393294680017332360123216139920701638315879906498288693059934606599035118083486918967582574638190859213355050171291830459726049047580365308353772749868690080489477844705339043792982659973442316140043741748886177450844337826648156918196077890097163178658147984238219253402029135911611908871870329590891804840779932563358980879833191384577351273840341801041774564864760578508834383660769190007383141014798565446496304340351328451460142070297104958572402042305675287657152143812675908115471173351194112190024952099981916076789455390400423021170489275005454395489173131934937309992883936391969821668007172617301949100208305869913691801227582684008533604708967540244663100656954414670189721439770417470554692736167075852682460489857155686263510520499816242581487298541961465442482028599869103899887417181638911090707800764910237388120941576764231210133208220223297728210201369225199933194489396124000104292384450037164052763668555271307056238161119891443751733459978543740645989772210460698031348491415092006292922699472275738580754214110641320016925338144410460468978599046615950853091179957015496306370507745472435832698542198225859807044967230022718034999619954110706512062594358321131334837176557552856513957354384842300006152832090383095102652953338641479047986823202387629703909106818939520984602578195928584802886960019849971905698145413857655881519179532750554212290488458488102759204758536652411388793111558938398828503391859337623101962054824882024227934498912064885297771643014180262281007658169660697306594882857686333305665759112828206870416627859670399818039953334663630057701831408712436899720635949649662130604425787676951789165272736690241039161919127505537027525739338586274409683877416921483692065904331741280588595648109216521302971942993798574209858595594749565816767079640144672910728343086579099555631536897207247524678359155127048594350598800567519502111371016973928654794177877528642791034173989019543142132730122059646448103622975937969869945742422655169637615551386434938293590526422191806833120657340499220478757832474224039919240289464701680133782123215464774594063950659542557259985140088540843932993836260541961320213139520721476189321668850575054144291649994020865964194967918083934656657747402844157901872948291326263216468182435358744223762807165827922769600149265575622601601944933232403683758729601518645921787677871890995545361306550679244927836753684962767410278851799906608547396985185290582856301505958017377693272301668865530894326392511508861405723164793165998283711609939384926906646320763620582190477466400213232801170421419166521354793087725768041809865433479527811646330376474379579354158841883260267960242585010804267703977000727307912307239042982457811829622545325120316306089037792362460563513907488429769370303229556303353407534121643279823419203105975527033419407412283794177314263492372690205171322938470977172842459320917456706698221938004602545704430795534731662293851168852156861136158035332806461767875938238059550476808691819113186840884800150983211497476871513446074848776835410339868050266784190421098069977372860493811036887836724293983180941734398414784706642905448586956346518464566217818260016012741437749006408875845555483986973120532535337962062665796853227309817421188331251691072412653891526147835666746243265204569512725555458081570698616438497000456023186545983459951173588387774433778343306330879831253628368042069092993783967302505244551951187283295526795449273441608968326912638412182984108482750714783387308657321544496602724161260603072649338622830120744301808578323249881428880949190567013959676318510578363318205285859209927974961420968437840120513487497867069373000392942860161630557865151645776427229368530423717509548862771583912602868309796270448511670096171017504063939628830200919118094111469761374117049126116678755412294554877254395644312396317223684433702251137438321792914477911405424282280515397713913615893509786293669640418813592641410153031981843775054046234510105861708640532791347705658749655037269620974167683313415302823837631019870332397536951721126828398670242165529333914142777424159824805398271991013246541768791648067038337611731653772167280671064554173900816495853910096465944204222746173488845620956265357681637080462355303415584417307645355487382461334505662248012177557279563812246968126326346924367869004241408128971411875893332600848129815491761409198960566792390173856062366205516347269184016606237513652845762528721002167756504606596427033795416260064011962405601401323961954141415504376177711412439628898427798670551520848543448947260777245631019368675887779083877480221749953144624383270857140574255513756765387587095776060717189573349543962919947809306727266298968714272271873326424192364107397237750494240638177920273716842663313172275930257547531567797123092006231235093042000175699923742022642779507911194712396787176854314002215159219779262820992487004873401589207579750640911437300233382545949341897559367605102098669297796196067555245736210292371831411558539828001752935697803449792290438880187920830519689183431976162115938556488654248143550174708266555237862847920171709228360565167606781515513436193589550614428521742668781996301946963166612663768155195494284795868117033661203912957748791308265461044092058581552029623975397724847094458852120005712256677257262377134001645147995019623541047052207572035897891956909093703030192012776732702348470749718192406723512643570719723956261212281405045860224917481245246169819829546845846276281154924390069851618201684943944563618909980848454933509267561220952987215193758515920166371225411447046781075350332499011424420915322731432110095582082126786869221199678445793858086977913857448754150172011554383965818937456343123983103959410631858618542595793808389575048454105717079111840961227702501326059860131769261768087469724336609717536749853165981744166761310015788349609311592836694927990913856150044930918912455926998794995688993424815329501836107743624719694058763635298249078631143066080602612862692826466079019462038096248204016239029654967904409322938950565686360244658388864367396252623491064525043587115636756320266027290916318691013030878258147532755683068001370027095399324594870520814813885770884468934520769364828111573322519035558174689551316255981841338472710234162856647682281553391632942923852048637532196486929996346955186917196198435007516181447779244948176406397966253489645851391042388353147264636652836176753202916081314292564832061400810570937682141744335213297095300477777622235365437644056314318547734773154330112278605183199713216783095127508925872016858380352338340795389981760778830245093936473909592944393688541655375976320912697926413017048927985463301747960276442009182626366402487897888376212807793787557337965672713541649533559855342217466149383884182539796746061765590501103005530397851634798795245251921476671452113836118267535014096757746216459039091518153934770106413127817786166289776962330222863895227400805625004925826499942959955243784835581264183920850412808129169088722458401259059599206562117686104544900614079824738812883368452514684860989609931320226991279015818878313073696256489033370350053670178481692091701855477561836056031292732237295426026853388788326540295394377628634547113500539004337901388826348501921648897219838179575239050681244082742202599120153607552902254747903091928592830420990604031966888628183142676375844766653618631213697758479427340948678168821197267426961684149434347475203424876275665622821477710543902081740526764697914708843284802736013882948821882581410211412631344363639461222581112008654583600933961719018480402627024380965501791629417571828189431218576067457641092646745738354831597834823330337219553065102499036616299364070583939376965936086426953506136870183080911302567006362930712804314848470443944217403347925938796926649968603989390487799060207736715299187589448167443245648139865554532294435209486855102266726286823928457996274281106669123988563770005583800935134315625523899442671132420300171257489087523850576253838755383986865751599890295447497860752049109607189293076934471765948853747578751122358621909520222145287618893731530134909836443236002980753458029343424473814027508975217847640459706238334359420411517643601387346939926211029912112466494759689842518752784283229706593440842346883301246798419864105340565512616654192503686830295972945453054328836479898937757984077802028464398712415303917670174238368053925551064904371600982205484994139910379419608896441883566557013848577386303118900349996290223657911517948759347946867397317137218895981437696051086870704124004506325242370220474098556112391435986112106881617706174107835982997115000811871651419995327071395618851712945458172575130974350380381333384919682903449162518146764990237574465698528931024585072475940730720371032857191179985608297632857951685133653206634155830757856085493747951834394009404686452918063714966117344818318152000147473989705693788558518630906431336431439540031732067740080786885987666367956947588016003239642466424824986588558926703088112310113138241325545452999997112533157010515672173988548237488809056733763590812948114907467890703377421625754604172859119689307822548587758587230917942901417657331916937234477190666675770478095810766631002831081409573938052567043082194374778308715783097546622167300094203331975601252283884092304667319406460661138639641706162127327465508079335808896422555513361477393131279235925189984554027686314872781062995912269214533004034800126858530280672976220059801046656812287938710819940261177423832671838680335841851061065283073801159202457290822950025993064267161269468245946873179794933550247998425750909607458099254980664207481080702659418130564374479658444868862585998100694983799779585770470801291220714490137119548353856120679199737183687103640779272139236838173281205430161421750024158419248237561393795549639966068457851464836621902187525916213979797376306920169042067957733337613772284366961858896570850556384649746279610962811484163978635387074654563674933265823805132989641272657757617089587943964613433266613735688662302878817357990298895296225474735869601940373086752279479234293222655533392234466911932997373935994733588702458266924211557937535252463756369238344107605856868973337586805643904461490646614213523558465324137034329638528677510232531274567268138834019340699574068293383922416795948744930667969464809244901903887938768402541984941344625336989373698920060476490693303424989415159945965511366398502456155666533303361892734886189622402206817718062177894245127733054022478005480425178258481673637981626726668002626009243084348420532278024444645056089354375076313938618121984882340790797501867353975413290442451358416456439118139048709810573591402270586802637399144485223170834031663269066418044033192539723517920401637464730650014914712067610876932685183850262495597790887634071060187121006845747014675837480731823561240318753828637059512570232908043809543610338874529552954423830716442103046601493863004259903989356435360454413668287311212853735002339930531125759314999652862788407570824383175519621280992460297633211637360296074449218808088310843765875530373921599077626944609499197237011041578782789606237815497848352505921578473357219545155563333593654122666243142778250462222079919446451738787521094214932977629817488996468913541161082407407473618337980554451859321856287942489133835089711191593563342719774560268090635239039870430660756951288122997882574317167069228575546950308297569564587593850578702746306130585202870666008268845370499460743724252966309627326144364627000065013971276466931250749367446521489319074643343404390036333517857954726845817060257143515802805961813358761088643516898579423256716428199765228345792917308649632191477433481106225021636741906914260863037228582214677515847624204163740097936220333303075993982306792833582101046808386895726128019155943157696881322152417219519611000108294906211547969385528284602166894929990357910150481138561644633063476634167060127040405143011803231001389013778200964218581466076702209516559830133467578371154753851497256817381582867945052989162338922563627316397056039591540451283772674190903797201056833073093614911499384811170958597179275561167811352296353265119569347334910652306217939258763416193376647202701876837953578274411012072227428423851942971590380319465167498399236338043549119799762688795647638892419037545007119255752673702482673933359795748988415817272528203294445314907813669862321006584166385637266312785864069264195342301339884610011621297868032411938697685885499722998009754393618241187564016140237280747291661792945462108001928150909086818422115708220837461614689640350940126096997275921528555753240940351718557192875732323345271164605713019520772627762231207534316466185610108598807518008250168910827167323787683454097350019120487129338809633666895913508939467459076723922387569070470316381044653857868962138470412261473263368388364594059547702388239030645411987623513088186387352608884817552644036598226518022375752346277766191162042466619447168061686706564179004691869092980816742095434277984304342279820772405860949891071742164530590613469316931942100657306674808758257844999957380009971702817607450349361124164057436924167743805132636445947705146812814460415301460579945573454481648087571424074876037256694195986040420152056135358967983829046450496833578657015767490621992114006404647748116883484202358056679638440881557954166852938486959437798676411946746838658554368544053257129656977618742446639494604687555936991925330466136076795209545307841573976978473324357484659599089320765845491227128913862277176662533145289346604148122514029964902462511820458547864464485595508970700215890331349705165685664797667100591013963650130153774717655345615640564948845733630567218036571241947109257457363686863260674848455022891789401539522373185345519599571282541753186504967205811578531860909684255486319651979156934482764448438956680657929397493960051013728518590182613971204792907118587977029316326811087986181620582065275806831258641059226559608882973604474261325135346593634630652397623020856137314923935066133834161151759773434557963758366876307821287467268445499978371280508825803804577512999601489600217139734920015424029907939988565661192079857559405960226504020721163760611047119488287996028440976648712628716952406573472051196234239953823783696026452282004205546419935716953523605187626289304621143833456486520269984812948463740706497999057264365764496069916905761696846169876281607934837809906453917895667925914425011469794509145610521425525652480868694348366785393845021941112529861685723368462596251777092738622562043068225452329889804001279565997629495188150119415976406937357346936237277682874093438255973238555876488413093165363478136372391750917745832743378164000499614945599522754105666950043020465543827904514717692177706153933838875406724889728208677813235752560805964185526758094768451522892159724379115526922199294420808581615807929146268966545208658141708251778118454685144491508681978428605850124833060633254008351811579487648331861708266574883097030737954240745910612151142445827799059506209946353574808931920573735208311821591965057186305558488098091148652017020621811267568894125345514145579138738309888066156590081499249508387707283936792904051752310990416450022193709532187736772198671604469450628727322704205671918851380332592245287584947723796830069817617079556980607495588524111135680633033246778296324441431855940222935185451516457465306610923769482412379788610565765007463163853514338372691099599885749983694735935355782890964203653427250954930406008976798961903134532174041372828348662705748010798433246232629838283223189420572209798896637217950323857302985679628789358104130688900858700268606815897631945473995103527379601447274938368368553951490820475434604207889790363201905790841973483125948165937351863795186721021815891945260784909111909677560630347906845116164644507822228373721364125673688860773216092290313399120116149437847763564625030441993445053658399113856804721469169769109726706597330204973724265495993058543829761866623095696217507763540283344508237531771818117849123136981640349382080731757716443064982968967378067433916999265471940533428751120722931265418520315399709392371398100483098767307418118783219222240952939035169667337648069962123563187143549006162261626458519646043879211268822044272023022401806241091175299285297425369261407006655081288682219900181711859171999659189512748730273711311141882565408683742859246859900269199039663162899778072434213459316693779048759957931237667267098140559161332918219464879184249925742272773064175662208259366611491984141917148001568795236912933315085167137575336070447837124328456511117979858401690095237640664967859401494274557422027537880928310455769037641396356497510842615883079341428014296455321471078609160619169684112656369294702981645773431459878840782977639793810077107147405901242140374320136995074822744870295470352888880726587725431493161244928225272714866787743908600175290499500404832467055506870880286349048846374560894421741226248281060627273342366543456652142885630483230856240145235178978228673338668718087772360802233764002628673883990402978207931302853804448083540002167497610615238259445624575731763368111616520489741415654865201734086683711822605158451900063955702354159775843746949490398698787016335041770046515124624786656749182239514572612555598951213168323336645896150051349932982087182266310696520625843454810279666096276674891672169438159717914856959355868903057806893968236065488344642526683229698000417193463291485702323386062668182345992104409672973146873258250950555808791237114081181454499200920317098115494749643508176438974062347531383353960691644295541057630547564722525974278929978964600552535812163001414711721809076628457015920592092424207678036530021546939191968035981607024323783038025427515395515327843463867347330406750550313640857040255719836140207974285259727622619259521739901777188621888281430270300076001896086460748941235469206353086718258824559911684853816103954149282688656460933346619726210915181647760184745916397292226726994346478906082640845080834160871347404753051459160335466958489277940536161406449152111466858304568422333279154021793654415026853728624181935732975422410375786635101949623228828099348994997070090291256099980169224183354502067486707014134446397814101058019911581638437608348127403068958828481095236513863459551172692875922204866462066057510315226478311950245418506607072408199035267924325250138716033420456903926367127200441603571280344587959175923406320480384490551728436203302775926546836115196484411599924381626447281591131058089332301793409002633839006037968848007448818167959721831187772373657479966652003506242629825587835468875891317774841418178890641628138907516853796693881934295915036243003857224893103256625484065381217849293605189843818186083072919885769139291303489214335290832622279582373059754475413465619971167184903898080907771429201462436783275723781038856183812776295324417057791257301376459838847544572946445830407348370059272311587288398647856129183641060871515174392179623349481546294855201339983722588797731205886828687465885951070567806753326779040014853574270803703161944580656514306019795341407603159322290391752211679306641157757275880851077528287144173120429509016783079952840077461372069411869662178820809759008030324796119508821836154406115946069025040039486268338890954130693061922971326420961726068671311072844217402081788718835136487036625584441794240389902438021594747951303222207614186780543079156571720953835037044912234085218573041819833535850136973311805010403493317802174198453864911292371729319157498381176016963477809393016764669673888874353080895171537696621570594219788772194240504382695888761257959853364579466237256175514911285280751578805467072086228991261227541117421101215469628103979690305924536882714785489407370325383091684218861134643550344990839197065826971369860216669877545538518143224992389005654864567333984166129551933791174046563457312718139738717569111071980324877437705919582099507931486962173439488902617983623009458602425352245863104268064817531334776197000244340337653507162895980616925019387228352082719471598054817286369267108931547897363975862083600796533801507086632416878419743016577634911948368933420716710925567948688048335430837355024353215189503827847865683136514656167836544338072923698327337842585831442928817209981301369350763350984689763862598692517834599196614051745364352360076401919418605269158610683964033959196466971362229761126774638427782179341931994788006366816247981478589469983457367442373065161344670875463485374410240256644391957640998920060378406069709032442590732388973169532794661993111028294078951320438914478149484943301123540290141880087217020564646665705360636926134865622140110577970376366944238352294889822729313138839198624134758054326543778360251791489687011665938297649505998631080181221334974789281948134685068720512434113761301205098031735614413787636419888077794984106512940548807539056889447921268455140432983897667754809697516051005447131890337213976752374473946296924144693071050628445003675608658290215850487249271104934277177292557124117190724883621217187340242391707390765036520817352006184447313003963194113356842189095127400428439739922254417990379078229000267898019342067293841667044508128223594988257749512458063997068563001903724653842510310727710514889965459668067494034462079749593129710613253935952181795427834750759841808829985864555569952084984584175103001251095809984810667319235532540493971220406450857114035505997307111438674270298901887140259202733055433436505962750472448557194937648172332873813887129892258827363068930913651561723716552460556109424718115600191669085424517622715655151692644884025264083540951987109012231847485188763539982518178333816760083127602435376793681984833628004176198802596950966731511500317091996419003060189505235048274657943894624446063837103711916574418095644262770010760883379871727271149465055093096924104233284781693494583230477073826586937829660818305566364968912625820529579651334399832923133709200673552449542985908322543070558690727374311957535024055798116623005928233175219954900619872179886651315265988975958633090396600370676828058230654960620019456921498367909486220366217415416427707151139144636581809856685352725841037518321014469477127426384213971361397508292191944545603341876886537486709106301311141598976202971644889825526887842494562398358347125962908851772324409070273153870609403156308514612815190715567088107888287594356077186631325435618431009169197671584466499611025709805638825728017141604666376233099318386287788488137869374571868799098266025397424466928877640500398116807830828293001471634878836030780402527251801946181928444367156132150945238181258662365631908094930102602337077285617942744426450606911376368532386829553039845845545606137624400344579343974261719680737862472656424558837366629603508831239338227172335598604786761991322130910683126639077255410085862338837750307605586497818363449788483677598308136780313466569420973588445709361629137717154039373621004173093866460528856734216672761982587218109567635642555566171704646657094298586978898565734710926870985370969566007969823378125548255896298844153012882855917935391643089394307061318290683570665554866925160698368593471061395051800792642822628238255747631127819305830011546801746835081054629236445406169901206693901787957119847072374730935156641158143557014275437958214430884867863159968126429306717761201558487579543691419768675311846440626348277791743700117725007141097438749375785968675641251862237946037245564462409484738726739682380889949623840517981631481158404902007619118906582580006784453337200226558733111037323030200569765609824898834524679751072854603387688981419542916939562298726327672551341493509965610816465996325824436320279867333213714716228703426407564901303477825743554726791046344137628504355622393972473012590786855580160242034537934145752594411740893876786445731559245475503986530089400671358647919672884563600262345725830825380562932531065561580570235665690472246350187534958572423299675531019938582946778006629599475298581991133777101377598553909762346084808128014265757618417534647919540320091173933196234126561938244457182465976764100366643682787923822885968193331399974927589277837919564379125589633147771761240587732521073494001526199965072944042265407243010612563549058226110117906005426811216171344519123041879384761607726528451115048803729230925872372403112767834896422954315624124939490794380914641170824765392724708920993170153195454961121894231149644716964364713101823583658193250382866830128945323845410967289426553235542505112748816245772726806825241885823570147325807882990167749426801604732815063583219598147146423697536811303753716007202807323999914349131272059151981691687410942361243309865724545185022984422399157649366137773097091755363178323211829159702001130929920683434517577459447136629498580661207358741282572024085513508948856575031133589243066550834191865218471794627633542860398082212584089270570996738239646201289361518896729449980803361356233216512869513929054613864487071938905039017897318688943051789202411353839169056546742258164813308536397633141670423422218870234759932172059469689978633548113478994990056334072339727028642433758361216650013274986107708075928768721157703134103416112563072255487202597620430207862784088793609599180392843295844610114119219393311972609741545872145245264509837813756544142623035356545524658166576078058755808633586755988839505894729346072768029254639095469906263201208711585131443351514774930488921735804801567938245783049831078084744479603071888973506440081550069805921303276879548695211622836870987165313442687152322951594811974861017090509557995909925117471878294270891463156327814884460654308306762369429986897698987066277276878511454894763902255378234090377700141747573449716506779308217986431846464604168949652473020473042973545620699831342313157636393990570853675448790468777282734414771948846088033227524321496782915148204262032473999252421184192978737856365225595681496189859577531600546037701557239801609578130254074633352778710003598569044866513629146724040150875776166745552196669861854704687683830662860322547576014010353542443438999521491683089380946310510676867298466327310646034325808971474891594275972603345691738791107168479097081279911498911519754523256521199458127637541507747935968326618804619070235961730768428644352547848181010172555701029900013401962743783068863527976459833705465568957473691567084362549767049715809236208289217310768602700666170916627733342529478852699388770286033163444026285882949157870701114581884893428949730412313055978010325267989655708526809937207705786906732993290273024288648042515704148700701981169200671464689367516436599211011243524405071419213009949005733231633716070865533087247129505245469360561517459602990304057372967706384547144859578706446398360273583575226648107924041352654690868810310872534075811919554077057870810098822683591005056790355440552971406194955942927419682758187916290047846203180376592032275702697379487850197634164288635436189971953685490351005709061552732066763782430724803343477344165517890637063681433100550491425838487828209061920181124825257600779799742428543723260737964689642918577318606865671147697721565421507271799878004068304276827254150704317551430056373163127673890939989117966229760924498662512148043626396778828828471969330461932714366370384736726217328254861725652364192565601323810411756997949923015031669096324755664361618575942463191169071376276514380838279043244354731353798760319094835615449241460952793023710810621485345196755683022543020089254539548989513615147222903971955173636522688348105302236320896903501929149270058211321727033980179495020111393244061146792459096408988663422340132822840002882748417997022628910594458691856388362037601140341977449876674300589126242573419671443189586416074556333375879213907601998527210868346149425790232341487140534890264049761833877628907167736989601627111385034972593210349259641687582975040341371411461852746917784048343393928245737687335257068375307649126047215207619278362810006137644224524721336693967348024535033461299898916094213046123541277395118382199844829021198343504708880324676788765658192994378508940505016608722185235762619982152840530178848611276096040274732071070168770044457489253294846847260806691932180941503053155755021511305888732827681447653331022276760879003161655199682304014480585565554210163151228381955911981631318122447186581397084087883787198596802440415820329811426968165561955074263715054591445530628759075296589492783868769211419250127498182120532216111316450177055995432034978401012187388288527111837705083896527830327567140281774893697933240612539036378927532237398819475904689689690018680660089357519131407797047033445574973051609098777887324061151002499385178701257723957862497925864448450308469664828066400870734830574879671729125382001517379802166026820049528378727898422917837181196155514270226138611089579594132246697448628454929396991487097175846350430667206493998743951236664412268196021597316172095009922094187480131830138917593653102049779264009403695167728047712077631911312166788863240853213805146344415039206221835523621303185271953569655399625188652061069134270798338706782041020690852307946115627282074351054823309821899269477185477089912517592272648978204323784252162726011277197435510344719358777081172760486449221160157869110909266312992864841030708277068366132389789992219095252383765788802941803808001956196658821186704102870171549979236648091372165919178973765493893400579166672434802062816658215749868447608193848358265770254694529354533048747874822440542810132631528735820910973919748742297633019768559452640917703316428697309352362433221623644093088053671745134940622104721072055342109230699235405501232072303895985125648594908001267076222839000483167534123937360869355317220807883568095541943203834805483584081470883296701564336631497642907122380470819678402316760069624497618066623025774203937363674450043692494806658567314908258026175405951517817710573223537267549969818115227066579642659620540273393440715608178070035845991744054183381138107230746279905756361523188232446264044356377311488230226369722925661147899843214013195543404018955608237847891670065518784572435384839620158279793769717765488524254202447711972829237196291903882253771173779099964973414654129607082439663787635833030871867648236530374298960371573113243245207446755828937070094525826739924891778486581994573261988980379627922643138763445861627917935673997720760311376023479030185933545694537843031643072668699498395720868303933560698946621661797723405743689786437266918812639118639181858318365374730489476627440815889798871970602123142191033140933523265504870213055572138049977482476549984644136301561383390705198129872930169561637784454554750781457403271809970833987996611817539253650799311750617734377846685212121174005916693279194443580168886383077338454906152087982565209119553956288305587820922648914597794987248956169537176973720675446062383988283531912902472365039884772171540133390943567422356256412793460325891423571713215870663905367460082920392130202809833368531052240912948206775185497149293647496279873424602124313797962999110196066945715222661943502891840605476958796522624395125110156720737644567212936676621699091413352739223978805208883986330335128462455013131560519226273683890080774984996729567830869388905266153560030785888140097558623324628617563086774405518361163467311104319011589023999827369424584582496855805010666923910643106631771854031057336052216075691669549904973909086365284463818444281171224405005884105233114849650849011464714894460929199750632499202134581717934214148868227599952292884221530565967354065055790616700182063437997403491272431385303699326687777392018520935685245277036537075285099666827846279188995478373730567794796046187544509646720063932605640252127931498603549152685171930082381148710461036636819798276976473727171459518476674831812753694002243554340192954153571012149008047798465592048681934352332513075193175743959382414457197751808034436755206843387997864465308697645810449153457034759408199903860054643950833370348412195275998769433304400656113475984144811204559843675283029278544294193088873019830914639251241924566733945826992706586964652633689272446659745224665299165564136216813314069118739793303029935694444269470929364350283131676399733289808808523924085645637060025937507450219175064578004694685407866986530273686507712097404444543795725773550107604874754557373090364051973271628363753071763244687108818664801524204525816419438373122597060770047648693134575481731736159341435459254299501955995930330343198130897560550140029561764992143355901500985697177907566991206498165647042261527454542082678345660393645895785446595673153188870468341587420469632631606531050924799735868396838075178195633800076049428050207281432926621710474214278790231402461690711113827589260418654370069284086529460321743196619531302737007284801926661078988989375725116831942961667137846336042477670061869472291244344912031917401310872498562416711079352783800386294234415226253901541951182827064374964531072094895265703294278109245703478248812650563363071799468222022687301440482978092919493051567115458982841801049536119637001108798440944884661716587214573047716901230810759449568256345771720326433292135214371295574115777039756805555824288719582695270180742150683840725986745305481096454508413578599560710292959293094532112011675920379996087148941808918945747922933316880431980290641779638329909020216410331275156939688696820259444964342864664611960507358868906462718004105743312496385681660031667751194652461000810601083801093369120489816126244076765200673385835709295649481884615914793784386666350854752747554663301082887024929758475478227294334024707272834415243495371648724737698881770485253104756181392572322151003417903277205401650673239086481078751395036545995366526666116915929400674386362937668832645179472190196218813892885153733580101789336659936029895865273269885813481572027171384312846142122465990055049015491965401864110895897647997861226868926936528322812237371724338817710944034874780701743507856576268278617048847648067332082776931015681566578383089651305945256893611947931164672315878717346352984139852450990301934808136070313460051445625105655886165551307520966222467492152304895807515804232423197318103533579998560443547096438233126697104020285497357044035639457438274974151578500906646397960606182081024043185686764557547402946462446131457090491538336484027157706410648049791620286578187592336968992414647892979007799733284066421426559592181129835247272082071565518320346313489419209176530716458936388919848809150554336025175345138746457696096065768052033648470523076517372067293027191581078556120608354713247098508547050375677316547406692401037395472336647757032838829086900480407346798024308998033584139327683583347805543618812457131514244622739702896178366079868929072142077320742572106761813718396635584503778882001021583252169110148769679810458381141498025206824437651604165698358068592613645700601058103962600997023650327018836925979218217445872021436050692922007936441636635646048175177546639152319107147944228568712647591065150307552339403163599606005122722446770168372254592904950569051815599903856785047108930779621365545043226176521974838756256568651409115754782203422414087376720703817070758799019707022841309317519565938722004743030746076044061452480902123654644606260253282185232529753445853990904744449117099506515046924747723336378751956467398839865963264331931148794940451481998048644324274837227750726048836790175982363886795825014251808921534175517035734484670871341965490753327247521072869249150726321371570327773592930980230272452207186953441223055489288517000710768093218839496484550077575075229558873797606229516954065172174271472280677609764858577489049123798014933115308199159727789272658731057285383266699177510118410180981707810021222765671279434627467975612961700351176586558552081226151196789152097635210248933952945435542417209022870820745694787876060182473569582123813900695175571206804012050153952071475986256222410395412115778439552894516125960955116641019719631448671467706846117743488623534864744315468831925927493167253546543849553711720095171980094722270876420769747073564713904131986868319088632957597039651571262849058740625395020382998666186726056151408115246913958865314141739458219643014517583307207762502709176089354069681393603525850715679674668888158298661689824112523813287952183388228646145075710349305324099977327395734738584697547778006713040760739612257789427061511945989652776521108223680310245285148752977676595587186525975643958601129029313961202417090680937807423312725886687685069694774242043617891705882963511088709089424536051885057548145370415092758663943843905135587040732825692631736578680989304273766822719703832459720100790030345281393079294618845058936557428482397950894464579012613207080080503941004711531425532757931413669537537094384307636746630907726213441712353294348084425937924829685367431970443515713245706549631944777877850070023050387029695360213597705100083868210298588873409012793332944172624331738490122919297035040890321910913098183195995261138417632232595421147752042574350768911646731759707379684995996557522709014003472769914727287229427544437105152775018095021178172018805068373809970011678474309375871375914568137552558587327619262461614233760140390965207839339729632046195407521001829540205442126927405538498854237696501036358780553090318798988147610941505035484210495844945513466032952652654835540834446719887177242609038350985533152797410120713390305451167309311991848413324978946711977505150110561172406389993025520832696450762937767828070779287128694540827161358767469087277093866842049806870811473054113516552406011191389313237275007747398597320882241466834523744457339966162351845016153187408128667156378265312435470544759703680118064769655619698046128822052485953962204075833216659693602150473262448971569780822650120975519427652180369714810096646456003043756469982100213847065242594661871054595791405778528909218346951360191140594215530157194241694398440155266949603226293217309040240114499579513258941353731203190218993050877597029898769297242545349235565710721340869089934572113375046454333072331415020263025605195628524298011696888550829630121805813627942930877350580626778868143045514654606645344144997085056496841561721069447391730940043961107012699035385148567167961424530965809472648043689848265429788655027101694002852327197497892003792171763641757950858372384595443627984328784819889258040838039248923682519931101291139116619341896643895431436245828323106351497912232374219597570933591439649644008327741562970646572216368296285778023754421246901573131947804623228817678926623335093131496949686542243701144106334142687059302892760055786733038348903773748327283623180498134329788983221541132986862972251364937730480012068797316614918884739366290095039612688069152825949961113410890095954410212689826406882016475991022830656969866529069974614316906927721908254819333548532641680199968375093858377072089625724781301765653817236598896372894185652700599846143105877055366167919114767385589150137100097304877866373382227182648179449240408927662326768157412898566675429558626392720322295458472709443085796319978649105095145245403724946949094527667599127117668411947203645080715598939159087241767223127516061987583408589657229956953022586102528287737424068563105765723361626627305172167168467460547625268153900040077455827239947716537910164282126017538089523315002516677508195547300441366487913014403459008095703826337471310227970699805239540555301783815501643971540417682898547617644879819363967409698507144563692554695575752124925241466815488760240278243296354220864989371019196348994765500237443804047510990839915656983413627756252446415161720590759777324910096045240710486385469359564486826479204419918135038982919053122721058395394488012420515373690642680417765392892864871822401084266866795592017182140617082782576774030436114462621320278853332164554168779185629456333117565969136525001738079061874020166439816686901265225482636116169178941677321031199195357401704275993449470512514456194737687758984820310795105647044759090149949302918310436876929666768155806178302568466640317331482514687804935086573734101902287090343198256220520863847562084655608797399339379171238966373920890234028393200114686612189046864315998499269775531795887222371122393223070960825010927937605197592243895482402590686355048343768603019299200297516998993658255297558443950921683490694842998535842905560991928379152043692973672320131831178550817394032642585166405310191372620768060960049955348555118989196172259921167287178618599368613492490171559540405279126545121380112773455023366027265356805409410604819501964885074438801684336865920328823762184780357460310588803200535380257414543935031599144425306030263075334305238902258754440253789953945953165592412440843229255384719842680075274956972827244987389753313275425115920327406038479475960974089974775439201101439587017800893134403010275256538212681394405406702171174057004296092916544029327882077280476342295130623392903481532540183545127617439943879552886609066702511421370146519971347486793519253422400729012905502923998207713617039747093533895728371715806641301090173988783421118711252693057880890601804335558535883839279520430668261428605009176447989188183518405882366505463502599276973486670066517594008421372045161630609008334263676866713944018363693182538159683814106417271428943481298340141150985123371426452376877376047278166893593954027693252074221844705627572454042817338851134085699227344501637918130299926713878089035063724392888329127553690466605250005580795908233066463295048560361662402794612331777410352789888233118031614494791580153969262764287838612736569560659773607112402614562676051710765281065423480378660907256476533077802676675845602644998378056052182441085835418743826458932644471262763490722927200384737395964026753585739277711316176396297819241189350258522414088519103262099563773636819709241863383011956581222233827036846990817276504478575064656181107064672168598805388590282644973135328970862886164105829897113899703061663982991777423882166402223849350018698024657262616641513185917777177252670153826633273369304801628796887991601534235224473154727018682985729047547325240076161825790241441803997140206554204465202585787200537098897894551092795318641588913968757117911469160104769487733010016111453923742262171134042955180392144255085363079530025645792792565088062044269441439971443892260827256768543119407779905777798636243462804219960632443405623121672775189939843154209897840602314741582583995028795726123467512901993819497308818960294578170778207358319503905934706778051393780169972514937236853281690813070408996002737776887021341560170323225117449469992079114824490954338263148305310222268644837650785596792663688917272801679435444395876852177056413328751883047946674315114122827103885228263944004305136650111070712086933733395556882428129912855110323924004839887190245381637947421851872913346548447292552082421650784721639569035345485269618231134257823615038852758987070729823731069075986362010313692779152538968639695146102286312550960767385637481398881879366047977441703644346516215586171824231289360520160796688205608967922667814486223326055522949171396056226127950140080769220184865407329108384404702455751363210351501567055253860310520935923484640033202752596263838686327278909949110154105822377755035841144545729031303771850036445500996684823297118572929513005862951055490712565707648743508424131906811966613672439316807692135880740685950193233830941728304363937847315385241296292649510266145873462874905077837799996190612863916950071465374036106542752364916668724286820975924069100835881732719399611449129368606592275301286970579181958128974409336912852911417225721326117383746328139099186000688479334570796736791641436571073795306763565997338441670175071109450344332383881335254052587060764376040899659502048116617714475771191059924628831814697835912583671732258210794654798090461731858931562515379889802367131304284470358252610514263367918418296544888023994381787833219428329845434895668257302412748339121379987842244626983538164752488095207743612409644592367465950423651202480001331236160830357038140941518482161427732293389253794124875966845917634812518810985981147999486234105789753475130405639408204993553564723911805515374996295245827129564186171648724923388847670797589768697620335317595450464109616038948870555230367025798386398525374046960250154514782355476346296280455757073399477102829349019070446339829111228355354663208210408391501507872435296210941815569290403262356421403471403806739734854699672820367194308216358800760134726669563930911703938646889072393917813539218797635840387973702793565096476687262867448512159949371422187319454450563599268443221478922038748237898999727291156000244505057477900000546530047311517774379040168298420025811395001405741826219936769602425026744347368199631084072716406838324961966680913029849243921919011981622213782806653557999801244493202364085470158739455893060661951285698270538532024910569464862149920769376869104477064091824478557681725036575974897367324937413289063291131075933094184699636088777588828356111824406307984809612740771833731226006430209677100599994344648876232407750495775781894776181548714000708777736070823259207777040274286728484851108563943900650490330029482202340075390121946533132631723362937747945613337509850142770996454183440553988059433923764512146282058576919108596291416341247841876493438408469087926642279020908047493248313715296945988417768468512413482553017239550622573922098546868812706546839988992244410842425000962523023140360298545953354624627389336233754030109325096895650012612661897969613608389378371847898543761747314575499519848247924093580943125655637563989591758123810412670310867961020652230104184563874500113331672966323897311451511549922306868285062464205577594686823026235250242332358330875588706924575947976513172641176052152607609000684509443488094281697180433645456261118019462131198851163807822418358654952432911232723204460920497223310710717175163552378923251028516328672289767266783804805311277343125717646039983695506800797052707498731452674238143367633832010645263320063355281962658056831266914644342582445793504196760514006763215502897605850721171285643755561412554321573684051560785369258070069634440215868773973282212175931748123431377904431405345068310347563643454923778505898836056387483943783139710595769718377978689312798275146441846336570852183869487189171600637520271850326836283768651458248100077736656625458768830359230405478657560635147099735921346367354465836873851469317825473090377405089318741037219519407173912895220912479490819089443687403588503979267821743788957911413926459951632114532218145397764585451312468875308211128847238079881405739201037041483528102876311366809462347030556714262938081584073385572814623028260126409712385314931399727358809072114757133578208408534065069415160244303759192343587039322636119544296783516500772812824610383835804649716446171964256726103627406533340555386091349514667726534759371406491479227198248572306877749818779792835425040262947416443925390397944971881209357908656661327524407634271761635872599674035754123423187567423963363206193955430315643744143507492393225454945493222007515214126348961172359197051896538694864235557791697107547132141787213371946887018815525724695938966556000082293565453791426315617185354958733020214681210093165496631306452103703296263272840107324947259726954909615286677966088928609776560461611341518105789426073533681828812977693377001145084970940133337664552627268185763584089417238812467795333560921741429447899686321813470795815830913443877147721814741784541253198660661110033301824614197266720098066848408209099079585661488318749139709761495698839524352453378658131151162000143540979763174573606286805398434454355381093952317418468518462537520280394758913986285827688083321993143177446718794739099352733633554877414268053463420297840764908204936352846960093209489004382577991551296072893743379316806846268482222780512047223181954369266852366353423359214163781647454145787752530647542336296218439818392586832601698988843741578412622447033797441308454471928480688095108801575051863432343653457788816077845966318708679817525262545423888318661063155845344860242165335432205293647938413597188423265666534804213988700220918292980955740510558378017109469522364748354127806600368258178677869043839322267346795477503214017594346982682054921228191706288424292531481697015668609759461073699356594675901602003282483584701463613172514485527406412265972630533829235740585230659255425728218808812456828963921521283520548195294407059486476712665538907546279430899070361321934515028082140296300990133108509718682332979506674438430966302934123018368377554846399036127100223301926453021698835014585540679117077255209649322955348975860011076566085871651083235978441354077947271876153559908335963940053384713381557838591458909352057203302133537186561079732967785452694074755744030125465035596222331959430088627680267940950075028762043613146583285305154973515471916096559658501921680647929130108175281447197041213136125177052423311104374032380981231512536290115983471893990943072738307489377328233461130639398515105309112991160376479367487800036395958715566388432747832169478290798130684165790718014225204863528729924041421145662735471997699408047228636884248628485880490819659814107353372748464103882226552331055228993434524362967262012151654320572933652102654047885360731556755512862311807636195294818932511906485991015786644466177043945700361841047924082095868436792001306068720663687275948737952169045613994825841133929809272971939604124713150671831554030409153091349034838950174598749305220883070882921259321354639293331561504764450792265706478634683352585631516039342007464014484707417551984389559091060086771826459606894413333507679136938534152850785589693597124956781130578070347087496894035058205992419398540819126290338205339192779117926867944627950907499418047446363956620494163714997557563738434418348414950875552896323283279816278712071797170869052127280318140878942921124970787573199621604852809062539680100988810019250522833488929539846842157844045362461048400550151218492073803109386638908844876355469514649357685833296975375731590010818862840995524208686322071664428717763159210509049892627651640684691230520461595851290745768002850402920284356852224541826769754144876070406736381752835318472831077224415828731941656478858270676991716982793160847459523471032958930489656276519283562643757085126167889452580077672540831048155055627373717344617195365507522141231997998252896135737394560964483192228725582914677626599187054210515898234002928904693882226849280863181278127232056148312777249662830476000077528675963530111307407275196905912275096353868867261945386562299086918168399020835212776283802199767839278721917315317177625645557068568307660908623523108165700618085634206794167164508970724170564870571234413483321366080506761721391211462763065509334188671665292521164085351883251990833382632840548641541207334373116273536216789405602815537169942020054298200296320620442300803346339132303798795019224397229070799384819887603749980840018543708848404606562796363230574416832638167387730459013150391030385474119229887551566274832031484820057032342213103846874653395723882489440132640292851582688374302994278910139809827739181397151174321777833083876893064950422364967768571217992629449907547342473969891283373005107963163821431463809749786600286157591608963754816464801318117564027848005941636415074220409461794728161691280144407847823642440946843722587898244617897607125311924604721075206747194447732022263343386882088793756791580428143549883587736050358270598868736794507179073354345206381406167014275545660277722426437978297909736297053949743520976218646020255863791576339820639212524332824449433867341019562224719020275456989741853952002224399756848513168127888941190013698101182590228617120612461147899021038322993809102004924983729849854103600619848279755936149598583090527498825221884506969484533488666254228908218756210752397010782141157480389489631578597359488883234188860023668161084992087351886118871295650418257640573791429643163708602959618757096483108999306884237211711372399412240152740690505495136199385484594418054734404004682300696006410009077120783914784612046234664102714183413762744697181819324079021379220772556820753222643992555770743059203248731210750775370356815810348210962803730251193002030463913138833897722799907395439973221559593587537955275261278521024358955569223010752093835201942003318361563584286233505829861111916534779438500663423904047731739389051340897347070510081933811662492858800929702658606507692837880057057201577166445476635113555022398580687280942108704061866855518160128754414217700120218825780406922450363526979125249806128427999655985759762895864979780064675745899920211981515414205079903750702814442231734579516046375011544893225127362348065988224588084426837994255651170176112581070628027477247193175249956928252300617378044122508369498311244496910236298462731396330350955514982247423016818650965653326260601817900810504304894582556526247958337150482969207456309954805758559403408287640958834419617219410454048537326031532564133554473949885305676254925739614199416152500739845469299457359647590501805654689051851856589411742504218645987898312559499303373775275697362737891393668031485524499657183996316607708178893736930236676647246332219583931741740642562954892787935795373442898172302462045164223312190916289384961885543925611459623136403470365619856817996059080394625215712720986804367628182024762004663785106595726860225906242711973051529978039353973225651545035428816770598229430808129114360689461304429830411178657837563331946719892369863746007440152166238901830039905455444824564137425906607618030711986371893604002302544201820596495147292393516057443688609934642271131300658654758614245809308855551783387819746555692758369024273264481240827098049550090145722988340007408139722317007873074853415705578643535116611720845382243482847914944623810722338385409300334384920208827037501080097388659528974651198376024417867925817734428261165135544177121736925022519951641408235659059900338332767708845938641915555432864726504717589693168694411329633484842250090469599771515327347842823671770996744662407283356314182616139210812489135809027103404556387875674223283842563365697047526120590741722608108107806926680577620148518134411777863091020868525919568541195528923697922610473504601645565725913480057664844922417228788449520199749955856753714329947890573999055208252455380290645963916160626449508244549671786302711316521363638987334033381396509847932327005545500617654806337983321283007965257423765735065545132975847826631686002630190014713646445060024259065730313613903003936651882589368534998939898534594686054205921864361766693501985462418679360593890420551170793933523552573901780115644915471704966529659683998733149783610721235383877972773923179513953376622865792067546956567047470292914157979012423253529204119805570897167327169618881107422961653622576614522604259165656055032692872640713608396913799307427264501064297943440400872599836215861593785149519597528632099428831131101548001573880394873298504945701951030576145511718398288529443136501736319708387951865938822807829422800343141570595414709269090092960624644571956463932543506701144925942775486374068788258423393779006707512394981927341120643659165356451833109390390738993164214160734711742901739084167746962942924351688180383036142138777993153555603353843686017199798843735282806892819999483147706830430641343293731969068666171410409242826597596564429974354467533675109387091002710044333457206365169376998677007347955523620635903234557778749999263003977235596689170229329518003314280965229379644890427307975750100591507410850288186966228162414376431530032034408480136823697169897948446284294559732064013843721392392451495308946134258613797502339332000730912555848296099717296100791849211142796437054526119261743328806928985244416392884243616131840043409161035586843317689418218665296028840208757667345892176381583483954614512917929296633433099603915587055253403817368465544764472241153251110300444921969420389722491238117294325069148800842368154582719677438349353717001576992772458698731983399992557991939833077466655831358641144053699274716251679591932983377261552739715513098074028875374585652792554060619181421403796885806251799552882354793005461426285820017677797437445391698951405422061091278457641548819144119148945119316137715254741369111150076034225783709249101798774795060331641241656255301014159754164979170528339671612238918459645882760713895632916235831911654910649042177488152405283517934056563270951602252932989746114645666001035560393706522972963965896221847744677334558990819990704592477661701113185518093603777511033560435568323139601944618444156838572468624018487720123157025496334976486004642813373200380718681399731352352087026660609646441175472855898610498196327647082414933318278710832202288029926346283446597249420574132770826282831559296638035520544188082262465426996770666949438667281265521123313639474664731413476011119968590012834788461137442541899619227512360805927050070535250201141866016273099108523636851425870058417664388195889370774472622701932361351837761210936427870422669783875363747827177636422607274074060169869757722777640296156727244222057513682773785357876586725421432085993109510853722201633423471171749486141493726796701359411297948709081488352023747023177791641840432531237328638850505885013700754459728200960725040229388136876882131979253786158504848625908545509953950394216489488387717608782783796805235138129622189604781460225759697589643506648342846371755342393138899776974648768143885871253080828347367872169741917851032378286931009031012235202871085182479576923274619610457343198002664223721995152611096500107110147820038454964803368161188662861231028432542906397376022884488425184675137408501596162126850284924572386032367998788909021034630559852651354607024293354085493879745236581779645069348992289270131918862249340549417919334163166967584807463128354750088980063795703350563970438307686457628114218025003404496748844053723976017020708354469874506010030910342673549502966831875436543753851209761928054865504849493946007647507120256848382991725006679495892851052973302392527274775062451311525531506203029101953172782070595542013865891726664220372448142953034004114501658873199810165294465471497126417457565064323164450723139025949629175564443688563732836365963639991045680419030385308995344393005278462335934531805090424282747190868251341872054939696477071282534677952619644705114690083822462065518506490336924555609124989549102162748275321671210304917090472725181208554029476589888050253103957098334283171551739682562007002670802261089990095953182628371877468437840985921268818631031258916786999221136675932716672871175925878600391467490012156528079284903231867821931248823907380342873488654366054263501435729458260599235353216620428650787116160900798194361906866840224221721099166931374511632726372200036088143841095232691370226833996160083607404232709499183936069185921555287516289700612089541240871536213257924010224073252403816749246659908252027928795693066467008797828903444797143318609184464746077454708746766612749858666959825040601981029517733005231876633055633921812124129848208746492155807274776313123157666289449263954646952295207369536992349205567679432633084075328514502083645656655791973733719827803968842979916300633658143610999707482985142345852379953428237509960884610330890114976882210954690682738991717224352901369571607809207760305872035013139299339635568977958274350207815917093782481869640173627102320325536226506321295515189686824023990923746388741963965538261025030375351489529659524122972013358475062691939750867687498712202564443523787490376693033209207404130284027780907661571667206333476719650159236270332060580067248135496990623337456921870628927044406416895327923823212967990920516524995280541251113598598307593143531090161186139173630311743914040006879748773728154416974029836054395098998133561280364382031673133381334523346018063292401772629914074987371573715331386896654916448573988534942457602472668186798951836329630442153428632815331735465535427408592912670064407790581422536782734202744364319414933927097810380316483432493036824862774075935233129832776653650923277796112285169755436640020362989835067614336958046489791519839832211059483524923023632248289205271290836107531081517348196198797139724062291073294297108626729844026166489749859406083772548719327004620598893160928902439136510331013070045776850992396024829080435941625625870156101097071589984627821671158241919047018442126349211977455043132450545352594469167955833351012633365734649689111795885301555396459586726802770059574108194678759522439619312249585566032777681696009365927288433765632296125445367578975034615797143539182779823881792819352548844116419581276885498856186688718226476086599032831175275636026553370366120586246646970047867921071422834034687775647821066432659568764376674614624596930940428028342028366501186718776223561143511347707380608594214256506306645061941601620468521566415831901209746038181399681865299503466763764316661959727807319953447149263201143353122041359007426385460596917220493273623793938972344920240615104294579292638088861386333887752736349411677303194278853701011341191068965298883521716457585654966110964854549896170019451627717979072916978075096471222016268476411335550584410189938123978955724644118466383932046778570501945174786558604539006299460277655869331130039709403854587716568500855731116242613418537757263379319010456990325143177802122365517188360017088726448403632817243195898168073525207677771283157814534670617742497711045823415103909611442349952809113681635076959799011811298785575013717261496530842676032350588528108944724416822733002416276764785862291037672907784157514037141621471167503234228162083760831438967580343021282308584022520086165101458774356827193175456128324604092260432605631658792231224412787685713418823480071852719700830525428916606895883981359115446178545047238347484880445725850064625513869778866488228848584076315145224378159396711978863336861621852522533107324569353428241407464813242876864475987713484348796522198932282793551025802330547461178357550872702309112700642952133141599520431256863968283716079140353607918818711680211981294429697849442167476247258037198305339626411355608951139919880747621211599493114534978889738361475065929931297237946753687242911537785752240184401630863628952942624219188218141993902715321946531614096880402856306772961626039367740394994881287585346227374812709873132535258358264879632638570259968283771627819987117011755058532470170521798051370518160304072171650305334807115481748402342204268316071010457514180452742744475591087704144487412095472820626644885075966089809100058863229958961728563258415877088413220752819349058576435151946481418250158180312625765948328150146518633375511716829021541649276186455571151933665642779971693884142129524647186978286712620336882541070689062153937134324811403515454791243346524437421742922713716014631942806972294883862164152161190529614445210137164006914123227742029146122333044875388522110752658440536979367746310282420269016594547731111115341791886805098769815659142483635134523731680614218041966328037181392865681823645606132096416401667978335418242232832639736444286227655803362649352252964954108559123182876327812628393685552372585113258871401737041142163443220207346045638543195743803817847858901919207678823869179868367972263169741389231968174263427980769010640038926855458165103646590361593164162992875709675856492026993502688817944728111481166478215901204858756147314162568454639076558988206411408747655988428394052309838064576062193093259620022002472685490878374094566262564493065314440332502971617803643862790972992965018130363115838684366379573861122237287883274447011066949524201490617501834099569846436701725137201295180218374381524669006169021838785926869135542448445046123085978243631790776587711048244537506573519119957960179608056167892498570360237343314779031367554038597689696257661334854767655497207948250240614481380344932450242085521672481452259073124543307018502714004073073395017088044308137274711218581554306283434353083948334111742017453098632948780726838927662059029434773111609738229813060528413898427128737510502758083455033672162633541733798546141091166262856883093476976625937817275774643857674566741323430887753214252845241812414653671300110289768752223572276564685657815029599953029790722688530303234012780847858218139057533884532337282184360804199738554037347688365097723216775617955717995102045090950981010091118437398806013252573170578678684230076658497722240309479545096810699085996799685185459804361022588991598421664446257524942321024452720544198878967571345715745564652004932182655735431223542081307996478426486098987116948077207393521525906333285411320981278848449699251115012664833307415837902284841299837112510693382003620657454236630829615451729818507066824222041320306748779565516989239312791463418494051109748171138411209349970893402667003673845568702948374964843998147830176170256359765118606000717163533624325869354484612424499746357890558302105534899284467635863630426756918334320068366972516307944452472734387597215715460822603795114837804399839922988026005178815409642011162594682889720829544701413992924851877550013420911668853187534110731742311446791926850999322646230447008911492486103692828272055716336340355745329620441382668387814101826180630234241321692439846637028358025459446346666356149613957355431307509161052911369452677461888180372558634462653468312370776422314480275026250701490536441373317823576261199970749099770745573694426441372137805402052187874131650447634915832657117290127310124767568980596879698811026735464325499413858679456965804969374953592020295969011083997443962590215886924877241804718292083608554049386961805613349424172757530968601076772533184702260214395120747763424692152942656583608910473596203537228283739912471600276339705716622593900583484610502363269206663746968187893166761795795045853975833576227361613270268911730568801909554555281851571482029446621550341121840742366099526159695513476823005282200848214059049014824229834206964310871108820679707273350006575180276847978102810743987859366606929277547695835468632110639443366628203491707625198241425385889742302423949241547239586200644055660365393466173349288526506617157135611285914451856077109516903146768916258679069690660964112952343495947630058555922984752349690386797875873897966109665674548215238200741094533741299080829018918173702062143252148452688615576270111345096994421899315948283555668168606662221060837608340651511760461080733305042257596007542263952976688137462233644884448283643679504946818349575768371823012729290795453237506061538865923407854191720981859650650645069620768949622201071463941830375237362457067706782151955430553768697751696337113061910486681581109339794516021300405766349351960967141286992353795243677932649931454550486068869992107338964012098387304641047076311721071421434965623067177742724511536275840259871324184138965369803754310274028043058244322168453859461740825718659763298340482268470565390593099390971222451571690900660242999293785858818236799364315698314072785147904264518479878075887397627705875340730412479763806947273305704649227432768961579214130327320840978201531286959880272551479863530003026011443552269779082197895017181040703717646732652203354847509853891290364800196781838464221371245706523220270310589583911729410504912618964661545134113170827932789264891417012642036217780811498199984486468089930708768143909489976420770959177752061780175109622920216182720290958776074535892022416359956780035688053061566851048026696598863219203349139334784683429835751035704657338498824003139431337480300533468811697575800051161227471333413463698739346468346956925173980305098289171932910709553851087202891641160585446735382407368394857673710105241326468358796369735855208277889299129916465387888269187952426993374924063981091153248105511734291988442132086604185590141886737151534061020869950256978567770763996226326608655474765190471932263285911738636377817262538525382512606444940580534554209255878649325144235146940242759987773937962710101783674498093702061641954101721199585748445001335486549861254179446262297487355545815270108254618938237575443230654226962964887846793779575626838466293492974342976549084476410472586577549897378933023990256437866684609159299959034476070596412625727859733982634078882140820427934513086743236083631429961623514563903810126893423070211524156108913278241802224776691589150264845072563680954713146901169089877061052897297798318512135860099881861114344606852589257466856690815737041943377555632555077129812813511571000240417591067747652684768264203751291141063298031733156188916845474810583628877436437427168731582245293223404531426416057738513679284171624279685463753865325556790182078238926299602697338781540990004441604397927241064720567416259469846128400132854542506348240524857775366517139723731407795460649970118082193963033134504809224949959664248754665273182337460415449204470654529275343574721447833638522309344167524062809622278393750332614143475363192068480967834351690041823306389972041357324435104048429588536223341093752011907296749878836022788144786958614398003386879855447491023937185447252924460624031881362869375147818179482600331445892708583411794165254917529496095105327988490397732444445899270106899253650489268139057140704035813648960951192588166853477604258443255112487762292530728479937738572693613790051729244769179423789372827321328896139612645329910656998817459413545839151093360140598633075922453700863823132079506315598522145708245974894686024550932422809820404492336293400688854466794040276398681582523070187380428946196520614956001340865210546093869370025078826402440314639533216654351247492602624712968786854063465334137363523971635739093854674016929649764285851068950784331817181603789491725538073484182106322263765687897796557758928386947851775457699075351047786633150816750525818352966144599747293467829298178910032531261326457434767384998910588022620479674042369992812666643865063406989639344370505118365004656057057879790589310931112554206014016773131818765153869305257093092528231205106097458997554435312927163324415499095871101659968207942597282135033734477536215679476874638641232886615250350313724939433337542898424741150849166153626734989157589889525256532956067963741538030936273291036358437844593587878382255394858431509360103034077545041056173581615113114350066291573923345815090955635171658864057963983923927070636126727799042486165663080347202873368840884438468778022702384921274008061387276334353238289931257582919485339705783432502331615480764189758145677573544660312499248964480836991803565905911655885475515553813630448194830398552484855693106437037129027280159932528469039111589791392376276276672910149934889706069931503483893736042782418667162554766262537384966909524536011022594013788201526333897340330480486826063257758193604773642923935920212635744061025551441309603049720039166957708259096039317457368229703538334439785709073165405525375660106936952768318198536381402911479877270530397523967312915198462283268266147853649896211267348453114642060853916857162148963443070363629367115316731245567140661292941384475381169527573560583296467357337800439819932245591452734176366042164127304213095022443207346260442602368571620309008479517044687999810489713246251274697542442831817398809384503798369555178170916554981615751417975778622323277043144740069607307596369248238274643234870296597289009810466047625406829168124324393474445479297279234649932395208339345445862453991610446123524055116815199679594091235643451514563022001329555015755767117538134322122142345259522567570728689736877815167981767476528762286706035760236707032840475337017909425376867900758547739519836382897584255567932841511487714417741088000099388429472336767063361873465327276434265065254862380819372346590720979575956838264863012034100360206409395547439616701173720551301910569233715748601181235056405405695679590627334105719277438549560155428799306283808675107517744640385945966416771521388051718381299848373173711032958721195671142916377850258193564210111036133135495954363916693052516625238848719098293938460278339667993114124223621740611491808170216196512664679497115822697856620731612906215474204543976195663041365847385103591233816825399491051441986898535118511535759154567975173778245470093029356928077021052543221784777219199038912700078338078262671117789154443606711477146300785180516435560039939329624058890390504227645959637621354721238799783640635243734771695897347638537039028261492921156297646268653505532610686605705866061368450600802200124351046262766516665833082492556375707725810414182764011813689528195178456318593222889959850992386223251546040582022597218009557266076430682141478913348588493561826275767119258854951701530881957303539058071692453296836488246720246733995139118830780176273339146836520693445460212949584968000307319914213438935622953047105091062011964674310412787639615624425540781155167874946992893628000445419971432161329995953954735108936794107120204416097311640255738851837246875514037687893967934971127138441446218713080814264364429107531037756008137142593599887615014855662267729453592816942863683530139086249429302518557573438998916948758361045414275529080305329624907071534203008915852716445082319645034683525963426075325410619712179922151836511590035402672888699354809811536998577781398755617711969122706906883965607666968633817475355489719641309104311811305169077126324869089903090603301218148070204016638019650703674972792808086244872757382568858852788519571830158187462128617299681755699049156285571150921700505090167144640804887834805535309752572814899067151311564826397388200271405667301142263342411989724002150659770309560503942898663682060036206081830972606604186362818075492938735413503121488683921782855031410061496722015200827001327592044982900198681503822576244229006266958010478475546578977185179739845496908759072238902893935865724842343320125037997377273995031801184099357991098561924541502269378685367321852094975389410844937698011807100508084623498375835919256682862078718485153016260477690222901891484744603821715493096506942439568090936035828739855008278226709065493892331322732648982100324217013419782640991693954782510646537776224185412524364173352515507005932182931274382496546310457446456492318282868423597906724012486355407963601447624994811660947965509650109750849341663174306976943182994088279237664819953414157849361561207680089266518111721389698968004067933925076752843827496358155067672451386435549755678047430907146704115045801843974838454875290682971867765176996417143342315979749668575889994625482175389621899823723558817406905795528630680629012259580570166165445165898648032899385391947336971795660969326534812647680789139071260271813439558237716765225389718832898881138020879623982652280987454349130646981545961132231154332636261761965990624110589616741497517640856457101023000369478031302303060777313745522905933255094123792310870579355267754298986571893991822738271853706095676192723175965889023631328358147318490747936840635463741412582429953862303939313666360547345198959601443271808097547401370316020201217744371914648936322535490225270962347438021887046432608999984235485238714463581842364007820235409765121605437406273629581076640258340730990015150569140757296210080364054238137680118873419396461937994738995179882474702864431673466644744989388149665697099199408232077027378765030969127826961951144338351508567764118691918728291551391302300622334565090995195559084481161705163698868528147436780544866838043946955796003591483808580297387744930576054880502012490947037139941374484957803059662835798351058127242551437404808892205348713445378348840006405665686646310979055655061232860999446834742114257226419368809775309457855468051122515270566787669991868926458156234993419922994107557984059704285642160516352792387415559502279269825774667564547402125693112339676675474985756965078356899855435077998327222521145908532059516867373531853935720000266883896361397276508259446989464739733237840503769704829650657648242707518202658973852965539361089317430835993497608566419109522852835667745382465646751029997471094771725057667969464105527819602893996324741271162072437706470701876906567073927575775662469177121809802946731973914016065465145052875165595730546961545524106163757404464000200524425638577485143531908839785799671891985423395605259524871317135227991127810668801002592551866360626716434545047232903779840894891472714900512492472841975477953771919655209401506175523745794434886069896609016037861762361083954736670425215550939841605678213798140050706326153247098574020015183127560809340795937630805616745241598317776126477732541938065386253006243722156756006841490266472752331213406057931969549789161101144510944700219864803067487750395093199608200081060856801357199700755046524718451493582058933827047467551817629256580338243957294654781420008895596594524495380717547473763028057112487244468846139102848359080152324707565647499590155828159668828311443449734676241665196377215043393073670317806977865142233164900766430282914649838847942534733058796415389100169243806683797567333445430247433491293244872780913157746027064768784119745583719977029207162024780885342207903026170020984897175848127577152479784273138897201544891972991966648319751724640749536067417375960118489243431273592885916182325624160414380064089080683705918749959955864318182182460731726270441606458172395252499251751467654959041258602010002256619327366665335174766746178328299153865646433697107193673778214150914951013147927230375849136392523061091561361842525003083752852186863729606065763438058162931322475123281945089834249686594985474666927957777646220820385323088544961349601678433249004899764735611607802464923089714772836641184606451613242732610410015378801575129539475588409941516068823467768236978991459490131083325658036987593673620109470734802983180521100880402523532523255620634536516512577837970849940214942554924022219294549751011492539751893672122352473543012233867411354842215703258706491832588945281959380393361670694721798983300841441118687475671801671198607755097123116044499974277254840849822829832579240954466028260165938338885364448686841992152541021161264916028128826860944737989547999480054164816142579392636683351396333760170638366249605896217014981390890986278912097250488287623593662910502639116609169010393611723806766983983307591979244137679143161763612042822879843141792083345508110463987130177832868068734213568772411760010620551430435181087089509289538488559757348464564197326315440685248376466942859646170643876165862959078780062157682463597630899201235610894105632291712549210316943607845490737244213163165037547739041120845315115560462899683851205472486842570587316658795821510426649658218211876571272483611023207252517976292028180900290772246451698278041885235781038800237255081863592709001206108889025487155331286118725374152206412098873858784035733461675011940978208459767038576612458012173513540528773658234493245590068483844551342793031105509357470555334072531115762598892754996317988081890078098852513565544162839971706643625831824697286249141745619273789917312754260712086163864312857512125169523213690632917035380661414605729659813594819689744950925470384411090512565223959825519716589937578397873822908123394381289367604472944501045506098707351850981570688793944042708000717978633998387518368411776775762144122492666554425960822714120038808453581261961083698612661712959777814628592004977888417698668087815828184673722675092259816045787889929913218050267876408888625286256229459819697116273224809482544300219183584786323223171057780312938096561725329902205622050766859615990808609056986127867951733667952091478712097139544371707808171806227310619105285836956617946859645758776596109427596998512935859501049721639943773741196215138232001200055394353847703199116362384896925168107204219083112593298061052615556991743534492537130397230745105441334992595511361938098080843276632426726555976980490296353357217063728931855515424350398568609982186569469612919601520320534245494600179982484639026735233555881910555391468343402328011924630940130296532188124230801350478194360240581703741399937947155383915852239440273154426921683497890244981908730470930651103210020640260944793655929498969118494809328493578925544564115875339727416015865163975390454999794952650364212910231417957537918737075011835240221186278387294242683903693480826034374052901848852281547206916244835943227193306037456688341983065155120865772163470967798467143533690861046809026857345169717894364623407486721927012560128389977790852564941193042328754529888510289681481832483556708275062123704286973698332197490297400812908621056693011898287325646046803711672501813742263641487407163274796704449967161753136138368712453028435866095493800779928161380129308325255091649428962990018238873041989785577116893599874013514819954515217487482326098058993095391516308354001359431371983804331561215011746720798525187421952747581743331750834267925726333514917450819937104016761875681468175764605965713330489800751161083611817791227539627104668935479295718200107181472392307605634527969450631856707907348343967516015937134789510183432590696566435361561764533051886053722860294612812451895721566153520320595041318730890915610824335019516448321439263132603171394030104258162849504862075996674181868477555256022646408206020149058330860290326778317828031484254558804281272401031661386210930332964262025312171166556707972728635928289965964586646694585560609765304172199057016952100158827760125897676276771917537816241283746363848460639341341846155104910250468156064641353532268884583345039686561942640981368286577575068928453433923386308008409827068801666899149165164765196626100713387731427934528337379834566286357913465709088466607530060503712651357507450157712726310013745607210590036616082403041338034276704622769935903590552086094398388486118384982894300211447355985552968486111953468737520502137321844858541435969376190034701140110262757001964996611897034351386209285568872078865732500337635468338261684316092675616027503601781981799615768975754457611602987065721443299530878616315818234789131478858877749323486668736631887898870037598857532176281265678181825561036343912113162373798578182869190832124512669121449522705337726980414748429370162509900533749689775102441760021939084230220136675921648737383921117283385053920922302231995822316231898794318615330267821992223649459882606697209022455621561377799795484484057820785167731060295761468567205345318025841877330391303183578527169577944880364815665913270038658668345359592552992531434202450161802319042983542225599205374231507824280550112853818953606135341623146204881144084866007622771408257037779480838280015512661875114846094592209562290269339075463497827236537686814237275080723466022289794650433981828346852510574060460358040903180274428151283636210037823161436965369316683178758382888447848622396300582877554182822207728670327771044149184721411165244516237959822903365865054261605562743198162082298731636146787587199867766709163763134339927228228519351811542338949700931860745081371131535522245494757162306896167205956438022511458549223100494179833300990875157783666656969307829136298883397433354161011967760445170997630975967212023513345805406235583447723903770568081248791577322433501533673493497783331841049739810355831699080384663332552547072725514464917666962225799181628057807231535394914231729483568692589426343781922280648680009536536140693654684510045332998017615882602316633884149112158743325743253722021302763107018278428120349235238509445375454217637824231609126700108746789797782439744162114147582199373024195149905353287897256753046198444605154070321883472896291307926524715227952748560233080586120853080369253822465803917912104208229328962678023739913932918077286438963658069504358417215297844256229701249104616017766427097959601808545513974599880522660405096503833147709856027154771241350942936603774380497614537192063538467730834850879463945984277697239375541766925239280249768382940827604847485769355233682378215839042788615259696171283940464558582487705012450752866515467677073531953516465898569120703635428456360004694913443834495067205871180379985105603461469122807798866074469446902774874536199424566003032238635625617523457748220472608668921217882651058869098266242275665062874212858320831308405181819958267851645199183391880746464317926568957166365899660164173709898215687778462760489117514606619641726087728034887598788845625544541369427630404606660602672438675058423865921092141844594360764638057728375131688909467174451481971902439236039099384886421556257992523196016470314241078063266217048706222799239995765570443621149022306165881655949246635932209913657772463177368102774084800391874747572216132107341971501298147958653364366004702677562574815329665952758416973536832732683625787077599224907372325742380282727973637736168705028271269796599464702282083793062458591428588164755470237912369764655793670900490788819047606301843188375271263583900187548183920817087356166482099706648266410156808866631713166537859191968121204573743340496355902160968623517280777052040572314788465093847894936224311227724366464681594687287713582356761676207168344961232195038873333066170710543904930909981935871822643693035823891685581623452128821905444960250750394359483005480743997116889273704637230539391286361156003930709002443283510117395398931035037334892150342636310003172509270993973253101364103041754099881124886579968235895378370799870173329240803323861616794458283501536903216814085834058587091238785339741093514675044849042844107263483826343976858324524403245549794778750594328933114548579375113345993338972408874175200327282938587993303736889346624761302827476172758622308601721487589886842571206230384224913667809978008388799495219497832100659615673665139174071242800230038284068747433908872590459508036643344734641958342468314671694317752412803674013525954805547251497093378456735273064228573998191985570073414736221350613834135013056004433252392212580611148455356677098538535102755210346529606057649855815719931709884362541004868089192962535763925336139367998012516013528446418490312046150181077748539067631470393175677938335215397216071220885160124333850084129164512026924186505017873330477214650745744115283174343358305233457166284479341213409940170431383415981267531548989700393217821865996922182885472497865187916862954848503569304224502646708269114425129645805353364407635130385883379077835798709314820827837426674349060538271568068970629161859982479069338132312714727246530935747846051391956665460447524766904972822352553714638284909097050391553131975960436670028151639085274385024577862127286812546562730779693909325933329170507177898252450119653524223108482330966380536863279013784330159627915986897347882642105916864549511138061545588547778980051010902052933625039082027468022283071461574115635271132806501776462330734752809258575383324439742080701446624988693384876801571633288092072940585449770381996289848340982422699707059825873508107666498749257551208262805152752415494585600970792115375442741790822718742397321896057620576289768924384094682831544577412731359705118462012468560953496395570754561411283911456099112772691166785277141893944384072834082719457606909485601827680589284220125958430816663562004139121461544566650648177128806594775680557070152952388237530812028851338546289359374660979193601096761156270085983552119216092201571920855188509074827041312331384373590366736799014103288792836329421932350544689341400222795335730221903469313525658279989802339449948371213444102600297230666154088737759340572132730456257451362782415286731968709339969773012088327881997808765586818899885527604200873190399585676766693414760132005971214751097533543996667545890878066247571882161905379204939965924961817916851011501754070701384283216237437820521499710002836217106884598243336467888701960747330314402701742468809625667891478423761522472819984703286579372919475854626558812482753666284059336517149545416285703108110325999297766260408792134716436461832776823992543160842037050515636341097630792276119584903291554256768741598552739589089039962341645595953118463726929552737357398301974236317708508286519144165568114697634693501475289770710483444476886022637037278878175811342472275911356325202104012365910803280489290565098934935776249983916646141669729291262326836889211637804894701676345231743829317980070263193003535227081444666376586980627132590707347865194499357099591785296231132191439959453772346722022670847975608171991457971500248364321237736045724365202660711106404127934775158941489364641071054572392975786799833076844233376489324109927468858379147390676917664597587241305148802027983039019361565741521082234512309538652813561153672615659615166463023328099073786254938875483066054028303471146881987312015907935671630013693754951857297194155487347439140428133096972962843006342881813519287211432395475028421951727024842781965584609606740233510993249141640643396098051827850292669173521451921598030828859814904669094937333305156057981159968229428438373046936619230253475640215984363618582203800503928410609446730867458690063330152457291119826592644413399538947433898772948221859805475929269074204348992784565677535286526712362342996268027928369778738991280244576401476830567273834808094187723791513094751258843490370562020402248909758164263296313054911448611863694636642622310036015206445325457187346221722595920829414954928854133247505252319130434358397936060424544826028542800801757878443740384477428796352935167261857874632562457050541225432416594691437051187955974287585788688939864620185343787310865662502598047417605257239925979109601519686872470451855814680839297880594996344638000872293794796493408745754326952659053186126883094954616584298771452370433023843380761091763508829212949617880959982561200945270653835104435558522194906223277251929818464143316110425932347852267607547073271353820018759236818496154153854435458650545399001092881801805884992990223683402720931363583381356885566770739551957554684901161457165055775528659765446555687076770409368902978899711197909460982077868414608434652417024212112382393200221163312257383119490975634457285179062704833485757484213924052461150575695425002809494028894698281416543340909454117405593559967616961162088206499896838541361346455006076004433332851963454318228185825833490709147180258071301927250093911836944191547683289863441367009806799679032013341320236951071012040325390985418955488300750419645231210078122617412485636853204973108721206601016983863143879741747316677356243879592008951024332113414082713659901651813903174217563049054942192226467519282816247644777836244410252837849162972489145127777596999160445925469585372290631444595212608331236728498129157110515226002305068374481705028440426025877706287450487340294775169599478785501008404405138000316928995599294201983471745349819030501824346561183480231512859142228232030716738906575653254871126659417166062483728309060721086086149532496959340948146808388654123424995924720626955036094684742560244674113714358291363177644679348343191295835205911997289512303426677250388448875868057804397338209613477182409014664506116451683082315701312727803223970520136600707219438965608480533979767704269993313495054432639871290713161563596797927575913920863211135048979545052998466383960714558872004050923511236990896501448801364164900251564650819425071438749127043262144976112120383769918551741661071491563947421900537684760906311829665293430979004506894369773919603229930108739482533563699175219206806897094388620410510384430112933254298025178267202594571302905953712847320885338273826915520322948189489904298535973210564363170379737030221068319999590034943977189373681563398821365500651071585074380390510678660188653204326265592463930531411044191432043168244244117607932137237552416333706013644851044364207038285450345355928186558553971051301723947322554707133539424261314217328487347021917798944545180148630399945078460322061382002150888912742695083856344273043842666291895671702028147826339236043772146152165965343170910136882507399025088032532552254643366188915073497529402621887870829465593002546751972903260478943189995169116198486289758268236548749650824940064733228559169467046365769395067313151258852248988512053012115506541594469840328099713057715323382601372148744718787051546665569256875045947294238115655787803663182579342837214828610858016000536593692262106988552834425563749492041378668623298587095011239213155015131089345654518636613440734710820173804659067869697667627415338128002136192132839753310490989657350826183595379767646295560780652616012927249721966750978509329440313837493788061240631331655475435502815693257114587727634557932518451215721704811378680018556275635393546589425257410511250842913530071909271164153013139482665675327999963900672190642439313895274115006150569581946462419240836290398756456817048587173097120270622648478590179669778834197528798314387177966643413021361390166297434879220320179401004701352115137576604323694435770227189103822763975670175956191621647480867189963074820861460914709896875435923636495781251913734853071065556412782902380334496341560360757652721459026776601489111072136002088971044303699099911479065066757486820898889390997593421142178610627515422882315731275192193194406427255890341333965772749713452416769047730695430533020551697299128070737408145352615593548420752774495911834191058907225790748489521727871645462973487454105608459792325732333699744284884786366555980344397463050270609600962958899588665802877133337667887413584916557306935111569442702484364106112994016882815844947369247900251242427454507723920648594660643411482362681825280847373183497510771068980116619612671084447992449174893855213169314099761531546625985403058743974062297824252694122867314780567158803613093419649186549819666943946178334052363400124557854619044600394246819006855825802036635352301039220665585721257686857913671621240137204723263043979624823151006489408237869488385402784735988855792234868767424056432075644877384941351819840672806457114613066952892909306731212082659630197127613965411430381445179615267957789788839434886305238489053216558486157778850312434819131868395173308235024278865040998744487634567093251056162421071995318966733473716444347504277315582911503936551213068193815791965371190138175174283323817300703375640233173402130144701768146592360338747892592745388097487802754823912434473620295860394246986535554142148237185234225178807718883765547310822760034412645558991026812626097115918863255035806843509186739664670294784274847743116458030209632398506982495658341743659329183480570030051056217568246274052112278213691567313156302901813436491831247067646809957039444434996515312063605087390430863528404535070962563710696419232944326101432194587646476924905076814683301443920723576246236418666437554045483743368384211652938322458818523897500420119657340982512355317167384284679949028120738853317856557826986431200429386609048311723269058942505011194772576177522964294234645171692073423245829209645338725070381325251322240958093809415964324577718472314529311754490111561199302097361039988077537208121669229213198579405297455242605877453168858333912489335764424579245101446206914324855497415550422067836807958661951773561243640141625463039661893530693845614912229856502108654050683536272250941247369966270756184963681186731231292927316474007954208874951496899399079887006809874621576696304188861051772481871859486733203689525674368379215376864018105261885787265103230649012455084909719419074979482664772396504677693480026907323544644910463982392769592332441842307222990771179777228952344697512859700723960073331530213638213069430444206783761575002922031722853219920000444073514518690654546104896733951942960365356441877531739704054662894541060749202668262658433012604159914579261071681182723970767796217555482841060915547760747823290770894251358969075502541390245880945758963634339863154977518092555705716299945988662510858028133457797345454661103602443152993475123632943379131462751197142062929562786786013893275324024021728692060886834209862115592741459713642954445400726100957095444051775026141712796553095641734641912384665801007596344801439898625167173891959992056677844657207501357022652905045132432176139482772344067576448349159095956817629731446166913191293370867770801969136327819696774555618248000444649719551446841137323326815765408661925355874323531915114486579951027715254979959053736594336517271709512113433814283621241461255816499244745165288112394977352661362519560527009953824184183988365751595104832562116047677423255234518093828715675108820074773527774358524176424824958908012358359993466339886798367930220249378464471487966456988032347636868149929712749090855595607202798901785950796671497286310558487575139755129526890654858903139145555277728438777410575509464321719233364310796132130912754656328458796724290600731686055538878527175750999313071702335622445565743181339387375699879032301129878351048351681704604529293953544169315491711235712234804433785726078689678405639853603476517707948235607834866402164817121690601540481857342765963088301890598317102768834182469521502888411738780012197416904184190982782222331263171921240202352304776083091372001470478557978506993728433365203378057718002863830796627127237374441312503307959275991610341181150469718984471797243867697988518993712587221875513441534520702131284905414878083194464904298834790713411637261854582679731252806415535609279661158089697525093582487547668877745704600047397931023136699545599440000971744952178850101506899797889835324297219674384682670854906690413833522877876137299470751617444239680953489114449970150210407665795025326897471369909217322763238701113262707443186039991952853754509389897362190045021693820826162929830840762512005626619061382402471390235948138086152234579155244614183103182239166713524236599135187284954983370320415736610380212156391697920886776063476988237785348041103405175427618909784733039575336842223471219814908766940693806264479848183798839532962086679078944468502477026691082182717098886032146943747069618961494604898041282576805752149577220764262033412149950689078404491620253281001675430771241774697241857503470698393996400558205622119088026926633228831876563232841638065004584642123021344153132193226621837034573904193249803045553545437627290332801515893852168794670109627848057385384802801135282828936610331790502292134771122841059854008011794665990122885748444139816958710692126337547645473135044509268874200914857249347249528303369558632148169436470686827286298378732080675868749670865985009146097393441929920397295741008820459307192551989909869158237004766082893519660057416505207681540631207432929659429661450491360164480394302834042507757142917585706876381306018671738165987499367359481109850714046226811444937941952812027486836824830879532242921406822475819847021553996541453250618371647125489695792175843398429117716324178188806795325212269662993290566758426062808172395506455092114156454295979200988486338230544405335488433336909402514934426106199434578242596082801130175532730070433864867079671048216952638656062138747233778408527628703495706254157589969841588450245438748420069570385749415553386438710755699780681615735069773416780904189021454880792596603596835218909030505680027772076350477999651408905314378376629680172428113901852099754136243193636571998082424557486581161884316458877277059901648291467178732592678783840902246470323519015063939921718454151355474266010075298263517196681317329383473449557943309943545470284408722483926645950269654200967420270688243355757553871943592187596317439780016270848783662540935009920996226999442376067019658205053123488707513418444268300046074878846778421634940445276110533498938452954723867091814488182389387689704654967015758175846244078359520989741445258319597008472669721473919928924992052591283326757105432081291731018747864587106940497575393904954615217787859353722791121535128422872267445858965456720731040903870930044885382692421533456246378172276797646376219229971407640131581008189300432176936576212601587834637262185257328117419952604599906669629001714893503993629665561820571247676750528628896365711574217321760225328558735129932678655491368593494498880726708209025669329019342527720866121897722807729088364057821592472626515155820602556253302741533391882833198608943122177712244039416115914036552708620260167664109837632634866353047161406345359695038098979797253517004153577879164111996259360207761768138222782239328001822622123943391127232092541078523410327706836610488040023181574259910452494404299465340310709341295213190360654784884514679466463614087165727271898299305116341389046667251523735611340247717363629424174153899316815176229447536482495462893126484166352063556761310115584794297310770568810659983248483225762327476770314294209069200657781889503925264717200978274458186991329941455925675342737250449098811621642150648718950696502380765010268724654466588834850925110101042580267206192724014293659799516180148871075903306016843109930221077456534170069539390744060448585332994222650774066592097695815725159823737408275464210007238208238855610596249664583333468488405615617324241567826345885715416362655347197234164328404707123237019947984461385240112978753958355519000716997471675833695628556048358250092393315546903457255554912383987632331475643596142673862782125186290350584387968368391798991665845238672739276818652831044994583238671523704846693463108194963486641464964455223290045258106418864258974700279680609249852869355616819070094748652167931868412841181723571105586503116658944372879778479357463229539016239866109937156872400396102257803773984815744047854264448997962619895560140615709970899239040678882129436563545343228845019231067574036748321261145962815190277566637825914275600414465633512926948231693871910083828398240731629159130556088479332243424867782452750060485832174442169720852760873420011226985406168830522486170809828244005474656742436489594226847445533619887799803097291892314746509290359084764728126291144303225672523464481506583110430003834396510573120848289157857294043058853915452598379107313409407700449113633793840340257803680327318068863205496961967501350707911551853345995698400618143049520952293169512598401089740510667960048790032792813620652673396256231965767270057409919055212983206356701536283333798357089115329291127662572079208997139275198817097320135425658801156764542065030312325968095233460656691455750595870958933482425063430660560363319797704262888468984376327791228184018898337358473095224409917383600707469889677070191344422333506054058322821008036953748885636952291858741623075146333541594621430620764571939131873660417085597494183864252069127249292151972381118850290146982204849587012383130158190086963901216219386938062075544454060216009023741140494184735890672910781841707345855643165645982027631257638002587281524329050262123443131686925829816213657965826987361944867449323070954725898099930920349329913467893442248204261129368200497300584133035602296318459859112427418647478100143126318091350854670365993505821643221147757085647640830057856513957435834076392109047458766359479581080077032739693502232689012581253326964552890451630099069197071074036962313586660288865316687956547113657637042900201948717587458454480415379264803864827509697170429739878515744008610254581629601595208584270503309585443194925511663936271382536803637883299202949076171881304455594341430127551825369313711244680097893463203519120833602295781843817192776846932976551305547372442924427030790774692016379585074262047395937968686996348656950177584450081263858002392784892382910376192554525389931399882000232425598608658409349012091088516229341722047635825107993962000466622378265646562226457984969418806730794098012655303102898879040101874651671938405289564985855222575451058672575010098357351503171563498569069188992353663158558030528509342555779215578078202733569928335059284189058171465049895673393345675567590622523482603561683792265767121041528510862097907545175758917571931507513917723822798310522683738550509570224617706742844172013247408704960670857547914376474713095190475718834073669656948462587206743102864799590189918268499480118633614960256887727782817038459651605034886759015614446348196980862343066104929235858292357391850264999177448256809155888402730290487945727207344033489524472317569333173970027476999872766445251458734730909850812212189931557463326246403929517289871072643707332595578999107237579838965916141810349203126275209320965546467033407123929158255156111437791736424796218992735271857066253936588713645041306900920705422855829361220419368449579714685653647442980038429809327958332860309707440611489573751335920768653317350057129008790675712858631866186355121409827180512847291697812150166574709527091654319856083386538699995978829141075494892603527722047419665274721595707172184792404151615405302752354588436926893225577845429372744388383111308534781662901813899901928435923197303219267548687095263968109314143577362396601542046732980825070970550289354943471463042896950547921713673534206804713388849125416472683324832297676212511322784050564322989984710203834103736462935535538751961321974097979007810443037829143881963195025579260449780420733477878734792248543609506566771910552697793844195341832112151188533265999397302207551158099238905440015709887134378854142732112631063292435614645626069765531666487092340777309666202183342599998933764916594480706464183912532682112427129114181582182925324497196340357114118100604468694350310579989691782064667768133349914240954667805416708201905092303264920774257126955127039217599101879892469667363534599214239467961969329557950764646905500667868392869403472335189369977326666812813590699644307726442567558925000065004340839946607521640562608890584656480822029803086000520727422086536538279528155877108118800596550952520284737235996917257221962066320647090112117952869968702023175991872265582873265523655545344685529899641059210483513754429575383813456657353776474179353886467467004449589490109400444008917079540338241409966910335496263524156039178876328707333723592481311071339244202246171414084970096695864656504774422913573458393084821560247961117224274696544122560379534238319497682780142304063768181872898727851722294055306977124174877362100567146174652891265889346556449590773325864932785571205231974640126673456446239257928944951060492176668426878048331947564729005292029321330307322538957266926113571442618794336995572441373458880411617176598335607062850781067530853932721308292622047279229106093977952855138536253508764806562009633381545355343862926596424786659531622239685473587941019656208021919333061462194436706352634807013093557196706613555600939857257857656797525561028137692646544428432621874710211189026601404416683497661735190386347970660886721911849422929018160820440152064189509081011137065184315559111990140465936637740888033791791509093922195933328399890391465534862342513755012224794471923703961135665791879164364489907853422043617707636574254056310102092298812406920138284623639016365159579576342875936486493092906016034932692063248523124321405541035502058701163569132057848631324089549839865638770888113918850471936005111299774231477143363747674505361460120169630498917495999836677992055086516401178966027016465520198881372664069817786911692547499537240547467989280530180043607833117795824300598939766196572561735276697950839751206879706373582724343393232566958280404934363234776222418213383898137685539305536790113528916908517014459219961255664666645087752593648840658650448201351114517217893726764603066471980608452500051253744829207570987370019823214293414566492759850673805756736263488094441576705902442665833571265392969385790122278623593359450517326100298342759418813795432286939973075853400131933658083405739196342361731451578867380359544538390609172684344302020241329917334508982843725844990853528230105445842864912287095248943031882758854160545254242728948294381891954221902826728700285591196942958249109634000795975060716324550816685906982400077639213410262318204134698778997396247674368002127172675675035814965590215188186717446291088163639252837326265437606374224354568694440595625513144001252475324927607682842570740829076678864544347734310076004856137687108413694734128023549421198254812905123349268888965585727088912231885103223321745891661419259019600077797895809929437434674649664934346721169556975656679057519202589471636136959334158194941448781715721295523962910229397514632481934998224510955550048793409776350398484184212916202717725410753144131004782889759287594514961671947114667393745582392949643335016672624796803201307091269831527571416917553179613027424096699426328023326302312136634885917867985329243552379981191246299620119944422446563872092868162654836792837232848579068355768464320992676827371230389904149596680885862319752963142115263225268583061541435800418781145935890300168300942977996184800899832708219804045953698325528111601856880809989970485286935177723236744601034308471886795619174497960337324610269928485337758279745886419651034134264041347227055861793284096949146653556977181209997185550842982867851872516870016128648885056641990935292135704150868907533650710412503115219383805247218796538815243011722014208850724760338137819773013475327127722270129887612327245876050361697871227087090530474707964826273806319096131102865526771634946805382452519290681479782389885074840901476440149425113947971173378566793679088480430058221459571490938553554697763743912932654810796473121343512988232932187026074240378277300022703575243162148418473976111554057039521338833967407670617863399667954249390590909500710229004171875086067116317683496639534708657045888704243828177006437418438716527890516566250949211406383720038201399996145491087653889706410115103358761764636151629075141684964521708817339163990527585448061395465520757315636305512996120512197784691144655382865618635179884261349443210913114000995104426911758041880930608466723548922779197278491776186385725962858237321787907611167541103170325571342721831331264906139087217393129005312692934620717005625130632846289477427900252873913810957992255616950898734648512765609129200794094193079477361702451969502484389428225624351726478743576346905035847421210194157460675822632161636366539111770970275871995669485967655142962437075624821201483730282068821063037230737625087799734883690128531381327267235561748785466928829663333785053192916145304149869015995903846060722149137363847613530286377269485908458684828947647018677068848730809263064081665423873157468250134555595374408564234791983374318522433697749609711905760396178235803803970345513579016585935111346373997873328168946724375285140045861564474698200069757377406822677647037824127947718323673378553154095487292646027817648899828381701061900376103322880638403099026910068459552910610315847575557494956531632067405560144105417710203318771224475950999417394975880000837009916278883359404963027527747877456820473784124859884691085069558700053810919650093539146825694330118097277934337187006605639419045326990456651059578943385081355417270862342027961975748459414769848503162606906751606307403761369157713824728287006389165256754008959220992765107598795830570236151562931078598304779499404109425954155879541466250999948048176696086196091593839711073595562944416531372822948724528785500977962285522621375034311373891647657204010235697715583339069214928910456172586998082427178536358927574177266751461898606524700109088898676040943209214788067431000012244898561926872802537676981355818565798473779084675077171791707055975820394437534556863620631047332353983654447498445909062928357625130490052726645809197976027278147876564053503788417352554454310657563010063583729324102713788841186795724304789700904548508450404103270235283739387851276570196852190506988101854000384620471896050653961091901546764830919197923526527133689572724713644809525836381051009730286110122314330032466533048621756978138639290456171157332426360515223945010949877745647437366112594889972531522849634889018949073458145202665886421345143864508803593104998648412644647560342826038167999130360825294561423014850262106931366110293140190233502010897558464020309014799989212413901138617713809432397596938073627448874206164690368776313092214103312145059189558399979589542444006502757261447448265120901132051166312336038474581558064561136077481190845897295227320002935041216306489929965310528554811491518995128759021699302818034326703807219696474031898517158377887029503922178825446336002146351318874876336381752651724679093131594087199618173287625765482807816681965134215757625015693838427860572929015986945114046651102473215184456665589918716867521079471925844860325856588913436079667804015154718878798991144304978981745836989291727241634038750340177039651175973154536297822373218661489765003659827065170011175352236947186586747204016796699827211762560876789287492350143215783689622686850784292422866920662449145595057986281966287084627746211399339038361793723861067236364517553948037732726089818081963333624978322689999863617888190162715657157679498546547499808196334891467187746068521354218614527881649705313849807604549177746237848094634325332017724547273341677714676950740951174690643465717162473294740940065294055015508618721333980609857170544239684380564870207346588313151508205075695952849861530769512985273231567995125770000374800550394113523807078017936003537395489216770435191030134865027801700749964314204187781719819235360507126593664565929256962587090522914864946880570760915854447312969936936599309228473342138749594484768869520779549786686280967068747643946295926429039161863185329434069951704303113058961261888423689424321217280654340586212649523112682314103017631147261132337454333006081052177365950626127972602517789346967492708921703489702953868562708579803562094157363164513945949008462328841195030210080643249983391774801080996132338965554127539958785101864601244520152336651270729109937720684799091870169352854002044701882460554216487476151957256132876140244057291352261325780546356437169816665079676885917768604381982798532822131616266157752139475514813792195214991524371976224983979561792271618852440206031530746716196155390014366475909143283859850383139190927291308665439124555367669541143362542576112107158127162755562274940162274468961271773099496898252972365624860977977399425788472364890657717747603433339093787053106785507970051625552608740646526631760409094879308901217470575102079741907909161771001124901992480334339941128800969557720814664211861503024172407216903064109771140115024536555399759825210236573407659839901069271310256763938811871088537801080588094584262229923293054468994492271698962675196140160179591660735321279830820574137111840980640919044502900250040487344077837112681308382748735286951401324619889492652138841261169176725431159039173749468407289847081796026434010902585277165503874770552220117310526252564793045898797053921656990855551420413639866353639914142841700104700674863099275387809829218423016284180186138016354908883757201703424422850236573407063440659436779756357156976944130656063088581976119890041834660324597077753148504590902240873166195340171152772674387006751967662868204332312219979988159409849724558040015953502919095327133840516823797584375947674597637654713381839677525181113044341583064392814080959470056090811524827162489894462198676646563790519921232791323571190561451828376941425438603245526913773562824847823451246756840479640692221359564315382019529354724384443995174599536692319501120426742095901035443187810917360162269741431767989266036154429959047252547110834187310669518131908725197559900558093844833336482326206896749677005501737203567924802571843215374899630273664580725029847928425394438930542869225799815790648985190594820739829703244895298756653728140472502226947467780393980843815019520383068587893107273143869331559306207223637710424623306842236797128612313453587199587142625225946942953366303329347786304364103577214026922593474649318923106109551253535544960778155691272331555286492687724844252737175756577278280000708840950204734435410068017454652675084521591977385871875945326417813509148289547120426610767317518982394175527873873052726685120037005947837069031027902404008939566459591050287247129937161560966977209195042855774794358152763858804320187108963963819447529032545735485760460907750930283027529667506039972356551937521911133151684900723707794013427560945089628097176842249069637577100151119424765254010137512820298306571503676668924921913145529334001065196095375754430216615292968493999233772724527631869305859320754866250667681616799176724140835024265788915700076700032006674537775241791797879395360181230488890830399787257962752905543924656159211820585591644297846967351914972346873974672541139082912513577741221674933977885184656885705250547284695195347253962397109724036249064432897081441996900640568468151892474720450039317001366191595984519392315905560961814388026189969507099513542277500317027089734435496713270885522148025517223053616430882657434308915770230208437764263348237875794007619577466637847092003666717623613869508678136689179286063139586022039898528795743380439079708931712622364653251930767106442691282756444041234987632608199053240145799438408425271472746095624181918112424694193599809742600790925853336898948575086104930188788680538983976474337947975967698750658609367169026158444637565418636295625625179534841028830140247991151627000434682079690136075478374383318462945810350598946614402384042318886994815243791428220900091156204953125962122639779459884714982057634787719479049326367069735414397017132195907340723613912921828664629134489561708393342020609433135098961807846471863396420887651404393319183013284754796729953940878584698045628325375283281611149957759428680419789017052628764614408140900051550676692683291638892989235077827036896011386814167107233313072467398656400764549357135045368958903023466598623530084780246228404649111936397599412758323285615236585946422614913220926828906785345627522311364531870597405656240002690056716487120902035364052437566289851484707357265953446849208929322818550943039129743993720992028012151083258058169938432345038964370554378357355713349413832546934040233084409703558691302745363626971189356357472136056023121766211670653449190111934450474842177138361336813167368145685073856814628307406235310117104064843208517080939576820990165657941635221369787085387005326053737932357194221912344422285308137020464229979146089674395380529432601113238182150251828072255633898982774651142366896601182290521486384900230331867556406191013623279510559082968491806021222281163743745443438825162107851321789068054935958960453152834183105576720527021884762285380779012671119834071344471224646290726309806771846682845480438388425598871606370718509105564020158056181186275842173243385027287945755700938554929714088579398974761288324425967337183488693528419485905655291600384513339265191845711071109390933025877091784059606440399587996379487446887092021218158386217171374255584271979117367319467127721652513394134805755492900718468432610145491223411245103654979790677596336903379807816146171079491086966674442991575795425967540208665682939185619386647676961849688457346470927851028404229905466704473941780459509404793779661452600278575591771767529449258197823079479942004225672284619139597749889166252868866431281824243986826152850430367554835179923672116882131660884007944830675032080105064112638117330268003696086999887463148485868540350267986079259279626777138073045664535683575055911283647324828966232883040411061309629688202508059248710035639708191193371881009368204474361600257439481421119258037328982789962856699956271131332695854783709600922395408111985837514562570742480670127313178594012365940990423856575397464824407729506742563496193234334648324675647484166199229337923282223325893319962605422092008087649555302386230762369897328418486644126352349054821926165462277868704348854614329513177563066731594005539238088265279891246488189711293144623383318566726085230272221988752465500313151127129510651697879860062773654732634103633821913858125242493744405952327424764073800747411595492274769545854676043559118205858486522889052094311883789648566463221121668977257886053954426655368020348313938022773023321777837474765453822631111080280665595599430680225986429292442376988033155333763203500659658039736537014757129457597259369653693674944007391880048112753428467448519253769299137845627989745931929367255921774022531790394370542026460562695329336358332991436075708143989941059233145661067433312886099108138036867737622133780799839285540797027657961905759465169079506778617989651002954125263791293652668383770639197111054480881465060158535109060547712284658798652032947619188832859918694825695840609002197724095643688950361689403630289142473483567145958926078161539109890471810542610023388612874675345855224307093067285510283441832178919170663958982392505624209002933229889301371791748314114880850977334914808986076749396956452656021691438010442768449684201732646039522524363198349598831471888507634104545476806949654757733286984637104190199379467505792248245289419651351269789018752620399942121243317837015476450010404725162133624615218442477869458262642346862653303425166482179413540047170668268580215045150186335703315095616780839739575038861540496015305889158831935286099179618733578196733337984606103082910775521764781794625141487843300265082277766061991572933358846421609793914556675029521187318928496654794547760333686182326763160799470940900545364232103694054938071231876183659499578554393574893984941676418434169122724322078506268724404976479416299058280703118600532621459698736956842498574941470918964879098854324499348719212035569130953816449630545835749151619100333280230233774899709238984874458970340823281552777009665623459549826339246622813116992897718360363135357486376852171624411887131033458855975281280241210863755211530232167753654638115257320378974594654356903802635109485360959700537801995295039071590185072800425453619935692619419062123427676433606841440998327079919914684126248464092419243394273022337620643940864601358475049631973921350503634505131569473118624041356639750966316214063580716404608710952456928482792039661611291565090605000102877845668007785763789203195519386126926037257100977445585203415022229763503167702357379736355744855549293719290168891634213063091688680293351291963540640587850143665058639927316042665173964992381468241627164364449940040497004206141264896979806696435145193552059767836538055504300501289046923722254232362424734759430401372178286927573552993516653633008929057597381529759291496481881761628348107670330505461496637744339116179568860066563321150771702207686566682901429113235686361681206403563951109688029035143852896056770483566164895104268512697474462093583686710111627313604851986924447433907809405106107572573571883182327464592965271680354102318737648448880597799093567826807969170374842319105113356046444923916829175389041683314302611161517091537616581392804277179117850319987617629722310596603741373686895199412108178470645125606038684808247373145121090593251149128718654764242769742227899026073930168687039899850887665934705049747686891609506679752705057164249313819568411395074747431640676432443317341793919671956757778624656296848952565451260242277376034225721153476310608146878626174921562185433022593090428088662475064325827891833920593980530816403527178109839058935512967484387782487829522206998852042739224942998561071811045456130074682748925656976602115771384330824578578469988246038842934907000691977103630737243138465029518179776406083502044491216902961963133515763571347763759665858533529062398139229939603534752018011256277835680574192559513264860736027832179235857150248450515559321289714586868005886689705696642503178991000215324701732154830011800392848019426208222233687376377169979442685162227826917066289968096057819958157195501212618038431783243211354125791895195245749769002820696441927886521373195338779857988569697108525491567083924144655613567820913475212096942190313681355373243422852656277794133654299640923295900570216218360494670063053598199875295280152354328265890176795545581609330730611817941053056137636517899379791727494928390820522559897516635186685448326145176072612127629031194929051383731616867409539067801550497715044899721797568667412871406738151923351566841848200015715824492658339385929536045440081085027497532182437918710070803071150150349935759398153736875544066193464772657960717434887321000666663965149871039922081729592783348729454881033096907147994022799459227402277757785492787997842517376157497897284705081965636305852240704131726147937904520691144593751644401641006535424907396476002765091616295341717449669590029669696627453534093165968069678526356364409311269597454662928169777785331392320617855353149216022891127560815326065366892704397504995647254744866684650596742823300572862428758309652354445293927119752034865806962482645077448174885324691876411205266470406306956242494036226754875000941820314246721096859663281544238953803791116906883207558824547176134962960414126097093221812985942241315993907281265563734655263887920816552133407575580558811663397572113818674919910724545060785834598065636555296497831524221822119164849731699359534531207404300202963268227503288437549128728248098935237299395417389129766749179550646885523579952813183541010064390872515057859495103429808462775797454245635834452751084154854339112060604232494764094235309483153651387570148290265070049327699212320681345783186174969270159050463327417891729848035871352870221859321798262310166466137374241048116897203596341653928982563403110258153249873675050053133697219476112628617258051762248087404448831719290616777487324384405341148052594726661103038340833923352270991882629216045107824587016906031545148788324888240312513320366891948507068662645199224631901291939899388728788099073415465087307938525445320022606732884359616727270250175429811593993881349597028490323057091796211052866838692729927414170515818613536273283426432106861555435717360991805979252113725198816739619028512106751503849698663470121527197174132580216079431229198001120338358534456306501302951100225867032424791578146260761229024307583799138807488303375304527234506074838902798301510765089921132649175007569848087759386044762134057510776088144028000493048668730635850871322033192027463356469577984933318032852105482662234748936774430761830641447866131971674410514520614373722274059163384222842161726830171078766907691962680589552514483778285472453775493717195986711965175415941680716540731573512468264499753044985109453076692125982484119019408136721062032367759047787506429785727832199052421514121562733439115592409517797558049594520300886303376869189886445202802454734940673870160117084918746291281708466144651250818218829599989196510318556896978272670535272557186633910226975623137193131489398910628765262513583597619647746584509208216226682597234353405074029307955465045380917440537405584711275317613718420962965752501242962349545599337787273129971702910074096189152807366403690096302614680060303149350710268802323302352375846593856772009345639171838722541901938302903635992540687605431993359823203216770796005468362639553300868511347648235918709258448982200807316609187429963448610946868107049843213852259811910006738503753188698159608803181148022951812873535463425442926157265034447898881727780360794347615909628486044258492421243173108097129226524453410950949627261185055188296985521733473460917940147166678938289994638469452353188923600495977958454889038871838578275884079068825690692746025477792847381782516812700959643852862201120845259446427328421030920927124754557968699167047315350262034805294855533995611540657589190407979018584902233531311986958101402193895698430991852771383898325437418612761543693192673389196936490395109103781562805785347646715369382461461524508854187870969611192974810213446674712194805589087298405225040117326108818518151869530288447055098048307141397446356872110094133880995157424741112023944447543258772544506450375402616921815290332192635057354795528522023803608930031431419859245928291080213345146784719080374432796738082995085045826685273737072149328143412069543441302108311567373746590161593156725008347198515384917483457371678050902870135043773549641935666240343361299566651137646786181446777227406224893877962633768418889016181649549625663826624835290441613731129882563984818732420164954721493974161211567396742694239585421717632186402647426517276066323885049616709735571368630596395539918497165271361969527038285728388733832334399404934209256009720771675347052157494560042021547432895166106214926814259294283979174233920515139454910462587251233378311891508473288144652681413600685694031837283301082489743867185141304433472820425724431153243480394319217999988372616738622093996913220112391832860360101981007754291849199460933165481356524365147913524488714474236570806451909593356929609566433484042618436405054145375788214681502475579092390662533735373177003615262453916629648882144208866915714694829417484732662030216678115137046602157830752159017369865813619922402620340601491039788227798423926286792430644161999889891079016408105464465332872751317123745953133183010871324869877493065407487121749905079518944788542098824044764632968806452318579996100796602477761416503859930438694782376050722371958072072756264859853666551421126055298009009673588292873686831023937791670484866274527576609308387688679635440284068859517635641596189490394045786330641531542405607035947902205021437615666922401731816980905515100978293885971486726273613737453616644345701131951614200291263207803213084253444906834030823332475236981036585888215713316438356039918570575152455024086600536187231528413039358800135246020146486428265925138716568693109379802801803986653324289880914908459226692743897147655901554471092885875292343710200440892679866675558138129618768818185442302272176213812642185564239272287529284960516705440267036875724803282918315815003355915288037838973304109032375122607209686387601620760266684178869678755774693548674428225515595834846796148028495828021960761116920152293253115703007535258988859587984179575767677719495542850620231529488877452940628755294366452737181694073645616798333542172437580730383530920458314682749022249474689783612481403687395371865806571791943119095563917464007431519885447344122186068162837789304694552124118403736166209985785613455044688190991387338650155784609444738573593498702370352199527775595459630036741170734613356831954196312427184057584135460357257946758566685704486344074095203504684331902803089913512461493829985252677849529832733554012056610143679632095096601221133362484172834262821380117819197479207822073910989515853056973043396848612895226741387185725556734293943904313219542250190713816390207993817719660229651908627488084342504327506579140112184568243404218198910992740298577652000920344601693302007759758403715345204254844674587853840564496735793538726769519151174462547927731821899331890951809693746041456556198969907615224570219644691888055298228890798223561895476381303971010616463813743646073445304227595182812589586959620948077410468976772548758705941252278397459205499785421663660255733397446394141784664144480206342469172617801469298877256591148955893655902055677022504652322243294338657596954975036104393116132544371393686644009626055356706930286931058639588611611265273316920564964051830002376121830274861031448655605512305857307211258771268987102104032769059183114511303583813318238506255795167810445464739498457750236803971198378631153322064619079412067672894661510334834794248565023919029717532012903839569879018108486503448340070109394661422950524124776029382191966216096718973110584818025573864662173357536758641995428075301336272560308397579431640453971039790375253758906213089082846038085075126365331226424566850803429660349228111856696712782697651834050642150241521417156675022419201726975039267326356922727385834264892320245180959067527737555538397725825201276344541063808692363129366545159834914514081570665093772877642393988187465788800791231436192778404040514269658727886028010183274695786239545461926935517135658754875120538432371897644646120758340018308137544953624171454918417747216948693638126221707654273179517393406080307122403034596850191789794233055939008740475007414933943260868951168124041854871969486998080589138192834439504629940350537511498687917443153779815857471477702930627616037593993260412069359745070927444835222341470118205891907696600874549404553109119902501469170624430271520793419265803524715615219313033178289135086841005536194096149085878906624191677709338887050214114466178393896823009241160391750554914106928182846512577260027703059837156549760301255787237552422209414152607634250863956348391678546771341821798670967371237196277176139922884803707088612555847304412355417458987178480996208240665764066825471776519980485180561425564243780250675060775037494526387475747166885337897289009632774988833112699645467614302126665634147624785591310627360265037959399180449801168496591006466055849364556317763870856243701502057780436932770736175156936486765144330379325585252741465469942179903270468523634199575000503916826479408709669860510317979035445449666107687540239643522146412251816874459919839610292212430877055295172210252340891227167276909867013097983339041593392087307103697648838585590602885670392648104436814543432948215615175849678477980262559857978581905943032462752512454597551926098310133447739542468365327324698909871077463753110515867800557666296522895191377168814890595242762435910766310882522033497558554488447584135116795513752657501971943740760731662726821378037744046146206843144757478109415024867945959093036311809820388865820531437170258161640330871270068344373559783337191725888886096140328445438430642267169895971859622465467448514706015745820132247021724222374236630433132783180607989534201938509574235373048853531404168997937866682549007084214071446744549345265388244430385757187645995520403270694130533175400120469887143609833688455774734967457500216217422533887400680125122241067311614011469658235868635572432291165176519453430691578788343854317766466095449285592224174430446008511869309879404879549114057068598499028913482105616771786541753249592922698484226745514795580575955555609058638089758552885043347020373494980472052572385016408472680820475734233504331052749045950236812604643427393312983743484879082747746525807491530164099998244827918772798162431034849756790947683802976743654156292690737211164742170127088057685068710907615989686438377984154719951721349220474809528563240558133527157217649779472626138228883195434331636033056904983555228643243076563829511510137791707453877796107855278898437464967548733327502193113993371370007591484365387465802375653862044533664023768109364172981960587431976295145357784329704757750621119731784511402474854186274626238937613230109683816743866912465794096548780254756704557853061395921270377599714057848928063238518162563406438276325665416710121544925614542941801409780406501440048146855780039176273151443812534137726923872175469819467619922552308444226877086862040718534863579840786113580964984006562513364344630954576293390728769602293376477868876133245109359957576643011286646086216510408192376440368040494612306883657919302141777400383403933491140684987065693142978511440960192394308733071837333802742295184930332924566648115953014736738467014501241818977080466800107316140568876070688472713203333874678953455961288379362414612324341238554535068279042440990468940729376901908125489111200241286413249337588941625817707191099894493173384644089992518118942665528150905863765881533748541234783369433763129594716266437635552041815339573620418056360536250434001648276867573260279934960924151275055407403455697798311430144132222233385250083940944691363826082273941594641688956193887521795356553906236738039267299121186408177548413043399598256074265227371119251402535927803361368335935777895827847559020641746208547302017684459662942556937918699252828743390019333567760503806072802414812513915621541627348910231594680930627618290993489440917642374043793042877535065470719844267163210152989403916268500302235593553670108799072104981920291938024637148460935659818353041571470543576830606861295161459218759485981359681725400944258878176885489315921510149740959537010830249217749608794004537329052280247460443901266247122296336843076328442502070144810543441579844431912949950495339839152308850979726306496317080602396845906930625777844014774280824757696321667930836501315323506664300940977343809443457599763021462057939619940475472472644942575082852419385847030053517980035568521016896848570728352421621184344970903093213534925172231409164638545874470714482646335935782447265318502286509618159759811295971078212927331365970208814208181528851814699494175526423814672251691231982392151417147157239251802826704361010464809843223173412310748923163820540680608071920164706780311645025755721239852970826110961192113720154864263650386569900359343284137371391991791913268633066233611928858908055092762597935012290370820812161023984402095066609209765584353220475886287401949024496304365286863296976980473163818385909306983492681954111154001631852231964384533893242029226101682494832039683812974729408354582319717609495035269063415589902824604610279804536233579709088896274562762851319490879568804507036813361030019871611383975174340974080709814204196931894407964641671930868613416186101002043513489250043643722912601895110088240092099417702607566918558061047675807023735077530766319578679472235656864376509843516163007109042113799625118363182858040714817347208353905964835610522348625675233183202960904127312640350739241452841482841920046613985281327366344322937619597939660693502721162556691475206535976939408907373375116307132671618773173395731487696569701355402110861217681166536468428440912795678342046555023835668433179370117940362927349415121451378973100732650395426670351045622957630991257369253910794891545176085408880701192090481349601453477276509739747054314756934704606287101782023306734157429176911303425037938893377332134759562301290759817906899952673816475622558560243581194410319615613413514103226654710111925813229240629857366447364584451929069299317181078901941085786225314850613754657123989497904217160063523751280098080546930507923924048579524965940075097681664540451670377698463152531475324097341012718965149679353321495960957308766148270501385080210327661428169968228007435996576271894415428317058408917391536727358737808339968181682858788317926598638757233013079054928947035202602967112194377407643286631490758255138067215158724041647264445013993645217347754174146122841078116699642669917985904025606617174282597624016412427661071280325209838741485227500667019093672500822490893645545821989051424516182423369401204473353931167232077845850068058404088452922769935869400219523345087580677442370543756168435529748200040171308510071593583043526510453269613581369843906684429118702680508106501352432414588968817141310277128400927289574855336583678751170457512591288344786532397507047862264057834419530365200191940411375093182896343289573728236654047477841795364233866377210917796255068730794523785518648799139419738896606832373704468357398100864593040438768609606837635791694509689658905754077584259747201011982484772119480279658474585501544376168454322054308396144201269258420207215761481498444504291865350067024406080060162708047892063076438587495366282321645959509950193364111825346137756064499476110804418147417439220233774262234563976501594175922825461625056331938451160923214303968333011949432626062129273379402900495961604879935785218173156013832976395547544961942347717013107485273366020138038076802071807162188147002675792278066296179540252311991908165969182849503823290623382923850461900538115496883163991863119993591596410960966466718692893084237841688676465537264226614602986703196135136624813157208854043035592671289961251695539993134705961500369429478937038898507491038645693062401287169267283149081180586178901470624902628781341675646941404649304164682199787707939354688625380340409379452758262012932038033347301809194892312110290397494297418705863970235031426493121592427537465614148834798089420921781972991576316063223998644455293729413638440060531260890382479357022894822569094940300510594818000535081093935943349297126076130012172864776224969458786540202059547656333190040521675099202126929033268269752955077285295781229318835338346275241559237290319715765450721537735085685977956444481170856388277755450352938031303144311952974500858956555528952992561394667015366196501942447433870407234023267436662279158296569797431666113879817656021300448653993668811177335032415010421224272970386086038767115200562391709610732076327691396273880491566915673562133264170500928767125332772350070448938265064682631165993220991631050222262838542146109576445491704819158253275763463417029284387493207795700745729209579121215682883932072450168754150471186065055781449451183646415353513033280924617504783484986954667565266652663749414215804592067628501885628909706892510897000950989455866011194040233916923872423936785215825247646708940634030182098467602592304111793601594205803281134126844905054157332332581604803114971106406289781138951122151231726963075834192259890667487332042861087960408583089524552315239829110795371640980956261402090894522895765057582527084724334089554238945617635521652446192782568676383209452148323781161639928022601298360488389116546409259522959284750620605080001838996529450466572783102543143328160408507266948298059102687451777957695966401964402575262833782300114290306651264143600005783627337440565896716353208593895101456233025698859736716696440606130918322783596619569014205109479505850661555467017677092223847213825909233850723205658435157640628023104095459594660900717295386270537294232933634466449100965332125025178925463283345533191625696292458498985712504839808187594088762528310725229073969560022713947594407079976317162693461903520654580531432097139633177865851025334121721437001216756008015220713253005634140358577474341166231247469758781253965275119636385467698216634629689901782478540460213818519997374649462829541050321508375463460445398578568807238129718749175243300182487113548345550912513059896855636953147003192678252598446832442165279197812286383658469117692931143608952533908045826304275908138793458957892007507994340083721725234305141513081681044491830603052361963272208598977418901833293025955252472689856749235798809075442446482283861666408476232901405283802229791829414176262761483033834485945048976617076998917053445845296110538404458857873365945736510871002733430424353616744889072517080117493365679463051998210287841058510223628885868405459555690674503640803224659290632554635165502813135521969358412243565714027891186225808185848727203196402955757998202193689619332199802894146858816475418068430219769814911839024753850011057321779147156180554396994364298894022118610596110261125362715535452112801850385596463852157493499421236452932963818025931610480820095066891223290865919097633185379877889458530162223464310210509916546649472891443959442105978431680586583736608205132412572171605099461667445433249794373777749764287882413368495543595478999179235076063046506810851522146226488198732532527721053700934984743324331441814322192715863123721222376002065995943215358168557623902333972740134009925156517708626378556900816587568186806741215043775256906069158308214278756544520868816514416854188463583707438987450151630032748809292822185499488210398359598591989818582435943307475053152063254494738641104714111741321565069398850390238756743708936419710310277640844489216564741773699022243638214978457593415406960797149951723567802388389145604384974272754194005415710674843391415199957089141439934221843524352518987304202073822788337142509092221247167425017095223932228117853329631917996994855121000557570093751392345201585653958974570045536411600241138970954185751544946932251237578440359775842108640758368656469070553068613768393551822485237644179602213113244882403810722811285623834667397831321631635363916078759785003803598835863138700246419636079164083941090670016341785447037512487750497876983416833391110278151761798252755227932047122658718598316191940471384987162987929659320302493539970927608297531090075963832771150527702710834976526968061161050316257106748879211461163114452466408236745292580336384388232153839549834701090638330712502658077340642716937224312599536557269228699584080229711270920292227307608780463758589570186772201645923776723629524168857140852894221579388974327489707339164440586430505881046583457003310421011260469901936191788694908330238765135507992926985568541132518221393566327452609784070777726576509523736965337161703493955476704740328891007234903680084663856147270485279360993337128324571226542675576069524616655656680760715035085012823093873942360105809818392469319113945956265450686703147189960028593540272222599759715592949176971726575378764647706315179655939634545797263315408615578950160029856171337126068850317734114919307460159412883609302510410782082390718046690992051796883513815693809529539068880167113297583298272858577153048118001087486758533032783737114362601390656621067818120267975822377145203235622551170644429842705028653769957136354304715392315934159726517617811845345373501369957183976279103818249291080886263381353639124722174456727288070317564291086531208831931211099186231978847689467359369179638468116969057341535870111344063325941980501714757456169808278558468076180540393539137028086727140381299944025774088863711650211322254441999096242725215833398976407093196424063470782112477886394182789043242927851633650101869009265195769124594228382052592016060084946652198427043157164341053456893141567735577178535679059506692316525713638592533034694587466020870762274066979227627324378678616681950687361585636002804701173525369090897106758703252710184055660481635254472320416963663567397828828115565970624560242481768352195761559659176789726868189315969489587871942221215079951606196944069046027979895692011722496244120108285035856476277878708222706174820238189577828800724977723452207896012624073700658881292534728838218187195288330283001591746046227940922543974988543751817834851987599970177160814213689606275032711983713791968892713818854222426834387766019810859281326734288299198830311332213554474921369039764035485992235044214263103491744098824046485253548932670362636910008147608125507741705049603533365136524238849748232846941294092476411087599486289050535362391806465301836601702598600792944166068540859284469127083785424214685451017933569946883696189851597491506069455553192073915804639016125329742072210555956171421777706716388083554314185729530744036249725133782723942220765059205944252217065952061201065670444007445312989171215122649869583388806564912922693535313067755812476401925166013717166891465651137616570207191845739563460414051423482617933960746917300962065462896950807898362605379831653827029841562367398044812444642772289979498711956781931746989748093910232217269685745566086652091979955515477990649276685947469641844364000435725557003406110175955618103660790739990378285188359191091383429408664376121864408663994408965431716845481723544326179239653320938736488331233639864402423668021793340163247073096275497180129025538008457468737916253390118471370701540446089018192962643196737751698832697407778428029778949652193107214463198213603960239333480987202668094422422640429521380207112946684345770755751447291533088765061298629288268686135798906964918392148873092312648147972009463277290822204112680490918591040797673638799347801434970577626467529139864470671773535091242500439437852821766875080840446510885008540449123972266006115454740272459059473066590953158794939302643721683550456416097974966396250421261489342213156515813221659727132646066740124589014694072146478304076583945596936187071650616506015655997465812618696639433853050822134132140189169018367891533871836285000538185815084307972610090364774035527763963107178886586866669408629910192464689161412044369748206012219439585736046724618477488114575770344710198189393324232629185199208916206540687538891563160966275101897354185820767437235773711583974365965502854304423742179730047810832392172181586903172692217040764674427149714238832671630782700775524071611822792359552828205103982219012935575161150350980580359467484037586941938075641012816740162637270726530003832934713424317589211104301929952495374467273665199504830532724623452541819817581901021361126410083558742221979187273956218904147595047921952113290740683455851538512354983840182640736568940940661974663765889240036519638928602315127377580842092574527224464787677336777839018869343441086862549025116793355596588152346880286083279868826969445267611523228951908058496511676338164408176014354101682967236057380803378080977675174927873847215468450359729101725816383749649765371175057383718319357750490958152887314426446059597613118669630322396034771712525481376836055517346675768480364302199470510071950809980729137760126125751514944318248905245862578732702081418721513173505363474216754026092926508874056464284745865628597290408690552055799831606571052025928909377810232971389212135220279326888950204787861300776949272907737224369328126891225326925029278085839860566385743955088863592222943747331185550249141635359158186520964870997590746212839203052744074947369908394757195025751543945610618534520412481952190597433771574707704894227970931943297655814653906176079024675187494069357459732194202727728693637106086187913769884188779177525249672652210673760493792200591615906416633843533992502963320788382564939311598705001945956865643412933272398023748060143809732431864445425543512217986282068137578446441720239827258685025903213544323666291902955943105365541548857454694554377919181202134650019455655075097037802039066722629370281371476829787914000063018223139696105339464041427441065922798129537546617809169493826004269623322626014868647898850987237310818990240251312115319575956857725915289760115498588885628981421873736730508578716955732590757701484787333442437811945479597705103965356970838890561673762836714997652188647564353522476730528183902585321804552415543382426999551620861059535799679166511190986488561543473335489216132795551718975227648045020928418606760844138566853779368107632580494137409444049653335102024074725219687589714828881351774913749651185418009139077446921708278226147573482998736870268673446579139295196690784411588256174794735494881297656938549373788576297525234839967116674732009715383624868966463917267589286303309941621502758617493168476498767204116508286724615886904968732552937201202823488371979892764945966773109938626189208326960783848880277905278629137424056018119579536913051280023693572496802542065800794017708436323548726200295034921974128429045217792269295819540918461669810368024449155069986072718956067153886600808965079544485711846689534991953498410010620117418383495458506528755850160569310042068917420505488699394205403692253919811023908445534340168655593842245581226465019471607027509019486808461291948652672476978275750419024897145253923889150637713966563731062153758064643229920644898990919152327049300398484628540376933968522686327538486718047655947604599058195161158565342407433216650771779928655951887747578596271049932488988408275276529634606144780208837032577343045210296509711761037558865872647172711135997923972007363104672395441618280815804043483071264533808419377045710720750243635192314995659299184581373204702081662068830116359862454349232134712076349973403023391564243009420633199817441615254660010167165300531272292750554437285837878588600908192230633630345215012775429137876584342863196644906287095308755427724213547127849903947705828087220942032595544001411104239002333593064264501262444766406496740346811812627266495043883534946861286022972954816035526029430693518977974020116358927883554595729709403206272545257052309235300836928823018153250134541505141807281702025695504625410053649274083710569415347745202868745712677678192239662203357390823246076711198732502556933383598553571286316771536977159022392187555319715224267502762425757319614032049768545211688853646697576276620442742672213880533718790347925706782155867554461542244513212931261669152353467443949186286455375062944658447705063063772274137332858549271033777413169173972503494796787714141594361145532599629359697660773379312074041845161838726872238259925802496042290925487304087445212954597851497064879597268651428294708766812110600522391138336679304400373763755140737040370470880810075620631179471692095236860161117209927769585367535558452784069668833847575479364871633309510115283632213171504844015982477487776424204501693264429891080270042659138640960448951319318416060863877422542511587869284283348321924459500461417632973098701691494572697984224556071837927964610472945261977162488017408443265100769982033636670636390221647803277060522331806406682669063501103349432383542085392342813563695550211938462222980975123532107354506642400565448231424589744148974332915978076048419964518068203963783379437991906940670669789805898162488563180475699057920835281934307291720929012814816485310468809228343207987922211234362713477345174581806068178888366102166093183530359437184247262566079860419391964944834835763264010704646321587291792367696804606021369733388040396381549261375866572577647345038134714664781736286952706415428919798552172482116312702840455983526752922641911740825433150631640577966791063782024832611335560389327239793331132716839292352853949823479839909505708444213358774243809037786874033666794634378373993112966076157611829327090433927965661819002969363122512306659013578807086048134499509522823095892663837977202237843446248220652028259691484160825956637610376770771686591783234779322236962631618065426371321950101616585168967433551102576148008856173909971112136989868833232538759358909669555552045008234609729177044426306642000644774749006179813234212409337298554294249417211445277777757849674303633375669981880583651586686982261456284157681359338850703274122210039081569514235828048356637369529454717253609502860055399604782882463097980595311644901264721975244237090527317009092577126758326397497591135815290488934891100837282364532504763788417710023396401329150442437532647491199560210178658734443975553550721876135767593889534554906484655508162264511437503188201025878101777037005143330100435002135770597054262272153216704262648006507505766297330674618318286739132398371471745540641844896060650228595291726015911572799790889431191755577598949282650277486510933689586130267306768011634484129432019358769457001639141262196629442115319497481815270663617081124471717755057830828220732022110109440993014919221672040624965426928426558003071875926556959922048592378996992130517316738053982375712165790336574610248282737416807242802505296329008617427525931436042516029787735965050350553047580565281457606799695565634102738345088473724552505070885822913897868799638845338501707267978604380095008165938027974605133137681944058991386898751976418900204291252709792996055133669519055852181633459155891033731956140595014110382271643224383638188434856047471211135686712008814427682563626174801086838543207620806171817136446670108876686578724062094722932284263915282224231259140422289310054219380512963993499621284154863457699806065740056822294106598101690274010498969255978115332678772780210235648473037536914254538449911325916733236168275628544517719635778282636566581793261020014071521188162414941182848938432964791564403219431613660900797150530910044459404819972509748868345573045132031309317382686136831555613798976607281012409934382153681841233114304246787843525338549316219342086347585187623035013483672178947075494414504482415923238675525926169267280852415728995917806560923848050530589814585672572256028764404868985665076024992136703497944881361638777482534041949404539834635291182609091673142457270659090670282679291658350133285133955841080629706545505384788440614305632214830019881751570001871389929485150453260245757108427886635767942776763539474104254220971060371893816079475723883087159095734703791401216162058164188103548625641347079583160719082640338942070944667359461096027785453468006431551103663957035284883082798047719277158583082423311391635753274372345812142037078865617305790012153626744172247752357373890338857592056361422103844603808951053358880140999305215067513171740614546026413304974087587118040506443675084274074396304062604695233488879050439796177271307731461733614491621943088058042234499563198918892986298235483958347967856621942720397484263660693972523000694990802242592805377797131526415406249473392061810950184091026938628072394365429092901181793234205203433552931965891936810463643025513800148311834032284939259246286022293260040221075165901887268279518509052723525745198060639050146150929591736741568228129603408580405657833987303622813336930048824013634610640992682107196124511798408715457557137850713208280397050205025401051844778663499665568228321890813755669168375578515547535797145937853821397387854300040832641789939128366836028096436987046754571471896236807794251456492480270363714215972177990944094561458002322090160625998370882128598707760109193933709342296061140305967037578544541610969572862075106194787036408620685996643782709069665533925051506589104439070160363801050528339208083117172607800623661490161352289833943030974922399623321887750067888476274606427079586933641919073754104970013774483665813506925006636373500881093208217257629102154911587271323471833731353044955142666544865779812399990125705279713435233881107148422762123162059831077749513134017744797047697840467039381990987248418514044435167409696447922764423027272449567793512055350906135161326165477668542451652200598071866992199710738486153777047249630224740584276551591265342212693120985515721136170237161861802438623596221735123032891331733210593939865488333658427687930539761077711162085671241684557024197241625115552769904294389499053791090098727892716567723000986849480233512547000927407554690023418313259947561011025363698230046896101019914288678628931037647378912393372410080314049295576892045605179815541814110681391951112970262396074914704707040148802919133494236111509561966946317576201081472621059461699679109695764437970478428664927801991574585027572292220496290802592060623478168914051912722681278551782128183681192268245541488440035840726519028096889991367338007984557400438664627216270454977069685940984830384939316115719425900475413226215766275361184978948911905743619424508456337042917833263268737757323033734276368922064867455114515088031551103248929021300882045431321502352710401249904968357346576693468442971542099705856577339072420909644467369807408012300684810274544332625048953996412004363276291963585191649189073377530052488693906038183528883733625010178504169024175466826706011775103719778685673660064699061555986111196524480181046596330897644532921175074948221402690532734236495388584630844140936707058660784164925599534686234239195155741349196051799663537557339942652290344409602991890317446888327498932292144852445403247455561151169824870522751431993309550767868993842454590796103860763998367589019983154003321383086041748608207547571617533029830211110191534155760781909959926890337510906283531474506617371008161388136147621314909539700527493439485419136981392875849660638739981827909988972696192548934520925096648739824050218365678837399846240546811885228434917306118809706494849527345129397330231078428759927778991761027885269572292818127743182930217892196160341549517444614065250799583247646770679997235178610666047966884208493833425761944521262070284881031748754677549818201640574360032383875391964591132141637256861848079082549527266744714465279718199349992609935582609565433286438095135818325199036959188726149271182014231650096474348890249127127358174342360758400999860969901074965401956393530655138347445962500341925901100493411339203003331844476572858590966512610171669611856254849741803085963096205459757614031578349210513426532522601263634585430524393021637771427388583161301972370749051813945540052966871527506334772360645967473070114924453036441756928650792581808723232499585216948624523367399501704313312852984881564237763681743207533660206631684942216575076599802032405938484613234281936008539658149994059202480956876038219881089695620023185973001284397543251235357304290688792039352639526785157524732238774084868104157468366231757526376054472437636423046379499478154820102100894941521509170587504515028120834996712329399497784653744634585696808023314597544802891945213321943077365285768613361715051080895445641146839158140021760545576544241566868584943142652157212636590400792924732322997545595654928400889727788105068011631070279327136583565909394306420595801781813970442418052631299040811680338520612642834724292764402566798161034481369218320518353875869837527731068774282124872135597286603730662551082229432459727876948793380871842495097397511305112513318826049025335221721379350512953687419239754637401725730456718191442293848802636556438908282088867960289147679248338187488900976729374738148151897095325337796083507452594416094438407766276355172365762892608974223631737024271731034780036924452741220438496300858725669685519676316171431200498031002833233111062092670162819897890595844163175903917975091182727276622550813624723660572811315678853740688793482553447058776849732876639094306143387860508298158425796037284138625407509545334854572234152554991798619476560370816866520937647398220183926931889222948529767452469430634686899211697919949654862077598105047396522963619208397763638836194456168904790076422219459370938470174475345148702567049070569788348600451349370458301270842645179500720599270718915134805875229806271275473049357296137207341003252601450329850806241484118181570888250433141599598189696929609199298575632917508678634017099575404413552237753512147431926847471471457067248397007442584051570427390257083638384951437501921247953503762513658348963341394814456943017216778416742607882031278739270896565414296168380786081128283996844353217375388274122309883821564954358247147021183230033100600210835296383322535125545581198424422274592030280773178420543823230109157008417520237499234956709245280941916590197296662299627455712468581578645106413026116242672279777702744167509222555349784742670329177603468845370212803498306194383889660379608700619910805708652653027656775294074996807599744094040545117412170794338143492246144748130073671271002710693532786643039433423579140116898394842230773550135756817109048598314075903624472230217952890520778121620100431487580081064879411809165478083078840486092012269425191252887261536127868822097429593769575850667023044959859021392628658004067366603045466236880649609657102750975904003137589966740055534387594689759274601897335757738693574747687240006098638950942048198032537860219730626482695824049863275433602749240343327951229525373339888446671389754551949556263025109384887114929921380176376830232935667813766712319349711314826614259594703503504942030517339565727021870107949401353081896187116587225633909779142684332395068256769447416789375135746042525524887361787112974033891337716814827180474403879488302548254787369166086408220985541156951719499436672669863601242132670308684862481075855429712546518161838130682401943171719783996583729038200032803328674832339214600631423351311106687473191900903559769163101272416472169870765340749741999599211073509971654690778639686735828355520634709634111455190753495868451708073471164808543237956048153675555177824126725312875382469585909936011324686919201208559145590480307817692762089903020544996091535748562961741330589013155158742531497182219764599780159697030808610477453421572418083281417017356237693967423223472086715902230844965178499153853186694204711762769395152434289687231732566604775071579009002119697686607214362070018909602203831752005539849658780489247053863347697461686837948034906855047801253347267588773878560059374857487446807696507849384212925016402299838299250267005998301008563460984731734020504405100035445213227767108705421682708124242995524559855747137422077701033316852763940701008412525391975844119841045242240577369151305920516061190516534565835665409596865126078513191881080783529106434486887910054348835229441098332572352125264461955889352944313695919573956607301949794741489511246626281427510659119544893521702744603301496648784375837175842270791398194560997930744775001881768507231363802921997865553365562807352402338441705903636655979404585051794306784334597883620015891244363457734942952127241770468322260700373828801138427067400313451480179115057517868316392159183330028907794664858789876909514436268427965005649641860323472850463640252749359062027285634234179247107840779928139704191391209153567944528555840835842454232433129757662612764036726486110344470097091034619970015773830386389813186359067482593716499235716762292964652099215881305613378268193860676362579336739934662310945577738891148294602443726827342970768343861501193818508256091271602385157142217254237245060224012541336153703745542329723796617990410977802829148153840771027867144912300098523566112629087829927691599342985587830866062533061893843175389627471401860925125603727624820298401652155083728979380193869232524489070430691628410286110624277447361546825894656932483794314619001047852931637672296899642546841665010373747888875517312192809562120672360837186690703564812715127752267504671883207266098389709984183434458044957441097487987148753549452532000798678685696326270427660572336685167721765490449415262069902694785218581871341595286960302445595612760327827870232799105309631647069637226135172746420475713179781906666754788265630172616829317697502626687880823528517262587687914450369545653731283673714121246949661140055021773174614026144929949542822469893224991908550000492874061823292612391156178876029824536372665033135927127972695746572777690937010664032654030949895532360035429974351755678614348255285224050985890389869640072050717769964236086775372768580821706238634940817233279180492005916124458296026023304689413270744951716084513695205131881839459783132618062109960007738959647821923073908014269702890410864940287505138443582050230822065586840067400690973918321205091296641858856471970962278905141295914326534231028055608059257720405473315206180733512667938758370227440734611188646606134756084638210653176850067064855596323939139727283427937916955462614729869073036341912716134646911417421276319068605617205055694313209369932942207509947638215220877495779526172934078480410418775281269085130741067164849614322057119104165772705791189689613958165211241923807719686760430796024769150795726977235603879115113066977538024048825199890521171282761716649596018529934098838172068181236187186490412775549763600426493880723099174324351540253554646993541133972684476082711799482579873539033313745863210785491748431459252155309481268713683892092473515549885993773796584313676041969977435718687585495079155248918088365506015711476978658271776114888314264645684376087681449614835768507037666972192283176085578386315268137391222010228000629734720678658127164161198901436395992892644068040802333082736279378563574530536416730053150937016391617682821500998994575624676512882349075655422346491827476256124404281296267362589339555389919867969413357949204727632950999207929610180022605197666215330822183581944996328162548209663493078228777693632360632932656781389786112657423764218663798555762122409535687963663705896831266461461037335651752524594397889401545527277776528883930476135506788842339138482426157131612819145928529391472060327867278497733043902928098658320718509349652478868264750032294106240574302551199936551191925337583376382666333618124167104339512325890140478216765820644174570990763746669695719264655432225875126401183639392378858967859523266942304550502219661024504730060214221529681571255324181551997073141429509895008668431928158146162570131038559722305174373755521382812352967821994145284808737896301563353287142552684316196885195035951341906175947573469047762153612970527520951236195555319343298439263178978261305410935133003863608005627266375681140255023626628829078017394819717335888159257399168835153150342052289944534285879511127989609247852251953411440862776706364769828727061670433157925031818598110367639099671122445967241954144727100712146144211186027753074968641395839970574965183941559379690589457376644262888977472124525560758208747515537392984119784410991078740501409058615391507261179774184640359271003899949720075134859794882020707999307230112035719063084641890621232197549995037717149561712195118450602843427962212910007997756697137569645730154075199496152894469631057722118438624535029580104648679628108450333404431327355309837325498175764680180362973634022142407592118060098740619804940931968290594378755762948856354054868798661785346654217608001317471495283905401136550843325800428162609973390981568929628014546954812306897349206208381979943583750174323362078627453976211758183481718541726564780363031623611174030403368535467375467673715501526176006185394112407044603578820485583814686945601827926279643082832813146308575236004681398951512661753455981805023763974972783047711321685723375106505758997398096883706099085032273726511372252807614078324283922314478772355605607760031359137834926392258448106900921005525386207455508267321606223593863413528117706110220625915697467551893997980848772213482355599891035449299370854980359090229662043365214713270371006836266635508939139364212487001955953586890105319945836878698176581456100109962304701141565997723750327490393435574293205253086981337531639930676613682825359236902214468321121804372539907640747303289429548995005454439149778162154015658441940539165164544867870627438142940195205149468498411305996240161264507224113071230252866319766679769407404319446800753009327452169898730241500091181276458293477071746604209796130039186416914284087517556218343626983970641797717418646719284897072735537117612393597689719200294069412939801811447912071958409001228578638791425704543779064092767997939435273960441501656866417801172615616231239009761227474914838188363578452603072990792157527475536446195584935085311957420265307928929633759621304351992495542757981652675701036356154678278104373004119521022259803902504715347427652090514379855059818200160375019993958488998954789176292452882901064434302373179379676859433966647631718904706167341170484280844584216049019814366123641959312690836214055428587617846333125129890172301891541161835549376077069343939372368159012817647625633857962983886003066884358894122725463331306384132130151685949247089097894186169393328465121481858432567026045630582099598334313599342048898171636928955668010338208487662801817056787567254073698442264797108106323842009789073329196366700254830680620595729243877163458496913766816199166957240231574410589699908086838959436072826133455570971983523471319451247142908704218138974758842878301450273333548092771430509245510363192878235606484941086424804636840705064920869504832853545141545978303769841061779395779051101999936898638196103411389848132613598762422747500331133480841881257733824531729336652863298382569144412740600385807241584160441946743101909724579902729457992820513942085704685911499669244726027701589671549454737470521711952994135198982667040739070241781783123230037665171783729178889867316957811177206198910548293497162236153063730870432463268717298458010638596636565071077112243277468965106668474870553480502923761722235764317250232060255736691094005148184787072467882785099320541598237559206447731791509425112162821369975421923818231409158949515450613659923233157550634904640748436102420263016621114096713920006810800515902643378619852676299349354667126366717871701842976951905065547914353386485731921389005936813586529285858725828005220619792171965315800311770068267702510139791973330049279230954538875638756134598656049802897140729083547151042134983883383926274117257764686508237697000644675161777346069940297787319018727061816025262455404850135287988736159113619116051595684296473388369482678970100719321473131806323527685518515813556561072034548417341157498797186877261383679739457819271889206094208395245210900081316951787825633926809423604235354689346733978255088840834562161719213659953056213410812026653561277389791328261525253430642444212588724323518547263899019155628148147775295608196179278420091649512762405873885907566031370436786982917375990377892940067247498695537009946273162626394432446270255639056966735591671786015825010247985650499307437864908629851992143250679287065194907773633486603098366145355812758982185971947711251909091421796721431439579051567101791569738406393255531880597858709433306536433494960205545018697785860939666978570048831318387513604670928474927179179552981784605691796489304062479202612844485412153428284130377135044168153708301365066788313271158588877144531625448756726231032467623281295074893282726586247655782999779241500376788198895055823371304216261560004244118434007805521303887803473685739655065369379710845930086952561189103546650378326027433294392012293592527343558213385366263296752202791465418568092705201812891570375418641810856344653939198261426803654859322003333894410491150334176608496074841579033999010836489464196545818639853866506442933258732084105805612212585083309736444652764072064978182441549706493467204101169663402392860438356530841196876932595301594048173437620602034521875118493127981528756263341261266903924849638442838404758213382929031781671691871459955666635766835640638532397063770420379271105096721308991798592555940901818649601372044407526617960722341823771549893979534788073358692739031730682416908396234554387699069858829557791684685351651538807851650352469017568834047150234391591346597453375131026230785560350255114078280485932231638071010437732679418309042188417177995486718613545565486761117926910463232380426211799261193441588498160759673383917188066374260734799848994278487653631289667923904892733356438251127486957270806309292255847368190879782038823760095979363197088138559528146851380001614808345956150796778778754792871150973315973293928662040460872981285194145628823588744464481446293237584297114952469676315505276368519830166522638387789219895301962978743182398827114881264524512143162672965618823118797100322451275351496542152568806230875113791060875992554263970548070421082195310877612443721335523200058807029960971704611302216696471173649827495526308923963456447971145239869116145596928491168453458441244777982779336619973830450825314395597890690472787780680519956091274079302257209783247079084805708090249551976579658194341932653478432093926143368644386236816104723915157917389494493398697291517969429027985922212849048996444721848376485229567131599773366967212335113413297950890206413901509813869219227575455787668848197766736493278131833852078910154888442821469582321865963858457644093923467576768936860683867670736732985718271747270632143601066335858092783707792217461775360106903157411280802798558695226441303267412837976501124855082667908405577917365354012649673505659532408300408515341094022183602491292113464041131415392617047053019802277512531700535300591446104123440892056542605549075938555432123342632617175816052746813400846357016140649237255739860164975034974895493777008181025007630101325722481444235113178018480055324476284813230412897731014665119432272602063892609099865470070136810326377914425989029744703299814722035842740693538861721771647279353389747688937702341160929217739940023730674934086183496809194411133760821614439126831529075823450581128148038289299131295832101072131157132666064607284214223487246362172983088248439783492380932295755245654657610134695032225003608504570454470059059355370816262890783404547634775409502805574733000688296253316249469126521540412861221789675648454342830008381829971886581773556151148747589192164436490782321840222078957697793183578620965505038660226515549304857096605248922978555663743198355837194036990838757321372131525731648988622123922680270958760399815033327738270038995687898827012934369316814134426485237836350599053363197671790080628462948041038705033482839665970666531895459921064692423679098352435770107970042636462236937368445938434073030368551753865084741124828397164899238674741529784097381419087689147743551975527624444410819592707626972147466131187252113907541772365286753692927010950680683375660468153034423384094770569908848864409612227053333262896195293763163694314935916434275804893390514268397363874981206535780901048205029441085031502396876079285605045138219851839916253976949436715218784820653703711641954615283360678577274523400139055332588635850592372124462176008693662045046399678776197323912492149377439105361049498945181217688775068472129477509977635013427892138545187419163106031778206493434715719863843268546326056395607762613543006652417986999105064272416542280311185671389816608457552191941444600096769698461767477065140878556002566250214874472405635918925382913069984664993849995091789882523140817686819176386088446911591255635087268715387238414852015174064218936693866720922091577042734442575804248792127795856594808250332777769350308315874488024498872497349404976717352506534945559388090972319409197756017594573373561509033983243390159669403128112940815015853408797279073891196535753571409513839466489300469657111328436086701319710901794054719515105665181909149024649440223674567208499249886214839542229476593205852657239124049748047605204308297066454969206781557379354602249006178442780539292259567361046943743367878506981532085616136705676622293954136417932647773320004240152970012602051234499001753084758505404352088197504327755808331499657782181410849630005280194325327168364534374540453125515771181499461350221636573475160832735546540201050846079630906636802038296966106449423180658859818593170643174292285595566846339351613801266567979858526903861469628142387691368525910865540317939109226818544518110737161553620031277140806494086650480063833430029256040864239337314340542399077867139323338279717666989785088528668466668187321240023695511195792706928305084295314515618141550216559924999098565918598001933612118192934823835668581199420356266246031424943490723865796677312038410318582528440422289704575301860624761845034503276322432597041794104792491235484987713837197619419605777899906124187922991661460685213204092197539976943339167665420459890796437172014999891463770793489134543837178750005875026681481134919708885963150271098444468128817149321214594878279283260251418638269305444188669221150406453786290785165668074193326139418131564128466035673203845281730617751346837691421489739709896296501149208683183999462142701430788821458272981716787460293099318569725459330601635649527953131037381716552152571276855394604408839044955615154601448186033098494121006300848794722431381182532667516276256203038967372250415272246212907763169180871049418253324756383614260269352835713937713852553346626382828726648386715992070249536610220105730376579335903589069862605003089920547174223546786748915336397282627257502081342776705327768323282989443412078684458055854191553971536789443560321454433718997472614074856144322184528809459277725302832207964420214575108377715259906936116450481403055005822396813256785028847000082365567519552980843008495939212459098918101598957983127031987772682763554420508515993959969393334586683336890082678683893202393165218484414910943794745145355957730623526656821187543884224016246425426271211000352358958460994527171061812860887114022430639416851535905115543015933323742930558409100701792173407392292431467543031760391804133461678079064054394724735392953014030591036213375805120513822043753245357132640896855867446867617967449869782835510209837227914171843873086111113955048374091580639876367946178175051005423827617598430895161982398790859892271587185686074845135337887967339296657925821863001025966654938555036172142771576358882272699042559434655409737537491427984246227146496780632076013350889957541360891549602619371860689623422695540995803302713333835559439816112284478108829050398420458703233164338479636919442541739925007021936162022198507475757574949629458849857796427311409595456617112702310883179688572752860870639055921562227203999106670694407648153149053603873503476257447453687661040016867242151666408836292262283638347756624460042127578886574537188178586623086064892614977394028534902266309243494807939730241817586490965653684545814269984721211803696079772173986974974656204818368952285782495722755680698340530683782756733753316156173103537072643550026394660385322373693777697178500017567104942994640627955611798309321042781039022287085852630977654997017087482443354984801153917719931631930433608658963280709024753439390069489862857194602213656702038990341141759577845345157394611352128782596920276515715590415937620764628470571415054590263795728612736743629270236783582659346847331566992072301716735235215747380920281077282467253303168469424461358460479303273015062533277418297769973819485475326652580285337453780190250183187580725499744581821614675802475278631339553597413194602571944031707230106803720217296974478355278542893774986194493724629587670133709206918383813907831513395630766465547063116146189134702173684578095509514061613430730498660973291088797066723379252796113299525903532128411448573929879990681682675193944348146831276253026704437691333012135214830062856765851052945274626491293918708345390827264413296487637139228793983875908064433195707021961239651764105208761797139022481511542601780255394196748425196763352011734081832240907756184301203876445649072341333054090046889297681540736908549031368712879091597353642822975955599210212681237037146174127714241583927397655702853429780785539760589961071877132123242012311409372820546760138407110797178375363686491385246078018215970957404614733917455735648661991775269143400752554082303492724165927640048368255094772436668666856406706854012470632029552466483417978321789698501131884540638351835122810627857192397537632165794713638179315080999360397110632671046767668624401946154770759465825893588780548806145260313372886964697073316577886262143620440573287298054472013947617217891134201853732680622880120688949932531623200319745590095444758688035417110173834493085036529054977269178864452643968179994027781925399612770299014101047210576661959011526471630848492678627135884994093487904397890326853808119561535999261366088262592056080246759176014462177196983087137083941577712784181479611400414477687863924070264269227141412925906232801151061681119906979888261524338317516022474767396653379966891503791196864634867637615943176918584171878554831944448481644801845187262177369587871189997529181766731609950241957416927618635500814958257943137192620333223267166637418256222612257551540168281386727997707517675203376680207412960819824187038047613532296731977558871813398418954443300522021073144116517450156957415284222189094079397606183190711335182519418776273303995342698330910295265079620909654292139567875312978154782507990523476564307284361938891818644634373851078645418370710651302923431848802582444305992700079572875776438285792464534815124279323770857483188096587102364171911700184696473968581146262201443260092644816775334553428676863100316457958742411353178626694730267079704554499259442362591912558263278406606639274707233989704237753881317277159403465703764531626445093424240289107298630008852568453080094709729777348426910309856109037826630402771572180547306507827278461004028822801174093074565748864411475418339668111476110070210164672386626929639002083925467751945270683462487930196655877450810938128194454316857468368612978260381115431308999702533537461947493851200454204840785968705425727193625949323083723516052974126847144463614602655215738634996998622711103730891113177232600324346606936255834965366368150581526177837683800500740885863559565210813542888135975927764886253494099516253091847543354754340220418944309546506442854234985428182507293371925697691141872578139195508270425069804886023199766221462781243880617906748670931796946901547712921051458791422847674318721760614498598995955243412152217478673449939198369564240221533646493464417829283765679552002932947513780207772681533393778144445620007461988859352489516867026081332395819517950581629300878021875883064122633414189033916812650364175488708402326264167873996886535063879610841515610844827569182642882483865175846971004066619889971925621987738550908665874882050891805186031358733512168946021531550286656947017736330467526820959485153458829504696939459681556982831544657710927495444941072155270428331310827220582670261504975894299558808015906148842946206560134981240182505332825481530098217684542315940961618024354021924807895026542279478673048409202381826348442365325790229197788913269048169107251137916059232424467541389667599503312828692439680861949477003305995833080625604569777341203671405207341743421647182377616949542560424306590321908517037976152745341012286096062995227804219932695826308536145935748220563395644831468181664646140592524786466776719988203973876838951131020659367368774473728269162095188653549632139717115376890491009842677047240479664999735238847250748945854761965671316631289837593306106398541743230251174585700131229693466275151195192793485763716916988552094986530317706995856605896658073528834590359484592877701537634229727143722638508104809216283596444789036635687668722286341736398778139243026589720667604053990781451583444276372235449007840290725195233502376683608097469171066711050871182785277930138999564088848147007958464607838058401199222958000695000517211240967606211785352876465825785600727235047433971184867592098999929589001578362113304765241342719300513274030036871890863993849478579099106216078524046619739496698041540323879424999381901162050465065853561216085872665020028287622284693224627470975063934247602020770288861952637263078074418319523076136783629566531322304326482078928302109768441518620609069043037598182172637123761752826326329900137280070364189074748088937288012917045150198468465553387074996806836700784987281061952568332772627900948549526917480662138738261488810165416644048231812093337917312847009579511405871276237706606944858662764740409394865518256269834219772726045671054750696807862365822886694866441483519481002809797120139739017231225605831537082460977394084692458036841215849055619194017590225551501784065141086239100300583655640115807993790133219940759332438953412133701188312229195836683771083870147361445416914846484143635508276906278509468949905466391537655222842026009577464098214109024986790099895068397004664650168721273930080862933999224113951630698567433831481745599055785385949095116814701045536765681877908181476864540714798451567530619913774727624196977918626613731257447129768504817206678743376529935762755968917931646389849839442217015029929923957462542493621751609268713935384107454997382440105657331893109440814341650221800069661529160032672197742333072449060805611963821618147184191077765079133455091716588583399888924987167529620506097219559516958573568573822817012162522935603168779814817913884038644627752874810574920165711727177821801990535525571008256106833083226254868904461858903888604112586208530991612041577020017395754373034877891662269982307655196890989061455260574874142273545532507102701166252398282797968756177904866444199184565577994603360046106646492752690593380715846844415621175356444825523771558745477406365193312314107106972437727376820774948490467390964097977598822954157490496845302379005908888435887180425419292287192038486622099584199260594861567510487442733044146322871479705697252566584887768713563515382913715030737080386344507453009336550319933196661723283599248796163413535491209244004883526855554927117708131228587898736520127067929377873324574925940216535794010667793435639020084896869378139903102196571946292655726574284988986869630646360936157195183419895494767781996109299646586978281536946717300483206355195881151079228597164555602054311437522837376158916393977512970789753846103804379086266530147817299047780447978636586130310555380492879560401283720612862573128688332836271537795768461810101085800237608432674831336453016241731675574766782659723731475036389613850671154102800332753372898943558406081538987764594439149547439387432647329009456923541198748843515373222846381155094605618297510641724685710791523814306808317371009407956815331812080517139541994144036807448008447181299387164651761804472433350881464904359585800587163358357023508273437586800344385707742906183797747629349658163532630109613478578843196214806760863729439382830529786384306726992920561078949706878753173916776384801058918005012179789270471635132139334313536735689583505568886892069902648273567654710600705323195945878083191850974434528865113033408094158104940400516893912807242142190452886544465170158909911446314542704528335345817421967786825645272491750009733101816569602781911291477503205456910116606877508688989956901377940573588827276093040301547343522173091488700790424848359785799753420469913491946373052921382901857048074885178920878393777290729853417557877413662229374788261173835687110446175786053126718822143082107328982564604609815591581559745116499099083431795243877990250389159434138571324596553558558505007140113078698533506529454075437338072442881914667845956467873151934900908458343126809855811802814958605010519935491542090732421379375135681291738292831384320231555297665965674105793182916666239661950976095495265797672197332260977129524743847302434124553364277126581853595845713712502063823255384776793970359330518683335059649066560206137371911897607982889833575020154087212964143721606637083557648251478962329581112811391053588595070773983723252770231072791270621766377873101906539862342680412593632018890240194037531152889479909614506523686487873846050817196307311326666794390160304927880938448013259366336902277496610323631843547489154633342480384619241875420532982089110897714154824616685084781379241572437910969125665569925948228508256626700875559144670469316097234887330538137850736632348696206222821179426131213202548965656651116547816013494781067222719782519986567681104448471814866839655564856620715216693305002963945212962234669394502548983610455164129017955459723423509431473272907372162532651633588940458228500783050877980808427583373028280881268852241516048124280182767938312383889261501232568164238887557719674452197891315692548619823010797250888120783438423429930087462408267798109990182867794315803515564623318016462775390413608377328363108039941385454309934345983812876446826071667630102438847020688730232045231722310292594981219907427951603076231379701665995311681228152529181869737930643029926773870623114688394411394724692985026312163614204838893360872235836425679073712860040698400518903127204228351342970681394225360630749418973959382177773512711749958521754119391703088197243179321243829920803395078842551934691082123603548422355578369715171988775561543480866062720775968790679973356553462929889795389387201453786874067628220219759320471406177009449097687951940998851021093124511372086607045152412819892237260938416804876510733422743795587132815020020140113283526534868044070897971849674055866727465040177455421553378244419577775093699477258991487761251452156419791894602626888406696648058590579833087312451538806378940371160794181300382516397159774841654108684845976014736209878878258266072394414910325679237673880974889892143717786256500941639241204644290293468849752881894605814766403264981180985367404480915740218003947274823368760775181778042883581158343437424598204616130167388005638386026313630922478397349146580607426805034369048401158869625658688201697167850276026990254499403740419372679435886175033688993288040717222007678473912906414126054016199024837107068816478557757955165189313119326531138872042846548720960725611692444601845810958605658278159993489072734830058084733110338036680101873392922423826621883533367424524118547335552063526416221358692530435058108800623509084815132108233476143263037391742990759798653296816232982702257507769351760299939318044038755170205795886993181148811577119572139292496651631565072880243136670973329105410753646979294713303409090766297781084200821582267189869479500303948239553083922148803501324551567518860443578862433892410176879491548698136154509588159478992545755495383495203764573960421573049569356064314134076345321229891980836881397377944505163949859139698762949042646434086782792131823971428688623981819357334477118732737384001910388234518735146200247210897841901484058681251290607436199588686734371901643150503225799649647797337720338276695665938927084192612818781077125303977217242994045185389370744716208728661142221852620040991937671439445909470866590877347009256759658303972665572391912297612605048103829307042514946104254733260353212339463125182285980910418181579398613399106871407620092367244262978733394207328547779720249579801951793049204587003861895340214481275240117612490161310162119235506965635313712363332287745984622435751883182502666642016025154979099817633857962106559168432228321848209846862848666074047354117915835867810947354751744306903859551812423813485718570090428628595311837051808347593880171900347905070167975019706376171018735256899505254667453510702022509984776705987558528709370995967939192606077892888710952092516443523572436865364392125352266999077908609908126443130989616821830417261819841260524097876578594245656682120120443582035438362964425781772385195392683562863276075286629569254691304019566514475799164633350120073513344692264504940372052969787856240146374355238671420968461135400037321954209176736384463154502081318014264525758991376248151354445454335559341032939749896404189250168641441287242649220538594517008055813079484659075099944710160396634753368769411871260436231665264261933141679827655638713391784236082176698390729202620838313553950847397431087463478084059360098372016000843767628012615028182377630780419711232793427722100591461835987312967916961499987251008668828436791026719397234419580737533345889606827362731134660669248555034613868735351421875147700619898251460071353811796536155456234761577934975628099715738591945579554027603277626528533398277436610624133513127583553895237508685905046408334520601767900075243069347003060444689624765494945782015287193278610376070289298859431872266662833190819135444262304499726315646456218719428483677910142820061079845968424015019202200725591148520803370003973628045652233458859408303639101776230248637748449402292905949677434369384537988579376499894521932795800661322520719729232456737137652414270792202996577187166808775565818774245569327797214511811135927242796561412690522472829764367679015109963549840796997709699920254298052750067011654440587204615408409734302646322488700506454293289258610616555416136228595180463675649053702436561494244378760310110709872363310082259052381446223721685145511622828291045901008753836735752360527781247721620448143878625737354696142607990150632341576918721034131112569648486722851572435541404481612800882513196842684514118560742613998491091642078014771352717255195219737546211467098492251065758806207467500943026897054910391731691393256934637361118170347331898600068343827590836614480791492927741973189055805677982840174175734664620255738490464089741125023843487192752427702403292551649154199505429750514720771860992196101369406030823736848088684524521323344093495313747209826613954357038238948924495930033730215535949884144916561703410160054051157500646737405800955780684362611069644111643126066226998481874482697901300973947543538641680788217712124881204337230726592982405453789387316817526728369560580596311349022529903397093807530903660176978197964685437375686141586787357040031316058806627841471820675391544589646236576462681297656117910537578285438359666365978103043926611005418434451837346666972805060354077061820737981040978412951180034986481822577955529951077890837144906463633859380725779844474376424891810051060694011351742039152932426965753098030829117754268545608918929743438675961451392047404621788958987442305231001400649508263753905182925565181029025505603571675894005220898679287552518307140819135088637911830118069557641685959363131246605314762726320580063305150550957185202443099331066664210287932242215390584962262830482530427235714971193591819597486040712576557219485407373314048593543633893735252158271984823720530605013434132062825835746938510954747402072563710829334970801400644163257106113525070222126114351005861452526522544475378229515268308767028067454693603424561108996044097891475719447883813326286647080862969226212999203517978873993271792696578025253173536544399218363409241278356994474389114731187470760713069477522919065616750703607372868288919564050268501364196422005083795482780047381365994898712463355070471701457672705512223752432713834373251997101484058328624263660516326179235286849718942107032970148110693776548071077164806403087436113952653155357945596406112394243447634983731019959742141244137448367801038702055273412374789256399505581354896685912885363416916709458757363078323700219601521642705490369096180785313188345041680847232193057103034141127909369132408359152208889770186183874376245880198871037063211235128897390573044294261757087859072611005071748232856800684192201863062877108374577806231385186331351734131435641685358668485150438323363842295714527869993108772345968326943575346800356228184627151440191805932756115816961833480928200675962703319348721028570962509219974458185679107902675694149336251456431308987990944927760898579982705424920989668635862218400860273543895939397968015684016364994583936930929162138041832457407186410886746417246661586969390169307979485266500446193517277040293130274093180205309858460322426616715619364893051946601950934504921932275546017389361046870269388761820936148794860024172845382672988276444104116738767019694484901002981939194437524943815769052774242918886771903649037288114031133248414739065214425638654742758985692218797786221975064946425662851388898655815531386460608869067718220539833680690040625648236419118251157161642717238783329862650779195129402827818126717824415720502781863435601373430391767781474226823912638518551542100489434903315150844036439670982609778555630746982229113512402398545218664397741548416605769691273755876497273445978004530876047885658743425620648264072450719788584385931728532735174515955769609279432351583854264883680531660935822678026530694479384154425519985635980136593803444570459609762908379724804538934160441073156260659047779944444857865897136171878636012874584684743653851299328633013271440165360443442483763962937695478378614160545710345326226777047498955368254865250497829320266663537365460544362811418647600393472047717119614109821516379731419928357786333350225265790519362537623741278942927235651989234906859031399914546049315624159730984209399037768840194395905510023555304049202023160409584453266287327491728555812987602239036900709618011310373907997433549385299632875042374544744014783570040062462530158961291672746412990900386956233652903819118974578366734687264269378772474555406934390226493537833718424265930139018975701914970938884086983738682550683550199764466050460541367826350874078826785653137473475868847716385094896702629010357442998417410551706723356635748890543315771700636881307718513982577092671984861461302473880627000718832499884162734086748660398891105230589657995573175263055867530399372009937875320203376527733836802989137222954631145277445324093411075253406822455095473162604094829331131661743442171798284655458862619626732342016615369928992448367260546358449030264798821593277960209825444438030650197695360498645520814107866038000693326494671276884019021483927554307294443874082602905566843818951833611033244451061222828691353896203670328739430349383560756945763413204413408221289646581664362795801456590133641449173456128972717385721098630602948510613858160166591352272644443358917412912045657400659668489682553371098486789209983695998759656803194251332254995285299667870310917828344954457197512240277703586349160426837439903557673570581836097628733899726237719082088016799932311263707353096959839824993993823661230559811081833182737738419515583799236730203453500618777844907299313335453988927225474368503758517461809661091119191256730364326862928167856980442787733233122875406152347547179356666671163369961964355499579022730279182402532725445551347327626131504659192187124438684022216402826395979790973347591332242634251729932491061871868765149623451033243055624916156602974604738261316437363399011397617591148493237113213527301482692999648975342602850824643116366211272844075139336770465542016728098385351336801956544984276103196678404526400570789076700768477091832144867112740286997777650382614739697441003556386129271278317806439453591831248864971157392985290290791893539421337638985817516376745450634193067919954228107496986530466085935560219104595528459758550432809868952424386396498844265651910461493673624786547774100385449267414687943675873407973085714380503378341163602144118277504108389878209676204998319251153967081459434409256383328947122809258075438508909224729673185200073341844465994409887356482323211753463240584615029940226461244217244968250435112464749607684439805450353920938645343444086885416727442351941597340560693971902659058240279988359499790484776381395602390982040532726742564705756812636562405512377834844011472849921313110142584749409787997288201191433402578617845244695074391394140456831632412135566360645849078020938408224418342331897835240728272392400239251392391768885003144294010561745722619923085677227424637335705635008859043326641127989371678404703362359397799335243682995345579379380558009795156946116094277654316713026650464425727274848883777687745309015683569100023443511446156196289838422484516184894249958219974511787597383107804738329885385272575765776238467125827052707485606421786677155771511982439912899765633455538355443799314507797118804947166321832391901916148333770394266077942896551474152178605078089684884146790789560318932802145500211877362164864851859112437330124162928037944820136233012779004787437846336579924407280613625479920641369473092155679595403587559998940929979819890032894476243363074207012667081430197411909515834236643719116315384266540478043907104332556075486337574178023251224776914132238586167250569504208142593002580244342893895475170197550295729482418838441709913609096040424764367807382406009712720951919859968365239500269768741972294054467896282086121730622237686820303981584991025715628533847608760366169924464767960773559709557998838852887000979011107541773158829701257650736608793994396698041434477128915670010751046347501348312465798185892067171786998232433633158496957292752749377962631484338398743986605845642214260925875444877911986326797936455915592008957612517265707903373778168563699310625314320383493599901472573965438207933290204287099666381380727525642896530227791200950994973621109901488941816740194477894353898215902804606380846183990077047048256636278058020774092217781131928117912915336035030554122411876045091524454282105581387354677706912862495737571234864246715807342674700232538891680246157489477492269368863641845097338527191051281584247926581005433936652697405204546758391737463230492071062557234234159365830717607570647807937748168922689155184151315673134707472077320481033043359018507613299401733467423614400637716305763702926256976695121862707653656909022825924818375295340851716400144003049898244444801570511393720150229676806134305351415130020093128096807202839242066505889161150415708129537640212921894328023043070572629481815494507560581541021906489561551842483568824109867409932066289595742132635538124605774465850948191202600352528507966855796638428151768961258928845713723580727789737489028837354059408095609763039743655922796739703648362338091994066520449597499457377004903929519637354356269527010370322293483687523266123895071353220955053987758918896207992610631951742936782990275145658812575095195103534513838438063491635412141838153831511364893010055085314264364325151754698046555185994631182994499853997707140183077435300776866808212066135774517064087513214718706542294509402285259045919942652495963241012547944493670929255467000335926702069214933692866485240994923401877854398399556430068881940457262023396243399845433203656215291770843815935292687733333618694081110436600981901393251874279452860134263848860908845392548087438180367434264731736172841291926852421370453196685453393160459327687852354897533359666859715257841181155904114655277484996758830897225797069707064498585895167516462371465287970807211360787604593774933159184508765162528246953115100387844171999243591733113652362257968731355194652306047385346415171713222200109165841552969350473522450012061587931866519780921738823365963025189931527831946420953651465712715823388791620427533080677818956385637760903451915398093653635796662605294022513592475238547662656255137957908894857188352819490490873632799371575917899124382854740194647218745082371253489179805064609568020316096090734535986428655778481054858637313428435324936085968298179048142417590125091649457913234615964899728550800743470492080122621705492681770008133850411070198643682110801472339831922740847700835537948838871552582756622608489869494291944397765938662943863569179444659514227387631667394346841488649655326903700620644111349596071966786904707399723288827245552351639064803447923498177872261429394564911405407155806450604787405665451370391958444360699897231521464141262856467828160741224977338678305127765508642887364853992371938804231914862148833698471816213122247297753560898086499528860800509079761017240094931182321499021022548676732498104950732109169779211356964326894560193718537055817056097154128493074554735821526327305466388227321473933864578495696702057262776444374038392696778512419645121689296201517095957045950833881454958779653156532198687024826179898122939049439121370060926303947233201813036879048144341370382468915465069854058754681776036119947934978709929231872632387246746841145529966768754226778837453335627183172282982978419462115280267906661939429403421728597051172418959702347469241969765763772417491124060616944612958919544114428087863525762277993260081985444492110370853181575014901537808839899305288927498461568806815406961917800819233102520815833546190157109858421270115556223805561467194523077088997708635142034171682998614960884021807491120013562034053666373941713491773061837371727167100330941031477071996379507198415524350077816870250620677825986546628536547870380510603352442613874239093624275184063712151373758370631774096504331187015315727758866565670650919737387596786691301528063005317100836031947154588237843380377197911073656628952624501360824197751215067466919680255289706942848416035509932250259738446595398475686738478166275404714623970801115533464811149661156972049393490431952526406266285962219908411957515767482153209436529419025534138844348497228487646832995782597741454233136054903114959094168121911596712597867065867528719682161822164083788670081987120046117287535413041199481633249765872419056915829594452316057188429954933235010651820095385138182053123489830265205273080799274767708226155350802243127259163829575252591083732953940074570019795880828689744653019616220850943372182370647400859866242041798541686401040102503864026651358588561634016845712112814146278356314578878201803968066105009315645451375193483609942149765712609336153470901956851197606603139299230037840705564108382724308889386921521612943378156070902738028735653316508030480955749770817615880190693569937073005058757694623002617312073191222493231343415356317572783250077885367966820946798653047459106548927225957671661703186459625657621632503385466992311805089205225463496940731915280853526709963068270761227285129240511469782686598302876981154827079568198505002863943051042254522184628831681974500988953312310318556380513044654816594630735395943320500316436575769015084911664671964035643391734418392322562492913762949984176893468730409250189465035247759778322101830495929387061095955619633776168322154430663207599168583922288116456380127302565772431833404601354911150757269536591655341628015419797867796939024067568216873807703369384562765946247017294791336009184580388140786126966147181693122362620562104877601789302147217529535181192126654523013070397718930430415717723418513195635600156113675736914367720065510507166799949662796955235577561016837263014766290522984521529678140110746113516708431493732954146601182904532442190531397475062088580784386892325570000642799443643181798963981160367256393017019231878197384481210783133775008626469990794293929604769757119980707046126069569369457143708764372846071507504443879425450693318254146124758882275959410561092839987611747405163216631378575040306111867428688252052372525618600847653919462087192743646521861352177858713617709138613216112767103376034219355602972898289268874704320062170593582806440208198567084871978766405767934581496469676305231891878608510809816694280746152836071723478995992495475237652336692733594217070804296150973159890533007106829468887718623732705932345877313647029863552361248923486607342884737475027238594693752005026506324132075018625203439771646538636523094966887706616751293409787383997342273699619128120952674996241364845972046850181813300105591385704339248463762395417349873359046494928498432288626564529203506891014548337604557303139779363524647264195643005820335064321563223863480083537663283801359632317484098208391321942238568382081987548442183062589644068717953193381911127485418814476758934353557279399723845398251180638777517026661247376640922466564737972871852018529428135352609251800718728493114788551901052311490206404299542112066270213354816048051023970990603621285960157018629466281569942714486672115663434157878815823964324707572677342472910442080788725824978754962497654162795272942670490783116305118149491689395408976527587647906068212311979995617297257735715514506051729557486755290277540512679656101168292361955526654645018036417442557801936714002039799133944233872407654176479827838708171304144236236932153151944071141691832941207393890097780286443432701498276274909357519618546269530844460088562021575963806948046021659839933741521668714558634551986323936286238720813519394536268264633914248424397312618508168904690345283730243901337543838587219928866387265574645361591041822288610944456528778932519417546432520331901475890457024160362580144663032043359278425414119446742034669253609649203779819054767512152256248541760589753244836450726210435070882003066945196157318219455889140005668280290864765700738803855043251788202407923522972863204854424110548636807602694411264708384955584743944225603799147424606602117513225887439385048189634262471021181146739302727346735548537008242058938390115169048400347678530551622474127591400707291644308665151606993066248567081969149183352737886857647940046166222771166952799171940975466734927302355607697033533994101863443954868431147335495318016079909359225372889065905631124027031238483005492975627744167638941291862865016498870397383239647563901792259779371020904373575497956446678624201681303280141087121641880035447247970777121545510976514424683486809808121763057461968827133688492176576189029220822147169402082450811233294670603520559693484675775515344891778919810823533349619767338848808747021971374285453105792693896355582079540754374446779423663281079646529678889339818647171149764598272256915183313075036199610569994279653270354962710776523356687800688189835557227584745589800397682395780648589885751860870114372349527159928665172498637340784553353667926004135434421871174912913399496516598280979074947747048323416092690203948578842590248904512349808424516133441886457498682586172947194619389220803991945157987321487375545984083311817670006819804032435776935188779995736476313284759239981032417092329637887418417053943541649233967069082248882831064498849934406691631080961663631255485108814816846068036911737568170334758381908966575359767694962595713393032635789838734617728863436930273370965602336003973720981776685597830467513303201611832857954268032200303910517707219199251317264502164478054157888835370618869448963749309142131613702544566090227533239842730229200316677822360450938226514154137476513478560479290856993248974548130467226967404032676277201256145540843612068541631149007659980149761198399741972395809955616982571561124010906822642824345718878801531350743120760989538696614690267405245095527786527773149411605644260417929907208810901010958824907059884209849734254029271013953417583591794110376569683961513363221795959291411318876138968651957412285606243714350343492162913400288091375757757661142066551638250354567416321224426947042482442057215805015054942318029807274682717020522124471449409821598789306702775126340264751314064053640200350542079858081422834898535549237400903071713797958132878609379854852056045861365863830598705819582655224884456721215068842647192595481375708219877428026787208214793133965328363696304677515736370847868977184517200961610343430731874390917866651544356188491357770226748030927173718631482572084023143279267056714705852537571845418985587487840421155873190469593227821647199882523131318375789808258255096177060337882479685725982130697415230507877691736233463029485958107624599365688801984774372151087299084459527621800682546537575767878913495092149594857847766834213517037166501667339774140274178512703414746613627395489179449386634620967512170762219721635020222507352351666134691103210418278832403731219711686651321438348445202487888034527955475757732549868376418563194687519266032015472796393943677251279528920742496557198074560886003756049377978145362952636575496518930792522513689390848236488980085896354411683279894357812984603657739225711291307832735339489817136789899939219176719601280189135456070457760177854554070797017898641750917270147331891091044854046920188051867897988301636268069849436824214262709752486149593886685733375006103986605592116658822601060365423709394633654014236326908540675998670615574850371271388917806588913435710366506831554265817412439783212187534331643568508241186564182922605870718409922405553035331636474897612316792863856468496368098321422004170289960503965648579064955877757956584349093568951452802971080691568711948145588906392027919540467173951081515051978316821954683876654524118649537341804745285753724213548164012359148854121096844508529274522957367969110845570006156195352909493959296174535832454713343064332300355266088094818670251317392425998843261339142757698873489420869638376540883708079682571119190102152996550413024752333988435229260067988664094127688312148622426655862668390254049873210813625307593883906617560039469906275598221213388336379142856586669182979564531338654110243309514393519326206876410762155872416130809809769473997683329227399545813395539517062223831302866720827337604738924044095749274872719517406629916797371385887472318969212233437696811184235250781131601278711714181896580217648383779587264690309096815813979336813736574815391145777660248719822821823055547446812680225773714608334180534236679825992624896430467639870070046020422545943447526226858792655374541505468163985460705749801976271594838603482799065976810265237978218940749876310742268433490488094860748871992431796621775137613700600769128061779311675768940594136024059521413826590459600024166944767904064414023248061080300392581546589310295123321759861203063265519340322171279266504737764006370035739642821210705291435381134906279282003898953333038397914853865836612346373590279696203338434579339226734728345144995111553038649755163370639727457281531984479756834532322160486323433985715488613883800858900317466333389850829352798546913861869724824337709226872977379184182989570292874021058562226772500489592741130054078767535808607132706958751227202073614813434285812935108903092788060284795987015352628701960967644919443901678168690816596631213397867749297014382139651111627352807422751335260151201647814123946541523278959266940343884675146055647964507239567437519987209305602416521913206280901857060751501917033014868132802879419226973986706298727239813048577081141999423508980538407261327076027373494464019054258993253738806964675808034073961723263770285647124697299385622217947265132385646203450821115309921391388590343675661457938583047554400299733596352638001917858963099283328630765201220402530271068120497199224174708044750260840584313564571911064981454517045824648338545450855968836250870414494019283444554853580596286329125391124021790671337059754443066054569869190512768361482035207417738299976198176930302937559637767787778144830778989308417309063133316325331271404703146283810965528580310489459687251405169676492233018768627951940324341731396165743915090623138491702510995981424260552285372145683067256714506760685069321944015082364535412955203582149294530980547570234895657930651863283956655552299529970279008761100870253606983335142512062172372728519307255629530582461333610207046600109310059143999268350572621931439599861134480416183444900230009321343207229756498330509558623127922280657922623995236029936349586536955944117163595944222532219126269359557791864558764808932411381203966260527299819075274862210704217038992699092128148105831171517792099400246024345194498622171507255952050238847638183372238081456380741504977027835042198834954136750084474965632052386385816384317438247241302563876874241951983621895474808574263837699714978619862152463926551681005980885905062414887494928838632792103605078495526033351141151362796820969596034829789456267398906113152862952524891499410083162603260631298920510929064218887252615918428449808943647823398297067062353802121009712971448987200213150908055502769705640103490756076394137140779879731506333967670356538109330808375449823907648708415394382093198287219300217875513240833805039633744287474292142491952633991363325317727616229493385259788364189941811591442608347956016987452692870283454962048940750810316726747549093893739322938393922557502194703263622227729978890990926855864043675148106164692450990871702376691498235255235728119194184831014705941673262426400677628475617755517794686174945989272244794219798092733077787764162073215914510749507122289079297398688806564587046970350986714132187567103144462079936780512912111226638423737356142912942643604559068018747053322448793672791998859700853707809707242170970912300306414276217100840478770159907019028684226078712653515701867825919993671743576779373205847036934546747885040132847790154950836795522219291908287034761265502100742458794631038404054532306854017134145967001108640949162434411622403096692302129545191631038202739179828926025818879458612287992126460471603428980410585314319551951694839214199215791655214907557877896390170868069677578686949263920817723089670125244038952248744146799491831010776876201568332167454650610732504440337066945859155674901356615359542027379111486649528852963709935206867797219795099076714908980352229405588663870082373745838396991317988421437554354920512033822224377996071317989585653194658023354708644495810026092723062375854443618429676095488293596530260492560654010144194736034388742551121331653680957971122825199706547532065651594537041411302015324071606732652720974074745727906680848889886435698792850493397727777862601850398478560064030439447190925704940561154804546546950983446328229708506025290610830978474191220660123306316328600972394080083495666439839126602541250956137287879188366357327537422622091782700424430187628951985200987620831767603497852817846636058708075575735539818442640264354115600443428378494246154092326719400458450536340222817208138567549379891694357938888013825107168853644480980170727083787634388155406670553487846379688018168879837753183306783739548997394130492473189498012634500984470519051973292167374968028286233476413408145590346154612036188993985735266228653449600754249567280695927462841815602897000089926228496304178738181732252897605143153277333534065424350582674046576155737466759096948454078778037436257285482130593097759338907864278576402067825880308121080341395216908460047800598098816357359716259597880267596153442712393555378588070089810891621109249934169728233050234673786404666754458285433175110165333403007922991476948655524630195105844197512738931996983094685278025032394953161577799349193064462712557070724474606679038020762913039767646904549431690554857104012885730482155955811674630825256363375375261198929527270689459632235471405492845503723555236797771497126632442698279471976462514694626811552333399048602417794602330627253291133177811235447911564528672769146623552783113694631709680026465158737058440530102548927614156258522326501217083417355624821814265785882820086922542431098993505301675716969428794137505799138264819520268022446687404821611201807091436645034063394649586548353292258710949149846664395339653791016650312737723474250164595544315709272837986067718653742555001187581282330939642243513369454674550816534946189060980335274142985257747159906586459942261211749700561112162426168747440350440882645661139267560266323106140194182726043332892459678701053382859838180339181833407331047032851115665931051623229079871535182783912024153407827024894607765882902012207684923057268898004668964200941400144574191080275285798597599207327976483503012184535900910405712379558711379992895835373308647964790145435469237106496921017291410397508565419639070524805716088824075697365398721886564511133781657694689772847570934572252895695992098950268066774539194717549476472606838339058303702204157080327905179096811579192869923778126521911587968580615533999520752935591427570042422611155239515895927178484924113402353125595459791329646016921547383730767773219203367508869869792760698296194325821761350731969162648055518619651575254666157144514922874515322245673887730879771544142986112734681359566325438770001916360064948761207116765578132918460636684184682608685956576806644376505657740478175533586996684874664508359267739446515949682270533671078810688563725736876763933260760747805327370797111550630764307250935487673604564202302972636218596832140309211852365750593453236095069319916922904514574250505974667944554011421476685669306367181771299272276425435992738997868264050580293296447644693805564954500529377798448879196406867325268371164004115485758493117980773547258843052857003769896705188017671373011892807779141022204368493781317206738695443360282734960418354848156864993179898395255033453798905155632560409529177681139554329992157440584768532995911425180679650344877896029161253974163299047691648766403771702425770337081899243986493777364738092615361678375251577952906791472098327648704217915503528653871161402931090133124808448670378640466980315762619364842391780228093207821890074857860682740672589582050504471182963066324847910214161377806014612958506409767969980644667851037729446073766330185224732181640258727727836521649210932604260635871775919819061003806036629801974031494997451186649817847404598567691200623666423748071891148409645520048205396262749656947932951195256555239604589486602180775311429291628093426368425776731195855827695898836024872657778872884130607228425291979866884846916078778747339162897739843553961865163622639210560702695378019381214257409102850403633567262377294034459979384238910540160965116777086464337826298030152583553051418310742624207647390268376954236169663751288207739566822215397446107020967074463578654879168778348371868652238696362806059184441371993262493893336933948963032782720611170591757520911570278702192863937442270607933706251693406756909097660992537385734939501846836192905185309976277057830360580062625953830623710141236074415835332789892784932123563334806904654112712813941874145266347720893452870284527036764258083634998754023069678175191793928986673213575405151355463633320154601674996098447079138548873711022495725646162750494735448951217100164069117297620657174292439038024578637891759398606937056829200981730540705988061070197804208131565441187157792613414200107586047699366175930465814391993350604629580936561887637814076687309606482573033682034121623933920476194830098897187094140860997256704975503226054527962584423729576129436899037229697577441681957155611978568860875142309736463897344978589770130771567902775094173119020432423159279581248509956241122251509683459134990916736904024949171914193866377157006426697006157470576026116243267622036377963467600993079183786791132141558939125768454805685786040115630704870644188337180871589794414497830647841747239096031270309368746859706215165595388433948547310256938266653811477967541786575512629800978653942485974315465913272156870542551182982723176949730462710642746549216616262953471323767680340655720712638491928947886494643768771912433941625497581257356944321467144519213104639109304774202267857647128703936604540237387668250340964311351175730195681456751496647406398639934761551593667292963852495528162649930698333233172139431855627553251735415236990750912233633556717512291619453752082957172885412000245777490798256075480009942134248507876006811337798314169185276590521797227801393698861760758582355854843931399364476422762746072441523558114295800366534212646844074026466194003146801716903524468184538940769190633419737589720172623075472750721614034468371520305207701050899474256839492832910326817551679405436540529305033718425011373075925765663806385492286279334949747021873387942893341518878675608172766811276416313806953551634147503961287319412345920510191830670801095284561246586940522901141168996552783304189847647611654949206044693092360423215250202720372949940598182509861031247297953015960318328476113388011138700626240814822967550471417647391470469527681109228820590752767218606413905030275733793483480883996763912732677775230372439100396482285269463284371168260412608114176202137842916780755049143282501737181874053090184771554476742091180676640218315164065954679337446830643472073088650937090828146501168681005577626186489364174073057131495810994012617983429205910973795340914638415210241676363144130716539442214161370724872169225241517201071732763205121250199159264250610169039510436890782171386288254096173628501533857121128320261737940655791204889810300248789250174005185014715454240468283506074047393298894591813462232370014725043609030616967315249870397637780585106182254505180870909989760993202366248526773055216301993689607910360721963449611533275447148920584160444060205719532216685486604515444875905621476431388980363370733140898495403164005709752476982117970981556333116019780338434152988416129107100946475107366162190372327775531853075999544064257071543796342323816366543790025642804675826700195708940488847500040069253783838660283625727615126022500068054671770955761621113275955729421601287448420277847483940530849796248582946887961523614624437182473391934178876883994507509093220487592770829371192053613046313031919614848991147244965547663145550694935468521535964511723052316496547820579805155410593096141046594528167801084312420908358496845982920634960863918907019344674112934200753868012493739168676985361452653108349018821391832793491118609124962280133131995220772033887990720552440434200736938029109162076716316493190674413811673233767836337110228733301454851160754326736308477759923968595033792811377979446486139239844403337327481752500164076788773227154051633088191247232303452299703513075302634868682009759258372410157297118870036805485307366071347375834843238340013924504701207515897593350366393165608037484210136755085879944033940148346221092455320950021706278373630414384009903573809369353870607328352704164923438592363769032468555035796155730297393422786039648175636781738889290170335794074566819842446689012841354673800171408661441705205095542945235842082630699193326856234504849929534619149794088129242752551175167757180539490033144873957718003513185902301149757451163696923727967282681306127169852150138220912766982303130632153106250520056586627418833694477537899354898099772054996596422285257805441866956102916514004002957683795886802413946474217071378763964639736515477775183609866184269907618917286196949492241029446586677486862667607637061356511933727041806691658275817881055816065890095642287157013476352834047683962912326682630370907411868816069128845038066314572144203211617972411656743365212602799179639217453734248156817915825700004425935708077020733913253252567263272239402147268752464644604058397027414780930734940442015591087269167087920544575124333867706917452900573328102099820670948498833735437070945937070636239399310945096616558841658559966961949938021039723397293774643922343550826617455058126572744317747663153127418104406141445641513458945927783870230460280084532374230580674168220379379367227741753036260166490693312038430435189089410714243790050018399906165716845354736534754279079097984508102549978987624896989498443268082502891516590621468794220524458900537469583338899149051270129166591876968501185972266093276905168661018595771156862344322259402922722792079463856487509114110071767312449981633942030247342556898742120202305571262131624066298923666510255426558017487032446063909609150461255305244340213714024745293027971230766253635566091008467377897985027148500240053494707981365221083971901576291896917237203425387600080007710819412069038549612868458699526822081267032664058170026399536504655889283327467394340753148354322591155608813657060358043851205786172979262975743342610608104270617259828273877127572194551159108488902366655721552360959762757443806837621856207296131097513697843950516441146897480917219976048235959530485148769779895216373172447427064443602699644015350944466797693822396782412530429434562199011490232542564372713951872413961517106693024493751854392618001598032546786894858026468363280745077740325269125358751830003938276955100462029677461590341724661806083129725584243718413200135285573259252248488981228941541724442473624392705086800715915728008330644913718594918141346838862276149882584665364018399595239345965786634359823537471113302344031223310222431605010508302158893439421069156925265364370041647221173490558770003739439034987013157343820002171311445146088183184470120856487591051072575727252624017199200155508596193304506919868722779009862774465120675742681835625974807944168773590033942044230952907276846452763138690519868852082817365610466063010338927265377306846374326167954430106979660795467959888832914302432102253332684575131556510530283713772237661545250229973453093188902503410170810411221207181488404260533257499161626407049835019679358062172878770573568104737197439842829411124820305294289234727379279547170025880305024840039094604919244549752654971081357603122827551696649644158489472195197665082107215037636812215129690863522779370016032616217499267588496242455777576431099050685594830392156144415610018089729712751074405461354231408996049588971894237983728793387891796667729408804722437475588912245076766089581183513205490582985782984917740185255563779648206617098864808212027914279115380491721937986159560711438504366203193140465398814695420024269706049155380530603924089097194039570134168657472328665574184770090368592114147961971129177685545726033155330482044188103776951468028873988009643137852646088093100954546996462131334008331808359255098768833900451175666917334563756332082203297086846191141032356967352172974625379281840084290991569342617422062449728644921349174133582720869129078781191094944025906717505352874627828799509281403957337389481427033114635638793109593068011234211845497039180942671085784447976923083105327102259146678617960816039856579251075536895766262788382974510811870671541230344449798193394914460084959189686859005515905400698488000323480501432001341097526381587601302446184516253582392637735380855492279374929724876479794850137742363272008039998927764252542879489193366571136763646690637861834472030089948805732491715893541801491509173776152337982780202039841586164164475179086375007607088723353479431618087969817729426503340425650776011619148314416681435422986672237590906168930317395257113435874572705092308373809825192999489344982403372410965410649500866791512439493074398613870513571290387489506542915303381192563179012263498942612956277438018792237130430382247657919339443789916492697921762562898279572284358674550527243153348618711012213504917247853557419033621765232202750366612513681913401165270709197864570462925298919596661561258700967258626409149110002623836692090822252786150856526334858598801998875836606196343619052472865096846406136677662908912783468880304891637191689661937002846283888342797934381522526427903447758819509397464893460721919246951703320433442954835722789815368802892368809362704757112643421177014289915505835967448693479782488891513020502491792515195692886842047581572110648044358147401084466838482705206959256128353593360492657073803739158717854527691586806673489214117480607382248936249111750007706271587759721702940012959536095039738042508461862559403795497603010734015103961144825732080795178023384738232550389302511256807438396916928842694255781110460189128164068552912107101461915104609783572125774351331543980327115925786671482011559630828398883660461045083936712560658158907978841356114801182773595686291463425090626254507323916581265653095976104595203448715427846967046198739324264969866288922544964535927769348953354148884793191458369892640692663102845659208769976912320193648872933886725425916549029722928440233520309931777255795917785950494585634161998419087648343620128086032736760849512337374988094509484130207129722379480341861421281667017139534608656257817633603865627445464209928849114935942225854863334041706695507230113737925180544732617390785988769104144235377205523518219065766493415504354466704598610120419523821546640614225947800772436669096657169004381531472149661058412061836992001030090890434714454716335573709615882506010365940121705542403973649747301657399588069917587267819526108169088536260295716904579634805475121788609763101387530814563842576051166307231071295885560542983727590193700716693147646142526289985398683502530311841972983262432058528085712145793899851442962153642253069252355297219350269476404436092268564216179552915195642928609587256878039740526592700000736252514266626036893849416273634554950062007557348211900171928536216863673458072326547559197734007941730220469066544774244067540675353111100380985447135326800113127919211756957777368008008873346954157985781124286019662484862158492496829894150260357952365978096756991660423056415971091896776893882934822201320762354421100187203316767628862178125540166370914044313264439837171322105274551280481945731033332728445936866162054106818248124409038376173652053114273732094701717647176085694427905529985229621391669464643828874277565326160533142475179756959252955874483698127249242729663284750188470334013315883545283480719071112849541936441143884845332822463695976991484052592805536827092941857602035164481143992687072622763357965113690683317259408601695603356160940977352229072970383536970947662957910779384688988279925770264365474812376569463135026750722508416879117779557490090498042246381439262288991388584908266888376116645665762710927350745417565139975100847222366497485357747660747820627778325008845656666334806552060165921899561698073188604248829301533004559587378073686231892692032277718665185722020419344641618721068260548015154194722306070807856409128840525789492996769621912177290079394582137914087088713639492436444517976738926613967093710606472133528058331499506141959022523057939873181783662832980816100770342676665925012015987163514193098847488189707913649446925613427118695261095453182695540203100954817756779032903424454655581243013886096210436641023368036318374949064243145911843380234274660504764658866731724103551693925446319496760369406866218471858838059845670636043560209544319378223866372231855491373609132190284644640476969694424831952506208936765440669553879074600748577199758815065548644964410948863497733690458609113785951736244722284476466817698901624484949042704758985166971420547628783548219445403973453459991162619496545302255638723729990622084797335743764623717472001429861985277657501200485429338673272338011523083257468026327537674458075693045419789203629757321400505232388480191043321752557483002108666580717136554319839495629443391421528395148308807682288374397170767510247384610202432739227332909120186685741660308623277395446683901951534025189532593076586174623420821351466436631660908841411518279918454830425918416158875710205587167860040424096365502825418805939520586009023069427765730292545886260011805663206963229414680268198841522786039222028818179700877039313767153150270846263752875093158543972325868789527190289120149196089985648160578416175969072428087282378963498278034009196539089028674812400281475735415178935880255554209487014718412080299615610116172826124829194571793758649324070739840665361552807989304291625364497205734652825132389713879010022106482384213383956921034983822355461913045048787017189009309909478201244967765010531135559619512167893741497549592657822992484897055356834138355620924677974598639987599577986254680904615764708075499841899346953166198602724774779086983164312870859457196874335837852706897902717275057688430649194096524785799167720863698567345932496435592718014083222684925149072175369596485471699260037008270125401417402393540490159524261661882059339080390115973776610120421210552926318183556039627772773403511014047904508708259850968549915547540361768812268523405002484502211483911968041639983707557622964862624793681761113484023016028581146705895561822673225243337708671284156327812980339588896659717406347763552223275764804822139271884949285563324627297586471501145179532591059218783919987201002100633264766926662962372798741820417431784630570504260737789517475618003814790009599021845433042576371964295689304816575967740181874133311333773697106861186900492405169556356249860595634074699205944313271662151103348117538044767507678596949720457667606104545913519955752227411492822454630965794464462334818178289968904767250516536904871551927929529071706681617399513576452453430847601519759391726370327634968268176186842802101000825590384553793852802568509929050349841746796131565164160642923357988715232920117923131819624206752634345296500639809794709420185007057683643514086838225292824253636257798057472148224478010892079166047476173968360346684167980622023407844225053108952934185469993825514571668073491208497962319986778676938947337011602769913244656188756805915109119443398702295674418917226268589027271242579155561461703843137128200701838523288614322342615444189109501407641616984730695743754237971222895471038752935732089646993747439170116712823020380996623161714242483664621220104542060501757043022210653100996352277947619685995258706179420818232404939442612737736162595434227343354924611017085110734715833557265944251944018775833060171978598904967820777187889904498631403635428591489534174900087679337982364573278157332996374007439297761119527764171882682407466402491300448677437721600385152942429169601812225053064514667951810842254648829176022190086813654476918199260586696805069210631214998003042942040695855577150810634196216716060657055966533787772823552834437245291200145846675692186344791476811078821884426353667084413918392550857148791176512828051874893377438408554555029779453656745215856276083283118573745482552385121424758456240014856020833723565986345689684457221190031233909995680437337563638811791094157491646183474671889377430921425379714235975940783520151223977610806745795165297027356636057587378172217958680688597474805787289636557377298742385224239385950639221497371526913592232984146642715858242496290012753061761221375325210232003231397176861619453250409294675568964587546142887666687220722675525194452300584894974068200419907386152879776309470641499265073537804108018009991943648307177911865742281454165864633126299915827857038382486151041159018800121773511012174011853072342677509229482331563691697634372612497221486492560005990743493114654233020724219360109440946294790001587432783727188771541738709739535532294392950223087491693329228828861146478781909595834365442323554614265344735614178725909199708109522781396692342311705726229624309542694860337596354085322348362153533105423699778528342662867822947778934312642306221338790387789983866127201266649898720090348634932241326554022920296937658399518094175031549428726662605231473993750862079566541644758284073541619452386014080742879319889545665948206209321375464452117256444067529401688160133769148433029394886210684758735354678745930258521515485533080759293889443887799671313113001138295338959063250271675611765661753989146340301947890410449652329228586514899310029460271611593050802851461356828702401353289236441027677824458502284806038349315623247114334566968772222489284677414489833325191945753276759122718640364052921513924559103995035734205356453733889678833738709622345518345749067543110346416527519001706948320677408950719680880082995820412864202010424935212354486206729711727518224732297587128215029284037232053688015182571478556900961849458283988238638074291386754230238723649347863696438329040626483097482598695466101847280877073878671403871181057722344707760628067476077471902134977708963371836886383377383053040903300409542230836050252829484402613198367698019338154660022672928500497254431771518999021807071409349560146750092951449713961657704990372060690643739914143910581214407172453940584713183028575907464708588189012193710551608569886214282286264416257791742439879303253049825622616232944503006208189091240329799747008957153982395301684240819793891867648599442809642378056685520579100907208577864217872812621407597837405132583532991841883094649185327847991952242014977705436216983752995607490320752289568171109126175967992665556255699825320630132918860101146962455408166378085557603155733323379506254543171925219039988706910337059641431664392099649024906862456561688249616349875235359292828181224329173591208646819001482883131208218073957538467351703597721103484740626962586130419562948569722880287284135422307340662504015126998724411165159403613539897684555586646492298439738324675907733218737314938888090843856284006433542881727896407417088422827029614769797438202387178415939149907911811339732441868767132364837216440402952776169645596458672002672174991185694260921257675354847570406595309430585524899870108921691564763562756484556494234430508989041899070236450161933334766796770691160512444266658223182575705031201383770807307769774256915612981250188446312337263514466276497995978630906710377999397097931320689003519862214358166400364505948985096381556671890922267223887264124115746948239069984327923910233646745315051855198617607306174298210470853608329771555124330449751314495571278918066849689613275923736210625714562894209049698278821965881385556322891023312643460166635043859037043112159705074180168213747393527073826583776693488201734830651279177571253684805095734580308704794121598108840094063368626962925696162873729789964469971040286887208767615990486508106719034887511735949856902915105214699477893990654853535435702906152341620877251695133428034753009254261669229782947731715320629611620540250111546132593102696995869252911628487425754942195858306185140869570709722080511524958875885997350202313156552543586191088875896981943871722660076489578272932649564604084768253987293371130382511530517212912255723969486885906059206537298034865134486327568677148585179523065971658032855799920234799439963508236528440572117219499925795863648290939389118151483423764261259099494511516250271091251890430399784436710458597865354715601859502195272001775450371781436502668018742009329420026783127762357767824006559097590619260844648776018106533492749730930149911644583955759691853953521940935564215395363261792515933510432761082628968172705011081247076412631170048029293548263336198984364354979246075319170328782741022055571070502700316245817874916382834725985984606866462706699172505402789065251093375329499438102007287646452403531719372710802093806757781244940237491313100035399735726629508376402776344058011956562373485147154688707277503030930648364303602891924646188700925561193882524815421592618103640512395402395757417071965135330909831868281048962075236194682553756730608529337114059619022117774868001877733933030373243233799647637837850461616471055078535868627619884052077430760712669744407569426780707609692323991186730525574430001072064008271516942238279025561430509945396478123056654415511090582605211636255329793136850040964033280473825671501908030339001287052908055818864803046197038366253877447104480802812737994167505257806956331049845638409897340909424043034816756766156652689315825499397290965569562722950471626567033333456993821874456130360475998556147900525518838648811717747210043240699557822782169864512562452062889280641227419890271199055089063545360532949856135880974050455119162795914463871599344575565298334270815396543729415129081332992277262897838129775483878772658502945520872999476500224424291113115801830444732933532406958736079876868987350129400771492219221521497332972528865669938952618904667169292704712205676126183322531352882223435182565201567742559995023491623172704462416783011889266105067968347482278275233378828356501897610912187000448407810202725637585174639261692086900939057092296190000468741089466607878519958425728674858328722011387747777991778904701668870061060465912276034260239924268538546215688175340244662854097287575639339510253025974287145501710490002086105948376921461247864607372859720927730959876017527366208842983679622543463854597671405985522643736489034317031533247210116652776804931982984277256062848333273580599258656532884964031505866728650006447356042110762603070323805729946348661264043852821227920415434131406251168123111607644565126402720999143815922676832493283124160790717063378517900018739062734461003018263947022746973095092051502738655973745038680986702529787250507315032057252577272937672181812949562247986937680339578658085157524512767219586975498701417421044888997762152267648243527539988941246126392226654259884279693292593953229824208932585057941763166675370874676264501150729498672816118615722754939385161406320031100704947080309804734368877583400986907207060886047429860599083121521384507337309915367970137965686295566186615205631653240768135995827549104684169899439847789859449064105856256265012876241088314447996500714035844584230779086838412037055609426809883759338361795129211605597551666554332040625367222967110634050177386100391297594898372260239862285862806028951998984930457405327307334242550314839632405713013574456745476657869883115074077485425351816804260451241102690910462882473534377345250473657080332639716067564640097458931313675453872562809484542369102953441618708944901273933885452845050419194274774432973260724367345884337665441687238795462181818597237390194014551415228734393974355698731797289333664372698973564464593061146766254331364903569326209722831124677190482261317722328462399987074150729259173158886008483494609913935567727609490384440334831775738165092508876151875323251051227290739833671096514422264940353526352318727606366742122235641778624475261006524617365570879381406107391261709351093588062613607277484496288167421290687188282370387957336630779496013340047551261076875405567419905158272312753967771677539798854590113381303272650293966161083189410829639798654609649489223817967533514219477693569564569626138229042907788061222899709602374546290099190099533575941382834696640408054847865049352988940447204646648079803343270443531615244580797742744808303658426889500940181431153376838660999698961147433905824541996919249891094970023640732881028880690229296407176976865852457998088471708354073892215051030527980125337277625991798979334351884184866825195237804278096725258365766684620969133383106641599523135215697492536412383665501175884007365540912348589312021497298398192507170263142255181599012197227563410491821432692560305519974691172225720793075297000755680390584610486788669693299472656982475025937892722331094107236602606125278945196666010075760271899801950097209835356225880480544632945098082502248424811306907212171980073160619393625944281714912138515220607855812062731805381345023574277732872312615815147347864604684147618950947064948799631906946790318108190269093375882507042977950067189642733737110903396845871753304145960228912454803561636695514573004551838058095578941208553477413093471444851048928076032662332173104675506530324217259866142988184991588230942022930082996662968606093569604229272777001853089543949844103784430919700243519869449807335702409834900384989675593336328053118078941086471207735810694556432180615529291635043012317990603766997251628446331760607734628188942789462308025793703168154863220149571570985204170703516040023276673636923145903036433249045265228923416806527020002734951715303039486214797350563480441756749671011106341763458794475191646816831174010409252154083612533377078003182441571322304698529223725937478825521703369807771614917594849894012208558344976966854995536034082734807732337097954318673006947607428630879882243927822722144122982868182701525421098616218940886968149056656430815782916276089949306008292652945750716248306702547102221735686868532624371991965229119969647107027450684897687730652770097124923707388282288502772377815404469281327394416203943676448218146140880117808372503623049393188718920075133047192808345447848839506781163762481961399027797774324300868125272518893589459691330899025172742837801771374548717429656192908022772509471523462875618047285883417932688016321707667758734489178494403344557653246998398476182199819903614057064667111220975659386972203555771877218743751275514636275016518376391646723016056722479796704358394193846475845994315688096919545663924503207909459541280656356794754405090609784827778084629620767269232242078837192239495262036548458952347168877204591789415195567838061153915199981169997702461224394512900978171780229751113411978538831468387112202259403503710639220583453763306748419562978192233536373347087904677697903697710108120878408892826321660177390405425410531007032188484950635230129078367602059795220222698424631491651750906362429733327179544209557422357373731108313346242393490990613694992077031353135025919964246884106552795437477938215447410449556104248150314094874454365230220624571172843990188653268114214434747615936731001505094443086453319231656799889915095997226198342189818922343367790118438785120393186881669601218634989768857742208103863552047651398522343475972297940034595509965445194818929210520477753957405069025250861871883828518056308431453823916144626894393721335803063827670819937916551643551481857486696331387140019343788216887061575271904230870704701914834355533531696891329204181449860595756345342825523199582465540039867841983582077773562645819778311066360603214395192594113406330813471151948398515564211625648116593328591179545407379691317036901181227478668032388047865160701684116279231048764003888970097129020663114528827471353539699934092852502925644747738581624521833398554954091451146717639601135384031644654985004580253388051721057487044798813383312213706477350551158847148547126513873865601305328182480615546706608657449581094096259371313183023978625211241518070152169572608923911741138263786029406398387849289403144278424409337404592766576683570980008121086007395904617249789355649644321372175417849991010142858990699674573567731963558561507663905514214978110118006469660333109406528166906116317111570891972728354248618609378808576056825435032150925080594620135103355407404602321858342582087622275576054464119507298383636695179748135746279146506751833921931088053687962665326357547048397108046888541328998940095206600787543872766187934882397650059096223868662409266002025956710351751768883234040575538599935100683114388549613194468159716321295967578165550071502225102664880089387089127866741587164955942039510054700742602895386492375202104989604145120049008478722450381127364405834250357604904782230926557325221586819627696238232650771203119807529579319068170342369792695236423749097182945771604563429444158960706437011164031563621177536353700741811692332082304071009844454796271600849337721135460261575475471484978660961187657938699428672500656115380037936935045838304366917421395663887339168284763756508600471054232066221948373019710341420964493621735253332694107396950207978538842419309841361862199064759280729859904523436906442781689696279795510806876840270709991329602748773812443121619691231593958168437463760969919640626471735098645125541382253994819822307751221787197476057440776205457455334071854672792970075035960383386308804049953171686792997219385667511242778993989450170314104399217403705958007463395718286956584245272909338707688875048854221859012930892374076942693871290164121732175524315292605475184823486020360550156303519622792641370686364106522958852658856859335175924011487070910151971633849524384290733506463259536792679666150151891295642248468110052022211639922164476477887661817010682223671640148351869479082806428684869880078139296750258244800314438202468387839479140503999026161843189648517935810048518683457343009954405850342653457805485234522711323640418631155137228288957340024539552932587750717719465539655826527379019983572829197546266973647745373655526446801106422592962795579691588167333526883682986025076715115247643400709961382892894789654136169653685297004255207331528033793107718065260507216619956085640872663460210688973507020776865858411880800536581195739764936200600307910148846586436643981662648527956991306102763543124805019406969408812484718491656398725986809476915931530494431974441648529547132186297241629184017588992146369930793790073494923895797427801828339935127273143968583309734375806285867260954562978247605868994641107620207004667621762443078886846146018375917494949738342626983360394877924477347671396929272455687047708353074064718588715122187446667694452356410562977007819925486304196305442117936387337400393915470245629426916442877137302590026543376446662678221852949194590822101935372435541391876805084479881343024118042441453518339843938021512524567345105500518568683110504036538567401318941392165138694191988307004222018568805044153500690123984147914141142849368270456112710819766394709460527213309779818762644705575656322732175642554895230050764488350665225346626625973586486322261815128445855306078938085874327800734073992106891888806312427734567657308033442878192975681240849809730411624092303153161655194948399688309543920754674222114503293676807742621268441867286470105689101100497703181979805732961010369833412152670973783167942185933125630343828538397114752813798464979164623405759662953755880429925939355842085929595268738292985926232078985479558339581369160147287098484961663635147123515273939210927954204803432125805494644486373251634790949467768098698268511225069594917934471344117193438580590148890260538971150642718156637268343551436662643116440886565433163694954103175991635206196431752349213093266975134376073129861836263209634333478240807175651033373964877246782582980378925293501891359795430012491179731814664975092553873876307108870974739583477090945915010296791629766355806125083297365066069433873131894353956234019223365139416257835383388205246387787420412769664356085810927541502266622376211166947636561671524523352329935045676763852337009096405392504653107135833644998743455721160820860982500465783096097049847489025910944875375951152655422850628060888903665787092669913486119367329125183945924021781164221568910445468004166529296250202245385184740872572387392308449165552928823871239752896323368827954392861511233116824038716959695963951509839446126052672217258883382773884851394576001312903581488232748584955323624133687498326180812900755461755952696067915191901836999079790262507253171056955511977490526636144395069470885143254954004793871230904474606079854297025112544029606585974683750444123580588904407659831980725819047933727135772371661072136458012921948631201812769213229279874734506531856617919564905028208165715834135039317484681088928967974243725034512405058116963139542220838572875885249495812528444972455001156817290230542820797102009879410755716305200373489906988560929606250816975079061046038914061951991180383436764086050560480187855464617926862132814724813341485693070733311693522422434384315068847202980373185738803589285364697337988201242923964991439680145986968608805162550699011464948196658148393963832014719239249998159005899363241682903356531327643129336359272163974447426725348095291258014981312825825989352486173991868124638567824482122395016941922060252929298525709027571082229776888552386900144590121615014451371952217999133561630698307846833298930779253092137307294219374472128350375140790451022789577872760965868732992924891057892841441363033661529534512326515115374701347956953698612133165338161700499413887236878849413502347878395212020716462164065973581203400121204181939453561876493584964501816643316638173456260489080968654078421205539849847743964274252251574217046126128141548955289566287665380361419765600922803129082477510588923704944019320524863220807582908076078263424080779584594956024030398957479978884582577232982616830694866291475578560526118376283889890156649652811903109464180273630400367034418517818798532716705377710584428953360594904334545103335613703853499443255535735193810565907206773473633795318687818158120019836734334737062476971081096505065509082465941877851511489191927747604520878296688403602018440838478560578529356096971695218871841580629431794603444504547549843413515049888267101108009874414672142433174919327780708218476249085230889754844691580071532817866977855608606844527536149164914363263681855538619189257180384364280585192336837203242116207362220227134196490839044106347157227317530743319203184196893995803458389860447705898594597953746876056407939130971279806157578051252477808772134786341971552653839595292693002326374951202972639075663757509939787001578151426923388688455184438027570714337078175838215911995343465026149247394003882664507276127235602711902348512446530296530068855569096959386439284710840362143281018224239410283319241335099284515199193931441755501215387901266946783478374924863520367547621752834595312470546489799412429940388706396203093788157215796806367948589557757066001786718927817435189906552019965140764527134426011795750357742585766026758371844298828505821032997934538444228785766630027957222210543343876216101709020577324329509591689566687593149759908845860020176477421841043492666315176834586345856479801908332160274633720275170746042693456188992628122687335256524016589427424966526836796140101949310615359388332429848011886056398381667947614112948502776180626760023800229094173489204503797054568125102530518976895485021324407626039791009426009306148153239568879327029914885288584591488427071029144251227356175977381010320091399847795603066805370300105960715125644209958714262270292331094191861818233658261199570288702252496181850850802139900281354603153259263044275448085996389445348520639502425390777038278114285174971730693270021782237998725730485180659421736084626359434669915008266269284446304131309319232893478516591221276816333468023393674872752213626609198809352761860267732798710038294797776477120881110005015719171347249019617029143531561544405074225307146694663611963939715993036899839641315508826579244696218557657010089487325344305280019194312302567829295858468738895919564339632347257302838215161976040787719503387346286168841139500457621844348791377514630696615711295456903031493971001956257352334970599992384477424690766301395208467309209169952586964911271480514621174655772525409595799769854123534232777808159119459000088662993600334765618195096354713712758142837929573485248331279209181041784117480276383022315923175761976218079688506420094876148840824223150322929723215310691563237311265788036487063507016942712310736224491499457394202144148162274673673318465962434664499280679308243949562033389661496456283446380819132367575949858293274561518933626836527821405549684253123943766406020293213530694309839016375757247149363240868832658807525603786711305838517536070243578621819000553152290377324350048751238299159158466391155618391563982470941973171269740466617489089716787467378517703511381036071351365207731959097420146112917585276913868657055915170038214699332494848496021609868757338913855752935391725061915899693715476892318674992915891784968450296329342518083322925041110929240777168843171422865419460757032874334114035234876990975622281940144444135731147557408699078186038594273062842867584602080768827114111305513176593629194458678662820990212382619365333834099366020607633642261992458217985438215375917662212821303900890081814300504793180272817463424922562249585746513133160248622812352148501164380437289119064312145938170313955861892301411924214559271751066497857838998718921684676835009028053297021045114724811584024048113581231096264054490517129195224840269104878362513389679115337645801986312342185278639382836180433317348839199216833059227137324607568473577609540919729254690055065881956498490884953623619502782723156186084145293446663075061007467639479754152892716812573497910976160531551404649662865616537707235171000674995261339022465695126000566990680204184500802506366927952380032207710782722742592374461385942015973742020654046895085659357889936567171811996792086274670593856513976693067815845845937961399513740943414305845734271228294507493194041601456238195136762860461245884227237147739513043951083973028618231810170454978131056208240120269237275377713019690231365350535648942393947782059791539898583692035264092346750550958771376586776202706229184960106841523919781542546593096268473454455525973776260017716920751898974691102210594716324858386341671002160767730943120946579146985899186186857058189509992069699760350536946001538189381236452663328748361219882612285487938192548290889368905256495988482472025471246738065934318572612678792350515851466268268800352992984744122511238697926156386005961394844374124036368408522807494302037382547500581462564811920937708227043256429337730543770883918826644630484987086579805430637742506917199396157576692362907452586982214954652091434857049541462825820822728334068143470527526325190716716786059916986789125481655395081335622473954071523773011503927660261243483975234390678741128372680220232550063104213523251755229628960100175505979271556903295332099789235601710830159752829226707771722925215904624419669049628739999835639684134024614363677861251254747113483161920213994539244381594629169698935820724400391759314408934377653484724398244142349458379380109540302780358138683101715528153756588830378534434984562537664740223642489334402581591708784241378960269169963145584727952954118626994885419424776055178828954265520576967620854060669495820849118472864617808783446826584640259010492254647324310954302931964608910268136528094466406267776174912525407652105081429066573717410059257580913938924894301888335584175832164895831910007357879786756117933126365273867709701651558619725432713574473543071849349348079937553235047762683535811944055375853141695379021435551842165986686538210577934459453773161707940778624561221030362880060186986768071158413223688562328595313801854340769599289374689216151187256211235175274904710656203573252314123113241724090729688238207768966692249486090188005309407775728167481311428631721197036820698308516073708953546774594411346706551365054581413543830318552591915151413853176392427226697844837557547708974426533870301249199326413189386651377167246596275515907198754326253962506745745411205038360925323986294389648139961056521833755734130264818968485033287744952486803145607566999901708967699721609559923301085070545211310632981164182222804490670351374635468914858110133413449642774816629876443485446532006675191571540289126866736157480544230254891526077709887656363534229420339126023520202953022052170127050401628342625284220795855981509370051377890908585940515485951026395712168106055998996869728785807629866036062195458598323578335520399879978956794515298219930827692066020506358709751665254601429358090071424636715109427879456334306049171816167785673938994207986151438546192189568286142557090992752236965303030270700683906333367286550083157492349321270045003680075843222368670116084634043307129527342259095071010562666691221595049694899947836768902713118458144400177852434047549442184697115822226573030077868230527785448724645016368954879531794613205389291396083765160617553479657643022524995022638624070131715347720330048226074154818085146725882572718335832170668290872490077696822900931910221763294289261922254636717554129648185384584386432384811100949388003478925287479829401968773639196721502709864292053203924338963385916667679045482296557814067124253257880091344122074202636462525291245958639134065271026315565438658126434658974378236014461261458445923623581235732815564492545979820688830985940721169721717250011068033415054131904003321546180290714822095022782143227978503496867046652095701331025203530020824686606732366466746688762102013587725356477505511509472684907777968734145749264600021838124825822313641633965673735291139210280655119209540020341147078509350116631424187608695338927337021619706195394667075203402153519457607596196169864596115633350509071526589000245471347409889167472217712250837356749250084543949248087091192672769363633252529449119682419612298986657647912838566046711485727977455098917057256521909397962554240383654204672571462396989569192142539678984727685325159683178454488066056048199872909714547407528301753861216033026754831859622648353231845797586233324051504111902414768410217065319865542073142816884922142143843569287960675344795172988614817174343073712030574000644609427907663449556315665599514047318856507960010233584739127279294615992916637169978282196406829409388062027293898738681536737713355610191920220087267004720025782843015768108616546911161536132215120157356874869996487220057749401305146934084170182208864670079933280093527629569519489114597869869265036333070763294476769771854767999490684168657790252573592075261470284500823232491742157150186762373304251885554886737868116902932386640502140679070866785959771586087884775329688623587407360443010418193694068142089044950893856230779796063293152246856143985120097518932514994472016292467869824786372600518817805908898777339036955116969893944696314013558428038947107333271321376352853727707302831767388105870231160753800629892476975203994175283147441180618223054359582321860056453503700426901235675258958814542912453361018143013065844163013787569775635196805011876536069437788279076487090923368652804172154290179957544434412757094747488380463174213344400956578507608260686260273700897791801333836792791665136198320965268990952791597698159778902447337902101532971908394821730795576838437664691531898461518405603978289909381473178845740779969898126930704233294357515033670708860699997303509307569024718933306151423261470175434542509575440755578560240617751190812424984518283985446996316305909031078707274597139674286672675189053137623060444713838099501897027000928176521948380345093348435991755308507536813731468583396842409083417813456032701837516354738840795866133115122947248262621995603593612057740636073858178913410332541975204779363661519631936362667100097098360831202166988844330867468706087128548186990468658929652813771476601028319469980297506919852768836669063485994458819257027632761663970596721807446685374993708752433399080477280254558712833969760911578903636006675131434337042378285805876512540861492999219571780918564602333367637845970621066505990799854087348300062225584906304930374444415707461882312147093938680923524309407027200636622308773288104732762153127793312380038911957168395516196849608383679356879065031498129697373798336756164485383036414401175036029626592076878335972106523691093923213146475910193376688284937179874593647721064090950885037317914545620621069993392326021605510701056603876448774757335217476211213021740240263085422545996708882679002681881763326369659673999463515265137017908840863114408966823570474423672010439082670407978788494036917334980711942122363591461306799631319587791721674737678137527088964642070014805042557504402550695359016642916453231091597985281443311655532420142868026030413099956405161238578051488500296413622224924722853141194910310732515261199453742284833325933453491856214820184913304165763454278027161955814688981142775331377535072534144657309074302511708598725687471855788515800063215773129005093911741240983532891372381874155899293525606922068821406073315946038661942897400511798840838772205179226088015113490185362039672240433616045080778779285338987076156758969545365091750589166353708583571025391100067416250367056453125700870752475054244662015434664962660292879295933449190969255076085542244192211619368719903450473747494766006673779498617749093589943655998069300420700784422700235450828016090112326258729310696939993673921947512846131095102975446852793028444192358638505283076059824528516967025232493725442714043486592467005939161709575991307346014428987954020660068426018075879003241712788908608060190545856229228308401831895155838332205509537504269771457501922889933134982174396965627757520868177100827269804024048736344524183903012676483336180294626140507891776926872015087366740809349845337893713429040445600366494210644384986005247393913129948725912730249050717985390238101995376236449016051427974269738341303132958503220091092379922788388352694163611297432543597461742862964746730958801135896702607066133550821680636249475552279831314820676832589313442727592679664330042864910610276100778848984336682659339405897156698368317354641926260091079753047876705520624807476989609725260134419816434616093913332222469731798238520506727245591058094783775252077865482202275260491997923218731121318139237538995186976334064709695672807650954591834972831493942604905193091912612676199651738240066742620012364330917391920899883128400842342498622979964983290906892265135148740173323296625910794838657784323413942844070645553670365947408411554561185598959176944222533247842256924986201009177280841872926723881126000129879741933973189464921037435909203184945061688550098440534834002404741343913125115809222439471615774250383178635075651571479344286854407671094839064584130526399693295612733177264632279766264210898252984172259467954633615355674946002591251601778762745403196282275654094585421451924744645023905652280712870714750177599077803465399448418659156069950592510085559641556679886460009710434313615892834615960818487428175836924779967734942622928345123696751443581742203958727742584764525622904766434478344254291466983380749872960223364796934151235519253113684588378667036626149752308890432089377361312560886266829179048875746945848027755811107999163704776897904835663547583141455377101309708609866032139987113600515701211035828752770627780197055947187745370980230415417989187573215485592154525553428474130711020992368049810118100854597139485063954151000112009409919822895004054412841461158196215869936152343172984103406007492364730088253669086363450208285199309563957217447015132742333071269154842981308914248819656828357339415443816922291101022443379035974372009048994290803299807893548653620325435287109428164889106076017888155635328038689299229157379387451216284815913156143715876323762236015587818920067219599247763408096852256078108485436361657736305391646147188702689780074030927372799862814284519706703830620242743632078777422030005237370201020571248848991894504960679362693831339676689925179270148814752622188141311771790471445163925407540846091428363096484788835140555504259693034713219855029831213934344120796713028352456373499946529424422216765860125885382006766541296016348863440955808183587209937331421863409060410495038809789088719292881083347405074430747910472016656997738691869827972842074202918285526434367956841226437540933470514199722630374409869870653564268654684246313125228096726540938194290754945962829346549256374562344115077303389626420081228491056243170277336127500032589260661999056673651031215581642659698502643348017793202750283414023195843474954988151989883759175295910216867956146478884349101913035530805963627319998572366507938716256596588428532201350693051060657560160008449110979289097384718718206523986347226372611933629334481659136821495956170214270702771411788938380621481029714069283265384350304326646397735677772842109258227553536786233362775573880217081943717654333052464739260096296071195194861716392568434850965996525097248226005434871422150099857014124337350615983475722084923800424541926100236743992265720966330014976015589028921881736069059539085009687459524697935760600355349871078262189609994660874886750749245743734176254960192646271664124563844768698677821972388685741436859229779050513924033320563879308649322015340671274891287691864732474873837046126050968550477892279113254173434629197895188110392508451884975317414503184562607106321539598260964746362923764937656124774961621252392470277094161630089385034197469772292896629182155454306832975978070886609044254784386023231339491246935023874292795159905433091659143642486701751821010057123293414286818255759343297313535276999562890424783328770941622325588451737051315161445775937291792959236232627317854909938001092691181467127929477638974324263680552926348233161116295411734652680045029338115690086122128868954340916566435199311463275954140253074920746413792603668020452313207698602112450258046168752322544798412067054624663428497223039534257090713137024012336330200760006198998151290714403933313846769395604369291047112599837937913819593894775258609495341261039952550942591344812748570427717118631531260386791057490263494174785232151582873522959444341935913981216788449141660040175084550413563739897063958841875325405975843822920184371207037019950992913667785494007524599642425651468184230468797045038126853825001480649853436481628767178518466539556903866932369934543516064749058688182882734647697903252856552887980349366590991817503199752673632781328863824173631215150812930187900113991820250687795422000446732748299840405049970968614912780609120708204895226790796030916325998856063035356854399152537930383292293070171975689949333828466070832530287996805777888422944442178500644805401067724635185188720531154137108181744518186888941984022656159117356434456153340578293921077676786285512969073013525274654283132179798169019376968677404663462801407187401601458129420669734065601965253072328931675243871743307672314507446485172003182953067583859806041572335049029235402158336997315262629000138539555767713209531225852097531172357852691557904025923942136404230426671398198247828160756439501195076901302531792930537069182628189950175622922291456987723752357463595333227448728593209342281975330608269520496364074216183259201600472304517278406879926989663713593518009502025181456429142591870562727877318957856882145097032537255732458047384077158539037063138460795874373970093347161868645802363223337826110376218137881807505640049064594484627710850515092754573486169562556917936691887322482983804100131203996100998202205540244511860037141788286619747317883250540068297545508939315808172153705512211597587871727195913188276090684836248547190295171554213126436257124464896601192331651652425201541695891882683214777920137031156050763740102161057269621177086780566078536117649030149950101594406285299562343361776345172618719122062094281751243801585511188816810663504810909495496451862482612971570397460656247176396333364725965035530743901831432361671054363386244808960825349055935058951529451420326518850974668121651009252360085669255502269537849405272038785094143509047519453760670093292207492704727743070532776126218540630139428125506715677568494377394996469718473506283106847546322056322053188376266469022389615127978943920280789139729495082845177737793548042650649180344582903168814949112298136871565713246547332586773077760318784044489570390970837013911730241391495872656643285487607997173034080607117750197900060763253613388527740468618471217049227527024217671608253725460589277144287012373675577977021723617020476015544583939072848380138664353575725627069295909051888796586406117639013428931975571869771659866412996510127869989836184252334495790808145693018512318934507302165527171641958760468311717175023183926667345006994711676244017090555920356997170247929913084800320440699792267961842469197059571266503819572073771526960340700987329942672369861209568194377409765942251885489555128922742749905148193995659253090622217564810910645231324151979732517420178960978666189089613871275566683340422704617866324133908780992419843755824636906923184521882590256096686319962252489711275718535863461903853596096804574099295975250010124863155508534112812613442335942779874811236770926072155632578918098125492852095600576488326005481654810125681544708096855165868068427236337307638550722542065513523552856663102559648182894974085340182070724202880705287996237645795018424647109419104295994033625765773559682705252612714238637504613719424512386650968047729087599193398957360500734179845396662987995983622342563702637490569699703247047456392878577507794535301577750107118062045929381309161226348875217788361247518447091021915333985407438372449352762498408697696033712044056481529278373263995040003423184055401476673055084641941313224150066639823459039851723215221697467522710825546167205697864994982680470039323398315173072944659749203961319863616313117348128362790469895248615492155991708024217331146253999670081458212127184175148533008326908550345172060602011775291742874691000320285069879656200582435157491582601980452578773139534593625046166388301965612415262301991253430157725516832532298162880270030582217729624820811848215106011362818693353502164833269706238829479446840940262953475205683368323556053204909594196762854666334657307515194191570971525758962386241041843812868819302066845409149628688569902730318961998305142233154370025272087371039573457402796502330214858652863131577361583722902547954819181285084342433799413929970661591775231537935356871445313317817224131974993729002879080879113073894837974533846415355719388580233343099600854183377670428406798226712792746262467296332461298919085089768176520539128088003525657035213416545283914206733355434750482182817518394028389673283005506838344528139625822802351436195776168849618763791579960671715561862722250578330427726309242101411837783811238130134120853678615328553882032128116200140581788095844375197296942040015130639997368302869102477633563939737875061210895636582093343472434628443533234589818111254346008083473598954002505205023502108483086780819878039616645247110464006885017044959296753426938489007902587524902638163600927192167612333825433247678284071657645711609220294930086972632684954683145189956601281322508885092873974727685240829662216249230212050362312376597629775197691114572612115067189068166285845733818155330731677312926937557947996361317383058825237565894466734822488588228449320294126067524000175090094929709551432274508898695411052643690453749302398685700180799265108801394460246497182854512009837661608585795716333445190502140756467204057306050981210344636991248709389737112017557615821281956383958018169517793488318357928081539068216232914732146357857511351559167444587264768629905313486750462044109741442125890879869994030313102937372595342454240650445003351672952800431280644508822652045117803703875508779650906188843757055610435869865939380509900954324732272344565055341597798560397674348928049344645319564125589120922452936736980159325167659925403605284620664323879958124794104867331487655160815104205470320382181639479267562575595309598084427541169342036080428929462396200052329880675259363149724607841987537509410761336957246077213397418542448841021686913788242466566776571653332155752473565215942374587219475073771049805880198502868184586993758608059392414850788341262962102974974717514939763652204700847227120058287236122015717199623603436793687687980031695716039352600945065456970028537357172406941732115606620942567882054380248302141864111648173296282110298071046322497270193960894724371216958775179506933874886337529974523745685850391562006394716614240620216490471860882759615791571024403580043212116498604174718003379385628528439214905045701369857865335901560636875767077553944376825992018569445111274266676030881679028660354926343188987649121229772364456232745417051319055805762338538418699064275041288577600067969587540332940073171959965212435924824858415444179009915841352041471224770392719394134529307239683189639670903132258007957098937083818364400936295928992992927778415949752401611286326510625249922497920654718309970234554865113491937059481342683199342600270512874951325277787859672907927201012384495746808047915764241001170085755578075466794282330992963992768719379899463464591132262334815271064240271158529261277854660464610106569049475833550708325915245643168993488344399640116187663508339492428807066150213729405240999703174426914811629553724301220136332598594526195503035179174755125245672472087494815270814470134020729386007491841516912991551681090213292642574928724024801799354481995624653342617522566333712071375116025935580276348439758080410660072228824628827002604492527830999552420457968640507437656177335645468924289910492302484276640490248949401128088837575802383093714072283703647897596731423483798376747750485705245798535897020293073857337191059014874595311044437333286423494085190422341197352621034815467830720174101939814820508675435707136785415080630767861180353054996114800998566229659934636626092683285630496805803221544266872085517340398506515761015437725094307011522446372479214729227066515353827994284648331156310881599126754752845444951602253223045867982113981850165225666717380084320827160217806669041223194743971284166641656164075055291039257412942464940796194888045353502179889637567525666055773846986954420981942963359831386305946397187437535618038400187108210510852924175130155429099306680367293021281584259927948397868604620337288257614256843472573221345023725555663608380365449630402894799619331905057098447727601836815235292194884002484445993462695545224814638256153056775668377427035086067587384073749199076123956605006256923739852849978111101077665716809451509592457986689502815791050958463087674806916253775931724892877722346686557180940665752469866655490694958827832130719377915390141483429282943965027377887446049902455918122885034047963904248243798112500636531945533829454511188953130771350959099845209256160616376432575146958894126018157461080219951516172356018777620316461604979716495011726646298975307770652895937872281742659992653438819626309647274429509782044583205012060611070093433651463301074090339673955657314608916156415101832614463153752326938960095873794251150426110819419599861223071011068180243881971753211888957944262628954557622948261708949363519856137627439210557221660484640716209553801604043231514222356600616790715518507166153144543706906281962552104104564377361678523273187924975009723769883643135145733493492236502744803764926480660657267931894463016216583329314091609891020955782949160525627567665592782010525676363853076124857355896782267121978132660868023897406294601291239253558515147304077083815030220349295328556417045694703158888454806568367196683996108108478719891107172609808828795154576243616694969174966225268166824521474138432624559403171397805651299460029160004334823576985543772063851512727189081762493082455504557967985143027717992793022809373241481295114863467413674863616660840491863612802767730678429852441645528427062488296821958255448509144694624167404980319452361054302416284721864525341216233426533962272349746188518117797374000356322660699987195750318861193380374603885333826430399171793920524849087738132965231014623374961398870473793834630414485572476002807978433569261040629993478191097985656474112585992367152753765761210734610202091511400711366291047933763632161803776529282143839133426037389951998514709104139502791382900905983672744995144317577956024092602349439232370319429621673350783184231996204986410813827232637562784843348508366897089267439830547122644094239291849232544534994796471893489219552550824607194627744445295937594647004787509880287371786563376605620778671407055756769858997236408762309552426725720451268852898565986482431212175002810022681569263330492195617625844352905489899266361289708231061413217038134667063751595908780815859444885571923764155610418982143064230838181136218237852042970540790429302913862251664535274927685656759930502426594051133880290105130488622882118295549531102599559040165119210867738982407825404266338604081119811923178678055524271666991185285812629887191409724764267116307243211070481514824675331199279446826848574470930731042085040576148879867080497858327659284095995874485604703160032577619609976646497394605001319389496549906708220529715208039508007123907962582334801107641372083340864499524090033916456850114248903688731532551841376241021417141448892802118626314889375432740330828111577556937913620899613711558855348745808613330333529780582012675255205483172525851132311570739177376262013371114001497894569414687108413091063261124336930041689916543290642556024551836815312163432786782134407553400398250991724124277515453998548046898194433454690309670536839646190194628796053457637078674871005413000673801802937014241947926212474819696386426958593550685871232960583910414614657892249499009826822963016128176763374244648630373035589342013611936545754106975078288894976741798428247424440713230954814010888200731528336265565738168033452785987857306275893374864840868774339996229975673375962514261031037653512550302703659895111373787208279431134633118982960386927386011646473279425915710075650565963947550324261888250557412021402743367204832517985580930041695666788054610801835035927473183112979487870197327314271756176382663234720168812088814810097818840975143866629195077363850268706699402048371635396778455184419286735393621975039758600961723954272171209846227275523322707063731931419758962126617153621761748449783000930890979823357698950030131514356132664623268073638573480447193796371454911827880131128649216156406869056860968590150095516974631812050984342849253467952936692332024281080665797192243419822821689857463070596287980831630204332426159168784029880105504861371690006516376060012270221086543823253908585951162605302981088333911844704984467492272646796915900124281177481805953636816381281440034476054326706693467168004373865733609572383293914991228882842778332484282626021990416109001226026842809009238726205195775480963074222548963665461916180857934053624147433466296402586551083225191467527139054114945205441965150414491204721165753765502849201418329021165683161114628812926000833405945405464215758298471166789563871509276458854640329458883568568379852200493719544397851204631719798179499988695243568503811901585645563314265003793196006250993886398908121798623754893416127171870976996933344533684385448275957345206652280755839227904881777684068069408945190630364899877883364259451390299215813454650191817967198553456546582423509355418198960111274165488765545503970605922547050193068046691254516331207061732080356436530259238631173921188885976669253711465024226511470463047996250914832809225205738957261033259548208994322805094483219417934420232204401782938986614194961661812042974152499341721795084821809556544396626394791984145742607386603650395058080374715029487700193895325374020799373285573309724785705776175573794452733393199172764590691253447351464263402359984064501572503829112497044844482175678703159124970125418303115891238927691737387676006568993086034202359387769759850659672171528469864321958158973349107613213581489079143178280127120167279199896337182057642572708361705720895708809372945499719219500180003231828082506741977494587347856838102371303350300683010781120414509845716570176332269731106554576927089875393715349217449520062981696432451329691536750220268002141007485886869994651849883151160537381413279899901594615268238120529503581168520534966377158192123898991356532858401149611931104641960166093823688075647552241381661667969234218928293458394000791612151229688308063956098569448369087847452401135650755467756858404072804019068069859556195651045661000246593831058486941086674927158765057668089750900970042829219999350280702717642241556670531565735561789167554625485285351672388432903799518263718881688217490425670076255033706174516341361009457254241263960626091571723656808824641018089769954727423110165262895585326057105114527348486866359826885596634121395407388632578702526254641482810086449987861835196246568726609909387555163370288226858126651635287163189104193261512423657473649677224190836134753394590508685030070695326814950436477237556362608115442278360971865367766445341003780779866151054575656956569334295055478569658262827237416402079808144024070508549661888624214437596535925877766906641383164892852614765468383325788264156466796206341624454039047257293938976945892201841522630981613801235284893794131134489538556032645752715206005476587085936624390840190407931560603822482980928886631174586484497170978428909070191480418274037614107188125659576026619473455897665152723172029654472166395571872174715580112835237950791840094406085291511747976128796702075782670129933767753939523994249025415098643981560685475394766220177076693614216387611296618762793958172558248219695803793600249881253691602039102723334460455701423689538868658812377390706139312457773514385432192273699334212577155103351351882726597816361429730478611226250940840045358076938677186020561661622169950562397208384839525198088574154859168730341706388066416092274577840309631845291545036890812686223786376799267036929822122356427016435629022006773842614456542042969242783425005310314538297427694487240783915816642518895104673626360647123253366623390501402506166257583436206103655921925732284992138496548122447044162660012685890060351700791587627272859295251067980386318462104165029171992467352403931067178542885237152173428686725020595231955102852160052462844979487032793519806412307527197992125347648588091561249200995637799041900384511825425980409409461721311325813314537292473654749124343545319371977221246180667181724815919313491376917489283637581219630221616836029475851156282874156927429178132368172257012016765964482351073887241779934272257868059189095396322630641138986187584682349052943851336145147538856531781212411903652313453837176875680285400261678524493758100556762986622327791437960457392402256247191477218674626319739108189989854985069701347014799651330027790300266828003296117251734156282652282877900261400319661192283088875223298934362473130717555182715500360696445762413940125811997801764499836950749848207946954413315092428112361287865476119029010138503797757757416136442804685882305533186018785059817748624065569623126023695849823311835729549187447725245463657362314469581870968244111193552957839626461782572834752631436448852746336066528724449609508572916081541062061727748279779060485243924826877924364132875536533613960161462624218518604314428297812103126329800229300040389180364051503608582921499761794946968993999786586266296107028808303570666461634977307443667154464520619832080781392668441722900271472559583764620572759062276334493132406285902596124086588150381283130336023922202657289551683800846670370320076648044352443717213276470821066351779213973041055233689896203261253532375029771409283927658706928528609330499667536899553286977008913355545822402386997221051609109092791671573477388127943471235259825039244091905479626616734566620705496695255442280322884155881146279762341180772128811526165136178148146075827091763182119177051745636659854767587917501579799741647211758765894349753826138430760444442770943672500577741222968144684265001172768803563900523794973933212244421233122622136138517293866095250473174841532639430348790969034032089704482785794239925624796727840458501002296710011832202689560236579339315336805280787293989755603240777195674021853575408557950987628498886619269026133187953273967633633970856593890513746722086988951064347190885257733106058453942998622998754337765574352620468784098116984387043889854852329863545616693994763425012661794933524939864368023139221689908269753011489558292604802300755873414629277863781525001567882565734171735766870952485070873830807195479345487694490684607425854708673683734736988826420801562862045544613585897027612947013727075474311881831366072327570375634275996024537561432518724542467722233969502360736453527218548391344379222121833507852003136018566041064656406909949505272841486089124327477176306563735321330149755760622222333490360800028623370433822106210822153753382115366415824900966549217332033437869064965301976074015683249222383057963644302428074606468152990735529959038787998743625943527397301616055482116767487654262490026005849462050057134838381327543158491053029010532821241084596003795961675696311269384288925080759799614147775759120286138628253633589976375597634936306363453826678774577118005700953595701712079890358205011714408258515548613273033998696155287085976206805224146894745093167944603148287690154333721789953243263245602498482789520836929905543426812322051507984794029001342895666298539989150699752424018662441740738987523929577432253951783850156164304836520609018409606315073518813069015909053545440463153591922472651149356660606985870923550015977433909880126719621182572033590603120032508649881147943882817429647420814756953795479326451175321322237027574502495277173046765891336168720490239552410769848028914411815595065165107264099735287748249104816344462274834211405385052004397384684267185662574879599602853017466450608494716677347738671759265989106631042944330904460203764935023576872351829138415959106833540775264576691505048748066640297782116139150804663022457448693831295140418246618206842519930277486716248317670238553391370713946220264419614909864632096739289771962614081048357760748609048220266849159864229862540342972731277399090365965179107829205852498817001364199210376718250001626591948860360823143270965977248046294682089446250405159145111584945575724916958788602783104061689514161983300237051665314044291286014594764244025556072391005226213611210384790421590048621304514283449324853298906613211512517395733852115039011651693979907411711556667596969595635586800364112678383545721116996285908454256784014907878552548226739793283462775372761385726453197016991824755750217617355732572071891260464144080720574979644623968218913349131212694612378538594287620304699886581783007522354656390489365338103111021742583982240974672851746560128897254224047810615607353520998553212867206335383707900093537417003079171737076074092841914229992684565737682193615844660574268705115010459943706311864819671798334188885034191070515822334095515328107238731303820380427305435340074520318492694072387241764668758044839113864219565178652722829184207132963774305727424051412853339701500637403663163629564720979083441149047267802329645232164124996566104178384410257735364644350799277128813124649936598660529447854790954946629459280304627963801845291699655366506702889582277358983503626768477793265581878010996894544856346895033560745652071133533452478267035474614134842285186668403931245274811685945945392497023483077298035450169991907045721080429941114562361636269462199048435458622490595405408760838403710437993777082555975722727914893713998647380408168776224259506571716909299613113259581303503050175923634489969245801095897297956661004394018942219484782915379130674437211399789268104232739393885351456480820461574369408491894128141960032393901414255962855458624061290870237442586439667763303410838363763425252990353405032765326549612996625585425115186254037078479671523559947095621996472162568750076676475454450352729762648671063175735980093799870184653060181673002795359261295669793054824052644529438847926007483965551422691481046591033826053786410196938407576526986693073981934669429623904676993471772167203206211278763902318384133933702048556382693125824626608838899008963979027813835789166339416034016163018362041547961186887976832194599827589553993973908707861482589675702105076132256477435117452357151799886067242160340859617729762103174675566247369973031380884357398195340354715591240878198004679516182417126643504557273496720610364279962915573138261574276215723727431296704659627959661913498203847473466760826011249270006681339607672287183869732709425828186319268021413726345562205925906159976073875446443714374483840949210101719317770378138259094526328007546070646943781746472428363460277906666658131106284790322618229196879631102078244423166611380225385682907173273998968818708391974786738405655464024755848841992285416685180110486134460461745285534938737356927766650366125766668065081956673555426256533273437510972988032099630607848302855654526122837324869637033280547240771284221941702737801998146404451359391552890482867701031581178667846004554854718283931215436642349695740647196777888902330302518369409759958522172573390694024614647609037189106416988686444618893620506293089664687906778333901104100840077924720728246817171488107368411364952723691353703381606938652975735980177077188293495208777821072313923299214158753345794314626237251680492288757177447282575953288247331442111119411300276563704474482684260592519215566956331532512948777536684664247257069420408296719884375977152770592657109024554010018704301573987188659444374241022418357995428464889204516834539274129381446602608433654994155803902364710563468700444332538144913616788291452043851440155291007106652892774701177581249783792585752982389804258806890897255504200064912795139562169110237612839983102342092834046394426725714123660413086787436446925964486079897656002609200635560737190238364916310632250246901004973900975418384897573533369570157140893791656020807704962079558342439457899076840357150436007375547876617035645375264203953378343152691015265938090313627072748093545193165497049759940913927772071808597258636512093999704359642989946468136495251301924352715479929934013180378995647896181946111335184485786847981475356515871192167248652155649316873007803096704320692635530315845946556912808301254617925632884165421930868409082497524446745563709418773822199434286382428240672972450455183482018117404862692681223305782477769368076982660428122644105625455680479267401659229336424897154363697333000075847703995196164680646817082118959264894080744857450346241015287138512640118956307634736860074931444591603785060282951594439259284883593441714298987041741421269030855281522060039169462737172898233608820072151752720513440874102499825612843403980698307236506738618067628760385086156765466434535997350784676927799874996738924419560892087899455550862256362801161266269488548589395007091179696377216663941251765023225507980969906593061596799739763852118768672915550172759548736553549116469027128696635862350688637306727240768848525149362086806439399173942813151155374408468407037925404140849087780982744233679167887779311910406466302345790617277837678435738925425044159842202035949776748956572695695272405441877325624821364578423515363689150991560551930307732625956136760773499334333964198591390664065296444540634473957915624409448647536954908038277021702294155543587955016098575340794487491825466817412971480890484476288261115558671909132953447256466709599962620594181513571849183029235334122256371849118787942756074248934355485774527118985709943130165192612929212127946192723804633304461268639684660967294216513022439614291294221500543855686335241877506686827190861692340543805568196095159660324257656760699139982116116902524732427553785340641680326153194998551755731034673240925977145461021365866313838301167135808177602003794130987509472653308848211669244027154493430622324781553866303716590327806179040617456004750442618854688681809128533926248817791194019071058673158927573970754548407099018089094623369851932166184049347759977005481895632913604589381856751247058936438674777616467685083901295430184449002022437208888611524131145215772482868003296017047378998209601633985939662510324020639316830176746999202752006105372266199250016511432608154616579268540448683716299875800482074514975826904971879719526941828878617878405155361230196135580815662319893412410319149518694887192863466226756710322589379800011677735940772100511205270126434568466708836089091706291396483998571588614542405523188630783497085675036819145247107734092811216574250081351900380101415604668932913317074834523122871209672434550033763817229626859064461200654292092435941218195702888969875518381437538751564370594293246998191795303307299445304257836552880389106546179351610402173956804461635163029414936554477542810007232374680559595163651016786543817691865745987118775724060974234929932289141231484293016621969543247525117582990707127359771717304372147928298091405369611159789145243453680320901569519738023217796283502120837758174374961079822991018221588612454850297820329776644109591887984567421284331871212241205804132919426023712623162739569840793745911862235696879855217101049885749562948256078576954498398723115402231662810055572006188085229435003687540065145343199807838887480663862882916014343624770865366676104492959277000561723656739682431039237467627400393008810040605500967329327915202444727842028808078003782823525429895993801441114796248112885315735678383214885638655578949556885975477959327414968102472499644151511289584117765680807413024237741696112631081309738609551930182459619164851722022445051277166466978947781986876446887314305103103377501951965036657023891370982553444869951878357723532804942874026316311915935076662533371790799639412637880475521232514000915041082344199223571127586863207234468335700907597303579036845012471187528126276932223883916449544118005702322612799474452533711693569427000274714970964726975464731151601232381684122306537795357215596765223117784924964951517370830177610692332958345903376435070887637213201868037623668621833969222504367253259109839808253577647705062160042951356453796520065912883739842290445441358241013159025724674256774789364399325951777184403475747820424867350708046876784648775717053873354725293682978248388115643416737677798418305959888885961844841711974280931893619955445981129465998513347263781041727151758650216707441019463744881019828911920642377706496017678623899299595210908325038671695669936782210127844013053141681100497805254678416316830285855047405223396570236085205250923966861708199405999822799506006821528760818367071533129540692407003357140988513088592958966180117807472951553288895185023344268148011081920191444159408115043128250882474016668568460740240761621737164762895088597546068808145202264783107513473111748061277197421017772235816291429845375498820741619316288547751295856505876966636392988382406799187867125586752439436197270489371160690661724536928939391487181384941658101885077747432637958043318981163224374343686388654293385115883207756731315522722490399167705168045703887813442011998369329439248934177373979429513937230138944088841037593807494259795492232894014246304315295948274955705079609303720000234372921847399807386597126904387343338527528043957343129382473699771719322664051855905134965833185388926485489645434586755859456810259064447645171417705754245931701647065155177960492005494416466395944317994040679968519456873044054182147667745771136671333261336858709999285106410466046539380040112924486925803175477009922059107674360314889143835076240857193204374223230153847183623981945408849676309211434721119111587456649533119193937251501656465468003757471505538904382280299103779853702604140176752860335826917674293218212332955247616732346858328425128296173276823262432676119946825422538849329077679939942145824776651468735000717960160202766152449492711976459905653943014389864376761329283234154243721272350966224815043703529376197233112999778742031130690358211389865436229765514208412422361800670641903410211286318959034827302233926820549083091914044695459166712078504132734050412171654686708662469212125787299401551437849463604564303819854414656155485176247290871534086632104124520221841830522157522545685715582300724574715588205387480314938921083209396331542892943462473527741658508543662706572032528544988656635332044538984787094860714348026663863753435376109359570727477220612279482347104718976435010725976449410932120722169981271926772507569523713781155254386847574348067767874964416779117291605502626334307483108200364812292990728002263586594725921210611377053521758467991274904282043604776306865416976273421335532030360097263356571521231588080529992244291440326606613818772913179041695139049382929911946411021145050049882938308513254157427594668167029952830170183786192921869413897026104287986297685014942087843544310667108388458592456127174256723829077553971559278061614611720910746822666726740308175670025740477401994714590988718988782804918959023291373557418462888171864172414100271931557867889377755257284444930171342926803900162288620646887957817380613782970095745714919506893846179602990685917539595191381428917179281925296182905436208654172170436564369564984317317674328534383538825180978170176704062945132278590059425893284669362728745961188858704034522390519401737742005840631496441400902767639971826158981624128221835450965944127887425922343969117165274925263303808128826923762480112465227404840971524098174432941060749224462520140320641136567727708831331097240029781544370892227526943562582793847440494316087529985947265025724791751025618281100493666260288403272976012163702754419821107270305256312307795306699034070532620576201831718855690685060083545403502454469100958686436336905074810904681736461981703157555255557981670327747702749686473866311810624219611111247468299333434214062448896950369527783443252138540346331244071675863158762825679710184687735012588845079287937720494611651070530001639077688521588405673064602274863380032408462186572338733138244102040554962693058987000032729147482714010597142210406114952607568462302098650937390721255042399399902224071594969719879850484706444599776405463087524311073932517101453162570144203343272962693553310661888424985631081944941730201449716150800785363011219890014276798948468558318927762419177221782730147731276485491670248898932714622298615284990462644252063449095401551457648974065340460682100897905699677419739401961887046204074690838214451920744451989688183977676304546287860670857304406726767683139855895827495345034239151700219792614942954266688185426919493856894914730040139269344829639865210845232727880842507909327788950434305131791741823237880625088092868538468125338583102942034409552041202287258203388628094241980117895930694044419378512611638836295623485213323496359804286056438142478785101093783803688431179981179705459298463605995101483103285073394481326825976200399791782680301753236337127603823513981574901558780466410461947794126134199198919747985811001357642130550975632601759001168067337040381111416456564822440707578845467397228753782871122775180358831225986288069435522265706950672756503213764451359348425151459954580676279271981689337052452071360596059583028745398601695470889095409846897167109250165007488962254549863333829027032739687954293194256261639733661636364203124256265837840397195124864122142265869574565825317247718682122673865749180711562265599447273171129627299721647242973187852962398723458945044283069352284076024166903567324450056620080821737570141111387320771637687637217513420410180101381983896706511713079832671661333860395522264931052044841764869701363017923729979178213972744673368032068794271505476207571860148674766649369940634548381430508095242032908383197128725548654775619514492333434301358341470097125554196786151896583186410681518812698758194143535362730431920154170787150371048487749238868076534668613249224425633702123181985068363302847925054811549484607051336904632844348045910204377096681265128560385510991143333248113274299401972074239908806356956857132429342454445412693504560173794975934686991030236830315188907058303781924594295473200219016136569219145126556130872685820727396091123227210064174073909140611765405559797754943127052797124596166523196993040648727441622182263675084624070896740121502079636531818577293290223955219029352772689152651121205439549640874332707039466799593138401820411940955237391076551560760872130511903147611316325541090757724046909374577428947338896168644848894555304341536599684804257802777471203445181428631754832375536749883295222123867878768801943974713434019205262925158154255441429090827062133113503642849550996974967563875077843741765012858764374245584041386332844940377776083490101138569689846031417617755022254799766386704925444507430729517226701386342621130367877329703424412562025607649264762347327601221046979260672980046644533328824461551656852145769322354027169271527582139431100244841859067178321897929180758398535413650272750299173085115762613050664000931332273339689750213867616782961077471150174223440544930848201949619374409470089165532789629927114445499073888761879798267338512951623154957058034010669896938278239204160133127434817285627204216285211052778699307957117245231668276926123424072664085846471707854207659087306807700987843863246071651381419561434444930107124091080410450638524899458135753906611817876857922022277964031264054243086913648064507160275127035779764180461688703661276247427721076051591362423392267637871531114570325671502681705668313425277442787084421066256732838824099782939673556223368803993393390576036997633880916564523781365512653964939497630475146716533594969270583543088469229440446028876357650963383758985239685799568482116704237550947377669804036449362330224420191150256125574184000056770436334064769866831451748565521639551683708507814384633300715593793178428736943445431953929769279239878114075843862906945419919410290199223719371071341003661681313797433982088861777524233017958692018199567232068758362385565847855795908117858433019678011002671601164853050729938322858115436145628850048194634950558313929387921170333018538445846257658593672495550399198929147949043495613617034853917136404165932552311490393904074595251509958292382137813093683581719086699884241028258975637198213412897395023939409028901484761645371535971947681840762638073829727690934950725673164080994718835173608266614369648454291051795922884933131598387233209218098269536190109040815219549059077449558407171056230180435969673925410283703259056686481944112239225043800367857585735777139432150921873792170499576287420525788293805414818287859314643690910033416116840398466268035425700563864869599925051481908487019219816341298985506209500980399650655050784346865816170591408846637116724806045599032452911993658554891241700709081132965550528365830943015786144544013254069796595099857439332135776193562436733472767943361968011312570900526702673629814052682557783002824793945963140172843572057660921200098205069884846942912790287193952878104359376222217082387913333617319695303842055902705400674731613360052659864172792123501096482519230758189907908956618198434408490348034999721489406633749266244791735309817762133704598132773440532329067945775684319227469176210533422438015426013006954024379893133647791227003897344883663763393601750222517696218552473768275685151607946287571488584014921679294193416214258081817197536988841594077978987607295259959401624233098584032139684295491589038596189850807786913764035818004188880417535807436505203627784223937840227044826007797186594308153672962776918616315561234288408083524154393216682739810407220187582354575177913958493411235438880491010137911705118677651117244117879661468094292021499758635289424529851528925472253680681364355551082492483583522869299486760076579496033603065300459647101214550044351282616446898310560235244320253513562072178541113144980255938328608100668906539636896338938713799712692831970103408891463846650134247387422647704880258090108338768442280951072986080990436518404187820510628501283654790575578009247182909296591064293858633017429664560739973012699058175642554203322258021182351736992813313117412607443752292266066703463417571179991542691658437719834944042014130548545912629359367158707531592748178668989616364470758866049750880046518927432368283279547676476694973890285408676394985350838626931877113396789794716902272389357022726983385310078565517798372111587021325592581761492097993937534368079063119285319889887627279884862247219935011015687340923549040639711843633777465533891472568640053869549726764690467456120879887969451010477361041365773352638833844958999130594678025019872744487991289533677959807931773822666713510493742702926428932263942743876384016369974820053136980380371030072318284575384626813040792317511005892542914198099084481849125070559960664493825588812454316434289793929385759256504642103849997726123639086126310725778928491679567434609727845618079630472787007676953288872298694809177371696915997490358346880899585851595300283830088458657887767229510486902294818506965691599807000057552598432845147422581279335891479251308842479046848096204659731489039254719165918047129504763488920747567177341381158809259737723842036134812907198748569119927782634619249725676922544049267941453103754891622734715765338694503261847513846885824439947784724878347823912412476323392992409099415316040632819687579785124937284762754045733998496431635183127599045328151533009057671050443443584106840183038035707108246607642420615074009250739199849152229721374753341676403451952341655653855389797811324915020179281845957050715299000591241167805775846187336337139542542479929343281606948152234261207572600397829069791816580924163554590863000815170571769790150035353883375357394711564204682282412917639514549384966141185969014996271636355884645291394356760539065768582697911955774210636902836557298912564546497864091519634373537089084563805156101754147599161456839642388199502438219210943017482563120053995528768092856506738279647502095873882105239515877003530219831179859705756253273071232020361024783426896688494508222500073633560514206852147703947576975241387664535310859632721152453993505789749927523135326906176622437627795559822832785330114639089964787768270919420948116960845256075822488736513711768656475380091114775219345751602802008508033257517287722592288147231256808198273291781543718188963908686482040379463514189529258966219467799836364272828837954928890784247690122552446856071737033877724561329150591394307204535187986178022592348543963326489792918978750862243945575485156256114707468640156265060671154081620491826732694966592875214091814780756958046948118180193632822466341805265122223330334922798767674608442835303409339964466260285379976119691679168004430807807791748716837137028796928746459619803346531026699980799095141937404336474513975384433208116476159826686612992010727405373389032592141480388335769917089297334659525182956133322612976390447876458411257181193765202413444833790350706045194176004426752063622404186374671275729459996553926126713200482283018629635324061057922802146185361831079633289456979158397880661905416898369654470458571079129621604975633804418266272249671534538147545081106361387925833768354093162634539289604320974379234903881461224191477837301877128419095406209199206759687923142153577164871302106783156980010301863340377014896496874608657062278239573241314009907766319408618879606851992511859572870388907410199565476860928894244049714707781337030565471641711215635053180231210306543968710798594457794425564427550775224302543197553508749791004164505808845584955332773861313103576081880803878885802629571585555400810606944770990871959244561785303781933028666657262645761552952347532820916546115923109448881274226724105791961954255626247627609794670074267163746994854981274223840274858361348399371471516815854644168378426912784004483543661522741705108208935610278930503396862382064082289710366091807081482275111608971449818930019440926445407395943073256914188804585681485204536634037759282810793691450379856219411447824666094608279650343431226063466965095445640501093579709780958629118748377036506304737137584043081841772314616643983134334221811972013907487387166069058340684070167906157136288416168910327892210092881539013814273826316723908463959488904470925307954564281534849003674892280396945149958538623871656989555536361787913485731114234457937473482309511681037269644280570132746819784988311507691572311511387922109676452210530423593528282411286796847935759273797019933008912121480190757790492387290359878353213285420867106264375061730552977218442649826220659366588528062251452144829063480939201747186009236256418798708589503299866567690958212707364278624085543284846021968169215764582494402796174349338040816854037027787782985666133664930901183434311842680950284442767283152534892995339254270287467926547502515870365948683350263310534371219097020120326932353639448182957121879224533321851703538379896042728809497304513248937436972347089708776846804696516048794624652176881504580603838299180382018532589998278746186626370475032009682391183269211842151221239410909785172283658039391319863600959919390542115003400830852020328887475669818283836274452991352159301861758842496813329995501212526171826071260186338214550998832494852745103124861944121320915400416693042465399182623367058541839901567493084911435108717586598101370428132035000016407186456396738937137431869876606521838407099097146173369827678008664494167083265077420996438784504657238350854360056316730648537524182215273709262447731655648574210082074897662909682553176180076720526056762889711466494392250443847344985190685910573073902786479736511225641550398253298492172337505184693297212145016111083245956921935351831303880205982809958236835807973963999607800349108113391427248984058189424970778509677379511162815258497985415126315234849005577423366063154330801535142584695814363226397356866847181174264921486786712033854564560908406460112719650201268303085374037178924891143427565208537622169699018435770162300409857476327674061679311582322921418547778931785619115462073334731678407808187196721963308552688097038397178577029689556381393703436607848835927918353031098239654708111145137549111547489656668524937497353482669003186718919697097844270900082654141480684477714499286033223850189016693777192530754171982770347997907729824377785806943993724664551868583933573874805680883216486591938309779709947490172428974183418905458676132190715945040938622218381662613910791738428695534539914488695747933197484528654210828681144057887354099168255801526710032219130510209339195466313201839097143280125658054549683196005795399434706264992796544378466378286086072929131881264134030612031557032961640327199452906047767089715747852202308308287627520501440447811981946911932455766766869538634603250450636314887616025417948288760552630538499865012693975247857429664942966044993428731031117595057733546466888156508876523131891992466603142749375347887800973890983815096551681375989764348204698959145284771747363422280590560355524642015879042391353794627874849861227254224990254007520674160802845567542566325364758033202527763200455313606713662311081688183646521262833191185442163571330387212665447928065876614498042014915664125405505590093897655000203502466287005115098691678419809241472806354533691239489464065280065992189508951941224298536160741486388976887842864602081862781791911801947766189349296175543997241000171709367821621353612691556108608683835866486935114109785788737925146762147517782056550019172827194651953093623759057879331969597571009007497020072358259024857175708238115965907163920061984786575838407911781602441375925007516603906310295008399851989555155725953292168724394421054732554590443327342187440158430455065739926107326752972043772278265478872621949066052965736489997077306564406957761306710490012393152844752570873893191373802333868887088369343528050606225702154203249073015817439906850664987946350549751686674860108858884439552985978153710947968834286495617222799395534376365780104204907661509102287141694925869197752026011981351469004399641294209350126035580950340261735589891750424179201093718408703919364205100816850769676427606549600806067335698201292178730420319441728162757039220940146953629410177368974890742979108341331062496848580663272966539287911141503137570750827602181411364759728800147529222406275879430089960465012912860358786400647164152441240673097529061573333021711619870371831026096251293710213221858528567332862851143675781118944440851828748264245270432514470446689450687336997485880010397077361745795377036265637579921771604750199095841565838540018178874042821971588477759605615644808442866495785265922148910673742214011514720769093424556539861660075634551787323159268860900484069506456845668968039866506362505544560004594432483231746557291917463875953498446107631030633201267688726232155375798775270034231955764116849995168595642815817611247595840455476788864384188838753209886866609136685890174842001954011698256082233038258516629694855828294503745616286799574743483340338430423049922521407161523184824789451000430768338186493938370250086160530973132961761677979066376810594821034772653533707111686977237457444117432218564855369484291188312638238438206071409382731969031110597211446295105784354700800685338061843243783450860045773433340430973058094549543021489475530970928149066341860847620841968123324538663911329958419994343938122384211079423369908801181858022401213800293666120063256770593832717406216887953158114528988427893091818163835265593847361101047998828325100680819549482035588754063421579679569336063865831674919691625921888948027354542492130166747751914912212973795428582912739502720930210100139522822966850729138607427762900786764145890129755402561638926076549082763920798442068687206506737446517082110745041833043119100545583717156921904512994601593626731723959633164181270418053504830561648797449071804396118319400739230720773932134472260260875429215129960603440215255651142960191974259304020288358739541252284575835615802475724709039040885659194189948862321595707288966881802599931647545097141316173719191960940793726514830474182235227143725082860313155260593118142385284540300314995958156021037372597190601390280036033575888569150703752211009603974686904831762373666283218250315592479155230972496231968158703609365009860762549110960821099852931795780750605728790559488857745703916171035353778782131430838960793969093255570048400336540422446157087887921764071353909316210071812218018930857654369340477119085667502932555289092504165745495768298059926858656649800151803474486492836476676024147404637256052337182890789311721675937506425176923657091792928286279724264347490889591174996484823100003008610816327293132393569626587577778723356061624841557211774074112678355667607652990388683561527697212739780009039789648634909087704458268957763873926136540970868235162061580424588789698541686752106133731000565046797695334261308466895461392303666148442568598241258526309612513518958102712563461331651201287912136354904545415146928123467207590154967432005860598428727100602746836732666380703094859025663630352502018312303297532739246096161944656725571506934481045953511190167210521567201051838634072478337071846639752459516909631009338401629234347990333146521450022100202567542849766344681801544582113273235802952752391693571193335360218333677769223063845415945762631087447400561076013543670155484484961682738716538835785529215710350946305087302254076742541116382892195974989422007163099672443087506183284164118140362977467653958052119169315200664589139586941850837331905680483653007376278886858637444719506145083406350854951587067024881436989987220476307502546053314255568440696728070831312263287492947736590712597931517962217763653348755908277914967461764224623979469495460990910051667604284325006758185983465426486466023071009836051987913514327439042513497964921584196593728688154788369098943453469956957009951946643144418279710619069813988130430660548090737917519340335714219191959757073101656278905005647581291688947106046566654437354954761704923241481065571350429380753290174366057480180589359592135628168874862862949892119198593693868863644657809632370122456161207607871695373558617040134067331349489618132179551863551537722226630069965336419343560735112279026576948390387403931396793634390650471955502325909590103003682444606655591016261280906020992393147374170029106373558133059965519402939019954887104447747797778898815662827976625086325099762520040020869745112028173183331288570203420244194241294842187175447993220800342377473821986703758015196159833223295338379830963947881164846281432712904876453026163865660391379271133098279655782251120232090900395244071541348419802180105412971932820710234441627313114016163575122421292553337233578711359844657674863557706471787104428292946871048517504290800553252524388154889444956332836178390732840422283896985789208689210082911675593089363041625299294374863764563780421789358687688028834011598017227165295990981766929483157709414662502100282773149052634041126198006135860151183023862396039759061631399659762325655158097307216956194387865321631280450187825641095020243091754875152947932935077373471964708038617785237297264022578420401363197443034022097261875531552439852812832109650465465112299486632325877028790665357831435787279053679973697950307358605082573590152014988254119107407372330276597568493573326645661121124322786044106881152272550164494863126039912238043211593104681304373363086905074394195294537050525875120784860185745978341608605891177929817993603471164013853240291879076296728190670262753584547126949599372426026973249823443278617926342227441218694322149595088573783034649865346178500731918066486739848074841559644081523312657030329288733612963366159978499664338532417709979259995257695728192622906052111433469648182078649779326719123396843675216982434359652613176872193725413287116975724513311026075426237472062405131156495782079509761891097348880413255830766984121235598677514455789011085440559974175067760404754405557003898982158958564262844935901198501189801952378428831044153424837536103581090722924309931653408798633770187822862396994187786731221852034765117183176270417447717019250954907222617359505008172739631832599666724587152287671870101782882936739862624845823749587809262553847802529001635993751432510313804127299198098785417012763141961362635904503278354480314059466099456131403090483388670805394493740170294195441997041026056366019150275442192864236445668321958851537334217783787461071964999667517676652523351803201162839345936045815671642920459989069068960341372401303722805880490084063141035215304232378792231296022575361797732528389356359119336462343680427142639027131121986825121806551761989811113069059865421970082182427459868089896039406675218232238139290306147301719131502422307298947132821113579551622336711221173267847317515050967269055271038115393763072896290472791963533228166513521978923871948650836995391816337942439886445574806852136090086172725297262436111979060145323256579862551440628725917526500400113336295503888234784724207176934424847894365299103547006010065975249008515174808738293639477136061040615221751294099259060743082363586592522145978202635550002603079519896642776925068610910245159104771952196799158660614471530883039415807064493691185953583863504963767925329725244120460841836581667997203976561484251187517099610711841316971921111635746843035304026718511242652838051241961829502753759386464388274084222910923355399736631918030427688070870113477510110155066129304080600689512410754741928074318559584184740030304718194042056287906674785231671865210812711645030565706238644150971118966924905971647420731356153348207955758920179021044242060129440813623333448896346072567299114568483899099207853008417423074511343710655733235127450013768926444018926215070244917818781488416160978508794833679436029786099084765447957983068359156520188249376338934300312029350301519187064151537384884009069300855682605953785185848571851839465516644075168989600957429004983892121188662407062337232934217970511646251268733550341860777694512543150159693640323182748911659700810063049722377053885967982014651608162739872920708697629916874201529500851528280351892822393195074972602618911267884436114219947790080767136583801761256874060988196996712631289034833002200552504588533038731103824405439900218738765199005891339897643663519259676965614680709852250493610729777740497627965727324351430721896692217602571702358737098022070006393671253113854541837218765497044375940470901121937548826294483097978023704563717723216413723208777570900708975668536413273711671384876448838549356479288019454059622096305261613086091137428659835610193754150136626121071149811179262131903249175441579638722110592334156601738825623884288743128380603835706970319803432578908145679199619199876289837775129392552813632117805099252771076006115593181454790827200496021118386502875471184942978858471338082824602021105929085080997209715401984464936540939114809033804664602769753789525597454815457553762495363255368939526129720678553868207284611451616218954677919320107139022222673798216587591235159909127184648731506427977074773379854813336016309764639037552592172301861613946481305841212272001040759629069861971328127676294830803286793939401760474138126207013406253145455221123808798563149093261015326245104021218002619634275793561652267795540370154359961375710051470454096652075728319689745876464136606516258781105347818454370171608742361306598181090047686879318976923703215747306047375851298508353694960150960927289160169599068097842850813005250504434701720073893033842070830233327730347839738097752978199051148629836651409749343353462807203612727102293028849891340879987398116877818651616640822903469887837837417863201451897457562102756762643138911555236352122110173959686355805393397324133844151265241160104461796454330443665571564397316244338560603674305661851372942919585899899258308234479840626888737604689242201637722953815809067221277353631239705662357830409788531078411185046103469159649984670870961954239749198285080161817390356305969773832520020560891892516568160816533960662825251342142300534193211737518325710952396483774352665116615153843943353200434251353384993425034168721749364985171095855283272890081153177631590049491800532372334577315001851766171920485260899184149409140229325070630241078055523755857817125764718256800605451387918887325661940566958542797935047599593722285650047318199968866179287288754047385863953783631787663866373746926686847118313049855202814888671941264662596810412919936659695745365727402984953022779113286474289547963809761738649466553338404459709420446587393440588846703201886272107153842187469250843660361346400851133549634157888850403873605694634775660435703395415481890466502556729188268182145580178945300195925887618503237012366038726814410987426432794306204333648326319323801221068183073876827431995887333369164500184667007792334770228342640831962428745353946002886551103004253022419317772319153253558102989811109915667606156198941517542180557131702714757164869582429325483693884225644495798122040473822171488003906548592062032829767568586540968004090659779379230623485041911654330040684315202983170857114703733737839376990932089832656610664086443158237498426671137864834663908352128815081514135265721032638684119861316603846646910176122931323583252445043528126170622084780897955844922991151301816460921722679570334924854644588138439360271160728741034350515969729699789380352383045196876352109428917147374370235981198772216680559860420244475680707304433447115576954319037420171303792645365732917010341697932825395285640245873449144930073169037523853800749128109292515700671319839498847385058555822716079221300408691810426594438184481622383611128169564532227438158935535517528300272390596977164319766542728343736700320704081048804332391458452004036998332438178030254532672057538851391354987741543526342021616480920923702211333815482451761360508689673848647156207275224087398888653292150935068610420787006587577827727609787830779884537936469699223646033927186207875110947338570828959262757200577595916549301687613180040770297861457068246885342470809644333819180939234639174759972843880578643941820282228684584651832188955999623588285507381050242892963529472565414687560872917571504345787625589305595526027304068451806479558893905754398223914161310746455077381063486734823801967526710964885991441775713565361109024750858048035735103495335451630203174839195231474019509492164636895879471713375868238949786929723465576246288923652096344281071168982815070690779954261983142547007024923777910289511215351416100228188790263186100451668167557888165210080531743618953676824840238286365387475732094051867303656698639983692539229524757928435399869991718428193092238771514364754648004685580272057076319255546808573242209042910945671769155642863333364553489026546917384148926778213434941597156362304130966458444041043949152565647177934762842823345018775186205114688954483996089777585487814156874489248504119575565077387186115557805821909890489663568229406515019148127750150871232449082984181349370571354534418982511798627750321401240570929368779351162732959721018637786431189700548230129232216794607782121075681485246719205729230805384645770940286827795922006785109184012831963796427640531726677637432024400379312709304808779941883367087653268981831646097342116800917586992762544021963545042427015443678334148900579195220349638817881730203973540316535256912640694874844342165301739599003474468481687056247752742131384658034171913953114775330552764996573456482365078033410591919159686013688412126782627146502259703514018929140988383274273811658570299226010018418362527058828652923825063898983769416824434853408513493631699618235002815592654375723903276251329234596547602861344240297010454214088795301133648746126570652506914278664874873707536912778344836312901225403388269185864309572615603158776116356207150143847375713509175717858825421403812613034505585552925560586825190089037760690791437427709238654071629991607277780315997836946357653579486937155638982781996774803194712948538808972707562044103006299728432555043587161666823403267299726421886579436292782310797877580673594954995893020429105563540621295481601049462682108470112390454002189433953496930846910716024787127857989672022723295770668697475952631621209994458804391998870907664844112132655080680215640504531300111434531517103029661727594220324359280408293500959132967193690148508857062839749770581998375075687928969586062519405619722389691925101713349770267715227681372448795843081678704491285609529690298873391082161594198146454963116268761325106539990043830467083103936066386328918622908699141224563414912015086554866773117590527688575535434437142443270348724411239228050011187873018179365576291559526237039405529249271255279813930024859976509633252502232543833124437613242818326892922045573525521867714619752361807798827771858253689841955064136023312063369475268523646377574782220370588211101752575473325517121610099774922900350665649555349987951285908758201232333338561389695798165936872189826982562372585830746876575325723881156094923430089365599356593454179551224214245405225414673102184922618494260685811361312828265567965296508795425585746351173535922314026338963270284787190054822297892402027012414480362038550619075654072885696720893383694211823304565537926713563591438539182681201331892791825196796318393434544506901181201655803220140902226945378557013187008929297088043059637472767992268130328693902200454698717995743076975695987726616863590230445215801131761541649316036286787930409382531539524075867919557700802090643117983477486770866752437863035181812850828698192048443136572619743105476073216184962418542105921458742173888711890922209270205130330597232076499142427421047455345574191840597279116322946265201613665210643505830363228252018635879762994433593228794121964786833964075505975938786186847826245531125232248875640537009555177951875763948373466244243977040085401534151413866002293195724668637899570596061007882660437643943679512219956873565231371318824859099758197124059880571618001690528260448226636022176105998064387245288401980159276636559046801928391580104455919582981268465210412449712693052825075668212125927440352339408679666605813108965372806436500978495188797823581382196669170067449677750259589665886042493807328707420130456656995300932864586502008969500417903429345887261482548167876958912433750702248361384643643092184178143972970571605910639239089538594769172192474076688107668966856251696586254736028739962022233139222849622972393507644179543451945445190493182877058115057545841595988780461023604104234184431941749412616636663194255278072950692160968632851109359421298627624029351483544911103214053666805556515306555418561554875814530211071167467592880627552232352762973455835600133299389759294856285829615574181814366789814187720922436643646332226677155270917167573962392798076243175270932090025159686414889514620390986454237923165378178968911007372708559610349121173307129108062663431123644469936674515253421916788483172071721210239443219950303139481785882636074727041855466367599776878207150331784053296425376746506473905673503496801064938267629833638782270786406668919400892239817255518465456842907915103219447775944382994949783888245269810899734708151708074897549425350224469654435276278990594430401274810651926890289857237662636089641106290728305721161064490935309739489778164421296227109935695673287634335509156071339760643930148908241624950274839321128858824184015810244670336475102137467320447899065568601824974835123187130218840035759523718578232358761137471458237037755214316083175252344753727349428743450810602586075558535405578929816839298330959674502247888973312128130059470391591630290790376109501691096586219191782279318043614394383823178572587249728657528116022179128284696353092813819673737729789556830837991418280325093449124527401628174507226699087426422593728439554755646566101868127813885143544315333721412610782699744584918539340497244412353361240480460244143294969191767200866490934738320443307275632968769520608870914195812327838836716726906049848794429245006811922073133452129157511449251250910683771437124404932016279860484863198337622473256386062653920223434835142577444722247313466783032625476619019587999609060734991606409484609933683096434859206770486727923415949858302117198285946320008030310787154914089434171160183840193748914700958944476749280670272857466001088848876493119556096565102437399278566140581906523914448321631638535021830683176783529793500662610497715670579312556819924936268317815362003837883234554441656938015448450804130392925286138188598270797318515181064522137410211908968111747806601313387836002125146345743644565143641569318436865408245248424889848200472498884651071555585888682485466899487200405344875162912103515753748925574217281626677685232951620001554025794913343058976758076673263691361476744492530964900225667787828699655273124361868838499166539777446834870050438413981059626911934401243002483202268475313327212017136414546988422436014385320848729327320278507443103529771026131000299366286017097574078743902757337671369622111098842554107496067724501897219821509985184971336071095959282733649056364921240559284327573599246267033778092624944563355399070343307805376053738896404560556810425101196073721919312849030675216364753359055761586769053322300018952223147398593636757787816906401193243903520270950509550750618106177104345683185245488712231896553727327445553313206501812112979066622502280801667659230707753051891407222723184141574411629889741364564166602040438600305120832373069390793677015274918497947592056036966752546901777123569233597893310719041113320172348073145431815902162964930862682539748516396119250746457335494582251592813062838839023219149771217131936703950306858082580323458733194814284668682755359683056851204467074714663682363937007173390887853083794573301856201655872600386399212847185906020174201143877500544559758035090699392942898269786425864102039768490980689466512111225703005391911647526755108676497002251724242953956544136879609034270017781228831386427596701853058452413211203273519758408277421082867589694684706080426621810988942344023359544701062754585042090367935631925891940924919753428613647669701402295801344225399402015334762266416830205895926346126515751921030778996103450648664656684001059260276810972044855655103009228310786333590933670002470575032354954474572642929392561461304220779769897768095483844259292656493071514625706819934668618797154938443977201958590679290356212648886450431651772177114335876483611854458599921422046984612774979085566031271197256508695584401903776692455722148220501602610366023161979123984467515034596389896513564710290659537104742251967870140425097866335732233840651419333213144801737961832079024556384878486359193675512307392713333167860351756574270544967086663267054049386694738080886713476949587221215300083736379847829278224960532352905386913838289165486052257345310714128315766256274704527169027554950757096213573291629248303782432949217546141032383749501791884747519072269566345830543656631819713640268215136062612139088286743601335014608449664100911591904291472880529834328669235057527125015416086297446263406456725318475757140108709364199662992475827761948474997368528281362936450091798045170841474607671860773395212488804278817751762925323738985556134561377426020729179384963148170302851016098876381411773639205775406183662022239815156304909403767594987228779612670993777302089086040617566356313539355167864346075469023253812121700716008205049078278203985736456990686850128507534235650840115806665357655926965376072921454462304867483401380819356779083918601763898410173359458762499006334830685656809811028954619919115588221902541247035269945168375557502469898022030288697950321015455510606340158018918165502564405924255776605929150159208513103751211996041030772869666905823430278819758408102597128091765175678323990777214644573078843392840300712872525462437156324283828574311148216144728629452330846892260842918946921973340094757060604525988076383689808756429410895982696971389807369059368770198431195126514785882756035072330362259988548831754741176341075877023172282750512108765077921270010037615082737795491281555091576778406753508377596533574466120896004569771745302138359726336125298487257592125868449089243471438487240171351265356050825037201631602170466595923102555056869711098354090936669483463280129082613167279958416385772916516560262483873508333717449248700948585415974200079200176972174675733009204614445798903084200805851340860017145850666585232296527914646972743109464784038944603156580594855227920543153018519243270355110135337354393219156627950749344162229956284650181580480913585283344651278845339324833665560222534111747958596976553176241046350335440339350251071660753328474726232474540531566499127938677729893276209177890619581198083454060638018332904245209273417195692713645180726593345272557286330223185386341051770124909148717183225286529450537035813659348471657106668728322597802155608726772889108981303023832722212585796895997340690341645742711194953745248134661475797621252910192868577734155283280434963398184970293094638133432418921592782371404105274361012069583289372924910902801817098599245605631185493628900748225464004381042734882254742086334333823203088260962210814343045508858286250530796998855121162268596013620865884432673511029724640213237646223835794506221704384413520695878819615090357395580669287547679584700313844916454381263551733475635093837846643340092229237651845430464290989078702410605291676417887605975194300238768525226585614699406961443025662381707176073210139520070152256485563679996314888370241514188215877373174101617699580477593493664587090297531165619017103830904758161263671972679278595764276560934053261067354213788927453528681913629663712908248093071858869127776232041094544451868632636847328506072870144847215248415082615374192307064068936749599317493932754090238288980755353620086655400126651654146002743761254009428808155654025762939871182094818004805335730587931562592462897390076887959852954095001608788516608429135622626861174312943485165024798282732467874244886545699975709519097322194653599404839849527758549440841564741485006072613291210386584607042024591846730071489487862247128970006591066620901150056161245211396699238981291605131424581504249466593586177634985082955519373677840613550124474497919229742078514034621024216357072253659256056326448682023336160994859927318396735109516766582766407687994147162869257278580666439916734186721366835428363592477944633323012569644371858989306764254177404970118269942337777074527908777388336752035678838572867717342884709397642939096853957785903465907311992356419450934087115278624944299535507010801098358324122629162167740514872993349721731505214511708523771521402029525218757408525080021904947573122811606692913328266353670080402085375603645456856476864482924212571269465874631408326223704555380585914023644008682232584715187771199994545541149092543744688105765743898429279899624129541412276614216610741682602682143717725272785631538050856671021093448071630850439111488600657055674359786379940106088405324621509997364477322883051078454877957685565004494094863568467219309447957143178048032241677191765406822864797118769849978029561165588950680679940862332809806990619639798316870999747079059081690274478740560810183972179930174363955184128338938904986187255736321533573756745209961488886801905369131297797107609369408400157861135788864789702829846497314403507775831416180061178857750706895391037214633314402464818346801876271219583810891228077412622943266299651712803370092673142056785906850057986642157145181577394398412042444349677707267072685624769589998792568138659792552763291081328261821681849340980663896930645182884407993071549022905507764070802077307283896188760224072015984477856326130922381696854053953479137208317376213132410478887901191988718406475344948775226914186074173185625805016707611286322713279086886971817604665864334501412601594093100004819738532869082272869209066964300188992228833947930324653210395061442190281199524042350506218220949956311179802078658466263897464223774908728115747584181651984262628584450890117304855728078921312815732676993462123304747415945937300360001731476686459961175469386176663030585115551661514186238662884080209308787460698438909693170210544257141724313885076772889058180245386542751635362823768141368379260265429403284888427997326606177676351027951897928428513018466661086652652773283561494628912582520888246169712612578533297631093791325617787611443772111752984587820987951435321187623490757714533516126980545893068755943092543559176916975194008649486675312026058259355029374995593908453067122564092350764735222409857755951726127093125422881920488257318496481301228586024133404367751345570040127424847104131961738447534819261719959168648023190711401861524947305332124381078376785096171218113728131702522310542139533501290534904121774643800970288389547684724542409734716769590163547754632281048213320416840457447723399888478052939025284004568993575037137108429741932177092149991829288471992459035284022844017367007054551341867601939452048776388620070653389769212698874081841341767046914469657928985845759718922387616245438055675853221138080733364679874240064688048817909546177520945466439724590533767164611614462906434981449850376862996158818298114629539085697726255758919678238137347344644831418735596533556623753599865548515856666258991018994715592875688034772595395811613674540604978147730707766712077569311146546712719282788139742106919499683160829855139735659933118791001957118164685143992644136117324296295187024044144805879613139095416461214830251732956204974225203913805862144748935424539760684543714007121436858863741027182546163253284901031761591952672424374079703243465922584093801709759400109044959649760282857545625119015005928388215222747008138232253156696232300929644993122772164040044072199010858895558984255732669647775131908808621322572589370517885038885685124801189781082159943496898863461730715235800567618707894915124670622507730634999184469210480683898526172507880572505811271720189960256612273532318805429855527268045162549177634770080202876768742826478277798184095821777598086638967041655555406029364237750136499461319452863865285702921501919693644749493727665048328702980657866185204514458870931266340441890924593215342037107335940777374878743873099755772860812732848110035827910753848909710476774761545032421719183872993196519750477916106031916187130533459764192221336449660873735228829187533547300114108083286829404589261289204638119657515619537230937133572049456887328563749993820985474243068293827989728684820209319002153628746475163467099869751857061781112531616146504922517343530058326723032137978281899434536045393594830987376608193956844586778104084933913595886856991415616067295778577953894805412091130217988037834143638024791204713538003596238077879969422040428362884062631029447033126568228989337101901872761224696162539497568952243223521703422446079893839606604868795260056878192049317410743702333260092557826104497193148695927753618836203559153941800889067164017479330238924927803537687827033239047173771595466657372280479068129172798391629125674589424644019786039965522403047601616685640932507685597403306417876205909447963921839871567054379877040205130783138269624480755691571637573751531971081905449891584697018154886166432333695910610956195742761942482878751327737389684366733755228517613233362921336030080254130911373104394285394302415434936975461102476596204755463160670956146383814150752355225280613405641564495982352582708814264318016565014571211565963362309455743916774735310244458741310006266987221309114069288733488442752421698793242443173266086375738728063753393059641637168101954574153168791303643897636238635199781821933455387747462853282405178911347788812161815365323824399657755874781094194096074198638161150196906618270267540461540610740679238601362655614065637886993335340323506198819800773580644161434062708782052331031496261592144490802696870350309540162906641284795632340108638495205107524398514186139334489501562547070799565387553365281373977218904496554221613667705117174170284912419349499790514735097626129673424144576579765020447028094332106735522001364342922136895694361843943289590531156745289702809810791279744686002556442977094439176511907255599658265546695547894237024451810910427333900424505068403530931586892282361254285341219262242180791128492416423767798329062785155632368247811720965735977085165035742270745212501015660865478471534938626649692480101367055799205077212038104095849619760274511298955834574913732488273182188733783114991163139481235021836220526846000642114905464580157725539992178549750070603602315064342438410892558032244693329663112735810500794233198565788158803154908544243728291620633569784957336151272928833384949832342894568155755222323066367024827836617502409913045534733604124181742275253305824726076249724050700294336304015004002023202573474323943842472724343080342644805914564037457922654872351485492054014902597305236478398931176596309596508146982434050042789330681764895742483089892905418979707198968196366933928678833458930174388692806867351481982478713570169209215686698138065130927844207288403439467129586019735229776413280693333069444375733158995121762679919028406022933393281367856277409105453822971677503433364058773595427960794049933527100697066996743814397320315813578868675768958337340217015470058877877108030354087200539277495639533908987681289366709449617544642963512845837716300455625494525886645762076347082898772684488914064159743650490836658421865397824239781728346531690695098837474118011583933861799721544853323365906434702966627683387073228988689401929554034991829851700202665664680765445869620444838227962381834280319072149675219933883346163536264566177284232009523537254360152492637511163589155518684087620423951864380535742013897704736772685510176345286968122792258641436925731840865913717148325793376445081209278439181862648918767077350738923736007412946720412237718274847454856760790218555781937074136491822130154426701821968116044927818119088014945315105477430399504803229753430335724486935191570216804120958768895091003110703105613120153088128008778671769659713867279925771876315154533378286345532934892191457401937179087836317655390859256506511569189621104413385423352510034257834006722409904029077471641081754587798153589576178815024030992500160759400886704695986791261494242513139908038188670025045170694543788396670346118779032826271388319482878581828864700434743605185327619550322319550336011448290325748985684863341226325209767671732174799771168135766696752391185614457300337614226251935180297634861609012192762270191284766707696087588558044629390806793438771168185165375602956956524731702434701947377205023356648520380698869727867279677303467399047412379437601204908979641203875861887848879618519946538616847781254463027990430279903829908792475561532164922344875381737546883723505239930318878678036683489068940027878256324606204647338195342705571705807341140202765852435277269647999493391526177696440309565395280113842276560075609095123852464497167983061434902666013657088357588383043042718429722475050812879235483287709352648485417686017482557831988197478738757750844764484135550912079541897473157978215128924664828455472319344506841954250348371418922139276533097126879001837927141524021500364072862422568895660563750436692982298334839844669943192731608948982111713004171661347464064445737495922964009954038487043397119432791632813019364363718848208050647853385286312283833759380293739474803421313265109902002740411857870869461923657039079631830921774243436581782851781810341727534502537081906037802904069982228376096444966144332585653269582022343845833614680025665626863914562373040140209034785071781503240890593118256925106776118573118196225741272720175755197745410655270709503459083002821821185320560155423376135931414598721448073620510453305957928705129945764867965412332804453727084711734412650911284854929556674813934245797990001234973662579214705706827087841895712376370399708812691236945156696881161369915736904003765433536122356567250481744971861231978265244661296172230874825650716471264219233378673073542106200649274384539789981435759234163057525227193329681688525982012082656198792303654066053778208768076762884582005668222346075535463288005975176719979479288735660703148649990806091248143368236822630143766886809931708046990659059877409665716013850384067106609653107405161226471131847633792898514097390346036018061202509818159037615058631866535603794150854655785261967458008448790145267205267989358907829995423787543839733061980468366391507772109956202907818669039093252510039781525612511316521500665861047291635286380543888383567972327942324057976793854576561557064030341737705370121490834433048920905379725340963694115181980567878259094653251219960201883099517611016591507634198567383236509001147498933480898257201292100182904595169333618044736476165647764677418086831308566732136702380003404647548789897178538368581850170520682078832824182704267050012548878351779984183011319887491491037289468876602358617039976712838940727109723824594121029733331134097170633768089350656818977423607379624513597612935212634434185816636162328955799048787981254235599883490671242899764029874733534567169149162976944492344649296609133856220454181950280094475861909625859820508455015528341587781223649092844205867174690724890973266579509701929617591328024507296489884630882227657078692537289477037406525706654440109727716265962535317204860542825878482115989607276687669018924373109411695208088000559183479214017415480400156731514438021054663370365277623813416142319446986607884686994549053203763730348165670871338719095924479181434086073668222691758344522938307056413437276200455644453968155976506108028482722579208479630593350071214278695529313991797468506140070143585262136182134615868103803949783137960327891163023588805841845617053659879772722742433088534702041716924381910350917664676114109843739769158638289085979683170244276997253527847348118290052608274486348840101359694858597139930842620069910598120550244627029128070591040433460673600787236507809720572529550412090166898784690952443565648463014789101645202844442380794636310049689190816947524505327660990799379590497242781090075326090704852428182534426654985248306409481830949562375502149833670488324212120712829793129460732087789587887339385571546199233173021985339133842029547400282257342817072210491060436107113016954652640057563667603618799042713396597915608316790509930520857366765539520232171511456333529472934424842474912770800391181555678078121041475552120222521774581388127827185691876830201194693766446340450983783553740581846533117129463596904298755072508669020851818534123539338692328906594670681492786057751445708416361282321936843525702468240867334902089585853621290516295932025736615034506688292825972290262287856567321962943509325348521220545333405824228769162374696904075602507233514608115618253753968350700965406752567829377545644037155919466220334963507421996694772513836267111757156950950977631413792914495785331379734172606140050292274233744714888809360917541332332430002236226486746728217831741759937739698700104505841999079625442511962182985388620838860324603787209520363176866409730535376269800540251408134406877500506354303205769493136989632176220660490005770582605263750943664270017623653988829810949980668455142765339142954606029232750741383954806842922902421514003884225999298437304667843593550270616422189269750995330437270183905133405156683766378567252156286076471180270306978736829667728695670860759571900792865602989288552565352087389126493048611214526606282312917489841027650556242780272227517056297829530181832800493394152222786774054617360603284861719134767862638335165351127973472233504511026836315315521146345855293242216559338759011053734964782630099408764410728805199702541009613525494439878060512401305637866875448081800453100758570876212210419297001838706263324266793555739772973139779365712471758291252722838101879866785536955564595532166701909008508439368850144793265662658252592391941142018271726431351234379969597493651179381618006628311712418589935373396874993032470792516994652819849779608307892905264725765591328911031902613780564855106260702715379728741627577587106070315381002479501530348226023100460409435301361363944908521954683941097547227472285176029835000843884006392092116178275696355162252208763786564391239792312705849867385666826916225494900044476668888656369463817530434702267114199488021639125807899994994802069220780399055573451203840588703321644689439280287248567881306309793046716190424543961322321382789419031297881715854244740475929634567104652643468335225052465155245479949535441116001721515144921257616540788876834596704474320175179795664867975110371664098305006210608048160947143213718061391699569048106474938599306496261961469033010037364382623101769447063136570490267217566165904332653499588767676339628088126053127761819171311550044516434301388410029474161651906169745168319674341118819235588081232333678648524052329472819734485911701895393772102064896852692342999720246844967757615092847987086885721981920237544327154946764128921098093299154862027760797471212841736874238633236170049945142039128980915641186380197546569056040001315291554587789938430627218793434024571618009702901635555020781753978556437671355522120279931424802990466990436532448338579189590057932569179925818791631931214581766530452932193142046549608622221421888694670024994378389134111372311572867760848465248752291848181270288252978993023637523617532625885766467013100430235694490178505265608109620047531768657133186597190640262329941086620640541767086752963526778819612007454629660581641453410515605949834010387314965607571127360538760104621768306365378805687960881779134836298392340558770914377139500939769164961736729238117672221168654342853836913157816237279495931900385558997477733342911805507043678734739367245579662840188472305228236083125553872548499014003180937912590307296139445030937565080408133868760215233955769291930232581764690911269437185034461201613972431477746610310669760335165991145598953056795353010386248587188849465851458358555029385955105959061662403941997110506219980485825118871920826199214531303792551109777019759555492558634930767131261120992417769199617048747567254747681041978837820517671972929818231844880269420899221658260311544988294912753350325610858147070635413776902718417731832761176547437409980831293821359378238314109619073833297669233444581651491401027718357183814508550572098163166658958834442029772351050294507791955868240240108358713820539537330585819380482703942972708734724479729308616423701196981370860308711350450524762688860687036148674212975919785729000054860557528356297858591057733910730847327269314880032466099493530941147872035197132034230925308956996287080289789723708652893791229602640513382262740007641035267597780066794276107261882709848328345455613505149400123141098986980542181390045505975792715630262934795202503273878299237069104079487665921005438554833548628779442961018500082630520838461161300302934926370881190212580388463702743061801726268436535320496074291655578937218239145327756795450350764876733577134474048005820670646708511952177752363710387588557925286615780882052501241054664675394076587561160938724686300063315646282991002778590414388977849230448607454934258338715558918609271361240720742889494263816395330376169820967508325937985502015298323263535475377275443578057367174157416470645197799951010855817883479945594531348316221705344365402486372789620346917935171913054806265105181973800768836610233344318349035358119001675217021029207261345669601746388293891002084603034793589839940756379780779836766508982339397870698119389204380490984867620934459202616177845748697851963841683588542157734530156293014656285077834269168270008550892910178820760894125490250281082313729620017807783716377414959799852949180243028445631531501402808846387460209579384339772193817979027163431849867530442301261311744903250656009352963616169878546498224239723659731523040103143039954711599068614674854540532984826170047531712646145353796578551903108332490620022501842349745944528701725976685840396707427390578239813805276305229411623786354350861019872900576507289230936309532402553353265298128826163411400330937475522641970435850296958472800445775323855756865209719185826718075294020598245853791675663088833736277029112915687574934743183143094649974369428578598424568809646095389677477908287448081508105118985854033037610112770552973868148652624321241576999911504998171625429868394212798616454722823181743977279978062902698471197008898126871760991609352240393481755223897972665989898113265818622953027126474633597494857800097065255708811750241863713767458832605550989123743486288286450258141214418663490312867133549591165474451352147016735343864085971114542205846229768794467496682161099623487882688322632302308970373003377513824931858971935787206840049396034252749353034006003435495303438647563756575597666578550550809629474116818225437615515499980771139138007128590759677723607742618340305698249386149933088049145905043301708775096866581332278327707702173019044048040660973026131818885815541696918471587895670070085002570483324541796735095512974069303255457019949619467010331256021288129653568188169527353654001907046062748285602096543110454875596734042784187736317614470956573154158157745723553487411167356408059033381913747294263974531604567685441493940393955162261930055684291707854346853137999431500905300678026706344981999594852163553375230874222050848866213458633978704631358719044655419423142730532639084832679542284146714726721486091544803858836200723049086489213009133428992473165743387178544490039113078342466694750562825147469417719511684461617382031777191249355254835170240454046644409225497468330426926115882633896952460182334971572255152191238176695347717806808179917124498994444269038347493005926560581012895550055647164807221739292169627871616557639883233552365688932297770378070504231276046344909363227865544592042740443676212152052669361672165605498243848992316619796806158587504998709759012843769919482666433917571340861997495543024362556852833752595596119835210804382823177748132923386661271173963830430536640744248551319515164009958999674857928682009310115220931781316939399390838740648729483621147323867389293768850312404111695062472774816301400281151055108818376453422688078542407312651205489264408695366656794068585251309969814633522586578992986884412022155403202768446640857041844487211424400819335512928504264584294175886166888883065592467942844151670774393701876816318320163175294592849316542650619939613748700458853449274103392828325903889893248336804723800578455254141618902168921023701268851351343795809954207226685925393726083564261860103068204623527242226373135835106162138506087445579285185724950646490828511858971163091231780475939682690160142306594811466461017291041653179355981282308674572221461944385848888439892841105746550419948805841692686767185877222515567519484518031874696687287949463741910910571104191747077244484218418542704595264838539233510198859299391312193933608919418682339047580430195381664197743356385081012071847469686424373040933635085197038193200240221174222131522517449480719136347072485229042225085952901015566413029932711398054133737065364315713294271381572879174465109960036364919433972543416617175819163555876681995321640885142790667652685280389467679889562172484639026987370609236591951587785337920489790236647292588135092610404060534427531162854643442644187480900886191801534250227910266907741718873737740535580525343798643731766823664064711106188703677495248733042786756621943945127786596369749673870883060350535367919899758795397193066096604868571915424802302540549556813907683750021259934728229250543804520046500721750306179148078294541257643512970266515959305593538762550412244665907774714745857411896211144617488934755924767654813497828690470150977545506306277561844371542669112555368364831662497339050901977283659369219595124081469052596779139134266531399530369809455672211137376023653238172051819262611801554654749382430688798187855092893058210870829324854187188415545354770914025784532745372314017233219091916425646386650827605230896404820756445099004294289521215713430425211353872147076042784393787633750681568427027748972127233485960990206390732749111944121685302617142773684186610072552952438163988322014546417657224573041158279470992451950421323800933608073970341635674143708014222661983220976921265517087117061524159636029037759070195503835288095828160318581568856754967745736649348792956019226316810733980969872422707344012305065079840119399169456557035201619866538631504846321834285655942402800414738196030831899863511391561256812323613481521873364329078846868503236391743147373672460780219743489961586983835500021663706185495102189297847522277216311699796255067856539835548294902943786454190385041013161551463146119991100998460723824959785340775114002710369054383374503510131948967230106296955405415811090481599516982298582200368212017827723312016613743771701970784199850218582776411706132869436705451344822512155336833399267474900293670493733408119498160296998960968268477294160196322122891725662672690424261939933829384433533505107713637226939899303787444295770751555313153492608354544686449610113783766740217918870563213065587316141427381705523992504743366035612428140610519007431920831722906701965661442786551428301434106491616340041062374943497903158322100061865169739636263633077054930211402720390070797100741116020167947796923388582189500037943252554078612913184606145506823254209582211399887936757171653312405997171775273224424820577651125303672489789367036242950836014072052897820184598487044012028331334133712574918306325847366968893636318197815542656466838512363377463545434751863120674041496393096655948155340006119705752584756928766928773189754873633633028457220873618686130229585655687065129990526769726003963616663941864802951888526057640673471131232543884707637543368425015652332758878316877267723932057959376694980965308164502056587782904948034052159915806647748872313271439484659146306947179589567857666486565253568377269223463988953235386745259107119520046981007499376153809677719886716666833296656177845707379059993066459378289201338351451810298622773072090770495649961105087796241282415980961774267402455848316961274113611970761807667489574163293313432451736938974104962898809910262907313024577738399743531768109880953537877675006660234164679503501028574598294531587317261213393010505464831176619756295697852302366298264323124813519005556325404269585369226994089633152520557382685659721565208655043093986732205768218363588664253348909641946505903709359483989521421501645328293936903491056536642198824233641946494288615393445746338544660847520236426973800677426801256145824701810046738119954095059924027267227190223828025115349930903535291026320096181334098597047253137349786097497722775561501631021381642185517509801422757585931072196258644578789556934680618894211992570315002581844430929768252475074713364984860877005790265134093319189778120685403229711945524403902073419513484583719328180538808060829807935743748804971033830830322137983556946237743523125138921829377111899929034159085985131208970044254932065736742605346558545381348858300529797917644309171264303750066509672082981113269126183918766512797873050000348888240551344545337955873905228991029769597770008671844144607969473875413293194389200938547229228913110542282131070598072167480180958422176956630065152736979635725783379572813056921062787681106748993335359359740231848071981433528922890532577826392178833777444305166141642440445069952901524240084727674422412196255933595283473834276577954950636711063649837574889159463763464312132352795736851766022821237842243722077469066789402190184786519671110178761376066514008189060456368549688919492256118096263730285862805700273119895254216647167669911572553300702157528193987333021330308321476322677694789338942554252225779503374088522250397052022406832312923663852710928444642668695290651105803204217018076420489968000037137401275752895044337965073267474524966174768679347549591991307465361205327387119893199292706069024235705630011476725197668269491333932387238782929842268672739158470277045062426521352724977568152073160324509820718085498184482892818005372149628228276610317861458129967760045376755499770493534720381586187038350953054291822998842380870939454096799987767939276101912424895922373716944165167399377488156241658372996923025438305058019830586464967698237397618599383462568166364846490607882097712014203717930898155067500646702033017950814924383224584263071113845911996406067236605021271305296608621693513701359104732929649493324886619590864558668700866219510388140592919358894443564484144128161348430973591939208787118995482163047162973546196532232812975725850103142904939112942616654911034867803597546465623674025570206593776751945191533638270418247454469441920970096690710911503083409440518507859869100214649675666225916881104483069953404772028102822094212586073106461669420460888721324451041098471359248852053748559878950132470667405747509789669474610988046918817546649163702798012392295422289340793822725131142426562529322461650868549970190171480856138666329869156614341614921537740615376917374725799260905605331380522572626825131326527838918271073427585669686541172588051991046603265433771349475165811934429030830564152013937679258288618948520237535331899721177358705741945982537136133801710314954142192895541445248070469048083119708156975551935518157116354093747655212142431813156652004807096048416192869724229287681045747341429966779966544982838262376685103582132731791611692235300315835887610618116011908754171610956816206611462781899090314811404511386343005456593506217101429527312569503700991086225688777436642704899183098719622964087909944206480930585305072585633248990616139311929641324604188439838070845934748607695189749521899870614013156123581270879327025126070683709751594391837202063214118827227317005742504925584994414819377843496519683497645231452136062002476231485265031379414095875742998582743185101255336179335758539096125225360962161492498303478453973643524669625320744230399560613001579209815900181902299952405436897309627711892708993765379844609967529141749089436248652640986303970528357434122722617709087687045103074217380433387890327627076358940021321856004302727317265066182918647806567848626861104085124909334935164708122594877255450172463599453286380759833454714445746152309860783575099225376408226638785326676148872585974901395213908624045028242166005905487505571206497931247869090006211249716042861589951909647201621073223580098741308898581138262441133363941405590686354570027629161933470327961026128510413913845637332254325411772105055871715980526968553186998840597647882637756420474936952561996958189719240575903125771107717939665888788008739019809286865167825809025807383559205016640208594369638792952359552591875968295716757424699779078982152065806562779794796748537082053248906160685807260160921166081380851693714774246419347012929414209030966184769394672434826516846319327037006986912719160105330403296468268623005462771674066009753698496258788482284415039448654606744138785249661200995487186513032548796588589248385825677063202809779804224185862086808777804713561864283525856099266255436550239093470399230302148286406006538504571949790253113971123599383571023256092467638883424273202023989002825498438966961390428118769469453637654430592784326928368993956998865888190156256991304009146661117755421795291204761087522448748208583512150037836324463325958387290848377877146060203998962019559144461492169576467603690304948174587764000341197907587024481669056896493271070374083633919895590415106596533800889753787342983379899481337761091998405867705643930096481926552159845976790232608469492600347741641853104379610565100880450945548185979783767034605625724964237462819695918152992120023731819158486405405375991736730170998770585132247601050337374187438790157533274785298954675646346868837819332703782379801150938612074396826668268709917855146641328235825137391498993055277214542117923423717819160072267396388474935833885495392366462499633932153142946046885654475283754940163209727247081720469857198761570485081060687043195771108265043814455697337317130436804878035214629479636121735812352561379985983912807727382548422685378725548115917636060688511251005546298987005664302869900933138589374613375370683320799722363986724920162078029269613874645607510049416332525064025399236349545611572471703214037019054884649464600564142056345193399752914647390364323375257138460610665746355655557570003633138036901453000611760329721224662399495158100745184481793152521855398376822282546066036778161005226116977369021871501221079736911934494996327075038890341354951660474014166724568984153814381932359279110884551404075091183532372604649578481592571753157963589054222079487828280217637847377687968474677416576776798047716740893262730410931951154290545755238261628879050336419760480084327142512521949721174034030542488313201978743979121163090359450276735771828793100614380789717561172046605576116838789140768647446769345658194366070124995590851298756839728911608108618236780603931542785890934507814424944454225073791166118570757070682517028455184811876329761887553215974299908227264113137381409144201468577382594025342049347404256083260961508622587715765248533602286693514727637823754802071017813626472578993769474307357169983218738022510061860143862740844687516647870627990000771186133553597451410093819135244468046747360466531406949576765017094641121753074260110992574303183433151772360600470979043658636911592158282536413141494658880604691577641870902589876566264989799982373706618573199121923244598252915536352041125821658399686698590674600013718905979793393184903458968662673189548174745044008484842307621640771409643908527502147416058011465539766446003958655414076010539438953444372206141263919014827197257316040845785975124112986291748757699313049693595850023053051682491119610487191083404076766638741173766015775010280336992326292961169685005901874063552991204704975433431902688367562759980304958801974141246478343232905344509528586959861459768779123905080556557986813789309279546958348667590850615445258046009178411929971656413776831516986826063858363080983048617627491902690793809877103271546235714473913400174521159887923933760224699712945806650729043783871544380473740756298511670728215576893181593103542556538134989086262450515454102099068123889870909418550450346080042420958795428338395057406962612379484307022176284434399624969922663474585495384676149111602257296680689469306768614885427246935532179174701135787526403439826524215148153066586052872524093051389724466437309112046856553366181804426164656437943995007723578043860325568754826184165731491458966243656109994333044571430312099266704117969272669472405917759152030398928660477143011568971820614975893899634138280620198341062233385933451989102068014286908243306456156745049950188288552143745633566286612866807090727972087666196373375030919270603084921952677715120897610873897907477423268902186735067803292792086938397148552004384054208335484667529443718202043437771786114882240234157140123082573153601437687006903241851104530009979850790593687125949874080942380134358737273844771701852405005394851257671743364713481418186630781628338463323774604716905209679134916814947451787007857974413971537035324031201027827607628231440660925622798989579304624221920425662495300537985041195346581175565459278510731109803716093550146593693400678431560240700694186304639924445862941104390569801450105296373427677679791137503033837159242924166741946228689135815028312209491569762950945674777910501497526301032687190256813221686076139196952330306104336453069318134945288386429520445342295496226748727758062627043197015766399887122498196374001861073220478736109771086422854063857758415721983284558194957983618865756955791258114933342560112617098281093650492701854796421494281180466642359685778241085013264537654057823892278937649104261260167208520925822654596885246434864552328716144071141920101460554018756179659831883035485450569569085901990275854716451502652975384957885308619405264774004246923348253761795850886419150944497660744426215170885142984691754268197405680979801366816214456956329879775156051090493990583253196867660179564159214493077564960462668674304749883791727970666978669349519118611917356149810805371421827662649841022809498712789025745937817346536026471337439741063007689037021640196798054540011495892022671012338987460924638545173946232037107162810314145174922432910788741856320781013111893099516713851495273345924024979373507155775871549904633368710344971552053946225686648888362412137070811290183288385668152692614160349815439180381769385461341266687125606183134835810454770639936090086054807195129523541155579870905905058252610481328964963059315681819367400083313708289468839196983320141029181439860185458379894760983221777985245081297307733977053056487310585163299216357295095643006775026628607141171988502060288056649179642361100623424302719919399073780268257745561001451946326600143199565552501198322832794507004641986582834024409772998177973329298616831377783582850592458004605055782709971859624626537815154346804751525474482671753622642948257287061590555890992164054423787115926453507522533831292532165291177853611582184194603496564272635740243865700909937523769992582830168900892326987016734689642612391261567705682384602855506751727169639606791559912374529835431857743698025696030154238244396267617550008255234212227036414381067688827842979418070787944614572390217191138450342151331446429213671937200809685732512600583500137129870483808459340679298772003508127193126799811945881477401678183646104762723312170350224174100337985642988633879117640724418759436435785285252040110243628453614748222860724983214224619307637223983247159181884410171001586823539557070452598459860327353010683409196259275175672337910629009058763473502510517993040702875233660453414587643288779042090254609008625973586893641561814519029626519857096357999899270374336901496598463602677650762029513638842231599522870834224430473529562934868105110505071484049042248803834675964746360154270832029699764778441325454238884771410442117765510380786242476428272667399482105310932203518061877223274681613277862664139540977659185485678933736833329008562851732018935162863632466969998593374701904277322380354615681335987300963387665733578535150898582245942681701611926118585376411259618924866963874529107727932172287542025021574768951560154685090929700828091240880672929080929859145629635019941478694777079058478890941998628362310920928555429933236808213194457371284369039875224187374300230819397266678066929887584199149816127775054301160547465622248240263538408848137145868268828277319119254281272861439212864092526351138717495717547134340040610387078014251346692694622433491189545386092833721549891035757841033231134222978518278139686801796511390899456663220430269274853780181630355285907506327035730037886014065369575731242330728375911164088755797028193400712170452884240348956964026423390748528135113427315733444314341533488399886297820565395457302443180941784723664390601240587329666733315811128179701551526178972767520223683062799250999789442275613830409698362032138980143797239484595162161354818173321180793269937564661201034152159961315304569899261425215526165548901061001286305150174301806387810608609734622316678913747529611813000694752177911374554315091216084901845997213101692125397385448694493840362015580277985722627913570609938178744645006443748924356206510575524169057435396806498417773528916610550457936655426615932731538444396138108140945006231127110484100964530623843075806343065032193566502241736047668543910168936960680228114762711135740079267984124050095395068613602153733455003137141977547764378939806624474721622262028719412597596781034874020708484133381823129744597264159446963583382424190273052815655643244363300521932179999981567136349042261441229221632233646153354252062533071902640223237313646467174617939738870435902504246219745406871998386200490361651801445384042830404351424185301526392268098742100977492722406142600621948364040163414265389981173294153735150226471273534007081921477270549335662213613407787637907535846171322286325348155516004026970302284937494765296604552511505584992244915728008521912126656464908510255148026887301731114867347115768966989595164769224772415557039012292730772907628628839286706206116492240640587346766892889151087642837584637213395497585767998805399061119920257402540477000036815341176091228468197260936533618206008243124536064826681446603293847331582429093970866339805058587512557941623794516994260020674083209131658398534641417237411056251175342026425178101003128593658387804044795711805713673017703462989896639503186377530575819478949097668338794221339225035584492017646074298094134581636311272791911738777905475118950143495745199498895242844284805843177072930797816433311587568064711342973917948948457240335598973700819924990350214837301652331138407018691253574700166002968408621000870388054263488244107606638702098937281597833105669566444368514341012283327032759212583916048911281559110686378573112777777018093890046735799002451148683525717871806370478843042745987012953523542407582370113582748697575370086638688858589237772189028291340045746620523725568857132803039611487283313546419315243442289135261020415367507164983198413576259686152962798913727465071366893822570585730684465803503248642009025494494643838040306712408959701253500308608345965961290849983160785844870328905493558457678239065884281958869727211837907063540338679106225599328439254294639442378794895151202472797486112267604819006817932759388827515826397439721885045001858403844259857554752799452136978505205682260965890817963954261910248205838962396657990184581203076523942007103762202202610553412780214542186087538670607603647042492800328184608140576308264383962263433326759981283786279181702000226482700158739072236760592642809387870341207412462112421406084401018214109440018516983362186445582988174820449608923682296077520086088864822539209902692121510110370784368497647912566632441432638387018785729824802783450129199857919901551186290449640281287425540703518076687675588542485527905225750567798461574366971574165946210250897272373432250190900577904648425259521900570107350968302205792635341202490304212726911810347248177423187271488213545900572691351142255714518273840768497710281880034048725386127059933113709100408431069793746210326738717747402945081001882801736161740216176056037762910697505380941202327379809002805215218515036956092781202727816032627674150873586872946502501257756729706631588441500434306837765825652952476831443561046767778826527452263872923604359490258873736464827917299829386245686597740357604700676798250983268378949437850067185233465923539373742291069742336427944015965874659058102671801707403721973281553733912203641380823834051628611199718870166614610870634541154786156064443027957802610223899102544082526088492532192270516863591497642000842837795005517619494267902821421232047877223954520116203097888968067932807137869022814882721984277929504982948039662160674142113472979134370447329114251259830958762398938595939296765135617901438966880383932902273502055854296568991683605433276285776607583153003425637158739301776046466159121452765370825570233128840152626402902637563261854265682633755896518677583476801830610189929959364920544920951123348688955540597778946723757348876253959139941760273307010901643947670827032352285133005597927385295284282166878452695740249275352299521220767723162942630884942287270622293046206007774020484364419573263832622525214986559011442432042491653942194957755160085198249909362613012936856042322440843713143241207089150650401353552573596850066416386753759900173325822963515471773506055624293200397589439553694827209308812633716018837486086577496839486885564811902713469729377430730259820726172978518432703533701229385672128546839605305945063295989243988949118264904625795547199142357856503814561004696362455255556496515482872035452431289844641821397379791528592361746097797958093160204643645577800102445028949470147796637260467264773976979958660275992231118081225902872214538867926316971393069590888982030240261968259806426246669319983260819017651400970055925154945036169906793334898686455780487008300767449184922559539702101810376269046922951040571170807353851000680334453004742059505080736625289590191527018929617337346498705794955489149714829135292367006116688314793430553591226318072135129352727867612433675339682332970435938799536525961579128604749540313747588651470804989819950989490177862187242357515704488016161871626540405777167432855933959692499239422796395077352866352969255033903978632286698823328292907200127939068527936505658678664112600450833414887992920284829823499615331216509236988292306587962624149421367822536588587808680494116419493552998423854134608728914918658653780600057722388426458727146681469205885055847082935298862095333002612237036481179523479531911500798515673430800820428049331018578073797445059364938975094736581343539807777124729339724204296512698982125354360075557337766139302439894885435811707573084548330266581117921056566789514104776941080376442900068848013251803793730340827411157936107989885236934111789362486819644697787231453897416312855309749405184344957679756434824632343428752807354586545366132977123767969738729514740160747492454969682432145205255918435364834828774445379103009533195061587768405428925184353278901929851282123292662230239252807743726894717318559054443055103168978354372812738904623840488649097864860586467648626013423861369908423363154150875264023343944350626754459465850170256188243405349150227812912047443692142958590725668227104712526086912389178393808713669986405360828151888004892807869383109019510028714043618046712747294947654274338659156652872767281846231836967136569310959811064016338483832566234892663647694899545938400921705874075206112283820729684388075682089623258941411226068536349073543469661779112338043383439462717473362036842210484658479943145461543218066809431417084087553728296319471614508552711995352290555161083876733297131114576206477996984628360705469012917671519852677631616148262333566880066760927017522378717495456059139969645534900732832443400536439138161363618761579589081467749253882029349674528264635671113821127101776435302678836914577821007842541775584331108996300457569202875092622437801159364137300950205757439216004316771888653724350598432898406601252431574079551762600236672576067110097274690288237907799302728133906657870238474783655542263827372670393139396541832105112647461276048777793669106714609834829199126411856916396789686344850499424244619968428703391346129023214022184478712646250631983379181158953456051818641989385717078940889108217392812226529489691145887321848100557433663367862523512142348228646941091756401607048987440401966601522013337708652213189428215616035388494927633962494229400530964613285047460509076564949657900720867240919208744379909978474088054706724013248212152918365347448706977025163439354113085252563161381955587597051753515075364370973474209530079017968314494494733616714699657795445116086547998185108644513975158101143884506890875553372236576681000131611497138839492428941102324959840272498011307840791491433613785420669143715051338599329170529733656986505350866086436161787734519935176609530998488875673697307252674492618906828343997639878348467067961656646350269213501165143561935168190308507903951454488438895924283082326678215906498665647580410046593705023467909701568539809953888217835392981874193451817301208011225716266026347699037596098453676823748678114780238415486431181034098232183487384748388679442631609040653883852246705751321480999507494035438980294529290642929807476330418534560232096401094184761526198408383466117317036380038264082788813030143123087466570960228477258008662289373416861186928187520063040630755568161727652311892158766132063319205491662428206268177903621125879836369495990731566283780885411689282210939214214398010043160842733620135645961841016099415180406230818332086948901637425632862881982753167157709949428516069100078681661146642359836593147136421289461563249874193247061581059576352261161812274248379699700835754821755519943422329489413911032743906366270282806895926803599251892619644603404021340419881737431216711928321924038378373428560815202691585766892472686050148734257064714065020034180020467883050683155028600762093476495255809106197710371275276546123206936959629341069940207731933659957762820754211154284644989309421910401642770857684031369863585874215259141072009551956283327563694312914625435552277928302627542592346957284805781799838643068258769575092653933821482695595711528358655598410490253820495765711292070371379919398601363177328907851138364383260696018889689812417054845993898347543506555150108738186022083152356926768581357822503564004278616180764810908013292531411539670012113685881652908431897674616209698149184739360933503854673577145410394685720181967421317717086907440318761815737797392928059465473545157026157497330172659965786377858078933329522904299925552888573558265987641676864319618704534148135285594910545788664726859397317607366053742370701718054238596334995880546915205920188525637204279318946918890045232491765501014134686371332645444372813158457645447605143508418857744194617351278035211634685595965559583166949101355236889269380920201138770111176996768442010003088412632681833399840950081631255497133174629984387083540541373116628300330189303145226830869978441936349519418271641235010123584681317509579677573114755595132077214816308711075223094376771296236870552235802831891218413041373629748955199135498635978422086177584064014170538516507917092890810232888651828592237337186122396884540000592980057606939686939033950982282125709570385013585090278331944271262733260924319071902803039115525733489372076493229710354702760091359429628377571805423660511149778411054732456087932581914236387959233793531725996362677529132986790719022624502866942423833787215087290929903706476780062481679487792264214794826149860711173882290554464350999492372663920166878978705489216027173446944999147085475903334212354679909119799417491889646717553148830328780189389040582830160068173537341261862668102489549787097499650813258939213690179303984592339415115796050745418734773222628937504123995578512890775623672541395624832102830305300912250171324325547958522335977066130265221925204461481741980296562315659982225298828876303980031666389716271216717438056434114221811779819580677467426996707221741707371131811740399136215323142323055855508184238333261180854305804704138157222586579731705517244356311299739670285181253449823818482491766397898552506088036546401932374558901636145315964278821826451539166027294541193663428766826244691868117093821402035295246434862449831753503144154659038436399493780547039658448733978350204746686763671568711017402550630881195966513187554211924766650193108594904679069088234745232926095523236262493379065117535838395849717986319173298676655880667316016745932720856253749679507365111393584915768265995476275494307077904908811726875011600433760083377638105706872255753158471664916707053507447957755904029742192897056282082569236827211858813022835548986409792324824137310145725744173926999052439815167419878133363817216706511273473151610855905180659287111534401155102142660792406612850406483885023655159360683069146942657221375967260580742374937383234357527627061448475813341620407330252345745720028623585283599449350664427702722769359618502383051530982283628771989221117289863297276530248872077140933931992736173092465642209978069161861642094618062787816600448354133371183423593987203111237187811858926354388967372652651062804413004814452508298742305165970216622611465653292273594367899041953836811938896052406277166908637561605868537769282259086025814740898548760192598014366459821196981251771990941479141089068635313420151246092542385912869115449580026520330135417873065157164048156000791049280646214502988444284023663512312574530024942785829882584787522914925117992588742027931582676205353729851154233959501624575030352941444463879137250497510881773749931221447877061666240707428798549278695207491777928207477121966021148430803534860533322438114511876313903069775326503169278894212857225307870879604230026400729408372680480007492903019200431932277290747401378078771616207866071981042371694505014644883203098340308516619502574025489190181226961244359040933413201287082714585043234177141795279543795064846440590504260725065656054142461892665022741057384466288799366955579424879434827042276966240984399577372294941603519168967036682873651208447808538619270959083790986030181028512437258900427455710117665916488681212289886096816117358650970300993470520389084535263992654884301205350150180028488883280337584456182413376320331951527126271770271234587868379365773450960748656482955358278727005732039338244646896322208959189896356495692023176853490304445306531973696811530455093172793790941170774976393374392696939035408378177469002232458130095342440726184045191882638424612044376273669008236297784874322232480970471040098414549374668034562336211333273391383450391674105512355683290851851345150165255403711601079868605424833325901670487514439407648816541400599788654500403345727937927736237457991717201463221212744350056424257138735455935381223206602075765740742767410919573531956615403885885445873397359805133672301163189290740210438174861245505750249591662676523768940371157055917841454782729131995554163712311009366173792822566789259013520803292155804187395035630869280084848619856799152719180239717668689902749499964540809854204655516816187505637267751893861402947800047727428113329201377359378427616994434819037065308631439833032138954283505027057170156762729933978434837504310420041718811497489056656113305730269585862450889779898810260006211133636886614489293189991566902507844001068249172640076129629028184688953282792286288694628712524794424211027991823232746133100956874952058703662972963902406200904934500743740727162028487845550498253518144382424728630027245078939770838298048175012528900002925240604645884244224459445626460471801464440118197889761960733143603760792003977098750213235354000300520462103766027339888711447559500490956975107123533708606562210542006102247197940015022895074629730404236804164051643647290680047029468573528269252483511515778720021599975896153913748951150654443813314948034754478278168536692188144548303622574684714532524294994418778239294092959541077463163449886574695589268758270281237475220651837526489993771754785801644714936860796145886797123438806050886684788604451700196029244261097688302055261315758907803269279854256996625615877098982633733281683882419263862264754082902526709440776980218835898499736421590833058572171890541824071450634145394345059713704365399435428287529010634002975208179958155900030787462302872503626970688952731702373482048922314105751348317019647509011298437963145386199302453915178363600101416390006265041833904935962894983362104480855080464115759434975385859882311540876679719585221312128797904941197567351054360595596132171703725848330359525654614511257706809035564423195587305292390585001222861306639497982276479941718313318699175555976242428482792756774462839484303468754623176412381574138100854128802764179565397670166781834826138084721588291937298444740057835425246115970214857410292284557075482352620996940359801509946659802927466721490216323697502724457242866255684691088583908830736314784506455164417021854159557808734192786892615467271917604601558152772995177617443431210718854411917471995701585756451910960037236522723837282936668566644843810663526359647579505953347412353693235965579452008898539329356946163304408097428829130276595784920547235101593795250229376178926149155595982329419444755467441410011992032103691889256294895011975060942131159030911447529402234482812845528212930594235799193065870735572855261881363086246995508356425516237190693955196034430457444406071420762043306565764900657057402529804171702101611319059723316584528322419644522707880151219149726140805854689498203816461658687854528006723103200106994951556866432607425616631828311904531728234165585767429712112806828220498105681877293599853010894502912917676740158911281956020606793297323751056959851421918105964572951458842008053274373155354705375033173018705331956295629275420228643764598087315807709591864291962394379403032547137293925863893399381223743709809855346821717979381089578524510038341110821292884227698231728892566989889195419877813503614292653893319019588840023734893430533470975264303800548861148320149976387335379571195312358228517985225173757184045142559338036074660236045819719084204077019581656314396213643602952771966097174354402343964930205593242019785586913282514968021354046222517132181120658366743730592251496785428938285842575628831628538967684670229044467814467667496886812677649900482387060831820401564946040839828896722419974538357488029973984377766250140001353793720934972829462337494429530849405595453477353017245897477355600782511691351940158650163334267220890440767930439627363296927978181328088542070512531834552013325560161830389024335650135141688334861998926577760844712848467799128160835592787239809005580925701197692575564374103266720285934264189739411024602106032815327334616209490642720586387250580238118581895062455323527810602661387135150542899527652721348673305103763052504919679230434763086449408115023907061981665604336997754924353173414524300026847903479234764879198105850939047714714273092113949164775587342404640954707734319296129102729034270859479909483272486183805938610495432664570735929096890909363928511630088091600475995873842791211483828307376185698997655960129359635404057946720457695469049838316837450638114812568767669704687773220695129903664518493037949847726950798284099497026378489018269561570937550546448958238846668486184442853009524791768195762042668901599047448354501456133228506610116072128261113827646232926961507789896374977835753550014729919252744333479493128039696124151163786564867553973890550744504805804598004064985144591924707678947411601367558986862357361030568496675624509426801087757125323210133326593393126023161435046843401130041876268496147752533348100737874413315368331722566359288765816195905781988713428959398095410969580466012808798054905232921201709857148926590743901560336429930531547287731125359788175265534923325070184318361751004486465642840964240251160926698970062780200180249029405260163879133155866321726928897434330850258632084748264635260512794340029007922092897983569069471383409384048406859571306822382698840963672687090609309818023377075511126136167668058446556505846838525456331823682297255675972010424417548263107454338086783753831640141042866504222215116705340987467097765014011702879513170009296771472468155226803080723604663651379279852125955225855614569049247356092652708552196892649599329808957447171240395261151501638437709355427915116618105695711851437465639593818827985972950254581612390991499151587479044682662139919475194725493732670049030837083944503494866755798216792730734461646827629255876306789954790161513672743298169279695406717285628919876707867062011673571301407333535431267424147601167234179567433127814296758840868732999439545689187625876791290350018198511116655980260498371555148242866572266541879531611453339784910537810255124379830970217205554659404944439438156423159578902371561556882244171933938839882982603014873886843262497494279225937923232148601537290456018633167102963826521039226462453105941836953422779900898270001785915494022063796710333213759712551029711866312350459129797593929792983836129248486309593513581154074772005269666619075239629808327551311002980313514527111161507715878765804122312762301490499907447978258537524913413242245737597664508370067845156113448755164047634462498021247142246351479301983336379360798203269195916914486357798320074385592686858104682491980241622954407918243517037801282927169191871895052560166646077293562964085750954716224774481556336617057338857685125681609555094649527133193746602070873095638614202294447335140867514723943188850450448219007638672612566871887704882595320005116124848680180774955470392820361551551405212700844964320321614625432431714416261424919958466796332563183432187822037653732792863170109227566814837570501752026483288936132687883202292369526247795183244701419870584592435931401004769489362206078410759802388508836491240267980769935407816366664253884836357221557079874428330396403234332627647388433880111197424364639148907440420076660717575389737591707849384722912405873394671765080776636809851398571040535557807567190980303254664173821366191257267034251930407700567057262990851577127120424783857170811492785649562357044361693159360670341970325082472534154176656836677829879391455436988034232248069391085722194414456978628193690742520445233273104015704002051193894476324561642320723502096226974299287468258854838983265128809304156163642953634187487405700569907960653252577715672592756089363874162913230743316889821633753042878268786339668928525121747432657677674945972810059988597930052241404761648287355566856278700204324087406611937856945381157108187489043950895321304792223079081184460954587090125190539097930095618264995604460167658677143998522164007880733155971537767861983876512812407222947175061632022346731096018210301750944980143555609635370259517814084538330257902253276904848201593609160622341261363742906117799781249961688620336257124715162254283001067673101123767186724750269526172692644683621878993732836727685117758472447398830907015783703435195929256455047452703831205399124381204997759963929217174451882596923080336118295689027914135346991930789020063517960333553074722904131770220857037538112969718197284458794312519829471675902268491000765250466606302428734781148861705903015238676185640198777236693582776835448308401955739643650797229525576970512643167555333877365492778185202425984212002817927218285267154069508351154516846834536683539025361858201498846624580028457761522874653378386459128133767936214827656294285850776435464216608932085429751003390810246106341333426980961419660024744666640649223824496551455345173284296985504964696499938806339071501000757115418114569362560189383695149369939080619022111761257829269983565929315959667432879142218390754354379046023506486018683269735681023887322666908710970480062542415702416752327064196064342220329392273885376248499715172755169934108543198906846961538215881202996220922940862434442923316863086756154873096819440295589144373971532293743737767341277033261096739938624145731562222026444461512223215650700934457352706181092919683378199426677925261903830790284306067006498690999952503757095943133623648675941651544615892662504476353965566522953295132157328232267331481857230124103987076458803832898259529511969082590682276537559613700977838525519828588279039175176136713698095573546290291650846357027730081433674975394363795962688628632730785553763032871185736864232525411286846645337092441537964581427152164411320364976961995240029971442299304214514634146785761838751985451501319014026540475343215579295536665535136265715646655437463218307788376544539897108390799926396091715622765409121106687120774605176367001974383746238789019706936968403216013147229692587563025045047755134991459044256520743084967411540798227887933975262072049279433544215588338866438834469482958539730960353177822200753703771675016775432452502437568329230165691309562691429048706218330182309857398287599829307679332303756685901654622790198046105893964953518455167298568558511201182363622078760532958383559979664879833057196848020155697160888937727729433897173161012187490963710163124221830325969565211816948596410935913177002943652204586942077923007477358150472957589461468470066974319330640061585990923663838073385619066276619451541522185630635223310420693847800424786764775186047044878551305174698298396194677077259299316614402331681575908895091973469147637964834097703832747317737381919437272706138048857598912245406671132201391233290584200309733610934113673909750858450419714897402896643750178079347266605780186050331554066348605672419185702436412055998743456192047192171568442345149176996396354955279468293420029491401009025073480618088592328373235124775949891399050014044995572429258140465987327810492324863587849288807850122112111819077145138042226076486199941638365776577473874961963551689484572367165677303048823847476647443723384286858145190866067011881459899098191200509340863886625660188265441279700594010153569131750707284851950070102715151466576297479109749269137806286695577542141007604749142035301623390450312324134751256381467290471646112538832101212498593904330879973671078692475242602453592063895070120558095344362398615462518979983618610476473868262113714827461153050998105946138823049425934600028846987530537871716847952215547359779362912451752910885872429908312051880430189709702187636465650016889814765331613525147979851725216096072010672359262063464629948231813489233117754174506446237040186859920301783319058430569040564012532352175939137680121134450999593582622200157958137389834952231628075807176440296989894889654431684107674069910618779839416785854749671517718333613597440103543904097967896817800062771777021406943998462111121468092490972943048146928587341864226398655780595526958951171519176331653271109582163004011736498530286574519825568169457395364803006804648868681784611898844966179119203851174762782742888922974640224640769177493481642617756685900059981848019059947353949407030134626410424470796298305731039509850053322585348636925290414203883778584804298188080920741770574257133506346884449325873745342602038266716596453987911499448387945576110567221812316055627786592244522427067004039381004740757399721977555699617805229421371881473174267788375190077668832932127946723546993568280521473820205937291009599203277343465395556502387696174721348988035144703906815021447844237222991675603247921483637469031283551343465654238445259035741547829510785790456016415081762523882558205481257560296038233336819617265493117757159348633666644034582784221559964042815892914694560807624808995035149254217621291544925984708659075388271121505447691830980453330506967198805020316846857183912266698520994215531847888300675197682487718137632138348949475025463065503435098695484807947627754564833991536332554863344945891922374587667795421924375149601448944920411456288632755494760558220400792478183666197751340584928527285076383444995327188443153024334388564202614534786412138677247708493098858722659150896067812659657446330111289200901237097618049229521348358198312497756090788542383136881833470185408900176143211129289644128418419477586164999413314210617230568037683739497601216277022244573255360764114208156347077320771162896449172166240646923967290627216169452053104775330123745388370986363730213894024818041155973995408311921989632271061565589360147037521303204931667553349743006639308639658586472927973508347957673440004167680007834849065329812748952267860005782757175861573369327298431982504595635121824257425950264769138296973361824418100640391168808214409829393131037925787871961040080143678319408296230351211216732099351173144607548889066956008493950300194108622466020308535419187139331187031931414330566389568585506486453367382553484973515828469851446160842281680808722117116134131236913323854036452629795311292365518988517979003670980615530024864730595038321654354853641054046258983972257238283403934932823119722825259809490038704636299444544695608803322388534875914831201199546261856809539421681030485115646088892988621756536784627843315094311190422595035074599001873890810159102633781773627464165677115528842531559240281475584245865302304134338292227160776304013721375168145013426337339237850216929791738981798028916085250600691174473070117943340141352925217444851616793596866337665027438523320392625869407655998799341646121991558232032269515743195859427659899804050119611672239760850635528203577454321133386360653015405078453104604703574643659088539593301259902110377299306803343985044887364619781964547666131308445934757687803871077016798822777770713128661316106362201321732430472550766284521956764922275725466979965321394343968262073980198899476352376798025480346975194732408102297288620942724788088583638648364992706897118629194069738598905208709433546032725741023507395050533093290601969749648350724880408770764271754928053369760098135943129678127667956281823001653812309132559610911901846759882667117449473107739190105483920430957002203095394011101039669570004900916396180957400089429755860515346424029308786947246421252035691730210333694607005569553076672073428587692415648972489100088517917949355267254406444768956361254133036206585952873731594023237295402805434697049013682518228489317739211838131186560363197046315709272551794043072473415036239281558488442152650647766426699033377993926150354396419545145114358152181642515272938112263886885536847246414872782454126712594074677863071646358065408379629530334757676973381650696131940337111124433284814266916159525222129814520133174439775668427368273807780820058518231303208243424477953247931139769498640004686068539973924762549417310671910762502587362638621230675358705164876586667078207777109466031846305051502552576576117532366666653900938856227523989674495204285697759173778639745597755269681443543893344367538380308838681731216263170283650595962673946449329167371946465198763833513530040172222924334502613748190271051005757837878011243438063604743181940322279255434956063371995187790835149284685927697846145047548137217408891235683326823197326405429592455250237630253165601673593450912931282654302945024600734248263254897705601663434554710458471743375746049471965422225280932381583539959339703134592804851907376823309754984059571623995174638586654691431660542446176862938851343482358696479396531660212610186072179618887989406525406182741445867728898509924538978201507851585467478784907793296851206793809977890027767887066501487445368256108267039139268175377134358492648239943137290135152984028015757986535458396875592112893439428703532324510698101735050312695422480885878287695857786812904448696275720112714018731293816167809008392347374631294870347908194926082390050405234853200675703711467065577482161514834034873956489783293596988360843624065733631499382223381531127603688544216063910490145808176595348701057552129365437847521508416365643361910110378424234337314654144224342247830371787257497611841769552270892593780937665529355067229205101181767713869071954215586645230012499296736176557816228363183374261076260309143813223322785435195096647577098423710739690762422134265566716423615319494605919572744777691835257141223944558193549078287835234533047410076011877344800858461688179664006875514545111339945803867009323163607679418359267417706893504693968584239403487935714251391951548835429345231925406659583252189353267622629785157403052553810172297563949853336509546493016546224152873808790999382510199323815386451629269994437330589204077480313288207350164756509063527283848682906381223232516217680354276800133990759486333334981961807391910827619554216930960706803253090068707443782214739515538142044258679274855573489148756628955703483857242594324451677621730417681065996071191357281728557511923550572325325544088390568314622858705795873796666686421985045390834779959477055407785941883910817009254246556825294791158415112798901207719239559666937484194027893139904144503318925145425715444849162659712034625668392180826036793894164653762676389958882458962099004048518786477973238668783963975293984238214340957542129281459516041851663329861824810987955252187897839891963025774469828871209738466990555255515361166582917980455442872761728982591061461382931032383889960120043085941491259123048260978379187092411773881865191361188655024104475286187439403632550441529396980923198216779770002524223013977593996974084972311164234317593057860144644082466948008129712984147308980864023190082915130315034913170813175660463357337416124692749653785719193208071957546661829807892928851648902178762732975026026097564071728793683478800893808190947900402545954446350243192875771351959731066650322933804805796110992905213581759992508426006988046588514315591044559713245300905809430579247200088914911766362349339663803781672248089682871752524840706349474157013190027750091817671225059706193241290394316446984816697131437559435247993856841013888598598044484356153688934536655674064686419982860431158770708323930403651230083950031640110839726428061277678898440672360488516194330090316734108848764548410405646013054212090210175343920487092454287152016225756264838824372869948382750684752779801166682329466159086031427087127607068884605432445709605220840896203880708139548015040186139033554262309304866260963325688941317415131963415833457450172232915431327370981077611789535105248015266412256237387044378483885660836757648130138806896726078132938171932778873639182742731157705246979844924447867072354489236081777505686546132815182744554418199021968593697965793915039311874375053367954659712307105243368038382470802150889382580068854719179040473524551648874476922064655883028459655998603398469941335100645134438328300639960296502521942524189495461237924406323812205702142496712592416594571044082556038948376391537849425382099740056737084955471566694390391770907422548808873156320030253543141560710494760250226126733858790944856381728267126628951363043616429681019014751537534962156442624329251017014412017614971156172530450486747987858874570338019471894429339627444450555461112658443035459161364344311159823511046445665565361271309668720821767834785686022354112165155296868107410716903212154477378331926573863720181516295945958283408709973294173294142566031206866342177632179914529248732500062662981276316242254846788090377923242759187366565954181136101267981653441685642881537914555680291158461938678901727807552321809182070290775906939518751667990951332314877251580118475769375411237818358065248348723103420814936169847226657215659465985667588229532936052603357471883823272285396599420621664623954924769307715438349774735056992876753861333407699677038566012419208167811071149622718840327971093862614112630964966798483397145938173714228384981825722192173453225837570973976479360954145006235650591067133374928291673849591903244510706297880444487923955467156665581658477642050192891444985777009413469886762115454914606048353802152011811382763067370953392718662056332541681805893970400330247048622951968905663706435998800599844980929843505458738588282778693183224692960775925029293115183343389247297827912522218902047761230299441861310299012615018914326793123500932042905816809718368460104310701253477522953053277856274325240300255421779953417874642644544069095127554542488394014329404699702148688885151416895360221178983054130704708527803162684579184225399199762938620620447538999866146536474866993577571740978550887861223862647751503851687161814952034364782457363890255514813948694863299033501208193852947715869644122712369023312631990367585179793068741159425812955613127682626502287061908901751295669051127875348779181615734094211237602322891676872348143172176302558996225766369906954816146083163572343382461519953537169800806286508111052933967748307867149800464190366130996974443539873437488146942613767640502606491742817436301838298285697222862525655503577612299324175798432437422641068332662333382751718749234977001691030157631430157070003775500451471203281113898210222897038779484819124487961044836789788530236051723880073150169370063410000289533078183678905929837477095969040739761648136665624833489519553281991366919919170283063427847968104998697045194515166479090620981242760957490740608488213577313655953164671422417720813986592854795375155241316082749201639021522310901945331328507755593811954442368380892286229099795045348616901080222466190282511822231693284011665091200238695548133456069101890809314348672604320420438243401655413500438456522761054227605687537974834536722974057128001893329431185333986942976966214059779078957310969635876315180232764408903350232841984475620176487623475656971939264363820285779308064468085419645337613374990707760784943302570692074836199077589498072186393228772360245913701112990010603243263423971542978114495529809409777143757713560883148159533225909351805458950282977337202989601043407648202678616310345116262737807967535606267387393823732084822330938823702041166459752047683409774194742307950512935270694276161660175374928832778952511245474655935139926477000233192773472651955065842915286202228046175721417881085933863239479983328948209484929679212839224464044385202108733827493526421939060240090004767456313590359726627166358296982176927088207963139363471474434291145527719599781620484129613030398753369782505654838286462664154809093321542522991025861417171636426992629909781286298181396977337938953399246370951683844138725919052054128180472984031571737365224961228032181862911854961500280898272125869594008841841736871775876029018740286598845416690556860112794721693688095839280102093717346268316565346390105036724619518993669055558410629869818754898404594273355563313230361553586466212776057377761448888327986807355265459397672659133642170252383724297473316236844758825149204343489693667324525334688965375446945602977000606190352423771195482999547347990970036857602523619076006770593236457452362992326481969133914761715586734300727613554817409458638340050917027227999608321450932336927038044013563981941372998103968969620991510121160991487297105316025771652841562231790834590961202041706722983572551881431204845603477577667682749407000322350406509041613474267473577772303637813960523058214946657393655840869024884190278266058220893784510046869598186343451769126884468401063314119811271198824052728344591294764208384048534235994436651239984045954727962979640506681531746635014529968127074577831219875318396893032351795769975222855645345852314472959665951525818192976718755922656422361414527525447098860559118853370676977579018335341311563175535004390365012358846671164951128254375625896184714618041816713282402398781634826529632673361696470753268121749939463708016485620204805786576989387545436706572581601133195458965511069991598981869538290383745303192450496436443173684516546385823547631422235489378420708983009581290529958951507326800499069726808403338512548691865732446956374525299453672401589509257784940115322234451961364383853600121778070493724249665177541888657479123829220867797134398963782152195894021989796061289772227700572190350070140229491107229757733837184080854929394179572062050049310259944696701445553746586643664244257289153539245037817870582065807535345451191096636577530901345470888549970234554675213224837695973053146383673407596537434328609517440461547991939854341622220382353925789004296218278741287928222417120743156936521985675975262258436279804125318641984530068764452668571118042217822149049678074572469822195899493868838357644246309020136240459826844129873558012241282063929917635422046177856433283527174863341947769529737183873342406669968642543463911937944534197541487540682245540757628517854209123968820803166899009350561192053715665956694085870432464937049801026191477713414247939087678729515747634784532217967058397242294825363141467963066459262201845140475347235597633099163205711213544365178240615655181869191151792548775551875139878423750526678363147734600364256314501521653118675849227348106292450500054938684181958776444204402355979368137765662523911212914680574164149302004985982057130499670875975704143421419863206650480068008905948142315714199369421217660935172660741639246870368897596109570557157268320853964921687972456459509846771282610201018176923198108633472883622764614890548430950499768217260294375033831987622460795447964938720539562790001093827047106282900429333533044020176734491564263306869823955324220131475117017454785415412385269052774515333384084841317270579127670174276256230678650538730146920663041703237779248469653294531634224119791502992919794740864346191527039320720270670197687845551656435164641703527692830482136002461219974683225447843772500337656042631795526728654879688380935006159481471736737944579495539221717639100223599439243510002537122319583741743411037030433870859235472967574067147578983478246846132371658073090605491307466303230996040752124583008614136129556315999230779191878137143733860286082964686759253141132417719232844381721144848173085396574581224804227640425444002077145863185489401833630718821123291034943624725062985938442659066501342579646922996785589736925844676274288660123309608323604055259349126133666029583974625136339683386668422849372729999838537371101601428088130945901486849282309862888985850479049139287087415338402136434429947139744311345677770912258479080724807685803594691216862389068677013441885850034041645194509851454045879082912279637725552904909036763508146353785569629413142422853458204902249151592612084855352725681343028034673078352873762244367814159429197927970971939603780470742327387720096476078784408025524549888794243263735399658418412761753158457564238277170472149064574662685718147491332270177836022788648477813289239929816792783259882506816131937826612526274884279010070732454117829957114816942536199138567444622323678161513841414756956928808564635394056613460255828545760562122073987595996255171036618638788524818877176417545897735579543319201415372636141336118629183382682153425086532707089774851705178599719823242368395848107369691055648381374486966136831163235367739064518644356296822260608980315975779532060870500985550924111874706649802504511497480348036410032246043767803803120626368062152550459238515618197205011144480715032882937160489228821825568067402533499586223926807892408554869776602117547220280424435510633006549599378790019833107840278573575435170133001604356414804362041822761407657584500094575485865517782751224487540838105565741810535492301165917957882490320347032208465818290189735754190755354453002433862891075060744364107123670251976005358927296617025208150383268748668142932495601252877994538213387694166459858975083968831659311476492848861192549636623965133870866210704230282295638578782893116179966860142781901167038726310321426852690393980678460778760061913314259588801933207299589051050655780969474083099335140917122870343559954508757094154230586506841681313686810239368180148793133378371312885307426869997460550068195434069389718460015780935403535979993382303272279635426951755925592935077268871149932482643780332122898811302269831493233752153463223580808746335350772131635039823835850921824060013133285749455646758479824762228879857672491709247183548299610198886686855473863629997032863215093141297269909873381836238634974138739185025546327844151401818504236822356041805168219066477819023566623198109647311071508069920635722251148052044618636854173401581629296669332433348820842174497263796522389931934087395305906289732910129531580203988533095559515973989056726491041555741268625311233724636119371598619311463640878484325705531010549556679149056716868570786283696388238623302468362664443634972508726911838028265999980115034037810951728567615230463283528737012835297015375543432366714128844045316133613450112983448245988591369596444163467976561321737959870020132524826043479981189385526078696576160247346479767867760429733887949372041895499853774653084616200853880818979449936861133248256773289768829833793221741663151294384263758386106526792310963888207846610476287906631208748705080614701647263813895245286923869420009357654813452260641009201040967956357095104406578957653307195892278607416641147737463965116706376743396257179337173649969928202808606881075391183055301204215578454415144292085278769434962063701297468253830790502508763663573405013370391979595638167539674784661271516097612413220718275894334100819223985471670360191378802222347234061076366058335604692247530219216335991816216063867603568122749753997489076442367524615940752018317719393310987146947988070431715492591759099433362276457057294623909024445847105060932044544255423027897444267610955708000722773434318849683630301178344799462611138730712746067487890551020888568307247396630843232483781259333983826614276665238556251344211377063084363879853297577552099654010037979298855943194771142598138834759582377371634578829401238594413580961394556823567886135497878045309833580802645334480675633236207234200070657765869871345875892861732966785894541677911923175988354398477948957162148043063120506200760569989864886677177929498655778216953443179048649258083841841071301956574236825438666634549994534463957745757915981222325276434822542517211500946128575511576700799601681386343027114830014061848362027449817987776817810616163424700536011410227128433400063916425180192850684122283105074912982473502206831056630663228349715689305339371411740194234160415318407147465003605409845105640162513264973946881023617434461871812703494867791777263467033850239108672709840965992246916436415486118219402748141012511218316424694212022406323146176497069924131405404399349236661042462444702252405991796822491263751244568524664672434007988385982321110717619886570279335627149330477728217425829755555453354512330527957050876859967637881658444056845054802138991390216839050882734558616888947378097032091371618568247864046057432387567524734185328413119470141028735321654276750365981603501504395565513741336587377608315842563658936236308190040095978571292051989389044130998070617225822854020404205941905189438646357992041574284205628129326430808150835818959556173437008613616234855160566583948247681848584121659229364389313948442402123224928289705897128891052333447915884486920628784382960375388918739005669233128306093886622169670366740625127683149013337639418170518676591076790753560687313760517960832956255286317292552921070576203768529611985887929010718224310032346762127261449629677391797648024670699462221210504332480783120471234204397112843900785205024752984076907928160199036827959161756782728896152716849497036323485864187067853849757341320648952445554298658585793584209331790068564978394824565564063984384873984015431690975839243141757199394867328276687343107782300279636562307161309473316959741822825112077412573974268570349311326329157818477166237008087023129729152294553743371919260773153396387546040129448650959534483851079188512440089709400645951028432102475629450631082444913656680031433453231727730746983955394794279633813009006954806855514408347802858575082351738821328697026827046468983713350817932435658443619153389636616433479655327259326530640837341456843542112871817478626476600288069423014549687434186688482237190722233938070420620483331146396651397171510919510753046646912103578337487737669211495180885909624452532193705631662176902922356294125327325283792813828233033127198919119156310891401540411982958831132433006322398117059577906985940627384425187983039180953287960633774390697547063579943420792503514351301746139893493329686680373265196671858021588307458467789772149018817015373045429115804821996600483422982365508549007091476821039492605650589184276563256547386146582736168092782111921743558956518467857502864132079378580142888818370128373272548236251454857587635896374629049201806006081591955998701361150112128702656326811574573235727474553835737299157395733657802979384878791484191005317544896370041647147068594495841856274135297206296584067772752834140469367732763680744391180476689549515892507339846741583032969270411192211960356119128458248007455765308780508370694219732088524412959530144336709729056541439683997366976989738380856680885163940546771391401363143281953388435276645913204640480724120763602296333807194186433820068259997352895859873922546973514322169788779148594129653818617645121022677792321058380500722938885415111199289839922295153003567993769311992218954648785883865410002701614392755591750382426035105658963378499166750397507308107225568301654423047279692905436033806835335635307221004046119069384868987230538544946193353688783014159795916065239395231224681615072645392953205415582673873216436589242403144769328698267947747021515299881047175018680565102989600409593197525585865038000223998856243322594413202528875675395409706482506437848555678490310486000868908637612222904631084194169719523491010440500589267547146415158974010621694698356326503665376466582245836434958233129635500085020467825069891376330409810563102661661188006563087825784025947224405257439337442092273180943588673930352682236595331348723578953628288964730714277563104890927308265430155811033163342872330385835371185347528097777254216441875782222031951138955353583825586745445851471261413741555232349385828697243379686909938909181115032258452380762595891186897985623550914437158945245273822971015400009797165646840114759794428366062621843487647167987219452532522537018889858344136724216889832686730257207855079176413711878524122470732220263058690375260910970625050499214644761226600867974445730651142035533945971772864810504662041070654215057118666404358365471093010823642692597867519926671878878741802104270607149989992339836595960752828404727975448652399266898486375571178660628121673295864358406855093500597622545977074856424844231631461339102215817497148479052241565584056383931640355914249172113349633311322126259852999487355200689002315192059964436467430862539294216961502089987069626215719000147656713142693684663342717513184716811938764004039031913109400952704209985366892985260950651819943832869574133128978513272060355624601414722866568626385407416360599226182907080758900120026812765467080106719390804210865560083677297144243797643764844909558806167811971745072497265399024213862152937434085133629581163435143232200085479658718035229693355072090541899175072989738365029128037956974913637447240761168540324220893850563542442177973277760079966697966271111756724119760596301319752590810889508890228728379317888738451335336049329814176376401145982495984578732395653028605312456777851277812658842454578778543362124993394103362836144719626569008304482636067186131528699270372371380846028605287590347026588909813854680006586780635144076465869615623756877902222641752020151395782457476273663508019018489972165523861537388198212552286125387611830151672840291460958290561527586118402327675540962747247446950666723131911824391362635382485451652151910494308737581189452986271481014370871892921571611198636360129364967256008972405189317923414576146797174949144938786867089391242017599837143081879396720831143525315719439206794363589609612104606307087819994108740349346961698889018274556075676566755238995362709293474776968187619147990035461575117402201208156493831807480144548458015752154277783211912924435006481280534245584449005876819281610011515381698249190413915642036096118931716937461130072287122431841154372885501427744422285136931839401336917048089518590347699628290833339860244740630406111867912069424142520729387378309006167315837372529631893485195146614585782312048745220806409139910351010665501404649927332581560911381803814831639143851291968670264948957530955982626449939956358108142519755901321835490624792708233038229102919358117335061451930187773288518390560570007919020169875210734927562975003836234487974182514607714603485775485680086234891255459703024673160898918156108422504164619326986323920984421143546107533264915718849538127207004011193019551600065298882296525079415985144765092995763808178819293365658483662041850017417760189699053450490461658492441928079502255573344126899536084903441517726945975529473347768635144995310261973110532500755454021083755011780706517086398774353947011767640189338969477772711729190477813832826886890900197007198002772565258569120864600151149579480122202340381460179423919924106933053912865750338266768705272225119693768247217234046662140868037019262235153317632435083145857998680826293145744250310074400996000726973754121286824794856839810813869008326244849692355333857034791938729441938715147888902976812726631125125851249552876691809091003437249402669267836269240971317986942448388391312210681881859318845472296958201248997380322103477925776718543060227926971578579238909905696548845234777902150719054019849593794971037815856085853396401730044882940670194624693128806326486421971272928473998200715128526201375679377837302993234368250309255673031206660173397725517807946937333242941672271503455142695611915550587922631569125951822984862790492776208938887109079249656884856019061066206583270804009481408420911325422895420520096951827036500436837509962232149836352472101459195313294202641679819766119213018331808491993548479099505103978321331440154985351729985437242638838996988195183992071359850348866872500566014762830842865693308839398935238998239106993814637396476454445347340611707642738758673176375934872669401473879932515462944740487962483429234894922683796277943130130456305664165661839186754204033443633769566380391448738266116324725831574756376548551737145454852455033950079742822932950762007679176696138488067731889751983725267489520423514991649629341790074781037647010975508470203158702563278901973445415836987867526607927932702394567971593997112505392250998013854519644858591168509183773991650359279572295805868893422129094849085300965266637918450173048077567313884403867472660126375571375810676449914279636741006421584068757432866642621195514497121525785941824857818663685330552448196571440066107839999631840256864858058148255991923379534827601678966437160243096396750460706815053792008029278131028127699537410673443860049658077025221170517983862847584932479671366509937237415046454443977431896518460232419589524524715604600308396942224941642368717239813957644909286738052213464868255647924557531710581061049347325161480924606995556499783346628549304886445973286592324468005567810297974098514609603964895563631891871978480620614933205147873211720053339241219998817271150726922822772282352008714233190446763783035158248464180114331542143356912819070107121075057034586400512091415959932803898647142479670172641793776974298610489081177354880972008082927780931058429283606142124961073437614455868285454032164374470736488892542161714259990173458634551431155659243710369483236703310900414753411347740921210703699786168136759829635132687743233554370485200518224541083568376626585806620001308503722547471320671711666068478649062666636057206811593772631629909853372898694524249441707663398870046394795844560455867343270623348028672804371310026654737659856270067413927198546873458341319033982303725042754440537236915188098977924327489405867006847979844404914343718755390692098697548527876260488381692504384235946116114668161720445556652094525741850970159618187368793514827599273809908295963794442140004395083156241220717899406844901425303428253531968795438388671646990881162253617477740398089574498799684924574546058800915671438648719334333040257469742935355501968733809863178624670841973154164790849970061258060880418991546492093428056538443426459880032115589254640138267436067012451333648413227457858127977612701443422029253968534206691972762780639484514436207369650388291889184589936400796002532180760986703958011734828976367867416601828947369001269249960697071211297629478661281302044026651141942438976810352339416844563083062020913333181154129710302787755275773542890478049666399515343994241409072407793272224462337104818483014510756333108218150609629049203144357724483122999817028270983797628363510478114709046845933629175275893927368902608266996851533986621012577702210556542453517066604136852185795658114073648906328320506119872618068838596560251420897531070674496422373474752580428094818193543984638416151075967839102183252779439342220062097216047785809528781333559255439483124811839810968452411080699608544331982818804488881041694057456197253567902753010025022103011038474853346613145955683620928833826138191105150206276262144155800093158396772824919191505213163016043018087435211092336009533968827671419663827574310519584532105334152040199145895637219183361770731653151932887679058826925823105950045273835114657896255735638592222960304838341981140390173357812235993304348035701318698686457836095467490547796962779308415302135260115929572939784922088095639804257172608912455664906198704201662625846319550328031634709831437750114122816908920116346409284569053159345653555355272700076379022266424502889152768090160357601361672479579699533451430033267066718201413082968057543562998948714733810436898241100192905731414735884215294640339143135480210162160904808636570675238197223710067815412586236334159984679955793260792382313093828318123061627486458425930271345938946232445933409094679754952690765090564444316427719561947885789616794665866928303753960153595066823595404878576334920216713724764681363935122956524326838557959690468915196226397440825911379471753148228907652837681285188779817380064859552841168134123148879547523596643229439562825885357283725782714000228300523248756331451239976456864356821892775439846728098865510532794461252733442704993493391296633706552160618111409637116639610244889050071509402653416207391670173249175247084289215543424798882039136863497063329055038127555003558912902106309381574262831862227233990032028925335236308056848736942838274008709571157416851368436686289439339283457745859373862284910513162783965481382221859784052369622721325573415417276291161947192259229295838199971585638918747675362073852767094335016259425042255293047249591339728154327012173642089481872233490332286731833608063367429162105251030093452531647497526866881835362165238912602284806482918233488964888821236862539417046724012452553250101789861958389965946199730402892699875158640716482310125840740684473088379619079745826740792559544445553950375995717993560297202948303663542322659684793988926976322715864331096182486397650099505973547387112187432051690288214358680828280014417545943988137590249628747513548032311897767429339577470892506761169725043535328859564482490592232851863272067389469635840151279640354632835343306767024959405168548792421837558178777350749392887716437551902671201052896543912576554519180635556305309656560310160006756737504657048389631514216809121688736042934803830774596672726119685268975090590579321739154660021482906691329201730515169068902415622396944862968952505766530700904728365772657922088775680895994141873717560205147869892441411244378447331152151349211119673561619099347526139765399064859232702339056076418982020464533170627187255401719726925393346591299680438207988497651509997594902211936184745009428699311038014376258448037908441106908009316094336004339619084248781829421489800380247714967696347786249736970555235502002846969159652717795327101141526831752563105525030669597691562451868235970451043567074874821858525450225768508948378540960691039590385131068023695474041353372409778593364486993890182157957481176166399113807016659418714460431961903153489722900113988371250355976844116042257425649473922740636117282607030405259451107196025507571536417901300411244685025424935110848482151567972248393654743710818065456470412452717083619026757006202032279241766391577165260009163141762328276587852072209339933535278876431156343875867113313659130251602730760217953115799904090970325154758634751032483542778653850466101452694848272728425616593035886164847711608470580896960170692319199914585296640165531635297100972872279633856132037317732208176597231135951620915729857837626228916669104056071242867695979043572824762341827498478841886937387071750290592188859963923501842728065398143574981070022079676770269636564249492996974405484983195567220418939926902596845299583986979368327835405865008797388908577275327907153815148613101482237104580778146672052234365266666282178921391410102309878344654866647654410083658659092727269989945719139648762546973843245504717166587170152286925417570135902525401937033554981437698047275632564624207681632920644669671233568664900849943245504976412374743483582216476999159260017200606086297178900434993661128339924607711803960193487450032504650078955030518507602205462039061570987482633448247036975335113651729055049813984016367576567269126974049151302089742756355503850671461920637361730150731660363010689970032806459131520730379664043370979290845706504769670965582008739896276993076165844919374444831087665291592192052861229310636636361481420637878638437316720212780467136979698672008190251067146949455577496422305412485779786428020629275001711933772969489544501615847605031430147683030865542009695689357330969630509203568795140345623381625669700695463401904271609211412443547310900092502946702715256968543934059211534073674604877146418266957909272156617449606565547518539068625953382069064320265207857148796842233878854030304056861630310210862298151057823693389147012168630831010576772019234937358393846020797626771876127503051657795414041919155977091376153240107738729013599971447226795070218930535547554175648499443061819036796508213309146300872244192267132971029619327699535874076203921823710364429734235003591725843600394332517399854940961301255429721589482420348310403859644626622904713984051408595557291193723947944860201310412203857614835952482292666877927192173900640563322570629260317591676837908811640776601518485599689297655939279170789268457802040231767865136013896052396706983523834551112041031927365372642220373634308055716299261077399279125578310810582321033745339740010047873403479542763802206428308027945989447343663741545302579673055362271153871509723822551633441931184461475107458370577158119210692548883223430075789272877005627042471595459313411018501633599755084785670012263853358002302012591906989159150172971947027996263488311559272334329971379183535705604493081225972468638515329222767768921704670481782168245753497659323341562676742575901974435435015217275670296831484359573270475357454577893817131137208408410718022922121242269180646525493121001111248047052381370567415441580116250133945395948608443842236814344666393275325035695549933668333175268971181711746827408316681075543740729711637241289317935245531124837393071819401969021463546966529329653387359999173793984826863721607772838347225000537382125788274127749079614258752533700011746728448529819155343282637738489327586640794532674326064310458988343179361905063605044201463194206821979970904328498680844154829699429376689589089671541324861455524280267546818779094865186845768633009949655155861096779118904952459861307654759524996298943634326269264075500681891735035907183061781402349108294327533007746253135124741419381303554405629805403117188777628203918651492683033526370538910969040126788863307472808869685315252847990624668646457069965986673444824793324389833086912095262060349190394418245213084783967591352006413194700433445389358406914090142350637963477691453580862654216997914122310819592245888561993091895280417449127547166632465153322567422165829956100749457907847855065925269238486801122787601929885070722681081855254018300213721333865665762899530387220691172124269398778581010090654919895392631648458445122050582891428253189691456421772424380129651738543611738812762970957274158346441647952812141395709435844750214350487096931671412358348054243059140095822480900203899889071277176849371008669337831252270994819796417649445733589846130135017942761019479528544068869117114775065533717704945549914583693366070484204416503948639221183258744654570446751517053858448044188324016796331232129708649707252876293294275835365685338484954477796501692192714920653525452822687969551022026604540997000574054178655092730761465992629491875512071302725526503730620614956560278868164822230397181120162125857184678770236693865631669668263275164263703085646321440147205072407193887784624515075099602503921587976629830216124858663639827008765691267194190705527866334988504903701696212887600465628402805926475860874335073938909042990400155837179532340878571037920103070761404714632308246401532080002557684090810059338774966005154586378683108338394153886928111870814877445627413772070766383883800494015498804296646374765427938553930467734780277887773214916682296726757272459991284343824341624144932894747076354072959952132829980496668263396491454126137497919094963267628169638688586877210623648281317635033830041345828006793061493103188561161196112711154950372330022132810229533462853452501084129278146980173289372490202933887200442830438396398013605111865164748476310818299982194922182105135776041627738632102591722520275703777414624559753053903152555441473973708844831774109945788617465100873654636756946903265740387368764997553417445370951124914868657047556457051997471541502191814240031087225775188821834641411967744378348783070331509536952950361891276157624901814444660299620420819259062915273146582964137204985564291423946231630458702515045893226471422157415318837709462729076864591539587166687370736682495905965810908027625023443683841482939243750864318230621172376604062231048086441084208441577672464860647349623478946669667641785710046741390979299780673356603271885135790177194471662313746165215585053191538741721878958593267335142075619384821051339475539007678056555381813079349873440926796863110026325804748243927518190453137787950278736331811127070260046513758825787292373444388781549873510627590575494248604593084605729075430081394309005465854484041248322829265356030119326434630310724786697770930513244754761310877973548268776546289673120722319519521440303590505660232110298362549742535697360272893558716672026223456633867958247565394816957842262512926593423481064990308616885733398892267631690933015177726945798480728527652402610108675144807093961175207061467483946843901988369733508213249479702000378811104442325852017628035628127975928623927088822623949233727038820892280036423629339983108174777236323761587903023113941164387131271469067277562266553906380135371585073902960557698465364182705219095821927704390082298867746811991242205189415343096109828243915194942279347780744103090503885932905905825814070633205250171759127354346075708370999466110788360569931037136681239157245797601352908870580517021579257577809257830952478967770576355288477995679554982229631515978989821416190234064338257952766239318614733447991091686830539618345386116783105009551012716709228735988149050554026055343632116136770182791112058705835623402044959218107859251914401486677640975017060030356614377764501801664021203691108616794128759958600219334296753675493277418259385659612202685674015224189890162568564624042699501571282320442716703986570294328125872839312574696503954050446339105948408410995877202913992784730102200523927388635916223141344960221206356380893588417365149212795431116108998977063676644948361144854049551234111655397508231466843650259315773548506974300269754644807765157515043784847250294542227104266924253224358594116340734633834846180767922249663573409334296832084563898834688839626196266723326055196140902776978265015134216111080085615261079624988298400918703231478886330792122380340544210310971077688963977687412523489218116666432414911861792486610046454926478453054939347020466722334612170109963288424262060190959615355855010725709009798126490573177590096654094168680772364311928863791404367736119541667569239376771292689909040174338200247350659146914765904427585173698564617405465399730536302990584082851045994710590316873956440615366969977623255004083761025035561954184682896679611980673171575290194029988327756307734763294406751726547103417182595040207625957056033800351525560596424839060725806618070038465281700086871618399271861496198653222686100817787555663627028235949982797992328327492885809841135044483565469809053028338810292658265848823249390391290727595226936909460412200093741739942837620570661038435872632916406659881029479497516012931622822255186740582137182494131740295950395746391347279148479518197301032900014777536912485636986469796288588743037284148066787228796373036475515712314001252450352047287601621771910576246068150486674277077928081840596153364147999278646981098767558289006893658600080281308210570005344999089897005471547526244154271527305461379250642529600104344774766250693446863274518042141148744448019047140415748946184275168666316150176186083011157771873171172628659118014631235190111295908717642332210462699853634187147423350598348438826332552538295908081309372846003274832186066801870176842721630137543891548461055284259173699247952432759189205764536074192099348913350372257510194837952698858645478449141088680225588934751568102483167566389433614493558350025011001897446604477114945706604752838807404053714651933454283324221085977402973079669957252268707035644032321565967073258604760263308902989730506705862355507932548767525593830604058581339054623943573774919033580314159699798297662038980014773712461702417893077578978001519494426208975457341723645083995368372471037846739865553981552750508336078034337148900657375456905071858207839330020971891768677139952408751660356867500928953662010180911943144962546551636040439820768378390572884406234023315471184837310905911361516679263336313958798088610819468698805951950527865292128065630012465590804007997047383307632952574285313122187120887450645827369151304021392539151221198034346470032061407988488590667446362650983305754176065817767697416260525418835552092889507753468097269478779411844471392117189572514616470351995284168065111176025502021857555748764273074529579931944913001028516226499219757544634188599408301528708233070787588202156254745471006536537716560813739528115047608053195437610527072946087800539698333613996255734816856930484571927951475143428908455272848097003617570468291468910497879083498053161676340839264814086867326312017317769958580389629334951088866260183181297285812668317987561313553315498531147255128511792253579333781991797970921361266779648212029972872522326261023502091099404908312930881192493810008626011678243179953398315223835383021428222391199319850712517339247192490691229363458415727490325666965960589058204302312703467227168109665221877566134789733521513347193845702555638745078205167316726546050244129491750935070504021759459842843855546381811937861598907425887392821553644461900574652988701894131254890492919020533733161583409247478701811816534405386983584459373298542483745630145581937185719966563689474193676441797896787234184169959198711391155591676848231378769429868886877782851930618742776015800735560132495976912341223892147228287676303341018213415685825779180010235983525135945876471643275298524816913121052207693845255168767684012197255972289980419813472474703343994945019193765473188440773458011168085809317924740348145093411620846596846833555214642246711629225287105218916913559796608219583057033262118780131384486448180959276531955965391393019799947637419149992175832421936573047188478050691991834884661640582762657216007046141975617170647032805977358477225588928813246327055466655832121599093126693001669576211255213417387603668832196434953797580191883599335384654077781418763719604135771472449319864104666612307604516696309543278979731297509826214542833849030566033935055594431228828558913057166201795678949768662721897960887835825065582124277806990868949269168064399170805807774757915052083970091065680870241172548345410563527801651363864340917456555159819273619849300280955132389734769311966239277304064278488160842736307300474531959691404067583853433590563700001594177492785132833117758459047608754979737781242653101987694435125597876490939759922886150887832753951047680548596198489633801684650339561596948048067360395674018822417529448822416617748296576675193132495239907909833865702243670763139168518374518081100274574671428685574052919481284593299489615156688594697298949876541099436206841803563756104252505563995600987119163173162091495071043687625831776517441187382634388197768533993980822950361803379955389298849363221714649017472876964927136043136901403690739872589794686194077672121289986952305752705945506695770641886703417985831657983238565705727098574102930483776617744304717107456385425336135731112898009590196359725916899993815223454554291654006124352878293918370083643299556124131774515019826284805100861696487989761202079901960397846939486241353550018586592766476653664882927771700712570045971531699082856729720681742315357018434095245572728284410383638306025731899126574635301522547683182654644061554715954989671865658774322675300211474457894221468171970933687756713511342477405283615805488778779622060643608266958511463524132514345178110586232742885989678232344598554192962982443670200594528567672819120672643270784880628465229297325513878529222855458722754445574963556671950255070941422636466294116835103011582480274545424814000638389879216650026134222117781855741339378601042262105887063037523918071998799658866201965346312960640607855533253877010889856922895840329673084521705954205849973386401084054675132687138958849029027657592018848863927353818212175401777615019570673816231396226575041557735459903029930954016302590918016321655034877768805615653541931348263807319350045372240743381529892359067504099611358108667935000478933267227524926736589415051721333902644273071324353427039908733590784676853308957398983206269176263722943442479892028388453082755106171828064127281341469885989823288184530219190903301779899303241703876129734313062359488615603598154705810327543070648107716217105272329140588987984308587341689092940568449708061342300892176019152607989161387701442573375794257429495186736655480654139965665906150961918758632367861610260050010765029189349303360929145979449912390842231573677138906936977633260780378198057283715836623288356727915348256963022270508659976450426305135195370616306914496351468119550784079970670703545262270984525647857914590011694138197903549167261497790713073646216720199929805070659813869092048201203035813614832923840563983281603660344278345802500967768566871591493641983440395137660140191986236741194435655411544010511745951431671560820630459667462402216570577393839459319503002508095280763694319450885983942961954215753260393860157554985354247289358274713244189313370111012231134576648859343654325872327372867676682084876253933863182515873690087742985776205937142713339541939719001882883169030664766840439310551657299546602827008726256097591879568844123123867949952640413115003497998893428864395855049235858477551804610458051757495685259483571029046006603251564487720953933177336149628147174586928829408677677798711757459403219693796677009538947054475731884520725476585960018307146980631282311719440127567055404968604575397541345377784981005367500731333380818704112038825682855103334160269666885678053358405023485407276303262821061681729873674181835019547223193056930769223155953781197603807510235560719690107948527960714108015465266066040624431559418103472121051431703574988694327163133226716533110522168713201664477731869021574366450276377496565238171437766541397225288120109875397948815189200016802161531557497412937467403459187480046678475603393311949640978149429130538968896788607782692693176231329403231447485238834473271281147790604838533413587784232740366289198583584799257108657312885600619108972223628560800807422578550741597593259452772696874035595749237375600164752560976093538683991600138364364920460956087694874604048868324634484751785290090315374300394853552639864677810844778879052972229719937629993115154841563171933718812170559902390912311434895806252348760135416542531411123124037579476604551758465075252826155926471131509298892624592031231578828032476316778564882635801804206486891406757626285479849423534832281611943389314817916388225349091623567749487018260685910756355877321077479079189975517166375244183431797114649690619895104027657796777930072359486927289323205462515146616719495265193646010588509613683963755728959269670245654522064855737288258787597470688877113909375111268731090022131287489659843371340523254920963916230385215577216240521768043336512895085645674628916013078649128258110244173469972668099248024125854208675573789906729200785789830268297222320464996870547073922263488124208593314131516973941805827176829091612671951978475456238415168801065081173225189505604215593931799092146542577609966231479823937125631364487419562131137729916014703605822056470418701207635578164152400325339118184398286156120755315250574358160973502216406326188156187452283342053192471385844207476756732133467162704585597149126057998052369462679529817973191000684312236872217936727108021794516148893530379286856569254472876590384490473049917347314942759989878595655088314031166408143192358725347835383610164564916275708750351288401218027763430299441853557279984624159260101396083531031070176136895844829107165225070976194937838284650717729091139258671987818486233755406802401710835655200880542300490672899848938401381965240619904502416864413631943550354281857256880715829127540651140488102909809243891599101948030322091408214899838732540193091503714451036434206192088630137122591703802395621818614917746435935830669533093997568530681949797442160305387066714424320721757595572853731871046768679167533799852226901263767234995222076415524053887979560335575216999452300427060019478752451591035899951782769329656161419760346964279575402111810872805753093778135897087270661756945218227114563912485662787958897552649397092638269535491119915632575567130484928681567463128050326029474287243102445955283613956466078161420160756413366147982303049426785580105188304723493853176842032433613789657701651180170475876208666033935834204225345082521688705857759601968186274454163996716742523218289229823751317324876310968717518884028378935532228508805843861062905851640888774965157210361382531056095770239627078471787767532747660554510643697540444224839934807371682270329434107613053239703028358796157352766249895769438134319489429603818548804442593688779423251673800746521416357797171994133630086172402991767342845261723663209397354108321313903943566743514933494329341226957634580667502564163354335027487850909443274451875785248978046861169977056682738105741350471375884869510992173063712344568341334492308309425580813673253493628721857269375307197707233169033091798661542890662380933579752069322523474895553232910502297077303159564019026431086998516285382405163386954982655533330144043414318301718379837355310153989478369124371103463594239160580621082138327802316431446540959562993330937684376345629296741379747884524342651362689444493557940620831363718377501107227901475402791092013135197216213050958878173363414371740458597526832296464076680070283901287030077163197554272954679504438046385652869135643562979329007017750881876204292702103417731504568772941297527110099211968017028623209055597644505399158296023515132253499247058133632376609375284013634358568402822421386690107974607310488094358361533886540986679514889453454514893694424314255942858276147958146900189580175784101691818969196685581178875186849987350566990260568441886603990893913983374147197037088045765111811188404431709401559105911339418684879568378466155164530949395028319390822585063006817635427884013567820680261555140785039282698550095406570729875077086725975318902282375818566331058063891336029571158190838162400408392478936610002691826705705458685574083327126706291482619729403686298177947576153644875400334747968937061568787515262295179976782209319400005493291869267238864062823523791528738455498161591086590486724433121880271810063119783126585882302379837352826662283634590275514137230197389461767738781815269053311147329136008327770297853392734980352042118791988306940106953898796499634935817309919235692709575488681005080365467913491507401406361430608532499379837756595732432788108604680313126022786289966481344537266552601539909382495766891879128047034140712176121338822996426235376225116048859636457411007124525507774515100985349923450894184586577459619074284645840161766655787105079810407907500008367825550394566212725917389634803953561228907417928620053063411027341987320990535642401349212096924967393880113330002967072428321612114064200001021221821134474100370196252130590503162512654923674536467139949239972800677046901939963655621304397527921197959073242670951374701619601717743918984742512933526783613357753700878223302702379001429893805503091906212618567030662523588989569963103498717859544363413638728638915148846748778029300497014907690085120891966313261704514035870417340899446630183350180892261334268164873328474451215530452697246203744352888693523593732922344057921393415691437286797626611341016907565865909617117621894901285486438632957342536002804806057765539337299838707247169990055007866462756468911725436403964459647741274059131291693819934327579174562187202285811262915065117743335176836735402490062164895889964346106452319011029094534323948965734759227275955435399886474550493235975774790028763621719190971260965652125664819588316677863751816054075455011520050035211373846980568597118549486420970435334814289281762831884503239545865458364124746537483913060918107738765934635814467810056822074215449432453612824941332549131549675105854855057788183985023901014913171329521576815910120657779471174321542816506149125516850605392333032520114472547007508667330490755632092597910783404049527489543067190439753636559286814214666738916694024043431031984964813838485020646112447894323057454029616324449312525241342955675538902476328636337928132628687250921529575627077741546236034382101707273347525161063339846750162870812541155282429799757137764305515519171817534365378690783240709102399365938376798602616215714480961708798532263392116444047758057634996970270790271597316452614684326860976875554346312846194279745309350500097994794619131492375839633623110660387175469202456676063343439206619092936832756974219797852827725459864076030496949366018585981860529319390330020509018265151529982922757757769780428382793873512675461183438780096477276053458233659690685730255194088197923213380143505579471133410487452268522069009881311434411022917901160286936647857664893832354348316371479921416709356763554913356776572942741886423917650399567449379761268384264696141646491927203481200401212162214640442599795675816063983904719157799673619536364853111590135894521161432531778984526233624790865057643794321756431605915041243126695054110035514890771879095137688108749098999863771278227567158160879805809215052488189222758036488236277141343568580720893639430789574832609831845965811521302076952658458108699037031731630425897530767038155003826223652226515328877261348886721989673921959854799670441525641010362005286512976658111834437699049313504614097058601944266050038907021805333011314428352964339802426550528951280580398366023359870494956291891927834303464262716213327635263347613669523312873182116803173555255495358717313095540868605434452164808895722550882120007612045885234718344591116559376409091250310427985683536771271638964779136833043934250100768466343026631124034618743024922247818480206878703289069891201545834852166589548737879496393511982905093223108104840589210331869519422388900234928245663289047628825666446996653984519814233872674807592467888961837370227179759462437644646616627186588886232351139514499836708810191689045130130077023334081204017083742892945029883660423142453124421910401287383591751085591799675803548350664641009162881615215208266661290750678026979702838551570491544026363592046202425611373965457501997043339946040759897899022383341422948177125150371078782125154959051823854604394013804380261122673181409769749837625812180927206354302031670178575031448023638811224523367290504573703790089354516095008113005288139344727788102138753123774155152019867650796340040623417377233986978015171029001071066321314663476820425906508562590734204390434313704421054730708146807002669700196588759453267947252275218719271994934678971616619959581090109443000198091469964450942732290985611831940013351301205243185493907069498792684035136517691540471316915550981271564981082809379146756686731537012646023668061382203290180064936424109285998130903886226772694748471966378131168359306907876038108228000196242167696424449923239174197940527042957316363876813315287377798752405923325915201028049226310141243704510129870984282200024226301588578615437968062381198242484516066277376926661720241702500704904713543393110645425461659794099589061756814103174037531533812666365523069628549565478000745520363959060183085637533336480014317857179870271216733500522481020947029624654450623879252030730956079891879353383622539790874502561392864985034578114676587847903586143513096311980312291798404294443209212871635104173375396227760739783026984184736227234378589475991037942802639889457897229883089712226179794893873214792702081936632348425723928536388758915909728256507985360817709569556069659789078812263764924775317537232260541374036785914714956534512104476346167079679397103500250263282056051408016299398496315480654759729149394482794016618851198253068997368983565522215768488957817771541170598688153244790209288315696930173835406245810017386654028056936149863488116670732443286988656007720608201519194996889578636341128682477566198986853379306206269858926087504970120417823425292161696666347519795802404991897582485296149073544312117730624626471523458617371504866845099864918076763627359061725461287265239136973692672111917190274802012145882800308638804836427428851670543792668500073617388356158450530428639701806505807303067559268005166239040500972757319173119952217055777469169394671367905165918111445618972635087368953120492930600693479030841049986032779865088267173954718004273473316039194289929556954060471174149015359012603050658144417261730494461328147383189274394899538977140585406702407308735566759255873961811340109382595419863112378413539570480304999405775750320702229850374870009663454800470494304466397459544568228126621622467098113450742462245491050633028413868403427629175967697963638003811617307532482972571493188055523809288515385304514010112759402350555230941989181508685144317290778535369287707601019119897547833922889539085952248338245468578471148508674013837606019390859628742644663237452209890264231144867363496643979411769218720067655123856615712243661984089997935015289592350052010553979455584447076940062923969847187117379015192461904658582157295292620681452093605579966757576105799737217302854881058198331081445444507914147974098031052183889392985829266167736982125790901422764433782585960838593402309191612825855247108651554258174009633290937096130946469003697804859957738978100264332898861968773160802513825314447418162351008213367383245752907599892065773166154498991828489514392386339760913581049411067494850497551421983934317993844066883334201602601549675538489960292329229054360624578717162154108600439932013574087196046481135420938565899928613336779199022857569177825515635627781531396368881258467469433668351356581198463351528527837068404542494806748525943900145608684161695508012183796995791632554273868118613652511518275820184769843220408950180001058793676295018427489602380489080619969541712367362667979694230060754430015874700104586795321597010352519815661479305111468756963195207451912604862789383447023742874083061235510023566649682298779610043486048541243252722574701963884651497646981192926791033129474262149030228718081415796852327013567825161679149384106258579478602871026797919876128985572304720299508269794312552798441352521865178586268702587347167228328357955174680904312380784920582427068612580957694623450469199025076364954154104904919825696089307045011828731180837491027711483584725522661926111177880001851446508787466092816218208647630482715033143836835368983382375410429804619295221024477153646681047625423431207910061289477726393184739048104971988277990670424700944645163744204062661978714683681765906111825822957634155041918237813146671056208602926997538438254707079380378712677991783201183873289763496739274902089940308211998366367510473609113575532943634326039670588014867902178493595593998679415716452052329284731166426671853557436304454010410436883886618897080692282033598279731913485069919239048265868733482367541892226024374733326014431599000044171556564686459387847511147618156364534642208376146843320685713328586776553776726834220740398401104845555641856885353869448588017116696085433844471712388524102201821954336772587684869440380450352865906364966037437914952906288175729938195147110797184873665213919309751957085742769553156902014513334157354150401336546958843326127488609510471353633101386571033788154646002938681185374064329518824627353938447937212559433240580300247502500105753743081673466286982527849723531068884530715688692640752653750294654474414412394470657185023848562884873056093821280340633877634856666253274225810706949727500370630269694788827166717894403815405819105186948785518739472995068170683988778730174366097550106029350943974563794190444837326290036340543296229881175524290646823188486282982827683750923279270471469915719646752626460124180114730957022705091329232362191057510851267549894938971851430736720201317547910846047197891992047259563990995483885993013077024474968356197037896245588742451309995105377918540726638864017350807986734964627905489555755730312837364288800725335425488456417334444331001543238937677494514624594326602631147726576496740914431060206065563479751575866877333414620101974482709645636713285689508404505041732641898700404965343482988878243827789779004878574457845541623952236693139758225013816000769083515325877959982212378118909396552396963154542182130105545960758445378134121590280732279805453719581327905571719449010401979470388980573497616644112875064395086384987717739680052345238498453938682135897280378377028962215115387655911326565490447553676530650501444278060925988996668288271720303954388406917742728478271665819400539161975861634884746953104504855856787224754149992215118310152502562678670724545957151646785423073582008390937716531693034032162494364589761808087138143367133233270236493389663195817815814496852941910011745009129640124301236546075399792152125703389971237962114251918570984066008793641515377582755837640131776736688024012073533398154372769732152043841489762839428468016197140215594026121077283675938714280310000170386243101006696895618108737578365651525232551365599825480003503373411012039267325265858369375969920309938439634827054529881531089720510925341380685288289780504031567683282228834212924808666626597065059848041251862995754143803064077743086155566860751382796145146202317376295545781847322620090646381183172495807872534553949273916336609167584615098959873520695350140464176525532827249477218984977503633273123408478658908897881395872998805196636237155557036058799428207435064997797894160043016062752629299616204336544684248977695271590604079499713591094753612883036062095717734100103167463663736197016480700813569993095225321295844794211619829767976808755547948223028619320412958573545207828019139751114142895980541289294395482307312640815895046134276226251465578854231620098112613110946085791327307135086925578922095031924583194667626882224034696387755301300092364902955065796219495628767545412586197360266049029000003257822601572475562412322181368804133330244379118874145099563688471502909165719944420536882001094426832612522803011774243939890600399353347553499964788150110792936060439143269402790849779911148256913227455870979535424238345302485790471490647587556280170618252346500861014313099293174115128491517016605118221202502738352855575560240811167032757330818028789373048434756606965005310503451157295975391823425862592443120468374139965227951396410807269944851737017245256329549737314880178709483912309709665646780646042996895980674554002618203438240816945456866845708120821976107995746432664255519198370487181655477624188029551210330519713615518069468270367726158320015001053587645743342364777491576532563457084030005360855239162505786662015922832941005777258740543410953921738030495388829603036429201926353384512766236778533312681945793778643921777563194619761193596225387483480823950290912005294636540143254348707528984472559798661510745500801726150331772495666038894460484591775626643852758041446494426775235471821484001030144142597458112591075849858172047151262365336649090351796926699431730111124615758200777469914054884340199666231318450568903290868601426297924478546378817239676032165366439158796262552986724347230423187112874821045024195390949891104028146300804077051250943135730898150194824380282738906849505358193919261635152748053898637232787803604187450216239751225796377438586553813598774877064791839525651999188580673271885328097123806361677087506071138956483506000638830950213258168411253368206453566503687039638334634684528108070500446176132939892946926391078285450107619319075876977194118984472329261930037043422668730702683761031276458982138453162807792177014360450276002224804193274086356694831727652936362493465755796481604594386362086604461678098149740422441251525204341273558179533212449253185571121273340955072483019615446391087412572260918729764826998573523850629899251772596582257600285358669703583533744942083615111943501746343306300633725947625997947467844948599153107549977853661167810408378431715164010426809032036336162009402304505030079351161449649827560719476245522493306147738687182689397679685526794070505453628716001194726190067635319976547213037581240604655573964650383342581606242493644124218292562232174701880950176726122030473563796960270310296565619065951863516418223411320506026286371381139327194995901537154194683900622071027241648036323083294088139335480241823983342494722899342416763953265719078653717412692006328413788903436762888333996355399469097069434376634671841348860697714264345335314966421956400303767665442847907649055319094719274362230627911024141975372065964658641772802276463111936732149710574760004937799309668523578483150257183031100009791109470652603202121939783910506314857672623942339267552041311452046583657522003887498764975611371178746743919006244128949167254095857155391408431042853641845667209787746123945102860570861272418609185482750054595965277992033846967434607081570364205982336120188177754673443648341325490478519560300803892281731551032327714397161345833979398450262330028966989109588243681426873673611941938228309170120968582595856619493628176770889360912409158253999066708144392231334959292007695842732961554212597807231422953325408485484660013282771040675842326597340035377704984642878552358166297914853847524163191996482400612848522368549387272739267933818982489749431330108238423951735187730598776849721802488284166992117480834154974890263920223971787396494030562016226842448757190680463425676465010347919240680098804161703013541960032085695128534718886240429667664061433832028767045107734826145020974281829421771307792117881398087732205707291726196542239650192344726097254976042649565559123060028870598032270991743012590145921909575918390224867986437326480972003636709295071641290288629698126006459988996631074277580777283277169366433282675734866918265498404241342198374020086711199884915814498729659005952200164617836790983188305710522128638414293229865647203541213752793351057702739455848939189839695045686292924146436400247868698643965316420489873307640476461957222104377827489383885569364786906526441963936530069603089011695989376236648183451959062678679418535724744684391537230032747409918386250839337585417979296995673863355576484103285470705645371013875712687255681666368758287678412375463514971868341813900096857538338618853509009551500022751070303613950911531054945603894200964787152645268441996518341954889021914612324003328197673071517100218769204281285306599040085992051749829748245163182462493940283165964422594052285455699095606679087695913089040297364710372524804333604402750937556430500477697722085653419046465270238678743051124133956699739522890181289193603601087751730839772084530206374821447306240289433465210986166426837109876028109443468059899517750311787812247597533853122922526653496521376176033716891925340997527844834276072247670748969677229585703776680855047232170757288440839976705584143439815261300155343995787381231751866400120117843538958524549485847318866020410921669686853885386833663383819058588256557167127441859054064799309795532574074349260576272743973894978967856785031282138802716985190771928135532896548038869730555228747484138867905132825103097658869443488988804451583732292606566166795458690947915988171670157708370089483387264850638405290887884275620761739378323026405602489466214821369416456035283946036301813682515428963336986303723361452789826688893022483179306733733512965452142173261727571853868404456941462489295819805447554990896658457460370653492765572593385815352904590475037540389594201655333573002604399086564676396088411249998535900004754408699408726431154341341297674574975347242547416173721452452205966839195927573421986445391991683315479893874555810948334429399101515621341854555907825644217158072027340818427321116346200292176083692564965092715884175054638061464409526255853677468204122346266414824966897772325787383336641954406958718652347665209303613213348552982572284621295659323101375282074290815539831117012087926850202288911795769073224870159296868130297394655488612203123750454196738613237484794042572298471731871026640777395610195728385922522992063339202088443504056758827159797232304666259715975259055130221066829776294305363259484388299076534116858734850455423075752813140692085909482300269772476940777958002191889074286907399583314706461599593975147419067770748150635002005090147323970491740161619388404438992257682897064213563443020076394947813407592411185882053806498812525683987872338422060038902187761345711061702973873486504354000435536489981951497591807691176776175427191112354950664786947803568961733143774300363354542036720830101176587897923600822956628173007615477988834967047897604289451896762934400971878593363577952339563955252350093619195538898921423213760071774175866407143011208968315166506374690785349728738572199036137895178341127361926728740511934840785233396309119385553101372743774248994174759740717539533313142092576797003597134438077819118310155032559189226056375431936966166597398563104689620036012188577735883410009952101258501988989000114439378718154473777393498183041350945171258870233185643043236584297697603806097285797737762895740817413938615391756394126112972977339643569977579527149586915338429461228673069559859896454525177200223568165525891477348163134701685330232742528951602989997137459166871982285555119560415277729641377374635614671495703317816493252609275819594828139054694187004109067260377597792038625885340205325791176473606213747457422579332750872693334728625597897142114699429709589156244704508535924533959744726131949125414322797269342265610012505745329353555651315871628630172058002399155545335203828750261317945801967552849488769726341667544703832437623820006079814332536500495000777614754120777518557120147949999986153475052000945834563650074452847565139335473003286324402917989843118883325531729100908797585178749829614572210739658084930047711468307644557115091463991740670444653008150530584809796208213091878170263963227475428574247970258708363558223051314148282313369798554736584508687370286364846341259936646996680314398754396623486106646585217352147917574854939009191155106902534503427831570227804686361668000962630422089054207169627216131034702396906352490012301197874371839388698348209310801914191564045955716696794130089203535547483214046323651969273296670758463442145943137027003074164125201837743894259762855076398025135415894184096524362808996441940496592150258404465360357094543191590615730294503779035171134598843252605030174042173251950404672420389286590148310092504259506368094321448331879506688383854318432675388573562937978409903066306286130154483944913332513296208165292291538982545146411511319666984359902400924589204952728542438306699461886149369113378083342302146892631924540595472917224331024243460721686919872089694823230981120691473359101801250572028975646687006939665426003290212853149429167033045642248097448503984456846990259968658564089839271160678658179770571221769490675616392806041331721419913829841750909250340399086961823320835965416960918514927414785732356147651534119479139308113829325639180224392235389757483860447392261503852442709453890460148845461242315116701496482720994942868175079471370103508876774290467209026736077510123128573121520976486203590778796743433954528026512154700298074634313996293293239928299632604188354397235327665444251618242120882949210467840592816693088116854450675255332388366478366855699632484521758295387533215325418410302713820882678728255692011536877940928728419122617658454278944428938123864405624129288120545292730514798502588924599291936789281601553544769447472907805883372333966850521736113387593140681489266728405507773122493206748567197028013786819077203205123203219715463173307477341377498872228196969364760172199819607960819260373902909349734604457667017894055865096624813440833821243409826647901567272003245472090611915067097953722068078316225881560160235307127228348907438466898945441271549337781807441987092177475736665867730244951027633787640073947632223484934504160464161875182262231518396572249104421230891448878353723552210346664274627051501957544300834140436243451015011874143234021050913541820512835293323951525949576165820434005835076630246332653658122180827984898988133797697716039116981180538642524314481340904512991518477548257104983238139403903576465634028773546900406015283537249137763219298571079976732621346259211880004289114561736544813442339376601836358645990651039218402892053544803842631735423291447254083952086719304443775812429822667897473388777092851387359303344581012120546413834354882603143077161174148812255204895735352648366506136145696465465391067609098254186872993696354481447563381346284982940136687275471079857273840154108783381010924628402383576820900269754328262161009977413859419593833326478185490255182241649824920208461389103899942514918749392774059916634341283132417898461608862655379261804587842312630460837784230334691196283110325141983700972766049733781504270683499206770044168562146807218459403961945945387260635733406763395203758389880785958107571350798002552872634937474662160943464764011377399419382398577163862428043074175165294271634194479177594025346887921770098357766433082384163081950214524911175103797244956885787668774788728467198727452702478075991986910259263153617987769048800507935998224585768463416808509496587830235883271267970524061848693694140295152332717696991494287825244474041799168241382697725546217836476630866593284977309322196330281731284435846425377363428318522304645131133978461595785064920815353270523554066829335852846222253487312104583307239967759190690532098639182664747140289019984716512328175136266551544789737297944060702978026577565435482950964892555786049342439212211757407903309796330115937881227340371657096762441555423560091454309375946667451085937099209526147136603845846186592093491134629676222226012188861040667732746293758038615708041725293263752300684915597661745898183275631248945571650573865032672196444752416448860909139366367718615725435923618351588211100179224513767234731742203496344763567457396271902982405821017822070084114294484367898782391211352546496428078182194695157185281966807733889289053542076247201733523410984327389287467186226702464857578942403312222171372135727648876304708264766287453267371626437787445153765969083909931645509554595762433590682965822599695101788568745116872518410686764450969929427420537287392976910768496624606898961586338516946658248803615588173776186749068216004706695618378003908276046548702836934814201921721813742487919205706075151821179194201341956947797049252399703274877594780443980715917418457698821171497069556958270238541517190076230891220275262529318768672713731992306773497110613568562669019846380820532660727581350319216252686059909234326638778946288068057012979655188616918895176428605060786389086373288296861864677409926355509495791452967969239910622759842471562998638490964250603022556813592735805592213785617118085972231372899061599218864807642886262253721978381345834349096879713936039624534044737499020624454175514411621851844899578287015748024229843600942548880019564995028420405565287326802990250346293832464455599602223821811860321945921184231361284423760578497663881426152639334569414721069237069350598402895008457073226580454982395549888882596273650378324556191570713585532988992005410852724144553538865036614999916507215127328693682936032252708922702110947533179599046015949152841237079194412988205038072696638559744374722632951722699503733842656276700693399627244612261522458031390086450581069263152143201565020844931062471607399260861862166141001893871349001490767852104091646309992627828192497197334154308660405714880714058315559673818798566101808385148840666257443862774038348506486606732018245112644100413222673243776140944705368815030654386558391207500653946077260480460374886231343495468903835344813088988690398713698546033401334859870795846414940753009518040829749101364138159614653973378054741021851046028109791039864360920965835832108936100715282766622894774280524439424290448909233041357033566847874563657712159475439764104426460817830392693273522900029741466619421684873631124774737041155704211043595721802627739217890331856081447031817285321438208007716028518486734720387587652283198171711401005754006147035306535596289680703022100181373076789394333376540783469585730665719727599577802913442944400993476296024304364051256568438985448158837103979092956097348904508015987133944814777982464835462823767448339017151618862540491369629201085192287262559591427173462074563496747253826071303433917682266275808112975273833889961119068029539012941393832927218201190420973488607660406961231593311370220878057219624450013823067032726828522227156215070008530928995050400880901410763878212773769499760699093242227382269132140759445539403574047193600630967881228958422980320438336245445807809142968248471014868695393574952083502541561214146961986571301737657912558203660423257793231254291050164279048295918077503970818186446736138045447297694808920291985373029581788944485756534848052267606289669512062154852309488534013755714366904849142929365516416665137027372756465748346966577459433894240724255682782738100469182737886000586184699582286809423432596877651098977808219207329692829278176672474631342353669462080533341635776016452221024548594235242167751661418434247400341099492000463277913637239431278323818948699310681549998504443506328961933928757412250005650193134221009987541303819852344603092943594290050730903186533209379371155431026135153870757264478508081131538691672738182386525689262152935806006815934054517116471342679685284894813469441903399040142509240576710049883274602575105336532475142629459801364027989632567602375922144154146261946288576298926318124852535063876633493163150444613815778532612718584953884333904795836729118602834930164543766230206544508548307342547182956960534748972610158967961734050195971442318244060814272936717171756402019312369846535810535444267930373499229742002833483790831688663889334082436034844198637066426449862694082630592612151358180807159319411818937832138003068251349150619572727727527240820411955911700434618432499418496745075828400620622944918343609662579292534641532738070146578424974944469507898189414961996751235000954092132430570547516583187242695898011546931056019496391769861869344398405507183793007378850152188542457391177740892668694182835548493215057140376395423218119674366927373392296394080474515973570790837959423032389744302676812850845161145943103519164163484977773075700442214164563233205055003683730645602256856735643365865797607994558704215699012619314515987420007240698021300777128326506316367574282591587775432464343263230345172922861886363965932742173693491469098011743544708136962604727116024783562813449397071801585943171597592788137337719831096846447526134673221836206976353940769655969734100489648331089679590450821312279507819748021015225995805542769036306267696821155409031738448773991469572194366289273580448655536232411531744787390889524713089120180826980237841532724695412446945523648523833541346087683174803403313704471615087598071516121363051167940835284515766143658799591362264668214158133585714460433554629079017863784703209101908811181772280553671178907974970346760365597989595366473049759069759645031192213686670265256381911678771171731801411618205550160303467934082192802714329546620577156903330654664558124639675253131586210625139978059463772355548388363234061110968486477261354638920647499016520560383325818964965033529869706048747293010979847849892153489629790059704084673852946343643310984308062509966705117176409270784032540254763110198373924219590264223739077036651051177745193315307960314756068662653284340409235002908843902589568400582105026257589906772014816384594919532291760841170148654000725532847761807775513271780470697579939995699558771101471979808129476822779459640018329383429067338280075843018789339515577694018881979820711952475524964150535557611374750948494793549341519814350896410314298137194140159167293865953395802161598118471009867477124618091580109271102818517191134203707694258684250747784122766190985631182823695593808625972094722477089615405834666866287234117560140163959085598343842247984503471264072355367820656939783502613041801886769163445454352258325562421657858896871482910350202859003202232803981184073879486654081378867800827364067266722590473813090897534194988039252936449822282250286793822172803367852363466323567836266294053511310955797747188287921518430759952811618622443411565810621671165220309079823449926553134461323269568892551780750045541597222794417458348468042549342014187458947832715520827324677982812820106232031144105981558970958239066839181805464721451807276660281909792461965299544707846811977109843010751831043607366239916723822547224591871586380891925174433249884199252678924365396544987034483869381475195845534596124885514063036801046650618815527162824309965932291669000765186228665409338931140355261693970006130867060032205390459314895828776635572586325878300561210955410083224829518663826261796483781393463820480059038056127196577636914323991943585560946457909242765788713781154864815303311905655568158360625338896229335684553666601242230866327846912548559746927264775339782082651657447194912288958430448671617517982731210069306593786698628252640216176287335017520615836902983685498279132537654605268876256902709528986694259166016022240414071001952987520832370108585255548916818542694858528372824874936821749923296000417768249848732628865401616600131015340872407745890134360364778700341152464533304248816541387669329909634612838247226517337677616525186461661247326207767442323923684956504950627421014860652467500143510319596230942308606923048944346824857330098404098878430240726491472050211494346926241455169401195450410757109986274214748225182247021299004036669113402607908416757045008312066967280001292876380414893988203188817963856634239688392143042132038250161092939536677664657980943395035559153170833119326193281465571414115242077628107090197908282672814942243372558669386400753437636893148704324524512385684011915200001051663691603301803041377793055613830226352203412834549887295108330034737137654366225812393474698487810965218208008172304652457017682392684462782936136982307246103220097149358425623178551087485522273769467232198943801353556252896575349943032511307064283198340992732006571360257748617698055995021873696227995329050253900288325997713582724401369821591978105685128933011428816878184926141693113697163782265343483211396458569079800037469626371241065251692445722107579079091684992592023407985729559903123149373055813843164350742768318648864864768215076457855890675564710223539447813031651787563773809686155588383609441934248564698207293273811058788385949220168960775737701018873895379188420892257933670701658760068603811165882738517807745224825649027110238362284596413957760999834627187741325040038359710208596697618517902995069960593629781146811736651351885370503339904362698932682345169319772244847814456929973611579993218811795628424100106466111011256721221426283297090249958890990191153103023246134927745132315432071945328419233952944194749038540976645347909198773799345930340178639670025288512706549987196001944891433691613048531366455246170615872045847513667317734015241821230953058699277962340261279037912838488363710822968981046480678863459606893994635414014515033727337229820317740968827193297641496540844876417446749825478129347952125800682793956839285727914092086387736286939668364814612697192388550239041222838834809400353486335817300942425091663179626770884366191459793887509312646475549188844754399097584474611834538315558739518774115573040687531973730386486205254572392334784977590346228737566558301632470235102548826415931448381184766839358891390865000746675849419718269607444720556956746425417131348123092907311625023690583099259432676177936369982280260106662403115087603083439154180623839001720219529474908751282536146249317949460385726696071129830285111212374920831069597432413914460466284621058192361025453012496370312983713303565536393954628755049650790371805897775209031267424635539173316165254643973199457198255694201933865753680346243253531402443441896728205795652932138350589045748977553327278315579520871726336087509564822362659300010735205602452230351591428741139818783779188262781096666111268551867855210533228657075486109164740355764840923807084316786260510702377455674192082933355097223546762358568516476455634499769741236107894266392912092899119843654301813323118651989281943477315920838367144283151213762174162888474380172303701728841975107709833137967432720806575576814398843502248058629898865546780601163908523608078663396573988601270157015579955536904432911214498444274014806790151754681485548310928170762750665950153045834515653184698347368368847016940416471690384218514643000805307422124745139080946985102049425470121885202347686611372870632112682832878939209881861845237805790511292875981004359530465933277600190293312528575958821207356101961882609034344949580121782366391467236741644744178754748795609421610766441733480502450262489811625146842867549698258989854143795172430553257863951642463043207559373547378550300846456408595361545511231029544763157321923178459049547581746869575992357015639096119733404934026308967376880212738417520671839530858309554248214742104653244430715732829723943611226659446356226296546296209757895724516948329366800853791765580449666460436425660971266044168245697169176437826614672428999085819386308237027546400209384768442704763049820348017484320349530498591633773797740221273984613707950050418954481888456838643758038861374405357589781446957354742012021578145829451576863514477559178407817509426084275522299148011661701987124276703380048330100310039222014796590762351567210520594664924489728827313757595501968290679853783977086386799752851407794083206216596101534857801332858356891772142072223258095893936549315655765325486507637392362831689705962413456979326346714938372775752561626288845769548872901398760987912328817732760743086033003224240542838465667754444953461034934596116827672198210632679633335117231481537503310583937297333487138991254521542330117215256854183462498981307753516365160856720074822681579681464413524246292906715945329909144681920510675004733550304636058844895842675670550702726724086993897579938648851524988981080557464877786419667450174597481506989189623416241163262330117004691135975519783166480210333836154437796601343536911935977913274061955199986921560881558118439799192283385792621146031180237410604077152871428722850713084928769041495923489008325304173831535187980696505562324275055958467120466797766950037492424545393916761975690912392613619324677416330108544923013220558661541697931501656874056544939172589745189519589088151287264741511814030205973720781103730592373661381555293112951080852677156810122384360990674420003587947319659111767383930462725593124981874880519219018070717595074288625623361299262324585376084697700438508105498308568230275299400531511112368035092070421861666290692803720909018776472343052795853672428993500655232924481220969376256468985960230986301585805859181184458666798552237097682067745297165628557808787730101186082325164325491550664689376216287011981925321693744075518821483164545809814618607680499294487604191435928448826287453129919077261540605185503148889168981790004569491409717782467467073692551614502329563501948716533975310912041576098359886392022232717755193979521446121306958704994795854635704782495530935633299105354045761393997884180278221918036684752086498288815372358215688353846893681685816612533932122462406239960721845275301355774941893489147722499154234994293633131245107232410020693110734300606881427011996988446892290250464567412608415301631135019223409060994401296248891486211540081582809724340017497498485732711896315524251131040959097641667924816003971665219437125532347312341979213958803215504992168866847240921849419786664711848154076180904018395460383214235429401161502405181339549604677996243681887248482009146941087337191632319951318029240028524578444051121239038044513317525977591103675176789956963078270273024128548377258383679870609241801535178712149763240233561229995519780385529992962491313271818827639718445279238349481095590538596593685057678673364424675247288668464891254504211779905159923318114668182571191326979725962572038096380095098090464790782445528094922155175842455022255185955718110241036208646994932294175351329153951396508143004962460790310561931092101756832939683233995484004738221802755986969423113887557577144920411586262766354869024293314617941245847520785882968403241330195726314825512804144331972008498504034013597021987817345209156130278773975570993982698595891984650149194514898665549910344271427381172479798280716777808672708112126776390645060348073684993724066492397032564304024534137944400669683612044052294138587433862032208139985146797003239641997305330408428740788554389642817249322180404332528187013606917297401407357637214629737098158428244374167829966106141620409588895319026889068702079224442403447511302211914316761933996212451011916833489137387189080898543818969986623084326048231794339990694799159957003210075729911612631023669265523161564838193844730644564274458666502654554485617611805385521311879537904554276124133798401637251260056761525334176354361591363942457561207320101128843828684967513637774041554985708638647962211675117740383584531136480530529397691205639167184399546001408909615715543321332870541096316399332626968084481141201133312873794434538156315765741736422014066948856553531252028047411774838990285753655491974552884898917401164693633707383008619811645022739722630132778500429340576916169402467229202162055887892774738893863561353790904446694254263938643170648124760366509800961335519859925055215167764155139412652152374193830010550058172818388076429922499742094471660505504083393056851623841716370373516548461193401471251827632993857189363882482291591842003141931775283477255612496612744053114708861423587163704742572359696126074908200888948363976952731328258005950374693195978109695349380520327209455639710425822069241553493254404989504364007861823647298219728702623583140999977068811108605352914793948651994008166006711358343094955683309345104504824118466840239386861064234937501070358934972594570978876835599847276402746381903296129506479750567586034099747340192030578334924593228152780577813387108261386132714223632530398107412029926042599135585442526640732012712744219797802570081921151385060391913051916910755008431203167947455400092489068746705690230905526724882332466966360818441185575550260216829717875212452819758453138437887402199672639976523721735457051048861284087584683467144998817069506544949786239903581140952993857516035981912150981707451724945324219823361459156087955251017707485219580912787145824423588603629509322981907417818727659962681703825509125309684599837115308689618244344762748384834545349301160857298525685574277489689808444565594941192738037327543293289392349833244013526132657819967128749774516027711622438103500590367790563018154740649421105504514260525428410166119817100011359951251492823192623397993947776699826394274841392069784913944897247279724900828751971299866760540147341549958790309901682105524678399859647192486448284106936634810871762844773361955867654058265202899398820137856344863845776310347294586467112848881649067327640569901646431461896981251251997091143557581780080462145635891993878152676792686912426067981916451103515942595908000613094820958627848023347837286737738544246547541609263033454957526367232337480830391160983894449929089569336715965495279232807833479837080847979763825388123301818167802779134729738206063281465000014185371000528142345272446614589023382170003775184818682710558815519381527672150072874290476491313362507440711229777551590966929344789952401475092840482448459634128837913916698449401282241056823103297158858847921712856074468905687392633061503302554595493993439018790748231607157960495399951319800997085888865964187378869937933667450547427664898592164834895495432824168563243076004691482619872462144508947227951423443942020135295638300710701763375863316013064650022699697497803485509541422269367554171784420141990557392556409334312868055667190538733001036733022284987098617745076071274061894403402378765487813575345945213913076544601283606302998233990899860073918668365306549884053794644059803929636000009373288934179690531860744392115870923418479829842594538873249760419050991316398404699681645301121869846237620576753794313725793347641976771617039198949066423676373791857803496170842379083610662359193022455917910462355494790973196380789336196933430828025691413946832515089714342616032996111809769319532336485727372800792086037722632632621355390600571626715067017416144873599321377422297421779058577861558522006012984704722514644431583943320637185994709480354005719929762885450934746544951022783250787051509219048959606358214781548603456954379170422434415040325953555725280074067096895620191028614071675463916074499516922507424458163819958862798780601459033997631399626858879345638933406638671359938062943815072175354450121405483598696597661875679130274681448911535076027727757335468698501801141872940294826077135806222191303314051502916268959668285272408221847923323993590607651825067826968525509120760393353482241195697753175328913733005792941279546619781404422780966785909956753975581039056970313219226493866176262641006719089353351453188725752786124249521869548179428140751301939245878711053075707378258830188447057078461955507721174104396511594588688552201126256722334063927688070440742441254413194627883983629667969461064852684161679035767683961889340081184856887341719548872512442713002899477940534644547634958676334542560173427919767827776578956754359772025742773493173702875859452016776713389299998440631862801846050881442232302285880588227257059199024155595220773143614229271418832717964267639038330998751449343526052469439453677327031626352880639060439973418695900555875555974098108330254988523940351822934478562896011161009363842194766954316935286150435528199332792687348321473239390999223734401672954592247328441687324904597190858208055490578794136370916860954854350303467456097078111467022673582427535903068464249527157496283044198988020795195866567107673569386688102450096444277279048623096025231029568743742054705607313757287457697859327136250788510103007186855652482592001270572429521141161311864164023567461831817913026214425469749580023843116314671552682043914371965432630435185298850446455331929781225811510518342713964780879255117892767362429104068433223423837135168784719712993112541157365480931052787412514165916880565746679702055855043838696552816298375354215825140461929601741201673459540483081333806625930818868456051872019833189514371377196188206472648768389905287287384223696926220999367009289027532560899345837480272828697823148072810856613407992279261789913247938240544540041466930716599490126160197331538452254094700104668363461330656003971701880985476874241834809123041644530221475960311688152733358268245092414384625976426331588328172987705159326016817786174222827684397184818030930310119096272263079836058641509951556446799371260662258096360944428908333461866726942814069103421630340285179251491786535061078874547039844096724458681289910619365645934986317445232044910694394750891331885599708775285267541297368756739099088833164057240108683861053876839838820582104052279474184204805116724759261504727731295684394729166101809183078139508602264234306029709440231578924141789057127316291487403539618214281099294469347723319916982248352690817951559429390380528719926598405277246881676950694993905473582308978341349797947080560864106574440163240102440769470179345926448962220980008953732987018550984393509383419712270750067772247921520721291591407028292378935425454418938907753287797475656712385288060363517722769765579556843196328268929024228843990407411303374704217537181268927851844941228336838957453035315661025418920124916629751312862999629842631972858121180561466787647895355225107860721476633991376043116942271273095221820022792792796707577586815347671226621820263695763164115878700692001680250750406752972149545634139034535082915569962255807213493725061013286976999916629756896722596575577648888493457595466894892632644477376436505802139035774812765881363806621258103415759477180828596996382553459038763243134521293552803400436302922357389969020114968376485553805274392281778014194242697388400186767295257567413726896973715534895778387395485431062803490682199334657161875250601398235192829162505335865109973123365973293925790389916013562256571165048316170031825241705609203622525087378115528550403010241223066568347901973679318400739378997778976821363273365650593306362812899905372423064187767869297636628977521741846137174684691435706944531488854598566984823118123079867644208015723091338115715267216308094158211243380690476238579205210227717656279895127826085059257821133696021202118938619193441108553534447514149699235538093893760861306724677647745682700628462697300239189061731247819303522775234969661989855476324689527402508677375673991667768510424787019007340711218307328300737535740546077627212471699871765326894478081962780186056833420872878875723892058365989186127429702549840974610618526100478270496208615808030874548483503146085319874919804455387909083579269294742620283814959958205785506174422165478373670158136651598422220628820068759092332222271130581151302453964259671535812213216002224029745003590956843253043597237489645553301446343058734334635730915868696300594285414839121751461822056101052627029683329545875067283288862355665569963496668320839643506563058808249394419614705320735987244210021934152385451760107984285184566961655110676999413180140671055417091261155045050046431091262635736284690259857812214182692508377152673540213435801379600887390287355891387049001189739467592812331686301032391886207009615833405302419928114907017286103223199493996504417177081531703026694298798810096468966940923680191613227688798217671232748200746643537400916900978227078347137933205547796738809770745114791707688047965785260806715139734244139788328000862987581395580443170452123416204325415841761441826956315420880043644373958172225772608321027351248648571499302845742867029836496543101670422607771261185635334444622985119649055628259675203774894889420393681569953840133264713808080270452047023194720429422414312723705956241097646148226230423166051542871658057193391733405462463340128453107078427252600687732248351191280373343851069151396838467614073872096234993112249487875232465970080809230937623121254539701285100379739172306868802676390452462918737119283579108816792122305327961170786751716228369410266284347677600836033411854396507455648715327019708056256422696220106622355770558907920136525533848250083086219049366924043284502061934867114917687317091287538053315881508885950800006336476115091516720448700094168407234478889027669271141513806315975191960138551530943782818052629108789715722288676756682287450736541985439619820628050576749777347872228495456152729678669514982540789124178361713750561464085271892086629021291879315095316506059170379918325254621195621196518872359915263161021642534140706579094961084131480826431174790496938615392384924751586094218422156751045891077099118196039764546097540167674510765533993230334643401303082423071651798965332741086681072557045720099551837063013335855828561879179549503706687608558550534951645649975309953318620265973682175881435482298043745990838658415433559900166086696379575812415399787551079030134891767857560890733732160891238101973371650040477168528276473908337639932513636138083690201293108201356331149224492540767600200999158934363588655987544788401311112591951775161263958697390296777483104989334474347176874505541092819467813358977822987857038193735097070942265362688749873241347330167900164663610167042963479261781519855529351454919330621574229041937341881328553671914276032025066685062711291934860029930344323286938295327951534086689585216611922403911702064625738752114553314362550167559966850784434950262136379680707526289880509750565415685908384596386313569859775021499960380560418764124810313400680782350074896148371088821178922449587672208072788692403086434979757470532274651727465700429378485251312647185571988819327210380675372398783622871917283973649876315191411149971589138493768847733611643999913202985028861576308961945645047751851487046803988443792996122753302734060953226278490065075882403734683066834705303717608567681586184597764989928531227785927524591134300965735219515899425319186726016053897229683222058888176869076257246188229242652608193276085678470642459679827827731616028979515164222061184300107310434237897889874253731568550261097127674933649691256544658024234960796007901486294197590190294297286258951640602437462972703865224623109653585434744688685955132705316908384527503739212851589497237514354027096023563591609995033369046517165967524859636631731134439293039091383548545085855673999620786299838300143089351925510630224743851604464396000058956393578777671582187585579625188116408209545003770991725721284518441111946298209238954270368863372908182863270556946822752954953375122902388556712038062522554563381576367033135984755565040848687782761814029438543846219710733433881290366367920662585745696615013082197788433437003424472904652020519900590323901280236003375393756961140905143817377105300077117157393017495942654764757808265409830509986381311988462615442019183126892246826404710485520304195636958536825655969862377702049816925456538174769674410981107880328313560458364478630364969246394188390327721805058665022259363804520340996891665845127284388611969931604052779312662754018997556827744641584019009193733717101786364111457907392781559793987648448275003663819743186941898906463690718650406771804429755736692105069778057427162926186011167839157458493833541607235417773343991973500593776357675689893447594836802579040025658308084499677038893821626297158964676208249426795849472567158423542000838192584344063779058595832000083279291952974535311613257469785704902844638724103268977074392727759347307797695639040842281493530337060498545959931759645509221245513897559907766594565651866890527218642199401469486327306144110452065982158149502464975892088913755574721063404192680854730677697330616079956167053633921303863638395596341391089675248035060270471077454059492075157599505812881166638748942519839403159174974131809981426500427724526367671502090703719648897053878072614004104365459636415058606434367660972975432569462387904398993255044641091827047426747913085426529321089134456416128132270515632955858568137087150742345163166474128726109024706048397493853314559225168835647581063782012663601886342678494319803168228725673100590729425316019788122090517121896063403478268122305647129728876484161069747151818575188168468014194024618347394251362618724622299303112223941596545548952305762724449438003578233325116551112334228585824072241466821062090873611248918935009639415225410069074778889412832732564288599128739066933174489569319368322644834404863726480923074878756288209833111015361549583093251526998821833077872735960298579871873029729282928021688795375094786037023762663759072247404164434358330051253555188486354174078166426884823117104330177447774172841074287949122947382121303305541902801870220869505764318438412787420839846876620396310727097920345383510433796006311197103647508474933446785907658820223961574888649038082816270544815756161326090646772610810640970504359019081097402901730000843754137055731065104207686840200757764934102173266948686421461096214070853946360189269854588977284767621130776725554960809064165273578527025467077568588600457683365016295273319148739551459854912192594277676630004222351693464697659355868044142102506530241660682834512011133274821546752184156233755764892110464180979366214811785197547685156536001782406004450817051267611397802925247309508280445180421479999764361189828231296515215893719539840520129560080602902883749107837173551413987614229285325601398545616925902760113960397470378074999902077124855240355381676252690219443714468450202280455855590206966273187889305363420065556386159354934079199509825847354240942002574331928246075834641639033200131436279592654941593823554715939049628043941429272563802908487624278409633467223352819982631990652331113287870661697324622617066860778346728702048507023922822402416480376506621732663912406264853225983650907763350289887941403762468744210965916593067434715083093857773519495047169585659095546241452469952359360514369205553305036515190913486856810433132620883735011314911472661157456861361112396951143639188744454779321178700135190383762367859184542996412221012141777842541633770849288280690069976646021020613052183751233689665256319342938179235849007066394979806761980228435208872312182440948513449564291729351753935309208946125339955921340821649692906459821666659061341263569238367002908013092725057510555469738525354332229038782048867804403283793793749990730008391376213169621584050275541536464708120446438726881294802743497738542511597586623685914206595259258489574866357583075637513382207055861462921118468408897694007414007703257476747552875699945552232766001831883400631872881658490172687730130571817141606567634311588431764783094554113787934259274940702784271083895772086821602222351081383948776035937843496052139765029484139142481825510672124543737465857332285410542771102558283138819290706567674443559399873587816280235586296098661586698035060904187957969571953131657838542092142411900190263289741472212355390164497948484918117198611739755908156719964335060888349794205129252633654077838405565019495062916815797493112313691364809135461251924003725767242647788154911022067456259351698722965988561540986982257353385117113288362602639507315458632928047947722980463023477079664784650964451277004419173812512016134761908070113237492416551970305346241261625595100029754067188050713366289107470558340507158326896691246523216483195763432364343762080015903130270559366948960462539152451480673340388822455407236722566986161222138932867138737402164957082762635253757328212778586515736410798089831534752327783090503308276717391480655434519968675085087061708401987346395801007716590912796739526196795553797201819426377091028987700676589746024042688589460118515609639576036922195321067346947222684159834616165312361709126031427093498417098748065608677005326948251960357330736475911678147533334518934543503171489786087944216595299365226844878192260404995162165379846758567074987942281149679363978829242613512213322817160215130378156882999677360004291416259414940230710930936937446723976048784984252228527138775492126532660304267689297508012705999227295204098370965302095030264182063035418247738001916275558142418694051457025285824194645898843367826181447199696521447061031090154063884044161727034219400278705909769000921570241990659030314561613207167505911548226756357257446850512856629801310438437011898936074110264716995466676978617162226574593589292203065619043870453538267435792997915670847256275408870739403620202753810744870451043646837062238597759728692404077633609690828865680482184506837136680889703864182930352188317326062536418167367806811460589905152652165550697882904480124612432327315603081386608715792921489538108998370462501985926586027566309910459205612343400605605609489531784818098062489110926911551131959357115077886632810529802462023225101028134900625492018070912542796677366347206366321352908946582749635714397990549688056801735396681772817774181843627308660995466396602853102890657698368574895307236581488712144528461202887369356344316841112787665804135064285248818664870939520230003740688312244730483001224552133461412471277894884836970855515946085516704791248070306779380183419667436376295904607591969384370888178569046729746724439079098074584099779021330345005616981871267817195545672252745035980643721133343862321783886536813153438064876128514759738711853482421815027595037071401672364224865628208900891769313298071242330386707692182937396515833958146942165823137590461044950581013516124663964391008842216533275619642059907606728168945345821197127335933585712047577283163563289226844473938967694786068262363872065428018785628865190475238252436871777007492208303517837815712960127950452182889746320104255370752388998639957172144738283236705932478042206770773515193064128771327764624081717573255176593790591439365523791826009457591081130978030904762107578930579074955695526017138351945957867306414265762203748349893817056310676072484092797676070393101934474139652303484793146682760986198469557645043475280895656273404487692141358838833101038737272200726108658115975849841022298635463644528945233153404390950004096538580149643646066753525879135634163384094793889505956111457629047783705709158903428139812412278133347124327214531489956186533755904828698384696399828972447179429767856247412765221369873675613072705299635938428546733700722254332022919236801843029690063310210066013307876889616118054166904592166141384079452687891107048293535834946348043128480256872501457663900347266870304657140470485269684967598236888765308282981277534950766005465979258711742943324505229837401711835472037613992111954814596714597901042023880171040890908173314387144773281818751568443370023438366024494682324064890921018891677124906358310458853284012583803475417068720469853473889460616205962608249609869096296862301489193965833718110582128659815945941004663741319222901662979889464699909169107134228799882082116552707669992461809385838768211760068410421789475055763132074290639254206991922287514232001096818497758354319464246917796634720972817887623397626102689892668503668552999226322975360753986648785260415741170107740864221332559720346843492384469965313795158804295126002655871808633301107516267620364006615439794368845429526488577154988375200402532430664327059944080245361824903132715799062602516677682618661914256527934181695862069006411365677475459423567475110957870356274559189774555545471253040022782346137689646122655556396743270154040229566642927359255296628107812394818505760143004743102661758638797997880162198211663916938280968467898298691741288298105633667213340359991849469481504952033221632883179248891220803899812112623650548564630208716065667368669029568386892315758196726850816912065165746875804480049368838168823416421042821788781644516232652929500551578957362043376235748753224234509129305521490641959287025336789207369551577322365337593169291829048139450514101391250622304910745157939902023128729492358641576096090491700020174132477425673795217580262618761661076474659547725763725724326056942617517885248065871027556340643953734541174010901104907216362269408349854158769904971852166386166801234740938637886595970753019969647146149450118654615279451036976974089465889103878551695593125198795112718507329240597212164589147571486741921292990054913690701723080525971143760054334036743685886436587389660545679048807541197822741092767794390881124008018966237266228780765047661122976180419341798251314507743177998162749258562918304198527686122407478984947981931406047828186569407374395911628503568268605649403682454762693820247482028645634465827092035025370047899231776407762949065400445504048893389993211910690333223953966645475500293123172788428167479273412656883509678810515212451529452708892549770392175858205540912569041580392339581348716201713944522635317121202660290602185466022998695117165837266986969987126043295043845926255825598904984515282027950898255955247838532153010676524254931661905804949290886336575166134707185433038595467176644412862599146282924746341169378918008793188790175358604349542435853925338289140444013079924249919877085747580599657526678732671340187054890724347072249374606275183220794498900809515614565561252222661940601202206509933526018975516237927829226776721516468561777476804723972952556678195074204158384010474855028113040059350510734382465069483202752544882929121649194941994372502532747795321622304906855235308710870954502710800292177602665687859660799775517800988537987839281434770907444354057820527123996875829200629408087975213334873288206192827888980551029442582782361852447737909845247171353407958917477350181839907852752202770193777382177668039655442454336171880404256702671848721511875225734361151612598803829576417571465827447022188807497198799254538274394402749117755054175985973929109961206949274694976721970181494687290136087577660909568354185609658586558061178682880456097277428388376239307628717586707047158968939365977037461166318199828198417970860846631372837670022806761490639075553743518300557675928503626185809436559129227478403337990178633718668496236415532544624683504709492389081261020371030770198848499019027055727839051687929735088624793696618835474729024620904424093442674747623021446531595729910094741165690742925754792085075967326468270795860229611353480758065492596492346160341763160311600415992002981935635464272311348988632339033180565877557217312044981475931637540676836475155054806526359389090935248591577598130417375842977977188372687224307177174139415457634422977226925813808126776946680118502787621766207674564804961241193340423445392098050397234783328713598177126345434657366167577259770302037992075483349230546673105178131563206615752828724842880576623977571964374943094822445090166592874560967911673232412152012232712592437688789223832139318302889987012720559954936242696676806516530002449884986451199797740764416304983136398559765896201190445671864996547350072407962648927150160469055839498910214730246945236499620265065540461098170812123789752396189506081624295284831592414789366923168622257659818936399190279328383487121346563923657543843991073329094440903590324205595827232559031090189128413269047851445857608585954480403107518131610052173925953479682863034223334993965801442986875388552015874065525011021228938978514264690225658928992939718385133048812657503994387755220651988449916189836149724912152457828755490869001269379873224955661413853908983352246098563200381294833033813986224350680025874759404720956650173642719748643944358388441615750648808055739641600467645981104144500405774440385545063666181178998594299484252187407669339522342669412701733907812960608491012156313915519369493345885913936759228614879743564214509538672501725534371304136180073952292109283361258953495194517370659165779175694681739287116292305606476714416197222550904446111138059996263107749411343112738425725281587147379251821447846362749079038636369736400421855088865661345124941148184766676934194723497091365270007664370319736726048385429297020266499434414827377804097311800558417791923184714580775533839485804629228747527941675109411736549575727055007275933898100321707172837421614140667076804837853706271044315685455539497007669353388188281603761503811115846568320996721950964814247813378960042764692638927472639850477078453179712692335327772813615425722235185493202004804129167515207441619608483242448581757385065568417944200271879006841959544706801508967864237550047801724327684531875011255806298013735690020910123544140725292486637046449226631621788530909591753955587881557021741774494187330157891548733665361546143937183429338795754122412668445906679847441399458916272010421381394934604969328572648386516220419637749401611024982504728636608587346812358367262934184672689054777545354381726832076778419070873201813455933103095581650310776985899020081159625002018577892705174826313793535009147593785298714751999449696758895953865688229653548991136611440226490840570132737399155453330184346655843795683074954524273731826040595952465364414252595514245937237372935945959776778582399821502565833448104823140966383298624447931600692657656066404702471973562695968070656441479485458615507178068346343877742781193138716669350473466096875717080033098871396554775899798033575623214811230820226498124197035648868369948000816379566329240595049868588797342316159482230697382070064482935443590806378346846290804324573084716206728277699613957091469424682295664938815541899567336377331558652989899665523869116717379081755337217569588975509081443083128812367613712937741353523415594119048342144540588527511720755377564003300709401736495736302778149641514368932636260893561267843260405472846256644786572912875302914442116501960644423031454773937271105832104776647738212347661108407704994786890176998262584407100809308671900208888696849380916215215752879891299458513395090732925795984880599141912366210479326503932662439208810102631539480792579639732102006924595604872875592637963952373985300149632067155277430092874281427018215796860213701949558969149907550415908293762465823999073882004086964549251315873470448566028534984630314933619679355609073915773582071575579355196049113212238041999197716355525061589025078751763399100629691327406986213091904865673350358294294312736554089868432674005467187542128572046719402111246395255821142796704375490223421787390616746690768696521474982134050369338505155852106900737841902008869542031994988450898648935955566310081879526085827976347881444750421088710396011113795298499075229783588346907674652455213506679637331829798270697682100345173972576783530449914395115714242438324275851343046869105326051213172417980596918192975341305350325243481589438316447980829196794126093863217430106883506822817304067960367097920728081866103111874593444601844505360289257739240393315158230745896642797290631857725323133941218233644098388566292154211341395581802294882921827398845787252408539468733023662920901241549610883671088302133027087880541796412449308244468765348074334868266388912659488654129784207646802008609339015691060594078876869399349820511139740610969741708086060337225054139395286159245135253721322881666098351789641860122655483238370764304234057755866786513978435828147997497297011376024957552937303484018200135707530885496493185143740331145786695143236927980253216395173984378906047631870756570353143672843089144177263401198992509609390897874364718389128958346742478446296019473619679490303884058886065403647903128186104471266141187671833596676217183408132076112296896563531801054744191097482939203636067584029053624747123030960533711229309768588007514824089345691907919246436332771176981936967847433015504133806610922501906118719991414335007068859605947618455414210655616812096591646697061757465499581590254264536530119372754125672077927890640592154247789837129427174555131222496870610837948645423212401338645681788551288853977679118309293967787865645450299335704609588731268219454656779131420282110105965207093074396971737221494196561654925147936266418992958363151432785051270798474027108924792860526923760398807761840240616779808029201826783299615801375235529082433196428955995742168849159203485359355739025931147956899890825856303579287818385876633470345508743526844754033702922595624848299729872568524831168013345723082096999624770253851950686573501411385903527002704122226874885722784681228995614651023922900416976357611062751003241711515496300890064476727091904306956067320838598807361493426688727221246112478309254319492016585789460981721886878326947746329165215788482286823434457130933447353150974516414287796702599310519678102555048677409910410841537728821979685243634487221477709162108355458210333120233107589296766321015723988429504845346219353421435389647952095301061413078844801013909371734030548924229603339327177982298763607189716147901438930157702430321048437727770585356433373740911327000070985111081465499161812289972327420969983353811401830621287724129434819817082701151332888896161887608904746459580474054801056597812773905107116342298984718472109303734345564009113575367015044732461452464735612821056237915300300267754265956324074901435813488833303343012020700727597377443748713262650343974850434344596698098117600992369574529649067294316056352107258060966876034678525503449633986497772263961328241655284405119723347742063114186321422565099258620702264677437918024498438814516652691072135545819582905776958265129017915058400830538777010666165381306480330283750209489199622458155359482023347810159336875510532590478550516938733423269871703980079650897242269407184691146350910095343186972164573699042536034608828108690376842967175345345674284215506769702009445899888769981426814988819700481359460620693022621212138846404375077597775828884078656730420671588927919363115739331088142604585686021098802920795486258793254920113091852314182813746988739710683783429724165423719025865954307869638206685484594920206077546446756425586000299585737770152975457054804887629835639300025496886094082279636328778644034335284391914714967056699093017521691555509930067568338492699373145517695289057721032420859628607025093087236412332194162873882571895786705853733812048300938249844077584750989359175139929802770786697441862305648591023356897861236651867007716670304597305259309903038544701519012478098511149606721254549340809134178828949725204034928796008787831451275215302249042916992610941655842332669126263847197541431644538152612607849884508176550363060227318709054523821505822480927135222432584533314332625081558619258337467112023232728538120209803070530125740561653966843101853238604977212331028405437887190644818613181000537946551838724310671465289409415245218405486306459975228205979931473325727150200808230270072638603626510604114663578763560461555434080351508770683422299985002704371622723526235255906547312216689993735211696651195106157734182421341806918373168102675571667550987995902845444964398752076248471362011872517892197660717779753565090727613427209623283601482716322858902549750303566095615259799366855271228765797847032823107783697038870357501405393734821382081728106710362095791487825190791950921889272666521728549099394895171963262218242455071359310554154348419934029675810707700633989977582469503507282629746579899913051999755841320087933997371776757776892072076252244304944868744504199804096627379969920553473500275590173945125200063028257081852196071500483139477157496050134737003088202184292381386257413099643828411417570198587731236056089478772143600171624096689525678022204131031633571070099296437301270257164032062169750634251500000387128483074273691737075581288430034327304832245056301049506566143121414318540270030653143066154053310863776574456574744113581042131680073184435368249892714989785716059032681882263728429954609748032773251385566920498113817435499829645019414206028195092927617740066746325139537125192857558009002905275448305517121644981179340287152569382890169323188193614294902786611637258867141767967663595757157515128813967575408984575441277145063625061476620953762514311668353658442856224577721765701784311062936972501334086727249339553649724920033159238803710792650029394561416523727514115166730434856917306217617410420494329428254663881923946511176003833868250466467465614410790050546259492424759326451320146097672826041213528111822009510375251670706057282582475209649538832192053729623185063660066744813239441211968561036998929264015544455722737591871734908329173043756316694230793526993228137542387095701750747738734011042898830254930137064531007606237104615238962038998005303664896548374688898618829763237128483711262364874650565423272417314795789938975448334119640828758947158213116181354375016481748419694533238536313009664377225804489753668289374546208519221366752111594652661839409207828023695117068225741890933516831875081971906812639639347450152768371573603924352484852946813871006951912869608628569021747997629822900314467181129425559988783287016707505143860798515565879775349950357245300766408840859067128154935817875216130415233922235433058722959432150993742035222607114711165881264737406752648677499342449341360156244677177407010547432034838155158336506060580916219812466234244181947513037940922624528664835372685731457879625998893501594136149667440577604493356921148837452024085106029616286830260851667591203083761704643312975675816307778646857004172939521028131909001667713220343557981512990647150516018605054616966560593235489076635853564849326095647115752129383197575832627556117110607859942499966617505418411915113620338909489159935079665377795993007520425588217326743132819360010929270376831265788324424865468589220220573216865304859628963132203988181485314948812001298981275106541207590594582035045672419737525254275137370561358380553202095837010516396684324813894203343424501168867186637967170137949028005460836420433944459307443619244808703346035177621257761671339109871555806892550232107092557230323395830078944566354183750292494667121030253636792180392749366550504074967561676368478855577554235348854933580477361291106084046228211922837718950478585924167279745449945813766322597634022503801915759153479708435065742983356053447363539600670171291787262576365501601982124485635393119739612444244048746083330256953428446187875510124435228382502700110543776199876977783446440704178731712428900094336276305125371814398734570531392119063302794710250709985086714592061919603114753110010069998307792458876241644852721584358342652165110554820516718448427890109630698712492981731585800120767835447374783250398475657651123532177311276714995271465090091734880178907595705947989268897764633111665015538435192058296114463039473749948805808129523701313815386183881306510436625753610719800932192787333610262657889974955944623577136720427939547252061385386329376228076141849886694764007072506460839068954666673619088341168906986668726725296649812699360708303619823432057484254653856937712313891828413316182546772241699413486262008265658133036750265198462962032010879392566901183479312201760416344306175510460486588500180050204480414772342010080850892508020637116919608819491993661511734078120766600856456955509973357920470002488303671790580039426066991374505626084969002198303641073771834292646162143077210367081222805270181162849018486539380146891089422132671504956706725810378643349755642966495733644355799378518430854388157431410259937153362253828394768310886254355901517016378980864698899829352130925555161150163427008064072041471180583532775300404716777254195318489937703939159957037983232127143044503964793997621152415708104495028883710500728464013504217719401843170571268829496855953395753805066974588942765297367285308316216960682069023268882252334706713056445172858029870110538357831468998454858291384927866029755292239322496270631143713591823581920591724852053700618567139336514176388325901950703345287269241339650528040183200848802285527801392589150591229435713319235204065341556602852705583637149256765473223314389922032329191937680588870620115374607161096546014911969785800194464199800987088613996357803842580605341820511894633786819982762350501505079241712015532425971819450733706651523925304902794535622680448789575398953215103685992927317963666753170795514570372656204071938549883992572523106733586937863707607127718435973887462674451481699553709403997730561814894820792208975582281268504476740585324037028939672174004590889347562040214664372229321234376475849467341920992399937120927395722264762101805326346268349831628328014955979201950679625471801912573083809305308208761752127655820165863971193979403470998285002210903907095199258078561421436865130436775565573121900648030676862446911679455685941629634858428120688210091738551267266007291166186299118943404065294157565262067750106836793445000232201439016293900083765382246660916908998428284211815742904558548649138778891517526749894454699629763179804471234772134041439904208255999583289835254056178655459988309511649121518274650357259867056594554743690892202081784546478072420829745437291005364509003439682338067818619893203481216479762103545790908208514323558939991065792426686002821507491355299086780441572225170674467311803343403949449821422042556526988253844678828423641485848009157706811774170786724891188872567559300946218442958108977577756537542670356462651198384496947859407706252257383450645293214435838190037972450187807487975997343607530067795699000198878199173216040028175034858978116044624326926148201644818932981331659823804657935566910631403866346474648010938437993200639553096834948515140641485016954022959727524690068571525544119069773208154317485550521332324018694593670856468383088209009488274307594253434286615367550844539023054945086040551674213607964428234612344316858332316617718451810583565046425702732424080945043700094094887566391767451015266980708433617598189493738481800031955436084592153570186390059184258597291150094116079574366311659967983480289162901650718577154106343814295384579176397443544786713836523957201064881104237762818595138699196369224771390990896030842836342511428198923062634694351199770598570240997399632411190415651701358398549327798452911296637970971595993946026321823177517689154428907877221392114615019416943824655648309916411153560744850637793636093841529175133858445698561691676104368513989155475766734608968191305039803581056242173087515572175886444269803997926759645675405191882868447815126687947933903654252096728200773301695392540477393826986207837616463992201924506815053083866371782480936195872044083460907816815507881567483932971070719641988970190521370323662366739682661472694863690428022231824787116242053012575912866957306200960777866278002091787956911263240140866174021237659791622471778083017259785749510100417430834522578825764478427614564377507309358112331491000488648826022330934128845528787001781169788497274239276978097746445875876416874925720831265451963467624743677976826617342977209899065471595185283723129286260638657196498087424590962320073570929593603857749322252121462165778762036956435755304681496188398289336612069749397650196854241089194967493572630866725981043573331883207593971049193929708447077008721924621694854433683052336050264437325291649725205911012347457610898033396359975734635319830875591350311340256193652692237505002111544841528206465590720437948242310743953684832003368074951638055765302872499930616551249525723303190761856032128325303970986742017693307199844436508542177477577599097509402438498807641890268203121905665759199922472849835400809269944568772242866332551896638798699169527377973095815448751995319080521481965184886841960845869165496178251134263688929217270872794066293246231991652190638998983834692860011643687736275588722771284930029054344656651558207698355797795183584921732585677336097871225367476973639262734404377204250513985732749142285446203528768388360318602603270668117846350231923794381980741394922664117387866022632392783564187115307216232315139042437027458663868673570554305502311225917705701038545530602396160230730112520563662535726573870797663673547891103462549204497072272231647491784409468409626353284032747633336005702083564269783212703715011294496548143961173223785715502870278737603791076485228014479042947616605778625022085074740057602594846862448673702849142718957954341755281415501038099397862431571922022186980453505492871222153031667727133464467225656032837039662112400964020613655528575149639663590769199841329993627742060272361624683900058918388275001214428655161917086311419298038940190652132035608563904560422457933530833558570024639499689314893825119698514637559066458680073647254343326377158835148248793514580746360111055600354006417056819430375033595365813291092894990491832910458881845797271812017549436111029678409277027932040921743741167013871683708796035476005886330389617323853828263864867613146388189403591969738839779631143723528536143227502361182407883817141807464742223966438641403484934874628877116192944285579535803240555391838120320637490709379673573316407733995700607403825395961807528460329144876837284575781893715244599745628222945507053352750862717415508204148668733444238970841533463517674120906550039494062076807960522990994466932861101489724363078280028348364875223697076724967908561660654176241067660272707295352685947105184044963017425879694619484214878375154567974528174579830363099577862228013672761962535230513856912300299991921208153323461973642315662125295563810569125872002481701543553849109048374487644575168462851599787250995640439829631532511370837429697046982801095409064551078280190312833067375722446658080202768906638025611818377340373816988198428277079839842181292770346801803694768044550732810385440284889367187132180664700885745215820562479313532934154292173349875400032684849539791566455969677399824724304532857757170883136745947628537095966086474733631446498715404921516459708571464783829204372223357348142006611412618356032820597405076368179552805506850330617612596068736431783119014042872474712228257024017699440755541578135559956557578392750162493639280887152788074945242900011957455040332494552720601274067892370051550532541492272534287724333245602065673050352636906715024067447331234964187001989429542460532898622646739669976507919085358502290852302670360721909125555447021155730195758461472162606896813591096273658048856290427657590595692251763235227816712085687378267325688491571941456734776593823781443623620676733363864250426656817117373212648302208346620793306319791192972903533996771829296152923542981016075776830784747839264621061736147438391847422757319101705654325348611689329429568665298564208466939028773065253274666920418908365649094775494450088758600541948312429569859851891113473692097962781197161131040722534440978294424266232096569433052508187356841968366756849946230731280114342846027391579875768721301479674413487820414396110664439015838507595431291182172972882469589652802998800353403767720287312990881990218226309582463004404568951729732732844719175997291830439021508501814007793389983868565634459446350829404471076274055032602494835665772322294538674736796648857294809964993351151422088307341013529788547135865735098735166563323550413692275993475141222381736543312870562377993543714456066747203401820892674969895243612626535985842438444591080663313477760458782146133956520520507733207211548840101587461461453001945027433663616183852066292127749725482666346489775829748981170714342751967616631365382145134797787147281871085547056567595482047450911187448885027611934673479573174297108474758857310107526329545899829203513577959328862614148820133041663289296381713030860924202270263599885665002806532702332049009647339859383733196536457904793766516455278097787920341212795606332657037123870912986971880853690825256255776046054193042036533313879333211016783839418618332607131655579835951564913647155468571871261974520377818996826937908134036728264873737765546160469610606972789601387397798854721002148901912317163808829696333805855121581439730225659214583340194776773355506908743550057105985814822426623048778202723155330067700541898107747421682820853632227741043886365348359298565940879411247042882490224305522526930926435668535464389661053540117377242406224731018108572203915552945669538571138377942969771673098845618117231702844986685891390685457160932299140806620009158416466442208717292051430215883063038096589833957794026547390200810274170648168694598639972342280424667959096297015669804883023548758982678543678402616485343016644999435110863044103971962120796366874141477755586617066776561056906454240817638771776108250181616061959499787335761154550054944023081494903770514707437956535178459518500530471841943222604454766548852381076458786880450747156595573643877119017876341108175350930403003203289074468110355243998594887325657835614334752338254363703335491190027558579485668952160429920619387797785073184433927911267177213317214187679775731047308429123364695745346515288959565226545359476026183571306485537785091334727341307827767219539748466406106935009592668216304358145077916004466951642234765396733036532051419714765283769325008937894254092976561819100644912973324752287595934852362299237029325716639188224667537132594179201401595470133034446148455169691795893837577367719591515373291526557221852236909914688824766003252510269020972873309242226959402531845912755501203562402385740138609419945644659867495125764111584703308854598207668742832412596804201909948064122447778988943817453347725598710759004298214138506826786945085006689761172363008982210781275728520616143257448048221635143848356673430803558527479416715897523897652459778471748404518383026160271430190054949379660682331353951055562984150429050070306005291746444503335950641666670533905708905799395969838625076353781163023150845516641941295591422743340876628218284266699024866075453848398821828941285870499560710285773381956226895815400229267051369756949302740353340187433773471892885091951232514718338515099601412186588683495317174861147526588984068265797973331348503595610890893910185047341004685652150387908073032843138246687925760417801897049024857162166149630838898357859717701974064339872739349117160182447098289895520598529763798718530799471362246316326171520816096224684814876359953956099540254348754423650516396417957604813217761205482469218921592522899735761807725781455506202291341785461135116670413019692232870013422467116184062478657350058162358664152026644914064022298311468043088297095090236691885328070506145262924077415446325392883763955254998864091726103643899004444741243337812132769570185096736823787161527129343997779512739712294098749133113777615970897486387649764324890372937145177872117929445050237985536097721778225809962634684151135326385466977764863936149661551373384052783271400342537614230421697062138063917757261393600114203544439742381963978704073114095778887001685043886000103005541880269386115840227465123565583944753229958778174236080410873535852113756974955736968613236193729917781629428870506764367792496810285295086255825629235102074680658664870960244482913012653616725862359189805927068062866246992887703638393738136428321372782391992690662234190361300195167557000292376639842420614918357171109296722095254228023112057925228371432998828620670610489299772310502354400115935630717153859001792850625627047892877327429790744362754188750720499890063310990415886401168311259832545354899986194122618040145307661813461466935466544663733103710461991009072377072657404584375428233902221508604122218242570625880956053750315894482386478051045968377290479619868809223706916818823649204512752619241677059871277094686302493447145746896677734016436854576555372140342256988714810501004418637020572851754010451231008732979818874698320948118199720516648349173725993763044074785133561120209754530305436650006451044552193502906110389642852207012182075536860645228725693189364909767396885868725281033486005815144517459444592377118862765715731929886343865633346646630985549457053660869461555935490427817781562748203956708106714645782517364680803177191685267829070165637201617975294756397796127010351081059702326398683899096207143470962138175169194704078492233758629962079397751164514781751289764017519392651178508971662487900600278403430069208167654421332392330274973742799681013524025568694142003243650217386574752277816233839805084098935169816385664497606247821081702108241616246713774822344870923607858314857195943279068333589468765308753319879469787685812992470839549150506834099878435749345436931457967845319423920430323628152555374502689866317469943832436103963547804468592716242325616174094037163834707401181443094796443993071602517413619713383060165669529527095686435847076438577148556413615162813113717505026812883201786750747627225734288476443759068496048996959658086598769011026861618102057201585880873203798117288243987590586216826474141156021103066943404864239217939638654905559822325217478096448130816750052756110689599089773163600442657615732596786921231550553251812041792883577473000211348277673785723740325886839653846145216118205994057089434685985150927939867056695186748860825357302758734441642520497138587510119907238914754804044864555333484790427761962762356856158329918804892626363107687776475032090457834030709630816357479616358982741315594917197706237558484708360518938049122683216661070419689255041221800928493519023812335751051358123468699890267568949694869992565368623635166941281466011392989357434516334473555387379247478396937948702502457096443368023509099728536689595488546776042801358989059349947436761959966478783541431463323263953839890434964090632815072899492351356473011212050912521493093917477358037296667372241796022229921653270344443625497333264199078841184488403884464185577396985004027792907404965152019562232598615077562593178836593221131171564136255455425710259424117115552648038507697341289091091277228643660976794593201372442771369983007172450076277108116224534727899891075118862206830178420848364612063554291992853127670821702662765330530309336951700257491843121773775821224020159463109761547952848908847102249957359633353687609614889363910652036956498923558724561919451099004980297755294612013662309776551673446945822039017842222978755389689794218988458798369232721337603346038685291146975146812307950056317336538151284587710835506035303068734183126467477832164178295951451220115904630063684381662732596387607985479364505533061907576699001324892429162080400192514775837332957847071535134586605128965602031650901062597268498452241837039748828596615437811748751294632578860436959745633257764773049498644662376113911523465226965795733297793509060594743782098784168716840250538941982274133301724547404029136340353473796072450912086442399973160318002282892324191329668039383640781229218317483977815311625457564459602703575198326801789952446082298671787808334212823131407994039905605499698699876722651645446602121909677803651098402505565728613806381691249994770449513450384967276078651131487010829714628988729866230519183097789032850655940443790536791685217358805254025327734814731964329265312970344844420480077641099452320842345316012894281876565018992211068720441865370569023807161814837253341275625870383163084546917599085466667327424509520523885998891507195231249480198462820065254810398554703707576848458738878634139497408252433943571540133021409256819915432552001825880474842114759402291251908239223978427725030741390479256414616867638100801354401367685174198144674734456209126100105914641918081607881362497778060360510162828137365284856748079660186249845624474513018502462341148974616504867387995762234845307297440133746248915488853031533263861268867608282069730710948661759506741191571469067629004979559309172786125757545474983098659203331716453838032109019113065415525631529875335485657435334059104442930048756499232902639551663669163564349185668601404782761221013603079489232443524808617711960514319880814117607312032736615659818696584295689706343016685538169495743611054013046413432859733750714222633970937080019114744963853708361738094914932609502074094125897594208676403228025731072459874419883251717795071112093317007244438059564021340559322938038099164749461571950405534697569871030555183461247979054853027534348239146551963033998931198784759166532687207434833640849000052465521974693020875554399822332367936777652068411207327747334656749044112225613911885713697812809859154898767960123677756256002546799573645245036275058186848807155714097996274750797651491433754492841048831683472320208652811129869391843768192969643687474485656331295556846194331884634628023228608949724901306688412279967017218885619712160840284153415739478831634993627447347324790591451730059737584890947839666878196564807807728846600275437110274875136384290589931722276226310324294521982518425521594144054174276469881011206187570055183516059392945155254737290035696791373980420908527846338516586930389218536709850927961630423385222909907104273218684479394705869528965221560231097077763551690762585476662585755802327645861079017003870426017985311804532668985573206794011596176207873662378493318489824096237347644311192917230222681980901620613829355727914329908567851054584256846875970868999115244932261907170892351864463073180870601121014076926914058361315533648779355789780280432155072036600737898119977323180267747062368109039887819910110702155258721975998811768992876614306150602191002348269160349582246836399199155663908602110374904305251836946863450745312997192921387224515047311892577111157692043070775107079055996518014340016220962321740968386973327904169708158708223550511439039482329025383256161568608474052793568300177496574802375202895134549354398582080159129912571344538772110969673829198283384686249479043771544070695026044632916277769981162615248232882588895184571860115714156103387642085432387329976587414557448846169095196727567037413913685238288998745681141681072821754133038592702706013217592550971778311826577960371469307202819444954097266217904275867259667069440711671253328246402982393432692303963189758722930895459092903694136094813111674534419341540259443982744112532642534377590115067275747580849129415425788197408728680863042518147592707884740952440471741754029171033526818056589442841733736466369647082077192922133594576977720183766966348154837572947276921542691333331027507032007585293362436504590523322776737092392465853890779274312462403469580200798169479706584932883941064414758533371523765297232133255713231393423552670732960735104528334309959112690710319040286504175961337550840782449540198264095849395527145747472412952014504619863596307669614796848974043646986510795964861210416440538273400242646855904565098366707258899914948423427012727860233057932731916042060492610395056328699466273758176104889167155945984433070494793516487498699208878745538878226755777325162593299318309470710416290177792181117287182928611831974739595064961934859484314416711783682235710200124256742342046323968844283934750403596595351746750132461642195376336206826585147767998937999866790628705670870836131070963953333923515817373726844774316241713583418900216573108338759743178138729893828162120296040689055834468326165863120197529185919826133203588596864171109890487093390211353738535672353459560383767134301295216470036197544678492126112549769752248155656974833958941109760135444201754470779432995162888791345971789593534315603495457019526573041478335923950031352584866932660326434636762034325935877056097062647943032831408574339190776091508652422449524614081229445922914085998108699114746905230611232280595052939367344422721929396586725933916620419579668223141798063581625320369724306598050972147479999459976215656075606292340604464023391703362264455665076258041055459629908853431952344482731681973772924776123547920226582613402502753451076106756887143426065778735516139763914959002048040230388065397094351590072859100963643305173869623827687466113923339660152304964554374035079342128256167617562237969023883886773898867231852360628878057018783961433619971592616876478099722432513475806950175184593426642410579600190977501059120598350314694087652849280275216239479914818674290811727297680286350505256885634295487682839987895844160232045342577981306978206307843902491770173182649411826840748282216275153328287989211089919766952815107419923825657396397519953556240593612342410534782483628882848728874573865075908233694310037992993354376749188589983048536151686747898421746241465552868278424061262648077492346443476379130380259154856242605338400792993342458485653999955132068899889227479402582127619359471237681590200764055481906866298721612487230694273211382284320819158896896709631453993886812164231555767788951692034902207984835893470544933639187193367241041348906028272208085691603915176680023352870238264384257702443118251546597716509481288834904889506016127142481204721302847736245450393068933768256397953354341895007222590931151683382549044008119504169592236265191300435131947507088016225023718178967893799209503364016047907980775495651418651465829168253958045664319303768449053323322339896194194250137268565677103121822693478599180502563530073799708507558950495131982354475704791408880383283678864968466890704106649770854521161826810273971738411546337784273504220849090134686240585552244863612787768861412792124557943271157774869434793624737046325802005346874376074118063493698772722480276894238983906595474147668550327704717920194942564155808600916166704013291315464017001683024309118876647039923386718092838061456162747644524801627278271872669905843692902577134757837707059678787776096854739147178204725467680135808168127037998309020692197333278559522910581241901063255559142828325744907031370067966313492061948714817828097555872968869294188390260743666087271874922410691656044437774878489902592451460781153971649737106510717440330870625240865837040268514073806062072062243934485322776914068180012000143539824176820801716440567426787832456023775707432312592814031381291620577262974429335135763913635934878710500528103648553270734140803731677020101994967100438621038222737239961476888893977259826091273360038063932999426426147429592890222249161285420711665730898711116126966629295385298270669496673582240047944502041795588680302577890913847065532109970148000154866124518307740248439852172418216389997091001815711007752640274452654944385648006972608886146942800739613503727872096469016724077352708042678046454101183274745184872588437261413134979637106211182544414176492631697725191758962026723969429171168820021076817386932059503018269744059658839227995499196214947026549623771396952358484772116502330820145162928693419436766885421999558474141164192896077895496642453486168796182346216703676198087534759671801233979081865713021367304864066775902898383599022020554896030089026285325316028744879227465890995498843444031848463622715401653434499553837976483929497055182698252950860956137674231026218860837070713835804530318640643240624931564637468167388122498444478691728224707515041867847149273926394590879217458981542902303357622711622608947716637055695253250868448640738699055806398275525709301697525529381048476207118346776312891922468324118879169491776674733746615758364990663076845138836950949950048935166445244317943343202015828677200174766887448873431912829805115027685150486835429050236427859711015769361075269828964781951414370931669909070448028049626140211406307567858166813149602692745519357829895325389182350869796503769884344964792509337009581933873010450446882760717127440945812617814987495116374182897840904722412607739458231946419429457809768008897355262018969182516793862551073391121126192289862312899207988715855252541947703781551215613118416177700180050397077600426666211239317285613752572596232724282639948159084552851482326541301624405215461326671309715169758445621537376731009713132602536940806950930843330639633777638969160986953142533912959565118929927871253014489946507904936232439693041021354433017211125379648403993540224401863386419182153335523137082556058243254946247803535231075839714162386917321663706671608787177720732913501093040319199184398325127561647281916961723277193540655378241504380653308539113120353761144993909664588243550825712221207665617559997668765967596422944371054023684156475873588064177358932003835013772018608801500315432407361559852858907828670855512903339141758746380183531746869130686183160034541027355523372486090276672367929423570261040678960467092822394429439771936676170879929980622809412217497496956130944606930543822187797113384754972245496350160326982597702446236648920626438251244909117799810136280959772718533140609018489839765459349702032678244395515668703373750344196482351238634068747931145112330150090529433666308023485471496181161909884261101988255360446473834694803547707186648678841085427931000202355730141658417495878033741721504368000921749910548143834278557266206025328486778153707115102804454107629547710492574901920746661264161398787510591998706105001524780162734957991117602137300244237616881229859766009354659547131331304231823592326130053004349498289395336476960923223259432426120810996346023146767537769220950312278938048314099973543431278469044543160270127800307231686958270895995266075553741706041809954357305732412674141421037679670455016124416650521628067769437352943029582243585775125567122288517497845862895962511502060311585153544589523902314297725106765766933598494791498401665940400049237417238654558709133985030759139870969106723715771324999017138192586424995745857764374534476958175133319872666392921587918669759490487540220319523252185584330409388961558490832790884059319361841097722461417105195970398386984808423638297641885542895594996102292565127033575053956091546755575873557967450666169570917771240876478806506765281498825783297421314268328870224976991422435538050601880742536799283085590752386439820034621941071972227338634940855329501550693476696925892248991030656959798265502945111988849615621365721678460465601993976258026430971489713048342780925934464279062995603924767489686662636489562696731033288290075580708680379359225196283284442581492290624687989054608301907163960682049671584624011165049497567687701251117187720089449545964921204236141033309977541504620249417663640796441635338852961600644372065433339419994899143923083281915983532637820543410178791537048572882303556192721350600277258974814631199385190238208091546250038284614705268612941674974502480529289163680098081579167897114914636810707043392692648731417867560626774713013054616336286285758928821565295727601206179000715855752020031738857730866095588468453741045655583504160202982150699882198373873589178106581100603752331272327357625568760664179279962267936583654710967727341670668988434937846860830091927640944664633102820018863990270925272746661732056837571159340520452271345876709430893874512979713722089723628150365541698096941062791164561722421158046362533243680312353129939503772174149609305976756741212095287917527852328813124306739954073290353367650287629760512243232582368727877441245043688124854969282537555142798526720658129773014335390210738163377155805039340044449121969158253970843839488887597223166470403386123516731771674756179859120039195383844481193971129093586803880695743497281088927031528412719138743764463702176223628529969851563444791403205121745149829865533627858201745168405565818428733659991036237752756905112679447581671444124163347025504710724722502185522012757032287820306607246404420326185894707026598234947268476179860029832320575973242121385376239071198880382556908586046251828890671147247963571665919928676844410019016142722513107323224673547178138770604319787654833046455268602104626060592681306246376769060860349234542422832950102605747912043554567431542704270561725576542091919767919979285339684295608890293459100530869606377463955250880881282750229583207840619438836322590183701030585706056123881989894495654765456230775364532364935298625934979289252691801210613176050318738402304777575037382166983986017761384168056773928782451573136846531889815699046618250598246126263262633392908346105267054029628308920302851429588075092673122065305447487116956316436047178454359710510106766688896330081872771071362599857101485072364338340096484225280826620589086436419018729456979837923498234635612481795108886087981155460595295991357514159885226964427597104849321225628198032752358908060657556457436098922596796225849865098074777504659600902912030073094207511599076369984321463520461483283691358811369888895394037419731649905414951446661985474099234111121923116007369879302504416809500884578419961819375063917511088613281732685977785302995229426786003080758484186880529562772320495358247198943144406192521849148497653993723057642376493939631854338920158031513022736066703484784896697987714403852664457154917972277623846760358205278644853991560975006320941626548063263777679036135800285979014292189625138003991056677125497057872938365818178941261068354297112797410335163258997071180958460849139428419858004438128382589432904612986358740470664845425062251972253345162688338803138466195253004490106508510342506001391383360792859496263963897944988686115079244313359423627352008375960473519877963465313911382526510851491826908770144084102948927680481542525128010908070020566595570155681826430051132316945659529191487779988936188573178652538400243873366678157911444435277298511390252448647129224513216625969952245804159373131934018841931834546263343457270051803651751676684343422846845757338308780623610156068984206367992963383941865447734054280474304471254655690457439174920386250958652594427305369415669570829032102726253321430559137127861948493394163814620235213296576398416585744446650939057312787089688616565258742790957117205020410807517970099005574096654823467610143962774808074651430594886634700230966402668029659754218492815105219271062582760458964858545539140527846292776826410186415686117921231136443241239914698267631660317974808175284229540635706686082880211539580854707982437733963993219823052565556131020184824018967799139004634762719486967049065187913025207101724326962053664630393252369982376503324866831541164294995800708015064661555245295406087662645654845832907985248065846585828980715083408153845417700707253384823112422410729337913487494220205083426171183014780152125073081743336065506867667447561679949773237031604702152674272496473038236116978351494352708171191117015541172582656954522360093418449596775664891710836974862522192286864189749461313293337719086903679713862223004166101704122490425598907569181328994736598677417974554503559183589136617556666733003454350896015368880260847096658967234199167080609213598628935479250621508242153671265936982928696490465525586989387587607193027001935621378758048686243377690401125250784592639384244301748930615578664971848324185322368066186214957385426141478003735817859522052982546894600203406329781737387085431493517224811181984888831700560984226603482346299910054588697384442307121984425419495141814528391646618580800764222856093209038861877314631080754754093378812743957227785577973415751169123872699522948468507200321336597808715361739782752996912634433133553574146802643370697018393710794583284246185845369691347019007108703665357024571132826501729554736164643951098989033427391746010747728250984443978105790400717278715653403462517648857663344563757637552777117557112291880962800861892767311028043249805697841662760891449646826181517531130054452921889990802636044212580782900668901774058426046963984032250630559877710739433917020762906900628769794106280980381793695958450893045669891837776410635412954174771121766978148079754769570431215550720556219717410189292597927039992853467705982744771969723551598829535824607998518619208266352400705672048579495196965501361378558673150353239393425381288735818538191158399497759590772792975931935745350051432724471569147547599784055311475552447087330777065599431123286315353416300477111942127550336852785504612692920978259226384757299298580801178592258443577462833674925714804384578003468884496704971027272425371196558165884867283128872076217072613692262390955595144265347570033315120258282737642220330218291542912770223680284314961095940953974095559472277325409184710167059746794833651812912052395682396805467368884380362522589807854544789423255203200210411069190229096345472957080220810185462440638772709221111566359366399266688179183208830005183445149459849086409324121390194629854016377670503500953940487392949087758720583846218137792249169974434018993607480644273927905938627092199658377093195658424243058993262355825281446240753112233955242974267984134361532331048783337904215766687112650513266722836100033530281780824086763871862486555395457659976314499124008493271348367141962329495852375611317352142024099541194516430080589884819806356059639728010291128856428539504019619899055030328894404056277904914052803235330437659496429367364943459946905071816012629190018471327709803538880257305539847172792792026671887568423446083788833420981270239721785654174785627026073133413184527329897786495914335366193497617801229092482103137121577768436646285853741397837265014018167710299785946446911211215815117556324920901522346627237596428961506281187471489688846393643034943765465129011458683314712278041800403532356883358174546597206287042494180166033205430532046304569549177868140543303802898622997736049958257334921909056044510412393388568496476187798841564006113766274011897757136863818221524784424409691219790039902576394971833187844026952751839906378400328959877082940393983469353593674985050297475690278420176894757732070544333786877004990960947085614291752381050307148328821403041033607968369070090024747231704953765716957635738375323907922793844138405958617346173857794701832648441218940961050390764333356174700074528046304239757482151732506009309935081377333510830790717336888557343648487135522014494348040051825862185547072955546997248948669502613279290030433849582448451913935083853577182562406543837692593786818979500468220749040985019049049542726717177125545473642451852059301430432432125842044826760409444542225754918495788091206405789246976046277942726548517334642920846074214279089139366154442159327467872010279477877477825337009646671113949058839976364902105055392389023767389870482911042250639472127460137158900966558733502176091209367254867165168891937485195384176774194033796087095516553247650628294063350642826793193433951380329236638767690112969452975280649718737188561228313485625254621211943232855587305809688631692436495094237051497383287086940379474166434497357903397442760985805095513304572304595904839993823882704180742195950133664212664443228566447592858352539823391370906141852051711695668359438066609896767832326204721025184827932259954177310218723770573654389149608488911576973580133912217501490643979134966216334881425548355095626900566647987267118195761154669124981282688110686146467367441426056185956295567435862238467378377019459432382270857477820891480548988117325590090858530738844890185252725550973863299494575470738485493729264413551708126040518259006867154370330365994145228103263778453941386874139696409637364536677587341380472322008362512895238278108551455116063807131829063885694037422085882219278757880176340041481117663553967612851003138066729221923827622007826355099503289916054331814291549047630714381043598121523866139694133302674865874749718755715156172978436521573046300388653041869666663325896365714579532321345405973589430172140200305427521555913945975919920991665129517532178616616175368030066580619049669859496426555391540441304247340451544588722932653924207479652829446293728181913356327377981841449268569146159574573939411440036312899144310598767363133026456658887349282666541874161011682123262983952287076389465126268386757153920674538050004639566468705247773536129722501605377773889916571776002895789444328237581864067776506629501329511869975615829096862488570230002185147227049162493045707368952930473113286841375041263940333988980019542853257641117863644836682813609806861550998531078416830153049958926830813261047798486248030129648102317796581259993443596903139360211090014858713833909558880508646668872698489628139738793810508629482574145317925682681353509028869778993606365931117898697267714178524699789981016982848515605851217718056362311714707804572885068239775335041366289204589965682611050089612585995270890012324018796861799812268885594113309381263631395094837197569732850476928281992269907240429425571136951557208028932799100699048401336272203981361242360136888937057984660885253657319416546313187132885420293055826990990312718690832396051338371980563818335794280667882996511647731676793468874134895373681995833903773066472372442212372322248874982085116547989353281049621411567268951483528982805016331488740739190698929421665762916689358913019688294585562378059398208414842586439443725298864247858958193848055012254616729542544783480625770067440774751777269100849431743190337445171782374663823598267528636773105769583529937126409104728058203753501915970885393036853354466134958477184516012492112281396252303293134069117870658430073687246884378260609821527230216692774971025631479154044522340489351204523414288735659210765380641089545027804092779745697362966596020649033484228006760236331122290523335180745767831860549052421687879480156526579113062292197815475782188613200751842897695839945302658342825229127042112198872084020852226953986785214066574419703945822943638019570232277483640238336151776460657671340340867884681048810561630675976652036218214773777867490408565900219621259978615602940733885606697542453259062474076015106832252506228745245161495049519420093130202894415742831864786513203347096782355243066032073968947563394828174031705149117306267231172118259110747127058215018243480433783100628122569716539626584775002305024951462131945758133461364648294479125785614053020551712293947806021105846988102342876238770203907650907869684672426757301291436347063681884528663455389876118003397115274411424176571489105754879850706681460776823325699658167644455697298275720363191564733409253896088225880218635396795351844365816365494477804404434316375708157882663380095824177832783368132191124565480576735613183895322751276654658675466183521090829730404766774654470461579826723607416051362462444751731264113544430397132795218187886857695240964031663888411111162108036626409085175476417701472336609467279320419642364531447165135993268211315484352672439384500618195159607532819045031167334685008244355900869304788864119633709361533464001302264407125972761622080821580773112466088654416025616253141413352693401760145884760813843097596629562355078525548017777124490996214262892114499084466152523153377571874948012512216260349633395499400153026308463206948231300790662026676119381689800643675607219237065637121204809331147788809298932544451448888804721322399057245497299983186841009815833617008763756664748353072799914333774152926644690136451518252989241663536188401341726869140905682878441166837538806467062062480425826899058680872001107596855221111835168183538106966379227136177229871411866389321196226673164665224906936455136736840245951354829417107738047768653262924821390301330023492091112032157038304286897418852314519196837055158384571097067681390759653322250064952485160994318691643592471732033627108866237778985829114555905214430114838905831673493771019798038504774255539578928307447618915723750039265362535605607876219907113970976268146913860922399612304436056052618224321677255561193810927169670223460255795988418596777139944576683174281751692781207899984938811166849974080685287978466053710618519869204974442081370261713945426620640155140919273093016182006366576151483027400055629699103248320130775365151015806578324570331731785650991672056586761616164441071237039613452426108477203885960801092381916507133715768322407624948566623339074351521298725556285578337341082953979847891917628642900745553670983878299324437266811884687961432058322379383874365539974163588504597708978563855022686323469977619115849885919370199530009669520952653246304203415601435448417255358588862073522831171311110258034949795975014156565527620521298912376250840027620070288610075110122765753323486759403806558929754963958119607718782546771985927338413874343723139979307924367867263604175337410287112483160365316175843341559876768758095689402963439967721509920081084296082835437833001843737213102566993154775195096278241164806262673401734428120740958145926902693584906590211079076468294685875626406127832498483263649849151227917342950649547915408562466557102202309983551863217015244757586900409105611505925878037953399962420221738746465109750562915593231760706961050797424735416891351806034809719423092802944639725443485297998353009784178943958385876917830133723299788120966898607436516705180412207398951838790989157858450800466662045840937588664084783415693002786313143986993417982025862160547066878889981062920754050860860190808987353551282026032908152929867555688202695347567232209889291111932802470966070678027461480662733431341034062590601443142166119398061914693291152425355555604076523416873235135567184837022468757529488876660172607670026958088137144239660526932842477303598944213404117937769113815249326351728851953041143163213922541413377609002077265762566489801369848712009287104822273886533440428509917167876396973764084356110717672261349983321763120736681380209364615840290002485224034902038778325301006183579261657790590827678068144453995683750748082158020928555656986759213225974304505183056863785576776555469378486799207278204447702573409182573964095193266911070235221640486579640814318967124968731194434905898831956749936124179287944841455923351531966814205235121959009904305744736747154795578052295256571692244451571400408471922265485350967524836201594196543128532153715688348900628573561920686321702605689203159556991219138069218685488239897511842873872407383050763213789320823362685311422847446149033649730606408747483661480232587623699704330401230954359804940945551675625072716338707064412322272682484792032448212983326403773068520991236583271204066068207879572541117099265856998323911141450695567195136536354535861540523515210760941643490107573599853989611878985308870095569213700615068347728777682175311339284014224690583304209667720340631656938944477765218971919242335770166251631152277982544939918652634386274295508839194359384317666330722450593196867239921051675921387321015428400165096923832255097098043125199287047416700622706347208752629844701227191026457503422951872966233675180228952137171745999641168790364329388480786008576040169011966179157091710730417352654218417103575361858103262720099838242951127445842136155913525389791697050078517034650872928894127354477935019675273086422553572724860452371660083111168814682907847506511716907733949263352201486153828698326534576207819832716473545400597713092241765494454455521393004703502663098359049547801453824871828378757908188057405944911159239720769307900592409631145249222236637933417049764109823486678795060635484867743186667903290939544989879121143701323305575458576774319722266065376560979997151585671169168116410500800040096728741844221112557025854316078942727046555102804696351730026625027770502589615720349558446888791744513701415431727357075271026255415187399847884576120399806756373597748328230387190891646805262918326245918941878582685895280165757121676604874581636071080317373407769380078221100432744931395984803306404967583471290160755038437937379560299611444943591999440035137075054945906571811714154395803591583046350512121076563633975085483210791275207444536735837061177141502157624567029631324282259564819379378744199423932450485445106303588534621180832306829150599678922605204157240516386829973523945292446024904015177235517792802089662256947471777934186062712810611711225742626440605547920150784549580244855527393408853886258196772398455185125455045895448809956646614335872379969740574985698423369529184486721166695571003883325035418978293102629171012327819538361662796985079849258856526181630869372167107561380083902159635066723229352039685371568834225314435322500543864688280296758460260892691262862232933631610255121196306903694342336541820938779525844528213644179748874735802185766859609581710922957267443352382216158090672642027243752566606906934662617814264277026524701959282713706175415819577739403013648312060266157158881680491609054616798997152527000259880819819018631233944610481999855147446468809847406511063904315780407087813364086064901104925934332370480379609891389137433413606662087214261103073111743849823876892674073239946844035959206778042445128961418020845666971366740640900970650429807589565768352258830430073854570122819228056539979478216171252663715455115461081890805995498291319987555879331331098308997131126803648952612022455123464849822638241555345457747176704488940324745255802398009066838346660003199576232756730537683261018218140869183130613564966720070764943448361473663407247314644834383911727833087434805464343502866170689062351483816204923978340269436872691620658207434650488710759798385667665954625114564438459126413673192401088972078363148662871202573862430383144717628611681773646374329148345032102096208062383522587470409791913902459467726357987316873522382612272177629722437451626990240112746614260018966248214076800441425194761629266200120623542493559050404983572066297046762629312416575718441192629677583416920471048146480706287241434058497339315604597456957673309802745605842880771946373025154393659344070753661137335180225116969685354402067476317363905874158687508057239005358222555280788969686933602709741543137634528558974696035764144490705911564635747098839913197936911026489836511054416814000525084241673166631208297626927612742508360086181123372155962104540085405413266389153393216325546080328919274146492955554688721787932183348020547204092785244341854267550304421485904089816513599255308618663951249561223509784808809894665912193045088418653094991182826770413095918848762558163655901902540315769960656235523031900851770088487666947444153657065552253629505910898500338141861139461495601833125285279085158639690096878102595058414694108199559793828052071221077842372475364004480483624653851124056177786743755151239925886921770015919713380131646780288746295453674782352750283001649492258868652584840995587543792320037488800993495566577970706766376275181195481774388609375035083793486960733130255111943876795469871616778706708116340860983359193382115661065240190622946593135273837564732619105421082509984539706804948209648588576795321695923900434692764697704933034016363334674893664810878300775702981323323246707578725416721918122337948591372707306379748756835498090481952097515573969307776457576577918168297039035707778261971960425976069072446639508573007574325825009638455064657120389602208158189218389916042145770274958200318603309711033835180809885402398736303915521160460949935381369480146212496567768969391745363262185689258116299913094904828921427574704078058166455497834217713069785552550429457365720519013840201706890484533797153033931270931450803310577649495257702202642134860406115971716064724723910221978541777297534008123431928359306616203321053834496907918462881737258045623415101322808821828562601345547716581624236998811299498958583376477024169340367903179291892677990381223454153695522527263352403308187528926877458736428912784671734136617597471214076217701494559832763007111335915082855008960146434517283287938647454521220660074296520829156178040072719921066262225131759167455043686646314991501777704264907226391314771505615453666576279282174788317553258598282286370813800635113060836122082424431432513832373270729786438917098585448416664508431368581471392520488023526950447424060085769841268829016791650380905468195556557830212433122597601796891542937837095436861518107198235071340948261998430601118544176196253927979798807395980723261477253447747296478044553338257518291896980618470891688656853440188574197564279799939281915871794645600857344381544844745176781541088182153818122903370693987784095352777216751488948966192625209970907155783631264235854295437549456058704745426190967394066005448144825024364372890633940653535570120518744270140517249377656702915540675407283139756623952698375777357302472032835640586482129219845236434482361277614695713739288107031930714623051662128604605621741451655848890680798281888232259039780711701781399917818827492624463593725270872084460316559961638192537953333303204325468559047513703113901232955257316074829261380218475205585522838936502841839449338347967080032064837461675523976727700552236470462667214872842912859052016283194477258421059009957809034293801750234127617890606194909503156177653541756055670498339049995123712184217794065366892116716621460275799556174205557954471038479992181204678031721136216513104174535965410069748343738987982988390688617027464654881859734993571377615006500039847644595441417275700473999096395734009596020886570978836637765239183453380966860355307202081964189335207633586295383461355689271349153938948688449898948958783608025496891935479042334915533149329854655942120163542303708038987930642141434334321150894852047849137862520690539835574179813721400262578128139676722774137828454015781688302830230233772766896738370619666194522679144077122135289942074470477446400177137563896768934508382239481325772654527484161202290740505773724175786470650793766069100979447622718415860500970657353208165914500208941500255509401018570967333217335238436613210717990647278332901424807985501867396707524081760816780278634251943715837740820402481865823618035937981714109716503048723821190123020636156544552634115256176226177802455782736430857980003075441950364287590224808539060748439406652993605549617456588938718405802955837335418595250316270008436876185448723279996631463945141735161390044224642890002247186907766079256105017331161241459150981891528278558148302162598419216955897337732772661450262978583238659850598599457225954480457613348428903997366573888963131288559183750761868729314523699720167098548925391809080132514116207273990594120489969794773823541355360549348906557336325956348150120600164330337005794106778813617476262398657008870417389824014672201066478895785691362293055900256716716488560232598816893266010180433041601981677549773086976450162510154206349957032567139322536778775798357766429144751174390307190272763034156493780241205142551427563927055124519028094845695626814361415455094870782950228296036266102815489772399502020945826852285754340144454892709706507176906872149716584738418511557653248065584604793318091311488898286116469276820550807747827245999386347846794041870368645394231031344116609303182712914651060338125972344391228552043547809361862172539629509360716043525455965401115828663300413173744544089637827015013889062484847870477474000830004193852652997022302392559904589234911431443814914179278802318766112400033159627126945941081697899211756635286581340747287819613484852539555047840934550546820007115641682813866624790958722106547073385453060285171552994379374467831998595117496778003923773016156968845916194505557421585760024693150403676383343231103120087617453590710945057806625367662840388338217829193935321678994413798109304065387507672277536564745234646902158871498755262944459401380958881747674557497330448699547971592830188269427963231246371944120561721420623505560381005868702221242189354952723079955028812269947476842062453671770363427975955138429567701538052589292457407651696988902686182121369240920290289877134649568328211837553656244255248044779641236430645610038976694422357716350415933007590263777754360332023259962054706906337607949856571634003824777219794321672209960607919253610194482691749457503406622787214505768756344756248048824659857486796465856989358101453801971892153360223111616328596444874792725811879646298636545796126318428796610241017221804433629883537226244421532298609965110966431155782543641520756749106859146027386081825078291047031114908091257984756119128266512222564195395747892629397322001384293109746926411782575457637487898994464550443925454905136383267439398446411362650604833826622034781359580157137881901758191991550281994947286223165693442462792238306911374760991776463750466269722464254979467766869499212651035316309584875555044482364861330684929596720291795493767245647358018082971644624563196479735354895678728274017899440856964903367674095189413470823646454161638082405401073887340324970546292207216693872453451641283428717165227219400727109530187004117648269652384022275953925451965798769911040718487930191461658880079991718467267725908226845408318835594535807069438032987786771909640997203045236322293691051632272885718442959475832209669722365544326464763494067327704877367718174579126547950542236316880429015288871053038057588717597860841857498107356148934505053415290918183992412145124628806107957848229845938319236867455231146029557504051799942899960702939041272864580748924619657259459453914742124549371415708193081219706890495800000898379323960578945198787010927409854420990308953606239460258038997539544064271029664203154888357739126737939638191279371972761951331848895964289449261780376153447531692767941551536509165454595064192025964289531833535618036308680759385649991743325579236266901540344688236035265726476571305301943707531307880318472600020854708179988891840448398720764936076049977621957250913171330910226276950504030722137225580477171149866626105474046251310056008278775812847482106999716030518563343701146583875667900155907608729824879274208635037977324680190064927340401760720324716610151052621295996375716078136281680470618026760029831245108846997875507959339415673205682175006225446722073702951294978474926868642145888541597584755389552013204015129452010625703143386396310179857675352256456498186640852524752107146249569000167265663367696755920044625826068854071294603248399438589012827271973024021850269541318730624587531201171574583903622645771362477095722546406392710653700903756749661114429322550463685004640320230064041047832376763427160992104429005380770467514055552292698520775793695294746922859943049952830213210250438030994092060724691954286366593779968918335595846303580803622195973734566049931855654667117249559826469211578643231689178143433003263698402563475285523491024866566305866454062572308290163106755690181981612753929623065989691313726987502308440142265863593764044662873426463551151868698989194954130331974499985939885349508792701908068281656541235068938625914560573088922747602069254804480299186001159464953695216261357440240442846447634937712509036959341417421391937257318896253792734587629663325247070028878865599754684058421141717192398378706512224135320451718272002121417091159498441925391155888051804157181132976793718554505072469922164680775219433834785781298050918953943674943665257242062319446074644205505817804856239283987988664243612814027210236919817647154970439382541451134547667916215417570737602884155569044541169829850430115186140986372153031068022306592451858666445045784796871060038770013800722332656012814347205102388859972402995439560618116228861207967698829158742743459998665301938934764253851111688441986170930362630125665707455811914448941612107564791377173048869769116208111552521392350801845562158949440456491785187420507796455031370788177568027677687323076695733515983811816740532782018591899973377602110011567652821014644289815732604090833679896164656797411468176616446340065586800130360536628553874975577278742978170695676581512004230898361218143121524421363980414248248853369168782331447178317076077913315534213444420635418826002204167052993939874445539034996275459659574521004142363011907304994446180282290285290564427733783491018125261405814402570827613907422164071097328755895113870133575369808617645361573628908165409996828895235249978813839101903721142947860800913003170868373720027178269275315847469398972850044958542985581077244686437806926899102605061711255471275898250475232324007243442018646464562741170585940457355616011417965928517826656093694363147890144433582313382136646327014401529635412549990087736091309067244295381099923049921971531145545241406394673486360490526094761120110378119954802362248328463344999846796414926223221461021324841295402914040266872336689188990863052253585142845017497614998834495049510073483052500021912254126960674609539718400505379936561597113062562636288871506995196929780621501584660260939342787647574001655074905192999022280784665219915857418766899740386160445766732528279577526692577969717748269653446209894021304399384785233164985538876108943612200570553457170435365452509007165229370621925042206978506658004480364181485447834476944123362388564888890649620159578217846932403727241482550312809352317674936639778081364743913675993745163540170366556348487428668133369601444297211062878641466916184190949965326710171207514135071448985849466392190302314247284145999238601599532401760520587926639638220795829562327678488081198074510683502077474447656621070663487170052470011556609341004188978076327209953256899677989041129447138902259191558450720879430528158344063244140064011904908528337480099534589115393957058591673903235362613295454878481133111855358237670873989626457722522377685775644240152053311171305689330369556488046316054421660414903498449618902120512661080281161728283423378439937088580792407107737036413914089999007591554071750947350870690970056250890016283979342955968160908171401715645613992424458125815360566535717312036234370056614373365036786414286911593607297201988827463908424950236890308907009380756238583363419293229256505887575113679266600602823134101243709320977639827960062936408206715056632942217704163547342531444144945143778292058373984421947331513186230910927932696361578427117450212060886641875937073162299638686720524798240062924640334671359852998622243757542618582522262855348108172844215384038877755241320238790400432284703261950251177691880404580893180027045874257420070455827068956073987626500807479125828442844881064693018735980491113631020331710912263728563811699263544630306106722783229788723598539458249602445151988494588264156545867744078191828579915239168835644823605382719033710877441792515367105984330631383174708945176006854428835949276581127659189947263687754422855720914519456659876942211867679278097198525962252977770162401274881694653902942702196594704911227851503952325946093713686883348059570141195907755903613145653886951037585870801949081908058088967948928605000932202187989780566001937399572000395075379255755761338721666063492641780547171922595765599508457968021203655649919612191875528526806270305961696286703762289116442477471541892587130940134843658939741322330212476804393933975159245571605930486593008178388010530012213462121730372252948192428499510714629212710812005646783586482065647385225085518673930409343859057691365038323667907837895124078920017989046503934782077911030983973318584488188277419889269861433777653794730849490365772110358723821150423863441095542271627857820520281459242174102072183750347769409974670606673245578695598076216560791735472217399371855578358342307736074133414327290208434568053250783217147520636338741873794835419693697627184264926095267394854050535992099210071281551674782101760080651306384071040437015261798336495730602344822430779941698863154702019431381847636868797498383658298204934117612939667834735646242071565891756569381122475557295051246790397134226803707903184198379867150358303236032047561402757482454678467994138572170961498222226078469984490329521727867547071401213518364990510436854966244008098496267338175799600429223796851184937529064048075163468202863494996004613205706693956112838035782517981822033544149492720851180761460196464835391461347070513334760160615348642745102824779228800762593233000557515743153213668881659411663584476194736867511949511438155577034824463800975337022248026973086247512703556998404940639263435599491415963048745714078254904318005853887535748178288023028671966885889314490017180107280744260163837212764026219873497260235945253400069774705056946818898470365129757344060623485976891437996024671060081760087658640734160965856818894087432276949400843420433909281571186195617087627830983900919852929937142647942097977419171826256931417296567890454119671050908673536021245068663984015550126030706235736239925779940351431718506178727750054206852330620135310662084724064867760523705145837643888957180506831336606802690524805740513640964719440116113961383694311545626574369299074068648476171821854005234537688564686914401188460683720558276833026567256703861582918425442740158658509448468236032899069559464720333488557601412728927998779349627960172223471367994112207546383076237039086514201306006625623865187167562321121988267795318314936733944433009060144443991900784824004801070819164705175766479143909423277698615541195630409920537792214774292397925276882601889365965345658165881214010309917350235526106066156661068002877471200838994216366815639384463583347951775362058660172567737937563514565494539274770178909798491053215695987213139236621391178456505668052375919796235150662741643466659381806149611618269260888695052172895483346910669991201816987931834497027937259870513506572060925661665153365799030207711308886440843265487618293223545697335243545567527917165941071013553371828899501768543315983777346791172343666237215219089529006541942486626222173968416244829488103734377686852497846876794328323059280599477607982575831121445122812332538683474184599990301708462857135364922222041849084997145553980199967010809154842926131891464608206705714865004143952913122160850061082612869313487058717394743149456870182315131715299103598745237280476747508442996758457504292983961622920246257707736297412887709184509042671268193064527838681530703208819060699036869011491213883023430174925471808184046475012134406225509190352306717718407914978362274685228325845113747672703249463254259912166551499383236202758180826688763103683324724111192272607225878045662022686010123978500184582880566689844572382018253570778752965869315089189322925885365867325816713804961538289924264285047832946752059511759779787531643276369158081738425033857525773883403690891804041645191674635290045459443499385611520384319867496086305423642016048614000422128699850387660115573204190933010587314137012397832935366870607618821841603416043807026761997704704535729997852223159315371022894857629673358565964314952097394465001907848176543353872972583915123611654704722683909373899667919688664426508031751954262421549465042229804774917609920775236700514367207155169784746678077960235102213266126691682627847821076432855333227063907217038853977213222756255313412902346885346497368625173640816896141320063925213024499809752328422884129632041815303478195839089441505431519933766883085541432782961912528343228961684026630041303458608379412215252529370568395528229774616266807416560451970962764990888836843595519721384253338622603068334393829422060201035197049590627201796230207959966774569186539588042740172690844714518187665924281304601936552550282819324535246809413783767737546003940789876387683018377814801888520153016836090389894651694940172538226413796994606943623364470442725506225309176048921481661486130217468943189896393130877392663623835901397704373683993802715962144717481872346299755016647199896858861291230039636512995107521303261923693925407717135463794619489050843408051529814646229374756896812469060534191734551036704794162251184424836213790186163251545855712852618904404907640396747504101952627890206888410464961482911729532647399333504040482379088364764287959866011408412770473618688872523616236331395688853058020520299188869849383844320065002335856546662910132141142584479135731655343524259053735086691519873344006886025628069308194122804979755043250157986078905453105041577994089128703423057632543710191139444989988184033473596568791958316906635619902689347468594858693202285009045815322737914249837513196967630905866386469197501940115815108915297462325985951015696233081134929734859564110555815407040516190172822773393537242377853503190012861134422579596952307736115719837332572187404809025827352240197009715368903311620426301005895149611588104120449830996832897816751098629442067514939780590098297144949330800414415359744132532017140542436749165557888179863356342876736706598249392486028851286323741944676110251159946874590137383588056488639119031158004383603835962337424459658772095113518154684905587589114099532937930863295240299945645776201214968089876445984378309822520899069795709346121100835966954848644730792435050981262086263693840220191698885749488528450290404373606093879787373321142470967793468452091390565449469145476669399043280480209983553185766297900919195245967665947735094374379630368898678004027900068604115517371089362098884397968906024467051823198207979729325686895448738917057011775660724624810529312685526142842306592348037441538154569916430233512200272813586265596509267117433659998168507027301626386365652671774957352609368243708394887932443998924778019042130773194349294795135056463699348361516015649093278558015583148818443725600033394730915552575339184101894983613831521526244250442828664772865585569585300115064938243961174492917777730153192987926051132496665318562103534181447446849249641641886396264216201556067599231976943457694426146705584443192635103520762321217713353126737047407810605051986157549099727864148225980729814211620742436839374701827385237172355251205885254254371971736066399012603384138841568961946686422320652114076470102380501907675653469560037368893715389757025351396089548622329513050186297319344532264256116287797172299734553554194070677942153910711123787852708339249448581054605434149073616971817628141802428501176144595616371609264436424811414498134639460612189425320112994167788796653652647372519441977876495816238476552762078603998697757197905443234556729804001185305432960923928882952795119468733344750589414965968693203675073537668492935228883489726064597184973451040573006750130056318945935212020975011302502973597378312136634170658748296997936781191259814491794828031753922963205901883884013965309641403260141057770829025352278263790565221919394807075401527559534955542269943895062913847186937415001992227978896597908758959159975964214644883994533831232106043534623589876439708471761453407103920095922363704158399003615376823453051457726497970493630767893317096211638856360865270903487492486090520751270614241714807394870805138639351285665530125780342093279413462576696369606375187582271635559226894576059285021105029782817342630793897570390065278460896844919837041681493056554542797279538442291575524413731689981472897781352743551211025147888237551305883604797200718927364307936713508591342592249372889656812081737593774099829948003097380217369639442474327140637475696236660713107176200089565341833549680438598757036362994389057641677432844038395215033333969838066259473078429395844826486556911294476874350584103624879899904714818699818077319010681783589794304709725070810357109023611094057040424572402807129068751265831816103372375396990742777183970836249418120616198365024652590724419605230330570942503600366991072857554111646670284673555628464107854508587766811679286173048965883352990776804356032718965356217061562962097998353753950001575350111111907024006636677423609933292901357394900651790347858506728507663937531448539026086464114593269073394908038689882017726415391986429136781009972224727110024533682001935087483910328454031487951676976252141343754312383260610852771354396285342948944156486500388474689782944164950747083416015457198847139337982455056578190291479967016265461392532125046311283454463221753986057809386213550903388608301991319251936674220653632679804839332552407660081102519995278308645627686497137575014002859328001798782576520681151144073015770117991889007068156218945084358350436783246644195235142641328532509123865079741174094155295330446987337728839013911711960514286981301614652864241800457342150011937359289302489310621094348644579921326590606731416664484015281334698555732457245781286338551715768199637478464301947432234740918647643998299946620039307804345128538264534007602496110166505355150590939799359062403790449983952711935372376501211602973995629214371201129864004751832241599830831080570884009265690877694954619441168792956803856130192288148655621848589332541752445261650649679400821231140502562922020992207769652360314615913331826911819650736368439837200406100173206260740106140138861786424852289729487371810509149592833751875655508518985029709833373460606654663049716892466223270034458422703938646179858984110752232173472012822872238528405282983731758698777005750970408427377058681276000918083644565539432375301441128808248228097052186304432644289179336506517824512276385705740064793458348759029557927919125707363530416785464503326097129421282914375499539431097879105582562677970256465487552626716559375028445508971225836195986409808110251486948865567202623821910998392656132478088149218383904329127249147249196153473422014200064205977515959769754091902890853752627326729916310115578845644057179559878357697775487118769217265690950305266481384533131963192466857983418129231622677588083784267497533567187911158492373856698836181360448364374978210554725970081670580326687138952823464947807532848832837214148501670996158788838140434174305498115601340183467905705483954160438793390309610119876176568055028085093451669125947690538333749593957920182073972982519148288721966472348718292591099919660820593791623742706753564567097444832963469254647269559961008169933075743753918550856916634465668362952660659696570482224796627849469909652145580385037390792907519255857183059820242037351977859197861114027241807848565508350745983430720969698650086790660071184802403531949910890909601258778153157847774207573160221722675764969142837160595106195783066083499028824853752693719043826699325809445545825973360411755743441497995029714819682718136416170497214791503263964690321890941501057221612918232315955722077598714659131520052548002541311830915812773360455186755533097727110903638891813808921930234173775102326261097464415381016314147107510904008189595239139933560612074337252144395748319519034029041872562130539863804186294898105182819864884190587948305113143612961560839992110638865035158545647461994589297941606298633971182818587424353982374051958007826329028535750807384676184715180768578954267543986020401544449031648169822140924516271704878545915325793591368211403265687453848740296228460204975669365450216718892410845439116398319562778415630011266430295255857856050636039168114103340111079434897508823879497918450573757153890921585736517564112180230861332513994571300785390071690092199589773038759058978069174712554364333621172347766540426733655332560166563819702313747316896604574128471044662156155587373024752116297012132548117045190429004594523733978745804503713894258275745274460602522345111339668887165903977000502360418438700815357615756541951601629793799705794647625015310688355536691381790240316055319809852623293747902170523567003776992160845199839998415719776393951187862399109849977072788883902967296941959223365207215496005362586233289116459317415595512715044380356890151327782903924416354150970506517623051647139329211630186915480434181634199227535498765039106086459797082032842995833413287947962000038685916748892318192868699721060685910678544210851140627405646191418120292677434766392768120048860234783536292146226244363211788773411592519172146683219181903260571199061452569713213166897175541113428608750015162416786628405861832871279084067013344803399945966642864332011617988433894951043994830638162148777955636170808239003501830154676287019105590087105975427663819444382839462836349668030604167927127929253598624167580193525428188208108501870190368640823265925548135367541683759540698441015190034068968713740095451230305781742298419966808121358621230570303072980954731393799448049854065115856464876742578984675940267742643388812956627861486012016669166471694762119512215864018577135251284775496306537220783506670599074816891613148363445442951466995056315114159958236808408890875835835730440492163518044950217696372971863759301003011343159608819371746058087277022413863088952278919561211754146267856930464448242189344526978371374352787495475862847596471115903124112105088759258353759798349089725312721954047034390170449212327028830871180762351173420871841357334688504948501515710246503918911052623801527121633385055444887331945861759090852052509753753722085556400513920225903186158756439068631452263817494514990588511211124024338211067526976222113892892034392390756430392030944143905649023820076091799024499319185500765644742976175076824682065757942866267994888393314422038767162114357055836881644091653872453513468522299095351189429377001421402556944255655348582584873742963577047725879285445887274003458843907679016854906623474552078164573828259089092589208678620279328124319104158577449843848925142468644393069423234812184205320747576762883795411892201674388970189523718007797644012438792475249053349440039180939071482131491450507557719511205501403122752653692484816175435897476007584187804161868304916273466010492240074364510235422151101447300704189513779919879445621873302676802059718773040971597873674308192654433469337141463602685786488182543054489378870801007326743118119082365323614132996141891645027252866132364598135340604523945751812411709128601752169572693928566335858437016981947751489761292056433424686816564790027104136062773560127807684156372688365171990785135771407128386647008626636977945818764601521910156583459980530671267799462412354723358808607288789295602076166314772201449801937110578981884123613473445855619565531391067291938817777437708674878734109649985375492835821781034932598721728974287836895879890729539054396004588692149451979957454112637550928191903510642028700971757324717262006143463560490703405980824631632517449172837274013439387686024483217902857585839684272486830102015948830547169587135948971909126501502899863712429722095973376189655241921720396267956234625752826593041530945021904239032539197944966809385083507905504720220072594282464553931506858449354665906045013000378444238455889324577088626570760892169396511150644685476832423343723093634761349596920500616536338622854842711349519205758077071404126795121912330937941470845742422906939142205429340602364052915263622425937864781373259545988597607836965215143882832021416747332579348970650424972178661919842579238693544037676082967104309531648446900222994731405653205518224627364826185237132064495805075537914523827755965844939223012571006856006685596130117768247770862712413913368432911459883682937994674857341463386495533923038660941532366782237367541754607774688610663417287321435958645757540986239478045199860845527033366749985410186098923756604605724807496966511805672363552388364795270385728318698451842225224170754213864613430563981846188669578718958726412455636699075640059859068864856667005978823980376753187755498929704232940235248931694135875571957308525027875353690336223104994591551767965640158746501412473016513312851595975016564536279558953902938729767255464602991245382961949879342100382704591021113298802631220267375226560854316055671171964791662324121325154063705200960207833830673077894871675670052569861197403946853247195814322798452865072213459579737976467184092345698586420136633347251876649074330848894906188574167570424111865387257597000056109346319135716624880458922280707901303916578177233339497191245731358730700144870609379012292162086216971429630515838072272946303221537020109585171100180328674650533673944246971352928910737692902223991746402735714100263197459565436335654240036083688679416611552073054648441614551971105121139263077259064103762671830253630921141993142526104700219864391767809450903695751397545527663303821945535114314448661372547801498513751150471365774053809306227400680657337689471984470749377659911613569497191947552589514957228689694697585877646421614776520702096510204406393403199432407164282744943714554973975057761500880682184851031451521706023303500682914010365308746433523944770442437574823415433579003924115578383905248645737662086113167910985220993278035768878426312253495448896920902144804663055357819074938915273802095846311600596608798477223009951352461844047750759505909186089160620771119526017315835865429892515892791676345093773682328234618910936728256487805724563466264689005970519263449863999211045788958407912013447623368447761605256977723692014588396595919125019335677155048846373398721544687423833987033467299232258096473648950577538016283294385803011175201569711520755922544038737836986944609423763829423474033502728035891371397953684413071453341910080204454786034611062076256511568175397628718026271465536935409773656984382915979963201326812188667002446535997014144477276385877624299437326208077658411688296374014612356896936002185454229062525154600184308752781291391681955881897980944998957838723756986998854519540094757151029509462536022702410973801510504944499968842468746801333305214285375649401157308633051194830119838826716714160691343697379647024021964621592520362148560738318036835759217738204312053222064095134745575603235318225603127558895303529430399962469630415750411600450170667034262300942213626884694846490924179922465279426807542634453024618385165557636215747644161755161308120046610036439871646858695701448117448869248118713217141780727098796454629840671560851926570207171318310172257267782449981016613408334638462994181753442378890050174875838858593601651663090810460235543095630944163416930086767432850993198520379242199301222937534278938527870045574603910976847130564402087599547383156522532980768840289139573804259841724771820925559373577625293899210826418568475494729112377001041689936443934691418653421249969857249640860700711666121281545167485099752438505093947922542350371462165470864439457290774632031341466930623610438305060717382877569306833439796014058855043292302851188948871717826694371235258477258000424778786043125201444348782018597121977239747842435639136010026027790692540701055655494609622380431162589373411891018184858181276503372674155320901935225419693628269848237474812898394399167759546360497093806555478477024844878395001631817577784487210658796436983033163929906765479355555056575741084270528473789096283729584634014551183648203000603885095704157356681528536061347325110060931485360878005627682054587015559495468280439105529582371701517319994967114620957464745555350469376069970201996152378559678703280358272770424176054716442496770911042270575588260966668468892381800674207184070872118489825056684835717690421656642712161415374184124170015758728254845766584136539736213149679560488442598365264938527025363833877174818507616733263963933137413724726183732595852510781498305155471684889541882888341927779334577588557993009224658267551978791967437120886792519949979672147758343458472052378704076400454412382641649657330567280985972456508373027385099855217508096030310240238951546210440966670965834252670986507396906585263439325784089798166306882957488312444809427913727277209702844578729961689587952019797828286147804429006359741381623254807056254376069400310817794064523950707883069875882552662914329856487175901623885486597054372983308649465604637895115074058885526798148287620769411585756677745928060418092782050833386621569758781075691172247582109702194192008868542924644174312422537773636013704505571029569980786606121661361812218227385314996539815396402939017607983237886393221145039530598461100950028915568257069289500787317573618816526244317106374295967216565427709281681934465273140683475363628841554933377497354805466327083402928715479236206634422974337400164804550683436469157858199361417170033613397140638116529151983238597879744759416300297787062837861300684477171786111364363533315617566860954021062378794352858383324809371140959142394651463921682778517942894900045773858499220845990948702607213618620907771064458280571666333204951571667916582937323325404657673740358365802296479862619857207152919513455401662804101765192740459529800016467366204800786484965084841685450205438899159977299279746496988853781132257051291189483850781073986481700332199019390842907779079305226752712257202176520869658366003355772530119723087997385567350854088784150952211271119234847839911602761602495503435229167819739757171457703601526356103658680456766182744542782346767987605832434712719259916170265396514631150125185814301834567053410658700790960016134614520018476188382403011014168261718397802985624832102925975457502166553727637567605039019856266649386548521680934888025909387297667338978103102184464277587677296520296328616880211084155687642521434719022256489625981806677964437430553181048660670422512874068794750005846285568444684290652460032172109477047229463049372779224178368695194136913394242907815594065148898214033591842246352442284456812913290956166141352714855478387880037210225936716523482149968964442515731468551261460073702278122962578786568846400215774249360873011607520152106060408192665340568116828422749859453054519941658449772187698550203530884370401729849750559365925457794994057328200976465451034853567425543927378109475609705428755213515204787154590213474702091614247527431007967358660626667106708724704293133523191155905230485431340926789837519341298362295178174253764053595961036648297039016246533473730241541944384237081655606513484255875966267767852493330466082248563111548820016818238370006592231134607227876394775836573270155428198569288178235067546017574567638115420706859272354745571848795041589900175077457356190634203551804118678831035620033669726751294023076287747132752416586251941644768733575087543569244231897383226477589227127687950652596631205356941632636524315410349145685080626208789983277670497956946696612306458976321882974915548490421845298012837212655620939478450129485413656246090756776208270342476120840469320921824374751984650526255835197459999285786969984753898914526744228454208214559933187361355198586627339409546209493747693257218747652436561558428666894221565572849154150809973916648703312987295433105669482502428594565482267843182670928690889580166453282739922133493735062612018288572165074067456052871290325404958676432916111829216680312757120217441519452079189455048392789301929562187329370554376770953012487077991470637965001012672010498953249751847583403782077770228289773099343219820807021487293861281906746038363843643814085585100160205893079963629117651979090835186762097743988649174499662984507152288895431760837273375918977425342341411421725482927156180703466189453335887700420972760531369047525070598396697322843704946363945093683608273419051658535809846874262801134948280310538656844717266017319414571476464191200753449660422482115905050166902809218903448583742760202510374957232280682500960968351523809793670455159317366524590364421651299934697575479931791015686204124779701281289461547852582085269070373990778467812898802387423180687863581314432795558208975266549198157527901450334219950272333291074446345932501763206190054891097627746891159599094580877217109627355424350353030508305820767496961235163806090219257636360524184962492571276205810422683037372750120644656862478171851097060430466497941498768459610043631169624397603535210233492082618271746327798990062884439045813962756302237376742445756781275349531543848001101050507146243938221468072000787752807942558910018038274031025813563145386548516988150848525063911191017937601409650706744576030910804398727031029748533732655249909814750541116983506106815847438310238619674982576344342407070766026507241068025117719408435492188947111244458412332417633708907648936981078142067174800182240757931305127922125101856964531322528637377045848966352758066668592190921424967212793551781023192594483076466008445663652334333169853298696077532335920354061164864834696876409996789640644392728300566735640664339870575746331790767053513368456507853826444601267459688932228956306513047305085087332834130992473157767781508762363781357884233114623665470553924618937969349706778621518536639498868387107102882858555337604294261388199345258531673911549367099883345759258362182165171749883296221076416917970122097544173411938475141502177557793711354174464490829003774398944703076488261455034494422525909850575907308311418262723954264880351325693633148708761928358730462149972764133407313896241084464862979450439434339874660114407023726799443412008432472467261022347850414239471920553209969166257207577574525135981599245358820137671744410549052360588513805465373098675290943850133358999384509884571714345825867544222746272260465281595819040931012401277867060938955308817667143416415000693987422296252379603341390417196124553022061640201819217278264851073122779699735598636889812740477156031936567873340444908869602233535202676412910711081458853379018309161321116600987287390077676723947205308777882794919249704144728758677071912602105382142932974814271000646332068519473278050571366068777383775130258012908230857684284801963895399941672856936481315859080612021825264027740124738446992157492324844502177533853131905186687278589203241658555908052768934418426736263228476690337601111188835106403172634318950390352633127689203398953132454675738203608743820767343372978423807996256362733006613898457858359438431593357843859810697264224001977181008565851308015616168401261513843298957823134919262131263601135872210405128260929416060816863793821406768296522635448391330878671303647372254606277416938925420117300815228849479320126554204973421267213141867473652751700680550705044970432468144179284971913267774582861607263233774459978829232441115702836818571907938046109051416679157837689399765137590095462128892275621607867932158084579604923681992136065166853312214011665942012034449382163667484974745955112571672499182619052988500201840395174492273723131083664317339281165938824722035969975979787419163175273603514980364949982188064870915364510689192705630204706651339263449235436498584292988217695385531184720994562208307748732036396064686346385319357544068827005839304150300373239670106084639386606882454687881534244056768500863637210951242025912698689026424251486611085521112296863739648617170105004475480615005045382917575283088121990690488216812739737837412305640242570588222117486009207244445649556894589809372795505609483510549213046263935232586648017897704227557263369635370852547362713323393221169255156662698938513045463106631327406662796658628087978998940010827062720271641462521276722100085987687483978398205564389980203630226526017358947589445959930442329143462233933559664250712830215975285976637211125451938950554880626437001057703641939361503082380912863653113330844106352845813886563290754018078154523179473500911339819445917485787695151271455157349292611697385355940854188460637252719936847129053569360597842409036619915659078023225973895671218185705032661855992835835940888533513349827906321312057437320024833188212311664958856081190254648507821003262227675268801217531270284211290406068900676815112164655456058887220247074727617185122793877824263605565874921653032179526108726852226525347598195863361923214767456409099397755397137810447003135144474076898199633866906377647035400149904307995552614759223846835757229957467955829597920814589604752325561191975311235016992836798854462704822763646703147681142727947017165089235816443276570517703609195016122268861414017170117501233458736477435423384611551348310095067290696539813659434764958453639348468782914857043677676381023114305978502621245692708769444665484838603749545502871251460547659674305642376610799629971967474724009273262449209886444786082549573487625064688300655539579584242315431229905273159641903066460021579510320082266285932267055813411147148503382714421237973372733340673351784072272764094739359511643501436321782864228355651483874527646591663343582926732542935539825577336440585012850704801964572761125307448490853750684371783728171896670444606896693832443967169365356322779028504377437971497521786351992052922518064554790697855657894565762138510290832534097057995079107349073139893013969364200849183850160655434466733050026807199867086516950525952987886300460440968166937284214328118472527409065193586949723166948373622513827390690919744785469977461848458443119102738786624694231791702209942403334091281172359171347790932244716867349537748033614029322569105379783039980940699606021143517958659985238376359149886278650772755755706048085589198791348512275343517859135151580737461705037739215948534499127349835208750092534330518335705176233851478189862417140423973182724888321530781213740916112169163507459576424229880111338850799163599033844960979704100617398405745147599521674275049342723745285394067535180594035170796609621381287687374275225717755858470868698528606535917940547337856976063466512471069053109865178998163368257310168263799565282700061551781779884874732196821788910251174404741011177374722090781513176268089134188511731352219541943027205355761571499088427193716169048004214709901677306569785831567862683074533463803112674645955502596891441323758637869475027230169825101367018756485657270071654702974656454710763076531524977509189157890341384846849070079763383757574149130590624114692114917491346978121364223510082286365364995499333084328277028965512875342156336008040188446134017103272045346134943970242878809808725940582148433005748059089873895108997409804499138268855216394864539507679008021486477349152510661016290598429141106058445622789105462866078745979180806304661607266598648515719657610563194877186415745784520513909435962709476014117101413337348163814011412576025224355070367768723246524766487129117958401004614156634794373867846272372302070429024823050359775292814582589435087608120553632430892528136856722451475618545520574422739121331988765844448690554920837420759547321838375316693152014067634133166028513347847126104874890215438242473687649343703022103557324254967243731589893924439312310878206631078656576300422797539309279818329093021101088487205911686823713090438792180969347156143058311821451648183608206668857008399400330880354347385474536577867662018084529757359769265046332410153837213552127825046114528101602884945169493137312485915969593710414582027968168848406394952505824122571202665694754824551756867941797134744936891192488773007564278786150904913618646551910578092790802754063510011379331097735523263029256542221353014612818038300599516824940379640127788579271930857255782112729075464107080853746849106394667476165162999429505692041078522546052075210880167633091662430584599908412114162232888082830331196034871360110013102173828685368476032544980826016626458248052487908764791349582004564503097467954044966496449084829754331283387667307236189956514058666973781957480374735927882948944273938562437598337594891278293374764758650042697610024792693395199247777917187512625964426606940494061629093527561066473154224285671497897083936179080094143475423324867325130789265553983481772835108083136078742557944373573408103861198994133934635407769558720189151643532440261700892159357348971957568331925720630577606574365845218312598741304389707581287250286932141187885424877147177712484507282206981037131870675089692712587978918221330214901071496793900392668419676767035952551261472427658613877435065100490853828383160303411697194788757267556609379381762843128039837917271008507307641767539090592840347488093832583478133093781306523866110692215505491555272216758370436926617914782209310998481485296178660452227112358173551919201040058747300549279183376646759139259302835526156852576593060776844536332296015815973339983465125959603415031814834101277290890328264312033307177697461140542461771863103796171460466229266263946935800346803070841816938754656970525661669372644853664849040014934997405795945854684679888950642860821203974298386218856316872389511214524470723719011139993721728614944347193541624270244731494761083874030207710074140473083148010449229710394088472741831401511194822814223394992347994803057056741560443224935405109648504947952975369131972135943942788037681479692868856760692353775998704678892328688955490941998129162443471543839071642677929157656169339027919327805913430699040557731230644324877037454998782164197193937864101595292253472681786969641445750943601759609970345098814753286760290334014521234573530296470473426238794818194985982413904758146618336201769784518863428637694251488388756674454608778537891320936474256569238510180116418834855635377851585285449454818769725133220495439629388519189650544290229349339381582013126546938783785951480793794021154977712231112597921992710329143270730227163253444116824770170131777213594054784043996795608972403874224772321649829757216853233970854811413410022881080590090610983438231002560291573876064867557843177774982483347366481345347371106708986090700710291876839198246700422498120381509599975291111128071708596057438064294089506048541092435293793516112737851331645096492170421385099921580526112136680492175659885820372437547936578918267096258570541226740748550764595923645060473719693273675623634485622072746657669586535139416620633432439123905281020349874276098834656115763244236676767130477240762372921780342603564705683873376916874031348776797391680670657265120796478381987840184133884522641877731308296537107973235337066457996152055386841762575526229230087498765299635982929020581327887828081364239264699129237717303706054322881724692511393795301915901802630882192095019118463021458493173791571153259045141277917744446165424563417749660178476222309763573702417060352326606334505411946244935415433608470165857873623927364152715926278348857884178536978646675499625859572829952361090541948424774528478495137964095611790775220175365927293460422529941114357681889972962162531469755554720240821506852735604508989876022472145025246164175263168462580639615658927913813512469647527665481683044905208431389544611604829356521939979382542859817639977847652773692124883398015431156400302258455666503448778596604561360232156211824495533559460842315622851307269469232133387971670675660448609733539249399130129188046107080384653261779935275364839495407238896338627402153348223875951018747570454982080894226864585813230873727721405563473997349893608612713744489520250216078658017230626975256927526605866505590256158165147666351851478174929678353941754323130210595535046866600090172787836431357116370042572589396319442228617372492559023883082527742390360954737626449771717947768728458617214720058428474930555644693069120762375523487629590827115901009081348607616037354461687414260443387485845427450464834656921954771880885212902497394565677996827420650042795595521666347794924448856304184532894578451446842606769126679875851906335520306049325269756883008397015765472232587071544677634018863424158601550481127595720908521160045666259955206682783363190102504515669255311726288278758025773584735180609275352177463116231568344078822702874135265782822235895878967008046099825143128843244382779119444256035253085551403750371169257266353485973342415339145974742104284011564760961687124945760345733638674570415586127890155365907857431876060117864768922532021895658910891312496940231211068392836892376193526587205610957988075213487770394628949187255123254934993544890060712002204418152721538622636206250958598910588053917640826402930107459251274646819543686884719120655817389535094673880856235090138539628990475147321987487521008886803068944588953280029684627618344071265904255299285296440950242489450588899103799844886990434567984084906626578668496019410496661075094674132150798231606761666591950414553224190662996221537195801978777111169132900854589660165607387073367383058379734239585138808118999118193881260839976717959584414033484055342395338451026852469309577121029861332742213714064144596424418070267819353147767165717169671008343939683405363325042111022719251435400212681227934091303776220364162469072521080200603946939093414372711210556119966526599431969929784424583669224916139369995614941088893356737081867563828222700619234548215187254838145763637932234347114800449065704724759663996667751315580138511457942811331263736321301517192680061865503144353080499406403120834541574351959840053802645502500197849382488686169760902896919990073769204738869060326253813982019784668144444297310564721177798560536280762757384169276527788853406237618873996598184420467774312983958906170740340461031517291491650984524110206133444491853406888708154924330719302794011168080033700933745058910281994781876197653324489108568670717960318935971971906748505212386529599945759134497921384447047389442974922839698394658352651897913766267042002464734796057852307661030950189862202956198608274911677361364422514511281063672957730557120118473656538519171426304579005864258147261149844168258657049349867961683487339714906520246123452957188921890451993098038759971203283618331353065593866703849740870511385989329422553833945137842354012874442870897669685732948776211136858789221139476058171105413024814399727280877041893352491901248379040922069250428542835373324612128541536498112972088426971012055872506201675848107254560722007691622373247719094150650360582197491052467193700996449715968130955673124607801044950423474993324861357965886650933133516406354600599925800229721345538292882142307674673330768377024683258076362820206054149094751047450312941057954068839668271672001913048448690402760908310156346586767971516205451890086079943594943857541750295966475637258563136906971959462322445075317139881517232052016499932627839706042640646061879341810284769997680646301983631919601744012634558136126062868620124804990246198753326476096920445658680760813565022086195238575578707056691824052590723156235646131190924403908280065565650916709002097745224601666995660245388261592915758404017028456842677297155901678674585724544728048119140142147918282828588690967936918574018918962206676395573730324473144569693450515486476949077673580341783859056973866136909188334597268582158604722132993857159915963335463822054468228884047805518128963267126389283827395367076945836672819122800140751837836174631639682729630045825205217771384543857743956684955366746714259932498078923378730366288269028875966664537608513048596224597858426275030264982552577240958123750611972673753063815077000934714099987574817429257552157990942688458575358301998147485648416393569904396509486029981111138376958477989278636326116152361786012784890102410481512488419932198801866750625643254138949900085548441503955496788787829978127328519889386809784429961693121813994353355192162501322998494939764799894787037328498277729971500226216203740581864158915458713094843817649576980859344031397497598718461105318042069785800556776877817347987905406552515107874712073352567261442749146014763879822240160199341259264986106494655808294834822301371804952542195711362367420581717411334694164371276224114295205319231050593356964020723240215513908231254125057627709822118328874221704883454884323885810562731124460513526856958365420914586607556431362827160838995535263018704204583850358327648283962150687887007442678949810239077033252286010184822004202805418760277379765302499332719750182308971541925086585427355571530872982258920296649453687590031760726814119857957360057303259937078379840613673707575850523057216141566014773150082667629824807265487851373372152696141212794420267609387051759504128301861952632241061664708747403980906112043901782169355164704768427282817389628757013177072893163818557581200790941236322686944227924955694902268921009941393299269720178396862317914623846910857863017383988508700010011689411405384778344304943635097058067980816666662918816663951324360293839149936220338714240742741283700376459827901001450481553470925927901064538430603581219043439059494218657952034568452082863579310677374750311376670832558103782998198148633039100811839528334153510898300005610266416796077194023257322375078802443340446036337319851117131846523027493004274051465431849897244990295279360793737554536967087716258746714631143579609548854241143232362515064258626651147413389882445483828350785805723862766470904166785096007768803219599845708777873906296064593336054520369697340789074646842579952011207778004905534237476099085356306441179607273715912167884484280338751743322205200422326993584759759907462860750592809269389191961299666435509728618812515604262847215248133997145366031003492178859245660012922520885884083314563795446019475023978865347779303240382959460294502953953080621269422765671578170490377843899608560243716547515668929301494756918882497133904547130375051617188159343438363391536144107031845534353992390645247662637640030460975192120271344438851315979372776621756279621035131908729879734207965975617832265929818741212784959419931677812299963570431304087322493810475581815201938070965365740178495884158398612748736688509509610452611205996788146949963819651221964543886499752777849076614649060852222500874271608214335414011018149730068732180027371986986232031549191465410767406985607534270876918017807032586151977755333269377485810925760205395470917125463313996182722977289458286656934583700628658359904844981037130522554629710427937600489623434586027976019426646950899588760842101507235857264271057422362838078688258571106340121123833601388240824224965100448851559411052651626695057900978530558530640882198457129315351499775349290006242926591511707101327455873500141135149735801316498989917340977345442683868091952823209933987395328787976164296831411031295980565279596221383008958160369220072851263831015000670861223289686820624076801455462555139129648839789312516426753887409292138826373090011653428673291213374916125976749894644701181841260785297869183789381887862595013953180277856302213017037257186819968404130882459938331122849626283730280263003729542081336831991954777881630367283440478045983829779500885090613004217039021144433981614463952793936878704121926980349646312247839238651011242690145673958572072498607047551442567077984359278832174126635613399628463104466961709400469115470121772573994505274210213760078583785946032610165252096744374394868704949564752606558701857281641486732166968538020532392577349574079049647291900141030943017304788992242618660305474184896660643580944007424228953421286220267614882532073524602670770892817780531696254919675754841880226318472989704315916377380722350849278307623668443743850160277214660533361768538989264794478854307933972755220927934692584953443801007233087851453744034237000291936388365798151853657911414480434856416283496381370261934779092238850315800213533741501120329613096194934459369131750984428696046370374255550388220378084366597010388053492275531064255715357480467268661109136686995691459992300159831279827412111408246832476064893278203628145498058315080422849632802589857310149871147603878399385688225773257953932708007630697844467888485599272281875994330947365070608100290736006546766200731085823270478240242801562432939391705883705787086887715168031244407168327424062446779605553624931561765826664758799484201807628277983024677234231805489066531286115623684937044306017293222067635148674275781725717375141007392176929931873664000939332627977560787129833081738144656199692254929774744263759066018505233997994627128780487197116608518808036373030074311520704349374858616250162103463447594305021630678623214458555888941209181324066103028804887459947235020014613183828518329938266627888587575832924555492623335833608229594194780645005258095818732475979438742734245016928965088520596468235479079501227481246351925664597083203948266845529966649889131774049527346173470440736638732338197468132425252618829847058114966661591817757144283937531355388792584607729396021346640798276751474474598998058972903106697589554598546376961398025421271049484836254453146748661884815681059785043077968298727484044897920621117395159798932751896161698394766293756089812942166000993149567008182443822019524798730804581144712872984325580894982632714472167131360522100876364871946413830453908129148628337945315865776160606759395111390446120628430127475430891899744280623482798651030626993744077958808768598966102130842754601645155977735744719290425502773116839300536310197971385923039120115979080334786311329160779178700459086573634356914162256794756832817012388814994419971158472209572112456768931346016316238918674019867338336054600081925054816047582565127571761374778532856875223140301751452041392076444982827027855660084190175516498788407651433324214870346450261245139396585938921858230503951324308467110161097600010356112798293044525317362052967430302069498289910304326133845845992632257596710148149957244303406162711895850055153168546280261467454843795677623763533982327505128850461822093087703525470453943447721681614493683466989681276149874983687051480116995971904596789875288580909676652699998028535900880830930284364929505503207187965950112519238610192232626898404368908185031061761609480573965977465717765462061423612953357982111133511417384056582361135937391573391235454526091520763131019038926908260519854450963908367089673855812570795020412902405393039999537104891784610790726521894931646236457790114372918310903907419605079791549489032477800074644255024380596021428645374627488951857590751873402063713077564902350988216694266962039214448557792708287583503856837745086175044928053606663642903677503580119173950965665483350281706167704396300254856660807028615847982718311938210980153926912059201271421197621306015462382164240617144356159893271457135972653008491537932257310756320383448225208972716218329587371861952624408205135645720051351702381493299933824075256119469127739062041412863199610719716879801123242397994263207575205112835611111664553658666005407576150482608289626475457316260183595897282197491804710343895410156962601863948827986821846414508456737229640476447154975067188153477550104521189003151386466583471200450880071400748907119001533071526801490163616626693807672421699210457089997965925628238992021328764223261725799843033053929189023439541792390139548204155862937488367820339002925369881105622695922381298150405199986482132895528884311359122736342973304622027011765725981371814899827657542326512183768353948943264278020644896076318130404807931995859746597436376077618567793766445412238166138137170687064994060789390206486006299938338459325682730201377913516919617737581831588178659810067768559861359112621113951929954919081243863715808408604508899748324386223459207439784717514775288234872181397459561783757572810067233922769243204456228228995697745386694829547125030116338105384439163873969703886053853710580905361403084387058818639274572907862314172578112588996610653160783961297505682903958684878970659500151359059782104599585517630092743524483053562000722076254670637703651904049035239166387586266905138891341050633247671809909519081939700020937575057271383467771271720558746927939624857430415944948209954870267690136015349167160611434517708091968863408936294938472927223163640550445923852775485038965533387883772790445406399663237677894669163000951816799245037933888553098261288718130593703089089341507719197601954957817695744329001222314995462345920806486892795279464484199439098603712010460992239048794775923424059342566177135176582719360378394809246995272158007186253111292156899982344416630030028809274383252744914163449718330928348874335928768434074936525826690244358159002912424801529941800115291794470020284840052557707260291240175006813819151029703958942964286402874371927260380250431583149438616627877429133769483066971654174794510098690048248399985609369150103217993228198506310650168663608409358111752080206537681158778052913228651791682279377634142374068225955461199561475157282032674799903029902354321373193811447470093211126020072141724758368306339439634078019147417112663860866208413583835952349520869594815289678034330390730983995932617481283846013506140942470545726687200598219079885365094560652664902061612764616348598039460952183005232159423185717164475326971311749974755124864392684076817894288536213997601516288737586741174308072245244340052980380613520952951828781963751193249494476724742226488046153848118254946780777971280224466250521695838173558202106718798700493261829750530858758706903321484878031806454906608621807240530641962903936011771861044636633916607037128863627698533346074099769853400796200072279715363106326765478158164524508042838513156476839777521713735932657862648463693266604280114647653303347872755334347413468721606789001460049434479896333929460359100792400689952027417152967041915739976663655034909922571062961146901303651177689807232729040513489264637349064347780475258446344467587566772764092314182110893913691095207591789288473559804863414403924679084672725480053579497372791721262001205964081586259964286512148634595475961608659821418223868817044537698669114884955562500299148315769273541860957066308509021578596766630757848592574969045302427636607642187512107915582138344221027483777885295004615554449299796809825914516046654828551787964070900577686349084489179739549485217740088046866934841882982999114699442592141707743647213168190268449293645856327317611417313674542724793615100905825365530020721646635040222152518019027773465704666252642106707972086928448777992734517150315752515766516979660519927691500628088051441174142621222884796099688473158809610904262771129683372412982140774249324599893125048120489424467929409378821451554415896208023390132001248642865725048311735892333389685062755705637543317625065658915109415737381196598488187394132249459427955458596521992210649186966479254296329184350617876208022944263028637635540067758942684043854638663999990308928486766702359462652266968790100702686517720777734515887227776953744031647202891498605496656565075937283869899952308800898517358477436693013543986497405167656615561016562946393482058153800123758939142007889096606824672924404541681628250822156966193083546645044566435760222953814474018562362153173086182364194771679082444487018197675579421191832176866859920532680470085466005647853155889088827522957762741423889126028498641279188757283962034617755608650055522267843819158588866214924118826159257370471325825834393269328986137962691188669950753944768402591260761492826210889199372344003342974914088531230093894753930973185387325696068353095061173629653922266800670243847742895735556093155824079338050644044000277123449192847819269083825216465497438722674862088471046016472135153601377242503433567202419334898323946812457996911128013513589428941083096447059703778944163267990305290383216800929370653682205890489875222828714580246715976765389882063169550319448799788236387995302728723516443279101867958360024742717157487685556436738337908932335073860153189672189518060576425391971630009989891573511687733009759278828440799147478594245739115696112581134388901490499089014699176213208100308940947593270582272688999224052826723355194331237124832472739368561617858377889392202233843638502623641974620396606146420521579913946157896671293911341230324109810471854626994080718410619871061447067177948767929329051968894889062693378361217583829275971159649245833249398071707231740454199407399269030102551654880381362086134743550319102928391113084820027707973811595721042772651593303958200565695601995938956929772458325019242345687397681200998254274869851137484833228544855930453618286016586710332385713732325026649838284448978350438360190417032147694474414562873717547715071502360214214417800161186139962011209421231110699242632037076905613298743754593641375322531973056818352096366794514175636012851143103890701116275114296953775249090228048016922392264646156665232726381293195278611603373815120596002838649770809523413858460600902703590016343184245104927908554362331135881849930769012851963157559077896485462599222900598133869206875247303555655948538006398326750820352021636293729874292565294656274168002703921711164029890835115382254116783792664517533490554095942834878978793077227810419218513596355931881338530420913221430353179370768155570825310783700266378225521506702335104078274742525140963278875701155547062663219323680128618679736517057752916010976049650810801066560169827148533535952082204731044120350749022883766710502037703082546626086077471585397207821624992242021827207250171668046785318459817169428645823765210788074275219438325045728520731114512239900026103504384697135354814696206524728139494571561908249298071577793467623038480081781503810695804579244065083502731887501610599424533122860049470599246589634084735627148165762346184975104465236813567062997251838931305136747678640204883122912484009139850669875002481874392635283783304383723123026097530593894583239379232809126511298315335361459608947467624562493264954878820010993184973255052975262669520803274083187465131933745131497230306539947386889334724900838518427156390644065196528452539303207176185197050879912513858409737368743447422490605129676499924536514040671129588878585237231667398844410889970281071935743870872063982753787522450895664650728806702643885514953141040393082216996591327195845994675569000631129438865974242300543427008329682688567823827116561035198188255972002909336685073820139075794884138425257122036336287125314787830533605264442592215155923375410997210580179563565166006165736261002592462725016325024143810812726436464370838231737471956236614406519525902740915562405958227125665094844282943223871147580190600708885692625889472639487412052522857338947169590403512482452011183577894069744635345996275946068653186757979394291088541373028283850015598253222271942179190836488682580019055844440881494995552581443167201474571544041720669968160188689105958136800152692660745254825190771749521163615457003080272212811932647217523274767153721065037615834836333076317689569063114200304429724975601611456094991661187378237587471690642179152751649918319035873265414205156146534864759848276947254469891008174256212789807196429368354077861513525734627499953574675262802899643747005826614038787263019826999955957096744192039058747517040703250642625630693380284265800711713722531416429384880988554884968324328022854593123329867800455054008722597546697277616188353730982580612268207887566468920882617487699612452075648949793214100025294885669671653769649999493890006698083068603068146552726928988119204144622952634048531958870143896088663830186218109128522328037481734974102755894219471205904787377744777898203932702375802849297501778282609303546572335106363980128826071368596644752104138081821955791450364540504459323690110148045773071279581283138653425812853065042594083819008228936042996407541438269992721282950885898089082641176485737983850013740825437817670918157900458536309949531851273178081579314409261589702308282671355688656408960495999752161464719412027096540917422361534725329580863514155547421165461953186078115007228673185395365757882250430667519439930464337343597276378440132473255651345210880429813518205696349279241211564112244736760642780554852307162823709280701348996472887945196855866684714068795859453750352640460049079271597598562238585557198462533918718763578131781443664589033434596882549431373126327745191663442706027043875504688171514629919970810772653793640138224432835628175158989748509080084158059375016355104956448044552219780261127905148842081375837377627721568861748688002976163576055801554198601440121613449538482100363337434001324159749296682826556674875649889366442886411172892305153761256301165947344167018042670269117354440568619309720760809177946142646776407130212639414116108371055958286905414483184547666808785794792522042871323001537236581472611835248128515588814066658621548694394457858875606150866427165181518439381683725907090300842516505079530249820339396520943778834586781271945125219600312922849906849753167016027865828693463082624631344295001503828856164830577478562106121118716705558346038553496524843291189450728564255619580421349164090104507930965457861593971226240829573135041059400393120575359406725457517912159174408844626112184825147405047999891739804531119570401806650297237396598473796039730335037349086266756013662190688172040149344953464722154223914710420441921742129680867754210798080222766186242140299739499219106058896654070660375875777083614993484769627024610944721213120644436439219795459131052779838935584815772799471438429155599595722559120835412019425401471306376477418311231192193998799022992817496269169923755564145852034449959291989110449370235490917152858774342066621094654524581755591975283993588232055651129604036354128818795666954202795738595981764845304280693768568504197169238376890372895361444984686006334275749585022890058976905400855831045725574274030555534116451097423277305440382808028336250712216540079703750976662725290517882033324436512578699758983597656420233749631704279406899652373477196319676511939262646300912610603595298197381672829348150127607907255045622588582159605774405986349245914573268841345635218986200743920837892414127421618462400668253428249793596991041691042802937453941106531161969612134264382898920946731856972564519110079106134610320472719189500469897272418385465747182581614881251147977450736421782303883869824142231486203498781050609910404181691994095933106068325507501502042972930055613298575911267546438770480157332046437392362430846479224219506486884891767239984475858357735642072378968648769799767218969714904725703528499253233113261478287632197984183038406180776020292637636999423845967711817690626455806284976150582259960449347243962411029413706027353023194437432440342482312510328206569743367461383140832601747600056903767444148269926083609212322671608072291359276043408787835868605328749032868060453340145503217683575866603882440831060773923460153095414474191082420414770661425237092707928009876121051434709414014711693956123613812201576309420449914780876670175242080404303012301687592039432039707653105354943686598883272270753359576851835695232642068337247665745015592399920136580481723166988612907355231090365485643673121987024586037435960338501234116623548654140256597581301310052495550463066267806011278670604186472130039786045796180828950357350978884813804415116515502452631831616042190941348872271645018802441964358811149748287656700060552287752700975087161227403272577020377709850851408259329184013888827402703042746421749101289881816542251964072420252135000902625149763234175294100293694009973908974501407951665090709835821500039578026851860953305477635058858814326270124453930771933080137596858808500064192192475966521209768731956586452959037863691629589974436268942956152783804688176769071410253112833016722059070828469158110634114651675445506057826175588127574213246147258722802001419643924102673422884552892087909472308889648745587961585404276322227832640426367235273473233056827552378397090188028331668837867914868704981456981707881152263346081590929768452445147775405769186382577226234242423615100159775807944279677307270561906107233785545042140914501168057152151801314012941786247046942950034974350508096816088274839560592517810013109340704773693958607334593938792060370399862250450176698878140284722097737125987908265575258277748215751217145376058397765018291015726501133437594682930083953425547256239669296214969270655041526257628065993216951915240935635262508582414765970341811285303690603473976789842977540277596055008710745967567811630816527590078111849308360087057117928201916451096844597647789981283731426300007034761609776812766271729891346829444268663549215193431664994219072974695342083221786367204359672645632621487840398513727799012486217173583349240951568279391838154845445612180086999895906394802694649183967064769781615773394704361864785421878262364703592347483938384354998597440586387661711967348495004952770225757539353252371805629156098564846178750684563042581728914798676476333985379390488964642930529100415198563093167661146275135961028094996127569769710286599118907951453660011876514997533271718036794669100546413770626755715926939912615272662393285267956889760577563084232486670993299451399127901116650236573312145930232216436590779601439008613568610392774759719138165357655827744582273344780551285457515031851985906377140395268506783853884834263263692041692743973267293464901635166630474170229851784094395069192933416656623666468656384466925251709258984226229952061986785190086362602100085788554280313331394232698950191938725686560394150544795637847627602429914938072747525932880134533529084354618435626057499796357008690637166738610623571802514761068710249452445485066254721894827613215968963342551109773392958296297693647323481158615272648978670200231622888602455970734423825858666183040748894352015876171054114657483198517725427563951376868988754937913399575236694103500112305880780988258781997261279365333672501920397659771074468388414606246871319624397499528292228192659326930098485802249209104766439509934656054933256362848621117277264534045521886390805574327530392715730652243878354185652196016762442240433030411999183687554742696341905158740764904968682639586595702048078184317993801016720930802983820558418749763321930687885262028420412628346045761374929125783606013987727936017128150987549703734808689104665215078401489682896868680161196909065934901780340455705904213760035680629512385357923785012436073905201055773830295222514063675561695930913828095836581749326639361270155137468036631701125894600025783650491214281102228987046930762075273849596333421114827901760506801984609713653435233306587133037886801363104379630749587516749757356362084352158783778949584858117149910234300078707732707802745396004295503772062890998873312602677598279011477946337200780395927675573775330681681035754863194848445924707267693839814177379039645664283381633083975108287104297759152630814529809464817162948299578917243155286053426631992691998176639159044243552945483325362302872444420936068531127274392156663375565449002094662119585412011029660834236976291855085418902466106594828248064946159039477096505524697258414684272068289070171473275217549869462545898554932812000119468401553910332679011051890666014796782952556860668983896336882680158647121092346106301740428882603587904727155267641612070314165934303670453985389010478231408397708731622321646464354879300578851305217469867472875388494151531489547717304348742450650618477902637264109497382646012500202952966900309594666950943736343455529226853297114497056604033185077915905607493325891540166658308538649589523670166119591694854257392630922113838925430607577849947932184316834520237765973025929556007315777094157967828207938791763260418645289951599664027715365461626540082625472707237189141583275796699061666592102563238205652997254993312631709005486660920916483825719798032182210571727858045041373211578403821235318053995598674280481330951017966668653977058595955820988671256724632459667339750478888172156279012835510232181060526524257961547158231641182277073984856131816380435065504872797657056758322622188694901902956828607323931926936163653200409305263432341637949702781904622637913023769232650556640725246748034891417527293680847121883479083150322756053546961334131122979744610450895902400591214819792138963330762463580602115696660707505896593393305152547941611808443906585175534190693657096424945479506869832553444438256715563127062778925546898877817010376735358876527031088835908276297520040507503667981138581030296460279223653129849354732193658411199994378128915648375849913395847332739716548364959277615589246915686277582237870467040250987017420151676941535231763556298478447194720391284289476170510471089846152225797908949468116619903618325812785776133877874763188299019210254367713631514792283322000858314924779393590635019560531698609938025635302597384881684570105386111424561578840008657979504746178359109817568104591623568150100550902585017739509100707136170436999899980185084349460764047459431931627551157846969883044713647429805117314816677170559270921251849623452496968434413365234273724673008853383311871848455132865191109781355804583384073636320688272185607389978274964658942236303171194480206379926965132363394427803407026277678452271552125287451545568093788784851109863931191181583075101244086609926539213022269519024539756341313735334675259237580213735215268283151551378925222786988225728900012236753310256295466101983719127191401477847557012552191386528683391207882979965790254597473227192382508859585672592935893303689189412613249239573894725774817870436087395119650929159039961795069397904110912864247251600299922336902456783816150495394544981321472768714161671158195287696563048433548636686275792317869446488812888165801872676022171038764878101860684680820470089670300889996676614157411956528491368377045908223021092967155283382888878892372736675556742764044840927134966189573940255705042849464562009239029304226055021329497310743949484475466119193763783204925885044389371526217840762150519435285596920899888196083761274479172797987379992331846699461941308988462019233506495480506525136371692331797225942351873301870028718058972177492569407549350800284064125978214912142193997587374432244821836303629333693888663118787667130320506571618135468305055204703887801305047165941613085740095549629224872295473370437136716927037888467919304715231622296840559498594696556375966200443430120122000836768715446351975290073843652686545808753674463033992975403423204717427320670962282536244032034655600308393375741478232220926181233942032878092057787200320460101805260375231733536262499527164776815577214824015640244000033883388688747676525719078763666287397134163114557230265424321490873167278418158049736443692455732200621153909651027541971560533355128332937141026057386694352466139017587995860577512020113678166333329834854724426125059974016739244671170360718792266800441843343141092610784018484566008706170031359232964099170758633084228981243287550988149083724204111030627758553910521091173633234935183177129547586738092482375921435699435957911683141110141858121028033336027950610465846182128317758104207471361412294928641844980858675445320498716221087408177307844995439885865465646172170072846669153566866228583510669067089607669445753182764082697204578750460212131757741833162308020586073342813474406258285275862621489556868759233291940870343446372104692567270538934263656687406912850105894038000402626236218915213980268497186516562187621128831215197599547952529845781966696578824467135755348161013777488895974962462765179245816002335434740365439012090555978427689070284733842649082886820372143468073861926952181044183641347604177386447212184276196850650375483913402018909777410401862575273037447510419660951173669101502517901809565577523978241374325710645123478631204211373985016003335902870396585175259754113569080360815400452216081218835004914999929965559536632157978551110893261976354026809158769658169014712866339615508519850066329719257067849738525035422386195239732915929524646420186583989458670475861606072969731818398982372806279828754833745376267279858588172732321037322304733182685321630135965937523461700494942459423281265125624433609994841992169857179405721752589334419044904046567725773999429227261277930327143255542495126644060685982264448706175327167107674256083438374152236598029425348167081736149688385615894668404513307001044111212417700603379069262476537745753201414580051435964928669879518237319447003913067322980638427281515970823465776052116171615810724466448856072072273099729891187986211356404231460612331824088389517565620208401763585115143981230835246186952366523150373889203250002542507949444468435729930698860921816987182345745466212001645340271454653608447092935952321022471891155706431690190406662103275086808820881688811501558562665878738532083397536483334904667717656194879753457409930585927423816598848132078554799910805042406830526092417779021227307665584187311335974167500275069654318190909614221349795016433137252312272669901370141102324256978478313578019501746451772536217661159516148618776590257146840428079787033230390143469169298103319256479006735213175044319592954830262807471371455244834918248469788016282264126989430605801528321282415560267120714732492058704087446946055092938323610635359327486666886999040100621788897349222734156839496259509311456358422954401966095507412795135018138844199129581465096689825430936192154993939993877440898530475383453937715817655550906993392325008433629130758116181626910719406004387962986114431534064946305129311607281692120399954676022489379967116910947671925862903053493222563796409889442772635115169652021001275738138634422545149928865809083948357776039607465108188866057277509248031871801430804553951829433369585731598407754857090988934720425108105161245791080342708089840159590186317983070010821391187459221807117048477126279010165222315759353654437969326634957221480724451528457729707707106160186208689317822455850686905071531397958479246256406218546614014152805752589755420536310115338975048936516713458204174979692512986165717038921531909285580926095587797545689841375226665402553882213024859520509799819252435266011595242395950168295968529586616158113926242231479587704640768671030890501375810534244157473212741459657931023802933755330252810842408396307650944449859814167719565442318084897042114035219589077903675298852699249534095789621486505584337812391576982290881182830127318610587849212289418756663462370288389396892591295514229047164682603353998166798585171003098137667617683144151709702651661216266317401970351677522233158605665995937648951604952056289782747783011680801576350250931469740898100652704116234847994309750348215949733125176204830707416386037840763230527723749107481569385850833912293704189143167901995902617402213840760861599902239793074920367028355316794642273472495293282461797563258821825028264848480619370667999625282145885655470487820847412194461104599307630491094263696850916546042204093742952884667219808490606524823919910064531115465979488799993518810127222501907468232718674309469831025113825228708166482800572399883529471906306881837429443403635363384663536155871776010902421108825909381269822230693148147781509531076634579834658764919608068865846995031838355334246999457866976879619560744614505038729716758245586085961383977142178975083270777717003404007278022562579697907534099869030251393045787914986803439032250113666356136540446180524651437442253873150913723108175382735329066803793349489161386697665164586949267570717383634322762971162732903944275684005340913973173544148255932006233523248115805089030498849200222568963102272685759324491964896255691228755318884057280879301329641817296959545655096399009446007838229816713603077558438133413965750988990828393395809977906052137777850535327636764734181387920345539399958225919215647270970629006109490855314113873206276917696995989955729316689325033403891975338798136599462254549616355853605929182519991455748788994325447866466443801026215441258568511190159670320521996082810672503597343170459516072027987337330469399499732398230945021874783512293059379878327615822314221569213728015058680957041559744376115055613645797046662621493421840725872802016271000130138828180835354403816709260573148761467652492194986313929548312395378689178834220343046542138329470667407890633983559191280086180451321836013434114201873944903902655290793092295073742265774876490796669099028004736273791708110400806109471503219630307546958547272372625507613730114085016261884237855865447132654563291511216485045670511532149085197254257257351546627651310531542851879233158594377289268498169274741539974662522044821150767727551360729685466387148185906666581906021885918629881927604753801307131287412632556198629449990885108089723561789807058813431590653302590321687473809671858905663834213347597529462877007901977813830206287844287797371471971859700274644093637935663368528976482390032084473364372749194717732325301632961085423048008363872277098092227436459052312813393534757322964961140877608668187158773982304111817419339730664531026752804968453678961064791084243296463894252588321780004094048478974824322986429335822918389455304636850649233976051918885231517242570857605491810330417715742572748596647435038549030685517753750637024066133468719647351083833511977092558714502088609500366155279038358397447749598178261106736294064883985914883121245583739376205459250316958420030228458573543470137574759964019458288697884239336109514908959615246383560106993327575676781481587756433078240924804219883540763981053380848855339055921480032221804076019760462458216750697638631598038249614703678758795455057698183035825050414780095223358593169522492301505392333525716481098193721920180312637316581976778962369825984170597352100663874030217000789238330491589890383412974544862726684605881759893870494684359899585941889599557404749625834242069702759544676156809313780375195996220026093295444333772367739973466032080779407915713063542839768206538827329666876099113740731256243059284612698873761247647383107263518374918623409691806491221729748112225202969063560482803924965170072325988069859077002042807026720338478648624419529878056400239472046793514956518184215417154442855854824020406185641863927976806110640963876448760070375077270323681433220250214276481263913915195540282579980520919257913088618758937967977209468789900576619676150230831285152131486034512144619195290907464463980633155222851524058351687601517599312340025789737300958270471320627668476863660145688558653839890794488883238521130877823614973378954589051148615049425156494699525905336908080292550721903938033614862586559487887442253306108359876965186088845798057343405919168265140963164205230554928295091203412758186817498376820695028356974656083872210783316950246818006127553463592239193246345035337582414262296712651829457581292455090990176758074662184933926060407525632657924140750386525207562848530305964387664718058212832095946898048376691605504695665230061050593647271113615531086139952423620767869529658629054671125500107267315768952642520571356716532327073731448446784688469749935280662946353458949476613111127292150009005774350475433324546888981981970513783314011078536988741067484325030471425444119783776328326021005857698828866879447805336070056273343621189219635350311467501800552881928494304445131229381291925273414840650084729009377790309419427581702716849646705216190737566859179974714458554543688916204982169283124846549349215332206777400840355610769600766944048754368120903340640073366975034128178513332936416892865552200176874615377136049523704535713077816326984047272155169782620291998427974093536170926042730142323635876556237557339275964112967228945003221806079563495599765152600551327569300244993561128329244343947760803174859454057744297581091230152001855023939427517081430467016524268045997218267356094404999213173875441463463019000078580572123652984768930019369016767030233109407235794439388904779503190947431134297373984670443064211171389023583208443404445880300566490224484879952416132479986273229376367940143995388317045951215989377318381137342125514437212071508855547467857550035518667265545468425854548812098565329645939484472517087832093577840652013188219513820095538756965137770443554697875588583179084624707962958517174772099806602052078000097603576514656370275787249114995311378838420538560490012103849654289663951319193003208610621428800793101236668033927462579032479136480719802270053392343676274852219096936375389373250022822619626515726180634848178666778852327066952671224033450582437470314667035110092398706860450902483765903286363345137983832815834025450081801349415897073286514073544769142147668407923958938918762985935907265126577471717777884837401156604707218912769146234828558398311171789887135642744213941802198874924130777952423599290587011822747533980785667905598533975670937880281215922136017263426231795301782606436238828691010480196429884054673781908454126518845233752208599673133640923545749093340676574465497464845296854336021004936082167320069800607011361720262162899267772076938562843283012973325223197722797667846999337067232038933224955808456076899248417339945793169889782526158846857902509252859367094669333564766420361433565916630815445872193917341266502971541631077264062490153982019683009609629633121678050832577607444184684469867250310753906827592088446855272778651743545766758778353786532035197135023998774688479881463283325852293893239918507067804806991998154365158356967585932183398029531192797930461664793359741814111410375648173013493265041304157598895913285934385127683119982019863214055113095629052479061748351944654097654655389519878821014327959811359242481143398868536167192257329484975279347367552284624856689094331630921121029033308079003113906337873667873446078661285897790268160783672893297049544175214958534138591047048200126910477274413673279180494177157688901959981294007025193287119721331149169395444342944542559935738854538142797816804505318962018228778724259770628403567879872675251051531001232848199608802740774720820387785302945505307216325940750429588880798226540126915880606140331244207488671298200857776399288903389274439527344132671578238120382806885515296397277610869562900832657010733501499865149591605883724826952324290630481356528947241027890838093094800160670037811485214139236737780517428130208787539039006031957195751459971675143221203396481696926696433054061068117836399029330320540097891553949255826407752679619356100518331795016432620334248471268181219959333766810349290777557294865566890097652215852128602711595597596350606940182916487503062844734007245245895667380926865964143698625360030283883688992989744459769821375639357901759856805248842075418934701561272256864845177575024452109585914246475306426725668642808663123778166018638426605674551636203022510877557596665258058638419449888208282884912129907238450875933250629855989117461094981046751947350236888594288537865369003330589585370539002129453559612175108363641776770477534497184574394079825937776720734168688902473798540759374884542125834351426503344047137070333657159972289549117490087318244229130598812775511758095038170799010264076239880593379540632643276793777402124275578938349494643413314782679874414665545065872420064995456473898265795998512811060242343135650051208269808628093817851431304492455942233468838895976218363605107857555504133750144319328407617940153792467575710532596087016419451336198019136801600815244090086828501820868420466971696577122156229928497238926017337656693980139579543695732358271346371445977922144942984656760130091711318989558525440376308516403377908189368175695966896714932983442743873079394623369255739638115967050214672247413171254846246587055197784182147420595367310720140450394805885648144512478250406289022426161682989040389356539271952658897445001183724829834287074679112782232632421050806470802481081616916692230376074220347389085063313572388924847774037292364946009820541287233195956085309603487539299624884933100229127923482634052398759292781100737198525251405692223921174113379583322914087764540053553819564077263410037274607450314118539135910885751788648785715512599190815001524567830059234096585839952084794285783146522827378370164684344703863660248468127573659339369806362181464240411119576969296868601171365671603462460018306505604480080574724643737519317849466445440261140769946966345172347649007807725198662860086823708623624299352161269772653736032463478385067941476516643975507191798763013800841837127782575204460050263698115270678181524972927853083483222535463404233914914799984045983766886351939382367925962763481961453362505444940546203939500197182539904429662104987232659499202550707108862144454408096909969948150866106973282880931433623796997277905928504552408925552287544770783943417588758715691394933116486068939270179795202032996304072805714016477061334146607696507557223122685941067363962256018127066795886907441233914444800102337905797364136096870425402654242402576299745065999189982251178676613965792348324762583576672074738477433795647956588652370363008419369749404027230675630721997214591318711012379092907806769157289849424900418189850760968601409353751137055711769785310521336223033737351809441119654471366527145994341838041962694540331673568330840133787508982244480499925917494188905214245276297857345161660522871799286050339014042492873784625304312427902803053230243304881450067677630558320065512912370168567306063115135233758904622230119896260002052404701191775644588826530536483704381368902804084221426124029640905738482124782632096507537115940177100310393369958127836087243983685174571464612241614255999315231868229720165270202814014474234162817196970381668775265440670539234535481212260704115690978340973237459829972247831667882170919369522060172959890565711861519642746772373059287757342337908975305897669282807972022059641422341620941711866700674111832173867849211574760642686482574596770169106279474318616785125936947533309193586394906595984051074745961267439648790264961699589124659248198745069522928709425135614650714680237008919627964045512386180795198410445038685303228565149765951732337086765505399695282608136806684729183940878077308412600947131544267574629086434260421371257582215467818155626384283532565064289732519415317151850585697099132312175813259423454645077240196644706664666056197234533661929740426657648695875234149525701240873068178915078460559545556820349648799877565597127230662855486996031165425689892486905316413877290274697096933136214974228057874481327237170218244795097422041939200698311345351182112454694454434176606387421030405951277681477556142114753988002033208753999648542396341953923069706204628875444059329583992721473862585875935172232222899462337498185307857949655825378174145503606479642009743699009115566436660379971752891852634979191911402604618236438031337981918075975276271244729642330916764628400229074274364845536480488345473421956511308453190237091030931235077043205923345474293395555069670889132514216480803826814219322247553862397253389007340494363521892811315063090572461843315335596041964001814546502800916978289203273955294189574020833333891547009337707373838442726441607794141500437829631381067640774072084116676122640564958845353000227736152142375376964991066182716374775790186521895459035168902835489810183008229944627346920082207942897795191289529269257067576116816712971587901849907626180560369397085851834630759434007310099408682650723449738444534868802309002264774013666598284763219555347213175428530833903240993957971421958979567723611988048797449814587743735594302683465105887610686834374570015904974238202220211995699240516586233788965792381569975872793884019172079439404876618352562325763183968025298586477314401929887998750627092960771869249978722481389229744365843967802324804793833521077174995942927449710173408225323948075627097367416534631375703120256311517102588951652653288864236160662817702718891023658872609252078159574587844812120836031620383220417676628880523439543061263054205898078241398920659113783264894896288795797104756329588915294099137677049642540140749629423591958887423973299248466166395796568807085461498873254749104670949372742517898077379713827960809253139770399908232360447707552361355292813653119816966821724047701556900402665591827294876222769410005255173003719675959895381541395911504457951199258523019736199280006286828685240482948614467322096346551264257881446836346460059180153184351287711952333082318875313586690796530656336667095541009777500663420999064233962731438363722114013735768711291808126125013602338038998214053421236881105515748597296042002559102860845529597107190282633097641176274833187915680654579956925913492353384827487760134980358683252254846877596852212455660261314783386078338990486202386831582542381015782007527633419380813467514161174376052532719493455725694332638477284529202092618173396685093863097596442663288812086848068945113633022385559851728048655319417859264072420098083659227562599184291171482919857433024386204290438445305794914767190526766845841276539747079063229057219894585138174859354754210398724513269873546603913155082826907931808601177379376008043271708787784494776286432113044516669709499488137484727685845589622707154756977362392861455198772924092623095760455024704058407491787203200855926975806112813762964813979045475721986627696397699106364578096239788230341105176184242510705892124586835921034110305784582048142574700946875346467280134850276890599645259929170544153114159099794292879119240772704898627931051301697662386774464562590896260058393960751933233043406410777931832276083828803542543176234892639457583675966658259853434126250149267003687816781678548050247380786941083300143211546774431763588272885883901190357182115760678295038820216271047710754312289550011261932047367643833910475139872679785991856937388715075447432089164736718430637834756326422949541715388165624434134895178423384141822704273798744656470771777169256633107351633107567164458461125960295431187866482885354940033186991115900602260925954228303004552484046286200879971953851697556011519190313613272965455441595678031661822278209415569281311768645952556493574308237540241304543130202944256340912430682731477286795035229887282180548256636758321550780910485100485411501731996014279823652291577442818476949630002918162725411825885356117538151124197980005952450844354479167686452034056908279028162815531514509566305122663798621009257888799779739894524433215419141389560415586381545595307737225269622069100970942742393816200434066583429242668868037157032804061364692693151627615381804948819077994813627563614129785068566856393570629262169933506034538931483336113946332710140565152451678208108514875652414912793595684098743454969358325529641766884279686539541560621488687776035914478950060026659713107040685235342384721486489689341364047702583529792979879858990629746990477543918155968129364664255267873264769467572733742070366076639274332510980243387087949283116666544891213299416268478486348177033579766573127492455931476233543845355707867349803346685296078537955379626593799242724710475053792135161042983840571881163414321127224465096552924445560310190532158971945329949089752028655497461137454117572348371552262151347695093336870512753893522461911131068686001598739191849641260602670796568756432190023215685704644845871735725256450510060393834198031775338725040665146155842848066952589092105712299949777941267927121762948722910265406493708488937321052193129458167188057649812844333479928090032446330728710275364818465306669165045870449947656604721789058558985291765112686753546274429218554079085021579016344736442485743576653150101128387185585136373829579968647589300102405877578280286177443357431507136080453290937563071875010674001079037417076169043671602558532971138717314395549346853310139193869048774657439645672536789315105969500217407662469154697856903478580284879533892437405641369637978835047527877621519973123476993842438828415138466110773324638134048198865066589889599712891651360680165514043276009212892610758271900402823599348116460887844528147174752635654223369692591173336296699147723446561488472595755965058141621130969322525978057517135400112938188262093992820900474801742058050405973871077472399369849860546250784178062556890495461865721667631650059005891924853195724891735744128322628219932767604756866587746935881911178467667907612715459316492125825199545772365600034667167263399461775141024156764168303722241196908718809713225668589897357097767458523596383845362367105772615411654862148540629979363745928696799022225412872874982916297898355589249594151544869640206633179745166986300652488222209339025093265062395370358681105060300319918569820343408469813786569593127733591829645100412921521214779628369352253350903889786538937545522829406978977482115366793405158735019453894102168774300500968958655439307418157288727274789328235882269421300466165450302258763343650938989181341653561126328895503238521533159321677226791976618011648931634774628235495047248502563042137159779683326363527633205008313556903513293121478615269049282400670999724253610057189483706125689534019584362594723128222015635257051836273046535522353890581984977458634275825209064930409183973337312013429923570294315252728553842202319806097024520649633406896173474673852695810609867318102114397128752957272848923713252329968794761869643338713881821847740226229692214160257196733372332689128969068625062529798719482915520069135287932342697226302680500109366040263708028424528562049060796655602898208111368818643246181385258088029563823003289265110017849444061750908500695204921481437672525811864942522526394875643683556111711815190854146788402704104068301127631783449831186673178758264228052856499229009641535799488182165005618022456363831742463377628204154884258959454190686324795126197030898768269119473984412986621087940086040419352471658404461515166938110567948074364851500282551960150393545731145053767731610768527283547139701791808435731439151483637946553482944237396430712070879382355904913487025977231833865335998127142406723484195737451189969946132899758382625606742691525431661671985716088947379079622885237624302766743772255235927437371378480610814008624465295972012717597878931611389193837677293085393954798559184902424836481533738606098652205263953106001013676296949843945062996787785584496741691879477407165935602113638332605562531590548989211218499907287241135030896203289554820197730969312905659506254977312764085600013747052738190889581718546452475718030565407957928157324531985897157550847067389410202729203690173523232300733171830106130318009623801704627239916614896300066634630555459022625496560032669855107464004466245657517234180677689435730003236024000337783859665379696942987938356765823744097165557744946264518157771840012066645176734022585826546217582932347406791369018013139874233462371230861627158267080949302979656660394824666182995943106531184379315266338155793269811889131894524870780853297765309726833493115646822797339776314439902081902614804777807884869578909148358581619377945693998223786981532321082828265318373755774311045996464102982548588038979282208642514059567981389046369995069392355480102211849027083730379011365504485459406574716848474427990552196191705507052052718399640864249394271485507469940675357703867152707126856026527518399730065572293536292877823108316020656440667569376664203885513925065048320635574350480447197469690849432941830003284208111647850490610814524954841892855829005343394231482911260994117583439297008785320836445559012596069227132414427139999688164168715081196083205390924409404349935677258774635948400040823206357850540402664681001749851244919042463764017218080405929203843946841229838128618487065579062383852491783440316852492757346114531234764947233388255411782674677126399016742872078827786165141299931094265793721907840010173432589462705372088395216734325573297556075054099215991226953662701232991088334146729305001860958617758429734698091080506708933443195164078545611353528468098468298446508592364662732634071744851587717217447823507719924953747620476494843525941593766538541332878305990531545975198501702766529550564754693445348525757438960053885824682650533626094430302150528042186861044387405885869638891349016920121507374838164896357757706034239048191127746502787613902651729907312332222050406585782742356716055247010845903152742370536608054836359199167351727165038549154945027687278178115397004183979094772433067471271749461887465462897888236337912605542630788446040242813997023568818105039362484571676817451319941306701194484969082307931350003093964800830892936840110076178286301688903845188092519121297961108108562023388115126296260210741574939552190611947378764406872506144155631513625421524633768933953866553897634700703685483571121866779366889917359257382725707403607246457200576124293887264023796295612781163304015165041490050477856328916649148418488465379878966236847162381623500865527296265418152312099649896515282104236551073372845242249932040000690558606908197977887459169637883014690511763095124692196972428759991262629772760203427785894868026442178670385351664666559465917339293979858258592394944043206518771644791131696074147790779372624425597712099016727171899320834374217076886631349288748419669737157946367343330669066202101532062676557903394970121689077242710442108757663135948903063675890559494163213951720826471625278885528357890334104505859400750966722720047477870717187640956380138354079773497037016105851670273012781497339958289541409281384140589118179199096923094902121046689455394471170090097000646666127874179564873061897340477722032984639201105149036276426103164451517386377391240737061353460582191611375056689195519570726958576226069254972166536239861059236114833914837092025548169523798557063532204695713961547461802128716408702330321917604751359315393675160743786822984341739720647712002611666422301022073599245684504410323549321265856268303198009261055300208879921056726734352803582984802034422937687330585394809079087379918288264656959721720807277358876808600314585297003705082323936610665400857467140612082209689050359886717293323489399875592543268677574682644997879921075505473239697929971475428066182342864200984098063834537919637620036311792725371797423353648653629805135268006709018753265154624937087348471084539181357078596049370572040158227593254332767514862862825283869895079904408899758867159338000902048323843070711928617868307020889871248366213599638282629065358936782789514949375127713591704661205740542702096989465625456282947119490655176258348129970636807507646908118773216738022502786159795621789658746482314859234923298256567284337589134074489408054523186849721838192189414110815435061082394752614473481889450029228394276631832882032867299864303184107337091432988236802745520502937659609436538186441591865405510157292036992011093569363329897137137869116782526083230991776418823056409020765469719073265902503875184761377911533981877764373018023467892771742358916125605696961660242847011892218570560861217932130969268402712736185861472296836907124981083920730582251133002719843488094713828946380291960028065768487267101556888754891689125617007678817360750970735047765029951757166011229377346634432623882530636174461994273606438586021553312210962035025239997924493685955854529425146257578314508411146703851750032255830948820731769660651472305710643523485839729913417725248187591833701328607171738208838821722658966488533038949056819053373196032624241840823605342339499624265003274633117418729414543225604614318732449839093130420524315466315765869766131603168823977388524361559163530151349126536253840431594613459745386831425534367829497664130438525141820572538769843890199039752627228876553709436679146620016818128486146679310776981459751519605101269826358968312852833866995146324981181966804422018084280559968137397574472127120069614739148330448028942241153871564007029754389465325651523617189972901320335481787686402396327985605998675567055456250302518964724664689884938449444624551600815217396656735421456193788745464671650323495616372701113527699154161518878687834744308733160103365538011328203370217316481586605740519125182497740794677257894674716863827732969499714412004715104878845706176504149299084897112653014290500054829604961876348905824256745317820506621063281309972175992485415930675183150960232920645115742287285967825971641084777017028427869712531185400304607002558666998354749245072707345562430573228501191793718654302241302399965096612957658204419786554688407729374139182131461707873681879940483091339492897576447445142588901105604648822652531906125167303556767373611536916698849448860611339261822964376371422785936587286064122372474094968838097928515559509720360913721240507457280312152200077906463083777678454545520142946398173240700810691309009511572024564159831562958951871076381734421460392588717711033187549524026168292122929414639579924406624208595835332372710680205955899025362088718924349222479866666471151782904881251992200093847023974751254837855570731977781401007460769035740032731160635264617597607691014300221414684955728344596915246514285634903936859016196703292946746777094556323674102393769684086575525765768786088823877941469235113669073505132903469374325554863886300384144741962637580914876075481860606753181645367141228134976699426133035504552161245178534566605131147666861337380178813369335878346805450101853060400456094705014171027855012508671550177746262037772494454066715696519027926162673025978160695793067994680780986761573489103414407717985070827035229073224755285187031714123290787165073030808035595326911409629329289911162904519004767322609907787987437460164426996946332876153204769538407985355029304875461947053030128553801530443877861570888473139116763848091250703729547473796633682306068556714196662309281162133251321010390121075300938267271301452833392720031027586950734450318471146292230787944169136401577948028498744949856157031058572237724204328490023959083718521050137936641394149540625214067899045470917800893399370415471433389197970954360214304112779381348659277251948576385655202161370840670015231662667930688593434168797571780901967250872755812664438689394892448653719008140473388769057206070810952178279376301605318298873841524779261803380423831933028861222888121187180985529741523652781750168710028686114398893245908620615189901358527396819152684360015635924115199949249832329681330284244255043894835816474470303281380740113228850577066174149385251076456188885480968978102474296088271086831189523991227669191618972057568622926420923325336516241785284305275293245558484246049298207881013733570390963601056289677536098004107056508777015158096996194649180943480653289101357982444017561730264682409918621984334011232962431374234412201698913811026038532448309885132690127825209788266327688437529302259928009553936101466085151755902444937571329541248033666279041706833334807697100600864712467704285066634099294331047378233533563806120990230574261079653902022200078367766943526991538433098037157575489668076080301388711922638022409559227192639788571503671858773136618605138106875803618726615379024508166468628747295409042150003439253023653439472493191442097325349301144922370683443793599604128276758137307305003241304305993803879963832136185521451322768906526557694799390160420377396207165135369891959775013373045480166817640543378577352542760826984577843009658942051990545355504946324237921002189678479882185550473632788972870028314443876083240368231826171327995410448615463153140977830514099241357513248622812393000804622264890542925394687710872995872805613345938077385227606787181783596561060845449484420662645147313755982388121057375381717391964120295043150997624645235191350182270487738306435117301437217464017883273086525247614980100700477502144248247063804012709239369381402599346478805331255434045043486007952989472521835737084837723929715920367290711784939201223147796802182529123758811532291598562096680931743305936809635738449796273713063084450152084928506715607295255299944719582321658286440367741370152617862303076091719140984540665831360846506760190805712326077206066166361682602059151417104878590042240471460531646134814403457359874548295045986538247107645171943007266903799048982461379761208816908292190578222066677444693265003704839776884599559402960373971173528705317887709473944473611504961858610773068428255041857998604218738468643016067821212086598766068507598893580725225257975708532479663333965641584577223778315268344102500715483047532682454556328010897671465590123174189107350802594084014604253348499026383635098521672076847764316166922964460926505411821471478477347092865156277765844972228761946018675238240910304135131825768723028784913904476122455359682508496967514263932568595669679456961399220722773470307035195207186100193659860622077863717582955028188682555330111306240559980499124014089222824718771535724865329776120561893878649775405803092143834490763970498798975969779705894020438184158391486716414131880690529873499251801602724595357718010592512672134960490873524967080531199192003616332567186472267537128700970240364159410471846160042852737124199049719406844728946352897092151485805904273031790321117861800888419666012581204274289021989372477012675598467991123823265995590202058071629068244438121628340390171988689324798336519575139701547545720479901025199782887221959897061413833255156304710829975991486979376573971445730604412521580511944876085508856943079258484734083952110356028606073528887394122089648618190411327939544802772212134182001267081749557310764922846757521265252968811110082173110651649879051208619061173738630145619958039443934546497619310065912537161766875575304346335468412629082194257374599147532954657967701698633671663348677375193522809559590811131086767087451182028646838916766809740908921510082604086316780609857372910993434495614706884851448771318882817460725045824542847363746358217996492388532429070563446416889792981551083710835053560100636204661474631664162205614291121698303648810089499590753595223389773359814984687815188245953385268408487810421179288948157099703138803280841817532267870828596296012578315282041247630698087509756879443333927638184391859923766126702358826349779645814710308637692440775286531628705911558480916188214411880996974406739353698616262221019499303871040136263496185140628667340416630254419215788963344456379145758388798270209732024070975717271764001476723824887012334192871399909624886670299032290825475884606223490795164849936780151225507402325536713529563064113661251992994668614695461441277585804376460603442155612524607963908287438729771062486043153568343995979646544286688694621722523625757795398904579174026062400437470258283790938722539044990434556320840657023367813512497512843333626982731872633082598438995645667772174801140402583443064950516020315514227883827450715620094922366822374979651120731475507176714187041679258708291513405840172533887645926283202345246895094808505411286173098588735163725679781891907146948796316882933064187802445974104687762918374096500836785600675759924126521389561941147813204213162378326147819506150728334741058475459950998994719657624436317753844338927441209038781635114628729464990136358457623481137767410385042432801097828164240185293457084178541836898502577486024499910450872599660889027737248733376011692781111823598099585121299455332875552642742076811126181137819050847677279609473083108373750554498887342852365133005750559949123149053393871329120118675323582111776469268487846632765651264271800227782637858379008056254769361746052645966092032235683228733649648457613774775358132751856954913387607775665053993135584375924962301978124397485215275859261679754470924828198347863843557690930705325341596085438360609033433302379837025245625479312799503273158982567735711821972140068013393565964459541166267412881348768504887746846436904654545109360646143801772191454646194241650464310854649443256476136781626562185067452568287587205611558924114202792271372745658132238585066189347464080422649087405189301900470619537175911526165744228670890779887808624822923114556981606479161912419874850068191464189754970830907508266553037478471154136872321777511061159730445768704147286414765548624164647179438245620983724086473871245454226229380976427931263442596256660586094041053088654015804676639649264002859027468932269319554591659761350625052712499691147686894601484289199711936504342902897774031648939312317580184533833014907758966429099557236394403191280627904125091160451502359478116409783079787988340379121367677086259143496778929780605571284215614610067228971523952552205244043287826505480571709956803243499951195273294928183944044481292779773482763806956324963748985545013362227543438649276713060435405658266263104317093873845607594504107714931997072843267152656875427551346085922274316832747911295257781492134181910385454289410188591212341301568119231500554681485229493764631424829533257449000286143233896408270011863986106005909236335136186100562704273253115218892535756834860146030500387011762233145576119707882833150551132043295278193898231590605029753170190130221204922681821700546126585467779700287499583789316564689101296816888579183064010850978182368624162619662226044525072493414346559395460768156887929699760166753839542059560064271548789355056205286172729943609208434413937155229119767105513259329945542416154433017514176417940643019299077871144227452231031400633679165109676130094916636675952991945354811216370365122504397399634255103634301753871215403045828390289634907522410798727262221237217980321786751212966088503394693944056616789655001479000591771763639219688931350722533928308519011373912133402965363521542278914329845504961696413748464133923407810785865852850681902766390463884820784263811370202791894604709183000111114697357419609799500821141511176802108176031348022627093152994555169351679382454129468067049178675802088946149383333222565694126956108230227326764100372874631955414950923910441806893199852371042890084282580612748873796661973851963452044348649244123051239843068575853511837472644438959856564221621904899916334099653479376039161405918377942336714209567909216731727523894873896261921902668201605595019116203718350205212407278083345371829843497675176211511672991960510470259914777607045745749682737700586141044455085316321803300770660044024057709698946790639706234077303534115931414280663523347055266654378781960960976305524406760067792992043534836052509159446047619173546690530354366271207962569690543309645208529689588732897855988751571566078044823757374796256723183326623205293316228453411083965966146893786115505125780946134785544840272378177588227350227022877175880875704585003336693054672847557302588042262841581685391069166858596630858373702764763019726844296772370795254278235450305927449520986101072916384814836778647884911136274360064585299489593852989713452613923442283281058908405378193878072426603875637081886180964351055320738383959454184468187777019140921567696438665748592596677237225333496577248494096001869514144166863482931835082793912176382032814466670761681976316529189546452921389368656083949092040753849432286582269584675489638155344259005668955640943833812480849173269930654201454759668234302215758138690775612705771860217017349013239391565603196242642351902251408581880149574031460131035151989667492760329976673930077131671269451448207989017266610639948356484957600340353289830360838643522691679975411746373037230398723127768322138091969905299089381855960409483254705953455786459364335198847406638155885757946272529543971319708301875795377640257965700955854511339654463003984370625633947107632263329832339376051698068009587752787727936260626420348616831324245607678636496227656087976969694462734496993877520763085236930055516404998519416956177377264084852831781145129938536089559227679556812730470315509340876152022619685236808146820818694578818584868900949517461214760698372770847596508766402550571982660810528503132083834841273669784285546795932582780159652893957097687880205992008431540270111275647376627769617480126990884969700381516725598234316934086036666842602880970614888359762636039701534646705164592064446242084390092831262177477698474224435684060544243143193318991980534748324379980251761593984525399458402739553473173215363182623050691750323275240751018513801419994068985625817918794703217243294943761859372994526860622585566467002916991435964965334575427402853964694400340974146537499058179114575972095908924757793950719715762922557240078854883918486433661135038156879691326013606111880736362781280301849124157725103236532303340689347323383904526590750614370312949453096889016004748194881384754936516028364126673000763187324115844017619948303679737133815591404037063456568204212891507305206693971608538570792201544777937722201153062176115956129440291327618903111895136331197880894750308003723739932174487838615314812695292488285850120656417566007194827680263999317841055729154394160661974915192531075785994948572816486171723837484752593111444773143409250367452592459096431648545544875594026338644707466928320254066708503720072231560527590849365647153677819242496963314915622186048881877487284341578106697837555287524836674040637462474417995909584715274003119514854159390749047258298918871706464515020870536828403937367741327237061965163733332397465428391011879455428163220600339047840459758530740415507298535819653384446427844995048868096620096619952723239792074251346558598144897512650738866132623972378102267622196124002731563311146913318139179142937298556935515567750766148372195020250583912442341928971175564133846452598394310964445985066722606352563619060713955154461776682250774863489800157301773618241583172135502026882784439087765350729589835468172587768576152454408925404933271821404209902140960398993959950147026803109686185990496604184537334178964856150033514956322296923901499517317615071150409329477663458801395196947171870388142134605410157790118879940011417979540662942016872116255069036648765177149008158975347116859738390445557729478782803117727578280951021541305991131117756342052904381568555816440080060920456861124785161721344631133095552992731547985840356243155173574957122961123362869608519792891271972286377354542757081147148609947951822490465393685252647963989633481902254330747824020632614919791881493809514276552309031407206957893303845026420397753730615659021282461733906468579772867757552051784819609231797227018290342852430105115804682765997645851531778045825158687359484380683105296937718816904852375358885867414092941410777082969158240825802288273162596135195902550286278949937838020599711276242925269288223313109290524078056074154917739503375853312770992490986046603234454961433172275018146647347827473250227216174603612355752605221783296952709955670308135728727985456967747220687794522322000139254027542373692137938188363617541692331328039554419525330324167442565922130788846794012225037549571641587988224029892822841401097109812784489384977298292457852590059867049770556506584657433568893867178208611947767507630858894386450166260819772861324590536870370564557316788399491072024503836807594845877292016337584528247438535833522568291218238505157847782484831848469869363198872363029041882019807034281407158239761664552677445942934051880190204812211251713891469242436013684845122148706769758019012937755404366958471567464215718394151043109021760415202240503436961716085636669291096378243529029270389035448743000143212930503467120004178911551291752372581065737091044497734963312110497741815301205925656846772956239477956708164366206381571560956358581553703345164874098596378637837084995211948711824664875498195053097027334205753409589458817573559432064961191342571856231616068015254174317070865373647635994588772269652778592725510021884202515838643627364900371144493605751406810866860722011730948739258629277450427102737823915021812607402036506492808128227133576695190217485904928553585024465044385346079204944276643592397654992013328097946570882137514326429708743027585985413105531120610965061557553657573149614537191782916376057073265135972309026880155007260760338493937087157694203857960715295048815647283375622627571411798523889287313395719835656362001226405621289232801510415352781530353836853788888939618628767466678408807059027296526454397099241714483366266335434310030698263813597736021623683938929714018853140334715635563843864849545443711677431332394799744873856149637187468451207333442668660284041800710873933739694712605598076518471129906268857043936769161453886007652215922049957301522886820327651756927629372968300292017049564607797205256550159618579978642815213565881375675769516474958001493919878455421508971316823976447988712322761808009652837729222549447311967204929061754098176340470081117204378898630159593648966143277785950713583305314105670391116549345387667821948185124405783812315112157835026250403882054781153265501985263960625037937801838719893249474795837276837391305118948374802353614999605626530266808337592100205472799447026890551848040226127201624661013157529496256074618078354161678715111475210162935444396798741794403863627035079630442958020030522384217362124758111660787410647802380675209039639611249388930594378008497117480449230873930088436671270384015624999355422238158868853730378710282032146714829756322282167624425010905532517336401421345302106454708393496465924235760871546989506263881968556391847884833723583736236976592902318554644792258320914640443008835306211641432996623942443893948017844535838980217996470831783265637753925121424884653667595815083887610408147543887022281997316802821299275915747204628624636162158959548421281292325765210118567597679004613133864783867589198031567220649841377135777910465893186349971080450634530162168172218290315585166872976253963825959610975186216716293112299166510340084931052331136877405744508938183683384373621110696446700252785674178622869284143859723935558518926087884269118126850722555240077420395564186159899392382986471985557612057392664298152276205730170269676034233118378192770987802730478190198931876323561072269092728057429023796646022731931010191934574523163440185550342996331706402929727315489889665816222188728330292780052753250008496320645085700202414588404282908848446047731614482812604231136971970518000289963293905827677144316622882311236249160254873055919426506130436829956061589519603946834415446716431856595718832584760267284609271311995979880512033745222605842535753338771413449042524564933055777057952421795799997637851866245546913081885909782345456447575699862241915672036363736925476463496402102913935173947189781665518238740521420244827642729600624566830759842511793594589281946905449397079188752599547020048469023088246249130723216266781748906641605777153636464018232918877856767202245563158125122032250942876368606109767356699994950950114783885769690462199636503645521687292335542346579620413783624267035786285771958439030085633795420232872855377613505494364961030859811863152020170942507393487446272964105214993325497242920831262666409916290463693390890851623247186194717220176485465412038145835991022858943503537183289521142125748623381275332596289168817775189270477318939044559879444522024393148072600805438368471282805959338455721209690195431910761034805678568611440086987435416064668790292977144593442948964516261129335727843928716613908693734310270735766632617249649397141911165675695603044335419855122732382263047703187206867782305471339131750505067137257370204468869127855512600328342348383169722947635696988433484314895830642578916464315040224394952843039982580128890458435733961598662416964704605894457080321739243831074407784572874848598896087803856436940175938515878320401944078103167668757373582578572193562010077135324565840190147648072796444923423969517961431982556152381693961136888295686726968292266434056586763315544618136464627689565931635950551627173654728074348275527977058876142693117058046787937877502453941386523796410542466132285296120145767668552374604989804417328036789464295461061014136370126070001608386918038378169686681077418516162175538436079439527603456933617247462809385357435171191267463638681352811394685528036448136479196897195709187662096341739868097549816812003238428074203144565639664753429303076519457272647142807113146734689665619829911937714863206829783893835338335780636937281581763151890670840898322381582193737190595245344774349781197227815639557286578646557300913324017961463164278680370655836677612818243026493082465671952878147089762880253704240840103199725287073375731030618711160658072583112257445553790466030682337800458395738719785293174541555309882797287651650113860192282553999858613565358667770644670003529130414502556838409496103798845055462757717394361644636823481498467376102914744633633180912460130786823424801585585634900431701691646995462850899895472371822262908243979231099231581056236889728729428556539397123500308803287755071425327184571962005490068978478180218665971816401990143681926314153286598532243865660099806431944552600322234754321289868487547189946211388290600312117858442084468927981264976392596328874148389144911135336970906328837821380757010424018917030331528219229055727291494259481182530864693683986516714108815879108482267062400695263084094064932701645940487757964825427874136995740749266056168966693050322070164669340410105978225151943363632385541027876975926698555724275124221572993330843085224563498772129172425979036711106355787892367129837962343704673048564352267580903083208663780522094137593197299177037382585224521175743414985595725833826740211360464009106367284058504063655934123552508862593693517647562174825977932045529244028806324703695510389273401701787486153835811333052933484119418230818685334324043656655392458777627809536799784912262968270123032579136794445592151907084555983932334547057506461102329209576907785064085186657813890440194255225977275865424336931643070622000990302892649713045754330056301891115500110951040352804599411830583229460912529562477464937118945400621151289504195980400552506485570102035156826149877534795991123790344201447658784572609342317719419293983169450221711070081007355997712759795795150903146782657619882684566650873929691990523076165760602211709114368793851484572638370547222819072332277975738864753251409794589412848408253362860179292816584551108209652220215918671936945134014728620353724458145900400018598486870668571155652370247457115543192287613268019175004373074630518393527101682877026805814885984044130984608316399935178208724569100023059538282163146121620247359757907529254386304708570218780369054776397258728698885779549037629978915979050627368217184529248160817477548988781299754186995057453177522211505004881479062371988341311697391359366704530859092484413920864013016938452727508212807351846497007569531643939048897792026210561090925095431173319746908261468613984013955138133973115746594317098801431567626813292506145890424995514974240923655191287534735961505631487576413116975827444509007382702859106086147728540793164903353727656268091793077888771841613801706248089089562201821405926368679070699098308173328084127230210920084627114226295446637127123085763348974063798783181109247037180197049667457481013616388461485919347636908696744710876206836664782956106421919877625394988308649210686544993259914830427026897113954370792015073240823106076261775664346259538589384525329038794282072232583589800573936600031726075982599050026225714787256677315539771373422552186519851035046238395538092364512700611717609506635894783944796844851748880407945949693519739791156145309424383495547577182898655992611190506723948144560430750670914451360728314691104647267354930759977459765987060837299529419892164570131491216434253217602649301617101632501784130411252588981387025621624812368345548725482615930089443967261344052155377893884831532567782188915518092294204089363038646351467163138838283192220334960292342268283667808681367988154798068089679614476541413909146310590574322329302379844628632827897415773722353493110004744744255835580345240183348042950928169202694481107879665470627784770480892496386301357057835008861220421235982018014515030636265571365994575229152686378572506553868096655574861582926229072103413072501802306601532471608480048258609281183257374404226941860091027774391427182529506619410989035453603360832198028348719659084285202835178294234823443187820893440095891782947555321961406226411186125151501819120182152129347182936454764091423436338929308637996577502555982381010598588178822343125607619211217244532565556409741426937014263777574180399659542767215018174624954547618934164712804828331426093144532413849055344642275451000901187965669821714470194482007972220004911155653668319938773712003922812896372328998920684955936614109511059496492043996757714013609323067807979889756146296978463961123840065860778100688179139672917476239740251426932172547366211504533082022412058918949666901358405005012203073862207150232533039221170478495047575922303271968217805286535246224424093347816446321466078369954673569378650893019610357447152501490814784832600630476321598881946955934685996808810970657535049004723403318132306820081110398955969848107073566137986008496043927897301905408846436853348572816101004451239022387269201973108672396763271258490270681613414363880248304862385162175048823847059064087391336392683121052981257461897131272067668350597818535190082442207123919852966506751251137296493952426827546308102368799162624687218589628022801231227306994157166676106708894105048734010537141305336689013809993415045075050928895164368967417974513620739144784711367375887099944936026213290473818486929472975169680861922163192615719489566980789007917050227766729377260831235770711101097534891620629073524978441255717004888582688973644154035827139939458995408436158380078853023956019710450817193306569584957852658369849731587869697170780302846694713120346564658055723368431797640778409778735488266507904497566897316736820391842007902435049502202785566768054271042141863295518138833397655683002399095245811509824334919948079611693568459655092906007546243207297576631790791662085495156015356724171628351905012553205751517066846400258707569258906504144137012674406948519126176922809331772631595688496477405910873954682322222679891318576611216495657091278256819562549332094476684394397838768357429772525902810368504173310870955732689600226933337701707732593831185132762123110519242844772736565937640576447969822614795968235780191631475259349895264471634521851904940081150894238774790085801416888440675865812001693549734327681539518232859107858233647974638904621877634393141378568507501528773099005140556051653502753410346462013868185839781130953470441727109926206865956039755354292519635258501326555026501651612546244282544378012954225819156811637512974437445615413615176544936480057934954163995858223669088780463177792953528736150008261683917771375966845980183244764318177465592636892090259473262365188182636987854181670228465490501112059138144777986729064100758862016336562234648511744571193396977235766539134165298149864883485156540420915471482197905128596477463532730078384239837075765433690789537468534724642772825036398049743830325146717234134215704304974328650674456237698510652741558926863840457444653331971866954291680119242944952971507584484908336130618097436609508595054745636653037601658966008058690108711161008052592761655527508460868018486622170669563048048959190524445902424368061501838183557617211169292165682481807632648301108858332356388916108308383790583690954851042230476777836045914542543137733291126455787423710907800725498481198379995059762618602498542998321859940043179236397981002515506878335552052088858763940478444047241657486850844362862661255651219897505695971958056715804789016952524693309968657520381964470552676571131612399097274700238297219287988472068158798837200415344973673271711597428017771822029729717691325123730196522481253389000455882465279644417765919040936910008058163208626565200366945071235857589672481110989955724294534626646183256080837537608160809916083562076229809243666259577457313996785733549155440941388859596334322845868258400565871498549311318360895816030914825203586031104857346291974285905765363978982034515351545009120951192663224752272751769847012963920212832652264728677096121289929399823644837264408776963478907775203891456667288832448659773018621174118901724964037444573180940429739129830525358544770805439800765727059085179906588391829766626763887383533172758611983281396907043226080508316520490188867800137168707052980000423860473349511282275345856209999120006750145316961518588174653370358790790149727799878574932107120360899561377767776151051821859563751350843252722521581929616418085288036461673799592975994909257290053005856869744544498025091551162744683612387406180235924025798526766947242908160579971130297305449922147964497696098694519033102281276236234576163724584477153455118502074655062790497537587566463357973683442179615442423909140032823537843345601395740875776489613167532490104480745819022577258223727035916036032470091765928375908891672176202845057690347198789596872375893961008985118529646446459156041669850676780076612311287527716653916917284752407268388892469593721667066414776505377626133657247955034169271850262157459369521558113989550413290669067737644136466986694091021979437353794791684601226761238402391697581455693668432577269880993203621053426355010650042708109772928523333245949055433223772283126096447246562291768186415803040417922563242405331391702000597831370764088535864420590348483699043239399646185624517035250237293659003180160010487289123997285618697565798292341920211588575116914627179865220085099097822793107566184297717598087962233565711724963253885957864061975345365578764561733548719983596638158898460016578155214913004447707968960515578211829723771673721362662879355424739750159776637508974883061263327178643099036294737741762130340204423926844995487944191320534548162031208259670955823341665015404098893272595488790416180148494899311140288388249962085753847735110364163276707502771872527335429442751526289054826540831830374132593557111457059830381467662819770021393251142674084991664904476940227813412829813188891795502868268371370678310848108821639354357674414412518431546879164375532619384233096707051149102382244570107874714850596983644672712308716068199065772690213447894511665047525149055769847618005002398872367796183191542453893077839950627554944123905010145078409706657567578495691687233244319153750914997696377682246831260714281616801162682617673239471559091041859240311647937246836367379228329278601328616649405391055479791951104741714922137507470417290693762484898001474840889432522622952458354231554270398985342220752387429446106481706555445213152656634582699452698897677781923455164912012738453834279087022779623439059764316934040596905113721109417434679789126989025839679100346471566132613323910883840270438967551051069065838539584737421248663245612875532281446722844797433531832186849084217639522527032944209650080000331458922419500756112145941129402096767514780649223425975707094602033122524984581159852600773039470082203710497258922025421740210645111305740349485572407891218203438057301512935740733737123342780619283021365484164743349235101535060729385774475086164845386284740867955824203873356012452957431632248896054935328005226210806492593882353062031462333336231587243282708805506929854529659022448275086415546346218420404995458162025210315393874949954093136569959809540420062875871219040992704210595830067130990390887101286769681437517290654893803928284795227917185768640318239612419169222092889602714629120990827155549746900137590493180950965797559126564679936578041918173101956065640919471834211342319674308392478040262466860787154707587066116833420448293162179483154118992710615563421624478250330990665956778120769273456635200662678483814171150186670437128803979940809379474910941466962696548316044926049807248022839378265141935179346268887621963358993669642803826187077444974478722069915617953145094088887210424593280179865622956345727430011838673529518328481017357332360708490051504384250962209909725631207449957317971461070558349835318771547402557955420032344588681235282921866999838013360018174880091895428962011811090202954559247799716152311970721138379639822854434328665839251397089734878811840298176185910385864595120611383448948695147445436239306736968975910696758042427892562783588621209697264886939217512974280156016375656165627896274136814553489795002558827145592254222560417254787780462784544745243294984710667787656287613562626490613913719949741231457785068172328917269356732703280840060385690022112254894579552013317391999670215112237127703768711660279767557661460005169126533491923336206301059452685643806864046144308460936949075708786623874422829367299892514039548081039841571938818399297505801885448368920811586093811813063070629129711705810978576924833413646104288436759247590017667368824750068122735891977809644932778255148257052556673761137532970506921410014153750215687399606873277172210351851899204791626992397202284830420944402339723350068313755925470665215385052223473614557432302638611395684688440002757651747747290361667197702584803692586599416345221798809532544354177557097016478314372465179863554112243528265623707562973129263215122472654957775064014597795671324162620441944277538300907780424682153535446215246198778063825937437744819333452691144250881278877920476394067060602566383724324590998034018014782217193016266026739090778844132197818133717614581982973972216979177817985156830167531714272670048696166849517420889462930945445049015849067233777477100241334006250488292964290468497825153860943431667602806485119178720939149986277173034568906536982963059742457645948670027912749192724339875825400129465109667821338844474125090208550526685628785031734772483038972841480235480630231298552528563540538218102586611462856864341073475699682671406741403207665141711117343298399911269852344569811998128450863470396133180268226443512118616177717954168198328768280470027452395857135084927494924705473949368644566712599522803567782373963692457706682720954179679014078866632246760720728675033889126235441821918237961394203040656872068949102760678790599677513808188808083945370194363296214442140081836647449309218742617715181477205076800450624174342678610569209923189837902666795506152957824927363745505941603604863255392871427879932247602025288473327905798364533754654994042838768234889872329594973462329315931796040585139104177618096703750195705748812433032784372484837119944828164053582571734708642021851835842536925709738830020819773916371494950631250787131258021308485926212959750221851579433882725056126267052215375367783472411957207856896915277577041045888310461607484187858406864707506892896049825953815972949675024432653144049721968982032823597144398066915762894733210772924984635574762164967095917087244991327106815761741689049655323566061116442400467170199527092305488127442323565352686639553508503155677906859827239896793684709251870505602816991689869630154466476719484995317449636443689077896044098970447505147043310850319404343364904350002611757447354986680893623181184013123388873346735347082866543187412373540328338142215028997212098599660816291698365521724180651722112009132338531007062653221997058547869303436330909905677811545120217730730694390132903976593573666693821457366368897866090339486826897038342085203305821758792654905997052278757508978403019675948589093628607711560688435347830863663224537929104193425089870291252132975260269071317835307544572149715687102816067583737582000711547805615841358007491407141455775284609959358209698066208959267234270051952595753264176444370925299906866113814277616998775283899866674486765274398600304547035631972728859124608543210221987775527867685382861507060160334678093313891168230289533929516217361652036663587842365544035261257577131450891825040054275709617975642162941536654535569665863294701058518076805105959076180240021679016614716070054995158663144809991638833611103781816540965940048659328408141187900024275600796438434087258156263095704104697271536144225908764013287438568783724861285442593014646287138124990818993280344378625514375190466545766679390017628237825261818252146858085170112171990272495304571292738921369541207316350377347239113591072153122984709588292572811170635152888449545037997138960467971892362974249933271870261428716573970975831071516494766224642882761434712170777578310436018228895586173645567814586242771939923859054330141136853427767195635339005446017059109578010158214425785177732539704112993851713872312873978566059288245912557793805061639277606184636573821918527861049881557473120696185778477553407970502323944084121707859183133523222281732750398311566174760467662357165560052545820629282949117481388166983362444216115421120151531703037577632737564349482134915841784674428103357327963851995304889409545356579749195087499245812775794425843698260638053702379474638726555218812266012262477224402382365042468099453571262621866472083390318622211560591740024884756986050818217440192186083737388746219433123236483350198898834689650667806550504154712190934011889645792706232611817553358065374169562369799388518481946818887820480154490915436982545306622432209012694747085945728540250015775220451743565468101966522709253207612983413702828034716521613995171616954013786821066364257156513268018328801182434330779442221683029218865729620626088862037579128548804930613887314231218997737350293604370046762799362407913165939331106371259836524551343105439260703837757342723197966890723795293842662260388857857786206130298348114948345141061544450415176101484609711981993332936968483992989294412925242165972519372328663639762097214693940072347646375256162566215718568854477587990134634985271278818486117225310897542887622999923659794260800196253547798517540806566246966197678213200517947056945297317090847360044887103873279113262903861530134663586416373251497090863248675261856699855776763108668107111086958680627917274697512439637059604479878031155009438583591973721668505454198222292840950235877208904110634706573678263489425387217275138303455924575062058286449323817998906029531287557466874893927362359947176528372485565999971659864338181412741817868429450248273072502389970046171407796581200061456261225608286597500141813281446957220426072235745519337419465106407946162393477345091456974276273964106027061267230528268159582230802357699698486552257919848572124584567081578207544166056382835756687198207129668056213188561159288372956778881881725866008309033837399404275257373800858752048209101571136315408301642994025703164832294136790143219150975872535133977035225430235577474141866811641436310287478899790498842809488093691466950428984704614956861829351445144625403996306319198843948611086168863673215097756044298972506051077888567886311308870263631559587469546791296679173713002483289234547536652248636665742319507279857890546698695992577762084319821766160567791391301200062592816934937921512966067980750998092699876575490039826836472721968286144212860749820088590812547841297495957616879741515002151256615134782988898953513411830764157012460148493487114314392479573520307279276024525987355242940799415629243509370090982743173110566003152063054510561148184062448861711323926688709851990233494925480551587695252545151631217865192202816115198329456066841875703451516953619213993611346490794652439129290926759728533448752829387424735733925114535041138222821529612366177181096864671222167415767359574283835042395422299137232817210266195284115050151857882000903502272947713944501918027680490599181162010971746617416467726615948439759066967420897915019907717267005630163801518785252503405805228415580436053382039979674717876860999288706020122353969199731922885327969773746582978708548221569264528676900284561234756906429786766886812019733144417603406352468698879525107601725379389811441949064174661997370368942577889087115347825191422581284531798055972761455719602817953287684315393144502326882106133182070648587301682690418472125674601927277603737061484626431341069953470869298702444496721343317084510473607484930410415707887623209726256263518258758821153437751881163428186575586012721494870343955533869662267396026367479573192268480950350171256249873861398207874256541376682670816754870368011083480304999554639017703738034215893026822346243406795162746120881406541304867743219321733058426695471853750935912239317754462832254869308343529526083148266301221917347210649632813610050193161501353085725421988313194581727382894194534015357336699798452813144248389898497084346840702756116970608230482909360106245842437613835880178761481700575453679136882350336816057508355012028482839449248692313978194246337880336697956330105132593063694123059883023424318337315751231470220516253851993120547412429072501312640017234867102399410010916044172678156024364518134079346432171651291312432478536572318893627360668463678212861040114714366515747773364118344304847440138417425711511398186743917817545940432930758880086753615508930146911461714602988196613991617798530089235918141098211193239605432798940569806104273573902722007186070432963270640729740244975838474414271081183950090898442832449475970425838300233243184845185721832625781335197136240847442948197662033438449404903463221591687832478211762531967750355886731380342336676886536591873677262742418456543323733906770030372361070086388922154673857206816339270072250780265286598075221778136137992298608990743264102390041355225468005862528295009818174057166509586988936477163855884295255575399744519470675350282565830186175725156905312271601765889901248187737110112637195085463478158809025626807003143023367471304074131851649168959028177223402391679236813852085610904507467823246717626347803753467743170056962803240243055152487051353930616406456237023753695303585754556370308931296187304439881986508537638637924744150535328699241765070860490215457655451009974250553243272245216503363470678995417773228747327185620907126353033142890515445444970206596689501834729913440533701032753908214889539879092233368236899483913652865694581249301000383568175215846867449969059659147156818803289518454929188419363836439815387415890513662575199100693299413322482442015422921347085992416935469175283750207663085397519021177147373451959438761693932173807003235244008025486461765085950047062888470848334048937575284132456053379766104861924614105949426827206293944298244440972722769617546830426330165683351124462127103621363075370902001740247207328647704358355049925477941892784525814002047460773356912108550490165393478637410732209584167326193144935421026449642255415146935374000720383828432881901889499629755945049017489912798434489485869648798189995873622218360897685960976675355561650828781946707435611723990003614970324635336962950883717299663140662926735201318909048657022238009432393090616090835875530457117497289924890434440145158815390722295367171743783035579028031150787115410858382775688991075459080652212348715876487533885597743506248608224079033847880900785640334520095829863502298991462080912148536781718851917341129736447687886548943360420080167638110028344189530411445202167008007861747056029161890268501986550943470138049252785342965980338075332302272449261763070126781899844831162240937812268438441931835849917457954959803218949897199256966347367443333587112325528279626061647280867767613601388690660097442528724144233543983455811525209998048166652706232018627968385487953109427774272534270781086298992367525554730526298880497239074417736395462654826809228364395567985253547729455193918469633856742103512332879077497445716625364984312486697380435604685944843561233249124892806128633501268788528059162707245146283535841081130567945402537434230412831848663140977977925986821824666559769597996048844714449315006405243369347905539859483535596138844084192326294478269345459466917694064226556004139445825959368026890635839096559694501990274234500633974262692660025989382874111417545520564368635078134746187448189330354866143307750696281568306719919434567398736676889086084587409950750256912405250535937594816343875181224125485509349857518116101392728907093841747512863569952086568611930472800164785210090250504141380168205515318195637212672337737398717788465199850078995294386770222386066215303389817119746768104569345964829491260937284009043486952828929613141527302713749104451676184305408896474062946009895798770863138427023147014631224984975465650741111476933277489274237390935443035404691728610416537460830165749079016681678257294757686850683407214367253463146861648118688829002445293309937649415948194070707947906340948253529533315097517879311503242368657417573841774408119915983225432044696467584087430738186863869439300106970778796276688989866100771155699164488222267138946831518398348775984163446188064900907287821517977817652218347576801439862145050297316270892630531336587177422102821384379971145547287370094506084529586427498773880709074875952096850132771817677322571633029548835592292096019128067314412529305288031220219044208473468928202604200769838845089188957207161286790676823684082279503423185978506077944636640556067837833691000081098987010649117409129660723730840647229091387478326194824943664713473001324474376949486098824674059491503965479843503374108260594685247327753902306998949925171116638864027936713279216973872151989769745435679137053832423588768629862002321912320906300007263570496329101870499119380230002101060547084267957254944206848035577166413960879464876535159351858753618602802387866676801878058075890384137394019402886955244187637638283808038402355213976496447103036200595391860769288458365533539037499125145429633063999733449697012853467642410335874992122044504784964152775133347280707547713426554659466601239629694868005870669080801430921365834760514192279261943929796619607224075697800458606633671534118238588024554726230381546667469201190875027557535394378879016071674497887169490616282880638490361714552923996434995859662885533793207410433633804439472271557785761116380233683469808312614918816769516977396556966660489381812999416933956754034826740421377657779531187425315101252828010564096455712314890735976454471114869635360097082525647153053971162200438801411600460681668909437413880308073770923763358811047791390273566155452125254828476498449114986816047303821735448775823194609142371658393712230664536283072014337106301516064572228678725419094141810799644513960110504260257608852276704969601694833551631849339409690384186877651711504340798338916997935587354381726297218909898981714569561391072358444030511683485711660168022778490645735896584007146042751628892642871269057929189621049179612417590616664190809063008435472144645534964781838032291092708506504835724979443023765862688422687043249338248054621669379048154246086714114313865928000547820033094366135851854487571423634321765585070277971406494174842435003684503463006021693256103647649357106879850534014579075594383104504848905159130567538309813643639135667970384090564503463387922804329559512541277848035572138375319527849527597009561420902376319943682470762976258730947027118444917962245083159265406989926238308318094341683504363831091028086114392179829543228036527876292222034396344851097635712101748579282538611885598742112530779920328755614777326806796010249153270473993878869414844238545968574422309115827262207655724203186214210716659601763084747891877237329054461335037517383236724799292187618679811590712942395195520329172399814729254278995929778843025566297736309823162750269548573703992854941407858588201669898548645502225812851357157127099851886083631776705834070056653977424482436098531936262154866577671111462480563145774724780712446229811552602406702650530082463705584064924165786520412414980082134900817007566007997550104595246395094672296242204585103564162208208159344201606447133499873896851427411259982326791899821710761632820478047952042275976872770717840208617236237956107902427610723728537286757435073672969883146272400054166923188684152729144657097841566519977453513102473278464032581153410796899665616165321591894278109726795135932353392732292597530200036424966498345750678506519774458231163073620100206077011274566030430412238315063926324013654114798387918030176258298914345834596592408476931132637726354917615863687578333522614702741865478485088282301025478775376442350424123750417785622889058145193267394780216465604756979873829223536986252868919973509386366722814686367718689858821804124947416973796147101284832723602891408795834389474879425648447480762415093046765493381809860713270091678120318420402876333845317577395481123151335514509062951474226784984269243509676017845996994297978489493359300601086554910485434872322508069705158608691282718792033058888651585132921462634794818027212267175118967872365199794000509721902849146637780973832133759838256443771991313517499061362252241252373572915952835983612101009057089912850272162989297240716624734426692000766121551279531726120890283583900430175129450291099953381742955548755492714013303677114500418752982620915322406461933068848339765893164670681209478454089989138102583552645076272297192478329587449686800171236489342078286516674606263292689236709242589034106127867639116519968340903144243355952714942322213557120238763315273895953621706083432060021756520798362818916709557050984497939702779228550856612189936757277638507921937874055776666647031398358595381580315528585414155851576245723579972509284127824860087711577914138639385659711948902460502419052496368882763841388641935957643212965738346663027245691131705924881483464904251412883578060772982262719605782420866741141996043176046569051623143204952416817073029753527857973196507228174802254574253182810510474587035417275105981455941529471807771075250241922996978598026648761164039873717546335885200612074664432088795104214756816748185720707728004846442686369488468991803504444304866869258293179189423823940802067646054050291559510849206322490541216085899529869790133908464685317348917231199735544273029586886270985872948398671420339029086300699694431707271019196499930047162917260926283814599702738737595786609107947512524124554870810707746437246464719460323625269356540467963813689070618014893172841020221869759411096147510311298937533093515999997214716413255872692657903021530951311798802942576699147432854273784271945510150414556003899338241457312693421321530486584173747980204007085667033567306103862804296494454201646803212223327565470905850317916947187619021066027919790534195640272264701768540446233803412953115726025428168883426648393552410108834408703926434837097295537307228301880063751946921100649067927539760562648508231255073802553370378190889079965619530462767548164652566607807657756475748608427848255468687742053390583441913232086929911867445721712969759484767365813212884837752351438761332333727217089112293033515844361238755824259252889528695800952792764891789515402018877969896743579811715513050568518868050591151667916257445322884346416145724479202837802614890649862361942848877595799043998409975318439204794720889287715643271064391172664341044396200752251273307108928763489075020015403932226521724333237576236605018482542580011759722379853768247745522330296203764088646111613334193354705097629975925655429009927273544176557375354526209531475902276409134752200766572620066032441581363568301402233197223300214870070647924685336282870671070617633847776890095473432934424175187745227732368922917256279805477492131918932649814181829226731318197076577458382486197947877530172462823683017220226106543350866565062358550237879249148693252947959284802020253566091716063187536395044170415415100463079713239281257216266423299228136536748529261340712330304452720311750483618189636743849594549702649541737516442032929024651747372495905575116963898294602208059636201277506897626226852483281556251831573790328571359477596742563547931758880030701729448925764812076036269542786810255978433574700313694912712654832226117101708328365545508018783520349714932690175572779746139247287585629144183267627394176203988254296628485660041555609590570284659919437658180657511168640680812912281075838351252481290170687309793659213653298925255848862103316353333000825354991593154110089171741946249923980697600988402292462490036713237778380954119048881388901634956660212912260492668720002232389091292907888344604176530225484815343156933326878724983768262802264050777894843106212472986813573728867474966567652058962691850443881187660956101206365185015596719435831904615350690626345121685907931235487712718729279144835805936001633563067032769041029936470659711513750703160707177537453341562431947187850611989187749829939577879096386610612577131869579119371294369850041079717866394293611101200351527469967757762819999947060938347071622255032456673002021036704001067194599093293355201827145274853444176576826045598092086173830999526973244619551640417318629358377322962922542260907197471765937750337570551389310503731016545275708119443822867030264629911763286501014376760509338662914052496820834062689329008390425751851620141313950139925390322579180628584998334874978567204055878644150897007548436093385466022559909044298780710803712363214682625520242613410780730600694258155245218029728197668037856879938153572646665493212862644207990853065169665825632583605058706085307223882769070320433906863352401489039326072761176945800480695418403410951341349700800942249936554670239325531905624065944485430294056517377945771971632460105938184083835852139539597832611630473307337306357249480378493715910990608719585721739537685054300779611844538575642105370646450068200993244151252470516373640326281050707801194409150749430881511655531055470249864569309710179001952147536136544758762656993441689169828851483475226144064498934537165339998101958681288863552759907575236536981063867070720988480122985678479420154500770039915210981332203530987455125465938696357118932206940716538922257893038253874013649791118116381689188754584551857716445704306877283105509530603342071351205132245221657972031194648293380191667620130063274534968050334229828230947184026126248511891831763019894550302686521448343119240892523098656407734591567104034026135107519349711116367156804785518634735335980605357970543982689877636789628130195759390010968728750782929586460400462350642633642668701848847975734027812779886426745674933986835121448737045163231418063288518641262877162035376527946241635802159567600350392467506829008896959323752894699932614350440675121688747566781534506299451683654408328199640369028067545356412131710746953744834755023685378082910459307898039687962311267099661634897596292168463543445319034473740512654768226347592934620432317691774521618027470026235733991489727588613796818694907864041149987164429194795267511469173970886178811538770103433148355141437605097704519078915090328073627694006245899139715859400504767555578993538043541264261609896448677116561959652151851314956240918306162634756807843056749223031753859231474658469080646681141259310581426846027667182195049837234770852078770256608485104876221324040134796194717041895256519406173121881571379246371357641927036921843864635526214085468487453945294495706162334477707534011075152177506323832680702320091833881902447371003356693266072817155571078529788943347224391087487150791618965211465530099861860766047537773374891660803777669384365581772145393140545895226224271990119135445190229197801271820714460929659452913549307627386897888546986173300190706330453597975437071434953793827418539646186765979110020759124166377221584159945032357534527760788492701016119079612114529951102342171995657943184699167889007406050127571043080511700474925028825655820949623479981101899875529372673016091896435025065100790205005906715919101834703763012293797521288781727180131662321991613200969891601289800191675881321652110508412700306120783387984657903716030325556906852493495490188801879525838898542764168139864000639326088944985546648621703935057371622882177646686891217694954396120237981441119684684625631327259635116752273492762423287420498361402845986147573721177516214364892878556023376557711043455262148130961912378488014073131726549824288286045492114877012066090399649638978330916905092310463464269201639365346168442038860967375361360917204648843451835294575813430435601712482856537490818383871454112440623535573935729317883908994442658930332246866786706133163315907494112116131378012399560315872187216469961754645487279877834970103131962814054326060581855938173271382210397920050281578896382730564437721865107381302715318177193471403738166071838196281919263759528104426269336146148370211616432657962604285419190437288689457809956735737380333088868051280755457184045959922674271687882873404235925714602901393528969930028900927032926978739166310685787240494718299797778195660805982676819566196424807710136087517244817491399808987709791176995660792340419057346950141005211012233617513984756189358637616575441274964814664808520726712564747802034194732952700476111165614076590670805411418656665487711681689570440404784108174634920630977008460497688014465307092724143383244835484386786371181292823176671677215930750408445434516377486147498008250594361741852274884175376763609954235716442499723643948789127346293856372371189254769005489909637885061851899022546059640900133170599070486713402359252471000044069450015453474882352205887032275311056644470296170420035753794333468142279658013593779371752685535551102544345070001032019878984220120696922610655332321063983026222846451504276057653817752704385907849143027768005866313475251068799431458921517542246165290241739985342761553193994851639162434442260255488546804986095026510337192679331598380343264184147193232227423140233903765573831927169752624904517130173459688270819749226690162171561156212105437956463805085373841747604287003271692606630231574331591492739029776423256810081723410594365789988648508080252841681508641489271261344825934175498757283303105337312975364127377477702420379006430953184735148144948384890466952067451045106631321268988869757861054821521051972335784244979534580813201038390145149988071794020150815314220885399757438545157058713155856617215980139762815211326031268700763870091709822622841882067936188237586721399557748230477788222679254521057691338210604431574178267397077665920765622236883005372920984260703408155664478363924981187671234950819874534665079030619681888859489021526939588848579792571991036171072450785357790367221068129749209590468269592893656008015157033770009292371679996354805681476045721862854606858563743127482330603399754612518427347335522962625438538517860029488838885403276946805931034701266916604593290980486402638854569688801348101990538152170531395135904897766036938946254956821977247987226965854541405833768258625760297631553634391880530571325147936313044480490945219616084150652880467685088270859943694991905001229938060839284296264800501242058287562537251606710430764265038183922541359402830125466569047134901102528616500983139318277051401044600916976564101124102519633360884004381322567248023963816793235561316912602979342072580800707173147879997976662272900580124636046669895002278107873606533772545502082697961644263245102932282130419557623483565222518389180890063875786734388047578759062609177510393018948313335652124374106116755191783969030130054603452867512195902774560819532083595264455871656400685496272860700288897564153369257514676070310512510764056295192168967006155359175605078821954319607178370272584739605760694386796942415155032446704907039141158851739610488846191807669411042982888009475064946533259006644655387548223585649468361957682463302507109733025233685506994831547757753887874001642755678749559675582715795629121670325551575644061377953083326791033897949486394683606132150120596146124920844478096056027039275063013470379291827150163286088434839817940984838054230179153032599142240845897966547958426364572305620804918772795094556041082610445422792921991186212725100658169867442748583310554958990363474446330409804021524036235860134916515494462628780363395199946082929091088611662873501899189928648924363444849710323952227715784410956287180811131226555343348990500019250621841700665262788329389069114457202460279845324327583057527965380749366753734992835840170104715172777132119101626842665305980793336642433140845252571234629385524766965895304791538162123724352653347796634625249303445142024658240937047164400684323793651097581520243115085091306552364280704664469918411608510470850084916200699260641285232303327732113214886676375179634912660640994903681309059229203212597297997885074733744730601744991339906281674317065332199389968481622968539507160752595698814325610396090971141341724882547429657858337836653538991951896371343447411560232021534042134653142092178012116206792454666819644427368094055045779165298653729542801700056036882110762112134256060067924322910277434667667945017286694055653366829559853455642712273608348162211594164868368964041045940319169424330260375672503972442058356310164298688571049344470991352298531676050832444779659833717546721603689727286541157825170112424619255680012959382263406889526402546458372222182553605411228656795593183110163083517507843394954847175370709565976492323099497020671501223239053000012802943469304863415867981755960347782275665902268857715066011619960098199706152283503675867445323352794745685178784341884508717723039272148049796304804085925206372543701401377170166150143970501552683700231357705155448583159437272298156589327933309254077724071695002713452310197938001365723544187990072161547845871075135194345941499438841828096363363825666208593800178693264881713791085585431896756983782254536017248703080189690126947583195212177703104349684588036865871091620218599943363782946562198801585161645108941816311644901120329969331785617695852516803203225004376347010252914746669242407346219307410168416147345606711439713720771808991929338837524359655379207758558113913505340436063433312360881887133570385916742736891067418383603722863254180053529643662148102994634251384117535763103653571540650516977297897648668992473703404112595018642759886151189656876591423337531540847027741518923412877749540932287804888508188352428950726122515517604069301018377530110524099711953505465286122751583547372181214196738641538267339537625227680034118741647998672773709990022400412162912119688354414610628653374922302157353987592517808263444451462422104210828511936017688492026205042809677269275111447277680185641980651006777037176324116693540981024730453135227746917272480858662764740660666147921348087133259242881547015803447451987619016612865455717448924231991786224128203474456361824233815980691282004958743431897816342364779930753184083662751492422726416060320336086144743992287282628869577432661794245532160566816056348247449429881188848332875502005804454966657799547013042983850831361577964320478086399996234051311231595290291715934173902283822609132776252539717510734841724213543113672186008005843508383569207638293673017970656853961816743471316142100182240206932820792834273372701632860440372310558486666594559630967102271957672714250581680923501439230192649349002935240285286489162416680790442509503298870551021902529790297016807589400387297761963815677470163514723205589775175946360214835798694486398354755850270501042049623644134526680558340716402016756059617547424464570149865615314916334932375378384023577141431056844742683339658067621003773093262299869171147257485308217127063477820105415682205392068983842135466515076029732428945059862471751087964635955986524337547341982736831718053681632609990535920449154918760384577833425806373857649790901756010728295478037622842110306460062664339643369819272326738235382660144426156549660920464422422278070373842702426123173489813321018741239874219469468075210117316582373025467504663021205222507475125490457739590238066133766807792160963866570433789163883304508383525756431798533493079208024488266144164061476501366273865835576858189086427790427918570707587866887590845733281803615155054120554825531653741833318908800694035789442270678279376727403995516733728140327059857387949641976905480164592068898210342729553109140446484292573728531628176634238118502841004937557200289317512596303241015451935927248130987170340516401029043781501075246608505981396797043416009345187207544985235808633970966551238057920026770838993974217180051744841888562630986133673772012179326862607893173495669439274761863253442434769711784999198747895787366576894967019636484246723358253432527186591245683707554026980325343151539498270602230788763142044308328214361726830735146306848121469486280245153871709358235250508746267736999731217238288079509509692435408519154811956222588179547136318127765115790338790491836138368306211468829561086776280644063744821370976334154829966695879842288033079836507408598965683721821635763574801662662502737804305838177878699384624366464041591137514179247270854495650175690508456623269321360438612543468969140733284877523376716949249856106354098451627414504095583505705956883076328972177394619824851033784004468666326345645725306244269568036744265928306673731398775141620557678135370286877611563714105998596695604320780984166239002896254088499824033508142321942988192469398953863337786205713575600674350537547519528806324033612543935451993067438594650349417556876901401373112897517105797078698058658640936409851796713711595042677102970525713486883436166323917025148490047059154903493175400898991137716219241906668623833123804599897286950022660530867783305355496738225376487854180269238418153454179477018356515813993257713601897639510163981938810446990176948758735442979428538142527614565032575334474989776126408011928046792440137573067688257452462425442923779162741911747444774038573504130981426566737622515580412703930898815050739509895188324822375278895311534518276796729424977258379982861348007678118305561585010939023352636113351039123807473781191627595837250107502684413502214064669386938305086301717211850624291708494314796474799500064464023446875520507200448735486479430427576148295337552020067725625153931402528621054725211801438198761038043268203919596204993057893761919824461037207388755227234330464945159167350617164152890669529817420688065668431201504261348548422482399896256160244549411491638440961899417875874493960707178596364654021271980939147387622302214054674940355538079601282593454653426102043147901147022108298590961881472267662190746440492580589576996952903496786075180753179666205317584658508578501046599214521996660718354371934480810166509943937763500788562495425300570621552407208733788852484099761515321978394232636138260426944543910457787246962625913182122868371523443169911492073445459460840837786346774396923736900861841572609038219445093263161021705002116117837478349344448254713145974589852095703841840610144215530671751816531019278411911423946899391693953240271263155911329001980592266337873687063756842510253011503559343325098633006171029269009950368569898856591314763629276917974327375930237919227201508205768547010341393845361860809114663875392205475359779267908083785049817270271455450740778318238352988442664374967087422459209826276368586468779982810619983283879512452947128017390769971878563169312593072232444843410843465488126537298687580121368189618449848276240284930613069032976911196225991921827910027225457168322497431518625159292192826918498583339818866191599641480131115906718279569200227002682039411927136097397019722034935496015629358076608761113574223478040912899425158717189361051781029989801044616389999668286353367825649216142088355377430448607539500297428265081384306450578477975879472731667169300235354897350542551818388561702283137494428771860527047032789749619474032209212113150248306509260471079997599019777207631394066249873964580878077018615183139709616187692722569759476729302898569354287803075674422349018931739669261135622493836598840416117669681834381415302849744536592792286354951306708406142465608097251630995254521751539698789679875317313672778109365004795072032397905542503157428826097154410046820738815661873729910623233225299443075531104606154505948629000721067605819927955150177236442347516979956074294362831410233962881032103068484620261604613012552048896547563259288703755261408631443120407753292130715770031948424927894248628868008764426048393341197580661922133005249904867699583117952561093463561231937235240587373276493690268397749794066152488109532760423234015149254194054673913375605482296672582637767425524584229852545566224312207417517916361413956477070025116249525927763170799137394836135968751713359845331576404399405932220044683984436629243047244429902724821075684973680787369633450907072247163816592887297210808522523587956333315430188371574938647478451070469280447968808567822006482022815263130203515107899918017447363553237455205108948506144514110644891832299442606402807781158732187515290621549353429723467780410588019618725836379180246884137243767299593006975814689020003619844829814042150170821747318708930550265132607118997582767554105203907417806861879001689277283680821748716702904055607678992285430039742562010544412375599842951423071314190391349775688308962805719705578633661316262697131852451653350003940350097150936260876507503589047549362185799080841289587930951504884820553344867561440958137863084692442803649549763264068835626685254528053729864459420070928372605123650627890989459641593642820052252818187672959599679163444525289188464719536698355468683414678674110965249407009758608350746692379183534777413446944989957343068531816740651318967504801561088772182828712921116842304078083291553808098679286131448318407754530205309461778272790622166982683535040302768612302553929614006760251353251100849900125830200161904685631102242771904382085761389851857468514950243442310844818914790048878189505157239622654447641058415757675239991153437424315441410899412588880263590662527594316761288120128784578685919442010670050970617316858353862752367317323955969702022862193618594727477152094084144687697637235823811234834417236384950806008191801594765994230977887355710876876561991743756632636425036474571464548543706443570812373492281031905725199766257394608268919462903277065483906968315916972229125088869068558885564199816389846134025457847439896486133540336842803009025860036354383909619575345331246001576933275268114715593843542834574268406522106263290876437878115807595442884110565849358540044029529396975207918345736110587095431386156303203213621026555133204083799921418892127184762317155862033656134678559798018909405130793141091518264344231187633051625222021186157283614399847806607729134005651763294811448934130316540000254346594544144209910661725740906644263910598668339544682739681387668591848096289238248782988090423813702437296926179855248101033944512351640686422517553483068335426600759687082779945475827783128471003970055487549798150528318152854130992350705461534262235036254160898085907054265594533734587541675755104541384640099163964377451045955922681530356275210737653942286467945168230290343003608071286774329945802640186695782454068055329993238509855518146980063097889538796598929331691894675423969602605681187419625696698459190713311504563509938726227650094997972457915551599704698297246751205543065129045166976813020674944916779890640354941734227685467155411258072487937975620043851114062077160465462533421722329550501209458584440911461814518014115272801960106045381841358476135788845211420394360734970356402872996511861406180794480069681711179825252400904299809394741638360039507183915612115639619347980688435847648159018473282608957285042717628596612421404182639980676122284184003209469038461244624545489283882506711484736326894341031853572631710229635823501115228098003012937998477911310031634440913367029058355103647920155416367486520075982944463426770479518380404182391448137081772794801906864237479718216425609189771211671009398648721377227600644916457772300921109482527209143024344960131660913102532624229259360045848236503791874297376859363694414651653024241702444536746925956157358211645718904436735136354891155797535779250726452647302347787848718356605057571347531474942300836115089694551721154811169685901222787986625552759862210002100542179508870060205296905629600217021017118871290029406216296046512958709801428719888072983449837849340472705183826774899174417233308734080062749198010737679141005901697574715765169415608497063835517693812132486278752727689767424089089701990033739543789561848356629849926665253556574909533608055377162125396813256830365318135879380952860269115946404511895158538769475127143983574067766415527683421040480564710444237391206243578859122369341829153843061261727508843667951663549360294276153795548128822581767990645428092787939189763586786410669462054167054960131056656292108791473865739029468458764107886119889520987236923592148022033095853161198127985043142512450160795232510079180226387691090606968015713571610449130785622208129640365187590651651247081276855571158507839951983533265423026368920401284423305480920650673150731713147211579155635878373371272705212131057400591038203106296139513530153744492356121656093969272049182140386495515012318226480343208840388863696726840675706755992048523901455583956785327749712884126544136412163421212542537458520725442075542616852408367947099283108473852356337078111657995660171435624259405536580257124515075129474147424741789565438746914649997347183432480443529648762103954528756924977608569025088578117382418852767260767154230757393653035022303783853348495056172086536153435096495261640427621587452065825310432411183688213052393048123027478679150552663208353859570718490398233019635817577892117393387038577167806863136664923078513086707605700742410881199493343056417960200790408391485155705285497936509001574014221348299770749081297171426386184485312145203643655010412449985597793093581661297705868204092692133976834263330654986612641428408762232244569899558718221509615700799335379868439963741775860262038199670412887435073153551882549369784111909595383793684442766415515983392695246260393605240241261234431138187046859397000128964876293730413857370209888539691676419568589902074129035049682587149834727150953117431505032824902677956074882711787311170091356824399152357376420785415253243292635674837818151190993431289027303289249087716978382886876572605607965933722175031002751430954910704899338353310719407146932081093802768707035198411373483630367960613630229700276085455499697007442070371349090839102731433400571560214665306294095087265688062033783513439027507028812218285839673431994143894477341999952321866858848929304961237053401217831243967051808461243398773880402028372528446504681824016195582813654651559647609508002283321219695672972306179398796163817033931269104181035007659639894184266666228642040381070128396219381130514449865401472750194008566562394528038870588688343284751176508544074803055856652738223117167028861386340242884984575602086884599612915082927219266781599605287327101772238420374260418954526247711391882482041667779424923145826082250293416280241629055389900417049140204478967873507574701330344894101817180514931004783980587148400754183842570307865960223444949167035727175564762811307615781292484601146338552219363113425253551174475263278523226509072517231882016335902584529238871343564797338955758791467010222470665478192421648613071950278100153752917557475115552778730146477959438431631442247362615342112316978684354548373311487425895010275677747095270022848033374851201459765175490607227608972511617849551664446696401791880974343468666062397838059278081435713576701178976187688242807720780341584428976302756226441000549706742781608960943382246814875519042899807878562394853577679259350269199807203449203290067722620077107019957392875923576018822231865913615322890212833856086458772835473621928001134202447224269825757811439731316705905399143439721635889536159316495490378878523346574629478127104937373955752991835954350490960960472819915546141405636078449805987588648159284705806998609272496591052549472000446793169138502314735473859781617222794158532957192628628677052382505595650130561638405718556922576484837969691212881837179032237311452461099273546792156025461399692062779473437095815038730139954752074575364313994689455937232890530046577329274119579840810398734696925378035265232932276217686621818273189022126599360400597499350464713180855146701619196570103817696237243614591667475502249422993355916790063636189831982693643804565554312574088818890909653050032005326137473293680075357192315317788458719027956498095616181262045694219351820148040106291501605632464264315052722490721346929861585899496978351762485566285466875174716697553607266645008486631312835907891728957495538078098145229024637691438510700675365049586511876825617201556611871594644624899823652844362359628551864464610169230334026650688874560875633738140698111215267164998810388744754251968005536706740337219683606743423205930038670970978670683511022451411352944132704833477840840675424914374852200878010233099005081507410052637828217583188974958329662849653241942436883341725906194194836094620642542841850480441019693555093442480720088218978706164914153438515648207537911415540644127419566875864927938324779787308259529789882863443357284356989093683184264481469609118297544476126224822130792116797516247459482335895620111283760161634423387624987085127907187079239596369656579408809034172397377416104466791266067032888012171857442486658089341483493701777242426128379988472995197190362025871606683766771686299090748731245367491820239471716651500695539176596343727804538928277649593719643989582732857109939164917942361587187960654658721509871440181518203055070483525795566568081651731278011206481298191029004819690314699531656586061090948677545501136355726658829737619236159459354296783727944083336524673863548123501433871600831689617125825426088913000662129221835310577571184762513338627480828452672344469547186326622677261853361236841748625094548811150376445438300404170485610163581636653969815157926088340258378944415270622300897760259906331599224883254782309518941220082640025130211927039607707661648257951850713769145624085586537375767845527448126184092051525414874139197905943162250783198451287488612802653046130552938458995395322384453090666883822110898862125377039153066772163519191952402068043724594890354038845188251626934022725486267220640529525644507317403775490295588569073229316210027180729637612353644627443401741401261796913986219793802095637129712725073491187380899559590249917609592654358520333175279466275535240067518154946290009182983887088261241528910155691696059014644877621959114711778916711896050762765110738002335742458268420326183994605430344945156503555621068112521948075786343883730169193470796673019402926424869593085687938456701012364180073162823276395728945801565920505633752878297867071884401743252913435052880198559628728981902810398997326629806257863801419423709679558839229122167292364088917750756782090581563829440363286430478506075464355796586659400899330483152171206230234746619267017318843138721208642700756935744092274094770260101869796902077871446040081980902638350974922433694424207200773702591052660924534534084171547321942388562120481804746862104424386538985667626855697294325358660832889956705614628858956569976872718005931680855885074169733500835558791019407344434965720555655234489874561323736466848591358801668660624770123826546838767334429344766930540790326561662676622089252641058977173253161743558362691004463763157078172863189625031446658291032308001759856016521191435033479821077560392214962903305733083779108509614513663878495334778192014818710390781103065257293459221536832075152147766375180640358632470816274216121113133220935322553563893117022648708115889918177454325083742217731631108467185160768112674195296020017014048794937546057430298541011590428217292803517851998810358749922051943611701008327989992385942450751176999772171343976898901166542176891069896152360427058840441361203584578917114887050399431912585718722337259761101520885036514406805707583336382878417981978445069509663656827887827050100608110028572977709327530010267177994219777800696172638993330965928309337039367426418769789137206777061649820584996804314956979190691502101482514316696409904444368787705391057064244899234012576390948873593013901123079964737127137665569906188357830995130278777916008473093246914802797008681659649247600273524910925158132462596172994538772380494155035569347789605979067507818482867344192936200018631906536379612560090634333722522194470879630831142998413497925584521212466459031134161255734667285504664649607470966536144746719983786296775950135548954812818589195427915316315341133180363758139873429095200079790341659372929019896508613884730281572526310286305885801914830047067007867475167738656379842908113247885473991341752673733170568521988163367522498373346978229641877399523239192429417153800747100644951722921370288360857496864061196551462888856811666958300774505959030908279046306837904688397330037702674353606622415969363874826848524224786262930281645171026267012832680162578616422513573897825827696583197377290499822400871501231559159151696630071695873105123788797598973863115271131930883537912710469156812490292303113129163920084572152933307515510683780329162275650742365066823574911420334798643777201821831213189891665630716242185461919875299427253296232330035148396656537314836941068902043033231285175244412982632998024695389239000637010124514517593032536473849820873888104932385577595210378484018267420080169311304952903259095983930072575728258689333118898049607748923433418918137585136537155975147143523807393586790553467002590108626735248331819657880830502733500517495126583281581342480015521407516284090194486152384166414022091491268428536285913391136964983481271991365212118494628592897123006348241314872878755014597353540761818265957766490275056953872719698037264465575479605869717616674958239957684658689422120565381128707815594659913094584797966476245294828132793089742949691030415573912843528999860108981991582974437875998668710343228412705220627840366547291168549673740687038196341623904673786246021348593762513393762082303105079797650467293687665244256070138195423502685759102797085306666514722000690204775774428080077338380564637379227200968137852916030480113106260282465459902406850266149144042838673935545965130184601335560129661340535189574603760938494914489665085422421546965012137950458206684375799747689885531345245524525906748831202166946548495288558095613422507328320529448005848040800357842970436283094945100917652192658722665768098807506908615215553257492344489977183561090906669069708489641036518265270782039842128302517672508354897990250730039710670510366875541421845162159296919319225280781839805574168864364927433390928663439279048991593068902051595212511276257334178074702981831392766878374776848294913680153640848025394843576891866605752433931816174711200331668109379577118779038407401097894860441717410027701385536689173412365677258341390391397532923148486076706627997232392641388206801975829205810248220870529784760598717436300597075194243729794578305375059664512899228809300880950091613747546729629199702259018992369296032355236813827903740933698691511889031026449911646267010406035690399753112000750722617571589684579759791300981134269770614455946104190619539173903684561855198756362568514360802423519644535587773651972791865204497259408443941358871522921661381218362263185737835971059696748859063992102834459734497844650859305697200973004116606252833434582063868943014333431801468411928925614957682798594441677891015584663493491617760457328756500945842909831378653076397457202179052805318487408206923239509580075774234473632739171714277019459776697943268337573824552013716867579789859225646420826161144435999772830049262673778604973624746369311778748878400612832294724660431437297246532082393416572023167689957061734998253575956261651812438131800546320263281303990305196538706903647545235618186052124983495851042547772730785635565827722472586357810740538354942165556494508932375870422472381982811133498677588968018295525667773100037103130759741686445389783998023156036507416504245148043014915392975553147504027960531448799113988875098939469826701773355025153936044611085944068643213144122603657206599649221454704521510937984623577019191586710572594264812456710509418164914402480258477802361077309946454247786273552069531500057292133777125933072416660177236872123249632878664227901819284453884446668092964091744507257767978427774018930481550664721575326876762927438331884688668042330804859254568267928466669865366566530551401173365031337638720474953279758708917253166444924295632177319504831669845787536222820634060277564627542755090195794884550059266352071607801834869703495392188910375238177177811289145025874134564424333904969255738659506144410100891970894760526884002924912206612797454631044968278445136009896127843301630399211793098558994382975354411122885549242174827525245796927086081708650827699431726750500984754096550476941394395003741929905686829631953997439010385729078351274940433619422940560132509475916919995929787999064396501400161003676221292919075630942302737633748159438065162611935999145938218630971925520784625369395860590438501691682549252602015457614315770876293096568691185002893028394860737949033512049970805880665859608788768574860923545132289564784874031123170543160620974628631649030097302775165858847547452243911950798348163918080638113116760004831201525774037352734420793297857947338949824932104224985728128902924110066828188061799565058412956353584196682336260670201827263926498466502333968429784267013834057311918258236740441194478177742622046283710635784947190909700268244893256946106778790832292776903436945678747995231875381184487601919769404842467645990445827067642662319144246797626359559627767737423384333490410623862512166780032912771161696703485352817484102122608678674091213514962468622418567575467858615352909574700562903631045674962469551154509819542886755323157164077613607026938938276822797131765687518765561536959178673181392650833620605027042595952054796156647843273212962649510744782866070645142796436900034439833791055780610158614705767360242551639397337380739634047898357474443874906962626120335026510710906625895076242296239616173115972170578504106716075525364506078734530831634555687722898370236812866212266141918580788796188279240122343078813570911847110434370186579285540776456560614893248556470734464499361880062906620339080606162779425800314272413492875305388644875564543758200819068261052932566485703412666770408642288078213130879678381332591900859793342171208828730531811037203899640068369560668401838889414579688288366468884682199471614286457865629873655041598360277793399354356219561294507828590691753508538187594750977259014315712785297510011751682304121615837551764348691882066825372517305250173878922692148523211223330794313832544475241700329799515996291555301452168326985455294811150157666782282563565011083860003471764006086085725857279082671110203130544045921128411189915012769996631798117355214335996297275842651020724829924465791814727265757196333613550159124040078866713127126929340911556027024352743486649353390525005119786075617492366169816795898958064955151647742214726430078468696716857793224290909955546843281760252465575252041255718503866600852681833184959456376999950498895235698871621474964007152856978301820301006952660409700393422804276147246847603300870390762715417808665231367604559207972309346920669191485866166116250505523023294223208295911639883533118334066527224708896700955683912296755885098426485263245315919003068578651008790902390643608120789769886231972687682027566149744154529495101240940379956134399454876039317473334311913421957727015101497151146907239200292240300855565087507246188537877718304919594908770382916495604287786539876651261012534937573772463940371352182673426612997401367599694340278633126228681107760708337396680834214635403984115579144642970337305656533410123927267037905913785585263239934630255059175948182787170728125826260818369220771100479832513975829373869521233345447876555870734076218221678884737753095545473386162969297347024886294255027636121090245036084955179226986350761126617753897053212544577488417770659924611238664895251373707364904226409240682145933258159303428314811491335678629231235652265838473035624399641586567437934567994677213787685429890298204112039153521583303338712693385017274317399649532283641949971114146902544681205213413185408352570488582660263503774506471764397219097026447847624357757062816216263709375953741404693300283676949262348190138687708824117892394131994993133967422232183486895965486368731985224555001356165876987387764523508446088600328538465708044853715975099353822797205258079647569948349691342790867586668904798695747997018486221422888188075288175147920692206996260170550869717290481435765356710799263355207981351973596910798206513022407347909140455691649637712817958348014266867278382575350104324518644541459929040407709959389677257584447859946832572938220212387015127363419168097781234694457621943167380395497787288246552459653121847385063745999441102478556469945172462106065786333437149313643816306777347669722711182546566000874895833110107973714630654261669165367319947738660167070658852876989395163037427575590762102417545776583791558607106138045851594084795623030025851850907348561118540138495849021265146158729978835783993468511682885306572107593049485078809924482245468908530246523732002533505497225667592424968950648237619218859310527240571618798412041883001615469042648699380649430623113144334684720453122798283119876645807008052319174612033625957650022316984302894506544996001057218389748636592875288878997177146535446173222307808824325015144132758115027891984559352932383842022536386335415596177671132116409836270978857012084710769491370026234761545513627158279956164037217633054746434371132204215545818571211787837761273156693879191239528678803161954474908837918146919098711964300142056302244485767258034715057545372679610613585100430444430235938824027723173611649556954613695710007599284024021610609745561485132005185276035232756855743048296950024909096122498497154149120512213388069792558851773348065726080915107296946738343381138161466037311473901437087080599273714029343895699805044360632757416421093093940263163183352137015825902722404506171628747898899256642702250731979543921844562628699582906083914933489188030031086640274589141251357899158130402265542506654868601561494831002215834857020007448242419874500002992913483524703428949913559747839453803605166440737439051008779699061102459366469150921973199841908470987988936048084806645570311883227045952971874901966357774904267159589571339603026274102638797017371155130913808037249284433361681016319187789710856669676571761539892286403167369357050326430026600078080200601227120979756718446551080394784860563117299165008915915512050465648260468119119373246474402350804310939746057142464219951636495242759480914379834754446979503324843806263132318388350708110875631420882035549846882191321235127093956966343119128178743360021357405362162157793437935790707625901407862502523819212811767769021546233852723850979101009185246946758369751447144305956562587630157934146072145501938668936272731825641961147805811447577043377083758728506423000588221057431079566730487050534039715969291678293228798723403941880333732165497927829429125125849742973667488196688337565272598414920989971036222888439200885626439221978315354139561483435789654614082801680661791739741184119001194146944541654117572684056500769159137045146320676667136362403265219489454125192804990157512954774654274410351080554178268751195554235806636454958159013118464631790875963854950193666052064830583305412887542482400364851115833721449877455440380638958966937526990141664810543427207977618574761644756183644215136071824527336870720635442462364449211442170255783992351150856994602088105242021665284812184269426477267498279473346827923242266811964321822203481702666954297075487954906573670254386320961532305310318911257555755199108348255248125402528981438963032935053030549626016648184158029398557799098206856690243424168916956749491771729064582439761356109925563516177563992892192541022149480305935721311702023173632077333206880668625065922838597115236506583764794009089265038412386818179318326412723725356290909355408237050177179140320454998481103693595016576747157204689387378015034632638758446610632800281165135653645556507071652427113343103584711069460116362228450078776523206227774784114359827147920673412554065064531018649889532371308667507510359556896920421550780429474155610959484541724121835916421235208587268266108926978460886930069931798494329496401938158307751525800975509027153536043166521508429770987226497835343684772350515199875604705256683759414578019059945391295877595980388638232749464117273794342120471178611347983807296939879510979749740860993241858924907377841375906507692809390187806638378451470881632538882237743025739193581902750949887689404342151559377012072230793865443329052238774587644318782632711556581200538245113612613463475925272974357000379804307805161008001690513186613894645586541012555882223953812059880947609361020024558051447902825138119438607483956138281135656921342696273130395019760648095335426100251772771206855221157298423384146891284111540684469405687375040947441260587874072773548332131122976754158076247018843287889494031867957696696571907186646428661217769892575672098280769820881983703655435923403207805322475100702340348322023332065901322685072203578552932735246647138840716508371303513390007091121973609319300515737156287383133710773549053620932305327609759477251340973998074759996511347355054285798868402410012547257870600313991346799155547065779162244268828418750748993126418056993258209017776850361380557241722254935176632818838990793926427116416690016005752578183462127238034834774254352798335811708921296443127476189945223924527590158184365467420529303701791353285711931092203758767379943908470282526371092926953621390581730493611138516958553515160498193359865395987216385044299555009236955927759911482258524374832187910247977983784535001997497809303805445867358624313931176911662434556141806162058330283520228003909515677421214944423691710339495829256348578982412182653929948638353042546516625056825801799173541770460634634586473562221042389479310843589873426161474630393601504810076614295788385604707164187653166430315700309262075147576049505577124465282814081144946700755166619168927063136674019727181006506964758379305140048182808394149393298619732595051800932030600757162918681086962474649570454271722683428961525946627888346687287031060029893009326554532456744489116871524720342474876641547863977072661452117987583803023758337562423070061048658868368784366647880813393006106921605893241217691638850611027056776921231062528933879468556502358944850793456417203501343697324517426664852428475873968785484227088496381568381556225517308354897214657738061535512633713126884311533075921619684586891793628851001678826061095624050753818460024666251202242068863503824313486952347886937967353619833154235010101664889385053536279060731174589722678287409604834372458612978459773138708032554653322499007817265551983265303521119625287567541554375528909996052015870764973336792852213788939986660495702771894412832903826884727284647196209288887357387820409075443051909135686587523934074626133833084241975223006154901859984697067000222775746796933061204125521538722787231017266891761925627565583036210582160050882947568455677399934564119807566727048435651181572610797380280589278351490356979962569665372892752672698053933284375725420086277245049251862234822987334127277782106630587686363507304692059680261836397531968403116320743281212474694688844763971058546089059382528627156863123261929548062034424732045236744367274131987648263974296589070925663987334954423568497857366776048771062834478209553281706148889375790981325786327524004146742623521751746460944827360479182163991141045517527864077620892639471636661888703480616925016824767626580995024179335085232339844076063564519436689577060315387992888398179411667600692026411720316416970417132037533524825433273753647644324386469871361349750348978542719292478398414295777331118007842823657247168744456314049894167918813456731833225394948893950203691343023672670452465413057739359056802467811578311018275465776784975462900712687913530428747065113634786106699282673048410644662314403443902167380064909731644499082098938679706044998736740335789803144666956811032078431895660498850557911064958799001256220696791373105343746586554283519519611237043697071055027065448210181281925842309051125004966112770409611359353731811148320321631352144554394199318934969273345868826648314622388808029156414035823930791543573490682914590201730931493380893761659875879306277216023822809628138939793477962255489729645442507185894212297379758123721555593778066771214999235966431755487283881497776840197683407409095970508283265399060784024105409967607220663379320622596301019199182639717332579434181570150513773393770430336055623030827016001610026462644061077863815893529004727413871572358216414713417017496660064516311560481876152676776877459433038691421556184277946940271655588574659826558198698955945729970650063663348918272781466507654007474344787728159333469875764821809859378294919740070026861313955709328421651801658592635357119651482154104849096160091556776473104973062359715311053062171865474536341341392538289874227759419297961447956834545671231103909345557416580475212769568017730458275893103974568654391966560715490465801418475146617173601827537145429701281943843840139820409030042228228122836680065715613344202457196270357182976471240614041600893496629845437077289788999236798418457221819474512467240058523393368497883140561965778430017239227439861787331427014600609653998580944524548521035247436256461672068888342329785774014108163159518908164422591941776401746012022132336774633639548038399785614347307106833707866710020340854752220747288841524514690839652925540888784639445612815492427031381900105294704333125965933024594684913127362383166509388316289546403391502405619041882284542777991381249736648022764103616696772689900190661984710867662584245987504486493385091517141426615518413727750324343467652203540600869515549364611389246316004033615526758000905766307070444196775973549641276699076950811045159321703113091049928946341694224895233363790575455920325913517664267711038460880119052890268698133144847271072961249351232513754496053846255653042096429865168720253724440281159804450512248158204761995963442688313408338479322900751708709962204579932099872263919511107502246208710139607103997811493231921519928424047846763348462830577734417807109165151540682917601411808601706407176291630027971952562551790732893554583034512646488638884305319766869085310241455352123129672004094379549354642227285573303841135447664839612866239453572574997749022471748085713660280975215386059432546744675221888651780485722855349806371293894331780807909916773960325037990354718259865507677114552484080290648941401208147812026848662997316763425555868539969761044503518154169077436898149578726852577158025045243841537494761936496693312458187596726560552551684184494462167120198583424327558638273420779354483013056307645122240949023680884186089084046555542694179660109391245095071174990250109819414440899281936290080578296073980904662559190768366594443868025271666724832291551658642554314665376847740152655162733408152071040280641886027968300242682458284839342284370910705351698741455942606800566435675283418589436365015849742936605506870081405128741663464146892735013676015478631054411631353977282422704552847983426469689644592129413632307682664539394773144860485807493701631369019909014388720662817129212083007388152150813248770339548211270275060205105191074557762475962528145328128072944429083203283474057221514906861926502366236465528461212740752086719393920717364574918520546180952968521241088317097992755621860671285856939142489453644477541204893275236279431961666306223648261037277496482101034005076672324239939193386990345175677926563618789030212477753503754569589590904835251034468282446544590982247861133746581123286633861704787672004746454526364838036467017057310945112825310229207782547742192833781768027248352133603373995448764023243828141609777215079107786892718615441412105956600976656848611973217460727866976331489304435310180353027092096568893380502574643082286256059983794633247873540318971953783879464684517277434001368835296728073792770750362031513561433353838450731705445330227024419791105924806907724098154721309111552843184900057184301794790934723774214012168317034720208942163335040553394906948641052821532036863735455332225462212199861465873851889282706161994769413760677810995229432974206124066659305550664086571221707431210885754058649412933171560236035287787088926885072114153752334677936814321500319770466351737808323366570829704722736565592668410295468529517766410800996921253921488866743787670873430101732190761499067723469892847672362313074675578465181297269693798421322626795045054158236916767057679126900366267813366605586080165582231547225975493452470705931876380503156355392409299838926613867682881084671419684753203674063096869753591490019927765316064938944008954790021155350917810976545090838597354328489633407044501064543436737923953360506319069689844230796131284986272042220050762001460072263391524777310112365108647195847705972195625504759231400817324932607835654260364021769205876685399264373705097752344479380121867661303087309689474517904118983029453035082045594120624459869566326635440116197809545292799016646970465672393423445002183173452152966762154449229113819844756093783077757853238435966913033879885536600044627068575739850280258784309230252137227302020241134487292459554366931816119472000597194719319612447118969553229373462589858023682494675599251985102934603196528047743564060268043708999305725656026872586622847112078018171924299336495069039366208507295871324065060179431696956948837711225610612776447606699226626331645459601406183380367184974875068517726132708600315598979221864153969726727066612212000046939434672634905343462941807158478458310715614305454515520907359286679518124523430507091464187150305137723681058985413877848652416203147999361864052546913220392862237184603364155622516800181285964779752885353549338605032146032006751020752412647167118445875267086983140647382064559238601718655255936769882867180948847123140644697179524751739315171428810018300734064354029180358802317913671913657258891315104201842116803486310615491643375046157563856761448790086970685304582264158639564998869671101506277961399410172368898992836528835621025534356916917593296105242027038374855986487370835841001582759165727314765350857332734074516223251810432524949228630921955017317613244635351021563121246702550624408726355807518309407240071735813797603142992223896061402250047568397785402546742475376574200548450952346189268064799608170335865427712868201902397091829660727978120566725814343740796753874614450243511894724907087514937523883678718997515488995437229822036074623540078626660089613637684821309420814904406114984305263556044666730607678604392806069352377642061988958887730419998105846383283466521360700298977713254691278599563734795520357057257568881362266795958934852429171782776566134567880524924110400059931443779049415276679892045835086201526515977064078529131970848986647463873659491588917404561330873905260953824421042433518378952015930760965540479351890817585547024536895428135435512924346090823731344921627319965313369381134464623663962601010750036803275263795739616589260866897006852393551857266105147017503277289798617349810873348056546497953754763850346205711308978636730835892287115324448180968994955441023649958442526051683660640673485382055456192158372463001356289577988237421999044936092050727374371806365332823820228876624224269905951478967463595700897735796999093184585428526692729463731436943325205396749093258255506539992668383311472557196821076733100227986190941982804128505434565684801076881603975170118136096072089016450942033693097905834282156985887438638780749495207554375447217478690040913899439700596924381792262588483039363441546576350640759990352634614186191058415330187216339118619636395530759317898174335253670934610713181843839502456168554732968605951509129886677923799586399393882729358685876462872087114936205767559112011218867356249672635274834872563058035962141587119954836021901857672375399871590353211698100067430316281833102988684511109700308698633746834312369293967333771037059140115261068766327842325011676047339720339542629782356187528816456756133674646166330624099687364062673143580806201204131498478900317219682170863587691464684432282802599825624380039235898734341508535122671763561859631596234440025511192423713812035790404938254034045380646767931576346827195085889960689396680292343237394339804582140157660923867534773379771667065372075254770439520829430647618770631334046757912724599713785544799068410077827390782436313419914154653738162683132347382236420333729614153261161088394975649526529444409808680786878233861975039159376554304776219293796079349703562221854258338805316745916707340291164527706869667234911289029014378063031941648552348844546858653903513697528512845215161204313845366839429345002012500265878795476133353044076452876620329883766403187329980529477816463128057657028077735075001776806284523181178760465803808166363508114219136360574695544356529400664838855785335188597657096363674417900860871963167500296967612422486120940910258612452713047205292235194633234944360891324951179003242627618966511273257863559128097468669679323438832960009569729305666743634286093435866544105966489954534772154404672913264849127585311353903786405009514746228543411371922480499896610496785550777447432891272762340080162610056761918317184385960437090884982470880297052614506260581987740056151007247716185390400410550576696251186265869286268675568560512634546112017798161738370345015973044214699340084035294773766025054427954870918872625390376266402843299932465908721048235430666904188293044448328899727800521964275783427134085459506298089233120654685253306429433491743106399052460760251294509202875243299893555333792365580974259966464255112784611241445329922238973519873601184730895351969659779491845829475996270368708657947883670491716017110471004202096058220032047955785776732941443564338773131483907761764019150415722578263478523870568113359484569833473999390471265821496529907429699833520728690208337167354754029709076256298260460347436010036052194553342109909741517078809415016494997719912628220816289770830211533236143490891752108505981028972194296607451906608485922999868678003583071961148230513352978898766460876950284352116464347849107315863013825100285808659179972290010356521538567085219857665832704718263096429190880229689995206871112510301934762611119725408864578219308339092486721923852636260345970642778963583109734938594097827377550446505472495616855587516054790858560479815098377058959071099350560257628862871594884880578179913760605458030220256927912449821458620088252013196063796095310831465585263443050560843981532669565642119411152395124753092408950784817634122914461118285558111464759445874012078532095017349362082290825627257618001286452287415440476590464625750948047046939853953575546343696317012779526495281487587952756540135524178808100283897575382331111615443350086330504129202879985175389021657851045932389969438423462510914903402793341006788830710097364674105011699521851269808175160071516305859209810308875988731183929721287268977555358918287065454503756409089014658634712776968656796930140683006375824204340574982579538221404868636072297521107508287807687342915511726685200252794963822214454008187922552702938600004003027384029863081528094270594632849799243530522076140257430058177094943929062009017137623328039015829632162849383536967637322265261371446687618445768963100516049281159697480113692946626169730170141972792846425184937770413353249641925563601401084133395532605731576778123281611254586665649045406085427637605366570064565822396938323454635463053779892375271743126871835196711908765770079758623132937579394142298421909023510371147280817296310520637452818721363839971683922656414292344602063469548748328041687804346089912272759842033076180856565004510848057623383217175878384223691730146198268744413577536872891395184319612304853642382386234613995350216753897624703569563867798996484890600066079718598698160867739111072825184858270258964567934978684512986791789848168425743804278830452927241021019667204991605434238182893561642384638982189687694574290031234558358495046330107579061056433285467508152909830396134294107792165472526608373191686286825997315596102134837744703315760938555070121761546123071924059651644590716660276545074482703146767697309489987279431451653767425549076604305457882694452186076494791839721026663914356409992145874361714560004153619437658432315976005946670007798247823725261924078503051278943411923289532125047380028615406095306007693050148149304098649405319214052358225229418878550364641255341753665869756528327094155549306808292734998806617106560150390976454542739125726183060825742645639427976869606968578137426591947709849878166331308703769012710650730146889343276552443636205654496099254307568006113943937462409370335137353006415939237530633199439767445593426184331353773277155736580999235474244146554463176258393012846397343247755044328594053624632436280849470479293171726279872451085115598084454637612814528139528654436874141513401259087373632251363450622661011590818354820141869858323995116707805957710500789285416403384144639369948141858275125322762821843848350924594046598550817114994356410161037079432048130987067620941685694197825903211955126385720121737600206179731591287191697799538106416358250282461923356352522748588155878724397318845337453032973053607407348329881582014031424354592284818323120156149762517834734872283083942573829881740939754848378771260320172326763972021878475948659537612328437475468039311437373935288051643042337079770690913576883025437958898439758359847535741330925304374809687883517235902209882740297274762417105506015087970599062580948635138330780898328322958131663556992708822142487066315831668850723000753047923125446020948052866186893737836450620419938849730781198157311127126768853997201930736185555985025143364887069895295225810296469606316149296912141911453680453958179921414776567237435203705670746120986509472154994278823191618746275362978089146402598819321382258806654553766927873774176448911898014733482527856915021740173325348865406117343740186401113260207375007378120627444744107414159946157701664462226867881585241173601338856548767060903255103156792315733434172426528467687070589415547708641244944027746603334721941405162756110649822947665051227256795645146393570400614756043358154388667425076331142133519717240947754224490139427110768324301852586491266086202776686400440132163221575340818262292560010457444769097747079126354865237725118365783593901872459908251890346828174653685473910100633167643345928476859275725049805592236336135985473848534290017381653607181635592907061876988588040582539489202896312787982965743632735208280759895882811887611190942820689526253022906112159417235710336473594898456661032231414527574098144206385664656333224086498169902207001617486395643709491575272536853380080982659483250345626380208541289617826208739795262031276369421613987685358177794920286189383106676795246195074842394478962159701214152444293665835768010289838439113816248549923725331243097731084246886217866386695047000165296294622881372646784782721400328854235786446180590113732256033110739465766354990812483497990040298341519335658383211329790725631845949017786285036874501417314325351013287727793803954371318693094054640546531608268963274057547832199605771255823125874668097781055208401061937326083486106773586332121621695921257334288125742988420746467620516893978800113852185069201941579668161870519690586883630109661731758051646368665373957084366462233166204113293845748909870361963148928052179005704650483719471097856615479894483878453272418891307281610671743197392356653474780060504825888247932507082022094631494999376661150121293341525071724337076806594815861627981935918750917505459321235167678205248445163184368353228387444933648875258076277001247783214513610703572823759353476422642932562705731725800270570070949119971543801609405303279597052342354055850560179611531881249926575852854346793731554790338045671958726753122179520504411494420694500673365077241453592632437947220795090870399971442237407349853361604775803276593767358815167892281224694510965845507252585746364261559721310392164734983657745442418415350242017400823256960431381788821138462706113562091351162837746022332347760964646045624157249675069804268239954118574606169407865706668620566857789231050417554946108643940031004660845245368629343780740520469302909268150937545460464849632099870553847621504181258786002120068850437608040798467659339849367331520498878071418892037595381934328640445568078957094619159830232292325057267179531206340677161313761386877989641464248361089281960663007163025458845011426571858381935630640850176835318852494784443338892786444939021040538979164896352000018112890783972839251322174514041392852742924777100710793790737423121452534674237300234007841948865896713707772619956167566982153407944456486179306780111379500598589194696810443888782705686094185901286820334839098304939365392422098134437490635784435054535837327200837009501049276827655668466191178217779768132421014763831629608236276299178750305480879267776008112046607088774762559211316610631853534695563428632088710084866161538127842628739374264609960588816072268548740974552592681823792962037126787645520442350211737202701777764005414908587070325518216959294290453388972324765335465881216411394946377238862093882203195862314433678277944379655283198443908242594771007242449376814598794896088180349416537954497627835860528371027074934700316212657959012104645719611479496853403482373027065991729869683987866554702617925209219154679476077707619665230426778924132435648257356733889371631217755499303298046178670994389170611171296247577407358548598341570467222285124272401690032461074029110986062438656165716570425943853377202255986611537026349179414858544969665521710497768567837184680765074807002255938049891819560758735947915347120971297760300498001731402353771515282565645009249390095179336222328941582920603742433918948771082626077683828687249040009254750090594812721658072772793663318625311731408575077629841380381727249292113103582684461596092181417539687163616966717689144463889720549663747010753851328644901091201815225213304099267884021766239250352566911868168649254756837974784725388511848412172103095360626891073578451672684720912888908211022876358839181431284155666833666208658427683590866059235071377068948794095546029501295052839373029715348597230881268532684055500065126414841350467093188252930846774677389933656830783770005768616581470530642089468694513010822710626200369991148469545817859664821068166611752550404411587358060146193457233267882352229025072572500026474975250320838055155554477840017386391950821079321398822292068141781807962594465207149670297223421177386106076272305577884887072509924643654273780264372863529739508518042589982352213740658314690099021517274439004190312703604532596421895873426898129160500307853759623926912823161684919451972337424255921669729731300360620536324216887119606076445645642565348110892329036565113596058089882999079170881710664788054238089112611994973306689527532881992876289055174610444316627279852198761710834568344405392351710208759694077525618817079177969807547601274878120644696863043596048524411859456800716282328316536446747669821873808962324123482883389681358923124745307440301721196934089896853185260467033594294466655734824561799297525823357000761174488223574800604026353433119223783125318138620318157110206173602478931066312938314750573058577184900530917207328265871452904214041824891587756656206254716053484438640459385713237071187773549968597722683098695690566861138178882632886620675107596412498456741833365682356349657062322598887450478485468559125185076410703129373327220130729217732749968799964281352797454443335453693987475960462409623893644148740373820268104028737085546556040716386199350821286806558733822380632186111984431979912954867216895971792721205684275439096991730742713554688352323645198411370180997374925979204879550045156589470259672156701701250805141748186181983468540343673214255228230928535382243706869725769295035198745282657541080432974462642887816793334306771252092528887023161988137617741828425587864225823910091699876081834506717867231348910342564345556723920815922112279832540684329365513526715720672000750411233776255419391762350943425713885294663689591828191747255367837106825673783705866151720443590995048150064801987475664840895113492413960914570992425905176339584619591027343161816428697457930092768907872609358093151122304614157435543612796337750710487674772427984577673672824775357773925617438143494990332363263607043543938629650118911226585964924966540117648264462493985308356435899839905429883486192752622487989606075039130650759636871533885862192738497998198470451856537805882893451917891907048826631238179967452213195718040846698651111431119722797728407224597923346773344333868357566075252259173830361141317812414763734372911247864846441271529630532654834689344090463612180807327243707239620685241446420504679419403122754087895872253393033716731038733459246453557560026038044563842629110481263066405566915821125125571666303068647490313992319097208634319660981933555705759502129788320978832324085550358945364258417767636433108136286713934588418398499181658437841293333940759296723722576735764840563374877058773021238693439212852927341413671091474277765469351309633200490684684012699869257404900049528752893826936516377817969024226714631836180588252586674715283788452564570598154257629231600707919117852430625021530624787138184601199171417392339461093176227735049139489745033198401729230565575092041155186039538307547610348174088290568550205525837460634145122469343757740554812683383300267859278769872024886841226246666927526386852695239771943885759411695202107998032599812850224212936013247715006997828460862118980608834584280889863006058339109214574735465105637102250231957038021686862511784603868781251170591839999453971787661167185976300133923303906346962909372716165261073544125408652304634787200990873237994341663386764804456892545991215806270877275359528618294004631409504007799349947206376218038453202279867960459653565582409087297400231551160392590864579456790661304003169377211892168077238373571740943311533603790358581006157853079301876236729530068016538290378453800293240198635404238868808247823519945316881127747774250633126875635068001803083463444675058859984854428227703626223452374906281967827347262290420616148412427446011208742569576756451912568229445773687715572406533652146776221870172528282716667424682587871779614493551128313229219654625384074110739370421972354836447623565900273359203640403888551137482878738036469769900135643005473067205865634070802738098953101602902913016901810083487960019174970995998991047210078465900661978328046321659087680764616824528937005107335548687239773240646340118979199057297070608141205883445512757904190991416340281664750399275071568188915673699168874276498150360298534880662617351432084038476976213543416726100558897756127681605635129545705913216960701757473946936894521691399521479162020560616148667957125807464931540536850684338882309691602377461400232898319069592879078255951756937947966737673980694616940104074438165340660760705099372488558841889599874702880673769702700968031322327293958004498758935323420251531229489980135739163816524643254225472385672822962895438270003945488782662114054195369542046905472222829097606965769112416833195801739294969760431477541387282323273637424046610148062930900747977833451906020405460804048000246723601912066968673604264098022382118495531894602037397026742255020016760081861440938691030051873439211134465773171146135547967354005858510349116816033568660992368537528729242304115615603771329662042541063523069071088828100668904100480287718328944506582613907311576662185606521812241712631679035558566118937082796019122502326467057249600252219908455060726027544268524162794816234479377262031881856509730995124155869511259274765121948656458664448329724393516134324522215682030557451355619990547867093658967777454542449815434687375675727414006002804490821654570547623413032872901841036055326923754641185158432480224166439252474381719091887674261113406838793516587301783404288823818062175424765316438396080525907760683444291116997246298009594626191179414621810614963606759437149638355939836223033243453139443581249725374915397882396071978503389931377159837595163733613737214433794582902105678267748188546236895608984904741742205129219507491879764895242117158377149989478544141238372155166204466363064503160451199063990992606668586049107813776367078735099310774474249090774439606442817117162681558659305412369693916574470931243870205366302316240075808143446297944563189702602933969770810432843139896379157328703777683570576937747452970558518096489579160500578647493544446222035210252087612415598365309837635729480066660740025161708452169590726869917724235680819713169794384860701589432695663817468639249546484343195312829005105838287716199786132059071799651163215773739925383656559101917333329837054111963847566690910590647900694622305770134529639052054774522279007397860990519909169300566320381674899495307796235446726414925461003660672923527678118043434823633978652037391196434874488981745162148619258717531091560576835164132855971363646858898085962532187607119874084148896180546218319999511727090716605080442600079497376940454431101710396106083427668724133200282907338413343031025920878359834651007617018827219716391970669318742864108547631481874632174409229934661285407519608346997569536086177988570981413280068007651339255960981431707268397266921520735228203304002010465864763559273066952132651306646041150093472218483815000726962758095790102104191377272983057141649920080806974808182026732477741464387502916961345642286565638313167942828667938204167363047744705848705112214920825731622501376555420116477009430841385082818004801410968740526388181728821515388493662358946209856140993916060798191076390409952998839663763923132467471105244502782782815470947423035471292930929755700503907339528009663173452193281057174663136874594345962511190616623909162301387511019755832568645369878170605924860942442437368176486696556994108957835514325118156203901372609483001840755469339494474023117048955938878925702436607094081944504844614862281643016422664288445415423128931729993377045460925188594653483344863664397707704982867781572904895120864592378099174677962595323549814314559171456447017300231510766880347661522077083659965971442213879587878370247849011633921070089583399138273767007010130275585884873982446684435253144359900233995562746971960848766349011282177736513764713635692065478893581787954452898710593463411970232412650052146341773887387598823205754661254221551166705338089728636574756405537511257717147638398595892556404473649399284390411954347606937169644952901901020794684269445620841633758821848538862167129415026014631509380701864511632336764682358630720789559569117565838693603164658671872387375115796056833333886199349121938314816162420466316966275305171219310133526256413931612604681218285639223753516518579145660589469127146458424974783841658265417397936184225729625105998605686129494129877712969124026223142342939587478904918680497258987376169260101080525412329999753626969321130354985066911596625975407758675134639441404811110150077780495616418281870194706852975586150113069556000121697174923501770794640054502021006871889309696979513683178644205267018998788182279357786292205028083947698761661569547017587920614340478361845611527893279748308174623637650760396683217265014260578349899984176451979146543817134273051877149845029742416498344480899125997041478516759452736008009743376193033911840040928746006331126188245747419640679062321104506879133998217051539605590046163301661998379535646261209205253099195043833916751695297085212096117854473612556724115559683332071327041993736177181146061851672063255616193460162767299245759884246024987288926576487203459575224965817628485480952163789173819485495691056283160994999745388746497364201073929084021935875419196828437363771293108703436330595833715434951266247412201260226607673990431784108793891788446450700509649355470935706405237113337479783263393233503156883969127634731068098229807578654866960067548652530129114112815430302709207362504408231525651200222160772820203542374589835783274837656442045350594161295004960241477253285325708278237925858403014111549965753339945057814677771007297022463641894560936445086917001389019251795985428571640811899181314692074523334592214677824255728647229072562216664710189461102787382254058443886375433432141937716467258435608567130373780526381670574166874743966522281070387140098230828420908139675926819494255875099390492881767854854039661505875430537373961554367040624625511938836238580108411039789918532647733749786030570364606429990901322362017989517685400898020001207864451219866571934060829352426045916877561977703419207866475650802680437057901497823198034110920585519430236528043265086960472503640143263444483746393944924720007460307595779387896350495017773671538072188472271648518332124973509256900607784630671181951725248872148212100691683673200788700917972098616349801231617542498546191011368486422371957899261042721842599273123070016433026406347380015198904974932011028942430261286079036873918912413634243635235707274579092129952718699245814659430303635926911340490684234013860259053833307401779144568692745323667155475229274418082543090351968378547214607506362506294113622262412090838510354837022063420082394252054437898167420047744480131376683984371970348277787759739537387742676605616139934317394902480315665707681852987012744414218405522256205487338005061080737925995526118940796391677487440207232664555738463160448418899252086619599714726958277171914018081753360864630797841641498037028488440843185782302158094536108811763371720415665277448922468801545823479922704271313954600760753474357273333087992693574097556758721832502266665681004860879552582448752961894292060553112259107718834467436944540403328881379942689771773588883252831089534740260814506237206410072624702711074456779276203294933356994787699576207116193271810397776325057369228994873355040759324634090939739411447410363390358881187608830011850787030338230248887799892360726502690849438917113269622982045627394646622141592764689832385646269428101549908569199182731278722654519568242779202294927586822388034823701080293744948663764726656982890791697993866813016607061121595887962444682760887571898323146012848774965054180460021146720402482689246076775677264901225796512174683459190155970488770583647172310410475080270282164213999669333514167900897157623287189014719212260603503938022778216518199177772498884213501660758334199096811681154987760231623013539912182166531144569239199879226394303699360336203043253611473607618873797449777959414153776362431849859298565842269206478178478352810740046534683553452306136226526633879220964352448954794675426103909426569379710269395452184062265733822964492202520427594839012495696489778911287948599721471032678939861503379444050297035444441310295668518620331830152999919644279017284337238014077021851805675485410986756747084985197103033454287656801196027263480395982701170551368445940923045907299806468298169151274386232351857943252125495396482787820238001168945255850904028623719915598620505763286031121579725331912205151501554237424556841212676355907699432180439484206632960207500772640338384634140781419718623140009884347253052073901416274166281597346158275927493927678109785205938963706521110921363946045580949915545301393643521605557698784502702724130044207375623557418194751085732765790222916245121850891438757463631086524292567421733231101455194137780450752662557383441021605862718194791136711272656459819629319763976174219322552100021774442632736532200846119031934533281775607711906565804660629069030779401384887446347299264207566025775075970710798994767544271130343819437160167850394345159661755814637479876827662108347127698575083602575033481087446395311251168966947011421157930670783414951660569533548036816962483135277131695568016437393521545274534872202614561896516799751410428754454102585318859277577196275929795973239846599485043949616925496922125903227361863670320470913421207910531327099080941396277098843367491592126717614236688731981165806050740614425142839571964316426356662945182859697644487344927253193704681795120154144122553959700283778991566636930787277105286174047235925303253379899020282109513423198241592283054928472528370090236257551127687145315166180895775239093901806977141426173405076963623087447286415736513237144778965966282928284537355979372551931054836595048841352918885903490108487170800120606108615340084212181880536985069505969510726436649896083045201948166571474052306725027854230706871831919525614387977692325822981908285051259826632136934002558472364730926505907799873408140919636362207728148755599604950726414456483905040377465403353721463412339600890937277900838947017868791386615510034102325057006224624006332857878145298375649428894667561090402880965275063033253343695441462619299708814936311391386812797034931465933658865417164901915868441207960474693725825805787100517162069132785181084795488610515242769909853938709918499098515735158488871633338283454132464448796959175771612561156765002449804285880965473592662348466151971574916966143494997423641305044786702968876769178478714601146893984351196114691657032779297039771778357144509004796054872433892053154336192424583443244929268129715844358874089447804952235764503091228843745656459625442020171759631208010692160182069291340283885138336918882784351486955867965870808014827127278225722991600822385285132951371755995448433689417809233354941226009752404428228450305525353572326816405702198934284838624902785479016418821844158399985658569693992466754865833766157493929018344542470416600314657198421341169288791556596978662719225838215871300188716073087995849882766767909563819783294627252394103021177273276198191258203494476665417627463955583655607190636544321338199117428758536902086597071741670251390176637977010691432423902874539453111182792507639966706953614838724639108965732844305891067994460132161616937740410833098569871547888704732376276248135255156596813164175841317780840787674494400377408197640188238773844937940552919595981668083392845926516104798002618823370966288101439775583012238404044594258385918774385048853014981770038578178572666700800830206546701165713927848689626520920657411182985879220870683851918001358468409888827415499929926041416806822756544594668077247884345663823778487079375771786536933999001835649878366696185048152437765121278186122186006817026666524443876086251729453598482714232004085552688605242089313423864596134514207247799025308034040935059585283524574846402634501225613775614885322132282561071141227529734981003127176414746410422215087655485533047551127222411986046518321434265977688214800253011774086095103295141046034706968231553255756890129199987835471668668524703265739811854674595511479414629906491516344220974663168545340804166920024518881309775064397181910472648870341862493068923001500983799626648099253221009477410471117689486431087254955427934256951006960335445544838825057483497831361249646120647596324949626322461526565139769342478928333011198625379047040250847062745352395173820951017874451787801680651339072796629003411537702051102726714134487025519529272602270597335334634187054202688651892667496439348268148833203888384914681331194222518274023668866268372154653294103927441610571778958943306205767964167183536442872496186233831453295600004830027551714866501125933413535261506576746320426597871187089794111197546372789830566470454841886408744464325521556760658637469029457844206745170748388418508069832108154344240200702459868092771563549445048709201756805471202743876675122535792918416001414467960839946881557193056571167375688818016540476994363091801158269456259618042401469847381444370346715218288128861442508002521821390896799749807356513063613825216899356414845729981663320815964171037141126065297742419817798465430651588251920620834907315147453383825422781931086060729289736071899046523647533876457139336629913314680022143826854550882241208294713484914536675789295128216169110700028401962855473100732429135336462720093420323679372565446824037456691647341213616246036179691481391173625708977566453041573358398410596232915938138070445560613774790657163841718999732720666817448197786224431035179878078208546382410345246993887470222365496611354266257287356370898065063263407685348251274897745420812385719005523007200494087831994600592078440430642923976905557878833562448460785963612978150637270612200301898852108590601966884825961871929739250763294078822817065382216495093013327549657765160760328459679415824824254610143232457270497275127027484642678598298767111020156539010650421302837345585349533254069222702401876122576504352456190184506094202405633027293451901076948564384042207312745694916791905649154175030061945132729472045046903898799886961214328734599088844654677487631281827469879967146189254965404054889165410825044308119200394331557776347429066654210566714978684372866855970736683180388634758327602958781374782155140295509450583600362849504441052820598169663281059750282460860173448430403128197966611106631196379049487008108262641548195586425401819088195301063702739368927930691352724585970256546610725918497276458058905162902233330787903601547851006782418351794223655230766916995942345763597632118186045234929054989052524419398155001436050254370139327742632305660512617443160510317512045274458610814107865854926778647125499662337788002133772102303182634340394960034446409821536972623558572027716523655661926102565953280474453999361127408026546209687178080452320316745723294705537283784462122810907419723334309287025746902333103503705953822699880722639710411753192991534305783016088972709099936587821128704469551328235435816477251220172697714703035865330574387698707804207397075986849719070826413176512291716684955476899447434402690620847880163773099727178305931649920896652883371697890966942522210976645668663846384860424164105256437356724434382407736050776423159102537970319143687933757869590709649730992560004861894945998346569846164929849787715347237655167952415589674683593643635152490571387084068431347168275381243098361449348294117986968720822570809001920306777502036558341682999771438763768028845469915204611820884593479402192979100874876537907937815413313696980139846022950503247182079407992515044016164809790931831799550797619908604207214100533804048052945814263064774502203331323251111295305392378605962454408196933435888259720230942099732527629853276053208304271898047190699862826049941125450385398614404134986231877165218680830596284271271067477878433792678418278230019701119773641947366488514138889022529927216577217055984635673780701851751009747336595760000320188103460327173276271484354932398420017301623556594567731661193192245032049889654896568172633974740851736415208902351123131235689578370604163623189391639991334818234055018251303744675716595827179335591052708483971320400791282888508318001016237107334235584694006928854144534357088413199863793866596601694850739046375568898687987483112553901717087438298164345943581606700453670662662792868171462869351120563546686602352753952126974811588838693378552540743286381487958388935412676355826502456489915822463238033126388250206768706507192312082323129565957944313660201482924406717443943902794813385640316982907190034354908830827839769437156517214322676771203782372998605444777652807814402905158000627248001982474201606060407413094142753685575438402878978674797911647150698301460261629038383288585046587033687519672314183018933414661790008883348299765654817819615609446655756038522944067286116911561742256335776825048948969864711893585446961702212727406420450187938808414684508516275315288091361791889250068833440793224362713047277607231590799571230961278473744737552974936142970211799141318432293341240491972107614220291217335240780701403966603198668809340926659657981667606439333032689329490086783012772093173178097806746734609383283349515353356046639532931974439596288850579378943044237097113949098077944011576560805913589404100785090711330529148679204539951868259193148346489617050198228319683536283171162477017044471487275009768627093488893528653604491564788873580109608703118447857474666288193316512909719386481745202648348292667832462996792974042922555755356996426367615112615545021519105859525050149490678687951304164828642302440446586199772798454795077119972702263858410495736750518193117621082132405356480443238882237868268675886539354342180690328480682695723337193130071040973553743212331180561477503381605874787570396127180388988704706703836509232415774403624947135437577930933666996819877294292385173431049395375221885131844589468444369877587520520224229573136799251724323017157911183415557038934473962175778169129459963914461246344415603459996150787897783513214758285344650971537177582478395995055897029395983466285983669478276730833400692066883476914353323478084745831769763276068312047320950571934984463719970451153103541482538046691486504704736487872895752707502959202456221299005331265944074189072971482126539342532612257350671453041064470142110934307225676817149172393571211933659267107828725272698860433214081686445761455524502196179875289387214718562996524970356812614381428038414536226910737468109120200911214915716481620817369923872629649194544457880614110565201419430501025740949091763192163540488436675346415642696661756262588411881639935800756423867561554964444290713551494985674517444352332790522068934122367885931888265665771365739013530324765745301014485924324039421559163242954329681401695455874470228587185008114622393952397056029268749699429803849388930334649314454400665988132341007916621311411167474489126330577834660813764923115279484217832870994461518562815900078024077364495584923020068073035197998339446213641057516088316637775431986272842758325568616343703168886416836279934897846350749530058588779034295699292082099244991794691018592550560889159231668314875022487660274314988366117501645806224557444033194865416230092610792386939381893275401987015628675841695644914556239224300361440313451715058496750839431990091092804896827078102852466278491905996034311334692686358112949200551433360300576129240440464332161826240673876639502828933681935886699359218438828170384225361186716811990610828525272978730968909907268141762549806046457506033283350490383383082507587055657946155310006140983420514243614402210298893509477245106646508646276934467226688802614811622951851481956797903932189561575593779346812053714564285731427564828331838308984259892413974020906746992078739956718264344452839064867667583924737557325460777429364515386917541662538626155349007929294033530208008438031314999418255231809254388332951833235432712994070436493007085099858727951216885569159079930892570538276406882669355445304219006903525934890889168046716675897877734237970733707979517648495245502800632191983125529582651852833792934483885268951555836619146032751280893180869722842466812091301312614294338667228187791496024031985545532311282384304513441858519879663299500345486980981364861737549269560581198125478190397774593778699552108191201752303591998937204699220444050653595516722948531394064534163683212773642183093633820130329777740297751633937820702379994171460814270384418300206132058971333066072098219246007042742919613833603415592527427148318387189283833422562820321952106060661466278091601777807488024194819229198167711395188416800316597244823748195971699585100825633234726647121354455599142282926982327967140558708630234453417679165631481239499736085580420118050977717929207710873615581644346363120464430701586631890251473792179033590523355756316820896751920946876819133591345966198095717870719378937352325288952561974492834780732666069875269624305073924875006544989547253108207093323282609493497417330937780506163193696516613108422925035398235637409359120759332570236771983887726776570038293169670624439206013394279755173540143564477019294032835247529665189977670133138984605477331193782133275252052226003265953140774957987421044294698493281676581033737407923362444645485383885081691793341432321085872766940499222188480552922535236087750307560033292917734898202992752160519199624617034936368918519369099023846934827886198998593498453549463063690794085596972586471387241897894658803307436813466354377308563326470568389597524232319592415133450241421320107126440935285308581335178966017382489553673718410305994185324924889503904814444541011780268900771896937774544043547478482933820323993063131322993665135166981269879105645426436616711750512897531977102457662621536645305700477441058431953150227798311429830455316950409950288448805796707356277282675152544538107659191149428263527230378960547683663028642633770687984792296197583700437283746958294544178828264157267026491554062195113908605190941389024216352549463934397247093573154022735433887732063606621099576932515528486499182699222193661850123319080449259671405000315182041864131675577906615842047456173706346246593249501450328526136475375047764753112515289450425569237389072555730894271477693036498077970340165164925093397190999621009731247461264610271258292622090786430578871900734696512460550419023329548809742081498624465729792205812689063395785722351914584741229292363840055016772931298821839639554448596323526330425284683803788947140416179097356504200108307177214776900312461182939850091548842889288632973718544164756099491983260685030761221202250314415077747540303787568880336036073053567578845732667855191640130028358922243042522545712851111429273586131698822742875220319524036671592968436856529040453986864911979132575710636273370614830876959927230650491124631049456927811939755370391992448782907031091072388165942746949161079174487068053661349088112335534990673006213536612188516274266499046325181788760798879318550846090279250699630755125274323193136486301926013257369229814473108543001447668470613205927783740435323874109300682611978443257563451489850732531474129119193470758726319387464829655636018211824286798528872550111273035512040919776123507477539585612782960462841132401740813974955587952857455420601564490559609274786434295269470774903849185449906745738543479022022559976775757284900340932858043293667268191007765512523386442783742823614675711310335589829502664079176669853889715213113114650248786031895988275060905737073716342100012831312984839648735707852857055981301958889028573169266091151700299052773923001972761950182625406328531730527808790896217967627100579032056057302780589833445584605248128134079583306833066302188209032030093001635021521334100589568054506977107321956761090777204988178459624900285086002557425546579899473426335972267679769167367952519671109701200467419315117142663717243833762057765348723432651934290321217053197150602446557997456273441720488054002189132940313296212808150875646780391097376867930598901178089267135525925819846949990708921311616655008022156103053442002900319654001082917319583111286816572201842714804664163193877782921086710375600493439258871040519560397396193909015525867769205113438820279064843428911998795879119317026803852555496291046846872746308438713050544846802192101352727550302209180542240942341472449849587137686499617446984308557255441437300486766950969941932612789578732651112437321477678798787401765644600809620325133595946851075351907926202472802671254720878511953175122668066523442508752417286598750635139701462166026947701664977572943845847842037155099745490347931124833037864218165645392963143326040702052438316043669940133737531555189963425330416148058231430126529409589072830922546553264578151816212163374105408795548964521283951297027727240039792367364217289789852032493935907306777163532215347703406847385739156588230900984524454745392793840733574442976631479415324379499170984723624372168471728374654128005289134067316390497370533065274147762219465860467099993792349489555084223393147717870838971490595456523088486051816022427316746368152147483525972805589443471058254212576050880757736717952552573326337791480315492261362077704558331379226148269414747547149523166958978380273788227751863712281617541146945841880507159207732787865218452607886438337611446116717174489590364793501395338553647996321459362218391202137415482876322035755083162802589310991466276574031127230526205399795670695795574537148555772327271637509913377248269180818024991718063950273547652093022914306545126855086579381109246839270750787370601989884467869364517496811464006937184564410157636030846872196573462418355722244872963906823111459574181179426954844270031129831835715861726769583581742806367406715774040794874671576183259220298735768749101802335172781729950810586677088264189238107555959224742386259245372157225679234364819179750269858876856905248568988232605355939673284161343498690232782086179189482008591125427852156791156915516707500791068871145412238663762928104976410207568407417600309218034641707235431522888425376422451732007862687774300609404626470082510215951203175617523832735276221406151955991724180514930791036429790713903489240869661304786548471244276461536938118248949604021036732909557061278838627845303599604071720031965629694677657066858157824916324743096694744062570936133730595355980189511417581780355325231866952572609629994424792613359924401262816534145272077467602279771097735823793551910499167396150466759418727326575824649991736931693817085718681323059768542327279697537110275172435819668769125046013501899109711888698436155650350032597851736615978899478495231022832833582144267414050575592289740509019259282572100993800052353276183605713023316767472400542083435962775552931504638785004593925693075781198083534477923396704583409686247935371813782486978188012773053614267926716654741878742227438299203333691201827915074540980201113762429690582050859044406469081159534962887310594631484677185077358488381658674628732785622633089734544702370347728829902167336567979101577343258140595289600590246627014674766039277946270258202692612564827638760113058767788257847395419419300270616273959923089901270134304822892851594992801629707725784632106075680639129685670285375634398569236036400792052630159869493242163493042748651886741815096782926497474305735927932660395078438887592890897168781956983953661193180590916663218868715488512505143872578303477398171432605165022889044675403336416893370434120783056550953459153389501599199583483579934284296923284208922880889505692748869769186528087103851704636994608863923830066414290528722586645084597700265693661326022658094572749852005242322098473406287896792237168370122851430511504648734939943000069790499119528183885369089778992416805017839999490258731336086039853332934213380279341555991730534835208353460387900635256471881878335523533494327410052301256486627699167840145397493300230641818678926006341651091243743151836351239925801160649743957184787623052769477462138843910639017963068786532808414332200200442577174803621858800177858034240874147819884465576597115064287007379398772337114430746701136223600433290018150157407334624012193637379958838878112767045017747167020301836017059092766039797717815466067976504720280911920616038917130160741339714544722658921305557714016979110835356940115075483158776529037221352001678082262953789452437598603934661317286779486320947904894715533484861827192591442804514116518635179004540241451845200009385926080483369870432125243116963401213761322151683951364213529335493752262198825613370820445425034746447876374226620139234861469243297062991215693529468561351433773365623517770104143605371834449953812216514781920469089584688593985214837617635210638723478998494705510560409804628758789660741637543585910803491319413857701648199276680577249809503748469561902075001826680842359179935207108247325523586552615136589303855251507263314101243838327977882078882731262152538808954851654643608831503812665721368003814331119277233547052554314537388955995227802529151661346108897239396229399011318697746441928244447697724664922536761576687144001331344846198903746015878703923458151885356486623679902652207557977520922823259906346547505732378040946974813701852432529898122101645252774228771348343661164686190169089290922340143189984916934461438659544077231083761518083623935614356395530786238668790674362783102181525964418366719531568449898201732041546295634000796199931781370907356178250648696863534542949245544529007731364848974271754858975153511310018973504649021211584238774671934153520111800349771993837807564153928358831421722463033676831393490556641222140206045436579569101330098045487293992870953062649221092909557006168114838536401126095807631531157288487709372018441245318293281634754756505006229623703398151033314026126086603397252475816392088770578715680739978641144248824495930818039189699113026364917855966401012667485582947515244247013364765624050869410440525992209407113462954874870406344220576502232986940320278739117110102966458225216105398692394772731167258318809639500734035217864342610529879114989348091594785879744873405606315575599816738271023891470286918750179885017121349917145982032660586334256738061535854918467237522287910862776484747814553275752321123356940172395259495265606141517935409785779599560160807145202313068165525185645862160587682007224146146271985418715205012845562133935530573810651110761979273267636946042559029651006926881252294099459735213850477457793271352587490509205099766951887248933313853308376584495306020244014176086812175096824660462528857042461533219209042126407789356715180703396270361691198340359387294315637081134819926332426095879030823081974616946429435057438704231747981828496100215951589903601909885206099852081322349164370427490935721135986926345893782153324462401362785816366746781274876540313225885891394406849793471077697495741468253852606583186964259606902985519294239490874421422939971790741011783385075344361245502796191922133342274062109554947561661344446962308281498661440590885525563652358950464639565456824534935570508249239048532262057714966544747238185066677107359096142331067020407802795685167317323127709325640407964275138785610126263968302256156237386401204385701727772119859142025348160141568411054048708863496023696456042024560436613115979157716216423836931823851192499954552365757041817816388269440689083506198269036968690907727878045239026428698113939867617788372835407029105249949023319360202929396474320567601482861914130830529344224908529571938560143792319656041569996492221375780251486815699077287017277502632630700168719920138021462321819035207524635015880237986781261974846246883988798032222434736523141864291095251795711366005964979908678524987086376734949599516575470251108613151679847222975131952603382543294457696129069239256050056518238247509254080781602339055497949930665182533599764204112948634573812890054275544700434771120969255539039507011607858783726326440639927769775382949603236608256773042530163864050415989139973915681850612505732114835181852338024490219739055291503308688125604875946633210437854696650097514000524890169200953823027957565571577597330788773230780424345389559720348748893705487204348594854691399055816163589856630933914216763641226137714239681084101405950882604568182494788382561122642556705952285649867327608427505239847213352033973411865008959030831306860680646372472492295169835219573041157072645754329628582272311578464721615136724802230258638453581688159780829368863924538633027148636765110813347061845451528605388253730355315170141294503823020220541137495987993003734748208287756902828174203410620026255044138183053765441491371719780493939795251949822445448245175813759338227205133805228555801528271825466790598739748549832327801606900077645750417454175615974138118403327182977873481501299549826724741927808383635512889245399131759327364137788396355291200925074120252050410214240668873333260485511181501914676564394022687046261527084543141138849334527270020720737731334220384635246072380240613721585794136992284902745664720507811860400548256551055623851602776614907860401192458244078683648162094770559568852562083945360194123835031606466564703619900935887311018272271808211528449746508346111367601999516399157964707389002804475641629618202832399749616401684761592839578920048277285765022516730848211313688033373783365681958870243626395662246937373437487847928971493788146083579774587055909909737742646659555906483615515521921318432557696423418229363242255271687199446308315284235127773442946237508472775666424802648812105072806747016672756836207199515934264051881652868252439637096935937043697425757507329463225316303390680821136063852792878488859703175726325399195615340123097667195106832878813063232059304151514932094042743506140999422415668671527723684683857549251442355734604976058088052828884985469353386349714770431861426643954805687832815224724489183336414711610117275376415781698586805593385977145909896309536617801872845481686188128046791994117054287664459359824022908072556443712930596811379212631987112799477802010052773842027774107515493872662572833069471784752906688180878385751105716091190134019829285309046275069078299291521029119174634137422192797227255864507121391884684696931038903943191265067816307470114708569020995980476747132792824668658199892145804579131278667307562660637847316240766750782731281648879252043425168397144386589421986635801382205106386592395590524916089035619673410501881793255341643750188019596592673218336371328157207077495726643910324743159100061358424457696560774201504517823392562564006697766771153377988665018123731146789933117586928496291871777211591101153583241992868523818766681739013380560307700388855505642424654964776420658985446354460910838618434793732200884039357087172686070232612930294772489322437974418430255379310404661279634630216097273676773532772545378275585091584872219372102022973178401861260329580771796715071056649028846908995581803388757425362108156632909318834268317711446088505605580710466218612251942968546528923065607730628664174247036913741737040185661802023642080117929314525796991072739322613214718782279989262113780912727818202451674081236691012380224000297243379447714811219756198386051878079049773147263620448187991477953108927416159319916912853314822494868134690308529884273525537283456799260264254117549671604832889577632273261496277788094350301600257074216088696423191033261582385445969830069790629341556107446337848380837127516056181406629872642815333287003640960810706872799947357916163300751512166500196827290357674001694488707075175087071632758774663369981005284319370631893005392311339382178711578849336007801321095701235108834047114550532459411130298981223010022822456507811030708493329550281068663601831354759337474763451653399543067332988313037350568773866707823830962233420728668665530159108025147893880176848597215736348081604151314236166813760326964746972329777356364446594634460888974159877751761917510654211189160409682311980142435485908302842316699770875827761228631091873148813228630654196950715839709226447099063166504934260583160551838699822348754159276630261720043819870953726604541201996119409001006739067059474071282123877783186313840924988039278987550285081489386542747524475056569003849780933881537927433250823871837295896954760882579152174651981516778840038358177456771740113661037868025301497019904009868544904594311304770547715783985698272121782969752117659424440979859175404658788532292083332504831260981179954319913656467031382980252480247566382101623193315398610224379988027082253446080745824773720301471603896275868848404282901591224923818283861852992874638928286188019940986202966771300214782614179978343745941069151764611061377787088064089308059349968837734437405522044123130724889431303021159713244542687191848588448411456670166567881504735417821686803272853424078683066259120199362567526255656993598225680454021784795095202229484068012436787711595866527905733070235514945853012695482883388670486004504569566960432002127469779240069611904808256409154248466459672708048551306787062016969646885947670834399751037614090498151565289983979781478821948991308840330469110104441096827736740456919363775200408693297439198180298779216657078266393443238107138010824853018005360815200446220259436271514559275913233780792700473918057402257668043767584400842387121965705649305521610557426572739888847895294282503401089824086813527936660853044618452159752295395460954923166996815246406305499501255542123999325696541158688868485440826794403051665431522117515979488230722845542479575019807602319645180686874579983071512456016571181294160988304992917744394537161110892620464693621889196393881070146556687573340402423960907279299529054160570321484828757256259256771385129600069267211746788599542642626611098858229923914383352403884262547040319008096629318792227768625253634166166726817503451897002936689194477994395811965114906842153192758815512419347781582972977808067643244046041072716419041825550559900998839099100937259207749496413847707870648175347516587067387857113904994956483888479166538859569956348714911176941172377355072135454845718338092191478725742540486448244788095292559417065211120088353084340729714750113857783134270639091424000300034268852573398800081548162736296116923675955923821491942001270134045025467301983900053196169458348089875112769386488169911172403795191159839250508816769922809857728323115094954798199125300450970035946470812758553838612496908659503856350750571522183535414159391792104570347647382526183137240677310867120387202391359118351013707567660885473547818034122464358967807668925144383313304675785089649585952075329139469452059021054533893445835529049997236139827770096872562366630381852474265025363422425801926853761097591624586521090810839480448117452494557988273232478376600551483894165500191958889457952127877230546933920176609327766631077814971585294152642102877816565053445930509700465790646405099122803090186962052884393509756622318585848358890542978221956333147207726337243290279845984823630811842597545052648181432404685049008091613716771422493837408195317181663388101277132686244819467859280887115053536581531279999872142873380641422741516965852618004451195588098184575761335757933104121962331902838127380256161211306936002983919543390435901913619402139207399403189683883331316257610190804814367369614085207112426294476459723376734103536003015804327960960732916726355535658400049370515350844861322644688055482497424213153248960374654195238255548179619209785555308545054741617207283052855585270977338852056182098715966862832333312609189667419433706462772250238929314525785282667732084693699789509210534050011479466755448602695279368107116866388655229537718261093636500853575977697611739165821576246615499222044260135404351633346811430940744042107137472710827704117547696618075014809161204924534518388661232601213017532428444144990612960356482516398010480664438752710966271435933048504324136802256872973541593655118690657055381105905138397015192646120747899805904639252639310166820639863193930535098131150799721154058014106513821842898590108793690271848728776265337239175061258558344955028848465983690517445633441275033192214084529181662183445292653590523610299914703575563403728609170385294532642116625851753715035079096384310033867649380628435474689842703324216262401505236874830406338801767119056057489609860327259139108201914835678222284461700231960274733977751688188994042689625086492025999900689828832649689890683539868981236129349119253392871148967498216002800749324499777922824503118058906575646095244746720583377102274823432321656921197365568117132495559620360536938153416966424681233201283765081596280123835296521014444217793327031221779094226137553155977988855656302761834033560708098690468462048807823807480805310788385855354655600998050339814920452916496157297489169026415410594615018830070206846223066444618847709640782744360718323884858057933726991611615631883338274058892184503144485124553744008342085911482729226425276980176184744718126804913071626340074785663550975245262554864587881803629803995600679420547172636545171804477490169453369277732567982917487389033594607533761844243038027493802189973160346979120202942705731330148860031797743768382751883511296380592879969955959797331062942160786162801645605251899467382653597768259199188695876274838692509723685651289004308988036485552775575228937725103204806255784793969488714474422229372974264204705829813070861656416243777205348230096434535003935646496890199607659987046570769453288063655781740012023411433205895568652615027651053763934680797382013186570795539958856259900036016871131357534785022319491360238795097572471785412091717509824435341439178134279955000073166376082429158708588587879925190167662815650844546381640929165995618238346309791130549959092507116314298973430555357039539133288479047755708758395180807137270700319384682908531223207808950918041054149133515111941879245660322687959778603018144595042486395917705416430272069474408004585909995296764733605585182997651559286536528070598869104827638193062570096715800563826003748695635528911890660675211724301621008802798896144408829371743548983227906936413017166855311951530989777056242057151749613654942680748590769166385963277965011139538529569216863511946465775732900403663958173731566220086972289081210980528672194497459512514161261087048355829246806209569080064237411534764040286618595972790503707348057929792907593240295107622907694162208631692034618544745046512392419559927174147443049676977650501295117428137302749215164683039734377652287209596483149931170956988922355917614541632473660092908778985517693555043221519916289196050791863502194236199972782516543437497930981423181228618417538829915120892670133934283947301911231071039704644757298379444363021644681288339984030091062549625381081469780409677736006986174097362008000003202921695242839428303287853615749321667353847915259261829019709646969444381937890982019397946908698101079256842136393590518312694539029832252492575724341004899591130437815209783058101964191761981628203228032692314913382971844773392738269995160195870315320068820976069593868716355049635558861257588530454625553452268421068043199135529288998490681165522423081065124873839948121975440483296999867528266978676232908906363044512448924184010003492015054254570076802301205848479409204023511370413905368627009751425493282440726171616337430441212512984737519720082531560090759516269967450625144620726903020482003437257344374808024241544481625008615381060339311214144842629477439642064674812248497960589529694512610642828590754771492762248793790427416484858194727099525560194868700945651900054634563370759025200544909932588327415028257860204281727583197335405834615038269946617067541551470550909986954556812483032691536231105610989475571445450358716297235954282615449401570484699933139673772165218992764979061132564220591664404749877431240195276613234742907043882858033000587995642646861818846970361241065032597376012708124908264568014300018115360439596313503360535965484440413314323431112745602630760217336653490727340826141235904039474248880189491162922024510922107581240929790751249565691799255562695217090657302984984948694461763801783117508395259055551835772587666677223198872449364997095521526969575375209520878248856361740723599929766989738824535707168524433527422613412262706135177106631338449838210625635397188955717428896294229207510535941295365557375071065046728415841614203588771182153580723715621572691165146696468186327248653486760673936544027891992440907924763048194046342289988689624384753384515070971838262619922371460392816287557659622115717307692886883308607338314939455714908468495116227114386698344631308991395592516456041909889578850917501907226133611547611691211844753673096626486026214570936986923894956011017851740888423877141872610113907533656361422509217176078150058434674194294283546713767315165739718194905407289739717677501808023358722178811606685644088406697690082254641759115100098807260182670222399638516286835731363441270597216218171580259384354771093503324202139962301683031518910705034356540236207915543587390400962158495098672399151340641439229436919507601176105288643732088121566180451051094498927281954124442519952857206146033116296065984589468924434361833816257484407579067519799098761853302372365842964726024531025048522146239602625040245913820113674739748624023861612059493169915721061689983877138393488598293313428789978637227506639959350706609823465850777858940395562509347652417252746098360978938301665716296026426180265918836086508735337666404921326273001212598583031485192091872320668892492298796048484762477310149975242506657360254611579978454110776626185549789758809927007305476892522518678626118631171261185420049164426547492577691749156578178737950703868182893566799923239782430974320972748825578056201283611150216094859913359945682198569908491866410589325577954230264339450797450020937883833400597734098239969948538393595998053590145704455074972213642811519937397634442018484854392378198818704804586187757788992973444671707898182775938363502264619340634891772785691426664950698526471384741566084204408462453393952401020132038958797384385959474438504428858356680568339895217116312182421218240469048796627456546184979415088205089430677191607861465819768487903141613791810979273794860458572103710697125178294082561836374474845075634550512211308149891015049284662398044710448588213864868888283904566401377616104524724027930633744213933361992188306948276361403021394884448504619422857129640473261035685870194130913839748291078473984305420138863910127508399706620437545304828978119717781711585781240259712057214453273119456314532042178098094776247761535736904725094701349472984867700635679954029868261258941053878018101234352858548482694551828776348080876536996076655143833867245683308774113553287572289677535820849291133377626332950639445843395546996958718770593726946994563952376535203822627062758387843564738406683468815921318096004850364649646872718409497077374652705330311485874026459145428280824623356272657688554217881889872217295130340170452650924092030886860978162126741587094914113089026374328568393865099393484636266493880183039384193927552406116058032461541679462745373925528745490540216839599194633507680370890610824011671184581700881423080555142929748186031216899541007945211486918507869538041612827178361536860856236746471597817701648610061102010159586402216639430856365120139180306828617968092197284308768953622376613906413231850641254479257521675711231432758657389883477872617661609422301151903507982340597736875216966547409115988356756547609637212024455747148668887211081656402005115262587034256218360234725219699435916160936171392798697829581670490429414134349151242444633533233618516500325152464757536613631955340165746471963854064217433036787025522853837350782461525814227793018832555138456576746799812244104705534069634488584958940224360954289241463470681325796469946806218373106707592879805570131064918173635758874197205096706439458118779952655686546142235309461632150614879552196520593837341242260696358208355351414802213354642250705405670165152917513957038392035526460470974414166293885285955443591293874823518983869063060915778364685626082065662879990228083894708979531421182522697780570059480968006764998685598959736574854390808903261782771085181351059337717205983579012869710671363100686970329011494473459799653061090901616222243002940152906480677691777404896429652734929427635879712236637206446429868725161621884531308150108365082530004232109799161571075024699964025813271489043572184676948096537223404871239332213770667273347848639596845111159216724830648437163937402207009873398791747847324596144135588566584967195317252877078229264004380792948693873540045884936879103008712773251768671935105184254487427186253270793315295776957880492687506251049801152171593291993201102861282147530363790786167828898317539317612628893862476052587400331257821294201719016600424650321531490356739142432700172583115830903375945221673255504745079669661128408780699866260757116111946730316056340564442296015984282234602311034560731888681405944205428482159176607777677310478158438100003313646662721800771974468660682954972450378242335765607978221457694705926687093201570665292578263995308994191026728961282826917119581345797408853695895768964373549104651108440253392077527473791817974082833486638102201187500624852646339831180585033382212290794163709478538001781908552958944090110995875760993940125783707269165122226420949828058565039413669780810874522346102234805742543181378943962324296941840760403993497007687549876492702387762527820470350152239008906052354979707117625483756654428963344000810328868792800679021838366405020449057555901142731453146406076386183881006078656380051107249355333760016757294473970817611441487069938412253569633837371453970321784969293496212069898756814328825204144360418445442257815233850583018103715480159519064146666511794497225428742293733670746775015966201051358984999302556147750428519403681046749531992071254888850676110865032996774392168830422521898193439188847628862572763096468484941016059243152121261556978165640146035582887136992227749344493656336118444392032053949022419551913914421536632852585240017600526575349025829900575558580102804064902367305327331456202604418843250037833684637913599083411638233752659203689359132179230228233969766630458261288572355459807015332775316107777906296850106307280009929584578603338468692540980546334388864021118574234251820993677925323254002112796733422044559014178380247272504002002973203158824351807117168901547152407804474774777209133227074794896573900112873134598649711211137860189777932904571443107012679538335089225273698225430792044980182254770491347883678153857788625822067492448481047063212495916244301821781791761147080886309185540273704256811805040720999099372621955422943591997386046462705150857784870149587733773981509471866963820099698004321111556789449273035806380664198884273326044596635068861411189674974957432510025798763075997497858343625237445796876840708083811913685472419790764982307323722976757109491120217659052519555744320252163767788053832334051030157338481485398572553968561488267571304046270639665861409626424676865036881082606618706357673049680605366725646456462691106985850142259973268668946280820822408619018165041404286622073171805085378522210376877001919556394735229819610816616411007701262693972051850300672101621658020998530938237663658520719351988384195831277154206172558435006612878571709060610470576496050054106816420156581923783561976157523476381909107522642047596271919352106548806073536804627880458706637114693667606380083733048925781171240905953145532411152520394910747167707982938884385281489470431004679705183261779577319830568187955398372621244246530908968554156232737132701420021345672041733460949578103609558083568264282259911262345645373657298930109340903146069468684004705523797367252136588678725318116652437044049177058421254382886617164897951454074615938840929295237615890846584585480217131807866953532049998317109837893822993201796826566650774845601313246334611486666289320546222192547533272051144806569594213316409340564868225664569341557289954857279807352486500284199777711897133859420822445241690367942328527151080980101161355565493415117626103023622024972826523824555595541514451959055635086711650706172978232604443862441831674258243479871939001565615047466132076430918255521388330617246059756359155573499813816736568361593483656257375106686066476120518581095333871428825158177227923567530082329532972365744061735392699028246178517820896324232183375046173746442041564269864386320476292544207827026528716086224450308977729583733305823280173910997664694415934554007245864113291526572565349559968189093152967688126171740121713560371965237214718441427158399440804093824480049084550513107374269332373939503804715657242842710838187684317463530887864499391274002796918867897196621704925539217356017364769030123099554792085613753227116889699892499326803937740450395430172864614874569417324331427929297048328413231484730865536703023897222084318937455427491018829730946432300416601661084954727079915858585389670752898813223664083743405804802287164217831167489483629380143566956379061765780175934236571776984481022768115253945839395281999192986096645404295129257789146168109671978600449549941514812293740511749463920495526415177419893249925811960484333129727176949574416057224482942084516724168708141276004871889733828921999585802689986968002470628104009036921135841565903450589840005853841328383223882431994988386915229221836257449023817407300877670803693411519045352235651032768938204927621995619370343765966108344713918746081096553948521315385880447159802837347897765189166437664274099995855262250303332070970829120293385071573371081430021663389566796937942491900962001260174976874233890667547735630014598562940929574288066153477574836294302940927256844378272031958036080131484667823427085699390448862561141308213861530893372871396871776556976443255189906315056312361459244209749068473943066767836215166025135026119552359012417148088776318965175226505071156159331130751250149841923958696136424910988868459294517779931426435619271518868118569901936663717155709940137133921224107799517522567539820602923193925057227762893257281707216821846592246481023667402213026768674204599848999982645288335874972716920604148752505320742049861567322835995319889705256867716814668407886111935050617169371366853096232043037410540975129289691024236231614422471942850008812564879715465500475620255504841421709976871435971897811696416655202528309769404817343189625590593260715770098496121750145414028935633277336252947324337325834562995115125544597463349503763359441884117777442974094385033656256930150991806860606935638536312309574657875084340915096601918359473056681013986247009010936045888770654133552687924824861889190525291475991190826350504447324923600290600869569083832499930651194704518055548598006528455992204664369348267496296118340151216323313134567479110938225360170461269081494417463012595114091752877495269332759087256479936140598544170173114958266204865344940213824763761121323498897046569867535244346540340014516885118224092252373008914221626775132725450540288376823277612225156727477386077563354051773766187374813896225188964108865000310768313529331806239282461999495257510995196005429890910847451901113082939547714528424346786285218473150141443687654229715630637671604425439552783328434365890571307788356564139404211873229933708204733664343229333222608940801608147590327134185618720282019885506486404427991438177312500428130621862966088117756292670781468151404516804355637071460481447692563080776994503904543125328999205725282565044902287331708080847206104085879634368218145421238922823179111666134659576926479270845232900851888262822170713350573562945247639501087715322832898911367836392845420248903507374811974425543525363650789673358767123823781149691291708951930014428678756228767453412976076021329251996924540004589286850396218253575818263366205376737139438704411787143506784600067800201831956818527865137152308600675396283029784457646028336112631679183916954622212897520166277785178301793068870425138214854519370933254222757265559891014680029418402405825142994484112998301304487997838523914936002305664423018852519100844119187679484792560108805111665470360216876518515780217912217762732739991952207798707129602435097948805032139995326402340684924329604512978160091445413289095770971298375760748743224876527757456602271168143491618648473145431527329677073875196272603589109233261462771254574270502869834347673067513224106161468832566386387532044899524660319596889055406568329725489182295143262117216048176453217304766124029785751684400422598225789220542072917657858488891617739658974740489584707528552412756060755479682649789007801452437301049498853101960182910509009665924516911912109113433430222903369452137527101941502487685720951320125992524047466636335376880949579423245993190461455648922450745309774297522808088286292943990547936989113130016091901444872211648046849444723947619046685538643067073801777866499849393154964459071539440268056533778409357103310587959870504240520782453294961422230995059813539453172700349574531456309958181988342093784663865554225349282671823301292125341701881172648634173086398284671525998985085168564439606848332869409648880643750753087465463395063873219889935882577209128942563646534111572851529263309344860122710868695454732226494654854761116418123072945266803511202896376759870079606716468500548199746634849959629182652897301878167029808673745648659886680312872176178217115720119525059103481069564465480897677731851562915272205269973985424297140985118844132662943372348277069282286518103197132374450918054047124431397143474292310071667594534376873814428184531037491747736549899078676245272416195563140318073727146673645949728220663392632434459722862345721059586607119964628797354193638325532407638751434083050913011834452476174732982340280448067555155822760335699032678992752821757574713300202560158366470539734269446523135836274572976776028408085217599386335738407395541648378960879830910239273671293380072724926983904582391157594991483892883777310598003077452313083542029727808509674915431775371437196259587477247437418308155299881253980375279523140594427578853140987008042233852743670333335131252186567621553165732509645976456990365020129726988314016498504716577343934222546225495660541782997559953063440076282162611851249355242424172447430659568657644556808795910743254391756771721545766674526694783489926236880680300124596315742359254483056969987998406192482456084977265316434221302389941240184366233281030064786342609781004899793481787251076251678846247846878156403591099480042840099978251124789760783423228302178320832899730587733069758582234508505620133283888112930516857043658028317769493226576070330074878383354784314726134554808478849661043096517393556215462795594413332019223846294137407422752510924227823280636711792616425430166758625082794688797029436347928461552247673149890158371223122419755855144425944345584709698781976764764159318707227324188816260714620733457134975741892912510543811035001889405334432253364962929437141632728339909997697309375620071598860379960850771189125514950236897394290497422254142032111438934087957266248716060682696931099350771356699681553166680657751523526224605072605438829764543878973452676486631969845906315198045579032333547611877846045431270749288590244790457553599612153702391117547440485217998505405639431582208514567998939978811613610192723927493030373035682894314210925777358390413905876851417277835299565630742010979051992611670282747531033836936719060637948167591877375934102821887536442280121675410115289838493752954707567744547480949547082099257980935538907925127475623472268610625396339731977828074923623283924197271433695625770593415292548033244139536486994517149790866823851470893396440477704149062811673634407451246554509904290263800134514349418166120608420651981819477970087990055535751072412117968106846345352214062416092997092106428319637459780082983933271232028899540695507962490365224120938533113773646221518849147371077003260078965290020192817882034167015085129077844545544012404553514976250305550841546492597771599853703665088459743682874124612112042561511340650120939429753384479489482287348910425385255439870015639858523563806728739397085432163310397276521591722786882808797698755180011187531746285814245290075044849519248316129158547650744232827083650903285271927448925550084677383777900331490347823250178038020202494546405635172640695272287426702877796408988558506793026265088974704175152299677601945463475914574392976911812333127265910731651171898004353578846053642960663016657941688241501629985231144625287284393334253287632983579501440072811606657367174227008477615442999131535960534393482014024899406237675820228443672950725597466140460918268639141113198342093303374124790635217054254642453149145118597845419123057644521345092524171184499351306149775293703351213607083233588255771172336481718536090379586716341010882936990386307155371504854557488703688973972291631965408776975558334915067611532904632891725881047556237436751683267976872367309601716096241712714299974852113187359902359480378766381548285576537937112915368143522004070184232871706021993974122743778314774167632709622989456485980404543781691401997618700380759323166934283887209984652454724815425053717432498991741056931468989250744400479739086870285802040607502147358079666356194977435920701664245626204054244590295006174963468962976131068082157574329523827864996484026076924724558622886416694747455087673132551471033572056106164980105752955552331550641236691860841048965513798663407150551827994035258743602921331408356602325366220997376667789854681826663466899767758811120977900246199072695038688886827816193173047379270544536734846517262065815390433471980697026978159831998053798508229362049636092769788146796170616355974988942963010594654610664325182843090763377300436704687255194197044563229917231606568371026716106136952128502474745277106892230285224820729050767401461382980673853028366734440425332966808813815522067500594873818618779073980863615656139988611945147450533465165611623942852883076262463666315120521536814587870503425021891253425703422945202312870000619314971202075787736982644821379031165644205950731832861722185818878264825524692446143452249417309561037972364822267398334842464567875180513815388976955371124268485091025614893215346982965602901115547492559779862730053841187937454335214464956529480893230658836996789835245897220624910426673180508775846099637295917654921016707772156044777085234741836959873907484038399052075995979870338402329083146809223457859753417734899527030173255086052412977987501921191803954428460889819948959984884098423969591653329481585457624168490947734460388963711218007414443013896811940722491852700144085315873845516411563261420837685779912830079024893352805677340808924494951350727591826500290940668347684950988748637092510732672915855082204597998874560283133870294469577779654693371778396035975359428529174302692535951317834550980657141657943373770100290892228458823153107483794721400640700480247088344253839860145137708816982871690271644514975347411159240053876236114580986234797102654249013446648730797048302288362849868680350141748646646168433690190661238816067104875754700501750046206775691855299312361777770827268181346938688658233897057419242237535751808903973383798387949987749725458960294679801739273555620956473796832184081256596011135708471758652550396160135837281792129483413771723567574314121128332900095774868402256837589576260901065624787455924398280669747788840725603169836678499121036804329462561285035510664037468203136818080763701727705425353783424655334918250315447948655526544316464468483278041846256298674975255589763453067746598135533264378969339675217894019303747828318685921335409086430513907895603262242147946668631473226249145759273630636652215341623926508332272103334305088814383634703525886238420213708377081111774278934331851237400191447313517613299718372804270223132401712376833205074845445759694222181565910994480785891329263136537118704673384459566752067107630189656252515939737475843253369626409747816432683192314403855025589057425131859494552955397902084739224158519138519455520422169035322822046152320045951746150997152448327948340756158922126171321360811750095822609264323953728459986141431892312957088374749723573522959016875278068496283965615902882080792331930620035632972138975734411716617454406391315316398132598021447664982316218932256348069126462685004863151110634063801786463467964525451872460854758689292320534345945982245888470374715380710509198107953652256371614533899561412424992487255337860242256944826681329793322169568798974838029512241238450592930489796465046523723777021677456776728448223565844873937621453488694469027164415833191197841040128291249649757904497009805636219323556391906131306731407838280787504298974440374643644096384792386504105381593628221160428713795263348775128730818848915830141224032523177874696284948781543066425160833483870461222306805405479387733488226817616314890750240187194218059873202365369120376341703468911257944703445050717305536299034603842431081068140083049403689251268934725280887302859870700409543483837367563110789939899506184080977506907111710190151551556765252761236922347601028210959826933274333254785882215143969759075751884213468872458100062671599037097356832911051555725691694854795445379998150400992210405090698384510962225860608847817675665121346345684329158984091617599949728193843709649588354368473816634677012439932240204240039439135573465287282988198221596355999921061696832950558444797937288753172275828534803899238084001708161688748526527146949828276139503319084270457540914119820538618094165816070445046161313273589840772845869586530315408366073011818170895123435349123648156852334076203079093750957012358552291943255318105190058758855871067495173268198825520964540039834097874634940897288856442887016637315650885880353669070859501508393124346294588396972651091937779820187979619083096072664067417165740159521930154731634836322679528441545154382682445966471259629896787612408944628309426786720946657944560365373864834087924051822842751360848328355084480188151388586723803243031063510868132109388607297315736005769841565278531900071804580187047773521704739644603061539525791838957498645444878497219439978976940450159378166883049947909156920579715249880960343788473272729882315603192238956184816430425792769502085372331431766825273825568251660133786968385066032319079414634623896370402704324191878635573723271100525014027312956882767825219743509942398760124496889704160031715991436516964460986340381488543760862037252284667759738035852476421828968973499472394791326776409847926916480436365283739847983525499822689037018896688408701701583172455522279714714124876558448084043130440857791967433195197333912310496155553095002235061561543332270608208001950704181347784449979268666563155431561243031305746142571522097901241511917015987760182136119682219526055030873874746392550232957257375446897540195037336676332017796425353128515454111407419154133588886142423072305655938326287631668107308219072177812801943846537521566189486569520168486254635408839021510865168322279582021021151420905841499446978926955851590653055452591332816976464608398978043349268235074360666860256877847636959092181055126301813927532063275100936053644199898483680859634770372169493501573475619265651232101010864431787609287313578939330601469845708571578637619460008252746173117825306023520911195716612967520117366417974903107984156856260729103428514634717304641902609443301103169059422860940695005416552000283530351840058129498076007556838865614735303697700428019696091617877336999295913830613600414860681879961310049417002511522046594891953951218706769636188624459447745453953212043290549718096718641363692073015258828298420142612505496512364206424625317440843252320680036148829660306998880891017477971034585245221396071208403192693747071657568276871614015161662891122619641463676450297734915970107620095396212350223402069997382179513813526078748072052824099431841893273138622758328960075337503101887746899346759212413983290402030166710008001230414398021365958220601347391289845468884424876741887355755078842702493081583212425776942096839541761519703297894464762895316545160770031817046159238610743373718214893137770731475761331452971483002914261297240169444168182971047206380151726038312834946928384013966707469683672394993721912321076670298838478041664734949785326118009652480303915542990590737180083631761313399982091550825590080852514284401216098908676324208770476391582232350756293497621877693924694166853302409382526912215393941880026674661398199198287907363755957996671554867898542604837355865930262248747936182078345841675803802199648983347936255756698998346688395927794873412459644117464145894469586493213277183691964424964908087850040023389117266838558344506429444923574136586589124261286009689241265215092663795741728284034726131239616130367788796512863621693843656369173112372718733371199214947648724530257828469919723829015330600207109365891872252583071661810155972068544505938372905575994243948292558602889921358588132175924064318669545434342143859758777534598240290355602739299379629983098345986116849621908859763289405657542295541763689431109104418116391160091737015556570501261934112618677239942722113315938082010256346947552319203851737156696345677571199406965886933296839653697007514799161683714369979413698510083449715148282012547690776947386789113825999910875945976443079175058079416242456978212451162705327629741809203088871101546845358801634221388158604151496622208214323660845159635583015865090419345851248936802045721514231351454448631920691900845356354215093653067870153345050203001047594186384866684684808544132934917479233341434668281500152021648159018746695974365561582472222483808077550109692704291990385476781997272692812853250847019978598071763310779157467522561707433298433863988708481792825926859554837413894786573212057769827357901461994967842422996773248291134804584975210044323565240763278182008374628058178411895656813557791568595295336170128295497878876273494719975305454923019518392964575527482874559526370973564875377717673358034589396612235124371781870947826977962737869612188691072328978608247987063938528763796715843299151756256129386161259127514572856084490397430988224205248973863016691925882451194884058468459158118820688119564612529921106547956769916571436346516609227311858512508698753123167475677574130931698378269948336019292922168289582770420934374797625503048086402489107866743722596147275304820837799194056860958485107842254827864045799660070074074277043073205388799864993482202326041363760236774485111690721683318257451237124780417161993330931756945094230385625785380174706069047200167712890555656748735416286359250743807867406417683789021954499656479292580824611100407552495176659693137453089744266929187573517196269633127058345533876142094688842893161212376865830727100005272652805708421638401648762548781415871692007968581260130955090800503780573724208841314537628041380691005480590733813443497208873755774203390531876716404836756049332177365757230196624781408473286507248257153025535622612266513984330022501853480021913550390673072080149025605911279380809343514843946149851726054764091475560260672884849117367110152657367026068938652704633667947440352807120411214211577664271835832569965930519826062254716559924925421883470262103811292228455153237817216345395022749571952554893396158513975283863932589171180345559808014842220368127154310053248736607362157853965271254819489634936664312471835687910069153656826664498026959681385631666645291879870855592136194955763460371098844960939370125831323381053205539232634833032366576913146998545148601642910524595243573586626763265332557750448653130404263675169572143525338814420757974677375094943491162551848534119591959222926642697867890769722580504280439039109403713178827288473333134109825652585267709234835678292034038717636791237263738388327159745055435145893805444296645328777469511953329299008599186109163344279802140823225544001071142812623202387729648081811984544609330493163491473460446894569980835368453225620666314231851610871584011760649897943624460222812491265089978221034638101573272165168166049170337188383220907703049118812286113974320773708231589397242548379761065369942758423788877883491339890281874917263118590564902435160762595093792887270835803072103098721463270065483036181700813618159566853595463830564268337238211893304836571278677832207387339949286426468828472141689916395829249314989521559642524179937312189053666749667728703775963316009451107729048162075241349810390365743865777475559279887818048204030066281862111421296601659615006078421557132708652447560896808636310431221794129381944373411071793035529798789799479128196787803102571615578804557711889243319047443693313412474898156548555782843084806373304754187807608692824686878469992680494632930091734449576547011933405670758409227290383221392220368437656680398826289123627699555363381754780370736296036381827750089749977440218220005233624386378177250263553586776180722580135917609721108055970705814785662128045171377728390833338897487532207098247177440853938777520530819248339460524013603860159671710043204632672103380691395396895526258154685078269289224341014361297927425839825847034648463309055663500336582558018990071552828061308593781339901104786653620581868490429100322537416372485189825403567105157226378228953628349081450733989487519805361446538743159100616683914862879017675461326318984224982349988662622974009056948583204713112032185699085845613539038839500776915446806629681273951742590631604617631327220736623153585779259015884392561094968836878940730239030355039841474147481544334715334431544478902889450905294089465594513888711606749363845427773952899909055255124316723022831993408844057393395374701685375966471848597904422233726783547780264857809672772267109077365343798522681642145627931540212865809605036137365416600011210624529858417205279578056898210859873579898403706328625532086216933570733763045251506583237733294034499684725125306716259234814134014779274839719408099708102832284953792235621116784368595815695091642078454300169551772499946113724104359295087053088099071047597226110292829796035449548241141259661217095150457347157517876470575573378676422002972466374581443269748739110041362213686173684672466759657908877435873784680195813997082777731418310254668903748672150148870750124724590993056960913399435404382319171607722440428269680796670543124184118294692005155190058509295641309521787704874309241991313310087928500574390375154004924380264015152548196306120509727286741089557905877566359914217301961103904706091739957067954122845851751845337318000334175264018226148752926230797431497122549970891853986779232733714508402452795314446435390644722269826803746867450123627866305846286690681304256516815725500063002478779817146238772735810977062161003438540490768871411124864886781347467059216176707979326111084627419246840369889220814710689931280037317765667107687019102198602519243621128540598623816884675468264272342014610308138088157086719737250724423766120851260417975936345515635481964949037469975465161977138643616043963782998106797965301355442512796005528267876562744111134819195891930570860049621007912652473902903461386768469254429198564459862975072176910183340187164323994363155928866045441625457555857720083107307142828141183673381153588845931326472040357329465996683536412658645048306109051121949913371605768169498554060863005407762725120073513642483663205923179555387776630228755599378853546603310860288494992542632479053267651990482925941671912223357261383060356098302797750654109580324054162802521347346823730909041134614946322955653874901114465714802730693919318821793159841253894646239237265384825357016756582872389756988170723895723536813847506698416071764299161592653325920619138407154089487903037137540402279250501295361934713212011570543519067950029308954086558215874233234631547275483696370897273749511960143802307210845391780541525003690492436610378867358737466021415329790683433279173505383289417794530396160319205113820183481752870027117468710299315551389879320991540690581795224655366599652958579808363481182477618269893938300845494334009149342605219985145877490586749493326343968051111423540087559732778615769890877789892848102454602480536246879931099945572178932607659760452417704071333305462637713901632273696122008580298679874381230840744707428566905434931090159613984849289444111125696626853139444097631377085103792964559143042419593936982709914843426779744065185523012036549594546887894673950257920641696933430391285671084026391804314005914212755363220040701693939836820340333103721126828342316692491992506221281807461151150281390100169222555792644901706584524241934641741767754910665902283214305545196133934935434332145112682139443608944375270634314690738624348507070981836748190937593526567403621556302040403390111987717539153498935939417300976918898544643773215888078591542012540321356257415961201573684986088349143523448397737851218666607049439081786832475640411221677073327116142665210499692049915674368969470552032824774400711454131374559824405319805051393784775939198388807696903229502771704456730916644681032218231165236078755103444717503401125341462958856199953952415102943556722410384721296271624398097581978993192070507101844443767487479967844075738060454139690986394254836033650465707481270080922787825798557749501722877293932867756450863905808529743258341779535170513060594551655994564180590599349265416512057802614505664138532302317265333010575063622746917625123857534912895540179323753449426258985875764580449212292364515641245575081770805105017919049997648017654361475598780674186853939331598561360846546539085847900695424917864733944096047752605933632962189071898383283906593084605247313046108782075226690903963909463483156678703743038160088683941939150546372901002129771845598148002073017769175377039622814527889261356114599735256413969130297351426367747133059397437179198061426494359787869928443941583577104601362130466371383554637490792339459741866935985160289299396432317567618384129083466447139833767357388843115214767910468410207497816706667761423258516829972201045396132196039642143099009683110786450616302771698395030804900931464522159466400751168337600472274136942395009922417039988087263013205156022286167005970754421305746178334207978553876113763951296018857033746669644185393156578224236054939762813502666040468164261407347878137038050371592282130426583620849964516581433410908835147935150607236138106380223087748739414903135276276400259392985849654333018666077455049902083064749512967756753707867580515662503520397758402931309042702078125401602323148763375367947976188197420660982665098771648317050951387237034412565429638788889945034684596064423021583127690010025598972150504722652021172677500740688878178082855242030426221792808856705408434664404072611769203694465899098789837687456381936731811306699170432672222608990905069874834560598685889362682725377551708676669184600016869525120275025312210907198993088891496302423866508681178118868676469600787207461613870838921474797006564898792724464277998485213208363438805912136469714805615530059251890214767873872088323039842110189254292170915723109955367538768642363852420133723571178011925352203951927796898007184584325721070124215025056125048712192526062546962202871636779708726756609144716957566155568686191205182184484149529102286542595099494480853048101677864791363943957194747771810565836340393726223014977226952862113993067780035849058555880895931350624050987920559029307561603225300424226112794820014492507439550141172525552267240343072145539322511863613283002543353971727770845028418709598740447346718811046245681341532971743050809891893139019286400759781910182382814722380524309093221774058429212890013322623954027220351910996145219685538250032504354848714093248060440558557141783210414401573382594571466665697589741502204861494571117374870353865330941993931652949326652288733113791992140982695060454460945599358823579313610534724150414661683957503420904291297295646297212562707627649922203333503001950915979088317687727803430601695239142620145204503468726470177376855064468973677336691748880547514027942543190967782992404426367213480643286966052266753359105537168934298274269620939616662842784961309484820361225768739850579425983025177545865214898202635670651650340263156812805599863542460136936607845034151901668379453149485417733360987380343184721241349369846415524626575877539086532963879881220816439941326853106380352677196248136594407142974013463078745123349551366218638288614082444801088978090380603454256032519613700685473275845140256710687264950576545888615389835603001245058143780790665151192581349466973671592879052278169215518161130947407369859971688660354076993639767244802061653555440933741314820312237914548805011571733606579216854823846041597830336491441308177761269123531283109314514847660666860816880898102553050205411856657032650426297949355753404319899787013530703426832990801296981436051207396633243287844292079974141962736803725812316678829567673943396471838823698590331447296492809153257115062742540739494021130611406092184352969412184941953539659608169459625895814971341732932939904739136945163795500675156539664271579817629890562471556963512500800908844337589140352017294772841733796347247165660490976214443651180728987947153271116462504797240036823717146792832888453498093905272169001028574119834084507079109187690568679429627721173243968160747820349113222364392575531001286945149341567449828745408430060087870785499829303489007447945051806828531151062474367762438641290359617802844268432735008980104011083699988356096462054903342802877942085037125896777668344249956113023888767162028226520857896171340626834529836859565010538682105362564164926203780346512635700720352427110046403821385812335835918235700381673582829425561666227284562990538510219275145349877265450660950634974548640957036300806579211246877185711473126101781642968282578275869127677661513611568567941169727494356893526186427615477952369610523001671090326960194315716706613851038459596378250174230849668861811350200294966899695383587687074410958108327322620601331268572266777461396476424578455300851474138448695498900693081056179373049558612438503872367989142252245012826708031150870938190964591296021028417784017134307731384745646703010869588138885644690696632625498755107238657552900628191675867313780516344485760967673148380725342263748831827626923440294648455732415697155733809414136673086019383984133123653715996951924286724829948446942917974174333982711338769890423346087354775663462745930948457299579278187053638191894274858575046141705473154325366547028511928793156947164108090295148494053364981650354989113492954012885670906281292211287199686317227190745296390122022258584962612993571465271171076936534078267098674765749527004573296658313303382907946151083086141426633585818856413313757042648335474722156900788900194864910513465193821102053184568978923972800137680368691286630470342190575612646565011858808304693580302914014638296217074901769171829157673561988765258098112923354786398345792466899065398793395733991423794950374138383751171997643745109861416739586045422989197821615539266506197625813925809109284967195253270903850746406082796466331931799534236639462176505461391820114761553379367076456430856124891473135404904196543740291721286794708938189299030407039404774316263164256718496914461874718484027414273630396982320539842276935460209713482432438845835658712780237895828115900372414249173930684652333223445311802775859571212668348513915843680240785622122532167940838180914856297237338591039041327628557741036882600930842784723652008239808837568374856236629856484939673047500047979409039265352474506489466145037590575463109533835877083504859675186191034083707686711318535967114964846959244299346421465215599186776088600102924774291563539248470437073539203927674190078614830051972180390186001181355161357268489616388954240728580292978210528227773542863778613426852437050242782880525204158315953237435439453717204176632301735507170536342794643018161596604098876147763225203757851546377299640113941362497988882138366422346237494728536099853616035000431233996262796044328234345590097535554608961335760711516600412040662833406120797481801776719551725717323111610981468761330386617878428872897635941917984510192231722425196717303596385941944446558668151150012362443805029118925656372767216088313715447784238691767047580504267246378005190497386602489162051756410195526873189074375986886862291268172186675253179456911053217999037492345466523047612326916284902069102278626258297410728786255693409906210181773787220734773950924228395941946039652435271255532076424912457837745584369857261393603116679391072982682462396589360468634921322742636516491014272001218878686001283061763570720881793890253530501650873646613689647590543655839169728272359897411102912612502183563073461654512947503824889413142039029159089495604060904716747895371832196965646464834528443745090977285626654959923838708330341344918695996335292810387929159129526692753330188748229115012725253374517584402924138190066994291559036630703311039312415841818764256304993977694460937096873565391671185920577341020878916999411167273193704519851980478317737680693079650207921093810821936212907868168795879481426149920353331612494931565645676330567521413301441238804931249341573467215893254614906363575416651503628546784015452164959948730763247207402396304057381356394065841620260916561300431088325750412071792401620665966642582122235323350351442851247662436913014867844208215781923557315809406779383410456886305331635178856064590108536996917099188597469344868321319801446679147997143704428061180737160376268261641191154808167204019389855505033916866329252439885784781241847247142159603932281419979277378041974610835125331409902506337529374812757712293560778993044912183925358933894515905726016584095857699282213147430520526612918076239461366130361266631594407440926728428307720097983426453323252953013900995339290961925271271122799024635761090941035005563549079286424865892856651255040748834646278245411389994517791719442019086830210137585121110674989983985725805564975522357441782348518724199524396988647456990254710852063415852474694193831958579783612334992743307627460594738217101964600187144994586741621290732217906227659226611730696327819678320903184646574849251520363956426714304923684415149315212630662339824856755532357493781044890724722141714292141133796544833584812162250402463314450254560012947164643328383626743806231027520558546998608187763514350814553068025646380005588989426718439190956260109188547681530723356314579536272644138521851388578865109807387400647980358316317168671030744133680108406379580422379620711705577158566930853682441792985962275233238407113871719942837265551191544464685406721504503911016448798538494583781903347511601067310170408804010364352792653184350281241540640842825064327598995750395537388498897929444430208522005495022507982891310763245776437564186896515056228389087029364416607984119178683851367706783079392015008825800632511743131448669276172477647167023749193401655611988933551018275643725436602354507927783569213494697886807734810626742974031758204461309236111431340362455994672144487532525556133787970740431666328544405221537283431559569821116981175031359542360773905650062590634522439700672013689967704021175471046200512161830117633632668171093427680146337438097785982376950200192574379711630693514917719757066751621441595548117907704738274770520065876140526388159441991670885871446438216771912491631134024450660160067928339975510521947703373751144276606929183874617375313576270024876661383371928476177888305198400712691551652796054614349745118823391863668735942668409995010778293235280714255706169110786133908538649797351714126783122787892086751836679830542982763287231152074829746545321576882675915837845287690060035537794289183501258471453188429504613452216948468869152381101972407018334739848878872810288120446457237061873437935680406438035710773920655420958096786900789677858066595405809236519191681882247471881339320288749644071188195216775704187889840758187238811329373439596095569862187991665129178937584921755451065840542602249051168815303280255037349540503288637918653476342695659210025428336692140323977389261396063724267540496138715932158354410326716381570773948724604603362473003214847249502582793855616323233884547805951263189730690433126318614485044912205555798640880308682436028894584372452638305384395245176729051170499703373978311776425864423309498610724547301478610481661322915557374394170986104401413530786210421024931370937547706065676526258592271992750171006127530085858798617148272749672549165093300229587253356904837071129189960424162607757088724765977564489507725872203119920186359483943655820839310076959675324793904793468077280565587977918008548208796982684851415911469714020901336954476488530096194538961734649452694126374126131690132741491749173969135469656865050367341230562141099964486161254519138020148622943716971279951074693195746934019334236793211880679415941807812197338965098809005118993551819478324107041760334463526790512344310299354922609098857324296219178841296586982534024582903359181842238379883001807626898499507922318713992487017358424499160226897941608265512307927538737948226589644686526755593408801262657226609947574050096220582137079763884192612922994688218149683916230807907383044107908898099247356455608816793686364561911650020528213589879269927804960954931581214026248173659587609944543956825577054655247110080804199602516920089487236154067972852378207470427123797615380399149521288981834572516300269228501400656272450529489390481557971621338030312877845415840640272579740637472760724481198254093035702176102598974357532131764969381448568496661074077096248381769589889345494832628876468336105203135610655168848019276961454510523071030693458533986060524011458739340073880519358673146232553128078518081685224673003881295264628046348758072105324369628529182204747413728253139211833621235975544213544474378353557962115229870858593771198165329659536104654961322239530943746655191109322607723561167729465728672802773311765936984155766419005173194155990234792734364610721968112645139982979621260218391074556120788478557592536540307635358268874111875108025234913813086642224163484641548616627342421793265939570866143743300186737972510178438931985102902925975933863429633511665835392174679218380912073073498601678341603083200898988028100733274886080396982989755458034736255897441168544322680158138726524890364649631252217884191035909045162866057313469540999285627686085568509563274258865158126423023335730367106062412214421353977464534821499511222671655444211111767007251840690930701525924377191788117537369794124633026726012425700973458627407434229106234032870031161224481344500091958467059561845870619246637999344300349594739447156651298338916197956329853159995551018856169302827406224828104394143230366577739768072747371862426518611881052600145072099613676780280010688693955371927804540101815797287722946912584308580487012296545036208941540207347572739003636298411860000619222805502483836237437789561053317114636264669506523834262787168812754649426884615008522288019295834295365596428052810400128786101059490121711805215027133920511727998064762835088394299157125701343438560235233309466152064594894087516954315044801712855776251619568909171482729115504048622060072775799676377647995128806718615917112260960313886330979140688081051536415981356635669119359714041864204966707268547965811078489113030778360951582399359396128462986398507831188957379802814820622914012120076547096904793751719349667444381047241013785299401236206191818870199437989589169273866833518671064058515083071834103980719644259528879583874643627320622184417995406980691158377744215551117177057905418644942837282059855869615978830082940262948375562419928175974508811834813013214759586441813495220921677591975801828446474922231717671608423941975499675942046670811786039655255911133651969704195823397893789739205198453894024629743422409193842856280426355955693244634632456012476994847645407052697828136194982050221350247759915970048036588350157221079283660287212752079339340025812022281535879131828965293397130374566103347247642294130685726298393677210816112349564314132628098982390162021306151166743147737241847043752676608041995260249091831867084224321536735209733246669403924131967330089344712720226648295434320704196326865695412305066780663086094445791856181751591697389909352335679162931613401939061078112255682959981972658257797521609288280290440063426997890274729637554597237546669619610324889283736846907925568020181083203956759654550482958281881279693529755203459232157704279031515112919838179208664158066536796283408402229142371203856874446406842096491416500854205853876522761185966257701478772102945997829372980396392017257624049705230085904192690351181787572843063779060414403558365459370473537204357978332590881663500631247549647068656989834652804889724303738003283081782424027067283204559357702520278943775842994976702285134895725951544533315696994700064749056694407115074475756147944432950351525976512562841535149856920651650811299570835003697997133424398711987025497936425054802351176860684111532199914886480616965456861205925447986226993290923046599858170061782030529242471132010576349073389369215776120868252673131121917410971039706602051116133684736823121883315127061261684059960032143383803973622831493644933411732564617463669546013374203088851866669507353772291409122424140725383837452555523199536920473720355276338957106961284684307547957166642298980956824866928122560095851757462967158492600929031237627372837156587474014378645446697070199146661830066587310001544404658075317727627622299051703606879646146546568246579461403972343083441766651870377312047969544255895352640938738255248757429240665523593135493992533143622743354529350815686869348826173174918025379466365247591897121202778555816869809742825958861563857274348194737442323022620541508131183836311922996919778383979723337288511002115619588423638562243652697291440445523538409441400463585588396323795010700006900708073749041249673836292354134859043445222795593404283325017716005171459571328108912782543987020240686715481533966872519147703936188216478891189773921454383810184030947332380561941483424986601733588437385283018481333296449236335673060804206250376918478839632904992443041086268026636323879234017160499405797968836281781721681592803750261147151236699793114265086935842724922553604879036590905167809830170199816632911291656971538200844673008169928080788767894857296707627768977915140748695098549204534899556561955783628907102822063193664760750882717908154232902910593439568864579982060159046852178410017123921214048908423010616952025411622349680323601800077934033118699243878880116591707961564326220497252344295685410544857179462696677465725635058638211088156830254033222500911219929024534973854016638554938226209763090607834410452085626500883271954900307669527914470479009270325030773656052025576405833519426369132831029219938419132811934891576129741442058443682456942226482526721647485153157655976865147581783860989792291437387964170155602733941981890086784637328199870417706193701581925597811972297790174412391359695022511781361105496658378148866833565839711446267930430511278851177408026773176523160819970309903797297367730708207586071170564477753625945216160259644583217923296531656063689151664284834710608824605222843718912384028087978100585099233977208973203941834394015422190717127014061832622006618172350216166343345209605528828010503077921020644116642750986939005387575526227940739484061127537060898700485457524334648685637055157482114688740314451047760648024270023037203275928893261908721796002420260372707665299964812665294477573541836614780778163709925066096247799329088681721153825511648047655208605796056961635792748757226603953182405519646557110809080351795762860333344777743538024688534994993601666569864539040613276956435816041683556300955396986628618426376850251650828310386921078743950989953882795266777425869402457126870838961786307398862359279115036195966427158085202104018968931529916707286474882008795090770504542834446777498059113470980472085376049628493633073079462360992323458189607510232983559034351041400319088415961893633874419951833882347802939187900132695374342062058280817474085920461805690343098270008257529114856440524064279377903439610027130843505655034197166987981776596489519961192603278566336617118727169798263216658070530959007821274369898671302743690430991834297096404981181010507011863794027483971640197330193520984419150741033344199064285442069620121536089382555171622271577788619397345797249470811915592621954416834051829152904343920812345908679133924073560678442617496600057436523232460592824936643527127455730737429989425911298115711145233189499745923465074442184591244687756972512270651447453517988879120135560602195157901038591660679490897687637784898843763836981221568301764562442393948767663465871628002701486501517406814202735879843861861232804485440268995609330849143187712239991164696603916897182793317770242488830077503705985818203579462899845661367086111458826778907110730788309814092673581745215279825518788996061981390002356070748137930798790200423153326531102524915471139398259191947649914083455066588211915801600046054446867911494162458851635195087057765073397357961782047151186028367693751414571634576920256853409549850878172185085967070201853010597923004450173604636035840863205984034000712494025598443209555494531934629294504383048737917728055601791400865640051042561466533050180280562065283322631668405412416534542360508490983944998844255066934486176708561148051942244408577173519920859955503729160701937047068361347908775509710103512698973994434310226876290733765907740918567350407490999158759614020705754365827879770625400647464945312403371306303519226724130463939098074065327953173607489610892523143720569586082660721684627291798300301387711981790834817419672321339467494230045606799647344516441493485745945154894753429533790278590815073011353418072315908023669933932629124409781619361942447706934170699504323552555391906224217288930712218609721421249086454039213576238593311092723512422979986568711099988257304423015343246232240595750780506832468003620360283984033929151306196097018583042434112157825249505993151995067692425043757957358427961054299368026304022383328053502422528648441282582847069463226587273306979874744335370239162195002064112054849266535585872911268813477768290115232682592739412598845238153030354716285345244690664026092744194106088794035896998554724306036548021289179266187272791144157623814124816232294717993490028947048179070335630400246931440424419708106792716579367781766088885865223342331055208615715037866304657147920079827355297970293423793325339899074144776511735958370873914603166087884716174487669861140529757458500078990773747826262552955114119134368411767810270691006911346038468782736521010362689343782073180185497660634787196200011973749419232499839175487409708360532982111731922115149050021036427198805087296237745281796326642057392329759231882775101278500124380309750756039555072854803728284774633597357978208512762496313032340610727021344951729043376255969892794732348227378668510456964035434818802629498121825433959236293132700352130209893006590679819584091594463015511468013434559035887932572891758090119398771796110485795060455832697895209379564128103934852958351352678334963235007958182580684060962401361241918170947351905134126646679875084115887874812380565673879266196850382420803663380899079973474921893082922246247360323414399679891912485805458133551334499370011861835757316026485418491535732508545276681647166366062998793150123643471564073029066661933277035909645761749043172608088769177141469317622200418082927247157992234193811425222428391892943805017573319178826475530617696705533489164919626254641753946856384924298931551009726269051647516930374391948978474601043811654161465292557749301217058550249046871229302538934049107496003624192182565129655462421150130866612453381342432605441870399339815504295445615286693465968902552061280217975143108445248453778875625308886594387943903173323445619184367560405402411731287777068199171513299234938328963215532450335579608826918975216592269476810589381724241603666538076648404802507189566317887240880444992476546551401188997348473187290766047791139972565974455599400653376929665139894878572404269962975436233013403945526284196679883174670105266493097106468708293028400805832940391036558641479687461751435984619798216892450600595166603494564387650837210060665205771572432252674382186896319786394391055599216237793162196856053043167219229409194774632118058741390574194092861938552066867974677555059360340828052474543302428898816934557220605487278813603554749885522331090995498240346401900352518735957452429189039884309325002908910954750945680102414288465561021530690129227974254777217047809410795681244912352536719181539636396359715757990377151014791609627742020669856858834107340358787687407681151108020507780851438486914037523194696077378935206066054750609584593629159645567572231221551610714456796725945748818972835169316646840928297833786631756200029458206031177985167777398569084848259805288001887882254292220561090876583783952365643742197839179291626656345829527273360648922890708898389928835340006220747830218672640960686581890077304967499921748293918257856619714435357115604482543597508631389907080872580547639756965292786029503753592055587456233209059364478944688192678834310595873020526773261672491248897629043202492610723662101776255955317175422416157290321699398008769184055339976136739395631167591252367741628135049076369448851470630658634761612808474413533724076713387326072855374313553300105678184177652312205116936942829242248682201742237376699200254420766174959168812415742436723152497475158508686617263658358446585177470157185923997250236787984381816690845671076313918913847811464132961547432984495949449887245384478025331239674880113616506831947846538332596380949529718113710451030962559215556069751827372022088285704626554740167828359784168478607492821912520269904006085450572916267443388293767457939049217279734932658668244138183977764882004291448679101451287494695501149659521456598655034709067216510677883537600578954448785118973915117148260362398873139072668549946558571758772712709578745102474359457718450049949187216851991191586153470917054855288722396094889694206078637450091912333644300032029246234769107030374487726490631146749692620452453482412486791039553634150826374402646703879747014486519396109756342422350047435114836078730010220149762549330067575955007696378483236699453119097955139774706964367991559987779722782514230128942620845377541722588228290277412390221398099374243066280331383678341533889494890708428271229034368133007220561535016379460010258260904968396075075767471488023659234297186536462201346696863810903830239432612814444110392763068087230411823216999722296848961975619978623453178498815087567178655379880701426786101905685842255291567814938532977566184708916820184256635258483903196766774027119413918675212584400042061760635255487574103388885389347526157015776669646607416415785460514220672583596495009700622988575064334781656376571235087863477764162676708741553300219666157663384907118920197456749901150513095401323026962106731049878475773269673285464359442353830755309842447588596413202049208568893806377594414785316816597228679886123892127355976012894678050651541515168572097889842439879384904018661443813890754590490109465116427517909419218465177731343025689464842197728283801912418183735589699468449648888040384333383466591674030320890285287307281863697367613556752182419680804403510896563480264180120017572766987336200312433610027745023273493694173632049379139080479920734553477414745552665995284273069221728269813694553762937666226327378219340611460828788058116351700713857561549598560566800141145224386257368199973639917231404666124840681233465321943100102368158944826447562185724416958115349611837068207152104849285820799687694833768755765400063832021380581745096261787596101443261108129283115324174183102865304471267407867586703493873686413995241618621258174033706407014362494322198246586973171091752690250089530559826556926956910686439967678473966002534365353108044521092361932240821885757609744773923205529930227187876250105339871891671099193674671417766208793514806120784763056856284052688497145496602694151487444539147557846926188241010087447401270582763828109286750795496527958879977859392524191847124715319524941897981182269187901443766611323074161964004217065393201551546784273172315170749531448734150410316556929555067491518090540729306424839163808999410039509440754142584997328772010975964989733569300171701193811373629863853037796516012942959152017444159270710606325457547578697381880072162706720431486102436863783434741141232863160836492244027710738319083105583318838665358530113296422928195699077450423911123013071830410473645158120953218498050130366917228150245670379855393598499542841088902847085433400708581422365575648382205033106348444439279783369591807409570891501293481086402073106560521949261100446861714642916039780287505827841824898497335572531835107711916751320277677828849801554523577530376524194597124484098757787660672936396162171087433905916970260596306870632271146975967684969929511588723149013857032028844729616495470263069730951804220035225095508018737601836233843979384507107320783473070410743019978750722149695676795089397134523486234235644005372738124616554913620395685595753584381468258570400074594616031703456766612646109678319120527399899386948358955086672366298611644114306439878835767467961602944054192449957528308518712038578840369624038664877771403358128262920320550439764905885746372772612009916994745255718563333912831051242118736705139125961379128069423224020319813725416563496412626560350101402220547227454621021611113158789406792967762637843022021583674756247740102768879604879061300981136487921537195107982953142934681491377468708147649692870907676197377029250443353476269998870815187240841170953110768377750364351775204098917353378568686360629302608445022752592219073086075612368955497176463385042574340482406128960262886187038863348811969315512871887287967194328404155977733086370926989562537892491466200499490890165375136515233218884792464139789368723912503729683900975130424727619472553170612634549650801193554805793653422133574489308192325956045968893583419684235990759759834833312464772553050332131923365035203771080707161788202461532655175433934532227770535555069379296825832672768975010741645585061626902323405281848264402237532609328598173847942289153769222695203361215993130859768224832257426497783869436690240355781549194202354303357116263003975890550051994299401000986040746539088841291563543589671275864993997385755301447175592321769652720955873803289512143483598577122105712931934027820848667901757506668541024908339393662873075699445753468494729917765952112912201791649021856268353225794667503924726840195576793869268350876104063655037514631806954766424077127300299135490681649225852938619642477757557793247730931443145374308467561244022990461529158167875036047374417155328006689356334442258729305625338913966468047837867306081773177071393120702607262948398181843200273609797828975749211266361802594954335539152472441784271564439285597211469156001622921815597976656856248144266731138030878578162702278501626227839920928878444455515571112860330551656131453075054453149271662477122922268192261114226405870062486946667752935781500241448362468465197408511068173042615387131188363655020965184790142055901340255640114301177380587605672909533474379148591112467128438723132204638878927826928414420322466552119143270110794846887471170019692432537221155096032547919236031037133658241939071730729849175328617667578086832703000620581613420035969319695117621319768040247225024484395070321277573525815520850289107318918330676467923202833574784007733922388863144189083797168485834510218083544496770769970744570108199715611048569102597687909907046014837265009616712273399671472135794293094277548004091581147354333543178460677953871311287068105849019155240050297611539837337920459149178482332715881950747933921880791539263301114603790776427795500134006286159413778101890613187069149995712326847892991378444878224890042679224536682197136220733555212381885852716001088546770942222158183807903153801683704488876092382386418572285438700756754916020651798306163201612551952000817413239570868316561151189686314985567068354451397004817448435750299624509356359498738729438694929077846453485286259256171395428218765631530979523011162621938033873142445487990063844318383706289509908421478219591479607926454474570105796128606944403895817586475866502460045408538453022144920199122459524678942182511037207126470206519231345323938597039160058353496281603471858852020642868869064365400964918275134433067624313114878784275803140159909945748192084893576111267729288100983738933271362153153988744184708123963918526193537151429933585996213789924100993874125211850794437233282803557723120638357519038622274911637812734784976513854452183538623114060675631492807887715268756657587938686833426576510317823793746107535649116287325176480977117871101899856031027182765649229849451588832972228156471999885714257264043744014914344551959450086076873693747620196139289383344974051608074590051500927875762634035615994512953169236661345510922870844538583898055832803459935428427144621759527556888124872505094090578068756632594589923519924301161897411676284093331289700924445852406857003821384095028214663433157156353491883368713849929913071786365488156749327685990078697578986850892075768458721130046427909053991392608541206691535869624962406193742562983348637699766495801357580515930559659806807255054621662855639626331861578407828943906790886641366783277859228173797109926467988253499239974781057913148051175019239409907658753864628641019699025230992146045424762744736002509134924785238705618265954682618209615626309353048783999981336881607820598517101134069884108063660477884493009804578440221741137534013683314568313166470403403291111329008969276673907596816409442559727104874491311590696884210185794774561136734333915145455493857519958526129118652419485628475182950296625139070478835681543131919701083771312904490269025948061302898315339671680533287853819663956777589749323185199059117162512704446589087250895823179739124879286801119691751224411306440968572557836708470845283454076500232955060592160548087865064671530229191363929165468233717909078319224662107179698524329336703865062459016184376232890731027745985017837008135903695302471015192713994734686014418625995318780480930926427775580335963706226314644993381353014845070785710446717575611823407645718578772413514030517733573163667724356795794081247964469226800303496285365303775247347497375426307371403411205173414700457993747999624791692110872619777600543281729249079808717093394566426742791881187899394760988209407521834420252340948853103468553693908963786498415791391044194971428136664986385670158924514258065363248132150591699714212855504362670524857901470559536723595452447541280629576038212063655629781102043492201355217459263072489798628787785435512047761722316246888607991112805330049352279146469804815011617572021189508415282074721425876234518030416514842613455387053501702883605824720328385710385591075409267670666392779483060643311680569576401051623493397382381691127944970715599027237709712945938744809236857665067857196297287097261844756843293141819700339268611614706198685191611431152853571027124643245941908610606656428967215678674286250814800923036086971435078714519465106843932754743521393367489873215779862662216386340485826255626181763241088011567778347421824878780756634511818418699384442432924539201865050914754479504925488496706335154558186328312578848067297424655030323772181179296712788096929184583188667630719126724911683877954150362324775945413940470722726851583767912330728283867085589464096684608136994468753320175124153989879895230359836410591224030571195007441296524110814730152707032929332615748121925122391622222364753755163916462255400009760767781113158233425594399876138188502886543198586971403014061205079626684501731440261770497412240625355155005882966558353869562582397253721190476296559692841572257056570054830781011488832820272281420667270471334289665379802706687730235014081799144061858262234366315859092848887539281354874563685367170495154499130536568244369481916163451911365059131162377082543490031738152129829637087774733939704369379442572645809295106377135722235438229636828442900303861789034355785147082867726025872802677831645332555780384909943721279985115866222758464424510992544646272564049289440094172542482313592480920943555083448429800710688568260632974940127054249293767004784938061518031930190721680522254850804469659396357396029642294557852193796288843143705589198021588060456409026860635824686508563835209596819375301939237720214604508844603600281811852436893302068470381554111878752561012619166046251973696484217835935204819787370210137935546768539994268120346928041038501789518546691079481514563228225272626318598872186590669988580879114065665068940714559408739617857172542261341129246941032917169446981700159901051986708276947556681311358692814019140259950043577101176448923531586141048096328209856137394041188201619747958485926207713557441004901775725148516784864057401102242513269261049208718560906987473701756197319041322471273708522486352926027506700047821015260374635085944841367707186740444686524372657334717757392492538383903957184789215674870286917069688923505824116162939063588525065716528810849106633825556637864919053816653696693861890360688414684169659583278276710778874020862270775317642865793102189010224425660206865168354473206403347494496317609288769610645837690101541546056185588295730402124942120728013345965114605286110697930259421704919311512914683019908088439093306674136902800441123791894892190602056558363036362480125752973017299216231881543080142225358547503571923665406927371111275173723094937967951822454808408746585857891620760382610981229718065379556953193358757332770991159119629163647471907292767179355420346240039510587978423163957567625010761835919035390323381360516624199942793529184514448447623419626026718652985218984511536341890432460224258533675160789800700284472237100979109593640174251722474588596438544286055672047019288098103763494794485767852884112884264597717238858243588152897071903895967188063154273776761860065843786932391572552956853828733857406781903108967817810147583078090472577634037337981748697224300195890595501699105135696758463597748225272911564900568260255727464264309345726268693666504873676945670754244092185715957758363479480221146467226517776450171279791275222385812809283833490673673032075595677172650629990544702775974981221122106876231019346856929700471265692012360188620840157048098935659491734714741541514666149201846008162703295071237862643381741340565277784507249193305522065812263263626996766245637548620365128408674516408522968173281941134307059834969498171533839842953023342645333552918981306168871003332546494976636234851402697209902934149405323892051983612473128242594896090032979757709106923457915861348441134500401988402497088348534192711996791086053317430613597169367856344537104892030459046379950753571012351361067630802638033035076432638499832119742618841922707473207649456896576955319136035618875148437049759276477037290917943525567057955693202429758265350176362851107225143114933510903029869726831365884445445745491002116582858360137625288293063518283480082713186148881036383344157039092064884203113177274344738588314341882843849440263945198759114435965226727506403712332630432349746448734209135209059001287870020999015116323514996742722531008593906039297905604770579955700707504159146278383795727085215493734780454526489890500229656608303600136513640432108505300234289883339631698994976664506891529422967055609167134296199874267417966276631602176468985326112968613395200466354465660035094662729036408232651625649582471824650002245571423173388355695183017528457222009743479428205892605288563447484429880888537526223758177090458987172220774700097783864889946293718963669219267176940750995037299910402414599607131989704814244065676766628038185302585234025900006531235205258670803448720220519033196632172443838043136219236865533298999709364066097030391074121532085908871338495582777847520700215136266339822207676471112567788102978366849489972995820957674001288667518813180322860222130745933379287212781582744104098444335890134154943798010243011459480164791001450348092460955742776072077754538419975838069391383211848186577621479303592563610173433403340783997100205103526193462193995584721059660190768224405816069590306633454157277737440318962501257607401497835855842349693312869815811244982695886987505301240844669196984480818831458220667497229051201749337154320793526466166367703293070924342810449888501945328378636535316396099430574628475090195483321626835526873746982111803304263305399739610320602884677647706295998871234776697496014104205985536702468456618645655165266682248159689477830263028048833201772219035460187263361785623184868615076045601682655489912450633798815152823641543905882434380144688263905387811349725386208527756194754364027970542091030560128140386789225083027921193215303958740934436018550469153243105888660285595361968817363143738525165752146465455210588512961826266812213254680656839187270999729910215586634695162454499777312492258932999452121695072423369782179028096232116619862820458194500400369287700496753883163199226279832487760505197814968328171770119571273428893487310616052882386161193707076411606801779615186059753495858873573905439455279416402616827749517963919299912325033952120665510807434737564449036633677480204064779801491650730444498462500203343832989792486647522029202386936802932184740830867902980266359560785831073441352991359254979508305977926743186313610986527679333889330009299620048731955763651209892643377811237618503774083859354628414729402443400648369815482981381137330924579077677041934734813032561379217586252706560667982315415709923009655937916789945506569999529145227653534826640975893029065027837172508164071708116674202472256143726112631690954486477970563026295161338118916935829142736137525344323336270913961409431403421487832028882401809185585663115431412551687123255707045049597656521832950062874891117112667555863563810038519771082023647254092739743682997141006294398385615049544315912225486729263512858716308121801911778952860119727995414201783593936161354490381853085735790111397453487336866162717128996288121930963422406527891268849368569841484015872069234918571218609135240049194375546877210964819643802712211004959442221586191798897369070016719770798587282147119106565196837042714018455178434928494360045971889941125212771575628871159397470048585595146268465897487097994117913115290837176729970760945395803557941082387164829328603137098313492553386240817297096645683288284918811439534455499381956643663632904564339807396317256103662169805329203257567566860690619252401448497690890748032237368779247348321005074521573902808577486127397822079453082985783506858701901422100211127531225353285929150816449961315634552286950366056838950531476271573242062320407737489856239035168215530334765856324937136448380127540369845173683917828730359493930063384719238906924111049622169362836220327851965835185200033942255437676676242641176437036449159739643391293183864124347534908467713700444842149919118184396052769027046450273709958340181012688614403738715489136388358188299281095931432848470987680790323968299579997252430176238533711111575083925695345578074934939855567660954111594130009588712037090434655410961931203634384075968632625179022610142925738408172594388989170370592424407180135845902131898965206275220585210024579265170984474743975661910184766093577063611829246595534663971753921040967386019128158506510608071673992169844590575594341182047603724221329893614074121075410712545932051514918212746161920564514851800610920606255290761341462918242729292936128723754316234529804707358722211917740665164184696903409340135675879216738109800690260267265835860718387458470306584299609183183513063311421479981351248073994926435815938539390736268602623894018557070393855889656249893287243896706299751060442208882642020802663415374811963008901049660053168924725921634631666190993887329632368497867059295958591351544606901532839859232869524472033951219580850348174700039204027440101010090568538555617591700658202091991010259269536661668393547210633978494453759526589113256131587763271595136184765341187815708723524874906674623090613908053278965621319614430081184023106890883336987279868003579030706384160228217144183653349207547705211183851726719973552988072471870296881235067398066863150570876463849676716354064263945421556514756738118273707087072487281630458766864902044441641404926238441664605578425249346161066045026457263905184899624745104831459147386415979423411162657169550389619528110613616815483943831423957981053617198329783488400125321029096580746444680272675935568737056901639572865249595469284287293315800482672112556301953590353864813000728514470967880549473473468687922808046522651325700627498028391927576843701539853431097764096209374850602874898446008027590669493674833457518585426494848441052124226144720006738792054753550208243309542231657769488368906425495516914250158428069784925588012025342008538034713880504156547784109828887430505041951832351478172067761666311366596723299637530227708362452459363163484738147570840770613772630633943104126216153903413500681755592662611239460458959872408467035800170144729660652784323757224233637352315151998335799789774244095697613567034577299519703943168388870376548666508983725983830526701419179396635354226598039832434447590856315385976721550339593981157391262504649455567411312273468214743205212307894860251628473748154950765394588745669217559720124148044951493427243131699184300381294696101178258097075007801014628274446169093670180678009191408561040637740043093724575402135387552568478855156423478775096441646377687802992883412469605262466753051615838093912251321240370277043577150103700685212058619910313926856489167789624089995247103033452115206823780585752842176502312234056210583480274320695258563961982051110646473708974201709770452985893715877518283119828658957657548751524871535695041364250733930955068712167423811879091060341321404495825206956352015933410002218607487238507930397070060398887671653206593511399491641819768901319304304018150810931216134497005110894592358684689459964877937714131296895705856545779654185251007760020013257091696936539133323479055008117878597484837490366887763841597009162263080451042035649891579192858647842071055205476599042122607688445945060054211460997524706492963421531880802594823101972817035954438375132197257071824081446887804711743556652477368014376471568419689704270428800121426461612489797861930673816438802885433992907270153338754451327039218489918023853976316102269376394534861777525681675656758101210393079976766082500810929798776766911790648420062829251655778232500935717526687720140929954715773191778615757382311390701904988737802617049596972901142273118533037383621505429650450531463941704410170517616991581511332823866218328569668708470001132738460301935505718285561722818275594956329122846812592470787259242708848125385820444887944457123728487257629705633315796161483298531219686979700459225351962814888624970194281742916390175457407731733330259889948607885254848457836757402590507758682411108761023880108737818734506088188028117163169018435847001017725494873939745229198980368883102243449619003838383414519723697440455891554658495270220111393996300976194842735300003848397559813904701468243442453697300768296331757348943457123964681646543268458533988737336180119189780622565379372800018304015554184719223268847769572703858650481094731966274098893996038008672998985829193662866396103512233634796752299314195532786555887668191807970750132314275933577395804919529471384833999865461948819424055775974285455448678206878274301924742991120419523185787769900398033797470958607478267901294505658951074614939680482295468006509074684607461441663963875780794413211956929190803943074790855315856268966320255823074612182029143916797776307686470826282235497278517073415592571926777226735072462285681012280407490928576815811662280557695628663636518055537875726349406903230754117804460214896851376653806047409373450703181058259833435118200369203544702194361694277426423021632665043515324638945132205773361213469939101851967912115629612735394541866048628358790576078979001471871755457287791330392776401068809190355311049477940219399562743930466065208003693470977932430407083205915987175098173266752714161207922153046528144364772172475945530122723702875356058221413130765032182881824677051437242561059841302633841308353278370079473702367368900067697820709052748332447346371907701827237641535247027448957738938685748064214686524263775540796293040095795361824640424274839552045808363821549967477678819910495945245653281944799677944994892191456653727464214698759438473498336824570346364819552379374644638755303624596577503564272981072750211476912155919974236189317198730420941223948776531491009543090580268618998467096243623495106522637734568009710278160106454247237650628483796634316169686612986576305367615556169891932471105665426327303275444621946979398702381122351519930589525288764896833718042412541049333666097429664172735505453486931505410858108536444683082074680347953054966327110000558844606868817673338457011658739225175294745995593632303290255126686727782675809532369690893089847644693554591750808241790197108699479492585662699900477087780142784510021156996580878202337136932619040011098406604993703971819096958871532150432954099597985570607193297653806489233438305802778603631684901960075942060171800915588280482815257118360207356931977051438654070893505863092007629999438261700517295565187141602766102678996390219811960244900001167187386023244159849723220541607018660912561871384311555544877543218484156780705650224093655515739161634116317406616882471953845935763026379440136002471359529339836185218306357368283211868130775732074286558340609846305982413866058312812634513271210645109560768491386268079060409650487497166705853979478411811388133950935873434220241079133434596220552188379185252366068523385500457080472052061125956732676273312550371404292266762092432127751038012919378407256746012266853373405159543425918286530139296447833536528657887812753921920391256931356900537531640058612193220451324422146308078863561830324463877783545093217666689821058950830980931154024337296141629347393564197433651607651234989535356419203789180316154771113540905765145810576108840601925625733628412169353742656544062577194644081150798409627372134484135120995381809506163747615153877883987905823273004714837572360795083655140317720731898029918169123076280834777961589380821301973856216885533167852820373737616343277506732382733532474460252631298028329093945761915099824676866335188683875558450739813348483296198091242753803017987582515985248096892173115254770523291175105020591887152404368934256823045455846593104167907021768095782309654532726705459147292671827210511551536012581909626908244888207109622899604825605322873477547723683584106203294146137270187240117503545915215085593429070768810608886268481978985475765751575156977008966908511088109655386761720426582400772675170310040832744671074040171477239242329327575306476801545017848638674689177885824280371657039932657018100200333971952971807299350107207745321500412015496161718076135018765207804342289977328678080137704684369620880216723165113315086632992507445837503304253608198511789574879750065432387914466040407088682535904919356529669206475703817986882714805428067779244945976859704722835741081048993031413492657783619204678694081331259395274424135672031495143579245408061211678924882126289456847278801497566765738789858949158858319757210765317785317426000195406420726307099565931543235150698262567887259333926679525150026439594523155245909337178379922873118695992920842917136681926778243309312093266789413254339237000334170880290114095626805597954097485066692048596837952154143084087622931796696389584066267192757713336157217872184707621295707528229546400917029314165217321510275715327875669628669181383643110541322019068382092065942651002527728301368608514838518128681920572607828652788709306955275046160447719179386334661506531573379300155918572907735860636158242218380585413615835464712152239580585824993877417523276957346469967878235666521709927307719344035846263936959222418700272014690561165264352758838057088838780409471071237655925462518124781326746698791686583471187172790459395765111258137372771701935420669771018675674344346746356382061911720723818705027366038524698228567685592930373780256499519292996830629178032013694028108980691148821626295739346232113787469523946079629184320616780039964567460943450929924699619710856468464157564609926625253215815949975910254984262191191541728525280371281572899811389268985501438776977288713344383531372442295315192728809357952207972130359337107982451473309217533822360395298341325033336035075675783239101496011720650626065082338120992472733411038624621689305297190261049313427519234087537623044151194889288051220877876683454316371727309855402007442407170850951913679249204684714380347966033739755513962535821672542191407303904724426762941795851856603895185461117690877313980026556840460281216546729862975697540976703136641968953478331356816102365338096711322157139780769397845658878475817722136998243887579983748055221177794149930027805690718353266951068815387793016994024648459161940712707649378790485796126217163682264458514682966710355989783963687851833531282535222113465139801459427621310627969062842401517331085969097360552951595372622017767598621528852727298628667157256445567696340685227195562019668074658513159989503731578110425822687133830331851702433733468179106866093088181468584637385914577762602211834344761024725978762050735564344422259405697322105493832760215285683224348797538163968256290783353295000570568609299810834586293493766976741989976145191009591859517700011588362656717084987521797105738246910467483011697373276959074106912988794345503891882139401527160416415450478222579515967438683207807928768447441803879715340127354736717279359711063751980682806092128973071560294568646900858563631662255014813546066709021336710994756882844947875141123665219288664947592626098890222858563738725740847153751854403853162136561680860608461665700370127648556895372660476297225213443288993001000173086283123484674519982790622166203300025703966340504803000599512163550925062325859628479141171398149534443854564503551261624752588513846461377559417843647933415421270466702413953152638544453423796391870277842226498260502187203594377030386702821527063598540121377238143270409567942529958084911130627179822601246785280990635377109737704269437290365527735929752581702874947764155533486947510108629732210057036979756180996334870406584925604213060928718051535777815152972609297616610703026453025088114019457236793694649711149161779297821403129251047209547887839057143619535454051597863965268375720812699677973742685820113391458571343546909894899351318242623223474225516872769220911535961942518056530375750446857324665507440910439589749508665880782681694345633873557903237048619398738616591820873388640305445562415777081223442302108785630215989681869639302440227304465419989413909543823422050746471418608110461996193377271079756706953129413301063427583513047577116079233627568060104723927799521388145052971353738918183695975850564522372497680466590079229615250104509722933893307391370929117137580349789254336176762435444164830656710407664074906883939010337300093211760568329909581722242612490031189680448357806631930273091133863449194316577548527645960801521899258792922218817277264884132875593818350680187144227100571979143060838046601540864975677926385156811560749875873268863669067427304316645253201285435437699586489657337772689622121905720849458269568506422288031907965154784177536441978319522466975155138880058516033726944693882926124390014044752545422548310791944480594752821453701530275720776904891817934167627215263727525417793440980678252361340185448410545481884402316871159978392196976559694436965585451740450736711071936948040591189877835777635624290910739659898386330389471070272823348902736922925278536613511830649177985226841905484142862219614352782006410761607024432266265721847566837786084566310626652400226476653311541075418619914057093425116828822581817117036704402802026605413340737926874720372021549349078424338281945575438337766862673070812028582685218160880012291968683848018706154269850046809730818824147132571130002725674272169717332469738248184524313907924709254474325119056122478018675604261848445226011162561947970743596111402165579454059358808809451899013136953788975335278381171127492594442753621755325583713978941003240198229993616500575463811207146215616063228889920020674005614571473784079019105281412847390680960225879580451660228186595188549010807838162499714946798243778262509326786285726925634918471315815951670330475779067978600243567981711184052965432888206360225494971611494461074329373635831101471304971614930542200495632839492324910936709735100140139924356483112692694764266913952973995319865553545651095308000084354693800725380495691463846614572541701219704514478378539950640628198613828319129274693151152699109722850507924820605986703975317691678257866122819946073790020861163858268676740279584263214472723560083090906659824595923595511339065654210848100878128651454214546805277269106775707622853457312154399275279687068077872757679320689667298073428218961945455127456461340901799497502490935885433966560525420065380697107008482936711172412151327608886002874146174781194038981866649794950615953725813371727662640665870612656997282252280431140986528961758559345757908688945024701170356319339412824996010612784919410380794014242631792958534634573242528978272438694553830124122459863551831390828506653293441239622192124194875711131581710512161146358672519352165821484121327819593141566905566407159923194560985779196933450447696828205098280545529354468258999601243650635408628339099785863118809993203907319995463307430410455497125099444462805289055275830528035605772509628359229314262286400331676157197742562801834944847207466473145561118801466205728400082639021819176724174390736813231459764709174268217071480098248809787186298510983576669579835249833703624738402203340870716855594127204946107356849335293348925839350109020996386439630916375091713193933246313769947043936912216122659157253602676651933233725041271466391396027706267351707216973271376661447475102268962637534957570113490687379831015846724777703574203232340454031896684573883174950216897467492469324906486734517737332577485444831303525644360074814051167958498488116183846107705671148701961839284658936946249550809749909620193070524014002929996954234974066558892491017764874033570298478357347831902505932318752998442171205140762841584780145202760497168426291191968920608880367085664898345393230459192836096898455451055205704799588379775731722608205797512923426970621151363268193145979842958599010455611512924161706492282659020144664216391210008838275791682877276382007556512428265952718982907623720204001775284592768557182304802384241090129963479406822251141785255927026194685109399956822433734195623527760631092563460169217108456363230510417496895352212685353587651702739214232810064675420145656808019946953483812818956173286054979131983800262890633615209841247596846739158773629373977267989845951575390395893460737920419357729912768516518921535723311502356857482882485583135677852961391416209034466693599679329843631974703169896799435051215771658248172823416124212253190035842704773916364161271172667894888054159935316081414362691837071217105905361194095740340820955603623717056104199809138487341945730014338191551537848269388938659944862243291183787144663333391825752760958179582117258638291202722613084554802327136167342407618569626992054843529063894349420064672613483921825653789993452163562352564365347401787282598322952262636815485652272724158504936951874817448534958613564457325564822764469512542823216408675578156967259619373997223137295815273799518211702755148113398246691716488043980874404619528309717216890256415550220396674129543916579678513143058264790907909532998739777934461797416520315174895762147207925314575991491526570782883781334449737309153714548202486086960205830462025924847318171937097430146395029764215885080379214394552691757324334341205059076626980285755228698797103266986893857218253902545782667050232622429845681449224469388755173178458972948603262304025967982333690151174179865013276323560087357390359405634315535728117468987679999302343820302924174162671275786623838004640315188744861752239204485858749664171735583193306430388322479243913233421013130504506815006094009736234827363115131130166350935933722894952119728451050930916166151850879242164518908195598740833462012878678244448272685392456145774144136305309971344527742928550467898586733931057938841663585369026069257124013736533707139123455211528712321311457155668915562719084355558481057785244091219240794577588199988261621534704813397208202683494241983688826234451158397738050301606673876537011450000472833969360659747195696296151528105364724018016144283006000042445879720002082293018993827157421296597174840433724084834364478326461734730371989807319421531653108398285824695887271832004876116131304662416512757162630587009650562586104267751013918727889100019260712117731561956176687586094253829994257141191243318962515646127371581872995327935746408599927579648263786127498014343194777895514661232293026922283640638691191428299788991226097291939123304286725816371862305225452438148222371894608850941429840521915851463991697550377328457649608036105654616489023099961224448970375326889259214121097237627722073417382495557818153706800930728965922164811986340020077532280460499360403419077338790725541232536388210531247907661606304285102490977049348393400564376557583150715536526788897453516503540631133534875263165410497927934911287122940554300975586032304373856686149710645579974206122365022953301278007211890809227339072373925037732134099529065183347611033873395941861160821218922394566716645929548780035311228003037596780138490314899646175956456950882607501910813657433623980942777769820233547422884804097302379989589125756964084377370294467567569137818410588281736691547366332061916252642952926280021088029446354532459869843485570706640234537675520938853996071292858202762315501120186621210424831924311110651014991965968644201578253183140698803675857371300003745487549417190752135404072570445979548115880961129308657916853625607827652658450528167927011432178484086600278972148961053603086842370437903559099098882294948304744125105148650916289501353143554522332107624608936077923443381022697865429776800314306715153053348691236680316877310802780377903447900389673284111068131196600474767786480640613426710010785523455081040656545333837033688334834340545891278617792617026760012870880495301076885584082923592790630459136831175609251294075133157933987936107409503132142973969106071559348844208950048567071077496822962109790246344593465699781982749629898863579305871060884460256498090499655158888349754671160375796609959068397948324120337314186885035428733725973693263222631904101272319058654033407479959447351231936550302595757664563892980683460557948921754747870582744658233874752069777148319071082061605076009237719602300877257637064261152617769723670188149362329562518152994346565127346062647269272156804275784043366336040548716451352836706271507208533860186469503347416859893693154024915986191198322077871797917678880502263815326501719869705598888870934336903678803735799316442674554508601365288733476443273725763961882805497067926226096455991947690131381630551975569888902372224191203942421295066830628676197090469312945845927451613984040313033829609613234284388165052933327948629864056488743995542236309020460885998706702386166635063818134994832113459875405920982916257189572216451813703525594085989280554179085380000397634894973504193338125970775385579776189412802767846213633919743472156145643604660916935347251196723879991055051901627955321637661988406928181592447449957457545522280958178409998956519392308641614112920127693240232741127678394161024611615386662108867859328681439677121432532446790881927446717822153973109790583392855974000407103514809363351437374138745684150255521658183597805080170437662249930248633443443584661971667305328636858640112919718513423366564459344017764448480207204701192249858006171095640759989560034907657757986261444160536414779780845841728905655723444757052157070666344278709753529584026302190653798344903270292992195237748327099326088174518678777315049650245469514519479896815239967154761720211543339117238655642551227976921484064494304610316960099202033497621158864691470930925402527736919882295506988815075970801260876394434595385094062313851654032084081023697402014220838906994293767780784520806599351123823948736891415620176467626033632390197988723929081091968915525824850087495583444677710004518250821835988379701199819370943301321992118276584934680240981254451256400533984977478013245368650933209668899537896876841175508364703329493107082618663511306756371438755857129280554474040711151537753340581935593163171180450645649978882366183075914785366288794981179759871669132380652076620938169894571056582953008455829229640156030491933181816852906433960928541612732870598223216715710340747297699640632675768544085743631021457201718662224698796576222846286188150940391643984615766820347154110014115127316958500232844934237415936400156284080562717760790078441779307588243415112590616564483217299056331096228907778783301920118955952149660561317646236002009126802429915935851042219259179117743948439367060041111994692201064054104178037011702098511335949747948361692258948626448286310291705752559160135642958275878190925998522116144866430963469484991346720595099454605702898311739456774550856552932793267013864300207500114244737659940302097802475730310648836166139100434776580372365326247904263076195137844861736796452318506297769741438308930187585683521962193498843237026560701169403520459433985327852018227848969214380291133396421069151066356697757737550615115373070713760938667056952891716652096627017204352851275026779180364086758532927577053512615306634094187740790896366862145717281889632131227460741098404787570998647005002626434660732789061321227833570613711229209980944154552230328868242519588325408246529959468409381466836778143614459731424590291553512385995626010315251298762837125158826261624504092180753102618273688084105954287730666541179672592029458296479781919362833503795060295814092810120352863569865140765350217065496499926417969221467702762050804084930605601478868533293797802050857355266705231469070148814936790056398187566119554147238491239254242908590168943154277807451559545602856656966703399060783996935067841925313498803624458332384209196940763771328529108594927751985760151702649615463442739658071744464223905885165997629836922348029028369574637415321354289521472783370488875433518810827348602742610350941440479816151392462591128361005786882879310037403257336745730921797678593807220990553243633209133322383568598322018569800012391744841856508842554421214074171766296693141163965709147504506529335859172399860119921528701426350739115242593897049913353852029778347663963091178037024990896774923741120920140072363980371805772646673343677934167229468299211643896072961107904087089880594441263365821562770299951795026604403750206904766844529276108780088839773644852903152485236895414468048129653989818243733204687349796408078543208116719937712004777944132215877492255936374943740410116714874575191838230529673695350537116459455774672734816346801144228531112631451487699654728327106214275876857374299508162515958954218379549659162716062225887621496772958166485104193919202881773945592302021464781373682706576414693106947009777745957664744099884444986113365693208624151933202565833296676281406019936934148092074490896472078279798104310399737065074696245757797776450539586187468260322128482071870384763204128020777249889744455489323114105136837140585901863152937228796203728688128049821891415715646200271009886533481171691618039465537830062400527280003156021582906011931948149011572140047172555488341355126007325428762757292503095232853096737668011103706810485424031371492901207322002839151833795827538130755165489743200936079715917366313012591746240395220103744006618512452194450183134925407870691985990936740187943001299627896973866609579778558079727021560163124322804662935759070364064244814978483402980953337750190065004566546573668863078223773098033454643159889180381103655923083359636804213806740998623678757268153056488544418858884973308547455978143380135176593956041274778547547213411974313458510462324644645487043464642776884264064109090266450412750549078962199581373106723872461003422573503057248299307772331536861331264763420411653861236539637694877877047437047739544437691199913677597838715589285916692580315446108812837172444029983950782495315370990357747457888366759007536164533389317924023082667344460218315611049476156371090095625389051580782538478990905953692527066754070402106521324996850416147905044982309590952347974862110235937033316620704521574435819305804919196041372927532499033752904589120427445190720922017415380980101739810813229117944819676699906669596287651570927392540686159551777667720338400729457537155247570248019562605168281697276048326573470287466508842591221186426429624216665925812241147589848444345811204291674083734393044901436806044298259420205816205871449107217469902018561881521500386572235684175156513026465597496343545726426076687823149072172892443777434432995963294642233658146923905969404911608813672658043842828709246077096094386812122609244085130663095915383254311166057602593166273139697193788969417054230424330413196333090735279931802059606454461486423627775238903782587451425622066890092822636727254971914633531827281945713707866936078781015446194962388340850017597071328399759279567415761764048617330485209002024932958292127779741429384665228601391664286232310378597517953535600600604833818206216466752056024607778769366681803161382145383039886721779945222165842833190191140106499910193419270429721385837438901543738393243693526488260591709170797487060178885072201015784023190878178151195255936823391874203431027475620420331814737121179600919630877256453337876987620051285612078999973346797852172706316715488990621666840797557806745182748167401124540032151598627078183170648602499126347001405842901273297702033754246448316927947397653644000692509298212633147212580432966149643904563710441795186756468634868245699284151293924119495109675086988581431178394167416026709202882119154775315998057687221242968947360192891083615830384930630909003756699555671911177523618613050127096089213793660164829754773454577923853628370939908052747385880408493940283860917393299226084549292112212087919909251251129976297558704127320950372230729688855097075907261520689415149601257029966646660215247559076954531873426570620032272913875227014651408527848203361181506108173711364355253854622399298066598764101844703623540779930452707561183969824919829994551178017617212440780558549293164844674178491801260316066079204409461591577591781811465648507016133268609452779120677438566747087598467866196692128699683216338972748286400270299046330144183592917191386289707863510264850979880190498028321739624770388930423920577151381389088836795335823777032947447572545137855640999112612628217971172098839827130156252945057197331219625004898421097178982746722099334891285217772606078414640794656088839906304524700977115313515591419981618547219616055149890364922699655415847259596110166840451968922865164674527982404835607764450809182697009461700938770615066787474170034420272931383979576619954870620171980188619663710969612143953567523087749088265654314683037085633776024779060499736723827298247988130884856317808712467791495335996993655608314429515218650522202065427130667792498705631375060876728566096381902425438200545280278791993280377691044238174682055706067705505530629223849699948357045084449228257555159319493132792718084790776530399141919444186248353129465210963718846809587204478125475024908477586437657774016419305452443547329895390556040164288750581444486211635701170231459436655117409695863939388205521874558555193156936153548039357465972908024896224024085916976798098735988240063022562660515053432757973308177329516223620850095423615675385413273150667822933697279475604390836558739758792637683852215344283413984595492498266521528401506409401136558708381924408603149418913708837569071096530603489597211205454760257363215863919675290250508474539675448946358539430306788288636190583774017939234061620003394108171439722783624463987542728671089561264174204407963834084930236390550261880523078317976721171533872545556170428398110552404365205833185965402563364075426130108116264180594788047730427490125082750525172481180674044431817379514253209175526987100775652650306721636821346320009997630768713481788960970147213035227214357430169272358407069719162814644707242680234723876443636858025857966419057092432110384944537467949801647237096465457747753563809504738249563371928397324984687636834678870981406274784574761911228295934046448579924705711867365393584899424785209054091732164343295140618417843950627263995297055284466152803493472749393569012392039600188783384491302096271069382590843309111614354804749399613059210909712397119272605033991895303868231725549503637422831166191771096613644044253071490181162475958047194720011404538684640747958073836238630440374078694574937853642004006701618057924278844583816779421167213188086388569620342791306629958068554806394751973880436750307076305640436737182707489317655570553918548103838949217379920499794726525365087816221816183381831314312504102200927603877048032012272615749528931861412674489998424640551529325373482093469197291960729701628904875887254579910762582698989387199638005189509747592302836283184216578335373305182963202537745757045740119492919175937108744528244441113243161472265082180806298089302855804795290983062237450048897906313053531465146947868662847755930363483765644229017158151785405117220507241952020279338048332135621044895914786696824194246670649303859724269756631156333005103384079641434332032807077272415995406403995136840139425501185705542302534458116070122580742074019365635296674665212152640742613187675128460462274233321889865715464047404482544468447259651879908409832277813422924406639940432325009062518664527053463399774559205266932873674462507682784985796983776107133369432000131876218981456276180440646502086773186531163280946587484286698449171076802046307940622480177228153368612541199134625322606119180692851091112486072927160567211845563647766043768910505266395947754692293711287115967901149108025041138698508144148221667469272481516246668814586211267842178893297282507919022720085512022867288362348291027516892918058118263747429620160666627850187086217772924420263962792148128803778992913197389250490008404051501915301386153753246140196708962739322411598443954703332686697571815728604840111878110384106003115089560488986723441647048068428806214753157682143336227354394396020517123914553791402385906031957212185767674892563145310616289008510669130212175737290071885604093563723840048548140384105928538725120159523304171745320705968835037708261512276718147776019298267254655740286323510701628197613667757674673452134132860223595189607832835422497038927710839874517697979733488819975819784192826122119487574733051452427107351095810303484508530353146596371010189357578250310785512356691231441726389592122514675663447175834210707385500869468064375846827005839002732620415873317331383712641087055635073860409559541043575044106663005475020219468586242101346053901119283498274449283145057528642389293884719548494135880327369384904268339169894287269611372818047045729088560686483167713464723660011234876407708250457959994327003024985343080228796899957103000973735820704285781193252167257101225987552281954666308634294522565225485317094286253835704982676762839833408347893862330376161201447351233544088331234628026682897964832940847700170546384465317022402719621652336961464863573428434061329670244470175115534646068811064134010737665007111080575762902865261104663493368637586836462667722478870249176092718690638315170745427059652026903336131734806525320595859005248882452445092683353603702967481227137928190445566544916525843644262564931513039727140848988343366794471276200425866446200299301806269992641812797872216062161539609334298407243128242391350428934138425446788096312736458424752146963139242577431461491888563594944040375202543576367212182216811222958103933710311379381863129908681619410918760081825293249208400303853941493270051707639585128512973194313510083705643315809251068909425250510033252470931530597477687843299404912718918926720979972244721779278053598396036382932486050232732287185804986603063585013089920007216908058364267179611729070142931072339230927389368651963554529191140033940033182688512258582105108669175735550215943193987426700251155622169166356609199922147999214843483956977673518734003228139802893041377836204015230069574676342623532608625836111671918050216522468002684025114221917325943143438131877162900167806102846585457067123195512697045319965316537808659491033828500630951994527504168907774485092640156548512557651838924398076893341757274978583911713326300038265780588356984170533661810862293620932679165545029072304594497759378090040029334106780174188609904217751000143209349786428174766298818724619349740182416832264427610839169930921226277208987966512927718829894635011069894586240255056947856153584291533985246731629714401072309141685069013533957948900488805024901955414128436189550747019017405801842452496522367869807686969608698901029830217310474889409052661880686227198359390455819182822857766341883916226215420515099834242187285736621917410471884826055475663462593798173841811771378930860475684420073955520436169738928562669989414691230991166985272604507724539661291086603894920776355290452232134814774953805648718159164784549225959877526172722199457032385574749461815648577770069486050528682681304338533654258403337343727522096120442373223348036555002498591423067160777776850763312406372669168432814597181336771491850118960661992755427171143822337448128211566923994569916914829277430111292764866148271263936067741209929501507976349912509473985633689200317582448940376251657011459052466946861588469379588732251302048479483133963075656964746313160618133542801774950598599738325077769094360621597421494711258620888405974592592828990027242129312632104806116902007408489077029464840634703311775119572237133554926654948056118731978835983807485086719642415469385433669212313945265842365402304498592361267577985210299558235688737660774427252343073541519546683312080847067390649767187898624640511281676866801130732197743217634990987793698624770077851372087669446686788269240797881116665778871549133001954433548957531936678032555801903975751025186580971586794363577195381836638994409483204430964235754535149363251383966147792719254047506105346772784240040681060319991864847672216778592479813364632207518321025384780559502913323698924116638067624371135139857901874768050176919247196433796909386617453658245115595279744343430671378493414552731433640469508814196781561931292700438412186644861822910807890077536674289938948409904777862505609114909716767733453417249262949430446598059656917612265783870953884674470175207008770531394344153442495004467245559011294609656133878792058536754650300052652109985180103859973407892541889992038358266228519308642622171933891954479173273788608236266877630204831554891191858181862305650057839100012995287087539626430720570317665813071763104042458454791290985091747965644844002127257246617763097930317049325025971521467972339812260398885213311606998582763044987793041270690478194625346029405876852070006817324384017742999110373073112334906124279882484238754947392877770169019663527699043248642389670508115581195365550401258536847239924231377373758009872657994951421757752379881565632637887401073523607663114168842538237363189716681671353663242770177882714204682321131891565251168830587973472755790654847956391461652619331364617445176911368688839348683865966738322375256167589320112053926296999396958286071883122537069137670389667125709533457543748892924744980542461172604441792849520607794028657887690327232945013304512911331094033738846609495996044434025114279073722377754587896389525259765733946453322372520785285573835947144192860338473900360708542664153263467601791884628228903689082529455759939905633409122245292162613553295603808439460215477333336191077287376954249333089628633497131160779973298633266262434154857949500013379292752878292829380404919861842260693519922630869552664703996655365937321054440638422150568327135595717864695426332785727971709475286172216299083902653893230424905698415209486488056953759848763327948694299918597748632841336800989322486989261883931096352120669202139379723814277322405589454316408376240794870069964334134342141399383829876791903239149708018071423827234658981084506907597305035347618682789928808879151463372439192968448336026442508670374370427876745705191480488294287321955553794122620990892331254875734015837135129714863280222297115775586279142586304605072405721523542279849412504505606576899299979393618764841032294399380549877748404521268099794705585591518154206445727610226325555356124652653871946121866735461032874381692472388722131057328883793970431420785232591528229644642319440075765229134093628970172844888567736843843740868736390382293092081612665960359989521313171214868309042358700342883629990712699968391944117008825474266218140499636316545785274719491547552423373619570823509994269859829894169161491827059621059290369307411075641284149753058787948076389517590595570979236566379443247937613776712767841238081187000764291382633797372787432977940423855888156089852981041111093586450606160137952802227480370677619866898274704098178674343131592263823353366242296966562837833682366654133112430943652851196807086339012931986640723595890035796207539604568235570875696974504428839298018590651859483287856204180834606593108671126508623134992688507666583825318437161294106959819083847600464224325718691894210827704009312647696043828250554867092419637032284590715921300050277432775248098721855767830953697759869244411404178735997158221260991748186559493360844514724881412700583475455431394147793516423027213724602239586376643743058237821100537311125886115990737808058249292658224803895869161020417220046204467076668012799328136861694464977730699301647860441146326488423237807374203949995588711490454071847353018382052882030303265213625304621919701311966148727015205850261076371599626465875518191682531629582085295294692794964063503458168355106689510947394798836330765470614128545780463199158085850649834044917823467737929936701882410576503640252481024912037373993901675444208638572837481526455317298224269622539437479204236921521849108758544515809917705730207233413854579452743087234296203799742969302679806392314672203595873787149770435187964196766899359460702265215418072926865479414998517403998490551738687203955913777581375135333079205663970853567185205033365730840837285910798332708372860751474973580922548285945938873143129987405414146252822920203131016701667215881060752829551235459715343306468594063111381959296070755424058810161124261602760911015873362064413435103578268570415000544915177736768438829250672839651767047228754025311120360123912856024348709302559354859037943710767693214627515033821295710662735567631951051713232900662215090087325920524784167684089868272309052549920603838462946475495638444218965390633278534272336373865742438438711604355400955140852578818023701788813092177132407923776468968966374114620046494561033617869424839528206913686738135478177164586988940487809888400275258338730926054965398924252521002120438074488481785264392748954939308670981580059527958223735813785554043199319935555963074300170114066441825666286891470873103921350857924667041352309294574531002758178856840807675938153158077116356698471613667955085794903597049315960333994917146187502283485241268447563854601222417172221573715205868657086246422867203670630471902112206246185190243465852571482292870067241461936055061606922970985025654609974712269935508316453463091817482694312766851511203696230905141462164977107880953494992362378071694934186290216790760174677238571976870056014710483751512775261948619416457638392664254421997048670069746443825563913756010520834177490069565998511902998118140702159709402762852384318162794375398660610310790615831671494266128282762567867188728313038551304361676176870818120295901243555947723896330276633883043534359144921804182802881176794545247987185984851672197708887287856493066509259073617591090145793394471496488468837285248998970755830466799604026177591165887895998277311116718141595424964753407293313052876622528069350699322228040382483194596365726523375118998605534336467468279695925375343632126743394457138141116406480084464351116706436537344315435897924858736007598424020363240109363656039420445397631175809474089097305116345432995770749545684299893856901843638867151339241940065852963009136467297578239696759226283279607420545360035816721065957699061348927379028874689105419253521959790913267937722631862689058480330520765814724147000815305400812942086772542142011710912331989733603360420086503666359352049412931568943344295235514310801598762388028821217490659521762233946718287067820951961533784965036070291661061975445976092487056993492858624172007960732002112759995803763646537902847311335851499306329308603265215417852687720794068590537237789981780216890534959922188158571199135451178819751517968011183231075913889315015682949254682782346571383510836582911262077713217120927769524048154348782402559685821012194426248958724573486191856483833271659135024534445591139467643759608351400247691454128826616177565868683175595672181371324665924352456500298403297577217940259040640805080977805379061337976112981664882443058105996986358163250515188171593957184837956434564942684232781006563005549762191610135223752370042395134072004268816946251274380464463472555560506214962644037569081351309770769522637060356317928334698756016271505693118889098110232483601034951928470254661675235741513830397117763991656171811472685294000153080827680410510396415885390244483203853679478576634118557271912294472901396911284406422404207309317745258325316943116524878229848222912883366748760591261396217665018296014819428677682856811366184730979936185149502441243093811927220826949375076063719263805996386099811611672095119480804423873788927747573739244736403125118712335314440938812610310931258546583353931943075237264791664990169527672907698496047204948130795488383788143110921426818664931312623028551746387956978716370330169047765495286225658720455629337903376180748305447395465835938947770419568284553711392302766119584694011797880693263062818894232048672782014967906793019399997526885315355864480943180825978729009999788582466091131204776801546731357850005431313578252103798430252117719632533736714946589544942878752599508588535156162559921131847419672665172825017269466209463770482684259496759685511231338744001552094707446496666292460297434431057974930184239483978201030471566713421647840861119253263972098709640093042723518603378385793784213634519242877489154197672802735944377374303030027259882395761109815515842430414257367259619963881122175037664180490330966055308240439995066469331083840605172670858724081426995454088369337354542500208777221486317905955571611496531944218622662261024981256891370852115008665888688357073635017993401747609980683812768746953717043862556843486259775539317305771576308575609692156645485427755654908385689262642855726602667916228441530997930108782856587633369110990744505657660252905895075994364544128407735368395444558280926528677285544698069035528898830970679833872950041428318961400796675619420865995650063603961313652652524676187133647369378949487853913385940480160001673246920137547165654196262388370546405964356535764612262484922368765959434149929534618150509713117811488631901071340958958979681656596585141272899917974264907395990100544719755221346255748530771727591325324268284297473353275879453600901326492733987256397241769306570747324005738356432797448663535154474680417803593033213426992911117899241444463646684207352331490962763967879831445658537660604583239600874884846333408213044009255157226413233424639825578764683773921527749068243478516214078370490497585551991442696751029735544605877446395437374593687808347509100660980619190667786228273687378735917225439078304578754301587655673920208999037467289740225179397972248718304714632410964067850055034385906394528731873601721701726394779878192029063554552743969721163108501637161888688692072677822589079713521964675865275443458040196505896271780880031992241704989800744128145575293783163827963131324914302194698633033028655191031719509415523941375036620550156227619843640432217079868458324619678918294543772375176867882191167851430751429916769296336582584762306907272274390298455179216836346088169100873395304191779381913253487172807908968651249354263287181569131308395537378454404700432942647769465627319594864858872323899046177316595793048751943294867728752056392635712622605335444838674848310640870074983096702274868233532808361955961932477574217994464944016402933463973909887971999292636529706903789677903376701905149451039136825093620108753777376520774424066068346924311609046099230873981488056396979223417634283534251044594099628395052774034826643946846723250594773058604415540096629331680029432225492596468946515038388285842323284288853419801044448031596484492255584072067414985817249993220575604653009720851856473323364909337620843733222461768523801556974706545740075636567613839342591579590654374207793511068566589595594932758237031765846814551319303752267224650320519302236928527806233630224421438096439562469292741651193441283641192895453764555853493943321823087986909943556042185160077376510165540308521019931462239326801092796448020412185542796624089766921931485244138354548568266933785018128703770444059688024809690298241867659744856041159312249263000091648402079370179975771465683704363101270437887467889765428839214603685873924138256056547895275821026724106893707315264362437211979378355501785958477166684853585416584434808388198601991633694994160458137227843465221858151217034760923852397594912830663180969689772986759922132794082590090644339147389890882914661790338449613660885265117726476191014517126581263469258134398540046586170209713786803219578204971943447115164514845826738551628621536019077921357433192039239605804035090092290649055841914167439861705451887606313887157443863548478187951082228494096883473763687216051854643916176360940068399118146505818653859538112635955839543622894061979390391169464805663196380497251177051371425446712802319810975023438589011853865626760272553440878786693927940799002561352539903406031566870905168206016937402182005259603656362798667383689391158332372050709938915216112352045239432775838885709896593988046428931113815730150628687508593386883744754891566713290923050309101695146705480743322375616498356493900753429087085111788057035351925060679838889118852389537250684832928575163735022149758391561975853927138707891069835562903009425964833370689746810842946208351120306568401669001620309533567879749985044343321874967114565406360590920952685640746082284365074785546800056013201390173708457360732170763042685908613423951496659205271325244335080641858411972949727193259105736542018519314461673661466695953100671620301798347704439472126493875804127790433558516285341821915993677179275365094150433400587040931181466400926861991756611580128685220872723339835689924909643062204527910001988711374089385479185808400077614667925550303504462083649369171584551772614751209864482487286347102749043754834574184421177649489672383849607346115190779687774657226700236086842588000138717872969868483760956405888049733291411430636550096080914844863947761048984278324147964136294820875881516191086089881477908864266146361299026171606603236334262051697852582821102428438825612691793156126637658592543078554455481915454122142070112565482445497143966602252449773247973979115883571439278183768114612072307672453362345619511919261429435224290610661365751211347236545941241632774894787366903316011212409704619957538105384763084454981621496069046374845264163002816206834549063306195458131468948748229824136470997968991117799453979582238569264790069327945622271769978865518225869315233111207230043192897319935028160298351545681872103783101089801388717512789487876000802262927814734349252117668009729403943312276450851170966484954128168809755731057145100570553660674077505128666266943228667363404345460787091657391750500200003610943737031524816199635228370389473939327904499864412220485465192381410601383153932088335056322004340493080458638975424552292993807147944447000897223994906841121278564120030300643487805095647233163314293351201324978889650643209431993582491357414281003774202096329352735070808249882391515437609138969755687996434795925397847827179331933109956124259619758004846431702245412183917535196620335290457569459692976856776626403193579017681357642586409617957995359765169752632450546739742456788332979201148802341781086982691459126037166259687772143284072842010804814854284551767217364945626050646724584393916818524119015802065001232859128815483508418316224896929802704921441270055752736539551705623725959241622710420870354395297588835487242611992433882985411943792882022834009615962783438413296607037833853104228312503078556448723791027662207739692567442316552675764643967864120795456148165258936775925270395477423630085408719727588269155472020334012996100872106581216708896389301515250895953337084446385915101793609312258366527453388986723336028411152525458085344254141743108386817454700686387042884807254118009975982262817460490054156073285481280370486409475143139018059833082353021784837485136055757635431288387987828848175254784196805539778372133633951797054854178685738829584864836507565258259360590888454839589612506466015900879466561593823019264159639635788310944557467983510301519951594743253611853926860635102617362774537530613775002606347592586011795335444541105821000192043275862179162183555932618902309159486392030789231492713309459042275804390130806645033140081775473686201416584755994814376519982536630744383662090370967636456565814624626922034102182438364676150706924238341151545568196356712803468412985384436546131139679844350617925098332036244987543359688088514958742133093681171494450317327246716681729417136803361512304916841001300895948986729644233518178591852674432897386247123024284332279377804543909980492769092499292779785958969909797730922687108279072882200262398539123665753185247526893461230344117162082015016035998523807628409400777224573642515359891544575955049415790383102599671588316410121223287092956159787984389607609972543496511514110341627303407608262139072846409254968373530424048913701245861536168732443769171688917261827192612295396799910095925577004815711686290478108755671658273920825887172624284983605116959993027798817573362957698238741309274174283337386556723244062759807240955756366681911838718757910360886780290002217966373169396233284054911736064601885399374378062189043821115671712475631875466079995223392696644681675193131410915476703671765869983630950395741292572695099463241086027314265881296943046691522666771117370568278609337123629750271708665010029779883714094624714075967429398219445781167053117474051584437086747728370085772750466414835204815401425207447976165055606349985202665708987929937217141694166104858720847494423444418233100777962378776253197578731372431788481658749390025994668102585278434152896064609134629122332136511484768921527569730230247758890209231170141157875406495447425998065079074793143369088985548676688947777401484126207695811777356920031138436882356113351132345464187278797745355272820652808312226806293215250003528235138261575538714063694092311110266482526230642934274623468805471310718425371768294105875220241358664800999669852209686233599830157221041490358737586422364123094049141660281138876887997335899055121412697923943517655894698340317781991806135771045708483540888922418217456314649509721514757429849513725189470592374591654287298643177602813898059453203491257231107759504653898852995419531348909871805625380559981568151992660987017902977984590828397353921054973201102141515004046653256513288457983301255796849375367023579992970602807765647961335473753405080956252652608556257061753797179229823631361149637829139234171948476687077403506586455692568560783806222113914513316477274376056869470148320332290871286213049393520921823705393681373896386014239787289848605377053322308143235556431593676639771238387395940676611789227017518603380827330267808796922486257584770796485092313309475819015171040521981466459983975210859117804165498904900743719187138748783844632299752856938790774395356643611814059097593988382726521465816551437277667222283873919793995881543028244657376366667816972172524753779144010613265539305945911572360774873601538716707692846428439466572120139696069019496715193059284055447328541092683863720516497999679271350000763066314266553160584225183234920308295707550112298720430138855834459426622464263833214494235954101377034146243037839013902621146630278892538502459786981820906919326622856703169630962589873840440803221067711577977050709755171738909472977542692074736502030676408895615350032933674166801264521844708101488183630307340126121805700207963520906386431104303272952341617848660585317065612552420570998132895535506482872364747724412441100867420311684901910636913624600639980972950925528766574286106564454515625128066258721626326039619718232283269598616475925286157376632680561398632730605160791891628418607273321418464243164639428223265563704355824081719609713953726217704859376917031399620950688603436311423040293548164661843267966343992247637463588536086132942356434845087982594047805489567659609877295132741367977227499940413528933679029607073187226973052480409878011802147638707260581029651389885275479923000412216307634250529493089265466717440273347168836144888159416088464272288032145124822222987556975541527111603417789819698264051047705808313377745384008923711419801182822842927691616936351091831951094029426050193432111797282868177237624988071583338753246219129839014620656309275288219448855862135736859656857911171697770775857674125877338701069917317186671143820733566723343161641384936178140065652250055498752358731549463942991725137356543817464069644272550758710476597486371417976407663812063879485600050757326750920017996320621937441726127586727860320515845817624981668895596537821811683202084436304744728918329266829189908305132511615566914345340538432710867576073074842029009899697585056350124075864122605109829370075390926847169979983810988864705825342977774363334272071255529944712611653391861506184865877103976164877336491963571031254963841104405291601674617565164152127446929104216041254198357188852057150007910430349324260215501260434075549666734882311749559956689600507667492757730351722062124307624097225400541451216104913548934957213748661765523739797613767978486109963601637847362824664385678898502855549539496576722808292712265562182598344186048382933373438784191255741618200592132242790379234736129117785205990800474645602145021953196494646671308928741350221787736554041380323285071392933993485658249962173964152587999285607139824968025571941091401584098732913033693198242274340408266780879381657232594638413423743138522315484519483058889259636951814821955695496134319217199254623645465857467898900010030803788722284629426403252924187881993758674943168808250582551422784266466542580933304894971379742168674424571365764425806295005722555803242222197718735232660358469644889379966075765271607309905125820016437764775552880158863930484255574076326394089436442406001223987932375785273108644833457310662237922806997267375597290038339700692696053980706845622305948426299962263290155793332016111349401682384180708923360996732082922727565155792819697082201301153262407398220985742525486108575805314864809968948922505585012580455241478195642773989207729351799364519347686998846597677703908358399842949114907797217759167704684197543522108128745820690521976436043732534725601823946630071930862866118672597310619188651427666769233922213224850831393273536078069438996740490979935164609729291245324621676214027295459933975519747870406410194405198199455511168672562517539682805484966477257827562342001269434992453018187281218334457367537150288209844987974844747699667687386501218163825146666503802852300430874871172874953235550905110198541371105283374996362559323881257946532775469788981300024775585501163581078793691959277066928486690266587878345648745747820700720986642524294827856365589395817337698019156982959103213226130155097190026983726473304329491167782072884421381385287670271547840416213518161586895010618370245933927160940816839110829054911812478075150573238391837041955418163055791485944645268461894618756761576189844106657611174870355302022498714296878139898980178693742374375785293082257719536077255260562486797870294869043062321514478070948246105912665673812633280604627418429420104509707841343209302226042665486957737851478655838750692615625467002379459129290217387438626316685085214383497888079510015988063608104675913701822022318304501926793603358253170516803680309714897960234929414016929563837088067566649183815216185447527323458667914611216538466177562066740241616247216974951274573657099754461431176082368952308245990337599457822794200581634282349618772007711442778117890196789976630781654585242822925293980486225280228104683824808946375555408626267368898529677075559832420042040184764901375745213851673664203383025737418673524218209846072866546052299522812045396143472648560116320007651408006678994910224208171389205501846906333797553755127943673726423096169267714010805735219446565329238423397051369656040373160307513326599265308499381924385743174581669473361940258806801370017837998282388466666482415865647389541646165891836198837301268404179538891513122772000838207369222192452952686331690402165575192353212202163650330459783938607872028613418699574468888559705338255091295385516506045620034285563000467790358321608229554379925318050044156450492353608922633576827164488310487323078040918889661561239005334949366618959722020627032378288562873522638631183585834926941666060466026852797484387734385035001327320523086148329431356782314831061585354974831909378784984087886105342179632347197453740149503734534148802130360179957916599337962448743005943019551136629138219942454886127873199707105263101530378950134924960004990378602981190430935009250751445912197888361432294302503785136477698000955047359952945121280690548897179306916035610292019467179541926662024499032789997821824807557774907076703685559673888526689318262437309301188392998809277139147603521941255858522139321405108894057499528088898887960019237263271878792943092125478280083787341352969812806926519515886283018510943134667420928984208103090050355201773560007624922749326120011995709520245539547743583244845760238858457616193537808338375023741351938069485532400856796727256344555480130048439147493602414668976535994327179477414551544463540891700180924478371762024255798272969043741980437790472447316293846359106285140985553337794872431077428303248075883540172572714368335040074446930952715242275370106662214715160437430713524806009713515692958445222854662384753038471455957627031816742926988312375833539024789662726122711298011590133558022281200877654752087095661470072286987059866685532097611438431788103026975108462597434326795351861651142565958481498358069133795910695650272872043479308440024174008167787730507727493139218223297641529762314712037981572262241556356402469854232058974829760238936678154332111619102519701334241868347357020569696522220826997415130274567511478701288392655955912125039150771311325938342019729118193691073603054607858695304567423187162148376658148863504967067542404168336003566121472983697838926344834864023807597481460659398259480519280522119090056864667377675066656123748900525179941973788099538862669656634704761448809816376057294824677431238712571768026156968813967631457262350736997597979356018860813334594038136341950431422597980758684794034449248892077379008574443277719432899479141989078452751670790497072560552935921138313613612506878933205769769192097884504439070027349696404485966145517228745004092138079979091076111893096868603293202354891606849448181714351256333234155881886166148172793949419466307022389378789727389219832032626885885077471746837839574926307005963060396663201861548850845713833263750450429260979513764107809650485844684293462734372612039259370583504396076990337885510823711446015275181345855675108706759643795681888248178802719419490753772478185510459864757495620766973654517161812272426236892042809600144242690569232617580982029588518588634087776825126464982420329600659336335680347045723800089552807718125317334477749523249950736929652139714452257015210866968622129958811547495048065370189386630789990056476269921983591681818867370118793872924031305719529831880257397239108046751512839304659677016341719417116253644116841061233485640387817457120946387588607791108802553705429431263222151917070184537584209960258750640546723413826666390979985479087445261104630570983697586144421059137418331938228856357933967471337200319356730679577129429280591548405157938761968849779311034555937180774336830700990776193887647318195021920809978193004663846821620022288453328405184198718783067593183069400722850662341378369006280009408255370488331738846931992534748674799074187859315451953836101645914817622980510947854625488875181981177981547841986030657808831846692185692653925322217413078743266074730266435454846638900129313386079186252122985103312630996644875693420843232045530084010032340184864507848620247128428949860135483323396776296268353089241180945156196591378284451937272996337113808200681320492055793458392807301804770270460826757894299291316184914322838729086052510764808854082862962623741374728187248398722776131919367998697766152059381997909720261901188932091110305301936089472772514681939431310808028835586114361550734918628436371827919812904187494921226630301497044380405862651026349325355035234898324327215115500991934274819342000312385009457878910153761539749873080391097492188591996979825104069443257172370754554526810456476760396338782203231358687529924936794700579751380613819167786500900561564064038014955958974409476653071448957230984258975200578904392144122064351600940803728185038067759793883247144667360501094028187584111486033680911677368568246641602005142984727566185745296115050318525292597544346329852319230165297083980589798013143200375849119383925869323287186716954488617695957286050228986760660621844079279420279752862050280036098343083966207896821899432846749418086620282661156983151833855360267546687093873883793433237478313569040738598839017376711096222174764208519284608177127018788541163531338794782135528205474616265016241303396880871121734254323318144402590189242427981008634229538535260268576450771812124613987223793819195222413522234217819715800124490643008642891762310015812062293170948545721824742039685803074726260215320722559641239191884311425964511556398667122613964511757070140764089039584441748347415045344538125772494454538536432293288833264129884824384157587404265503145991110329001653446247271116238857944618419890585914284931064225376891491795543403813575614176305847300439128243182024336005706282892427683107257416137225715296656692645017950789469429805119216448057044354581585799036354096680234766563261533983826401908235098175546412152489251301266920373476126498642156262562947369061019667352653687845978310860897033511339646302492871356912108203782754401775134356846734604363266789741001503728947306804188802869250745880544084205277726764714483637352833158350430664905444474490305742473334781190540725212178189471563367198754716794016356508174649132791000192522120930530661768127754285770765337663341709056806997955946530937357465240688925726592124236558466592651991281548096882454808213176190047378822303937020446458544068107030495661460262548541876620964322247297832030136409099491355841293567084026674851986927254801755128428812917539548975071660416303787911323035427816606468993428061963096006717237827141391017126535018338146171077263898250917543585470892159724702102414276800190697999811220804833505284079166619449551657751680973296821098620288730969233996834647816384654167470196783265002473230712133457946740154248258248716527763602683404573258531282432680742873070722873439193593657984134741191964753968808866779086300791974421325463024879892019576180439359749224460663978676535528326343761394308434720231629630839773765962964848163871215252476197515361788733340657994968066676630345610651099835469257766816489615793965621046575131808553052972647720414759317867933455541399770695962998948382171324512448324700787159616536984154864956419335804279481500664071852905387001813951129550652866859628634231650388872303744760583324672902494563314816286386948540261775402105924579142423285177654995464900512894450678673216583416181425468994178727909323856083194102550058071122203463883089948306674798674678472352284837709578016965761525838790346125960531446329003476118112922445342596505082161595833474939652132884169074964383894079651170049489071035438256225142236924688377961265685968458946068491352820429323662072982437625619544632543674757039374979289008551686769843146518930280414724555084778887178281488477831608640102533623202152408927165241490591488611396223314622312246401216217150665925077081228087040009210162237661605186301643296101038573442982468108314032016759475665486990841032070638508988544181140815853666730216967611859777860719691318838890603815912603027795916872318267868143023509178661378971898766029721170807797556726884925366196559592413942581444213359133831370211418753590047636820970763269053318916502419945370696684146473338514206754065846037362106536334200628954906989287971275048908953678973614818469586835438848591471322286775721663504529799323691452729053387280757625297406659029561407904752039328458710219214778329214836776357891447932358422585919630396194224960235575265424831027374109861958997531243211638797260624143052045811961495957453402920033082876359321369425008691752669502673941433432498280252371827566981389669916483566568789508799048674957250145183055994146452799141553109955753994777204535512512202979925515805121402126802233617695196572638658041277538038567450461944123434519982485017198867466226283131494672412352483903411153911777264058065539718940138467760969260807143370871543166324618027552423689290570571526531929741688010746211032178415893686432351092399918834617733302356947551434655501324944173829058160154530654876982390870962962664049933290586898025329026998236072271581868359331939218778555813009462919528361385403115125835107344869941016904204259487678232874302761060968580697883827600447557427723575115653377593565047268773540371284941136986592779843327120253573499518600176113187414065488356612743169412731371359665535671831887638970910319946177858062605894598605537928754685628306879890871530937108525131103705503323374850624592763727874486977656148266175376555703923854283491942093901278952068138478784699293355038579166219800225857326563696589746368227849789515300925210550961321540937451860323318650867313529083438076826665113153021532016699826850428583629180297566456542366427833203155631747062707057762257647469502470361154040295674963669300259730351620819698963645267827625148129803681299596089010346809258709051451734188564775747245756130144599137145173109980872160869696917757925072353212018741243255207797531126894637411803248793119613723560711517229121402375988505918360180214525793038754932933354318020495432875794022718005809084410847660556678891917367036450231239152729969225589028720547248017461014634833084570112819509661203981079145859218815105629412102282633941191278570802048876188175947475584630004150087414113344030455916187121967116883374657226865059253301034577325793876990496297318094237111687762801949484042158418341292129988928851112085808072690150337168741293300965029595724694656069538470272569307559012469506567769900497810139199352230803165355592470643431589138355169711553901733770452332096903180722193631996603360163274984776822286809068929553850434987310318257890936838117240338710740296795202380899901888308989869783753421637568511086149227741838356110618865095478391806963445726810539687455931542022910654387248609772208650257087293583056750051615661782535607697979843335051514492944693829188445434809402594060903137910432593628985426737056558317046478584757180756358200974264722301837046163696446664651331457291142234748602124535762663933532166561386209655033804127104355115192415688295882163806581641516917969816786428989289990354899398225146511929691493696745163076621003716339667528351219540782034350914764759569264523834415889465811821292307533999672683834544057074107396681614016341352616778395440406579695055339799799768751346758102597801914078117385205356300085008870144323989780209840557382985534697603553183613819593522132667178837933055410301502923679329781357728878270380143475273674994388330590360352476189274876518031647799165621799048203219942215639266970491619988773248779478882513728121646617094697140249744971770514927680123757508961287129773684269944173750711921873575183721789986378642485748729781915974624081153723980864206059441008156592973169895116906888685085424096634912564720888069451430431919509690853176558255080582215715270899874582390825213577459027238014349974666854965847874793404980150938855428043421397372566580119342273288615836066289306150899700411237389304415769995954453770915096074465059840674201463342221506774408498955199245959142274918170034215836708863163690425667544565414530955808049630410742353441519216833001636573456932505291691576443192744135601771123603387411367372592942362695197846844175422476220960296391842302561875769741455680870307238475187909116645284983923666276521028184379435363212909629524407936330686286560959592761247600643481832389004332087534119320785280481818603877603083320899404118312347299945002259371685688816783495058088246991761602836226945821949460399914691742192064632525594961938607320161600672781683208187453212047419451982278411720512068279149684847798642642192054390300571113541695095629605778324253306291184284248220254275808858167704738383350477251729273526374688738366389387699156486840541586566499998088993661603449193967376203036647121845985122437196939284911319113434117078904151211676781477006823899907536955622628572908536821525871151181452089710579214576566036801521389826724216648152304511089204129660418490820733237841266281343925052715341589623037175217240031999499882569908961244484398550675042618607175940870258782859455743078217204027122937716875771009765475645537936527143117601194312638422631423358301155653991843578087355106894002218970682788766901179248082787881933092265942170852927846359032494297252357345029450944861347252812584992573920449804452766288306888535085380091305043503561652173047432096052657263321797347136342596358417291361119399310093816402601669955648096415026178763870716578313896909686912256823731035884578972005865380697440880970180864062380218060999104015755408056868181420477287468825473914938004898387090476066768447538852508466351895118267845548279657070474568031798254405944144095669990240354658855853617657649986523624852744158559610467298677498672072981474518627102896531809047458371912656567506222269674730476791117182312277530958731136706725190997665299677158728565655048820427367098553794440118198682456126872700822058079078741518705027848289637141775795719157785337140099181858583860085824774918357348120708988219448746544791240691156467726924405467831185591749706532672545622181675663650161168385594827938270870333177802385306303800696181877764504686125682455494702017829637960739288566840301737844951250576910666477351040727604126901521146605688942850115013485682018175921621537249201548448341661352815421017466860620140662742987545176970914877572831466223373931836179383611168743717517474729585127817924430852281139784076079791289881056089314806393445171865220918127409832831595536885567932560738418205713848409657395079175357415998355728631131029635146318417721965594540891073898343362189017823708840416664570515158447453584483429508942956975836221037845884792123855354557446849203121072051282453879111155339713372346079279813560812314236555922702652956241875474737957540731575396926555723364877129862151577314792469855885196756370279004858250541713933602680859631977011461862745055230130918787112938501562404788855828775387534980134173362893250127128037152498058002236660757576192788926167216131624571152641312498518615598733047351794301047284461544883414609825016264138709821847356725194289156205593058572577725159423203835160590901134608691884888027127523826085666592697580961456843814487673078929617904233699113644817565565084220423134843232493561769535950360612176894950747464030302018232242236853196855743104765912766335522049109451315957076130071451815868230125678219271929494829612252813661575815145132412276372185693297960505254348512668442780433665642501728690708376511611314179828664300316373862373993210719445673561988143088478452721537416521499522329784663770142161225494063933899762323449363240074096534679794734893443811700902135032535040776361514887464187646749630946140548787908907751607859251855593013658895500443987591145394511103144155077676920354560780315837452835861950400438984738535410477413373601005679234398969881004295197240514775756881736576695879694215568893746787857895174143049496255792744599017721825976365463887508652391797705071444046155737189862633790348447331906496046553396136815164252124032570276673383969927769251557047343078586651790849511564241799929618201936180133075753255207470699711640875601644819374243583830164472819726777536977996988983013244638721349454270999818702642981703460892519146342447619057636777275623527329381034017603645802445356578782604012239177079195546568471313879707437906006730915166586120023290745369443587165234157653900699242511530314177964273186486242717593130983136818951017871751296563433255763284710121459784855367020870798604043708371538916849454807682129812388690758489598836545079298078220314642011047810467173739860448994179388829973650078787282900636177483329265394838862521630300986146333926746364399005567554641129377259182603609294355178199058157897363666280997505549219520326448862831343892715395453675611512848565626268910578341246751322450762582605863493427736418648508840943976309497759259271902188798125570615441484328688651008947487564675103091023599266900643738709854964352325021832573563469906829130248128891676451621204904773795974427642198131746991879531061241438002764192447791159271626252181609722802073916637153496383271549865782644055390209578031640273907942142218479729885770279476391138527202902124235234009068723187289425694131031679843190702903480735620786756911001642627078553165018971473977075635077257256705222901956022369418413985414067712759873137856016040892492749415272018112908185149414801562271061463581040583992395738253205568249250924213114102391989622940756105644612181348155269939692330831901440817676720195496214628725993974236872637848977129531749902976945622067781574518054353801213065018000463491756129404214799136906145606579817554542333574925430212799567971205687332176013510802016968604796980026798335122305377324258665889359085482495639281963636977046569661857672404401045858973887351940023090436858868428434159281128642376711721454588913335189437233693346794619413883573519637529055574203833799182233778199410072614360183052576589698140299925453905976280678583878658689666428163055508305574950041401118405421479948653169843924335183715387239952311341234264821686910919465652647308815177397159165274791002900612509451069025241794363368646779921350830225369631690803965793238948786591177222922962110108138758175628028161546776300187564819366714919103835115398886868632473165277494108654012581832029807318706937174786739974299717930435661358133399806528879997737765232455150069253290658133529695496534568065900682662617054208763260613006312937886142057501695432724068746107111126542787000084750315136982649444106164483814098144738632940869841307519682159316156449775643692416362673439324709371982006946341813644137426924170209447026880689889206587500880443580036587234503242027261267222818122325452402572555501112621095682638955397747767688988305211005305857068968637271853252306830249785067315890681475823035989382324918957573849556015661623201070324630184210278567218724961841080419305079053640244881519166785834246327915006200523274159963631325344603909418241605919395895291795633730636153645521359931318993854352028115965103144515310288345652810605247878755069825485114331905652537109860820312426854325205816676526602884853051237771763831705897407287890867350068625848957828782198177385953629420553098013710248761529170508897744456446886628014075562947883263202774746419311538873845007552840199488618450725917719613035366713080833839204484774300765078284481539093552604753583425611259120343051462287521523702610943241490239025633771921742827274935149932597610231846761660531340865082349413619047941489754299527646384341388128318341672331831156977252505828942409553123219947779534081759674292805703800772482245462775252444960310891320822045305578469294824019578938805079231896377787569854788177541442438510355129562675154487377443237168111929281801445089992713539365121824938746310285012859020528960861570079098829404671095577633314768558206051104725262449558143155074150235581505993480518129552558002773416042109105743701506657600744390752276506217890449369927441533133033093973301765395238745706207908906269694338388642781449039674085696395408384854014860572377508136868851118660658992877153695881976073715362536824439614072953017892566868038713409991875847714922913425404111660400991261436001735767952437879766584152705081308686048314590546492251099719230016710393230924551074614772022252301706277159492871245955626743799308219840513528713891436523198722369040270348222405153105608169734859560650379550230237645188424661236908414179682923400176795327781063888582970982290387510797018375956969729668948191653241925423391920559372880950298877449435710402281365332155760054486752281276960248778833846916718316767037322417562002493033499324159254634993682721265197954990259768755621583753396000443741629319656677821500350141490956658931621406929656751235754577129274205875139865597803789672388739117372174825247015685272474929857953244149216880315866899085272489721185114050488682637487606433309789472313122645153829489092198132255988813559979396103583916776631479551069705204939576998308558000167653456606379907476060115321163352524026042236934220810765510758470401232182708141091000729984390703245440155976984102556615804876295832523704680228520582333452475763468561787327744996384371728378234314319279437494200773701706554126517800864798569840166661511627620851043964176349275455728810410294114647703598884958786647157514695266716506344180568915464275911096738130093559545629828188768955343511622462543626757196132402080202462294316202705739896985634017568135133301822693573459511235441387088152240839675575210533431657768736608626280310101396874550151959331015430640912811827741305689374174028912955066492895625034835486871486245176147722980516878443001452788907544773197263802123162155835757816501141279643613776450835410617309349989311123573153596520365357198034158807886510298869447256539320077660693676880509869137307267979932054720511992884920489417934376308912815608775253684517735820064793661655356553473418449236444940111861201888204450696933580927718721854444119226788312926901496279967430512313886281952673320801004054355889410553090015427394193145631113359622890744824588403211109028997031992917208426581122676814525600279231487801683935633184646081685830810661707233928028673156908792195617713211514102048733263822015352467404719510124435591600135314986399915197934111136421376128435288711891954906826916429797470460610754675810987982601041879229941826830048560419660130062883443390204457985132114006594406782990719746340442003944427724806791289719100598654640411804479507797536853251556273205130202638922126681198711585469626288542443408728724341354534946507547137904174162343271285144643095687638411303228870904298747342047072185705897757382385432512416717869543926238433635206103503117392343153594916353216785822761770141958391365682274306789270351395084102667301805710477273644552781040976534652217657147558936070581361367802500875448024687885771348389642587558940484447603502169058431628939837872852447943434959129253850776205710903332967937033935675244546527858349264319772725605572538697388170987414355768400053536997023191301160741743918967750352798829399936396889673712436247851664979793054726262282982544133744185816831031533695746505669543092813390773442205553691418049263920832072368446756159239368639781830086117327001104521398247128117890764497605193267034377980543336470265942101716631274657723763206641206405657758256136621289367069168739277922375560782060926014180158612119462609139252499934333378722529125553494693263344433523045353390782616034127717910654907457419023807782303578298822799901847123439886947886684334117430563995806792119005596226314286459670361199793618936835251221583995703309468431377007809091971611484379864847265556321854780463192011647094576331742372153196304006094530858456201054317778227042549770097458706603021989282264794656380859154208251339794598660684282629426728300031317979610101090211314979255743841812159461235160718989737977060580808573595467231779964719904205850825342990383833618465615080677001868207035185560339816766346632939704770754307751467666265516772005543924903415601327974874279097620578626189366958252837597449170561777274277329211933698859082970179867055908606678770326290411345529472498269336591249355351317918655632660426663144536247886906759712010776702080015882728631920683121346583658922870202625281680172448904020001779597832649376211772196621325325962614966713985191169912278508764944162316546723571272841745938522211215574203927525619848121448869072396662419234572606009666086159735890400568350518480812038647077894520748586614649905600587708404627167957403043460806555879155113572389119963085681997319154404925728112813675146573374411211269151979599742337956260873092906569944183586961809578481834046175316203424514808455660657045225718813980786909968723535232034778900742336390223971292990073583220913034349936723432348996684081325313702940156042034527553458369533757162308794823394745232010599806300863181737195960058435283817371972692241435154252600615126695019282419146276167565146286050253220358594536911337835303173613445853791431389370052769035344742260661753546478163108414575661967041656593332696093603319866424702734425072726489932859602368500582219915721035989760534237802521718661104713031733922695255593833383867171963391144435453270666980631854660052280404046553933004549778777770415110866455286317948543369560405167208898170445693171395976891846550044235990053428251315961272862323904099341514709469757792578832643337335158784493995296923262089195297813353925758685019776587689738866623847241756444057475347955128483696809029099083973354406329386742563242967689164587566247371955411048607217923200203745600948667471671173339654046881493888388294683128377701395675645098580273137899494961573162937025333919287416705993604853335214161649827924846796929588777782167720523740034032150959720192858842323461784190149769783213280412957013673427163627324392195333222170103829237653591400049820656880215850631782635927773694875836042152645497185595456789758498778196668326013983571085063164028331943467122155587685990556957698820216828090963041362792064013876539496359824254684353385207150770601465224328434041801782279038588069298980245425054839139169245249069918186907046779415577167969760899613733742810519000637821499656937271194848935958719998308411949776723567595721618451960499801359405276089656658655005230415085473147760364149421878221404623893327670160298784113482988841467263074064872524770174687171206645570066160375249170760784767784032754320257940771367650168081107605872839265377450633521127476124041195424515291463657363403834733738529644695249846896111371512239297397132639277617768585243688996272030116848143703889174378393828146597454177923604680581068332372415614778946030308804942777259361602266759467144191852860794294262096437966676023227064413780361411724366456149763290420990526608561690321774979674833527123963602573010041748969211695948405142144187662654510441132995461250540249782102241314586971805118136205073115915115960386109177950476637708347968451919498188220284605743580725051381907433890356235701832293259541993931081759290986440080118924071416675191244140883235982565675156710660256766758326582813432106907317266251234524494344180433340419206772496124458584075185996213286981697116904346098855909092985267867200657206550830447460233477544353918552695058458927887603052076518079019048240212706402162058728968887911678873761435871520905358415810872286140171130150117540584389659281635400021997312259963877124671288242712854670396362568351310375470046219939298887709148291675734960259891259040238621940723516903089922629937636804845080584104578061906629615750117477670629787071745761280018557393719878041254598187129050269810136869695351198981600301265318005607732861587980679367110622988065054554913420637300191226579230064351057781834046535710592640342306163743697029133330337737009892128812945345181543950271002727162992151079813115769182056072102788313602169992974937119436707841666600449729201073734364658407553205069569108212398116696461504557166491673600690897327751898874495697674361728155681843624508071443606840697450625748927738074639221001026559454995954110275311372360285303162121419244776074715104689273312387030488981561872342755631798858781808775737338035843504402151051064545415258331102256219095709020574522501835304546011003015170174104389980861142563838633008319897899807401616403289908884282599099612272345797555815611837756414546708942175441220533438651615698870332832761583387888675494191554979983091936852341591726896702982012779390158321865711288429387981528917777498197788939173860946013279342956698525375975163645147161889456035331241076301359764820658629067203061874781878481952278788875783980121860836007497968962339772009472837946182309640780904790104984513504275896479004455216831841294813609428931939819989851049928134253537218954786971679583089734848216429203091621584841245370849353303868317352985876040141222053737456432437472732827328934034658505013238767620535518810882693928885547211928224617887570604079990474199254474072029761947772810364989965985297490451730942074517506343026668130061122962970568127787698601751389687232613032722892928455398498026356020798562149233770691573475359629094687286466415522960174895256347903635967041526599433935944554787350003035834743969497915140141400848962636953996267840934798527396880684452495409995322710562867280378386909912251158931938376993411683756414296303978545707997567055995188307064384554640013525703519536957606590723888185015695180961135623084469744055469140525735082494109736389124532967712470755405803981361198876698383988815170292688477089658841609232555038300455340918077572041208930068981715009319675244215889500886059125716248093037131995727485758012600326935964876624918065078234537272762996364849018469881508358532371517162616249716600232304293161235862555269704235669387041201155783611100909916722367183174500072767434680408234597480641531003566721005140006457790680716279353673439398843066717033469674623513428155266888919811666280365724504378081081358316569698519887282089354810677510057003445584526862333239618733617663661584308021784972265316765206836444020171396945171527830889785316597144018563512677346013441259871328632557418278323087404731336794996981812455896127764409170037177139445466101752705345514066797176306070501325169663247114847102080952911670876737083335383393169696742191248869657181720342288532055022331963800637051863347926596203210036488000860381761632232254557309897397874378979862714729817762984594698287634282971023136335000335887773588705605709249758563666915698553793302042501236780754449576526176445988537393283574069147409767406979162003975589768892188523338921045838526240144665421006694956890387471727394043436754341373108021420071171568226581291352907705067647538574247590416435090691367507384580261733483509026122688716467367391480982863404203727616169634793256544465559606728210564693594414749014884895421352202078978288224478036847842017801871094948713633029665421326800602021038740950075435621786868668514997089186901756189211936047856922181447789519402494913518668067320494934528290870197374451070105486124722290829250326798018036051139817116175711429020085992951391537586893730461276424755790793854377304465167240819422285447552377005463634943080965057437353140423435511594952672102369085637318090556843239505265759593531205560193409964710045729923672037220591823063227684938718354587239702830145607606595229052720130680254081751961615237277789511723131700534716903769659228746088017759898031794818533633678980674272365040710810241660558670608163536875749691875453705885119061005143350121204983171051564473468405707523488474612066922252331248290269558936784805307214201032311250349865650716086351067168805553048223977533430636849767571868995409397299304155206945698705446965634784039859804957470066420290535346113824032592234304493123169473381354583544405157918799586213826507094778705517117731679936243186158845523737542385455591353356997439330263143634060784661620110416881996640666018977545100140313714517949744815823088462057007074879762910355632882125070083961893901519482689511577425138932165448824524249878016712400396446913381966368522005101688901939377961521237660332872730757930860844179484687285233553136512239107144597655557601114667936882592291621592675526736436590788650435648878141433760927005304635469045731950502970550441538100322285221201752339480521803206021660005105326042690747364618898304801557529145447510787826061200260236200591392422447913666103982729484353650627275770581074049113822056168628029372879527737460752191096320185732651752613156182494193806263136831677857073846571379356355209604474856452492473092267252478864948091266666569611119052760724518522678549695430608100539854829303296233866198369441868554115054714459570742288258655613412836391895050246562966538066044805972424028318978701951496687805522295999294443425757275948790008211263909317900942735124965349222673060226941742363180747091660035810505412963349465137181632545683287938732319510555365665241610546874945284864689239793416034278025970854212373868504654150214008519142358238768470192568212788012155052110587316122289193570870510146507426295493092265392648058782996732298269152555382286728304395242202170258357088319073480848508282973151588141904825499369396873360236698141739148255424170953657077575938267536956076822619883694650990215051152282534744545185649837671464756316038259636514717445579614269174131159061246656107419336785267318716156975642726470551465119470145938372581824091024836912307191506756600597330682197676349956517738471716539363233472864142434660509466646352722519953496544109656103674228639537292182656233000583143095560931546993800892425093771008702662599336658867305175767706738967365332300076918781319157762690021905641277859071229338156158520133530619478094503123214488551334228627243880121569580532121519315735636649142235686687751875969852555618133763032098242336793625281771387321951031058842118022907720877747382603586560570867758108563720736557580579886163661147816329220635146421207163908139514953785468077344744870389116503997466611526595457628486545634895019977077032989108121743711235580155629320280845443548753568109827056366682932318015070955424121239557799399781232580782712539387789883330546587826725010814028214934028766053499081160206840957731322759516540018013657806705534426547214915763168075740378580198262552964891109162169025335936239015413847316977889343905375506276266064975378397873908259427019900829857124282856140701503522302352389356336030535337427516569149543727440829556137956900176713385721219540648252206429437532173680898728997101750406983430214926147428554038613785188954782805683512291604186946143070103660395160527894661975810838851461796697130214386393090411478942960531903287637979168061214515870707497981814578542992565227275575134655252556322657611515052341266157343934321793083065058792493438268622986757693388642954637326938616114986341124720629822775616668415223222758202379737633364217879221516167448046098225295303552769430201441163890837646686426477147731027305126805033584513156863447860539912427377127158928326499442492086310813723754769372058337343412839519239716047078758791766801902046515364314874675289303897687277210808769388765360554495374129735482176767454463344386467346340687546228579696704732290120686658147649749750639810733144696403386808754773514759895435571312885527160260918828876593233883213941501347601973391668358600289090196792206719641510287729090389173926106272754610302310258397235715275721888240903131455722454797160908976349437970964784707892243862096291882100893022435195321335267916783023317746154559667626702115893211023033165315860320518696065702052191242406868927697787837921970520974363171650870842568377271488993400814914082174540939642081098833281586230787610071639649518479120850336868249063219351321216135391627835375731978678129585004940490923080491378347179244651313591108794559128071877976952349861818267816828277324053089550165877043278339051375568324283189080898119744199090773775610312908381797227382015328569964453727186993609587977166451665300562025525798257812083489828828317903757585079290324742000990777322071774681313502549931785509928429637697689401731037598577085911929583882611113727610841243914738098122774230310323716646736576971320643623485165235888237202034811359499331588247138261093815714496605818034029393098642338055155816084320099002051046469678656452895539932483262279666254631069819352420033395550983781632906583087319824400293837802772553000541793267752823459642782485301556816820032946446536761736851747167128163608526993069895912607378381934089761529237334645753904893978152324739742704428427196588388259787096407533867942938931467596632589099575625302108986871145862188928763958606024660383493123726332511391530212957543411933567216444643328367227114976675885068175996112554852602279676316635992030616094998347444840597495649651361467959487999546631430086465453171532834739058566127182799063132667564175636626575470116849415105810586394110215265683477040767865205438930428186637543522762727548927812720643051627665375480396013630771297485319638599600890122874090924071326687828588828700211148976359805827336761312194548661897634828902750726490909925460572040086314380758632523322798487966072524331614545787252261103034244619457780065073347783454720243451214270976047824584400844916951741939676664604929333785544442448945783214239744294543485656091144273927188428012345697222090897160226099847290425639138409542558468816202991254137253219046812656217974173237621189542538873333240458044060025080737196911567526193864764362387130714321483442908475936989707427509095950706407068099362990724379204136980959710432931802423193760678287329341498727545850880468760219746347148636701224144302713151143566298417938696966262006805885330184245211889559918297545224706685502473790571069450965920754065237449402940852439778873415215295743537620910189359778778423002381632680447485175051876285549709667420715450255043330280382325269769937449123882944208800863231839267045107689461237355107167720306216962569516836246355442363467170275629416625901220073771012138286047918585704846046556822505808151611394169970820153296248415649447427690058074154320741143078584727967688213483609622939421232851054732509258090053355618085912713430845431020114386969722319695000106175468171734001817145807547596842073873309720408021943841336355016836613875100547442666663628357546848302173958264259460054774973639371927714060600212777438851138562311399892767533471660348452877831504100378192281758307007778171687432711308085213805636236788248751457320269284757241065816507740124031559838982147754942831102669028246971412760372084493913828484781392361584491579136401278560058579148633281856965456484471575671494237225046482070108503705284089002415134777576009308948202583709335582237029628265310274233114509125798835378891820915423630547654751230703428843689039891508934008546911345961488593933736030508188138270295647757069504052569654102249816157176375223893482959251176578181525382090684041832472680688035489848963517176760926649368893018029843431311674444845588223423108510455705914080445627663690646812620605723947936005168682581885875368118884803424778239538827684086737245238401851845961797377703723453957916796761606867078379900729051482163767649587536911414042408417638214114747998900324163084382183433751978783637020801373720084933793630665685447466805468456206902501614820837774016231265023918200102611086610755536892638706512537246770065438830436063703392731724267578170671109128842296988364577137226260124696463537739976153165758508975296660199813145073381942684083538000298559815456740453507339233782377361267296854273012765472926869618086201665385984682587398230138501507374139259315194689054459655290370454060075457849481740432194583096164695197671732755087733007808318978955506440558456117532265445943903467276421384520234904162970542811823122744742756755532590854107981650327500974529303002883663087536689628159384295302034422689307374895128231835313612750364802263897456053615072217019336957411589646143629450639950796791990078674609528937347547960349610454346650503287340393800350458501721023375618567227488604134541780661985358531871077797855331901729156304859142804807982925203482030025209766964753596690247521755009474948681770173126205229659980591337328949320595181570689287879256918090857625042283047681694487179949274747720972131429176501300451587532211697839016952264573164228182284223581117425842019315897218996485229312506243929139622166916074642114836957707696414888858159168622278191806385824742291774336837320852766631973576730998889369711678152276816077398377595152283518888136552965876456855740630258400268613052034613740081270062338767652383252629257951582018600487142642604511236286972716858895716653020771336702452553408447184605772107636927394444904265864953009637080549109126311545084929842578164148950167075125395813120412730206441000034942053843401230602251514031266879927371328725234017180900288899948891713910130339845336726011010205381448429963276688722614654671012886425706555114461809631622696800012893190080528851041087625989580174130691259578841991586034452377907771662211696950687466235529725777272549980235574008652035158130134429482102686081864244705047571069130805468240965576293416339796810572153628057942664714305799523207534046139632607540629743038546070090667639117314177666843192073555698360658443848688454271904953038002669710066029322931646163638998631271279284135410620265212325959733960927323626881565872156480147828084101258550823037794382084158254137994315946314303940123709978382129684054347235750488974771889400685980708126601390561412344616794216420749495754784375817413470664745671344319756010069705737464893116295463723159863933204440547829263955495784353340795341762116222182130120834134701394108450030017051580404029068017936534652664480532534836842376725574822803142661551962122961510903900922855233247564070752625892680905570887772604863793708818594494054815310179658403790327925138920620776432385154159817029365669666917614228691800702938408685777154733104565185711054974408712642200458069266658570168897056518865745001566030662990198321785196520857547711562654933877591417634703285058058402840335508221241241008229410363272817982250625927238316850658968781268185139305942015223993720114993295806299606757692123938629368199624020120896603469402511556401349293382691960251971536644756487779757716887222133651883656317169550876272020511270492633882937125335583754555840132446347303309760762207948767627100246775103284767818943694203222344242740825743018994489120426311311451903883916754721937947553922054667778194983456076571037141553681276283218009884507850617283682344745108945664555587505832662342419392916046247575582677024710911580386435976202891018929660979938164546909285899664009465689193527865786818938448741209284949555670082744404429513439819493321408138360169418567942306986738246103807306602188966514926030864779445080703716302494885599282397556182471994931521443102345958317024924498183882179939677034160922555457283789142087374023155917794216031504277248718752362882739889437450207624544187702364783448498305352227112059597601524648618353808341449071521554451016586725226687547376378354999175056186001887192452984236790025749946509230914243922902748523082260354401257228745704264798201139350949713727794698057016770431993192410440307742775041517264157822407410633053860116692745548338652198838471100593658183567459257138438657544966848256669862522765867767439692815164003711931319359161622889399082207831382849633309333978552321393728118722038685749186956318832881931517249077598961825658808095298490906464087081578884257243619404839863255036605521424962967654697756762280243243463886719728133069637279281620366655874732567787405899014794804633552593797326838252926182394826405209263075538568562083703202057194511803493604601895610511427740102018506261830991351440221922444318663762846970412647347433704156368699305244423326597257261089494516194393388964190727573710566062991729222742748096117936987347491632757498634619777038070955695169633148968126809281756864382879197856686025906988403191142561232519938693995593695295507827929778051730656816070656703956443569283868056939392436463849718897008491451222615301244311996093605076797752078445575306087292603427340268961961681893008819719057229278304884978714795489560467487591923681068705113651698599223547997733040049074000256232871608642462008370246448896993720025840462119654716987854710880863259972749749374993034744199098215307762816666284126197891779337171720073674494760334578154001942653362265474658485571136948306312088067916899519066495890457027998667752495406386302784941429153140148001540682307235023839217784495877627033470896588077096632683245304368340195446920130358885830682439800388419702988199362380858902306295512229931281620228787238853420533020740660873524476966542732771473532334870029424979244599124335371871835726606092040959569547954401431244788488724890260829438132366814402717821751752009348294647584335147747441195263376383582985086895593284122597732481515330451827543437261224315123296143474784651393831822889727716560607959096309590032443192638450298866684744951410514621995013663136127360105662583405064965001438491782509948505272322982939265933452740712741451388727747382264429378474844058572807410845096616420830455656782101448637493570504916672360022723922380838585968108120614700525412144937376714281511134298182742376644992875484009214492995884956595279974703986666822314592905256255665806650432945811239159875343043198017059123258494605078255024433718024064510106054737853678542947991005951520504850906257270225916571680763032003300115587732483533385374234906487288347472551920940958642765218802607516959217716701820369759032252158670083030756213323702687795386226144089643546625131984664242170284819484616832173931841835810038469475274654104576822867113733489048020813890699850031257474257388186176677807716164799863141311580499853057316231863608587638360344806884448984279902791209445886938163980464977025034998349021699772905189951805806668951048007439817578682177519957541894744741312859206955700964512268891753343930163025923146188515868127487643177664465457408091695284473219363249595182664745827129523442721227489554559493570219754404437050650686913653179713606536948270265722091413150272966934544210897390908750031289650159674448288175045749158448547947627242731116900459685258418698826581190106398158883818336147835325587301710554432771461810609610493188858801350748482095337334509689352230706178870675045105721353672569578771920767991770720116357267427642983753243823771435930059454996397929347972803844239559433237067469752642522661664897216163455158325669649241283816240846749811138529207122679358874769367009239294154106148889032494061389920912398390698329014625364396591545679636961714014422985719555901211207755477770735048694793465644349528675520264702173989440865749324696982440764314501878719854449190659061251014343017329133149208051861939085249118669396844846979131066447973687180001176225972156742547886796516878743545173754478768823166970813203804879254672784815220258524396133698933317561741720409698792825587727672058627269134036709181095753781533418891590223853339762765621010262466896106147290214663721917028682810418648615038316209106507127570950002030860514347818409151008107740130297397761915829025044282688584520923106271281384161754042468393167184487772991070707244132093043999430573293996391754403313280387781573078404783153742904665022916317522218234388645900700588717523326117289762952519983008120625703022174247979260510755132835748454228529469754641777296105619860921246223008755489889379105745814195612724305371502091908875563931096420128947940866255304450008752795556273052362151426541374441209261360718634950134621049412247662170592567192266151800249506005663967178799993846129370151653349709968079087100674469956415981821463427624035295580676937901317255586574154946212098123268798727235686158569601434125118216578116277195157410104360310309253621031729626702897865341289120947644226917597844314696176153462380333451801487061376630924997947010224436225849309999372868225353926372133877122340294038326363313015929181620225341081073223299228873213592655810001905338485325795651215013629856396448022611610218290983393403721874756674393480883407264720992531230432716844355985029470064774104820172716644967674314740872504828090914174532485754095306558513238418036328698835837626059340176916535517038846083284394405626616811213228233465084157370415309373428595609938970895557917224575418828989660368926001181826429369921535426863015586917640253085526053656420753260526410853350381522604612352837602554491559418075624511444740445243928304149320354619673094700313844132721167953026723664936385786069594881963634356648241751737508186914059194973738334268308206927650914513765379325419831203001253235690865935476286906576872896929157316615972408087278195188707690709735199483501875958513720728457237499766254292334152273071370411723424039533763241821275625720499344069830767309108246314306571153177548760698721762695963942436078957236636965954186765119402128306055324794113785482469723689629948038376745022428215746535648692803583790476574869062393303263142506304982627080548498707482432704305270996563619669555696151082229494124491094384689395208188997795028109925903621461395950945979446051754535421785805157217477369463543915841504665190681444326768341924566808323555007634774433443796269474077015546004340775030604201565638600904156675970997760798853230837060903705347671547345212763417865380800687968590900879558502369671602954007859609734825772246455467118973665031891827665237894763211017225107174633941687386736798453547383005028399283179434129998007775691596930572755373981410740818138702799261024227597479059664422551568163402480002182011168003888911745213645207619045237976178621680090579956708448537300028817225480552451550743006254442612109802568925595953775434433073007897160082560666436668970465787661967094399509740823283396037782339060363761449352114614652749194614864790347270674204812197932415096094403876990209759543190037718915077798268001574257567477247520902692966026981013166681505407676385784002293288771029478762661883476815849858940837532500721753951127214616205549426268349436107347867303645820840493781916342026687926009319602682343690033793906602794454639781330094996510426551611202797024638143532607960646213365978562350973719869576446199707633207272252730720450194243238815916731623406223117660681067236635425438472762847127173785868115023581846877884897311047246033336844360752593972597717176346614095574041073913301604238670605717482121714572579388581286885361893316134472980497987625932771739890150216509510194441830803464024563400691536828975729481016185657440070123927249069342661628765353197875488515639886041404303545904067503125585253304609486325453462683452582160112190280511708645244377206096387964786673737468971065460879782399809060817295790798927445735911649905531132634869276972860515775129402759298101505238230321023409444583965517028735238664921250273182454203873493136820389161336275428564278213852801017129208056837944784836258223248751987487724134475932546251176713136154465155410948176332228044528116501527933994998208619634055831005281141916437190338932814697909165458389698462407437906396303786617054954507582174693229089335754391367129100222615879564110215640756621226151227037606199067383294235163070702389171002177819819108534321064231442474771431767607594666054673510896844431868352645471719486985073964507644935776212386238672242035321753013732565285185057716260485088464233278211731074255101732918358806114603423634112720486992899971031189869392911257369281278095334026140879109043805589298954231611821956620626033271239504094861226153943972471251041112808524642012598392411942696770879405963736621979711665552879960432132695432646149992042925220161752947411443234395582662423805836131357770512923469355600748664742887170143614509425391438339532238189969155472646667123805519173294246903132672936564825958645685413279079411434676092565624108432262845263048509346624724031448174485392034619929838483340248978998595347377083043088436293880204123156674589890693795591401786535430110165637930685176010760533482260426296533538552067892688689930825038719371451660154763799449945152121572735652070391655567116951845311677998268690529930259244348166470069096129494186313990587884783676125053139727600987927215497933157280654767625960057992829630370026991702663667406613662815418748605395697217242077462260327146772219094396863401648427561131501436845556571668889494957255691805237034515929663909360004180487384117434467702341080886329104798710731474242947992413929993994844815775309646803521984479565733394432688804729874325736566567208265505539046790912870795955351793219954129272944041912888905439438484031119461729118259775258196004013071012143704066454500883342631171314372973459060743543112996827368949908079582519348258229863661936627195534983610813936167475581265669221531409478566650017404495550977550670451586142387603055042756779847037098217303475208847725113104796549880781147561159069411329890729053787297915934507739247885246806876677549482861634114055852940583475995580286788945145105338001057507870476467340528337704990709664045683981504055090331516750422128890570486184226625119465069967888436838684174865376783206763259080617794573500599460244281149791037075934766752198759671028549120088443742291206418878493839727313737645803991086110326732530829023285884361614664134405253074092155889499703892502791762902795366135585595425192477638328872135615093379957431159275008440327718358214552739373289193771248079112017726184227630951970177043993515113188682458307341619138268100300355041900557503019505730133736412919342243003269085786486906370360637915241469874714402254105419331407325111208390846990423845323536459062534052901526107829054497535475663004764489085162439260344201623328146848522535401452362122409550732670767951226147863570739417928362347293722771808744903007125720570330059294171954443819556341517279865101131292240284655732979256234833617376234419751214746482993021139713847805971645237718219499154036014099959593741652278652531442572869625995461489326812838461436112178343239001272014459861437271691275517313871178471891429001955018118887395728289056887103467750197849743148732535620561422494224219789888888216059919193711859710716314636938945865249498332673168858123211951536222495029405037327043554062528681157266774212985744669024835453290700583795715900721197677144020306426667564002063183429940287052943648457777767205762962483092687752694867071101306985370465278255885005784697853040024388165984006829158901679446631292524936930310731338996242259832359350934710562339826497072240844400557126599823867477700864244309546072535197820034636527992408555564348262313181365680688806693957753561379718185869460473429733470160699190615702617946385887832884004468383359348487390810343301106324526132345457805022866298402092381569768889368311928451735288540123755690425095300146154149832542141234176794988755600144309216893566835473477541605792478307096149292135281339722449077332398548570723660117212755280808026344017829164205801942681180361380599049525945382877708216580444757076988829293067573658385845906334651806096431399054998390228881335668527411481316425425931122390815280687207988819472331375081417892854792528304342485053205129931165211995964144453143756025249606881197069157237425123076682907625536376906027833100535233176012993031912177422069866823878142686579552357190107842246238783142746691461199861475558619863652124358453199159692537901386812728076689899675621084728717941495328975408670284889922426687575926839147385233990553993223303699871241373543001121096276943646950243122086171900514892600830113221625497418433576008452969354242619649746580700288976442090587179380802432092281013406986842425579026645834789549578504357989128945071348683211544200469746695980092239921476367602715067362690940338396589393908196355933818769258004158590938077818128746564713497057296956281059934785697403079247668283940332666974393551286942220424947596245410234653937741771718067748183952129160062397397914907056589286614836944740631871193003223342157251270690996646833178317771728731409698259261736553998892160058699079960395181382053012092416557878121794436453898802665001104983357675633664881492753343284383247999902799997656298588047499223789916226102220309532240492894682474672659870105295053107664089110834903192273614311576614823387700092495821577676947744812197707617149040248161939574544135471802342852328619703656220187099412598595017502842247811185778041849647407010873921025811560538519141385512308471986465884717567867423688908645247734119121056219552552696413264124123452495685562967896179946923593626450468767240317584160199996383795686621700765033808767487088361661366909340529504635542273250020445134294472022445547679707418826026502817581160707353802027988465349102732378170149554176570460638104966356183380039338587510428251523334756469129941757949779373123720297013496485944530629015128486198452002715131191119045519802455259093574720361639847065028700492482054105697942923375628825019652752089615483574653608939311959304873722197886920382973995138915474910644464974383326146814517119717780829118524931136807571005747543746393900773030980238628463511550796550003775358628900811530420116382767861448778560083503086741594961149353763079345171291623041007872012915178841085063577230516003291438244049336984776010134248638388034256461832092077493805258232259463946378615385810661719072452478971010950836280675438215900737782610082151209084908877248168650389613932658312943355374354051725926174754473754874946113824611143386269777656872285578688525111635381658942982480439829203227678891525279288811150260541340930013598184834665824918656129909044029804435768332172099168682574886177712645453494496145965243368572683181214849267867623150413924082683780569356014182035003887125661631436645323364363300875708528470475254809941440063615932216786351421145938553416295439631425260832893652677859363613073771411392373282570201041462148082646891390630241037276074003731939144392531923678225517653135012471487636386787438840738802841711710025916145842925579162320048793331598452208194363723246494611407046272836324608153818781777459610784212350006515647527549744435858062781229258492627093249083270175203662272289480542719369678612476843532863108646396889341934640500858338678482807690042886979867792687476552336678478619977110051252125171127788606046762112667453359315848315839380562658913098184850963275486145005903043133074437083326735540130901006322829009290087349660780199264792864086696140190317129222920765130888185322222642837224929334002329577475291479843039982652128829863001923556438228640936979813048200910239128971078769739978655728410109446403070107650209886109607993511249705845060757788355186023436306594480804475935168912815563224608567801406374074745843691798319784937675308953093937845088048930209739818646569036652169598219490309472660410294418391730083264871750959797619686329920793368854358376819140923360452716925774067128051318129053177678479516059289791745204610244117338265476981363710997518087412786826875677136523632102920318194925728323257357194767148915193972765305096217728782213207175702531933344914994507730487608687495924172530931122178195885428383646339673552395419909255235596344276738748437268265816131620534780745520555701637679034196806572714451796146020727375155652141695763399155576997626534293941141028616193906506098661127752895772736571452661211074073211805041550490042798617734038478256272394062067968716624933910372722645154017491644073943380085155219043351446087058581801207795180340196846387264566606274537404186146648835281037583134446668403851909987103151857826161100694338490745819367900407377637560296485640892858096320186590075708542027968074600005172991424033117158470511206908185651458717350657483174423574203486583977380336394788198973917205524977025440723475801123994899972850672300565598617878612150823697279604295657560105324297754450001382655884549789065309394902578824038007357546253901094556301540313263452299987393090599774210719344878904335101393230190531635869117761483783426397213227106456049133980050874458042237541379166127891871517182562401463797501455213379796591994676964904882223417890140382141924750694719145846712222527181287218584754663008269534537782081073621434184694322765811456460315697751706793096255284057079581958608722199188524509826081292651201970205834566336421703923835921644310225044791832576351887398535872499922994926492762237534477933325362703098451230799704846486631748090259899835684249884606477484621183236520283867494962119854942201783513779919928492418825590329586039244663132833374921343715694867634650475194923438400141954871764309987303378620229813480811514566939467687947485097869088425226270399151115930734635745546092056611284970275802398760075558903982651540494451002139901631408420274012565253514127002092333921624239933734271116732005624437268328552915941485049170230491487525535202537319470861799452038290625688309321490326737469353060960257631569197905455979961075905652531189981535256963110464426670700940409301217336658263231129093256664952641886181875279827719690239836479340338462734898676068037906731538171786061998016542219614678185907500733269570039175509252556047104972235971134061487626780769365310037532670302197435589052234010861311383495047206922501438082138058524311251963635595565344713948343735782322662336685379778177661306569973955768851257123344076191567732053876876446065294920020613242299034544292572454523009155083726319874434858944116238704220429778041308700347345383688909456919024582881140383634838552333253479340197800366353611440653100145571531959821092162223472303885909044624773429667201697659717275266822959786120259866322963099858038713944034409839059734228590397524883605298478956616285982317646844614395207481950594131593088447923392595451862991309408158100867648152325807832747026382505611386089911085909212671512400539613805546415109662276985207977725165874167168624376010663563849924123099860170009313861891343643608402273401127127372299776231701289569147377912467744716809109188760993907369443686753155288752583382350827438778898654895573759628261162632137167444639855997073305923252734243949478430669498390834825070242071878302930554531597597687763829449888342312196069984947779038021589347540026867920698631785866667176719306500402715004463409563529928041253609205852547609087677140656414209205537982371198223623397314843112825287954668412313568186094404506378663736374746211170281277656728342130814848381666179906861138924240651299949499095318395218693721293150952085170350940146033818372077080696876271988165766340186943011703264011211979765091468273391562482174974252225584992899457698534951568591411429665547878830836233009868786834566078503850720170887149060410141430522441609134711367216943310519709565704545682968186981412750971895570831514206483694139962748383720553557635083481413035090177818888938022668554840657346125631447052413386523343359182493126660968013595791518307257502099859484774890227133540647800771158367827550412676666553999956556334113676817569737862826299789859901403047551148233061611544971736986683942994156739602355073835914233410351561317318742012458582292153410145329537503039687161513599596435450043753976628824887530773003814987601642760307128826867703479214270567457720440229443228928228967870469493266880267881787452155525159617852575702023725969600076516001945193613741233867702205735312066784585167183514583527682659744034942396171685028394941153493931784317203650478304574182546066962208920313731098522584977414770485870027366150779160188691100088105142038663903165402699676723358771889023748223062823785005906103788854807293785414928060057638565632843157946494572288474628902551936389040357216509947583495467551820341897529906798228478778095265587965295661495440689852634822746682296326315265604956746121500597653768694142692485670546842973813917948756418338576429678739753791773218388041103122107759406413065744870032935134390414090654143401851785452772469333027863477854468937475913400239985549054379134553981144847044412643350565479055668107901294118260050279827618962025403513048880099470811016320574467647163869833392545894632387082149529453039002980245186641728770853106462061497617146606943207384755724336091816095814242104523817784192671426443549538970675320859808913683901516197811786485018373769611776664142030115839237745836902014003736133322026877783306149448268402433142473972379987674575209623690026612253844139520454251380226179459847584783228025551610594100775577535158583816161964423701907059326515259599231848208185561448500147403295673108340404415843547454153463038438065413256801778901970513036271936104209566899081384949188901875627925577981589009868280776873231970046060140009632826766902256646580748221312638139451239586154025730997355706559626414480377596455254543301774039092664208292426478098978695605035184904547566775182057849510649733332708480169207925239007133046549546577086384577291438616965559907210648871312125016727793788436423585047609979614835907326925862111730784175953004067502853636094500855374855103046226216715585535957964732768387926225351929964874334772387946008157431373854094338980404891552141317676814276136015376428881870509517835751510031561599644828214285948231194834784069857608219669940039798229350263981066682253065311305608425793773466047763355035203567672701313664055442723471453796377846409267715862566152893550605406129844905659577247391723612662256459073511825398117686756850814431349940017608225582503770516359693489734347819469237267687984448199467177009482613904282123489405629396310851087722365966519703232852287195058025937027421002345498168460343057360612277881414232078731702356529717315837399445636138429907694549742075492495445772653122385040058066686602617060568397734193935891756382055072235323503326505423012072406782660652344532446239037811288177538475564785189055585091793929281787297305478146255190302939710963080722609268446287447123758125127366323898069410937251969549301057903457183898427348826286890544075910170076818103139174320619821418227905924142763018398339014025546109744404494285256658115860083794243170687276453634503041723337606061151966769630052180857871595196437449019471287643769782233659638450265043863403507919478542009028432709354759799989571128534818463238777820488719750668323986114615937674815199939634933196467165004607889880535834790917343392476304894452924074900296169398466715631357935577928253330546818945384784368950660294869938491215934498291336581045569532281799439334169538180521791316416429161629427160182150969180582847661167729068904167903775465788802214822512233171756994930409886113955069274383504254163640338063020492898921020902642910955676246409461665534366201592273599424355260965558205037209637640655824049577530057899371204887315781232827264040750281994318361606549584743248109517144322431239203371311535391480271207739745737646953150318011377879277530377795004480092608401328186048482588750044915085523415596210724635666995057759160825582426228838152205376995802884222560874185308234018211786163953604451984042352903607636039196797304609938856832392136298291494281513224768534049857649468144024106205724394973242098733946351078577326383749757252231637013147375119821651522605147806500159921323856993733241803592477789239608735697770773083176799418417250175264451585706176102541319571563641595854528776824811547940868093464480174057729049583123221473185076423435190501977336366326260437082245695324860923443372542673598235113896905833682783573202792641721161895143461716136006555064494682477774908765095918956905558998068954449413979563789290246301379728468110615629168812455769196718875063188247838979662234509538434795934460275693094372982200526638540304118438525096408511520097656735169136221635542506080920094474894838246199355091533542107905173266042298076151342377729832456719727437601489360171987433694928884245093412027804275126197564537932041550889919758182385968488245274116233716959607654360821425460872999822244327283958302648806686768287699319558668180953055787658910833836637603172340858276874675985320792068678042854464914607800677871939049186365684731782801688044713725985259084828074080317277833348980670809852920865975269599187036485606235995121294491467420296263938870217155114464578356285929293759716978892548061358042181323471474747559668368521042003145180250015659276476766052821836526469880425845932803886237043241116676631293706758633063078865381158003283502849289368686500260206717205677929812018088815363101204876884703575949397862046181854909595659522606414301575720168811674966681305430879082206631883543407372895434538030122440215031016910798288603719672930308487257683535477356541988347717462271074236626365008039351778280288509303060516879014889699060427786178689651569348268982691093690977958344137439346902783600096944838370068315702774419023592298348998187136096814840317531520047608587443633852658019378826381309008538733591075628381205293331567719784992675725502648565392539911158864905148400871198654169261625281923052463643275366612500766304633533214541370075733521085678320582379150877242941316340298323487967324912344791566900155392266435265632259995597070102481937447672140845080201217856969504429993956918330348717052980298319578883448420026845142868084207269322687954219144109857439016256087361752414260982504787349864104578083278729379424212386480406147569344637956481164453311048600926463395930371331247950973342241555916894502452190676695899550878773640101942808632461924574134898549912187472305284959872163104236632162812252104317407689696104786257893075351485205702406423078034665774739586401244365853022345201758727851440121397161204204495724776647486922208129448332993878936447221246831935174682387072584485069249275267302757175196355148917026853066522896631712277883976230440075791608379762147002742304641792285235581194747044895111503985560477279324919358814666303294219852463605897435344147934425538314817920170411435820867998283208503786386195113583346867892621410601128965278919968273075023309348779462831121966167902360286512609219263643549917760669202594135622986249556992555083824700056963347996574682407420611932739870256630207621213291773837926573717249922370931005123511591546939121466447556303101258293247246144861209570200538719923382156269239807646761242176660861560143791651498437938233493057690534804976100711305928949866445184850344682839603898054075222356763888389669996516570236743235190606860088257903519967213027921644752055607517437323447013087043144992570936224103334385790974292566160091522024449778586210934146385264389424753258752705667982182777771828741918334343963329673775201750381278907450476615459915213978228868908760028468809317949345065131883301393824044637062541935575469039688134544508546549867004649262458214486125962164761464486813998325364834615972800827668195054852899106614944110234137336621504087127579956896216075488990298932088524022865751828533741315172450148837662422917821923100417350056760344194038674746874916093785779567484385677645523351859462188802275541006064434311061492710067845830370273808588556263994898556640328839636889700736132300326993436912178511587687089083346809409624832994383758502620111362056157111254815474374070828780146796158141732434808607626849568077980725236547919485531759695726980165146982375123359835371116706838877257801233287216153645016434351001343090760636726493126827980643918243882097309421090933758738591564901979992537425390152204843741497585279272222910197136458182347988434772062602112596053402957094083763392007651240863822822645416399204797377212670044723305015039549655846359075464115272044455764877840539474597485797165353439937207367746697387077149172095474854996595148449735841719496920825787876835754089603193231066777515903104305439879306499526665101683792278878976375608383779758145106928844639727442265007678931137080258880961663660794410971037778661681316658967167873424604769460901070623916586896845468181054999598051224256759240989091300314891318515492609916870337382298715198165486629146215230382799288498649389176835787569566097097455410794497572583254572231249444053263346401724312216597921369686234132801309320540756060510639742865877032820868135269656887392245660240291094047691975137553004559580223763772343231481345992380888960902398263347732153890991048054925803575739381274900524122164750317911727901190236932671653283725594844831415611576975549359323687320737816318977929558420739032405466474904216358504196946041908195360895940776669425043134601845941962294647170767770441759906633546384968731720259382490476097290594012820573265344473860131337873029602450984783668768557150776199338545735511775685390786607691936085285152840362212992126872720759455959358394291434930782277628619370939280508241535939323002780677216517388276951474321817646421298243081502581295769380232848952954902782981487861622419307889919900209486345621640334793246918072077906724070639559141498698533614446601210792719124481379261725433287748533492095741561650314202664197334346357536901112760653713610186510934262684302426475257678603450974508436139850437986845532378848158286335816629183187186610240288362703381061951112399725290994317480285662130226086160007628805741051754785998783752686755871861351113632080153377732104232742447257772931591665147669206979849586391724373643671660705547367637903473478595827308128652072508359158599814183450439489183072351842103873782743150105327717761051153625840376295820640549098230830456288559282779031215756509506726204302250641800948417193561233482700341505018785111354017100520604451253470022088644321495524007460819369938332355635772525463489663263862791446841206223043898746705485288202167619289496972156532942588342117585432698150017033103692554181476899947263285824178986145411846920878115565339373921238899079213137179834276193825450834793014261250714675060176624540036105006576305365631182017564814340039723192614684155834461973849749192510036760252119416388171420768241729404360691174447376653984845659538198247918937014835773520542474672303662685655346519995705626805042935635831017180401626048911468560833946392125505760312578783153910918960165104946210041420541751213149820148822404636533828543942028197710853044744969255129783214942406085862322342953915389399912805587114136308597023750165723135173551749110560897531504746010433013671396906502391063401482745968795023049591685779401979930589290981579016560050020909779366971510944921858398330129766260313365545855373077333594090880476978333313402227872127567734977418903926103978001663937095110938887949165415393516234363301655855881058400371225974455621030444760293511296562655379183696160610527569800864797712827270214281824303029322909458575884809821553063775033845576818777509014701868532125389248435446362274471395128242337226062940953157678612838063426909174082524369764730270444057109171391006476165655013714501993033079958704926941555518764717165391641997271173414783506950564255370021761996655375189696045749614951202889830554780419356221513328130309719659400692063435322614923747189508932882494759097818885562243709998306779814677576895751799568591684937960867220446988176083639619931970859120636223533577598751971487525313328906741041017503681040031617352830082377493813765921589660046283997349434475438294927253678419870578047422432465263277441477215783116443093004465214897053134809285895312895896130058523315579060229886015681775337955058447614000929852387159964646554807082037472657489637901095255054930807329113076146787447561401716679243697794062096613735383337481469497968059691084842674874797538824689914083395418171121270637637544577435759985431476360210586806226209821176154442257205738381949916506994618988781295914059657668353134883822250659053624201821792304896035865555279072559624612051624774902505498577147073721716111658846092055079590388584040444437793171513663152107398707402927898178019792159552927669507769848972291231355505865931534908617852773923956878264907846651788774034335495476211616240304924732831215582983933366642958963564888100392456244941051845980327862350941701231019455831388096944852537566034742988061354717865179917512889147136227007224919144009470533828003043830420428817193695536552231883044165881059889338572194174781525815864434310215505293604560260245529955529988449628691868891817107358257253539691132977757037697818818828386657004199569807541692979007292100742892126192375211236014251079131090797895656132075869623902169011543933222300629095851159608642908052513085602185317800468647141723681954566023999316580019912115320640846425344056049976015733160360212969806909617649418067798089838246027509129887994696937654020430207159595261957079955863991517682429675371897745359929637660993667800561269346426967454983182800572753784669135453560679712988841427133724513543690089610684960590509393703421503072856569448904284453032061709803366130925029128187084536051333826771203575300207544672203921419029175016774546937076369548227510574686832265738083942570625326019150157410448641880688422223647096746662978426636076970575746668091071528079776120146276715526215545450673938762972484224412909381839945261016776227584985119010823952555920531135366076029065814058178498286390776878936643553947450566520602223457448711398401147243697479829024143238301594036552952891165372912250024358694886586203442863645320790567608645545059293670494539474232536943956043161033888342357988265358475676584120643695752225342962827378625878936600175232102002572370962709402979054555913539586592138177569954432910989907204914228629207818632479281414680475209824672717910462934188634950312729512276736723842889896419350969069443798344249549167817628764239573413549210128728791232967995450628778230645837179009067658892085702984714443323495625908977651427805231972007502227287422399991580408482544414324480690936032991789709905527492118691311753627284669853030385750416413718015832546754788672120389340671086987562381976480575890585131907335487690134315138672782431953798785742987063997844085312999221182512812630214438205895267419823399231835896111123950521923448214615728278405132743613445575833990857821690221942897046165292944376308681192202053681857780589263464764499348830041164054373869672628343754625360138768072364833734525201262924857034865104135132986476383074390532343049344714726129179365241154491483499845396947891356713113205382519687429416252383968565102028323940497787897362289245788797693775743329836342052790813198304636216552421837061893300527322638196785091330584442450203307527236591920718769464153594028696487444579128376658014297269345118010369072346345356734897077448836239152024637769343336889377431101041073936966518783597988338801247543739301676192961913197857391342158009159970067651309613456326998537298430846131473572877492239256092888888084871694534577931733633650302318374555460800337897580144802083690767977695323347636550644222071397377401720872330948331633129204203786047173999994265018290699862694326668664094771011554775227309172180433837007050827295669636712978534297192605180280055219540204215767244362562977285911794686907920730329424229921648820004797588497921384459188298036587435563100302553081242302260933656075047173688033692354067358302822150777696119999321030441757675884620939581060355483208396526609055716812236770710220716034223599959302831220807135419845786445566614429905804226452018387788022611008758667300272398567048869418341942609283863527450253758513677586685504088258154479856083966769039634210723146441878661832058613886303641925771405176379066739538769011639727488756081022564407338422795799892112973486741163931673933904678707046915164167910305477554814493448541831924377054643200512915808740858210770170154359652579691239295223737055629603732278748286270695025566151776956129280152699300828015670719500495918661440019379180331324111604373243717937447967400659036264239013280016689761382704450353583766037231479574786704410260143726508932686789534508704514638956522945116426604756179898703204956368473324302194728847560439653266492818681087574265642935365891950630170330409356307365162680590990445249498338724133686417406546443636063678239612909377978798439836017693659381304979829662272540950453753080953593846045113009083737450283867294823405150281084207337021192596500309848884857017751008726764906614105534993705675065396381231012606775630577527217112715736037496388556284007699682806919928958717307354968761187885030288239489615635690388847094313222277438971249999921625315415652710746013328789505570273385630690687572562683949179355897617456409044883961542217839459418615667118296929672072255395351970788136390049390245048068125209877583835973903489670760172732799573597687986120015575827023808655957743519095247944368607839030707609203764610463050896705379116168790124206559078804403450102228730063123707758696092634177133820869395607448603976461639212978413419254723181518599214091957466318930287276508873034674359301128202562664411156443453309275178931247126425611106144504587731477814165689215567242145988799395905612534834683028611281224756209566931388263143688356247053045456234337272591585801175940989755782136874475190045963344494927851399861261077824882555382739119265548277185062478912311130749669113462451223146365182152150496956847685954372172635455137496164579765715779124531167214101933005204021263864075343342559002502301565916618244219438527228103775260740319542358982647396162051915471240686012134592331676579875275923121463918811744634839418480889238457788705477506123340148342532546477160776584097131410202569115510429392975263696911273967091308104981402688113169243193629555969468304765785735320646353174849477071322713547091916027417702542843792640271403038912182828176746279333420114123591674432196651258168758137489097048763065488136062784239695418771864187491259366861330891532634870648598772044130534061378575833168374571607716231290909754677578651542809478163271288483777183199661707222061373417318186468296520521204657214192129796419561266301881952277250719653296165029367521337181940788374539654616956282714086834947413300167024966509457203630329661956228238208211784424824326967639130713226163752430384822850153713938800260713791250791678571034453438728094515874146879828239019922402207525248139506817990087114397412484424514993140686463358595767403709579609554917092528641822429158727936352475395930041228880063562666221307177508127507813879023017975322809813934896962643271625233520792512151421294016461690608436261982037449450158611758563346848072615831038419158332423279741072079684464189510932603804500153876626969221321536024953646185025224497230982315562897519270175210869113958741748770994619962079745330744639931012166944104883893636833950999937005174567149796332198623595792126958531429752336132934958748573960336144941478729202741541383933090891581826232611956375241549769771656413061996301836516964781253851107479191424182377732498267655777960447794166556450896612739063251767889550939160404601057284797747677056648575608111966215689998206770075639789081567306885215337543051763571625687824776966545148139247785284411254931083835317977687441873315065233114286104161559691595698952476053474951820619478388552107050929796535272870764055858903108056008957094051911010653395365325951051783307017871134040752240551482575375279908274395950266814252732828607473179839438911850700673392697632313897567088749223827555745291600106569894237546282097387068445872039044168191165594808741249420301011802705108210049479119157444726386500838961495989802164648173847031358812087385730613461772655158331562854345527537868718803356939706240368407478463342076176786142093238222888212694929587982124680947293566368868221095263342540936918428684283881809828327898448679758095226371503252208201607241440058736987782639813420066731975860442311970957823450273117358540420309215474299802106772506445548018198071624711973113363839295950563028867116900036629263522489661339396774729593375660661769510140361356888213967552866685751299209419482983250064958627641321093373402891485549411214229861361207152149564436077265733996369027704515301354389252123745472481204678241062362554228739653563339681411157117611167147590627363101258507351161861121341925086595692067212046839997968565066029908138216431103017231345788979043300181937337185948882097739331245952225643743977851851971785330702620074900271810874515866930905257860945764537272477932561688437135469992349424301848096015081974093811041337392475138367675030117626868103656664747745286138779702892327230736030052321525191459044054271553205357318730508501364373741889505609996525556488797083103823521322677572094125447131573649845589094257802048374606405723420336244528367495561650684219134465736135585809903620310868209389013641712837920837538056498249018558379416656201948793583074350925541079741621784206259979520236000567874398281851605527576090794564111521807769219401612763374574855250964477449363103859811688413238335847704641428669220515319177148653918954651753903544909323251486128074819055904978839497974699380309422502259544202775969255613905668794049350111031951579763108463365749106449811019750607358032006558947927247087289106832082994255215568831911214175220593458465175020618120447466706569091619666101197558314274972339052454024265657241045308677972706201967458490238454016663426463361142409162888372034339483753630837068895185580663443988118481555815408995825878287955487390363603808506124879819305629567420597902494417841143372980141481721983157560753488012092399971615010627716251045503580728645702674725594935732104907795859658006395763451184234332950546275878958594825118181118194645980057261322846117257339641400676877894667143735291426374093945110917298806870298544411987766321173335346676982136267260152062868326360155318399715784608995352095283906064771664840276547628006435483701871162772021636648818442785756614183892761906625764791519164275294977568096221883364787334729761459279715818037046265332276354652885534020605884716275001206016559900606956509487565985775267695232477066759601671115476671946652098257240455900137208026200219369743611841890021215493507928376172035943215321101688638368006303999206092467961428804342891069013112774056073685801619244037366422346186439733161674110077985070677954209903028189962516836592509145240140338817656662691128071246913841031619312705021129105507841156736199719158723823311482777756725552178358960482132800459705420517643693286097610696117146439121262233495777103740010191079193132364650132832973654176763327115519101556767486674153311904654711246284146974298072007619052524728756335981466104530332712176575654937655299641040586119197771867849469109973784695686896226080718956388712429295341559116539244800441757313537391462416489594127555292157424684631790153764410309051766358577983273291251189601033640476849425626541731988072073385765142831718843858961807016333967930124133839482397014731803055110106438542925942449567636452182508465025634222901179265475085135392843061762627966860859200501655610663723702018853976292514222489386388596861758730292591807462784177625756955873337545014735429051374012813315016565154298254302234514156041197710811435178854734553532054078214929311055641995925527622738966091108729377772560997204772232132786117314885153809535341811484626744468835493659972389325294409521311518418447871402489830110822830343832058098464574985704775976962108265072848047758376379220528818653987474734647333998098430275998152175281563861473998097163723988979340221279365193681339956325304679926756314553198658947549193684657622505026679109033394245261974591598417013097541490306320517568488030558159275139709979415089781078211244247301375498133918835147024784152727082829564691124869781536095515058299148890281482390543561511164382900614602932003507481685997469491742807889571100370958740707095386046573198937215531276418158940627531485543270277944949080737262031228569223026904843518578660400534122536020621554368250674784246319699082848079257707638553207139444019443481049099422791239036917077173336426653445622575994284308623187547528407718318172182776433406129379377875339575870242242263512214410892487562512994240196422487830516311226541430000540467080426849988855417964331459927777064340498394550137876817667613784799525993102235576318211985257275791424268122595305785056189296936914866163212996436356629136779577410627783872697474874161932659532974987618575220885891990669437682996267022881090333809419643006323387807748359258926686411602653459693098376816354964089565059432613208218302130162281900859149971063353033085741097530548770007011496614504610318967323045939459621825609500681960660418502464909977717010981484383674205895511751888218924205546450587268373460630199257965867495205299928744177652964993108927372084046601586771451967420039450073312169725125844914904670582242514477058578046704109824289705378865210479224444990446067521477621113299666416919341478553531140107455351798573057317654739455667209537830028901732982324404476832855877166674765771438104539561721296820790129725465736222232637778179429540937502020806546921404307722487554656875248540644102966985859816846649706677490737887144127197693238782626551838143165878580064293058779556134540828099954226162023499141734839097177530120985208594716072692337861620673181250985104831444541347420024941335895404393434260943721593611849766118817687403321968415644791526435393551156701399611444705659162227779200423191507400890254240989835055912779812947465081204202836934220267310240480083801459422943731188449227554207969859795929347197375765870939512331819866153388940604124840001228761854071401500129014877081430585217686519445728891527246727013873852199034189785365436680859293323403096111805868944640544745967139622110624412825240485920979410911663562905654052509685520036420380705533299012090306644211698091083853106312898718673175996563388720242146337114151191729724684743916163720401492164678124658204825597108752094066170205846149174666351285842705294490546919981048300626427837035773069280927373036565000869372421331359688798151138458257638551755662329033234588352617585190308556114053837488139033129236450668668772595668546694081377142794081454812086177404022268505705457457462140747673406647801161399462809757505439538186170086461656832595708085620787486142950130201537176821546083306282007786530545196987186646787563629011500306286551833387457249592508441975316760156557313584450181224549799960713475816509550855708546704072210360749371997131907908567322441747388689288778173503128037820352081216198443746492710374950176926980961131002923696372780249076199679440696937926447735349825325951266110418829647832572002468369389077233595190075961444656844111944475084976208802103601461688120748791933333867763453906357542040710857383165849824598496593539599270988561825634583773476797411460265465347930405485663105691863406985910228468728998490787653868999696906102015842299585751664166159484742597462717109922504171629038247151106396551367385746572828633342397129410228695174830788996465495569660043471144400783561657240010608245420099313842887832746251237175400852699828135309934907755121562610154059415096703411015098844018085410248552024206937460141150806703550777680064928718326228343227759110546255091224815082593268944859337658517859669929651433186415108454371027599513897383151867968859013963266085433406570378755866311594368979767149773405001553681929382997585203113129153931763762781621341865431907582390411530863172468672820603469200357998999433975243315696827193123831879226365650109844892312022936290446517196279151792068603254646105622924895777590777811280331125665681246721448093275066364292974126548444091954913796284613176933860321603368335193016496925336701074079522140658322951586026047501588671093705481760182039611329448119942240954115170319753449305354720813956461402302300454340957810491578407483232032975063876061988354377158625048311022865866783687071294614615425119506963648801302413936946085595361729198884469340479653526068969908139340052130013856461454830651134583677157763708571088569150691428598345862768818908256441338822844323375744842693526562334492135045715897116573207822557488058812277434694877927863124980574376641215819332569797800114198327575251888615660498455965428959277833437903567590434762445025321571431404381877272931250676347718261777782522250202916140826963234271791206799546961748603950534607180054164346700688698628819408556278778357126115593554978673867135718283099070939702616711038909060604244022618586884939771253214107635790384623844144036600169508141729798033038954232529505486532050210411314945388746044246687441615470008831321501688378785769474876728355766163010012493321025911502255422538284791105443339311661785078527594118413803698060115362857113096903876020858162155903675869038543557718889080431343450524384631831454188926101025022095432573127067532820705975777392105590724007708017546607851751047352724301634561893207380678062413347630075438037186878872811931727270516406388279780852610250253619639840155099793441268404794160386481666207864213440558589978847284056169701746477609511575008773730705336166878191123108018187127276011627101512330315398490235597059050850934553517864584525132023065338222109657226142000456912846801871690287500973411679352713945534586701233910078218689368908778577520315048515721556370173024065431457739110974701813626429943029206023598148509442069319011180511233757853740259854534439465108518863556295878787604356674414995806344255262540786808759104699346787900233952087336908365816998630135726841184913154252454136854145773134947081040546655022542021438382369498287934186213353588922997173500323727022448835454540765201905101067001910737072851457522402511808522045091698964280990389302514269085263210207253449290390069633344019166532569419531694037557091521149971704967641576693699872615317892911550031519675588670870484339844534004790290670698938694817149512594018138488177666276383653670974287075659646353912621113809276829952348250544240654249900794764836972548853015976023404090211113103839181143834398672302284940820316838307817711415594158815071044275192321650842803656186565003525768110486985423981423890641289563947326782754094487196975508945583622609149984314118648792864465450202214329127931070251322228431761164205479111762407856342399073776718720120398541217882658643888765150547680572757748244291769337383690782825971891721200623900033409642233570919910062166724578590838432132449734948203076927409318134368833874063653100355983482661624862518729206661656946367972617539112533801872871476954557664507705395552717889040603441264606714212918996975052617239030622332400280103076816970548381011644355997822756477237700940355028841705341268879681346733995966986670176938821086207047137881561511624588218322140421895087248092691263869569808507324744789263016906223169957605942801819705370368338899585894208669545141167991584471574260031848990105549782395759557284348366743937189768711789494674575881485830861189719815693350987255258046853182432450689277723499870221523049177988249851099855381132868484097505842463693240449105389116268507002149347672758175665385698756357250211787570021445707247251720535765006853048201888772247789073095599446834460057106040799824505415367538884396585469331407556423902632209056716566198580408247686105169822612985075131583983057038765091196417417585246435635249191789230984887413425095601147809193208773522715872778987390671018876905039504636026505360766599147788114673871207463389275677136139527235685976910221513132600087617000024392088651987574154013259947707154030081115127357770003212806303354040179349301624587368615301982981895847340041352343335091864871762426062740540139710350991474239337543501916515373382343552458265323342161286977000083896010907298992605479426156856614390028355488815876698097336483595176376096983964196478794585683345164820552483294826472872294737542527491353879517826184124352125601912361823592289155163765908052980238141514299050903723552191737378313723625759313001264008402784756595247448185386718464551914998910460138840425497331784850449568767674552505097758602703460908206185892745166902707040961576529423573216420808773744174063700561236513365521176341785435056031127730376025619105847666424825454938075841947074609684808013596252615951963346711586502653134264683869247663444204436337425543780916930963219682628977731366185634061862106560984690396345298191499516102774960256617170904523265671814788572413604558186796321196780708204081940682966741372893431261238899590351165495913417054693165287558410454412091871107134749334333159438564582878187915694260495158353830596125625987862479672206738453807691518474078774052582412205176716855043291375358574435288550153711441282760476759644760869909163628027762073451090484783824264690861935945651231787236200469212204911401617436455802258349650241101042205373449042374444946352552304434981721555263603728113973402677333040408758605669967177703736458449464927988823552203174163701357729911573610293201809554248868522014559714946566265894644866602022682440096975011878101393222459153816965662599827563544396246224749213897731368961015538455099012448806162354173217917593444553783214451432874925236814272754934583644667359656317854331151587659124261495940492087568188422737648420753842043157795314700603005999579173172213238461923729897942554020431610284031770460352660195272123392227825004283546022653220981282830243757431313009817503992191150728179500849410817940639971827734009413163182651598400803298872595772009910915117317718588003685394448429131604273541878373359109966298663101537328785828848704244832444420402752136629843033282994377666755199016191195656047446080587723849047788507999274556991476127749706512246287633604242647090274366595573682429698617876579249300180689583314499086442954986070791998666932455524740446215519481455263340616637855608652930506810901792136680665338129118719813000034940920007635106240309293296362712276755230088029062307701266311216324881171251822147900225417072528858840646464056935453354620771017939657558828865033503359194744446615266714171145426474138566812646282509416335519765337238202117299859493901721784702689499281082261325504813605654960886597020274174441276265454046366422097665466448705994656383054407854868538760516750924760372698505959410881592178885428324925507685507463011914970452890640557363694501724636443754295772297544341656225236874784387452532936099297304893348946749589650235242640991157065593676028045211668843385073803032149349933620460220238889554051975134710470959791737182597054264802381183754236815849419129372909898086121167672976313980024596262801632514038581471193715711419752867052214071249116571945639537373325003341774648048822737544798455582193661080350933060048426236576254225564255152850167409058484045815011323344513343879712642143733633446095407350251752168672380113356525381814474389190358132528407032961514815748244106810330272184249837787860625998077752946690347391698244146864512628789484075836191142677318505133265716407927113902885624982347158049936229986811034282888801337704422758591311277688390840892914302790801260143237324584488889532969102010679981840678275680426357338829433591904837451312063655017792856636474175239076103604371225675326078548050318538175172816924942632961718635904387562779666839273691023587395644135388032785484506620868808335627759066658748630219327646550593779118098007323626374467752290040966394924812229791484973398025181514207180107229056789442877899945931181312432836210325493167596153056840167685252225461911805980016441220888112896139906678584431558772964857400780305171454230074772293861685283031714274280332345148786322464146535661328431998769351884067626318932998462038006414586609187134615812891918143698768058706142919929277972064085648248555373537949729289069265895213671082268549620521580461475671927199756228899203924329607783002793863179092266044987295887855055540738118198604258023263721608924382202245164209096384144412485151162053995933220947802975781100729050126126763419010398444389870449083066081564573832408167308242907829913924430368724341112933490553198305590835221732373954015026079226052482224742746501342701043209563843826544780400892304673105950263570136937892896462444554274132400075677987983470160348288019976949040977580185272877662137202151537694369831181722926550872315581362274061090226347415340349444371255155032891333877073616471332691799486520981066699652744954417165779857443044207257214018439164335986075320394443650713791189821949195346812747024358492277610787247719040285654401198831005327487230725927156441667708837826853902442188536784339865614495637781836051348220928636669226952790733567878873594075992527675773317625661549419944805012800314830254908145345418844620354252782507113110555548216302291609778967305533330606057661966436325628963129828079027590716593091462017681153578589029616452094247662122587530313984897932207510847401481338089104010066919053190836911768156701117584700597646565699920360722967698940460015180982036820301990629503197411244650179198541162891193883292979242430061570891634657997508455269487739565070401690692315471742528060309027619036932332617362742185977925350549217026450670365360647469001998847133016661360386116944194219696849328094065811323227047503291282288651748770929572991363066533499022802053699524456927551612816635729448268707582147365124048841495836065537722514773699019397751251585277342538725728659985780554042676192864695681866901734497944093584476044314035371249044490653968296047328689976459359442215962320120340630758360755840095379702319007622753292483779045893905969811037377743875763178054106096003965552716994569713153741354540152827983276128772251193637257994324903582911244505569193538058835480613649528097841100384843329609709173600302910179910714154298676475795261212925507262864661535328366610923842977806121611804783600401008252946308493681960390756788838420454789145077325437652304152664088493065585394914494818948129248378688880047327874584164019113835680128770483144315192418396735374331483223199713566823419838078078374589438203585379622738940885196087827415830837753686433776860884307340997656159222856736414167790003610469647605032883226422347065825483199614743140425678343554746607703341439209107780352430528034603292098595430900854662781435916605742805927093583967148876736787232053245684742175463898119555785298609087868005424795294774694692460857087839768745082598643375952657197104398103645886737807704556942138546911749470642098622644503019763575652180656242364484094947605485833518975837690022736829813008819033272938095746663762595679046821042803079030790032878330031321842673324262361417307658434420422526663114857669899904701976611641700211048251387824343855824285096889347934351345449511402747810297770186614165703302515459638919582856314202817104431735368740242427039029871087610320885286642960313148533265365973282344421818942230969019594280448146735760396982861543447901665571017114424158374475146877000876569630108046329907597045933585922964351594600737126816675751502136690390941559594845791594971716482816115743198995262015550174273328441991040431686498828946347386762951243211619586753864960498427805921686902666095235175060798686556496080612630185615984835694281299510248655378567209710989735414152477412668774622694157040371636286679697692143502943756093980471386836888070338350476209339434500680507769837919505356304970822932964132222292402202749448034176801483907331199835466358452721084297571511236354004226562233147100909899031383887171642705156086282890315645815102567157591667129829665064797658318033752778618762420716178505753946873867880259776723639481139927175499174194101397786862407327231902668108924494541027084588571589091558415475604335262145708359177121672271518996673072681405853430705757875643476189467092483156748555523697090283649714460742067292834350072364006397560861636345960026389458852857808639562121183620989571502626887030813144201865194688285781852004959669471445971200419477361452731866835828367318380150955453378999322438854963895107630183860318191652516104722041075003854797559052011452296393210390404506468014176570352971545429339867784547244909838693401582905615103246820541124270889130845301624833171205967650911420135293182242120622764335061170474459656972569296197958486724735933955618283449099859345054730394650346635863424171867262139015268751179824138842430447202017723261525901154468275998587421606105858898471776990395912639879148359730740602886956197523237892586852576244109596157819749982583318109028505215207918563109381197975755209087070737922852317691386917340710958346757944963089132827058216947443239192943561951420066837118320814647576618788976045882583295358326147456356530112971376636424301251228895836036660741400953046226158289547523620827303738682999793277646582655701277409221438075588650150052785470522729339678370293074442139165172690370137773661688749066296398979209426339663672449799171629782881387800348159305569908575125767703801245310922868257948772004652809122624376862961043185070727053565357026159678911058017393265530831590210021913954679121546284912713763702217044599933337905910300112206740374323154314428892119237340419470322648991808916696202716693773517202534639950987186373265040359736865625489540022812403956672655199118079495638285819488059022411701879096244776574275620651436875802903636442747757830845996154497509273395869669186053570594125319280129259230065972606564679811890415005537535732324539420173668804286963647803997241517334067934852227321460339703303049914193819550383648816961136668588192265838373904516155795564164042348811833384647913541974378844379180108178848093252807453087167010602474976177294869617953013815942391812780832043729219026877597489529381614029703673700389823637799142385051859498437005957502565072206022780302896873031005323629313332485276732848375033468650163495486634306931663343047757600087894991959466503065856363286771130506728399516423551075609945520455378842157144689402585042420130049976360719567305993257053647748136092924735437694696721173624369156740531704612272154207213085670068922253562158746049595960251272456347632529540860469717972908685254208055434824188366956897741354074388705519720583520966345763760829281463009724370037250807647460238613499779554915983555318931975659511819829782966347019549940253712627471878585144619308768485135708109184412584696796853334977283446064104104252404354682912153906408902295480497613836531811015338974081365298320356623912417200254481685236673532906203942746513001982332972865773469003516339782308999215361852458559145144199651083572983091286854007917227237437424422057770942078129748231566604799126169536876702784277744057614319563138351492759673559129022678144044273199598447719804185265120649083132808952362503686696543129062914751823233363022303796953489738532269591369556711643777598647545250168852056930541916642175655738716820816532206551550755020923514756779761976314303532253452539751197500180639120027897530615343954204771409976934154103318354458559997089106582483941663024667262602652795163503139740883731790503344537155412468146499681268004294667298492580094644072623267973157271578582505188882133693138637726139789203593178501699977200755433775980134797826115967840464157944310451297198725647503525416644047238450210967008291791691141133438278830898137192228571286231233826599364458983575924895139462616992629352276702919204659690910331468341513076486818980531614379182185139887571853020191504358162497131085956823290563771775552587707396041007628694176358443801667359674845933327895178200195399919529523838457915794524738660743624817415924535826985901674240217802821202375404793157368182833942159693443632537939670843700373226277751514407927776555477000268314394461418174459366922096171262352913258422440093503023507928602811955188658235480239873736555785302989463049306394442635137660724377974901359935250590387483800544382612183229530676678021135103481558480014373282224831371307057601492329710621671326252284341386126628291559090804195422466144295723569800227686220893723033813173913532262217179773267752896754043014696210869701302779376283249348467963249675292260263788047482093101052726154445676692731046957075252161947937743232514239781721390015155386341730533180426884555433494799205325365515175360164251910659982154294169344346216330997419658476070117392039758125456149087632396452660986403636947167674887093693167359148056668564615874077789090983207118456252509822835054842410554792561841575947324296932713838345760735346389775341418292700113903015853242560531603466266479536206564796537878277444256019402879726231335289895391650785378710618593677630762704076657519834397573661759710779413598768553226870292755389332913563714725343412033635879260298296788326457402420067995948885829690024360881420371008644793049992097306280143288147840706461868308211550138842961072083677325256346414825680957139609339061615725718936392932230550031320868924361384254837645955336653043223269911102753180300500655333674179943345023835361421028492649466544405407340481884705261735032064554125576481563365434740183282996104029981442871572017514983719543681127870960642992778554124385813189935017985557283669897119750086008901249226995670288363640753905230368258975046157844684141100243148432959197647818658449303669972820493000093934363437305102199542719523360471168618115813717106699680074850815214587188518956188154826346332565638251194503463919923678004812629842269082437931334360999894341736624917788710474502690308357655466357002183169995976264363280213125383206049055083843502870602975751564898316154155837162158596120130535683311525003598978153300175540034969824351420643127054819702058740905593403812847315158904372367776294477675975957524929072306959807029304900078872972682109386754863528530282144379492616973615253835298633236191400650787300509760199402676560188378911687039797433629165740368287091870953657495251111775083879594394782677473518959664461800371130589474456108655399448522047623612610842021730496851537760232932756205050702780211037214945966868534606756963333807974086761004536381195266931648803191222038443373153461947594558245769464299480319173192778700012694686417568840799240490089001711319620232562420003821305108333734059578871885060239878509553330189703844392743713211606551789839282421797538381429581751804728140626073347831705953169306716041478764262984635191744548900333881961842903043296507375968820256317865193423355580345976106587083444859472250968544712166482988376165933516731697123855715368016952735730500486169603933500670300770401379284673201826310391325176107450679176602587095310815513803896844279935783685077512340183595347645677192178602756439283194017313605102694482854350940375580888085210670159893725372555316248838842842712163475134021400541550706585637467212861849426604510659747910410342357385763243688592276125653156110894818433823199788134430700641949669741589534710515939643007427130920774763492151659684654096764255601187958292318852415050228464234946701351891901643522392114186616392188968383712573646920923558682486448458412562010058111393356959775410183810758818986520686729962466792768455086146572005043214955906640965455167430582381924247502656175290518267063732075287698781680038956316910208320702019400846103151169192294769898387680790233943105055219543493443899056238646323906216416629203399738635000809053584326389048221642669872138369856501623620530892176973892996338452342082917180936825987952685738739872627367824032027739143044956447409005116000482124028336358642092552708405589582530631095975414982746353415433869162420620861902312636571111419171596482791870515034261648803428802812202487911231228112533699646019902181074335884972576068557796454626171886030754740563177910768361742948630477595561931525109487098968779056140960040885186075447640576337236687837082651877452566609595256960602133840926189997200428035921680246108607374059644839158279358164718830326442601918163981614137148508849759718517419846510918729604490111944465302585089066371953707501026422607836443292811083912658888277205191755599732664383929516898997433843658213785724016455312487689950745562204408455106361009680140513167886918463016884476451942875965951009334259094847750131782206167175219753744428772719744494436921597256751080063650981775721721985715019884442661772677587148370233383526941148328315235838209270339123561418948822946019765930353525721165381962511566256902638394823307760080768706579479334768456822095299728828525964576136588808561519197858526451883148510172851501007857338435548939925599421873589849639049093089996944424371703936407089132959703700427342429088237864509022102000178245628066540089790672963876173076571038858311358066931305236918848814925040924767849152750685126301963038307625232343323777289697372893982493783929110243195390439621297241796059841615281653706481198904176966962928403071544695521311460655196049723004119016726922200736233658778912357394003793090623768781133780186018489572226875556195950049770732308205579761034818768391476534423442042002662190609370250762247863879573939569817940575456512207650987629231178781335796380710395287900725551345319083642352517008725624112768159410241804849284808337049673048971532078310947309975813224099439715972621086075746616771851470323842309396899171329750060879214051027618347547935597077957030887697157018777872400493544814258948435640852313424454563241969100178670608445883692870040234586659451321250369109262720614287435234393747725814959089887866431509565972595271340330936832573133537314064180657987185079366001430997187236274332600905939605217010967977860728490253511157384777518245499766048087135820509803111621012809017246401328315518382735211511313810257381426892997638609152254293362528499772501259681344176647775203410620752340219932597795628243359541421835322177057153431960633596188990694482619096830703235737950945758836165472690805633893556885792675058364144383426695345566058768875542455937007770214481149804354972486501973202582314046694018819975054235633036902260027353131276024423719471943781862285923883660356650227067345821312955179487182282597385658562336144496403826451632941435277314902826425207447939467406422915617747639094861103680169014318432287352017248059189714483300666928202783962704378111981746079854825615627508689235073572715676846338096986120157781770652339705387592890825259608850391196378774840250451695928944791272430106444480830389091796033466848290537124154896550034755645723157418870952182203852778165254783805149507110847771182297370255810572201205835570696814934957122598070285458771493232637416659944165639054295859471818484153799504736891551759487563575342217397706317070923522149279980392227923946465421905644249604725115310701151974171935931186723083012009559162499955427076373267639812859019501522731039730132616644106339911668704141727767400260968364251310476512866657901486228429675063727499510037533880175325349513403288139213459367793531899374137994355422314544090654309038332031850880653318622298056295743593399401189523896001530764976429658992954131278149722974480348463631267479725524106079691002237697895062678723462733712771612371946821982579033841497225073280941341805446096670933972186605593992814250579854273654801015636421922517436533334669261734556249705728498774319494039315144095587802500364725851604855173459545627223217217684676427833044119009787918205086135477050980306359195232937021549966062950249629035010212710945731137603353947123295580402459429698151602472058956074051436698811155722193972022291208532123373190854439093381653306755582460545683741067799849683790608407519916895636427801493366355542385449541466934039301503625852959872018373332015946475605452522711710903450012559907541993716708503380587569873979982138489798159021366418470790549289869378079834495185808802201835127842958118594532793319842704509437808829188327040111604055872193395405564456721094781293456388241289517715531915825129611997693647622066798382741332434568180280017797637071731355219164747505429110797783959103252237018045742816935772874790865233056141832587044326494558094131651714497299959023374815959642301893267938792612558509514860568226241487056366015030590168304911489961450569255722181310254368277481598372414986194180650139266624461705120008903679092492895130885263999372695457786243681763377039897131767039279565932045904146282391832717288184637294940515523287989656428367239337832706936060788763323504480294115778874826015921968278130472349583076053891010914863075964441403477885994890155959358886702700315583546805054270291626314158248324707292805350458811502059800625159589237502557535628690758414992973081502163165541489155392623167340669236580445969307806718741351577844580340200072927590016715484314720273119918396774302944824288128899394392749269072577592259802147299617110730881210549477309714940105274807241243654342897869261509875410974820864286335032699859378863279149812087027906186773759739422507995201440448333989940760498874817182539245292270481394445278437823664024658837711755112932194923773408139186938311203623071514376142401656200604901126833383774643078406773184406972684774235422347398016743425067364609631146670988943754327525081645467842854280617658599703087871611640307560835939749549669156230732782778809980139745617397783549842744610534608208329541746954382932357418629673803077739314035665570313280837674076805747943638888753864718439594136942200717931519604935902628973211852593518008847234366121601946967954779886170894232934362439866233031809423047668032296719205939444469148333317325383859808393147971502942876772698028673156842667496763821477395343727135282561292173883660618565428986247203972425697079745316496378189692884061892168353075367843742372683608043124752419352216543735169858732077107176567055602061661828134741726731547719680288800863100560849377255805593757537959933360232182597947088760383564641528218191766979074669993967980985009922924895072095729011288802232468112285272933640496042387700511165483036059446015846723659103022209343743756870924132089999837551265807461229416955342609774291838668322396061778670368207186125191716530599272035480202787773225852726524432126078055731730950745891384980389453995939732019714723780881769497173924556897603813972899518347555855412248156230146610086544736608720651007853221092849886929336498215169366523286159660707259141914772024782962837617179630873616597301564665126369365497452366812427056593433476405845508899563506121833942856718226255606671768368629260004695358634455886023303287136546225070403920575977838862753980900884039430294692330720788530600158128891643235138940937392229482055169286263193703696120855319841650962555460451235778662573739281509204440958881118808292813778879297321148534550606109269886547156702617549795295080298492585994929516612988008712679809260629864379463717905507381204733811551925141036796125055768387819459848355506581911872606691788851411748487000583293526716623863458969014410166491302487504491553993935059255741254955527151935304435273552199889979294639489172409181993988717677089794720178997476189268106491265107347189221679364041563097338432245036925394147678369627389950885052252091703859528273820181825818531843804499236574711211666779624733960949244836600244556232460283953116092400750004232064825963585676386879802229426249085649521056796745194933856362909996166337323087280251394733398053109362231909065360240061249789657302048126734351262810873352682051902695112710679307357038531649156894647780399035343662562126504080913632145713355730550954621893958807828528598426919452703037549264163727720938099148829441592908785121159628036386736607875992507669977382348858290197612751971558382862337152788307872108622302182630092451696242572963727241830383473160618694817116692037383732714010383053236345749869430122286615239066055852610430429557882765090903000570707904501418635401146607666764897077461474897535260644560569689339758040111927371412325546982360869534248364135226061489029835310522959585650129282790978592248060973452820904086191506502622459548035314116975440537093743508594496765051757829384430300498479983529690747631725084982456967187598340268758026166610899610430806895311427618161640775201961065883197435208295116988900182614412132480610316321830506040871693266086925453710232897816718853126476314039677125857218722848750885554320512313040339355573912812829991498059791822386542066905041135288336390325691004422630057610123763204891854104558305039857565194586539461991809888381578101487101814908701161674183216782790685647693557890468060676907420737061788674153824478285205077057522299959493293845375716795351538160167633908360449200193285519013729398520527252917902180802974906504663119633806969717153490777439914889059652166184309358042192338761708386345033892452196414632550839120525565561022838568172597734555874313997722063539549461771955664988672848204779426800309994560208834052719329660458573548443941005099497668955356584366492097527977321593236805336187885884895369208002336339936369706857307329671180384246690742408329085432006985057907978735016098328548101917489565088195384902824541395012402395081345155755548684652171426301957499438486844550385174697402190289885885986296560089068474042498525570256569172059125821227908406342866084383254718084486945350327051989399358711033765282454889533600093064630460776013936545660809285823962031889073605331992569633437399830868965703566200773514173075468928556692195532220680227696587898939263591655371281868106209542592716467433856088856154406446902043122352690348157424896273536279992916461345215689492772600395991619927382253640121392442735549442409301320420013557097498797428863787961777524256950399690499229071123259256780636505298084531258159390673769692028097980551864094165418165651337224915106063955501151903280891153440771570843434406400587382271491786832799273382800122676306604892701351795074087234525564345028500299157405779916418241304200534568965431505584470917005492456245038767323080058866896766104707020878494374432013926802029514762283964100932718366015973463618133225636573879648209712439159187338812465649930326141647197734867538965687112812047739293970639231795539182257344305980457314153979771168712782528301525893071930725286188272721665805355772643048044452151153898530086937091457189508452790892355001963906459008100899343940564611090227568155311028206789097504695291077978040275003917497841427881848607707471059247966458684418085327342257150549175107418504885249835701216544996063267262469504794699706216373491234443421889327956073117065009885871103831897006118277920421069240657297652303508094244278580213282714368725083883671738395035070150184219220166065528607376876575532954578453656415402617009863752563543420656922148219225253210330947951198763523541633228446217315404811832617375744464137456161112964342069539657149056246133145539897336020710819825238700249794920933545246180361903051403171393126450352784037638548160931755901249977306656131497823961352414889199195357005286609601516035383647138691860787457800304042574276456336114634270476045996971035792918454564707569779017151461837771903956237661869777564086618480726406941649938725810339979894890080134298454314247456069084391821512059339129378918672654563747509859966995468440663212065539904420235331651657394014438468849544401886106700188729533569875368695095228375150498257237690798857968092477882942837704722117908682692053355999682396790873903527192088037458736502772357512288558902838792616837600264223607434016091951723856040503277231003471480045732678538234258188510844555749768716042636342016227309080545538909896718195365982744859480795916861369859086849314458063715622671324480644022893108049891502634422177654328217643845882216769385434512197168809007461922096656767781886322739999429569958927498134900595417751607055412777120239557126494393452551882360912105581211684472633562943207782187784090407462989155911399572853688150895816971840171838312081678643874548283500081702921127472823049776502561651889061061831594203331146576991833872579627627259319828829025674878341250896162491723314417488013574535258197683447262418702455204467495945905536061798754971113585180926120612933083434493205173572939646473669617377814047044826778074813513035976190988233099374118276483068950819307438681951108484217539512572431140673067755618201013916636648976066017639532009275947730348717703087052670721250842481699468663740917023944540887494789989768221254973066213392126876728102971892530320408350615170036375412627233739090882141024945058086969716498140671830516133989357728127826231675299819382699310459420308817478330226709565592130967109669615635658370153680319083689358012762662734116711828002884265114505505719040619912784162863377101101188158351160578638830841008713281236798492373869530832928880127639992679148551214505474765635845313315475438582332851235674619201567058823560566872367499413875121054692332446437484192112838742493561820567517040481021977112787484060295406761654150573739965966063318602941731210793755259800415069521903390990151390800842101129989218009751761990437858321288993747742216599371946829078117478972325234256904122635973137182021253646920628293593116223387879777593733620686550736756738036950377333100835409791745768733446543645554310514739131172957373215201075492185113097998517370722611498588721799273208732887037044827646595038619544022599208701842922139120252746987381081329783351320271161412975009064090048668890955080641424793245002716728498396948170863333660423632572655374862123906309893869701307978104376253023681935560384651628247428069966505112150347382312372148973212871747951226477578373643101547496726248478717747581431040651064531178082129585827413897671992397405082650339335771677644452493831094877845520118121675485879464441851869322014195420560001091425563720102528562702213764524628794547862882735854415135525687408065253912396178096850090037267224235731450552636867462817923014612875785031331657723368731663325763923058522980374544837762184464196894980046685277783106302036304196096412517891037898614897952362785066657085160785051959008895521778955810993030489907465703218809533224251238234198371874703334946142931792626774373825582081728544874849722263939830750804640184263119726951945348825395719802016366734719333982489121777724393268686369701083718972859088320091837592317472472290251278151976947109498301110000318928706722739253747118592856806629798725591946789048706380352126598753569473384691083084838148418081445020353638150869737950814323473955724009820335049276052198037830388529296741506173871817009786113175463433953237900521326334828305054666118181771347570165626668143932772681739444282061256513306713433719483257345188133417813628308849287458914099205091129748968620059557923227238501417851487692590029545561716765100015466751326869561659900192508830409346788386323797218570359783077229980314363640404297432108547184373446699011116804035973770494152440677844695802687744824984953305615271046837594500129847400949349600057518879490163944691354626203061954812538255263102465766486029866651635695473253536474482827807573816449768581371793771768255658003495939078035390386199135603186324977862679865615305842311482191834518288546161862090887152984006246509193266589859475408907042379916172055085126354400582529767146561966143800881034221244490237395262032511151782943569949687904995484532406691513150831681895906197967477960574039521584434657365840808085151947590207691677437769578255771417722728177059300478791687512518587163248610292705607389134971802331175241701542354740898723893508016212636000135185818552453495935774103946742320554923439065674399560810147885933444302817997228303726236428501881481798198022618028913080644548998930822097758682153326536270013105518354358612234930033599709242319572826991095693934262007699849042069798603826850981774995129202380966285705795462052569935556020930027179163773686731283723245196569093571026056681603843560245010876179636174492856548951176842119462474461317351750726680223856272191563521335913365009431907650717359434346106375088630324260539806837344456459521514130984364252372339295337064469475293108730870380998721999061145865586782737580863892386047919249447664668994021854191497125504400914945510202992116488722711881884026165339656480782412361626934427165709071269663191862007485026043108590875109324327900001226398847386188926176188600288362320019449593733631108755827719831102178346717895403343181056644175251857472285489765935355813280417049711107710306337584713006485228090302282098279439872878672106809216541241418732859058249123560056985764377707175933417655540579378013261371047956294186752317932412530877688577848018221386495312204419940540267595187786366648217389735631218209884388080404737256249407942909537116977971615983042937219205496015755639447883124005088863823755089896625510967127176316578381152655006939123262107579117997455703708444167483926307650060814411938179199887503889685851439758064545458452697880652386669957041809004959466312361007743876186032280079850584905138822998855870250150412503881195220191235119934217824198576241889985858029024450111766102024832589175010076397406596335688638673596711623802097998574409908584793727437142672181251928818968940076671880302007608345994449916196556986139134286665617403624105169505750382232913192949370534832718302417034044295121047340322727413591315336373561452159970243730744628941517315938919807966160059515674166913194748855972832477520592381394201156895903223688756396153609975007358547806899476016406098961888955014656960964489567267565579100729548066688227670200478830974176968522133292293551686183577453432409397095666690697276392238738821497152557605179384394633597606947344906321215488645295506357619150996473998549161272234836759555508580382988526266551772540985391029594563213507781936823050715176675274231879685002675636056832084566197251855450363830633910532026717337355116128752064615805671197602004502353172633388327904845451624917715173067128932377935575334828758684220316697572298235222506869152563221323984971143145594578607413953193573649878462033224128660277617461305743202563934360441938372153208400241999527881676574542295111883873292877143242153610774729506673178502232997352419522938494004271596725311994320895009102005233236021278594790272476836436220325831204466745620405699468351849884088661648550079528336009951868005950732533432513942205288309008168079314923228596260368326163994708231899611306594354767388158278122407191004941725795041832226172086405877879884688788184197455930022891440411342613650904818398624933196809984853349934440519391689264561809628049296619389522513908432257054407028848829333818640006097283635291815237215935996164247158371303233325518081853124663097545667336050421251566366248572735707737714802632679912373127510970356137311472695925753861402882315040763304071514931812345247486918600678616345836841076300505199406784335445673089776213688798997760700951074105300266694512556721477647747062695361821244410635758219475938913547893569731990829768930534698121628162866886962725841512995621118510015673846819620727668874845673485267881676790340638479720382728535777005902405360451468907249247438217794527955504631116592937923515543362057376964437515943194263910190251094291605281221166740557400135608346201207358277725441273325428876136565912512770807837491098897254835050650217937295583177158737171290591075048307009077345752908836993518579333147572257575632932565348625535625235980527672141514395017723086030311716983435188980238153813287930143862314615687906169403084560486324491350298973813793065082526969098793611926794927220537659631518991429556594584464636632813518605545835499255928547903104023858158497762275707037510586270364572323770207609910420696118428291220780511844381402543136900160046457766076847575967559490220859308575368396125082779202658447300588120509408460273376975299410035985644306734992328192754862219632087747943747792440230833684050801983044365684712822870372212616286874193597307717927673177403121805690936450416659218220758297981028613452771767039761412308736156635943971497021471920164947859867931322562013778717836882501691550621421225344908111221142382374389297486728929279293010733300483161911039559590375466560894814391946732522410268251576147997882425439818247329707003919225583512007450096650384876156105959876664738380371688861720276865133436869687674977343059465543435795181510393209120055227205519302804920277376400042308448505692253422389733127400362635168546637122193276137226929785240095826051099058586058374423236663006039522349904734645460057855759217239237831802862667599612032709750726914641687477132167616172586496513694875949694342640351072722232313440162495531168488920496104386400539964835897726974238409300907802209225298047167964542389681261984204495913510375919761608235981817321095916248712586687429304947538704091745357732814310453594083014447806189476158748825066494576007148056221736501932404875134049661682240373333315866320456381270011082709688244237660567555993518790401194619072858818839180955336274942491040204635767700929188891012536601131742058096921108656482004124495837207562317331711469407390206596695487957303630812745312444559276170252861879773996201125681131968007290083746735321540427992111109163435397379952645982201740201116476829319581400048859934499051265780966345319576867317745152473520859534345241160387364563075152896412238077118200433768058716011690410034808987549212596021447652772156827134254174325615108424152352838397439827864465048467643650810632283926646381064772815228992575932467998417684878049853808691418912648060419167515038917923539041739760633575086549077919645164984820521096060906814188785661324394794960707036097545578181061262227035556188186613192417217592970486165375957534734718153269993148679560850947580260465980333783086509158992154147870062279302081009141640781735381309523297609952221668234871505752883441392953668979019568165415651557671540768508389861803793670278801627481355370047723760356409381206860492398442733281910510110921211033207192756160882418007274830942589027005978443612879465321961718208679268859053498853604421325807143404970808686569466209800069210447527180771297294263879999415741851875857067010341658139728208485515703659417742592418624070758554878516617393260573331840379631226831977346952880976576278294138813453151035562431719144282665505261042034733301946188865655399820363318617978274920922528429296281659517239185167652354830916142293129571950280353001172495833179293521308804907877916866893788677346618345371414626438399899215530248524372109182436868099644615976130505785064374639060504239887361265363155833166104641175797808143059011499841659355383804102075620421977012123352366752247271497099867109486881258153167028899974142691266820552061995743967329841862803585920269885948841690133811352672937167483861642818018179068571893605367278220607838771604508552557065526312916793196419989972391133201873450699739337640550856109747386404980541993588826931355336245133248733128634397290059835634779923566689844515191200343768133173706838591811213477408765143617327066795215098872173992774336903943832815627600066819848096632984610859433228546988122927975551248475422677564133780800380232788195894756511002028119953483494407488917428334480264540455427968930481396256322705897784354914302702817532551417073114128176095532735388428985548850541371262982434556462031591791455377821589322674938909237650789870748036308645457561642014945842983847910502021349148198876034225814146027735994811714802218216620274661912414736640463691470642902425247460423057154149698511822951520540277808624703719562729459703194188889023802901831628299879117943550887613472748311689032833228335513430670939059762778784091229193010487672334690619096758474048672350885345252573031646680981392615757928310628063045759759815904951340707392230317092553100682934187674912605218020710185693182728838233719411656563881198070636516189603399123810277943986106821426113193519237801122711661466387295439635941181601953629796609624682298985875019762661981955920510771623752092194714162830617111910868865947528440075301392320080299499768943314446972324492282554352962552945167967126442860378802971178994425631092017704493076827616194235605610226243209711440685897113836977801391749480275541851712812354447699933611366639299981788602395760755765870624373195877679918081951084256713735775307512379827583706075994305556229369544143160350157897570290119277617878399940785548540244012621394695464203361248529382237513604366871227232749334402133915014363247635601106186871774603309073242081701457680757818014257818466350882416098942265030552508519992888797363289225044083453007474143808994690932680527304605016272559776464615078398023054713437542154827115377723482086466791861095728236008907344727474900451998575187932413465695854160251110883494929476886981312077172689070206928154536853068049781994946454710334243065488312962396101777405703410335083444730942555163348103969909007473220803538348767586112460527211772220537357205398336701367844084232472817055784632263732744045526000686949221146538762077991529591698660048845742789891935432710196974233167455329846526509427087276451282566385873450614285555066952904390373952507385888098658603751615445108918159875313983091064802294544954857455825837785226944256107441544240275629363229917011342694210248243323758386148222728575572459878435658280423941753487714186999301189301502106561651459517868260830332072979532262049527556645061941955466587984173852775011077376560721082867921815983525784192177459779528184019335761692752599581778776003339486011865876768825936577364193008267344263153909822106843821788416804788369656587909394595440837849639005335967763886277646517032254084540148208980830424472260472667711275410070795941286136223799774174089314503552704369681898198491819572550383853344921950761562279367630433893247680227068472327361444993171601622187871864582836867224768459015254048206534951671296581254501025311562384975309284321313599833734401822153101424484242442316355324297633970498317708312812687791018905838054483149563897045352741697493782273174674364863572831973100983213706311371953251054819708000791654595709898050489346104975804024434313181688334942659588246543583039828622618734927185464745945342013078735238980940425627953636860255685438388134236808476846474068203855419539480431520304658846737695148630490351829225834211894377410431373683943933417304392345654931217164499283771048923735925062726729615245190070816778581510761579694482990872698887389226905400988084707198883519104091948634606986381757807433544120735772156332229710462121306504619757302132042040291311707396111871912107562631721309637382285883639430511371694097641909320877563450505518947146923573331255564893879237723159051034665069199736921861578969051576282652716631660393332411482481541461914701926246486705578043828702004183061846857619331283399529441075526489266669553233551925352348167960153136020531668411181000549757456006637334263704277477959395843159917282599106538664085673102115496112945266419587990453144014987470595947602012482545927696625276952516063074583731667690029573637254931069891609394611198533332162933030400229654419310784415415387659109103206812322078576834964683322770317929571127963547546960022332401328143007399020439894396477392821917918902053794320874712930937379469749862804699190102950202098429532405744846416403593377661815183612431338061831235438737140841315960856410056799819815135632861805398510476529919629446068828528247399884397339800137088711015846763980945693969457969853481545097949776506406016596068749571445487976689450364625691518156494662941216247668701801922436924228035407633206984177990450386557637403015194528966007706267428101974369633271596602781970339954912062712207177993125718060359296355786765471325905279855916582476625104850357041876554133191952265944813366588620786933975913066408401095636902327738194895779539445677063240311169014554158698903501535727992543138592599689986615635189127226392605346027281445380031129289580092469794124973153773399604887348605382560334125208469908741661406700317736241582986215625619889272968695299513772865698340540476336159844286337460303700797353240047621946025620510783945915392237654459478232456495615854042578240149898343996694796443827520042089215339018524964927251195775942236550328008801236058210967384645147091341336381396089653408267698293785155369206192145461154940609743751280495149111817529979957963183049769807942228340077435726295402141563260275891210241416172232030531404974810363286253329170184245434142243448645060003723795295412166821676122251521418722810769146434893388903778149148553988629015215004472898835434647232941067315997153030611748066690192226258569048507687314974769493104743031373767027540684577675314949423078954866862602513699960814064985264105411557197935918696381212222407477102127659304364404577432893134145037731747080627226409815651502006766344859765731923956233037994123579166886750232603221813983501070752693211643944494818323229253404090371273959435078788448677077759276917643710529937721078008283821317439354164675302168086444108302537628185146980393633792277657746098091017660116775534273308401024568268308592496321653874926693131830614290775318685484938628225081008008647383088731505872275536571589713202160372620751560821261374589965278624878304291026146768284903649518562270888365370857393925735371352904176340483885788799971732338665549880016248866037852578991726516235610611950575954352517319414698733361036316158466842702026111862559359979563849480974398147474630547705424488738678927566587787998432239332686996820757327563844468257284356440024652206715515601695508525234160716025807280006155168048953458801488812926636820369964580196172463410813076045350337546310744048323776191731023227100966059597193332497348110526583256108141370610345977207985264636548851496700834285973800134918046792515316123140498017517996003865749900973462625516243645870076191675598851361649482304465547581945273473456534696169265036414138593101498753261620362958966564633762847324268880519143303384467008394042248261142755340501769263068186585826453352176715944510064478751142579575280324908926084946089416334913958784804006650526559643451719476285323010764092077942951393353273943767252410970686495443439068204638178610758620895845451197728375819088730371422806586153325035975199712605810087192721332210812611735444464152558701292465524951923900671263611967590609497466194531891382113344524373286896894626705013269799180674175488947679137072057183380601357554496595841325983496853372043619838929938881411768384686441158801375233065959959778319531932543957286563109428702751404362009623216041586930473268827561214905047048799244652081372637203173588154113421324274787306926092128878681915024092136708445934704440155262282118971918075544794087218294811541294813584570026090745039877664796936101731421448778017021849434135994476124743710187180226971223647548813373935878415453952189458159396301479593080011133412915837953802128619636851835955541341119428984213428075113078340644171949974182150972275873245801882544705937009501018431093940676650473875168069611332566257371499769032019426341285203944644937620953079743217822286375101623343486970799274995987750690297851128872963950680911392855238565169288957056473531450651805312288600995477472369917068982652013628940452169719962005959774332380025743987183729787754151801414316085659310018705711443873660215592999074107062487529032421362835431261532627932284108166757413414768026929957506832480618565068310238300735424452498633124225434267844656605007229014223566701393904519335572914818216579230246076775799868046586145517225175274969957813163443984103877823832522967275592533509564184349686113952762770505716240643028584995980005862928601682003315856701246999131459009697110507232119611633608829576464088522710790104393156604086904220889924793968362694428513211725506911370984859023235487193432347261135347829319708500477675734784849807191624690417892042106473203866850884712932743516171412834163815051254041201145383710611868434395825243681655301401544575301165408789341694777638061043288515924408772198178488567987083474617732854733443437334000019471018372409000582283934655016811198849221948142194883925620995995447078075411808841172611672296701793114791600885907985797917420931875221994194009469956841873889712595012380401004840102087590731632534920876972807321074811321351031150656928318879867083773471594638541286190287752782721336245230128678875681488466445184667197228926772983220079174136160950230581246851806148649048997996228423386138952162903224618152321803335386995635671648596910774778925031707699552226757638618862707768210375940161995003497444795457646428678905488696298201161009094654916533749330852526539568831353174559439791985192952372922265016773076702806515095306016244090785476369589916023610302377742976884773719761575542101163057044001646651649466673987532969751054551801829351373239228054337197344796656133531551651389411135447074751351293305712708197663846654460088452161340364702113174427365691721935226120261817263475007213733318530821488783138649716121088488463888239771624631422182074723395291756080062290230653517824410010351458530715976627424190053746255268261891506259793047726037862626327347818983766783085846972364703097143719460103352269514662713596758486559809241800295370697115695369886221528217286205350745647253296983494327726101802763170706451038294540172108828855164258933616612191235326510156795399264066515725932369453443620404534862549843054997111745610917161939256132016645951448353241883932335320070716504983204526982100144128635798843044274429197152333386774316520014904719869687779601704778624993113537743486905002305868076346424638817346244230452723767516348875059361006706256874056194188169455019908153728145296564276273486761857044799375943103739508310990950533665737284834880599187688604949809023634845304447469649276811634267296331000698108668666875027012872389469904534082536272008157751086285967177701623435608016901320361941651980725451224707433816273657529762367026951107144003814687342591871934816985907665182744315187371477514233764920956867925276122851054616038771117354991332093805816580481290677177591968910096175042503480771896270824158079674514852355571325171838697807612566612454785122113654481131703386110865599806986678916721806458000042894449656911707776125121573293950338493111844677381902341186425756718746362192307917728925301589678617462357950137574304871423519578953726916103223629075517240745143383574980770724629430325032629843643866562471471635729568268128562972992189341462066975479505535819109888804323162305764293126267349333198062886136789823035070009502641438839728483688248441049463073109319328454207037619556396214355804993844008738842399896314686755639656792089860802606519953030814413421797166276542115586299821884578597332550567617501219793492409868128237667479943608466387232118531889833623319688430537111649112776731245063664806555307784510670473249349671129756757641876827140880308748754735550299481130239167187009819027302820680083923892144113656224500606877725094139031307994406357436181594355234341528443702208551216966351324120538481037150977175334586070192339213268855379202880125973824226623806499395293790857334333873659205428886379888135684913272258207918440773739477610915465522933538414202340268838483518906031580804533603493112952036584308558782809798128273502731643173015730111732772409894214107544603028535651195994952697526652609700637309511521466057349878592901694924526832914963480828487960156932385188602548199860766426202253932986916041413843447837207895224315483249826993413527524566913763158213400827285927109766502310492097159481439035421094210979804309885387750892071385544346411464355607782987732064434985941617584369522084844536386264518709047400963532075326289014694055297447307788666147580655461276727619338372593075329337061012027271174784445282246516226559603225222130751205579986064748116732430226692737627848143891004572790994130226442695348664275817043220100617061476984840737885324789460809545500311993818753439769728836718437945511116628237079531662999599804308782574637094065402549928941880721853773591192975910139585472115174354313916896013329634012076679858978747497146750542090461511086655828210568226022076963806051009377042509254791332931177949068972530389055211796518113913855655769152464078830056933948320168501123390351017039841660343782006398563454942094458459519091971570560497586470444144041803743518699593943717050860742108042606666256568667252249565913135710667513496674901066928241589520042512911243503763769537598127357970125431545439598284856952428432665653081207819807481775218240857361383407329415889032546456704178767289512833453787594424115650901555574004672958199466358790751034564627983500449262735034786630652782457960991098509540188535565565975398678591614149589558532328377649976801743714848087143339955729055218913918002614583937638848383855131600132670178808748526965537214256984202591796421130647720865591553270862813943896704692679938819812541514919180347309729322023521372867904355846514962690620873271576956927559102468845770322773851145115765498998463585349262366428942845235450353473144078780843805746828008024600884836910589225273792221910954709572472418587725182419204827389988756475814220493513753039273116688134444535854329896316113604797441560604302084075212315411369286169413003664981544077288005264582861190892147863127850161969259750815701636338524547417998806780418361487015063077796790817475726246219534736667302802771689555819521339245701023352752204164504704020774174135153564916112525607209890498557584860488310052386855467133632026834545892859431937077778232294100510678042543293397600592122777055426661583928564948929438115983152241664122504510861839744444614921516192785475742287133450906565663079762040684666506301591543367662045660631204960541075126254362236189645864414844894318382291953584221069290959289277633078741973404712324576529242751340076445920001199362303086972804162835145498292518003446734322152642746869538076602321393251088651708688793700551929239795341780509116818312487472551210843614542926982048055315964672448213519779547817405807957059608032576105276826424753194518847876769562956973944239922640047506829359997420496989503726579997429149819638694440943062715865489074809487257014449876312404939290525068858146022725677150494472541963139427537910207386285925415737053353180125178321995664635115318847835288599179843824395634750859416403646098054701279581997919284634233483443154527350253835755891299292336762278437280538637264399852365935825211267006706048876689969750491983128259680650473636590974483464051638297324598710221151329753472581793120976089062735194555887623883229572875608964566286653573238343065479203315134302173487988740706330807117565159156281699607766605597857580612518459751227931786052502979651682853055831841187845429585159112356945531563427739184525872631262608030821204707514276900352697168471199026240503909168565426886653417980597081393927989926031352335364518167023674619834024981767776264733403762614942078972933464391790213799299515360872211361497533343796724397009617326806821873375394187133172698349735268559099560077761505469784825705896984665943931128741493643591842635947233327998914575096141476708182714565967221361604892729903663102329776029304178038384677054726608135477681011820002523186394755390178679093928803804886157823496656866871729953862597722662411152599892421953301821319426286070125295795526969304362914486244038798016188762572738762187148000057361429774933866734809956770503772130630267727751519102642618030437263945334970534412321952222817341131144002267228531770367741384953698259848065396637717896800436589386456877308668623486355849415316468345201580760617646378984178347121921623222150629885275518241880244349568372706795549934022123105066555446037664676285085710498665656558541685471605870476407088681391586116724072546959777952903404473630734705460461880748764842638971461441102685671008782597657162454777722798109907784540525011080867366983231464491544523247361280700709660049303114015383718074389613850515644558590899971811821446493053325278818538266640322004556631571056203263806871148746406246225262035863279566848639332237226173466083839409649676872587186226051886170844759856170599993897893687814352476569145057731554036269392014412752955751842927335080403090649753082470483085340738226500098007541786455204721812925262719732766739244783923085227500009335523166725851035821424246078586849014846705853670656249993975597880376656014369948870265499076783866324076596896254363550371953016842529898529676248269710526760375528965071348970172768848895922841876387042802010806224802352064752775735865162609725138693689329815255871971491029977429471409505593082871768907837765239889646708754798227507441477049033822537452732590760692541756195011433808002505330357129608219033563548273393227204401033562698460581551565443926296959846423594469992883743949985814801323711924654683502293653418209679549648465208703137046748602930999646425300713970279927914239761029151226275060115405595482342401772337922026286907169867597886911617619449927884231498095027819857057907916246263346562443556509613274127417785551211119947146414085436052669675355703423243515124745443547192747757140710621956902716675239704565657707256696158265155760319842722843613778731557926968808260901120976254845789512832811877799419953448539567913546685758372552747546691047106704378265193319885925208292379842384429726348556982566230228158236682703644206488337323969449885742359833596476536099044772914563115914732752315952798354373614881733538036607877692863710418226211381302264149957231267111870726465401701729642567267398464760769711260188100214391787545945080416561226654132186547058531441117297875572601975878094849475661525835414727830931052092435842580039567712539706858848489714875354061219131261533396730912082891676417945836666579922646127859258398253751223811546221074235776705969178845209623886567411237621921050962473749867875032522607550667443990579275430971728802869348793423477211046014320788206041895843127450904793078103279001902022093239142361416192917911817294860357548143533114079804587629106600949634017788556478260110418559621037676723460712952488932906187651411308719654046822059486796833682380783220686391909268612047385191745878743058581515202538191935829901458926008304009117696485519529204093169037154270236092788557318826763467073937594608720443659745808977796179626262887145391650728321988026329344896880151165908180425325000824976876485052871084548276081096482089579340445633844463541667773074300001171216959796324219954134518433830734274906637221733181428437605714433819191972262794621155363620740391948470386639142136516914526285896119041042092350552620706898691873452868237111000952947324226686820716919314210328005331326265699195691272173792094338315946756746776679658309226283404925088950652285645294340940479343069825687391769359496156171765698818263874945185324975450792837205069602179813622318531779239356973030073289864071249216800603221764601033240479313334106424710438712117771327867694886621278458255130919062067774013913718251940731675384113122504055936099230134947987110680391667515684010856256518107288280232080599165345490262858331498212006860661278040226126989399493716761582663115764802192890420939679009716248943913972825311933773881253907667795748306731798630577830252572005622180990433069938472750550102690087518614737568968588491068622711024654788676994794586865967888067687995163829091114240952549523433755764072074115695674147403405177358422175472255538410230864729161243451287664071849622631821911130189109441516931023508969086146773629714275145400155501848469868666371369890645223341648168426833586131026382019771446610813993950978327139600801267290369301004271971976419665628384179892177130174849925637235100734318422562735264692839689908526505208863670242239869555386254717137770841646223163946776062580964739185513474107161103992319658536962661451270641654761487164446818165123091237585501104784554760480598657110432922546909204259100579724357339246563710380491737018719256739403318285796227559706286262245363656446473816826282562143753682133859820007549303527883914745637734950489891193873338090852659797756864425036467344918575418941553061751421120524736755454196082324366353423784514012401736195678652216880299619356493250217594499954629621340510686320991665007299707032943942094499326115571007614091963607733981350520208227452509801515387185994935352580160473850995405079928784885353112692739347982709502412918188314958836082615652398630711825375179446738496370791641078142797655597971686342947194859034302495175747975986799224507001089600123899726874029926149112658250082837216324476390777646151212995316542916135029352423471767223573820035797684960688897768555058337627734668076524745078331516744274388860750203808321214551136244006635183473588157648682419092479047304948388335761352662892969927313106501566578685457018190865834757069617566272099924812928865203281480016623309248348146495830258211085462593170555269717568871890218941491797165136297777565965566501750150881152547046352450507504265208027832529805332667467302588047180540697228128522083175831237465230603933129147298638071806651287726280641876913321170572897747640980872711320111290226078340535128577486111244702236875489472072639080407590861141146204296094329342960867753369695543192132873861948292241290594234291414703263455187855132640082657402559549591339144328643777203794362976718651394331571991677385107223703406578498787431576849231686049338192184091727848823456919317278802709466441180883732640488274209820662851843792243144223314656880923721618155330646855163714678598487006449485603914834410352150603139947943573154718435714140450844076399215763456231403794326941005029313962537819686140651084129649533177651884216408467439814769534311461457196392405620922834946977646506339047630649644917877821194811908131816565911547178725544004896930730206927529558547284279070133467139201661720630164513105087747266447071947434513116137373730063380756745207822673612781581736561195773986478058269021094006120556385410199202705899417692039211526976566577245729639171629943980736767523627402610527358764423041484706405870021411984947763365111882151244022361142097743108074919259367365412922633813444657686909985685817099647980006401618190001995751221456453131430308427004795827839854118763972136937377616757315814889829866280037986154912740406916682604302525415223823191943755112732171727111700607269641804708220846607081726659666342636378034496077737436351744096098156561987455672273967162899024865818906164784981088414251144394409048064639858737663540200800592450599952907906357496425868107318860587893623538525204190518895430509364711025763432008538619744622399731647491672379287333291924495417085542977725535742198791825143859275450518021966700930407793430967454540566804692137657151687877942629693053963292819615095494369080361279077787283240683132666039389681582840207626646135194375003973024288896128307787283514560260751234931427892244887134583493900658654980203384836202677973349225818579848482862547436738091389280227717020669129877225265673565961174219218237228385675666844359473279258592753190039070994540033811878210792330454474934528373028921404607006460519839120083287073261978154840111257013522766366502086732753694985444189989251705161441145126539421966732476147099512674290727155247270222708170162708433903032396048115469895265707882019994193431648990334616679414912731287451758975928944506316178551406258341863633055195278515602699944114268607725895256294966920475866238167601584766179417717048228667868722988426277700475174166587325013057538256893146631246191214371363033120294936181199780739445434928512720712155948764582303457235205899177553182355262864081967597951265121031858840036162500290052112318181005547855539972947645098491427137280207918417161215085024862532822505306344289376187116338686482048024728595531646308479587058443759026807605077661811674958248554281984910736034349111172955936244289191582117384050736777501560356405520819686333268158084341671850006254725831899250542568231044594634530362378999340681046136247827235579993316571938652161085155782057088258922211466029036006567764496872897575585405978895737466260512711306494163599505040183474640417435982359629762800976324526288108453232711185291438938430209177299017221438940255453055994087112265565219028490417747537665076736061420527707972115248923021292207172299260207566453466626391773555687184860518460954755544836225949792184892257476969092214489198040995841633761763899833405383279776809334898936869928473310403440910098187552350614751151747743192382050890454489646582268548836588030385141502864346299733339651915822879913233650613360555121604081564994265989073131196865970999330702471985140128327670774713886077116051141166600807800537023707175428539392490278305172456410354066117937361349092000454547511759550365371008416039948393956121849773610780331545287971417412737411457534297198203555322298822113930414321537066089060798253748630169086919563672843204055270941259306223399245515207219997536731545545244661940863228591837694293077252939438698318248513290235936134689762842647701767650674917832875464030932658328594499556361028636025966661061831644482734944054282578218597008530700589102038663896379701986170114466820543662893924855765012032774168543654768607568298102444519957484954835149004320212986527818950205645629619808335630656856633270993006832360275276853964740317888280359552423105006354723801516486910013215099328649641030729807375812777873010653910634403506145357140172995404043841965357536974548576305234304808442404275107058938025971999774220121815352386859448238476655449894072049256436155827909214718379903292744291428154677296004566248018543913120615875031774749629268070078041565490522778306034879104752431330915685602789305114223333191382464074768460261138328065396334989284854134126093488102748520630633648256594519355217830046763133883106604351198627068246257407833754493010158278157639492172438210333996346295984144483481153879766956263633282479206353581200250323572337385987904204163428451242375473253139584591376018812817431279814732138043953597620641502495930217903159167967719177492566746774792796154683749849526409497860408200607441377340718475287897450187843498756253467782655071122200394024074547538554125266452531053276809380463975293109898754564630021762021408115250358739272963149539875512845619034011153950257479491087632682272893348268603260455681243261481504066749389964292843384583344534115875321529744885350717131993715727847104763772796691548371376552155888734697889320343409541986687584495403458068195133009311439648125855306341064577771540274207631196764262879691507105342581151654024397119077359742518470257517180838994868615042268424482098870771935687199745092503231965183629113474910308162642398306495627027635987922132194390229349276475213525353889544117224001578884246142679651787175763470376467007425376962214745564935778092684749723930097619050675139368021379473114084626940858341196624060633141208806976690381629516883449353210531550917934938071861679696693038125578946121408994618023672953302666436676757873357038104144156218753517908373018875709648449164185442731091107622519734141573543077475010545131757495289209016766746893304938736764785097130554127410320958226927700773514203185468049750115564679341057641581339842084673925812605188256883156889178385606813688438989925375350008788975456332885227170768594877670631629217790810393462662107822847129682740879193682038288586412078633180964727075751963765501110527768536587301338461395383857351930303270393386900315189818714165489192278054159933731475723424653951229429775258883402592013143332269127843571993883847946056901382394368810770805908665566591145562726845443190070417497882634928346472630407262667351778472785292973547888430178200834230501280829452744617617916914503633073792499030177974695852211761988633254130892844008016518171407928974987939365423169874066741225297402147672377787854782845626829179936137786411919574105564485472804728762895761003041208162452453869656324940413295826733733183129799644708154864262161968886729728482078079622224778500451851484012887335317183183707167113371114478704389076797201108349624556452292422231791276856013794492093395460415452001873489110563766718222818164939327702061608517169080283793065347349641958549215117880209130056243099147589053141070306739908246155758726408599512390155196123931351953684429813791785122246257431893863543811508439564148690784160885843226032279212060161714488154164934061700371733933102966757760114722730514927207498517817452682945009687040237542326358253210291871207234648763656525679831343915319794009174351503419788415889528718693202549637632523609989408940486726561252893792723683508660648844193103997607293395835900929561919965786220788579534521808180185970075330273716015658733163597779355226775574336171673928303395854283872325872592833945327730285938285848623112443213472496395596288153460268134411775787256427289687837092173574040813638758590259759889033998141246830449470805271114979096535680074419435503197013731207910884677676922453800790503079762532647161459154372693462806478399844048522018170859058901579805289752958569143661636143520204825293956153489764784716359245886681904037402043444677821944558442662462945627734504945888804409226448662108744925397956904810932425502047721356132642840309663192700890323100966531656532241888417643222085674092527579870192694198308842267042929948069014186332133295485212712354606185687269211556470544441721475278312888343316102141555687486268728036838806965903678822406465427098005624190156655197217997829336456884292274437554203651380199659736104827186945239091728208089168062677389998544713755073729029560028258482237492351773855688554052398153432635765358322659786156708392741203549969276994877101458536403712445476650733767140106066303141681675504694770293338970514756375870151750789692015183222290485384799660644041774415685971611527629140932534136219693337880083323095080985887079690520507899567645170371496692215843797125047005734681414845989517766319394717650950607029101738890053203797473345483664664020213803775250943866443473985437394861679651557015762697239199267703604291110115531955056181125104122901925264380503166930991631374068271975989430258877577425035613445418385886749461828568453878560617185356141335312055057907987433554405670812910494532303351160582799505413185267643172914536695741322117184511351142903721841359746630184412325219826423841403265301203832469821365053806752643209152451376276674261771061718851419733854825497213909450105112087666491201802938416849953772098988568412141367598070464605123239732809276277717993984553424449781610175589696779055889674604075301133198176993381428664783641166279088495727144646233253473137802603155506441948606222642557228476018314892500092909416015663743821673357917890051272742273766142541370421653104662960113136871009313290674645238059159618530738096819062514904013213633956605317838706003157766697676334730730868245399604261107903397220463119497498842464848366848813916670244619959777418914546707798662388805799248639036379576889522261015051743931051819368577203333294756893690149390462011378880813369413094121404210903288027640003996326749963938959151550487364162296340256686461143587218076462769793792817119125595754574773557792248636508729442259595244742240204686666477479283054951176574388157679612034811746414992007602419540513411503285682063109005754087453215876569090529275142800485036724603465177396768571489053395991699529122122773629999808329403690624145150053925616520540639618593133660559915636730997832365859308196007363880874431440839228673572972589513694436420237049200611996806355894168531556013950921719943446771363476876400520246980806956314972137715277494194727837323326889195128381571450228764612144066254411875562123682930868735746879924170550269730409460396771189680536251718112404686929661082018303805980813845379918854323276372575078130344697490566568748841550316337204301625148857954349863418091469912552445824004678336480966668715211092042866346161410016609846497204691116671860356049466731115053172557045303397590483077477540762898750246223660166190491018528641563240543825336379843981725977668532932669403892793583555605404943513967589041458840369745632638408904148337932701269427433096774279530399066211961262134550494085895621994322586385876942306101957766648168208195060775256290031762230878054019143190156785065893414394369193074048531811867177987225985357958857742611619833916795238668394739376035732846918479847785907849765534589182742965743649037909986990123458884780968796698683860362681427731745111889161909016155740736208673848457422096249374749982234945149499727791604459998007937613456785812944595106690378959975943778872332364016211248170706076054206145673432729143543776113722389388413666271331299787160792810038854555926558448496492841637097596804698573267685233387163979244330127558051382512683779844396638190439769282551334257835763605947349594496206085579565859010833789635290484688791457881172438593031448193196212534455164968748156749577744868671260888141976703203698157359646938310731449523519330083245722092070192700246152811349137132278843110144390984139835900012387512043825692891898963581672695433613024123418559302573515778264740278454845363481448916797669792034060145367622048553338089666766426868338828500870880013813326223014937439108473983436113465305589707461378600056128501447861931882113689516567013625008889415015845705144429020304193891075297050607961167635009839211820242269097468464426672178397503855825622068631863292448816058589591699617744918848501836821410243221145541516602691725721079246876905787827650693188466542956177412639550306484239766331137128946728954631210190256996139451634540860788736467279084250375925241101793692943232789220622770116154077930709323226644527478469296454081804559058825137868827245454528021854538379406359671792376263113458766350727910345620145941723838075475913313344616084807850377165028594223700593156002335951660675640610517929404960923423950376747437489590726100873211603228047954195168482599743726731227333819513241129661252678201481620608516190168314479810513577681362572999944438763755214487077081910720426024116834263941955844060829938811274882276483313257304501775608262192106693754005846944599446669197259558086947629432079325636024642522061576159382964222117092201357397463200333682892609136777318234736590164465129305918292667618351803378765586539188324822203916508005802794536638284671972672676457981817522041699233854504073815740773607084304471143691048136472496541207699809725822565436694851021738477253103090318866568268677067060252709160062713071902427030942495050162482424794612336844295731519699685307106186055364054081474453130306172460972763259619969160224088803724394872855372971174535700706157537739086479278035110673862284576241700003124186794969915243909442699183193426796081963469497137776930953827539633444128113941789364308732460935235573211291329947352837017604201396252446918473278685538591810435161231478083259722269658585738977338626101572561677915317355045939797925676514245998809424241049764345590912633480936925206745484127328399865301248795396719029206458936019093879050574391365398934282582031949441634166364329501657749616525844097153584728220668534399583559470166537108237277434707059640576647338724722309915032897349552450882472149630625634073322743797685715489412272616721995824599859454264260389887578267901115831629651354587843527336431478544739703291131280331116499519513310223654879405880861515581190682214089351250438053038526998629774991112331980339884328525410370377240042632333358061163077136166979635030169374939820994560513955823334313773126180069432688202884398054762457275285237062105602872989338605472758329214254965669517387000704771588411532481064761223840445314511596144980854669495592323501842291085755451670311909240036432473118362673824034699649578313971887584542564839369626512635984482515983700069819479897998763486816671207467673940091052374725277175668589274893161617292004601537778256682272517959803152285803282226347830295314493651851092980454615188012343689894471286055429933007288375520218505490544074332849040652835799571736392343313272599996083532961708720863659542287462715748771492242902139284870450764404260505177529354499584103166134967007973573118965583774783001067314097895471826536289293814351152503882807437066750818011217612152805097875891669954943403373691907544587585496506650921107344604340927259095576356787215195437339360437738766742408833456146895740650684504899186489721388955952786620713189984533663286151102899347130902059153065425518710925411846140280891295298386343319941630314267123520050613738705949363729296811382576637217973835932529961176176134982025684834536081096521251508921790192333230845366212767341333386375363685669600536311040174091120450170137699618663631662339105952085516828612619415601835591296225497753108130555964146932124693517225913921168194610194179270836256157595030607321324224019579925086724558361362435879123855777817997467539056596826567951923344306366372564792282604781504105139239801982019736901766953747307797556963554123902351057778478818761858784648588718119990353550601569716230035035971631218293957764984929032502013712954330829920207672970793634483289780791431288978008039700615526141540465123404247391527853002527114126242503896733106349773588341139438859867435602201836621684291156054252773474765061631857402656433538015737322866057869589908699666208500504599431414892243793656453782418088302536466738346077995754255698604421615001271295730052128827522747899122240305572952275465360861196847839071536231221921148367302307681997722903003126204668341920443473869562851424071250214909115332483585325675519330392985521245101591178094304048645754616354148224457943521800390814512290822359662616944098399139596413854521271412715224090563969839508800697753058751290186531178726181258217263453678535044374605370008892816235132342866405085333480589692191253812503825549517312731370576169166161274574766098966242262347281664773878110439169048318453510908282280314455877959869325530415096028182649563160511415621128475042632860972373902665967219195001147162513326366927903142227797226136005175930937919351398681753763308362406006930070843614727841680880910191607423978724302520265795630270472617816308598727121860238161446366850322618981796338493183011545426104368143405172068551302431258570219460817971113138994295419540551988243615074643444131773710736901684841973009881300347872660780612982796241939250019018465927961693787205305633902944625728462940785013558691629649634798888350710542789161973725133133614186029869776250653906647523938765826876526683230993009233630256660127891643349089894573627356124930219501559978733291392093886748277882239911450898857653485956956439802043813717169962656708153155610069158901494051444588310143968176010628096579965486934455852859785845910883330893163132453596566827769758819821561652653389353863968951714252989555516799455852386918594441810284365169067759776522327617966945938798340509047762424363649712543000420732957540726371162415953297767806632074652742733821378743172698226526607973842363384129689844888909991563914546927688743773861722531838786949119727038388376392914341369725695639512450206440023179082792668111556681258006170678631283596176998938676982061660825918661485861116207679838024703297988747946625425631414602353367338714242226075681365046278263774724891055656777755618199784644957491281000229374959472695414242115262969087120737887575847403148699385983707429327415552072338393883611185666563925033492074836504194517103006066815572545080491892605082736425498297496439933741836684848326122109024286988377980118362513580083074244106541262531139543279152704788063149504845889671971233125999638297475421948760867165025076025020542103752850875122968082582243104459675779550847702678994978699978246750576641536182646236368655971480768315822947872897450598623600367496164564780579573070260863240775910174869831911682615703456794732931218482463684669981367686233722445328492546262067996129240783713171738120507339450530503747001816782560785975910013307312336237164862228606970182812569779754901681920509241883259653996797296170381765393668295875035336486650198475812937198558421049633230661503634730501042069051095677571912716907087763914013930402689378660220267004727337687293563427375050572996627699942425322413279371525897515836280339502447481002538870315801907906361868563320230445763996780105009564342513948317446521320681130584659817052992849628085674097030220095020849862667056793653629331964876815855559871600890889752225320462564247931003125167238784596214168523474638160709426727010612004862030129052772263060198150814217369819408265961205720863867337923235209174123118850251903325512774290918234262096793216072905814478665868658641737126937687372813022034821339656567759426126280271591784241721103305352625880340724353508808458257077953296616457589739393174258889181595655776604303664375996574892813298766202899205522337292710218824407428849823716938475708554321500198333036380632905053130111843512226020940707026525260996815979662299227278233857787378635890619651998605501745047394748545174990270473337174450705751638992468258894813641653335849335439136127148319005477035715281765161952351498092414816441537858858928799313027055148130829488687178577567917672893134474644720220192797393418447402421180013190678955593943403051784929862388294766876334388249018194888153592996289862324534228004071957666526496588223916728869808009185744982636337017375532934549497630245951294059811642777765455079596749513294553106622687536101072020833226666489458856877088400276168704465989124293099328236630295014460595234175881633040937042644654560517761234610908160368240892665550551595340372177058309679091096410022474229472601704725181050406953910894003795008505718053366348420405899706452531094189919325681211671585256733681377599193078046988971985950961237915273559834050802709271850161054590765326700315508320658057282112662088271759481788301038844182340212944862787900569242643796936436321271632775327443880084359695948979596649192940398911164974222111309804402839310620719786086132809045982703077406606545915766788938875974209216281456434404098649331452844348686164480186021934689271017052163412525909594503417742296317082994003147107839690135177640716473547257503181558242846453146205548277106796433829882826929073927500181807412068035231449304028094625704774579998491055775114152120071970691404003465798419244155545220538203704415501778703171119208121555771362527404839367764440351227508342735203569336878129746778977830817184701908997117659417636348558222971757340819937117437048264952278437716351492598498640342688428372770301293051653132919748925856424512603306417052631310697607905081115058776522737400427195633658447413740193318991068011462603167620131043993052906673627361492389651755726306086435952859075859194441181060294181689929522933912172198869213505356377703096999811396723557037885008890211187749486538872928208568181638186623605937490905696013311187491133812591793267865980981648666313237213294235022752879791424043673997803092366966257380040873486906095795858456832250559708451229115665439024695169863478788385067153936405816289499524088964035812104909770669125369821895436755701077547902717356093112540858885800366801504202435221718294260509428546528142337723171356440690384727483747229143158666216128272033087217604376152360682374404868588819106615679409994337293573016591000705215470708170873480035998800301013527921983419781529886274610629758994839434489186866465100373341450302289202040756997467402647203026304539334187937023320306470288910762214171398920004759189570937912841231586986061665496321972763687348352589903651842806556647248316209460082381631614298892496406726893627208383890058877281142614121173321455189874706076293630901712554037519533095495146456862680817144849872862359761222900987802150416864249301260173742385833855910638916619019702461196366443613749514825146757724235448867039096457145160302393872385955141180691727075447994541234020238978553646270760462692642654944309406280867982545328328385779304691957573980393695742862197319750985536703699635496841499751169303132076770998816705596807812973791538265559924461916965556019603118306067589297271889846276104242304255990210974402295590070053454181397176946644677269273906657564992830925943476560962519102825350231584456849636691548826705903462600695048493966137941748780430401534425126045767279093190894336151023148072082121836336442661949347313463468031481839065294027932425072887620383630917233620269104656390155660189314036452295885717741173366111566983854058256960167321902476052646053127149420732047295921959785285408911089255706475140747489339854703639964149513503737311441278033299611191200371696356206290868865580994048662138635481634439223487106092020001654767618095788440039670026540009394576174591876020973690996532435237093927126378373587444770242532898438435140167615043661569180626676858953338795835041454563450439182433454765320093674326786880506878604738677126676216904425616783245650245354359325789174707276155347345516434125936129306409401006366747249125854394044236731407595874940699395987771408439860474381432939090894605551986703148203407865643012049556835514934725210441427868627341132650188088524427252170657753148289984640209086034598090350673638613025956651344330133919487045473854845643840759480139407437829679190220629130762461384912840754476567797140457658675836341013538591783835198225515755370653402399557079870863332166968856166586813211385609129431238443250031061468686113574417584699162431860645878984347719234130699206744646463622208366095755413381058064794026021599115967180135285943462475283961444860382084006181120433128589525408814177558025188765235106049691365418181036689084061890358007675315466321123652680718524943042823082381761101368869892900257261246745003044600233320996794309921910937863376457312094773459336204944008717842901135754449245153922060518282392174509919614949203900028376386747840385388340919635250463258976082697861186363285106985400519316071156450650616838482619194852940642588107879960216620807237275026363071674473203647984981422620523636983864872581974387478790349786795948157728903513230744841314962295457001809665619729856264208147835402487781702268094786368403572279988733776814445909222657306449651193775358305510958919176409460546807537462350066083738260033366998749480526479423229644859012612310239974819588766217961065760340224888988173387421118783465133322963660706873797087174549407959492080921617822736134521803208724544627099120276451346068341496164149545021426912877014348051809522624000504472754820565194612470085992434816047353992080388087792846942452382133165936504367397662143349026270213161779007242770466235978176445674778521864366974488783199793809363641403189600396441507585229234795989281861000941839182203191405762375004850361495342830935871276524848847657055502760988196852353409123277668384425650519426313461395299896295569581828294056306429468014925874801744723734771771860627609938670065057249664969581130880321033190749865384445907907810154179647827489616253105989102174957649293052679544185682923442868520215581348179302355328386983245491527114218390436989336990727899361121656393853823714235133750367384610094070673673174727660021623466566185206367150844214309839265638599453907950250253307028136451472925460697358241623203952868135586142361725559528249290084913479680383123660216899125430609714455752679026902189287776816436498429260753529218976828523368592710990490323618961446932417270186871471790927345000306507461430599743066706361346597027374420819496345126614886595393910747997723878205813903334412495629539324435193979077817646107531354908637895683421447215051851203846235440977181785260041700650989387331414668487619919945123461220095194132278260084102647586081832312137774603690501257889453590688663014169150572610929366256222679165445772779066296003324591307432066960813373714836812627643443093276670832182269560348162348700283375820026143473054632297424037289083185832036931472990426610893916624479342335578884466629376383211886442445263910983053245944285681821074933061942891462938522440853859030421646098040646468925443062567262888784604297538672795654773181552494990816139266815723168298463464445363944269606466263152245414248549575917572295354291509737264389570861200420096858054435891418566158305060131207664280742811699639207025114837341504862737947894248154185347484093616276841181553328894585188150544740061395836234023425686300393204325432722925872157819008326321273210276551465783820171600146788768370725251406808515786778081372625881584777093127296289014177894190977517716132629803457678568248133694486431597879610750973648852580189197497599592670077834623357061006148039673646281915716916009091175924980535193070624637205857669437996602781685795109386552108185025016572066540046600900048424970846078631281370892103918202228705814915679572642056826393996909700824573692387758101812510757530502317221391610202480501563696286247618294898771585711903767189976756145502248432231915755252260432406528183632872969585705298779210480960685524752669436595397808848868306395599037358395289176960432626073849034087256245613245254741720095207291179779269763152385786631712481119410781305634283645265086027220087823647911735963481770165153591361606998059782597715165710612368838399875304788306048048952423453732132167361469983204244769336747125049911946749739607494138204295192929269865991436130117564033694444912278950481672325836115809774685908582434064931703496652563294721015287758539572329633942450516429388424590958858182893422269025069265893354299739042957143523898239385808406728518903474055059398874348181700736988697886472556230089873582239595367160744347454263606770529316242412814757631916773432896292599083273166427373512300997361709739092325330716685628565601006432215643512111155439567375652279613197701684743548528690836064006416972826550060664055107537598102315222905525725434047217358621344822174411768559033690995504872070020071979867166458272948869319381399192511794428693429840768021355759118614898975163576490445851734775680349258344006111426510342547440874787525892172620602930197334621409628819948974078648273636433188514641444743015368243465406682378169794222532272631388047896998707022267854775161413152228107495589999503099023055450705533136807152905325857529921317889942745191868883877402999575672885520196799211376561745736611148394096261767437182269645517432826146392520126603076185685103856920486397532907795350870979077681170977552772654769370648183597055595091480233726447071761116162464549408953827976093765201012394185571974880314034494406754130714866210489853463125080348768238074398275567165077782897750634852472466169736086453065333533233254963810851378401758244929610415786426311411516465437853160414334825805836251567730024922910821252377051250668553822075003055944953224421226628269566008001297895562661184455142872972883130840504260435170267495896823121652366786994032128468316290472516805990431172746083131112056533499823350711802789131241874204445932049215106065455254918439783282101603063194345891204177510630072480756755069462111907511750223745814585545330816313451669722170029538775046891805290793759848723551089994343993758699270658477923437741432810145127259876073109279600695604037044789174493649578803800313046944488296344990544286874194937243004696961420624289304962416905190505148211731431773971327675519499960407327204663577503156234519569760099694617383260769836742984910202361951294562259136710693680347563823154487287503800499839533977700600912532021031840031406802931535424669157064218179853682674199490396893590201663340188152758003065633231715803100081461266280830249331203831513506248314058976189269698834235710817746216482218359590773581356909243760568041860114763562542292412473976709192960943139353225719143448611995061185912891475073685545336573967604645009802487336317212317495197104981635292643265665587226001966261281173012363707414085788161911522620304361182242235395665034688151809476935132184019376356660772752537115338890848281304983865112731042047178872394676246855222059397384293450788026653895062105071914452054270996924009090304104644553158884549167753750786533711449924163245549856746207764130193061236556948207687400391748088881822451577617879474658707200868671668738047269561189002006638160412234756279474383245727155247324163342438089459340902874704470038580701336049356308469683377408012887342913054961859386684234266901189165783792071355701093445774070642263682267663633084470017994982096523327246310646341083240393659937134765433078138098134386186685173157125071227587898903959047150924482007630612031170811568228248314255853559176338471663513069458853195769697121825837528178019956772580302811758640283427603363828918649390039511871423606724204026029518827518731728765194652197335958389688025622682127762264828577314061250735821687360869296745326108904255582369203424160345733837402382244974264816315101933134272023283268243062818167334466484831261012106432498720640838493834807347022741486003744386884803843995364627332112116324939540725839298407146763761784323195767329938565141778765097614112652842945015268882010437018499129907819101441675959246007744649365990528470650757417716707497239333049418488225867648817140225310631160284699815966498728580894948945880229777124742346986234534781356807536623151624260803038875788278126896734070106244273430489629859924823057078498933883938542749961529100552051740216494885649566333651421839227625443830562589633262645906041001665034497654179324782763040090911629068468571677675674239092209298969868202078198021694356837040414324202076345150620413276475839344189199383320288486137509632853046081903627330062037061476287237655557861992957498649472481080599048572384693288736900689355868811515041783132907554959391413156879752390192267451439759537992451548916645066286918298337596025554809620458668580497560850186440563238122758765532780018622739180568804477291011084142514958269026532975016684814074052830392936062675179492778581100595260237719179948658872611914006981908213512113901094679297942864510240849303951162920315760786731536509568530046065508599938777728016126407945127800432142335223933837193239355192243874604908182978950420484166159892964486924145348561095089292997120205345836282392543958378721545700283848349632716225725809758402739568128930318880578325840322921908734908174113780873541817436724467814739685924315247424345661470067927755970688389239371611447762559367511439458152456853121878823567305912100477431779541582856442735388740187343429355806101663812608474047747138559835773752807683243778865283774167794965188641233269599031362186678511720746853793435883281636914015975967134996970809074210107404036580215478877130068864875836654966150764514591732503307630660673365206388714426334063033932776418796869133011702641818654411646846878665837575290884492643552323433817395656872306801517492934191701021746686410746772891944943494755249805209668548208230088858049293202593634727490384255511534138952086640525898417360412224466602429555194391254420239100246431084310627587864902194031583311666742208816243442272654790967110532861319654879284997823527912991838243046654426017054603553885063960819318036760181290449924781013748585122935878435266359472022808561884515706023907858471735004022815073701078632545947430296034784024857766684189078230811276693437993319936933191610533480744755591296250284980390406216875228365337377133026655595250880205909617660464519485967667434679891521923506845528464408672671562156995667669036582033574963254236322003082434670874066064023969347868509105943335454338174207426225584948605267731076023945200385948969222429082939042796502667438245612241101042075527815646988382378127421977975755767684276639712493741480630520501639290127190322973671761263010392760036430660156779584883105449219751717075061035869790362607040719692320638599497438197085168238131997481730493636768180167481915320453522138660175942846103265736369114618806154982817820156552869266913259159174508915594181977791559431223302838362822325465139159958833260549758048562315891684756505080847230882419170294552106930807663304306253741518290548431781557388212880801289691700176839928420294653748170149202798105271345585856986002423581242195245333446184477397722543271899430427259271689940518041100042670089689536943300040491205790487534427042096299462499246615266616209555057023389078665871490663820184266894741392899322216693580977825039243659580769812637042531746820932870141137522543711744247174480346916291741808749141104095914905000928818684746379123120956611409510279207511394411982387471729168172050189674576940591614801505574478485876051074716971334718268188039205976927165795951704603087729064677521994567291892184427380883809395618818846004534579483578155269947101447465650267014643889076008712081182355456952599627950550538214211972835532115822711667443678317077939642863150270047140328425551498761698172353058311998621428134703767231454335265441967146580033947838613225088894392458209549763144323370896496662193457716706641064515095795493331779033401949421232080158397464908107571732256968889816768516644516239059110174170646281360244782503182778518368766555837768303079578206243368787466690762864243088416118987029298527558716887565638254781613454868334803133885249300154837831438334525121385275911503153969448664514924016195700214450039169233166634451421288930591160700531829992505503608673371841483968639262018351341929866089231541622917381083583818692616218106766695811559141453603540523266919502806048922642376047974844609626729692164958856150579726355121492135147188284492916931803348501466185049749953493786660501804914429872502271550887866149785788626457234733217459935827464549189210792737869948178472540864236484373083184157513080399747657507362356154054968120886552688068388843698222898637697550405893690560904209460059018001279356598123536577410525051361803347960087490233371447142190332462272424905492251435155881847440881104998986448955861395682666046559892614273340426826277156373465465314197521611591603904463962620759759790633412122659614973669087454726220155665457919755079522797452116022338030597067777093080949878674983289685545926949746820408028214059529650209539556814011399714378497606153545408564291811492064884986006676390345409886134421181551745598974829596211763241890688409576522457381707148897671692506201004345427654075968404965405449151112864307040886630750383336815273701409011372210520175703446754224779374093365821007669187302886221091864942973183907000728918715162113024046383242533647169344396535930920482538435947950873985499944230083694340220487186338182367231686722387656045918093837567765968446182249842147934538866836094300249346348774713464201898904748102696169351924962133832122890168069369343480703733417050137374743312625817994709234530050468955600105485420339792253097398100077412707539461719284371009828599755034462181462336151433491630499777661730625707033853802717240315437670834167783752073652167310213570163745851060438243788632182687204790898120421228495865722637131076148056737836930739919350186446448623284916011286652682179786783741708478272581378086698302089268158277529539728718739455133979179677458458520905148754260542784451988079655099331077561610815680949574957615813728292563711694345306731314258537933099885489057780748537123890080710153481736783089874418554302829315751148813774763684135920578201145609815043759791623651201267614350882954144063232535519366474254280390721153128887616625251275157391061219598580454803480468290070015151312777958324544166709365606949741497298233248158524490809277649390362029932099320684915275720633774799932942154221602480118089640556332162499832748104838666235083779584944968010062638133554903218281289472737611672843002087401423619295489605292728661761018882618004334655867906514024529684295348216438909297438133128407941744891960188526513488984048095141382385885639992065517921115382516678634932383450232586484908228596441592015332766152075636415874237490653272005730009396085915331529684109930711669809585771070341771631250539901198247687557754573850498450934600460998374266218705158250445319069888475096683769497342399858010871365206332147541981197474987976590040289863443543393291772143160154363790652307961181357212187835958307661607735555945757361045882772924802142320415071300716802739587232444310605871925852411959524367844729896412343700937748427020743618888109448476474294258468257208508920161841982241977860342987896212890761349252085914403734863118928308458810399660811068188754737818301423314038540136404114507367924636051666944391354124616930170083635180291042413073170570136444219828692380959955870533038796105450403009357804525499204999246435768675477497984788515665231033930330144099369495567744468984789776120287006560363470997710938167438495364888035410802472554313435805014391594585337586027948362124063356509031640045729960369073065647664337148732951893422186577755930446601683591762607316678675902854865553990102154711523778405150775196915510029964746729940082119981163062187273066629572657911431057100543775958983601392487777836223492084637700311299188092477650475336389568199262458983253359182849743186374785221944023223614821370075848503044600922723066075671111568908149796354919528264543323854677336437540200756406786932480056731317046655804025834490218171403550119747251622733552213794272077487865718994428606823325519355112154689427299561370820048419383033874931912458861858534512430162320764358027642353971747875415572587247800591429980698781939116853710901083288196610846190431638236680088434870350388852481997778710103507983470448595359277494745202367500256482537542354674117965143706155911199609507468309504103380937316118379381483303414973611376513850673769300027909304976796902614206086485446910053552906590612073663616318918914985077666731419236206475857537208856331603796745718870878323287792010136712437418507094950834044083516564873830566674295827147645365461572475952704216255225517859289905808943720840448568269616331150806489108073429051687202072126217331381077237528669919826438499688340520185476590657336140313647636920019305055618071219539351892640783494596736960524430155598296784709848886896020754141379028339062012160676340360131655633495221201382402282072680096538619206690228710248305572874673423849106922724974252012303769574271196562042581161916330777041396196892067550268076016004783284063277506743220908030918069326038769692409688647325790708193613433124808466775660983594739420727709896117545851721150235658231245421907915881693225363116511199584114947764199991196598604952353361984221037175368844802371038769528994575119400312488847955085416232138307139758654216026664369924999101083803284999926757251709058457177319811798240007499649100009539903483379504228545375836887814635142443485688903226213153083657724822688760211344121841436496265368904475921563887340931821072257227815703461340922906893607026655815774864253640493819618726278820624822291904542214608841445239847452813960791688446955029393559664573611949053248860829500328812071864940008678921218422035783065443588191062226774799951715405354100967531218996242600971460649485830100673326952853195529794142866953484344743064930949320097310743381010145551747565969940416385725649743410835463200194006180097470502386750639375578527364755199958228474571222311749054834107271770371253849070028956059149942819580369819456405185705306901295299760654486304569838551329849859956810195352136941478860445678631691464036959201752710591403295714778538327738481644733231562975868793875550323016915714004218886143144097348669435391158965480194403538018547846271831203796526008816806746659088525584458800404139918843578057281593150715605445727486366949883839484980417645515420081699014830165948627149547873302416033691265816344930587209446886546262060904916936130433733473482334013661067378633200710741188771888698188182975549826687739347400914358309244275668129865386313308391897160851625908763492248325547210129334658815635558157122822724153890432942852810262035712292549828932522319054525989960008674306357146839051754640006090180624685439152894104413564828114630317347346062525538742718284554181495114753856636632456728959578070830810664690359332232580546818988384677000641332348582569470459963057903679035140679660954399717086066959267405528212582420761705895072806765349695943034528917976114159671200858469118262513635062616448010262710005033622763594541834493833496984488255848405893593684782645034781234173220826865415457032736717308215451150730071850816205734230343799344382451108074077544791244632776212458562640476570735256672836450024951225201036395056565960691360573551243145594394149208812647677099698302531432126495103287079155367550902057281244393085129267140122318951958797788638677085336225293342395663048189911419209934595570364292058105215594323560697868932636760065750059411466670539591498748724579454160793819743578007594001428400827085488899406821192148343806111745489509264265697051744345237417241677757824586684144689797955626153724178448554765600577232486762063452060078581616702117465351807948702938950228833778870232709438185146222677160188852724307240409387028910211011421968060254717203530819992174543156807285991928798337820835833320721549408111660802033365560102721402424519103148694457499454604723908614751684067541980299643384499325096012822682798347238111310352507811647456320297283675169216427683033887046177825482103009128634839940849162108661587149479325758329954763749359961818149343962787791786631378263205790882857138354377719296215202163435123350356558106887506635169013045862116891103844982061482067184121151237453052471965602350876392520125094571316455420861884571927043923518758701739133329642760070044638295254527064918571041283941176943426139495212186648935969577261976298330528917772417285224547501798732041852609214113787496395329919249548719490727022583533116288861941076131987860457918366077799985366031072669083828863999911011613560684890269506581621417952805176315739620788390638229566412316552959776698055422656149181195149897955838526700919019591102154232168221492188364507716021108569778749778512401221870520732768830897821264093780379868822372869914599209051382326555684938035004700474967213262218123192983461790223879381960854143280426707665343695053452578030173910498175197658662626784596865440889947091920304458841131724487228349087649714000694608621672721592594086703283159894858873363914291933628929513905137077523451748089084442860062911405139789543712838826019952849031278226943743730176440966224219980893049285822243252909525772901144931139743984623848492227052001252724994210956318005085847785557576643345160385116323584509756919826248486830628534096899050445177361617372168699793803608478995913635391795871222653883052560792538519966463799219392343163167169676934002280770188039177429266610673107863494411238416883000895899520755714085823423251717079547974936721348982465404331586781109138043359034188192606641152437501807543095011688514076045334541380866442927479817943073066987260973254347544737806695704316145684520911907055263789765048156348654598114391942916237933428895750135665082581011485966541796887038938546038422749909610240418962087259276803052773662101054774631017476701316067964127318087044577988942669421229391865679363898209508657280890973056925052702499284607620986644731376644435875818615660351392252938200499066711277167336837242230365151756924713392598197363505162362930648215344636781820793446930993975123534672194268468428981040483382976906350367790083245316467703365063861859750208397809423158496280745179519923658254870603538043200404086443312911535492404443007039442943476234914681432800643611604242686409429758037288646122147601520675638486760973123635194953706411105914860611866297597723331126422894698387205598584895259985416843152758261069935520523993395607215462820591962122296600258007439211641249893026317595659856921912539130207780863467010636545223423350980258887154101641338102515974860385295230432126827023675261909211374662348706545992422539935974141169947473120142583506890351332880072874521684593704451275577659372460559514997693488219582700169829400145104425785338295092543068751053470278011611882584066025384220002399167588364567528971179957183990704817214452472380306391355521756916751047061275624323620921092821846787239734696027230488734031667235489960656718979120305512640134411029731360364473962054229428877248706087740698322823866057561723487483729576047456021046162746340062763629503230410155144315523854306161749214498445724678878188182488757042455748335761354085004715206600242619961991652090939309265976166371936577609354414126381561084223492036755306521983603861732378944592339674237383898386093231588321350012045431570595012894728989520222716574833845894100464823691236700021642170221610541153126778007806417226913095610432491797896435386449019271703987310216028156893613439536028306105080426407847297256825640173613722611450922187701916243774238991754359374384014167631350698353096833186143197429489496144943852849861412615910898322311276539210345256123582130720789390276031509285194374021477257688060851115318722913749551308184552583517152012474663020117121431118059822367122831416770615572307219118764303187099182258620844105796266673001878974390497540440862303660052036265300032175664238051501297984539991281747219735451103265213692059519411746237794657425348531442510653343748619429320946853333939064139767658926412222129169896593403284299467815347010715233538713917386762185252117693743364920655079942891427682720512510653307898902389043998101089294767508603417835669241486849948058659529213472854469957177244136151510450667914422525422186569911434192406707737187647389714890465041284506383976411267494538480570662856750582717352054414744956875092956140093230225395868925510288973557822607641062044268180150227839222387183255115477537490260173468154819020531974020848854477843229546795159599617934488032259747343339554575913219274931660399082987473906678703747975283701900569854813058560692479265086264035549798349638806868663395467543118722877933296941652579533468875491306144541059305195670961188393146319884277608496934344268173643947752260757047090160271532145624404931250083402273564226231541521843042569985732118286825589479511429969978476517518804752390867575662161379785076727910816860697178218633360583460672077985919207083748819332492465791561791806279149987123993091065464282592015749570783535844981282061894532174539245849082839949578020190081708505205741100530870220540606886887201514024441727259856126262050100418676020703331879458286455372440889755104311491427582748351220924170653848267255486962597839121747534173074078915701329329758793561977375107557075856392572162171885819194055702391959436995100382229819893966405817662906201210506879955286158666021492700027128296795969815954564802882679660333560638668324954144966664717480936250362206445943311374128138116411157101501011862409687843933971718033753068418998673283297324369608898322289881497938209387368215601021373805694921321441617644039385546987273527075442350424290611656282656641876917835271728075384527102734395768397121153129277799889309254083002818499741099870538853337540879787514121057981312404327949335493972401938029048232619748289467377020075573446501436656977252127070240813080552773117213709654575058028113691937631600416424921809856212796151974329526061017485446962305669463541721516992904414270147556370087955497519228092930729982518480137706204326464773829675744186755638463514653858258377132719834023366495243970962447807642333538410229762259831087028142405272063717133303770858310821245307833259173252073855895804520089975832817989227662729427283923802236551065115521947232660635307814148049635008028879980686238107878222335727017908349775777413195332557456887421813884278314357701798415299359891128362080947996079012410726790779278381891167283992584771542268006949791366938542491763811735071147550047516595412822596325360103259802568009796864296815907989867961768684277836251982322015132852608005401123036415659166969148551081477858878214454085434272362953728033329177473789085030188482731207973611029332110408179537207268390733629047240623820337032888719474480130409927285196653461924501985048106050108554894679415056132335273598292250100934346334300990142403858572449730693908894564555780672206574994868123350422731854772821691717140075450313487962990683485752972246458456943729408476665401775248315410959213136447203683835941308193618186647306398334332041002481458386521202447416246721837755662640167095349763851049518047975302238931207486567036898771807868114660254756650558328088259031498256695998143005297331693184144635261863318530150042410688419346437374150803224758199183710461505574845094929677151542302278212603989805355290690635093540534097099684268276501310707054066454195444117532985226451075138773649048185122409922576810576283430767123328309443304490052196040249960156258081084683237389016333515370350294221384220261420048348128655130343535904442147174873409828087148026986955979841515712729745503474208983883991522745524598059179525897433630862228310353150606735139419299527442757830062876211471528388205368094482912381316112016009859752224733750097301322519803100791679067739069145943326383542303841015853902560705840944805057784652201685613018245895879581377667476795168842257956643551646394928300373459565554892956999914210017112657996679621589535242607758081112955866949442420203956143297663813347609605585994625243459482395746246017255849387997963302018721928573790370400875457869401202716049961978349182886452152151452987823068984651856844846222521131360920173534961347859350412111251099057286260082997786322400296848538384154712064946956852935523332237120004882494586860467184872371485067075685872083620462433057874671874162948675324623543686762467717716594141328076118674412059030042353493404571203667697849669651103507573694229473364934174079817658813014523771371109873820124193693122460270461508567171590269065159464338782197153063433162602721503557503864896294404193415158792377341318173865500429459071430167814989923616499074184592800241799766802607022478466142827075434755114363353578975281026699168317038152083940406499043710412685964666839703180726856263749953020782787115817355008193491200616442444852375789503207282252860206969339370404382982856186024614797765411435541291987777900350249249401822955608695997755975561296262029630028792802316582162759273023574311325242371426742891127634579297697398458979701537946856654094965968524341122467623344464231082865671827558929868504794918541579969134145523546244368777539446684205519400128560740022331422408068780185847756855352840712976110493846576621211369341711901763956189817066995021549566950967951408629713183390302703036695764588623611243587734066221016158223659735049229915699922342035468544940328949922787181385395237759867861538248613528825279483656568490049625331123468058190124665085181994572039250253040490003010474807506548158185755648158435838730577736001974584105348869353682026336923354129072667776821106788597820009082585601307842613874530237189985542915012774461519620719461078321445267050483188155377609163973793860475067230080057774625075829617481080921212598362605770733790834216733086778910491934075933313781386311397488558508141859793848998524356056258063138868609571398141675565708672250331887309139917321201658151263694765400229195937032743814343662214014398667594843470193909029357332717811379326478055727948580552829289670766138778691667169954385570461619285799502911176761911604930460911549896870839319144072638801078337923564874918144143688470565972755061398242792106277581581117309115321708829271695373733736115335895280257303495443801742478396366838114532009533943737064735249382087211545043289965477425915008248400848250872816993597071528744203003297139129798985943475865227068702263667941645159955993079148224317423675546140849135488553060163124003679831982814318128841405736940951871026617268480161555397240160902695508853392103944152004283368418636196069695353913456006662281752722953417100533561713275586891206348396254419044654431370705497372354589785105736062505042899289473105291844543570403427198183198915798223255511792258655857296368110030976600218945387000556757849092252030715072725419025883063584766406243381340311797329472024283358052793657961650565675822352507547061634475835028918797793267938390812801057103326899262360555597447225073838190280935636727864718103618448897874026737581551103548564259584961148344525182545698145454089693468205589213529409606714772429161147087321761377973330148099105532227754675429191679771081560609459107595322226208010848268727849931778434834737449449755616816533936255002456596809942765173390608003782671138883155637481464444249574163048093331964323757054510146996449145531231629378511500108016044836857011989804979149017747565577849378890406383967575748193675054156222566695809689277086036377419358771030886238197098729596538831147475859908848658562129505934076185864136602851740754928616727835023916001840694721292521774788827455862787795014851029028447632596169403254527259517863216802902420923435706169376965479272478513915483972914970082001968440952430931341667200385519057585884552365422082230179812266945008358916373287991068822757192068253086088263299942973639549395954168341411257743137698392567956301049896639171685494773549962904830787051120498195342906791692239424749960513373699904909379527878898205119196837410716368179167726617445393614307284867793553065768656217732944732415427373843708355952462268249701446364700659165140279548906581909736535371953706419392725442360380369727455781856320416726244752763422717759969951931274240734952564045666173161547701281590723174781275339999944050347986888373205654417409611477321465372792815196824054294922245365497372184098790146840881622239824118050835462961006659379869941469467401860437140422111448460844683805440474102094243764054153254825930651691340428675580431905316476108155311528253806273948778276733394757054641129146185551628650107030740522622545995841930527788912556315521258349885617825739430206721028840965917648493872029028575185329147911837425674785536798585258923155480024667201315061611607465880796396049839808970919723577071067315153325701515393477165575636602806995104999225709647590483947837680861636723891444884023799917225727845363122212098540296912874380575085320100508211364683699899108400843642779965543330189737054481031383458543619380692133219360004037055707055016789419395711780789791720616432526318643501861675373852551082909503177748484266275031618095068847015012163440252890004872985284618900969240894730725538339280885403801891451281992747731640207452042956651713330315650488103728566559437970282761197190023277573425262265296347956867324285075520200557930256885683025067705731597402948221000909363013245439314617295872762381188283099555782138888830949807483611434604310818049671444891148894870105361252523955981517977609918133845523602749445677188244166273638979891740232502584861620354435450775683879680478603611971073808903386887527228281491312408364111489504127700944444887973571068006356936561942405483587978410887124646027538030187661942029211473014441822262055608617992450741310212498515575012742145728249453855134309311026095049478251386118194598831641130615243539547785852994090036421113672704559942381952980619311280507859046390681452392163062889889954190407453947771537686654676817297195430014790753635494317064771784482571266612285663191393519801591067067865247495307585639077466022523126603160645964131981370315976016577641216867048761727963856320397739549481623955204316964823468771970378822079057344349043940379139778952228756952474115804135018431661955910528753515532401155984408362462122332833312068264166318528917934490358924882601272046088680329482630152493884753305054281635020644939801520707053063897383467144906462979776090542962189093147234805396570742182970705618277747356353201759801573789268609234994074205530658360349267355399363988156113604624135726731618878274001134965720428536757231900078258484271567817502275091360269671469226802428923064871419083625934661718351161688292654749716723672422989945847414804467927777386342619700798952133384565435930894414765046514520765759263995916733584232461114957563355758207144710218596757482739637569687695745236003592545693993514287251461401396456252876079928151165985103034333019015013730986250314774521662565893004215088500776786266575973565730293955384874043165310397264839983216980691565602212132056181211040393381669195722349153811012835736432782076132643637536948649693382551869198928792774969172526569381998279297365248010782581470097550411503107355920366002800329519607026982366105056765544124615682782879265233589696726058506741479907750003060615408649065081151845388878286608318442967474173993312141947311189209057885040224170078343281858047047172625518694137089749221947312810099130618955560264224033845541988743523985266609389666130062673043813908558574932215380560397694421549457961994123058458689940173842769930960385850515680165450763963090953779236412344969495886060080814872926587435910425961081954711450611484246422258693732816878416797630991451754286878670101245099012971237401775197576025189353170943910813120698288884829800284863763522899998944419739608489943481509207516570224512690482719536056929487232022750360169875022093383705806975657294099073713594231276608234347750606864832824033731153423526815073201455209276306805097476312254489998358557355426885762868871787611472454232189244685761733957051991217613981955228195699305248366304909294806297577888843293192742614297278939678480709688790549887361833981050346153319207691589688609482740540704077089312603054503244275209072429637067109561669352534993049015429896205849992181614456134668171854380964054303693073776588911071379962424751884337763582056784673997174034857535267253199134550927956477486010173037178363153497191334222363421214194112799904552889736398291199796851733392807240755686675635276608312273016667226795121651720067737604054992904085556818651224549973683636789693860988742124212419626279424720663773150109893831823551562877175863148192226822328772642148234758540563104886703519504767561187054474318138374367607419131074349210482368479531176651857952718903476522272360923677110145841135063745413144257830606672344989281796242442179516968360748482738153609485686639113624194798036990771399623431134955315614573807519362580639452749399845174822912010083006433335708210577261621048476479227604159212759728703170668714301581140285210708683561357326868518287733379741267232570050655401116809383218915332351652370628321360292760836941519173152477515271968216083478994954860070838165056282871813955238774246566687044785699208519774953103235130019560551275115191981844131841657603066341341688519284455072898475105272440591279925369070678665602365765821243536770375966095865181621972244862603616295154622778336607552216587022171658235058137683985461893583685314686548645949791300320762644231656447457975133768647652150068713287818256746702828004087842643522225310545684279951658371980777668039831424155591385302275247697988740089770561886008490275821807108729474339748701690301835818287293410059005023706637938431171962804222696444960199195776864428041633132544725001799177890223969041538671949234678956739314945499968429083012734983508125715772927875043387991830443701402260452636965664723346134019418490124849085047331043102367657312104864371600577365734794025779444794503918847882121207544744921146029479440151100435198044922781217295486144470869426851349318920066558679566263156729127646345792251543370546776948156455659447539290751334777221084046218550505664761710042334836771742555265270130262465783069547895198536573069228135223005659522008347475793501623789334239696384654824226716806298738561680125735270272860141815417991835801303047003773806379459692522721015688371373533021903355568577508795519054932580276271144187019394453946895830623612529596760223114818075537081814927686873812965339946504353521031471449525711132607165886756385627507895946917477817835806262184022179944234726571003451365645706135304889922614770386044723310299749958218793982602602090059029581756452485560428263283582796337135905488641038403748290658463266409130199908121822749346514268425193541913079047931233695502677231390315335083884407745815849450665498457486731091712072041172600668118788415788970782598384031964816972947919716351781412000554622542003974942087602558935114679349743544798694272925015092333359885922156337491561044154141488018725983643690721359943013634395820807126856866415675926023718790260286205879549937190812172223671001865264268218439777487313779674695434644134335134242895708086225236404121529976639361655371235689725198713909638133779008081464662668184279503144564346944710900350334554715999720131956983285570274706053814831127786475313395125922014777536471222476027553364712025620009316655451773848420846313271989927647204989856186446524186527162291424614800790079500402536799397800526713655366926122326767398379284037136051922569752040605250061424219969891157562078252084456822801214439479784614558116168166698579988703424551011829900028051449419238904773884095696586824617871452097361399253676077427366867976332028980435737628088302290053942407140903074571710983163516656124838169217559058849564782210255838595161704909981018405210693341735477799756706337614623685233428896131589257973185449801850883087172108320061574709660412509425863359249603173397839524073797524356868807806757075566725016680627820964130376776389557181295826218908545271240752553797834227086418527871064075450211545852052057696299505837759441026117927807232750401323983524410121596992206999568643699129403180304558843100620321209118251889950490008100636374903742683822132011889532883632789221681649588793756406487844147362315872876900950893334470003658036559230720625881508293276170406222810158233772369066436637411732673506602063845582402384156526803024145046456056729752746325407203136428557804278672536011701602009910895277012479900495572331184488278206724907149049292232480334074059223660971091733140788885562527749080292994092199047023167060714642203847616634397204448738048064628356344164075365299828921880938387614494066293839859452940372370271646607900390454372126191978280636035014616102577174751822834785313299967763565405337759629720776853499101763685127802863959522187069433245073570817533234997526931960356184060384484095977899046382577586025242308948462520657300364641776906640864400042357234573370867842035270425123795698539733948849395718029707962024392034026346347570120840827951146965179785088505765400788677833211962222667682200963635830683996184515563307586166299150239401934044874917378372725448234102037773362459976853776167291117172909357302322512694325623511107495566050452109952602604748366685228569515811210446178283943270988148117098420879633129155477750209394510339167388188471567446094365282031051813743136562989256294620012436790574327910106926192190684289732635662704109480300005065252052704276681640498223596171786925527942180074129025323191326655990303749676283756266978238458996458220293050192216977611509238799555724415322784826449678977231952303540952830504550983195462023876685581016156187253439586973845254361918756357743008889057638197275827125783132205793772800947472377260264951836369613601717216499135187192905698713542104233261903081802527430559328410581598710781336571182857574090217547652005398923736874014998073095883820918014498252230204839982677576696966628500442619490248906395435905893764157445757165976082654450700153630807769845287249071437167577553507641650662041440220407386273433504950899164092067490988293557320890514115795785303056180496320272033063943775404515569299495460001266519068017239022972944308282144776668119839939766386207743344561295205304070186570263997756253197950397525935011173618265332741581132081891141757141631262355800263471329159025722332371444330634015922490819675293067039529163632944398983591182574111330716908676340761695052174556563515255136044239445947945569629250080990033997474723814985434700845937837996721266403149193804105310975076464867501687243430042632616668151854698570910274727437740527930905426050165551287043803284979619992886559326073232489760104142579702727206097911028921888452125435638747602704186627059731038879217282777465376292486197637346171904602530345230766242841315732542367073328010327188043170970785152332654645874980972139714005382677612029579124542704795380438707588832330888684234749132774220497765754417937868940914185455853522667823392740034269302997902727310065405304667153404919480555618675971825359647500904241410690401478836068974218295019836320245892301124943972221494880677676447586828537856873257038181309451316358242670141278596696152436843124328051385644921566896040518825431411368069171999589399428236026216340435895257620110473702311850655775971792731428357797974615372539020758100131159669255367586012739566679573267344096572078580331867075994193149576068613062926156031323904515475804744914171575948116165163785547030982060089398431256986647138463731880862316707061449297273612671210143624687709578149590025197289747466274629566866538707329452647414858229324095727237220057851930633626194055812930911825212758312092330014912020797092729028454818758871073147840086059828453217787630255287027636631606717546425194838225456663690224058955212530455907965882921711797266961176107904994891202157078039187590662542743252706303825969820185682306769115907258081409087986818795821587475540114583909298709408290724276187748472112370812332101808917997302885654595763979977208445761361993639122877745026619898729243699270929685354761312232967061128492790896143825332587076579925185465982593214957931525018371638894687474088211748304695152181788726735349499012872130414345824109946876646020250734051497861436935167770010171196415492347919410228794732958577888042446695965609915246704271435657267005410067673886690074844691106649537374089413299044481413203002601803951733996674511251555656806730437633078052083162236328688952938706485272714926541765080877182558841985511015077773078084961665850348464011681574381003019894988680052487859666302132780759618345717259984898338337454690118949204933688288717984588911690282217066158644670704137644165149845446168541368426013164380046964459049098271718558112578353657725374822194792075342738692566221724036013797183158385814238136482405471542190075644080922057228490180126872173226682659547275356508036678761770415008085810556495003101881725221095860912377745486072707647678471027992632314393835904115770004152842485945511218851233084933829588235693367137020496643423981847050850315286062023510489325694287836714989502979399095679767746651506233878330600602070939903048936130826098110704339713995457219044446300527331645870454545843801357302724425671514890488097893078918722551417086878094091802202491224618958925509852584566335055698869295702701117026257887211069471850289421241868540009664100981611894535520715289335767335676182499949006416414348387038941792495855321056614380514218657759328425693580319638897933242623182430460133161041122787074542746380281234024656535148412468643268085927350672150927514875771356115954960509511852331803260877267520165981803309518323728748014826379722937104230584213725132782353714621050677657508352783694639697937227244638754438135407630726723347007581727266325391442306323939970422479993034286175027825527493473955613777888283658698078571487654918702475548756518001847855211967642545129864566508879569594810217530415974240417088126731739312458698359545828578189330239388438409999477051603559733501626342771806320146910175917356548379675989863161359517289006834315268896579310873175056966068920289013237522521983285027911556499984168769067002388587041635280130993300607310469921294577121447077123793026962432427708397313596776789627853351839828411346617006796226485108853718006193975691895079274701893256537331980264925218297615996226045629278653949748511049357333842453137148848787994592971079574562326150159384922197632598449335841398061001484749582284677715299737983796128071378536654295068468557911908586857105264837375550541926793398823149500389113593215152883649685064957564457476213225689029899934626960446538300801467982995843247104965176801910457100670343363967736375238200872907342564340791493380969339606827789601647334960052687997899641170977460856289088080726087757658886339717682835688770556287088065021713677791345503622269452358730207241053294271005841461503596636337966882920752489359846786354808635124023973666822095809916028429708682949401256197497206844434268135964840823077726509291017999024208527079294205609104316211931487479141585029617227911991977940911894960760430356734821148723593694101675936868752949423497192630843883999260768768064666677088017849399853165596838150309798590647323080991947090438559248834922133525802013591210617671448897190180660239373864784067102214999643067083797732667048686654284698713984830425880989577311547926614723309298335718839943028330977684354997904548222692212554157260651772260945669708236266735905410027630801962919420975111063849594972018712249409256634824136475098152055968074397041601338529245408206341567094735395095146454232979549738898529565345675794497186802943481784936519096411597419484107915264852376568624636532621139782371807890718531784481229999637308604250577832850238628013424072420070605061319188086880728149432977408660358465477418800029471355767678233485538141665785291178552190533987831724802964579743341514917693319756011601699695562399295084467033138563366315394848606029949773100122635346433206669334280007955176134030959887434468375192603218738266558986942458418271969978314998382759608673972049656498040635382934119346222753159113338725049206246675580586975276795288455940757212437627515419634286495453782841350166697659078904357878442934196047604852807109099890039178737217194978760107616271012500319854328911605968898590084699099534181874036776730192762665508278465649459776930461484101532315009988178342530500666316968991442919146968297780775797468709918288691311813976901266893151056589580682849586414289908669955938236373597576712915598508782119717688238856015638388127658880875345609398276625254454155615258981582907666106746085359480553906754320122880809858228811643373432180966248297137240608536412037508938737330946652089251641034293838606985239463158342325534769981998628419933774923068265946130983156022285432478702707869050332585693282048033759229744367055434498132527478909603406894023376360880272947342112489291216259900933789300711589034400009126938939861317517479599936562564879285109849400419727873115988060187535834532003322361848177612589456115367985924225467709219369996281940071191518241614759351551155442777273975120833321397337869323975992748264177697838688301616732821026303623284279560523674712337004725409731048318592781390922173520928457131127706427194740912341845721838007754049723379508638060004557486040033253764076992624768691258439203355367590472705878085517933982623866223392388212297041963797678971905490285630026253515092717607846929445632147848347815091081775211903149409807216321278674533555139251393922540771438240976267918477870916902178476736691597843402815354162226078000786560076134443525639031074257749321721386345394587557352199008222326837761017897061289072989628550377502940180137094957297815667520121259659614402976754776110076741310275665031739108408358519818630133200964858787886496691742812214824061779620258221353883815027182871728055274206188476421975760946119987743280656166282351099266939219155864193047183817985665028834175612125974243850909947628282986416260864122069220511146331252886125622992668369678668828868727722652669439489496074185125976723042483765956855345825599727739741146191741680073057711104247570637773833759044194389204334393391172792869092921748868557736606130688523128386526885241797541739562386155648280945933745240259007903687052129381675057792882423992307641800190495644186005396588609752679112548412251476917712200415619303653562673282279916085289111024952451038910513869832324980057823405333622508744931556923825751413885341798173763990176784697256399665806939876148346316582876079398338772090494190797293691513653734544454575462554940977075368658416888258113336685347831091335855575173698729301262775138683599478942086405466314620638115534398263352787852258257263765236673476506202569077493206187054221193682977593324756650694700393919931976170465948852149313093607526129041723968147352179317381812514683232003921301672937615304375667742670520163163176320815141366863582263744058176797320917330567888715803937912272983788492269978109027899665170852106525853576557090280727005861811501952689752210039278953012103332311162873458541601408426686262545491390168574107927541561272867685852565596428813326324974502483956458219616266536489764219404465474792703765508749670565807840375680177489003062469710706516555785844650893486843638520548570207481664778200867698408799317124422857280808265760054847726392527395882931546789194874964192006842584946241985765882240045513731278268990236466629684954499996425620190056894307342095894508542693749090346902874286160067325941648482058403745174675610865885336058452397476859783323276091505238117909482820550768771701006172324219699122236409671270053021820057609417971127814102396230414264505337212757369465613451211933196964053460811659171134979177578193428934632651511808878114766026371307290278960282290819924742307195089696563840264828504064987303569962224812571077951628018749463895168138052427407780749530570594884339326176905095518667777941251507032313524321404098137253238204343086732543166326694313395877499158620521747870326449578243580528535868037976961511829718843591000091701638401473005879046752634896800981596766357282168183602518583504837255080122462754511004633750663955527312303805564566114420556083070625080431126049199309679264115938158422412586694498969195832934942936066699931580836055511078837645595683412320303687766351064002903589734897162576531281227192034711853200136278426226587326668905821618910509072845062365281093723908573391967221961888442989536844401560181728643959615276466006047061052643495932781399158739611675757609732452467600379148192435212045454824241399171825294971517870622893053547630718422266238048293195558393981635837732418609510681687975095376999885974060908730981011904093118353248653315195557123528950577185733133241548446165679022705516865704488683186029574803560164129757626882091300265143570045153984207407245943993615039091948766738871534606080758663123419152125513754522193604983220602501848867387029803256457391768193330241867337928835842649269381788610042385722843016830515463917485226427861707822794797784672243292290137690174748140010777464126927267277621242334173419273343376234748815985808094401997147854876851271194013618695017682116119286896296157403330975388071959156837415634307537615722755774650524693034890187288149294861246285836203087574910551429699675933116338425235316337963499041431499117101679758718501848299693524147241840828243138912974983963186136625265131727431424948554422948204960590973904677953440682817938308442727260647155812444439925833472328489488070839602328910679703581678553391671420102436552627009879575767461778508992448505156969689533998549116092747958134729134264788009084892035710448447944389961454910138253298199216263497133452290624955796881646311164659508861825550086272705888611705449318366402638813207557499298777149319892458484244998209494304872151360857804128683267855512269987430662622439282414942721666536712081575752462093697234927549000103403291761043002798095020947257162776834879989615597265648391239653633400903754635200552475405408061090244170339222994522883287889166081513192690462337228789966000100665455529335971533634412175714539204040814216450481434276175776135858147466163938495123751070281237537468478646764204532232655982709368961791761015183541505549767621894710449570435726753527770720022256124141656485033712678239405635550586073778095680635008266444099418352015719948335166506919901638374360566144547573564616260464973583347164399458717122542176161067418600270464328096288701979735771513741513116618767481511466052328323294293323126842391467610990442254093098659546992038270155045023214586761046551452859749901410269922505915132088744011378291109934237315400292505021982729746654012214651143666991406574888133084696165284938671236696691897834968345681731964287248581003614567389250825961000114835320782350795979706911888872116523755761328779844612089088804960173394613053829565567807434200402196545133992420367981844186036615365220613745112900651447071482130338969503000863829615011079881919242789413160157864241608717356615284696779390215181062706381465229969854923355817198474805988769463506481070660891755931138948982778496885119230575215140023251388902211925749644412990111427121121194092811655779647045741090344775775611064649800692240123164265455512033592761355140405246654144394687831957567653879627345836413573964212705874213000318559723911680832661489847358076942954447520437134587922526941257649044304873112595417818626074883029839199682982592887695633399233541185690855731875541455170564806845542293386925544596112098699795865938908164381499276424606268405407227715533527167419973812742250308290527007190356207280753353887773000210716687407479003079235818025955346226080553850271177071688023802252514709335588136424137017865664759429131579620434000351016277687231504272812331710043577893193398955127073246187560050133124537745972656989053470798969636058700467161352648076625992052699808243329409901249596077224181219505515196651594350996247902066135123288623502630534347981049037122171147922409132267945167368463783764171287145577481072833199190147054574505181759407246936309016191670384290310144114449071227438530322471718547674362176359375218466095828413221684461762361809548501096710563529089623496006976032030259712793876732180225012569709642184303681061646679348581254370405178276319639700202710114594015346487185674948411788563501974040442865371838458591754859274566579055362022643888161302194368656982765949841104260475948392916837336690834046806423585942357174280142170184128428792203628558889466979141245376099450892049241248008840668844430189597741906945574558429496868219894738663450871883832913509439455880114509191189213545086065321631934013585891837095170348903263712381347048652191294388916727968057426832700006763658240420262796840432123626880183814656178204711566048456841101636450182072060840217019234454693662577651933951700598807135223755525443458191882760022279320962427144801279417768431540740247527037782311632450409332933572273297380373323300740799948232471474223669027121818787563979932233602931570171528222583759677490800598031782741616950833576938466085554454009162392507182245048236806804094140249233828312176179932864487705620630369986955853045469209613127238043655075327572217785567105942410494461875289197775768955259993531620375223695430913680569452652705420473116491022573359216301434826841428208155380847205303152651991411283276185325932696656258232546097101584399716479799587629475663954452939863867846745687340985086715050284508715519603629468776234309825754955208644737096292883955645450872836745740960146433894372126580864407052432300600712989752608007759971815295552681385498532052400248053857166010774237192620506758862318345662016654616320476243406429760861231110276595978848167387237357606066285198574268856051881528439805780958472475051169414663809559633313561679793573420914701608245235135788102934647236412829195729074785207090977936899539398834597406501629450103863594479113407859590465893784928616503632064666863303761472877661305751234858266603367941207400302117604946343161889866479555741202510551490310243569328071523985254877089368356395634070614214704792532679474999731061705956867379674811009169883642349086195395008154175310404602190696609489546704064198772673495196177231277118652678913298418826751454506002467257669407265847083122545375911318719693731440335930949015053287540052339130043682499768733817419535899016284077302180140589826761200618054100907536994495606209877162006784633399618840886509857219365343144100429909655581558745538012917185742864436065659618165280706026149310889961314119071379627664417206094327796481139216070324807770489311309836638300718097802483315158049045392840624872831182444371288458073707263678349436373850901650078779512541354151692355586744318063708369218500632149125549059136919970058471544820193097108070280081839330532369623264677953647219897774891862500179999716854344098351254138811655876939193260483794187718072721711111903188273687521684282572642880357561169853030318583282979705564962455462603201415055140196438656667585972384169730827909297718448603171730218319540957301636065893048094268898576958027496822892807263795826543354811835210138251481976917295262216647093974293589802347802440771140762810502353882329255400727259735462746111549258987936336340579312512861871270111191674229074496664298369659874877592733502080662068983897079504256788795195187412761486325382402557224229808015991909459249998823863895537158656004498874283916916985742276084767396216783641085337484960532657497326398645228763159795294644268996873493837693707950144622503558161886913817950526508782523644266885875668693815178201279261311136735285314605226240273405922186904673682837996489739010199909857035623650189544317631891227590685804963600876284796734371923654500193424750348982323437723256044074848590254268970809554062842920322046243013642178192409397732104480068563706587015418515462172865278472276587185230055712893470670931980429397866179339796092169721402226219823009106869859895042688404834034693097787329866340948925971248083552050117734020193114136679427176073499174848922873739732316501394456704092972387190986322455746252844794630825419433671613913468986251792482709553023584558551076381027878238854785539558721595924208932766493347943425127006551056887727018670507477685880039684613496394640008430621952774779620056619192287143611625211441027986175303870004690184417369482922507354684910497911540533854366495204209915651648310952985263728961110268802035159546076674213907104209083797572761257941022657030775308463044684068217748002538303743212945676798576936407755804180569250464846953253314767832741170727938817414641010956452362682736998313918039417184242013432936470238449482254473471581451120581032714726949618646112786044120822277141772398300263340664082290121048127645324315672074177998093341516170047999992996237209362452468688185715017165082801158956910937684551622343741413511293623457425690809494372319342442454249507659413057650580496118751752634096193132253063790338450851249480134357621460987683803696459498133332842790884482986174374681281942326913789302610789726302241427744127122794317292639104974283779039060632020561463752410654539011361408454846953702970665757990416549489657722370626824338604109472141847709374288414240645464836038354153172049791339532685160289338672896599468382198142599018868183497833936903622851702187701240807156997279337940115820065805035436271944916195706785239325462483822315105463133487961374062104881316090687318040602329647188971556893062850281963232416375326518553707175132912605503557504130793923460061465439517293695236859223427630580985486226510160107234899030204474215399122342875295746007835977303673423525915310261040949209301123898929223222317826807907304743071223372991625791338581983060104188665753668538576257262795429085579143467135810275072793969816637028462796238293648189003326383632673002848984282402689797631682870814442892271316150729243876563767059465144889963547898679194333654238135199435174645956048282925964683737581633335589901142811706958115623561236094128457490519348028820689497500469453619485107955799497604646609497737740593202708473180573072584599113254458077256928228757275282487570562802571715656065333266988056648943715594320559187032598330642085210887141736837008578791721896144319399495361269480797634775096313569904377290493142199476669469552556760144852630367174368983834591389725306108526874838299454121747438618186525382613504984908779417682684793948237418774783521693754174599683397737002027611588862590738934991601772611148775826853114550482539724164613540099823071828349259594350410702189036303394310159562430090081454231414701700148645244940308467064126664844416603883001755565187929707303433164884063801622086547718216224650196909441331934264453438205525159656044586042407093519277847235446173118373976185986460416800995035996773236571735505179082675922363841061787633992792400463919747920258849909187605362604420707736354138029901812385767120234666412850071359775756926458452297134031914412114569674175965288427079745811815808380721551226743882651605071788812634217246341540711777576776694619728846030925667181774064659081243754671912133783345733965500262383199396045919152392337815112878970624695367944908238013879248401493348353531944777039307778045929883330003647063955640210664948263800027062764031991135390808106692032991918897198903547859862802878263785727654316262409265331161258291444443588295282894891965146749874357294219422479530029250219133253168179518519417465677297561865476101976582245924756752127880314340178919672211371222617109609285997105465552637203453228055182244712983515272853800408555310180300927078998954458064421147262612753472075195410899171102660160334391315021531865387959528417695170053570490645247830247338987696245687882628420240586483658922659200168664350905233651165222869435789956344422508156511532690741680516802762337177712289420648479893606184784601004609340798988471154820134115114198191113302298670653190512382553090899274443708347302938557507828872034227334970959536146863569896638423010289847643253316679915465755150912950229287025504268415719022895724128728049390698687537333722332406981995473683962271583654595902574467213128551063484549806326382258705031652506215369392248957984907861495803726644442290594077991878840741712011357314771550958168613209152697149742089824117813120022680542878945357416179301447293957770131859678214933104836900600063112530454931654988554759681416064925350866871799763836962382661631337301743022959130693535323292032037392387342124347239368986290212762253090457115387723644735546742603453074778517314344323227241710102062748387411739271684694189385069423391975947565547992165338265262957425343286213053692860315744224214635598768613120274159421552819367960757165441662400937240276778035501740935808781500749632714926800910887943144361932502175957302330000155796084815912083829236686437216798595672005402271710021380996664924469940780238927362872847573405966213023472800823957792431909172998305399893274378697926429338260531737958467864231193936738010178062048900451630328424039473173529706360921324347421732871581595966224432339413162052554078344848563548316420967712377567961487466790312072411586208380499091628388672636152332062790139370412333925412459653279521432878606881646056938632841003601122300128182918075442835593299055266214337963034487354568444511912937841645957389084662378320353352225744491434597910623041348007201177593766706370969032088551832241614573813625789095427459874539934669434164949261081325286706856061095978086629482306884641653870629855528757882898748929298738018186811961627218265826927832927404116473206312727230590339540584097104143484305329377965411395192235147619775432784933168982574602974430239479872526677089442856280546163954375382438272181026890191828552969555696255616896201894311801208713507898016499123317078406943814939782137372974595858219672879401438780544388587274999818322784522760153068891939891655172818108657185478127327131837486589412339708217291872344129597677689946387029163981206124133443023155855559127463137870309456050642341888316503580721699582619212161320953978852072648682805093479534144741548893168821710327103217013326016186671029761103914359861104642267222265251150071370764875907874305703830034308286326475733699170285303921932560735292914801889401582903823947449436525857351139867206770125049112343925171354210143489746933269526731709077014099796339078852000749577996829629597787271777908438623944511256808994199613311943689485143842242639914266685076908904229567200447511971130075330551004335662677082854955368481246925219536050786787861404301168224407359129408338255022457031151787709532331656926970329570504396113159722571637797370601474323959602457532492718028227917135427391422139242972492891099478589709574616426213204699859466973122849504644185391363752611169842524589372173768295614107118247723955273735662863737820878122422292400826511636703493969348550396713449056886038361217012845163422369919014589038464376582212044102686762629804976563854557760805235351067479747061407105550893327208397446293912845711027986997846867753222479052524265576570412395278174173599871799781660175065790954361784030999374467581829211811585633180637018456879668776950001218309058353438586106589858080960657306208785248652581961769779214240567232384398233932562148726662343779680295603561620612687317451539057713966478271018715764624960822704989632665729416843694288434489732270514658103266304352794863766968794289409088967770108381881793188282340767452563108051573805743962681195577083893494568957358624037302918145751238176212688386798767351874420878380331074778268849226447324309513539052573002686466227333104841323189531369827591339604204162247138157832459174793289990647889503169789772427414602272703357749246303859633150538012209382457407294902017088089431322985513557421649725489217913116112994246992015324973338097715833995553539036492848910798527335428818372692888590227046563268081296420006879002055708357023178781805576319556617988924034374483370972685618345776378361399739879680457754332811894739546796833564891913573932093257461753430211136074114151697155244702470798604852155231198847037369384830404141712057000799086938884168472697786617089124223919688188114040796321814907518556328746471198805070977853030394364535454254301425760893259329581746536613020936181888337840189124885048620910383411730422135927037550885482941013447057721152633669854561393397628478874177763095779880303877792175200149511301678049988186098064085433878053064368345881189636896340193649808659553792262931012213297724752039869836913607750318521936445343392666810217337676284772526111547744816815385392121836093841289825587548727775714019372553296867555077494498372326022954022574304851305083950305511477350244453613771104976612331907223151242460640873841485090861181666085909068988901681353365755685825822125193960845266737655103185770394333012258244677127056383420745006602451281377228928103126213249089675390215797107242854383645150956791053524726863348386117357454017856807203553303106883368901878317243387858573313354137260129234690986645291549004865863155178993311790059267287058660319875343090564842552585207908339756107282584993361033243436079251234050381503367833099167705975396576194192688330296697956721240084347205295423050363657033965145843406042748110098630532144174293007614431884390901177390411365532303285664083831188538551870585128787297464865548716892879453180903783164264040862072569034913568077239185672265362747065909191546123400692968425930291742998987418875267915644223340810548837993003432702619794638086806239338093159206852536410818612161035265278533314864261612402984716643574873164645603551739166893686450481451042902941310352336429100790185196340808609777393024544457780044549131309003077669533200497121044373481435753288519317128917168357490014700764800473085887335467736554512988454100102485884894823598802301656775321700564715676127101051440454620561874964972662389784032386166319851937179472210402834750579950164509136484917146862606238340923986285886808560756553135350798209868483493953265089955410895626624064474176862750288924673987336926752236625568816593531787879870052953137130266766866630981434620731889826279986714366544614422770076670029070737465325100808780210248837379413034682740258696608014636727686267399337279955254005723967585089556317870063631711188045052378518967101024567806601720544178556263989057926612449043642138338049496961115160133932061227101554091231270793408718638943413318289020742134153124920654138418978822340153107328422182365646653821622820336606330848787004825501929860495442102294483462602828070462233065682042797514246416661574811052221400767303397152440218738182169422803268824676238962958629132016865916449876299304512214397513042668358380952450409749143645965259037701478496764286433877822017006724326408963045265474226543279257002775816266373552969996044633269221892359849120070685314734950671585705478647540565913313173355330857419651159824202388846698975981634743997046333242812215745568141330950205308397017664306907082803757781748653432082621399437993630339157978814806464429554878607927615974977326443930340597005753060670727261092011302055441511428136933689643561851556659874990086872261641478082907053787605884496369975233801657692446321515455927389922909510983205520641116792496471386433092432053853534013386473776985455951508149574791357744212757357838709424087593607859117500341305653337265512303940413109222091266656732931840915394004017246131714738932996746302567583685227203252504536914006016603342093261183860865010448917900837800467381584845180704366070785544195160494043463294112043318822080357493304309775724709437665769311226717073439280605250086516032396063537499294931352235866031103734694154627833790472849003815283072984731729393429287699718251476340318273053371197986683025961988659625644386245431801043205426101720457768180133284388433455745708613751474935328834365530106550220655207810383372208076110127499074813155217123270873738806530963949844257397622384724660905694366746473998796919515494837240535671028103351267163705442706103761501131049885142816009042482183024763895529139488201081215343192394173193576938953464127137324463893387872149241395710091983034949969489990829608640252871342296535459309600867470832599634621136077986576246161742423278071439081214798474203188147564113136656683192611255856957754138902400661730057170043601233300772044387284471827795026942512050738076900224273160095974479844706439619400903874213901706584300497366331995044011961318167639096093359541320355270817158139112566354213983265091800745737907820287005829707106780537928658242963711864590316466382831979612873844899366616294574206516745868093495432211698247677252406977254079577586010654085026435929893886906611699003728227575432768105600622580643158550127026938140462553681673397577063218617503972799815740793469480962934786926830052310829790462002081451552226799059937117051710167171522130177747774781700377119306599737822324533032431012521848652005150688855903485745469470113026947731702513546610890416423682167738385751675358230760846168234302836601524937533538140555707970411983023294426997153024823397903007606070032659105745514527357737676019725608368307659096640157047397192357173913362431884315094757641697784892616448420532268385477676139242267340015485196276860893401749963610123824336363244553132222585077193175671861910854696526995805218043632655059775422464213743531744301072696250546987900431084870079423328536527616318912446947550912543838969796889605170047089303754131830781616220254914664655495043353908099847449516625234899374554095573024445562141902500848157363386323202991531389277479401134240486222045507179447891525672713285110372691669913433654459066690641174103039138093173203033902372922455092661191515331245594123864569173244543597244369001902133985471356591209491356817723726928721381601482452535049391873072839775259227515758195358499162163387224290093108508561642788450528867961198380277094016862097599018178038576626825630834329849190170109103899768470757410513285055335523285142358334607165802008985577539363278475516204023402646465094099526535087897827812033531476643074236054197506536426507455285512244647475039007978241687134617471161301083620459828488387852297767970103325081376709447708508365899476013134383183431690902054702403643323856133293678481246790821082976563315705704548313583143728402784293677552795326593037172569518629090657494107778183422273438368621081339681757167093349215552612425309200126296559790747008312245459136150308991471802345224541657045068282769179901126180180715228656357843034647224775038594371619689341949683178271784387615768106394786625185315674193236290055754039042952751802345638930794687566078795639061589885568804625058758424051003990146113937583110041267113452554131955383916102479395852679663249914877352290570991232428868624723449871623072931683447312704809950597324441634013062237518578680904599546929098440780589623668076863768846207596693535680864431241282101971532415945641880149774208735528163357635759905809236858134535306652962686615612289609248988191405346881706726798857550558119008274638803822335357051123733309077095569650522455667610788103315295019700440554891275419661196800354317359543017282317839428069562471163224569614327379858904767918137880373196461213935831729922673393738641334707166547925448332837045807692656232291465320177285990030581179796699764627448333864460779233126873862789564673474062137038156521417938493382801148336121182663192072474079226112037530949326478536351126706433004523550026081856525223081330341323019362876904210795112076109317598442592143787723544575614339925625198118194298161877206089968800386912026080701290665326480124812748849642818408521832210268838225403482411306842135063429489456609744343001270542798352457737400438958835741054828992368992526095697971359642382469650190970481325812694487579632144237856609978656920045585112338109706660494002878324430591197149727960049271938204899667709099097186180981006881423726862812306501939443561584161935846922937069598955875558941647886822685290029241139629068419950067086347741237824568176977611815903825454812821059235640626566324949183452657345824982085666633022708909270226905833926381282386548476520925018322909168962850950147612110994503043749616517871072564074293202634249733906600843978131004926644546930419775932009912521722786689594347286226878237367887704116518641973870361727655027354198875777126657114311028304175839399749712837641538610707717374684746166794657188424855350303440849610827420278145972893753937173772453168494883411013876575228647676390555735722027168703878532694819915892796158414994772704622141656637669563365334261061895282857320256491844071242255366106885908432039090571739522929168890994437225071912152276523997398800975822028355348276959162349541998651179935474994139576476913908627032109099353525253232473176949030385011369568789901854553670473423417162567880853912278308604663775962346051966876379317344222529311101577142467481373351759521008819335719775229742009489261606988975670642138038945739457443370700894831002054925555648859668275175067955158242917805148701804869341857369188466606475653233246909841961091655426099930520432172696188940043980308785743432149000328030280974497595756910865360916964092653428673839303635192605740278373641617070958729780067565273303861362774790325538799621155239984698016450188444178555288923297079152832588005748156747529909613964914916030809582111237348472154024257631807845316258304602023847791777287173947252357150115813062076698255295054868431997431336667536888684766969916153027755423537117579156614022746144619583022242024934796516096246413461003748988155151606478605627331851522892048531108231024342070985042501774661056625190939114722408893148556208673808380339279778304383861823108327299446179394609778954210056676257967598062241357055685459783697874177819373693157910118898828248802061366351464647260177351723710389831588597194580318284541155428301334082177157008204326585279868894304018303103931218708663816022557472591364500557383214462888993390293801753989792876266468338118169355962758161589090832151817215328511253426476030355257903516625003310145973564583713483962556754419134865420617306455409894216218492627488305817072041251952092386666641207410319471957608473659720606039171097610346997138177516743729613854766722633140016544004952353284720853707622974496297939786536212217804750321352471196596821444678232099064896703389753538307357779747801041353098923852531572584759465371485777718329501879209852678660912953761282270882570484826863123804929862968327816274590699633976735405862468086453268789615661639106415969165574284918188703928679199820126476968019648269799208812250329677459947635554669081805313412360460795262554357934530760647980474704351529462846849497976748098837652504739241922801394082718102587887491050418482291930700797189443549421676861096199518971730783266441719775194636924957524138929693702574643130830603426545700887753652124430500303038945016555445409979537361133042594457011029108914590141652646260414840742428370323855883629817085832462129319777336789311964963323386445695234779828505294989896053918043472700308662942833335420970455988458033080689231533152222479682186640516236998066890235538376852444571864627225889240360045778459197481118118137494554386365952133054777213781440721974365519536651608866359133746977592705714285421472854981361137703699522200679948496070137275561693468266260847533987060546700161682745392040614667390700698519784809804255064320768993950851575316298210764646065244426780742798632376535262899690197719591521734160520961081345137998787870506610790769849247392325039415564640029436225825168288825896786017001310509770444353263594154022854066041763342401050053450140530874987604161584291679143531522227733757655798742130775379531095136171670245263134998286451551491527711992912365849028966036379817112595145376152321814889863765950631067747743104570994171128197366439747188724395432538010831824402200968686605867852854336827801382248000187065852331184266952781225953520088935932127052049765190279373996523295013215149505565588097280009535140156863108837957151997095029111297062784441867296777237792769908727661249700469551198024324566433268972755539341755828902512160221341530171793082379588217433389192100680806410890893673477905004614608225868151106124601001099804195307762272626822822790499414632748153145721248403174889069628354946136516436253143488806911278853179097959029974431442532320962908381549158271632221801346626063438479451944968324348211471485860148084656784276922518437799248378182114148340915181520811090250944155085238378607595183176197444240760325237242983951283772282318248873325049429396671328034906811135059326177749687830866426647781915346370284844970818421418975183114224468366060436187957918296617733114429359415246734711204860693883733482372613484066253845669157644963374811572620277962903310926171587737193474737440228379015199356272432076374861202939512388258818497434201725390736704155910499517164804410787710490197449949712595646027015264705563492641623597177703455755600512888316293961499879909399085021022308591016450542238732105202399558046437681569425158977776315869358238980667427866026091655125589727480891757810582443299999387197863922754526149433266640538259594953661491685876625056441612298688627336060037669057984353835565279384925602126708758694555361944346626713260544970134573403628602596325674823986588583611346110014633982530721222193121695260827229656004876789470675535697310633939099712205428850763704233087701078813506061120484084509513705586094805107164331394677060980997168994187449965998683997677166091567021417845525391842765515300447696465083579170096300164346380386521759933548615009841711010987709144671153434757547495653036775300908595269730980278795529109193010806826125998542663982469053228064107223958978765097422871142158304071106020236392543337432897482990434616461376822387124845742734261503980721096831896239609858318409668619442097287249655889950437187110622802069886216538025225274165713062830508039709039630630354381357375104566983038717250962984024360470882621452835999320966885492777244358755624416954098658170403302043589598328162034930464578226758473740984547412061584533321807921274772443178757426720721348917629719364030000289024422240749163936707611367828760456069182822875915571584402423150224540470413902184268482090305809291010843701374789515280007319383171870251568899745949354998634369309320633401219418526824585792392195346636597780233061386312514479062112933709946750382946732846380499781872508572204356722458264144802521562045243363500277296821074959179384642624030172282808321129570128991983536875198532077835398859152925970267566070852791714422394295780841388922657417327981615730045785594369748699701300061332616009198391896048212702096131813130389066560644653073164660627495138709400975238276086133326399954112381621392674998823811458823079528247757283214748528276586241951080230090229295368952522839298165762797671449120140258275715906539268495560189210986166875739806580214544647929074071614434064191086118565265563377241440298188153801743847361152762730409251610721924572047369294188221989215863865224884105970070248781959403198664483064410899455626656113614687136514892180943745773458163244803719729095796711580636986570444495062054345814523157568812581548365463229330715317230931997365794797907280772258799359602951420236299880237717994053690881469063872566808353300648244407503016431078380148842222115453715861689805164789998879663638160258551374456694542966092970670497315487443105821081248607437385400384785413310393754713194831886810815917765507073324718170975206368998743173154750381156474981840389979964934002381301249753246907496302214921268055067388471921655139715008940300316155109101044572767377139928504700739553141776068689600431886254345726033078048090903992942881821207922484899706829797923759023708866425328128909509911376768373887602597299438564491675078291772795332127068746197237414563671685675673846915920538954442091608051120977863373650795506566700564283758865398694201883653857250468979739179804525620442676889799944564679813262803695679898597241334298361859000776199755908200245374062590050853440494391314182608487904532813070429305653156473371736064763391108733152277435747494329528584415195444317940417292918664704748876342938924340246244754114914626272199080015211017317803567639604110506408459930342766211182506856639252975775383034783129137401899699334736929465354357191377844127195760258857657753446578445233153382681539186952030804327255875424003558613143258097348447713096376847156933474408359886995311751186745408590330558747004345643840101599236260253212241934755924259426758685950968465871798395796619905088272958429888398309029818039961384005012340939737276941582189069742016058174549506160737696041260430464196402046266826617062983238748803448851101088149326942213229082694978119364052709748510823812304730758062930116325010393480126728224338864842476715924150767779757114401846311829039154457794898273507402189510259577327446794234003983887350799427069235208887504892206524464315929453684664551647254895960917733652376815680542691564510265454737705912393512547663764453081612782557996378065366314897342100021475449808675890420976637414087858871904399087348682613575604860953683613984902446503816744994916799014799708692531087000974374751749262957317525287189851294523261795420155672443095901587991868719110438914216676929431733331342884897268892887810220831540655239019923832296411023228022696909506391672450870949242576750165005774921808943009260259430184131915824603044013505575126879763868084654617652259747589786760872923167105702333591273295898419450053407511810534990111706117420844924874524818900963234526784056907635691162988984540010428455321303026225560060746796704794393490574995986349571154234909219417743576390735208137153304222915799516006166699280592421299870014510312471275786574268117865635621837059379151209427385606582262659675466942542184572533754882204464368987878076748394999744663519153737100143601598582130192555753826999515102377816624126102071606707161937063884848670912818986140975923946400630982030378372899060398278840569566650724812239208241354578674060539550045914756686792613189432615088635406313390667349181624648676639946353760587780152330656205619387412218512255723492655235017358610112091424386863027916290038371457787966462467543769474090932662773045611860676959684528735212763783133746967890788758992467589412103857161115447471818887611152373948028486022285256544810382162138192288821791028475571664771466934743847305627068976639361819534671193925297956802146659135726881509039185073459219110987583979101410096031015021158780227967235059110476213508043021747529275283800871533549562772136270348111133724081967823338225525678542302232621299070275036964403694466905991986797565367460285813489946137276434484006867901611383073092975773394394371122773768122734005316542894591994240512857135837356898668378536199293204228532027620888529494702973821202674299125887922485827367304800761684506392306331210722931762276463916708394962548618734093918640641513698254846527103339434347875157809426560345375484749692088915659365329291368283248558172727940163829539897597305310593518784628477653499181343295599898900539216551143786217287806701040859927279078535729017382254230589457063999044288448408482195702848503498677117280077111439123915057936936325917577691013680978762902565831284459418598479116746680297312799348454631344959697612268255853935523668605332263300518865452001261698677061484831319844869616032098217027684735726441986880724333872206453818562647174864740768816373084356298480282396792482724453991478696949632574165294606327325682292014178312397934101848356375521893995253046580217870698014462556680342532685554446492790080403576768565772364927221626060100981152769073676363053627959531903364120627788011607201455886314668331314992030360448422382912190031802424422409850414296161144486552639824102711346961730892035343440548511288437768788926708326080014824419887966176400376395059890471871648682049156010900707544783462599133606532541648088933949453070990115372454751977153243355644978639356946520496561844356094502631834383276045484559480491124887545765047154480016032026228172234752784662283747357275017348867009983230462554616682221599451491409602867666249020598464224499972159876716796724545421238400418718399513302356769177060346573021168893473820229958172259771062439951151016734720608843387820889069115054435168047844904731831343810371605611171793298960352426756727749618385640376539702086514682866494268373677950654868916717747278508577999935769533664342016429462286833290372162214556183203162009664093112301943959818727463903683577609123487550134139767767895325118335584392947649323663966721006690735292579427397654081044096709337869774189380442554686280981107178811830209885049096384855913432192757799262584319077802911477349925463124013154541508929042531285566679719704006550597902465343163389491847644111717103670718242648136046390984060745319203787612946325564857550343878813801984854896346568644731441157340234136397381856414823671812003752004429777190553344378120295160552358837539310822264631874836435718181019945477452007842447718421661548794603972708918243354594012728850307488566607857787811078320722226175546309099002109636245712290775447327136016544577896955480913804606904149672815685695458595519697045924354629676426578043941639535472874910142938482267376110727776785221928707242413200961302346040801379705364143217836608266304568137635735901112575253968336928648274530247573189716809034295628887750206542025284154451867694625485111274299240617397188855370383059018548725542068491113006925050135868746624611199384474629037938179689256184524798590950854143621199817182960866858554684791132296102115169534730220117810307150703379599409739921187078384452366514099466840856443760060561220243297873762699145060910554306813678991041935225942246250235701133303268051549534895182384590036515342996908587771906787284692572162738496059718427675357125572763908333329653500824600858092944773119508490311465852381272071872543639569693194878352107708681960272305515659300871199970729061365828971120200264546920063082046272093154650690743202492712565580690241967072071697328939476396753759428945388092743638773053451272156692643973893729150977780294291869826125788174041691196825901096696986138842164348177080933364658739384697967079938600903785543166663226341076550214516938731010325178355819838813701876182000117143328976627139488715966095581178081157419469091512157062795318023089875964267484350630655294214307335332194387018861935617169647686611658247102433031383803173777509502137234098779730220417183700223536366236375691446164533643154325360540414760569316128411417092644610499462749376902473675990834513272321133600467248456754527274358902357671635520536278176243128706906031911253978973168353547361925483089138410108733709747624928748591553281911759501016079600876331451874157364269585168448841413915024903114634326563493227862891209075779794977353563512305432778146971731330052078442869499254336245936789797405377346026169284018338995371793285671022717696366257652948518448855900382853898242700903633610524993885685998355293837308127923126748881349355366345751717887614383914318458437675905355597321993403155299495121952384665635176712309446048100400755280757091283888362095618965449791751074139172874130451218280867881888981435029871371987609970181663910404067775385431504265208369519593107062409705351986015316385765652443773918331205292896975065875408919153944924653949602140338905409409634073257122117667533730800911474199198129072802269455363723471858243238846900800607062597361070692769978114614136037359776405313808576027615140657872334635374889735314320702642632583179652307866147426814838063119528968240011398814760084909298221433415340952820971191908806477481478822683604149171505961529329658778799597028978325233114069439579703563053951737030930797362016324815455773830225348697718741354200877025266426563728373422952565164533867723361644157086929309984124751543720890784425152982737536846226062134501466744471306599758625881233866270476580809508664915596324564712497248588551330073797712674993679831021533192128659744528632514516774565590269197447581781884377023639934748770591307472043395019666922345241600768347708516629936755177416498406202438636987648480960809242961923400762669459151537081631153456082352334967444184151095287052062196422671134147998349470815027228923861754754138343415080699369381751601065015170104841255028525121185055163226552874148642281771098701717263723423797529428530683531348144174880727385734826880846526714527355838848352695804670857566320750412290235561119018603672214806544879263267836543874498037880797225545304953671740304470558589076587806790042581113978560463269210019515751841503302249488822886518704916295165365270789546169514054611320156370610564337071682713545593349873692728112408173571410307131419182265822400962539718829385839901664361224195757562968236884623807103190472369340103087112195070854592411530265984587028621639145202449875730436961702090764234670643908274750232548717094774681468602293266775559467177705326884819736670850374328693490575537370827042117141409056101310074917056381733739979282348462747721740770504387266481717098208982909955235220173523783924128745191150284046504189390645485268856988509282773053680280323295328838933241212545777171180511138537013073348037252918869916161193708162198128870030162297523382511849243670504314667375116925608161696564952114519884765454897259748605394394578399742142747090580279468332226970405137669922996965678602717756158287571953121942420656689608193595684700675631490523095841777150422081728018788683478199962380006648715332605545739145689268327784966389227836554229965824871251472706112440660526581978967005985115295390305286863939007020753382171345977148751453389901160158452497443993549043630186124685101033194010969314123959233136513288862272234739498930970112145709072825027420722735829551660828687726203399245707552493145349083172301778396296608590674898945901237308706373599652381626166704310177144464385492692699980701366310097268206139634143310586930290811170755738823956486260844102024708354736399175123131396390251699666545665913068774467714964782179738712450282702418009667989765382440790103364806656311430332337722285394730232239838446224876385435494947477668673969295102332392742704300998525961635506518970922552611409948667444919808753779959320657974355803356725303702341065332140476499243643219774804045207420560999357083662567603919048027474946558817574947719062301098110514584833499154370645741152771847617720297217254357634422373123701748705690197031375600727859577912444469091169705115507375092215447578798654036143129707992682192828349064206458780132871661992971114005837998032714126818174582546933441921180372623147135543273819899738327769620514559416560822597667508945003468434245720219926699945799840599484630891285869372067935667000634043799228296200548924375446466180964569496632082043233657818441328558514707115746049966347231854690930879628626796947186504983138601765776802893218540712264236516303854126354396077411105036266815947193854646747144311648351402973228283974293998708347109140645293297160370618132376587993993287004916883313243063834865695340616462788560562419906423149759905305349323236489915583931142400018030195471215087919180196707959200772919198990287756138513098329146238946315325787125614529414422497798802398637299802527148058970174829650827162978424103155476731631382321364789935008357390684263878685955644581479099032923492727172660136716746665511373277972846482575501374822952385736689551333306151416087130593701499264657874418574497222154458330731909437123225059041627987779115629281109480271483504001336271254718777704347635204749783907397384505730210336806308032888413288630667288794412396155332275176733409589668194593700607601285697799866167913382030481966722381975860050100425500238145269874288295614569814638415045925807409681313778102355764058440841939939753600957365459879716048518134682033386703440325949871625728301982785161103356339447038889208666052390623380163071860488390470056143888664007491412862145930309567077997613278651918498336737138636542596142251159324227928962211460014148851276417373980872965931603935354208413421892347772239366099163225928624578321124135152435307995820951257064865288595317303611228979266319473548155120575638900449052818994571457193075196134703074354946087526746172024822344220640137729781626512955773717286766696047508011902738173905121332422924777670853658070330819089927830956500826131988837828305935394223118136183530835618969584784062801781148232394437608368476474854586945150830775818149182561374599566635837968894183094776618711722766976098353567467876321239537712921062051066377695622930798724797600016022645223163170708171818607034342353196508995337865651821722575408805777911322948312012316679991090616994382012035273361060432054603151941250832941340475340304422182045622329189143190900647786829186586836720358643748874448341242755095531600830234847393869213728534930081032063780083365922828384382474627284114836635792973762995721165769686432752766787683837552467060264610030474608531848034338677942567466348735609034424422736216738062497265501197710389187250490313934746907597668167902343349340667407394703415191049440552801439878611583509615394031081624036407890540554463787672185717911437192465716908108666140750510181054822710098580671004008565090945159812473030280969771589044674852984326381136099707504110416628617770870804586340489058283561765674908450784610862187809298890272679373136363520598468457121382007611719421590570539907392047466513280174310892941325425980748230845790268858622942151027715342244767436092832643186622320109215482245830183069757152004149125309044573576075637785959723982221388156218133554189266237426472893700400412184417001173005672709649574684135531611837185246189014904252236388216643497560563724800804680779016107822233928747307358595781752906072084664044864771001335725068136617152238171879539364350379303878411889100209400753050099503453815709197818267773635837441103839107444928771175220357879754953907802347860731928099357252049661385742738450733437268001184285695581353278317209926050611623511382026369255298785797162376447798661513355338268267750846366322378779187598793664883001653591236030785535784860149945665859872475067633628396772053765820002722393248472402322823771199085249460991663071322843806645041167406153925265545440763371830580942268274510869641076244085371692291542219072126001842542005775631326672326418925545281763847861589762140848757896955066564666276553659944853533529038256476510837400862399171828220125973239030873958017162004606848563889916293440652549555156309258173782992076490497417622751719015894960589689475437215309745638555275162080060486118903378184338259495512079902866063619137699688684773268140822557082165152009921683963620184979825826715809762893343086586880367184685570115392055939943202369069245084265164069400740752795208672783080597803723406696205484729128370897033733541328575804357730883682815506334147118409693499937119669421824292999495247900157954032560065646205674124051252672437253286233670968998424690479415093457098409416708259242020097351002626835414507080704129830943609803588247958823541569323921150807500535521765039356735101728293525285132192226003061301420964398820314034381986543901638619987472785531564634783676758002770036333564085025576625918488676405137301938815316864913434590929720069223190099363383872794149298476914738179063136749111200485319338376375690561520527676654143425586743754758682416819629310527806942265899827447380052416937319628462717752856334821510982087311993082501587639849580758800496224814863524747935732380938505662603164704942615741538829047181730091255021737121715290553939061535896863202125446500799324301578026109386899244953974000106269201481145431093420295549060057438011212493484307974329607836845827780109447394075210427598552647247296637981807530609956218360377120671484441606632368175188804961643888392869214797077793688925254890836705922105904709904209744631980380906078206267409331754598538304644161650111682427228305418876951916674616970467463302144871436443877674347397078667708632591127529536891402427178628730173798241542781197317659299018171143442902495414563849722407285136616266887470872726714110147793479077943877717105663119061767277584303301814456246377329611905282897395120289755909188548647482491283188462931204474891314894840657791055175909671662200950269366760883205990866727492923862124191747464045032485942540386924549034529396307015341632796221333423793438329290688263070737919498708200823471603123434227332403634242002788620793387341465041976296074223728727228159061180790174431992802080308820844369578805866963861930695087579312436355594357839557139852716289255589018699971095211583599461961015990695976976674831676504881623335675675834682762997121563973002908848723114853809308099077077282976818164550525902821091559276420729981422045468532750558657120633614612307822327741035182570214582163884690105306140453378585638897127320179179114198039509504267324245781386455773830171805553876925185153856411958650685740651178361491177703467734959579381800600734323410633569340613896567653176796683065047623200020549042031362464866329204279409630628944340936722043616129539648237163354235425186299904462069439620933034784727297877407601119188099494585845534640875007458291259019617057291383277155885213398912145386868572787580539142570166482476055323510751607802369178328399531504961340409870411311759330162459040619294958153741738423469715520582789072250270424865165191997700148991196351258661211518027547300914590641017212040548037610208967038909606914783347664596774445263330694388668571341900942866972243411100172490048685315273296611247712400160757261321171167280463948245176743075041104511932198767498876152641700874320376017460901017163217665414972317141982231729492499623392912264877405405937797635469904391200499759235346444293533642828388832086496116400796698877173941505074056617610939238977742175685713048384663645026176346118473639178154503584365293129637009108299465190039434308708540034107043334483240260188308435195344719856195002288719514614882573648168529721301427881574588568183586286009145447587815670282630290301301000533679029570950069587817769659985693853951628029982080003795623586357547866987257742728770244307537165349903955128617028913767761994427620406809000144582726044180914975130143428520516446245883870697536334459212700124385444236946336701625913801681295823949745597041496354283972734664971587739067330280682095840317597319861278127849919507170036260737492883306873189035291117578436136104066181385662313372553458077532098712283922228103614966403644530378925237807751404410349995387101943337579350397055023569737525541116651096232811807320080131205491132794828591251881446098124103535652458758283483203806032254434113760653296988596313511081981429803312216710773318712068678372762300007777027727327282016552166372831126204383489153144059310641056652568719661119143454723691201655630967739042223905583085475533946281519791137851994393058672625800125083222412823313446463764163821231251254996534741894259096310090265669755486373006685739856306644614134979601699248274066192984084449717595316131900244742924228800318147263289230761606588691300960129845186273156824425977070738357457460048239148980406086611898560436950833963946932122852366423005228554184131199013171505284754671550097757868091783628470989306156707526405438766739550519590440010481426943753828580397943720131958801089008579045535560264425925519273246299896906971707270704485431305682264533368609502162646140681092383046650224440765940550212869087050545554314957739137632816446837404201197112856285621152722863091931780794178115777183106376725283067056807693491357645782677883467773146696178969285638969353001063815556724557835227966653632470849862683458813194136795448730032292072309963377622959388383231890636208086309104344055180950839745782714531375996919953893635263628113300887830680041238608203912164318818248084133991909654727698414338574609251557000671896374566510039720536808588803427083306412031374300289920652410041113799238251595441145889115392812843004680718216414109031027963326985824558899318532997776775828141972182242492268847830487785088772807413204867442725960150357418267800844948895215867737914719786650842063555959982511350335506848619820109931636552876031863340404742857325641724050151225057011690801999107690025078378438359242012071651277340785305404338052542590308801721264610770293054821310577098540297168637279248922986302730102977365065273407652886806224439233170209593688209156039897664064217758117644479780202755429099418206653838990639670585071008273256278282556477366390942491897025759461208715311370999424246345788047657605720442191332953248810711089160986599833819053212949152367295736756373143464009584027156357893905067499504937851351428069042994805714742877901830713770653273537325868262767536249060190574395679266605877306348398249410420174646201404313787062856185777058479707778930395563471521392278887486258456858600616483076019112743930862833661722360119658559248513747159185680598530883859942472402423063482641387919048396641255952869401939965650916475444383620455135443140617474246956438527719024336680856935314147916327879188123412651352939692877811276351618318862997164077435411244886752118910307119669735924731318839422756139671166565212279474128824544513450440656051348366058995694250969505541898520214537871035767458167170744866811801628569039367323606731629619181349935031667582029836870830803814390222432980682616716365592556132888378495649343514452361430744400063460662125541556881337843486034641335462605815545700867959862616052068624447438231952651200717164261079732845696812165900206188261641731567088280325971675400397824364051364564934022221808984307120915406690567210310673492903012382949299738662688554128025595575749488557661247739568843854687983312397863242181477861122064796615126428510951525846790449757865802030353328036371454299037646620584674705498951355296449082107483488565018981255349277793607697501589105986696042469333972741747773384983304542078284847910406611175150364728308935602013090928516424356087816625330030858069669684183865056637812178387410414381613165832030437221012955668207568655374558372471574784999437845031868996976791276985244767226822055305147112591991300676216413499240228891004641189789113423683313634515836747047573093377190780183630988645531605977743493541658667315858488150751081238687404146312697642150376307102945823116600244932050527935984449213761760564534393731688142016422169108085777346747355879517154404373924850140418365452003221791739156623110711029366916756161647642439995568989474903739766004604918058520263488143195753760710869906186828808675119234737904478295621350273416443233393851961009372085782098922516332281138745665760122746063222381537819978623511900460481305570188760720496639011238962569794500051219921262129932998032859080526330282977671544781365279998005412208711276931906338140644694402954205120532339010788263785530674657706775547241811152258466801855988210675302645855604230964279971490720849804541061976274315691061523487725753416968432086206691169641021182470834557908555307682360888007585611202546963688210328257806507156855784340587696888974728993751721382131211676752019156068891851157540665999463333035072240851473004869100388376441747516939731125518105180681489751891152521319425739503543604029563980247073879375021889429969349093184320380516950556798149295869264420878303938740778221276987307345612473695766190911505868575705875135394337481246060474116776177484757773843581965002118827039648625849869546757217627692329852939104859620317793498781311658450634557324400147275327888871839618215715198330076407129101879762121427363310548248203067509024939219637015178921765901411424065970960599882909681026025712378244694072625917989862942888463744822604954215688244154914759301184407266682468441715809918090624277068836009531022300214729527909462886494677650742884369934568825323136307883847749199148510630806245238908886281207031585312895884231409804303594450438623568783154524872834873965926210555588542654537406241832422281844461206341684567460281868195631071026036232815747067754625436139169826257024600140605446936420664644786192436716687145912879659077958145289922020082531281203223422661996888438475744789927817690557224187270938988419637010695765029670414181663410398837287030695619049309504771541650675512911003859616893602677357612927083839658296355991543063360569032899362495422236749553837599545610012592264309701564318336219336654665753224189545198261246475342751967793211375562785861670536944333178196490420705662309168069473392415879343987059383830959482656492107685076505279074726478571832966429367418871691013725753176055893572927466950054979109891603573544043356368299904434440302207250467180430721988642282243926196107221958436279331704108840643708639952467227544940717340869738146222014864344844825685701197061761754667568314080235896506995895063295430918725432559132789240766685376690264413045987172956221239579839879679339002596591922305139261175302457156006068927297653159257359733440853099542816254311877754102655625067949838990948428584518203265498121337652625718623468596643901017615109217483096604686028002204079680144279987023143412148042997578300062099538944048818654867444000328501632540997514540892220385416152631607985668114381063980817814431797606574293851008814003220682102644580326301042046254078234685141999608112747435108379134152196896876284062358174669152820973736427607335745325985487228616155708071823431170066459524582345818059569193527577607071627861441096117071027006981560615453734447833163833401592437823835561356745090624083781542563689210017426484744329966265172531567033640103978632785128786489799899084957820608635838273382280044690352845218926212390649955774030732402541872950488693429618472521914365104136862399106740136588091348475159018847611262512734706394161366271335691887414709889378844712526835227805195094388296564348947325534431331569094134576414437180193473519796762828866115318976818427447029848531380171850662604757779581140192990078063156433921304921372418563689811570739405071493205370372267248895931446574889227971616087834820999773592847458929609708932253949868293499161221426617143105584103449003368377907121914276240968943172683052540295179434990556321218858237759449286344774729576404915922958846956454162714170414649016525500217854094431490748818921798212727064189155422799799684973284994303756220642252253658731192512551117591965754965737910794877648162237654789465025510077402586222847273828550739124347622880902379442647187147580445323706613510397713016330924699316822449703666521626720194772954325110620320959226831361376809771042566477192806981480915629794613781508696069709235073771237714228744128200994478753026038449712244122994171541889786564015177129294308075638238904402732845796047922507983273115926533451630458019164512508397175054744285510312440562601713027668967996571010435389853665619124186248347842427280106763457707591306337713902767741009191156730367701959240505976203797806280325700271460992774685596763931746642379139540406380590424315818021985797495797124398969903765640758021733795421194879155029197480795408794231640699110788731254180954489544876700025597944253168986664805448765632938598598791026803918467263892894934462475273311865421123870977617754743136849903574351827444847175770013758302461703277697397866679321991223281272041671047491817773121165946854716345687103027156674425266035145629515865406940861405803228901124268716854712730319675072680204644638358181551438721837888498334303134007124804466476864487713225079165433448132600693885705450458069014546564009400504311507704256170824488895022523847917213899121593628254300260088827178757305681577047552007233427928002912648441885268171785898302764964590981390992423493216374079411540427811090549268470446491014902188711814132057928835092749628952668607895017963679867278764987624415738605623765647902382073116876606155051632094947724777850448062829294537154142733224567962233448170562341579380067097796279666553077509831713769848113242504387419495077618121733723107373030935781462500806904577321034853245269179296519918343923176519459371538453753010072987628704985068084341060033211925140433301992722406991605554952979135827643699618670545106766417788294131155073590414312324509471755915600928176667814434818602251426514154680853442936864946492308724482181463476327769988478186608327011571736585584135837720190767748762530309780221645944768218833334494274835724836720882005761227379052372483910933318944537574072318757874962736528835883220965082575136520793935718389316875621169042345244977012975608217509413810766708810314401503161093667910114943962365252352636881132764609437051298573011526871959171205659861663169485731253469731654264294029172779260273748453604464429036350439117208683516068783496237320543323783429971465763153515206509247259347690485001339500517258074336518354144369917852107844005224733369400689119311112445073241929629160540659239826973664694728081874391700214880366271873047467746195829303823173930164494034329482752680727008963140159929659612738841018095706128473242194463005716927564024649885485014961563937387884293434562804489805545641253704547909217711705558554062015630932080961516848873448630958829744695448624449064365752307462380663732846191227170049261448552749270029891365991248259872291614112508652607915784207490081182765829542884269370154303092813658049761118603543727899493708254191187101183314008325506686031837821191917661437715520202858172001634957021737268651210437594947409651663455903872290301566275051244910849232098948711441015838688966765832420359256580188008623220740034468056707263480560608988135014737461973073502216430568529888722648977761274897275844411320505046507628462718459489139900825781746978500558181278986710286985442759064590803019223531669913479085243462012336981046270789503946198034766381652425871771521916793763970541638121712309940456572872799960860196465182607265294082392181290268568676848391022052038679563081940391651950000778834236581192219409536363630729738939030652788624324508273790312153805026715564329692659647643262031466159334185012415731217245627732975399342298606192765500702558531144151615486680889533646686303811002485468424613229148169665077963495338728324123838997357206544744792563032000638614817553126700037292045517521235474121806719045349769828273866120598775449610149678511000648904048367994129969531883437428988435067166271369352537075711591798560658823619698679585938497050455860162483786797833873528413112789366152910075276731989924241179851059892597751642384397686296431293721858580987790961886234019988616553679108965248210550660394674815168418977922207523775965232385290938162715230195830494419484559589428201429482434769493731060765416641947874249655327925715825389040618031003156326544708491607565823607278158338066397331957041105036237931340697983503384400790565012644617651107455041556835929103983890170711303278032523801418823570000406639207235104743930654976133560761921311088519486962741169704431533885921837495774050315585221404174174334786355381111243211293842941384914610941154347477322777146234702392540822680449162136471890220667382664442129417752798323825945774397323466774699765200526851251648521826566391482077206518433546993933948743430157455229516593080635377137673589773152763744196275314563496731939055705042310766204806585653257264750148864509697680492274561028038454964241499403634970552014954379607684398207405294298357129912289142710205252284143213374505270386535386904773631467164678676678843887396806902728303413805488920248664891009803382542179286794017425894165367585121921354227342563526564845050859997786426051039823856960565668246324346404280162266228770084008942623629384795609777123166422254459795630850985785369372304030528523119042940511656998153164809200551427699124038883347729404002395009651205197604695683819438518466283968435953045076354983633989663610217876046530070644097229488557664021805597197989002610041386116583300485383329127809115670200563123995594299640747181461167734391428679613429254424464692249289847470392863836891418624886499315420391577765495848300547762458769818356839220598998896619702251433451534911997446586976226547751308098333186052446729296868157651518672059705469139079739583043572033699073003529520285905382782699958785878206838340367110942627307938605556821068446377697174041244882059552069852930771158604890401131802114012648842598429518334597265070000768664777503036290022579808465785861295398387044785383905876028320632647082804613257657976114472093957711552314020158680622750928265940745841143699909643753464182137100370892041258793398661376281546268402283813279095149235820278260949821218634360172343470543090220006661711449216209166215850795531380143796931104501776130047816835316102399330699307472558163130212821773078377620774380117568467479324262142689884961047184139757529183620458983837023284766424767773576332121951437924757457440370936389249694957544873826227632817033626751484755530994308227895662466230796112735002846846241155129920973008224114592115387930214374446431087474972238506337337421637198076509376734796727187797279930689914199392997212977086188841474118479387929242190819833237773186072313500415480740205584541405621999795180121887352615543370273484015488962137980933489467990946085213083603539344897669089536916813960123547448407600751716660713682396892456654200185840409110925720383202112007261645794584363343127865289566207276404983320200463336739170433740050621947952841139261109546501688218901407278763903734149126703797539057466629469079284921939543540256072843112649990388839749934184586245912659160694564281938105745058814006542691201353537192681936699870997693950569479096030368368617091267018387366225578036615828009370626234317403701039761515261712720224659641778076594792394662386017879434329466553228551574277291919305901268102977605178866399939438225282987497149699970319431810610427021623340265417525270458893806985440429667954335775971687563260802477868846029209777476265112261894309715619957895486067424794704428911683016219613238835933924525406452138954806567374774113768159242797954986871083408530655313532816629405337583547228300175863647704797429991678810814588084617534594091392264928828848291436413864860573076959208739241941232297666447393055831603964152716940804916116284836480617158907638112754683314033631940049294185187616539488020578998706898757538313796309961457937251141498434834326169410813891105392278740560513117637023867928003756559013018316830416571177454796305881720950628519446287834486544179073724207149262116148390424157298256087111931039669541884823916199898466963467479689755290389866464329529033096136896744307121699818843728202601121627438158860768386766380711449569883528010448537018957522236099161770853420686068976293825944442389565148348126016681947466371596052636181846590188137509553216963092942269501199887935049802033321977700292167444637400067925651211935425783545646832581670628998020804538843034873521662687794209223411566493984469988583770141085964566047844955513293352624212233361835960566409147043021416676286429431045096377249060352118307960758199316923056210360091360796347039069086297456012034052073113812339045761584512296557108930828709665871705102575548915090647995489476091084158699457088587590193304197612702964939662163993863851229179951009690992231567371877686771674722209106520590636298644573717677938735459737040093671360322918409486328430920314904233283045888917863812677795982542339152017286911440410350989222085841374632377210953044867015865343417539678055971054094518404667678853016691524748034203402630709173757900743504574796337967709736730857294659942804270739857490987785000204749136206107133377420211861621371316930255936208919009882288011841303344875412413187044514399174731847957979394649668055247983189870334956151289338401470095085656065610521902024736947636555366569952053195493561763321899337568589553380327477677738154422013664467986796054872412703753709410434879450881019923050958561145787983214377265379972541259198661232375897782137959425370956583608618106905215413648479128243182227133766804812890876524668026019083488892309547250491634182244568730314200729489065331373757323368483687348595203112869691027317055989384266577376305279010132124469259646468775029389122414064949629019353330837882380852770386582734069192923844316059772574114329207926408582909740798027782527368681074327538493087187439363505402522929518876975052509417154565883166338543579106558519863030260291929588017235503892665666604650950135676899887711130705176027896811981483310146005362242801614020830189135752628953211854857787934483876353940313590722676134131044909159192638044429745980190298687989547320525291342245696530213278517645826553729569006361312647737747826802717494070997378108568438298003605661437760504717578805258880323222134113900262823746933221045172178578396314557357905391931305983672424658132485502864826338589797459554932192053493244776568619477463435062308654944115483673720571661279802177394365288616711416786725858653904113477422143908520608891879989903629156349000431370812104292183864863275077007403247757870059976090885492608518449030289153348307097511299426571699331949401295737207596974580298596084165784483953909411078782182882969034906652987965220592968711896892681491500151471488482622753954794421061248517099360493818871366364080047084912792099517525869044429886443938270830034731013121647561105528825928930345494038524801033016298299006459134730329933817099569423125069964588921127460891287581416540677685182309641021396995152188734010418869948060192137318038254501955969439234223637967404761305388270156498766451994081796318317794356890144093379181768605018887936618955318542554091104297257481204054889933088659905387200258410837197558466912272185507234746787602420054231310269413854657867394449287635352024977400934305646018039006379093813425996513355749150697017853962827111562687884843203023015017725294656384936244725479361592277906556559211801317574545460685385169515400082780436458324986092700916650674006933458419047142568232677902707017152287007374084888657281636639092407118885844160815052241109248273781005038603392855179163341225390356141018105711668459352515211241314061122269696194912790778347917803278311029984495136741596628589168429633396181228557501933712293665922808400569155608516058523512953774064561026410159701922046779210528648415343103927917919268870076700696290911563024409943984151744470177378209080594921613349455894467014994667981143234674003617999348011713922294292916438402226006185965906017248564725266501570625054564482366580817960369187469987538898607995125564167386596894832684251102406750997941444942176105802046607957927128406942909020276292818494528786223576529817226866888653081468099437221136677798477872493436870140044096917556687251044139561385406032160592894308422461445451389565516432634601373828079232618745231780461331015572638165131601724365488211483697589478118109918909679687821188867290453999275332026790419471445353727699507737187146605485213723260332868826955403718750058958893534012772023519773172791740393848362411735414407516869803833163611391369573008435155381023681458378881041339032499249659310365949648747468432687490826860745263233505586678247278482774908002778371095943446309636982811457602654462267626091982874714064041136313576374170637787782124490356616941999992563433919943644369075386143331685075386050007357072826563263932747639289843510883939238529878473436908106333410540095379484015317662296353234881967909934257047782727816156563199006571674964502330060781673607619931593452800962888713439686999888656487575250922885658471842224102690552690629242229436753964759350706431296319353865651048142451556324212333500588569016886241541181642557920340944562419567018326316720112103307401340543630090286572181759813306538958303375526469198714394340530435602790819797932683618252794574241251407213595719066392375758544012921761801182471865694965559017955132054538532930428726857757486925886298535914459555937586835101723941365668870236930167854573102119035722071428688110161490031306460800692838504203688424704808631306621353528027033710652440986398347256181624977220973788533433722092081166279904907831716883514863884085680904109639483535474683041668332980855111255013053659447389682342592929363114093983486230253839805410040278770638228393961583818548853080278216418927562900219557254935283066145040823061346964995530219238482625210311632645248014014287528929732395236569641743571867006483195577349752698836877096614442471224657674716056560714936557704532081604383655233877538612032962304440116920986664221999745359076926674788769035351448690750630840410425268508585204586703775713010943517645081907489910460518071113359548469968078586470642413956357697474822312884753591386296782438765583631539393879696882308034369894958663791499666061464888043068423144789045942947791387644491063197652209801314947435232560142856086362121496470093334807348087437643875384041248095786430237725844996075931279038033943452102378914337382411817460540514169989622923936524871643510629911858444499343957485288617790633687294276518138885176776461773386591086380952581169440030873261267590955669613087223327627550250917353083637491022641368011850556122679943383167033114396791660993751633814350634621149437111077780482403160921775080669593171872779994232165576466947916486781005691200487230561981777962388734583662855311826197269541942511471216464427386463994372391632391384206281521011039920012347252434893054347139927240573366384958636712772318366837013950671900987924325190374777808976695028975462281092501640665792460054837036721403481167132361386858742102366143700529494912371755689325776882910329655747057360544863767587805802888538740114569298324469550173040422698700835786022899923594355570701762615321229623289803706500212966114527217808528077149619480808391597595002096589194546145730776935471570960551588647334540768782341854932997200043669252384361378260127091251132489663149537021824200711361539276431274949007103362142378160005616075939843163123675097848463851600620074095345870246618172851937446471522988444210638581844451994779104872915328023849119680499557924794876872851618408523176193512478118401707500326485602887648790648163553387240907819611946017995601816177449711458853575088565237895417971143196871614177188774708048596480825063939079719133254544484427829813686962057285801843501937569511982621344170167354124253634450246241830543254763329747268973708385685206436989261418579374418716156966723208277269613501204968574925192253117466582409389643085189474956029959223097122605925324542503894592065294564065734327789906880320543614321834629111828567214341805537483616962016556804089132746409288901461464728629822492937721761649225292211116618126285339718313530797184125676784213601640108754239731812130309117187620386028814231728686170790619489394631659283801699510295104118422029122243059018919593746088824788078972743837323075419892231150849985034488032822701313240115662868116987877137647607429147565663550851271112944501576942782192734795981391741812383126330353141752569766462920283650944168129140226658573958988956861771081642792208211518930409947369246632919374157839254626864005504326446517944853471146844867645103942747645326200040998172256552429616088007358715995544805305064556217061885966839301171996362483581976386549953714443757503356125541657715552208108516623765562810488137548962715466963973129725887579883610832916769055791207039378867647776108338839973489569272935099263973735641609966774506228044384136338163672857538380887974684382399548652445041062479869364559983388040223364860307956710920673754899435744870164383179203893884736237153330108514348426985763485401927366616916722285614376254523595726802831281448127983254988228407941874477727918085069591304858094900645667918338137293143221092558605806140370819369933923678519949794477575983820189676624972926315759957179947517743807534817760657910202733287301505863831962507150133209217289620248392454553469503656232630448724669035042252310711870004785174990086756209216765998157383222475694465552819856303887169404881583389360667640877513767620880198889686450354266805176162774091393721065095370374378784217713165806867715174278225173547214382057733413879213204539378364620296000455446908348988677558110698772616827719358259321782193693372703320048825960980220430729901652228430295144591809973362786906628242916175682090585527027229284835239802800832835273769714732479237372646906750082779106975020534009235761481213459446640533413852935129425462760511945926918562618961850494132518240197343840946019127875779139369537644116192522781084390036053649117698134906099369049134761862270520465467942514809660061507623119159993684373336538107427887292919554952354467594655801168416304804427189899270990764924472822942351825807277126900589965442127939085373081099467104350076841005049671738697049982835270389568729847135109091809989903290761417483949833408136374710196493598120767374660653624165486139573676663684468998778954384902238006977928054393947801459889332812570506198030362830619726778014439722726030777807423014677489693444015415083895180846503959224720122493814903435219181809911033936225861827360926903199584526989458428346965966673817052102080152120290956340303099884878098048943726308029740220594698613141983224626715429199958388371705598135488513499736706406260296011398107213612178272043982090617525525829357847712291798871205651378054862865953810618330542734775294170886029851703084658068039983673618226847903440829664289227028570234058770264559390569936831795101571755827290535229524654838695163013954946357108481381979538739533655578371265884636117918917686927217673187445041879381932314638663689915015155688787659681144867749064285823566400398754002193920230288306184674527076407000857435194351406899349099905116351442871226491038072934838099782557885487927986329670592654103142237477068099556743775084569489544364513818322141301975441810136829836315706688510331823402740138143914646107811866929791492300183621204755151477552667871997674870236803594289951976848277974278077401364794995089095424757675637270315647171271778747313625826632093726297056541494676500025148200265809244321164456500782716261065824623694709250007326653851169420240996415637337939460901168211009262920063762007566906730795181980016617383849116068754827019758643273385924726581168617903801497917171719257955321952359523865505871514850761465963722943367137592829063061802260002464450905577258744186574157534923894859564409111416839518105773533255309810192531246659964234262341142853199312286424899606817364858423962410757966568244000912901095457719242489820926059455641902724918883304250768190060746273266549018829147292854705890709316177427023646866893960332610133501993320029966551251506428942983803887300363939257434344478771710495621084211236748113266622438123440017158035901704133483195706188751086421779913330912141744217306927673282692617607128723617886253711565290598909142070404771213422680427413297154688237310288536589256580987349035468548767485517078690335501522655860993187481621372832945291172334265155958442438458830950347828087967094636819458626837136804153246758296139521070285240132304926085364140703986852792726456141406532438737360976909296688808614750717551242397497007585891915919652443870868028719379819567913310796303652158705371400971065066922984506200090631594501986442398898193452376155781296527063008466363233554302268611416734263821880760503559155076001951346818822477602561846792645031160370286572008673878639032243736518391992497260627958167732167816152309185208636617114591910765788397162612957435931030966550330293652448058760367178009912381578484053962625283691622542344333500532162029196716200110341611734125900761285657147435915639590390655070275084374802727282753217314140646953193808027398211053453763300446359924916431834103983293926175508504522682362757265259103219068610353471380843458635009610196044993887389493679926592858636399260647962298217903763663397363583590801192968441637668806362886620085650753091048216203481985458095990444050431827944915722096199811569386543512251048355388637339404955241402781656694489141425052889210411265226439087266477144607804998681200088728183119277384593874379200293034746028994360866591047509307236922587286589332191126033045793064819500930120039315496683984007433129865544419689075290235020290337957533958863151658711310322250829173304552014350668296026459296619216395568596200672312195907233827923638597598703241399338038608646858904063319309707070319632802145017736980694270182457528946691359747844350828170226168276084347677069097831268683587902125733309569016860332362398269634241349309095670501277142946355114468811120754913438408542177474208899052258075781194998892960149569814316135733347479510878198781956803319165597523442549928743725140444786756220088485497145688259076517876294859265692578954769303882836281043350376813634546021926363445121751911646839739077407586750801979671051815205584580383938325607232598005783875632232790354439085737452375317376671207514816831007997748472337743495686878908229538738747022905765358802199508694363463002220077607100099330053094033870374012140187963859251868383055198882801116773039843590933213349535340324264337206804865600699173909875654648659226518954257539237133865182761248330319422125796597071784574876901711808818766427640560609609810615012844264317547101910878266428854884780286672315895275725551258699547111280430962325876211490429544820993261573533410226133088940948755457168616324854196546566675364688616393961926510186126414469899191617948687935051467319102540092148389179788293071831589115016694933393358934504687374894640452411543517632025422487872532792938857848890494282995041960236363706141282572913657640256494350464395838069182914959114428269298441995025677121648021555073918578562037910120939102773623224167517349435050739902047157272353611567938979568818695498371266245199703271504216239254948101810774672622345625199130142662901880301159395582182488048048842177024083942153299063895607821343839867090608335487150920011408624092958480907110231737484694512255350672251879767140783822065617183730661399363953965679670564977183935778781257485687653774559662646092619516214196953934695175962125700973841580588662251884793693194208832727399574826098686260293919867005529449249411171740135241552678889139958513653871170623440265520217156414741963133607794204869853450338114200856756151547628861323744156977245941510023195900874924782607513668786406446807155089888594539087807780138717786469493302411091126695252167624676460047527884374108228111490921418837982861786490158079473435387980464981890775162791949516794035409772938775676127921407529916501897730444895923075554035231077128794474825266413216469629201200746339201892713724151572165927927451601051351988496976106313809346682233533179901363599042490192155071439089671155960750051994630130823233469661164142261165265954789426235634060702549324459035086874938287219304519092520913412571229847839756093609678719362602280848658730927300103552753838107095945092757344746317256018473643364748543685250186661562219868340568048638230304285848022185927353501964022585220799133532731062442787131942023673585856712763898622073562003671240737720164555013708893519197335822491444879442185944093662039254398137548389217812534584369946182883545880282395580690717156582978633443399186165700937092689422883045475283631093624457318648799540628522949812822163366752067271781457048530922805132675280512437649941108415402030228343734163709320304018455864920568794142998657830898572974767576418315483980248835871192642492818773579819643573267885862191416753643978967240904713512930094299972889030069971224603931556410195892758402428316798714772353857740486281791114190328981057184923042063581136098070784951367651588993864749104026353507545062591806353221745852958899227078521028216886217963724012162172549342753980153689075454020789095624395489495359984555938432478931390205265690636903033019488650830174725380026076733413635883442626798403786601248834218817100933020989655679334730372765635853374514781605486447223896005286705150067354014404471106099873784758600567892350482012371296951354658463474927224654673479206870315713269070860720393016280363117233902364921103785157140782367854882575609485213187454511066845294336852923242984528834351215855530424389700416636344404086412232858162856743292798256200643758045714148013298487838298327062840662627172862460406805207658008084671817057703004392268072912308414783611751804093645065011365558866269159715357507776461513613366233369694164136845076098227063388260683365747525246509251171925231022307870242692219203954133292665011643019028540484476125334022909253328996759607753437499164621620401295514227699829648451699519386880622235684461379833745071676617696449675437944224331109401386434747508641422996091673763756224734411696922203806524252574020696327379589467403902452187699185530567977731549661833114325718724547521985908029201730928113087865377535062466105426319203325439521482350193241476209846746708455982478022162397223133341477671931188972967215151217475306867586669535400601397750840378955073789113823063544346493233825771750956336298223700429185013683579847043823669066600600427533315230039806915075258672667437781328575145259368398902577767010020874009314818538895083252483449365731824940703798467999787557079935886096771298791831504371898442764001511140753044107463607312209221312721239260233515311810991682510629584179723279539890648651896307615194385244050182795427670480954916967597935106194762642160287081421387277791016515739810623158214535946978834054734446260581248826411233853334030860832497279933367183124434495970620031021683258792993228026610647150706437334205019359919463153817754164163486317407222069553134263948678886541380938483737188044374958794076376792681064459523034731851842146766842423788067977707987098215253121037623420055018938476764351640310842847853751253413578950135579320285916366643373347755297196270168518267522538424015784237158523888157376802870497640154499496777829333752983393433010013307023469943617091899556163146059367640596484134018175094150811532421810007751415124528490065853448243232430865527440458747853899378469337145508686162389035473503207506411608969237140685181106605221097303362347142529620116819450317416831965059611216390697100842857370930186260114889180240524219266216664698002977202563530639449951611993596244268711984446999979339470877567528888654178288244653541193745447138126909721764897119061584532368805579501471979185295845278350663387646807211494630725879114047983729530012616324010889608198303740022878820342925880573143980293151524315750726891802128960740200540261483047942420896979511536070935489982620138828048736598362885820089524442251925264121472199631943504687534919086634234698603994902752177142803988238497994764136250675838786406826096149833010381807387582823228027781764282824419125845410135034048361048153959851084812188643341146340961789272344350471743669509938680753137212420577138274477991647509775821788659597871705121865540741398530056381441951920258142299012332646451518494798883830161491733812147825359052335301497560145708455758943571064368540943314410277745882910593470814542083671326101426505160941341874663385184646759673961485186119778683736763400277326378156283404912610431429909408535036549817888104223728310514370071682290404399303533462596567136067037253219022853932925723864133416488506407445767057919945958005461386187832939341643963388251356428861808665696784961338149854531156772558513545377726486535927200590550303730787127323682399370541205703257725110904501402127018367733720329044151210108313554204167367376614838079313783502467587313552191262356083830419250613936952611699335631233783889882306720459531711120545571816612286573361859601661693816046513543565634602207721434233163441901194372074001408155376104092565713690492403264405809273618045186258132288262275744293232288704339977628249261478676202563479887237863782850106531983177526104012447780849973709817161234689082923652094349937549790197819242038387020619870789210666792113377939787617265608762684685043264536791329335145916342100108644302804935339009404656221644722253231647721760157451374037419595643271478165868392440846126133075871288170855315680336809926866781908505638470057467692892196527696084506978531675394886322260498713097046508015013661321605642021206733801075141382134182955088652064934926957048171412472403684273291443095014207896496470858522630166283951736791431786243457500551407854073092671007935468842267689564354690725588849803975539519010232928206788897170155026862752069246769810949559113268377335169021889566019228025876036377182893788460943569522973112943392566608306329550597783941597746804618028889209796170222118424120412232568701865730016114483507445195644823513017404606013207138728356465870908930398771355839506136414569423411376238971757818413329848730484373465655953683485294689822081395297358219091371247713519614181076867713806450003784812343025010711506527232236045708754768781324057842872245932549241278999865255333587814264369675914215924869216469075411267145282515273871244744081241995887239924883252390817742715860382041705069539023937926285603752768772056445957561260527011671172261607190988316625411433455572214684182338683805471736238379068169689156410566276087094819389530404384015493610046713323738898192462405926782784498085211023025729157842723228730028813655233536669318456342375880422882818795600568905402707650709691155249559008674164226118403071552543576616269317926251738852479513047462641528878364106041669849036076267800421431685417564444709724342113798249225795375854499579747346572040709767073036812017452974078072245196175435877373842900983746223160761408291922298769072849006037376784113621584649802732128518353471223325574361681900094830298816772534252095637237098990420105037332688045326865400680357200070761020798340356120548854773554479563571890165950509093692080810232895113150479481572485089763139054644874087036650152870368862331438356416137663472377086012394354172842752569869484099417735175223172600208083494375535418110114113442123338262565599985766575434744267328889640506237673688406848440295034424536838838457129509276460283163883113517835660998534443546669028360544382606569807565101860316602530126076133578207234718311145817821629958970276499103223654837388396022562657694288401785367650337144173113392930834350986410693209280469263957825412605583698094745404486552374526158248411716827663181974544423622824747696069063220478528499141527103217861118926533190807600204852563412406094454565857976891632919145957119400478820943692148446656528607098157228423631892608563932388258902222018655701864063536320500800457190374390523164056675620131429302873588951632731667771719291214703252991732032077836098048900567789082919042897226556846910405920027547015612606775657098101799761081456624506412325526189856660189491471084066814818113951171287528974359971069965305899880385872917203825992182891557833478081615876029447167117769121409989109063243183215934929411263074057163063503201831153789738121984513394765756163764125054156759702103120093236058092402224428806174838764860124640751576078109790235033497358785238490531255984644439276346441751354828911101458541865932586443725614143630637821306924815439510458227080190738807182898472633167606844809328472551682847954416339604919761853217789867144127824705524442157976769666345949398269963647098037998788533738291155285422423770154826531234854228061611527638704030936736319518628096726048053409204269834645114657670185136038879945254633442137700050448938654047624406412695000597370689100944440630621302731867677047037667804992043325745748259792163425183718460597948831208180504517363626728039421572780964646216395221758086774175595772307330753992670696821231414635692404008667598668068718986054451402718582722292736857274968406674887494224459496312760900762285544770909428018117243409383557334849628116840099015129750372502270263975960216956477674668195748986311912814622577398541793948039580954712867016221774070206628520333617461254950019710416013798736810641632059585304224885526484950843128740240322744050596332592810603016707677053604714021120613072871500942734056142097302772210851537818777262112564858889783151957018245305510091099149500749094066634151215957972371214101287918257256638060078436163456122759582033303097897536162283465898229111305442973373412466783937705058278222808553093054489614538885683909092688942276469637494887346764346613694029717655608269761649940857014399674113266605801285565333901275843333844715752561833022885041073423565491545016889880592070547282840781247028255263820397365807569734150845629148433401805065756825983484306082233446461056730297339416069254770481918456623320733393535012920665879706508869209826148048717525135180314252302457963337184453793772152138499263670244340819398342381154555273230509174168830407087871661783019477661925337055465045013447502533854838611131909881803005756574180604002295069893389857912231042459850600087520394452996036422659547957348709205011956670366642851347446022252966582106002058688532130642090601272624763724263845508970016953141199825307383074029869859502567486976831303910812463529292400254704227902775765089385708828844578949971848426988807050721700373510387038423253305737607858397547074205401994275014189870346771208073280766757270789707465975940112003828476982973379239057218347555217772415791994898551976754689035899087054068133808114032156494968909800212133366663772622273732106150664701799826825353977560672248492493229500290458269481942344744427807185785974677972619414562092200661137521386468937633100557655396729729022882233057746208247620819290699632710804969705690141856924301004597476835027495444024615646434791055818206635097664897149759574567867266524767700345873651955622452759807127162968233900296056300436116431958450295291773684231043243199328795890554151555724511804717537335257352307855925454820364420114012278230351820551402340465055484240192836633588447490635667126499890309456171191017051823330086727835451578291058027567695032471596492234850109442594121182981344280710842279187735422259198652880624214822123016482830557315842366610633172205863224084564962435099501242432844476109802241392592438550098324417205384112874384705831531629952642598494340083580438035994412167372791496388004230294062671233988471538240558040267862088902263876650210270365773648648143507499725031676554322823635403781742439172264179025410024266196623751538081202438202211759324317696085007569412855628326169866004622782283790110494782986971687894014152853971056940554186722747732040564975090678020867977514950233122922207141824957996356047275308734775724182510548071924114914670915049383653937247603704612723008395485739691485104045821078259971000326086724578098394069191531361152523008002117196242896498162886595590863659771320739243547203650588468388147674519478119826087520369016320038979158160678129116825322202828521747498001558934979628760281039333750345160891937852569224009671739805736419960138873307107271973403984832136541415683920294901623145683352840634874897827227020191447683845668894694862786717432879769692271579251132604247678317074692746647184278896820510798715419972279939975445779109986089576814280187331367288694912279873449484063334852601887084704418905876339964998867958558949383515583472416108902635012818447131673253063366011061807342693230118995404152731033679455979987920661525482002172789254688556207836931052461785077485318247733675376124806957405673725529965439416443965415010145285088532315685095807584231138371873808834324626780753479467100748346787116529487759554396164342330490453225437088777876594335048894715138889271179778174228449055035628528372894968148622398547200674388587413516009132186575002175943688490614242249081823594708211099934620473439637676571117776274196844080309377895448251294434181980126894637534141732775682481430967450036619101881291776164072951966887845135050080689176028137497700915912247676962785213290737914569234308612432069108942375334619846709769512900092278426303275658148268208720953530755909259784463560813241898582434701152043548722387923917380529139315054271141976366632681413458875873588034982361985825739099195186017160195856316149699018160164435200160212633487408803150447541072243892018207694870987577572568071946885736425315467825848352775743564844475249932392650707121766540788486123875380241811027328393240220805317147933821405432150508746395801958561202660790061247362051340547327312835515424186125782063145020899301992577599829226460670858047241427432176174105906295879202021906611198479276191262242994457542319434436249532927677256175713063879606713208171780754564772694006551158718173149608750887475091211791249872818222260393667607596673989673102863978316806843158487059195022864688366365407297334900607827938653695944436768245044791544806010329034853236746750887064780819308377712760444611676398982886327948937342437202940340208294186222346119412362986993409663859015986800191586516268605410356410976537340982219166777632450997180524511517327939693746399119843025282185546722912739692312125348595752516143085697991155991692480450215635929655230638777575470519616169730394799825137490663394618069571890959924440685940458219324959697950306842981752852136110499617720589518609924443085517400237923886460687568269174922879667166330861708752538229711192338005147805695752898060635770841939435159583949770795636141150969138502380241814249479561201809389105609247239792871199560797944852159876110400762366275340350367843962932349632072467605569636508642081122444909380774370663772000473995737178814304086809927024060687595438020847495877945886327739799408611781015575863815647179797428722481438516705459118312925640386658059686880335888266319204381573004232982322621832933747519959048237858833861249443402996117317685567335824191372194392704974611959187800311508079900343950774622354752029096718955029380327397996721630582364860545697752041673346914240829373463215998467156514388363240540486185904690923605837624751566405753674671209449037064719376932998515598895219669699914539618425436086623143957444310315373318679898406399784165003118461680012649043740225580251999435172036641952276589866439933953519795841661580170879163952181482976924242671086981520089267073566563218111426225014496329438787510654489281880250934760683312047469243932238941620157678960235548683804115391994353892136113136752859987690080251260877232097288841284522825444398991008667467211946017179780644258247800933911266622582290752922334007070530468593144989020790332441865422899493314678737294103761339078479267752251382005991116825539361255262286587180739018558344450284462190104412349539671286301415616129082828478913075488454945933751666252616764593584630576895689105881455927959016140936787849784510775450060868866187581197391313772378477636983721400382263758722651107598373288306898358067744704590178665161760514816823948584081615321314952931992532411234593535120046934831963944369954130093974869209481458413883600709011553632632405775569762433845108250123600862846774703156909912728843770068779364407152375131814145796170541907702066654555929110098799533236252656822581846013396084098730684220575179546026882036749979966371372911329779174195754086555191160737290397200054093837928407101063891126556490639689732195103221088195394043474675601323684216144644162560372211198364935266044284514725484247959416167763382848091069870245315195891355984386078579423249611474121863704040605982985333077730507819512620995720722312809063277965700941458190893612849788468273886716390027834591385695257002208694106098326459450996707428666576271046904096365474353741583042823455304273027838902940192883039767687634294075008116328312555313371058040533051716247116451344125955779012544298900439421865401977152874704467955576827158355393557051086356117840960816862741921370043249239355323729310929907946659553843921448074568863219663097748990670150027435003622865870390755270575886873639277830659806639722556863669337518616386627285246273454137803220033250926398904199161945047167002236738830645244263220148977525880902336558790370822313093028593404112770291342835178206760487272021203841512026743229577408832074303175276585920026742340238405964573907241268545436314464185474980819523719574307934844889033343220087059011609382125902962033403236647824762034387209072996037310964434239721696945746905499453651150809299216780147160323734551693635720963790481944216356721066210201769065157403481227755456959788186269394494709476741046856911184462499148134267341907477720967167798336058081685117173926110750056768638265572067945968922662155454386178040201461831340496490017745567331279766803004664450554627375539627625588355937440992891184132125227332014028672689128504687794518508344869945768837565231098607807808750326076768458031483945895830973219338347829607267449083457627380151020674672568001968431689246397111291120726198297296596330523868111100093541903857555851783026634418092113229579911283352471694223539651587555849144895622474542870323610498715843467803866500077289678855563638812914596016742852213745080723388595439919251859648188470482149280406414403389564140954212201435215163130038851558857682148057812488699503457723467704951727644405322826432273470827391365240718344391594184125733487288067373349277994925428194274483196896813809760426608586451761582851722236919258211296220521427360279186296520967227264678646435371720518827547395285143288897941728518316824682398986100832223332307295148570424494329481468646202833804753996744221862338139402528661615936031679412729115003820066052291906504463072543108707847028855136374537837949225474336938791033157203586263490835976617223127262869021064863639840266343803375903699213882273568903338350441381698411661064630885699623688319746638260838625537748759166653693734914623156238205634777709021851910424430361170567066912560476731571058815710450276588810067144007108487872264119388049283909823346628538235389950703578934551294120434988131997020332277976047057110754707651590134953656036497542557732776613163784188187378367613768633792264446895398707092130986684689991341594181780187981910495406680261793862132243577846317777984524109986043433907758708638137015152395087526206283555176129684896220226384465548247983245514974416509688478491974107153706634300295320546923056974795871950746382365243966173533286628702607070820104215142476927538384608110514453073404302861340670579058437478253269225017146827808293870247571505818142204510345307701136117493229098244250234979748366150554088518745183546667554390322387883349817571654700033231888800337941988826143520339994705553910285532007383987743370845285544853914061519793498602355090403587366482623872069807685643709813113260830078380040533006326339148418278484599544966730894304628114165537213778114655280667840934677259498574471826027002639725946463903675359618985912152153802001248231811812726740914656383497768547141033378677012900663974198776709393326723288350388026629772084219830411267869726700068934281827751037291420861229492411772424230010796815438551915815257243173427939378111943237945152992774320176100918189538869050738007819079412927391166407167735620535208450066142836950712828697883950001148600598898320104071750312150609750615834531377254943251788417734575621034757895492826477160641144212689414807548858471116977560003643707697211047525647900053543864544293058149634465878967654040597170812391778681607088731997162321560591730491080220227789408898835721220973441461688670064801020371956038502836029583623864254121354216630316304557363852046965226368052666538828706473610717845370986026583758250036255652992961146599986792954676435355201247507276893868821802371697074759705884927399815068204307802820056954619977280771823116694972546964831417076999265888358043706268144362159338532224212091893833639355818465291595391346921099788232196869937231435808274631214449026211988263889979554789608636399527196916458324280750771522996960988727258739501738682487698074815271404828692894405999495803778602903915657447346504439379928957545805230200068189682242992908532578575371026852881496000107400009299105134349447032522838610869778415671863906312535317066932017738416017090425312916915450494022429860049845242393327323970916306318048986585572865610398233746147436900497770807639070314628198545948155508572036036658181520459496895776401971309222429738766792212508490829250845372621780185483316685541310520579665279389135580790508773409614654051758035309002983805384535926302288413853438177916759685470580941180322921168405825211959218149030947274850966486554258225673443690040303912723928134832832595314512624442884740162782709960783744108811201674613686225494584872625437570199318759688448796099789594623322274005828153806730277812452863605949933311438252101369967384889625866527849825638695568711577736167371038017938589752736443182254142554897196611735082650637536448270827948670774792291464906158294213265991970904516818918918682387762714428649963657471465785169999267584482675024849907286688611337520311037511018310153080958168255570141176567204871442788420257438945597319279149101194813306863029617378524413994499560981073100429940423678823319641311389727675079992426772045756586113505437349918014121365715931307804702545671570585285707874128186194726726326629303484048286210581539028403320591072886127952497780761707632107967515008946822283309855916516871433655263226433278639453143234341917412894326579645130195709445693347037600791137434305874317068359689101025322339354732348156103094603113336534662349671288186962620969210861988047135191087355982680926878602128727871664813844117296923336892091292310298790579174247493091581172804019549303184566952611858266039892106525053714756136090412192948674598925953894216116704832998061532234303839984248066503982280270039608075140409838209445360229897407455031953427257272972817885083780392785966950431657110786467932233759851294982533296725824531947443018482125441412667585657182817345401478522426603749303923228633652217917429473508215248157606293772509910332281171992176372002558615409705779455620100370352488797380785370785589266290362167436392863941009846393888129921444619769246678306533557404131117115607730852282122896720863819331731131037811647129581342478341821859282438214198304310506237037823566238882169568449253787709920704524925684688438869369221336320135360367171998862725110923593356341620307303206076145368294491444830001335897749902406464907169358081165238768680199019650110170504646010388071929980405369231662905676352471803955222612914678740029676430421073519532486965889785261047532513751943497936487171783076461631195392627250327502437098683625680504727564828697959322539064415119981856872906517370984214727898327896295008307542325540535753429929315321891018825429511784125357990324521579078565534995701345162833553915939677136583565713204336783947133620435784921679467300027936687501200357875618025051246531471625056981351323048075642837528072823585873107341810074544379684886511117283721775126311657936133221528605410828423994849808987982078036876244192695110347421879752375187954801403681726935886795256864278676253040350787592808256892572368540387482902404415741194845448471696630741972619074694510363019425740608257334553053174505704160479020170911505144099631631753799907116983225161913639045002363849858246895315991858008844339135830499454545295891997600499578189457398019001779097147057502491848602284284659475893361102585576281732677450124790422390615328899268527789709819493465337588095193997497584967300525769765269322132964900623116877484535917410815872629603795290553911915802736118430513878414934168329142570605402367339450673174438724533479802586497777562891689719823248506406252917558397968873172681870817967330855315809907959715729408886837412037588184450721754641326673110594715183143479466363260179525955272866668878310176768535535385792594132419429219310139629508833342362424756393200887226643327694558365208675956624983248745051228890024437615162790803690537667389698778256931036019506968785299324934148291429233928850168748244405962073144907664281574923621332605390771138986569621178329849240317812688218117474179979947639036393189303979492531051689154969937376654597320799354061852753716366928967098904202279024309723780292324209490623304876225520977923158619314764472647864868136670501717627588809367126478396471521162073128806926572639590334389967510928446526990389213023695287311009985615688307269006125055055022408336817677170353270079790455141887962672478410636583422047923369752357888007296610222181142535944883010404631343857864238690138829607523591723230025522067622904992169480783142786744132118823927687540089324312213391528359283228847017905248785043730364983847070730197478506591637506049379488644922671985755092613165085002099794655476334368504111490503367832138180368400845565558087532572973467851013151942141178858049102014219071808840961012603808064134630004472622050405948824804483829375696612212263325455483603087994240299034608899176883614466296545304520451907048025775316744952369719840040789001643599930042853748980254072474743327024013158817401530559021892763295065191390829658367042802556408699527592269643172896901384400887612265089173790715040992576421981443506469785683367861675739948032011317091798476514465719858452428994486096316030440744885647645765142175892137621990086403552058135780740236079466815450127623871738152752196794764677875282866550240001298858354605180323769365431817061473474686712474264377286372720788682974375260052912524218970286115752665440345217289982547767410506093216081297296781554317597149309539027191593072740393855982670783934873490144066003985384437629006272051956054128842422295310799537104836460179076490026794618270449736164199127762903039463426954065712974753237712415161835115285629364892576639016740664022184472029310915553741598945857568255348715153361526857051003305044788741425737944021886396246564683130361664841121604723384768322650664490371926406467744472004567081183743691942106249496603347353105621081153874626784292909083366041906750583379139675729104592605958128859768550702532543638110336788564783334879173936207278778121912577718776321135492907759276944669208542235599127883140682425809905121955762745267257349126926160247500427980946332192520455143406802761092954650794355214657519634994126397807185306658364797266360972662273521562611039314477183283753191385520381094116754474620421091193329013473030304197306458797538703218542289237417302510096309990478214000452294605432611481622213362583520110886194551574813789850091710613955282594724760998902381116316956977809974422225462659131122774355010644620938109924106324568090576846118228440740419841115582273475990010382147576762236391337127541536924119453955329901275346276936791503580577485580205734915553342315824867687449395926224255259304710058347499724393615316904987227228546550934814584845134783566764289830527985453468993907977571284859055830485479777345915655797871908884439771762808649612966724088111130208798283203800408757765380450452526755976657381569173801768894194707065516066030605110863078068876466493010555734727858757320502810676612450367307204540515225672717598405525488228355545878123456028284532719554504957574718785805481996952621421548124118018782138993664655279575773046319123820736271736322959619889932908269393821824645035042670340499778725525961347202044347466880849408512118721844848978389628053995265785745490863870267991686808015573342629739450285471250782492550129025832508764646202393083716843224223697936322489259430198518981643367293368658758017703954022181911347554641454035185122088380070501812973252877152641217657970665788937709414249216951399443391850775382575969994957167457118958673359695698185968565712101749347268669613879684191260711697878587491290730091904692675457303819705012723095204274258937477860596078183338386723456605947821185758618175163484432362188668740292111486590184688431578400833717378776755920825223291830645677786030662004064168828345543022710370719354071221552490355481352979155023640110014668374585880355207850925207702470076298226755502012941744925290080982784384116635808516006795262019773448121758943799172649229915366850144329148000306846253371836391084419085749804869704452068294582024711306642839109638452837629930465624657684815178022075317514613265313460553393409124266885551469514751777514266214063105857310508958591532381503018849214941362897001488861890353694140138556256505192477286206284849651972528523390366329059423423107100134900270675802800040812079114178495311186194106243263888451274602039665573462907826896026917260075355561693068202899592523504772128429715291437978613454851165760344324623819316008205345101046786526977377647885489919287502218354430987269917087990220894681226038019259888239292739416185756212867818788207638439457160776772330808418577777290233710957318089396821205019810787293869111160352540395848796164000496355813137701482001884412964335954886684078296453724792858254884275852675970422260920371181164524794839217770540607585170568689390316910228969070824631649462391555210066304311489939793186063438715442642915472666592350417921564425331423383514131435527655695385626237548623883588038955078860786543751705799066942553082981116258018714912330506232158715538872148179169471772350581790591607735323423623487569877336609348155249183723526587561310178359973573548281377661875179420060514869394914764555205738235285465305577844115011128632584279972641227285349295847734248190188319955392269904589117054181003359106935747373473406941778854038540863992906904212664157935385473874150617275913641249574985140319628719748241875521353486401622067405025079318080809575905817673856578864449255786352096585257142572365254941896569126217540865594877408955750665784488445253656137106375484277126587961578824702336831830877636529485554844951125764389618537053730645839239421502468859328568539196228230411214099803078361258291825059658309142086682310179197587143994345527774597211813065662297620511396349046113419645812459690973744032792145227621213496324147268686460504900925825393707751298968217537570528137485219282407060044078403266634054531944170953534415507423661695124544947838594042046604737070799630854415113181696933336854948812923657319809754671358983859236771224587649181104035659745942021373356878926094119243784503374839461578160680156864987681541908384912224087204332553011401756954488355691723142415361116412462191788632236126152269133711852224178261288614215060633205726361999866385188046660850333222700169623267574373191143119668239279621854527931311024202421500406576530384201529489689430103176884123113102244035666658693911443195711795846780290922120514343173157991541994170251863665776041717653068624426371862954743266424307892685927189608913912283989911736163205512156655694963104450078622218838743860738373068196152173408089621426376410212462760011392272629673154524804317614826431425303922419441972722547921513866306322905208795466642466601719414763895720609228977869324297643640456328853577716522197335438687644164916549885612292300710493898370927136543474435929694956369766040947880956883435457249729285703995612107516474691027319667061276968230918582175853412417689246736303924946484660448445331232102855949389714567234333617583350183022820689554997406019474196438898100117848133753856107755857707649889048924453247390246356734163050063451721063117634067191691561550263871287221196382801358111361385750053092676762385018551382624795329572780548227904140626373508793141822605888587119132056824750486772447729248060163558758901350079427719212716830009447365536115227197228511557258211638745090663877255952067651642473636280023831692827098211506043479384831715152837076601027182803678400509852832529873922185714693994368641297681826474484963572079716400083241945182043130149927498177834169104483272831799952266376097807307534855533659263985212904068145749932196306719598588570031615689902347761955566569888296836706266548447529970312198300414643925941109064923813875283261277584146077841306866852064694326969274662186785140174275130765426358264775642422187452319142015997217633014986275554257577978581989327821289511618889985877621257422315375899226396277884242220540793997894942104903182434837103566161202041759158157557192190114909143493008133016596441970565884041160275610524907596689232016914216586663599756053848012613930501246844439782984244516638054356104285728105833416552297164718796333829464460692623908105536537617551515939288994364701423262889927814530720678663628658645027722461955876040976374451040350359837509241090182725698902028655269933743468507895689470480611653233958145404415842051959152585783199735536103394796630786120032035534028225886843024386207153359789925002322692078679392979745199014611582450173789580308730419510699924313473861944485037098816558012985774205866434234785460799415942744667592913113545547782986613173040503862359667247505556158969017771360626878659433198662000477675648310769698725515869404275495640098208635144926623750158110009957941110617472809132868442281197216915829858848195080843053292930341902360208054846686523453601804340580450436544742325026414158789434914233678454881355158764088211068079216458287135884808064915611717448950947229769126600654112722975943027654268028726802848493958340573177568377393152230307650488132687775469525038854925828054688436226830001317844813066635521427876729087886384243482922631019091847234213731487785027439917453544946426445717013677335705971685819877134401298642727334605298721323447883307650962022211768094617857030822495042892325235978109646521903012176679667033499320274777663221862962563012184495728735284198747849146529628050517152958584233756471541089004663519149736364682942028335615507860284596268147645416682625744155654802623550536722387663533553391098062221155032502380462571262870562664653221246163705902622215029686384209238412469082928765704292923883029533812982792847751435523066886534386456172454726435998140071601918198715430916863245519427616934586432635732529041441189928108482396575308056357309878701695835216892932718356060544875546589986288833037561266404472158338124160331118426360135398713331937726326884204970254423307257420453155069664298719090031237294274603146935437483414306120668540837552055998188058132022978957862171516804055246730633487982773099718389955906062323025733293195638095272995821227858729016643749542869836908221950435397615311645404485458728000806773309043782800610278471641840780399133549001695758941915854777191387474162124415679389264544908704947737436098103916119690166158478113377234137274035693592182045716993329422658238677198558899125994338783378174279108198431032267393929333816452706936768555619791370164938680863401798712153144280554487911164115034977324666274923288014896178393173705922609266032022905838300472329626018581820652656015372155143381619036726068865761254361148696828513752780995086740488373667088820462783002514082946725723852226125712985187314406524046907195255737415502317425887257992396705611060936060826461838353472157755304812952150395962104457659424951595483198745958334247211745020910117216761532589839079818476282166883199090566964427848757172227086718878308165330507750516373297083371014453094093063137947945272088111018340815966811432858844240281239826136748894199984488043812995469045607890668765094285153298920691206234881489449997887122263277318339904663897456024243002954736773727368058381086569077995887753647905878415138155793114474095675953964662603847565739220115587681572500970695079778362069500918069839337013170780073058005584322375420031566271300703617131294519602862503817144138561779554177534437695784638500619898926043899197835850960483323871805489415134510884406778948263604567143555367513596691924218645480800342215349121424052593332005051932557021039275288079368659145828754970093318819380378462359246043827035802092449378421831224030905732934188900600600356749909712331945551674270507370246035902072528521399419219577626794207924016606927690325255378868159333926575394370874097944811231985550403233791632712918141849558620416774102796228999516193061206716265861208976274119392413070765936909550056257623671828440206919093985416722624540959690220112188612785882418952816358441198007000994313604444534270579093097124644413778224868721340871862433149467957350306969180685267892353339151304366356994594774029194210360121301321851361624487393813142594934281767532964755643868709133358848318111478525477433457048611780247180694688855014437803015793607959384684892174259748446230142916928800912894804160949110933548318064631933883867393334335704888691575529344784631991617645333010653584074720438077524000161020300519354311052189778365872508992504426899359818883238292288811094960654923742038137712206035186965025463035909641028092691930975151453004698511201919173444627516965220278247350063742457900040061250051636179046811285474292108301921447837589341741320493541611140370762067039943450731413256085451464623381246168084921617937052615305279680511880695826975041015144588857944212042982236401407555891891349364910645504430545125068967277229774596876058395526061814150056692026490645102654587790773830073845956014096316185571864577181295590276274233990084571435568236475617636438789568318864028217866036919264936738656764926756952519526384397766356632296974656481892910898800153561687672256582075298478737411042382422988301674539901734377085289202062525340798161055717959992899392556823941969984689616108765028572403375860117600573363701155815681908720740255958449554782773017119641744469478753662588946362242211174682083681419788381130068626925869223229385843665990626671099721579410375295950227117040064494432826454915431978863977619532699778040137575352562027688828533058960698446705158921236781491657038879163738910177716682657989750829916225725507294481518585647254824981255456923396825976461337544610741096548832099230792062970389878697207049012897852704403520085862642141986690060270867363187216223669395706652020217878430722357731823894760316526610041549450806598820148996323197817127195614578865813558221779640743789038067775729262468000322558352115087339668959508469299205994079766368844603197349266908226225618078242712603676695427010534961038274854495989791979568589339223324843160937739926165744606631108663193807600958932410130019085650085329807122610422475293556242095935597208412262681057450544755300556759346762229688929324399630110419600487595177241235958105607414062602411749949953500526390479149735917567535124706297485805398595720202209014828500351055365005893669034541979779402726127064509088281258248643516425886425329650816591873334350117738074867097551645151872380341311377628734222230630893514860487483064219668903026833701501387701611763061107473354615930010546826129492392797700165081511007005678326502789582132290885709503238066733345020241289634047108954386875177667836573541465887971491924302839475434898264479280027472477621959981595218236091857332259990478890744834588020520241112432146981758120764937462421705625117665033058733640347059543487823381759892473003552639890866833980410483127247457177765261928736708426008269048828126248706925792869803050315812695437284580011281610703469776738866049047986217063821613945505378875604832876595696400426053648536979053551625802355571466059422660391573936826320359399236827490185264994631648559205090394838520956096859122441505236614698813279197527471343927284443429221299697684528217492297630993458756742891743147137449178036270579216531956973268983334463086019297416819500337570485581593182778057697708472762562743246664971234972926573340261962841299395019674566746519946668539715527250257629077380106243746421994966048261609750704918485143653966499230154482594646338096738298803130761378286797016493607524938818947517788986294760810053082481324215254256939441580520287162016739756576237778529695816402318412964923413246514533003596820655316675018644784478097434939057258277457783550088338490062360382856082058165804686200794963455600283191533367611447499304583718263680218679906669400964019241907684591052278314671552867003123309166640823347126093877730638999545472915452918009087029209248509263780544767414282137185566279608611558602835512607515068397892154531541164935827841368151221610621527583405560249907392682714103539681885823120631398390483301672667800162270780561361929745797599830605092000354154125350467381249850335468858661684878497074280795084579976337226503112124417745700125520564721685920351623543740527045174989015706760470626168625316180815258385898563097997836328809835213080655234828361457741818224115604742950225580744961435527198106154143265259501754697296598185310921742136522211478819571133842780798286933809788605274989447202804968775488466371696818138471697780030669703935319636940620809890442915404241078934457259003296157436917580669099449472206238950395652023519479927527554703978279032249075578588751140832173882091682446263108055082339585149640443146602980251102047117362735592093285935801797976917825716049360289759749870898729466308000765292501275236867785935392692628270955338571548130670931436041213397832661518720687473862493540237318493330455759245148585341376402678553932867370584959470611282024715301269201352164169275696325501152712650389583472521978761754126055534131791132078996562064485424234607216000401938463617096213990868722030151491775354772143210406165328356294934759356320066307693595112337106486052548696289565030907840337235667878467951181683040984414928416405935647866336382852012453360644321333413558252311138964962105336169418138784867458579333313151744904767075739622453031929291805427318520637985038324978182032147486486343912881306686677394190322385980225715155659859576955553272315589055080915398868823281967693608507828760202958850204044331644577073221847523416689269953784073864832227892579695318642544485266422005706171420284402763686453922618163184988894459092400652259884190835805993395890437269424059631415619570109748649114473924088793974004602442854031984605312641557350163343325726859621284168023937952291577244220333776380595069073636340481639714454961010929132365500694465263750170000917865552347018085383364275143284272372467647297358581223332515958025476815804191033623355724038166235919201186382592249693740261435454312066999681819072679721166799092673424640061325857767593625138248153501993693336527116266835163715489112299780179696446649087414504008476224973584174245938421769645894011383690056193298582860636282499479817562703089506752215417620679194484481765148697931534423636977575608127902686631568905351409418888178667344464934935089232637670642875725719218968011163630614056901307017802499613667933652531002899018457528240632865712827169399900399656452909674842698400902799247581718058434150609243555199398804160674518372929851968483314822995352534710416718403730426886978223096257563726680698532118669544975568405711698058820837673014774046003459061637027321045627465696588927768535221426350310297377246282780130045773220081500383509717129505587220983035020710294392740278273590868029117488248938765106857532863779335035147485455256467842789336321189825563271350913754410614688460574977780983581667869474097669115223879534817521298755856894605781376003415929485178676639253757926928657562926966384511382058767985183794679975857083097104215617869798457945767162437856486778526480570635001084050431964549134058624509562719150338387796816340589881897002551459051306731057544988496442909966847425759951975396684165227067325093403529545267214495777980421435961534048436183847351972690119265002947633216816240231597994530519766280718269158414351003343666505828490057584348618369040800308702426300343203082328169457016845796701560193265128139220987474479285304160731050537641096204033993932949002269026766651976244520431325383399351660774031086567323507030891076681535213267012461185397866260854175780615275172697115948413543041449106290448869367791186314058512422543310203991048665024764124046229503342090701280255500312729622910656753080398724363122616484818818332598280652849046937711477613210648634916874221651865262082435033022009589738035950754124526484245552100876965415491729830965896965685427833792034276877858880603874150450352913270423145531445143392169764469495835996972582779332450701375420087608433678890747074685042379054125687724748555355471919578806197251970927563334046858691036893883036969629269906889745241637693231807047699333377950692248762021180976993577364682125707072851927092203478211536977513821536453248667369829290960227477521898852444170257658217463151224520279068379229497037483417077565315561464097313136664487484781695665387727341210275772217898402786013158075379718282137337699410922432777024460631804042913895694662915001890995092810328254718248831550762096840607637696184610968322257010698505720335562921445104365989770663362601555106494570052338615664587790699149804808964185199834656862773778272692538060758519014969417656850125972535973004576713232823250301255926706089318812796848668442938532442555213726042113479667993224439444707330631357921924866340322249779200750115349679545897412032361620976055606825523470246117821580974023299269178345164147597036809003141459985989046924367143940451562402607312000260116283060547117941411722513480792359760209197979141241111524942384966859390645087481587453663745531595029949925056887107235791681579577933745872716232555323095127909768560654173675591537731180136196716780534034104027695225545662410279534735742573892869379461734880406251671945619367605040975937713795084784522620832345938148614451335363739910102536871068640727356017140415528342863759525697470014963074203360110674417958307754576728269747213747579308852266435161630636543665999859636458680309902268984517798691858624302848903305442419824096634723911838234793545797247317871627319005937009249605697488514886938894460336314560822889756388516857064553002935281835430280005530752624931823712268937780385040842407842576908728375465994952598605217365209428267473653435752527961619409701628672765234516808793464982816389729632076866053079808144502065988792365753010809740158229011988791548231706315157074822081777541476730682202231022105600000399777604466786013966178024547226439521800666453555902704386840495272396052062279927125594613978135162716659679193997476045059046008753564744953868822438276723112585102226102583538962981682026950099805751857456235361855530539931016200317144521575273919124695100496802888419000949677079002950109505353880926452114067637167048097256990742381691109153656649951787534547382135622176574511732218218640699061916098909175658712629711626577860996353596838424550654206014596511080267279665772875156022003397987429259431958221958873973323259713315666726714892413765934621206432267791096178977974427581389533712480930433423750285452188400478935526386019617340154586927474597569173901898429044053162940887900826434229426913994882018916802032151317104159210903756680228630432377192196506078663415952278626900163845862150352187005793211747982383636967203310609214191482930047026880237737371806600878098117275884572169885719637362671126653648563276342971613981860139413301297722125481830221007393266748823109085751137732923218214263328031202658571320902239212876215643153336557916664846623064216584616984986917580881966093847556130783138554589557396405911843916085436934103558989614119830720982313967692689974807623797080414735593520667372009659030466284021697513367287536977055087988730131931354745764706825770572654031098341257261065161855189821421553534654377033951728354107052835584419113625252486765041972552423722125496363693786732899456947149538082818343484686960256046277054939776339623710114560643244512255816594093625257780131520899512946356952434396040344859758661858828718654513776651381620791774109376124706261501230041588205313291465465750840084359367046843567137561881868872089578617058358938410191745281517674595949279844728511718550777448342783149265180262883923805840016628508387364036558527194904589953129275651648950086888905285163896230314144099656280574296665204157899203596193494253765617937691373095478413578760507731501062359844074451238871861710641769967508507209003399313271560882256851166517382843591415010475826379205557383375898519753502838930359246159699060908005099988558666917288059910978263057449209678487662109902607182741967039839159175036135448739271679561018843941216312014359834051292020815807820513749714659656011761151108101139723209134042786111534313616279133840592963436396839705829341888582551785925373389159742541987960355469593565263938957233111296664685510905211396554809565095141273311281988769805887375508022354893505138526172171663010796533776255502495774825320287700275724080604001480408241774321108166902791629592179075004127322905386452063133039493022643876595063930145806181427177183788764201359571591864801104637247613688202460542117717821106886236039444666146160396829681949163484557576877578111816035836791413748081670826378765009824921208561061215464489684688682714168291742299610032576371606206685155158085216147779932653745253539540393740425450625552338031728718207752458284686944875916726250402820834911413329084958203094111056478309064795856646290492667091718627854456948313442104700489345788351056396846648369072016582658920084479836754309974846106487260597382306147102341360170488671554553724958556966203911908994987704587296312442711189915725403396252453018139325860824529025214175032365527880340826968626444885620467938985636036610936108197728096318840725302153349841518899838558914500195131153175242801796395119635925600410777583601882641296523136975779824310634409232444478223382672408716068006516204474613745518991640009817380068859323017554899289077534773904505094289946137635537250229529899760622364768262239859546729480538358310312298192968568263481123434501512151954839111080225871954197645051501398813801601100542570804670971710166153998324032311357959982356043466291470192673102440695000576241297159740616644873293179742793822916102575492321914251206887700687369645870744638688954585404674837721257581746587525454312365358066322744833416717044458628072899755148281932586598404101594165555508947171841161843705422038708119145854389181928792034926367650663200304630587417693846564572593862666196706210827404320995821657408744342796102826796325028188530605630449701372635779255663321072998716511158429196748014740824854169803134268644751585988306786965437779852935312821058393026825837813307852722804443313297304098632201478747397232161845604443185773382295901505274865797057415014536669125967959157239605447248020068504237887531452503439425378846267482285259607469477909981749856622015324850565262353544147552905983049653744157391303318694165640167002471108567218078963685323778421855669294456686711699407372905396821428006955527950766127402694343967730650276340670486651756197345065464363990369145662921868681362366430142922428670490154906779316022482152534247485148144164887281635853274845079955529440553195031330945295759932237249512774706395167233867887927149139787430837496707392322510744737183696251516163587493179634128148724539807634119450552571756577005618538890109335040851061397268683575444271129872197957437904270114046974068598176061754803670550525400920141437817962799327162139583828744623723377560207087910239037938628503151544123806092399456763200332793663015670359040570518225234833295437417694753289429879355122196264540830766483904241461558703828819140289500178221242001816988869880344775026910103843818100603729933538666081576207794972662764934453263139570012329727724681743997598634031095954659031852755556451635791152273478899089904898748141340740848568807239985167468621600882665552779782306219415555189884024467262043491657795575431465367256300091706112359511949824269205489383380547335460339974088469713477046193127250672319589017814309253778209178023569917822876655383558498747424566233522953499195952056071334400369270319889536932231773684947304832208695206033590276530975424453055787279011577983572276990688953735451138431972435966042172065291960406451232547440476852270171649756362143409888590009210188748106412959957223846988171788857313835214941344893048655111359622444425942572413569286177078982533955599212841799654950365768479995771297040133358296768915790017719283255402576732131547132027630103274234252351602571830821803067175965266581143846107404938278796107299938006851541635150489775248745781753633772176333876221331921953565464036607484390771629348454098770473139764885240119804761678138820794774055144928511343079753116700254386811437313930221848526512495383498889811484380253889744635061994127148387153038359300754765002832962555358134002042021934965713919949567707122630936522858108453623393015505554125063138916818105087658516681783514828770653988223803404802989431973679717709181541627930052926624088849915889257397536812556756366650026824529792859793436554770273108499563041498434488889297514793538301007015415285975785311400393859494010662799760004269646472838013031927071260597415969040696753401767393109277003327511834674526116412752607676397099425605510154148926472762222207661002065562752183804736580503196757398432459767677235724798668576705994629503812057069426214001247326939310265725161707280550003969098282567937080756315305824044853003465963887191781855078273620123186313820642387374582817437737935749166128952340415844458164983789763670286844307367972864836398924498265428664932460945559024519296663830988022476961027139440617233237611622053236288262598755439050064119299466913761388437338721396913489298726900898067735896180901619120973315322117398471404655735380859540363979118897287130689564861568923183555407960731067689694499434961296822883014022667090282115539459907738919088177732193098840725088940208953140958934634315355701514692260669084684810557766096277904495177250568806090294567482952479078082886840861761840877339634002025813231272820972645813549954203623473054084600091268354552917539268055070793703826537882958890069814604271425427428109707675136545189022400908881614568295815987630302751802767559918985664893659066744318168879844940667051016033574035931793020500121386976420364449728395416583541105083468091011237017046110372948364123878996167955669615035121074579416417794787132909727056642431631560062434638029349962255782357688064267800963316122232163315496618315477562587290643265898037769828902433855900252194596051082085948690612224099083943775255169649505554595314542689663854574021390418997117798001477154359154265286928911264076807083226350609532145390359350046328258536772667136031036421251365818611325331272357057636259967292600195323471871380594028149856199662722321160249054369592841171763651159441625941492234865839234024627967123588730551326516213002306336393517156592611717572509529356851056797332379351377879246266672030273883801942711872480438604690413378150424257813683139077203245559581384157421874775974606503969290934985494405303259501500294087957961269027242244110170330606070251965180382270549287405651091008796857801991993350318504469944064552662947735223817245674501100429483919614476517749566326617672954698378019410771648155857744891899265977261801114457493260900315719571082777178660716878281435224229504776683385886282051781321036818473092286658599391728500543813229028356540949023006979001898574898454910049853713668515576448796742518521910891057913568805334325731678745577385658928428667450953691484660270513184202465273870836428156004970330020591614878453410074893952917016051721006689440449386527601139901981292181779077256467942899866141692290577250373147074532569742300165715805259908884613765981657361365231260598213484503812685286664926814891361651323293975831888331401373375219663494004990033621299307881603337313450737656203838018079889667724923788606415013907194285896814811281587877401040693387738734105683877921810185542688044461828848773335226256028293047742175941499286115341476162998779759866034547849184832415816537777831639979509947039613862448065107746706573326815046325614642202941576652268053849741236157258069211156444568915803884133914321259131693906437756444282854749067925981804389892561179662349485803698275396205260705553555664363669914528154421636630740223624735411539393257273562113727067423709506150547063137327043657854177870445256532642414220292323496438947484826246363603554546584806430385487662687938968917576202466101850578544896389973073617929668034001062188736689361830938153026048372423327393128515108586662993235856178735380727908669405369415523241380779340653217585730979537564694117166105508316420684819528431246044775657201518579982735360296364612381902266942623060476443914736040158305550108282847518993963548293373294826978565162046053152097673397240153425025668613950055986914059695875389032098430798769282343979576904345869060932706389761239585048726069838622287352234636060502083387246907304498348415597689759166355204581496318119973983762698013730571764686850790677479235821389387026732616330470660411685622641589392026462504761770947962437742597974256051326215608696062173483939421790208924916443703133181189433640844776051572937268479391824930312090608172310939934297223799553075000985488670927544038431617935368437347378037787776126639962476453077429063664058499137741991948769392225771315972675978688985951028686424704551533268937600869724601561259926538785436655208820063993884127498185960350829922736311114827303978840847837012422726197469827523589805117625701240976437411770317767255829135402459881421867290196962547210284330437050020089979075891435902389293813811627741055209148031057682388522594626658278068545894616557932146011366531579240943742185275991120914936019057124234087499002446989288264294239053990480772161918026518169911127475287538346378506469476846759435164662289986299992259693353789272356828909545330185665765273872715454605978177333841056085613186983730829768335867767634709225071515209170680102266417807759982838439751427903898327857007758841839017997008071722930202724700706605230339072189510223101066284515672605185461678733533687467420556814840665289215154356998447652208535835298598881122020094073837963307075871533710503680236220955724540850061048592771307211419707962250201275838596306599159492463022516418672060556006601331318612134363154884665234563715779506247371889166033772143094263334590967056182253551272189097479561281527614363953486590548491188838941016339876229962952754949977049843992701534417543899449495706683110502600266255964154108473646381399137859018622284087629777088036884933450616588259416037981538041459177779053867937305014544951767327536446726793662164134358173248917857447535442452702063894601230254428952207267090944992057610612251811215393638869067164945700150970552856467304494565321715739773172761033802333224607495048489764516950514423426657716307793379939219063835180109921392777614647573744096438919106802072437857191387117828478182902581433534670878866262612311305228572234747453693775302793353889642977993947667188702352060802210669772162476070387650859832512109289891659746131097303449529835416337222181727114632568436500226960227593011377233135010741323057380524816794487844560003601550775568160698176456005756889509534377570466580956793121832318462566991345179724168148284056285344418946165296980889750395120980260456772328461226076516315525513964130440324638557918414623390830799756982652076302817775415303880012848805821639472312569265805501784406749795428257596860909992880400423021990550095144220079891139083765944898879568175071719293125724154574229182054095699510157267841190369979537662049977179670677663904145766240789423338101723198234848088398347821650746862660283664956783956406070471993117907824679507386985005295982140728488900178284184398619990818095250916015788959736717004785208438299450544785759786487780481000404973862788696139188173505015476963090418422150133541675826838522887207394024661760163831207042895009770836583038223602769755514495556919663312870492101977025594443692116054378294907288260300058689697219668283414582720129382557868520493187113575336645183053688571367783296526439743078243672436622112626674713837622226504241281123023048068238288841385973092629470322990393491312568090995505484679538059703317773878127840320684284782695550244353562131834835101866091937443495648688040036260416597966353297251386630955501635829263956364044508339463915465259215365686351954321013175992462901084268823569641613898885798201360385130063446131128304685260865609007635636941215700704271800760742240255408694790870988105843771070830665741139831360828721589944343061684350203964560752568078254439394974264915541881972857747007952283525936503312249650470807956590238602166166294821621835436926076117530299354409551057229842329947213593875751117717198660265081053910715788409158158782596897598520135174293484291697862249731017556891209849617832412516543492136903385503861616078013598848137315786732606907012343608038513073929397683341630488492109062424125479591735368735213559166238564659021505854793630480383697745483796849696024431385955972250807709305645286811668706035525445591638759171478972705198030363586193971443872131196516062574591741639744776243652784129466235232061364979699022271962070553812135526478981697907614455877080478866574652111473086851415325643075567999777255514714591547571041006621625857209143713401718954309870222266776634879359285156509697696160458919857885627683214250020968857803850418413979369968699401903424194089222519696955471297453788675249647853107571432799877613401423962184008293691749889669980226782605545990778370291064409953390409422433974840892724169424323396944250937139012738741440654498132910508398260122345196898664779678132025069480397211051505623245749962979263642997454493352749379118101782509269424008054375633415916411381669978471102866707994531543866550164214310137149484841550858005761088179438422071081321325768059643047877994873552952485745153862256326312621251247269631566088291860655408069974864593932645699748478735963761554090284797874242246106813164801150053178365056393687503740274320176609873836219086552045244236033215474177724750884843156260286459162361990015241852733928772055160474105325406723741149659998131034097006768546358348684350371334766818491453940300361710357821245579580281605454893801035560301284651963112750449506070304164955068747965222957865693757412796111256646499994587007263353484165272294788886637922701325050012738966232692832036698920653122743441947018983190400831484184308664697001884702116443707888745763433527230995228218923722372603100411555611503873836340460935223323710036033113300158061662862418448958607413461854499372737974002780917175299475126021774449135637649080656467678697746585705570309676067472594738192555516073024196119982160216468894559014757118429023645002557686307312154281207503333856391353272843251966510434462297316589336946895278105121118149760085778834251395713376163829806005001289850086438023988170127992132677613659021973354164955918140515351018322209483336841392355027647376263209821196758968897145740837885652428209284866047474546606857012614959937507755295480435205007690987336218402972480179741326383301424358823098803294649119169075362616401227360045638993933792952093738009895360886849786015599313101081191747886355495496780356547144199162380995631616831448139685178768082999617640781820507313300538314662935952535801598836704306474709961945947058720022867494337092051663652136900922122689527093700319387224359993060955380212293731391975947664117112966892369323801717274330322718987562789545868114959313652435441506346602948941198526626431781567906104858514754820606704385659394657171557830343042835425034364690478433226753275503041561685119311809689924470670612257015507681752967383610866049986075275436101952811907420465955381675487311317942957243858106715987180144346730846777060748226579180205161134480918364559063241631642930415239093783227267476667628346318012086859417968290991726930293741582400133123817673417391313405065473679479117256214733696460486070377782230863857330359513883607098241046862192374282627377770691137678936839286294029288183538666096569212023353766680200473726677026395537450855474139361730667352730182508298588302745305415066833248263883335117357648638802690805923507591679081032853016710992116418358770955364696384832963352720361121739585155539329348286759792331443027632880121235246968223669235263781858823844284255523723435251966550036375633814540882657646918756553353184876539990943034160899929848413752551787502160256833829126354114480569917944742271076022624891854051456476531796968631767163611671942175269624583969263755004098523645256593161441477963792261825733301065767177559605311555895463938100801022327798162581311208035959598728927934467795443389518082339985551707497915528915957988464629336560279960132204845217281179686557436363684694962664137995278025131144852791752459357944375963500678392188512893736833896899469379882240169913082813339960051094822404170412570675035680727267764036182940727392421458674704671131967293748242050819398260032926622687590358689864966802855419768617953394739694184946579150372877164758925303136934713291750052432585423867938341066575876771710776617966162849885548304042708798223941008435488609356259241655609312488775666683447679211114858234529627906009377598863660219506195103466797185411165197007133469544512058897771510734278837532894163365016397653721018082444969625437338536099392240371921137707830245272124919639217810835957236039429431720726849356450009090118356453699914697284459708106774139362982235950817736527401751673380307255060173556648016337959073447168249946652723971212374115003793435500544074069577813256007094300058691865716285288956383649083934066944476613871776303107580637387837847422615560254089862617365524247921367620405446081957358409104866068575161284702871620801172906220821851705663559978129239721679793675997629921894888081855242449309829782363252629542727092364639548412161423796500361984851608907672978548137221243792229313961430162139432772149984947280985409976821353297065046439416849575231128993186456613368784861144274235208313581380108251367058232020497700301917299090544553375356747290146303835712093120969648632539474693340146335912391509111967772332902413400347167620456165304626551349658536820806256627501250955013330191072060656078812945955065156421268324614009930380748270165038069914033813076559562885353293666116645133610796778681596032887181818323318053894376085347186378098567829221699900150189040828933446907315277190443745948001231375919964006680551249694435804233444509599102400000383318217590839913316807226129413045483113730439784668701317488207194543557591652714386667603919556293739489989381711739487580569803191235178411613502353956608948054378010878140401433686379531270655928069814626164350165912356034254158602478409135341478338715252681443498145428141350108117593103802501221099134885939073054701470755550473365011736523878931871512711817994839251276075158339677940843439626298783528750382381534534645673558378865386881180170392004791814463925934188733504993140125884428298770170141263269738595281576307230874317663268872948946255547721054194930158314992687760458427394870616720321346121150829492701352976425068972865208369496301274680708924260633821180642837095938623625471675807901526744703273216375693842978262545320984625106374378829960303979692769652322600091468313374937554761831769814900827630927368728162784220181634452380637208517648665743066755680278678140801026662917969084706345425093212307485337982668940085357506308961463120409702058177798400136716623856003378906574561194467541432198067046786303331461406918733659706355203579851744791441758910135405539397060669633310321807888789733859411701730873905518999415922882812574387095800556156835803861136454300517152057006689210880416316507766442656467202030772867937471462589835285199038368751573516451127490593623003498411866475785070060899329767572396841969090009764235813829688174348377255704229050941640297065333518223633302001182682718134674373531556870827331378174768981716387401018546334640761701937917322436379108896420845656370457097287818905737628951645505462648827010305780477271438690872584759787279794330454643439058354476845699725310774226802230895903024402848402887773715095058970445548444344910643316752168093713469383056051283970221187143097102369266951855556836696877415425239407728125731168592393984834394269299215998177724875412832226308963693060379844958881787155227590560019227846960384990228965234683994773534904195252437355615447700009686131459440069129531921052381034154166295467178614259772395853043954788283699426568094882216678689479252973628143807824008714537890817222708628307742141234758612014589756718768739774368043591151197395583510003697716668015071786626121009553484054300113961059710835731477175349247842747148561880050035519659355751251052570986501319925808013410128807594230583808729472703564764646739010154707717209933538115407863477008381084529530867128036377670040456210293673143437597288680823417829772620293484927693094026248887291763750711879470904724414089166380098492402175785374605448455318629445675829427487077291017646288274733455997800734202945711752525299778805457113525255475342989079140264867589942311598037569531713571507082934671653616605045578759811059176441503007155723448985137670119697130852511207525530924390744554701155080725771796141145227681678843983954173099269299680844147193385572264035868588387278818751509152034403594351029979559271135144609029994473914585773834471500929305136342636253193086611731282294879355785561340536628543064421648926827358569415764445626948241286799750572444589696422131964183112508553672724588450675000948337364360356756273582181619421499171208952267590438835509794324224044724217501369248561158716024513485512393168222876338383769371695971235483277090213327124664748564182448845964102502924369604208047461431818943655519205686461692226101547224784485123783578644927704829574621598820116095631602894583702030818896397242821686752476228304394096892021342512019299525757048645043282821400674044307361966447320647474799332620834411244342305884155574784542838488239319216438889633983116290281391087566389409178902104978469281851689839866215769315902910670143524456347532908908351092438048851657016006287018937108139765837057691582449948279861832300361227066291270257440847736092355513595935826845960056039234886701807466293248932233608894178378260021088078426434533404290380690131906634180524675742107378428668099718707118420645773817326415530262977721333368272207792635095823270211426737281820417030045953512190019849397996268665506661234944449616908706419927007761229914813182285798902813457451847479561384944545401833314915299517276146543418329803556265550766004711536836902907842712859238672393396190565291342703247144418916122985455212344795423873834496045719271233270164301750015735705781557298276405328008167095327853724196919984730517253309779539894064066043703628527203752177861799002991698271148115375288850064420900999472717732970515107289456126129386754835074950596364122130172880596024398569736396311413092353888173379924350386720243312775803575527130052234240902031677268217791777719619922976128489017248081647418293109345402085615266066296222025367238462172401343202172035252745503391405488603157248167887245750223606355100274009227491700033622847503231732181245618164797075565341787697549661616134060861095183825662213258015512297213270196074547942569243100948555771693565467990095888951947673986091110292104691889840596137711018441712883521765893070820475269041190979160000646674301114282195474602155728029086506437480151714787229990388669674132397182724599583143397942335352916712362301448282768917751175702385354589222174952210904346665856925790134814081957199575330238309415979128187131689322215966512377373236553789960578610044259959337329197800473131744021951407277298958373920316502745728157146501412496560535379360160390219386811459936207376556185593613095203958341099104268778925187588956249544810325802897132779118151447547818653195796294035561008478693066752955555629613453445407804409087455673725815835181941635137833784313351112267001743913527145232530872921119293662901197297892905112683225904944300413987984768468911468636709639303684676849805558825655388322682707444928539673394130487332981778770073943400277718618080553927299002141136126175527087987383500754576676625311114746010477865320309225224627305251387836343618484968615133362751782425806256418245589865076945544366891468446731208925348195984420179945716846707743052243648644441578642218217184527974614041445322556602249930582881184443826034391477248966164600680640810090924791733886158328797637643294494145303490873745871937131086592461838180034311713760166555898707440386954450555445601802321210237043389973668018575771073904057644898910118097056973174580200816549957159185566068080630182244441361871211429538553489471696243931751156258614316536784214461497910512238599798927747307425582003048344177963910411370915243786225995541230645135755289760020197039101046317192773981486371387900554293985779772755827810491407237526239999065294775084550501310619490068572987927128587090962931567739760898035890673726044425885713941364739206146599352641802215365173204860185375308018304888585062020226201083032797610298257240671236774773500103821217876887460783555568283754095621358652199950820815582730556154094200807953361145748808770854412776958038408069645457418849015404854595266586816789779571134586446568792882680721028532323799624278570474955716298362115737749962481335627499787560764926369898155578346541397252938373572911117074992394024119107844967856565130696810465488886972867428659221148818516309589643686324521507783285565791150425265867155595981818635220272455612765209779200675866338127912640592122244408321638801724828463391305424403566506974390331007456959097018333218540147529586966371944284186545049035129815068855001906100160690943211730078543245514299320846905670992120065886476044415620543302089374561553627339856556291379048411361758723417606340001981889074876855566004613116296563192402803520824695472087892101609390774958134208734107298183464397817702608203304488563449430532487216119438941194111084553364210072399215087616937922193271595412844870896877101368628120831861155560512245078735608437488763233818586434680255626897572478594366070471504790136503008515030108479819902092944983316682087594968883502201004402993456945662312349264709512316323252676042847866851892425446272562613077893247343616155205662471178772582096365219016844608875375636366002270683858720150921588948600551546716725940341038738732443327645366651408015143812257122972738352893627045859151482345480911333859721910261087386458812271025595234415657341962880940035890042533982252702588148920678672619308490071222602204531020361499354710953320322398279885196515102734785529690600169470356287063100313233967721336565639288334371010425271021644618307463284702001100296706260562457635979275168318165871265744158195062823071731432603323984242632076273435386557255341661516481298770166704727755930664198521632651799188105214033343838254365286990702214279081976100157983082271569992735884503361124127915962696735438810610553881997577514164516384526225677114379471427843671583872679156959898373865609009782179582024842143529031436073945667602196251510853934545181216230735528773136908673338561182701647438470532045064893520003667279725128816647252283641290422847702544949295135337175258096661728441370854677870654050707739361598831064224503650953798364631384299829837051453283643880487238924516628613895631774642302462855462010107628753824064743371182925809563568699918560595303895996508426411759986968051440792377732877963259099669378652939860112754876631987300542156057453122808178539247183528591239565888932863708690317325457675061581606729544370180957640429678850124834378566683177667721823042786492000439667482789601433275647096327065301606226546487794221359709889251562860637440017644605425018919700101105808318766585632706130576601644386711923739779837409293560716534299860779204502012658624037647867682587005176649798478556120747011874790872401874862490976519724726282843669597668456662325921135586872584828847186850487606767952383355772856869965510983302406871309629926111937471397870451169599031480484948067157375472254690470390867938129261329343636458422408434808930571579668078475206029197642980488508745774009043937534660462193165466559928223089270715527679246926101809731721747585251137148339728490870141386199972891850990519847894664629202712414506176689322127280266760344766251668562885698632797907192524354054582623269433941128070701415099112690048183508439267199128006239424601896655917890942053537240165993461592817679595837615077567515955828349019798916006328696818533759055298587508370539038233835351717614846244739569985554422688186020464145793603419645116071211217911648564666653418755332835318281424767674041700946728026084762011782187869951639793168611557580493372189889529890963093896734702400516633163846431065782433147279351645317726924074624156626319034050544689624401437200692804191716661387144157119702103902470332119045034745693976457595003602530370646765198333131129654753231707145637619869626449757029737399941717717909337760828211727628061191347846864717802267577912962845687725461245998373222785671201787471750684194273675506367885175536133282226955693810678670607009727205899607131866988273858552323152762089445255695625289510908966858800824473027072771834206766947276381260103595801652469066476477022301104759434402214118866347941214757189860732645834724070455199663514048526839368718671302844915271150180809016331325110964355011877302757280198920083291107112040307258353492164864561820776638590861931408947912525750351894782800447382955733149836004161252193996626839394268167050143448260736708345155013251696519323190258762426263928747819832415593593759800375356580191006371048186287663833704781007539829572447602687643179187770395954385200131067735556376250115202077421561915031613498975369429518445366385624662037482755949159516468495165108867764637933881643353436723387223533035233291003661190277439617567531026868831520819804577319803075159177582855770396062721299420506809142378908451821949445684422219608866458374300361567393128609720658087901540751605823324638769057662347489147672539217058192649770367094178829204992349896381378291508985347055325718371751439333139210793608757895574754850468104759594937538166714055416182403253383508694147751173847911598234706683030518792141789415192266572729088402976238748186504767198638382722735086538096196972561773274290136310416985834340429719021170011160853590692214178202021263841759291312863259960043032444808238053957568364945238561770336692516493661715138638464043108631386777434513904340577727498325905830561203496168829140466047548223734536655490243711423098475091913412580544751975444440612212226709375192937920963164944878961492763606506038049507988945718662898344383806077271600333660248305366775593273524803142456208895040100257605699446176003299701179846889624774048307847542451337124608366476297865174512559127563956534536270371759113354934010078707741512437525662904759804357441873802918880403469367931384413982713104559705131164737161198728371861778947096586004024978620242069502440919298708322492639790648423798385055087674274295476346437288177496206670396284583624398137628081356815720486761230353994232605164119149281169735065847908073729825657000661706131250909710131329713524746147140156641501558017855210443257819313159492575171433960478229793334849832648027355174467767162453112510247774823024685879777002054780343286344955474309075603495809015704610288772934165668186943641591526602697138990639418909957770756552529605447540413821412782344720201831070323562688003776618888175145767904984080204271299273976417114607556407172961067420001260081721613966059727458175063423667110151582000209341575882261260874496888784394125138195045386033651001408698755462388878149402895929176824773642793149313855938993253715136366141699009717155532307333978890759142017838650951281997428143490743567588193006557399246423371236412174377239604666016496068640839567364333324591496273538555495645995224392056253977282251462676494838009341551144487442526538393959085671322608813089383532484958295598425498468200635124749522162593368501827474206075611298719523285507549698001435085763744360450617319255324184301887702860942742095890934118822032575313291613855053644904319116779608823223028431370644062656890463010766167460065752081112146321108546726007133977669723115236325068008510528531713208363771830496205811298570974907407872733354875621828018983244700265583222930056734915643057857973682802536056899509417940322780357614597286985908839402102403654759028800001437517412597632302140965537476525437740660576919061370924377612691963868928776003617616719212932749210734984079081698969364874307202206217936107698436027890370940228343641349845815508634317919152385869901585479528591625531341075472074821381667808807845643998795419611656203291833548828963906344791662749378520491713432603284098874498268938710753601593959226521321503537967737453217819078153671305714196041490631447744085859705781986141421255914510110888385736117285673922274260671963140348647361828261641164003941087291180504217169545395177192879266432668477689315266587850518888859451567910520297427191123177960124722171155785809640684020150571173064570134633965151978542101109992425131030664876575519338980766305168541995236183942855428276996512163955933063661195371678048307029906944235567371315882233210819899789828220154648872469069044725663881556534152906963643272314506169728076726435193750566848880293733799872207274741101839852763206611684725548233590690377178158654227264884643832470251077497674587910629193614191359597432265672009255958995514573657583344239324141619534891534184666570136147874104121490749150402047899889319655983282458265162868282567303109427194832081470339866240913595459287652450144003626189163396294264466075200402581313583302506813330335912623433702325982175990794378292673475647065905647489359616054981627229592651662960062506171573352171238806268776668011572702987669357776124241891661719562762563712114669310704292786385901150977399668217580412477800655490564539522328848584717232559414443168177350946216791937794133783417360899000477923140072977481339657089306100343342936562009875433014276556635025356531604925350708206434046395896660805755799646226023928749863356271063843784491242937375298355096411063082497956339741915346292542480366894161516886832835840208212393563414309929887060108541978815301881845346185449917214278603515995752610943944585631156328891997001308713337872955764494821139014838754310660217748100893741897980753915409771746131067521095347350965891048125797397987490780497249927178037594832357066414477545313258363269925580979544289682716262273952160221586697394232939781681464516730534459969840240864894729331394070974638131750388974674214557997631414203750281666177170591274473192411570552336944182623572056527520767535242523590213174031545220141954854641559832672561336111564974329522775055056926804275053232690774946741448454765977087520043850488645358451688206392148227683875157943046979353478147918127019467077641353917506712644276907950431297704574265830775894856445332462798641692565746909230302555020576768411639898160407348074893054007502118341190436175784127038711231268273660826780209448493673267335355097288809130809748904688470854762427379239674258462946763105492586196197001088836441355166756705155188189646339174419195722537679228950445025653011403214132626837729198380467541802913910106516555846513916711979571035011114486087910581818745518510000042583207487979015791417598197035817365575090523393101818532207931165421002966950319467945359062727835941180620203883874104365045663525921497959824985118269799147300394859126233100700189026032366496489422050519368801377177427446409026380342186949984409462514654234027972730766878199853527235832036979686920653554073262345979371601042899036719307544156422891649817346562883182551861207912436284452033323707172895823472718776664243002736660953325665568541976775873907647870951025254134941104374179909863050037999553354861460278517504364386479891499294631820507765315901435537643408600961459345322457545774695893808956914432578750624571847209582071340871705910048566147833803135756767461325438452849168230858379599148019661431601145519811329225832616270959664421832807484875391696116085765384291170955682123090692349215837269972423694664844658205575673467476269617496690142461872368599426167766437779868992448276752356032501185719544807708845790160093494256140201940940871143614810373090731908165464604285699375866754871563792702170798275115825866603905459715909893908660544306194672339439405291824957212666769708755481017172238755998951035616319406060862396409902903871533950072591569133753222671341281770249271533003956061857074803739561088439694212701090570368814375061535000242988121707653137248858653113817841320585921993482394266576452014059011840436986252823887835482497406665219121808499811065716935990383973010767650029655444581726225515776547070855409012082648431564709650114498753283400235912679227225817676291077375951843747025207884875106256135439509543878228673044882339343383979714451251108671033084541021912642531650650765005716635371684314549899144157438001122573044415696605021547465378753605779757512312236602547395643059663394824772921295604275500005377299865754610670904892501113741300831762851687506123207521282938214368483818558710479817709211778048347123080826018184015712267519434600558850465108233124675947293488405666302161623901954685705069377854370555856473337532469668467716160665805029527810300520683550932780766211592907271390306091253545968566373703483265098976554191228093324152130412571787382362490301718374816408187438733170442781294941471920030699648064335045622522529837847480973777219666025873922746127335499414539390781441673801056339297660441029454630888108581370231005066510426604127402923962859864627233639369996625132277147440603454084782462784584383420348861734184221975753384921119457722323855074315891576003914652619093581896206348340577569924699434611801891114107943956053250319834062029432084743154219298570860940753853297166597775623652126464057516326750780851252055677131240209003897718514515127741840091447888578016327389115888153136136832562000278812074103128468018976548318558224116519744155534962948577737484691982334516539165541726308082574644653427405427226340112936254931124210819524294718304301126521436398908522872245354787455392749763940820996896079552820831887386930010986350031031224927265752735605196179319901961653698379066609115755140450706656217563844957647513834551436745323979895525986855641352718455928488901850021207640863060007427217482557491490524463753978247478369610744360412593024458087488176044172864510097959504400464570832439752672100649157904963898503118102890702438581328962648210361348984946623589565274422192755143088348966247059890784789237323030723228347988142966126357335871044021555799738488990079093213092555876284300674428861932297471299377641105161555794172273347382679163959964767032097920605422095792002844217494572660770336621814655895245089462132979007250300349370082396247387777560836534967822812616064647811837099871800613671907543184449613621492049107331999527676198985961222775436551191785724803855220659497953817756616978438842690186982386284570127545903480589406709541648379096139158104659033064294813174927726185054919479199754762695982468347946162002561980422063130961069754157841453691825612710654883806818960075977161265059114241350464137829769280914539680760649172659385519454613306754369111800698167813304437448503793550338176161180373876898310626422239354965844583009992126285382905763788230865958829378803394231714200297927895933047948497684383612748001726570684723141999109653898255222033958728628343198488707224247916525337042792438556938310576462104737540465028968759545906194758099798016418269788862106834046041021411049581054393849715597182684658666517434500107717940123462772395785250039690891323924426613120339379032645520229719479662311329647183840210847669222280704869474634880991219291619730406752545295025781792853280350781177451329646523504095993768146777291352526672594227221166515270852079214787061433143468645109102441553904425714189459674607308302079941012299052754516328243258803952537674449570709792335083631155116615552520629822219274054181320369849929340414407603091599144091762464656290742065226564837806055777600480656064935495145612107223108604582857296092059339932917059116462893502539602831139060080209118852084848256583143222761510737805929774145674540525112574451988583195162112170567212345887420359868606704790861948777976907145353271183868447092656100342676098126984271241504570431928803592520174741144226179914769925880559275709635215027651697038534367562005788307818205841686450644603561053215926877856606829158490145228898704341957843049426357959345889925353017706157479910888414329399500231202687763977674701991046128175133761671119903488698098954021006690072413944205115951612945606757045645869223357184907525773081722482067621197274351622753706384829229524602067494040722422088258925384110124894914899013758329605229629351088346145195045115092279930864546622084604899995287170305578938674023494687402944372407925359742203266815292245279952550326405865528784002606684039244713920246826750742235227776619542044227527978429810603293939386147338209347481950102850949048917260606482148787130268919883526566626453680476916056125510683009940464019996991747890393554011383535815642454197499995917993398045793558379837711724642257391497611489843035984466586717277719459820274420897889827924141193433689561436796539151555048635694392937911363913414806860739892999496334506162334989190515101775586550398638287864857037819914740916120982638565696747245889944250374111056318624304360180630050343989872072964218816010790935453700991943307754515158874471706931707758112716177232271388043870270231780314403500282911297212389230904764914791118768216022585532641217329419302494904860913393804601351472221306513245097553847276792570837095750826865943565289497846978873032143930656474927709740157552457113155200137856087274586046156448901102767550712749722104787061681232753212847180915627198741322662042944728401092419842157511364354624616876681898534920122168477613245164522972213217374046504610647170027376993636555903928101404533193139744235808875571990810958373062043105348367119610983856042241617618219683591797222341364248803041998457245856657314627475381402862482889356877093833551631787817994660553107281888280244554822898023313667474475612745979934426656077385746183094293029243055697004092424328313521637159071387607078969053278838508382418852270073059907762349779206174636026660986237962356084747000216092543484277082339717406664993877262483883091178298769175923563908896872759032076637905299690811431816810661847677372294856688361732935688049764057095319824148227718499273157989165360965070208651164581863488934673529435175865350338660053173150009657359391436523950301460549448952984595511456404761701127203314988330659481747298157835969930573018854523061099960567531430097315008424936218183665871453828192130002491446046753685985429715639022845540180259519005508214159189753223323645339775902276771059447120360518083150554847334341445357050720324622988825204796298180742268571173068203423599747197009904881694469733674980428008750514287005616328976903115242513490867806586469794704976103311793890434155270216807748732001422947685198674113810504406401329466139576922284763563840066300024135284612447477591186447021942369558532901649795815738567899445346714629583702537785956765525612986967492253606215379423248149873389595541313116374076024153195073829096368246943547155186568022101560046676491079301492961945588392628600726215892389977438711825093084748835600205347559994957855448036226856494137246644610844012207203948388534942089159995706695206695886548253936240922493577992144065078466633483317295614940846939375368911738142852120327284360720233826805063629390714026998154595492510735856892392881726881087547784382557718512043785128168149905457385549502667098663290304390471507345757719090857540303666386733228036013004904771285563673068140156627873996303520571112796116003379821085795706372809186527274494525639428499391648655116095888620279097857688166295448919658653838915765430126245061296667562335422206816351172746698806372485037635893699609532954437796884751944504103331156757232914223323716200894448818699949307850736619325710669441556582836214552092034277749391667498459073549514952921636574283996035347932119086392213601457609259836748986069383191099002714751422790424005278856794547004935062469586414566612785356826141840981623089439751952010985857328234298376696093740133273077210848703538588323424440568823849807598445475141808827414056513021188064583607917054985897345163719681057092292720241558803044962934635813327216912103603911776215049711663429892521272880205533535416770583373274213070192402789824651309514097409060530762499833033237839120299537936722208047517784703656340524082795746116767257511006871391164189519788420791868195830523280952356325064044427493707948590334623596001971038408793030567857186632903834888980843238227279109439249630831208009379644474619430621992333611767076662452717226072372345302462825949254224971833516045664460649031497324947794551870827101202375836083683116382129583323544270768045425395651394349771946768646305074199729311069466769243538879826331013783272390873223837525154809740423801328764720943423582427386899184258802453857204480044874121213168498008265166304520859319862912786265612017204948984083826272433657824865049147178545233555355207101906665999504168330282393537734673962208916221569670914473320010422148829391248268657115261656245509948647157404887856328448970233951449982842906091428451629319114278193757702791280715119985262757246143444108614690662246322698249972108675533226637288421307568672574272325840457984958543244148635825561242521488497457051357648911094702219202363965795378408538341931985178610044576142947644464708808328382986668389785644220320000976811723596398428937421505557657084155541545636605540468419783884789351112268203358659336768327001809421845721328789047373348586805875007047953346210704208743355332775783637706837951285043405583079431099888283647677798737310794281644546773073534578499008149989962748767746667630461562615392517435097149037608309799975575866670210070417485844670518079909200735243695437626104146784308505176282699980563659505803123895784670497629803521039254593446444403870477921905647354471307422180252699652253799350083453617180007691911417582190544602877737461918699454569406718393950333466475387948347304684747470533791858537764887302555341106550051732873864057941865497469245194855910708405448962883318529776678341766178559243571749280248984494360336183979241340235338651183251231848010315431282522726597488866498336099357907288922983079911871420153028408297938655899056059544416653041481177768249143839614901951407068340320586638468711682691866468154596244401195053881384794666392245916567886791825978740239173967010812627895330873898823078329607280595617266080524166147879665202987719647912990436133614290100667137146128578458703211184659768496194183073296624150653330165445167139902492670958285459438175258907507891218048674242128074063626973891868919160034808289053135529088005918044263793166405998954770128077063238245170853783519569618096582962715362742487296802993181444891166922114465242787280990503233824226534045653893135192469254208739628659314524289995917445779836199818350884560376773496934646084376233398149079452915115415028705504728605531706571999782376195670391216679013888897785756381848941951387378112506968730038295970091564114415677856323349103827123776751535823600082892261644504629448511634465253381180230569182242901607893900446082476447668453634800104523501232941011619283398032563175460944111911666015228424256542128478054554617152508632524664479674338701601946927458236909147855345412360867294042236159697860571255835910430580645014409014522756044558074171495131204058794575544054432682353040608774843749740653644674437370167257987564995817462964236214823527777948565189882059864060345421316307482232064080340148200589248906828375582142256407725791757895586510508449811316515609588334303326380319731839013262076591406329783962683072421062484599023161486584209132105586333256926770345946529977367818280972305811573224990959491512689579972208837531197650502518367640482495770718755412247983157969561124465940894985455088147042993207061342486833250330420519207609694556831162127224669240470504864222995310491973455763889065462158993919310550334985994185254343497693677114994853194702975947070705831129418361754522581685342047175620737065577730277010094012473842189739938485815863032345175903526313165959359043604416987397771662192076934494256923656709161721025006582840795305742027898575214384433129907700130331718216744900605417696405693078290138899124149938894350499901010145093439168332811780167129519340135990217681626039441717676621833392254517371477855714489017853528354622860938736866222065692936698531613018127090256437757533235389490339478143508683759863235958206290203675832709019603975006331864986363512955059930875739665557531674337597308844086400197989140763669202557022936057923698124959114320487422614317025318383375716275150455578558271087470321371716660993283063649414472994954282996428036755781292854771620352655719058398172968711429250385883471880688546640840238807242906103316945647600267382307831793057388379358340217829004173658698746750659937125948202288411371982982738365226924725600975748160692727582715253523856163701350541195814353020648171884611250447843236110480710618237378903208147321076656372654211068620190153906815090986437703674105665413688436287385932806090431496264991833582006449737245484692085163597524316318119603069617787683160544571538544529472657973092916777025160707311219321656567751567122038454369959127994907686967331843341331429933811535528834134832617170522410023142424969449237924935232232004040703389080908015404257518564711996947948036966788875128812087938804244465177627471008288247793130659065213005575141083636819674875268229245294478823639274243607266515391366890904530770038913593887841497475143271360704643036625436865149057975100001653520003725729761464726072416045010688211501090527063296385591548418491406317723786668653946630656193592454455897137939012621508388304579115812197852619453911319171520563740207166466265095583656599433038824317328356624599185241039389541730804246275303921875996260135871527316438739719712006428592825073449526636864764407391235656161075126461870928795561206234105051470768283048923289977485747829465514894876659025670957887929847408786441922734225372025859096796525292070241783044730662729256038704193242173908557618388477372466580239919412820699241372766369336134779519238239173753637019153209022176248867191304550988091134698480719751497292153372733156084308250977712650789794341651434589412728789784771088255038905554138928807129817979050018966556173812811750754391960784003541101692039476230048217456027525522876922767351191178052312222183538947789327403132921882826467386483381187878798658326858647856250161442721184842891951957768251100840103761368564201326750282357291058461849690958337687206750986088653221683542502585018159662042581044491969292060979115556612048693443063078123004361877050868306658212767002414368546180432969227377420779223447407053833255412710593115543939232507866958689487566584451720856686905689144014127492753754323583699970974668184916548718686617113151297551601953689595685908102385765497733867374585224147746720567591884510314048061510425219190024297121556631311197129857697280126088714594620282172124431565023874587024506896293704972303080203832245072570545100133560815105241017638293746427960424957505632177670904946855541660014269131741591347857634324009426262265960539883094121387158271344254329240632117332125155907211536957542701096899278856060401997731912873757524266991625303553104263365566993240089866128215865353897845469532875404803713864751099337646504088728924901279094608502225844042918207822494278483256886182643035411708013336025145277356717314231708911757500331421593009884261069955876677484736572114156414858860732597297167241489581882868217795020568979344499336398367834954806498970481416390035882716405037984103602743513136957937157291565794378033799338707364309024467058625558738254541519623847349361583838110547987381684384897650270360054806411025467542842327240122185644345919814755042509563658104387613280226325057921620149288520656034658864022914782587084141437264415360448658832756024278183635467077304506901334461604778598564380294086220209048532178015799205452041474730716420448971610934168110241098285543114614011605757397396994142425485897886100066029385841883617035341662321646935605281320528915414963287654312997854995092355622890604688678891910476539774168346817293384776979502033946866064760299027817961654348099384650429161463486045575424384910632234574947085743959734232309070450623618339713527090352911193154892684513223637660021289604210841470875100952252975132260147351405020480554711195187829220830773443677203580841001007456010865541187394339020837416421645902251973088311684049902461015579401485517719592538460686606533022987331240636686612199268901455310266245710585698456280098996196733826322812011599820174078308553756484073784099696043977321972634938515752392265532214547638299918210782540397396234436188855269680797187021871018330002230402215684285221001969431154882404536862900835643685317202199568432667660744966109829698364988707080687104716455391802490767370683486325138646825174615833059875998049797293685350209185701705767728781768338222823705628635097856145464414887852988154720623742510041873270284055169444950078481747771132270810713027510068620658985790125951862918762799783158778911575583160819858004439101103562146316142803823839856169077560875379000637716467914841882716221894624627196343544614076489518452697249097418193277603714473984449178434975137737992158640210604864352621533932938374461018345865301845496078149890313038445072071097700174488294779421919122624437908167422077886892117518562884768682636536787357133103441492714016512088907578127699569951224351531714796700430688750548315217711660396524019786009134207800302757725096579028967725388256112896110902959728379870462231237286038359123772541243012447368559694643367231645066098180497056188963847249183881181841875404880185815181486045445785949813524513989592860194580777101729739666888292560388770581145971489392972854353856297113399573011088937736082797319621872525908624951747651030316645465048106063664922597191048186760844295990104145292826443673922489822885012089030062373922441727292951556009758814596213337438917086214566357316366567520399009344437159696244491618549983810710732203276690031924635151442691237027349201319895760587843396994446560300965172370085646182909133650899242643355217437599728892645895182123657726463951480609404885557346266830661902003751269559402305392045128815010086961974607787080368177638275110346891234603573371206456558840454100973373643623449199253299705664773878416706323768398877762902952712500033996863437802629774057965440663036329318954990541682176934195650834821704805370004896890248899857246097737198361335542797923760714617475622247064084403512192850087615295058869094896336440245070642515158745965346999349533051482198471710442576778922255379665167120383220402569569840685328713789477028430382407399255028242418940712164066666347567402317720789945447887616767872399516712845394398345281744410405589384192005773650806542981762290664773780712826001696259305131331354102270358024487878925558532150507290440147443638770946644919702029441782204393957179627045889798005116948808849496550758600138539712344501668932066805515307066604999386026226020842785266589817690952610149176238051914566535032628401491774015461334397794997388361097724872151417744512252814122044053083937920676728656109854142989269942920973577253936304193352737908879343159130098044834830792663987483425227830888196277065933280067249234039780805559695863812378124693509901982961573887619257464228779130060891452817927594038683404458314317730740954914387054724890181114961550745334253119794856851825203736823738189834242693897376425337098969008597461545544346354447842368335552779453539629581423605422829966167583406692834671321098510144255420235477094025729779122728745523994731816737374841441567723762399444329582824297393900600139622965279654495955558961064080656385510354733698321934541604407195857650035139972969495263868398908597692076129973152354036942552649202188189479260824460465977569188060216521137852259291163547750559683164912242355099606582457813098946525376551162455321067876756669586891230466447097836334444276851446680731114292962232942486921472119255531255113775003563754792903074080728039577281841706198748585321917747931213533766165591391388966038711057754895715923120100473490723243201626534564349775883826241452697863077299435108322331217303152805282201252920444852061402908816518812385910866666255699855201429151662202372887680962820020782852730479995637675921713300170891509563942893530775153689422001490319965753033800201473426743081216482272828948107971732750626998380360489958572665396559776326606862561905958739487265235269314395165223858745057410114934952044287668071983549815688194803529990465078387091281901505297006346344655410667395965394118526073678256628677862814932701520898820536056007443831144018038811244104825661836402241756043471731302270870875192631211129053445996910110110030292139301658594380689975882830959360829705261337375693501527138024144105565178300695206835795049838545130082349408710671949581230435176233326649334081211825341026418319613521223470638210943394562478140193597030687998869529795717275842241057688096939481054414850656416284056357586667291936716641088729719711333296773221808361001730365359580636816005399021152861444151860420298858225219269919675443255442303218299292050613944585425750973690703718798941813044509147896404911305384516457831986457288837715100473623303516496644191254174639862240168925474981562824747015357168703660501348037123283531545254388606219577159239883306543734764532517496795374448664673740081600449922393649144421872501069234705895687102150701383069421698988711394671624793568154474636174616924167070356243409147967259204283955038991333761048460982973852922110542206614852064409261919775572802090672743626385265717309859032075158184295071721534083787712905269625580412468099750001067800378375601675620379781566710584424138144453254492843564663846463707819867667897924502262573932777679555477337737096495103937537177694630005000002308914987402038203933139795590082717155962350144554360862538047466900670775665971004904958880264179259401036707461670968476911785105659210121859026324084375303615294512865920862371815711432910662152392601489815314068511912623190217387872828187397601335015789519056396013089631236116813702591703937717208219656514243060191455125736659755769446507172390004138855661478691214551168618236219889533197202022878518357714293554452321965742414474691372282347927067192362063804402302974985077183095181470498602234811160594448463844547232291612620947869114930198792035205416153325216806241857296995376020420318219122661777503531813568709209199382719559641016445130870907710222852270671117997876126510484547371486813253286841717346091449329776224251597499985318461756248311843541258289041301299122255059902374591773762238092032178272380854878788219117981099986721162055737536515042856773933019338169948137499145213772648093650472059182028705235285634646365435129861615100882661737904054579807817535467328642332790976139407416182101616622425940455356717841196782191519163682201298548077597216693411577760042181500865088346222182741578279446729177138790181345673462052223330554921021173774023220963456407449888285616601789500082199000018472243844448703950496013185286196376464519028466956387868646785174811218897451706730807425892958016725962755133763894664876493143155076769757701769522005207453617126552087809365632532347216323407059058970840810374869198790408987752610666994547224541654374882523946994506061319261429081813677511020897669203628955772233663194607992466786141481502454112883499364977244518029050257738116930317916824769312176565335033879617199566445488310814963733854095799542849442849936009278977242582952232793367028432254289240800139481639171101855140771644879994891294816796694178803425203756892768127916565922121349369189595402088126837308014048738474311612892299582386614140845395385572124896780040707665817189589709659094982376061844642061667134284112236101490958650973281634531727648083906701040257303260034170039057251520130162749787033230275971038010062179645438687569318485518076033524744516958755031867985476672553380353263687584468749652932310805221347221908097200090594633445728564061414246415035043654299849537586751711375056064780084335885874497960974161411068741832374625109101491664999489752064201225329561045480837694044223553212235357390356388677442522525407955794220916764716724318377275737202270476685983487216493768242361157716121746210557062484736059754731892084325039109648158772126348722695834454738879285200047920101825784939779007457725689395761887078831865953387204824580948263060287236850992589307663090256212225738619738358980182679283502449170194379146658404659809523569280624617608244676056026069754833958039763775641228309759230704664025603717797579396486962232476736784088791383316966945709055338181611443095490204744729568041893698029571652773693892986424377173786289881590662073455109712966219225492795576471134825100126656591466356629191442636643580090974241530316935714703245117340497830235133336382973332227157835717962773537320111766999515309545543051246820945089921482614186964129848108674859048510349353670588855272934695875700725475518642210281906956388553572367391747457619138558756687517450598705990347920527288971503023009346006827838536080184613904142594677501927441015342694905814301290209767217530840186659061530454634338317084561544977916877337997377874047468773796796202654061921981871179858909376485884726363732729623763776873385455628748578930506861289571721316361687689707613117527011997276209344438887981177883254705632874383564361034448029349046932907059366516467054641918760114788200936570221161541384311639503346591987728823671020753346216796269501052521223216486902962508483411609650782429952796788550227628267855440860613926501730181177154342123555542836502725275484334519901551918809951540195170626288545396168186114677537886806868433733556600956660053346439444310574475361345578808359335853589612960483140978299071196147245194545602113869742179885893843140193443396830953504799884299046555939263875035887681898779802650259205417066490261901655732642109079037909534375230240754232706354919969158214587125768894563440036375104902989686913079537570656815777744685831318409977187211980809657343869857964146242490044283727447850188086765795100037812784483203965497415690770730469269292114515754162449856786649158210585099405632597539989989040596787927007189057603010452666048836572856996333094141755248115336276195697649025104484992595009053316732201288966815650086862603607421946851449927769545572850233042639840795308853240243305248783478589002611213704495913638178224361561122764598521519006817593126931302623870526860475243478673676701692393804428130782665326107000980544747725442345930151556867587861736434650027412662908475802475531011860905832836818265986193309676216282941298274536121046136367855990524162971386286682401527000975012773202030501112678959218531065030941792153143532140308215244281749267210403383376827194307418969825460132238523863300176643797672832705086777559700132289764753700372334301368825436591721278707534014366029975388532923427410044618709860183301504363256667935906533898615660908171040408134158455733827528057606688463274298868119653840420484297852530113419042982597492172952822328739429541505520277950759146122873051429442706676146970717851642523089014505944981523600492000026115574950101902816764328793231982400177789529085615620042066103597556795862928051184741968202691686323032218954578823735244492837469212412178543184272268626891847339320342890738072493504735426995968325064754377875016349898861341032877057789560956832672923271116617365434735776866673671060571717326863101168188865038742702034052702248140805197385726078401299844694079045546374948055952707021626392220185529251109259410914827429114839620915498073948522362742412990674032665597830060747062907089802866741714546956598181084974086540390646011882493500415850312744054628194416775074195716895027572094726930846207685374196971863183854741500860614725859613049004736778115929706319342403212888248317457997427204197599903440695822341642570235105279985563875288717610132503401596448370811551901888286861919588378429998187302956820497588191996867684106766182933048595615521537600063915799089005158877614668065827170606103893882445469451329285418217019392490307340215888109630569831144661839038689912478602633914186535132166059608180404548043864264045004114974610008895600993390388997049661347507219028158688015673070775195953752917972634013332866244992263263458425409808835786502147527166134727266342336521676322772540931925719435656605771706386081842890107828891717116122209831122870835327149454008416399111315663400251560741577148098591221749615246481168988576402516252650292248393769310479437113749966167182803617580729530535182397785568518573457133430108582562928533640933186398896466580951501016874995039739568730677229991141498090558821421575312241905152383158477086480110967999121895900627406090387098369081077755166317616210847050299518980590548299686779564892664851648198889995551753986333944395552385074500980910608806975460790036496105982922975383683973318798613950866743097487996856794146855152494376487426096999290960537114064651176446965090386453699456100885927682976888361899645658726334280665793154838613026736432387786567807021071169509275986735638425916165122681457856735153990295436987820473106833828612723015434083079787439403164503434828256820997335758194936161811610727082270631120451961377308693354865759434449968979650201384652730714982637870514259878208470253276577846923644667018660099549887479419143069020568268625885964713780426872991056632357817931740880076444022943517629581374204205447255719729312537974658781430033036329875490641984846746745765914894191958518235388090993105263700516541569538412827827669409105888597827815495666785112354828380401542495530147402933825422068927635350271222226899442057090592958146599721766519144497000060917205239952702619783190494144230312188458999091877950576721450655951558887257062144075692789381348320509358475305626658362181517206462970534930341899376680781505424133860449327478790184221373275493924702166616192861273084105075612382166501615943362311848557945549071610462895471285945832750359879703188455496281305996670596008466841449685140732952645243399189467410843817601170513076348344793106377202174172869928397634271956942575147974970973567295655261871824360422939205008745620811014425672413741411894960830071405207457500876459540652779913000058321331984578777624626472319542405506744140991489363824800736968328951483890579482328362696693828292824179331653995406155041940500369204968092049160655151082800737208916798975939755699723348043817392543207684568028570068431559999582400388061720540312065055757978242922311965443517828020065794439892001606149752940730678747885629381775907455684566295750669854285625965789845274974125120952255882516361619606443806168347464771951898660355578053924223180423567909105956104290264013953845901499578695605760573565371807118477458368802888437394152378115144535334758747351024808463262249929439445108912333947452919266368642716023706431968337917504153225023137613235355102169986557030685395475008142329740387280539156123242791979017747100051075153457908806569549640669454578879213973564782090790072832892748571781732373977877003725183856315771289247751776476225060237790301339436702226470894346404074473689260269015115225324526270330527418536150993201237162946860252176519117892870797461740963890922474847494597156278817735590886751394177001507119797270503529315856819817501303675834374293791114595276852471590384696938092507406603130912855420742113800745819435870971962664904206862503078759210431712818913300581947886308342360853759999877732928617734845357978790414823064315545125409676553897106422747590696591132009011702133763763690706481031260175503134417750881044518072185030574561785520549728721158632371084394393422140085688212395686359809730143468549765996866752501227814664712738680622787446740169573256606300086809830345786747300189874729727260584923922983142010028422999913969043996219548372478886844951793276030188768920631546841500344788215926936842229682622643374642412042683910130265579936796340455107967797955751227550102309601824101425917038684993534887953296873628392285666269493012901489327485761791325814119165059987841202533126766394577353184063224201740169466464454472233921407690540874865551373418324765192471979516272538042097501434152808561078357016550459710268956432599702910539916757927210908460043470340964145808880376800926753724059424248819599420589274347514091112187620565821777372816863213823150268894883274112528545985044153906939927114040977124263681674349505517208602187829572004773133689954484398264361388870891380898901083230658658356021049851415627738221252898651821192543054445161220888951707285017085097564117595635400114314570145538162829716237795799864303879986591292453755717928939580929991297841179932450418046724278952807638405512080451154598408292791325517515230245939701873576506172556982254162856340268489202431849696025722169810938597727002438363735432443555141459401260828043459910677918616997355662643805159885191479971012546938658990540968979186200246464116187870411129060582301909718013356027290408756169828151141579880517165922641173940159785881608988069966461146132863164406108297713002076749601681888802534597615273629823721441281157945194097404937309434813136242763503868038882280039657410439576431712281361913892874273463507814662610624300387656761425236161234717707919163045464498301727095612980916118704128067096945759255770556732960906087328581628225693893519889038813869597030780649836930800508641734986959135265585666625077287670203394036542852439794183887963673982240930947394074200182758098252133596634257747352908982239057513368019116627868448799582078741511139234368648897149327022791569678160883561814147962011726173815131921735659961005600815076761395523625960805737533367977691580302898320749249813080958551051216468503454038480124223718690275261393666786421098298157089283860723818638023778382624847192325894523546656867327815342142061397985615069664854890864782362603507257177922882826547937442487424351201422598011670756163625300424564612102102022215145573728703024538810154703551358429420490484632283962155466153862623886418409073406690956865777126866024151678296837156032117648693865751925772486169826261171711544858193703017303552873615927550897296215671841534854641066152770703103465602712540270334621854260145503925533627688517192051144821927863736459666433920146039401006275082807567090820329900515927695114154418429026323028900035461260255076781479245711696155718706143242923218343376963936847292456303021489385963519048781319813655136549137546218935896109381664611227752868173181068971044383601262098883704924480397072853349463691544938957355186987725839834444151290697702617779145886211592793331381532406912372962747358660386668183522193973274790603108092799898204486095319692042998168019319278707323070091686534482623855070394569278512574436935570832926612093146878852235031603847391189734526894771584061986825595877429617905082734913003598227021641695406352844035160438569135373262674789335253419971900224559036717291013836137940106081794305739756141242328453689779066058448467352723785073729446463134393058660782503859595774518075921700698115676125480673556508137996361746222767629919110879882805347210896850847261347351320696148285103059709795739365873836963503648539566493262873248882765767126708678737480150798516804251019990358012208671937640055246379942309730125699420121617042940514480194277593690831631759858727963696546104682232589062959803861934791132164074382870735520124950563976713982680446307790681907618544950205292616083291237287895152857154606940943794967173603386926084777042053287189365707926272695062166041430658131497364895729951283499854992054894824306303068413885750968361829930078611747244775877126919623153708873841573718416449876172857818023018462095782574883846656257511544762370807492435911214415659068628243808890649421701985219268701141366962197979031188088304103528160800138291659611246944826129920944028245237225345421712623798259598723052786257082747538463685292268238722195638462749255001986334878588451450058365665884176404607908574028473838324431500661811308366182899764808810666962586014135541353253759375781714540618569023477568769512925640683156767122530501293686952380730886390952546400302766692030755013095465387051635449787300218791538804891152150830550586588249821853688102592106084235137603888877622698797133844741671728243667427702972899602862481144941290788894984282511609449827409065330997089028914849428468678165158385807145149497931047957528258710200120742011887347879630057717309143790530114075524500416086358810642372695401655037932637685733469340273629360508747306847356285925812623607345124966224710621491933100239331771111798112972634521545198490624769912682078976286553850642886401377647445909729938197832472144780741858057125589613049439581515195993766705668668527183470467966353853351815191062827270771756515894409042471302837441033928693701566902483604064155520714301353662683770712364668530216740272696405564914160914562100950339355806150149998695645125364951323907559488665393379178625055089733486855804916815897204434924430401196432374117153623511356676911051560399731832738208145047913070215029883418218771512294652264844557446185141389542627386615587147501776612433099494475960965048821703189821658502473845962639905020620071091393908778651238489231346753766845237478064029021320423684739323156415745109846648066166601345286684321473782920264354339348367679415512730778976886084590952476656069314336791070869164357581024221692203194675790570300707436622240734932964941168184439874494940390676818203409538773170812449078672214525562455253484139504122082735219761188781394764613154973303855735234835377045289958895990376519113160752274358179222333467594032351388528237081864364512112871878067321175445080246132505695405938630907429522042895210663469785686876339269070707436445725750479007791130993104628595226680883859187007260829586417368544938079528654249389376014107793840797924897580837761650580884156710475764513099594803290748577847082165543834360273921159345233887060270029393429339688674412398639194975431130444820617771037567095111496967331582226452863341822247199280448522437847925439793964094517621542280491818874399990984521252194198491329992613436262720644841503369116157433448491836637568815741046901496972916288464546739633681792877666634266325205442535539376329100420635223698671433783488970573155185190802152429621625695909938714970697955630389708650154688242940200538589053715952557875199290352799020378585118841991660706229471250971064171406209935762533931064699330292308530376715170603515663570892109738476260727152132013634769290443753729256154756436624582923206669821057135749152823137507917704530692786661421394523346841929937031204520935685626663226906258941076803166049791845025055843262640693997588976326048235859516620836975251569355113741438498532191370253716396810958852180814704942689936309523526937317256789857830012533397367377063468462677736503974505480466097716158525044303996090382910283430933937912699481819644598183384889274221062262712543691900809731416236870746709541980457109504246271402626366187986420646569828263564765393655082543330690589561794234163183836824410602503358881420327196892580678061283210716709266772506591594463814879572040765019928302917905778783061454835233882872972655123083307914310037677051254755586888355665055681501068692330023042490192513103400394856251148136315033445876349611767981733375017022169050365568185104329326316392644478930874987273072540658340005358374959123573583408277777368781052405925777385592768186227177843323685617384013134912794507244548085910385574978030131101285661660960332627101635853678040709855304401470748827811931665260602130535808354457781816498834088397416152618656921019369877040976212095752566006416860986452514059106427011997037896932910329587041932859915320291081674299172497075973976183692631005489384954299988841238265148712740408621027641498695377322616545315099239190228923144521786617354532039131747292602226433962827637940261701355419815112041062495228217428883782669165033536360067170830965286733756890609541158675777943818393977851117811470259854877964715719899781144041518731702815292050713053532141016386084391089937627277453748853978661534363343941799876200051110832770962530515168788715692449589992156695584779807183615827156654964376624429885645819579423726161629658318731820929257303891905511273354227412203803142181922766403779220230837612602485109447118454263622636293185197197745992743038887354041568433746779971165151818247840059734917983212974072566447516451729364703494211775845890881825294068239711944495335283606535643181452251691744573718041776785672353219113334677363486530822409179286513193515260278652847875472614472420914703390375173054026106456830068135190824703303815762179205830257009505563944397085710242159156802439551637466746479663292040880355164176373012785105231789978898474350330047025455860090922900491231959817465416093451074798238398569873239851076800479502342326628293607564946913898475565599011210726092038330849718781785315040107404905845899396504075274003464708926590428920756531902342436628554683338065375305843135232541425403437464795902950840858800248597320832089871284726008309230784370330125289541968128439871997102989420915860138233505991597141448812544772476418373399791085657166841771214342877419593743224372089414481925010262513320439197240368505386007619732827543430923192342582165991396444860702874989173233590508445828700407282753456484416096968157878484801197257494625287575971721672345703142598495135315122039345734868237548837524335959544516712076131435865025722623958989082214088034318918621164053968001981632516667156863734219490549823881269941938804193279390777453629357674384848402276594453759478568134955089931683744473603610605973336407512702460027146023591555109672928628036014901011545448302326352864157637776885253803862489461154871912936303184275723372374653479197736370529337808442494761095852940335481077152065183035904682708721296381314997176423663334093703608237869039212708103390035342702715720243265511845485568997438422231605628055041824291551124359686322965401072426301486635994547947121403804323516451456130547877634075067959341948265558622830832927466035189944196008892713026925284636655262166834444096438453968741132821510864307960373041337994069905261518498970202075176772130059066078644548487987634862609078155064641999186345542920200013623746537151917664393867702771974790838594369217839093716740426326546317684641959880934175803383125956797745802590137181441733149276654835568271137976102672172665068938067885718296308384935289951530943487668371499254428403756756964506847873065022578773758775576721802122271419495156970942930085076255122046149194282383683992780873575198938858130386901083163582842342140723679220487391640777304141593499670577612185027657395197243782214382579932540985160869791530840325280721286711871355160685466780691794257589659906339513900933160166540148522745553785895107805025011441163378040737848768385677962906797078452739547392844603742973704519808069628767582753896373455846159445167209034416482668244944372537273151634426021900498404346006357065339740572493832657372541863200571450935569807514247357192423675454042878793857797202740328884319105457245064633797162897786062755611166912875448179968386131683107474234159139296667396145944129505089337575709658565827826210396147750651349407057074004250409109278409474432379180847346553098317286169971837564272763398455115502959109878767205310527838066057563983831547928445065670426605004940440489105495527712690281279871418840416237143416732840923884262643979621821911330075895016284123350602049787966143878041600131411230963555175565499681117838134109917521197780192478803940623317516890939447303095023515138899709881508458809006865863566542408990009134212987377566187366448395676378883023731899177486920017038997877447566136278865977549544510827713669690386747319481899398116574933244775867357006608712821978972063625681149120849082076222545245301561177841758962314704134252122009061416426661536620368502299778124268627986681000641105908955599226712411781626374227969296049304705198345586546028026311197174405666131314282476426290723274242229378512264532478529497531154013992596043012466659155997394794798569187454220654055163327094697217878075105664771479378181558042259009118885131040394829077839449946687181012230555640544943516691035091943064723233834469689753494707519612026487565786339766430490295210285945424451701764894706636531852944987471613333767149549980773650478548651628782505637349817987874486761146819311938440923695954791978819826130057926520550372480572192533559169484240988641388707061927305005141222055388257057254002789965823135725761571354046446074659664294883894589704056689010557171809235362950773428582056521805556926916826684109357303449065503594477086833455319152297063609404757102100189673309083303673166195391038683437556462989291449791107455835884244300888975224174493428920759803988547451495499450424860426421465274154411648295642662435638346501850584326531409954330830827446616028749403162905825991544064656377847043163359174425371768215492413595412003442345808938114046424254698249582732735740415366287932953275027256937377129647918486943617257420808242359390069793782787831407365640233884457365107915894701818679059091745596057676685116954277622166180379750303375481238841655602547288452638551180837697616226819893321553046024156276648241106051754205375897633750332184934581808069175291215044586002942881840634887146100811091080278500189227847079714844691109183937746672350109456931891806573156834192123159668863312817537516415236379355861917162095612887497371940141029043833490736744109753023786751907276786803834305504175297773122774415933841322658503349731927917610567655571896689843864058124538542961042215231938823244973221418592411069606252983965427480850522883076186517043881711948477858626928366330357087808324908510522411701760933345798903583335833334824930169810902196125059546278056395591653373835106027367352753506642219562468682745285388503775095165691097102424823094467047370802641068637698842384533742692991718542094226137803221494683494515298866976217844184719590629036631465458365138493000492964204572682383037622531526151067034590031770706182129452831605141299596687718407527735507391602974014750939489431583520646176029350201878658854905780871741919629618256070803072119518844930777903096152231356984706946835252587977115838580448086438964432460664459877261205134522392279954984698177453115171698135173347600214154291626615803342477666004258022730187093168046583290618550419020120037628825730050688602623065097922121429017084668283346376431330548543820016952568310858005999919732490566655286294632364102175832790707376260889639346445398970002550588061291824593173112502214434339108896353587667513139775168996480293887387205257196251597359947457153493781771045112612359232036169853588672270095730527104728188092715277056480386834918593936728445143247799451129350597757016078528121032919742473040894073292217254155355899134077693537912093351761425756319147174603877370437521839173810289116307782863775812668122882182460000694893967093464299904870652814282447954403628635942943411554263633639867547997804657245353804334546007425221569575664745631882801033000114281785296717444068678945223369504744640999660576436627538025158831064133862526462783912883271842049253318180898000781990835107821300783151303189882535242975010087467356357061366689425673313237508847172840678161444718809463603168205701229136373797044858426325759862555672614770288892627231042416092955465189635997100313077220683251252891689475130996069834756213192724930088635039695257554201029965180653741642012645808856181032736180180161578809333216732341176806511777566140469446462076845934325945878888256721799093438946149974851818507375393049943628556246140190327908913234591932255354555671140667944355494504751177781459812814020776077214342987655068546234061522381020664246345964863583389364043336873763267591224556468563226024812561166527248396804889795073676569230538218031783399878015089004067639999348291711519533829217497635126513003524847352044416025994123714399932550420823707080028332501893802866399166364186922508557334286446022534269119783276918106570615869411507578820889713447244583721298144642233995957092766507910764579754822241416439188768679716533560973665016291161570030788485943467682873181918685310215464308215662250588760625352251912779288744471126537926994187523469285552402716324817375917724606788880492418118321886001541759132464254799978352704135859171590548235079774338232866679159120794264617439275782252293098297771924323369699712329515823576834453113154689122842092520841160719950544670515085225286802199400875770084529871765625451454859838751335117868921901391452037781650151086259815263257777195949676013538726688412415800539601252335541762207616370923777167854982386467763764735190777748923538811564096726806402521451889420587601036613238086121922069507995797125149498629162553907175789570990581699299090548034161444372505848738562894476407373054169287295874749391063036684425322256772012888383395211604038821953801104282590375282337700453008959620257419716718268136823087701640996744787122932350660208116694388025943890840302435260387101480822191111826016979036062637543707662398137664894155099217079647448565009922275169672980563717062151643327076323470466544840638983619359187662419274409644333912591435912039250765102625225830066730870168959317198106780859908473448058920629712893123842163490290769136297393775810998442880619632724247652056729428309790091870146318039344238308685683102169226185064127632978309486773902574865076361230836763313114729600136515918132235114935572104642217986370978452603718679663343562279064971848408406149250775693264416570537195049398159722401874522203175761985210839033975170052704577917807258982925955448702326358595156510593210974777456465575234834610031841627475049594074931433970031605597264974958870030392117959950794693018617899544996802761054383335546032772341533504861067007869139098288970150950197136761700205384367948653950838477282952985554243656431788073839368403861356109535637842978690981573682178087417564822800233827164694620738256337173546064183746734652091837967440230982304505431353072845570133122183757401796596424545440937225754345711230697776273140978034623160493098502110442069286785415364510755385338665472066295210997505801731182495487242046261044239230706295110158927276468248583732305368404284299229591030687193365611108679463583445410929485812386060184878981580955043225729356773019936680970223483956899398813361758390638334653387265085485845188429026359169421892944516798582034136189006050337162626377564692207964159658930590633045410786526136699900613382591727175529340977922809145798909791042509302325875087104556441791212980479464578812466032306580695249793472138738443615344113658385890263305716482547908004793001289059225143951764231634844082623263640143592248339484653711864238414227350053781165149576427214552291599303739075726515421099747855696706815153298612832829288095754169041473107000080385302299145668030779427497925637750025039622861164470855985432236092620964852495894407230731599272065110344909255231734219981221329706649406536154707129849072872893117173082693673959437441510081021667342582530311456156040113453088956314451413326966066548822633864763036294184887512449063532857024691313369922182813265716389166231789315164067861748392196894632510688078146238119752984386147259189826352828991040018614347840685055006649396664612152152392426381813545454303368012297258935137927471444612267318084461832513492316353993153598358527787318352158658196413295393140319352691984986207827831211899914874108543018753525963195625622807620744882824275101221116154423149829759991693834999346801722407826755172886825381788319345495780590611999031373882045737597125059057398392760880111539178364125900378668237929444429213856468556423058548252607026754086677444589248579130370176248161401832546333364346542726796018545819328020353523618845163473803663529076466954711862006514619425683428000738318273112100711242714908054461400516368203493628362024675477306861310909759551229378087133080376462657632484028588803842691926220973520733648747991781376023119959446456560843104526927713741771685527613168329485245951390298399586270084865624790750301140044044919647017466811442734891996049342166606129738515370822942623922210127592450051713012188841368380454558987816281729693562911747668000864166346756438164559695089266037020561284729970449338460547700928791787280896430339837695094654040096724264872940294185340873049822665995427830017469091665276124497725756660658813581679169144976076362433279725884633761051840120623574708372780151586232332022513151664060571617081522993042818165391178754185764120368022719675740108536520634493365682662327171122266789246297485780445774585981719918115135501681442364743273859080017428545365336251149487227283827241847650565024827940855450975575263197487907022409131602824747319577827387070691710942194325537440582557887994428376151008758856401131699762716022063575641798230066534260556184249982173020874808926487516929044546173293633621646420967396972495961574090669044393845897663385087307290972688318602969996971709909115063681243482261687414906583940571080144710927223537317418173114547633182952202066485429586353202556600972536129296211960059873677083776862577534046242750220076873486274371227141791155466368929232511140724926249982496198604712110793581853953346836557896041687921880155664695008389355375017530041958774955454996471952278083920450721619924601177994578781376477247235892143861351196288641938896501018131469697676812083825413746040099548576250323894318631976413496404548810919982363229522665391354097348882659078240529187356017748228957768474514595220216024280999233545792530465744914101829816435823549925739453093029334434080012648337350105658880793363680007312359575806793978265642337980859186791783501897798730168849319466672364091194487615209422232043546009151518193030925690885255256257999452152053838990351116333203950077997792745618363266539962458576519489836539379434106492843337535111757269609565596495090772676822647028484217383721830247708719006674620157317217809018365206975251034718739579298094609896937473942557987487706290302531948581411997459381428758413624236178219644637783650286559303321099304878532089908412608814537269428268023587062327399965363805703831887134175841810675278750125354873588754543897428697450506369211999457934557566575316223064538442952974363601489840377570718896448351974470209480016020879086336236943115405926725050768200659309027037506792511776276713138072447362501833574154398570274223832563321493123953457853237952285683223352982573102624522541732294424361094983936571196130001461314430470053720773234226611432926356922717344310844274674817601407592130060045890285416903668431636728364334135674743228494294030414943760011863475276558208950283380673389772424541818975189298137493073899294493788041630768085832948792907227545657778161675419294214558070443028734169205211310393365612479700856030807049369463803762729095058398262580772221216289194555860991511009549109543319042709622631194098897326474380918178870829637960247172981979601837123735173221203157994335626632086907995283365157366106122704771004082774901390138993853394916849062478683898689673380165611168000160110977726093694784814861912153484441025684851621762300374899308821062892434877686718714683153225918495594212865618511614086848562694714512107646222088415188572095521409110703804960787844061259605709030086328336277981718025289841814294964518931116512010310772624340210284724800074745256889848097125941034194305408106577392760474789014969889946370522232773641891088244442641855844737627356942286680122066840889179667618468480960439084210224655099661114179418825283911765715965330086812435373368652975215182450447395985328194691406215472830632277662958577313099189249303222602458407692474194851384249237671123484192068882067458129875421879284377726839803074686138413422183897118625462223377262057574583931879075015325355187759325336251794598973355544735174430333429502390748865068994922019249568673024455796410109849409646228415102335535678810931509978552930961037465778343794772808779670950552022586030492644797361350751406374190777835279877309507436416297725520119926615425338080305036411820516351123826519215499668799684213764346161428773025056739839524244704624410104971325299414886862765300070156562783984109881451153837677346999356500426566821565965341661864434519279540209636560487449290233731276758702693553800670780884670470474303465977406891961537102053195541305997502596027164051677581563648878103865508107684619951726831460497279438915718268161843860985894363152266481258133240718292642264403995998260221764420574604641501660228889614926509483186374740470958940357896912974471984045984415843462057713015342579092935176606787404724856005816245752021299850080629926997879058295531888699910102066140618062571479958865643440068297854422550005621643794913096748463337943906473296669890338065068517649973580133715879462698469419756623891005348536461685290440579321756997951296413719071469565328835179726628147754089740814451050538803331268658854985631553922618522170774741441149463430343414297455434802464402932975703191826290634301196707516168889064157598318719190063235550904956591876627878635693850767310604393478722020780482201207429923156161904625253878387979645345646719433488899269754953280582551349937517012083778547654447814790648490530448651114261828542486868655884246004188759056207331577405633767576661751812872385687791426728154705557592676378808855865795578955597379305212233666799832672480273908677954632455589724536616930618481084450656536617237734042284467863056347594339843851414978986592988725537722535377074589280040418207450991434299218433604165071591882709598280497941023071037856652652305637940040772999077391958960797406578133269270650306208061239586217485122312648251719691055785304713089097064724008457066343041176714356663173090992886247233072282308398222349708217065841757512864338016660920282247212816101061855484720929602633844095930983531862128588584692237683682657587226745157909418590044958815476350303597349702151956861299353255864730176322819249970783438144576460419892846249833605293471173355178542040592437608620531143248132968544417208808840214720357646017850491377361650246067210460427560710311698340841974510200460656303041315573069486778559686981834442533985036405509521081337834298972984687391044821589036971990946963877929867075978162548661263599991880132613131287729267665991346822117662789272413199788504413312930843062330836208682926559411454261810803613302003662951085844102888878824085792517299435736246315579599970043496855371284884582763319955812447399210324340163633677641103442029433942417025351714572714197550402981315515716984072877867439527143180842452997804360432220941558401044863313979171795198699679199767419071514546736343899908994242903513120132348088214086079205515869000020895441291873529660613551975008516460514216445811268741486008529234588167919512020834579325763727038954050669732741595221525368357760644866378411920704349504835330732832430059843880577289400785855094165938647607300188678382952410217036315461153932207706030594030212001376112353106543251486117007889896799367748980597531995880467144854594649032926097988127569667747302445002347086430781023782988865516208908894664191972039494688481516070009899246225132322353931488155435049906019659958732932266085810917704447307592305938203098111771540982574679019794996689830162607761430007517637574089290716596428105354057290304737239123077029325800305429186620965138289767366272613421213446775571058689556739772241267483944322581136483885862966375092444824007551814603571940831470346036628584592284551148467165944120248030627572296328012476673482665028075620469234573978238647615235513853280390080109300259118472668755292189282096300939573749320060834517813139109926553035121178420469893800964407313852028023897353758308400644121660465073321775382582120407818981544243598475362339996106554345032495041257618792066653231765888859196687517461946877657977251408818661056490030805982145517580233712313251225106257712330361543649923941682349781701554357634224893931821430201253083347969187983471709614406075188007934460629399572179063825492066188288800332942232855232539996437255683371587915837344424116720699914290141297052975757139062977212590568908161817225886003765526468950467116221575350377453373069341003364375799637773485626861954233740802890240295087248730148514648245397771682470108284526498462162702292271847801924601903025859818857675403422966713474516422591519646298922000542567856893143437229952805161269993210598796196747511970715468065488411695010320357014484841166986330987485402026308621415573010522609913885747888330624237112769626231304673940507556138191849162176303912203185065978584025621660528598134171975618098571597135797337409169414800158866365238117110697431417971358748799447407738924786535572529223076575928238491015446529996012195117175916123853035543534141367455636277809050668759176470938213876195246689583481816418509387358493557894314514386889655303038285053898154722522866464911137879465101811914939684621369423984103463661528505983404761868378455962704689156138007678945946174360676277740968100176841576948968153731260314525847567685824827033019213640478196260654797959749252688046978785941137377141998551383750347300765381184846254722710471838999504329587779651582216796649442568019999808884487633138684189724308828193974012457024323769333624382972491654322911621804835782042037016951391239211858486496842439506401553690454338900686884549494632146130533368541468786525621836769037094675862243023248245571024630458585090710250270614113143619372992054571834753657934272789944256589501950525760988637651805389401632185363505600609439725329452917506933052994446013779052386679965347052826769605139853785393615663044776607911117719270021116621067867050895837736835897235934600286998152703286427699857956143992424769975700522090602764865236141801024781574943180705134831985495696814068243064828043846546810511226246261135810963829342027233024484168238767298445397720184880330228463286444942842068282618353716358614736904009729087654323965697155607901758286027997142331061450557343971824213092849125897631411020794711661478864704416172217281431496958587431813232233644241617533908066066375651227992875222866947725297897582607072731905711216667042485457771004622290919781561138118482360594576715070564990994563773310180132333425677164046038814964228886249570167081586628964493468760064659866802407823417457264491484362312892353685424866930326282204231038544390720908742063342134416259544465075326472052524804896512876487764176273684430682326162208034739175607849219936500325999144591620915301531489236285405521273151447227433697568159069473871867451710158672065835936008814889847740989653226453799817552751947295550298390139496925961094625092201218807611293951613289437690187292607057478265555457920709870178925931491064137546231153476500338749501002332597516938521217323595190765019276853588992237959924811535933230341274556330606679772337114485865171567721141267840550932694077846257193652590828509422392788589292969599316076977241777721070048752445379822396643478883758734199152231722575862079526947320856473316452685094034934620643283310238131481433015960056586258041863687343358168770124679707417385853542268439128052445997136116188511580225589134405510461227575978928799910809514898469222964327934189703562475086271986781736512388426595330116174749727879442176138131036299967230768058862325746660316687990552103718250496889316399969321719339130485255369052823832234666889700593410325608189285931080757579601366123512804000483561381467358116457693172181654608535835477052329122074704438600316891467144486085638773489505722077513429789732121434570859247542781004669095112170532505345127950785138947235881447580735176232481733403884021484737874090220986624314049573567471602117620714840315130768213442810020236850198338197347850306981694122909705120786600998788411930728426317385303554781674959088428846222455836265785337505643319921237062031537170373864737937364415285930908839642668354458886245225698816282054201519695597877043289435512882840161198577486027803769108633499391727553515418728153214257288122832848062306928033078154018232346474428669690225581097745843027364632711882386227715337122803271733119095372527643451248874765990780989655735773335561150612065635328354046580279712868323203972572675014682676575976716383538995271601440801978986512326505097676786670106963502742653837011921916555560041429988227119372024513368968416073536310250001149767980672650939732296038788330517995191262086505967196036494936237679322123557027769067714041395563331676631783944894782474338995525708606208805487108167323081324555375792420476335953039230698953856847104044272752143309367939479029366858605803491692338975172452805512895791280986074269327730958169127811609084348564979242821459067021175921879920318891338408521692023634754716420076187380894711809062896753350625308931992051588973253264953557078520891052979727283435415340152728577931042261841590459278148995745387208278388215009938915291524601602583915473489732556166033994597829318945953505023962401031849873933349502749677513897453252597586429071858370121978476039151054008286907176495197777414182959528055441249506497371800690776051179258710075029522405016054730337827509152225544879969586927332746551456472315183381710595308598112778583314313409945784983961280379285927875416753963848389920445992858777996860368502467653530303135573912190327775076252109633004893321481892765325702514547475256427190350479278056271706283282684365729524181165580824593284924498418981522044578086664816994215573060017101032117053468969100325757178918168739058290639835602494335022753761920478033496000787630552952737858741470012429716171192118619714378375196137108042654919375676729152920216088416714509663769264870619577853269436743191069906629327462968753382227093299530022027442536240898481079980625833549439234643093299078736018957116021427065232140965881757740730765309831509781866300925223329865873246029508062966084556593708142499158106439016207879012584066634082782202835118702225345223213687501621508542290107111461508907347349584247440997465321677659341134955976265026533621781314740858003091544091399077124590861409835994965840787032042707982631826880530703485792439304049674490314137775439820127951474079191324884294988357302179931843785051782597263942427317722314152132722013982942743269368852536007125751901756257463379212386760218152838572293361835527382729519500540378149964194490184424684327706544769822438197501910681430379249436407828961896484954884125078965434643611217340381615204579725920780768322871446362974379854090195725374179995217194400183764670145154244268049251485220494182983853692013347263034117944471067732140397181938733375071770940922242462169702043848970276223189000732547035428042895478236989246824430678134534609285713254266181295295789576406185201185732783030171205751210094231603415327421928169229040473603358942674450003295889823505229849596038269059008568584136227587252413826816500505084322108197679563593263350040964639167039344698581157686009473529715164051984153518405708384828335002397181503809829046603119386526049272895830647410462031022528372690458626580110432689113826791469224897754796078185305737196934547375712022439171540873897543992679837828567711411734630748868782032237147997269056480642398776963406017404914692399895519251229109814693992778212766472160664068439376687652950802899871422846272945896065831352629086140454399095471607564654816324201758896446862058475941211997472189461489729309420354611176292022434705290696274922121083617171094002329835616003854255560279746979377567941222947272904354671831421821553517330256272128855381708426160800557839522760136577527698557068764595357933682604817174595929201125301310920429716192496514791586035054137658981614320723736104607721861529796548731477072943017840669277527845010878007134140156606944309569060688157477598115317649714491202956765567374296548617014045178019208952573084980204366818506945755845006182401932561864111917555061952224388420715320670763508684081322241781166511624785557047068515696306540447486328470853133794389000432712362947154102235034349089454141318360000119967225949460733421380030216293256529818903855080954573061620444116812875102650714718002996068538175894836948725324060803926213644950975444398513773264356778546737654025309340439837422413834518734703171064955088248345754444896874822845399091986070379012796784680659073141840548527838197333493789078224337308618793915421286546670203394016824034851266130887088848437724511690663079874638068597086747976767430289400690528346782678427806515027584595211126540105094266761777306124284948298602948583167150459185954443725018614881173001417052208514614577418200107818164301969915689536907876672979266393151805566013797538576833964765327860552788260327883243163538872977224769579063323436295138785735923796327352701308583294554575864724879875236135808037671447953624606585583112994609264868392355739796449768668809652993679857390210272259352302013354611248935247214750361493439966923056869116478684176016218460639328542345085763685258821630844007953688496262348148060584010311337877285597337544952574203247696651916219934278749667777203162169338675642308404615811484610015756309209321190588008417727683873624908854156263030053991322710124089661487103436811531231451307874458232776497365489275811194070344833998390210232158203501330270445948899531291747549351344457685480737691545626860335723804688223154879450807048696013008273730969586017620627281243392893251245165533903703760490780815074370601301341692538089214642782167721271432133250663146039538194541960450799817508288949535574972487972894395356960647752657538151413933414317440485877430168656544197027427744587490899853362790835495061164077834259307584189751178873416979779114017965138855175762506516050930415013020895848496651185523613402098069510053857412388954707384842768691858442577394020256109940222670020154370277676894096545035713079888045586986001184759491259534954725167326389316973127686748432880106651166692159184572022426120987342417293826495582547448656685698800391393836229417761628919032577456300533317494504634902758320838530297332965072011797228039710405567127040063695837090548491407344956648642755719155472599899566649920468549006779617170106220466316728829489975467287673057265571841304560162399429683517010505944829410748826102606500248920943755269234992672432007303781371362680072621015787890700049637278188659067216723522362848555329759756260656540275306420329537424490613200272761422913327979991829137424685109461140136728321632083511831982477813241063538794613580218300978026815337575849063470399618588697418666023970184575454926217138625638742077969258927826909063382633320777411347006412380685651902408751939767897795402465069091262855517042009433015969325935956180065918966384974853112163574865096498524609485728289955844664617949710759832498632973779439364357963544753287985560725098599234602627672775822711893193390934723336974848667859205577380033013607812972542494994868981089344578173437001434320235786354137484467467248940640445257737288786510671398404031916325980198959832952075373981084306107996825852515481505079224781935745625254661709092008586302196169638587884291013367602299780088914721523557492859676099952354100168779762335892068531116709390871874487186623009131975392748358176091861173328194539132856022222563353341342362866604716614000455202328911096523108790015086267274171257180933781015196175618247614667534499142427332647548842162423865837182033862752609685976854660104144607852592243591736476257958675536335700909615056188186589853394910101841685275752999359199238465360899427854288127727671172812321521489881431543793344115249170274402495153076503275323961991282457523985776403054585514168295720466326044645951225468078662221816504493425238482027421038998232963494496622177926108020963088939241636409960729400964659906645744113393592829913916718602962183051341313999795705066022948752506114388025197157464902306245136805837363015338761563176278538835681989169702539060556776650557471618199325900994745070405849060859429775281214657536481740544455230790318565149342574959880556626390279197234329040756516227312787313977247307313928258916815178208091319319369484472135232669459263601794780813716362058618733011898645897892404620672414501690731441443931304090618558495080250352985240280154484968337592411792112894653879845169974162051901820060492073294348585243149633895080256475546691582759262613221901001110012634237112432520185449901678372745687510920525716989815990227041071245931311598183358312754444966243361022993485134371548325265624268398503756009099087084441498298975750035436662030617890397536202068801859482968565761569830878246717672925347466226400699514251590498377713079889697326031561434716373937283112725633099539440198237842240803456590987548999733782289223294880800208059328298468639886700847963592872135540668248223391631704616703235686871488918287294578940956043385604756673134349634797176123837967043189457713133276415301399736664181448235682389510453009203807435254024865014076304387975222503253244068702212385622870951955709486917712645163784400420410406285311973692817531254431388583729190427241371079233326046715498874090834457690450297259569776430396410627823760413571034539149284614426598176432806108299884618626858432265162723344239369597069373863841994592033127812998996631805244319045084845728859969198025709241237838273301145108977191890592422100178951186104697910730230185218474130242117454833380848977238826489501647425348140097139106133915713319216587595493166796945429176822039651337592351492428586330395241467009339065730429952498466773103195664451438703643509772779046592591924342010188655249147008695290408876945753616770374766247956845865978042807583534459830296484258327492233921692002922975610468512760824186156727720214760214342289000074851365667195900370007189638112105204398497496876111173885994319601017414003079379837269726598855671273897203647999363855374026925713616711298890201113624176199801357150612694930442040210466794350881381921213178142635194033562882453295133545220271367542672003160775924641357160358900262002019347131747468472489954324330881086819813676661746891830247009071468991823873854275605785239038195960569831870268952155800842441828230777152786981868546430297221655577857197541511441695605898003781154275631834790542977219812396454363093687696432948344512567832578522934439173009526864938928212353064412302556935628503338011856341776829229784968464476649026188033699450436341422339736282318332437331754590471416024938108008321148668481125466501523552061794612120625602114295834223953207635512085332814302013887367893114259826702829960884812614339266302767707193085240670366787205421038481106180555565530810478573563750290556387040620580868269477003382330947135822851908347112307498186620245199687465803374802554738109314581454580001446232864067775656201043826098225399888884840220289367120354523265552161275613394359363372018416295806333264514823041265519394279011552688188914853639136048241695569544939286137736692969164997686294961389598692241066485697817176742548221954904492707168774692019778787271349875828638657442132820359661164521942249855856783930834006439157456812409289069835003679114767549692168840097906101942417152184279461863194909155895548675279701851945645189086322698567843277360649965492539112002297066886326844871218834854410699507289189781833517863167351332594255104780724033450952876926894157447302469990006690521328137716148079701898149470427197448415204590845266569913408014248287139503915063829892324547068765206740074801395441484556753230862911210126941072081447308856082597031886219157445237851398668912042442176184388265521786918319512785831350540404827790087021216138877995746991344979060785947763365777905706401911186287660654497815991105529326277542260930911370461550521694944994631428090900792070246623281609364730950814289739834587957354093791063226220964396362012859301021800758746827712955167924716658561569934301969526657957784553527390204230278501188011377449395805026092216731066327614313219562868136547117000329991765798422071627037409771825525375599558150158079321963911519835242102248033665284796579755207946310267841992431781864173849933131967864408766622901415568445803166915289540083030578347409491815884785771497076989743818522211936665331579832486311989651570680274461471573701527095620895272350399420108557783132171235105514839069363391316600636180983895132686169621358111403043417937013797405450098378886431942869444276992157004114293552375673991811836651394987470488661733573082816154805086397798583929914172387636955298681578218466770975700093903902232293233757474655086518981910505893348127228002509669248213685082148723052543392980241735434875626118964637320934859887351523917898924391440744320930373564990382842828352459727389835812568019800788537044815805184778617413264637778823781270661420619901398716083124960934710899853599419205224600324518615033029640643781070535217117303814439543968402102796228196776699903060810604051458246859921846445188890704986085818669471463346746775629050832254276433472310710967547168642836435686162874839319888339975137215227026999157423898703637923887978996469219227725071192923361356255717838948280171718056545878762953583245892942231862417645924773076693109810371199145539349676974938025065440248793795066869607838183751210030683740623191354478967090319545214607538633388747242070996501972381351661945444701468708440881024158276669340299802295375591892719499362911741927225446829991487293646453144121423199138317049742281641423192698291712937029963627562883769672934654328252344935768960799045893637220084409858771187185806694312079591137361617516567695985029232257229921001694793982386082507903600414478037723952339735878663009200927592904684137999449715753518630351202933597846322712632941798513514152082600708575991834188693813651487023869145076314062902861927623398420479312325312249163393584016338826626936653133004856835998651997905700952335540826063664856893820383771766521781548959077558602914250986639049906957721583565902702793415522414373109829854785584487047495248351096928706870038492100183323357883588472421433075203953214976286941336085359410145281026254365715314854227574357100578766299300541732210247566583522981521483347593192651605246322084265550692136370321280219422534155466735257059044550230179409851968896357654145051322011221818737093842309212329859047552420381972395282001165659716799583248534221056617642037725488867245288601635169366503778221105806317359408170740287111169777146006526767690993579466121658150123920547872632579414659344653249773058012769480685828239912403463451150736065835735678538714135178733718455532412116427373677334316522739484037115940311292619920299588532089994315126695880330523169219066400115060297778826728366646067359443697043373633585316682440334147843485331267764685711533324960982942384593546595512280589521030921720563382474609567355582791768206724529822164106689061235423056497551255763866172567983076499324981305564174985416019628439817325462646011968741218028203237953358983503399349942347664866876386950056716835301801471601865312074897171420053918153691372559304343378722315424711554099090770915546500567192424421735446993454243958604457379543778344954891393116271024537664267527295344459062776517673257146239564390747672689336349178850050757768751168996715039338878492137169502360027609256371708211685430455942614410136620546391545626944980983334596300037428080894372921119939377525275030886140168668287891971806971409224482458050323264262952782171416772795043218052750313695124443368208356677015690568078768382164760389160139436415795870612351643656600951653976231062938095417987071621044087099097178894139254769609996262415198045196100708311790715553012500636687005692148808792022188094408343784658917081654773422392848648648398412728039358253690691704157191003616891861426872648808538780453749381376844772347307783561851067173047944942849300553676678797181130529528889322216461095855853861738590513232213199207725907672722084091247113418886889222444825969410896634601084826044957294610496365624799269228685119393907812794567929767579376178608319180612901088631316889921437089101296358776611371587904061251356192035458138193283268476831999919440443585936440233697777742850732865715129154247180153865025633515684507553232489961169376544147324245305616348071784001604173062697306671755216433566071813750189629987490150294744120346021439299150055123801818741447970253103098575300567256613521476962433753916698378978271697278265285700444388939134896515607362478060154069559331394725463082586726791402733332270791104728736240185783770134128187737320445687119232377222617180762458234000509616786644123480991288573031763317623055332382827493689388628560865591936781632527753146152175230513741560653064752044856494626135369518070699565208497315284241333823039665954226363411583649983644635210833142084501587720391624976436549828829866726158170093826741579725842171690937690053161926961825411816323410520716741100624066857268028105326364843934963097691776069994293581590021385221212716688635203486818312672246195142642295918963413876795335632126020266060542261437838320164515914093609834623804511211570535782923495289844266531792837690961363854492573504174035278720705444652734312508150784580203903728546066616610719120805654629772906914799869298002956315673112102704401392638109134690609453874757551857234715602356887861115086171120120980362402546007234595094161525345831563587543931626343359381705525654944380152833153617607118716464087401129894364566337217686858195525181092553626643751475803390834168284755902983426576467407801131795860374398686551243311372461469483123876256322896443158317991956496960744302417827353028946424998867340393146127346706602036809171224745925738754418854628695057822005142998293429272560469592468583384751155328012456539013630335918667544757699226491516058646319925160322711208928297325188602692246967118402932287357684088174755558559999418102580092556140566772829799783413994328428900396291669409703792967097325511916644975461734499443005327381787354918379890633439772144511067202148595309017815432641904986873998144696661095130710081251418865702960714848810116117661653450040972591707775879569940032806995424756945626876173750827059077751691482959891164087361084766961291205775626831006709186456063940222439205207773023104268211978975506591096622716900310069304092654308032469022072575549769539585564572178606019828378923434480688352969421504937978693495706137879880016074113845068264400962967153977539944780354841388395677758703674156773739038772382796904232317248173252769337628858269728623696547774363321390527851768047465090774368700587846779515396738323846047946236514735995073864816710390855109699271873302513427047996584063148217746040043293558784851076429410526299314228227998385560333311850683606088462506692706950237809226499201089437919634810574097844178654170745624788525341087901989836441116621968895572835011143818912349052175237367982040391898260769497673902308256884940442757091044636926663609013759101775395364583155181136159505335586868625681606764240343757079189814635526726635903809482899781015545447322559714622390870445192687233212150356498930739384013990833438441386142409875385036566902885234659848029919039718561598716576884553197277347544067015091497977488276099820731912580464037752972254985375292971677631275100471050984220506752565327370694569746909361507021487875710710722408873451383524880746739085164039300255154623381053449445568499084736769296260764242383536293762931447790876917115169043137536026316648788776648863009229585516762679674245484640062512409759302236764820642657978416424817719699102323766048626497457615645728840172628456978677735280054284171623838304150728425039326437062876388977924725353018261263958097230369554470748173824927985166775292180544527773962947723684734624031834927769226171464975296007607327540961879402914120466439882544198598189419391374985669914477493449158447314150029992540865868942136688296639660812789406061011278485395351704818277427832902695015479365477337175628488062004305996893039944705561957379326834438943257163616845426036188698297868465238573812170646302298975476360287967332718631567266290692895279760385160376763662357424338512696453420030992003126751987034258626081269420293506610711366555167333099919506619798286088066871859062034534920414696118586492722782991713176534526509730653835980141409476126910395259985139841190461010794088570339011688051075635993478329653465500289238369851164645430066421389909465327574238383854293455162841261461779013061232674076401526392960504550865078244895867470627023008173973989554584739297848931803787005459421318497142122961444300699592396030331227880532433210117487782842155254769952502934165850233349370322726890270042590355177340638295586645869412891332649455133099228446316584357204856058296784577328173050261251849297474808257170561671152291599594129992803767618239546286077512796543924878617159808933940456178019613874545552810615036182127465922707148116191730993089710625968439043139203012836430492986820506667530975354726470945057700973233127446651974487486483494652268741179148322490761902423787279174536725638509646954599755517424913246059945150382190343138331145741780682286896117387227559011718358162329536337015295933834799278853971222700479002067924743070784394803363613101370441285864532895136303641266192908834716991308387309612791556421038921272477879606524618169205475150619580145278132217713506412803407149206865198380559061483893158831249639867379947744102871088687341755666700250228008749692414213741294412762519833411137570321770392322648286275847767384046134586773505462334770734926304253273342076407483278008161411516728331229067360085629264627040554938358061359577015038863586735924050322029442177919358625501086743206060026539219288213499079092628921245588540733806332957713221654015304168893535665420301718006926853913117552098291268288013065966973939233267837422749745826561338431705859462711569470409728427167263450589345865110761725408473185890701294285906189931789354783214673692222308042936081612547467064027742321976687324172306041980888204673220909932536094387713539227786971769662640730069018315825090757797225431563301431572700942136746183507862824530484060757778596122970117125035156537548610202594411357056496884438472073093532519139973465980097808305952570723119388652053346110438749457797665792788929500995915512707623885339908090862015056318773423965857026114898832094660458216942487271509646587647937003629557231595260142915281948666297918289163315665905373218667845016804488444392250530355722741687459683811788010918888625520258519578770436861670774482877085869752507703937654957843673283688127143285581593271907656674612828047011273749776560970475810014839998803090819013009187554986919033890072185274732246534070101335035577777088065409210539594350379142595750091435757745579887922017840509378048934498105299733408521034242606272366734657984411323328686324355415252347793490311764889343579957923745167446462088684151776538770243467000658207496211369258282549131175575922208785941631970321579094912909592176908415668779058847432798336956119918666298900570584304258009089062311150388997249565580271832438527574802652500293115301434299837289045297301851506245906060864037929716573099834373039090879434459114115112710079760093022875935577002465118683180932998333541341708841064394619930424690266838524112035302737507657080810445809570833804773475964116979210133667869382187451928128279046849082828475109136603541971330045208730513272776535704466161399016518743626644243835691424530695590708002421030621652784456384813596434285599817645752956430522088083624120245045394502285179609740265343128105470450839981868454460955449023088878865226717028468053901664139274736020513267831674301794727925754986280630847966697525723677832447591823986149811376445742063165619572515611128305387691828811204869176911774849649499972852292693224229685910771572265392111149389906426078916490667963516246913697840999186145966896766234412125142464371419131924821824699305891344688327612071966527259132184893110911140218419627542794699881450267286717326692803628896778468421404777896977707530793360354214259407004036214573127330740518879555091086201197665865899399672724570407197362069651168513159966275799361770307150255864272929907014204182725321567571417177145351902326053458489902787785595924392957894331348435338296394325529436512939949561210000089271413621692917634265419309273216554921111316644237955617058565381313451885404680343666668557491719440564051359058798898804417170043950946390125317155804693197273104205678378230784507760574499850630832342796773497569732904253469849850220467465761675653103269767228118997881804436726385542807962742492611271649059683550932361629854932493229776785113523836673117511715780935935910858988840480422138430133016524380058459813099028135797168708911439462102929661318756893958359291524237160563572783446442511070320309894941601498112083525522278771832274916653055216819662686311428727995594941740155646766906568396326796629637803497001229255684611875806908289433616907604108937441326312128134702493764998409811117771121878625708502800166725132486405941113266491656790468871958971536925469953965284831482098992114563383008721481843209471502521116538517975312233192069898497599381267700086521750489085775937680841554069130844103952112408053029155032467935317138355030652406902413465522655151528787937825568862243297021377346152979865014610764088559160650063905053041831560429061604651437788778368886247153126203819281572208056823531875892194242422532190144212360784216808477838174812956043437226528551259004454236733535063471250215413211638294011477433586562181929961607563215773579459393103805179142395691321147489871107179642266272706690767469915180377805006971044061836644900660793854920821706196127638512841495792784994950065330517326427271354762156914803519772230596767555894406361331744223589839607886455113892529557211303719256658473143114811022016120244582659574280118004951575073559508313414236434019713279235574052022052526328368002134292831452475226916554854034702583393229351581019315479058586241744870781885099601269235138988390468279254637630687536799242947127934137552636962498597774069274451039055015320600605977993553111980350831459758326481585723283269408085270642409609109586806148613137244938093219533353563612968303008724646420977924728872183988086903677195402050342299448544295823188043700396701793131908440040972402269106358550160254641266984619119596104828590662799680704537726651680044631499703155003278807981436857384792449333209264739377395474585811951634542663276635648403739580371606855017835494061100524770756458788076913300911639354534377624350161499816960352603272903045836657613731651190037001520502574541576852733324145057745891871010085210037120507161466616798212579824485371762504442514304397856858480818191456097089363348839176526531314328554417811730578046600072076604211204288802700664340099840095242281370997958474217714625488568630582383155348166038686745867912975196652949961832336515936126924759042273316243885058017497860986388520109697421734052122598886746746515455530096750924628012665843882907644506493381709376238687481190929244548125647251161991545094387098432365096760660128171422347522103170783258876252208818325560505392133793949892134642301197394604593030573406992962810896429482884625658817538119504997316295294959569814399102944516590398988071391586380866488837933618482637315532323890913324718207881309561309599904654218032424267020633730767965802956909008670037541503296395690290258821655050442876410712838028389733536260113697665398433948464007391255141593775470819789289166963526849001819487376099756172046526668427387604499778260492216192187044612118308149435547287495046154133699441199346505815358709997757698344799493121657398874268054048269546613147243296674414869296918720480937758193685391790883574287208295202604483948001191625819383643095344470493550729115464266886653751285548634256292803189903259103954387652580837779837875310560207757883983072867940100282087388018224904726991874436912423708279820570856099293260757265773092689005552708121165128829858258307436199469418163288039162219693991225690202194218211818795037129239132129244690767654689336173905798865477306018626471633280513869235182996627698051535148422528722500632462520671128863481473514190899354437918925273416949635165786899895178561740028433880560618053272717756122394954832415375977847109440582523350352037904449294509437612450052848469252674038386958757208364631602593465486004067752525252578949210990298771014373701010833363015090639616248208078750904152364913600263342950480900004316343642015886404936815720367110833265827693865881670785138227266924842946449733713713019976625146172609188408547306121151104045352630790177845837265579182127659556800740174937016086879023514545044812564109964271027821487080030216187372511339751521377435503893244771504018823620147426018532982114078925189102021592890670117262364692009827927758301470791610230579493237808420370712292325124939370434669021966899357636363350002010090617501271526323970376670640880685794617896393296727399118255085228034546643679642953788823554161097340944199377211042159263780780359773797141748231606642498282530159981340738921017670447958554356101532876975797550367461251694664496928338438904313893767396123569427937995518815224411957119188378285805026567756236425553400788586019361367555641560605631709913118784278422501018793790326660260025940974119850750513866584507048757083234752001811601454875812266986925677852510349415291842968633615638441282017282137022377900066135705351626630071254420334872369650277137639709548213135011831577144986345325925913328789565127210390270061072284683297478776566519216311881448470702749192911086310313585340594133858390992936753853466163694516470399569533464763290129628057556459476849660957380393469729175958502402132078436561603841053202448781812217764308814516233525564580660297971000681277504529801852277176979528113780819176511435383734943662741803534809913846238403005753277882125762105498182412180367569690373419521148380153909452504305162723252189661443699169436606147397418096165549600268645037813884721314902700625409876139531817566210545253791721153016670199307829559603029714998102986232128234694936218700560322441526916762723280183250471612118090370683194251449375943288654569587796268485811001177990456953106520369920188299305429087964053106469718762683194512099982645112879962596242203453451930455824693702130502605777392712746955428729786245833017164148911109060170921769517915175714209873197854728430388795451606163557011591478837740866809418711361820564632643144269173766666529986378490122118884225195836682072591928610370745312204033490226601545601391563417571657478110663951876407040146357835346248171516358469728441825744282322409286895622390874586500687389046692098430360748384773615764750242002837692996873962405369084167233597832945802421672200737251336243149215530293979750971324291069610177475603018167307002390004364233507990737488103555312884996584777652382986959401087627551112767584527370484067417566264907828610149579804236705601724035177281553014383340196213499309573289097736996591600355409410854454637213742006141403833070843840722121990042448545840605934840690377721711654061845598013702946580886729426621178697070237721495997185999504889548458410554842147206727814538154566906592468059058432949809646988072396925126550715082537179875390756089600454152782462579318547322902080733562600370446908238997789590969195330003416158584781061744263549265558839124401900585637400445951666805739305713959959113851312974155324538649224013730771184834384627207549552728130550260632178016332497076456308544686847415767050644521429069041167974959061401822250980638193104469305232408491787006580142219728063446845949642899815095870315329602001723006681707374473003003762755939262641324808176619063575083424527700658896073945332391633504965302053551430884435179113061372330834817373029720524764853635480311748537525102175245536817402630864349081776678692912142355912128528850116432025768038061735279471481663136702040780811736202404142117919574089600485667505498539562100235163705617397632543413208166933523481300337992592056084184521818850674342284878683620642305565115644905828843478961040518916321157761016346047081035273295390719601404878982655281557917850800738295205328009966773807918754611698677507609672134091587732224463084653029068950812219911870576906983547207652951795709941658249657861766005710626366755279203698878955903018292468444337246499618471172906989772166122033872878280879576224792615947065889724465668470348223608196796516584524417987191266497344307763879457444878135347877721916408654288638858479066184281228166848109554008288259058329198810414486234675489208693733132911550575767494633520401485872367522055644808551757923517433232380231473448208577017415706812444191136967939363821602564230039463222163089196392405456425818190079755361567186109911858638980229000757175893500785212556407655640459855363655021037192179296518640979154561153073223458876123760171781435084316539583465184420369952142995965537912352076385954858126610111693726880151243865942463170590113433372926524147199130233638568307216963834527883640888387865049876914408281321125608291737147366695573463899814420621779835067134448718173925220170251246024090731565114409542260106409905917475098054641275240781393143336117691271532526471521637785985852939763113577725900207429361448135412684730412294684538896092976863208374335205224782324510582512037467171764421478797701093342975356669773183621960817487996049058580647396613765796251262537441066231374939827041634539341894523058623082480120645175193114202198078231964955794710714812994780600390491039256509890554170687960105534098828638577358304177128338768076337125762820306655453495572284274378413142501351816015537281258941071276925334842186655120155292427908567140837549057083657063251116978914428413445984261781203777943946868181436542438684844985529625791845160849051179283938550299539095324008786426098746849822243915079647039726834959001966404145387112515883084366715734691023594884405426560071310021954020928115143715036013054100755717229696562555593421916283863952473500768802437022235780991108312530954454249910458413581574486423039230269232238757567862285985842069930689304949944208199522477401223209440091227068312954969384362299460138200472524601028346313296455711982826049894686320055385698331558576973160430074120241557934274827464273754897118603755296801003491864627742333037392765846161847177047547494028484422119222918132609538676699213677491128038048723703621732076808638676912205264800723814997733421404636969368697500811828075997094570215992225749289330492979245335183332738327903226364972382489160130770120381476801266180375965672859518907407094784245998630782880382390901880601213042966359922064789296898390352270796831855412706921391661906305726481521488694033839827349722176170967363953983083881468626742208186153045535408343227271980860262206416624626654899101958025410651911613088493566551713064871670868235344792745705963468653410437269510610047844388232378738246259728246648853351079637719936537558445945596738070853610692411684494833497546796664869553337386318648807652858464641654631957645420733387294808466009399308697168250676665427686016844164344786723677530400349233327458326285592217782616918671108954005318227849379459871750695686609079683515845928541286836372770687937978402428735527714253865751465511368989313455273178629287986181213238073374372341403058444058840126109684333676548612258218095222748268384496422596965044081869824617802112745803756020381603961328706874931121935470413396305136544151031486163122177763144665242200580728967660896616258895985158676592672348015865963031316688381917993460107155216660223510941697214250189412378057264541958036605204051403740376833267463992892618999102531833672209439678038581166958327133449901311652022959670991768289536721981314556593765909199036955844568793609469308312688895105478277762209103805601014359671457393670873311924449802591318426478376853067788946463819562828414729094590565567431450342367364616247689336032616164092404159446448458799491407253921825257742152914725812443534349382620975899178362194005894843185215835369635628098493725209026272137887283699236253266429985249265388742774584802088543351683178019297056852047876148648407193995800875726054111417102676429708090385617469154293269791780942923032179679046134404350608954329404192727495692634702339445287153028920846365691887262177539228477033831128902570505828196638448916938273900590016609801277147999629005099247338135437027007225443124084878840347593864509784710406150010308582339018415252595991926489958223388041697490430845863369495295003893743113913702522481395462292955521024050454560312002236545666060794871723149607532507199967539029310802410508910995477314067230365704853906691461272797952074371778854729867781321887978599940115010713443044703362598019018146850581602360738874217376281185326266800433254326122385597019873228522666505306909629483175224258553741992324309232366990654572773492911661335250185948015790470356236189839967276812415135845042634233672574440014133758602636412148985596359259613246670302403564109840378047439773316587068649467557565510366397176346415928921575440471593207561910586376473320950002638438777348879948392070200656954288966979493182736989331057777546121120334721244466782478323256717445099646184156848217802910765826497749205576552477422956879269674071946347575267411521395586857322518837776157441854959416597970024903773472397159064349480879234193786929360290452767783326483279608551005404015532123235504157821699907803364878248531586766101882303651772683673135883703736223250120017901382481068991848701355585772803343993321525048668029603187743276216476733237696255151791126427074584658827207854433422777669042547375790274911124437586523012532707497460946041609432522769360142371938785414505607187481058451964858750455705466558539522766724667358186487661771572503150431591355342048833353802336997192096436531067226707839116016608116291288579617538681854340076929743058206064220828889322788746027165815875271453214765856184875982603212761501707365779792700679535415551672900713672116326349602683925594140672388431935432371825112853447788798402213797801908445876001487311496299301437491233022378595295030744691898999443375493490720474066142134703844568906175816916376073297136137613637154510396175426135085753619732653805977738873846547309127165776417076775833087081732010578427806764786941199694406761057810397572214362144606752755961785945521383617378777245899640873000872205696481458968589094626719412126891810216079309590903709316282779832056149485259971639182053560502511406331313833706099915098883828689167576542570154348519315060076878383430836882490534180906528648558509438489266736045088501986677876235953718352575217865436283907173634515638767244172034744207750869900821925974602031084146960097094065675831068533698187587843031332653872112021298934110190603094780770245591295008972325422685309730513149413674646427277505587323485179754754427822939362418154034404248660529407924370877892764561494396719246885948739907614518457321472274120077980605577071104855897707353046812062380367214541136594494345116812722784864815105490871488035612693040650589368108949516702314687586286152062973340507031908017553199238845766335094685808976419446557453120974612494244376232937553598252121726500111164205339295563670762163674342346068670027659455977376888240826497353760122908883278753197418503233014337302999899611737359317090098066430005633898311358741023789037918773331264575636217381179564366727878332946810919859627535640799198705667988971359673081074690963965933117291097932159816893820396493017399904151671270569873688154011180454491866377156580882420963973709902308052521061344605940307973978971292396246430191820884793353807119592991775278593640964688516448049774517866218811537806214286301697430700958699336873547068340104675218194516387958655710337557569481258543194135516593773329901877343486884162078190043141228736120979070524598606448129928830493369726453302615795308422469302623754545105588102947790374203529757557107752790076387418015623839634472963912410500549538624048389497528810713480891815552953680513509786598255985187174813305153481485953386649726183136305076066221901183332635929610894321521970395484453177164693131933493366756358311376022002437828737184382917194977049993260347079371726154697032767187221698892489292688926078042673367172164136385837366504357741706717065148130465352053323294666245172191946516985465747031661865275169153324355504206350772640314312915045528828387484130983292594694180835828886665229087033871292981256555720791959107291221893610527223904474625256877738242986978302544447101516010782875146654662121856881874358370634475925350887134432483845750219830955924452920477341687599020391302511711278454925448498310218663215253065292893400984083381339242482833020664889349693256209587962723597381667934566666094707939537327299302436035809903503834514862068937978527939691042596937782177911122347958395134928548509711083437969106372014917616290185568391854235254498990261955551631262862777597590851024611455883671777169473203685186432825670206111381453808512093715669821061387657182559479973451626018676631010045886685263141211624380407094261718294309097839571052273744329361603696782953221954514614630642232216464394957386287069172414334622676962793513926766638730320012783423357101516010980304133347317279568787373665023091495640600626011504030965666960607414005250310483371071251384726102394049483142411319285936102250959095511998826340798119497117856898856055882877615212459599945227822511925006457024848433663510624530071301545853842271203345448530742235319664143308880331193929353595201612498497180748184936686254747758986049527323467760859453731683111665816044291568735966048637172927592766112208050809162477010260488121487247926960350347591556130127890779548114974347764867422401898970298283454675533243185412951430768213089755492459319227326693832910584744474448670147825792300970839475615829024719677264196098379458477968792078949613344559293163697773842096171253297757993555631111645335454953397003526420269976499420924502629031326065228638009699466080147202898576860713803546503014714536975274029350560942835212470638131832639774984811820320646959493310121243245714171587184108671253705417987712845503430009218130798724079873942610959689351863820659352387522987233998826731520844643698159750526254946224173358807518545986460033163219976472030914850555513964784585950783762997792746689370258126388267573324964291135110790722386082609125399995846872221794742438513327640592959306005859592378817905662334909239817249804906200476822106530369103502296032585643159700153811068545778296571923487055354703025020111909771496301276879135827466559843880876187325827598673393340234314263620907904890205837383728527022743316969416654732447007842061988494841514881767769031221956191762364094671364426231427055371245411271472012834702615628239284657629264156978527658741506381567103408457682815408788131140692492316296517213642974343599234406027924035927014713866840119830557317652810242145160028795374689494133683007632191769954858424928390616877219218019548784985437741575096781759390099068747197334420621339489436560912460343615167850587104399002351293142030186875712677592954966220438104003307540562920512020469584100764513777647983586061395674409684814997265662249484037013350778141938758447936551017232019539021046094976919785643856519925806362492916075666752314936736764388653199699499741675662770786049203024104520533224025440037415693819113916779045781559891815764965923570322422615600252479661061040533477478102992006239562752661973142493126968949407670967220558580752939696227392835020854032369214780033750909719918973393966843281307823841016209061897694380125294908347923782498862192765309728325917242070980815511163778867292477629539031620154477848503676178689168264401689193513036609297887458589868187325968924474518736900184681432657799925924646236337106255010144065205475161783819554346457104047277721823827046612861586238186513925041395147862904146126090128852525869562224063443563822504602030151759408329430196482771593210290956194638133264069410618510457825916066655004556197204497495836521794604993146959702471211225186260625331950638048969583563616428835270582785999573650506265797830384214711365387063823431566939885572355074238015686265530513580605659117421076603752881156907948568080506407352144576891289584982036228990160028977250766835801988997044849486179276649589030379364601767740960865950752095298653382637439636204695605628789619124259031394456250109495389658717055665594113739131782582534821177287356923527048285497733820153878307991176681837257413579381347774121082461655747087891000432009087392553511316575589055316433701093525369955493175436594428800972630205083985121536367980796513417714138886130988053012536512576161954112208069323161452192451303348663010349985281914820705108959750610011288971298524200213815312327689478082947982469910304469352008161303795425920235485681571254261998441661037817198357204691666744037853442807202391041981890360833594515074926867897950093607766916362842718196706167502385981086726749870808358693510393589979287135519926450523978379205292771112373192194936061538061585511216480008499335738747435408261525607420359320888493591105659542346726181401162542803697405534533130500543581394158570384158965748287215616179721105218921471508555089013526615571000273279019072390104523048343975948736036755959361934583449302538467248437812642774225149208504565789182380683165176710631746161181378532384086782931339645702559097548853711071779020695779044062611642821964687445807798802414881792660028454588693117820386552410215480247391415959561151490384270939407722220563901092418208480329652564372304266526615448778583602640290137208191705875720452277929453974910145031491030427570586928210005475696902475562816929174364964481888384617691409187998819608170766331257051501490753957285956392343237975616017258557722127890862662595036011782832527818439570953320605764078540217864914160468045017566670303147275373070449518630422842196701277747139383278637035234502850029636646620548506162458834076382129730011740747160914307843351515840808194698271401467502975656578785687457997496270979923397827132010300620403426033638724160012192764432911132063526217980482849088909055239579289547976023377696530262640312495162390352310811892548543933642584490117801788820755122206235881058796420974578283037862504662963748270401005330518325515437764560400650717861398828264360877055208635826783156316656953021848316955391842739345875131301075316993325149506406115865171819989426751858194570476394714951377543401584765381585850920169991070063480643955598237169577783733260730625143594728771838047361146012061276343047660526796992273952148621836348468836070008296850199308752767670107372955324792341707735416799113815877984731184861213527209189519302421802344791544373509716525140289492356582581975389434622938623044585600566365652540173267396201899169170603554703599713759383354193504792881895450699925970724841472399204804915951949727374925221109235297452005405128782791852299553230465069641976372610363255331302803473928783127912412885943088378815770721024111056879447143314113770676586178918584729867635264244033921343819601382504414801321181545757628132752349140672304537833525515471301806357965777646301229321809641383350427499497403834118036256289796936752269613388515547484562410322911676694122476338247803149920008654391921574367225833790351761539099734861079274742591313343027181570782096444153591724522066907075882585013175009419974547811232939421567086008757239347611330658324314294765187077592171018544973539752494444795176882748345248439043475389524044567186442855933769219493752795276028710532576487094006273088209513591874246762879339644047456961407291559027374441513772901878959937083132756187743229258419293853306484776164422334708505007368640176513985236899756955419764122006769341274591610137485451240833342099784095556800007119159698193188534385013878936540297233637899982845481713447900489337101898122853614799085655951551290944726260537860130249817831147645455543370850841702566128373445128380556386460729895306887748169323964624856760379450166773738283846756153542457022756970701574146450601990226880552464821723725368012715690129033775511695671359446673962227151991811123748612863240365883055006014752125103817283359428500211070650616785136119648122951085910558482379705024333559013395466298001372134979410313356259887252701372317515322398431425452300299085870008011350971635091603058267839689705281719112839112631273542731734247074758069614937249747255959382079438734559079777097870416629611016205312710102649438447738534553835577067995172495640955247598322979156048188050511534305451669261352806976550096973908762498179012779676011302158072306398918657873991188110707024194906039217906735611098752802998639039550589616614681033346090829177267656599906424170625959150002075517288240606426353030609340161740259292948827183624473849434005313419940389882422776572210454834959705275877180871301432715360810936215665085101270673063119318670342183344397305340690435407354596669921833068116842685650075267327150661341654083042114473846010166645506790665835949011781964518576823729806382232002748256279728891243509582016112802410302853911336653576419078576763258725350271359070928581280044285006997868078704955463888042626026473872864150252068198560836385124749457863655575926871805487643824531847556499291250768998282594277091699870739153596167727722501534263961349642357432205958751413328425399874540313801786435790292870181056348888217607510630471393869376434793373803044858595404874328858040409937370481941494354716197457873720054626843764847890602290790965613937457251830300270914781188350457461336321489756020483512405610473184864909211331413898806619246025428003333980261053212471541395574936845846597225028707418110744011168371719401919339701861359357541476326775425578704687641513163571392936978853890790606323610079238172145259922768791625904371902465017768217789444889488976184907895165774022155286789200233171505348310396631118804947607713598406337976208867131312720910179282616260281946661932779303425397886550479173369273705175101049302969273780612425097717108349091289736749517234365076052117169293532436362953235714079424195061966491965916530165103024161674882883443929690502432930326150871172619604174114973571808251897024465181508247216516540505556517587701333450131918947736215882189164357135120289451740980460140042970571437225821369169460070984750732950329808615507528137385777873526104236597564908071140583626908729846662402187996715032790246864151702247800938930736681592239880703207703869609596569373351467618130831288834038297567932749652813039990416844520683041357404013538626355109737438896871508619361404516480070071922898382668660210048375539123979001299045877518502183625322992450608344629663324795757063841026646175683346503254108633915927911218577206841007011091219897964608818227756645762322780172561013839472747713881412757733197873048554518811134909105534943997106470742158459540478749328747429808065464581065719488255454521287571887460456692464026619783363751484785999616777468635219942598537242165090763949999291156115268124785770432961652407292705209879758651204536088019923036452988978233473786762412254332404771964222070759028401463966522014372517046963090371859213615941204592723998500593632465044798523454756413544881832939641386149701537870817389186391132319196387953235289816468848937852841290403482526357037878802560436830868888309619509740535559614616085819132598851615967978327518456111226719930550072027369041655556939643584536917165758168305053734418372077253557744492064851869671521248475056631568461028729672547301005793795173795226465805864069458826038136028371206268579954285345442955373338080934541394096012469282217043963546447781102023085785356390040269218800731756540848952080496410278890402045778978008025757817993677664714306842751067596643314586038440073316750528351932560436806129539234390412059830828723725460879254921314287591727581360645182526353048939968047764187772324147098198760736410988791277524587934667533300757576050742047500032950158663070609219691560609026671954817573150075657986988393108151926212767047076684760158662946599983292057701629273463865708508878689611597249972999284505855500619138180040094988524063978753401664858764342596776463007405963893638430544563690107608389089181187541319522924952914750344223944771090713423725925667682096136161611256046583344293558747986311874399487720449457898396422869232378365667156851587417980141623184447128940386803046380784829910648448122720373262802078751907895016503044998421553131186505780248875276071434422008572738461917010864315554109972265650036596523094954446731468017908451304037640082346724975136962333279735219060995457219105306297970918497721942326757092584503043742632772975832671004146451882362801816107201015461381155665804086756474965676792523248956655839772211688268952475131509993758654164253586816836979894825566877953088702433588395215348636432557768606897574453757554342352360540981428541988789688683303048308606329795696596295108898732504008911830167434421320368634677938147889900513583806432008911372173576457833337940810904144890923240842818289804343801187907246558474563543190432329238305258628502505624413512249393143262141401740999574251456679713862603802506912564031076237814353608538325584992244735372370598027221887326882365946385204759241071303742259292735657189130922502234243025107228110384406724900627835134907918989462327115119979220250119179351221302361311456622822068969486146498102709996658475512561686112666810790205588319822810593140584623961680236591850604692928151837083415369809692908571084226184394073120370831213288015572505109144477293223120581233510959524032744027372009454421063728471702906556883088921418100915149432603813149166672302426163513627998807074943359706839228507380941470085875141285069359506430952390684146324043644760832646252710049381071467410014442621805957625675806422739448889115845818497889457223875593801299625780253328054553928332224351679783011448345610365575930993901599657338412165839025683824405335907193037659800480024709751832180438382783742814792194907232796211112268604498770812959785759236363803305912226040363836552090036802142765507017315152589944621260435118035581550877863887306729217873135511654725098782930006089145177403638657913905546648923100730907269685121930862017229314817889194102593711511757140308954373261619753348533084659425904152518741423121441327092987308582634290064114315690953763138912021698330906907613632065524361549923643511777652608855349172375606647597086599803696578758513240410005404896810159032631348543280014835163707205357790428906186231934205539189908240585074577816149680596623496310453029237013732455716750873241583022008009738544765623888584166992613491541829403117324331778190538480247013476108561788510780059641004666327621283665578336345968803109504716028732698538103939160976605279021604265034499147410939971718135716234726678678974583153688161895401817833001532438914011479087258336332792259279986405541114378914955735548469267861702858224074291675434428615531218718240400511243511215011124747595375865832237320485950524147956692399873897321972591798183058384910382390484831269871754958575321378260674111040556974729501836386779665774061064372496445278430338050731801423112904850294771677141983363719682957294714395581832395776904994696109995158440231603778001321555929919067423043302214340060824050471092105526613022876461954424939596906840379254458435740225537614343562407040358269161948725521467004990765698280628635729181265693751217843746517055094500625439523739610177380093809376769138607551927647172928412566962086114404266150767511357096325718100673071752389821340505555434895570017021096865466652523504471577856206761553800460761368673132153716869665870836476248212230785497753609084346343325330093112962301596433059130430243089669124019306808508379171983807959577241385146801110131044159436280268265489982294417988114700183054298026314296299832234184338732997329623260748422191766702831284374368331492072293217560197480179573146517105306884543203903943660670569957832400002086888894167395117448369470400808067644904070959734678060959858193131834300371832870656119683820857355688545515498684706554652588931019372562939519776736837430612382623000932205336311741077042458260487066961470718864267085860076915373513061599598199364392207027499089193443802747366627319559156490124095301413520717368973931693198337447602810687247042011700158286664081708887951620918520340090779191760540102293178806377345945981300468110726415957056108190749320412628558681973602414545843953800991456487957174329461737944615963115838075078462041465625002541510735375017131144967079715637281666970860784674874259055665427127698404766848094207555872081814846747409892009511517791971596028285056982756328109226655463614901448736994572866414531256259457178577291922288859983468311380521030828051161847122398699241786566977746197153643706034704459276771535528174560060857011147626236416142133120593412394423172764626292961055815922433188417397987060537458388965685670808739259467963687147741828945679778810729377648782822838715666712728039593996355664380850912849094971347587858395839149048497586019309883866661682671903749616547693977785318157982600503815257539339732300200347165640704879976784952696522668058447191110379555780106462381039557943068950290409851499740572523428679794123773141483594301158332049161636465067684325680119674878695256064577765720406882853279654148873928678226025496654320946662963457040617709922487468985130044586136337113077735353780545022882557057134069988038298181562188551444243012240388999393881393647492697504192547655106584853741364746205300501504794783983985194350224854589599201038906590538608153442410945778171195464727814956535070274856527700130568790005080288482208063272996971308947553836351316565271366675334721620076914127449205415920408785650940179827108399688750532400157081077608788615160310390917523905969605664497416157774412774162133997598395979955679506031284841069509428222130552588427331742695052960924841010177453647866761458754433412395144432477210838584810426306942673455043023803993722783759580123424503362574169732919725608525515061182474461207823565192447677617468107000675262966234087767479419390253992710751902783381133570592497078122249293717352158333640719831579304552876071875204987532599985055137765286704492119070699575905002285939121620926683054122278233711623913990662780854273493419156614007119883352059616581433110464839079587591206510690006760399474127552564666029186169424123559471946271343495913592023832975620379470914658027253989329978889944017103477148650808101961777670160129084350484381743977299682421076892005465566769163507268925335970491608709234732042659768800852479426596002935577072730961183399112876847154628403768469325599294022854659300398103915608078468820768267277038141663949744730413911147475842727653536265641686099830591599263420856264267359052898419570675510320971830389927810687311468505463811459764672738846786158440988426349335844047005355883321265870620975246788384006369133757166258253789353576688410146008427508998221376194935720361257904243546534059302852102445260912508955023738246136494214681463863777665202119038361641671515072441822352767195345736333172976404968323170530994624512688092607242312440917712851345854969455872044404316718209894096343167537212232090516980898709561029317329157650499601765462437273951428821460584884109728743810352524433268262477356024086806888113299671349814892311955742828736103976555418223154315896694733736171879850724906066354993179668138235595358370433631132763080783673390246755930703162987016174625769388105464042645818307971805534490703828369346218985612108874744501640903946408852436680726987085582166132504198404374187396400233249346343591445771093424086821185161659465547449246268052021332910921903316586677720550536755322117304586232935272475632571732124815979407069044014240887246153918210590164307734394828885016155559916219631208574214545006781197702230904610252419324979071292865943514141371084998230092628289040909950679292864214938854595323706644411286353956107762079905390867854589694847540451409185671362859242632176018471422834611060383408129724093055665027455419299909420296633217084673734661550312127680203063310368409943512095187780868858574601516268974226678651348878635459654335693611850059337257911802699298773637003869800970802754397640826387513610020652851720143758812234798763246355229648985714712006086012604855186282132172709435312622031932252448761911635235317101635083889546362164625754627879410989132887922944294123596370789231757846701013608017405619752210802273896212312741852137922750027571173709180184096186944123742645917525390552233590293178328954674654714176544985385754570267970096847948702600536956309455766840974267535870208530778428544756245319975185291040418699151038373918312360640104654649247030971609968556059467967588388603352547045579067084744414793335826979296991655336906539432922737012144761377081207783767685033457327048063336115417094829265594820521246839929901266807376338345535715391267091958538716115857181038414832954129257016505375022523287086405737686781741832504282642323735933323247203574325501511579225586823775823340534654455193584666659237964771375206708835501978150912984417421887176598818087280557822247182162866005170771838653739409425425481821101793064311488500391057337011378681824392294986204124006965673840552247495747885636679470370250840294904080669267397690588072809192722228061744469147012937705872923314606609989886457960474350493807379062001213097121011361891905939379120435659676115494019055812822716043490532402095108492401377515467004741303337266747112349700973958503528995997595997732940922534269442775463805634561807117245415547377491029575311733816024083477433766744562276430343796481791139665967250486651086398700818480461661179392706192822057385414179284179688563832233291541235159268873483028636679926448182540291593189687831732004340425908770911696449739896586136335722244222062237438889216207240923818674272844387102660544514060683296524111917804103322601289424172327806053386831660120215691967654051001858007725192152515361290681880862482763336649891197785035205430574349842386971075994092807133000625557634357636263618015617528553511476661921584396221913779686528975106825602135873164590211801279027301878676880019709137535601573808757557606674783029524174025210353370729056073297258868308048912358682446003157908457202548678247597392356935421288082292057993339449733658237822706117032782145693329245271501997450062303297940198844501575944477979715694284842652657295959326735560778852388074554195986432490954846137888399516355440137227942372440797649110194930978246932260820328406615303073444505150374004494317167009858703062342712161643353964330614099761913177547873991362502580751127041325303287598704922920870804997104188948967999807570203160109694370992039393951967252927112174906701368898276671240477505137910018264655519583104016217985469371309883384532820929037092240291705700621652072468885485362335249564472890483151490493119551789081864013413051663734640107446413932524169625019711016924264661386915346120843609379845785944451931125972124640720291553687345767883228867768396582656262358576726978659901428443496471603799964939580233088355754626362654933222809209600731692269917763237189033598745618806866417307172261034212311311766599101949218337189235670884877010164382101647153026387246125542142400070438561601204320372897888583994948532028026342290249799580758358148170918082725271047336436252579256559693322617994209420770951273363851579546036133851262169742996879202921171403504528316486042015497392684094990382525444929683091364995242431630586691683199768051898113105966749444627339896000304014830770161328793604448718036856816761238250505764221126884819442640345920859438796874779551638943985019691984567196108532203602544419884998592718868238602248876961743335606421083471321326498917752821748358137456202525119572859886488685154585842881894803253877100224466018356540381946754020296022505376957007737778905120628571553693758578711074564779970875790105233075048175875311760898594881916890861071508169838957279035654717940388138905096331025310003942145627333240654885946675962885782740623157492061398817141612425897279937402785085360663907566749361176470902087515058736164643630615108337720998224645603104268728390012865535915916566158454969831531034894402196342953568600305170220463203068215914471642044408824007839544470889326909615417881539369299029103395018897268801156922778688787741706783061210494317694063267747016328867389066690191010270812169406193857909005813600087301371294199299568075389582617741156006481082907866270092572202017530391872585776232348407886699679786267026230875119997600905611719705527654294838545801750609677718001894210914775051198010236308138645413259401129063932149756078543971398104204269218564820705947526687881220680726151785231283823534827793638914101180391538967785074116544370412429601792860409190020574668407803227475210131668434036709733985839877459268554609937686339034888478087662978033530343547987547917566336629377431477806208188737071944508455362511453295275804732491941014245448902597376704545556610044972438457945390207085850861287751104923287978565834410354900180860993165957466121735842956444946481116136383179111207540580387844455494260080596603568405949453745833263994473972946523616617609157869248118197238533450368134848802802979143410466129725559885039824522102682965860749916129680136003630522805302205617674276328667854079892889658910545990391735939275971871484897908737336655187545406431212383093836383611036785458686404261650459208336950229089094624083301948776006763137995808982398084013968728427854227365546389527641197377589768218440489288587152645067497971346368203699205782057353035323980259902344830291120320401941203060462601737084822885541659775538060408491116493787691132684547824048009241876651397967121771992496910368259880572263928977873794320667626167105573299982062202679393509271407984427338866215368971832135815973658062229693672408936318549989433752851104628605278669492600533965444276686864504193420488811091146699467103546172759509647824225150662874646034252946689020219105138869968795161019346981935836857239063407527582474287855891610698664777168209941264434525196113442318023492323237794536970534857402284569176154696137481320292751098652934735712479534610599906893799808195245991259287272539964295900241582814256717455592330896862912475588931166068306599081031816501188623700739380748649164336176270288071905238587352535910502328970942683146712804214933796055737961711304391468656915226633000413482325062554970881940884748178702038801022585505504143701439847293321984691992061751725107829955072685513628928855639306402138590712287467709892392988726516389318405089384287709592274834257419462497484646061570849106702264529658273773187077990223158051928432597329547388364072291168049971895803397575386251873453047452676216954233665856357351889322718097422173090798933433254526163286080079885650375306660390484177427147089311419678899218718420692427444173318005051739115310026998207806220047870302218816042711269020915348540703587506329831914551434410424510652280484036048809419326023950489808777864217035725570415096227552047943345485390666121845618753911158434915488749045523902054695452152572830299110314970880010325677022492287093272768288942399402178844339696278674491846511565766130467507165043013188876311619011224159601980323782958440499847347623629836246170965338533007334170230112520498121054509732883044334684561274572211392979189661817244912205465191860922354540369026063533104059535768278533544082327324687828352677180068695800889374403335812404976118927584847587903459886069222589122844732118206909755188192878886799240014144440818960693836167091000507479434700690818713550295858789509002955688699366845320497536474282809032061422128687877409148958840493273514180768127883500978458442215139176149056890452208716316133225385198389827272630281925041296126132838893116067274081429129028623168108147361324938857146637508511365914744212989951526253874607029504868719580362954281733301961849387694470852927077892934642350599581319669217534760337973230758967685331133308708652679378199631519500133611262333606471504811309149580611726737877702393324860783394926458912884571082450938445517316211922749857162095815435376397150357385301079990128241184020589643047341677778604567863153099885971740318705702267936965530735387008810294422766331326463219795210422075192175611253829041236560701122062102595565721503286778893065141885744500286877935814591955320713504077114185059356615020755368134464191806029664702915006489607012502924613930135274542227896217482779649415530686752500318895364335852547295396278306166240064513858054897307922135735862888539775862905341299571326699413156206229873070365246210060252680835551318914742509617616294797005650698998800941816156913588173672819746729790081571123522028629507570070485299325163208795205581232809268318068747902244911154378068937056571758583657766843646822554708428093760995028608557439580596072383915348439765914254528031599965810294390942293568606650657190786750307603256451028583556793383998085459502978732505328718463434029832778998336824482647571636909689046544209524433605867035968847828566378308216341043593570145739767140638479812951484526983103666222031353618356773026966548834636498200884325393621450465362576115797995315586514804215106509714823199119153807039812974446242029500969900887780137642591601460751454042881675841067205411886000469054095697437000135407838389168736291879902653462614748544106311855615566183624358735493329227852159184173238869191820219602148016105495266255615677896095985704856862861854121146277887636103664956610326394385045616200412721896204219969768638617049856896556121621689876783223983753298952968206950965509919209989626805241012645309727029659892817989406529000636882855631087809892340915973069322187371699068982390460887721167087697509936815335304408801810456806661472132777638580502559203159652958908447043745229109626346873687423132351868242320304047364788979007547071900893496911939317748866583929043026616709560390642938045006114528721444083505998494748182568447410674537455783885417619743062408702383844272292597959938405053040179817664206104129636197057135853784777054174866858371020234724202449187927947482222225643066839854074242956590303325473353430821280772471927677551952305903874703423346394989980383479559563089799806044370561758717476122055496542658947028010953640466289036444350504763754446682670908528231736861414065163173602743538195065519350640929114161702808324296630823673294845517816967618616581669913715476465175254641413162974562270760121906509275190068210926997659497996336545464907904495535171533846123839834666231272416324220830256915012134694046703954786013701810221521470927573436908808677230519099285272527061510018048391702128269187024105264196244934950862765316717969026457594894653098954643740455753095525817532437307955703400301765778602446455714728086507922193432628287194117085027417815888011844675230970959228785423875828297066610118453259360272223672322924139391316850214313675025190261329327170682311671534561516974639919449351172474982465869411655050748019062961983261073558417858456567217731020906602315547341787252231446667982679764135322819507273217775515211933886357242938043516636536974890469168831719265923524242308689225028637913567552336326774647668455900186113080381414780574152127935148914102556523215211266946029865470015393710708780264946273149530199787861541412846027937530757161849216431927011287611048630070318768063579702998432812329881593989285086192168657593534251525100036646371034899444589281198858952502257001238791550644963916569384274319507763355887884088158024949051824856601175095794926693629338211564376771338955926394465459522270536306847633534174394728499001866577470566295976391156886568238244478992203490024249368801360241367468201834849524819875370490895092375508858732642999069578924750805480100717570049251957626867025716972626613479161132546656555479580223936311868451080958334794311392575548568898213363643848165556834657216544132909398595591967853188320387137151966691076224169249763640123207251484816207809681821178126378203538487300949207068667089353423381616716493093168558369067004637780562319643119836178343754945895198959469401283707022788585467712905633511826985797630946501431362682795213140271370040111769558918487291698699414793009229876355186118523538556736071176276799385686268517016599224497914914142410320512596017445614747383888382711146085360087319226018479679174849795659819829083361141313820900581623521119728546107816256691112700743307373779606462673136830744842209739082747259379524474830004081574637392357339592852568415293793464630853122261852153894285222673304031570544776149651595302113920542844905220424673427340675134783361133832715255923079547945573111944148492274901117633882566470053124008198573583719048277145276882177919650774094833738729190401612415119668897259963443755971550078087787712662543364011805313262747481852362631088931170328575862155376748481523226042018016915999191796807876401253434287375731856909477222951443809990558573619878804636371967160277018929075877153465011852942810146530217222927343269073230755411814272434035985545399386321041426769503484017589590149268490234554285240389728742223229415452286828649601778644820394604539830433981763496443778454538821065015326352006160118975887279271475992343683817795861300140814037495702764506835508123655711241551868529600270683428385100043201167076964628964538646953326214897323290770986257269401102748875778603191437712761774535728723104596701078632649513221125334694118448325178180376217538663237711485796545494140279918372870696348884591261129639838023730168841550509458911869375384516974677989280045867307523037592785740963498596828119896964156673801986982455874441805604273093549965927148685734725096034692890602869975547362529000014888684084544009210540406388045394232364868504900933122890469144361666352127576142876809412801811802262123375592556479265061970229748673736002021853085373467671974738177224856783617835647713381826523618377724661399788760376751878211697266291851488012165600614382953276805785181145178830783420786782467578878785333619691838306039140119916327728343597305554461106895131020792290674967377221410933693769273273991887054363564822436881974395426190628474371463044476454985769625140044904181812548268529020942007344770584576046681611086920064730772732742354709002913439015317569627544949982455269166348054625818380459288872075077377003433340497543467251055011704824470966391239423659461423477304458570145014143633944242966386807314778606861668012594735506013632129943734145102199953554208100001302158199201763600678125361553719657328117520686855559844762039755646832735185501607270823339766459283121720152615019803769187779133705813617528469574641922301502821886614049682440273738034882895464357774674588586647560200326649348357275664628854295506713645227450364587941773079200743082096968635882779130219074917527721192177203953723118559825852613123919348303749233579364561944098638127825519403512435875766108583186823547154630381971324276488317203162997738492054210896201896817251771345810582709642238971674857262084420666703067800121093643111935595184096582806000219087468797630963561169559791095860341931469016299839709315855018921004678748471156705621709553162844845705570521610530924754273355601194215966734837221385966250608927346472748682284207059658129842221454235305980442973594466739976823744119798093494084667538659918773548246599431800652312412839129664644346745994073841814039938839476677107073839115058801603432856474445072545350144610349562555617306873537163508069518639215561471751756499733160429405940530300531304101267619852091372592109036251464780376780710268763954936029540944882559109663294693364687160956601726622076282160943472491112448240340606829003137994996462040546239552238987796630175225522230254909114148380499153090962695005980239602203789350152223780125658765178514739840737624006374575574682760106395166569185064385897146054322521056772062401901677729742790387859929408988761645565024723272168636682279183660986758817422287479219643379824081630322326736623734890573336295208262716432880896455538805868829432573478344347134413432815157984658747849905727321574225573797787807596975810495988451308380896029299087165361439649145462922082477483088764550987655759702416097773691352662589180475475650798114213764564721445950851872167907093175399804406840907107703823967926407805680732669390811807551234732556886153927576101429518478656814187038993000154196983812050838585764906510513934455443461334753700675204086214461791590457466446478328964505441256396460628478582970075918469297921980758921068003393001742311077572951877678539013566854698882191914373844474003145389260819281122430434150443330089743678073934314406247020654583221936226985286631569608714500317343352877434065999684151874244880767974922449622655684000349143418162021530710320499650916701519078250424247419886145060775871986121616505855906212023766719575675179797305095585451868324555595035503451770336635001500865307345814078459597897429249172633410047382329961245348489567555590536522352099786200206893168404108091960932800861094697845602074937185536264324774860618387826896286854740322681475391625423719574173203177682970987991917275809090576750476171101300327675025647939529206832445324668162909244635071538206585458502422876432247219395596695930857880739787039111272076290338380074825361123932275839673873743243936150121150500471922838133470385696539697241306060248498979576634294724063109201985235465490347662445149182502255218541987241789407138047690087593413355893952969004721375411349097126065264002120641401528871300731930723136520628325230439287862244546667713567558841762299369081403223948456424236600915707732683433864142474096907768724755040444220482890418166320516199698014050544132243279283195959535356033054572589747935725866340176963637881392426249808424385250029104764018093419582918194090899269966782492491403256378242747855040613321630122821224588616902603963380735711930226631709457759285079158917968506423784132892130519307210061878125459186653830272326972050459668839629295060042851112398507176468943067623814111285509990313067974557429647753746172107739411307098456080624969380304777649485676501856992103233695178401524088924127686766680479432261257951873114176934339688410654956304164390231503981509944051781799875783063570984728457250675472981197901208990574409458463186858644327549744564229763359351932994453414423603774118293119515574140237923469913907197134167766498371949951599455276193029611545485139723033524871249311115988354345765306523398507422942336102310036378593594821764375150910358470235192065216999191861156312814584009646853022138614567330995363673867282310132101344580175879401056978076364980692772558012698098978280136493429839240509608544538157140396446603581589214579473381779668953571594749107440847208124023473910954663094245013089166893416562193560076137666668271171039449351236125308253355542987696318039762975189628012521049444585468010356213635200859213860482859874328860953089802028625557475377369697015746483132787146207683365497116822011322237416293715712743754132999976302258909918939120300466432400957972346367908133514777157287332967877563854371279674195602290814381052035895745787447320016421636179726697437947808488955669423998510079710582625157106552795062481066827916867863605792697031464196707002899927292595171865792707498176486092653207168610392868591894382330727786098411719355050591725330147082721910748834782482689516213096607680124503666926530480693518055200508750459138667682371903967174203797902120095202499130858162813117272528759764980069562416386808662992683430888168011215913989296539732290237866535345363525682009918864497019263787626454457532392448134662533082724743915733817284433360028888615502390216210630427225985929623369833907747322076603123798242923565499270661041597099959396000315772903129360615150420940223459623814552507459011850154669518992427720079967820523969515425135974160950986833518246503828893721378144696961155321101964172461066103792833394270622172672490856313781402764600809674691715207040999512504600750721367863533643762243132119987743573493510286449457679347410721273903319577242691345813299101868638186055360392003146358703947952705036785089513133048372061541546045460293790131084785222439448668067526122937624559440221006414367882502588210905485183128251126378829042239204477900173040310992157775166485552783432263201701811888916439689539257494532667449761931284615202971068950046511527561623763311172231449628924218119116338219388616999797481573267010025242120856135388398950586491268581555046401668631079375902362893716367791397399370242672481671195086484887626294237066711003297821486794064473103718664102146056254358632537856937387974252936750498555782902114846338315691828301890968802552360735139288748668346234015181355813412899152283431220477134655642211056229210661689157352037551085891115529816776147369463938845064513924142704885136518954962572791041020715518690038182937214509525038317532719168652253528171577477312787058702623029520146371825985160659135553009233914266806881294266423694384034724411362423739437048115891997839935744109891293760495805819266049075235913647172215267717763623971677579038005968144488706137567704642697980217440571181463394839380822471112101238351037811603299116181079356869573754049438804652518599654372358604754903978665707192860769200372379947236695851791321743814630565985281029471676057811799092487504904445543548726576388730275856037935861702168498602678789313268495855224657241245706699711064962609284708485220413166741719689818519940332416244464513546374731585239256392402036521539049308177787583044288558600960048705263497167291322314551419613474128503743836798291016985431803628536528717087860300326360503010906403806643346944628716917788673771334333785151507563602772189924853663119678063169390680972340007017560399514113262338232951545488151351127106787600652547333176963498598785782896242582121485034442022227362144718283784793301958376243426186079119694398624965491641380254644572801263376061126431583361537536137670971515991707308410035386656947632921398877496719214162903238598699783784102159628478365679805625674173275364263141068164607850461099475849032630619535222960535717295443649744033847496402301801282246455651472975537290444638420292733333981536083411593613523725216473801329085008972118146869766338057899029770120471751816710964618863054734566412312486182345127701122670295002332804005099047669227319152984142600298488078259321409691822704802850730362205958541302779551909437037456761702141219087946446025314029228553578322482406500106276716092565360297271386401530257411689726246947127745802167903899452480088943643962897891318083080114298231676042425604942070354762673954296899212297124831897470247147523829612930777073538286717401988453500054955113778724402003135652001111634197261304658698182060794408279434158667521526002543140858143599257726492953605718067651906424843176958060757029367530078336808877221813627995967131734486558528949905708269746767910370271350685556033458052103127883434539993367738074915147605022471042037039403462047539390244951286004723645093348180266938634224511632295634206188771250429705608361511285510843092427279826902510645421567452049495624605460819093116829203272221531655045462083097439533933137858022506892320816041394314992366780111624375653328422210526872630647946141740763228550301814148727925755629180290594912029262142936341307648638599043823714799237808433639868144718129273241630605860669706664361694960635173227633841124169664401820740006654843811815566483914228443478600470341571468538730620212740136344648682659176308903644843368484243097609911337928257869902428276018602429063588767876435484367656296734295746997722313416004033155915763810964574296468149416128061320693431904264451729911691810812862549629245640220495369121536054997363066666283865457197433908485471865818099238471744612318165060378534948781435318768274222935330297829224177367499429993798214054025855770346293058112244254711438304299035445019204449094331004922867619163648824385134859773404936504475012640381092612058553695520715453077634446291696066743625384166435017279627505422693502664086821000681100607058496194838521390490107921415767394965355797498287355025941605405651765844445838354653585914237167402618501721500972122242256136554181184009347331152892691266278388948389354719019220899355280157981823863735211335567904015087745053647497946147542958206478950571683367749212189174880857553448486717351068671792090027455567224881065543617150889196821591953740598712808975645613610251441783486181467326353725406414747650098467757402737705392887626748012576493520301844346447104130665080651452492967356191792608064241888499059358013135725312886013467475705653674904155637647122049119050390529897442915243370517400555475895844950412755219006954104254470651161059771626505550573032752416483106020238156009540579320211621656935114664812337929763510599982640711052069502871537545748210108741699194450088521941588151430166635003938955195075195882840704130027493204771752346232512338281748407955515784994683514224709536895841261998886055967103670588862388369878618123862204306113257733541288220925722189576554475567161662739423788966938053157425790204094416513347662370050065914616351787495191445727625883856322293411543539884410992348930413552666518470821978436960575635579060252286147154320444537485211010135312327976449682383183561859437691010280460754447505079575780140473090865178041034031214407067082183664800740154942892835152623988567599231222578325245517070419321684735478536073311953969340054641256502299501761571880633309188531712961267451409303477495241623419017425533654949675213903679904686600077464288761217256689871000518555098286430382143238508010909005990777291541791202346155633327313620893665988006376984479552674681187821364315006657694160256834594242807898347626115520325317756316728934325590998569659324716783151481970652327431689711023717068846279522322378943776154782066965517633681782776214371102808612431994757835726341977706503238457067764314051170189784631455784804925665825912250901548829459961822622236883785524159079859785629428320299075529378595757698641490662564289397351794348192902331579439032529506533708262928187718124740977412091967309361855342972106575818887296905371514095326671410149046865239675528777398795008419414887128937441262782774873980078711160980977725591470251421253226202851946960525807213974466154074259501394357653750651997747475048394092212742996066646729455779871112329421794979408667980924803703498234952466726146997769397328445427080463965504482538509675638185430258881845003697921987593367567031026435419053467715128281410536200862997352024246191794335953532544674413964651527472657098418923407494842746131185130781256147235852873315439895425306810821423621572304950528576637415907086100510572463111783274300910739848653811178294974123515594590119283596453043774373799540878097199419608013146194711737625911088554945808840130219162029863253123425837014961043973624510527494006770067062643204563391174077444817935280856037016908278945010603235453351542094552603327515665594446725490647104226578614134085334240149109521052484318191901196056757105188936275517764378620179360356609845890781032914580751343583172290578536983702558266146267720225563921427209919117856984919054375689755304169477745538787803368696188449186438647934434122992857729607233445826072910065233937284737829361648929624234866851642623122464483094900668551317702468276269678842642629331867193536238616214830947363602688268733576939624187602948487715201540741406819657792471077401680877331951274029734806986775473827389018635197148469482612013717825061701107310835292363177841386013003983199654118939250939620936976107035329837002724389761365011536287968102536807718077089542583831999292190478078748571463757690656467050729836418619390459577374582462803536644619825356160821125764785186834883604285825393403649459554326875878423449931362285731992266239781216970411963383711869080446762272256835517330801898677147719296508911925223925536856152549066446510458018044872367679381746714482774520168711831460942293709406235592284337832917785878507684230984204341285424253939678052643788392350892730655531366124462731732995210269719688476482858376649781255301697462431392582956755089072092603982664297961570555318683525833302690042546163445073865682999140066728408440455921273587566921853407946946201379991326327166596900850189166867734232595411564753263135225411494443630856648361912206240038173185880464449431818998849321880756609687708114483562558667982522741524178724244823363078820482253320603094796600412481183663515865697212266386132452222072881924139397310088260091197115078922857827214859087728230043908899017795197311805016930835747656159850416769972266478241866623466278589085619637364852288741919537558023353712780279622252058763955370396287390809383042310176937056619134910967128121208533204167337087947619018941460583843536407991765725160525860798974536025997411162071448163315800717792860726384286184113068288655108356091680954303607598085212350364911561653088777755441490993943213123830109923989570621729098616683692911396370995826076584201217906027031891895944017151112224155286917319126035819680874151120024292083497434026073245008252333702581227389257324465989873917301558947774234067387875670943820577796958183383459000387877265689740631551606481939696737340699657115632987571217562462404534989503908791536725710844492097250141097201612181027384677764176449990832172902075429191683274676522829284163081446071054847044295893181328406094067136619262277108130526850280513264274689271118222946223183321046425970327399618670308098759838312422081863637624294585985900909726075036525843438366788277324490474136796922336132530063677808356125733496351424951507010826330094824662081890888104212243707687108610817177535765834496266861556624917417668392906694489445595643323279834006533503074895949696570584945661780839287160200299135243637494483388386652803599323211107748298937851229198118365856617557719200819808120878918934962356102615270702845209976734912782502145646917508891481522333791992070649798451678370926737452174038301050936310222382779512968818813690897556066941264043876794333226158408780041946496197895036244170247282834714290016403396849836820054809402712746544570887325069778242932749509601637520896877359473548063201962515682620972991957540758750830007078128384245816865940726115641301903162703474505998950880207880163666697398706695183889575084458473196183559253125353998980046573215006716051480311737234375598142179822531104536842621459934560582989739213097511723080841536108616252028491144807352586156636548628068095148425659401267746812505614911000031751736205667616957496803192976224641781252443219872792628107848560997599937548665132432351112356670481151465827423218925859389557751800008429626894899909928119971517321874708385869558031524497051866535693552936315597439808339501547388329575110765225651425526215035666219454122109368870063919084437295126385238307682967889449241925266070933471065026659468811794465226681382209866040160045730308351611964165607613026913290227554665547309415992444393529829584453973071794930185815024193998418574418785635905332000209372339983043941710527475065550341225475047092673866671424283510390546824214390470571439686544299350767372732751974573787792527390280380445415652914329664082548528844412534455002801352908054996174993548014163667421829739521478696549462652883487336405343101089960776728183871270150594159104581390316762944217817389470759005066656077880272740742006952959327125514392905340744082592028611936673542696002905510709550172729947230861653434793825095584429389121595413428634820746855505792006953420207270329894043582147932022549749525007329332532141435028604246968449207629936923362088207962441649722118840852554124115439109659482871727544738808980524827879057573618934121763338452914387220685322996579421929935874399360327745432719088674312549610352491701735572145839150463122468934731159961839978195907004553127730204808730992510855350454994329003969821874582706824970546405445213797549479796240903310948789119574932422977659155876308038101210325131655789988317352415213457421188086565565010259282738558319642288774850599560340972085807906512871446062512485377959383121165638836215102768589581248348029285712685541134579287649405795000683134594450991953501282146300251932555426087703544829739856321277189041239202102551454342962367819570279448102440825785405524767570631354486275030796806002278163528777489837960404851798856874898101216121780326792442580404051644124164223860379457428384871579180348925356936333134083625954933619340120843090590408536284086321921568405994716404655111946622649547252048295995285365231639564276985897649916789560204272245162707890085163980631157507260870503981269648039966270074244274912811721895280644683202094666420473698330891797624838818825269526862558889029790297252432352693126085437080310534623859395408529479528853207159261993936707310973951415838834151347693535541579928711840521928948563465512168217218865492464364652532595697986501330903884919615633529585063161776281898723588704560077203914180746560586315138080040296199770784511930625583181566837428516845377093568120787915099686543451425527393104521647152285502669326464641449232625872432225539081935825828971895963916134297262635016814955292900972316513822259680753667700776891039903166605843443273333858949842270885645664667509759058804765533360559949176901844345041327670741793871212898446436785048041477500256622665743752682472672711233088964887506039109862170787118693342434708924983140229408388005279138168359219566280693801843777873179296958645337797701433458671677982092305931323810036515904115559923674277301873559960829332814919131097358358089494585065605377204324273759707976510405459596324077516810246917096904295519963854846324903591746306067854319019492237204329213676800740977974112760810029296775236447506034271765082154681387028950602991785345815953351886122464761921757632600290816189157841798114371450528252359677192310194561877091883342330306250884109580829230594854109569428725754128697661515900794570835269185460075565080570321713623842247617786796593963111144674458368511563719086404216811349359546862735239999658269205191312231333875774283187980519669786466723101450948471192219256658110963496310990336865436814884042157442390014875658840605244244068121468089361465510884387915939818894193263611252883812305761979435363941275803871410768713371193120826066091164317330645311612903695959085374187693533315647525094048884459661617867988841358527441606182931726705901914735556997427918861666200766728004708998405245202572749685734038814577505345822794170058454150234301591136340460097049317399592020897772382537598417442756734841363911853081512961924209003940091674584269618964736020025131979643160533294929319411142447266497765140638936214578135793060999169737590410628654428990642163078921325609856612055723809757795067734708802986610508835918440582521129403856743925142562003454904486223907738632491728800523669313993489333407642231111878878232426025244806999113823402868849361986186008583073706135856175873735111453515255628876281526117577788962005181083350050162117925207338857900372001619745090910382613940781754976346524969827213744359609384916781817240249388432969711574776548611420768780361866669959694979392509335563933843285447314431829815901844794563065298283850193005443928441356270510841627465017358121024129377451690622044307711495261477327816636369112433578823389434102598897358609569790162697385762559016984070552453453166452074760236814189797684297912015760667887338938628559860672224632833085507685118880831655103029537438040040375022589446894284779749567457084609701688552193347154441862902572618417869628445561189553674925904379345141301251547129787560569101488185859078844269193840942788645514419177366640064484326426755466877007000161828410676300355824107756469024012783666186881868773986817104225299493630182463737227080424388771621782726318900294631933111874770323134314826151097960432314952285632872279035747694416268461266460529293111750117079687876699380635462645366393473322676311795164818614602567543858887472897036677731039518429318331329019165347247794628720017844769142244942880579743535831377242660539923831595142529565712655655274816690172969268679686790119325710688801192366622109764719993365745651639662465201036085672570201434454030041813762973270960438694154198144043605301451198308718813617351722519837417845097685297385738318053367478847514126029612757012303490604775727905389517379261648134945191506349169864390023478087781842387225453873194883255366293468618525457683971026359867340216839895848236853049037787535685150665474607990399478708692738624772293575907153903023052653319747743252118368191291703715559348589518290874986030407436501643650372271208442941429335215214854391555093158585914816696989519906855204169290247942183937236350934141322903159691879288751946086524895384505761541818683917776456995049375120771138874032318694148173817362786650037381280759337448260268622869599969993511189053147371964720920330692408200722642124462060131521521975868607662438135024039885454895935307368145132044758371749465637574750701542882567551216203221960963319288567831348008235118349756630703247890465845621932327582943534498118242167303303557801238187615005185911457429042444346377416428295820350337491778300023383967491193781159077655902424604116072969745623651428583214235214386020891002007457245443036598496278197967583805473893944476281235508711551385993026508728989798699305905384878822005659419525775514899110970402008018964595723478543958443556558734484696684700968939201912809333176727728889322443341423963567883184456128497058547596659021271837427041723425900278986649922497994551052417726992898953874635660931739889929650438551627015814053350656292740353774845195885924598041467037957475365710914277808442511033289861343762754836481397967359805081742504436835572237119020782623194954713796699348559482904293681479825143576553259111836402367406443902646348527363961073262093666676544468975095914307927502336907621981023620773300129287166171610916253808046587249805428453599710895380698821815064081371272151930720936888554686086519946461883303349719384011148472096096265474021700859400023334562756485136467877855206897087447073272974370858727393277526673604614054274420608099035393889932806855170839548822481491295608890958625521174163732500826421611827323834637646990255791984225945352056862432099729311197068897396259698008132526636742297999090205669507967386515111168888659897567294537518735607222240366446843376642620389453629760007541768298051622736722619348133042843600740406285587013255134202479467308854253402083021633938318658044569202991808761318472864403614539644043266176404801920698043355652641465975590507806933167022123958542251663195127417264762595441910887493064568824200543736825365168213842555422258649637992733925866590927080075053803933839912834988288914178907520468243611365223250023802136082400796315994380780089392761654249829687366823706470654918475535492262003995218699249565980918236711568818144678168700607985082242012832664096880445289713107425521713564874970031971516127582818985826764507059088487590523784929867918910713167729387335059070092338663199540788902640851369296602366883093151113342290793832485695607051499858138044392492263316511701433442256542532192003889725875854539148954936669781542938020081668699676527430459997425579444902944892917139290743492074557615387791398112484104726431554360674945515476951082932297043598997256569013278555135438742062937867350968185902526004446557646168260087331801514039544221732635268475150930154289833335736088107923881104638661649966188182011889235501126825770569669194036225567856986424377592374881005010716493843432121381795944590035034175072336556144002434700544802864139061398354238341166507580626872162354353057609870889994963834618044941803303715392762979961628375350659520511973370175052153352328631013370796582204557953618517430936799180408089145962705857688432102203767103046469125420096097988421655980170803607667455263329892354912829692055407838372097976316499849564765524248107339715640189799250297484046086208468717080325512624705343930957156868037975520092603464827242699560335268631888588764623809167816700225037791985121815246208201379571059422141088177618744220785062281310745613453997655220998011295870774312500055327803678494592024409633491165863357554157615730421021815589740488842335701778205671370869067662458226663801520011779167656572507836387968502704771230062319801440561586858048256227064303844678457638795573313864591181528507958272048377898967965133484064247808430514082561368272023861258506401847265750581414392767122869665348658962005281998967310880844796284295921507301734961560541810784550328233481134444778829245578292919799027395904709258586887130073804514296373589559632758598258864929165403395050814590818424297325032485801938568236292207626361708462757817551857327482607814820557397511331110710864839724134692848885153118012859892745091962605597698197535478590675289950049034797993199697889885648934834680451643199476251997707795372048839534651823752101046771998723031661065243556666073945039114295208334084151651166208904534640886769654854273039015862679482640251584659565768022261660391443666834874382699545680496099649684862810986873977596348647412387948994421274889070869381008860681685433976012379565636613749713147116080423458895581126346280834573483190429857941067843909863076287408622929849597178097094000301720647882419175215851023548154439402286631275784500201177434299461433550624829396840066149978404949781540012691218251133712688461667492366306086096077161903388476109435035232260194397852119768982604660739355650334396650333807912319758347423329440983923390960300958722743107940079506946687792871722895546685604207107364694497035268770193872787667463621638270971488908118177622239635586734721154227334503244842559782386422534776028498215938860890602426159948392962681644791406533249281393800700915409112958770092766839966790931125209074453665968586651271120127349162548926098459290934763006867722103258428989878831549656262289545596986453980898440857357575933721160029916825109577925930416400911731098007909124383986398061515422245082910629340180175638223450662777784475030355501870918454111618887378748592854989154497469917463829770535467409766646383778499680483674430256897648555554755448470131713872115614135572523370734714599656877533313928575335052628138207128291121447027569089521349407629807963777692829988707395715504378368881723148044613602317171795570788862629671903955461068160364153825162821214373949279067359599190915512122958969597941500623300884651056358049069405398104500966652799363271536159802974419795460610741345929014171075851217577837949822570681616205488103587264260583740492025528328005770735088468858621413516860815934584954420572957702203318342499551480286235903377295601932495331394891921491875353913945658893457273279472475123049728884226201289670091680762471977758005062184774660061910127688700677285579586378610436851702025215635330199553070687049252973451372053250412806710382649541695185243757835304627749726115723929700883590705170770066666928040754389759920149264170168313703016525005653790955886099164411565313335537528394808969188102900810862935611280887488862135591097106069933921991782234693714581055449411757640665139187995782626828596101921762409675267483653539376688693267220762399969811219291131744169176150676237094613404712300840964888601542488362129371643949925713609626362644622192963907234555421508581612264629719502664841102413616606148460846398069354324288904605666149971651770948630953540200828550128428300511390169905960296595601443285508995487023964781208282159191286654119883407184917634642788431380406285023600625667867819817376998028388340036652007149031748813788544526924255637932149533779681213064117052058376232790492239906447893893590466707669118828140557787544357815919694600356357794959497448566417608509244710615005660033517054058168655680627626432761474484907286179760925609147927724636927407851362317495169293204531801690673597861496827128123168963571880537303208733137480886828818842342856508321609731256985934253087527195596431395801075424066795616295173525301924411027940384566842238730277852467187634174029423001761774350003750295886695151173533039831921574445007636388061943948925417189003561384755120094042011162378000887089437345837351699334729873740911766960759610334596689314424069959839841424618422079186383319684166024412284082089806172101252969317614020375761528761292955602887086185253420787744734241554195271008662717843372314364702602849636584942093079427947091894297196869846045653477880024620286241618782631518313638443584427811817950673331518990461758704489277237495908381595524904565110461758295712044354382413382548302717130363109068193967827852895446555928175395854794522827079228433926680254904379773305533010528826910515307271611841252661895480256063850079060991240542968286624216528988730747761801848862880317779885552604538738131386052629536382276169670434913252956207467665601142098545767021487854755849128745318580189186229898794471483011242753093052997767915630313571341694591675946925491328719464853012158662060954473398060407429402806474669897532405957604228729141247149931694460382624760010243206474053935626344538021430384950581539688102730515533863957563580969050057438733696280482554690105685596681477142233117428891121987059609762287618972671192036072050114350369695570035714414842439879616289688475695055802644782113936225189151450456571422445180720030531714358063962883383390119174554689301513127902693609560976818342424199778776130425597297610435542390932432971531868656281994707070777977851354905506840964316199337032285125143963419148728638750478562458739360858746952642613887153536819708037713629719308308477092515066815815340489138979898750547536085764782622862618980676402510604667109930612580463609440313827102875603465001332378584103528205565451881450359076779936002938093724191068054427183134910031293029331866607114805254647378464581025585658985472690905532409020393666421575277239674684214422760851138589888934303567389140719660786765720941313851156816649952666360308260962973353437076400598133248943196726910426322216505546214052128717812863404751900770537075886463245810851055261444744980441143365337922133079996265335347531020158077364630224444051364773241764114844709975757963052729581182186980186217690194318020345067563855540599442008582426278652418460233157441768915396558742383270611299534765672341376489584966638703083288264965933861888513372162325158844261827045744385058294435559084897554790434283757719377206255512909568414553337327856240514337207682021461289152004900030767730533344393252237040367606059997471128929390305774295561648207186036145173050971722786528866047561298769874089965900619368641575090290828838421696296086792776444919731160436590883924181786205696791672994023305841265914213570966206780653401771400114054367785710787672194097258895578856759279916351374319630656444283457137827006242563266795825234781052690323844821821668085640396327088202812200443464838835494654146498372400846588932838664521824814566836429749003517553523961145984777760873835363075422728396745997946266762145157222490917819373046082713948412104976808464709715421523750214384075099487356166954682351321422004894386823600191443593736105853754470110378053322260994753554715299803235022677508719905973822549441245038029251497883228614391617645253678553376320544153431533252378706361053636798830219452681859686337529286527741504519885697738593287500137797019973257185839276216172939911583952398562475711609104498763097687661286905588631034441646469429753533330175221193863055318308559502564745211714477288281340348705104761947908745505519937751553253855727138340443207108103232016945146228291563743525690620953737087390452497009845617847631681393616241393966578416048468089056054126804316910926204109168905766289678883075289782693824130813494977973987558581658346958916666148487910819348368196277489454846806042518876445895531037966761565910538565182341031284326859951965575553125638345397093823135720117089879041776200737940146812214721378602631455553132062122335790962445823387554957672997359139128637404344370451874757075886808128353142067757848988006495627383199809448578436304444078210826237639760649997358689608792815365846347559140012579829584905052354102423270105456329052731288651971128653772685811751268800389495756099605797013446152734001888123246725292795560880685966237422290836185688645662862709411845809698349821900593918504567452726466212286180512359944788371513311610742937666786060134457696020836286903119236724155880389691918941992055030123743235543355829049997468797705623053894420151217696414204609444400057736123325355820712642158299029866189687429531145093237687463793129539723095471605720677185092591777339529732841569717186647602608639996288764566567579170366987501802945384023530003694597089745207275995416472210569748968412729474153389865637165615072183073540513773084058495921657654836708617782032871491463717880065187093932484638395688227593996571614614452593264718779940685947667794207504410668415169032919138858763175002939176773135796576172384408761232198732563618555961990978846102292627322229328026188340711092442747881018663834676253886010790502238628221926032289017335678286570814164858924115583554981030918440993791375520826418219213679321948829960374212953380761582539468872681502749851255900188138783446370947626502234750778601312828429596270226692137840516657683430635861882698381214131601430959693664875370904638201276312634375892800019988740784946331372803364475132993763862207230107410759056970118726910545182724875594024665116651201886988422947424735392570218858800801997808480215332398587795062419394078920434053260354266264476162923875122652471296848022028753939122205710117884848867221662286922503245871268485164058234380461172553069263564517387004265853366461152808952983563432236747625239392617476306176778012434084541357470735650562495194396636831036432695408301254878336489098313482298138541258075275044145231945412417536960005348964963931325245842974321871768422979501653769015934873520092943532795873807890680503815663012269796004641551607594652520932203295780090909902007313570245812778574146962281255295517442163434515155592289340306258846287739398031888021756477777502073179360200463932434731215288826875635909221237580275669451277048775334622239584019455100329991927869523212240999698685709426363045410418993804317288517009268413243779655382036570391455045817184235917724042044303849942135912363082010764077190305027203603657787894243541461720105710005072937739829140144578792609977513771770494057854398879282769999165148861188600503225291490571141772383536162053579496498385719610238857673667924543121533518444030642764489730431368695830787736585577886969254061616525541524141974707625378964197710563152594795112889497104031971148038924321545572129197038290381373334982293550580812090375771019635828813029539124994948493549453848631315387992647933628023970382241337985608199183484000415716374083395422848993208745965635276023917923927180682534834400929518340394281287732596174738373705505019196260539108293133332676488279394090334665620282745921534641294444280263439755196547925512106194132779889634387726342395482089686101792594960064597790676243698368876017907874220308320801435263766807479208716233172707579730012126053188643814754496349396772812342021891222355435322431590190906343454549639136843482159407822972248567554025186109557220840560487512031256281872775146581736292677555848202434989957457689508101057043787397559329370754188508786330336473528474228846908448923815259397202606637753010184464613564661429431277733959549021441637023566924883486300412583931892617926739790928116575046052704939306397211838866828945372597795842188517776525990888468819851818190635484002553929699107564785309019477039255048600851565515888012510804724967947064639354579419986431063158724717258006522337277869330789879435193145406112305884056827449132231736735675432133803367795857563767335848733903804929114742677990454128994179948293560917388512375495820053395161632538819203057523531534233252618622725661609779185830134711109033861222269039899886533805475034599462900542797988795554122342227008970111683867410518632982085740332869649611749196796168094623906012373090242391648060237648677140445019443497621039073831357072551101529310723385850934903402630064047911180194187272011878082717627695279746374229809034205455406162721312026162045185450936510182324344457555308058128029109283281836057622156695792372667982868657014465564848854348823427786753558235700612694262993164653746783437283482538386359601618419125200156698969368406895870499835895425731883473392184470879036777098938945436158543231665004145174139449409657752592524942024204116698530829652113244082617662857081954796463428429499404978718471281376978282683933386275457519864678627125932957187506063565011975765757799238297160685554563884706710409054841042230679923051838458926986176559799444044656775584866517972725055805969900661840585504625096449853663156792062152346972737893954830187750178791360121703244308535362275314592320028527646874011672851767172724314613344396789260874190717200174074763321264862729305710880443167818400244758088794200377583962749642167659622508366208445339051285752034312760122288606678772281674097040124371175875273056943606780472669694973958504976009856062234007223452739023842735995046073033394261651467351345024465627324565771498685960531888075476839490658601463748174616319568084430386783042301325517812344635334405478221452715345152313229954426044927938860208917162703063556450442987375250861687600832271794366431149130226754953982503416311824614051240724503717073193494266868716172598415798812302740021113146627447263308159509288034627739261477777155970940842595542376058048634739954037961970214602438530679527768019487654393135448121312833755741291876819663634815978068338428997416956926660912946333835198131263954051763220118993617109291761848972800482146706055063562377911362894190291349748501136994811155392768961990243254861624293070994434791324216028577807981895332026626090453214689293632402942142628029792056014753451049259578363220498551104663128076765738665895719039341393666268371232736920590038206762891661733687446591825773103022871890204839780420699509655620459156502699524146064047875776243577793343503684897189058039342617147545000006246171511920096185265400744219884048842778992340909135127804822959431901236263659192543342772176097552224281057718487989296750636857855895615270087437761067406277439720370713050884321336234504789496089725097774394026589341434445531445281534036812240004510916716742118354949324760240423059899715225814996465989985564815041828734374661379151861028708202884765534055242489663723854900319466968460210831119011860406434906777931853721029965865391264443734631407128141089527784141217177115217869020966631088455813546179193273560787110035524196777812481362386428895384103984190157021787258349841656459029912284801850389495653138994324979798762987013163889421118369311721724999040722351094333367889090108562326755267276068560315752089209491609069580059690953086479342266519111437599477390480583591489117480282603538331740843290535758532469084416520080781051258045323278250497309560467259240450172072304563273558799564901297692201644023777916241996116897302095629300215602808192309102227706539412237353448274963663884117310272516743818397988026340279267560169860313834440091777110936448247764475615406450413542076212080534313923276428497526503357674687622316701529590574164477192569969665818523766850995027776641363303546859334512549238777213802591517448872135427099807430963705367655344244524552540370135959284956834131664908808433794144056045501582239134447176619479616406845611897499015563430414237552782172894065047252439226341553017122769666242329961320781789649919183108776639524672219022389395371747763016621683803934564746577738561059787198490980711902078576935531759941591786640550782778024212931253627951797618622133262290701649921631278215275695081046468667909064605076863478486180722987587221093697498390642177403408472729910581139084049932242928952679216062228732770601698140089608634781643016264323821956329080045557234578703230866747687632650329529021600806434293624289119011855946535301610032354721641900410417123499133628901887610605191214501068667890078539274465423660366313108557806884803082389870672374314268531340671039246504649849845970150127758704094580425770836459886524076611801042786072697331848451788952236825048251470063352879078838900234660854516210377207661927117945372032280472622203384557470113299993502097318421103731559397921659034747736423804290223824476483685113611087921761749481978132733793872216337334608111660561181316480626925707731149198090700746957693635349792772628865826541366462787931186144659859450152018221276058144957079031559264183248911633632494781619585660501388426020433891496213816151454910235208969633197291014912014600780835630978867749421620573777353416780360013810700125361143188348301945367566177500539455932595896000650234355407071225164635712133169245169527812033141030626241782220452782548523611320347620269623430369328583547636505283407329510602037990347379087541997843719854397092964738468624269368050361863838413580229944161463774867696429666159006529293192736895081518757976918720645705509423043827474681150271249491630913475246353420452493377292102793123737096823063563221156386318018105483402401561675301558967082280744780696135064494166140693244752719091421601262268245294732155072400481297307464969210017467635761622435348329200423733950719967379116715510750629500328680654071766833171744653787194222969822106235695615035799921934303508286827923389404315585677484947920134949650089619737202193457791933827878319297239171251348442976280837294162963534208890670554792223222357255936845361249675894361447486381081122225479789077286434053183401610537506817899599244350089287197015375953547036695440190673423080755529730010737577829813042282285750677272382870981036105541477813803395767164393629207975295478749754654710979683009246400194139003898189872736135463747090485905349812793242682920941636368890773561814538478860474421207259392217407776442520765146038032421563691283706394451605301797506379777801281903530538223826048290959336370096452515994021233859952502718713826877614882613845214266941952840991870245897914026680675002584639285662954056339733961898572758210649499535128576117032544650943326120575020786591604929341286843557568265083165112966902441530817525110244004389912741071779573518709473863089078759867974946846829574431098148554931995423235158378207228253341819961763038997649771437434229759717550473025384045677708239921465386798855825146498722947093134822156202744465061734119263910968087733147987281725368414237510403932481545655694172624127201758076325667039802111127809867586519187487848375232531105090902127162873931718701593430908225756646450687862677047257110442475957162153089349327668686956348048927509151492460911300680472226494455500788769598327241881188745226872808005465691963567128372979909745115897182857974208808032910022768267871384132242697154944474670786946423595856064358550225984297847972019931516357730196892802208317379322403570600083779866415764524171306945687788638984895977071237974797297275191059147163053325162342550783065699596803418814806534903586357844198358168938122528698745656887791558386997195025179289010510790425369999569519114188317937922553664729217845726149200742261198769584194881372626061105972761457476946708738699525241567372296969767617787955031497889518503597547017422484223260915394469662614696296897422181138295749775152787799894708350957796813220935814025730755491803796958753523906811751071993329191360535704480885541285158200740540296550666557789221792960286312820977304843428032168202140731913982595883378308617055201021358600501321228486050852341472505827466404081693813904380081853644176768514835550811199459763636965529379846604516186023069197752054312619378907032877729441479836208504362313020745115423980324048713523222149594077936878973968608120329348989515687706621909079497838873809578635665334766171714562803863110675246856328482524125964540278346969481710621955677994490094530912044379587682382048776423092631964644209438363440937242131686816612411463938120690705056617743107393326293259085987498712410072677014503039091575444003712319630596616546469899243134420388124803658715637562424228958353919611509534155783252859427280915733952847000724395018062992430759032719912793448412023495334440413014574511837666085766901973330125565873343609917384432890358875542097444447228444236252098202558679657657761596374011159320311303212721348374686899014518953424264287577163099851814066751217825481850517600537491559816264425273308242952432968433401365216228561626322497199351305870537532227904411476046305996183313298885998857961958346364057214690469419473775869301304852841777797793048266453829020401826663201692227942881464899997754277606379324664998549254057569526471716157450040472595805628362670163960205974555551436565103163787398525533500832388116857334601493665880192624779015191429402848743365016512170694949163286577000854420119216087191047456650330777801042701063052812038493648260756523888876420224429758484120934891369570854820369767184432656245440025766961900884929403150786519178902898408025759843227479423666810820537114913853109346546014447486535912491434426986741296667906580147071114308761306220790795997004950706895043515775642609018438596878223745713167975488825308166399619674748154802197948418558863505388718560426036416173903788456335029373900642353265294024382455310613022957908587320198335939317422432746581761974815674567394803680510261750139826135335356288242707657592848821129063113922887516670358500905318565154417445413471467565003669639801659971521421921873362679079335234180818614304949064745842015786371521280385580260049300572306809160310535624150978348171951932725411178212033556710434838082313497718244654959875265459402384886862444984259902052201134032175649931920681594607912156845724930858992909444776942927533972542197722851516733135417153722639979288467276423677613001421226360300207776880727351905628211664379609499021953451017224156967142624415322290811028217513869110275080883773613660101932643609235341105344742773173897305516349357730202032859637819947953135349792922977305429147231386959563106980195124341827192837562600628844300925851717838129271049373707955022177810871623304778439557690186218929233856663558876292134392098075708088189679490606556208149390572073092389631911322323044574652287826566307830822631988115309179301163150566717125680964807520241136007198244773739371538516283857388685765344135394375346722822340227535417775529760299853773126846241901115295521661023807994383601627457809922646149111192340860543048817287952886163848293829632975096037582578787814408636623989378660485775559817947000646166805366001040297065644569074523371595817554431049201250752411719788284030219420543446341499771644994888014859708293628730847565873904609509750205136868530357974380279267551677987173528993092534857655878781068668590145689606607936692213536448055599983787856382620247145362233586164709250453599130262565921023891343154341498638593446757276660896286147563633011383544123122798453214130872254446846353197021238606369449102569086205366227556106068819193323273016307917658465592044129375159832121328503676963123940990103229251206762438365646783937530411779989862318002401968330206831964876896529194551784217188955778383456248367251238318311634714525145597764786312961873317134304129769483844033629614434786980339179160190845543960034875032101232470884104282888758974964247451113802679280756945975743544498084948727692604155284483665343566176765742785181817572075507407607241001982753010207849568093023039947074483620152388858741792500751814124480733686264914223256617586383920492519491617270800727316179154075227589867117307451277013609292275847447374169695319561541832295329574928645978080581936567438389189777362947531287756983811012842283821687422317459834450070375722939906667174139119075828203381307608909210444308729842312089996634631400015760363132653630320347163984377775144050611147431922947573757229518800789859550778702554855241918944167970418720761571518307221803049597895446963551161673793683715925464102748979192855276133891016874370715349915113231197764022961909345525461592250203067218842604865119150712922294543305308595355485655777112271446003881496426988885388348184207306996421264711252337583360113743342395366775584510262297384789538156792130667744893113807523826673853743959000730151909309219442907292180336719125795551573754770924345959319863917024863920234153984782468722875129318836497139931959040322571685532229849958119155171082285313151371352294715881567765486504241978296015885581952334592348996647543048388121120883601413016289983635732152270219234136992265016999297870366131937033044550553116198083099429704357108341698185226764651200440098518563031269806936803681360076031902891537977019224443635877743458225464100343710941097148885901660950966027701655589160461039164403243051956269866400177137779067133929664387313430281989655550188062198113990347847583567737461201555450287707313065384190470279902112030533584404764946459604957880548263048137078932027991141192582879833481883448360253835617704224852150241581159174449258407361021271715042202035441695335001753896339136411476303979269487098199356786107959819815037271700505881171015137230646673674335821436507572006786149567401953317036353011157134337767928161444185633387228930672969681970222444271090626978864555942966020134371443273075823803556730367408766314236111028273908103457776985373525598557839521795669348900351943889932508809103375620181329442909541020902929232478692042481130841765101385759135373848511179133999455179489231171642101623770511260938347189977545210117196198145091217422411340071781330551693171355426152118433513837225606394627430630207657731453009529351868356640812201917612035253136676498386073427970032264744325364688878287084705917529506668252700574108598797765401917124203466335242450329835300921476128792767639349024564029225643652286000973162070773748841160273498641418542782156058137875453862769602510235845877469831334890546308157693082869526801777038480271203857254468280695002680909450665878106869811725319263436873728890575073139694741876553395550565117512593740357701894657457077571933969623302389410535206987691092044621999674395066036953978710073506618280586225470297017060951410889532773839192861106562918839359410118711840727333109396382289430940777851735838377567102591530800235238799737457662411924608078439258257519960436709117122510153203345016318348362232246049823663389146153519131604309432214310656901895585784069941996051091231718651836071124571884149230377425117918479054221404236313344288310755846835423513737643045999434719197426184301810859435625006546073604289979781824265208194969466047563354431448789262213239251666178889354405819691948027189883047235724134194623287645541213499988361244238601290406448779712692954191797242603371833081837494451588210677861897303261729951311106427802705187591469461520759715324210865149888285239038671527963073349428946775592307208080201846602424394978360123391857270141459474932858967182565650340549557591722059203756174600362712711259303657514318490985024805062564893606553916074899225540655947716551028332211140366825450511313632604714404956639733766084545111003651007242036439817313473597339470932623571527795395425926327641763356457143983849033470180279031164253831129063582388453638042730824088133461705041448236516455813935929195072322408853059577267027426614351121718119587324973010721877249518269394487224970117216133497982711350449423296635627684729128787694130871990625836736847212329828325533325785946368052658787618060965238884573973117602676068496242453001849138048026544977614723703340164346971340885598278186930770277400834592296372787544504609983802564413330514027283236396376772661545247725590051161404340922574366930750693972764473125005995257996152207846120440724624335499773184940151368114199461784911553028057652647337103244972948464793776876627866703191680278056777088348973827536871347424700451683117939454065374714872859353529453330289316674587673421496439901249864468322902344038088864523746253766017211236636679398746183995731774971566714106716367007153962057981869472534284697234247779798877567531468170522666191207908332674499821910264865553584351402935891154359668493280026340978457060601036684805174322944416842190067799326952558210180207727879466336891958216325256328082335157639591342561034962797694597352768947703391537123889832157109432715279069290875347359041437002444936048184167566898437441882502353939243729599676731889803022835311043746549699387074883595129981206096186100174140423664634689247331856502927515155878095051561695008390786522135508909132719997404476945680580656126302736193462461799164070376088799431242572694479478463928980800019826431368397739296464507915340541039130474898689381658387776851447125832044242375411302686148490220220934607154572222859070537481175408582525761689651367954464239503026523506054440671025914395524886110152004025934344936811290847258429253793371264335589936932751992123783355058154011031254760101201980010587136815595613858180229353962292735094521897292372476055813097363906407856672099524237100448354463944125177764645227825751405754330236567631419634382787568320244268608908197872829374914795242227096119151374554350614401302061380063232018786595794863588846736931618153779858221440163084688499969759809106964898382519667643608727114243602491235687677347732213467087184861936062928525798929858403539582459900512323408546230428737490402792133431866212489880180300503038405914256414320990598859656320918253597387872776341250879803686135691894153356981115444798041345058226079418989648996688908911557289536056828112110722063241562109997747879664987141182752728175044213403925030822140399426479538940379891717986746349834655381425897139335412620414637645403557570815431770856556521795586232811608557896951686905531920571797806262328864972849185021122089419787300734589306874954860297956702665681321587933279038777439700483825533638126874770594334583001127653646209510790201668897261670881355642397288409099699216441437046158544516933808683368598978644682516285129106666971375129051485755188510825283582435474375285925507419560642340634762162646227370411753567450283544774324923249000767136516722132511187457679758352064251229479685871491287290894788058581532806397244238698481668038103649456334781233147214893471545010718147892739569172034783174953724438196671156461501157554688124793458200251755087234680037715046450870361443637822301026310688636932295548381680337698180281603201202506239145170613984063042878762156852849671582300380955534405906451104551191086096699658037208023056792793388011984825067977327490267203069769301095874827163788106703192037566722362594403297176174579107758389748664477022130421659802632864093926135675431677962232060217930428422587693350346593152856639592959878288648027433743412242674022023628746147782274855594036962031575498266928548733522494688381723305417275780293904107106915444935441739821214081955988529101239743033414478072265842242601543041632852229856660294785772682808140434426712242985865629603633788465739821870329879174970588655482611834477070699048923586551924970502457433570046945268632613486151673787187436175072490203525389781394592463603361152158739797710567279694401728697681518634087491190819612536620547254014489234974269415241430540904653763696689893568621993573626649429008288166478332827455138849444318796229823216029934327167295946237742596211610130372033678036202676595859869901105152360579892480238672047800084133078589479760425022130469126201636814437208910239501733035156203893335073559291484171673404080610625268721813375086541107092531686085203655988172000277115442419172939504345561686215025990336273419519182908949294811434031666603423205373096166438796154700913075715796255547502638470142725531505618848189735759275030104346415316672653136595403713247407468932805141378131347541547722375369537212496289566277377751684726513210678120978455563465709884119266835616395039898434766287074803661603008985829700052767422153270397562518733973077360442527864736232441540276233062621207987770353013641020407738289252146746244701120836600449307232163543925118042899075301856722154836426309212911569468887648562680893006452798509648757628710724979343240760407452734942532920146290729915980462613108012769497360432155111762363975463949236965439379961949997110017519368971229887498425506551462441813156406971768531817281569120308469707744223884284952539437791008579720027047817444501450881670583904170550343334126019331438084963925010670530765352533297491821581797993987232475551245364251073021196706247071306019905534868563390940179584850995127312496756279388145847826346278940721493967039057351230580131284441490712918768367517501667507038452705907905989678710821693818685964040058223722435667755474985032523066685924935680824023013656755602852812236849063210403865851854698224943299266672802571882676215711021294868436262653006861673710614429085959739393026539353536099834224991741307278972653796384973558999790022861361666677614912943647766535714078678816764067415892706382280359167141701513010897171619706618992409740760611278152474277416762613632872661715501034462351717031605583024060281725842343554049011498984577946977460283963601386770085393862651429156583062612566329377379689952830055602618616580849315278039801694438097758231785478491779437292385716778055569830181622449622100254084499602153847427716224799175108802020379593158500181518760765745280444672370842173172787770558711344831881274610029669215687317936976271157200306615793571016961896849033525492206834306419049305244013102423950189575200176863950939825403689529872375879756217698840673962955384189417602465731039339908855813653558250882553647983634335139173447264580035071198265925566756278891311198244678608343197854137536551956969596992572244094704961918235481082856582133420757684999334160698673766262083999946151461100958272870835320390635654198179190388547929992409778699427640934100318075692194351551695357195099358684491135917632232422386318408355434269818710278426628910316914635204284935472868582932982869232065124133112171154084668588048841314877921062299250102482136128423397539391805566097448970004827246579749080915129917554977825870516123699851391923889490277476024991130733162969829803109355109803239410066873388022221110176117609158949225301708397140299712599514294938697327460361943990108373304739928953392792562293261639686800874404534546715410691232846413843833585691902679921261023922949836835778852098989407026316265416123812780087794177845252270649962678410350622712913736814284289001393531684752266551417932574054366132602551548674370393541191921973985972616022214879511545013630350327139600736060795335393557576083752032661198726192375503260018834195999128606409226987467995745831389657502070032353830762966467320203924617858724712824906188340562075100059622845591902950046684631934243511385594308784901925120130750542128646938314894616873228657034256322572027510138431478451714805857026286075852435700381028732964578777009903987045682072961092465456462490233840253696043812733654894625118995588918456464761159173402454257429678178182815116877706161941592888994962239225089574768127302751468013219126909021925710551124234010127445201686160031832418244039368740204638819642735077762823812418174620569160568524282026431303567137180740313227133156109405962302351418751090815338339130739994265220623676275198917217203498474595905471213219083844297767447349313171987450872890458671489805524813126049351863674577397961875516138596538220096769240077990060961432717384522208868886721975702220513332341674924292008863443325916439559483707317060154664721732487200305662833129159703512599694867607609015710383444731911891209148343307296174151010382239145897510636402131231667668564291077335953869008742087710379810847709276155410815953705562220407866008304504774329410392973552252996919166743928594166535247180993657302893799512785252131671736469348326855221307811068449722279197608152962670676456884978985531330474308882968318013897663126237805406913264722562350483056778835625398206636473687798665813543327270683740215828472420602522789679054880461105227913928591479942188140888516072688909021604183436789280849755806302357159001062525149231773960455117724700221405913937745382367287046124794041985097630043521095507301649138175542399880071123200148029581201643064045906835186366921593780098549293830361958962043561104954740336425959071411336363260213413623317976449961573763726274089713440950127166157934363221909976671083302431543695904657601662249507391803323594681056426034196220912591595358711025668485562632316292092656812843018361147027450776226367025232024517852865252371103038687919108292965743454129193001260114036013640970282902939375213822111650706349769867665962407864781448588725816256186739505111254545120205738136658968159600283794134599522268127176678765587675195602393006923719790372681552735184356301705912790197404868885227274613957630719422650460083601147406664782477753438101026677797359336448192020600586421127597144876198603677580500560098700664734407780082718209746265506474149642336310150829812090233800893616825878845604297141260155857268716962168033053298893264683035261521639853931115000343418919999834841403615417022947598728982078746599207755296086460315915603005669712146359322286351670082495883025829207310984536304989644736726279170491075822924663090771617950354435195702180307121952771010979921147345235710059414044296037533200023434645737895231475387738119111571180663541496191583230649972687617616979759029871327686072483321977456994615024236337610788493989729550098689283817743529383045674514622420031442366351189383411355790081697562790600294625653108322377494766913801988622112967102280652351657532027789277596139845846249910265444317707332438241613392505666971115288372093529807318449157837222368929695320730240307196226006467149339521236125412483759882544244292910284021194118720074794145645439547690534256646908773481527343324864012505238827627561398500194919550166720233203590936942884394201250828655624688765154891373134873707333114262825318163934923109508641711957757319091020689247987344928449768780506055499312920733472146801948993771131661782888144930295468588287829142948129800121184208857388902334148681922839900656887650519770217084849569375007836883829827600675341910988020971640349876750413929239014083299283005809643803003102984391917687077999951896050000335401991320937896069722264543122620168482960771054144135049697233069130697341360799624693137501373914329568869923804694534640429292635274508802372297390075089475483807601827265957119363878323935239269285042164823005686501250256192499282308646532415115697097874813151295367854367811721722987042793514422153658763357739188343546039827848334967688349254933962974652973781801663194617951860503185190665899074563585644159419966959623709718342018835470778866457181559421850727505663883066535571791175645331037936337242917672465458959638882144579047270150078445490758928825250647753577374600918237200418559070267115770814180726975674480262963969246917975090101569060657771939042932849764252563006223732273744472190726900066308166566774598850066985758686610415434710334691042638115805201744258615635015986130505321927070771565100886142930558079699667498507244119621312891253468661473407267892880568998407909237658488042036707600889411807105751791055335045737421521400008533741680391382080985802414950384959006821495989266893641508781236058425328760640559097629226041718996872076637142554678545095787725193067869517665395416141562303701602814264455046284992710795770508675110958399644216975972818269522699000591217084570686265467982462495682108531062416850329942929244669799245880558632738057545524701415623306063435171511157865853758906266680672692819803454288039482605460607726095309094040372280659623821814883650414815450261372165530341697559408654947283952045335865414079483081008943102745334630063709917882101871263680380705327669222471008240884714083934427068480224530784948657523295419040054386653772902776933439316544332912793594850417057241689693176736988469260827714436060336010550201673426012549493364364840184615826420335648982164857861162545776620531907721873432750588716161880776159798835281643279936535458691958954228618955646360222245258066110735903396299477694399547783845994675085862461977356196989103189346218919581167567672658263322458449576394566566888054487999706290766343680397169164868870493081350398651191496323422041802274013422993871943816808180696023795012294033978370184459954876934095880058948022505895848575097293435702561986061428802345400092596142813400822013990126518907556900650914730231090327283966453966239531430200090492126544542979460439050139361927052346955979241056638811606320552473597523621196309057388324429876347793554180109244650750683984629892621732759938340248457381264417347082612182480144500221206314422383744597458409896228491509916836150239644628915556840847416838748516782745679425124678391678087230828025903000701230137826613100622948656472586079749173000697982204629520348916319091220462422478568582434954171436200624095229988571126733834221958457888641402579986432127859248252808813108830446720284030538632704682832237798972763887197029968546493019098304108043595654654058539708721264190551070896306920551583191160652231041345359608910979071810875247924163244421581298140885465383972708005337143853545727615076757781448452802562799418615308348656754418383877235816058541189854789760983335537184503617705604668218880969290809408893395394775058970200818371084437045935276822382914748133689165310686599238598857407522472866387280981863597320150779712468895719632720641788004426305865873843613960289211490420270281134450476551824778515546141545044909559567645070772938500196661501216380840069384387703607233782653552308492774876778010846166299877071943638415361709141476191970231653805243057085918902142915151645692916092653181486337971215247127097810932144805309663853771767404725830614200029714934885656133055515189082014648391989320008004638688387019299735209126872300870586863738701559138511255523261810405377542010035688533581467829574817582676662987216326146952631309412177591545147750931980357507699211535885819830362636901814073003472529880573974664169656059088544642836028502367596453624784811833802781858346775215435073960178668664723415217688348854286625207175921189286840847580894826325453645034409725944967501944654801592298976234775561313449797111506711520078631846861380564727815658981304237711997809915612069884205229487640697434402665005980224656972168041060728101276659020453349487716410361799776734094272631792616451426054363017043419788350925118240452972874845507235094678773830483380849269752053139504028844462619688352641053820759530651036507441960149014573411244584837268615583681573158561122800205692883654348116399384266387201304783062032169403418805727939799930950103924615397407420242192373725434955602323468325898712123357937068354980636788332041729599486252948552261682966015308056623150194715764995777348216328475851745693892088599082290272244456671739660615009739740043494965433570735055654080442183615955730036987233378694628706544567860620706061836051528260562539563758476977211863433284151207149447697698965704683101943899319682395806946057488781242083400463825867579696482370678896269067610108400637896183291766471353747256097768456806152936587116116124441626814612033313587604050250003408939096536570868287597120025844452207291048353730529188490464871654226637286317262888831070807169161796445094444693425214563046217687638536059895096501248234865957121345761555892680112559830658240885152043681424160849342029681080107053753771645751581325909222557773595000395945765652947800285717064685966909998499491075812318886346279157335230673073960658149249472100107134651769290767882433863800669561377109838622893637495201230084409877114288893672299611994506439575407269447722186940242388618563996431307589657635531059003806687789308137902309075947865994867346640595497505604072620951072046970019410163555046801028986865850018306223801679918726351805597421317220339113527817870635139478008468731610328410535214798995430424158512397360283047264717072279463182022237639584273646453848021719766367081955325679159993828110212955678075313446357994803382951945148711573171430659178912809292893477051743282675418999229077386646085114183327523934063679402907221629998015021163453128864366950794032791977210063999139753312200776448343501976849124831484462704974551633374401513724206724002323139010293624359770091929756783551479408010334892861831262558133233584965642082694505967263016955069097596934286760537928053044487056926928012214549142580054550686041937269889127490927929250793089494610859532026417475992333533323506911323556616805967368842717294619020453469492761468276472165606352659225456402112719914798695871187031268951569676416454752725228184037675012100454562363065768465109150957214040285530837948631542582379349130992310563980338040751020217136584336188298341863784446014062263347462720571672824806806699560604010958062803164249929574059466193971784916869024925979572210815901557916275367085052035618048093510339625525333934876097757130242819881842936403783147046641718253032131354792049783271808246708266125794422682891387360520183017642352912488645037585803854174036736566925865530014731679383733187863950132834956000886023036117012254582459942225150272501529168081264375867678638388017149418963784257630377106732592865566690023198405913463839480614373927114022730511031985477476019388465848303898770020977540851914753311218907349039454167827681426384176801554399405686035633936172933248560620469086233579323085413663994261323713585518456452275589030270897817420891364276376639577894671728934635226234320663305888440754663626341364055962393598388655445591101531728551204463274886116592457695907489339278636585291942333553477121002062501250081686568770649888183832185553268572138756946022700453573911317183357781478596544257835218240981373635998060559984098288874742014637303721434533427430322792036577920708933133670843470117471289120821546532183466604356381296603268233591011542118389604830035782609592940160321877811260846511662845276769404646111679291673253514413673260963438374977344498767723516463215024600198532324857136814953798896343393597124406081525128312209706300648272591170743670164732467146160874033734397380331194528511868014903659829600051805864267152388258681471135915896643316791104708497589485764462489431667365834193464740806463210400543064193784451766743937310344817087579163156006968038770052080349819317794706162143339393000943754867862600732764538963033544526047128714014738732284985288431843932294983283809716986777344396156396583308454792874551133059693058292263303418769019182198685777901579596091683609597076381288462370294645323020600462762929174858950066266254440514856534391004060801738841036103423061885283560639298700035630526416806881125995613279135262373396945130289179308628218729388819770718686042568558020256327674973259176932105285143243954273262828494168625252112035674098519442271792541984851498879433385672965258615515951990014349992477388268599680984206692178466754554065890836242231957768209747018461597949553406915120822580853484563412760165472109543761823562583436670663025762549765456396057536757131521963051879206447953312863368117311519787752154831766012818560370290082222889786636538195027579575669703849251786857872348698248554962745065407751600596113517046587462405567664534425351229626928752806918872312691591064849771160378738132201410004759655112543721509212729059128762002303569950544013853879325856317698216335895725018348771978159088165117212436803688237529571085086555896598269852195779225865508089612204014913581674621006691532028702271493025378202867760113200992899344982122853768185542299019085220303057669608819277871164275539081029863571202282602306760428395069321858545065463597096180737657476459836000960177342075808699309454661495897048372500599585294038614123817625393048115884940055736006467889022528338894727918065579481822461095079516480608314470766104714076846150049312416888720903943292645109822650057784457563487292454970522442939353418200675071733473145542080591716620951294641084646443201193894759204099711370682028580643347807612152835158042230965610667568338204794446044221655436113521937159774913129868773523385597856605509619687380653200212180853203057929881470449972127540815901729004503733306256075663127979800095547035324191536210363406459494707903958402830479939348078810592892734044122574553997291492615985596455994228867860556090005884149765433599201526269596921224974904383391408122543396212733637861940311169364597108198583436813920547175322667859989312767584430831291092881456270447575506123964319227189574117851812353396739783414810314239911055681394413189698941879772741100448676244808940818522756728956918955255693939367916094504776869069574445571181182446079487205427950356750337237811929105306040125834431590673122361518951343336888926561434902700884360940354881370368182860323149958242380748420576258445670705160548399395844665857471227165825439755211139663050711420008103202790181244368690791161394708914105757602575730617424681958975322012480482501032134133891737872141114124545745499598897543593207466372579807758115060689269692210952845387547613548608396139620697357188981317915013760246502523068650776161234508668207292933015417749769425270103138830931202259463896355466022430882492271167096590956862040817415696207652557708506780704644099607542486226272286320272217304747613673293592046604858226793557904095244848790421199605949142618944065918489306097807632975112708600750736855999667907790570041293516335785481443209085939794155591121609046534897799037065182181169791036528288689343030117547186008524232365064361756969381159272342965812912627362453658079912763706584239186048141491251167804953649433785666020833032477995572645640071995018179765098470540456806986632270277356176090996101401022648075984594543418179174074608730529050019210321410406309602392628760308727536296327546805223728893291104179499926221920116996889872017881344799047594739825817419995736311333347223285182480499442824581386184770884207308765544555730803154849605315777127064354240570452044621825259548851287063353207032394224389358736726444430616416619133528027396230660785057054493714629204440100473697894594590381411314009891446748841834860283449618392026038316591097781687168498496446753955593739443181541686142079365795541883618976246106305728865721670786668112861606000983089650181797011310623645730493075514513255068957634520573780320046360778467785025612577931808822140356354857145106157733753437278568152057770903507182296269829977001618505924480106629707250720354553801549421377082381099873867310760959678467544591064289892716505494072949278371285654645164978014583306952128471507191503800339953014075960431615851988543437683242399354902752010525906145827897324510330465062170620968616928489160650502144399815884088559682943348356144208433689730060325655458925613459252788635168736964053682787845034408670975001037531164211785503965356337935832423638140307165896647611310623474596309816194871923246840420187714153367766173588375451588839002316884652414004667750050449238859993042785934420590448452359810656075080711450250640812656882699023282118108579909259859061656472629383967236232862614218391531730221678962328741202273122680545044760887074246294564959340517161164780067528123122623352813838907673795583902149615112509099390779236896466169910121750728826314445011657114672373878022774042854678331702653562661406670698537344449503606517527169951947326846066297950071119505753926816885138461653746400661300924657357483688986644832142322096912917847101849000503590051686452433416219455517266262500385455413537769224906366698315146417019660807178892040153688157310788414769990840219608704950326523983833884146121260989963532234121470896757555615084843303124273286125065905384631266339828759133184901669048832613168045422171977563628667963368509441956735695893868064209113452201547210263425581142477466794971024777682555765142352768411331767583429663805486207310438077349099035166790698714109104655565099258760641660812090790504200674283741878286684847577273794842300053244991672387788176997179549492920616900878373297810336649461672812558235349363579581722026188173784460715191277742563745086008027263764536587335236192211147611352247314080629528175220550266661605286742213156684972276837004473472807603769100565859320195819776385400857630641881074175582432475598139632591832373407335133830559075261702537069804727547105663116566149461223846132660384082364355987884017029377236902547284578832396611039454156433700146351252690453669839195142073767628973153855676259133546015919250973565388066775383978134650953395257779893767359235726895444785126066917629128584190402627492437672701345434638993052073421626175086768994741862968731447834148703560242164445087320508677256362070849412429044486368377657221128640515756222604151758922698590846546287812588025682883997209706033244146853905177086765048390235343512740182177675783379066241225419494504978327598146631054356475472479646198829008679175089933352352563196973528593890510181604789060493703667214924898670599703095848537357025955334121455379922472688619043885157279682965206244498890633504990871928627685256562840734890224176099460375981789806538133435000687468185732050000644888191296680349739798456390681672339997081325382095275663967884907856632178088601507880222242098449595589627042315703338888408933327054557342721293826040817454641187429007587606884509376150948197451575431624637150759507452671119136084354991385921591555886636551823932710011914940338364119443555861450885484679106474830276518028361324213034059431952367126488894059750594093726622857075320760226539771463930711177281722876052344451146890278515511880539889874816303537779242406838484830692314500586534308536846016426419344917738489984808153625575106584629011612069897187851624551997933358403239488162018138445038284666049910503794823604518888700493204894088790374439884035954821447016203964540961933465067090983933035041548347376975229239123257868704917323839291723315600271906866609415795292317837182814138917154901334275887191091929783511546232601685444985090887798748425835321477017431673956979935658388586085394737975506853518179294064036029294299621182080729988796102969660411038590306245121973329685386874078482067559922354217207469081815978194878421419412102881462024174910965267071160414087292982331953913743236252215136683787713026724346290113711098182344740048641208052816396296385956321826148466997506697470165107222048858909561599567064130338124704974205145607680035021377148383524774035282133744208361997581975657717881994793475749696635853741091671303763322963559733791063423697964343242166147785031285254630662353284428983732753839978242179815988685886158383957830574639765839956730793471345461088671416734461227486015808151103188286978612927110939474596552564840497615278297190173319963540017078750094092938820217294033340514690128036999158195419431703314909386591307514732208673814075188977022363487973911306475387847790797237518028316833926197814306583709916384356818398912127820656594598532946820011719015035078056087167331037122189255049720856674830819445296387953379230686011092160023552611283982389668449207163263634141899177240965357651988057374679923977798072308545091543682234093432991693849832362430706791730439812235719653381642573187370994786898373147711949611510622738687141367671393294461995305173253522534458645174882104488734369368931878230897440718620632469356032507849249405968735726579384855502861555183335815025084818988759332473755323220104501790254793132456548345958332067642407619042139867208697393923560805471169245569844768362500940678415569427887137515976604647415275662070257311415382791545132782714267893387560584032696671808513198089883862532835614452489535675872874728698391434746907130941304008070561094984041972485427955005402629669846012286684766683917345554574168735862377203480904168046567360438289957735197698269808369576191654029709921645080068865803351051830170659320760263365474173431734089928972707660074633966680028285284085811191481386624359903650492591847770691710498424305904321280290844676362923515337974776531454043577267753018152052215963998700040427535871924266401867976343326430419951443947365956538939705133234904339828759209554487976647993703287730181706835787970626270350684570340642434347149559725009172186724052175752996633760246642217589949631022405271876270628931774016477348853801410452672011483882604513633875109514649409125923568933765645944988437298307023122701819435356770607609640803150722826256998885645863351660050114295465866913618508546912159790665611110033537419555490057949305304345968435370989580064812582998810715808593321314824738795425952021757299563183819322790400167566812783243077239771448955151004706928119559345807649158932187154125733479838495575601066134460317288930106944501177416284958233855028650265339700255147668891520548481486946849356255941872342671336157828331652230099759465428097318113556170860015989097816069835985901144594837402683320744449198605572562898314744594818498331794368259465703184206438006765094868176084978173843335785076985292784509667520590186878287189136534399563460308830314693641656459362113519862305165309800168647772269696844324947199361192513609669065867145463890097225844205634886911370143411292629407731430901382354757737735750011853124515344873305096903599939856447291207240230571269264265961248898639723918669178702703880275339848356357174357186020517855252495348448631666897282912508497676982216897963544733829628679270886848090835558824198068218940282789920122185892468854186313262546559617664865207045839139261043177596518860593727608507430367274733156290070587230814423951329150007572513153694622428077894419822688083611142354383826314596773282828464444353110782315233262840243294438101477490418745796438043651156144968234494217481263737948834277342038142446019715280030916869666790398841311248479925149386191479089982868486690603691710396741661273482533928177543762933895746607442313004858348977907530121438482348189125402014193074737712955109762151964753075080696446730006569756002189269887466227353775746404283965653906810345566637217632824359198190405075908092797457322802197363738048254124742272695022586320581460699679248723191221092753099539963647467513523207096782391676308196418653311693772927141701801827385022154974460583351668835055342288501808698560658658473288495108336039978531884183471387829257318917350220155980765058705820003599608517574781179629252377318563230306089355282025976085384712322551801315618398981261852284615492743425873090741669486167344087753727570573659086362680976301055211309826974770149080324958358136380845893905229290230662404640520194145430834427552012262838071756496851393582682135326603931161541961254929661940997663568477544213442040513733445097183924046089288307223280410110544129551600633612902129454419039966522514631689714027942951679201967439721831422742195674751191625433224576475264182318847186536308226721210580973879105905038842856446998457640296893942500173560344233926864536281280373170395090646370031164259408191620493839498471107754711133356017668411714129684453554758786118272606500007373538163083302503552246427618937344882746033043188934774875848096732057047637888186022486732018983191892813998762030780570731367676584913994206584691999908936755510480986051193896201135393097836670892479255663926634331856164122650117939013261651586123511750401523893392526326674835232247063426175924574280558251230060791453489609766741983403374880632094246990876227640971305005900352377635551113925053128789916833716200168865830504972921945019964214623817184298204634859403475728135340736277018959485280308334511934901607406364398095428778048673551348357125724507169465873159045597356233780994519943769877314956409498162234883068868492594913268716662476979727680635047965858707492499789312025851755772169682724878180062117795577788024483267959282785557939606355262258614453768561758868208168143443239004874765706898275475100779653386121724769841350499218105033830190992794949477046074483117610838496406246507606040342420367124997313286130000852138492477995819956207836199810279098261505287527263764028967227216540936706061593287293517211001423661255061077793047814546325228292622171244623934821207595362795335462034567330146683578072857295623854889718990132560147046342572491942481257999193053620104872237290135881326195523569062031390400968732910658006834722342378419363743683327771765609415157825725300881850103667195275144125739495062813284011801348758416840855579840841461517234973394429119101480052852582161489739241158972630746408290428024351037131694775118756999988459766689515241210675119433583689724511683102663129157286995527550494944752027751815288634793186964638309043799319739553964310712402530069204668619087295354469229676490021737122256253116493231212756992497257109217358659558503391046653988339461869957533338364970750126580277050665230681195543305896310277017469341267619610533904955348727371347669087026834747587925401555972357168132906067183322103322095210314914727010660487805878852021032494136494892211216606137162203166752176003468271578588245102989521196662975025196003606893691162187923625733796065609461975415197573802013963855198788119303316598923997427936013558264640959070728501075571088691176415209789024344156674429223794984605211005251235717590139331835683687187523301636184742089697525184608720950420594523670065256099378472165518614108441592148517336371311924380348748421435094794755031192318240341632268268231928238965038481937498168771449744566625440049087142791311796968283422010299607545139424102342894640229960446397864048800930831030197123536986293708637861359292435374561127459420088325957504323400191146501317349726976134124613260327054706039854488970820158073029660451922713952995702508596357875037180991318599346967107818981808507789428799229456419007121151533195270183169273693043363210458229132193899686176859090009805615953838721576369068085411761642318015676061978272831099544844924502069215012076762375362601986117820509926537277222243086151128180118745662303423399643131410167794954228094694266052548608788210632313326125201653343690412640950182364846689866328782503286468485084828150025650290386300993403016409734805758105578338505722191619616937565797536837045390728195840338520560518477700582691651380022660502450138801073229571636169897052154673709915915351070765740502500701702662651879316631189773068864118147751500581622211163652824547110841043878902599013381295350923353140107482967231660482243144361197963502106683322655484928962927264457235223645681817498256204492285510161252687968501667872544308151185204600023599218782832358043357513316116858852562836469086543508830476177454677378207739175763500049557540477481799961320017118344183837807003482082537414218421958690257409879872624405104589734196304180211030971687690336743827546567001257293122008030457139103459036780769099651891067082667001794735668247499672348945972056841863706364253589017002873221030224119333034788433951516989402365344805629401037825127935587478049621065685115750694947844460557744302451645357703584315897779859741094211537853948797363366045412851618346438396950316015144237930726181722367709940360848411097713931470234920300001746826232995656542273935067086779497034043853538869846161208951384120030275296137565511370064308738506207466069266202302141673849691413077648046914183235250821390767949505556190363611627196170537898079083463131599779221554272228832223643792958723748047239589770382320810685158220300894411608439469904843670140649283390998002002595852232681944266904521159303028854833000847546847671960410606765497258751787620004196617349700192857984761409480136546101683717479174168146046120146502252683302912859996314469167453298486173238896612938365808723916312877923026368212675231061896987023124175735102990391178557032405502751387377982590744799732191012701955948069880826054346884898646345320016116124276992338566871639969163810374827496678818761020880642752147905694754215160173655788942140898100354078158692911406452554231408263595644711286137138657456601231151150423386989237557261747165008353575494557776660829863230508922091429905335727222885048234139893141014717773246078575415988163519454353174029496390812985294834602540412583293922117907853356734167358780697027076470133958620021536807835765687223314547994316414918502869660512172765278505850277185834307293111141483241582051813093251333926522596068380012476082900488534306105779747967081505881056461820278190032187032666644140949919586838922342141410384021569454887997556929504201830338625221490947182521078242032986031244420003431270519712465149800307433752789446640927726615604492904206632419572844419866635339854170775976465405694579284010024074259580408016179351782963886327514786515649814977288314812965316294966376233979042179234794897324761523377155839679144880243552485036069162938873906504376787727012526763168099839245047481306016625743682232072700597888663283476372882493075270632674257724314461673563651653417555661805806461808981339646820909483683057868334613866359772256780233023133403664628329362044724405847383048321737096955284281430503783493840509884706282041865868519749126825612539120933172853577941002466766525187184567316288572185203445148820867276198953798479840557456256855627467291895355766417699875393594159281052467632643237040892243888874864386033479228873270858964431780455377301938488338483492106811068017698305191814222031698275332600878077551139576016500150310625027154362046943747884328908149819912126417576307007008757408780246015869124671589316039174199208259270757597483673381990223560604612906778833665611492179867833225955870501230368274272979200565110956942911044190798653263803598888784426638092295731568263657362742087693279414521926461555943667994215081870792999246550697753310073263269087802145894673323801877478753186757983248462685449586663517379175003830300745663534265988662706919820097789444186817234768959722651990084254376218646286553595479902258103008190956591742131826120837813406508812001376865379563000195026116846666459376237261115769038550054043369056439620732946331540672786282350196129023494010612262079073556524254940776062838992717891117516164636470302403960243420400841149934667024073619716406732031814902758580815123049240274359579301298942145441492052408550558404658646044557430183198176180397548853191255039348042692762700311771891610034044548927461987883120805404394071475507736384666568337339657294453112359799822337501227585381782497062432774352182333175641223140759064777695956526023224899375511810333200027117524878033951002770727077101716855608626985013784835572558654136055047564155848003339756601144305222549027657101454993509036718346035708234011402116669212022445174764998035721498753464296097131802172053381025790383344351816651977702334540867486694791696025554773178491821505148348742425770471244782719210793723799957635746255053596816612243389768535040976000664429343020615587208415472493815169910428243827850882578349947825555089007035547593246427480529644676302892864020495584160858340985895263186755589903371816034613507264313785226999685901726693902076353378810892518909191229029330300097990704185568392451238708439008144100824661853776246602535409582391757063161196862719735686856964806005396882012090893662732162457534119367936713160792237131797157370088521784781272483157755053716502832224852239578145170116510630260911185075886348557577525819350670365493045448352159171089811593622314965305338983442674679111591275946417100193886509582991831233244378742341599275252073734076542542648253040442518617696480288892709821441146650000662669504817075954751718645015576420021529123307338576951621491122340270436714529934082398500133357376502029032177505056542881895222804120427013839883376815160269518661792557792053858882799677801915826222751582058173980857791629458500299753889467381505739522635795081266385707153509095712111535885402366187064885734910437498995661799675648080413836249369997150104251988613161380700204969720705551038401750485826012981340249446165074363128954919008551432598574848661729696531788319062844366268321460804141026151105765241827589693744422527162788353954922620833727262858943446672482255138583706618277308103731546948831154066347067713194130689554914842481097112099595799800001525220406286166587091341055146426996741259723070076378359353228630392436618264842606485083824144999750792721823592245408799436413138500852738544926736851153415432639860105397274248874659416685903756684573656765330187912152124327377287878699229593384715502763325775763855518992629838005469417972682355545204054537796483450898760851204952430269788201456065052924866347873278562953144817649245776791562007448441679000440936577174893426325315477653654832729443653057893094298055772509649755966418290784513675516185565327279442856121712272303170866277525777711910838011509219757129407497036261669610542851060495975531723969707596014724565254102537313311524801817509894692224112951357238348598903809454252733071036705252330425604800685170120930528526074898177553896078439728638622371988505928028521525445809178249563177005793963402669287356898312854941019661284296113024438050201734052856204791766847118314454094734029569855471243657283180497517309854147609112074544098890660137673082771434073009257409035643250253131219320485192825047454072930503234895591516286705755189498807580611182371284748503028208283050732755488549902617535233226580898382973610866034377038287087758469921078934466475103107381762819665587939220007738553478283408703701130339537028845437141187621420102214658348193458923462795763070291738527343158689825168951517512489275593980895780212105261114845845874652043580852893071720257543446004093466139433820536977971936470650909911578187624328594488619085222385707846690724002080126306552833619466683313627995739319950782097106883977917421624736029074411032745197507754419793665915831468475300449153716777888817484272688943069032627111799187717658204556514622379524687434084634021192838760103685894733060393239511843076376814729358849603364024334615549288747619892129089205776991976477170294424272974952416917657884124542499178899570436706577197958853014145565770126835298721130718379179247529366751575234883576456478815573299557245871361156885659711052469818281094182327646049925130226142343329992488817955368909134517085617432199269789495716456300448019052860014400204276606670820231428847595240087971443444440266996838757516573808468134363547009432108825656043378367617131239172000117445878992461172689595397827742544009007961101341286059819118111918389202710751887972067196554789490675030216167754979018692295541225532853178586776611496152272129463367072801551929670562107749661576289507263730812481380342298127046713770196997279381335719489581329462070912544682074713565031378946861668449263784421169242153297510152953446590702081033547665605919723036431033733379917578957389943327521839646367257387055597605908993998143395406711834895224870230219569885457731210829355625818385474476895763780799581980723677152219562569074575430743543111603209650977467454581395225216763678876105227564937525146453043069991147453683970358291036062362521228095944873376829777612258423559137320681899240066247763346156371792486834891097390099777298076464493840917988631400577801997078778847601916176420063236638545126114684530633182024996332795207417158774955017784505610223541212235097130376785497124572872342612274706569927195740241777250917621523075055930906420842487385686116636537701164349715680330256415869015323947075101854034885499649090532442003996012058090644716157053100575240409847824307578972174098271987938932424228278778525166955777820039589402709918052455404121815925741809747162199524832090556986026177606059263472845877799789441038589461488915077792251513237194550924410475291724238528941264724870468327959673145747065500553729703362281754721509348854568687602746011404238003879291522193189302441915095614891715406595573068262183321907076462901410540035109582858281530215309931024938740812342990089540605980201963007823339564947272403542932643747932724154667641559825063398503081876329578881727725510610346480819310064315477544805165329016080310745784295472225470304535535903614370273489775414415035210713977002769491722676836368461306096661037527358137920500899263669599166450454848235504743982754438316511186437610042402568395973593235445387369721557916094679645143740014104271599575496580578399667691047413327304497110834241111428258017284431236714435001305138218462989011397973916856764364334933268584026220835425237287131611387569015652702903514027686106520255588382015621708357447883014011100271177936723104356554221664353745965822304953793880316028220863504393460901969867841636550454144580550660131463525483624833615762695818875618044675829598057845110498795948597666588635250044264093384361923682974703715801643857309553196990450677621976887132340254018281057931902328193801557151230234985134427786341931078184085586971785823369093417616931277699352927245410829707693395738648956908617768394364804892452060177170154858588869382868599555769183314084024310186502296736298033030255020538854045767313485065349618028265941151134309110758583213001356092868832699973923739268314909558266689482094745485603671894709020568185915381013252777345834650513877196061933632667219027170405237523601839235316066403262867102822612290286305202837054459605919702820745659664969370648366931317420506278449230388415151344630377987968642081347576666003876630702722325093253616861041843462518646856962612535022675929040316257362911212858743311363666816325132570407000052642894612414168216077522175804744516261005025778839719994424317701185313361358077804141120504882144406384730381337503236606848493275025642520264368098925255867910777672303070093057598545924933480135149258961938011139796193028348271967174594569429095470076012668466835966510608654592630492867873566194912247130883447247881623939033340340056330144542903265167479056533973589266095881453502777632325965980363180572603567420141962947856291767043499167038921013821951623070175500944500854399043160658673859018918506469106252430006021385418764231721221659272040097355161150476079252040475711863954574140523008829509011094393889176686775816116826657875640817168882903751412348277685063097834097982339736457393043726644243763930243636207904404717779075522551276929164108904577308149048383471931393253854797506441470262328548155892961561850471920600838233367560311394978185255635952933304395502161768908943142467313695727243670080054896391221984538566996301342856038188128279174136982878002445680733634079500128967852325656140393759098701361150706109817685309548656464800608709350610935576907295932935368345498877708571694502394105772212326170531660409277334247062295709157294688026591360137167898240548968675728553320674659124777024000868828431986493473644944697236183891464035164538436938232510270695369370224637034646396866714134701488478559863217208049771682272498334265437367523720848202930354283808402627030585369390137397187347727278449944875081395796750598147580189605566066476196411355577162202834235098082670466972673647715616029518002806463417033850703455576001450787688735185014373292747298331733154481290542668666402355935621053705955856733807922195054684745119323734838781885934852530114894228257432731015960406917776505834772679119969804382847753137845274109057123391204574680092106672055766505111021784632154770788681092088463208872172198446089159037221871452795575529044443286543577287204220658889281992005570271556138981985670917873444315106377770993692963948438519874689323587437395855742588406335353326501509432903908601456797062777670281124380272982064352089419980549286168209392478499310416832363661722833609022778787704116902256619592447208205844611174661306553549601064093155325640621959205761822821124352809735531705321433601515616484047366747143189097620607940684457150319249885210219263940736326968575882951736468853656184192942471829137328818154352821470239943494248657992893117152728830682158690398696701793025254301796329294818888592332009114264692730026027787089365356630260578447607718593686454325589220818617698156508796063503459886939208709305591859194853955632774322542822963389415541431564591720440272799314830109131260688985793041411051878430567555364348715575822093871074827645794158708914107968890065230487535934258019082182158610827743249566020558755797690635132789521894993238113328135118160292524226728170540526912556887642322083967509470443149013775159312888196480272180452087351147656635784896406162948155310816832347213960716586041322544404280654168120799786547371008626506171151588675242715569727079873255898320990893485452338509324729530775807808655364716450039048650168001929144514496711035981212026980107429468741325197671165143770576809534225699547847407410166559195767022604822031880665888061894875599847737222201903991226523965196611172174240895696519384716123750576388921310465823087104481426199930210449513909562416625894860953112183647537830949711023802186526560092289943885167222332307893119149383009649342355031458262877255771729626513855024458956967135202242404318923946431224483778068888026056386534932860779831035915835218036909779194530623796039101242658755728155627005013283957677847334178256001475347988985872745900621747766355816032518949934574629134194688608356869742215986129606315349388507542321451836824402139003046288791538069513955913700364448174695157175434502160057715258007059123993383514876441692910556472345584820982514123727836249249490239052979938127472681266272394890738291060739741470062175973184940407412274342093090694810510853154598090612354631257656159788811754226770339148587090932303953060961927789956945455602383131477010990335732607776534851807762986250774967417893576824452407449410736829379618057601105873619488777967055245746799403969899663870644477177975502125482834989459499474044433930041158323986907647650314593926328573120238017096395033236094120880119415762937220131188906773526001986053276468709798054352002620312693168628272825790522742139592797208417205963852776967433783220806583196605904245264573720354511460122689811545444923762928961757613629158655771332782761539854060173455020177388244665898438396215276383700140049557869714646197009696378757063489019832062758502691274322869815767445766531326892618763092097202921681858996992054315536127427689145970666510663024016145938254608146500935167206881125078275909536707563424714467896620434632888827825325827677949618311883951418825143941723069380099528843175077885883659393851931018551186014243885804338012954918803008976036055834733438002853509927812826144764173039308596026299941181081618839084719832711691285579361859980475291890569535218358178220399870661603436586551992900488279360915044784445045629631458361514862909153936838001546222061744070537105784692227592572255682500532361025180854109206732261010710018175568174555930797665549983046538577289872710421656280473961771364027240286380913600448610316044233185401997949067005011219882976818570696858680711662849785088348079188368550805188000866832957353136138857311786425193938779423874106076394476321076641427398601452182731692135354528545943667704037627245697579535701131789873749554713690489538421370187877224484222513212531160064427281688717336474461992897994541772494104610979443833793848183507231475062004410051842032779825596731225674680326358549280632216753489131046843596203316639728157395337554192791780013227638870290330101238330374264654385910148726182673745467485614054103375871584732009105002254224451805272581904179476440900331948396461200441270673450872535135846690473738874582653085603513122485555726377532843405045058983071679631961591250851304077684354668947293587024437086933351245547456913887670932652489904679292510262923747791553769878207524948501812007537814227080755217431623147673422750849019173148540923574950538202290473979789932396492942863580000232436945784361487022816879533124121629117723781613584416895874098714534775436669324254492241745053086164027889874752568427171448179751374454188310647338591539783498155687886621317029221399401876128944030459854813197547314896173182029524517098882855026944011609103628342044486438641124784767165429414942789195967859464954310777633237374443276183881254961599405338886859253726301820613016536131654910815359351242591265791384723676676810971969421015698234329306090473132401864327306325503062555404230855089776023530419805333865234998806927571277170095582109528678719838691608475982233804893155153110660311726101332046573482383963483204264760933352961929822454720145129502336793562664716060141734234363201929370544619794415010110830180966283561816815743016527522695193194581700598451349949555910518041437954681416270356536237432041731607450445848420466988898628345253295252764000050451861738025922370117549905159688410737461590127365638675253043432178568827784415548065143462762037769615826991125562967024344501489514551580867792654479299738180633451430765435824175340354444628466471690111004800836918941950246028498774946980986863075711928534975912415900114131046116882952864140959179173751011908241251867279897199786438672413497060348593524567236626101199371814248324336340854902332523614717975275131555107538473296958435760340211106906140579346772965790137710051967699584764521369725715205171872305045793644618368668176145549758757968374150934400319119330569567621883641367043513469664298185217200582204901363388575910726055543702341932138599486343252691119946950357469416428376081832503351108647607734865295881150153233494227865702585900949754978677728636177508232855748456715669938335333505506020697467551332324068193996249957831313136237879383846052188064150080312469980113543368582686316616853811994350333984339970218962414691219116669791793869068007007892332231907368192881113702407765785432821140104972010530205895693145193332747860387103992091735247808724345137730771162123841707802672392563281601541432159104729222434575723651069014238213588374646957167513887629668964524142505350321952422384741655316912268132215640247430168619578835095210801514628512505358707752876856517812220075259859537524345019930132396415828524081855380873423361976289582915241111217277137183691242989318875000914386890711756353038070544008047072934431727051332893501654404493407295652846350249039617208923700450896652444689036843505649277379791210588905427378066355093822980058448864318741469762229362876918676249307187665186332421521400418117253614431524397230526943884843888911713288391138809974079406510212659417191962657166222360258378344887002605140768244406737394669402424761112448881806831177916637486731526092950521161550465364224040267919314974404013358519902906277074358892015792209349436564908345202039296175464028757894513973139472943544166550519577024084966898234373216728290193353019660021351057611654784056055050978522911941782433998547156220501873574836198518364600794730935695781329040786620759821755758333260792278298438701298685506420002096228314742362308015808713318247475670469346749486673466517859825494971332819727693355484464339474093530752037463336294899813472070171179605900015319740027402003761260088528632183165590550527311994863313930153375187069445183732810055632980330804785871791942474619997962470256156436144364150288365655032179033726305901822747288618298693469389556031181713095937315682630784164690372888723195527243910679093422655207801530808471311507867548531963456212722698088001742633740141708906687923929293773041926211761606459398032247665266679457405183035204441021938002155941514143379441875101445812620116859960169303516436183984574025101427632968384820076795191340408424324356655660585012264303143721090412953244051936401386114735743725125975645845359035782906984366101779487540702621494610021735071912374222517497926430439595220283033949637099464591538473947346564253130993854047338010686725725644430325994442134763896801710657796059423059032424835014046462614775280700644152224660677603537212867232373685358809983770515886701078458592525068542436052289425432688349788448607799265140482640188098550364160754021254753731589135142087125960392101430751587704267378107333896314606967429804990756606000261504210140758245664444866254666804964843435778214883387863832002649849228199635144823430324086954638089235476707803360333465099081876071861022261394722375276919000734320395152362017325931428991193316837997498482480238917015641981394764663307108861417065996417818531221932205754880970121900310142153116342265222946826656527308819052113863172992298873336328340888519143005273147045512980766371984624983587241754037696433675918544376474152745329278627448965657097009544067178140651358981618060763599870498619176184396731796513873109328939755994064812772070548336238686165357837070597437558631046966019348380017825634090676782733438215826863693739093987497974057058554023255197715960054213348383398773783841444613310361128815962604879460008753071457120804812921622027951492352335775565183605741260632759306713166782161257148541157304658014216950974382592198739367385419767729409730982082657555888376212505519851040686321732804094921004649207609836590465700213552132979907019740935896734341870585085913791415257872774078329972187756755063961979744856044532969251930663765776571887661278064123712286177754972733174807001923684385719613062267142704686168697636741704198440604003595288815597425379116213519257243992511798511712297732249259610757688307503234235108080515314958760855562111192114245608375213079953710976436398013503282617355790709558956108787160020048986640936886519407400748152017730277022410864526227882578678753038959229085200125836234847620737477946985390886618176624412200635056742926389291850311071712359683308333773591261015198631003147824169450765007137387900015540747075556635002249241117554390508468635370007869732570740161090985500864899375763301446393183687328972339696419892506765219396331398108488441022742753648950558761946535588709949058063251770275568638765361406748908928006518872363584476075042175724457770308409973290456484119597932086436250440757150740539819782700228892764055520222692646261643558948706047896838971814394510433411005569903560941343444130834251800928064381049808830299701635310034112381762421920851266612894212863995340456703464119061056119176596192260399152337889310008053686703674262308235622726332533097097455056301461102107527208774214348789387672724978451334565254698038405880695817257217280265726625345817501829234927953367989295685232057445484339989363450336292331086876412500113607294679653139686096994963703407618872925191066443281652220827662758229563346433160841274901280333991914537834583015295372776614580011216135622579484124614347912125926042364168390861055206991653701974693667410006134171030290562781816446125958653750020632841116498837438142765122757055214970298709803978361049419769682442917245847053900701719121779157090079108561674090835358915164952063364305520894421858418316003354632965385107633598813519878632419609096155121735108618270536753885957464796300374537692540164503763891147445375308297293744231353427744964388331948918473327000683912214446744779400416875613639103416616826765524892228613236670279267429648910467952719216415062417328353225061085288297999634427868616417190504637629363482977339758313415041451276183184796525872936197755960543407519991196276455732189516193838110492236228838930060509165834110194767020406362255750229646709250622803166836226891201374363949782571252180795810698221043131516505320871605927569369507268948147978382085002422314103690027958921879622143936641672315824543209522100645393891366360022561398158422911341448493309717044496786526470275816558224824731224744606315231508422191055760318621017755318544764526516094208914455124786461503403054672296683285758106246363214543456153122808632306440898204658971157131409298597820596424251061638709739683741730366370572377011895673062448542130185647552859766572222218488648806197462894744588561563463973816491454248459636781518031538301010514523480480062966530162351573499217090944210680444476281571768292589460436368126546281887729421840650188660053678474616741435003190080980527606820040884562652881172065766500402794234945743848619565998650764859299633296065168267992958765893534008454314384781632511657165917568602704181239157370729418753176587854508912508984745183356810765233523833276264368817856973934558219528317886403869565583050765946016650653815526753274119311581819021262902985574887980314886087269631472562155140032434551482205554709885937296865809489548281478087475209214718050090697626478061830397143163236494716380616605174686500676369332412427780765421192303355231235635242750284220321386782809896822736612882807019761706641078810252019153178931501891247408526246238434170894093463902417961282029222372834619440680190307316223586615650290121518093225466513762232811527858805299993849485633485630749061851535984770527091423999012247339071817726106641692958567093643431771455131631477636491417068246087751786120128439998524240727964094248047044376732679214331191741111829550473004392397945663819145949921401053762750415120731526396715589704665630258162489398531820341390934991899632128944105276596709989608912543218784905638359669722110046094341422716445406738594935396453600588377213817915827564081260536998316225066084110548678656162454563920881937350892532412654747249233015377456514430787249667903569067337370713018647022492583857191137226971104418118752005577221093511731140945512234970619778408022755486228558883542451574124542354923342621449286888684780832195434797011395263576784220468307395817243151286790500281826539296294690426065098164010292561839189680081678396074169734988160477702456807169652605224857396292552360772275814451467249442630165215279213193289467215412925982171288941579416243323843120861984979272401389116390268494258253623975619393674261558324326922420986960020684411031571248710273525237839613640258716397572747437792494765437563490507104130334987122855161942079753484844857276718752273647865005403154507231079806257519572221570596831025798357099604194666084797048295897636206029232507885039189517832433103840483279464956302710195356221839958188129064217703193754486406612422454748144993923528145896760729351313689514260546789571873137506136879659695078545486767004950532882969444913777395789418121749378863666737396312154362763254714108836269195127350037846481478584092697655334348866648734227130501656050925929724936388100344568982603145174872858690500155986927344843090675600448434033915774816072346107700291642951109589027735804347426193802445597447240955087466452759825584526602751821326539616166711174210616614394744114550833025283083490581581477215740540479973894756190046455748671127043854925982742615171558988625557071779961524722420013280888794749586296270472578874407590539146403321393059010793789827987129924947671472968591402971211537962123505433419245525256488795979783686163197751665612388317896085848559666414384354192574403701228459062150268196258645525311621392664080674857873353133861901798334358298258259861626476652248219429385830094504417336023879223645652782334202285143281024592688128314324969906941160300657781992536760775918268174572181702380736243618477861218037309590212262529687797058297876640400881430340085287914371244116459386717694839638550177235830602360145029382719090047195104037530435677615970360027350191440474103291296469686761255322528759834821128795747285805103084088891741387231190574491630470789473811877764838259195158479463508792096863286991238353050655811972449935430879769364293744847896656833133880056116469437351382216494652772198674982993029302941988814097491712909372279677370555123989839171994989577399629177663218433774486473780436225456561120080713529157096966409254255959391317828157628788931208879007930649227545092568363704458644643414677607304149323203991712341887728055049006288571568667064758069645217021099740578562325710264734804840205206696811424539046331155381388369016370271163299186393312024994119705460135076640612940678257673865904699435378154396712293219741046171025229811527088162875696954882539755103224651017257484391552712717803104408768459714646316486759785073817738583752327276092056652818292653410087192418798637308706077521706287178916086604154337888182950037166883012031666838460100933301142860922122157261474624149027156867151191625590062226410906766390304534100151656726655074144404886025553742863424450310132092142980016707285542936207871284983372581810604520231060922405700036258242012293084378158140626194447234809696414951585380107023913937524077195934162801645860884406121761310337164365856826825907586649124123282361264672110731290424162410714246390705597388949087240038484785984977022692624558739342346053298149329548467170093468446677817318212965983970687636032235979249222757828400989034547020439611223718759963080749294576857770189990210118482293647174465346196280423305805549657594272360928716833513925611326867155536847074436021504048614556106732066761496069546110229974823767828185249660035060015624878206816564049131023568159643787525335509699487468986535241183490220726424994380375677176004201529223781035541572737781646763689008057744758361512189364792373766311300407930033997493459021465988063713522349867801150813153035229137323936457002327257545534523248151222794648106893724213304483107912767216190793309140822872442966728062844421856461244080478719863903763539927201091285348228044141804919291656639641149596188280420946972286527798585685872499674538681685383369779774425735807623224047485054792035285206325520607342142546210841396833681538243529223457154917285375106474893828055607930099163377794486954373070436256642316449683429629596838308661973802971459347250964443395557741799517099458067258132327047833969031774217073549040923476645364293097143579763565530793058109666111206503958995985272719577306332607531775109727203917554562470742122430686238905343511512089421831375186138227378789049686012516700566057221560488019947124531501740976529415270500692231059868718786096409667125279335865652388666738675370376545915757448709084536407993193893137286100598304471180541075894990785279002176725412802383744063203470542522836479638519556770086777274047196842773939179751987611490721947666168632584549107245372407406652496493344710224920042467561116555513460936117882265928581069165321540305064997505150847834241004240120494196309452680339567342789896576362871064744441228110980696922668054164398155899097172241255806179400040945648701897285900541355657400024971662473369875144672536604378404877760837194865253401420540555082086605792656452610620618529966182129247873814474411814037184509752850679191749031801710680272774728508664729549849795834175197951362063941387063152408927771261218194353060978951227472641823971331060713188574736258375532604230752037905171282301862208270575916120294742786576779862181194774969083527268493544351769427786462325334128340351267299088550345821184130298002899257820815088854190517297256147347839799698883745620791214285754721311637165786878091787974440069958758102664390528626560114181096764955171593220867937439152943362763821143870315961032849051956674956447347444011260093533597716445752926738338841693550227785119399934827421577061682254821787241590511753306814564612282639953057027977338957014934073418277761281749548055693005763679336003674471918668382300055065310008507808465617490691459647505337008743508102049909847374844861456787398068580728430192635390719761538218683180419779461383983982307913700152077654824149932263722868794484955203368110339631670313060608384958972757532598779127255940776901042961024233020786947382928850831691634256107655646666321019630271699393831763102991715439284208364109979130488907112310163018296225555865595232624154610812711615739233026018733701571998290032396242090856062429101561887256625984451561132803254076257785611418981416240797664385355282676736528017744191991005008943046381976160121012619800994360987766895793881468455793770992343845644862731266663135599359589572418649930101794440338950700666501286513752172033429788049227969182716530566243836093181583390907741798081542926466342055297093707636183749128076493842095093546162032422128629290767583502910598109902901610621768009781519864659622410864920222098318998341397986494404712182433592798713776391220187974703024997169104466032682623788429958632152414375577226523539336324871396520691952463874402250973563462497844336479585680952684364792975279953636020545050741264920951268906556168489165376027004422457773377521385370134212198924999177316075536880211529206919733966680602995630666753319689037198858955130869771242483573079682271075971874589968448186106937920791468775332756766946389582343959531651309754494323560444292043326245465169391180049627462401257278157367804926450180575533275657727570092642582509828983202842455136703192493424263369196300889788164091716386744496610012464849382082812083277985018712796682631321726376075488154461345918903431730709525764750804886661787392822343745871561732226841440319577966415226694487579756654264184975877139605594309370930886061485284062333692887894589324348461191931133584656199419254250534533560545119858390847088641860565982918723158250390760551357538489398168538753947600008080932606905228928036736179630668539311651159870081285786289385481892357873517375554697220586745606559366487748830225220171039049092159689652910338018867663258277755106003225841474605621721883111986683824745674457843848117371821071198164825168871369708976623704207713537658866500321014279542976326122624602034348465946751777906929953289303631185669704958641637195744642120561867375567503354851757965544396342256811685024576342343489136887624388913868642203364525226207323276890455450405447401072005713227170166745447084385615122207186638454419548465205478112391200015471791553760869572130300447612731266337145215488991928550208398953484560483982034263812268462514807451301595878502840910295710968082208012828428396240221591537990681776993688603103137796241891373118402579726879725876155370715195187327966488620837419169191943997445589147028844785146136989706354824348100988418024416968443439115473657633602626895593030575813228958155947526130558392682903465881103823603943251857285286213619142331809500683195889942577288702997632644724490321721876283798204445380357972980995965456374593072720940333908701974452905121563993202700317538170686483483656339183322482448165976598634729400567252081587052479486487638865296533190630189890504845807371269475227003513471726461615600118728266445514063566681466678239212711413272082310137998572854721943986940908508477166888123415636830676655188757169868260887788780823141387131326920291769679123215057540435376152804027580450446910491230275201066243383583275526789353255793011118223645474972148207081902840777071762519533535054153398442102494317622497612462209195636313069598799331758224554017124739869336909338521894431960544219071365902508648966486790253609198039752723365891616986105197387009812274468441037641712833068699149197959555727306478983418140375655890597574896501835799097351852977429641256683832594702958100211394112012067688381592590947874861488071322477682333062455189997385907624301593188426301679785149038052130415533107637845930277798224183827826767442152625977877560579596027865482644430964864968403355568894074007036594758366011826740096482525099246545832072949940642733409833412829971586925565212723064652652382291521988000665301481127505885822527769409662357484276329747220028651754952764570763445220816735397985276357699582276269742416495878849652231137671614629400753223664338413577382422164233061341711436788455352635592123315327975593013875487430456315643930114024792736442699558431315108578790353459348062570506398414601200669353756102980821398707920202575724185838793047259813915614009108589344512579638356183590415759082158234331738376183851197115337094435017093919839963431766345816496827817263693014216402328554327312210197935730385807863950766302825061826085367809495458629760667955151091553143663717869935173688138513566490621507840762095657776388339594654281007552348071767956408418602784750632357505210651482946559969451706635282415311308366013610286877410573193047206978596409794345454500060215864672096176158522309739099476821319784739923155284583148844524581210588521384687445889903435026294536175881260172147542394376534043476852597317299867463645700157759416104655564189396321221969349385261087168912375699455247656351475169003706389553505956733743491937898799238531375741576723262956231533378102439005572833420924574657869974794127141083670718233441447092179824694642949908305427746773393436755473871828636681726375669156031200650609337506341817305966283914750963118850817763719301391321190726979751160085687521719528705400416929142928255175514455284858831410255135561191976884255929305804505911530291714141993518862921143094048530617732025530256481560356333668963325018818711053625003715280959638156520566177878063019469015187148379992790095399592721620563947400180451864589763769919203067932351424800122415560860950238026454807339067364953812062074500073003585232631298786064500940466341963055697953520277719878979474067124886455702062839832935912909627272969516464150109892736619085931783905727702358342090071846259304547937273326382835417586400044635555115207890011137769222277171289302561735101979654311793137423178949463401206145535483243568203437689512780589120241639027104311386850976600468097030198823099395015463789693636352186741084358501977036480873498379455426216881962958964612673266315533696561155251806128005857399570340558856413858134162981740032013155396623522245950506262590506888824678085425152900751795596149823571946329141599789987617454110622875349319489546485432715181508637331605410304378919645594429602293664822981629651943060411214774936613424402356800655931936784522947743845683556221381568288144548827225174796121255827899601884383485665104087841777802575835303628604163354687065616580982862451412655692749276072583234360631830105792554977240656100136122697922259886903258992908949133501098046333396829902065706004595898246480286903266893613830322159900472040255243621026501550868492901639757783409501947659878297567125180149576966993714810435179738604928993733800170634054422413111495477374403505689794534013544773480558568723068975667986126895758588524075760259524231807164528720998552375482566788095059231680676702739866610112182562663909775136690588918135414046413614126584535681343411083185065445616124098026319625768507833397707241345754806478703446169924469923883175459384964221651400688685796681775949744293248174354387979580346836510698565563173402300182987161097506238643020993772186689791548257062491453901573279329791874810132360354729424680597883880653227680482198838494381194867868303031584114697127065592727096748505076928303519718122531737189818800186823375891414157922281121204896258253955076508135122138164363009635500156387380001527787319412780038944589372994519993709478451052806942924944775273152940748729570631985764348542619334010739221623094447298454462945955516234970540644570610616775657255483368575871323270324321730306535749017868519539804296413216791335186896792624675875314461346366402928217694025052677469211523686919232797865678079663479197939399357744589558182361310647118869040581870934809129430787998093078986768738907764071704025908621933043393879439051494381627279279786481172788731079465265819678815361676325757307502067461940097425913207070858415425750519891566727127966399407060367064043939562373908882263036386264599617187171002275428193886499854876142642480329377097584829049026672868116194639499050411515566854101385768335678758426178918094244390023388988063044281838548234657459048932794685526112450257130659550368453995641995452604547474136728139300784203625851501825999654465053810021861912829161195859875018964691886592510162271397979547619638444426208338261882779095806637197084761201008340089477272512513064885312427779537003968641150562282342351466763267255026863868658226885277365954472244874452839708843886997175692083483995203836876994541947435055311087461220857401948596623624914053220674619019276151645716919647654747392636228899729182521254543613644046032511122509206419211502276307854465070516160794273385340346546696859794065963809478883433531939501126181320602415580981825853987009910982849477814511552241856999074916830918692386449876931792361910870828929137752004202024061216065053406714668007186349318714324918880722356458211382920312386505979140138399018298225385931467466847439454123096055022862658696515336214221900432422315855896189557342861552337781455250927887293678511582591515677910712736505748232812281955024491023066977104687357556590611178704570655828638019087943271209596674644881805557714653585840820952158342828315988105268109929328597407367493977036237040733693319551333007634211881851413529447183374476372947664105862445466580341370079777141165843463940515219788732978785887280237817089317345504427282902527602815325884299899260860581843982812761173945929863959299812061572740971824294726868113575586177072545915930890132497473471033683945079374243642842489500760236618829311506309866888182139877166094699987319000435900510411950122069903396763617245339120004691960843996845028508234606573198502205028213049192853542882716107369065975967893631081524119090269777889821191640570168201564615768085382805972704605282777788001087591456006355526391256463743657391439631301383504779211069296933265321644096856763465046102950889813159873247526805319720283840220079859569394003458653845360559283399098705033724351333252886083035029307964221692485683983242918563617760444368658326489441617022572399065210992862706092040728051648791849331889736605396344967102004932911578842011586054526723967177349092249634561545606400748777035750280356206256780073626821666452120921507503215059027818603578978202171484720398586502423522511313480603081827506498843590161313121909363578611290540564392448512095349366855638773391919306663992002788712796644341032890189313899368853858045305084090867766510510676055868811825051498495638667863943458536341938513320160688661090254807889710726190792311022874827026415934214603162967160173029572369497791246304226079523935831121698672792322411632507365617360796393046723019219246164020108302372644456339510988425050278053492380071244434261790809973257837856715185278558938637694787735952955270546094870418121995912724983279344248712306417792245297389923382315773209837730071804732967296135310518704200307420140394379147756423802659488364662762057587683318922461572378361692425894433892135540636146637788251233149476789980491944190226354577635616261656014658200763320468466609807791692124846090178327693116603679193090475881902491728356084950215491931245074924963837308257069912794688185447182956862478129015001610579539087633861648420417510844753252462297620261612268240581304127683498098310922724274945347153660558842965787513627002611443624259192780680642680508524581399049198832025269879769595430832220529105320587067172620980732332546728638144883767626357528185351239750383140432897581231459191624042709175914906063120309815760635262487850356480977833576102231059585659404646976961568661194656631776565375505029602840029347444659023341278424433102801404937236626343866520373867573890080913178450786665476444589377014630054399820485529215451629406955267486060961009243529807920960327142129456320313167328015857001492126793729483453529529166483956682205367451775465291447575705539728011897840193940063948475745639456889475374683972924149470526609776385477441380138467630287100193019880510498400295065279126548360098174036704440488112466488494949758338113855544461747967186335126578774779789419673508601069902623934535852461372627738210455595611852044692634040970026772039589001681380376871439380069045515804338587387315868142357920927624755815831549465128714583410005343297563189637345495915956078270198396796783867875367873195299872225259801027177073106700690539316771750860479423416629248707273342332657166252435254184390811875949132209877756608343266360912060383585303731448117304555264377123726822071927163256670803193040494751229840354148389924311135633100530604706592989716900287468197975757301102151497269790943383084699587389034231466649838921379574771125445157802686868129700321348664986823904287704385538818977489118113690775490700419259726303080089882563670494409279144415591976904109207286507720409214066291998118918584378776289024104849948626402329170102530224117760666420746521554133920470327856517588330367773169471080594234764309644382928587447199257304605235690993544249842858199254189152746972519922406434772720530978919288312566215301608277489493493578663424784116139579939768239716698078489279296915464571847008976729221592876467295734439864751644324287594921273944330649518858196748865561900900917872785594768929688372337853818493246530259083982174667336993870316690372992825284558203563009514282034724872657696442390007300595476461509956235086679525558024434828975148923011241925138095879225434310520400747654516982971053834232070982859403122549870715640743043591190188370214182636505319561282453556606369977474839753697528583089066712876481199202586270236372229072876121248414098737447198089984731627914233790603002802560425892587789704905554661690864428050000537372436016604206970059674547113746089558194071672339027100545807452187475682455508617639142533253400419918450731985587946284442246272349620718365597431304611773783367572589976415275605824029364428916897722777324846778222665626390943356245588823937940241055069925527701118539348358841112862923762709515571965354295649820147285602065490912345407151318456770469229291596470275254818432129549711069907095594622708608333695467270494242953493703343427558003630189779108491764119016006522359920229591252034828978123669604246843246064063015212138793683263698533813997996723648066462658374835354607006967036648814348158857932122778934795257645227587080322342460267566481251384598146665406848529714063958246750776255950245146472747364156733800623364654465347294846924710665484601508302924510864474288343199284429762784257587244761214470517602106951952227619333889023641565601157042209524577561700557483168155539824331000967371241726898124452831271796139083872303862290539846398263436826370763349413060236720479010879109316545046718628857939010037632133272503684602230238388553506003335668452049014656006138142708293132603895241507330534959702161799615640998980843356359758817899812707834258468970339768662505635588532970065371756458813093739701337947604395782889234940542798439591222776652086327504796959820425114203263410074832636480135157112326620225292276442808335158746565246241294140541861668222370495649210054421715619393046643275493781118778186631753513125361479430762303848474136978646983623992070000500072221462182811324058483535476361966107771444418986624010773901631901371352549500841102258479590845551632494608268324135725600743193478520565683631235535512378272965323626901018055398754840173837834174999935243269499174719326001733449760597599377532267771088186610276802164863324469495009142265426056064612921847400063164179686127257060050962269657490639577916107538944992262075343732699780582237860739874590440205804499156718305787722365197640882276551131361414135854122851489019330827696130902860418755272979679028389323829733352245072337609873460663817635131471165106481200563616625506504218162401325964564509279458621198311177076009077744133248489215389923628515411063457647308537757634262551240600715867128263865154568069344568889762457186543055905765446752903749827230478260904206032991159962893216621301553693526894314411712606307776888659197827122793699182050202083011264785080687359661346692404950416262189143579623611922825617567160527775358639925061876033768978521531444895477423865908509490450172358186164403406694050366087540406556150711875299064411540622203442983221498005916527301038782946219862733157750046106264508081248547914746287425862794977206754231158946243227378352961898061819902765471617805177948898190683531039534040566322457745957199383553320709399024888337622326754202695296928216194608559485793037614107445345452771403303245315756147016846151145228642765589734506980242995291875235362737551574082984191478132417904679676014791917500793768617344767931082680495292962866718257519965553876784821611976515830323787978161321197109022963358020167734534753088916620858071873067333698714091996040641073425607012623047549246691170926670479371367492017754164400962138104560433996819871529910655770824531671449947254549703753251236104368674155758617561819438549612004695737676656433681140304910081076271852679391935758711957920659404864044738626442816906915361849375893517203324893387964408407052256781045970907489009298036908735692585326027096649085164654594514292182973367109522351358180147414815199319251335600474057768310328166829902942603816176906736522943717922120181961127584236244191468433641885937336629694055911286947974227278275266730992908314693596613253918169346905407952554366094722940107925502212199868956580407746976258059644470930224677700094972189145569807894952341450539026219432278035774288640058123466557405754570291062838618485292772508078790605548860485168940216994426030399475545433125945684770878407728983810662335689586266184562906027477906808433817830053801877620299918515598795022403435465503621072695655039781589478769474059604133315919888473787876974864886195555864802467954233957030483327753961528379256708616208813569351004781373578331066076775453301460281769360644604807798013499352094938886870364808274550717057234348934598375980411421197746676555727796016665388424976848300148500372337511222032491540877445268580416083019724210429100464513153665084629476409703845003300112616776772556973830142480685329208342109128922223057545448973464600938527105968140724129428176911028322883146490047266406068970925120850624866044668573133143947742049910283484404819014195920689851853828432489159483425928134111748741722894711510645138962516713923057807244264968773632444585089708146877588149730571935242457066204966048188811251379815583987490467676699457422078421254867657835723761038576941394038036992864926213890264919455672058068673358096366302073134705184760728294551514260928347003978145749375970855044646726140595422583794145475646388133549918074829827699605571651076240195163674500843664908912655398501103249332748848637163854771947254042966735759766042366679383316977763414676348503787995983314487828409390666590341007712519252775235776708776889417025313386049305694789727603949441142949958269389793757020448066948600654794437002084906449139232330225617636045970836998919462614339959897020026932003236844246757394606507923500246561517141104852690104562357281636446409736991241533817632189969191805470860597785531105603014987059757289956633095626454902894408633929951041446238494437643634898655549443282307568673873509377582854078423034716518479879878892674528619276751716380087683982582634308583331210326270799267805632613397022314471730437992473566228662848359278301996253313716188595458071853663922282279946784587635292877761047784497520391351727857748200432417358189688909945260217897052771146352893355139463987654018420536451022488305681558229895432700262334640338535528374412116523166621920300216814012342332307801747043355684955118092496743059089175898003419401387021930386384608453868812898151963785937065590690482822014020097976912702519841544751467463021135968651485294332763563873318522343259835955147924804249579120447849151650494758926797114842090650765363572596935318445580271310822405139865949926636315347365982014540073100563459208787976140029448960346244973314000865601769458588960990561724328635017959769322677754994517446106715117675279325891369974249874963430073335712660497088896882688824128732972715851864822719598600370307171950282999223582541916707646095330381232874760328274640363663043895263216850447432393501758993109447905123339336514252137075378344237422598049044502942482369964450401359680925596499006879626385240600062335082042770501863143089281194198400086670759800709254862748900926960774106544736292238910165453200492236607133299156855954838401638372384265420031237423675484172251961568672221072249044830992147787741386377714086235482473255195687847778776722368812699892787173330491624161275735675206388607722578229343243087854718866361647111795476939896307127692585957126904215536565302672265813265412665955623973974815493243666490890031057449138511291082523866826997167923662411827451187235395200403581641116776116531293918369928164101885067331428204244216990654349066827728712953401920850921158267073470426363081810298201585345668250366274652020951057070189303494837347259185615112244154371765286185795936810754052813884047878617012932011407165785172904306839887531797825942932242197062695684155251320248865560395876397190665767829892956056129262838802278538237255091644997705443201607878727017563837645992033168505542840731701014822721389727796141893011807134502463000238030398227873163909415954574736290882827787094753495494860421783767612980197449767053796156534300995822680294743263831604076350367686526942018657053264381696657335760006204918286873172503815978454962519322735676097248236869880805842059210934398325826512498404373430539488987690728368896992647750704241945876351654295388601242060392012067729995936531358581767791635419277497912878401591135866081457294774339794078935259749299573796908948524624253873251701857741994644211066248394043641928700016843382669760802935011530615507295124100270426695948933536506108360798491388080133128727637088202486075015759868384044951406552833568839240521205367721686434260635528385946426163920257913653957577427235996897931466049538806246500841867047669800364801741815018676331047599228377458888514143083045795814158415439467986966895846252290780208310714239330601700032473760247479779887016215060057271829727085930086914634006294351708872733512417693294568145073116842251094598680974475390553386007100563777157966989482528147445950089712971735487535144769925084853923059109267226424322813192664017441875382351667256820832215157667093720356476314097233658010973514863544753314701471789786431878604466668239379115840403512907312497957938675820285266022173107844296308808334838442240378009116786090270874631376501278949156527585878420181894180909977124160553611914602827859246031685309094034665312474377659255738587560312097723635914563129106866016321550070671074127853793623696539660633281661130500290320905349508573155024166876849565407753961582999825982656939582550617961823357593181169721340105544508453377328692191462959484418593912306042011588635025075298001854542216848110118224208640973715302204458672736145285924682130215520643488444095224143869404426746497404585541045651026764269237186436076302203511869361107337282920619709270670353878485576287079012086023584219523020566416991299821605022597516055285003234880915277255696353502213244258431390921919885439562742853094483980390687225230386449935493187795382392123487048424302377220121940485658545818571883388491922137297397578757434420184179959409915884828123345459419842305349302867896773244641205021093864734859847466837761277275825621244703725529158782308647325912006603669556157873743767007532542299166631621984352909616173172349198939766874864705822337585276579427098401920629814179473072308309584196179721538739137441296277369970794987191486345535222310913610755005949469913933674617532259791233221113668712592166100135896585113648235562062020983586566269510723387386080198646305723710454868803084739586768565674866475246118210400679043311250784799695218961769384721674426482952501875235044006628282495698877261798986722052606419474583004681255676860636360513176384828352955794416305858594281037565974592467579225461182268713302249976563340182359495958893396042550129675292652465534170801346185889041787607093158926362994072810890217093242932317748508058549681819829176441114011534732022099973335873499747421628644432988632382942736707668030247004393237987016575423126523982321800731824449177796156672438108411473224837928006550140744113221562215840792624006944026176546447926728899536897125312702171139822236938292818536288549989163747297768454891015009482670165133096075912505804555131641727306193172901497145709201596725721742332005799396210344742432255987783027545352742033951467067416542430246481498232661715878721736525863377608860494236183372048361606904704585598486601607363007643126080611556560972305872979702857200515279602163397906435236273214486693250077376082590430375864114312375278067033081019834823348456463894972072537587186325116077304446788537750124593097664078170590614650359427776381994802170148070616147786069790880081971323874297671287717406282540275580502585323249231886847088857995347933906003015290382859465047496894755545389800411098302710882074251407958362904830469680550190459010264633294138083527433465454346658866873878962024741551628163612820791389079855431694215974754192726182379890349493644390069604946671369641803984729570973548800393852460724473320773724180071115115063305588193865440538228199675491676270229681205512011424715735340197392395933723619092369347774646835608560113258439794331353713953490441091034579501659471814599123441183532094067841922725906516976952428565768577641570781706415925977732218440615022939339161930355002160465849666481892561250775357416111852037025063130982525669925862692897791305043361191907698446671149758549708452866908267095874719765704142939968154221674540660533625035801671856257581488871694782440825268673274285617097169394143913824301893514117469240715015473050370281127038199939570992653236235334152059250996621006160743746770460646604109677611984565464676845315271199728769667203390935262424882129491441735810804864718868846736533602451053896520341551187922675296392888214084862680135113315512196545669183782631055878282210050598177909429966022400863003858752803460397122525254390088072488271927506204873515070842460223279086383247701249121353453870342559865791042788411038364029506221221952246082661850721263440756603497998259569606859653508350622924496144080191076077509394874918982133625810023390970244946615337386435745010961134522407284861684356756992908210891889017749029739078538690331774826246207009430338896517129419758769855851064141442550839214551632690311662479134516328171417419453815426538280981581259405442503303296473312641134463128751948324516729942859724045127333187478698014782456144466740906368673270944491474250084162649646538719312495322811624478959297785145030218105048158671514333772057021764648768950598251457006608741634278524628672686973581172596091354324719853924837947989793252648636949811684850883454056616086960796350556935376401439705050083231029710004316231143546580816694168887288480999865270266489690221505347582280485702941013694988758172459022430466449242916698086285579281196996980178376996129281726624659210489646733563793419480455359744081437810277470882713190712498184598647932759639800636023967618917862404471423406073219559101359729147907214824998026793690841200912598011161647908013776488711985344114617564862018561911230982591281476395897209221519938418924999253675080890071940554059816306543370975321265866020897080024581902723339298317118044137818053735921628603384758080372567480792752247814671658643871623767536938621329218771611430096530084244359281917173883801679648685157952162935610980980133873405580621399602992543592826564325267335917087360551054177147376375084308879302186067404877115322696743425587954006643255924556200424613888456543536258329707680909641627858307653140706349103795369352002678408851890376454803229455854557980191006600581005264853100807225224735639502426835245609027935968199238770950093955072674458676694664095630877454927084750406371188848414859911560019983343627560222451515113728981356257243372040513272653705815490705929431874230694013054365217752959527457370339238274007703022402276682455169154016322284624165055610407933377063387883127794403086582851147170706518766730311843917549363968818472988025903216057544636306720288967267409008904228815198594259954961130968862800002067945258787350409941112527836818204467039527300600085639462820347710341338558825499806232778838918920856519119639218531066366475702123450419929425004415224588316617510014417112188863796562991733798404694881866492553007648115719735583730721480798313787173499974888014315912640145032471664915290338159034449635779828672673376412839985977631935509471802700738113935663673342852313609367054501740850149509413796022184026714421229519922429375556891126176807371671903208241878761848519684925932017134378315463195953486106961630007450360794218032072714543975875701505694038468791374753191615940694966329239069509079909514672178029311471367780367023336517896081267084039162635703134291308632141364759811635456441117646238764159506875302327645501306775039481984635855058697874258486112790913930626157897414169100674417558663401970445921797102003220940823089129952057964327700964545468672411461711683739528534484526641936217879022177206084974624248592170931795050343603308167629245150685089154901960431764380874361832354998818369419172515017268857864260361082364349718740335251109552189139714506105272397290228052667076971557110718115660884576375157459289830121065451270069037774427937669474167358007860573544858616824087145337450315996383061804941470845274141106542612041841617910210032678124757193560474002635375448450569534503782302009653447287245342480322988540469211797484968332515594913945132918015731425200035237040279951356473889864442293272000744026526558404427318171644589439574925947996912912386272655753160229190995548709167421106480761262590773506951747124959133958285070401862056027752181816978970805191717302139574623511468978490818422235271871006661281899314949055521062874150597011242314745651659280649489796977570586113479042618815649822704911929083630106816245925873247887461250308482302167715516494294908333142374363659853746064792219818305205050162407584763090203590909942629830423117670614871313358922542180747118813874682825603232706263014498255262553294362582634228329082435181280611721191014137802994936132721507960982970453345979022896749282826858420442939858973620529345041828580082652730438571398140293642002106153070009601843975933602269964967844074871636649419368922819541624161974394544581411395392225205808594411457137093757860497343836310437538933662086939524849391382877294221555104308937725317852247814841596212614042307739256119419409605364750765968572525911483176024990180272855516095139128077531845783225177903917822730915860915008446347521088344181670840974098443100903556828763757863624220553967225829669998098695624259792205354437940257239442978434010982495002586240156486734463531318075668173468157124689405758440232631738853517048652795738866929227182011273296547799263721375386919208907777629064172423239130465329077651104176618805156807594196471479738971203838764759092610073285802009398909988556815807967497697281977547472978942596000133584540545167207758922054798161429709552405841944902097672540666943043183066824567146947180051114511120009103203244250190414470635355588199549593576720126317799730707576103419316089347503046425140220866660793859643048895794557833753903367695527648830626786406014207775335853267403167501298563397699296814281544781638188091492432108624941409556730416660010173957230218238442907462180912100672869870406699485649228341197227463512284191385000241152201665392160661101417572676870640016253610302719863029058332306647219918065577414187932964712781271969581722268679240283684625100860548829675195112320988475712529708171517723237157546150740550101715684415426435110352877098334477268978084194956124618001724021188298860159139052121722751450838767322302681120450578237029316962539644763834712912920788967268342489765455802760523869141398169778452399179592032558193075396594300384373661474955331001069121223420914067598452781209527853345541420683485883691820536402672572248855835941427452703227920299837905527770640379528760689488342555633730505404070792383832407478617848707586370662643201710273226894867204993636756651738618627857401022691599340503494325071932034187314203649292569556630541071819366550349529700727917989285962986747712762436071249893847092656893980866790853273946509053926692031435807820723758418116965184417728819453330747554999522864202976029484851810636437673128336591799672068421703914397620268663020704291645576076509638314289153344826734573601397042853109597780545632226541599097769995576259977238449785693110823879734159950645299664801515294981733260699745397625266002903307172843146228601665626830279528983193383008172186225813613741668443025489535122440458345798278680036477804951462453320212713454202563904382472898000614030140537194912686757055062066672946803398168441257979816086398601251606642280262967176706416249501570828763037989687542103546855600155851519007643076957534399751038636083800534873168983778010515332848771363285620392878767111623793973389427154632236500855312324999183477677273103936882372514212556250544085675294687268347502590360222092038597129734911372567525349458564932394641789747454653494533156371646138429915790816213221002065755325875569415184188620635913767412086086164398283771462880883454054020092417284741194633073342155529054844877704873320422481099370221701826304720952028301577374555451841545515386852385695423483377469836154436591573143012401690663776610580420376242979834268064065571922852297996754678946423583275145004392867081991435875643332956694190937645524543625783966977316515680569137615899138862332528024014906160490716424724216723864662168567990029109140737875290282582618848897090460442787127533135323562813217881256178305082978108616774331867758599889628971816117784587073290993857491463589852549794670328769021022172859517891516040518280852074768239525095831228171411865158603621641289061876868535106908172272346838089494011569372800361140688044956893690435342281219188618445484739993191230471313417400325806219748458901399911074759097516279977229115765710508465437218151535984996360126377884481564901054542764490071441241420574299366993029802814978176140232197667872681533059140301682318381264659195494247238294312833918396379473803479797936926775574680963956643755091970431044693109731218559521649426992728650280789045579403327436697425812399054643237076768223441334260973348604576932857818343640279901763321193528993052502485758952665384494659613398210939734043023791476264533003526814023424123634684811952868001481710345193108757428716024210799126278749673768003136672040798856939835800446475263861256653347302192312301383106043346833622093099922793986194987882410256392959230822722596110897772205616680859681900379386794011743394039688251572904574095422643454859427814577039538352399997252621739991080457931353846357828587331494798315479517090905713901221783877785335569169055294699732704666339314927177824902642400593711828551835121289325205261223123867579229469532166252755700442398940493974965424388597203800527206440807887998453343282442854888039041088260242918806038700567681780781870182010566066353745309739866772477833898891465217105473279562150800395330929918380241784704341951984367227846270462246763920153193842596619757479959685725333659039241180892357536023622772985169449239789545805690190591076172778333041720444612117680305597138577193125698630846689293084119183887250391290418096649790698037744964975686020228081382852840086959347689770997843045661402050333922201977724015262870237420819829153636702682232252676991350103520227217223445271887975346010389034475329452643449313214966671313023607996397058670535553076676150834044586404910721255452996669253680391829342884121662163716473710791811000194753840097282201933250322893179967884957338538433490943733497028354607831315613541787401284651694294029963175734067531259281526168015462112301209878341931882350144488013372102430561095248935757276572606697973456692607127660851196670332246533680566058596272992185027224188838297135461275648936708629320347052865344856648212550594377600554293386091760207023925304669879739112361962128959412708956980095249922407663977699606308897495700546885632912333540209773886982992912581082114856246118522583716929833258136717630354811514423575717342439013424753040595987994457583161577212452426263538414554881712630676891296715496452709705455564728326510566387332454913337676952887540848024593766873763661161369471588891998048999141228169860244824469681016634868733219670889431829684686314934696370678809438118772308058071870731806161507619143491755666235146742091234419907297957014522920915424307572139703724868911755999019071128956410271910490811179084391247661183450906577440181659685101816364953991762841066016611504095719350551082603170230628539762473585382715068054794182638934692958403859950410873444965545592253248513016716608743836676213979264823748490194586306246775780310511999912129032297624342693192814019716849925964692494780518325797860290818448397536465401542064377423336385423927018207902968861513773650750128847311412221822438318196512420141614800242854204982137393374860311488459972912742388085492041994909535343689418019840830202056547965672622120020392492601248419157551867050108652212979074767483869559897482488790993221419722612043449509383323380387049346947598460435178652559132561044829716545607809272952767739284144839398743932655165210475269306882596404018813638691644213416278497452186732621912255528770753877425092301999653753008361994865880362243051594285467255592431528947826290431391455696968002684357024035999929528711934363468578612043656922404567611387024895179345119253376460760807629197915868363283160912616369575264245288534800034089958496574605971346044996969881059935783894338068281899485564075928229894778996188600013547930722533552488418518244938040141066597055963107218964561124734220335489860229866808986446942372173734175856997796962058050423546618710084177165346129137901815777662012288380763873867728669064829839020934768264033169312990306753864583178149273129230415830410621148376098286866703335506207193150858936504244396564484949107428411128095503150968774976422613437608906102672900450735491101495601529568182138114541163587787398312871374238219868634003640756878478064016675047974362353489506927936019423500219693774907712355597026704817721791561442586297040616393582398743554632103003062076279331749825549012468936632944594023406269383015406256420385653352205530198645351312490966324361492607836771958456316575054170663334447642400571467181848571011364503642079358607213067073155230840665793450272927217475171969748622624790595166045060099869148898402020123208264000650425486185254494901175395617234226298105484843050367112532419413674790763119639837292291746256815214794218379186747914602102534968917971784244406012549197988096391808589861801329138096464679237092464435985171006306344571371074619102024223234688688297311384625221694599959967138080490394277832464736414053960043549946725336112823562073264446913160298201040915924220673241012640159374045400331780620140970064633535740027896363935581778245051277243755538635347591419150509674391378685440811902508041415405307336583172083429755526530313634242923736901757802477641798415852582876265254306135711355872542757235386219536145720947008798663842572474689991535383863090318265479441969806517583051705030939400919765568114307399115695307736823706356304025556091645052998438221536224391297101668214358264848815917781763745507008302355170778444549887968599303113286151455941449245221144349758388383642320717239799036847922610906627993768839055861268896541228451078557795715281957623748839179623050391492280785007866502200582122540242951419650937462133491182916545785305753473182857519548831584663554672965484224907466932762943911603118229787310048607148516664498908419419794599900961818043114650649737122087722282771836412523856672681613613275770341010856653884576160063809817937799138178994292079822150476309540006090988030434063262324345951983931404097514745414350188974692290330235606679739351222583870180154615118392892665893633246822813632122210601537155180909415099057359169364215462324418229816882088821901094997703806663256766523786846452210868788871697320025830584040212255392678357989046565282383103172358564241625170696284962199415537052151418436438229289836016846788164945642801926430424244007346014007821490631184339160020467158252680373541103595189036118957889767058629485042994358390627367674427335027516378910513305539515401522893764786056389440432168589518847881774335727633814309829757329913064030469145100375130464808147525649454107239771801990785274650926680572553269597483124058804600290224689411783884787356045446078114162595720070136869505155295438982609497083652155164280455778308519740380967386024773568408123838591981717024682039645059122798511240712843730455428656947367739474498577382488580599906892453631942897699713591352529163766907932621332092434735224158967205457376499388358093376633171100371257610998197640343904559987721540518204818971382195118794245549354892921613270098710173673133180920407620394149081288013684699157064760415285413676512876880391122972609537993671720978738709022356774074633493994890227739067960964851096682251116329335434700565357743151666802411691816434841658791580681717125836656726239788619361411787497605018041123126022990815685869873330562617016778525457941489597885870749784797826882277466054038227026242835954854519150326006718593914226085233498551399817411725696310399874859090814611067798903156533219756736327386489597108910584702729864276972985799067662751806066309588139282193596169429553247280350400550142510228404010750090400769228454557776484658239634764387629005100047090351300155316436199102413966143743613938933974090105689133240292940382885389202850435275966964687677908974704781038506359985345433271651560413118595178061338210259593745004953046388343820766510109329326982013027777675841622500279646946439237958555448882999970302141482671308961284585881661001044235997361230688041970501459094034896750661919601394312417580499185803010285953289692470651169448014240259131372142660171888734909284779236875550550671987093808051646467618510138092321254735462245653324553979711302982316537559738718954548217435453405392915661526368043140030069502690886166509665169455984351935038482557905166730112427613255470757550682804727647670036278442816023541416492953736312432554726070715924831918741154694920654723276799841790317022689181015182618862694100579243012483942265381376161484329786882031434171857271487171190018543535665861122409222385715937071315107918977212350526491597316588585416111158638107217544972086156585833245831650594290205029359747386381946981652691930378062089321792116422367995670113616611565720172138986226545431025654097487524736066964735425446399168929537174840720459512739844851235283484699580276106049550631929693173609653489890793657595230174379231155639427422564255369165078837959239531644072251896314303765450133052555898729468023502942856701592949476070269397472826881989470767120236200551712883045474076276328824583328076501800145092794110247903843934660048304432939864072932280245690193352265968006592971687460184596576615498285751945687504922886192149837061356300402382298803731250443402167227077444811106375471657934994052694645180457311522106054116892815564225235036327775640077832778669997797776478703284770787597977837136896896058677874973787044910932181631367044646620335703702028776363024151082222562276297914894900772954653034111126675415436218148589360845189041188984376508539954522426104609247485257071664614964708122905591146641981138485851027408936665156561192019649750629530790173423066660594350440894795462641766676611395577313022334468795712649192623786048565924737641195609396269256036081814519455907996263862321381787890368272784128555083914748887465389429108554204176367321392796631371504436631451973457142167805009359300804287174600669300564534770463861987726696479199582240229609868022316210319600144899501990108654705543133399593567399386968371250551183117613578460175803857179335337958344254004504293782918991622434845104142414529932026568539310127880703824390543546455842662631112795518282005831324855716967949202131557231996827282032204209289967246807581550220869484300876502643766266210215852559261951593946470155822095721918049733718707857957063311038030693798994409892115420142184838445115668149636715219393301944539772528370556167930289824778305729461154846952383954662435039783627195304326375520779680721375201016142266300723625776863448052920638501630328726764526875237073642490403224104199244734527975955331764921884056076376334018666893922138602639154363725305873057172140009868261265162945919634603819104653194211170043482265265145117326406109816226588994034137916450372549216945809621305561113793349234297670327715228537961627407034653017223029641840418540930578739136595585206385423821509148622765964128397880496505179094612579355508417086962630002676406864181728868469685228993822919027626105047880982174573107136747523808973234639335703702409076955003122139013929270809746702617157671432404666487005789485933979340474243997393922978078691527934974386756348210609793566457965481256764503317146090680044668699982221656308649212211056146020965291372876388105764376475073674105855402402238058462938680476909403729463875031054440869748231292465445991740559123591688549786214639956322765759829628549885620210305705409155279062641276624142783043497636750261423015657332199864626566428659738732725490269625343253560347061301891492067744337075826275152805590349432761410211515339567127475918689260994635413607640687230364084742824748828688648911192578185232123364020677524920739999683275777840257986850117703740236277162072365441368706819937032990451140036870504827349209460929934843440223887055694160485755722551341420664718234094179634813178590496766928106540781804839157769703920333956462523294992266133578135528196553048496105245696472856413775674464708685993873362222119411292997120884135850647786373028497286250209897295704271387204707673258780430596188577817699538325685821721553832350243590641115765724207629240272947173600947862535341511087662331607690852721053022629187855413416432313902076220853921185187508274393841464794831175046417564203667746877669198786143838576849164877836203949652586012985083790192314397446143401767219816271111225148560549949560680211519994043183744219635045826439300716947493673347985249616260724166582486283007154389623012845966640156907557166010278359757542017748930226830078691464285458430379238243764339073356318637968954222040558679855311474948942593363207404026287655619356757338918173743916943818146772782823562788371441308067049968581217528804879061266437001146026573428973264973220300131336711603852514429722760686375011269708530269002396291624779156613479381540240644983243526540525333714538580891141905382937933414690565662279826957396756180811980991575603914186426241000490274297286888285826315687814131433180821682547804355579270102462620949180400086067981502250981617028398206438059369539961180256487573888916438784660286923551695121732990698141695892388273187813690792402364091679923919009163690702782588948871838405307482758265689050720383626648573745186122365516992972838046081341458714377300123776621015968320502060735559968277307443775485479235357154282947791500353623227035892756937750082014062343255236726820509855845799632327409247280154517121072311188021000348185328031871176819544981235469039583825195154495656646794619319334082561168563656096748164084527563452359656631684723425205686648028272072555318678837094784562317005483927282760311916046011669233467295044253492374597859264220019800558449898591086071831268728199096349254142805079086963518261296012486179334462949776771494130268757306487996041336221913024455137093283461858459922226680118286207954604682057426051733949450155366477311922794826833008660738056009510020671430650419301657225013108570619114689175915775130304712694819300702687840809946023951543073244984355176083154690073741312290366131657253554015772701251793854254240580226731176532460033805430965727294489607978721186251695300782308574548002386842635711448435719730795223621472212544365577198237080079512171633576852353726048880649547591810738952159107098225051059802666902569125283602192226962382640211980354223685580662506730868881420160767309877022552873429374385919765404433184184091961181830502207936937223764032982697705348432472857598774905949409361912408548136282029242056803693834210312061838226346178297369972429703851680562055205605710554371648528643049080469077146923270041626420867510769157529474908140730300249926763167373441902852272038248772204510311828877287406637520461434777554497727373146969175550005010843178650801767315099992313187161775050969319173966210573789764568181319336474083242953252342595651523847702310191334118022616503287760318661726515705972764709985176261795315704716072675321747175665709852118593851652070541020614415387916629557150846640751465136637807982499342391942260573937309092969551352361938518747177395812730578388784387671965386294067108161816149339752636018702645385648546047914709516569360847564165500993277023937116861815862548986401423125378881536648808220847271498295553240586104749076622744472499348972836900132877972720762841383491048341387983432099081220755294540492257849924974246781636394073204262184833220141496523807547139379441670262605218518998795062533305237993420390555278610660185884188509442957326123509876191591827995584957567967298360898475459889208441143411374969378899530072121951608703687645559843613029292639036108669807404190555556464833284143709143472230891432999777426664428942436825688264217131271895675004032441068575535601364435251023807785756026705721838787173606680488677496904564368486421999902655536196204137041726636555724099699108353325882252214363164200230740233362702665931862534139590393853999973214460725991217628555540192468518940602024994496293797194227702933137475572013550285414143151729580011100513826869161758261166163833327742383496700928515774513490614170532941636903844446757246368801170424823608672443903708609259589346441410120045887419271136284062611924852006205358992039403464672427647699388253677621699189290744528688357591062767607952433224150396447290409345843835008251314087043805594046133901519328130169135675114077934629177329563802413515364075352128911455110576762757579154823101918545302595647678348127756756830392657702213250934769178565741982879120638984879623761151797482247396682595420929343579982703556338945972316827123117367614038774924766075847885122400128319725423808007976258733515311029788987043281710847721898288037601697576636029530325448864263902954104320134403103192780349524661154489098376115125840203774425759423714293973762995918394240744988059765872244797993582831842199966917314919640703761868695034411653003563359653893151700479228364613957420635380988182128875143659082729366562859593529166744033501672552147806727527035969721980845599389877497992705817702425742342003852492011332678373499059250646783809110288804724076045971654147153996342598580488853340050260723445553710516811574971789722872560486057614834747428502912286644244872906236423379469858120142670936286180021991601935212193587543890652122928087148168558855616315448884778561890258595595555873400561152309551536567996181253411606517243355094713724796088097390036753408794183538630919621235819588171149647454606750523264973740880553254151379331403671292112911097169481621396937454847558152615765368645990337432107026484911273974788738629600655698587239816249162741503655486306285872558298356790564798480999967977515503073210294290528063762618440984827103148698755363979251637857821073843613771857250716619155833904893707204214357167894592188914223091391927553540677355720881354825591702863543962476989213576785761261767695881994394707143199971989081153096363379552822148502338684771559431948538099057778715731615825221509243828701197092903586827953712212794451720085804432715677519120352329910021902262991576454934674239212914856789006003204901200419312550199334921648836352818119494538672870423725587005399134007802943276882507446138064762408787460196661446149994027556736925237566195095027690051267828497684123213703222549127744289620815747915685418301697129903106606833955421920924695220822129949515543222636259809321079989425925574911764293208858777110878676149497459629739464177988487377000050239668542413695517129686069504708073460520674415033975481001808439636633490824598237986569693522269940346158831108756088290101114063021592755840536913747662557397520342840543032471246056045403823232609590791560396974775697790223270642147653528541967572202363513591704684812743846144674827347812433881901186588187797992748171067304107850719240082648380508511173920643495474882248048293790243596740582052901228170823541445406058000211689013143097033299790067614357472947462634730276106469273294683951438895836063811795890787593439871703616020424073785518694494418575983450807550325175387299563584330451599809753559056708557590101150340753221316186920650499604495087405468325865702694245670559800172872612293490330452823757933619636345583279046029241435763781192335625990948904264769308003821738963049626551020836720491834240412680686742452261781684972125903448835212794089194335891799380482111749715095639667799374886888707348769940604181420441705850994118210509835768038746586004331793990421770734452313007578284724530931392556803959342385500558045032747567322428097993924105441207376925139071891087925908493168526539777087692176332147075319905529784239170315547113656717620546666509612533240641313920412081433905089523449459672303927603476160478006461915481452735128387150315296731457619090265592387779603290960424467317613865525589038359087263345020667874024512415313834502694972147876017486667454704959740275360442207223042926282461590159684510041575744984430001916282832933125419236539218175616963043217071686136949318215571808664565211625284233846881805944812236884483051052348175791172207404800229880941682553470962398742743102108318763157139142195287985544026012311776764144303500518490713424675870729776203925042065517322648611615584341994719691041591908466565745222469087496018299756321232256203894462472662479435958520453702603581882286833903083118442407197715358394678440396207012088119164118829757074249855638028455962755255808356057799795425876579821757250610231476179476588468387010382211296814193797883218684945423110950486619639280101617127809226095943832751775677781372645790130765770374654891962869129293947491333634029541581227378974481866743258563268429099707595652402832084542769157645405983113335057210606379168798649114969899520959031233236170872989787215163001291551915958403379259662900772708653519110658211688329941203118462032896347766328890661883399080941909347543100055453543092853870090821345731431233207658965876735743291262625329187902663632922560148551058785333122787608308260055889732264753066131702103189486548255672030503345322496522354186821714523354283304677830681709144807427078660262628695777633119251443598310913058782501903324009381896897552627284757663470935763739596345553148973511357263992866439305535328942574228978301597177040582948150268151345186612966752948311768534743536255346495662333473099732356693720955159362416628224658139318685121977504411905747583121016271498740011180070799265312144856417737110847170856306393521257460672125842466936917661986044048523813780571131358496671313488919697131024107212820515361035430944312441634248969238280930699438808432774871418348427237767648484289241860413257524114455422533541239071082096254517424258131005667304142438170541212810480588908989556438901952315082513432781371392185703352905531802546002120274248790501229307070380923223425157096448498295124455315066810899379391298339243991259443508649063011741629538710877022920788930875951388803426179706229596007146652524389849846853276699928269569607934425347380731983525607144024234949905733546393846110724849920374701548579648437842285555012570334660220560254933266552482505629612720873105107834440169634983011693051241594914576785714548381340016090162122707110120606067875977519372917031717222526379128646763542868491235871846193712993446738373046496626592632384513217493709637923798775854403687018625365152982469828680603372690128402537037573234459048140124577142142537296025513878689384215742091453859627202844242418584425430718183626786600743877437537814851770018378557115234202220602349529289835568429559279057971035363071977471579815108276047799474766417162367811397447006242162456857317401691205077921690858073972106791699342593728210997663434301499118361035307410447402541107852166186316834121585521489350354964320940948531679334035180706390403955483133319841349892285710617616658866502080758674356329597857513147252643463810436548618072856546799617744204112330604896922946449402921934807500738473626645790821733076607559925904848051363168985796070419546718711384461333895951248620817360038461052708232425274170485062496972343772842586553383720968125882235207813144424118319137447268292043277877179602457645896978203504214666276969694357286469275969093060781982623946728634641606897762537452260641127195390519638574891815279186672813839894134541624809466921696031175656666668790618230962548139622503582195063886837791884325512704170911517200040236850448820088427179238447705459730869837555403433668599627765316186200437020137689479747677704418681421928271593919515383293759218589796795020071155568812454470344093250344671209098499096504779515254934657934202125052783795085578822632070456624983415067779628106291560970990504939880766986161804533599840832230725753484925081678335710359378178522379704753217678479823555161403225419321226128977837569798081600099922453993056884599740903703520697553441146580878285809942153679283941241928558558965923376599806701074718756573798946007958990857893387437213814944939424387877406067994873832710003009121644253312083236745787383360667655085014334745789499166833663688051730651652196791830831163751202016067919271940155569937289094526302255886834254774663191598103593245256147253712103868092563160356820258301667133395030702716228227568364817336275783662591359992323520147219489692105432633402757510255183950156507343060848093978587194897694527775846880795520096080499169366343338712612891062803359898420381518450948829570331050482448359890656673055888294228653161741869023922343343179034060126230648653467441025611767698031244744232058679371589474741030628941738386426625324682838218430541474599194548684678522138116313565811247212451335037339301351476936104105898454122678101974411101921582387999909029960622889998336458153181429588705373042950280881507200056146605604813765089283750107434199853393474808268040373229132761983838232846962548985477081677505400490767328339277063642064527427793482237499283720776064570437818833597321643567269184986032539067035482270294726096997673958492067704460554826284994415413740117299242010262723420522638923546821294520774502866077670475718991011626823950877879752916722092211416390707605171981275291330567576078040013048546478992693438063023193844670765309387914585331778045512686199376447356310541683605495843092094001920278375691929781957326295463056017376472042258956346485668379026319592287901124831777385872970902507741958164106952296615150645321410107043206400465150512618541223600532269779341870348131095730826807299354227094344477755264885493750794577798648778489649416491665571592362508837207344195284040890898673794328862733644085842229013887136495659163301600545772245617361138435634946556666826191550993379515790825336147028874523008597125370314204505742333215424898115948209064009198663238154405210550161053464396695437846849649624183827797971527490141006665067742859510154849607669085337493190388707797704395592514001726585024737457951816842288165278355614740522757843674134701554869646154677361833394983142528260671668369740764102209922407091625036118019904866921482787410382311491921677975640206783089939071344095620882553785614815591062513330227447504669384060529281352816148634651504885017390653803597336099587985681072636626012684243545481769679995696704782244435885270380493540865997720460062040705203395175492633180933906681362498866639792513180396047823598218827363147905017212094609347828546513230928307259990090044255492496695881506539028488947606419288844068626023385755562863381023560559225529260918985770319989071491319401398823561830856875266747219275126055901209272157787081881667091127965649794676981001915340580499008781447581640955229855411309299405312884122906161574287541098351422375735115702483004965934128609869110347885713012442091818274231281663318126575722012568210955120479024591996406807576074339643597362193618219017612107291186033556833056701778396629353282504346645545282421860965731686865278654028004139579601648746513359491502270203875490906578879616896477856834556016065564078412630584758005572679737280825649615080882381763125095439176431071912131094152512192902146251670267934718949031276033969744664246341887837830334288606536811944264248088369484586926686722337210178453554616166444767474431483392684074960154950276402223384065399249201541626341857541707198254174171258958881449046543972342434041964576036676358798129173431612837935263801590341330896158407503592091953938336144312385372732355327394563964349900394121696552621144178886050915431352643458288754269493981902000549311728259593720619408282316993906189358808103637873513869047513645008641013900953098361778465586241992984291882828340732185683705177699339618214431818615842034835627386821029376184335687117064306545162737998516503797922497829045070162611148084154860155569825118533211636599654060977736697081509390504142500413974982061242230955401381927568701136891355698314619819219892218500858961347975695373280349381783025815020655272373034939564166867453474662480403699888956230962214556135276255461842213551758543464109756555782369112863037627871289726592916261028262883993791823089434819149033844070642504735445073217304205797585397003420462364071652126965171790826252932297941696076670248215990312383500358472011774271573123170627108071861829675972054127519009750918491559428944296504426738932712611444923437401789021769300298067947044510229323887296252199851663038639112978466095614026419952997028450162494942032266224654459807149031663537247273495880287990398277617766804510975356107451718979803250092586637763282523992553110294944632389955785434444913092888489670801445265073614980065384203449223606289909435537033865428812042273466745995394054352850861984163046899995953791352793785861824683519867422955268566041949825752702463247360932866528477254321201300350579765380635942479294850360855687667642064420659969681893780235005931954618102807053032063196061841741341993051329054493650447288412220379090178336984405274299296824961511816245587812182363008727878134702656731026839055266906288589083022244155347349655443870831564619271402402490523351327453907614466413467962642221135069843871867322221862062012509944832303176753700405941675895273841557907333335994516314717730771385401698180592199225184504599807390740931347668261078946673494948524048121221208358313629323675928992420911324982317353848323774556712207763771897883516309121211195462450890122335554802644910663554881314215715701351267694469312086178193235720865716658179945835385161316002157687191513926507846214323822901127160698310891450062457802918045591371796318762488906854728365384203591284792215062610222111908651889935148092139213447376742762202056279555811974357893373896627999087349793095825257016885427875829102384927632918821791904602536703454136557346704606569170270646182195156562979145814741205832626020402847569673220643843956976837658265659368000060728994400973003498433201694112927623769054196241972959605167575037072138229938641653672488487109198705928918486817985149930377889646518553091437159798624478806906513614491423947644731370571545606301745227628332591136670010567131741010453610856786269060562695502291334091607618912517861782184911664671708165167111189886640413766800096382458362906055967184499783756635947114508451783059494585224165545226396673641620848077492503583072142394273926055660196457466833907494095482125537393726997640075479039441068678144979683520394898344217632471777989027208177988286728708751697266470880453965830710293240248161765357134826488254122085791012680230557020879742835067973292146895313887265576255015900904101372757606721360451070801707695282495214202501272716217818238523271409529514574337721815481947043522379159493750351511992536510846774803844456826300149706766274355130900576171976879681890960104219196174758390808728979507539932272733153159082409434598521978357297369735122558172370762647574375764886650017820399264818686519705401003017599940724491556038507210213250999954812820130097256869858742730977239745471179134839853155257031824943718786367343079254972709036775843522034401037618016905767310858792975182345682281716393528041590868562493574937318616813880910004135952296897594138745754279663986057548416724251536312247436938829075473323345046298389584418594997726383424988016171013753754628805598258820411417145611175468817486841434902553194624890736905697179113714827958200084860617024653820960933919883858397967486877627409732158728163458406435407032128907366873913531084618183219800452340635207621842626021544247218631615554377543423259158410727321351290766596206367176268156572118017306889065283180232444871507334405928304048772241346716075019908521822562581244206049273087727998904386904086679512637673226003444811415524626310951184507794879841658865357187005078259937753233365793201118408087747348494045637021143769500745482239269649450821611388153240589127928856813889469068582511058967968064557348311457792705100351452042137597725646301272274427625642251204849975292884647240253632216703003189368826329618900115009585122738531321372723135274601849550236392724452156598576838459144456044462722916735308016156911661638708374393139798752659476193493557040711437410666797046905851563679208653026431604261702520128659532948160591529687709074511154678328885386667357722337428820647301525305914771319144685480975201730197609532314300587383504712599313954491611558961564727080092372796041863742881509584565377060162095366153256748199797785396479897411245264469772680564139631749350359089225795519115210223157565498737462919753885232320359120046505336351148040711103499328072552507135615082407874779152842940836078133734225117637557082360301278258096726290254578124933845295205640651871639409320154383707126804575870388568214647565533655380288778796007155251258579846963170335972801321388173345991179702812908835132267696238510538859175865478986588398216518018072171483903517645149356200100758257194819182576732224603018526405846180938905109997376671777000565141318016935039353886916254095473455032395956825156814512655208167089089153876040117688023401898334551147331887327060511438052007245980817233679968293734433757306526873164541865351664381976752928050190125125394208164162448518178559161284099924706480876781901306319427520590144816190385611670960092871864229615289005195681513455150459578875595933192301841020795183027354329167961975526136302542261022976752728917314980668943293734094870746549434568139640060168623789081075134236738403196469278667452800193951298402020297977890105854825409596024557268800798587708985323414898150090375750723936237067177764782116380790544454917757481083079774946588702281641368209250649836763324260782791206646584824530377923846174907894653573847209132999177061412900122232811877651697189381410173332727703382133712130590375838308012313698743678598058730420826130137986478190756142428868638602671023297935108139081990316769458503568029172345855355200606456032075360737854655277915009005960717143076416120556981293656674898121333894445999403461164592290567686237531641846083843185668652726696791490407585604266475128978244299619679134146107247201007387309997393124000068601814447205213058852826205780156678907236711744627407617555271751368225813967541945825888701562755082619022780129312374735447854660124840137091942892272826813604800340656535732919334742721006820142881489377541244914841848520039627525525127303235459671982441645341741038602238737762075045161146315540781418458771613847447715168638221753369725060140385212494464635039282974701964681992978010214857250394584108160447964888595301945701064498814697188409370636160919492156502575943768064866349499577063681648000680754803234842732297325221967899871824702562680834431262426817361135365483057604252516989900197206461181730046886244211824567623214050320983382798259962224607578877075394792667534712351913050042574586096057612612794733456127820803908901097802033115478809266229522108472314846546472793951748259735762334428651380173395107063928676644323838836714437942255823502099064144187118723621186681325849164317782665722973126795146332164506406986147784429556214788511205124842887732379008876199254249688658394454442950681077788964879964857541452206075874861675765646626553990487589177835705560145722582448988510623986044105328800665891030029188624865511375573016504759042911990830036928259505426272964086274065617690758854105966956593344470980135560685199838985976820389631403621974777612392139386759599521326525752813726308115970959831651257862055460374702893503783814343200590463914554084410703346133839915653721776564141049832532801255908706733158962610093278494622367341682422748060005802073188958055559724923715946111092120174418080689309423995829859903683294892343105183391891976177370964854257850374910239441701447413702279094665567451094568825158819660202534227802419395760768335427873186969923252854272209478988666835649596801358972741153654164646264086329361319503122717981873458999348855267708879543378185484960137099005177117446337763283894201306759346769526302292603206283561926062445998545685146229971835231282501640243434418681085051787198945057342637263295313425778436652293955308609369854132950561931901988871898483655842308633156963156904430559741876425116888189540592371616765346532092423989441826284182556003237909194449578956223003088672966112711514045779938597490910909980141430775371230351102437177171807899244427440936891880352642977162043141314364789402685438540088753752051656970727861446600793615549464010075391909103469717282481061422158489631716527724037084748828579695111228016442924449033216856814160859434029508551304456364366263196970875701602509379188164969665023321617167902703501078248245460989072133344279083210937958200170455033759065091775406811866622948838632359828790675924390736105525995655735664217139490590638919659285027440360767079927115460247813389667844555543249552558805652329331694101372950831406711315891161992701070438496145859974015110258788787078723882863390890126685794322119828163623202254507282066141625515835273205188957647571918757250331726985918927674156244371873220691708969031250020588523955718203931618631084848412261999200552952748148055104470582447218016396060275025224048294288832328356511562151941431385937554252878454665483704943070205030557390211952659133234072313438332733104405807115816611999747770015594665702562287094609789749951349745341747440895008411682729305822924368982414041063767840296600640467623247813293497048691184067303008754587865943093088346743250639549223649359407626280198568199684916218045401908071133197398389113074712099772152985638558094534280651214499015643418044296751191263461170565923626499504730212005975271421141169006712482418667597135946373966404640597188339542917074031908815277885069938371555968455791893399307743139016744002262815023977738738710256600805367724574373291095274561864146302202627971026418324761221027564321420558671689864251469287349597241102180117226669150946748163128808321228756237678773882767985693670578603913084230711454930955338718867209724286724647892281679698688328223291278116501826172405525624559620640549265366211992276628990713317205912949354100667432056645852445369179307024179714554086672971521496256311426722537327746755722454386132129775107854326524306856046560456365683735264485240046373018480535991887690030115130714589907625673895409350405189879787218886458075669188683707587089822101138683774022075036227194781972329095115611904326360171571642633543238989755418524962662617571982648495507989420398121521065218962378829945310319083406168694421944154711823806096238530256077137045622570729591043365952042669486989961088255724545098415226030838324406487161575938555713779387809092975435767785499507770663505883734854631035614985167243157074522401890251233530660807955788802349308155230166901356048162326682426435490457338352584862004874414780807849018364387985950200678668326661434354493976007212167768641456717160943743817485120812203998081334184138535688665613225317086016907956089765336882304044414501822762259475552822504015338609419360877765180684178484718693928796738025472534724551910622744260591698329667298171824275109085462460213448269541409583871995063146492445158732703230958789674937916796334035060548175572976148508690822981664670923677669163560849071647472195101922935114841039692500085927804047989437395317358686498559134247405690758958611950534890124781426174715797702915850947662206055062576203919427480400663104914701247720225216171959327162328083205410857053094170796399577506977942949568226034711472076272697562799381087557196734426917640016737549991495950733720073992501779709852864618548322954541499292103664692499976566623191919765774609711636511809101394589933577618897035839130237685297240598283436006585327299140503994921235219100428929967726018163972208015233849510018738811076619486875154185210014086181916147904566565214748738637166240831554618002730127074003128235738264687167629271441943526757402040564647975254828547526392666732575386731063868222967190242253464872085064482812129837556661297849325854829789849062629898684986703000806870840439935958791289478891712087323840638637230443585076718750458318517833982741576088213823474840114494666311630601351531808599482475698190589700784691062540743611859826260877650827829606984581444143097676655949512789700494622633410748892145074592661756224111019649387428847212750187808664983196330320768410028261712145798223796167588118651745438566819062021991237762880928719468338909816834593139586668507562384012440976578244117424832615363307589815009706027441383811316752867815172285200524953316392174738881403725467092069064137749338309575107160758396771424906022926399410536888943660455816044639838845208970869046038223116094577339016907634377454783931306852682926149520994507716063538607342008545408580104605023127174491808088098078188679256780810561098277049525822213852400923119699660936430663619193000289283479125059540811966216823049052861744659132299210468426961275476557980361216003530974921313401505958141152989814499285836698798537317918722546230964801693288445534442074319860162719273437922145018337256663300183756534920621924592751932418807553146811145563907223798775717575249527745567974462494309964673351139735676234940590524726857349650181343970708851871931880773051025766732833344345596267937143268823848907168894196985778664372752127634395054661848127675446511667507359452160718215618412267302101939503579730128208937690837377122839573490417500940887590233569342375100288182103227634246122397761379940771486968939330847247805407772471220888692187598752923193034161010657374127714535318891768084029413593357848722173764451324638303325758808828230831044209021840467742735032309137280896572505809614421874783820768019673819097583718045930179240573271923619860382440154608030230217177011765613870340288034918057159374252907486514766821660261339940796104157705067856889170105670012592748058306647151995483511487629464088828772338692658024010929863092458293339433724430423162804985909217170519414635923597690789974539959121093272359569461734080621962582555882448285381158160034273326344321863603595681863921952538891668080444157404700987546230423288522318492268078332277691749628837211867286451570335755881464769606497636180596694517121448796717408718191001881309986435536597130352564330549195115948225745335227825766790147010729047363749384675461341883057390600595970553872563383447202456575335600059510722986543235340443090577342208344034791662607759993244794687318640515903186900662980086868242152677977465771731505231221795302901423616655288689401742923611668022007999388906002664883956050383605913757763319210897343410794166677303579263902745514606678025624551146430908771006463013702569940292168914964906574621844441299431863076434982864455180798946312407671662873094858605913144558359378616384672789253444004446001887960766869263987517054934689306934355757573962629450202481575785586463066955328714831127677105079375455512681764920511883551119904281604603401104391346046023571019670122055493174132426312694254473541626191022397553136700234069560612528184257957657948128619309173852537458722777040991214998646338493120546047541180169407328682629110231000708364060237299149151815227394824531489740126198034160890258852576283477403032033657974938144971288184155859903602618076800015821393388119547546965544852533418611620867780365785586321860961467261393478384247875360562208579179110239721207335278331156392359844080758263042428591739858277677819480676118776019566460727929861124763392307242666661566886331306803789797995978886466072175285261743971737448907839192403925895496797169850558854352438999961317905758930530740825882305207651135247909280394996477303793254111521355925484039291018356344304499533351131331439004739187566875468172622203019653288575995255881723237408440089017709732972084667728976555255063313042314306148383828621878571731254499398020137935339604644421502842917341929064986399387885195043967448257078167423976747269502050285689540306594921834900081857631748039992984037038841676222827912736953963384558027624704580492820334099585265494343265292550394733791546131331689775009847094935914397229770659714708100088339689197690749353664506314073393987278365621288751878432827340927947040569632144705144985821432850259068916612331620644055673629746032786435930907218627728462045713301412647643037966075461117423748629253091974578246890172599820255180374693165988858375043321537023727230678055459205424271013217546409185552327790545673392605191370324009088767676450445472215236106057233618229674330755685222487348722650418067495413132998568890271583814972292351571350083132857458933888779680429723614418275246121384665904440771303783649071092031587194922719090403057739121451452361896755437009296095799372774466344459449238500296464601969360854447572812144784162223555057004921555874710868683724951886443411123194834075860048733778166848806516400405258065344767872732380778932202565004422065070688121160249818707097147204698032057635393611646430651668790246330061089067709436202549951240817264450824735337719910672995495534886732589589314224540984571572163512240764682853052646266942874829853603995752250029627441459458378442349021343659098761452572873499169331086258472909760705572159016909205217871937343131189672376556900677491868399891860740621933615744420696158047819471613103781103447943131030038583886280718349493607190486220260047404870043169926441141432818554860301521700308356156806045436246799103639188659695270013111483109037371268596991175463102591526441598084207427316810988948470804071944207673448548518534278972526993353793100834224736212462343636719148297445255276813787889700775779634832417100043943397980721295546216846457399010452026704164796259245595076730840644886872392593632832552989725579866639138089254616229031642590297161825715448315456596563546930131546877933734972992280070832052143358368910395050744882549190734278109848712339470626788923996675824296063569158254525715368717348102149710521537658282119067965090690780073232369690213896721247313387241240017341501033910538523752409349667296975384438340840645946677469425422996062317856725975187411643892257234362691823333485097857856841542725725026267102352293846234711844058370437049010073450590487238291258934657311557703207421989935516957552717223090003132018335435491283865093991412252052610196637976452559431520988866201573907815860906968554854905031972800744726740427350304151987633091816285872182403813081473918271393892318448329849556703174675570535474738533105342191060731099634695471686262627674909026502446528191050777438098115307187727331821527998340936267004874724155602181941831112353393669867953723391465509807119061182950673108348571188250677020729395339913108051265887883585836158368681955008242034027686267538064418913243895341900602115533370015689653663197146872936195907302248902023061613594044931414677488266621602283029185885556406397148301470106038775753075682411627768521922076657655731937177983811474217035702289392881604384526340916973988573774689816486868824191844327912493507923053728132842276541751428312241338546740086827734689966207632269220280142307789932290293252428970556191435302257413919245347148334313651057681536700021239447164656443755009155909774680470809993070413137027324118551858656180244349907910559329910256783178350677776982894197193054351519199038909375744197881543695230024743080937122727370041456774441659412882258351765699548872212216482284350872295549436821743131499468836085635708327377426202293385880641186375231596020061709659151772629383630747084388582345264784640438589231134980069451720775483360902027235162324551579641243614089675034557065054176666614136025242661025284946902127342472927121279859050926142556940713649917322279574581403778970659153907594068750562350045710944262877310094493333918499476913970782648899912260354641532909758731847891692244237059545385731158151970629230453420683563435356429064704705088750016705513834336410129499155045106241590619452594201820464073960707146924198511938400187223984914375589321824558040451748868066229500772193774172870322734462598197275454759079924737486741302480391909439359784705696016244437182705567101855033034906055535915355405426952808668612352844877273730035155771416111703409001368933710468641749618112070450822584669469313974821095129710603443698588731553996028957535698950033289786732177399085021148304492387802422421322438661715121730526322222208638814808266922696786399394542481142577062547667188359586720684074438822534406494554931119059574874878423875967018244232382670946268367055358106877163931802100867269673064857872400220187822832571770621634809465245294416983011649673685713007887965776518638246834782162107323886012630929903527655665478136870714686678133518712480503282065380823269024354143712520279663875826995499455448346150122323217425512262164047628078959353130778628698624238352522296317373664961057704839999352907744548427364473231553093454418841846375841260502096187682631214627330860847023543944601466046196333757258198639979746782166089146763007285455301162133617570565716080512520851735803328056429840301898649239628439945125909551887685631656576146706746820232542776263027851089339662504033381753952800843796741609898206372154306716818715648549879271490394112540421568866475311429520878796207032607562881070075471948211313388737609929188577556263426052652382602362565621058591619606439138516142014848388075272299029398508622684969413112920255818325848955139835866470574406323894472385943628422120098048775078825490259330155105600260373579585102982931540772959338522932869665073275781622657620733218411359146203111922370310941500127940701428399759493550891369850560314590224732886394281731855482744269999157688694325275333256337590682279471900657556691489853368626459309522548327971401806709270853575190349520730361379862501816294953609508188015788552620767693130055506873365902250735673406865739009029066847304142756312536475418910317338296662002814816070011438837791949071466926784304508141627155012701293582727602175754383297591719813050583317472249160038858435907919099432609571511585187730235987389902338214171763129363991781685108966701453828664212660358744388413852057012502583862243287571069849478547901329189609847442059055025777152200150795340183744755102732344200014956945066440072824599917444217704909273171443544587146421345512366907754521250964359024143070135749610916962079635027850499421816280109304623934785150237705065363278733480249900488660047122294212914723400262540210942579733764315027698583456681765183876846138847988231204280780988770834678605449744610732211841215497483318090720701395119426712744652998627376716204036649740138362111013888132453282049486203508664010031079643644719305020357202054597555837641345637745203947070594034444051224430539218710826610061262958229469562001452045785328491389676617145752220834585211851492377340746892864643402686210360128692630729456008122618993749789076305735136472214015813828216227679081338001620632064105769763226255442535220106666086173884648109836328654761390280406926351287782601731675147922367848429934587067310916241259287005581178692705829203136806916434506146790374520766294915752205982080464704862623596123600526234723969985825319147121210167982921239594274757384300904832959901162749967987336911617765421715613789604251848494674475426572973211385733624877940441375198818987479546499248339188325813473990369169866890348708949550970202411161361760824196036790166670390034351655122484552351459475169856341340161736099389415592282600203029703615341406439501575427094491855905614079776549463626394853214789488048224812138524406296427573407627572005357206796023506400240589654345725046751033327953424336436656190375356134464387005365832634387074771248989105281433964446190292727367352023144911085248947671432942910646084674049441076608534588898071816274579338096398666128041096425775394097791456270517481985451537514631499830476583479255928674224651489761456541372917863155397636173040530909704744131613868761553649613596030730420598889775941428391778471636471402706470430568002093823112751569466468936082545324776636130836716285666486456659048477098546655335207784730261221164064260426946616169380099354050011529796162439789173674836313450800230147133614596946520579111968465250090777601712703168247836895960948500650991675335167405061536765328698818780359393991682022384070112322291985141865970810607630140217654853475530132489527591268395863831566120416466587425288401421008444007367322266957452492911858695907058480597603346742503617817643967294037918647897629651719029359387371528699971153005366335679498485129275691123702453279020514688941130628170653501485919579458510473108830846172118757994992540280047567439599691201496163090969529042186877645519746688856899849373944617832406735901914511780540721597605085000871809025432721182339254747357010584806054867718663426943794229423045198720095918116263585770838137171396086726222797807118572389888427894062516327557098147325211333682631857704407780888778535715932048967272752150903213902370307695591611995463143799401406081879495377450545802019418701108257864194415704838631461344241720953324830626897161075193719903172157567961637199420114410435747379933404022721949491289271834394542884425945619867687587091461764426835856858826134239283294411895402463184607204520247105948048684882398671730222900152180796471993999672000401581967913743196908987502576378067740602483371410809196206501558176023477476929071873783049332132724127324376442479168320661667584664053506107915393271872207520221550547491777795304150895135349910423598521112427656829346813019703681137133612716137939283214873742241084041540774745758879849807471224152388261300064590522629344528901688559620421862855422861871339545132593552202955492500131384540145421020121856400855402460150410182366665798996154076105357088100173955585044652547606305879707982133841452071546867200582860679809115218497331574253358576645960494315557329162953599089164804196191982722968785797462377318680923038516413925226696348069784163506438544455592411817004317632787914763963374334420947781877128203163503103783850025330959931068513086026513280633342252286142761394018320294487934251849153804896476985326547259676274953780444306088933633888687902251402441733062315691897727209907001556577396659421060455952869700312602851687669781431267629577386400365814211225641776285720538337405625117011727126542907203393799408423080091031337758298599353900090105994804821689272300467937695595908565095929695699236277386627872870087645866728353746389055680953698175717437955400065858953672325286728724634827716064712847334549650126401426700505388680627166853121191909207418350389350950746197684864281871685474768112440755142591389565442389382240578314206243906646202176094355086734932366004908521511777069081779967573051527273555656744135017939108179440657663864969981600260900997831404367388830963694904334201739832674850838382883161857119282436539780996502716377933561153307518712946865727261479207627893943447594686120057524406744475173193845017060071753231579579910866374130742445790969838644184801693113704815855389391103896628432744792340178235351841945454077160086019659798662705589610928846055661855171914420951718344469455766579734469416903804753922181400662419565815758370325553350591538117570668106286555860424550720263669629133421420618230642675138700909413571731099051576451746430036740516915312399443388510558584747183947745678181195173151858172821128000809548394132029125605912482476369180417285137861854171253721073439124132841833643119402538266226413207520228766810809105290394932660627298290216035837881309324631245532224499479464314494906293339137221217388487829373731797184901731893036473918726068173511217367092558671700824026558924692721737670436429157170562184105078781754291473780029556293099820567999737811246059784581194728595502275364656765935292898113086529565830952396825794009682840745814609357590558612378927172833652205573035033311704585113136677631573020053025934822165120271184114719785859667071820874726621875487053061190309966541877422071681540489534358836950653345212500673168793245676923616319521848976079868334045615433248644201284607153309820217688527558008014108319274902111597246407626464366460325682375562150059182908453771370161032726468298825804822222797673968689467640658022453039233606505699902194428243295297221643215182756134943045658471882446992360945298815145574589803905982544562939832007725328832091083448655306747418401567382949738910863781534373921015138064517579204077157973633671723575930765965867839493133172296668985964007427538821653767894860328914862782591911717271094424291045089052375720013255045290904280675400872204805410830659446692766921307194495349628253218217909321529263781139261613885083357935930731179945917184750381920122258539987367597230574092831850686084849085353654974770232490115877912487429228778008472782886890783990657599918187456037607429894072953446523671716621398345284179458903079934315578578202907728238305221522941016364987783252573553091831973712167100629521119932191909908525292854818912718668144274721133569679232511712856715901283130728306560140321449506650087901386602760607632892229391396249913480032388756288118284853932931221789835267172210935423619815993174346035509495006192486220764187545268728067383510009031713751543428529283006681364480810490333414318577621618685249178161325026443320617875686151281718012485983443726951228776398995538341329884839555828993471833072709795617802927999403525961916448102706344095077564393580973308096605200587219449944547036186530536735000797899551017854384564554386401474896995271062483103529264574247963439872429347677212794930925270133864736664717678838980815644117581213371676763698740197918257270607122162415975629068080427560794056871620846096608286084166588621263734649113162874241201230438296889404037423617727772836885522424612923164039745584307585016605123044757216487686114702336235164007048548493812290182625970119108461767165720590585330781350106575447555785592181258800373377921597648790368127853200552115318169069438386016144675910364360206507160525248920395183428440123073278004905324414424482226894476574764600029117895650600652658480958281401735670610615100604997188462867178626809112159795837325344313032028729883435069978330709479106822209053717450566228866653668871815495459619025204872705246768294777871780136458799078288107953781954913150612243499802273060161591017009272102459103292167455876819719044122220500515129096896393051711077894623695445150450818960078258490890843312686155258161397223176035143056285018705168193537254727108167260291271857893288722254052107633569365810298389228227672819992644911204679121111319844522878554141493228349327665609425051029598516196027808267629464706501254350129785849339095313920689209166320524286688781284670005592166008237287499528339162711829757818581021061393352173812462918882356918526653940189742920087292907106887131297342879592593064983179674172204855640737188589764188460698116799972968098129780431738736038744081785937468379105796070896960987488516214334999578395608153859542033141108784340973831591185115749138465651273822196096842726823300799021742801396212094818610293685644961781043598852262507095953006292806973864810358295082083769284828769994256561948882193735174811184422187310525172327959709026723842797267505678533605746941146645917801035099460100564988889196417644263151992042185019171341508514932785858256874664144272938009237282974964509791860682231036943033785981375459876754052994622354186715094632573645139526432359535518180645544387371993686570828098310345193819722766111380130082973342179416844807401795600730211992075557730786353096966642997072738951864096461070484564719661105127838009593974280383669156305323926173562286449013370590007081818457373485733623455993589375085345237545803178647307827437016198546886380418149244592348950299766858870984439068742692889443744256641463970075176534219735806444552297900216443520449210156014822126299191675405385366501590814985382212343462665588721596223742611024668982499843428435806194787475449776082299401411211441977912114356470292891372463210036092256278381573442901661128114145960895589457287741537663776461462276431899952174534780570933314967980810883418296508771968558312282423366618191629899828189280303328257732716738170951472349991196005693924244223075135164661229432057607752571439848389120333492667205844273211716071918235026489124461125507618413273167165309835376645361893064053840778472745571943604317386306806582240527914135343790973815688470251016576491353046878338526828423552261902067249129655549984771803975535309104109524092379974980503405626652848482531732347487483140689159281877608526105856642882051902192087188491050636501238146177246178912864489461035449785774307728771131429860252913577360354497140269247697289929705852894134677558364159092640489667824236821625721638278908412495971290871752475113749049207084236149128854751287294682448604951860673492165184430937756269010968161576626723800163652965368929756844570683084297016072229272826382266160621296958495736384616095700944930409332110534543964436358436352870968518392795479696976344543409494474637550318288848335746769501059032380525420962418409451849678879835247795585622262046160718078239187590892327393949198493377663257962105876770412989801383111860701624532488078217475009352329026402604157394146919893684681068075935338046798643727731991706476323087756362176368506654331246612075141181245787657160030841068803404332568294177462998883706660933069621569821388984904821408244905121748089020911869029500657292945227414267364755918619463288001893807409707564949652017246926654258307251327591064976358483640186871097141426282555729892355328870729093210226894541206876647924791000610273223192145478866668543937844600051164014019321621406770546555852885253636724712178806168301409465889523744660558917205847208403648166182953668222659842852560625920066704839556612978570222724031132307005881172895807922485594529940301272165986876296342818753177502734225459832219561010881563147169917460012404561800150580373762778749711707794883551493937856966257548406598624733058310787582729913443561077505375598376950861606143011956045242970657449731124022407320089697928899656703633017222189218325645836007147999051334133018131662015062453427131300602076230199709696504703452605989778036681188610420396855255188784318663689800847498847542705522348187775352197728049903170891455208550309075593688437604173569683242928623672413973444426475721673041416158108849230336562902241561407914001703723941153786741818152671523017302145402294196219743057378399489600568892621241974017960957951371994134253534084780633946859934782344374823679445790746170199649683689852814231515520921734269923741327680940547377876435060593735214807916015205945230066570104105572101490159881191586630697205677470686288514955485276508132707196807491003136496045557486966074019780969899121388366234373212104567209511351247014552349938435817304192521113991628958976735457844761171994384715317137487427369887572532847841552246455311872931839090982496230844147097062463602249328268154188005028499347138837349699534306211063059648435925848572399479252128988852449557940801891947669842366190668963809419299487260979767076849717973698977376704697431802943500767546484568890584375761145929053381878624035209279291047223490454956464959699444920815158405073887312504118532777373293903729249958809235893613042522307464865915004632354462861684915113700726808156831945638818839694849526318024269233295049461408825464413830038898792416607596085737367745440396080122407157763606100335409974184573296372764347916764912756955891884545543125976328274874781735511792892950924311948973277415196508959142656930408834558206517693740740344062147975000244273203947871462054552448062580127171567898826412780693571106768472075049020157577014072933380165901545727958814661094446327927941784177003479789517679390192669880894655901155091587594208839099046815692003272837305668813890136271299787857024702729553788327627511512607607604136502936014618062286709025028050467428358787121160407605300747090186578018376939141246384086262889416625518038871723301501299964757562624633738012640685470469587991688369215030626926763172971729866470131486199227404133772120697914829088116753444499897737464922020599681159454371879900239474939066845342801244372217360679214004509277390066216324534443519076379243318820080180157446716022782350001836138606346567175882614091784106417212730199591534212625430065303591006251661715051249774945260852983519106873062905552464513964107241363053054247915594291691174584834965600732780952251426779617133335628998610767781703990298238938532997353026669343322000521189781425034587272930306170745931718922539152339382174582880090658607204224180952038319898164844308930370111992566314325583985760831814468927865425468522881018007130391842094157921678774378098044752545764893446944802691830130486522789162389029204552978505471503577521223680403731926991145281237588537102081413326831706572872526504559242867697217691851137736446880096170341397215163518450143964962107358295185906589669017223652369436703849939464334050738224872595867079537765577133236095156780102960234754446575556462243558031648104078973584424006252752523268643933915768698051691468604208147378033139894029999074090681208852657201066151963123767656446519154370476130571316731834971411010699783618375089908702344361680248735265407547349142702441918352410496568841150724352870581227360198850516177653160459090956580874696215311420498304264717071038141535961818795503682088047291097450183792896419081856989126913263983867745478102412261524976939551932725412966770464796934332468886065203349789754790708988627606941376868753720889269780380423059553025846057344819116309161905009063990158504011447736261296528610227922457448382691796306834681104630933695163223334102246341873065275806273408716069688435320221217675636403945935557188703361322183285372716742035438268527074105985562517377469355404799498193857014243391107613396602531106153615403488632788457361269394307523071600750876629400005558989826323168611703575030849056447768328022391098177425109446359230481985662238529191756634153783328997795496278060218879894130465989091841186971947933353380808931546918264421981303140956437011567159483928139210822933194657507010792943285246095186294792559665088958401175452567924707670486140476565649166378110618854804160915235363317534767970675952115119192749278957795799083842971710515195459655416044362195754302900202961027381218797352045871128424983484455169795414922735283789841476548826235178345000824285494366002328782386226154050868683421816679027700553348084585345144372715354507921401349709333840418017135226962152361918951830229947485184203826670569975628331405904808916871102380317188851487978379856153605737182382473139503713934130360863281805964865988621985467261131747437155450830036281674356361818502537871720366287070316352916550793986350019426140230394730687377918570924634910557899438660636963255724428107146393065071446361169707551879621340134189705509127699930711612402365971180022419109997743026075027079793551258953123921841105694941119553462517690607318074178558887129868704897703784589519165540454307857574867631107744366443329023740816638655283678394231024475181771791472187989081369304739957301932823363075396566182812394202448332421564804310228285282817689748276783792109968157018212137981137512139145733849849261684470054080881585317616958644376448061989475384866708848452135492460711817774469369152915620492356332520639822399785634717370603868084708588208856179478605866017720878424857713734546414302514957674806859475458907347596065986825117162687096483459341052778237720847637178591305990216005822048389228126861051567845421394809529469417570898212955448434370345180128072825575985295837152821390815014570645020919760832030112964102881626978791740316876950032607823499167475597482107367174986851278177306122887586077538647568827724695368476548947240415860732260395456194989098396178720484100808109186348207529230113410681352822697669701728471149981753817005295100416049674516923838361106200956903648642748654194124686822041867710443655876321401193356873455242686522955156366412898212109375249091410025221199225379753445142419741483017256297085753015299565838303206101035485049575244264129302546524698301117217421107464685194548722161343423375370752170783848784448896474266566747702336732683412101593304870451947931488561421938247637569404343637769340320445756052145295175587815112279842915927995869725036249491802156119288159007514222149000103404244906915087746730743794121506602408516803410633725993968758913649350276942778635114012940634602715541351365501893535337757337154862253109982806049313294432102404544824296855216294127344793107357707824629324535350262966418680747165190768642916155828118013937597280829116995435129797548962082848976515660101454192736023872999739253518454095621749967791818678349536389609018815264119648646682882751865886594822305149074095098710074158346884102213983912683288911403506681687146894008393580261142747466139629906133386498033538010379835027468796984359606946072781473938916876538588422165527849304314525097813076786901556653300168841479007599552504680087151122144403450138933124987096105190089965084147684051782718978578462515581133006201404530123076827601645980288365002266352855825197185778655565778952324771236736955958726879712434459847035891118970560464118453173796591627599160190641062227218212365718640851760168547330361388270925099399347527333983978999670023228322686091269179903595325462215927647257001698210739723288718717296249699856350991641907719052369517619270143923090200012761614595078697793661331838562913567702125627208292950174902650707940122948081831676612894249054995052177382043235470832199764080828571525709635285527861386232092881648311336672812525412914285452846893406661490549950177130840924384038817540883424616524756342022727727034717283060351259027458917995109393481000149039629443932671042519280688732979193311544034041575630538561291065285926921757930631739986016858510953866092567882828208714451341531039369583206500174111464222115716232794455367107666725559362704156395091314461452334566198943822646574041535974110284301399198447603626463004874688957527489461410968314281158292390556868799235916561503584211955979506318892237886890099079272024899487419034756195654381609225603024669021379157504298970419317792875890853479072393564556722478826054735149567678047162917947372554273755460449400552129486763732773740701560001400617144952815644776799415627311033167831783693931761529380007790956888364196537120612169476645993749032861831767472242994688908786191263950878026803906908423922847926221039251315704192197260352557513699102681249420546404760157490849255340906943570490056402706786053563788235447279981623783487810933098790688276314136577502376564812707337596041638382223733403521045798275093345434775327807165804836489468083105717365223506729335374325745987630514403530189424836954201561751533043374484839064811639853141046742736650090331441545738121683452021405436172782439720308541617265029483044256085899428485651636961362359302341025701868460602105754638584410049485247125313350203475485619268602228895616380991169866532892875895658339820208147468915592499946918260302578417695132064297650087767097322049708853117092461790690134313973543235730536315295204023526556671817350407502298032309561708841427940587852179880694132848165605132036857989603352395495314312152056268104818122467219934699827139400551330121731989721784648168628518586602931139621368906364864199417267444613530926426325928369147612360206091106961151380045733354393522941983251822890534692447824525735406812127797798292667572511339118321039094314043973812395000552274450376258537568854493580177182420969944812272221380612619946053969338408056408804047605616852764658437813002958725769347358105583020118933533955873053167274835091145378853451391786663191055894381484710231704391890348159007010038669569664452434136320730960133802881919331808073693849001334785800982362322183419558731160751469598787119580344911619776956084495527720738491152741706565724767328299926669435943243512493757474743769602303650192705910341629838541570426913639802999047500774184057238147569444649075248898860286278704022469745190083092691324455518917443749637819549947448350818620259293423628061015531908839975249877472238264948304504995760293228372601424496558200750263076959845711151468777311745901278014747968963533422136175993448881902117362531199433882251302395380197663974687221864651251214843351617159925165633274531907735723455200826775052417478849524412529520150683030827849832941773562130035708535236667327109800458856361815961980440188351567711379495668612480973576561906760855257197475619352571656146169025819635427143409502609344021460957587377072279590502904560214309230396707575386703633203186945767725562516521980769366188403931494809894655076410031978722898366531001329526287662694206603925564337416707847911316044353657008667724868519983214767742765761965702832709182242479654087046685888996404390115389170638941135803097112111763447027688164903835346042426537499394142486226113730168956393596104907920261768863095872383698440504752072813476904539570560886049432848361842168909973096920700835770508822490243394506380934645330234223101809736800393777112077120669209170374941978671373567615487673668982583189214032562805388363361531594429463638592367572059238374253266119531053584195213532657977174716669179173246713454773374929890696285092987543062298542121164071325599057310656400234266176799535653433488219539573142814350482095428013703090760405837983446428568749398696474089612046773518438219433260418773198098136399917066905837553315269557668905129933337724264296149710949622735958742095579981965917410538281280668859495867444595211460876142231676448302128638411164230877960680792029127834006824661646598525419023262506615200962003341941216606976645108008649285885154416368302076045842933222936630751650367897321251541993229218266549675223279110234959712231996291505056820369701502609752207562770045874560853733141177036857307904233116094885888009668157837579087784520547466534826385171350820573882152480005238081454931463066028389998791668817223958701064691714385867155821345391803053481196415979722089074703717768627067578810369974438602511979437324128125891367042686759876752210791766025304272242604043817453545478406734150184492584775883427955743653142838647614678011020360966036493866309048947405772862569043720555907966666141891325638300381258455819129152784664618884971484716747297698365018703959336820999101470526272990899870140456638477395357872166046146985479817048213290683440335507913675110805817778910808419378917261193661627489108441569539925522250590540902340947421277516211065290110522933037169263833414845347237856976511828622609973742976716533716213055111417005245957421877494088585724925605178476059472463799393532289379141052927823684075124644902979417800460698999617840995816129616079979240466285731725097893949302807517819254078480575007606987463067313819291156780650210342905366673897044562345016479809966495394226542213330207924288899474012397771582163661899325876511711458800386360505959367902488562824809759298592263689099778541947326188616858558285327434316668433415538377264500931750569991758819877297260552607786053842889131770143061916275026074605059414447176788448749039499035069321732651533228852710650643763297891075139958407873779857323543250377694973978173296479745800530277638296295894499022069649275811329589799893293674956205804537287543832454286882877957047743663170563902519523605547888726946607595674080295808224009394282031422599749182629058766898220271860959145799211713822206551145946621304897658664635570018984450681852552822999901670516128282596217471404721662743488107568200577978329276260547863471571711209968136882203289377805316664036630031186761903202793235738090797851097614992513487270024988357830782435070720141726598457469394258516021920402623588157070977833711620532885339234517814600820911879400354466431948762859469159411197611589778027510911721056865184484959102965821853298980485479626095551829395088457757953445004029968017059306795359153657885588312972429860060363562569838873129639000898643875164928373677029506102486263872054853483126537264167959039123914787300827297621853068002035873832139538486912444644149606981862118152949699485290339737479573064093292121219071007385601539216346586552337408055491611846091398324899480714659598271540708007022408234315652988860459768548200775168305013065473541456509491242804308341025000590495803177990749461798167752665392274480880872468810602266395367968830758688774722446099577587076903907960803715387861384066567219306201615028784671707639053959933771792016962653828886583611956206219957015527793723908291265024021129451590118683053753731608212903729538627190350695284475765061611008126010234790192590118784366092624718766822402792231509723309952471725941463183491847566402871842796526796993226142835601924834730423930245909148820662399272610369813804350448389849505724399237545763286385592431431660509153542088331309409196196165641988537907902736577543575238852443549098779259234733545482021937280489461866684136289768226793208384859330943415037398946384887933310791518616501130105466598690720757267625729833217807265899807949947930663469179260804551267062071730181424483578427052172386133512946973263641588810978024311625884838009611563062034243099740465100231645706911881855156296301554317077422592374828650533702922337546291336944693978448000962178836032008640415587752371844810240611100239419489929663368156215531650437394295334166125528076116326561351960048020111633296764596132094970113125959102789024572726068791178857170098717365416928445562964827683300271056750158849142284832233273111514761327536407238641447174925571433211404656960127282645784867348163643101954372478895765276133134157921278701989004393884569719803614299583883930631361135379727183891445932323431157102183734131894910746071447583399362506845316240469140291948813337834282668663125583779950559938207923058877708334957757540893344158493290759438518434358334193340022847465963422110898271696316057967980311316861063192521955591181664032802796822218797430541732270939706426645346685988083040727635529561051195795364671436811351032298743532279061689727952760692443949451584281897644804344791694887521580040558726052534899009471508263104469334422533967995235869253287386986788228513926128151295963686012253728893725071570791720041994557492116621357080078530174637273608934638887518177732514924508402146372691033272689763206348919428282636755152693409536242765079251209401673507337096898171926759571069590640916764345018468350203250194049409601779304605607087206263565040251172534198190351070998913410945517087715187639895101253963216268247086603816016375222492886387060151357069688545642051906458202088343128845986174376076393536395006837513594604559315446928006375805601482303348034466072350238223735229712272810884219758822537003997038993624637693677966039248844520838680660678718816966463351583384945965087723696493553978259921038080435180910480795028776269089578685962007058745506082529042569017293041340908732729709461423087275255848844547475685893784948971960034053968511659070630955789471736649956003064839813770527220366106892732498513365573416100678201526947629877713309515280486867624057004146499237757524605425330174393924111381458673167984001652467338554864243476228172413310894123002637372456844467677211166314053942266870933148647436980423671642153107434064543146688158646838430106339820456965832098022021786135205231987745784372079261531660721779002247938184888994434507513192983536824851398082538576803370174879973320178108188650678321621052846603335213941632558971668652137527989090219736215524372285280410145159085509435366190360872933704731067116184726193491341596600864146264197340188552047992957655762759170252613417292763834386340626353939586066797039233461270510464579178200095504113066661431105475326282425368502249319957435839856440603858703694042395395087158898676280155127669154154550154218846157627137961803065634963969604633601498297680957139853749408355971033905028383172625022847471967733601259804209811672071351682861684161782282092226317491959305471503816374730822229858877481373229914968831978778796351942689772975239215407137877094384827495942609324969689980739515625439648540773778008575849601635401750742967463130387274452266583980890311743233615937401930038810004368654495368914737391434980513915642166687264367765665181230202944299243924281940285787677641118042967024841719548271547356316203994438960641644506894203307792530819020593906829284673461355712651072018453896452072316795288249328161007193296366349570875756265889520713632847506271858342149303699312710092749996826181194544077693809824420308625874552860430519235393512239516988765123755438547521805699671778222527079723019230011752995528146888459473322175399370238649100983464872763169512128627102343790471316865960269223502804949639942867653355316358261504381652413926214851243924000983003615360481078042418792325277465766266238706252071474163627025232540038122575995078446801627084761397942991540350808963692631972812735186796839190080594060321491112358746398745613201281727426148989820486101686156612531664910503856767780369782110315416069575661518311571262156489379472154910743356254203664076828408214609858617096849772183501045052424680846689427829966887858710385885559683598678020726739058318854088143772162432531180000306586611069961144622988295102522593323988116673564087553842790663183311336974484560175929763436678534479840656549475581190562353171679511878413297951664677749626141423555083635761505612020295291150100230050926233571242545061286144635910213603867784047101266148253023320777211259798888417898147113322626122437977413215293398542965933124673195279865621989138642070414341622802798855165384443516223691851094338522392318487331386762750065461274253966279872405210464299944396313510494670014048894714770464044296908566164482514754411292532183151747422394938723463869933860006929185186358254878487192863253034515590660198007732718281342447679072427775730638979795303575000674633490926745450719387599088128557763628522946173442328705981639352964659992864169347263299672627658513878291599218840182663441543369710458031289026592404186672211239917497378560916095540465922588539922266231755232371783589905762624282985402935909217553970752861026790381152677959142743582480478980846062088568256433753766212719486594590468733761593701178044022082174604265720628550296475291140910293710010113883538710039391664863970243216634964737617603244352914503594824806079777644030682847602077247800783734152508606538520879648676008665101616531438572953369274182023297234051415430752553131466201755274587812925561147471548896793115461114475102982548358531989531294181360056397182491539999154935944471956206762873495577165683962081209600666721221715128944371683622221639082221381741401438188358999406531289648246522546380338776578758177712714728161455913003218441160394687012587231409667957622689382181488712508393864827578268536569589716989625190680771962653055695006164870345124987150177463792895530436617093362169295352553628506140608388923058908241126905322879696822476955134178542680250967328289661957255143535279370121088756900386088390099584388142956078484018536557837340865862137764712038500151087940865017372689272022240493487461010366077113030288837588836881654433209230366488459287388796336144126607375873881153220946612329206492086734168427944464926964874440267202502672130973173523946161889757066916152980045033946589194155812090923528205132763304830275259944985686975866335635448804094000676151799917116673656720442942382069223463726586886259531953965477523652196162482215010738793330025871177124286413454352348019368452875470979919104509865396114983638723439298181259754547659321705433093884132988166828845866843711543951765893522784688739000201623618371738731975941047944982899620824637914734792193019884475055319582824660801462855575239808338718679556025265493846002763628582776893011981395008540760901337171066870808692275921285839294760407996327376697579706764851977232934232365889475965390726364197794989276809943390355582069877725363523637733654943285818554664705151095158422081065536506615045880267935531677205544902526969971813910372381465606648059036788307138607278789897217864741999550391047106813000310571512143373155968419786919538274245747027087028110989699139432973934883241839899316485050959476894455546417757938670960761636000665128924029349215400472075603971063334176227979178629790448493843102630392153060715798804653037682698341215705425884181520651676321201550357230383552621970413262103454851534771225957615645080640198821138500962465849210817429715458789562408314428224115895902936371899580738602657985689818747223344075924854086669532586583716598734408641221213657723168400906657066412041584745713625209130624297975047830340989306947652153392622435085303070056283241564249067220235551042251646960276419567948695934253743847888367124778557431026451935614897826536490956202420245915797458610529664836781959407891331425584199837946346529489796391061267055146064871938695922125716285580404708571663246197776179003883160701732288011390561614203642713823292751358107823312010970591554399622540645952511244218026005800539511683053366711285440203979407493751552517527182559028708655633766173300024992670376513229827827166167163088917350211076319347283266353044168263862948844240802036646575345239005139015392074174252748867106234292413873656626297703881943283566998433033226201315673194900159866235988738871491680137456530501175210712876877294056052702478417571549006881288265701287232454133421508528582648513955915836202952773802756303169195140282205034661531405893177593844126390222040239700433211703225291642903219121102131000921990423109974650438859022297886381270956493529734473395783936090095773091110863816701779936264854841734684763711545464759713636100744455843098173279684375532448914428426158892743171176729951592282843414731129992591379810805465955795456232370137123182400854410826263689322544698951647928935361318367325544670988979956161444270525727963683680735117651503672883475454504956413443638464825463088485051166601978492250931691638002219203917200571174982107747179911012808822445562052508886753084836514905947614710181168673254677348364078820553382273443328156878718505162191729680744912439855253778155091183679490572551854022853927371584708248008027273081518713822205522884332611036940940399475612279227801273206699604428545568789980096947912457784518548867260317403413262368274914021058770340991334687809749717021372108004893277578374630680591685024697291619627798992690439923693080731946829066991038650876253896986455018888140191119350482005298954988397225122998656281246606371266137507195762338251294025851099058445009870512727373629154935264742952703900214886590599192037852606522855685521481354560385494563226445691124116246899982453875909277767467402658922615951232159016498624332523007185089499276525224726581321890307021946013456570437729149883446603465130433356632180451006937343992501052355612828365074354776389987202143413111394807701794709536979653008637786404790305271033720902780657036539560014613724742865944860158943931095362348077263589184804245387769026922518511677337880209535538149581912412413828294476660435015887421040575214075350798259240656246942721465900569183953614124657855577863502366787502263856747755862157847686575370514523554642510348735443417744140888221141599819780728543623344439536548756546751098186238250945363753882498125142935072703070671465958462416723279669151525528908035128343552569180386076259560339206485047439420101637600008473212195284674037797282487017585114446342639811285673977013911815677497341703401133299484845291217580678233471670975261667891071562151579453493941256455741920683372041222485566837807735451952524849845645207192976541287998860001174840893986631702789870080003124172834022971748812933110724523696596029559406471628129638633926145989976870349636170652654067296306105964922327192161905226960026207434810283809004003810341337867392652197652138974654561408125407107921413637342502771601518230990940684469563309061611552758240790944642099632866498769792501952197359743459981808449059290884016930865181787915210281798496256492909135500322402428494405540937521478350989338370494390530867692010432606665307949682202471148741830061908785059425727190957336094480439638878764556528448133349138684561782382535587803112980406864001864750090959004964630332445679554031119158517257564899639222638384425364104268473718503079786807660300612080292141751933465681671416672191635415471585711176909317710572233318217971746394102840678881171592767446105633155618734053483954425807806624302431433934690227834338737618365686867358281198654545532716456561145124150715550167713374596104177543977621038972858239499018219543889840823689454183407620425435369209148738869598841702822272449803958842773483050430551867628675436226767956654180517218495335706416488027849251893752604798446299071417364485790065297727323806596526437744142679500789551938511595757311065547843244174691512989213518067274179963685296042519325767225615365196282061459675750318188626979642945237196496350481910466560806439551458447126978497311363764277746273371554730179729999900807829951240162098652347449036724713570928340040616298943363993236858421560425834231975092136592644865000447784157435801884181488150349212028184505566664987360961634091782313146552066467199286660603740332000578737809552955260127093966648392418340814381048167963972329466554976950646164280611442019554215799005154774219711069924820233489906021451804768308960846571201766854715477128758375675015073340795782984340811687166106432005686070905338077487065326376915750097200702147804486319514870159204575661269886304991692351439783388706321326614010141944281036704352162468760303112160508347349932587459399984690107496682761408800893534992572366563204196377436201489703395729017686489491163774889548930181945687893390870012564552822068213520160869677625543790449174297958294606702435566793733322294207611524852535741306746499452312566742314881072334709491609105239686215703687478065368794045073730341360504629711582435774514016863081504935121594682192962227861758306130069888141280406134714543480337795471034982506077335143702650353573434985166633213399182189111602292832819093127059531822152413648563357701803298017444305949036784767338068799061966455534275896658073679336956725795007001058495654675372021574930432061127472715626584476542881941198704537936103707008858016051095996149088277480657407781764418368585383707793287903018811579478943638467269921147650122884314992899237818090121867787140499848068207597842930004481679667452670762468138205192258544310333449992092404365783346077412212074669773811228706667393783974177505127346404357451885894385108724094450863856061494892210800936447398456617266116036098177663738404689429035819275108949909445817547336729186761638517606040946708328901306663491854607951950943051330536040849092424435117029140792782813251684218770309890433025096334212054437761928553085459050721790693616323029810134913200127501000110631005582913680106842297592540054179894891165167529034673706322189429445392298277040896585100822693038729963123808726400088500925822071177328969832727719753929979844223522416727543558048618403282564494800397166968035169278790210203134914380543127434032294764243822540944380389525591550798208835236055810487512234159117757847684460607237568438043658088752985025897628426610345144904659721007908402320917062136088385399626039592555389337068727095339413566425569793856910015462687182910473193389209839548168715900965235202329111699946135522389255536111216340614593352834235973712438466711955149588968357326565711554878077363986499665704732504572844900147788322298274212516918158139384564997311416384530905008812988716097680023362916213684426580024536918522262880612208972401271979790708030343619203670354903473590948482192920672783670057244921988158360353538345711714580983850851028139253530244233765174107253967317325112716343978111403809501770096645991939059558699028047263352366162405948511720581557902655033594289539802655168955481508187731185379944266962295736532585483108266604847600270760888328330980978218683779856745387517714852483714878179407878138928895951299550257923680181486336835412885247204189271284871304851717539256805015252679719565508345497370856107830984698531773495250373338062035336909305552138002687695033152124015544948074698015120808745405904506538159369931087042102058064228761703042509384468201069915346801177079751598968327513956313763697356594954899976744092362785927978799220561738508526862684238527910939003383037584414151303402679462981071265281396730643278103106961004830257587898582255985529888095187704332474640697846308462194877369292400392588236928132962247524437353786631543420951329264601102425494006295882029168770399485400312791878195434952234664443177306030184371128888992549786128122941923428134333930466160456007051210420424734327190809744849213551351388504146798623797486122244826068804216196575105830167053551559811661064852104750898829574392320002483625943985985063968689295889683894632680549839558694718450999220449405638640605476527340856699020382989651426132775645215158839105211536278115920525566450629994996077675438381605988187071168977560773605029218411047872205161001694979732991122605876177339242962177625838881182550113159202264441985008180567525784933475884650581732008897939793529578579088823773971714474344365973230862268216328373513522522788420553740729923861267559833314913601607816391363075866415390555146993189707747312778899374200830173303458931471549056052443624373271524948239790619670300990442664089308332755752105825251650567725346978983752787533381738246425791024486288464710943570737090787059998840307934734970288053208084780850411531358970548472868423242046277942111067593474194579675949795431060888505776093510032923795751935535331046962005949657917663750493945371481358220252830988516030018455012224833370534035154969333053962209634437760676820140569067137692643116749036765306744773459838043104143610219660098369670689476522486222143446464708234615306223487892192690097637144992568998244305541604717887978415943338385125778739560624578008648290511095797787414906593934689812791867580393893288490131448482439248952364585366075225022081097827152431124369954326230354273692047028190983694721298772437234478501948585149730818518817041361859687912151436254864061818099554785525392446982780829047317799843597977560122469626275360086344742765424057248670348252800623753828480768989129121264613533466837009610328330409469225091902428765072809233082168835986153777720691023958215798523658259925855211015150318608821925675028901062706760637637314182923377510842812194091470368632928009120599754125767983956217403156097767768657241578722258592985100459355169466553102108347269566413871357284149761062051252594510854784419006845456670549652465906624077688115024010651887826020892177900994870427617381775654542300884376053283791208414326760027531239659635755654383747125409678517995499619010831661478479485544109914231258078271788549533590946353845505409259490641935351126099772173118209451701346784934570053145204763996244461159458892152619985525638321098285727258850756865694884849317824391075995222216396382576647031858459156978816656763624195481829198073349116446283709818288703801501767196184105410402613297327237632117634432619168681579748670157715750794919583103018232015371626489711530474140855658418935917974951683729846251938222568072405261587362169270980860090329878446746778513616241397247737777659178651826878343634895592420310134307049736076557263775692111991784606030702122121953272069903520978713712610909845880973684040762508052263667454698592231068955590372629707673954878270383584401889604944562877580755790880683409434808340053822478684805397077523908528684583747966488736325002932130944092508073814030400504429238891232712333888986948295717494890261695970537544578739997878836705626210880214076482700922493784253340365414515836281264149213163355169340552306548261503732294917714931927929275137424315971504974646635204665180442039916416616687492187442947987309904367550410068632155167861412698786758731174416320436074618204676090412518059197164912905054139694021208233132560431835116520179639540458460117295070642977852420914455913784236470305069236832441840535662235913929741075375666821346093987386619347992509640399993564903041789876665179576432773349708775698157796478891868988469603873373031621484692256082974908492149218981493513591394224554634808567325440834604939399545356609259011286425530431529263986211826140948152696236872741750724733852619107682964934503189435260196585448349078451141905525959896712903498746775801490607319198994404213554018144564298011663405972010126889336839662240831500398308186772497664503591805670590595260067122076771518404876955419885284051492893407571296446352740597953628257533700203298975179660081857971786693661439125977260487613693732383253926125999651260369397171263865864035679260733110529152493403050388387902611732777835803652700636142475482469735234541285387645445410039932728281898262302620940374453774117475749668666061442622270094684985008275430304165430555827178735390465022884448378401079096950021483671276865175554419974116019696853051550776737940979891845495115036849254737778151242866173020108323695479969766995542091935626781978532118099616953668630171483636608940448790867365963381041838066987319919804466893576696155008132164979917856866364632174029739716273426168337547894269183210931889988791775419810843343965073135884098615875169876880429600655509758232810543647968595193826845539748040431391392759329159556796266267705416584847985831534191420755084959467287985331996552225084056591249476196962340325063696519095368847353234278371355964756527202212483665444254732647412690890819432069203360846428001046614757684440510819473073526541126889748680296609568181427509018466231072154833092764408836995370387402343043505215940153039726233636111407905502783079015489164429689198782992029768271090684972549566189977572535027118604633378032732197920319369895784957631136185786790878576624728076679032899775173162245052437136298498774393374236088512775995648970584526059179246915240821875097389570872547735013924768434080175503712556473404455503928792880417597283614311126913674276133603762253157546289946500043262909177585100018267437952173979859861703489472251352928757975864558278468618548403130415897698630063377186465033126532440035902457503635281263776110771863861604632545450962640550804501583820521369416043581991784088818471781523482164439573458626870211502860812259944861795825658350572126069513724806821625807560347177673004756956926426347741032555438501048743000137472148602649192336728262190227098043908640279819729226254477016922933183200166123011189046010409904887672780394707248658052573457349123744255158488407240853152035308973385502918659132245046043730804222519589540987106472153392891888792667468166279280795827976356388485739608162663416459770911543216791356449039952072903815423272885398526601779978229213103615676280680241844599540756230573910210778594620291765525005090010475797124904880678564506870508078352653697842231871467082997917678880114669401650321371558063317282430202462984769406952622068119418008086112302424265945585871701433331865899665670251600651538699302070330055734231572676309273038923729260355590122993223685454483392836901650605989713340905354819312741661575995535205447894586704924545211745327690666720030278070122954360718883382938940565542462356929301757475770658554389559661401122716306246180865352536719188648291340186272773419166875448372427079682310995892905221309541294475453803386052902469035464730396640200741008881536236668832631551945735629943419012120570736882391539071492308739008959051717443196654103173711428261287282618784938440842829047446068050325214267319928700972867061356461843922394003096031407510236764789356439943274020544597928091462645993632633356471819708832256717956981808368507567746313896317921947399982164706758262758970832520780816497284158170099407038252016963091238207410101326469566716698493093394107378976640500470884560730690516972623780700261424572381968957788969885614177433905890583919869542312699303300235983852096839664109138263809283131865607870144810427788556368082681632547403076425871464943926800740020809066949999645226343593624711309847552302649551590337358309178536564350368749390375839449980768018558543043413443433648177890368404550998866612100477077079133224524416508414253074900861746538580173779297532974849433976911448545940912002956031391119135864369482631593868036546949280440207063292927638861578359088271662866447467673347741766199483200171334607561483241045309877061500369580796933153127948140709186663000146184870462378684946338942490653575877686999741761988582237471705860096182947343238564439251192716343529946277658281040407393565225673000129960783009440544341098552552578308041062512919412015166905074568421918738823302893119060031594601798955596099090538859746733534650046257019333223871103626243740040603455879508692154110530777534141190193294573720920434296551506316141106270295397227755393590996159375830937904706228802746529473008543039477648946051248501156335089114688579093851896874761811023411160461419704674824914547723731695047964764063604077764196334129898594637682885896423573834911099717709047255898477378527256453663094844798624854256893130916463703283448805774676657081057116123820119148252188287375698774472186077915560830132337194244293216674230136213660638109552196844742983746516092532747923377997850509089544699533318854497362427267282546715304427798795076408026681350904198310722023037897229536821205113908031546922713379344506587416401983097080611218971701071112930999872932677261918110740636433256295127350914976653515141078016797060999352678054399569732956526523287300899190583765249107818891278660472221212469890499135881269018386768871701946828578181047675107912629897541661088788513591544489485739661114107663584661544999209166425406826087390112375836159094017108364585452728775727216022024551259674903736457176510041222843401337648928038683241138933797979884431675149348196835968114382026912945937886998833221857212911151451759674342705896188389455950030979858960483771722657352835167565406947674293704696230028592377917695624051219180184564868676897903533686617506860535624022590414563523124362106693127930917549770861251098840389692985466950462530070394918249374633114431982709083064870417131493444901515356657932925889502779647649341439188088272881531877092788303951269842567650291403207635373430539610307051189795581556421548757363177625738949185045522626462041014859511473832824201591253656336329954461338163956224210292292727319755657052412114111857501047242372387455253578920684158588849058496963123637783565732465643933734743940821017945732683442235222518482687611783656136169116539132889352665934140882113949234632170426147174786643238074275086175794578612862764886239143151926048244806641466194332416653121586606793737785945673959377368672153204019666905314026551558158543106198499568244321236914171761722552962394203470594506747478746068742515589820538092257213974800122386596549014696900412618997142739450878259127667479447428890090327756023350672766207462479639441799161879693945430063160005844779833740762308303353016961887779663086038690904649375671229168053786298119630656020202830518070814811807652828605282501106456213374975950440214992271506275782552597366357598839493904988590639963572082567120807290383374272390495242818057664497631865499257706879282776494494987688303445208448693737077158914896485620911343812754060413203784557136056979422762095562179683036926697544147004923675500379413507782261047713759972226130426838636490122465378500941246411525805865153575849066797067628786031143134903459222389214054707753749755646022549020906125757876495072051237095359664529251595004453471166501999138526100688305280880253344025050011957879297390361909374826439039087737850373317776532471180200623220243279607703658605308255118232316752113611674690121263798098972549731510612724150477014994961555985129256473833627795115116345470179717895785174794403861427353418613815705602620352440470477916861251191234390521692471626464913525706137140123509087503024120569338113226758890598364744408244634015738273831052529432622769282064886265742508697315993479144043681106156583426781009077792384157187055483634807290638176380988975292379694282460923660261528690294599751044084553334994556783924361638376043307165589254042354824890679898063267117880657136685390979068687265948644234247867169815518227923151349795446987002080216319272766854020027061146972439874760080950170438750596032051131110802036402384335923476615756561190394954672554348540871192513453790114431810153850826881415714964542179540283652484011773012296267236958710103200949191802011691579183288836314101250230651386910860904899734710132848014091587862435170585201437218417088983573160787433374706711189631963499231925381720876631209997726388453626577857021596260563938593574779492033451690283747756346285643031380814849736157726280115064998362763057331312789146916593281784955161331850616105285740476950138913974721931720783722126941979506466786501585873397861509410627076085312101329568480457207559944118746879646418240600460068190216730661293938131980934956809121081837290174653368339007827423097759887873924323273344816345145264362167147303921985909896775917544542010236296281151911475414599283793574273369889734956910894892761092494608317804559368728039182875581245546376604591118761148561605069365432880262175213001540774918882343279672633918824405951003089011308821545385595105212911892811656402872912134537566975238268298774345961123077389474860460344889798368441846640944789043203018708100980746657477785153542374433689150545428296232542315602734046793932958526984200022622439111698334445735105700913952519706055277869063171723015140654887452314612808902912898543089544283855563925494640701177585802998189073476174015381761904283106365833009757315964464901993580735032512902510707815411999764328231911751896233736989569063842888430684554684160098371247438307662973632906454681572374006826657225347331508403844320050348446221456557938185292688062659384821073848822259211631749295453975112203071204605323424442250125928960094975322418636633962586414042262514817840117410712185113554793889174298279933153596006915448086011232943456293398043697469715589347416107278348531903133841646604134094558244208432831722044812445471010825570107846032155779871728690417750814089705034053915346495614706050209033867065904031166216188340295982228325599222734279401716536630954954245423561897212907685724217853034767932001112914092333876272810203602448823339214030027582708137954240342643826917726325488184967567403667918132827541996002308616241691062118837200907541802444459998512958392545999723079059091103781545162277129206322131464689860728439279869173002905997023676756577827049902597564972777782858893224370133225215792537332052897727850614831339872829716833551023207936004761815176741136890051687327122460044829606181561034434125492472547894455676107728328577759949349746412822444625199776081186941856827037180973748301213594228953431967904825421572302363220515797071690347469508506041034885827497867089981832044687764688213371215630670526244546456359074354986198662260920283251026700467447242148298626326989625953104246782766955261184966777925711322224009306987250985429546295131646852327841742772635476002846175778430400484289098652112805162867993793491740550495825155092090384226982174499617750047586062587179941508207519217624116267214483277991119273728116237124695468975419032120916512118612391642316262107597164583748108350138349650860325029159144326607972363126319519687547043714501362822239165835685580338505878838804282371330477022881069605985275437119865192516690416776289193856129536929713353754075728650152757245469766171783834667902440705912634428190486937751353106455838837531852244186552966633331182245702724952026115103983827038246180018649351976706491708552543418541397460936530038578089458301580293345521084475792765583611747871068546156709189722119248669400340297012396798530224078836522889154736525559402861070892464674843903291226255768018247229895517303843724076092786520187658702660073508946071833430836359513437459956230841617733062706127388616647768472516695224606143951174061520072980190881408203270059067403856699757974945149814002373403546708237433517802207510679588723458405860324038588672235212882576488174302512857077978818691683053408350246679831780654137900804065119735045195831207318688153461971812731742519643898072582413632818907350274981331307599262421937008683191493911436296859338974420315699247892994041497259234366926618273293013221146926811176747408090031550992834268686165984305422979708567833971718178756466636635606534272585585087960544967378218864522582411968326030028800642090350969807171464995078484410910785218895887652383270672543745800198542716407245667104393668296378003781637967547806413142929170967382793786052545922434983851309954024737166188482639052487780465649463929288344685724070545995038071308082948352900033408177516579483316039400527360499960003055349687040098074280524991604189534942446511334221057736768939349189119643368641826703521577476509871611996159357084030072950114924104632253203492570556355007047638005174834394406626644287614482552772056569588981159520987323113538349199285917118964009147917094362946471331989480755642596898529615730339101251313545883251675438794370916088865995286115238815864102681620888792692393871567940906326529342425180047418701035312531868780431636374320824589170667862415631047067286324090756914892540001407495474176666649458473625053931200491010932191464983674371916025938265136996108963313461293210405273324400568974478927281011882275825228430258142955633250286733570661612127532187070388154764247102594251216439828512433865803917802422128781306525781322785366223577851277345677552803802851979053941734882152544961725423959970008119803563749652490163754575730662111160985319272946982119182951914810539803383553488765071096253577567243167497069172549197331941230002031634657286688778827481457462165986415850147577354683764813656848716989652986269393300446719294196660272635453791331935615583526035451483546208856643905751361122682112023659191375678405166392455082965695764575038463183940083874424730622024229285165044392364461674051563013376415287158247505836984783906192645545123999793450613001658470010635923710398289374868611674513135598008409658662984180710339206484455854608808693682119372852123677673011089120283703419980277671070115127315264411007106532345599919583514586962200618269235108191558766799178951099817237184599869746970070209750068326847647281102132919331392548363842889966628930543041355794754373831990131353203987628772916353551972841266419759642924584839424576561544228813516486449362527646598801160449438083261921659940103041138274857090784608466073482840697932357127900170186804366140452440288788597209830205487268875779017004944251760952655338145414489767228020727720694077658765368984642422379541023544047074169154664526860865865197135078434252135778476755613326926407578308892668768291586483951055363019028322665313250315164447189284673331961112973671968891442186691304077209273760181783146546264444110513123104897399392365713720257858294542173070365420197785381170114018030684326173534008223857541886780035512430313254984832236450257793775302400468623674454891850767807248945485481003511065671803443015916379366806753238907915353711204487823111373567792392269724684108251901146628868234730444890404804623378916266247963443274651479637473897611722502861286594846409595029894826057347786797256452666686924824703500073814314535960080299097570479317184978121288286510555181804708434077657785661096273676897046122313783303973840869882794476519359833542973562052061550528451837410055474298826500061172889476700615255738103626492018699056105413696269868419698143451998552673828843170627712824711455855480132899835598064573686912241979236133872901844489087952240276187797026392922861563644400395978184708358122520417667056952390391483991983232905977235761993156903034934713439397197499438951491042727459559655791160346248382986692181190011910736108051468346472268196488015307862209213397245089422052353027797719653666175382825011110328880270653295701499887972262440858870262852862143680818046152658649525611889677388286571505310209216871398068715418503038714350851704622962336209328345814067249673539780392331202314044015289044801814583681725592627987712603353603668381449529820684060524964815031350901999882877793279362145029943181376025888199521445607574765762595024601689835950232415087253555562224497735943851285725528653848441641419320364948622744743967340962213248333567619096132556953713789611371839652214970781622260599510180834694130037871961766768235565955542324079955440310064656977179443395642905376426763126226306440734269867306791093213237295900451777747953120805128151345387225422559615605412237433337425184901861144266303695701568339084046412073213295152607672852241722542335451649408534661997528840343409293281921164154042992612544926456119392403045401567624708798331483376503525152642671081134280209046502243205732168657120680030469974509919155262065393789799788585593227422968518973282104954811039796671880184031211774083175103239517017455460152176621747760502593498966202536494722984811865279826813127635181026586282569541390099548402308276831964422594247937956680638788937754354945272007806506205625275939914732847466901933993050874237409893697383353332933483278291790160096057737123309984120300122610507273964579350162913339050155706977284799714228782719951963527625455326093761772223403732613592371140997186127510409763113659895380911470687405313298063270652564464328358183705608606960491395055940165585576863587206405383451096760614760189281175428827176025707556843478368212459976483300300254661310692762449427670717084481627704277515033585115345813368281593199553616025973521957650424859049238556136711100118784975313390959734031061057365489327333705101462067870626422750134892121694957900116354641217952350662800039211653924423252688758815747984703284957904738262008296773900463449370580259897849500943626803794609706052310200589143741343599330366442015166379619144222934814293939885158174648017429331459571852839660925134510514578786656205740980596193254493804297027880559358116518966786883312784937559377985590466479173121656677793279968334163630900627266744617628287141863220808287040110503288861957194870334004826743515550741945822232750873754643356941496381286382332355104233968726688619942751254380847306155876423138402183778129503085357874038544045400344470532785694864512466362482072903344127156378088869989590211279446490073551396469920840241732692613905882809584164523547271625359727093033463875974058077271196867412344164078182181138429612393742342059232909225568689229767114034919141139548206174716431398877744688107441201745295539957650765783323151552529516086235725025481554361535710248964324866495976373314358970593954672942167884024631341867713432901548997978128762949883176842794192622474877498526355114807001386680903099024663324293876377399003487093524145190647849156189967295188962388214275779677759970511588927719225160481073616566663301975730356588619481253551776016399618883443095791216859814908621432984884167674216282126630289809049470191525304998195689268945078682630402098767024746711698710595312025543883950317053656737302411085634961106473911122694344058702899398134264692472074549151435688278732106029931796306808594508528939758925788635639328699755934835996653161252639199474985955279892293431869798218704769656626042321357758372222088048760929007290803141408628588978108952353319110407654540520115394007824802191776226902760010816223480681910181415100636015241409896751506225396509443763622384313287729284023136580883566390064105685096766680051453304547974976187136531458512357120374595389064278281177741331853402717007047266984736389305981094360568659329946439503970491286078754063554738249321213512054442996951116444504849499205518566391962394964301398004695798452714749752251408601484635721494105064011887028373683634743497014616513044426771837853157915573823458318768679715026923471632347661700127235992054354338486892229206673726737840398742495259398430095217408258285719137094923390065284203595815450049657181222970253150046575789408635908414250435999511032934965490854901698027418930665554004127017598053077041620705474518887299917288831749115725527391694654199210029790264501984616725538933689334930745256526626121166114485836839021869105868926595986813082784347226290525463568761646265812021541221793813612468818433315617810237610829089200222861958639945131833159367246707181840046308781745999219315816474672761036606508886971307654016063478252344801435439665684870579508992320281623532973882623275773485192471945654530357678178784502900622806186080532000116450223240254833755480166022924816945868191765825480456491983918506655787836611198693318465970229069535048424906024678332341277325131620241471829725895132260029224360749591059487027920103074748404275982453879177718597359134609183970048338857172578608967809054906959977011297840126332605336666818606029534590100956726192177357657162708230486229903799165324389080940021148332025235379199088118516656282751378917416814997963367437688496007210254715922274971840241559126271006144820432494730505060905249315177075747802956166429493437470930835625087416796742913997816192945492908627018525338763814677706665418284178289365445995657636638340166273861696448115321717862391324994867432187204215541111439370130326435494562372965855902108553451668703294052942146451735614050557529474147596386298445469888036029025688186098241510219668579213791635056707534550399735793306830223395510889724957324655448862043266815822144184722206811765023543641918772922845269333791228237819609414499387884174744173261608212760966212000133550831927857358340005428895731183898090354566294274456925437470004649314325149829825107251726469366049328874120410570715532761931690524505392361571839073648093689064912464362274642393370970287958956931479147800053594566138546317030641100269101962348144480372329602096419980492065969538356704597819883516502455037574284397780048365202994466064541974987327939490991218191292006069138207191138201438614474718257536231220085210881251933773245634947152384085326253505334636493284736243048527678362368324883047617357887125909778738094588868133206434179594704822588115706216698883585566499178466451449810899819547193327132376673504392356578994609472998006651531487433323833177664323508015070720988417217711739452826348624709592190467861602612461461327999070033307397270642567301933969888788372249174957752355123656882743373445690195341416858212175030094059641556492054950835279025031248816173386237578776683457595967360226588512286064317010008057307145373141142641153063447665485822441554209181700551568327701612441008519825829936917792392014932975553848681476827890368550566807297661825890558288177193915001026391386503025289480788835779150216664406357593976780464649961015524563129554535718198683903805425524881307479757852451776629565846922373113672917277016111007028744629341025762784817408675555366800711696125598464122144821945527121505243985573995366504719535324387402583633368842588171881048925241172388641254331719485051498204926008445360570625469162913641547403637783298923299751839994188209312575706611923888429569740772071530646946929281893863341251052937250502625500165121981398120092749925265984098750967954887643839406178810507396301950411371243995763937377936314373852762392622031698467648554753897852803461135347384871019825711153903741526250001197137571786204739192779352667824728091024773203460528418544015622780912250987453775717278489739400707364934983467047485755055498566437197512357865549013220577438406735641062934607588645589232501904430601755052243454014996473522554786319187809211102640344322152575077182768485380929020548035405384610682832083441328912722525889822764058174477980806201130356123172139035871817744834145386546398865908330334779865109109343791656073928494616720240354623119282110848476378918504337728028709923865603484267114502480937973876506918167386248395624082336898507710442269262962719735141096450612801273613360027273898638806209502353028189457239914844400242880667994320908272755894608778485235524647965706230420466297247490694585275010239170207270525187645556214293337984134580876421993784404911012666096356208738235022145889334183508108286881277803509932254231729636606619802877812927698027397785572256861348520004350557748490537415691100902767240367041307852950979051466011274538873004691932119816079264654931836151599420155231630690329000194598957980718326485771298600165474285922394787318977356965322368873346428887627911729236912235846332220366228403184149726646873901464314230191850321681384651404471758686212562704904974967184047683652739448929501601233938932390153281046205571722561203549708198342014328197610718787498751953125584634051774116496526679447305567354795270896854239268739185950373925931209100374261571419585578037370322514575964612782177799488871616109787683180672933993269817975296082868497320477383477563338630808967821740406065713956822757089956365160869556880597452585087709606344517981096783095511963732893327454508225750422334172219873380145079274094431442674916694820236202370472506550764358649038704068695007112517508927664175459950061493237919597084953497052456233075662299331266538031864651827463879685015748936351002892308646022356097366999786204758690868838244581199856612212613710040376783897005906368586804288488484231057481659849511313243806860447274422392520390810423201444407345253516181056144805936210791675137700413133312311779163466578249040094125343952280453157685519538806797882625067049512306628995713491469328055261870251109330478649212520276294484341256456711053157571130002454154887458570045107152481217756732067138395927485629706356618773068336345477326638193634262370659075601406128761777834869152173438322077802596340723218297236975017972675633131251952321881199288351591012150164925746539522819545525728386575055881126064741857801462438426924698339993231172528078130221976027976028213565662280815518790159739954446781255279137500453385386175478080924149317186075192755333636157419469077236638023205865628213418864809696049474090339185413672401270678127144583546284205669139536751869873526531952527677978706219874801179772023565586224061469029124860179453486482088956099386220380293526036079911410248384549782790504512256239685035646736345864261489626238139972967263663194238785377106433067384379217577901332720823036099713941277456743575747371217560269824701699931984162032642993368541514101642929150178426156507309334300043861580716368970265416330833708814383792527952284255362405178159533935822409730007437381413700999979407831366178238573279104062260253140907443754969671151652211579135638716284280473561210615078486983576770194822202584284154824308238719139698113311789562523417385812626886405811368299416759631812465887078094518553466820885758667695225404644219298898460404016674919788497730105997781581964361513890799542748610447311667138379395084880998316485745580538019388212837355389352945476102708746688392270438550102276397270042683038350406345516733286081283738095013776111698720170812700066322162066127417419930547832317175668824143811102200623021386067135337811238880503967850942968028817015122622021235150348338476394768795540222885501294829091701934926653978250603395210911409947680263945254044841183837350226803260571624489081040260516617933271270538991510781952030785840671123592531656384736530941076578430660053016454131752027808199956027406066880716504750134880795410081035175098761887134793345725193237402083183404983482079391337087249807188472916120891884249511101437611245380109487413215690974573455137134373624127066428395905543941093538985942590618980746894632077005505798114882671482002551917988919588125302724302787690266756697197486339041526021425291871593463596429661276005577078508408694688475941685132661560587410694448406357435629416715188234566265956457395836567765322080974249046879318611634103767801335428559492603233255338798797187466492645645462568247665870083205863382413194821442160042208963479773009741799643135237599132217251489158994834746383039554264796542590927185844374309714571051124608938024590803672155508196006604164180024739642973999986584372096994259138724143018267620226883141975757843855334504178975454601325500617100150612240364204292788374600067825673347553614153346402413406492371718430231453164019035518119400467104443911581287444719750546140820818079880150286861159268180581213713877905315018645752991951020515835917654885348216425469003682316893654483510572415071716067346614562264534571535829853298646897114043962752439550436521233860191548317031083465859714283096643768567457419242661366201694077760563681627673511058488774145375606927740325515265489826865095922781135243774167744213382046379305151564424061358385927172499198408811826483148908175751768566504968065592280186858577314643185739550135853883667375985487258479627451234215587705316933175632506544583867284910922136712586736282913742503565613244207574947449004118431064187570492147552711894672414030803426870305819627713566839032077424123941227142508121523014966148397060690584715156979343942101906194897254117272388312901374096203807862111452288395902446787810628786738158283402226115704783138301993095175234924864918254620025406436026334830782293048857588739809108803933948183957625948446036365180489016679684147309619832185606099725213725179507954018645070462674603120908334213461178572106200551991236678125621681071421101059972552163766504754135557001259248230729507102430403492046996537178464792222653898189638399012095529904961808056568262420068243231787636894352728178027120960154402216686284419502774041229013770549100179610082882549003158613610698975490965189556031955441618948115403803182039145311366056654019531893661181928206215718212458896187665259158161571024716995406319000658052260023185194502199304793368253356630485399187505558026607593056174555663471719141802599438828665997502816853069294371008116821460351748872189121295911478548679165977055143472642341292400120348840899530755683363015672168789091294753231788299916157036972058244663749388599080436986473649543863313004690457041737841512915409522789281679448722224238283431196555860329625333284866292084893636240750662525003665161356441603508725041719801693993118195907080453560937089993410626093432950576433532614461087546817687973551401285491250667284829431454004517391356967944514733697476559507339087659367136677090570033080510816224915302839299410560853491509358082532870194084588752682018342595460782515525551648538980121879476646914787808178788275257943548924923247500685499202472888186430876269212413671181223595373085777406928928620310704902797529322570318986587815003401549762826822753321088375246363694908837033237484322175579850391466903829970491801594612133303482232304686745901199776051217674183841511643508958959095230795008162574718304610805497377639541738327520638041205149340642257765309646690434177306999234283276009196725276440837432438347259842320961554479785185285684397996140952804014422511523243434860764805985474362811034977936484016415683007820444926077814859985753337975542213295303566772759941315294063533864351294016878238467476287638728454725672208947731945846125975529575673161557848672179682746496551057832322594837152790029315001639451128264097530958287227509953337622705549405619786265790442205188740623377157551365525196494652092482642903107831648408022959407006433431770860893888860223224730405271238651794400679028985667184695301909140107406793735216369804286013484793550679157010327861494875141777654174619368709647409252524790032044710687162619088417146808031761736660859202778914754765634302747236592384505309549313601863230521902467564805486190402469577124795543772712542018470057460156198960714540117540484360484579575916737054722140401758786763038694225437168131298963305737189422365666965182115795777218411271585770566563976165907107561905923945481194891094605991896161895297658737828173159130682111398317253878789155766502830894148740315630580066939835169145898063739070526325918400839799130255314097961245312398275171291666538896354144834551446786842510438833999831658477695160514713455883934976712074370917916384932216972954846406845782693289086759628451236434279349963150163623092696660247959394051395516699632662994108922439352430129490968011408232172409332827852655594610949726372791928872033679837519120519247360545974047847520362763399144534374290917637465954308287547790675750796512196991833992395607424642618121187098847707947047736729267058489298757218017232666670912476678676166510100436422772124544910591030093475891007125426111060148240109199229584885251635627434547741183236843764575687232796831901258924057302143783422947984232806828338996349432840328028227477213695882698676358280000605878148305141892505444790587922361226706632654754258896707351086192566234020786434606493941246013729058259601515897922123252044276307958501175972428478307160770477749462212049773501558011401963012192049049619121500631196238349538913704858893144662958785461802818015851916033866610003606903390916412253868922311687765911616504604615015518200143998263359879901632206609145025668277268206840357650162720468946892187326933486346400494814220982218531719789971147328615248896219452131160177176976122693570829759599181071855958965968735943087521087766249717300426858899753160507995886380665517850955323330198066084002911978956855405490353602538761109562890035531629408696258709165182872103551824448006408819367232129707759645168312896822455999586823326453578278890767898064809363217772051140006815575394939775757152979782055937192501865773832393877214883991312030846725689973449195839915233059744665137183862192018594990184260198874554332545189982398161208251481231046094265573107210000860221829256623384530520822691629242734407059783869684223803356305137952832891912840878492200773756777524997665753568469882702023871154966395725536354365309964295372981441346869599475799196781026940969772206854906707286560452441662699810197912398864632257924355580521216651211424730658652825762296960868084689278484387986429333631471834448975655150043734180348521513761577688722525096108294596181974463861106577914407584949058131179846756259347939439086378397648649977318117943484444751596662662444109023513791352507573228511534104730045857261917866530247230846764633311315651049828998940270296506999399383666375106827282771578691889816438188739170626064520135262925048879703106900568012898593236831947089041910099490957057950048161174881030543585428472971849652742424828925928714537879718219352193027053343030028563334988106987229893075631231896225402184406198531726542997971839861156480138642191740056954332961006035723323574936415884489006672480103481812530372387019156229059878319636423392849589348840657272445099308461098107072008185812366064323670843035387782501103773987011988766812305747126287320478731174041490572852758575207687014258131216512158431007126105841142202299860085390284269412509755326572010002460436651448486457014922978345185393373087976034456454275943634174421281644705369264414019874624646963444196500328092075402782730110563506947654445495728078980447676065322672905332242767638104648042235157514784097158002834075451677010101109722804222611937186377115552587906580942639114057029633280456423136574905232367042560491618054772159112112163793337025952139136319803720776468223456833848441740061689593018017338300539553447086750735523503183591230726519545660347883735161808616047787623196392526103762068411561569182926443779285323592825299695773921000989780790045661729081406822038083923553893089937881173023491497314178319565069919704377233981884823703808139233100894777153983074028203006124637926092055347717131868912685312510277106598678159850280569886179721573566181706881783559880199113514301635422254769395467281313513686722741801009086023265477527102251819234442123215655547820730841166906855146533044275197745018584142553877144687358005025411643227768743676759443727961698418097734407239557899663054070121970270593535711972902494328510689674209666510655951953306640767365549103844345901996836907349988942022169580297329883750962126352046842633559104242271050832306928137956307614185517344704458171661270998848882248001134021710714284339896462525088277159831953212000585131071982052274692855723349864158710670778217877424728426449472543243705848902695392900397374138705542296537449880247544348352394271183509429305951391457121213740671909501090909619807947129118756820523235106000936348153547992853828032543662000367257208425172423196789945360933732542855484314887818478342998836413715569903472985915055943504714411483095139928029676996782897239532394926836167385043423454656337814541390218462215994373821263525692618637204499872838854266501635499913001561407030831147148927505064078905455742453685478451643032450256700372914356350544201024969287622672459010671572841597730769601517097288315320639741018849223920964362981408381055470764798169070824208024172725980570826740755366156913221148898171103497089906552446976148884059226387603825247043129100024522002572392303316777754894294830624506862531361864224121117284741342521286655354910900456252627486048344292911113106337047103805773030172100061343123517555941794109962122607202575971580537994617175650053860055744758544116487374581037419822118675969538825213044975172063115805892451171500217069561402697920980183337575810557827709095971112103699917183147611136193829338455846013776624727780226865741437473048575652939408242495294266935433539876789178847340105835792240294692570260347389544240206882004184007582073365804104983802389265876738852244942794802205723428601452548852647686247800609973907674610922107405823806498221397921507928493471814827118146422688705855865951826230506917654343364326034579682519504830747662202993772066992923536296209039136235615211838827196518594091048230962052699886599709177952543819343943825037073823137261613889861411197359572945733254569346131667710428873184654379790211698342093605641342769267264415871861054836654635673765452888934653028613596448738334017381820350364215057222276957840742379767470171575425572825700844092865925995387869657586557201187371888095029586682986097721035582781104379422313147923214342215400887793458913274213648769952508334736887328382165011630142607950108560205138603145192412934850909330708025755361299884404738256594760173831655744245391303933267634748039824904121397214946443579325550632535929698736320838978070648621021097224304688163231749930608046926462419697565369542046115796999200678751063577026581380718457006849029068533194995238031644130930919863618414383326065300386599927477631642039067646507682720211242140817938576289124981348614078879319511568004947207951814876216010757952833786907307372587631250331744196428731081873612942547898163823658444257238373766370883107930519971473341178091382560835824385160142392830660291114670994146407992602557763302056643367423168535301390415092470539946467293387497800616294635480713076547334853045696480567120086329745109089829913825203936285620857711855850884623435975274464842770213564672687534353487194404849235264130961466378730522536747205218329655227065766219490620539893204116602208175355357512377686366081238746386996449277822764107924988152251310413543052029672597580409781291061661963493399712156428897489391411450012573992695586236043346972671890823916282097609452954610635421320681225619655664514019040643764845123664799804261919979709177206483070559599591026261609926596492171118574307670188242704081324907873751175895995329597543332475882203187275330966058831116584353555231431070374024388357357408140364814553647357239123563443451714364977420117016973154249424932725089656644197768177192333580845794575160043416113531153082164058444628258826129602606370583765406719912688425449534113307745946795989234365100163026467549721476073574598929005087846634354234904409224727702800795984290219820989281946304319180372854981827338268387403280236726958972035555930376002423654749354966879804772350765657074053480634875567441698543845066686461039097830875441538133465837109862826817775241122490464183078448093812697041537708274804421207603976031238963592822523766613664190730917289241153883744243654771233450910186528545233366122951374832773753308291656603414161066222839276833633585305416934953774102437211033080371975054953366935964287549181671849945891542865312082357156780247184322845792462711286611383295641695971764771716860648248992887802734129703166637487179508836900222042123441232832619190162493486515101206431019624175187784906134018641090214891449804713433652858590446521601203285070714874667800190985988280063419175279027607994279552295192048799590965884397654851901338245902234298307731298500758237099419278150640687777095502755968789694915788854737561757268967240431595169607427356127190499746418774438373498148357519300962750750015438221162357718154390245870545575395579690596518739587718869052147090962321439411520672812209389842963486880848010282661895830915391457771282389410436011466445139125033953050961854243739298995021385870983482247070536954286299096695135088055394567739650829655267605850187538121074884936560730034990284697263514475180286271819187817860467318586012890637042650777106547006894475303326638187838329796193295635840441137736149819408934178752327132095971843027950547729905866412753450511123420308788140869935791896629135018089112473319885790202172204850567119997216970642456945060063419623553883546570713795085306531355600160530172935508241415995594425418056797768778098830535693886101405406122987153708575902512209732942783781149420318943185330192319646246787883303104886253242444858311792897636943666821060694064530649217558191291463490647221915314147796985894449085389015017122550454260865745322951443718938727346699129208895122187637905865616444226016059410964835148865730921525483024755717587664846555599593858737313503542687921014309057459974322535667806204801160872863655505940064172399715738494014612718383464295663491372611757094298365248474445938596328473448948628395481398978056764465751175301311351802569277682491138279259801174954763522926170275480539087365278834467795305814954176876427172174847653274275211746016803369786853472028119097040891954449641523425989377490912223516886841229721560251048740165088423992922082776680750440890637529935368574732370626600554659059229436106280833782913394418862472972045667315637990597129352348340526723954991345978854082181678925209109715397682118341404793419342684047781543337898835835402911106510111382599390811003610011276989766026044548448179918125481697945370691740035299224522271605612212030090066028511684835541436396221591442955200680431981739127590411666875723456973702291958743369690848866081240762528532468860505585039021296505124243180276510706318676793266818890733692232178237183198047150247730224512861556704417132239249642411107715744284496474616792544271279324569531890888012180558067008386399662585467106287376810766685445230203899431018219387330243930213694623099624953693921901816760894542043403967884719452884576649942111683453294575397242667685471435957364230960482565770277381735315059979690091380956985759834505330554380199713921479931216227554995930979391304513078545763381563745874659479951823285960915625672091105448927769065236623297319878371594807193441667775381795789876112982076853953716923162319967615395857491930890270785527283390415709099433015444579197425143936044085002155387084566585396196954273869943177577796044568945956334295508944166822476465132257567754743417792708173074151913711313689541748919411660318565141790615088704448039748505139092749568865967202669507738485321013430761451171245853018285018354410252230454607202969879435060258792169085647811837758387328677970991153603154729510959718652928754114887795757567818298827398730741868593241156038454914094640278279381322196988717493626635135184766726141890514304219450466768937048428623843186428270230273099874348704261585599828990466053065820007396746168066041266825736245797372223982364178687269624574943458727776316317838819602259641934873928932366162624097549823578224685136554171907301098110616100115258385275292247676986775906617838750834847447812374232277577668736733157332762799458442184768458646778057650265037977939086024804681379016202995098601187549328450829073627155899775917755604558482708609882092668190187761420495705516817122342244174786247520879452242672108264059674151694149379716666931176592332328786504333440442842472242184423945010200913614653177181257729356229512778682048347678150835982761913199327650961951318852653072874492156323352121271405006595004365411388819426401960947376824808672366561984082865590207564362123351476739449320553404390966094233399013804757204413286074722993928289439683810259683689712878982440342483456375671569808551085611149988434721475303743188956321487538086017094429687480578212725733634830289376280112240351077725710027099786199010603952341206089594423665157372751471165599818309003186549962009181462721106888815146600491699196143149178599684132394505207726142105972520762388571054559831552510400475508634792811797022063751192740773931358958108661662240463894056053540948815152763216997884192973041161236472695336990530621447451338283045385647575905787400782102556681793575358815228268559180155322892647629692179429083781455951131092602507919150251658276105881419419617018183537542754617695607404972907843671804519452189560703214202879193138167706673627991553407271005605549167378126056012119916407132781048738699158837830141544184086623756841542574449702329908188558059596974711228121241139929689235034132112635037774367467978482201530056242616768412414492772696925909341108837942536367344604055391960459946733005315998208065120356249225549047505059561119112133830067390332338770245144559880204339646020109693779740949872621364173503471535643677999727693719863683876109222513746003594983832957047287033503094498256088116281451653812183608624984244302519763224293996643040178277462969173345705938219837683839873181492726205726776951987121873921504699369915462838810531647513698980299123350546385843247009749860075981761292961375642582895026628831411620061949316134158135839925965102111238409432911212206738327471332553401103382130630576837849257297746408144651464516233305790942591324610697860937315628087461754809374232895192826458841720143099479135910040090090965391253411358294697284039959632418206965806442826550327333769336374204699545929498574174773742240925297651567053805157288619950598963215792453760867175524783108882778601589322953565393554249751575701104275571231554259450733991197204648003445128932504838392506269176306487593600374326940088163546538312699523792259937816244012774295761294278542397344950153182214244587080528989829930950438046475572590448755051986191072540479083839090711129845490734620037151889514518159553734800135942359986183693997403687517661081024879198647947587498399222958093473904722899141810256201715969958587577972082433978137741531236210680874396027731232051567035993010101736467857498511175259026031253282603758090440735863678568062602465441334574019817567631260044638050882786948866028870904428920182639180156484721200428073026707259286629371474024941238109554069581231517261466544860221225644744048299612126038181446644973622491552651925854712363520975434766331433302991549650469507178250526088736821397397896953625844654462801081938085749616291276525878708919323817864104166890920551668786684671269954024980543462859276387848712050777082721461484406330087274792212226737308046559901575301855873202092671111219701388331119565099775011296601929118326661960175279412120149750967614897839647585156174894859898249185321799355150299200788043769030115714017070622094536971322376388428388554494536381222980935055716528949406343426540945301385192125899459099135539342134468976404007894842823753908301085406013839730269553822887928812554148077108774252120833750665045297566209652905842836816789519127116160691046811463842645398762101548560827768376317335689794972347576187186266126958506382969553948946767103758150067179595522100437111448404903253606158673657147313515685010006095914867848851430530819723404655454684109042222322462935010354976925652446312264289170501989989141143120909986974506723476144367891502098478119888264265112993087431963458714128432037998230084578076258295760641784367600931808435402193063286968144401469070042093582065203768552774268299610982246447359679448031727617196577609547405766213365236265181822031384203565755262634748072432695621539284616664311256915611292921623950877156090083128033856666930944042482564034089314521161159996652245245704863926736182626131222094428756671855826253012012927074323077373690859089849553289486142304294497492441622576427007442623338594125414789028977168367133606613853719011008075846629054207851089009757284630115637746903541509012592737168433217345702042231827699507857780141638046040658097043797869571905606010319322553990337843816959174652684872911411684559068833433420819937457847923511388419663359884132467178884816204950072897477498782989724713432207541177786954010451001701704080351504566044075452412695339266824079547324192764943658490813741704448449450592651192124942286452710014328058335344175227953917670511725222180169920104967285104520103356355477731188598326568758350944169450885482834295488766028417140753181085676034869052468563188686167888734018400597668608310797118890805974585968425719514642526670492452560165398883842580011424098430526764393315569392091796300591650596044103764832240233770468101762158684933058533131952337510386881310873977069468596424911424444956758558283194877083144163538501287846960805871171831975255356547698035475555273333575535823245241791519939297886213922395377597717508669604191913771000832400763602708256840958092841076093131240462785414322884916266015354606485141385680700481888553995375290083124150193285568301399085395921804155875495283310003714458423121849946985814224672262761642660587181007939550480024280225180751291291478813579559544562913773232756153352149193395731950309429447352232186399413728211124113061189161040246274855122479530064597784293348319664941172009921849244467389724816449059374856390445799883658856765884460210102866673663083157734279046404110244074722577003597287244278838343009390858599961266748829725330866730105581828167072480395941213494540130825288780749667896639041315909025225403969835914969945841629418976587275423170021138163561140346301071436068508151766189528058292953086600438997361085731259138709002739531375412485853249228469074961352000917277575024402943043199802016654821974363637768192165562379639567577235665819278574005217688257173681526007274824414057660075997186815253545277151863860901834330366848255290673443561773994215935268471134061895290365729392910171029942887070537870416784020361882075226819339478296853032785839378973317145648943182650433774198434260066535887116377163367889791764688158662037237799371638789560485550776203675930749964092403585401055095674392802791866063547390462570970676536128877404060936292329947422727859984867774386667983942482044118773872303355562077037063698961716325585341876967730513822475887095673080411788833508644352757190976567835375673795984742690780961164750575702282241770172090559253723149655320414767916163957706716017682107087201624508114169425265057263870935076380705797123457184210654533875113955177174306102766012534411175867176226302486500419290314130490970074311254653735113151758160116469328671223665872466832893320883185115477983400147689434213976992044497428148269118092990484399921917263722289341977949721264163277973798113464201817537301703005019041129275150614329642063880931734390983608306027037776081255340456151801744798608195775197741766893186215399835325620259883090734188050263855081592654008600918469754046389408783359806186165830931104679070918743995070011773772012465581088453479167556817411156812974510167599149747294170099668686192421101233051209311545691688053768289788528786869751136358334956651407969574776748823366079982140176509480856750334681013524291407149844895684599701556763536563567675696820142823605814118060247475974079426604005972093786391427704823674604846827798643542854313002649028559355507674649824503531263946708102283747797523825091918551654517097718180302737447633449639860710323338773791044075404302893323634356312152192012859728358899833945729764116531701517676535791462112363201528008669218489070725687618100649256905843713579874319794041520787383673217834001818662153479902822056009761029359969153981222788610815585563917571360983921447293802521695623178046547857257535379358587019623798133227979667569473799845949928314555136525550226402430057731983856468798550643596768086350304304868627702179135107344802763693808670790105904729543220830474452899874886301749692727596950840871699034450184713763207574942386006130102808429227865692140759288884566781184152439454901515412723080722284492997530487059911630682227548298789066265469348143805407809096593472622526266176055494357165281097164008871417445445425540507093895696315422495240102278709278954142995313978119542505501014454008599204949241254767691686088778253738792668003612558466492471903940445380512098483686589291218054041784160821740846948130827951758238224191696680051216208972070728134830248779059504054063719021833590230581885465052065033809941894702061814237800454244314317310141313627242627535418437134491899827127466431222812804398676164287963676848011676666833513999369986249799767977136771459465474162895393498486344673284204104453239990616621625939281740402328141418703834834160012224658375520773699118451797149344300724118712970582674221981390747531585838034942661758514194300004275396419598762111613614862141551251848722456294702481089873786840118932089143012549331850815741512830518830317269988698184727285579991898719830914184717371423439693863366162716858994041894595993694602057206011230532943126242554687654263734687328063370358467386250580612072479158615521597463947495569305984180205124018237342390825517637282647690177163976941204763764114424152145430151419059446268317453671667636108832059278338775487990224035538028599051281446321945129860400866492220074769494544398946184335395040782598067917898233493403324910020497950103923091457223942900521711157767071957687879926956255846162230105028227754337832563348039322438279258138989468208694832768459618072925829071161998160163489610078812849002639601336325257398032498556885061075792747210250975613354189390219657322832552981063697666463718195295280093001537588294786311119818119043603335211804457015604825232950871637438215451324875290862543362650176049566526333651279319372479404468084982369504581276688761222160643148654370111590461014245346237083695431934913250064985175066823648697754446498417440719088608304100147499974341439290890866995262981030912442643760167467378409590751015048749342947213711573823508019714375069178072227897456913923393296651042610256541410717774817808519502216929860430283152577469722716714114358240780292651340656283347192761020601742020046907012721029778873336693769623848851374623071734083145383092298874598892366585678724497493745740818664175207619637436554860643261533047598813475697001050928683854691455850214492565746902460613011623850759486168081371785601511489802355448516332512736661606296257837022464030898784255272362768344739222807046949000553864710536601129671942972130196184180101053973716891202580964745997753413744419207661805708225143811511516541949764739123796345481263456757469113498333683114602465968613931983538176312906058926045842145498574158548875400843949431025254336974688425840376702141403564017719901167005358311741272145061302156225857250392373667663093850308327302127979494064597589321324884461886196273444843188179547304114201603195288423673731606577604977341619407095956600622942483092617335728628405824293301832312664213684340019006466510842963260137322995638892431209669403936065735029423491609340888242332131793490184446055093085172116736884738191052356583391398613247765361019501484157668249427377829180210416243029831358216331547871413315011068153774192511064916328584095639229579000111886941507169167866955042649150319269882825850373295007545750526985607072634527888980712613456825216348559885220994673252312278814024674515253349370234796402384986179739116662917795845597536635319742022817886121652588285107233106767479518439298313269564590758832632886516109182564921904599228759669953824300950549199776903241313507527338800771717817762798918239448773806746173756154931475470668504538721495845913821073489207652914429610816263120728259985766337545617907960472948668810316626678100419875952487789560114053035622129834982832520477752641634508516193185523546520479669105255271485564673866270245531929699422955388725605341924755767262606539196108232142133698524241460711952426155434353020299865029986895926093878476678069592545036065069028661381825432047407385113805772301590114829435895262583305908401019205840046429986624287001516830037515514678153891721850177085674704304673545123362460152928068565771891366001925571872074089027167466776688301234929088707112508119476970195281765074636260794515508134106676352290756836576595790810317211301084283756661484862324742760060598638996473347772585816804400809046037690230990453790967107017601726034116195928012477752756513257038302724480419769702549224399717215648500729611983900117438188038932840577613493657621782773914637299770755486262740700037484905648401985253580690757125161906127772850694779866860231688424532755204792531505310921265824508860619004826514153115660016086979651554957381800286928698498682744202365815204809614197695456416761387525648274241984762018008749693501272744767538810861187739387221365341687508005589378421051541651046734116685069727970004981155368773667465726731916571698165093641807474752492472432394006827923717849171040132997447123951585740854339294707320279639492603784346950990920954592543303280681488178575703395162466233678482611232184106256481313912371025670351636378743789014996327530735993485246741559600140265840647807073861163817920011135355550845440597298578467565198617465504929605056326219595536179164752822407929226339103050057505073977744861143536526130501945322519837211843652873848104369063153781312982221664238147294227251631392232340075273962805863536614458865137006662714380638518094123949795087457691567593532539332145514244595318356005082797737252207913652066285457217798928250130524104776474849586799207688630373157554517509848267680009970703177809843221842926330680595629079801316337454436878067880665783379014453908684294551779894073617837132584365663340118276709773189779353939096863017375481771726888620817056696641660364132515244972287134477059161715718850738394282521767987504560931152106852400515901411635939154311780600848397958339101040306328540902330495483746955641637363911781381919962138112030208584901777252216268805299679004877892130180437211625816195499704048937270789422859676812983524959043697549558557571514466445347629660887182266898598505588481463457043879886829505028358327687288597836804033864719509023067630354283702735055938148262550737618071628054290950369056000550571120001151935086040181338330666983261838477589362570580601902945652797343630886075521215565359546656537689264464788202316823064964199764099275803312083024824874508136600331955429904635134588885957014695433903263723026541784907318494295507814616099674945662680576009918134024924822747748952647344676078790314155853356302692308159122771346934538972546710969358980917521803615163052534922163624050189724885494017181379520470565725837160545837027717198800155489449685091167178106869554976877380057132038629567087520909875787963170728253257146431077820914366724153318271021151848337587472385666245740446291547094559096598481857575851151574313468740263306501818866629810380860312831429043637154924568782360826166110115261839967044588468432427770878306909959348363308464891160112548742921975172786550598971039228097954610574010859436560069136845425824712757885217479806463344342512827096412762667075870079752771188295760041169719324727511285691098338747321949063155371118780095056821193768348378644502553301220032721778628340819528619488146879080378759756639395757928796612876252745505205982534400638145864320228779833120300524274390855872322926255886025196678383829659665077867795598063770018668728141437206070027379552030235212703713204950214967159801285529388782715170666274049365526496055668536411494623681720828316846228786169725961463794721335171213275949265765896964244634473640193149701079120677846655905639678870853051248712486275725218838150567975243560090145090777443393016864547649949817131439346997322586608526889375917759007243239452837146816945901035913262768210312799391453262590675331092471736361234894313036195920888043031341195516342143654123114832713980850328229644481330031660414252995249213769589567842120732473917955714924256943528952347536626474962192698715138817552666062393832761656564770694308548949045161473056219698138015900007982847386852878030252541538174451881005669258563052579081664499500064951459054860983158707237094606339565314491777189639627597458329527481861400757686864847887734936399802638961272151214173501075394779287253478509602082671378958667252395699093719799812577308282628275009226068474508833806278274289419496233805911962816774218572274124577490779992808666238633536299050989390880568798946339640597173772914194193213336789960486290733944519436127446347687912286162284928015261499729333626907720275503885697076084612283014337899050970380843947866466440501053058695497591981246216814624135332397184309295189278882522227605375938614919905575214247877663615092284188526741381206462475321159784928464280898068843947670237361269631785978617917510170752482832143218206977360112094565206717322216820934342731672277859241316238465995925537090622495848596552262397841506376235980605359979709910572226239300589772502712209210326557700937526137482384345228631643583623725302732468362435695447440014362317956386662947088228428586248201642723671620734046307464942975346522194772305113155047214400514230403344396064819968364315707565960848119346212778874497604331730069385429300755238563683493979099723085725902523197070289180830096803372349852620134398686935914859392096585064090702884840787238587340530936093150068207855854666661705582216379331067335395584380031633719973052077585231103215220261158055161075419338279112004364998954710330228624353077772019330920770818290701023001740619882797562407696656612259436318501324443712641860407624717394444182796491871346114702524229658634122954504074074186310068287140038108674849630585042666740202758146210712495035065266337996492812402531680482413212639337415937218817624241784800912230313640720851396715114242871803471356016763726824500266180163312254899121059270810040984134066306379150640002550474905658031398985957200323792375255884620650513408643566510280703499339089870904370536869838909213553636189515575945704472674846131678175185250517247285127054426075077989820906801323571636568114816957726020723414185217619430970491376796081402894345780849098838430405597035451532276748412307543524223552773844435991732384790732638718891385105051470421183207325489346543905626368100084420565974103151825141934667501184041862841202016441720648288561806441663583514230156534033055380251603747395204118763027141021701133795444666163950069366872298952576797989831461758159429604166551230242060075381266446117083984825261776803629329325548374069444165888953476229758200891339041223754934051074913047753930457381269757608746157904176439180418357773969549550447031417264881897299281880852864990375994364084728484361417883327389945363793786916186013795648342452589168249465248337255576976622132747888333447309291992385831873048274283509867704042854970935590702561798321482115441479435133443182133624828647700636920568122804784655261776043058656321732459848142132950162091365113379560861033178589375671674997207583652914151664220210036621445457304240221005503504220330270355611872495694885843269084552875823593311203813872896477797095168980476668523752185212935061948858479793837145091899322263762025144267052980308800503863235184759426858636428836830798835766367667669922398583633355414288722006999059283083955860771963687571145527508992825193758753003197266493703809039444124542351927018041304703049325534998061307340413735245156875009405328895102024729314793594429234616772232394111357234681714904419480993370696688580251750227123675821355049308715863619086518794181755358282238787210593935739854014679546804501251476250550323383335784210192257906505119975740672764603786164509819798814236487221898295424176844381607091852373815242997092203188313465836002190568768964723291616575774937068322758740271093089492406112279382174432467926218626642389868194457190672704546177328229730687426122642784534021339510988912084787729659847694420782752493513751678954012552864471730404494508114157308246443344094875706297003990643172648003415729695964944993376064220790603456693217554613381098176477597115591229060293778822019144123860146871574438560858290933257772958002219903108691018505656283228885131995778778531098092085926827764525889366148159802460317994292691422116082504381967771480793303574537907414775376978706722727296590514022903991070784037559514430423254488879461372724087481616936703499168719353442063567483983082261834505634362841995782210401495059231066671434373440953568283131152119463681824613808884144517899550055340512624116379451722502538335805247783514907173677115059258516703440146313870219206890397855590698175972436487307708638447853653057442902188207936461613771476684535168548924609891784069422009870932074694938833045972038849467456158322708403259655829028193321118909681267360642902469198821424524492464336528346872653038110860578310078630851773312346990585711689709599977270082157223347265503456948288554488206070637356898533010143858150016082518830543545798243270030581123932500944585179851897619544845375250247059410514576226936486336000075620482792844807028149609115280450142905391773508304086387100305173098631226496583761231604195641912862075178408142387675619852929328733533093994964603924819942366316117439434669917140190270323779739934026682121935994773596285417873153303202908715217511725185256635839376058197271637487190824113171544654487108263150730394105940274686174706708618711265672003614507760358958989157920547977496400425421195424529820076683679760529106809602067158742961821471024401548060698766007324432697229688201992170022541101146657582860169690032184670724604363056503648956001344447736997261223516092729241912500719383308115422175344812418807187855550609380710649488540951297559558668161081801523085411778293311262359446673252083076896578791769713050936522504854254581663530298664064951637412388377018510815678389247172144243650289598997334262985302678250875372267283839224988589509301026696303927112567296608174027731403902901915071033344146088005075407446340160875160212473685267546344893590083210878237654900177687758752008423359160298920725768389205960236949609148766901374188617717903790572274045824487826921873715006227804680297149788775294214206710019285703690505772080544590623089671119159030875493533843677341718904993662219508758708741464290661632449055221339535513099705565801262711950085797658622152356140608813883745090142816395020190262128171431110308234683706920604772291865892070611844923060376484408516570571283066151462597642066722100802965083638382229610158845113913920245219824791038609522303629432272101459537211474757072470785310649665887899086519095814616363033179633731520824721692850750658189360495632481439463666723898818282255375198244259463054868800452074573032635102399656874758698121820395022191488273018628913013736800159959285933967094325979035851599223826495136829871535302426547724436824945852712883753479627246515413946599589304815943464003010547619423454836622772332958593272048065653692028433376555442831089624687449628394694768828550606348812306731777959489500337454944745829714788218975003763696062904517082389818959105999800681284633650761980900853344122527575478276028131515232853755874237689806442785127856967585407837816225137929977005383769206595396280397396523914423835680781252924779979586762962265704861761130834915401440245721648034722325266963911490782750103976259428194054286939373624270549478740623562808327533077062256788883266688614838679953115270414021039781431086421282919076440067897402359483634510548925468974072607844703978430090904933135835796056348594409221026695525809868599521091186565229496207977828965606636164813352872788106585997655245939835204726230118966332125593626185853762575911122172164098806903380374309488579315135889096910064212475972929162986562980727495293863795345870364765587967689269898984217362720685669617256481914557334128401884959249888631631680607645310647217012393619540370725891056764754088623978345104679425120407182234907381136137175927719729059843899986565122851472178606054024354175625640881591700444868412173585832449775387071466521911409752395724365515262646712528556831428739037046814735239469373971058484410433805909426154727054337103366550540076215001392572903350827808060274795799559440397930619887736648241976782155328163988305151826944342228623942968613152059538437665412919642984090668566657258371961959755884202765778478522764432287443198759444292551811532555021211840746431241911616988239663213040559631555459173487850459114628117239912207811791771293306151183695132242408494138035749974197710811688171117269499524932619289995380723022088520199815709280890196515265193505170699635250014461434840153808236141937160605927653717614027202953251598658673801970746698288584655447282913224897646070104082271391912074110443642532878659685954989787965822200803517869855033567841046092784450288434381407173056279122991528704240391316515825434567161956523123501705487681769908972331550521608116698174171623862683501401734948225106573999832857606693194816071312721193615317624969189437643009062462457141839310435591101039212615419105738975047486926577184805343554378571540612302245484631573628579205192263457521193476277277579568570025525349465243855770819120691823236054109460216998803104180091070145465099894677007441666371357097678057198842389769040881975977150168718100717693154352875167307015312952025155957039572485756029154913639839861628609024931174614469567572826742362002724037410067514749958237106789816123472042301796345860821746364890772254169249851129384444140986808436530893405181932107901896680358382542072660585072337846101653167729486829705964598755006812694286359965408795509147268272744855035162100173047998887319969795850941580599395309962902525311330648871001139509224979149779083803822028416482518259036912354297940261499508786494111239058528574447367308394709076622286693310580925831150279306701423617692111475091359238985473857565328829180135225318369588906371336514975653574553213618171211938850569127408761160883270482815160427081464209870029547128708219655083607185705041371769455366254073057432154840707144318764688961229787575667722847071694222832550715572657181198275534332952814278816805161063569444576122881308439381159732663378689362191592168601787443861557665273703501037771677830392133358265918914417526003209297418382962936434589173147047922723524452854372262573452191391000277044609715631998010554078115550788734726482660681582459726408096884875132692556232303088217011103339346522356478277395088807582242462751368690202301188012318152205980582187218277253347529029227069062249891764641876408115936074765688974972799539111531426379572174090284626650017725210221953951776530745786354290983038494130345373721282679852449650963619929456295946942816918214881214585944045228915204222032711474221647918209324481792447659932392717565680184983399701873896273089565657491488833929721635363358111287172530418745792798569456807453438157951736347683639564835536654958120215547354690746114662768420364447398292283553254922464680779761380685627503933312671181772210233270426918482909711887251932001766257153847976683864408454926048641747178631342642076290556761925316434902211762003997361944344980274529467944006259245222656483657630423746362951786161832508947309565286129615557650653603338628295825450021502562241348588316663504008578430184296054371642845764904549533134803713254701759345639361865574347953404195714211969109941217390014130591857519454679158163608400749473699702328493260080226056113431902991848247875593111329820880360531215905158756570874036259271371931296619909912813891350493884418595726542960917175361601844759822821120239804092779378945337313786808966965407479963436761591860514078652545436134415495036075676302038587759441497501965094454004173275119057961292894712587415559818192772529045570949411857550669784378763646943928997994966342030263356270623194244798254058125642099650390658473237182201467466777976200312389980705066512689953065097045333774051053139884271815243285194987896547992296628558395620532656284588686939159852613339075360347232194695424628562132385238511085062201964615185981569068693638167040651736516586034915826225335322828213152785092297145594844831403965025784982512428136256679288221375372325773648913652204910148092967783566279477275880591987122666449117609186797899882261786147589556957062085436154626997336799392939700584015619924711429054128812535928622550744870609290893416619549099379194332741515683263726553100378088119369292311095438139852696662727280383113384306990970113880568977033502713918533452715229292697712370621972211128820792443348335536124906110718653081521978209542856623502405353612782066834182877388383942713486163132784826150742133082964149994149900304230115663030484928107771465888202579504010946240976056016229030863969802039055595721614177541497390811345347359007245075310536365238781243217120545243353087829875616746659101594895492753565489493732689124412273267270372781025611636414301519419343083947678740448500395663406854267558917800683635863411729086642590131977986729370778666406239373394600172168266369045997874072908165060698978359035033890763029226009444053734475646005565046155618220665176925795117466821669100623062821358383753691025470839413976800356789290646786206483272831358070888117447492154735377061387421719934262740708341571361506435788778639346502845484137199874498237709094600480113469434998059917977287602256518886386279937801481591866463873002327510749572873712680008927267717769551477740544817069627567151786359413626665722071044021929076939850639591962486312918321409063446372376894850038447746573210425398410828685249115290571580882296027092560800680550318193363407099848840006506182813427931037818548704776903907858232123524868959684354929746318764486463121962947691961266447147401580651469405889637795791827079541313837177265528297346325512547842398112643726238449956077953628790300647550246089704698739333364775462926616687483806653332974078728158195146902584299127506254390197491372293326085046155857403042978813023852728527365821229418846700973689851421125266690712035364986985810547101923184785810369032927225308321361649531281990667435147826270848150134497812925508964118401478933541611014636033080579309947011092944407758535637248978187144492156236229891465874395848102211011802418752153095615385281253136616190503671011519699657202345462600587988530311288150935604133305611348917960895994458926869132196727490581279594834882166549239502161792322987159212608752431965459500496118647538546107384604973556109951505420496333228865235871713127189994398622364678606170728604319092166311644524346659072702108179378087681327749376221189561727169278022617613930404219999709500709990520535627271175803392043064320728611882572691022344380100305770784209447340227103771806210095225741292969113367971644374219360820728088996800389286397548495704648413918767971740529827483947288408632606191877207071432918104414983869557662107707510936106477086329956151337090703873405023783317376097151063435545778787768761774007788424227230541996353219131319634747615898176248282750438945442344427908637394809664251309894832237781891129628386714411939802481323986003556223704752748299703196856909795702052006289281789889623135648002391909036606271487689228007687979268223353187408908934072132724215311200139921361764281747776940087823628625971791875255761413568435048198924200135733635339761970752737020623194496271987558004425210361672199214167473006247900053611433171509645690266536302704521724471715395941399287822724641470807401688843152937272742839403988845806710186737149742953841490382321956901489113666476119232426387506234369735992253047632210912287793224803857070630554497129798558369053612168264331891798658505128063602457716755543848805952656618956885193013720636502814585907328980272954319102385425114729881319832166567717708065030570603393514935554197244297426434178137691374153489146695987740607175486767523942275102742054408462681727931186678037207214874258930983590763330229991640643368325845865548556730429320942148343497583908067395122737931544918316802476696261835153090971268074552768780499222363878812106077723101050467569208624142351556130376940097970236334351276098526487275752485178865203583621325148779050535795815139045027809305992752363069860176540083499235570246113372474597775292698155778912641572196707315110560705518735383775625117485327085887427987435318937491039996469548004792915157742591136747009240473575158809310764079296839912938607157157476184093030071306813210700178293368523660387935589722953465121393039626603080576035248836884020171124645317582354896407288936249580501918702293197025807540464509576152447907858247557937180499991366803132251836360648394253279461931468745005430150090619694038017109323852879636219456671257715078592476566975502111749228387221811375616174638961799458922551475809911580882210243503775762737677013060163285237417906098060706408690086971657110443385770704972968270839281491613355659296052290774442686081404517014562755371979858136484251538176475782661592607236454087351690323582087810440678802215877104792217948822223276254074157136411578651080755034480747109816840963037563707846640044966664855562747099320658097650409677914919833454768515292145444921091559723046494073819509842753591852637702242595421207154260318475879925809977018354251900197195275731324076546701600256171949858044102602261188123053838419263351389175283506363240492203418739382051924105626472217617311696636490381494086015175289530482488852665448947028568312577017550373620575925889770187589673267723049178847525090902795559841216679394951183122824215434630959682888505154111365295622382738074223082714879625655412249012898280074722307608093508058707334444735307562691580295262189474491976728206187082614829032856911067211845750105506740678493858826818601129030532004307410961365353379458025843019235188570149842822990874386992886556101794957253336921584381017748489878573648049665950688546627219264311661786566731866023284392789173268856349998750027023212794924375957894702178007687378341190372536739212102186808105090774219979297974644357300343094703641936142303476116158944067671704033309643384868861443064695584872104213271339847049983479532107191918014169060840816566564847246349886659303158247839193883966696332237581237184584255093295443677812961798883870853187370236091631014287859995529686738905985740333596264948062930558762416529575889824980195655075581982781137662988312665488114071002978541509938233987091399875162792043741534955431166384871290195749676236690497297357938467101556101701339522690803183260716342677129992856604301389111526054541558232566753651228908861020318897710348190187477424946258043844975778452938199766322508548771356812417444970306314159703738506770512324338323979064567818608227696661775743725171657760245544259880740039459087922408562180210977326164911153670185718984407969995749173110688556098848170999685244435598651348929734307072922451079719458975235535239693140892266538715317504971845087809380729037996096038596045122139609564870137972361181073888397327093735323881219205773272761205249002205946547254719028396129705736502823298043441587026096450141549616579502514962735340951871444175666600504755963734604807385305799275309551672299202482772834004899493386816421505146141343832001554463877219441792801361019024557436161790055884658403500500712239780516529554964882087015755438166772291454852346552823996298712498135889888355236702511718575382381249642270884156597550609762053792665939666732451378599277776945132907812270942527441550890751780995493277281629533620729960502302393219482307753358800882626276501892735565091387713949476041575328762012683782767719136736464775439240236077496992137688802262037320481618449210032310907171185102111405645850520366301474804766125245415257400785160238446897822044749485178170805547677703380038061158675913417744873969876358947725798407114764575035252452176143498995164164184885953427816659237290654684490917722277655521481075899657253744797011296725505668523200566243089631746973839722315523796486245747024559673903856232256681948886241261218526418384272657775507400247789369401822314955164595944891585657221843500032942572672866065565190419461463956381098944466875525918141733455137618826193791695952068452133393235501994623295609155710507844354583694871924306891468046216241465991329494726398701866032386721139997321017767714598521280454611092196535656121697332519002237576687068156234583070645932767828312394151796009949294128808721638072049513230072267224155755480522197353594925574678178979501953468368869102851698053638334766241758712218126036273751654320705227413153702227229184592542004245290754939608661127421977559697945226348492247172900297020773253991888943728633295567983884417464444373249470736589872407836317194848895550447732387917181407551019154381103235485997020083237991566989188103102529414945071918022374986343589375198985789511305602220644726523960207815637678152003425847730239310871610621306219488804951096013687788699569397209633529193272047503779275129830346042204605418997647150999022737544075025393013892279592148094395271925737150928346924235135964324597529861246555560225971834198744900813538967717027821611520809666521444233255162386761153433297065992390928790584184927908073372959755007069437836478942065295770358261486072490115557493076088296630749459626202033724871376652004636034405603147009762985352306766863504912227190132749636144406574003794508011899689255705444153565566656772267070146116766060413384952495228525167638278456540776665928285448198370863236208386274210904727870362551818717114187521603138174158170153640595717030479357988423108208062190858072701654955170561084719203816082221590712848092300798614103618234330047077174923609086555921208954098794911671071765330046446818412912382519487286387529463384108817770709508387620942953954210819337954183588355298239549385428585826774014908019287004010238013178333722974061692337272605339318017735238571778040458194717940301589188040675256454018166161092504267007938327579401468076936744992495925172143477700790483034124599005500166671296481220721156399180423958342608038053651265068771095959679736324691024914579978156566553689031657468720014640415136599067267587436117697316384122640902563497408853613458035094881877752832526531131760569268454026365803830962893285229452034448437810540930693508394457430233793020042282458772458978944293536336601168781351246764624097984568173291952783071584173114575482511435907808756556520252278479316735802764605499681385358811486234006280816716162112007550507918884475604020189506231830245232447686095292932710181670194656106974185720746953930445471175713024907717066055202118868564137796202867000872363687497911514805337460537405773222788963353182750934007104521317335068987032609212931015671683496881055907797180284958683785166102665411989759245884179358918497864341700432539094435642420043240524828150558896511051908237802946334179680215479405596519405276342963754408780201280000102851960719048982533704745429504741157434132998525046897889750231068614198669215247257868009252160850879071085612216535553633009127157056693298346555986989008313014049541043069886050611966343304489560683577915359926723864571930321820469312286412079884830330053551235972997724237699658968461295402588542578635660697711439971872114496047867250498256335086738803791181844435289200633701057165284504162511932208593635998402152692596487992800490557766905179410016176886121243569258786194326834512831105835843255222099351638398316517411329380982117876089966700459865475067259002225421858834974809368061483808461338055874013567213672340922145860202784417480283177347441102065359874900761426063226352182493564554250745341015970639260212429609121149079048680668637526959130889220193465604309022118742024271920990107303794418050869134553947164805096945494741469675422668940175670856990932070589153745521140586138642117515650245063885977842541117956201887636815585899701081099596184345611923489116385343053224226257000473097333293125087601029984751465960754052323107545875377298703737569675456908022407894769989795808382745849541329583642360522391498504116574643733229626204221122597960359583305360960159037273740789773561359702527038941077478673588353730703098165274884207198228146716028223410467623662990122095597509742657781033782944753673445650120056352221111788848570723309418188485116854077370590841874283623090007184649101845136666738340439233921639003686809439441181699292372216692912705597854107662033037923951034483490372281256407501112170644030548048374699163292741831950373207018338367695128111630793884585597365339550165404863857089899191507745674093929786328043703447763102835140519318323562229793769690507691985718029942292580508227038272118570972718233339728268230714123865152425083701288729969947739750994918333572721953804241589876758741725534220354620863618416010251065297793937487474797554890225543986463240556441726085869981166733701402007707128925506113670321911258089646137858448352319363451001811479253914544950395415534602766667345910956135806358780636619055794350601230664846712157874566848130323115953628582386761718440243797875357637438195003499524989322445948166662401366208562066885409741382855587953194309716909264454508044034503981147273725113899216396356838000525302544107514053167849963715435008861654635369248172151604563252402788482221770760142238314070255564760769820155596641083104207452219188099976833977329243413023503677519668352784221350966018919144891895842966947108016625302262614541439073188002097160742156963357475666098676654821942934165263276991325352944870300352860275537008931350307564110016595988914807901522663860733536782368814381808030566890653609778673233737924919240321876669985828263426937206249210652405677208048784626200467951328481392903395994899442641821497545351666584794025347705690962524580786860456541791547968745262592478010480556200362471661517508056132120241206558075827651747400751529719603910164418829515101061247147308838879078198475800714539332463933999708556618523885004258328054740341323726301300313056071561223447775015790374141752189039300482500381876082122331286750679456517084378957688107923351787069284569678655918596233495506191691942390608043980614327863798723731389258867593292776509275193179072028828522939056193412312126984881309704264615589987081793391262372228448633609170090391379490259939738126245813885142062610726436165809536991895089190836564132022873938020893568049209409618606261390946622313596253499300960546179770413990854391649110700008394380226871445193052528436783336658903953626682283621736774346815125526708787956182809363840764813170769861222898998267545992791866424427323506816629732789563949880769369740800275825368623993688026587232772853858700713363417540065867030687204349035882658146823761834152209579337587754293357475105748264406823040609168787047532719100468464017009998799618597523100734875557058519797093877361014526568206823513530931241050576838954899870046357694629547762919909248415456251023084665603850584147240307835205973261696971623385236173985767345553618301101415580615361145193998782396353814337218799915149299566343652205508069481894392086369855064846528472158201323202213635893869211767390803640297375602846507266130522706770901678189165437507267467397709845873940196992522548060800441594206847962904081992379801914282452136325029693412932147790121363379113796234441444722178287075265737793914869639859339391063666029129488114661530093975297389459439327227335809207609641076080293106596341187980143514818625193976469335589226496876224901282973225250610466240094699279532252802377986351068438568566553037995715385359558277718176130682320539188555332735768937762537499258837008494044037430219168186828035647549622719381944459251487928572577678849366311153124659332246225057712577428785089995088939076490327547788024891244125858616309157417182098223608747023665514943529256643558109915314639134174148867407430785372907016346551773353771040029479755519327863515369036483451194734279342191308147718171850874126986710809080237809110326880386501358595309677971726569241845706801979182962895617310604147860489906769792817979685682567180924943217998153668991296530388948656353806633572578150603825838698048168550876489987227220915601200159334740418885405945678065487805300898927345079630114682282919258383061642219548720753284016961441216433329436453405609409278291229147561856495718576171634181255961764146795451697017093714123407987920938698183125667628566274425395154064858157743302336284198597499699122586713631729376619772663207784499442280761359187740882345971261249289046816211254649942870255586122475707475493399336460097064673075586013320004185744489774978721442812310292529696364023445184214390920291997204798183648265773329073314537932385753402112216491767774766504632284315667821229035982634919903193752072988973589270568478317441617900234754978538504640380739618372013072074124723103724457160023190235692795582168575596782589034670000043591269045325115080933341594164198239533314057820873422347695652565215730792412228247262442670980426170888728404965461035916284124483851357972458854612935274182992519882091081496944879422376441707127867788489865211292463115838552037248174906412530678053837214110540078058204347726264880696777473993417221410479228253254954814789621156553235211899389393507463940777742208592316184961590425064563417823357268656862309497082414294868517067537384259596720224222092153428525355947737226604496882020255137233646508865082172402671113586781864651804897590023420490014041576089489120936854656605935432693087905619610432033421008747615233833753189512040943445881915409119768605261543349114035525212550390108002266746126567042021969527345919434975386860528182010348089973089639385920202283464230355191443614397940272637205397505008697994860770775191710050214857345298126281735286392705583555990620591647820078857221450114795907625357454329910986565555690582881705622304405316198709187015815777707575182136895968819154269364473363007019756215200490297668115925141936347108258804480681383618564524313715883580824007680499551158112974587102169129187836216168527321788499538707593769523934582411727290788275743240151917801980915905175499613113179169712360294334830992295630936901346859696751789510807440575131788523508593147277923033125697799561551062135042677361942856046830591633654800270247773586653696778928545858655811619845729843745007329952446346235951951101509783289608899150502104127782776401196965129030216346274450692299581194916665497526787350987943722520023890127492641572352997752300597538545556791242560262796538161208137744474123640639962069527315835347736210088048339825979696264423432256014601967202410583562116828278459480196575773697736981154186120818312108944123804871378887046218407092114223490308644074758362376587625192188947239742051568529484749898860999733672350351107660955043643227067559775451416516424261013604284913436507432581432322217808244880453941786115718678613197278312423963132134873533261721069390393746038278191471338957095593190440769029178320548292509544281961421810572175521034740625225563770736496877750244099550550412895494274116043171670636739434599702220239235709210310642947783167395765174687714411911934545388733111283343771100034489001597245760463738664396739126352526033479601073674028295720844023104048414376158395338203549240288530389092925082786338172826580794138798376023153473297252329849886308618376002267704840137687780685343044432334706549753165260041661407673259325444592575203237958183368144688669304861792854903022838239840728358579346050508423768408101095383163575420529904671650683755963282080253688963690492409956803494975139557910845871141852841298562666000368687088583155203628212449819271821357164830220357802958968179004042726346828294630351809784341173345187348114974384207807383854931389384946290406934954057627218856603060563786581659058692823119129929611632198164952535462545914551896240238896775485414295669247504295731375787235271498835147798718064163505817777861055475431263519455341048795883379766169151251508082282120678919388459742986400645959067077308167127645291806912678805068694238888088928940874050612053682484606156486788000532126405421336128622587503826040243199698759588258746327611219646312109427258663640332687271954101794993042754862362680093458176975265558408893247077410350592466264058683183156700886551065950924102751792568614806169807317370977997662636609778188010239743304929270436651736340785138503833941577469253233123589367147677622342467137424173023359767657693307350595355654199097980841844703281704851119627592295283658896019674864720611475670677161461415199793119475143401053059570826038752896015796595836249793754286215253422243029260444402485810265863129765428245728548770636988044632370519143878821922745012169503496958958479178286475653572459050380392794376666036342036144722490662510058225932021516370728890133766773867750376982832917485731550140752889447839756469031448687520290162737260675568793013716534013357436065043866730410081751811026193156909005160305711543849271343979385514501090456533546879878218559828881023959439687352031182891283590990805805937116799169939686471209922608951936582186500951319052963774321350035237466301881919206469062785171776423406490093781998480178546364886293866119651994542309793119894600428799163217788276949200275014187618792872005108040640426603169601396451984581674531967037961681706310853396071252938322106204918834938201132162092318808352953861784276031446475031632667914822020583816051446503506953057561200674143086911086469287666599468973279685151068273811672260977923010594023766668233786809276301150538467319919308340797646041371391137660664756722685224008189154148338547079121474599266555098970618635242280183766453244059719398843916520164206886319996378273875506032230903009404977200021832113882869552743182578516911767132602017167681806106512240338686067708254026551860955148492897948074918966910744134739089585327473307231740835328023141140170171664615516491114174602063583501029414053565506701774461407980524306973772471719170739800513082332992710584975339121317309905025555778971941691016673256244183843309765371542218789730990609127963190087289042590940092651812751021676960460132504107195150859583770745337009174866800602617562268877733335193527989262651238898077797786861920742292066858477096773850458202595001323955622868504571109696305037639685054714341931606081867924550922236819637219333298863719185699494824695886746522891078158779241148080107104713142356417647695416304382932516199062435776196100193054629336075296964603512565843363923394951160096545500694834440084571757732313541100567930939583805698774260887554834307830855873557554937841783038859405067229714285242263709985615746729913427646965900074245869902604632055747742461251067512317104510322377135627166836698429537273586030035168719556957129717528251990892326972649197272591900557151567867263151804408182840631065331991377668383809649621933210075980702552894028017139082968819274595868843076156511054827817508879840592426590270865429227019918129944416788695773449196740113101350067481320755440887961966216967071955096758514979093371382439294160161550226417537888745548920249667079394608373269027873175624415707382899471006062675724889933671278098143433131254263005504975143081371625555020915995897724330778842090888604788329480058859045926013608994291955809834579089367799026292641524477029616073756293429577574728090800184200853744609148211615826625768386470360519966662233794930384648774720041678141345731826468256117498374217702753011638397149906455641705767587900895060878667072973280423174985635143113748487114115881739288559183069436668980987043632354212414903247241321776468333296905863489352299670625643834826346271578758749944194841230147659608307923541097992300208283691636788917428367735230613527114710819705889880492306208846729263150640513722222437558289336683646452699025926980397075690576551366897970920215203311215087501210819396108985938503367805266781913668317404061789964143553406618447531229512243504245240569425767172794697061733203054210565458112039532492813574009351465327804156511581658017954783736763627956088197974632200431480655534648750555924884007752558692302528011558963488112416675342415514848388069710100729380788077844890826440509136697457130467439222958364859875420406351040081480696402427217241773363196790957020313555002728200392249802277095064744551694739226513296800325234179320525293889069710029213973996525627482415967752704507889847468538177136856225066990454771157367289187062361206147098463320372883081869903961495930554467620530974390342653986979033058375858825664444609640698699980400784279123661672310677121153631700138454717686107689049074934285319328280993825464032823761909435211908061689991327862850473541327919543455260516996761522902399096762793977476028198587050466437217830924446722003744021839428782957902058198168110946161396143444132750981256669758137433175631410278051255696431360422074654422994962095625381111908226671725961571323746224319130697871841162827581763564072762867206373354052345224428758857461536663067528759435229753856605042847403231446259618498609556570124677644497210429685575043059540951575124565178444506372724290304241602983068645218372156803366175004820928095617957941109464740908949051218114512183470538942757740012762422212425503254713331285513781948780515384791652658132248674341601332537915996416985543805193574818714309978310753825956785574802844114686011128085402515466905412616156112718856794875826720146710325032695352446604791595979832525122968733938890883460643475249749879987845361224101260990507030429489511651844910829645634341227632220890153634222246191987695642984879756203926943769914097378973724923350398068164840624033574877529239057477291217502560692065524776774425081209441960975748882088060517048030978983721081983950884186303651897788141373497448881733789699437010228076483594271660195517887514987751721896500052427915222381687205427725272958730146627598141056108485680538206503956358659369557093182234085198537357779507877621202083388784921632794680174769785797804862790602281648281688024666409723586594827229809357801187735719306338432176322720664476742158139775732422593681913432887772678703959333690657921512410372152546330916577999445105428909922954836181673495767549667588725262710096931141630423724610461787427828443275716814983033652939949425747695115839426228869450940851838439030592685573632597313910993521449370943767604770912217884078959175351873900217475997209494572108548309718528706887306260637155990098413552361906475792045790034092038503206504419929769284677622384174817738231956004232865785467954155222822984573915507312947346422907781974639112865686840404347837308273457739655643372964873431206844217248104868376430554802822122462578510603291131769400089020104747633222446354970700301204813848951497580858774467895295985369431481940996849380363552392536647510143850542937820505698632242123978823892497031496726809461778305143273901325247178462405032771683775410208427362167656304373744898565524780587100861397302483904257175151101735791026635061810682115314828617472239261391282260375765488728790351958056841284292453400472647342664044596484894665567823247649936696510845127737751935327775097306390459173454589061436290738187800051607136172051511304276357641069879282870742731924010579214567153977606050348717124288922940180444133220552180158778539243988077944220065711509869042075267186781189294824910094735180621910588296468536689855560075609695909520871262425573488179356893776262748878157520652978370615434889960342754181346490213695932160160748650989999500195323185801695273410796260537197330815098509618972912499039762449175015319575587154778210406809509889279379102072019309237797308231116696584963089073212471303261634798203909628053646955173088602120318536109567644874279083469212272033706213797706082103323180653920664014458479424267574103455945958674319761361566466252266986888457469231582676599695938200020004380952629209237174985936822446443141434819980002202852659113325178567703061746994732390655561106656731859993740687042602105200477741276853507575623998670544310710067223570985646913768432931869947931137259853222425249857196264344543776974694368427594596868114551469876302107336611122712504640277928102464052204571592409779518354686029172515032897596420285868324576335045940674859372420317439648918730719846268376710682418881097016828771589748497841293693185631977186229829765450176986090553438473026131983125556369698243040189578930666366747835636403273847991237333094739126939270901299196095185589473436444918450239909200045869212218298594552965635674041549776014662196721241617366847802572886980578203006192903616058642052722562674354869323816804258719319781404288183544735260819705157035664607771736545382891234824358303281606451554499733554611575089682014549388194819449478900339967516412569888660962152647936524967100368037887285658002190080484853822936373150736546013414946135347820710928701927129689511374052167720634776344697728758193787931479385675392959134265397417506703026978522913692449935523193755204154466398740363877055792395005321696259806632685815371814805922715840311433156401268148347030963611931985843934949424464882112341913751355237447728623910538430114100045622126947235772122839304348595145732249364381522009869168835460650712006037315365904583417644890189725829521962333307019617059195431400168262050565919152276883750628658932803452214026036384517459224558465239453041791565872165480182531134539352904938621448033002258558112605973129142853529091272808456550957150333383129558349800755012332083779703540990142212179222833103259722114450303466773826303549740908129399986822907728792320302656323045643595363116146185404860364972116370150006074376473004527195454478809033604382727765308844876325545967432944178613891801605956707465530521062755657440484602305673706989907110016142815809824561030367274910378317530226037845636323438790710564067186193822590377905698519329084390401435101126324161771653596270097239575188764228278930673492873375168889811344788299476712106573595384969095384636137546824256692123536707910304745838689819701116334371725348287528871955356294312199070678588598649631228642350695460145683991725012147001997694292889780520676165872619503071906941036764721399484465338070263300715944167766329759260428547278452097996035401718315543981235000239116244935186839664467317781107342300368588161472916417240832235916815130996299917733238340195256969726968825652618376998117598351308078070686525629602407510243737499668980585294974610811565699961235731293736076126922381621891800923160592446235580128218297930849175433764310043671823682351027705335495899753814287752987891980666799258682590611781521447068840184455596088577087534484226788821071397532173643834993580697756801546636374472521539487355838961675808449694777561164819347196693406276250159017894404054016853874313456907432802921728035323429174500920507658392903195567678611767967479618188399120649111676318763101474032708627489880758438386237629980830497922873981675543996548209917825702158362261892722913361320180072939380643002793004402817716251207274902156256323522169729049883682235454664109323863927731103095066565097523015639577959088174302723417565556926526763441198787750022695226712597779400510275895824534525047784163012673381440842552525830467668883975856731448267362027140085077793299742583813351975995534399513713506652931426728748404507709105371656415821649780538895055051104907793961425509908917986827761355777206646154970533772923947800924438622853092101913775265488981857438345336848123910710724100963977742802172470031529647741731492053102812682251599113385830441215815394473251248761421876013255866857216555434314679106742820157546410987453188833051006398967575238562959170471252789901242374502250378073881275083707766184616299161522621372901278959509689921419826433744857887884380391001898083925701645536643546252109604265805443618910461309295730785568565468578202388203762587129700103185868926800812407022554192112201545534150904416430357382899728732516074657202836581897329347656353974007659329298764731897612953370452057478294455989948324306726494483791014151375819908836491791808011176413366740284484402255808327507926790730499339434060032487502621441542981755034714665751221394277311949640971336111510722899371888113008099849255898661648920931151762342741344150563377524749706583779985625003675346848164165975925672579294125479708890347778867296798100389828678466077572807935153105990841382614097389494782460978956728754226833024034517411685287100676816254913539076552752740755934686434395249364183583731509818443541967084029759958086944098717144763911626261326346846080297821668187459852802532079334772114417984304205834308739464347448896945825507099159108732943979782133883694139169280662566034483867070084311600908732826069394924685982337199252317349495846825211238553905378493897521119234718883134139252790075166168632876909291929117523474127566497983400399347090904235191887365058308091389774521315144853806887883298832510124268938361946870962142762163633690777811902647366420026771801469125859531400916017939075810219398837724006301916328201686305178683192419473084875548972632427905791368876927927999351355689620353691541743564216371972759414758747881414118386848081605989483616005055661095587478411939874713792537760441121586394954109859452580292485485092199412042603589293770385130620542585019818741367234684013166713337562736284990855827133399993338236115487544829550081523815354133430652614213081712067545513426715188445948999787024004188222354586871393562341817375407196468192524379222228442672974172655351823629124083331474139750838215396616138004108129055933318524839986970860071742763055468502203414688739980150992005910973615131190974543833571585594852055791775547157135328742749126058348636326596454646322533059601210322959349989555697528761813143024485162344816313944390490993787701734192759435080610614597563927780337258001278744680229217888270552293134601687280619831034815337443886154207415100772662622489357588319862263068944835203320404958050384703923623630313446959372728445090132592071828831397149637843265980804287445313839312058063824087376945061893468488809956346766877886966015070559199086053885930235323708252540191216667162045398341118742175009723704212993454946069471659269716236485134886581764118246716466593558563717933768164562701730033511466520764576251632349320095080732411606930634978521634627613600894475718687568116447612625419302426699572110687551146223211099349308907301598908251988783762705424141954983078754123965285982136730613555960761954586667054508219426728016182878477010959379655376614388188950863232864148969490180409634672715923174126791163332243205438649491403861706201512353039950079212395826777795506285534134945632337519241359573511399514827332331286112775398523497698880193491641327442079778712625513822568931041058365410753764755829647955738354037416837874207591950537530616613723217535963439799946803033965779834922080198488007379120201494422168684282933873025162310108510720803478348866072163419396995151390331336338513639459099046110365978273782740573418690231797195204032214845806626882459989020375964069721557796229489867283900552293071449884166912493686457229708960328906187914918912258855881648661629345529743424272066232840254847831157759609042871802349561466416657165878820134323072460405760377891039027535466285516868980022048288110047491194907085186393689935275336186930652744871976643707176083171434862032392063111651673446689773534245423733571834003380480924129882951602330389510533858934769777317715188147420776152440044412088175294650302493265247537931907419385036777189306142253303874285351670792449466381571415776126840516082243142600552394424346388000661493503147752152954721998759714620689024122062308931059668639330503254894108357841387669109156064373569771170977464175579283817139638717967667546833997580781817892136974402285336520428819073175623670923153806534319228095637823258374022722738079395133621618668038430233195496157208489821816921884557814135063085367349812365691744570318690826947615272869860327576540768154324288259456189635699704384981532155298849022258257130998551796580982433429606331277010698258063378369352004283330770472018991995971306196137794628990222133509508400957388894125122156821036533795791427567995405644042118859694993908336777310606889074514786228081217639914523738951786400998270589994882838275504271634637626208182122240467587613856410026188239808925603718384895815459916638448559828970265960665237087613200418069190656637831949102647878345199556542336684543366446023136291472576105738744717146221019317103738019265041888011779415684126818221445668557291069114296876810774694767142293615656850540284430661895457764017502168025890488967174315873786930704103312471401390034001611163216221028132845804506714171862754302297989059393158397761262130047236537851463261981633379470185937011286931885618481275276999046596065155340835252481394105558574018757014649114025288292738619192022538371536692325980750348816902959376769810458809385759361057517917845184324800039391428023693538281611720219766376561491821661451969359696857953196285917810853165878504559439352628578123199613372231548917890229965892488520366232189812236714811112529455588151630163959645777740315926752410137803020543028528878031461620319692351108674762891407590364165132504521013284238196894711686130610938739578362304139576011449330350822791463658042436090722051782390602641228755621923164098805769509257221764127226860630249407791960694715481245695737883535980611125837751101007650860461170295825734748376167640342599097665964764056719305399051039988625464650329851704267496811517164374847727813658797083542206925796985575706951014345563392993988498685695480609613934722079642652207484905732985555792520822718917565171673961125732583927391918274080549540677918193338707059814924250176637433025859747015830466977534603919534568395855337725300864109416890803169274942805271816450090515301017417795792544072045771869615234629689768389028295706788523823471076847234433343786938900135131312126432733497282373506520643509987411037147624284422372097678268588905918176812141316925107451634442177806722827482985842219085139991303345472675362894637643683873880925186758612240354834807200170956480567310661193224110716160651952498612021176666744659678069183769775291079415965430615733969385383637374352652113254769449235226412375351998773570556807273412848452373145953557189452111216254709935415503880378866066740480956463148534539459346367677044916261023453159521332711775882635493748667781103586289131984921593877445708471241587376473760865619692148481105848989434913639922921041046280307935266066758324054270077475017953742772140919453618769310208936710504715659518437635585657778170473137980655054040901986461785982095656842745793774208359198572636119592006777717128481100633000867907599410177607363217425214542217897340355223421618128406061451727183953300198252374534648030650693690504062186815940998738227319392970058970652516883426251603092023615547514349814186965368008677426280241662014813889598727037502851600904323875409244073779307903206006944587344032061796334551032705677704273109856843938882401310790214212830179074757537937338890435963842873991820001018864080289879435863436716469902066875880468446784106683677896060677979187137485445439605564882972182239897991868021432797502803799241152310118637372689771161253475835449008979025277188594204776407825494039336899153333667559729061205778056358400052761089693100196060956301611525687361829071364354662319689717391459687308687432154569120459558295562015621040416399656372832382889352597785830591630460925000956138848763976284539553869407636178237739334381951022014310028067486219682755491684427766666969116116644111519651288890992420358364112659636836247069058160390019285287251962666705111352232542924765115639585772045855413864967518636049816070279776410151837807991456196934621171879990831885562892527483202336657382157007777183089628089572485475846323095984369441839852273101434495891764928472800742544001431741735415286460885753784300635235274112107306793654989046395396559452163317484489648882241859998139457937927940704129485040717839037122264898174694432837369603097589626289917487014353848594569504621126214789666646827426574116241192732150037980588604675243275599884319582321761224912198747079401766678979946314416478821207206542272658569930117376768005636874800250198399390313281939908514641441942548927798419428447408745095295299992560446187250987480662841465498441425874281847289964290006810194296992892719848863191189163548420815921904992735151897215173373460467720339427463206625487670688725965092208216658109243136108472527773780223840743593837895203921909978083332408428866019570550141194409609011474714059222582060314471748127676514446228960290582759011122756369171715773842272335680940492983071337121173720925430231063225385396616365048997719065321706578659395298648500469211340983529547460123233750801592073552804997823889725460531645125999103585998118573586368096274334560873495283815102143282612381420508557130720002798441044815303387757557015074098440317813066354054632652989311705602447084335818702283888709099395785637173543871772656032350735105431664961005055653150112951749059103654496333331605212556838968193673207177255306835882073284508919409792673987081820408490470518683800937226023645662085060884876687165057842919887747067591669502430429680548336534529680378780006748607279768845775700032777204289232093554649392404028746914718240673577627545865351983738180381524352582755784419576123785720995933574374019433454405554968265978599656407878532619217789721410463757312624048328275551609691702778243675118082361486404194902604704396884577971472273918660311225868907167243899972537956002058562808544274444061922517020489906276039236571384298809783096788398383538631971969855211093832755845632463735120967242430735751612908742800072924953263362710792650322101223069747924281168702665006882666861423866054008330399695364651846850498388894745563655248927969105592183009980643443700996380485332679037507429357980226822741649905225488563090573105529558861321600033670370556845282347685497734863307537804461624809630869084358566646714432779134461756422267075882350421752689411233924265112956700317699347599623498069024335210848724546206644996684550728646275203559081377235246401580777593930983764827919239008441307363738502937628352884036048631737238710147689423349927580754790131992291098729512066040980733103865921715294878255965061386014433184203440163632350221013886859095724928338652423946500313933500973338796392405989793210182580056382562278920414200035964765504604693455666962899927550456100542767087835865966314938562753727884858684906061142566995272671521765430985313769411569649454505930109101855335010177278646400064894040713450573747012857479573392625059833065341736302549168146615870514780167056410092736083068649160124413144031510549047558980390995378237486093917243975754238039149208393202765901709429698424541156928422183929171159362349715574098969712054989120448188448377882432055576566815901829068346292306980806608766725613618002985959248591893299535637339617357453902757093790833349771504210554943873625931199498389911267567879266683278239162537014451158745920941781869710857592018578782950866910791345124292673294267274878840847229773553058173753041421838705952562617412411696975771011534434471011741493775796860270223565998876645787449576897615796062110408804462942944683453351216048064628177529799789870987462770833665518456234861278380842738357100833294108142233093076938131068524470708375015877056588044938015675286300543679333031633180444369213200727130143410435776507967116850472070605363437642059880033292063383493393997643032238742075717481888444635570764168330959853709354700008906966424630260722519613541619735526185132775757304075544731521506811937395356475370415455099531656687567383918188734753503644812352597998503396329182845290804054496568357818314411861614930055154634053003326698047109687892687289386917657984034155822786944894242525337880335282661033707379198440944342896381301750432701765042362393733225038081182550192428449171004221883670214090072451842523036600181047910009175156581324247374638866971896513160928273584137104358045411825827669090438188969935940711411177515577077923230481449189138023366384165512345095359176008675991257745206883772815626052344355629677037237643932142649972393522063815268768944426043398416919183932087801520871132411009988727526280477040106784962043099687445976210245794673906618901310828174212998112566617348928035015198032813350376974082606227370923923296345387709298117296247254262867392932865294566535429589148550639445102672132218187415758188303645642055100970055461184668885270468189194786600225812314107234932340148162118809764702284359804980016503551710648992907023957537245542015462125599808118052398133544829135172009403063036284110390986185020273239773659370773623443085160919476495557430062640826342273435018564929165870556013524304496716383201839233646959866530705676273683888288950231645698911853814389332960864178163027709657247255390867850467478005594142086589718852547399306919651488990040202585278448279113178467187890068242126760032755688133236102434685595383545428495369058110490744976256010017121769390777585134707267579851368295809718984473769713928844909811011762419824741897210525047201644107024711881734640196844150829808711052177786276415014774961595287843737083304837020566505417475640905509632565189864551365515049698414834025889916189871326646828318285132151339285967662311779097624786114389295202963808364103155318077642626614744529480584594788552167037925597310433995207680794622172161005415500106432061614550194156179123667360167784988981006970771202375613686251594838395785382429045843365182216082961169424631931716236870324672923676560037044793049573081650769790101321912422718327871571344756095016942267279814276819584114046472728436575775975309740135999051442740012351869618760621029863076662000221543688115723242772773764511063196874951948410221849005946643140027739629102211770770218066760296560535863115564314500043976474724693918403674075254238134892153363656832391260763740543774094020462327915782785781234186512613727045858149328849836693535922868932814195448549779789152155973937164983597259628230940258352078324688919505942577329682171300400108234898241441076946341790205440474459058580709410835664913792627507678722162381628024533018664423682949393936537118606640328014038026666823585954550631342632479363847528527644209411278679143586742671097896169408262221244702342425645712876415905903848450736277079593563248860502117355715877627538081715806507276643575346456831368601444613803266069082993590009649031733792259885891071655475857168738598424676450003353172294088321979397138014813245879456307667181660423251052001037625333930638355273016648997295899452647775670832176738670759041812021151417994611440171923564520323076289985216680082186884609921258680547632627305089734800596857514767772992762771997561482341698108508618228629264605154020013815225198752987054137917716467171971211603160641487423014285187535609073347211217824460540688465846414017251442973139363433307058025469067988406143502374315490127686057274283395703877356035714254752135652630349550579345989287042260630502200757719414755449349387038451718797347503104318138044484017647016856228201177900638102061075653171414717050583624756417763186751227246553325273154911112761526120071983628697636131679973149465582906069869311536855545461699647347285413891453458234150412661583530358943025446386978046952130073958641289737382304431964359401478347145655404121358448366341889607118564742771462982794681570815205240741668902568334080144401823715784557748634770865814743179252958505605016045437668974206869813084729384580302856446955105102973239550781403549466622850810146571805178813692424888817768736975499711611778150859514691499324806870448182311408868922166558528808290282898013423712531692578494438360593976001400351195734042191170325959431230264614161474480997666318136415944974851745703693074062468148130892505883133278485720200239612413416057520447765848139136502776444282304736196329342468416391978367805262567717618439089091769785096255252316779273707699938049214057210484864316688257688131974073749277383710189894093695456399676803380419521307005229036410540433817029600306635262580866687902925346158551662322980498852591164773081870700643722195106079348232726627377223465254583488153903277167927588970999662141758245483935660853445800619914996007214615379505633184897662434980511349394417540758087694827770835678274833891875006953695358752239686274264855314120664491287823737740248196510739473085010089683219506028746126563466165978446287711713576447631488612035679177509507361515675824633462271596081015614030983024944884676093240656695630446718647017829071790409761002312669276202571738240076974355303085143114726852196965485699095954472892922482224965538815350119235300089428269887801200785534796228610479691074462164606066548960699669839284147207496870299346577056380957094098405975369481794251888438977785059022090807304323736851635416279046764195324784192034515781744761628357676808172378570227103030773839797592960561598718790756282616286125240590445850321403483789562533575665418911689427095974975368164059209033064773903443200639005670174102750117294884478637196045646210917457788913945348177210520974516659596527659510472108098461890864588347471498499430450723589825373442459729194491570326726753677231552445140057801829234400645590252044081788947330296390969275148649857880502042829433689917648634929322214436098090020152240914377580326558059088641962458508255281782415556632944823550113339334088264960284264464973731132267493301517641279594371917610273422342753755196262771439408255606330769529911561818467117833281772130075629889532407765273379195472983342489246043218049034590543486699224161479952073573271676208100701239357938768465825706344192035080849916967330734504576382757570308234409802003385997402204881711576900247787533182483341115093583037324001665318841217338380998637973220857127914002701328956590383612071284516784542901760871247081443662240329163334972824503269720818003127963862750606740232153780143779322671909830676026609275941072640509614378332526109731402040046667460491091230765123542483778526666596637709278481899688932392201448812616701039302192244258816935451483648485571060366775666638449250289761056416717815603043462672936870961353153035996193636595294836088502342515688155541247283593713487482749396160377407555518330871187362437011551073406897190650822872480960750005711124156118389479704797852441856456095468574334450333823006657055587691054776040368319310931143360546966469159964222643191870538143068434645503001232587343982676965275491948758630715237942041423533244591673524942186828129278126278200860214443874578225773760507686850196138631271377177968852064289220379430899159211828543042650628187468512117626395361423932260858925099199892567751033522110886406991768342954492490221607631635087037206151287878005508276392302957856737661898927831919880746372044364862119758441088913374438626520938520980107458458558188695598211882578757070039665520447559426319791307563717037091619780276900152607882315224032806128422842634850549357529992522888855867806072295151336538578255988721101480094222460136500918824453025851473265776949292343653765677243056979389485283741185184153702087048378180820233091561669781467675320422437164800861314664611312228032871386859310571377152862995716676144216089307990160686061917220510750260208381879378355079633399422942653781890077280176455435042568975870953573279176176660027794620311475667446973322109861075075407914203668786398735282699363691407657325938635860316780778048642150471771324481773957551249029298045869546092303692329239147840581417166509496561806475653928315953238955778011701036143702171332700556500900506580367217104555446746653778163813984522751600589555236726690074350835923862483966701193890855997564732178546794973460829521300189854208947841608978744483332408639146595686430715750058469072193580388964185136263372673406532379877654590933445257989578999534685690100268847672213388321192995563714361340943016272926499634471560548448077028687027208952392963917284128592737219910604874506141721947677125266911346572807089885132727438441753975590918029019184172325212847076015390130192093619280928526934503005153531286149051935994927932850241685612235491640681345608511803301139213339958467230986629502808249262115274688739711778779119776418904290608126781471290478021980691709763083767419093695739797381225569907464180484383775944403657024422507255053868812151753428306187301411302395289727828358365896877832859447348020939599831926387087867860052984220936333839980368321793297687071174252485825264994627474224954931127562322480617833916147356614375059893812852587814787111448653011849470722713801293819743324943342417956894531589189008449163436525852718802174625963438252896591440739721713586395256356449553801786197141931748088998469422866360895826315194239284432943267252975322406436564192381373776783394028080721713166697221523644957758221323411848376097146831585648604773292845475519872905374493335090399414156067597998008951932578510573214328298314110098047566263809063505294303186338441968427435284301292105424001151836142016783246887240860820878609125090533378972912159665497530884567330432508453367997412294260767390780278513803254352404765052352519430101246270883695623896711584121406003125831129860277550766209759515344688077201088420309786807288593672021803618763218172185938302719104675772135728428813436428100134912776846326068426983290486822244148536137527332017591313133311215656851548706839831180300949086715313144505385835686942082880417010835814607118821207575933108326897044684000179448760702239899128686932288891532075451433728230712191292859086444323977403304031785576394439087918577607143417202309835600723098327448637463031796434492798966375923176415850362095254317299616535360891714993900204492492953803866553525996350963512959376646896935839048890770376351361073926638716188222364562115099699865498843031584536428505382005408281134551145988435224643013251727733071393151279565360552514931407434261665058282270230397649135960839704414447254815466693572993149616779754027033765246834262482935132649192996615744437583948913622467027814452680080260737519185086554740846676545298051351640183191383031780946253792975818747735492200735340346081868313918643765230005802074926831512319375777090457843163323176404772097999612162332306278510208709812134127891891654684850540409537224645969363620282144505373436756547792894103737197662350709354609402176948618888094629237503638612503017860616792230976939528209218138440675126868409137383738502843215814740774712830867746189533582465882485653889517506010198936361563821469619531898586290324007962102880776614416039696544919642630744558913719606413957611978893686495008743967343435157595149572497178242076475564481150786598392903883654528945043927242381034612436292463272493729993525137201870915015681003461775773278126523727807277914518574945941585566443121045283241134193983916927110235409474928296255036847164445248120948447667937768519638095683612347810757954535591091883804155613421549268561442622939276729326061647881155193212138198471620702767592715782938989872222276004939215732528809941165530733446564357646840560705689655886325236067229215146573754164764197001644637869695546097902910349765744060374144920925271360120911012666602798382060066460810621261155030229932452411963582691300797879056971319939552571362882110326026391342256914429501173557320633053496702081214812097253234759943009306358265835772179915748955814936691630477792168775032509650565328268594644085046536445530507826375322415265859827776971878360000459687702288772935385343049878009921470165690971377873179109683160336368935103974783929435080966923509611697568928625219262253848494044226493903829756517326079488628144614606077504184694914835627846798671654418432086675189290944350426893514201544855568432551294498414138127521355912751230643470848201452088428484047356064318912023377398883053731168714902339775878451974998417143349736556805982567753463897719667041169332001185710055019621562860577356195412042851773101856786680100864039712863155386226612683295332170293022744116602634124441805949626940793649194315639603078656569774187887538389374079473226178513461674579118223171264713644445710257908544569782810262393499463360493209980905001526423520206121786352147888112791774550188437991564672166111000251016164043670907166993375966881725776808023866464085644087591877613329204094734647537907404732135069488739963676423884451121321579360254767552245382635266869717300635724966203297746092830778485405800353951803257435555507871099304039998999425186112926949498365751344843477470248973810787517712865742056271858296759141761933575393035177276700381318826339748869909481286400683271096991920215892045693129175527424705883142402160159936472979881644598282894321924964431812504882525815834578524369395228349767564671015255051031354591444506586263679444659567567576757364259140512894008575184238401537611634559901858401106458282307985571849116658440386984953773109727749020022221768625541226270238222865161998531996718254943752829143264223737085522556515340162930527839381119304002608411771295940237879708924864492004817991489270257133776552082913820907560951793775313450981398362056182141159207034491258098250877249143011306078789149725321471399286944920982378497306488730680358534086202901298132904808746001063896891953403583286308590207367148065055150087196128163306104685723223163529385042134257594966947083866781711428229603973434398212026994160893489113360915571484201257120499560555480837200674133945447158925613323013993012840090862573970796629939098703969355793889111801155092849577729902039594099983680626710011599083235057828942281028430330675842727124142290268589950284317631864807227442794416338802874633741397647003373121923910946695460034732255355621832540317810033016988364263428573130115805488361474742347267192436052603096005281134606176499562970312951857744944145998411149601837634602928581535273665510479040562872946742522195458469183795902298228469581888420708943637772617515810618848282175208661186530177219027906041665305959312277996938877794142559042021252933047856934330047988205135616243270392913307595057698017974131072843637426862655227697194821585056891285287483523224197821718737201887438190136331163053297947501725308248408056358430054758435765345935123483919292521691070287983982998388201495918635243449818507112779442010816568387325141762185680622130490814553469315101324026111456901274690607402644136102987425337265957308706084671239970326668690338591749003835003976567759191749597326665968756985056135440801698348064887076086174635395796887487266825541785143977517607816887315774928028761498806965940108361682034390106513848116976921856582780364986256329313142114985271670226183673414275822257018470804432500582639615946252352832221150314499339317229535670077077638079175422267048331964160828139037046000863259168078656517165738155194648198030955347816650535254104471660924694798141085711198076999331670684508760911816297234709587047605202284354648676444808743064079466845546924096382079683633374151989306763934480212975066909029675203212837561196027237430903410620297651772586064494091400071732112151041721481896359225521579066011222530444030933100142007358161622025638783707759725643981487055605768433140545488921000147867856522332645508511930997667479963211933213285129527447687431012893535523367900885665761237666424061971057395457379144400140042632078806870474447667761717914441188520900472533195306612084649730387147152488457328115369682566969298501759135557224463667158460310550048119601069665837630997966546061888186209778018373292304911692065189320662990203972188833389886766569677499273379887257247130165662535209372837095472419650270968392035578366890462186614398060731199366996928930200805542503116124848916388624980946643275353806961392016403943315023355167392785406919954143039794999925886024763207551674434639138754349763038533855569748138725305005953732862916624095413974393117246071726239387421920358613529398453787581469412931965663140966528305133999547839846210740117680490967425185538697972611189878016137935485736131630611470296515822197480720059441727802057505896198514224399735880580687334619024047915086162619991558155036073278555647656813235402487744622026318059975273851329936626173091279674170943491189902162046674722930366330525183420246831271485533890995971986337104691096252434656608102295610764915820680917398508775405105827157260099834824558787753271747224785804193999529217560204848569406007006989584387546279320541599168489185773470764824889492121994049587632252239793094694497889970147877523112100238120120908121939282532971709846943874308701492327859934325504782887472345052335568098600958996333437479616069806326531212010541935198000916889747726323920348980981660050316675117707369642502192597040765840366511238815101132570565579102152660447602142556468752585431129246916390028440061650388960766201668802852141700007581648181796083077353382930718764163647249664701513453088967156758300321459579510021476952161112005285212854699052881077770466253163984950195784706822599110740860587659739377157174065006894700575647225531929362538464414644371955162364731539269161578568002741268407175142213952009022575721099158094096888879401009780765720815489881402331056201446810286705648415537091000586131170386657531770326909744700248989093535722786698628330589600735917833060886680803236746732285161091950627677687403353151325496460681696336881332165886017248740650753018152131138869516501269361207104090405357176150326849225346871181062083769893787936182130231567536241842559622845570290201978717665937242641510617849342906809432414604561987659698766052699980177592047988986735923158447198446571149313882712765792315981728760028691125069550519752294240360926381591432278713747935027096183437378120754589174624414237899019229477675010353855003324242126405199795748706805769695752528074226338175538719680518878958996947448006502666973665803220976845135036398597274893395135407434980308537561643278610626538444529341536793620136126284528717178463074396255690281945636322708528419767735902737044641843739789148839790335219485052713404892012188966244228853966931011961152269277921527759224273113777646685791759024940846996272584386548114645233649835991234109952570443853706366101688789569184004690086945775974622550762858518791718801794208768812036860942285215990542420865223516333401712180882859185482141566321871822263290212162166754087990931526173433975298829728633887342707350872888931784566684804179954339982051817892121716156716240668554222025353126319922285952050237195261722102781819606562448312413765175167880912132048461641672439749894412702700451210596843507654755115994983294477450220330551417794063604394715140325656162196784770059966197677447535448845069837306281585330880440319192944564778829611475242473605280774414250377210790728224067002527317404993706501323525473050157752121492747705486012459428280270427114396938687412454197272995322977929926365336207079294704338265998157713595533390085797966195907709103138316246437024521937317912189203666544480480642034377208858821864771636978998072715340145865246896262359859873710604249731607459077221602651237431847283435213833952046953495260600494519356998653644561722968791444380451967511885074613873221781078535860393446778571462458128554168562534348813424789566700659333096950025306131984720841374845149179034209691053441037021876827701715159288746652296869710864904884432654265441329582782854199836862227450988249996054722414094676458146755308676110865050292135676830034886488526599716222203795322452968234239441924288733834173749746336088655491690055100471730843912375280409457730858362275893137249327806872418969320473106147591967754641665530410624471118267496170073440464718512475108739506151600901110234650152835340442598572545949922110023805527745030384478822383503918028606454659766035061841891373313175719149809933756648520158824675310755263691393679464638774698514361936393054743873836160010516244300495250696617460568521206595417691748859705845578837390828378571089420268103934742702994490749360172890992940093112292628716531839591847491794077246425456477380439399745577459876537268089678056105166768192130370523489628976526643102284278301950386972952102549816597781584196170080420822078039105573616757801117133520323120786370580770746477193393501974997638030077814876761042300945782809564245772503643906467449733944738813604433551724592802267507484060820064802944914560908505396701230589277341646121789427817420107603997836498256938421712101743250945084858348546060435041393646983409639866543859163704019473500726946338801693738494100551772088915520524641751137132459755095931837030615229836481178043919673511207318090391955008396269674998081457627896255788042438267439510361841549254753123992740575915618946428142158942171231594248587794528675973571838097193806636920937733768589722374675218237938817719244224699173023405299393672150327414163199046037539768901746932695324913166403785155217803259245299277812517539333155589760122733859862361238608674249440290485883671712977186971282543663095405624284221435807633448899407443344860668706643189042588225322042842527510955790911227637261659116295275470918636979640081246349645896446123672443724828252512785259103089346128058027404639859301870417278751803903212533144963912919594136751873843483492393780201376152916351484968165453356641156595172016482714021137913084066820334690948130666918198077364418226287377416339465814356149531317535409453202252345113285062097120204935252999283339755752444432574514257242600809975667807259062792819997326925397456289323428937404183072458866441303721592945528822561903993784577952916970673354994533064089982718508407069451279892921505769766400690561521928240949051145421532165797471983708558527906175896927932255135048866764769837852278078413920323810835716821885799698283133860704340029789546581055820339329264885468971569464954649759560235734144420044159935529562894651782277184412816034106997716229319263544412249098890929616811570672734294139115794092608642255882968754134429778826416421182483374304710712138759818319763511057126238136598260209514266456154675553867626822554770217905316728597231732053982297053434282183661198368164968109282133243849030173279742489001207988847094689394513633935973515739549669381196876049961968781638234510784867880220732651479710918693175857096858944365431280647532725924752452497549001261329392387539260736766301128013668997258630712098907822090997856403271598151335062173773901542740382158970231937505474320994357970751648492216152208975937866035000917764995686224598915851165551942947397207548110553959772367744627048857902351276400091469559276438904571056005536455887575185599150784285386976033182745228360440182800496638317078806926810557614874052418979253440330607032163571290647899736874261341173528291908484350670132725171457384931928203583998669213241893428850866591793255417340523543597248855826001607053180028321700905826157609617397384428865927325382433774263864545501979428652174919293121166352749239859592182303213204845113152364012660122216854639539653130680731017852924066169369667141118762541472018467301643055797311864826741297202068112310021385014730474940297798509544225373527203149061749900219332671935587145492062867787639709988900638449310870434197716703153317672028571596501268407471716027504938102549156287863780881458782363618685360688242732563912108861384144165762009256693882912015368306296800780294348083733776934348100656825364241987618711118297009912433786050124897331363043147776564893472017018648324611118713855725540668728543986174062932850970070175404167209064069220469539278277396300194198579984287826815766087040893586675234252995597007889914929689955758701021275306576798850810888329761486001940430249872700629552144868833264830581219645921916947225860141395428569597005513840252138527099429410543102419256953336017154558768200527822840062213540909544100742383615874569447181296650233822560688898161547247516700469427187133796071720782319137308272744432416779048102899082380840451911341233908614742918951726471856984673953362962848925291337314472761017705837767776584357133208183022833192333059002430579214643473055688181410568248871282262776165422385079410785104903184707979948841827047964455558977663615325333029854953722160579117900680972543092238653896350631423519559867836757701959055656689534267972061542908036319899483892386762622856641041937657215178263133543603978420578979789887033263418255941903636974771650712801960089199503237311986049895622935495147336283249538202702346653297605301584919934473203488612293486742797978585531133024094095997496241985252265114128242324451965844406732546520969034256127644393806790728328667496602734525639260600367857100019943510445877650585471108650200013733987377521728867031387908819319390809021460278888402250831221779176832028212134289621940675750884340739891077219538623980868770142185111022239176957687097874449387629776539248450852473609330402723298627580027377003864632092906160672995956992491603329821624144217154152808983212628762178547760660336718887079043235314352601971021901345259321370564260005073941750807407553733353306812490383926913382571487206562625468966648344475729400223258888077364886319487081031860954924434449306047189205392600136135349924815538439966664764246113829796564763240086054198616530185337186914458534080242724786796209274396375261866932396413184575248359321344396677099541589556788939368671862938244051557983466732913028597903586320710179826025374024472129658194823566900919065246974369384841534661632288781245998396055808559749321687495750825201559108915697945601071625213576209989923257994226065594397850773151633837855240577458593555945457636900609937869749773457605317504431001115996513592460002943757102221785157675936555156335534114786801055118660516975048802383407053512021150572848668836664085404279100074916438714389014379329614608649876627703051910349360378269112829187063516653850364479255741507359357973124375132806122944608882186058740129008256144114106906682623242791839500069122506974865362315679341767578781519985294553578588650219399462218444829400430176771476706168496113153915649800809327150226502345932673433265794869447540472498866546098402820790063801326662360497691961070619112927110939179157878742636179009256036307423787122584215203327973618432001253149208321428762515499086450182923228159329654670791253493806730932083174862291028864022464502933360283769945904055300921092918750503809613028997959329376060675588889738325943759802542254203578805523283548608548472302217132747151797019759908765324663722757960449443185162431590372240038068306584539682426732099035415308396663924957846436792112401296680191339834999021776027816306719456991384244272774657690280678178675280198868662937381151900587202717862126987870145052436815341932371722429357224119657840540125056998736066541140097532427680836946856280168153716117883735012230346022995890752234040234069390118628550377131785352404297518898105718562837497431129678545097026275640819331602435198336679975138423849544564634827654339124839348676453115568435098955010606494029257507200904108585852855860092177188548126301969070397642630392231334670177460999368663737772975256980212291084031417697419421994227434099706441688595568796074127196361490953896351804035977986711593168013696414200994783993527905685452131502828657410484208141893797236486099154716134050288048828358402415520616433872911416439515842478002595570083254527140295215147578943847847005464721879836830127350798941233941088538427309526501152222082522030115760633454653346098833993320619306897908070988380646934875862266092133056708604246454473142166510273595165246213539548485042070280516444871508425182068650153854084422535657391222258786201484210141988482795918500682806511151893783807291303503957576737652274881297089896291877502373635967034952095848773463687267259253326928980541853558182669575688203380318472923070822897329553367861513346788979385031881047937862398056046172471375968700744711084731862730570189027315724608417755652322010559965933655477602568023049262031716377066730409654935567358710886047795073886424504322292676071776064750197671935210975723258246514678867911056816831213020179713803021569206812451263516673355803191819898075779014459915460283198338249440576807321000109056939080471697460718403617813898966729350148346418941568630188956393409777556883358248675839642566851637483550672138328823863222116399953356832495978344589058831606178262948616262142711144254063030029670147573410433903154613299752184794579657122782275648198205765773526358222760485497053941719672263924922393915768751361805088231585281428393381793338781737132493903471031910181381630372126689716620179113668573493806691053119043874124394762122535958753013331892681993006034435484421785332807702774514851321822844931520215551755038612593939996061178123840267408383414091021213367647792148032037213216061706938009968704464703182820740323501744071703808560124279850929571730029769112803473977244973901768576600957978494838186959498107322636594490710271567786257099709328996694724026897880801605549373634317424569173386986086203578963522038032821970251052693735867961802457473977430599114481609027014948990538501785571376232654996993377652148962282843754125799031155173250486784131009766443824772683538723959905415404620562045085384550373358226367643941589275705505462733088197038703167144784096709604954061835517817683051818433820355739749661454047173672850584453356944647190273283389971083470944158328197527731626433431911722354739912003847349436919444783146422141636214602001286154909183350145878647395501300188712312280945111533892442344902528728724676228072127263800296837093864838110653204248572558610250169890857663518553203169129031228458727344216636911542551308264682291054363517903824977003117226772504215280381869302607507596968524935184359520243328449570117926384836581935345348631947517769524977880775325300524752614471061273224054640193693043920824644692612657066523609734249466809523809739107047911257711053308035494011070049946822726089341438182222075742594783714162365704836397089776339666609585047004978941586050071230769902372165359179684912163857231202226327797943648751582710662844508711055073616399666787907465510952221754995512379732080306030822608975493135329473375229894359804731122277160090053338616998744476547144066768192991643860494601221432018557739205170095606867315722878556461938628856991720174274437021446829812617599451742724801557446715213740833135059001112250701093041275681821257636364271706306311425823594966091217682729409430196908271706150018121323742311889835117840286974353647533321977382769510753445151630822449057657095881468868300925978812632890887426508822858530220748027816999258831737683602945895571016145579489243938079074452365162464865911661826399968819287429017715620464278822146913276274667284626848464851340202663509142212868797843699949361320797832937977277876402499169030927583224321655476266099169388486580445561188656314954961468581897526205031500231339832072338948797299850848246767181681076940046041603943724848717803800212578991229766343632305484055864792879552458233184277207808804540253383828830146778909441428357700959366913403256794032280589394204199210130018846779174514594085065362391634243315100573518134213523358699941348405303139362884706686224997288789815037580502680843838546311180238219465239823845474944084073365220454595623149884827140537458229579139373103353065783415727989293796228850191112845966936547736703683020939013878477441216435155299067034450866178940921811637280008719083641434948996225997829873723887934313943487708000342345680808254166145189740763393101468633316424483620913003751419216832882838727878301657240447212402134255641623976909552537233085679670108465989235586736180047330441265747788702458108181507303479601785339509412422474484728058966295961592342351030582086656329832651821366351862956662569643982728694606584272520257501322579791432661117474104399824554396177541964093135971116170960002526741812567630922135127575419931584878944475083516900011941828597009465984829354762394580134749067525832335354224510085137352342665171143975879347155343389093233645365928100601219234660714883764676557151903430126413529930188901284648043753300355438759190404718759591642584461311151452843968178230340829416118924484132972742137108279570998562523922096401641160704217514607148397397726134877782026905547082085294072431551871792111162522079651916745555150937102325277605694244599476016814355075201118228915281657035155011369698874921339818984782817245900949761732059659277762921402691172373479964457832965225251825014422471924917535036862895580089002882323647540880431158858871430110358665723537498531555216518132319584992773706091650069061544111280936809940887976779451449029717789152319970865800153403216807658261715798661258122975769853387952805440130645450067025601977488744727048686577947267357716498632003030490747866835273395102117880731416244248126438109826645728598272886513330683003409652880279974468938675553404629917112247633957857969150964654210176248191996901587614266154289829322841069881434491239837675029952593379860999482587408893121146081678358040520878632901924334894203196823595893875616847630862168017789925222298454092593276730695882465989311684659440222222550693141244611626135529034498839338563290138197947542276703405296718245093764818075852473741143938394557526774601597969679483008841965286779526858294314416337184457015330651630288477039759598851600487790660515552247416899068067707273395703913828370792959948623105477021976452367909874713668043559864620977266536005495234315206931310594579972352725084727917637019410340742876646730889286580681750655132130829259102215922277675075959876095809334204460750098099009394490622715143172992325797571577654225058987714290786991030904437535529374937523940511279358856592099081443990386079962438280357522728086070684870189112815755423808041453410059951494844788223178427127274248428533909633827519886571018820896194173751403564613465647765743210073987980909633174927795730658423712935475485164978402705350612382245474306267571605338947976668230181983333031970011155940123799142933614968002099387765911430975860740738672083589168947211493119364794200935317526985326766435596398064276228260752199171834331628737342453556063579295669866139772055936473627218602143710735065629464396083011057496097883866816992736167141391813015276393923925338588274958055191705870002096212705340925731589858416353485193781820294853990139655828428937305939239843858139923003907178599487258763413720281596141276262399774939201721347373587723391440195701246861749684571142732230068932267466780950567651201536812177590835751284185928700754491030243463208011863918931345705764341191772336299393307102696009633896672309646286787297726060589291117691166365345227295333236455805353893516873213110667339936994578879595019611107689415667183513713300874229753193756880049549352852172098733130218875476480428547609703119523584762124535145863803319122267868316981219246501064396724594444722471252358781453054101847698255106093457096215619875568274756373153580587689401516712998113379243206414359307443678800889953062792187539320236140593589924990664860887542678781483167408940335098730282815015124139117332490884642063603217046207649508074895282999413372619912010566019771285218360642636399343417053156902366647462254413325592783245487890036310525792691745030968221651019485790225383106741720828327535264118996262442366489141785640180110074342200366698352983157590348339659618616599340494545609421991501449037039451187098419778153832672161022543194432580427964833968616122723389067043912171709319260532811318933330663057156924210538328448276789786128753142679386108039833980246926896350018694021356364958164334993069659244086461568302474191081898816001594260693773457065620954247587885781363315064531607992049308404637274900056605917698653982997259272020141240438413766596687932302539427587980465201324187042222968154138294268675921226115994450130100515122423746331009633172775865481870384591461827478452562024897961859494560577694035743151000348200586206840532768345769486489039329932547510640726821370444059772679815211036877049852801452710721786790691228900344739514704655797064873354364845525479034551830686828121990986523363055594335304731711063721858240753754304302005637193535606994208986732166302116506414145686581059520338962373414008817392029476897442073283986380068500179022341555357347706806917671793128363928888197076595346535215575691883442332634144089790095587928342135165522697391182704493845618422285952298705300791325885710321642384914557164099123321164930980419897405654555607492491502650130268572755655408089644776593102060147195045561390531442036281134475680629661506027623399579914193786781021428321484912563260293208211450680255846749231701263372410565021423077024931187515940353994658374794306259864724551532243259515231387464570180871437218599761688184551413204529060067325455517744302645040257414303328863767149156066009575251953583760016615959464419590517626080347775065308103828803621959507395928053375142611015797620271329784980349644756744881154566652961209781853651930958514633747037671001004932910007604545122799793946592527974970435912288164861631697392164676345239356498961253395200020919493781215950370368432110364810293499027492703666732166845537267268334676286255159591050896963497644417003226282876942437691665975665012479608507926363220943803890538598839976554448614043904419433373209417860428431018618775163659011971735311195102002513391410635402227649786592580837319856721886623020822166059351464783367583549266456855746656553716421996464455786305968019412198390664889810271410158842982614357917106902156170513756251640757376460874771117752503024538485991809335205275640089949534116822479263613814074244869565265633296125470823423891975286380962027773388057983085901368986880751880085795451726368642296633385352794248609644096736354813418234838494592393798560443995021930863310220173624595144834923655376926361880579013763738101273370760605096368685967078866041171549858565928401765572003561476163181264440130932571848362228802874181662787624600455442508720826206217894866189767146169228703098430482811170716131892892568186432174675271682122746303759254177000800715488155638301038788292862654314412616609338270425734061533418381434235769557312967700705654604383718209505713099049121591442281387280064605219487595728814245520927424722665714617589676189208867541699250538151606425388526329282223394546650601629920787197473385919706710623158970019226465478093376183751778675068468958370698019162785649777867417976389183169500293270774357157988316485990330212996275050043110293485008255198910363116244571199680893943210964950032941416094493021734167983149704423886658455200675664212263858697735416644091544314837058852492405173901596711058445257060932965327772129443379320567056772468374836433028699632487738542310691506422384355501425360980442531946394580324735733445810718820786576343424029523420919705579825192195172300690258138255128627639579599890090762000618001574827973753964791181673688442348772099737028814210152930446351608411186671721798421949424983036569769062789881530907377899080043976324190260384284355107406893786221202863821068817817372089579469138866136489978056982107293022794854095688299519601115822594172244770805076369088275122929970898565971510597285064378378372190415920164832722861825277587547750666591894054355626997124137123974986852483859299971048239872043239751858623333068932763322749623865270626589342680181721722857030555869471318373712753533391702397256724065474698423392370501669325963820279381134429760368696591255773518362108579700102341138085904242074821775804209305205145479210646147703889299854627582207578990886217246823580482287048321804177326226481215045597503612679180687006017560080769337883021234028120666924837436775169115117157495714666663826943413589195928278863447466173372333980408576035553288629857425395736727841569668302775908440357732840251538132248922584519795954252706992840107916969617763053820838608172102828610085093798605055503153132512751874271793527279953704832821689070117309381938701927726459765160011596599490387167201174201864631915844300875851545852032995813468518618489833053738165462430942848109490932188402597638866015199381899099690975416375352523323727614508147672086027374768331095948301150497884998633673453114038659190487300845000161762085585600071701262071051302121056785591084137157569585428651711603035092205956644921486652429633677991248730748308300893735410806078267598575978741156407689808675355698185589798858399096644891072650014453993000163523644485002317722706117553312482425053986367911632832225830263113311867332354970376015062580903104652639745163906439249388450082246259251759341637661777052537867261888794760782689153235197287228027860037736394502523582780395122925768528665471176026747771508470037127034621970139583471650326790765186456623662902824200529018309852330151170262087588254922141563888041049710906122003883451477616821916098364297976825930690433075864263625553648267415527047967921086646642940378601519070792782035305079983181019318260195037628259277230130256747593648455480611722672081101259878118906830189885396978017226265476184455258403653764366499616659262010164561886884646670671185940912517099063214256954523313440106315622108271548605022658832714003840770226198538488161094403797375474200819625450181064866131679488474493644754174558567085348276279195159538885337086281464496044011193938817323155188772312873126994318922497237672862976098841111033413881253213835606221768166136999266493389766948450348006494831149771291352178539107467961203157552690776216832283158232835449748313375274784118495495859897055024380643889005757455450905901159886221245130709098860759506286462963614331631695831554470171684912266314281997109124641507484577942154276074443508005665357031664766710968377231682690671418192453348033999860734527283452075284531322789386328052801048903585037324288981224756718133620988649943058055410909203929425458400873055967465240547900705941114543760494457464116008514751223725278384699331356880279669031493639124684528592552182502878779685845479965510486329093746305627999715347890488392530887622992627566777198083416917635570230386345023798328363588835343965218962842335003684528370277746503156375934180228636674679388816350184638367099464972536819772202090553774404176289704324346136896264543649393675344214719085838212465773076664340727544655504536711546500988765844302664991562924923227962207959321855190890758733011223537778490639087250585985516537040128218734717785601888659400839081592521281783112679482865279739058748457190905559750436010147527788030807628823185524009974458604446724123023728880535152086198522722153885192862382889309451192841093965712003885650946058425543095548587374261409469346793348121735833710121607711932846698267160175906076176337015911485443990495584739990782446219239679788400551988072863265306512382149062225569078586004002360531204592462172285693663440511538073008256652866292213583266180811630036705906549349874903106475728799795698050969059074166713105016864732864610672171854726000961651282082758986888781734643454679085332883223966477147605016312659775096069599189646031457843267401052425281082577199279646671592841032289362053722461116409024247408553318707918683046682796528260881239279850024149670593518882349731919065495460817432460533929092054686073322749485954305272064121947473782674516062235703131383676695933740130877851444551437940209640824184075254573471454870949106839219842751535130045628135070975530315408856189371032233368570040066734555488465487755512175998785197726591642633347096504104331857884057111953534670275034507382700791385917723680641959663921741809771170406473058114747178287227062320276221033414891233152931379114664598133113550481770979141852167817280469848989003592585784031152714652600025934188339009848270830860773037217596928130973568194841320497423372557801426180436857256087048912629190031792692094253700671093013478535282525340769173279120103113549343705728484828915705672115156037956230046152054848786651380941584202808827392796265012449715612873721286477543081167767148133509550143221506645857210672731899166355359368706723130737279166445191919798169074277313884341330606609481962633915860269345191681830928589924348821523833991295025431894326063588833280035065998660959708945314291619821008369631125236974296075417697576028086989600067348997077239849122804563318211742728259583584837112691801478751262923918726286981335799271166097647542991670113548542683306061181803312757845817819393950770623906842630012563461766580523810645885657296264444785009122947469613974773606197174561597255694292625946210618503480401967835610569831494479797398597349815126819698639727948723280599572147977415736624036981232345119150873416371949179811121431893441230314860942441695553866027992594760398006896839400680690436310169877688576404633729963691991253761730769039771710141018932189413725670502961871051527973675991707224160521319288007653504322884134348612025529672494742957338583472591142179572420404680393120321625906788513702620638542909491448202627091680107609082943961537623404360908937650026124311504119809530133267318696875202915933211116377771001654851651570767013738263585423029268018304103522220273675427672760709717436209057950801676769684609700872003172374679259165687221569038772048200828618403084192331518369898322708418104541124557174548936830844019629642502395531153488221116452796091077854783033953770988207050509430947265190073610172557658124777156448959949300449033064052015841870246429078673251341636854720273094479264531266009169961584387104977186012860989253010324479229616063257222081060093066374314810904507606527752294982046163465357476601149960522791226327687635767723190233570939115619414900511426080996098705779854049281410675853551514656334025210227595590844561651032495331017796407110175062114056134642463235886173599361888884608293285398789349326363883034109531781049285159737028285666824778751682866340702375822003937723432165604702491076638978345262306274992961100273796253547928796205211469031800527505100168151614916935236363791690823999021990928378566263475716984745589265412186627136003045816476309423129655933241518662976517927411288289339575502138182283178646382490030355082031544223631406683821107326157796280006370103944245092465204835350833078990659922994651924658789031098302020736144379215726289338518372437638211258541891453082787832074856431467667682652717692857519062391164826072402526487306253228179588438316130586129247486191107848083631139812570059012116149959971798735339137906043999793942145325051580844568331333845771631141217607707563352782484983769751014175363423868981841195928004123900477723081841985750981166197367211730688935037166727148677001691987787405904295015115231916724282639701342076890472985409843171124085504916561691915336825069609993117815751704672874769044083274813986241985911359173679867955081938506722057127694406118414940758223964732952452162213962221215554587710140301802817146120577449378378272624319601044558647897522921728616054966465905451114621451777446164041770918756323898073760813664024394595755359679723649298229310324727749815995345279197286124108020635733326643008633793401511785889715062695300379510920476439685359013372288230934969684844971760818839410994955774990137283084294044512251438268097958132251937700285379652510110668567983572713560680420602862082960771015676444404132600710777957214756929560379490907584868781767945860111595974530969920535467459053370895682594299362290103655901680732258450061085683557073061447779037039763800928250842608944442700920868308811073780356641961101265046424355255437283231597362478383554799752359762977195207822159827675201839093423490515156940052402751592652037751026015137078479284588733671457626492499650472377989486437808956556444844021158682879627988800768167067553746962469246005203433169992699480280531001009525245350215277364697640630513251792657094554280209104790727595667838659643671953964506647384580967293952360268202110775030062566848926866282257473946667268152178360196571462823937512445091327228662048924795715066403008238737970327531546748107901913557489111619500496641899993935421976753264090650478994573784237263702818533831953437355429345068405695890756917416758740162395276565754119711765445963172134629426804423878982933361422506177784379680913085164719426502147720963728876006997479295730144277517219232005267449306656911167909986542949588019192844567791276550279451867055104834213757073470782360142543795054648364278911046217444521781696528468618576283323685827764884452418981754479173904046490966414697997128208043827799777583402930531558958020363438318675593015509126141782598518658313099200889676261371722802267445009007501748572355011064324273824536974814152302444238026466217357283152028699294939637529436268838979185385990629209933719172036650258578819574847672687194935270792564171585726370369269982009294761295164184902038592668995605016839474098311671545226000943140057096915683532912393015064457818490484644449251246862116303064612814138924643410557602838321639151322113169798095374779111444545360967636822790320210125075668874685269649300978856253436046068923307444466533624716799921239371159779757059114259946234329044593731629634047591626382939541470860974449930538698614433724525781233807758278941032407627907691813448424208811356849812428597891800194921020430452600673553078791633375668392589389502097266732672359275332878274701841568293521759020013172411085247034889151858629295053478554777785966422479393903950158013028886536823100358073196511116428391284796051871480471042274143831943597516273917991391930600491178011876236757850584767981717972775458292041969205232914339363575305345180798849405395771026863057673233805439279951893520500480516739693074706873133684686350404056200210236780478029628019533011231352056188201807087986396514124610590535048160010144679040186120914886098581111438571672180069801977768363739125376668840393257957865142768047568441795748573245024463194584223126038814915818391170219638100814381472042752724579296858532139368776994409731016025033585277198866400357862940804525400185328482478621634906585804425224478067312801816819826873720430286380106065105987760502828184498480439444836878221082958357645393839960914413697948237336019364822509883093485091492222425211195235615596205875011696940600600346600602718078814421989029123647653356087765070068768783969144250761647485676913501070643107121427219944850550609273658058527983523311011018059342363747962419416451983608375978707378986610986710185392331370630092261327804489763291573448268806761404405305837848342385344265915511457204407105966203900578536674936010640200573332261177087670252940196529003919983033412781519369794897961996526261859972634418493572698937700273193470342515945900919164805631816685918675070124060859199538698775913267687229426018738753999524836988018237662505970698208665233266209473721630294369435186700993603226128898701899876515136279882842370021381197155013770695421075043334188069119378097712519216535667073731826698035847171361275651164362728312643630227558615320683256790455131867333227613502872945357722080151110160536911378265010317811588523750013019142735537688150973178025127841877575985450836965444895355676576843485866045059123638828310019864529108525299641028477646054578749004034007732241425730886330815622950469612333222640365693551046253772308707385229401822211723265991806896509298148937494735790543557165717706518974224510439682185275755194940139316576879781068961929346218046875773602044570312308735900189424962609719120604433827592927281108548162958755212237101182303017014229338508673416441469609517436050721840310803476068729218733495675654058215430729739061744463267348153826638174442602535932948923074477652231690774672865434731247013366997343487588517862825599597623190270234491840092570141369455884769636050592785387187254209433793013581346596324250813152988727711973915227172272559659103695808167020621250857950032623213383247447838227906987976669329464061950030492055859548230559963629421736396490956896466798952680903673810684185083151338678504438186013357564067491064507389319012860790412174707597640358110438499886607608769150852785765693367524527676750311739407537481952518618204347954614606085927392658931708011663339896593362514051854321144097304775890758536519223242079066705038034175268216941056819890332860975910546365845871525115267426560692507909052317170877652198331295818163140605282249459256289593558825823336086725995215876318600544940738973531493462532219396634494624344234082218111618269045778617280797837486749551872182119000418991164328960875345257630432064914841160346563130692943338157316071823562222779325669914567499435296084228108753277451781739232755869159213801785211222707682681782609095679254605381891582734473392068848566641137321681674682258093486585044055032149710934235239880181460313526097007818632155714900106552623749557400974048475964801159875480779393831310293276057818361163793437738034390801158393921323100321740945599658859666314123495700463416328071369074705764036191401003101266187082144799979528581547416538696081441024445912882075194035582576909335986327133755578533343427675946336113472115609228128430017117424303455516118782577288787830668577286955699856897617051179024750847321123509130171009350970745458147739057255604005129774962299222341944349946077303878228549237888293569046632230030902872970750482202794339108382460473418902938292522298349452748888456865035295295599716927643803832857478351923165516395213328250368387437910461538532933743427659677338147859901533875760594331912130866550357643700017128119436763617024980883633414636779311317335333289313624102377156974147780912394201837245531349745525900990378882297507765706987854982076163651853136287548254753736075812386602926468059580794761164930026767862494888047339129083591028180428683859835942430404262609428451321515577652141343733537592054233807711420891465672558391636701174059455572909738904022460939696675783815927848314241827844385810750932776239536136343739558055469039235612735051459376380751147158065775878968456779953975586924961980234367538748212588074933012818502096467620717124318731797745379080672890749156489398893873244115943868967759343574552752768762064081988427966512114488925180256764809505173575982936815526689849476146783810824316034855441591166734046542710798776524949484257929849433880264789592350189838994476685184405328829257472507347680685472288163105449337524056084465653217616447186557397765482787749157127074225926657060606753249302891757413349277741133890348704211803327595865472461976878140853964996205952876869289760932322963946314339394471331667357713760710076525338386223218614224790354075362713135379979861464915984550850837682768994824058058072651649061868780842221497739623101189821472513095867966802864535671867647830875992350718740313449098279193216832415460731488244710474405395713802194770415444218379726235344222204562032338326367568634363835102937130855894156820467685196506712473031756516091830701913569748572466398235736265809873645359013492276827977216063062366940305556676525554409414806239091187846745845148796872194535953198280956679530504489411583626624312457498096287319364625096897778815932211677576388749975041388018093877160369711168273352629107635331676843014960447616221020454877147995889020490549185171166147195185998448303822324585948730677760028528962468188882468169802522040049208688211589334954845255168225541867737796041136561512841353707189586154127467218718922301860479148823519629891789700047494366452324108342473848410491851027483538734241698441551602099611322637797594656972130423503170119344263718299316729795724043335689382519901226674208814904376793302180781462966884393255040529404991821220442320320912793355181450300464382024385719308158902962751959036534488942041134412795964437614036574377406015423316818080099296995354430529082895326898613312848786668859484351900470488906548826230567138834416707000004034975977162133019236279790865181450001500800184155524769436041353150038491066298319282916559228837961412216446518359531197048439425582013139418150956395634481331963723356051786217042112062658493157132086008939996198829233765215616009670215554877230422503293187502391485812282831626571734003127573961321150244363921379584427685984375238706527975335438635356048203435612155982371171853534669713032704452726665206229962128328327756794414404510157092726577909463676133998118126988572452920226537323848972678781119132263842284055981363444476022961445987440283453841826163599985960636601870607860472264990867817639490272210036536832922552183958525640210124053387199149915210968155049576499918478216721649824699206875671490035802602370620782781871015919483182760355007489855131613571351979919858605465424831884565809824208729268155140699401540113262556084506265629594354428772177035716579613021674447817906470568918190487349298963077506495975569004692116976689695947333595776390150511270201916121585548614037536957632718723447252570768530857071843382922760434900970173515416735870783863376001161812720157833530527478620208817541525328962199037079979258588910939243713940182721814633636277381948779186334887775307328251039073045202334441526033719984444896962160038185904205301363997658121541880923819918196971309216228399616466078608515641424649327288880076978161546661511532476468739804935830705665584299867555775770340924231738119943485993767602018817472427619074090296027887893392399495904583912948825338726158785113724844707220655732014270557954486354681328097096786100400522845596608340156289287639479578686277352488885000238170350275155223346597966870718678657419536615101488517064613779704842468844965508657474163955511124650641730982675060587014845512097972351086209710858234932960983285562802900406009130591598044043778232300180861763269703238419857274175120996725977662692886394957387738737655979966511211645877429558205806341763083298542991965225352436340749392187613902294174140365905658595695086922867048188116975788020903530154897273518510728005437350021577929991928930685802964048602120169772616927012219054918415992755982032206417079319296549449166110119889749693955728625528443171513887813875604470152601972437890290210211985025441528745551317816497541709769607836830734767173331696972063989099218943219330300164444006545728072599108855717506271693330436451587625307514792666631495167658374212621078965123242830154323450275431007553859025628241819534812441484578038536974082549275471398513707489438164922115856809872955951103135808686616908834543669811844720783329705405884041768794061405544330703749089370143297035705491326041003237053514918559635013019166620341346145205781898893675102111444458642596158586082176245919007738719732880482932798312233976870916465118072775328512093245281327058024814369291497230845426698523133451613749806052231422041701106159234129430397488847113781904872301548518832704911812314164688575816077243123716250319707483743117798348868243970347569119384863984296607528088994860724764703865120211645563092122098773599870630544094170122639544857105395400798488624699127059176276987277527594259558209168031360674100588194504918549826283787475018553844506778480046221884397191033911902387428141582134556046750481385247360956205889886098359989699025656815047627408988578373540093550852598378462490550655540834065236806041308108873851972335606173806806882482705640244911545363387421551009056259972858303745094001984176975854285874737374383482602543301163375860457669352786942841136177489211852094548643752660813039371134840457651857143790245494475703088122575898270620709784899674464796436978749794860221081203108657412658949220992822208145472765569648248283611098452992730218042834773373892721995198967119785928332940137673111885995425027104502447175131149519684679667661469473793555563978913740578459117664730365328753060243808254476103099457611263631694787802672866611558150997214946826903432877312797401998637745384578169779429387231478616067186558028975088531475519292476040998655364739626504477996012969056746228971778610494291557566986631760764528024586262967279415817906519604768553008670501204306852383584362223221690958178193804452526916515671083369550165218306493995995815972512461789538831199072003720311470666851865291867602757924011317342415008778111919219914136652902354851821140535051803373260874734138887101532551514641416951464766540206164881584929096277417912817011281983207939861472816885010275238692242880995172515235473123630063748089634839458911845357992166796010695206008127538165921639237766964916186124525350424621867335194603899833689919982268647718693728111780984634787733246664822871661961336754572807100402005537242523791191558748361589460619777815444500608130985781449425878412275168552523499796227164377136490787018825700563892072640920502756076373595041192708385555688719058936341913607227329284205861996306801909584466077947846273427227370756240314919926819533679811673442030898643487007094457749940745803936689453698830288065560400091210879401422189191677607184520817444999272559536441816357925666488481295434881319113533228445235874171417239316210003586969629236852670366750525356259211956739546042011403070321478710804138429003634541552800299498063162683232761311423829467925811148208993802036106958512838240756682506839865702637144387074041056664458273862387108061965217745512348492390124716603384776816068911407623619570755628471929706816082859927595293381580589458071368693675839043263088580643571222643328747660989494651607625657738232438449712835382507848367882312744416915905038417633937147894601853298529476400339335321829539861452282890051700220146520424274575459741044342401979156766976940866050578425789914955274321950732850983324241619267023383671133857085985873348998576381438808591052321024753330658052579118747222783087772241965983911280443492386085418240166797794685159826400073846786686340085409874590891256144971341247993046261428704585647598115505156993299878637866847144899667114306899899203927578957429821387293367467081611097660421592047315680825955594293737562913402624068892669822464980421988200014867350940766706271226107160829918146157038936535386783930462727994292307052349026359412164191750000782377577416630658003831218642359402032563890194949385454460858554162671273990889141459338244719593002198636590076683534950149137694518267762840938098699998913940662554363828093880568634790672797565713634647638492544731493619771525051547841600734379042106111562466857811337495180753458190017296866889929174701211875700158463452269646391728474940616174585068737020019041065950239836493283119203148766599516433592767879852581511073781581019157635055731667100097816876321607797228301103664640242578783034555622220459879072675517153627249893473030893402945279769004493443536071005659002102428421124447855036187585032712637284307329654118291135140214401066864492179739892273601593959386761949477856758880705702485948142038528875864716421871088300623775235592845384130646812765000981480884216252336237112808328697445519320891654695598247592252512160755041859662795262177673810464978394482030664596543970810331281071655213570108144381606536398342621506658572482791300453254794430719304004311948681825535057145354877516648007030496454783450367168514542754674286767283250258608414904721466971608605947357490933612715347412557579499295257768094503920690161215202012145206662795636214857962066089809832111547127399261838493248867117658314358095262612693831517134170990217466560819486872771461466041424344958717571398213622516827222311762245790983044333047038373412848155347725335943477756039244925717748003842659303347257898280558555771373378500998196952041459175966178006205586403158794466890997361269279010970165276252638896953388714587518952756750683051499459909646834876291846329050929849718985524182485267813227317263428694493840141663556320623428006006475467248722359333098303616960503122489413932108951998351670581314475559218590758779089839087803654594879189894367829023748464370588609307103735812745858587385862543934822589774156889374664919199023732235350515842728111183958154382685578103698692190945819640037367481644411381076623961930785788657407962316617336789838591846552248121442376295536934358994089230249251948853678642029533791469967126179164927737099970841116799819112939442217579211914108284333863932960822739981503790564395346626793909480555164308990119569487341062734414627078061474892600429737565293161575169579976614218003646153582921744140947075452832827910376924756615143506760239571052458686250144424164596303946295380314488139972725002867460100190246835726542281458343700611529803169438842964119567051823107683091919551297802290599903599826374660811348476278133385414939796468820916806309797426634886278012980264696159439926319234088408407130600103573745064327166628356394400659903054860033493655084436855487578440259121188798236587961965908016922619356824836802898481013376200415541749996927714842487002693246579297470051847975617950108728345286014319283056783928036305066643054715705486597840182916127672544387981117127976958781756787960470228973351625078307288860518358864034019365939899103822731790796552342230453059554936477483313816095465327436246376590807875121386563690043833040102148935411873696897645209058068401320073975631384612223078805033387559923041109204968175224472914275557213585828659373986400995420316459115396273214914352055288067410011870319215663947116419229141121203363766272236610354963609535311882951378152476604648950990113970278281358868743918135717129804523723250822983044221783171529962540731882630872474161090901247471161388908850972980670164174406972898268209379624531617172997102164581699111729133245905456060732822344972714643229871576055306283092752486026537668554662959370425519204538179176642153312020108727683238542175177126060918124924943811405786236390393472316285237411921692607956934300780152676338328168331183109360812917140568652921178058638796973595498537989857691161523219435356874302953692463750458297253396649040601623008117393356150224771843404319320702411705493183816984596885458784306458097339084792977626382918478323876609947069291303021775613496499170170568919772435203384724425382146321867382778092382904261137775100726139532362690241492696461313236486420837955515243126498527101757539056519050017715489852747441794731206411028711784464482688912968061496996333608799643016579282788374123575593114565936776996573511646272461270525795388852352048005163910679329912038039736258079661332401791936895392748288006971025627793392022695146059361060082748564933435869839484568248311881063235165193409220840956674159968063652725883919459598977395210991761037333276155755915897479191699231591994898051002701958259644907811099340501668570318760892095092908594938364158818405270580263864187526997521624817390392969941299598357872986242390193008193321520648603217289195777114513072096899622100224316299785612669625494020391450338955907986488135085727700079049929312006627447409437924863392191220864887049221996581516731925480109044714615689888416047717713057274317552159193168949415138034507791169917834180781468147644520234292371590163136279029853112020315854033335229867662044834261978591832103491218148012987942133029127649602585734539588551050904595770074601931196059529300104770598500632665065196717039782797259705963256092321998239079029325778568821061701804859529816055790384412583078534194563387229398736588162288568942829224772657769075835650872220211818797640142532729028939401621586152874223907934670434510395072072012736320687002564698868076539745848762816021171170462347752738901103228337870165657613042584182841191294807594051375599546647037446882757403383037997446509393827804750884094416452462220277323221655942761098140495162369079885915858609066417505428753077571218869796366846554375213773734821750755601211738677200331530153961510891723210289266893999381618337112637313528463775303440562519726782734403486014872263486556861504681522889896002729902327048563334426797022629618872617777501773162001539088702607947334554407472134243718576761894248858720449738574559465441752064316198790932024450899915679644055060809813792114967460222121329723198200336308431713100113500917201989767547403642339270533996171750901583045624710893108436946332709979076573168754972310709581504151165638108542941438323682521765113830672284473904593573959108435513968757128929090295676899290573536595729589032008694267522373443252858215745319713171693714095331512756527153100726289275651033452460103115677413157607433617345421979686835390294412081125989023604046607614956409106984277022261176303096042901120896922370378760834903068184799567837465108217913770131797335456698133637603755682200492960055877116973722577693065166447650742152646308848501782469416094700172072833591900210547229854079320796545054731807409160345916955452641715189497843456125031746295424514616286970627579537501995204712225866647008366699466365217500668722151266567379130247408944643704383087576978720684907346477780742859670384015779382312343990799311295935915801579042027070839362427874825171241520018678104536477886690349101649201791916686833867515952516577954457917613079293362766132114297516654641110518094356188637088843235263975754634561172462676757509359723583014703772184400505354141240250345193842681084741765213600557868517408403388283536315967069338199979564485558616578353829804836365755610513877150735415740112610805071105820325823020827565360593119687108614988722402908585490573986919355993582231950935102110010413850356062563777304447620380706986865708612787058693467746786634593294079313205726851487644482695242136941709343163893197210128749409155430371791305542547311912866454579789456804636892125548648763803590617385099909787513853767931086549747301998747251350661624436858278329860757798219228360227906451487709866288593611348332526490084494943835610536020201225449600340535607314468383399429362875521999656523329691897003605879620356229156077108647045315107771432351071934416653966339762944107218569568602390596618450078660845149566296809099912449347381152417097458218152616055616333113030456983404820549071097435175594738274789299565140915634496102466321060327941687174017532912089228592290013441230922300660003200626076919409629945288118209363006770459391999337146305541618527221417713373472418429176585850919838755692450437413557332346036300351324789368365131761398797466282002843882276151070642916369312780466309495417549183358291967899580488906024449082913207888570757076464051706124901996512235915525004378274612198995477644660689821257270511776235060693435254047572242512813766080911322219644531169425330947193942007937615413056284599843657573516607568514597439824851789457917629422997172175232707701642366870017466115895409496799007320089678286460627280546714061893884687005796936830867624339080098942180936044241334547322234604545847657240571538120273359995381551956494394926620116726040241415724916012542313757297019373581413424237895068373688924344850484484994464033666010064476885027614381570169066284892769121668403594389360891674920989922801387935296040926068319174954209075463951959947581023689851035621031593198171338335523835297015233930686750502880396337808468512081581827205599338874516863992028536642272194008219695792835842295862271570334461171446778703358926198621697942189537659173949287320266579666952446735684269349005982838015715054050560062483386484616402341828886067156616031849948446529679456649031502338807818676673895225460853018727673374603703902070701994705672439503976710707092459939144883150296330312125127247987399411475913447052808604307450247192855570607049902867871615136743072191145555133757588030008759272380075292941906097177693087948628600064561159132299223869018983921440605342750877865397029812808911488232357420234320662552517211361900168766369118760942437536443917298901775074811546038696499671160118015232753029936250278231752607208467047317628868174314954537666972829457342482348640833304047341531931647094176284118710070862267613212506916777833531986077993325626132764644244252326109017218973500438985352764402862785648495124214876875483045366850402361047932985471270281725107728361413084282389027792985477583632039078934403470713716400935838685498377790758381413171207475999655457713656823605545773890239934570451019926759006839278185138814572429207724112278024178034452465714973740671255504311187218377995384574585438878170504204538310398553198979527003119529552768750942422668797334899253461762468048762164479913901400310068695559304571931455297042262623547716224942365114162965887287845455264528684485316030265991891608795753668994764298423227622550707837387631662702636847559214956617777117961313181451537327863922735492525111673395190764270882069584175380636251012095245977499888953952010520738082974465871971180911649371753676816339043100655007102646389886070225029829496135119768671908313111259715589122671996599902867833054630825182005136155649130174766963579028118815513519708098477214434385214436125693652776981433442675712270878134419546151196845031404450029991212367278205988866547378716585449747959899132675071367666467970660797766059281351658937578045954161296069541770417055255876056512032828722845621162460227090828723879799217497316406495566775906997201084427695381397742958711727340612929954561528592204749594408532478310355389579817565943872925104706102114185155615880278227757352072980138285545088290522243327464914997320865020736204093559116602221532809432174475735034376151610272837334510085777512157472747104691150073026979833687737964538999679644622961728565782610930475529555937415749298252063804653378000988297158135071084691619580789899139365629374528292636353234327025944846172408375382259185854571575338562889327458447978986045669073855028724509499784815960617965401030864988291365467561835716829818160779273458165146687912648937913837546230087369253539561405344601731051769624069606452424830131865915561419703910574893329578332975070525279794983066572390934849815643800555816145992160715340857749650840394265109534053661594314851648832429283639901088569573651204336172652218812643188437306023820191794244131153740946687005221640249591850947161955071163315355437530957820263748736027384273114992331733744082621534703807963707105963291780359621388693451507771871248146767767829110625552082634146835595306263391533561251545985430865370696060971636500839762158033385605650380056678140875016508899509308932557183392540608457174201595691614959754084580215264029770271139521549107460823967610565161063594865911476337462886864702233341144536869000952669234576206606944813776465961683155666091811507637952678629569944463797492859941838573819072582329670808209219219572975402200664157509333341744257404371123370135187977674167911982467483694275658523102576887624959667622040289124235146706094139561746126395077997649823443230189572756517392613047240474675820651561810014064412538069062237526688642368474418713239675371461730960071221710591018905080512665163450193885198740836216150416529138295946196384935744777995502133376837841198531312065871968493470466114602361813233535979096269890130516203689578601993026463602403102404259688074833831465171917045819585504015196388292640119569847545712262489009040969220862034066645353462168115842644946589445016005400275842410705580115636345619708912903675352481732462668113351606696199744830818934239575107256784197509756555634088613957195181681530578504433164057993914407470683982796224643302165036539650684880145371425012509888717236249350271029285086111102775748826395815510280595619172169093857407964510220068510453078447289987038900976356103365926390654537900589157202849781226044671508861786633377220283011076839876938892295918856369602062508924021190912876752595222068946998787339433785634292411926202845826684192058624037129928672976734456358917684100024036113521649051785657621887205756319883433240112192470920029221255983120357612448668434968870813597167665966464698569150863241144303322620678806330131387448346635432305476288290385223514793954813328867150604056678430471423417264723942978294232893841282309590633492095610763138606620857019662964965991062360371817961955317679939932342997617726868560884165967037442232663815970881851999712172541755229421264370386534262089940417818569272980032089016558231775589966886639977279415956989864473611335676843945784237103001799934487548462900261163700288533751381154136913658137920169557919342374896880920149873927801247743947499450269332165456144886881607005971421215980858905665402106685991021645041748275478553846284508316624556794426824556404461088126768268097409473530766409709069494467069878730479075703542009080428148061541259765261947072927808102745709114357686804036595793679526150381640365480735203675516062640231089781277573626684273141464675034702495623474273835774960617177220660323790012199675203518252342546700601088530337313005287458213551359147600732383056704907930739062996032531659597426999828633535962923112573893983539654839698063649491988738646088311252037474858053736125723872041299658361873116918513527365810774670265247326709010826841160878952868873020152064134909807070846840566399418197738872854666578826708350432593163468059981142159199155602342513189585259405785122739445889125775866275433461833789575977714274720790702670806270870084307254447787173824793421604341925494089860352565845431561711526020847908221548291390910957444869025410267457498228385814071901096634657973943689055228508855601777462496485306686658175179101721280588089322981061722083773080112026036416559070739709635423364807524395470028710854754820522019190642487829581029338547516653510325152338204778288961507826088088956727501688346195457525379927267291535425527654232207855050088099485266267472253312879493040323420195279066669190319299820099916925810896651780279727032123083352926896374902155465731970009690993537841123100781350151967569845042858528365312452421609056190219883133244660043915744587303941037827863928630674301921801907206671399823269584877756001881659490206390375298935191305253129279360525854930593777197998613583411247844060677841204464451310938110092637949077381574495310911189034094356603034957224094411431140529362028120592936978981830245245211018224196463604260447720321401124644735265358005208667064178048498744962137147210054373100265239349973932733628176367881185740900211351573027639246316642304405247443973997065423086024389913564697015447189454843484472964830801299783650750745039059335890444697527604424139712647298308719347341060578542212092196719756515335062078990611701189316851866466396157293125648689481228113833659393920965667477642336185497858019541334587471066291055244259322919506957111952945497941043466668977574364817109887380892978681957553582211382138792757600321453653419234269124761212855623562677293327251711973503354727494733767979934117231728944127273464220192108639525241564417961618091896747416731452410345655357561448166788990040751128617376500666880446120741193281548059276021944098145777067814967615936312284392873162426259236613299280467181220247148851052710395490028719246218744553959189803931297341683932704802058049017812720559809676081726957720739601510597577400867716108580608016734676240878853446291510813265493677011524047888738417635172222865014463988909128816370032837913539084043826819742964059973024004819170284774907283605021555481537447707720544197126095261997996977404528723783795735029873161629002876789549370661091017933716455265100157242597497315806811738463916059442365618224453535922439682901861815362038527031105129588991927672847236263543227002248377451049439611993573322035564578957057903799652319806125919510529219678205518731145839594389891477701889978022658452590384912258162473409809212039530355457555190999389219861998879089025274734093244932189521731670891506300707239332169923564524448559955737720970878552243060471394215914166808906557762541349500417540982422011610319614936203900376348761569353496309915316882953234663109419596510325382948648882861924682679083191134582580925638170097939084237229277061625485425535546632894200671791482968566184028653626681685167007928814364085664737141374817297010567486760079149687435491914691429142210894127252910506740072366394182727864427779833290211977953466169231576708633992917694476593844474072325224954671046289088937189709364123178182463045873971751178689572007918221964400476882039385505702917141537952881061819169271048980540713291189967523280648407408192252249829624598430779628004705537782173313553354699333209200156551139680247119123694858374910700517167298213403877883707228639669512647447707250368776174471402716359527614821842137583776652334163897073759391855484080175477967468144003209200612549856836642236966719929080535714097906741796683195994200989650054662578163090955825061237338085360041920660579031266829937850592878508794195780137439382484017783235836014056149194486972767227572282954488289877031733694751069859997616554446404877013093116172741344646700710470291703728943710148994989987258374241714903380105498911762370402333273456926307385005885840748776618107980651803192235607198921806788822573111242537964137288791854190840527594257368698159510199432299630272034531539127339357046225140349228953252924868476868459632214654450721199412652560847996633434373664779141815428452155175858554968929062005003717918667815269713180206749313064522353624302991448723958855424960749876290361516700556918033454983843509842763683760669975255336851127262387394950017377693515092328117772818817840057519988884917511498118371453533783481865383384579732345381858781781826124979034851258762932418684498045534664639122861693513786615236755065253658683182683097414381452693334586765992702768929883719424233357240013100098563457512275092146562985695155399948722752326663636131102808474638935560363847814867106889043313669879119828465372971263827601939656362556689340150585161744509621823138834808655304889060332687508028172703278351190799378616476729861677667592413923684901737902202216715491846437559094280136700450282416553332835958779649936725393680226809705825412135847463629298525558794928463105921279069025571645739143549415497458287886992926443214444708503611394194744942972202742186774675187020027361452311913115604677572346171503716056398334518373834534825115674909992893977878013933370312942366811252338323958858553394173521133107832049502239236639929633111161762542592499840638929906544903500943843504418903555334990633218407764020761863984977162667314984222588885393304796917346727982684575752633150557457211068148532936585137092387681133667476329463108140172145492788722084153303001458551676137304470009707334304403346369015292103845002719414382530818368371917433040998369476106519693282218415928051231396086375163179157426969873246915646315392162444900027012795915214631382126815468039029866458685972240397823628773782939762149806761661146240304157037043945789269332536634326658308992218625739771685583366604406724109337900933460130365334307803248559300600771074944877422925352408209887511870310731894655395364447417582684688968559791645147995373011537947943581469199035187954242752565382931927544133176501841947184555333574569336114359026134435216480201644150575434469278321788001631745729341301765945504072736561669027573637897278078454744865126999207099024164314295269963759670085193407175189193238869366630794080608895932786971425907450552284064608557234964175406927335979599277505475774355676076133298432564041867435086161330372146538655895054805518582916248073409200905340761526478183005635261099679841488143652031457818716715885931704961027538666164668979850552420900433467748670124610777358048511365194379066948876086857678969105055166793051114732211134753309210283417752771765510187526875682133900137108299664698835258317187238929765218447466011262001714648890719666769927915113104142032797089048309042581039840612827673077825520982631731237344997667568045950107673898632311387285411992252471268697953846891875204854934936212525325115186322690841272342834096057260212437415616031729523868664860677231687684226309041392075188994087707988891285268529293873901410732458201983361378738735008772360644459444378024794258976807938040583532840753063987881077263437620502292398849679193510336398194833102537361877332619906219563699156205896233556448939903648879216910187040292926980845726278226075836838007816432685803246094613238563405696198589163890536961083751773603968864068069267203794591983204560903168984338169645741234508264117304312909237458175422789923356524846524176338391740318386070009103876014083794508493281174889019908232102476635090287663721941298342665038723560794056743421130665621249185618935934372661704068372777760490436695285585099990322391648243988008409246160171062786006275693501474302180994949971605353147400799703028490146847501907938147648912960166255855642315323116859231469643509986809447563707544214730614788948994987163557009256282236987157418471876305477345203572769311602276364578081267559968635327530162265498597085590461693676786797975586952680139666579387910015548746001338708271225724638120689261666032156431913725923060316082439773268610968991137249341814408673316445595901396422475629270591937624200799450841286483060557496256530534831612100890459849782878833517461180818397479169623729301487469939997042615805011377964369545042176382729527616707764290544400290661340747692468627495270236788712140751699639314842023666475457180963754529913252504883086480190330059228953426015179802473019278646632190332378694223700529005807098711262025916121843747610137074673900455150240131170677973017971289153189623324734121541178253244436328758443831975375033242486710338648252819771728443809616589918350136422816158427610473417394477235028113646591109116613002292879845698374189890430008335633574281367101783914941858188220082527722496346553657219649434341684777242602689803186617092619451085665272596801642183181398782683986006987604864503674078147644457808611793896579737553654442559779922334958643313374530399973001968355148660009842822802360105251089944924762401619043430073765887603315271740213798528420556978232785946452593326200161084077049149398984251733856601092507457317733443125931257375916840344964183613974430328301035859711442111226883378883393833766474846007528503936741153844455813357401253269074624936868673626732465061168887325848267129059631672639835650545323708362431529587053465763773003566643989123364538777969895979958238160329742486218086388996027570895596882264547614913108729890381827721703361486614558758274399730078469466849335691883254244481537368296420948422025058710868814525568408406378881031810231115931305012622303937345730663345602962400758198125496911988292229084229771096199749575471999039407732575290734951243874084700307981625355675076377214406644097250160291321183879596806576783511500686103561262257194443782649450322301875728658242931009225212708425011527469195419832226245234419984162543206507812912431360298217859595787623174595289240931507439229666575106549817110703352535032383775960198254484724345204415930737760331851616950746226136450090158917459491794072544299244785590118390507142208768207110284374093171868061049071917841773924491784798479605171944075364824380614598427315794879116705310383294571193537981339719695091752549214058756263440988378920096841933274379163708810014628494442252203935709677037542066867506635601193375349529119961808409393957726393702118014697495246936734205664482932761986883326383250913316866661232080925579501597441086212584111735478807781606227529310195548764823605133154252335221387416954780209392431079546599220935737311633194290430750461422618941233000580221751570193697730494557957048027694889610478387790783610409006378632528801252196008428960875097659203501281730089045026813084906318463422511254647740926963872550810201738343162638067038508963272151067900757992979472780762934443308424507039571003864014413317166251269638927159244994723791994630100671526870543484997610109843298923028811619737648427715575254230647168757679037185329195642731257634817964450378493006879879310655129114846218428209635637681604377973743222052283966255499263267316650249267822302095387192003897928083979464872897636511800396431876323660281923293671062891414629224111579679934413760513995567844200737645757802302378108855645281628031447430246805112769402792679914448886173936038310640780073519401811935599085809518987361561343160878612612413537781027631777043291581499036337544920615341487193764973649574656243172260068354111756081668289406585390714460863574667365214113838657558340563912237327922054062808177415428278300201991803062765878484410070722644440146810411660574579529949085576495549651915621954163832010683552821979718050241587037034829730792754996677003419606852927881567650622503342352133062853227581047992072746486904278097454616092021173840324309214887411117168231366085537150266632468678487098704183620509532042449571310866835012015706798199955564090373959317525705499932878345632689641934892829719634546495459285265596861984569794452042227735650766870181045844420611256225188186152308813739899964107089921876469978923021397796598237409935255744874044587807511106450637673929951468642993213201261852828963972715096784752572535663015506259435465170230361874528908205757368002604049599505790816381462479053706139685362175449839688636516900059354241192110480349017528670151127321494529069763384698259427594780533548683317466622288375917144843671541617715344695997235264289577020839531925654914207763420313835851342695750489519530199046050762681753517356824754436749507038531734464542785595506915816721243837482861377224499578920846123193692059127337310636537073636512515949508054077434186514880284289285366496450812987715498695910134105939538380805835510131217535139154612557365431383830892421695192819990184781831454994437519366867530274914659030589838584732459548896461882660013091644686034982935530654243204214716427451254360826513527807949947306714532794271878954117765986884502811637080903072064924322014089937833914185065927458821276936092373838580626922366465065283443241150767185119185953512737568449231778169676330321993709394481464246677184841480575870620195552812981062261688526278907681506964831428013741683279468955509070597406961184809634049537811929103433387508722657106086697044098264096366138723273046682033394754683716298275430803666827626848344322199797456187191967185603934369094134763575349865032130060763539223963068871853981464836510414030582148069999744033526469819973941147111889682759376793891405606639126222415624634554982582654415319494827310682054515113038654506381013703274573340455921922981126892822893070552066250814028785402338498338137065158973771013198210267478956663068712224423041912807760043534961871068450622810856470749703513759821934808835172927630489955726592908684076913977854707959507495920609523126223305394228980172988710954722211754197757467036316825723119455014966260025735524001428297718902783960545381019373272957665037342621587839734082121665857712930814955488985832884117021548812979492025499541110780698332291135947702568073851584012732589186235759987429452155427155615268548702453092833819375133302979254772335613218901010241439161663524146683189086981035509732827229709487929652625540420967866399256083441626364569167834867237915523271830698474215573572100853909468660508750031206027692835299085740070408398743953509605554714821898402583031702710429498595702698262068769550975278550340197422567489727175930785676037373526476225499700562165693362131689475010765318662610749472400892959268456743770256045210383431698525621693466892916053697362051748632008745250845064967830704264157839802586239775666762144065971818239646372312278758134446790589791069049563918638303158432091735726015152500258758964592087046681187513495626086079811645965179606957397222107267934251321362150851363151475055802079442177011179805105227373476964454611666419164310395037165773957667735546225473670869490942648133214062455836921676606610020566519329275136076121156512062688115841392070557385548500013196231256351355876955833987323040738326818124388333250597982097302369311932290258928083509747314380693710812885920621914941858739665014774671656288805540753291137391620952744096100574934173669526636515299540291136246800016382742371483972921383533986548881626213199784177677520266463352312359068547205201458252782618867150466470727873546852409439661137173856440761598144167199438437619778767722400031066003247105539269368093521130863464741252504949824690836394845257015941137328544502293935031998744183923595355666549966921958344073215559316286570144228783160457096837823558924795917279606997484351084135024358037364435048228953130956598303641690053600552930883086428903211520411218143994965447358849138921893392839417608514437924453001681203560109984674589194431936496218185973708962585285550289894603312210644083919051287652245120202560507695244213495970220849237827066721932968693672618420352747309399042954374374467103621467594786397635144815616097990863514056072231179738168458837240819013630455908876970746010317634484852047433049740409024033237226869300312107159255004463862322324536791433558816260846791700621641426596209570680737823316777227611277506407165025147187943375089129733420133219808462509201092581722721661072892283965148115658326112014010911681148422448452417538640153788345634141863845898345322223258822402572790555682079949325079855127673466240778436619277411256623480605391431423514942715794288499306713144495419768222162850228228987560754270281706925682843647409628237507994284996204148010321551839219771347417665916742801583326711398478146634831803661161311410392232710026959098913149099777124476491634537809886402934992302476326216288917327422214704632844921410145750592882254155800172748442212266915935049300077374858792024689124397608875677563295982759993192744219000207225893371396211285466480579795589352081672763011006495986171852570345154132934108952396659846747105679542994537005333471741193438990058036812877329038526517864938863326588414813730796105200897304724284879574108352492092246064193246565832334864577670237196032383939794487781582256258004634639136537302784925150269381305376589287201438539674813810218014190121768871857050729727432116307046907746156080053609452658848064550811954782548171545132831885803925085455716422492222467637281844606446913812758510488447143854183752688177176063958162673472481048727481281913984765879167519112215389417176056554631108509054773861319928169653694665697617153510064276571503814450987472353581531324450598809688303559139924764640615113678807313829178189088974265004295908070617687898764397652244215719775236562213489706383031873648299893164529588937348282088652562865930534423545500311057243590960167896508491458624143411298389985579053621958242749727010065933499475003298525947710375198599991830799544582715993559746148399636458932590061073273983500512729786534913745273649068896251817978689437305857306871775147017464195030803224321123145227779437233096828551334142585314554008413708518539603661815305830606422295261408194226565772550630088824163336185186909059901602008559160626805162364549180004758907379112721364769909602324952379911474224103109802842610538746153664099222076807817920703864238091372933669153365584806852649459035225123114020151277674144504397674602817734751165108639796394988274721817899381992303935331815224732049159862743238507150856784826033923990751255553212773275258132284993628217114801927071639675535411738025633686881546947119883912776768384558507277982823185846879826544378570705502994178736680629688800925809161626890685292001005790358431154895275767361705289173767560374629813773792324135056163213239412998649090178866865583829368091538257214336389783453105046997818819898767986417155644116578509839034798319657384831483489754748660441181552716349080627147867121255719257993608674002260787513058220999994597861489126244376899785146851582752924067335637344931745080679338988835950032265431539048876291490634119698855381668796209974002864176928767664943477543189862748452402547306047884350633364956608170121942473090392876265672199562425541251488513759016662291281218713165071760559535672851051016659698181181905136819932836701578981757886596406562678897756850180737942863904516660725937082224869362005760401089246155783517663969776511463943828206647143339731922398461589590401402652261529191253245359009932186958291027385794908748704843728119554156752935351859773748693669834013733223840917638462770317696027940216627385686743057899326864159983031268318718570890731612534518832537843444096195094545268057335323693781722896576561045796570432515411426747074479954231778777091546712053981397724088555982769322589744547795157902756334860596705399645470259357059330246898737404025326566810925314689003368256818935341021370200502934883876496315932684384919916047787777664191959041805699272734985431851537866826469469677918391389160220702451646786267607021771327727320505399740577278885019719440925419094746003051825650495896598503431693124640203903200782818695053743910493224856513347086882976197841357095728406370517715935126975486267591434463191336544117419106283818337745361442302327833701155078667198258591046882370666534212088775075484629798279891355175702152015507981237093468393443983463597609185333647997458419517332270315913978780595764280384007299522501850122302734254091401239286410242450240845477944514423312823749225723926144885389418309646248199888948661041853782053580601344044807397680260917216728064666713303927030101244260084796399257368474837536715864103570045978629784263914142989077075133812613636491075697869154751671327293581616383757257236675824154362058096494726623635850616537958468661185332040153442555400750218575905344484214418512667275884204544355275590831572640231499158847562209797459900592237618763683392135303870662293852960198650579129971689033513138425501649143404949241892284594861743490213453508046828053348888631833835931804127938702578639801070170906111988930954228149294490538466899528714688616347231303232287946496663825838710064706772316981537637934559036001084599459485378230374665077167114828139171444174546891676849778157449130557452451567829247932761357912977519533180369818902600438792546289776606743837837893081738133006285258390039555000721756887840201129533837388262509315548501857776320466367740577110508031170525034322887065457713180340058408434414243820107480005696440533422750549644387135333947956089839610158163483508694797757544873301024140048707385219901138077965169790475843921633497097141640295480192087991355536702361854438460400353073878504236522099921021778151411500617412444871936679826708112837954570297994703490852912431381176793079861130375409826450617810763382839284614403193632337959273520446370868525536424266345140907026226372340346647055276795205917811317587272955130570856037540230385115920129212877307477048371054782323116908076539735505089518381216324160465987801498398198930735135173123929963682174357855139262055987012007381758092234454759835710419001681819392992935155190970864309322561165346554972504469669019707447334764959824554250621646077940850088287461336423914810180877117005459160567264261360929767633268505158677840890334223457918140082006103810952452075964103978988498342309947966677505557151850111648638210932523867992886441964390181785933497271462240959191375832019665618203414700552458877693176702011623594663002139617235759989652016099813722220166042150650309563903241947453390571530454216552170421616044307779640419660775461187736080540854143812478116728940501097664659478747574208358566146003524473639401356023854852297014711036809160475687513985155227152332884436531074367101719996749354752707859165003844999166468347865755314267989974503057242182458737000197959887753416302341750889126296051128431155210567573078539249284823631198197385579331563415137250752461435937916188729537508598943809254948548867565230047481452163157190782740992184777240890922496588864593611950723889991534088941407353227913201731381632593637381552592407145920540872429071547493565346867890536650974222984230457042869362157294273554483645110473156884054187470338429356207782578563070471235340173487395455012349514387714115280127321100621544900719278898187850850543739668018491905646342169284437294748545707737765331819201122324093930626544462388890576593169424946668378406871081043091565034057605963852058332398068476310350786984790980996656041578015436042364645078488657518498043475646693881339477060742141283877971316876998682425038410769030992349903160225066051676435406674243145778537447771401646500512199016336586393375769886770423244933728280207463251917233606341614480938485174107159071947860033981709658765257856150607108242057642131958280714102474389673321609857448750539949263063014120732768929125821602702038851446417640794352072332310219520071230631906184081618339158927804980892353141469182804896180664132219375730651944097288148906668252207597109361415004323430740651020241594945064554742347197170525729783217382790686070852499044709226870528199816088282947326322373447249791830899436898718006142542688295989149508645742909686537423512014877190333509010251580168534772566351269969850054280677374269517197193768758279644074771056851357265957772474500649945038300474607040068421982294742094306157585114641929222103721519941657277865210408915242956215421282409527596434277158688978132578110332796431892520915462645884024222823044098530180127405847309775243546756656230361901164099070693089045286942684382042984477690530247529018415765322481826149756687359381255177931128773384446259192562483015173131730589857660392044252402124729752142587159219787257433430271184843033439680480793829353949223748331192807360695847136703341478271057749786843709046636068730249417845290533665970206457961901623853065931157815069508668960638284421762066850446476491886354465839998777139074352953895555055610079882434348811216935100222334776008690180893471144114055886681397701831920515600858021520183985249098088698780467253526167689721438380843594617393387291474887289730092486767610069280685858029388153409950191090714380135487710696478259267475942700642304529929938137136855173141508264897711736444761565941077242052315320376062746058423781007909856976604513376350999498813091390296837126564838809382147881317047043484310977485391242207228817117660294367319465970182289066909772052778340369360099951183128697523895208486461887571518536452999020785481685134722228383732502989530858181379214407048883827323311268392829627755766701576580549536479903723633011086677815798195056173595535953149618182610574339031540731208754759494236444915445407029711821867115029379698710356479146392822410750555754829404597836197351199154162977815881575806006067217119502787912955855479323610967964423806968737258026587161638273505670429317566775579642190269412280524596449198925726414753636575584666951562001660249209400858101847694334634847635427972885826272153125791172643970283868336911192833326459007084329692179957473073195844964793152643348242263244474371533841693066410230715220940265999039513635429171145238022064836507662288164513621361405446835400188371082723988801122637721937786083194516085683353143184518929426789503767776068511437275334258852553956146539295539594160253283305437034059076953412346398395469967914133276375310293013771500587456040886936613904262509738573240154886503056776422957157365856195580544330613394385497077595953953627751052072606368480751705213413291888342425314080245552312496741302759152104489268606051489672810089979525432308639039082945649413803806575116581436405257911622206040940095223763549295448296110117474337302524053096693922932446269790916974422071605679954364127962026709075557973480836480206825843462854534466642315262190678401173194576816820619827138952208619867457455914137247114736044145054065414625317193536015568387526554337521351780398235340107180226489653069703491402330412539192772128241497212745333863834377387714247917110774025654255332636878880071040457022739422210819256152143327528782217598984563604390588928136690544280774629989715306615248331685962600438516051277516165922878349030157330973461490890542421842088099799701670208955957095977672541423500579898223266349653497777346629141326173282070394121548101103285588521362362214250887301875137578523193432706806227259887108421086943069819861151578845454743773821364495058965189884553568942133286726032816004393982387170472371346316267975765853084391885573628062727492969561243598591015711923257065467582594006698741591334342980388388802805723652426299462558497658020896948478048305954590928230165981370420761721579082829809830498861767864124453732640618674060939416246019379794838502332684594913209075939312050133224496920491861760965890955456765189881885828726127218257197759705135149271004764972739365267783962181386471669470943050779013826925536251731708908872023229072963272523630995456352667033888989398951743736984632497052480623987228021384670256143186876843681849936811480486083626685161611005525620951460259574128986565810235168459322828081426496529696445365024044060342228924853608477494829611599264462487720363839994268225000777965832071784998022276455286905923834459158358204451877561505932706801357607666093992449596735297494655120962673962980822690839673193156074333191842547065867144772454878201029288510234201478092668303815984087203190217915804539256889661436875865273162773258712808149423380780698845164168680909976735455312389548437792237980974099583551409079334025679440320103086710956936222366054104218874571026172921704895081558296920276720479668466011201066310672131370112095382469459588071281918675809137554778217365583557554450350132367724575933098820932929085169293444219494245733178136455943301084316217986719849379133592997654801107930779567392341839592336882148708493592949370317164655522752124004048075056738927712057416508902601745675497894968405559870424216940241084370823655150407767122077181533185263845394774720836620042562131758276094144911869760179218717003922252990169665762424940166886917990616011592223045958837992981622998919196739892611601694371608255081635339369366548862859450238034757677640747714476884673595309648822763762014138818699872960200498591862064917218408263491780682924280792287052226009643347037204286380257128464216637751596806631660182875321334834288644359525430216432011045831512877800264710809522856901783178159443227452430110574301019061243037963141211433259709325648423329975620430101925731803352163608111503730837715450425008625213724597888425711635271874736627076884638557301985454579972236838421116874205860901292054494248318619404251123605066019123864924634888649254239842728526667300108358483121720278652913546649781393771443292701057128550405044525031075526623157452462790710764169495212272403875421579551480112679729868211473252877977713470869895186717694301816269926884969567398120873969742722304470448749609864856898839452249957269384574880231749597191439621031415389062142182188108897011204941189695252905450266177042161342360720821465528997945947407098901612927321741670242573986617044860228454595985726548253150002174124833195409885934685896824991948946329810984247292039838831304294572908165570638902778380928674869906173765040265518477815991365594355192326530861600101424341423046115924875471566905465338112375518186920676076068413055372731725814116022151633286181896405614199202934588984747519817301538288559311887965713160491812587754018355686786117388887679584677168563815104567127021722105320653188969498213923412113589397236237857656627094559829028893704027622967574389194045557911891794939199970838073958913264450647943249442708488715921552057537507121260748215367744789187718673123469699022719605416289332803186580948435877069114744618810065312151358128449254918062571752596106470723530857606974934175999131682163060196531619664124570651259897838388292733327338091432944203230817998622330164565290084305677599747841856129582646286390388168182580292643206509692113745423338090485622985181802900349590196151812436402684703260310941154745469680405985200385428991385230007718199118411034307029864071283017462749779307422997311250214750878825557203785239932652879208047961736475209593041164744283678047114893799431115486666471973341961784617825873399999833423474342855361892964685460079692665164772629339583155051106877092065791369429662351796292650834313696279837680408413509552767992421694574613645329344514197311081880192563160568862961695933867974482165365996724540145267546934479916792826617166078213633326598100328118838678589285918698791997417192976338461755791204724417889024340239286576275121077716398870628446931243734832899145882088858929145008967577912808312555276386921042136495715583389454815512019786967530880938052812349732000923046610262539047514870633660453218293073122633298584832088171778842744645988782581107695494806527868276645782558939479191862374499819200470253686094606612783342000649780810921249970971373140782711712927292017140256606191802380951281655270506273953429737919636363597813351262459961427126426074906527843449640048785941385150077718308559909692139740933030197994733420110604315285872798370586419853546043575032508976119790267409539779308865152023794096033556090793569737698969345454877702426022110379494463255436533846408225705466963929162171647194316877827289216705150552214151945959353332127663437976253031210653280365097647509196950286166928253083734727749723332707052912544986237952732950372600336101066989537887387670230570327787769363684333028574645253545671102595364213698099491046328060478118533619854543214064119537910799414121706091223712640093319178138383294789482653779107578007668068260012481374020970690591376514093634746416395266625024978407693372940459175656451369129705977996683227730697339033963185687232764425608246867510146061698979734199028773288175976218569638940500482294877032529786291915571736815993137951697329755754843155140860119825447728925923674415948694161287738969108432143812060353226758347856696997007574982765716327350005240435140808105512317693141009549647872613599839991524730581616077711931036671278449348800660467204223385839148728905290172927266597243333429797321595152592062584649059801419041676476108600860221203787073475836710265671917109031813423485747091028607656026849510532720123962247356665664123758694043249142035203376111608222740756651725330743357082364896909579565803149288364345311315894205386204536378070928584943661201933324471516861353864986589175408244159343515461747016607951846325950559270036784234086302151388157703714291854498310884450734287746127996449786045177063233417737805421023022074480952090723557414212337398490163702433654989506921274186152417791124230910621174555873399638941530737112809440349932815494619268273531806900043340515032077593330253787051912553305904086914127874619063234070292027605893660772135099384571165377359977645159829986347285662091426577483156638816809347028535646371131942596832406378298462194005708155325749160914225219231741580374299148027905004712526774699781637711884185246997307203567326878057813497911621456361086730864631855332950826094943864609090871595840243588998200313573595364562637037878851530632259275950656435219027278061041175058897248721347460121718671460636823543560166517017629061249607709562097353681605582120553053028483191377747341148427074091300902639856194992357870990456168088682561799851664450450918936742618024511195184120781233335102259759656047104051016102743516280262476074885976816459626330475198844800894617427491310396120474615390920646150137353633761829322308175872891134247549287983919543005335791008022364998763202334544796730758578420659826229551622871420311010207789095974375640524891253952589731060156999947020784499557099835807840213419971216073814016405937173293371665202795768027349222361763138365904558933051659842144949010374307301569992110579985227146392178030394935470066873434360986726159044708208355743368117666493431504369504100342119759170467969253835724161234848656619503511722830293405607507473215820572572239853577244012120755671489333931730583568814933389565653527325473930068665847767552285038452036945036096715513719418877342068886100254367415579616741666933891401901632119819262855606897623388231731749811580999771573562285632070782425501978860833918600210406760616457622800255210195255958794116176243804933582800235585626645316530172979586095675061172898344020936261861185392873800457382756958585122259371366766771306932177491985855213472135001567786822432072177147404502711117401342646676924842901816056612407038871512569332384589034911761549725229504615227912951898146303912392718492754124623621687001097003573841432733369956809995436969628816804055161306700568856350387743163183100512861551509050786863297801118734898311095795046477996974462304351165347152767672920742179553992798522464330272989445350461648546664072036579104400518414687576845758343569887019534104776740318817985951315428195059246087161734978657790266232222545201340481954599086036789369120720733378713135324043862715730805543570811015996914904089872572137834054580737231680021883173373534730119281778027653348502072156980661195898548965891993836083619002485329909416490542670185793178173476821115894366954324824207881771878923453356630334537500183376722403859364868173531070791468145594469881268789506542674819542853882978486818156180091159315649951319202691705777031672058490327887311910423054225267776612815372517608153066355756793241934118068330015019468165127836002020880698657645880959591745774267949543773988892494303167601742210255726281688673035720345137619676050428432051337686666515359175130472046104881295300204120846417562848462772954598208196956120892123832761399722730252244408348041412699341117940744183030476736885384625574072339678366227954873584417682809919113916692561534628812502054189967447663302014950154131692778324871701398120121600434955499445925760157917824292725431869246133542789755879023360146379849850030850740961832082714078931110966199230824138163006544326207213232055879259655866811433054205339384626416288099947333422367635524301732746915468377366694887234457441639331901575600239338250768678256782973374982109627074399822905070735111839839749825271965548615486325287325723750096153281396300820107434267250392418548114909242134469750129965705432402179120976171940811249253942027910346365572353659990455823103581437578703483586973625582175905820663974364864682080194313455393655881800745367094000708361314971772481878999378340669314656611538182362752987868299281861798912054787539573691352165192557204675178424419915232834074623495822134437445724643474660272136172777586218528308885011192237121540864286073681703152921695725715889295017813265284065016797987992456087599865479002223115452271561048218544858309121612070874386799306813782128882914906196316065647218085043393093659590295097871243588533393952637016823639933463399133983704543129055155327242123059156626786490651511476970115785562757027526796198058128931535968870373929485809946326240816792983618316145556546784544180622497019598640008321315649917703406342108842615790610076064674632465445356402501851141545407001702942488985288272191430237890038929717403544470638442604313364909415661334828852648176550022052013012788521734066663760647475408082903387770827207168390175676585294289703640608203105694454484704636413079819001685597632089070225723746619279459985502104278626080855701606196426721149637079869760815722294617742340196184301023033925271803975202332684539684510889713573250372820775253851937493125609885905155872144322033057656335206650394870506187766073008431613303982192196663979039144614899478786769921049433388105010096904797720903110499281107470577617067997210552584194818997132597172005018585661957687029874581459145222025625064751174351572664883979178181888929604436334717071424094288141388122856576432497374243342198316338679467764244288406415106230639081042085454155528890489457677331241258152043161195706780477791280176505505861732227043394183511578101451007951345320846693419862862305234830072471502659872371662856244763574729764299144691630211727410132781057753941226994603160078787328031126323244330121537547732712570066886363259576587799228406039464359130704951517207523076923411116761617418256329490450203726244401696062574688915973706345085716694606592034808512507923248317032968701531812320131016401808697879122515285104749826972182517248298818703946049308539999949779844220127514199497812532088504734407570040984438484491205356959584430767176554054015212225386883743938443361544354622215552577012115940636049490833730271009853533286187289286527790302162423670021828639867634490712326597494047096103761700560370735071740507945160816918888645126777371837086680410726987750451004840271307167050830603320599615895228537563543693403831461995630237292350070023555233975574440304715502701805527286488095514516055649127551999390386016470579368300351060301406476865434680419698317030970966560576319338922916837619980283636204359910211943111266893429245985999419863666162278228082098647154509905735381891353586913022204230871919115011791006647689712024976638621995570293200413033920332844579387799653725074412799227922497753528951623956978323617168274766006288562984829218725375406357056726298560187472592696716321446014195736116865758342110577428458427451187364840718995822450758381098716476483822556834199180430638012786638761518357502577455367217430213714395443452773644298395550968187931022600961101488907166184814341136083107530858261697359004123641897356587778121734156024303329128956698707779681369031516627611878711432888854134140469191770451489948309042494298306997893326981492351812491410162722575563801335776697965458321579028506057253750578453433264542671514074644652193854554273952933290378559152634946916687499094481578783105588421003004559724711002293434307478479361273194142065465231944077108264390064868943592992366960849824813869738432539325450009053047216084401413802697963132854753710060335947922463348199101713610915187193972418403436803247582621816558891697822893930496156025765314511013474133667055061780608294865005951282888176938143013372972308164185702208633574607770683660803705619310299778858529734696290970011892257127998298872608259529029391686186876833232989566092518587669697228876569330198238124969792167884358456110207109410101171127925791728332345029624610471284089073086591593743804284332358329541846684602099758671652304662461217042210469762654389056128962770524626605520246272351833813632199973427139269519709207939040349867498340447132796799118784010801280264768817784245161181319944897215199941313620662954753165910460354303767189822890079676242992277860721722591660616388668974941436534855714245471628892933461628002220381541768997910124448316563229060878463652128697171624243327861304543767440738772376509751986414670863120009920124998511741234964325192078108952928487193802558182471863118481255852613163571717367779115988046306880529040939249071968675619160242185662161881427439799683068417897985533485213210479295270954214754264338744064247095282788754059760867656899625157062433198457479155511773292822524845567153143905160756039978976845614038712294236316439859935373948939762646038454424032057006600763093930371795814427351539390053127146362144421966433848069319607980278099645496012948145783423672234707676255891435137313983204405655431040170769385349299433385241521938955516586436546771442167542854253315069329285183948524109516360283037208282950305180013893186436637885181950056472846198719689524163045729267046114100684152023711592646766912221178210818595259941898751837633180311525856764030857264660353319608243315956824391846553013673430575954422309937845299234176922808629117645813150674388404690084608110601312064714736732140381209827586123150632424023226808875421203732356802999240830208017867674172175274676308959120662933781148728089222371390917810750284174250438895997264972868198962283207080031613002373688362492581252753113965672419209820749997231807325187369663873799178572741057027548762896617950463234701105357572251228877598142604041771422334320509930919472670861206660304164717254739206853823519991440214432529584911899740362025066052911723031245895998914318087721719988004348294197321122578496608725428965867085533420180041553572499520042144160382417443226157392963713373970803582524786513571693096898553098115069823985067154283694306299942452107616543548475965175966550346371289534171453319225977806884602333815886003234525307956298566439863505571126522010269274423696351742078750065657435989731636284734300790961927309958030846812265015888217117736569552375710919857291141595421666318097271938711350142590496796891452407211512973565290935221141476515989639335657472533804100609480190806805055761256969667720662900945584328300927292731066428161089290280315004096470549298561809516155807367205147293530684883918863410934688996254009718841724361965932543795166783668744031591813419604068623646482311512875776228081951288402736245476661094872474285300860537434875837854315798099740861412969343977612830713942773169188212647250374380456538132405875745277999698457020949080580535205769935722254973238826267284249312296860989129849349827852569304996308243968451459751184127141208574922032032066311433382319587126658400901829425756729632378227676982613879835960322632504675410013028525899565214274601039228344607485326184902983884730890315575165960280904940313483293930495590663008109580253770464797897245084269091296960109975423985954775832765251421310905450525183249122333455307988604531052099113063206251397274639767683457697855371866086566301687465576108782926614918745531798191366362503986930175812733433367859583517081736039391948886717056129205114804980226998631999470066834525990411009468495719827735094203494010032682804388765222432069847758350046025228165811053622521819396636824241612399374240091730859290903257298819415933493462908665499063919700151026448694404559262626696633745186143812851381552005818550257164615105781255085568863257534054798090125134257700766153662421257807636896378874734649917905872944052428231519334733348476555326629711710569533939993271389677903372403134121391117561826686738057047553252580726771814216305124231093232609458585660617583720280037655452196145555330406910531777012209664396175072615338192878463282996006482920799983170744269370843352885295647351541313011511680767933099886375500394120082634275926090206183991182419551969416455998102995344942918762830418726457322223956609844303813771160570596116072163759491540916416381847213790786633908429922286795000213414829056546140290077629832983782210936719056187501136345180742643289675879059458509409243531560490478037057568280375897317778988222851859604726627581398884705873157907199685276753123648883527434989884831384332774128162903133975420527761677674076471299669650406147459663645665523113727320264939574799896157120144655337988947814217683983162429539393266739931700710415011805015852077481729032119704757910847418203380230368766991161848471382995637084428528978354278762769282228516975963048712666294628907800002295858306734054604532065766486618478359180866402422520871273527701899416381669800715110856714575240292731293887052130894899016691378877455647605410423883337773294213265020744277831328926366718538981477429414301407093097546131498680413695311564363892873666204463436517297531881113545964227671854380648972444438123424272046077892009810953686855010733080306380968941961673378374442333224882436882354595880242817818107679621901744002931562624556690955722949345953844887941382211499970152079717016444106235616464862182034863584281644341098013712102014207208269806167791568368209170633682330953754724287698505955491923354580703956670440201312726146833458971828383777249860269916145907829661871583627933058504585935853931189279271252586158367890705081137453799137112354399248874762776416772081328617265549034703320997984966647514518130397409347197558804875651168349312353173436178932009254677179963016652296337766845932279134117901424194215419047389611273159237655826150862277991749239842737690663257521838410337757517174764711750565762923707230225660348628388751464099601201810212007051299543469915521308292348156923857043081625758119728429061797918688593572791576713610938876920188275572710157091636659885919469969768763886289811876047301810159108348726538605977712017465721042059242045409604112810630181188457699773724383405478968114579596636483560009648064646154149643425373361914488207461604188391443323598298891589548441542360360424746973734171891922852572192386799200224944383355753169290572771045226190785990176218004541305370471563473338916065610329092022552813565600918106058295886457725500793710618045593239565638555578519161993175259841189838753074482908519439542538508279241578016191397875311193010545935721022651630217721650127150704286173719573350300590750351684042219929445267640255008652258732969110357007046102922181978903120198851754724544148003367275295832636871067567842125766590741741811936722581218626669486971371584564670743246794288846945353283542580007642845531417291058919155562433433289159315579110811595271485575323526530694792365260773692256269797438563400709086130597383873677997554945151595989539324758764114278385759640716105011414989132938682431491204457392793279484590805915443045473926810174128858457750462938010310447782242258933402084242727555104142632409761230906173578840304109355170621550878091776019780075797822626688467947010040512844213509157593824503779143138359467720532784118775139508921865560748996666217761878257086426036144871328064171235828592318192808025881496923207298192951994304893025794994458800520517607120308593912804522676128103254184086656081989501886108072140615967066189909397676082019125858689966174603550989644420145206902557068496987927884483386282049902643818599619775886804237069707949040735509884572792840186969730463646882438001423567260763911589930811779287353877276095987636964141946315284431695961822070905403070465156400523986371387840044904450338764193692636866888287393901589992931792995206434052178672860714004853687294904552508532808238024383753226900406517680427595612086687920853424307476015082541550016311943067528870828529335182191094977527571760297958453220976415159625396528050804833142294753497346969623881273153123911333308987784822682425115210433733563670231250363543975756031939102472409502120105125626393883901733070486694284282862455017078662620797102565377190435850617918404076209190256944296312464718768740129747940642748988349235514521736726162678199129125660182209103568566877615789162346251222258151490837261721804074901852823464357269294055157269239685476662227867184270884376148131330876209929229889964957627754049226412130583514998040114709580030818056437068459557324303793721512364397527169597048823473316185327687422489552718129645416457269902914221959591166652350627053514004657617898950016706897771525060177937394785465387846213444013563561882664685532101032796950673306547658767858009305430060890943892515703390752079892441649245939809066656779997718642419359619047435095830233616768980105638030989298500425586348700043228088516922171830058412922325910535864583277888810305338972984117441149624226992608288128063062633860379090985791876365357890828287770023653072981112571070039238091214931050251340072644152425532894245336167786706913722971541525649342267207351522644316694103788879623459421729702615698815500050477281030034151314834411714910758185950836249874413645439404916738190853312631545424495228163923474324810767463773674293429348197504823802529558366848561125621309562705393522244617080577314925095653114252034980940683497842146486511623500928354547433554898258094612076010464479633643806202025024154345651059456656091452810713760681151235976639096417888367874917181226705844044440727116892564134597017406657491838022798442702101878771486934610431968743383322311641877748482469746094577719685139486014763473535353251417768700770465330105089012909171905853422818236106303398469978956861811713203371331812310312303469956496323479640637371207683309051377428856292290238095918517896331410311803918081210422735478794813379519103169819425296449019745677676626455938099988314472349778229819984118468357629148227674653508822993410376612681061975788852545157440805068035351761261427773028983453741984264335762614437196146950461446121518433047391636308986778682973037019416906991716682656875523629146126174296001615635215782091837717441885159041998265910838944464202521801916475767017420844090623610559789797583422534863457948094899641443550071884487098999275208503578436383016322525624191260766705591558200048395331701703156911186828452380546047832591529289054097617103633870055822463963932894412217691253600301628371292886765450154891428984643204903142393199930669774611247397044490618113992765432336838167671774833830928437938771390545139450244310278855010117457007395545043080596710319705715574695282938436877121775579956741575838468975924345879333352831801600096974293720270280147294846988787312755136954465882448244739285525915261641983176040193977218352561006734785514074589349202805727360150410664016083189034121560224265889820116427440291125419177016070248118758613209980424354322755634384537345951887275586606861216521196477465463898073344061518166276235888519118084829107076846099717876970534354137454576508597200302677908112347204637595266826234829037359344960203869380946868491668336159628622694052962990574913784222886836048943776313755988420003849434172809434693203538106664724611729911378429010110126361375337338188562575976544831886356465572452778684161415944268784604273222450080588596954984957871631678147173918816138492297758986660231572743437951963398567460537713371662116064373328398096086357304632455680413420283656060796723805717308956096718561644745168338652912645556424928504229220902739208793654996686836340008615131119560362123547199578868551947768133066132954852347812570981571602873645996810494490005629993321080202464923186110090946905436541056412684988847896139836672920951565875501817408471394070959672824837864179178317564453213115882212378845914152076365970102263947419336144869452288102776389642718479089525049405401301372405505985967190176282143205077675759021188851496805541433540772270146974508012244408396101063412579747116401054141753639057667574633396850666744611928612583128543892019033754957033792466540894987459913600360139640031575813202683404145220718343079791931087630856493984186299965600248819641235421291390563287259509463861802790868974488145831713242566764234919550455590041656259860928465077830642035360107546214279561614596113870896273704425294109760093590942299728200366584208901075318792039696068564773155161665478455707187052045312822820209714939841651696788165432951126330461068888620858943482019618478698801522455691154132068948085969573147484995561285693125158855408837377133973567028927065748977302934663459067160611868439814673240176703905376499184120779690254960804940217362689051023577853958693719658689133087054272270302664661392632663968761458887421620018388340702638497870898082556373129959824327626666130419463645447213144504870164845802661527761536523301356764274223225353734113773376553246083222815919727503276422527242003759564370886196815599553700677471694432446535323755643770331939176802122211604164055351566138333870922009233499425374916534793484323079521722925566699398872144727134682109903246356073486405431899855499640553453711550861855821051247301738129925806148820669342402333171262583368391463658866261179327231376510063417869216821208417142747036021764388569146934246773678942140814966438989671403040194405516354786636308064290124582324659966017224173557006010732058445429293581707391594784716644824349842567254336615376729282258254039582154099075715717520166604044045257541267415652353680736264694490536910203509313351679056391069640995811179792242788661466102705962554428830760125756040700545110973399749177797485698822024088454724207871279934745920939212074685820831869379765092117865330453961531691547751777755046460386563508757500432449946939806370374443305445181895900473690786702205135982027457245478210544143884431584615802324035198060728346232434633465374689530330497571044466387883190557638616338382605818713675127593778220807726995039441157285833078875113784294872203813059305646693696404167910461256457938805963151942629532009225289705801955169897642570963028162217418826407425946587560148944692146164691793884539919825145228685574418823297329158244847224028489486153432931508788410046527389145702424264470416078407489991807304700090432286231374947615738242554119713116204014188187716748147539070506724593135888541832071074613831136690580931183563606873044299029647085247523075835553761894315575832705484799444592519630028772643349596037996994924994071830370001695143683651363568789456211434514469323518023419246492804370886227564090534600254238440731118840624932600377039161455760210635654497216907272279529742431314667726444960979534956824387330762312216324693635562048989667327917406946313411847193730090414357753684300216970069980382631152048412888020713998247895846220864015397448739600834908353368661285037136263258678105606735824244449536236156457560284427689834041031931749259622742621043001238583585896770220430286452436786672325821468660195468509690940833085146793303997526899505121497587763399301672113530516900169458324107305251737275936993286109331967417727139643180177383621391678605353184321645577534979357408459891426907492176388944864993374213197898240639389565432701286683728047478153006029339592972217346283216319385874253684175754147453039243539476738784917941154386728248067601504659460740518617664468773232488100953454386974389930007416912145312136981018447198542665315890249409576888503812961604129841398452351647057448983442276533194906193566664863691359234892138190622002656533200933317952594746837725260106642693330379007981894942103816470659813776957468841476633796849566114873065704267179680761331961568976482866166822988981653915363235920402147888110065100839287342174367548182203999111741075594263903185197660657808725751274640440703352004379914512921720196026206910386097079273341051352855757114017725596776106751393128362959257283963388244503276148807227160717778407909284030972437735482571275757741142266336788679565053765591741559518550982034891282602403256757553813104059877324818053140541086875234063201827582419151265188377443213028454214542843850193976987709265139462103442348266499850125257551675470105492956451145714213546195618969706113849182049360849352741033256477104132312705763432263386976314150551731470140399801004893325307783495316368894068484108837293017619107111528044204140634647603399209268927551549255543208491506455379234200545250188533356933634036143579484496696724548939645636045432996198798999062903636590321495639928366335929046552920320631718303531925390231042554664494260253644807061185999783172231479501649054268048092183296738381795244758638299832588438344199315985658758124646674489521544409472347899570799387696337397538900411343863327595001980794156944968012813400015441578798952926438570308331444803718222807754118897259426964667496831468768296004210377795369674928411189573606270274088289694395985526689164259808620964321791356195777007828105491062760384482409346298335148241891493435528447999190470428532514871984605704403967900727759277671160936855044127909851897639957437784003733492789583338688619051310924587783381975638231323263507143069783810987048767461963602934706009362262874584451529239184837441918419365652656530637611139519125328810436457139403578143821998629249790316773065002960874236458584961664846512679933855920502115608197716704872716914289005674048828763554464553465237911534831107589823146229907274677746137915708163785383287336999495384024351225512532076241452786658157558673766414062587068284771639968494297981291233366459099173916858473078047019327368684617347901551326397008594252171988440690165684017255394587287590532265084952846842635921328116928908120753357069469184629135676467143451635520335604848942132954581754889754110508137426868891284380950769361616850911306166414431020088164198939710788295831823928239814097172836319045593676779686250605922838930513614483189999895260306264842795375796091976417661451136763758773366288772216598110385653006487140171715609999347252365356755693979498245745459677623884792402005854419706238997876528671618744834073434202335474804743713332247127609599897295066881371030075896261019073707175679932644990675679727910077366639017261655146783670043104267009466833109163501731062833657447209032192013973899466629221132170313712645308406188964706485483151088142483553030095989007370855915625357966001741696545853658458354972003072612634871861876231809107421376267334822622228325529072479718333152902242173366084700008205485302386037841079246688447233723573524256187431811624741163009949042544270791302490440135610595583222059693377284832170137472761870427604761829737550214439873570030122425411665237412910009264388633482932798946319757448178997170070108922126458426807786657780584617508072716908859704307350440401428386806462442049678231623143155466314549649549165415609766913631203692942465114145556219980053325207737079103989935493018755210458276608304930248428131098374358488963581272766624371202017170266155491186372015040437557992690497254088506739435114717085250446121461146720171755771810038220729220320947843977579930583872105423579163666399587284905838825617880200162971230899273295668002922360855015560420887395097863862202676518712456463881033086403472750775778931460453130320548897422729835231056833859519056516633126762874836672296851908276795701252498150948527293243466549843690669641287885104823925872902998029244652896289491858640396403415485464192038990411915295324831071612003071626489211634793262080120199076387632781992877729442500391543395574391035447316556460642371551287955171091883942624467000330019709962854860609742219696506634615196870678331744405988734463476595647405909349916275241062205573797084919995518630353305987290837638263663677393241125052249824566303516081626612987584364006188236061063874603120765607026789275200778824888145422346110964167990551082002279055393292723815900338467483628239304343735295540607073869869730944931702877613156232757193777230240523870028212904244969367593223066437689810139881738984148151239306498371853415711666114111542446396105650240886014538360235069103769293072223458530402586806783854953188888314125311201844152840255969825541445002483089800988354407327884728192987715621326856132796284337640705263468079852589947320933428439073426498487116715293347983998947550494102113862906774601028021952045419392042527768087202674538491105159983162209770439825829945004284810696886166832533277456470736168643540473617374151484008852533630369061649532513124751497162133670392785241913065726960093818176144641042084953008814927537594724592206524426003093287310164177353291874134753733567030891227142049290603691546780415952377170079860636138977377298000695199417012059115041846336519855139247630017176499659177008622610892675695309087231814847929888225322502715654698895484450643771997517929217732734208850545059352029043304442491089402741955622044717395693950388899825522543057178806766072979523781289554273022987273177051483394925418807317142428786522315479460681330037835382875939391849829770967868921081736033652733256109403714878488255397291554569057825121135886981237713035398213482359620624167254513779506264649495061934694684461286193462870881745826957401019933773337685208461996878254393038745154201093758654856547693727600111695351311552933618933384836055958725324301915491597258587405000226148180043862441615967475111983799409353404897164768865833614568961467426516008782706354065624858810319914750839313285775305097342293287237136312898307847730677670084451857594590548384295907719164214501572936018102252877013840944547598413949189942185329327157619018190619617866777966840191591745541540879742463633225645426540559771422517370200411264388325422341017945931104661512369307118548529725083475407844589457449933373364421359481825471878965415511868023491350939921592735097375552010639172226886395088108989892458931302843196477706681572172137469764245646343854313194593945409412052204684046154218266050784883135948229942239532075542616741366915174616383071068051014722426144980647542928246351339569355251641981348082952320690824258106616384575467525895386821676531711706487629986476239270247536866448068803236576668548096899046121310944359959448118355964084216713787696326125516978502343907627658401159035399360229726327183456856497359147981393428086460061062874570301407642580692421105882333901626530787861645786979232447295242080136875601558930066802601163197439716558892352299590991443272446706330998592650981522731203262501523491782962067945618334498526780946141691825460704090267402034743166936051953966168046558438080924504554388583707049625332773653609650905821064456777942903154857871135534944552594022361240868989948203030027719028873076638034307711960319594120288649639648380150936473193767253482835154088397042070329124944285630298901723629314111882958098994836594287373966089695174411922625443290932528083605788203412664547059401644707204425306409823328463490683787536356158461656856430413687054034756837379832300237924190136188190949210956010688715433337755402719848420575553503521836686770151476230750064586419733363240706066752838037598714116359819625647845396397691812001541742222228886703276508493237537721231578519389430837821047758829487954046695053121448247490521833264422673098424814719012693584334585306165820686978988850250326523553258924957380367565131899906203871270432722189975543654772270154089216860305971053455547156942193718279559692763429193899524134617011386696420842733999888508785079732628806031991909695748766001764370867596297336948368524994380029600781931046618375610332057404734436789944884835818791398496243663968744066439495416450395038062437206876318437585739118825592147678076527832037301203491154688446527808758319893257433355047940668338846872347271428807301052555540025473587882034236050037014625863587279894803956484032483452725514130469414424194863091757692118590591125785764010301385572343997078951790534049577589253215450885804140688156773725827258160845635903855115487040716225492928276355395928066422935328973285873370220292836037715572057471871073437805420028624553007212385892058628156527498803806449539814411127533208777206737273301831772989659939704211128279252541249395594288041776774971974037288135088979767544315449613500000463789097394057256195081227243960023392670605484662989893377460400092607104652099360284816731619657842534796827928101406102790280389731897066678267485531792578775147598248107119044362397200560519137837875425100576125924190716090773947109714016076678270235089982387399738280889425151838460972699107822228714638675278309755513661330318356811025135743288216212535905884773181371540622874011399365956894532459666005860949411105389572556004370671817166153759885961139473374469291257031485807166993387260760554557602571146985140511841228585901271616584088908983188469357568198056670788540893820243286277284206211012627964484278263405909756728322875973663057080572990480623193896999426947884391865823427553805102332267544267890088281403840502454954489365079409157103072087307621266128654168545800557684543840240613389148580660364970116093079028936872723959196977617151969031149030115057638494444206385451412978391620108204264051906169636197264327930653579894519470532513738528850588567253574926013454991481820438730063734017830302650134754504160371098426127716898727314458039979476276287525645308317744924397910257074796902623875966635435918960633574540561947063922096360233497540800788215144229819972599590873470021425411896143066053821087653358827516859527965391727852264281667267763912239929516000850523971189789971523808230483141011741602077597957316471020441703885141666724196873126987568614802565088955716984286836862039368727405734694998655356014208059700720506966422121898512469054222564449674577854894514337799154512348310469819744533447549027116999246115389266692183831054417758939705672742131667419387417198146067230311508235436532475503802686092391430836062348655240768850902581778261217387003973485993870452559473029323662950102393361835009348782056449518766338449039635855146889881503454817805825925101452931727361697493580589548186688989095179928115074032505272599364205583001018835065993926532486143495258918348453253858015886657555422484261720662590144527250952683436880580064286330418939257921486230604471480185061973973852401939201549368284229514588387154936647608579173619895076617233821645445400071469790104385264335715328675738171806783906608091714803405056687933125867037063317816029901611423795579254886726747530062977992097412743271627273707487690981233045736155837337243306683492879532491734949876241872397114361508250110857442200796216824114859446933617209579606830867697228980331622641286276379522365824394689665392487074703789602264275605342841818920023113775499597840004073394123776261688119308826183102323406343321308883969960408485648764064327312071065865284056142388079588482211375666416794022579916367864860177774680109963858987312931384784478230889933460298159277913013341609977614294902566394510497725128454797414582849137806098102720743120586716698703269222974580485735258414096604004480015243287857982531164332215376818322810493524273043307081493478458856784583731618478501658948320689777688310470082884929218142827096835818093602696833277646886485090035141820958437907721084866304529747967407973787723611648846688951396673881618360633145610807552498855778887742389556310996449363193787824448912583198832266807702138701608919787528790973827140174052641059959838524296679427831687742906328092116768848623402064823236522716918009274257088610443130686047908677759799500441346194649547015161499160510522603910393730486929656893495088454322205963625750425900668042369758887126284508219541586791640712038379321715372002217477445491345301633579935087386415128351461476388562668993113461380951215485433236997358026505269902097471225193858401145313427519242015780376686846563374698921714216097768864393557507452667113051890600450322768542633996207210763527741999364812307266597099982532619635712688716365607788759457008410952756720840602479365738138553032661788280449492144511419578835798762810087463550245259702411807547947079383695115062914787188122871711685499817413246888146899631484384049873501045178038581265896861706662414892701792639963851974029573147709495281319220523167008959768751690594094336200759978812008440309616211367086898703596530499255826935776849944849972953558121168789984305973096127174390470209818124721577653926233275760796449778578015533418502690977606122370212240385496617087205677026719808887536059601374276515894539868238002621226991713261693081680565643406311702527109607263681853425817970184703308533962320681631451118288209727879324036207520798552358340895228541293608543047540727900577286527978685648446896978428043161912636868956411871078665354551653622213788781956480456438028739647746911050900674683516215916259474686608239487571990230383375139370329511165912875024586124583294098256369655000689114541313562856204988949168072204439197828243189659463041292086682155584746530404089204708725603124823041584831261426797564567330749360896458887905323898038207644289865479423212359049586671655088806074637253432415704229801090705414950052399100758914676555900983750028887118531875528962706141724701637783899871401154426717398415531680905973503862368859380881688631455561495874189511131727071984936077020392013247776378998274029677202016446668968833012787632021052614965408532407037293781275609490788603185612354288325954970390860574171835160734376348139203176435500860915983137047519525558607622641250625156803695276531001472550291830462149050757357156837208772727621266552700061849656622891215843019998357096790124861700477433813149247234892108790651567470631382335327687408202945632782136749699387113302410694748662792024621955134386880520527543003096104715286471430159756964816131559489238224645258952624580916911522591983171207968641042313817912749809464055650534719435324946160597191292022613632614343510337206103156979155826611264341455346275165063677806959246611703867763330417124956417744655028512107473048604027506872087703769502559546032393979605006613995977436322649981025599385319156507411686495116671291242032717290485902829751935621314612444805023352166584748858123080533168193156245230802066058410696113153071666641017191152755634477993297626470452175251229982553370223047057977401327892045387100727651500651291770969218011518913858972584935077036486527327074343252110557888501274862469346083685703005146866698012881365443397290372907277794745006889112154863967517555394368203144306974241789280994485576144929379521360632334220237878446838297999088994006452965786376187505965071624912734916691023863581942176654237709273457492881294461036421679133945097046638609362745683178064870610857670045852372553563844384879150563666243196614519266164432195147609776354485242327786459384389056327889388418022806436253209791581492885328565413552973246793870635269377133612207429364909760161595631039555624935227592848338055840488293172864390805779591334136375001358934117989677795086928192680263946577222867246313996671281022310859651452015554276615673586933262785010899862962620925842216660942536103135564920652009595557441152109452191011892022317462783632569653668728219275675442458590375287785894943659454325980362926212286332466204202244943125845840703212697335901794012907640909710690748692441140197793091319669906257097108881009333737654618125898910880081551341871251055079183989581345872986844655160170717516200744551694948533649506475727132046641054035835309210053180138558447388636332312095289637212094687756423827692999390620806704854414494019295729775411610560379774268960913390298409701025052979503951968516473480303894466776396516152802892962949478564116046464864237709796897024391843052566301272736355333267004053126492644786974252795615623592809805432315595840541365309121514293680233680569866977051006575822156763017635092916822770183820094023828079409323229189833946507267961242818502563679285072493447925801489627415924602597544455850440882318637671757543091623159507555884888469222195134443112394450710301338887729815830733521684352522861080818662392816809363782767996710064792351280957761655302030219800621039399548969267615108186366241786691049895202606199726499796032140211222358770874512261744742563261041795915530445646245199366204798291447671026230410452042961475811664006795468714393604639035899009126694415705040812170542406469276255074298005964017394987563129358425937168531325136430985375176079454735693050648055319490515920367017100297655025537739225991046748008009034572282981424788870979841553282663871931715251189685590108106891311975659713737747891380833821851800538806637309684517710302135835738458545920483819734326994527324474165071614681425896116412548229573486288161582035529403655948267198846710367260798293528315823176273201234672580544598607329801962037826907693939754287237938086124816776661371672499513018686324398470314589407889365618210659927963269261868173564202026307301519090444557344853230830883074704370540203658867026052685145230947607248261531774318008127659186082732442316660320709958816606604475564029662296523578716668232255667735646360731334655415282335133305158579031948222936896993431093792953775234571866770698778390961292142794859783279983744929109449750728191952217400690309597060548183464285074361876774269238439242677385183637093621187748433360476732353136022303527403199630204240210423397039588717280393812420808766709973940279056690865282420349746366062921526497772382462532873566943308099933508465825770420579425332222255819184769715912037039908323976068266853961657187657687432909510612186663485023366122604407561126840237845172503456647996989838368918041111447451890159201831441008633268541444497727345349683848688411127068114504821723578502984106145659075729060349517555437339494204977610691615749268855849887460349384288245220820852351535891943291565090102282548609745712197185754877020791823420066569328042476582145857993314227986767000774215581519907072880694309562237242098914749644226017314776310842174805430847318734562798030040989591990324615848867590940605724669638648440093684394264138847043060373078264606716898634756477596850699849772228196146686858906896937335619858346578481961610301364829155791676490995897802283437708423813957098408605482440196538371673345186147185474990540367634942904898094338490438128381721715964270992004670516148887796982996318089632610267567214387290639455544767007533855513244496945640950563751892342009211218538340804494006484342756053650224978514880246874755855715717784225483056400834430742405982067350994848054021555441999462512073900115834576118744080051677711246419659110528512335215991469852523314233537531567001274421693919328030205258511149715760924621539179971427779543335190870823381189396195408583077080924080545485927300039717897040640274952186914056678346670758494158865881215150253568572913429729997075544389071487246216110193784148002449688434472438060596326941938088765074928630017738580824804698422299481766048604829258496862335178020115270251056714153664918564504910019763122191492396153668239865781756258087825646333410045352531665810900264146944643133846874066796585778472001463061461189392737357551229427436726800081805041158270992610558148763129076284649271286593041410669849929433998311687088193860633974641049467396948430831803979408944343088495740523756889348263438564731091216910891979621076797462323075918733926698634210506748701008061536743418580689227097520670309487208613578505692066951924847107057379663353134493594912530828050737121076484722298122358878319535903281183885440967865479505045068263002755779902929530318036184968789150371970855629127254985698516476433856339081847086836823993717278004076444229545967604916560333337982595029602981759396679552299504462797449596583961298389458166310526165840680342720601385963638971463919821002614667286890498863426472079714527183327904186039774774442407130874457455065818711629487290016844370685862941439277446263574281896471347513520652681812172755597313700875310304738447469752478124486277183031705991065955389744013572497840906580812234854627608094167907535765836177844460118436393841854098297165574236832809937835785839440452880294259619187757340684932913704781911349546312503978778002442104047360017836174684763738627933616778791786195130301043513477387922239317069075060731920021435371430174964891319417789480013147195475583871076189050588488225593621002521675008524284814609880092322062460967525952386727165721753686318825277084407859079662495837353958298313810678021696115708005617311204793760632705728794333006314595709786066511382606495965328930672591613222420020382464919095700550799049248349229349901587572761878932049988636792923784638101506973876790774837247399207544275547299182012515768438033458996999313163307102613162450886636658730364747017224424321989507341407098024498764459443445220497123876803306615366132432559458313897339730371168080640374944620999490937275386083621145962245965136730419053998895373148788336146460514775386275269142822282976713775035924594154690819256552602214523725365494477480846480349886074158149738097912928779323595305371073655299440385538895223129998973280982894609150779582432045151869122157038475192757935478606727062896590000421532942155306241726612001212752896248658470934743473366458878965003002592765823812896737244209284845091872992546450732217603597270687193510209613497599874934105262783684226558890239795043965027326958888886596451121581359714179645189646758407697225882959110393293599701919457748950219626722545126496141794850865653537874782439912707746154581648225076523654806351633964220580457110903189401928382618438120508447615222881340215606859243950039716093674892624564897133319545915256540114641444186042971401388985329089946852894190631503402815944229099751464687340886332920829932473797607989318269772472215473749989480265052782055549107882443801655365763189916456223256719793361389121486181024691655043893137052564466456847552067543336649913414784832771454073656133448684390383877015621078031125149523806131440991598942458928401570448164187215510808378102089465576311795877759064752524337767514468255254918564454615488403253928936933579094805653360061198978544052038367484032968401360760226029269081946162536896015406327133166963954809101892245327198165045405798306801381770195591004570425273583736753458564182881071598999602488579887791200600994329443911100983429468522961906124074202264246079118773087608404762578167052160227532391198817601516336478967197124133585622842452971181305156595124150156736293185710275790991376955721693715884371001306619816551252579685304400450689670552195746016832977887464613211140220476075100575665233887855632948462958623052283571227723462789598827060954243016685799525494878366728157252346731899174254781103210379852661405989099922869184035644487033051741889592987898951541115723210424979879200674359855567658235869566709419048211209259193119606068357039737133670424567997698324141205992303843766320647561966893176061936271027531257862824441029154383318187021513978351803957292732639393653514790283883787600739018341276513921096205895474948648727683226070030330036462154752090693039920505350912363507448407880565395938440722869179459297191467884981587047041759844648621780232623994933465557456191459578489624407270658345350931111447988086706024414153891960654893383221691576239125971541590071368988405836819933531991828608757939825686803818473176847218898259297468949386624693360388432932814224462385110204988275317891222501256830657804046001604607945314652543208454916752850044936729346104032783929276765938961392294745838530606511944487696833166587068588291803441944491180352308982303294681397010598997952641044892098485289906056889129978488112955982099442555296424583415151340020267575963976719608681377223128420893473117597624737115255780521642890502350533662913998576122883916526044311235882012591906505112705376897662697540998116872624568482739653275757602368617635239937138691491930684173222115023833162017331509612804418988028345763922029089594047360316043993822419389232794093638867777387594768940606179644117531866685219657619019556742118324558123887541685330485622666614550185397587600007716503143645327970927387081330515744691750310809600140730509811090760490322115334476529711408223215959213851651208758056214653691855045604584375004328290391965762393625580583192388646508206066415948009184913779914997091518593445356016175388328864237868664308680664821420043263200021139591164021152411481346919410102198944301827609375963416452956938965111431275059869674385398831311139473921903196855182030526444557507265426097603472910020279740774173575402581929914576594617704437303440670700169335079030464698594435925620628548319820747029544451300470405633553353185811686951738110997283316163817618974217221414882563942827560341949752446860701878690360367176428329197725444960690847035242381889699223787224040776895796663553064805097773093219645970926334773596550378269238584007943064266722555302341669512129745486376057590072087897754105079598201396990508367892159180685932627319590520185725152937928097787358488844706756564162033791002699686428052428271359983026146663069507231287752077484782236126752880039100097151005948915179635785842316893416036298539485078716510721110314838258337383896482779254649904366999832492907293128138414339406502747640414453423373812183392403662471936845212048633458772370987446463741578131051912270272266456992714346912588052720842364754136933820002277192975523436797342036266188983108463604755319286026462122123345807177507077712497162057812721043634154295239344067618723597733381329469773061870449291106288053375516841075848018823662951541842309646206139589277229723139251682229103742835443240625952606492852503644360179001211288413999729532901274166205103028026554436645393060289617924378892951056824971316620779619244331313599086833721249970642471242944219315094822498443798024920612978983087094523089972652239090159037961304749567741515589013895451868839036855448709912220360408432630360611917906045286788633796859054466354830959113759301540297519958755336338435914923866933832029959934464741490912245369058661404337123563944690554796130619254409723320104751892781159004765906326561948446998710115535015154563143797455811483011629802582455298867051180829740015415350371522387458961801970299766572784007869812108020149443601804219802347236606483452076247816883378859269295028245807141336590958878982232110309395536980325954199335083943511403025876623309068712603607895933402991409402835555726503223719986826885958566801407355003865855962444084499822361194307536599783336436414123627770789744652985211578961460566402811703730695861317773412229136974808631128260561508511530875998657919462981046592747686977180324383088155909569642952279164531694278084529320515956039952434963191697253513170650202285084452609369817411496754632529785520282386745984300919995698184477427078842520815130486684378660689161981732280659743866287204079428568577030909104666434833352113798554529931893442888475258482825592090440585431962607149506310019632506373972075306389674427936981968189621950280750676379243341201348652466896001528848378443953061516602467137386139307213348047130509431277041835455556486603838215891855243188833344855158561057345081222240794114028405725264851824141239437278924336091648470791178654330202240157563253194860607089879110504901472198112629494491645070161385630791156630551934960689173167477020370947413737807794279749339893829599147132217968170485398297758024539184964440894488854393178827804094497667680267841502671052610871674240570065887119862973899374363318386455645410762754302938274590476402183726024694043662066012624372306361768903087942962565995686274117217430072386717236460313224554156931305242441213691974229020272908279224514718487263033580810472963827162523344107489439518457610174206077525365203045978911419308535980763557237624471154551008870888134810995980878914654825802719213516148932133405498025449281197800498442523438077440601166996090819263439354391343265834804839624120044716937354402231999262504364268307688052569666420995723965171866183618366728445927449024837512500133990172077131386014076435247014129373599664767565131120514996347058254225413408517309906043716354306475408160163653999349471346789456548205231927262559331354471504062176181096398007418443691717980923673103065815433875683863643764754680084569009767063731366847568246746991047069830090915762946808791296964282251600833225239253742827132383755487795473102388043885591122232134754058689425539721082371380526652324834600137870244606305511369268594330382319929867541484757025691603858108488601549997054456608962873490367531526991391916302595355817387927416466655055149821044666567094198750421035172605623127827997793552044175342073822997773834539669224061808643594601913720233252218920806370433543819407876046868002904198348377055067157630574027126376686037135568505999568458914332149727740625815940772331815169137898104458496420163713387444834206156178155412318910788096784561298213818782255989523692297811986939015386003315960302398280241583305300967399521371561494002083085509310344301457309590123482194929819753274773517258892381467470736775241880464017130782391635795659575573825778593598983907810201467989760364218125331503681469786735617155785197120709912867298439242585476966575399979009105774335405046547935511444641957467655499620774272646939373625296862629798259395277515869938032907045520018703903760461185350455014053222322551731369584848732054090275940871985724707572463719348375630025878511260450966200683795682200387622795018307655039184436653932625237548731925246161863711283361446936831590753872733518089417307971045845244100407610592642998921304948782774366812411534690841694930685620352983901829814700271286752262719924238978297271536159497464057850524340847279585504466878812130973315967984294678533329525864412474046362618166999602859306329131717310888869485616953252581045364030077213117109737167169326791731371904938950985608923273729018533579037383622070789513320960973949537980022421819194815893750824481587832145922856586871775940214893042274558805157030352465746062246457511071588538056668884851604665976332481433146399783652114458571654590058175785222250529053378780617759016090308468183319858768417908615917133948096721927954912494397898852085543090065753339007970978153375018012112905477313457756065480097504114251528639381221430660620297860291671704171931629095665573029734383729993272692777802915409846861341259276981352920414183835459381856148851656810770616509323528998336120756189332511110727565152891111305203593195042345300198794816963274620122616056496973452585147045762451471051816088492451344335661435664525011519500257426407427524086574526188479586386909835201840262686022411701804200967292960860462932941667364114956887650509647182986476107855492024850306692980081328774919386520981814458771594577620043168711233347224044568171116187518325096010954565275494737245799130248869138817488093991889110926657327946032368321495984735910587247638781788586555488387066653159277884956828121605737792051089363210699774963690301193574213132169985453582989828708563677784449149032757715104529693766414455038255878234879939392359798667639910245219997519029109749982797633040653522152439703110963498129871752955422326814243910451643531446828498106384452624428598174017424018632122717469694700741496309605469941280934708273708242338909494635050006408011145115043105744603591411202805047994054712181109657050574027151387567365648318064340863527526883021535153991184715106844956470651808949960334277730213185054646219360464866141438743505371576356824047964201134314882082483417358263169509140191990308889928664026925886312963332925921634748763992743233221401028468599925638078612154629676447551242314975612795090652728598211423955191795973469235497779574046850215580557425959227982063727888532831247831588605561513245163185229152158862974811437927319389929116259377983215379142147045883864012990584232727695666522644271364836886231981476158820522240563397564586932831394566070648797075925862984081824508302538884339038749073208659769672495481601880127763971080405468823722919712819122572345995632355352888605641711137474520754634253770671970274278255884953442647084225802750491752544485465893150745862269509143350816983398623524981415199244394709180885991693757032416700808451489189154726186538392744390218262707628797213571340194003740636517671291122984216472556251734828699743079790199987825861379029253734137744976466576273637829850694261992182805621924891015368105781855200965666058780003629937059211067060139529322983459819784639441997937210952004706892575939383595221421748881356966936012846678879272818568778867638544004686484177474113794063589413787399816908424188559778656589558777601318988850977836686095273511618564997293857969832742781917030230542940180047875362496349856427772186108129970276711238060710678420477634547861235095709522175050082957220056772344296439108842325448973897600919679319813648599153179660452662963981918971818044061392810462701528411391013499074395541308037330713106582199369498272271322457502334456584903194066593126130723204195505045744865775359603218719043334708816092841667772347443056005043340596619045146073573449610762967158588349028565939619428345338655125774234853649188243919502037867390188259859757227103769028128123303781327543634124224845565188371971682718544059055101018160025501530108577255764401769639986001077604613518658309222645729165715967808519370066329898869788222727626675838867582358096900189952319350598767784138376654842663543317215966427249201933056183335016627085253684545808070786364644183405365203690449117594970632579254721571637692977011343602693735710774256506164418717982157554012843314265887740896096271174541215566809116610120903781683327595023667937001544698029989306158016188427610094027374276790734057063346818623921097359538739177430136753565808654442549613507955433381347717538649052513625315869371969775073663972762417283358715251690216312049917765782290602011422718420611172961673417757667375165282710668036647403390980567576871110728037641398376490833669631107219630823116021931233420518719147378082964507016585384296704102111081505418400790478170940346134742752645750099875663551472742913089786933874878343710448508040827299059024264299203223731924940918972824993084043879736206975040874470265868301980038929756402863085039323030575115821303677488141541943810613780977688575143569399200259913513602172667961241863790984043967061754197997829749991332637184296060975288993325963955091063633093261108098198358127900895061158871686583551996278582787820685468044055276869455977953230780524682566424684722055058918021799177547875113840933286037994352964074598754736489580637047296340397998167119076472924702239378791482973256908653627706614645092028944729951789908085382650529761950948073724493756554967649969978553731696039828937560068509356908228323930601799586345870567747515040267703864875041860667719077639019519785022905539994165401881535529474998020113031867735587522549120645054551620478908163446241429177297144955797066811494108857065920257869588810980279346699352815809506797455581860914149748328158381103669906473393162577285532768127265737601562888932016826613137057137229813967489129768322093004931510140928139658368647432216738620731462678031541890486638719779265251078273769847944323178772910384523495892871803751979117840184630229748409305299649435551809964634214117141433515293058413092937186413643829704503165949287811979522759000529846927079580184883885686367871838141883940346557835997517446190650690417047054471424731695351533127335272063476147018001602524936821458059360822349106599374007889717111934030158739896176230570161534750420132493613649082106459917999468797499414256104497191369300790249802255274873121642952174015674064252783913726869415678099504252842415504939274141692128705059693258930983974300444864150507389381066340555231485657736485793662106213079755542876035289478697569728924533959153184867791555105644860567200424121852510100727269251015120023630689215236685152248622163920688492336457114758533937246492117592847924619697644157443243816545396523132325367287366425087855370591759696054794209638872959914326820409434830790605282701566703072772440762824520621462849254226717240317569762639721713275854057325723098299032696240121603739701305829129470241883631477146749318367096824888203339189886244417048393143437455442865726655279445895438413423116976915045299111396151675016948021555000608837134342133084127395064081169434965877046379942664742964288805596795675973786884744623369800130848719181766359360338138274840287256305289791788974543056739265569147165583899192029846312042482533167617704363886235565086403418403435634255135983297286918314289352586647496999944395275020579937630101735123963831789256924341932401487627453715777302224796010671766431063550076590230243077511224407426249553681198212582307909111653915829452286426514030650308015737308128693717409132248126796203004116108025462671320759522122273559270101959939639668494208911487508911315200102022168724226467509023561723099127233474211333053372609249057002634349338709680584627136665560001373405079586900469904501706471541301646800456145895804248521153612995663528420405316468382750373338250919271035510100679941230994012887100037647094196930594070649103458661949132856920418719424769403132000394057404801305856074001912175256405770579109922728292569340851738414600424596911968781544837726461446915013054731893762771540521846612765085847793438163794045673532400430383767025831553326708958248801865931823540322905292303411184536492450722598120501075354179515045975355240182921130378954036765356196925605425533568998102130867092147568710605711743394234292297287913519187214336478947068576670742971464984604718262305478344741229525294383563898927823383399823396732946788532632842154829005139942995355782473732309935271018598815986903543791803026869709436516957747616852985763940300058022669403472865004631345311036698033897568745239336048638562858995808078762286003414381050477642314769283928130292181046896882547363624560886512271972032910614244062423984234662582863812059259401543496093139716792909530334623895198504218594037788543707975653347914334776239510307245581517909576196399074739663774224525969995699853455306176114407749572595890446968585673540174212280844328579221324012091116047197263952798711256630454741932686630276989983387933524804434748716284462552299218689760009571648243343797976479289722729113770084871788200593761583632802791293464771056930654437091745902557381637659766580404434823268933322712934356731229859186935271035449202952863586263168834366044926141603463568009206435740971032646894203199834933772317036674201468640995198981662669436173218819654829353619922838705060480902252753795518845868476589111673576904017187671040746284808574000632869404662490327900253197363938027912231373922175904840024230958783527260437027373615508763447950887672730298876871767151299623301398908673274400006930005213234261133551998732504463931589010408087655993835010414217045691726095699566842365125859811541754064201469419840810751795542918016851490377676876061054574297884597115624785288399023972669876804308013085265917192719112093931787694071597014769638370683416677215068742113363019799937161047401477943968677478964803861961262270879811620680418608521457195398136122167594179643472302505779801892838733407033144555637555182752047022603636164717311267372618596991248159886621810071931708585361251640996819331983123909262670043261903328399219931837491905629671773241277268919665560896044555198378290365300781598205820400787619852375015002732799835902907779433924862455400583212956421953950581805113628891873350635438679339848107979981549101806882589438283625428994700387073946624837006041977598694037129623396443157413909423339870372499571154196421034715513928906811454646740789196125283622984703766759142729425181569428304733927857759365685196792124957497566655667582220551413596455706117365082861458029963822095705340120127216746566222022124782232183703668569260686221801905689622876868473273310676063738586591598094603747988500042578336673359102224332798232620757257276529380456182832863095678456493335488510872873705253218367734461803974456086016997219322710828607402516286350143000888408297783937803515652020138526507061632306180243026142430198367234406255747890668684614301212013563531352598877526913145478975541932464562721227634883389898963756622119982680653719926983465252361790625010300566877544791864508857429829285330751611698291057604984573768650712122865934846599581417192928889484971210612046504187031996369026055053813604784520059463548632396639001362502316205135513498544596598135153321446202779151644796248388053172815873886136062603073005163205421593520951747880132332700455627050451410040943414595067017698309123016876831340468713298861705054434089025575042443822621741233317347263135674626127916059848548707353966041730481659846945742174045244818926657107229476758357980389419828739788691974608617281835373499583255161497082040340141383238387511855789450128976817667558031299806905324195362472820208252092133398873475478548139881242555998215034615049358003587482078004997026438356529205038890896467157301474562615614954669541393526749904565805427846219223926926007046201133536669299138934488692080053832932419934874179718100873051907170649331800351781914232406078698252279682129409757841275866524339020110312985873249637792471134012586194943370459956781693528909693525474046329101973931770662772380673089431012218256105639489095321741374720341728105479171137353812325928764733571862904957569175242624624615623486826031298316846322261420248864899286444716083038710847174978930516827762273533389672321629727325046128171420229099381685916014426046410675371897444459695089298060683705035572578013821590348597318307354875422276253494957868415333441258485889084903117890265386076651740887746061330776188642623368858879152949261027763847256196369291397641349780769088501096318214799188093670350802581605469504759596711669636476813643561327536918346194846961433259372033266363026131939178454134491898908896831486778318466396543853028008937431318292751101578498174093246127645885904058789337156865401002522300582756897327482759924719309909317299921877823824579925860412130769019352480038093547569251810643516099294864982676906859250339309228361455535585714319496702523476680418398042571617308297429604469605096034235018312277000566625846946896074173391489385372344939175780699980437636301022875814831646794987046793222434663015232342782971170443766946972144279096247195637902347964119396584639884775665152679534585186333121813223079554984560908550961298286749295530443147538351927521466689902208410707751790402862869805445232437976503621297939275354853846088245824538623597235006646482322025153971281809691094622601985673387157559798580287499965696101362796423073301908869074966385765435944250949251962217335836999137772327856258797099969866384974354399266086548206278080402964044841998147229069999577866842005804159500436165230753291882974965672829711306124919990679348806267175288183726211580597213043811327009089204108674166401836148371883830728723050691939588655715459563643980764471064717595250976101972256847066948844817996534726877827216961190739184320635921758966465707897515502332375826000234127944640021584313586794810287516597217182378020043477830722629145654213209908985866242258577395849755478702038777281601080259739006419368382257479775719335047984294983300769194350643193364072482307840708443937028928930017737532470571955607485288530505198813069070611614967597740833175858200777180623500523961955496316118417213508038847404369026005381594351204381261917919502133451734230934422214616240235015247102921293073173868005441986734548686030789934699322859680995213103836951470124332725455503279447888763362074274184337724983603833004932956729791180695116692058082364086603968851466325903994532904398311035179860339693894843084597189838329019694106610444632010843552205411336712490797782048471547068029942839461779926632234709638278226996575901226915650010835182645480092692857760714357103356608868344175815797094524036391169163617804217933417921858550089289247212831191321654428825369172350040513090697277417486392895596963449596511934228506701073189975048236347952646634496553985816006990550687329890322710258885479340289500392331054472154016596172811701722244080787101692001425981298940804809242420610396373569398774412500031404084395273233125221189337336544618674551233653962583568065862554680369125498684817223385299856213176382427001364020966356566343795910909537616695077719897924314779699475359347975010167586377530598660118243333427234974549146532970551809609151636111423914549429518153252939353205160254484687131176839208295632754993131887953054387233060616303933888380989177026236760736459492093419840471272172388168794246395438856558444925073315451582832133903068492849423672575817162346398659401400792176034935823294586291035624225590017270721233285159916511651390053708500650023789118067743616405122313901692412046431627384180064176600384730894433410580569624181258129690447133416513776812860016941830322305611346658225412182772095359141191304075487851532189412376991809757961413562507413558795304958627476595841525517128711748649297191651119557096015510651076339382806248208237974026700635603407715205876571077869932073677527528031100720588299873318537757434861868556637825786647589588549576708239600510215146018049637392885085665993854196329047729057208709117898480036584998427066725855779479287533011819029759941587498551432504645446453532426001513657467162658424437656284167328984559432459805074662729309790368773986573098959161685242826124327321540399905442299026308567202779276739333274731729380589217855895846913228161645556623496562982894466585325112075720640611759630458940592892332914765764356157419249704509655708113561211313621889162780823490904984560677726877283758655497042264567551341648397079063843225368703722492987253873410263682980944949606134344844036648819771934551584460920257551033800976768763683432779259218401484769173750771605407470813948756186859358811110902098302985843486118740938962767391092861758045954952367517053628139965348178346672398215480024792264961579529920445814684070644405723520049908905139286678527022425572897157525683088180278839256140228910550955708285067747792063537779677549962768510655914354294969019166794122648537431765176136502102330778697072517859485720890461564304223493435545462730018081348466545866827011110519266074167662517384245559376222980861206197521754554331097774089699175653816517503053058168807059234208100491141056891626715977913450613825053879713420644156406161198061277774019243875094434097073510081368290111965584635523333201575150606032643206857608959469149456670505609950628229232731410115239209743029353104853769178895772401622668144802689723620299974713691690225786019036051795558573226502441717526784546579941935424254362869062516803972459385581438049427640362762777273361154054731419379532898398412615151316078795576359893292627726918282989028803401837683786509217638774301333286233551139565052305822735170370191667887830515642486963362870551246747100247980100245205541253037465191326872926757875710608602004776434403218558503282647388561676438063179472071507347250493997802027431281151399324617527591352177651942673669719821420636145000546393895997252167274650624673252648864927049872236345219587393816019506484939865955960720242372813532721722673620509470149584547735531571133583661948450554879344198474843166528451707352687229335521535076562335101575190888392260992007298127065828647352937091722082951674331322199297469909231131832068195684032003689907212540748607791669322798427589584188632199128717799329486965980607926212745180778508779021407656035298779131235543092034261903922913078204982609857162289100756734349825340325162603239627158894691692285492161344507482231963189964025296414442677340704886694572990855773559681702848395886691964363560856046653509876775180884098191141305642243922011458774381025772970642733058264991937091171094386113366377789827542165347738237318846721207493327880556862207541159717485263500923099477334356783022874728133978310961321013849544219056317838954889824410435769627892639091342278098728151856029601503617249274012111774628286280625159759305187446620791897251852783829213642928089452070104710126441512027612055478464672951850473026546956598955687214150031010245612489653076558619034855064532754174795543222924363998516191323903760656258060451708183144493741476997034218762184766758024347094811379487035511074785980008955012977123816326486165167853970350128816904050687744963329566692885234391667318183053835946282340238488106839854092057938538473736283069129949476503115457938009328013244469710008634603014066096456908139765234621040673756659407501663598710168376938066822717070075546634199562564974261158672814734336580568952635668012022508000686736575347700443718908787869824838187718281235339598366709601104259157445874697665175138462136337503234551570005559599629006029759312532243417032935235214836020684744220034121514069252128833999400890970465788536675733141093155130206957614178196037957174792652726587954985367503253140643062154546984574730105080967892261171389268036739554668282291807429694489721340725853116735301228040358899076085242449615426907382924561848827141598025766761578130100660907266781127210096121912752259310520285246851441781547027198465008378673117371172645026033616938212162052429497472552369625259666025800288507130313256459765144413649985356315348708210283866654382122944320081877869472697377618025818971933522588885124055306048041619084341471756625241054930306578382472926049291590925438794461053313413915956281955296934779777079822620302398171266052201833793781731536346386056252116983786766265067237632119789210580624267864006005672317374241887822720912930815409136989367912405378238201970124073563464467551799185642418360508079710657708498290770555142298881514831661294256698773756071699253948912562877804395821017619865787896774280758988802012092234738280768310499739296001052852261629975778909281060948784614645646408595856851231421764947955777833779853554267933152537088482014914043151678207399413854451966980359465805113819503524916398596234759802753623905832289284981606583953100715059306592360744445025385809725712871587086101910398455604720225681548126504717084103928131717386797205535719847391024141435908843962944974519982725446253854783781340715640161237764325260528122166174057443889449206953718327328927111340269641508397856821227921249458037533919403371536502065429432180101094315038151939702269050325353500715575592685698707415474817101347036454092551975352135420789566679567888205950429974753249335377620443375312394012721396902021697302604181233501775804141358120387851806947736198117874899786368290472424508426068191649748747590799999268041324616116483362829818300851178762953673956260978696913675417621779887309740097242625458048237188966405535356812956175439617153646510585109339388822801555010136075549538112796848964292266181539608814803677139284198929510318725030710615917724499082983553163323635606455202158017421867548052662026348080101323908637544559940425997993527951795995010891921053558225716177043106803074295653148595507823123471470583428027723937171847294552506051415222208730737622462018873176208112572925525934528152700648013187385383773128031182090231810088260907324252716083930775135772687646395628068102974176467193877349206056368601460827786008680016720385206199258796683906489330930471394006962476873050189681333494296043686286083306335871553174337054025837517228457191575876024100469504783444063885530829287182423809114171256830320662200892387933226864106688317357553277906595560619181992938385371325449722018098013309872311442333221666749878588391902814561596366618713279707404008512521196711608186181574387243963760128814891465648902133072712342265033646120797388948301688253302278004227257060294049322157184526205593301978429831382762578118157454865869410854713847599659250143441609421814093974452549321155961071245805720885748739855409093891537531013081969604438470739819862666118638034137704352703827101789202670057513794595152365490690569441528143380889549873387541690932073915973632450803824399569465824382482820080079401858641740117916269738634507266128317573839388203756037205520234984400104880859923829139643044929113400472370659664284441044264961243747913954273297812629528538283663290508410106248462083515438024356155732683563636630743911781393812020905701480377876481236459095815118093206201601623655495532181270908816726838630564979018266810249212279445826993666334674717892808676407291680060342948920423093898223438744163655535050854232858387631726452558459222327710542391606605648929397545369988274455114823454882934794904950469761066150705688745509152230040070133488815640087033348443412307914770414343861244070750470145233022978495087592873679309938092626098521696853427227563148894939189870964707358893971431674241376427127768418663283393797649325910736171179630745167430307155151104806191962958872842502885650025488989362202060489861930344736794051507575584032848476908437326602555795744026630805404697594700166806779671582658044973466998562541438106035608405989652784170463018968992550209273583152972823130537601616355435728898013686062286192751653381037771706368831998945447135542804053266795242248448801207482775109292605316203653919957719839111280762875795426574476762068995836207165231867285636874480176373078087337225161300089928904687454576297639336638061983258087329141271274104528390877364632355548948265340002020505864808155785619613655741007572609714081776047195948295528847834716896090615356150624372161257506300288363680082724180558594000970898524486086807721354961020888336386845978686654548194952984611125736565095210603633173022307453549398188467979811428859800485235680367307178209049142125053327372893288404832651583770952506025933395494978745637544522208467269939059019532713825928234146284442066263600559792074445140111018883193241857315215631028631709549378609112672747984460498186049589679020024472122889844392028808829691851529391946638055765098384726758720974236405678716641288905965273827036848216583607741347469685198043100236409285580272011438870075634750544504594616500404225219835249537466094301669257639881433304329782720777568482233536647586338538622737447460559442049156707881783317125922993796022654648376310885880200181576222284342473985207256021066142416483634858018919184631065720036470470520837635277742475984366958017457839905241941823041093323722608758098003052326316861231911699574635746030195293977890041509139200823483436958193036059671624950168270838214704878053248645872417158728675597169043099252761825865179517267885629259794207214618524446327040027427509669358845461609183823307641822889604422672782747665482314328014214338011187703869669127846858871558377816090436876470345135642421156482587082765572316599732337656666360514577069060857791976969536649242468867798775489517446200689204422628160570520274632339001307556606320322837794347772237575443632136007367764520543733685994710993014743932695402389559640703001547150032836430980618052759733562945145717842365321593446858508796592101806590721287867529523112344710061951042645287498020718515143959324936280018067735082565584437077298783922048094685803607394928613038212336744258268915061680816075008652720064464469528417559503506129659529897275312723112578380955838355016049376544187967280859383591538837910098580882541315853484377340778006539905693816765235498141114181580241701395065704670267705024986672506986968539501796638290248383691682374090455124110994799125321951849517758529229765118261452619101250128599856536143631316470527999877878216840652252891186282006701168634852685304994923240290494306357484690130254532613261264876121533065778766621604536300535889171487887151853935861492019943034768322954682617318991836435798168248038086662479802533622877939112727069080814381586280221245174446963602695818831529508969287510780661495345343258156089057745060130158271304944124579895213709020707225844411733372087028915119475019322857779813124389335926583073892438859797150748533840305573657858304322502793002664948716377840917199697590484909037714491533890034158508861183873611561377297820836373788382857207734585816740695798885105046733960994219102031907003152315759325852152069190440189186875372208576887517328179588721377108500722385632884198582635798006012028469252698641937273602885383895631504633732234320065733599216248447740644031183597424325684693170361135035637076610131795884992294281541389777786853928773559158265209334015020113310234105080912591538170118153681607728995901064019378988816959586228997377575170252794189574693185691338545012258506951496056774066041714130879708486823175950298351658935370873293808717802248750490773887723139208848691254846114267205323891526300176769386058345490050125092703290298804935712798469632420213140816022913200426660591877071745375682570584452353442895252361484816789452980346796415265191687614296227419609663734226159864640056597677486968354624500140545643890928377792675495576566286096722006548174184028631842964576870800237777451872158781088395241912452430939669711735367854878946605256979708728117996176244906326673686756721790093569475688037471558973398245097662061469414714101120261902443300612595347923421605673790440371431486432103379122788171019314570466626747949554217906493362714257161789938126858949751015339898940353048772196547345944081551924547956591528209896566188623383933198349310033098015496775387222645230553980536353138682622276785813238999065365424429968284165307661595504086654215391106023214724661851585727437606123534097717844745955900557077068099315269631622341011079890923605762949650258432540752343431789870216271377886270837702867927881951050553768991500788272310858435705545658805140102136584909142430639149555423516265961276060303888377262182520496458509643303673752490109288392366290794346440880220414786747886791171613594886568654269471743507122057894369786915515568607437317169052485136906375820527933022898168769153384319320930798290526250628697515581087496398386803925571161763620836283925625984838965398314532212265198958077042580721969949474018215876007477241099281461726110236082904142824998889013141714473161250034518714581619483898873859707049613336735200029044268065348162870294706954726605627864487420142484284553052990682613943068357901509258364277849127231980255017242259344424656429134436352523220964000695430300877127828910974241284220141790967898995036208108489061804607043840916142598337400509550999070378186503580738976988803910735630197266658125465924928572183252350123512342602925614425230913367480183861859334964972313806757706891819399648363976936979381461832788766535124261204984553116867242586465200672963399897899438980308473841548330540675654977150146363512488143107053079999121233676352116489064928812036259498321385173166116327429993641150137517807791660725350250229322509467573252319626694646182321654238404782312099771974395587831007264572794143028062719337433256740003658351204044924665937710761900954330737159845158406386062556375394209616531912391224885444707592559536135500345090144175561443212714675478896038464082440028688617281640410855095711615405428975880037052421748219644319655666204724986024650998374808917925725753972449868928633122186279234867537596954209581326716796288793956823455389340470669355173588636990456210040744372990773232689681253720482999705308847933789301748491113307796030864312326609886702811320569412249363520054423068981710154918086462781606412911462666609325147269938995189093563545390182744189385560368885421734610313133483858150741602627705281438178080555495464368183489952285982295253709413232947844476198270883790934133534808116009062117852358839624768485530766148088450362872311155301493984048354757396862203942005167663844221263472388404341621485903453298536445029678843034721486800318426103035302612196008702152734177427716581549046295326849268219233400938522217362732676592064057265799191930439741217731104913333054146410189553857299698393282621987760758999761119751436377184750830907180523043173938461721943717622659808828610971968955079070765198097636409834207815005143828072988139318056495708480257381259689340204187561179810237958178980629838639697343029064939015531117845249986413570843711716857823746979336326100767572653637545013093758629555758817391521950099189026479528837630214926648536625100427757812764900721649901355489401479038407658228026526892499763548601438144376097625269444375571806764626528115841181359871171082689417581736522949075910935041964699768604389317126264489077433533146972401076765844536589449779565019369182056312509206346795215956466518053437240682302827286043830995722675165480419648396527704717710099981630743702344648354623404790541308649898512891014257391349554144859254853395652190512495011593111614728155957634871970287041259400546223818235686652549628589651939695855677368262933387295932520138253813210482189082406862150531541448576753621208775044844696150340399229183751672102386094306137759900330378004103920229953518793039307359524295267279581518695442507893750118207075721383322619523217927561757862222604372919015086152352465013571197572068510480114611179780147930790676338088146242342136838255413104927374018324835667539221683198155947076665304003296945341704425316572377904588454143557905185688931355016246279324878939440452422564605940591658187271302465250759533986494348323585568568613973100677424136961203699249230309012096551825050416059117182960235303199031555462223503544014879871466838716837232188218524080764588775970371861326796708144619563884100991467929606847582341947289673090129446361312372696178121770908523909808699755070563877579725014028407736026959484098527705568792042664019891361856039553315641345035710123341348906429001356583205424658896303238226073890205586645883399096987018608102383548697945210591514502647139501293251361293360175886817215765694479856630903670331190623685971975331927468626317844431300302683321320050188458083740044846009740165436602859964494860298406253105728406038521171392800117143944800472507041202836228467317026078336127509449799870028994830844144777218802991124776665363421584369182130006170488003620324567862137598387669586537655531771747448089953517115288713356431245872183885236191357019224733332603927372388959281982353415113078675298154935984542579885332577998818317293318430323236316950940458269748550500252972241892756218682587354894061727621546764875739983613918687653723159540431385614008400354662863138291063768246383909620019443715192338830078856014443431003137197116269022215029344836411486203923992307226605146772574810341703333662838231643679868849782354960808437858409898995843754882320547554721672581439974839515255278996434926497037391959141684722669828673324629005047729177760682000212859246286693003875903587024157317628003416114948713915016249138241132260522446608484079408195282628030760898985633022225421556626528314708297290676876409765989793348285866103844201234387583181916565755910957505923146718382271092569687663400133049423378105446706056164114123883538027252367252187391385635273324715159656178020043936506918224173667242576736328208166056207397573744849183779132498260634059803862631508998690156535277302812102429709006315474370177156013115095541031832212438476741250782928602360614965211311481352926070558950982355556508820002646569945396574163577607668839279790439248318782243099455955619909473212268741752321312757624808707514121607161840280754256643700263905668348940188573119590379302269103927223345130072935691333124598975773264102104103548347506637672263463262319621143002765956674399247913370159514136726218208748823169390283678464953315985985831932149376335805317446790556034487821200864537219081453934834312026493647546013267075871351618707232088785476709552140665774196807023238689980501630297906906986758334506016586334442057663775455977218050642157258699002891905603890042943682179091234532054569626189614839762340554045753483213174781545244052839195886610183546163192226483078681609498012441683088732260049756464715752964974940387955542674797942504289915265082544990616163205274328164573719939614919969144535804452389275896937816534401338019128473072655245178037881491478460540183272219776598798600094841518722818461101350171359957381957498428975247496608310084873159985608390907015118135752881295329564913565901074662842091678141923535898930339005918142322202164705910703129615355354950207402982837954785177783917723762803910856598537809155573436137477841549658352649697490604979912104634999678721059170149545791331601189391635710194231770026075399794985976310198752751322328329789397541594997190165912474917377577101625570458176849048525334278026163282371109525652527527938362133655401704703993223074856066232715292403119450277818810864847057285873651042625695472559437768166731953281952515372319345345140398701955803787047130220334984559307052644334429386944649047448949291135135219014127454821256836045250296302745240202500199893766097152881053901252799650927903433981060949351615294471722005862838918356913399427449084864201108284152332257815192284593020052789311431710657440072320265606300796160273861122867638069488631268553484127129088874841728631858938464206890930674674341184018885103316075061400249171453823795773444972645818195000512417488007935605661546112524246253827487728102838144579021237528095166587516405023851540960244031029267910193530763131654512751604013418413719814184454225063445638404019158564942854071536838832093349943695190150947478552108074822044659663568184392795526758374084940845528545059487686207260022687429131548900186009310020866568426262392868263214005392968136751816219231791592951251843160086583874271989720857968825189607358035303884802580294826239604278613310135737321708757516871467897274254524030744765655020799539513725100202231101359537146778823112327418454800158326935059059017053021567423524951925704790128622184862270384035267107494793918892277212014100139987476409452497538958829820313887738017005038346647695664773091905020380316915307909579737166344011721795093738002805524914245917572697855473962239251082613929398284520827957146903837702414276120494216795714727518097188201808428283254750897863430205725697038941616920401098138021882499999859531185076313600314300550170644392653364378369262454916597055662629629430261899977792656788240290369309702897439159091195796984241505843418377939708845601896874055486716614558635136160001342331997406299152811917352745264800473529218799192194079915178742292797636176340185632116747655360738480571246030970938946533398088605942292752426366778750861056616000154373521462825480771870728828837146008455598864844546841950764057840263604842548820142761704296698139102815572427740686075592226603295891992091429530593287852010228241291713348024702062613547956271221922407806902637764914181062919803412476060385213311468154555534680839289301557732744152033236292773121441398316559474275875262086728292630306998401251856973800074060427364059247838744438668275009319085246587857537358885098185086205677391444562643294477700115889537858056555798539683155568002578246289258128782016558636573883461435206007300022188820394322291503951212460949012577477529153661343327556524438198461044006546806376039760946053437055602439740857118874726924749980262685669752962159518473069503334330721206765639805495650826920755184555684928137993489671192997026927024171745979104039933827318849500691861021879586081010653694902308812713644872690845903490973974796073908985973304204306947529193525736302312372164143221268591965450491609513344800636712547957419531269190540601008543031569511061184449757236462642901967290248540207547183957016534509401305585279164542100514012705079542437814334623816685728736519389732802483746025907631155245624694693792383442658919927059020839933316501815831311019945780913703894807735378100570141279801169389430353072476736078791660543655995880945452817126675667471143542108171299433215260696897107798882613238232510415864907415215624596043151721478222347554711227905724164539329369540122419203888653980827702248577161669544978765882393912391362729257020978332464515351565209976367738180095073315585189561418406693299868460279836951723151212984425309240561305763416670485729907097163146212107039409557270872224220939781828228472129992169401874461442741544634481495143035869465739279426026933668255066474331428514448603594878549128823056736331303046981813744482616311930258161593339256083013006143650923512136700915084274038005656780697392483608148081376557366159781285220630253244578686292673845984743121152678223582919215104277149398625196424478263964215571053170405113636762888986127058606934167043358435346494899782124333893334450697719907915125739280821476787661965685391874147955481370601930827430518473244040064664614777055048689145495419766185215583268953856371823492768900863410585376494395236824377262823077369305980382975386948686938573634112897725368215512497624344620333164787448675909103435072675288911556945948825770822847634953405047362300170186364595763048725666500153540227100630599812785909307273285560521820288858592673427156129518335832211815792555929225947617913250282916357687438223775942454113373897990471685028225445438617648506805475749113730236631333747507818302864064770893553933662939240511827196375285137778422051640732292293718129193727374897803922577614570031436971033812410653547403502738351502035918332117880635765081777530435163867289651373939180613166020093962863221978588147166689373982630360863409284164897114804991038594264679090649574599815294371992528144091161156084087767892986098566759921091136119903254305981328147592123138572098127392086784197349246247372576323706628564183225546368881029520595776114973214313191457258230849948362359363628444363909538929151548774179944267889731542487524328248785217125586675871905693124102183848817127373337666632306707939289457324583277907055368777097158397344668944100366293386963456885934649768244963704516582934715612703244439384759483086668682353145374562084377307645133594039917281803800915649363714274061929886831495934720229659649631516042326256704703414174144200196891593412410362849238793547572932669330641110262731308705621286758482476674832045230047848770499565021241855195354466503311133789769073692185776867298697044051671534420693216986857156443739221660897038739688021171191178746290177797968828573290119155098296871227987182987555687060031081699008731201055299539420533032559487538818519846974507197964853667548789330932039728897973149228482800670070755092343660641097239167863178517349967202483020347791787883635719843529084311627321680299726373263650879992421818958816086968160832209516108326864568966709963839250371526368461089432117532718338704209610166872781467079781475076785696255573453624270282280238480007255617913225340309519193079961179864090197767490457227039848311161189817167950773115228143107860843423982959252491571120711041447042466564979590196537322627381019103476618048056946297928113951361612385045369337091144657762205894806895777547093960002072212542845583999623259673274318948968796073424646012116215827036280969821964801662310136239209167448765302234383232049603008696636351924981924995884941909683867089547862180083254306206550957716834831324809655672334505242034768706138195196388040609875578732862529079333096742564233533481850317809668474907429445601851719663594087348476360297440415083144767409485033066336461299406229749395501840737465084466489620193171920677381779791423222901062005556494130793535472236377236488209729704040335250511708311224228760209911078530439925820997136049384192499708604395417258527787777622794429327690256834680981188306915178342488758318263455243452367917967591843245842971472922002509843328272845238132517887237617034604799030294025442936733405337922425542516704031172152417007976662749871709664486341699410935633137795721914020881420451649131926341204330006843903614105772451345668665904932369832408841198243297835961530443673895789769687765773904264663995009007899106866426276851984659055684702717128648410107029119760802584753070512079638780546019893057114369900787291052191759607601851621690422094743333131478956132821835136320013447053536006008222329588445512778433910400652497614167371346664520726088702509281719166783164805943956765371707146998719184588146933563038697549185886506694817738967501989373734840253977750611436029379726213622146922238145658102981780193879231459317124460504070306593250280802245650182638379438864757314258453866119104975382809740273665480926859334633743971161660672791807565141782432557234809614291146300553618386052299324901121388585657182260605470277312496795089204118406265705067306663802624040879059530741978763925964450346325782543514072553222881163576350565117703636317097706101346469528240502087759679172817151620857052432137421666017850392449698671810181604220055896692825934372304275475262958595922655159179116028624378953458376061442573734481356287121102378263692558874586548290934607207639045214653634865220664052787831682449763126154234168404851249678205671459959477993949556066054941983704499649865873415968393760269366970656477209247467187410121795253313886164834296533341330491981000730268539420359679799475790644717177978163252848152223764181736470468444851949770676908027900429085109717540589767437376068996190260638373180870881081000019698400308653206803618401291596677858073456085507334862969119765467788754870090456298410483883184681675212427354358703631642545549474146868116875759404379346275933521281175315220648065032789630719790901182352109375501849170597657923281412576917588137859722032447842952348106366375819617796453382863136300681161921071994287730061831672196220782368304010293051422250511618103174996792719308022313861809885810428452440852084397507573912058859567560768418312994521179213711154834149677286573604940070632605644477047816997711142929809935567527816962374860519011261296152307685311319578653649576622686369107360871818809032487532030903846970298416141550159870661841677009636181059929773923203253398562085332567449170064143567005041479846593627682371359388759166595498037902920757558479932716838888036262874161401792957172885261014074267359269979420490461136772389777705533046328896623193880563893869227736824935404693156602087662410158845742455543440451957552373943468749276024058693628051029057830271941471102422818183354588176692375661067223962195500189185505465714455310025015025607425438890143111593882418314038389776037663795208558986404103615160505768280264218565538473966775559487982448323472623751006985936156338640798186529216930387092581581574188050794884519284484065103732350426765213012766295034177479332605650782061249332292378226705120564490052866850456045525907545534008011252034631131662194777779268626560405278043877707815563202626711379809534229055212256230363959092604070779237536801842332715984552747802039770260489762857831467743102775252079957941856909833912763068750084662718064830080447900301092665745617678868140921240195982638468775622844643334435415363783155342172826876077905533138915382172550603167494029378835672147299779762520442046598106545304036052185699548626380031033132995990130587231633431793581845033274401627844041863049500856941954933092995229464304417900823211742030319196795596679996797955230759838452131158920426361431886698380824170792970840335377967745668148550106181578811300007873211963805215879857295928002188593931218146401022320084926245959122057544717407086888147933876042312802357717523101804047672278006298884344774103489296708785839776561702496460179219741913496300107809176137809937779471400019311026098233340713083630012504606386499423910675922508712711478917408061074948815467970180107105726654018812728851802837527477667855713294323422005917270673937200799857482576215570734232628457518338927879446999811784478393598706034760965005424169285468340606623673064354037562679505542181771269877245905875980028736379791599975214074470150658518867772287988111268037351778221976251310175625045382002860991417446918501887014805881158350303411643014276493054734857491595918195124798562124870414295745563314439192117671377889490529978077761107219922552157924912837875741925857785358649679205543221315868781414667371042426425231315722354763422374031586719081929723515085943515088609723909490845295918190743773203579397309328411293631547019156173056189314726260829363530988872223353607387143466796658190706413429877975996852042988923713165903818784861773065024668815682888940675631778659788834104826943410397742732699331793872195615847175051327935286124111958250263603815800659549152829460206857667476673528023997896629702938653068003198848405232188350765077193220744757621421152912539638556759843064998995563342064866641392865191869692103337803343858743608604576302439687495386150943969665068186225533209092649912538015804027929439464287065363998599137725245861650698571009831058932062163181621482984519418559197808768861641326677398638934060024046914300445392375231855268922981510588143089690910282694768780521618010354991031186073724464326884744020309092093868155049491393887868986723751616712175826514558986393677981527841991007138479569770227661025057270136239490250597025367568475473727583848056199721108140799313018359103383989581610765485103159925761397813203785047923738213168912626208892398533792671136159454725732516929520829961825351922297372832927510496824573375726213479426608424118384824294252691536851345757875233462191412796727671397370092193873046807201559815709564590814306898931415533549988601857771436621005125674084753807685484447779545550020943538175061258591816424620071611972282219231763357172814749961587450547373758671277167251728877580209305775289022320156869778701416719135860747288633580706444861536228546187566081860698326469433492955933870402940703353719458574767042067904064172423834482055227160116370351436251369550270125654694318815399338761181535021979075446527251161299151527350571227027681758216066976507423061658411363841822875589375474158668198202934380300751019766352898823067893713416718641198305322157604538649128477756387437312393059863994104313675571128598264577994091577993714231446061282559181735310990430316237721898811164468345758244321417040751168972938732758334259415208991425442048924154239283654492471018433283921337243776128462405785601186025141785839514951531334120635834746836609286494034380798251951896705772685064596281594320430946323159379025484757421454378625188581621913207334999408447016289609249436325923739036078675899161657007875955333138867609316489107342115825874012670041371814834645955900269600066760313272161905961364792752542579504203885769935425848167654456295763795716460194124676209464235135179912876722446564252566234137920504813528155732485348306578755427303737699381763149700974924450384614284812223642669179666998586380564318171679035182442875505579396815770987028847390240879970217070956891007020879179636248862228148806523700990729469155926981765060118548321103261082662034309840170739130479171875106595141191067790778811662133099180117469180275779098063543129146578882080802976577752263806813235620340614655704222579564738907164297379986402237472611519171275948518961451567874275590641309261029274854419973828456045445276148500221361727146899366312138788456142369201263193200187488803031870603593557938330723192602682506470067757753253816973071150476710496204121877540849548821608700733805737867726138821304110248140774085116173953784716284770769631159922406147822235491133902261865087137713358622849344613258619468622877379214591870570623341588915429265069810315086491697819839825976765003920108579071980852213894987109055769428337301115795230543378914115413355199590932053240052392560035212427278958415226340834737519705804831468566538763208671640909544627557777531714682360501583789832253916475829931422316653096526356622298166305159618179607484109829408385458265836224384433720521890424085453005060341327199729018012334592612950100252922012315241611289415635659166210346036581072268575442145958177266738563398275980165895301760179182829398556200617899290721925317515228035766964759900065125755486879666226061959295634573479779164346896529163902750235493889341506757577493391397658175254740282841168078309521711970972355712171812466662144896199958450439015159247448179797260805424919376520392205794792886037499963866064861780304307950495871755127892836676055506838834968497329888622656989572976300450559793541432604163356093143471419430330594747268588108192070292259122166212421551771544886837764175188961727035132617225385118233574427427140677294310662563960339542988062608390185689725656204932470490545123434708986400973016669280917975767851299766456049785597630802045052221880168562672913152982636476062524640708755519864313911066243961931043777801392159197865883248339702453594121158682076338840011622733464432414707399368839476116046429766673113583974133196108092646989321379341909955567030839062581584146696307200215133219724585607032863748270055927847848222587187973545582171795998375443599502881529455803039560892554194684572962823218724369876915756750640962595880451747728981413904308100672429681600266670173013785454869507764517068476428005554825863750411210650222700010318436575862306358706291822567913862855590684355746785735781450712175962397016386393369071176712364942812088193024648523356809860096210961769076349337864142848581630655162606625648577960370550953806849045945977018842865414244146284182831300056806945464160656244056095643364388545039369351075262192252153458528151651838658229864209408750943463604820344529593981422813827564761494407014311650292069857486493873267158702112210223625163415345761563305202378208315458846802003666806799775133461301249057246353063717912362536688664100453411618121470310605367685235607612060680682046774898181491574091509855660358470931303798233323529242148741725327213601304661149811743390940844789723511215936348128311714252048494042818883041708656825225186750358798462375594153399252809377916938675560216838846463705784353774310584794917270175219688537961137938146965744233002489543217753294214632885892868129703504596621377632991864855384309059896867272704025310525652035317648327122058438429410016892837825606814203990891610735705465517553065218213310612899456080083458457663129858205613448468021666639568263691632125258218888189641518450850285887356469524274030140441096538028894844144054520828117808222358192811800258020752362415926417268355679825993917484790981344547922588991268654991990379570448962558784583144977074078157296333207071998360040796114931995759961336021745515588346360317792714339854268645197337783309407346581879774021580092770892429361397785833693262864952286914927318951861251750587567924482179673466015698331675820794903533081110823534120032646531589840128374024822379074768707455696242678967925208231318218300880713214839722720510709671770564273055500645382133640949004454615707862142525328588890982184803082866876568308692196720926719990391363690871130198981465106213584476008752767598547327577929071689026350242988678590178165723322389004754930328144847478810586938952105376185462120441571166886820656498445033844740023310893951030945920248828025276988497950061677427057893191052661224440625278110828781631497533571412769287586280157034778681851311956119098255133358564390064682932142748829370066724280670623582308938458161024034650951922242175958115510817378956220864557397433187618811249259205058015908829427176966968074442099993836706051048418853930263149868369130050382836453213074676916001006551496991317992216098793097616604609349952150247895331577682693249483632003422367692350718728949154970838086128853559190993679190105961679969623153424848617266919244395959757091670199898348944314623614793309097621797683417052031820450615184746398611712088512536407466662057792907657041422860438597606055361551437490578920496644629145135779959638993959773598755995503414617738669205227546742615424958002455671583802405889330970380453439483129552010387920205805259031682236623379571546041354310390189520664050576046531114159183257099131912281138824212382436484094726128136227797920621539489158816473339219164776333155818912454117997223123409033878746383484044161030592493215950807781268535810747406793927331635130214835148691503318072802060821060010176022866124563319260264163444242151159671422118991214039827219259304480911650000175907144541762417758592955367130064041738425846251817536450972235098188191881834870735890281891077083333003680833321320880604324165159630006713503689049872402921006879553723430410941928782398747834742770963303886162595924045904937762338134516573413005288287369189552884257146305447347466175544967520165095531980451792101570536032347087722839523634290992826149778679523269216995915501469384057143178464676080247341768008187185674975351728182732828195409632388113207896977727770243474140775383081198379067224479861935397237918736823176438387750607295269864354594455027771733921811118415297674554444790351690561748577734262392843706411891922683227620245772475604122164338144539536232580503758130658937070986483360878242957963217331237450689970796961057850519691177271589656902712810291184499863682518380851364765883984149604768004015768024933059068107960031022562914017664634281721877340499728791664479626093362720861285516636317078870087229270441203763127924558954162738454000637821092421430483903646594090023246877678745909167620686129501301353344804132163161164661590046354592824030222921733798587982610538619621862790419543090276250655606637610672401880471356497487448461108702185482031424236980715371784925428877722650930434002779536383485881191260544913093241372370876791967961935581715860813136449459300985852479038674290504921534133175169055939989818531727357152578077593642816832962482512739169070708421522538982104733773197420508436172118338710691585809272676967143328190405057715969792377548328994198052077277467229691899650315156428776693279646451512828377395133003763196150997587773060889558854884480556258497825561255053162011439444214536893293866274187467058595264952411019688496140940221246773663044657694976479062585274371675030368936566269061259844365263292960481670006234825181133930173028038799522494381539475324970666279566826221680195126761836272108823147850408934010491816985521284475310616173829726778385940827492692702180478142739227272656950595099920753174132063651385685422965466241058134821464232261855149430864052635031246507242551959790754852057807941025493474658681040203680026853696848958123817346460197662364200592084649835925426658421649865845704378357803260530558614804164599927889752563885510934565721657885098579157577887848708706284349956590888486676710458109479009726438314289192388096723408544229635966962832316491840833694971151231591769493253181537791485409645283593998718732744199020954285445944518181018779057989398076727270144096630163794878389927860294471979931627435807972204950521773967412131941092724674447778400933481237126493258988483375895016602182770835689488785411941283600819842246825924110607216294200741393319264973564148632730476544098150093102243419559790191546599982014018310068146830232324896171603643234272186521248766082883937935584340902811820984489946971688064372925562392267664691792851723150764786490548094012938539565714822368563188435382740952110750228251199740732029431040076642125264883512113065532030273140175502385931645023670028400487866566268801066888520645694190940058065654916002254189160345685281257467644844608773866841065094477887530433234777549069318913554693199789187288886311923912505107093378777456144161561166787071272049668354311532095126710492848395185629759282745164065499575774927856478740989737236004246128677236613871525412990953088901442089476871887624389461022385893373619761400197715753629604672457546063013016190508264708473735011814618385717422712103676948177857044995969269440783670799169625322508552717159129332933735483805779759953999029456836212293688056719107155969143587554742266462929544843076481519290722732030032366978521101284494758694212989497484096787800973421874416632731811627110430651285243556689678250512764285340124516750457366044380764352673636346896954813047487343952626734911234393598278723247959166496509217552830433113795276257912421370334456275245738022315848574890392342859921118272369765502471802725459308100913999620839060867973345529960859754388051742823528688081982026043088428307741430463707090077180994399500903994807655980412127223366297529967220062871403072829627495510945921827596692160671041638264212139437268915878893057273463280642209916341870233154121025641913782896489627228456266888349260293369906689800962638279541426486127805918724926803723270236901832907652031972309517371818440790176486719360429892222841208416154263440002078582107167145355558212901674170839670665074091181635584505178347968357880089436022564604367462989681021918056458946187994669877290585344068952556359860348751020665205776086727091594430828856767387157916609099701511137198789703994766264808752274879584715943612413031196805305055003442015055620970122106606587365697425605582606820145150716235470222572339091654285627232839101577173558172417347653873594925077620780282017887201449768799436743995551809752863168638772904589690648200017588798449204939939918460351131294899193756575130506160527593934276765758451634806096067730484496733873241256765149484037810745219780313093515958226892272286254111540116939299642601539081196132513266120951424470527875013397159451227169820262211420228684751864136044502185944983865801310841216088392600168253664604252835130281717329557415541926440015867612155876622280816256453098426669516146198746611794998453484920884107713109938465817934367484164717626896363798462087722584385917739043312966068684399390140993261639619608361349630689216983409042999804276212616981261729104953843836955415541681996676773331837677979450297210817251649931860263997633219748323371391127659378487320887883026160484702099878799962370563265134673220591499736140657997033364342164292114021338288806102631805951880236511911006821432892454431889947522366796987536504197536510115488098792681336642517798288787385495881132090262381496659249811306534051908460910339439234635013696643034383898567768499476503282224765611181162440877986733771813847761191378271304710151878837013522464131493984799266480493223917098385539919641055376703689650027739470972582609937781721593580482669117848126849295391449468412588547789482530950229379780795427290053883195183782906091907268804847418191198327931446911251030826609801932913186889808143804361117306314182916615401065178466505798738481895604783721274189601443268000093713661624040723414768543925528436999280078000330661331233957538849861321407778878636794667835535069718950311482481777648292384291558739420185158930887232941488854854420195301318329725692206370491052314986274386805752617955671372450169625963192718145565623387522489553478653528404831507428979389718950046744304003851697966032428754969039839015976673653031416327878495262552255201525342991902379433250178695318535194438394988617432846201305672544411540292089017946890785706039218739990134996281895149080411135277205573105114088417101071938560488279370166574074115529389703900149958437728168365270209661757280009881883649060576633607135646577981364975037156291571886025465072948561117226645546722250369517534214104814783517450032096751202179202706104642283447716737347593545918820940222828428485523964989495578941531932699563147980766565457452141316822399807776141860620068367400764501641813472877043800761101057812680604887127000353049981274547074525674317538035748742441197399534873341421637023579646449702929324731730037899775523449770873152732633559589776429339517400432396577923591394108028502809974038447251640059103147360699377559227571950850657634858806323144897792896257471005366723150910473279548941680691101408416678262298674568273383841308442995879079661818626341739335087955989535886166593690004177234671412973300636198752249200534272344000133996581107520784365483677546932581951630270747607464318178431111681349100113951772197185148702517325850634731078532741049707883102822270412778202267521371551409144350288716572416558514952206001376540600097757847670553817161764754974076236302446666668946744994051473518255457608932614333568620887175336899129553998863316581293009038214020209641438909557945872559886384519468981601786149633165998044043552460604234473556328929544437241057766740016945469122142274902923832349408892742027249828879652392249164468778407622223073217873149905847090185746101570126403022185978443922922562568042653216766975713884025615286001851476789367978959853872196906475793426677860579520288868784741925469089314688038937741778712072081372004820654042506369965256891012314256302339747708052983438028924075330754731608402956909131543927235555514201648188187349561815321890957575133996227747781934549563654564849545419557331688431646598028217719191024702359443859840070980216634161150914858564575026638442122107615223205364659015619519140762869523790656367046247567626609177792923148037230443485545831163833244191445950818654739663667001957366277894751724612459469108654859834306798254700510735493291272928920583244390470702021285435072220906014071671231052678507149046520958974157798524470711821927368141055085043443234727248661299159186356122473626229500662702336789655358210600234780901038283640801302450361040244161482607385848605404419542346328805764431695059447932813791770119642512097965596519908077896534944518418038729580609382056795522415579039187078962853579804582062426225074951017633782371448249631076362244282555067623215494929268563342809520764740735639539085982563027017922753930214891126629192979633420385549343884474918205406171343231828328862759727567199651229593642378252634835506679180540197149838730021663867706137641632229253798159293933084856089159142487442712609802414764463709645589441063645719116319636473293768300151984115833002258879062620182536535332531730238541520877909318739049771941427581893580505567346235476623708822518743676811182054975935549655002868050615549505855337563460985853334313722570190561038264929750251501151014106541268326577153459857619453350467113729856392445561079266966241411472219568797141048800885019275557617559338232555344800686851162444878254940854310249003963733183608345258100985449868719297550369063196433396047916961431785464412704362976683471850823803217945978411147855996275332217521781274661077496556439025319912882361091279325810797152372055128854001782810993716564663782168165242822195280785316623638275710118858320517802286903978910700669081276008675277613289109156326884964259174230174456150383136778501015981693437908631155353479390187397401929228113006457805826173383168600940861683806983950490026863965994668550663043013481207340576507979689454992157945061745590794025696814927345026982963247920375471430079595088161673861477935600273703135021728775432228589381886821956453606185365049165838123186082316590842921060664105916825812876711663339962221429646807862249044303612294227019862007797409898925337061393630826124320780517986749962250424004538224798346183662294447378773146357307611909958834181574324543541832861622637802991071896927654284394728349933579822155347383735736581625212120937167241308703761632306015698311329631373323112169595158953599138020883976149528082632659772709143727002253242666442855452766424753546549532753069984376018662834720460347482902611560122090102545863416328810941928470930896175638500912245291487043686323328236360652282774568749834196001155439927304959221410718082647272907763720376630774076160178951689349876710953750847400651890829052170542142816608179495469853249645369301411044524864583810626722859065419280552009885321831165531776843744456135481064529147747210691649646956112873156168179967632295470553496810233719185882123659277723533805383383202788701734855733398354674668563545063572493500777089261775003326494693542458656905490618633818138672324318249624758306806719545698965024965357119563701563914834743020935958162026099184178315213056655809518972941669829180127231142429824980492852237899272775341937530913025719223007062982848364865542736118850999353558392058817110808883201270827002837799077353656952276677471140752866043025059464460560770855389768384863675930080607262869291871971306062726997841399806175256662303665322050259850351456569144950861969251673576846294178056055324952260979481293858883695594460663291085371943574710922948126616732357767788855239456605690901359528252817683715276911506842976513220302451499408328862555772914875385648629956057430568232822876953855818670209556835684680415534500378588273075558159330347069196482905247780690070142120510248577136387167560798802798582289983260669494130304365526728317624626769604858643669585620555358178546704434136530278273320901512721993489033523720031631410481397682401010244722438521794101868822361753095795999843122013991244220657689464614757207675917093265785055123246862619246653974592751751661760581079641011859458502410305885744842284993287268743500793386027470115690560921802855958742728796230783535025694574538530211249174123114117845340528464027799108307730655559807722026879700286286200939423477335428448488116182538105580024254279062121019631373485263315588149296476280434905088565068341007861781078226365322329802463071444305684982321966080247039361181447670315126622249681564274540546725981248061124877213825485879646348795352475442397110050831758890867158172991917296446504382544175059470233152061454953349709590271769439507158260118514683311723469969945878058306892522205028415091664448786991601454056211849374099119141737312220113776723625251959331630677902965057525160508880584146957248265868965270922361022759403410128936408606005977172657039951788572474291134057620060156983291999449854705056012434119779693773914915506537197242880431482493106119484931813459695230503641818068781719207192777716487584464011865237315975066455885800029183627818254892639257705076196650197290916216833574873807389166518271550371287593818510817634465478773133633444495989437071813748001422206101638017023912574790570648240548262962223954575539216407107568610794674304255182547169708693682110846512632172823220260935255124622492603610882151665077813478815967890558798068137975903509629190215364780800715833240651792873941005461651299077059433229948913262437340894875855889652126040684970357757122926899884229517229797744893608097237030058485791034146794771698178647055307111794835347015098726808054650057401491521593638438610063317395670505381649618790708849145218324833246842097652243190775312880686344170612870769835298048392015065157862780632645933553017825789047487839522672854347610869560686649102269276221454696294390547396863487139282328017372206862298721927975854547031464512348031502336128881161608433679661035322134845402649292771737566561697782396925984006308817725167007699640372660045621002532615469986510883442205099898414763065900004367579154309379267955163443134040790297665314151318555821535277365296601564799269498005840820547376988423572043169173633768053454975828828732827080916418399454962921141438849175800049793976086355035365915453590083875614293266011617022122036634084070560695756857722223616893338072667063818000466637281845215679080763802895524402283513532608050442603563910637325767473463306114376958452678932271505898405810851808583692350934225981778193664850062831161679520276250417789422694238268934503432526217417275583510329247576914860674137622995804434612808762403027624206917726784713725267449125283847815613990768922692018955850890238663804224896183461320429658302912062033783997253628458571669142223947536388771480728050700100353861890524719857070564212957169510211880840733332236840735173388201279164734962604560556742390068294241664199309324018748967320016030545063249665586962332755090034797342696329483019310898842642509248816256987568480520377609780953071640146230835798971193583715164480937693390289936112809798797517934005010021019763818919657981022025283318886096001068710307064030300579533046555058937774416376100966962698264191683662891793173022653606246991999227089152433618393544883505893691671670773177356127219659539547489323527093987318736056406307050316685036971712820030194211187141137156778243419452535877447029186084357018645778113672517543950670215686512888296687124146406642062696963065134258813822604225124645239969035789064794977585701255640866193925766547846686754796203658750015260540125623670502218398339869156214794927061330823995213987455388098111893819522178768392568809104796724301982210589617669766763801658358415387215829973326540751172138162193950943710202393379968033161324764147245179731013019299974487434529510982792817592199522649654428780527751806951383469145050808798568575670732479762665042191918605766319504546973169447813380295810810820199776884056932951837879832155586941685997690228677427882655066926303207828412784935558881274507837569543611363695859288265105546944857729248647312111657885975908205742482478360766672025425658672303221697060848709193518255283163169803075864637400063628871666326069876405800430721119162142831322223376872204571646418436056249196554115566952698426980089607150739512939342867520837406699443207864971545283515022621882516528390726021080744765212621764430286297607400261036659346563611207940952134541168141535253001799088497214571035744841716593065158348862682174470374697187571424581571815686174519165009512829691364693391644065715951933867987757235962871523501424974490442504618651759784985460060067591471587459778105117212301804287954388228594378772813988906988849770850921331718010282713693557383848986148144384587966634478343445638554943482295011151565542621486673589458327936454623398744459048774613430866697956315130590630375647842143321936815700262675875338925244294063302585403869666931571188441817098892375020782310692853740905258755973351184971176398450971252263132083967346718470928718207215427541890396985304557140461534837984643166765038770613672992836021012095128077574074185516577238215836963233052268743273377297673458072111453251416605388057214810096852371079264119991576652424880867634928096163436391990918543655124859331935039796759913372182213022242645821456184297246020160375483245924214419321017190460856470153641918297240230968558251353243164416232965200546015565537030523286289449236707817202066182161191139567004782687269249636131716509026345596370009910120110332212272844759714688971569386108798043945972778396491179823637368122773685667323429032411524688229829892706247664320634690239318605280486106927476302468758597986148489047651672448381716261565996378528691920436570959353065189461522254438951278186033615626859850878913088048249772964775225582674628869263942711806157820971697026936497052438440621702526881278122178192202096094566442491738298204039963577874445381532210604479180330852822855330285836696352692303024071668812622580249962104432248777270276478102153421627131945659025080190473476309868930384187401887000195894014347873203221302136014357221918421175113923036353958479562700658681649119322069971874574478611024354073461450130655118752462999862328567167814775313400611573428776966569960347126972890152426680505073629942849521234761295526945801798417734073274543788898392104361213180214985431622075489119480715944725112387207389104816281061624754546656943963877631258165194874065790982016543127022595637737390394679584813805121944735798915828764531984398346126576080709530243370668333417985905340689977295853464679005082358394239295283903304791715942715278807902697965507583631691136377075057517114300425688019533867236446990574691444440515347517638892599881783641477719711929724768053631457118768654132512514950589611604890799233459773153745935341685199436661603781005317374720468607253420474679115560654391102680643316824515024454036161028670289931973493954776392557998350647745008436435695204440184882265942624906465410136802059196093249092370100374023687115963014388706529571359826992029855119653583687830377584358032309789879205123469313732207808812357146023766295737339039102205854689432650057367266922958246121112132053038444977329895734391847058495732009876040269312783809739922436085568006884536446058925401946427240487638348984611385601642642126856330425010680586761229645975190326089812066112454037003362865179367336026209895682700912214378524654526999619742042874785470804922491716048587205131818846701214546783840445292851128666070899878430531077285285216290878885882035525484185635147947101773211611813593366815527686355795527111927397953248063333630847842991697206152112749459181873462211524096295272953364323162616302644360798004171625721107603005971526602468857874908918718668419187167615473380345452702732616555164422678282655293561474498809728755337299562689176044746066406839996331662427362077665900851939337572087330082772140255325409259490445870153744685579126161919256951334477470817742332418146002939263490778747693602211536198282545883364154483533517877524041880244662745830315428723074558085414981403402945284146825354509796353855247270618042065868295727341838236013040017637159377967645284323061402800134765552088820790923731582239064074702793653320416678095857358622192705178483557150143282594061177694542341142459790588243410895967792615054103879194993255434061886698695743539892233900189871927118758828242371033105677481573951335061625727907612736143256274288369201165898515754551041087884970822336675602966705744757224489927151272862881520909708435086858424550283609715878473596536182656337686153484351487401682159258723457263641335498761834023554146926115382496674949446815852071518825051922991691689746327846110241866167464641371659946255748821201029464221303685261906364372836431883081654859743749855627074768361148602745478144435892277530149067992830049815818162239651490904026430058129525253785687946831440958590665968616422022266087738700995272180893083428385747623587673118901272601840921900618197169103013079440121261917095174138541124533755521332362095087081227434772100123866055789398164538615923190492416195931808316020355796276781793902670391396728938916414838757010046757652575998869784488188556278041600930748852797702312729955993067261428447953828652316178493603529635543760843949881122776138980310611072194291916919860399595826437485967667138652942966208387836982566351417856320353038750729026410367808918676567776911458152440355273753786291802376792239265213779849077663179764876272083473010834695547229263885236274019989068946688322184896178948801867265464853281488617706605761185111446629601921446489825748245130135713347708217596536232985301827573752522682074692248330744238335492455615216215035359138588161845810468333887626845330770108249978039022044761393374088879826933996995492396528667736756513497716742541318593283486938521127589995378992752426499874583469689046312593117203379055976326891604432110182402364963001037530679763165037481054718287204539564571425160844649311820974258884711991872159588938397242677316324794926704718262706262998151807908452722053666438383778246423761440750697118885650423391088809025071911978729065153768048446137832188127142228294302456527492485347302842652573961377656292133003197938183228731514383816660372332130429361141017279960421945314780623716260606934735644644548029516110760688610471337920423296447165441418266968120873041687092119679527899636153518606325174240786039557473777191364673198687156187565132038399808821161996025760828255637283006475020142328186627767576858018045142090341142448605079014363939946988247123704098604520892486086557040171451254179177283254228703203257253727615382179340596554719460959264984413257672876946906188026106487912401619229103135111563161469758452834337571269862565520450147609043523938906882309128541670960850953797693798623182538064872124140320578815950462616736418866620874801540200290244491685352776535495781792977293551730005721856815924846939720355385133019685372916585129903363316764280927766076795411102066209315267337609211505588636917887991662673645096394465153146713983064986915969543657717712757704423947898035427099206257699317191871596780966503523096732371350430622434208573294560052740463854309129371279739840101447049342872052245856683957563020378817695832638093202928200001568781872408686621305044443279368502788973365716579073104674824310388557672457965459380772759422650798020312962030033380793497874374398059557581069043873284467568078262987886354699566038237520027908541327397345361466887997534885459767633835520388783029214480709488758887136114430175277854432993479034388618271236944976172090196709519935589868580980758266997367253115716447284004507994803809602335548238104432558385764005524047597959356374088113152026267971495771788831221921330528629763307444404539842194444828110870133219617017930301071779013208564761148624931457414808945252369215492920977245924824722205214564679552266482151287869236300056661148739674385684180700580649566617948300232643025588891541316252849844002148719484090660936319324138576081752199628305933014436726269158193964463363555946313659280022517003621527340807962874156006655791087853115110789736804297563595380531014220038011577756961096136878402507103861670903455557606224153861273386370649979256790415107581425153471678472228120254483736588347825587139376709254735683401286027436053457112114143805249814056169888596042197362539712642497173486556405310714568544764973297376801337435327529856669877936434820333413360160508564932122746076179176908726072262441942384903454404061291962459967312048578301237065578614847483293847701679813064336479979953911273248935024388885852542632419206149904438161574326912317089923872428046363319928039677712828574529565971462086811415368270489893573182840752171215464464448046553533630519754974192240340543237545823327245861928486643579312031699500026583160487988941206584648113931833927055187217931130735307350084794391847635291034261950460053635022917431473729061855177654248917497466880530288682341970686975204601266647552698283913709308640469688102977936649045055970112743669851996819404374837476687429221050115901780608721251460107221209748607322205934010193561935202008534483948654845149220966999277824033259505432170493238369950342059655259167404997058524957814729955322024919927626979672979221945036611149758947320437179299225268954685353100206643941055977714404337079240908546572887426785847520896709556468405663589573063861535253737138815625147494661049855993921379324570572041532583995993533518078027592476675437610981075342680572178924285386229853398325449509134871567552854945382546436897674940813327217862611270987304235567004543629530559724344714645791618162637697831410188345645575329204192996232447922915825298548608815632046742046388040652582320762867900369406417097707727875603708888654525921393803861897018587530476870660808346857687950438930168651224176200526322017724873166360212372267211223365073931066946926578596594268100336407419936397690283356385071344837041915427232864357242618882664111631369932074812168826025047129457824660206694689140960874755696101968512252336086879570506419496410491123899242410279287467844828732626710144559122209296849399539794567490226613123084446396788434677477459569348252510953877686731670560546071723834981004002302989382391682069713421455372323276557575461771912856314378875721580606974104028744427827489863351814996520043900052088306682398053982293202391158918936678367953087422162090067181037959967055582113467882673731506623999947317838324502852607584381542037918602386243924852034692489589722669545193446638173724469907190549268720229667973976513381699288497362820722592729591144583892389385342577532855888934116764205705127151588208774117841165748658557945099609753954117618638782835719601126397519340724780343762190194871340427368374869378491227610335087069449890615626001777181742104157660505632724299120343581611649513791105549427725670563480382031542858623378017403566618334054998130989341808659228509573870629584566924296507300384520359069076755088284237939980685412953689515921496849378524375504247768226289260468801056593010132101699199583164556786548065243870569831336503863006719217728599936549910756938733902204610398410562471603138716340280189983406765122238662708476911371026436561078182884740816476848368298958617030093934617623626695281180552359770418000833793954562843263172876945043697417345414244436422739190629920154994465383988937079265621993590863218293120487640449617481013527028718681836619626667412422419259987752069801115275645936167145582053528582241540421630371056140770454144079988590396588614099992348977533757579239596241980705320482881169672636506878337620178798124661531102731348532541130202567654294889233344491012508907649690487335579322505145679595592047817029539697313066902320616900813903591986759431808177358864432649582451552053076323332316627099580944470701038760596602053303186855679285359170250123936069496559786130961344375057158929823873717874678982082643531992469740049180675414429295368520812081136572389800949727832454452775497443077585257812832759085439632580716345465531713994527007421042649206108572569632793488963760964973296960979174922918333143481447684536650219434663346519499753869596997666608618665897120849867010873497455768707103869714804475494588426796932309449520855045764538659947314838744820271714623244668295441229266851106641454482954619942580571443426915807223179338283729241073766056059859565530447901666990240331442216596041953389598164675414214691391509941176173047065741684321260704261761473488644247789877999223634043271780425674648889480870549446533950678554659073064468550763434741821022333849145152578191385597012534269199013725509385858951275792693039521132227833729189627058158048424792171788567264533099871655691863136426313653838406045767091723669647309801679937000596861824653565990131114442635858996548801297087163002757254865137204667305616668832066620459189372348720045965965830598551362165188665171574322573033858034914331243577987670256614855335297433591687943461453633701866203671176903296522346967805298527461927465542599669411724851765424060130927253611107640907198328885138504237741647754254551790581710307023493393174309072626639092578454466129928592820230436383314007428724966699738737878565056190139160168856672687599341784222642858378356506784837278356021459592967349116906325625512487126527340053834706359457517799964419075756318641019083630319604770530142112466268624737573422504970111290331307742227152993090299081576793539269934949022519642596195017946817920208082838808028532326604384200538383158819151044972960540371922888035222629105244536434969314244587338881063553154105241069570996060480624189986415340547388122768103882724814962288458879023723942633950564955178966300837575212311189506038290023574248739606691520903237010440042447094673125881288857227332433778199400486527558571332549987668616500525596714625287010406682185657823077620770429585335140694510832260374054261477051280014285636892025608621539218730991399426315956790362490013010445077501657683485587983676343545091724637141631715058096674748272927568221920178224259325071218161688704106454034010221530231773948686390604949070417820805691658539666166217217828857121141623812719957116778496182256175422804869388596487823543435043945394707728994906194534068155286210422418236400421426974877822268357916895621665174887223495260582655328038084241135107947420510794627254997615469460650199194657619060208402937587563619680532677935569041967573201400975593289894173223467973826356201225794303848153402206104049163942795059800350685942681205984897113235084663730215972157214162043757531291892677431871584602595272383018726271138222562163607190663737626485435980518529130415613785629840687081299866847778559459402885543392453634607154147455447769676793112273042853770154541099421768739912075712074694075793679748078661490279006532655496679352960356191144946098385541079425484698665742177894073098746253632952918252494220174467972367124586217043348111805400851341403689803145598507033162823009127206611203988568267776721156257734655124377827113020740569848681445385314115956923613623375815320198950532456342420974184260783907902048458120678407148807984032877518916043776658932828086027150840360614554071827918512448656970469343135542612460619139394903669903025282197465047076123336187077187003667852113049625736653082753310022009007635207891760707318822305709722868072633723665071036465629686826055491669122816902824754670432502714811076232385252783313743474203070264838094956417976631961286069784467168246072935342883500194981553950104705436437396841047372121935180540892412970138179366549896353747335065887419884262341354417899230038729522061649286085238197989109294959491337293968593849043269437748426684741024333933611365379325426509708850354783555156158640201635565204767808067598970183378270870636127110732354095433282229462646981315753218717274673792984537081490658654060105879690792653594666817758682079604395029296638541443156678480743256715465403048008348300147995666307775221012219658862843491428544620292748850592218173904257128596344697678155339128138362191052216312719992765648550598917680619259657383040951591756607286715086614923671715103565228292872095856250171809989066479801018564546335522001605034113150547606865761710989589720967610423585827590321959259444217975956692764832603000761011282550626393380866168245466422386722289467239431074210161222483620767218853836636456541690308641469630481645916936180762193622539043540481469296098257927635385016784122859976336862826002866909094189186231941680931402069355336059397217336826467269018796817001992648806422078021385024410235788834341191925296843032061510486227483844195167990005596929456420701956524981460528202762158152206680239765557853907853885326831532012825932109013338824870305091775873470988713932063400164319434283739186747865913152695724324758566814523628910342686203515673974685038157874738465056210673076892501406759441819685626793378716655143654722677619490086481183478419126857857934667914738987882270140066711345736138276510168442068712488976104391768408252503994362000579317071525430142358273789062225397124821297738305303700591700255748773741129501990326110227357137098836963198083656724328313822843219768229643968859322615421506355891568426254450592300126745870126304157397088030824144017042725505948944049519392350810920294150435806749153883062248790135014782937013740386647127327138843874450811966098898323491043307005844547324389149016217548559235591565322073700007793603260569070642534289280388174417835500067657129255948035099150183308903521940106352749288680667754699063470572151785209896436347899962613828344624999950796630649831699326812263855346809389836122112638188200591738492693658653508298924487283761083432478522589116974120251612202493818035053954371760333694014876740518552159802299832170416090888106001064484662659655953884398033251814144840541638070252067028151903982986530850153841010838742501704520320567739150940827231350475019504857644017961633689540786493752304858914425402081121389494796646504180875810032220729549331795520689801962969914108152115887286182364788991614350519381998737840276037693078095889204465823778521426297978766030696639929230139582675263301529400854746010131983711079411230031617713038537972016131621323566636512345374966054813880374616779851811405658253735265573284139149798655132589083326407053980372829832831334247318693605361428830254759510070415549344594974672323295632654857828271032209314849745914953249435847408433636837236113655106550775949335018135258310243230501471141518753298570512304817752919125140398091952006022777543457774280746740117931604125108088282729417128064282810892921856977772097468724602205893199103469642304332956837659368032317395294910309952364174857170521063843199376330017618174433985997022502421611559633984800254732940280905039766265739943485387530471858766677267501706558475597899682305095035091859377588503928287802973474390155890529808650251887433120480789470017064859153941109259014470541177073896557172285544854704371427681017278769825201284452637537488982342003592246514035688737191014368163197788761459306777052895702552266203046890161576802287570515548875065835302201337863006813094606914825014564831677223546108760776915722477594372049553952872692505395926139521133682461898313601556294399410037560436937466411268238805606148002765146644538103382161599454938173105751275138452520675788711068243448945628848490275768756924156728138746204687749813139013706249389343558513601771251718746639957615823777866919685635046134600705790155918964432419928849855561346278349632654438435755503465706645738315784550925737593509210226269923370386381564082260024548624822640421282697385582375318400223287925096028649710203406637599814492582263978173286755645967143932475638176357648460972090229901064648720920176361864642726736043567906874275452869909878647234098502150048659377881903933949488244144162723960798663389471707143816965293468068496994734766513562633311191885862726413122422678017813019658565760429150169454299533752198673444794961222773522806137316256417817028442235068614477796209275281591760472461135810141983691250747662967361722955682893973142079454030538625521631663418245016093062563962241503872767924095992248992608871052753044531472580237484399139989613398734219965325928175537371015512493017420785774240449972106882014087502339775594097306313732711800458154893299903849338503425390887345903589013601740903069360359535267445332594346474096191930117450181269256573088287026081184787815844010026649337831677624994417640789022165072983569495803608778149690783090109179780990909395029751072480580088976757438743240809483792189957316526377206189437452888686857007076376113251052215234064362126452260322551937454196992636280273715886136998478915116396087367273063127874078970981443606899445736435309726042053217940452309806101915123265855482189358167018672177027728619135238281563155028030796186725650056359177191861992512264168462172946894687006661809553647467509607501595965396180556815514331514712665612030781875622890118062139913624226175919079758729455593811189835131085756486850202655445123769739397435224390914686585035436070858612461353909720963515181922736518965473154620858738895508612670767708154867656990787926711705816525623072305359578421096030517170756426947573643194812229493382473814167749983531717520671104914704934155447089201235074783153525533669641423592774379176834013908323714411361025570408224083572299953385948019047332092747131078291388608973020700020941845385325011710638616043944868281956293600132338304912830415258687315727137205972010650479034552762753426726961901685829399367650277403323907672670937793639260091745443794174719007200404365630400175432132137955433546311463315590762457098052385565085335736266310775639355683013822963466086349888637997450252554918085482906210777217577884387902662658131187003302104202321604020448888621430497781292183247313409426346445908793589167087028885763228705229232449798655293176388820467665572454030578215728348244834057331170409622994756072587726964043110102391182843301417293786229874970544886211291766368276177527701631180537820355248882976442969138671572425449106116092489039011430036859897544637361946844447143430177470073768152206125715648762014811038687527361585282304110496265649023247005128937892437122377715075405114468185781774731406476326115402209999225634522503351495285924633076390029721485467381772785728470057411867508181333428124878735943645077352759430053721424584494593209080275456345638112425639933249924450411347518429805626289863344870610887186540028356053653160924277271239413203351786646777003101372976173561690656590789990408786647101487731284577812645167958356789861781583917187743230964278021716309403933484626055018558343494097414601583971195949909515220649656905005753322291710717953497015125469992379313562397320165513217443258697987577090532973362175369600707301821226178464045510362017262880016296321829870332534493179681797543968594107157201615452591595424366488409907951776064869189129938409475661364881365048576483682208931136053708488593438076950985259753790659085178777906994294758351246933619548735229226451419851445245802755211487204790374987987930946447668053685798830675567699095833089200528277200453027109136950720252950791409969861657082848071993647051064723648671457466632148848487391593995802706991446345233537119831147847247370276706856183067173795452822289556069602572953731780676201324418466468283943258024277756635087042479159534375956811855264754319503505872319901555032736135494498589547856491846662757978106116391780882722966936230161622216839453364070224596505204846162631229393649930342377259165816044286149800500258213026446469100475560223568045763626303484045839402593342583546355358969666844890476522879570146444626080144786608827827672435423597845936381235495886630847860850905820757500422135071859879590373242498191394014402168476130852577482247896865021536960061457597916043450070064025451833248614943276596760291842303399009868748015053620754067988301635377047137781720160390982007814940496831917036837970709164921623714220515616623845093869792014030963308297882282034398172883454055851971625333516735868920495379713880567353074998136777574430428754364275777064955657749296237774943991574402492091659108788614632678001593395597106050012605106428074703587029285650511390538765243334018890033397501011082740733843301654359505158723760563192758642497113844502057784651955957483199010334135838184396257643301826842915600536594821391262621776457615291144887147265377797897828243398248412741163396182752361461859499767725512439415086681011409516473669772636658629331329808356631748542777405712914296023177173749549187483612861845950595502163237910923524617221114861380537894882801379974747828051945417137724543148284562162183752637377869950828734722834666384589837614911960526517500536614968656185303944994461101924133990480308755361582159575586612583511265925451889608663287950350865939121867428757893836765233105425347767789566836281870061063643031868337410521089598046580360201833559897846726000967276467244055615695962842735501663211207516711626872036811150937836887284827583685865822190902842682415645959520489690975207094189029660708946387347779587314552836522703965899582685917974715972013726429729404790459564321347934257747444653450832422159986986668693040453193253224413032124242683345120677972700469061897481061542118216947368539683313048954894064732161044445513605033489651644005022920847259068615106860223796086813932444214908394012011273712841467681626609832796314879093589199914622092973758005735470274454308699994817960303839590270179426212219686813791154041852389159355128290118419841477891725093832906370537996365619353139500974076551180884494109398609305293213897003656078756018986304081235141945940155645158256381840984588682369879764943405117921430685306286580740308149200993908647678158450654164748248791652722917978120711006571839970085096804739719511076562656976386292319319537951177563812526137922424179837167321942546877928692818478759665026878880347066966621264033347952183155665256210541092981360332476925084168405332790123196189336556032919878957449992886044317934496889499018298375705668079302137543632565240875144955911208580162711524617985968638970444328465848063438904806692452727559116524583163796654482173603444443146740632604611225239520352718698928622916146508732341098102662668529234090857309056330509163306934404818451162201664295092822782244883766849691690236418667566334934198451112246728616775835677632619453413250705638419567241230499637594585588782821894882584358819889081233355990575108608969067117779353249767877604659745161532890167954583850691033897203874442865518623305515608662569517769593223212594690827708553899067627753856045677762793795258556583687659662589946466940246148291660748448341436061715753597186952579543979078602606170735408300589315317035972805048233203294799723311987339712233795321839500043362721907812777819437555166034727786145933036092525741497822728573281118737316675077998055377821563037858813139617266424543732828463624246211783818080499837330334926719565142970129640131179844064909265440119404793374876799337403366460386233424376460356272620576866389281328092385243670986816757100473827516263764100517609052892076429442339656288078475272585612144716877379832654358979632630277140436937120696419644855083570781428541002287894289552657843078667812598677337969470214901401940490111794808345439034143356022448131487762418659998232610163529446736936263229912103346781052570438722586952973622711671940528422935505361930251452662159589957146132347215023860752007375577734602883081718905781045082159439353321550020380679304202441104467053848927198912085083383513910411345827538833077173350318352030756538066348760557402130821262786169160792250585966208921538751574368628345633514720358624831620461372687299347275707596789030491227291556816215027885119025235985723547158344981261141808447094495120952974582368354475465880224277958682529270302604728234974429951374160898602369588313730301585779862397260906098540833819003138307451175222444137302476947993316579369236952007639296421836796626498408920939852255908425368812315405130838911943984153765958738091757144856304449075545178944646526627305989045524444825362001815723991533024428573429210975177183433540944235708741439882863152904495392450418760988759147510577772175585702682989555129175625698409146682036781488320911406938986527032425681843972744142725237965578869999124583155521460479959845404120862934686323691913557365390681260707864373728948007452090014445419543515656180237540073724486862819756762776973310607491853074099282878908258877959741129495883486282963817247796696205322859571170335796196870824876570215810823691470122052968093232529213559023297264938253369360183949430496945962597521427563104092146535425318561687152881101008322421642222621115877871811711554530235598487518331885230292360256604184458313563014280883645743327781704412662141716571614559500236746727565631493984333451543839531759260753454725221911598230589076253667777598515613567852578629121830898025137540381923714513999627913327417608316899126861325245969866505400542107987399845945288232563839031801507947254806353249796504851438753464234782491485451894161586677150241021497177010161251330846252188205949896032418813454414405829914288979200239209058994146077228973723188076688145651233235915787254212702010924947603889219366668186185999403049903898283235509878417921801445414268044042411271436082660638219269545125721398317992706300170406727660861143199221801185548725942428975000938736376715921838749122950287199110507873754102665261300867750761372974552652449765101486942941635859874248588807267872982792988303482806586587673339068782768867209238252950249601343431818318948679719199786091459188187774949082899334045300494677314626864931943568736894996745217107495689503056191334413992722803722043790142275664870048771593433242023703980353027466244583751639147507211390173434503484712207197165498473793848910700242666460213633927916148272516582557981076614292301441368988599595556336806984256815302513360351260238317905397598154743309738099573383976737805642046928758550423220582476018383155718372790420744222301383212273825467096383431062883165603249292089095654986709785591503348590392972414688320442845477558784788317348986468859088259450522004953466007874405325384910712758829630707189515224212573092229548019966249325281161443072019844262740167582156944691883998261473436558421019154227958200503540478203712429984915685686814989998504269665087535425819807521073357049977187981380025229459518308155320927845264913057874537095394657805949991884798146834473425228923607428437641089581545032200162125185459346170006354766474635928512786548511668198477562244820776580868001596782841879745844726758681415316632759769722662955232232488299966161272182076061261378353152375073695230210849346087497257466573008279470586564025768382269198014293514803369823752491176834840364361712408435314937007026461240551566459037972789456501632008910599944963096651398807537759277707505018233587547538177161624298751701410204045077031428732317926150364126402929954493246119365714487404712803460359703325625537080103139833095165815461208870856425020306836588542810849359392399817339671946520406866200078741316771293061384608158417413809202815979034741691961488718749415071485587746236754352347258714941949741115702371757811973555088364026518496780462277639702341814476787766585414643413684737226023404435274503235880889435325103913111460830543435959162192417524327092114596857022357303658024775385371432961339361743368029242238674484508997506946563126175539962298818611718248090004244413170159850716202460227846304029145250895013356023110007433316321551940655863141506349307499976994373372505517066271677533899565874303775001137236835100293146954326011074879782271746950937831225463314527347834705384012104483056626942355148644317294727147244768334034936440771562510039568255495104169354923054308601013017613425652678477625721544730241749404719162484252582954884084707269749520799368250889419526596330866091555231619650743924740364331112019160327679158579087333369370204256112626288185262002608180577697234225612581189773967037450515031699420082541334232033230676100545161055534129426708928869629022580920215462926872645180683250080543746277919393860241364381833615345620206487418215778857856928125161622613710284573069593993122805244734782951147840091216415181193434395088088482310281561808872877705584482322913673722795738801483470906778806487267234397637483267242518826380299365482225182340076873133798095258062986185146131478737087981154810511599807900385451628002779303466886183901387595079203544477886708747313029183563772330018584914786080314247174547917957431188724132771601884112396609729405911358162071562368511823539345313504980580271535370116867489237004110370687978256333128495259374194257233221916036608487100917151825400434400806346029453961997268536870504303391371020012798092932896264089624386796762565191282862001257435749622576993563655128706346552272327598165992662978938763741696811141991946911121992210157882935430117744798500729397022717863518864137480802171962307073916287294850525320943808931930554369694008666246747940518867943476278605037247055135624564466940181954240846556888483145381469515659643151977102606520527692282116612632713547580328844843013280181199455427133249822510567079224102517720482010182203567384128901771051330765149337144888519571517080777410998899304211220381251564689021933755021076860274515686268661576490726670821714534195929554017535737626451766080829769976744461962922656830572526880271886421300403023972533649803607341471173275026900788398820908965649724719592253905652153643637526000632836960282268325103431563714314467775405337910472949034282150762851720554615213065874981549612260755796092195317632893918211846803245730968015877838862195787760322378474768873417943558305826562187378777164247306940487529357747441798671879203801148975528335284110562084678748036827437906512251715933826491479700201851947161759279431396543727389526364247513752900131302838917306127601060993854080245811636222522920600411414709060775000427404943550234822704327353062163456524697625949580536181855260907844593706826222789615921964450778283953507202309732263945109969328409423291935511773521059306114389458223149917267626167119101680203865121726574768299445900121039355154594283262716889309566578003048229531374220394680380325009640935064292303335507139541536627318715015349152938780508065544933256466491089840664133417458884644743977563186651894591426733043032357261482843106084642432859250822423132249968092702702748664881235439836496983902215241158825805165725038132014319725511203259622634577101242733249635081727879549493217682233487763190701320543100694722918927140322882639290854848990338115524147886668281452097742852705943789207709698329259075681135572423048549650593826133156096251385379979686725371682893052208003116806609593442472900455786926730350107715246830086247276937495545902144850120764042765260754185399881800370975315809486364953718296645894161304550916990177486054870355961241979290844643030964654520603078225099995796740427803666771417292639131548940454812520012313891161082025162566711499410700552226137913821855596341329621868366705700592279859349781697906084086837601116604170686855321259511868948421421532760902156535156986509231494807068932477397658670468245080394042226335469512217671889259916097931265644166999389752021737759122190247068119570950944127660941207668352606683518394694137049588181630851164420829808884570339323540647079954279101023187917961292193030949999866352938088435939157736264219558281157130243606456595556841638788840483668606414749206926339721180873728764530559965851062697963878444250344688376470753055357598117485079052248515656122025839847532319144697233532346678051204138764321758883128998971165751715389040869657067556838926676931529215286486539217667232366560975010432151242138877911320810682293846699230356263334029413277417669538824655166569497838802160880342188747853712536839424631511731026405273591130283899032052619736215486468498556345569420986398485067205092504869716899527775879597858865469949959874693909646992794079145718664382960867145559964057828236498296776821861399787462808396218479895030393103557298490574986904812784995116465970489872639900881776170758904748344237164941568596604093947202392497582376746758012092065649466137892626867004251486162223480232428039465420416503815171688512241216392291956418117618526059912822248992255477424848028642491377519368562281063635203973503788084453318909710274595526219660880145560388926647427726341974643735351225487897125094508769347664363555064079059861269296855643794663311272567069355832305562615089110800692631552105589287455124336664113504573608058865039036977571553685570517421520409725815136100001063753942471625445485732802217168417708453813325844581777193500499649941416264757063911160384052342881955658997807315215449151092664209763050873785476782133472499020046352586846847334223037003788779377418896148722769290816825672079063148741105887306552478208057002900422493635581616255072146008101101884422143673516394454614189808037693565262014918147554159380689744197873205122809732830538027793106051084016908086132954724898943087687168105031207389248107714484328496743855676231449833362536257188057403309363464209159529665310975657820404536947598674137600916315622852303591932315247310906854551087726479500965263777075201243502790137092717140817753671908727788482931684373550879938402510322052464887022231046995317139683350338754107883889708769891125278128374278464499641108498545324253996086354868390120983746224228011799810352615995668586258225562457793003213641646724334401982813046794154831779126601686647529516434187309231280816414275385687988217975932024811310687799381690535381795173040852036760341498996552857518308993708955972928123257052567616323761481900521153205763945007263165981795210819644248705531785331676501933661345531947088678705669324624513631785476623442188843808594035014505239396271454166440363950514915429826120874073908866470805325319781453920631238767621957345017113177115790377361384849343589774367773293980816647311446803810601336913487482181393406317876903148523135253714523492671645708268408199985440086284973584210764316241489690738399436442901633886782628678276784873007527112155480553064952821420712071068660526993464572974023927041199300894058816348555094048970397233532287109426110230917160805594796724700574202848074738191704749574042499696595443447201288461484393702996557267231769059406729226001758574660554968155486727993172614470219904359339382405107585788097018252726796318376938654544748550967675514733666553107016397864144086259025505298796217531484029571762202595444887232368586692694030118277533266355149780595128999644913023817213748624859176731965503350733938213884268728578168427199030972522950836617050623837350459317706998772641239483359700095758448893051961288953475872730922950783863884063051368714095627200919331689252395045192597138327778318028068163192369250350520145176718717192878955211164985635892761610401665552289383277861955367791606998871857024170534278168915056883980497388305368605439321068563769137034268753540772304570606172149865629698981246511204866618548391700983865185461773542775647291369047907810671743946858863699062015566256150571885582804764429091916690247200408506813757364316518643474735934739942586520186265442489615925195771900408164082935371902366929667829992153322702249326434709154118774451372868791175865528130350077904466489777961309227208577596395210176202820663087722242068443768127621222389179234682973781921399922579288244120864161203200898613627977546963023013362909404204475088885631190007488400117495375106782228530345415982034686928261576381078666761996066865763948860545354784751068201283539979618757718708896190173182149500076511648019246106229558255413325711041390577211557747538576362284477399167815245282886034108625421144018476657201240219626980103203888509982167135445708030995992049611822231812667378577664446475342655328254592879281348538007715553209477452516821993790121762402233409344168318438224815545616942224860217849022713271293124796459094652563346654734869930723925716776986787608836639355683850522172314634706920396233461786180497578360563838844657463539547794981855447658521576325415835022976816899794077082541718711889379635688894605945142284380442893477877497853569792394785993498389055135279958851258820973920452175806154944527690651762399444345248162365693759636099410147461434029795897156826769647762504221230637128430582663861608896330306006381092501338695934824536066070856898261781201800342868190483204926653935056897751217589129625730911676279770741094028209248041285741035826955960202148018612073970566356132394424567599368367639205451694015809086821040032036945351209350724269107617629675748933173915617432039112381076796606953066613073236850299871954845923552622459379663781516047166352195982888274720888089395578517807991645455408798636622667101693711137581499264074617237771249921969238766223820117052340906721031722441465335414524138451409918619986424238216455940406564590415101733194926829234883491984574008086281670987572549100787415319866225461662829367858136574455014968683205219781514579686716666921960306794205550602913951040218037488384430012936237935250442196925868397728174762155011965033906883482488783694761333997695286602535311074487880922784245493615050611593402430404544865716399231212192438762802045321203558747749629998319685291357557444390779700244341837411782319049436294351892784425427004213186758217802984311049563895584716680580563707227881474356113110038520209326969537680454047443331361356835175694330683369502610776769493346893049958697334398375656183043385898635395353124021447651452101010212214526217153871914597144555273379485922792108612603132787864684882096749282361236763016073489064802491998680175708718693417054653146281800735086955241511469622132266370905608798823923766311386893579283187321007832189184621796442008669974022019601494156895484612962074923450038615335135234502345139367896062968183811893729556541625187075155432816124238020233210060115939890624055310934485125754232472651993646472997747020399106210804878220455312300240848903524395696180186162374535455580878523176933535726442463833194500848003160055434044120200194377454520048394268381086379297618221842827960926179185778593277775026588927780767992687802563367845014359741796133396943893792092639026499299190877420311330157277419979142515478009211941490230332386561101634282516587977587834892998348612415275619824519125857169302750464653356733048822524436014425172993055552533998480901976668063872728599246918496329297964089424948052430587979543379900350405775809073234507873591327391808971131597468449985569432848777883260715309512940372419262044600733562075777309531495180737763744273042133237819810306401581848745153812594434265045499816862292491327146813224671448452838879989608638615146840582942700573927934312132262112805757480046875638592178533851632434720970987709253722520081256356162984542072641430580095752320972633474407965461244361694113458695452984092286589946168642645056464581485210357527653387005041229422791040421895994155759169666781865215140555591342380298556472787122113167051706332304706467402435919469634612667051313281580586151463410624260510466930125474842412571523878734479046588563146912005052531026935082792629698366231589066388529961833929479230014626161791435278419047701111058015225074190170202621656738447578035908695968839850355710527541765514333579691835778619376861402105544838739433486557286878104835155503707552103964398873022114387492639695690111697358033612105658629800274130409971149796676933240870095641106854151229274593897777698679820385415873753466651844270516179041327279882805094384997960823433587978382540555808242969871775501284174695865447721697690120970399013498086826286259426234808850073041036745867013884881357543939439436063726297577095824093584139653379080690972460718897890457243821178156164177867297969619677142445490911861806936536581863160460633880258948968609609568246516939594907835481149908320931218048326223269922297635915161101716942132976830494273293701783310179536745435054094539112236619429208420240726271150201761677634010535163715917355820224117125212451441478379845685598074767536832589966711982238053798075333028601807925104958382082823448499487147870587472982109657082012640983374333095390975409833361442771352247408276727298918298894996721665125038036382410182438621827413683562840428102034393847961934245913846028845460096772259947753895366086012366806751908436266288935494641535271053687686540426531321711451879595862389182667158057584024281284041299523885878590715173453049967886576786420258769569960847169484668682090580132307540500441168409020402583370434754894079454928718521156392119119570162281250220855850782707924441819120322172829452975053082365464059748459053862077917113571913485990741072342988876363390157428371646929708332611709747668648735629604197814414015494421372992466363026769850567285687477009368111092369955394232524445751749259513623877396818855425735122586016755754513400374643927159201508530238494693874892959245093760607869975966384736634385491453936166742155567988837654687707268809332231611437056343820986134068710897784003252860251838671907600494571323462064047573224701467249143947425607185626492428944752831523965986607254738935717487947903542927077502271073335923958940148688894518159602437113645009853093490856825248377981341410478404293336955526269469471007353126311566722365159032081681345260861543169073867092606943183889717345481531403901750674961222237768814612286109620601749421912800486733210954855616993808707227468167413625388160131636582964484640749313454836512441509124706972895568767874717764805145668220566044919381628505495916823067946241234561330391487023219503327996176631167279665320368886719157512303263239232016599169883014878978707285033970363979011876015400158128071846602142782987130541846045742142317273529659613192331714630077100629948148331070054483467304907732778313709317506429105763869070106625057879747384354008455999848123675127315372428772418958075513854239900548720787387993990120797805009568102673767791660991167366281354957718982842554444562957668070677164810907256637332184316090329431674156860820166267493623140576226785049884631847657091750433475000172637022461321867384968389959604659188098241681245362730891364357100423835277780597761503277493364874533627356686550838525559566906625341841613908975475020829641039626989644450469959621714734234377397388770910357317377206139945759896817792987719570219780105547230679292414424668020264628494877713897461110107304716518936285612772147264803882842407583377469622755321906942409898060288516380618259182241123257606470070757201718719635110479059152369580877650783307291971592795468160713656453682576521731737804597152910976948900041184624381008845522527822150013343789379472608671397660948545319405165120417271849586349424947160578158908972770718929309585857153661875116114926965830186507757877047483660083076572962503094373169035502545861805973322611424186029190904289490660684207027431824156536977068373760327057422347255779342183876743336135742502826193483501647269329224286091447486691908762413804609552758126567186987702487887855166882036982476825482286402899859210996261320113174244130390186990104163167423179661167942232090522424764494699951578448585541876241273226590952059268995440011931981030962943720454258516056206211961033213897532216325981063378911021504991099554077089703622563225526516509110854918294437017174470229941712973201820827903903442297915707053576866740295534549884462719083135852778434404460038583091870460737590878193637238832892254622624670511674712138040649518296820227716755171864544802780050302441898692035011792799743871939212108246962096696090189318545783350582528328912326313754091413017963121401248593603400404102596254787085044801151110101289244952047723638540907421166670745697861961151949283470249957969325569953263457688016282490070732870914802963685021495818423722751497509255135551309135976331431287925073853980757094263807896804117323336449378950026188569413555381137825415750565347822962500417505732257148078896468098688806272471907522425689763108208757836748612241466785681930860208361769561285286348938206635723682346119553869468736799397769103578466721647578222019483094350726956428310112151899131634544693157659412751043683300534552194319529535042855063086938699473979505927350131928982519379214722051601606338018387425222927115899350956607519198256309482422927408767138958950833196389615023193319817666855816059050961497613804777405126989979300075873240283672821373149878300037206825283350705141265598515088743404380242734825316801973970146619779472623177955876806580241080603326317355012584941832764686482144775517022521016281437282134652843090380478617389867914106677107618749150891256148724906904862046783127343835041573568978264936575785683421559415161589013245310045906182012463523042909326923725481841111484368515797041901950245761564633162562664300400914241402384022814232657604159427489335164694150926853117690993853031979642400898630930413341406444762986796907966964399065704208357862656742188236453637863074090434502454217498867848844014701416918504768389698527470521911844222402944664766122931141271202685855899084749932584573194087070453002934227903937339035920316628102492686145861135908213836292440720700509223928969609157886544015883001557560049572310465137522878847760843720801128729705235574826591221978207063966363378642516693697918114564516246765587255390698909524422462850611652256951977154243601574387522061762694748030901310357897543550999179868483224259298666223293955992589218793438599287863449649276919165217146767118547337832015188524048001398226366454169041391229676200797295188877891948107253345581247367009618353577275694107178759520821865306240298263227784607744728948692979446050725219563552120667718262213505358947092430281692602500523987515163269315150967530010894563401140266860759736039283396967686567358702333200518712603608387247969446558212122846740049476133393926154301668927096588168582480030140642786325022326010086835260077125497865999860478055925311847217772615058739571652350459532585988954274466746296733007308423064182684607314425381600985273983261459618054930343054806030282337503678335508758290680888824033051869779640562949552965720097177492385068061003436547538723843464943755776947381622688153292211360597925786155236375784275034651943846629172523777889699338779700488720422636879847905313667988213540881645266955583486683283731894839425252928079912490633093951205041132425684865120495681443169550649182898014065073333265479227809964873578468068884434391309757395722234140321477171419252110835510221227047840493544339771701234840711397662747002596295361073400540334929717095001630850592215718584581546513014371490381316685514708332152598959645905274234722135819403816918194170525498822013401137871712625874297014482320131187819049940009170978931184262367970836043224508262414178901018484293729573853913543130977226488900071910067870577278687084457058505261805148147920054325279511219438688004850091010585514481348017855300481321013491708326377348570753487760273988368643856685693489090087262804904223020188217616790106185386259836592446315517269327601772144587670780965260776738907319168544980356385067767360457397974489801435062038978767415997317455217139213551684185927314539260192673878030149966959982682946252213830544405857509830288069317487785786971528899375018907767939998357681180332778913422648844387199562900101517320857890194489201846668701465232338285163176429703397483586886210172309508385510601484595610534532586946568152428494780971563607433167007731222019395799197628578131454544225184419791128102984010171815691309476296257977183786147425263650497555544554246093267170423820804984334121941542330964987623937677102910318781435872822466668262591976122099219998897678045543785939123344711051833707318975620802220517585299167112726723302410592746583712582517603111524621073507512315409226345874963330270480069014884194894970071751295118882354463621228099212641592151292367175657449698076293611528107345166287422317419478918161579152154710422255022331779118825667526425357136762091814499308930387804006354618737426513083879025595483083969479322968688434648689090930352815063268665458047678149293321915040912851550476710495092098919187990332358035962227314533132504915591915029663020143116957620105131508263487916118192281510652391449546974731726077128682463423557040417888864872347120346537862106567705041562529359261096512794386542760186546337685462721521044646900396752402014545642405637764776447392248548264871561354478231420493465166984028867425866499422617367852452874029165523742506226216161836351004285966121305177481203422665392868150751042099828409758571829931254015915762581187134464801670946195866498087495876836000866613337372750018110299755362644376844366470235799983608615576274216992968143919318065709463341217094915121043880731043557019568828413170630693072546304162692353222515753447211184758276346736124216834960868913499512267996043023303010014109357780672730262249842139868022010896283721615077114303307476090154275969778642312888545580545933739736292471862109377250053128401828579001056182219825105670953705126575010009017891599749264999638559749123602869211657383776846263320337020788118465658190512387671386665050468052184137229567683798386212071750975089190668175873699240374285341771977305585814749584289619780837724851371369924672224164282647439506646527677373565729934578829857425120660533269388525474105297687806170590262869445162552718443542279492851157321594067118325075761732777885133425861576507154386004193503999881217989322060614019471127223121333503094089779940241555992681229504918063417247722264812792031520214042248197683863057305420210585431401107575483608116840204040692527245795284174853126105645113959226373707143483202657447383039539019400010018519890227990445219776385931317874690037731682134198016427400461956275790508827926004514715304813346123298139875408323815195688815693082844097964040671911914861697794557793584522175134197907396116518814994760666279673642547431896557329305009031000871685181277791117456878316557992117017823766432375901733452803047499665239792484086459382619343824475365145995333266143607650719266016390853321568483033959700822690614728620027998825825222963707908100952926220209120317936635760426179465675360178755233566749780874285894629841462443124849173700448830596083887986984862075330370900740243593902390819984239315528880473206535072693990112035035147940893506707105183547732504332779067207707507029185429098495831924325144489009468633888645868356925532616995602095707502795969994555650426536803682436667461311981219243885532478578487072186005870264850180603754746172976772639900301759929729139792738862138354852147504059106975652330557554576029174202501609186803768169576247155529413806214897060212384752701759126593555446564821169380841711256074049172781653301944503971315693074464753600053316972208873430406533393102529693548275796319430035445260531711707087255564809696966947656565755176320154270441928945705040486117818129548342619692311220845742558395494225726277842747912341682760457838067252268414983327641885578949398799678218200212025391403649787535065647352551185553607684185256012920886638929282170732077032513749798134574986179794067422146581841449078059171419433920949208930176063250759852547813078504555256505937636464232512827049359491298999594776609468380004430698354152641101590409464960770839150753087351636373613064587254641769003092674134285424336819832652924988427259594152517969775470658603831245633496482090153587462629892822798025962284545721893883457261838933802577839221438306109128815322199681230694878184874312866016042605558911861471862701508777797117798394892539956169877677734511564475562767248944234241964514488569896489688099166612915374380812507040799979070972713505391086751179030627002983601329577007180563263240501938361107946239991232543853100963348780650884503713360004393475522773515693008179885694286966582825189597361404520152651164009440433533198305394489170331344533877082150692253047108700350705745647308381748769566677373528508976586274381781824327448674697290791095445253921543114801150696049044208152309228411445858585697634254818520264761975621808427948078225452170581775257815657265720343111038521886271113546790269662224173782309915479893815942248651064846198269461493610278412660761784608161301246478284332430013137003115212907815762020978910170751355442378921053085005139519434648798727060295158991031527641374243919559744754042845845157642287039374786298598237761876910720960380505077805325332103774519661427812265597154367593749327959018353790887932745059720025753452658772477858772876044704360102878813775366717716413129104302747182214707939810686065138497198641368029631041936614162808792562869293056401602899933475992533662834544374332750440696549654535402457917379094007809260689699805325672487547511750653491851396701308188756897565349066210861980344865025797047799124202615812102273120481400191166841040104908430129608197252184450090901163984952870125472297632527126295716536501314812737979669454003800988028866845744932560777113841415218770433307225600929775530605416622246557609446426604430681991561720697765311471173835566259457386161395131689277421789885607494724467510894732314096668541602388813627119956905436675993944209276114355496446649056012015893080519398133213286117391616233990029601627775157135849504975753440862382675235747682467407794055561185881823082550005500322498375330873184728263116047654440742085731771329374001170735713566814637455659490733080667767623065657307182125953142749080508131412142671844240285773753692639468815480987828654369331538116275728314514126684482199535810316746178611355707776622021353101955250810231453541887089200666366416980263498415206641799974504095374679026156415737429148516781355957118207038056262075169076555536927938336271939683773720836544608687814955159863054315976986627200302425035085563358890138839457883337216286640770149073229897740857596157659127837312036734855565304425529560665752853573704358876284419581636573779650726520856906308288637626959823313544688300112702296971688461295086457866342754060317388346973554480655521851903572893333235585899974686571379416441157014970985385121700140093202209825531428394198105694156025925655602895731524906819381282624441725513945412224127836239523901341535364846685793215558531536750210384237796651597509338821073863012187799120938752449893853270550187648727268278312037218917033880310216948958452661335691140960628455669716210208744827235573747985268237706212264771461151493106034766596470285398355297857634772572083166535167929208201910787171632815993307916157031283313809074077766124221865446876799885857936345442388245679138528357301308398562158439762434507038405243387155971945012031627037683833435964911711176834620756020000979540100753942732983067601613832240653809544491131853844154791911285246546678729520150181598282733920525912526005139881362885530659631110893349488595257174159561166112979800454026524100047870492813332318760240163864481070931818574290314329856900320840910353007630613748085172844164747408046985191063241600644904913541538286103740177270700111024381308705817723215898325199181384114641822247972927741678083043074175214931955825026375140914240299246371917297708312898539114907941546593451497878155142029082669896504917496995626260399559179800105449921152362323964749869455167454213657279782639674391783628296775115634634622860884955441944220947982453287614275569170318559910663259397709616908343669361459620580329888972735992178223667451031359594737558032830840049899425240748472036231204896261064464674488970364931980059661356185848851594849570637673205026755469647600670468063773449553295854269414504795253852973961238251541983450351023441573370861567058250375719696816739444072809878746558755887046213531056495870305984497144158163337758505744538822346190269456119907385498492026118401633596273537811441542798552509948670441694688254582437025917437064519089430415058370916251057807153636812050801451262479460493971082110480692577758413611028891376150898260377549824176941916378627025676272613978708477943103124815503572712173300697131096429343776787797344402369580094725855035128855674630746417656213315550609197057172545038355001264771517123525622451700071081104584590361955920906255340368849264652315111526004634703103097404110182360383571549713274768466791212361155884284189373407627166213862158344526867132060013231323930815014967912671275311974785542278330529120436881615118017357980218764692106101482678645645397027432119396985373757313863617489672746691205685441250695036102808352882204326701988053119590782229855116373268306298435757853404258314376365842601674556936586702084309770101784541675458246584079834726675254100922167496535894134545826598448817044100969887261240992134885549642844160529769929055738309693670307622231545558689266303071568034969262510992764959683065573817675197688750701910160601241420435704532899147860630083242656257287989619183014486950572885321500325816850262490745166780751290861940434239329552493154923366912974144666600280025915772555698552711298006648547879023281769858968035694474641572487330805788350615039913048157768814527346062800722130633805977168471348337549002500770200665655912720837443917281789789623629502375938497970986678131119225378788350839536657164473167309109458982542347133049082302016998134714669972102931406349403128191532567414645235323525520203772403320095570472852123487942078149314529486262893509513603835559983731149614802807005711158753018965479367226566588428519909908922015237905139328037543355392772689584472336431343293632506550654972113849252737106560030533921221736222210175633761872923024050450262668099921804533152130604730349061874882119304950545502820972802685883825420412426291407895034072033987842435745791391824960967004046381271281599652607214589146381260982979824093722221945966706015324045625983974475084596190956618308286378597649728265877569535926098339840289092215493033565668566592825127700695448099595227608314894930094714515183027350953433408587613889138798968298734462186238274565031819226152023330291855567537817767207532702776376859919980421151476948675229613075091707318607257296686427352238844071872795972391778811932300956507677645358021954411684336664295531776649625025047191918388514256199221259336031741931026535442204739333929482775402089822380866901325903218224790675917425701691697883023763612826817119928769839294468677672922159520804901633418161443893431918683352559231792379976452188988958760850576380976038677249248549600066214310310962125211056177153277954136779230653792538679246529095296335810500273611298683097526617584185424198331010872906339532366886243796500258824393949275171096219135324259791207139375876807407258602223571441112556203318069082126564555448722653816409384092184106565226170585879051365971586363846862643255578817589603376570209317129348463480387476939997227667132813288128988386807744175921254230384210147234337695898074773820253970011189173132108975292601192944981958525581337287106717190628306583366486176668651794627324951603036687246422342034832567685637553360693800589690744998024823172331385440574559116576744123295142359206848266108187394402325704712844358216140117308589888497556813546927036571683378156417908902049505483451009940172970408033699844655903402791560304321808730737680637443524535600832504578914701788333153030116846450326663474603180843894192261338129622506603428441514441315049625972934122527452591742218697092875376517111896980280553456685403383633500328390324160606507243261488021892105805993163560222007283207088072868145293553357777541519618989099813897490322230223062301902829318956784390171860669818390130782455602101747925599912435805045951112980337404824535119453362344322456322719363539488683478391604580500386819875865308234424846468925994439603875043721966070718011067914949417160374472875269945647291098619482944053897971714333275161378069047772749406316253817940323313877643922176452284494106033924657204498796569447391243053948574090938883891193337069202001132350567638448999186642502075020007962735067251924759632382773739397827102037726513484390346869055911093608886191683637578168459371147967827654165004398798269920337993244469955623017951819151941587199707007081530103374634592851125373622742218524438347364422298390619966934599407977877345325864900419962095442511197621385511042677382041081824793391906173757097427668833753038461322415071242077069283197704530038639837857319149067234611699129602852386659653795370901472605744227920200717338104071557847848301387374405109800081537206269821306939282405022213880468898115204977493803064405015215776550056194760887658583819318303996046039795813519277469287195970557138607785705484266474640620982205722473691047195945787989043064799373518838395854407357803007750900826185430285710479523437582279704804307586101742716941236349635575527279291011265505950175215676072528239846000698314384052365855179454146506383770832066674807420385866954222506990799523865986837591540856714542039312389490256956143523131106892073990607805620720360910990784462126583215089209695238149863776234252699146506254629154818055112995872801731580423625616134739320167027015472836675937879536779553055047452193124106961333382041608385568621236336688942993248540769513566203448135258891489937161055578138954716326846101922875674816578967442468997180472445374129348654061649531692664060488556213069457090525541624982300526924319464410579036282774186012183703796407081513346820822158661417211246482083975381116416398762836866552680077684261495526448343137538366529865818220240082105492156992821870754330367540350037919360212781285056590998555040144540373701497259639337893160910758846913068546378117268583138889772510116708610578733493990313880165186241859437753961599552683035778962007038093224049640320463412155815222495729225056512318306449000546206239109610277479909045360341507483851762298239701054494198344720477230225899052895330961086264816034643270602062525865572143463865902214381265867847603016166067022988534943495031158738721708639153461810287831056804716470626399360985532150287800440112270096615180259340314487361202766548999092975845222850608646640100707606116552732052037958214055784960623517386121705504850029775734843003127090505132307453397203168961961201806928958541102796860159822703956029326340259287161435661276111509260716360487212615356574970554098585701241221500696276053817143290020100187103202776810231799035893229523418761826835673420595681200913648613533656415058199674706529606428588461200538213469578919524721028721653122745061885679473548679139768392160837636945962011480972129600003359607143830476840620188541387378488141639484000049207595684195896439223113793418678510898165567695199878747077365034300197385291054336030254441049789034151303786496986288028745952775054629521288582515466948415798809752965771720376395069189996825276042842357500774787394747973768687668058892365916857926245684058327455920634734178814903590332989761803646792905114480132295477932834401925637962019386463093507040088844116077353084086523966121373685374881608870577302701525632810171699451575584661183553387256470884909408874837460564932124644246419546814310256129817077754838239293064435023445822239762288006084352313453084515893743514009468456810104163628092390899625541824243480594171489243168070292511741814591667743148523005346935159060484691129299622121301733298900802233807350117248630200705699354006407994270458007710024587264574874134325920867549980615613666834730999518524841561372730381138348004585880998714778855001584044672149877630464324205124576442430866188005556128881582485076179680272407541107840109835745961677642367941588819508987360553718622434361702117391621249358691496823208913085896409951157116443767844791850388208607588617366120716574902221234132697909261401528466877868120257189500231903521220426018033091762687017326912061423311933117737922139758722923823746636916726691426315598678279611447222277877364015546366762873213724786471908100418397933002776267376185781900161701519479180733807080061646593324587183288236375310494216658461904209494404661302934689314161666472195483540939299969902182438069308963348021080782444774410490104795206337830334808873404822981668539758522144624439860143312130730162877891609269933740318794417258042768862865012595024754523084995632348352166126908439156090076938489827140645176969419814612145698682324217598429491764077280437549165160669229276777038388799451608590619718533255648262134163139108458806199960331232246763075845677379485208157496456388144246539392885990759281119997765321418306013475579687386325067099771043793799474525615216033457314659143854831939255282594103279525275886665386045864081570596246971341537207127533453347355591773259551226375561036745326064526640708976347484545329433502540492755129478124415660287774833085894297357353717596948022718278904946997751515772607279302567226269307929193780076198549640723935133730148864560652487601564577608030345175718425596092119247647841707399245128000649754731194398208097817612004280343214428789879297534971217133976638502207342942764933152368112802061689574262409193136500340754356817091012797244419141490488091030660928505854006442136978094355604105740193682549446762714291717708544623711618861512600339554074015215893667002388449369921011894777770003228443174101135873090553110608763847192653965901458610237115557713371873955319612189568676941200564864126922341559931560979548645262440422099029367933745235828815893971409374545271485982162924618410708411466444764984953214543726976011567522081955283500405376881232848695696766106685191953724386378602202921307632074723944953825579145501907825843049464130705764201560050017459750684350588155885119846238563857944807736934986629454557860078393982169941245763029634110702468627376344303102900576795700268303238249571419474381986448859024181857667418330519846088316559601472228057631179030108658605618218116737816012756254805996386859966245478121003508173952616600846199981851971312004614341817385671522732586443185144739215595306130728736972977990329108762214643214741193368074449493293835792938137482458932701858453772956267141115236089050098764802818053633577143127620762429515799294020662822863559907211099970850249151717415312481352934104100316616163315590023960879390816121984549926064879812619857691741045854309262290653021359933896910062125541610197582340375027126647424205579511633243286216336993004621811577245560327337859347895579784840730754343409727809243573234554166389003428186573983986657938146997035082860745833754045011112974908633576643642342277811503832359811368706248938419223827283937042065496091443442929047243772747428414460102851720983263666819624359519747983476500578915006795916312985938486117022516845475520488056452894716229298079796892460471438832292154658115844776453856383703431106322329828373741936615671347425283825964528893037255929804678392102894639067789074229923335623303763330582373529059268177877959000037299599567063372287707458532404281580754418147727432652053820645056450032939062760585937647866702771282623652130892678356186389354713621052595060424448203110253402795415466568323363858484359722259154323677143450206440606644258041492258034612957559354284856043172850214985150145290383363646861178592626381714542723740113604100444764501754272161689386385375696286211719384659123137803530689183082884200374597618856788533278145567213374516385466070495382188818903021054055739895210496265552337071275800856021168625512655985951401394100985397677330405285779516141576761190858769082828368775691104331508328892837021354800753193333952862512186420676698019793933758258109750495849435304161897290625410005193519829693963716570043004494474979185260861384689957803571829538547832649550083774535123406117391955412949198737100669095895921882571092803631852350920608853146031103021843437620997738829302701724428092055017737021501263087878435585667511582610093130117585984275407923270779834654910637257498573482111294296838571087922809720712765341426238680565158400474766767927719910630188583036340759020148500374716800240485049161962390165508024158821722995374448395431452146347558894047016751301015430832981699355795276498163241583795206799123563874077704861196507338553957017272864752712931082590982781192129690548606395324485894929152932286058890535027943408490438423809147866167844673751643868641513275738861213840276534307805000394509785371849766110357079902145343489892181513847215938448728847172843222763788889251361780154835395632298373568929821683765959462565690406316452212013659637844378299060870583787464256398397534545037574550550285940989121097135926015300718501999904397916731508685956700716543110843968723046553534915054520038199748213586481338436958292926339758204687333374284159213550813656354459582421799117839662975681374718850035527159069694961974936278823678372516441884053474728779920111465591166673972142890556841509796460859897015135546294468500910446268898696656355513971849316694290714953080189522111920089496270348928242537992337008692338209314633652211320384317315265388720409299013556247653954620137097096551939884693961717929638868489660639614572328764218001840865331711137011453977495165368219053597551905294115948261781730055774507797573237220998872874165942210809093453308330826464321218821124773631983271828586106434348042939561752018882035037794764891967081569792784847137421715234705407490573934451319628560491863046927953812282887443688866665122535072739821919225087438462808852702337651540695675527067457295926529698762825984128342096556567107133025136631283609081267166297910657026975896039325862592440521695789177695448389317739012165927233010207280017134715988275174125503751088799023906799740312661591304719709042591508232784697519064724619099453145454841390776304641203793707678559212168128416888187660033038107904006395853388278164655337581621249664728608701531293846259237611611926558484778949876939821667730422111953847353486642736278053650660798631196010722469826798393535817461726575997921363405777686162471389428354445149416292052189868146064211795016241939473695587074877064818266850084112840021589861662757477578849740183277708743900437637227847991804327370264171549002670721075684445108923518484530688291897013187304297811439363046475183390921534899333823416062439766027854717703353453129965922532408258515554667853606125440786836398015363564314741837859198993548711722451367564448688066765045184047443591662334391045468520476935686510504497600012476907503137354335387208226756645657758956057435788415745771002569267296611124262987512714653253063328834553223612709547009029990205134319641821641221129464455322200985116128644327313200382349697590459485573538751208408927209713692605984114427868774171847705811011523153539486525061942650405018417885742148897133972978457989059197549511660884992156291746758162452655507999508841347746006021427472410564822240746155981006758941950218615296554176301115498011101549321993321024934194057225397821961566282675377501311788776517619299094835664089403978098576105479950783383053173228766778389620296338786755268227145495360900186409079328041807791707349032119578430535044788782706991170071365982121152334908851052894906460600304141995148013142125674681081177631358859043890162687746873221205013862934809781634473892679144359023100481916478082247697993087194187015025517449630015835800621649981523754786099400673256902387414498547574382163027097960841874579438264670256853219745956930631765420941530328604426121782470192682356080735243766141714663135902658633090875377741602085676875182167415418012650989338401375362208021628937124174590611281102981191385646603387720355471293381795613938379569253868280606278950209733090530456629551404286690679429953119157803600565562197491686243890308197297478265098149769813982269032885004469108440862168361528376360387636216099816942507431778563992017659796105144898492332111620535702395181760457407981239634389338541387459662821466915985166832803776753446747799634571291554345614504198171225452223727311036081535615216686512567992777289920655012105473686055859508211103480896833645709672497371112485476451969409219375741834509607191786195027657857548045279956371698074813191584342670844322099910054626492470195801882582985758661781444030482792264644450370373473726753611438072471816389681302501488190346502507217850425459638598803816443607719249458768178789438518899455028877454107560137244684339583593550075922790036342747591552232849809329164217885895561413490460728996590896579203870472124909299524513136446842329506963312777571677658443864198810735696739657739995992984712976388317929293677708100015955910180512084852582721581705132099300198200748547828648264492647989147576414014403258692265086192174935119280718601780956542428194969981995908427417157360350194145125943154378472781521162142352345110803697483560241837464969257828105077379310957633987117355040411711232338623299574445793074246068120900815542502381553504423890733476821559033678793760145840353531467785869367808065313101900666598172059631463784971566836853627856285048561690172360137362375527836436597757102323425207625026240570194272128579370520299234678208238929673220918824794004483825037555866176284683560758409187229670022488941669507774194700168751976699872021995249792372281533628562676372211055326068785537138082832468577970276375163751146576975971357100084043141506615480005124236142272570581543336065945166587238083117063858693530848768818578107710329147789239009151462094754311364481557091600314364170564446224896057886316461207265241132871909205314021519132272966964283430240155278324255642468101438544943996362582796901973012372512498235471218966922162769975415738355025556495095461523201113151613266093678899555513490588087008734672065061254482119346797721214479974521548167931808672337146623756763999808012409616930746943752426067089546025825609276020328467897186859789808329364955108794359772805252715067540555315156230750897709946207831820805069496524045335697869332605678760187423698137236448737242989952318063676698045570811071931955902339867464803641087026956371716021714413999813000292580713164076048036343820965281165907311068023874396446969386815104905067096756027079501055883550909302273318162581664883902141646022575353356430856160433056682430855489627053500468970758696364036409804588161168030079946860663744043661336244162563342688519729695863141629338134490356843472222284867467784582509122508189974740019464751884124550134018177774008546993165823056036609219933632170966989205794413734616482896757145786194523318805397129262021584139512657878041890026108804636410081955987687829697722271684336910423354914758476432118733474727687084801387787095811296977357325372544740473253209081857542135376842256579657780771590126416527740065353421093994252913399468344739661816212590262145081842652860910010090091151270608130744092000029248347746057515426972867199163764117908650880158228417453016763967315706344721176285412134815072026960755233736634463660260259022987015583844924638814722708233413424201544687359314711601197125711680799144632108706005357074959471276508084482441051867336536605248609266481187989396734897048714596381776343971376161525920066466047775262886135848148841905832297800874245206919206568184028362751371208001921588996392604209122967148749711065930746197632504329548084138418573124320179597198566173758778406290449195486128399898104751978573531983110173864344120523414583299762073884139562543041668092155697303083000750296253851193097147612903490333534560384531257184052379294280352691618781678958858620724959302830114502614880489796843483086825490561619323842904390642075263616716526129235225614631403374373115606845895520850988335594373267370513152108055993521481981885842537151931634787823116693794477295368973901461512805925821866032701832797647054580034633098597892764269320374399953512702297016280242002637065509262570800287894316513913698094534443817126216264363446143578358145990720433372928404464536465253258092600676211098037753191569788392558422622991796365813973953555354143153442998930631602380042641619800369225989908642500379405395004888861681636698969366557385887221390019342743597620362353496342637715230227374642231171881214466494201517756447532567415806046523284795762553843139805656570494875001020043274196855874037173839753204182689853284637755284466955786292717883787902413783139634383160170403997588538156876818356046013249194951981062311319952893130483984133122897649973861751521230817697789659170180450414594363953550430783688322689954558788468354283883124093973380888664359291087298731036825668447625532876573853004344626472623746767455315463537294106693132100038976160080992750277589018495344346025980059578877261609300608570793335486563274560326389948130771942236911193194126105897908171002610814995605229732266183761752648940891337594244566637163091332427780881798943635155183189781200574999529533812639683621193662911343626443097435754838188163308294932867505252025218663290554724358915999446019349914807801654133585425064621107542415957044976632025659928545032093275887655617808227358487478145292788382982972182450655909807867372045476450061228071011223337694426272095872771771825947904537190449263802103465498547304962137017933584984264172603888849721549326402388961100644821816790658985801217337795261230203228421809872449163625431725965857505025263417129806067947755533313632006601138292052961028929952869202233123447984379314309031337356448643325140497729382251520704640982094911442627114704772075861514081929716525921280407869796965360204282847970601103945421571644263509079796876308280441066384014988742521752536845616760316588472299915879419988387434462354417391566715791983080262067637482651243641515781100921769110970353307665403176043776744745309420016126950605893769769859749997643792428118968214677937900254666748872258177024581164814163418304797543003449556203272285199934980172356807832940490485311775205808505792635858840137590318711294410388852320306420042963424312068624401414582735329407172769389438364821087705022475058298656462020513646361944275164313818194319492178946510261195947232672258508454345582420560792577352990444004053681796443620850722964632137211410741718524840435413522653365090716799389259414174000398898132919620779280691835025574550669577623005373509758678673460276797906199902599446106746007307211085134838431258549749986353725779533612701819017801286448803843261103287340569563853738963391875455662347415341652327265653559673421875820048608944463144495290863511811215146815453525008598473510034618296619992144013951250457780891190379696432561573842666820821361602892207264258660376668198421253180725415954780435549805276307726268665829591605106904160627500096036608437600761331714754808418779808284472053582572113471698122029344555775705312724188424969722556334465636340174417929551899362402497989082643443817514660144352061772992892137956135847002701442597515506054121539456232009278801724458816567745142101944998995798792510545528885254155131844055668199215655525359417575380335373597860948077530506976100853352831294075147576256331158817678579523386729124827855376902113084523540500118377072639094400016173488141840270980991131921786255423815131686176775616767640434482692396833707071289298021350237904060627379415635804707257354066289662290832306570024460450554086892942214549857908622435539118041868385847373676351104916859311585931306461068169267086990222456139869015068978527174767073956162654350826857641552937561769796511151074975172730592615568676182831350049905067640318575887949201900201274320817884190568211173022995694222641036654831716377335621337196812044054893925660337667331998793983695102066676301434620347645600738794585121153456367851718065334042691366118404166198667673381517058143148814581119491055843876472560924670414193747319397729986403754916058071408771319287707728312935529351877989304918208236816466316594351662436353116188845448440551109052700034254045200985863513861576677542400887075570551526431826585600035127571349696627459350087229152365981238681022007035273374237324074658480024781025275071615877204136244846813973899365248462995972137413935402064303429898200783796295407332103767260073221222352664764784211578044847982742105505276412446850351206433775150398059135148404711099926322263358262091495239909861869793716181940088061062953503994552148546882050195177619235484481557565463713254056513469167973341420022040470056439540121307428638802564965269178645336450378182328777674390904402825761035529366094983605657981285853558185317789977812019970618875639062436207140943628155933831518284794597528729183584948908536473723133341580301912834305426887563287261850279257774643521482635185415098350571324288688759415156483571636603358679715387198181093724802325609006074941976319489104475667592657149973082870429388301943133079291843630454705135645899825853671080359542406448689474511868839576954302911453077009537402786442532542324652845223857898923074984982542897460988981257347557777389029401028487481359755841672074685644805908312626196476176529815547338731660199964782085198010928322481932710645094569341825286728006786952901193719046614285380463052955617111441723266756721315425032678585885194012470196661068066573691820377205977036928115557553935368579765537518934150174043970464133508341603043710651386002690138763583984889357345115525505630432746851475377924040772826630455817538279872241750346046304295478416443488932865263542201312084603316215667456726961126312089299331253639527680001251660053390121424858045875340411468554459809638750014454499484188219503590139973371231158151146981073604335207696476610369238045471343722366630090185459180527882011627556314469844863138703853890930883877772117474824181783758638895272719514752837126472062711120933151671978485338834409859941068918117396946240124996818822264578513420426660092177157220200139268368919433736485052773581395078665202759888278668869230631640979371406089603548645798720113910246804456766771681230437161269908073677632800244718527550411512608428198036989817805830783574189267572802812919375636353315393107700769042676078641591466500494894725231127700742683447776248080924540855852482305053682459857292039796605067397912712066967222192988791880661969846777240773083308481527940159845100056635571679319003833749159625801330249542773707915267843976129757822120147325836369787142129023139074216959931500625409727684880442948153152438609173680611114318271963841729556750122616142119296456700706182935089681751075480317044795620744889156888549719502465353977062820203009246260712966443307688865245531620435166462441024724190122944022109101181244976389702666961096457476642366352931268961515707041693282623772459100460406357392242239733645775632885426323213039392948907168931694449299516491836326175742557155138840128799401510789899805837657304774373187676212229161138767752057668835898268874045577245177785620221619944465518547648321533865272887869729677554470108508172459482440589042440556148094412092934050165944565089931056759952120874056555682133761454001590361416581469827794623468634404310056239700157267660661797260516556750832734997454482860771221890382251611426713751922283368561211259803347007317691026744138385356163690514255305893356409116206679872286226507229340973848619417189310946574794449539450169884771977654745768525197590776740695217234412355107494974035277527861244925942525846829879220819329613175323045480469213961918926437750871031456451509601462882278390026226327413178035627138304126350432355484474403801851276700211950746662414571585656066958679201311885064598818355750360253302907054238338443024769101954327392691244926489661363576753538174833436809730960223944684510792063844054197086818494520493386734553745568691155183015060330873950107102222041779287540469789775420563621003941355381843924712185917532692372639340273056464874766329349004552017348136447862428765103181367165687661225513233237182929822081704654038729495254837499392418713983360121307715616538459266640947115807812033928842075504217198307565200895768225031278934130953586029653964218701839804321203967578623210874751542351741832982202123964641686435324720513154463245549854101280403482602623640985587158292486369191756215113854325005267275481798766936511491198145205587392156491259230921991040607054436354368861752262373509708595718487532491866328130432661058466686515236578276040976509775614111397377393108524493785815543550599578885933220081975094537030724271961873832879076334590987019782657843575339505709319949622173779607533991840402407246278560387927634273674817224208351471145062165417056432946227291329594512327382101389547165867686499089888590626174015598670579759377032146490295922220635079046493019994896222170897066894091582067325904587502712979254536149530405827598065316340531544269758429527609475765936539864193271720147046430510216755608916827204648679440738137330584624072675544863748299890788917124670678567690589710912282933298338282736972578261247612298870105736677372092951434466166571288774281963996804422999235431586713996150861294351676543164861946071164641222821196682940120486064861014914178968334712068758970098658676831337863221018209396962861195504927540678077368834222846007032385230709874937106932429939970161906436524258518314520933443650092968270438980817125750551823644261485748004442620310782044941987912137503205633022024028982648307884338620432692646236492211622551074321921443777898203521773071133668622771154158267386182295105766852012604672215396416135549367232012814407319685289961452631656754183859672967568038993232848264020103974607566822176221504780203713994766663795367064401480344747846639216185621448104346804079407189942939235452629643304367660027609817169097533375171322653195171660894971377993518608973749580978965309149524667533969679473524423987003297318201250402430035981296498253846635578461791316235238155209030427863670993647829565280541892868561075686462156820962350980728196792975073118767472312516230169776060012920658269761378448895364321903797917921833374983685205922518739102410632365841604354389196629226643401816897708554152617763683838924416354952433083158684244010910940842077712065103551802702229433781221054654064041880904738372598699165873764553194559532547949795901444685442642448999547966080968934507190783166666113107481345974251575011609287030842962583880600209106352061650372973799557239952000044617246107182131900102608963951321864920257109930232968319430819713395078195263544034248867667498083502213511338387053636979697945659567870600698659377972519004331061142035047724486848778369774829351894785246787034174387922556337814776240155735425613075967054738037211252824975713005113566575708837499512726098422091007625823655751788246535191995888543687174259559477312735188348207289653385839985022972714209706377293832653319972262758393421677416863717911961742254046191892043828229803530132245675319719911863276279372921410321836020908855302645828425463343629840032181619542986169147124497122875513504812851030921564428517617126219940531570507329940212032197289344888694444905306468694808354623981437963470132883248153048624562501606164808674782935235408516863371240067896382090622582059658305155132312028067337624809171048042518751051583573811622017418508034364330013416600629823803108573724161401452374787337493865697405648445374341016490149605611200174936003474466579726994044976789422284055740436694418917170062910029334640186278944436715167744098097606596216298487720167284182241732600082071948518476328435857451323425407877913989851093729011220605153964161462432194620456998849719573704165495367448674537328375889171202804114882620097387985936510484514495602691575813680179605860607764859403612210532111422518109080301574069572189452906681681352795535632044913659227545719374063830884630744562590475510934504868982463039688953576049061024039817344199204533170193306200224235165114457235376601361672953222546105074531727939027131608603372132185930374527300707148642895608368607415668516564317689972773396540535689774768531094227116324396545035599696250578781820039340278659742730371559551044731637913888346948142216421169009584935411458221527636636901859647393179300037742639773270389915290375522328562659768605624354660396083427629441623241881753793572239256788386717734355710851822949380195633757455201703526695033905112558802044935228633642191680994535196405020152787767939569129879347601434973413079137090037088644410148358544551354595632588972914938455870829069221977480829600983668229786541294303387344253130078744517525210658056467353149932786605208253749546227997557112086294317977131945146801870504276983763909081267657678484662152286361601271217595876396230067397845453838333750558223652111571999518630262268620730678235384080427780821727252349377580510241077325874738621397508760605825123461661506054247336219534394261916549443702044366651208793559880355211182026319423719046290888082500836489810198594008741662549921179341090366214440655166004983625133921285718800963789249381102342561577123171501096631091299209484852599001858311774015551360073939869046844237950850939459822575035453657074772691111277182193006653502031230390632346964662757014456550195101685206550474455909793688083890295378423286455206189580384981899684151940801988509649515799116109187981432564686562006268699828430911561831703637647635797172634244915457851127961480335861338958177695653851679771467756808025437554863447553673521487747028127685322229871434371348075216282349517745513634214763950085470630604882883293491109206208580391750133532082449164578417470129186181021101411074795481992896686402741948186831715001536910111135963249134779811880131591495746242084006779400522121248879354381257606666053776443782847546045006866937715167088071590467587575056012111711618517157846426173351217993407948424387842652092200370437780606660571258803321054672524513527450106785844544878415025510482196442777772040844342878634416134660361314975405834042453452938157309115026876440852847130750755992928130753074319267457709936488190534300482298954478889484205961034362480567959626259354399754800042397867270069862051817640296242220021602597743211454795387349877109826956524421581632762449468260595233029174662344841943515724083010759635225958797587757094693218282947019193138717686594113367076378485261599730411308587192708420146327675751973633648030780453387022800529517247739366688354861574531449651666696527345763760792769990108476026458108351166835943598151910021649937271143422222643683125380816403442346252551425636350301186550191200160778402600686530053027555674939555038464508150462308155345129170785470472497915416268773462021706294495164790616893998937990402779168904172653446177294848349680548127479266181920944035643914340548742214921207476348900035008980814781772654387526414937625424545166881570663841478673739102353059120652404778628837420306906784752409498341958461817638372582436303343759377303355377143893525477052048985765446535272632267929504911601501080172632694722076880781346236480442217573891987333896522733848008637646605418336659590942754095094787541008184289286350706965053279860186623464379683772106740911223565840583445480099770690201882977305233960583959742300822494496674979675848812499281869469477356358824884529476603314676366276189376941058168762746739848190147091337110691474958585765305739796986275776371261714042506626350298799196563075606987727663547993838183273741822944887497881029614076598945322337815482695511062974716898589054640603500200218624326762523276816220447711446503945593295327823303547240916187593829834030075451772775934380128042425826298153528226848002721983729979760991306982551042660923468721651375413591139425370201032455665124877137279078573386485647013755772755638080293255080163367894273516047923684015977122246793774093874737005959315461840478771442571034881248762652535338313546201882316311917948009056016214019345051550902683369525951227006245070537173889495553146556152044320428027534682279305372914488546165841091480939306696528875253861106725542204094699029916593583654018713356551228205307111719169830203725373706326505207048428366561161496572636028363533796098555399245778861216352194388257948724595965737172017639834351341828182311467354998185781178651787470727621535690143908773914851956472375353298550421745975682345615151104680828869719105264698602380864379818704138445323276308410186833703712407658394174201451526036499887233970948652398879168958371008504787859473958611253796926114073868029024266027729982690998182214527248785749143601472357843373024978987182220233087092323301337841833590960463987952727604243641900007029382913379115505977611661579730687204555383678529629426122252314525860022183133457094627592742064542003626879656424171337388445942470491085975966546155824205177762772785473351536757289861904894336093900576682491487697173494790876261312537291190772081585493298830438512804041907856371294058847840998373044405262422351422018503758556433224416647952266734325434048643182233235402590754521688513965414898236053129700251979222483944879470962009935882399124313055762360279018804026043525388949615769930063103794884894909111833078941875597322997369678758506078008402683353301373558076827200112363473988191030833656726029219670652519102746932682620600069407619353151721971148714555959069203501751230800073697017108237266373617063842737277044837881978645087245383723021217345355930434692486732690606443024489385561011931180408873522630132529052653884311131132921053804571402089630077319858214552696503867401067833905675920920926606322162596662936112753708568153897535388533208100394450083122545224787225949984289444325297870288411124341424948206341181741956790588906224023353808235793614186986665519988873718477376934282907813715987821878646257378626193904260925474363702072948553276065731432963744064975271491188555282434696928829933386051229693342904315339413897009435828829575922785067702882821073467441589960641279423149078275410582591468562271743878945120603991755224090585429644308193507114466678548523245568517538615894733771407228530913233573231707234368439458456137116247335555433812938239423642102131154013184026019692523721098997168422724680284911378643159351575985539386062236598644954379037564950476070440101292460822734330766922668073297294600819300699974600278768237128087930269869893551619241100496527117678146110815981327268765002739552057677391137603896623863524261952660494535621087155486303912237544186308981611325636406751884303354859283272356515963402033350871624436957418345003068424108330791971586786948660175589998013599331061335040061477152727988108900941614187117079649419741516222348785504109066333621367363840944706918669078892331415085769623001835383453756244102931610031372719796315535318776577817713712929168488258370466117379006639807221515265930969266314038902408595408556521994869525774317178733471846780520198997017404898279685107266421033803699957140814072063793076631854344070542851386970126412261688983506445553030884283758190923563507201320377946047563910171105395276317175398881847747587097775860057480494418436819879431934083196223749243430939404841066125473865644907042997892777831682817721390031839736993700986517953516307125183415644099146055991844818124536480649931301542576667044000071897434485468725203016905684231022106847204364696239214942457027982628298350392191183899275016396362048964523309258169301738302835912324846576833841757310798669927849786354796212022906904856973938620840625074120116726802779240696476683565465484056384891454071271956674811510721494563273550579612298231053301490663060807836922864136617080463864131564689112097150102652695469857833821549301954545709571329007184179784242546884229560451296332175254960362617110359089979396007734615558089937270066035430511859010663095020403123405244629827531043628584087094867201909059148880047586968370970081744499892678254025183632568006045337839180762410581833883415237775300343280562389789246638391731137707795841598072146757942559244153369817912198876298887952826972377488332050388449362273908938514213029574001948156353354866221575225165379942508429109471644817806611107364709723123167736861211718312627914661489206457156557080612131938910477594267482834157790175610245959510368388919192261089995575810222157264321125377083114514772484318588990149484811702153676080565204192610460468814210563876964135987934055199410470305835310131023573775628945473128813075401864480308629289413694161789660195569676232446431612011087764245519225228237020778908027898697465299709646026096792589676136100230396401043833860629457625856843106082488988797979921386742556457690196954493504564341159697538440139432402619690285608802774347501409775425903958940894455990430901106703951158206974007554070640722618974499599343811242757367159788635663677667895908872115073359938581599196606321085009366916099791761500890685122298978099754262627704294404218621593578905694436942501993223687739909270699955643935210335312835661041095826827380949708988933252146519024378268951389048326748504385224281694204893920546853683056680994099292076325395386767994201155761412024478421351061743318631150064683351514422616898052245055578973713381425581390713908784991279199291659040666142045440769399084780539069289060344187253876687004349286914741255688967275045093911702439219255513149693848740754528968690691283392121367125847302552798320975383030080632288421518683499530782716981331721162186244461136298418513685830259542630382855844389179666610065417075890135729122247738150578243502924587105470796063793439828615367770209200697971774866245293736849284083423567008245651545396219014953314974183844732181178362038310590249239486366796549163396068186658602569625869476621450811417708483084461758843788022182319199205487591278553067199776810301639140969865171226768939141740799717077316420631422996129053901961320988934387829547966976720547441319044523407788020125995661405087230768801695804137852000957016864323877977421480327289426154553510904236457445422265197146933779744036085059540694228459438216426426345235035426135045643571231860303625684644397504815929677674466140199711100247598998128658389818672620154081752109925964506208436521631193832000561201116792562218756086238794853599144863305787114164765077482818377391680003962784697869481917666912473044041306162701042321405647335979709577794264859307756727276621070172913333649447636515784461101684404945483615358404013744240454587184897062858469669394837240364794901460477159059667603177066375969794557591032043228639995193459830429613694503148177226914888065203833216541934321400125649655261325698559611429562575418939657768958065869910901945977728027014691122930764122102655567818090211898207894256428236824447747707563970316424807972792843041205538494351706455918997090921924311308571815953758033206066224082450045706024506970308574382956745524106644527452159208108325819532319108563543749952659573254388503527258177451523606804447524154899445785005369418046476225968794031860315962840345116376387748946320064212110471010903308946047679648187305719257074960542178706994569749883015258721728245392294938203317524758400174659480785768601741224438186181183239161689108775814261052270331750263748615439274700513175289555679289505872303874302789160188108520094607552681427472185893248291104486407175871189472485208097000552645540856317532961962746269673689547396440930534426293575204686305004067760500267554156803883748268596266254661939495017014076414043087576054940792222280170342514183011504032450605134695783713706493069349061925863286091215036482236554151275546818659625115558405991881239807522140440717245587224822295837083629368861962274681591301034381446821203057002138266452591797219537213606333989533543433236481157449875497957264616410950361424600947562266428462113271619889112632922465756429900532581279868185778981274485676373619829279960166366443218246413954889065987948160616036090720892786909549365257950581623243788588360496353797313839829703568143879208506378076624540641216294404899099526450599343228495146039184585822674964628071362528873402526055294730663077354742101436133666142948001480892157437666364546899291527941446991558773406385944014777638438384135911039001897208106660366205556880347375309061955147838224723006223302299231054145472698029646725816191159008869658939449683248037858727253670468205711675732661216358978023980997671888239718824587089261408803944452783365424530072362885434935766394173505907555572719759971518168663833161470113673449332205205022340541338784355816347446310118477088236361583715604061998937288801501336469082785739012900839449737853338663183962658073110688568664667472950994503037729412588074620886037537384037116259289975699876877400047360746205636621872012718896285439100565805686301646475728105129272440936926449491814454410135421397029457718028779818844424124759211636918547928568471691535669353665231117030531757611087734295958795435896643309814368479906728720186368287573290102987335147371469726065687558153564831130074734724681799491091444645613847085315616919683781409849505901451256766029103688687916197177177148042396419283760871174252323725483356664825938095869142668398042948491423625822383177429646447964838634556632825686183272458631194240253085579735631654588816622594685484472866746249571114759212047603184128979683467973851768371974344085754168064362389480387323573225263170510767378591716851484055175957129705380329241521558465166358982220985261870832527802073213261000042656703948738767817034142160456386790550087720368466600979653876949958147742160770218586849983852130916036484158606930417445309619369590330440397105524811156153200600518929748571831749412300530553804093357928670565908498257550238773761460241837407522458885047821010359574333244568967074763610404250058042276738581670159450460421151089647691195942099552021552823264478281203720918381029335030060894165826291522095719852192438811483228787721699814793269501565550809203424081621529431880087858791700580037403835225406737569298529729666052738999145164814093919974448526814590493396221990919236630181016413177529730129383300406801784372587730396863672169101842300440981170994256916666462312947120132780374524691235387701042655209076068333335631862609861797752658699829256770019530492078784539468703218305454832268921858787899141651145629333788757574036989849545097788257300359169264114331396138230058318290144853454638652158555222832186588094221279934191216152078743845552083460911637664499533871542340795515937749317316979297068095480385568396662446742348651472185515122803988160576718973883207368224335102557156266630052113609111157416909044718385530621881042170855404886053947559425513306410367449098736074005046694828474904419377099290805845044860807646577496018880191031061283603472430425359218264178528883045554242664517136082486644672053240425976219975333664730515007238951516629230535972583509755907157165868468985818625137517859003562209981601499174857797248834335351815876567361881770799709169032350299195568923314081259643074816016656737438977932001115478909142552085223254274298263492028922569774605968174918996123640647369358468277669780416852965105369574996378452002542865553975111520124324539154777359718532005044923472758921778301670827429664820285067099974394368451022178773915715398765423817363254028820694113528099166558849572025814877182117922503725106351387129481157599893887644837794753041345967845246615844549457047440133723204432872471969477044888394159850069259295745607039231014326028196493119567277824832186499678187426190608827645460184358910463937829470985051768658384253768431352762192399037852237987004048689022619918057943253514604930585462149941051445101845494019950162484675806309020600594105639547275461664394094015819038622025607591281542030974555467684632604129866074701785357097211366150671401951636087622087437202877187936949152157838967566534734054033798254826161949716662923372023118324124874813627346800762802798320733843966837771387292086428329826110580768939431465666396407561778235897774423973816582309190660450079259268950266322066134080765441008439687249266190872783565807021539007921126443854850363675022971508022350207772242922076979700287473479737078434114541960289409468002699868733240297545987741842896670157574916404282444867617209808798749766143823394364444341085834699816768965544258357905124821310462972158943640803884451496816964177229425167105662828961477237226865771989671026676136487444191842272902734479814230858683197438283024203454463771719424843666052964702123869938956738729675664832314062359917904515142412928072946093903648322802415396389192049870855489771384104315347549303819797414830549368216928226925837027734788740130320642051819543052371784653669129346572318818728375500476402299864098924889238643152707769832589573147015067838902213690793469535433464516075577535321553652196774104972170757084129162477035107975570278989203680156290842428723026051534999873438446138645244971417801884586863248413951388993841763033649626986982894663406706438757069503496878025313769056207233096535487535444696712849130568547995806164977770842983356358732906304852553633127321673945281730169837486527458014930360952571262800075959958344554231363983991518319469443710780681074921308158140570890903928222317891850329944117372908797016217825830650840944246889540890002999554032146296657151182682208016784958420062330661914361657971987085586375481992012298327861273037660216976764295667536289363281465026015080877023079265403477404986595428627734197265079535581222935257351532774800567601978779659203909437143469717579951325129858889068927716821781383708588958120880091496239713802790175165467163111839451158376442048658919531431092313796623851696890023047325716625382390514235671768969669202353379054904189838760920437780879896727278347171312004238961433378758338225204640217040040493462913658471432866923348093361544379401907237991463431073882985720051833012514346029450402308405541694654806622587834437010502617171080586989921136479817196217217327308530599949850645961403854250426479425283407445211063421246581956633380204332681798386966641744935032565591931050873950131404947957615613337471567018800093607515948150580737954952129559908720902692535722756415112200312582173100897073819632869349032357166769281365777120076744058689364053919930065400636238589603152783037236107792155256725462046470488530671146940713522885709134663194963138861007238987019706425819518473963037716634313872583368943370510299423976757249942741880624456059641584748248567956355394996712431672134439438803942044335193032264150258087816508546197331994308062440425481257140159576720837602600033479532195854577190789521780319020429190511100611650473893437461819358617644412508926459048413014295022561539255333412489904460210721913483413039871766586858800880123022171157547265505480322181523556256302195723963375566297705976389867047452967622773918359336382581204376139639395244002660138004061345985011803676559369594116001342989191303448111240003561139728511616634064732499662280595525894734841495202346965171065526106101619989118439813800216589965186540307077140521022364555612366009877851898699721485101947708625378634985767459841586071790556820789625987651662173675706812557636476455150339223028791311925463390829804615250694549543941472054393354412754226325561721742421245250347049326321797077511630708155062694921543091870980196180476171635882379738528336214625259998728524963940364896029770350890774411496798362382909678779245339731015189760023148848089527723340336364149570888387961508791067833989604751133818758635329836228865007384992178120466943432914016841819734387584803508551405323316838618262062587212431340886810170811508145968806143977136079381661263872306018552381572685563208082550679729909599325949313810786026712734542305912955998832427154177605845372652947014352698845103289713790247491735170339690561576792474568245452893917513339034619191279486321578184208187318549904886098564065058357638722232075527387075877409702608840830715736209402339959001989687149679611021850226390865754544979051877985693161222374350077905145195625808990697701258858444197137886152853389230069634150071579619118084246419514113267488708281827494494274394741818926384347141445165763869989232975010980868437227530022497214322740375713605806326276596176474992181855166325734767199675612910083089355553608834060861425420078631045374911722504901557985880158026626426464138888677086763698340993033258283612358748686169509743504654829958468405356676154811458663555672435197433712261519943075682387078723687424533139365970761453136445576416287627142826855849022749898548474690120751500274062839856130992746708125662682286812712728284193982921323527270579801317773188914494074286650180659501656507234891691513743184262912910824778613514351027248814700313392935010106740438550063094558049036683820764668707140557330592441805071968330403053368068152017120494618080785359942776132400037389597798333962857898467051197043843822016677308451469342664658155763437993392798567302416526822090287606211519339969780346371945447057043459738928401942994392906995707628690499732225943662372947498717592731989512381143768017414825321342049589607612712201650472675151938155974667502585883145609465581216660078665643977369978129579081628662201301062879747510376132821115303336344485930449423654089874809060340211865614008335602457491430203410752975961282353103181493902672916397169224300335257918902839333770511619699808347041955397868018462773340756716475128775800306107840140082585597774368721487830122672470520265206026855604447198431113244662293159231345023675738608114439589843236974002705096124282001431482574169656128899141812580125105235940370388397439004438696835643716370440230349334454048653530948594109767811491700970512326701415974517696828598391402038919701092927582897553081934219316971206324955819865859739913425705145503114480345442209746936384437704468187420661786655760382552258173400404049638397642497354649075021328635545189330961182254766214148842861542592216758795147944273942963138682637707135244996910244421005237059354109870092900178085651678904573597616518331661422920628690213048840005820003670618502305726411950963648915770849386810643937686323522130300030303191370052685038093122110144222233902187717496623005632774531138154011691697599029705591315098270111231799818344578285481180698878399057164045064522309894967740297476324612591432157011567786273372874985559975207812244652593852247244083445800117516660329768374906341596932378145968355742248045951511548447364663686929393004204557788013674676611658603075389152770721517839377895019546774179863864588611282233315779867080375789977307555226455797181385074736095280420140941972034624541589297841164724969613120701666214425253410254199778301304198945985800269406215822903648697037814293743600495353789515039140376124149829517077048254548872053091484151412823077261714665950924638430283463921576252043705389426521769443228967753466722103952430708205881941550118612015132744080770613898261815303540276138208103196079284357599256559115363589709800013954907125054756021361790543042531400545211666599905415455964150176210357623539478248169099136658024561461476190927564945593208899069719092944288383104625588894246403904071783021189249892400048743572395451500400270502145162296867986517259436084745787502163465153756418652755699065224142892616580755570920467178317513789967962105242841136943852175114047423219696888076878347766615915074930147261963551936192464000610608479276697963643870456107481321863757238640900908604111432253216496015602518830774820658876300842319510596837278834127171783511583272771097408076514010003604684045971571142617162575305544372522743266828342557504225789606127819083144539852365872502361702719580313702967512718374894230627206450320064834409843996846729997752723154672122066824157509048790717271519888156239222010446378737986475734238130103602774623125464349923013781000403016281641376146632937630966516217091137326501384539169763684818676149481118242566778439272026091177713324766603202342375398654963335813113088976841825584067947979118360658168918911196666180975290885374672736891974337173121335389771535098323330218578406450569659055604273886025219757019699185797220523917807486080802585889921879679893194363984501319833835981788859044838210502759472721245060154343047445536608993117498010099124205258433181138204733283936576432146383159756617319824987374151208179136657166067928746082736359568208145526427791236884961991605580358154555722510537372325311130976949393265438458362503796178889813512582744708827356698561249016529025402482947349989756334816548746993723287446117134267128776149483233916914933020661092990834782941968819965988736521525735139483163100956605905988460708205290981892665332090456959732216962207483607066893308817264608968258246209521446568538461539122423297090629994241574860682697218180405905770581823513289893135650516341151031374050688753329793199365971435795357079097152601555942770089346545125412388804335248802956895552222611749064653302840310250143136793143451497334292145526210478692773107089489404116638566078274055853685652327257869985612767240988311872765155025890892069894568917331265565921271072389927437875392027217221024838216176662676481038053042515604354123485669258386877959353921560658543702568869560010644071103245035921692766951141016646853240325176373455488303330461916926283896753240344430826507756179124151076279975450724543989993564898767907182690804438190783580079365970553215115989292717586096627354627447844770595092518484640927694966078211119833049202791263474661638566849118169013289005097719399129760008924815457280827301237653969433071043029550420977620973521101991878881587539918179788214556586000115869207634364042737418508454343637444112967949627486098383475040715285222209482373101407956242154921008426674074881247245975104100495339153610800003645272492071041475580881231731109864017027954613980920129913712923109698636767915229873346575183194384493456017598810184263675206715644982590548012111672614040898922139342273116583164133883032165189402590868963380958819334925838713112848197759160023632003834900052146223384079515566749656271475982934861608127748725318461708302892612722889626790147402936158597337873514610584229404960205310303647499254257322238044293161756494510810052984725269653430345166780262373867928958964016269474222411399799357913768132231137826563855492863671687115366762734201425587994204978962598914320996520265492040666594394525431578857679412018013913017683983531079827065004641693278928669330721023192145897344066985837886658104954225339675249753986530730173740631106168728228099116290752536475814674093791873777645964667519264588169979800069277935025180853562830306485016917945666425494976524009540888122206311282460088159456207628076239055421838548745063389224351434603944636905950962502592820779047344198161855344171849541046461033708698608278374152081904784694947700312120804787140040405387807225431392041861928196405651420968850563338439197190100608893054055793524129169449577120042810417039600293387709060884549417178084471942844598709875193119247172814887442739202208913024329230242048868180165801180998311041182521925212543008259894799333849133446051061080103370231510876870787376217057234428120459804234756481292340059846251167908701570506372322415208723718541570138610210215307047693815383901268569475346728504217480728628231047388982200552801578178058600319699702690638572069957576094836327651322255093108899384106145716039088407237140183470918640721983726829467603572815060128723145004544595878033339103045619630529110593139371657025391560270415746178306375097781306774833363952744946241816974602776796240535697946532935343369893057116655714066242389314067512445371140507554026876568934118465115325331498708231410064409596662442340861929321314225363147682903723116873168140738196255953476141592391950302202786525192698812472146207227919808779841181333453324582642987489330391694151427074855491838700486522818389088545742225464497213408364030109921693502664171376624290574496678653860485074046467870660719350484938931828622515177664484327360603621720042370018099432222856042772262944085953047898209553558710412641947303931153981961014501697996231449729771210103072538058672850918833238144275905592713349116221989058545682149505026377526963004237202581133610634883021282087439548202867844451638733123560028810335698653432201259162674617217381399518327627548057923931681928247427341649574992506303633393690542433579718163087667477848739261058335347331742502238743575113096455262326963619178392950521833451215064273117831061602129413067204418392888860318127543877022263589081743003236051503930771957362894436404643790412174292031954455451180203924398242913904050826697687633668229631081108892511023491043156866449441116207853118630727552481232444048128577472840767276945265582954799918644306408654490843224695371029266379386501446830174797570301328013953572754679786077752242684129655632494469060171019880796088168072491372974933781159210881020584928986585765164498554751827536416202825399813080825265371750440646500999479352098567412639926103291255032234502914748876278192073228600715702052953071520448076837231244072080607090079783855722722333848519588704715301862141418962229321965561266988564296009549739407551134736043557140722788266178165018271535290645296361714139656391025468591935427013340789098317367064845004512050299003564543996548020581804937936695670173518658198967488462120941081605866790446188949367065193105544400050675674796986323734749246329895473890677800248010450529684943730916012305765787808388688588000699040680890729738758970372782802402780971702999706791187082218935764170849181478090630480918320862360474272588392013265847790681029610862197786064893643618753635819671556257970428989961153392700958464412647213575557063006523144789905771380821221453637936754582643905970378110664411663439480184693849819632398555151368730250734648330585382981559665930024148724846706529560763860614829418181109854691542945564592990687505602875978317266960951690119011941447090054341166197464652793819850982745012557707030002813452282098358541368036883515122866246439836416755117125465531953140091207065989020740655266449300993581096097909687031520986196735697000460425015720565599255410984357418459467779020630542123044279502735456101468429863273063562922101447968259948831716592847701865047261702043269168880284592132418427555822888977779510045999427627345807252900625095479092213804299580156392957564185464827227450867910076641575969085013258621215655515625535769115248905135225569490026496122667119686528285454524953367724794175713389460335640754169082119696729736358510276039061337314536330223869714311828221300309579468151378375993298470298695786323405013673347611904808045132771444145125079225074962147055404624980530256691000677908908902969453635613143512152531344262237980839762802358775965518398741548609026743482556069912602237131399160679489989381648909971424537898606200848674026565219663726014698912069232615701256667584058177612893547382547174543965708435764164455730413338213313805914632066418768521137050711209881730464229259415592818350018000957899630883693613579549135398222795177185743982162922227311296868869299656459024858828007308098128199956160376478613643821240576257896001331943281666305854434561463169575176791066742560268677366482976853163477592060423368400817035867033920122673586390422675739832211836947856436614329658976732350023888256158561354603916975936491197233161547186799522933395763281432880074522276266387540025388996773417211727985785344095366427745955286091720170671650795399865669771885658336367654035453572469611219216633079256564611985878717614753635785877892610087574569952945801641419963139943256914954480784714387226520731136902563776472082721108745422590168794182854748253918503937257004244099217530366558620010705293421811698834846042760392766999037645339936580377293983396000214322928564424574861425582319046469296899923155754350399852430981010040212148430037738104423914169910374047599921760141095344705714929996791340183245432132931814912017175526009982878019500197926735151149377297000093796930424909863202925483186581058556613937463601832960075773152229929055813106647324720004550187843582401642143771233112072210161341881930135342599380061465194755712699699938546098625097028401359776598546199531491986621563055029092896139083572838014301635755747422059692215925820348256572188936198201881705855187525575502085800396369994635136354665903372308197062836384340301862622983873822965223857223394643499436953477902323350517856456071923661389208848450794324626288515567885586441040869095352511594372592652996056932263288412748502792154752277306431111978124301016799422308938749660457216375939727262249725719963511288349384199747250142901923732115277205639418549447254459667594764456255271119622779107320237170622869627087290063328916963475613251130362584759853305494691921097396437640262853777812899873616156090080097064653848060418694900450483232671725286159204381672568211175373686605281775965835223855772002584744629421327897135052857521216063105066605114474469900213789309190949013333136021693312137010151143489939441166148806022417447110834290966766615998706450655845370686949253313156859927698279447673392397841893327448901869880002027065726746156340889125138827606827349543676056612616379707700801744648691951325664153286643019016977717008961644576170947523218710187409968060972337232400312348774594492320765591927734473051938919520449528165025308063706887124615899210437722540231427410583683129889938775817788761441970836769056965081625557706128795373271692133415265729972994299227785204709607627476517982785729796007131733286018743180071620746063734270858286438397907627595832442568592093759015708094228557489198775128651632658321030036245256585491061564557345132843241841108581194373489944867493812507010968659934806726477710291682040242895015716827705400884450403013331144416099350591979779556617973224004709417193882328270929353011269212973528172074522062132104736739643786756028570960439153830831339709857898874049384960040818339492611929703659189283105508423840031401805228875840913875180897511066535245343548769553980745949995342162892531430837111512819447445288743074890413558166484499491321437315303026277566394231827747013467648974780336574396594459066613475826708849901005238128502996088096415534710121540312212871748684056861523481688644018285201838641491459897074958760038963249765627524714100725626043237343803810579133958667188771800916742793064319216653187282314284697591916962101909408250250603181796338564598622080597620041126422941133792813966328557181746314761885309296010138467434966484289453237783292267051101726919467441515058016312925578295488573814386534774668249011727337858877240720328681655655783583111728107624322284361113133285850156684416342125793185114494476045241699016696927175502172695082276261768391813120503279970608204969769552983599521840496381743641608862526824177748529018625447260771756521950813544030984072821018588680375096759636968541717757810259741734484074628101654130138259446842015655303027401715704880012671373680413825637427928429899920564114502041697412665642781824344759628844613806271265787494354750148440452445054771192844511371479649278590167614002513740870701007530541800050497254797752313416290768609859937742271118891747776697125231498020292439285681443820291866012386954894503631751367679420574055897384241275533968509272595648586337702853190370918538824080050079348538688969361686471269029142293646401626033222842830797826217741349698215555337163558828048585970828190604355080791511667595191177066811395358411861234922297243821511501368451200505164377313631460673702978683614871901201042795171006788844481227665810363908899439768604438588161036739496534045540031318083945009167107279903046659514942968100885552623879367162443242410448702870781329593275071882919195429443424920817530320457366764229808136339537760395550526299375086379544403825958562360588798228334274327912282998065298883770658348349113686378277043422521913936600380934392426322634551135388675633300395080896313121657757941108966194913086610682311427154668264464994590737213468575742237638494807457321882452306658862454309236134690250635011598023754689625685682355132275109534521464836533078173993195443632162139127839036490373216953398319658590364037360146586817614958672566174554790659945442371719878775297921500861831736209130486299938011425942983995516241325463373597948829303304752154469926675732649641957983769596796389017764019853073265670156211765373158246889793293031957916395066272523366390386515720820069724476990317382853198380384076421556769846696409719326439452633905242972669680556268020118788563232687483484612144640832396690666923988048973419125942333565597089409270654130208756875895196135380122434467467943396420614246787842876348092403918114156784686778566195023997221410712720496799026788635214735561026289317469374527392385057175594717861093072990198863375156194539077696267531888639830790437274074234410978882652865905785337021903985490782425955784984250910155350474856181716666179493040609313891452095267346921366698270520335002363785841103220490398985742282830167050061597766207865418521747779154741698328612825698438402931187464694200950180785166892193192098520271316730029090798741400961714777945412383320142660245632522274434785317720563360590206133553000175534032412486945470220232747404790442278361650931826062155540291045639121305599346157908185359906326236140396351548739554154041252610942734646716412438865437497190998493703877025906210303580215615341656988909532439556524983228794541715420782743800239366728318755789405692129831746172050187313180949789063405535626012176674401228613452688857091090663500436497684048213542719824730591438445391857894790961678482341333962042039822985482459796645229420403933456164776115129813447458283327247418957048135791407928796824730267098232106976985518226758360310876111151476932432749405162530136672394749341869296959460652071494347190689047054837121976117427618222163465973326845943799336512089354645300111416827775780686596413013117065492243780597094658805527484716967678732137343854513798825316508486308601218926491365201191438219213980339887464477768441293223506700031642784159458680847311388826700510325254764057666736213976972516385982443429720274836620020342175595625712845047612331317821806040142194105325610425199830594306473719065320334318842904951483735400010266293018587643151663067592439152798567394167484993935450915344510991490357080578579480646629508182319834665052026906286837439164097203215061426818447972881591859066757083439276555971893654665266741620971109351589406339670815345622984037591902768938360657577228926697822736478396445666383407901629065108528322043601123821625941963024110765980982102584477142446040783577320027360243577990753416607899558040225722465952403657727141757763929474213697888358940677733442733936000837605371932075371414216458336190648035227705064994563839591351583223910618820420008316062191959947993237872497247579954016177052541855575305100412550190009068317099422515026036422298688343175658766322119444657444435467054661040488907355745182295158031902923843998399623356785004235378807995702883568593349548686212282846382461743363214192658516231390070481421125424380916026578244907382585034437591541093652375450572582642330679908881528373182976044538169219013041935310202489573311291217720123248029537080033779319450180413959693344918485076468337889717657163346012213248173458815679822730518249915674400744162585666169648380081389448183588499139984449714746950228055696143362555742662556318921953071408887352686883860545115583530766543146734421254076262772985610332814951671941947789313028844613252439504467073076905496643942339129775522302030924879801837701461188841740692126238754498594977010147821166222283494094940258364399622437989043967933118145667659382935029550094288166096442308066805477578000666312190312132445269619875408492128786835319794160486118278423221723912266863388750850847081370267889183372767558106711842547246656550083406043996135098012580837433376940733818159262157342546742959279215632677903056200361036986736475189998467574638988699621348542536637676374740035019378476206113845063492104693541604613867806062399400756739993610027536050093608372045278461783323258575158875056261402304996958409950259813260987204783520681772564593971310295126563168806324157662739188013008509816190463194998179738459399270091760754004189027970007765416663172297607053722519207203211339126559075873714577602932958393745914333667920733783555895330134847026982140977952599274957896375261252973592549727485179322554027269700456818658473878588694818503909463507271217136172077242924564228005451259266241549483677132544771059760469226918048042324191926627627352472673447372745138659226796423277686863319893861311548207745778674732743870205464037221557154580206434481408820123180614758619954060889636896578775971673270082545524996738312901747126415435781508263346873792530446039845335477450342459753323777619429652654887136464534489567843081263238333613279036894443732768427692023480775588236545296753272668036662917225705038901613468184913596460384791679258073740218711753125467072969848252374155305800063810742303549668188802465268997126788172719034247542524359134064335949200443969739531010899002106989642252261573765740194897407720489130298122127986445359613930268976499052568572880056826283291160176307067073258689839950999230297850110991169521909012664872591196926607888458428688842192653991636698587929345494581828464962157514312253911754063889585666515472659439406913056365323791338977261874931894951399116533185744541815679296917818503147899473138637574603906978268969029652914203766311153884022481894402005767120443412792887043065542065693303482718646914595162899891139682622700377901040567483684667649245398283305507500531051400899540137032240789549437437131262382826147122383407043567174155727289174471254367346903762536182699940776090599372981815443360653309373008960285032799815754701835402246229398410923371872421121806460637643880510617373465389164815930326424501785772813644094333511061186239152076002835264685098337693933761726531263690722358459419862882265598513083190948284535588350713531902760406388173848403551644851984856806183476478036184891246886455387515695375936929405115248144429369829027564784670774279680016810600154156870925788642392644860779855403114883038288388254283418238793527484961211855140289981055491610977972041265814370043407861201535302533741081761669545649149493780163380875749249894255128835402612490285430426787540026514572324019904518437152774739111497131545730610101224035730709915402965221317255764435805080894633952645559244299123692177968678169966032346289795152380818424413229297643833325045395516550463216332496043508756197625124187790170746709659139608999863908545216419842843274758357543524291804415673365231304000400527913504586429308140476435794542671412816147522781638139744798213780033603515912577536053632105507053916297256381020436984421507307880283996901634494940531765598079242818955808959002426058142932336506592583295992823953361342191284113501813536190112211317412226807204357184230504980256886818325866949256172755135181623003450070921597186386369157993617723409040842152041548188537994876898501388472347747740796353379388166088178856967456875904638550060518227098736773184196288492395803069603115472572563651996772677797155494977046136950637825811105428770878065964558624630240352452146851403194015621567595682467292407864795094021803389678345850193945568773386222478437093883073381320840051331194976472766200206605557911705313919826099315370222603392865014070685790989232241842160670676772474975915502691901140414878996188740434305907807459631014494793640442687277208156758301640486036796886881750745665884981534538517250170365076769709479193342006318274279736205977406540105376892350010539945541174673561459680294164233030567086265926347343588935405912876547536190549240136582406555937423696613650503876723155461242728094304391893421287350382444724409094412182889169522329129943465619789956109446651920537337254266597086758273972580772604769687464540333401690118992330147491839486325377270401644854391037374664907601248848871291582965051308951013999994086514538378608473414802582783980127288987482241234122744624030356674381678591031938531175070482124367546552338648795306099358721175449863316174967601001141560471757405022270148430297344972022260765071284574536742644983255399484138040344649933182796287908690566285396715333064173545282328936412054887092080658814464930992843820264092738265311390518763187934941900698442048190320749810762424544251150901443906186361080213049367728072541118216511203262801667374834395854267975690397100727637506778194695929168489570190147743124256845693716235173909924864698980076946871530752125804136774461022557655451365377033776240674281318851411275111051115266194396140301256323000599608237723802022291074120582110720087157070184284707145664787683408870134499971923140721251650817577660810847503117508719818882250053012595703210020601564704782913378377960964026692316725866992051127322181251159994235052984739947097106669362853512871749894979540850967535261981550819048343228668634647629844712601706465978625046476439005772766334281467047591347131384262290874565284171572830318744178553058511678677905976619880039584068905203728784180689822513008262779726580289582200252700877263313626651721922267366173684258951572813634064326899628600214420321776309245382710269184709154890813744209879791070579790012069958548239931005609065609275327827966778419500215709685790507922484138264965572010643268919748604332640214123584650075656549841158344056527839605493296227773307874349391827682975692403183353126991387522017016700900833222371407466399714127048105751652212978593441593572384999156039275060506657866721245444903162077232555830588296407620041832263915731162013148980810192549388143917194832182335940945899528206451788739812455863829356986906420204694148489394000678843078557626932944114905397485439365952626615572264656279997146592042180045470450648588198983671560873090190000130451310305393013421195914850964790712726286438119800529974309372415971395287684634469146088085340076013305873973622126782395054842407435079861632242434871020340847907343510318375332396714348282776032658570874823061622476318185224106272664026053725291352135970926741079277086143634056676268904015294728392132950336965629821031832092267374994296140216111203037192798890857808191720373364664682391395295699304814738058153385465703296776101358756891092634031486185333790966597593713789151251142662198416041114985583885914234339746809528864232938107936570231863577388723165303572605892724604102962470523051807067804444783304008723394332074699352729924432755101778395827648327606457759322665903340156789880504222097100393239366425109056978272584288808490785692973729394610865000939789537505596333277738111695606981773838773260805009006592317996721858873155116818272706675243365648811538990173329451473395793448412738762857532956315143455025087423932502641026416715069882295596826088594829202102135107801086673115403695853647406546964357200153867986524885990305373641996088412338282359414437695052850459720653005494815448073139478356095435619651622857370921394783539123573688084590546333307747036054998780493842894342359952576856751673302973456036987004041010092741818972089908637671517190078480382454160294508516157622581127105434461497998653988804139406939996499762222652332576376373421274583770985882487498290266336331412685657265073718153283143696169750653215217033226359277442500959733195832401935795934203991469285909621780607758192830241251960549293795396130638085613071415609681411924214325873921134880817996917892879097277953414958495919332582832146394276761950700897170131392703315806967428758927160872343342988610480380055200919662011290475543031842267809256534712147405146517000623467729911320067879257484400307706759337594121712924635174070379511351237987144580203632068739841327862697566099187232474588421869966762417208293420823491163664174417578533894844543710170060237109282966370339048652600713474165793954095177399736101388174411425065567534077044674602238234837990512968782129824952640780581051715584084179782515395955134621128698018530420526134607152325664498865752282666170109454320706056190045143508056609453690073723480138124641798595143232566658763545762115701349253596227519659745509912902651163610576736848970852017407164829763468699374357418612332808844423416486750462170350666813147915238870179159071621743557337086480904458473677418843243579575709398550777977475828290828038304989575646011173382482380813101395128179168858059226718851773737535768775910682103305564909763157670093727842816582845558558193601700461497579600327210385168684510953017512169504957094514854169456201656972729959208422839538559679458736270122908308198267001182975552020001117136922812860662830921690328358787457155240303356179215015916102015945727519747792651171999370962671100343682186195366992711064809003483884035901626494929600810377823473366872839803914272085301359482245733798226699157436591771145698337230176565451257287097051429923524980390693452339491415701484912782432224907323598749624759027574979484375566160027028411900206673564344568231138088174261619500501599058821703247155430349850168869438689710330478077953329537073036403848144836095330679261948868046498783379201642826657792774094659552666928136693854346939158803779620794875839892915043531529814351999599826521424447688854616734258495471097129752679544126528291631636896328466997170184584753647097457373691430843083641943182735472056298961586778296641308317588155057418034304124363874129376171768972979663122331007740962319808614761836514027615739235245094931645790956204412157853836069609528787608366064749059055581666843888590206730739081977111497370066103697180893926320850759858184579828923101317228908245293795849911826958984632398523112341405806714744126682881928010361003321248299267247362841800625359247694598609619955838315222028789150909977059709315748339898656804301351156505277540847959283509035027547112813710640796279799241209181834511452282137716244887838950065265939432172639492816145845208929080337938679667200350009667834442003390953419456485214634871528903072077790728940866605259144460051786506421212050914715509888325303882346376048562855100811478179553488309262130806104043001012568519234974182904554789992260008439898128183097965518778145456474357944667581797349961884663461685339691107727224480005861024088837561259229899753585861760497450185965594036658949636411890539444923418766513940911012252012085525131037720103083303977399363542906617886827819712426501247198025950422859991432022082438862123752837712533024921642741938443041210179853553800184411814881682124727914568023274105730172166522904754288966674976595032344295213469672120749997874845305752562609082003113683762758137291854357479254062808492821903571628092371653746957264314954650351651805743314495763795910792032093277869966485609804266625825391773741522008327416021471053132504720058164301790117444405139391919882269816128807302684588785725400602970250211334265541573564858184035241750211441187096548244459263291696847145673780285009935251117335995574985795207644915075241412230600654578915125850836622603582054891936342396630971277380671781810413144924392430329754208771190726421547479357987234267180399099931170049695480482913732445840549492152636225614563066157791863782185136721962534250265985678432186799892388199211837069820416487594651693263071575784587748865066439811022910733380223461053079303448635853093880833854776275323110658805472676935180350779631615968468496372204650953532103358530321111412887718011806544886109488534788831258014390669352682666700434948249789267329110783307492567462810732326789787664181755375125941132903294228196130571346183806845171695951025631437515810854407530924472922648730113934837600684177303097497796229356443752118863487624150878399538838722934780876450382714843761408217742116371290230987546451340015271705485687125250864344046085817220463672458907597766446691191796274000033639467524940070636813859164848217921744316376367704594286172692889827429863505175037103309414471102248645527247034343858904685906431620045853445015969531959015273480430058178411742362934933179567590258510181256902320092248136508716431970362994360246888401384047856941756651067556810798682119184566376467706512494177751506773895753922327965624883354896733359801101038160593381013765322223519943997595968557446314490189891137848155265005489167495976098383785239585356088328325639653898118115745211115482187817160378103153681213132218955280802043525970734742924681739651542245488117262304476882288734576199631292437743879657094808865097077745044430586886813140656511141661679802237110281789472791922340142238348330862215794224678800781363285568376020430858470207558613772583283481437281180253023736259096399573499856356207393686679876079288237322283867393131436792632264487385917704746800774242947586625726912508779469156619939804465874640705236759717395282451244771931952500772562183630442874297419624978527698390916429074126191561677296255404264357377416888126043947330668405201154311148974198251528408199019422969541536064499449527097082919402096742496340129082058155533692406416819834638333685702885029494800877488759225429983900918610864639155225706590827853984980417955005757016838117357257256017323932982374842845538651224093386628367842140390978542613588060058701673921397412643262872405379637431296235526695055238583171624072841355041015716018747547408860950085190003263478413914160054723727119297289259300441876224487385039009501517277215446266214731091368967228087951281288584386579175224883872269930033550953040705764269273993074510880124480011745688081945307674653613584551493426994614293845267392185029728830145343901146523291002212792711362126433947776485358920609209297188453107769727016049358612563429621825159541158633401385270376493211534129556304622603809165193530926926682108298674389322424433262575515789964719071009183373836199603259086471452480955459524370248934555671339557458423315283362832990157082333777529213870993421838530442407580682338480924370187526531827865861501363260672281812203252806399844171165038582011410382267699804659445282362596881310368479889422133775868487058353996132260983748646353450422224854449333054712918028944565235693088463994378210704780216587577049545087064218985901751598108795715073719289231693488460756060916660990514533453167845112307596697512241480138678954931364030102008588495737727325847502298579492359864483332931541316925668188288441395331490443556648248507074212435923877709330679639407041461600085099534658051783219582775177458122335148685463074831817676042159820819896509136341033127046260376256804581051340610999368951232781470048779821004967903517537567814253760368656635159487842826320695955514735837351047778068808289533037198725535977176075944601750885310476953562841517099217155004207892366086453018218532643768072304811859352665039391056408540326961336659764461030701507144389665860395553840230079736735170382312614192039022293684363532473371548544217476148591748719470246186774515546954137860046679162334684702600194444915840280355703457577840071404226586750569353574665411271853450985355847754810413063484313941356746709154352935709936464522102528940164342590597023748292419119647563344118837345054418311343955877753335198218842872437846706345689940017936439102790458154712019910143992779043749895703137161285922131922036570686850161274211980644653734480795095363108332741570240492110447551568157683103579927380412870876589977141497281219630443469680482228245492223747718100989442697506098376565594659564880785608256428026490474130341643353596513548573129652235629751904716308174646347122127151246498414824849322593359929773694972878085027555801781964073231890087409716084964916591507192206852696801314596612047371268210341599678202356602144567847058200835170085685916139314214317081817127328608161727536436395744910014899292783992312941974604305923345747817569143000131889541731576785266248644938889939686913663193467253116381170925861035952884827201833960854817863926794922589791192631436182654118970959561332658298502363228272130659843651346235939588626690023296842642974081446376789830380473441264267494018242972496849052138608414324259272788066151522220496019901985560377202164937973934205472380929246431193695505928980244995256127179509649335417607633097342051330323370341623313495970627483152840677476122530472471781128211190980923994256652545914676542869505780116634216816773010582109374056470367716857400347851209832650937634942317893353461810391212292019039946730044447871920207454389985704996429751582471980506808924625969239517070249956391341365090093210227374008509833042721986481345271756052266934835690438175640867678593592680057872167503826387799938224543644323842949564859449791530302571446445145039461851803509513268678967485698835867184309056079052337217364978607669682641038627030718420215889771136973402600338681452802323850669360417577872285829626713213385360601455888669319691587486031319802427691460614335924816339096561378202766890176282931421845724649416219258186420180732904583496443889290886758647196281952122145101004749982696131657792942935231913426542869306588947127086886092027636528893597493515040757033929815711305362039099338066081627199563815618521411870256473710236117761991232251894860187821690657367852043823054203647290712948554109668374223812012037771121326235198746997344106506874669494487119996945666531987014418690150754050758795267946862448830485235065550838753223935121471093811964668038180626537139017712591092860362535890484263342382193794672764268619078035543503581830818579865696152722841021812342292247668089463788472753889968187727904993286750296429455758755145058554468280845987216767022465795261220408551248498645652516850189082058226155441866825770524589090004776113740492618603841355648794379627450848104842793900660858400435150940297658537602194883460052325523297028467384155206169617187253974375392259069214820549535456040583994029954791132426716489224143701978437359105658117288990619100974408347558339991195494010246526787370740566031436297393893589040311193256686195037363854287710047912219976596800230861201369960485451841976526662543361646667512806231131122085449539456006066819153581328097957324136009648956676508502713604092555130651015316079450880818726533568197869736833637507146223729664211015363187506307255050937499505391895976520748366170534905456415943600422390520518002648502454495156581664214216280343505638029016852376307546686019305558674293638692550246229563203933505825582490824272828901619374574331796751543381253966212879797248979845027521737470061906872364578460822422760413891803507687408316649973907314748514530135606505350203307020692338018471426058156787973371156013336742176856980369662279596982352270659752790880483631329883604623761599143034874331268742699429106123838121527606358774327082773065864699911348590389011056082180410716922154901355329338461363528722942016652970978790851390678599273574937595838495197301772222451120385155061603204895015471502108584253368256806665582008707443239048916361617687872952009167736280222100592911566565720533183743701964187766303405221294109347250950973045940781505258358665384221136878534396224829798082918500289028211567303784251310503553768721325036387532043869121676821768132566104763796852030069961686444026007786266187634552330808506178140990650197699239458171052362134594982072972084242315141047829590654227546070092551644595564765493271432748943473994838524389267397390088456767630464499654683286512062617760432996543377072668847966990513870942923189210995222467541685249572788818175845003063699192758901516012193288843118590079157572490848392255084462075451425226306432723591579462659123815776140121351065928990248211582696484962166379167023183997187498920993059635104434385729898882350533693117530091984129574923605133302064949189865003247786399353870734837058997649978213478632330524846808293182500439835939617183146971894480628687664258837753909015777074054753587732885115472675137678503445277970694694040330843966119819811783165782952217022778033481034346162356806624439114074707558224424230847577801335728117775319175639216884062058900592662537471930664240050088097700768779269310826878448507883740594002306340995471534286741099486141264167744056588713521000604612461385257157071396063537748569350481767476019926463570851353029782738853801238406092478949532487208479389515041507482013236515606330079262617890364552625377916683114458364156074378559481789909201548552709392406818287142968192732640125759507163973674839749848759339377249154814503435385937389581839916260201962913721802456544079329851309837446860038978669775122388847534528749930017843468832695718560854469325704474511111734673289531140582765352402891862597408061646024263571624162936642002696783788517858553555171450015114933879753020819222046923616050199572874905629249747371791297260264600327220786877581549213949234231670254784353579299878163387528409226094885414328352980315753634796191342483062420657963523696669484307074328947611536833540879505226234239718727101970488684072094272360909110287667775892397578412248152571061858055239517389799864304335991003028676822415677060851686622812168852403153672698520495278119759128445867414180716696479360475830879589798937779227003634815052468088673918483237866917719234121919943689974042817351283675861258644707846647480085095907711547384200309149679091482998440048398212872209950359150184021407997808143053071893474569399983276611254026635680002590988258130279265756771698085116216698993926987351144588823804677646063211774832966039260866055193182374023121485982186749700711252639566208844331241294638598653421914841920730267410425249051884501295048305639062160241608070656147562823653285764972268621745176206812555868913514578445998540176104911940250893884827070993214485953852864577895664101718273115711427554102989206650664028618503493576685206829772503532249230354057260467107068448483474224915159322040880778630768458412439184526268126934524043420719082486861677580649818323209581645145691095853276126011888125820691264074465402456876585541956066836856000694678121710323338573263989569962159685099006730543154693155152861166439882013508414329989542480215988789456763280252641294532906438346137090530577700073007737639328741977533333532785485214169238162694472487208001630281094911216874248006374153626335791417566839944178603254311317357684079011956349696974043175348152502032951835419730559304212757727172892010294699486632874416539818326507316029567601861938210270497438670203251934463321291332107506298875027307955346037793745026013810453835593137634150166890030564190822420651158905789820834954164062424298623595833593113502463803817504328053314212051190128680099378867790500357722600190028311860232336890845277187527595843154150542908703508165353455405446562660584626879941679464262649126379684694157712795402180314198015613044111456061626720590534088663985219435292432274777274031667509344237156940947097441030781896863205863181097519154787102733670087008050237234346808658181950592883370641979336885222873248880380381121876743505533278365368742507927140723615894506724717027133838318594656269128741099185652491474752998864005095100680222331848724977220780292936788691606864989260055056544153349951354059558096732636951249820631734547500544983794023308674211674250310638023201752864321322438545101217944379541899591767646195762381689092186020232613664915334129902555094992339859070134566095522786335045159897910386242648580732900609238958255104562667095947687507941688406044366616273944546352522419401816773318001613379201076459927902472150739199407199617843638577719121768531932793164442502087769241168863248463817761183626284092120069167456565625560518323986157731600779450299691929479582824313774519755815985566885993360109335070367240857468129379649387423187326572494416942484130351337987433082329183053886612028531394047148848817567945170491743093161434459294000504589247515813061550946755468454945003687235958563728182397602812757283322840449181046095163661950584361896612798977401376792412788409927390282653882453443459795215781492933203793197548312328399529345915613561775078682194085083379512473795595184809266240688349077494759648515763317620835142679977868046484013496668554024467945933017842495598417925130656422354160308181844591588848530931616935963723132437875070621813595815480237116317460456981912947839884487592795627473039130045765352003073010234697388548957392124796029260854050735412339559154994562457962785138782904346126597347078306176526726922084634308013687494256353694468948045692544457876796544944222562526964421207986754162782631960390254364731171685454519766533295377338192394144591159242029710255429446141522548756868800587326654793838940142192642648627421054336338546209540209934117741100377092053056861649982427171489559885098939318962524701268452273861207766771848062864206549714249787150232849381931460844492207035387807742797107196997093688996317337649274036869852474829989099734214001978565232049337144841356030159043253714759130093429561481905542834847007539102090570322967567930550542368634832556378067149201465531178232865952311543195358220952033940360931043789479446027217125581015005046102533205164292180097182866546109074031310003124935249798847998619610724461773487541051115422155012290925472708986525615265419530370917604803667260126726342277261306257414036479328811643542403260276162388965076931555975924911213679111893722309608668425192689754000225417111268567535943684916590337345540991900536314763643926209832207237843120149483783023089419789994749218010171201383076375488327546625964614654071260718217595932811525365794971737417072345023240267901442171759243733351782452290793442037827582990626543712594202805677194694959611189666419508479968209251706176947564380361296909759802610895813224478728270014232377140042377092146190734442742442323456158765495813465386835454744913120928260634733863493220516726812009580140456049607046044738307869299888527809736698106475629923067985246853933130655785893817128768099512332010891331268855780993684474657649276261422570380782599985712424350019707640733940029030811470340653355657926798299650793693895496984239432426646457499017454627173902920117854018655335214796448784400300513280980839809294615595181136012104740544925842527569259591294902698268788386873495295787785871496475879726866070322031057339559042976149384869705207192474753372753900531960207631725976311738016934992986976731436972633396095866697007924294990936149073499986335656700417461677740852189236076917877015543921157813116196141072331967810667023905496098699187671047223829241536145223040810961457632772868089380599779639252110043207110835493645996030145649521482091481507874449206585732078965274027392827968572174998498591474442765582454830377398994895189127502030970380044533500636978396966665264404432980122405364628795736647018390117784794592942726087227759678736660072085341063493807239506970191243076493046164668419072799046522204574278110429228874232247298106177933229816174492595534512205407253987471099570278619839234019047801684455754606062146471115909894308580694555945095557790231156832122209755789758879570349042934102626910540945889906062681875908391503066661547992842806045916944179508547411848892199303421836760813256310985632216841340850206872877204858950258912204845582079542243308869255425864821728677524764516338450827726141628675057798901972587302601125956074830621006952016625336739064266105465727116682798249345131358093816374201346327013307783716714628599007976042382194477501401463483344770642689004160613937682419570666420206866408667963657421764902783007526712615625657980872310591518495497182522512640596298041099020287707469199189230203262013392989316834283840853879808034612178923207646160299910903582713725304244806221282447226611410823548837562800701819660522198720906981793035187847547630659558769805057533273544575531789576867009907915120164621662662769339061057043336428695261680863839738142503751273887558538672241284899013738250302406744768090965929882133479225497822665322204110701964894198833916236203608040265124003978115270438038079381318382048678129019372475340575490087711633341240038565289806636121514911002148239965972980965968151250320110867480021967434678259444749438911711101460981463630688306560947087531271788595918986896818812565306217714943938354911163374460011718316518495970745836079422241077176922626886582272878654815143441018341796216648836704389970636756535726101150511237231901715934996110958440208150722916914580580034185820287892381768692512276958014379288361286150170124970858895792451308597614963570783709037534333560134036198006157366638810123041951584312692323797312758757049034932002678737132750812797976099291581333308510809334750722288921818317127264604345763105341766064325098135256909756756222060811318907435939858004769024034985433934135819183543678876583237057201582787814046903639572462035337767868742201883698913998826746524056001113248857999305956578125465721024815794060443048684614549910995616403176207524912567169429090303605939908741166980339619773297259929897809293707893222944020962596429983132159606607979109173055225887612594090325790648804701992818777973688283361595730410673952330005933164766109357313524986968628600778407383582590599485033852327826459451967835366421664990243301836364805980631157507163341646318628852309063311310876629953920214607723188619198138121234439176907425505362491702478590926036687141182533237583026013759309143243896503129106065110464075808601922797515542882325685208386467127846136108000879438056161686144011960403536102926402276906739526706050358311085517025800746704980418705669510328562016406673161533846038630223921223480295070667779864158196378688305998543448379632596553459319924129198344862506794861554798364029847490096731815315617780007411100555983024463763380415676333698742547775223383089567290090623219383705493934309261798244421224013485734507154119515311326795048682223571670635281656835326572065228889833453241053217860078982693943039551947348855726808961376071633739895778433863678274160557701810633041828995363987329714498827515044594892447657678112408319530962618270403300256244576990799477212870968069963988072374685819918276100464492678974803947912932066423704300728766546923492942065389695963130349603123788575256564940419684484602440483884030088588467595752152927710735703873316421473415952104518973713396905439113877020506211556675911871874829179867621791698784027750772502037363872701929920895906363316946702797251303157105445027652101677439726284807638396787684695876170233738411156528442399630896548594454215946785818965957383940763359981630957282263879662402308193474610570620527470647825110554567311424164595152896516952377605200888572976749553727062874641136405470028457904614889845307543392694309092157906446215546623352978293400296990574707209857564971894073375819066016563916904723631231730952175480448316358249579246991168981053064821559945495170746414314399315686572495722984895959222119693006780888172209470558737250911442492714193787273096883314844645207783093449006876539401302071288543041184199689125295154969635559659942848349363201368279382854433181067712141356190043701534348515901055635093636222889128816144114810217831883944804659522978164366237887134671048357264414602572436495142127855402498813704584769323321218569943518547355468507439517609656840681191339784553524668066505739688065319513286021646014401282565180298054002012100687953465756815055950815355277615279506353091427611604220559484782534968981914839956374513491352922827691103446776983797539508703298224453712947406781829494363470698207156539353624447147067727022822436587595159314525222670780730347413257033942865858124823259768138549641276888778981337275862479190808127199628174224958008291708929888472664402169418648579215174004689246628035752644436612646251352176909785256248880858105061240349727266927856081536408052213140423205545663804370127415583335452818655256185734123830074323254574957697942584308648147163157677466724558967043709710298466971093161891560486489464562671111306682731559777296012796585342058950225085857031872026740838322658200281038715225749379502992435262122199450755594386004919627271617047980526482414027609674166159320483864546163458069678366913074158692436961291261848981604943838409646852889423896392759322016285419288229090059633145438524334691606181526199939565069733293202907853817935305505223186421155139682745184173244911333721910104180493645214082969594254942221304113185983402422945317138866805101987982224678027012965617619301304425262464471582967847183912394225612028331438002074429591671043502741716141323069138540639306123879779732374290041624488371289168190287513862931250681140499101501863317792505205831194683868600561719252549809691193887796161883674898485450302510824472857271960842063186273936438562952937264044540398225008648821827526903308402814709378436888063070484229139478824267298449523322715633472114977442344438991433110348441788991330152585980892601543059068269558043995300502747709979891256094728162603225562551425851538208612259014260352766255974985567597101120996462325731116941848829279723673757500186698162020981278700106741871999811489096724166956936086732300050487236324469848725004473244083162407717766898901686307365441480364071059749715415466961732742989322265687178598965631357568926715559031865147482685009660857908752282274207026352841895527172988688586185498303574543006536073557140921658414121277717154585852165027893680239877317995871640621616265094460487983781750614182572212757155986016247780369985238668980673025484271925616351260412445440826852749244226483523308573592331705956770509765673372485307365905302842055198791316552129974576964255910494860049393444128483087216312452291165173529504896414942525890475092672993483596787638863903167501885192863217925604267275000152311651760694878601801165232116492981023211550809834388374056010922326510578722412707273761362964905329835819472024817431092938739850037710339979110509514445992556845915979385552320139674328065860133743491479405284417662698754257273209323161051451324949451280121446067245437723204516337129753967255544700779255017490196743732123566157066884537609866127231395408255574722322050315559578433154512902020635095651680552650537608780583795055660771427780726047671259370701124184213003789217086905612437289678520289718981921867095591624453491191704226348791947602141046704231052168404429053921026419215534245299069627120566052629323897111532431318452227083019800581959470990892202665238053079426967722795568977477996472846670463104487198468382076288585885098043852443209307632157283729899259703109023806012947230009195420426460262248739994522337465870976666999744028138155759044960150710234481296189075072675745671385022247496309278477567104912315272048484742332789961022830167111652513482043997147318551340208558866163469904486524588718745227262746628251606075417838594428357465455030895984957472479144275131244669961024625835276603613331838268672995056538941149122070883504672979785767887988520792227601672366846087725290661816584239910163838128990892405176707703411158519939685518570211214341025954516203553931002215669527118209699242368205854368305981980850497166515683982719202231994928421033514146346187315747609247540330976949348389585271442565050448591738205689506776121553899873120677466311551709478860037212812122470634696514073704417750566709354438152668083066982944197419073154313430778331545250869755420880810367938746044746166282834343796385017397966307365037559230795088987771498873889942018019241883607306981929417482631465465741619677881193203044445227170826546800981659585534208411183580387264704263830687439912089404671910060376188899680356994922619984984540511364354733883294527454365098493339523969176882369422335050195049936390899028040489837474130020012879725114522810604713808875458570984234762987309743005164218646210577361827093627444124187993338196524761091480265700615155546105447727430216803634594350694981962845937367334019907036121765834229507485694153285500940903739928193660951675867913961470702363142581238718125361335993060478352817522029732124485481151832058446855203020838730480463675524074529449760150937731326937406071269022494079783146298918651560357359823651985607765903933727097062623325961092204401376231317439852950274757970130333967844676045552259090412581080916831955677190223621990611305124910195538443650976856372079397660957720611150091207040825408028314739265347745087316062498851875876503740541530492719631242124889692258673909630849869126658827222692673495407014952864063331952264225050830390711298710044955240791886716118393679561168714016633094454319604944887866457218770591168778817551593899254472578527267644640819634298084430143644803838769737961315628422564002044438012799471437252306694028806413692025405074999124811389387367967008714292349107087304565103748251890142917484383422369934728633270754043499918048509080582587249665350012130552016227498375759274712803513277367063529592676908727653238110854910101156820970351539794101971168660183895043388935763565757055287894547195682364661528527147273947783363491761953165660752668397108095893256132646209411938038430492999893098018432959710651098304301330686272640615083863682713312983820373343476480706955497943243856280727842036787573651675920762405220742967321486221837916378452545924987506699152669159731130224551862953014379251361322103299323515412743021469633621583665434000444230281972932112837523332707990531996779447413074631321696564651668256342009316673444178911007308925446132157947698963865908019168080878450624935856634137299634472741346713219565945362547137508049103315845032375572416877065393784115103954682674581910957179764213610993000150807811792465778764281265950248564720423178876938767973363819584214352382974895975909917435749530136812265983303727085370970943008217765666600554848095122980508004388751870783930463750209688290478029551767796096870808113249025810413161447078782862910101717362780020052948560164145403343557855103000269666752273008296129082270603542048694515016656620823685779975058407486162574919980166233735995735557280347932880525566166465622674656062686460955904946663394601571766147960432460690147117683905294739803209148240048102566853358916842594066581297414015979904889309073347689932672453105431398307698395471591661460658451401842690067049082447271089122055628069094075605740362124609544885051833483516022929110245235934855460042502195183940540787397969103819412270811993532058457208205929158861098095632732691223701639773961076882929907504452938676629255816712569617639506516789917318322387947837678612096474431368902653256835721452352741484911951282051187504438725040473821990339524862856717141187284251311068039711175144508327229511746593602882662267316628885582007177736077488651195519160727114152193987626845943091911935823416866533016508551408954689368048158158139719353975420931495756142183423518489554952915321788656311762626399174671510909597089190222464425023005315860232510348330596239047431073190160241430313944417914171969844329940897328258624844481598046633652867614707901582963983262903895096486800316129001129651797743614117539698527069909037819887616910326801141419493730445654966957754804903054328172764886772703851909322493068565540883970003642887347786845871785093925099640717483428647197836665293225530463400009266064722122224553008428629150925292203167728162196850948892126064531650033153051985040347871961398985153803448470286185878373972859356016111868566369829099017988426006767361630759887978786009372912059627024973745446459846833836191032299003570714062631372929964381315417204419247352940494988124621554065077644508880987917367351335725252038743747828480878503196493879784754463586373890597409244231565132480914755692516023724684656485172129427799849291563524445002838989533933607290787933152782715408065134409340951564181981042425749766859334199600413016260553670802892997372336072069262087270984753478742101171093417153808368105642142047245452678262375673720205993926355242747528182099155617309749408519390891565372859646244339317514698386981654740657518857736940280509446318956589946819511429297405553257026875055700306424415670511830908448980146284523408148522872049263737961777837660737137917058001333955674793905572443637316916142389092186436133885518712177510094239256522759126851127382736760145251824159425008024507812030293313914999932205780339515533267292402851405990146027887233594171918165632168346690559385481499704821524169125776861493634789732320501367149143171146430278436965213445619383977533467045616247277515447690194578804663164126781693846284760021402411102377521617442797072002004496962146615762880804161531037007109094158489730671920694137023712562861730247847952760825714509087511472031613049831641575604672727596653799021660245533282451935561337297775202764858908966544117015807556574481056983921981373712402857899205788307810128351893207345653014005244570383266473141785632334773960841937234241030144758333708712652838342335711816969380725910322772035837446179896289670878350276039887068779386706660925301567393174864538778990805672156436690190038716862594111412765496150450926888924268329602728441668754125457846808735644880545930438064115455912635050961372142988583357340002090701448399698952160741750475898594041259897683814358160342997641102582974862753731811953993608638576920539854896175176698903636275900502356218028400579034678553418099210952839452787943985426204996382907128032315012333145762973956402972202696209956714966562671320117622512872564097485603086127054500527310709593868834885962968312285519394979934869463199315206674194961352163362184643561349979251596729153186317234519295588415989756190714601099495216554196026480748734130378241870436639149121470897433291500984626244941329706134986851073631408770747566481219385602658860279897172119929561200990412367727001954410649856405246741001059381123248106162586362096521748226065609242358287605304550206989063769754742226299591790467181466496396098998708523398109230591976253706090309763067931805602525936041746167891276933771174634201335887562418765352300606403531299786332121211743778538576830695673118359087610952265456129471319479351915191377662342173916843109307943339412417943788398621029911270950080867726773082933023887925075874778123679586632524128581054984373298054032661415820491279945996398238182492409535050450920254723187594432692005021434147896908026345666714066933255786974796608858049309105535958594614700262726175792084792749743618265014611153773381589200383352724445131054282072750582725362613782291565549753103796796602558906125682155690230479115689484858948112923177746452164328578108112265800530063469840557362325228166824479866178007281040194266704491573781815657668434706842423028671086409102060795347884394724357332265230459839383877848238349185245628633576332078159285041982196954266629893668420687606189242361378917069070836796296553792267422562579467064825513424682987839509191578607691382795926643972192645453043560967317836241479593184282894914743132520491054419821661280492412045271808522866160278519226544844677955352283072211357323809575938748669313322801313859789200491594419815791549615937198041416629165076512393639462153249939266762529710421532280330380883997799505011380742184908152180850567494038777274060950734246941452366490248488226021190495456429782976055422959317842965822283165052572895302621987082186671968938760922668967363446250296595243572231422315676091028260304870133297522982488788319648954475800409575728981387892881948683323415611030550731878649916836088559215199604089198239122199284036012077280206212869229230587356200440274925825952022218019498402485535627189244446467125931060977624078550261375630896491400774379770282401690982516877658872087020220710094603182600314519551132247960723173414847194860631032518757461238442006094250179793892828936035580074455328197240585408095090569377332749122931259306314966748596319744098157823834373547798406102849856599886824273462334736514538520663561311286907862926851045339418227429732525067161349837773074664238189254047016768305900246015429017356007990066024641547762550472873645322649435445801833090482026363860596638678687209739665631584774374377788096504468703696643792389238137183621795996025621045894539882925821580556559264701092751679035243261858264151409348044431199774266515960898732259662880370293245743952147678917582922799615067929551426383337468232218833829488421137335396708637061375950840402738178959848122993738009908378511313589457873222147318580449875885432822267341940582896469750310831971684978112425219239557103024553376276337455081144854115767883203528559458598148167931499098860230749500956320460905136234158412930717537131944353590998540851081416196408741059098626504261963396118377542209775853784485249245830917166714600412212142817021834193751215029141671314982635373319542338895907548633911021662798837748597470904179293780380214972156299486382890274488676326053695680314130061880024756979130684232891052995128800966657102357670126691630527217197674335051041175322513032750645535702436190764650910662005059502601641240134241179260207954182967618855886579700458174006714995117266945895137417002154994590114238991187412675284651400718623890626801610137559573555454803402489256777368884077121509480544681247326867721547977868300892846129742300128842115592042180298737906267134765996082290307885658553789715642096520897027781747369158387400802005893996573400479301871856344317484312613921087919649332384102362906132794661949173512671456465005306059354398937512709719295576576339660984530925757705656909715644391696378552350493054866210279666965065079767607695595569093159828607139307515679539986172975872239379061471845278780035880314030379805343089721727610206639988288382537071113974675742081177935714531061022087187008057167447453118905308540612122482969358346670894720016172491397398228601646096883232248348871199685283720367816822384680453996397550364729957476538025915552193481754441649732445581148864853711740275665800026314005499014808300961361654106223629093263735638578776429577063701015721126106389616520063842051952241686565273418484169401450360724669315025346933684669855681336385375540854853580398168858252912753126962606429375188035001738266582076605870169531584998817766190616806474520287393079280809836163833227935051176853749234395219588566467941740612250865869342303433587910123280417419239294932113862042011424741191065797743650691581363546504492641814721533508018937738875743584446856964814324556918319425720229615038675424904988377696830758631757481819622296302587133414964762899429073447733402441153617250324533233089593359452426867489392538019253927156573109599155745623100726719999747271175543987487451836816950194567291542283186104832136242072296782629249917640406343478490490535240551625584895564764491609812196493725353161466660284741272667478755337515142450094806697581287020476558755900229196913079363157138188950492489775542243147514602191597679807068653429224853770661537165350732690182765029841633410776466177492846154548464144479591008831113738545197342298323135011220240332257090470653016285404974387213839490748734734192591968455477093696114668295992307896042591294770203661357001785762635820668915430801668293363552933245062481825300244251389521886417933284016100431695518007499874215467369694471169354759150930744998339165423126174839479607119334306439502799854820615429414439464444036171827324300153361981921130968198048506523538977998195392172269263061756821192868191523220466013283206999696697160125455805801795915940529583184121298298140367399176224972051537170428072088731587262876598189442232639520317615636370617415351776024174419098380232214356881305966496175104938598141597915020069093406882823692762276854355708055564277866558751261563346716763164364217299380766488773587792157794794036910710274003807421810216770487144923071121566324888259336475069272810617034395307250344666932957046972484870502027327175151823655486960067225346666347107780204077953393784057975384940726414674319564937999326201164353591500555199932388885848046502330890171925343233126628466529005647429926011831802396038648350423990992839246384679519845870275641921230665731487516223037065481074428202264851320950193213457018644027457664891021671332505322137142186936608241624214419293980703886456567973145157381863917191843993686573563098502227083143326877287028489849727110842605504126384796521574818397186296041522610314083946694401707804060396310446204627660235596997937454668362457246526663504438375770983903734642965214740024828770454355308307726559091078126971742253385500219513539821586019278897695131501759590401201569564877229303954901011709026507954422424779750076504641354094283368239706279252472444445010115050390284101813064826904566667152879145928989998033229171805185195058993983076152400839918342987019584358601459070059033411882290658241128473484931115629851515081355206686391092492855069557745872818949294821363284870234759692464091351611010703716879084365445912238346990576069192036010148566557678111517724920983020709889558749972516218829967693901155179029537750911714687780022707561929091257672386377131054801384148173768697970067778331700088646753900256534109791013332494658462459825379296124675694011821591118060285799497843105022866120331232723172694148018042359260346050736919442898386937094827606151084417824777639210519517283798201827608440822972100464490628446365903368187688153063355229311748589738998592257811769789730436775180074134608867885246166360393189379107844145381276588010480601139092523656078891626756844856961435612989405972439672986522980517537961693190997279559415794799463573168209086513014218832837204649790097067225913928237564989288693673515403796167882761968531172553537198652215274279393995950251976574354198229392355613931527910962032337075007979537062198640757145336184874650019707532717146939896329190844535653528907772912599705110524852240002957002627273247001523266829830246253950865970682768070500112745648303956501437822883588682142196964834929955073869263947476681961490497223910125541134910817429158028186973869505377511664984099782021654263426226898760395814196708503495502260430892174332674721815492640031547431784217934462948894848113396973412887164626254144631394541149069094817871711080853846666846745218224326828447411722496208609486007756928010954396910576045520592219189159506544141327965890541508617479855986723769613685167986025419260811936166093044022559824754276191231914138683682012443525902770086890559132630133987938616589939090214303231406606268195854411277652813634494832020674715745706674585744388064996103968266402630518272510892008585308408512666610200585641009919099702543572578016543988606003965786952236462232458462935724042604055903667265480913096342561460093508532527542562269590128205026417930616978207211462199486530950604831743222043672968510638729955282715273265980426249899389064828103994684702589681463439859269219089536995090365620041004604945457582510040928834681558026799268624968833981502273083717782450729711682420849259085699138939822029264651672050759468062908276384453599101505163402605131228558685762343186706980539515815597780293231328541919274467247091839689899766300641556898564170303299471343332524970909331330796294530694032520674981767242410023028767539839726916342976675180909132415317675941835075261094927257777268561654857510701597122661878043077126773021824020511517520397311959117071723872002154328584389600310770387986462786705402507649846311058546640897598142148108623256416845949138729679249900939970979528589514119721805369961651264423420908529162644262295393765373883006667103761603531146171514288934606491805438673744510702428210482341630383248257043785866431887083086005760124606137674358475752511685554053388889121349258211485058880578220281974910544251389184178198761194089126882983270221573884857449072287400213560458739426647177397209009937668633875787555029809963383077529600446024766680080209322920281688913342574754400195103699148863057448297821566572211111083365069129593482444462931584847145686874339787381966083333376525769891321381184946204490434387217072961101141123949092145769780132052795943769385849947797236028548590094333167995210474293382459948363033317559499732858419336066464364121926560363063745398549815694905308002431448182554977586834843061147362548621795971396365354929220308843667990118247816636618600706751181678069904676749260556892883411880530733261738944082365069320206315923908020287222299360671364221951290123221156186882797514605606159898728553894481819742679335591871225574992344719832816811958297194346714187802985570070446748462674221433566984991485359439566031144997109304014590221467633002697569834428057990908762577568191498432123330175155272512263128947301854833516347364352858021971340103702923860036493713221467512710680869298393843580881605752582637075134289324872015441695695473441842159727503899117891691133397827865332928350944407253722970420318475899849269405154858462554612303384398216343432628520606472826298985411015076527458310860002389475243222922384942349698924199289773454358883236113169325879534499150954744347849266911506572036427479207283999730541310555295098017532654895517835300040633145659270717636524844533404698975100770303075143737962937352416067044762521561999260095685181469514125930521859818656178176297392554038400520908916256329682361914123420515309164767439930707406135871018523522087574593583505805566394467339396963198566594769321571048318619752451898598525208213668280395831645544461011242157675060518757861907984246757076327082405267599463831381315917572646338305037466960363320397657981042792897073571109828367149419435852613964166715667953733238960470528505890580615154538021493748398863775254020303890089456117931426887283011584544367387908971526784929989060247636579639642830328644086133051398187444416820447499295136710864804636072611005692619953156221648407989553179898605988781929412336821283093377822677622699224559287908041607510977637637202495179194816417774338422917452755523255313906423550461723379585245067981866156501596640765587931855022445572762808062451906439816048155702992914757870419115662785236830695888009715222945170275252997490137725349081220668193666239145384752923907654720625540570925334050875678538293980349607820401247453941234150030391048489726440872822503515811869777946298411577867949129383013261487987756569552441331111388336779025453091725577124070711842926447041398888210610997493455691296407237203503688245176053291528268548983653319191588953647681392581854910052273710860389998839624772866093562036504165508802626354362052232438771679660768138982575177162899821006302645115065218430178128407588617652856334909950360640169440049210874247062189635513933461557551871854791092082434183050131319591468561734908458738574197524808766883581065906859760427654960560526781790546387732568174108976850309776913671039019861936449389864083210822972627800576289368080630117821222681644695897976699557018158375626098571712281003981702584006941789612308512837494290100918833504493293855050189848606573524456305390707967541584395010539359859424575652798732814291096255868875651612009498488144761582438706921457543617273881340709896394699501936639979918979099772168418762070898529489250322416217303823578423429538592325956942361624601458871529432277759270102706436213255717883268140078567676087793294785257727489286896122287875779210436919995159156740427529636963250483512544280556916575799483009485985027670269215483242119561968084568638222040109225220980326195568516342107893375013124054914380979804605330730781128698557319110666213826881242321344853111757379311761042713758415411210380253858849745577319361665337692466082359449396923009437493544888902131607871787977112818990620384117167215866809483443802247398559149439321480504447873566154481449297050455240104109207455857785592741317041534676177231242254017340952801819390813742510375540017606079725859073482864113657533616239273668587589741966561997004898624494382913666215142355387873933784824832638278751829041658075559902202305959682867867872405298383865451672831082447557897267806511092761998503707895985159492516809803404274904333960446270860009627238400972527559969381728770935907085603546780008012619974460295673043892929523028589510229258697239907545928287562038513203846736179957364249377978677709681242653808228891496018826232107962814758716554669099711377657075442413395568395138895288579090969693589831156840258413286127358265335612535537841288314965818744951612589574882004074770999162876070570667119129673412277288411215313148504468703469554980002948775853685058495493503900408843558985111087864321530036292960988855067229185194943145094815170407187259690826092361984935455296809512117237032279003165042557196219395794101090134636700084353900592243123692775756059298887883601187417416062986219722266355067169954085553608826505479236965779738861688176129361389742122005215567968254854913257937678115222632470343983469981930786982625866274631492030126886557604740807582240708565755619016408050697930225325718387101498394041881124770762695450047888071325263561550971966942317163830412320543622110781133029403507704819895433849707159748039057884643924774269889249437441681442511078136879173540528338194538727632888496661019788419147126984593162530305288947765901450354186057530910652762226765340571840462380621171933008725107256937124891559299509294147394760770838684008225074988704543966162500005786415235460002047592285496868116784179546525856325598372141619304718701241724857122002566260618042659013230003266051435443356229140540409457634677160442352304840013258504615368716357697513176450515703736334730770575801689780836454896565625087854003787914811944464430304666573191101188764852544129245920956047238381647570411807362567365377482541259690393545952507007331385326004491422253586287973912463807122335099456416160889847357986076915239470341533012893183629239377569274037437612157134419851076688113769173923884643360561915450629024423607471070774750046490268842312403947449825366317239252160170140523704688566245238224731791826543975512595032135595451658862791002331522780357877006717492718334709054127494250812344196619919828039908850582341343369215787472894338886513041614139258772560536518035889732373499834538247144904310458139921801022912007781493294102686970152637878307215612585102259594002433096782958361477336777402198745194106919052673553198378135451144559894903228537013395021429775858499273504157827911576394809109380935793500414768683368241574611467072919283686031292537258708731166003420562690415991274415002932786438443716021151458194326590798407322143529669009942204399274562945303050154618816368646244110297201998416015972271209214201294105548031924463515756125337429745876075912407942108540205405264819917846512886224839387808898278119812414618874117353410203042296366912632551545520759705326676116010651728011046701146335709946772204250726920698297477631659419594486165807319401954525510002225285945664830350255480597837739083273105896618009077279038299845431622146912614986458980456960156117108072478895993760231531774085281939245779185215304005681246604613372486921887743918796118471687081203936547141632323486871568170281149040175414186400301218408733026073455910281544599505042397860418876968994876334069255845530714019901429204882681158738985385781252100090074168894582584567494665106422538749931829684701997504815270308312722762523658655257308990753950837228003792844465284019284720786457752816584387099621491247974431342907648384185294246493639604280807916360984591640249672961921120230896031904112241904223971882480674994325330169733074308986734852345669869778539947818299050296158840109011437293740849487594428260173688510111127984242391052366176066890307525622119925743049169845385935468965702101501481775549936997949463932643054331960925922796354065831382665716948870418945558868436201516533149748384013597336745124663170681714236886297261757458480358752905068046190676857934623167242960670210594582493314996690769504490655241191602546319953692558053637905252767796411721843242853676786167338981638231101804447984042583721939087987191363321211550206609480715425089897675536969100103741745794693815527218132705301420905737870633261003088123330146993879908669706342329030747650072674098137624973994542247052651320122595696771610345569791775271954599911450554064453873025495175292624911122256825080014120950259510979584051235000219390499835642126836139176401993355806104725007138620584033400194035560306073969065114471860952016044891931698533068567825816619923944018227336703955826226278863271775383324200754563678226882446618518971409318923776232020805428826944698406789008885635774426181965214230991693811025225221006898983521812994744566278697626911744801829581105983868750937321753674701492502189477103987901109872174832097963793534373087769206624412669748120144075567418109881066601396567599414118903151254738941352176623427652597382409538155867649502604944625731901159771264409978083554460983212084168353092299088307827628280973945289203891508515864275108551289252875323061952880944245569005815653689937771156069354951423409353417693183595831127193454211873095735118498133441263066151031240311553177048313895252655076275262189899731689657637657271938362802624684176363389488810107697958505204893456424213255938594096557863595522959947790270542602901953941361042419686859064767546445063441629897349716268115523292422969487597266162382800384417191105628792571832647720607899582509973178903979727364451426155703699556516107736514660943466857064124652249302948591009717918344330707636278806523424603160317274251227871414172569045469926405110706356381875862024947728393846657657531331804877544553806881775173973065327451948062486894098693510736129887551013502950421511637807843147222204018421269154482898879728329493968386902374532176148083355745690734998424823759508272213244597481132628804292009439106283008462279571006548931624520231225382942041859475419234268236616184917395336502715154968777090278909601532354345636767521004056837540270783806001483862181954747046172979517937950588073494952301417880453811273182366250028172341297974689073558782951493818887924927284917526244450566071677778611872226916158055309466793635656832989643107705103238048931780364140264411597016926518388311861361012907932278752663916594254177003677927760261773169195245011690688054306255132051740839551769917422851358909881593465431509294232745513651201115564433662417448644896526512309684733147428523617631930874886416583645443210099212529255210152605278023978822657923194733210548183913667268329804489669902807952369183763260415888525295213300740357108063855361380610562496844007462776048108907899602955948697169634702312139090550294332564966826446751977790970131824528347763925114952571013178596057636814983216827179560355090037630766056289737919098275519955662162026275555544109368158099943476465048869945699847183457852007111830909669168434745225301033161754755644802935991543472735250921420172895373362874914794572950248875358953872101009692057040361902965559866214575448450431487251254363758566174796254124014589765936445200773429018729428789977619003523360210236096849218763438816225277843306827702858550643454000905189576617210244394570801193013807033852002531795393059530361027863528904212695819037365433602678096273780645818621444868485879557210073689781752086343592548368934494327250559166315488198381414907797698018852790081592841229387922277648138279493913334378417526600016151930328759929951809277802500701633766962899957853957459245436136250742271284690876207441460751075019878170060590360190966453533885715337677655276161914010248157853742730674920834888355259773153358802441248983998562655236337742644510684977309708296065370480036806137400200685583524312821067663683938452983839777267422301091552105037416216693835198744085099329083949017098504075574310803861538154977867574803580392386666064471421786397662686046864035482416282318911606160234158818165155922407986603410952296474845045340622935058899517640593280889980673103452712333104074856182962609133474119594282004526206989266635480011719693372779549052175366578493621032617382631616670304900249713451457944458193552836405207335785460481360182891879667102594186820763163792367071506327412653024848608248935117024871091610740524498848514168271388668242571190062555410899590840680353851145711266079063934769484926153774973081169737051858114218658521192404821426185885051276511312086794432401284666942153692919519051520404247821955144821376004461256173847883641828341425309223452067481779674286586809355314774331771662179772656882393696822831689959511345651201438436297933856935511046049131681367496232158366614060198628314533662707587057314505533969341040191866324912181021514951586933859246502963157402422954012329060502715265923161656870131728672876615903122416739935463713719419580784667835491712191587012496290607926572410666128991644309947272628400748859034916588402381043887148881892038776536413793220190874919882926929869328902763028892467691995599719756994462554587098004684791248643305959744560912163012330762114169923522554575880217738437948583669091973660578295197289558720674236692280119929913935247852562343850557368305980931047365546623148686733131146736838294986772736930199207155602180801599924228568208558575706337488393147261430844363378973847561616704063262887192098972348333738903505273776811967591237608904238220969039154903249736272363156395161336741920779843720893388460686153333532506915246388756311017428380094221595934251552354110476383034512720396195447457373461460679609181963243109963977597231852331870318041256254827570144186609122884574501846242143308256235606628546139066829184212291690268205076334677835384435263521850954092189086464282142931524856406923191419041471569672260306323663608645867120002295458468776830429588831047271092018704122667308244805094378885841187104523184587408774759940148174925448220015346107161614513788120163678033518492735511806687512477821600750923901249958078945707821227300188758315361546320105004063924974378797097262231732586464064328021293257539331690939774771599783597751221186412531024253655866442186868925179715846681857931448724156182669242682831168744820635397337851923693624734450360612634739028493019056340956001385416861544272437996421313359862803882379990093945376879686426165516638422028554045301486239719853955797925519386336314568454122007612236973883311685409877170091477112200155351687202984254525803547931368158247178481590717034903082079631282655830555404035605486569792486387839694881698069272626188249098108651525825777511590184714909888138399240039115898339723781576462351912689387559581015017961754432007474135141193194360204248564422603489520889811055666651074436889735668624112807752369514735754962346761603936784974109957053571484158605347501141269631192538529470894935725222138422510691716606480319530088462668037254603066230230999701581123808403393879238868700434154909132095655376772888617147624208324339853170692732366542163643815308796045239834812821972235425218698420266878019369240708551736361353883844605812266678367036902196770266467727826903927088698488963857517799922228574187467758134282695195911046395194998516228152623116329450024464098105403181416271743091418467776688899107167398403755649509437998614315238186492843828524528739118420728040054785820244404239591610158581191168990726705008176375751915031683129662656745395879283675035734961332185530546957741862425088507529901713317317108467184731876252581568986416282987887650410013375766424234357341305943812555834328424793736651467481274388514195096797458233332723465156471448566412776397671101141769718381933094139113538151228222587925768728016855967584059819359063976020598288719547840921439514780221742763231654272924936538697940796022658062031470870837692202305116123516081784128519792946444197033785008012744654172571031416148651393313748479538977477928837891598321534437032431026989113622182330039374475594348262403060587322841465509704351563694712083579671208200373178373416481920512353998892488677989774800062051057217628494124419266998950928983348111281055390901962831570829310547628315651611265477018915817917569460419360511625019613042279059808376501539913506878046639305537385347496868262318175546280969475678275466343877376951082302313786743754914461070931681671335746044017724095249661399738534061577615435261085336266165872423625637182014817397687236556790416204489954731334326262305772244230676076463329203491295615517192771517317605537937827746495985373218497107056847838029156102915467053199185083107563283099419967756117873978393701016418201695327420965493962054575395590262210426706329485478325528456040350537299958287549085141280996948917493834326211051878464460357135916849654263434500740891385555398722202151467553549009872179379174599927549825765666284207017348574509870365054145762551269997667557861998656951278046226576127025008251071439954186104915493072246211414369801261328366546235711447889003949770836863344746532191364888215393434962423890254117216771640636791032221619497166934269420994032574112496906862856139675557952505163590906281759769160810587817062058894691773405041498656205767027055047009260798082606832435097486412656012737154629915169155104683849259876846152471228151134333865120615105657128004471815869013154645480538850217950265695037666356098316366403615728473770423093696103263116558685068197916198350687054629953611730493896145652442857594468969853152383549884172837598380645767036678568588528832754352909717458047054922576126335385345668077162746706867958577866189047601380784863958635018686609707377060606161923901561607535419700247808826196285599028419259205470351963105712464827540511778413311627288857561173944155481569349970386729374512881136352822836846613546191376404544193004148785276299695426760485295460724408234587170858949171084696217165371940430872140033353363520986663730324485047139876744229013077864178022868575002195814839620459144947695968002012527903702981069205951335897235124970041119448746565542703369345910049982921489732888101874446001502959599577271152982352158795217377552232094464271631310587229855325627346323066769039302308097247169353091935380315654816651049272189357445918708926412816136171250513061374875060975428311067145807527068061110720252397911177318655823145931922396171944400208862209582488594483672384163599785890534549876322496548944180130318366409677726674735747021548012270039683546884881074772100963533863230294469953248604371426205647404133862257361264578437376213881283913614836135424268597076577565378294158512748218077245681182947185140953854435834377308675612227300222511059409486472644380243043339582008429986031473785915356249238318444826912300397938868227415457665637829038826891321847123791317048504932783859695360730522084981995902364276428283389291238585553441926606073706416772377788976532591615269491975022246047149341788722187190419569456287461440780348066267583701086386101273515304067939534296383108957246258792801936516373839168872027291865566708353503253498127563270908316608467526818278227404929468519141582431616746449539898801102819294033661115160818562208162402711230150929438578256019125315258652368514419814143132026316979134345353473019113747352442811049794982378626737261323226437795249902636407964794204348752267459970229663271333313025740493345663401805112616749003033388499637487929436718703674263101986394601999454714033079045546431168708993244236694711974915158580927214806981696539523150467621930106720952826080566689970882325814799858938282644261289929973925217942283975073413708788781667933673221194668281500503216793887892755962901361198909825398356993858894409626637762576390127721617322843561759117745458271484464061655099322517274049600080266313715069829779302014131665033287504121956334409413347345956716273990885103032063780717684951573849271841792969910490491875715154129722734615693960170347762339360304855420594777094703429496330246664717242598583251296610766538727876803555430104335456065146273746783763243561926474209740812282439439152638270037701421258673829232983112804440459545256498346672628872565866803085835102895167911300015890731209680277796367020321547679634615429495390980079583080128262095640431168519403787472874293938107961473946618032693106628611873737184793696524213144295849500190423749796587121367691485303287622943897948242504738889444330030366572625991461186104007296712162199727151616064352414693105680156665333681975411319745822649357048567070063531684880135766252644949581082973805142865662758583807163438880048024877593812745179841672913942688952377917597289215258693965311246986919576775120110097140833886998779181404724318614814084759887607029655558817973670605624588852453282508099234713261885221945534241293131637867634903974869554268032208908437154269278728499740279350276830789903279554462600353333549444243250393533979240314546138095502969645435230768341742646411541472842942585023175531490223592998409429848698257738473756681383462520115135062090774885295286770458449005302644895572057255450707775292815284747735903969389198992322046010023864405742176089909299984778676858632825949506892939644951314438723273469158079061540102679719652761146043346277519092695059975204908150197776315872817333802755070447892247983203694394499426886308719223631087459796658158411330232972055502666260526659685740143032636530636008386918751200353597032029622362483333146155409340831242692578708840570903317543472278666726364559854912466028074522369297455493457539205777117068426867379748300405406893683778758614852773764046887229057859436698149352808670200656973065101675499067179354719907360299890666135293926829735610431871098995794752659375131563656140364736179034287280020125439071061381754270060963164269506796128246812354230120463517016462723463543327988286162790643060791085722277175990688313419947970995255473380143561541494026487709128122960575753527618851827902745098585227010996986306545796009437342890068681577680952761473572300956412070436138257678709978540832557267564871120148083549035055496098284572739893533486425950860673103108632557319719973567182772144210404486191409980431712498512688422463519911736256260167382525691821266068297230104166284658213413987925284788726927121104841057454832681630949218287971543916505006988583947874549483896466431499713277267304885790565272109730795120862630826221747525336121806732084697336004800454313426644529106693116212647148227828291821866196776407700785061630826672985157966440707604504123648218123898040194710546757667770716453599961500440319232465096586360246389144331465230722484538473561901042773081886803384353633686566564611581584242170779131101929656263573893495895355428875068023087396493796146482974158756144510008609854650538353814152715654549863499162483863543896457205869759776291827076921013897025312600405889192098341179962186499855258583159569956322145338157828694621574242500070758613795275942593440544227565890859335911326994784961302881596491210149925838304247382156192749948751212980348082505769673752141778714091791665317574427978631180343372713512794689689441436535354813476073863416990309773572370688088418856202207341201588419468772348830827239774012793085187704109546855511537034172401077935941667523601061573796800666015081637884506152869337401243398736118048734880377481710635983179824511380175602367720525288151692235540338843919735200152153459366541491905307409675801373261062599167937434207900746070599314665241111563860517896740678600775567905482595527211343696892357449764874687325671416763287078121372952841634145151835492762914442042745873210522426844788169210047554300506847805486695663074709187370235638264275291484888057659507808147860872472461405997328619702272545838334390785348276055078051482367883850366272208847596450539999047858508248404454225330330396400781256926206455785799028041327713269044526347203486140395222636267992876080757127167058234375446545159288632506652090907245608252903555253461184084680882468705773485748677481277011777950557561446459843038390390151868601072917330127519007835215394721167646810892697157701481635908758106973239305318584374453839585383332198783593955003241635060475287127751139699800549129932729575196042658906150284642769686330173330261584564358905708633422102487495162229968931748880876604030547759817133260013550948175066612673513643577000871995322756630605009877339960564592957412802428984422076349824200650108602446358877271499968391119429582510155947177391651517363299517947883878718110512186889301726984662026900783307616217156716373948046552674007038976619662366955243745289449982476424982283073584296313063584883412636252666142230020588609163403913108605157360513719115695962948539609555170392499228344392006996642689705060419322076061297875314037155596539939838408043824799788339636249758590508851678960395888878553126093732573188823346657627442032351083592603876280082558347827987201161420812959344913845304129535574229035673545869191991729848016997430490620734000820184484621680561077049880906263049099679753878347000833160813859513229810295749315275997360216557880192896570046757258348820656104775441284475679067294760530475218310058062905274462052708412931721629495651528428408201296708398532833736640316191791948644023822992146730533519672775655386851745360505660010857654436700353358868000797908579344601376654483397345337492209260394683020276383933180739086921410322569276893721786139723151625155006785642124480614443955930049766276964136632234265358070259738242393537936978890480120650507586718966307886492859272164520335352801835664855372051209321425112690211792516621157897071893282327020132220049354116754764146148007587408900502818735056408312608296187727641831711255216174063039226744592509724167159787751146650899347202518287434478460648739228477680598194333464909730699314780522766309171960281521926402643995053264087932785241703916824848685214511038200656416089491634109317390684905726195551062889051570417196213930721017399677006012708471472207803753170016026475607894989601891269195933488448456475573578095607489962120962998711167565349396398367568051454132787431258588426221625321290081503514963528713691626276689718145710771234625139786172946760094601735332944364860349101056474629994200377309783428697146248968289729453197872191157637200770065564494405310995384665616908303683384359963215187766215009101340792094932294870118208892755896108618599024352259781669690900178737489996247764931536926446843900797640734737374242829706839679373155249042319417718565707447092621404941823375263858332527054948411042839852576933787946049149043465369832268360996006993218377723083987541570303665868547054657429446548820931020290399716437811364314070543480367764763339127075647663568449621441229360136773923034078205035421195704608799269096068389469773993731466336082316877713933902487132052589518753789656549022717729460464874079224169739517745023448006202051465262110096298565124774216361267884395264393251109765738152920739027370177248211297755633677432295118745190792006266387466329142503053898395655222151140986739061296849717660500634742587354118354974484294025095575647122868898462868653476544102763826355641496921244783178694819199284119248477469480276630900248491592501414193017233541332947298014416625401802443487579629498750864705122176513921326308126567136408546773407123571953066018832742596234664375361599790455922785425479480465505532988316489986993987742001514706597142261275544333780809491018085115319041983111811459086016602504366181340821969170068949077902052850114152303607394634054628956572338833029666871270769453776651292561478266594990931332667064673622333612599067993474249026794678532017249622271437149813604766614962785285153854113721032282841703893417394118007219529923597732378762082153019690338302049038399139849490965356004214856118910151409438404373904407568607670478436350582161783144439271324127739583079180615536545929397016356030125492834411735822305487723448719197353603024062709556854812583371846836464346984277871079917272547068834830642790568322734420281128684900751366284824006314156640531968796092586761551881458275546117081008666833747240335923644667796306898059188758162306445795427790295630290781590852309097376966502194716637447031125865291895119826414459739232884090293654471800602066458821058471527420186497479800399202675061839772026177059702626214515504641315558869418442135205436402414475257142460170554431852217542477504289198466840155154197936241377542685065419513855588927476359619325774198034158933577270759771651324498112310885676526953239105556290792053569630991115943740062867997986718418344532218353321849118304187098420928915629451161831613378257434835960053263975715165047801136585805198515587554830080532236653796663263526249970633598731563662349044007884608772967373319351734424577757715922387129817051109990310444844267695136852832929599068135981351308979888828451362068966116275629026306716123121691284209694559647909175839612360143158404576872731273997106171088208659055506876134020960237208118596859638348288737155783565001270440818703005830574140608561515054270495399790923555796849324377112231001211546630137573296624746961333535790180381422866647593559084015353104597499981786298094734922897232681875619097025724898160661903458194976713698670296544266437609216633550174815593224774305093033838970459755026138855629152450215524653916225308653731921502439966764529926318358807636577280866981147437795157254569150200115750054792895296368450850569869762509068436998462959056140657282000847841922801095919307912704847852652168139612296059764319737146704177531256297606108077665543221677141223564713197684438994455471130268368894102676978547900815446105212135135999285529471553535926874335549334403063859294098096779843533444950780331832289400353774247226348910898894785985405406347963830196958388692458685340555042051810716581248642735644765824166803297652548479412723900009793750700226477225626922176250479232088317330829575829077756835283996543369391596344912754766608725989102570140384636992115519653119495843465603955527665708691613543992642472172879136038534831183255190381105577836894679540946007453840259833574200482901687205262650128744799620701841436600925257614252818908395822807143572877746379532912191588462324767758636323039800411014967584286764805420690728088134555933040537040897100185048723612988022590571535880389034719669218670199036520868414754627664695114835889141054001003312455816947837543604201013703520583483396735944508037460612764238354570691673352588726442814254454931935365733064150679659771742583979697534973062854672004461838496343140365792581259424288242188344638807695107977324385383177267409141337970669806920009264126365732620839520145598516351695139837840217838806185392274555855415056303293354120688862962701809133743740240337599789093250059194115375901460064881576837053953643437182595520723059898728714129673163175069418369348966578538259898918083818799802279678911911180673692069860062173329147474899848113866542469455320148584106433057100957595206110445072956821017634540359144779954991601877160609446909011860272203684362044220746356952050725286479411971302907113182672984611613210770249074474164865142966555573297375016445756790830961028081239425837434032738126505503383703429740339346169210665871881327251983968433219353549341608232805115784823409781087414097730600021158507601629175501402749459389435503502761061445899602918386283784654033653652581730896772072728213905232764669342945788356659989642133172920517055521676047016735222690528865974974988056182114154955431824725918637462041420057134091936944473932308831992537091262073115415565963894855858850612753901562510851483742699135464041628513811419718267362982980254332266303414750744954036777442439385700726648173721780526740882001936366481790201950016804959868795113818111413168570322935070738191138375588124706690948012717066511004083953748972060264112069600616489865865862581380108261519119280151864974391583317866182587716559663946167620818165068390239598545952258923044359540596346740651023025733141210505444172771716914349940794226992654473959833903103438978693593013795816088999444419489544202887542335908763874095350869227981503180018026771916323709511703363576172977313034643778743988142501784819748729693489113462199848493489617028854394688475851541945589559815926108495005420751930637150883148123496959455251014549145014278121263343221647795185359108931064585503884215427618369387501336138447670541531686051709505971742374349030680792202935138657367462721498432133465150202712986631451619041543610905089840265834066663236482243083267685673824121933677637708692176679613374552355774748979510967876613760299527393767984946756841943007244249344632271030481869497506296338462463760577909036267019574776795250874685502099478121389694281676204431194832832792973548706548892720790968961185898445107236045253072575467374056095914981886138770849150856862092813795372286272095948908030534049081285669364007260692967196951775871883529083625467717531731214207299401717281204965991477765690158616460694340095310124279999692725843600927822736232535171662688843518567789176702272520172662216234538018398266794874081502500809603241670213359344312180020154904173631796728116158531920131759952375847576878815150107128684964160631391316777710283585385930433102990431044454394643665254958732542355904637777432706966162828436507806477244318931196189397642482120002983801399705385126611885233156634541336428340086080863873158487327044567467979516690688225096597495862303806030526015497432138217910531537931673415236858423450539557452006990583884847023991952312076496902166388823553785562979198135132742605237781724682043493718044056666353798001310590205801247639888226402935116095714357478009397828575810023976428447222835151424953620436316201822090969473263862589494573241707474764180421879761949370283236461497259979425812947446387893624858864049814095496550528126517729776193970561539842325907184663319558125863922361287179463529222959018861602614750442235781375216346921180725272845312159791025255422519116448582519914207594777023844383224915502918910862608446899474826367814448633839726709372421717027376650690468004362056089618784660680615730563852142051054014256684047702238575506184892328115958997053989473969760787883011789291155724538545452347109836448886832417725526788858872032339885667011953253098709186079625097144003372537466340204843342661726803340501722531780134603839871668381735310805996777142612946960420045957891608503938461158819340790249960094225070254546484263229714062505633635803511982282161157955711019752832965293183051604451221065349936563490548212922218769585629428548957959211049318701695751214037967272265915683501124478355068192351379816499959150616405308588068468672120421121202771807111453633104243906472804961067422851862904490684110514203580905513495090584052170422706013871610217239191963164485052146016489652040161780022187474849382504897329700303281608058462431416498436996360964714081427989576326807507669635591360086234966120602447706405830506111148612653747205744360376494505037861182123158303151967902570151694339060535332722634501932847608091303022065169138910564640485640704439800892913329768426185617683458525774113311193918183030837479586852720572129717870338869480426373307722258728368810162119223441785605584686203918557545857930456569666342439662187384096246849195519809113786477296235978397150793671946599450306411644865061414858669008584445431741913899895911384492713186062003264369665806087630109050402897849997414568148525415184643616760840293476559687417939736098106851063981828072760947927988653354806101023771335574428128996777195492118837600628607516745045077750343567089545345818593551444908650060777571056920035057275176800625590069566984903426902367579054753660681884304004431663401761277484635718173686334759478628122759966788780840771783331400695918464826597085982516088556831405853205167622858643460238762324962441990477044440152288636636728482160350033504124846975401709320222727215501248342823138315334331368873174167641004165180133118657112897432067961656359571132247912050872708056737812390222108522517253165705590025122226008522011869201787959266178707747456651957041202538168686530238724505064711151081356318004658021181163984462699538150634971442861537727131223723671396170503287524529995014296069723210593683678330349157775691393974690178149977647110653208994315035118459869619086044484930702074516389404416833834661062689311625951196703291030920104593525487014382870344069380012273945496510609094104657574106028284817798344594117150594864492760259917722616311804443239419459514925479609594157000358699530335705624825723601599516876450086931669136474177478612744787786309323197075967661085974189289403515902455935058546370301801163768286337821001151541562537594580782086950220533283108244794982730500062411061244283008596188891050803083760536319352284151458708059511705189231057722130369010026145427111878860500694634593574438942411251494889468663535119399594409785469272424120385157557475777994368947587884806904654428081799320786774144058912170274810429815181289109822816859889044063314220769602252255849488273683057760433333654869386348057142324677685498001549342147466615514544813624350548436189190582918923024464544284106248222651525170327072445236869299055566659827145850220090398183495653750345574720655742256363087121748486644386160861301242802071542587900607185897579031983220684250205661746026300771680890055300394273552028685670939459976294383580082338628683024820917739490321070751650750872955881187038960036736047498841164531485339198010179578369954230156486513778540950253174614846725930628601946448661552973385305442719596015479094719986894482729922302168949404117939124155495224561049506455166976686232369960511296525937479202598934675845355324575485540442897980378607180450114698166365648045548335180661280547211797693936361573667760690707041542405686457162903994805370310619852714020574115597771335076228204333632286185402569511866936378789902758587454216809955769985040975587951316092561994467147700707895597185950955217516941596160244435923015655352365691412412447589084722365172015327392018782853731477154439446865015300084289380057070352625496149761485613896591327073766091242041458419720057015423847254976941619099054098811915837756090645934431539981181236311680474872395111825990644643546735545838725133089183954325181677298957059550716693192433158215203070802270701809350273092768058599260049510676903906226391163572570625394334060001357891464978853202901701499234266427550116425904734797449256753162170344384772426714853566262146842694690440026584125106094298336478832000854802481757949698627233709413665975028418036272675196468550023371597587400484157946886500550991048108882572843226691920746821961304507822537521577026146014658761380184527905181959223936649001199982715089869032745526183031621608016238113695677438337763278078946015471605503013115060430567536175170420012533085580070515830263513713373819565160291361828557889600718494820153074932428227214264857078910896159188680315832442290597083700367399419567088199212964346303618435963130962157805538581301981009440078743561049323929511268981139571861825399595991194047444134949895868424956686165348674767543658588790244902734243247240177508306321164411546818816231814653538226243155959615412993782379614636728762796230095050651179130361097751942044363112801625437320743991146414518389346673600514447657915027815849201679152039449330956741392494717063479107850504448951202017044489059889970409624053632373269844980771420187190508650427980418594126153918942978916445924294474649116573315372081246268421067954345210400248039993122121864931616797297606782807371095661787546329795647830723349569156222294751977772837878026663146459897916419044755917512373274398545710152875802211312264847176077023238768870594445252088165333302074075865281734764160481214243485464424949002024931095087300421586435378545030575020568861221551348218797860534823328720163467889155474162783804571088445578945022689704675296522992588162903686394300392397871545397796647305828453633413405619005980256878737645911880095229041653357620329565536087644335904364873911810772948317465609562793578990503170127591617056846364390938268522260906424370502619340440729989912838707790514142770099380950017979244869216337867491617594661933101677498504912369886812914110566489588170303861359766453562618277000777435387527789160058688148398969892074985282039210215764325124882781143914703900229645030677452237244092393692594616046436271835868892682986469473365844930240260737566419941038311596195173096955760987275801515566134000405873966499867004610095021001511486241967980783374794899456323916448435634400001508468161189314689478319356842654657794632821140990257409771483225761698054945331809487483698938818159111823650887062126387834345999244807385516105131636391941429822200610154654409479730487583067257298233484449241265002419334718767367631494367868265232578084515704266815334284798733123036837002282665923381058067523099853167853409331648386079696749971105676942871737684350090426667619455435567140073265510572817090872618929916395014678035923871562491612312245441235599691670953561639299635476376754356770796059709157674854088293613324323318936725088744655347532923924261055485226079361065451269019085346339338016881937277438873727544505519720880640406729754681629860261337666304837666032835958733202063429952423630820758520155088603870295098329926629805785262351787296414857713851178637104471476828116017398243235789027014908352439782874543207874422184909923294995069276339189410639602542443005981324420723245829585535557670046905102408317094304329091612690216387726415451324525096685500607453910360458400217423610363617112810395117668091992427297262371342058909513625701451098942560042207403212209051336432302121038889920266279302804187277956318492170742060834323519880352723506529159136126111142091337529473467262299519109192515449567879158460308268420256088235714424315776319090097714581730564275026081426803165575728905344678065733153155101018390428138750403200718340280378631576885316143320983264341005714588453102074686965606763724814958229857988016726017371463801250046637378323620467715636086215946041385196294675677354264560975895936778778141236795634868607124725419138641874383574235459283521121617266720016997617827511881731283201039566419022324856280560291260812372723055574413319934383706999711339284631638327851343270504356627706794935554284844530302626766919044885373490916704337673928719017602776244693632274333892878250940202245494500096361088152681310912584270462577410707274523605155473969376122512266541626814520805289216206830726939743240697585784543355879607832498455385473357396968717683884514315933734661047005601369922897389913492270335915290117113999376367309785623342113207674101362274559071120099446082051054029660100888899222807987132586631011614459204380924428651704859891390340397310483910107636103424260894455511097992399714930319930895611165725453697675425409626735723361470126867234428257375251197941650890491769204202054675049902355870566732534501582130905867962728714229140164505116741278522716024248810075208166016510169438157760528155332914327461925720589237537841827280882943771402404166485455370962394394850628816323403481308754228735471198580430813759082603863145717785718107838674702178755823485811596751502039050241432504914771585393553575499416214267527496071328217487363972883921615373289948544294733968084635465388774026670639166711993857964351086145124168052556280499487715611140857167253457713177653014262140124685639176654523745694594313198582762679632554308923027863805814057976586881700930071634663795353964319993962312274597776316084049001617497398561052798215708546715968596861529512033284516114102224833706881538346438640948117080872618437190861384096130471493976225615488576763937403056879209441988575279368991183780505697486263457490615082604855515136423129751949486614625928135570343118434628437681744189651341452688618646077574936987939173377169239321989160763924313737892580247565541952040854248190021166279976113588579825812424997689743977712002710331264029377483404715487585475876805862168192807075324933376911952549824753874105409615579296531485917523296481165377742055022331382927773986807089868920140757705213009210343263538350135785748493936657679651625806489968778654846879714269098473166003742586783093447401312775650659366600555524191333037443613813648073810833900421875256606111014054713073873201471821352583073955147655051571175948823102514407315913402111640241260655049833727958563062508221162479914243890874247525860478822436493813681693448813631739147316539346847731042645273540424822436249859945892640861379219998201595979575527020746862069194750922352176823603859770738863105749993449870409590003888573829501615229270983790083400335136532913192670556922222491415799670112752287916272049983273534378809923498259840691272555285685667459744713350603093236184326688199628720335527539440886476297687221924244055647996604665454343880447309881080895617542925669993128074428794456994673490510538616150364107988806521361878309253510530926872549357806356937283183497492133163306355615186201427824468165837823492505038725808636531363946729923170291750662809857325663096490507649080692356709846286078792927132453739513246586783651544205451526420273422894094355331040724171522570090959274948399805136332934005279805130038028388512000161844225791470928900976337174842611734441520210645263543109801728043534005731970091811364396844817173007895561879755629179369177117430617132612569222939205701646042673504054008316161973670467020041264304071944987654353306161858974611337792013751332049565265236721315436906164871478766323417329189926468652356616194234071412576744764737010465924555198962121913818874771768708725076308097391949524331609037943707875138492353177140596741873931266427829188227494307956710697933915474020129346393705243186860528712314189207090719935626012335187698960742043503397299096766455971481615128199736612891623120048099489660668157581753108774857764744496558757752219989307070919464502395402534002837876186709813316497357736868241699720669003926958776079240347664169228816854016884086065396431110754771842177129960252775762320942669882139746656336491512975830751725372822462258814590340291671401693717752349362530200658557719525436045806943973634519192479776204342294616689173358256137457057647768979779211762130218959340380025339851270781837594023177651377744731441221390485928555358513488216513153864930586105346788220416262214500977281394843469987926188807598553945172958734338974617164906363495303786700843330926981211306056899277606074974476163442819420844008606642269182395682557816792179720567933553549726118035327185055739346544071683898232903742323273227492028020658072756033107453721945105238388205205091169328589723432225142500312346640758455980479862806127420398520224618670597400717566941356608515239661692423742236310664805757923946187742824848126012684317826413136539389588448316610996845276975570042096156523874130380695416902250380564333433249869799275567646748582067663123448755229947735824909251222126567354562334497957075835151631343044979618186227830771855514116770062868228218375267160437531908330516720484518973701031557256222548492384985847148842253764665231074228821809500294533938475385708233069263874932085508645732256723551726310810807320883004693391928408980899933974364631678487828824308130649956750689416472049318681469305020810013594495923107007366374902557321481881680739404192044706396360348019495121710627728308535813607435007334467449350197262017556944066275279765933896639085796029301933852592856094747385730343833835218147603052998657203325303499801542810435925550058134174318503974307151953121433700692908761633903253891298328420838944831427510042919870587404432157034732555647096684540057472616949566148976018712817043601923531167657958668194150041943125763794251343266264760643831221030022468534587583532092816980116443809584256605648320244539006523809409397991275312053942303711283621383347627226451559281195597656733907230768445640757664996447948165805140773004032982110765209529682717693144407310176630628975584700515723927909897955526658178134102247613874709440510923522659865210594809685167249645814028417182225818062188575533625397374757571458848585132144482836444112380237476644540185096290787684454313854480427984971688374228041411906925386040168215794092021680526763215093886670265892979848224817449719864928711498592523492753421700639402196021194465696279260201417872177641972577028755364662422013293943730635785749062635070283947650306221443303267935734876437452462625415532980894667678948490485852983723754388637155735600143278328068180363017969891107635674441358557353502337266298267371663759738365783386488366313183849380390908362443806750952760350203889097432118439022891340082898599170886660489155702029152001623180558114119920727054253003242855289849654591362980703240589940963511691227006137630410903128746155448531582621070527428719568743496681925810051094895742862804169972464841193000128433477170693209302122738542567630439395999706245983406277938111978794256987855843867572766649734449117503817588142070641518353499103442920818447028377852440439041895514191626198761903862114666331750557373902066385491165444412251374310508831691529711058738898754448365918772527695682350111272366158101280453667038497220746311377389607653629559780834648893170988310354929312353143776162838473307849420045765734058522133456298254109677622058814703262065199836489591797748918131858950164824635874880214490888313134665336522717475484167618392852690522034871140321321865596097848160073428134646870103476699709390861311610144280618606601212716248134839293274449356273188289982751432262738880963533147149134769693901657703038578490314422078423399052317133343980560614737053378947339154229554071670788562164900432028766103217460206570664773940279087303405745063323786911063538986272480672611727225594931577232107251017435457332979289768450495886245345429387642772250416031345989958994001526989538340676720187851730688976419153281817948897025626043223805776969705888874100950098203572357462444895707885828167149247859554731978589025500226175516141637656883450756390276338136757509186978692288373715615997225535445196986732823350164864908955558613677637723865014794989804216025208654909026287779103683981407623738537695785937753723204683468730680248569903781305996352388737411749827326100345108334771829008147020319527673420883776256738427757137172694399320326985801618285559972949465911021910067088904586499788421036363661269066389841228830314513156704355976274579627220719029089996951156972163255066526584601868079028869316453830055836479447950153993705815638500093976616860700948561191981346834051848328884223946687077137139214106359250611327581791051101430915754064800354277501718936247575525938694600418446031212613079521683341122420575528565517798015914783578492688045875141849324959343047271977824903913229264950797114243506987019019335681067854158000479930578385825670912427306817691655483243053067995482673021158427164300117356237731020572968901925756689911603269322056276884618774837372498557126757792349309820585989034280237103664683473855386931505764983901079136375354971610358142938948028441108647350920885738278741997267974271818066593580406492781835231974444720978760476292936614720768353188354543009655091126265616676050713791844469207488099428093967653200568213980541240900171041000080671930103898052683561946398918709217152130242571949679732272484680688070908533242829711356370598437213429255356707215236966239699769545106741192166862980743899404532940890862103067813632770919554198637896494619223555445464261572165595964131053517333290892211210615349886846317921243196501798355734910945366646082861201937170054816142287387566947143946199445244620428982581371007813610959782767511279251520386479621629431578061847651232974273179067481723496578762738430737817938992816782930958016054088251276413403135814202917951351591928097772527332015549725582953693370629067346006460915696982771009493118193897121698439515595362326411942972945148764493354522482458996655327223756215939039916424457264291610323667556025810276993964756683012271590585320857551393042259666541317993169830744330084991296529867708670979377570847694102182344250045342616901632247314546079586380301863814130774343741364796961176380399624480338173950868244783400702736179830527102617424223083313985780655527405752543999093853542252644624576217512059594281238816539956297231023400886326036624318886078112349920094461052071316425432384183928295298920238648833612857562351849044051053402306288373428973830169464984001374541788831778914736459506885527675513415862846777559958867884742077970242845563982612269218915910208276949064265235634214881512276205942683793239508042839113124537522016476096851670940828605895601251691263293830228916363097363397317487306939332069608179776383678849723400082407411064194280379689733220427134803466535596444457764696483325941774677841028592672271272694446148482290402078289000679637016317623114539668025967668498373573054585042073728062247280623066946047319369328818975281754147745053985571232115500420499169589107386820114707266586059182901247614792272074560051029031018487984912003444169531176492695721705700549378438938720228016373145352972301067596984724929298750463218773535904541417944902324071734636770238341981150424255212258119753986964964060036066200430653158613290411364124603981929811397449651743462564186496042760995681467940172457486482445920462354068961714280105954858265809391293465440256975721248090978907235436106894474950915587181780379169489831142310214950651552190082893670035482378590854124588021811573691932545084903923153528291990335275700562585968553966738588345093877761019720130815921561132416799104744922983002332341137791953466536706379093601595963825655876685733975374026540022893060795274383898348619949640466127077656777596162229504057286104108087751716197738991178921859223712600039536008630944409232159303320144905759437633887478592221689499466867443020853700590542590524186022321482715227353946066057405668222696528034123885049115895760686027837669688471837586294634767187417009025000512327180194789548178591431313127237388223268761659994414434309455099163872447176245290277628161550530568942475076869703005153667119958814937165528157640853933596270155353019351608939022822030214630595623277020856432592949745724683272784976886131532303939064121258162777533445176394536799762361291209617655791159274546976937446501577912522775585346175865311439372566614712582022647302877183462454262081964325229083259188340676523056122124979983674669261857867310539845838265557267327853994307443581653506678097121141694122316247515962595885588937597193421358933667177829385921290524313117940267486503428489384783822044152132040161614010314387386452076596694220746731540798709786522387907884164810569199781708783385458186939372604803514661569214536522616449252820306783475505594999851250428216936083229543358670293699145158274697691181616957062547195970260430575782018315813251851599684228157245431831616020949150898986737740244973693687473959228955220843415307821590516417714597108502848143654214979707016357664613876038220691496335921256982772369988700736853247849069364389253273759088608578969462421175084705425335650308619963310327058691007534286118564710966541338183237579737704218631468954185615223220516996090548398038621969390680367692469983415042629753443825003619332166593904981893345831160788947090202676531373645589485209449704452224760594391712540774039647828297855657256003273804171036030911251892311652329010273678150827860295970901910418517960777831626426053398624366511598003101531849298681405379220334125671160182627501071893985012121196200450779897315875535185761621143978959531205038435824155852652321820345163526042862785506357911197871148368894971598298666081042048170863118986335783441937511381819051185537085866008881433484439686876178937167315584120550073405958540752734004695986332396901955107020436536089049759343250154795988101583207822095166440657261945150033407941476131102547695383237316208830804828153278080728843624899832433599179450675523195355508399248937210973410050446933811263055514894769299827345224057291253684438958019606239174118889815752281986784737840477305868015482641663031949234556255180546715842796827574926349270636661318949285158717037899049599740325408915573224367898263476275511207119173528611564643762680429942448942544174719231766957717141940098130368086479459583268152108136005001160784870377239261181798995023327808772143158894208304311420764950665759570749733356609842187545826173161927904136887241428106512868037261209017976178657123923864105538735608540246193798141507444420402919661958348720960549128227232704828206046298601333794928555432317540599957429400748021080667370357341039743785198614266837512771352537032962595657279973491826385620282306108931746763489513745983828721308258787675349705077373960290534770388940673631551326136599955564849035182253917547509745316918408387029411356234904139603414475992042036883310501525457003240368905991383050444163538819986457171451918059827142345615838803187952952455516393320552813641596655922016543763345819743661629029438729860317682159446774631631792531841164093179125819506415442810005046722952011171887179615399900869704237378585703713923265924071845048183283430238963911436378410472943467575271426473304505345899104030733812747086787482807425689484473540169525079352337220702995312947001431536011319822469053078040326241306289183900866249547004806808851082006444058693640548840047398482315621873239506126544020354777244924128594110649893106731620527685496607274813853727100696198729172064422155895367357445632727927771931587548329938015146521898064875195388091654981167466281465120577095216179204754608621571499306549858809229763379488248019337219043460622204910684367490994674361444304195792008970356872755778192648680228714477449603893575737883665775297087748764710744945577363873959848099532772225161404020521539653139361924769885393046944570065459032134497862449634298831674371210502858125566500883284238041471586063322754556041766806261004405565379245985006308205400542153185641717586215741805894615172341140515614807830120995949727389529560911156606227712869906937472690969128774836228708885608776273589537509181219915536595688142697098629878354534295563672619850519171588165038648264088833627631987071999658123227727445227542822578958874865941139131660039819024197460114393611867777458847201843892516174832916049083650051327409338183981649915021786087966846234289933698843341641493788245899968205160071125839521620572695732068735426557565532805707889820748799003830918824764855154399127956094720486265747386728127335706615530580370790920709302576852097094498163804937328797159093541632370226503781049255797575663622959748353582304772167879708762559319277704292520346634757464127408976180426177835191726166252862930678563181123831722997905070133113986225201757423672644329563934619360575099711073786745575667020600588869982507917009996059347826130709443412608859121425393678698156760793848519228271832731593813530348932466261219435725552393913824150994385735316130854580025669314813431778624537457689000893206180378291162474324556221851357429402853013573990505914385903997296795704034201492539945177401120841487872411574147390029134843344109878615491489183520554328133488201568168295662711476677564307080761611903096410464316986654012005603302213870040991771202041033500180481546540057237700882115580353819044099064425689632506430887087269577863860036189225520422079808156918275222803699592219519268419654396500836590406802460602627233577512076649112243091891088397443326874402932247402896358215091727212078682640018914718504129306122432786788820943916953835379420782901529855244905507845930598203359787575335288435120254791416590726306143389150549845479937325413025635983606424791483717999430210521970098765730172049602530033517397730945525330250952514604220367098053140318822551856228095765689355871922914874095519504451836789352186962314565481646134314314917932578559274394753778853782206363066852800368566162165490962668069620334730224725051151134441216205133818359031203943838454429183853786128044756696401730364308716858174299940023926404969547978562513287578502353520511650586556132350685311752827649948783925522982776251782512295359568695208607298580548653232391913309816067291707318891976703053598427074928781433271951026809163076243207711361126760139925387560275575939922642605192881634791044343433039530911943152887929210061848780014020851811294062269599678853893181885984930015056170758294165563007963733459097194681846796855860821044081069513630022569932605504727382783044882372141291336487205684420778796158739060606251976465166261490040669191292937443235305287694155170470431944214242173357161509914872486989574535171853185620050216024611565717682369633995780362826125985888866347487677133666567602342628329501640078374462326244858588853999417444423619301546760213500518013792235614326395530793683334261479615159217756958508075482774185470094710818297407111029746038870860743917828226900946087221744839525094728297524479804677517523368705644874770937211275545254816706278748909719084347593446584887660479023804483782543619528689154822528601270571445184001628858589983572561931266035644450794661418316981982251279801551484388362398116189339811052831939050361806492960897511139998345154102002394414956834360745707394145255064376847961965170921546540500244491320482837111657794419070005980351788127355140817434204131337774110872696845680341522633351698470562532914529443053675190780857636420316317403518188246040091066405498135833690169915033455945969693571917134432129061370515413143563139151209555625544328239410065214184060624531355163341840321386015929951545005017526963369096352306954760949241723050519377889831400582101811002603540910477631973158547030411612849565334037343072561153732228246612931037009307805279644578679031457189278111095865160361160836181787649956865282708300103188075302554734178746212347278819481925577201406199465717743283458905904644581929837769289033066051427051169209172548276073613102674545971944051641893222055770672720325597906045472009663868236677770962309168191446796302009698950496553045525832082192985589580631936446770791785319745500913112900479754653559971589305327658370808461953254955653132598048535578762685601643411621115825140575256030832629910372894770218839809999738813281275119786487568937403315057964395043473542201171669592985405962990746435232221212521288401263588173890449983456728668207272220028697787567240607712044973426706898666565634719923821736759855035167499987495305446061649051410005503471495053245329735345800747832744011578489229468535614568922072351433390665217880954104246207838392674450170687160176851177250221655840876667595857379596982179281112901368040723353549175372539943134305862927450690840054218699123529591356150735938331363873053326689156902324946333917399858184843494556548471887542734157878888294117298570319675411646855012415672177546502606006819354701938617527410431593028346707883977100146194968094285105538788514728185684766171315321327898129595995523596621527575063307993486074317864266197024980134255925279412478800792342310068462886163609527700191888070505401589958979358223444004927512580662868619377697455242521753246823815283401075072003118976677224907463860814535494479085437227162765777123554099830495353392241347204670950055637050442137838365865462401723042556567011502366278241486488108099553807025658135203364878197140342357496120235365563991944853159636084590455454752218894260620549856428626892051038666706479789333635316913153346649151197203298294818041885814127873088719356403856720163528512515502456026214973037669584747492096712028925800094619362267796188279025792891131927789828733735847087547753831429918434775715482244569546874442670798697980556754494801235190238096064672649687625019667969667380177439596152326576556450183613216273092458965363142327093768270424322689926737179912987572697807252641694879156234648467392679454136773128668472657505355861568814130747191541147919016417740973551992754844645790406583600198969142494599346627269937417487885045014350026497379211412896703801732852208056436580873651574711960057872080798106327806622789060125755927601274741553366043543476258940590725999329947433532785299035510657186633838211485856710882013131543646211292762017738161434017238945011044811392229332169693972211374492384431086463191763811395957110894541738138115276429156013259536428975823138767035162714201470637347769258267642073877055882298970138180198325225409826818634592563709983521576290316726094543849253609278685356703591125476623978969280872605918343029385880154214218664772050405338328582353608565762475525506215039269838740485109171178536897292801631449952343572238490749672830735091584086946564318913102607828657662095631469662022866241334356587788033979279289474032879202825969746197137488689314982978127053637865474821894658286940141860365398272603562403807254851504371133093282477452772719031835255895706734519562210423094018899027109939443230160479399374697744507775046703158666262050027365531416861903979730739811918827092391768248116286693598895115523435957989390337172115834622919562893445907439188555920200613377947866751193651469348959580245619479376663635094934173975116554783857294762891850303278866736703522185513537693728657045178129553413590483713778527791512373695668021161501264291990514949396798971950946771707415214336204314041227938398375584182438906050424868240832765209755427832299050367620173832544611244023124744992966431303682785428462131569190589098980477412827713334293143402733280105625962888477029876059946307170696849387691758589702503044410006762737895617565758150792598636628511743247639080831732464729955482357268493765888221710478660610751481716711427109162600723603157436045397650935567498508825343038287638532695416918181874328620173129860395909735863407219214662138864255907148778254196213191126913965410277957006160921907137654883973941206388108759531537942329967586863966650571196446250992143556569370971073803098377342400830564740544085769003850965169410952648584647244413730171411880589001517856770047030513715244167150075745314075464552006733214568052120056864369562603853633999913943272397872039871854990212429749682835151996062161331695802626535756707206491366242790476650683100254883928672586504938411718298830552945978812416414297116388616389011089058556910195441669249949244502978868612195674995669490488354296586281180414568593483354675291178172892373072635543642483444291534497685634256535473406574544731848724925477259556126839029876558846041834828677198140760444286287275832333370165817242522667077762690071425530462808750941759076933168686014062635953121956437311636737023833458695197378047689494899438109923512982705930046667032689557582763219731109470562697353327274818694150578975194642198345468628170587870888190535335419006355790074961657358895857445230453449587321623597633982204237507640586127205824263691974885611766927532141301759799728898741614451003481732557469490828481703936699709476199907180401560092943090932800507909295007255641495769483192551778941074320810524928386972927796877460483653030354230919412707752467568850146822310358414597166850897818819960205514622438529110200923726180889914575312021231700397079069777260913508255777790948110887524177527420165216031406321595349059932872198001613131921030766370701859268229799920831875631618957465074112543547093786904952687047772488121843788998443848990444632770451220675450186099244347456600066538290427844472846925407763902604579069832140594808661709050469452986548908449602611076187823600569617017466468218268805317731758187578735911893645113732305034721229449547964806907530688755393867330099282349433299877091259387531595003274473289921231821352144845557711672573785060144642255081139500843147275453969673748613045768262532996618096401098837412400726319715302906258445798362388979336483750625303977568023166531873997452314036577141613595367584478964419335907791062597794028314124624905307810672654611612086645318333225900917465986076555715552492264504193068013855769090978354125919861351042189358463559223311665661045957010097957524469601318921718831660425569242932106662440691598584302357150572221516161200179902525769158060939139616487873000811792903431656732256509263079748834178046761217953696930493464779490971081334761824256987789187490191758711422181287799293804178821179551226693262093204407974401294023794555076641523312458009214893353440977471370701818118398644687680397164154352892233395600593332534330937581855676447918463604985707081219583998844235887111927727895164948056821184237819966754199010174104766423347559458442669387397490164685515722325763214204750496959077220872301749341015149041268237364984164901678884168768346462186286887714626149446429393739143562943530514264022406937497330422949875478176092391957406247463129785986800288230451584750652158573074659492965139312906156731707929254485424671825252195690188077440990081606462277657097892754598696386693418237802671365807522773662271906646766431179321739014924744668760835173750553472895385463849327859437817419206861678732969094743718799870418546513424019975951318172816961020286221871090614691804000406381404091515681510501117900135406119869216192733530472644951920710592678634454687272217406294512057023486235213349400726322030413747257549786090426761338878564986418543598641424972894050871881867107523091384547560561933894126205880645193767037153547043698251727415349965885001781493102919853238724403715734789933560971916193417397686948545568943114101760327830514585050146581856259401024863186760863696403247750565702307006918224739422133316941759664036166168357852959362351568074148648671435029809012652109522538283560254926624483043183574651490421677288360153609703247001679095887689957155437469415038064296861468132202648211235358080598566421427471830387270823816632716812347716785675432009943495330784666883006871800999710379339627650849282251269453696559241012266578109733464060652859380933284523554268586619139150936212257024270050179190650154218903739337182831842072849632283325465897583486515823505650101928523942928567142029805536492038509959047713653793355519252783208311194120678137733906341473026600850621750552072805420844231085629085850395684694526835172003422496253471035569242181847238603671703831314393743250381711271777735796110181179966132551955549121063033152142023736536030039378857398923331561421238748037680550332160826529696456611243938974470450026774003882575544028152088989222150254041696815763050976145459344861905901519315339792091939429902281241012978665240807997256121706584417175817798796774967137280705632981082800345334280629752658999226569237525459435435113219947833371760651557495029209772868141644576518674433508113894059292776996139829477058728516468709725130127317334756794665835823134217735019088427005257546305190865107041687393480652261682712265355833116397211145908507455542675187206241996159027314290359340833089482213539381187210572575746900835524126500932049779775381716353820884134872440687993453415226229644244196259559205176642308699774233284936869693673463869353272696307972638768698611388557844013522160820264055951105270755127806251613847800422080582820553018449893368060614842203440935048652844069744431079700358162466829006936090924854458314212610426532534261098997462840817468755688936282025246906531127710238432371620399641209390562459000049784119603639904854711846575452409412799949991055871706121607879789562266909209091157019736256297414698961045165608915980240575353163208976832046967518993114255071869918522512892006889418314320763880993481723511241035922483236871346351672972063682107774235115315642408383110401712458442246329768374817929269505490567914352013436471205200293030946432576586586695255872792123098832533621401552933950391807857662314662295135097625518598163376455074537741580005214301344213459705406949128566567717600121982224842831513788955796676273026837386904150793470400653958154742033317790554128766895001404606132659956486182077114946397212709039340525710884123057753247295547481022814254688862803122261421781295141127657904555396349699242502964897117250025889224234202886238061375063497845227978397281089546827936378362632003453989609369350205300939463412005504450784532560059085114100733018680659437611188795096223201134778113708349143995648263699082317310254823043280971134741024640967095977155830520686352962388586212593037919572674970509053445286459819138119440870621377566295348751403722071614554227877673887792670110275945852779351268922204487619204890579916286866435059149698172743906148814910680604089849281847932111414600800405965707149672413353063219987182661638044055820615689890790028293417493553854147557958220371435440085966090853535579529613493288025510686926205892129292091711798477743204619098351671504826281257446392741373193904642404068309287892636054368232800989298653258719073779350764946573218805489074238834774699004038230927050618040909774589387094664389178915728609932705293958960244232908196399555972893303022819497388045371841606102269192813658996756553453507241809032120406786819530727226704677164622105118585555698582771594212484487380137537114635220359673204146745038153786663919461596870961551819117235159091806595214487677709919945907579256549939949563998006981057134001156637418707450170053176379493344675664420014297775817853834418591719255034144570597465181166695689165418460141542430993091278922736903728348537698679298613375559626819438714834439580124159677231480875637779428825538322037337297283501827138403752517859598106239311534739647762686727854077221066840915319761148092084988306661904136591674831200647336552777331410898735901402731967554453622202274338357717562143619950055861138892700045487149256933305960817887485357026517941621257356593602167460367687663484378940613153290346686492701429510906496389699187057043324115257459934399560668638900731409934270596231895389700066660284530501473884936223752191610211757900628363875745306292390326007894445211511022194334785056836032362301545623604687962301252711603154262177595706791501274241225736959349698044220822360560373846137497275305005305080654700367129163548751877554635125477958286534959073916449895500064440094931035101478633733260497210794211039509049091021679161695637688622040345122620523380305651444882553109238547475135325528591442033300014159810944337369356378823775085619935730544390980103990948170480150805591459970820408641653826187423028013389118173337432146578034628592750460658311319227062859862314330632195177436587832654687312137737893414716326150650578450583098228827055988025710371666628855494314092432127018269128619348426553457536550696307472897721890560930181845203876646008886489930841080699991352714646164012558842174271840267352234757136989953319359460269598538652602390612075923108786884694074082239016560111067613910733057719578536173819012359501845883375509264425528166782395260162971978746229359316779174284240758581659489387738851152785448859384219142422802756027108850544824560467247843678734580725043761264932873048301520837812859899690600255679383493446183087551826494818983714388232711664777809618500347125936096283362877727046459923865453362247858733515983862768191612045126614623852807221786012283443735413037190471119949376241747838613686738198952588032586115907642642924142292590963475638333956618624357906047740649846638988373762692357760526902285416887859614689107718191111357165398729269501405790484588941931235851642753568551489376912065126905778981880653204338403627495338922881866615141339799892474468107453812909277023341013646981913480257963858724531803258361053346439952330894331326189500922111785510179151691234124095551228860113241264505492515896367033752160988378816865980804910163679028394678862358992155801358398199783025880423138878974513590393400202538341755060309556733028237637149245743598793510034913668808240860985805439020118986417745124960533282293610247605833199620441211553361955231402603059622088584299438598976938621351147619788441349634151869783593585696729872114652128644554338420754715908684738050905199125861220249884433615543841214404061149113622109441528715648832192008685522439055564674391594295820476054941790987828680159016316632499787499785864775238098136882899975791328519605759582555626702628686792181787363107609032517863400610226326320354586459662619300415272442504368175793430558485257782036602420283033060081645723724789801200564656377927493224991845693857823236660391125655383083928558713004902155581106953979245018468350302236826498170205507689225565241280628726070949322247275214266219822942868836542241343372864076917183243282686839963563436220982008501509266481323384184796611244473387506366630414434923545249721695327103768181927429573481001230215646366289513512114147943371392663536022535031772593327160132660409148448584549268226401529168475106333554210752618950014698125340018879847530013368439007366096636376841500852939741785098322961311884602265757508108435158256655137409528165227323491517925421525934996381102408519910281632226281819462191192538569246687988654235117477806248012820309612498442132808411535297849983068113411754949733208107490972390886076344172117323270567546257287024016296548409304477970608554966717145209800670928585804047493992457470098602207923515725333638731662677660216303614849231623576038879455808995909163959682105124297390258571740629781750189758826789767529919133296252596053236624267172996606308552611132481982387513790867134481218552224117099918655498178600906229147787695886096794365291167722138389469962352398931792429835344359368243727758211788645015784573714236260952534040044648436627477989954039013339628247367712588798284805045728256852932122004807722815543197376884456793721631805446753841253537869577532737213593968269327890615490886716062344361494911034890284511853029140591165702698054561301129353645353190848972956913937571913929059231593707031118273898454171680834549177996345960265161582113629732518246659622491531570078681522833556575850266536169571218834731102866866588693511504655859324481742174156996746335687074633521524163608332426109660878310393099507049015049635614014274330718074687912683115152918355974587285870866420021189101852174019568568043017840539797276118731346242017105058641533304820969449822423687299329246441874696290324042922726447895866577108742737167005159133123621932790077368152137282391577959778828477631233730707623553665064489610162525220236392204711985056826437468836625744817828366772538933981667495848136292806285194462075325176962042618828933975719003314010217907541575625372996600811563275733088447277802779271882216503187065011723429915111627811719246074691613505783730181724390239266438150711744601566003694066436720187342668215750438775247944730513171381883862617098017501663664926821843796053206523993708667988201180089325471627378664904132674511062954549869734457099605615285172199973931591222486290818500396871443301707415136119163430124702134864980674577868503925494618075327899214654299061385173593165962117679183232232424895143024844327995277381842858385108995967336752418097013602902695008387779677199158985643822461044967534014608270238195813240819453483789551930091350430954015609571383919358320263093790633897668308754899349868536576744912547767868915242848781531966166972815840930504366211605597048083356245511284564441968449632589514864418817816200283595464764672116868358234091288297242329406172381221758329828042754397367393743420920747416741205605929163721549558628387904060955029364511964869341265325723669283928492206512168088910739391951772884641764405130186638165621603450798202381507041643994101826509265746779705912849740642007664636777960834639940409892658338474194037995112023571816609472445788591533396044223235275426259346002247311232570149146870461037703291198541020959963853919940375547188671303302530264180004017420889111222443520326712628286042070504326111699383425166094396734216643935339683012894944361149594401012821792430204735664682241263369767712715221907398363139517693743817621548630625024837766530840392881790719069642230623942933576293497719709203862719930990059732804210706866999597504637025205576210259102100486603723818174789033998720488376394250916983357165409057400923028533017938806282546729113161716927645165924986695922072264756498137190442874007010064692333191878064315744393938484561487805891377494154246225756420456512484769344862889117940318430712424868205463638444377555359922009321868189150158789768298178684859620305655987674792939109143127459292440827413760410771349267224547135405935929273961953393570373968658017128609822782142623857071862235684871676097322721502764262637581529912348515854220766880774206790951047046078460961177809602933622483851532271928124140707066495751278072427676640104250002519150686901065692672594649572166025448379608809633398125630323664872412372551169311730246821036248272317375699822370317592331717497157220730802487006207998201771692937169960752155478985672857815374096233912530960125235275308240067825268825081337501946592495856730312641856226474548899016756190470524585923253366290752684133442758603061410218668821427370982522973703162647879953300913014111418760226313706278531480518682127903262578888772485231013846833713821172507456694176336976371317962871368515378117761920009544355249355646647420520780112952410176313044087059692556363665097816534832644339339357085157303979412404691952786511188682009455777438101363728462154466686166454416257262517284594777501692194630370955396821722722954274570984222484236095690257576486428771768723640991504146255522060870047394556055815489952416600252934548419063446381232731564419958781116824388259030109571586461266829669340794900535138519793250138101875597541733251794677047929573800507596035017593115409869370938992356981925082442100256420413794083462799295234674898933645905456930394234908052360686907921998777823106491814876403801598163095180488142757086535783425982530041808725238236429567786669036656483761822622020333928966399066265938596342512856938415903687874371263713655729847388611863120565109249876315144755649279935758209709970413341146872172609750730431741174098406485883691627528151060856145159231339667156839746224152992900653897291574141402431120498406119167609194573749161336952510834561910555907769763919516711475767295907933791935347984580814982489296832100284964879051554205957812222559975131255894556386536631789586552429265736683234557806742983553088923006650729718994972417988653498297981833980516477393103213966741911986006118538127730978527072799640945031887477576115287595355644633030962563492487293226992584867753896303662971939388124341573501910936788023897589128814978057944572579991866320869774086646943358688712757043550162796305816946945864285393396085791770847533778830512041179250986525703412791484572603429555955042247933977128789027169066127748499130456303198313138960695186069377356962354012460281647280317647365270753239946960881630245284507698963187988500493271158479679861270412013448605912336090995485131381588908415792403150568330264721020531820054075114001603056163478747795039542300687128151399585162470206589896359992175767727715970810527213290889787762809220386837609777505783405112750679353815332851127076881380584674218542013595980579006163756436272126739486467471660223196273934184777671619019407344648799999181851951557543831938827351582327804492582421821395145616117643562790893582484338326627826273290541991870914361103396277734794996500553712976936795912689426292422223160627318653047904765268268141636751637509728557677188519453627454843848224327327734967401140434874626923618607891080344459217706056953820153295461797886237851104576439452443047146403279813904947147887720334178875113909487591048809229157182114900518179621045651300733144551934235030177965502610314486725864771418724970488317555771792701288606078057586545697546357326391917530183848769502978032292742323931619211864867572018327608293941433280114147012604895867583390688451959858987836461751634329862328089759643391120455322695328961653076890387683437431599320372565162531196201659161845611831641372610440766364366448746534419474229620523208572414714914639327183595569076229079945204631508769297009525007739356538805693004708956910014132515636363550284289308124470446502247040931755358602096275653971433298567786269526089722040643060927686326760140507936989001479556064125230321845060557564951269105131688023269782198804057788056748770880366876387413671350764294408824475855799900730708852796485462867295679210280474652056890022053918396360667686405032342834615510307835316853345888907268795406821295522625587413401016536790604744088438155669351770594412064510136398688874269627966166438822326163794781287054636850175770574522810373892012271944966898021229454690536773989941459963081982837872421472538134384816819706134532854873710786724179814293005502068944083640851713125054940988785571814878282465536339227285266587926976377731337314419166698683965430916702161188759930939498928159285576973492788042023155091097141933774147403544042973655948671258331353537951203304805624543767299242089405186146150124109207080210982774440334378315149480651454175425336352607967350272886837393710952862709686529628560663345505964593786398369955816938908611466392765128238672650492785046732984128197546440013808284229192589685687651266096275711705728681475194656650671738409605026889842192909954220586592037482078453900351214620882053767385596510311186380764280633950324948246072513656338136537756675569275758602397475475854021666393095162944822410337788104721609940021083972029585200349915942299357672976478948081168454424980099030295252537532182824476875910059031266928272158644981797563387496903433151326812159483298463133795569765881463234242060631880842506057297883034440499099104617313212312640540508367627535375948317406837831074177163489130668621827455890962531435848006825262549179400279246649637579241726850965720936303388108534900689824777148585910840625798751544930957413323637749996195284021114926778735672928913424917076654102897452858175840075717079226503090904245140735681374759602322658623463081770424803512926236174456078810590824972293906619287282090397221285312844225076846963358512904784227534979138596948219276227753744240406304346160130904838353024244638440825112036450547977502326188460944233681941139520897608372806454143102944768340509789261167506893807371675395588169821511083272189299977137136844351892665160258625591648887113277414514957522803078070158207617813363207668620744404131695105779105521097788895922062503613781495547653348499595424706289460087800405329762923689226428231191059389091428480143698575051139467861444408802872808452318503040176162365250049616978945380296846080761669324386580797956974881143416545760044468721395812239737146673802516993015703876100435622737081564528249644439674730437800272191922965055125092757808576764905207919725079520878703051098860754887386320540211245392230982596085015587270415917194436586536810886043944193531222885365104372715641359146180133569373460066131864509716632193734711362016560462465412698676730355079148731724278465666281361137582373909282667714436192145799547194247385188943697631370847521379603020203166663141097951108387357592258320822215340359520871535193085412257983182528130023917119500859340103501961953554272093477045822044698143343826815034191937779543892902549586400207629882345629577176900363344821877300842485422174321053055908885633017254163793349189955440390729239684062029727994549181722968316798817659892350399426499934737996696176791733519342850361086936280229450246763806609494018605200856832401317469494359069233547347989107074883920694277302647938404252919711782959145502525224225999195517530705516304090454798186732087324197471456285134801607698049078643198879889091418171949805337000404919620736197645720832023284254992406152375292017973448913380647010748031840092751680172179392894786699667100057867279893823648315792871652788263981640334961620444507602351155444680278708883260641419630898930213215443953074137083813164156389052695826516456553938912317406893907393804334558018299293815775398203189845209339999455877159713319539264469646417433669521494406847543267441121174488876199951051601896427031883110389593740443022932413588848901089426180476471652696259357121880833965025564252201488062978861462412969127856046671920391520169288825870059587773481361388596070598249356014672152032393045183035010914008821219104507416130296124899852027334708193652984430313110014591144687584964848493502051156750987441908564543702327539335029186827886151022410455463718518542624118372941939278896177623627527543559808175613640130141698287742561842145675688517162401247050145757585129414966033416685488537073069637251366230379886573771082129795096447617231282198228844552457693751071983211580528468840277336225776656253139673986573969355240121747347175764774437545244342319304224395852990335166536788269800796379981021636189634093547824761756300592803411990014432694598409892788726395684644079198978487833515446856465878789058604381483967863807680371036295941609127673158532790499497258147626075172601693425680758699270621148237395705476226844837268429143453719458522871491929484931354588305894091570266386566242953043249793206947632222062092144562581959640011289259877396760147486846490656833539236648230289556862335787589405261160319401975192505330249975121257740635611037226741181333697185074041106110810684355851697736243349653692658322418433946638887314580376511988246837739057697300800290161319043176284525829291813673820637673936037397407603987002836407228932423373043044935683504313207220522999488665595108059206870242360647610209577272934779703285433420614566414784088225679666758124638867544203762761054436483648798569853903600886160445965178695388212572270659467554526553729575204670928299329169246824539253078903676117096110812233860413307339687030186920080106052943878976882505438138517197207141996294615331914187826615889613788968396275636492653498991735536657213306238659557533220800712160772004548472699872696159490614248170682505422059524956548841620657877607328117848802718757201753980896463850749978286231918278922816678824621496403306338281973716340205643341111760957781525045176232711141835662987023084610355473867460626707185338499545640776406107999885264508754147982819238902588408193866352065074544857830619024087207249636895389449496765523332448496030220818564106248303939430031068683182688358534990925833646739759750206489544634918813217689962196076140669729622750998151909846866838222853622448827717574752326035557388646538308054193131969236173190539616752958284625098157955513534824737488846689810101001786054205729672521396457675372947084257027494162686112192686652385236111602009575503182489851074066828333898284248046097784155991893891963098497305547638562691061305015033091634878680297878104751327718248539315514420393257538019184144927983888462190714893739624676389539422818221975445390619711987107722545651961541074662632020611736609254430813170735167648265210248124790302138186497193572600069535305827301442708118781788752240439561528640193271671278113548096887749279361153985738208868566771282426690801564354665782366671687412787666753127624315810206764751048634762992589186356692793702042718043340761284881178585904849985282536014655987144200711555785862417354897803078853666314676662991344533936377760356849278286641203844613575821850177891846588366411084794957843134205104037023812826421111065723962798489957678596451948846480763331664775529139719043481159391072390591979589177786986991030074144092583568158525432987472884818136753080811914831507064002923749014402102009800643012218580821218805620237024435207685889195335642015543414532954132709101531991257091066390432186586378796366189677332443830599972004119794278192411924610870405678255427079806041279145780601097244255978544885403622537273600263729076505434210033696829289547869209916234652330283795475824811786331492493064926361932210792078598843041942843767866974602076342079921790246913773004611467969509365320008412697665482672255725284183690883323677351387470289885321245979056260561380362116989788923424288169574123806968190474759375380489748708302837645179370227653249398545680623627834930897748831914903751869770139980494248114029984342520419854588412811640887995064219713947122540352353830211807872937790540619848505121021960693649397703639088521584069910315291298485064060655389319023834754522758668150932421749173107406768906314908002230605497326221368364312773513747909677016593642038259299664276818770506236351651154567990577069536978649181271425152579596094099095053403717041431102623768021965026245337040394410607041982375458661570137700792757739339268569563982160299985283070550068583588943674586240051611978290692925210634941187947847965386214905658390045804640926744999127868399289957481790591098760226414726941838992684875322937436978792854250158346432298621302595817553924331919342533170467324865490845399136181860228168866354801074586590787667376695395133776946315916238519049103605561712516557030414627808663741819294717522929669607521251794272594027221969183561614448626936458777672744110811906229168798398034158253321446710663291717844121986994332240496423035545825736361702757326448294896077547112436080092242041379236345675804378513340991997616646957053714801318938292379729913141057966508225107888826331011864315696641954773404930900614270710745988694657344761513716129222677770318422418291957246538795349433380098682630677962661325099752534462981218477846374795326766754178102661168637992975109485405253780500927528281930905459015533903248780446054678967751301473492499955742952990845715867387757138448618650975794940036051350513738100399032593083572068801181882601378502389430465629615343561403631796305893176683211501253050533924388879550320599527382819283817655086630066813916488022512662189554150080147459968636509060425186135793820186710279825915709978134229514542275703531377478537539103019317049651348806936027451779979429740313983585982801913522686332918445661344556018513052404352060338632242040764401678608572657838278787390402277435282546594273677404672068199336257108719335388027853269476684847507684238761942530793457010262861702103065135785968372170412473111738259766788481657039749800116841362416557620897038126777909252905487304823154299281380334087882069261236344578546026519566161675963582897978185292569376186498018318681323288264212454779137528039150599384106944430259283432106999182725969862273461737847908517738004759100099452721430108519357547407197140094264916365784817413422517778400678579526565680643211897454434110368274605369736738262539393159337600695170986754773487552618470788144478532995634722691942217207180506748809110585302239140433087855295801056829622242523873723767675359976536020246322786723101722295294572693717539136872911229259974263411049061609067511427714556241480903292554640176136068332581092543145116042454878702510493537043120464753492901883406850479862624637951580109098609143964238677173887849210299951046033941093487884827202317211340680978042928222586848901688069460425494492918382665158403509835044149522396880033636165743093327858976952389501598542122973472124999198106061268325378096656323363268584435936545992924624300862132721497317218949366435191891224674853630576399951990536754265194409960903080727175058705992329374551538086709704803925496025020373302203928822938439539175179343382582959313979569618694843785800281223394018597016219158959043565479901181566905709247882135845744458489085786335173728121911219118565701297085906924958500498266937049681214758459023974347549459638585653251484786469552748804818239639136874443489999862148095003443435437094719977591096376388728358368577446671517553814948852130860035153882325108987895014405929594271806379493928591656031676334068095108988209829274778863105582458370559945068226388813155890704764897797154810002376072039705808354434236275677431048716369468982200754325698346459323139913539787346725639369521422019343235657395481002972976288210925404519807309539609385878136919687018276674412366458677197917154159255999971992488281481927448254387899093009093965015590095895428657084878417590663621551362239039895889420092635364486407509916517642778331657539127048628928628077245299664047152857336179616023931352820169843918772380137060870902264891537343539061038445581530556517531284950459238885932793721448493177643704713517745583784740363941891033707203430127709685431053907612402483941445783455758393086718627146620751453096548779869409314920680296493174046851046660948629434260284417932311643781957483820378623127212784625094015169553720300659993334722583052751830487933136310350523972370511366386243098628866999524479725597775434269768363761410546077012769803478935429070257921349661554840589840473000882705268454697866083119427185015407637034711697547477170280423112288436077105216347239787684896045416540377872378179110881177426392951805879619077345056825692295866657442980518471870743040074337026422038717962024976925633325094995760381017809261718384139635574971257082604822341127039361849098302631326674576241179181237814482467536184667996326057634073413750694939132385996514271671239337561497273397911201808203826883623856622362666857120973349367792987810854423689814981529131476689667490835125791758347742246867648337387734351154225661762155996928976140017701735086253165410281019676463085958460829405996884062374454979341721264277720816342593759670952105045372464183462563526125432419852089307515029626817170710058966935682073508179248577382667672571752582579094383475702311660494955528466524024221552693407915637580444509842037154778678250021125969505590208166768635842942542189171123080785083508804492072394381624681334993336374960070350378811312887478933244500414857574568580045588657831010327483700511056664905661676878309121694758910467007561116185519374497605655539883402224268810771874619988039442439208674298647954370810669038468916113484099106980055892802130664100905015292192685638872295344587595679590012629408264557124170046633975651439993860837550559855616827496855148723147821014075346132610956102025745130131205892949453727499469606188691797364435037735372289531449835506589124609271912613231883622068634683942000122729499935044768764652657842164353910398317720968657432117231501913304361903672665876972666185284957220318423517275331574612738581128029877458501115985161409515886195836309159384993901092893905719181292310939752526947827300634810695270190374668383843032368432664411287177359001226486544936296583579512112825780045889188374934343468338622469008860253731744252215190192954851991161844160872232236870580310896935423130623516814833556029803999122776926774135383534273840626944909821953894508354847355690716947353258677587496515150827000333936726793077361090756993774432172195776693345513542532518387024883553714751442146743130796857891556447628252365974582404276763805579593971706682273011380386451216057244237468319435503072191299100346008761315648913627577857636973118324868056073420506755601056328271215084985637127197125525259131045669492968819489115690524331557914669567381876860813267829816566097052993888045314311879749902583892938655680974451639000639074047971016749800571076404364592245908375010448235944902687861327800317614001639861392401015153203453709287377325798874512017084635241424292504257423656554808998147983622226400643773759338882749369409207722502882590777949522977647156822487146495294887327492091827054092033430046569436890659600220538519567461326988450543093572823292130211550870622074104938830463250441806405852873684643661317893918100269330457024915718119010156216356305022169051384291569414277643263952905384465773548837039105926270881335120078077907416376836661307295136424376464599556492014114210483299393003225572311069218422494972161947474840940229213916026843431883632486207869370609512184237564700858185448082030817222590265211390632866283128127684324572049611678767171558796101302074907397191556950323027124430503528046264491372041984787617085583137887898935776425986000411912809946872250717097725469422217464438814780324790198433652393381239680197617989918049806063655680212884483241542279727527002120624006893752042627716413634417794004367829657930476305968565353053102178840207978835675652296676794074544896381044027360223642985543124380272191241176160102355684545657541154254206275622971144202342087594999090637057789011362959365259546510543317889125416713962739561234878938954629764293581301168754517000269509754888334816719576532903654186294481143710333435354352059374004659581079489824877910863542247671534148411817266407107493624767111583069059502065862424689145054816991063162800179012122768244509087658412313763912852652222567603030672342257923128399712879002917638854540770135694033649478036662284965932959179654410389976776600390188362044454513617202810238028475175157742218160630466568316459807324292843384802582117578093170251137856034045030612860740875534656445670953105749220064515693849281896293929692890217858818613056012255560045675984782956340109057133854099018675323805480799966417966053418846583361887450756794589687260317116192606886553872201512857141167445077574145520994012798045688613141324357843211278607172908706505012859334167888176333159228924055898313021121493718853911779459940077891321098629185260069557095140291186743487405869791424502550045391030898732417678482414861814393325054387513378162156341923623774992318124922919358486544114845932929426910622850652615157082158937347075152733078318330522435456286821056361866717233895536934936716897241978453499704983096523645890414507478899850155520853725254607309121092272479000010887744158840952349243506360225536929487057069457014200556310326167551844594382198313732683177331472274948539044122768803322930986978454450921756481246099154691110959110963591141629681865287690801875681208660821172322552741607617808222590560440437179141167521345161531728255442788798187891877238175746921810687361663598569365219448016278391276113307833717063576486111644600492407765052422204678353850263971051001391653915642148287714165060184908531815157809929543469880668210714244855782073836151806849240866668870607737759333690453057400930824914757098064925197990827666136530059822188734389717700286110211405624448169201904101031027490042010922968073388839061574678234410698044293785355990173171011082960134374541772460569647373318747931685467072740298503456836538254032408631835944185957350007040219218925795948763405980458512582575081647801288708985030926111906003247659071786691403755879965538578017905345995288784964995626120069580190120684994293866508721365961982082249733321303704022627330635722902888940800892583307907300626660009483188269733206253853291411188778217797698758262640308096068993563767053363650382652601052610614899510730712667925260830800870698385709037626599135001330490177939866692540981349172218685627870677253564704542235935441446699524251468339481986814531704192187017540169162494970553233531909148951492325880059076188728324533622824099296215657068324521648692904051653430076169476033703755812856757668438058659992931957644687669338649137867973511005861442208593239794423647412170595110926600248391238376965410720380641827013770488221940751518845179349971243326366979287304925554062974067036756242540693127860729538209404714033272765635775019587005703570345771405287609305372661064721671268444496409464221202600609508080787287942681674280929137338297620997443740476431707038693453793396431110341659282492335214883201475844875475244279220357673501917598946976722669858181133882520397070146755075333921059727583571705752164175813787174633786454827222087916163509508541053099839028268824548128031744798985419670349468116739215996818793743590719163318285460485591143928019522068912042957294607338884513237198057479574247773347210095783618281758506019443371133781980477129009106832054747014242351499756924115569297727021732157182156203718875779621093345126248745123327580104318670550929544123904758663744739524861126323680139987569063536603072379519092561616864419270537627107058296409380716742413900545219185710740344315633304456541979159829964414126487684152827143850050249770772253103356300043153995543566255715726802742117900377288989972524379494075946509112905909340128617408103002488873206458667424183848756359574015272990043130509484364671663003910036360876514657498695678453324282619761587749935057076115653802972231307841361339819718355624144337565131701038835566096783957235127403057216990719897493711422821296248748683189353770223778674270423770066959407083492260266003440876361726526696058763847392335645555455190730026140261837024163344417287179536506736645833309358252140101873912402060179998210476871234472516741059298899132914566055222681339568188335857855401978306074933255588155889041986584166559014694839265717518709604603448785485958376173651553868475291064916367586890200663220910396885532543747536058356428647893989208367911141714812687685691858798457767643741225234823375195555613101589974168564502443141175984327682518544920705295525905795801653611295694118578813544089064599560305026388565282707704595550326173760341921864881105232954072509721731612285704452766432828352893437336255944475308126915362968270838101718884127892479241452883269127445746845817199766024634480193059335995330048307918336914143747520912001986499893011864731509981067726434485446241643132423584620767488281041242261938562619524854544984335610875705845393965395755615969258023981674902021664211638524337357360413572569064069372968156495594884139817242921502860551022599232903349676791419716087625424354461483529919401424485896127428767612130987575855327267371770614789665130433015454341768969297599685469223488041179318793949075915643508178762352720071595934703700141044040858723676460329518341275294847671456172827726555240504724168800705162122014664058215372503235059567090764227299520663129413198780768985546086847302103259102819734793354328956358793213090697099558422029647835767860329345441202153555149089693783142941922173123640359420631684413953215089076682555345544384992954712087847743867060850236516034448623534001328916745832729614023328416510043591635334212324793857907410082702633515296228046409313205511983936405431601880680717359341082100366688727589009370578158316946951357865487988283002631841678935980018217700540467051540377858420473693195609321069400314241664349401259119267088829155051684533511693434554331417199081775869839630960132895337383511360126341057055817356451449806873165690253418290432620240643105463462335852097759628426420370441834494127987232334606365847351918391653801282138652231860569059166757386743777593783650286000376755392754144488181421617411323439038162562263138845117804346943181899940514546967106769361990328992787050554368889247106020548540419703422773327825649547595152285665845100983390322348695437725475910763597269570979766629457612591056036632491504688018361649485305502168784360310661968891190702900983005330547786224600611702790808040689976172885927814395340775375938991837064857902525864178873827163499632781296737638582266837175979149653091047271359576193222891117957958297846907460680576666120038144961820612268070348416683750208196546195637301897232940609380572033967333155736611713080301189474996566548355469999733903284876201773338408343488189661976125582122518638962101406083591155709418950800187414818706412946473455283654334946248287049292926375224489011596409664503657888060341140949392309341290628785037043599745762687206735309614227840560455170411649274517584298762898391535600635923110623097253630447444046218468332705976266998319745870271031435429582550275991836412022769296774419956644321621241604583042242976630942765777376643474909868337311442720935909369073473971672568727996171345973286794324524799482969561094942015617533794586687058581035585149470902861327777569605416378880029097785172755924327095280204343874695691460913506346440543015334340476569693715386943750064608333014505171734706192993378336904542810112103340315496921060115153679650322506924142330929519846557899863785645186636223489864351191914854479247246131734132349908067309800173101201089726328098995100621345888158642581663098919990308515572995897198649227171766094186713353262914545720618530708317169592662577349809724960580195821412311376718774305047297756088374727583488992685878423739838178483024975912457648536708801284442781375282019942985039808290301961860326341244091981051343967449938854256198954151131934140224861432971380422127171540382186384546969854008591959431999515063768024538934172398030869242341809361481306660861811133330855346547871836180592618297319321378624849757792113600328694934154264735267493647205868487592867130166715399541198475011520880363090795557796915582739442840662541676825882494761719620826992662551593627551399066868834334108558214637259831982220848378511548380991937924364887161076056658279801012553550009912123108995408443217075257295623229660961628415563821448141954056661323651763008269394928283967682345807998510309159223545641657245286183525835001646670820403700514026456938812972156999019101923541452456650115729846791262486304096034880708104598875148579221133972587678220838124741938445186632089274166393652111172094609409653909260850810887974921974798605257567655962823546628097458405299990931670588457789242379222688386007447477519826537304173358622627268410662700845762824158427575970908475168444080257608240386482890219778205026553363339481385842645526980231386399247236832960972603812100635120098331255477708466037496238033097154258892103949862145547297172586893686314981305759633410679591815476230556014511675225986380028995265021375331760410249533548812430744666137863756573228098877107290809128040512901967006093079964721985024049501750713582818356107534335140795238056766955455617160018236212997600475654199545716089715363084961824335942697395784129395504609702541999441518177176893037914483979106543374254237399752749092634879220927043345302205192668109527049624583477502798222693510984095349212864116912205678929485506794501465747124621315473778977345274444657598441950000438583938257294783490539512237847499627826887333296496418844625011285676809903324026371181749475290511380224582320215937836893220619079412082483862358606757900939716291838675208832724285877969461939067464544883035806900466520213471487402749810877962509575840323790321234656601991654547800010633014220332392434357673814196418197619928828372643375639427581911705735009831877220667688661726603146473048969449426255406191075652586978447558610039486391379262987306166799670393938146512078089235038304713861301082983488805770811820251112892744645073446327736532903871082043870365685916081736717959691584585683154256294507700393653646679046510271663589998828327372242528200298790599812730401914700292224480037531146913110063360003842288840777083014356177616153038863561294268442901711742786900761476093956940399462703721997138007385819987946829423591516253309476858151629468985973597844546993226131498573064184986081806844351207733124252590841646538798153232359730015141526882197327763301693998193294919143910302133953668801964383241764471687233542390669742554704351519398731578942911806733937470855074987516511204762827791868796509370829688830775346967097544000628968370281695486546152958502173127996539927836725075082297455327280842143776870137909399371938717712878104952452284584537794157042055143576605663327718539780150783992904316476136474782490296142077021476804041633526103747987994701537911712792057748512490902460379869343985194274203433966213641925481596473108015058452498013860985233227167875823100630622861007006820038283842220427679799599402755612557994286594690173239402887499318758439738052692898249711748707397761915194603083132082679098060504094500457471201417813185912966383334020387514890846944650685995384157929683494965468897793896279812485795253652384810756499550130905014220287657925448139893511087401687698500760207077617003687767715041748100582913792840060369740311291868126472068472552726165362943831828298635495865917800307937806340813420272079361343840544280532464379556763052983162552305112415367943650370971056407758307816606471531920297848372187814578646980848792595742429578201296221852172838384927004919029862769850700988803070040229097194275637040703211516903693722613331453608765935972470529491336224578360015662358491482311333721700431374326331276442987134893014263116225691085476446487482721084805838479598416245623070387854619699570071851206128231216562585608283437687402630945428668250245388943481491055678283968883178377111569981293768194881273987424054532793498240300558816786710302999626610195062897355144433503071213061510019706258258742458425427481670758090536185114783877135031842041616019434840464302232647680326214076558574725693567461177425225216992675920050967372491960143415192626867351704281279791678685649445910893191686656512997333576208772897078138239307414167443517043886062988361444558093910986664840023698872837094886050027981671371476593102245409666515377479661583307055621627366503714837262646888302122272410989948952529152968635506214751234450748019357496785903507208050208801620410838257143029546132039637737526654745197653480936609729511851903758716477833423803149514104161014902601353791793099072706561280376610309520518232029806307191055455813404963298139200639614848540390253583451788883233277259483423201829179453108217997819001082249676101389014328112355199858514804469091888455082301730923782000074211640398278570649638669279177270461058081358757310677910375242909435906376016236403170848879230256440840611107998373754153970823603167231952699854893177314265903607377237307837074243514200641603501596299959651875950231089010183302229496917958138401681170551252754478048618503978107225965251353388332221583459348699136516684290145647423043253917005137652696811360666652709610999243871997087407554632602188878012977265057819005817035791474159343930805653427633248053963371216515034087531675347000485677491034969280985163499677779043792493472232230273751243516601460816109586156882290260613974419961189391224565684506225569423536182435162057735340632397006271128058247716226651129263632865489419081720849009786032276282118076364097603755181167764727097470534007393632770887505548435453975121522801874884902727617222189583212129548288603841668469702485414367804027562465792015243567092516225052309146223992028325191904158368152118371718830464953727536444006957508040685446519564618504319237242666277087257283507072860016066242543179768395902177558754091178429329833653549151666276981121369053725122020778724422484587711461125927316560575983210077187218583353768894042951586977044911202397700234635262311927145811583040720978865435532792730462305622252366832636617088926731045488755179266862260767379198812435024719586382867651584132146441208623686064963265591180085094294227873280570040869400194556274967224908984217660282657960457230198697318312655854371885112499290449915656852664118032633583670612027200989591509052817908646836268978145236784317204164918207115925904549044220861447352239601917653940741677000607188886381432618834483900277462718119717340217640550788084762892922590120823306978288618992659494887041106939507817425647138880758187984842564082321869035165904907178427512531021084688686876609528351925501591897126146047245433565142758962534981826629714333162706692489722747994755731020487913970880846939618616955799462624489321731515473586577304234020255903255579370023775434251424677399916932581929903795446314455358987295514708107751697580217790021760572754004819676810437161935508444183132029345803096367859119027973507935547285114057417078056422937954774568445372432766140834968121246954959578877541134628939255437689764943679063019604677939025099138221655039630997818253651354154874888034986638276676986302202637683157073255932978393104049315834049228557514455056552443375703485937445940027538122579580121071485180484478995419463331419749741058924364004992572918038681127095613859110834631984905643329163988949160968079186220070594838455073129911825209143562163755914348291558995380869675296570726081594782562459399292309724187929923242168705378845694935765279790132717627617379484745061218807038535689795941082043744547135378523384136570553310050445654165027421723943076433815110463642746908239175393908841806006648701950065674400638360009041559774884171554569148379933791799003488195029715402321886564696568372029974249681992946821658024112130476753960636536576883241349949660673979547024481634200852475839305274888088704736767799482984790737057524379837959745595814121996578565901697579588933783978551719923173680856855826820298475634144560496003374801001258883521701100935706833527817980618266267571697943982343509549294188370026546087966678432857166329304997325064662619848536294776484603516115267720222657448208103264402328582080875320213926351651249885923336358557894218764421729291520923049671191513414886901005948871848625455831291684518731047549877589054324360504542691435059667438483284815186103983162155754905703963886509519368531669806577385880693644509146153503121047926099598777611659963371408793903409596983489336662939328911918778656554288904177865580693678639082720523752439467297154803177909582353787500385417818490067555605708518276726480209413464759657814986418166012921028626156515736463711103937862865451769552413273049049345103776642619224083904582927789114094352527243725625496457411177271702709831284946098438800490756675349909009986688111139774259084013817952699144719949141042885983005354397059200250786115158258400171264838470071481939363320354928595957134674839941808375833042761456754455656291517629840954167096280078272506181641997078078589434745255856901943317511715485225810532142347876793163090369226733768751464719958140911750361189915122814005880715600436917343743321717523920239803346014275405039776484740828759097362700228772600020250652331948066302015916984246001052870902716314952683329010374958639710131646973807220400343735972319935102848735771167554975957390012043371493249949759462186911374774351030304621782863948047560422235214190633141820822416627515822508683724171935107182670505010592315480224274701569712546284568768632907568049893884337329069664595859538932480652576896308005307797373551911595294712536763061374576572366091083578871433961690931495940471494124315032906799244831030788946372535538461759775712701017565734310868148103024486557952608156035628289173140926299534551060136670620547434147007290902104369647134604054398798265262892626183230196949503403065187370353814501765319290487421867059700153286381366317453908311683040919881146243091712243491299672904878072360704839271966878171989987332861129917271309430372746632436082224038588526439868808951105671436351049702739673174052409571820729888687278190487096431673859395073748162431513431638585379417416489167521990931189525949480329987668764437135331720657504763095095424243272605751729612546615888524977371527423645132781101515933568945439605678242741558973878313315703093424634523546276740280286793016065288639569813778900909045958004778132672816983814876059780762023390184631627707035087206838425488581773391505026909463991141100240408876602156374701295655138658684773343168590874374346354901318789649295057977170265056544449736273402307038684364224637170351656383071343149186004449323262587988588016282286709220763626806444515556571297875989383397895299776107028178780036221747224810720307874649489288234748667658451131315150459949924229005753111503931989875033363518320996172961477059793688734844305283144789760996721194906619248887634178692832658501164337726171406547144414811832492842572761062837793910901008864627261698273737912184315012984564955457718479154874663524884718377255055734451034715848137677801309305503514848198503583160979700761824447055109430564638762792332427498176807182918095106580006077534005090452819062879600538864677636602950431679465340642799656073273781602780508250141929303797280111255142624640819262320858146593876259332525098811657067603609669629990873400976836924030060394350986239815428886014351059398825358700074630979270327542389081329545881546439655127703232190614518787087957636234578599823052019948235060563140217963679219860593012508815291578286709437691108403834793628609999905171084916454016810350591713478818315015661368513227775296344001905285578815158277914671765966571400089365140853590024459081738436918500033212577465822866561263705689940001741346721678777464017873942121361799120804240849334055942106879752620829982756804990241095212962124343336137295724203974753646508886096066531641986836343620284483647228686760220892216722679024969799117497010221521317500599773060804224358022485183016142897818444372638910015690260911337536943373844023204394016892877850226936450124720385984140110221099212512691680395739225517105203812155107434083691039188522671610681776615342998350610286749019193646138233616084637313777876674421660375089100172562203701121611794977715607624822667743880545085421670999869327561622761865944716950365551217800380220313145294433734547861141330349996755068321844960288191956552496787746823103862611222167939846398149852947443840521574509843050829354488293709100408590526477471505506251445442681876466120047124855997541469356615690067418277978058043308019407966759878347250509067345684153770540355816976458806086725487897435123273394421354139199834577710731911382932247142759038309091142150985291147471469356508042396094003427697538270930869056730335006021982185118793350529371485098460224239326194023990107377489164614184252291592969685665528623388783450936666458908822341390581008168937033300659788163515968993170949256865890583854831079718647883110322407206403750290692149495581931465496492792488583698442922860331478597667469143525013777855068667155242192409361508764360709777564036060560852984019340594736783398224626716799530533215986632753986862765830707960377769729563747309982229861382399069054244400294863149393843813486127233593684520859360525384752286725589286328852996863799450461597147172652716268706057094733010158722672603720803897926224474803549725755412807954619695398847948140134398593965558842744707603460881234039179531424776773521854481653976503483088719110779687332680430709175026077767331685804854985857248482267102527384535276820156952454923901494369362151814323940104196152638293139253063719835782274461232158765361953827664548477006014406580890863898767612484188903660999635862211038144667941527430862824919431798079427693806743788789619543229809246706842589598964120355125037245056116236282766798548926478712567214595724464313490678502021500680349506352382700912920290461997873672772634401655942978520567928476674730771445205664811320807724646392368729766209924119527102134454895553446197954295379116200745085118773130435413984106185676890301713573244936991337802498511112708895759578133742948305448583168860185338403443801108018916092567931174121089408052442820367592280743673568944448961443948022189326047504060132300154509895969273627580202313025358000790236233829687604823993020101395505792205821075748130181361080735562153366086424024813301748649990377241571391400171603637678713296901977972583434780294887131222595719444220377741443454730086493400138264326838542815925497410516962316749869780805659722967701259194481043993861614385062202689641183561589453999192201125031403562028332734871148595476717469094392498361061778727849033019732298386141036568955871173373447809476723502935836876124499617989975357494443231052262438261075686818322617857900321354285509569726441637726317475435951251833756317162746919846173806109833769386193377770635122654731025850712475156590500380071372569165448457967572532505809570432796630357009096263344806627264118993157036943526187054390370158891179432470869979703731433758285550954992766302790094761290851073462665382892451744456391331925201510383566090434315825778835042230633876014518049728795225953356831590764410338917350408753734538803382458482822203421281033310964028758351549347247780701240881955382571360995693531445560892106032344502478464589522904928818355882026009531058488954907936613149339617939316627936712581503765271896773289659674365052229158047072895051022193439270817998401680844418304605869589207410324941259062492218086358385774440668428011786351610371390615282551942565247852798692354040648237804292322970328316366934763529089313840683439547120482108534751284150105089394818148945474477317508053165613838600113145264228839514312995760047809230765904198490232835788271245488521599884230691857854789957992986802300751987480294599512167328340520242465850739920694165429490481691879317188354613177008123894504978148729148809177726914562243199618704762140667118608615017397781447240264888888973294064141398131785067824771832022179984031748195857145242691936555263776168563989425905200131747316395012010896001934208515201622141640144844179979087097450366255808326727918756914918062983591161650812212638798749613745100550771476156578375650901787392390307599930040878640575797563018900869068730141650041083971549193587136032613812623913986445035801507712045475295178012655328335998413680407405575865571397280215955243001170156301680782223053376378569033764916213443833142843064113533318021911716184555553452031482417447585904557183860105178267617245347743966210248569171632596978543616480572378527415157504774418729383603504793476469308579952546049973474224197459340484842804886016647971992555117859211821575311358209132881154903578811909816378588648461673165677479714395572378286726636901034305940834234336346964533127049694993714260406831309391115241655574078725460049340689209261630066226386296107451120603079884213570388059096371395054165456536402007022944274324118804951819397828290006745337962590951916827747316228299449194171487506740670907893195374096892221602498368956403538855263016197597658260324429224038173650563402544834268145000655256209209193565449266045831390520536742795537255561945809184326510793253416262783538526648140548973275938535822197155457492956974323708082975341299332188177203625406648152346313080746789833741705308673161198101771499230858717476262698702241233268657289031667965165754930632063408415153030377420961960116768278128857980995166507629627419131990864355104665902712510465048745072687645673121872750611474649125816752616475193151429960430109907769684313871259990095652207415312223026065577067456360557431163916394905266077522568327084164792976834771426282946042253520666739742859402459063058374395904510541399031397325465889797201430477222571521969306185676225964945745959665255024881812221391875320550470268218060171727906369654238372963140096600376872893601016266010352851004971615890608052598687694123577211445072649370260304121312937441776170321406629577560996511048891619099170383749135754660751183676915667624108801798796501846618215426914430625862353879988913722965350874217418727898397477830916283102789716579761853899027703538424420696071093065400534038417066104283837878391517549435342083430086549712514615741429141011860358478757832008677219272930321381101078515322999172154210910252218110291507885718055600153735346115121433134078788609977409063912520960658825693347842431788975930982643037127617173442842690873899650393200009212806358613785363547497567908926389718629351299305767836238444480326508719280137724328549782343395081955838714989834556212675521094857174527322597178346910792571439132014668876134985165992087105568592990089266524580354802211426597162509924106389798500012924842018143745117692049271609846841959860286213575171684252201270919483269421494827200927296969706345953025134661185424726877742102367864628207652716015507410564827426586553834460123025061511210239480044366233687767075289311217252330816658025949776667040677703522296679092281170040376123819530395368532816071072998342071684863450417899370165222387961606551038617220092272664032210674358322019909933234604638503057841130067305505856681513878701595528216572734237920719066927714997237114133664229235974891989747058316513031510243056868972777724215687853041942089974372422500026638198236195663859551204690286860446839648185667706658733824264665810110564487255381557047809527410434920019314957833261613898530025956219399476010729866967273005608620083351279910775808301743181175452148631572466385308256222733547806477384916000108229182212152243607437762026341540604621305303959490914312871521612321370256787102099421824517139284489838774304127974016640981796904782589891221342490213320098720933550530829003793085616184292852595635412913595778516796093689108555145183611871459320866693161249871645564690828074183776542544719649085256576102041810226861883282939220499789331387359494392498884583884880503533841085156466177904066954602957939051993029460414538647110839622711349030934831327563586097648386423623407415413300401554226692574343003098783671458199745780996089436667261680147256912321084923090840950537173288716328710458365261565651192112170556378675802791664589523440183039138333452969225915975584661988294423595264421846957765810944726409170244261146703191815264839025822174878156775585565419870509211075548984028234562052397818564009611673148014258885840672550331708101367599173361737146300850713933975246478941843508461760171172973351999698179629948534281820713886258304464710839446860114748769483266613996898979069323891201355408397023143306091281471842144754843026864277659905472990794604836672475308769452563518880109386030541929621860905218445958349591299301306776900549887818211319233981232517800946077914011674489939582862715216907338082388172483183844004807213349119374254029896746578132799005605202873510961667412356800896758784065440854894470319349485884435207702755119812450000030211509452954152434769803206242946904929711581535038797028660540840476259764025141507773240863923289745260998528361720369498657004028637298226324201751217231065003080467110411154952477885389362525448434877718056324923962581066708424464258757123324823470450067740651185155551370293532858126699536663878011932088525794752409320574682894995912516518367122531473303475175938155669895399903318590424516500063612387208597175433700742129451091089283861746716919873148797089583582804821456636844066021164598328101332884972032060463347559523801049167161126077008422073530946592155171403927809295372840875071714818700712384567634703193361806763687560907878481232098862842125979030997606003296172660019582330845231316296179159088613719846435984439259043057500824282714378715780838075823243605410614941063966989442474137720542551208450023975881307079412331115522347887373547518700589836565035376538323903981165435676898305845775702019563889548565132997050764623728436063234992516353473817351431156240316852280931689785168888704782201518785929765267826572790293350189058792071247211359848592442781999835367117400006564729510430058186463603269964202055288812865568935663052464877374212229711283055624386987181979503475154349760210192703081137861974858170136475732440844988048435459617369063195978131487394053810199989567695700816904714913901421346323425793160504916145348588162191839568607304827195158650078798707800546753678273904030209568292648242629212908451045235882545323873659448323676347501193304523605335174044386122302017951249401161802060595526816631936944641892213324840272125934015389726605116178964886206466433528048622096071312518538250312463996963394442393153256187344781669327102603773677782397469754360143473851479941177475788824230812506142738354402708626971493208413456275708182706100675842572230492157671106057912659956781142775772083822545525204200251801369263862517349744095870126610946643049565274497762893547090391897574124230453739766161313579598054020064925143263486598530896012578560526156425912791743425059423049781321939114261653708837789545597062755977019146008301882001722910867021693980626569941450228552150921020330059049961786753554104728438239668725108256818417942084178839070517183140933022911788973562986313700676615441319564744880776894221742949960258968388378591921575318356615726513688627881827288010750474741327802365450510778917942819541664612723245499413160518779256843113301728028492349757781302012756443490577144980837962559527799998866079093735949002483913718465707048808750918289374736913708139562731014483477215230759263577366459815044365124943927426183248817359466140336342837090682034889747515129611312349025239793959259004067828930004962431390050142415688697116097405147777381341265846468830215892901840214038929673779605636558693317179711801842070433476009865587760250652643706381527962705905621366155708308124166810729631186391540712175689293930684581088938868890423370554934964097137795684704961203872894479155313535444525186272577582367747034291757352097678682236246561157385384530006448626199058659858750398959064862062332467479165178497996135122646229414205588671204095712962463621663158595448889142153121812977757058583767914742159203996943928636162798555671442981699086266609988203564258933684713103353177323335932101952887422465986493369339970162784039998761176541606082291539782234749437962706772318352819090825834365214617754574255363834294931104158408370153869853715631251160155435267649198521463737893168343701004554729881891048467146199738618630651755061050906642144054034221236222160520637910814305643340692773891523503524940728470745088405518936452050628506374269347306373741889414980541455848867776210928192378378341165749147540204671619567326406555987289667551117630731275923435995442839999903140489199449835118287228034217213082671473618961934766122235566255247396691762547422263657262759219552394439572534770012774126583116882747144155768786722292889098853883228076608173222523345940803663487364257848658987704993335040344256215462251296951574407131481387247307521003688077442282171173020978633617104751934225444765519009994693169618735131889094609934952064902970803441288182255744299013869373789885720098818003654750854794840346268102519367796088201847108577721384624962117472625365427965236213854137740827270559081347069153263357210409984872478430805390590026578786338075603269363843282367787792072523016697347075425112205850437609711736415766650922810684946583923153579216286658589856888778736018740664776157902860122430370204540699140064930754118512045348316272286390572332982961593837636945179607161978369232093327821280490681730229229376023766165616286128506467869570650798239835321730588425378022397949126018246905962923379116695667726676820762271202741158144174072658358851174656105091004041870557036718033281601898679259781295084538534881058738904734224444479112566422695682443068632954589048335334080166557076486235662841264902193167346581145455998238588083583699415131990999578655443590860844838000922561722419221284408410437819900916282105608740487174993283149309313920438803370583122994392591198454761928123554036007364904150796066032944672158302331258756092331025631763950117668682700612186200174349251066798288757891901769389995050014124406824009363379987852459755836314505868927387018093803185095547756205717446899333766216861266073156805278850173414917881878064601060470428319972477365953683110718139844453701511668349491687285464036278193583686747688192965834646121241433102180582604406241148380715308602949440796391284577325497463694435309071734626592424303801515098238398469807881722142024954679097426478178656565369555542094902520274652674042390773773346258267263687593755275205740501413570033855025519329001223670756818395373094248139874131022743702083654267268893640057856723537610902544232645069421271148655084168932424345429037889037412127869752122126670729748679148609023651640494537530397918280464717694914904591030878548086033283448257982641319597755945258445371140782597501062847604917230807413984074054286560045017340353919400887383349796374565930169814708528266534907117208496738510821040973051760146792075982900312790591743627094243921992936925488653230527799779944964415736978770422070264118372663359745747361719104073573931111720330458437822099999431912873507836974575108170061496398399361312544007182454142004369959853707400063970171568799865588697067030001671698702634287466668541784099249260408194650351939756524057292869780907859369672951473914857191181525741605531800080667516108282639382197299365631091172255391328164717035045306933119087821089486092192721463714910813584497418977673776960470755462289239378770742780795746267657851664174689132962292737713079376374974631949972600435651252341728318934014267486053917523635597596882005760449396385331983204630924809856664021002953429483742467494812014654252279252692728429023910783216536573605682986335297084792743387000070919148546925133428653738739212772996836624380778494228560997348587066241507786774927964684737485524027704890700870785446446305953558115446582608926706327095421234922714510843544317327839129719461768983387029286866081502363336230990001944700929579385060660265381270390516830668504120646776354784209985725086990717902117229271032903840050926847102219554593610014345601378787960027280217308690586380191583574958125034139465367000077768724210852830344820846583197651478080007684085648122374685989900065974981093667105704523018629459241784959816513321933480863062738050473357826235754284406642508277113363455863775131105840793469746601705675286896634111619621274472425930493839388041801704597301813547892710169371993299300724116419708492578872187386973583074166955381363626952604912947762874050863988075245336256594585510806719723822330796297377446872898530220426422871293771810899509000728478092830198560763663310287562556157639141666562725149714891823500554837045486619266433658203818136613800664157829102605389704193768566126242639920524280022764732625024332689046987843003863669432580029312528006359245033105249465622132312202946760856140308346715300170982477028549647851357045884079700371197332750980262705216573883824924512411388126349163138002207412585723901754804627286145630267622891159891935152035206744029412431914544897249443628058088520139815207487561105869373815757049047158080850406170511095975250150316205687941939920148586436965995903359380285780449448191065834525063707519072227039406354364416246198257792591440126535936823112636180106102672704294675603750312875284852323413109817442221985310157643753569295594780948305725003114069899531685021081392729257238446850483289195282856266985775306150857064151639663405029257342247613906149298506960743770900128792646707508467661376600717772826796342569704605988420650426951505798948794373278905293544079751760380787520688755379988352205958520383196871381172593958070906206995653350385271110623431125184461195249732989629229211717291526168940564395683866958845560054801872672848727952254449389985773930833959271429226809891228014239344610144952677247058897031861972394592044878644974745122873900837635470983574071863461586425713442081039105925090726075698871406723046317882605575326648103858864248028560031671063893551819060748157607944500296434867053615921225205083512558101645983382931032345970832731832725759487788607935808116999058918025620681180416775341209226099387394916380879816567844365238272770062966234481564210528052325817523512636466641585029578340829643893247405277900610017265651702545117150134997515832484370624891886547813503910961141580394419211505895376491741495348244839883832429195086736939480261224250064152172657985500702475653167069624073887122676349068942464810672002299761256721586069307337902283058723123160220048221848475515141469230374784506299738722251343202392073395803693262154660331922062548971178252055439034345663635488252400824485562616518281607357135829755268126273184543290698333111657036161252280940044819352120438413534904184089145158395914133352553838348141199203050724256945686298112371070437026771104113607817979330468859140063606636550676986625219858581891061282407399454417033116739283202683233388468480594870962471569707299163780701076161246543672189945634872401964960326170984677882102655732380642823702262741995536467076992730728371980782715791044080764072381415498737414358624917592709638399514878758997872841045078890719230723500382237245295027717951356029444195067512302901735025147697376220598259229115392352345404373166332337003324033721369914734251985773205370263812441565554665611225829740587215176579689350606704523496277619461931024850149303646150215454100396784592670264897503535937905110428789648158872047891697337372204095538927578601758126317726947933938280306760458866602057524814780830247586765777370788312965667864995909359896910753420075313274181950324406395922101530336515154844581499602278317735592569216784231386105871481856881995341670439036316317456006487513531215724276133707112481967726871606120150871497281226236176874150993004658029696449328754083283675706971111376815991128063619998405195065636676874855039139612647091597647808596767760335773424691332502984117270571525752972962534677711459446059241429102022222270862314427382974464656413265290728339708036400256681392084248378472451670105376834358851430497566628756701345544271178133951994366018122488581091412961054639393545976205599207413827207901963812197999060903929198570784254591106622420800831437978533180027991923694013720090168562684561717412435080354648424600418719859950454759767988906840271559181197356383833274476071485004565068908204689218526006657628699244465468023128909775896114029798933609422037582527136714823928885734606035190168129696053224553789178702730548042451343913332750098668916163597415857830199598826430670853936394546176474772525772369959597522971923498716408812611010419661674153714925307246251056455649203311529064047976452284879939417949422405039918019299756600349784566494496058746649701489646322867506475499358109615397162858572491062356721724658915181851497114920388382290459038670645013745758589167002671998426176987179352422679158404128502013816372243823861475788519340735726582244727840219383510665255831615081940029547280129593303446793495010209470508838314628336017787438185354973023159644566432244014582973831247438089827925623905042956263300755083667603767115089070263048998004432465333140371583779503262689073064940586238968454806977075067538168529136338912515559375742919358448688607506925674550796985643731504140134383583350269210236491798927173003733110867507906140938831263032406173044516314254355287684773933646658296528777434987822762017280016126564110046394088237590089375229517716312281959925049378852001496865843229473158740608260444568625280719408138218892123292258067292384809947295180502838919531976408249487248185472427172709312656713635473710798753725276944739972496407703894917300733230457156554334981817073480282470118130832404907699238536992242074737910368855555380044332109858986492259289377662588191333094157030152749002513824633855382975786176868517097067931023684927251371401009978459915412841106951520278289476764379965844341888439552357204282777068675128797313361612077842235599728677636429637079406877505780827269609236644134177473816704228063177798657562737228702665544065443156473960369164612271347111525944277332854279144469676592242615609033699153404576431196111941146540366553108734864995644589040741581915395483435755941818215139864429877114589730640276438672594350156422879588885438474504528413014215124552395621107242565736150834000218678065201177495708899587727530454203095989053494526846281466823198943504164223729035805623886785591050989948573587189223955906286690267049276658287337620925661554943290513878180768852458000675174186548970517529866573704093983996520681689296954584993854629877322863610496282492155784016009465303657152583064840879812652485256996798206644136534679339094916318130213459869622849936298736921888912020202416780254508018775995528119020880389923333452968823847355777823135711583284116291842182648069257069262942727445140828227765804481395702446913627068878614792995511832268047674728515901730024435040600357891898765537977915181559112550020954725467261755134950736901794744580335550374826424394101077365028654269829439404573986079596660005615652371725309797395887276534527949454661876521138943715066643324932700381402087271350777049580762318819557783713149559275982051555301070420580481615348913615827580599174215103910318169959516231658425945751512072441954583736387335754370588219391390780554848168027861150412172760974395309566153440500644953523573735911306388641632934119435791995303571503231224695207924756191511955826050478829745744939461765640964960010424085791914779548187120721620902527752512593260757705127468265193196814317076738400756508732623934071194299030567925423383805834990244681756642372623886081418616409108496150246598209449923601858482199254068041912192766680607550026794318230867056350911529846792130861748821888083471767947931860586876804724491346678370251394995127180393423956889478117118394593177824011978864311793924390182316283927622505181299256413172632355710525830434800733750095409947039540801486124861260902290901324925930207242991531893651638350857640826017062760889818649117932594425160461885855881348177745465460853650633038127956447637107711124995879052307151697759306549860591398222711980216149263824757616324786336649482060999742117384870827316934021624893587878939849320861772243158334520513214936289883367236452028151911422018912111894808606349394596348032637435012944240345767025542161451519396624954484862460507828799105510898680281896287379697004734729450233556998769071041210622802362370543092469567984816203893666991971525431138313445148644457387161290216520404930862171496826903358023360300961392041505948507465046446679912834930944276148912479169077899874759130847754777995128428622290021974626015483078555311403105498306672292067845904711726335258336269005353229519140698552808402562285815861239390389335069622342011448621911704257751713821046290854093637867123227047831243315726661023921220393409557856284088392531983940604660459760123768553791735540784894688986805765573202832680100776466436086928993108003682407525956522142509282950155817379216630481660286737429354354954376483741626559539541229047644441830391709358408801127602349232670001443940570151446438422158744721300674530258151188013113270808778130676152955728897706142966269079571347076788975520130027898756621384240254096748353151668550658102355734078497889154055529523301781007520658545904013868206919878706274859020916118916657429899156018712299341864712663871569228969393559792773452366943259046001400223459850523714156968773506702438085383200174693394804656807436732830686394636532771335368493941667410443322179965518431742467598571138680351428818454207498531048286589105914830508554068999587494264036147200908140890878833377605915828626957401712264127275303149296076401142837601134200805163044532985336176332514696842003785547989026761760874421239537453923005336606770031089954328562723644475149992263660621708775150358937886022280793215229045221433702449484133771301444118738958838830161378514514835307392206978924443503285637391794825610859630350453788582517487768307657035264533824995933289479591310845901842900558808364682546282556175218997149450576052836679440501095833208414152936205795030129232882841656334004721845881271016167166462310887960309610775666642211149239965791483192624020369648369866079985768924827048360570599641674014877833942038482896604627794194705833622377587995376296877522995046062491916191843418611063495704942855021587734242099880861091649381400969297774431606035474094018646823023102155507262499221818759541957290252306730272030037451478782066444926005473746679529495528280210862480003991345425759669283450774596910989924130581134906414740018268367615469581761888066318878022459206349384409712210929699232300197294941389775502072167291130088170584057733459172303466091398199899998358690758869396804247622794993611269171896841504748146422714648579206264473840615009053342528984241749932143545353750363900729246183076721010796577620108151845611032551649536418715184862778961675330816909679408468176684738275047889918156361790275181650760622523485976442512643021375541922297846730614217344993335098895541990660339128222194135419143119627679368305756604586502526243245935146564000221775578852453065742590285439271552874987077778189521494328231693639420886750344715166441780586434418311170552524257297889418890301793285067662262955831309104589399645207311034214736379556942058989643597305736067900740832863478108657425906463606021250293458616181422755924999723599079782910856935345529498031882485202815389970942489028139309824568041066550571848689060104734276681382628868063897643052083250614625118844343910195028474288983091753715166817986260810349150618388995712575065187227995422479353207263852960000345537109047475465112202141929078671273145513200037194690639459754156777455831012992771868164836583980452440625676536002071415390460407920254942884451214821165752044490351226574322224045104308508152040701919857589320405667899075839327297946808652268110304027175446957546749756007293490059540677177376439889558015757467972853157022832572242321308818098087445754166064237159514088562050821416553078583875436797766332589862443143852478972617578540276286466426966193341862793791148054312405121041676217253296031320736335965325039700550938564530896013061735887608915439603958016270547019850963697612066788964725786711657158871507352131070657508043642308725463042338036628878726614655669894411952388174036176434937525553296240700602196258025729743685359871189116660080775220373853731158114883597107654477902752788113320136193486875226776704357968033363542135959922865334269017944739404137359073423701706506303434471870330509175673795738331764964608266548143380704773734223600823417939982086526556432450193217783410987341836844768128585058859618950533185909192667395750272703978375024353805112694128460015856002928778787710218420827269423441914397199207399000314993929728941971893352231817438327439243274462795302598459496125303476730584335241124033363437855620392411109518267420400560885876744532475764682134539258803065449124215972467587552909290015169938536533528685404680833726452316005373978281507405916338489990916201181985423141949624562552744424134786497454384972994883793625142836475723082238449385564426266034753632076739125203019615942992776702199141324932397442621352244348295024812140282926959250063389230420647031909838450555820364016187611187319427171367143681436503231901207682282541664892274785616196074897464961933421814421800925846538984084339341006130854266640055151941306186976723230658748568610393255427736982496585787644826530244100365997042030513708606836152436405987097253152771436925099447502121699194371576794973050038158397328717993823487132000394095133341175523119715353693171264615662986940487723456681035765462071503846287600708325536683795271153115385111617612027534705586509632496429032804499330047057720836071664987519775064378522707274394427274282066944644117166429504221864403120846419147612618368166481491809331635636441235795219346567787480605122847835985514448654576679199783926405383289352255615201592716545367582061021704450667560702765069295073729145233504247515598252326928122810772809847202177716148203088560420320863597108330933058086120909861603767227213277131274843933144883815588977187562910181555936218860993435959275428192301157094463970674758832711611719569122610232284512762602533510964270858253741655361757609941138825608757660334783929443815846233133385271349202992182562153456512564748432155442010697319418793301828774184107068588561684983424144121674095958997956262232229746094304934262495516223093764365244582158518303701638218384837455740597291292811630232613261063853794168332833028001963091808448567339896703528176230042767960134097000626898157763725394335102955517311681270365465654362842437583047819008946465471144336635853600039942425846588856886376723719806724921905946611660868338685386702458533186003161625685325548806737148318591701331259776427758990591272945051835989375365995178842745227839918172536749640704259805950872411772239107005118184976813864625610410612090932424439069967680310993377771990192186304895612058658816864305944093912272205261076592478060791193057477767039891662386128396308279400182231280048400878828067513136476471209958937363731142706027169097749582371968950511416206211817354088318580920606472391793919707342098226519099810819004603098943427021384236761684802096801770625422879703201158195994904135920621361003459768400293164874783513024017047836645125967386982668769899721413279132664658574709078113549235668966247185933282735202753506229240896027213311177084677591900820909195273885022522943901799451935408197479054662850953845624815562066104345590778267577394366663267059926213236808013773804729305737303496093917211130462085116515925393507249143980189196284534134071062236061666220546385355286706100464439921984331190106898159930973201471591398577857123683567015935254217040246344310775472290996047295621847184661749972130405151381896843386156339247911205231948793531171060283144496340130680760152574202640165833485595073122252484863067774940224061574144556961789926173886756211109856238346941766321244909843196851607698094818811442199714040098795963214373073089130222453571160296836682695606408407210063729136397520274041805445614453022590958973644359561070678930307122108361128917925179429073349598921841986952087156589751211077755624930363453884081783035019380833857363105597913094364515741280305364245883732647502664694385778195166171082892944929451921082601961590255322003984436893453612149010949006269023327867031846145332045843504421785121462348095636915200754745441405380285112990971703706917852223226991724987871833606577356599924444741445181383420823008628034426208445687307004426785967412999768117698737159966413993145668882401212458437501381432381218487194226964445217852437799638633000327702094227427679435911515559466377510102754569207721464387086952728622438088940175529031252726979176821976669976627497971788237355528642633437281561611451496943572163162918306761029711137267558743164889499541272597866110483895749960025773664718381158468969612687511027293233481144706235299481049447553739235123858011604627233723572918957327230780512963863712732258866912292098576602611779075361035987836232563616914099274966151631507907585933345618970282442998575757393760293342850203401742155877999184301004803660432147443877403653655771034292111748672721251240732782945729237408890890372755596714847270201587553862536987123022771086091883499564881287665937965166027180620704366625667593057350980623543205508119532802487403090515782812309308070796720370070552153287484176333769918390972580697624284052335446745148634535570619204881121891199288573624077670775010378356373520674226728782069105178893889663576962027166611978507819548379327482139268659703997713058681456384462697773373152755316176123681374059231244840603422098523733429293897957761135842347339601281038759437091559333792212519556914166372325666567981354555394015292107521555531186183701655126799255746704148047825249736159350945918101723238688343186534356805282578416434055123882737052245456137778639509795816676274305848909840967247152119054128234455467533888194284448135588788735999552800112004551295606713100493556405127076571257156998291733579706266638465129015210985401826613241055330152628085426510337880587041205608690204589023821538327539575147851128531924251417840908848169953850568114642432402825601542214447565919273181245723530541984697506460797154235763115495022169694261566821146050488765171983870427255074297801205412985734842980570944635364949706753129253752033534181330738766631028432761575347290984723002277336559115777349506179929059619173389465211401700248424466479952440420815826627481787313279552088970389715526381990031121025044783102092416387816561072472696878573630111214892804487972034428340481966338564605995175917714397353183194147131924537133378953549377850725046750183973194915056588787752911147685942259659866801932291960413740961400427427953096378126050429371010978648705512510473254316105662284937522110240624896372210433156700669991596165927743249192274484783556095430583364939275952725875572910367306655208948574859277479243230761637548668684682385642752244050698041925207482592520191455201502493012377442935773502507592938931165713934595900559372123991176229534438785074018031498205706240286167897883542013387219895603635162430050413804415791870142057411412799629983561852570793466023654200229285444819984049185838688055295114510037181902619329509995447322263892862847608554842257545566808447761419873861421470670562770244762386983680579473879252101323254397671990962827346087710345123534731176235963617290379660979133749815396432668441355683544394823051279498208473795624328410281979009302766376693279981133079212937779075762671519649012063325365199441931405427234605039600955794732734629876697223536439220788776341760016373782966211867088621591889391421877673179752072114513933364172724398324370425878968361089331693102104654852157257704866000550491798840059669623016503452845033402654284136162641159593286020849050904217079903229335818615220130438343374102931285856842631615416378312327723701529618759653659645526633857666062968663188290645354931931442854357409737745230524481538162827965503007328198218961440503608537108712858092525852178300710201236227656264444022663106142186731659417927982343915900343022307458865755840890020422219587454668998128215108500005930528193375506382550804043142155255654830766066661713607189138217413656269477181153367614157888459016713446926830391991504787657920485524115281116649200703393518468425850617421592752182983225508060899584597736743543854855994036762866829832113811412061191565829959569998997866002706340066802303817473592769365946950825139171846002703886664461268948015419152252100939193757061130014746120922543831988580689141622976932419111129282906266504341468578926674356028382249029326574006009370514736324494439521811685767734025779057405555977499740785190136245282023143882892313950755868315652491923945992024216458349102664564672416896223861201909026264500306371129417306714051604121088998367038551380198885249209140670012667761360414942326754473160810993425068547186096331148050208772484692625613244911488617068432209455968523002292928138627906126510601918970128917694978617022107523583883237507237026279161113351485307137791565618696125852622835938370444452357849510017620552282225130998105451306301910121833110744473696481748401104015276097814843385504422237197350970710614569942212293259691323164895455547262063122780466505490157038885970719145089038115882832025306398139260586917018902322718600867772434188884820200595865265540719972264422945506851066660922283275304924359134837842623226625847387026119085955065566056840777197641488728362675762000820831853243753815008463540772921220733214905476454574889562314464866159607233319470247358945100159885014993454716652698225206505478101255561616005629812198635123814155237853720757923244895165681116012015420266042532467292105536071811370894246782025396763222509674550051050867064945179334663467529625826696082365517189095883531024614011719747080933718659159504078787506661303602237590097206149155569547339722544185010194665892615585447301740047822185735263280173564403337392066876585021372318123961325850825423530738860643281910086608862916502224193947166208050313974608199582924019833083937210271629691273746786512638043141862256316505912735767236850993193023837917019998612895088626264167789637543546092293697142394332740384146377092127499407451694646328742717741161824451124998791567715815746640174789978411766193869338794800719778947520129979487661380826946168329598058935935904759715555945914482172227334862479294998301205750225542337276101838243850657824360563992962341208431826713566468678242668305470370614807001091696495333413568898746928804183186197338686907199772539082955570835951688415847318728329895662049312138519077377774126945405614320116533154824314717364016460640723219817330516666918122766726384776239814557122563378824860941142122798174551407734381321976785561626827856330305044077275261698019091103667269334683756808032289452782433129857340963803855019382204813737987839581900849458685176026601418663814376804732469228801746364343727365532513705370766803474167698207154574659015235357479913128319762764089810452165331570456416428596271034310883414415466650019006710876473465680140696515307797516457539987498076510449908660526290299117910190490488080188851953597145299323903512300012069275323484022538614520125717111097655425045328057242537757103939268946050757145388064222998946399192298186845629319257871539776140507857165077167715625360867293950834100507769147707205923400934854372216199732159113311245279695262634529308434411960775602184343154776367047950251635739527147733424929460485733849131752053617078931902757057972753726864068035951932110779384406707758609188857141244119276069620961946236720514556669588295477320177174685516173965681515903494822556430391521224002250276039662069067677907643692667173443821938646531028202511921903834555059581768907526668334221253989097738275964404210028632775882480713514483011401689771333740316434511714577527635663603979385216467056213423677282857675149771940330233874837630845338374391952646766763553282430519506797044642165401980062555183212857572929221907444899067054367263001291503731549373280093694765745105772678776662698507733460304905395940083330222879517308923748068349914603651226945499848148553412242702207096864033214272849408138570849265158312939642358605735879922932847191959102977141738681800775718193108300223305518320893687598135621624205339050561924335822112818606827677174111888892243949768137534515652583630064470127438851266102641322228128507064840003312121199633661541674718165774683890454628686795863077348366593861830695774975190356480424178328155478147535110648445634621341407757697086318102932042620734183177966418503635536455762205381527578867010340509427251983691652950525045498862995243029047271557632063872938928485564052627338273006733286206225234260851798835151419498284737532497745067050252085739628342277735251448965097441486348418616905907751905787366033028524173558801649168860572293971179592248748230340852541830104193731513342620151439108845805850168419899200781572002342676363977188235186990560683711466407872217452595835711280003859412667425667307285702610325230909314765397987247549363030355889600244465317815612218443510018701277887472479840935478764101264888602439467172197577109885897656345574332348446216165276241034298621198013358806455386360162152182086002464817646837001242552197378283613217653776269606559079818965200341971842344918356696585053042422666036950317328914881400456904938826589053067794691618843691111318717941991947416192908643097598510934355881060697573202635856756721132114543075910944976858117008911491683233333962326471595890330185343998083227497963668369718426090535103488291181430002922215858750398617277971130968969090381359991256716362739297011914750744847708411522432582337120520949134657582962634670926186505761548037126985489989621802686140168081868283403496001632031991121407162816015994855355741497435619713461690057171089366166474129464295185956671773497743065152136882208649832470649845250029831394577195721991328736900237148533562517434550612319801261171235288299943640843717596235932580763698984430433311088174597700523585886332181021172131295761609166261176580906167601073141876239813855806347339801600310075988217629957471227943445314107059292936342859228917133245356075013709179838965917166531080401442586292173739148096189089304900291484697109213385969167015426440198038585846499279394356646550819688722570369667083871603932428060093888540072386733695798225671044817032692677162094619167857735904126793932883349569827941053220986361811505341967850710813718649564298516072624825236194183809877021439773032898632596310088457353932613586988259755452919053463896398084080094574760694819520080008496615635298232213297613686887540168337970818638297720960150060757922150959935323434049729700425096933142689478508197135943411339470976989066915239044530674416335182573526201635977782176326736900389226123973692013552015396821674079060256744373607316537640431690162911363004042474528061807234639427962958472136288902278815086317503867097229682621331631893411781023961250564088538901655275678434946274277449734589762682693165656353935318681449670495560501626768443008701222822575304447807781295541861009779036421135372361814280618979987589951490322666212657326085648094148441392363354371775166087434530548190792820362672137531273064033102608854268896450689477405051189735994574173278452767036892908713213394784649697592567547228482015630934105446633546654474042953979527976379124398573141298974382546826094678477851345807871029576346925689731786934546378036184416758610615996092042713856915941570040986918858354284490873271437629749974529165549481019854552569583453943152740528384014698209746635083681753994778170219682888498878958827471888396015341876867617697711789880124270581392094238744497323933688705670772095392612842956128653749746456928554239880414363300229362660139011352875300984868595151226814114368447813486220758319466932161135825974881058474202273448926249035326949913202146335219501211277178326841257527308871739257027812305965511047441712787848467912344644697135402886497102562451279549104117658603750399834154111039584396465580835955384018633194627681941388097481182044011685436430399322702859203376108306020861918979037623446808844389284323106096775705992001944482936550824124282433192955968780191720204337797019677205103678682074040255198859000374151393544999295650274210463808957913675371996024487171924854036439180393150014645556475822175162120018625176082787776948532515218204406801898817035501165521634780658560641910895427332326075440136384146243409628944212553014891745477180213322634783792269184559817730197694581440162689186392028612537784513780386617362951580860495495553236380495331303139701431427578965489888589608085811864970246533384256072447409508380929792489656747857365466986676623614037629888141838644964499063315480417317889059756758424082776402995666774568968740141586721334921215414699393777528782939806136894865310355686736663582621050181427352538781215674326190026978076994369377295733601186346511544875179098752651535252208152834304878351184444329276611441923483445541724710330808692335276592478260921243228623908199493676692619940815790097420267362344012472800725232172846461357589442462439783287979949796156417400418067394559874461906446101623041112350013359056462071166011320889837351569929466214271968129977962320056985026244099221199209125583582248318583623717764420489363772779583743706398144368545643604086585414853142315131442182970952384918459145189185469431847615587796268924343959531270414311645387061904703408663137697575347221009961750763221265453279825563873384318569373911406603681898630878735516823534159950445137421999124147520607093835870429313063741489231279529707362951523097856731870246239420703807687353221552353293359085082347378536394387988009665829113462911658671594071641036246075137377228575921090850858242826608569075712355016350465735995657049925284465510942505664879259883842362009679639305204278450179568171251459420971047942957447373014600607019303886108492923471889497693363715030900211378333366705272884973847231381937227338533013107714403817954784508140636146773087861540950336396637987650585202646557053903605801923024060986020508075106588792246254363925775046861436308277031946882287916719265958026426222749673810664237759031777310459719696082040381156260281256155399883926310240569577269550760042704486761513014497343401195432576256595101979694656719727820225252834627956844723477388711684103182234766239557877828313172694347379724603931943153168342114134867250370953453651713302743196932685011702807037943022575069612367801170868673370156333272727263452393866988830830568118151892165868240120204238389293898945884105275360194238335905481594503349757868516373577193133565369015827343451163858249991944407496955871242156957715411806121658450934932700649123218495855987548247375753059882816630142693812962661554448569708539993451468240996268985687348334182442167120080897773401124408137006133434604703305278484385583964785425010996758759526541094462121227245101462846752173721490693139265279560326814855783980400588562348807582982185378679183226653382952928512888646285416728528724824183229655062190377746092819846246011445782683539207723987293937831879103370641206948989699111038617012355874975645704778624490067120353458043121902457226906945126223796865636395424177577111697981607035425299814997914989503639115343705952401970467041995296030859909667687175634324911345233088253088223251190923963175430568953769097837109204524526242222655969054337919510245863101379683297523709971113008202375596377745009840298505829237438557417342037493376491438448187040905391608315040463363237544545866823673973211169457110889955460557942038043181665712245912293881726764489156844361222163737975318098494358355040905416265127872574861054449690253105322723628650234428223475849870502037891162725266535679963877927817819283625637162929960080668290139298117779078597475737335009933983150711619752458423995000258725694484075267800873364465473293756118581408383131008527374451507879700329370137890098484814208921420301606511478925627298799037775443091565092026942181223083905087380835609823007056119023889139806492455700327109742512818042613446623582183693506918901907329844806798047894227805294931539748935209582789337422216755270991549892278789885738486453409299106660276789856954526789481720101393525614839153878000781217791190468352098932908930006306414473067393646724067833414176821183245271143587718779356418964763903267038353160250396852297860446208576163994513457985278638006806477631502835803431970283369307013552907236328312923018532912486161886004111185940818603047589143397398370965480085236178401839519500652814524499595403458125692554676310013496089323377119024680532300364432070626993925048914999023496277886538900943786380802264724249917043789006467140434762671082873475327560761547448593985393245774005964557253426782806286038623460070521785705635219832400804514059833340915662265259630111863102101117125217267099547742409722186219426323498944069080510765389859496611773402807345616894521182739606370143151040413686002666467354019175676283742027307204094621622749551758326675766187819589691637721436186380934878817036587147440798736615096947556037420538935500680566730261368229335185746501420230246647512495985288623656573961431473950721027285811347716553693664085547145819726644291739551358888336270180720999845786895210109779031646836802029272669946662401974870381044099613913832757077771974898623075096901486003319911758384766610993424365713610174026165287184333592414495640677591774720677003585712553663072143768840195936205628604740236854808979762781314692272612522050925074324173486796515486394692525583822225662823946040784467193188704668171310441573896265674570161562649663801702313199555660777872569431161941302095054397658629602323881690474920275588926754671185471007831743666723905452122502806905589681600213909828841548543672842442148183220200867346635036736226252179678980599701630982595128891934264655230210247522787391510460271209421567317841880071995765559936112156573004071854721101703858563341083422142223075693706106629898377656052863536753508375428044039012965026928113672776532597579895002574972325969068046192687176736459185548011709211267151280975913841782397197826817005608530189298414820854043665094478375703792482476170903679587392338459988208885532871779310405167618920396936832817045334129195393685319933084583952857598501115813869249450175635841068050156051354984282993146884643053845130950439381202498265237886216890772363446058183621202345667771877430700781261984505263240088821967713657918998465239951814518993873991604582991399618542296511255829834757374245347869793621188485216886256525371716114891568272310600961527621113053577770396463226387102522146944214172412706495037076931855041863544128623056238817739322402073592229062742644822099807712341818993114521525450774719863366319875762497792032815264743783049600165827940515101820368563507447452201988356506886607418542256070150384683044287997370142192351032181264127414895140363215061822946060195239426118913070362271876775280438896955281842059779452819262274356105351975320439595506124823263850362158593542854131489078429302327757047076461483156871996782773819253821635163080076333346842140796066344537637594181708646436310653728337520569369983792748943160979046432685957050059840446186707041611943502435855056784628176327477704377133901987001798377194936544455514077115190789658597151965727319980528005823235718211387357157433568534223180928339542569468872124845453479609050181095260982029721518345351776030426349906606708809729077601732909676483506130863852446258002952181216761415695247588035392731181291775331460133988613416667006665109953555587127213131948984079565687484293416457972615707145975224165937683382795346430728763622542366473107046902021602683581551153669419590130134866898397568384523425377012032377011427082893570717534041858254423874007012895256442503962670260327101419291469354308033716371398872911021735924484227635327185565119840963262294697447823128527743253362863104690921586911699412264513209824992076678041553180842889227289863613263862957721918090436691122336347155179220846537430147626891489406694383166312195256062055189338230809502506749349697675868571598396619834965230801587256077207144935668522126576388588963977456808598877826621937735369266592981788613379980840804507396427615870087900215794545355433483003203494135709816835356437063008016199159412890758420449236908305202812179854505814932724507506123458672173703455026875937871621166677846189817247768046745009993187113472793252641447306993984323602045002353610125765725082587258576663348946387036983026526082433511530763649342904254906576216053012998374631311403393441905430952075929762443489738387250907888611325471407944149904801129937471641834836093529893491540580938786188938329033276203812144828830654117764000586814566704237943961872249310496323002303592618566885320680033994779954064284303433365832420477238756453830358383044401709758405670609682441181623168401372931579299780466257931416846234084047703865539072100387911749324914201325972694033994371806606122205642483505004529660587965705166602851484799548403572775436807089403151778781040286758897542513679484502004385091244635551296642756346032128635252669301492035690251222516235772056580575235661844924597885045012691254252857879987950490850418930181724757368674439544168830367509748540700188654413573619330521362474913708202079983902922265723615121524165884452042685692155973703946044908356279076244532944647080765535144936206880776077332344337301561807812518551022928194354231060314946271978459983622520969113385524443072526295104949426540573413078556815234917560121705169643423251719191801901451659723452778691553492024180009861156851664885566309228818432465916129272750118757029433488830364707568945050106556168742547110296281802127199085372746611917735405820881945828137261543890222486912203156661185895107788670447064886940909465900060056653136502192403414660639732877896701484480375249445889919137092542041357021111823950628933021689447464776583140860122077699492504953536332014263215851234848599745503776634939291008334745202756789845881656531215977789472843000521063202064818725244317002461168723048645834583171331296766582258143799794493386160780365847245727106779596725334452471226765422157449956416304765103797656882778298636632818826975573813472649453810910221575784580641548189285686939823420438899861652000788188620648949528682334247126911857223454177527228307888831613437650125713930371553755214122826069902122766108041113763441687549572394336452018504988018195770179540145587674835943943962857488886071697631854344320998393089691346324309711631366922011022898937042111668876485765949537390643031171375751203526359047206177005253940246750655769655825028345987767291152545100002904837277485488565229057212665082322092843247832868231354040618851850706269322222866422977402608735066662182810269745346118730334158421411655792453851105791379658977753782965242683557104306779011198608387872899351320345223398219102458771375405470734888969847968923725017154785890576679502431463653985950675677223428302599416657037855814026800750185372929941338772700004401624554235163519895152364263626379023245796182123255602698030047569669759070864742533192095376577570745201661319493214752380491823225934762243421615641158623167476667199519850775806869192896043690576210048031155462722324525952392440608703422174596847808714657665267815105165738296679249475121491465423614755795791642269187637853238626859272547981073605457669714113530890939900026751136807246086685023983959496221362536253046228797630229581695619867606554026649873164209182105648298987557070856942413199444706107498093905381068662186955079239637414212680582868407362426828728062239757708369220274373713000951751487057097865100321213547921914745318262513384046445477519258275419644316454846654461813881367159363155611533201557630568016891968312993955259618259249142039683623252892322604435656220165431836606990504784733787084147414649542956877731623126762859061232196075286251007543283458235418429192019758065265924270983620040900328545294658870421035486245843261277765538990110944703302086430857724487679990542122008919669654031547841760095996727148773038343161155098065741423669617904729333345131472910842766397461410311948510869435442152945157881522162251461689977549006662591486162787807287382149074485024061097972805667643165135893047502709082734061692186095168727556847506240450857385920201925149320433003613559339273220195821055891726704915417187837604118688562894180480761179527203442951956980774876710601573523240482377963846941677166331782138015887533583205623586187997283034415104100511606634156812363002430447861212841490530677430964084565717581739203611430215830757643432809594499212300891358154107727214547859060196719944574042956678507041344773559875704740335929304297455296589579641024415475269424368145028904313304834123468292270679367247912738647341222857751356822431450363919334899483222000866656843029029658839238107940043489816322554346910749071873088206240234429980734552417039042530851404489444980469261253281458899640367957216735601519199647828748412972555786346064754317187746041751496583837426377649333982688703306049807570156720624926645392687587536796309183241519519500515445682524610908210864543315218341585025270023827861833327588752856907805812754325530262849183796046888542824790821905385334352651985077720308566290072179728496130204844097867526571032061623813140164863829715361202249881570117373375335090746440775996459198690300530794577493012280622839056660057767501536020050408899592225700383396020148753478461471464572058887107062922591951587285344094908841538917011752354717739319557699634434696540992151724932408007545123310035629142561941134608331024457534562858499112593998180537443056633394670728619705549845162349692500213685511430836201524538271477970769972869162197452665504813439148405691807003947372197687744109159831972362490961795553230855238941963207674463502987519279881778983323606547711354680433616355729503843290426326996114477070080337917780610081181522807422599191473864349313966260732212645134290738396280755660880623738995820491590828798547904116212388661895864290209696162231172594547669817351087689238961902923854943276089783932602965691013836641732519515638342963032985921738121031474683692191419851891032723018155239908099396084483053520856511922399839412885438854500121878029640625930654957880556915606304426805617594072388278342659451050898448389637150628122739227930925525376108120866861586869036729743024601360748575898871713463734748641111424086143524662369456453225188497200847732898717172784910924887467539372036069488702475222854174087796178068095797897397836330072651615834509466418519438755528961439739385095487847723887709799050423731878955926720377061853114543254147879838760290299023543220370441441913285993416617684744001481882051382074870806468863143363100692196373386497692089144349137994828813312638412262668944289043490079642403559798963745985605370516304511815595098608347144632359931003099504879233476701383390259692293792326922150389691374150854672739498110744976242588290524612594157704441332128530354775793419115148911507332608854868181681679224954381177081324370967567865405450730681574738492812063016245572755421755001061703845380372569131265949700102398574776106989657131618205024498204721100890619162111413922630633874489737897423505804750343909091995458469339139959052771544850765313496473657214219896463761037821994200949062093537575411711165149806703235376383474944138706096625878071946006104599855211237515416007100779363417635532867258105910870573569344677374696903354710632670792119235285608513406574243882645544249405131800161367848059498010671501341542803578752523230080706568905240067513216509111085356609624326685962640912372256819906367848644375966660193271536666969943254465032842746363298801289980391656154338501723799819445033648498523460224335941789100018643707859981099869561572813875011009011948317154928243347804842896739300091416222013207357474976932154680115566676840858173154801771689585467966241528909661534906312398154642966036206171850841926395522631404715297005183086158543830061047791970918736258263597866095965567943416871636644424649541918523112199534753511266817280593842319360280448707385961103370529761666288844711735448135946419565900532959710887751509617742501855932855705586040233729498700636283293036159282945317930122954617664169876363674286548682029269217824088937824821423269648181779056733038196300561994296892116302033484262386701023389856909740529201157738014946127432271799917070262083491327813947440032112369666431948449365974984654649506875206862158070232227655314239674329102600735302486650145801216120586602074936148927009995830358143537412267800122757154201930384810922700100647250892178683847186920882069465069005594895778420463125969054158298674076316384948968366997753310349833735039131829450342605671741289706686644409937586018023769645289390541434142903813407613844271065642734153677516515814505991230463031947875163799636725270286498499440418674892987504638354360854862054112193111790771375480192692059614842198796453700284752401648705082021725318269529959265257842238195655739589934996664271943442701736174872565238416163536167710850746624507389171101834362765427200505024475810712856390521288729028691741677837585891868095450078174939362138624517242548254132540811480757055146496389430610065592101616921430008465471659686440671747986533956565590250660527897950506175624860373790806430533343426190841880766381316961376213825151992176746316081388329722073731606302461676020880450175142757357725766742222101101406825155779421190055237330617484901312088388857458216576120905608486106597946277523638289096573536476794260379065872339704408472937157008161416813293554475021732505311089593174205802018193975170448966012393321432781648962603096903231112841939950266431047300844972729470454729081983685883343729727275128974845294705377247933460961455069747547382259550937231567770296884293184641308382863522362300840884625500608002801096666948643443809147402656637965838348967654657092728130296082768463586313964315578927357457684293928402583365749398643049173218852623014431181449572109851212415021846078766234786988477088083740487996135985618853589462354978280254613380062614529594708442731012349090931820452154291156116917893827551056819059909651173407572646689343991237264077875331464907990299723173322697760496759028120669740341848455782441105482936196149075869342272864600217647434709591367789798002834878666772735445910920909369548755320519517904848300312009654830992940735396343461173977042494082786862985507160112621999627458051468197761006950403720014706785874846719407814085873434499657860238427634542860926010904395028620387135328040336956964990285721369357531585930869477788708731703168962695357198017578472818149045958385743474689321028166099193395254601655311793212895025925639006682188806096975689938321260213462691379274347441656775677289727143042750006957706832395862199764523382826044336749301114480358099995820482361237272591941231120446321101954167941571462979219931720747597856312109922419915366720729613252645595208610874548897637188019711203732842945889911429205834294897428567720903890230741182852549416099906951021457537012036722464444530408111694666564270930703308763165884844859621802194170072400797603340488537868150837051390621849845130626296092835774242805900127737017808488602784827365457335145979977852047268187279588842804142990477467632173886279206457179889308598763447617995869813519496358332500845695587792237354534590816264408041291945349627582188066413544297892364579734328872764832738395404833450355330082496988059041478898335040605637868981294466422649759043107310122810240689063039008400240664292120794172021496447421443195814033410708476775088257517852698640896887858403867103498300144178462410191498610140576559711591903059352336796233528572837870923485949514154376325763876764612712499365165387353424342303347403556273379013462471128743484615576682372342482458014374593251832743620433202086641125962833881080781206508213665902363619552375224975470404373581077158324788666563332610369709984581064007028694063764896874786025870049024426532831003970313648823754407922714610706844393663294043568787950371841954212802511833925400439826285025876464493956567673762414536132668730699316687135090797229231639006392493143057705507762459586559700755713807384909231411977977969646896430071372410842990501630539557009994429155570876388935462157733523628956046153234663509016076580947884576133537514480076160271132001393435486521638173264335967559871950335697222481894513107816537298775679535112418225353330789153995918274534216357532915652016730320676037619190621343369601428398883712769189478973480053416946139664582946491495334529471890807087897120697711479222127034305313761681645685954360971856549408700555035647164840774279725672190001926550170617918097142352562424455325763281145213344091930953263529508333651128449975991197494398738755328957411171508757994650849463749364882820034256716567026631246156277309098697361526062936212109201637744853761029845657717525065551976375834764318577451259666324219233887707394900150333015015561616516493275291386278244011998045446166493014654149437432782295971379529950046174539521714581003427381063361498878728340369798116832218158712723802134352857256783796171809964834436833497281302594044913610113759721413649082346764050733395747085439912635460141285707253312152194412298638893371852491589534313153138393453705563193932825454098461330804845563415698780498126050230115933243930354660915010317149453218844951485603069050739435902074577088114601240189570968645642329171716284316120208496191180327298246269455485935851911380006912490414947178410900624188545253566281789494679860316680315821909799912265101052326561220178839154707729718583538008186605775813502654183782680184792615945727136115304365962680404887121682397235944395720501575418744404850116782825479122387679696912837858585462122244991986702095673426353491626404673008268737824817700981336776476556568335187729719849749869902451468828391277343906770036816803529605626909332758941375641393360761413097950924853727479524464914025460459901715044864279115601041980069112193562007664425523965579844942279563153961540306246604310259408267759826083758330610117036025939567379206584786309558729156958389454472805502919332855319353391494526895368753664403744847852475315482473179200462175761582356998956183532497829980106099909093280782615652652952851992300985721807389893208289718064785037569589625859954912403943634621575482597919543674684826342540501998119540706242534378210301335227680122437503879179325355930970914450967830845259483940183151819122122647759792079662151683834504707231502436190971528907743760700580889552340409575912320458107522770789097860071203479709860222210378074334665130573562894481825706999103611038163302975099737017311187836799287842128974442412629862476982655901666007415767881573944110737343901254249205851411555578061076503539166424013949598028752942016264826771321479106803669097188010441115036159391880927752192631884837783531914268845488997763576173491772878915152209240764702443466532277986029026240755238578076163484681390279866854898786238339343780558645793886906853405156627199768243037602590951937318920062084822021133689205776621525454931094668786762823409156956505980323407446731963489797159383538594871330537533374072914333442116381377905145813041967294696730220853518204064697789528784697534835862235251576933007320421857238278626614373644043316189495218823162516845839657421560279852861899101527745105224423666471726298563636158844275080975602281967279573700539992918920646538340928989709846638458025088936973280123389823953465371755620486757035485026076625188940825646550779390599432205747798194385428591430650832449900521332265155091883012438489242874480886382450094468421942731193393285497871598800142792967357753961926882624978874205365472231582596419537327680297226864204359735168732782678909343345261660219104800191669737770340527740720256253624754945196979807369108027733985823143755740764126372423596027703746505511380658268203585658504424351721992101629115231276492396546315599853402522835421270249830941996370108365866793558785472032798506924673705862726152914491761567688556271912708229002727663564574283372458309079601925438692564014642584668746022418256649798858738907277387201076905834020481082873655572753467265295994542710400292029906790396307201682011711538944039611807982627205123531698973892063524556953331677267235157984695225217478374860372528451335772347135402368599655842761342212615716811397449810860425352006464252768004200686788787281694928192592220039621920675105074539616350971380211706226584325506313340053938671566921184984947097683574403309022586461612851239935085684094834506792428031128893784772037398703097330478917201455833946094883953936706327138979579963202540259204412911204339683646364243037972016616143233429742859233386146849392088697277549981309199183305265239243205281724569036883903233390399848151534730636889252954577729120323429404440804345745649581907319478110085336467420249261570697062824119796389244466999542841901474789237309805361270786428620416705571029979769559312911941730264600826841861531688160710549062173257441933036238369192687360299162173314155425514030490973342143372206671662316727263468458336921485183779042870666135696668176555560921861775110498325876703680714790519904990857042820404732944431712577183763751788577752466217236203130792800394030266833217601011840418150562592564081552955763918612709187052155623328976068870287458925175009660211797157720358248647881163470563262135126295221969302752137108520466029067038090908685819534891456805157011383918120354680352361622522513085890012012039496988957013651328694688234151217092562690152309339147585248866819896546491260135659383253559256780975040782778341306684337547333396173260605839442576422262024187736188442706821560035466038010644662289299649767375623791728530040829919385397928610995556519480546196708496413883224471395905718924989356113959778914120713088515071112602969969499484312217988512890635396580573357713684538885404514594664092281837141039247950632332874101712523343087906665511802295921052208394098576910430250650419372692213787227554623367241884364521209955306087932177197109578532149090555777902386794467910288325958222716939206510846277269845194152520786637068861341067497594513939762018442770353145943056042311563452761430311562739628762115196545069076746606808836143261017587087180330179422437707218299860163194638292726542981034336412869580542214816500178891325149498466034417810434198899033340270272330711291179552077804665743984813422487101593955466494195953007213316378639889488285994601672842714048112717761732178582309484866644391570742672320458374536842757340441411490422907171242848865212128117281612048407842334649861157234952068837244922525989735730819061705330280353186037734149745576702188937048684229868511445008873268889962505975419381642900041773908109501992740674008772143217055396317878797533210219215308785541666777420108090067620494469432172919285738201089099204858201452111101496823192784292112504212120072694921287867973771886821205834238044125302731879320002599026865006640866074170068424159824452345521293813351989529782192388661455931009738197272579874862312961000589814071013279609446683381463357576476608712451911001778682310661739278234401245034414128210295842729234993621599189499051214976368246803058811611332275668540136627392128619865466947140243162943768670258157608365240078858380526712812656295255079104015191112284343027535340405180059879726634475243056643236465589395124239359416705098389792715287408573859693103066153205774189420827240639260027372361947203256551533110287380770931922253425532698092155915160580936261144887450384406344761432317076883563241908602286550587506596512678764280582799212205502994056924168792718700630260302247484254887826923443807670119657581081220896578703177864726435459218348272308013599303323469177215076121131883946424669050799077900404732139178503423592225552633118761125873705079959370530701473343789901566047934783958156637003719025871484772447329813549055810938000476341144063811778102171825904131178436528091757125572818182365485626979696605171164265521033328929720623475205447950924174344879451920207265833496883011940914536241953934233433236404734408512095709622116023748015203096694366696054866591062952979788444064633241515755381225723773627066543785794722156482122636107863864066055087011362198329986258315592677547971529000632068581779852966166242432946045351469409184209318462790998933782000200217050620137316527764014278651068787219945857275445619577855306884114759712863783421761020932842663388346866123003363216846499679621724168404576375435934593756284980541656162565166057425308902485020634690741352709429334481496658645641643327882810703545385151644738008700744998465226430642586349310689055147570985184359865736141300953745222286373532749679196693304299314630330698701710386174165908550429097099386562632347033392969693706587936075619382676777967254788726043313318038339608093111453239455294752108953873485401577131883548376463009967042428122262156821888331873262245526408726876472550489380534787523080854327947391036859050985746375273131216287734667303105971679172930723280087208226919910226662991199684771781826402650559036251604901445133455998508132612224576927578998306449555833611390353107616618990526493922970809689784270698072534129750263660608653276270043239422198267645762073196061175060859396488972295973508426408274993929585726389459850008553840816691171778517010933560180271338401130991752827209586563286609797656884018355573774684577158030090661533504068070812504176112674163973355612076915200277546104469552402276581365302026142671856335093138678038313555483354580862867510420558387254298202703840151029646638521282439633911221303054584044047705076945606315143664726631294921421571478157204128241077652935752825246205287670543419623998753500807393059690585645816396334224508232367069249493697512560173043108228476590915117101485744525989229465838175850677461285150622069242906033349483974242898466078268387854505611489340885221071056933458084283200719160945304828306289216690260417091528702854605681668722529767725019398132868699256162019035977533259731685423217947794497115117273065233291270620731974024146337806699107421545847654040146480862508569923053640844416046475805530779115488355068746994135207288552069231668229258175930002450652838040457599165488677104423750930340682410842565999671061450467133930166990222871501863083426362003844115846755443495283228564344341514132154232637705104803486190919269572841935235603424533458512484977420340329689478135850816906843947483758707638584658324455152776951428714645604792046454494625015448595487840095645542866927313329780225125456643149359005353570680829986615820090759201230274061837695502179941261282118435949604051264974807227175733000061957896342634281875474328707137605195735187769967859522522265850192973733631094095186593917495693190262131571407561649914690171943837158946486867744234842848353832508786995082146656948721743097895925607384344706318987601600531853116911751768981922931772709281407337249795314842733024552790491696495435232459624221501348334676229046681717088456264718310969082794253501177832554278233484689295683223965332780312982072965607661528841931710836977202997913197438338917574508434447163325683943568058918003285628636466863794232807425800829572079096415264130686843210009040939554437835278810175206205051736645130248040203870783668515524670885837795261269908634916828375768793962892398754075386454659047538328917857376323688795728773903756992253193576194465853641226083753878697237342794099248760204422542530293625547947818999723115625794299547262637874800583486167921028665095676825241110993937539743810066834314070753503577922667786508347033068298284772332287527959527355112062040008844762934726901129016033348908259472743888486659191691326320146374718420964561919197158844563140460422350931510184147029250584992844188973014145553570323255670766770340162041072379025241687404743518975360681968447531383413599787646064690991893756743593735368236682260712356531203633426176889281410172258386029036379259202198571893938675267001827061743031451428358476645653730397085073223190586785523318767360782610228764639292310885444202067081730255862137076526035114311599991637135581413831426772585306993929672307182346598313643702770630353475726786701341569072313513160488552752716376040047500492717721043360809380567069192264276157349702974672213872795203800840623142955093918754764248770638548679403078742110696160438110526879917546179273367963154886598024650477844582205281039608106741592494620200869314045558501537768072825935296767064730356741532948080101166146128427853268292534505658526675666845352772943723036278652007986544661679848410397402592913089296262617118264152521281691929861968004251297364064176934021107965502619887735014556930213283191202985710928694523701554061126198311186333790688986102446459976447455997893210046054838978110563642757096923154168680046758475950675422407925723860579678305162763957186169488743189443094814591479719902670395689014020309762697707760075878479174227478468305114638183090332500169461426571044759034793748412574992490733615417409017066012580721756899927621444798519347805608870476639447965772316863326850789643765248505612514830438677975981607020774670325621095734088769361565799268673368481908199036002885181716872227842408742744503046093691468074108790304899228994725094537043349090175621637639762640339155090388666225711188396722428065859102628983699766549651018814100189870134321126939555043027089904802498866910643768952117708521747163900170658765527017776666004497150730017280225671056256159596349334886530454141941046768476103912295703390275787983135312881199814895796595693164207971035471206918675608653790393480921201093373692895211014215960880357073232833509292459708666548247160174243214258514434197908414930364611825876250633686616467414993308631694688688106046700324693248129121451165939588565532247481318876041944723553152632787790501116192265790852571876538738455927324969275235864112355878565334052206231974824406567888961895408897271395002475769441766362217009338011517278199663379669460082025007352606798190751272979456855158302068972375367985149520408817812870187884295682282761905888714527868387890320698318350314980834790061528989048642311502042262082876034584341582766271446279452914686277395301554743948783026897654662895964920800011036843461073399137470327423528874201039559979318951563912339604462342668670389374664165724016572473429071441370226977657487946506077292600343468023485814732013634391603965649908005911331469955248800710750790699514634464228012936113352038208042921628374522274773863614542801408168403585674591528787133249113042838785729600527995033354142800956955916523550417371127268149080615533511446046838446338703116711245313273557996527172661143089530560884784173343269683903973695956454305515721701166261683234194268742838658322894989603216978053118206242710004305327578114539241485297138302322583529491273957091396182371538172009552747421182868533723658548902989537543317071037463174050758312916616660418740940169850855829092269132913252222407748922356331715418865981250163804976114720932389919627133347664099833325976771786755802891345098611164548848776691267314312643780565155379360611477504911620683787068180288658990531546409450328649400495460095030857892771362729959625957994549657997940544345222322451274785608496934113014038879768362483180734886361385011692490207501769148350409382786414554765717200906949877025878688916912138413431592385360416944634267985760642578342962005802266577523841296004544205464408067934571470138134788980292263340759233704273612964980176952956610609697010112668154457007164653832764088876416903591691368410649477728300957544471762032249479063823893179957084285187193992844558852503241379766297459620323528169713505660205882930186803095891145513342981273364584776202265734332715896136721614914681787054387555224911300967579841768402009335282994965107274289674589596786482956020672737374308328361728899849802493971840114680530835058992483628671996099476259894298378426883291158302946428888376353092843423896217123353193856487913964107460906880303202490454378886213758936294755462885659738573913409981450425863772149512240383144420507798356145807626721545550506093635024053514407973799300127161186200410861940236746689037039445396749630913605170056152395412892880605216496681320107439558601142256235218963033924217989352608232881803238757674319050355056382251015385659222330103973753159780105333258706021355130902373079925406370798749096165961668563442034820087988004086574515749722948188948638345124942095278442283542908239131507786962932736764798697344757895111903957367407475187047114065460436479183375194140208762202183918698075752607330335125603829365318925243230896013629975809741410766322073779924946032107493928814245809264042306062880850077966280850233758160305092434632632124244130206688310532183845821739400149007166383303332121763085310896161944800188807864058959016891801326788622048874508793184092588805663308973736047622466430368338369688742757185336831593720201540308762247932733818044542731654721541296450243772306363040676690189145119131326138103424968377210905527618759144513772913116407235506277162776331720910147237967119328031175862722635037074435116904076635991117444727443771160830927098122683606073136965767764046520478982254075954189636305738969303454955826649867682444118593557057260653979828388469311441168753692695526294860482573396480545011475599665240321021017207401670747021793103904309589094946956693690972565331099956737665025732787425373553586401731333779253114403817175365234872724710859578178906277951884908917072941424979045877457164438319595718114501965142091874949307602238709590553150929842190533067874399279355933175849596500147506716378759203747307806380304501376009519284018812610567867427721307507182857804178086732165835371510359605993459268656434131342461999818826975042984265546800719157956031526385039760931915341262260560694771850832916141905127944638776534190003054989851523219251190925138919152475720484069623104891126063930194171830936916024428946176700111919622729754381378617666903384511290380530203506016328117538062325187097742279033143004634711145179963192469471453712563997179311344414900815804371778350912061531758523820370899406862282749699544199750024572073069509783956631079631547218868104446312638343385850779810229261679111193221776548401660602458848579688588839287542959925634391100963010661487728621855670544998009058652300480534470992548572225028455847009254561245926885059513862021299891314123308104598040074330636807420924875446892963899524129090905289213187594449485577724438979282399813322055978840484613252529658438828830199375956701406127198582720720123325001442870857740734099458152768544805175397071407190853612629783697635260497750125444501562727315704780751733229851260393994819223238277840567912176321953378771326350556812900666356201420760150710036339412099092800796029563745558533748267941186621628529988111252414338963764312135297345684977241566086468028262285799781002082061910090216748371778836585666854282790094202131409194533718666553547462095104050758048907243322818298201936080751183235229975599833232502577959756454700703218211197113089622096211024552321676491561955932650476375685173342067399077102987534264927521038689847379320120945812144076797900050804269435508696208948398385491918950312270664139845143539605621531164352335868927649444791069651722197590228920685724763975520995227214589913534858642358914561503143175398982503563970199047962238126092136216122748516575358431506799108679539766617075909772128375927018676527898109254042023031035230184944640353686339785750891447727043375575798684857411090833358056275634197810329315868527653732658792209555774580305652555222550078696183363213270381737570376115187460920166820979313246034819302888414558938388806827576212916661359185875137325744617805924387681599986647017632779303460433674485310895226221021640766758676104765105113050227140877758700847739607287928764820585872689235642473814735191487010556973992052365067845308899368954760883727978734205438153644197081491886389347533430726098559949346052225020033130844813126636249495626196159263181164401429368636067971877003129005164143879142049451315724501518594815612286550897204023271555203758570102098698523864258277069645618830886942933804843291987161138481845143767506137985791254461558805848320034926377130409075745018208029786205093319369760454245362155708646608632096059635392684596339939772785694727877805704505074815611541886270688323164276115040148176525683671740082475795225329450740566376552458128471999730175629136937871377951237365192792362721755177215514152202378295557712282018311843300922489253651171209674021480815197608852936083314012823238346332278631277036309120117297800573030675437692984934902501994201863765243931446120606937758893853183548490336994510809111786730238652044192093760845074138092192549182261926680659370548381438046657402826602039610199509473188698250380473262114770839430422926604242498325430154781671414749929380610601949187774656771927705367797748851383587229406435990482456092797818580218122581428440829902133099512805345561219470876861443920248646310530455545248691483947787892446757339287001314277140432999709974106089393259297682036114053687993365485504417677631492798900860522855817341678626953389210175101234209990379533864657567266160794745441724680615277237588152583507816236088824262987171517832577037960630697174135857070458439000250349437313307681086057868098060054299555331757233262658898648635753278786612088002889979664036244069659914796111087055602051795617682837670194095942203669114293977663633063709640295240537319609872839161387932920173549717239093710699227422511866487194021755901025426748118351459492064083157230592484838259763390440304884295469205614750024370319373428690854898656858742277416193122833815427468528008062773923240192644147573397316222855852651894401520095212679942952859850230784334422246105362309810487965663284516372140859545227658693235265145910600082028559438326237176314503143665695387353711586185617053148250579505056851151970612194139511161582440969941591285891745283156416508577740718518861510287732016224279614814722257530111317791287214768475584440452983070572884560806128896051890974236020839863299607593689412196509739867161742349573731512545965892239039376652399694470311791493094657954231938959848361024762421468522931707918293435060496649556090938821829873343740648039868407263456351252598783363310522397472872364824302306251035313577070488274909260568391698517893456606580183765671324976892589373991467776314257475754535845862404264296526687992401917447517266313998681662469453194078022364684369794202326576749530702710922908571621208868458698517359658959802322439892773361014417921108624455951995609284750223329909478665010091639496408679102340244575755147529214720899043465292818252557087862953492115217459421965295812590143679837472621607584819444597570292169535537133876064806069484877136262088673691305020334666137898041808967504196899504730378307268040199844222097239886611646491548502951164948169377410694341468426708155941536002044927821717112037650231126654071622574246411588346060234328830699947457890765224374144618364086822761476893454030751258791419733206021116773844424340327888981514528428788642184956239554725841610613874453063885759799601440925918626832327756844776402900200580959287897041968109977690867020373254198627935658242126322133093481318268319707892016868945173514684649832874907416898415619077802612759640993832632273247003656554345585621307161281663654266244573725572523308259184553341082070563857664807858547032856122741383086188671858378273241538673596183930670293586512059154207543316931461659824394504383551031309789050068363303212144453333079924756111916120755926153905468316018304451509908855357467985713374050454131251239980794898198883823380785412876954813356204904509960306142206767079383316820991560543743228330250146592586874362061732995752831383871691532440441539390465661084555262844427604812961353584000920506529738185664071885385667779486454051390218310523980384975453285188029952031117880661769071024709578612940250341598753464243217482440287079981358983900875481822467885356149238839718706220546961082905113784997300529905726671255829857699001508523330243554177183838423521729537598112484782922443257605874416738814030938501476892912522650639169775741587845356043203683479949297152099021691140805579772887081466996712034021473477478886619603743395259326993047032939901693117832210912423069910589283210587219266533293016070598138903634525123208878847758906871604769494624713082976840245170343145887105321406756909708701995467382062710654788857291366643483186012641763754193354638322115825336633391096851864052984211559058043755549250862019995982988042608823400536575332176441469148571847949014683500119060486793090230099149416573356581793647986653005438877349486082996614884832700050152736129511613337369316078307056004836626337320721479143952091922154024839011151543979429766067237397628310354436502363032714200280815868541337709373072787114225040464891459229011705718382510771499156332473124050171505413764515421217466523594052940350035997974026702308409668119976526089186328655326023512309772513408978927970341363753050902383257993054410778720332424900031501705514765187165761131803525956334492102523780162436185303629834959425862184985397646173586505543364750111522278770230613228232070325430316511505759385214660054391880163277516032827387287197476673058040562643535455022337999919241556522966400972906434918914396326803416964999735976343012730478212192321895799752026848304726297784159988155689475864826923939780228211172732660615840157718500694383019781317776001918947969696951851319127100873797156994636216454056480264670345178751216777223637734002073032142051708143912470610961709774098570487921379214400110939690555676204630735352305385318775661735399979533098998929408590693549251767020859667008433381761620095818793019934106120326376129049842105908289214205974636217043074560833179831552885170680043279590161987415332241653528921986602208715134199038575723083820048332839656270390094487087367723635124397026929871927359396290309420453599861581173932026047765185004665676564121131081949850910174738250512874681724359916424156202218698252865973753693636093646837377453202597277245139753867323092236696340796367806745905196166084006341371767792142839677525474574479655958279989118829546520330911937180640923702165623028046949994021599830614422958271825009980756729300416639174317810815091701987174669310065090440696329400987489132210418480370045544382093270903062024821771161949077856225455124856438153015112829525006771989112369620702442095385712700982101860611671165097396818895389495004278416488325929900693264205263335884094494944339643333633644393730649372272952477624360213237418549268877096684181376594535351656152382265779893393182907016679892440986309084957764400411523436398368071352116588636530408833767319776552657813099921898889696850497710183081053719208069858396048112612010493374481552295091607293628186656960492285112512486195010382620115581115141608256569316502350342088624873597715848986355486701133482225476970340802688976693857609420063869802918986177636220830812123282206262891963316680958493692924022241581266740008191829796262406445541228693012925366341561657046788505993765361051343896446102237332801257021929475186662862955978713492543531301361472845208259813338726101841983708914079360902442099368952612325221724409508281091477248991406891111848595351335581786207097022553081247048680740520883213572417220421669395919763240341106100424640346640384223552680043874634343316974656649383953105414019496512446203167322167549055804226320938002190290032870946743140034580684556746156896407571648589991584991698824273883039107361518132631346499178685117958311685417862887813825432464525978156990769217065257437989657570108099575134724666591040048799644911390114931754801243614938377092574348934466645399824393402935323750839528491332006792117181542873140011721473182215318449573345706907300697504868582661420423313852987501116579716101581280973073396336316769035344427379821520536054247757249262182346669661125721338008002437381053634336050224178224300753345136427628865277306089245699712416466734315864310149925565130822638267907594160613317476191354272997979262429523989874866281164311068975220046616010826244345125732920271639310579097529777235720799384777284228188041364539727757580783322241031907787950640496990363710895983449387371801875377997133659401402003131150599374047582047225750386141190676560888413179990725418198242152871663216440725414311765074986386410720540988484800631350512438231961552409035642946245425916128472235062774800968031379491030592243277627944567701499506214482659947325626004674120597885838308488221127833084206742737252873775360626750550933463178654972339553950516004057502933981826345543315702495017389109819003131932781976887279071364462847835700732033357580150955550851338866188658150081015809224126837739770174217666961309900763090953132297610248989080091201566312179219150101611730497161341773908407202840768444686565469076588442236408247001770810373993121961417703352550835649893524308153353276229713033597180383033539459759463082285361574023562689616622472681252579267985261159203635881199163734196909513963928066681221007967169554615699115845998917641629204085352026540895739991708002018644068477753221707619893453359883703906836626083235820558805546607991990596395763464783051233834792155360207066950223304283697736857423280379935959086710911854968652841653978300100892165753452862060968397466515068849427003575020277453190501959570323371045144476387604725878209650471451937514533600123155283891856175644008225914471641166614746739394875663769775958056066547380293567360383162325805016469261877323321549031060689238589230198653525589819583284429964009023317319960612016399591390216286672902247750667988476969676507984268126596556646034833959886979012619787912777260717776185346958271888293113259492638606147635874605939193642253277302112054752192589250413941942615293035067605771688126736248346561187031693665655870360293495082350222195519680814406656479480926462000532469210178841347279305776061789905940561273272442610151854541207376186148354257061103676899996598159067149209717230163819823418474588137142631446325345535752052601510099746701057600510633158959003153738499422715746394520210219353673589043992493418216911670350122590520914783292329830744431896907358247500829512825826996441765086331425896055000807322848779901556928425892141342381773220431301554188938606472391872450274138070199797786608733713969287756757600334464281892047579175703717921227886251424155555511710497297364358291775955303732742325369541599531519544820994872841505802552448504306010020338773896271912239410832870964809905462478256523230988547081107151939800773664388834544166137469797239927736534083529506864942558977699421376950693296401776638887150400056470973193806694834829304766953477786527851435824456612101301525450383953344956806545928571975813936226242541997056753416329125722770851327554623250508366314025913088768507632839523117597254450947203025044842154536052963594970059094422820248044788492609793499895837404383498218433345724809353268896382583173622193930094370972233333371528201552659916116406901183365138567270855655668644107861005639778867906419392294332804463517681040508293233145086626944253721293652354615815317140146302840430694483197333040255385300830017460770767405702095191867845150839947173476311901420274454345513588708626634543514697656785516215824767618200227906892135682387506331263595154274047085904799022475994567716885687921571203011529119601935219503486105599011208665239040752058417246452948174796015493625938259298253769283825178668519564730683337913209370803469607605098337175845654649793467939994663859158560236592473069593730900091798647339744908022133192668853246553766511107454652911916250850517737033554575777259084507229941908780379186442499868476388583745529062519049317391683347039127334503119261111581130184611921164639700184428010060420471542301984513961622560561420810038835619204869271105102579688200398954024814912093183341495921418733786773279137702933179636691570926413529213050168191422478548161859411711193214688812459306574114761358902090382062397588979476280822181650313712829421623090055220779742080873726799618331082682582413988448873518237093599095399830652932633561109513946343822173054615065081992448794420010610135121385534613037043171479259418018737528045319087490423806002068791837316596242923402928911585855541045342548457873207910282434280870308420797190055586087309712343662082338983122839477825869316323228406843932772281920400510665413798017957525045384208895453582449070443108955062494700683310832901948135880455868078399474083456430825109049839020406396800215736984565524320227557907238929547739783984978065567308257597821917045828818329808807073065442798602717963850385061961832662515579338186149621475637936439005864508642685969767535333834175648271251966927287046402052425983850856055497086857743985741425892508632089559391921994346639201680676801454652402207633467811395213011792504839463480691075171847436559657100381919905809386025680058932512880126359745398432032014015672392791408656544342103619693672082893456980967711486634343153038312204532143702646561733791476804123777453370798773895308164215858123221626173745897894510079538461086616323629067685830243780056110597907885730985135623234802167049484562809015912993688324899365491116421857886049421073779710601005228756617464983152605866472209680217031341724999534267253750220814402602121950859235190626137713528090868669243689218018490736565108914078447731123923092284522300337169198556440156079276598886978623239362585976193292690115340494650401249660141329212843625608996494352319147868411344132718772226929762614077483072331913613962994482501985568567330370478451218820222393449101665891103034705191085302580125804758474261686745012627974327592666068894526620206495510537978102802117259621565719750678529993995935579278764061386576909193093226710342793991769888921140125094911206849593247715816886313845783491768424543377278513466390043492823051282305296804209113503560727639857116503087806795187456593132940995407473172315107463375609800586115045080822950297744443970374305541493730173722773657249789568466756385187062378000732006072331961958340236536328505600957419020603009021638007761489836057438252176209371082171833006279573666300435227464590812685412994086017208317988335481049784065327164130902484225405591449084536012753021841808521509873781017229195305993743188797984231415280723461856786496812827718494520727324353234879184091637375237349991798990723350429053205150332045789882781146050550863381149570428919022054582284470173573176301983945491712086276165104108397805235974058244037597281415896202229813871302206257511945100290737639620231657785132200108265607909707300791668453230048992394382536643323241928698806055518717621733930470878609878435394634261047036540667523012041727550477010148989535817547475333943900080959850840615749949651200576570376749295412056144257021233202481624767689666880712386895185427259694606645312072794271188261198847997474188981953236902797794322877622282223670328305588750918869554203161272479041140888572341083041070713775083788820108518413518206860243971310022561929999496274493606500401341952385429583098548401723940268822158452305036805621169231610316850498427892022339661651822376607432210903756820527965927384578671403637085720151450243935746465324729338961333308049608104581413483141749134675058189354334252307481013982005025293759835214448347918572818555255626397315583939886273596382991996636951651479365635594481668314052582380805990555484389600195821026475331173786653534392148176965797310506704550618133764702477843305777808305588475522570711599902948096025676822544512875909528484484856557117967067141358421980740549089302072378721796812039507823920246398343960100963630939506472234352399254737900422739063348951484390972012572868219646353256099491089781902102601318046980561096051910180651977919529201968108644448262291177178827227876210145152154000916371102473980023360012622853064118096626645353691844353185259791916880017502335018147439759923596889198038047421223434961219805117359499569185518195394806999994816851836348119267389760558839816148026297534239787123569627261359440380512040242839672098359345628523954085672546758117546676768974852676018912502939732296081277993102968144313461402372990089893071043418082540071510910002285367757083532753415507710190956389703285866941091101004904790666382980353285791439295573507622480832326641273344660108396463243773245896934251044222961183736333121807174534954872680037494492134220285161755134800623412589265308191344066931773906958001952200563394680596920950980443541777361935133747186728222128881704749423594507759785775371498380379451901077919588531233057593026133348510700094090641565304540402040917380680148341286930479831155329180462927843025088852137133829630587833594619736289614209346177232963901891223278391914691334091249676380744142643010747142371132285494271747084281740404935131183719367099202340691841199960721660831045541988301214986807107992931024164774441770613435383625672663635467802977043776883638006660999915084754982564160199510224245352262417810228246314659483580091850318235900922269233862295423651284795420032299825490633129356041135328504678450738153949971090443588743475926786553134405910666307132472817152605318401222730460408883187174070911914332063505877703655715190724059033681609371132732889460446211932422845598629468389632411717938407320176906738734735298558465781728425352941449878545960266380030332880984342961040839152645953845823878967654881716904130408270293358718136124784074667853056333757934951199248126864952606417175980647082903203497246600874014496485233793935197078081088898190164218902004490650772640353017078606881558492544311802168485513010490453805665024760295550308174093414601357621677640173035275657903551989328670476660756961191362694773468855110069413290749964113888082990851820453025370779684136567508935198051712594749688712228392505308736002294269730311249031093389950081689219857615798752307484524113009342275743382417471836286982750978122459476537089592752363515140336208109546571281412949204020584511667846769312502517836181879588170278701517123239480076961744894134886163189850081963953475480218294463016370077233077699853581156736078747842438666232054456163352944852334380888423958077148382060764375398101901965175035905254556335139151182344555707949270613630066488526315597064391534375691464632756042232184097884364319708384669600049153426846352407449754849852295163168610211007933345192291608383454619478391105386813507993632468275301055187941286495615838264936339752869390174679569321952565850715707108241809796392566493363890343287978156280423915270978405342471237758380104173412842302588081601866893299698793978189125449735353876765980459725205989321017654258243448740435672265081653182044365581258755351123384928921788214332860199070205969297784623019799637534800144117311714472727333299493113055154561644509591991496198646069766205833524990767270896825809653369061535984103586525053791034597231539924174918723760207808955546442373592176561911930031269204342857795054851126908579940665153954279946472018482936090672827805820267928868071444812729173350766968820124465194318842621499991114970852444807943678659291290139147875912618825893464956246945428292051569040040265004710779167519078897110780247177290104408188343487771413461384890859485714535188271560628491805514178796231008991648725616883150064962524368827877051634622917836827297584806287691250519425458382681285860611840273642840851335646685977726551621180693664021728671496097275281856856330487840347946773724857583706031882929276108694818919281373392490271810523517203669578342326498270970066691907846380549130506993022088254303017411153402416872407347612558198840542171640847157342357117186942864608895338455902212417720651934395929870703945538583039073049072289030224488846249808039977999221599350204374615358600059394276087348548855166669165025297567715255108079268093851181578052752354416579793876930265581738021733977208980008255806969311159941833251906840724123969856311203483472020279589136208898713960024936422016123647819771974526023971831349732282578838806677177392855619407263259017327331874219532054038106216018479881313509446494513395977194784096529431419441086170035098797970375441055977330633796890912594407216239135657653632069111415552309169504407615557202220568571416003008420956780271509909022706383482740318148779906281687513662432458704968009578389476669428678554837515139845119499790667226833562972055354703856259217124016549680237025975909244359092526514322878288746921518793294265679956971462355039835595642128787627315732151511031961256014966621224594444882899124408512754383480083842671833438567727748899300989256411920328720580414204280845323013632881954897629957260108109692880886578007068071314903478013919554156011751037464334838721986750669402709850801939820042769852546261605459800282178929648061602246652543069732495611071238865219917103321629215462521414065397855332934250854212411038819060530184921823429415572640770661092488484162563520302226551444422378758718841454225417408844515980871409358745018258974666582256973245934548428997620301781133902016742342151154313072911131400453706812867009836855901440544029653708670794482682123631283254425892998363154546847081418988819038221860513631171113194941347712902274509141676248290965482183760228118542728977642188969853197757556620256407742546862911417455588294602467462845594311874090920847219946288754243390531311165742656566447871369603257823047055151704173075006535169431672856374067569922223775181641669188120696198998945178261929808849899505989954372084807747085081082669957843919539227162316879638821129640491562519244652709598193504358926120392064279568570007549389614079151149411114626255855171253394081042087133680537379311984765647374425407836047683155177919792985896169938369174335246212044435196546488887399081992019850566506993557448496771660932668873283399450981677859507820175227705915472327768387740520608962388547165097595115846867758824559718227157242606437269516815901494450099283806063651532709786501423485771029070308150757533378170454990525852832983197461915140929937789925149207733246288579523229701781914679907673204493907510194140747947579986129028980776055846681537464067923059757664094042734894315658754595168673191114233000579671285386503766351561789400640669980784094900732742624481584293231474316017329199157239983162771176801203452438072253644795233351867050585914752881756665935965664450729821832516087226922724386413169121274761563407243235837611671792769715901100562934988603526379531310092190910712166280204919905974788508492925153526738786890861108526091977574419365495139730032782698651853471024448658521376612202463250823039018693508756832378558226842328068706192778410789705072504647460513265990026704670121948967873271127096015959054635197998121738750474531742817342134774368091977500662768847451964401443412451122288748460747855789111375875597207111188296762051528370120989894132783156883977742020234859205938470991381043664513288677912842797030552494247057128890112768686721590872580890119925048763685963795875502852778472209272790484432336543604663547834914163735191645845822616717721363053006792694400842105478116751326778448171117573377251856756331768582270914828050481230141001431793750487245844872775612683942087748362041525259775979633934069258570870715400620842136210652529649017396313281555749111105995209340505901468091813860741462143759396786737362504048756862638149249741629961621581227939986646798055191965134694147217503427502299999693569687299753424775312647144234997949515674647185506135960834187118891400857672140222619897653713372287569903257805877948695503589088427088995660069740564696226191377516911525256532006320414539534309158938169731952376704742832843030502327778548883642401097761687011375983092543465234023074681210932173787083841849971360938364106138053028668205754883725914604731380685935896370603809282679376213294923246702670554039676393463981709872149369133293402478784099092743631712786979546078657447200448053429316828898532823335179223767024021685315150418952323535217257566443855287501823301014315239681327115038960703401385100735882749368804262764022051759898462514954542803695534846497912524070728565341248386308713205698372264217266234592323044569892004547141666354874344282079346727070776265968494370614427027146418862800579134170705145151642244287460574491116993849693504091767281977655412011829130778117677834570891090198590762987046844550401419568785082972985782932997682546135468232569862749802929040162506623226674510454099937604662019293430018347504357915006134655856400860965506300091855524788319270578570067046817763662386609048855499111114852497497998251809928011889309325497433401300313779866087884345197651635400042704605497330831772094700597218374314114337744278178595195598850821987111974005626103457672321392420461975664832580174495555418399041474472222038189006168221867217871496632274097106812230423280666407653874158800012011070421682800932876756350868720438228664331476967133948746862853037375324284048083898512858495229358194264140299480287416878789239855132581330810178907151386695617358503571593990687631294100199064979562932836259996880323942754262448326036602630311077797741705360683193247477781403614162281578444642190179228860851325686440251979847728045115753799515998736706024159881342017474340398273869995528000805354103773922269978132536979376109557226231210607028332834442442907432157598646295197487836688402571263464828000951407555520387688724067002271580562960858960418465468206249101289169560725262216521569833063541230309472517796935418833941474058981944786933226668680138070932876622829948006862811381421933875721141499678928618223456878536984320856493088145529849180970996998213393922507065667994162124824234057340399515609294254056506337480823890969411467661445364174644095219171480689217938840532367043972655402853789052847094536813575738954038659978405244662523548543113762703653629637178638099852195639258705595284487955988543952352134519542945401316275240675718174911760307480964258652056841312040706429415873680352444274242877059275525615505084194073822955844688244810271047782315007664815961164751523657905181768128805396064781287017020457020890103863622258616468449116702504395325940258012238885184349454826434949773694392150854862756888497618529319416074503892310200631369704541409596340547198709077792660003900219730016249363090940158360600571645372707785659078568407120087009964811014152777280780295693597878027865852098717813223497164185515805646047833270082735392053385172672226173991377661723576854879355175196361928619907359421720033170640263847000324774273550731821450762750961422286387197495270756371068701054880271762052504014528361660522704379797293983490143948276352245905509245549562108869293612561610722141549543274063835696250504097335965546967252788519368326666646566003548910372514268754796753100277839406407841330560714263357890424708837000970847038331560457591736959269679552136217162570998389654415944033208710751587168691819733807023836002260059534393830139916578590705183914948506337778482382459114366478604479458097592543754027368451308516581544108541554085978985923095466396854073675025266768809700965585845660906219742375909545740310283996509787048529457013300400005148853879977858834896729200764661887998688668210158913630617351298803114778762950605502528116972517948637930594756662487274802644788444527531857642132956730719469582656354489289224810788577710315819774353751075811591976210926203671693329558424970945978047308208209217738500453280820131904105378257254991899921474204067425288262481858426608390113251382235966788858706628207200691388179319713245128879213253235207974739850892564473390535066517761672030175836356564422767586209001548107437652605151240814817218711668810732375507319444544860461195977573554716883286325572042822932898850219717430531625068105997491462271883063573498719272753212647533855030447947137874645031374143007312400250604801039660845765353095694287819617604544091119401246698722848607084706669199403783617088484162624721497207893766614552275577448929622817771875201396115990740893130216066866328698814620333924669729061768548990588483386738905595483488576858019672528315243804743245453304466471631690204531353396031817339176004197295450825707628591759032465556999748653586569773457988583417262188931658986612410268783560821122471958129459747082878392325662648746464958598661147048261936128107346424106929715980569340245553580156946181575469670252394475586944355821126884654210607156861924850984677078862532499053444895136784309583463661824314992974564339368832101828455192047303148890159438744751608352384448058713224500703479197105448335104936311028207674611253288907809856775427078373699405763085450101597802492687669370524163998173971375892241715781318376294534364296025739926149008132117992422734848589361797919866515227917137852901646332440174200500592368044855834400857923196904185340567031111647493085691271369187858981185595910220677076478898286493048055452283005147119732222274438852875594825238663585181713255298114687556172832992342485219200585935440046177043092392159072965018014475794972308001863643231116883506596276408322643195891631344367646784693193104387364989930344755390565299030356212460770483948435792677375396026999223124296277442271330732391953182406529053432030401333732617272759818405636349978462647341898197510265897323895251413087496946058970399037212722664644329165323477580527223453736486780566962201205888480941647441452502975903173623433993464724075782660814521409847941025989517408009944321637152724764178392514969709743187125405125826230136881131809204699764337586732889258035302718737198070377892160773579290795729138981053360643219680550213040241112179894681195350603137071895988430510351530420498987851568734005819592097352241704514660107289704840152862494698577476124423655577406333842632134902561917991903072211659263270032502118236890830530768154285956745690946147235473551241378837591489375965207769278398370899673059318881478746338566838099232864788546547341046106107127120989408126644690095105879002099320715588187337969705592292818291848761226494155198862145020313286056233499367686708514698196123734046250287430920368182004810330195024920493204232855494406264139190810724671219454919775429975322745898200341024043015766044122568761139301491693489300909944334342282105893038749889114761812590475176184979535260790250866127467875394805939673616196758964498885117946221503249751787118141910784747672462543067930109283332940658869657424455719790475479188607371531085333688789505993134849921845308402093825748104947767656678843914311592494188489963800956811816007736116613491367226112070967436506065335473758803755603269140394719951743760737407339539442522756129745873388981566500513604062005020478550695200278880413246446294326415152910549472002166016190517127903952121266511187795447068742661920809530015306238772443916427283922451274708345670753481095873194899130087639488016780201390670122710291702191063308264117694584403985485590167741272504164062837571431753713484738830380335337865606896615149580247513512724543981869047060703592819043213871821490812001571570543709896252525554268486540122341502217080606398576697082849766000271095884358591992923001495300339483869318811112021302426413982328597879921296543055367316362922037049042001091750322008900829038121960152958904863811267083729579850791987573977814832225196435118261218425883474229214918413116367059616782821410037854889208347247505975066876632998182117265657159667292808716126613046564540541796880671072604304256272532277383751873852284709647767763194863034186980863536587019767962693958775118724251844530056134789826725102916086664754280288337781530882773975115742989665307127669559730632459302863443460700084127984424333689956003462561599479640940139284825395477369427399690858161504740045048610228754858853813109359409510014376781659849119836101533162505420631496920202073670028055511099958799781957257995340810680720200826538195710952456452144744103675392564508273704723363059004757827161856488376135857482556813024329437876633882727060578962296686002615870740313712098480852661871300895725270225443526499424994216753042798075091043165319359947946321809541438594899459638420975118857420771611166453779297877456928435224401727974266092358814141475757251345408591719943846728945667797288687148022531143561583062790453794311230087044399305743531834815834970474270166051284208854885725710944125605322533543221836956983677046026306351421100189845291838328933859342124327347384812490865658299539138901735238881913929825821449602478507966333094342452058049499509779238670377618207413904482200762636925997604892472884483245266611381839347304448103838285977732874512911710703602062308071713884128640162435023776314469472820676445585597396066603902178213439951578057630250299984951843619183160054589325408135898754119735014737290993673886530576349790677685249974134170766369378192498937243448452067272007816562098161605476862001727968446677135257857630186455975540805173876961710834402626943991532938322629197045071842298393811191287211557666897243088057314354616120641937157301529438665933815769340356050673938621877175873502114624337390051851305688645992052133303225001071109593237783013791534102717277177774171380016756103940262799015184442569211963648567894867876327890744240186277026231720513620447162003274447426863246744080949563165830591748811315707232875026275822712236782775306202653454790968425310542296602941883195371982829532255852542806402689194287794259244067593272630707767942590726032309883301795774837682824948891525611158653645306400265687605707504873617517028588192047771513287760270877056206381010590373890250660994971099318825776212592300044707019641478016678071074289531257487384697344706285318241737612686024350508943035400387637598560901718770303690098643835137901624760342768226485609214295390742446453788199620125991217749989198780107189721766116637331008760918217218995348660592092812267254449210624903446440494320708853132180241526487144421498921214552091151540457173110787644565467395816736187650725458132625611476223855753943355073479562713949214430867627467070201613831204590510717867281410578484326782065446092524541896462542592119805699855122841719943931935963210211634313728321457405178155779854860679415072526796886258375146240086133857689160127867891239465769900185461845866977988265843318540084287277404000698177140219325091488767065769890929459705479211058381595447342550457505710077042634210607584653881725866070238808153782956539596744202050391623167090326283554779496957883683555439401941181048372655937265558084708730091907918609894640304767050414337537893671917796188140507175349713379674576344871987885870700686337868263443088716424796570714323808468994055430531101078532847640250328715111459158837804527290168594049762036671759504004496120452324959597099332249435031258359813202238192711346233581270143587988829993035322944343790855134518489341292499225594270825220294525071687512843219397179697411302702475702277675982713956491542230129191614551069436277763861404877053450360012015193834628634489014999069502346299405212463666985633137690242938802709114385495293898262700179991958382653825537065815243365803270844736844677608976771794149604554032922904011817234988122282667777217212904600314912239270691309537098541747584638411487522585897304192697377246477593627177920194101282346430345080127618646543949704574342209082781428588206433115214535657044370121727304575611146763253466610141658797017253300124614986055591785776002803813400147907944833557914591662528499910792071483463209186902655058587453785652267583663188857280525294290178968455201988663168822401842646776944281016276888495803972924805423758898737869502513539511332771927588351266862315992913990189477100696635978926174726461894314278014127380526813085156120414728246800287307328507248164157056628125623527586820230720553009302184838986852130637363303206340662419192928037189744484319732701621340155728957197775903136585928018049488134922294499473714818863896547681626930907483605909404283270161037215364699567006636318988922806691828506527516782313864101448064106449854171908035544530236328080456928119033199182403522933865552840160347498228330876098631391085172676498221845035018127922292924430667379422091935232480946480326312925404218465566060868362829853205732479678461772106014448344598750227043896793436505938203130685686401909222533541213490576259600071297401959060035928967729485523735006266823513875226975327051635258348782290385894851866852187659027255839457019850089802305781985886261833579925028543034641912872608640603695203277323166457904657670763083538051969576982300674012862357659351472923631068830998059479381265964984984747136110292310887835058583249805780170800662783795545292629560598385250453076698857846751920706959862557145004260013242224295879717327250723938078425663208595484425829362708962334579032941045056533737856225325575908772201785812390487714045486211385944921784070224481663252954277116039048999363484991851114422316698300291824942389072279501680000554779283067636744263191376636147548622867400772990394796145672087242506536703143443244845737266648650478827892447822124424454193571334183153340480454483583398413290125170246034074968815413039373302406170674874980575067950997579126248805984896176829257349545920462882993336165016649683166934900429953407176054662925756596017756467770825908108114897152129221122579971898504153139448702704955522001108041684461151983296020630718195192584315340230780565377042857750173965788991275919174107248059958509812464899784188190997132807739671607993880816945706480176902543659235861604850291673658799333263567997564180029665023554203172142195324516074677107987207206809190356070714651168231231432570465117042225045086064811634408618652021270613666546693586545473267460287132529383168852896768203301936361558965912460471652862663028181579021251207999653677329752920295034353305179487229610489973828104058734026822036918921958170798826698688001049603613368938271585102297247015485638852214605592896835855474496216816454290103942253049437375989754102537620596521067659551602941861416925677011226156764097128481870858547078073371243882106323607920854152259342063445681347094022925421859903698222676505240504780647334020520263792140902524741603132838719006508921713644340788729544740385740952781413076804476377158171930030435068725623077158112190640926440350048100842767046922393629491184027706311129239546078165617058317958951052316693123518799126773655458801278581536415981513182436578251343965673374666098907480269673142543204817923833202976346271676924751859881844648894674198579738235251536120725134743517146462220045828219010703435163302866673258754186709404450495116024593955012832105955431985373329439857584316839479468857374489341505297029388780227803242281402782320146166713244801756974143221503406044851423834431058929344275850258589656090373711346312644820086813017877519833144471348605825526168043180087436974015310480992023276070963086393458838144508878165371152954622563292752578069526512832306473987663068997686792614033338771016104426907102996509045287930205863536692367024518691526408315814627855656608670010626750953609014491594317163177390832472779774653610126903513917573178868203471946231052463337270898183003139519956915422126443523363936324288001806033343706672684214765957647898854944242666217100769829084018887386401124100386446554500432136898389201659850332340830690606270625350575045310842663665954759880588092133086120294237200569993111205229893648681297887675298713268948749276328686615732273791565014378630834411068947102410670624063951345156014541246432541582433132287740994394241701742633486455385596440263329992301115414619248751896674479360534318160159186743025626380485133467246787892743680907615705706793916732245465000345920757166337493879967053142517342846227130230081424831272473360863799421582889378304109445744468041757302721201519959603464413158855613194498681548634725550811406619840611300064205115019668702416843144659001004302733125632191546655146845639560061183652068340258831037509246400141415264478453981557231626874871082554610094928231689138465072734617073946656907181436029275767437499876047388591430676348438399192383122888052927647933842975113121485412913359349108831775721488464122440990862070007008602362421649375010176418616366371734539628795918352459396684739827166455687021101289270160044345713112106907877343464351923034874316635500880103445758406325182869357083677859476290403611264723380887191006880601558379904962477224612813077907906565445524127414585673918641866806001828831277779022935528324966667054909619506415240720596646432048823104053838985227971202336440494332291512992312575001254672597331010603824907644869723621990222421768293853394774588405304719918264712614611969810101724740679783377010394813175449472380712582041768842102708192017228613478415798886389468302183462338659141104428972410154557612309688344808719331711637986261120335074413397131608679126868092064290437882851702053965718200740583592338831783726193593386927336124689337617576293483774628320507663420558592224169424900109286923853142793914999442229833894855183395985711700524282234721906052991255483628468272528916018143764238854442477766681268573381822985921708539031058380611287086048924589924497331091684872474170039272738320069334351467137717909429922932385366742906591039910949920751250581414415063810200052491626851759435031399813002407024579258448178020581059309176345068273583656584082761912996388123986013451333865422865787244502403779693977319324668546238274541164290487720826386603021596803992041551323139896593710231270146607212161612526277334803614893196342018698274568392216553569056712896943035785579191231816127403172461813101081125336326598472579228732903528309856643010802169648888543193784395771376980517386401103101319525786106756970112881434065887234323020561167656709778000362047262894243921030914772426202937347607649203598075296484258320730955945023892361994245202424820750511753225225258797615204237142892447505514811932101670989909342781667432073362228875078800888886230437352458265829825333356161738226976001056382661422156785472351263262746212333155507800585036007350367941824616987262320845792890805906431958372442795094383408009647021809519461019559750970004813397974073178061278248360633234725918808396008837827781140527038309459062906065493331178561258879223071455407987521143856532458657379183370854952726836555406038350807800399646333878382991888394249212089147826636732008645784690653900542582548935194494619412453660624586162638954210212097587604328299997756115995179182218285434642870903582056503388412175723756921380257279611792041128900331009747202812957104207343937588360671562073345388013442985295614934994590866418778204367547529726157050940916822391094670025053439016946596474553353775664783689483325854121680092384335679920871758332509369661623178200544614532881449316607035300431071573947892623316597597059276370518833092425651121846034537509272076141762455553453813009563948413458760853533715425534223552139486031703420724928423942809255775316130878560215455614330408710634606389064354752911161256693320167571762127389844960784990736530907200935494401962839203469057165583395733160642442259593433953776148074316800206412776855678425741110844170075013397155909019693404388241475374693340185325084686052675962536448485845331772477375302655450158298995241523356534941361453636496725132883507319879422101973699046559200858251183836096820031212002965686563383634128103111082925193392895000453126718077728108396455950529125145367191364058978478207334060106482604921631998854637223382128909415700995385687272836471874959238452881167447639389623825308557595661105397184293153959746278670408845651425817690809507496491450074553406619849244761289066666048757729576750855838758610668543289734401785523298245980079587334606756131238105916125492490149436882006301542172411610265686011876915313372071383974889383795319186701018812969340233394761663601024564462896627276665928054446405208275450243393625019585482909267445943769658968466168671869926430940420981804187143753255264492005572046463858064823395804964940048847111750897319134198999175319853249148878632944572200958227810383990071856694575822624747940096363184884278190205080997888459965805776352752033846590566778858313502819991420557265831125151422821807100957501876060024601165162566061067316741938233816363150918391511740029955488480141549881945444038128399098978377805327216036408612099768215255349434259918602638337549775874686888045689553719009216100147074473871409365417698948734584690341604774273375917028121095466369501319177206430003229339658373944216340151225382120828380530391872382308166501497558746802947683637750531205834089424837143028646679597503153762894346520119987434304146827923311839456755881364552035021406235494110609024999765907863106790692201065990842508343052589280500793247367975435272040259760691080220706767789397406618686823144153699121695311641080345864521139732822699560974323295496938306976417950709134433897223906698245844406288938893449420343858033458397403427104854288448481659917321624533371918330482169020971005191550108394333644828889321459811192414089656381121397297485843018178089797988910983853278506237552395258495290248089788019904081701885205066940101529317614086027853214269198407859010243196525635694083629779537396352414760596990635422360741228741892572581049666879776945986923762871413160500011319855005040363131860660041276658428789686250119044973704530239393498524758345236108711251305937404464505652694848419774386365649097457129199094944869810170201831195873686944731549972612206080887711998202020631065492235758390291550945780704414468837486776858664452754963607298179009880819513350378481608025202293145577026066292278768084828842827684334128482400771890058193410010216587176557679565612574659682968227279625365738815076015956913376831059288060896334870016907861831301422399865911842208034829103223666283775290169655601682244651162357683025820837309815774287650902216877138859641515321117082149435516824255259624836411802585102657374241213449115533879859120590272540724260522262083928018442504218245330703113096261407917706598594758660643950493114555708286403194937088804501171993006739686323076120773636746262582098972249643941311181751896906195559987753304987494501397388655831544590327473953737338271174613675411310039383782722120727748217750328669554599129748520953968602283257317487971450814657484266426936321599621040273270073365154018490536987288297096915496776003167222932438048953562685282894367142433039261810574324350142698695062874791743051104672369304533115565701672039940801972804081232612059795343245720761305856418960219681741903904789154550465586287934981447799061921779998910125694797703286166619379323173531788589269273212398141876181655822539065516179545573330974311118506269539529683420666966326876630277135482849033907365070261522450463362312266486594005059617253820570413065328983012158082205301414685200982251597798867020468167657476204830033727025489504380973922354875109471062035954808931988376082084987242245727997492771644839521964725912133352582720379588313944894609240288206815082247810078339651860086605276910774636126034227512742686619516871176549533992785070533195677730469671065458739061612881202071097476670237231675933664575037131994677973031977169023776428957158847952506800377247135825532141023056978250628072244549815203254966650272359492034829143564754800079807803249100237927827937088782369785855873984892324704314587445229556053957100935201234406934646624801570127185029623655504643123593065658536085015734719144656803024351929886034481811533319009084186218840434029118963843307878347359506202078656808480842650259173746651541783108183776071891070822759704259348833590208831778206591025055778669662404199900395148609029010676381911553979355910534386430552168414687847057340844328522030022958660100447712735887871839794895735562247689264559519806524612855412658865827156194801180806843541270177428581862068637205715039975900179964587003182817006251718738763563973809266676307470434281640612463970892960761228745393247428184064571638281053145790183146993127401132605629857563316898842310760997238573974294494176642752808604810437827234867952674118980798294694703811153062390107151886190885241788453034248590406187033454353103306754678129759695542239738770078044836798008161242364680655041458882467736917749612708798415654878225641756729664585367388468099576092169466229483519675301759387611892616352195430676735807862702599141411850807453159411900795736470130441314048367781904435149121066732717761549369559436601299633630683916831206194743848311171054635120096515861456273224029058432844329997009642014298659003736049162428905908261972654417862230225168701678174935285807933608256884003999392293206517908864322054956894214532047941553252065655918740475215380860607095749379587703007139177781951224124061110220036681577239996782190916635655865093032330844260665691896534271024530501998957762969204033140338152496359775004036833717999721742274696310628608062855620213323499004931703729772510197856740964395109113937270084540169574098305506900155567152436259978550765902374938302620932710210611367566726399757776407845120876636157609324685856169995765838130621125285086643552126962535851525140230823295634670713370500689299920174058584801564599283968394877155979758752072918896616392449872276615496642660391370462225595114513253002399882763158521558240164357227501023456599375929952736240400618635865170951426660917730394925143264061769497501697894683587472952833129167326881205732278598749840998392861852584957540700182141596410911294186828357290860771238512994400485507930199743955592907923087571163474346514683071161448320801793884170754096687996940724338644073568400343193601185585356982921615883386315925221711405677961846767117456994247594721867776603179947383247410905198387950257207006966528459040764892032460907345929583767139118559434590465093264503634814763702274365507568304232494423066120518512806590284446426979418396687657204961133488286763793361991977895910346974404491751836702173299229224593359456229922020746228976060696261059056543256731901756677139047518708467260970475237213559980222283308689213582175588993074210633849380560687633542922403124578657146028484466047438799871169546587731561260036714410894424363424087795566092635238151225135415124676275677802516583923470693837964465102124380450807563830348010248659092264001677209755291072056784259598767182788965052120001318404941141737621160979242305008267877680816275728596883744226937455438263682079807897558288415332067420133837288077554980500524958482215433614023521824191796328091346497145308239272949449865679047593069954371997477084480530518330056025664055448440389397417961853409044814276337173333497965592446862017220001516648820148731278563248843570785423836130427517849656304671069794968781333220640190054816725345007652803874177347710668188906104607787959853887241596656856013736300464497149184429074622233154346139893314153890023929957576659379921133178638254939915746243571422181381709723323305831105988369830226078181262166078622739589031183983620340168955208222783106342704235469947091395324954877506183896482562209626160042941893143396491508948345729018480899181709715498683397539903285845187612599769437726633417337658915898461928396760634131682432103378052042876825043744324935491100030378163690413776850262010201209100166128980676698680149920532752755892798710020451103877430440016987276238968494101335082161368218061729311361525569543781289349547107211410809259617849298684917289023927561250585097307244014450647423108807684054502644024552106680534662375112652615213178139923110934296985463730529727900158696415333291153997026013765626730703128811077875969330071320286122252081238669720861223172819845711498847705127580124257153758357171386397544510880846583035445489570053664903743098078447970794137010935310639438976943114701853113353025829000035744027097476345508606436881310619761639240668537178800148732572755892861816001238971541746977044392608961577931041351026829741030251279706266353712543215402378097083945166203238467556521800635926127568956423983151531787526000636075494328404853199471768442605513567222388766353176531513924968654693646252027704131854841371661406727049189401794405267060214713261643713375097744562910854803361132482350517642360244103967698289542027635390044990099883156337765033736743772650224219667715405013601647353985756999114580063717569757750442449626156173546183309316554670038523441220427132834315720169719190322968011187249648904051572712355588496228101618382044225606787542926299720011662582617909948197262453306370892841645773705530545935337344064581998068022579807611007093557309578023697814934472847324872310927818533235125342946651922702402898486519003809901064637896644060113752985068655945761330273250575756395001971012361546474507215968425122230160306404448064494674385097340047273522688480696022820973147125832271358032292237749335870863802786985481797957102068277360116901876265216971512858980632529175588533329123890211276520032804764945191285968997847008467646672062114344407393973641932624945330096856260261416737019480106929617629683100551540593712179147003609364575624495265182706884803450940309877000204902552428812421473591214602208948026986600010837980778711112693468711169006254856444154000801360983034930554150312763921724997586437194358702252765727636997305814276841296189635425352322297152108232650850336514655562522643575667328287066449273889992896208441653754476181502957860786223485920442267618260691571089001313541319306677396819595595609168462061453207538749910096138037870144992533704470045288751951491445434779833248204799764835050017836421209274258408567955277646546653494585287504537126103224714910893266483096263723234159758148899137155143333275328468142766538137121896445545817914090466606085472791486864328008399410028160704036466776532457624315753809746814502301514794826227600715948702167381104391738823953729592219586855263935995788585175125923888224334108597707209070418648175447145406850429089022594214006764505702288302489879138329911364414123282017180552801011223857055550466268865200191110838143307000398399430915308827573218941848561707755125836647887842067787978761821914454415003418988259320610688781402158312982838878995440979749258661018770607884072174004653568690465736799068387988005114789827721952231708919055331348335693636702967577014655136274188874023715650840274972938102791146466900483644443463066425676738076258047497364026545674601158479330703976328872723610955731567470905719967903964675647826040953463324573585698253667258875380058562401897880314519751731278668452957599855668020716588774520033795293471546916643701128159475059178532407998741902141570532714767867619210461576415178321045907189783830414432873765584952370828743681730203994792775641283235542418518600209858040666816021451396700258762116115844664344795991746380534999237565435129270935453760805039059610716607602325341748635359348861364438075635240343715732017556234058235185217020862929273773968711555511294124877075515886764930438389850159324989096632139106916424557000452553569297575879467197319710122074955515219668516969908337973251726743413238699076952325706652592270692282477415086160675974042583910927799120894368533450425788838696850305152956168915543681549802171121938649697086457040616964885854106339159852090616673496470816935249164397260090224965956020058409246500743733267554955693473610686063626858095762138984268372392579420770857149260761929062928109657403608273234708987722391554236002879799031620678617362883628456214683593956690962702319733552485426554815233636827080932625626799461270342368926495477325611599759967917785630318550044921427061392687648453872769517369365871789374771026143786055900846817606712673751587622856034232736511829825873654825360416518394848993117462888437208590310869643111574483111974719489734069864915049081356697021968940234161843444700217874780492415836034124572987201278965619306501198843685927129318342395348744326490820039190425781519199079789564596806104224967392237075926603534177602561226522447573256716460270751625170833218020753781575537651202895665705219114580766120363621961483160205068774193600095178194853583693236435715689491739224225207770378384284817008081980425376118799774427660692270923067207400280299447230336129388312789025084747204249090693033301591020965686801797903874193700879534594443455076405569508490208554802861029024807137205376719779040007922712160069857226065627555407571660049942000454633135964775114254724786043589463786957838975322580713525655807487584438991163648236741529975130347102782461126307230021980685996669877085399513768562718212707804364966792339723753298449784422895410261687660249212207138097787926187863729571885483563078805054619697062040582592384911010948224112529182615169799636972583540105114651140668557356689453576983623906174648707440308107276426189841117979568479263175337450439026414004583517696011024527593416745604982107693624755229725231245191940434354381034783749482695798047990545911295784174294648170683264809920135323643306814481739421468711602978926818551776882037741726162940845273982183822880704121419504363258545643565444449758822666920644819563571252693704432176864587990057028007809206072564466176688360513572381095100743528863007087673088674375828475500322740440420156677214493899711763499594112198710318506413869405067536162156421284421657411123350129293408583179339859097631227876222859088595984981523578356772312560538555903985935125220603271771392630576354152305154564540519384111690177274687964987689441313624263904045556857947282827748742293636010912310566280060894470803017000103674544857606971785345718725052569377844536386095652410439073646349532824841259667024267230749353747706585937754711151413086190444285601358186906701239171228508766068241347560037195917375117418662521124661567827093884573814300810935716996211731260697333702089453837545463391054679583625636278074203670550320504987978514782757367313622145055068342386164890631801883196568563630056011214781261927212086588437295765853244631849728182343966258045865537478538403599782222974793942184248219738412699027513982333686460065290559496771268949824482205279902568929439196101088408902080501460936391245274218832383394174985754018663068313043282779690589860710513241538278946776622691747158233736864870322337639292302729212419977413961682244954947024110789796261806405260486632859697596348084948465838929482299005827639001158168517399855524017855694704027349356037548972640493346371052417493974819844804576019014773910565590207356682528753650389275469860968920034074319958602623509918451601647437127761169141957211366842779905587240495256447795910447577464866899681968584580915968080250841853233103101984347067503655171764841928945128446927175823736149669172893183593871528986196872490133314607033692366319784119728593244869802595593092522437820498665924174665258299234203725790391615969645984914266807937134779241403166629519458216952739694704755689196531557685683707738099468028434298895335837511071931067305072999041657122734401691928180664788970928443048248565418844895150431591443515996220498893883839433937808712630788848385875369948887090367784337859992315872549580983549196161877090473483975904268243188808122385871905102151599362338727913705261837015644814352109043299314862741165443291308517227764516535004256800071745290787459138437125393917727950969111687618516558564441923825983881432451255195328438468602840272443458435453338091869971111287333372730371784786063411456770846532924908957570151898432456517739008929072221667906123941351956078578043209814669115195226795071565043494080745592001604024287008674953498730072725206491489438703039204743590349756802779158457452165193906432967553219153939370256655088097492068774209268415746834345578206348510087371439842921955158814102405890329404336058501673016775577141347095615976485742344167544824013526441510264654535981626032229400284716396702288227393380661139855364479534746816797884895149820803591639817833939664508803057447200317586630025692945460037352128465896597308164381732766075089643921421437379891269940737120866440303337316918411666128590376364828551028792808308894134006783378081639653824546474402767642837219741326296685148062088539600940811676762101740926803527560345338627833430663299221008461663361382983519501961833669754476981732172179868797045583067846076500058138614462336379039747256632739849898894725621673063560145040244658128652276505255942934525202691365723809376572123053671237354227669660894764946890425581570622327535447885124307153637765630064842478275742160967414428951063846196573704341072760508159051696483701240590475979502770932730921180970977466038985364399559070212274375425448595403369387350234767399675817639226544669325468203831759533135034877409301206524098907013491040722951694356409716337037555478609225210319255034004867849870246322987721755912571895984358992507701909091202371764585023726471375500847531906416527329723097294657872371521359857508348323499663079435153340664579991673546353101459314319900213246728355569597946295494062284509567641034797239588153920669458689359060135355472083836990326530686664508948399370102615031811409843812056036680572600629256862285055362670651451928923005931778179616301807781319963377910666176090509211478038384704690114147559720028688729792666328065136410848195211508630163963945051514540660424715619566887225885154340307024385428705742795485992313314885125438207510370551814784293272672133812004417306521690198545546886491273780050440415327467564946095202234508374910295392320208012860012046656675349105123659795276547748118101707403821550166412332583861448783357942415912299257665950616541454615684134349828027294365852709139884779880528390705511054812515372371232055668418687759447568440828695705727172810217048629255432685092177767526925781632867739132456189643856679734037849127916001024560470166225004724272839759646769478843735467019496729476958376765533689928829404150958014416710342225619646362490087447317510445123195399337060216484595191933306407327708934692828338779587282191615024187623776767236775614191204046275975660754501535988766206903676068808797518649098415769165468687493748697046703479588679741653727853568434225913307400146037567621127423168587375809838809472299437649557977008980061354580535514212787744951710152683600056014375472031164118200993648239425283902902956020806774707959093763893345391364548692618048358904621059876489412957699589793440698096997313072308104169334115245162930018696866925285289601625575345104661378562718287082690009177921585190787665505550474346312861368010844363345974641871382321723219096432900866600650613663363733676810152456893320836130826974174882237867888264662771256100243986745185708376670256398416668879026931236044953424495256556614872568092344393850968488680129399555737744102818947538807517725627537998345966939830861346688016699680542943399804542175683863005622381710432093062566486386515351271566192754275282792331143608354817837075778902758387385443618892347873522897052175289530615385523679755385020190412797778614378921664412419666425685206460590211034524372651211652586521465428170114769138868933386133368672951654918245214483119683015312682220752529796613656051474591958346668492927269063928838844020773962409777281224990515923429651228877659806127255779693181824756713383532912333017183762045501716967162538163252920521032075099899940204397969550844620934780830080266602898170781146231783740707060958996987807066171908518894821634619429894202981193823134285322574514824310909096374445292184794181105891317199386073613198695304312447769517959240274325083573250905020902869597897314980295220520394832589832340288955977960143741816871207760808053254969529007198451953304139505924573203393507188387624720540339417234589794351432323181895395172848870146323196318598886710431703761746799213720344453520312592555874671537158394141825039227053566156078749774716588850813516261795823444420410310760360869025497756332682908799814163984583846261620990204302500595882093345143515878654622979890239507881346191433299953357150811043226750625666635222061829040332048861542978778186534172875627534099417603066096954154489526934856033694684353305499565335310593653909938820482204431382558555646072419744018190917985744218124191214282825475269311799837809371192834026816028719950298424927058185780970965646953540993876276101274643389322402234615264414924196237082890187129411169613944786644326836191869390538799760136520440278874634004770584495785464347369372106324516083493777624051371450138417455660657229454172275867417955942593124114284629871258796439907437616577781871863652817714966227335949135802302038045721105769489906730004449803178877231965249401589192770166889650617419098756224167599867308759003879024292099878990473301210126072286465394860877997627022414999613091664725595436063429411160690415771606428126116271681872384150811371587601434988837872659685991555549942319182120528874287032327642496916873216197357459859814436232320642999606900294304599110428523789041021673472586412891001801133056351729037206657618682577386317394205361549440254284509675110973564163067961664329349473416155977491222433663518952584326671129905698389181869131179677043979721186502498161691832690475128937048673284664273724815203339516424231005313545581591539012359087356480132847278685487887132918732152407620850240810739809766799586274288825476216505128073798688756635074867906806707419123290316312439700655357797342004710952197159134337797483954241424143818700580910470822276398428196319414418892140447084634343905148925217581385490660910150975493098163139546759370632744309588774432779820713567299979637759787489974309061569646089591636777535100512041028335242170342284973605124076844346604033976013721007454304368517567108202109927929777015176185544789212131237029876294972889756321999279456506621298994185099053247568760682935439157860036482592777719657460383421406612353136697591688264852478758673953401512139951374871007770480135835711903684323624572025914635959100486823712377707622724776364488436550765168378031417553571450722472518081659259995016113507565691297392181518290078055946337767384019714051501361725928674626866592364876418924158582499304636824412126235586838634656031658677952728737773914059239511631343976300897817998320557326267504370604534805834326795054574315986477865503532254011280012249074986054430956896428787144866625227161548316979906553567702533242075056684339231794199461573412505769385695427699173027677728602873325501631968711857836483286593682446954972724001197022780238645139153328767489030105278685200249105798886579628116043867978408310082390865898365480537826812907387449486381272905575816419168470460226856340824748012271997905506433939937288612712553986563641986628257069970982897652255499690755196279559811086296875539382849606050249309989266437269208150330214847250464533235864490977708775288668332840309388498799226109039848038131433833096602243100376042221723173829360676401992465062092001244614797395914610425703893384894911282080817965530627136264542641618631871965834256019536631132470151027813736684209161965594735012837203841942660291846442972395842700585204606204911796759963965314496253692157012147044500189722138190520981845941775417523185412623418345705248184700271315228012421847590842921410520364446511530580255419559724100972658141245405029502973730153372456807032983194510526670704726326658422948124913820975624540417884732269815300055621960384343429617470276311627325567002286952954057180519263193064477820507203317678350227001056609000064098197035514434007188533797631737934350791344204764552519606437927401784969716813730191557871093604030154624242917472009689211433183792239964968863674235452253172570692954779810280485036914445765691719798691164558559911090043361233491109278639113321102377789281041985026498411293672794741756664520530371483990537849573632782117375427811925015074527327084724931731804499119593421021146420511111394507952186187238111961098246274591891214827216788785895191842599633195234508592794929376095372777421150599328575262725594771010867593245384288054917101290862899746068146801101192910353802699011397457758970145815742373714286927789045297168922030927355252764279723889650027078004304955567779624831823144592851696440172307865303846042973258737940345973806551609382069804240428298009519783486404249773004834606427686425534780337733607251758401400444561629747732953200055916490545406223953702629648426646904846839467193053177992762719652965987280725601393816443709687792134100343179029787763163986081111303717673833679069045604585777561029897939115225335896615463140086122922028767406838908245107170102486370736488425362797375487797740111363950201891008368980879640883053010761858304220467794740036385095181592676931277476620980686580878877467277614502271831741080334896888909925392158877285322140545662329979565493183358422088632421081167654385900667987486154704340876734921505498938152909235689340357976425691514880485179831945672790845917800739426229640431349539027095096794969942891329407453308005954534772605134396627455095734741619018368022896347437296946080507288776194367539040725134754427717173764509985020007224432806600380529693067059718871401232846217718597962447131685618856393135326767422993079164962990319361647155415410872796937125475252183603313086224448904073517894163337249696527558514560861848232773273813321973416960602315107177098237085764647736548203514578508760893451312201280431641430377879350226685733376855737607549318631735989747897894613118983991256437193773108522685462206249268774454063178081749060531993596899425056678795922233680480901983658860218052464125057311903784107289774740588304730525443715340409092003010498183091091929991322433564557507476064308448675422232319670396378169716452294305490816375316085499222014927214655231886623347302170478370532560181058140891164565511327947800072336003214297251283572138233834766382489665559927830306893570535285926901470912205569599506020190941854773236247617495689440147320627149889549410925616534639894381641602386987266483206045730800863129715537789781895612645079014523264759617367226371132206065159940997035653606241368143612482890068609801729016334009563045246168720910166141648681071417190093144664028084550027312502883035953759075447904068479946797525102216663268395003986803751408875637979199266685216959305664038780557009289455899952623939401802462887656526291841603725483834212583808050982240950996315920400825142147973201693594194147930329007893801546383140048666399275604682595362291419399291074684921896730976817114998710335092829702450725910094107728218598719859600639113661713502991060773627368525348092357458860145347151716325164946484284743549168845878167904547317146813927097282629239601174901002567738037661584539290849161309151937662630889138092678499124089158997257914165517167020459575265665761965850912730091073692372235004098678756840168505312690424085420774622545267864118740635499947315745973704638245563684503700564107141282436413518885980041177828984831684562227111224238952169407712122262104721843616832513482030080242315714465431484211106691060542856330765918665489288231186103240998049135186206832443949817183841130975493529426328162917716063745211251413797368527393274227988995534050587637521611062145794532418970368048468005869383587764067035772028777668865761095702483116519927027546048915241607991566570172864864312684227020348177867096680998691046648459157357967810998663594577496547693795377851488606607072690691205732522003954654550418303155533202755267987950956113131179220497383484714547020606976272991610807674853701773764025309987266196749840416084359817432485010460846357528147386098298331756647643786032701865307661867931425015352382970114803245242940199268896204950460700121643077257405598501916614300377256328191593431722087112201031770751020739707312300466035221558729021806284705804428351112006612856266481533946255400922456781219264475479388594223371198623225273634888736402167015383004434763596505340858412446571664139515875765657924539871100516697144111723129795098005398342837622807278879392472763672821499394789775375190237552574691257701676412305701134503153647715897924169429801925279448817446856478589199910124940786871953947008345454423298818780062643947158318243492728381186575274496420866495379271014684774450542972538438813573915962399040867785513564631764842438981899464025776465775670297988300839810793109698798275266052589521665985126391045822374398864898895201396781501926484837289138827075626262950862209590049825693385306923944393161276003922848521239935223704326358951458075110536470590375563204305838722446879845283738681736607138680780267794896526066996158055692229474460088910120919268106662730836623890810575758541125655406984149734252017101582419668329838650721776765158592922189739162665512704116928057359656753497571616356840670023096044574756246701172321301904519484497314010454993457847126420944497102529615392859114353720131606985638823734177891310468731114106282759321022187166561818722114544059850382041883499288809122481752096071935363937742108541457543722726453581909187990928564638130783735598434811197549541073331171960318642651272525225587276237931906791907114582817802604951582791557329925951416012818915947916066644749540848312434096073894147177928114204620808884768521814049077024284333204321968467377597180632570339902185782107190453614090893990904169188824145683081679741890888110300912951316010076702956533477530661331985747153700397232995688091951922516230652116534397777585625635288711829643811614884648714746637752686503647558829711091121042077948404283790128769712606225395845289165388629864422451086400280319921474812741599108129565243444779738602440200740397988048740008016966171717415150342413318651378852427331066790488720187773250455896723507819029031130334427871231562891604228124754615046612677890746073467748614688552476129761989551499712244378263758794610043601923670424335800634452190571315312860274735980621968973292954192131027671388623092199992745837011164596217864553521552062616432478336169940610015643507578067041544741601691737369184431194895606669435991115964448601496896175232782359075212052386799763419912756185236462245304418620670087043803441098205641861443977637850641721054399197755170204869201061485285159293425648753498764981357716431918488829868308105880578273423766407150091453445511105887388999951902326454639770779583754420298418121088121931160469358872262595007708978536226815905956972993469139227251323216415518395012029517686311393570936775584822651309269418964593565839201882278630397589559258043123062747263294193768204987701545011431122338056787046342528350948801035072802636680661248131855928487585781646784094253285801870178129881812400929010454227470572635150903387040915978934399381494768689123393172002728798983002556971687198001053198569515163065320407465228283431454869359534827591089376046525495698821619894191653104287991971541104045626271606487584159446630629553013449912162920124109188946440124123583464237004574866595341787520100355011901103262032102580975820558633961267144016708485348237120497112426160660542944727812214282194629031727162423512421991784702577303798769797188217331635707042500771172801515664061731525325563389162649996484249086107412031432209332467665527789919053912040113336256842600197146879914220564227688686601519697031133854211743046023619436118161922712884360585705821962928240651798206843082879329501302401803130010441785257397348554675384174444273873041029665459013444032261546997794973697940754724568255592751144505582275167756978767432939203109168444173489141274597166365353421342452221967781859512489790807275121922368424189855082064367261260816868105040672070429042427758468105356061485774234964198042178750382654618703302213846820069187568148540273482917545409999483653801339448672549364153058396396799963730544956796988298841371522166233998354975478275815147128438364628071801129981660522630352679532824875859944397296364925261330536202193966949591008050184066452134857205488774334495942608823400232470938098136556552208386003859435066140777631445174514248344012755526185130107216899856327470927939369672929719877596087954402428487413807962729362594520249631446958324057400616966914817349434593953512413449397777947674584756034406015040475145500308779537472584812269116357622618656776460064357131735831395410853111367113332885399725079299747989109745184402324191361963447595700831334534740769556806709314635128864923153418771035049595984993214419252769936985780369122921861502939096426220584813263127948880242702120917663828471745606425010242648893050075591136751985355636195750379401273374917605252386454271424075799096552360042872130963372648974610166911837102838519699200823307272662911435755262241761866767557328495579357174936084949631243609514439374579277242020516788354942978963831867111899424186038674196461729434172388972391874219114675670876727059540746824589648346370910992115060811514667518868769971813219611560037338580603507108493209725797578126531838206471636685829057128390478129065857068735541088190595415832238374442285113518467839267136792297737902104881545688764141764400680100456408855678552083754151945297912233330925762405778181231953609707140488685178618453467625754290019335962218571628974934809944470689657911154606826534052604133758408868529233670960479957625553131015275259905949386446312985122807581123834237433359816851383593724282385142708432703247810875558266886741422190906205331602793883853946167207924115274947188910536633567421690204592861279912619060272469097421861984772599416092357933605503895049541711673682463333711952908674561037901922763931995777405654822227235023696022625779728575278595082328850522376562603153631321803716574339306605028560907738063907698485427687519824279094651284687823082640612735882930969649850410496683531229457552480748482064834420200094268469580611068433571801573456789910493755398184703121345926369357790114990600369837488463121892437911926306794935833298265867972221319000803987345070534021252006805467356397518468344997600337217451599659556270853067828955978818537398800845517573024803166015731278527634573780965661482921067514296892517457432636012436973310926842516902440121400540911610210994110856860785243852725472132621375852365146475952209825065195136977433687958183705737517350379755616994282196795496615506421777174274539399446619703411809898324124267800712900087447683478292303355115253929383375983046083594936370188203334900013404589350074546438644841325399582271105054048586501179793992766936168076521945447474409908140040217727558069690197845543619615578034070378958774329020445959963181336765036297619004277475948204341071744665978088160678402550717396486119959887757630767459685548954143484260287916610688907020264766525244462525098425275851465611538823083987452509132861895235591148341483136062020957793014468878192034232276210349327209806448835268865195319487495521537425086376914889725386964627668081080848319422117673337385148493106969410365848292116616084863564001211119029400030190399773484646303225047086496799486592074398727362810143186917093085836052462532875136821800727679166228573405252935941038992285881777956234152147218270535185437519903720966096624268469733128892729488342253597855334469894975324196801332036141677487004226735505017110444651886622556912909460087614764680068867314143508785184692862318134606623454056145497812804544041473103739994099090396473518824633830574051793422217366024445559797188037369576849261597347428233436696705174121981650127007368846479474051775564417580570670923132769291234505275207461049193131641014833386858086955779848360595173228339191583054096610607551693178380812595437144007857358491470866609030228650334377027831526350892905201802423246954975130465962528989854028756776414865569873670484488382919423234711683246778055888263096486432541955364456858246217649867242294881965770800231352275752472617743505470846356586408913848736629734832090803413664675097257510788838045554345808242485971917042608109353822452335424296551208044984767894940409380726276488047957494970525760967988182866039891194505146105280676029865032200138533549966736849041622222545912778189773205540039340755766154204276701198526226144521681642955276019658391337393365025261224965180465734446806418111072770187237403405871275056464345505985509682913390695430615892591043621710248303450698650837684842553479232138083160985779422638677427662408826604608147401863474738954480354911053492505651173488526556503978441777086082371765290514661024827118796889813128772521101084385616791460039713492096739829025155399369629537475294749202831307297256337026202357564352654356284795652212051110310850738615783871622631393020125268022504993906419830458652697976338341524855789091080526526136456920528444916145392115777930244434009500075120618890032001639889455729205016939562467401610019912089897330940256255140033039694660357649889785931350779846687662732736004468580622500692172258153211281731157709125439157178988822050726210240687973277269748286159161410747419729271517361354860524405635460342714596940176572838303413629364437862843849841571115960556534084172026066874226389694779429297113529087132938611662686250351163773608146818239809339074138339578630816950513676107160153577944564119824900988007952558607201156660684909656405533034684981570356309904239737573052960780154194998118510142245346146837270406547733835208128030295612128144365550252296644734163968821055766298234263509884320618618548224262101531607422047796370437424082446991445973237931589308647157380167483578676533104978720069806390287986649286856197644554825932267395969811077095558526233044960740847180469478854225768080086656345739489839110784573361383491295143171574483513794684754675188164214780968908098984155276652978399221185956649032219100090876241565049083828851915276683790941899087778411568753920161782163953605007051355732269697629940087709069156934403795424368512969655023871627504845802361687625425097195503807642767775158288235579175522438357892117357410562789818951439325149511920593270769460944379958213109090293579606506729239791563468854953118550204984089015753338930353799008040608635154818647347606927287684823050134579519341254203496463907095120993222688645529539640425442800743893920455123450561955394825228869570265293290714733802939929740138518476260799492586334241861510352838272148799979976131693589090676636828138482100757342994866838518986797820039350359530097112388513223727732573999374594262012186472228509203217810014995652438337624335547093481018362332575948535538678062580287033866139911759387947432996481826314225345518122525542775783257439388849707983108174459805484693331935440835580172351437807345147028510798887941496681641789840322436094860217944441953875577565076514219216395094229523484147550557697232320426671109823812271438577572438526573236733917032601486326766455238493558530949654169333798186715208400842163578291058651674762472450971137637815607742750594105074725504956919449413634121531079286001654860960543872480254583046310590565040429965346722819341884534734740120004742803258882317303409602539414550839974227483782690682065293126177470090093245194546907331648145462600962908233561884137493941842143199059056258893413202990349251823670738393808823715463179685530572362882583850712049109036980410044513487867399047938260190634266694522842667207265547997019662011714217077396252561020140259329916295595936668524426004122613026308399929012345770217483306163781115841818708790278835704997975531343363814908332536418135722920965341728738285099189587264609976426076222702737226696916316879782194171554966389163202252438511790180556742610224370108595272760695503706256994642498113579780681542306960860201036713776512351553821593209495504738093336522082770487435353865530830091903013967010885643599412266907462618864703015472629051535405420155875779012492189978878098962464226344803961063189616753395861103365334620564382690028615938775492154737673428390647516635299544692592188688446218643875113656423521932401451268988934314982298721359972135126893254698788152411382683714592969914891496965270093503436128374257264713925829319346599558284221932631558128919541190867450274423178879651920384084317556096869516519381643089032550911172361810157765317503525403956215704125337227464062559643559087726499674965648395465727219880365889820064709530021078531514849559676776332461046533748864164161996118135847655505879926203313554411220112083806986495565181075820034827036899594991158400962039390634537688008518021372799833048253578861408377550637428679236558628278256610352816661554070165490752514402411539328412726732086199481742132861267937668048901566242741231215590519353771577743507072133872506224771830226855594639992311698064373580350745981971877916687663297092187174876485751285544451462933424582164370854487959000378521820359507257790236770307826050185497466801218170387635217224803412646577401377457561333418844440612908950264903683243236454755826762684702475835299140909399171317543684002710766423461361794163825266764099225658845562090973838605183433689827821168897311740976003056296256536085745914071092588007328694320411634504471872648457326160767019984054380058723992006323046364649346086342151518170025092397503700876378038347499937927437638214968741626112978848291922383892172941168356467349585801964335950408572576857079318308839713686157046038241901011206727202882243673912485095769490407042372979174835098244206276296873876996346358540506296255668938330072080800139915204838633235129177024851898602276952949668792825590607746280387475169751814167566971672928066586125028739586927019953752252391736989531270435673941283977303392422703280008509779433658066155749973193850131509836422540191860280941200790003895743791373203156647411102202566865306726206923369211757470209304326219509447057487179984305929078834193798572558261372353213035086448467430981890104409836699721073418108412784903924218804690115703406461886161242605605025280033847055544407162224488095043208734288995700292905198747831109494968260692816625821553627209776607274986951512777590929951187066341774623757176599726610792467474130665050905132140104224343554399151986850368040100595125637160469531776621333087217293655908900757460847320947092779803888393997714392490708041065891902047300565556889039254507993494140484294378736820208962013357617291666246428040161427950830193275020420191958641188763626312396840514450745578524188030721343534972581346827763047705682573805702857790805572941288262525218363173134753955617151695505061118891127251618412856580263541801448187474457387016077077603495471868269497971786483071782069100122606020943961173356134078844651702165067260589296826549433901112960428940519213641839569519561542372011051514536151788679060475207388559725697982343123035539538065058846319220164395874457356430272672666389452232645188093081543416345715333900034076497072425659544388139804856271880746384000848532704208599379064808137419176881933887572174019851903701554327099011727782628014028002647872260055042062719873630072468762457810406196787091321713701602568530389803870140744503275171598560221262243450252448952926474790378810415965528452396956750551232365184397594138209598593247336880335994519096072650088303740939596320391354882709159270725528658898671142416704966097190998633598347612307473106258234361002822146912908851159472132407567575968701590823617767237929441740521613521853222394598953982515984567127030903911455300431419270573245966607703366553366079901083364447254704129329636992330612716367529309739913446910407357669618290298772612787415807210736613645518222038088635789890363851496074114199188204600652042131572038320338556328387868881683451496861805029622643765483332209541933088421303021320568587450745528172646938679556412511006768653243299852947715521580348211190190363002734642370178154851193497207450988015881809460913571526831772902232604619158617911137031387025312090240213031193729382193934403633721804007499740135079708605636068927707327766916618925677916009062354843519362965542788205825130768033586884358927422326745047862241351405279381417385142419455996804381454388630525474838618304475036483945071021967732805334433490579542571281000514160092365178394269517078857463995504720295755381622487773476386264621110817089354992378294682795288704428833189120737549210177059542988843533865848562558080636230583323359587554799878803713150121340390623362619173708595979415916153404326217680794243906140927308348088656660356488412377899423517245636403321845056390538074896852100243235490959650759095012812350383705662310693582249261973469551821529112571753120620081812672573868733450780253004025657335446808340697800852356139190143565315292589145520845434240789250651332632224636638633596195115353765132473750696783766905288416743338411371642702141894009151142302171807394859285373223730425104354713784075305374069203202317176481323487644092521806473481196912179246895940757099717693948228612840807475971946192008406013720079470899399148087693183469419368787364407537724242688872432138906788220394961140133856360965357031837792926855596852920495178428900152147634512063260776648726257005189387432272022921415526976127247756641135033014472202066061543842018331520483464870084558230073589067821923543055798275526007547642526532277689687195842693742808763344850161697018398297438827580844857608909930871041433566416708956611087707237279082732088166518879482627050506268938873948258301411699507679366118496308591554845441995454397621948249410267044020520028317501850399870765619380397230763262410879842056361683958092038634486724685088389476025524605198656345746377427151051228577335171557739432480794385697543658471549740144838575150647788554192816111402282896262351669654347001695472318809103821269590455624855336657944599630796241371272715057692492485657993785814503002934190321849892566839141368401750486961109224336058880947663184218610702496201660895878027144059000449978021579471591367688929957311174628535197120413177834748545971154401448769513173400333448978394646232748102088964176135587109835916322147823109741537001276965759507365318234300112061875046994956970729863775397885329351757824971815158967599115931078659425310839228240688514593906296598661263927291655872395668078747428481793838645977859622443349080764855258806904964204205462571550609488496025516017992997794113557732272561393568554105613347609444709739337483777844461132538601029295202315657219722206559661398099700430241755261504544615733567507795709632011040424103911640921343517616401010765151271871046123123872460153138801340464597766417880641634879296047534949131003744856955960379018597537052092781445576735275915766309815858266644850848054434511690060682814822763680342650769598305419024203480216960847888788818538434171112564584899318032584194077103657133748808014155921830668224160925408478384257787398957258599058581488693593973269208015816331540218657853864637753586529507682731096358763059335436796921550844459317381003848410667924093388066658483638119690648992432096850311518905473956773518574287466994908834441642876490202135958473264783775597134772444168677037289033639074503703124415351975919335951449944542801679741340443853883249046005765926796615252779637073286115265782673046288418724252109813166655671353013624566421227905582252129349443395091383586580638872939432175834728450296736410757600551506611221753901483610541502446188803997704268528245152553306614749230131114420253135588430523770014286399956211721382434428100555296524171125546409185615447796363378443797091332515926780751106787808454479490278177754688898653005743755264614212987623832266501865238141896442052051422737471462657816356403124987719271325162403120223506768379444715033737382664552840971909795928407780726448591000773324220244724574347155220817448317843850265560490490100125216648444801439872732185908363718417342542479842977488335962641803059713320934510579214811897039727032955557985740164876967392881877502978867368288140998377920303893396045205592585839490409364622189408633304436165844313174047054094630042071817381844277218899959043277425362170427194553979083355949124386765634023106802754533111939842802307634805906654576592897479897748489194988102096969122145918009329443486927728842537411975377552680235574245151031463236043859330152859474517718132363234404955911626870179625264383132621630008092614212642493335772058279159111650560736810913024154248090524120340970232526142764606913939337842651575830456975584168791939011249924161077574440947590832924889414214795508287578680266107488626891830842988519896341928774831790537444379810327397875619839898639884326466556157911058102830331105979081923926489411753495195721627868580359409359347010814751321524763461593516346936447551775215008238622402343035697353008034936713597932671937498212280081422625416535169324616809015309681150954585912836192004604692763218984515965271483892322553742282128491318338719632513042474731842088239132430992637666504784863001669769412026696619004975379676743049727377372193911853094585319040975609249580060144616187908594944844784617770852712068833332792189074965460548188003006696941247111672538443250841870557136942955511660049667827390559023805835785782574305020284923774669291074268273089209132214417638280110992905616137968608375822966638754775950376501804197206681651670770655497110818651212754968703454556022131116004576029309743371286381226529541487124747695986224878011930794855158754123604234524913768357801075912433092581455628138676442960028564264745784691397429163254358506204577449112287454156042976077308652850451725990930244148667850195722939008975673671037335018749410346504738805265803338517891511762706946906930606417816155438972761485802726479807365203045387612712481026068340600208055726172661438248036503119839843334840638490454486373312981681797374013389245187163566817650595247615119775486578334455176685903868267548524701129683469766697817223595150066069771352809468456178045143130242414220755718532830778606737849438149901336197065905488611110248826320138099580636886525190483973955217463726613252404789643942461973177763631683834947750562977715876624170060934700239726240180437171678681330863107268704670207402927305839487981385035375714527775834629710363652760265568479329977241355567779810495201189414900436321972962132597160267683219924179457324741631205322424042595318311896920691818258975898887955084629411620575305306438957179055968537540688848436487340507987788959805034646894878787138599279482020384062370227437010928775435362606086788300017745127478952762216996255168891037846086760561371475711384043012798337452113325475821669845842054896489407942319023560466281925055335488270907584956718082573426191776942524438944362068060622468897634173589905274607770797139486380507083749843393231456940161916816518657819095902974566570507679421535870814735015535181703378410561826401017797453106035746220705752908410806052890626097933289142069707626201413026205946941006357345597062266186642748253161930360456122339744825828954931695462006857024213167252594860124676853631038595315457988074061258933067856842300955560226622620665685273980972042192337049679762600509480334178143961139719782117369013953340673227353021878727959749794586626835661083119460373316953527981104696165519066097462473797136810195813601946713665183571729589448719210490469410756882249577204777062296523146332455445593964620669365512806944810607642835709592699891902596823726880791619532448616219105012357966783399192350538704200234699047847331738807712073750797803479364349446723543144390742175710922785642664566262628085735853960998192770167038624545772415836407797772011778817066140718875681871376626063293773937935340685076899345845236353939027775196525206972590072575400760021393026778037354032884307162422641662230283785857570643626245786969716942656495877524968099965504939912732502659192804287156298512039499334934343428594008645657964840020968375936777225363009219454112723086547408192724567719157848527385146177936672278111145065202667346173621411629457973521848620334874439984020541597595115435901248779964262351606728021471464887963198813263213852232746264207322690380081653181806991314511088695088563732959601304164569131453344949540626892276777322675916793773488871593776304154892250098394339954354266987751712834210953237762250175818597929400007527262819858761988169158409967465271377471655234829219954365034210061847553551655619145343633256814626526095552242378145282152843798517754552716968832861584589052672389504683486044222651793952211400940938769337307569630408023145622838294825892102307148246550074399747971609876009613176750354273542051622130978681834158920641899369347162171716111914415033649753015186401186387917349561864022568493120691901177260264663173965251570564379313787676822154882961362409207545869021518904137230140868200689440314806999944513081119964952545329477503871018044239002769326776502712741564240794547927707417527638352131787288435421797640568747679575842307607755340246612456406862637268731244478884852372895287825659420996285651146986221374533607021997348992060224868536987349202567800852425673546894523929307170596350305758149770951556811003262230742086014168273159479651088898943533465831338189401377853352358327794305187489473186751457691181947634927859905857110459768579529747728827215908487205712794134118572429993457216573876699893368110196606548369730654071616413758036688315649480821296674942232313125474749355543951905443580289992463600778500089901805893911401889385094564432847636765228057300943656838733093307575819318639358029646685031555657256163555670781498729302058630096044717832773844630065184249071460962948467843231442032948265888437557597752348143889085769958200538910132378437720891703762764159161609775113210371514252744948301152502823156563978025586908506436497338408845791163704359682638829845764621808603101125225280806726451903829751585196260465677931312771173161726952537157839867214657128290036785916602847334946810343731291476226218182573252909388919272440423910033582900920353639688365921368397031683790429269179799576684287966967200359101094899186983683805829363529522857471209586991957856914184079387349462389323769726903703769770814000766888907180745227497294522145290274157906014262904027392816446008072761242705824375199584662862270221352546574966876794136176448072449658719511356420640379669044544779853367433593426635568269340592611797874026069945227147904714575485080116206750773006071915554694985858588405039858175989382640990641453513489542781794369185035447777164313960760887760089766349144406295383741904204948825950804471421064504726108733467448865067653196977565599427643103608550841187966758259919009217384112327195846685934293226768737020609559018486404071608999248271209046361942202544371132482119774850337514118511097915268915000030696418561025055443135065704773281424026471878383706354581682632575218462730606381259940408452802803395944629844626194492987339477089747380904023288917105532964941074036481703319202019898204830383796496398613465221096243590332284735217282237219303735192205189588082168214625464512256401497173959455823562796792846684467861981181554547438285002331173592447534561432862087060133344721412276591278663692943947593371212734324803539010345418541409777556921470663217399508342723747882161530197717825849402091358968690652312087597609878340430639730821917782299510608992974013904988572980190004186858926678213051924795745499203016973503677034415939052783145184036307278969893569940646678223463514820659291369903110451721578191444645420665418243502610153376363773347202560205339515338565706835079535457196264741655584051893352219667325720080612985936803289206717157385979072694365436108321667900081274239039127291659690251143195125890500824273207762622542214348746637741990658961183684904448703969485854224270638364401339261058318471034245718563793557133855281342108979439619194452909168768522496223965933010083512333255097318444416988611071430810203676382302970474268370081475833418212972889456868759516580298306595436938709847796075874063824659335091385898005747893314058261270758292786872080896195676266033486660247600265801669718332145336244047593211715286271662607661168527837303606847878700795326780537197083960462173953576793936019967932149866754015698109633904744680699885456500129964533170737867428448376301149379771135138298364645160675681835121957450948845246805821457680770111389882918919020455138548491037912839784367726131212889539761350132025375222588716855839264219753381786476648151323638128199626179586578367654426070625943854283384627297277268962529064874043077362842265355073402894123314312506193021179152186129547319832225877655677962257722140842170752647991568249954415672815781413749773966651170560556190990507764956487355617663746904196245503362142545668281325779368553301171095650869880987675722530747475942547590015065696591801167744904403951962612589137557748912178362881659909791018391964851422541590214165242645591708547346111177698012166495386848645402281225646361975294451281182382636641013508706714343870288136321998160896156802443371151740221609047348335245269465764611912414442590906919070113766549314596325364486360347122691813144586201760440925922819422026351252611279791416181968379078417841037936438757376601975221888980341573196932882774450809970647039883087710853047577509502217740076588792514712267638626840339251963362283513465169063986107104078415403571453416087061563253008361241993762518784994527949069857160211342021958447230672195525457974569521945500942833106295546989156722839004536292123655391920877545139457309063323940957528118268449790891275740474678526156086962858626347374457019507704857751530228586068862216991465401760101677711848480386319537670962199702342027565094219603115092326062853671903545267190297402489847727258926231760554801624803953445481244883674307022996163811485462012723301043454251292111225481147528841738642684601934169969014121230055985847583012023869245371663627260890458171256508025327719703911802893446679669829351916932578716154974031591581919093805513294850558761838793205724942263100811813474227173450545319493626356857075739658644561435123606224205056120641053368068089413059673789128755663489619901604866115740612786206793283423962693919858957380681146993415346006196782001204329333736664158731680692437613900549148239556289529330539876969506369866013077145996164674472071328191944962866764893019753835681884662925949032868675560743960416923790176953369161030081517487001827701706347670458083757804293034610091722374102952498679830507068624686949387974324049696806016538869502983848962280129814426517707862722181056380704428178302916053994066255149914258545464591858212791737389043115069799475540554289652736212603584157097612480227619735182464529920875276157747783699461054067740876541387680936700835690365596356960437667081521392728192628044352297492629926246701502988070361741966767084513806561305913466383123485871348155714414802105015793680295980160270779282698039758181279550208184905654491420100197770323485284073504915567836532535433154360682212095710148694453778545530137234686088456333380656974471255899849675382900305177818219306021583363655631695606993513655118028094717554500564521925029758766276165068843228018651137456058301462268214079215871012237450144028581966256872561277658273993348243491643237352381125204130242362712289948065453103798389234054040111231920841702648154599815351194682112567976438701368576817072690847589058366864208242562445670057970957024167148107253079602074210866615718352032538668446467381079907998578577525358374299907189718936640824208157703187850600049223981687485403422343089548150606158473576303421092352224594536726618247970318169127657800216475859653146187719069387852455224063034415841502290488465949606057742232384079995269300120953645422518834920049546235328747184013438253398381883760433800971036547610458147972708290866226048968225976544413215265233223889144212600203665184014772459729635769748251545708569136552326315345924325474775220136953334980409404958355798639592713835505703285315722176473860934195986048254319435740033253668863833590652351147890576618925868334067265525847272248444852783985155931922735782311162276707263497537928372465573190009817365588583410997717171636708421912992296623361947087169163663943920248912902417270966701369147176608973774399614397185605484275263145293379526944715188791211872557321978556648148709166812934490766495491682378053314045547342075957871159698881631309358044826837382681023758246471968861926083504857231334801963905990218690165289104357444812335501663892496905027328442533527567294209030978076520205803659266147566241011287696824646974958476073352766671689336408746261940463742933891334146664989537358787660138610743152295110936806289492242137030103362156255143523995211613900978167061294119502360437837822392879089099789685599817480838976554744768556601874522404489725714998708421897638534366357643614229993850013031447511805825304179853103850389293990596897184720363022924201125056365477804763862323191672237469453534827281359432069064841662830905802695591787110891562529664223841423285132021097813791532035917011308707223220803893198524672554888209864085278577938456391702397263402926585492159122052244275090972385492817793102844985860836322620637028246197865043283945810231007257889329844519663658557819283879546131457966724852649743282175641135594327291802103938542037299702737209217413018666660233574379933663775635863897293927489393590431384462460758333220999400140939025615267974734889049854489872159080850048692036894153881277648089368159681457387972517120681758321668377593642522588694059496545900329989410067746880899108021818634719630534448334462414529948860536499379941393494973667230072812904592856699393291778008242782355650305203298654573637822228085625271356550547332660850347861170572688197877165971964087879149596222443014349529454102238637667740923192324744021610249262267381317347450921283921273090571924501459550577314894346188945694412127961202737082838367753885281883740096341862336374045682597123247557114939500837280973953772412835113194983824819848126944386178405648905818585632057215726745561301522434604852814452589293689643992174761600879883564042438108967390472254521127968778225852599578363240687540756940465285958223923864955505971581143850458053285628194010998519076369695012511863750297546354703310870842378482431895576112857426675954719651693957070337313910698965595097065079089992819438420850384087922614828242301671175264124367387053267583225798193471958063509694864439043550765710209055821450578233985789382183147771687173848754928838642745442403316704174384989834933688564629407459414908723198503841476612936483285892333197828385503932434878921202312858610562935120198249032809389446992598429543033784353957027158616989123335380742863523845915837094973959718241051328602452152850956494459671485849558887299893468551869590670332465561540905972799790753822232542887244880345373324563347707113278449529835848935646910359721772636255368148483633860102280930143926037248706713414807577528543456958094723832637498032213622650885834212091248009768821781168925261313615318492185683524086257567676140944395065006130379021004600705133314826551725062896220961581873410443437926519157270640432153280403645828796091599486565007229632175643868855034868984405011587542545865009862103981470365645101940076180143143922071934126944946047288611455765403397100421877259338932455055058992924142595939124384847341783166456493614127901873500495214694496198783357133946960849140102051708025942181518929945930392509073512206435136386481286922232951319944054961855326808600532734242194284806092292745674460476062749231804259989077819019603595573715587572522750654338310608516568001761747686287469745635864528352685045925707806323320841531443246364183869670321139706205575462819775987025806690166944984019940687715004138519034813502192063906815410741186050298860568436976670280959451994516548976831437197379799902871602868909295156335750178435703336889664000355398239369798931328908258536541550499763964011942266876009986303802288975684135951500711351951643207578345413171565675230694829209691751847217666895416150625291433406462927102085720729668462180762812797464759588631905654756355605552181146335016393533641919946802680845914976776303988798061802994725421548636911639917003655261828806479408019263690270379264498148084044928795677440592686576809272721903793216345946143101658630557482747337699272558834646154047531015338942100242535634135785647226086232913776030436896890778700723020664776332504703058770995683144355844000036370299021851305868873638278059347241960075510618297573135801486454633658793184125874548278767575315851162127282782586706830739058162902450440954309360413891512675471485890607444842425400191943946460682765600947328823456084227368018274340229252767643327260913824932302430617395364970314502135398031364768463653979361656808314551197981368170424988770333737504493155671368949992751185119120467502075613381456881124353144654598215557167051267155364413928995543561492201757468591545653019209407482609411789998298815498387128881067976775163406951503547643217843988767871391172511860375544269524302840765382439291707757151841333010693026421838135043665422986576203733641483870981492550423831169737154379720306272511326008341339659791064027138660805810075964877347422520092014346468819886731996905086118962127867442690614257718303823042084615164773612819757923162958307131497260237174905409928548752591662342880564873751058643220446632517810127808225557990105988672055628204110899438760460671226113347437656805836985193016326552728630389476464574239675460207700497210755018387455974030664573997086871302073853739552158266829907371734789412239349620275424689000135385996661589028235831001927146202712574835634288046376740180885821267153132495738385325865215182068764400728385075258078974226751221403468552443025100737313195938621166381326320416827355604255593076444241240821469329516436087973472201356493390791698852369761080933582573811255038205869849752209185261208572779041883220188114762078328794975058683735402816896534611228572836682398532443186528012359488808461032883665470722542350556560833910546892025873255079531476520272028374592901008976449866854997402048853628722775518158248710063708478460625397966663876260886559199773469345288681550965314308933483705478525200253466732747115298617653972353803975104587778381174213952052735124505309608841567702875065022147950362353149583111603622352061828974983898424716050515653849382991372319175944299440241525005662465612814871984329512417198555612542135714150387645905958111689798818019073967013002740345799935322874835641408199795543929884238240686253841929671780049122731913435071327813711499972969418220967708280991739152213519474765633780679014423993040359004174494721860099938716831162461208039911359771637557924892208461435255913039711953272301232805895183030159825249633026949719033162087134772387879107060440135366664282634429715455607992744429390172178216392676436002444503177556515131247081107264498772821645685452639630265365673325050229696010344321140984863232078570330068092672057185765085417308356455436211860013185798421605422676547895243041535929297027233413428653270759519820796523678566968870153709797319955597044001133571686526779585100122963821661366482095539131743728811392223721541354634468645327259309662718360053975315086910517490267687222787233752331639175268607065669514248964662684906569998184251873246815908287852353923887183218972686443775976193200761987547012300637259014709592778389479659421476411798735646829841199344570254126825935196748471713189671462061922143493086327543145949895686658933112769888207497340462477150613469743646316552839219531227978438372244508146319281939324687634437087640521971401387664612660564981967593894112754260968125586404119104908272140033323620982860794943419803334476242896914003467280804138468082933486226659799138678194125024486597866077452120105605000072335707395456883734172108517876152856150718884682590853259557701423577381323355481719418331027728883544291636388466494894052291967539337384958044395384957949992743523605239950685868286416340614079887104559068122216856548064283069327888599035138760095276658591956875346339897732929073137453658661115010924641621334188765440144749376231406596404531067018985834949417147831290157430915604355666315086986050651374266066788417727425182761052968920814529155581584101532889169896820640766569800078288012751150250448184882421265778525326810767638366443986835915920823577017060205991634795592318950351770779533121678310879760048565988845186320494483458599658936531751328883362645426404801438177082262472112535846912730262549472443788674321627847844895287765061000440181292434682360612271163947987266745416994720337728991952867066980471977323590813248597881660908425251052523325158910146179182683941725681944756274870237562856850653145207024965383958639988913295984116783692047521688729007121104229088961222986198699439200501368437182312437326797967409230927752111539346017705833193990610556358516088115869193513842344457616595817284390537608298721629910613608754857994277762052685381736361734737655620571601957838442138154339387710660538344970826781518438151108113565288001289088173116769426246455659012842572617405084643386848514642806511258886445406344317066571813763105249686042654036491022936335274840926732010017956901544866820867248607141879756979555529542461013133733650215319879802616903632869448487661865191888252245305047637228480627426072358030101117588526836417478176893946643308153343859544268264657353841521107441962924261517706285026513598233112634432573540552001859979071320212199306807917132828960119513537045856773263954422103474669981443671829644693064753864193209855060340783099455647231086002186767929083996056942941058193843583206292310183120381319573703315986319451973892351685111510785759099783733074574902712050269177112279548201771407158812824088305088466009041283500116576030953802257536492598792134637334151073591973129164999148019354914247581276382878943643482952122261792250466353597360414747011914745509363303352399586073054423810502863937505203977226065028281992209619492650860921582153269916279468263803904043674579720448224208232907161327672399955697294198170800876022179408897428841370253782356066166824445535387428343722026055088493231138921124419256475162185404623760874834156433117557912186567031826754629523548323568091346628357934926683597727728043049079381129567706827201818882586828832292358851155679740689972739996162952575932722082925966043420155521453462088730354599686972910325862733879565575875372007682833348776356010332715886920622978841237686129055969101748050467232841094752915041474533419180729068449342577532722446291820494715565423936912563353107171954467105521340150369431031272449248436852827698876446621976189297416508527872328271138528572697951408993312222456502192949577257415399127724310062986582818075251491268632397204640941548527637787313023780631250062995220697956333252274470345624212639974852222094325380359921623237719612505392829065049940028882334965350390853014247734292138235819164833383372517524115409449952147831005879726377970838638180632628099182109841205545983252386312199158854222193652141040137672703570952404146534713886572366672394672850128385478283048154797114013424800796331202696745735950699609712912499160517351479689483933673497040136988650885161311384490012524607106937849910716834241972029669867432151985282422573832829366589547193193439937287479079040269522997066660917509559852927982003615783913967594599108812060220145536391630922577562294514096801530477410401971684301638169144348078895656044140301155324859578399204173002629053923726465812009310360341738958386791767731763198247477191892619752401441216992908149503486074140149613175327510648990095040265111256041764481832292026395901225101933852483468902315580961860644293277586965714629331046708352246662055657401206458635040121098247052952248303912954520813199652468207456359785985099576568612732992504527485073445047052010768935780984661358085973596200671307104794143953457719281458981556332803299020373258837844224670938443986996863468230149626843323737117916194900184969143774452469505010261334661895079921828692497645215171026716112246168292929009360736766662697374346679394566126899001631279044898395033722782660248955197751997285042811152292822465771158643478099786106101255571661089616355631727088783259915029610974472570284936772692652724824297667110056267973716152977742420718843293129799169283244901588606101008233968755487483834798006748407787272552405454325193105848569521997294484352491979050446936435320856139890222910168985957317214106883603726989130734756350313125432930461657036450922328392033366170265567311304897982992919503751343503237554384714801451638242269890598154096689237850827121790664249571233056060354065513557540899473898945660355677295707814035187372677892632804780906919380868797250154838335316088322404647431678672470766687971119070121026608802634394178153591545076225897849561148599224831001492724659706239621118256078257608480511328052935298146641262887614695164656951591996304497583044737333455453775696395006517049337785211633562108949220202669827449984530755623717118260179233147908997719513789617914262610900494372564008118308026342822708936728676281276312367015352502440907470988570150791889305834125367150670051030899211096048480244860519522449996981690871917377992819225904520869732647497337089835846560953057870829611085481398235131019149637520785258428875664441820631839152272209747189451195111687536837454968556227437361649100830809225022576026979620067957780752817945099188276460715623248141485282458939994597148278929790528792536711662271075677671240802459698795208963092373314702379130724159023430292030939858959641453525547255131205949053398945950823052403095010212405947645405429636712494196853123624206362424886231943233257911812566393482982009594620852855699973887604397200779484376764100076590708209755294876857670467063515588996397702112166091933599009073145244785080945707887315380662673748472234722558749612986235514759419423432054690081570403929994055854308051607439719117404387743995686885842405546796912536434331716569728456624320460401800613955616866120440833295746976734726536046672461403329426815570212488062759449921762937976219373054226145286078018758457385804456731510531951041435435732443633662679761582577027203741965961702531854798687533692811862663656777629675639898283118510323813952522120559737419246786563684598516755794431727027776759078656134602749170602222133147549604193112331910866028272907525552701131237370020010320358614849861932690836557483327330058806949345011854411651671259069344096534818929362219070545309796613983726341312864180251241831188677793134854386119311422202123273418162357437247975328277375559746342001699465929389982115236391052010382108214455273400595404078321629744365010783380273517286024680248486936919700887761384838082847699408036379998409727206920000331478683435775455851087224702892974614222344976517497175529955897133838256238947106335660199150798175570655656203994779198909820539460084627950123138195538858558685452022713864409659653505333106532301708815724660939703876437956413540688514598494266048672131575631758570122595878968730758605284175390129410930419169532405228423713178460747056728081912299481818370806423206016985137265765812981440695958111018277544765990342573959780106354568651827025178626739440398371732862804460192134612636567141410410041048658227510413536196974747111556279041213861840324805942535569630046371374950598049756731589574754937770484344839594781976780814918315876954790837549535965429250846477909518425137076301777396996432624523271785708521007345345726195948593262452036627008310034764168665099886590303531689934456312174348742616355331910573690455682143251258001750506553466204694674522951840961125359795466830111722209336064308598762965813165200005234811639172268728621071625182821240444040466757512693943601997562240833986825228262215904242826693818086626089753423115810960517340932373400572714543121245855211518343259953888946441967866612446919694093434715612282738832712533129932539846247794140017247689647565494275700002665059905118744226735681335669882122189574996048986356943997982521142944057825460231880391586740263219529468461219770030208867231654603968999263926540631374726791947142074011267887280828708019498600294070144238726266060842829944874600318295729889746226948037015696473184043173621295116403710796502642363890225636675493266893693089598197674479802131796141377580672604389749069529031020082845978854488511918669733348014815477063049201524198405255212894440230645278939820217490469641562387394186168953680087620283870382236700038133909014823512409338139581615615654997557610741087163448564736744546236938410051163606633495938710153971449499847365140085137113148346790213345792240977746900014948223784273120651332128713719528411596679277754046020605716963814108945422025929224168360547360843013981712138869273692746003455603738929316709966067628784276035970411754548103233920363283487870016988210981803906953438157654723481117676989337064398410381417552057744732458997168736992783630662231800062913860288807610792105336493316088474902258338684331304055943745280845927589304069057348428711368846292557657001196285454924797301339007021107405735194839608248632847166740377726037292635663442033891719275349220480518839026036366235556683811522668815638989473078544482976578265696435198500411686780260357335290931412579495494098335134335088383132267977022186374555811006777066061589360886462852898663731299013061756564691860652307856417684496848236651412049792894448506348407051325931537845980684543155841068494793926215547207515599120508419155516011163159197150059665840130984053981366088513279865528738094962822463609523488069278319655479514209029786265791713910485279129953651886145177480257715828070252025062295380243676656742523657383267457444066019161535149390603045813325465881519527531342880860932538943166700616881199519077063220575872700681587719151912645287301030120416302472087893629095721962658596057048284504545650761149270351918989973200445066383753018350148347041298098772262655632571668994117259476959993777909684680056794772441828964058417662853457369521465648744459576110498777674963635978933258936809029363603846100260548066456712837676964586535379922771010554028859106921400067899675379345685057401988880163319552886534294250995244338761259066247559839891888193463972024912832580501558368554441247086110985266657391282251915034530812987105195905055399424256532589833574385159178981459277999454684972082194446650750266036493085379366029738084739598833932031541584192174048104496044606456536062092022455515446455982271909108038914381549106652538666194755609681085528697194793509913046941615926869663016745404928532779250774009704323789850085473070170708274663133414357088048361754529539398662346612634834300493059076913948110793497666884927136516656394966127975346912671303414172561239648306962682621352405856134722927688297084185690337525972930485930973933317601383325103139525084067118569070499704539856443474671602601958659879172936997035837706141844685522978350344956588884376268195349318946652110784903453280817472626837431552057030757142305737938562943262314066330449367057923122445741733732162336838114676337247166796061466938258815530596209786412011438156835697758112515171909904118228737772099418054423301485318315335852667283065885938936428873862671188812857622106009489162400226789304206472904260753089714879247175514253919763593861135352134901326140341026838028770431211458400239962222552564547324699504470931442657568216817270342356097406412105630692250013852999810231948919470011213043492375125056017563365722922573966483773264628995897491126350969269428952558872426314285981203486355653659008050677567736280789292123183511029327171183121373287029262552996902538787424234918210230457195274286509013687585257873678509801064205695533318599328776908463124959578572018466134966475899536454852503709458090162860758160150207592785039585229578480400899500748668570779850335994490545696589550020888885085720141032144073207855768181842441434361278501947855703671585118916278543063971830085625726100529493513865883927987380854382899579166556316309974850245290060387552984756391130523552774203809602624013622544732630970546042347372856588028504356246843125591952530842555506007565407550796454849378321205028931023855952773913616846483587194860317916661612708860469326531327588288442413609337625348247011833789654628868375572112786802478764845257069868223650439996900437171979651455572948259533952440466552927145426292000553217039594673022422323949406760626408944080985211525823046794100547186594348563086121180249105709273833298556941324377978908536495750923698268252524405816235584498843760856513889035747088842697296590845207756608867776009348911527670121327177492194677126193789517710265528740073262919009579498753679430435241039042584564043002569200754869346011437050002553853994433056832541036830345892330977694710761558620990924731246902747915584102782406843310703221565977596326621170484710189488454850580331772759585105946079189974022113800798105491208808963079586704014658994563010585760720266954805545123864716713685392525767843938231666197455917430601454625688036797173888117981236077646164915297425277047393351262630592406899385040867258525385020626329953951448319167974486537694646071560161226430184577980399630214749009843479968614076384116529399655106135709611316509709105843580073327104253329628378332997524675125695243719291605518803387700860458545387237202335287101490509566068983787240582114006032357825435426774354135579081382634094667046874859833922639181672229946917222316655614932150538265809210153715009235588865053391005999037251666607264318737528223388025015828216544660171771430108012908917473720266528812563745181290961636735154779159146372854622523235371756581935147209046298891163333199728990757450065692796965582327770253721432143541370243607115565309757791177602148457891403463570139966660904890237585540583257222346281076019616874000544465254508034091730793796553031405427719378012144957719052820616667708483027882135780233310982209847988067792164570514639327572982965190529207179399959658681387340246397268162075017988817033671352086497885184978728481106616111603497065770179396205491959815665133763610080232228705876766672261999073685888022716391041352137894913993371209517224607886823637001850440120185373626049466531904081263336423663894358993611517053826833136751726508565174172925834500169690353351749307666863522350434386663752171425829821841990732528272589589451928933943140317426706545951380710439575243274932837865274971426410555217102474329614933205101186172038546875814253803682874416446655050579742650236331810502747591044166753490378491416260702244019279269563277788287478535415999896248830111218840091332742783298759399340596682944112622249617270578968737016270944607861056190151812744530690384450145578151274731906871497240384204939062463637785912690527758627225655629061965825641707190055102208759901729161620177596741410590310037709818296962231743264101290383521093930964720010314474060323491167055358586304477536587619159376774728584215182136623624614262520476661481757040292323300408158170461429245143892257394390207788159510288490790874925420524436897890340454221511431812660450508673634823114646227734682404303598182437856003961087958837639720721417733889856619709034535989125150815393800562191990970093272159426739803963135014237616318607151953584840549128921959877490784378734120871736336145808328817794157038423388161169085490468021357030368567261228891764746283530836437328263982426850063398977502900450536779112253017963226188470153493759270433244342151943691500328220899346176017509540655711936977164220154540803230203469175483672891117514153943776089368568547160899695084735522520262136994943132579723451139740100475063156089954793420120131344361468238028157390069279141924505864948711083021084874494654604010445148969992052025135706813355438057334313764262666537746455508738004693502023607420876976384629932771371678544543409631986840938772321995278470494553990694811738780194256480572412103477326125010398778742348172414784825279973311618124825486487999511977657012168776421945351950892398245794110716397500986870519036028368543494682270771380162562773301670289809139142742588248403447588303092041718650518870331990307790100761278600002376216899891441190671603917256886524040844227788025288747703536668551889311837809770104820253593746639887048431023210937830195704136815262109962387710757565113972486165240763374934637069609821331440548635794604472237021925526334487952308012720690553909790362029222428252739973550376601711808431657819104452490133278167899579088992060532240081051387033786192440514068967076246035781797052705778261462891442083040843391518613512665386142788054360977472588848266936672309816697109172420057774660737954339603837789508228896818207022028107318279066673033891102587322436899830219485584019417574483324686795408607463580107015784319864479251324636333062860818974712478439406672740423305560609287731270302412862059328800832979576035532104570301475452531988268747071012906230364614133978828210799101051277225233962386167306015406569446459710749181263994854541961554410756338685784652527468880363970333690367830481529924883474781886161851389800993151209902349914492594900679307122233168133964560882183336512341336785980506990501399157274219142603760500275423670581155991665842976475004444741449647826181005887022622285887154012300156892890718935155347509468791175520342354746090809066104512060338381809912047762449265530980085564756761120892421657276649023514730130522503109517503082570374789939465112737879496198016813831119839658760403727982425409786130952334883858725806679007851073457244782661928402378594121722377395558923019586294847031341156231832793248991036794119985345849582394292611834340318473521540492249112449522674474554926670337479994281100871141175801003620532471408191257528769520528730989268514491626998233940412712588216120125081915862941421945200445052565680250299436758669601657144223199057507879579800360178480855542904699221357925868603659071542590672529729570419566414188193436941437171255710501630882424481232307777768766179757558818183671415911296670313836934717121928218345468395650363385901557064531043179571777412346814224336622239229413363035802434427167525667756463177476413743558201980111309704038323003615419579162689359733766643652794442466871810016578521753827268241602229365226025209579938130089827349604150269684833508461166204608043629681373659048759926824859003674498716403182518498418733780476043758798411362510025748621082650619061029181885603184444796608102041121955974786693202504996532273924095459014743845694187981642852110520706461095198226138239462131970411511591002847606326151407867603233809441686057738381706302992650496121790651156780181321776363333179603428509378371470706735457085214422416907953861112270121187619033881394187183159318811862041670041147133242452511155242347512329190579388941981755392356307653175031558094393506675990517820463111945356525583127419167039048732643070832196581710355041908596056695204569043005752387027362334484296538123590245614488544146775134377375811704871171840394044315136315265601240110617167674654119497536682799181487319612483599548556234056223219958736591748123215367138467874908435322299037978473795761603514964871141747247485700902956790218162387248641201108340145449465078411171885796787562979479378152607940279010228060440269842613434594545389910102213216677979133274786037864500475113603795525106225925315311256212659078160879801397601759130312749809336045346255834428718906323861053267008975601792858929971014198405877935624999936236485142437481570781670625213261652373241465939914609666679857347610982685739636238584538453708423008240130592022290040215897209616241827083752464191056291348634718350488059443561143028011852569463668639560928913926291134622680516554212821451422837608005842738488026502707521920535671140621809255324327273122579101901232748109660487392319121454445100572385906834936317155523987374696146498476624277435084998267324151232279036136548147175330993159540234204197898043780424659320092354597293844794281261335568186692471186502799123562936505220057802863267218047565242580087694625019983306544334811002607464995345434252444690799490885043615090255385776307120526732900946991358909736760644714401881044156064071042940649486194119759292888086951970099206320331325633147569342331928062522192814474571093505763815785006243103553053465893305693264771741542247423660483382557610571092679462855917012750564511327816419983298958179627388978388781373612601622641020291979984311842933570352478558826290199376734240348602754132837403939758411972302560640061545246048827507061040116526046711557991720358175444299406092724583225188133330703932765027303558088974525580213879657207824972620134276879022457040865896546712849572035158694422051986137206230644846355300241179674987423726713350701831479893871003699970947889784657168398377539304846730539862609806810183443382218210870618324519137810224230031111923931279226995523338886998301479373976239699565383880176025236612959147420265144722116470329458278382207740289900570316769406423279773794258076986453116838416084275623614291990740785297245547961551790334060189765288955489260517609026868659708434257250339284888094634420563333976191981125525776963451984471285825488553963993171924304665577044251732434809504156545837124281073285658411210420201434121325125606747602918158338949594750572424227413107311540832098577182753115579572212120037661985472331918365476155254420278756442997744605951908673926968301988116505975268887670697888448400261158221916705234236569617874674614253502189503017518664831990040579617043253340752170763345882640535524396987646824446064763509302391072026723214426326772452941743735071462701846631746369662251637312868039675494609749141082634144261168329801111617935426527640731964986648370850830887066414654776478684671144578929495309291571059254265895352378413420995551084193992768508260919982968695076760657128136822099503844936390795583854962143655359423719718161383208456627130982838694951588418368959348342073353278774726746426706452611045118413879220621785192866158679133977339957795481830448908940885290960742991246816797668650983573589131557069886936916475697725233985124221976646483952308190388066618230900707873015034187709721935532469974546441315796685418782477646945613394022955261039359361788993078027317527923808746252813584946532696719360993836517896917615332342157608947124052713855973474026173771919413780531631541251428063592866749622582067754857978875644313141104661370402924217257029917590541084290740344392677348752030994148520171295709347716199367302945598909217437183503629536753553961672185925450058550303003979327465080362320529205119812613192242492618115928793032220888051111475860418270110382682996332821231018590492734093785163705014380826869023218230825387735143868373373769657478471990218896494880812362738499020525679205953255327444257862161853250995465445451141774941896555525747665691659024373610931733148127018104556624943283251238633153439995417590630604033162336428289098468940379243366685617108584291623435899017889029970787823533062394519994906440557030042894811246762738628236265747037107072215774743791886761686266212783595860801588610166153058488948457594607815697939406460792551019625706397070466120284912487626103491164747239524581582178313937397267996380198366712238521577405588789077383562132772316670231722356887718192817953003551609240137446145236985100828957618709638077998747467539464781474322211394253898691551126390040501654795915480016027878211063845159429537329499953363742871440364245381657906733138541365911005183687378009507225711810503057200290135637395799551054228771378759100175512744132335920090260505827527909054323987689466350864398002197180541606335980642974331948965513148629628226224711402026308253742551722413281697062360004107740695138194901717397661956402633515227900249194363224687553839812242655188768132037956830704051755733588816486233443732308493813792479427424716394695758721498582993616420342233207786190589767318446281278641270012965604152947041048746907049674739644774359712485680336427845742318450687330888195747267502777294986605190934051437608105325978774297486666397626411085578557358593404836087089831181796600133044190651590235878139986031496027151883222254118292942402896261189051872109731059493451378266394034409084022225268751352607396130546450063332189642101163541569445454398351887355996409512498612584985749698499773258647088599775825028925197713998484313654543566043335908602938046110174517750697113624158607149625792955941487876210814663405965955138072728040002285217354056865007704409048227773386467458933297492113335580347052885820634460279631157472957168105632220393047745907067879691987550852895056326697995211286880309391001732059515834092514635305377635486380440419142117717480602221474528591244578351509090756186291562153126636015095842947555958519577365203255942062076151717988714590331658530068073604851674998494302968622822184351806779963001719947443555557296482799305670751301892592866476264157830035450185076473018761858333857857647536573371412120244933969407739929897114052039225715738166437037015443338752412549274798943009314082989378201657958099914949139722740569398661812333808919303393493680434519265539487057991792920445245112317482841117810596387856300014983034812556549131465471521498276664107033728744399192914362093592202230296134611040018099203240331885317304855293652460796340899242149295354579363602148660809778956118283900996599485880729732015934540651778504021441196544521494469442196098074469110417617915965326480768955240888453656999417036845087473689529548748455386920205042764100043645650083931367219197486764004470388478434283879490800527976280986381656819716816630821585849070964141544090528563629314870458888510900500685745906485115642006563786494000564104033259148103185298219441372274470109785721505650017296241047333811219819593126641104004065455426095024270791290926927009504612927734874050446257050079429746851279509040069174990815185402319217381253441143524474538452455487415918492887097467923026520525793748898569069647905982010977702875415840397490735308901829319914732110383137131915649470576347092434526751752165583291450197620182430763951949067867203580166244812149020425634525139902014065629901846743114965748989202683456047008226854909033910882718644733293647362023470001755100178179717242446636424433782621274603342079941724316982882787521792289154808206644034830515277256266618170164105150950510206049496341681833940103013886687302914296162462384202055601251908527843368465131856583069650252125149124206128532118022721415298522824923682340304022524132568764074633494372090329183394621118891841128065447800661677633582206543031678272554801206886259671789892724309188642397847373744043602351413938943839348355136451766962522504877172345647778054584196598876623583566396632494737169835404287784457236151674311698574394129392467810365324635062158064592823986655995279987689748087948521069376776798185656824242661275100830661233744978094218121773056972235711161105926184699120633598887899469824183767588181752813422361079927368828674229195525484748059070319663909031735864176476676299619296428663310476281998520859591624609339549149385387296812563703266522122306551873852783955768781503815671105408220003619928269670950496320770428130970310594729585782330502573164638399768390280393890024916191724069096406602290783345622578542673427288647487842636650944928188097777703613092059816958930856844471418975016643872903214039794272397688142643783214955901224332997590630437871183231543631581765411030125886663798379694470572040958621752249907878308757909817296369721373300410088169332251585471374086206773029718835789437378456077028018825001978851475253887420818554502769453962096454609735375220021084499720853676994306340443402676982118591145399400727223620687513321564102627094880265275356756350472516554966000401553385256926174544044365534540107328760816830587003100190557768038254842161226344471815573867388736314715647063045247207752861865011292264285154237128041351094152987082479703400101598070529751180817989932912203558246151969614142258344050274788179116043142783269723863534308183237687043361804514039767156295297303396939368216498394969237231372131112277938041634712688185126973165949856334856589556995513055352116616089626659635522214869724160017697795880766580916975439567226291627284895022050114095721586414888190928450913680720294279270206303136119871780265208704601559706599648056567903464499587065186751067753216749750565724186203569870540025641607872136312052091650783765652685971441773190813534261995481274394355786828925540771489328204504824008551164530988719043948613259707566162193555333346715640953442856531767613634368461837062086886929965447492629286659451345307658572556194623557499194500665330284377152626562783659292670344662219923371655013012390681738864835907243735051731919126104990892987337095171971363852577240860206721589946172752780180586071248646167227423930526661408049670948840738745720991373355772308032227519924979000995014249715004592143250532821333165658379737697190753748806997570016983320290320699684730662791428320199679042572301431442547430677416313653104835463860414271579396959607092477408854810914650006567362243148797087377842107479947006754076171905825522310837800308490962051910305785655438029031299790236042383342024613787581159887777489631009661686677124210361200740617640650330269505868704465729084170632658390232372819410262726701646665197996221484785056282750417340992824375709773323622720070412795283641950036994227916180923034718870077414942827546209853434040423547045427236591397817053964318365938783590184477600592514783072928551375735384129012743793024002476763590989181921430544392744470514546809817163000472614804176161037609337298977520115718834564265263228195373829585138821068561014616092099728848380673785053159728197453185728047340002325255500124004355744847012947934700952915855548296171950048234696501127362247929290031941485976465792758698829896377978910035742580782004481561749463374183466599600264394547342235365546291237707876601003560816082103875239693433639876625586911982642425162516292433142329853884114878892044863709951236982912336342724046249691870113647824860022949746422366781591777396496748325095092092793886095152660524439472861465488941084710810831181305859707284139545180264641838018373560996802003821646871542895153913512668194315919088397152479695941540223305598061243091894185674975188570077068174572926162969308341368258063681536846322331082975898765578258100809355478407477068520739849365889874678643772334747726909904378963124325323369453508181919245831353727445756382982233703439298131267176608963441718461303154502558630896348444024032978986690855952238288975523330531711123771916228702040277773955025234061116066515382442713652016817155169239683380842909008731590810416590846794099085433697342426337207851355786552046239337572555321201438269389021898372106108424006966889917805127638075334245717256129855687244823684788743487290254249313410338492819116302218821167350724567692418128913509878154374556676058514695834985123721666146520457654798536809648348154558067010850394134353562171243581765152649315980007522974122617163953342974998464797044595125696662104571054921403898933669323490829543431324409602898349501471329948686505030934072839873447216695692662154639405148703202767785959177277736315272739080639677935408900156811002350539771433347456315816053358371771972473219704447662552441889844542275843038651518737239931970929754008220972451223572623440758260115856003388306210114788720861984224392166575051600803407196247833620462444804782948727374161299741851161466100474099517423274489472984009476448700271035449299785153284996407708656370229599741718703986747538455087483410295752053979355924475881975569303841818721736945926356712776518791572419645536699748766873588994188853385613281693265506053292097637643410965581183496234350064378370786216298584295969576211619655696950759830980498507665322923500431367065435586665170087714695956039186711147303747445179031425549977937808881190870233801236047699716014317682021393711096744552482111099467190251394025645178739974384870147781578231858352942244089840876273332168756714466328233815340260076278161414667968106120733872702139940608117012989459047524610623767244604904060765613439326145392562514191725692195012028907252302602170681171095504669040504312528468716557924820039682273351497513605949983677166857798287776447471021066231790814855591878096679814124153420181709417680817222483604778190395001262390138531869466456342597833769772239995008968077550901122391171812813149016640934057899956691178808597049422720294368935316386305131420443146458254931927839886289737145866421110928999681148016128994319381962673978283338840252818709408789510251417225650016112916043040439432034383991598432050360662803362752431337353849316085357708456153413127897004312675472705235403893386215449502386846988096304071339497600057147383433157741192082013700392425698048210298389015816655777701012291161094673999065731117686556363496691034816894011027885266631565683583576780962705233053627440585374049252919398338238952896486981339090230155488736637705340107876874888554345080351366091204475984598368704793309268519619763678045578839617655310424528607567470013947661706915572628758394751484345880122219790234288428587434939857976243999869108752704932360511067637885017150052887049177136214555320578764801750927574768128213512591736557813007107726467316627334534021277603895677700505729725576325178518016589771003015214756484064803135034837757231124627620748674429449877400361494432252393875974369498743779421501708410301375141094154649764590749797984831451941755069616330023558585540260117822219277729951918127704211655148534513582268635757894770701196028061408276392794905008859105558221572347298494274486173379233637511460573401346851526878347070179093781399235542866764301591691879724275060210951522483649979557633683533806532124515087055591390700500704817166184778206444482708928052708320349845951560419080183544043871265275204062205813637505033235878926867684934409267703426317149136209172319286304535454958669829158638061073510003613586277846757064313176105977652336163319745595894181447981748315584988593097228101649140636994795884281826822716231545446106468569819233713777159457594030944743700243115739167762696130449497121270181294696864503769825255808585932779397676231993720994423697527853870701972528246932482619356071089520646041325414781389072264098435835703474310522934404900728793226958735652746350004061856405483893236546384073064222101387031315755071260316652782652876190509390509835529075936970091765901909569822432819621579678175458972392612029081486128390802468894706427305343099717335967035680947259008075812339200635142288818490290271445581850104764414068153927759283335251110912133229061531387713979597282133992690002214675485776458144414210269290796282006561456326300935189069855558533647336122345549133745982977034009983299638604164091556148974639545374028110069051715573094139847471932098908405622819892238566427796209529750942041476199086268245613859945265649324094735082251537493026192848162437941622042200456056772115085167314066338941262024153551057381865944661741331837691018451298440790742904160216056976242919560649760655780673308198080338576391042598796729165417172727368665151356762723887147236133857917758603958284455820748586703277751341485768029181076352657109234059003307620947015913270383695510791434300912469708376181315326616797591332681042191842282975108186157078542949024413286421152170841346419008432040028970149721918015792031265513826058647820269297103752179966368938626949912729641773190763722433753166583113129834381141389555766597819005271139822604466994246625170789340397051022866282596678668382943617377305684206895511819543844595141776008516211263271835619489073502923209684139046145189289234058312217909364541210014302298503485202119984610069977828620743326564578840258769054926642763797868562271333017741461393783928996302071879719676491948175199510508218489125439326885244302288513179629071770047924169726474896440815634606515017779338099837336208360904236195704366806399728276559681978579773602177304299790555208390639437445505803592945252573196105015892461509366422262946861600480845562519097157863697183422457082280386941857742775755699821647272029326129464911289274542052250725366430954818084947343426599250031169618252246112634132949093452856340155717765393480775092877475213223397169108505290130139042328472117061722860607791961331726730859706163530291553213025496325174068176875444162897753368337403032830962617684577154719383763342769764126896009425569832229337629918971057034637104277282676388528359441142563180186910581770052007102467767931852244842637704320447559936378302585471870810730138031539518172108240584552178035000626164543274789099267195266059168389276595217852437735563780858444367664001917023422224840320505896302256539167967928309868502061190148459399404056629710822697425640152074991148269815970935367431493020649915234218485001415050492206855930154615612105505953524343055014958898324377089146261834707929113763178674919640497678238520337994485331607976866227446867531202404854102958742011238768089303281798099792058385427929662738832611201583754145369904045519923781190967200267002833338465214624729472359595186424830888555579925367713908209510430274547272009327184834715251540584348147173462801437228663128484213672955190431576408139374723305052373922860735833399314148371340145578929776980225149895202719278543492442174328897028888845207866277672743967848589037588248744588998363541522803398561341516603134612191843600107192458319330408145503362269931433988490573001399908012589079256778373731162589331469038555456606768067139017776812608345083296184264932676654259303101631517317712380955354624979931773906423452001062834084671315298192052463156148323374838084756113326426208851863517008066477458808481604961305924674161356383740509111862436688946640956322780151216392730791962757633125068244083394469727961279389219336330401548640583603279315081330966339656655641187927556369465237780371077961838161777186207611365822337045365013705553886614054187823911490938542076589312921740657130174093660156655274271859084295064412306683212189766214366203399257917341027043322754820944249643698181579470507957737637537116440823029372064362014929868151407234997032917447177396238495948113099396360896634782450643944135971721387712803490873382740967955486320071395679203255421719599804439901947809226266379145996889560349585973200591201055817163151457715898825303208247074216268122442999979856827950694659166077171882335123973536054281573105864037132657674088821517318885239057145901361792077796922454594676689394777573076546023037748163617360922245121383897980549958840479960170899586943519976728061545338139126331443274934345577403769871778375302718941984777637920350068860846202813200463454571590413664614953085797655888445152742196949510482809884663575569507944024358761545593813721972407891610555577426564092508949020828277192156400487440345158369241665515862250241679711379532701442678216519747645270505849939131927429270428693070309040897240219298721177077294189301211019966213744276807958884428385478808840982008509436288541317451725244014019461502780051192480671368142087051457248388858327633466090889644660247757747938576245339021578101910678786740426133752657905554165733525691827534458706439073399190477845020978205737945812290317803779128541868273015127090381117834586989234949639661229781297006990160549275416621476580950442300775329312110939895192111439036319639867612787477827914330167096602863347210680345381798588126339861745823707131491007246042932333198596511847833880953896913302434336683157801194099490077764095877784529953486446142751979178907731127611837680409566220130781486679273206576403148871639264109403243315376333867627778969314505323441526481660266355731629633822524072704006556216164238379475426504868000616981470881370604624564046458449397627275203521278900268728619224440721698064426269396776687522680747766793740024114764295027504280402871849869485603765191643325472004225682646141128330279963406781622494098969897560188752141899876087193523894429582689304900289319368323619582517350100162033819925232710459087395179125783251872568359334550429464469836785279188880538380144502590829754404015982440872130234541794212126895942992913439198685918337571533124439926838621011941249201063710409167692639869689261898934401386729939033420335395408699298981102539188367341451251274742967795110731686938846087519895756481072675567756126385169069204154458145744162420399646404397037001933531159014030472614068759919325949136741518169024695034288836446099799513700638808327556967004266068429907950229831596700128691126936168600893712837892446771957044014149014561054202789331949602574958150876783824499883535351214464799474427114563042241671467913807558618897179383988826447964623622899795430707980180363987572607676817231110335130777745763873773842769679038087874736744842887830197759065058942126548601977281888994970804492244052059025356644890058476290438746957870484825019613027867204515216273554445548252819526348882740486863341039236704549889654834035122986149918676475954860415437358750530408717512611649601807353151695992081817813074337990021655236276521515927346971150705517599451093790962627083067957879604849959799951630197391334359620050538945473215541084613723242606446953130870794282016695609230136304513167201323049146974826716440278414905801550442959588492546825194074931763101035368304405562085517176903921860976770104305102805805709987406866257944908471666567629787846432772556270520187083116518547321067282659668638180447132581278806610692874840340236863495229537528994722198018630151207601364756796772903461041265244673525487552894709534401544263339904841460279814172768037402874714376400515961458052093345206665514460047184378199161877401900312766417726037101053795706549983556511650317039522051112677256772780216100894764633228621002003696305145708593491960651923768984227302602372112176776465934807144900639873861994905551130424959724224411388841061789536503145661068917896144988151410997524411466921504251264207100723686433664223368569726802422853890619099830024770319393563914093392535456260822192186658152475973635844292564641820031643834796609384728961646101186642619686987338627923286057114757186927388938373391031881127715691404027217573900986760283094660947169627003329360389157780012948495670868648348148064875077349592275716641646213240110222638185887319078719496712072217319700795457405994548715167032389345346174304926811675832934870325769704491465174534750325167514898005354514011788587440524663016023683272174520315006348817743847891968238361638459017557174954941961642061526912937064638980251604952891343168733076127214362222600619104935091789986461863023156166715613775757261410394879293757937190595644901244939957069588886275916684469131565018664254431023860685629958011016168513809968614038696601563885392310448337233597640292040180159025830872794538403876335416087630901803777362915431708407752854277457551356542728333342696930647301875310734163391697354907546958706358765591108935698718774394607084255815809055144587813813722428435949634333511959990603129419801789347144571646551058211449676402019905528953112725922744555249243135507822183239243379591860486471940184992399527828779144559174877724612230329696891401076409288987946674982866619705927085177957933331411334841832199328869664689010493578893208451932807957592233844760565010018333583220529229033859244598570821996290346216250047072649161735025779445650102195217462812405236508387388852710936196901000498250602006138175138362615912711742253847632588039709238527484940314314258636013354768905124031224115177059631363074518254439881543511422113918161320749220874052285775122505007375657690340814522256901932794124238896163110856681361602909021336278695105549852923375989318289918601951195445702115586180653663428724137392073337467573722405422080121554694043354462046589094539600874677399002127812615540854012812526338465643220644355852235225220656122674290662061184118297296524487034829718807923699480945041911002185166073938805638130716380877208866822556471687666638555791322864235921944217260949325504135418985562465398120790133537279586645102206873161841873333233232616859078176325485026335100565332706520989711547488625202954442452622757780214326551986184062657656567806969079304964661223009387174821359390865494857612607247463864436623058928835226559538723263918186630522759223306500339704663928744571515779465423945221730159457901592836755423986480792151196003433477450006677772237459851866676380336683553003192935134298961242364011262312816075049367885872667156817286687933026909975525890395920970770289654634186365670791309913363114539595716073181192504009898217141418449316697024076071450415945701654258437453961637349070554847804105804320031745960420389337168832938921226567889308661483674402290955295162628784289478152824315189993901071199272045258893273706550756997325253337311303568362183572060638401440517680730948273050027373676480683976682342378048105185817899730306958108646825493056333890339468657488874915704669843264543174708218998868836391160504785494318518072935661479409898844706788193017789181136290478011981951158107267911400987509736208940008602792141979476611559369283024393587082573876042028527529432567605527587323088471666209753339993279400126312812927839948466795335815343716575037509379502906545500170820398000628649170148381495958573841891535796171359385316583032030569773300957676957892520131013518766127480307035151357877783403740772483047535215136799839304171474601699917435993419649595837527183310260456972310276466649414620708107901758576032209717930522591573354308907452414786703043501005103829593467004109403025774273784030255845522391663575262114417037985918237228429925119733756848860711570043954472319628176199316765383020396925515924422300988271846216512092560116035992588865146011728682891479203906606137303207242924777473799662806981344330013463920697013318566238611764890358407869060044944020929586183976340650204377310954097304724181148580730702994833270518682198756568169667166008092668851983670938191445738072455765020111046613719913631071966172556746082323883890017301310743157084768967851048250127364625916825461791885519934463076283455708438783824522701357953070271840069688472424542127058341708021613582274700676540877485798103956341989175299565535134594526684006953533738009907232795259616479984389648973304102849273240411654945144458493490573518609684192795099565578378369161816363086146524394351551646971060371589261196842917152710562612827357379838911062720992688884608027333046612482368329374655454656568277873692658697635817008535473470568235379060279740709259266656564058586688866454640224818247964010650781880202741047528241517677096648128952974019059084998084397321471335185042454745003574595300622160089756424846835235639236879044264916424154835677156050333002573223804205383892725280603839700248422040892749763629373449703941559168081837146535903050921743836752632207791036611851082089032343733753276668231882015357906754237480038678841743330357855994345583168571851449487138204584339924457337434524581292362481907998985170996508229765696122523821004266392111208249958375912822767832102632682216222925361868567028325827666012405504011418326098081385082936971955768849218558768893373350105428244657201181415622504588551321074392744485411065319686362692009424853276939799510990499095429490242182770195901062788870906148118483888342446209314537067524720924556304465446715887148917079163055772329706627665963674478287065762425268971369438619252360679287322097028195933287146828177761883954914394221054880209434696725286218597007124284062499383877238737788649782589112167839715026345738247167894074544022819768244772556407702536895210098123839179192003361188408970379564659433571626778859591524512999694225211557569622173580329827783564808355726104322486286028481052831645835547765861777104504891002340286360451743988882415462016415202631038951187067151199290588984865954149521517666239962677040886371896288948448534644331530520955803272252072113674378590763446175603877065749417436636135162721119643727900246279174307351053188025399100117541339713926771644743646723601942615737783514116499330831604654780498521253868285587783227005990893823769664373261669337754400760134068152301304426351705083840399829292973937926356280087563959949328526581999723475103246806686991311997735338861712674948868450537831827732024575403207944316840161446766890518258326815069568342479611736940398980301094134361141757253075267431010442752082612412560276383932801605026621328677490798871073571843463443853243642009642120578957274382964978039905453074585884787598856564951873393594360994787483303810119833551404381369652298103222625913370087281667714592536999922728409022396828783022423212309946271275908986552285339720160231903589489976078641413226514646833125881086674240091312001562206003933505846463532845946612331623789851155176348645724792389834349287274494415483807409790609079210370737505257618809535087217945509417694723824458528696754026683025593090230784419571526159084583463773698622771743525486073546011985407901073989240798017745013465324420547126278548271950145117381173731767106404055656333014385406324870176451123780256304689947080107561744388626131503611231797322933396614778315635238628723487937003342941120298137955790813553321319967883851475857222051602108301022632404022000054311550273620117221745888123792724641324741202957185672521745216515572613484308685873780359284757857633466929895212069163230426130212210889058300244975811349787807856156614779800035799739135435544997638971309522419822711780787402296171503504496953926147382763182038380981030081573510355747661327689931864864440420533637187711499218678629220657197446298129263108133920833139567299875830723508578131516770383480542005706306641415030407768373672632981891040722883498807179551670481354665875612630367577759014912243744119473759204324581019467970347736364361273254626388977284907914964120544965410589270244277535194155046169524608207477895142310223552799906453817492234100509050957265298681127667788487305546540509510044921173163290871392080396767697755093290759134228024773820879320007270704228912000440221977089011595461422677238108425184355419212188833262629285327731165668665665585770942669739203805685364953728552132332837693804100793634807541846340679985883817184602662027664406681167474017378903788389677846537413994129869643195560976442626014634375177777849805538211469784901611213389749973784085604174834271635555197270407358719052103925431565621505155299531849527774394256695052835643840620873471133677395459132941171415513299930698773191980618856566463281323312919299051267082129183641600556035764450611418158763222845500629252297002804479898481679737572304173611996580659513689008377782537388801160446086120029272479939386740024658524727644110232508921269439695923667732533226664635358507676164455784358821065639170704890265767874299000070065746053134527117294693879463200997721562745218009083665329681387897499620760482516399580100925446364974075566074198712078258369380622127531640884720910168111963198955973110816742350361162870613892547494019947143534853095407360282668818441045422172902690210684809388055205800364992711917272597100034407314789947771331237317286707882521561824681179093537329195532902532436075543895045205134256310242278023792688035145833572943077289217335800260253724852594295686668163530425833067487639457808492709381906880911590676498426551652723513747508129397662359422670841776531613843818010462333749463490901808034876643415015940318490140501667552704275490609377324680516498441201391904575551658883179983643917986493687703916988020552126678531448456903606084219145700033868112809308562326132015013705635802090851251272757326814168620244911638343618063507614340069389229541157639527867677049280134383357820444499635800148245306499268615727264711892781470631148731476684843336299756903804912100876765649345494208942658608287502662104864180726751348804439438602448790604391978586549169018674711637113280043334760550384018712076418664068182995672886861635171540489584118120351641977335783822376676941425920863272654513570123304086288903959100349426950391806195453215193332627205360973691856450033394280922301255254552124664012981514468413649809063072941995539136758097520408230714703022161207687435001520486602047257412332542150832880502898690349510817498391574803903894743271371059208694808307964535348576759531279685617476998222996837358159128242265219180285045979539084394443032767661815772652489801983911940755335257009296912001334075289512093413257744454139210624461810542246798109738121174914236414119066286873068768034108139774333717411998984442368384021299375708967884231905197372644880265079116919209082072798251004233483413697380186536896694636708497089346704985915146266396091087707528386634086723994710138268122827991313974034138075364135252869818188733634103977280666072864774261411765775541301760823767037888486897382846989968539821078200896216477853331962257640933575009839037914866231051655273085310417025563552038977015783738882795360252772758419859425745067911547167089313248177283718512510418538936512792138956456774684222037448587262492633411022061332915613470858118696639802318864391399867360268079132304375266590267053809559650356239969101469563251764844862162935286786697088669202598090468474682922292241688861402611539627444761074756668593775924545199162120386366625662796462278658098652894509475626042930854194629912512144907322668232578787464251450813805327285707133588301319685149254029793112431820257556792555281569219939128396687598613193837697709504905625402455720654331510508422408710203641577259731059361457120190638563294836975158121899017487501632580671891288628596617348509863718144868773183229768931672902633260285957216259655180423104737775896517508836229044552089748813912204076229951782397352313038570267943283585512174356447993725615899800023939220660132787828128243572820094063981130644533507041432463750920432471995680257949915615716627825036984529081553170773444252414681491153868391666687619139178167739817144243019953459919387334081388062992196071403085184814636080851600500557665948690306695153429508615400638409276167403851483228154431879130956800820471269224794035228837738957275706538053998326968591349819067601607329343630578728761646237245374388139998224989254237935224100533370057615859622530358748424472630091282622954538396889916141820118565043784232790078911905812525712059861140936416613154351087663485592864613182436664908605133242374121714453998029157241273216237252736225314139933586978198294677609412952848689913076345030869989362541844922216124656997465734937033160928128035940960257814202068209105651456731835074155819187330738213084162453900811127701496462843306343548961435916637059984303356142889217573541466202887707314513680660559328606578440285522462898361014263538870786388420550618195379122694221843203312894557695622784504434500632704321803374562087981864015987623083054389223064270580231146883977304977271458706918160172344073115460224632237143060306259976842521339583868484898576247925540623942812005249842110667500269009776294286958639195491444667497763312654367528554334600642670965389416282778131620926431825833922710902489669429082793718513732861263136659613753834672468625810975991781379323829171685282214104384222332491702713933240709311621438956210035630365119226953251958690497586371580786506382430976787199000397337625042020452963942088818409291323205699481512880955992541855840662452818682594814611960380668414720467463227058682458463060621119960530847648443556768603332816697097657893730652147685844891997961856017870172852529340535534471452425560774444798025515303979423700320438356730872015565871339535060923669435892462615616124211490359113453553577435067453942458805029209372473336696482055991433169506955272011317486344242091733359490297890771023888198026388744754452830305594340323216547937009143444968500149007359598373700416536860833473467837343631740690619950769250765953869739855185910574575928687916685362804009020684500584363325882206441435146318034068041593632292837110892890392999033807709353701554011318981208546905744217169273810822121596756593698356302386099519956997849826183522152569233646146112624312710698969081282229986876958732743559765785861043749138194681123336101631749047382376364622203134246929251967106939325985900428089026335327390857621132471900086010294313984622637463299377526394512771651556697335284701539334425833319471913323609620278461849344562559317052580615981233066114220302812356756218036064643975867246993480842410216420686312613963060257524122817332738163276037325010297095773945982550722590413794836952430721615930629525014735128450886790953576532373282106813105127146650410846182748727637141166746250449550233136889137522952919000664818546966709055773922665554660897041908637207716922940484921560684129700721763839925937509637733561816820577299609625423523669826720288440970289984610208850875704280393399148513546760403087310165045488379099376500936766846444239891256770823385752458944014536305450185532343293606882779124981686948972600186395596024307007993577253622526655600193193061816682106190900269032853447315465245170685557289341062231998116922891310462115203367236911615950151125784374320983076412181292922244051672285123518092908262253147502212183063789632747811371767055415974031944510372815575607028453100025068285441922787816570230336130500851737186272330370491255109784260381816297747460631357646790432993490260976144103135372244566576020422742810064869191682998809722791190321873702267549495443339880723288683016108915586382375724949742815914756108038957834532490215993721284868856534981212888109019135559862903547821971878132171598927934246725092270537181635802947408830864692272132641517842701817869068652285857189957415730214834504792304222023956877844830253402248330107393209864056153441505401479075895525357596534060514178285193236963204553635774653594991918447963957152707049551951416867662149953750400447462973220817077956079487998138027679524219757107126845231036135056079610789886071940562656698954071563081681156672084021691381708259705607766508038287521290396748978004053698513533130632755383710055689013683785011715016108500447644779465740737964253652968018645383515827157945885940329367219584097350086253050628882055996710793950923458184396363937965879981833539809061691186560005467822545909655452790539365052005215408248289253246842906981843425988060934916272443752586628091699756088493714673299010751586407112094942763476704249546975553184223879821347669888081340695161297346094914828783721264289302218718954345033325778520813174206373406743848475719489805571655125759565447209875638091229584877798766871539273962208166740315067705320604726309373555080407422343554104387753708730668387394172281923919641641658885572302147844083341044799825195270774953745280057024795379370717715250287077822337411210647796121624643458240008371625774699196397548911084355549542828618810163288697022774504676446767261502491346040492216602917926051687110611403398574958810892117785873366826183566529652756561444520257954684049189036500951556444281007737070462827770865999636004494819650665285735760677086695550586037739661105436347624693319629673009551191464913973895460925334902768872290235916987076565104736587238072756773089635621622004336373166802854117593858925554660438001749936145410724513288786712157175676126855936199934059387676562910183562927292380080458730561681583488772067418065799385565447717570636845981000663749547526454746282162896410391195337023509370672128689180455443748696303920308419324065638720457344559931472625136935183088093731958986931604147525110581610759867657399506877716700764915905308314517945017709530203400101752662082157934631336450203547547390920185233955262751999917116989538292772145342380082388906652773922186911193176064499406677377654562976492933976763819727406008157973036539324610822678002949945132348707742112229651794923923898446912499864378475983335046503276805820418760727411543617828109077105405920411220081616581843653257814740594272540119189966801846841669643820334978321958975788479074186664977610217535691338521391102747221052630232592562716456163125601178089244212290780547060758690378335998548092491582524076183704587307280901925880922619347657314341776422104679172432885815420282506711570255019733259986838298202247976983160433229718990282693487079479000997076138770701942311164986658719349412352103184781958112674640946757662709764698698683384056250464878149491646570994235067538658044469044203007189804728356713616339049479545631950206987192144421228580625182704437530881527027811774441470711080138630420783286306423502415437449502523502054819438376362489656048072512616220614268261306096251784916735805779908628252280578120694606472572456758778260063468619369400406267082641159973766193133946197523975805452018205768879317365120876649353690189110828501584535105211172166194539595615298420946189666543608098473872172816406869044443178777566362205101852326106579321324008611778861386237808315400896197950744979141618905800085398387855256806613419055502765119780053387888522329146102649179765120757726453577536967713380349057563548795661712541771500047076345079452758880312582812929883217168246391912635241858696582814524936234360649239388488510259544896086386823593032063623770248316312678257058975389511519841135452203566803013346802312929801067117009920521332162236765641458440381022827868710875428132689958172403823575725538618896897564674228616985922409034781367910032559014125081772379613158911375599520893119880480630223892085266835488914694178115809346102388007993264401840383903660430527973776044174953437267888602302361054433853564580041481891099575774400534898868246982882559679988619418876825885304545715485282476081900938894548563372313322068353934474108576503267164324947043366659770041645397215772661153391048909992901742654989105470398201962706905416857322457679829332482813819344032214638635382966460500719148450477078736941791301188333833731622281714111243250428800426433778715932848644238019538991780943165048599230877076446367681126074297812960574092609814791190719467033040971363266717953392974287705134695866652514081578931723489807983315605801253057178453663691930636629577587000343213974793834555523949721336005371252987844774449179555595965857756896618976823349529817490237808053709856329368997313890239156010531893007822567986168531520835081149657327794885499548563517646451302363263899583322549624023299112164144271129270884259500309562553606636898266231304207996528986414052891486285301655460592348330938968931120671234072164966531322508370040395816000755144266601721770626003992694454507786780463186242317142095724221380429580109595132838294483221186555618040542965366670012554220311922733488571131122076902481206077414465787567723035569998595882008335276394852150000141968138927408599621548403330391545141920446761068085021410641593307683789835890245742893445499979640006328437478744677860542795756228233600786106614746697160652732275426372733498483899191801166828903651654429762678499331154650496717550444154193895763885322782310356464176243870898302901836178137137606441798916850000921989714261898055670055311487365593864890844720238878749210644420260577786010273539127404846264862041179469339125240388013045304579174108936656724744710393479767134192945111837280640154429223335717162653783850474927313029534030528422632717498905676019477453518612458244238401906152283640377227895169253791612854576135070468798318059979075953338929430180364181488940360371075010119508380045539337809469355832006103482189454644540603333933926825339341561559515880438771743371428812854790617376533515518756812980697608649033293767461071836415363304418644868375035609355843539372935341521098557927565965998707251713870581959383661135017868487909554299567705716449959012574329001036654436917986573978692150336508680515437761256922433519801102256520900623397535789386703618890425473410780953372134626364027150950565272618842084111587569208688411462028254131007267626203396958279335522052301171079681463930657876196147580301235389881550294950750538600207603675266042926973580461917127996889528699155479995947498629781536151185365655412487928501707609658983776264845156977794828711355037984598673308143121601739309631948757065405799761082496951623409781514449895843263786765573070693494542510491420340632504114785537811319096453769547580179038630619063022685998089722391867545706807597822068787115186810347945775204325564503305593324264194657962873781341607015471659642570365328352241439730224230398264931296924750887231938593551513870706889209842034647622412098318452948453023102649495048939838943440753802762217580904344880268266432932662039725564854128066605090212266433523371193948069286435400684944269600722430619395064089859396855782517122003326360475468578478486876466620983713041861109307663239666251270211064367166307431673319688749873406001109443047903214012545609884093827330075309701271420655934259527846021452038903931707359978720551662002867648397525829071317346682077185884776080536704310961161619958102018229493459678570120103684203257583258028914292897697686892315577126590623004058936669389372247309013080749957814761358964736342592696280924996210960107783451224849784844556635887329344718466019168227798438400214309674998193303652321688144490068634080703014280032899503429895221033964742116705869909070337170186213294597488644024283562020398893071827725530661081220529417384531703006459594383183182468174902861392586993115229006903699602032440088397363794225906236972360479617902864872440085586848448349145456579991383122500190258449801349997485689511510263397645239732703146699933247104579166313081781036694769889755752276365018645341794093266343790159796280081228886338860405095403220169721640857393267885983369843024873771525748689055124697287296326832652784049649787835472616741936467586515097137833976966363059809087547109464912238577185120533565665791365978673520541445834234281956248131563012177430550609702469420914942060326675038947397505288161359755783530485274027587058514898900315392155836784778763641491588760187311137922685752367247982847443495758757784855061373319802738293206615992681321954165270826567904514507243580850944136023527645650275947063026493244781559553494902100058439414411200314473457362339473332004343008584076096635064412464789919885308096793018200583237615460180714995502022340140224908981855616588187007881562288416715419655258940701360685851934073904703294423953808666753559393283269520806926526672952018208399067002341344575807071677328330988502942978294479229314596050862694995133278118820386904083599013011797782149683507629801266110645748926289061165307567570966209363472177575897983673069170860911073565061977417303703815009666028518728868164636581830604339545299347316957454176895737771606172265554217209009610380244282042155319844294837656143781509351186876675243495893762886108764198911525315328485624178214684208786155312277514296902885225682255938851924078900687465532325369500612302100522118891901832305186049298190392726132885871463455082693452524305311965037729533221611225002941762912679703606319178848595923797786880616299485798946679558438397826533063359355996881670161052374937891294941142031987025008385582326462560503476562847665917345105528563080726457003385649461440264698216160596377172666145307889899042443921739237675493877961608638325335536595899929738702183365581773361058790372430675984481011442807813271814856876634964047169633687175052369951611461576602438428402700377417558447173269825069030997316357747474922334205297594414151898505202814140579892007843903813825163045086139426082263054397490429582787974769769490032350694861089463110842256434450671049084012338819274460242220338135670795334837484043599234304025972545603816680058223943359038711045551286000639710244554217008002667580543782330771433360283913667466570403220955134798030199744230802858889495610599824410835992706186861122103970117913370571239653861512700202761145687259394250868109752422962434040199677766867079608707062698864255293710469525869152507001200074210784491086137294593144527371669639148634794851878754769509319926147678738646270830494105817678279580979597647497151164561852163301764487808434099918641626001256733733044229376086806698272756159065995296845771906548546015070830922744290376248996612023225123464605797928517384870812677654940774791282813413969778771917984992471706562993818890717390062638392439917587062955925484095115630943061555928428715669282817933565664464653117713382670712501829362715371712803133406261587915225278394469825435868089464590382935533592625806841510908054663802291876156330396783097623242028788565684557106377142120143136125786986143563456621780104610832966130754248327606305431679565553995174186365600652860422367173782900506156677930313692694927988006274862926461258979565840256578561096240327523119345665605370145028077369490979378383293979034311045228387316380474541550468781710596507224037052379322245539943509200676989181743214890975240280609459371413838742369350922468484737807544079824494111718556060361964795200924754076703424473408894378605190708137842323667753463831420260773169799744196925880242619297296812577213899705608874527203057250646205564567728341602497603478590445532030148335121689054360236267956525533091795296536473928423839499529772708230591497967694327665139091122508048307602934529174533603089434166230314251460785649945907487601366170522004486640606390325501258737998808186321836831871673894732487094192298398103323324017895040161897196666194399145530447847765672125494285228963293808347654792437976852756060110209047323628160392634011903688146350999702930047476528642961608861364221429671084798274583383850664185716905797011219472309056909287089260817157997153413801556270912688275238407645590787166577400716825134574291577259801949955661325365994053053387458548726086299687781538350234567610862129565998567311043363428368834608164356691546571073640062941253748293385007911044241919500931104494497229158288386297735077999126020202015505447073383015602821255240694041918333846610756986915216104720677006999162663863342729981127600428036622471274175668190925771438559226020208501344954946552222835827293967884982221884058271252889613228103337395796378273049215637037001124596126531604240217409079404041691000075061624590316481702795959066869384119504779007819247957989310743093292362078333993797261604625455165332221320330438374657523331860799080463475028338610699155250958667269462435694965874658024096315675669119293460837382224054891346023388719635075044117177061888977311789105323336175844462628272407023880584798197051932824631423305669038812607269489728707105725258315191146554598382937655870105047215752208869483177074621870178171985656591703053201019720914864492918107508026440300707777442533474033935993369583164547459279607819849698188331816405184779652192363519900392798213051928535244904071704988096793101739253881689885092643737000864083880002570832587299809169087521908059086938738314511004969562772137624286259416701627376593149785596530778820630243622754872755612099170277089795873015758004857630100403278564094254937219618438286841310797013919086038129973777062499238175422018447875033915193506193626225125620457746854000685903090099893567426751211884092143575892689873370087205336801437499932325095047507442601884189496987058124708955260219733425874503794969333334413991684988765878430187505004455302407884233356868125603037884675516497853252982378046999208046505435930838799542840445027282094520663532276139566004184888821278204507460722254627252141000845784628663953145612549270202724625112719510676912696234361608230994158645578300986593448915277292214213619602395426683409468917444180137419371991769140155077103613831494988906083655648624552336385494662663181387719642573857754638989599908407938623072980237660086216714447964887753002380981921430312213697472036961018959010307620559389156540485241295626935088098235132513646353322731204606970105432187817383972199788642510091247362945479084307007199986275934140247581366687917075038889133448588688348875966155435748590684444262315331661550687530975317622798151771230509223408789654098737488181251319589167852057757343841719683481460991204673281303228143698448907061567518247024255837240265415400188106120696927483040687427591791399798081773228066953751329779858244091602440481512091623992297729519263993367964222390901780424736145768116336362523620616177668969485390581575144402467314430292770831959421721010054834270794586378316562117731122899430885555403827472048671503256004528029578130994336357380728181693438433931728730540248841100365414990804489481174483208378229074712264745912079463400895181970372358967759013057572746693032335042009561207684211247871703433658107212664891440821053988505447966363644327334509347027856707033028810905289338773771728067496109016234974703681787056262783042043747376452722288061150861483671412418171069374104429051926648736747829781242179747530231328843648767678040337965779178948724195586436038563099096368920418519246288097350832722032954690115626964192761205935209410018531494279149670179055800910276150594240381224333683468877780285451348464821446648534984063512744818633856216739901778508833101395543091707707632373686443026382380918424852660064267796445544585587792749553422492130566034590514021411140323795474714201796982212145248579802285798277968301598755351333601397898115619992747150768634838186179493724744065677033210438475654078891344157877294005456176182892098774261296240543468653318699601829162161954888386309604071714337828106688986657832354197424048728178896338456074858869096300748362079101489504911902832274879585005542703861013772478424068587573780570159338129463761042552935829642149081947191584916672835048639257220903643940214086604394117676106222796675182734159367760430796448545915436080532113251490720568336228227037344199467298894686032973252332385168075916653978145968084787839694270925090872783744254211433711630507620413365808241175792730475825323298022367247479436539859498128756100827503569464645690685185261921223118331243495568149818849325702549133640328974454613473810061203345093447818833083388660239959879763400790825920203913646202235428587331249994982301967022967023239577116281850381715266381046038625035146723667946629314603044889104640464960885361477670240149060753614714613908020113069357697271070879434603434617465543207384129558653782773445856924485888040875900821894550114758789469158350916232281820608346541931236657356714468805805828532855621401056858582705554489980283604927022193273832147464413514522013822182915417989138045333278227210984994679651705823447201271530674026949452635573558187463255073458535273047272932765028627007091941102767848535706141543959548354544772051863219419085024696210373468109453182599453120224461579287025966962062480831516518968194079708673415576546403427383284571709297695618051804444394167510823035245521893628472732438388487094064090789084669761404071681738590027486553457876990833988297964388650276186038618561888444451743750373519675524208591394271826019732111468935042955236194219342421502964368048253609457899194708657948352473797343057562981334880945347797154114258043954979863609330764785522438095013626597509221861048231742937834614034656279752416217894207826047749189706681564202923125471004104350580997726097425412709085805239715149465079749842197743761284190738142916066048977777445365257637483019342505459070422347857275320623384209533178420362113928830569660217145232422104292837670051601754008324455195238492576581592496196433843904572762339159765935612011701328934217431462078945528078136569566292199597254561261211741141818609973100326909059882813472089040633305123417987330842541275162571826371043191786857461009251730550874430310421818416686751077741810356138916186845709822491527095385822502467180117386019095920487456987060200210747282037740402182170183663823546328165287989539853290954980953171598542401274994169339489018556022992538596033954355163919165205532208020605004834477235595504890431790139254895429279569260929432931879508947851060189754020726577220301794227186708308281087447342815876297811049282829977848596252112945385123171030647477469417089711236678143575884520639507811318381880156272071954152908303552969774592856285283580582050973980306646073722858189065728817016870725341424179304480508417438016797207384250879216786289367299596517133543312593721734313260084173392560010712803458396075674409265249103718377606992378853788614008422510129332936487992412024418288949964397598168999166898295184930456613233098898090767645922931465771268483217758766488574446458238323935884907619253495435796926985971004399051450852183179337722469341371644782484688790700249267569944424729656438661923107222164294609495515044440737117410076623433812125241037389657017497318402204497473628248519683918542885360483641046480269537548461398582952217806080330784879375102604157826677002489948831256072649502427298619204082076135407005587016512872656008853121526249341841104844768175380858879479234656683058294120731463720343229212099551493082587038787997575691376427664672813091857716054880744023313261844057772633206673562633524202202369571530759511482566409737728583393674047609849022194908275042788060139301086733664831198658404481224901025868547481764455059982191544355496388276258220702444244892625829001879218916430887258742199610016840999033682523849520467910216163232567831016446470196640145682755956536998471464913264947473886268505268329040949906659524355945001853329487239533845760247293550490202306407436376535092397430849252720799210011336318764980593755607482256298878306956441870778893272881008679852087912447177790591897855236607595589068516364875535325634262524966496809665848910926218603910883313711367880437307444442300087928425758173556267982986613272930403498196861585024222752469663165353955633671036541660178404306500893087669968564490636950867920066305834666963887942021180558850426871805200115351800148112683568602916359718968733862896743820886904625697606685243442539193734032824756760581120914833450269043589914398938634161894069175827607745809912970496865206325994472088628934065777896283584432826056302366676641544177257418138789133130850878718802397422755275488875016779453651980446144075737012068759105591306577900515695516395234928196003930248959945709060673761249479039428700192212236548955427030131133369284762322188781139635744052625158385825591086729385925835930845686288216727966790389669603851462420411987077758177833767746046115225401471483179964130922821267856480223465744480830326268339783855244695753835888537171899018880698667409448772950691318383792441335340104435404255515025529716498999375852660293771729197652926255526406950359590573212649340805111382439110488946476942730179445867491990353598719306273696609813684092424221364221530457651854544403528269879662305701869685648966781610018472414302893125501577219220445331791471905224431021865054421984932477157124390702119892790891370015348185484802604893343115557790532772244466046398844080387075177695724590093900247532971738232680395841383407510644309589610948008770594677144678747512777179550189909902323290789258351769958240053335495436147927500762096214729708209627326066408821561875481425895454931468513498901319197133557597132780042706618315773561439519806132819156914414658758929637015964951440798890744549137364652021481823568434268349044548041452911521228773571755682860884568985186746263446802054546719639219375943773129218562832175922021948042033701314014985410768534940017521654010638714385349850750460647012047942116029324296887689479806695730463247129252922836300484645721758431054021343581166511104923753728776323328178949276318091930361762561738490068030069662292440873436996938969073301511131228555475026266723014821682686286964963903960272714507984839744854329415106990029450762255264805082120464344000456790086082607280661407340897213987979134436534884811554614224654317182156060316022187702360689581641799265496395364877907372611142809226345158770734719162225072506459574833460712935615406924095119463092602171489989929361987193252347504413498886174979636862989029195882304404140433269647222908032053666538292353890601022623708243310610623521500551576304181414257142741580417844619082924822166413262818245822041503115813993925921587445932671099518920934137773239058118840816873730809750700037086643512988820878503023950382496313128742586793711712604278816943624048829794345328207315625119066113349760467718553885671554259197902202116386647262055667105589106808882861110030535983368441676832492273820588183026847647970842008467921038371811085413139010031828768688484074486721448007655643104375656687482168117188532783456970509839451516757656974919901423375513761278519821861519107804480937492788830904407113910114771568745814108001667993548397753584493717404227647272146773805025038104971428040390260675928688280651190007906706139172430876893559129694357338071134797660093208653068780330908949471692899387908692094758975555341688552278175538911107188149833389938840971447715608207172661845948637437182628021125791069878938806386098086696398611302617093007248660084065258685136525179925787809243297024192100024356846750550502524528136137578677219828854614481997828350593051544473396418225800815917412657358553450241300005411148539699155480588774471260513167845547335736404334558500301584861687839612760888224370429034280220593018272445005610241065853915220724250963177822977982611337229559727029053668504570328902906829264567014450718344688547406106190954298798161774422239388170542174128729823540058074297067445149061480233935296049222802567125251251646916597823806807640830740477719100977375131068367483959231981315578588306813032886458426835233585143879736084667101435573727165053642984735046216842832557819003802825414432266153278680514973814328470556549033895153692137207011947963119929140918442884700547011934184602722860529218035138729907993136182363776283178864347091027973896854965140730334532919748523593543393900239169943176996562306010925465982644265485944263256966898542071338400807556185084413097323269858240308804290602859011036499940821273033115585653758459455564860698922062577564492363109458232673203249364824061942287924642810204244440841324257722326829031294343005475074168848197067489500672553898557685536595616399639345445770532003487334301867022873225143020993724479615621368168975582149996934834422828933300461513098990101401913548616206103697789079528400529299482677176030647392302427193132091790317524221996120641398510268520063434861994743319025973709081096298638066280005481938391446010478436595145006633832879512577984855474303237087438990275559104689341210770185723135656342037460538979341171485909022314799612294553023527248527538290107309692538111745865871931110903916401676303956136792370070166350956165411095261969891828912511209014902477148101267314187173767184299276106556569177239242737424784192395036395235760277632611116363144689271686097492062886376825275741029522689934947798287476287636642844769029195319633021985898687366193541493375102599776141483789875069019675458135688648400272302154763341273173365696732597278761353471182170927504415544348032560142027718989332775069006215734904072408679020017907846695964885214268094554765586578141831448893091671411624011506372074174424090220491739621930353601304442178630591424589881257650880992435458165928620276940632501445973847018127863465245824041142279124244454806440457653821274365646888313378630528213539861358376709581584185332554158308688751373070501418149190669069015951122713931335534994812889698002448076509808142038420866294243034883064144792388196695969626440797609201524229304952250436559406216733412921960012442815168456719535618108855728784179802380141030954527418396554312317938322014401128134504873053898684603597357540065368087039027975852359975050928672836314747703636412963589700594743671022514376984767025126110760339820536547795439861222462649679765212418587458154194735560140053352116859283298087446444091440110262355315219583708663483470783785976150497974432835210083486470503378020144267823327643399800317466529471831507875205559026461403455167080394479443971305798171981468908229769710122503468757182533095099401155524078930851103874282725861498763145428322606116478264641221885998242607169081691296568265812173699873844124000012502056517502052465243582666262521714026513271828893292091474467067395089647045948900556290356723198192478721030502082800870109150334846926340825380542723607805551283234621300366261986120383906658150795880772404833247856011468573216009864126064040190948101354033356109811769958379143204132149316418135547039414902245796706134559463481647389551553942301708531421025550890276363584978961580267976015527771627047841983654517141728999461486346177245076806378706331202632030955697752115619296689362675244827538699278177177327337698702640077649896157622548522838815954513969546667982972170381966017551879473680619287621522452124350876175086951581204632902497917845464649582110802474310058248310191191252168365186615157654055655947787132784594060152669624537603749642073940105756172644943569630533703290359576793042176341292538970927467469524181036539915676747617023434582844853184261939739460832695125072959415853966006644539944653829848694902146596422461372618451165246154951817774342791235415333364107369981772327015653357667661887933896124473118975129675241415602002085193503004425462150653643746352992819218172688623861663469313388790901145870192171458269907469264836200262278835081104523070351864965116940204429789280723055310603957371557483663995270680920183251796544118290397428272348606315775238355880557389847776897583765626093329056343098531626048080238351228374467294718494286656147180114327438737019951337555532884507380811227660911173925516647039821775332072324669332399302155726120242957953470464189528859047195820398382124665633324295112225847908090087093685535076166288049266531124896818303632471546709189654161355119753255559556047382258118372137388720096025885202675411461932595844315159868850213258140174699201742192354860247365180737212890756609865808833987891227603547286134293758226766787422896230172430097564535827969247328212086135672288922959047386563339020408534847976404010044751357666275990728442980428531627593490790759872454532483134723954718275686993891742542147839236374083500565921946527860535575607813591153952645885807157520993708552569523297623183569614205141992818688855313390265276263159442110131987641759007701109633202229856341395942818956751555806203457323223006384526459286178780643406574786156129563894669005809967782507010147420941039492372650564398200473630844695787777393916967476947341088985708599388646403316165567027051968311557964296748584204266431673934726148068940548021810903690847787254214767299150180662288819369171859589348816598610659914716104622478468663119375441947538186610530072797353923262444878282280023063653589017404389481090240262289827637348119137813815433166837934416830326408312873017514645682704345371925963583420558521763843856410541327261782392657688967928955054017554262982091747543985683703999150581325190862319818467160798395212183951122788277352958238023637904666111677670003595409446274482393084639536366543194509681767057063859530631280338662330828097219435759675892031910036223750549759721596881082741041303895703696838457635327361930292442382870022143736028508099787872245461632053290805002224465902202634517446598873184278829847115429945200930732106233053009942664224994138191316529604594823397564022638775552624195325487314367678540069582023881667006372875278103600475417488818058630550867515180810003785985369924123447124862918107385901195090922801742500034194078168791457265641942970723245915345254078849858503213489227159484075947998597552064110413045049142998783158858459005910688209198954726351727171640038812267231102822224027290488837530727345271937990774283811680323970283994763091758553279610760980453100647435650861923775382259307745491339343183592732771220213880527560182854365760693029726502341681082871773506118205690353714546021628775771274750540405413878046101815162319612463123313259272607900019235325819527452782478456447220456545191765008361288269717800631684859395194197985182384088135256501518600588928155246004334270790114159948630791123173976371623671205729638536920153543820345581707327032455003235373560317798414634107146262365843440051422626300371669610615182104123201000488295097219730617530524986110828737714235111103909197153094694749575935729436580876059573587572192018666538963370071087233971919216745529363090883654790767455907464517294181515425796206252506376055737081976902632781860846002121272652626641816365829327246426344037983206757273150564071499264135698947378035092841052259866083769811226752144408466680499739788518609101984015719843169621529107685549062522916884691677555312354175626635304859837987845377381943332937150470452960730684176290562363072458385551213010362504162462778520649866153333624788007156019118751382410212258870146125445537295120036233761676672185530067556931048656844596515923131186767980434507294045370023560047526107980231354008880940221421930742870081001845813637111461964870071381566142078292505256263455574964297971725457945396898413866081360225133444140169139540381780117908027538797303778693507280477012687075402451895046891614873504857168207872751466547011227512285925409563676499194711372508663125051176491649619795727224105974982745988092954376810653620485151498749081167400560496608168423325217309913983783767155740037443055123546741967904262763742950565588860395819170822352469661565250832654581209526962644357419205285182558716416037715955821224242152832158544014178469973393199771902354275838444658318677189503899698592841867673085223114475118058710974346793980969537399102692133642744168314049574643030252982866995762916726941259426044872099720460785854312495037129743598379298855814953500958451414878911711249917218746215672569890646163569271860341498861838108672727322097572534546764593235001806710925418328945855195958215833020870047603203645811066534731782801738668490652262726626237445636873578334983041074798983786736485669673066017261381836349864547771854658531038005297975026554601695801868730573744470169343425691595190420448529760528016063767445551919603086723085540267824564347119036076627028236283669560029156804932757658120636919863517753377992000213804481867473535115970867063402157010745601978294685740573259874111379082649088951144714543680708841527754358602448803829413380903761098705466858383480324112531278860339975898167498200154585477195316719046923807341125764660472933680437739106588796059061955467717728580173221287801458358669087767037614284815602192930319017123885063413421228414056038041153919512690103820320941519624135855190600830925983698144128809409787887006927064031580967694619903158555438708333328364547263119391379175436453419910593745733262779114601841395228518434271931035034813467153860176656944182276760658198852990062630001846420869266088258052392571289164731847783950807108452581377447218119416910274092256362189957574841590384663799788804532812365706583633333648650689291904166003205445160129705157146608555069808860311978204045005500459191667825223214825404153701347559883402084731476814106465498754360056924897078638403360726646281620668312117192997677418139347623876631124618691694430163280274539033083350572671452684964182752931699141565304826178436869522909848730791940334800004861229961507049760424905569475597392527594363799964763304798612388515403493389742373857827352027959715781786246409660389406777097270206318875805993614988539305962644924953604960802159979991849296399954827381232062192114356004445394841028908732239761291337304293446463296365270724609741438888662154520486654045213322879596912350925383134059879756909516880258092681710341704670278625735196587406187117474143648525142006795240548817196319243712534483481917761393393903746543681831620404004596780139529991045381834684333442856348854035037911551263038754202553392393251034164399052120048812665040191617475472705554518724104360310558615782826130128657441940518773255733630206581782593272046936985559440940062695915581311665807040290998931755277374122447533792868761679368474926176297345227636487048640577357045635415145141429052544345915832237268667813696949750188839260343126486130375078720619270279324630180275790326133128359392670030910728981514703374565292760415518157740567990829162664272048717345162661411318198878102596914437449627289814753005372800395227473561609352573827929827023450451210957293740713677082105365371554973572282456368015302863431474226142155018029426201670443008081727808831934292612885957520288206252796988969934983175032533657498708699577425553688643441077711202157891595254400075597889836347103758662084165402306415655509512133761474794990985918186899308395082567689836722552924456335264271915360993152744828037095534326690508701531462858495415244676368301403287493978758130060347162070438990181302545643984182432214651550951007173085925548714364508152962157570716938015749388718362496414778908428630985180506568028732023153413470254288895297939836970940996785580814817710504601750221639136657864226741129307526409068864441647236601791605821528767108462254995745906516752477826503172235222594122070978188456231033448326620108346489965577920318125732691275019179111851367180312634521015017988443524701489565824640121090959004806910346842101705991796844930577620881674396987622156105701594012406034513068592025973950637175539820631151906106596786743008703836302013539328583073668100465275440224462126523235338292942081133846297459274265662219471771694780154273910928549353660531531553471285508393522630332730669130655742643233496115394819274524067962874736511170586782381593173283412509169810436672862746753830695747808415976790726907326441823660396163095800642599886362490717323369432771644500125582993660264295808298169824757851730877353270783689282834277506785225625695664604936120467733809008024047026890677417885835296575998104642530134840865240931700371479841560112516920006029629142586244083482427983062945701371196270331770769641331509678192678962971560797211311091771059895918291363980713827229246172749508835895401563318041874686917099858410653803620604099711421194661185499182253654815790633199046440330841293696164119039043830292666076152338335289456254415210061387728765422626217275210017870345090060580651731431386971625758705644196219977807557283900150083651098313374844265235465085111548092549865949566421437437104929640434817427942360694975476169260456369299186526834677043869370292480822725834507827848957665119502455847666393450010929212139148482482757147380089263933121561890148248425305534314210871904112351820957144907922303859074667880577562728990048492694709955088967938138844237052297317852696707608372580377507171096823742031942670832160924271413215838510823844752189040915101946814478312128531378662816656842532240641564065672443865686153400572395697534778493983787423818926779004965166835402162363286711947554555969578920537255226805238692758645626906307063997059778174345900548280672846736466403668604431687853348565995823719066454451902859182174082859439144173836627638798185725122465535864865717196967565256963040010938992219575899957949434304779987889874331449516651310975230613446568091502252169839444885316108307568395248044363312773703535136510192782704307934808984760490363856650200022013352360066699360910826506551249027046794196098937228762586825593244444076703022683923523389944264641562441344470769042245520036395051276044350109363969060534433092613899418642708145897934571220246163771028609076322885447138497246515966552815147269151003710569507263981880006214582164344588601418717388544677123217116887323745730022279996684953981577105635314219031399648824525681659710552072921171491279511778094677619584527116764875954863580873835157444121952478507869936599691689116033008755654842899432823836682978982250630791094990759550401007110809972089730099224102056935127767534245882933677518913420390902428018813407337522721854552665985320226209934233339287376512036645436448615323216203328595148643135337794435744576704114411703684537926259126123768649983479644176397302225071528064341729896346844781867905538906210081452213465995748768954881925071547669005982410203221293387660718052453329053836400743047901700443381569998943364005557014947281396413395965350634562625323007185256728128439282304914219555544872532904684574647287780825369181851121650874781061563380268837181806772155982533757529675808591095419642483613150989514950379016471433452454545883101660314227648530599036306483175211697200053660030346362585968225848888855113367116698865284161338858889632460715193249996364680904895373393189671619697782442728873837031141611020572215256251190222104379876868452119953167873922700975186563069749467854681460639039634062366436971484112951875398718408704047495848045978659440055639933527206184523556756040468926601535655886934195790891182053060341424710930403756818232119237765221859921655712135066369562627883120001185808779073923333811825087139973887991675654572854982250314961926254945041180921695638662769618997519370121272466568688325154953740927787530691581463993850697485319122947680949981807173586564803826112017121298585649554211238945355335138880139137083109395549729370966565474709614948319491071800166472562777129791887185708334079913119066891389396850311822139342429099742531036436298052362225040563143773106159749937000825073558760937798049621345323269806552879930943724332561266965626461185122653098430403086871860186558255722137728144528605406002060253091530215283415193622256019137232488121077305559943623813715389144278701110002077693810982610834479588137153454130302196085145232046306606808444452986884043464905270840678724387893281818766409149193233925691702815928409046735698535957583565289198293496905090123735304978156205263193184775237102571478388354830646475619907549453270893439284954344671933723308655731345104047962060645646596079071530817081067771086831051668252121081499608840338251233041059026716914390779301000962226860437964866391422901186265029791486925595900184977879552469516560150501366520481304521669917150820800530479337978342078688673875322731697850916091120010121201372954633708973879030914471699983374985824302315875901808603149116615800543822659176863350551030826264262810239562613050045244259354777941560342598349753436018310124038873153102120365752334798967001176389706354337180994804057792133098181780379978879580392732871340911339756963589162393437987291028239470008458147323466214535332950299598363806202900667506561717691403742313631926900872207924138642125145462512332867319817974826913457207172659585885296371875034414728193365984831427401038185387269007957873177964715894694068288402661890756942291234810009918512267820618265245675036784785530262652632820885781683727282274568875286084403290669922857087220666625289803571060486630320519444702924642449070611340050659306733755067902855816503284002979825280970468521984246066602391478344114853154467721709215340069833967754275094439570287042984363457696079226646178594813875975978939974781010085302135336009181125592132165458963869225341359961529025745348486765855547697433373588093487268831626168613366242381900247875789134012639905326731713468036783090282509241547540010680018962390335298558340861482326450795868742764064394344927255112324443568192264017701579807900802802901195207872160241519199086254760044329213721732500374913258622084332682179338046178894819860744008513942877560244953301219599740800566100754215360966254087198619840773699485834570934669062277960106375804298284310180555623565716211330503083988073920379100591747146158358431941904606658526681009500154214451899554793258901988083442919571545740913899639704888867686339592324873497100580420933314360285378745493589652529487156563863346798168525066995284279671098035814881581922768660715005777770035573762081384953357587087803007426422547437080146119056491810469060343734567903148870646847525806969689109615660515034107490789509349755986687347656385104263048454685219101863704213244879042374281134229935677460399897233339185920280493783589181198158655956351537632401255048706316645918565016826320353739550771242859132269663770432391034745373224111957961922389628302278541868386718680488240891102521378098686072676210546968713018451085431247081110332434549368695564826746083039173342486260099467624456807976772918552801769901887473756806352050494046881271339733475363635129650705062467814879489187414420555522845447566502377562724676703046733829912263088166957194242973260170834130353550272877522505743356760141577453769701415478277580905684029529610267728572607888915117718147283520927770315152423371529441698158871340682431331074930868443886309150031918773863236527712516360559528750203057869271990674252375207128142209503334729027206081053763099458454739550981413036622086820046199899186485462227839531419811658296832589172321487493897879548806836273261422529826885899250610381575192344329095145505258873884926908714029874159719138671093459277706558657722811165111808064192344988217558452196455037011925537110033197523715462808888835940567410979017761120099272367022344199178286864932974848472158820300400654038748536659145165706479726573904802335766050798532357365752141602324398487514305019735461636263988264680852493199094039455632625705644919427512276592206256958739840791058748730141422572495645824713230116215235994161146767045418660450326574818404199906740832642303725299254395642473810825266910369648060737621001596603853172083199480216588374589363603559461535050203728030963934585233636018834143949955334755515769748821175087506233073225402852784392324661427397555094085716808942479586899178945342702594132880864117163371413088284592908606697211210400593991732891858978799820408548922812145552067969891004684915357696349481286790808895370464477720904959389180796313539392321636058903637390410526990868567009598427880331526467287189585475132143828039669075209246808624901956944059202057521124503832404615719258928650110167120842197217385441097871358911369461616064754034457972281249759386970313938395021918247010808375623318810569197729747617066037899350609756825553929234289606887159141147548558182677547407696413286417492411782612701926977332022516460353946113895765940470828383974558576889397730791764753341177584110499882478792697814754286125658458131311474127720481468470398094880011885144974174718503610487438561270098679073363264296646477155454810098273876393033270508524009560392822850829878142369465702184609127195756416194271193450973507653456840780702839550693251952736941160079417977967335641309984833027404153757066037977991857561949561035292206227793408989007103636706270709237681645792720794517390754120996862332036426343796716601876126040416882211273283893081252366791171385308372572595933788965151949650389251495135445292451157897647326493882346205975196829908682302898141815121005266114604544776250489230018857188502213932178642491786448016154039572309508639756681846465673026512613255524094632375130964051932711745285031530308687145716991169667230224755965877034909391938339860862659615856055360251274714974792004030335803773568471672990850035881438716796029000019448253743848798833574360098716519305585863780568184032639440020005642156818951762332660146703880850348429476481314810666231172504531493298316236596583684849914350059707057456189312236676308832851107011501676626394019735420896372394361251041985681938192951720005312807083974460536772610968694057940300092554443801824696637573645454141995133077208082307363282259700935054203418651251614931583322277783876817943941247186147154957393673744455618812592806067721019397215430057670226536940177247278401846517627760527993593138602060553971236446895387081534682183920644443026328528266529095721859111247685736798457014695657892884244225691528535297932461002973998795479900202189386735885168534273578321926488375209832527144700271525079096421386703415231892023048904768602990747326256636543048123669677249579148080319947717363512733154315658773259795641662991505402910070144024956852253495228337842985795335091708313100019452411021118668486690798240917569097716577695951205013330521797216705537896880325007581984247238709690612642172200268811010595605237142225874627428616380785080746003051036339190449956174923456881734470388971793948650525520939505846122976994354118899894940504950662669205620343936944975311166078204901612783640329172805436567630007303813044955463069368587254994188952894424795230354352372856224189409652697432673298625762882861935787814170293096328998313826755899382214596745728575877081990277333324234117186653286869316578497398756084373539669570887178501487938948826553316480457617883130960120071208939944378926045552777439074571689368660082837548908410536570651323970857182531204253013090076210113816032868313318742945014567128409358648000481349360811087404572157723284769647678520507531688658676993633618203795566667596578277563693918949082700223819103412756205520206820935195911922997930742156096155094159481180968774539508802564116995761373127565467914595576652856327211822851796111508003292811007906385084838536904333523369381828110674976781080564336070158104381611952479686562362419681638973898865345635405136418374176406800344046222251185861341532405726803203542376400150968889725087144282596499072472147703965082522775449705007011084934079445516974038207208130188289870869471970560660617429734874009810507350660842373764424593693974544407055719968893898882112826813688490166586166293535185313261129788776683494864312836733120982820549037509573467211473686268153978045184422569863206632788304547601299221673731266972023465943354810384211065316668233703618370897095943659782499112651036106389425105006289612773943710899259848333528611738433084890463302517581417682069682747315863338858810073820718977868838226808211533604671246542736688412295590997589262025008445109540828390221984804477256074986136803649734527873069428130061075718627674105606010561869309411579326258860387394803185597379378372889956980695610897408293271716884353468816899770380703947242294242559541911382914430301281893138652500137745273176188364928467459189824764816459559363132354291695188353443810388174112408734635600184330533689290889707612826999901083205402995558961832628629454729832111083843387099627744474504214162888324723276425986859975106336374932431199010652898233627023887498109060978859706568330858778231387166190524281633402853750395201480330414905385633460324440918905235569252700449615850638988393323553315391129306085098938475759981962238980561748780600788078360415078316978228345475399733346848708229695578570211910879824154576825220319138887123091145960763625192355153350705727999598209663854251715251346629020854646717126764947476308786658940835007836502763769510741381809546972649303637421776169676038609919926366123756791999325535059019756403250547610208672752855757283858884530021003313755390179728605646386302052215291042162032499543764641208450422426294076310125195652055634734017223695814679560152682808570528394650783351772972836710661032658118512080763665268303394278053505328333857273565436572943382180228321184124314436574654968644568419131830237031023448150854248701431161801832854925010780035568825058866465209293484906438281300570128645681702304633863892264611231664142311844094983365293788181964165583045461331255717215820063946564248190195125794380349281480720103478779219692215925306506029712458535970544531180861905238241260457645093899997602531591535581758509958146571710050289699181437209768174919361040859354400197424548869690404137917759056916487545927745046812540840046371281773518116805526398557521318353305313263964170224556588337159668928060426617042019826690529925455926206655870807506823144855494102315793395216724476795918170976151289532057067325624205165906416989933414060131291346643249182019224400105178020010759357868451584629217454691056940098698785227297722677384627446503878985371340683355821974949642630085899583360780070859763276402934871851674930564394201231045126949220129847391985160193945141392332374254405000168810509138437405295286613276864059484132859555341980245925289057481891115948059146652544249520199077828193798395750108227791921084663809213209618356078417524099711866242744737738621214071261789129873976194092678565833869641998860389767238496946849573645373482745483970430889240041771890778755016667246894011945969530963973619729127991615221537300663636984857769595302571930271346796300272640657172966218361880356680005503083192477405739108583852164514439035246403358178444869126998686974560262902119939815627718439105707217624320452095633754525745899520164879261210571833851213208065406233152928998371388829626278053202003694080243626545502156382089073081369213560090622384691711393663663285431592494390664756645615026521388084148891963816564861279179159867915289412789796411663157749484322529748939612678169082570108948969456155428912936058763702233941778432106180215720386321391312781720109809315946163345851137737810674753007665951047465991093018042040786744547396885846252848805406818037838084207995721547606998719109524777131591422094389784686023291725715281714193628773139699028864009892982334548462415606948232803556487125257855342425283457471178562712718496490044788832395676909952383194285624969106132934400202763713724621244673638071787579748073300266583957379590008382258024202859211576805364799627397134793996693628881612215797625548733021453988164548406827104018663403843614082697756849505348720025656087756345323474074604269378780832758842427127095872624964073534535343890048834843099467701298356908205560010930325593227215009364335334556935621242780207343323360521809546164891595342359976915312410058963849060112091754913916639116256894186313491344934159121870283090782009088717651601202664585229091757143600585742679550894114853433324788542379946912196149132513404735374410862203249834490673515043775203007647992463047045958439467267985731664016853819513841926301420240856021008939580395864249752246795231019667285042649727915816817780371270457720633070078620092388834764341723931008075340349118023107782126663510850273403264161032455970880747762540597117181885426464156388374612429136684509066415258300365656969861138757958711128882374717062877837576442991990764911158668635273517375895384110924189780634878130366984470236479322661287526997045226106892748987252349868722029644053802846693881864098703345168468643056568821483007919336995327438189987283883261484803880998824630638785615881719201251963107577169203648645596932821299905993811742508134069189264390789523064501661136773452224742975147177864443346059459194767904571668224500159409501367166618340004919974749896086103495368643601492640012101661794124888231422285200455942292356018667633057459974976674347845971844830014453666377934667806402709690036317140779290016583816537213726995289208710207455913360374854377872229032132678981015313122624529773161791868617852170176353553217601933318519920396201253885112156853123245503770172062111492915046000154432373225397693093795205681104040889310082541012359279786952114952397698154272285315398162205018917376639337575116137020330984541638394881533601983587821614066927124832106543594918067209608026842960972293870474895327254872750156051456298811554499992189292762963845742944838140740884566859802277755673230859906269853266783060916663029224839232242342262553598589620017285203873415357777002173650257034861153707408899951539048758886856652966826906286459026918258174355464829277633966181972546928763596723250813025881515589057902598808225938565211596382137934411422181708148265404818877961128822379759322980136412342092246038634385378464936925050958912998316198409100998779167539920716180609729745543006435133696697307588640184939157184997565754827996079408875506324612723331937615670180668455036959595990813936621594819525104196392945276604588571056350079199745868065549128172731450169822868772387025974109898730762336399889337857656945315793148066371323626515537553040736223276480350496969109367603373584610220614908929271557497681604040639609735801247957903091148003512720948620738389080650329532503490285236921998694522322144505831440143062451524440793359967266346723178478880729541391444457159364713620546292151766665941171925836239801909911728377446421457559445677449426695222705936937418633685675609981059369097306320022247580085823931154132984499792911944071925660943251543715850472500433722825010961482574242985830204797421434992138414968398670150145035514754556011252136427109515338506412084790927006101556851063172632140144971835695644389472321310736025239306969627353347810229403812517801572851132259101766142378160933692022372061577318339198911246447248764952387656201433632321570628143714020257295961122280741494279500197193619468421801702223411617444103751630810042946489713056592018485153138927952064766427381805040537091001746418427803208904133080779951728130213357275788408454135637238196055252936559411127328294352279116621504462628136056452364042095128405166132502891229600851375319594452780552815672641741812425748392394230555732974311639879317556412186623327529218280176672419033378058461817897097114592323394091750905922683299157240762925844447131246224850153244436198851330232805300236368494635569157248519253499712119366232021440917588919304144476559019564119666165710638293725449876037786206556877270232505201837139920275248511355976957680571181486361413559652568200150758592667034676892654817477369958354404492800218698322750890376604611527495340540126269973345520376600387532078108465731042180397098079909042369747143365528888749070532489025857375959486851585907829088098127386946026933052685105749048202381011985201560209389997636128236257145079756239775513603579459597242402215115981369946415055310547573887031327458425754576677740064641254053770474979588591162455032032793438037680959202405675969392806198649815408143053161491031564006995548886655714110413434597363430484205099606667604744603607559394079061859455710823805101803312507797636903907854884464624053906470771396129071771095296633990830248574749593851095038559402268462342850112161579285816753110570788179829720835476139260229248743404765629262580251618022938302356585976992655433816330313802713699947277707306763016800213529795187400691551993519244427249105186295488130969895336310446751100025293748588814187047962898713813139632567386448688335708113928835719949461550924271504006284892406021488624488160948157507949079127767921293242274063183768820711515944026059064745974766560153882467901810110962916457848294801732393891928467558865281555183676428588191312531968885305220853876505562698060315517735994617540665280662209606724983298919732922259609900791119494785458320238485602612013972843758285678264473569709826542276831757310347996780595536191531645505676289080365858163521912290257173679014024395989865376754309770340106960575066470008816006576569396140767758959847301972597949228623811292473671799048568511550089507504568747766230064139919369351104094141558436348028376988417975408740768378967178929299779354366386826650933650552545374032353397207851283505898977389434351408581778856905013949998554983531312124439024911541674018884536397447723477105190256322792599740931882087162830878350110550664131929197891665843682621018618304360169941506833246813074928179133051288206616702958776931592736924339242239275017703107812577936951296649076868750067533115929726644888915263528541849240576472408576399186013083306279660217967501544167638957454436832303222340128456819379165863754355418285352768277061670467464202915173243441970930166072930828240324266753747878295497510861922877071300766597765419949600472406921754627957410166834807514253994382816693656567456743408069906249503721591843766483684037260582154632233412349891664380738489420173799810755203235704272747066785895729883407574355777848227979268902076543819242418383558871927550451501223973951712334213813539178680066162611922137552588336638470769162309402249477143354445397383406973972590547818661508440164534569731727378296250823710049741034492139444446585351631175491718084862741552331431349487579428024773694900544428883656297555901234537612470114483480782220197403019426134738819197380928415415691913169884344426709511917514796555496861078426648431847331757241948212856065485863586774957410724986183661683850906947196458615217084964647796065743499637949743157768206066333398716017931108090503498045489985360355036063203523811551939807614992722651656184460171156568395668160392181563427221034927916217282868753638474974384520093820748098729386203424085785791078554563656250144026226893570930090590045877097012132101685288561844414196203088700686826434235812424298435362741421773501618927224078349134122043439483526167231191106759339373159965848852489247402236489528619148634192806413219178418566678998096074894067984641369447338896219056044846688339564929349918655858872538617169303963767184797128112048859290215235212757999043417642781531023207052976983730795012769140266038402785246025662073708360840024008548305972598254401847521663172666333179811720155284605413032549770037017331194035207073028063801381427669652871596291862245708037621367672648684831519951934172301184366001752705029398054628108507131153974292722440595069538044625506643482876509620277589108852484459398777843655421096861842307530951172440928724666559380813323237586884400566496831430880831946541770411282456046700238265270910213324727014679641254066204445792000545902877220978033723962178390347174047473539906563505083565002485504149261662257728277185521841223106603367826532599934154087735391498603115585166924845396449906757895355327560718210780687535051080778046683434939847857519507597825427018059478492443920675343543380548416013158646823139773133286434633194373730916757673096016036530099395280457667676325262765922577991095793896167991557237433140584972404060745334204233846503754972861644788297513305821658063165450842913501653412329994255564657400421217421934878419243564094269107065172561523867172016027934932256798519469844413617484761714878754077775686660340392051346552239880052846786678588659204217143500971587350472306984687511688802929597434532012606648674726415422217250942038905815275342567633397904919488418550894815912458368030478091700335893475999699335797723400816205463139172675893314979927874293622440065168158598672112323329024386891664450397517494925139833553797117356726224222087932150673198147884745956993637051918856664196514912545368901885383580116495493698686729293700494242824248265809263799348135744413203514225991847742541564232836083936501559013166586593580035922593684706477865787394466788658729017137514805821888939693844259989329267103951161261922513341896193115251839084591434403976658713744734519328551168631418902671276043662439670681490236314000494073472848521700585077625852791818571717678627698374264852409091074014925288833101831841659949400433568330274473103695757081346879984095148720790358969575764193480655055959565023405763945549975326419855498505727576713085029845271403317925990036230486120684769890278699923498216192824664827791142223536442055890814800905189520218374911405285368606936086638119533003165418844718253038144100434335759311354646075965286803369455424334920693206210438353357425184678369302873517372930031245422564315847040554004313066235354186987331535434552524595038967822650860653059852845886805546392716945870430362685994664075709821819045477085348194943221006455181287544940416285428560017999732931480231402834190960063810917446017596506947531426388336846884617456150466118421285096808915683621515711587584172486507069873455924556567840358291419883834208032171136232776627823787630736728030184164965379663405874454057093126391678538426885904019825514258804488608467475292646443910409816636299065737951335607279887637976931166152588198921730944136831316956876134166575967899705941724728018161649546357771332484770306697023928728143598472416426812514971509342002945825312949487341112579048308268725474862194850268957569815245893938745245873344496136271150179526177066274720098622179575050474586686575653869009392666573192429128055580779227141810266514206109279991511678995290169829696432050309237337159459410603597756458197216113276111075244229979009833922974866311430531955055855327099890349262927475220304288583105451135005479187374268633236880366857774205121406506852288607164631700878986919058681891331949000025774402740158715315008970386907751035447771261554401303115580279078099381450296984922898380857419595835257045433782476136444398985947806466808434809131356647642879984124043547808621881457560038160088383014792137316375184244576675930491655502042646614932587933221838062820546564646851655445027904016237843826768167201735658698400363229181195979577063262567707309528281278979222028445416268389756463024709471551386695617458374677525054720227046144483513014987318973700564452879268179971211373637964823979406919709547613930847146182295231648571618486824666236308625804459950341096678308723059207411723124454493192207296943252579530876150620662731857915646606872249340881990655458477906803810378109916178953172663072747502957570745037400298179135398391767828251685125185768554044144960666969615053304423069962589359667828106215875970380871086661286592162651018722085294960701272813037225355616626602667520016826113275092176317399532394410730991180008105922570000892514103052346847272456406454094517548915439741967130409515210448705733685352309173318760417789522827386888782888574742746621054712900167055925517942190740261987390460175039422944462641187929572859107257607636424989596733734484361264587563205031820140483207379760208748471819233630955620405414061340806263961412866881300145214978528398768186294422519217617720093544802449197137655899038521044564276136444244421789984246838970209444012570639561805387379897290439112835327156151975974670271016754666645081930300476263745204825452038547647084846871444935024319378028460473026434743146936602975423777148644867399436112190908148139275255655337783641829493595097712107432036488649246852557187944675070202909245307944464786314047868559508419542500530954899120824520823617490473848902657258488208202152427449849416295212787988155036058752266638978415589045475694704790428179607027901762346444517870694868376802350856449513530380661248480792723015291285399552171447902628209619235100818205129790045914469429139865003033855637544273348893280088102928864553194353310203249556062607904858833476588071366116424259797170031334616652400565353475690837908578840739919832817880385435887020612658671873455281916662833033641432290487181398239356613304774691580227528091873135400713217698603123114920682085143162800976289020398793942435682062800623488490158313206607506790208441881473318233692626040766320052073136967889383358986592023707372447513538091781817741775668859225160314619127630165602245417513767317725586401049265838771154633775359691625843062072399930303583503884023004729266460362268172336107417231343580741427388897553676181914515524137855278244891565813427107387156757097405858464648920301691949682333257416879884031489753031357227611221399264105734020894265768779809346374844665598106037991785199147288680886763633709462731434461786656920649417717991750012162079556406184918307222484283934544751134126166117288059203958335140059257883916037276785253024578478456467289845121475923721368144413952971811129388624042455514208538571792130404563239912682313076364674598499374786033760422525306018207722887961106730064469402075240556143320965899495221752102628921500331000791368894199207976514498101891495545969717692820588013955938211583182410382624663514709267780502736635362743272893680675373004535482827011266794809569097228377503655007186128042865791233424285549067728091541035163768028466909029492958311881064180360927344370924870707041123002590451236072961415150879078600930943157023724076204477205792867811122221861195249655793146798031075523632094633942576382472338695481977071925816741078129311183509514205988657925456961021320261100204706640499552650521140384914989748549592900906490335038313807832426109930479912565898162973567685715347940898370137338904058635070046896913069860416366842265172356334792386003452967489956994956069773491880726238643089834268201540249792235641151566987202015009053149067593429875897178552994074173429972204568249992232448273044552391403012213806518346458612584869607501222462752394405902107795262163665872960612897258183868892821622914433020822025231498761802159578317609497321373961077619272082324914819411266679841238299749059196049702399133951582698098261118368014136841066553008278409460970416881511796750831078593756320744561923664952832521625172249056226412280947397503220214968987697953722807270943196450080027045837700305779315615927911982444633249035316308187016379419370357844428667028554419488278046499622423263476753306376203342511329644679240880276167913367756643118502314033630264207565331731099549099251134381486263141430375546081483231952127464002175824947687785672283935292333791221465414027736950917506969563778424015550611717324816880899847379818011438857167596251144906538188128986028540208458470413841737799399372723436219490359465994092633485639650881366741396975694587799990231772192751411112744542174089350370818885973568044850854062198952380786126684119281747649373390576757494948628117447604498316988393632835316679591411345989673487232420297766833084142069664045005768385338161954224123288627627550527592161198538137545942814426554641853796345197664394706501101446790816725985651702940965495483698672348856081687975142693247300402711199089578230353570714522539502448750252206866923757506266686396537305687685621699708767744484402425066392284635742593946481110535925851572057261775998005594661291922813009165161808395100693520021659202238862414181874940740589653033525291211916317012665389890224539561155737772049263070142711708670938352471881042215002813837508361143882106446348020717319988643944566551983113603680757480680861102624776743898315787965690856937770624903851103445256641310093263051474542261877994523061341863625632033518135439532819297226918209396279025627883276614843674948366126472888242716650723232618694410830566635130058065444226085799126608056727433402913789925872977898982489942088140868901678892609072126352080209969351778366881209485788525553891695316654368022055138354228793131726534025950948080710466099829969481390363837008536066745457060465280465210732136747940618921222114879909423758082008026291123914174776270956319662866860920831617639481082294916656094343860256289069064767320456776376161178147298763686045058139249241189736558546343028428875841474169574161923434533113038673745920207604519318929233808099890410391064266694089148224358284385068628631559767886099190307287291771739346504833059544237203839685758480355238385726344133430310837937367256498848059516492046549817085827026867178224938055827186414821699072919603989950245342820354850741706614093629105045556502449847397795031632350735066403360475931014371214670552962537002328596659186902429351489156671978539492996598330377746129835631783518783125564342069053483842034545621563259915754222509139524089377132923045088225537178867699727021312298735891745519388143892494406340603530843159089364775650029051098572977610025677994333954845949675919974121877866051998157116707672453320072559202228238358711247048296836962709303670598517824295600054314807635053880578888222547349754348512038796897859314081671546490761667624128521234819817294402840151261438780538043514111363992217519356027921677745035241030948540655675417908535345144862008432413331746214400658225736030601011682689856268513767886312229335936183100788205227862128328547777090042492156881339908235575582350465869209723802756844058759439950892575750579797379919496213083367047263150834633363817505441347624088497810345512986559769235056553064690372705902787097501292181364275895795003814005831637456045817274308275562259709140966679127462317667685196473726692634288750999571016792579642656446922470779789536873127289173991892847255497726273639151065706228495425136526672252618105019534523064568762743532456536047557358963046601132603755541684146534433970980007942266685717003655949078082508620425026184015910887741510956929920703042078988591747663112651596800157174641514732090702306800924709137674022133285855228704434426321353782744176015561918700854690847925247303360421843397590136907168517463599269843021962569760246432618535626022667122972791888620902594969653063540822947981583995230330024025715607895301359642944132253169905158305518977285729866247773200078788250710360797017905771093879364975506845566187699756955862943081433896962128992433457765870617252213277462862677291695171934901375999408828675101833731197909364815165624124544320436392804566525846218091484708420793680016854189934144653174878464892589463284666314139190426889194450695087170217613783719652356908048907771750427795690078205697538078979612293839263756989799544508858584833418215605707102005869717058801482760979855226637786194234365396040835655113023818566844351083987572748028729958146263169169387272408625981817933586137060344629961359184587016438055340466004239387143371909688001344746572195058615395058666464274049714976960290381526741533018264172777114683375437173108889444623162223804752620542502462282161149351310203527904654279154996875766216943221802916609100307499512813205503867830036459903097561160798917374185457648523992202749958756100047776438533330703773558137358745949929467213202609524316942544390210076149608736887738321094696798752542427468557635735574590519830434648396369704983576211580629873137182000940087378221550759522164537563294613742000652925591019793256863026104775729186173021535790932000428022143733599850809547894551649983529289900187963287316645377023700311301376185755312333537920272920528321275899942513347904500791808819351278233645775805978890945369137283447261387592485123705313200361303041963971275641894951403199444610516707723709047342115303102585687110771738220684300057337117866164552059727593647468154800344722760416671429996787738171638059277374749624082474134078762007272322868029676799639282295636803909813065991625688703659248632698849389744726503784532208573645746273165877453729159006626504367613252328088022664716770983897902520080899846916158711956614081868808685742072069407304092350837268103723632387621909792771124183895215989982668822342209282098958810516372237313809412505330794026025088232090820324569805802151337436360218418288246300449310935138619110722795213000875643117639290895116810022339562759187699642556267485468891655857149415339576880925627572588144460267421024997774118003815936018675663625903359867597776826868201321527094456321020062945522309964408564436349785245394740789127075641034207218529695988649371108661046557168487004249568515370000808822988391130094368570902520636132834935128172704827067976132230389913912694458851155833715448412232040634407932578376256218944859807686631128845840350944378845709897795586191936449528892811101510109068910960948867455934456252343820202865894431781352976566591906862129465190131617576937070275238160828468739953986727064646092439429129567693437719929621190416029839976893369784734128575181288005338656650916550180940320290463005084077302585251654114103595368427850451009790695170713961228364184876908604107834886334578607040504666907395811002091176443414148956820617790047435809922305890412794150661375031226142661555558247059581695471918241008842613803294928652411405431232826467847788066614709058524479707687899263407226418633634545065282288351309796235945509793908542956172415083798051965183698252428924643512058907462194283074350185836140769349712768288062834100952995266110617207793197114109981475176895232656603316817409906317768896201577248750905698448700153811139452708442801604087423755381102236411207407561599524725745946679597135041977315974539925898699437200853810644396510757063078028323600539276548008335948473074895205233553336705917495787198345040472995275593132116384383140178623791736945017214462865121844874583057924865896497743457611787235501211463208248687760831261854945610765401976939899993121078319069725061969218849148725610498635109035692290267362491837754181155582507511259577204793858669368820369406778654164708683326035054092685506152180348738647635242154770223605729519086345257055220607494810552153649590022228936173476821628101152878397115225202185709815701631852632110278293337981798179913689619759441656451182462219462978467176173585943116753890438759308743632386212549395308260688398806388725472094720479730926817691593116379502741307335656259798314640032005762691278455056025490673340637042006376435101516491916864882443397538519274639222448622057614021398572515193667967962198948737769325612442708992915514406738008298815169244644385796660613284952147358368649856400637122387777971217673839984589605259885095600475562513903855546841154223191870564858464675339829622725655828685528526490028400033294361046035211586991541903296092211580087464498060098663768775367872946799232410943798041163280794253220816569783875225262416097787638414382544747186421307724166885030729874473092899122644126459470362268136721178293127703683444154684238702831906690442332313700969110338284731499416647695867712023432878622923574014068705933493321768948599955772795451847940891675671670813843357457615587268593070634234568276234611733669522798831996915891274718250105265075106720022720782586145299174216975772499231831204740465276099192168536950451658483878355152269925487746886653107822598790557969721864711761810767267861521421259033628176082031582688913517369859988571964976245131410151356636805426344524456610307051307170120538884185205310834648508239176830360389351285842662891696754601467671081451416171700586178537993920389145829684811930760519254826007370146611127453902772741537935677440632918199045549133694165990789409303436961344842496018883519730234437779186820801847693371372696434221910240523375005017467779016322035344089034574555677384445134958085040354837845961399362251881965689062677314580396142236255297596037028227818551181853331835831776192501405322696478487018322040661395159936808011163146031369013392964678104537714363947545683793183869600271291757607897187314390709344239371299510661216393017313277787064032456997222972691725410483012594518590942920646612728493375540132679537964510781405640454132507607905674502199124868370821256226286497294453026850069109743033138827727869112726714614831500986726066549457443691439368360753448082923198393891734844569996951432240678467474668841075023929621781261015011950197024997584588742972087202164957757593577118022329666852103997899933518178718060040816007559531940462201421141442249901260328445043798007193571739185442243837177588692152323317357460440693671532234037015633200790338050435572413607038986283516512318721230844962590031543603004786549509083608630633176933865794819437501383670521280299337255868419146970847977541085539237836506231939226684024881996239775327964159152609771192366554271567504550928898778337007840637314474590997153281450936835992008158036375921267069376606933336690570065629992787746798629383380465864320038126542754269045320191080496363587143664090335151304396664566141335707041189211299123494720902351722437278441112602877332739149685248705888900326981662062732152257213796437846074689388501721360701326324048086968864922479598562042710913850398244188176652685826386733285453025935012060322835852106342964697872960308179993803893451666933922665937485243149952857575929853241027447739417418473998661196918039394726759138634240729702688144475501512978605463905176088092026740321579788119264982136251328262852897817312325900006130532601793220449929233334385559796819225268673390832517065093079346560094795250371813642229092789947747741312677973662283785930772578827035800178673041354885806638662918400419004602363712880501446139042996749340869946978615208174130604122009833814681826732392661173426082786816159107835341518171596927576096635255697948489501907660501555786437662050612726197979782237083471346140786760195310693617170139420219303012853297247144734215530536158539125449226378082959302285146210803904639079101928700175772438299962495250663976838204687061108186184383463290226877601788638055124985396381558673003095987783130242758286787412527915666519682583981988405085870217259396941773802890616879525528882404256465986030160668271146800804315851628454160842181738203552989269726647745398233494886267355322820924788196450328487165634375916682126728931661588150970967084031772174675846077370051802374754964760777584854138786691870967341441534090429028003033624995390672862845110032425399633887005441454402104918625019715141464291164786522917482421240665318431209582234980781828916331742813505858418030529455368248279340542974479615999592611058115652412420310956027713004238259093776063637226737466298036096725582042327229655517156287707093326623114989541232644216833996944050380977872406054090765475059558672469925050962395859602302879264480211604659877425789866533872010974233776852010995595500967181635621723048536893365711573774701204975968747062541558065367438181521873674683771591826464967979628963829420966956584787951673628586802323801488767813874843860623894504454141296149513967416411910606242832371331594653274325269500392832848753117733935674453525781567628753640561795030192124432946059645516425508714030443856554606917534181278492685235402604337445265965596699980565846403837812538031823093114759690582815926926409234385614800745052374101884700205172789869758498491469288972354458513982403124865514673151497915223441843280465974306063773908127902095120201966417767818597908562637011750059511003270490148152393628965757451913815576922337036775535927834104456445864596783190676973767176486124490556715101639488553469809662076477054685710195114660480714529014931668673849007977156956796800091968372033452972428457132784395586316157766420322078994358597417237914062985544740732534435124100691038508480080478322379540611756101851980634272800557515236869315654402015159637689659933495730341175199576184593973699127613321663251485991661110393932357222996751725921441041710395881414408435991684310599205394850809998234270926900975269585382191471878862499919096717243488892381903921779307057425640348574305721041383407877502963026593850966340678394040026754269544200844835991688199871363249556558416255823256699728495567192817722783218898791005042867892453868855406620892533883526321383316654688155751412553692808610312752165809108216221007701065822566102125034294176001944691892715102209369443064941188620746645052209694311950755372124364038899480452313704796000313938258311248923697603568559412561309939635665790390335226332299715084035908112863853189450097658055020344975965490483109132080729382945188609155827293038064707856667061416683792371468729787561373103496829505480885134449778747504313536403854986616274092789429879577023566573906370431471128785221069596689005675105052208906409153251926117795869155021221879864463555980917266068582476144113185618341651985170062179427565192544714847120209990954947830432892202735148726228428286172090054197375476797348197715068341468911223305804781397674948651160724283099746891981145587240489578994723976812964852527603103196774421971251007432393357720839029546364490249166232981516715179741255968814244510319605704044337178411059662683817063211286647594313004371427882851521385733682959810484372363469303549032136503308460546471877495948188658978181658852701099885767601772205921994611099890425077990566372790974103762334359646373271668867208321920202097843614766878947051417663420610682885453041980020018349326694710180294844570516585211528972346106145188296586945947093563909942996027014629907334393365395272942726962647602838472380431611237847584822104358757990866764885698767975232676128756281690278941866795373496660203773727286615081833828052955479717679758570980951918843045348644970871261246654629244215255307722427623844426326748705319755299931211742827035157382645766032727499085203467002662805059437105834096449983822768739107844708058006370913710763473750937551989961697251861534242498602040802959359591483499086569022452059137897493763042424743616209354490273353914381749517751769073166789749872205218814829238299532945679836617991963456972880085665128211350795219847286208300355148773449743026788235543540211754652907683953079618905021496593119923628681904324336240386041086039597505664219825482644139980867034470008721921599557934866128221871267865133966556894232849631639710391310017977206278381174361468820321797535208770836733586192629279512704704783104493034556794198618674501714399235469040500127677384802461935750719394056501931561831416104068848469692410537195317579825040191291878793077837638771068136361534449379942492693335477915504524566837389528932802631538399874716323439834505397857819479461588604454334225086046373692307719110810140088620522714223349514070117259832232213282269804253204217331132428061924538304806552955147079233153476319663046682657081523891657988704991184210599928650655452352443995291341517550437184191216065214441866149367199733069800009339685363163786447366447385668527971835730668477598839038236387889003412565358074740836644895558135698876017162769697109942521471543860870207650474291186312279572993954108895895956151434540621508943873171478312023268303889020723243535725224191969122295232659990004065942652538713245705455929061124143778743219390901620327929319440693375459197594467874162071247205744603540041999409677000892581820911214364916565816888944684804743628551910348182272282995153857961906281498277547218877712725227575942509067909087182450384756599138605290112933413218609324250814834546736153291667555110440569343059431343576245607651019184738175476640153967835543249159236757586718448237330468670064406761177296848343201087371635084314238383065531653283490908176636925395151539414099701966489849434890138569989824587918678190282921119272450991171908865309213744767636396174635638912579055309861305546235560392939756162784581168810607185253087546376146100404834213928554126762413146800656832918814481776571878412383163218885712904744884134385224840995179877605201921089650146827944045914074228154842687106247872052680051841970232199358639473317433928870074844848206321761703246323916745806809753942554234315141475172528159367583462094577059127221619961739181788005158942349379703496764384732371272022769219107892551063663015852480389347848050848791652627061740622625983793000610276534969709809339418347863938325789821000763813569323413448702657498719047099648785553334163104117567422073818668767475190065946749957293916647799250546344081737404454454823213675640789431696586938924386431092329682375615111651570133046667258616479650999602917170642563765631645209154338948631226869709950860623163211998071491891714032707533939209939362561118197601634068550010772456350474159415582976528905019838826539598690732929719332821634669952820253382197879889357346309088732670234503097120291440247547137187350578677619984800128820045004493404750291349421930241920435899724873464080917568466948688208581874987192005766157763854929032565921597262932729567391207043333934342769092907028255267406332234844932460401009752562522378783557230241549187172765301354524916938911509966173800425350058495782752629243771355126857944518571674777279376928223276217723178221036003474856117790621370053093986228691320492550495582454246250003760664300299174904102570657602966132914066928235007124007342553952390531878612589490422511090804019736688933950482438670376661671849944092034789896831409563108472689552401119332036266548661244149942950207886682335152419216044067312937518184913013192394630576407964124223283065381103208212567764759014419164893783523126482132158802059732050330832564899424537297150829656272153527857170682483010912921702465380100984316470414336004469608781740507501642570424645156348052286313466957249361636036871003665207364996965317856069347348486331555940566931473873974390549236007763218000341825523733357409037010224246973100307935769443229248306894504663742704628759125370465088422506903907864797784474643104616156846534022893601995018680123479581736923272968954321060219112730368183891312137255002464477296642004285704831978359908761320160901425672460080951642969704019936696793383789599363882741386814383118405324035788684317658759857172174687196392406750500063561513488642862401334355934121871111200690704041515416176984421868905775288812270873780286718888497271810334486578378495973365362208043850150534517743362815847783267365043901670871741467904072026090042760458848881051241002869708682651738285492086816516968674068551293437963989970698399657454973815950837476744626159472905572012695677408893788990923434727727783902058784354153507972284932424619187621244790117207807376741881706148334212406906393492995261812116656117624049170289229064045653367879629308144443625669804266579880112664484543996591261990596588067871328595672519269937935762985752788856915859762954113119645633723696005917395883371028642583075188927600669003864200728957170412772920906349700810317399908701577734675771420747044469017045847625885888814527282064546550916494815553555187550264583913527644719555601442225430934202765665551653095088730924374097772444119594919737420590852710375822557109729002249112444008900729170209529003742923477530061721231394992686889269258180423299801607816009173323487339149702515700997298814181826471338641718753221959375833003549742265424435727957491193016310275019159995510128026593806602293496304502845867007969994482952792380389369513366849419041511862727195554164063787345998180541358580812155844653247078811961583900351828774628409459943590817916608560977160923037800450500380592892612227513665043880772227200399236594632004572030267515644595065923697942741184398364832189950240393642089917741281520745577268542036082968442001462276030267703875461931005949159284533306067879262636042178781476229412195260152633380703940854310368104469990580909903094402041295355661988871058535585354198538256065438039738843759080872180411704493551832090527131912901787165204122222250515500663491464787037122287825061174236605456011164908933505701164992783383416689198793902596940393580223881602507324637296545348662227455206145102287573690388352552289778801798652119276656458094484911550674553632948284028945938774001878523093517277247215318578565649397198249224144919716653289973233391584619603126553883588068969001197383514424326982766748123736947512787622967956565392511503003016894234803728329408060439472050864291683261731482976139158423084529571313515284049343276051999978480116411661069909652395639159735575024188299187267463592489176408269751796711289987085469253726320420787400338147548736922379371685927773164431915960759621819242352733239444924829867832174943343685694447128623086558171044059275228813933307681656822953964582576784252120642927496485697917263007813358074788099051214757067640157118198327577878093154536273224992385376153216444671589886952692418115797119708639256318329339472894362186826834439885262159417137723242822269083314673970897185797675541892930707142302582342469529058731334467895677467683408079912598960630560017607245964337104502410454159113765882088286807410261077355037497797185503691049365145222432073070386289455601597142214836646980631046795482711858607012478400882142183632228921329367070340978839413221137255853508689873404264551522679033301883881205490109734462903684145759565303278141731882996857672014874837449178534732236896396361469222052552834249763375951319606403243334711740128887859155836493899158010067204917500242820302391541533904921960560038117663132971555963214202169252218716074948831500746462260810412245370504092606518127441580532371298835979019141438232406432657374556003744515561689037768346604615175610863941089636628056658564115774846004858848592891633153587537415450221455844497235935133114304693150752458523291009634698403654966642699036751933694963160695603422323636224469218050478956926208020591842573619551720010502769080426582591345359909450909664956136155145945176166627218707267907023416330479020701802437821004868936232796747965703206269386867026078519262411398319032689538436966690439413569996956924757675483549041116556063306143730626189543941348435288493112800799306118124832593685742376655136742389776196208418784945417797643182029193131639327962727082083918938437676334216709846563288920907869084998604074962771339794559821118614978477621426976527360476165565223756776795879507606110150075016141630342040499485241620120678454451280785921291894433718983053992213991545619833248384607498539390907744763445898371835217115268856072760766682607170793181552695525405580882026099165720773659231957290951892867042928671586933833905259247247724906052736166122749333440682033056361597974066427606605490740964013316190425557588291225050137490834476853671469539902614371332301530239183627669462821113894290555742018971114801089691706374541024652013791353821003257351622783067075684015935723605614466727628355982150129866604204760984582932064887839372544843295742097613531415800986937177955277294960514867377335371849971977369385919843848599370644883680377445352767993787992065529514884309147362186462963425741794806135836626744075310630058011305746645899393169952075910479124769945528373457904537130712522938098814765785602717797810010537198528221104958392509734492360663242592181674132784613226231657704317529792605947812319385797236245748896545941960379779830412723645406911234188382730122086965940219588794010498980619396931875103804705325845681413763390894785495179969195178226405611966724046774728335536716994973642623571890769429345054003676547283543194138980878218167871435938451668276097782679660189784259567167743463483248932793051394434606307238078171408555585227685070947099507933027606226153943953585949336456846712847616767129174764711534948237741153208586309183085203860581548554249506976122524980646584315302524853382969180686556175014133738203156694989571702299507951054844590356053166757626718991099051365667973194380142950702666039105494824210819351720329197249004111061107774575176541605570297029399164223486547020129992951097207922412331829407391976617408818581480466300559258294915669960918405849463086976063771915886848514410312194110859900872918743098168015394135869616954459320350427689544250502796726682787908626238887372231362639701743075492357882034692304194228259907723273581368000229605194153612341653698440059254732652098720675503978208803714560889562351624597583826997382049323534006303928715437272123707504739500035705158363249941616083180499979995705725473164643053527034320197925154868449200728189333276005647739863425706875813113703521288922270706943857342293694619038273873767820989256741106714747545988115892179524763252670837444439410763790626286296289036443062223743936379294805404522386400536629798262229351418622269656723100110142529795613409685023767234115118136299689497963180304665690323081651197744919023218461206301603424475238863509658003111315581688647471935773148319842651480006014067557681099835035683439675506860133569072870119635859284028110038121171132336039431331827532519689103705438471384282248368686868902484519814328385100085059606023475436977508928837657469255318506057583418523398475429281167384010372107877096055688446202032907561974684017005940394518355621864420710621713666394567087109050097838518265123315024809405986749317105900539852613367146143291575393315740076458613715543792636874011928434975460118068616226486583310355277832478667295044015589736522326140017401399157840208425419120439567345863193224935607876801961953002990231835847384870267412580711509996024608601773014972364162069971565799405113067449005632099001386857302652979932519328525143439073450080521874676575892966930646251700159687758211286407981797078512391561657299326253653253601788457054113548086396214331181268818367304416351583701886454621395290154764108574228559020254145242840894451779462429435639915793579559917472828013574075173788380049036292805661396691624449936016537142191467988210782211149318090051563181675438080106580257484408063891069654813069051036552461898210750989280298082675780307135522912787902795219590130776920650187717244861993535119723829415779813311935135693932979601346680185963623894683658947814517379156666672147054350301604428612086687615239272440563926424399654130721132448818173786478492133627244272706325496654421169449447589090114604764764400353033445541148318666994884328991277264687447166381032717020546174211172645748753426350372170371661781044773160290666082322003955834931662926311451306074714368768215150362025482241404401170661709662575521227071557143664125555578817589939542805168534493541180183455178157387222588497271163526448725612261066266650291457374895716524357286671204039407517732373520570579363779008225544146158320116564130899076592396050963227515051358551348316973197307376853465264217354942449665146698564188805581130437760152709591000324758413809440665073768073547454323166486189532365344793311610840140080311426488851246177446242722162621653946006164183953684397151362075227026749681563298147567087841592984336612076419711882757862658861635190290638484621968294503770401755876228871606956275396455641827687254596521302927299677285997362995841541743438246486242529861097386208323618627869700131026328562061501432191791411107568397286558240204533386553630804043948571657928417703519208697145713348895402563834716060478418239531459670428592908009257375628267047607774805130389258907736562241485507215159723413585682939985376724724336464620789351609958270811866022168191853146984222962831554006099348797967524434448516268966491359782015855068332859399650944341544672287756833544828221822569610275350425641268001029011618787847998283147348350821423432253246949676252347166170380225303747229383997749230684234872269595801228269695991604928689031118901441363241553734000670120687779355393909296176158039954474322857127948758680056997084514148211059238352121025836811065427585102830723730400889670712258386235888252828841762875199078442663320656414481263264375540131477724472414995591361135779814884863452512369010532249035804851819891492904051339034306363523865017594815189211090628996720297623944498737618515300778022028178930538568950886482720463677494585681181187611654565882390148011841870518489955815303762703877027278478919576261514008725509667463071370455903023093612547840667654607512077820325152527851495744022038915928748678121005758768606735279624701908450785498230849690111244932116930157072561691526997074583711756401894067896874252745466524117000229407709508212993234106394217286863096777637477616021604906329982383765975460400537970129023499793773875042556376684126308220360422081339671009872301328417999985847454942592324510151071856964355721887992095350952769153407574195381029506183093079293305632029782350399955053840204763522057950090912327312966759593161013371039093662026403187050590247840452112072157994240792010230953639787773740801582754526153373912047269968884273383312206913047700461894203914539635926108562921580766829098913545933645878688181569453006507382928699338104178743885725727790182637068126116267079081066772339571202028673588410709627940649742923114459995356784598035488726950679821057812895852756652551686171208727004352245443407858726000217921740883710507140508653865917148204665185944977372727023636102249829693399731839574456253592514710704114363352567119965799392860228359781101598216368646863601601885661989713712734632181105143135880715503668848217682089446793971888330847428378111280522887677105327476000913889433712827022436862087528080806178666020326787128625780468341789170738167041312370863405521189414349664023539817452406943111327003027212361335989426486563869268839455153874782115036256721664922557412441679729676256001517261199339495533302614985238825064062774290347993243061698106871393103740269414951555686042215771927443384046105475020016491634267143052488791940390709898275180258551450710089408381355704621851418110181361956674911123213846126307544920807802638076066035943649400070216491109910700668640991607459565164352207892670884119380026220650065150054263763683063278293500452101569293131024372428524069027944361038765462619612198262995940553719030036731730444888883547746186428973113586494251885639120559999113628072869578692677725402999749159880447122979824544476542780880886392873887038502387319243160658954340592334046657090978798492880742344205814683121451223990125350595558662119675754795323274686035472104144983827449359273119782542762482720893556504719291290511225892892878676990605595735154395909662903379198964893505071679653464542069259122571684204190228850782992622227202334712991544798263652716498350989475402552434620584222916864961435088666035273381233641803693305321022457153689181281858518160093614956160988408883481688986042793237351815526412303020644610531896387462303282880109996663610930861241419199961547579990375172373190270243748804912638135822321852986567299739060764909436413966091804325192321477288184353849819249204353775847513935411336354199534594752620876780506830659151108447274056378465715396292854699650696370039008766608719258462698895437155120020436278386420690082593722578162623263878164530002578414458184208541341974784392712998872805489226751637211741893368297628708820286895082854217790032753144648820849943699617273021220333475316509307029590415946446467371027659218284384597626184156256524682595031444527415935589918904689792245456511324653214568374246054281130764261151127942043467345115987896618543595375128647131551012396175624783859935201897359950039862337942049378927105012230957422406627930613233684525818815655625354131195145979854082498905154235475834503257366720532514724507296481354445088882650761907047744259024742274848776537080015700569566963148650491292169296209212191429676825506861732747628326472939835820720748995253260833790271203909556856119998077607707229962239771657866537530725387412857645327195688294089786090955867719702703622524048342371924080252620769733293129724873204544286641749824142576775860454199646419809191863512949728971365159440879069391504120571295150656983744923103446105988733255049119957148244547702998389102511323505339240938097473066010889768407195266001222379382951487002609146515132181362328483138165333798361227399763073614573016256228029056135233438159860968989707262510992716623353413802388469883158603842897429960766962483793985031672350531778474910353113549657816855940897560278003143259534343566520318371767722635005320170583831128656830318264685536139284865506638008253880490740936901027123772212521804351857311806042402985095652287817616493693395549894603929546822608774865020678370192559414898903036067306690432905382168300501506345565506220243389926171297466174292546330726738754270695058006854282488709699462019853213880756948381784174499526000829009880092313254329898676861636634573432283395862362776245301419552456569825365369383316891131102076037719121498437134994224406482119800309594779178265181258439940228914973335039363695872828814843193824823791680475095402550111040227707959562158245486627196228310089287787559459392072099325668126467168267537598389797178866979014188264487131153328108073782539115230633914467940677688587866703047424621525581430067574442015221118335754264682306106048713434798930487452400155345142473734770503203284219758298559995329510994757026156749951258241656571585762301111809460940763682354818782329285270828657951017625387880202247343901572451832134661073978949624635432716057120056070333789204587320909931297518228313935271644127309322202010372043775640755021648089314856804142451485006758121300774268136162719678674518233650215742652062296338854536959007533440988392019078290915823213449962176229522981204305217878285104424974018475651558161683836104935665543511307384416124851547378680616057508475132445035377296302643198274502774056778226907185252259335930780072034375885164663192814395552852608645194101677346735834247541121715060819816751960002620777383029160750280499884231362809535143475206973903364413236632923537417357159676292330534521722336584843376144426298444169565208436743687213330000972705345972206818750631326614400117895483933343968433423245051836696609279581760093242122268308660953766510201365794086113410099635521464143732842492333794666101073157251235659471780218875734934022009044687132357715510237926198780831299031200672100398371735110283900179502727120019019992961583424803860651187780058841199434654832973201797336752515212253614731648409185480202852999639806788987595009512914354090510850926151093508813575161363718955339136929326179371395895653568301485411027596694398712393168530686209528019832380411731021005265026357418584424551477481871876921145969691247361419810146717460857069283568040438195148692056012015743173789575049960579299376379084219675528971341181431817302928668373574532875854386940036933397939313002979424154075767657431248563848206902178954883614101207997192255570334830365599633286477554287222831642118831098555861106777013303831530493727479604032656565719656646100288104625625969550936537344603659424328588197701420779181951691775972695243191804559062563448569846164679422718190270058621260521554595484625322909391302042835243054251289815967366287370068429359474136822117700967418793499434943524011423628272607618835131325248465394235105731796390578796473121034089901185366562274637048790027386138507520621473126821048685036239466051656569139333488078528557618837306006734172188985655786612060375169806826413121465768177328172078153385967088842310597904738659270041818344600867315904774526169120735057920079960805694318096228958119357575603007097695640762447625540451356944110866520787837968104328351661027337392295788782079564928679811772028887709414107467958618194005395479609620955308732565796770662487369089876064481187364777180756538928243109881925441521102784040010692361115402901236165887919119918432002856994402126031143163887738984446646965027514375718892031091902791203321043879057560737610112468793355627643592965595328589690032625961883671284666077981439966870244905241285184945546554887595873338422018036909584633861306632155752558069924202492441260012060914328760428109542984320251616396369561309406588907342441882234855511710398416722040638843138950222728106093725100693847298300205671043587131872807494970525184268464360517111725797018791164884693785524174766567994660959561871147296244034366101074793847262213406665487700786894955985299514668553867399124586877974339479220193175399195924868722924882872008440580927415956693484440416861712751717145677433701723303224052216661238122312926285980763291802172852882899711967471104414406630724747565704472585434508267666979672131912012522752316344142181813563923199604888676010009844493619029408999999288437922468679841144866485722261550460309079046727559254189737140703679003800168049886087936828874843419828807138317753514137520343529189204029222221544740759974313697078393979317848815806801200059148988531683893975094291950087388646448454310674937194862755166990151988477664319046917548918461332071313042223665281619793531954895538092355123182090396700807748085450515176089125370626199685177249224577704053486962491701754477691364469301418802776025036557567605456900067550791189830738168502588830850976464096467666398209936460504626109774446811756325096437148448720100768370210625754788579639570255283069870235715702880976729566053929506699244232229151130248404082687878690968262764316840047577258530211592671063429452625755788572682827167709852400435510875235372338621389273299142089319820849680128122688806907906730428694005145125553779602194870374113796051073884222074621695600506536567924358106921855792669459399700095908145599974422578511131852418401175734828922279213650286628348633029425112978207426009033066685658199829109350589975707609227610150034667772277972985387075578938495532454844349708251267642352923999265875935491794520938932492590776620099516766037622484395349696170765335092604721167594901360884482356310088530069655890442059256855167372821698614658505384736361795029256610354582888570303589172437304319338578187110175218534738163629207466185886165964072747734861064443838560490516716231950915152384906905611382015808233880825677310371722131983663950988178582706142945776568865446183998366843758039056014752842546671663475253589644426955638164577419879434568474812489104666009555944676289027096213334473807638822256942687729211744545465115189198303504273485075997258439029860851664822093712546941818213832578411118007622904314891324199445024334690656448246955719660464167975822423116049499182615781267273417477473001866031429868868811059734433424817492627759947974004797568290723510927980562666823929678499925714422007351678702181572490474151833245544591263988131067013838475068779836411733289048698990121736775838990198244457356195018266003863521452335249426384416238979902085275073063012764176956680043784526661972406543105543758073765337710937287819469101390721150061553224972395704838051211298398316574515272618097159455252293496910799726256714475032544516641475785309275331184059748834474538255642071527059084959417984086240189332270707741995665332014575952324086709709735659767994103022387603808161120113749030906850991393875178669648793527464504312793855423268236529720607701646082715391236704662379861274291760373745214226746097482414739004174036586179247972493996083254617557112306515286374977845277258257327087808243008523145052259272953071287155006326795886537350090368233427586262498098218018506984853134012388176718674224376456406212428617943264412289874156807326304551222288022804013967213301839996754218377760809166181858795917629664514847885062661302559735706357478633796366024184831653731263281693364682142677288286487629184622054812310739504217023857159555544756291641433512420451137054030134843148084046535628317538666849187866785384122759204474391525941825297370821480214143974420266728528808985131383163528176851342245920367136240036028617913878356525280255789241786608764123189882000711710147833434399361592061954311035525124456932792561419067285825069471137179221158131444887710652219879059112598288582920798188173825401200470287707596561289830627261492310565614728328593053282895628588046804081146847846866617515949602054362467359872719899120045330828386998480668862311392436105298586961110411831788458262901622030112101603119078808043265754237138969541246922384584229699417854545063372784012979779408170146531160138679070771186262012933342911555348763676476531857802418737265343479421293150543250204757624137011985996833350413907874226913021158186298858991242187146670063195844411655560894251104024893092381960519297807291646837498046290983900078353554881436381614275610927297061490070072118959499476972259840779646972791440914873735748322612115865577649675311236958171641311227050981705002541008410576356592027164164701657667440759882637075065542509414604626549649655757421020396658312883477393676744859993059410653596414420167645124323118962694319774153338300716076979760773774615653131983043905000236445488310687418767435903395773665810411164346601539982995921713064092696659248008280570137603306499220570804829470724830575288165315407092923697003643032500849712205517275855566873130701587178896536570005322807641066049349545585035071870433899141575517458184895678252214545156908749553940547058437152435845490410626237528709862511667966423421350269301844503711505093171111467464338723384629517439293841053585422901421150090190633030197033446105118394688141117075528036525013530307149872583836616012771055178552653580843558936471652330139074440347096716909082063003680586493762271713381060625970255432728382470396090813352937286099188562090094945455652441985455984659753205114704792567368569806193655571294841370312721521745199007428338547707580899890809817406037209904597960295393365396895119053599330420899633619236275005180262335720122226113214649525751568101271679367359513245636241324424288971511245428953674968814922824233439532835602870054967755791067243177472584741250619771630319297985040008066329307253902495657836738048893517272456839052381546719631692795708592329691790600280218643002414553845707265925213263473209325373548264404305903573080813637968077085094029121083074669339034632923185067974129312085351663291417792534620324106247153227994522476491464930860760984756007634293389637985494981424724016622672775355924604342992606046486875272564638722557772787739862831089430813996322664532458661624415151573901127488083062404960955250494110263959403442823122151420262048094279584081515522858052419752686349982964269303851891750335048000085631780147294753203135032819973987179078341183774267803026362799490732046615928500880261396166302287282065724128392746254429871150710282054493897045249640652507467060754095544128771392229229371851210658658982995850226315040680370359438497577874501410467663010850828583587309134559882473018194082927657835205953027828964836326409874809011892868515260662452189013241051174937270456749451882896930169317265293327057350104676994448390288197707324303622665673311897479922441372346147299504606564211536713279134617642495643369810977738152217404044232721048561744155720779535938549610600137390420365197667099710758791283421319190170961660182708266534468544261610201400896836233226591550292671569967477529516376181746400832264573058361034937876714681842934101216789766526291849228631031620928674826578425167032024326921227516447497783598866295792905381110118701609051136950143884134152150419954105392463585861501587116019024670443346280959280219798959079206917224188844093888496017311467339779430332555141332032561254894578990129598053898160579949655384910262127437106012273727543541618413288657922725248831198844933371468742783571354850208813481960219038419055361572936824915142408833679974038651465462396805883270380040445885402358526781347010213119442564152131923317445958227352863081793549993468795414030597882779445262580742321903787315591624758319300080675461266095705303317968182815469875267086365738652774302390364936881398173869400067905174533452024200209255111776578429963011431000507033021184477723468167892510889620253027745886821797350227983003592169433391401258037073056768475539879064037615963549049427465750633465935123622610620366471696733475745398493045373144137491223539926348965644735268439837059340630634463677447672953887711568914226964893890453322840104460713511117294297633018555629892154998033643619427321282840115410455111072260010845205551197114283165973103439023382166428434485772716394358455831058651202297799455714240499658089794913418074471809049975042581371478239988721098587782827290779085690238180255227276971913100978730011366572434660892414360407456237100603816962132115454991397243532094479477120983534303678473418782240332952028576531756839140668751575100658004250548399336950515251690977345698705367795400133574431760728747520075132368267803453425197999268828346751488155440661659964588107295416069798018060181972493402457531495918689274793883144575660506793042654799172055969034642879868780403420453000637388746859272864725079961464328758422138150631440764105898320266096258224809421892622727792840023086232816646627446693747638389229431816256059080949904172204937667371306267706474855599941996987326239683698099846600249188164036582962205890565572228137541645213759690625292683818944738434841460505959042314263036210761973565313370858836918613143155500456123762881889251304530618146959573844689344266557690165696399039800878430722626033450702548308708898358583866197465762409169674719297129813374991468982495053594796030229459931173680086928551813057147554212082506790340989386931016001497441622653368539867656435584480482667215142813083760653392246116424527803316520083504502832916725424635897153629223289174246831102097729065782274707659283272619275176393137059201905704398059250439188943284326383252016733364242349126632917043525739753655223029022029999132221365650578762840918893764637358477154497800279875024662875250882224247406251909485054381352744272255487711872966048874873971528898195936349404030076259699420028283947207937078927953893017922036180330091393118854846944885544442075676999205131106315681791764978388295089735218585640409029812270626462896744725306639064621903680085509159305002007866037170331480228700396731361880789394610266980171200130441057408344772020768079018540545792519857081249888625354784208566406508135020784791962658961230590660753119351233099086828107287976996701212742225548469890159675290933534381563489793974326785249954825165837962985649194591823224661436865765126291743938633124374301891267560227520818008868883077765152752056410877312070364518696616591348676891089335195359113828473952267997030265743238452608334033821516376827555758461400029902098974201987672485480338286083733198851171251398979262746206842941460329711243621986957405729178562167266200264229448565679513904978671637778776215612592863858104496994143312203975754471971137326545433448920874201487556976799588954832204686604330227602284027821932096450192122288307415597650004688028375414745469279825074689271586252401850536108101293466708804072441915875614969477287959235061182522309563264544061839110231258728066780585056133022369425723980665743402594908811378850302808858580424182962879252739558258368716511959926304490796395135844033895274393813752585737177370339699297352811946382897727946350594033264005031029740670455761990243585302046922976551956856769661070393325986310672777534265075938300596216596318922041267570348872502540421240438524137220674577382381052763645182407637352485973229853101399214316566333264544262772157121707704489142370272658394003492351236220270705412618860323029348853758922309512007572190821698965709420971195391459127864734024087628377874200979271098931840418576272604039754204261402532025062025046403232471465747565758772549562311156329777413043412775489328376501753048037998633017053456945153604176133524279672838538010219151664752682868773902840243730569586184070346558844254150657228826209973251169665227579570919806755515012635564316641879181434917606616439607275535334619487689090795721196728058366853140813719116625117346486200607141057480792091790936339457838867864598231416778646197985313186294839667091775889649314868909944148650117043210100368129392047732115433545957844888739509609621412833122879065735068294648188154731915345651315265751746183916165626145311895695957175525071263714463544310596263695940079813529448987134679998590483112741942066268601590071518467225633129116328818322217801838666355526208624711517690194814052012008422627587140777365533547494271433063300791017441613514894501230127888026764276940863083591821068557644602264027791212548638620627256626093761762390132791727201606048906228215068477938990657552719827480345890363148966829619436912278711103237675625120035069045162993324196799240054437061431172537488873429957301688319844548155625766515528728857087075893255600088192446128347180204807870385412306386599659373032658573448856906985884638992556853193671456588676042957693487874957423413405506393391160263393287192600729595532679131963563487657708240327063162933172711962467383810523156803667808119123641013980893115359831164683610011792624305306988863493822021155770200970999099792775465831333688216683839948856464283456679020473920136065131074621028193888346369172003901794751335569158258741775231010856804843671550153551679575095329877820616799119775232405644319499478968801820131272798083336428359321830256737630650337505233288937319534579148015936729993754596324668439626897568540183624343827485459559988058290949729778243011788830538609338164922976243480644069670463010779047032495864579758474603141647086000379088978245869370407807841762674073520254521629564987878864266026671030869749305123214261858092376078472915761084762852634180296640626673703702332544759745683597414781896787520110314657109369729691782171865363527021869799312998717931916106414396420150010942172761181715442327438466465736241176185652681638758304256002516347876728344985893076827647641744637854605226213476926300005542483176355909221887741352385591546286873813906356437681867177848860340117223705909250815810258095615555986227381579758036312197011519908287879049357654721569560310895068869434395302371714516951407256633454271958001036173634790933644055713544395630799446899892055356712575310019211072420337224478292981665296788056677355124777965272733390215233449520111568449009915883799379374737639072696659083788575290420797965733261702021084895587184068635625245456736625045220783545221920460378268873700875557535549540032128603746940853221154188503018023456718814375533724152692532242122818233098552646688402677809776220271906044386586157022821666788845216873189417423221048147527364432652024072789743160658244300083515763072863257271138457133124608748987246427864182860187786548805677336384113675392021596415219344602786384171126067964868046894690793480847798259851454320527468772439422861612953321300500219390686863943751008668094458169965078937087921116675110150738485933666739015441828592477379262849150821978018814533248500042933523574267814859281106053907119189457704038232236036410488716832523562486509516684562832377517247286509264211145445889432149242179830164737143460431105564823076703225859982553570838789886589888381921457586716365923963554510285214773794083299512034875240765602460593700998584060282284149119884250050094921604003031940362338370584638442911796050876747768339129217912272502973998432438897955381772978668389844109071921470954982129865448396929913374081963449737527041041927961348733850226402962048324710617701629160697221186125319002312164271923386803603979477660774107055258196347845587480993166393146438519899715495168909214883532849747941367220933322833611327298727715923745128466774545364980431129650236394635818342904905230653710286388323775376385837564309069269725016808918600219983625858139194370606756507168320533559560610277924468826898581983729628645198138632956634220115782262723259245594780614918404809530728124903678747791239813967998327596759924152418263736947499527304469181812326322734007714525639714630851335464957690749691124224387504959974757034071984541136496616545172113227169691831883314142190642125709568745755340098589200922699762049836649798048175509045873681730269237324266052478147517495774137878939904512939102442941652267972014202883750569892081047304444968969943135359266913016240916018401492269505440367771123032698763472652026108171072907192358963762232874345504311950348767737268076879720219063181372761571038326492172320049354073339547929993139403668518466942394891470695300305763723058404134783381459817657028896719553158928257368484376869622278892191376686213684389026197037160376410744046762215156769482909034005867198563671099263375572518143796574591023710978490008269299864149646799059470991009618107571063377623712666187867909647633472285387160081027841336123680223269427405687747575909633520712387747588412359197361019123751241413791879399055104755830362100250780284996870995072148597576795840294660143109713643354145613931622528267741162054740134707424954337786738566215515992408071617490828527633671369460429098939660971458672779610466246720915689149586428828087863523542387605799034093446210220235212761150612061876836916884033259739323551364460716250685384182683797462789649666000068449133147699311630371016802482959201857627012228430687243171320673430174898577018942784739381462570371353534257675575712377921328621153746911605838649375169006541301490300860613445017499129493343737211347665673092133310188144756349043454165271258958534245323355531316745897844836187741521808928816688684967232507145826543627741877067737041723053423008981814619321017453905767332543642747694736205746924770468407826609394365711169522292100435537554411616141082490458637658442292523882572035167493061322409498281531587207581662676094930505092481910655019569574619940779631956314421674926835368785741145799283600593063251803814076065888414446017194871384062744953805226685021012997559507991826201462545589358210567317341834960345230248450447533275238145880889897907468711312415462234934312677267654631809574418603270552845211910218168995490845027285722651033550722701560429477271204697001439937771058328579398944316684634896595953091422709835922181472993880159123429387757144806905568078469581355867163623261235760562554304998643267050335553618429251361388690931584918701843620144868964362376346010570681579448855710069724882617228651692343686770551696275714913871879065018375694578136797363923372880328530653776151139001502819505635966119665573805985717572659901466748416577013518111160429407593770739818706185517650209387935835197154290866014671380331063512593311515353860978412098505008199257299351380468937762552210568725630203622160967433002311391009117786235916673400741122712438992736845171325807745839241810272708356157482573395662830892332527406434071540417288207844656401889663270332510767343944975468332266854905583815437776509397926997552800145026569789563599053653330335521656076514402316424331463105313831231796304772919991244039386102036755239042934105344476803618502764158676237114538426763340609358037972680072148257946518040747532200194480637538665476866063779796682000803338218758678746572180657792848406769721991678570832189767774792941621758719623764648396098358378503222829378812640443300710381701682448928022863792899005296905556212187339066643873837744231016460493523615356330044093079424547324780769058957382279089018143903600829518261031032160694014030021708651423344926168703485006530369647713860647248912909219771366409676931414874314551563291842413710288935633657885531176664092884059425400047652479520768547398810831929881597227284590204075051771218021612400319587678235546697563030725970364710177977182602486183852205160684099693789667181989330759855039698507900610514085800777718661209624734464044016416080727096431566212425693640811148242196105945430425094501360165023032997254074972470911517345368787548700021809409382921964292700095988537563245287658863665462775488136196476272665743928294411548167877251144095802529600444100026367276810281233460082040886080231213035047205408372877663618922197485657530356051368455521598681012188079067525103015403073301903684094048750060206350751090214739851188998409355772920830765850432753441630301290763815732632675052622424970315052524419738647827357958135969902411021321455680946762808742514306209048253838317052656979598738658276835504280466506159605854111031914543027263655183223929627940340354283479111245405806658094170667900817722717991300843187784745155466701536137877306936624571078293120775039790914418413884346314507852829711020286493603814994792961702289758246565259884098227330422433395042964496575837204430638512328539603856862072669088383463333774778545925971423647275411094672385453578476479741600322646207005014976927903838649560202132605436284344169488745340183928181011270026216540439581290347275455789495787977589808243779749339115723157553998458895369010215921274694432573863249201904317182901566469369908466217228644329219996553850828319594891043539266913570062126642101168214271599912001636688265137239143073325965266570484301184479914308561143949077719415426559256947292967555202727297534624518536528266973521069458086820170195660992645281760932795230197623393309608874270427165905496870329993110591507946165343152669527093976055619996743814855398180714904045022952149367621364069520350006898833721852139830238815151721005498501165626139843621581285954902510009679273157040435525312069297543929722239492812560015301262989814921234387178231338622781985220716296619612412130211980295360881972470700183214354017218978571208090488097972351024458138531283882986782293098300279181983358986368353847610794239258317529528914888954352492689216229816180771612171195068046086695017677051723030792569772442060582408756881205219385254595602375694367742875876391033939298165310812916238784724827445504579159088114578897206574516631635923727085169966242707350975512520274249704219531109588103675346072122293722035700431181932526515410989044972677539818118462597585989401228295802137885087989627861763987358969824844572896504243262392556854680858887286210586695223481415897637803251568559560369900807995616100308154848500706503051049692526865317535361032782963643367390460669207162300547611013812814269103626068910368044254469051141208098062717478488649768656082918588581763317948546916832862609001436994750395744851211154957739976846060100877013628341982160690214525008377343412546624045546986274061838707637428084389598330804752508789468831248802813127414383915580379420965881859345853971178865254248972822282996014452844898243868359410087590043041442604006175286070923142990118709571717234436162041507756436721359724537433296464462657060439711327707712537728277749805565660008872769306153627521350779196201621633376322185761792094002669563384891293081212331247387715984588858439161008356512257631505940864152766319350294426090011001486399670018501861422120733518563600026938467655630341752055605009856732784127888281219948639249841931805439072344377117168958503562109130263300324154788026459097647599470953758069364836891192834080360000290879652157821585228170704145361238492586784597004891399867362533866042027012741386621752209239121984050421791218866641794743210690747558571382657490183614838849091283722443968987181953640687677453678139424562561411311504660812582148922219211069051189884377957330769851412325256665306476525870218343648862784808707995534992996043758372108658555104741774510720570932456314250528957804792512517639317082298364460324846906254476581608952998636905279635043305460937443368173353721625882818509835285456815612721573249930444161978140515689563037624412562860410025307683537473610051368056556106036827157445674422869426584099550281222166315034070438367674699435373574364453566197404725641462285963406301310575000966679916681769585430152372561306232599148131282413233963418582832866909707945871180184817043396547176271014999975364306772201481999520714561858604317835301527590803621695774473168691995967111754626389305312459380957665690021344542812941143036575615276237841717243343454222432227863563548541777233597841565027566118183304530697382706090150724826242862422841184821713790060921255026046830753761604370387032593245769732112084719436487461738447748657565785684802483077889209974312570824651139128395457629390793913554709641747631690543103547443044381555341087716786197726710215568843922416982843499259633404302725397827162704611630950382302398699476510832985640836255581227430332042389510905691680945578306029298254225561961523646736137376155270794362944463362342883749611834562466539296574014485519390504292448367285012624924588547649320725099793000668704713057628489757236494130120545022799144882929156800060890715498361730927230225677208150366509059231797889318945608855262767759455124438120523681642198797662193392478792258088093715718976414879065801884460683603290538335395414791365935495000846068288270564669779941187331605405336666358581383912497074215810235106327014634539910793762223864790803302696022628625162532030369693520595512496026124159299322822448017347336156382066684629586344376110132504469089414270454461561765619317181727883551587473813830230864094852125378866827585334289738942128331139803223604337741256475912944711888039377396139137765520281505083920192665243168204807992707448495403076986389600679659021223639692015605348163412989098878220055392872583133150395128741306047905160630906725966649425604629840795737876680423229189115547838677584952027562535740051210291328737035495520886405298952786824059542633679598826683559375220251496876964534664535484810429814601817822216864331546520997075699572978267620141393228782193317078128347563524449857745119027717525439350383117452854297757229159425498050064583850489842532891377793052319917352627148720562966551723609963231795484534180788804074175743622509005905717741950177800512684612024298862341627692989744664425949001167061787166954325792805897059700211625883278391292212517535798173224191896971238310272222819667446957801668525986732608923970460711922096259340543680140907090557703298155685127973690431662723677366988425573444884009025677056611854134114166064035577028403163699184338097973305716299777755091844810059506546179104919776294331290585171081216440756300520166696819358273447410251213536632525394753816301267312725318370069825399160060465010166305160327431238434874864394969368870379831538871686463329295815231135377490351787427795236380461693460341177210440416185875877888007400567395174569577176477106823677853576786223324650309540805474955113475431255117506394583850481025692471495641809545399744321990634068380236881185966927770754660392631587734649513545511859227451187766196915920000597133897937623206200855102768813236330052450462173343758389243030670479962915988946863001574909042228127625629454426945033065340070567090264049884780324548861323539106976581688372292483906080953706212126548129841817227481280645036926084220816510355157156768023447911816000127927652172048043483569394260100973312370468611599534847549433132618312359725830538398273883460789593704488008202317699662070575655730830883724956796863466847515723682604550024142574741289099620659013033854514460183749653793010701168574637375038204519475727289959653115135684320370248486633691332204072791272812666132988654160347054490137583667447272046970592651259842132382620427579125519540459152395797273643046811029114529664637697816488220153106412713259042988582455922308384968234751427627117026142417728062296656904433289877154796947294885522412472423605267747396200842893178362678855860749927466819246905868876133728221171620071573846903703983899655405125810072832084635401349328353753961109637994802760743201996061157368315391900502779838887618228381038304891842610981811120863652425244871028476824953906542798951120780544302482181487803621188070432499447399504073227213162919219962415432953622551500610111628010145910694149445464475627376654954932760261573982432290630604777024103132501377693988365709404877274177438641553731773502235393805442891989753207224174943989541696598596953628695616042922481222891373091964472912705802482840193512580098570958270688749970669548723462818396279990619946222954940472361128767479555651559756685699831067957055892585841393284006784479225532307428951399707775397252437048210847283671535825043219718558819144339999372533173451834076785068823948429286315983071388791679332564947633447460732785372389491582442101680408425356646258927923346481777825258812529676358330140223791590293431055623185450361061199564475736851890897072643380907779197471067774572594486361665172832480836609567681039410540803527506121580428407662879412237925141206702735691880643676970118723664230170772476809520181049242648568252727254491272334199501925323832300141693528326304368860025013612157343472120189610387237929891994726136107981099116932276262292262172372970821687923011127614340485748882779034093116493469800941512243509163950890570142806585546519776214724730722313019443993944728901908940669038137958826042160457637567890547992992463756311069957974246959853658655162200932282637753811495093064369790166177825263431589333052021845104976548268606787330657738028915908971728519684144227137085277409321237982383025440625086730821666232458323143432398232104969000378973464693354515352701677033111828188905333863557804250056392031555959016852347632153725857737469479154814391498749366863584156304714184070324060288442895905917731716289379230928631486253282164791146702084452959625703585490046988492532601065265168380721458071424419510864720416629581117482616059660987647432530894369324525265273071777381526680532817978145906844601761690251618728548829234203361025181693677704272965367456683267867876091929448519793881053886870591250932770501923969746312214166306386406069973882533408698837330446501433195611554255761944256799636465236471548615791693969470025744247398370885056741020289502422502026653028424236200023427526746974044710542128819170952112037720166293642181663422811024977294533965488842977355706107141279601722197969944958390691472153724451685722653036621332120074886725125548918400084876927099110995963332933344776872932368388675796621405995139491729763677859899012748821022142220536280649049748805707509424395712898155576381467630426813338497544047899780393083767559322515453488622224806733954279406800903621989511144464521253974617685529106132323094145390617881280016279332683568000712769026767954542698750273057728969022389093056316664926058428590586029656076506367105981237985483928339134122903733651040762389373862696337374345947566528143108321876595942154024030887173285516281843160739341554210494421699169639739718853676089444776313251341740368905297913212968859889667341790389770518861345550989732646784877788605244947639719112591303144748734936440851551811200419741793768166606723680713881282625047051928337666315812448151840375875743218537669562578360141135624865277624203956935393741501402304756506547983878685024542062283857497022563941363870542467127251402195942487684367410953113975044933294773625316768876663715646431509653250935932327420829888496584154616161338956366951544620493556100391986865396670011332111326274750752188074774563837932862391128294120662681564572515768028914229859660564451601255973894396077066520093795530847959649399477830974530008944689044214644903630731621952035961781211793920601348948407050999314400926516743568677602738556574014037375392509621071801440476669719311959468824180164231954249324995893930018976877803906840816428621579797154644295575669850289530479315550994853650036491462086908650651172931295599217555767831614698577791378488035935547845850721786968409280016530205125501725822241246498203949831428815526873324290377259370914964783094808140233171810271772933006704425756466790269972052836067540894389869844366061626334072816483630268509609862999691001584213092848464252600434252238153390979607952725882076639452634883818462622761844190243747901717681965281225673471039666545885149520842527182322550367986279473300011960650779683045439215396204076803663176842780719702396931514906645135580152553784580352714245216197542368727306957441495991638444231304124410298025420419534788668594365033038977391208238881708714405110454549650628705352656717102831006435802428515966101668806700142265181865292382587614649915165238005098919845915242543548979090950690833621555264423221544666927778495163927823064460017191107892497244907275246777866520283538453813148386118133749923757759705102506442606652070280866221726520546482596008263779123718040305753342239083424748929232046513709890322188060465512808159247604900538012492206672823731397765459741380043795276189208253738941628507754857594820014837451922406257845780746854405510836104597194836950836782391378266028239892837947103420365649940927501812327074962130025068545240879615738206751669876863541952405817608914845071377539499594538143442398675233458995614495213115453000636612510575689571564179520007303734029918106277009092129276388107538288891521953076547271641864126287899245031874262670330214576139874973530262308026349049512423777638885868646527834826595087605496328998994953469761807160633110576641477519549445909707754472619642456472862084801508881406531603798494993306196774127353094889883519674730993389255942754001766350795467090979102567574098899468742684052795490552253414692521761151040004670794735683014981729729998413360764649038135866873619318328854894969268284392284809707956376361972661215654165654312980655589322816222881111873282297561868785489652038702767046855699795212080524590096875809043127549839485586652758365026153137801012825216095883362204137672124334876504204331262616446496186270314203188303558296968499688521469510513507978569677168412926376828734814694855994696009239701231486774488012758819093972074304879308521730938881238395106915878060004286191864694907120043351528413626396744192516955411796435697371028976781983100401537091860003620286344997719649981740874254696978861327948624077774075094913501560013777972237030432840020902557167136160578973569697531179603990510320203585773012076310425771907196313444898434397177213158050821979176980373891872983403068792713179704980087790319482670220157030578512915458332895955034269747860347925493793966020338340621097473283221302678521432817326245599412812123215819009955829658441512142470368309185202734276457197475894443241979020224892240518302039780811518119628739247029622505902866902843035641193041230102667374302636298856280893130591910307036674252245038083783489092072407730519772240595528121453720580396006287680019515697237536711400539851935029951923170971073162386375479505823603639299838861827863086507218273141130255034703015724393413900263941330106748945700683064354730376120496757491223753395291258714285885366566091174613828585842614773097097956225408742065755782631269347196540609101871107422397746396216281678865172564054946227696179235290426091919903110837393260410830684862049383835457009524299626491174986286158631654671390117276887442332808109489817639577891387479127305778970672944117746192930875114774998309009346335666969533804018723117080841426862670959421977079587824766020851700279166637935180733104487346244794891775947423785265634937811621590615428755890686101570293344932397482512956702598075824426357489139623540013280124721516529992207531283220258248313082919692420997428300042669840419572554140490844827379068327418404950080427108673677223872334168137741547848013996505734726487559391924225805616650710689781345023167557129909896038428396204688918496582463514402896661735226926924233016679911175429018530081689188465231355055887126767733867376528480657182471388873372562781280962060245886007091929243589472218483981698648026334720586289252795255697211708068615930198433314641438449025003579542529508275902867215983934788239578849482013598098320565081417466199634558724653276708672378811034897674619486957819641988757077305335716742551227264668768450757109050879848172662908297244482755366453743167272344475231604856165583839670607863176543327893219046125522582101867355328627111251498721908329608374721749219983512598225716593085731622706647778728811982021821719552111498084272805645914958883351817811463266885927589981563292522336588112393297818997467427075323994254412723970691932472667091089926418904753085631274545713983650054683714715506740766951876153792309420527453677701075450553229005071934463003541344037708234797180005627692235561530194555494723997030134864927516748747301803514535608148184905442497574405652362789528045416417126018164125129008090704589492442153249354309246329271116948086026219094079198681049134142153990448135803580207490614224566285507256313143421300894485252166492450561640267278429726030178435863575754672336683707746153650362832183087165980888126565128690286526674468218423573574256143095696668010770367443759584537313750769228798964540919164864330373067356739278543951143745158598482843904900480618087882498097224939325197367022742323040828453740807782831018007614405595643914918420987274706369708741108059596294446276713859726779435606004420830181688715663492531059392203012782359777712722923466382946354132712259366094968736421266064299294552892326883491401577698197444396080132829649277812917515070425477009878738572155668231454405208473126799805223616641468068405989373677316353978957300136656661243472286435314772489356657139588650572276559592671706711324153728106327388136592796012066120233458197222072236277718158937982872699642311225993577739689764962301379507710197094905960503334470677895623224574822389673479684222660087964316250324055588786631742560755354444228981702821700081874482094349145760334307140738555987359096464030724998737590999625993035893378949485053214943274789135912344105997668827842068837139228257127615334180330835558320462460481618189432677685991109678189325173687913507040590204788804955443891487201254593166613529796640726347119596507388082856572662558925624610803549765475222054677297196152449584858388904241495024006765466868953736240195425846153443146224351751327636827028135986597993698986906344037441253555966499904953002696239276067394959210105502964117104898138247703744665489102094331208182116797164997901332912642399022117849380088332179200772704044582164932528796276688641696163269551397079380872078643029744975188554269628188115859278379474847461349919772422347825815256202146364326242198663344813312074672371953510990003982971872220191846221460945305134346457011435302836070649031684264741810791267691528613584874747665793251992010666139916565409931745563346390698254815619863991070330560003397790257296848681783354608498373302760111274599449021409863212761634860119864572756040272571395511854437186280299540543362523067413353308916151491210050591567782885037414411226797596625911762131629804361428434554150051435157959583149320653570018784523850293380007444177643556843514409220513242278914943738240442112318398559237973055556044681214289014531868953703087043792534092365379566220484674487337048220838442285836976654086572013730174900077641904310839065986648535610771910628572776105799462161303932858106552503760036981702495801685610838342216712645224565961076968659295365239590742336135085479584446042243558558729941207461775413855916713685255948514041979865212628133866705324819548092176061799816500815150324384671126290234958391525227513506160682921516706879526617933972765330316448062252587713410929403336842446537607602153799882363069366435375154343399559928401697406203867494752783440606730238949129744218368065754069386434420637971216122694806901947865658223750262099783148970586708711294681146884144438370906931999807675653154472019244098370890580168583242340453638265172209310973086719320245800050222550888265260580371141129050431337799931386823240405280820789159010047305860460762205507228553415679109531605880838015566574589218804896357300864630824883636385260640102433336558039757159979842347575316699216551364576438504856986528723890364257896628213588495472145128280908471211571469385482516992488370102397241040944949136935636364107522820489504368067821598972472304981918528437876822243289067263639476465077519046697637063689917033228138030007797336660926003254692983291714966943516905005973014544975575246770555084731706539970470048966555584518199227431775518149981424108478622476275397056839221711158989460354580554380407650833680484604874676543161988800870706879869743297006140760532221907323075762445682917015968424217696398003148190722011340151469629859798879048833248896485758465436594897597913965875357735491349689327132877885943925265729718744565877689431410181054150277223195280824696766903552777216107273552336259533961882852915048906987851596627046016815691789051434270667858928223017798962608852285969925063966824943805101132980090010356138336034473556418245143202945004946277546199981580387545425417102663663857572937353934313588478451461358455178261339342050598676388556775812759441611386587248893822158900092155108849262290503420117249663833848545101701092420050567127820929992188546749917402258112023383474247139617896758976024930987620892618420735831900886423977241848155818797273053568490847733868703396446667360864532619060845928467572605747334474719932805219502361128225921291211365017157453228272274015819811620544709678813148506739428586494493082237002663875021395060885818628391762810169550552715726022292861982066142580143335609919516270994105227700126034261588657087023446777614456255954502557536603195408097319692011649928932424764993522823961639441097088557130329851006319448942706615692275754106496684486111738051869029219864927306489459097945251088200187100191209033277563096647856188432211865283487725632682166285835754110383913118099406716824698956536342167588054216950576737411772933496550378196684315789306262651846056281910376456005414669651825179327553850802635440737813499884854896404076989230288238066012731238977141749242559999930724667348438604924098220468889866031698951751282643898067747654871284083906118976032102214497052939871783343956102817138328725072691603399899464430162383209738969187777588062920255882639521533642475011183339278769542518925679918387679741182935189252842023972979587124041960034995971074084183233135355563709187906375461007898993574633943588767382915095192632603078676450013034568248967009765229314588604385524685303031379809731160311878505929381244843191355949040783263133874137926903891544408818062845162442601546472134562599994564815753834884014577806138922907324867215972376480639603402217569022165480066169383326966497919419265127208660801132098437085755212147957793035383528054569776425022377805899862891058832478472724892222174179697322895375052022551345062718814569790848589459283709159903782834427946994211449076524559881978531261697002020302852581877928970721121749606316233115969320232113020858420457112336969221820834610894539417286606040258174722891365919678587422315219111467595264165768922778927541682977196061684563967228756454548943452459577397649088176480791323721779241356164464754818591558144706659191590846974962995355238418656333634795001881937154037308389991331084309172664286909302379705488560662198687572914922030180004067079443971338362325486361559769342558455436824560721364009080096286012136228327594898377086363562709867198018081670240728665609551025439629888420401347088972740694529028926559658299727201262240823310086446354814108744912616873473569574745918832598879792434191309014506423950650835787632349251910367437694400723618912251579005428952740330097329647200232851506848491681165692759098110005112863525085668078111582990041573107633947083403143017510436213068110568410779195156424869888835238587873634212032280992047555130411893414282997098603108816368610006295986407770417630744282995359331097339416490733333953213201927656879520796423050482774060501491548682029473014264430185465058096566575943417750773414497039143179050674193486591950036823434383511357043240672376529996729278478779220887433249152820184091280270695044409050423784191163391561475221712791979891563605496327786333917186939085177842370238439525479157139757995722804551437645098787198423749972666193813801736766976847355666791837678186673875354415012034844272241972048008599894791279891204535200940776824856722368198206213956701206858183452741373656486109102095343542111768083131033747309242318572097023379355189030814038609530708810930505390411958778877018006471823991061780369093729009807230754814322342731977791509290328829353079210157260690310809742552788563728455648932118335896472230374589036528285315119523234798767261756328244972960367839178664147716428590864590400236890055540079652380591077180779707856586569160256771013080760312669369512257605005044305989842019662005380213676574856778377423501778641620256921294854351327139115110632443797268963066724164118162317953136136447790295592980066679934380885913796006672598317290686368599733900843590186410795031969693524742154140580123980157175675962544686060954937564330909964367021914983648094618710180379327654041245178638532900555263593240884347978656338320660100638596118083817855514036335021593317551630848133230093672477931382868923245912772371880642607422043048782408974955904822186094004418161998467917549844369746756938234625672174368187612724224459282733811660851049429938935627057109551518532262062984993375440291630612164469454309525445929094750641251791828093826542891224606543552970045311744789772533247220980156828324023152437978504866058477749487069078242799537795083934380955876725016839537420834229437367203877779793648340935889945586532802607510571851402656921009526446255196406597114958968497447183784455831886237670358172518861378944586215389135062285051322914598889363817278360657585305817636476754576524922547289346653015042193236156653607525677458057640848188228932541024626452427749191651387003963212580636958649682905495884038822593335425677010781135516181846420680205975675167086443490736023541763509087463660010816013289239796860003913815205800086213006115572789948818470140415932066972331372863406923467121175707634939577615365913969899596255800276159999109086655297457770490236185156651958552398210217108684186712299291241931473498845520349401353381191779717534951356021714380560816742263631678464784014527430251971218969445901871187905533589607543085586657550570277435412826924810036070152897855166862850543872120868561030667493936953298778582235674274030223103669073891764065970037542074612028236271719748522809759066330635730657013680435915229499588383090967603653136784757634167263623866346859789014932351257055068120424486389293026082627706601876144182876781138137411168870143911813155795576747773781261682915119677112475263963859614581036855504392847134037343964653388194759770196234151111366698294233250738644674340549410600748281096098358325702647063646459866121436662694845137575268432352760859012504858444538105545969647643715973586174934017277370708667314263380247586464205762261355000337408022559466880135189071269012492797365296428158466627897967165573567210608785112537233226988641329289193981201733152121942893880859198867821059926799684146080879498500944235876642250710300560126908155693170072253634845234318536193601623331732222891305951895695787777769648583075064585095591717468376964292390129042965110471354134324122643146460963904215189502885219772946382884265472289855342315289633469757854543660466921247309138346796908968847464679106500865950899592321242555137537537208518535786003659290194199999595233484245592128236222066150929702142580641784279949446037779324534426605355710253570415751095248691675972040139407349826570798421526074439671944868643478152997789306356124534411160266001725469019828225574300922554635853394560644061998002215438061531762938326351163595587164076205515975385221501494283536651900430834608104880431606015340605712054674343694984371661997174916274049521049114286868248126717582317902973592216430349550036025314911147042092864236354036736207237412935519576118017082685767245956186097212347069442557814215131761574477737356912347883305888095880940830134993109382417083624580650042691368187191098862116103203963945300725001141073556262198979782599572348993141353574815140943491709521062971246865659246656808610358455201658292221114404173476316204366667595404788455261346962020709511161713701783624456164839028151899642068618093153489093849540773757747962071715577256881626410293454358547336328169514852555034956823860823223572205383804363973432275692017416234825169525901285350405729574155384935699493055865793521503069135498204321473701117302333594934706639772487299045673789496256906891627270156783427492815763511988758661503379172074424880108604081571570922217007208932474548767784633117949554149361506514317421938293854319128457040796974237122717918935220082429220130104621905918391611028555004528688546634831842720806741421846271299384132406651439516980573012308126136983995540248982702782977975902525281130840273096514674195589096048012413359610559876304858957885568867070924979492619241704200289398418228367041913110344861942519387059124829405286326412392886150169877406253023890130371235845853788020205768682406097728287957513105419563995317330421556891829792328297773015804889984061946140174268207905486028868105529355227423874204440749964503712066208710770163677747964505946242321837587270424741311269932547755867882845030167783927807134975671345527577115269908631652711246151782764483668814405301093049501253419257226539438747327686506388182228508707220772186512021954534343190608613629417575476750197860403908901001701586304446878644237641779070014973016737865600532273457291120370233470308395867799989255752740738114949426005168593638021549502514074285023365439694191078072312275863892700251598189619189924997322897725445701309660350630692701074635254071580895688958510882033631438010710473653603146006243253432937871634760508967202039060822132765052350192818913404638865298144747857162476944347836545643196412656636028794225047252523497806076248782402620918204082248500019174837568816716148268122640687008740884949145755303333891664013548629375025769865662330666425203375538637404482697881672460005731702205806676111894080114690993143381072209439767276784292510710237298867473533288056747219130834938199884590522023962285601039971296162639868922984680450390463984807299097624089545113580762462399359937019684010707385032405885375357638385660074035176227153099148768666428744800534740128572154046983967079051861737176155399840050205513307311789546092975973347008078133860680986036239824228498290985348003676993413976979662916326792880493420587687994012586699673121548368710728999869618881468902849365118507906785575974374053285037621241139198420753321587116952244807103945407831118532065244358661943181751111975723555872051931034335818163669391886001883519006111317609323878091128727984526199223508354980326190096993752594831914996781324573573728242943182098299060033719276951003366440470215347801873559807022288728665562552619052740907419337922466569243149007137319317863885547869253188525670082709783545819670476057831057124444752937521147651133608236090694036033236385628254615028046312682523315642273444229186770099206673233183971210813690979853076067619503812321755084392232495085435961515157692777105703190524563485334480243706076103629259198642675985694065123079923145943679384154691303065569280503553747336619841909365673357541166056803075489824083896908453069584603702444623672298130424120944254929446720384838294875617581200944188581841520097730289168115806622177328103716360442450722277269911240502707411899973782949645583706825473883365460979918187638215922687206262378666861303447902085632608274165510434415046396510455464414217205068803204110048633055833417946181014434136842421588933932613180796161955562075135572533986472601682901777905018763588694832851890575399690930443665252042874233827047696057910847880827320911952750538991659539171407297627402118349766118301660319472074210928933163930652884587600288969803185451891540550973745455209925047126663507227323669905997020335710172180854041118995820538921312816151748086196022130826326206053948173107793819595668814198366552251794645073549400488323150793784518549781132368625357124221695836563889732644270640991972247652916398628800381363826113892961611845663487409073706706967707105224604337569715170023788859900896478365530722286637712860373451150155873669912391041163932788902163499583450514575732788195992279662508818693115791354978405054776334916574888924200477585198509486695379484449120862735700444030016730457565642908519477558322361368171841187187403600232376628042202873047494166122039858840785123876878169165407721593032548411124010556441835911752544539297102934584902305714154196632102638221311978335760552925048153521299008790415275222532082586323820222699629848965544738625421188296330110184169993103732248755627123495903321138377498839724242908604363341034488343393605999405387196223454324712674848252225594781677868864851481514045931648635365990069500045809397145854151952606759554845723160438376991075118847570304590473916920463508442721368687896701180908121150680459455514923464085089001171075534162334900893517772465399425997104221071016087634482788885422298000627762257188087227430892415262532062125956713855589991993067062300803080098043518257412689325752395014191871516477249081475701187546452304226034177952611437053773972385318989183610643194422701906085414068031418290634459222219293325692238501811742535389857895002771823126471529454118808587985267302582990834108224976653217180624660188466423761145340932297174045724839037662735705093263296097128634129299247581470590347592034604613014134301695199994288084179068496070791732429101695769914541807031932314366985523186475761897504386124284964324567885314955599781031178686046391013216028653523576269851217539969409134593573713637197956898963646940077182353739246922765354086147621722286405930898092830061756919181725477156172422923335146307532367782260242551262035077370388218694495840730490171609459129471600385829527437619408444562471067812092331052052626057749875253254288436098255488649168724084675892996744700196559107119393873172135662906705248463519052578000060355802392573928785128317147478446794958789336731857305824664746686920244234550441967681700203355247721093662488856849267466079380080980662473502234825671255444937371466853754244967551901101440487454387014193238160832669767092697456249615249519269180562256523723301970748171698384493599248910554985338363664484308927685096066988306606522488238084067815154257632136068971088796502122218842441533191909381149406710661653324435243815058078354167745295807537741146018845444248315567197821172966969806217015775046870748704222594369192439452665751239850098546376773658840494966594828516714733052998514595935294760882913932462212759687659615107356518844228577987095982968530250193340619441807540749714996453473214329069103796381061387075310030977148969107348368467335601299229265558184572986170283634699707820333192772269318911781270604585386479821772253252941042043135826025235492170860045862015953637648308449640938485640996308512607648017587303178124598203999423117215066240910608024734486967104038800367477141166637322079362788324286998064052431270262315331570144582816328332349110607100536923105163986304277197480223433980183493443269602075915008971675938218879744865703121235635943259048506228522183364293298388610773246252093416744227596016928283393486245858586402361461343857806379979920974937839699771988248332446326881946693041283348603974691334123892603648932833044297657657281532305317523854114759746497128899123116597830940784855356932478131929009960123188395021792711267187185235532472767263151663753437939394997697764153114765735768600492058447779029550049848465205371705063439923946967198488615614877588949701683625673480150596448811232699191782195884800796553775959720984829876528249293871607051279409848856299941567438938151439294583147866103675684934918841253704701309867798465794644596107971989205110236922901341115906632290175128288075265297079057194177277248946846027718498746602110425680544382037560269748855953298577145391620956676813469017497255520725155476757538090249684162828004692211199429704892594566195670521015712699347000827158201991427324249856951713369710693758484574621617544251451523444279529147614065877805044780310111398404563597180119190821333562127441765687956720876166697959436146019807992991371944618563938759648199024670030472965921205821157791769102500834986142492919516026072787807698223176506169837115497811271925184765058797017891093603873875970774312097485011093618961149787798646335029200104044241720501232359741777558381605147754293619097992805367951511373306747304744771689231725296458239619049677897215371781060755335737225662686491864829458034792745839438752988898699397468839466223648057981114186136534147650617902117240926446011549174025670029678494565732342286413013474721727991704778775403945445809169052270079642030210050090417858691536556582767038863011114026980263427350608515166657439042937440832184768183772973516163621957245994835969845413887774643270840122683409722700272005406657875525541112583660776138630358324427826964248157580079520358705967833316348982075191955209181799897578108108423418877362378223548558353746519071245941078650159965916320506957711712852587003485810094468302554849221607105620413456098740993528074762614651540507113398301679506777767574471899280342351878927969032064772705882562146918396875535963787086909657623643131264408267202031432082259989941194839866545015263463226739468872260078456972040562716130580899684503281063768366737516047629580354749322743496270527800063618717601617247054379981198308747839457107237579213908549665493368724563303557087986295440574816958765825947773530387566116830543583255500488384494433191828563736784540697740444600520318562467603858659429082184084026363573934892461939299673460283311148231316672797394926045392096436044742830049888965122466562449188447003727404311034157584460187668292819454222078939960558235569968851148601185643417587219682386126599300968346062698910694017465642405012988310888837539605616288933344928365505937502899055473347177013092693090111291625304785785694961121180197803143984340069870510590226045821297956844698361678468779817309991508410800071948846375307153645528565880521983943323652514301943667637748466416424149360308556366734868750867350057732875861333677035296887199725970426056692202772284181984139879104370537933500399448875467815502544391723100894111879602422060301560030304997963453446502276766019884201950427898813164647471580054739632603377978616292741179633351586933383310275565462239263557132220124394291147869061056288187947570186563170366248975436249710159330351998587818945922473204927199298130832018852550235801232744668541611927326369039017830931520857784442589133017827042673068824297915586353169204269537470947965687301224519969785712861249940029757463815009006454220056317957008128559245124956851668466475652046852669548621125216524556126055002600615882169151491511849437970541153445162008736811098678441553267058010865721933828540262876727528608119832050042613879647343974719977115008019012805880663776221734615741223307065212033652931404981448345030207736347245165390459807733269907520564196629783619575122667937974590559257761687052797395443422806464591835890015521551655273523415183695115100049646914814559640693488265237361585159394799154865779694895465424613675593241958079740600902870606420102856112982712657402857942287698366772901831223289407040465762731953066119332900388098181784821277748593277561283977198481018566023168053515066283787285780694878232569897732626679689746127456181022716361700831233421315432642262094663593125985233588023451765893622730709073484362868322702446897989273122175720221596504769055846369775085171337813300839672521410061778267159570649305996822718453116972408779216994565178618337083316747037839976910618574770075280004060767524511913803116424190139951868358131224048294739326534875143249554662752398575047247892465174865160288226721808823253172795505972555044726584539430125266197177869988510297537135997526943625543226864389688802216412215383696079715972031484458920352660443369419888945506460056454701832563225742070244613509759283518339267187688734179523236131474607918070143850282109535648865650160190521374422985024489165567475583426990502844673645239684873102907094888623386190493446578779250131537395840719979432432115867624032060144717001102854303821400225422655735587479837512315366724625763813073021882673924543694775876905139961929158775522065093871277799891970994611935245682829785971102575198197388351775059359123480728594627140630809452702164682061428955842938389527663492586772055002510290223747347138711924465031443038344029684589518637815728847526704551116074199712063517005070462499029621699690237553687411947159663107744616781142284692913656726995729201773182919068771398805384056273876759096533953602431605749693754914834901643849316528932511970224450744667726278440018205719080562660029372648720184965141358765777045494776945759227927882493898523642210801292753582028666153236989145861213207396349601014207122552408609859762629035155202479386271586411373517672235943455100539729866694868290155393725350234818648379283405465854714181377195008372982098849010784003360899755479511612595175100723499828142255616739255245994491362106230892912037100607486383466190902538221827497715782728772072475574463294678427609858706752485513118652158503023752809462022871809943605506267021426796569533584750290352209722829940278921698088366832832766090489895137090959893684844626314328295753169206529601128846570119305301515517020521841450802258377375886852169663415603212381241396052128086767003905919440401586800265679247264095927448396224640200606592628709785430991863627582786989519380868883206935974084845936618444793146848206506514417274898011340405887449477029746799742041245552359762368778462998992259123707305279456521776763302164454304189917411150478448838729175162964826280951188186739460000810527632708164904214642718039857521259016324018764940889699144347688804008084288970498754856203977353799518690111018384336065466231237800329343012681171436614333379529239611829986651636288074420046947490363046793905798223208629503817364941172930979468696548844426913862917783980623433254141247679278208630944383320148143310449942766418683782364348018988444260745513095236975913837593493510290963817389331970830110754416855492951293705934515750752997419673706121873078438771131280310045283380403518272014571725648388013988323245878075275683220145862993246942949625258198284493526542316953730124259250825840926458649106183290268554523916125015506103508913393005265336642695942890467155174007204550366213905318567795965934876144737484736434340675088252602478217107041181201559756619323363511761205434327506782574135755346064058685260730730855597127475395436498300650725712694886499276958718152905139457129982657950830957473899609690934412850185725796913364870915677867888206076645036591593417522418724956143599812201191276125658391074807509235121789068498313640169295451209608008854226919294684429408648265485666782227852741831910430348063495873131718500905697095689188271370149260978940942207059652305645723431271439281779994683195336911952586041448731029313263393276258988852444845164585584181069333235490015536786415452670779446355928940052417043201070440718029751317483588227162695604328659223529111717286974886688594096590755909317650663393939015656609418897963928967916266995291021519128360402535795476309240868141519567683830371382430829195135732779803633276250309844085377768868241734464054351518046354547482306431551113512470557922097706943702136402318135476175908100396317601797556788753860966954724381547475255770480023677518031250306598691249732286695089849553781852256376382975719341521251122363877369592171387870517994548205622536338473997280390948125748836708919714245502220152129819679864079972495039782307501510060405644012763526679298605036536533557204783823535263333064988657383657378850352168658310539958234432693478732406983850528502581001060163896774751786276203203601272752788358960707450778672575306402832225043087224707716453840497072803386975257102176074461449122481820084756186320636740299754468136165839682172356291651873987563012885421273588546922387220426221070236640768925132251862064374052482261224873197765472388711145480819256280137391825655684618666861791995994789727988061308069683711685741856390197192732720449805615262904639498103782874578429526159230482529339064179595089463351765228653450666160092283841525655712378479245557523124411589822254469564544073115719166842375125739524298987634934925711946421187659351953953924885159946911249896318224581722109748634424276536617034707452786753360190783944646342190806991751118570741889835222339129315277450991882515660038957200312885511910875618941664530583579142300564929801493597967320717771601245620783666164766934495999821495309090251776555489113665295257085594778601306833184511781983984399522531828935655754685284019049145809716635519643262596259373131263638274387622853170236796348342230512628155854002989279583181939827220551300622026427676478352715377890794938210195885273543797415108179137400987556974978705720829041287121461274360292648921654316668949226779081834050043753942816496986979961326959249380950233096762706922943293889170591883696315165996985439631629172686512469792781657195070337944777033729956963610282583270858826360773694650960761442162147996099458812460316398963629051724066557827288451173538185035605622655779173456291273216154723281353431134243905426824801874738837138606907488698945339048791358285044609620973237641389617892048615600351596384282981282872189508946527326345961069064489581353048660108398931239313713873113570995906149688184976941382469898133216870792245894307429337058522672012925952218692877747366574856788351217342810473847337214957374096536503747310653679792340303871256958264410152849614187611639918109839191865931906062717807338950746172704024179044657144673019010571223029186177904742024091705073351527183333773303322498700470834870215805790466709658077939334528142754461356994409442317716543386473820622442450070640805214339665572927793471815182797293372316884264324138804434543241744571811283033070969922449916493137272068254860877311878785351842553422256555572396133948436365081453043276207483226371284297191460601780043433535198004591119492743602405215157028368339305702529786516762549044432728819875920989074669813472292397624830780176033529028313845230882370521266249083212996236053680997984947467549703467039839184026602265922882773536992190216494975611682027666396154380595752961401255348653397235178088795181942861756310979309396308177903831555952826030808492636705729168802962812496892745415908094045798171871146106914035402962282411240535839631921635091821550056169182073997528219582812879530109170654504971578103808928396942219796899641057736966225943755100708603836824020131423119629083126923993724796851057204573713577552508262266709409875304356909528578037024764164930442168808318343326703911308771641835873992365126802647682699452587916711702005831357021367755770550265566555493503370256613541535182605242751327016316377287043111652900010814296979994627467827534741190055746778642623811181944773337232829738092319401486926619207323624858931048726872881784340308454067167884930276140721233434157619453608680606306225673508579722425878758353438643517915693157244980818655344895812789401533892984642346347013773854307135959733910533877616364034988261347864370819847452234702476426870172361773436685782763911476087523651057866097959456899157009839684613599624706494230592040490190700237402417555629500973345039776917481698634194497675439665266348508237543198475272551550025176298411856876034998628563046287707090045720909841170832740953157839873437727348035035735015892839049223046841629178234274959884946856775201763708078363253425227794390267739306082614286101709601769583501764185668425660659798750940297707985859603964787465059569859304268819617986649320647540528972058439322818376303697833442002042417034896432369600832741690246983376764848924368874497185928858484045930833642485641623969238472471105429432061845986923133167018375528331041771473973261662987661721034547525633451232706028119032002325659296755463744719907344555926319600839254789801928502272212554928859941027301836562205809463953499580770226707668419925023049304244623803854738303012770214411338951237710689465730172283799142922637794006593014735791250804327683451907933410134321856915012841586171723215206261534886517281820164423352837735555546299381775913824219934622539995562787296300835097813358439508752452176196574414755351905649116380288057812319840770983673334349064752474370235818780288918452726109190711999828487284711447974502104867312567874205367145641128850559330685452363590708234279026806792094235265542159823335978752570535135876718804228833153188070385561617691430005992895034729874132742894205736858890164413698503088600800152717501259187868232404368249814297003542026193359844650143842433104269919147402728973870176721631916470806613794338081735318256543914506844526357705343102569756884013739824837459959551805459334319085217407874224780136563900925995801228356666022317891426697902408538854763295077329979586637121168957212472866472096264698551283772806196259790277176610675420453253284763794953110783295805108954360205846131567196276495887893306575841644496607933716917079685397389346090588459709962809207396050289580004025914468489731024578857303147550850157842820129167943281130360729879762907420547631897461808763754926066567508247206322071382217871851855040568220079345118101894984015368147182546916199936567915648610484123820024088704316075943269269265391095891499386194081047301766262715737326752159090063159542186434876141174879958598771271843305000259820313441360653709848200077517191667451231451682888425359387570485531634761975431709670909939320341700802104654533786457191522275349307393025689488167768998771037427392217173061085725672451041692685151880494864167281541644897546509890722444774737238508491796573416247299297956192994939345224636343949288883576771027203172189059292629169412283336211507531610511911912521963125663886427149764009469562911638872468381010160067860954510170885598591674518140456624711536560400503144763169020091102201689846031030709311629410887485446950362016878116732692892098091390818864033954622551314501411925971163280521146619051826249466316552950856916772544730439103768128385611776810224317526175269321562148814337077934548008323916699947104969111981051784554435862007249521023347984721414767451679427242458327093900674300447528886032382146061273317330943944840603902491355556546658851628590242401170020140730957007092853819201166184088896774964819908859804361348264838072067865675012750458742022880618553090483482770118932046904013178739848919484222819137140288782294284856960172691748106295836428690119222731350377316175326963681912434754720979009442033456088858043155062783355465727446891658353214963371733599083502318400446101197542496196237114840189103175946857952275494041567741085571240248918510706571063077156539637655907730155301647442645582160768538223294814935924942918778812625719003472491761005398259223444609506052306788974420625998512714487385943273295401045915216546058043003626297564643627960753299314983409352121320945281346259447052563211068869805114160063043119737763278574586566421872400078290949272827668745366850399122716707993355324755581309340062850361895132451063958647358450676570694165922796291408106443579762685776097104268762171315154264431010208589008831707345783683630315086462393187120901584835863231826485015403549231390094654248566855171742203492949828821129345639228508508329297218094628158643421779699123328247833236936230473190171726192503590723214221905975652787210685655662080237906496339401053552148558047989675598069841837187217645454755155609162802634539770983125184409224425698863768784563512194886833991725564598728857049348731344328477816784566185665125412594921678279907166275546800926159766985198651815666484430237309717917211211485015251193638076857641010668769906601783430339527819693895378657185327540057772587439922204656346627431194770465092000192791611413732007309591152380072215456166325937013481192100288049898360350105828747515092023574253958309727414487860500626378269640028951283389919263921399869912992078833035055959946009377391079108018174807509765078989372210125165920730475428297275210989094914436152070832675215096699760851044436155272995906424790767850358018769467783091729828763086213362024241319797540358650261497971662382024879103134546453885071047777415991641980442994518567522570762864418892128379279860698762466126867807430699792273419277865401694771659353595953886194547228846301797337184652706852867508872388244952579287658084373620799538202155277148607735327698579773826990991999389958809599504094022799028797647324974627048670310322556923362334207499366922783296366835859360017160736061622365480407041326920325167169880574479710083966996493563630828947075794936258272387632239922159049160311955899451061042367692044039004993953896506368531966602449135355218644944196272459903910332773938955158748354668661609394555148873951039874594462305491188473207549811780804263356086961692625072266164741132992852523667047361388111148924802945964736928980345411924460742963215619508822070423136119311023982344353650891714972008540943283938085685206912099292676711661138274356814393023407446442513535437176969507579612781598010084009949501109251133611819927484066092291155264776607223432224306376021667078527043461525886903119162023198059322088509461902086113375848389518468491951119955116431161547341798068667902762704031763312959200009246707913973005571128657993503537079955841288831467977559151550446623163892827032854728283720434987035156358033708043995850408793132423377567809513738576222536615432187369653740280570606168347511204556156998204468929620726780079101467814506218382140144947917069490922001087193729187643513207618995806161966314980342582786264828147982308069533182332127502397113260567615091275934505632652943665875565484730985075016275403085115866751721329410580650429366871373748730058265485286440317186622599763341219929212301231298350404102760598269439031191160123725236447359172797600641565337380249640258409209110999823271741273810407638725198757403304445690034511496391578336881598211595472292661686872678570808440993084528034262656799370409091010916282838484739023725645652371930144842851965130860103280883099486239032047687258195119530295051561143201311053663911240214889003023171465047001750810815856910622719632965424885378767875883104219170434241568171454790164859816097859956178572962929236353004923367400680979780228112790520208447828370499509124466861822248626255253999305905353805393062287866567903483709276900899348669024244232004600441191425626427664308221038713844840500086242579176668579846728035911032304956092094162679814326184472359524930713877885610440209034352038490177199607856135848587576782399496435398979655801102591998221431373317188116831988163753985921932871140577692422726747123821237984089390713339671919642951410230342822639456465493995410941560554006265923476436751367092884561580505284826241088018543435470954042902601348098717793303727479020884956605767404127400809502920531963577748476776053573559052916237903320035843634377202460500507527365815443182125595113076857996879401152258287092656376607551329860973266181545588242979757101702530735495654340040158621307349524637711023437978494940832177112043900105180521437596176493898341482185377155790942797487514723020233313839531871883071372280979963356124578753426888161919114274749675019630696546413681913042542116328279656637791044522715240447163947065924653187310111646523671934887622506120280797179014810189397376844855800236364195152351305329322682005692652252631392142591104906828649480943956369847270962307164312002791800897973077770433801507021082344388225799858147820597612431079891720732458649770722779757864292798708148302020478746050660189315537043204610511187423807929874223919603994915440747761037691129975605181533087798721894402506271821895697059494810920287744687973387217442439252294733559644899063354312753003970591443296797241127760957275387747516668757366443821775299123651903350579730212790245775028319891956544952871188585391988040900402255199917287911210395408465518945426055681801423401736982175837918214061879801375592614342215107742460443186786898513201098286498656607081752200408110710269002425595284787014727550657457775322585874156411677742655031709143108257050541692397438407866883953439419172687564222620481538366874734027832163522240039351718481109893421299792160585193006246161159111200391088868265797478254341988868908950531339186271135319229583682284134823464383926786530064228896481347592756411025233106727918104185718542786885704508200955689148254008968232036945616127794775444915627928218720767562445077059951852053605958365907275300691606987972762754902338205513933835114029570195403996473116976967886433243543359581203347168561367321956350682742870883674539167651267401017673594934573200384035216400734647357508047498989720119011849366768725923281057494148458026165852282393455327248281963397915938074657826916822122119774796517275749561165678332352381405862954397174953625043328018819330162171521600872775442119995782681840757473344849974015830699433723212989234569319269351971702804107537088190840559231043851868702502651569605832885928067818707561084519534038450220518863342583121023005163394437314025051776933928557950965268141380156361767082874909128009079060756193667290310155814111168411790710855151020371582848714099732049085039033984039554842057373921560602354174966602109120468505069085015063322691524166315727374993968374677297153887704605450579492143241565566341962213746934394534451383551769564443411705070502336514096796654795887464341930830553757586805344696361011407819345590364135660098213252532614705250034100193591340559129963275371348404961331859405383008998573091241386222417172266350501772361023393787478842704459299691493163708460336787935906256895129090377104884947591733903174473470118699233806447676972059106701563243547438219089044963311979905651525051132920633202092214741993432532315110452997622754899066471224473923286331911524651649886691476180550987524320867891273237976409262221615368577808983419337723612886126885313209782323744529172762725819765286729594656427870038237790757968916614459781102096316906869670820268006362546340198808977973807945723335410439021738909122777888100210088790544272022692851486278273379851003656130607094643727365319383930292273085689100021094155929547763024270467326073945626956746238778722850137840305335225614522680394810813359670226466911737675239879664927671415456596599429196442453001167570970809947028544364087133003387619924734684380766668235126841439619185721427766934105838458234927804114091959964016902650594694458066293457946647610844815865119269561715062092423762426715485745500950072781217346149934001604446690120927052121067179173974470785500497234580792957332896862905952660975809161544625198554313868320085062395342153783524156243099346537791913767981936304364117709755657564685172200065089951011175112148104706695355271432116205305281039014494481096273128111185007576906119710046302592353993623559387459276904375634859985901255171595276985162702664883755681057126587318293765131207768035469405824854503463526107656211417512023084630543183392964213813963511992748329968656509351714880286793042573260782385233520724990535801379060317692872484211924394690995939317122549715226037784261180613465829290232784848672399089887143161893664803760456966545246308525221361178911837514581886256856226664809420616747578187954253379047845846358922950006228534925164089222149178932420977634137079446915272264589900995807077664744405786364039975919671856513384009526793417441189047111012035669880905320763275582870196095651080270349797135410522316420998492248028753916283128607103355380472020249314885631543259540117485170746199231593206360574690670845503459978271159324390137468897592780749795476116326317132478605164392947897229448972973069199097012461327938690995237185372897162330135560614138727559003326099790766228564741308699927831706964899246931471108483435439067290908450405171162718715141102315315972327797356982965250884068054431252496765765447256328640468903506568203747820958455878577070026828892384366386234209296560677559447410071244897587184104647946725871481742155369965000156818891925076135153218986026187344369671324879160789192859255383036925268546892105409181275424187603734564888157586980188692464965837235165144746747312877002134779398457161446087233981341992892616779469904180913174512633550045779977515714559269642149010513117794101254448751171799191962821545593297371111782899621585029763691110795307111627730529249692232612047781424762693168501489303907779012163244712821610775172551468280344965710090801787698469629994463943167697081437222209752952904743558777386177749233533438887640389884557527351720689987189699622328466027463121341204365442465757716118764261612074646989835689817889057841059107269947772721914044007503488251396484760008717283179037012756767559970610293268367582209516022832622783812767491695487822598900499091909549087390304120172657250112611803346024717402216004778166067386438502947635063800582489274082015258740466142354428262520229790495507212946515281734488809328344424723709068502103391760484981601322234906191219289429731042102388984994861810616933228577518655614842479685226274086533036188967341011944105406058483846071042037202298025582842833927891578583534118264632740804809531251355915912673314616938427874358926863562050369458447321292876155281231009701026279535882298022497304822550862150015562713304053884849929436087871748529409367667377576056804049671060740334087198348391116076428672641128725757547679895125646138119790441669885711533091415272798576091916447650523216338709083264292997720069485019496944132848071448977385838045679762341397385693794442972448268260513461826481998664840210239305214655170883249051225853763243355997765279428946162662190660100009490963901669381997541041198552490286234349803014018761982796472364545902353658143142744133698305893514726059938781981074049094543250202671793863915453420936405943404829779677074171199590154498267651949703512872853631596550809984671383621970722473040791447047800680406281105221478058172920388555151469240797087135108559482091001557478302905643982802731956762723515634444911718756729373445372281463485812952284065074433191680382223950823387340594033962134138746532874880391052904447384430585240470149391101364999515374703359040709643746955595458432923524620854730085276951480522356738670165532065953906975705805081963437237060014286383696924019015489616008348463641733988717367405478168120507785995734308315745701616808974298491357158782655699153802987301681603645706502005181159436131577311331127695330619087396210474964378023027800640264493785956296573078992580963485128721240945447658335890738648625940162108894316291628482640768601162232230887384496811590555952505641041516538938521975191115979848923658929342798376968808385847101068939966212439537760122494253321415810679574569253475508025985990255843154549202838561986580058542207042302624688908278182876438296427481678761393321751764495171387585152507742764460490443555885829860008187717235795892395939833511285690115643653121457255727194181140908079572641206778717820547158962635806658836051093442957637628102501888578413390135030292841515854212457973158934607001932771131733834680720524344654050130075989131316532685002975652026025699263617389212720264873738987935497408074374129560306081292700483332177400301319472055528133621751028298468586595972057170532970294411628142531518691750262332369716316502699367789832191236008354564660907027052307441842519593767190788384422432065867532746462026586546445253044035455722357209127420417219514450380394093824692611999532181636513832291664801467505458982732846056901268460032361610200752189337014552500641426818484758531758885553182291726123053772675381496748490074914074350156603968489292534910325403438726914151092997981951911709164256385926973720023110551188185625636514970606607080712960957052659349938746570711875080625560128203861964581349968568717645313299121601946711183487306595418094169884011991132563984414010203008421092726640028903747903913433452188856557465453859821181436801370139668968491700277375412950233905293615673144163042875388209646716860662201956303604582823522917706083386158584833112017147429183895648361861556110770129871034882483157211926336367482643118348623764588684474331045590779259386412786280526934612301166078117685674722948952342121390936844086595844285812656478047668924766937113132500730418373969398899514657452521831553556621775011257446977002432471137165582184110851128201940383425520110001468541116592331960106494598975328020297957681656262741135319833620470149782618479959587264261944284033844009730620569491987179166682622654979741434947215498362351855586195050856857644070633339760053672523782520443866297141771447286940707627991902548834555271101959512189532271992992077844344560476372213579952307952860460277281929979382654515313181458342623309899658077424567596131698416801292530895885591846526908705762352688616214653101551779248419767153073505174602814001326013922362353471187454575145311363033560190144528164604618938329633546379061706847384942568122005554548250994173580120501097735644910330827560601077159665310459960138673611780209390242669538757478191667464486227223940695835336218125267781797529182240558874862616220373025874646503438517289448236333304694015563502203269316919458360561128542582755698183556916277817057633643780790968844549942297409095191221630368482023856271056653338594304140166236502855076531015852928870077081686488746065553335978892507931308089135163702835768936034658115370594078443521255117717602862623505208092867102128047669327012469277488347258699290845124744238301318133029963297519604382200791577064755432181213793723221727010872688425782231516049536144435611925717501825392648825245928524561137673032692989083198363043289157167382602161645724634266785693618884458515312319753316226966843218160300524481697387408666553354037306048383755920128287509158975153255384222085723457837169158417395195561944894854095628093284099152813483172002172389199590128970207928338049616780651890592291064952175994209752182195531604983867768284458576959600078959683900459922119562811788758202874768759690790830824266279274683044428085974508252339168798631484431731495935473074142208579480887885276933259264057503233410035202446367238787001632271665771795336956421825168194338567594933524433504102416730871371156980378459889242385456658495159115047821191288366415716779736441925338950621928460911272537727880395041680170311342785080482325401976753121668668336847784676711696414110044104611421638080756657315339046254576763509418753112768473919876025235814336358058630922792417278555328958549313218740567034277282995351485409152019082317844388317558556982637396845216814756629757538557984221927103430879102674285102093902999912189654643763489375523259952029751851942039626313802642519463089458880806555607824638426212349868260978492470622186659013898091032683647318589417815839801830908354343901097427684064447261180300643973304235528520749485446090357838786206135196479359739584701407239193536821793752043340563322269200093769394276851516578710515235003962938636489523338068656001661899186814948750483272571949413972546199998274749690159979323912167380283455809447289108149441140596767127568966212939100465083086926217273326395589350722311762861089621668782559353364923431795825255578915999485604879823275611605710839921178056417920875943378962710246204437216795246039462734369591045877263127147150859754586766966923563327484548901896429590844078674269446502943476650330060999631813132596475037761415603174173490761262502083853166508519268252120753963021840329319245043948005481910041861564297144665099438398100970760729189178653288991746838379009423744816274740967619657864802645656374582740884386972176837744054829362466480389988206656077329301757405473279051910280180327171367376895644421028846038713636166820009780903366687548204121856905194468550937530370350020193040893762181667290700282732835959504086003801727541620351828772736620463067647947542474320435338029640060068755341157304279540747511418298104511044129803322949938557304353931160829162639137983622556929315016579211928118892040438476461431951740126167162982691136865948395188820975431624932670755606415930084032333677165350302478893402916468494256433589355107382337463717852094813925527435759855869737478093411658497021414286388172507469964989615612897782160654520871953629717061318418717921827831309478916131128509794398425458611093321869004858101866233352646252408238499690682457724477458762751439046015511078651601336517867821532031608641639570709651912640915421550487899291525811614759060582641148016292077145687340804785786354121742122572854520400495964600048634915980042964982140224186071805326369331124493013855844741846530512090376887833836722676343132349120255193174510909058730581872537027346142383316509505611112409736320527621994579449387791196573935792137033437228109847446388264755833424572651114783084859029959068802770031304536065561768112859854334437949782887758799379624149518273651318983498503080525650636029629965553678768188057828749699392327630263386455815001750617555513737883276400211972625380123788742522122533414941216610112472680343410502349302910337561130367431051720735417222181311855282637240693299416892501518221981236084649588236618143092639343209141820996207152063916729044145154490337925459531100757587237241077707325207423294770138904063951288617686382491141639000675692447091621299419803914404233704641546410113712371874699561311804733394185225261489931990798738744280380601560355776955661394044550193535322249362230626721325917272570759425564423127973075007158543839867349850665669388865688165623928045845397300615269496153130504154254727280299357998475612220311767753222329835133995447940111157589364222722963372218332155210275017187515969663533533695846303032200177492104258123483706085139180228171649004630723757185724195700627347040953944281493113862182215663899833267275772343179145781605208381413476818236050032710349876215574566425724029726232142373620942208982582207577184412762402401207710879032327388584722133047594017915027829134306749611895409102711018203464061272742331564183419659002557471500829071062871321933278768686726088996174757580152113276073522080893507894666748851919424431433370643127919376384139761017034834305620099069418666751696818425191564813876961986321319523257748604393028741345907969519493600492795952678258514746424949605436156127201256311478607457994826041719088081522756896347031538630222407652038995377723992342634734906117352230152557369099249292445319353799632241138044341854042247374127762469294175995735133216303257066288615312548609575031136477597439152479788890247236323356070539622639144966719858524698111663388677787856508812433348645468443755151039717879445923856776119259389222755839613718242246446724164570447351911995606023575238184396211777058233763647745378386813577422434545605473728009766473468812043625650006804332655925288153040461394718714885578416312681055141243435570575721870797047919372723311503942812654137370838891257225146285772380535581212679914502403686842347200291513637524072758597087598712244930919179902780476036479138380574486439547412880906424478475177891456536385428049507882502535180556244112588040295352902009145703254482905212045219614517849235940640433444816594402147951610457198776141633230312977710103412510825217524655944240524180554612958941342890426748514635288481668452242385526929159948571812890962160496428198676082789176587545790516187450734267399012444517218360484856415111180317282294341021676288671739207993402583014191932772563492198957085304218242223094673567101460227884498830018395288134778340810534421075550435255552329984464632901940880669317457605691563602397737408188044830818843404409618978057745193645327947004872635781777939368726175203083137801631722918870014696513879711755785113497172918635919094902338618749152969910856930918980904107125377638134990581713846321043783311435351583408165204367156742422741858675615521145207202024347786498160074295202465933448078985039569589245900352658456773076851678797093461703492204820437126203536418777076956434775979165232436650354510757766891039935811245446461016816881051358955473528437870847027439897073208090421591085988566528580947958117888766672542484938462540684715318010563427684850735524924957193723215423845500399780785133743362679091910448742673744926581255891842737418105285210580200690964789443650901235369934917462730790991716370488915917743820205244785272619481625180195009852847815469273299243054728603711648879605614926213008483230010116062587624548326236222917831580225036452896640009995021357537381578443959113522057558079257199955069707669162411255795408608818847463337435074691756220874701860369365815628222608138324591044077319650691873585258788730221037680101345971674638990314940544906797302955415735928501238291004626594740592093217702116684024942477111570070738695580261615042942998741362994086000989657811174063422843340995190590332993913680755163704079209166096642917037793712912671091431392022048213267890327630922081659435982086257020203964339303659295426278162177837582721209831242218696275369532817978989964040443737818159024396143408870691386667227531470941763390691633087008894583708021062987252676280949675873450062030045839908370990128088166408028428217142548812842444031170633121982952014060653345873896129053191327341654884214520548151348097296813259447641542716186546618129510138919104952721713665137086354212113309711697473723959915207683844862416078449846783345196561630042329812583056031354515896314519130696065454127751518284313297718231102356785648383067900919763456122872758028500220351940100743828276119039947827592630736543613406596922426190214464718796146986324977159642644428170193803848291917487756494203672279791072227680074504058497652187085192907984672773899678346215513963287817489806833236811372605367062264642084340879075822990963343947687232158387910712604544899373036022087184144266470721115158368068657531556412163903783768051455185701819689042413014498722724347027501340869547220806243674404057849517966840428136354915854360929885181280875557287976114889059699996180447303020799722027305238106310404593795148757107681965374772032110281918460476522772125408216142034347357274531367076701233025009461885837062782237031380463777981750779833335514191457173168080720950867786238922212323568840414883969320128387395843038543006854430398065536377880283327255853117097861058562249389707157694971355595194188420878186348006551723266658113906829994489890074888194376221366767166573084493726657897500459108556121294511617235375618593416947285026741673171079064910604440124056711456389915703646346491247482248174529841310382324096979279037541376317010987958482532414238278992739887874453568656315362479294143170018683025732032432165757236338451179166543255968701024035377604909603521626013345719769809248633028473802253094032105757521106582243472709969964705191777168852735709760438888333971405599087861075233572115942937419820702618576581500617334541768386141803148905619797318154580669510436884513885002395130523775313945640304907310934135899504673236798962765551664505408697881525326181303501489060869370914633321301181535358643171666990225139720717135437831273342431574244542007025951889179795506473455127160298318668791002683570829187753415720725893192238685803088044182549934305902992412075359423281566172226454005247352965173989506577956002980986678075907910808971071838961490975898512591556841256854803907221871631127473150980169601636997678107451622447621260154272457434580866560602773273654487316261548114982771253315243626262218998101731386846578778128777721500634404078021043986983020528931106234778267654910220642022027791007182065138838566311709002357488544155476034998062797428010266248490276948874343158117376544737286077772202833610309350652343152369958902928464901271932978418190438198847552453648562746882635544623611197431167876652712308920502795778894447106828130583085286065523373582333184841831289855471593174687812590197769253286221277401894713250988104065359680138315760819154991200863002953931771872602758332582722901975058184298739215407989175309039560884320120410440968149669969289070357630670658437414023341829167759123660833088914804563327166780938518108142857322973305045598523615132515564022307552507682871861229254068735769128280275901826953722255176883879217294054353160932029787711487505751761369909629628773263996289837901644563354713077400750011695660920674985674028361571331791719758581706167082167095860879266797895665403835346345647241529591349439167739433607675930568243464783898261232912476833768706741147718285014288137024316132053278700281263882338179785892802541548542627747328928739710977135511801518889132903143302558982969627103228436062964789062922709640145943417945373525630408298644919318408228338040506443728566528049267502941727838578282812280044467783632303802306615610078370039288833459619060152376991991932496025362880058592542889140134361661164760591466557981489269548785492339388213993448964009827770383713078313758866972910018865984061429038639160487759017623643054941236397796268566771149304594595181341779318677376140373555149581630037707455496146886342543610987644246905733919062366844226425767076456916111227605413431441632026531035416954446173752341180500847746378204546289764499574007229619670569408808703038171174971835828410936689349428439183349901683157129678363807159366225658609402356679015431996456012781263280983589760019460969463158653315381481609941440268683852814834419383040143276861789510319657233911299271744536849692598800082384064452714466755261021581339163272380718592618245264230112972500907413017965439976979765112778809664451377948027410232192536271479601223269057166690913949953966496772783241792059321414284218972906286939751871500096065791872255448549573656079839312419131296153436953886470910565028002325438775369119325119137475003025371581663619827155090719351854368982993663551147350933318735692135715879499208666953104048974748580976535274064773285620016208519645943291089995339342314626785436647043032633813969114783085587045999057739471522300376905922557494653811532124302222815866327204731762754793698740918820684121764528174189211661878780897991674915334815010567280352124627743453227544517205038160372234874039232137077739613025274819881890264601136904091845168440962959460327129702678798226069400234450880492656103719802555685867555416088742190757336049444885409976308453813246139558270206517078173031144880254753502398311894779606914751329098603564236196738814455666165572445661203057031063414604615820568509143647723825030552937608153662827146607026782264371756601210336222154031304082186235617971742366128269509320392944726363852419320305642417146255754600720929081850309041545053874657206472506260909156015536308402531411838876194709379290331306035765747276653483199986947394946613789962481495961588020950300415830350829924077701516507746887662088825165841430893174161723017324600766591501142912605392779571077460564379850984072797022815315693502541081876480679922228949238035191524608202194205401684601949232262379001608702080489431318313306506435911577488712837672727002460229184406400507030837387471550955718312738240197607882632099227175260940310629108127345361729029955572846703525289345098169406449340119323824462764866930745385899648677084781966049022560777822437042640036699996025812393602703341441984049176452832088716420682101555751304733586323627739163686135789955533917071728568033434784787428814540257138534044709508669017592480270614002792243293178113622046641859606147382315262404470072596683272503510242186311033548999062391406046822264024064372627913727171942395052500065626242559804267327824630481149841595137533170210463117691420522252077313047980447197322687778735581100784408356724247683323560538809784138804224834343657323818938936417771453557491900438628413816556492222558066780434672909901490564388298405378077096748188981755874443451915930121121608341227578612301939309260406702993463617698526994581762922591011628610762515084235871619170926288523777793648399733767824113998876854886394411524130927718386474615864495432160224476006645009379042408890870391965781087354141946231490635828563619537132244525803423364036886137900377853201798799804729123946247323504556540231121432765643866366621702970825931748479411974095176210103130193303781688723722308630980766180342130182677386410886957559539990684478334804467731458273558806116157959938153989066056054901896255906319508567737338519333099499683661456167735131532035730740202438633900837089012992227408382047504027505715196914381487667271730273922664311687053708482738520931530765238831982852446757134679120867419440515154167325721128544151431389976812848783712155959765308680180139656155244376220169387133964501252755708613559151806215640528474399002386701650989564469473707580596652641245961601769498486069161477341776476964577667565281492147007812238054052382410063403638709802982254829160078307496488580754372505530612393207777402285868520095017295535720341776228930725380804075340030380127644621226336785866603751817289270344294156746263108423628643799449152493754093227327636114934000258931352676953847178698575467123366131553009338713533004882273883890119147251505008493297454490626147207068803640035385758933353111281656529002537842334291324675827276859836856906672925138356201297316588806197742586428174940428219869529451038172532245557643818082156953526320861969855460688034845616896602391777333377293936650079536443039435004078131256119596912326143026150354577568031805071033762269720164567141682342575364140427540552289846585651554139883794933973549609855133971637625370508915033212142843932497702105342512308192383571850966673531051331100835668471035640825735730794236798317999443317360631880531393837909456040456399676850868893269436294189495172185366007478051107023161841956347098434747742750598680357449969664292505966586039597768733812651270195733444064040357724794120347206751137848384249468733670569437165796505345141146327281382329164834865374990694688219820556900678850818591762997009145300312722259619491916586976207440535589377683641584087085617013669384802498435421743628592254058627559193714331562931955602368278322015095403559856569421860493263264735951530516099602029198886354436623440715430582419031449942093496933305233737376465773157632903503570017630849355930475868226022948382951202171346976124267897556381890524719731206147725384690006769533235877456197336739827451393074127037782950113714236892888639583661613644237519627379249376111830656163285785930988260966159776282384704771768559522992061746947399783223652678625083877251784769718664404279461532284150891012415381908495423790050371622994097529283340400861660584361933932579342150693669445273751919571727119881668151019642707449712476366194530774312482551900137358783743874966544641169802131543377823766128846847601113407247824841813887873498732925976438079143490010112759888579062832144113995891603856405824175406495292371909680434368801209564264540835080741392736778861696937062234415027260268137004315462799722581294692829277354647955588541682161937551489582440575055784389645101256045585749173959018726812008423730643346607815353126941924558279750941260618154020376918973868666494021162900140560708890253994520873367201095523921671827458889996768727077808024423822230094111869626704425959970406871475045975155683407068559075065372210322352779414173614728321607215681555469749119438916072793172016043550906555373145697808123499515656560257409173820485827870714347904411127241706260942161506487893164175078258335789287550484905174231175493948763753567851282299912142779663852980496601200204996739374111158157857592956905570016413817448953094064293903228230955943745408234496126643011589079223336597638391973245207940054454358298158559737100851783679851802274200453618352915698479236061815350682125916696041814257318839922053714796953426108121013304348898776304334973954932022890145359045717171202799088886106884241718268988402622175475242824777037983230481873166663992805126469821389084693163421061296372766876648128816132293950010633478100620673143849889294520497442528610083160975213092938122989281363224542123551755628469629652259329073270316472823446652459413509604646365424826770507064616752038357776593883009572097832946351450586376598537618100590256302374705402949718159655201932174767226739767402973518421577409893624580333260905886429266707126870556205333544603486627811610450438633262085537126907141762603905137646806941880311541185279361444539791601992261854467134677242127316908558634902985461977918588269899980955146035583364758052848882221319410188125648029856818232737545749698118564302316059615550150105069947176352274458463322897595878923215588148136118094202329948902330436441051077554097839557927257591671278373422798826008976774761608089912889522129451717400147665833361750291493069186551797249880665746998145836737189039681411069852506411097086925956252021606974894429567977590840956325377568196844469449413052163328933700633977309358088127874736603394053512474965575844091191370418080819428737441500038217511036093341698523365751766319786586154291864103952277194220396137692077970562642570643642395978732827591893080139158158731323159994264776755265780128751699889875739300208418212864420230971253520993559863507248015727384866203381805920384650555896547487522689898901669441774101472126275946159417874759906920848112511494856812535428574769442644247255455642632011134051681967294819434395134211285422268291061897147856012447684400014832570634576912363102025536131339069513691950174684407379467619913732878391222078739384222020551621116964028127645422966076972354976052571805949690955667492249331999883464893014710702876933228635668394689744006822184422202555156652822756916232475788143726344717690762656854411818669756821989005190046144309732868706433850909532335110283817349264977694592322249423993582553786801649807542347901245887506818516746755753921467865694389457515416089117950622064304018999849496974342462968510318332031101731981135467918267401308870931338489146118921854068919829895350849391494217720269890241353117268116846805992669684412342809456018549422283468644862457914381804303861729027631538338749548302912994458032517326074813025650388879074790507166460036182686150453914902470877888670087777780313215615769359317790518603901381861518826891849062711458130965363225717736375489423414646981502406898362290800689044025952977028293055009289764797290085165042235177084087297897416821534552654828554958442570635710667300576028080060052503865672024810671396864462054017904500683681370597907195032993159208449665039392359132927681987177642419063573630977798923474800183982893797566204906351005354327094346299177067835626984071618991267318513276381846475930778615576977248565672350246455185376052837556297527009990516567017439972101871105832836843705275603817839230189400558552151769801539649658716460904562654989024113589690732725413335673269396335174223295892949923384405352155192160977078817263643072009395267766476816455333122138750814348641610143485009042357787671000768054311668778431833040216101988149309900264042744203314284251380867938231800417152528252732069274922591316222131734311425625670582984060626792550598847018509085877336564516914639960043296523118442447061657638032420670264523705869618459529225860818460524188186741288047282460289392502513656471361676797696275995639947213585117730519407092088579669878467031944804630085118036215561651773884470508311662126944540467049080609023797745017933928021138692423838664591186830233033347034837640893326516170550341355904675560332637699233490809832430735253912921227419691783137031512382930004457657687724311193921513131837632585202148821437698760114450981182448047899436120407415240154100828690853125444410556044808295505429464585543964549280746994833326964842384216998337036692891169208847520036340516738440552870286630922761380097504485143695354571872948016653160181674279600435111516215035128664021520585493380439492345814153352883130414934213111829122801279993119768761899880604873904084964430372644412843144716331614158648650685549736911998791701966698949344380179976464439540763087391685805180117024287091931389006126283691103443227417690383010899861230027758635139265843521407676447737148964131125479697193376514181791204345978355660480490857345214480285650366992470561341796088209874509899091643323263666315077911286412310530686195002434006349210710081688374721563755383554711142085260098952701986280810535877288979705137772017015274446863217644503531794197831035143824428543607716005740039214661536959871127756366045105458738521792467256705647633657944331171485298661018435511114290293139920125283389915777812863954640174633326477321068855469401557645603624849530733555600039385732131554924256795309837484251068413532589482820935472991582659302147908043152301444927632195529269751556758170609035528316025630067359753792616361687838218718239184002196590258314706667895200960679702894607063587900994551859742420870548852571639357689160520832732737956494351364318479378320679107079447994727945409098061365926105845254425300666502871301732864282027453517292505362884539273797255073187492895614966035702560302440586311636972938026725832817424450295127098033440490695452423282705119719390515966470694700139022441127390807561947162285707756261386545062566904494189983355649522875176379958208882316639760295552687989343978840413641739428164646688041498391291810964922586207955827280125648974923053990173877465878740587473902639000407038535048547026225930429776948075313819950134401523053640734946320423394364398439357808196378195747525779642848757344206406566689641755654592852520026614214781904339168273083695599321657829811761678782390186386480470541402034392211348985325344611167576012268313079315427249542088990001164008138481460576864526104065079480289841311246203212284488505926279281400273665635487803824771078488387639432855588511714082117823768116334344773082707871003097917015567762843357288116198416769675745303922118818951608045886170025436673250621314755123834443830495321390715719946790324321818952126519329558154000192117896831323602700919931774008660418973052235929503269560685001852504223724491435072349449619344470015257818899066944971982582093942981526965449748875335194838566769022356657056644738183681445939651663762152160706914165547549923002588600687405801475395451644217965731451904471325781478925059976908355850022388210738388361962475125190558835651742045422493751627578550083460962618615371896053665681845133488276422105391596655470925615027697792129256745489689653198334822002474355195557217284329794260827327834467873850952454507697372645676467805801379180143349593652570586192359919432026780345099861651489383949171343277861297212560118857086173456998342655854764107417286992575213722912752998483946728284155849164042629804450221725423263864561415942341720698233750830938839146665156033308671155951831637866557145540223575892314271736805798516392738557228581484222770759944951970747190200868753161493195183360340171679422624930380925987609189763758808511664213914485731037748097904557762321372467710648923206916131635585500674928995944124132736793636017504028862718896811938623120556220914022519923766547520052202446056431681678484920968623782608887515878946405595952127599810040643978071999532704526528860571268876473215231149875471976594123056300810869979295861857231899619672370978304243577971323890041651481619985410194703978315777348024457055865042246146341576534961914983598213305236478149929386754706982484245069014327441178478230455701019011709288413949351689097335242826367476560324762274885841830258214438245312332227754888225347956461417047545411034070547420625960436257901817343971069123872751906420242276569085719567408385001350246228269619352054763196309921188593050885108909290691896385189453418310968860672468197071145697573188366512677684022884724832220161460846366662594029047940738415895391664802652237040943668195336083100107354918568100161880591861173873311741093549954939748906720732231804916751452245856793979331588118532949032008068455452119360583335278661187978225395084925222836654706712583952108464156541495228815246565729696622353204855283462274701604842559638283573817485303039759200508135077385636745411349803062712923671572029025212184254036048248444096389701846301224085276305560548833961518794617740691428343322083858553599195257214373979757560528969804370397131369696908164722803317420716766547694664876547294393296793713818263046852052457641170682784191758949262848522953477718774129158694520777535320511688748945006193035288799748356874779626229301916074577901421034478895936291095994248747197435618239840888786145715927096050184143766868315767679767859746441931790375399904595101425458176094517451385604080820256774646736536092874243709233263784524622912229181540987888260402012678046917919748906046869532155032793255874866101037181860420341568408688703994722527584170720214378683684083763560748534530457723266410471846235472543116180159503022763838821845027575883221021156554005075154232362775873156361623896921976881739347951307093536856213203267177505999083975742279142302520116202508322443662533026110959289657480301082868216832415512794022390611084453270040967998549075773213941286466058391909335764820887435363349421830784623602597999795854379244673820224398501058696923567901155491733670940479691203522502032917429578096936468361933094837058802190100604682359090344725961445235068047589542353723962685744080677740818373201196316702290799558519140748234429853797531045179627234588159306957540710532535506021591177628390808798227701419173907547335690593047303040908195968625558710736399269916004834307626136782419182692333416909109425798065146794623146058597514716143234059852993185571625271942294771030551171675606179842354130990555825070119114710266266343996630981528340745395901270826177093901841785041554476045016172614727668668665465983784764891916866283776241037488832204570371665058386107835385976395916982699154014204770934285114742678043034183105246412172726021523455247479050161859080530026793718592506947951133227693780739558834861779075838675886474251515336232191757426262431546117873513419713636021078607046915526065687322376659977189097399608351348030672466817951584712756654415218532003090606446162461407576286066311830689997922076473199114276604882488156322440911446134760240325908858502496091984741449905705221072406173619581958099730108304270967011824939448038833028159852338750561074663741631842474011822020202645890764260417502560904801694011341220842589314113516014082840487032463380298008507340675840994170050447874133212447092731853342203006456469599349044570094660721097883547770274618948424909057331628279772770638236638158287624618288614951090387749163140192988819316767061045247642599008751337666211616550919071808999408866867228626789053339481903851098771608130985529081726358590641954685389678188844376019684175010500014934211104157401104166178672448691437415902095510364659600785454928761979050824622954983163064703136493779968291223160828978962633887862253052023479385091654579547536560440606292593755528021821456655648244191037586529113259036148656505856874580935829362277961590038301468883232322790477427831985953878379278329647669936203689224794137395069293285920331948684016176494396609402077590810519248093113970347713641148503995975827024522988767688350605603081598224291134380295787040859659887173454297755476101070219914432162127977883791297663809918516575782678249013689533858820211250885727078031971714721372942807113955056832910125346289495193782491260154655239718411197310478415246139318643600931126737613548943917772602906244830794240928474861664904181253886235151844123647982280428630100889853245846926152544313419860979865394416006475786827860477883946704860648245274316308650157624183845738699367879148565790327715378573651063271275127010231278556883263528029790886475025604850890948202268029406300961350053415536288427401383623291140144501127060705931680281194060250378152766771668332616038012133955196320489808681609818625364745958249435032998419454388452718486122584282695994383957978647253132344651646835978339037884080586132350612276128075532632085230263527997369243371146789423198625639128886930313486834146874830875936335921626150491906827431560180328474391194313426874355195123110236767561807657605400370477848833375597044804836075474201421248944031252326178935292071259549471644049051376688051256364745735738088024733312001528819564856966062409901502062652229591628416532818394641533766870155979324075528974689986971180369451379287931419451356928148868960110584328274104274099699565728975397733431204139552708171093407981432444889226908994553113258388408632717715797644276382028239983554785984883215871847880865200854984311191912275607591084444815030039412208631848486924681326824628597432158309360764652559662363319539987024370689296890259407729508846118523684829869543655669755195788648000765109942528128616601268918985850232336388540297951599704746221730228927432976813482385818383049617571001993758639066446580761264384493763165341132398475914946255694738527706696004628580020177808043844245753008834193808032997518305391137173465476079472899541322740406776470126371606551968970331882908571006300211031589159163210118422083655684993138598315078815106969894406362088659820251694344266589902822964534185865428138049722956567809326408578738582314134251160422355705171849834827663425490117731129537098332172781732486338719224545467102925990800197083782074495307069680545503442082279981657826137483182724796315746070127451991373972524705905374418144029544402366018595369519032055107624551401471462849673614003621987931253275148305857333550972024302587162217076535695872771967676525425775017082980756769125797741336894689529957780098350687759466653435780438716257321769306141719413814962170000365700660821319849622013771681796631116533315336024876535463383682619139043335291866672503762324890730285995392798900279693504081140446534612910971296919234439722463813246817485878583807900537562530343817471145960251540784224011510291178856989781903535200383882288341733452968313402550976970694147407874364352789289993635513682470609719433641532888563706623731903294650666061437325990925708825418561928554521578386974202205591378253532939532920754833933605831700626203480883741375953838177052878656384283625049795613611602448630771281353000567876933002770537369570858682824577964271387372451509023886563541325776930335669770821253921347456742977017648753694920174409386348611597774532700489312844218508034728625310186384064537440033714627256814643577224699160890908058454315642840431360470882237351511960781048796160331098762665464717338796931013117798644125170488187730905174177886233769302627848222126024899944190102767303969872411813911319817275616783020635076751770846940926912001526562798940565048994427062623551230337400856457608405980196958088882573785025333650792257006849871350303407649438100287304936293743914244700787676131260495957408549142569700447660276997750395395069443933757304848925530927278059733462741948641918899595958219044197922481999127286553041680663138389949272317105352306642760188843564851874369507304785445104147898004195258619992820611267869813747563609971479264337242825844275053701784779236551219913019889336326956801363673712305222712345159606004999535728333172388386866806395845079079983344657980896296959358605492131601118839233558749272430003229566711712825643138953006323345464907596462795403492928174317921220267121379812732839086739840898671682558822651136417238275219966319567624611883671698168145604876808035849083009748119316957191317644682145506569641597826896964748823645188608539442574130031195712198331912651445388965551614778465991856849489047664420881629398740355569979778270356745509321835163736166652806046772682097544112013386080784039582807700971509043752385828617978678443159023477762907740031166235715411562177242507426253113967408672259366736414873789896867359380419144689727587859969535821656824871485387088903405935506686691611815295378000782698891798400486826542657222313156262591025102692119619364743724361211184991246497181104251473101216589380347548827522964294046894822018049718092048669289802975797635470427762329294108905704559816304700775311565857068487959153358643162500655532146813119536849197757208239854638948104891727895860665260234473191929225555262825433757346170681830944597859783282554027073304680639629824858630931150328134494710499566932118129698159625627107469253234220846516614629856236260986877978862130116558023136554236873364309776512710898132134440661438007487605644071964494227737724993127384333962165383396540650675496823399994588192706194891799810760617239023827185729456584461416941809253592183704030819109443451945429890662682944123813871248998885280231800779835284460941626436315121019268220400866315485055594267392047258875778956727393928470225093291749867888951674539567776438987567700637932867689102480831942806743419730268206237708568626310716420534826644702830386767466488735194321264061651057536864156423563693107085822290235161708064066449349333477562878908978082177697186551740842193821680104013900895467513441497652655218834355023447149367797494993353354440030570790125759865447037979298017174724086120000314236281263616365615509533269250090877484157176836098478084405969654443618924557957429916525422225272471852598940123829034951310862991875503056779492618943201734655641378028145719223069559592180516188408757188059465234818223774381420612255372822075291289712235872743052965336968841193050149821886596173040114457188030715584839348932962172342451232445036205586924051816593570126583736183971158485426847184747839661562728853111224515466944077282436755191431165795179115056809625520741993897238644317262036795624739311178112959493570066737414040293821688581577479686131661042812638245405396659389524437996933749040246025225777983146757967996395870882340559049523970055021879395406430560916562621292207289420668495719653533046858497569734113896442611114076624804676216112100943772126819604451382539703107815611831008243576840505572029014681220001473094076207816968601993231737034966168336541535466023458575035589642226814210233423271304426737821508569160414191423731161446147672512342785865758725150044261937992305112337307271590362550204028186814256644738122804372722297414069917126756883508472889235089554173719191845094479984234286956616724229313269188058277546892393733302975142953924366920408809015265161394517876379287522062225901319839929672517291157906865100214816152632412321764310257881734696762287134221909430611455803387298332570878690985811866464552065280314265271109682081534450002966869713803731325143768968455058674900147373906436300774184772494668863379846593281503728304713025489522789901189433643926899167972966253155738606766259354104658679400972038420899934716180886605892993508627916268191872845305291855445880344560239856119557843972833481178705722534541110823165982704963718701054501916524712431372428067811451767841461775487027922540901064509345180447960159842207163291123870120934625672533942464346447109196138104598011165317327793969913730693231872257130616681233568731409207145747368910837329335917785827074195533238779705968853827983986138038230990116337508875697859091172421346294691727812218192977519842633803795262286394857915399813839653515948940765854228476386189541528681713286047557833655599632407511077503725463395427839732319485967934972947409898416107533565369568021183549159073200248245313076730659164561678040665838099149791219803205600951581527187579024148295869673389382095072370952560686864503707740407595694507276591915858896202342841758437937715956888135855840628442434876584794263920743532503639523468238040473337994009287108320321755181620980455905211099303818565325119830238424688903887065812291938359828987806876304119172835885921190891651093695251038474033654941856940520189587327998020932163631042077505884148865459390908685888909563139062967654446468643707517192807951958755380156890990491794770345154231082607354323783012132087137866601702797187441116372452303983501733341377670971988547422626024302595735369468081648929487633620984832120861085002448886186559774811481870843504776489057557173751206700721300041019901782795287725180121119986710758678290498954989059417051289642065609559674736878606833451491745499615868312829931682699408336233485248110938400228454770037535143385287191306456183047140125253426914241948357603035056270207468356206855991558877543624325778566315143350772433738115341319927097481788382933778316524880260431851040131744896162062072638953096865576636670792826195035325116567965280329120430063906412249973789555289997797384052458543955199123033267198970591553235743828168678580476487712655322937155123738955709439103014001723872549427627148428125500946320150017017859147919612662918841453578153676367358987771425727046042648182427238631349672295682202686274058378315147392374316769342375280469893271011645564540590590023795023723636089527070776225404734536235723977384642976317837383583944261320778116583095179071700881976006913219964876706499830106828092631898283444819053625943334601602300068131891681013111128085939089596548577813079413406784085126987381050331840492520269820543645843326199359589182035805066883954727450441322260301468055790956948281966693773610576593207617562584632906627194088674261449881464286423497266322421611871119641157174781611686368225398364374505342859890267460241997627780622048489660221568962591117384822723771674477720544084399637999525887912652348919402708494749396756730139889455109106162311011989293468055306494928517967965079417087002445503971169836462490481831332734581862629577242855829371664511662531232453169037626486107255785795671891811962136115144336937934841544323516909335058144111472759530750424313723067083032378079111912916003375419233485506864485228779120275449591276528936313555286814715596190765424843152105259035969054680765771965275267518038417886233177789204196400936899642022417618323581790875348251178708991382172858271949213824260154519032346007636231751258860156476111528940173899062906355470509578523912508404991110808437120673881982721792998176601258036066817342251785189694818159060022406434325668983029234046543526162519656947506380870810889863937337190980564570579334452031623733876571226894805219731161861033951080613551731716461586367862781021146302868808439543753267434795670720960578312069273047653952684388373768271310438862227778672558147764078937587760117736375752827268308682524638224419919737160921838642782031623388282349525474837819137747468529731682023743251100103175959595939249498221763920090224338174404414976386442321605318330614262050217113482960009293583967736608506855110023147871182816845975409899289807156585139748426060198198240717432883796890164353139509350209333441356510461211697686720476831292630144792803703483284103484176900940156973579661465214367941536895489035469251087566540751059554173181923492125658379546242842418447248843460853335576360914291186712642324662298863831062486632350113998028526859681706808348350081341846262921500649630438306435963687858986356220244532327804323821528234460616629621687940611721663226235090482024006036264508729495694421555695944406442591630788238260618573092667368880087244153474442684388538020354973087487561996142243005349479346266196185593459555409332934739202219531411921427046718304220624231925332462153069479819439094958325657643346300930410842235134259437490266940002990668180438367407735191825592853345463555613876638836437524647664702050071374518186740694782544214587589591402912818544101577509113703341647402210773702516375232506297949760354427430519736669017275222594396555555426992577303735816146364139192414437643296989518573332054289501115407425973539931307163097599955593049470065581822192878683875728254455601366867265955862787138872867369942785539081837020989096172410110269942781739205302536110964415511307099932822122373545082676260888714883089932745020423806954085312628710136628116440492723333383791059880539898345120325138797750266747385547262898933392752183077785965982538129262686698865954368041517014524605605392265578762215544802460126546073288357982854234226643168865903986382005618991282159399874329795581474728510573196058206242379113748765228874619837010480445035835013731628551273433754385617047652973029608272448183400498052373290445656536731929298915953380420820848061559741668287012048227320039325474289741459681125193520853745226618330609292309847065971966574908678407568820237870479018175426589536112159391097120163162995061006074729799609837610424058393616584219102271040727612126977067014925072075238569683145865780100084324994723759025201532122305369301790093801400572307028475994349940606393435937127134024207770903181045477727072822319724862357527907853419279703773265175028892515791383007288639323776629974313355754377776818129426127607784204395117375720437132034276581133599330688741603483980610740364631351562375499542594078469105382737531686918431370489082339262783623804720186004589592465700095174220227307624906123570034909273212135606578180298709914590957070734461171323702550011460522315926591821485717917860237922820734971043153242976215508011907778427395237335881633375219171150600059888637736850763689390037557119382501151278890784847961310397422012230716183103424579693388419902546920949703678593542298281453840053446903490357319202703771018888469645775238073380960367021430565920179008703572502263757641086394787824056981196874864327218381326768862741623262292781767149510618655045026115209675099635348021238712146679027338303576915726124709503966484861630477153954794058277438524058260654514708965726375358414897891023229839370692758485856881886747335574669120747383096756903985929285180425073544111680048037898088173104226629434081064919649138197923937067194688872189000104995047713392003791688506389890178441892237440380569513952568844436435086013243294259135731289038115280691475233662399069256010984579623359442239996368379651105249760579554696463409427293045190094118937180810344278481228255429527775934193706799594130710412854709242340554868141292203622027698215154585922260802237993673014393582877603212449144633403029755487138725567063380434324264400001757231546718738182197661439644132569962512964368863616418453939528678939289743829515433520373438398006488563043826651123856201252971211541492477271198690868191981617630160941245376418656566935992719837511751270440987601830000040095667865140036576824141408983672110466845659967883115728424538336368637496176220094727816749623672188397700349834625239606699894036977093837955885886411860345792541864824638238148946771039561161074054478044863550466363268436995125052413098014316637356291653683301039780341121189390480608480276431622980496755771067325647729172446377664665029857775972658005860394375496173426779987400926654424411864242494466223509595175504094643893881290397665056492880253487246926720511761482267179837469227100095137503728665565895296124118504080929170688539702393000575803570778454341668088832052157632694779917807857085915852778814994704718128832510869806602919462388084635421800235339456466073812267823549447953684017175137370776183924515646910671550139692432884037243858643485989520699804186470278715170906573554447646192577799391111850667199613544832150867493941148052225889900646901210648629912004794070215038536864085471676254630258112904596378005353548719598988007386199933838714477291944786414787873382312237651750131459323995413375548887488577394458140695437900054708939162355891196233459550919543333933170611720385188752281715306880145100610311878811653556382244483313682068063474492107521272780047710950973761890326072008517238821959310890357900053160352691261461853070523368493137108681375720721265435009539220283410185422934002821171410920471917664191805278839323709544137047553002551855989621366539597917172794744454765868477682983582875988266491525760690308674884130035467971096609664760477060634733695591265250302370900925179189555622609828999868863775341765742814470771588179591435131814339294066211454701485815048690527983001210757106374763352570163202907146937703485770426559104642614384585482255607447031797409931246108670883869748551145138478542646152263991276960321765295498591536776373515000755003335327696884850092901253025999697235091307781134403383615204863660382366233231996678214811466104945799674216155191028937818552833069751108742613134178001775089026419655100694325037743640931979434146342591776342964327439130008025959162345850619204730016016945050368690340740571630599502298544894039979557548278171011562605830992447729171479055233283761180897736008693973308392806499815349596835409055408477091111965004783468603588759569794535210710627299746613398856495278583998393069233196198143772458213292403307944561105439345426665044465840849551476491356563329816441576778759705119449014729532477697823937560121908106627273131585620870480720950007705573826165832324139051937001726431741970321815292625623097127665931335581862810210620103901224215841606651531247741434718312830078005483338005996502547479921188086618794180270316811556365047921530713037357476618255710100271249463836846002924355434599278949531141550673916355176844621100709123953602484654543769009323336568556967721028386091847407104396084039352339004663034071726837892502569619250033778559219975294445153838671136306313474204003984941619868393306076103364096485263038816502182212710245725666967875346632455428370426712375141360398467052531247180964499028211497680365032827960423430493986211306941551530772613074671247915313035522220325067244793173740243970917465306966984626090864668534384115363031626531930150764475866182851351784866359423084468725035174649800637665686339629104919016380725708295036706626693760493161791096824081624910469393654525181808225536494309948982088065320657503651014587086604917534880622066728335435635114431396247269805452062867695493746664025860589127720116527642180066615848384524523797907243180602710310106825146950310292785975598225403807310858637291155962118209021551237923769116646062521896162550486693964059946717796780548480378351012972627126805587124630180696487110502168181667417495904293367442063714496381573634077723526059248344548839127817261608345633954203143056468360344828798127211199822746274326610342423871184396066750839296055516725964563992709816505874476204947545710053366156074966403680244934812172918943618907300063537757538863868773986121616924298244439149312170090472378230808674480504977735518807567569435774687106383934748087015040136466626167080434212719440883001414968914802570701146716484953169092064026654500351916962883162712972112841642158314677226065565997397959790163492082890811047976517035045041538033587989120139726293679211085675259908739819889246092707735127558310809297528209412235383461307828487722485126718125150436481556971338702634750818105121974110685408908634110844838327410116041310926970340077218109120470507995629838652517157651973836260018950688079609600325600757015613654959669803670536771094910620651620933711296969033997310919305792896389209210237126678061623606982142748850627704394210974502908909038494586990245574681749551069284719197596892661202323011763461823512713591371396522524151038339212682903863738416061056709991702478211462722683557324400115846264582862941569775070213410340737154947265492779215785977442702165845959068664151832429732767616170405650418846431131859952163684514315596046017246069051237852514132345096310612076256392728902994663076941909747333280464127765308786526311557143355856002759792208098091068254808322498551974448248641445822645515211150781857317346876914649163734907928706052953457518282738958500292358185168609010223951476289291061627710587463700868851123951563769987120647938958832088810121175784721984279240393698983215755620974642296376514443967157645310106711750748115589950419611178972360716527182816898673228610144813640436463136203168183001961637899736443335583868434026570671487842289023826975553257370750661686841873064964145913134293506148624290384162242777626596964988739339009154407301720179308335980622320449027913410267021139855574109103427903775955529078237173013662977215787177067455484293679403963831316387090197320193615030198112257266643783692028073142703535846990840961002520912705327027737405270441958954795477547984612679191372292600976530303324713328783422747009703178796965663619510370856217993744530990323267369674459090154812019402644273701583899992292879952057103085250976934497978344679095242669651340685604158964251994882819643717817221383230197317657027243960961683533653233037406315455484665326894876288897701671715900928743254279044252067617312244030248011954035771518952337735933052813467413064456940185807681522768406229135383464609690337864130836558761069129440055694758002102196447725203593013085570880553558021418034496263741162301392094770911836876149708351704280945648942117227394392052749189238592719503979650389035464029048052308748236804335557695675841184712216095204272502955011359801378123004827742349424340335786617801016690416265408286465936385051786704410786391196283884268241976135560618349575383651522027286297844565556988516436447211282012099887265541047215474305400061167828493273977420072844403865538647782916473184275328197879486450677981572875265994272601960054600739081591957051685693239795927622269204238055128699672733796708474086965547832986383220586729525774412528802370242247925655714638488413419618854490377159534978686389630445455026469381582003604582877930302098113339169451014188169480823309706845714034247967187171856476809013265304438210249008817329147798153795620329171298133212564688307712006017214861023808414528681865428186778070876435789258549934118370553128452681199904802118248716338824581349220657271212027404612510096435755478396543529194525758386188747089936919159729178670455407371024902534813304125587181673202789656159601288640877452862082247140591309201047072871580808644924520620838121060354721385310544772314626940729818964336436288993679049057423986949600688358966383956457823633427351068649118140895262402681957614225456479169706932636868240405244885495953833351081146470752513057220277710325104244706533636744939914437921391829896571891849053715322889650766311895431138260454223387843470167321758549265845162555126860391682565057159976786863792537215159822123722829611112502667318516464597869715602345989282561611706935807036461775394332248739179939028747787561882912067472998482262221445561103987199978259020660187472982462028110440072375628232183168884641491516329434937291030199228368362358983526953620633384755753384089383352512159424936157563788193639714616330415871516574170733127137596527691732633914346823339827614984584526515842408822698306408622112617886283541842074204364144693141393732711090750629784258960639685890516618576775947864070148385946221530278875787532598586703054171673912573645668155703590678434042331731995124534634974973458409926116809059073356333887504187976890735216412238365707605610315565856998987141022226856726118465241997292966325976294670065801174416726662407120274617022063563452999566465954678747410621795779751666895960962584431933084788490565682010393923119611166401448383087379691648767871754163177619615978286197166753252747505974314589251231183144965435129852302699397577303595054004792366545413239417405842521559135175816328291453603061631195351425228726237545139983682452413330915830919690446072841601168379256282550971393867380083092847307029991432097233276038921666888955953675296951453295496653607255006530554899348201315055631006474461174912660347466918810152063702772096090573967957760400265212648727219243864192543342046562529942220512506944261207612566012969396349827937506159177405258611611187057502228993762442070205441158315598525901514399784861274533051016847210308297800164189966533412515309853704373278364041121263821230127079043780809883641530977052950350191200587782508654264212960186421069496783767811202208681419087178545833846713569844219488909841376959538744100033075217922364821548221501170354592765446886325569751393267376124586000461411742829554100392549313140212420328716342300959559660985814173143625464065951278657142877277109789443292495787520537543592523175924722816361293807684239733205727917097615222297331469263030978081013954594586584447093438342601349653624042678489302803191343197815618377478530656032532835722516805621412096994773795858462920158292631466632308536920023823218082632376474910128472901243966769217130208462481154675994717132303802184117001658567338712830425192409618711064243234876477817123520762478333792825588713528905660101439396509830305486940329687760576408901498312967554134602547210081308652622984419493512509770583741810877735084192430799736877145680193607304039315194953473364673260547140231638306140266583710150822745706499265344378613573196197230309155093525162973529006161235768867557920226867691190292690649009014481489367542105265839039961289953036951758824787424609178830908920575575173810506049771451016725010801791051096035391780659328564846951306140712608753233907909517072050562328999603576424201758997418271153673722741203610877135012116026596332665300283939613816449626116896803770315618318908697610749975855936512551222508802218393393403030058784947843550176547374697636870175305368843333656439265350273621168982844183419991820251669915866220285110974086746611560701502566857010778485914008311170807178025294649751582446873347756735818059730831579934187832032078912896243832857965593383734874495171165457842472838656897364232239600117666014116915781810216662149049167519780624242656068570989560574695905992725183251221343688200931378357458205843588516531220810182942716767709374304203007361161932044852631095697664065753722209329241723667937800320763378459675603720528977786795489207160694932437630636399712125684022561895560705665144832904572426346187967203142479513563481402093011995111209543988491956742198644156633557456518389192624838384352878622559845525253001941569712287944604181064095053839522637994598220252887372793423010048078832477865990751419792359594058357813677164393509439995527814097608822330818273138975539398431284408025962994946757232526457199350960367433994786874862238312946668533704537256417634691723629657424875871527460397215201783709599378833033351674382529700608902784109750997371080964277881450893185310894557193485941483989521954518811254494893747125298687461696022977022245112422929603686464006509828912975823047692961436727802252983739427169164403969575727313781527447496167271178512677452080024318109965596762557470014501854800682376149931736911975343114554217885804405504615327709094055348688325387649450590235126983087253109252933342904223045198395677768167656327900954227939452712612740855439773429256730399590304942054089325735953434582196331400187272607427655927597902756242141018129055176276860171160699991096940064934978558022233232270715583820100551733509348921693504869464000449008933629712657519485155336447448215129709023178378116881867802351916753583977032893851501515987314758598478051195605181901400746233443087689743248438218023919266800059618556485763068552964372674121372638922976188723443654445650558426656357962338260465339244483861215873474368437508593442968315454130119212869985676937248759797885889142221751485597823159713520733910620284617339745291973399462238052014125590581763402168033538320597272613269782949379474722612178372510039217059695202408534635056254524438695737762463934282804228084962667583256234025280614569124074526199332185377882092055442873880126467523356709172457374663941290876339462059800135931838415207633139107291098430550075878653082759466863022127557263946954456705678550602069734843929552143493258325613280466864379915375848768207721775807275499494211704431621159947963531293902567005160583850571378321502981882357182649795323172156857323039381162149844662176966864782570355061730342303356654665389825811698982643016547360814735180056197199914659039352382190396932841335088543870071202230214475628555789504124659869519487724861807143802882262969205276954948763753057458077053258415819383847813723208187134592992698204014008694962510980866619387024414580791763562586593859112481005418357647547458704856051804650202310179168731350119300776700427905682710745753849996624587466215497003144377154782332386171031126384413920873762118060739776922701540870433405091109279840610918911705370079651529457116174709518294176966129550314807527998527652508104655920314746861653595036268960648667993359677346965342966703017629863480357206578226018967342371129307064904730048267812349527534027601202603445357044324736210090128995214650945048518949137959305486681034679216543442224155338080062716425822388192174080401123410239597978655256525877438120814198906799642289509887743288829597314830825238665764107501631685418496749844843217705941635511820171154430855438383487684562207946630581684186446134133114699358439089965794208644957957791273216674495024078187940997630660383736071356410947654234095110273987102269326362516428565175071340924589458179379533952103824776647816263361341663048564807287052780562161786452246978127595684464330652981773404456328678383091573852967763159340982389132023972724748171980172653961004443311263409432637677728106098266530874581924410894705569422953619411550814549943227462265533525497923047934686484215393731502278072606347604283584471594798818969938872871765951824170414320266998877437654813292320229234637729064832967934013096192551033902138809079900133586684642938623744583637290742506143341880328867971768381749466370571333519773185972729781258715530736951877091234385764268960732572745612120805906784828579059899887334638346478842212153606029079429373446080226922875654951713659934671443916199726167844628135886302596060363273481025061738359822745983871171630952017565074863312262134084084772340325563682382557438442740941935677574499565530215983505326773442512846687485092283275546753838633131057976741051766340922799947020919442409950681091422492079461917234950090468804180199514154054621468996291116310165473935062641480531877407084557836744385849851319156305735440569560652336528812169600849028697869450981986904957842928191811168014297225721290450803973467412125260234739631465379335839013418731159374021990079262422946119779507455906461904257832551401747241334055267851197396947781678112899956492210350229252781245517548735236001339427644827585767563303208737950300611376326859731990592808945337676863219028902755325111716745908666719462659409615774891304694113171481128485473315369756431576728259962675147276720349008838993942658809333911476601612112250431202369261587452217423848388068596776237691730040692097016810648626138731143907210382524121942510511451101752832270385792103310324021654559924733542892850594537557344827774359318560277282982030286941965751829620850284227526081540519357903327907192183474163567610150032351418922017266566308282914643131678771045267357854203726294680056282821500653854077666606630247864433949040563300981068902059356847343222818382177808399981442288312814253812615345284121201161649989792285182487593804143638123982525265972231620683777218504297510310254271567797158293904025533824840923144594033879827300138595959127212337335745504599287274066647900261905585458148330814477803111939509951149075210037777091357351605756135600007048419039287859514171534432026982272402889176951605819645160003278876413275590810617309625434456358547266878658528369404544502137271084452812142887694441840913530661359730642852006638018702529266582429083439637003916883044349557649351347754840159913447981484924392263737828341181952757952919039620521665916796202045768528236016384165514066358689086175544555436528114438815085705672568207043901282595887423895219403208815059572140018386549852975904052808285913893905871853365979362592160492068762908677497925379177329887913939776240293157650233353111607778284249907366240315677822884927359810022472000004724699336708706112303134942248060670106033957182307271837809165555474872315471012705031551961641682617253420410351539670221245480631918403204360675618852465894460980855113950472246799312088186602903245821038481847785520478215918782140636240797784229137676428598806819971342205029419979727674610338459368946077654184161502443537034884905105719634456121607184866222056580566453315123561106178881348096013788737176094587525376661062099844740817162905977191914386845702454211576811068091023341694932790101951980580043131867206504704128751571708119327014695638250917542257722682245082945967720054958544135152187076043097532614394621464525195478229706377518302157716665666968434875781167909197996863078690649293278441451674886633158819983676713380357144884623258278126239083522718485648606976873538177318188579862678725397704894246392524420632429798590485226339077358640177468190269292392541525786039540826760930773211034990508718958888987696288375969793413810009057010433377218130328812419430597355928436067218631405268185032235470002962140494894894537018869586863831922287056153929557604941228347905499842322046732477299900985322164312336896107852318009899056229783315158750432658349602750351709654816592703859325620634587669203887002325645057953329501597533457826572258380509210460972222518380594271728188220546096644121525071653074574500568320068076446363716696882441988043614423587743646541901556492895118569437545213740235327668225515182141509915194574322601988663557698395740216973114525576726891614038424621932590685379438695505744916817027844941511740990012782162968452623627707002490867061118064770235925219512094270182719013184621907428172839412503046582739054351371375321066163679691456945144972700958602323913375746924357148725680339147043181613397951636289865920651902406578091008118039274657764908317439126196171509008139123014710592914657432362245972663331051102647548993496017305741775768687046971119023650837209081981149751993913688863280156751609972593362707434777461657743567286887546827115616679390453399090862263986761784437794898413011790103378594157422185843323125260301146290510014511000943786942130978041686750218233736946012425827854724731915541166567844435293732661731062044035337881157772477750976355683777147527888488560985336153450885371608597877469868341566456630433244785570166289907613592996802590878471636837047403701913517298398607283241208121499585001720945788611818553320217645336297655830188091084425992858840271510353025907868357654830956854122665471597351763971452411489547453426455825227916447976390014774508733230332282153831083880759064865865087153143194526518887633990354197514390379215268206041812656686556837730837290754050904159130389072895186821270675640750713995797226808136676585854828682870533512713830614486808712323479696448983612750003033766312518095639551844186285436769576894493114416500526134282905036797486302488669317145192045389848148840402950553055601651100061496138422032213903813060703065414980041920048647802800053354136273054312682006979902859234139849534864141792726061445969832175808468774963798186008055321507037303708917704262179805242764365523457091270966138398108848053043812340363285089724808044876382930530347809048423634036050148550358992984796195960032622915404003139774326803564197685048806508025553471667085366217335896951344554305821315345660461096493514322944403509679692222061992060856212831835149482596391174653225121936621084124534449881073171464862990496521286034090995679644432029388902269537740534024442113162328087666208058955310757832312517750834224673553223015699507656081703363246667214477875444420577027813752501055265313723086342595469461347112706792024090330196897479808752199773890219582076359590797256136586326827300514271275918291829694783508173360047537938327109111902713176232772189486821343359915121004621163756654770279949270485656528835357091808989858298472935923514263603603190619009100670460833807539937906863486148289465093724810549246757644107199953802904819420673513797970774705758989859769703874344606556608696688342499832292010962868195912361740162649725856330881601407331240058545861212118072224675314269678847060688071536532526828368134615135678201635087217554572542885137163537322707053889210079322515762834002888729537045832160678482028333079885107574348175824901223918594289178317659648454412564088342690057980006627111822569775524396208734982506638602982494375878033412912220384569459430075813321325580446497595782977783513188275391354807491462832963477350249772927618427744059865253176703070824118227058873657520516633591929944015476849061302966413013019521221627398024506430746948759839572761017449807746893885089329417226010852231855346470298646901641365336417805036003805204811872248211919823512575908370405373990398581563978874605679239393164778415395721612189673409000568648203101691514578017681500500523886695175508771809986165636231995615507819023361730542975338999969101920584755664864030851382878588332800791189906884862547785984392760914349423653856029580268251188514978754223702773082993313315853914136461825627524329844125055240583564881026842082356213119147205883041180427785428316756162187380695120132946856722860017381799533577102132488150438149887462435491073638213887831731189160909740891795553849637232535876341319901361833356395263800595517330805779504220630480788572771202784225030712372981764987950296767783684428109021149443545156156702102921807712403947709542959286405190416997268168647436141514301518466591213149100145009775916464950023944386001337997644583601749660578939648180399986387427307958163395658658615407598494962567363654580552110321547910376614726084543547331257744897967792386015967896471944522466491022013125016770876091645908901764987071745938057535343027794955229255516320145520320103783997634710826060715038129193454652568362992768244134233380448512800778379327794415748333239136607721939130903598992969790951877781325630812100583133128351645984992197499947834806895051328790644860213692114180462890736393399726997652072330337608725522846753665270529831322297079351037582126022615226311889943278453530997617920936851080247481137368943002811983938202056501932644930545405737770219930114763421695939488863847181056764564411209132455264880682089227041542914374253400300346582657372271807941556096948273498503609863080164854696241432320069580968357864697783071116310056460911817688065425786976559793356614569338547448070499949705126026823800642959482572739584065263935569189445228374613526437313011899617481936481497653488140428432253096277822008800513975332425067353489646613196081140011942261179718952759658067469208607841220670186154915432657163491485486941930338764068197315968407578613542456809191121790736879026917451502415118519316957648357872800891156807058391118307824131247546871845555897794309340104610331466264635662562113788256493876759878496826674860613337435953139227500327051441281321637754366207032107208090405665748792057091895898423422298315128963897621505454055481841535380811792035933151937183503859572098211564544012311089681341096830987231260795957733777866429366653936732324373664768162582954102372572586082647880626729057263803365207019372257468605630095002504497729571173155289098596900417998151719809796918821154565807752174446301297843558633767829999141368006103396579484838029453096196100725681236619993448185103422026578042261588597898816883529081943317347263058910562187365820159856585658843548126395325356483795476501707137715158025902391507746628900760625075521604149230003933519662240471079691614363687603693063342965895602636476271455184023193908330037157563870570016728262286170606296099507712164298283395836638314123812960900630402522753137252602514776806356604439374007571849098315226066949265950427407370106315906713719173596194803116553073794598579116608178676454981014573419582381754160151116550743047151870266023870493783017128463004245783317117132877746463820978337056557883635272940517477326895113362492130015739391607421808757657302483420264960319006265480499758469686184583436569018217581375262437085300732196464933980720928397001653799693917477685654766605644653147183185075051904340442516417157533481950054594496691634995990906008783212472871028480978319407580240263311759878643560146809906097170860849725845715492482606023682975018107395026151635724739602181386524816489882544772761702014459156648250867107477805907180217771625877676248360214119580496454883140220209168977717667219612359059302849008603589585725086843489453701930295097445259322245691115667640645243213774439419720584132626752043108504103130877302379181329053593912181896719702104286299835240740319844084076202482457757252652929329012636285619490828607126508573155566760198013463398808661392810924577203204325831153179824246500158760339059768350083110340808607834005766622197757067013916739745881681505702408330595049698093551278995600146061193101667265911727327463498467617580942720265704743910562593369322050675712642790079037105472548482028379214764797633644816717423821868526651941277620201237525116236492647087831964930454849024309325553957207329509721603587209485562449925788652455886623090206821981246842211314468539424822767519664887750945040518868317463129353641906893856094202608406061325873234130099682245802675919849559136014038740444618918910136842777708493712405009343890516062460021890467495932343376623391422325688068763685906132839145062463132045517890528679222274289244223022023489864720277541396643054355655160172602306685606553864972700238905799308060159391975175346512424720368290423787254862455589385368752878628516106363815367471274521629999030727684111875611793214378934327628295271460129833786369655631086455125721567210861053486524944266921125959678309585802022301077237153582875010800799610844340049653685240869860456844718896322654878182716891750815676655771170860820484931387932141207367570576395081185903227143246928185351518118455727532209869022539961856737371614556213699178079008724949974024173805483389320081118682670057093067118764822614514245706696656323516750056762155892757465721701924277349223630805537315671911324490674458035559792274882196623411020872401076090276685034182955382909786632312178241903903134016901335070465816416995673158593113261492497776293484698559069729943743569773230577736690385495188231491026968978886721634511145664969498698045500510777238687987245970266894633195909593076876080754424552389262338116034900936752288760905626046931434642711933567982878512820241153264199218762429677119364355036654205416984651682640805598733359617555885515460642824530803028237957518135589068180560285121600246319201792086309358599583807204991814064142207457927465636595822734132364509710349814632915705255789052698492371951398944642682782647916982781194316663618088357619010862094879078963585861292947209909521020566423116469394758036180304114033884470945872728444997935540537458225742935689349087517473565309520344874976337695231269547519162119215137031133704891676729759761550380159094874159419158178751242040574298104788252166559372348046207515896861623967627884389373418017269993204939985674281319415118331795055209117715414813357049248536372678867830725584911827216556659927877794551107954920764792422782585505090618553151958516771270334524531761095333714641963380277236632323450561659348554225548716585714630769642846473571340690949130196849571430144980214983332175416950772799153188624041188429875119614334593947061606750993506869823684812281908391806816734543041806397031804136158758925871513829428235696147331163782873691792874740422789499790521760644773835271351368169137260274591176008159537588348297732641047662887800844793729188490435824795563309194464252559419112523166976024722945133398534069018934126310626714034506029226390353355018450083350431026189005001860576286346049027004239928769525678256964073700967922130662105693667403115832652719102298161450257245107319251793364189227941360087781827145342187623416952889132929594866749407487236805475596497032838998349044773735106991460857952563214239172493842972680881063630447509055353904833963056985290573293969222061309135532153754025439272411992795848933740319513076365324327499931662359687952367366729665490177759156721989862527321629047777538735349443829495188803143292123334717852440049469545206278616696953278651243362870939393591748583283966121844395772387814399776406505324561319328323397287243540848647583317569168630279518319459531741455177512323749797065921544076601630721257361727081740203503829863745484225883950307990700436941565266611632223530109469226600626387087915674407993832993178751606144040323079852839065080716037977758952976328239774459371606631694590076593895165657675793875361055312684649446070263051149768997060922513658392278003145794030520758230396469326139252157329286788567205636751133826333964577608335274796261203368118719224132736108153362477521202778654362098029015958981879799864172806065597132384408861837981235606423220747517979941959855963135259650994644148138297591689169994541670597914267255129890174420692244371831669825616004761490580806690654050950190928473763057963883839376110739335155265757233611709533784908504174445972210582391453008279115223665639450293973829470633363911982049111031235531187475076799650960516364885349244780616653853165889302651747531642345836238483452329796988435211989072240632158874293936148927178970192433746425987490118926036125138757081887796469322463618857461088308060469062700488789200082957262583206935483548776430588880116128898485578400741734968455306156931781292056556041689152214931415374831010683815595267119291325040321597072728751775341781457747571350422983004468839293861886838757701683349555756765801581862149933632674896716678346695078950303065098741502798398102604262549675384807742130642393103183952404169344317677141275155262483014737558586202424609836236298401839911410432396026619377920487108011434828012735000977614224634544787890391673963067903537433536851245153945557322627635259438012876183301883247700246277728447686393792008999408460101021473826248467203492171584793155021790810914469755069805974381370119912136609316030642123460987654566022425020042063428664826698392803504772947872865577895053643398091721366466354631261839414093280320664995499787913092064143496426589090500067471722826909542719437320144200720172594872183509663078050842419625617639398753193962096704739955497357357523879229721486869046302989479950671928503045916424549896081754875812816458296243744777601003306704822198415175373023727752892565990102587278040357393560063687020838019575076924247966047157980889063465683758026741525211919360419210667699623039596170002810430217035498288800303202138914554277138251363082184363697325050307396244718466576934175986484958479680647501982501981426085883999234331221912914585857108640230676002021468378790968596218287717440934169320299747037837956796014924805357334819224236632134177520150756188358721985316054275009187323088690633294574220451228442556474538413588104845188484572824626343664808616841265701051568666318988896281794901429444677572842513007424925817495468528998798033953144191084459104984896248510824841277527239848660151646939361375303846501107620382017435477050123135628404741418824979553739700391730256567816094539417262342132102225457590405897191545069340735126365637644392771409466070355874327262168806157821642226150090293467515410918228184034544845645991341363075099181832234457115343326718631302141756528728265509729620149368143396688160283437536063775388096570828910058752256470276876709653174389520462190484316801851866068092239796602137156231495932981866201847005741003578603092272905749812843105159045402285406743583941864812469528921113227557226527113508982839099014692913528565323695113261369994105360884046711164526112932486834641453829445907821689258847478832063031771507369908961087824596703367348497471034103157782525654624473230018066825956371816824257905417784240868944394677464142464803357658322658853706418542184332803124073422206927513654648261216813408627818536860001259557322882175196183302696394238601415009229715678116820947316017313000732348571485397728005881467941693653441831837551415218521124736576355311448981177639864186907435520491680333419224988092176355979650322044319389310736613513589579097194659782236354740456518937762939964280756558837995276936573796724196296659293949582790235653824713863787324497812019855558570807698553232566667807688114307635884646431035888469967844801272085891209833340722264773587756358059138736697577880394407030440938220621959570648411049874256422437199460854783556313291491560836275654807052710656545744472877978843014587049916556923745021805396117287822271609161809489328484685163555377544724881034077251751378800127770688596221508673213185029250156219038557548737346927379387137176343615078480120081674889799681850968666471257977247728431003913375405769578133177121937017713108385956858215814567680224806550421727673051029544101782789568905194046495468958083405542603946423349506143800949829860833169609287960208213860798725808270217757312106079229404401347149732338650385035082779639658655697360773822744796133510067804448249348065938852695358569126706934132232516463331300909317777122683277973563516881990516387357866434443397838484513483189530003891406762259150297343613543747392250268897546890121189870634411022322068505451459613477485680567818010575794215261318293778763512980758935669665154029963217391096641534520302154256998628070083236161870309337136218206837834098737051711201693325310443563565767344873780238190901456287034485808955720732020383674115340024703483608884131413956277689799913539496625732110612749272075976965744610814174217477226704142525835082776147221625550804565288338788300997477388054578549455725545967006172987203265919514868137139568077085046561166578919788697572587670316533050854662967866192964307126758484091697446372605867590079374620244020705033455893702842548850186613092708413783394039388693593110345541640409677854063159064038134063620598309654058560633833668361634848419266454411406186166369925438810309919182971297183691534501602293065841145425682205567856790475014227813347656910909678057265732258918082460401479910313092767452958032613499856941010871241081082379334927390906462985683572022823099124858992009338674151836083849662174329507917160441895067083908571107464849212924884406164091795322692066425903481704759636656238570275016593039170664798967539510493849247833465458358325623448625757007945041326493734789548986593385789453955019404609223270883412359668009413185106382498697748807180060243789534882064023076312018393964278185535458851745653529356513670002817497710777355913862342855287044410346587961741796380998497172192443956939278109208540898531066898088732333174201505752985724763539646166896220493391660401268573329160003420282939487021201128408421302915090110673469201942511062325976563140746368541177326431576691077982760634582892519677340884824355001634726469004465564051104521107716010200780858070218073972854960022211217960017113253922420210799005494295848022259655903898335406783151219714178518692096301372561228349877463136684348396927154207952247390550985165506172883811159994388349777335934446114357609123369592655000239344140125823415539742532625016969292596927351206175415836350031883093109089205311046719217867612715601817645566614978887860566821119395318759105850928763349538710724374328180249307266080191077970389152330901848171296786889229355437827746191155580925278012714735236418688512832193077164334225172163046362325838586632805943586545722009723193744556606209601817486603243297952786177957286327573442868408820046522541031835979887652673602567538640750896035748889617164846447690810969787199424275342233688266814069984318171543243637658922064555644266020286763359315486936567360315801897178068365759856228953737629817607433580309002060600447465009590597484575461292873998293751271425591883869335122361961300752019456302716267599471793682448040743930504881806835123242699095556110363006880211264446133521884993952126772710283548618231058944124759737099164673683882697126601917358764471799861724812680276389959764628953859768138466465351722700814343319260814766014910139413848163416793057990739328136914848763940207518670244181538311772874404067066251544896757589646558386455126481705476123375905129736698064552576573318239371818460987484130877904883493128034801498522116001326243158132859209654323486374129690501132760261720188866779916510989779496276159104731003881677516993403890294622723985130480714646940343663454526474319017604094086697724252965679651590227908668164858309446499810826796653429712973642661031573659448657141034540561720871495588964158550971443729420403894129906226771809918598801890102083314736901796335735462085192928102043284226874616924993081365203124062689289219153591053596183151809560229453302121640351220923312774217214075115024473673481186211650799490515825237694735839058661887115138035291671225943412236983176800107072759405771836494020387962439587591282221876530030049518962370671038233889934874509271365122192206522685861158426343350541528520196913174082430977869236110571244653505710147409281065279052617727012621243347688945141335817097803184217432535734998983167265752520823681105984586732154844401382572230228951454444859222312479808833968303303081855149619549727316612018397399800845574217555217468018201515891733990848955727654157149446810062222167206632765791191282384895819799128839310830619603965852404737607676891475407543239329210648777696496609443350955610511267368677056190424410538151360578378638183523629268974232782298418031980437645021359541006498225850973070410504645565937963952551749288027581365190998531878681898612413585706835933088686915705062360600119025597628881083122423860470252111997015494543332788026590004186902611332816846541712869123927116546547558111552369996890135180774603523877148833155681816862675624252689876818611366855649341158090670296002751718774019473121817382031028532487822432663397979805269635618764892100821142321824306457246176930034935413264596792302155057147608674235832616896084543932313121103711118226460384054979230212567666514599283492451409708058077255515446927403827315028655681614302147375717155885730530217694275018190016193999530404066499380366557840301444032422061958708558270614656197181134069420933004540158198610725461336858993399889720355293770387920305596485231331961962554328376758278667264412916201416992602558540948250545844175815346478094654667194115887375075949853654056939001544850207247707930871345395092640511850209880917002837742907262615748828881198554618394311303954707888551601608505691687819828582300727910140064408933388254998467712854280749630926773257283515931583886379543525417639365850269671995407014564176853085834548283771515760876967229897032633427349244529045162001095837514352716956709652448886599140895076437385180477881087703234295968358961967923760932978608922413938362735733191810377377283840177215130116152769869041570007664209366802224215277755272948225445458230314319385112422818754572481936908083851682471449590541313031602394129083436391816490798939668901368194017086723605483312054523177197297007916262297925074263100691179381803201660354602918921239113716026410717184756695015263389017997265702805879467669309925782942992800797735162884966135636015873914569182606373475714438983839935337892150228965843637847273464026816692201337893030596221320260297013923425695665107717767558419497845736949876363369748798576418535017783725214115777965496026738741955604568295570342231194664041511550786479052104316173422047347791325874188715445371325923738987583313696426804719106764629025374811441834089775802752522258389569682298421908748509776380862859758510312600878402176442697809849845221356492761357774358825731894635922883277327083819233548866217652033621686744279469597964093534560563331687717956925964159879368577551451436562251929010110065728857202518307238161670680422403733286793323215782440896412339048552952215709996073903051624640744244182794092508926264673669616984937845677524838965620794069986033164273405115052461222456109640260269458791604657280419964794667240614496211227792973476099030421875115594198970262128720167756478018968202315943241571545960868074559194005406325871060495300664503532262419575371031735572325801543243996697204586001790214178698474084318664594111286720269250523079978875872161604143857147437507221862118378073676371378639953938187584071744794024853861349484137842976482535633183002793218981459205685479918722351164180361509924575112283978981183044705991829874316077882188619456392989135162796893142217109837894789792028202576810440934379296410842203307868536908839639700925152978553614994737886175106211870355128920143590942565544461245642944787249621269220847894533843298108779531526163180436538254128598112621091090404585421796737870961771633428559446405297579635087329907983353750971048834842635774738088466412370715004478741232877873373719869687713795592642990992844254098264986903678275520427497120393589953289546307378083156152559094258401039130173084306429474349137184203656963960510603002422735257902085354221643367881442231848002426717507439653608880120309319954491899021408481751703497666907358984559470849568404488077424338508798840744420960601658796303151369076709498109701206558432479282395457902637618197931097454357721609675424802723497961696903125986154677963722742678653154911057024819601899559579217932367149053341785598588749197177879465667469785226151090537684576167026220081354914612008396486773571945948959905389209954864339594315363887138837696505771285505043527906738198240940833008164386876791847834882746450868860378155833188323105727336418933678911358155993483647130731905761311132144573919227161851972445950775883991343930422735626595252347862361074256665724666846683088979875738473156739094675772851233565406762101947595123321035768946656019330572524832724527030522165810427327932596254259215501330128012893236302976657106463876108091870798330807934966801216140210489264072899393754274750308973958120497627348089967269104723164265831272104013582920833818150295942210424237701223345203297931498499377020121531246273099549293029585254132253767093014327596447816085960464714351525005704800811178544143772148179537770211649044779782826275721911851840371162666377277859166723162348209342511217238235195438122450111929966937284287798117602943399934327834457940937464404091098225945740997358435984731770626144751348461434721506697396222122417604684835902543079070992299740196372296266479652186554830201098112980109020488864690517136994048142766566620128665378769523434043293007677599214901705881542075023180964792493993912402894011362258029305326153175489657480919511145480819131879483696697603746573478662470082404565526905669464451918634927454022277869872900627852946402829057651334000730615432497584005988501862713865743573042151142334301650154823261487444563034357347577155185844585238633995671184751402894293172783420789803500437923245844916088042966040413678405714304921622950922001200064200949790870646381855937153384825508000007667943394891617128530170094263478702733566474762225781114728517142160159116083778840986917082101959637300160934000242042159771689967997115310989123909489974283306616510410258458160904563818957857678235679784965498305530671965117925958682530953784970566696225374214366393896871835332721471761611001639104290272765732906460351296335217178399982809790511059576703423332756486264058993125954055411778622198574683564124458920490629654679573857390284041384319741223558374284304669431431585165689879546769141162598848894405390803126166618176991905606227682759734687931269825179812961533486550446819800046135863407356972894130698096915593121673511570397608724020618939099183217110722513273433037556015171943989893552591504271565601838285779973395987153315944845322965580683752673698259678480099210416245840292740027579795207250444785967315789665073053635839358566240707777179691295059821543805054929769106717440780659222618287498721526361569163328048329300662474462854197949345547282169589090580399756281745371752543919329177555338185732372417875617862877606494073199889416974456920412301701821397562278064518420387709665370894359979120139195713369307723538097126418525191869257047208164437622528934752432670758621203516412015980074259826236150551787160941966141290567094570632683110226754085527488670837786318813858924459189566047602077724096926529006421281177931060817855231828151336953893798149687041452525549592108286903262711096628925784210917107934518073081011250730241829180392154507733290366082143596058698567975845437345643540170633343397654664761703026155041984984860734656889610889659465219267512066731623118031376079959867649233447992270246527229629430004492073151229527049217926451737734630530238774367374724279956752354149210482005625823084567299813037501179776420118132495902257878155199775951327177145582833337019070028448844918256429971663208965343646417723544216200579228873819487915113703028307295318438564102706668257712189555875740234948223673532437557676517389242950916471015206820364458609589748336452851809723478517199268311825887239690632289682516548790245594620095132907908577276285601608504903338960728694071174569701217086569585819418758658043221095560021737002976012743623195840833024441932952012025129772931631245086649759561423036674274688203000544038338828961902644893026084062860276688733102890184243742823059788740841573331565673202124254550557818776576226224219373211901803701965376456483458786005937230899539253053641950462518990799822605079070531888952656505073055923674954883082085355211704235609418023547723743667378266700114695413055633421765346467225811643679058947037140559100498468048575778702841334787817676569770599697760930121112574756759310269560094030833866496388482841762150248258188170054394711856871977948190039657811839381793187290203107268359515304013804761751258013978859067127007565643115432425149054548918942087501566642459417901804849751892816014627292460696147717096981079680481623650528393215782756599100507813094008888369756271802607583404629943074063175068880253730654255924148549847821840524776942854822955803738651789079380660348462398544076227961235454483915708291638471297501460533122611778124086550426936062952941673853799371567377729529170950636770832343858279548305804765237296389234547970452947953617040761737532895454673426820096957481594300103966977250158423611489222103180275092093300309403147323219437052684860354308750899348367236432451708881772152267929947340410931191637944905463368558700367702618544828946917621226278977825866037800695842456588040901303951907939211123653674237346500060360433396882873247070244669305353706084604455478182951324835023757582704347890231060478124769420461240681013987608349381721447443558079746360553169032100665983160365057942006933231355806518583582575164847792220265456880582069299891575757745350379588766910996600313652288909593267450710229135800398554960142436314746794161070858383428119122610720331126593693521810677191509977127052810081287943616147500262053470504046183046877104630793667062344333434641684246579314642332617144401832642653525924335681980961832795643998213185013095824067720674782025941764758573474128124652707406672045013992761937591785305301328162466152091962463960623611020581523773898098579425192447152041237314951757533949127562680621703554674222493685961424681014208327145836041773115873279457668014454414937858230963100146170076614266949946762583001384179173515879982775352921182917804046679214958057534341655178041609725402536029188755821771218936505589390434906600094534538229863726847728686907331905689368343636298250355655302901634137852197141507992819343830469161294551639562606556299141107579125950224114216908758116155117937130538925605133777918389317218684948305764955714603742886413172876447337170606427352217794850912113295014101379634183289385467905738255964339574528100963637866861515865660314329129247162707904702220334158449945545226985187346607461911604044707873938509701829958616386698490911370743964344234505037938820651371607808873312131632009170029703447572929578865029928336183785557707747129714569694488774911181921009240494314130764815392832938464847176889552377424014334684811444844546148202076948428414921604579701866058687285708212517509675595831512843199785585596778362122665948642754709146182649004047268458895525947683083141278925903796956806153664301547496513262043993942361476149069379874715389264140267312109093736169828121290749474284154306791299314188175507755737418202323165504241384966387673950430981129992085788941389515437402614676163261794962768295785463577731790787677475726385668007416056681340723184304912515641584215214944972359800832706192395241850085723986970883234387067999840950945989109548561642309536271320223582333815188887344111821058438104458135055051260405006958466111486076759646427573933759894293333699770582198765940555735958036432206337597964300617236942221514450286190696457242035867431309847091726246505957641937357210000961158645176223925301084962283934696439912206636089937036691983788263346081261482914554346903214050116009967222518151662793185557965381728791206963409964767267252440319972293982081388271346903635304877912628493862174491970652482736534869698599094238906290317103435755811965451409697673197566689078335844194317457462904152451868836316662680162335500169032946726162625330840018070165046281448330674862253973686074833132978422001565087642273646332919093278488246800907175670872892454423186966857212940911374829166699462723883177221588405113040248214574768052355215446446150277981268950411397996366976609786116009448261444268302128328737698416428794222664725928993584280670428314480041117433197618186385194427282470033433278238757565759919099368077341811634085605379572507762905699475493172185886248783568014663619440002565571941295074115915062977583624750966818222342352902796383304552334500431908393602247489501721716109855954263362256142382460996250073443259116867297204428305805887347709379087530482518531230141599840049239990896220009598541948132330231601858730505513946830955362158652173894059007326684467174704812206802523709611712749940083443262931529178992332764731672724257320880376152355357155511696426578287096368228062288939975927138795360608895886127920003791084378075362234095382067918314228893668998686120637242480003171114780283576373880551654096015000688071079749078481220360447369598767504528726666073487127249345736267334596936124025152240272036475279786860892300076666430818263287389231200240966582607127846900999404483703527004062843003024188036133460419372708726394798883475032152142912202326946121682763691403369481746218959588283907090607647404668757320438852097672513948325632666417568954105674702643541347981205788138274255833206723473670041593253546877791134320634489814705115852746637699428125834906268898948059628655256603736839819504444778162321063079100392222353098915439954727698232278488517952225597620458730169019039539488549553483169340628871431565687499703826811632269479411572080489876537305862016250649924681347691983382127274227766027847421624679410004847436686413079467346208221656302439629471554857663026767804482337411620430795205472734927747186734912039047726067664170596914525842853743167740101704224103205974269796920906929805234303477516838850802115550592607116821501360144005388912370532736145149512493433261262856208815349541305068472236410373234606939599704011034159408223736626228773245362708078877055386292729190592164614085593317762021300926226294015470143262014892601178731897689732541050232256503736219419866192807263879972166326399813948625918003328699762397200525331189787829555838064228845692448554039510349257974248079165489981977182367687292466323560443157168851125988491171190040211957272748342620010505860428441207051916631547904744727038048172361338710426739275855868831470850187914702783263985065485979798402743440437012068126410296543775031520578143583009864033680485529318269005142764375439413109414421382083909749941708998061260400819447957275875804649065184514956784539351277692816593706197035479003049087639389298491294078376717270532972675962206394034664075297858263880870431892761446541787060558042551218501964587938894143006558578057603138390578016455165472616899591498012017006734902449596761277843617988090537453067376670120572279454130970000201066484259738308970021562078674359832786418711516967108473942880967216205949367159184278488961653958379701465876199071461259827515451398893364733639596378129920574015533185293839030178800000142988080071539647702249012229680445722914939808960554823590697016040994503209468373622839114724339156777390121807309548863985449709127436133061426101539481219388388483296450921404610728023082612142826519134899940105321545292825614546861218222294349107087013343429357397730232725721676282724432955473208235216896419524520473529914916547327122938615410197718705170224237740207625460263081181434241360430868374481490845362759513590005688688645246379796460839917489619787584345003131752516953366945256621035400333534434163492556260946977219218346463392016471207723240975451688335326996765551050892107603764722849794332143882648288402807894762554934064770545251664192227094528553972629317353225074024161582200744319552408605460252045836224855369073884047550849155359597785380973740433040670587113609234412018927144219582623683496016845377697881967633542424615350225732847005895873552296026013182467139784027725273174401093709877120962072531480224241266847201910210197894355387529622461542188313728927953771558091971339421909216686500358236277153153904912171378405753855493456082941092625776272705101415131254547167813630334361600321282974480280464241150506042292261909922616702889927726946307565716437207092611888330883496363911717295158790239181589820324587962681754556921083087732889440454875998026380471829718680955507081403117012529091851039592609676058175675062054562993708710218765650839384507890780660594963809822440505513167171406499379334032519216108940834989427046347797330411317309813685945267062113718272939370667109586190976811832205436960742316308931142145239238106620787298849841848088096039641893690190229104203726898078318758543287363777999097834155279956655594676575478908083625601363441342984324031618808668276070671029303536611324631329393459717369757665564855454797911669293513451116463533964570092349927827955036354956883250263454099986083221009099749754740669045312844176303416778706464923982343205764123668737893329346813208903094988998174425596252308660191799355024184385478704058920623898514523423713414837259887545332518980199360892900385111828610768607188091343748734089329661725168608051861991875275565115077739078666012316250805826201154195336112428868760949279703009312468873079819094337541284165397494078687098851604767958335768945823728684881277792109515072283759843092983650851666396417763632566081203893520315671062603680247146472063100273529307556285271585884407532715000722716474732720454599469536372027588440088794845003910724175714124802107140935483245852373069110881161221951957644825244514954947815140693923108674630038801991835227014715704148413335015787876412990730555214340816608111555331720831905639777610486455525545799752033870948703220618466408570690432642349852057275160983404689998473638449175998468573061376472338070050716027072670292035723335237456319978439140883433809684760539246753280571829791068321125861244482896974653808008446436456683852556562261042024829890024610032689484797059854143922232200187744180293815242377983509136726777369631636169810293863501186300774481220835393307452231065866813914871794851945128718875940973647384632885083996794491155293245083819106452383997143235867047531001827334719905400407549941615873460539173161623222761395258110227646656494234314325603323904314174789171634811272873755806518356130803341185442712813465839824097563720109089796511134244654246956257152864416330953647331123164600761827243463118086898247180941585882856057431257032122791456722144075116712549734913789778742805555367254557947748056922568803906054706113122977741294175460731019916238334732736990760392042172190366970932468051077413422212760432931817114667028805103602742540250881611228370194791060720039449611581341094067388893364661121078317560041730561798984858759231802372704006977458490692259324117598851926019436125547319672735765883742280250687669349584905721094519077108382120174261594089073225126563897550011177663837007616543224017614773450716559689210500025954452213343229003307492982394239774265792519530774639524652102496039050607236314268596858383784589321675549649499397752790912829759244580511821744857630439201532559576648201278359614462422861522005529894059523431736457569090919840276351644749557105972608311037880666685635762420958844872759579059733224965835962087062419627691870652280247354176663222059682203743170072509567547498242965907307457822411076215868412847869914356645837323425722745697641399254725579189685473294051287983685292431654832115087047417909720927734496601688409821335348690763677771400139758128816283616440892109813386675823575064143905951575385961041015811574730444197132525627353063796592099349758053061496484081879804871049087879918858995667406181720961406428288558055546329028447306429343605203201749414642294183435587907847027458871633291611253877041852397061462101547754320857090862892315509352043975817904980544048553301678155712961230488166416471724093354839619247269995645439739337574580294687824237260141356886474154685919473488326879068901462191253432413341187543281641494162851251241734614279102132872991899986832912961976856850132306777633610911197856885170886980976058755081452902172276024260060942296674715212796099167999136633013524350091454181120633260897864550715519687022239251517557871974525107965817477298900180048858958116784206493266745864501403957729374818454041103576937031703721655735878180020776716212780267431913372041805544750078892477745848717794655406315566166148209617452890979496592190160947561616266703850528029983058359325697624908445820277055886529327703302604822122620750372312753372690327929987818488780235201857125811184079130079824445884558565865025667522977979419349242307991565024393068583932548575710675488289570733733241408630395566434189340130973336683764180720120583876519482411158715465105691881025253319377623466585669067109080373355202205176275111995849355935949980686604104983957235454537100717021825575002816009220277471117931383537496147601337864207018655412618326120558107733677390371197999059919769201801186942588782679617341861427234886044638482217255926907039302175724841943076455111915815480604969657898533982605168636128137307320883018496035426093404304394321099080126836728825805386539047087608984967512273101393318926547046635544975582458008270354134707356705577640734816859766733859969930945516736349489743914246730240641412133925992338315417051596519457122123146129958648125918633928149716470214863218605317457207631732176278280369654164389033788163805435344690713175637768231272823483502054329681787637594856762937830518443130792014327970381785790492120802387067608618196344632088034086416395094833954791668115142251899378877001954998198674975158361552431128758923441018244572937513181327642415300328003723556393386246737508646597791789758904111872993882947524144273583057604146534335975943027567105768613787348558472876172084043615426769960226419134930050571331278228829486062237272365330461482362735894140947012784996689764361029967221936128870816799088575434152157561346782084468492012280667919001761376120378411835533506005355582635705593379919977578968017190521693333524849023966005440242106588777950683594484941508635757768160301233553144649364708099244751840871903772247562622262513977244192588823177145799444764711851001332251316995914220049825605741140707700901925808196887640720672442209785748138495429625961613152203207882276824782957137906996407277376728033690688118046904701838859347262557286700823523060106990326015651964810307939294811334250139370977089155057144613978130200909215030089086232509385811693782577795385615053097668541743819567289695382774865871066952167805109183559374555948690941043400392756494915122533586519167846624000991367480655513337138091366306857005285631576705096779830349322599627337963573937774018453501101875586663613558874963703677037042966863952826854164952602949586906709602616166244446010282913934258060952274126905284919174299689793677139331882222669860827974182769655997202692576221565799536054859255836763584035445932841897963217555424379722019507033063895727274624806035032332670568360298281074651388028765455355594344161389392183983029187890845243630738979279090157539084522802070889247402422523808468009108102423517538803603709909551891007087230243898199666119871695718538627489786350550231089341652941427154164712954106707553933248430820880955805072303475244813961361297812895465191720014850154413281884170772157670176900372564806640144429421413136569240501593075259072962107891504831767929913828577142879027293085465861452828317440869425955259400900518495884755525830976987148725481236422186327835703191480846536444419797990229034295541331266144832376407551971760844219071547801657502488079834226964609871105130102887631214778828880547246292150442104267986942938969064812628158759699667966831874306761199339214747788441075229717429962603705946523327233378707924017737327844594841035457156183311757412860912817887282026417820822154954271828807603017880030083290064784974911708200950160621148413782007591196967786052250734118290088392714019042495184840591295167265067828407651360788806795896860627332312202523757966663752729803412153248984843536158486265618631224930600979045459113503360306415352389761856784214853155850711291056285799213910892836177372504437928605419146574251602865341986701111355462932416108729636923362147212944003179854830359506248542348912696576978857376145631257863604739593973619193501051724957449289331848353729233432870686364142408389460788941059715056229152652589894180266770465193312621667380252291227952362592198673290233805712763853311379993185821811317639090049630505730781635538808847653281480178669398357758610913146414663475333086186084159743473567573832450897002740980869490811668113160783231748909745195159055157878893702990188976701824725883949057696031864274488120666645140601146755485518522216513648219549169271300006449872715721166542243254579536993712461586420152262842313108433409432113352918680543979056480862809601137345146696745762295804984499344488978373555165493916602439148382474281847989476995582045467659189718263589625249444567189409301528463976429650947529656097167405579416823097267964145340817327194778879697405887412764880961529407454780151048006480006025305677493904928672161792797639191854549482827316456897133576338881005156455952924693664815555077673857509470316876643149278154349357921677935415570077377715573252796905577599870700585610058452384953228996380310353665013108149235175713004817589438289907422403481620659195522961176536012840488163846573696186030138935857664497892392767142271580023390635627998231799929438605920741344764690050847019514991873975526810640336705513389803941468034951783071376880198493914842789539742478571085039118615033437874221451051196285008601943760933234014838953174256624587616868397627723145969484583206585547288358940026424898360561917416400020633971993101473015659593567303217508845596556351804925528437154935654437364676826827495113161808368282718361291170092853367999461031104902501109915287235502887803882051454467494110202702906417214488712382843728169787622018145179202049365346552762442070119690298612390438236631329056103870580631873722992777684263695106479365252492342765986770441047772986062596193182624469158777097749942966297247517548397086936520558125222618761995434012882305272530097981977350238190162374924404684618499988579656270562123207654243747524016176287325778425276842432785302938325250485735830295077318861865174799882253362228132200653087380231839720811838443791757538840913801292111523782926264500282772581378317654993780161588563734833083678479403900657517263992080680531412605489861654795887207096745855709973446968653421303771949032562564613654843113201862487493962736046635883134356605355333182708614184325974525376647172910747598697357571393862854827852899375639936068927396563858961530086535448846250041241669281125153025858387075124113102422601858502815294973559202807772737227743269929455541827636399406390999039549930199010123619428196958230221907431382186900206007629965292520890235181055719265940319036212364819796523797401137368244074122289073645100850099955355227315855884498337616266321451580166535684193306651932737649713661762006412211392934151917473884182404010564729817533108865551283949026803650512522650517304216565560453156224416267400983247090994083686737896817448088513346622251745524036874463743029227669905567027822696267230566610907729532619131584938112749903489875687761019557368252274443007825332246477512364289131866664868123169212947514992786478560296134562074178162176861669363373174183576504734186440341153772847016594873786315496578374517530642653468073602947009834366672083850318384567860624915219314832410175234922766348596521488455078091473901068743429437211433234097808550261574035008410073410860102852563979596048179445933481650501532995787149852716388776372853659674569521628181138918130810050722740884178756499058612818090957544277619862157343735931403601863309794102120026420380737301307396060276414430304175466101804515790436074630975752045174256000199143544798694197275122144502127865460877195105128501824333730740366581679657253191344233177892913985025075556784321317054325394264102013177911402624525732025016994624009331126934190215087108055821745054900461516246805488568174347039445866478402869208552719747430747589553553355816283490450743244395524621336207571410562342317400402969806348224253298127668461870942650393593438428841092522162329818238984869571170278251541144412263235475121270470493746156732304380783771127231679706296422113325208320650256638876029351322225844216419160552837199002054377970134080733889689009034220972093274593520829869344468834102996339175186697915952975195728666452523674259365056651520645018292408661299673816310305512914212254515452393878366558279396964633928681439826834899046494157309917696590330138477019525690225841155879198108815142618409757838607447671593804007989786074938922158597734980368834068165789290846533548094567422111133626010232185839390668333966763590254648327045076263223662845597270793277256595745658351282989760145350026627648484025117560500277488465549036207721211185244918417148420526272808057656182789116838562067673070392467491028420473331124486266089646605663665807527418247947171102415239191477596060037976327412053712283591690425655518609680160353369352736001800539537367471003111406164214250454557866115133821507502882983107090778306780324306255927652362006602685952347320343013281948964632005959991276592244169423691160804935885655714878288013995614103692610948055418066753380529484392383781830948649016767935305764425627348304585712311258311703446435049705661570682922052598375450483732237224435177225967779033672407220588102892445422644157319286363764830481984313149912704471569594504112104039483752385876593663613832100211220012464553356110473727172727379240671932578717903439667350272586468148937311016016012423309737070581101670864662646471688656986185931286538677622574492524163004599108828467080836019321457057454149393213509061518840897933091516183949978667551009185614423235218783927536373172898165977508683654031337338185694554870152423479222814301259986730208738998249600425629930579993123905613900546644551773561622239637738352182267270793976605517173519365375297249387799343992692655550001183428168475847561500774637541117404372507105171587427963108487467966436173708246844038238670738035957169516948419220388294555286110600264890289598463337322194418264541488887477664081438235262850321171450313340352594319937581642892620684121481344969587029786614121129668027459440773638933703545705981703425690018357604380797176274408671756775935555273719145814353660562160509096622567664452872249370705038904979605258641768735685359081115876193843234843171701403037769134705888254730545706637576373400922827650162541919085818213786170332937766446030256342022792540289077339460371845192416027990478742678997235932781848214672071889072805075047104451218091952570979740226232256211571646179944286737617084410545188554553925555458612248992478560218453015558264906943373971057112127178793032312585692711640025529404445086477924422029202464115249015364389658114168655151172098404694858724455637827952568400799079353223098914829410665707642067641570117069196327004365217803188848108376078134550435944337108875721280729460363146897783318027588098442462083629270916976284683783500932640090939158904170555913104351008250075707238077604229155528984475259077969893225824434925458318612344653391953017010790594286872900699397751077672078111274600598341191793079303711427884076123156881555425911626961943152091186661949139593944852270287244681690661067426069574551185737151728146760814834162117790348917185695541122936020515707883380454377498373067077908309988755024175749916330819448927435726968666239022846091209638606425885780580395095288571788964713979607027612534834531750890897812225633986377359011595341471496427720554462144580558963606973219919410740268625170024368331072272234566002053455035168273290932179073552318442630738585935648323221161202295915073684372536467378137367988149465183174640118620837099267406679688624673112095572249347302753878870031262430564853504770320130578039320920368976188529536151232574868784814484245306581355838673245356788711672788500921932956807312883040373513867052392088492013621688798124707824729362936639655198529320561811787582621125200933713124615535283128421514591586086440018817909598133276167923039915885199119480964396236428059157055653987185324935814063151065832061975026116057738289171353153483157056866378770666446613928341290540947380293018774641034801473097317747793568855331451148202410205877420475549477998700848401096402819707014387538194441182789450077301043162369646107187488861152056590613545340314088741376188616996996871664383109484779734282914735695912431504288653276420302748406356478241499279829526090067843034240772464833700435610991061165127579652285007640978793951625045347698898557393593044308174355606479994214417913288102989199462613665186016224847797584405676362717786674499483111575438402937784127227737861243096532177553611189715943495863328844336269262702775782495932216775354855154136088862609622231805347472994276627464811014694097147462870810909405384633969691535959548221768442226504899511529764812889939481926478239069729695844369551977631348608415356973029951781320682585823685146551782656197683672791501439240054327033755951008186139626428630381441376834767044507643601539000334422666357117674595485055025492405076258923738002779478119538530249062472433722661058221029108862073633238734188823881702218052762940481867536492983238908045106043214848201542900192821467287372802644702588102740896955756837542464426419986002291708292062055205127043732050114304770814206540852831460292815493512260125409689792695951306894804758025411294548029854291442718033381406156305803036312541851995348340709146246212957536973186718702944379000656313701413628602556447069827864951292609627875264565794926614195406017639366293825186533376839684714410201228956181685096438640380822760963612765324523048040271001141395367385056010905029850448490419184787455264578163882561685508254477514944625869201973184923662193266017125827689677937208861916046942141927557594011341263373872563306804419532951360420842288838070282983763925693656552740283942649359698894144654353661194953531942682600783421942950051949986052516199777132286898369326748108245577010436048903802365098221845155127740741688596944139844777698948786543284517977163794368850928160748623235599244822467830423831212098795313233126101848999052739018857014408709612682654631715711131942298811227346115415259255879045530680706923102792934638561668633755662843905032945953259618673893255876526531803833044926247846280150694863377709681776027870109976168650329247528490549270515076326622189334781603643128931839056295004387203092572614332348425248953015382297044800394560027639573074613105532265588517295158808428092690219157271421581817498736227982985153104818134764719819431523916718886401772125920141008497186871804298377928914422824798920141956699189929105106979674472266532072334975966123533736204512513785281446372387029396811288318994272106688790788287275926963989573801238706228485561151523526911720646513525758222785234300893037468012828275343738714652231656184703015197934319478778396559974307540873414855805037240152879288672432499086405725974996419009413220320658098211929894519877665070993019619930234833485777081932895871295988771544051906998592199098821443091025191198010316949814303192473215916355003241513182557936637261788552907909619092154288177757900591233398288382921559419774426376722802804255071529872695163646299537344631185802272883136503970182547340241122204759257225657818720011063270388699143640802481931205074091686157996833355732033895405984633543989665052551854130476334021614587093136038863050955525009953200420491839866979079716664941309439303478944509655997771654618374379285921546862665627894476901694516388590939834742150452500258151440846223455022963986784457152657097267739301110721357060791645664733455993260163439450676716112991200952944622672664969940309289595125875399755668791191134346819222946702737441888349213201639268489950162400479018412308345437487182486663446972551524680182225908014875750446209013881765413918942453962628325546998920881571675156353155099987693687779223736286948749757167947676026408064737164304091265015761118768943732464078859947953753740372538644189456440785976832644624491711451026601966044641192719123906721017380520201081012308927120426968933411845157622023368951743637012152042599371665542315818594546167741425286251796234803037093687838530805627337647567684424003522931030774267572508747617697171108911723059812950515808992166499850263340465717808797089717465077088035583357555187807910819375593818666867524613331662967305948739487487655244755475173591199124568727902693227534438557277016649300948180460006108950467394408023302811771349067079467481012074799459036300281352409436837316189656483110036244627402535199742029010321625612169155138702661594761105565529028138200976471947981949525820403975127781915297889510100430604332923580604463891868714825813297110035120597311602217972423304655133108134543418563999261926829275214833712101506399825402696397303304196420846378411225174719128909343645417856062739321086573003427552978502444419990645762934026408891062728447923494065832517003303517714896608008378175470789751071203347659558379581377665156347944475211816542041765440976936368694400222503779924874184346317299116331777807038513673807720750497614437394262125028469445375474704732362475053816399673513792184159883628876885355300371518433743667442353297046849308746290578703490110949392310112925024951243981036045638631917162273400831296770856166166340092152612636948028789586412242172171357933192042709721969942363140460343565127945590048599197446714749510354359967296202155283018361464984188584365884308820963326088369970249504217435623913847435263149543851260963570950437573165700792443497345114770677513453095438597916493340771814871544888962408780715833516604253521374603779239446011558835281643129324750304570218301129196273886631032537513987606814688233487986954514075584709417264633640046724366373226603842081404679559008633932910842819406527688671811671506725177310375772176114797091103945818547883216306605269884697587236312977126188295210144735365440238496912262257084486351880727721646922829755609269835634919483080311871130577063100308599307884120366593631119345091224391903712390665649781389657326757896481969456586136540371893357884179688122495514792000451643836990735692715717714274635178044897862063653404175837342012869248100609467309731656182715689772887518712092025817416972078890062884090901727080826106165488202778301149729530800864138737113293099995899471654151634093853931758864685903888901794840834250517207194552445061602973459929703624390989726449247246657123950684493657840959569347610328724413751835477433960078274312191095369655212848582750667333251625562979398358142947947965337747528855028473560496035650510995984389489275939884100594571415576372018138545253717915747920714552946447424636888252546277853759334050809912662193376444661669524065558735413301885259932655118996262243991148596624291418391726114993282024193238739825566793310151334938358565378872094564749336958148784277993891944700205615934562029348343685480956055367162786390448219375238818623488719423072005783842562247753564742669110728131254337216067876918923492096825613196700599326465270287824362700867350747903501477249922621628522866489859458295354259510016208300193224513996797803597505703865219328376497531455564292109033165949871454152786407530168501520430332077918995760081451988439355479003182559934328459883570378256283544229591756400391556165304628367497886728517695218575668597107373652615567110346465664034329755729033782611410622428479000608554468225417922261530048664994476155999510418394534505938553237850529496595337374615945745733297659275700044916669129843975506249949990735870139358253682942852895640068735854811938842106877825150242097959201477936477098907371168794471977359813989116452833581993756435645471049432235010314147209379070885594982235929048135208991965950228978581175738525038792554128721634973298842912830693019132141564697649204801064271852194683749583034769425627826611603807152384546398807649706778827872472188619720496364269663562958776260402784347737513148195713227649204483789591850484199680305707506546867193953517121914109028276860024256924358055695805605559525230363802601018003029321097555676541433310310600370127273471147000027821494022553275405621685176107222355452060652045373063155899240075895121855122699686797738884693975130956170105324642829473386520513239986898746748937982709608687821086921480308992649368706928585556056703080642076857432128068230972149137369012988753738000954227225357846139725239591411119968806685345846201369351743623856658303567328033416825034684899233693615375275492036194823243879687965369958162477478256875842182827536989658153500271265776696191642190642734996614178578449318873294351384149703414195006401212524879182754156220960896800385847635202025738528126570869486661888083331634669381597403513993676626899012635744525641309506232288342329630429158590617250624788125264933356378405853868726610385224054077584952188472948706493696574110294152242855047311284329018180866161905335174124868537916033143942430265640594185956391535164137996233554678905218634452457394046324625632199714757379863439049315484716470117813219698303901103555384863547478427232682903125186495215966444806210350004469224629429490440924024112042189730778079872970572385703495898944579454179400424171227607353917460336528413247246204223154356514172436314215626917311433724698164889862408237191508056564510181841066219350397994930501259938519701485759267478166230859708381045821629563479173878182907705552266639628239813953481990028775175243441507886429219671360078668653686753521259535974219788728755276099465812527507397693227040070007372940440549540101099495529268615539286572076366956017947695683580422425421316990497097615580906090868075499133819174159663875159987941275709277800426699465743166854212441631721112561776464203012729668737201325716300479304663605133660344678662597968845848430543512649918526253161291767839528261232007170561541133613851281869869060799895303000909656383089475839427501210739546694035370764865084893620554094664837390195923021095476484239263260484653708697276621957799836534995127738701552574515478951871280494505797136791405288885989047823473289805843261897214807665934791649329996757258200204674119112635603389948461687178756436436759877424030133902205138044882902732141724292988297250729581531604710990111241474742470448760495000306516596024501223069260589822857943233014678408953906219383227534324432549236499176667863267063891040030628919111583303026571500821318685489793567260420690284545834334870845765042857021453483481836178498711072344435818623229744509441940567206263728508524278951380984111411943264607634629488015417208528942221497363945444693803050301313073560137110061056710719316479957263727036231984095187096621306303649921292515360961595975211090974432250033005950168402444630695394367372347776596488438935642000034728204702786396617595687325884796717020794651278012700904544247017257536504436651716290600728335042985568295442019936750355828730372867276742982408989986271503923077382173930279146857167915769939775934218721605873538446602149434735475206463820984174065063551473777691088403255343674367779026186908796382996549989994664898207934513615464520576536399182575149227079401348584198318700339333487848613228273431953497144067931928305593507412313768955715856937077752809111859782211625843155778595565360321234576678278887784751016980233747693659698713890643569675235603310316206685825921093776465900174163285517510031466698956019520278800094656287468606915516094113802183498070273437204036779891277983711472152397474659747572543415468451892831223019371431141059915854045102875065113775869883128017242903682149183662270155467203154424738996246079461697849026678292065411357944398323212579496207267972767186458936666314204454163972518592747112728076905945118466663870195614230327891567292581957356840041488642721324977379259064314408652730524845869728071927624379180690633615225984300943536179580629690029397766347119580253039758331269376811229899042075799767540514074594751375243093409568728550976242761978537484159085020114565676110970863064166397030528272807448766401952828824292869583839559330887470749091758203167911943082626781563183126240919927719865474231178223276112366975728180929601182055607546903071525375093158621234043921342069756128013358530366558077572456179205008071328163908945861731968634704830125332960491835641625065486685026226999309073902394438219382971129829925070933274768098845777454686089699911241932904793316657120029019103645763270154121433132717641803850528974240333240453283796166173808691724622988962961611217396548272486829373756015506403485428243481863345616897094761744386856168288203443291340611139381244667399181455696080773813390706740512816782426338956120266391264048180785115761684435748538352897155590330692382299761124158883395229506612532920920453191535984597021917456104052464239029604284321473097368707008718760129065025740129432372651299444312940120972486522940290975667330923274456761506239629376158992803367545594956027330354371204678626411743557994460287913447742745082435815574132765952552019556280940316039397806705503021291960788748951046394801477142949170800290635690869469055059624234525095619553179909848190085678501762371823706770259571871079738212743889454862464730719147032960708034023184502221117776001589226533262180031866833578475449799545343571125368565264055269985184993926982802076000934139421648778270615718238569384593916095158762681445593536557962150702733336574752326200488726846755651727554913310064100070127292216695389548398188985560669988125492059212509218505527236766497999516987399462723627830262674627382362416597815912389973381240768229215459650340921877330584249097310467966627668406523463066396972911383863153755663727814131739548562630926828090037419020955866321606787035437704368335095617076745949391618788001106665218128606945857478027466330429115713564121491767779633085475054985799735434334527877408845571546994005808009970401495921483582769229437216337230742190495694982562856722059275815870727144953152302481652313133877513024865198961295074535388870519066068248521085538331206799985893060399553759716546348346111925340490530184762708557486602216219452951898276636335891370517135693769147527971314881113695041327183675600187592820051294380629020482996867912264697122933031601826101863703020057150937255399299624345816319814134465768173494521608873848898765904607330025450262629038565238153454358658024820566919852785902413209774953928422821038563578494800820117056562139762490809990513750763270831282166886178196621536669208370704340969615008637786961266520246707799468629850065386434638520637382785699908588380078102975459977874461577393339592926719170838136014642744950501208424802762854623792054462794001006076491241168352794868018902976921760202259347326625971067890934017711859141967987909374066038306468903773974226362714296213090260944355445115605895161183185617066684282862801497368183440088509144796254572034873085127046217808991972448739836064384458855842871422944590875173273638319265070049048276524323388174703691270586467540416632989222246944934134124427435988686006313462777826561326320486795571942851614197503505588924558314819195631525752340755222768169144996835876233607029141759781471068234998014173207851302345731871092751249531872537061764787300066114321952210920879313005512469663400476280988524812067221668518472263704865632005850585667634105125478808923287369403597277752605051385419377286273648738654820033032942769395065798327633333757930537780235440996850520357242867293937010571334524159618116384943106749038744312594208157479797433611813688624619881453493014840539350156697731416814792548420338957738055123449227330867990432469554943896833597202768219016310499528267730733584135156444710009127408638595292368146619404798782078597364876011290319681568617358170375898071915192501440053641289289573446992934108312312620560945071894892339268836075272467067359349895245136059075302077327883122284186384414382876126207811954268517518072383335047387141618628481085384936152693625003173232828371467867867568047168919053396705909464312230627972367875037202487515514967088353832040245253557447481667274394084245174086937469720161438487613651532732563016230705137702425350031930999769123656563012105326145010411890850406354471008088127669192946348084692239164940953531175363282345507460215326294669283804924012907887233855685327889934310872540864870434647755803229659981704553974892192810239131574956188683285514783240637401529785183078479819227226072599115475905881294252779378966329885230871102996972825627837353154082056522573645540132568935961111640863117062659656203203189268116216867069139187409907738474836137695911520085019699534165231924946290663227408190259078833658859270588008368588676638633692531358236998451403712148106691327992004691454790860621002252082982852879059028462642539878130321751623223207683640576914764969191700619145920966519565632789813090592561812563011341017514519987119027400364419807333744083308324964446481145734838721551517912102936557675285113741333412500672106221238444696391058107901953321268068502329106703351561082846071695189586636494591880466849557811439556326581617186141747231829773786308061902003378321751690691282218790554996280341894860981770701902015544712020101592022655987399279833541512133223026277255551275647978003304580283695662972480210314842676327659387365120254056503455118351808712695775232970181119586027891621275867539321905679886711768574863411541029785834991003716059757277374976823246044160529086970129530467818416071120621873683531965344154688765142058850894089361744460389240962016636643076061934383439408218668787546856767004877563846846659813432208891536258852385498142096491502739106411443174705478238214413963882461574548693188888310288684381997103188308782497189403839120913517008177026776320642614803787361486137906011983265069963919270976491903607085410710582602390744522445313502764552919971131111897063608851207760869785349140964573597269658056082752243514243655072026007564670573863710173226421285804065973589624329605869094796053243754194520760952484937565897373762289162245161540002426702401691233436928395555930823053115128156847210042590099841225837923411362975680081244386520573535115836048079013268288497668296911910185501922284460936206371761844582031673663574171392259084694848586448558453956526450024599485833189636123645290712669648469304298615693118785225720491345779615366418009189296377984554052787863201995297638346874661560958463107870628287868780929336244161543273143234995712562656993391265710830933454812401906380261465265740963078886721626751310668019718939703763329455183510023193547031689507812875700323924092075504851455283253946992800358419537102412300982967419250481045966745652193866474113120295941344109742559206749286445367485970876542375353290395784371290401520449290024170452730462362916504731827165725040755745165376248704825678222604592013797919600471761701640156807752192871862617326242426879861415824919694762535759941123828528756358368020374257407817642546816442305401659761475093047984031756618066315425102661845990529884179125395624843735009969020209293009931684000281005538207612842725351216211123411322328805439829786667128997861979199492062777500043859387008839628399468456961027818494134384775822879188132321973144204226214130782375645836083398137682262148134727856385557631033903594141297879870391707919669943968702065866001888523077529259825712005589052458281515654197640043237316409527392203610494319375481917843993034198152429399893627727000844564940180343581622780579593845165158940100670131754043159889625676481941235462871133750884215724826657675841269973812016564351268303955279620628365052749887625573126154440374598571399800645564344108037973698851535711963328592206083056249294817297483136237046352215242996219860740968362106830245442482239662613218953937227415344324224010819371029459037569331224133886491476953268281713343985119385221385720864922127242508742403520683132692282296687767695003949936466285531658079958063094701659873638241687223072551944270679068369110022344089556289517410123204830734068421734790485829440731184727646826322008533151953179009231230997712111689177729001500318380429638730026819636081570029040363036906886205232023349380278567010143394391371909794826698321075637456493433750575185638816883399677958645535798838897148052298402936242409679271490822976310254862186364040090844917774773821972868958498607660421502319633520377753532895044336714461853774552011269431703788751354681355385922518908142016564257665455881333125438817505733963641242099797262796016493658887762855818975721807589219973436522461409423154862124412542066660746309033228010818923568610133957603241569830767821423701366194113142158981689215140641117891470399170242873242216689526144123525936592536495297548471732306679008995919281420945447164521733037907291800685697049240745640420767768408869930107062564850820631439546564333028384896809461894044036967395492095528185539619281700883594028604621695109018071254497822517122410248913603075111566990812261756518489939006868667801759876733298554418391223184715778917063043332442004591542298535830676963518839338313326790677749500411589175721408893242525664842518166569945694416003509696664540850472147599283955851757325932596378705520271818545170805357237464191967371374499639945294058901026007332315694439871472497392808783271038534513858289958427366063417856704550759140290117698289092628947722365437904901159472044857911066086738631423234062494636536123728946670303132193467076137276162236785982777595704940025818792168227186818298014170096223994744271477060841192421270833611318871745826535374881406941744667898300064765199660965986273719035566362150939053564668470967816467097846461677662284303112973853890180948662681752058999229795807046977741833305718765646886924063688119813813727548937680376286858090835690896711546891572210974012920748019169566996935811113636417905552836740511873692696240079007391270499027933518373432883111111012095361585651591419042284891883317511280364031947428177232702180920609666167235315770045475244662445346308720183783336012291477607064941201892323205211253009124390885877418163133639412816624671093390302073987927986970465553655634243760775372040368783041674298115771527390701503052974198224547321995949357297360689679191887339289262218724495066725088656639591103257111647893382477628822836875530500786494807983368433825291647371475431200793127639057100451234574583077705313741738974922144142670944267026070326701082537000677896486756510963599621173775656778217145765613777803551359386007637200741382637087603032664252646665867038183912906827932096615768330888471547316143084977355247191022558390963621342122143830205802027655872439709683742265088803777403728592857236235604224060869264106666378705773785486638922336140780741074551055849900450257804139887991138373547986101044793510462792953333545185171722676338569958735687619703878969714911738418206980108068983496908406742740245474252406001241558361499470082052516662729542189094140542472648775303917222286161717268341957827164667571425386534389741944544541782600605487936446363537657969658680403445052231753761619655328815331210862116650506302666739925232260144305737046073494000860214722060483642716873028938177438698016001101914311909709559841362601745413049011979095116578895597897295581295745813031440176367046426707100920304619447314593026449185241953207986323352493957236432479249491154366477506699249327443872567685941573991445965642912891348940777504132126247562677835851852655765595566846646003726146056450215470518582337702457037714525284115008804476338466885653298979991567521572746983101465094707226618057550320646756375379025942318588311468243759720177811680326731873170513396028699170326979899679724547810455918649495614575175244369838482371536088905253943392007638145090146698867203443537009706310220991170995585603603494165863938733979909798034420287397537417073962467284602595496116732407722664236215063705552021778143474078749355378330735674054561528498195994709471147719430809474817035045052601360972992186183905911877309292295572045446943950503308763534913741648466494234347237325721809463981099642756229369947181217485588560053242071942302936675946259657927874729349498932582394231711913439069959188627163644727757846671540290629829812438886862774454136684842211148826671527804278877552573818239123442875496821825681947750107643849474089036790874849965291955238214053963105775007007571866669198670075258570258694716268421947180408572590610247118714468218761579524842799388047147346281398256542485799612196692601953615390365643045102859449243093044954280898739055377533849772552141654653529912228987361672066484356357067115073207040251683281208284975404086321503983135694068075277438782495070492874498216858377489799784732751712977244194733324929404283307409718939493301015384775635244068520555518608612025114997857336450038868835997295563286691722993146049457263123539680426058435750108045399575225106265258644270524947021500338114786868827329755123492008633690763424674924447005020716041587764580270377636409576202378668548304691500298192250229889805047957675532681165220217850002568873563755927136552109466082003493800334271173390257724931179724159023059240687391115698967846076740172228344216322046196327706742144242698678447093347679071742207664703940806805583504263715464021519513020281530220110142531283689075727333958200854112973242642755597517738916662843787124823782594642997359878732999737911909169754930046641434034316373949656238394738902102697112142865283850334441229920294669482744443876257674396196618006006741007653300490943045168712220902996332224245785468470922932037457996433135907432884762359545011721774557821195171512413438418093502816165353244479898557045258419317351382813192867603305226317171263696414818424862343945079141091666496800346738895003076027924956533987453173560043120229453111558778651226130432494198840828068715552768539653491702945174036261489048865367347824830003387463762410668126437637397462260768977588235677386105598033413840287956926560441672471611450588406014374218575686146752361516954089345553614923595915178099889539864100187677561609772123327618172366469148153349324992783782307784168084652356999888588424218427415450898986257171457801337130434676652648827235023439416496465080163712306126100733979933802828621572823614496656506771041978368087606959627599158174355597191514491163892828777833291732800298417643011842644288738333251577034777089594072107771420423571513126182490597175646727605004109866430050118085833957287245259829711588626406885699840006181514987972160455973451421873071606161228829842850206972156231780799732645386544655200191009443953782082838013594681838083432106737462092409745094017497235398405345268132217150565183008638230680475134278491202842423811664557417611440874575157360996389883974263919302634832209276860880547186731148347824290833416533214888127526451511509795809479338586417968929106513367850416166474131444327027204371761311232479637046892643658893749561345490664523994229818937770526850957583662563623166722498680103624456022779830786236771314962728460026235734640819415232413488773982012767952157088811873549627993598190193504351917007440351198648226410974584139066416049527310175298634540769974591514599859254645669224224674721730988240290901514191605852890795801776495435167775434635755972840649693117916709940014321385113501129476353461383707248487716692353031058546083417225120085317683376628717925763079818646151980281065887168305620424862462030597195509812758404862270575484847220744509758125746753839138686001322882380049506049586439550553325246049079018369877344555231235371364714002270122829104496136363772644658674148981809111403041910491971779125683739873233088841103784074008664540166717317135270201102916300334862441198560599760795408548162057566152918237154156404728143512451576907857872283708500483588060146412081047105794005480746514731937175041129953337030503209108171900218526758835413267406937488285684878634890471986371151661511195567549515310655495909366546222999641143039640887061687947867249725189433028386661090860914581314081030613765693629303775781850501785082345035606815786614479802207523122775446511471693281117001259572572032039036395491070112375522409865971817019634285713714315600724290932270657007562158893292650597188409419417073701096576965493182201548075323631805406529913088189158201016283715095870667197685227817528376904197726788822301960942115289567221385996249228188086205200064953076851095294501418890338848915093771033232449587611547981204344375386825633812978756724771805439324758303892802498073936253316781395692472543859049192050072226128519226104525731027919128941940654184997156910398726203856451805222721157649842817271087230088876446128037858897830912843589396884255041638537118350394187648339271364816878783369327386654105839583624935152382345272049547530504096968606998803215337412976236701074540486656610932164406158100202421893783786944128063114266830435707209177398975207838420510440975621776121810438064644087004175712341759996996211319196133942355670656344661426796040392474668970330370639229975261028190491999017700030360064410991590909046899163044720295973525081309175178689475727004921442650850064299242244066760721106464396361166391972344811208713851165788954416588355428082912906582964127074362643915439934390440207334229707451797449786463073020510965551303154684611496125716491476811111469790141304445508034604477227942710385979828104683072014773319180118378197188155103663910431257857675634268771062819388792556152347342030727379802547822542037204078993886948709554928893783989131826070656205280770357996016625394817581642363191268605888701369190888071780199910869152157053284902315699427027150864716572926364073168635434991981187671352285344824474630006571786967695015098746069594296042257558965946066211466055062253411037740691419771515725144743053322993533319451240540033939210740561835234786799415333705282287586861770131130649105110242763583779111485553418580615053256177942406607853089897377692725817682193339630243257990702350358511601740261167010950037265011735368149404045835240399952506516051990359537048356613010498718764005798041152571419608806124704233886473532156688079245871924788242846199383297571835587248494117586657383023591634115758946757423961817878713957109567694898150216295634129859672425941768184827969995735913241955946160482686472647494450404769815895751730000861331731319126670321253452538409269662830083165221474613461571737635800618669971483390461659487322066607783499824436062753489930178577054717933273918502763572288450649810143247877397478388818427693257809735599169578449156008123070366003260317116334908025921081631469864581029893290391979407806449169265396701811002286074871957434082611985324639173727449167288677584344140268819597596753608673688714522585854238638649558864317135688468020471526380347737934463844658693235430724578073130515929503878228021390399421107008084322329709584776163892536894061576060090732685708373236887618459355008265443092527345817945392279392382480682537024089319107008224087606187650402860473070469978373332880061997471501023149160908046926840487960194949131960054848966370114295009065098153839476528834867094567822946025348394243113865793931864455085453034808692902847620827290803413281799889953169715424268656193433303785000958649700747449952038592116282910336632690250837536100840681557728607250764370551304061351102983770563324448185972966962488476058557030096338341606555960991703424716562275659177677129259157807608569177861251224218422425615756879564137825225993201206828163630175135622055396208180890665293849193439689334179703065747890911381048637804233183506009657944000999736761909842565677495429312891358136599200575607086294894397903117060934167771894880805721561037746255096736716961236909040903593109040886406184060352739542376004108602102938214057521779279279152616767348397159717770575248769272110094198887311758267013659828561945425575640468129893613854072317886110915836719618950343319109733228301218906997825852645096475583063563951161480665286686478822729520686767708835621870405414147702276390861748844288153776826211062830025764220673130552191924595685073443212253868128622653591769575296630031903424430729073011118225949874588109767206160723763544576586340915114546866518592870670664764312274881544628195092900330768461267697483918658352859297529354105750171688697627701356016030167506785604920395731983399184455095929426352448098077497440017652050850558395244409402764204664810495074321736742632463481389532707769083895524663988228964703168804349864407318463511068263144036154412530085386755050010754919490409246807289819537077767508316433431591815864322541683585056650175636245342187819258906640804524566112549615236868439055707958979953193746321400554745380631203387158682685366330795824978363119708530767048340978164700139467729962865174913088253632669273839861318337882984242391038316079486230245793171289440881659480281631542457792615908772920013055312053952087251967719451034095725889690737754730034951145771662020872727835242577723895218781620420053476788984157937824042634836463603858641968412105193403567077672559685080654110136088671304272158068084220097546836918038193928763323764260645006934976555545847442172149892841845497467237214192138132906683929340824252540582255622749024777190571315640438220424995779853467669903176003521232346793304054737766730387051603533118958400661390366953698811662176438467872821283545628736929802450194807203750273570314077878507551795011263010501844156784784595721197922542229777715932058678779218549212915440814901654710672652215369742277594678324087667066596340973749762636705926935293431674788136882409582059691688286085958605445205832932058417790968884340000885187611708919015206623506490273185150058706624483616965753279617767117901834704606769050298986308201262544276030555019301574634355905879008992476923470037413919128151274762182580081784936822593161811469356004144546864656044789156266230646599537735115843604736583367786783013419788865579934365468072654667116198469780837087016241218989571484983997843904432919212169661682273779574841821365040073625189299874778198083051663593212902293004089160286069500856644531267126005054102288651483460043490544143158608705304320823839417538614004739421769495872693676915339061453126236900256512370448510516626518587848867166810148872505097728852365213204228659574635600684270262357362191680259957371933177140426639388271817520575167725530551288976163954924880737826136728868945417134540012189325658914396235093695991097884044304726499331009867395947438781609992835298323757005313374633110075835311491519912868521103426380717722057064085674047526474547403118419185069657947664156284963671940231817089707798383347581582197638435897979663422373237699180727321935131818565379016961927563551554441577011518521510620031824070173742086858053653605738852792980123197549541304436390598754249379972524867393232341863658691833491285843721796059211829444527796527027626665041367341930210398557161412181454702400779290346250059645593756916400217182069373743641867952928267038787203504781796306683948164644557947476611047136747939285591962991527542296289252694234678181360730256983637652106973295829122984354444771285581950794442934019130863010360522767854554708317433255659265545633053678234798185598772181113127151531919153901355722021083903344389586487726010547358884723397666215753092596211899750266071089444752525047974577878305268943523248045689487138841716140056719802703766179995887770236986596156827124308965864111032483944514859184857831326279963111100622750931974213943337177629454984664307780737208440187549597339596850308881451012200827885506174746915853551807999434795374323288620260159671886727344026370537457904984311286986348407864061905759653615067240405566516430473486892855696217034790328265347896884640482918554304175718046511479053125876163717963796621045021498985121728112809740270095776381023138375598371333658030456437384739020432224009489937476161989764060574635535903368281166517415299725086632634926940322801513418145693686738487810625711000814246974627170755391008627283024630027946229866036590843116925368412970520261344621894672223894596365852390162924975066879977719862211005696642566106251339157941477869517429483655911723116964878047874333932429506946513292133655471287602229798532872051572953814672972926341040490249046444527189792004723512195526228104789442275918147216749545560851121869527578519458617132777823596112566168061046063960659305024590142569103634584972898138759364960474658594737604877923741042765413367639352954140823945890715095871957454746706364162245855211195855194695054027935081266797326802657287324876980652833718731971909631543081317312367336595286501958074511911508566012098577800708861491535304373627858313557653661178342269536080242213659610532832458537071609084128601971351984060503307066142607499424746368585100993885903709300078342415991544100280430448831078010094539339955080729815173538579694415034963728694626511454165539694004921735011867473495178451872773243547860570278204984092003747945056524277801716005809287851193276056153902729990891095068555879393868797959783238199079395628229565926682112713092855654963292091549041690728815403946266586299052761122397482684802285471514184010692046051349522510915663004373060031763479374442822281722943341804628141314033479355400985282500976802745762956414332931437700247809207891869715550269583265226297357792362394205323210645858699463907980827833535020916098232149562747509988597066900200143606151381488691208151259412466200366609481409988077420953203639528374171313536589819088878688975706513569607536476981307112741715314661749075855718581682270621144085417375710749193093637084482007706333827348263194262172364228061218373967416203935529039391397999692922397209642703314710071353061165082956662382139587057380225673154001138240140780255899967977604203600816010662310505961591433820863441610544959648315855074492147256641759367078109157977029807047237246332649162598141343538122973356409142361195738403436433763247627105679282923747369162761774377348820821735308400601206607867571472199626380602196025955767757694354020084476666272586099859414047867090058357617926317686667972027139765228560996266994098547663140227518775846836119104593865022241748215254903336844324454780226146580409642702096666434922273884835697409450816774802170571281700961563371472216148932697136066380012850661096998354286441638634620884937932709782130369024051751181780055810533795786566755363237901732127107885530152979166403985855281330016939191671371013081008778842066071331958013374462155918839254113380196733821343465855458232158374697082437760232092705865672560856020741049874957434797195934171335751142800290502189147787049028603130250410248123134727795759013132129780917561599628972971339081031319087679050883756013370637680806449105447055500365642607094696108336542723339417266863941907331235846429502510544610326212827647324408350150193657719423044660187965361975898218801527793154048593999868059113895780270377520084012502566241182113903796313306186023774215787695124114414458165678149455006440098455726523423352241390538943530996395581940218498406100105642204754054339936118039328636029746706228520654823020196779908299730282347985734038851447992415721198359521007764265189415389182998350844386407469294911611098633166639079333976641430580821389713581138081021385827435904760930868190293396924143297248639614358648592693031072272839654322560145611013289236747708406516337985747466444301070843483288310193343560671665636121613257653103925617730991585657754842831219813544384393247036343548316653682580311327399208191953157573303561784861951262339725889827745005963344341782503931627127441358401895804403389681319054810350184203408135751424378158189035151998920478592070798630555686723232910183409647701432374094589625562103432560249197002858915968211676084203969641452742522584689877623502419173102925444578586451892607131989904192830301591361775714254049484291915842993309496443062900291556234111402645228412719881918854684567815612906971865435105062865256023754604981419728967888603999500211938273453577071460231864779930276688690577874941673082980489482035714492854288032652266383910576263916762106516334040464717450854208864663209814613108433681601515499251041836013130804463807407981501967496367243648593451096564214858497890791499140784699508250613343308860700059755413693543156385211915461260379973486586888330880887798819308796996026095108109845869347423071166995071202679184789042288492006254452083063535404600993236616976652638092774424778325406186402871983848349845739074480586444216878788196950575280515924328226443786952881363856501831213302102815421336016174577895974466141486355599573731157696360572003571828660593720435489075642047183418021784414819136211226096351609751821302873033454819369780187360309080711539727937982325172895234392034622723734989670193210292878510532889547352322518588292562355791769138769321012987386096208809263214031099390625935983999407601909017010640809759133702159190025561017478807532406882889874639481864914269148832322292176703138801010894942454597936350703924320494144582128422185750025255276412744849735134981037523097252073453573006164776200962240230612226276649811567230582679937468913928113483667385841828858497127286136827133244630553878410492591854735040673406601393538790090129052143881697643762293081937113654280924866625678773378228971261302450945844651332167768173091133559480652918523729373832366522492583560233849070187818610599135421170648042653162831147166771661312812940449017946228701110639454738289686525354147670913932807805739349464768469325195188743105340075348809974874649439225753094231400787720996541045472436084660238394050887613013223903998194487922526278744161922253900839481910416215190775731665799710951321114401746855087298722806879222228885161214527766677430012222423688361762603032073841880945853057410550969564489463463197751118715109384916035400019704532402686139244776223696194129245177574984196403108078481949976606934107058873679200413502006941581862925742422182372540941874149472564749520483821119433249345716676203836042803295454333262838891897038056075811206073856995798996210611278566486331814257756166016887216075997611573500751745140580574641751740064249433019238767029423794810569067655428917512318929356865604391781914150601227683524990485538090703520488096053585345633647405191502501721697923595153583293851300321853211673846796593124384219084999375465330529921714849485243894692453244015175085660926521289297808366692887175174498532868795827687532604047093856943631343675768126868434389979775573622395493363914147290280615725598578547361625542800202415164986717298590017363359094948429837188467726322329300003011987000302193867019283488729704446364289968038971400071341401203815382600623864815660287774004429979806250791808414928349683022068874165714637246309385520435891841796619078749340130065789104442695774256978201956141442502947225532639400043134775644456781370113435342964345085279522464604959778260726811464335501925851834687913541809818804521922290864033310970310603905808291018212983035479505951240510599472771783412751357871110677099447970161596699968484652707022742673542165939852246549385156736827410427529564020674011958415401380778243609979497993961684353947466509303833120478368518316877162870491412346800566756981601049024594471300646045707157036151078053644506024151791985146855587096433055847915873511685174959210514902233350587423865745440079942823081201392493735808656899300125165774054632232393416065083267275218537990330404004544802573728705585280968849099344755509324567719096192700709556032781659611262907503834102486551281411948586513812222321356356572383308596852782188027830814004112279909195672140525380500915843032346948967457732886224149934411704388039870751522973758491284831725587360971952683374950745408900539027051384142406457208768715435284650716489956765976325454366808212975499772592286122021417547839010431601513698323437585932155495977670159672129520962387778106119105388003349794187600616583430757311725501307729699623136544793407981466274873881781253242530937889012380871583236091439282490523016711738273098880842173771268300162526193745840835980352642711847280891554009798850818788876881483894529171052588802388061399963077676518565129123277501909192787604847085169667660159167945206755390257680799975462953874756687584987332971323274157431368053341278257164184900781772475525494228846634953662068127213713406960688059201885161904973285774473498485189349393726100270242019302455446665460084344534150092993317565734417811273326764930195858041813756188343008435840391503820468551094377221447760321301551946361448907293353234590245119944177494773049728178401710065268074579279232402370441817048370720442676277249556100828283922079519331774288269254428009732252124771294644075036204328543948954992255051812719300234501113574156095186677428837746537875813019051982962225597582115974444687822007528121795282103146201687709098549653584469834267356197400021284630032523201277217088313108811425254919105946988394002052909059404538503420261344334092363843124405114765014151353884428744329422690695382838458703402775676601584165377953185278907941604537736932047937431296175866742653387960101667058270687343427376512622462942901446551022715976847773928753552772248969583051362062059715700368430428605101087636497188922697647469954872347407024116854227111211332774882980202105620720873637281879823216375846801178954545952905604756816886435270368430787797582452521912145685445304964262538904118830001394704769384433278614176256865355092625657037714395341512868321722836048273058129347341485331418362032090443387260445996582338637616362400936247452528002644846878926612700748496213382328683260602858989529488482417809671602992094778600502836450787186774722854101543985674007976992714734580977629990216087737118935805928167799791923489131194788382291271622332092321464654567405383140085229478110138006264542411482093163634158868397911547153843906711823664031919740790353457486076920934167088449674576881151941625737963590840810669925173569707158671114736783860467720153089219911074893517371329122942017230032632880200669290063791361907386396531889038231871729155061863810684846894878590910819936514358703274557750918786402674052481166510612952385071124944313695308191129779623251978233915651854055656707340283354916903700966211297776163472750393779448875468458208109596952179385114399456271562750794276366693192565770986388622052720913858558337630030281142346923041089994783871297567174796724451253382255164149958859014123138955045058060016464902049730171912656008102714654866973411829533270988004197202467231450430856913953965647849878728805239201885075764327107360218129980539229518122994750200589066272537693751451613244089242332069897376780611323886652597116001270259562526459913644754812258426743639612802507381858093194902444179992585665639918532195720700177677844794134554274040019893739150505881685567056983686492154427166176166275970304306132389362699147664269896466769879987726359019642261295553572269138126252007556286193933728452674210534312147307113739478110767828181096289107868737773977000646593205743544602359020305461008745161157135361191881120427585974889806190393616062733283496382494695090662551170723652345317624038874206391324854245547471565242712866459543738213484021058615634224545329140703779531190817094932126772470257040898729597770662410085875588263865812058318416950049356297690009516789769495481603198518279393159693972823146598952789998227230659889112641315209077140106506477576568952938025856169822242090312087125082685774163550980915457454176594397340279323660246928551456116442547523525755029340909589604152019611081505259814144902685220660890370495731391120040949745549758796100348426816984865100729159410695703888877797246504572750069037431144428188775903979338385384178831585650258845520789692023601222390368547544155283836952571976718808623058603927210509403141814314828947771192502391728168672521934974878518745605068243920515757661371501200567905512147095007454441080506696805631448968778222026339578724406140278158068774805178686336069983598361542511171019492627784088759708004200238890808624213935259610128423428166905260737355798832734752818841032646586204427703099799334966942001356591998568047307515529187387506139402408234573599161066130331993575041636547546428342393210593671888953420932875940383921490324408037207893792694050483642047942359151706645760549955807453343129652755491564217087497418385472458400311187509078748249239861881322912436247055204868568528657668545581054236581636983323507578546131700481971459690664985366409596361294983349228509664353863751437294388038216598026877114844947397365846804501549185038406606920310099506742045862894868689766527695206311841923143178735591584937432152995098965723726511897313922013161188241390869341009092616433505100933114500817210180901953715776750741604337803096506874368365929318984077246002919691944442886017427110015118875882320503155268927475104455105721955007072674033806555890774633135159418769870239970806158580050452230529554452802958533304131275021538966130234239786197769103700236636696360477428830718925917141636848492244885387883808147448328985897650804940570561086287261795508919299343891699787208092010024550526743136180716871719228765111825056494557717689258304265027651434286702875985164082278350194124786592817419738887368260988439832692601527250984068163684264296314527293722153884134065613643306233625743644688990864769478955716790238887596530109788242787089342375762478758383580677201259350438005881887541769517070372980335180480667663671451668398655904678567177541983588975578769361558925001524724743391370902125652130517946072592540368202175715774589533057105905736844491497592271947361503533295260238117150323292887202092938161070743014952528190562925367176695705590786676571402427509552406383759247487062896789191621118840756431022811682186401688797174134984092170603722140416476098836753900995495127974455404689472028676207572638617826250642959253210164061967007237082457513029797965647207742974418565547020019002305706276409786892932435505835131971238673147769353653987707314192204121589950604383239702839291668468073831476730059855406734422578859801071720486042236843290900788032612060315240831227847666537518137976286728448289622485242242358716853125451523722396393575891100866687083630602627322126034404979770055709753066414501064830876070998076332913908209922591376848255749158620283025477052056118833474961386494368704335435413733739557745192848372352595450704355199097773342991813224998368801669620272020390514471975487181600191396290210653429646959045452563798835187842442621685133135245462683963772350152291079417098921008760759617737642507629490700542831452553938116010970640289089579165202067208624959106187434700742211138626706596240302828337333743438898262769290866329309353577567652953987008074755377972652411717139039406535323279425771080775065136901113357904773149175415925094455159806560631231318688404990272856469857283032704393707733254094259074426685212524107582949570080096934196340949112658830149749107478198535489333717612152365178851157107140280890719332444661775647254811263884030519410393805828597523287882962128750909043847129742815201600029163788945812170610005884652442646351302258400117437270896195978941925885639708402992147462367508439533579667417609269360516592697713444379974461800803452671567216725491538160863237386649261091521377928438649055694224734298935061146781978400015896909921926486470718162459924811018697641207862910328102905682249433882393404598374642727605249386800491973827010587802192891552775558809387137573652292880871418592434393925456723826319148380590353041349153323354102377577256080544520975480324130116980489545348036496728015228950061071668974567928157250884802092995302861143644845236340276428841398506673469115795311888169422641922498871839185169984534611431486174021550536821350270321227138645551258838169882480606810795068159101762072641644051789637158958724183833490885329702641577631554210038732608062732826879097783246904137514607229187761342207629862319495478244760892083974627082889055947247706514325841172422960522261734722281899429148333694982026916541250608518587925013719534957835443790517794244989810906096887636641087913253496111903517708786051411311647081474498272169033693137632114505598009152436435086669880998506955062716140751304817541097428400321540316337996956699430581218269116735071292251126215147050835708887490971130320488696781840833549660285361861629521579758524292868299294400162673212226765072773741592865079389963349024525260701778386836352069428547556378377217284523307658423549696902829279997786970149345280868693664696024624459734562155876021290744551234777577187573184759833910653383675490444107834844799307030018347158060291091963433174394008299758112777709614390892523255653306091955684204866182465534697892503310109478542109775362872370637479218206129780485376600445238385206371998655234178245335066242960076145864552796052281542211149648628439736203431324007680636174732604787263439521165147465177580248878075186907691954664174639881246057475862587890824480144356833500796080485555297968372611172433824049605746416450271161853729560219225029239822260976701784537139667891455740297976269692129791212970935517883663971286210851555505190353676210133735383453919792668700778767914491391196631595166325614141774552315741486032629767835051131817786722469559357362280106126155887706049302703358587376222563256459787937479136979559990262400546938470505046706877537484007014872041271698323664393372169744825776243745466848232060712916403649234349045406231676314849029409211234929344676824482353975874621165452283343952838486015360707856380666150470081730607954039480094740732427377913000982288185999693773956004337733358774164918096143047637206149471698047282556072164815213663086488090537495163358121326002989235577871991418667483203580241866513193830259334654991479878235203061022704356756049358179704952674373542447964408428870909119490335600069529741309372060165429828570961228204193596874023121332011121384705112917695746154293506395806128596802858681549979096896957634143878467596323428467094783178186250513495235136721684103771178160259164324099457637356008976425480987709583392696940467640481107220113044984926939729109550683710606639419958034479915017802507477229451804764119570280040636413602585810063059054663079559542061436089179455008496074904705098014531084277842661031015659203812729295008799885864351224732090064437577050401348683452002926319351393824087097898106307222838758869888465942766676848455006026809784425872549153175496648310430954606924110506238789988704979497021586280563408374865089307386506688302403382068084355891476589841098914991964609576654988174895534594583481178306328837622980737937211264424980090396840597911635636384926772974069313384103621899360515847732121904506893585090328780961008416155577438459105673254914023641416483553153530595516297986688316478931160468241380603602074635666812450626172086321266449585812588983879164525162195508097050754082298738022073843099921286544606583831988554831141267189946813794552345545337369840350740005682258486573779413098278745686034639952396789843538660780402473364327517132829648127186881867832378331753677320256020730575897048763744146507309947560136082913977416075997973865793636044873046623042915609047043047323203882139014489832226822774375935181187548323953586881391100912222578278983597847319275415418085076711124473839367614497855366772814558070180147057212921589914219805374374963582449227063457803106321807462745619371907855271158257922033698879162430803523699901235989371048969068729061468462748148958811198490179935489214078760010470689433160532613459111441170130448238935236594166748671634254812709277637939291586175780662531589993463662160740651327321723851680402501541463525532148324522194646554419052873101829473288441773043265658075900438427979946065153250991241008568020651443139457499993611801297773996864929460078939854924653468732637220243516464728754366959462980156526166226480005915095492892901445177017613471908023685682980760664058614260957285442332586976512779661054222041055666950871640021408565000622500168538511878858801275135928601820322716642800053765316191586666422909890157167189362138575556619480655636300962491066000103577024117589816579595961938603410592195879672693013193670414824679781547923935174437157874300297390696922628062294955025515413949411312834369194639742835621041735304673341708444597409003773502236809747385266843998888574978595238332686013271010902408146708443027639434157507366792057033264300982605391778116091289044103373602751339082450262070471198650119074913213700637884377593687494610375061198635052640242980177362880479987337866711206831533702020946214801338929076982656745835032272963781421510324649657257764494635875833269086241905134197047348240108260006177799225384093460066287397660828629639777758104099667478198781599997669668837048503410629144361577482211024355080073157336494291103864669481060109221425067585094221222921741629777198734025061225794763514541519866299227708183523438967763642645221202054029717952297041655062825731342101705179433187418151827256481049861713757305992737789057725776814274087269943919141736323293852861435205285930482408348395332058393485106832734827503559897290015978718178613560254561106540519095359954008923263716741111338389437199136922664105174449218315386619050849160957303379869914918278454258364326127072744529998139005686600615792447486787504218367008705398739873694126855029901160793696973403956972298089050998675762428856835170470913638399314197917964006670197398145852865639561648231033297750494086253420314798602517653306651679592627495367928122684786323274939671289931761415468448044683196067483552563246657472188021667860023958378401767993416124326120581500726498205916728816340399866178710414012858909999858821005559915682544563646748354132180146583333942017356331432075725716390912381494052047307226261364309398228226838666248597994675514076925444502902508961209859370400398885865323644634659894855656087018689187496259682241471147488604875847763776278241209429880803260093458494783610739499394996931555187468684214809566084245445956484192140132288752530423585270744020398851296528546582365019013218898140614618434808803497491930580763698465647022275636214674657299504501014493019028167646233013910071247650446423377168169975172200347918381119755402059555499331586875387354384731308626545925993315573968994688216794018657109262947134494590677032769529790994705096002299186200392879596963631497094930279214658858692380044689931215941349860594724424271363225041403020406745827058717012506734011308312058196136196004393020375888108285376281680810195819080193564290329531261314150128516929713402316504839516425927191425739968504709923066450664670690137805598069848016809168919591914960926548302611681188813903120482182283990095511794994613279364049673144794636049068910819415999671764873305791997919627572756377927443698482027950397741962264286715122179450889541077776066276211285205933125799421836255462382572403032322485137458205571783979505131265532117122762556249796515222215959165105598309442051417757858476043242265337532773831161707929687553701660720180941935406919716740224497984300496625718211386895973709013821511280972920833550875045264434842794618731422432699993948660293066048548020233591374306834715043907251888511059324690384202689687514628411571552913922325476953195919962380795132716423700487434111453026480933531951396822528791321927030279314686610649945936722123606925481475864711231081717153925390113897197794540087542420569336003768601040474916028728792008082624690952693440415518403111816380224810844644231805222955121054691602074106766042907213407327945291840352043338517115820245604680967549400801852984833942688055936477042749704149310640440495787495147877064701389659836922765542379660019424717629267282070844665249076889945970046349891188020894269808308886704727980901791025692083118949081720196264772109930459552405058324300467274580665264969692603878109424534466647402142159982553557631674237503912072524691902929508751925978954990169191384926263354929491276098885761543879727608647757569451960621277057482809724208767787529304194426463232633531176516484353066575492135921850622859379808222589873951757649168938987658656890373702975396691383087181538521619985753853099989340904881113328411797702557018728125374287799861858939004526562366307540201899376106104369744730217934344977747246505354110222069761152473882029078068397513927302862649671294364053541822105466798916994534275073463419309737865339001762035467801083621130685643187221081028218779301817271562432346443578271163966624241033318267853304953185341396948270580531255174627552903326325390959291136692173965093834997072805510912466104542922789084453112718539474011127000251308813976969361105307974193553490976902083418388621086551911254833435600656359272726977174855961323487135345408215778766242586164578146045877904739854334620449555655843741512834936624134322168491918219279520396263324819374957271137641998176967037213293193835043114488579947610909988996654144287238054308335364627432452385947610005423692106434511991571841383445083477785114722324225018641258078935171261395120223774538430751605334655165891838374449566522809501975584925383008168281046397172781472428385830346013555142808129387869581470217811125199314097835163713812777513369800837142031373058624946661282200822757303269542447720371140898280830807465745188483214186622384879775258320543605469189326107049317607942850086521820722238023989873612922595417783255924531648569802862754619803518606877284540924883022866638987377128573196784261082034523614358867836237810081497568648921299782692953190653030434465955107517315309224871339076598562818077538604320536644627913322706399324695030796904041597784364259252428694111066680319456537680005884466878723958589553302475666755851096048624494277745066086898704956124294643728020594656427643915929591553884897595849199896129337804319050444447090252386645318114800322783856989182994878488970262078054599207165877657138199424085470542391620133783881639936372947667837627723257426510673695946416607850741580481828968075550552312586419566806765820866917229781417673273037275591354908956054494083075558777121423158817456075164990140683620399803486311962987116063020503255593372615665853979163381973978301306318768613817516214779101061836046989962900649476394801611425682621934413084744651434039262609043132677666808210345343656215684216446597056211220550298338858425775234826814887042264347081831115475241952076615843561715044356862243532333331678174493726692552252270397378832300487867704529035924645068300435637811119110047634615251160383310936177705543198645845806252192809542463396766664033770507252122890771628285818902348644158978416981124703021097214713814185480600688650649475287669238038882200556163642916351975449156806028448626020545646808844382781782663108200541519278732481853232532395275472219129937017444899682602319773361851789777399140059063004647461277950658633260828476015043258744933389880301964668046111261680688492475662592350846275811652552741876997071987998895775517437052994627301187104741809825997392814413413123194698647623268616467852156289578069985299476803753069235258950484561342331656189616727644136256484542708032212297538720333155582685867501047565821401808361255948700048628841776948131303356755059553332764761274010304888082005500691881572767032713692040357817801572450657589129377378786527279473050931525361692771768607791194355219331589950265281428152970277042018112628710946095057182835648559268815338068675027924001180562186417414059858429158200415721518991242225281821909960686428941408284316569943343404127131245652965058320525168514091200698494990992326659108880399384192300768143093219249863352560446653235318834906248306253604805949116312984727210131653453752125332350694106758098776421039976905723964460763484585780336582827154887782940099841817549436421679527683743663079186388762089391696761331580383359488183755262942824847175389313911058464381758406157196074071494233353016280323944404165365604665179550813583350982117067005663006962097882608464245732213068079926943670236478590172350859803085652056158984757188063785501275528923298030228852780548404363608585222685733646207618017363575718844399831707622130744174057338782853612728021650905295840793788804144539428664116390837285012262270214321445858456289319403076976518322592680465789847134644532778249410769253265658316478872506136950604977100529001168989171220254888777403044834699781862085081024330600512587675922605675692906980228288982421454200712440660946710596169627362950010073772781357788852631860704192647858486161918796230524431372409393983841531213544224514570326570789513627139608681063923374802792852541788685965129743898575884863613058989531171644356732895255451175687055842724915755006584252248593650909281188498235592308409424639895689817874975354836482604446405115526019529052126003055719211468981033332934754956320228073259841312858346621057771063556380345075295271289896075271964521468308223789147756796658741915278462084573898519676890229384360767941032825523692280626838570706367342159082605266060218392084417877499776894448794206081574378309078106910937923389674987707581429959465601111625380677780199741442436823564691320388207981482878056353058394315579701158545111350626384274001118565195123157874611195813280118863991654494546213248051113656164562199639823584293894618703453360242993816340026664759167524633061394388962823194153570585906524349989406749053845419579850929998370026552028114903451928876882764025117505214894506402933266504780857115690441678178915733346414444692980898813901902337638357142043093472656168513664090498918195136783200705991660755661949803905680071695536408838262158450459482170841694995973621990315217187958517656919201135710748539851479321690468794410847638419133777587130800325807358802227045619195562987173788411139855607866519659151100325123957391675521758950021550990457231156995739618648286062798192611374756638907578559043904797334533471065897578712648622260255471992042721633294525440262065468975028278610345141922026987880029420397432555758898607526596569434584121643610985657539797817894985529684218665141751503396474293555482365549929293619291102722269558179548592029098757230773848830891170215929874095138221883924095277132722031804267246171183600691698717585675042086005651874756630387937176597150870111470624113038449509889899790711171058206825309068079450219790443172506734090803946172054643160763780547043386075554303006119130998709378065829735855827360671870626064211090133665425506849673148633138391802592543701074513304382338245052707650561145328298229860393096812849341492636416596021231155225284925438354326789079799909364048377665447608774358862394661793620460410978437148089002120677149234673267191061480332181357114626968057975016692842183059251651785715449901094854832211877796102239098855854819331798070270584323261056066712179596043225541300891996892176698506974595548422751495830647989273387780977484922494247129988197116355767543571481656594336445784850251210210448210658677476058925490625002875421326282492274499184686913930530516673673735364859290910568041390901830708282033638813384870325949342890851862466514609129007297626211342013710605761377018492101595211488650258661589193998194849064433783455075998841271117356917671183640105136871346723564990955946970499644557630209554309343800287341756065564974289815343639268472027706785409995696410814350467350239364574058055576589237910684435688792303840783848896066357752514213741471580486171938940623103730702212977604595305400208874076599568023988418367187146573492349302370828115435483231954920781099059121754807830400070576925044241535287243877910877108104832237870513565286169597567892923654572358954003057279740330831128431675152439191664900398240696794391880058226292606966936180557192494706633769469050974568549892921681825772346918093911042535334071095882938725107553237279068232922931852749691763856424696994301796044066325134529528109408035093179756636849471690890839418986780625181289072779637036040721414583517249720895166537443628702568767730336444804652709955089149435930349425931383483393044261672066442066990681862465274355462703660716476664942220623405451382488532750750208932288867589055067962162624951265660826396637033615772433427042603583316036434941072964311317964846407565124789038936352393514819391097191025260381215809575712665606615172484496418989570494923590515097516092358201682242920974546198631856590377799218794886889224481453107337545693509820473598085638106505311611231800868627518069904720468809250749649843294231440876824554970711693730609385091945076242853534401144800594270986007982819691950854813928736722180411885308324229689095542925432944897963515880438270186995980910700851173211628728361554190762390211337730877918446739376758014926116244013221498770415414330482422869708545625651175019725317699733445648912022947799991244617153691595682990193643025040861249819917336438896354836686892590290625543479103591990029565940427269845004074954211321701262135212249998588832650127714357580460649111884110983407166163230619715522355068633324154836596315759632332771182161141760573303454514059698403687625168725053663364399350009893401349684875046338214065531765235107267425732965588989226836608885992927373382833054086774645244633002583449577523343637172887031396680438650098693287045896671408781735107803996773918533221211304303213279154710248033707821847794660223774077272381554589367903743599739762365687868419005993488319932171613283121774063054078965198662418890739354730595083157998632821066442724946966619158135472029283701161196588213181891896078616062822423742754124656288278481639070938938050701579994357461730196224952478714661085508924186299492424176322960809818466357165017852916971772389867997309835802211854099898835528495443756638471703827442605138980548960073378623874589012126774427719075786857913152541535443547133882879283027362284931240904052018326155798747206448783776669236403281632745336889709080838151396767529936057073430710355935811543753746762859664712003226030601606991704350751062435802168266853763188479705488995116308796547338295526950085335542360619933627146563007763915362503405484440797962190652415717412006206443587428894842629523219643715627046564776915256715309993595863560604517906686481529304319358722761241692995669248154358196350843441822051369842052374228911775299983277206815801398467465035910589083858679454121897957618631554456497254528138204062362678071294236067157530075417249739086583347910982266626575068250902144664725952065445482861116531225866787797841469142829150121186084955054825305752779184916443623221129837857630434554078002590743598270637330778085005370895910887843043041687344661713644426555621534925975228913178229068637833215367967784284227096747007638183266442409633583477110253352529982305441127721099057141450733851262977447735052788685063284635762987404821641582716983436679860696503278288683413654554538075577750695858152684167661613137756427191646891079577579740365859634578561091381781468950673237642323784330919684487323638931242784686463221917841333071247347126633032428248852388088671924503885658901027214023364713011650228088816090559359727828307958919328085431751535739434923444165813157775311002641996596728783607117301104786144164571636778396696119386760243063643039014820653443943845801757163069331536068881163562739164676536178778549989989417909780266957166231875733577911315400743068387774720438910713546518278683576058028060701178020606342989150700438586093244770822553425604537578919528338886773498734327861682045015019863266471781175205074216274198007243617969059153569293862298724752230875732930193339833356250959261030800135318953172162948147755460608690870938208832703843438185466998445815360693622663374649227429392181151287881882594152213259302488073597110399694395496236767098899227199339219028588961183446476407350930547162311277761612778858660114898732878083691506543003386739249995758750208343743557281138005392601376243695788091794121663334306506996666735011035964440561645385703675004123017479824738599103280278550421562795397349250995039492488668314515058817392787619250708125449719284697927318475657179699777710235895632254238155343187660539103783149359790130313171010245187981633130861052668933509820534382127324400128543284931320592795996232259571296474802536425462799637279716632864343114235812431374621345189893262038522279450101828179634625042398530192878922774881879914841496142568355965531003067611071777891039963576924708716969216381283361742859328806357862823531420651091156386181948624327904213750260611583611178143343531146265418565743746919023986316885334841486111258759926369471541330226615350170502879727418975754025733130312979186247618784032816308696872266244325761479818450415270591106090675992282441869719411790672734164884260979890324279690260445165757494843419296690720343094112833420606914569419606272245454623549548143506195095795031590630019499036298797085763910695889528673563770312132051107348295485787678134945079455938435045546802377346438225501467956634567463532056287593462488524915214610576515110927204981406802358393435276125145973206921287920811469759534565252530053746036103854578855128028477598905098875982571989249193154455665195707619526704369769737219464452524598281620282128057919329033612888737634697375992710969991860994734311576556529825348397835976793382805460661254031362335888937559871071579414168506138884587996281499167172416629068317220858238640132472709977501692390165444871449793306885948105529824005139563876990481499516816267449188183708508614462018126499172548726766453570886552859672343412438681709950018280096371620551966459399223237632436783870850798444521895263497196652005837832324326799009761163384940401803016601572713535238100938885864530213834004579048159504091938347946520363440444031815803260375516005170187452885304552117911129049886319589058981456564704356364845864864188377096900097992295413727379308112421520529779751446962122247681654826919619827789395526065903265430474070248319546424876205342971609793805785904635406866426266248463730182448203020634158154856409581972383751801569728128653471572828141201710193024013733171781841634596066394065492020197542622641065824880394512423124317270018609513297077369636995411091129311906785055659703836757569600439032704031641393350320473283145256890154882707797716171607941182218103852362027916764958280786216347476938807620822971945022284987215206830465842725536251187050489466528036122597830033083810895706307365777534547262436321105894742999841822775502690456165650690043709377181785195623789460491183665799105874508679375857062824733822239185419449887906833300855894959240858379062720338644018171094526922292323138551340677115711120355856517004212903476149940929483478804823623382952150434518815697974503693636012592630622889768952227227726179047560246899939824988618470598907305138345306817585275913183268532148300491805151329733422518565017521153820561803592122871254068124346319293757492493113096200805977965366843406190958678428034332899824349820296565262011560086447151249841443059115586298481659908402666745715793000936224421358703676782468909207577045583215162844756533183114680615402223320282463243951903243603020459569246583282588588425736063679221939369914515583098394273755946244656511931320899713099676363559937742465696211083972935457703493155357607489900557746633899094280045998586483665484309817577965144375466755888642312726026353926424824425964038454443636324672098185012447646636014998711078312185729029081257460804809751555714281876979690971355590839603642319801765483877410520737081620571390181508695372583933320015477161750776236179323612779480728549802630114971296210318537669700282804061283837087420061257578189074200785545668267937479953094128593834399942022823521460646536885368560425212719105247678503669076800895060300530344296890147236904127944698652935139523516187668322785597560231110985802624599225760155282475049360120534571047138031130164882573037804877129727046720565928397615802473449763690861250939484361795317090688474622434114034412597119258572762417478825011150583591304256135603988155128102539777254928838694120217335976723338528462973853045001350733470516689475695076616072900678139305555070993125992020950318343821443246452572833852433321790573508556720703611071186866375384588929378304870525081670850796196503851670912190979064270595255148679518978980260010837155833332761898615477083741905224252888156381516706564390280719706939533002951490960241719590562346664922740584106140795607330728146085175309066681126039638427894718906937007578998575266398447854779089416266859091701671518770439682811978444108722217515259126801045517046296502438139368091903274132592260287221685019987695787520053079591040385165152968980155952922388824692514215244078148690841451557712813412185995891857944436379328409164058867485603104024417612685213205634388737102922772149627568418557572519506937186177228561036598387713341510099180989017119001274288535491547532713084028827716017468288042453379309203808546319869058222586824130801416415095855096555389359507338546094428567328353374823809528630814459448785838763614573348928930765279120490784840602846356145551782237087530114704702474504402703521452418036785775120023735318303528042737494789718940457168994396040552159460339875053127915937097453931176950750885309879104944890128912286462293337484322119368252261897340861249548006410318561318968171887935852875887825431543521535053676319003763140733593837877373282289341897430818351935027765234871364168737814490107270861972574971862354809895296952357163985823930681608825757364009560172317113721675730061377886196601746064026255210042528188728470968766220210555461537387633352501717603812089635758715406125643191380225834862200862630839751828470044064522816523745257811108336871048506126994406937257117381135367047955325879774541297594402348722349545576984036178620538717682599785177500709153510887442643129833897439397058974457328865720122371953951918773783113476828177401104684736433676331768280294246260081511761035715449241529548602326803330311199304300808062636349572929561040159924658021976509742260095461241854267337203744721595407598779411483597046942075894496976343105808894180722642174031250875903754716814592652439481883406427415677956815614965413010525565076543649308925915690485530207039787544154025217876215831703178163638658420808651505697236228048592987363334836770313148255111404893026265377062216573743503770920806010870928386939262645724042867609540053581922216482618312381731521433718782289083372947648061824622607625534555578368557480008061206157184293330035275232342050436354188602487928645090690515894744789505130646420541116635718847229667142261749720801551404932730141862234464948004128647646449570129570393366869783374773802833028128105150951793020643571165595161580564169774372310707252082595347839874602867783700756177407665300334508531478960955677706424988752065177995200765525205779796959027428822278997130058947226325815115959016192749672710916410940358105573514803784011983762125482858979619948903678990650477082519295521979767013237675309989894807747147493864538717730979454990455628609374407292446122159037469586182130010584147932628047823079335561475656945639821343495548844566788599082381393943970071469853909400061227264216963520536230978910964096857117349493247422072505700206020008436204495954376674647145426421116251674122208013005797346288449742582372419362446394264006670246839838694648388714946108648888718717445458916579652264194388445184400016157466630621747613649257992107913291221106100660970677081743713758034818099882580669673263742389498587872969221405157532435138942499832632706045484002891711229143203597953607849273243892376313227154107062529974072128548874561849753299873721054892005531348940603147003763123588229013792317547720417112255501492495468768913092743635429020849388928917869988712055290282253065371065250496705684179431250026153369378495539725631254542070038771574829076469435725814550772187142234838953583229406409277935663216092548952201482711205825355508799781595292643012337557983186705998380014707340975553808698858714270844673152455450566443580486464458264973269063942990469489607828740351410174862816865664400185268075413640577567978378644538029173845884105478963750838412778949862802178808567856271312871335344870096812386788568278384502935557194016039603124414150807791611039860417644114617981408593834085399436861819175269250176114806356746105710775340864863876764582134258552280567880451872047797475127253313785375720687685056669440807586542797581207059222564607560915459327144780381434456483374611659505378760751717065711678304544138856558418337042203273686633477627565267723403587113856346579461873651880825168658238097437452010581015331013466351719170337028715087711037283561675245801193238778974034318194341518887047099431901418740725484206726186999841119782989120026594533315674593352227741195086526173439907155920736271174550099193480013464566717951064272139073600195377153102108898192105403157914288122002644685333392475069011643796946780226182001731295591432364797975272993023246852244600426697991440303394022988612804592921671873247478510554956883035561766817514038014944267612649063812217323638211022276905563429881317586203098672927089062664081833067867060247590879795952544142268499313310651496550202362883930618888518417723951550920320840268122969336921566846617290393583988357429587310452405251662048664419464290607967511715557525984664645468812890661747254359490487105094670586726608197339071747070703779034002532002981478947678498035082672527001710100999029150500741965368247812402486282905074278969088649557593466415644065451638659638084794901911406344614079020188242367447086803253273408940216632583257761440787372374774715895286776776456395002437325155345017075165147436502920885150736304427558878841446435098495729180424176207951665892636141432159726365808589166840322621585999601692770275027258653754105323999724081242459752293520776110259971582544042193147766342094357608040420915164119623355449433083939848662775435256536117664403772768797315248017021565558268562609466709436646244989239897472594540451581668382182004599536668632322764561203037952381290691143362446376323241366576173888939740368124562330634545165379174857993095953795779262869479576850672980561815064783832923846674680900845854615391991051051919628851896550616104912452690272143443640213780518796851378969388354861767776676204549384495031687621795160348049235448299654622671068237551901005514406682357470009614204230049895410701757717830768500105543495951679691114156909015853778090919105320784966806956832088573231197342982505570331361210795647831921610537346591546388895678670254648686834871821810811138503040023447150554022709360368993314081059109459344542759822556772421829519913794185844305355577480464108259865893621958425279784803569009163990634008525032809865272455189764501716709676302635751818977706439702719593769885622381049531959167507779680599149816347470852563076113043252771365675986499561234662931505885852824337340220729770412546974743881365047720445352882816108604577197625188950563509759941399571460158476337833315910329666426797896999568218712205297738385780524779564608353309636472677857681289689693748407046690593471588343311000710582084467355721238788398565884275172569345415475261882865878397593431325251863213674710309097994941778054284589991239825992324077595064775369707169554080699875231757195171517067439227828550257668237838395588025486916790522085843177506451564894066341833042280254591804415449498135763281839675462451884173056555865786864804679074929282108574145813457135431136019894335570284303504286475438252170807991882783436244917948517100235258419791154442102718190241101951297538739882119583988037101370745183854609300630930994963273781035566911811709249523577287530045664683871783642082254506733281136243332539018262762480522510220369238300401844622151364514962080403850477989496846010365966184112411016265612465485915602500002689804077923766614498407718380875825599605336252277579745237637314027356448137436479920169118631136547035995378762126924311630407365401319675679833411807378274073448106344605967984558468898260246037726748607913746212926922450815291757579863178904624624307569907352874328720315170959016861465091996749155593154634506363008749304357194468141813561591822282713876575982845127345139956163831854637083297801648827841136680753550249224453648288598871233866387342538052360620045092283843740765944873491457837936057373718214979083563646131414924358460757069438063645973763368639787211628446322689311087266549605451254312591334284499897883689328414170986364730956368997510830392466346661389780590182877087190860181547704643515842975393375019978136989594791676859687928079976374262056532101463832566364010291168620928221859499332170109126748217450938332524941689048573112174898537711102527794275844566505070274140930023292087403164587637268428284514521104310449975236632489942019099661159979240097300424873647971014043199248379778731702277450107484011380922025151736786788186137891014994573823015878178017384744619191825017251914208398727735275770538422132289415700732483260244916129503485668684548947489558073178571819678817738680641474954137881073556609986307321466974676262385467263032698826054225001327330003975969981004026260356958243722454761827475094730542165356879595088492957489817626982214222899603178070693586180738687010540743400917782673932666579772292214672422116824684648782236644815397601247941627303095107475902354388691078382990221872769496400581299685339322523442138615941091030994758327706257554100207326939085455960074862975334765045634196456480858393175677454226836225149186564203039299382792182808898206288442578258743189248475002051792543402249382863738199500428361301196509533708058286784733967330854648673580430303620681121925987798385855375834954254730801993546410180890342142979778421773462906197728654049892607854252741917489714291842582548120686259085079103437119259881385521048901782827692504922986674375464954228480403353865606782405705245817632672318678328809185426114466905976676243209411212005861632232906885800045111016042990784081479950867208102466757029252245095793469263162632502936848577004721991260848202402081946012566777273096804401627705377099399112587509688943603912450335466105088899751152515903339775144981114001328711226801809684385735935023919967562524917873536587024781662541626289747526566472805377117012926607071744827394624992115796501563003645669687316390865178561077325532383775174968230687489759587114057571865463405632826640457485604389050053074019911798163175378307304484782811457685093744183218294888820420387976189365688542926357498288692984563384592185109126781467450230332011295916281548256807096617324197860222672341086615031456095580082464935654303171457879696338870900874943616687202137663056357342151548540843198161900396653571838434210807881166643982961222415348229451142457889027673681581234236240961599363393230250662140451257276354750123395681043470738117714592264107904213116639180497851225037255463691686131687827388502220971161971250748319875760622045189062953920210506159386035358079726460165261392670273021489761983487534106019250925252752304847130664774355650643939231714642330704688720406037086729791927514212373087760694763690243071245726849111847584131968946638485319435466757338988704267920363359103593137523995459239325899438240362931694726536074224728702248265484700929383418437246377487375263193228157716267030492237088116823142117436446322063264921092703340588926007171149921317816456904612109308133664421457810789758181159841345455558850687113609903175332074301587320852348742620334253027511605786390524186020823461257934228105365248867549626764470015510379895305396128189090825146312142447704025602083476250084648279852709935615489557495366892163497318465621991281681002068391904193205034730859436064592744851367973970844206306849152497858970203719959179787693227733713852465358884052713178698353162657701238190741281955012120497103486690955013435378682830592081068740065554615225121128724095906137262676201438509436695295887712285698057038888789064308637360915764897142947325155566620157885470229502661614704744959013109833327004245182311772321404994898787613490063297460705470177574049557991797265885943837740651269906505184250376147315493988834702412757226087662580127629445133439185185145490091349423944477060268658256346106942833905708119727679535666326987201661782495462902724626274881190790641747959408322685404277920716087253513947493805808667214134670976080786486610880600804114740347766664336615459290997184463876847242096497874700523481772337650624129053271041017068187918844457389609146689339503504546262206468856127807324247735219129184183830430264532068518977851710087402517967223447048329940398866553022318946989297134212106636085718484537787269459219567354984013578267588071648561103876320201241231959218993778619893558372107507191232764155428337624450477511452806992390782810700175290113468227975081164433480298255203067090567294988575285675395112659666777064118629481628080298623999334052647865793008603751843732052524253323215031240541228021839892933086171393878037685777660173770351639907082343667242966017005458472474579311745486026783289380235631635531106210166884182629395426350222437774972725437012461843053493128378534598546586706371288382052976235029733363622685543002375710107118228070477986107106528733943353102309722664290831253598650468918624048064741786155292947161980062510647085151954542274375931827274540326545284525422919644897122021680269950698545322494995921633516704071598739362298449408997351824789205570978442083753991119978224834594648118213547117944642058145681934234153994582405537377420460676333715907584912188138767367674772979689093353128187642505259545070851824704481187448916362983820249396685530722280882259480514164427741968247474350945162548554002668159257967653450954198692797003615589308792030899431945049760652331339842262411361974994845638247390604829398305046093558748640483737332414699994019626416885642754787928370096612764141814395871446357137064897542982002003310184283531871102794883181099571920771487084659708323471835000017971558048734165272953491441778183853969152927795481938142809136150693076845048439548823790581127594478117985883154522169849951698784013284622280028621759436781206181865906671956506510495570616946180395616853288493326765035005509486308998548614271143056933900479159814357562138196900437966070962772020024309621717656705276108318049999903153859171586380238581963582003558466087823840974236109457044335732101925073333973182607973243147628775746734557545909509182010120002884447574256783081173464176317342265037981194434211900497672966870924299404570403471554634875251699774307021675614269958627366079309864449645705117001693307658513776203492734623486239721738260494105986952988697179638037723703161973339306276615894425739322423296044368765032301526587002379312157952883786417202391708077094772438778218410689524252226707566783382918632402853508245342122426337757075917161147906334379479368069262639624250793785784452455341926453715171789224867904761229426589986669007126525625534127246478724414717587636582700706740536910595575968278613258168852757057912714939270908485628675529720217498632491848064974507614613926800107914372818755862862792100830084334987676436030355374893322675254487215176584766398932972676849933242841961784217111340789074187474658790972095406047080816127225855664482232617360096439837385061813805957556039346140314678962540002967489780698623747028510008506985415997959662876630165968126237756978866788292155070352981657376852474339582326207713963968575351483185865646109401147334354182684547337078351700872121024150665119073871417550683480845455657132825802674921169633726485453154101709825495050187550481746685695678502802371523081575144623157263679160566479913099827580588140624647396978996410488027179803120796354313846479132547295065529815826623734138554133217257074822733621107674163465743145214565451167066125276347785429069959436575452945103178559447549626567337156162645955606411849890458573427806582871600130362390052580681476538178321429302942331519627910578221094359487958968912711760313769929049927257332386617564947976058528684300267681381200534997514574229260268164543790487360504502399152372880853817444922994733984228887816728690340891410678813506393545505275972690526339750650820188739542264156517428802084982812381727863294896815580680278297479325740346324915722103925844711621907416838502259443360919451682638205179187832798321849355688864452816945793394905659311314926400027632332027548355836788031926172769977601653955131859821451236140127199512644597476520844029522748120638322551764348794900641593337277705133468313051180310389970124863308129707162528418196528191367911806528494570655695410928228893824656754704240577795117678456169387803239049387800807820724795071091333382340568574315108382737890842614136223143124716209387653239076231634602007070531961359008114830620456152825257054487175261507487965510435427484637963606765202355499199278228636966484248684258487986427170726362452541060720775465703089892256698673546404207553926768608981512490410925036493689730389608010987699943430871756300033090293548805423575768776943948466524032401356603090744813631773819678996257119490643728390709483477366876883156765026141497246314911751488159595662455506484855886988521003159104623385380019439243312148695153987132742818909422208643780531493725982665501004806724396341703812061369593183432990414960710931635375463381496912555290552220034927560923921870253329172936686493070501443879714569813124365786854665368849566470776628574377140469316728980065021727122537578743575262747797442092020327723436355316318132729616978078819289310955718927115798453166301152988979900296939967404655658211928604119374805651830137474752394160599060491214202565881697364015345845495378546294966990414054764674568518158341754418466520830661403851249794636017119908523424592998883349157159276305096412511046104710707706896112942774565426182398771479718438200509774679503124786033191063289000998240154671595697384786129059420915834525743390586952206565665301243272736439132690808831197598697174674527638245297324656585798733093052585906581964867100314439274065268776357935032301378861668914643046787463946079263170493791922822022791455656696714123293013650569409853727760773805514251693488199150181880556463711389726178841394919808656974143378745965566035263142346835822111493181409652864631257180252685861649164274222444709385160784884807470944126849573573144036262173537923314092006144921388356096353163992391299445237216948348581430345134906241156556091528193566113475619374076773767756564821275872393603494301466681236475172740986785176089842030733798624900560996900091616292287807797710912465126471185251587449250324461589120546271693147655880671304481883255166996489213585132760358972054390807593454919943496788683373458039510260524168269834953212494187559760509032910610698761605035608830079976777458805889621326103775431602377165184881159125329740885012892731729077094179574322214808456466504628349209934295306302963094554795433526366468932307388239162593276862377585004320789327956647039169711976672427008902841364066120848897575720410907486720354275844622197155653295450489485511171106184926287161458915414424583183951133005917041416137735298278289577008864418843452730483295151512016988811575367812495739412969705429684404175178113704927532274428778875014676501200549805730787240488423308552413483639268003479217760219930100246706409291100926911909111202356838157361978618568303019144638140515703594621852819518486075404648712151280615227829124762345856662662921484270183909909513440158599939926150076882586983005002699089512158247831644146572240195143880895275473157687950676028784298498110668017118110825950114953192874609304847449905233757525262522568171472358690828600273444029788959932946469419962233541651160924246451394304733525431193225471813533331109472368546832421750533362881176092098168953518875958705445991775924972488819050419964824721590505736556418925745340253170986499588308346165505221306468051314913188643523964765916414021567972940507530919899152735544732482127926432249158811075949666745131648084643293229133742656142954200996473380302256515893679389741520533914713123194654751575729115956390845821260196833737727510688012594766001332805557473747050097371297816084711548514082113667505066976530809784403905255133263202566462493561751638987311541417559075441821008933335971478257183372585043013806206420662501257229130873379951325938339769946779198903996152434313283141820285815779055406955188226363291401185818165998928519598615042641052507556369535815885015931676419223476898583190487833865311951607784872306977176889803456872587014512920727585058579570875388933466695991990688160879551008360025066707941889016555175875608321882634902809750184954001434529151135300486413488520437219095769953804219245951774190984688944777693161428301142652021806884510328424863492860283715777725661434789311794225526511695855548148516246726564365997148758650658870688119714945724290854042966849800242333169284274962750912987179060809430429029202865940294844789481846379458207659233011078133978980706716186359788283982089868371075398247840498451519391184857849493527798908900475231694539042243974987806621472494867258753064421358565136632818732088222994789598495164973765338056870430815015876280680865429024229956404768096600110573372266287647575316690432779111692025492765510940978061715572124515463324549079514945436505476082248600328290408406021942472429904062612844938915081458552590283003090990698073722298384004015994019067561229280798823219727442495046120094198658020754753683399232133490823930103821181527539846552640103367679667635138967576545489960289043717239976537776735007302966663608669425433175234886414432696667203008328310628490265300762903361249767725838226232296053591571668662827087558035517852155448105726924896588212694092455731199601657804746374324621541989483070341409050133280947831560989467667117455317220166656743891700643319127273310387727433644925239341849815750405453782101186867605922274210040561416454713789427834583945954619743243854194970663322352952047870315150606260348777710419746079249254815188250653586197106292756507592752441552902039137675995323706165602335248770325089841073066299252877588645024293793293930646947717954871247704676315295807653071683187385566147981484837253327189697145956237646412581021538343504462390271708021042285564468174044081297656015237707177777556556062943982167893079664819679698018475207677134475982170722462734227461817079041089017454155592155133074482944630045169669475655605129296734481502105933916752712335812235079578797677869893474568439563660053091301238939284998358480721468109424408955770741189612990473682904023958508481838390652272537988506214460781817538107389520175272135178765017080236160180639344998691270054857237734832008301951926026532986597134111841281959601364056308349612838887453970208335237349487665121095699449207078894121941714338645866798880221053952508528610024079641264370663910373161136015399352979987123404028833375035201354588960268694418264555522964284666376585080253432070656191097813870288952179901411660271294927803583383734691196027666190079827753112653521957862959832585091139795331444165436238227290037743850987135403070898154642025425756728356243825268785163955638395122842078083684385050995646856485200483519610209799042885633610334967557293248014429731976987401706269119955967629827746984502808312377271494899078395951402170295122036848479686725811739822662675290513858221244155530372790399506783352414479326395206071105285063563530190113906039136697407141932323879790152561811110712327948059026574245570423238109063019112185778899281247279743942331991380728305259941276121567112556910507263464114213611497107395071908426985482071290748918257819028668761587850333086916768551287094342354841931344034562344566882995076028320748768167861379419273536793422050215564810623520626451529108045580149664428754060503633747130630431413631617530637609726040955388064756129464132366309899887360556767468366196990236303964066570657803471167383581139736004869042497799042331492289898703346693208110875949299623788817559715958260409075134176871344975457714953759592505437269850306774166097932684468922343932566545011935734278369552323069704182084905217581307590305827602415448332261292092432415685979452236025018385131956452025545302529772119293099474544086574093158694374473119567712134579617067013647730775650925265330428083801448890547703410532746932998103020987162216147359588962666934286029579158960418546447376131212748173180797126447857422839529285161425766377960799517256488132657531612659380464188340118045499007002270564250420715918732072826734170393340475716528351765680180876343549839263492890296423858671806152428352353587939987775269128733721597056041022026612772180870730886355886835135997882285859344619186852088852860923019024424136726780356755881452286769151877066139403640026465074198681823415016389867263718003829791747191116792270503343741335520733910351136396438366018288832250143517670600299738323663668525365284720465557810704467287916602075853169728844549930563402302310997144492084465092365602977165315092544973575176621739572692237346648528446390218586045653262170591354990506280293286198495989761318344842323054764605346321334795577244944434315181752597748649981975856811188814755943845574096003639555543013942027284440244040458610224009596866668625023848059972126275309425864164359198848885156357199911929045059348956837326300163402501924966628325415336000671119579498110171222224754368871963193349369223851434486977082771527812554871836937088333956584036069589158374179535382703185239810472465919104310994944982530339872115699660802124884332199871005925982072051931116691047164972417451224318623963845938776364750343808717598502396636668148693091133737223940088453707856827221900427911234573551701239877572255835824570947608327119503507284493449927091476543015419315846684016745607117386626530500991859356939707492450969121443901722420674883650975749219297302985434633477602424103232461253936239072432925158290828282240497128761809603048583702317038257992038525436565190215094593050950979949000494405733107745345888935800553279867379518798766327564259486271637156506102022693515078068956086664789200588978451957853823553832228033596242025799533167748848890850570078873698992246064967321790211714432528258386821727659828515950244690946630276033070769407497633176593641692280193114388413203740265499251603635566731569593238708087344231084543511455983508308159027814639878849999986639813617828551140630582666980428936546352474563215910447160771228529098989590750154268171041838902723337430369161608064042315611814576455726292179863139673305222548629942612430552000460533553204432574063981800747382021614733164783843920295941546655480158880491871026372199413897847490284733663155044343421120841162744770996973328217696334159431626229851502670233023699003059352507173770893389582137690338964557839971375873757949711057105922944970698849735678708725871887458889150805418151159427006261765461718693949876599169007298721579672965159501365020531674296069522842261422717939278329332906247971901472954988725584946710774362350477980353812090244828631536736902001465405536204872707194428447061371680524741251790043688451112356212627974094514728127666729911925062288274632549160855996673184857078804309773929049632766429982968546937485307621163591302243232121847008664629949688155259023198551743254778619380173611747201287127735026521395373180730317406288621689641361539636698707289866417388742287853797691821934418596789714813151764904350263876310578688293716214668895429499942606477349394542653089582365983987633140051184087085251829383059371952995972694903598936968799810217764533022604944955772367714324101411206383667581266930667559705541087460776318458350930789660414596358322409806550686225367735775147420717655336602460454122777410882976535695482041663133108810188427454365197213102459531894707778737974650794886091984233677287255650184966712645172618080829598277940010819093233234734545498578287957070537833202539035458278802820402847230911271534837754599280512182000572793949725700359192952753760665833040049881171629303792585974694034662115003295111611909707174815212645180895440580876771944568487969400352656707833962183437165656909608699448221503098022600721268006374097172874720578625943504342703475415005219185545446651619605434654088400696956226045467741818971948148302144249581307897934263819725471615842469768832098959394550414635837678297603826243521103832555062529639010856578096761545826689035764753210131482601243793615818053399365493290524291673393890666751233316602517961661444150935903104838732127910514269050813610962356215223619840841143150802472102628943407845240884103900244225546584764015934840754565054394538528287386556323079307065856610933885011699270629597285634221755563603748121657419283583095757811849161215129857289370799111475046643241742261935319130378996269382430670499810182161816803541658479407865551566998938176658181134485989869414603698588463631968492356551718710396476283822489536387725602514172706379416712542880791393071971644849357170329319433385318535432324258882753582164547749608424285350385588402857032747765970985497418012266544868403013446824167979606769823209650058894486036505044200231328686383359312381222081937426101505159306168412646862332634765246566154639601385641667247518662370861919451197146182465333482789732184364924759316363093453526766714357540580013543220712055438398715516582844173139039108411533523809243280808718029839242525368948788120525553249377941816293830371134188430660712083528814593088850289723785466206144870704116598822763223395980910009579547698367003548401606449875567334487111326106264046449365221942074882577718288457230198317034153602294812577388675410140169422038831397205297017043905024023058227498935492671010227097427269076377535132302600142660572965163569071013121041323379371832839030797092309933232458753878781987700488878621612145465760923066936486713192915387209239638442129735452942355571576806877689166332802904413249845611020068607581566292652389014763077638083687041987332847380953565293739064249896515868614697810097408353221124165879222435502101227488201080500391169519325105244462766563036569213433993818082158014464080034081801330281637300296896038444736098640716166948283965108409737450200422394206761106886190469812566217081216023658726900063573837992037797774047148132525300853745258665319874728342248126818826824329510688632272287124827694560891746229622500963779666281070405139576038144360026639525649634073175904287866890135549022913961407972732794757050799306023469923679344131935436938568393032082034582254706316488808564613541967420611122166569959177864335592016245492409655571807390034283587221319051601963155142643286644798951153474915273098288791584065590565311966758710922370449218324772923723448636631524872959087392295880248204603924547810939255235579443961291129748215886110873890694634197640860626258178098756582063051548587268990475425373781657967505124109774476176507811965860109368443991708454236499580826346308117752144043514463758086724546015492354652611265534229729456428036555573254390292434853842547462389039220216011565201239118567694079403172341592542014606829143525885907228181118160990076082342756970393991888603117041887771067552825685527558971367281938424318921844690994634594306132556396084733526502285812061910199195300192195992031290439826046824861102596571455219256334633493103079855680199026071644328654635753621079113564373422377736052676372040412370675511182448282526212723971444894859001812334164410101815442348819739650614314995288669014796202957982046417160837573722673133957581555393217247153795488340542331957432856820270589394351325371097302032196614385570223598655695689999039910038430222519595539893780408237074152130597555438296386555273173758378440386531085556352557196753871317579907526318344151549234542656563798043049278830894952417575158364007912122829266493569717680396849804861480578884541327647071612077060517181724598539899888883665749793725827345468245762570624090868327974816398808509707361881506850977724570697338490482477949707883917457596945794541853881333385016406560659008516543531513705813680711137625589695496366541507422640185784106041002754494745550796904599881338785764886546477915132516838244981768684124909211667387072802478515877307082736546406632919724727120705707267741532723369815869422221086990576775791943598031193337744534050512584258042915594573447859568816558235731383349810899675792035914649228011157673284255783771050379755375631371476761194860315109611405822859578651411019196824369811928083853573604991446437889375997954584119299035986732440458654923017058875921945606523288783580375280919374751352269843257877888170200129495887636888065729058502172859570702896988949364522288532393941644756043133997996635942565889951094257077909513351449480485509875961305174544247564274202247952236006595563586867010031465656415758552134997714366294365485723150760791180215871792350982191590891483444435333218634408284070963302588247835738075145429093232583796366975243665523073096950643432236288732463634198821486049489492259586673743660218316262324165938658785383783006869500318968673356814417755219212065896814547287895409947224919365458889061148338302918884545738153252863433538289786971770263113716868474476081212945199704207218980755940634901018466238272295165799395379681010692518375384368049852287971866496994555411568669739912265292663594599614372671098482667162092483233774217757532594417054834957623660586017458092536177660015007461850878768824191824808262185662974671774487643067977460099501859776642542799545703724111275745050487701768771513494767792881860142115004277104239354256632468664658440877128155320213750873154025177510569397122138698724736361313973111428237080129957177500674633295835968804991710710455317988679502961333283036016566101228952034152502333372413698224351791314427513863589890173040569224739449789370363728635589279508245211230523678803985228537781919695760942509220845964509641631419311356447285356645589794066793425134166768346934855209043558942671072796793720271927870682975644472352223722425600510742714021987229237236939096357115728324515411645184360580082954272822573946160699318516949618237649118338252490426588060874841156197720711065595413237675322921987833181781004280466740392220787471883444470867164555240075194892290067106920268810944543237260961134834263125383296495468739833361699681938229105375371550848010419854386795615893945783207630632348006645828768758743834915972499735811115295856002333841474508470589778037587935286137934715760344997951144807995786754931407046964011156928483817075119152670441568225958192911814502891534187280613441022989827185255606532123528005193489994338947832202733740951515960166364085990605754421199239459691446904892293830635109575611913798941587170257184134346933682033356123770068034567080835681146458702191461304268280098607747172877207361111616776540480458789996119135859105639174054445354416636609128573479232220908047702261299866925850475389009008348150124792142242230555156974579983512271175118967106769205690016423264171773863299594812814847873816743683650330561726800211057459719517985205100624825863209896363050527207328518749052438361074621039480529550255918566141695542984550876288628476143071446951788424445741942375590059799032842295611685614020667963976528698879135499505262370302517893406111906249563756208808671394480846369100797065444189424867122113856651338950870925687231574924601508397675181500724621142641047038489023447390724332538654586598499479630117661767667403617635021504847747538965764862737557976158531752875554631535610008812873061611966210622028408426245166423341936658367617906745137773077413959217781586843359289716288440791475722128466041092531305199798646341857225019692918108602765586037343678556945045765723808364057123950159884758830394013968073701766842245976558449465339451625157547129815699358949511716811932761583435041894752133779437124660363558013501167147725215265528111084070259643895229149998297615986729533845382987641912912746431595614495046931660298054586162077012011862991854632237808589901441218363295777957563673422019981558281797244875387914641413786055597538630425842602514794341771789004511473087207743561454148848559253115012421078886924426107488815734487996987973185887806973555119262992040427767381021621904501224235751731471669540788185178044028373926548202611112231434152611981801310097384543571397809929566440607527131062569282724320247099787251521635158212051221011433193307641694178625284829840976456492621954491093380100091167170010879684094503863243620784475579993918438572600957484095931444417859771446855491955400976410472052320655869656703578496171835908816924530170150940443991229185289597375713588838765657930836759485260250049434898730775955213638354303628378151479633127026372389483317567248088742415212835191332244208833322531132032892761662519119106022598991325285188220984141453454355292888973117353621418962925733592328339921856367902704586070909293458679623684681214787653820346060628027055924865808455996085870547506241770631684271977691208407471650252948401218458326347981522397985389952491899490060096964712161126945711337094199090111085517543852695445415089137860433138896089156596876103937756344541100940777598353026310767174037485408789048182121691254305942955474291997651107409645900809852755351453637069674597727919971926174753110867586443644545896452690020681829660691583573944068816154343800207603052744841647741590936810733837073992783937462598793658675091245589389544762842037545514442775801864112104800991561858247655893463290338962560076067165754726883366166428927899011256838140521434353616872235107046761545290062807335891466403381979100723894274518993480635578730954482271822750127560460994171807760528130167363219728669093853153219755017867247772206386440169038161988573762642377289062170638575609785202210865849891799463248363548911718225321092845192109932686557673635104576367666933067957365123187240907005310778726150106960692548566631859826325170790439995421486073026270766870163534900951998038666857619907441552002190723102172628305398384522596329881860510117653416700910587424860876337392910155619087174488593886136216692686809583802658454971646962381225412177494366705496661802930406681691561006289046173882023022997991891338808267978287587601688011310853158930058902732688648420223381497519583147903197424346385710744120316773203433755423632201217677534517276541625254808188908169487068187006804340621355924010188862296157166041878576883653852534686922573878580028262636283184637902933195709464636271112358782859293669441824141705819448681123323944252486424743965114926477175145981469387974449482671988455047683797770161029538994662045825387905922478437400808160419300692341186144261825328615025371235732254036889003873842849013044345030917446442903692530727698908328844917354129737898822167756385088109495997176559982232175718415136459915626356104648855175945608420159574845648866641700695640342721295252525858778040279906423500693285975192540375274953905676506669401565363028244640970230694998202790741910081900712018460616892901346376872975391105466780869440322102345424306190845211310876082548003341439562644041231361391017449389249155949075516521383602039553313461644228361724503792274055020007364709219965780246787631916267744239369439405993199332202179608725441173388228727208849775703475592564617554405718140129979154298360290054351035444398835373483137518033397760128701828511768101162660363371161066911710252765650322177163392843609082824606973184692319701262539866078127131289841143216145614954685377050845303954093033162898073480106360180876881745332786757664704345220866041869554924458677863474607260043253107346419786026785486578844411066289417900576490969482043135681004024410598419141130954909692475024028993853096356859942491792146041214968953175153472988388812845909754335414694892870053143266509769815977811685795591942942797800630779029815653531225517333576190777394260036208656249027577859705857702742819514961823363662234406558613276396676402964008011148185234963949505930724149541232754594255593672288560209858663788395936840489682992854853676508031380117054601453904506433804113767102970697245359930968679569406210231651745174757833352991750320686962923351349703305766684926441730360868558925165308332032527220881339219576065127390801051207280143560754120572055087368909053618132556102602572914005300813189739059217894361343587359652699375785057233418399860498702977317169550848607177851090484185917623242508415731347734491653096449972467897912366316823045544726578206246059449010183428254809758826420987146081717420876499808272200995193957998284214249540419804333753595324473493952132007417346806146059263320283721311731832522919400094548191551068047502596406437432759426627092443163688474267989045608848259729301374700180315314445645746849001206413190861298103445547644867928906691193066841174424564230348676155128498489131804664966521788995720838672200513094181318328472586464450874201525548447834268755722462193455823420719046811077090475314311440273680353822966472720755421959260662374382100924504702934449809928934684019157085258968376349799174361404730573276921256225427759076896046285527877076500246047743793748060069814489093888615816956900028813350449278177964485957995724893964350971942886738140011776880819070626998267259911789586832761157721971084386603706395369834202358843382881700174325368324804917745618306639458060114350928679671751526558302196351865377125084895033715106099484937624325668391734198799807126194261586246663755836788598658549930587940818529278726147807618570369800114622451120375509925213595340976026772400580791468917706684865916343882050936748498119383202501633937251482101583072282274346546287616098286399965060871213300147323873605909601285586071217226570429813029054981409365027108172235165072595532309522424086908975046553570726121028863021036567323889073183805768228921834841622183000405167655638946938892259486721632678032581639133209873072866268477179825755283482150063597457543527156527045473089919988567497271554195759245060007758432619932308011277147897169915876451679567813102983948720352969316750657978717813555341095664584281775455623167722085887301034522721054973360482617576767695939504041781648769283209418270630030068374630583326152787144315818287194112364756455110221457770648207104281257168111912612112232092940690601070658888385681362346580220781253902619223896601522509845430351370066380182777667660945066723666176198979620561942203598804060803382714026664126420333495515702117716205636313085539913683844486347651413625456857361112025731433629587392025261732070785140286083039342747672049347164305609096477427198070250494678252407104175365308923471763893301050527554663314431746365692655212378528164863995756417679727680352261522147500700464156461202877763607966481122892235105564367839998141870560091652141194152373188931543295956762833119225922603310162125360853558220793003828501041318920811611260746704122614587596006006130944771592505292382627708379467516575344004991934245430173807654921183302793741747092639805714075676223984280865594192162288259658784290990017070481282844898348230100162510566968850087474090821888140172927182173896573199592009251659855634587638236396808840267399046869754790694822277822371799825901567394634762613297548465201014473158752219778668215766284137188537399101173731912663741895203355853316864197411490828167965221981896780940445227747285257305916399543514025581321165425814488182786797341051739265059610841475845867494554983749751849598232180678311619432489305770029873091086664413191203077705324887083136796604542442820973882928205379488922741636270751281169942862016515182136462752879504088960607607370826674466043441165641733682667158435052343004164871408649159198233191411747265370413171060908281253516774909658245621255950174650873739602821559679081569107417917588174126746273879685289285319932373903464030718661592241184257680338772194674152236314401968909084467993797868654324620154226758198515947174463771207612932481623928598100423019753882690849643679181011840548346984406478545891100617136505337914097453304755386321788168810852828510714774054522284415843940931051971631670608257272992176078143143986760961385803817131838598258040580384549956467891351857044347805095374973800780167990222764767394851529945316520559278488080661480703377162927651665673903759449805968200849500228370239406743990168999258134838555671460011879298673192605769803361153034838606811493506413840361824260563033995591189816317205594537254108302524460584093449035304561811555333075263171963274883611867752260988764630193787712138181705362260694704720218491797505605188632782453020241835153086250563158078204701184167273361686761839695811880305394269684681898640235367932684866289189153264195464657961450396955742335784434307536247525590129439675421432250750985751364432490348222404942284712710464114179897923902591914741202592478337070093867261514424163825287207584608056867902460028154968134752912772125746398635726718051044196783720520136349592760001534837419819996821359744345619641855591454697380962385223732189477903996533711050444302931829047866263975534101885106654187793390439941862888910965210998985067771857651029016317887975762671949016273496103271801173353577523558270425151788850843031929275627908353526824471115322633333810584737876551664463613102608648129188242613972651630146891828468167078380519177375200635593098826998591205489031198953796503167062673676607836358940668574319836021782845345887101554482280211934658800917720037375493563445878445227291691658594936822407921763850497202226627150446912637757881052974141121701363507115394229832532623694544030206115315862162475372130444251351548051808826413874616635923905868723731761280393222219131764192534979907702501732281236700091799138450939578770191519680047542939863485955545440441109330823820575138597407130004564202232183176154720493037148410272566918257710047580271892531146929019448230651049545453023321744065435402880928943652669811480301824306094176736953469575194906291622787652168542780475758020557020903195794291934909388421540813242659178605057385955234465918665559951405262505811940409679447467570073000440777443697299427295725977172474041712337478367927601068514365301237949791663387599189095175502057069094705511520923102829694750140592520198668362202059264067340015892961204423207571196964031211600602620022749871955766866964248245255605140146615208911191924124150503574072371003239239410808570125155756231524823726993950824379286339076966151830220228908519651090919704358412626304602149115855806879914717764553764605788835903247600976882781389912543501447074319684506970787186915214022378560539965766172560403050290109188715654584970877468717443616823859840322149186462768703705671920580022374966799439639648483695224193382191982981237619758525385675018284802216987804929265253263906825838522194790230758395930411363188046806853440250977998917038738279719002742581458684311759723739634939072540677806453094236523546291287151331971433609593052313139346222498051837933379015930224443315109605403641061687387079189082538681454780013875365639361342086079459118925028621844696845840292793728393866546598471382277596940569874123919194491880791686919372154902013008006984220091583474639063485551345193583000406773132801990087811834797424221214131550270391167204075414454514909977936862640196753528865969675267340758358984498393198290552780536856057382227112159955588250770144131859115798973107757947863614083978495413677768199931606933459354039292990773598617210509723455425865627867522618635706631956682521160887722367461908383943546158381901806518937410075993014613901943796190199755335712636496606820178814870778968388579085515593360514497051573768720541574047113629704832063893285182520153690590421476244195406309996001912676903922975263897766712849454313942218873820208522731264143361622022151684514689147366482212101484764666611420139845926989370178938918762122479262817780492098441360432910765654444977122616819842849024112049583993303302374857317922367360096376013623175507032361707269607977668286244045540450170766932782426238863418828322956924101198735177043459342629116971433912322120808657876944929665030814718368183831686206029121348759842729513871597323857448866665797538374724826193299850525923494103037845073674007566073723571566680028713881467847824819600466206486528096302570828168998273456823068585031367217425797663526739071663889930218873952790901249859216172157790146147475797884793058514123895758181514363756027348837116317819360940022956366492773439652207738638145716006527076023521297936980995025816075695856153878892116868447345530465047172027791855477985441702495322137366513490947056727204628057255294737865478376655834279500642800965182136058328685496658522992473257675422663208555596680617700401575510679590362470896096504489993497005236773699578427199268105096756687819299959773433404701851896241015494684467505012894531082445639405732171234522114048886898523669251407315447902844983375461345285455839983781684439979079465545686370528962801236181779979771662782644516955298880340584570369130626518675490784953808154389373068950075183586961402093565358610545020672519654554539369228920941802348030610578168706934259738409131909451482280026751239155123946440976135401616362250990171274392003792032716038857964747801821875686933618255553012967455542603427554853812559624031062212013548807843860482252892683106854990948498944970876036722731287194233546288399784752754952165115585478237554504091981072593366923035077619652032665186486340959155262433161544030570616307784404583548612942273250665954102224892979959745024097104492917512391319320421683940134922048051036448333842270885823781351658698245903465304530270351231532973573189415765255953145807495575184262616543862560750251385302256563236897830717027780975725223235977705526125083137730774239398995174659071335110626319852136349542513573026318357373803528510520656165368108667319806300961561796220294280419176405225083036348353397661920736221984787722403662115489712404955163638443950730908251921668834524860906419110286872227771693145885447151831011626311677783417425804994538815715114167335860769969201534600036454748790080392081893127925733487578151722205065504716795586579942744825899095179022449069423046804387579859405930050100291071390667790093007832521488707853574638106758798910459688374334265186756565592610887013680683783773626005516396227635001154060799011170666144141117351955073871561855970056892425003044699737755804468184254466202380052656301367970152972278107720344111736100599393744160858164166483338281972105026002805119042587152843510713791111828115421641777756795247509402228597069388435779757807426700521341879432405537639877395772959758504278481332144331526297035864031058566402097091696594614692595900020328266323529598177239467194265404978905898423704309076269125857163204843319594130239231280700442604673597857396486694458786233924356516240806346493116528968812765565939483947171420813461864892922972595299832293760754396794757766924853148916244444881423131798856493980055873440377163608351236506035668309129536118527443516810821567637506424080633820671824120584701068289093229073503380888051333309640828896917426996548658239938980266083727831892990440538201733032520219415811362157999652818514346180453972098235450730504964377021016363481821208793209871160846413873411553236765126812386346802116788183169174894617474326282257569452437528496260986709054152646519187234858289363578070184193565302426858062412079607047032519667250248488472242516639110788921837796605773675774488830745143225454714182814114224050191763103496548164129482925325072783050670145277951323726025722551690391784772912464559270216589546408492210007615145345465559370590888517277609812018933198204184016940908438329921092432543923376705289601093807407426162475782850077793010592165522356637557266102615055656917170704184137816609803483926271541322084967089346213833948823992638644230147104522878726125731843447817840688580307179220478075257506623296028037470382199324277382223531007968319720971209481354032225261950150185103555334068188901614523764135247029311614450871383577106105622358726679223035199988802745086182817807957019111015312674017804999922315082731649573175018281718952317637056384482437462692824280747857188472548883713180793033916507181692118429912860953699365471824514025312621332947404299675506111406549093584244158917717728737907372076753186459986355635505036364515332539366640846819241028820135799770382776541235756747933131833981112783185810690737844068377645078854830450580610314635739651391099239727665922138850704403972612093700072652452481157127767224975364350493300586263995839800868964790357170299029587875132916850737027088910053582709404654394125674956423535375691807604273307308367673711674836058364502547672400192523245017783888245587367861662060796146518877186849573069338940583624372073333177453377420791345422608008709793401818541867348947446631078180489000522048509765380317305447162692210842784775347996792643593443767654227284250111840674542400159607529049332002154930524707365412726994956153502102276704117777491875446951945983110193482365240006809938897773030611764860943324302113384875902480457392400656437304430332391352851122803442231168253546764143050829903320690207457206036041515162296804788783196059341622014719462310574542476441084725539533439545298876284824978539805094231748053659600128810719817005698254208931882947062189672830530093940384342781138842768704477679099891594638380147467810091899445207247476133985779631915354300824217729561984744414072004530191740551507858274654222416303436303211047348413449420033193808878657260229532090121846273633298487151889864833516136883178488191149939965596692217353593932162501541685440533701121501799095566688047976919860152685684421649981918087909816995064838753733650867668982315159201468742335869379249140704456474608796825107354859090089429190080219445511422782925953579819937929061076798470601677002327121754838247038804559920823505883420718880535346987173812689186299126509821915677084226608131965308933410404833324028521045793795231492943711463440394646002456337722415370994198265967871687004064657483530936925548196759352368361935825910612189010189068682677849658805583775319391345147166340383772170987735625409066715285851959377868672963332860573987270490162383543631109923168890077986937675853502477777439341758718092194877646893204688857124132555334305158587237590821284474646787716352976320631145480445361310366165568340323428186180476688167354429452068892561681420936286485745467259678560510541713384595665955998899270527671693606437787263346302551217391569142415250422886195036427524844049166279639212474431746467793862965610095469180423263652448172908210896631470091473741213142355347318879453858350363548382163663227996380425247539266526235852041094067485501483754033462057756031507066322741340576512078478747244991516880181919983507323217408949103114385625230087244611189197671475899370612840182154456221840301060821456705864166167871286960154540304394618288294544266622256000542742259335577418376984112398113320840453042926046292889746252774537702553103038039745182453247197178730471672063451484146623876268816934365455032304490940172176841053292901848536971676899010597363900454893623512845461444609832237508557051908738747721344242058228432845152500662661458130271120717313679903674991017850868771657585219445068085416420532862568291205215311061651296598339024837120021845008264247235620751061891979976577348393339183625679998249112702539924828671975121948954786893262047443444160116173871172007209045025160926830197101951709523488087363200572277032840153048372688488444823002558775892383483864843255542120254017907947252771988996585973361961023596773864939552611747357647559745175252674248368302044249804066881360963099146294639263478073488647888404847514755805326762123283910485754225281850922048269695345176683878146068894832611974905952136661094115787856610555801193812600343435389079700180820298211806515616434334687651937462155282580573541356321787970054415084636986965130818958060223302037581446842543490971412643934994910380832548373447131202199804489792630148480403797787321223941083706339463598380620432170177175595700808369261416696502595902090641854513541195048951781426091375064500301211400779044110819666354162208291378716583943411451322276677336733449786995899668622146488353917460827699226234832372491455023683745948950214468710675136195859668212463423837044348165151155933631376607593113763143533341949348868605702365240210757752967148467162157995716273072075725076962393435823734134717816587519350804635980924395568577155499819550734339344190055496619204491261719995604709188760469678268492969536835218232486304799624637791653923541596430144834239149245645691735595096991213025186650208759490631105718682109387562327464455693592014226510422089898017233958016002362661764174118210654767884091077317443618369374280823064283300618655624547460313487845024116552927624707383845495877330470825054006596822286279416959561637525358585423254194542200394006951570218179396588517365798837874101791945367309364426423293243767553221045881059367603207553227944069033189779981604288351571422207034753054148698860977704339269483208839776601890248158222317078044493493438057878875664952727082838728731550310670259356768985366899754544937475417693928109921532166663114126878782365098633032051156069001104164497440044615065479224540470053893630743138350504741593400237895632172585274729480620020565474473931917815979143627480424795244438074410426330957437451357297793292543152766836366121463868156454771169535637535307641309781070516178492842051200979819585984229467340725912293120497794208291928840697720820205502326378582695302209567531306269437584440699135347450681383614684600987959396918515735970281466806534551491212578041553063055943224318817859654938681905424428323380856618805669522423809811414484001503650617126203924807178125557089684976028976904361677401246000526630553339755981327445095497009348836868743010705317935876626611707407076537755658821285640287799925932252108725815643157372731624516959599856518956448063765019794728790852309519622832591585861949273221575427919971223194284235732334039181745730513785321418919679663209735270108617947645992509795055488383953080976571632261804355360946106002402712058126740778796237999434348380281740644629660319831733666240067267449636614075623765616073694819696560040337316283476678168138750682513758366734826090734077748274936255519396218608518414112818581549593043964772618874064152233881566285212667597179043366150031238288303461177615813310229206914715409285662649282651302666215859005861110285812041189729168781254378220383395038953295346301930055419931147342622818407070603660396665659783754765606740472899433073333525146333180032096679985047512233149859180772592108254899826451535150202486196827919241856721709215514795064254933237405538797715361968831610030799645514091679882203523998839670145647532906400099962125444071823159111278085972294585491240891497875398709917380171335517751767688860836494645557508398473614817900248476294854683451245514589477244185948854492087851389192492664800215222826364577576953508456907573125095505368072089430280372949468530789059249169225280894452707866805055482592884891500625011197501460439204219822378134750095271739353254056715711700577235050673352179742476145055400989881329881323617516856201713350616381514324682553621957626792935733794413152183807573346814357526713926461257074499130681466579739175679653734673829914323437819045737550888695565289476035034552007148252039523171814836781740120315990882593235781302799704835071986113009417967775461744859996678699863944300656833258129659928353963533291514617974400996307387170609716129259653499174717648489728487493844115746625817956766937667983054755687761401417399840401768255076070774833544561057359996339004075852227698936154232753795589077998481750674909356376461877771275486335676806928127795033025205641898855724690302492746923717659363878486630121454334557637268201347884964764591423222902087402998035142050775008906295224287913442343405274809781739881719435304994346406793286808780935199713510930893853763789710655627516598813331925584834252547368251730636147844276076898245496085795587262446658226119863818716524586024320548599133826676117782878358910429890818919174254098906566291618200846690818946137767631940508833843369518958438588112120359359322234044067918211131334756556992827137714453924691243180666888703428484934713013060331873395255292961629876740728685453816705479471723526282817050854742164002661354648011621447277544717084493730673140531185773758866352326579697555391356273619634700654818038875507645558028052896737716931958469494982504207381368721103453778844355119441838425088787336648743273977031360770415174883655180982348006578612909414950972026115147232378706446782789559037121524509982701619075410557452488475178586955647990204428563613762156320798612507353120898685804080971823521016067642690162143417479574112188136190534489135981184231096765018043473192486271859017804961130249750736978531691204371334154734845051788149399328343759129800541039267819271526714653342746677599313321893046160671437543191016560434697356144198754247864105005853162461078349820524496377883284386650189794211983913201842642258435474693578599216587250035899682213153707901294780814059028255467642121246510475152933175032345898284070992892473763085219114184215474045147343771235303003579433333130181218471395207843236421435971666956311563624033161124182269608536635590560037077493354926371207394971383496390206106774257236798172508234996290816758811286538332099161139604928665926644893382013782848117636273462746837552981391777361537684146524684246631237018978719380118450234918025024751928474935851934664452132197966021594652798163526665206416006063013840305772211750359338789785625380922033930616183065856368146258153693425061275655378383310079574213210460476177896631280588111894200155816302950313184727693680613247198030483533981358792056284632106496274827353594247304959861031074995786974976989558291161044516928197852992986499687380335836756924760388650729816758908445453821546497624326687633932634718252138893026525466353495872735488169583790145786971502578333255473615373397755765851246998168702673730379695030265549136870169105528251836464239002703312957946203759424021746525316562632744135556694686877634504738654754501165339545524205073245816117903383646495844892182556352465158214673353922060154778648584843716397100805649718056797563961857681341878121095049346799735590824098182813548982393662230839562332822083503036800393926749372402738158615139095006566476128866925645203033817174437809494363215389063690908510087638283418063133582328070562881523748744280193532091925795159395352390520798210440120782935390250636653974707758577713111749056828779150316732615215496961558437604299525340160995329261820637843968431884470212774811598471569630008202933534256828041224240747406386176039060424765875788391044047403556483685473369295207747483815859001638676058165766396980103198444017764342487568968364741504604586741360138412978005136089418233283987932922145212268369610108606843750402540880135073591127951970865961072349983445530198806756251710382254830885212428117746279608096747988688599752151810683345518428625475370441683913147089425504921167946818836710220599379027642493361592728308376520480378140051494620153252018246750869777166835678706711814675140465780036362804132312090179053597533976279025385028511907914397556635245304805115045618941182756729882514872152923676542706639585834434367521639596178941047106795375013632382085269291929757764704173046587432617387943971679379479853127753767470644509959964154938485643727750200459014963880810875889289574443676880017550678478861733698340989607588121735430859603492054483782247630277801568958225496608115562338904925258836279203816181445949108560839219853325151387761832487059801031206499389623986604362606675027483055840845967282574447398649975380465685979985710662495045411844246803652759583638097598294150164650017329973239760841742039579690195739004869098260924730078162681100341700690314822704912344248964968467000399121386752355992516467965755455279682177630540053515480471264544887517328879958870318675735887861335930653879049535174200163050061142438853121098632893531903526605124385332984360674196782000428918238952695158560566267733528950370479855296520191547162166315326944934216832721749558246918369521577557895249690711487587037132266345829958323331711325946356830051134857286661267965015243566480738045693224169854598336425983034601359314913509115752642475072247387621495811173985336908558446732664039930217285784411465278629441858871174268322448406212470742192201527088510283907472482687357782525146680468182318078580113290696651492662689229513290794465097591790562625899351350506231363572505194463064308022058480580005435862711299546378286081747876950460462682990576870909736378588516756343565842862775130617679759882538326132903774296962804729448288149549105735490356465856179658532976735323817936120868482406397537635568254997566256677501362271472010600834102371233243046895814780818843222829531660932297231820864228102232421741698421461469074261321388045294552401773220108842700380296997557199898691929011064157218729767783326484554153103495192714220784473865827154488053234559431896648578462074594017167928897011742806041911276607169943981980733165504802024030516710823639809334601027941757565325480740795486730186940512689399513123787975219324968530640076090888913591617242301130893353133393019601664973553651282369979671359395568240521527668761446551413908787108168724357228098710513000725793128584754381398720169512681897615098900482531403182569218692413726502116364874136397184547211261093134734702938710598329024183209167928533295582693058917952572551420971764156761873347490398880774395259412063306115653300252371954061463769039698676344421362190683994759122799591950599971581544792881960407702852539356790380529482968830769122816233029756801756668282635441924187955814143967223391888102225910595649724851744588047060931467042364854810511641094658783708966108483331294181060363579889514875325394631615491876027806120854183446954081845532642403304183707029677957654556117890732166986664143863258126257821920472271502480454334655353639196637441777285937425162660028240550632454415177538797042976300394410316906277127349402548213212682540371110043292305786466642852939872932259002804354209575736284250327131839738047350856437506255539008243205863359961891557260417897562818396391853814618456983273657626701075306745844145399828697041413712698681700076863334102183164341881233568393351228270890052008389090629279570141170587538959040009905935185662378924314460147498486841774345042924933002334454748004123433755549212832603673705535226682878688215029113863256313980795814597248769661705408366656316355993455634010606833164996174804444381935848105658421635498830820714403256012937483713508971150188462474138731067126504206990371016910450662051709663169762238247166824212782635700028866717676882364467643341180783473001448811553051785012916419938253562930331868701762654178580322988936881923923330165941260472738907678550011461077474360462960088550419711819885774476092328742852792569723539103447506339200055618259965994286761088357322970821381623715319467399645768403593310883095123746186783549155947134176420193991477388266606698870928903853452309298073668750038426244020477779584190785809272975504526491862027718631133562684074746327957015570989103651906392487529357753824144860123906300082558415471525297014145976125526746799072455032502145036501604807802172405836588146553863139447677810536922354743210474870157389131780889435371714904278011245442348980622313397706935562349535586081402302175761216753625128044565451904599429496436166643922470164322389673241785468591148787683610213424829436643954482238456848032629271327610640961000160163123190459501403598059774550627573289984881984408475226621507322206789113409039842361120444930801656597572481971300164334197429188854562287865934611291387828021229520708801843102634857326213407174487920285544700640439037352879443073417737182032189877790692354048879066463459673199895200332686465180971783757152943125906727765742101111680698137786918761904857988798814808159751469031075313319989559373963808037122281735233883792648108782825329474296689225090366213207836291611049491663616954267164935466167089728472822711435956563561271371978508431808337832208364126740215722064256826923362229794098821768945785556603479995935345506243912357791042070331216328535776716152661281343759644770585270048897884707245500009387141709626440589176411838002516920333902306387709377718411229254136912943175904617934992910024284035703671961669103841686866565347908674306375693645500356706863602619337252735246609349655784271661975835530786887012088042513285772213597467244808851149440127377642414538070218588242033838657023299323319877537103250280219577024154919084004189332226857602851186347088911822245176141336409914454030734435360358818488332882052354966919779015056750208481097412298490676547630552833172048658906463737262605341117826315454321887034266182376301349367624312570298046267508170351915920829848157223567386867236259235525004326341227104971530395283253852888502414582747981646761142969760981736129070953680420519314617341518251671814386971159945581002741835448653371945802649151969891704157254132028143594230483744539162150077733795046509602602381286666848884755017028646207225490815024514834379298362058796976860541055011582391336808271599035383785893981783618176046584099006053283721636845216863442446605474986998011867826769999508936260800113267042333249567286860690400761056805692288849001341081667197188108135842129089968704947398743140056941127406387262934048110671147081875975255461327651173797039000492552284178804608917930572319649308284996423618539817612823047575716671569061922255069494749646477018731261784080284599855100965269301476807913134147897121059460027727383177458752700284378522457440178812536383159950136356760795234191046514098925172742122948086870288013335755802367812244508059685895116607335884074350007920088686739641251810715848770494540874634996368494645763206557207792951053559272646817269935802911226091106981220128330337013276800239018079645601682389422306964911181807827744975320380143683543630236390999135792759600868838860825522051972381099661041535261199043890804116696172297694582821649263106759946828358421105477896432152928213876901009788970913695023438084904653507653208403865707511936363326893307354153466898282786099464812598821152274999231034777955162755538678830105576652015867578251973869754599989966942225804429520358356700498655812520072622727018838766829559128658158521585804867839398670027997591824290391209608468850375199788063032832552636493258114151814492999083898680489623950352149362005249855116336500505571584659268537496384708579928277611456297296966254833824356267345682942943021860129654849251411776265227700940400666428692299629812686047510910473087950086157214552120335306566072131194064259578426172328138108766384351408543235099425796655592243265306602950710976715794083866114719657910211123799924230876544442117925705325890328778648336073744381014663275159649549996416796469314485053810511976776604783473735559131242946979929542639919850926984175156846520015869832408162847671892009306724757376336304103561715593617111977066594932467725290334712198622011304585283243219266665660947496074549507726865678496945954611135849024029106919870128434402721818252670384215090426952754678304339849370969588767799801718351964981212593643661259291498842206175575065322162903942630475726492228021680344124023312158333900311478334500170451603984424827627128831946025224751544161744940741087255838022451764221078874233352402909762027528266703648653081937998583629079663877509274365624333482247161352260550233423264238005285910902342283935677964838286069579663267611552559028242551202051737193766444325929831577455082327602571761301779392333967463171419137082147343328008540587023842808828773477367773504245194569320715549518893132315517519468471906933809291336512345711899039007688813473547527798836961911688041837013542982880919114896352784998017597480960039205570837077718759291068371598018074734423164420227184462337141738267625806137908035267744777231609449986003497561410780128851326487730004745594703644155801081178325062268436730390129832504902519066182212835689571540130732269031497615050284412557573829403547713610607967690119178388132770023707372271548116796128207544296640536755676518995932837475693356409212823387574637860685327595392068703702672278751363127898182243656543251654308559159361689220673034173741945397780551321290273881240525277208717705764937219222961436973760889029829507730027516284371867886056835119383690567119397355978942223649518169525854620671923799883552271097332056365224335258911057873457998961251919328105382324460075967380968263608129850460234311703280799697314054878730606416404408270051363660033203414819528856516382984414833454329093740756834836487054645347289044917703673566897877042862846019955359529207663418719271590692751983648604306244750259635847765582979938600424895050513837087976369398392638430293359837051677103894223371552460525042719942729281292644928819522526016706115405920527824932353285197152121116592382648892219551244750215967191914443174470787787286051748465211318800148335454187563643001478430493683254251794382407786313212442418589768633310997051757149077564531202591396637578458858906296778964349568853705728344971364390776548822834953762057547536369844500971126694085975750250140805839009054291747728483759331249461189459317027490706827064463297893380030936309138255008179226994588242801249737809471869768816026090720239274591241688239254538003952250101589454514382802392870888033905464732671571459296652340412352320071397884773465444826880331190944113278304406553505889903170957047892970665260429310492300192244382693990944730789913947009148349137345539426888699951496836043152121812603723168265028387482314711950733135917234627158083693213592178739909182016571579086434674247787102722150908622027225927361056645343390859925966856531854377374429777372900859357529414228634839667287316902072894467293027099776069128898076767046835051063006756150285895860112644343217940728562873485228366910730813812456905720777781602040331366689629790380271844334764274747473229430530867716142170325982359239422893817019891788712648029977713961520080118876969039732873545810691253806161495754204811528453193830342864439112704634197222194933577930937439510347242633066432508458606382330116233573159793993213029915437052322571590776270760559673976483265344336252826099257046464298561883025781298797186598774600187739375633475963409305678093304059108331740441447347536545247259664228253932081058100650936179340459507409239306312917297165699630250318416387522987625082488975097898465664561249198825004684626966434137576682459517205353902745349841524830206671657598738395711837376384783317104292912241931761758112729719228964097504732558188033178438888189244683288858506082556231557263643276748687513549635788668172254430525919003745443821332485526034087780269367585190351499209577549731874136207660822470848082778644882832773634849067273505378975569620531606584566211983035461588184958038556836418673267039571965411285691440170271488130182699743030077944737466162994596317968308288752899499395988376730382021862122218238383755719151159618311535136500171697678547733572570645659899733092470442162534846244754619167098535751338689326957698282375295721386654681593976479483996564255809869503141784992084845010665055890903562766494045767180367024053588720815336952054717145085848508627005397120906337940761388595915036925286631288408368306482737351638233939307997265912808685789160110253303974949572418580468530018952582639614749284850497130795796165491288219617067220983695921223213659093009589955490902503365921919756899950374092651813563219130516629974976457514827462411322449677148513929744906209778076983542186928821578711421213620224186911209434136466870059913892038956820033532834494479817128922278025085287618930277182831850276644196959484457584365688371388305709701310077501542762123583550588790722993358645421568348633116883313855037473564887996455933173559701105373803039835650292001560717783445640560246306808000246205274454596764855380630440495198569415231167482505625205875718739217171677155087924758858302424099207872806734126857808964964934491923543747817108798485282027117806421232905765316548764082748006744023805301723008497533352465674607012714918899779051146260573763942661569331787542660198234512633899573454120685944170080690629420142514360661970920630456907874338940431243623893439728712943564469252260466631308738499453164850357658117686334611157959602199666641566403865542897634854956120560180608171347901171833924432889475524339616870806265062433681265857996359879788735459294013918472139481355415621213431347599935467576587410652856671789996974521866168213979132851904561146704580356015807128864861118139000770642874048879305785778012916789738223450636152157553468667703022695147436816611625013823821689269834525320786768729747496691381747699355255158502631338085349205946241954333123670034998676482897454899454538831543191150220915748783343603287825428463261113862824698828659087983978505704473957205470871412537420993502401729835349015291773019877992542999470425595008731488921725669889715922124273872484450247995909435369547267521477709658479356376845470493240675568306152988892709860427283657059534625031449718444742521127651661544453993614944421691242095285968827256950530538709367891242934465827916441409043875063463705859301692205509341082065023164351456328490647079680896024599319906820439923004690984070252251375980104355534063957001098861446548118362441838578019240867830451516515545801883702554310270553755082952201073126081001454365676435401816622580636866191783861091163181953013011561164811909311904898764663512762586191365104628663821986357903527341280810610746586223498048485587814016815663003696560078315358372376920510509200245819843033519206144951193350997045883893029753568780712123643397940802257574800002623098795780819508721077121858504425047481373035971715079899988006083672708774298678594543832344745128406796360245004692495457005230007414967823694367982026366657656643878624520050893876514855766541886941728600766735600050540155277569405031663779374779626160177797213419694682009079288647457333226446476384134176554867474947914871509811597351429323573916003251390408257970529439983526357609682019120940139795413643493509317936799208621288761796583931940708876843304365847227773994990369160506417454680601366006660748431893271529213498729431393268189201739277136375331617744376578143491365172305521406822982582143808880586939213596286312566767447608470969907349285815462304882388456599282126181821300216235124175691285478357279339568443964804064829607555124370280472306730258962185081537007208070959383601235249381775241283139866309620230817067394075130066955293599754596933862672913038927546474061011557810706380592415883828301832392400851385810582260737519332867950406734472878514993825606742646642694488025535151761332116190849112903099571416114989493665642173048831917060444107474338181213373688168848385056692121785996289449556925078926241361161854323722400482355362992446141919849660775915372774989942478712654930532081899140232494292808252986643048619560170100491489105171125189601138136820363682357159965656754868014071157182170983847354107840079782546383334424470583072393701737381830119450539481123065199111289551799431274250882134468247461183764559842353774541940163063445066225519384415950320028349778100264107663714112594577608508549918194446909089252788711167740405528965836484606372180607005699843421386932607473854053224057550988354046151280826767230640050811748744108173566698579927915789372630196895734778370077971781398843953743346549777282176696075936296357675119946749127146937859517110623296462413305105395115871222874906249244986643952357837881671274069359178885625628860590187085830592660146069920255914081403396769999343272794195500214154798771584258229730348553066602188934977509617553648971150282565155591842256993596540974097181027250223187098483967805408473672235990482560277612269423611704092637603197603707879586262566592566076731962107105003769434544611418896414169859294354899040274866261535642129197941190680256351189644860496343623903408890876493738829455911934549678898349232336827523843930230817497046796440155211178246592676284191883062200138884765671125531763370055555088730523496806883173395297350763419254105747910034465082252007676423419406739089200226951474457575421920972961183478304714556893035063536473680094559440313409935821719753113935392697021862244558690393698103224629016638693425574032497561894746603040228257353661242178954256815660228507796184247110427749902312913383009849448995600706211166527070472946423293127879033615790722855999307017894811194999583103700266838924534745122432366186857832578059939575596290695497829337344762064046454930580069250299880107074753952016114832459007992167164542899357288181108776458145240576051651426400549906876424867293882059587437177355445582352067136527552925031030429725172859971120923137317998458324832318992166448243473117268238822681814008588531077204293436113465236849063376330943630131735178117972758295198421327020675325159089528260700050555354385927883900107392355182152598593725688926091618503797049993014119771070826302335014859838797353710966382508720126532214573230228742181135988233021773156098133899533991517202678894646308238296045109607719137527637025193281521069600113544606867558875082970360269307875530625135328130401523007853320183734555969110187178641748053153286565120939164473109763245479738649772992719072631944675027152383828577928454693823498778514867749317547102639914477122451179431675556465538688964680141436752991005807267378308707408440018405807118417897838444055413799212000688404859791513033238855479161518871601195668148431255721954887284561359163247805205459330895934523386991771684445659691767397224559624846724308477204031872391691368233078114223884444510728497233244546770646032901645031308821283472951154600044401138724456759737434178590615221947066687387275591756563361130193982480793098571429105407038010426011494094190998044681772281123879494536823718538822254564315499495122951613492357738414855555528601504887027672884398455299489538432457456703805409847669898408375501624496705487432166199553386249080208292644022090300262817200367309318588729865521673158804113372519950040431242017754078389031033701837206160798862981817447667077190821595884048187160271760864442169550423708647540055529674658726832054906234215516176083042064822391679889223971418120900264955912321618089364930159975113801498349853205789253281366018892781506262520367520173510054516589740287545096965470699101248456772783799344413500679776109088813166395941551972356967772156549823244460855926234832042946471046836989212096198457254253676990641693409891004266769353020028601165145249913164201090580520452935549972012178036581013351619591142993551343389287148657599189668663270015374180687620658210831684750173506289027617536470172895963086695819769372425416801955075005235111887432889573397615914439945325517889199435119411412780024778259051800713042931822053976424439870030607689718517195428117137162556419048609290262579127657381671952602391645047128180329506896629240846485277856359580324850162421734754053964722681861068315951085125745839279063693209820075794687282583888034056184789020201362368788583238747754728029026105205809778505675714913204087391388055782951920204956572481386203375372906315593691289061867142965219641036515972632008134028670887098912043786283968313557052855750874047847835124870697082102291710670063020605312532088599339100842306497457302238643811904285910095991120332531927556101254698047353155661791060417538753663171714681456832471549581298463409741920208755004253915840995776677111240164841539241741589743740607987644804092933842168714117243425471368102885829854166031979057525219910802876705356344048221452153069365988682119169045894705436792580024543181799978927538050262671876674725723899782962761031268270830891665441542068515328331897317085104980958420902619704083234082770737573311922233234310777486435487812018698055710436961131974963286053781589098714913881684980022837795930738725883181477657422590555692860884309547040278302701922070993811218609695252410012928042575073840303842872425902661112212174197313721210495887487765063450870879245424259189073911708229854573487042482517214331282078113725032633752577046248019874194506363450720294710301481561053944162447890614111757271360967088396215480663873670019249682440614916253637767708031648252568020816370044211126261095648040836517100308401806850046462501739723008987984350105946806939919192538087838150786951415187980289500380227279436887624583696207613995294785109352881410071445094547369853444854194632912638413650122408351328545789306244340874440268756465319259874710448334179205592740389440937846020321446374155381789999239723633110856283576043100980219961266088392023497373972963871070409666404509552544073894279559818522119548576436384496694991672983161331131134049194769360988205493114826061595270730378022444507382738033379715176596705452552050914564712333556584167139896206846482639564728560420945280888761584956996674884582728187378885568825948691680225483826945077704609977071800210141106266076826742115208907625201661333792606548688847497640724322451317723766237128805441935192454528541357047782371716387611345096477410146604132735670973869003955150244156707493508518100514331141401964494894153676985291344417918261628266154021551498337897548492010142423116665123434161010820500497738688998475176108151607123367050996917836087728716691006608140813515035499833321830052124890551820512407961588463818905560856093255169554062990038940303706038071460398963213171175178874361556963970590120686394383257512759939158782927401594849248759373380519864521190764190120573182960458770597506335807114642283599773903743958588709669830722634495067204172301286460772549354030315951506618510874545204560195321426947319155702956630974768532672145312628672851725305369545966670931615140422181506259193448789734570028783621396525834013709858202335205591286824253412042625716542854159948505960729201342833844866960858712850378272881385386377209945548750681581775412041166130291331711936772796386189741752599886514761670325681929264154020359511283965686994419014245720491591554580920065545216164325898077717147562934600186243258113549548474548559806743137434763114278197546735440397465443674178533735791823804950309480216351967256239645023955450112672149433248192248498304227490370813754425713029300893304548225789624005939747419346193911583716018543743787007714488737626024394748552120683106583339882382492950881787707388166473026258988714010880623169798230593773554982201952854045767552638749759562259310274501220984175349634245656786401708090121946555519275372687675936804958461084783334898486507437304444025600314475012651685510609243062938687031064006705622493241298033890030771406148788185646812692473160489536655876648084104664641972152456401004143043276977909800757638002790953306479612648530062864557140676285114980584136352645750867713272293266349649631060228477055963375129092566545524246534892020805581996224820062196474777008557638630021308499546729869920431811939882934087664929640253168358266687406039313794363588573151401103102384621001811979976442513003303933856042717172477088696764280001267707537850154309226503208825668746006220314415912328417833400856847511588165904464028255452892815797357357040472889959007878724950604842647307835735624324520293858681582382174217286439672209776532750382576866634494253138562334945319361766025416048717228259438940712676146724688834185952140536505328901410532340842311799571527626037754098603984103578053732464741069856587078452993122835086566150469221737818641337302788780508797730902136926744110620895826874236567867336399778943195806209612370098787817372100185574654647190977163720644718197763248413826836475319227933679313625986939571449939728745870442592244176313997731828124474166336500753909841421781238016319535331969952673864571617329097610573316684701326615847483618969856071370994250761269837403785431206957484558636776405374299579362844057981694845218571697114667458532053197504644064063313448272896990672264588276596854390013250544024493899860325286690978528180806841236290267539163211044094456909686620863523301273959708339418970860813463125615338789119293131715801114482508324466601830479732693508514036669105715261424924802724041426908628068671115287114093057354599532331838033110027620925331151681090751578176701070562320254375808474464769142211341862860299809418590271581415171024331473855022234755958437409601089508617782686358570779967704210364427227902456361263929727129603108623684010412139229886302313710836482787280797600848942733359101226810689720861337143673008862100875555625281541433437436016019268898148102592936611049636627185029846951725585042111353380076126783673940201442261634468176186808293982510955032979756139051835189848231201706492205136392789552027538481879782048500091463777602041413480004716946754928740704747972756381083853430456151560147739888285636035848710682781634044872492942464912127328066985437389305402078862790042658207969465446340763839106622065761379569622612296873969419407100886192904775874499734214824653721298798804303182588758824443081288594751972013196540262618030148947659949812879331120736832764743535898815212997683005769139824958603083866505572829030925945040001067154279825719552482270558272051142767733362073131860645477838314776931538013941352623158717277195601374357198742117067119930961680348699079448934262059459752216601199807681827444763457066200553660912679069706377022551524872209173287629017833923699812355710688499353792974161106881310480542921089286664202930249841832169855872160960943654833049026605901840631116410944028472612172282455097969863506786050939257407777006654176802279324496939675102176909828838252856858097526688698350740452995734766498540183917303200962592080090686862281352333864855186822305280975430886745379149009576714723280604834749257551651810245033432161745495038869993177311024344498319698875632785754348641489259444400730524972813218031408193256032030016547566517094523019106035488256722518897277756082111185007998680615971591965582897461518945391541068876145672343326819813472181247238563891657660464713872298238644278845953867649429449636015529997056936890925937052346084913479925441358264605478100676110958606154481554794344839161067268288566877508288152767519465551398361470398551751949177725702483918653718188695526244014005096516724643123383114579661151180947706705473985650657904473655870828985470152487234595626263612291927684602027099525998756627352117309210814914344172898613871194754205347702357307640139744678911866236406439058101099669213194787381281271526315992125808807410581519213362020096754412008472699941454825824275136412597089018608972701371100866349451708322640004288536307045188587568388010343903880425319931511897112505626154054903156456047108689147535336199402389839627517414259741150800287636849879455816075892969002001957178474155083696433932378952088205830257267055883515859309015904621879893946470582759988428372502972925842936081941382490092478620679740654925613747432061973787613034680045805414479978384716238051318525274679139171806908803904083764969416786682029619166639424470638695172341475235291948888405363603808102563516211635362922083861626965072950927317159170465608833714527192003323975955345147112217665690571549263111229569694979180780025455440638324559047440001304119322220536489902555938472384966771903667923673361934993998534428787024859305739250373252411013304481554774497681706011013175161582477470374757654877431833969566122503557103116553885848654158554098217788444686307559352932928166186168456867740526079898729584422363248998055581731368253220927848470776140307519742465771923562373329294531491828124511262161229619228915010582891866359590098992261287232208465370318987811118476097035118489049337052826739617157658203259769959173367368973854849739270377665145399846846295990797937987391158887233689761495030315494013547616446126707733175517488552588242320666509824530119600343586109601391130339585252107658649689131612110521209439284945362143839227873549197447072818341018644401802022114386581818600526494099847055390251480373056848562900639264762466067566795210046951602592599381051555504841925846759064168072989956649959112068142017471769121550980582851745148952716191220310251489176651274280016056409890034219569569326704519372139202724098206483943377738078033888620920391004429494397131623357485667691691127278906822546197115038908420363065970804041694798275151677862806006256003597131727957045380736145833259633642916483897554467985549910470472590250179147377400171739458435467364460038564982646450078367979100873657178331517787978758533210296527069211308262823873306177242977139402690878902672812357308046660273440710439808846922990862105112880226362215887764728367827616157652135489251809582293154849972836539057831847617523367255433346954128217203079496294401061551601790552962857787229518839630854072527457250517646978108886666179748523581214345247350340029462746421727235204560352968583532672355590922346295378684308658876091979941647846709992849707999797109317208815316169119752039935883257121381725631927740593541982572631952686247744135913576946749776601161756068715599572565352882299042666491073117981858223825638011586650886257170542301985293628271131955621190165253114539440779907814518570430852167222941193039749054988539645932891941155433654310811353259630334145781663133808149238219391882778574263065157319318553893893467212346586665211330444080542674908060112730882018062383923851590590647912424445803306397269390739294675883765364891802198939460098524747421858366228867097430495336803266092324973916541491163743958631202202371638010902113136848170578422116375332278751449172312350399165475489496216040130755975922759064188506563343488519529897800535265640685728308215726305723709949084078879511434937409425051456750088653201804300567053519374743219837414529556830990051726047035810199635049077893183673198935718042688128989816105446974696005093252166314158262042783696806013688094381875385211937847136500791265796671511922803227781120834402787197859934731601207286788886466510919740531391219865384735846397001004798945750139825945499307381898422551593656680793876784117416896801383792933976325658543121253712633063130360798089229902977596011991429598964484776681501722070340457612675739680960202865707014091407553339094559021030539074857152082741181373660877028610966598272496043067431255448743181546035336519253330126320995347052195081075034769335751307967795081331273060676895752713019229834985734450358187443046709217067133980725063916078923893212594272981184281446702688756526752666764900351940619477327425847068242652384310682985697738889963466884458894802329943259045412320453510404160691601449221983534391566156113165988385981041795694937806475289122214092508567477157687588969790117483221331457793441879567884982943310543212283263160721052743011295546388850351703790793618384379072908032591140568344378552585312015059715776319977394651371130926733369118653326671196564307301362183820756833295804937985917143385761811877339791340198708912682221475846574569589137132568894582270897427335822426020273590722548928800185615109474914859529662092095889047670432799469630557203948602195780710126140305486424376198584516313610823912279180681838067641199446524048971140393722251888942489695136912658951639548705555636802292879801966325918480668170586134937007820755411264255170032542214360555613100575669122905873325438408499004373006039539312054928111879580272336405131590475031671137945954858833963468169712403885473294617648495553217128852925334923052558780049568018773568389982852336954580415341520141487418523825076298678257843463125834072684460011153453151249537852395672433038427707496789983255881238241903542234257168386333653737528808568343573005465759482946296093630821309572729855465856761469434442241713882050394257335293986574232686736515092418679451373006934701341236199165059281942600540248871614348636507654297959635339662091556180744482725234687127363503774739894492289981536345835719439141039203392043691741060904397352590575696383607279363771408991156832422681456126639281356929939297831417244767159058632756084902128871509038765957057516694650260175938751879735409479761581317188094721370077705363528663251597802703935628974395116399768738673839939489096452133868553317707206415492200825981807918723362124267080477825198375046571587986867585411927467639957867207435060496602534562215165016041539099971808395794491618556249859145331361416531751360902650106183250841872090278899027403106865650471544005759300714532131150766932829853715116695504951844989219881051407762721999014237631855625817544560511925417705601364424239980616429524975156238701765904713671001063774890575989663595839421555835547011221091918990410919262379742988739199710791359037690391236466213398374913536504252189510081354042778884388200492299343246006773879455905778728589744764550213126728953692970154037646372299957365658970777693953317327297888060667272223930825493201403123418178956951746232720307711782856237162911909038272757944042931307854060323129485968288645482160286226924434374711746522916852078619195625111430702171716555696617491023394425653659826398133276547469103234794859104675769515326779373536211711650704356399340000212117546390165955515763737707326689221979218215339863678465892949895079208704523285759184116897566568554251524144529789103002356185059007557802201408081613956163533593068586761242561524910483400760551586129714250019975447853560264533361879672002383424772642690616622712865190018417913695554562796615358907076946383130279594003137543547162522956614560854530067553614815568619153762151694722173471750089646201153557639036189950144348438217242405360172244198632123411470660535367683457151990551123883275539009695873112311325356043414643707629273869664445479297225461104656617839691358831804915926101931026543171636529813291171434855620512553716062632215672026305557305496868443087814603033102013986793925235174866760478651760770538701490477072925204078709166475761542388997867733369298690570036707809753298668740918193335651071436306131819839585955462677163905386223473129549337468375125307251949683776929475292990837369750331363009451485224437680632920222537941119615028734920125315206231385255391820422475730162514695717894971018777624222415550826108315370981711633325675280173446698222898014497687803915194261333299859162622286230220182120323686108275046865239208887220209928763879884861988653179223154714362358808078894036780899947260413137308081356904265875584053363903457185480343931681690839407619349003104711467105610596946963127179104963133504455177412134168382776758303567820021234381440837446349746598397154760565997494271991018587785687146843153823915931868061206823187482536635967620095308912938976899211975059621991543992604155713452774803043636299543580640522153351174514256761925238856516997443122231723905176818178387882414247856175587461574108800896300659887657537732941584959163430525382971185357981038071167289733725484733795087791473332879453096552257306704889251656425637440957219164606927710423825698351689672726219367580043742855172805293601438279771366385623963218620980721848757043414949857693286964656424981088605349831561507722969893422570690417522337879599549142281766725815657271479488684749821822659869818685591600662129430464866588005524775751754124810115952694088356699082784435904706640891579164184703183511325394443252785039088228521225319178061436930111404208001873977428492384202569298151426907766141068175855649238281481609273805130984470507481080723640438664214255826245236040352877298189968076188049769087615692408882214457621991189419970525113428378565574226794670285946923586544682641878657331755541747969702255995247053996674738076962557510236603420025317581003551298688895540405168953886285532376048392004529405706736375267860518029912262476446780180709701189535481034766309315011397291515899138088313338059967104590190673520076000435474230270217926079123799269341367044933579542373533220605749972459319564482154604107265081942556591366731473317301554770344989307550450373452796953308797597439692980251034962430882787730946054818456910692123119236664002464490279311177431174896585165344263737005438055505775597257847436402660455353722472320493106833790158119568717945918898183106865541715809436733742873534607362088696240815714914948105149132244791820318149818569716192700279938662482701441546828177605999004903378923144707805375201212797314692510475680641074588150552805232896987105459025642305876505704281054403229710311122918025567349719219403469427366598928486908050827166168992321851319265511823655550700277198062546278461335681472718400464841931470958342217116938671072527157818766162203885188013197926235772593858219926968495238661964493516576553353107215500655352625727084993690214732526324779155794698146027640473312613938301207952249140396076105211548266832415571055315334956666229403827288943831777615901422387232176267007625588085277804594544944317145851542450051196821451157922900048510689661679078107992506677615480829777175064641678895465131532265059709694412998360463666899110668557050080778641446796561078378524467573750401936933019921686103954040874538180171034795352963137890122720839079134570566100183265540335973091717566137498000050910033863244402284738201931524442790756851447038371447137120722796271247090161227153792158858060449390909382925736570974135437537904244413530332184819817000898744548865954279209722015072259288017141775679525547175597551709768797090779901882969139486763452150756911291909340342749760690599766222433855263797730628475618889818190434317271416801392956177054915264462572281833922050282591982138893229973818352753583500554713236749116042950634163412431606805887241985979705632757107247451975156628809571468117525110632926536877139809045169026268651527181792719994731467119688222507600217095180770173803868264727503815590820127949155479340399639695790792044156550035064497851969246179551633173835431901426473852309722749856115522846957013718764924217361337261279191829054264569467205085446597885192842946450191163173631561100688895382123860506705386000481651527820720824377140120834646191829430022273548053870324555733973842351221864591184767403253249855730345940559975724405297410454563017570733350387497097473103765691259739979010684318674266057689765359147830740573141406517859866173076344096449082487532481242774740801694441265362345295501105954259602698679775039340011896371547549333069330924282947249087530711581336274834100810994800647922247244733667926539624558927142017380320823561171142521527282516739779693505044557079819840636493366841162360999373918393458525478741122960957005079235924316635664674386126984317472684036606909996992631044603497446272336936738742994955244072957408881578023068375771332696969863173087903316649705598812873879756458745130424679510901752332816345486438933339840691312057969922773451698876418403551079603253393802342490212959818890886983653366882463926445572781850532455874558192179940506778505509234706619641138814719571818452747244760876653358733005103329808980112667736244290564830918491011837385944210781337776336048847687195299090083858011620741842973173235630906847953739436455824269149141258701332281512592952893162600210593790857754305083798109045603484031672240453311345565609369217168473363041770585703213498237770923831205956015034378003574697324965181526985566133710105114155319079944104194706637890728461512408525827000519542566443035252602617370269153750621650294586009718408374905424172280791046044731929511728781928000318484997228299124330967161843169403195908485196120816290779320396557778710369430812314220694964521946826231604617396163681780060211876528449087000545587746929387694867937270238875015550483371051178189431981187238525404275137958627871989958922164480607197670597505253455522909511296215320429301566163842844937910399822975032039919055663288980652783251096346405291726011664340791527780858636397357157273367433100497305530609668704054372786214835230918472792719894764859847698909329176084349459499393834710883572233163338250363757771456029641545829593325966079091950471240460491346961638891650303063177952661074411892310680388568185412000094533769497004683307701914897607162418302609676549944031410181148091747050885937327795991290234605969794118060453317424816164409765803030355428009110862733939860523636821518949731381461860897551318512851928418558278234400587194631351027104599114280952901161234586943243342975822336618045347434545297831582299764021007490101059277049872096412250947379136862820303124014750821837873069983994883622959935242751257884790012003406496667184017518185916546185719443743658709254616084964698037518327145822305316346530487139223102446743226300690052799819356831190209553079932292891420222995879437024722465033560316300278105240002530350512435628015033436425341750171963653324392852632025929446035429511549794900879895564594437166176151719057062624274985470405395957205556932449047592203869774732304287931889377015851106338125038766481687267332090994715381392200862349011031399066584155243198052753393277779673616494876629969071135498524177891822080639781143533391225642192831946898546341365554624512388740703562724693057342754209270769146231454180508481637933704309057066736293037527201149485038662772720376942622366520776311650154760661528005033146064829108640651766391004862344590680566697401811563291458041603441585859804305085363613273201792997407879908896669807034089918790253397483032792063252089116209087286320330891544215084508595675781425300420954919944783097068134201485832476333781372404296840588970927612757232908697797937957062580430838231753683814427790525880982101472806141492209790643554950137359306673485825543625520031594683268890898210910920042019159055566222175058230659992278271824325467574348411156537089464633232883883765694328472429281779161617918966249839730714089908341609938616628597032170451685986947434393456621620439652016970946283121125330481992517203933244172300242218212765650091953839365757979798595518030728965224196119322297252646341938816639610340200884895183998507989437397358791315219889470053697986407116518370801669145575088520470359995572521500267397319853627294436002709536521751746443121240717770072113745359866741215842551871576569842294870649431208558401310279557273853259869646942281644878289534515449724304106251764130387746332264409291022497549766408128498942317020245258195585007044173638578904953798259215615363286932471836649329730917258715318164520252808352825533175487980045383919497083436199763503990944775257535758423356085858856005763586528058553479202475712729591730291013248914219064704045354677068949496795774802363576607741857881339202154055613430300839559339958780004955440050009802018421056771415406812577926703353194677870158283557953280940660912856730554706821224130290096954618411065840298976863003068924257875819929679380649089445018449923478302265122212810711617377512262109366066284529273082501471112301239461424249270380920350736809046145965172512686316931141922586214000417313541708889055086080281894802895472901037519335818127021147683701386063828939932042728056874814865736680758123030667543101993475190972036812759170884608641760422737758803464324602350855285993477862344889928123783871422446622820982315904094983335963407577402415403741687141334942075739829303514182277349363253904698191178302963362639323607420327909990544432151305931013686592763755328544337156760259751701254346123370511617839355609232383167122481148556705482982418894671996339040177278928437599746948062392979328834291666065378408667693387542293411448301513730289408257649557743894931027799203765700405180785151115322616922046499494026497623637474708375595935142285702632853015155679822839310893532066876160980589542289157209980687972610376736126725194027784977296764553592554306435888363700258233030373856551658532511345797932732276904050265480483755754158477387541519999265455760872223185907510252618570097433894259801163897456728676745640618033130305900918184341195289922596524638772190892433616904480682597546177469244927495996216497040622039332840957426163422304801685834912942891320603981885703581732433866202554566201160582988238299146067030548029027119947206586656509419293157413909006318300825259007772573869990451558535936074794847197412037679678268762488374215420730686869771213777344662130462271602365225728447378281854493122912671188035017538358692832543698141796933867647216803554038312336345106362991189438159747612596065045193140339127139719822873354377403848383570128782300179383316494262489280363764357154241963685614703546215607794425526424230621210254601561610332856907096045534636110233784657792189001369880858784695916031464194249770279464781899537202141374030723284223522534650923614033985410372057741024733056090273022435230602171517772975541953178210605812719636479352805956157546850599957885285098212515323446838913587847726922100952016272263037452357022007671386733849100903066728546888566816521825591204796572714132519600599871903758544758995867920127457329646914189312658191031391358001167744473843782914381985006324921381706755428844814427436313217608556843903386207828964215372088486645004415515922827364660571937659050635831505379611198004333657976096150313379254022427548863121684456657512473813648276324534811984116656326418157024052252051253803216053851672029352601209970767136594531105562230234636786611779845817509914901762302659049216964643112697579876827623357312478652609973986252256400401384118616310292968693205980324900096814967483261693686854492352519379040701160124482199591646716938171403382466410182553894669464656221561165160613663374069085684856100964816952901724861043520439511135553993042306599045878824294093729969664813628265098315608912664568231052901921716340731809634665410779974926330171284094845425679546772614090368384392614766992616943446822709554732150962150029781184332000566154569316146537558743958732462757871963410975171227858747143830286949312039201475283244417662563284926125445342296497067388806162862116072740685670950669375068588863076739355965773362487356510720869399705924954526506683592988165184826498904450149040481174670207480308776916201367217910557282519234747227627675517256207854933515248398768033923250863177295534736805182261043424912863915126489139096479877134787609149297487907610130922119290913356595163858549863910739796889431828026288539743722199584653232344200099007406657537077931674569783860753974244061438536858390000459357093622737375184377010772861717039289036939786304143311563987429148428418498064435698565755817867052090220252495360905882627359711452416421882214983918307808608505237551134124478273519039999468942953900450331718172670033088698954576338759596402441926243912272988075650566189390042172720468709921073723728305315332346552384335547530073518238195725107685646438361536227263811119149494065793339335668278962559208416562138518614764407399077079324934963140958790771267455588184729856584972242015408545579622688005206974060105388333389298322063311848491284623371533252791268815023238197606913789996414607569558021432228636063367632716553154480673542987360994374737690750272871150586216505729771234018965281604359577231246960578820265914916312220251118225954237263988976847706349084134098218915843102140091201534803008138667208641707349375605208250926304119336227219654162161424680661428880006806636696830724261685431226243169266121955779333688925908657639983087910447991226443498495126599285732929759657217699647157514349095092163940092733242644244414481552138787760139295428927788088031900075103296969208421876930316396887609501902334928337520144218103639554397277265107035321215062495205421791793095847079966189213517986562006587478764863139487758210277264928912958168027910177574543412833702174394685992228728447832972497866412328589440127577111724523864112810482521772328877286820639079627599537596013409137708638878235254229466192426886116862293769541595606437896172306858728071787492154844220875058701620760753248851610580894714889952268804129820394536464395056683925573697269194040275813118156908994339615978121505141653968689306243064090773034426254623556480070071872199699507075764263729904067236917159069454424159763796501717737091858157942201783304920012236465713455236920189066708184000776526003508036318236954450878431138250587933244188260838374033388099704981631156777536520755148826319147094413042323851116651330794711351297882916528862133112419809366277774346770673322421811186032015344525652977982655899583085043109967572521079408617904431152928446944581703031410657491611869950039372696539599025845586012229451452292030478932054391127628102155644124228589289712364770860307016218155475533930656975398402640850251291192591998258542701346868883350813344442081133888748842092613355229774965564438636981712316287391071580594499548081666429332435062172427221410261242762274992596655971600627356247375545261418378905799467217262935062762771925594475009136038559419879881576172053281311199871684947461671689054450830906879381135258376360477327825555890968647252706022155398019663476257564522851800543658149883154910445844128496060353895854851794252558590016090388637389812178312297363359680323822091963682386752699828263096097123144019667948607084123973837031699405553412337173534275639247034177838691054129894330563489418426181565938374462724365914895728774796328348357738413478046916447532592130156000837502656029787484036052904840487039464020789512607906468723427782998166064487840330959060549547476706661253383420467322944982950271055808055183093766977530762984897229105070477046894626187314882225487310048868867821762375436161852948533062336191704092405703287664395645835521296268297881696292351250689392605460872483751206799987771346259792273189777367037012917394520954137536491966085952677680606228329621670427387115747261381294808664075232233455247595294799696733488518517764530439957104994426953427947867549953505695227272416138179519437769274184155177309454521522221326723589425864411173073892529922386638139902852338340299966504980813749869480600484370446916753840352275851471024584148444293419386274737700849407027236991302206630230284852150851912213565604346253239406131434082517141352676668168154824742853200691525666002611650277058138090882524417949126249524209133263810253835338220333426863314569763485943270333309035954463606320790213036604235108052071629710164517207948198909881719511453144115412716310800028127114830693583683180657350622915645077299124209164659673495914444400877856961568841498957561035855196416821008115019416115624285381546544583904469819452470602686583439214154566131234220162102185766004283319627810033283147140734780257730161229995763335122647965958325529045971768537838617065513538952501872927780375426482931115491162438987658844176784980677336059827336259165941894466401492473534015502384450090175365905877288615024505876213333670875461660490326290402042668543290716645266789786368669832444454423229822768303852330349508882758385843794321957013501440210006745246508599277122311490732924904939686306603536540569649818661631461832057883042369080018859099763248453400054836320426663055580384967202103942317314426476547094214390854943047667296181527201320133817166762146459133225765844209811065346176966668320598686510117278696813309000028993313637953771416595170086834855184721914788324872636365935053876143494689644226918056720005175831976992313514889114531601649190985201503170205465040728593103582558090269356733388753924525861260749595468786709216679500054253990129316098532254681060543023635908870419635970280338105416733790934838173728216858838434322449434101551911177425275901344693169280953821282796085518976471931753691378939843693718569813415847497347873056528932774049484215898433022323453653461176318544232940004335972708222293543648150944224633599911535232919525039630579915605947516931491372646399018172052961974734730549611995555254306519426901311389761087247401842277319571924614759301651034895098344561983174069731259734616779459028515308586233868900366249746395738412681823950698663899584527406595718557002009924706979827078530655277115056362031516038804803725230366785479698498138276512422713010666687278057579918511558636683264116361060789066282384702502479370691744460300696855973590927536129215234901390900174782070830393555800017513317965199553212922661743277827694488195053684003367294062551456800453925576157334502325780163371055373744640319185036060421365403197477739400117323701223831973987295789734998736127201255900027551146529072768449277377469614963583042606009463264191508695671737190118850251631757204620060370525302618011208958531974597994539119676496765368193648842872333702614212888984068289829432546384559743007210190093041993939899739104708796491762396971902180818255935858520513065214270974599678416589473572624899702388093177863228197030780944167865138407242168233408369579217443856421924980973566117433407530387818809987778028290927892797482849591537700768352353950887965204979782358236670360015231798547100699285099818138697240363785248341951781791960058588321668564395682373568829946019750092558202737813806868094608821934947161454287872789012745271236424402887167027951115745967550760687054933004618827224368459651051592910230495344215838613367671980524755954830043437028579934016692592510627571878277745301885224749716139802504696043093348052468098982458515682075223526258137290662691640583769130841298281385389540162886135597962669281251528623205448128499165169099218476850085513313905571089296447121967039121057028342095081945106413422675113069206745522364042173559593672810985514867285662466924933496486537688160017670119988344429449546665950965713229759010958479245444542238406124832664244998687097965891088619962770473729577345525852299031720667962891167432786557395464534505526792580258177795551266566512813778110778856513354903448769311791201270509480514826198166473447062444439797332817012629733860998086974282815033129589276115704279525845506580353986940499506807388890945721435009514481674506818443445647508794359722588515870677593375317565594979780675699923410304281318765381887949525721559742281231680440640033829308202044490111596719714949698028165754561861699538032345956162456697786877443492235454564294417011034907376245825997047617126468150709679149779293989636033041768370432795615747260141205888920523310667208458620277041500955091633082955796944071413188754160820711502654903113335212474086279734880634975935471746856865745951011354360966912919903674643694704862319378794201660392041381716375822473691005945286870269029724762020016573521801669947315623745728564529519388611871877219577495492031786867416232195213600087828308119807300494504120851374282662235092126931086865947056503832634752950674021884711998704881436637793676119873922837175269991652068185231328885932411993710588864409959955929686167496639309541185054782406456961924054913445809270896177702469361830840739935596945047288366773148873746647412303284913421124097529846244279980406873823174172335090717023929312049047898518024438916747970672163646893337073629035644903920409337691721856107084648319642002537160764340620512787398482099365949021158564913252769348795599133387730489114247913482694173850724824960498742396695982758009923261185328372031846799777365807760218914551774971376767129912882059427703950210929724948223095690682545756053687977166646937985481251831490470993188823337256426324595869029339191897797154539024271887534224732505875294541704968827890357430216301438284769657459133639909033145937678719905708485677807957991462359324715755230559430506069530231783244321964581343163400998816245236724314170162044052728294902401783899194460788742706880832288915056027229619987879202845434535136830723383773966061311502076255990191853679300616604534599394135965564519057286049880635620082926782317765380450929312584778353798550121545917473948058205071978257855424201117994890508555391509258701080280937425421081828127407158058361189381330403509868397694852369616469291173463732883352763473789514424377077562691460765661528578580353990578074973243372046800859652510328759891411646368611049582338388918235804138433589597891660076324973505036914687673531229377185243990809013306545136523722133937500433753864377557077644061373568187644118052415562292903156832282013302325272919605531957915639588918007268210084014085356887314915201480494813321195645932476780100412428040072231128618510261011095463701638205651567573966553716748437691395020850626398238522212880984455649862914166572908376509194922405889637277005821186659365396073737450517104032013551251541305032125328804831086776654556016055778771976852249974258494481001426889519855209299289588144770456849253887566127133390280382460071725343881856107177819627210562194154487218115557085654028351135908908696302629933368678436502999289165223836824774052800892609955216611458022529303667470290879861382330811984307981020764756507092459084525936299395683717782632219829729392393832144140826504394751533427135467590158365288001703562549302681894061213579850038128058478579848941207003329526089447652795946881133810686998011911015787140204379801600353697388965829911170816723352312052087137483352874931477688399250258801631219847728902011475238962385442051564956225747797920452791812419768980304317867491341624125955300315082193331233021969584947223869912280546598961664649612961794968400793521942323674184075402958182275943469756003569520020904327081011499440103534285797586931339264055449405270516170195877394731763525581252880611263207661178873116939280459464946995500627322284631332366806587392285220319044242574911922177513019686972522440209541611041744294977413667212445984204542899400216659301407584432540425516967485268434076451848591188396329452069217948461496829397454337381881800698852157710679175575172891684928953701681339234503961489132433492847867411611407888641929465600254161379824901387275456805613400797573871499923057128457498642235088333172404266306055259733264888359841066346797144041783957539325308681172408784547836997729099807025911984145649824144412735790540935768365766705448570256590112591020467532454345828348742155686450768992052207534699298446962581181889069966376436899489217788467310159059583559355245096012482920844383657571761591334811184377570196086421830280772985524316929496305892527003823121854251179676139660968260656872129643953701808507231156480443477433351521739010192596927372583831537082949437969310461813264023211523273211479303983486406856783564578714690135753259117016230889190269724810535023072648476699058134606358437654011418023197105069907658971648950036294838175113588094570893271725912396803473871046497099755716804290163228883286793133010938063450197192015272575462125454480292341436222386327925321899789324816686494701220292894073138124035383084937953116191364988196222316386321470725484236061316833807203508023230268742881339489834000912138627987838394170937203747371043093756402680287273002087679175519485837285992605232717825980322074265528462634539471001350205152647109000856227789522701546480830984423075646430070665779815896532790838305767063011250791562029659288390412637613309290716874173795501867056009240555716432290321933686387552401625623701342158432180324444109543551582264160838648564988074748116840792085824633613262469276228853341250920268094918833780314194790099692370549303934901380418955702470009356626921055180279890307009741293827427984436532015911473932676325482411074684842909892101660365642611205611779896521277165234393380318591918103710674643328799212068451193648286248383029628975473973768810608638165303348443961733567670245716527688629749373820473245817757925695116440393529986787297658375746640218021871314470065688636182511194576993743880360146849193856234558707749158995388007163772725977210925255206359678434626386557652244371030358080269447751630528855616784610853059244693497604671321706603270385655110883060994088308057311162369462699215696988639976750448577876417257665646619091456868563107965196155509506632769748958965013416662937839752885997018027266002338474432726431745338252120619925063051701751171671470617627079812877592424422539844074404964541463284833246230789906807139232511267526339370662402750945477920054140766278664551828895853733585902014361807494639124822928410749765842469924300121013315125026874848189088436141955869587383651058417022246449438404672499262219904482228929854598786177027454724708116561432570913859529398963747451683592066842449892900744296169904900752665546961367365202638474735428630868668556204510280083217825248098139934589494186688689173213422151973025582606350040325220905618130737029015793495633912504491181073578787114377786567315596348222620499683954386945810400251569900892448460390227222980691635621892257098401459967582552393675858846056851151346868035512048512387588075953460187225330848359073572872966748395102991888184203327556973843196083370141511838805381833348374381687089527702033790340696755650040764670081093145518336186666986291060709338073770526692440067147969602571227289095951076137220401797598818310663783962747952396917776593101334464236041910953740697653198066135168322978483736245715381283912151936772634211362548162814537211367863488998803548501789983381031018408755679653838108899175619146152826599731624081383867724469444676823976151315081136503461193605390430967003344866169707153610849484496480145006088796803120182685513006116860150405914258043604453481210054195873124389648478681858009036802575668487077617891590620317105144738342332372184660773245599081593194770643218527189033860101639678118312628665913545153623061924653073769042408345749915849396845742935723346797056076928933886036897940990729533669556934965401669339368676630434462322188373658696722373219946919380681699482994550419792380716655268266688595824819519722171628221484832780061904563898655323753624646014717538436015094362688390274361850408462592882095097577609623810127719623737450266731334704902658533734287503034170634415228363845557187613282886174354369988098956691529704309595204991870727905100585934796576005714287507677940758583283145546295759007540830810574483848956180881854695017529628914695743077976957682558615455221770799938700353124499890291907090128149945657146520490365830517592262466073063910054163189270348464620313283026630024921893482915060939077021340143923819491917504851845509433882692357038385586565480389281419820581475755685918171003485835274706990528429319458348489898892713812004289234169068609975171543917258753597888774136870432562635297671405958805352726892449849226311186565317495518320505428240734893366501461582383010759065965269354396236944254056962248165850519612749894914280145539158867937036558660966660232030713808601821155860638191490687124986618117852101413516146414145242555796929872563420330725985538305739442053289976236583414307522174906674166169129575583073514589609599456061661691410032444731424741605498934213575490150260819099960250404163843337905091480523000134181340931313738531329355613204416590977181701166478304670266701918667647274216262110200875613629173726304568120214796034382248747821895253023980414595570432572946607714752070559243874421726913021843981323425084424228829327692513104134734125745680638790399647259595816168116620524180650736273977226206431956712063475646254619063352695679829490133802379470186373869775093674223832457831191186578859875695280183344069033952682614370948970107750988400028446676510863488642734628392494395595631396770953147769626032357960617857272069792986548111351571206351426077841429627210462466292236068801883508609731099521274615701975648261645539578712758656591961844495146393462260692334429149955297373910255612432656208666385933702301939738284905242765957600295208342186059582518018636499440381724655068592928732899533422780256099555898477604512042498082649747094485987025658532941142887655287950477847064332502662741223005778589763712689854604846593033209073255012792013311106436853585336669145259108462092539788243894133699209209185128408270503267345234827792478425210954046044005701579114086609284949363909840410295709754898630850156572112036022039705723000891357139368075499917943144186458797906768448197015254226990440377912814844415692288416388787079202382634578526739720761420859881566912575487953539818766886950061623665338650069635841957265186994204110313264640573246736473169888407991337234111379773279236023696025529763586376568237921199022425060712479811896037423946720855757192685045297058115645688504634127608105677896136792747889649492866698504684287963937705134654974384525049177361011876509341158231345204407201701768215259067086213301748775226213031367107069762150527717537263348525098126751306864384963424558659241077733151574651667948294445961501650769966012469692993062640065483517911428471226266415556060013588704223844963195054586533855620382384861760458852633024380665158749563746609665078865634196026595624565236009805947181124515565477470295261184361385382791323597651214498919768974092368966969406066832144042813920459086532209039787747403216860550286070663545215775323955584101921307907837328440011160906066935240161014993071175592056251165214420758607838270426863953083354573289565238175983533646602960279132524693725899713650443877694965432110263701762228472224507387301738602480004806351764340465048775687074500295599256444285488129646582072987275140789804946780500819655487797739326599543892283224378008035069598382729069972901015394080589627358252016708413679489549184944313339149225327259746466749749142414380819161550265437284654507426496667945693593827019094129812537233739758269383963905928736834840559092517059686246662252234367751253281310848897136237779978711517112024992568668715778896605721405526184197345720205465994043692412869291147766921153102476673799201824121543606220337478167192038942257340460081060396623682945987297492977142788602360218784979841015326718884207601358317826079323747280603522148201177859467932809598869595623579644555954961498790522855902099150368053624262060384435118813764463301707510679342565967058206793959044589363429070596467910417622030190982774723515523675102706738615353908192765348882677005548095925665852362253355467517769628755042309634176249925405095218747602465081698185158198730858446766638088852423919574887791299786306854120302252760545144651535013445392689196835379824933097941956147218293419442779154709575590739577360593065422691616745366772485041409715614048211922551472655295793680526026103405952752039115688376948089055688387695060697997813571523341999717857265827450551135649570299698370009335838714341476920326692548750001343132338261360060418364722381675801195247262481323555024798311801932142308113899919505234369784359065128158611210110774144683266780469097882783185218122607762334889276895216525964170039615377719483652710315382788890558749022771447978578458355971689752930720318327087109463107541858978211760245853580673591031619743314242175029796744652669194239682732706324401451111023868000814989710825944934041220432767289490872783688970937000734741130764374073494673395984744473106549004033515177960150442305217756251537513473484359761737339939720590127621017563544726423461923922990759836887415629599665079889607723811027672956827256462404221499991877414115349881177941551804684371412993530299703813906689650148382694318670405206341598266734597843743126902645342017688797208285573592575604630314052001101074524359695956383623216849980660966310841449787272462318294361166848480161383395877735347778786464017175309969314573763446882835135219393997703877665982764894556649770414951755793766077639736691421524017560600797581645413316455422434763167334739157967573666524130534440253828570510511580524412233926982724383883915617757261637908370235434244493702656792193614116803366235995759545165108472912012204928453330541596812712270802517269704843806808636311505900716839434540015000136734458298622226419753050744503955258193699347034388284798678611057752828987705449214499526683800419696956577739801324675693271623651094611283459357785908084265957374868388519812331557468144747319581557345142668289474845571662822408470484385516830036717616031693061708120762138144640992441700233469932019083586907013009896808604011751378783792215098440781196735527746932130188559281887083554266717897609590776491985436652714217813564203645643692700967347129404118277033733608887870551940489047369583150294267234438239905239571095048106214916001635074095408581525309331991398019320241251152013357279677937435099129669869601393994229931535951504310885785330614533837063014235609925761834847622130349782245383171501559707575336120969179748221901456880672127766777705159924384837950251370711148382511642125398705287802932566728576334940653222811436375341369103556120466154778827004632089082578445749742705169186801466189896606789309792910386116760915891934455577423372642209986319972871804677964415545920054719341880682700221634471451600241647156510583921076943134015984013616420534080151587927614129514555853651198577025237028963616886041441438081017372503383485715340170445528089923423327862085953158881519466648567579855149849065819306059078502594397238839543078970757647199757637732364141705869607057323128722374353636976809710695402128838639929566561415365166127841125674047616183660304558101162775407331353877314706778559804573118621080698401555168911841261322192851313365870580505703202234274004572119996238383598370417616947357035758018494827243652840636169300981590418544679947119835658671511696278513654319164413493554702704848874001462396321179940093805884654636475158395870378722699459031139365987917253766699448084169211505145141938635615530008457111064229399473994510209423417035739962927239416854088085430143238921295434482849265103275707862734306091545343413219484957148318797391796569631038497101143677161859648621751132324735620581343489245084662335380367879621733987257458075959812783722141854214991687895638154058393445845071083749971687788858402750032046811196246597888833036834200095512414493519582841905519581098086483249955756910935540171606084400113065544664303896501665835929019712498427230947259487245849791302195810656153590986971138281445236903883231905156161450613521164821581411095428608552434127391247537231314828480338598183130138112918575480401706952229802881850848291079060176798479942537637734096776425301665581114619044523126859688247284560440154939742599074942550620789521885567627918027045568034014555527271625181880821844204180134260015403483528479162090651425560263654880469828635025225970441630649807485948899797703263840875946701535836679267854529086344886722591990442078299378588194372828588094444911256482052322621082085780515430099394023776571167043863820183669931710583402460926411312580396641961715274630947615248199842146582248455484338728048354438123898808214192077292650748371379149835807548168900639735770734291927381791881412000448209107597921036343582739101129842886947214591943870777884685095897764476240595923651589144058436439913453516399834271945837596002674233408969503757600280227479918517933783542991099049445068486594648251832182975827358724999660045757624448356237802268845950096331007964341691611149006699961779686209587637893677325414077236794380032943726518296489875952168593807528795756824550365854348899519737611984755985873914363457027377881232505920737888915349635122520740060739153689146113689536747626740909650316269193509339269695949336788095078342065756990083496546656716427633116694802743209082996996927888062369011858512351565794813808838785367561980497201309173553306020146846651941348722128589330425091596529798463116882413101692751721533455619538675686470918643781585286412430438898499672586638806198104313833311988329600201404740201189219766968029208131154875124159829196338500440515755059701880880282587273903661140401621814169272681764196044393515949395978525143464721144325385075342457840345586514340939635190778550463077974811211825866894094602423104792878400265921064191981970503300815666871247117217248971784219211501381446739617159314088714116439524185006935403030801384346071550107125486428000613753433853505328130410667691567122059462451524240023194434777310049053576029028340822252911304220776399012057294539247249772612897006564952839532320680435372446677284842090936950784514899794627125936204121463851769475281502459011980940689162882450673590327766466314990652874129065244205986663794488675818404394090086694142211080434954600537545073427190364644222063249717743191353127712921933215555694577336173233097681111335875636890852205894042324470059156284203101426789826124359548755079094518253107360796736409126942912053617973687339661018077560140664735811861393507867509568388940586642158479034896000935317726403862967143725771106587698035995691371657385206660701324977795829398973556269581250841706427102313742683255321604995039485935790284052673946208874109268814179314163829717269467057906962933240756169142158317619787140019722357960605714941636886813422786184559320583874722082642119612699011242596207738044288333765147612630961117174512207995772687011658098029064843931993865751057297231774760415972368034549797009332850770319006482035810811474893407309619375702949805076019555317442233868437329867542034807179453223170248176828756506153563144181950327098362334046295014189897930851344518926458137304176534170831873164455410017077751200698902684794576963060791679643428800864853336624048349468229690924153577762505850603018597240178487001185394184274245855272180649796496143272873502391214749529696516245883350319023662581303030602223774991258132077847686216659116168012216940290495319123036712677773530521220611154919232271847750336244247644581882108317776165332486138786959371627393529860909255307885395088610735365874788625661838547391639573241397230576232774826947477782249482496571742198008397047839526913606982809217361106017720507206700270048318981955021804679949756582963465142470510646353269157566936119128676306631156895451768164409349433241751299885462270757882759854194744348102054061651178549836438977015282157258719486992990612550791662902151267420327753475477637313748939131201745324804881112189292127552813021566223950055700570696815234861597572578012273394784055346531714050623710447318085531796509380930203069514166564634716589693727892612617786001704096541433650780554826378174543625223666806721995146616228176041216930781981725434661896370896848183560021413490769453078537765139635635056332948460131155529102196814752873004331691158249751105121837175927414430867799091886869210477912592473324037817453324166234625743979252953856546916484684431440555320571299418062208201513497774415545091508844525031445770191846925939452185239118809912530172884000308524980370207314419878432073385305589881657742775274924603510721027881051330353777188192378599485054053721905004691694426254979768993127919695394716938846979315415402511241814113490860331665337409516100199735256819685632022544226704842668643557430909629044060900422891771871698864737444517743130569362452571052811004246099844997767814039484672126551087779380271173943628706110539443574311112229128295408313005507346031118147288612965091923977433876830554626986972709391461176689548029442183571133536108387423375663527006826156888149437831031606284625352652047897005612400485741222613806107845597763950213340525999141652762368578590687310030847559814497878040957277372625070298053130031856254672397408023252267369436540988727245923845214639701578303682396649416862741752470353039805995922901371659516824709854342461291203694149147228698862441849848052722346183130834788908922615071710628654534811950163444070907092220597488957817866498834017614317953014379900186621974288213222824991721208375561117117045223718483760815086794134113049886450329910091161361642611198073120987730811152494542169422778420408070370117648831860321732416913418316046698417703887371398461488424738437322320818346952160372560578176142437381675858744055582298310404056270252283255887878559878874658487037007783014015246094032141564327425788072227908386310256647487327370254684118936193439286157404687937418602467795314363886117425361116610881319157712708846716322188614630058025677711187444886534894284138015451983006400194968026273566352878009415284491043964209081465076439622369555442062326427953112998617637379588772612563145186468815282675394080777629269070411988085240579308948272375454142745189128475387784293925631368653580956279534327192924672232310717991981996145241397275442353592493713245810499125701913800905135626444177429281119318057753775178749316165952265729041367148230803624405013737198938015683034283048404026709146940614068723390035422933239412804302435751525056871306761783056873805336746453638121165697951747361087334100059139250294128670747242013731960414426678114117091434831293756462486696750205359965227231350052717039545842954445629863158034154752184548985438395257306268153121593006941059879496000493089679704833183365523556302891810658401558152822041380107379776643696732927225425151651808545010391320477817533760417400261915832378728392609334868703658676907985304764447563471267872442317773841993334214661272874308541028017163570780041671815768934261831622808888281078610752269602960424043303065834273840709736646591734797464098233967943441763581301455096655271939110171826977629650589392748799202526423786635912513394318665019995439105689949601583556324498814390054110415148166950181751426025979644257974939802261863107586522154113404020243916627495937771457114625647729203103439942478704508204067630692426033650449421029423065548603195347154363394298160441950513383804818210392593722699819205774169316610713589840093074121489582528744085382597295279669275760505860485250467247796321522825024568633584452687158821497227277807994922295155320822892386018972377186871278373933186543932756243082934986678634725125254454150116572959823978744675023624933436290312538983129714461345732105827918564358250495886615419119384032015751751511179230601978456664785499999603416386769367578512549108507409008075834911621112318632518871181077522484020858881696193746301754911374824685263935171660090147305958172338780712416020693200863317236109151004028467165055404235514320009529109398380766774245957739843489895756234676279342006579052302803129419451446537895782607301435422515425966097381874305441373776980291204202579310701422772567021627279122545544851031691573254372978466249315205618598436262073951928719906130977874978063486883078255160435147921323432548694917105823243519492350342811048219125632791200231648351278413570901808847144847859839464385671704126931576643036297861155303155907842061361468857030716407525848118133103278130441291907554134906784675780484532056395817492741716339252653686847572041754664360812896289389718017394871962038097563765128976146734343490010398018215678797885887605793898889861912634334301385503401242800248041024328577949927043746592149629601979051973802885707392392460437876032841669742577634970953208935254346406689147217260839146383113426789315134859449191214686897093822010686871455097451106318681323639375087466300244478976203936215269223437965545070720440274772381318185774931958051594196243489522878454765160589981707895226919327446623822220620159453477307749508468144852779400857580128385689413971074546942559313152796811388509962853700065619538747142792799672842709665066474315763965594090712367461481229408064506508944452507395461850211570801998964410680770203886326726144102567834523860930258174683756633154331655163418354788294700895060509693293839236761485158061730473356986693897748870889605206912375886785609050113619889862438778724268359499654761445392084902396819298159002190500631139793105387107222508529716115910483233034437747811052668600951306792405674718348160208969214636739781347166860067509317762587209342071361095986871580177091375928107183276628689051859402231834252673796995830970807424036879816293513959024987535021515182456100570870939703048078148714215544608188245258187664492159663293532947854704878528056232245590575136495823340411489687012190083338654925145682927500781574564463366717995850288748424504860916174220747650507338659196795932909118271504897286345833796331784431328225119789811875111462385188342360697330649814440979573830376066866402122318255005773983431626761350084385112126373741594278206865039257417528468064130480498301652065959627823232528865665868762823862985892070902151453296799447007546397651436014653972384169086204943465477551513720414245000617643909347099349575649709695080391669050585013089411324474459212058497153392392086927786772485274937665835204232560558448836074230405074450328796139485943251371457771857657540319575639584232616258825074316586320101083362734992847780817100480930246916475695124447569188412259639356571167571661721369974520031522515065364427779266618662707033730274274934993037410073406660243355720641245500990213532408276760642456309579861220455327122688416829977113468976505913668111178869187891836662936092948813023314247597842221928207015757199344044642771535221952946082468007199481923018498505568932582800005062269779744230549925486144671119073956986606019549840516353746759009062689109354421431770028574747713638880697341994096464163384499344343262917515520820553848526652857533978687069078722616019053958567283948007202566592477432991349718420398216563491062335595151161163843300909092436736549615171271319808627796952048664060547618920482156095808526557088707756075658521341515868332568652567239502368910588498884628346010844764101457983873325320191216120025896953242544114933802933455062999856161151819595806282026530411956192834902820336804822005059401251916257534990115692051910947522860711653346890162174214961860898088162213841643901152375662665150391615437648908660248348985125813664739312125103429257808471961451232389988366380663923171709646759480868614336136271580734646461624231384403148500661479619331756893500313782825581069128670885438812233705097864764312435141985427161660151582892296188390164976087059452225038785973704372012040550354954559897633198114927803419989157803160447816939133743100943952302611863248774532747702915130845351854618990419199314772548961197045570352186701744170358902671774391420383850804339960625314381277252442172891051301034020851907877065450876034561806991861674228019341966809195262830826613576582323822884938017480905404835143993213558318392715840502660201872874615466458979230416004404384217385735904415611280135293653574734673442198173019823606228056100111982343754318996106499404347461761285369396819983865924545525709975128826097078255182633595894791980678894688314741625517840864976596229114567516138511725562923482567977090905491126018433727454337549221856985570396539692616946757152323875114372604420765080913147514723327988996493855757811406652808330757117877836415671932076180312022280558997854901863618954291109269228881540755715049558830493054360978866652594069134291702442204040833826405220711355503389913263003008140945619947551502462535316687305035648233235386649913895640441836785770214361638479472612514273053397397396605685222219675851044234602042647876815391730711300003332332819144874450145397308080232636203006827699031345431842841844759574453956094849979079259483251997727400009488336162568691574837854958487533540464211472149660224671045982058521744895830324452536488538590274674837143197591486831781900590527410087595726843896215604801020902910791693193011767869396975236729901915960013317797625740300909366493497335931012757086653241687700702162061255984763278424740497213142401138666302402778724195196444252122841241078587317501450572636258906666764005329906420932006872528259229021111444287834606765539951037535464987868053096483680766366783848308491316074700260768747597920031019112133363000400119885111758944516596613885961458036507288514092030416222617337328047799091160789421650321447476949809783953402524337834893167253201725745495706441451573753398288595709395905647861005668497221384839204738628757992447612193419652314958219162299911683404475663109196442337516664726641207577748757855097690359067150991049087931192820057679927618670327187057043358786041786216688421116867378766855617569485958997522043213471635114263393838611108170219816074529883128684260976590570920734353321743699272531021543893398592659886639542920777220969903267638633515494713427282045654593506454109510658290205662806877287289535602596580145656551571455185556982475986220286473945069470695590296239551811053366620318572787958974655472465583581284579271689447016326943965295874926340536441229414139650555810163760645068503754412561446894391167894623551316717615191423329609010449907410549134685989949301366088434304857480431855107582431311634175751575556932946363709440849850706278785917744555308300551512997678979888301437127529979028852142403790791998719125618875864425582790755872046450134350028699956154708120292095452635058670460702106566883521689696145552814836723822308088359066284247371812255943168643198313693974864200039952754342357264075443958124833708923184500502576185540712866046739246020673700961628763783072160723698482027269644558208708848315714188743289156621157168531329583876473034846420758678521475027503405391231243456839716534584207718880399523936105164007056395490286417955383634909616475321607285321760376417103866096121348020742511652210360879822180569520619345506225241648423928637358345411779845782378742603873925242406879516157792871663114245273353649150580529591283164706466912234941837910762961692207260165630399073846167419945269112064033130357868371811251525303550776699466452831745996462189903139517276196141648562881950917748049244394670874992543241276129047368414885276718911057748342358958564049871483509610461485085754066176016681049766983036029835040683952105147502915744658064527163714714005957858260779809793666576045071121662162644012756299635825610885483850752160064401511617419016260404402870682870005806533999133032213075635179393322357443221661639403443605669191903034426445420789947964928251757754384421317299875360362129954753787867861100263034340487187590681473838439704622578306263074135322374280542325944519924484327421971758761863823546119345795667529229656489362334172423954624542348795212549527368515573939142402329629756659605937853442112344838618074088101949471963995741313369494936952150003509091209328149657593113542239689772328554217325663354993429960531743885706779448145818447931088664092018524297029407848772611492410182004738899261415948134785147090035814514242347987777980286666549875225177424346288020822834331581983570011500904157212984693452615304683886710476306477860403684495464403671763312635342757654615033737786825175710615309311032838324943812769244031239720735405388841150074871518470046890714199933449962953232962724944792211744452928968769726283159371052048247203378684834313433261232913945643167250756922667259486072197840128169057305478379021417354613222276134788629563570260660734032088556248725818523563160908250801519807332698667197701176738238988614288534493135689327662234471010393489661680314426235683456439372141877876459011935127094249210151745221964929656157924639794875845497502521391735306403093734225146526144493842356756405499519543460820247496983257766929714530216943846589869372644460338722944634822661527340962893201545321058866870153007920615160820901916547607121172549666538267392174881723043965301193429944910609741659449735565078453931717633705579998670355930602689923088124472642491988975181639259051513748797655141542995276989523322083382537171895089667824913583048652130600027073987257182958218865746110679501678868345769411874827431561908048897984324326697262607452752871387975135177865056852095525845747246310028321229431279523364967829918725807534997380483338248276146384605712219849126642444795977650352817223711078503441319439392593023739405581378531959975106022041863224124156582370132464007812342162923719270529152694973489195246263980209191873426690322421010575010534116186058352382710011460326744212090266874782270562035319163435174085977168709335887084902608574507454821212458483152352238436700853895146753773722381886939567477213045355555585188189999727122970370084874962659656829232827130008436647611400342810344372903039171253144574500575904611880963048391257318644670343453212553872607839606313016353704304928169221553110741167992735733460550575318699809479041541830219659400885147155259305989563648190073856927364392470064952859036168844191996451476967785453533124865560460220985486336497458325370319948139238473514346393913878196412653987390864555095357867268784639754003845985005293872404605924593410314274845404074643523296400485575133039703677641031922806523667855099280487655783540501110121041311002245269169917171809562312321081656294837566935072443093064335119576997335404790785346342964639760327210646965841909531982384424821406082949342080922568027404942570636519873539279193022284707363796083032321724882895778036549570465621803935101505759712063665455880876780280975944894243842272357366755006368837075128434252534225898340971951766070791704733739851885462299453021298785371437365891256282391277367429258200934918924287536956220595763515860057264223538174178685243873972671363114435838101861699758590758734584946106688761034893180887723343817471126239334133006887054515829324138164034112227532760831352957454248662819605272170349932638136621051803632281201560083380570909209109071599661401863531447569783192552614464386828871386299432237538715486910214995688877698965139174650427375495277285570824665857263962777381798988604532698309923059778155361671414054545079237897048878856919745673014819531961111127971867787593831523799195361458095360746968362200898947036086109218809678813084680568508251835076315642798706376603444794801788308336789189245411335925922650289190360792855251659232736223508519775405254794027336115344530342378792899143995084155980360757413592551355264727014017775362747343411881164463085253114673914402683202076749827065159650776235879719888284390423384224005686797110138376004459512282647761486215835997423582635417682508009519899585593147870801871068172582966337392584959246518469772501888180284668609982378565707399331670424264836498994224712595418230537938262485939280224678283227681712972810836785883852490081994309758898085189545422778176319645022389073026434040006241738815784023157676469695435288599748802805105187010967209728904140808076389723108460858826802668883637050710877171298363875625721250513359946158470021035285572321811424105909775465496128104442142307307460564277882285222741251472033431717233571740326476978268567889230694525140286600579649967925323481331820714209522928718687923390432947128127353862346966756830601416893700719908841594793677006747804231939147781875451987325131913278493964218517413279959012708418491454139214466275194881239972179093558087173871318661758503676018025484828804164603282871962305077980405167010688598771768480265191802984381986275181333325070649259486121034912497350048279390354156589379039765704077163312983884390898750552324140348737727241051207640239493041514235774739753253864894570324223921845061626614768506889147270441190171005974475493589434788831919682145769335727236959724114055039792470862258433904064362136806679562045350062567469794773472982911523538092239549203051583260193506486606631428780630651801317193237719160923029883512286376794965451593083570412140287545111958129308051989221061991712193639780016775288335215074658675568574317193700371299330731097000460454797927092757354963601235562615039971811318675622081921101014609019333221051242015672273704388663869645803544108256368748374270300191745582588786833142826779635287055593347011951128768994996906169388967904592724749241395935297610647185935290908314539124023864595455675053133636316345003311039634794828511364792487750856763370971067837070553271047713070531881414774259261767094152917083073852321126878196833886606899737473222978322613910400846769296184913535526624879339168501610615583230385436791263053681363909226716985709182382421122228901271766778016402507930236925100921343214432128583459531043141862334486010977978433493501566653209686885141649620857183389332050427253613448155622044233591566976267634554015928100157234009491716954708256643635942512185838883577107046317154576419172567173654705115208215369932958386744998367476474295085271985323748991199430748250792794472673545330001949620385864283824694938891610008472319894963354555743076797835514346595591165575159398478402944551536277859182113864357892556565222635101156439275368874084783965090520015077904053007204710642571953199334434676463260417747157911109325298954343079995520193721570835508990767917449134193462865463021837434306466037755465841647400536127744447044830332743160345907941654458547973427034280167508857714632716977995511725772541293394148156289825261443791760414466672207710175573394569653832613195725065455166202221072633136132747794889317278157622977098148544209127264287089846586432935506565888464779128143649467337540159847889892637740588464152661527553221627661413482053077088975580071392427703249163784607069460937977304186011640918603438535544475144899921820342964004263770161769797529718338507361889966305842875673024221020492531912456979079419353901763000470343188437182156911763509653085193935690124648073175926234220550632139377393381640444531921157736614909452956082968284640347612498876167110581912250739178192318078594588247078223891321417354069431440714740767300494587470936598703670662805132115023795205112774824530727379228481034542802218752465745208719181659060958090145368170584684480055885146323253024538648997206942474565641421862762635950121460632311771417484008045802477565397931565778297727030701206200240400916341978438074088810630475824234892222582397206212073359864833057493505512541498355301169197146972908114169349463763397726241395705774829867464396847496349096606408425881976633702860454254873027961938846680905317174417259147054885379767593220848033788450943863637708773388258686285559540887919562392951122114892341232647186552013158644118464205578205343907150884371376604017898003842523025949556562199070326310006993664642895352148245653808900570534848513643999038005303594541435592746843219583345966692419962987337052606654801318514665065175903694087907659606992888337177105652936315566568762364533966177111624373696052256713156524513762297888884278638876189888780050775906501037628977212028714554331526385087892604192720890382178935981965788370138192555802308167740241625082000350450803464908113185149278614239240918683864234626567857934854670810966038122551746531030006833287442818507754144222605733427263383626717274054969582973483762637413148599520648180122692915190600033762267984753534440525739803525316716084851938070644153276944682241646608746390641678662825862613911613899349065685803627851694039478660068553942533101517751040253166419318646907200914370566884604576206025221732199669747285293947708571612046213773828184294317329880873352279023554590114322807634091630850527868764203199366643769135436988872361262965687003805673353949684003689648783905416296759683782898728406637654296421442104822629732169599363378201150018517575819267449563287457163139029092648563376611829306478248137366224541532102941359090291868025947105660248596038780217011891700809218369567654162486169080718010077522842430286520619602756111308534534496121065249403217820945981857348177510087027534193940281887014430421787050060133392051407758137290149081216418935196455397177938660084998186391162741117192447150251953016168684400673666374887073874694187863318346926735611092319607345264640628614593816901060194872111026268524753397408993367614128096649337860770976880880105035684652221926795834362120791585640122568643584226217393568398488463082072162923202347826812889742023352391951609562560314545767103041454473553695762613618424592097089639869027936118152576562911304137736539840915678698712712786076428981012287498130272158948926548276344322241750210635858293200915091466722497735445399577631351276285596830925630735876748994091311643255337089556853130410103985901760978838916791117650870329034390164516047620407299473901384391875782028129787317350632650578582215130512547299032348706719854388247575829556377277505114567663957267363474643045470044157330596894248401380251688246895820905272621455111211528884942008126185124695859157188404583229555992797698701024876002620195826241670435398075402254568359853618662562722012856182653297081790092943374386476521664310094284195595843544865181967780986220671498905574921623698154587646721587283694222114132913047266834277701070544123433567736055571149449102642993194133113475605178426189188581906448559422789201111330093135537931944437882642268653036239931942551543149673190833369628984472381564545540970598352792213407374466182000191864860427195810394024715678748700069109734057985587428307768367003925088381093736687514717181022415247800884845702814568918224631626680158238849433855742709092424857086250331422080086826591121193953398909235134792353915064369302909970233276538775113573881263250476784389753847812024267069429778865489565488426193308583340267755267738789745444260988904977548150149553755787620795037478390013495706394101431596207135790379354832961877721408785200771023870037922210658437112003232649006762822695345097298723319224719654256515191901151254047635256520423103664694909174994551140901164944949721100785293794667728696770658681109208594483116200721073609423486000173920543160072340230313006360549074663782530425954532192485350746220916676953970573978214254783383051924382613947129664096367080941739018581886083476584787664484651402530875775076420591641466500740400542467198155309544619923869372032105306077858956987366760713592540943229787539247315291633609140803848541917293884934170510486715412111183909616899662744805187718032125682042640895912265744228681051952875027221763903763045125843580647616053245944343127734940821341504829837510949621515470093803599747184805107795462519613126549834675503276177283665921859930913855114449107096248229371552162538165362728971491813646494331468437756402251409444011056353340143673800233915733174780921020181275178849562748735606653714961001526640302673984502999084336111186829090705219909786116030346479961784001845438185285341170073141931986010914774103494184796069011861487983862405434449061885653293864897552256654101374215421574451263041690425641995574669360059075720679752238323744714395957786865336360236589786448414493955085620072501127589517334874726833697966227786247228295428033848081188111989429510303014829721930079730238538024017819370941091821832044608480794300532247413777444846215007593808261063819887926929782916928156580061601750482165244307439763084568488970985339221265256921855902760353504708609880391804360188877654443644909139061109387030712313841883120566050770504651054761748735166903329779453792576356191598052989049398931185174157042102209956016598283525117242598419624277319119002403006382631067123984049243312741770966417334852377531879451870881602480284437711856853310535141360224438558742175691937921319971687169436012408134808835727744806683032396534294580588800332169147292233453174472551048120016579852593030099965731648710700943839671873911084465919355878612882601733800435098343395895033877242903860239819372844500252786205473500614526328483885421578523034822225885978394876338771427641384810234987992885246695948378863102209720710656017412152681470621923902331699344216912109626212508817056503351635905366553553676054066109201828680422081654026029180187268057240696037845491237032243956333771025644131761487228617338035692626908944319775410760594028873004938626513683435711008373375166708224937222277749449188458379328378335248671862905583605606286625741227100240696440212188131886061584943360771937284112843299159490760740213524461589467217780100394250161343434229095952252077694263508345493097463062645971759380593290567867639962567713646666241064963595693743856103180028862192104390386344861095967630305085858075082057299231851223232262950846392944767174429950440620460077153892253472672048599288027460366755947328074276267204931517826805187913857910955391598993121710537636120665135542815892880507949331057472683306450573373432374624966227070050101395608208733614511980655149135448277382741935003413255460092030340120992960019942662777433698201204241232615305913189276251320804231914439767050507429352374650173665144694523984804905141112173344321928118522199009912490055971068321304969806932760600355026250264155991308540844446270235545775192799726685765598179415096752686174490139740383133344012469566998018301107297799815232754269403190986941978923221127711147531726759461747828721209798943215066721980527772092676026693163994358260675975144982799015258819548456989112240900685583692918887574194984528283003425162791754749540528897430017228411469824870188687324914350056889779394757964500241054173908433185989380097063285732445149230076646908931625035363952203535351089508791286968604908306561282535170429675324096432933436165125724728059278868039419954821644717336521192477745765257382925537831154740394863739278866445783030456630561702894000028047412426341530338441344099748531603153084478891399125275744740495203460748205794053651603824395875449479930687041303657793739410320344411897211975134733739504969188241963543732131044114059152845915069564374014320480150220419877256137773349386458129272240681787362478235573062466304888113225758466100207151670300093350082781096198703167212586609793850538766551902131361469289507519951859587453740316548620731477783808894597980906539399119784737247210672469692380022285468107257941264066480489193808846173676270883718452821727194720733108651093276483398387146239487305650854805376488803303968898837051629197476345551910705065327639649518874689905327250547868127603521375525316477221190497859168980299174901447874748881459287305362200488603408939644334695252954786102718496099018079029677933696796531487959764428970409169179944594284057710361533012334422567050864547218860224870482024297824003020187459074541644205198528454007597589683408826514629467425969442528100084184148293460356986756237381728292807076407219929658141840763398434424731371086619462273066289817323534258468676069163243202399437597543452018385149297628326721562549091993725245376585950031487257336846624815400910950848347922983572434124522201044781654852592821022797473669668272447552050448030072184025973110031106902033783446057227263946567047481306463420991887682985962490826059965654602294539936870035210305503248377724980928816644215665096067784772146647234199205918405186885735555574004014381976786355978443600363085169760402902700568951021967852844616376185352831281114495448005940864707110216013068305697335404684806267782659805766844778065239705395886099481690399255433979694305111138945801123649000113401854646925135615186928611755814252247051066767132917606040808880683165122995241779116856708142556041459382035627074372643747295829842172394544013844556597078995386502921993387835044105571041949395836162804634362958401022991399830850993182070722960474331615492074184980199408912557229814200435272417640602720948578088407115402975657809499926172011279487884548986521424965182851227543407752545141946304252928053800338350851580918868151701177529450905537178831390227146078025642602218392610354822985592910875314678265154170581370482485945348327283575529935155595407940517590415697948862125174885803980380773802735376246596913953541557518678716560152917654798534001614309555729574036061510383677630240322127603748508440195866498047217188301748005460429835862515941931812721959359342374784806335068467556125941546471069163927831441899538760664875333428620474519646948672584921021672862309598482965842225696713885795209762530593472464530435769882435856277033135235875337052211248052409544537043754541232814228860100303684108957859599204002699948526086448644302206162197959390759114790987647183125290125579501572099416097700249458744597575112111821403535826917523416128945001376785334653135824103099000955741281414334369724190524100224775394288073884495106692604509152616412147339959292752328922687624436594177796785147680085783816257456197630097616691059270234876009854241897217297503748853057101375492406603186977939418463091143426927539057780765909128038235654871121436055354893040482467177641907151615886465210470891520134861737105239212006793163302822564663769314823664798164041391319758244361332537871432350591899026857420845461969086307482476490239664656052952313073106477803435268369794659376349000442727738402204712344330058868995254320508375573542326539131127121805069805577625349407707807643398187228005921964555473520595011882824978397677889617895368985715802399152533825284912311237937358404230770484875143129759822091673813128603665503853610224552686598016597684607935855255621766718499863515856765202783541494369430279500748702633978159048328809409618728048148194290544776825530775427872042955203064550640341309758190738471292508433313854420737066267961809501717516680022289752957202022070448900542163685275928801378917715749563614497011459486877067071835136978477914171404940388285556588901102860159669709312610062645582088803925991366134710026131326732030174987708861249456714050329894838292592802559548454659816802710502379665197845695854658874370918583855470187010455747755242830355508408591262317556386759846404919064100124421677523168065110964977413396662403355355945990537569536762205763077521590959783925603658689961540866274594589509727734557976841407449279716406952489377721680123483732804126722652432891041096234495686094560291394332601226324683067230403236028551721171864115692376980555045597810665785861109810702681985655175784954442010879445689581572602369400126300105955202588340131158196511690867020839189306375171024212318292713795711117340197554082620720882501205094054822399894800784355826694570992326403895453911193352311705425747390245816691019352285435901733687484592499957765210012032235820950584317556312124700671155786707154302044897148613189794010532924760977373038354167537355610280485990313643088068413955150122162933556044210661646581049196975318416225423330448170588110800609822298781624911547713321821094947672310299974001748636082632634743666509118389669278930479528199380566987974129775216516168516520709398256686361236702928185045774084885576748973167571432689747407075624151885286907301532495003109221677363217675980976725711816167274894957641858366877247130563067508261679152536484046178999589199387525732828340015281290661024181426608081227538147455878653085429843310574977832940788152160422893328011472690253815456197324612336056448355331642336925544878846452743003810925734800571869251865710210796042450397284857836131788563236528650836064847029948892827575732037409385083015399803671257433150999362593904516072065327020173237657161024300739299638190720311379723438786230115476014736189698358678693882208504940872727428384090799230278171321264807163273532688857330757852972658559373250988171083942210285481564370131851507876151977904383123206936899062220978908988235511164963190339896045497238781157155487464592046155555199633268952598230956481343655709101041713137654976430230754585825696906734652217325554003250951135291025091185330576931040936211714550508749313057994631817173595195096456434393612588246748230237217517522418154867547620972765089763000124856142231623611707759956094984290735532820779819754672372329767897191397664201749209615662464938597514093516107457471239899367398661122045841696208508135966504101024325438377692270690678793421135761105815576111770718268614975513495156836440333863057367917112302016364385579604818060015903442614915892784708699700630662780762878422496917129465942352036969191912971606840090218743332316413263635836672195493968183085198547248254475995429541173507749594989010846443560713630759064004967616918515181331689143462582663300341670866116514757869328926266391435551084090452026159320028875645835048261204682143437662501900037422120693668218421010379043799247111913150988239443945414428484179597955184441752599667724831020883194921167552887442800804899006972713750783273225047725235881717279626551554905945972080876182906909155513467458420242737332313529879786261807117226585942519792178235213036154549789515265745932205472543078916924738391054618759440690655608927440475279495484309982489281547807974329352412822707024634805226549496014311460906751358289101704731715114286676829934798277067110333736652589819516113108896320700560398184268891497281412587202521463345720245476097946753392823996851137762858348567844731196390827174971474010866380923643195798155350155318010428849854850190700540001130131108323742202806317434199474000650587389900082366041024501080390120401933329593798786585106998897623881875114980510963385196391406533863703058025891662764537055804988651010625833289262242018082751886740772718702643992457566554549782086936895031409815810508991581955288115995361726218216271269164343451484156537342203010251835508239146315471196215960665957847660026602419066104750102314317817494763417999039749230145372673883267990221393330444666539779718409111550071868347312622408192635700100305224139940626198522869493580661804484225977192069590796400976109790845986319732915496814719229850612957625520857562581922903949379068389912636880934806911995504999390785762101302596713326604497420535232267379788609108204096788272789168518533636312480294728222274165741782839554766303660281386060037770075059172895381807068054100204896288176664013756638875120698081461523423667389076911016854022101349923138759633712051288954222505991772483306669807454207727625644761857834264942166078709669617907076623932468040760391520468442283409601908674751602650482006220902843785092383339842271901431672234365854180444178242240497366790891352758253379765985171338991937058476404474569309162292109835713917535923190113805237485042449041716295418043705719221855388380995685791810374514847570907372955187980847306356236791623397355354748253132530556046690247615499804959671064973724732799756941318569138071174174604808964728271115292011177705562507511708116361475556946229852261584208842015099780666198270437556478402326922777045313852441698523744137709643391625021508038570353206614567066724966375885026477938917888261302727981183818052627051953067504833813734196578711318882701589104743003736857959873903065737637592827522613702198751344829334301548652012683773251922090303552081465894897951705087434380783748528086186181943996443083373639996098884918168958646150447830823581680463788189086672582215652775288111281371910864028555567970916782982548882020499306669253551169814970560273125039293091541229138385469610475050705570389248159261567911441038135212312021619197061651971793902018330577837683726888218725335535996652912042600051808643703011352146391655773772541341969510587985045811919510016914106671698799779024449739455315019286924209148730340387133167149421303225763681381996711862967632409186826268796612683450123071214305863103889934399606890278664322206268204881734745626868118131065122775804922560262426791793183030326406457969003239635423728875766023848252767067392591018020964679976269222778712257113255737954315666863511713328073851664797892364938358025015926343152670430213595253579491431344300716508453484951580714939682176895542960386706408337231394092399440587983043192394056134738390384362422323403600793026220530494007883655430770409116460693948268217256633119522942499811861996326659252436119606285447638326444372537810905995557277146630666224749377247594761108942526800046800609797716441534637181985910594280732773839402482916421308690499838862302717884419441130896891755127490359167913028445451314242923333719747675265516154670583124944989383118904685704046796986757558583044077237129527556916163317703450951366925900794735386061785416370105979373563888081320614176033031684883591633521206319683092137426006002796594338184216663349701620525638409440194132188875624335349211918972015843701914990759495271576636040876482371567986214540927677274321999245564259715472954389900683642428823669576248493315093367907078942056292765578715452639158197608700029944594171825383592412325143808583617586479524990096461741103204443220948017786143358517798325872016177051096037400259035107224192394811662248699434445426972829198984242990127950128549332723966334721411654829154064435709684211312354879245586801935102519929755461781165863397508191642253790086106942157020220999406460179449327482373216967852960184979182093335327389298906468177389510530213127688710579764897715604388659210733335694080691376039943444641805480256876284918260413741739462489208920951410805522978699060597134089493708734100707186960135550952388203862976050969179457112744327405503987778254039934184675935791071897600234013885829972262967584769850819001171899057922587408775916225713281705957959017111819739325650436194671444994639870870831118158564634709784144509954794153008777783506923066244627639993565837864860155689697087340631966806259646586235914513374465182376059962104966136647246125452574107145952596980988885502203161886384825040943915459220416257414239425632619224693855218608088674098372533633075261440391026425722285266112750702448705473956205139440814560997644678039022883468328897095778455145546886927375004057413665971495588667136816821153634911416364386119700348260144149173276442765280910420443358235508113741608117377562373024478960603271588552176181972473726678189478761076891915397078677229695044791867283805345241967739651127088938965868189553126806395055410884519756216724347466772865081616469795442698639604059985783260002843414896150677195752718438397091806139158447547622999487482217258408711761049503153378908897568571976560785999538471722559339790729778694886621654838968672590143841420338016489135820865608581393184065415129935701169400372430292082433832132169183560606008330107671332094995142819247416951256069311793265840241423948004082848728023904020154255676121902956853744348003349449613973037204218645141883326693323136965548704875082592976236128710372444199642204752621058806047702944999605994141825163271308167858803383726976243600656841098918955382554064452161639734817446910796378068133959870243634257727926935714156884446001115852649755875428650712515387625899188730119582635389007303300950402725682888095114272255670710010262233852996318034118436856824418992192538155246800406444333017363861188769268314271435290664829372299051746318222347242445627725872322403032605387604162867886601991921468653899793435949357281802558455734109895570474758343087151180044516347387397289660049249690174969605310511897610640150113963962212282809573266116500169880935650919401158574933524884177228405281251792643988622883576826078577339968624898362812943378604065573020266511017523618207578121322733966969450431191379664074907110399360729806743169744651081060065419642695181288995987330260321383499760789516597893325050111273475884803016809386387952310070218523937539300167261047042168517859755748759569824960257148894916376377556083439809767587224728268524497487755590185254365653165986989542802820782112393221797144724737578853792712473277698620900401686541326593816137469409659602890421531442237414290241372072299374383507194366255400219872449606296008385734029378648697933469803930748017985994173511154987070752842921313003547464377053585491548993278629579144520716929692158484069007120973105018553191619669995744390234874886249443973725582813419481633416633084070858609008282568019527066867531968166771258569954669607545622047986680438110637570259239410376771217011270047689895592832908799733712952272059238237056472629828042381775636553673042990990445341506706778163531129781957704049097584030309752454176491053777174399588491072898091648039808851847206749647557211992569178317770656394518789895371015235904248726736885862627816766471057226796882634763388336288254755769796468259546324622898717711101935411969399335494010397810150564346918085711732851279650226068228530529768894793484264504068306359966802198910920237935710475761585144155531602606458789621093290268116109453789773212204324212342968919895257087017867665116796756122215244984112761261764192652515683986611886812446882627586687949166072560274461692318496579850402031549973270494699972120299758207718670065644292728880110050135573102225158949367904802206488897232502239683664197387752063503895166300173245864234370158074707946333931887948419607060475096016357991227827318911363398239696227251474667257822106752700823078745390608037008014585719564317305931840487667650075358130963118867095740676947055538152784430591837715404601813860337206408568939977155006807212767324209468641011050894845569357239572160632028136436665499908822801041913055605365866112850669557017163823909882650253840745521744422979268248194918448132171743529949604909430222358398929598024625891084205303032909290498615221796656321942083635938058338492147241740007127963886670772935625020140252066783499929344988465686767238014194277442824161691539264979288544929598039163620814218279245407656413894651845686226238380142051256534307691647899590362124041625373214943529889525847906371517370135686578582072875291580969803401938030478381839040631672015719650799222859755072870285978177752082757129081502257613262438583755470895286317118775870305621760467444864022756336328811909843104743587800396442235849924179618909709450279126191101821568283510217993899275887903271560406744294647408284837576454394029606891620068450517395861420290969001697021880611165327923967278687200958164265176493113226260475097474674266015818975220239688367851649091471310786857861845099458736552806730958082588408895262199741984950904277605620049054490667921815218795521857622621749181865422099835028081403449942928262361817385395219394079916218853889957204435247295427565826082925143438837952709518251974922717396214919144553695499886214478042058873404643961124867559088992713907480237302377987663328955495806547135254014046730232872749690644154550011058748531437932411843543818216321296585413735903721481091437455105600283203000771470123534913231723280498613500021767509877881460699639906854355157762902286111714014818242634076750969824369749787479972182748825984587300055989797565096838804738516741753852926634441550931716249657579205434221903110510307327614424696659871482081435713718770616458840346869461691562061789457590274730211855124935223991912578281450963018660094422771529971494337392159637163595162415385490968810794870276739512117205587307267269090525600178271088990309114647913815960355225614214470747981224465093263832418434107675573305890647094680020989368923934835622558127608359108720021253348006825065572866561421664761497702814377378553348298390375811917280754793027482308728676287243920753207412280657091894491904044599952933760561907752404314204671026230415355828942125595272785093293763142304370147395865850337123188620466313743263931360242629637125837672248918694859047583953096353445751438635776085583689236543836395796764510554786203920297480019555901125727004532833942901272570981262422085044166957648335955731718764986485630935787120520244102589993030409475960635641603721349014064245798344018242531578471977173490994443769002534850407087565032925185975201060114614784410102980332435095801050595137793862009337364483045528606890343225557260685074260985821949331191025006784498026673943530316417086391549075642249751705904619035442534671095757299845271639156451100396201249520655255442121668663302451402121364423653036302492948344035436577695209188915527288904675582872224380305161082006232965599320614315621998094041327601549796217607401257867865936391982610407324823268009692350985598737629805570451938617348856349236450499284433259623196904390401251468521422472457446295988901607438150651077690095579791030277097897044536594174912481463659592487569218390866999762659690293433328133553377614261238852894455291943254395970307347681903589934863831220455403031314549337344169658713569911109827295248668830051719921475098107924121707203882080068985805182255134080759848975648407004499972369117640166283546477875425973355960198175810811647385727429279862926294970446226161612272888525008856834586105906700364535016912978387823529374858929348444162667420269277440831385865076088776242679910763229040588101501583463074969025426793581460092765174609337165403219052349617499912560451571604281847030942850981235154568540475085453829163873491086050701680916566626299215002714760296621161745092483233218292179613155081345413443251597339148739414137003816196670664073474449176244286520534551530762894322492844002149926891093703877393226009524761980550931987323654952102196435895420091213848760627041905631176376495583033255259099414253610294528765220715791872661660870294504158024930632920669262832898594878916839217470595555486168409193673135463198349777377256213188387288491355589708432738710745005388552543179406851200497692780808404554229149820276584698813363898481537025406240475580133967516434763346955994643419823002056945135715966354539060479115004381819099244099191393839671767537507381334968266109049485752733432672934245793241180279939280122849060333230363058882825631091607592710804022633725978376588318751088777126437380612088998422184501810379126830958587616424960163655247694217325758911255190897150847070025166978104010000675358495172545151405485064429123768492720734980610811282170042364037126701884246605679084512227233939698367586138854311293439350440903681508088894299617515270027963388491671712498552146397534127065917872681919404509295601262605799560369068753339569718816282590534061426758609795457146588737321102229303046491076924805808615304566183349169502017231689244958102155190226057176253109662316968797198881915347575338494714913577923851213350382446535180800960680654334611260726985293803082534096500231551141793826110241304133904015001433662038924499071527500345544173897633951955231983091259924925021873589742568935894830541959639821348870847429768384102145712828508050241193878367084981005920895887888023166433623054678719594014976415801336254963277065571185538786358332886068549026718255731110064526310978874787656260166752196298366498222102307711175656711911847155226450199244519439273236109120496736905685686362619096465182909046694252947184914850834372838051551238909990662735848330491875771689771646874934938328446306275238988546269230112445185666410730768836035066692129576727300545727483404162548378053068423839033700661340930380476956549402953998218615929647557721324120194002722056218289461538976759481828615248319084997685972601758206519275825577751859358231825506851169427340214015800228683751479795249601306306256024986418370287490173513038196887706067647264002799511648595701900774171712574529600394424002673365668082290822719238747818325211161366949064788754583986599585003154877701507359159534664699339036019587501783292468003441733233005034474757469988123140129523814789667003476799806059774051427698084370841615182020908299172975527481415688167660310029086079989639565956929155239002119108915915753686289340626626404471117189603348762278812739840182933781070107443166933222980286304531782402153125183384947020086232543497394329883486455289033203288094417789091430287939457539067806546008802921886801757611737500711597803518445589829264625468551050917666504078785867415605418303441056507940938145181981922079429496601799459011749497323356354406376485800788888671903937617539337744002990072099935100596462626611053258419819019276261567589990786112969406769429603794475516143351054948368378697147294516090642549596654330290079212793209389888776102393968013416450338343745875319801990657714010155152602055970508831906890691042332420565214731632103342799066450995319729818188458356720605552936259780533724569553744419947799153746971908551119452221329411370701420204000867521752643859802314051598535174653746861005413643612647497867167757654285236526378855556989382827845916026175309437938289518470705396282989770688638397977807861310646010029336844643700958134506726073000265538056353070546625600209955645299196059634262384376203570062832730500250452728998983123367439381259267274118874184600386008922364574579204144208948248822793553560545020235352494238263261476719053087759221421709035417766965849953835312783634022327590606031086964963090400391040856781156103619781251975012891420627131380589566155481434534836022570451849420476508379994655825577469745995744179810055312094132238716253190969030727693914627608540286222074855734926932034629757072533173112213802098397996233567674280002296910294203364242692680667341786776892714074823175909597569220869943032398770397748123217123797072040371499439440551347790673341460070257329449643394755399283750892371837951225134105392330290444015265772047055364943985536121094900648589435665496104614572777770045429541511820799580702367083793608196318990916743266158589413243229928303784332023052864843911227929193992398642568432727518196661259938697694204534304030278695362275797950350261426127875798512711562336370560019539934230157245204840316249900341399764518665778967621260086488638572217547936525579817221238607326038894844989506319423794080606186594660327893148190259908625419077338946149906600809948709593367391100387173095355964564873971071604609772949528036982657644042981802420785784772073240704018509284729214900052355168155486613380476551717818606862723313795304111455815146961346679975631711636846207223760649963510818743936875847455508482980334966236509934920564175849104867931255683943962105869340387236093015048104179317831162741165282796706283259530596787928272694010638138925113940505524270097406673267930035268067298730492794949245624673040601668482053889828753619779459655760829566176952842433304382233397973473533643838450746694117682948763790917042147860493744628945341602288003603312805990793207662360000338252834423750973111477648052358748412274021649366164908938024948522487998842297424441171939044867630399796457140516322057672630711664322608941748069694450028899037500682895923533025011581687449320051897715375407479791911391543151707119915577549236254007826352925948236962337679787387156710086704618205100051691937632474345688936407457427328694506560551232835827177186107836963095899040217211888974488561138669268362258481269761933683996326449420531441038700151773091977099751957868158763186014163851530057313470031312642342982609842049208679788360413559660488121306717652134128519640394338756765199636171351740334849750182769188341706669188437081382721293079642884919265550129887986817452206389609049259630025552877776105720275461445393221577169853088186682366200529931883341633124381208974382891577437508956727440272442883890808733708602627026745503415908613384826709296169272099393383203631392345035472560461639929705098055300579044448282407000466635592871643286243742304465118958935659122222496400423307673284509744561152437696761975719986716706153125226843158818866928923538796237903550955824785353191921761412854628732173778715275017936714870635030028465569158409756733933863904855735760529429502446968502836694258719841305719348552578974511969622485199804234251088710074637229899512615112345775872784566673567628296379903969638525207721710653879811867004668979238754387027508826851881641675169896387247447849931785575092796067514736082060837037863347217235635965985208455956301539419208507254922451697515168012840242461837743685192907910524148119714380294659586328314035345205780034541153370454343646518889120444038901518862974702786808537697639329328604787206663810435832647148631093882688836970889965343553148738262987954340683635013289734984473254892732526303193418441122485537467431006935305628351984550498826015564212937077261070058694643755502818409295494236566000218937398603987865118689777078905750190599932681291887387667814642958002140374181105974073004780893738456169286898344231573695675175735368706391860972875680630103190129665955356642708981236349785308852719847076424579106293348124994873253620030108735253162642987641331970126940897120195623072123330814797143882148415175350911884829684508562613436435575889310198578988360908990921401117996877197433831504422738316427231304966253250147031064934538680169997171351621711473218221319640785744908356289676962373770121360794057051767990235024945121001985518487631909479484910927120014604047770570256242817183073746075241738265851156148493174699688491816372200142879520474539904779957366026383316328667246802359401787162328249162137758716074547816698676754383321127364425355036187690994845458728850798296676305678990998147465047332295055474035409272466627761366978939938943575798300184334347981717979227282396668911410851202896642489861213308251364807227184297361004418207568260872826719343427032309341552943029849692505431487861571582572593194824584409760506724223141655981315227500312175389684851753050648043379925747800871566208611945615576162145850473085388520093893252348531590355625833401924049590736855249709909384447392149557875702740840394838285910859778339228183096811441951582760506112043262903908778327578014652659270609416822134106704031962017917030775268425350302026822465111492257221219357195690761033418509825734243223231509884055118439949066662927208672037315237572010262673608441073761890936862511231720349705087395184406972240177539180614501554838454719918765494201295381979437060364267910475840861394677691011282475302765319619996106751909236022467831148721001483595060210568857637569627469084352440669803196878158956938871934945557856536156372031557670784421045850423031374160696368758197721615140038505944617150190278885979081605298862559437834560134131700950125250896630176427504075832516540409326085031229100474091124027883842348543675294358023717146652539038644245426079456920200752329988847974152012542920512534650912447902159281649163372737881469097292521060095321296454647541587125240507498696155584206683362606421938644231584107828980980901694845916420848127945718792653695217435714725495023532293654506223448002596480184809081935629416155191923065826563701420306436960156719332482184952722107842125003330512653446442697956089786711782292100055360245992611777297116649752860820307108808327580232816647460809655340279362767999792897365825729412125328498059568439725685994891295995688006555347312604851269083559966967138132270660610966300818173598951250105351554188328900503166798415513742401638263263728375040825420530958234986456014580054147046572568387020797108524107408015290801307523925506997906757952801627114401027044594364512837372351230073193626836027896721493881740713832252171951094659064792365815657354882043962758515809307006396383834594610767328535561894207864587067241977259323649319189111657616452502281827784824623737865935181336294259274843281032556348841245530070927571625900449146227511420563592614453311020488699126932800162036867056611933027069464797474654177352730380653441465810885472934779217661239742511466480047281509434026343948219588961317003088947577120630495344737780055673026283471217588954845972252190200902379024780516748328155640450675225790774419798106873805323185358675320334597946749061574718657467799806955984542977865196989762004824869306108947692925161944895087927138804694068627529909565880087421166972926487984561270680396197766891647303311504670180971057838488384261961538617313890889309331683698828971997147507589523037836355081100937117678697873733546348260048904674952614066133212938448432165488890270365131842105273941956818556660726054820014762361057881451593964727271998382617988553236523350812274627823471238431663800394621400512927417807264471150304277464136368589967381747021976305574497198609701904782871284288696422242470778133887857815986553113338663833913539478896533377931124779814846233214543284044290818663481126027141978141606892123347992751144149069355672455903688737939885682888145539581663396925160779147589765634235317464748033063809767556354776048710384576195535454911935309332181817330769453716898623028702012443131677808904817848168236264648312335117868367037113707169255889043573195546318011585788463772225509831505585962069421010669679865494519121427460603478784892943802479845333136772844827304468915254346135964756606255457872562298929006027618425066568858467650313055389290959040919567989424984485231721052405193624708750691053722454471816662309642619753287188111707531674402787580124849312602430684218719985398677357718241537486102544207672409791516888966894837153448707787374545319057558762469298440033662321810737556032589464585344632213568517899791353917316457436195914644549177682204023133508533440190628067840710919974553303668643530862762605664607752739096142054714652306476026907050315898638041751418725084381002182584597910756608609088528854596095571101340199816179449999702703519043658669799150203539786113760631795675249268787481347736465672100523296627998338093044088370819583482597666328421835572572302650781453176885164127104144536161429469351954012995781920156393476899231738968075977301952315070638251189563942594836042639527705030783180157898665763245854404007740319699133081816435197802128538019010309048876891606604546653547031287914200243199597513379428393028044493376237248554556535954531613750625249515715869061068163099775263625174578064495475989175535743457806311298518354724807217778949574289591893873714708250546532237481217329148538681088525774510414357694965145393567793015865499551687418952160246593584249163628493700711379099590969975165546830898338309348340474637466800116271311870968516296736422056892150101918310285515318552643094161414809774000842102732818565139872446527337562350291486177554188877953345554063668299045399556844558311711864271579033782746640760294963393951568670254830328456684915824075554102141469302222700151162867845941173582868094869500076113035870276521442075548241902236234243935655925016575357046609897269898135613302557130164524320197042393408079294469073210616428355254498699434028243519095064104341674973219874273294122665714771763987219993350779303548740436871760655885834114315659545866543147561782494004990990321177604945830940463444002727558573264264547161290767976487045493595276112599117891155375819750918156768000866926528438840692038659547461700484669835641396617477667091083210502767923808151366045847719901010407945061495210150427558177630342024309768922524705202262805654804501249810785465477253442784702112583960471173419004296348696597585584217387094675478301867310454668464409890521570634850797588001959638133364129007022818403685816264147816006077186652129219531774777440127540855292439840356558406614957347448262183307475453568729111244893084173059896023732344297125904446158351410263342503101911565260539107822614961934657823426219607472297980337094891587885767475580289772416546844019493224509775936838266159184949076693015211696102369875973456316071630108327816699356525719948619302541813993913800329412270609932424852257896406388315536952274708411851196984642892959101128274674912665469109811136386763544165824278928242269286400799575219500021342388961532984931312418473928052872120516881786939143999982125478267441668009589695308283236329635657342117003536458513858401081044702691227363818373534592388678078007873593394014784716877752074986066646647917688379281397698385418018956478978839600015848940195158075052615693573507139203143040544970544888399367887008058519203243822446084727653557869043355725544811356012652604058016810974893088714300841994336518640431820476394739802698038007335174510067125566892418344234377997237676296581243784934290374075622129152050506070298478573606376883252393655276473545159661026393402370648782375945349068455417510204415102340644867098280963652210883783850569722390385298721612206689681101425988599028547324484335468664353201252308165971444254830824721058773467695356053981642056011179552485102138294144206370162127183586482262219950239290510243729888106218986938287047666139884283280731623700991069073040447728688782332167069931518015640521448100451178271520562075703041743729164733884809724715208338695415272799484975413748144192898127490405722440970937041118096344728110191318180798903397366167276929863155978182289430500281588566409333099613163083187108961939886359695964747007446887873422774167613816534019899153116525462401396074850014910569899562178666883540904822544056140392603252813355267165662403149278741561802984802259175274138657544715384449107175970242216671120023522398861404497156674012860720021834846292033001904654641171863580933589984135342340991346879253842556792504050932512094201139417194555370604138588279212245094996911165852431749508322260338215517261464009686284589028252582126779452791241156198659699099607340448886088875950765952673672702030324588935297249634291798551221425291651565881346481930517950901197918099379881501405753474189056543372387153679228544312074329600017829482411820902491049178488871755302407990297154485503122707374318597005449782478181902612727101177653538324089767252054588113985023225025248790115904936987784357358043590410476125702129857825039736261969789859680735438417410758708882273603917366353790137687451088338226447803881225686061015935743266884688293442379740686093203206835572375652067750787599737698540501556517289545721750652387996393639259139037060905827778622143276458828699706899596984919822333940363329470016137806490117110077252150177259865257211363107491222987858990719655241577010397587264067083821771950780014896972341136177278351562293559595304081742697003289073473757661770103454648093682532494320153541520123562842875399439973459178582254574981860546599379925839452470715939784039668308201675206696342208902679873026266588814520554833134837070131093403869940610181601702647838908742608457713780815844858083271462658483321349176477368428467369211660405671587758270910710456165133513370890015469318582813923026193215101223531835586209164690667097315904265911208540490145713670181028537498565214392082569126199150891896878762190691171424308673607635421642642575634426441044558381308187027337199322160690443459130684396470844561812127184835254413601222867499870343487261771233087565787955663884564281736348159698085921229041264401533592319028210396817830898861776446835922080155200115511681522923577819263557005519458032958198055505845345040308593364445330225287077519583973266346424623521000011973456823197078038349870258773539087030410032330486578806678445206249866375975740209481496733266636195295042041718027158631456314792508485355655116042570571596091931522781222899536205246185287115616595865211406622918628324737312498653607494931616965963386883606364738644893974597584801110450083271227565258160839271606158535934816335579622169109674785101899925237407738891753547697849113205249595813622687927802475144242212127729910989221972878842048308540879510263528038137969986746152603448810832474632579980084182518457163674435937605813957037800897096465226907824497953929783644283217779378910520027221825669531728825279405242073067168338831321403521406377086377687113169236814205999710471187715029087396426821911669533296236177253843606039395147608237688769243542703837290218103797413180211427160262509865734516868134723252934826902286148484331689460544379563699909879671796076212194440067463886831034183429090580617533307053185862818787819018211920997031899977359218334060681419176498018258522740382125803877982510016371717299954253346371440069427531990427293342246566741332884314639400439384420183983288195972758693706191385236493600562676578288804615637245254924590709441726593302866633759491830845005426155134694290281402763724949508601252077654542618097039774815099821419183626721605934077678494148663627441354666299577420316148034095733249284436258718741351251420185383975422898197541561734553791996811061667819650884002745984902258624583833925401041340620099130298302783843593537521629095811507674397415746463336845085006282885214899143369882281398727885462669998031755054419588790578395309917521468960411061035908980435522453987207680641413720828772026695322361950348963916368621491075974099054512024115698556386313773182223075619170249002518273683145526522253533619127318748764026798978222251123630425469518714395420764728208032642128205820384337178114387770656240836453086412747853237754894439645966619545361559410915566654209572587779645787687409388003201916057149151500972169227860495488782624291734658493202819236271312645565805488874762028351665278698020877600746925392897453787115597513322829946992635690961132909200789641456780974627370703034355722005812156342231866068882585553054132764995224562035954556591369042402899312061634914180950258785788241070775367080504363449872312970345486525451133142159250166895295130488296598723482674348161666652056803478878477288542327783752686022853045283776661381304522585582851918451796074158123468949722667232862665527353515282605748323305482309702073611549011000751917227623748828928497125340371695642025084288917540108041405054007148010706221833507669487064900511687470149462779069030080642972542096193221329304147957009257979745921943837937626183988060260148124517733669422941546348903167977001619113662410197909054365851456330311410356828785300062506500585566083557122875197715912116379838436641139159563003320206396544697300713821691361329766897641110360198841831511898287968314353203229051418903876810569002638000647341447899115580128911603131735173061798493161006451056961130924425568686629012012601810173795829844187168798469074554855355368139830483786297698119728927751993083184647710654747016600120577727266341783548055241157330903716092856286731762736394967548602482143127940896167651778837444349849897243552120369681508665863838019402476652622970366436657344399200637194027755448347944043368881395765945947990762906262351116393746902374825971489475573572682159151204362411357048542584661248631598134828422753944128348021074062652452862587009072429344548344016497488698328136869735184463712089236743851850856620197512539614196359697435909404240362614883981859174565038784719145139850448463603669776596473384470088260913041193285241423310009425854635578045528336625564783606924617814040381989480041274175984855427494316298207647475965983522425921963380594530297065435997475906275015836059990303982853019986767886370892248324686618486780264053848672284442216328209130079220191433486506522258307630373437628714796459097394335741613457852484923847000020404436622349680159573250811603242939237818980178178719905735823488938627596149291616099468674021970880419156995471995758414828650336352877999082114921052646447615374649264636877884566603376314330218149788632489189771262189403838585318598612716634477037038644259270829555402403912457925582175031740790736109157849074499608563599641434797601443670153109967131748367776008376354333585323415519331118845102163401381187307441031443018532560810187592210674586464388376764838625264394534860825830915713195658863662292875686032337714289116385639760941129368179316202198098381082501055269639049750194429030468539756596855561487675207773354864475924560246233502071766662735953129021420206505959014311778603129850357077664586269858737987146421453920826550491814815044733377873373468778953724068621559967497435654878073793536924405364789647874207735162344709869836639524105883543059505859142562129926915797290730902619389150750162843876369015276204969676972745835172957968066165395613325803239936231968617486321924916128591992993281527695069182517856900479823456784741642379120449388429223780132450937497437816416477751354456509820901361644365501708291853471333164477519455747857770565405603278543343794370318550224858904902085516050626678689445638638186050244869017984238715490628134768314972409919452620731191272824853758512346325414260078877954440381640987917143109719493302601920204917287749639283000686903680113317525624237688150844761987359176382050674930299720449018915947219776321273788785698400325866002715044669029107417872186749914892814186033291461715065602790933608948932945876938221261684662510573695233981712847578176952567414341138200842308911889322217709632832444725559716852649162124383192554336621810910627083357491760838514831095945989761854976480778815473693207071088391652810209950064690986343496652366714492956444402044713741780103681322017760566907058242283965784662732933991364146972299408931473742576989237619417223330359941842201167333479579314365205302027198608694435780610261692461460239982338493307589264448468533130965404063060822708121824350044945926113670554810977242466678000031444198422023323332697392224287416227830798985807052269061956189764741880638505279210656625898193476619100707254145020782821209701055066193094537034260060435742197007316242274413505155569185370219900281660149222205758333338616054683554345316398495388790303013234013544214796864339749079234125934461280627915741546941543000102895502997750531800879859694448609025872116493362184304449789594757988863054595681907885200979851648913278014206602107129188197084136545842951035720561135770432308368511920123859556003659554362448498971513797600081282944452142787562408688711393262314303017223665485420137183112223873818263141836116683709329063553119805324721309276853376492811754490656783883095788607709985975155981850257087566255434700753818298868170664868545211791443275708749877518744731749464270648370864045341542241401711782378734524222478970350925830634916116879285133589936177084413493665340651558582113090962205076235694404616624360169423303199510911214841150960736848364853636876161025326291056907451367497546397921007732780896119261253459678734610508589445117169734755872808969434316447976072463750986741963515402724252030061507179787308668255971229086966980597037854334133824497085135508432595192154388288285867257391528012405554151700694492582332652424738651923531116011234207421531100475406533277842723695805461356546843926659183228995055052594712711053472100956786357315518480390015261326418060243239671610085553350863261493627750818113480245216136325168440819335792091724237788551449848952687404367119653909186908139096878130691836002754148797074202618624576285406767418075827272434800991025070145862818690077650932911448381207422260981236038939725049254998553267759628664507546091051261578266742920680318574038969232898319640691880740459731841467013120157933953682857285751611341514803132717998778069675996047940295249231951083860192765411275113223205378714063836966050725816157583757856514742818433574997865083869195545719664043407982534092515439960872103421924891967682008920830911684951124314587987218606998632881303546137652849894030921562664203421333956185780625910282438288866200648414874371980365277621659344853118201454091572897077785351039936933256752218687154345305896199261505086091443095564337990642949646915143006605236528361459821436887683161736675182648210918409681614425064991499963768513431207050402233455405601392061367617496292214656611198180501453165098435731368085745362221661760391246194469132262099173555587198345557518291345966575312174258912152699342738084167600798388355869801464440712012489638611579672698949561322048108932065744205936913867687237004730742483305279890791060354470078668658957644811400913457149799718709508448159197357709175989266866909581526473767623547153232562227229001464694612900328349907523147669639895052256638032446828605525226525554121362952558624714867623270083361944370051560258090252036142930854385990266324728091408866552641616465161948554573833633331894429390245717855852965307646044355131223737546390908801997734788204556233254007120514221966379891981979566992526852417040692539340940971011629775439776637178639836332951439556444944430451345072275215954072776767033513811818880400196049180073914652141500922972750219909842933781537681966012044080888424108082613962528822064766623277191010251627153604228901191606354927590861693530333527387931115862492166892127226602474041999683345836331989655509651550636197075998323580839590362170175325794780274554420275579927189179926404364751189705991798754151124363736329263207783069220448305589069652142290131259806173952950769646588615476736647864976639414141787927918012309042530258309638238847734681803693171303587626839732067069273020454387980956102409820268600790661058820971540253869502104689401565014329193507414271648970409940518107760253854320318524175215339756288334763664575590763323371872279930053992876477579687289279049868256819557301640108947402645887606791554825583491602011092635695418912447825668339413193636486501196160476898229764823649340125906011117434124311650429334783884959680035632558330082258700004601343578473902514841148994148908977028707540519768941324576258932442570374819043017831601991980910819131069671087266020722385242399007677719027883225078325192131612108123875306004394716679070742065513732059477811119046800277096431425880345690159899441037884684358363244892760307151311968480813185286560202991514042843332649675257020404652158102469571420030962957991492387046951170388003109072762336279591193720453120758628063253492081692917058344298177335059714108811981169513228583188491450240249256010285039231768703273504756706294235165064203375599617960475601575190990981226199205272016944536261898716563441023285893036865543679138827837236691549700876059455400730135424952461953820228115186718004781143092627323688259557997408775509852010196218748758584164092999870454529601640867347225185290115080738990541917170048216393494019071236146838034991008382601997114356712489602419068320251890118682869545474431370740480918690271054646653142874305254255301001177635865568884618431877135220645869779660604308528489520908384517818187180636374464276472988615091402467097230694682171357309976292713402207481978595887269886712101579905586061008131974123734532678686502220298276317377835489155246608404405518212798328582219590121719014247019776541989153752516576891901262438519552136248952723741946774721415143578404974573248138290386105336342690028629250167050367488510328944354876018133763417774335803815982376685833165349198537151901117475899126241001778940976519387054317684594090022808346496353154496996700082780457981262348935302359640081295860039432259900088064896107075054101336910481684077134766153622646214437858073711881822470980456684424766715319635604430825233276008587194065182049834652694042067862828780871302070674168285280503655231037175745224595962600662125811482837010878029339879100739342565594299739231170615405854850676188612416728436253472903976148356331893567071767758662018107643426033701370425347013205811874825542363119452939281375572995770370487515512082141127443516383850233529899538224405814101262329178628596196256483588104851778576008409034332006779933497481897429200390257087161395122830854214096612184657774498451321477210800266082265457151463791004707192765947023617390379528972155798774184619639058828604040062742306952929829378054911831393529914113295477546061559280267617929817941063865339978624952677862329453540604792558914747482538204553346418428719119375266529699155572743220154512926747293062024539767752065937764021582200044218764947306625541510540988375761867412522123213256238038529370931602939961688312093402751968467964754894466814025665856162385251401211825470157773325361450168698793651559850918157377164502727295235666518958067902618827698381819456254759862434742882584709808134899230656161905688271433369736299912506267793269816660112270519826505862169987896378780991567491877761660443060920885737760785672015892798129921890925857772602891740440468234823966343783289719641678679822479247692105695943144573559933479450242722944555902748455447080050225286305629183642427643354289844012106188695179820526165481106654655395479217730280241994580257904759809382885979571040427410513333445005526816314595955888704775301160592328467878717076214805271572768580979242025212639309428697916118170123741655199265230144609688678437815989144929254544068539973713293366159580052004010072293678809539431426907651428619382382923513827851337246130137411391812458364698540184401917365414376580327931163651664952058267313851077576570447711847134016510808075765098881082382221564023729749073183456334431022783490602879702429580168503060961885730087680562411366476230635675883544431827508297642576172855020246615816993928521710137168027739934732427062609686084901340441172856051447018473169809694070633366490056902354540250395560001159141462434769216171354347454095639208915960643431101151792531964832513737150990330906151532275352610679337692381720686651806740800082151987351032099830211393923225729392446867769016406525754506746838557341399637854864427606096076061494100668325114769983254850097956842214408042765892625235701898715948592349098314895500994305474699639112851319635392844142712117312797488218469989660840720295104139934878305985648467231489226036940461529783028338200951629702718698953557806585062708110377324733649408640250748959211341691871385913580144878571314893468236540563091528287216178628841124865529840412612424194500399618217982107668783418846117184523471788324637750709026208866281233380073964627887538673041366960828236092593412189854187787377978359844931996407139551671421103632162566888322754282717083443480926310810177639205696876917265542638594646020237716259121317228230153944261997971363085797184789757766979999029837441831773601047857147492698008317371032869800094378116269682768336274914581819200485311730311823852740755612950479162597283854632268300042490546029348275212787436270110641094617297215986956044047729052345012585892755159580291226939341726429552064164883734668043731548125378237797666676439228595119754402533171669597608689355675976355613790431511884667071430719325293004573014348921433933649761864982161123226500938370450161096506094291423424323509891452275049273595474964249969181667988804022581218229377505704197236730888435525591144061900750343956296903833946197867993589360091261099520712940367085191692825834265417221915535388304904049199708623012503604484873583060090709671899596723272410130244884838154570932884778067217886943273731350339138299493946826013122033022072194607947538601375688736547283091985614051810107166844846371166821333089368150051562752671654329771802183751659883888534521029343301441857621586840180192785746685219470355261628010379540710626941889030121926463456080643049729112989634759107482273117333173389170202363190764812988942645740141008698131611501429510449401205625330840275529119824313272003405395394745457937510179233477527482868168177871391728433109128665826520754458730476153115635730316879379716444258560665581455229463764316829498267538356098807052235064515910278067994862534381291306451077841171752350195642233960316119598529808732135489880004730564637220189288473615167391145532638441379420567121238423670332063020441151947641811722864065561102220765032247325149853633621857491638617176281992669865559659653049204804585218672784686603935810931745154379098926467319517740253107251407089875161024407155267092406078176520863867630760972190461475352385158423300196154377197950933089792553986738807116392955743093324807323169299754356926304998237979940472594104408362231802617638001088435768874507461113386480763523866144314585693635389036512376496047069680169926369728564406551333921806646051995263915511721905842345395548718614416766858943218088028876128199851887285905863084889216315430505396913678072548067494206355052217539860013917157760818456891922706207946587882073455646324305493026541417627578042269070006856147453159302601577515682798015041556595562692251234060086648941641697788992519464842242186481978296567372410469486817764474042902136925797081876617035213641231841580982391116819173258691364583178282899492612432646185855471152092344730726766801256569191239777186097745296657395372609628832746223279025325536908095607748135552972227179192829767387722661505617693174050077993014428921688130310828263525611063085068876893152007315182743123416833101643783033460391078672557091085849922811086128653715075156460781785862282961871405514877275816063313332376408168449278249994364807870532665829085557645685983195635785472140815571527437600549446463025400877374597690357259644926991052242683509898492423510399423591530049298207893835813095753189968170766391112584858416680100209786112862202287929871194663183951803437039859904215475601221306400779195695854571711844953801132259838683113160058784749531086524897668571133103358897123248948635523792005700084211641982943711358418439763953237209211096215865073572716743767669124026586185579089657169879220323593281532220028949447842048506381394839733156087074335898899787735667898129105864086812808948564187185460395699046992748407205591284483920246327017172106771090318482718343536436205881100240462855880816429557832360296742424679298318694714116091284969504344605848761333769845962906271000079962007680304434093947990119477031853413138497448232825170483735554555272085933752864660468901095667216127528911865375560257837755518082137339337394721303106678213753328486782009332332109812519939153215543823444513178784029793577694875580098869001402277660576890097220124292018752215877680277923228631418746961313410950036800724037533286787340437128330467994225315081856799553406804605166970714769924895493023501226898997679632197658864358474547214130032168096389487347087817494797096579157532283942361509345844598038772320755298413107896551148827529538627704385557872815744189629559694589870654340282802509117773280638159533733778194601129507418612285073870446427652786118693461264608858944697030248948238505960978426415917075000779189199304573796839696980019203792736727847319594277886571143665802356290991844142681256027773967311784181027882678226693297943517617582464002916887906608475292614145196316250682457340156963270497151557523517400422994555236871537495778605462263483895347237199821235236389839527672647650112996392511133366881821432562554844945783610071015987811814129755979802390780266154219088225027053542945173187652667865009167269568266989770677227323106244942161675991670350194706465165462859076216410427911944010731539125723999890273816210851737243903057935094376001174241642598891950840045703416112736975126889983940871188330471845754671368950608208193945758874436882183411740835045579065961041395826991064319083768821019039387905576010316568788059784276150190166050217374054875515408396420328280531791650338046837272294582771977006170641378884760580464901552461048148656022978164005817280624219559394981129432467835214432342171655461225733899440583157198487496755032183071416786906538449675210083066747912785786308389985596265286596933680885511080222921991555401066231902483191436099721608908512304228906327340659824230816617466567630351143879868280084843583960819058105936231715833221371816836924465533939925955690645235652324475623808479386412257257496698184875140013772157591534932797366977321046842762418011606138851370657571602386946370234181676405997538663501487458036099065212905475321902325583148651399153397559205230357812779433453269953052532477301727223120729473159237954133562598454340028118711616267452840469569708963033587968709151423011169325690686827586071575363947161891280445494645496666385470963729183282867053048846087663605024687623409445405009403870165167142263567762069128137160280596921729594367852054451349421437541581588753578248029448586021641733925586042041992642511356384628877597256828015800609052658738619555276628999714292306920399792074723000225121793155194266371070692929109200712477969881822050326174070052151165019748308557460917457060573796764990573749066409074174747218307491388973120385220719755729879261561252587434320257523753394208856796703511865016214448921775616883618811468905947465907637344575361328489351115877600740376864056687623096531881512271224038859955183909690442099323932987316468012103596976208926914556346162073280415404594516842828313215548358561741103009779394065686254036698325827475542230431564794673763318384254824624985431936158568486263989850708325283479580745958419807947763170873953876668776550371120606342264417480393529061562032588966457215549311248464886792701640858786736601916846676684589919956400550008722264236854893185754264366594117553436294632945916973985765074458831850438988645419503010993458407851184329320031312101801896187114137132443915789724469777133431662748807577057648234204441385924991176637724271439087456061801903989040694908469684428944430001643073943141839354413278487419901922305180689162935837452989248423150955498955215716706292931065304235921973983283500841070630285076355113014163039395001037035899559522052003041163311402318342790406978795001452467987779599322617082021899839657264940348676993986759508648088369035409150761994082822537635396527899608476513986066145986738287086448986473242739176605692190900152473464359628269233705000818555400463942561913668523308901602700743308493883322675847247322190279560160108794220908399572835353130022975907540461132575064342107791110348033017123141707465137311501148392802255363127553163775060887059315444023985274101791650287969895136485990880070996069413797042965323519977994988959440115583956681607390638339107984939554837356778628872562775462413343225256691379795983353595538596131965013240948776250114284812464564441508505929088358079824686820420506983376447381966373504630766836874633466913569962204897732302751505734243649110844066936045473615638254038068530228893232337703882319319540553648352165000778887026634882045606341427749791356937747993450208815897999969380380270510344294737491986013844644993181812415487455148621828929353132268629172375494342310472259793788935238908528903831663433419638221391845662131504364070604809194711614526467377872869920118287384953849152437181057893313160438489122456540136137798156569865657520311009466293257659144415449031117517236072266758310276627887518438063957557287982171737033360334247235258635613549644203741638725087255702072038911403680134756686408469330011939452538344887142764652424674102467052669783954477554621177330170284233087263893016545451503010337887148026801097236330164688660433037914957160027045431198203394955912254639234255968715383278993117795733917323100820605046784496886813647033994868186433014181736517755603897814604563111038457696460882553525147006868685197823785245754961067635349611188655621231137706006961894019298212276379844388911069014595836854023552662135930095124657780554298688028777174346457149278153870333311476701084144940853063722136580979612862102675961398911666851798215899403785586517034723931236767499059114712102833459279293244691453316138545124114818935518002987973994634892373486035237788568621316601859933236029064032565729353684497734572873366194376333073332226412923238417126759320198677162731143980901698032489760133763735843986388105382950558300015710280850642423515122928123565182592820374299780416748589959989441068355514030213086577724814657937202263193180743212353354842986024977719630891910752863194784001501917417154609047742823558080786223533801783346544647900392006195767342617453851889839969426531785912553557422923438347612028823717512110031721026299418253343481793160065780409724912902055888800411266204228805622138187315381411347415577376928655379209707662819986596744410425392811508547752246301186123719868400488642147965413054512126590323584984605137473182208527631830762158978002736477516312769923762740395856858677726950023142529005023368362603766156850674753544267314009277041099019085516627148219238766780649303697583505647886107341023673253432365191036982559697415018287519533540787048757458355199542663198790653524833945513829119468411010230608065937582655577273420615059710329285248422996760795349555486066644855206010009218920110800151987477003672830349790164900937534762220645814404083606635683676842328820958025874676564691133778502405632967997831873096798719229099307249968369695581888643574444953593115128005826990328302214784836582687701407024280170532317212580516796835376373444144604564594856251990995599207799035437842388016185737234319894101914742350053603790338858616454742437455663397815095658897584781716012233268029765931205193649831629434719921666659934502610111663557105188536340347374978302621620711360551515244581646948799843784524734416653365801509063305524908321983117081177507999909394043081580468918520139333266592447065692048962272673719793159224995983046342440456145389190110491480677486076525654360418615666286597202801618355069611324063058522710907323994882631539458073792437086873692473101268616022224182889258975272941564435804846607068231321055729951320280346640034190990413857814951701918222338990554210378345203325290809125370546746881033144140376486820593519868221868812261439545294300877734192349604950964035783221785111415188330113577660584821976118759104060383069147955340569049410518628778022204714418121783584530194938149658921977425595414730741687895751972750041151529362209728306512852732687150769327570421517541757892190438488068232618692338267640456405587009463542900621892886243548820348343539855530253838875667130111076398660163267037747957776129248400711924276795020170502417491079231532030912519169862494913646807259797623106002895603681686789581335041416428794858123588797730401264774758893573334896051224923778065395010891379512862140125954859706193127797990145520380538830035675780185047559202686241531425257064754022838985702975358005742534825034460632857145443076520460376618390110916873786550112599842773645179677296786266223772118907044446079313028149298527343087942969413717265243018671083365677061522723405306264312418342343242334664581016907969672616204638106422678922056255928877888411834809531787822545540573684237227795874694713727066545474242956231076719531851399015720832224641502483421873217419468720323661744398405497273635792606698533105008485944877797202856462616324974036670068337398721395720417824205895671681510295544213506143626826057832693627103803061436135536092300363916088144115815025238005406742302644173278612641778160115105846704704086127363290338537356689536758128617892919589091741796301349355488787185436463071505635025259424404738590983218130339445276594994546002547758450795847655468750503231982651508169599446975953684427424345911876256060070295177044551031565194625549801688206758850438409535956998460496237832227662437935181910375500383543926238496326156323939456749927200209654292957738092243683623380414009105046977979430198569560159404305711857911734001171183182527250233390777664305009363461333841665232180600149403777196005349869918903780673703771229947273025632578584410714101217991700484925580769141879194935984697540686145730048838047359719299796323104898363760053658206344250128329923687278388607857546996020963490538293610981707188151338945617850452634565538706161747211906394753788034802215313061469692942203590809776624002816960136454637839550115371873572121556724459310125697894501394904808708147722386955728211965655351414304201458759650684462692547580739195299805748333997085726258723979522916369680967977791198934634046284904843132558425791505978511506471357355581102993231467666363660105881880257539453742090425691920630987253087487057547200639003359022752202923420828135756482511758845998333974660404624272749387911177583788052911111861394506590364495747273785973369109970929105319752615834271438627701879131544023070948725132910249650354164321247676822272569977658714574247318403023838215152384155170246158670241930199058115990468189633314940205402346779441709421896700067332901028661630929190585226609481690703443628680093574095751308763193116995976944928610396826286416955716280109471220736283838493269382291071738387161949781980463920335287164159011375865321360387194301037470936437158629406392806362417172784636282560016018462831498196507759646205271459340282553598074581760923184112143657593127955230459565930176281069080461658188728257446561742019598706068884859701260513219598808508357392231148439441321235945441925936723768424059714338519268310410922691438722770965857386809358157926563826455479523359495511353045091623182298141169582867255918664810529387997060493552369985610345138739403756914979975754624799863185644861609134823600987070576523405781413085639346778812882020156784862762859562668369172747825096973429831165202425017414189397050938399342364311728717694924570808747326473247245139383931910506443333148032349134967038618007973428107167386101739581070651703228506750457635194772729113412213369493795321502749649322082959457391851292744250001091950785968493965043257542989482853635737604793096647132019146481434391517516969348159425363378002499168721941609080135776628968530887705272880496408348842213394326768916542418404571740782677272288151062270551617594291391057490232207212566507729771961113697523480701135616194268885450122433480903384200964645731449583013166454743870523481326627343812115590041302504346053038831369104011024180375161287987693184174262252209843578779760484373462283884506268870682968289729674058581991670235371173657194173392455999486896195343476506836631481670322829105392941175104402708703493418241519240317890070126723881078978869299746872052949428930089335736641988484425956372248708566973543722927266608299812460613819030945655917603308470455418002415602495349334568023762417881959825254965883737264195060003649236530350119066379363087802820099912578587880294046808923312840514318599620384064988811479294448867382637442816136731507125360565034864287960990530200490810088658131140502463863774972184205988601332986563714021875817387107343845471508991969022200759691667290584795017202329852956623919249473017992529381562892184720292465413761164269551765113013551027722322164841907685379208881841270197336447312898146395119283946300910158117366877030509277071237207164809958741879157439067771132450366571394181997016963221336324956292799320454372184311317985916660714809760306338571714491272704930026717408657100290312582368530438541853452217247180790733077026846745361580693251992002738494647200876977919093775832919340820626338918621195015531120902437279430292980586762527629741448918067782801904809373311346126162248620716138898068665679356676008038686906572492815701358843556205687538952372508734486358625718321593936869554745098193706889366611292475664308269454027509247527227936078251338133752126786991744159995036657269881778783160202371679949441022891390814110415631319408897055893308556096169855317783772704924143989742498837638816698624300451267546869077215371963245381524842924945351077276476517650558991521176501167430187269760850832922481828732760386713204745932900787482351467752699395420499973245494367901316949761809504080261285544219599852396772309587292943243423584301595787214091554334336074777177992696482677778667962558346874810564488689716571057239728162295141582232293358147598327818747705249966160617233743879944311761907763396364804686130000886433556714708962062879974058411224137761202658744392602734276882244477954650274821525852488238440893134485458806672513092447783233572922975726049571927438249356876774253186555724708400623192746055669625272143089714559008382998335552092944680766936011909905145312630892863840222699401232525350751810896398130547021317281601929584545147241299075082667804145060696046899970621588990701936280443582064511863567428716204614215163472388916848922712414511400981247927332231935367717345591264623988616025480204474611145574018890826289031425012049267646547080160451558258584380787463459841074453236741557589619221264486040709734428124341487552480775409547892471961321495342779583352574217210771951444228132444169772245497561516694055916682795800359125624302287604120465557310025703542047304369966075799951837227093141665091943880721754168158744933697759459627394358641106264471885319193212048831817566950956933098051888161280307624208053502310152371510876520441345087507021322711031108496770406277258477629134047273039417729767282482604620938887655317576680914694236901876654941071191229589005386338718664125013919625119804436533984671724512139124807193450198232582111612701469753623315090047473448959021830927862912323122077686767326419985789316973339301116935683329684967355739801699288899725711678180071223978471194904606374701173046486467421710527108526768920582507212390868080388636092701781927651434596571155525994657291048728640604961952032010520077235748474498703918382827685866569001040801040661927341669262264790285746961260238645808850961452436755989672625335931560172099252678325842315678717710482325905501706223532544499089066271305618213413246640005815894301278855505068747650425853657355692562545080622786088989769817416113682575445849817867677156961403025404761597216162190792164419954612925616135706464608564857111392195324411949344803468947585490608463849304452117983791083077562141407443531819316728386441771814740222297522579955701906191722642724537334991224949172577971386974147902231509780031939803339009042597982373018142099516500724490480959374129383090355380211118880885475449646806333616621756513305903270748703125637145495374674116393147920439879903586028647484068526360088920260823569381491112231491030118786522668253224792303106507505471550546786636007018381656766740382866208265921050025807829537353894954124404303456321989079694042920495904503688658016778092377048232537388543646754724817231541261484405246531788160716610864131202047192002618276564025356999315252382970158288381298624166415611535987426323408249748803803363385140422765854253525789736583375660344434958094714403576748263358526771535542874753684889603022961480190161350306706708171908147483781019600654479161139410428836025070942343186574629433760555897063157821012438258748030899904651228295614598928501930093195363009111503402206426554520529583329388408838335222140433143188889622080129801433025892321980667282643239241698334055111570914932933232151831903328913253359163897391045728023850177490858493145398974826899668056869741303311565237306085734614088001607194688720611576055186031453172146393417456880780510009071515580516862368828317075695579859460048393483418115424136788106749285720610885863355237181243496429788863958341979111829057331741451465824855717886462854060040825834017499269635847488456338903943976704897377860681149989826333780635263625219737461936433697100441829593499911418825554659528777307720670145707790555609115230333615387454716370643605504129301645303565917348522239374869612366470388586345720529395715948949821374367781992860223356994796952990706844178716809449653270526362913859151826213630846824138770429472105566800694318693104887742552158991235565347640768390877306352163734414691052664408687555122189536118670125685155696782357292811967273595297567040056348057650152246561194525633867298907314543661932045641113015331300125626737858240544040066611686961003156721729711875505651842085391786068609201383774797045522651567431393703982545741915016949532933317916653547835879335795526101890314591274139415716123404804013142950894388244722378177260214785713501579522681113639219664254759615136325578240139073801185611431862676566414393466707492572106534167672753292669865973314815385229387771821171440514001964489405024874593622646242249913986895623753802871697388037694971262566645218725617591348600565398055403358505620909833942704411321774655920714126500674354448240240107915641720611714597940529951951752072823637109238468051031010355641109036957351073071942904181460064894574906612755758241434071009732035180763377984355998396963450724979709452355355503784974190075532688958608770271929271945703987778695742130062979367579028863623899291943489009887557372570750937341004241771547933289762486455578908053728031224243319718613830285659789240444504118702630637512385604037971147726627187154417395222150488247733518925786437812839651875750340753364211080063340308041362530623624495737138293114104938365896387492638133537611032819544440195134776417928453226563642173828212253292138379893323356925836114111921507902438407447763810037384423660591859593173622697382234680115937917026422437876833234598664792235754783559968897838481596331243147747909507768638239551919918522857539800405578460606036870062820139879147131814470677388035178111512428337084612358586376430965930691979045288554419807142083626478649608435375338453942336180644642583136204307805370317864893989307339230551251432201918148702082556813489981614944347863970253587444174930816363733292792279024350755197206713703472159227482901961261947897664021685835856713147910182188243344501564721127918776625930890524482942870153948807583598908983617553484432987524951609989083915899368305749577665108591743491506406996551331200609257724121659294326852930901467554061422301685983135832960262629510650791982111970892994687627180382169218701851471424074245515231291942333424592545082819095445347201996880830470596815992360272031787947539816357578047113720258471175480341080044564522842097370816045228077894579681209416959467296939295610832142401115289336623172701265318431836107598332416663694856373520316562892915037132817523070979047650055691293823696063902099512400561140351081790398624154821568028816713550088635414372095056105553044670322752417909032266928027615794932676356139493169872006931378412890688818160717039411347443063966246237312719979755114332609043892424145814824862268863999823340425453210811882026105758281797959271816885584437334484657263325621839337867645999958276911101343442917255450605950731605502851400567408015420685496103219270024056494364666589226032724497923164039741491620668019142060391661959367383376002195186471212051730990389432926132779099131775035404026293676070214377481360712518683604770718066294172969743557294139511183901217611486619056274435605116375677146187641203675833191265492453664550164178499919676831569917108820173742737018444250419215569635888827887134929136954321065723764018747605292302996956529465547762316153279370533500787033016261045889133848936742616996764291455288291164339509931652372978304444255392694154358438747353736602996011094281408363843384756338140667382710560845235730206663860328138196788847208671512389359590242778604217332385673743202744901318750035978320400176232771670562949227674190293121257142313941794555835002151285453389135615449127902075678509207888702307124184242620612532098178160191746840177942055425534417529635420637525103213972839232277824999776538023543751364670472384028063936504042923784760028893862305316757565392949485716134704733818484702636326799593730533555616861208705656821764398925851060724877436790489482140200264762098374177448747689433066381222983091073239182398265487112372414785736705210112994975021332159062330743510752062184614764977912481748124351522637940002133253768260747873844925085987972426496261568074644672330619053591426863339514645720049819539507710891247936243428267027100797441991405938503772187221837785196549600549162770117787487548544704346028118135916501516162363253580831738663220472117925265247476969054535494636937793020970048401018954859665627394091308771503747744773476774997065473684595976267646278793769765024200676622039563661864558859912002387630775870209817456910335707733078064568297267051155222592629697673178157031727476395095991983735130865262007537425249675363888528200298638134249210200484004913805349627445106565881572847190385948158945198918414449436389988194585672548412740030661786319262168366511983696891945575403602241359342274838124817912803462743183616422826098221441054311266729575280594687978040075169535694148427141017302358814400640930382535025003707352802436743170497206262074663838767583622345681211313190920184280384421157310253008843994339349154460108680054666715448721617629943168556453823801363735684004473038007140974578468035596299865019455825701675897208033272572554762353578353661154300973453129958689396114979555871159513776953016566244399991321378698619071726405469844720214032446125891544930319952361562762697812974131619594908291813389087571524166866780943561615522416125037338508304606723052924112962609270512027654599472423659083933198198514231539587872021735308964134697790187914345553586274517428377436596869799669980705869374186914917617780519577590651733837057545616755180584641008824480294844246967864611900715247486719712934280533436587015912138081712654948846133134732168182836999767398107497209585488634280222870025973268192729952859120436584690265176131351282149766947607418174301724620668331003896574887586236151471310407689749227268107286970570535748849058780318638660944829380766434855456699065208717028301982732824109375871488823225780254804901496408598269796118921824095908035018137165121587339441113240167895939615975770259169145444704270230541389322200338237673788925946181443911483841445424497622548022248961430123277724433826481077220131367977881150287434535231450792275298395455207542731742439033022993593705349522880856739202603749707317351674463709445001671872611639458317597339974198434427702937606219984972009614049566436067172811695576861686282075350847550568420791561888557032319003687927863888403657456090918262061327533394466189231367250839437185854187757352188597497580161009842804835446093607559348315172189108218084502489984589712941777362103189890902116482298930244007007165937004373935897788122242628449412994752679150890690996067251513289076300955598031702124812320462109388208022033736004838003674925657293583586496167402322213770797775076724348174868228097330542063308716905656886527094574868922586049243248994450694084717757712399739262812457182782667775189473570275032524069845681065288911600937405941141613336581852127272338784199836544807843750605117134460049769336589790027562860936561132799337104763673704137960035764117804881264773629237865587050515741493110012679639237250791818552549301715211976470842358105534901220216067598898638266072097112168520192357906950968158447125642168776305643966533811143657294550731626535737221945380203146560718398874463186357203247906002271887200076091886433032877331355846028732599326190860840087562557088264915423886715580139466385524852876187140403693708049086541763641657881139805814378007376792525616637943177209638942173530807752924067116569838185837374791613998303579141204688946413252942450085443619589002534036283453063475594176412240095090615535427485214857744273722664134651713496389121263572920608069944277546680264133654509572419511942692178996618954142984518754650493726293255248273395867409259933652339803698862220371378112581520006973441353215501881186549930347491400056731742137166737712141377207392870324139245108284520096761728957657859467988063518694695926851326034326080062103206663160273368273363105215331298646180881804750041630115153978095964482761869237589993086056596865443197772861388822143554287365683123977407998148617971423637282507403156190153322158867649036332347157763951172867562051253025727327828831186579532688731412918356391894898241340234131583299596158754869627550895329684726393458114275923724077626661491489337034517969218550762029749998274539431935520316389350897495388202637434506559158176130171910489830997019318196718134749589650473131562395991133989979509392472355034523626691813457882730474366085742800606855447470911441035889357756341526063743147327219486130780455329743686533993452927131724934152244526388990148353003381093534868134908141839336662575315340303305023077960141271573457582250072704813720142531352517740673678974555881644499494751601486078561392139765482131455423459673429009727140543472882063776637377163511014750095341522120772428416755083654169129117514840324665229610542192549925619562405576324418180986431356199455395608197267374961323622274318654531232682796578632710467130097189116282549860208295107203338423042795102851433575906902984702352883876775145114145310564092213766168860991897692825584161522238082660977298392067929512610754229165041768024051065909126707481909078025076087270033560880635163486933308708520795609641376015928460992625548842109668398101747325227094878532017971701702248693926744314125955062493084807070439629098243765636038630258602110553657916264330456583400144881826667668969522665605735321805930632874473816171373907766118204960883827992513849722061357227927258280844647691342288416840730302794651650410266096932585986838846968801212536753294464086385489300215356483799068275906359225330101076168059568646308956489158883909970441848137710095006372780989282940202744983476723623978989965730556710742414736370495751542274642639680316149621139226928284060668578510113367239302955017512153051594301903556265064160442653207471725364175579993927595681195556173095002614481373244173233929127745733269832461833844855311657735270648322540373525301364757482621595597750061918128625993478164717683391873242089919921775784181915061502400288194129719552190521838171098914531809184105902287661297771352619326153395066127564952702039514757632118871699770305706129590016583700906073349387370323221209210867927483306994792683334656456760247471269911622275497431552357371448200102133254028866963474830597850583254341076692790698089390839086631108448537209871565455528442903456896439624525482430494259313114195071496914114065996362971258281321010876072876100955243654502543156491357407272600985635996410883164649939749516198992226213745650515354406939889820926022699041492566779960557985376015669178255024239205518761803056982298623550150475130194011162648280705991889290978015251549946967398157197333707330319487913398497169707513213428560320216644480034559888939220146009077588528278257450574050920096842336098890546171878417800236390201362236311747883019620537380921540150971975204043740367180821867277446208626438905588670251729722695154114859572928550799054469486860924721576882599462644682796065867535812280819668562245242280753914719774468862748990893697771017493489280905707693399281712184157755736154015975253586282767753425783147962511934122498977295985726321028819260872174844542728499214735209725219497630071504309024621584979373578707497897919250875322674709121214017324273739864068631332058504502182288427953615094644453661643672097102330034935502962336166719732681863498863287388977316680089800792294398194517882511965074898247586525618922299806143130774542960559755218894311037316358240892186814601524720094569379661696417833767948485886723097273309637153169934221198088211399681331818320644915847380274115838268266754165697530733006606535469454477304395921123212449627419950404818068160632858912268719128633663141986644328180262375153734224168562808760775336740255530468252322310910821785070224375513836653390961528106010934056476477039722973232012203269646116297887428763018994242713038450672210307932248720993011442315361132001146408929022279127429943751550538859906801586625148729593842804737823354818925528624089221714223467790284645619718744802607513422057389506947616884235116986652955814999897543013839705040716804373728216445324112780609030208789285540141074620792076542548321898214992963201057816382375033482099826030948149646104732279840637374521020175950494866113512074695876237365378630682407535323021788133268428101901283376643682966175901156722681206239418231488553474209222468032692983836238056058972919209141033125251362358419571488272819314907895540513632672463567891679921433456254686035966950665447934725800673063054214362802784212068188751678963000400170246474780018164055156789943635673023600867733414132342482996966278436712606371610410059499147063316592792534892711161813675989032888414883247354340039667862594405395570366848267343413111999663124167319543211910465969779953967092299955173685384401981286729970660819586149353599553163044408775151969809063840320519090083650817185295484983716341871033227797466970646375610257663362078656489707245360436344199749702892153936677993386586803433823335034633181512652404217126449637479041060926375455098337736666074779794288698421114372982124993143076256842466694274636740048162187181392474966110821016378969671477972934312518195310665544901058365134338916390596376027222298666978206486549044976779419843998040108601589300725159794041584457011754150537230634721960247010130028381016841769499997791491980713697901424570311593546937428758968512390848161499607443034762063502101812757067920879145644921407760081863385977512931662819899922803179073486172000829791444132433049202470411297187391881783235171248523149001459028568743659827740258418799022856259625682317749870260557740909879499244565202157643949460485471352088273512131508879725747835172461877177332379507409221228171474452249750003535784860560240892017273305326868870234781385511871703628079534515477805502070544785962872947441182915725307787406568773459213388927820582369307849452156649561639543658429305643107986280477517150025807965687068598731781765009415209019600355302628952312161565678420313219542798955372803814601374530101869624333011283447560366514238906275319296258396244550735817422961091159808394327701693765467963088147015491080431780446817447268519365075410157614896174007631459198343596005710795390798919354286639878390192425279818570680935677899507122604106826598403836753921828419743389691176826786034141389090259806133958784659034594567777944749799914134738357168515016023606253036414816261627151197939299778935688228655931450278643945910487325043860551071590453877793331312051363871511867145306460816334381905166434509901670981224956431066650853532801848885585508192027501134332732639450516416010051952922304974369724209843229360101432037175653414971788711893812115037111920367891330803006211799690943302695161478823858377413601750424841262479262658370966183899209197104552297114571118531820983073891783668398582363672402601872185298277310012582846338726869136285069196364855156694790347794661544026823600380963749772931476971770882151389315953444865125205541196838217736863799517002187054744161909221447923456118737465921523445237622938039486059949886396306494728885428339998654395998575791348283689677073650896012320007675431000823763263804432138854622900639630043527132378628083635152675491210634047570674316373882505132987948735928756728332589896836382758606964332789966168901481683809227961874060066421855290107971933372171688758328617451907657996296465906365432253365565229513222165928581191214971980042673441487626970227834060447000484986196318799630802745029271120517062200665977800306968968517310337214379419321752670046030804196845511522042677708574436182835486232166603204136752704905666265050435840341174935402822518796104514950898648977730399554726955683300440856446880547900839070299396071258033038646923768202274578731115784610280682209341168850519021546942776736933862369128542273323749312122214298112335543049023605855498265158684063780901040153777499687290087614990112592230270721548979598612068483934988520029340083500729975293525554888869246732564510840678400155516704796726554255747455654406618123485721854714004351411665337581793307727012959874045037702444303190876576218421702780824198907675636911415225903050983088699233151177616050813547888139032354471456752120567568358496996653804362930448105893401396144681370355227360944754611415017448684488433272648681741439036055285032339986981998180573149406569938588916094802211692352914786445404793005463770413773015108804761248184326526440931541797298877307972282912844844362195775211886755510023095807714134583589690111868434741007066715803750921979456851268116740916867845372898090816474518859113602580421850208079144143667509487565830328233900997860842324856507298003583439148846522492616833277770042149570283468329324008210212517124585461172379821602188248432027761098205607282238695961939597515354090105011929205818834338752116004783794506570568219322487378585560960212378512105392754812085674545986208539303910286598474419076408174845633723989670818146263263579048497531881433148092378467130370719633461967033950981160076648196232810371274615171936725971321764697590323625026899181200732829525080606048548392829098902157144906462548340666937852781065427970652648279059530650603429315242797779490364394335961539167434316647169680123655567946199151621727985479764607763795671057215657751837168402148698776656649755109347946206087187293265193971287936457140484310020971951194427174540829428387765977168937793531550771632929905261089301746391282323341582026568222405874391986038235785482177103244624038888639637426849422988592212267616066584153941602573371702541823316316495863850433303754201659624712560706886885641210766237915640663009862352523651351593780428152555511484680536095602051926181551826429481399511976436135569666035548349891231747766583801841160456023599071828677717996768133781615481448647299777152593247102763781412021182045116539711371158305610636249328421612972002890176603225337773556169995139531301248777452579124155744432946846031299848047683574793693400874456459019938994768103542823546462391042340191112998896408798769967977262442841036990901808233067065932201965452967204456926644083124169458780328008052207509653739477683607709670856739159142445862889384199188856518399396105215568064297439673561148060494698736442699118106144851035085308821286146894220307312531165313214280144487924441869577992895958151416643035442415083300426455201981768551551463201251325330773585890289287995553296149458362216086500609825335086873080992794869915421976716349627023953567381669599267378583557986710435910403931278913214530708169056648713046664026975789028120644930393974941192520825450469569243837341803723500333322195164979000954696425097593348604572633899793079985549479602521194491018726052171288235514413067780489841369799258537583533458511632072440201198595752388124812272730771570671951786971007334643485772885823195495054756235743537061493677993923165906042217096003609045042334725797250002158651078641109383115412126250425295543457609859386621699230902037649668226214164656727560830722674015776148761236780965871138753816364020483487980521369051870292547051998313477776308944327690144510234395984630093392087087314288641570349243507805404302232720120457607252602551189485144769228286304948861890638235436419595323308847847189758053997381373813418759500514231203795794401621289088941680639723911872582753586499147161152614081469845783217442315658970626563827861983489265967129861499481451053420655088104528875524014855626907959279793683787091365675592983614166288065471896066516408700746426590511254097227365507655074362114089401010523736568725436899260882403227155051546766552981226019926818135688910040960984483105932223854615233656004140454895638273233104000637556052829308987027308619567534738579155453702182284275255723693537828785868578155534368757225537901770251927177794543302844163707978671226976716562452983152912177731485245212558877931745200751438264031818405411246195126074354644386763518001175194419915108882756977902661527436993380457421686859430347446922952827467357148547695176049793770965543283346707259046358826792760593087764220894748266147091788955037090914517459270915573044225934233413316182741302077450492829442742856233000448768372360721492309372884961577899202738125441170646979264987805198563907901521244860072346648737556374945413938414180137418252747452785193578904469918717557762331990471957676599345862246214691121109818875674268306416734574125863629454414377227099853963851138983430380685377537603060691603595786787877508424014344440002947315358070636077694132908719706532866251282207194025693069747967371016226740262686468065578481005566433336405734253373087844360997259884171463919707608489393577226915959643268064691300821788739167969206504970220413199019034520607850956897896931787188269717922066450178698077554805738395223021950810148230317518555152966552093807815237801216702440521891016265918395059874990804814508904246681025269744135676760782110226976641937825659540889695241803765309880320615708260462994364127188107186364086669603353052066892369983826800388507628558460681116942181452082489801382033345082015575891680726624594332703180975383062478724492290835888850942534530014841604231053518345366996862123682792088760860587717761686249055761783173571262255111390803055072174930640685209742624925535674518963103642833797829229411996931808373974120914969107142244740527244929217448806855874796020181225915419412058540933589192613228163909968675273922555208024811839132585899428991491083339606907374263449514579568664204909990902751494280037974062714467411265881521433940614740522665721043836410050200563923397663519819603049378078863363676465544810161770639033712894433540771761685975077160519928564161412306362307249068149302410617269016564751555710783247980333441231029762953546798799836251002688838193019630356050682505363557795832111431277372449651161341200609360132844992936630290061059166879535467581643967151173724474988538059130488485605424914523692339798795031190576650828962297346431445862901543674480800540882156020356500780249195969294392705739522280309450472778177058824899516505616771870497961836193174204952747521890766245124368573549382819663858746423365654748182412550133024415355485532055997127464898130184723060694398433927657979139096158493146903478987929541280090596185105327610516246443225454557968658356627784248178580025181142381700263198609699060353691637301489043326426937424309753932098081051068418570522869883156820125519423090223630111740625561464530275173381416086082756429664079720046957901500162011194998660517230934744153000231218786742168753695987128055412512007739084436682964698369590529486427672636967978321081710223263603167069008726336699351718021175854354438936719554010852514597774551091961585000480044469321119080509259075152425154100340159324897950801156937862642732708659913139406453298817186032222786218359433020877167946996405343353271952871494388228856326634190413752505720890102318321493222402081668732105536744024815609306435484626061820151409436039945756949980899275476964980106241989159470921954423409076345686564878655786085692374221485639516422859791694939662495636450816539224243610095547781865045227900354559312849198231642791003024680579650494405700699234784879463947932170585450730663461725230087311149627243049180794736826196798016240653732658507442633078702224692443563363594724894597585125418456720717777303519228372371884445644221932897002071708451921454701371215426601273395984258950752998019703220120628507422026158333441392653885730828879880905748300850805916820613066313191655272263812749503341671842703903950131385467162811574369019750157164702141781742642778905782306945635210353916767537941141393381056656487691719125878234006737064903190417551055587134788813778333169292568475349858394362706582098149072254008296827206924032054395761462094987288543108048658332671905429159447663973358476903999577362340967062380328820347547584923811624919405040731041287846980552389319311460318849639328493002168134239398209263712693258429064120801249189120769656396298254425577416816321223057137671445284396447711516981879971937711713354664505418334914155608144315374448288147997500564868456739682335250926008968965430838444095810228835146093644167662894795853583090361399777006133270302012392231434252148760342332627984753070705386881547619224396818405462508283188744539784009499357766892543939895296927206433547435658731254604255830038281938443021590346554200667398795969102943889263348887434174964883025251223802056889988535214126701389195347248527215081452229581428317938980083653247416140675737990926267662008915545998077528476827489526922882781901736678570041351464825755262636433175352013426549610532770732726151760988261825901852382536133135537027293117617315979278604536352816140686162038904298030084294219294054689796047431856785813141583115613330207119950243752767214915696670478292659658291209000857039363830416700695654731542622224966423750789948876228219840650011659090588802592159733353994860188432886765385861667631721624407051753720864262271523015695000763330303550122634867589006065133923562362078333012703500415781165766296453079963875282326159836604324667978415760356464911530181635340190043902827213726205772677288169209791082990253327380561673900493191415478939763116825568624051238748068599957570809318563021590155082677874201660592532939254303316016409186015168390164708494005273044068848308556575680892355441680571367459046571007542529189248194140439188047667042996359008995040507527411893904393096086486465670938454799658333030616245290514362817687763467871885072315972333102618753900716344217789099550521099914045261865475745296193315717307638735175815108512546625529725368411221088953555786810652106998753540362012566758532599636204618646847360848962396575635751113015288387263297403112358593594606505174237742307044295202702059294268301953074677783101944207221772363440600653821696711607733860428045131402022960048589423975797679322130983190737594839242794724638380137827783476502225498058541845692641672480735557006871277118182043464807515460015258529622703735403087935449527555538011288908650217423094072081422212396981360391246962239302489790292313840358822797396760520665354092974806348717644611648505843819131405837235675617425381019795072267128526980238802823072668825514025766776425263577382738929238532733141402758910899267816100968850989934947665563111612959877486570808569695020835609683807907132658314669486355985823733563973184338749573987642302448557552175186495345635971304282448145354599531487005454108309035763754525546930484713170041478075650221006840674568437811829155112747721635905902650395445711248548053978798532359577559759053180843353384238746536457238690429889806883354349984530022212344536534224010684929335085780182745936522238281024843734321584076509309628198866789130227422859553646025245196187038759290383654079964163474175043472124401286229245989485740256897016345574962581751690984025945962793887736167420684086243921634598608066143338597880509521221265352508518312646305967756310809303894051121706320744066124243168095863297705749436959800336800427482980384704613040308138931598808879473656257712812409942328584722123676153035960512937604920747551769793180270366286415729420121107461781983915134152096615705886797137594162507500452730631713271559751263167861205768031882111240412504183677437220884027787400627841903257852833853825171971978296677003983583157863260633417380079649734767974072330040198926136008646684320409874164669847016231596814408086849591449033067150080209151058025658700309643760159211125987630583298234150598954226404938281517731189647115808374393349146759815499414481002100827940993564241440301738686192912531222359328940736475379896527582533938099712002838162816590945440683725565830685864715528389995162702563539176422797566453167768139550193168345141481730290621178589294781505607655492244937181345279654224662479478738380489449053349611742692174982888925902119004919210522747872415225786566748755697831420425656841221340985781082428017321754521682620160719729520900459808596423448832368994061393324301671211495475842763175225616539325954663029905657002879662228820507538452078081263741561078842399144924789662466393835330685006601806237091194153260135281065695331211142126042136348424543210407683778728184139127570653371063368578642935057717388352309887325801260452596302668047033024131015817540307198512296703402134882317639006585618273222652569255668599582995091549980689165918063746613933083475418797972735583948751539926136101757151254410533302503786610607546044055733013779784840791957152968159406196515448532681750133457611563483654689920285043193524785529993807934321946048574021328967507207708405727602888604514456445710532115924789837913487019697647040816108199822197241186928674426044900911299736235194666571847246664843734919543469417674003714292900063481014779173545475069203902289262547756632354333202581777867852674416478884903747031922638854103560042061458380750052431655049873227985191814301524144147677822930215441346036594588099975808818870295840595497779688749234849535153168700407029160862780709685038501840965820456625340945060762392254592127028701406770291654605270920559162219750515022072331359264464100380850441928321182580980880593968097079337504077331096752983644162949921108855531908860809141899324684522654106294508906763967448117331609816347030932707278390931286496209479659363940776085318013797612641923387026993914846049160255874825406155895868240378439298838286399005555753227361341446365216742047755560825525495468856289179802513788024966019487231728485626871679068228254291386491818388898871260575247250201583657151426645622630004770025983583055520527872240228281165750075028528698946323999389307018999429600573978563582827423299203907716357223444398799560657445448290938472497448502655706344317513030806020795966264745522683495132175117590756870263421171297052522988859746671913300123978702569075678678563434271879601317930863638196768530244808473705358830251847418730489180730388150380111560377195703132876759942641317595789650472598738900420101702129830317827729723868593215376347153922521607008966820772848934170292244217780596947080550565828183702570114281788146560914798916119859697142624378605591376770736278988433783308675969222072273521367604841203221610895184182442030865782393456580450731688653692110727679613868829758348358690463858703257636551319484421630674699891377119311768689383616129577252105625887669864245445885827878810763881183261952069594585547665471742523960158190796058963591006559910290995962921036683413061504512688211503382304182035445378134054612568299175304326831163970352559441489882311803136661443568329108861420125565235868621039240796576711148448988040616898500588990219557661203074123484089575717955436064470242820245640756640955356253434118367951436783627441309959062133484326675680497262691738618370322432982873315972151541375685185619989759407079964522810482533997993545307066850230120491900761590258486706413103973878496397325593415037061933162668777139848653053931663815093006520329988458636541217653125809397153363614636311294203569963898034615004193931229144407801109590777081041498047805881714243122890858152024736674673131570757586896113882016750390503572971457326464877333298020664221688248485846724377912608020604520359470511025130580631508222426817771887012334824672135214487411549446805678762512110050164348178068141888559302738699532308837112798006571084298800006837434509842046474668001703022875027980409046036501571099375201337578522722704543012370876377643444288146674054142824769203465779700102267041720229133325522420578738388793359543904805877560571528894555226748962529850952947951798867811949676985063696170425873848603054753793278020934713077122519539061675181810015066974207915622976209374281971864671553095457567345493981024347174091188952894751657172082042466102817974587774523076858642600559827996676172070300134452572616414524603143174126868722049104225564250637317121734213797886389010623931471870044338115920898739987521631122962348239829992479316778142187525880939771168033844655722077914655519949988134293786452869160994902594922574524593908268104303803910603341750618706576110730654639658027086630117713052773303792095866267372471588122260907353341344551482370846994567046026779037685024509769367372758857236208566680036426674108453739981404673730633000191784817260327504354759123991867648952832169375998165911648145229837524879482701500676504962262587174057204384589839353586053219041009640712117715618340160439760291799884887496388098285081873772031785906214304772550981067103147782477796514478000402916976529583474416609153690628662080474314979179846267197340957946220139927372025598892159441827670759364573127840108420005954446476212822322026079559618388562144430220016000562166904372698131451582728006212255886848800101614320172591063380220153232858423608645372213565725741714502807989707555096234313395278073990980495052830863466789070927138195703337393145385070968617566258397295848232354555558629747589432309934133584114787592909845357365594392562215950374313381665439993937290617774339577613510780709044777171128293712597386355910110357313232256692318257684241743009091586031046212871701416633074364503270165667294681035895533791274648295200407957407843610591547125270307444356405888285097134783342237004356112365279762224030470826206774047919484002491629412514319777078558521399529992705045198323298949757382021540836456472734970154365788416832197533409130792385872851661282407237237204656353189665874368704735052797110601686864132335017403524208816704415719151366012378924205495069229981582166027541901627625330376418051060105662707087438081263469222029482401198724111396909805139441793478840140143077275771420245125615949413394773527767434533155184131035843989879367495076088334052056850943013207844906910137798349971726379027315672497400575679446962710541875072745504398768180244526957714404358534365730682625160893860397617853162880842258187651923562485225818180423934645148093254896055177533005493684275810505725230707869517397232887138326511759246228671385568717084659771944625279645517537682247580663303579715604052679805475626224945229865711668603007014568626861967902095703305014314571152216278577786285144557920641587411296978920399629002957567024632122481123096958064587939808273286324893541613781272369461662870621465704322428764328927226729202271847669936997084416062367168245368420169673245494229422479410075071932612487157946327931137458959858337976055479074683100681918533215227845402812240855754027818056614473906638212303704602580217022231121100643836605100304128838848813738004868996842364288765182181330296456193962252439790656724827056328895612857508560807967020046524253539291467352873220117960384111498347660434288808667025662771556185140181591224170812232582084373731878169194862899342180317755283101806764750099366036361687152759994022923274247389994818972951722269086659670329244944792749415540550925902426251145383730001492617619013803412523989004319421431108702320297731643079311026363730923982001707398560819347561323156984011285416529720374452317345179289753132166137611892833593677028938868932975214149031435794651768534405094630465517989960267214512283091397791701823429107908566000767189893670317907221902545233745977969714050655656070260531105830140461744277826611079428786920213641559408423132808779106863635615364842827163293887322237905367760971425013523000906589235135406732542808943682877297029498641558769282064365742626019618723877881953023850905313263318119400129379078396333258059669511641794014781645498866855183928982489154823595829221614857069035545422096227462692602733857051565255370386267032989795762917056228962006615508329004570584041127859374121997718220441632977242730121218783999696176186067640583739969224442737545951762769873006433712851048938670475198992781632399538590600718003949220197118892273173283653744365518052999898917397743720597971731224328327099398358208588278776305846569542502504482269875735131279994947307890465902870337639562685649647552613278135584357341473306007101614548460575251244232350371134575710997296054565676877778030688183384221329123761590336455423963606079636056576257442686342050387093526818658675457831342445016012643625627258572542744098378115407320172384692879216450020099329552570589614275388722036091731752932182128195203808620401549009694233393594261199074266210530552483173027823518196293672675794477091574268193255149451663519668534044850772819610681056271700674340289740694375201137230294927083334333230790740080582118220549304797620498836516714202585879738543177861497149914580826068602218535404284774254291869726093211681097699463108733349254456034385012602414082251877629062589819592421595146791139884534140261133864810151458468524505005356347063116041288635045365183856371829884883175046174783847397148784131439354205501615745233131166453829719540113877237885976023917970454514207076485909163709950233477689857789934454643225394030938614675020242612128644265929551487644705951025564994144819792206219335592407368736190069789066912507048061242731551490067630166506724243716861507080681480114342446420328905542087548542366195975786086021567766393363164500189814705215612117016692800052533477398110005485142931948257588440480136197931321934956634421685266717549431089627824878933043239391534413859531389663194259582681580127261414177064992575801113385818219654660489725063875776784282124943028395298304410543079368646020614899885058939466216731951027675027612380596748760802883766789080065774958826288241078067661351314513298419853583033745936743712128322072302251860560755909340765087066542675392812194679984005982701828203111247839690591696284265391209844075968515304737825362211945110074230334256408652555197214110147744124734247796273690741248449101211926938801037024117107734921126136096609849987468750383563385594492829908652592235503119247035925851736960748672565746521715408215638339982366636910859920767995564070077143173224502491104557417961117367229808414517429654026152209028087703666884875678118599725620325959429524188301550400137614085808805363098313175363546513168797947487325930864814961315045894118184098901332255893476422883612072049788565315325598339704548180755005692983607945576203409050121954951327316264817593894659994412558175636093522513934255311291841548492924565787065116708054979213154050298932323600801574254810093536184344482993203900118821253418876632271668866482797889198249275570033661493619013823365541078299748925303977683400980079551555472169776795087527802564766925833152579514524831762684059893650167944645048076426590401554685880643347584598128820397240420411317336940581749586790518455507921713911007695257288888530873203128786963939266099407943182660996588932507298326676409752494732218564783428630976966853190535693854500128607506722381202145688249236159314437857657567109934948762806147216109847158065122078803186090836129222940831765015180230414025365702344143459184518450793736760762452399909173445881510286134687450951385396288853761484774832264752354891418454193911480911621273691475932691609911790156076717738793677731877804469069855193393253182617522516514040767244938906690628067224241786847963773602983120883668968527039929060186082938843838967370690473362174752936330275599333561774443248763121703777390238912268940246441050702070509405536263017601939629982165905671964549674357458377513420053871714176309684678887537082280734111237480432980533353118478155186306767875192024517050944940149362270705271735906708024335523989027755364448474394225440982069223128604151517068221687905894268243595342555137730119087727695677945174917277733058215845964897689987577784541863741274517489967946404500000113133088187155042448409503855886769199715154815512841663193804459817479841895827241078755392324182651298567695755832661544173205031271378604850725498172829630433033879237652562322356770437705718649211716698654284193590128350075402245949742094048113771011414143169139988987075058478023582383696288950211117156354504319377245976850386197028365821370192907965376297354148199905514685085481687428432161518298147784402334037049122192992325765467736295782359235762224365519177104793884228681287230265088889137108892176019643161655159105241561110842178721060599503375908011457226110735996228066446009925551061249009292968985886405586724263909419184252444925385787601691899701392204381979532192096799302790607887367941765801467655402985810934132287063876463710125184110927843846818709974675439659152381698192706681101195968756585209059324043578503295625312358820083284801655613384224644935868496667657077572267349514292415531924750743895416223782501312984369136739892378776834166812007660139463653932695045524427045251187575407224950244473039186568000707546559487608444443197618331898055891198207060645625325302499759920542696505653593104086255371773303301523664070707359102484550457100268404619610249173343781668073170663127903070774897742639105931110612726799851674437626761790638154180768870875041828846177096691880122258213601874233679816977240171351533059952367558183753251900015001301194053247191735223204572162546411847043945507898712240594662206881506026602126826093781708806140927131767034974402745616611382949308542775608182494715086549243658060251539248259966277189610576872989686240834492675949744474490731464528983397822343739437507479989612914793144870891329972271849813069548374770333541285441238772153806006853221825269963115812733317663796398375431529419934577669500640987920071219975759142698633173660573475919975606079137363519247717224893538247667073779124425974877374233644999336825601992704659457386133742006990517138177550054981802542831590343684424198090287552517783535366974126309917976337354116265809571918051117335399620952669856561007443896936625926117123095007737804164209652588979457044448055840851637971269946578797004302444703816994058831581389229209709376522713000965935525268882973814111180783658565873020300623155751194188841004208399305460024858186118532653970403441573649262848389958041236768227758880719159590585533533905233105251564891250553771658079606397554502268221203006023332694227888848182278022672050025998264891605619389722144758107355000397364099958100842454433957762093741712960869462931049132416833269550056021400106778599315002777825790954768670601350908011093649393210053128617137452205565451494686273824895207524410331608810522282357623975568218058016305730481678337756585546352836973186234056096831727840126364196780369761479296825685413230855191698303721481940139833396476313849291820472029280756431619553734836523266256114923163474741773377369613011890512099467235414729493063606081382091871602934858336459730083996865022370878628199637422422605036038260514404215713434179593123616005585057572764414655713552500480449941619334537219971561529644957002550152705500197613394107906574294456733093031943086044317934642996904230247232273422096362085302605406244956119056574423050016295341572041808404994090755308398405082083369758968024071764188085054163716525209770193516393872788848205124734466826286071101025148769429480107615280002183112130496738122089298589730786677780961451873671468699516580225124996611340527813567110963124579654518805142438375334596594867027413371820730808346449662244102739361287629816718506283419349717967701859845421650532885276644985665036803414142770009879782345164919236431867840755454638061741541922959373369334784414911351365971218711504539541085172830393514968270132844466138487331709923470107215210048814902527281796645056055937279412356690122783831846730828859866848650353822788557628200639250740553895168798060808216145845034625743139110281609351859666687072592891890557275428943242830253687112402420736511815506611728000427843777562930172695179394373507331022840914899811284526641191276238916735188213001361648434737665283209056545264383647076295639972209768153105663219721208519215633921348537048780841971402154233254947589819134366979649445146787100226830901872877755563416423112976972506675138277274127130114322791789107318385258770898440000918693414925898140871228939391101702911933181772018639077381020737827469984116511016418239482913999694800483884708349514036706726514369747318550358752073352603974106695515244505471125336857520363126448102496051378223324408547020519896599903847867637633928830505349823894151049554122337664983661480413719551169210964482232700973922647209095017624462171436821356552360489653031925268365412870173205034809334898321277911644740457932654495215413639696602688689125181987562985738881519874999777231667338021651363964250884520096365833272484867076856799292047510887703591108299971632212658579887524342584825075415686512939045897173074807717193452204981278972318814216770812512670659634608622522556797148913677439726224816220171426887909475114301264732714345100651992859406510874327084994022339102815888131898190525178626621519945735238309797368198704052959449261908637082532081855196911894316262195813329442571916291331746743056476838512982181610853395782124420606891473480110488855578416252247901916199312703990404812069663974612152767401597195164628734851796190525883803044180563135109291503974554520245876538249085946228856089877649377397337896889249959859652237769845957758125856584142394109389834709396691890765973074686448605641271498081307061279165033638414238954409892860723363109538703673419793245541380588390883013653393406078152063617945414013837664753827896163200311325207211660652202570948340080141707921957025529194055510724470720336664875725481693129608315953503624803204152363549512648484035436101420710020143178103126034605391694481041170651592911220899851475964829513550506464890835133885702000236533157648170191124165755598943910434733792269277423289716656714859721106726865208310314936847527674886782370227206244259545702494380537742720999842380251264272530138810221405515421977369244115890805118950686195329581146561238932219508045077772528252587274757752580446675164732557787728456962262692901813666088344255532784808644176426350412892079800029370273666987872079084236756901135075639502733073588997949687904787957350348142381385479884616132879510931102422194559737057004395020795974642977551874485822024139657892424220564751614482597392819638278577977597028070746579910282767902948212303759357797445178644243178061969416481533918968893627683154426555166992840244959314827993230028424431684600839659126231221289247597675493709093182301598413643427027527476210125271166425563853100229683549081691800992016566214569392862455461328802443953956701639783645164357662297808722873170363187349626922818843702558327696809242474023150791944024233891078415824602416207003760832588340805444291840176401569471348799936005335067458917327455589769948245526135966876999760794527431422530126792384814083894517688238013808289838519925965664344905410234276783350952696902354696190181038675873545971776506930838648850441859033182984678012400915199653291883538060971488511982828518067813023474015865809673566468492847997505798598066533499399787247498061228937838674995871458396898752607979699592811342579071042044279027805509955578061470452433466455800940003085271459297840459282177407997740886273406597289240489032359442485845545118706571310973476045095811082164391898177008522200039073405689910236604737273335764503774253496903925131236601765052710275544737723477806997476514281665886610775844893663006872717057524691913858149166337749001023564170358954083821281700595289820136111439780058001054857908685266110491830427613328238644001031601615310849486862619438074389519398580672961525997397114073744961936166681326329096437813139628719281101984910765149045619315277115505885389388420560698225102566398150433691752333778617781492113619754864217745832081017877324157176651421342760501117981836978595598099417748967837886578673698053041906589363094033271919791565419243322536198512368919344951353392493183097839254218478306581212413858983389151210880824626848158454706662679159365304267049842396472137103702960502519882674748629652713090142043974197739418973116909205776698605099739251419258611459648623729964700044805242083093650554771847032876650059220288343072218834136169536937548379358936586479501799301710744164918714053951500384306346908956995848474134816277293289592487791063243726187882491874320585897566695328736896215560896789065941306336309659148792068106909802759468408596103700591920093614375897093132679010940059274463656969779639679579910056526808748992319118611930209505437950816743129331844255903323778335600581101147169194610956156106610913345063362536890132428460208395795519749369427326621344765380085171083513789367872145752696498446552498911419469863515293195640358347360353218787942871212067713509921897328119263190641638433903223448184835650890626575709636109344073021037680028066330900761530491722652869644560109997635652439788449989001412127808786562634173691643822119510633084647457202988991064400879844493678654810634024949951855552628995927352655851886658368669351366436882495424500536308112481830772273911858669308955945591964111246061721702086525906710254906623060190161876134982981113148478259823728415421705224034260683330710639137995186115546441641752495193457635743414995657693739908637292872776460558765653516210254236983418744622769090928621238722339736411441742724179572666773194803232779827827185414243016959383465782431117535938488843322713421729583188972357666854646816745409592781124611296268706056720273966635700267915507773941763234413271423864944064236950608192005415260382076932610987229472822406348280009864991337593568340667852904285414240872088310496913219460413111886089355973653851400936844370118398804626035446243375486783878344110619971268129062955119302044539124595289923126391582770788309749431702968619483675328359168460363982043109898006599544857254779068106419623464207158759261103680458327864066985476870270216035193492453686561204013829278303111705299778496810054421535837363878404723117828324196757978220610274694238006168310716623104458056760201876330494904366691812624943206406303623732448717308691149270870461232321496761128672196551342693788954016052499003485120559034644360034553209554426752732895600606102883328284730323130226362025146092861072924741843495185628727322596558382722572720928387712836234018655950677495365653682947354672498918930778648383691537549791875640836844124952613230139619666100593605288166069128394711293742324518297994321315953837700499610391891379152487686228306307720503092667325022250818857215068205162948452555989935007404763024197305421952926428490412834607456708050285622266103233810581948091393677518740104974608129888564826723595465015368680929205499332116289142659462116804056903605741448673978821751329984221351210074244124033281049600756913312520609744244623747504315748037731908149798729920058954181932952909743450538524884651624948977241245932899964110646190010276300135303670444271714094596699400659209728378686385439564146332580176616577834080154075339117080666715622188286123991774606646667792456994804061673180010347382803780846813527051215185360504054779754545731206389691038498791959195753114036256104027625527710162582389899260062172335415696932216589637228501339813063058068397978247797949468275079619878070324508976890005870100819445585273852974370594764728702404053105784221113574472868091341263973397700476385025647414985882932982384147937993640431594757371737324122801241505958555630622217854611513915307488243663899463187557969256946978206307500010866338468299162150142789751327653131656892615424095858828437950669005330313539219795168233492189947993425500058554160221007565137205042074617527250179187272437882551759396810002921221310335255570472430685599790401053832515758443273012566127413575223944052252136137361521672072518778955556705369804962386707305142300999456759850734178591952154208665904975209793581701340955593305863278150686839148671203681945962983853798141277402054788446020957883340384474559591241130707688589440132864519474836879268721325252177076208794828916057004040549065437762314675577050572398667246123118638990881242560506910590361647679344713653971017564891375174228909424846876184410540334167224821306440813042480479472710612440817917058375206701528438949298438313089700182134995346552923625175758846447285268772550938816286067732792457768796146883398275146656178190875624887963869822998036605742135126280929102299373437825498077736802317345915471755444214928810440959685044407089125983509282078684227737754864126235504251527593169781749683005618507646773902295992106732155707482933495242380924365131490781030468000185046563185577111984524056511498781889128171262995356433064438325928691391848777123661111071207379591192015995164829545107679613623019984556874559970506958674067846496500409582715490533888044383984419356834169454058020396507448784723354682618499199598095370131373525178598909640646034181592451975511916855195908412412594063061119593579004801726168429981047046202936209152777946460824545513902287114685054282892209566262883263124286669522250562739137091922567641844342285516811072435743708268261533591118462544039901002339348074384754824332249015765141380945887361616830876137588200719266089007366241969667228648091276181010873101207729777447314130606310181498519889880998016356551296713493623097000541517580538407097089900303351266806722437003145785684142990377745409848824641806030154621140691807238461271705917844931675932427594976063829922998091994005415569721584787469382139009701869762950344659899486524381600654047166939690284397078853210882465457007330963538641877032371609348621928667562188991550069071147895205535630830179539885442439441222655675127218207550956464318970441992165586980516032249880414129874343633421403327766752453379505081789148123201295232102604851956087114910202843332604769110685272860402111079217993792076788995707262119016277444002224008562005886310055852063957553887941302399861659881956656060615320608309274677894350762880732321555522105796697409567030386074857890760018798116168551562422666742908946703686496513186336297299199080733247341274121306081463709721430552607129103412784322851127110961700391949066395504613655514335858083349327457573324029089509520501811465837324752854632818978913963539085684447685875254686503766384530558518281015440523896975390838842276609357087286093556340372095386173952167684691310095560382044095181686417437921036821402485317290560657711166555329634427871724069985562911938069108624931409001200204316181869351657304336614988081215683137564506279620511338154476199203625343782047508738478747843808916865196370119175992496325091015194980546916106351647929506406311048163216686672206701909456764165139114232094954324781003417474355084242187698717968781673088599350522564928160315163493361625389547080022588957831110032315809577537974584014892382443329379879899932675050956749718097800359991338151866774625830623089055258915687688216460336644273761210689050290911333445078240252688551996076044504720565657156538922685870142860937120917006544702649735424218872574454842773232300326172338448502526859008105320212245540126595049440731597087607984237843446213300005938328053766195799307702713691370467371042491212254363658463007086528303651416002988400576345462175984035325425486005667242997562101527799639432533228679880361018113713895506063818915015309173968687485352134957305442931337065092814290196033941992829348419743348945910414122029693825804187561197841140701144522127401463145901495894182821889664936571106145003653270565997714717135383066518465888563718266474008107382388283795284753673751975621116749679737626777974384722527119351165180813818450509383803234336774985968444653158883387803125902815421771322254777091009369356385357519696707165545484285649966336950657979758100301101733049145753146972956539953785265957912212734662252574098141649535260060075763444015064916505510874595657319644624061333462314115820034685741974113121734302036300933097022496856175856509116791655669362931264006925734140675068860183206940105643521552349991226561507503626539187082596742595720381512397693609337011225829351432664775513622438467332281732202099051858185724555554714410103575246387222006877105098655246167332993757556619081875911628522456765291013174099113737427466260202602033163288834791367989666388460804229745194410525904941574880505003965986565494140659878273414343520512784546511503098115182265437181219633414177691873822285764410256217500655085687380202665319766493562814288429147233160412938914067074623906179870724742451304011108277727483313862448787897721742050282252045260212840726524526017848911411380616212593377666514650158799832858903298181956703653903838657999391579632061607576935103161600505755655448599793173351156888629657058501878519947446021704351110064765592022499966391194132687521029250047698203234807180244814276720245278597020139988251754671816850295767554806755874564237784000623827777387259841830925339201112495527233550048035350811782836227993450075454067681687746697903397341831892772881105545405467950972900509087042322455010228912959967511337564559589158676675341827189051777793778298367476541239061185636382158761987096976267970039138952104100854533100154222889771632791651805233175587976734047895393353312774893226582080714101060027890437079428051853243578199354012831625325482457772762744926396270428064596852607149014349744166124567850532719577817789999721393566991908524681102526916363808189882744743281633447536882758110306342936015176893539125917416588470352476338786486493694637623428870773448267738858422074721085931267008521834190181668781628637934235756926553362486332419671914378689932710035812203986541343925679558687894321294406205676443945268521724857795990834924944643275959508148040202051291729618254672377274348391636663382160691127201219846332976036965210040274437435148873415842657181479485137889281650286572383373511758045496324887567398572244419527777796592807930463270480493907218026655918560510357649124591637720141319100590444482744080468626811873436956382489612319510607290404868036868713687616661462489751374753754845454868085540497710264038728483083984036853446760725312833053199789504533760766855163267010089009518981378551301568168388082447024805427122377695316451344707339105366513020781250961402488783903971287004075432403168591248699468891150094642302552985722527479855621500587599423877484835401436034344049517062267697760029329184008954146865337729030844585676759359775450225070634890415231857533385031994840435256236622209054465548464336579877243558713739689907894379164358733759129197832568052555158493851302840498597580063585732916598752232978819117817819153592250325859678664021334061328400734619236740170099290091041394204048923260389437984698998748108014866012806068980378185149093255386606535594262461570805836805944267324381749562048660210487412325330475525278539230337883448264073274034949405535417567235642046489059208083518160397317752609266021715787022750792361221105622154577855756599878729436048562616265299344256939301070510871565365094099866492910071564279215131420911346259616134295378219429813188643323340888243607467353601935121079789169971003234352891806253644514310589373645158735926488084060668135593504261690899653961139926922694080268801221891090922178597786657192815947454846565167934884324285899289094122468107325241334442857635162118817267772769365526633383258378609444888769467511838652330246199678701319355965840466759816575830846718896803876744704167891521014745631158388325465566622721787443843841442514400230708991374679102158308986377185443426743039469663842585961642811781347951546529387942816926121809699629850239113010341937308055275392685525277026433217472774140270166183504362276170912548602468228010150022981048799095075270273215698824533614404755365221897066423364663857870153847549433013411564400133773131313033134405286022784359087775185699825405414882259115003834649647079899481315462591863496870599061138125135597711569249858670880206835993857456970625121538387200954795783689668488967096147652157201848080505359882058733788608658770471128871687928041439397255200740014303726720924058258978320975053280177238810602073030858140013797265849148265667618520212241143416247987537673387230490573596550387851695445077929921420516846194867776342180368310055443918001752289368060078884853253993775191089357182495321288220515334262329448057781183857702462178154568545704877433285362531326032754916288773621717711971994158234242701811810467610574953981678657738074918857535270860716424000490802077156416751182632555512789610631348248947308406987667488450323733376544722398265996768743337654860296535480294515935910673969562725461855794175295972155031446693659569699629334217054905544760083676431101934502585460724678621498481180481388938151542374115328948581996990107365845971812833606158809730924089085165755279021770319146277476966945434590956597842008518746681368734207191498996468793636629058130929785821416885717284538103089481364641474169168572130001242593195784924335517503860883807228604140446043346029513523165844397803339061613638253961170414317002035100125226493180364891025657403241863160971459524088726034247439561263558025404564578986905228340976956561218937342869627789085578930546341017863474049556086724567507746135998295200413532136443489235444385678216896505342084512233112360146248418602378876232594333046671551135669789149565162067234766669704486470211978273292051215934725129567655271376041376799775496225263074552469449313734097203234462019493910547427932007781396690262335548826330907163895487203833584405169603059102379010379363288250020668545311643692736786386990778534996228766015169881069189784324871037348651176365706851633811215084751815248342094140734690394916448876985734115514281265046716695100880429603219120435365025868661365169747312912506014118240422822439766641566624261081227334362611428344628925691591717263309702337806870632859136183155149046522163662876062716048252198036175037749709574992918716952251994036570487309669975201686286545910857650170548227715826688037948809518527665675110873931342894939824057176975422186569349541763572360504632942662976439253685976541315352998026248211650710481611478615883516397905329551158257056777993258868245634117602645241574935256513936152698805572784160920867733063411623822989536096154297870800719888031047857148983926705848696737920128298686335962844167001402727339524233807984215808534825468259871536950107743506154523582885689999192985622174566649821013742644098135249398167622269048349370309849666249245747541723679824240881583449996732179373206367613724749717242031798232400113102784313558382268485842927374814502452360249934874504954481746957724689568693720724022119279030631314098172070051600326626326742031692829823962628382559837217957701524685086542706910019019254692382760422021191884397932979924898021428364496504623514824720477979152465072892323985018099859099965755512228075449431955152747963106033301332428383930192276394985645458513870969332556323180211753834274723346569707201283284971379486167231560437610154747126913152274186373430492168974633038694974932545597285372917506979061670758728343562996807629150215372923399233232850107762581897886798623483216400900405135386306182449633542238074594505072670294655730321273510347107521467361820619181672192080245505120306149420128995640265999379827407711774672316886268491797652458919132455213249057723186448957655489921343134411431615246254894400997984992592186410594242476326973243009180661902337219785224390423350411769763710651078288720299986779734735014297255525190103674131662607544785505460567138918105569536998202716724051957649501149067006665162938664009089560114808029202153390115506545185665362561810540952900285285070317860926953872753917091564087957927963331347817431820513482939229082226206947616839677103175210139451784727744235104987014765583653344095385757886321013660348930357731867078208147290110669717984888205841973532794325833175036384739164798310414472154646247232651892676620730938843351145479383828833487950822205084397189629237903550049298325064897902916303197294082164667558397534455667813138283183859116743188958525401324872349916077685089851800582533606295758169924860965277070228115405762515520048525187614019918012272115878519905042321243556919685967610570876056519213865167609569306575728215866675233036171117187983928656893117341971116402425405604908116274292934146762619621556644060419944873171293231810938495420312059729083773427571416112272130130879352879035685592565681123397626529939886674261703477976935548788490169103395357877991588251710346954520413261562602078631546933854661602530767756661711770862951588735926114324276101360080821355270316490726533107372228672741522546842496552606128502759558171299793623636413801902683038926553927005467926025401775934652656819519832859572225775505677600627177003885004403599887069606070195680824055743527130215398018216233065307862679764152000000299092224308917471366315490603591915025172620202348752955767966885183332900235763565168516584027568139076724862609425731922684483448003182915364911656977718403878427988659343604800228036077614986112304480075946945867206433523330237074613558613229265842491599056391227085147002353620880801907447934026576548295000440108274505348831211941000699921810948460953024534278462660224001902911760792622742805330386249330388562770199814756171730031931831690257911491872369646872894324171067154176566434719258264804234246083649702255317031056903331672483999365499017213045246913419042808140105056041760801200670698045571786336772994883249612729616528607536023749797986515021595798381999057448421184556751755727188342141649044974813899203976123176343864173860061790485246799473107551287198272466050867394939114414434402109430185705305925944443339301656282837856904025573118616546022493511864885704063739952200149757967478775583120302642179702731322917225666253607996575206809043890517965108559855769483687582734100542988936472232485079855705616738242003710606048277923242519203716660192912320862233365762374266031820513379356491030801113081956207223171733894267067873492413697235282690389550395352529789029680464179373765262558148693091996849012628787581853742120403394674855177765657767632952857757649447850709500742274474720294259635739858084517757077544773696453792435923578388802611233510396979937613892311833682995371363661940021221445645983756792843355525843451119260960186714377296216584838253651922148804923073447987204112418058251919553463016105078242278438965615777143194439885501840459346056174553276216210096309104432010968709173996064398030074916214783325613513433192200178651979213138689598188453584915519234109546208701256418455206389426455990854024303533906182081574906379551986688041807150770299890101813520518179343969293062154523575314336730867640395538990990635485049862623451086462538258248016809041729520815666248676876024168606919786821467528710798054336602891798346970118849084110020630002969330749018592063446963877271389097442885297803364651627229561214419487286804525260722217503431103309112224942957011718523084550496817952663942820182692763445226805106672882681705073608809641360875975129844766716395450596079633601766142822653772675393661616234477505099204930329888877730237253027694786515186477446237427186978594193401452263189893570220968324543257040980095072839607188567429912860469988955857651891422601837774435494766358861831067619170194548605740225518811138003475189787382015099119079270649749886950993060576194707820903333262636166449778852739329738542203898610303527881565349171800151816065839699905892947718435006787870968427730750257956470678234288462553795612485882166531588188276945103461445207490283356417873522549778591583577227176611718744770394603611515176409607726556740449637199713425498189488224965085777237142125209693542762761683553718668272194928896701502465670299644549486358901504150686072732532729707126308958964026946064119384587903648144598193339276923406437463498014044196823074214392234245722145334232396553882832922289817755737401634904280056582076784496613815518385480084510853988741018052584437932089588996311407355959691395411388095704518426386309491937819250442584371260019727060780215238794609882105520301779939050645989260482423381883501398146275725919984509589122498294888842530061782372196991520495901489718776637481404767518405066646611350361812236006764317963694557599945241652838100355309974832140216846148025833205604462166846699546580692030104238278463517205022319682062272443638016520931947784562069893650598360422706379513401090092299669421697372651749243506328175110353115780768574754040012850562117927474150622848683035086310479730296656275680931867957815337421370934956548696245965468165260982576519102972319599536106819575022979519909187910983927474459299459344398263059703372917324950890766105800490107718239121090283520466028043307045947061252714998624088408025784564605873011759230278691800378072769064695904402885365298680096772245935502996479684052334039792101172259063328455614185079927989668226841670536286320573012741645075720255773077533501134681083138676613887992246609749403338169227092085481773646527069950491120315805209621523468107646832567837350764191249071479387779241196078746370008617095949554152981146805918620354894552070871922964744181852403557139258185575830280626399394798076244101775637745175525844191327893855099597493170317229076625344029724738942969767732244408587702973718783182849702874202519242976490142299284421855107921844633094507223550903275903194588804621944434906957534799183357702059882445267683280488785618072436921389722831853841802559910860020729715239301264385003937886225728872399554214599222299413150122530647274125331925999445870415267979465756863214127908408189963684764097670411861357916867102623081039060191395268472096961639892969461175622683540027485699586931498413976135279222787999166982059840188184512602629700431847470631993272902842755446143274916149416542551262130798045365947833639415093910147599825764839776126552018843744773947323644738167147991348034686857761150258225284000738907280419922688584342702370232942466218819751096097566729535080984941595889712614429072881098900398834255317913995339827516457097550787330988027173631883301726401362530067138815666684971358010747532521942637186107158280734469557122368543987292100914909132163901253417381713165015114960036455356951088684033798795649549493471753570574017781412621872620654858897662088879567407546486387983729504513876583275555164245728589125920776416130747250804003304929805828077167603756283438782735776966998796095720920261288010588169604619929907094799911325459009367699006387696852420194802344241818980866533397020353791462245028304507244075139846201813584407217103403409913386055382873378888392204516987655007327385123765349593517259214872482366966591715855876574570337059073637137920089452734915129017116950097002349242288063260830362611461227711178088766073668660887878651642304084897720816186411853559073341669989805954410187564316406001052053659112742935585258140736265404348600484219361292204653371984924480535325227710884889234843797322049812713791417737800480375175933180558187556909603531921726378788683112688045359564243427105553258623953206734247911086820085588805760506493281127739680675266149483005237827940651018038491220760391140424744251991582982971672328340422188023120550374566076907767318326091773869655690008726250572462808371467590263747458382285492792918749820864790055393854163052668834710614176157522088760404082897091544115245870216269584583252427837774369929892792790002768794415273442169119468129431438867877633475722479145297332722121468092623173203037574675113196210935346066814497937780984098382950053544071272801539291052856974193839456111937570643806995109462754841822978365353823243440078733251240954341000003063464331469169853621769285052721933880705049524114195977165346274980248031467579429482255704692796657210062489633199680876264087120664456013053212580936216115592979727834782968677241643860247729281079557270413063957805777938206181772060104127841511474333639211147177520997387353088737122498564342872210385848394899873022447011144465133520626499834449393721054032298547779593966722150832309885990266821697684304389882041437874568805055496979276447215599474043353439000399115481969379732757520610982695123065666762840909591689068098317701372006410838644548493332225797043857991198055586917829206692864170515517902689900129483575195877316693349471158877636953718872231929943064076078108526972393371430425583040042893340922641630505045768249773518680189655824616003149296186371295161189358505712819591981193383225891072933331131897171683389690825508496932434421220166828730394442227432228980460135657626810933885693665656702356212048389794505678433480329678070315216230989239533067236651648910033105843436606933745185639098922992637592564427380902417140271504136587985436130669976914200706511642026636300375824520017900939706571714916229037144353183355860718289161349122672454970619315259064890488528613107314549624368632387309146306407170810017690214246649585098270579149807337145085870619180153787233587078553675288521649755504354018868846259716582698937456656144041509335054550815140812402932855830313272528716991315530245576754247451179995940840490621735206077744263270652630180978412766361616664718701138636589591060145991429007261843697009562305990138232103017839123468965700830890831102371660836877363147746577710652814724745791368839873247220934866427426848061421596329465013337387333472013255478103908653660015681349582819705133050199697697566760725702434439778618508833789887355574244279992251827007629240236792304007055562557047608886262163220390005795633607783396139509256908548648343542403263371005278598335035235514444353846112391355647419952395367077689073065378470055948676589155954120253650428718044681266621491087801333781913729299790174215159305762561190263805376176939221388532171516546471417365010579424524121916020684862637231609716618340735598629679320866588163224436887004586008506531356591773437432006082000737861626645656127675835087865584884219870875550443855254292287075552000658257152192285834138654547419356752609258412925002890757720518900267894556431970176186401264535394573515298008080262822615869859359398480351892363330059508707582821307173044007699308697121071246221554061511088332026029258156272146785250620675666901327768516177482145895700468760381823349798132416576947441713301428592486153632039186077599774399478638235824054928148538053107009600577142281097102147728389633244533101469759276496542247080605537698071370343599906393816508405643738406537073033414996932545384973015125376510903894167502339451864256426496839728841093606151283311174037969146016562646135961259356562923576285048747675365684828251870167586419318717146961553917656269536123365491259439516246500258723261743137566758485525420947640350769160244250370429346023245202475877108810103198409822385016341552475849076449818137606132093549594506226656021384179021737462448771235449255791501437920013530932101588876094499703852146320454828170186426452169858078708538770023671140055645234662697455657769716301184932702510658347579056959077339682026781484693904857657405328951953928697127464682813799078440894076377330562017832205358096160694687730674101539480295498617668962084715722611358195449441961236448639592606757874921713355248054976145126123887942484141305341080457564017787547628038221824817214843145000299712003686425714297054343619412442242702499250240220661768786295395319598016418869332571216477987789871242974917546722006838386034271573829360702287065845325987376215074359342319952381879605533831455076646204897694934360498428331724663544598816655728171640460455949441703196479461973875015863198117549001492689290969126106498940556320529507788864925379398895486317636878552201238966523109895013519716259918174783052379216233810743845155287256402646174709489417607559280559254331471865536400145746169487612118664043263497225334295647010119056458682482144977271206691187728489657150468675157100198451362466424554770272738521735470341967240618266944812785974783820212696032136031749236550521006135355402530759427522512331208258662092742935018760912867651420814244762705692294510907855014120439554274217999539609541697653767429891734861983391845832023086488081543628726992189314770561035817520363071143464941442260089474685331603624325778035492150341965735599368643315242103906313005957912780856399086704868965461085888266425838330826634207933588902960419012672568860263363985168282867559905084893774547643397726722288346439375173652035767519266707980272281945612592303703597053562730394913413091615336125228017868276051527343710473425578066572780349707961864181944893337708037298367656875090162148019303605126991089682545923737177782865075219177047466466101908697150286218558615063717604179763720256542673255007354627861022506284337256286176665784213181931277017469311082451431656348032788182520449072546773853389001536150472235765517194604144866044922939548765879434104231244824313192989809006514360363612553527801658516918560408797960972279061015282539523507025479129337836124744796582432392451696567915997477974131018221986747496591576063471974944586299560711470801721322713357908180205809519273234188544258494267228047754242558444686371679274589237289247754810932366956685969928898038037066456699008583436346498626290334447425807325390773155863046236886344438968448635037902096361795607245294997629279964041030403289603632134847079870624501824173940355610522140671723160423520592329935285504755600113419042415134966302325610082594971621699958521158132867579818692492379427351702627232779107109988178209085849406680877621537205585178386769723202667928200710938318502828753208470029850802524482118009306123074559297517998561726882855254800054167714405174907579606061001437112620820654723873305940510451965950377419897728687991617315799587261512823739455628098255932481845813257499429810217457464746220234206113707349503698990601255488430430655792905575381008690915672354384958539990069245435822552304331759552468784109446448341691479564276929214331629727190305967829786536337076348263091736296219028256586309786643731936553044381328126180211603910435430519254141438264032876081836688667836395774293632508449769739227200116399038824861001519350891131508278015118536407166316260894484087144773394223384786081665954793919354330264748377841585608830931612157271664113450567876561344031141836403155660721826849371581006139365899483892569143352326531543565268382441780855964267385070937717538993616903376138296100854219814148941664170763257267874816681097218686039025296496719237094764712321739997907768427997600474447690364497732709641604879316840400899133307111769526299968027838697399880412503003374172855726000572522337656045229401141907766308121060728258215526491188684683184534278999404332084961667353187162719878693886917023505813689657206033782730478976756572033523085414774327647200928798276625332263577561011882068265839837629712324230436998407334257153238958901950025413105917862152564315985847326272759079290313943370105277752013679051573836038576309546476319393596238761177791904066695083087053634994395608530261773015749077712293377641923363253233699023302062116886198731673485154742842197999928627715752309478356212526674305548202787347198968321835426804652602372241410180749197245219275422408011824483916492517836760955741300929142254314361791602456504677005687501182248866523377008800094343869357973177645625637784937582186038324292840520518805430567718700899068265574601448841607194616690268124195688555090576918510685926030638759729645527752369053666187283658848535406852030004969441950916188901304626265163356949447987903538507033763363004099760207390418244283336309488838634584314162125997666426177074259450588932029373447439428588773541718361214802256484408749955583923690217731228639233026467801904694223680498862673329195088844108132080689008405269140427904910545579167614369415559001885387623247357989931627285444145217527057414090614917738124073231593127937203289307801164439304166271905527890334150942057414896736530936249318630560446368647003058507637697726019875828613828973951391875003483504501332137015892129513717393258392617918260740440608234363251616978199512728232894482346693009158848290842391549076561002839829401913625373094506122196341016082199775642259149921936586310389211158801177000580181035893336306080573244485157243705898729817418546040810636634334313590180860997828490318309973376032412757399717638549955677300650346267091939811843664014090265747493346114011579513452745855386158616945737410793079957736130071780988613231468544782271333720470664180180321916234096286649914540341776522748771897513015395649569314028175035075051565600032813410485813102300142816876045420145876554517807002192466981642531493224038809249501914597322566393487501320954822046892418795314062826843426797046299099422601072237486925644331207675597256853827824888148880577639778046094067970426610330668805369084779455102633754046535945727470279710082896670074188010685288423824622237317448831283817999905314305867335994735536833592677308542018074105826052340679467784879480796996684363932901294090954938433761858462641573336377402935565123787780169178392795644932257038834422516986734093932264569296361276428479975574664669602069830368341598941767527629936673927247200179844652133142990781725993350513229978912896644810857295673812281662228176181040377636152905019414834293877714911954927057537702946312332851247477031611550357281984088167674009255392253031520094235673422901149041633112683489880109016828555187319359022193300859565520787834539162206555666731426064883904731823035275968008632154861954962955442727881047669765922431459761768016990010241768839640957909946631633278021890960652325911130805985571570173981814752201706106880011791820400639142945050779832576925838946659798093903478613387318313617555021730342622050916442474358029501799446047126624339628083851236017881235075458916737524552762110291214768448861975063680318427385257210230624572531166934598874472335292473241169816688358024126795598383982751724145275393931962280667733537505463575598889269158709437993576817604216058971542614941713692301515854396844272211562758518767941390130154246040163329691054408017480711003867059939316599826863053316922631187501088129739498564952900734006600781361079804530688414526429855433342841406711432799223799072705008374318547705082039444524569480894155644954757310756630919221068618432538998460845870711793375971293454168863756304804331701989335379079732950876049085181729532311737643339844585060347747222741074868346426672209547125538459437612902263461571480506544367728473470616651998832640917319510561185614516827572077602995712995619656637830013524003642777587738085316791087939620439860802833874362444135848864266771305914058502011333858506650785298668838441821174530306076981328640100105897986498802240581648851572564852589996175515201944726432737869844954158628268013093679240561233938230816820483930723666780635822168440456143974506717049773852391495694024249350228820955045592913031145500686550607612762946239805794844628624737497705092325405078699261004143014796051806973169825971775119689155083330946592606120606064162463484294384179971914160674173316293591852689294859578502089021145236439404258155044201136755901455696979826834263212051477920494014884305680221672795426830647654367139338921716421195799175677113991489072869454071562734901743674194322268551780249192216626676031061052934534108485000373761933944210192176904478385661147363724394117457083633752025603093239405605949333469361194701084598863191999587497455703636618681642667730505103180984398925607240413805659125451164520451565194002757267404211615110153097952816115731244192821896212858783633759835990813742072119668112608320898034756255866341662104605427323451835595542818947555722428080362393816344196815341225166835151920835157340635674726848437994985956185591531052986965015408383531290839733597238127725549708699229046807743700339726928990677232959972041950012161920157423449498434408590638636571870941811294804229727058301127868657845962591390815506517031612515001652074509538913626761109693744526774826709616855522917131293586073212146627827927622012443613501913580960243618841439084837069125784730771218267326290521562181387584620771538350070632942368003339046489277978981920725526404561010183455470538646648926689420283235821345891591447859554596798728705135871873412277393163796786861070051432796530469820031968312209174654671818144196320025720665165041041371300049628921252360530240469026696482429016722987282328458065768667447030686022516767343751003893546452285521803432717791748633720060939752858060264343905066485328672200876113594907110198500208069770800267782714055412170716489757482132167997913231469420033733099282636513214622564682367948685272883160092085265460553720802356752696519458184361289291586848972927877934445848660940908737200740588546647519760969499597839325403257324637812046918847151543115425737162671247590649401539555803167305387614620477464421220608771768288258508052985057100483481015973502816340383976139096994257984430918206814795863364035252749957973836357485986148416691780388082822679634568367824664013457566819649138902415651556988696814470817232224267207042082330060857879297590174711854716117186891100915979452390191237191327807114154767930350458974188082997850928485814917862312994921575404809678727076953391790328594635532926304894711530637709707664494817972238580543726004293490221484242041762683604910508345012176128117670790577057772272972200831410365073087021819988111977465010457802294190849420311566661528314514051209847345037931430175500947350842372498536591390556956557315870105902747862617337380267297504726804123931199972705978672482980370813111779447507232923689464214445206035214239600050160919358448628486746269199409037950535791215852184086561393377934961577490016163940849878361287618852870895022949808761527715688927457275230445063436367983723554246597032754823667908148209597057221159497220480364626983070499137098976234662935589460155739090198841413716667743755801912822246593491647838770138251853631869469874752361666040554931906760396013424799498194966092962656256671575161836651608338333372638829040066840432458307552900441254640834795967785438218161931141923217041473170120210307694098129734554048881016945122999241353501625377964884708935569289132454921350698419181924711321521097034494400080249711397843188550166921720208680743626614470726093643760510797820546062541399538647610132793255541688671626877540839697440510005510870195054656588890848769058928197005457397586310792478351030348433604466643911421066125091417611131704125788190360280710709190976756431012357316506270973808186149304289899151389534117462773276415635889952663308862494498233171680173081529906713666344281810062036416109877210518233406187349194223335471232538538308413957347311510751138815108431944629499127102155875944730899065335438582760892392838361035558647641416658956512309121823668211567076667066247020629035635404144096604859054157029346934303586066635275187963037648335485144857161602732409284733837926149365476413222933264645696639422166396901226535888881560009547969837617766789891025520494857617311148586891096526964727113507278379193333913810686595695865608167410002510541936766358511362212966381695152489031776281509622205497705210645976896186974767383450570680472699240257062126909300207243245708617782188489480123287680501532300641759952369267262724612747444114216597140565753170980069918513593999847820735167758780339937896672134569236759846256344545340616125266883899758977837287118115702449711004268902806824659591861736143189966516704588020604801351440981837276915855117613106631012947594289827671164791808641289849257981657587472770393676984730546757076186657936645265947417282196740180940124283416021266593427656261306074759391552435793627845501508120666192970319414001855608814123458783217960883299040639542246567483156097483523783644499162310497815969990700751709729726236315363054028143489934075621935263029715771472902972790256824285786353929731086082759405426285049550088101952217787405784571570625852835492278619677525392974282127681468663560969899663846330411844911445142036988812663715893477629410486661175822722655889818242116461504312323836917440188660185710648828820138756009603295362359402912130873897329329477720082692399882637993032379780960659979769401827087758338003749858161920230651256904425351396165443635062157434998581435457998955296903986214038726988246914252240633448551498374449164324067774481690637156202963457935572262608035162545298803904105280903304572746256999505425768726504169012948305446643267830588496849348057879193335073983169787071931742022673864232978242619028317381798928575927493741108340618577681835417194923725401174856734211221761434183187791033378464905085936794120451927341828175372837894600963687382966150226867570399159133442874657190069668589137900884865257834879596522934013707304682748025471589168971093110883965163059967394897484655548543750457567522780744688743986678365387161254613914747707482844321082172080989463146752352642302701218922805328742355172612353892794947261072654332680035007183892530003191751253970237526429343207851037214602256969878443796534414854679558051782768012324278614141493717901153884434142647498152926947053613459057501860025134091919060572528624387380962416438582762994115900347029305186800636240145984531973514412614875760176655223711893081019739062898910815166235562541959155900592696150440825756481802441585975423441547393666314690157323145310445450495495331569949769274451328044189017931979671460366446328518863323843010135890655075623419615845641533116354181417068502112375767747537915990289168150880982106697141096327863818735699202488426257841643234278924936116185381493204176486666645635704168502352138105687633496281469708917936341835635286962395648148002430917850606260525634353762072313653588415574631376511055023810603287467549614029974552173456790840464658267941374269606104321097742584508825390248741935504025516231242179749023151706565369081773007673336395700468139940859369640058500268221921099271027989495392188813861366248143632020349073032678208251939957197915028694414923733169899901120956139248758113481717711742013293496871124364520884739891413713854771221868149697065752922854767071224637014560620070790986917708706238659705747661172912320652653567806436632091437172695456292119732469339120174028801887615865557573696527306267782696533211228812332942902809584170686856649876592804413591422797781163176841729721953277886790168351514269188137612083364583754756277656529152224841233753484647547399392987030385260385548800250768923821317703170949914699865027704427310573248708013018699812711687982781711786434931714630694674381454390766138432998506708341553034712635725986504523829749692661965796411375952032422390355629235165301273639547908921058411860893669328434671146610951505975641541143189784734569226922008319713858448938028599287074710196231850688995619894754984739571447840941463291657968361340536087509988754520256575031394244891340468105433374769630797074934945165320551651369893090978054793860939143413108281364483702979565249713002297617900020934135797372527172301050457379114959358266203630794553177773670016465576172007084073583582871439907710676737421576453566771440075444370803194819524959328919608322040463181405419843114501672355738069954455897842232300060640630268422814474750538944086406315411699167779125020270959645606794294626639132970069308232222492469262785504970875908325890771357570413799851526000783637671752237388041698712510918551684297207226820021115230137311816316995711360230575445559479178906540949867547174835193818971415962377099683971331306626806418654518447553725043629727328167675074948198319295821106270997093647669458155806211084933568378280043793513371907352050628068852222650591136999433696708873398012734300978448982148770924614750621466270034739779469933983684971360254033622127386244574103178551719216610766978412691762503085791119483367543573929186490381231284936970369200656553508560487442669848966441654552121720894718162936397673354741992864496083668976798884970931493702306524790641562302776796110062969274376586282887848961813395837380902055054005781350453194035015938182345323188322519533054218353668661905812419154923957335218327365509561676010700311068517732747303158749908062375719647865983175177539458815784961673280902476405920917092032686236222476047814833878552577054223465893020862553616323637615007882958771162600126729742720634881025335256799274575219379282130193165241320334038700020752020761833659660190390005041649948644363561305775116612243786838617811298917910487219995738307598022742819541043921501047235206240521618866665415079511877550268203055941377030875854516020476914062601019859051401557461168216405649163448415151824689587940182906871115696011813824610344079832718956787577411999553464219784664162383515711580667654610969827146784882433333203037125002003920373200264908589660137806659438793046162562493998738108299036851343673484980137634841606841212113053695004542199029046148651989104585746825148851493672755857306419242354715148775106078376907497771268891246373541065733745081936529444262567751337767131520149218300464144107229004377708952143070329749172905819885260024341790170323129473662713580398528323898150473274383836892466789158115283327930499645528886325608106986812674186755426489131081706108739853594134073575747197233939268004154793803810682795940376391298120760322274988313637537283871927110634883965461944197006732010777560800012683776413035149916878538323355600816962898296052540690872033215784210602345108807484094312990751508338617802904223828379054940267672867306011813529377423932636632060050674945233920422885022775379665087767965918395155824086177622611556359305555974452486693778424904104768282937723782453015668017465459609933124076232355753227507730035518197654027885667237965941573007474522506073071081615864638580960276747537418723666168952923650083214959675144566230897133581829123373451673512239437682654273019886115143806636470093739426746895210442131483590546532784013957551894898175238849840206828146116899723769855128166043476664431900859530256936448752675080728143990833745638180537809717568375636107586477315455901963368562798724824945534921471279082593769180363678225505781262768523331649352127904685828355156427812786350954162320748323461041319398503719711207587786278384847961344979430692254897736588989671581702915622324978468011484102540992116296083296802470206797566362818731624990395658494117778466591349396607172996369763115632906156861425982294694552717398229926772300300435928471508168696410272749257450436766607681576194425330286599877818296289940542893078268596272566473874240376401353841444287916958286640774748395963626758251451643429754832158400664523330785528925585576995279842334858106960147534980359046195693615667060135518399517583511558427001394398684493989501832885990910099582923010278510428112475190118860196085150115566043558413200289701394550110954809598758242916360951136540849968740343666485502374343255385981059690738356439861576346524872382306398401593679209198386196421938179835590425902960115028603605739583791751011722280976177530848935466976994671261954162777957095771454415009191655880353207514901761829326180300345830428931246945465263805264364066963789736022863097359406081163572987464657657643976864684349944437507110103333528728483235234978105475647015710862327527111139421834658742328362152606172779378547973727850433142334798123977646595993088213562192380558583627497421892619292449494616875913972201867581273982503649028387537961352603357909782701610539762764593111489570082763321218729688489158266936528491045780834706844697773261306231133797012108564664074946395028220238303027421363187520397904676269582982362984387142307242663377953559261887531251390054672117814112831458548676795281893497900688875551936353609563127188893245150940680855542848565668971641937475315416398274120683490495673373694369399424893763186808493456488596233074268746916101892473915136835415698699432511291889310067526621080841675534692580640751483456582131194791444857087113237106371743711755324376055506944528804699315378383917429761674407740350421910049112463203811185731263831229268039729541976313548150960189227864740564211374003228775325827714483170609766939872844131911874329078546103372108270534400311473837369305632693026465612514471742945291632661793049004296097209356031469248864423591013924914062771627954392447920932735769058584278027482361343861701721505777338161939683591658149171902755785032460410495642479975866134155394410891061560688110305129919288164612463995656569186384980959208136590591964259552602789115257135656210585775693360786516456826262019628780264052654997096536346784596489239110246504173788744027635987779776627155795137546267795047168101834444840775345086922697089498615353936921264003490667200013646339527127640158929279004788430594001915684127932301570089283732030732679003290909377574456568695503653027587615098144274073895371462280712054827275883099263364668107115278604482647230882716825530174744676871550747060817473244211671938558847989376151830861379528685233484950415839594380118002197652399161596138585029842888027260958076320163638434899669496594191669708384188030863850625682116628431626635110323717906175249639114241392822829401575911588210703629442801979080128672870142805043272575802252144666934221567558531328158584894816658267839016198143357989558023690078876700632452510093566159996161658378430779180962282179102455030047401843660527741771791520979839965208453468544860546128837924460909725993123125999510299966380776753370782702308118846299307755143208555066924434476747960856281557659880670416795554531484165997187062023142017359806282826951311377072590231992301534024234092718674778116636483457469134663242315430808055622962765017870626368338719426006916731360526904246433459323912805072693306438596093459461119483195526554880386575052106727497592204680268464399791637534608041455402541467583545538602998413833072915363818964626607833276101949772570785304050309305457148281264431909891588851909693338422776337753810351468737946521449650582669349446641117126252115294590890068199494148412079909967463552713573269846211934175577710227965653174868612422343582906518587033864618113656720404750762012828227150877429787417111714510746397249154449583323593226623172414422212729103261399342771343550392313537404671099172565701983400442299745741354417220813593345289485137502210848180958630251297048183222470911007964158441610039139915811838856706605163070773078280105228694095864289874151877687903093952102259195871092469298987611534837380432000717067946295686537193373938808959385520040727013166533022700843534412152991759729462058084786703086561524255157054837511458666063836661179727818417253849566779473341508019469405200632010463182976837931133755105994063244044036570396600332337159335750981065952357550945294022461732569524531084410763047514138031382649855494606720345142355152237439181361914394437661163039707070227590934521627507951629182694264491557251308906652237731422677831659612297412281149050094922976118235261532405324730162455650051200566444589348580422748075141774017587550048451923628763196654143984034209440816981184310615173670168538792740256353385222108951167628061061105853687740478479144543865951573937402058296013820679339665567057794046315474113546293833977306988526991780510369490200084367130551190153596344214233689655367690939996952440510198844558320527878374759494758797335977068778046723207055814558502431990302612731155785727935510614664361344149374023393927364991404057509564914543676429084092793381101086504835757342422277796618828761646966481583785746737872754537160137736451286412903812836159356459151046417337051130067164039176157594330136733883104922795322159883662217941353135334509484254274920302564136389329842443979847153977394044380209416420251754558108306730941243756813323904977693005057671967748710688788734017416933417753974407288740998320416320158720431643584344318131436301567147763815741806601307648154231510297310495650286975657262299401114770636443472208336249524941255695474490589485353249021896251019596247747755554809844188963731152240511534078193145891293907842574077676808713250217649949647794570594151326188098333548238980171716122653912657082552059608732061634097066481891093216294721753974665119879522355949785186898494547636995125061679376660095366365100180463822759929548619669284000144731098255928594659856545462326216927153982030869463909066009511268574149195972205784013344177669520753112287641670583859689824663582579904868373376037740213538955717772979634093431656370147537435474220854489296255660507500752298714269771083365816746677839775384581688034500961463176086126703491655080912302792240438975776834066117392773212397158522215326878302692768888513345185217464092528130100966879954486458984070013833195355734783575732622001908993655297366647589848343208010196094879872023837155641218603736292507714222074032069711947296657860323108124433440987163772266524208918357897727550588994434573518233325680466078480173322816681473740167282597112641250604177332105211315872609078046737567290853007178141762167258640910234755281649902009124739801100587283378255937471476422274985863453225832625983516522583691516658506413073894521906649015106843954703776687469673572372961909594228800111616313300662940693531641645473327484087813724773626536486844459265776309033033901790844535583793622611381071993610592756697181222793549204539422682192897988802406290926316612371555219089011295930330792905119750186890648700934152425231079613830303773194464960470697926226013692713167356828723517835298338039690874133075802653857204872942111862480472415372372306550274988661818031944121204818342659831538291900906400929242400353460219055875784227192961612699969372540189134393538577919976417342540625631901207386566686958217996930716490245635131518452501186314125012103282938585576779731581644169111361454598642764756992849847580325075320729302066719962522781833201358844346329910319847264444419009165079761019403972843240668615089389188866023118626002109516336313809879535067942152296487067839365898785045548710854568281343698405060882157362550185201170420343639191626343437816806327847762886170894735338335712512727372115457353093700784314735410856808642756542714976277529025593212646588968962399161205238524863629618311068147833078472615302893424486392174512294145554085002246275753792423764576879419166220789998841439782938814774410280546285016388299589443211385162902139571247690355340980968355871021686890515996041716396778027223897834731999121294823173714128268161164467589836308398348892965178195929245737710908626661245978706079679066586833469704006779992543869481912265485727675086819929110047212714524547362533045790952903199022991628026072218901421730930387528210563529153344791081331701663474105790418360940175213696323672168668848452713091945884326135484932442153673489741168945073534863395679054178240662774248931133324058922899022084093279087152870795408772008669584303252395448322782519659956655393796675014804073544484284205967295128006713767372921461778075091932990099767842064141361944208270399438677674890406293730099529183983731016292499321387440313241463619442523220835372378758513603436483536394200520921393452869390842732016087241204801104296122545122163234368358844346015238093319991725438239978256956399731949690438578094301998495381927659094784503853170105474490970594624944675088626995951860123529448546479891578157388415947386978216012557859695252453300241380574178750857472416275044438896408727018105287862129776123786157879460966977449628234831281745477161940319696841397765337968278190837870204782590665439442750901569782353155995993833882732846534461822603274419550662247294665895967091688779596927750831265561068641608820969796793693140579295930892741468875621304407230461566898163182922619569771222430368875197928511551056800510397595931419010007663840373073274792863244559566976597243272433915613182815513053436132782742453904239100896131720079965063834977631700215614974130818510417649572675047306135975239139774008302877910151024306615367327839909671233751994951840738940445328805392024554760613088338153222662354193324215537941085014396401470902945817219435214651399040607520003273026946056859794943686192662727277847881064144328460252735497736432201639842431930439337068408052958012728084619352284124862588919132100701377831614964276074665504760935085458741621729135678005060736151699828234406963226833937470107553408005633871521210651579757508945269892332121959185555994917788289471488524175891159726396800006916223516736498838375973112720737120977424675857209972364709513896684766027539106796920805470055971704510571551436708579298316416824231782269812244042794832433075307398525856934111165209533178840926915905586799719805988674692235025233301618022404863395842120849159211872430885137151958940439308042851186782284897053531826720506086470621147664156777145259149325460759902921445600109490674942490822736536227323086238014635446592313318302549986093227113795846743250845041712950207691037418746033001604994710347233487902394806636096305330248092839662992965844178474160566472160132062708213277171417439510314733768514236090061768412571077485018254678970790386869809424584977269889274025394277593359143136790445744069176153630582664598277723622806797817357645075491583552020914277484177467951874189175383839635806584163322834296508373477389927411126421342394497223062786967096501663502082731728986850879648603010072641605979836895512486074419398684806713296033973976673681454895412209532813749255950555334294071551714093285541141473994711537042191335737528921086282750075530125388926341642843144431887868236800143803932553843414289322939968137815437866174231860040342988040005019384081071369666459357304762371551918664729554053162272631711093112227976349577150685058105879725591929405566905523132674981941222213021928237869374349004587787853844190416488664012478222673807428906979312779655634594580502726277315788564745068036022915578444199437461870191836033199650709652329151950942354724203402417531188627796690147336451584241690384701152056466294365637485151221240999370394679729941294553737385619512041557506312430156836566010401385685097765134024696592845245589586207452254150807340883948810264414133739615136064692831559232369297260152856700045611791680806038294695344106570392102812629020665975066189421275298570431730965930484579190986538309947240903179804153117329128507870265409917914199332556030469201955905693256938264008662918084965256812765996035703136642089628902462525391179859111570173307016474862160511259652374599579242554052862282506652712094242066014418822921709153106285310693562580593121588243122821486052181458354283648093249851587360477069513203954204078414645514508066258062523050314170710197073250810640568350272391892804361299889040720723215799112657382783845068129742283354437908958909341874322348511939746263530219352681963005858227157024145977383011470993262184341095169639976765902794289573368735980905028755852818896504889757822291085945495851926455724323201953727451317289269647580298816332718064056005648599264311049518951288610713042418814658505452668871734664787092685073046685292772817501783634910413880171965061480750161141834206144213389458519572888991229058856837416619643686818584806176734057211583516807250740755112995298265842097995649808975122562652684923312698292637467186926093465775097246232970407619047870555606245197644022685858972061418027618097263068076150532608101322056234533185410113906886130300112366588318652009078415507284716591548479492140633078129233368468615261552214103659402681226764371407397143804315363083551264910920605953336748970486189546207012955293930612320562966350147449289809208931143251371904283312728261979189148326977023284803428238256096531776655161494711407785075405757014310319021509958027012895415308822432298794254058777267883899968746613666500941824694348736634403347168783848503380994669185721089710747275317395217009030027182419686752312363412963411364318502994779218971090386846413534995821803139978963765377958955695454235914179890992876766843733960809864677114995610252662696286788293437948306883277678363343581895852192846022612360219196202139488403778481409625035746779312518549800569695702941515942247660891465775039724475019130466654829887309790476291618146324379060918229796436375770138033590506389966482592672098944337421682012219369388124000674062432274762836872525921751060978930474457455207776225834929256490992747418624995711670317502585800943252890218025492806896034935214281021962666358381797233813457647485459139255360559354233732146880736714847018850854389904570362352494082303335644345290268709878544603055035330462350933126167552777380329045801387007032422174587263473497032461242337844041267363061578596421450814855768027492890979270061279776262156372212010840205665692516417783207405105916186194553719071341474930207548397922806412907596556781349466795328826470687501018160898433266905444984763993533673403094371750701282878388404655927852400252462643879635901873624311319328213209615818730105880609187540492372878246489978833616376473883402612108390524285834456481311157668588723644245307867005325526947412175180161799620162110701946133377745209211720611941467182822463443900934155017345524312175937799929720091558560417802130383413887994837154189006761082375949128155790344574797720842812051888024465085266027020812576722865588154730936831367799299780328361147933069565333977116168504277088771401505606323850993775732802052376916618175172406454021779488293149602042753795839429197771926211657398717877640566756548837967570048511731007190313178387406049805216920361901711942198346172169169888458641010207616946227172121615295635129644903944783496591280373635397952815965108540020223689032551091995654921933153203796712612471366923173142729422274325595197947620417677795413819476474906218555809991752208574558153127132713134057456141293355843900998910780885276401054676910125577932255700277670311068335820918484872230832825299624181593835154325380783799129216436577051916254386804137755112844209276458794310923485470594161052245945637971727104532861605316642215605977028306223387038317292821428736872576230164415639100043698040196109461631309255987488427818070392323351534724738285927591518877008132751181478113707506495681946172830239370555471628451376562427889189890434687015212662044512971991105402653105362847634252811370438530520027369758034729183358196586908642067773012870443031894404460192923182013930543860446470711554216905266988472790358295158921797156501193515284641795932182414277129229179283318388949308819132816029972757940364530878238789686092723179818546643686804849725168698866369209001412576662963902754544304180426129175180754159890364289195148297588831779003127329575829968245069037148337071353686469001514196575526770146376846821308634737147282626609750143906061073940143056516932135361934830591706811714636439334687030544344105886397845023900514115491580173494533173402476402038423956313750757214924304764292836611502525079271469633121861559822118396384783720596397835557603157311184842400727532943987671957570378489723914110587420081618547450259603519991403938434521213086030229588390043507435211758229025429991459950752232038918249179709765485110907636424116957593348724152325588133814435180691741075206028556568518343426336591965260257337351855159867061418594884093549259188606713085407206692664695889326857716589160209268843083278181316979698351562707715718673486290013692907029974935136249870105383218414466173713381265056042054993470701475524865433408184902672931163487989222334283022440943881536416679079779772029753397112915074716937954436328597622143149938095632770399009449832907487449391368139776862727087035003412764650509175003627375678055831762549571071003754418275021802606497640274947703319833955718597846760532022144956910361884311110767668567115758013275757836473790776591108828153507368813811971543224664155452200965459794189910836252050054812411576523051534161923823745043899971462911101791270713868344425025055367430568570981505913507691859010686912711384441602288625590473751420358162423365543733239198868612639198042485396122074035961954057979793444734364577744678091276695935923781353517430028995770201995296464048881505081832883039871930052364722874891213218626764627397276100607794609817473929705193842552955075834047755882518122790482257314329464750501046741298265816227311561789013073247832810419816934732383314001967645729528962089524628060863318086888097567300500835567005577338314119658552792780902299333949809654498972589272005343177082309407999226808933302494087092003779061018465864173378873954516288406376097092041901158739971639486516428606275789764797919107159705519498677142020987612164767142183900712851993550751175698916353435888445452593895987551366672938282501625148976673122141922423219066346077313430748050239045649564193453356716106301184452436692163016532555664368477382469901657365715414877138068071042281170312153894424540995660369517843506327279037287800493372302893780497462494663342483514784592629364282591105405857759716964737464379878729080929649508831188857042526742204181218824998010504672268299221440973215898411013084434959840005911613242754375411119009794691349808122683624296540908590650525327157883958333091024133879574992556097188401941629587565334084573560633902421394046425478103216038496644193023502364206978004861582642657272575320902650140906129924090504358258724648790149691025368315592943498090784527321268895584104474337375486986489096490527874518607978566811785374088660488216232986065938964299287744906605122357086014021407179672455076138257533439310693634314693465357379639513452649129247871930506614630214020313130757869848218781998802032957321326748316073799031504303246289986585087005702383402210633726051505427722235189174685493634254591483724696600006526190652062707320559636044539440062027912530187713459987585062861568232557244755353151604335290106296907260659887380777609786613987752852876782401653022837467146713062416994981935992651519131220118853175728088427297343322203679498537710677405860139651188861811777329799082162521181253862051332263423178166109171921879492960454303017633397774359865013986720692162598360524507283064889333388946564085270283846192641127269659679870599044973991072683020526339036439512711118877857886873792585097754685528221774717660072806793890541484554833018568530068973525393810688137964545662122781005168537280456774668189196595130602166767929353017601381696356452842458619901074509821175893255407636347349483397237157824811560235223084516617939367465227910540041563341198231915039750827571190389572358561028806634635207688479429717069665483800724588961221168563700358105782313870435493730930747485920621800297850579935684598767247763384797746533362079193766666014496092373834209876469287766915860793804351285207643604103599939246752518542971742433369135301694242024255390625075093626777397888290507851524021909938013609861713367685174178280899554423705995675888351291524302953177637865611753946776592900850169184885030087813105402298358702827364805428312301820412580567573580250281571657304546171968919768345740468361915283789296231718455408134665261592793731191164043994847429191245412984794249368866634588472657966591071879055247286116136059306931012128513530333547605777386253528824580026533408460772957551634120275471731836612805667484828405934827439942493433376339254145890866818562151057263463678915508503435745593859807235759641693339551980298093724140864306087592256203891119491184934772634238584793848357409274333691419115523678230732549398293875998444268820887995976707542366882914842031005522998475694619056999062152273299884026489510431616849759711318886052125911105804194334827402243049277043193105387933894340756062009902459631265519283992875565135712265187903865446688288645250536130362212139730921216360137648554959092340640435592209694252885991028047419736423884179846918055244430544743340919740629324089683641492074123855370379184511784733031302318073099540737361212744751190067784087274653432171647811115521815427373260457139629949089582383372987301597071310919872603153642371425567777950276039742807343720265162152865735981981610069131609479069760259677814052461509832397888453777004952790587030205737143671074383022813408659905656823228319766875031689574737464260960042315858285947393827296071371884663037558002638976975794450822684597382011906035792258994102394546602602758279395573165939684734853641179140585517858285957059486839678514708641486008433133774674059247646182932226670034208813226282812205692073489587596591450650316479520862076846642873954587006189023284102824163210575140052918054338453301421823871316433030689429967223695395392553778220219199086803428373825245403086397375359433821167123269422975617043230490992505636335378704396732325988260150700850428349650889048062922719285583635561356761406634278266222147302117699618793535555438931770318145492710544409426953145367000508455386939092527012454924464912107445697458813035096211363154897889162275060177756515699210076054994037420133690511944814078472079256029216489856118791057604176346930586857059101836485739280335128013130109235013127764780634216329228901619814227073616869059482089322194806751967233940477498723899219880291947965805171111446513642822934022133831471534871949852816971808297505962084497130422035778583305912271998490202407887882761505552226890545700402628578720329436490249788230745882098043641419931289178143586253034945164417827128944974906717542075991950141406987772066308694612866307892271468798388269994518089894952563717354886047613254217954848549140422131699154845408381565335061590523112940499264558132981615071950623714801086832172955183870836315195507452254745693559502693289702047208911969784316084557847056734336562356045685099552465273179552061986850373959306754629421785711428658165025342842835418799822579611169266164613642645822850521067945317219789822712167336370843541257675463030667006564417957591197492963923569885660672822876211002293767450662666004265060177113393896127139519124294412664211254293812799117997686316232621210771917745213731317714716578409668403675501392139526575968065983614861711259053270476144784359544455094711471003799089903040737474672858346526994506653281955269923311394975522144462502117560411631558981348534269269532740526947661910235711983357070521611220094916106812885815676871379418013223494467917525623521803956704729899207328232897687476994052707410998246256247367166464708653186523759516200012212486484845601591112353090109993242870662930084452968681176666808900830082529866476441379641340683275418963093818399308865598107215594488368243834634311487722250270071527795487687014468734580656009071270751378560704352024357998194565023932284917256096310919646513460052948288626674412574802371868305166474015944670090398911912602583450106606693380708597812262733846475260687191732815263594900373370454096276462478521381324852130356849647687273420737202739454794662138146134244368474327469432683726833372474168845233458215497834703548208547592294736110362919817721779933989598704954691777191052222708373563642570794498797506292904078528904475063748726081458719142735712856785663680741621463723033941112647130704735670051603004364216261359762359776954858689461888707953277531680788579238784121153734346343899014402057925170953133984650279402255210349717050041238245674939907467812006951688710294249491768789004380796403070905210608874864110984627734029004707497209460306453595795463215800435435120068413379413945294167435247930599320867310724981119743568146629825079594020610503626422795929990940403730105480954221001519794447714901781277519052758716911919766635627957588170952810415698521098180036068312989685557128370682829565074794724711734598938454344508077515108694686035109996739343326692144943024970497345305228975164827137849392851187293434067793336112287574588914408450134467319581693253832817495956796921796910171665039081167693704078224524732736234670434340552133916403792359550042568782689205469172130503408322342582631386085836363870174760697486208775551603571327163713232131988898379191885738347081880536640837903764909498607253424265582777622582228205190048311414782812554467165305619509962836041329870973691377059653357598784530574921926590674496577502808583584436779128764427745137357909841639421919640964347469999541238561583520227399807884891661805005769174488333846176577282581859706911403639838781883791962115489183542252530316754336553050026414579537301690762314455770234548275911170267734069842617462829780866808011458611058999674734761606589839022153666811677819000229351606393698144927629176840419696345504686309780421253950302682776492801378951561381490812048559951014939007388117194306541577053125524178640402124762303514707314017713370667546436785416870563363324274797052208048410505517966921855553268489220853504913582264043920529286745379680904219977825532852207355209791749700072514422077516386970783041179956812107849706194402039662155258368333874518133908558098726972977767597001819624645855405984397152926208147023680957436455816192580987137553264565240515638597825437725314260522289829286501182038869326630252708623544037829261133677132757175000655442305370641600451744468135619665140676876615288331103261110425752008280811885817606207752171806162602442671456853521211346669463392855601113120982364272387360207671153677898344447104976690342512277419149050035841760904507825103881833644243466537090789303382821308188309663521866375678676331680695212435053564519343857291536008760723116597272061105479812279620569570845254258274933165563556795720381841091876614565639121490718960485348698954858991015544177219990478779645353830910609350870729949874550051996660824756153590980769604907124966351585536855686933837079939975104275220925165253162636738062905613245495427160118917331241676980079793533901237639344728818519558455941432482520181185144938931613465929162693619508867212649249557647272584015486534217685237332204271111298196075185537114675654541509945042020411305763286307114231202321942964074040309231615291317456756757364945569672330668536279644181080225589176865226880717657768050180273826969369446986108679949401768394270786979653080995635629858475200148431143383947963863270514641019449396553474156572920852636327508279189345827831612450874967460652711737932083850142293876552810396391929178704452796030404481390036802175115452434708114837294521771281717286897739185039104153890441887746585877843997093245874779785783325337269522615148882287795563763935316781325107929262680797955277853089784521199921309861773768218124402314025594586209878410084319678293194706773940265743433330904358321088500074625982732218727092440568993343715840291961213837827900103496439732158975767709251279282351634534218910713288956911064377537099986498348312171429564459077564236358078093567777445566311062688156393632510712565767070188595218890835436236632308494691446282814862036176044038102772604431239945261359302827977786196033595266392798474213251047888932661035955777671361206401991158793113439453777580655037016377696045077636941311737878551816968262245346843298729084858947405999699030078661502631330242082751573656163939722465146535146384586379163561741620587180751618898990148520774781791863545356917877397895636021635000049464165995064405519522075009216508785787883796638844043508266291221069898980412456408041723113418395739656443633582848521616197799076522566993171746638466135529127003237155741020304715767655151836807017685329900094639777802247718849913677047416955588409243308471839968644326769758439918914174936806146252502404165527199179047893787922971220491946499073000132587751499088208525708070112864356129537059016954789275312125752774434390234146844281577536091431105034683177813695299424113747969290685709131332780786518915142617036952568368562638863893273339427483009280278403599259345708304646056689370503948435077595255793695327728807494147194949374145526702690775283371258998097558708339248915899431061435168186977493258210984549821730386700948714883250014618243542746721498809205281740093619151912462854573769827633900184427257919704404221175365259185280876737058633980232498600998963486565343898600595828839655533455158445996509011379035808313168392536761410676713005979343646409326087395456100488003628373488919086904894668811187923173999929120509800020358246047645241626980365299749270284999527493224939812647672335976543307734262807025151975051132498533165444539243788477287721912920252463828458657055522580388487355105573834073526358211595250538169919041278080511768949207544245839199848069903472619014891180153510151964259288078570148067492646966106862582334813522383555139596600712176934417175780316144393377950367033502625483006732726450507581174432091933045409617718914679560246411505410110406510506708985086983484136133284290570091545924497026161979234617488947056384914048167351522297558988022431401020197966610257370307357345981217621454652078955630586767089870416462725298182098704045688634076755056897478843312094801616622501877703489439816322571134679839685335222840132958296597014267357471313183977973822809574720038196895280375041813924456886586986981335409667821482857399236663931502795377024500392473210209098718311420158542968525334238271666528258374878664510716990278740264512896450569374822474224407781563914391140372536987042444290310582281378227224392955939348303308541181207992559207810368233089604303108727100052547789828410847705841538969826413764771449644863044900931579597943416424913437913668137926777512695401533441152938466927855407401106860773019300175401673450146295060667097144808782075283402204723458254515799886709553582416262841259965691987769411493729979520728223077152635739947681545209230872005830544388232896827016166917024002507655137797694885942567288691963573587955937269224093305059039187526133860478566070338456923333558337097666233830344614764432969449786668881024803556334036135862514818885232629046379776120986299432391576708189082095972210732960264591167146555453724602977636247637105105319008285925230220446437617688565455724681734177941741930625945142923710997298830183999471408271001575922447096175344553568382529943626326596047868307825338228773333688516217058983834494821831349030380880093350627878863045488344349149508428144768670319674909441094174949182244300166220302776001029670203787598006615381488537255761006015603044527976666234349018973798672370525903137660150794007231451689120044092430848195271538260918838426168954980497141514446382535880163242048962672755430790509728033846641160739746514763092490579823022485147961004589355140395445619095902540294337996206642599360335679679127516797813465322497378523796028814985259103049395752044788142650028385835666401731417855359499865620900510432326265137177895894829661499350765564767200866076827971089301503425765536253776692904018572619156419572443061157379124537208728456027715753092523505157467991234588506695871393034769801997841901927135602015581804328206943617037558765204936573735512112266711053454238893092353627052323355141542526812370320225686377654665672034272914495669894046976177200787712615453595999924538941758207340767480786742113724583047133259131209502695171119827966327901524437196060242133036161445222456672711277791080800840075329280972347361526316162372868857822756547270716774091536085969500679745152098170350870288281904940256138135485389756959209663437813267406520166693084753531137341410703817072763450329242789837841109096194253455284874088176728424817500660261334655723622590224806411459517824230243868567172267354354002030412201517884528723524785899974354311513954981818790752872961583000086495800069251382489984873635615156754476015476313853502640538540501079478334660474397547718049450805677779827488527031110392422591599198929334609735639503559122175460926682097980777461531945206569310579584452495447686528924147643633819358884098758162053740205007877821338154193419304082593282465481624321195063880257817458005675372306226973357013556468871195632123521257362001547557822862956446528548230898445975486436611390531683160838373500504129999212797336632596245319102347177896712202595680753205516416491764664635296138336716188872007155110644017405143171854719395787004677132962132050424433381370167380853311441322008083116071610998985861556143243605524238441721352679108239505626193166714580963718827015472888667013406332856416631501713484004995069062140609013141796144132924184218114020016540039762622153057703636276486502722326551017913042680466804632820660472134493110528553995961498031402787759155733732918580752380614305885669205409137068278188448426197206815015037224924138993546574619889566784369299005729268132219991937219827898875552943020286436330344554740857182035133450866636281145960170283877579223439474811322582758361518630635333531104633977666317883442301470910726360066810154701094082578659203406083369041772979247634278018286725702551450741356492467974357000282406892111013454057495658354077463094472074281870638496237389115761739074945062278971981593186895281235365139476963693969426655520356332311131562194190362308580451104115754570972150586861252269487309597950842556818424672784100056928154450617140269131056112548201524395935510503676784983569486148162030274511501095481010557734243330526121020188043148143712852662672391137062254001787150985671015546325551803868424059360645186753000374918155771069048072068905371867614992739507959360200788000926955121638782431751459997518420450140501342178080483408527274435833590364381869262488605902473845845409493204263296202575563301831503602798949066267076577268610046361274342747214740366221534103425668506645583233270564420928110282122483727646767344286542404609525136325124653093273461251899948644296160355083164274209092492054776503478818425213987018578316331646600476551681281326831273668013442284499428613274443895688651811129244751899178835014729749387423451294881673229087821154997675245684762979333001369203692541260501883643994210099527563530987570207873551321985168597723127685576699616299307535823867948985521031378854467776985263058455997950093839909634759011445172225719185598901675990344234466565495729158263146900285738917270025039352537170178746039533893871414955538575464261413718264140931164861780697962665116374106610582180275473109786961789461176494394730110027631309098964175422281239092225088210833282112137488016758560975352806205255513182152535870906123617092347510634483600391288648000423286458121974049005172329706216304897857511013952738226098704016436768977508013668309267030104111087933945250220076114903291261213256408122767800482239655904564616342661060834798231484051907920793343516076456658419221026772041635262766123794408238599175927108972105465652783401635382493499259211550714504168244958511655172386791772517630954530358852008027682953626012441868589079354816814539222074365656138542480407334295616046643652468527268014854117013024732833852942200170026799641910477169343674434901700599143238751890010985989894407713200416126149282166320138266109967777851166965551800027574260383361950693927790463198306050726062215989075086251284303026529818849980781541000878154858577805819318558224532452215840677564764904378521112994408128237453219979584575283023564079639907502655106582581566025328721255209518703907721479971149708261879478855179889811576053893694114500577570067732502879005756524210449481131801576198072465180514120786217659150453938959725911136268320651646310692145154834325328699064840852405553661944398393537130051237494862688211058866432017018560674939936084659817595190310324908025266166788225559124528416191988598796310519692900031772525368166138408293096764998700830327827194475597503422586265932185973808307451771839057150196910430930940960684735874569067930701427304977472206310024145024830109620591831383767248640346972247154268903027050587809594170894788297087625062870752931254159839402118581606419863496569593158903614182948872891506665286888383165738892627526360191189383572623377815089679537433161737847229711821582274692408402123744285617967672807088689596647849472467585778044281555056087146264265205224693371789393292664490283202145225618413251917210675228371460055331741263161965168504444759819221630258131919044284897528916583619151732564835319545761423201720650013962004905329172432078535616207545089311262528031205810847603513199168832189249774005580929486888924230848619577202131304647475952656654202231082237739386436811425692940951258265605548667002541073403176290778419340845142947741057820932453391473325777988778772133425859546599954535226362106005769793985041846701368287534492222163466449199204110194270529771799348574149810672417850401424123103529667012829698155955893524281940454181705152420817682088519132795026338366304428551267465501630367138009746132919473920263030429177990030840259957960818627972959565173900052998663879161077831241184161364874408825447781434656891883106764177596613655459316192713937159281894968851486640455841466949881362268971146811955720786106084009515867972940500623270088594287041013535097676580364965246767497510519034853554409874123420877373239829082856328907376422931236533111760028218549847978017611731299507533893295934721525507237109203876780650569715238869245649231657162899352978589317928506682224310279812415377974751374404463131863796615956507448657502420232638928014830910034290200777619481873123126315134709804325109548108940511308035405743776825422636991023242383267701616974913192863139876263060661208797445476035539166081886581468470131319623273901734634772857351108100488476610633598410825109360248073889301046167899530663116594276186139680455576413230238942977122994922114306130006614962832745870795712909527426749341277232605360241925463637399302050886177465880622941346577881512014369854357189254279783042255450327302405568204544687349687514913907552372024711560547213995342204833207601272096527953711992696269793766297612206047705799410113564762515735808722918553688817890206366013864777187829559389902937316787992371815446903974430449100003496994368543473364729766731638628705576779675540244272325658790562262605054193766757779377250132635478757673406484165671054119409164867446183108605196209826140940002764300863289694423862184950114309415605933671055368870870575113729279454565285374313938262509516877154093841297884331600010332294453054370023655913176219707690767927919364426065955512204885019912313287217984008015824697560112373603784919573367630790115406067506741050246750831293731934100133206387414553348194040705879939541165451374181584798479757719129810943219141530095527839351984324915026353631595382789726964631346864314574978960914544931252465114576424696704818507305568402826261143371304058912045354961212276743755456788769957656388343069509996270403411120982183185005020910742369265660537806124024230569177139460657977495540467603264484160566605711079048716302798685782797411639325050987570795112820355423466045657849821624391110477288435200657321489490165271461205648641715427396010372579047715902989202938608114960198534755488874533069814714649823161168551883996586833205757808421718541664060839857181364814342567591623586100528698629178103043985550359920774337231023239402822724259597136454513939874728689219819034417097310669819263172239770373523841241600606249027324652620475026284714143385588486408880577083039743883368644269304155766083906485290230294238677540808452831688047176530808897490866745453630614286558405965815935433230796563450313158340515894306425479329656945131764116588861187019400619000987148390907138864838325097326980026279770335948550685239962794978638758789140179605737829093781062145212604354085625793266609378050603685957338844722556108340861080226054980622020581023830757582528309001262279342430778920121293601123339338551224987604671492628092247461191251600822702139207186984415548556532794516053706017111723515488730910103760559427625640149200432081673859348815083727156745842484418039894912375779467091621988862675010691963380388494585518217418654113569285520994438941889282549114383601097809602158857941730352270150811125749313405597610948379956069224711579200740838178451818833441238065792383328264476267083213354410633684574254173281549443751773147282675072212783240273002595590398493067673475794714929701674057776918381040300848219250540554458447389567054364283522330595916788188774832576754336317837314669515678439873147464282297154579463219622654526726940169327510787223130751776777585433977035549412712944060772698258885793548768082334565639948374719367286052375379993479645427678358189670985175094865309124108700943428118321291637343648253028871803231550622412040371528605875239412649041508398352038699814779091255858421039156345296302398446223292278935791999580530813310814208590109658920946748617399442257905177654505882000810257038268860423441562421967058088909339888697749704392109580581033472864124348215631401041747555405026796880119023080710219391092440315552505291971600562345835793554769042282517560149430449545280590901528400143587893718409599134950587778535454027527358810613064811608072385787262558190660470151986737968701065760787258081043034639393022851333554699832661642573586008817447607228920610456151907081686830029940431467701123686369715053716648354015267675952076641536391641497647717679145338454489444883225922817161690719670207601502183927000782747192949137725598922012293663123165062030295563190809031272157077538914301641898976649686526668211438508767142220156142375524290974450025762105857683434970558600003132074927650325527161202215295573017698857510637067161562665301026509434863457456344834505981158491576653758254806810358803487507674949167164213126867865062072038009030589297966721253248931005799687233431188060302000593684020000507999531498556219056061612278038523724507960143187009512291328176001882095569153861202752728615066051200188477485116261796158343983336042768148094109401173175397607484651819345277748671141787861368073221384099383689613253898133755655487818957237015935041923809037968820726202845060127825590688284307274697611429427904024121787353503209121119613987907141541416989560867560802429705111174418064314682417980055765725614718833152576767881650250591986521000931066915013264363882071131344859132044350842771403744737350957112173600659137254589936561378189649437429764317723427525919866457817234199784573980735618703887836356085457444367084720592918947732542965742390226793207703168949570597126032460725551459459447897045881824377916935265919173816260860492427951736161849735346572837325386721049081776192064110646184643143881396999387190782872868841171773483683586325212687045136803359817772628655911307908966224413903135815183448261584995790406643126191728429601865360219805222861037606490397884789681013976672349827708640637209313305519581420153336992812358915204679581086678907172793197090485533462753765041621032432210372257828500292347435006115202781402554972399893576458291678636618503778324043169111311062268681659766185414715023292826145446683032880711509491099643609513238873758188287256971796345505797322990379650206157502517716131746632318547627119665427814883695230517216374956615056685757047544814529178437845563341378027333802149208054808821513270211870761552243836022222045937210403805480880522100656285453523257011693625422326720246419177129829194469392141958228613865644924538210062169806920051253820918783074446795342092102779066918414564715190068095959475059326511214619433010591458021885259388048641289779731958540598805819274051763071922810278699092794865391528752372883248499531165196843104449020387376001302566320566906633980047607291945875931921663000859966268094790854271431538541918569168968374398446570013840416163104183298251778724776971065260150650056584059671414121596215482669656754160449815503884978459942116691346694866818474376845184718559403273196801902198507225229974101973020334849054287559470899144710843495874356909973269943843450216874812031218816244346620018930841724591915769569265353864461825570332333297915304706904108739469187349544548337933072077632814610216495282094983496862429919945028170817113047619173983324251413736170892668781590052694988444368554910370102762422693802197092379566810833236249988072972249482817004723412730997585365499058079178161691918593548561868615162731195669170569143060604070163081444746566174525994468136891629291995445338249980658724726155910859915458773820007772384733684735383438587080306810446329947250136598991177447755464627667443372032364709636159751694415338654541816762264825339798022910584547170831895559253854714962622062056373778761381834132932396809352477019878749139947747231685193124124440488476742932542075900010903529577099217191990206729039193967351990932803153067903166549551158423875834769631013166567923470290745585493683149426271887215067358447794103819924534091815212370834305448871908874287619274279213461643275976709333405359199386956684013089614125625353920265038330767158041912532307645369259538377237126327100542616898006929388318463959907125443999745076324736960863752020179811470871373206194912828445472330148471766310275084943202439875289692552290077245224312487515128610866755199515273352891963106895354912309687785012561183704506248823232936055312002316398678334361662823543098799556506516046790617724486489949810983999771110381523182807820461405760274077005702264979807207514784688590465533548045225374666360701440651570392117656344731834403270806314376744359814438161176329914191561243402240450321265722327533025776764254740198918569364761153441822830946287689578479617164091942678922640370959025409583988506991785860874083717838574882471226484127945761560318516397192159792953304653748131699535545262714072747993754685136390052451436443316674131121193877396844974440249732351239640756038533431645978607881929494182883235669822624605509511529144962834994659152448966645708855933325206845606051387583668620926613289730389045356244530334470324147759337146802623648910480104168651154182571049355687727844903639377283376179168177499353702984911500980491707587221698479615850454966149831658445116152222228941053609751794548625677003128868895399278391595092616056151678188051612373914175375872893860872135065491427047040714838073470458203248334915354432192725402668943773790478279747446886185445417471496975558479765097236075144032294813603537641708235099566989983429848668408514853839762874479643931682396334739630285279823056625238379589527268466445510208624832046933988666768698118333886402085084684182576846932145596539553967780818690884408152911037769358640888182752780942359712292355732220289060941575710828634046325893622332621642474644860842249925539678376519232021284316722334208057129953062323534091692164473195182912811260527784075230750338516261265481975712153544491319715254018536143918179608100809472345198080724354769932514846492464901175686455412337460314311855017309630670439648144687627106347593544892856615352025794735212392000995301079795381392630462468818841843745836833708343632720179290510449700077644700881821750588829141630907558621143054996461537005617700378568206060633190624435789508689190915540323796008478148312221530345650421800084382106053734214401453512470091769126113084345356383934032248133212404057250425920798709213357496548277183924319488103004676756555275215658846639666063137973944036605602094334258185304039257746545708837188333909406360218989771102208423127678283473506725498297423594789474249431470795102981495342591409826770189246332053731153708439938703142581891095166593728107265582139996118858754958051013396932728541578561668969040974160888016827189348128342405893716638090005550075175971119699507946067643754114984470908462002116834847862294603168099463411949460770249948983329209362034186547937793653284709236254410160481981651364459864611271818069612275355172183948502364986001373714732761295281234349178890340567701260811439793306575938557621860241934115887530311214432146576051120117774510282667281087226943384538490595217594985288706237760598430213386993144715996226468907716943564519004071018509448122301660134591115415438288420282002803767591717004110442053020218311178811716749652335224400804820076083598258396662625504164938356494188844208975598494465827156332707718693190365785892900899996358271888648497969684712332384724341731420036591878263592357572227822492937063437122466568739456128996493458426308302489355916124266124188046727608200299171331977085294041475587736787244198392673015158692814268461477815108657318511609231912735891922408395420720610250023583636373761861138985349294987675885757139147792392874106016318165400763409289118974930787210187739221533290964098637566691994541067548853542254002336004937458249405582528178284786059566631648549741535093196931338011255167985590868652408257745997529172644115055040091228789051539196608852932821360356462919669628654533017425889276245400692159379965589717817499997418727368390802116761810163114623188799986049910779153084795057415384927736630684385824636686668484603202225684132028334856233067707380906562686415480003658059947540700562191503414980317878417537749813587234041146022830386588646916909173223735828727817837253770628740944488891567226482071959750042938654781019440106705117568120288813794951201853309623237333464887778564405855968160529597447715258502992919932724957375306219345401230108857447894105963850113574993119846934539561222294219696520115345567390181097911848173518387797132700766531052770730097684229600456390049662284029934753124542683285970505800546308645152503843971484084626240173894868305815675168063206950960744390742485642335877583648896306745744418485915005617730797213518091554534366285663850835854833380069689130527077762186113951678562019169123727606220594636984433412496573575946932468712874031727985093522878515500286184880905707769886671011663963053187805665103479549817512724602408810258417257061124894415899345666935538168087553242046630940085769782083511155378451953819987350432575078622259882670302735913487395550023436743815812032441718274682528185534974520545135551733193313279229809112867829629754699727697296038780692510566683559447498454306555587055409142019582442301571399300574606304313067782975405588736632355251434601384929373882775356034169250399321644105517418222826771405544026840067608377251018806807273730035951923924614499940291312515005161033864587066828459196566589861632215002057069221725730188590329137437704955709071675734125894022133192595709177784871573976486169744315633188917220668156194939720295952736682514287578873314787058312753426856507919735827528958051308797402302562526046487187952807514914163419616714973831636717851332332051862463277631535216483473472212029347080689775359866265959702513166910389928427121147994197400195533329400893382158204335931815336897230836182351555180943891321401154129471179676406128079996422954803006880674182786031176946751183809994410986032690648565880994288742473675157747143091169625710196761368157148909912402707930567294156782948057447648605832829027860284397861856022817246462094788564831855638907925482196369895388489084976469808518860224782582735008786049420103366975763268499216195754579424220935015009345372147973484461410298823903345342480116211022702719720621078210008633155907898714287050231260122511080659245775032333513264777313956993886521415190146193516335872288013608359528049586298352692280649580516329199373640862949648653808650085982063903692037174634395040133699815144621403415626015577544489484663285627735674459840742201388875319568786138586986189368958279100509855584123099247571886748346821162758223996330101334469740763762723232124907554154961304888698558598057114055287531078211029153843674937567218968023621059067064864664353363315894077276603073013449701740117942871561876012856830678246875562413382960864773046109267103521358182328272975589902483922610596275185069504376988110462608337486140510312722337098835251366857993600678319964510118585068008736583204267951468948934797287974341500522444486562919131970066118088837581445250872191561424781935175178377270593065404279282452990576638698158315417390968095768963562394433987309713603774520875650505121905977676756733426350700752635945257327259763425257203850079403191152374980986858913368897939404825886220524151617411370736822716377637223240502012251151599830610157492968643488247912034314630648637251541018063529156467724324367747827935378576351966760550722374533447583977325475178291309451385922937315412444900182853967526512399975077834819747845498241799632292265959579820835670640913165976077774968114267482977623717628125685388307187487104265326434155037735416342773056404706384210502407430374660866161575465312510123126060721899930662027910631717907507840629327100966479557710337953544458489259180994838543420415302151235707887826573986801225099607934734714143121560024315868464401985937897287936320071738776418841403296229129391178557914458847064284588370896318650952164256133250609451471567273157422023762904982744218103185021392445574778963302153079600577730439141918012707967512377923371531784590816543022580010974689137468383771417055399957081369312948719297741366142451323675751924945016379038462357454176175090444264777070153456908429218479940495598304056512589932385887155340759866935799005943420945970515602930547266571588909495514979628569050649508196032548752356613629421409460178988914181684397873665025087002389887250469161269578508144083527619043583540987683006545736099603352021652161959120020261447994779472869105053654313844014213180594997949509618213312582826907916510888151003387736699934145312810142291269105795105759528037257234714707809466641704949258113107436992921303059382086583265245119418412461551777663485540887451008537234083036803276256017491824626686146343066919972949769797238253169843062548365938917592994143247547900312546750184711716341727156904555998371458570165990395346895656114929656742555724543330829286764303119079054906121148273996575879245516900056972911364443730173166085261554047735573022730825521746085476493875263068493171465051260668926811298042319751061135927102189464704252060657402848693459869142365951951482420880568058407521132445999410645063422888287287203623698713351426244543388020683859182254891228317773769761741739685571221297480982459162249475951903303043452398410487554318254388427726735084128916821970586620885401895071691901923271173880569858016705119660639725208061370069290343409735710052098977691873774532212829706549569074664094463185212296115942250677506557663116482702438934492924987490569964057274811316215857695247985474597321047629720405787822186357254588201005007916259680072780442827997889542930351886686625690366679471282888014579552908830727039285922615762788817305743395060406317567562096545675950331463886187525086586292169672980825444798831803080371132459153712633628174358918257585294535294528483157512641259422095750737330130401377041994706140865619707070632361875582271901253061991554572244353481282278371055856943402559971825661934724172586926856657875157244879632480907298584638875219918495395510098494145289107532422454363180624205114419711252677893903721622847009234908807219267309766688062433434744075639751279876337950504705664726756687672971257367807599302992077413049664301918881140728362511811205409581409130711770304683210934300279581718700144992320454800722846894235988246721500235637567101747668168416973674124720964700632569603072716052055955342593057734970030730879955840066289758848735385887776995035886146517631918781837969996297584050255175718183751067333504357635265632328280076682592987110062489131827093229932734889391101605228566085253846554758160615502144317635341141633902293194574578931033278285278741110219659866697566946686261368528456023306571498330574296088947244118604146404139490384991187735788847072588472684855761153057598754316698254419600583601934037943797750025069137804594802052568919467230031031702978145947389356999201178368870194108218118901078282854874592880229271945280034646050399992273760224052208559399907621602798795064912110504318027635479900319754367735365028023877193346618001333661185482255667087288990982716087692157564869696126519429148199103530146643221853270727700554358358970778056753484358544514942215991097627967925945909226497401184439677402282843913880610075638726188218390452760095856409620235442150260188733156836521603422433581931308026135526201378748044740606053156915321028222325672512520693298078111727307013834783869539323676684044124737186726433174731249389300043877945525064099217974754820406508237318141557787393765177523963964919656958988513047769548914665890581798784737957932420524944352494014172105080854508012821968237543009800279702158884284238743240129953556002918300003182417087490733173050490879429383019917002707330256812892036037900919124275211318119876586799556019818524755514422562949822455059819640578828633027869207411010820630249511006820226841323907839336451093150003299215347492696131853429732527195369631827541592312751080894113415083718899893142538829675978438501700503257823051600772280923076298410042350404163080762022615407061880836267824787349213344551423848795760754180549682204594973430241660457719347486178368490700974146215723527603404097923839765415018471459895145076544023922685381779931855696492058975200548110279006458155277845840279903664560715278307813727599750774132433542444671691647158893807858538097692695367183939557029553429940490398841198105680006991019050793217322959833844177670029980730937454410187318210790381767980026411605546380281910588933811702467612726860514523042075071023642684415404927625492488710980912038067148688704659123913513691898727266999165493840772623818412017477621373238730632923349341805714676376578805858637008443160263472808971697205478463244195768523112216476194957509426127911428181151684598417262555947518712382069324602722743205346886619011636791914472456853185498953991056759131099056488791126107117057772393039321933095144556279855432589515051303623151871728961807809494082762137015953217111823064265954486611924541676131419932418327848812126566324735887718285998523481165704367960337126321225539845372719282050312010722082249435552536204899383355627302871589305454078105710822428203517805165494131100361292992932603092476213866609744090683164650053467275892140109496838730521024486924101097548650345552309835091669102572352128405546260331531052681580262476239335360866736399764497559180649036657129332996014122375671218227583634253868507318343945008101703920594301501471512309980466064448589194102646925799500240533861200322345854120635848541776035825864326868520290028801548256153071661040527217000622444981810624227679334649919123280175635342687371984102438168257972081072746132804671330579775681132969806042353079681868130343681584390920475801916914883745639528493647566352244295006843584789862612111048537931432771038441408122356488839944749725935657894837443617241828032939633347779855924173768520319890256776707349625123943026437065926268276544583103176609990711641081343392830318402347148954537974103296304108234914163204379444189095152868673085184619079533221133287563410496263489718994101320389311967711723323946492957989636983455664745124697865860233779028041605967568874245151562996783335744613863765723269869396685103075064048980968966495079072423147644087713501940635762945105307945516420233608911712606626581750128249457373738006572388528827649352274172860402649485450540016399736137633947603992936702376156144244130966701631456983476378938825717475660338067277724984825015170380184442674075634314690730945375573058717300896027677174835475258162929050655216885156278458348305998901005752719758623185797853247192652718712291977710861640635671067329107236974205633636199360126505113065912086893772205167798141050988511449997664583636542241044555304135363646022163261658255822008354382233320839078695386792714023821580852947257869669420367496737114741048486406768363882003712882679561363367432510006523012041778665775869851826759724953692221990151207961579541406929977777627518068456990169470176473519654331113885335104926223568477403931087771054523684682620329704545757701688044895763350697264306529877546636345738791376319868333344123565267352836883490852478448482123494206086158948089406717158048929982513575256363009437850028044022915510504102219285486633696128810728631527458207230722362640051090394161189750114316167901971340051033947443414413786001562483249201775703306432994997649988944184338149765698660991055270956670845259844064458763495387333148509567090408731989132712204221592753757789805435455120738332341065547294480340278204409362166663794720856213214159011899650351385908577530844167502643979197055416629307119702569121865211371837590260577553670581551965831758862110932508652739976016780732662615687962412273434055451774512543667997974760902953926610650041376320987884636503811103456714937393417360152849881804915054697951428492629475219891186225718597700565961204418579894287483519279317117379887340468395120794159255744668699942171145769102596386480480223061405472828040336949017435928948897475586640843961907840025244065234887670233619884364027706307366251205045120738789126185837001247551850729528235753044647743252523036042875281589725863685134842419305986577275940692865364293925588066086242900080709831282569754576067995686193567929716413165000954930461135790414049832715918602310622494997041141475075442048153279090272304295413492314088769750926435732662847158588987591031394097314705069685342956818023320599425250179439059574375934729891236121727054769948649704015561949929308031738176517677989067694965024496298239350279058213643362258563898702295505641100610875480187015657370783419975055878473124459229082611304943022526303309306518783409527920207832900734713910209309290746003103814346922721828014070772071849390369442834689602299892597514571040967213928602749630734622985981644408308822139989237967203068259425932948518103096411410522441487424180710403647687235342954925957846061567123206325085480798885257614113900221026587747353543313003992839670740675109786081467984505830538466804277326665957090438345640793514898708732927844768341617683689814282722111954851115956789267512638847665271523823031474526826676677965561535210153478862374967882525166880083411214377503124032737456979054852676571151137072116030441684516535997594881006672071656367564630362625940771294776238700820214784875021431403010136066911761649123057272744389156175889104168652305513065210568544474437936451975972623839214234713557107703950819911794135636571462605660567214919279754070940518652957078394698721630043963270148826034732456276456403026322129083679439583750002144303674259300596240392279298178500866513919137668298415604354578267430234413208703061961851161671104612632424163008307355469162674254910009644743758923669881066186838424534464251187914944527012293767354817322021873231740080366859825383187033100587634031094449948704029176092336428076151759307488538123983091497893664790718096361444481563398989814475811601537817488127365587396288701657934615852967847036292678548864495247827785754996234920578106889446935807238004266715542814953877708993804642195253222395429915089553107131245161539298771357649055648060707537226925091204510589015882716228798383887215344019220042237588519719014626030654945556750332339674676643028838563044836787877310147461215097387343780363921675951348571091472221529596744080990264693906818472506140214955007195277786637168483677724690572266340905850881046318676085450623248542564200933447736422403192784156997067571866750541307867649640769868861099453786309480603414786537227550428169142121362096908285566681312290258454069879177770315452860968953054108216037853034454621858800201993008231558964050551189567361296046061064471083878256258527896581648273409859275742159109218265869555412949128187447407096475106496892743673112483785107870627578169271512599117014772284632102603360209351401643676402363888195683452744556204899553889016042850054973646432850335576049892045921288964368387545294618631909177069300149923645921082971848183675880175663279029808817221022265519470684108425974159119893919417879464231262410254604742605357799459804193569819662254635124275212812905029939483287422332296546867496499857428867072405061380485668572146846295345639101689418117813268021029684493271789773876117131442753046553171910748321803017116296018982509342836753473107394393485327300889229246814567673851292217786554547174320347110303465284979952714445238511738242219158185155546395056118627002965435798943245570063032686728179942726126396324512681149570415951056758434874792075568538992606597280264699622474059165107675724890198234052669824634885306114911248238240408600612721708497153422959769316148163869983546338768524680029131346949116012815768401618804938864490918961866424253593459497031110580792793004293214524180498685925622503124405676160187627767106938440394420687311676762382456545334289706341268586369963842484991284165357496486702867596213847406011686871693635068313385461936196971331242711077752818026670857479999081985512320603998075998069715004650142720772452589809019355220207913144053142046165513124971212616866290746344919453841864244174187228198114874129994492997607703907767969437811423667201853287870270374167891904890395292095544565181194436357891942744299848882318277220428098093338779282953514312976214879291000607384971031610260843460421069272066160337216433725146924314094826431927072255055642300061280967546716624776116383652507726452932927502008940371214399604674949581122653411438712601513449473505409806691543088337542329881373567479666254339256178623610367583398069507127927784281662219405979810513638997301811773467829976912305644355498117673830085916034381750482204273104488395019621470494391071218527878111046945774964580883224114361347855966818052300408050630170496758130872801458151077420914283368251951741189150818778088231895658222005454818453490602177656368562294842484380120214141334579371513656862093345254797798385403699355220879746601866214139494031337399542606001297983804862570778476531334645149467406215828312094332198050043250039705949703490523414068283508761318148240480031022538926153858735163498897805035270635895947110197489724963805831445893851407835229547698246955670530692506178600269418626923279767727892049908484666788717933743464698798166765521086034254524874137968114443572137559495147539905631429080946191141577119247587655174451665878686009908705422229213119181873154572652735046427632754564887690931470150072659320649344510965068155743603298447689101799116480713552359167818912224164289515926016446476174082807593236466148346340105430547861422861301236912881215415851851717094510761790167651325962048635763397067443316941545107434729983411583371364511890387103275098322315184650081182322471146786253509705181346870868752141544253180143339266409317915366879537554305160142164656473740629977085846421268286626909161666455274904574571425513717551653661819914744974560782359782942188464774018859543295259493987766437396963081568641066034874418855721236795831191619674042878422620943952982790651573858064779505710109290742775127581224263946492751815340036880623810871090598185998591823268643400564940227592028349571791084373431855679491655814513656855375267563196021312667631392318143335427062779193097388555255101067971749880974968567030048883204837749146814975980178631218273948606050810823334597578162420132379445911418587093412462247843188672408134609431629886624736515124484105403641077985547962693466467745199815546127791520713298391659879578194712543766889537576391927884043525382926908281952579866919792388040505419398053973113189019999247656883056166712920666758189148460015790154628978475878164132156635871029892151926898854811769939384600112920689698226815131291704326874491663752510700136521272804263711515497390913534060790750227742180887716476757937293440089423566229524900610920205615563356089732559334313940786293862436591711483062801894443822479562636602350759501877727810874085360955635599874836660912192912790239326605377391210488153342558228562362289142251750576298962026058596067804693197921080281111276774939059906012466069187786970243610682267024464137811062501868966517738173595206137936847123248296751709137993010789181530151535650524207807585994861008541881257612031004806119033884332229570909290978898111608964024764875992644938709027748648123438267112984871186445269827251458031273357266689388062435460270641055966066651630371978539648120397548863167682600566997237243494135451552147835416825415379066598479976965138011600560216717681435843293514650901024951932062540113341701465461850796162531898380783609347628500997424112596339071978153807564639509531977404591228452096177389039202040415673334840046887654552063514814533383370392894161624129716115833184299118943891636703113562539980677524648676277149709423136142798050348351206539998494163071079016059628165015607954234731058937143679953247683021555370095660099271886398036723999631787922461756949598020146142745701986946621511130001165999053838219973301556614933348698611491997654704402821988765923615184352180701571140438803226462848391021348749763433012279579258488702456458986882968564892951562330748852875326255039572209020914066646777477027974411122901558109671464828138891049590719097997153805670328755351845055101042144015109340710367045915102732572075550407031759426263859628183644734339020152128045878540734534795168810283842523514431473082158682620380573392595723707508022705278009959757000015479490823562883680227318268244459002058621550814162573223324535197296434640113265322478532791393468295258407088883748210731482138411885830992297609185972353146358352300530961650631742844442996860407785395736883194314919786475486371853301946024055408145918704667246430658210961766151238207192352163693351025633969510676469766067927891675353887708484295137223574499326508632323576293330990143410048867396366875187110587908519649508041753590559962897005841019530908020871587944804476699620557257907990056792657449877393442536634122393095163124185748492759022028714653055127166726251292420197987368571596439745345408947322665385426724207325007944860795615324670844786129388961312436805598931199840460870176389384143098369135348320284194979562909275678208880541140941620718543409774052024515480364101060485614097715778882904539958384686101166621692733255540289385403342936964805401049365463609858460432800987446884264611926808486142560306104242723858036609881332277819531468130426573387414660905570795252670221558544493246564992417157609078330886182329128755035440263582483363827705327017240099841289860342199397247307768069812907597704524675721646123848929810525773904909546711106064684549251181496509819759259233862433822649273859830228959260006165850333116536023381427956828166464251012174917372160635931066883215581142098127031400978342915970323026066819719647201275065927464461258740002265630648499295609789097574553181456361054202450563042295239155065391705260440923086563535141996902087417832328893491630996845959635926161708012733211624991771157605923770380773418080344926792507507842824493947275497363860470352861272723283629012226492302496913181839658369380970814117529553557489605504338622671428118941709964368506608164984770550093961619799008011056159226066084052809112946508248332337611337750609740689681588028805150938504490185283807929754798430688149455756234148701873696980465451792990972985801578805983472551975384748442833031849954635683113972273865419737910249224425858721443206533676342229744809211499438176763884183903469410112151625408213329708229075837531141485613262332737033178754425935084134569325129622173340716087104226164079675678646536686326768062372421859742856045412599543308356922665251221102087110262222951029416107518059764128405624231176792764332743336259276075849021385367682852064591336123805552047568649953029748096020112779202036629044989997113343803795408680525729671946311820911360397489200847545217991130006766758546235872201548984269803100170629066904643294225855017166706103010688749421472657675652157269205186427017249680263059676541047629465865683469698152057896002469584321820357197567492126923910217430256444311928698280807579192202770987470769309537582472964003436781996592405349443770743364827010113036272437292716128012621470248007408118649036208659581437294558695683659966430088614008791012221130378728693021699119224338357260105609886186818458579998464339191542432212338610923817433900326054992689936913152927024433559347447089690328076891268521414382297195300356340595599729468810615551167844523964778918395179408132896013395230645019912217178531616827000282868830577499956938776424290497276128930505124016332250610040494836940473964931815600606629863851108501775270354599737477661332962710948028581172978155390515539800325632922304720048701921614094089406246521201189669403501088050340684602798666462014464252719720775943704108611458193799243358806058894816422379238720156186772901714966736909233682824861521685368267745065557644152213668793849955216218572439922731606672324866889695573642893838002884817242983258312754999725407163654109952676711561322719061497920803825704340173911091855440207935430683715465512316502447541946605250530580534019533006380371928514355495921450943866801675515265792300355712594097449249990429209810950894590379965003280157922368133355600029040261196690457887374300105141793161254865949977095361019470998793429063547984511428272967058362923747739530097619602337307337442033661658933660858099027740651252957538312546046949267663802069285939185759310475598559800872267161076670909511644851178232911136007471857506171735135524229950787518963251246869934242466255815100062851081842205672832951104225069580710119208836774114739482367466118342147382041477978808394343388727345026919496685154342696208911529480609070949092738515609329058971614204240680066876983232025106691966534114546983583522533559691278095238672694972587523535161162063358208212008532492859798384863980016519770226109417666017805696127620570476296144000277759856835455165308023057909614787278971657516573536523434984887990257484298449116466860763633909851557222115623754079207085112522312010031297284701560196365874013995719131306552503146050608083893653257527846251515123730766191451432929448614325866527801833876568068436737689168617473767894642413326509420909596892243768724304126319857783472420368601029131042027837679532377938116380319158450878787706373773177042726144714722168075631305840849655578528937023803014718540021339586930018624881143434264522012785649178938840965896736360356119827741536252327091114749592815905331147276368518256346736590195727049107389189312881147578327324153881379273008205474454414229919481977444963981099512592621847489075067166373636433289676367586991620327787773097395676205448183049000311845207230865169162272660181920145265415085430302625861263648148247958582050111422469266268476137187010388356968541857960404514357294035515761650744063859718657467336804449204584425138286426209178466495882080381510913068403197734384269468863702596873718362357294646315653381220852651623269807806213531234429689090261057474092721416401044063686808035246001824934334797374178765350959243652882075920636149955147898051012909947594813022270414947765261961113758081585864030205191789556976187572169132701184675560991320252833031056388350043815880994828535290692034800736516453354402318426312690821941809975511573053693657108786614557884788391826084576094270541500491623597143498482844050667334546093731811406562411858189946953422336810201372359074385133420650804558333020892678156786392269299070327920264869354749909695027234097954916003329273693274240701940696289331709380100255653578074266733557715042393560962828774596230606386810451590177350667967043573430300085460139161351764091211128728950312496864016939849666510525460054491120329857911742495050657373456750641289454507610980914634259508231155108687415890758361009203690138863946044908548818724412126270283888883818914576937193351356891848598525378379169137151910482044824233644027862191359659413074182757294505525515986776291842218237081893446048671704113165643546984446397502935326805375649149606907193216974543759687841098077083634449519256719558944699720574322673022031485656206738698954200179939274847189264244351158729442635443197097128715732574024168481557219003984174094702132788361969943712709152022706671920245583938979352558763968222304274984873862530428504566531883188354343556550054533997248769051071970394712197460029336409797204246570154975878356532831397599460437283320353170560373503107811899887214449078401045237495285919962312738706738796052521459303587138019614659677710252864166041805135081009646829622666612183046371369742617317399205355881991640481914381127142850760742228908643071833377633989010457323676336439651985975937444479073388740107343187753311445472105330000534778204556987198594361593522559385536629671316084166643954641399999345094493768894585601190414566189058292410135484360470032473443871288542684601387571297353758584917315204064197405352865916707363010421206753562532944510705821693513809064639283385866703287451842903618914651143179880404423760756906007011660627030807884295665746336212709278430955904107493409117579539067571746112357318188328082989095064067290070273673505188280271678799615384176818944043214428806842131008480833699554341101787022979356712029444908631655574845321565112682884330180674512751340256197959319680042950645860226709761152362410623284473870970536430504790469256647016976764951629717020110800680649840493866895040013970783878462732082297548646541854453682848521572751632351292394772582810072360774670296317872746503110750521320421647703517479474917903539223203856993243890573364451312457241223010016043266365257210004584708274919469537177350078177186877279001126073254942611957724368451625546857224381922434071432654189058576732753363132374123107312123626509180411111371875162385417328240696692571852838789781698775913366997546027509767570490157997540418252652201665027220601651151154037120923773198401451049099239898589452595637366294415822008821103362732653034284258774566501707628281875347634204442275581016397905360104982066994286029886236986274745609772280424679533529610529051461457429388701978474792548540363375556785235373810676093865970551810227619124469994448258326667076577959263288160531181603508680037644019508410737377256296452145744451716175632418755964105512363421083927175394736834852225284247811925297269904550412768592536433802877226338175044656323101112910499621084975885101182683133071196534621596432031596368199490274963898003895067376840137677223285898921556975347192614266410334665614992874406103391439531583996819434854755117082496413317572250353766678621955613200792037858963927677087917987478542843249702250211878319629609926551107485008038978464368416307926827348679974914438745649729237374931253715014062619543872659528342038051850391868815529348884724223557590710300919246334419366180291177188486457253607486587388302763612960760919820430306943544846560903393023454967590547362555389054723384585647708736473773847099295422657826076194456634698196064489302710685944457918159352081167965646266725323079565862618934888088155560251711382801994719137524540868955038635320096391463925082052797780308262207657612853885749579323588929232924816272485218330177027167121371880207046254939147587874147031745306038296588337593526598307417642831300792060004367206057144202424912496754543789485383982196085396462699113590658329596507670218869132310735781757542389304089664832081158977840705895496287173945913818740577868120130367666311048901025964983231971836542757513562593769534704250216882678239801191000005400926913845131590773055071207343537306124050153434381608033644417815646516888911696882715352293983396551290557195754952426048427650258478484578488352879539278084508191743068786956522088878034541922917471899299450349112287134725773779091137580197957754888937227858094843461523285706464309644268511267413502400772219873463270625117189660308439890674762087255482981978861749209589525267649133503976577404761348242777705654183098927144231977793028759129159272880202772404037025289732913553490848140435407638091565101140055673543836224463434827045905119376794850557685350284524421545706569257761185018603239306454383093952495470096867781695399773160639404795206412953753665647803578928218573233893306557986411575416935114573685544876305870812376762422010016713098677925793329386020813035680137409045241309023972599044259339852574232585291994840070681053176180345685059269528833282226652130703593631909964954398488712495757173458898070157514707294683213702130933607303068517011739602952011338756976799227467492646984746517059515727291758312693437709032236076168824837551171742115840628371299164847090437441186585786300070619573775391794780544610065146943608677752390327625819831505476773786136553431341333444030839362337127385579461500939929687578280103897893186268306254670334319132333367374616226655079988864303506308217720945608926242600057291070322967557805071219835077587049459051003059209240716696741791668000481849522505358348555008803478246884564298955701960477697532878975785840842673813844888258180772514632142908044936248115102601761579022285600998681232575142577561807935643763979893137143597116512266175746275488945756224735125830921163167602047664716998195195136364285252283129032851127801217119288133583357539995803138719825650403561026781203321268841028560256602279052230584688300870106712893698128594347948666085273113696635651948389113711288203264635474249992027155901574554994083341022860097337232010015538784659965194980605641375504250181847947490155182946278996700366373778405886171236262187368673415620837811625257457820950519709284212252680270201675450908379840615422709193036923608840182073610984815651829733880868888667918857553151174503094096715660721485861130104146107298339105286828069692658163502588139274849111813577725637832235514942665829125609856235146134219465001171667733026862054760835168979467947894841953849793510340395643148725685684516587809069700998110929978321346155476147780297522061216169058695297420534775813769900916483577722024567314250256804903327467011877725004121509420983146031417751233533471678863830599212949396590218482634089760679229164046887890808257437263953713296100404048347095228398189982459379769956851901981140466314021944763524565807734968073681659904424110384308027920218268941571506129761200985923968325365019866828885415443666375032251049709295262975157794932931258898441017212077487242173639647595092861977383020066323943048577862316880929749969843258599465282916597613227007724710416756270227810620113088447408835333002650225962881468288536792433403527618246797477051485050698891484882167309406088900234188389492748904487210743756262840014901327086443111924559664663509383879651066692893176712617320973066947030999319313306077552276116613616880588980138703719210838809768908070919636337606313265414595717393941182117877235534377030856026971713333220077585671484685363572386788779112696102494185193632351228753272420557649460271329634970897934986013135883034481030551992367197110259305089172500101591779641568716005220390960902293233579031833270473717842528775180668516315465297467604344226625216202091105374008630676798327820884357307617274829289361607889110325745103892331579547166036290841530552321144488524577675735685010547487015029465299123643135071652744176755364435317659761168046180552715753131184164941242583142716809186582321689820944502459079371902651483647712670880922672939687117559204815559949198012548581990215753922905783596615194959861789560757115154238235722495320851444041430422010911314940777578004522707881871837767633839084188344188293065754581736625248694088793246624794290098228100985029588967731645786526660719526853523169523893404164164989862654341706314512125394626604298816017562501608712377789248570781834646060545648376485653460816775798099202264882681543705939877112334715413514906162710030415225383812328703464839436711779721684247993146851246864856269123728099574890732809601195191844284596565030909025652150875371105615144148666893637137401110175403721824920492265712172618579104706344205549491051740773483107524434311442832894234261152054417918344904153689058009365362696058441507519732687065701394505253188128275352172749591773935567468330218573610254991330808534484257352696104752911282568650481659393033249699363158667792401397535362151601299809728658124711360965808571556148896227797995833259318869965887226325387366068429717659005451021865356517533393739312720063641358695716433586640854719541724874924034640461072980603736909012419391686472298531267536631785807694229123840402687339652814006217972978557329676035567269418580475792990168478016250432373797820881722986162975205535950442367545559053393242541570753260280975143324243886502093732213031886375684275905696059608912421068766346389035815223922755991378795133179100597463778318721420065348753434222397330065269822780658831645614309619510869829288193581242361201889170819312040680415958503063553535599064648482393829330708446978354957102003729507411564304569479677034697447297317868015341282014240585980186370868118619701321031848856073289088606894691348835402918981962863112749514775221954131601498167086043901630116280021381619940473620809682048631995520461825462160214296058234604153021945735994442610162545227839681465891406075001026200180725525518539888289835613858914270516778323630519766037559714539928135344808780367235375446510324694822542394139679461824649213518434930687242647746125445745518241697645794357717113003998692528613800073711825981094161586994530101154750556246138975897291653849693287679094553220838751078585042826880051763865353705724361372878931989676247328352962928633290897704430191625055331472710052562028106585646596803495154392475136149898877803084266795895185148989721820620859744106549570541056291190721996453256635282482486290033145718058640139910483545918788408788605235627493152784748202300278119793704173234751974721506271972958754190980800322197048896953333417027609484741005906736438918643442641604567153141446469850111911353637977562610955839120760709658523857587833505553790705336892655979266254550358574183539755056604041942316687793004443844025411460247390028077222890825946564960267613677846968749685826790960593538437451099921562707549368688460573865139362774117249353019641617687281255324742034449904607331015671048889809312943129929111197360068237122668492958560600095913507471295333687267973511690175497378459178976936434650512284810626322704591190858991853374605470779017644780417588844248246139881993373676200889163069644675917040330875182375206406407609849909520609322647332797677793770396930643389032219234583054771621015957518266387589350404725138595526060063515140918197029964436092362372561858135471798014053421858752404662464647390735417805021398136812464016812707665810897766448146789074363921785669031670703849463042090466573640014474129260730882756553172406823796945388669763883237158754107572379655799760212980787197672231285071163026079833934477891336246618969716007248749710895367832215662015687494220057954878803509642292358256971930933571529755882411242485326389476213229491081043331637354293470252807355623497816318258229380032162328029147214053417954860753035279873181643495887651703281552744268354491706497585866174145278775157421487232243715733331867539725422963284130650728093269502440547183919096518716610616702236829243965142929465818951964267961058411628818425552719922171993018349101312075939103601587774040581786476124010020139293193032256047236415877995785507413607415858710481605967669296441193667285698849586800520559800968530121694149628456563887158062942965047202665014942521129377146352826192368538480265055934087368979105178362379057386443720911200229439360512323698688206373631390905739134519976253587676006273686585184160140073769424230863224007929870424388439576206414825518408501489734677489782746142593199517822264030777292990905743191449153728438460497742460940736940078877357704393803787156561107669759783286508139180467106489810916169776386659662384772439492577198519969840571304969738377817400236384406750567673130971846561192471249104578117267221926242958209593899089156109827553917354824019095869302044337806265264044841785056005053832669794562026939717893716961310193447462542070218896541964163386934643203849257331246384143852068215212437654963987265344174196448205979119366937081950846464661506202594382712527810367885417415181796606666359903832514104074098001804376254123407681889853545363391486054986900119049259817784583944381706954632415170075749789127824686991479744746935363046792635958289479814659612479247286563501470043519650494290554400809481042745139698745064669565410138065551965991806754134928220754812887991093225320183938634430706392164995156168586492658669309900617030470151653931793214562386201319411443515849350495609441362151609265274940476275958240573580072668818448376030786960042479700179408095450405001452170582272524865856681321068463106180281932812839729752856302433309348240835421017721450036234018687164292332405192428283832854735967791919961459055935419024055607815720293045755704465355216244446976303691944788198189334887106964155278652093957956727356482287492665333633930923477006739594063415030906153803353823341389849103339265551605690812980814698939350996038007442485789721302718878306224394664332182022096852976957663862680642046838485268171052536923708326038567965462976383190121291605368322008099951956590673892525037419786458883719326145865835967466837098407991719082088134058682544847373528408622167222110420952477688373221292710569760444227442326123787160268214613964099303237497759525966299209591807819398459819336787435009403862124824032075996436031278996912921452498981564911071635835894222927279417812366051089440676938434569908827630592553764231328502856724282660512898863112895478982373481547000427723189151340845756196501262853734125105880094006772701138852674570837639108310900774688088943699594885363764896395878538416605913251095988017680232703536344309139446929884852792460699721189978727349095589854597153374722416408966674219806652320999373653120327858948198834085977254241154183353323260838202508616881020856433004632696964010340032541908639943058044182051165888565063281027342931744213137979312258195883037779778158527133744090515026262032729724616888728286704268852529391425734676665229463873409059131767492878007295532338179092359042315656034430951699546652923381836463366181188202058541666990619187598544491118610767088372579564381616572264718815664308899396643753141713497443878060748910337563947703245289332151819781395153755177398439455124793635570645771459817454191037276316569509986354753212473249280079031660880508226044662228970164188430524407673773071875664395572691523597340425861722047578702612029445582221460153427100945376362654773938014497050771837823017292098094768262616576527096300302214428810973270451194488388907988605795108450972115526632251742774391895080902201372206460708111413204907040339980338091949423994990398506938739014362167406718807706984213670148682829221763529825035084496277677517988705161151760766453079554832771857218276164800276913747456742475181926052707569071331252662656363959999225675806712728247078338548925761023927365544019168848858540187127582627726223754665152837443222232872992952921199900014115375545268969813054497343221629702262414887254544554369464316484921032258050553844755215315831808979546908841199325083883161822673544702899351093299091080856057570436862188775969553687538066371514677115313852389706527979156135278084100887723265009117527997533516077185506192314009673311035672769022504620104701977848536958611928553809702904803901441459118239440012339520966884390460003853806354866463101615859057048690729343229100281236123865826657461733511778378767685724621561622250700433540965993386029623011619168591948744775833480022055809487762693938792799238488875912027305865086745163688018161276771684432698398971683319752505161150869811007808474029147618428509914923391030295467448074988377939924847271582473574772879079917898454028531075152508929554490175198121336899005932281801515215887016698199477253125505375502718349865651428614024062939499342776542569102397084361121283899094542936801230382712879785954607335089565866536972074145383548682940069486884902596358508160665025729698720444156860332915571210447964181642842129355700147408014864329885664897741834882467790529964407433925487402544348060534950507714580640603113723947066452276249800046144730102233274134995808479969660878716338220315636194200945562967356225700487834152710161961369571887603763087576602904866276167601428630589650632642702896966024973994838611457502328546801964167482228070415588899296660346067372276082138494195639224430861600082073097064406238423027682065469669682178305392971564269102576067034776689615537850971315347788512706113426012450243825591207793006301571545448481082390044729287306791602544899010927226778271229217856443656552513834732868756470114757994907708194820020040498591902500249725552985562490926863279928906853128348798261346795822873561223809853506138075734917187881521417018337520178709269470759420209057811868817866899150670484794924771142935090445676210529761748633361090871622927104059784040338730156773834463158145639908401636648563371606798330358073630755397218295952000524020344815528393045995291506025917974704224332318388900702760886346097538608680288915589096674418511602237962092958707044882179367706165950584660180207122017974065608559353143630442065245110410324976719984058554430671855489251499080636993040348194737294963700737965449027109652906273917486240140245066082314265680381115257527774691317242246945346120539280335643803223681891276520780113402612702639931978981941827899418436154295486102562461447450474017043281828208817805933406383598819534845261391423167005899833989625033945477480144247047207511824186335577055881638826128389161437311863725844763029353048864207488543304417421338851277081085675116617122291308608671892773004643244984791913361930300741154842083821380915730182380908132795121086294731283206532803896726429063478354278576818281389141924408589248711672073707084033601889139746723465259521162670522961236906724982816652692669929762965867589641650840310510214261114777866003633224997050424958300501321070845183405731909618626589454792001684827681441141830002537700785602621648154146611528687808292862273774262689292842907309398715120781510006795277031408953053142075952647592067772745211447885077752810815348722458646461681503498364613136141230280566432099072517969716754222580719338517482514525222554069746005014526057186314340209239635639830155025867409254858590449870838795696143001802938807651601417453607149363882981476086920889823520927901465106286284631116354837673660030622373136770545385528766068182938400492734218377476955752073234052873945740970537001473375019747524622565429093562729270837826783662804192954420383057758287198112001478294268629458221969151149930154803138685208409694902134885660041447063537330343597461906107291228528563842626079259930327473444087397743177533423796093302664503430702164008704582238946771468533975271336794057241300247923845816569367353256803193083578061908208148688590521308787069091179620232013707630777679143062790827903092192345615233633376119518190679609370545519172572763503492685030664812083275496465559177975207706855698838706645881701702922069418298237472558804504190754964218895472315005096526472967971172775369418713599479753115577723419184755525193495326349601077225817455506628204697095923979344219823189372964376180391531440465557169195674030729122069481977016010525470809649729944721539158164065024537323201633559109661180056903128076204640884567590074438329509495349665993146842580077342001466062765000389136747224860885459506235366052018410760423257769943879488589006962422424590432295870249804870157118649570029116582416741389040131597865067544496420429095898612877603824953121801224008945163164673885767715627018013120405658124269420201683189091273325046556512405644588387631614176483172716003568728419030081806326336967408824224756778124478076497117283307252469245072203169170383713241955799445224923296479774967737931380541160579514869385491354961486195862028458655617068481025306903393741653937218225444522373218608727592131442721922114972872085572206148383437354715684142810740806014863478997523120284234205196860103042884087079162979897913335939894868808680000576362022860617065738386046405360404993079166035735240213704063346858595843968226469010575150816833653094484710170081655332900649508583342451639824279413071739076942862937567226254212609810401329844948769322102969453723050441144032074230451335488127848783434119215082267066258482826248202735498071280513949237999404299392920643953846555454655044989555847949638684995058320924530735177103687558689914317197435039841092582087463470991762585466502278459288057377807384715010272423917649900229248981095831834192114866446254001188289462210760081219250580608247363780399719802625565806780279232314269371923481927943617926611198322247172315182180662311984398814211831412763392260832685484087411167717915887684666641487706050653069879000012060574298062936837473719350766250787493640100613006234486170979638982057257186944332979056532081093327175016878074158664936854870692518085527139077343113494356278505074999327214839077460401449057932004843534949155818177633077764875255797523742219347346978467727662963992750164130156710162990728959855018037488543723886889943661594247795086130079406529812749502715115921475744034368170187799775184053073749343955776331583202843221533827490772198241791462400977823760770229563964296546122230836319403720411867326963452157543812392699304754594790653401221641436556398365568425857119012320248809424639981643615804250480267401987526294715411381443393425044560359116838332745968900535413287934214779176189460445014878707649632709150616797486264452887413207814485068957066067950334538547087322968044819730561027046072232060404594839497138248449560010615712029764427301386786649899307751149305730308172617011248831885259350701776304049084407911472468872540892025894926959804401775397305555374441700817212140415985418252581319324278975577696064796961483518846853492395239267106970362442238770587606872708021968447730528873269151355588749086112700920855715675396756325424038921114790651859264296865956883199621301915592245261271175464732533898237581464262401564475837469013374001054327432793746723224049008273549381659204030548146660641760939699935972427570372884065387686427733165063820772784824788122718638777047216610114116169028684282578666554654551103414951120629311744731297212517396199498668096169874171786072876745195823894485033155489549384641385419901374424801214193246593993204694601124320474515149288062992556564467263766602568579697199266462776990030695798344501613379058258510170307997524317387738964108425024558831822421156652478641678955635641183307911319973919045042996167017271041584739057536796634900292911622036568234571221011048450163864728638931551965732198992697681450209610361543147473847024567076903874058824485002402831187156043994988565263624808361727410345534955175076845687056283927097659261715375433204853124240527820188204926681531701437580984065336861338955984964747243157367577425617119969883764344548583674689125782556092084399508093061925521405225689281249250038106055954274390038454098613389492595367652203726634750489498331605398958412142633541836926123860193804735862384952616194343532203085020292463199733715086044058779435580311650158230833337486797957973664273865846356256301556249744130529331742308648574762079755045575127403795818321729473630638445230940410998086564800156997928857687376372303824059550766465935482113269580113524824533831451583512022202233232878467800540526098092439842770603660998129275462902779229907277211835174581781245817817896790535673027133665409954709594465831690477354948212661837347427131846586714340573961243209553753867535284233447910148673504697354072052206865933112533296176352113725375259744038403111786861609291499225312646647182653330087846259847917658894063844542486425655242842460349901931800016941523194277775322954482890360587043439370904919881038721530909764966227149696850322238580231238201669533811883117380303332711862065994516536279964430736827655339566216013096207739529952421558756039711969201174041259046308244272756070803481639120068889826746415607384786786173483290582765534277528166150077900256021881013327482695794414303197195456164287193141310437976594038019975135320497718808939249985306227322484276372358401455230657962652149642763115522253062306121871698977366956286063861612853120607045516821596002175206434237595979568316494420131747101821414241381252625463607123823210805691905168390887389512781258324839027855100912755562549611161665363394527355082841722716464315932651373574944733636784873736880576437237456971489688874399218397959430790865603528389939400954464017259937714467861583539699733835805810457443538463866984963614928380268665872878953472854281427665300145294018131489126363631041950513003492043243576837782466749431551154848504616275784701214981762353925674403824966502493276203940096594388948396899114207725042991685316240534931063101862955435438988011726063931298516814130863298189368105367955471533316715057377718712633635836480607080138674577543745638577348034139502511079352448448065528734750722674894417359870151820122513525001957490398123251671402243815106944893097894406890434691072981123397720000742944894767124063432606397853942786529490845745074428210489397768345498073930174707514254023122733180366070063770265333033539731984482622364726387991756128799071539720315053219570344126615632443798116237395455116384724260276650157797838537358865860524653089379043292620808535183591679635497133295430979171159095234265782019233776709991540226066062987418991741379166871431075626999655380196511211901980641007169327791672068548718798915856024078232363991725732050363042305905608581877655022188928468915252584369528198943254562431213142546243915055036557602603791112299522433227199034977891103192365359007074234804047484096939202997019890563106721018649384635937826814273155468942089922480600511879312783634551388577093638486918647219692215991258324892680125163870375692262530207440809101764103004583596642987563788622722714219843318106338739207053834184177812285695908615376210544213919662378253582125002142612662298739154650416402287608666368323738865584928497838339634073396428280675905203151068471838376467466360009084923234158344331849456007668333508124298660136124538661089814342043763658667374454839763436963054175632706434499941571987300321993425729502001756161542398374178452874593989431245700335593306068258095188364663335287813884647416824150282928203249949948494666740805474142276922683962167672314846905070730138691240023168064331546895766321858425202405224136908411195868018238855559269895108685814431867679243135563390082292759718436961709498173949556508980325941102207097299435100476289811451222473056006313345823112321932657979082319408054623694833881302164821055273002924617804554091126008538612509340090661291420726362317574395665248215322544427335280090776584337327547614483004798540869218561288168370606709411221168787358509877050765861693552279863085019458169946027147039686466920310504591913834047730761008556077672017025348492000023397266982432475539531235142229113227622372780433358807966715556942670030691914418475327856385579918086493310881137083061370200147885919299388984670366290041794750313345462813981815188094333441972064319442165692001523962484150860296513699607201434849713692354716594093326887215865095475130862128326553459580691777010940327341444092138114275588759980157666205089668783592103943508553856267066620341368671594258923447096307166725755823443047061745928055130336338735230992441096890937263754181137762190181552191136591852223229275083970583427632383446986389266203261143478471872797468357391298870965806619233711445816132128586551481079470329518000235051371716318322897143033027496654395513001168736241219286356256466424510683129440919776046751449648513768072313754274577863253137085178817171262768183898810538970787403749264641272563139407649353976056159850438647153721581797662359060915036597733046211500194849253881028329935072761645845813238922087844394947046324680865645573928574272514710060796732458400712633546768693751438229882876677169544735153188387988594031180096740551774655344054657832895375451803240865996942155007030451934428159686625597394618146544115555163801813232238811091481790194149617787812800148917874215896488934227116837472007840199905004394824526029151304263363216660829078465281253905744615861932873126311275913423231770188107743556977602620653093700285593928002420485097188995910714784679554606243525505657937915234277306599154653450840066529358905938716776082790206562771179937737734011633835739991432452565597736898915202948854712573522136941797516880678160034205698121923421945057013536803767443120201472552250069270447877579334759344308045010000663508077517126153142340341483910704389746644027693890822532125844392361420436830508243605718285010632359100675329897820864515092061039656983773823625789426836477770037071000785570368774902454413889692425052284631838180743838533908650415054932959487350120605656129171075045006020867147883974677862922354443264797350462567834677204056718146191976951689148095619974526046410182361211014779955518897115600619531533457785033961108520211535338922610571890792094588099681066138628365382569694478458289838263901243178329869856800964821778585828236693978737387228662998655946818548736797710238141010582897775930181199949911580489011565059775095766452115275157544385390681827410866437735938469235864112758642303184238626085661282096409117033162808699116484963592871700472963502957533307892623682052752148113482947557458229176980069523261587857505866528017139274341439317649286352628588370575014381472071577209914139512445626818492378770636490970955734592237533113971270636317599744347616231147149126352204606264605523131299103599762739335157762661227253593399694782644363093032971845807773168127578178654134984833561456656708950041559067252990894699592067678395536343119610806034153355132504111230642281895463795579807806477157061374388198421130083735213864963856247936721642971397070013740098980728234232660635607790534310308946544609244776771135799370745570649548340740358346938427996146207757382577046344181448503526178527642167739537670668072891745774935426675141521556232463581033161550341050588789522543878937860496709116736663547692458304625022171374770568218607636670891327120315533881814621819898653046509200609383959784942579422549561997928238751002023290157620045283255253253974591550473637281038135992529752592932699109529683660351092234168544839124677543827388552069310365911531930692150096084477142011725004987917714937482941591089345261684005408976777556730336541206258355532514095558768574830532661946823973121565809704360499250858237336260339189132934018554985338651296655035952104445102321845247879075307496909317235259853005919528773260691172693883574473432304999988881331095636692970843851723285922454876698886430867876703113958040093899099029409358451030363580053481288319909710038425070788741560499456944345451175678040763031948524960686795955729904268242068101612635535343548135758132511763506983389045968045649246132934883621843427068005556415302167036809119933997756587788756864339148213263627210144474849611377176289049364984695979993716245196559575606526851220260668608752789138915891891208889344048618346404252874426201601366375570812809962130768938602900036275874197443852512211262602776148979598247134629759396025828104712938372688370094286722058199106356666746824311074758097875642645382015532331052510528639455321063579235875499610018739763995791514021921628162256171960077847051861657925253227336822652251252193400612819255626076592076444567745954305945710919060271319150163756243937145198136461584014539579179199327067962952301123596019168672923725881388204661327499739529423984425924934210764139855713998736185775083427565950978978747451838446792613710355482808000375040273076224071725773861973527170357934700070187698891071631911279571142975095079974047674542444710715863957250097012115518666609932689083191325706105218448439622916590480156135175139037576700098727240404529347594532555809472616743282533768084401052106339157674299150207043867661828960582220229075253131892635580534901880025214019438084474692587869459487188540444508986146457255368155611261004363715571499851380753475708646745293803817665061828147383053081740749397961483910916743153350096605215145182489203513651533413857344907226729394497440597002369978706638354707795331881593383667735180109350457924383374168431599444558738819831761834340984747439276735009051877979968678794886156413053333947953345985483080961631360084149922979889722984944577966011774192070360973830101862266202014165033978389267977681803377979176043919995538694025780834832763094046746655206767675089986488709828628467491978799818684850712648638624619071917219952465191558171829682595021513159046500356697746894530563071679653260916539917185408279096494312449657877728700495127538013157461232332763880285570481564485695197019446462079558551233819899972703189673050728272068628909673165585759389638576779123741901034953451401914698659955377122051290069551546869914515523238376041318749559940668630093184937656335907651225329873528625934561486331048339342571644320104591254378279690988367007874792874942900917581319805870882154636238897018030607817990438616163372070906803298136815159593716749178504061472740400724573164331365083661243741244179618012270869623326780425998209986014383282725695606604087056406771530240657250078654916609189779287514048484090567036485512665355605649032295492382093611293059988693814170292180193065014501378039361529614598480641018703410686174424185951278424738077399708474910410167125494818002642074481226031678388207860595160507336568700026223072133557092840214499645063136565100040134491364436747382210094396947934877511739285377791608295551816507523090172673937720489388353296824649346728819818513872169053197852821364649674589676297841024300005505047338365146406267374472543822885471655392418109675977751151361936684737863927204708233092056229129652999589428255274072052150647150164300643788186411141407785837038157576654122070115900685264433690009768438804796554269711901705396276774469039365132636391950007638300464815794439320269723384817526713061364674328611705121280110746565317234109612908055030173920135360104149718777241076685354277257194694147898277592593275804580338260908748172227947173168270104094198530128425148978363513717283863903316603089194057866417686529875904085415087167659706235439405322505147026977080462823934703245699448574136324714555355317212725376962279540781831520090307254961475987639521771801168632776638217747291089588091840461595670848898630036365691352930474828175713520092964936185470916958724958391182412539547480731385877318292434016883519231703417182115953946974239132834551644328112766419243520426585085106766197254396659348323666580080811092261565170924851274374304475592210325089654178158099026722895103216565176984609218960422462056001766536864916261613491552950049649855810093876153535266521816196509732042436442257242967429202195137540917518343780366739886471835976638052549606161422855247365282081485544144507765173409667498503240946934669611534198934594497171352259517835782543756432467746548389395061737311643893575967708078387310098293714284251581864917166610641318371899829203417249048257211554068872836364784169382773985576009692550053628888600350568176804033885097807244493679052760950706359914717927677507216499226072581162369183585892765560450976624709953045627001485588802065119402303384984858048959200732226173447285865392719154224739518247307239171371463652062712391499083095262277052656788450837751143667254858699632961644986106023365745270332783417839597831402415041113343315930106986137023533634923202444104786065966647737760721221392353478232135254912880108805973397183774070582577671574815471668466550572527482101724770144129607091768667268645261217383527858910431722518935611665765379461310567932082379073817323000392412672801265828998660834648987795482320879904457988275412398707888322370932525685202205944944983224549823054298692416163553173253887485887773605784649417482304808866015522154780616841045592610438640723576067442418320961553759210325088055607313421742479776734864915208922567823980224549206377670685682167209609091997002127645381902287501624267931778104370559699708818174825691884583736553303325895852134255527578265919208413388187035587775224446760873793093227569067852577193535239234405225012541263571272938525136678255027642458811842279191844667660435731668684451369803867268585562277967300408054220739400343790195453672114561206749392946642778883884801844273627884442113206261355031184038962403105473306499175413546495049290230434395171149164837613402715472204510517160314167440759348961925895384124494068805355290055187289627800706387435959220127275786805869998752482829789917547362975840735753266417360883116916824829781474426301780480491508133285889873449677829779492525300338788122682948748693413960364333164162260004372318022921102900520456720734894464640024782539118725651099162942468068679609257947242557584790860787608692423554783942139619409654474055211994332900472324091816075337079950873448895777063658303622651123182280860116010412900353230347744844671555619323423622799689024973479791331675229449314760976858210948872161776421813410560319159514118018961011963044991325126790076165858561512435627469175005380497966998864337745077886647016590962653315427913006086540349603218817435279375419656511171696102893350104462596256267569512453427459516138224503838465745112456236171281739180981220116968474460897635797128391239840596988868706710588117939371734764496860595348747776826711844068250386892989603016335988280218915537737748900731576945286687734540494579944150485967179018325903893145921912246702012149400308081617302601841154796972958219060475504740211255115980320704070603514085227584201123498708371717601986963488304277974463673556546506944644117689331722920176028882842813785010375764638917702088889957696804609105851517201340768496320201680100914455165113698428355160248335908564255596200801501121586960844924038708033346830350344944739970204066732071085602702935397144437312103071975199344530673914590209502932579351367733315211867986398523268033942084780431158829233373111063679564313029126769039900984123286427551085164069231774412090891625665815296122417854029947626527925240909405834109106233892490142940073223222324037564847049057431971289959781825044321225784754836584932159865557671005842778022373258261843512922771216536754125148007878791387522111516115098262984065445374763983370919881470270493813008602141819668590873090456557293138477513259479441804559803024125604526865435881477438350083780508082714647552679141606172812252025084910622181311391301489497802754705663447652421376441337551522319399660872338814656496225996636912480465569780730072310367341266340987822255587962005824656136988735334642165679095391239947996651575558417263345173287506771413791197594722296590566062501075896832213466753644408691589363596462793857913306321248980568844301850285855243707319137538249497102258021197151388990818309527221542503182495557793263253834664121698416776074417149338572517739263972299736903489188851284029183933974942338063395247425595544566760621997572332153454630659237393908185603172462568189883581985978583207515721502905106855976480346502737546651974473648031107798682102231020150339610005702383967210144124686959936614776009444415391095734837517800777113354603394345353665637326947942365117924939974974141538671630018147389318949318742605074783866431720257528829341644284493548226798213067313095067452982028965557227867187193772254120256934327355922894794913287117439158322705394822387576399644137736576861299821154149128438493608716136440101146059197838731930551416556656274379321248025649745592251160212571074914722356973406553172412805523023886849748752968079709984747070427010437876187202726079000377380143499402781897192884541441223279648611507102793082270686095061404564484076199215049510879603537698946826755221305263078233157678883341633269988767567821577062869798186253809844091487159584541685303776639371836861796217794719912822369290810865841394878583540476177555945999270208340873010307294104852657565101086874398157557767745777644940606363011418696690857651047720973507532911665839871004720048339312710121868156215124566444280947408516094106870516866241842588354893103711579895328719558241567650028583110927492639743377689843929123434074487509049229426652434320149427210040827312332201469894047940010753108739930856105163328921078921007161945075949888065467012565403710194004389694327103157246295042733696587273396674123319177100804601606575421022898013120279313226328763816459347379836410611656883003000178127512668565894046999985232274866350245917255818776343445645323087604378158113344648434887791319613230517749369744727255917947560323169963361091385185163080955883294789473241646509620923036166665662217103213232199900398557400452331700721480396160055918213438115500639429548513125373681609197511935901731300767729456830761688075304155720443502808582318777427437649037559656163114857865735770964104021798064732633075873917886941931874553937741277929095205873967101573701190951449896715249352164470307840362606791415758200167798208930658388016892997395876715857570361289432877650709154968021475685715809455130114432002188743428649703084829458342547076213504627469530695672004552929791472137362186609173976379324617927067625707407305412907893430158439930492801633547262943447975572012472483225750139349899494890864428910183647408160752222627094862084867597740244835686651235037630573858330784145931322408833204460530914189320830325777413655627786944281544200542073868162444944253361658571856263222446198597501813583797803717850112102233533354878325959648607883250464039113609069613054754639752980201216771466693783452997122192143163286905664102939804946588465971130489789137259352691769849202380458476332965387426611557672901462561045045011226536180116013317181378128882849669876895875961877457563958828214831778371085277410944132765439550979560212509090170589919688393351727366830489466658830596341702236816827264686517689833148298953854971926149049024663851517086347892156677569475220696725049010047248776658237935363066477060763634250773491898618237005256423138068567000554629788861653076039815048579239549569172583221172208875618248864616255054412190550810957830878696796476056506969135412833850218472579213899367590099439996258830070042704236418996037369865441646618575965338986237996609305912209769742798894034014182094360100692599479895225382816099510086021763701286214593158299381620810458946887118186597294449833423472032832989188819512395916465463189362524429912483107177840088822096770037946174818050158365189735336379023991363544039663328794714198370533863527245443740690028775641512499308435032103503277432391315563163428197521838597560746562589731710337927977921105765207336338847810096998891817824342404912777794263591630195971168627587801475538624906726128805874851235911517741101724935339968023891795687641381453274140666473183567507084988897736808367558767088370915449665309226459353706803468093205676384472056866693090994257270713429248326159025664741757098889277007374885125149991186280503676910231381547630250920373683032128600819634982260583779426766974466985900324907144141497947611368163195378821152131667373511001338065335942361568113733799874895129425211923519152331238970053543733610483388529110061652652234255747139887660872058856882967352803977437839868802874043603843168909229377525358841279038635653273912353037137453554235432567532956907680071221392571594068088354347474700141961876176629846867202975433113650497797859642160177292393190326803739592200329030414327575558513027676626681701622320860587796813818768652284378756332869289068385136857353658728064516598078177936638670621547451973805826212270975124098199987987866982579616241702302896775120265479635679672611044048060383184307967106730979852314753301705409147416068821655594592536741615202069384771397455436396577910055501772102545468782486980437829972639343569152092380981261567145342456035458856499188062783005339739429487255830188484243796737029368459285960720799025376954362272416340621562706335996648548929579098449498082117298354937777493456346150858774743783258491703455339432511767713689360701474430116228844872199402296997690267191222993195543578010504586857925094853087769838208721103700503091050241577792677899400905329858661203460513412967695281541541256940326851503516096205396131517990930370628264096865826060023114230921247718241275856982855161407241460505077970253972961982336349088900616109504346487689584380481202093195065646002416662812072312995570598516953713111600907227262967219411739565256794459785411606309737710951304546676953604560098634987168886212729047453384986745223677330261053544395306812661955404969939767175874072578909372940911499188522636428680402488287121385034164975000477729549174417721364635192623962505439919909019931268995720615827198593859517440069543173344602321355654563530947457686396853779176881256080852733664321444566235724324092655526262202285558754798189110612218946347024703322714248380137793887497457511517567713878175552932026168019927807712255107349767868091273116493977871629487421785723208831282704238350343851347245025422683111950070426817695049704758805987977386835417221018155445053772280969976760660121897979999079625354586010871091106456112487418586328972246019637131125422244610324043874443571667981762840280620654551762964442580050627116090346618491056791128039672268138021778540030254141504187172435648303175925840914770822331052241334879047740846527587681129302915915104996707563142266048190434331120345188664244824984444105063172720632589909631239953104674047209868150333425948036495880969173181734821703102626971035827678149653481044018368895553416501525559153262344510806833181163011812062457867973914008947504617366297047786717246356178060298434642109076028229697175803439666991194063229236671172461908312137767081524817004607734611790711040821670956036342227766525677237852918644091389564314659650639078864110939447329738921196930204851979719888916838627199874016078118340508378146531662011116050710699333316150118958377102991561495833095299170995944803418484521970388594908730227584616177114052194298282835932134639709266123051843849824874171328213167860216186901492279678624765948795238445474042947025590087446826561200965981206126549693629680196630477475062073318361108392457926119554376869285895241140593415254979067758674722751602600456209883377266618617140105968624676204278618130175034222276703306786144760920276768510855170212804648617729833835391577249359297597132766584558986788919393565431313092330020221595391866822677338669508891923981023228143469197213769721610263700447889200976296839672550333680654767805727539100173223696920453279021116241265061315081460454708482718221636535809413348581885224494868015891781496700363085052110732664630963071018087189376041857459093355104216337484758319633552433400723558610127483756727159107071242414244089452025967933043954148048859360122093576661383128206196994140905538518519507665228500165081389149842075284884686498153874231008217511303205212352341982729604595669326393564433067847386794037502849943163725397031153187011091515795932935456668720106834234293603183035443721976812413751663791292319583975896187539595806338607960333228041755206754897595221409235800164549425165271215417779532653508086616155187182144737658036066726637291485961524158995897680432926187334641085737294159914629910940465011003808513593610317742742835590699600322513570622420814233390474015523535446924507583921339876048867217365592578066568261684438618304528162827114727824814432954636306939505360432487070615773672665132648813251391257091646207015321466227426056026309342450171706679948257660874998709388063546172259272106142645262391967072671044181910896582407313776022589314196026038717060028756917756753200109447158061774513205604672802947563181478148527888127547647082467781894933038547412439364946718645617430402699092545793451689718173928898565163323498296511220532835016037276942611505425577476806171708749489831453363875013688233017317090725430495361648907001324893934780105268760024389317955236560046194228678461184870370964850384968834166907193718550773491070644630130872939745612890941654103265070915057499955067877410211476005783201060025658986542939111690447563284975005680866047901698555282504327023858890462544533661890569524369340185752184377390611984489843869112670282237453181182161561288879478789637616781742546327479461822951399450607616373990255710955248514660769966191714144029464791002094737969763124069714289820502027331952137514845157019980400662247128275910119265233360548244143330875332542689581434655040625791617890108762002467845009315597801091387734238867683014464792494264452764758271709170646345484384027942874442532071281486463545397737382470600689998883926333428202499573813525669382842068254919640608342634920846335149828388080986166221904435610149190518176598850484468581409687193050489027128372712493882613778230933435275803824706305481534230418532290761217714548428392633162619838567475809014303694294957456009404787292200669159615142817546048099067383179147563582635737864799667599691266620113189659041801183602788880421578251630666387085307570839103712274353548651682151212307166604504025863970543515631533915144934464468798957309363548167564694804531518323232427602724792366990061439801429679710033665413128443192124673447066319553472968103421606365383425522203813964980122947791482898907886984711154587357212098281304426551013903235585122595936332330210710580675616846366276588077100721447959908153889922931933695588695221863446712474958187935093454683938821534290890692530756208881874581658239656152642881169364889813280896316706421353749563256900668693396350743147802348438542309098094462667978709519881894213780183022750021957104631491263056034430458808560129419349220457580690798973337793862575195048184324174165711526813470176277173467899182542254354477211526134498153714148502991023524149836678562047056282263233123346394848755670721761983221623362901762258026981941505604828629839908552293317195298364579601124118593510791956291341923288340869254944986851099528573750318238836802297573128187825309602072762204368048608610321003192997861523084788226640419644684983655529412262787652409511688774486948257191580448743499091869197063356777723466364963757513686217934758062264871689849884101328552858875969261671432063394080439228445246602050257324430834842325446402793703060007871435795829720665604103429087768942418874744846541463656173154831643955464872084452907976068220835274715718211964950918205860226506812923859560083753585007579308620181581018149093372950856986472464639475245187639246235646460772826026435005527745624340677531890839710341175467413032776411002349502688307816544729286806870607087736015160045050652896087790232613693852619622975461796715591311400033933999070924816743112049911550038708238698544963460696218711377152757682112149995333802571400412190206811247166999226389869904247534908027714240819492687046147744954207313275666142290301985466349744962564093435458576330884352211246699400234518882368745261335148861464273645963642811982825696281052616766110790683336526681463185142754587367240645788271601496459611538061561371877618519345547474794304570359638196553297551953394486257951479347174899165723276693668149298763902654321506984705091263918162300070429247154677871510808238104999953413760855020248751774129105783907315622524088793825651686865260230214733453194240071267277778300128033807676730466433573725478773190606728238809187293015503235978553676782959556513961351625313646264938512082828990508888893453845404115601481718635506594407589244205331126108969184338291847746967276597953951654531699806106533456487279370691365742746334272774601540853482152957049808664696122051551531857066911664211153473151714733415949591197320591835809970205940801320251865624534308577375386390578289139205552496212076784566944713291468759674159870115172459589822682995116284177602086242762184679883074776021854776546640583604213701013415232651285573083239171235227552664675045329960967611848925411069754797189610978482393041023081633398701903411875715713193751674497758295007478414165042979682796572715005165455074233314090718612494134878693892936451426410816952072847564141877280098444273907279604751870972255913389853162817423085863828330548268344350781268842897701781597937652684281236503220363180648303869770424878104948407464346014135573137954435767477693880914803554781922988355201624092415547234627641826846388774902800845451036145550282278597620072618018699749740114866989703563809591324110795459614537620877938306681050318053294490642744916942654276031772786626318478004347047713055265376682715641251229473847414649204934205290373404390598240784539871047036684442954118476534499962884129046398721743261269161662309912305976763094270057894682489042852521472600068311025199025770857851297136683838099708911033857839427520364252830847397887178225012851284983040580530730225453438426670678772824571860105746872797121828541654308394727183974815847015093055287446743674523035001675861560518132533093564656602205444822124424123603718270240933487748603530768918983344809258359766390849916082452676051775567231261925780212945330017731024867803933343508023579636433044149083942264419973156311842950473118311287949903038587519536660487295982090155266428448491143989110814720166301828295839785351379654120452495814890688799418015391529109456720227918644494321956558985055741201357965859352641793006591495097783188693179889591664191945155542730843705103595416069932412947459261583914336424787184345661346381142800793515830856587983378329028657852027657533521785547147941726214690841271469202626517390825367432241964364334866900818589057046895819096742407851053587230878386942284216029869324000514112942962711462054654499418500303474769285350320845545180243322848437509909528683677072037307362373422688012534020360380346015234560209008384279463604494672933792220987569330887323514654213423011224618138238358039771606264666871764997778863084358652497026686317521497630230885327251167139040620544234561926156728954333159956098735455474774724886644518233119091248784651387668036131941199677717241595427468313115619789795404157314736784665142306792231708368687212868545217062461647606059283138584283057244901964045339059741540115956143305259192832595165979378611933802399045442796146198602526414961149075281934375243650903138006831463428583023256465098134067669948136700986902142300056960490260722015226817981962311019628494065731288850507805205572124844596655987538708380957383525058414542487426703175272003486353777071990120296480526610260782384346277610094990056606517596728590395668758372371268188142608539378207219339127059911043964788616536105970411642906227586401895632106531292021114847053734515782948515573507952412794107407206024976085251251964367319120961935636421104752504925067724394349508075514038776271586435000650926368773734121216074961753587290019479622165430219864272753802386448850144014680248759126044884190667661737108010579886800200204419247402941708054335321180302523295449310476949882942433603010175074450248952825376914124031457552678502022427457707814648654048126498356369097326037154577005810827216583624191571709447976376097704543199866854896121546336743990693982468663047550397806910198083982674566474727930541402309042428492310156312320505207299396789057890386178675993289226694396358963525044253359747630192672758707853857419885739295212324721098598736280870457880870120420481476281480476096430102904991763449393384944865634716416305314694480416080175441325993675475241999022393105717124497273405156278260055769493090964595745908174031967741760618804764048696542855742511313465143330571939723489840552353315178621796457252728728445332078984052874023607303181941727027540832434572775681475177590653439562390506483724806601324727390504413279449462879718242091186957995929715236353640832484835260547134486755997229061986901931278623290844312855848188461540218118423083996564756652209755170215239265707986463299281181995278666038405019768976361057702745640560048140666210623335726720151221302656101635083072981801889861421099937637663053295001778941142111805778876828596240148621970026466212412348039998096412919971387086601515283826636254196953026403444172031527100947270220258653878238460354464445989289583797696854510888687901908753551207170487331249677911025841116404178818695565189339966844775217948176079410107075705086917191324912792826350823559704723530698574705341379924140759008932777656183027722103070761576547336056108986077279374654462962764900216855212180248590042857292154916073275288027627472265570142658457363967047681382880616098014932646163312364756357473766387837160403332563779616865572797050374072549893022341556192051431005900658230720735143095673592173657580372058115773411037658874907653215176890163345318531716907679490947813692340524403046094630806696050484175744311605237447831758743253598273385238453616260444194532443367088814225725986433856937723319935257896445906026602991039518547114924148646529051976378803860390199362559973756689470973959369586071844666014420984232817480620676745229319226134719981332028369213137340954338872662448603903256334488738042133205143897744776558988741614946792247063102271643076020856524901406393450872878401466239818556627975445500553564039504626345618493581106285270100337835755449020252225598151911895469015726764226337188056945894806464315691527451159416306781279837783002432171380483426292052451478667657549194504798781390966468552115704467652326177773547167542660906133515983520550997504570645449912678517588928337837407892545216291955787956068859076550211109283820104025996887967888977313774420547873601169421459873792599696846444269061488423518327616159434518773892230118125145908888941317747251031900758837097375651112697911814404163271691568673132122394472279537055758972840926378803660312157606483525283774289652946288234688984057090889254064010331499477887265180509923386514883542017291531393630538507073505804088299170421786816359517525921013517459006892817394746940858261803174610367227014535514732489035516107329773200948501353987569517589520229088053723567183101386827550678010122542674758469965647250878138620908520539571519605566307781419058330613985767297475797208292619321295869704301469103256673802671362928689830459214283228796172589871601668695370942750528331589525908500971150704357031028712022509939892651182195293585563466298668553020814100855002203409037329899542001707747066648811275801161852251678454512176096036871651894599875793790017256895093014371768541768645107452937811617337201872779422647072588978876907427626684267244320230634596548666630954031161239382275620239080629014573253875902665070831450885064183290959540050882735429732163898247318591345655950570290044945595417097650456937101334373608851476243204539420116403109783346835586356962966682330449325285599251429493538569067472094133333368677254732226573390324715132417888084368951661131402084581525136586338038186070376875226586511723703584228345078500116945092058345347663678465749858220401154322558030787860753438542984632142252921416413106473665604377067446085924148810002651303181183478765424503234856862922184338350189842395872777034510729151715338230616203922640484209540436952431745747076871855485725427256370661507348849214635196531139158449274354953258273325755473280231548542130193177061694718157432702867792693634537373896930809136032938649866616768604913886710009622619737480443661761520002592028153187651090850193293028315963339559849759968238834022620245204320462041819620420382269577223940227281013128419169100350550586264029310402805784097356693983132525346960780121958362244319356425860796038132048446446388505614969212043711249277754774321757809072978589812954118077019857855423647327890655635689029111924507777209935013371395749149043880439016598060221106022226242710897389977879203962880803162106520979593471074467001505642845907644832732605259728953423883022052473149009359297393577006485356313360040566516152866625544561292956544311129386046079204623188345687154494196041808833378657123772312658515422217602069996946999133306133434922152125444948602768951903900982229520569299166615050395953444542164274796797100499035144646125736775576183318610284231695556061596615102836366687480856879308127394043923231788957138948656797591823706424463649050239260705153770713762468928309848076133449408519918533165772045860442460340222539382771764293917410816865866702427238060222565692717148782716313586061991865048302220079359800124379565337559617403085676404053316226473414869510237288801583858830741348621259483696412076687266518860214504032564196991060478314659183191088848711467331403092231266101459147154103410638165523295993292989924798204561763559468885222687090987155120136543103177343527498706757468327437388284844204723777062960676844114118531228987574251046638565843787710148292941860918547175321227221131843419699415376266158093907574119903144116672608843681396149629849737538201812622728527861625336195113716331019964352530526456417356122583915924322686534895149978997897616688982955862764339703058542252290637163595445058820044699874018703355568773292762979701013254713620568354814956754870829111225203388071939099826603803354702834910988074260873011211575463368881964920924894404459985538145207901185574042688131059745969513666219613886243276772876830451223411263017295527026366356927322825344471890249592464322938625110685074374361528671104580515690161961651080815415008307766995937880713240093258088207670238369780118339784579613283852918929173082084998806713795957670165774799415366989877393695720102380563943948710418006912608371679916236465892235336520192960861985524497347039258890654938830643036572525664912370880280305546989377346339749179054597356898092650475003133261845353629534563296579080968833422878649870564118174679719819881586487940596780263942424533488220933719264477231300117414876139257605008961930320588303799526960615107646532021416517501553764126669186806357924037392379027284090450266896775538577179439734850468135835572077338708662899320701078447083023351093071677548491108877220365432273747331090690814819173993256809616950692934632698970231287334842042287078932302379480897437425890704671674750999466489965046878830059302383982813010416864405837845068284717476701451776764449290575012203158223463989615562374922449780879255623496409809609775601274063899851974730668018082210095948795254898099524758501810588412745401014238766566957309803106064033726534800068544177965247188170059988501022305490930440540966427725349891152057638116775710914167453812811209548699583786911074361458296009424074663556917778705104129321117567726421894873146530706897094516917877520266136055601053416406466280243496686394379065930961656423409935514643637420236586953732904552192867267463916284481850060448226262395981689157666296794367992339517765072344083109234754351341383203419499918625154601434435431959699517803314081359580150256227280897943925655399475385218792725764524714937774392047613505057596568666739067001469324289071547709293776365667037151327337259519170504209728395042041455103475878325102086896414732699061198667650600851360984448322369304270223909324946695606304283427857946404841847943162972959417107760988938748760086207335040009376927864193423743806848766678670008437522221982264612126428871341209783829593456456889521872641850249969721076528424550085745372546131275673294789558596531907543089594240357683170657447842506871200561590174527783850711443047867376982728089647586979379878884837236335296398750648942113838390233694888666192012692731059012259997230086485460609540123319264388473591224086873129320058777779937737921747268418162311123927001748886315026790332362380685247573412636866541701269069857501237442275563729511236855507480405476668089689225861162559722011244917878682896646135472794871111232208660298585213805244952409344941810487984520340046599219880746078820473760429912963722263055081781429207786371818642627147018594599475687621272175850212019834204032825128973365996161310222067819307554514419225507571314325776885293499962632848461439788942451271121974400713221482850064390321176091133321089301010148375579420950903013074775783094575377298319165735359526194845459210587229568853111230389893832401467614645897556332345797322362202651579722680242256261657459422017169599188898358636011417591906221781692119473691364549270297986238576607619901065022657321670803561087420112011363330281978193947249081163359795631454014501532397297534622724288631903002129344900795483967795572835793270349048082936697773582172057183485514260080865863026699055383971339711342565659869825661697126075650393862750397325736121437248309664842358061804770416541591325844402636571039052011493491178461318594343891818502242797562567270734571287230168407034396407373844791385043510561562637465661353478993451342394682121502577613430206976864705070724996106143058410251526311692942634325130520256456192168495324887192031880066618414233110405643676367513644398758213062263486666141323864319868074931711915585859719506265004269339228978683353701884367080147730352134596411863080946188062122839608284668335501407411880028418043801483849326892472966358269867022904516161509251269220335870022031894289529700520231750437688219669534072135468849517078298156874952091506911176985311073894574867008222730006141780410508471450248729446571279812173454503478637537175638319227064582381646395235034583999256450341040975602545890428033116702911234436796475737710709484938516426460660035570940035461620158490980703734746197309311011888038245949595225048144474286062316930946759673859949192161204928042732128555925898131299657493897522110339659481270202907897117506597044861063157468064598868332056436058014064202693476325131101605155584376188380373165955367890803792042488204356214156436123233463366184350668860274366113748010793932874131232339475329902318792156947666507236149756306736541536662449793258583601709438287076503266210792779174637119947593664225407340755017252846036139331388904973454544004340338317738227380772006027905080120771138368525419130970547531748070223649634568951813537249341067701576713642643542826006285856887579053458590560112541964315677296111188862211360047802780498945983518676855888605766303354414347446177685081656093168036459887241674251452074254681605060339205898153479493342456116079398087778297922289178007422645199931462333982456133019538766636273489056898032112692272059021207847741016962040599341127247684072741727308022734359852934657961908679448313118602826741118570152171035638884035983954865911963264446524535161543911170378980071826502671622983474403123270081428846066725994638761329194846348385200346976331430354448678965851655901072262989838052623951449643722212109169990438383727020888726703458839595167640540597042930748758125663773073397232288414664188564498101083441076281331048228247954177509278467748924406777735524541723315296925701678873918302184934036936797893750958383475634520494871092597669078138344966745994271706935763041581299717212489129099408785686188139348548891027629739890524025868927815226986697139406740810664566827964084757677624888253888432704972342319967986876946583280932391723014762754145903947494786420795938700221106521644357694111983645789094072840863634689830730865273517557173492933516780132921398327766976533332258464428346064202060079837086265901364969965814779380356648149569191338222305571951642367962210889905358063140374761505727275507669415273285321433091250971223327642848834202705631629087621202919911468080548574026003158258448066810283038497925160735068427983782363582145387164570969082605382131935051923432510858900661035946421010406290473403440798447838570107125830868247393530647616332745484056827917896944768683775660593817526429636232700673902764697777654497905778610419631099431871567738630544334594366636875431928374658204682551182127089503814689768760233672654049182946132208670889440966796847680713768040673413421883522066826293496465351115623676884477015709747369478364993040636355745247854167854963242829240553105817611168726847313174170647899571609879796435308593150500104714620429706337650720028816790399538146412999857014093562458386491187844751996375132974855194506547499096859261056078437133876710685257693683486325860519077658041195068075971036913966595441564139898845310721612403223538850812841991376316087410190089466101849693867790239940567972136277301865350233518804766646755225662439011491040664647874157859583035713766230548140786297850920951108088210855351049902639169523738389863037261006946437113022937887351394050505198307684907345068606109400212427182494979459773185926430539239768245059415256770465715733362505035065907240957030968927640482398999533932870453736071935946952391114221153755473883848205510073945162366340972057308729387958369686975284789461223338677012640868575226596103855230825370221454787531506113075234958608777875980538714024666808003884982080898915321443588247704931833022476028981948728370992424012243478239497906746154344835085335206612974102924101086341718353404109411835437389421972426998264690969367018399116062341581780081198332913993575025861113269956278061471301439752514544534400855443274369537049501990878592562904268147248419264898867032894639152540063787055523855049899701354326692002757196612668096199830885016634879347316929443165978201678297779357631862541611255466698849556245674721448982164179487636171756593331512831831627778108254379735966235565454385693540274709102492958478401729939878713157337855407718867406875244806760276875308080818125764550641224091416019437274165588227771962431950001711697756550342256804215398000552196223447183997941735279109800464398523554120262751859775361019111051202914707880790738172572362546693711409629696040996673177474301471429473218964979399226553571521269174494578480853247912443936364419045964289062187635707974841968923762870560733579993177725556882389355687385812072478442842295955376383170569528319643479406886886640911121882713373592467670767074724910852184681656321513230366870671709069547363064702494958289179570078267735988439630534059291315599877736607320568053398621397468188257248257182613906394544475613660487419124474564183583928315108385230229575248931856003312677275720067889182612357559420329016673411907677893766043626991593809219633664548036930471558039215479482843111194937268967701523860418911748090426972754526190528804069102516250915648119327221582524967341718460187644967716198144143629311956328320608954904184160660474964252745237412586398847200510012048962999151920090172510984864277841664427175019722552477750603963392393435054468775936064612128399572701046336860598347697519839925450611573435747574189878065506535208249010305584007799114353570234099707134914648382775656545567117800815679424771526869970092539832778182528513024117395719873252063869340404730776245272412285704739067727534287670553346538415401613597361070242720481532541759967945588991558633628814915227711818196523444105626949112231459817345749406726883614698720761514004165076127995730986358205240545446683606078854475836316811515964735136192302911325483856526416697830403496953214221365934912794583233242316977096698239574834896584861564616945855556895552843100843705488537282199203655690834995789366367479265703293478307760436090364387121781723297082558899138066873921902613977881278100473807940296245253651877403696403435812938953569538102092339039997170134354690215700596444238660355022925895339606126887926490825033078857950223727589301133403005294017010336829084499227382477847502462364775636592140129388624953905421311242223262688940783407889748584680435401189488158616186395663105910382055748516611674138508417508609493733823560477356457374930033560023188240771978637939969644136700397371278750948704715936337889425521350572889257666674010246642164865526770969650106507709728407486179565809342893561966554886705533325667980374998018992562373706337446497160413663730034665285250300327067496282287024030736091911279247529576221923053777689909831128574962812802500608724719484311538653161173000522120883459675937761934101801824248205347283654638375867257743044014410782203292645501098732105864708361785879467217242090474564227952811217983517844319255322089238816307892954837241491332926161703120917303627282614790602569863590503835507826489921607033108196626471579884289374633575447732027884558545901478637115667775707460310903235974356801016821882724366588977961103031581150745452306632963221179662980874419511335124382868715293308182023164498166237783994947216747557520388801733648808546324679030687435580239121040883748834108848167838079139780834627262523975733809293546974226467478309792277089755015084032517142098057716364258313928558114299743082442302375092498919125726630820885801891267272901189851550054180382657740788906164066196030159926530512991083519750251283595335678837501359187214428758016054306264040113520698157293850906693513864254992205518352167805188756926051359771396805737908551580899294262309307236923887898731271925686965147733395343175566480606373365695952338394704172753219447784723470485791195276666545618834552036762175095968334251922311909675145812776729240143046644839846187106242454567924507858701237364374558048002466640409324653837423783242727208767366325935352963938737306785547431757502027715920877988763325103432570135770942558473656568941911539273990639873599954957237434148342396355770081252230720153400060381973497173520780381930459365154629780595001234159019299402358867597443394346593886118429252555268448621974237590883207879702521357838325989622394117139221343361201277646146140425239718054659705932387952089119945309886449948688104606933899044570482515001972842585133120635288310560967998992814740408318873117889318298067794559480007637317168287325268604027171149017418139573281644124398125453408962723086022254691124019282372413818445799402838543053928167904876525161696867991291253435729790598305195554896282515043664011617078534301950715506390238089546457137685124253359275834152362369775390247066713304357666253016751552314331956760061573607918196420558634988272395204678794892201188871812456366832145704712421033226965230986655300572932761217607712973995838105851839178639589716624556291161357714094104044122647933826379004173179407390864834484860881185592469642218297438307935515454041560083568217432553041121493051477275101371343321084471370423761808460650127615395452957108893314280350749584952808418641907338788974782679902615356383173406539018093684617287998614974008889138081934061079268736659791126929656717109727860730403521387420188930171177899025373208018581614850602636147049767673718208459826429578439844141735145055555215501842776044184377495464886470919275021389177817095360745882262074439109012810012990843381889663395761164287396376481128203281541840972190964223155800276108977232476224838155575836921108280016910126844315168861076345076971032521349069395860185158261384321212607968658742226325311104058694125044148992095980727195976990334906574338180919724867634908793415917919794546772934865955868847673870071184851862433689660533575519158423751939216803971044354815814134738851208690790249510292580126471404104578146881751715545871092643143456143928912057477596986258748025166351759522001055075706379672536880374628465405767236148635636580648786186225347261142854090267124107944269690671232412160725558058940032957572351244707686235014607436870676105743858161723280749581598807359270154673208348100711178776313657906425740513207148265843729281086095297159971208444337502891457901063926708186831182041136269900517622643896029710440375207787178682450869770260554405604664454358422121525873791601152912376889154487645775907109706661360369216778923589232247308500183569093232756729107614614121819397207626852267923390680118561117557663093794302167154569214780701629591335736180137876151476495210935791257723838438985046771174461747746596826088358126155418856913050803620540531104279623530526750562453524617107875715285309900107857783222461485976083048528233428900659531983929725623212878305936660647427228516115687874996325941535755765979611714129620116999486667498523456033051391957019114057645725655685665561323251894929493662608949786895034170938794848706876399666218087388778413909156234560177044510456734326591941121413696684358882422175901016851747394120492454936598625033800127404794233825389531084884916148014381616927106462556608069107949427075382752436005302277250505389236004332854125610602401586077196189916596630696309806128628913897662644044477033401429545330373442567338002922898105778831636491201823963030191004718481276580111513716020659616579589106812482887428171509341784268495257768600743894354613850443930848895561369779561203023640050582231646182894172357073453216747188653960257942577415144001628491482537760674251448280213667835313124629684836253151585142818721407564706697695934422071864091332168027502609193811708445768769961700748548505180864230189886978356525777394912853290858238414880464938913495577045445553341594243706209761675430531293286850686359332294780028987267571173662482076808543033428816290521223797480559229729119256849776887100339561868473272131040157044212773740392992597569605735862075699020210087191179295264045332534869525908734063640588733432410825555225192817153812525408411970276830767284658451185884065882328943526594579578183824236144114339446831838626564695471335612913306300146973537540306923557718272362218286321897363567101600983539829836951835586394109747615085137712631270910189740043779086062560670442328332893876220430388346823184571536210802615559087653754891642575078920776891999994410996363328770387964562815377815462376844440001028876843189165534214714495029570380417443036812363372566702286481551302992158498341132524804022861103324811433727615793156889542160248735825546586773211917539973126138032304347904948814664473147391712874115213542392182136242588320713709575410186689965462350836629066435366551015194488661553327349525635830945404025661212562672399346404613826253383534114263251498247026099249616644003182537936852599993267378815193500643339027354364127525256909766470555191445113098490261496110886001285668792608227085527890370499929813218529814296002038934348783499342167086467839248758493352800018721320846059826091037360520245639337601159150022507854902540244805528861039397056542873172742680020673592089965959687029406741493967942532472078327009238221110004173104720962573927783188184714717918026446406776166736266226383983747374405051399679872906341413908484460139666378941701106555459133227886456292219559253095656255053971482024054223298447642239126972476500254240718296450056136345305321961427604501772809022387552038057318305089293762934764201982547737098694346072294170615214054527768395915285163053987919446756621774638900378878843395862750982827789152750996302950327674492353253713139847542510448301576517897832595408365916730413746931575621460619511468681816520019267529519085962341612772736470837457717377797737553919496608779194574712805574575131009719980286050513955547276966369260213578794853747126656910031754096655929539997064755438235287103773606151567657690033653375960719988188131309756089129251837684363197706484621759377401176399322265076706308226176352051915212435042406178853027558617939874669845820660211168759311451299057141759744586766438712996458766165133754015061002244234759758964999990265822774936445979970603782367785119359124871202836790086107601600582822864052796674179801724504858997802400180373246983140346527303290258024209059868096652462134012213860374024928175570590632621426947814192070359917186287061094438343918351303187496155788988561915215049507948457870142399700421844958715430176715177334309423915383608548407741588742870919424357687149817446529050897240158685431848834859522349632398514632618968997797736871193882921180218921554876021871360919106028451718067717759372138499700446439997960612642541753133324907177736377955932414785473577551806157333164329758333980008691061752643485491667026382664382480674534522488728107604671525444914667711849944560235392392780754920539077004483791215893871671662396804794808122997404976749141226878968055675867587683795596597977535843045353940723357963158797004081648553354376399397867861927662947784595162716021467821031161373015454740761595066323935339786040298124890879535490436354058431002748750705195681779076675299460501706446324589272877297690960901202353374814040626831625759705463707692214711978450554933579559808632068101152955021298676519281964274297680982224173521802602347724338194141191245067086238413455042745791245352430819583563656885132187182293037604927750810451272959587960524613933263687434586952381342604556251136449069470929558673427980888137481500069722226621271020450103283589326314373836189120782638813527187303929056791255715780697493178890717500078778909137014941107886441743586408987892298563486372510514434794812214294184358092640133408475443781660721377949685683193759342122964685729290594733047935013570783279710049941907810865072468993727525536177486817999661248962174416175459400417180223653752661414959654749208236381274315151223092155857779962574798043448381729488196072740937810374157091095085112556811944633561881216118788395126478904836281806562988340294774111713710525012353723763650936981770073315470356806550745724777272587642870137933950216764140239793268524566642738424547373212364075853955789294292806841206501519240817270444469256583149762821512883981906694312934299909757926120842274397611892594731031341180005242333554733461318948862250088813812317352360293886736625190467250804409183286849499269187747181573703364656233572403764976288020065756610758992698496319869033455162795764684697811775747021202147474106520616704785839164445378021269746299664004033222839233920318798576509173090895760957067632257656445709012418356735792499976163920113734676160195589179907306785601960027330139031911872156560708555455774071429631468464394678326097617238885712893415528393449753866640861878478209658125102930989089193359376286097943454437693704289790828301642087510403312284594465780187297492198090747373560019218501849144435338665762991068638402174146487989917594917465032103514618996264047303473357241360018633003387834764786438723275173037671339930396272991806259264648014437843056820348728735659069312886513516680264150946115636156632084951159084892619585583249072080135949153998320872237374036741262505578840006164148015542686697714694649632523090734244730535043494961607845518643745786991212370594462230855250909551825152989974308429759512641548251757691755123386908711331603608530540732216159823606520815044562822926640669747611548154271366835805894197226024123242566633617487192679751324147143923010398780645603360822421206622783208020493119353026211065707668971602753981275683839896357112975812523130230490448491577667902728714858002998788607794004498695813213036126320264448249864232300397680559681424994511293833375640290730561199058900041695498168153825057554254158211015041866556604552287305970188794680772310988815205168901378288523872674255031608314776591432756448365681105969788191981379873034726511359408308248120635472179064668390694993565334596003050462768868130035537397562465209040286577364904645946394433775034509279039604940647985494899607905871464912309263199838287792719509744140024110601627900026603226763802193041273645070607713077788242384208576801781272221929196939158195916355944631756171057777981386569966307289563523461216586878018735732366969644580023271058082014218617104299037934496872166364691211954585712959657109081216830837080925016010869157803821552694499793329563751701417138796814221185445534343147784813786009118540521480389099065132476958514519590052600589063825747142076953098140443702060186683698715964465835734473807161264865640130814370849777629687313493110700606836094781425248169302307153940185940680736424411770941392636996455772842776262622272331067320468684583040368646884728832164634529382137760210890145677456723386645906800791979128901056296170038535090025910613287853723420524560175016179849351471665132294066039017325915841504483271967263188304500205179750029719270758575612632354757151405274267277438308963534847484992026104011896230547689297026769445643224324462488431921867752615010055406416496601788279133934496225014171441621663018596152221205373401664131671714950322724964444868936257992914041255141363345549469682774518001661730715706338254914537651051437590828980029756237625169045882167089759239471860429217070842711026519904336274083810109470428751836216859644155994034180537000335898745178033029140966072805517587330007720393362424146776274047462591162859880162356460595230930122653067107321312753276946473572220293595738222645754923741294548273939268386926363050838498717744028900903667691923064291626837636645844242427201522914463967465958446434020540023856606016139946175630148031952484878653527801030823597315035805524254001957347885957171842222919803016315064669894743315005378098637731164423983498507025756530944426663023684767712819566283441467666242038577196485212775588183156253543778734142095217622070672516274914675388153626795720878664736688062249957946122528937934202582379104172841168444008325641670612364900096463021265222522040166489685985816945964653664084030649284491318331721453402200288754892682742109141587098509826854424963064731337244646724559758212640388072246815398956672316127373266703794787755057912237697858074142375014925865114540639384417068445214305818186856424897816195588321002359044571626916883590411911330822786737605815051956134709439388429890777648705081661116203026280107275904347455001016938723595764230830471905395834631920009100567618470274016417259053458047984058408088635849090622901378022666940424483132947615582379953122162535511694171046855509888828027593233417772720495977825246609130514910756269535837472885692765288409950883651293290801327135924786317800658774574357378226264578366227157210425864847274700661147619359108633256335223863356785192747122538259454365910159905459785504186883722853563724481146832690873137222183936730714084737519779678617668200887012296830635043881095490944947206651917292826101936173431189201143235170426027130227722933115831272566630990070763655652618928031245339735335852439055232173832425888873249157838894043259939751303517984768010082183725562728936469947390886742289213436537701101863553522874513258640580451705884862408662030207505298248904662790607157337922803126810228169170841500873352717140030252670494202095220877122542989248461943240826787297808909522431632199455449264385164848128889083470519374737670437689348807203379937541277741191617855164848768450116754971188284422342296588515000537532830453221551949597578115304569571007273278015420903587744791841256887107826464811979745528908450664087927020833330194667855909670277295880341454661988972220711267523225395197726422341201104983650572649210713207860646434132339588981523064666387327257420951136412449810666974396752364834882573071845994801628983393651804667516482432879579493425580726417395349142208238220252310833871680330487394983238303802863406076705499942745302209388196459563552127777861594786071518458524000799944118945972479278789152729763288131055394625647304966050939557787936527405943218546060465716570396662711077380162474010745296258212506930056904800710409989059973048497571859046124898184193091162993694443781976440678803652554879041553695808863731688681209200102937170798656168983967103555493252066514449244928275712562137392733022114923182713624941330252200423156063577017100543753640021351025221181577585455883671659373155005921036839032209290522236382948818392893870512787934004879880505580690145102167931714437440057083068022851525328209712438584993754870718352862305167872720754158089704027670304010099612117262633458762120060650276400632952499665520990203824087356994676723003513870684998358953243579375827508871094953954835853598787920591600072375621326920665464063649785550197273055363502899138566496345377316288188202151587223528443922527240144525768273588475094412840486943155382850006863834110196586109185980671945689400614244071450236428449097693289170010313557798507910380785485238999626844209602268924802384818851427307303261468151583890244604978524383404453803315792989713745540876068755293777112400409638729123849376784673966707364376508064421336980267675100529516819848047370400185016786347512398074375075462107205513884915808085512395523358798451649033041409738268135624528264789113797338386233142581627309448537178915262632343917276593339214643037245121258646390996462034523440169757013326599242809514423265813867331259588618233036725310424276187897793264534340460839257632757723744907914501699781158209633759517602564598992973180725943488205958930188303008865947201706845258238530626669797592516118704913997865270416050887805679615904695492352550024795749703639697102365418605481013326770882913432789998187500937618338568662266720357112029607370336268527228206662130579783866383808512153618133218303947686094753475746674446275300380960201435102701187044392526172791013091600272125647766928210875088345769380074382994288478781107297064163942787921615944132940752332508271087452665321651018499429999099128598749269138567715976876336430605828947610942186707926167080767777488414194548023710582143329608941878451285979545749797540852914432613548864593400247338761605099005147419687274065930114488805006071633898388799136501188042845171678348155966445351829825440642422857084191277220786317568033445451386865165660741432364435958600819123367920107742169963663016411492542957489702565627188385547448511451424238892235173264853840149272918164633918650809334344934653646182626249138991498768224515671516684479500449383733784865344646371035863725762381318040182285172810155542370656461696921157673450518887246611392266704241462729270987853758166883318698614538491993338964280250117223189046696321881313642772345043892258206970978941342915254208739374254058112296216237773695300627560761067291498250933856504921267263102693662346585002707214892856815779601396061495702757999236359177356212519617339772959604622574476899937675917930317453064480799469734327289636921957809910329370840905397550820643901117815657469044132439626248119066962115577881748378797313212239647381132227430327088820919856687314309364207017836016908102583440611886472599809466045132745565640780452862544564470600082903419115984437883611458095040245973546688409933250708520317345002525252249967026652830504675562659951147578325802226944289575690747140004740856771162921807342862278858883146263503696671591100110930897030197257620154011588641670976136777108655430525343617484155995170049155208524602355446942744395363794376598109675740004146136021783147640438082109075241474715610464285630519212271941902772018456754916945907384998072985142505561677319357932077259846001067021745281910920132813852054488499737103056058096754185548219506540219493950102430395593150679823468504816995985550837427688789551551641499138892370450795841987972091549676931702061774709845747944487907316068604873396382306295737575564707955493124206423321380909494269223146414137221286346068972754453370164294146314849126277583965920346726144257047929862013140472124636795569026176099864809456833894320386993265451339617248935187969229112912538974921816954636829369409183478205888292228391951383598718751787257422979391147676158665359148961891320727475452352451546463731936296931397582371732705029056801000264486820588578153147888415950461105407588472358373596143535265574378175002858610725980799149211986590321190273289276384548410070534470093384386828366701532441057383131900001924436485333420509560187523006802314197586566802171907057682038508043033878207510365377652401413987256440724162920482501914120140412433023767988395766735681106261250933379624490019516562113511573769063116357486061419415099870194023839103140033707300596505312143725372737083756754850238085359488240063681170496213905013173336479918975956695789223715895602728194977763007207274861640912207880112978320790501834310923371359127934351621638417441430599316043982129873679875547220650709132786749713435572546120596339952552613746997109110730055845672397278758442246182521148045131873941544608202569736193143501460320556992208967153185909755394747528180064747388812648718685586752689255631908827438795249359982542080952979006968723953186856808271823840474285777483655998358714295133687335318646870140333013412079257586207542770690868546323631606766006810080788995022671398278483268501558720591625671618130831558322814802873317096870123421278224825278010919445955610255367910492024182208551089411739456151712747708201583033957878223461373260693380961179011976440977863587832295809145839456929628753757282610657254902311318156672870045541619349320673098344359197230885395967606720426467828684618279918769996391907668166193012254086910915400443998526200452064575646384767612467616106479924161416562694004988508746832001194144662516583670843747654275535954438165673300938003929549597169651541140899107532959374714985820609493430470766312709108783975710209811258344571807447658636317168429180781155921340892086797112934687265876374795230127453577499756201880837164615949921327077138375988251317586749950842341905612207959393401759024590576836034227210248925004734414688228269125796717211898206445594221950494567179794047373447127651501622799194730767051199347225306626228164768538001751761676237658307371226695078299190687982636545111681777175369746576288204454689053382023004844144424986650574385276190725188012160996582285054283019366866942716840451101014884001004577215547258825984314713249470542732919600310267472601597191810538120549109391605370735910095923384066284343985654945914448210919365301029532216255546805047913658290572780527623199144303644086041732046034370211088801512066488991026909440767807783730781771092071895028841874375881014356140789284464305511515486807796240837663154037111274381070012599969686874937857328786546275266197090678657209870194190651242842059194210525277495337391390530877836844792236145808891695727020303532759719325740183992211569011759373270498001637502964168295144428861527834780671466252640368405526450010410964564452030607335836611506564176769155401438597142119657622652014339307789392948285439172821141379552459270799733077772725383809883655446340895857202564666374169173176707329628225833573057174222335338720142832969639106311829034698760413161837360643898538053094230667098011674932958738973786049369660806636054201330160105128656749799137450864549923366640919225307491940538945013253487396849310439941366720332600289592730304980176816289294606175597049057261981206341411872244083260773252662619234721811951964112995461158986874121775714740857462404042888880590608173510194816955968914553004112670827596426798669994837315233569247550160324389854916233328876330253177619827467847801303670327337206310183621268392192785923186917751502860929574025962732113126310200090136648870056232349750628039547732540352083602711542606847673604700887236762248471533731940261276037156594518630824908090100000258341438147343392716463968013839905956054058710123245284577143713887239300724431891141593146887452891718552300680447994212596451845668060906125151218754231162299691243936203224955386322900914598598333839963827407680247822298099279813759108726949000131844777143275820818632695134590900553724819837124990009584049947303185039637815130006342085395150734466259933019958221766423876442460608204609662067059874406504825309667428297328076073860652229091140340054346649846299992803960220178954096959897114058686779474012564726556787623408088676468704392916661066505010878447560174454092920076918892847093734693350296535156108131737957921752067337262646885205081003634812310293999358059603472615618008337133187997994902051121820330802620807691464373940715923756852744690629741538616638742443966633135655021144165574918803769681812206050918763956237125027770805727300803865788409105882596723117636906211003289892621398544680267818618497015276935181972889346078283732406601861812475078217119386652686431892995972463317430238126092279471813688560190470752290833913795884172178280043621050707411254545343323796417573584008171338457695583753441834452393365629092954098363279749043832080226770767799758428008829738847174053057764380974022111333912001769702356409706957691977296109325056305366374614036388521991810963940029994260175969058687004778356098419286615777393100099647575235000654750750188787754909303705252512392805383556886026513967925621600508568963156760313754717040123171537072630692877597204976284544420887892181221701782643428526173268494390743408910703877114579885875800045547763110120248373781763004073969344460813780505183301850338504679416663720651321245673475839158017464069080183921112666290705640776759194950384534127630536064006866514889302641563574229747218367847671198591420976509684202591727886225246457937344042638880479213555683695716255680398857240677921877283743562628016637067191762860588959748165205852920284675724485546969903162466952934761580913568916822087384977623955927212451268358171151924365098700555980722744708689899485909342009530731026429803969769925924062372750364070137724643250273285100756075319740047053095538393487759706707552352947374065243845819328898981391827490396130239670288119283588822175530440758084523716374079037888602056121436696769097976132389327006871029892110963024511321822926765976489596319276149802628251093294900374976450169571124057039965482708659171876366381641530821964387307371759098288559060076576262127180894725315418273868461070283704765982055201974439423208471152601111718262342290049548232698315432034618245912503750602792257720147130765808853453136851621681229937660671118938036292038989068368548726033284357413903541492048119006333774817852269581825797643498607139349268961293756084360342090578482206436433497331664331866538883386371050894517500195977802593133247410814968663605509885727491985841038942866455273306617229641567857089657757797318329675934298434482344079708776686472146763275071785679316201666801723542335229998777012343041504885918617861945854415021436198258069740024756468575560543155888531260561947307939414764093656484222793349022977370075045678527288658023118019402483866226272167042524506608541184472967085969337403987054525259217426037548523937662887558553131193922991217641250751141577873899669352668968357284086334055982634831540558843844975410951468334818904714856004483668371147421631116753260599473121807081405097624565231039708203501476946326271325635000819195320723992613545310305446996866765992234244859694324401692160144801684233207679469516546659412930204175435305581268521565122370031894590805410281352378606035484651765037117672067816281925501005415959572950921719645837729321876065030308453972343519563650194920666069501225113553774526917188123731277110527886394641074252996264836610049725687162459772224712264206069189313641027719997670633087528199215674949568069795440916959325689987617764757273138567876052971227807076171246905032755942255633664915717605895075330622306763432676154196927030447827561904092514889455953231417227234566039561599487837342016619043432571254543035731569845691547378582250097899144423214711258177566075156647694711470644978875138172550832371162339039499168966286123961089480752127220683080364970837578690201871288046296063229734648242763687375363792297602169548687555424186896328045406863373876465089322629008202998720859525222012910887240739703886305206820446579893794783094866147221197108041056881197972395241119623237112678245451716209897436110506909827395877450459956696681252630399771390261537685724193451146551844190365828492966999939422680412477529570142458168880957761981788000366671841206360074119431444197309073958302363667000360319950629593784377644840600534135107165739418136364809671948882494418303301898550624251019194160848195801305161743689741754407328749537536074941948739173943328765789513504833746365944544006244636686915355534972884303606116150612431741059478963951851119940487319871111600757034205008325162784151942223857065159399272788833630025893058668408653378596869594358009553441358316818014765848446459934008930102352322770610524873928890220517612966344266795429817280344835550340391330425028327836461663306941755300439996820137122489923659294830242313847344013496617793354153661306387916265188362944939714320707216983358730175882069793353354104711281911447352928232353049473954661902016466448179092304130714399017809235691850846438093931448771665693815370711851218439212697356471490856062496924552316576737316720836580315910600430726987445093682500873997571668552298095035633507887816859926015931671944344460334066617060806027912346987545510825467876477681200931483988363705044441274644559518878309577573636592027766659020333312662484222767567347843761181168153640876780355651795847813895379795619575990831739351122419427452617176892768015239852467573058199748597042390789060633176930494295066481553911654377882897250549695771280833637838434550616405408274828740826032569445369811792977550350910167171032723625467503510894684503850681580491067924277757525387860712006543512139628108038749679113905960554044054462172408058665442885858571839906050642985508905356059155108030102579757005119181549882253050070006915409264062273557535207259060928362874409040347813647355691992885428103501482581093416592492589504502475710201222886375210404111173907694377044873872967275513722718924274182328033870103701897274417656639839176555433546719972806502109177890153657333179921941726785141389301392268125814005547756766721430411436328547248395192655001264981092034095213226687500277714485736011589971502550000622236225092100076202302034157538320437016361699823910638621698929336463397876686760772939203198253610908278515913823170032988399459683960011750059079575182646795067257123764078947941879393468906133716891481805058492844837964429904019458602416039370122822428556429657246217311505963127187989377545375975487195461157298054683624959848855087083577573558985339269001655983676280756135237002467213396467688664094930322970888881242881693280103184080427268816045901871334505010759745411156297192140248657439801699478960872250227799373932501016191978487892789906733594617073439143089096865662632564994270205339555345785822112962597542963728780704318479158697022822877873520547688466116064282634679522381012911490094315540611612188539587305574366123355757975858637397786551092938734168486370897024227603200121076754960789066142802403944560983294215833351806643116772041374820272926363965311304833996448720224998723443783423051382854878586746392936133760705745513887102612751667460552784931276186808170315376858370540823053754287369003760400008291911256507339988746438160633850736549508872330262155890525480006317998619129621599536707235743226838639046602316097734639703932282019538774075463408249418665473164225976635852515438461912386382471972710627465550469846063690157690463732652685818005255817946109380948299552282234356295721846407303563259966577062300434274377673240480991942694757509931176518062666018181976040695438625114825597765156806333174982134767832226407128227330748620166105364163894288991909100150593205224359574761866834104545035696504947591223093623078600127058558633712056253476771203829834346664036462686199416946610991342430957588684740653129745634660544356818062133384869331655902732132790887472836553354532341008560853152216310027936199902954015712508968044414559745226392029821401592312766156077090301521857683082470787043315211596658721805988212920421515384384363809766465589511709750208249731592926920340885030790768943079846589937421861519914204434732314228474735231621744983385982196555995511709040370189747380924806436487515439080891559406631920132714737281461981808482472285411821777756373617465357137625662509742182711904694161797656665435398155521812599691616089024493415849135885678272846252425049980790895646372852082660225978216336294176588966999299118374419714811969680725401170295503316841033085936316572806740696898643241443214535438782342272922908834598091517295841534083116814437251315722876801527296953130611077676214113904975516950658740968380919505173884343494741668360316806341593488361907585632329554575493867859914079893897738310375078576176565393139987347399288989844340769334574781491380775450979723661079265849833459299842360387990979922603845566432852501757547358838736978452907326697238191833101238067379709147550625527297026324677194422927569636075433454294129178805885512816498772441339278592476024890485165594719797020831473374992432322774284838763429201590560426700723975160494300759153134728975203513300771586554132428545253646407619794446265142854021410939289835007722326145771860753915058738357498062102369950016189699770917385122026229423380255120937237613130840954286752748447816923015266725257781117760831252133275063634658980784179676432808790618385128531831101763914213353157162196952760507541606741667510162662291972978762213025423202609098042720300745107475112937508719560360164220565946018457911134610430109743789190565269859305234036169663502743486872982021230155163743457438598951673167066720890123990428819767583635666437889612798143142468005603950340446412057160094034480995352106044819624212997461736411446529134925592108038642481025288130464003510022952001047792804225788388211726064384791966188170491069568124921693548394226263330222184971561230511585095553490834262541699852641694344501115281816543239701078389413054793465126300249854026311828854690133116223543919798642026208720624995742912896252724824774641102368261503041302098145240223003635242635157959616315263353752553593125949300183847530118636414934380329702243168934846976259492009334229662933804676937108685978996579378309529767840541988506545204810123094929384087111277622656371424237725403932489863037242797276050980100441408272997448711947372987631224180138572195407954442638085752777735224712236443680613045224752593635508420145825345459560173075059602601941690637699222344895794032833194774279360122621231854245971712287634818567806400170813694601863927365876723354359403647502543308086469667999530020112213280139085946952059193315856913697895549180667426146355870860316091205241669376143608676185841541258075440798205555592546523174296232333405842144559276662214906290522759257581508139618154441656169302673256385029726292980007568739222014503863959642318834749638852638098191972393468507727774713734541682778229873890598764878697224371901213339948883772994388575760078423045959937778680820442452778752321336797655195266936261888642912850931620579011238384433715221877922727680927680645968919524334504964605460842822066900612076359292554505562427893348480641292206071142973302228712301581314131970226658731503135350930644634505752136914117395950568467101890681685278841688371976952032473237859806420006331847609839481747877632282279919024918056880320838164294612247955208390645579431097497217705913537265239607041043943487239999426379351713443955395115092301119002292582060782541705415192873158873805432092767066299701122840256039821956626644284776101666630828934816922234569380238767643399958861115701482171412830060148223657204169363801513933537009533589419471415830801750721199566196935756104800885108248986553430052985542627755082019862400783984792651525506120575043064658220099940057810234037880024183893929102473534449780881983984793068197637329115289024952205979756783471347542263938360704122679878045308503881281219710464530549692789702987217845890300668249364300943197237386393946477863368585612958145841072279845125277036385089637650608173643386615617826845469968803956078646991639102591295672857128766955603254687456949394769342609160175388641630978721253402936342811903556046870194965053251730324773437093248169918069941251430050117407514553169533467585956292663873878211924205494355796355787024686747936990166309816126035066759765493419870484127428246828747498756224399588474399832945335904919438894070763404153247869845332170197260766081757471264267142326482949595055688455464790538592816458241411208521508667361236327263707430155483201755380774026062131399005369305409481335982633084945871879929003350238646908245112983183970843263708538403509161800647298112453308163617623512736617035205531055099487505029134516927115967892574713045388720120403220381199749417315736095402240686385009152809211593374580382519234355549635327677054328940961757223414795995680476864702241609719938355787974047808343161304307775705167062581310238927583936982314855319399242591661929052942925706533418704166006519569103003171904199872094340983659259671743753345505412348568089114259980115322862627271887138490222401856427039231976220279841934602558005380616532165280355188335028989113641076725107040080946433570319675246044211860960871229751181363929457552585625282600254967109850875535637194968029748748091148903079614322890086487218280361900018533888333626389851683526118505732714089230492930342339253416481353310943617769430462678742709296146755811488581012832288512242617341674027246827704537553179954972562748703659167290120930608436033384764115247913049042745772799124775209561813372140169729006083929544837689137830449006021402247581239045693162647312502870080713630230000482550466319518340093308359476957167410909705633095629501125157322734594490044522889860991507558213005202807631169867299158005077031571067957434849138532498109883711830701307330918331420640342780588216154454091322975525489445520977534118058547027762796770779594451199131271965096901411058454368647352470455043963029234992702846197132646452569551866401112061150567337436928528437792791385680827081826050923759918843222561425303610693488828176461158910264708903505937948325060841936999721291988962611046261305501064154810203288023226042055613690680454437850110445860409991188534506526833001971251997652381218646451899957794741648888061117018258470933049366975995619104490188637367172320758289256884800139184132305578193540303659277512267609094444511955047806012462850709510274122068060958309023492469964443787870007142901951959246950496444011777417081591931798994393174815146260982426417110956230407897215173174167480519506132201592997122029525323336040161526938914292400148355769747862738451421995293978848165592679475543880427478601123432480461592372606102297987785881794088889763402217475453177082389014612715302554842647912422568287746744419661643159333218835456268613649387290777185078320112591597246962622920034486894995176994175541201370884242238145816074915933784135033356419643909846447292603205149844196086012912116957845918993363394552635090435475877121178742038053095071264740086490663047905650858826304128123786982792918620190504788520915605035913420067205782128536890000601474716378431641228109934053225328460588576092241865238624570499162216888134830028368453003717742578812622222860678152194056318806294427568246722006831884934080905387547926443227581825159778564652733885281694605508489927377335697461004281762331953845389696207443375035229619775548338101233741900787893865808425031594321667087912535021313089590853912954783407610808945800320178013780624716273041862657753852752220397021585481728468803054754466880211051021592801028955325111338944699009532970595291066014657326471042583584716588546014485492078798245257567444016153820236565533502185859622218127453543278487878609049004796804222392503138541189384030549165495911298045181039683595279867936570660700053326000359413736202809684849997222761997022334030702079880733004291536479853835503084271394498084536129918106419408802744121536626488648628509149067209743701258720417158676625862273250305466719088958322810131142633592168089644932644203982786221563066548392998542098600999414765179601750665786707126894973494154215324696801848890032107479700340630708532066563327105305777150001872167884348017525551662216880695956066742943713594758240788268024357920503663593496964211466138118944623127541647246352895728420321391643162997914236604908697456669375704303726036419120823402558329824423776146119107693619477039301876034567928650503696288153818552803251748468794308256838080235361602143762143890501375230123986684147574496004126790704711031179289732078634646340834723301051910912792024615272895092186492237056140074212335295885572631899454166938307017215842654184054583050556435721996598506674432932844992591303246421253678409292697310251058503946655373545197178122399469161019400855597186850060577827574782697916395370733567575243277739127650853444351919074649418727508389681527136996086332900014558229750295758914699299289195333992656157055108446254504705973803642068633829989053235487137314205662563203036330456659866103005844961439549157918860677822570520923600312801256338183209313039985769169796127443094088476235132108984893527425794399273845530696782075607140465227193887845065514453021652288264228432692203477369232355317379485848959958196071759114267570226776072633641527612519589954935608798199324298670586365024885580675684949461033167203514730277786432300636909039962975150768752153382097650088666128103163649901708934428185617953057352087890439332309504435665936636945808992749259686366439232012979351660782730348941519349025486723320638624061753597874773793640229913190877008163941771719259273184584124433290473543573793103823331964948067870011858831164742863774246245417573369563991473898261734846574351392313457189205477543200901460224311310661886210147778853841833152206747617379718654100408358970645430803099746471882695424078686516466806931151241829525651096177222767237333314561252660612010061712940157041137940510822125244603175910958066661115079768558715391252672395108824575238750719968596464767297169522340509163392960736203429080999533884144364301597134751551519093019437828598738839620525999885358112870479858413447774259885456561930075112592604654423127463215691311072631585061707219158119973980450156711815514239319068768166468308386740932061672381439902142666367632023329265672147518571325114064815097958753960562944896497438471995233607536197298859334627560576812904467225181580301261659337867150566364633076645303921756300215210801343829343626009078560768473015224644518100881302400639170631847470543238424355403945338276682415881388486154888486948209540966811738115425685770796581310668530084456207632903661769237106537745152549762098512182671311176521137175904353350742612943228580367107477149790867468371828583860571589459938565188530707025133021562073234634723885483595470145857999010293178084744461713182176616085385536238626393381234171037545287476607907650843986659914757797603205705222617739180016459590921144331448507341945323609777714331408298753162847349891207601397147667862626548919540992867017930671998356143192643435589989103885312943048189294324349921235096855545845905434505168440598889159144316519918113350791240838302977032932283299202797816303011862696040871032447208937437793713677036356072403392890566672136989089781907382834980643480309782582069791777521375906036883552391990697924419661342413088574339445263464901460644485730219850679321306742978577031058051382889370623028961650668636986686248598238628767632229521943628230285201165181403108386597494671020644404614039053816172041055131882663532403999048604885237752741927741666375046244791106478205441923927341233808503841311471319202066525063706804196386766065451009359858765020867900711886110390668050053005732308895687469328709485312389124488923205466762370206154190642609416079096627427271609983878482842471117286458983478583672824842970065611658753012506619854582813968502713547084629129015516077111514554589604048605378571464343631008726060517733405928797205462628427671017456425241352555241791530753814397497885491816314493077215439242892617655448542127790761968257620168181455207889011609131454768429713083920025665284475855651617322422667958117772575474060275327667051656954662570232118020385256655146753005243490163048388361051470991252300457043141048057285503191826003142409226673125765568896561925989659696428623661673094820434943972660965293589838816187987647785195348890674568616533366716343905299709660933163622058906225284677859123471338314640285714439725847575853170766861773633726671409499920885280401695591551282911925978690188818370467967599503905169411728060314926838443493636629526075375725762317433637736858484302078617432906700350482124149487690114258898759252226006114495400898797263414533464957415716948150908433541931920396565545925735521427432691539796498498345119018135824294124718487181904927834544921234619074760285805437532559449791675671408571996104340149883196324972940696303317328685660584383737870351241922431251962192755595010988293834728179555043194565275554798638863752802178375684261234613398108974633172413317864376047141242130276204944331506768200536458308224650624419035037178142169232142761710150195270309487519910438796392261579285099947140584746000401213393615437219706169134680571162321789039361760388831524961081941144188523637877262800722152697551140574919724107461559988260015299334335798043893203469503874596374345094761249209913059068049707248741326301039193704093310463627357628912460393872204827530232238360219022709318658684762450915901986023526059722183103983118816484719488722583681259214670391825622763406310123514790295069262072500355503436021772214768922105245697388219001216295491470407149759218334506529183155692550016319407128249628628960451799829547619294265676368630947650180987858324052665413602281518175278922167958304444774421394952055657899575874172747823121878709477087045951224367818177062555323149457408422889262660595588000777945105892658813144194903660677173927999520553126016374217967845219667381229486208179959876875270262055310175097882317456258805184008236494602947357803353048897901487390965723344119518224551904006137654134240837418981995199267242270416773973668095522039300124300185543130552861230272114971109922045705219864785271358737599784756492039244697024727055529323616450391696466467468172192044577248675508209018468806229294487615552201590725572365505368538230903118901124037531344649846524739627085167237394049505515941919673743254633181738589394568231047232312668425920482609594004595832576514100393029921369908715962025063900298991073439668313681289082074822283772122307091815605865321852851611577452498704799297126247315980546033730729883620983696274762039877255635036044346889617423908293099391179746465136124460388516971122008997526237332948791281867665805908629512933213762514565832674900433344149511357449248137280829003273887615201677082638402915057546907841029371970270442532444261854407432642217943231777280945453389017220605937452217166532062964602247977943904400435998087262571072510062513775836820611466158188950083528139640329616537127581612940639984523832023648442997187770466773738979139217084480435801717907838401425773041715580606935174298904676466912190387965064308294711140283854908662406993583949492421733851987509674415027725016837507683159063427145444505117683281939214899087672293572666823132284794704130621121435819434513391554047459097357117229973907811790792316562951779469182974342963351445217815383319771808862624807617331067460093208309464905828021017259440537118113374368366888087242704240036754283350489451759130427667313199290625281101928667882621788828975846984473381360094621398820375472294131962712310647411902883384178833945648975247820829320616300507669772386550648057116637668812891386907010732922136803921177049010790748258018423822114691174220811147073182830486589100190307004640646161317037898338888856147221623988313424421868144988978153999809171985788551672687637704799111179784681404380175106441226859322871197210934984737690614941856843568255632087253290645750455299525166392733518256407621085474952208728937472301717614390980291757194057146974370463843493284001158021476466787532056729761064773556146391619396414874912777365527886090785604729612561842721725320704831418207694681996220004958711988950678862337940365102617467334986939849168846800742761071067528826223884114820404698326692942728124306334757789352049246802770019645129785725162990438389563556263056981080052145214033282584797529255210903798842183619669075365707579554369156501366671940648592482815612725608651749518900767449702746003619251992550008761570453019769876094411728674835098784028092808101636347687994113612688515033315237625463827955599030541291648422974529909449579039370718827938393864834171064049661887065440677649016406961610138078166241110523139891053721799397707334630173882664621333860364810513743600484681528120551454865269285024320441814144626749616865205493464151516906944837696623252551911576765734187040781457752157663346224544750205171816605652581659287759754325674785394657160526078459375024784678408425738639914580413383785167645149304066397535088660284547274143193382991584387443141608017157064566111919226719045783754110303514970208159374456118427344993605593425810248108964354706939560481881345754754618591093125344622982151645764682038341431461163629416197815536147258225952513833762175656173409301117989867889367492430807324419207928470799755651926971494976489817762791139578262911297418589825683408800716796217254087231882698476614958184368448087839188034758161113371081573408010759497349380606946224920144262698328056847953278435427772434950237937017769444903163655087692811365007383250445778871144807734159295796551043005407990048638232815659171621389655495654807143872854551618607874443638645934234604113289980675528650277175352193315139370018494696326879741097828262460310568583412684123924981249564889199049104721767403745844341158749746414059028799516161409474932476719509640651407669451225600136937086727941051224830013970504947004011843489342713825485864997708103391981523907700069095002211312852341102089432635770224325032621002410713005644519062085196913593582276999810281044405523158778961371671442475582261474267694983007893945135337661362927467355287308110184598157694666073667891112374004455112876568633401163762215841779499383148698364458198374413898486813827896228905810370122388550881699387975074568468006633748103222006405284592717056192383149810673371723520533805531576237878314059373248873098931766656901684376625076880230946109950251417876248619398223759157449308654771778893544010436758511601142432894689082179615138034731977916016244064559778078051073380979196145180538471803145427751323477893926000042007800113057604829995174161209191696586946059956427942549075123893870188379151922289526136243373454774517431896149700776972107885079418388932928058868970811786565987309731370193783187544409072625180291035525483120621219962253402619533225430992388279976456580389625784571100477235401914354001587850779395184681439428252145393938922957152984763373655032953076508231948349486540502025334047589524545340709840873156764557818398007306750265672726063470125273240140152181044657478589380893174555697445687871335184340490406939022098263551905721160970061755997887434510152690984340489190378713905933023430317894288506363810709725005192318649579731491856171991378309962091184380985400968156737050610226602973348766171406420354507113469302190033577205538077817201996607010342871304874126068005720932393073645173715668567888412582599498088373088403927195309190414487063175724823252121922180090249729644386992975111599138250772007903764538393396186538030250787357100132871278536885978669083391605492349272355150605241553404511245357313709484541069383354237217700568875609043999243066445259356036518709783869156316173218539270727392844356390671573011843908384617087961475658764411140656990457494731249307026587842292274040312989538257862048681184282624943128710601660016106074886426218282565997813135847118331855223226415307163655328368633696137637689146297368634152215786505165854104661842114783610719026667083990866670874686360223249062035351552146814614100486841758296077545647973313989509392529487656265754133915051321978722496575028177670092844311220075343933795760205261093730847815757897301002954626260313786507764116116376098462432771813817441666394570656179101430278612005923141801751676171176000539219775278750835048143928790895635713143620239756170437121625367124742174579468575678871190365767184315722979112472372082598932607433363168662475135999166588920844441243131609636691000377462524283909699177013021484886058039069305883511537613601966620185433065736119695734347918288679883319602044119063257448810996863180119717186173044987710568166322600249269647417367635766900058940951279022064140265467164841430837725249838498407230086538598000263916952426299151469479980297898854866589223907023997692244561476343217256021841783962720194358574863944839590761656619008660015886457364051449642076751994525987654319214240657612382145390895107093342654597134191803979445744624639980901845650342549416249693528699031673173007534506386814908837473717768943508043081672752324515181382351977582414851020135976859132207867379892039496837989601899375545117586296959842690713690953533409174509020191995385122057995458312886229278236694030705677469254982188351354351556195912206685322725529088729392748196733154441939118377596804686649898922253977129610609208951386647743568674849311031658177692268696671903936586731481965650498131322672195733913975399552275471168760815556525311682419773126687397862684440942806851470297937010066164310614572919849942505908769726068190524988454419934354891501187143353300477681302069786131659767795326597895317236694267343915307418306737593862110496820522287300709208624340804411834205710766625424666609077499593187308303104013531187600996060875733114179849343368965420106160621200669987488713925604697639947915604597485614797896804445945015238053297351371136015006543107954222308839622972025756087582987025514969655737665772494635686111525488072421661797233347871989341205107247383193519849400234672748362174117947348292642323513753681625856674403663589880871852726780314224695799144361274606687715073315884600565343392799730793581654184478427500849327894033007756872279119173042969439820619774865866147923430933656279315341248107135631058615368845571965264107859317737309886426057755421882979412208523732036260478879739820493559462720275514760259634031058665960072724258078797023941890396222883982132374452559459349330543380320622180148938074199521939770663437733626701894195513490519464340501931764448608643935123129505468230192601399195434600766766521721567266391092881806833092377019571167480004891536485996806634188595523495514492332940772831519030755231602404773278487948664734462543795305522241425420178237258558336869942841199062313681573240448054415629690207924566716791722316595130648037111823429742984200818763583330487407731940223280669893305077182798233372569749603358535409395651754189956748485702537821793606957927274208889222063694885658823842200658120799644935411248680368762006043379138196182371480792275193565348198223304505086833282584119923129921999112283720506900115995975507163362350589815244349519469968504031736566936478369138864658458948153309416742906416108053935673012778681727799803024340910976353918143127190774528067006736543709127323032952820038278742411522093305688013947206168150889230568069975525778069961004720696926482575235255325327364928312113352206222279736266764049144901075364307624770737465217168446806697450783284371150676307999118757502127674784892009243787699899250298097666249731274340210940996538321283568447143417403279154324441101140124357056137599793709330217050630033143010894102328473066033348047161307237591489298530237990423481920789382780657903667671189454413870717934167813437780896746626336637283133941999146246586082085729965146783209090887012946392621675346867576980459644761225754315136050662575728795485843552196693202080057710967322258296656963115710929739783138410907489189463884028317038045942757395824333310154965018855298893772277183238853492471296859817935766562102851355644141710871112043781682924744271776899090650570785849393748588443622979850122379400128906210203735289243437225797737990039203320134757569015943622978682187665030655062659092497622837705126694869024717955797362352103300225341560178534086968853342790320158716552437230140481373976399124241346843877544019339775478216367791160536001448384107127883949174467761412382284000139628289785493795945665732771387360622691150870278357673717702956390364642804760345693090022810717264107630762766895898902578712496101306361094862826033926048241479564013872452510461288291649909531373259542893566391330713057567466170765313504107450304183119467402714418675920359796990381691951769509318212414767434031968809596832075524292553260157763646256628890393274881996367363925656497586495331833987124572085322326369591421545128980635270371399144061645823603785111168494042379503065564981364307993084713429622983304687789686477968583416531854221488097912858729120322916159613916082466878038641698409195551737681026473028246746836427417401415427958582557899661984797565895715811647348629141594739689843655251427067076232301779960579805273710840532516207363981073893858578434897467210441612254732641660863892203420115593225925273318951453270275585446575234659891658683491548921051049763954067433913155306627658372024028645601154696433670901446628872211131834730499513819960948849674647483166642738599081682267786081234141433954726545732823492109266540085745042169732023545437917477501493693371222631597991516721671058486497754507392922650236976180210201568626783516731861288468963655871561525874383215183158713069486675476150902010537097477532082107841052061987539370009022921579410945680731020059546133048012494852429654239801503344781899698489354857556348717246729660902396828458074827299371271498565856217108148863446655260442951998382468727065938101105934672314056121608403863196468363371833776913688993286335791409862792819716861948521263981227711954901066812854915693784949537543266315417626032957854114714572391248356287068999057982274979138541659406527282720389581920140027013205371590833396375807544292991984188608500939793717011608897493419352310444076810420164079354860887127988742339786135307236235828528053980279858275076055445165152437471322204506453557108957652765548956169215605692603873982754815586808076064697892226194771412616084359623691822119882095310912750485655477510379469666814631122879341957236877201190808512353930990249697569485267730689231847538090368828189629106509573435789270733567787894085330056746919307944586894522753458354364262241563631755488863290424256130236961272874809030869324409662411920080788389722234449589678952285567219963751904295306523983741135206459211371569367511950037792048507777130680399314235144396043622321339916931813568197979198503826807489754602862533461600716409510620800099868160269997292693818293605089542882652173814047982180169305725034062575570093553556428800519007092786946968323181376523594377459402128488811110759077388790587903734352757101655019353971592815904382775352944320325981011707211138397200413643779596380058266432622753750971522514391622549266040589351563022114318584758085664561646739586749586931602942583264409678583821256280954019945288525069430933556005307802390379663651303867141668894251669668415251199020924687787305250996979989987150441282310539772617075877262382729733512734993644545304354134832991142791890544031979511189661050233571348031241852962152000916213652029507446480674430572895990862716298118674724721669392319592080965340387793704547833137807175773199385765319553579627116090039468977246873261443735077520335339389110160785602316831745518389954827231882315832997475165220686342516292300202737259700505830041345857231174741577575392817137310667781360414072354174002144524342046350197298301109975914212082578812292845540537333562887725510754792966534659976528973116578536673366895443090350142139472108385481757193175171579290944651887254074814715732702420543462694559938995072248354126790068135731325641242634228037731455949653940016660191034708734477304825625131366853385807658470508513002924049173431541200061889550120706732586146566188167158958014632874942632776753777274724903814983075413098023018771272828086713332069105535018240663606303687504006631041876610441171235722666316976954243780852094702158643829990583040393675729774321414958845945876771396569178872419643692870491038111800976622437805849970347342333310373635918113700983364792988850444000639424242460289785090435798903800716855280080501126308589168325424963979759078001259977802262645894687151466713812869506505228642815479422662858857300275024616014484859384015342666759132620894153671726960620377324669099224377572585118264863752948037166552225620177752233429105196171526558745076498721551427966884030366692721471996331561462305382180254527326388927091618588440497942057752424638121799111938889629717334716753385475305296385324144010481835253512390753091111849268916241525246709262447859511095702983725686803342994553812184030191227676368548180857392087377875635540626461486987392455779735685224420680695065587808580669829396248928599665338758555915125497122172338768416419384555731945655878274910682693935707489533077462471495141159560994030042962740252081322474362316117698793919929397456404479679536451055058464488556361733696283229799471038562939938261161373547462210727538040668487581470168806146072635710436853581869113336086717937729690091373924956695429919294644668265953212464373609509387069924298077167716749512516695166741243481347550724240507152068801047214116184451098009458814929568451440191382053636086108405066451688404042584484419712024625318704732712256679354188936448640475785423539193721646997937958402759007885702385339513861676336365702474242333392584611243563324370484630934233932478324035481655476119775529343944029160787648352687159842912169872562900357064500750004350840608209176269892181600688625890283054570247279161818005402721411479138818020981093368441552403254353509510202374311998084275967370930458033873521015973931147077346105847305361674151851958976360636829884725025009207084187187300068067979902489008975703735637407402687654878507276516750115223233158227760640072478322613065269064924636499122680064736764898940499660807327258890701286730401766299926766208529345513981338452133249203248231737160773879907645003773372844750057213499298245936018452422399142038882382937517557428831714506486648231003965641382748472678963107748147773918017437388370004477597708871844078634091131220972544401919521336697816441200127821204098584469961346939889969722503474720074426934452943128581412240193597917751889349622155734966125167601923958372063979750321492066265009649352530414872207394168099015372692161828015184993699381614452020136363362386782341193409060656337430558166196454922705440695009903890962191962936589944299578441750731143708760037939918000171422946054129234445516001783968860304157907233653306330700703451195629179711683942951430323847924412465419246026992138228412609512581434717489724297502374355157935668763652028634526660729166467823889245579506734864692620834337478499779844766181166549539830616871703748044648974123909642328058134758816676401084501495979651581869962068827665351594374860844413568648567355653320636350598159198780738610105986770901892024620241670575561238567303124375974091928382410906954913488047910031261485184933347361157720564276381134564739981579037444364944979353628870264991800060565954784408229087459303198136374302070313028916798010734189796144113114412356105387465054571736373707278820574347734469760369603769525910436154518064433669591905300747920794184652447799128859940674404152176267825978157456764826056659536404671184589573221935431539795311300298685592264360579083149315980371402857368166274623410374570164428687843742411155422569108579542335835588458503756247870193703215341540710867577247219725279921327542739581826088629330947081449660522454624768127133767232046539032199069663708050438577595965299335053989168572249496325140600572091378607730928725979340193810750150181874249679507803215337128677984710946484239532626531805209490702958965527457875492918835975157995753114046743259676354257636411098172777456906490948623637698513195803930811039819283691132807979918538392644278777730821658318572224218957080894801578464314829509801211956646758897961953180465316964410020681545167549064795968508883194896356633767757007772303572122915564552459992241702814354629931394521591564658467321162649288924956559810741013683315488472896628259809876289722673369972888256676516543523307795215964184908970586326420530326934992669833771372344841910787950051967464416172430209966779388261297047150728163769572705066946756642293117718475882916290059277515762057137853757501289371503184890358807275023464044520674858540825869068663811114147617620035241432401008574958574343371073124760831317047060285934366228462995070172477327503553377303996606847312287099140531823811521469580298173331842767842696627592981097552472655280008152221094880936328140832987086678898742128123651399956047732264584881680358291022617471705447052332299884734290353735570647024947008446368951052529407029291795868843394762422578333675228460618805928570557498675872602098512088832088771471425756647883677506145424668840033280679306277831163652919704218279339343376346886216833522105575983342901318301060781994505907337948081076259186746318777657813766605888199326226741511621677416457857524051412627967662192044755201800966999167549239103402193081959624780141186454517353724617499458698630838519305927934844912802681561055032143104062671763742928294187748877683007658044620145663032074890054228973771314041627447453005793578197288765948955771145870564648482139464009190814151876685933929384222706968808162136935843192785240013593902441320260779652625427560260971612750836069269902259514882015540710603376084956367332904875327688808485009409371899090703501621389822796604144981730856356671232580947353898663809142359894556501794697999303935640566788725492942978299269791621665058125516774277979702732144962409494508089253496401661446879358704929172020990685859871420940210597191676048035539432277066439186927450737661476506207072914351353809396180729873238743779116659784227712272420415862430098860658106078017605369023769957831147932026394090521771011782072717684595027089211500806778672641540324140684572106184325753923349079858616062785340614715696746184392727777509412592187281446074197512775176092268923178112964996495127116102619789191751954166593882687460527309582804044082437410548747334076151930155959420150717297589255498072267864022917270453902866766612666642952831471976935666157597059745670236228399503680456073695513477008534835052711884550854476627881395123522323818996062048060462737780342048967173141258302280724826069221950355124296910185072125989008701083307379697242717349568980465515013752118255230363057378618145565300176045999069881389158317680393895083321229585337410257227597019184518682713941671145303179713428694005909311923586849640133654760353206826620267500824483407214830300658267412644977647399149834712683170419666049677072265212934778687914946078448322896851564634160251561791662037012824935680295363355815574091056179256985453519568115788833461501640554282478923458217558399656735932120510782412367857118470581523566576391907198932744064732389333370682074786898421604188286575693775593387446154450093276696670268859014210939809511045099905446310503548502188116788665310672467389796972023671692900223205415610197670453108218091640025612165951292443661581852912085076309960789284912656804155747119440470716636162937624199700290569075925838084857868373043765949766312501316596158069899340914357986788824393858044554675574436502186179535142022994671156152592244307385840964773252104500503143798245920825687430016363794260759254429784135649738844291658815349040397333793529229276399881213536177958701884993940728751909472118723938851790921457173604048701511917705013562125737524453182067482978440910505928081820545405124060777277019202314330742617184496891857555776510393853940411904164383955736576907004756796991102221841146958525311980036177695447630027791798683576755205994748111879524283249527435120620923622838232689841538535979090184817243579249694672439438405252877641922904543816675528528918958545519287331461170532727627265480960418042259455351098779712277952576353783508959454662515079509557262779702164945320241134844042786129865617359198694696330613041514287388495022382130778354269766526731287120918771732041185960813727453646872962990188373572011880991158102823438218764866832774620969684204339921211514364950402220459372910374341416643913559034522903821026517887422646019194475793214487879435456656186872359571907594734801551067920235684002688496083665897773558357052407331765391474617260106646553272637643981046748632908544149459313875237845729365796052627441132872606211651835704039627875280699750847907081932163223835281485124145353586006924303182402715240507120454274056195699875850851192581083073853098802165480002714152358871230274513603166553213449582846363862699316848678236897359398614291226994566732076627511191089535177288856046049114173521287059966300058168514915495677595986255990223692270301525714907144589438702749050739090217701690692931368466013602924783465227897632964677762274071064225936976358608306453501749544328143266788793372155712753930966460940445915958351173493172832545048109312453444014109734982119503449197824356495448808036838127607411333607897545797095737880956356473942878383142888564211314330170611573771570490236409644191756267807739293166150112969882418307522665420849242672394329661484589348066408583043457768033862566669822865288369246690151748029146467276309487588206471798764059252577170446689998307185055057117885627057155054686195158686289140946092549147333047700844280445426062652513885983262088758164463771936173863006248044641451918150561522848625100912147835581078954919554451277625929347890763413468338128331191258017703599731527379263276841202461679978030214344137673174296956032341426982126960435223422096075424927796610158437779100754957078863402402213953246724303926189295955067658636056420311648032073329333041809042940236667672879044285180306184929559025725339520409485529932044723621926220378092092664239051508009898469814580474315994220383519144210997170700642891116959787116040833514363659324804260036200352278682756142622990577955854751870465962782947070617328544673950537268781598143874185227853650828668107393064428663463077762617842387820779100369297677061871108760626400269902879873445083219775791541658536602071137480146202908706626198686075344704370898803057190537638683255744137827029866795061902634743941544313227503823899475940987553289774595396347166592716724016654355686741808786288632283949833652591202590045337651548377759393649790197575870400317151262231029612207800675937107365597858147534997228233372450807965367641470117876901160269402440255410263128179488049150494676051009943636183601459094132181872552231754897623859235306828605512505367108182922526475063159877788521106805963557799541251466257904226916963772152014348790709050922574079534902585820834925828395077142411249760183632181919640907058882200161033599556860668325592960249643931219521523170267338169559713448755688086457290212453392683758334195321167494961088711586988139544317291648282483740852535723978541886000229030918949646761643854709371246498930115652649044250640067272167594350705494537431877945915464611608515878841585017071650173162052295416702570871069884863392320273952281423547426630451128928784011858360042957993745294449996536159447342037282433757996445116879447378154196504102668385967475553011572639336095258157052668765036593550787658266920480178118906485898769711930745482599702191841776519146870053850002786768515279170587334319599822778939241224482317134959268347355228351302872913290789748081980429061903060951466388291661045516160640927196865161530683992278327956210397965521525640114520531322665124594922949043522361767018354196440153449864596605145117318317148272631408375038473167744096325939623798189050009146786602450206099972054563241202343580816016089624226198927984225666840625895526397967098723491952035302576337374788838437142534583150886296561110673444750120767913292536316777393739076493328123752897835625215166208030694111967038916245078156208466338116489782695745094729168353968694848455595694066989412290325508459409065371100861006884090399251838797582137668734012477051855097694551367237170279434022742885815235204904569867653226033284680780537864076826372048944879620206672777104238268216392047206466422811377377714538559608487832585274982387684556871821617852606837789748799586778934589246991803561032456223732062666830858510998261812679349254001155694660969752648350902801661874175867035822634184001103909696664684860761448066145612761570840612825390563775576790474706489904467140958623292783342814767918507854764032070253892532162249364194010266168333722822724731149914611522471402865804771066006645762173377581178715479721173081961062545065878639927841958309989677667914578772320882385821637920224064457950193518739081661156596768265193176762405835290019206131920023105543033632397053635040931849903371821022586021736165039342911238355006308902059505045013022579157159490670140365759553298831328880440103635779045879979517119869398189382786659303739004735058756849880697962015742494871528021785548215875970098271750225890323562202204537904166115677249108259789156031033602105339627229813089358323305020756773149156390515247263729345412043685926461789423245605088624116703856937513940912483477787846496533329578735268414074133353067231465076050114476951226534860390734516289870622785966786220431464753374809757206914499779483535472771829493275322211176343721251532564256905851092297413280272182013460484935590148157228190848061067812595899921122196090143829499553630420556455421456351612470486027321661933093507307678329876286568563800507288950645410889765864739547374993079393068831157459098393568215006570427226862280854222507075713969922668829324302695222789454516978570607459021532760175350851693447266029453257976690683165377042214320064991149152604211200205598058282221671978777408515414349249934555190086668902254774310644780083089939152103067256900149714292553583543563907090838938460898298194542016884515174579729526029950069347135435177535277143058136862061682769363923786621719909085794470915680217651804061237455528082407154799153303146412329010343637687377251235298356982559410148147002630580721484716696182760658110459615807309251695063867832342074120338920511343055013342821669474650017898941082826898854031492983502889896329707458378619454456865159658035843026187399206000581877689082727401969412501745558695113742976299615425196412221547024281390791702126926570377181755009808884912349259993417972945440089021917794942802962525370799644628755436030459423212892204410900243579856968394426773386712277753189513020333787382389250161870411085109752574099904172613610590734824526172804953474152818127138959934202951697539828999078373128448253251040296934301973465974093151409213703982047167225122515008628816464067503705110557207967484554165019781451028533826813062389618794418120494447176101157946949499186831132739077668133556366762143013956875497673660389267616604884664896039947360983393339188255571368223753618416128570482885283971746086088839464166086952857566353110117445300112511807032493479201863017664228035334662376896196276674799760932658578202353860078502626316305144339799033195962769942859917028521042533517172557882845322318502431297360654692819234141888067337041625794372519599581126315920934748534612151277334996727692034516097182059289160690730166839553163752205869059741712594436755662445674294675235462738474702228863690335350006871337929101683670417873574725909847976374719345493529371305243218557764820396379224549077616876697927792650628046329499519850672503277044915314086467356134959989641627723395347751457985448378483270518286064020335953166123463925940813927646212632039294799007208602388804257136562090141003127675058742470384257829729938730893946282818431106339888472635476431272658461229735033200443681369324855287161426604210982363148150265336520902768258663774293283304240458410498988871521585171961254285816525237564437063233279542586442888559693093345089460432102515581672699691883096127151852369280778988877273817905945317093490476374837769554430788581357270199423279231370509416333677391097511952034855662895133029863886412160262812043213749958576277526021964869171127113219547556508679227634410500789245063157730077935138204638599318285669732579534537522656877814228374682585531508538823201319513966800279514165912895742975107163425437222210488574847142213470754869135340067310506052128667123576904308025182407167871144647030839632215927960522030875198582686812793296666444057231022355226521373776700681142704650873309934422782280563439931172554401348972457738489311295619292539574437916483750201994395845870009839654400968030485571272458333662312698358565056132833066496030895831554805154264828778897083800324916279415597993832060796540613079875191085528682159451560402484702042125333986088883541454629774473672941217999655060567882329934234904343271581162329294815109603744710579517770245054570363589666119834248673107150079362857711401715514406204630976156085547573914269675851022895812000347547611898105636721870017472691082727952139401682489876836139079422204920139451084146921622513350594556401612448231711353698532167934282980169903028542129806685645665702421623288528922181434135596364733946834553506816802119379339838309754159234751196988633510672679380672017860065518197885606737473174448956826761062261027423237600824978547486739751226125646964923348870848760853398464189000083059473495237747708754483716715469763497123880934943645491663504322920561502131794821805367778480693773681665339737865261638560040745579013592737654186757962682448912883578038258089833046912707158576261434097250077363270730530644525504162021995246030095739457335970858806830098254823892568659111224209762637506677853562405665047235055206692432075683140357575728239124866776678144740276481513766632541084935321244421841745553362729590527409261231336484779076640116317767251826589902032393919228889761660270985710376979765455795022227109900714639480102055340573669833934948819603492998912477733676568663023512263146940892559725620347107772793244610138563209060478828648113984376593909527467381712718665525994888846027361874938512356978034477953907266275309113789573929899816169606744980291306393186991048006880529123445551902915724987259427735122942340329393519107658768601819062310689826340440663433169506345646305473515068323790718760417281905095566450121863079418833478631345545371030441944361979842093555970426993157084199498589989181397247576298029981749938036322791708271129314033569629108964144577282046433124333018471208405993455704446714216809771570409409054504434082227143667283927697108022657478199446851524746253851105504014188923059050341987528215218887244796770822084367697894891323205823997683736884660856139726559049781610728070461286839639164704076817750717608197222355125809782130629889288808526507624904143093001572296327061071905086321950211323483132732732024455153238522595112120341272734905930540262135872269569176049666786598860148456104513221713716039940337525334042629570758078561448566163405591312397525450671241284196641122866182717925812235469604243765052504049374084797880561615285616472998998149918052993312928448919497026980496806200587948125620198609251639283922404460219512480990937863368098144985142197773972666548911923512099821502760594716545319942871023689383000940361535461319795158037950046840315377225066907265892062232786561573440402492933201504844331300735635098850124550903421389291768983397186316189372651825259905039675010764191219331577658154538526461313287034588309642037436278981761539418041997950670599724470347380994597315431885052583083996966913871562237712651333119457532450834001104956448515263433995215111053825285432708049920743420526543171217462823430868057074619979930186148109106992199648342248296624824654175257901798577126918099687897529585719337098935899856293755309290350620789681599383776842426107239897545993681772293537775912683786018519440983101009126306026133308257569923855854585324877142788367563500162240360699898365427157083409441276499843509066242336546605794381551672386076505464962580190357535821025835046213896330631990469160194040031257561737385914578795556414627395890187673180455835364915988994235283666309027151585002428647742527877553415931671127898823541542291396205041956321736576603159617325052843757143607007367283088786468840147020345210088377835221497099514038854181035724017493461162630979212711326044039523403810747990617447533651132629661494460545490015081215877897631746212268028614487006317275550180137204929676153626555592760391043356118835622816632023123518433171303128759828384364316122898897887338948258678352556472874916489154230659273203554953577638087516095827352285291197500789113735560285221620161267255622457422483363925667749016554201466497032955302132764242282153884557742115978347833415501978670473790926988543811912006953069187212561046493606666313981172954822386729985667110881367794812616846289431063280502713569891083514050366844521185708791979757772503587897618063122731010395722597500571746750160340394702380032974739926411102107104437004838110452837182692157626764232080424970634776138087883128606136363753541744402102110173105305650543938703636595804290065955695930058355141705633673992634520269997644702603616981628917311168465289835025269179376698420348765154346765438336793006501240289736019867469046186076393544651835412254858265191928146275272585215850614064396029509094931918896851235129493027614357819438820561070558212154410932736784818442321966799646559139976857981481341883273576240843732196247352749347409337289312941806317213219116712978291473271844349172031312917948111442478931525720172837663130574373180224817893482614732847711156396276998133956998689445243552950970095842043716272119906161754845615140782995089456667947598808896854789224540776964358323314770583120727278593879647100314453341819921043282884890718757797423077844848158344000410383578399399656531718233057366490512845756218137913756480970137677772782893560998310956697584706828139528690549844369882833768709506521380772207376906651407100626282139034747176840086669606340601726779263011152755539666432161991415374213201339306596951898541273383656123620696926442982394419312822680845247182952455873567287381032053741434064308415030873378959370176645016536808126900488886611643010148650984319623432738176506726284452378581506893977946183617562155465393129962231615508430556741221562209039970078549660037747130504833538287910444520398720291980448363804992784585261499798880416861952816535939990097625399197287319073690968774794715182718860434532753256225116147685746617929644792084463401491908371291654125415683149002661036967985184743981728289306612410473726516436681927125880095935023571126039549938451998020518088582649566218119694956514503178435287897726100078325509108693179249696507144233917883612916232533150209912789359656507793367439650627028072717701847418368989714886974615474515368876880210882370293433428548646953944440019818087170808240289728026569079401839713320240028468762883174155311126222306118613465926783550069810508398134939930537018700184284543205636010441098784849930648554687447510876812462493283021991099766058021815010840424876672903422549293599561570611753858359526942458078265115053615410085419078723236695513310411262841919214373536829522116012164992818210909192447896568469260616152207850625076780703890018840694983818475024651177669224543761203149537240740725103447077831888423458487006841519631090300638864094871716438576198002764405807781778046740749729036189917183993714203480598277411697262725021883251722143645524490051196661821682363713173796164435112742721604198310962792293111583285513790183493028262794725643080951825772507017356914732860709482597859051255343097802903961385639892373307515115287754905006246347453802589705194223854560411302915556440660229512414343879470349382656979193663580941448534902199808048196547836899340006221927297665696867503320265615011632291780859199787279621393799258801071979778205735127082932071169276551408598829457597021871963070113780698732761219329655479295999572999484487602913922278851418477153108220660581619043525229894841672277100160259593538683090968694297258166247825838959750797901505647061001851934414847770460683591608286474501960366810510550057604222811563898166555742687303122736213367405485283360970338437917168763617512841776853802733444655424259339036143682383345124309872096427758232548794711692917968970048605401747175531038626004414979658974010671963040350537680087334772270732333230551078195883420651988210308120726265988440341300524614930755892543489214573173133707943405741194546346248791784770417446916602727361718475738412290048677731705833275519716116496840014453655407879464731174232443166908744528849403055386743529070659821449722818429795804468115839812822371580631409384908280435786949257234821219308461699209990813551524066589664708535130837920942462107462560541324816933346777148429818150703253182184830662779889203893267493340636818427861101116217968811913460575382575506732336074034906521569566120548144744791966296298332931060395990814062387525613374850861440658728410873644050761021725657869656604342447135861961669579844998466550778686541008212030269352889118219849426064911264087918149829556429230112433089249706633935236110820891426442700682376168412721710005746332582751165849017813381465338679415231602360148227170121941870890083913861405271998925824025439501262418151167471984753229145327814666207287493543395950424995067557837406914502775019541183501312945906635094793597426418697039139812513379515219409308342609006268651536163653867134328666123073996337277068138304247964867154215657817228513810791941730816306130856563745223721266776175635867474445878704412461490132415714590897440115332182874231823411245243343458940247145520128149439371084478832245687013110660514849498043614764759578701934598610585193271175557974136297452014311123644914930434778836226247206447350541565001835188950131274335503388976972638084819876859636208840070560858928284040224691585487415222755893164172389270244226793410939109579467161646131868158256564189603091240374991092119381702031190334736687453615195341349708503848410446638074807383279837962352942014422817794792032648429225552118495317479078934448596379213064503669795426535897691185007330789118982183177747457876386019586205928427042142933755327403830479777989689816577851381435470558369820303812211102772307845276313503597062631441205274964141972013770561297658397424736259498950186670916798020889590262300928201965379725757317121550006930259643547511385310327876177854543122270837420526374393202978288163789449412309152580375185083641789303125444620108562873717340351675184285287521734218627890679400699204622553870520212440467789293533223592441948560919226461159498525679066718593995780871228971380339348510933433557293507491213193534586956840802055360168460478752465298676880531200580638888189050967416950487180299705062318929279754880537845410299609064255724546029728916853217707025218943273928303907708788800520090112325544869257756975591814439105604397005876409958040858660762754424023626954592370955355126881523023445908274127198832202513961041167565016002696536298969214759153079589975256924106822330575570380218794222673565219707435568151163824616044207187605827470622379343858248865964626426772603293114799866257742905050845954633714233110652731114165946952456014788167626195682362453422230784355030710594851572848685855585384603522095136292906322862214580208940241545649209218467359578182052775597508916705232357346018864014614384447683763081948980106824808146198163543681373213736005880658368726165153034890618331235567752018349384795414677896435863068230176596090888484655045658961745317270562165588426614910944802357145998901798112588791342204815729306335169465041670784982052737776756111113099630023117103876796495052057811766697908587213020707896999595440071179444730555598830867354794922637052762412427548670322537328580054729635657205110313096403650355283374095441955485368803072389600256755872053560205815245538128348813584767780055257015660573598482928582229862921950786368302740344805771924777853540178262093174666410629702557199891071541972494901032477522249462139470551995657794356311746079884071055399219209017318839272204833980779253134826408623885559095183364596004503090744761014218509126000660025145207776327622104417624785594374026573240073249025575675029866611976858946763658909320436427985430539893870215766202778636051916851584506851920425874336412201744450323366466168388311437718435620707402935947648477958366908738261946983162090793357909588551230902806878297411754621776572711533667954427594750881491800769896679471673767094347186263061378101917784240869411085066733696759632466678204933495845645514479932121454005672862668325449858074510521145851994833800198379521129669716742035399213393817327227860291148237698488683390560410504273671985850404086588201641517642016121309037714182770933269573721373606939877665839340985112079620055745868378558294886406175258020988895188352406737436389010407926666612962359523716578382750608053186422183663347960243015607360586255436389442622613069201822079723266742885754139117730850576496325166094789676480822353718725455037009294618042740558928279602060827895270573948682326961825682189651407745448136038262945859793356708759727942514146707690711694353278067911593802156206003909874769834851697579760324118593652888640184426459066750840786237512882863110471020158887636305152412743910022439005306075482115137104056673956503563256215876717562746579934565567968620168916480636236124270677030415640441926013482394150538319294022712911954633561076526363006786366539559783766265438946118525408408103324755957106342475418499152253085888264704160121902410903939791103730813766107916522526055718052560432686157368016138880250946688069283095335038106546038346176929964432670397895671500223317783400915775584265019453519661050228983521288274896565923742976771794210149521809658440392716202031844048827765236361894072509962322218803947798071715023294079952874074200126830890845269453789138569378348092647095647082408653873265710339878552745109310630813164104223418281661922785220275006953215498123575267563651007734365256226248849719187154192934703050616435766625624690167823177200214569315760851029568588666715459047736411831192859704817251134606761047430999795832114976890163279174673707561249261140663857875138575384397474878295664633349016576863079762643160639924451147655778666400823604175154218941586151992982932857090651181827165367468536801709889941197124987274910175453269521058192666163183562243469880841810919991039041377171503867001050882055027907302105896398420645423724604320857666177448468202208282752926520413625866992803687635523467941665386541226906381103594360733738164901632284908124339550638700903406835426066517851101761847417695332913447173917895440874321891203545050112974991434650573081323646123096252532323803829148423067440745986223116383932512266067859198875298525629969163141967621966914485405610099555359786884616332906786487614463440899436381571929580857048039735341391537907130855845944238919227541643973105345544997090329826910152029363976614709824520764014182177426762571736324733510817264665563251504996670060676819955830337352589230241376366303575454297279433320871273249633704898154335878454039903576710035535014274380832431925150139978135077916032723300245035667021501295461305417365536989010796475197557982479260120723690353647894062545735130571447736047751695448409782995296476816953107371809503152925146011818932415360260929096203552756104190648247523694740296653483967258331133381060991489455796039974798001380855957748464601969133160842792352976150981983319476110548823378828655932061878445169571642904964454323825014205459154958814194807465317488185068938962422393651529923697404701356201880867877101488505715657670449494325035304133564696592578397370480683035243165779605978122515611874130194904926920334506435410473238023888401697676904027957540830811770669587619451154111634991035086707096705914001516890909821361850574266471594014214518719055806435295176744221796640855797156272471000688023706527842916048322439687364874768397137715781642841677706357984648869383500669882647034754664141149042666469507551915812731527638158975771756351662255048557384423232635242297043802554674679753921330370568822540990853703401908417477861971226415035303806749052595042888674480328844275534770121415344821127180782216522783345401593857554511023991617640199936160177398624088466722540970025898188435993499751206015084139440146907220835752347756282144258218306572853167675744688916790355283788157009815266543652457151057135717958235844415769523561341684845569537542985287714207334717383235952581541684058990289104900006774144945882046634021364231160890900372282613803488846834366742151951501853199994521842228062621394475180070373270760828402513104360588552970353616582871423080073687247162156616404967171691157338406131495607559613879221139099899191198158609457942880525327501742255630673732047234664086042062996963470264660101658234085070011706860509493438554809766693195055730652415715675895358155138156816967398975244082075434595229083264027953164512045856694863226371118873690718555969188727842068016932757943675494503440270570727194091433494566741229610076626075622396006904278032799977202253795342394844638899041831819936408044592684059216264519509083378375123125545413013284627755929536791781477094764802468273691689502786124145411062011709545084281964880110407870595838709653852330226179148700287320259916438878801251844988729678313555600713280653797504282058780802860338345166167712939723869931947465106795255378588922929753961071626518883309718660619038539756200210907331776771117766698700821409222057088656108205743926584794624765494411826756275523592870067087712774681725090217507934609819114635065816754986099222031993986425716743311499949565398996103040159441186627388868948707135060122594785501839680077630412346375802242107775578732514568408803073842371460462621097200809829642638798349352390293878023334279346854503774844694588630414947839267121816131425719869871763824114045793594949242262304280469964461184194035477612187127129758472992148922364905819138100295589003838805365895594731195501288799809991077768084775581258976646759071080927885722529479819170998324842752477797455199083297468041946231411119044883218507525041423666669899846099031218069471632552075167324887258691553113973874664552801381927144241867998550182487182061116598456438285455943890433022348560045901012046715808360722170940522618713120621067371679952376212659428709908839462687917422007766677144919644574477965533399288870407794485944695501975035567888448140521022020674019273173581534099666366579235321769515884828126364053221464065113025123194479670357788691879420122512051145926940107494890469839672155519689682445337712691700376117577673036850169826365495979271400222117207456793308878505564759730580589897353820158566015269270845816339180635244036836003826524351415748852656432054951304559298772623550913959034560386228105115670345219318652471556625367520857341417176859639686928787728239046474904027673253037188032197796126288861522310867037678693778700300177312050843807353739346290271087157401978562451544776161643962767849881142396764622371230451451738572720447800795437141885588983588681259465039396133768002950797653184600328777922018585334828415681244831542646754047873765898948596789046879302700388514918623125147512985737016554366210716386209312301404242423354626082823213833189661968332855679536706105915936787383947966216829409863029195249225759870615640026942334896071935401654503758451429045435876901506279973332215550669036184606902959393971253492370228513167423333701460267503008717905732319671538860341698117726369414402927716904303828939961968906050046238105751816219790116299138799209950373403523993108180828777711925174456252917082710202295314535301486138310834637159698309846754661568220966621864262413379123090023910563623321696424959737957164748992796586556820075597701867446141784573783556526472507647809120462891677897898169224928230119750082857670621873553292448335435387699436085969232038630082854254304983083218591813371611526257150544024874046732228777113096470211992034606268701640083564123687850611308008656138860424758527309753710753094741379497910112286997824152469500615946476674301703302968643475571261862342757952136312551422752073811640686173980823965329095538628569541068842127877582094370053012552419148605355214403822066870716479222732992603055975603364339271931629173354087076101460173128823214291898574405326058282051115971173083921644828775408774422366324639620617252957112275017259181318611773989182016548837154294394989385501929799280443788589817789833442844356744130705029876077889965493178907335534417271562080478142274438829538793468767539569184590212381927621237103586940711988235103082960734197103030648752052410277120441933396451755376898549700769001518941702464480146130289324688148383957619387274332312218305709954450430567791646005406514509337721723795013230970389071387447612677356169457156894638345223870011735870995731449175608903828810696607176081791507717049477096727220171889936097069284055118446414206458460753407826904347069986917894833518946441323909190398010217164100883652649174494855092539600377715434890797159498152539660528104186036374020490522897933594974025427096822724790082790960151574503259330384470446449941654554158336145184571077152526234473368298826087183636677557342513850412257762431928176884143437365504135812657608405822365800469157803332415515606122918848851832551572240969941688860868230639085207812761418700401497786178689893735299225992583364293331012907602618773321980182224214495035119935938586019362757961291155176441147896573861265417660316205808251872564702953709694047121784601630174422312992752434297217897761612809157419365020948599243070140530863869358753038884675066890516326455923319143807111184073141403327625776258274721737058466955004621981140003956462554948860192007840550445215894544226888978795080158989070909027187019474393561183921698180258571855674072306824405801662180184587046204176702525065584812139088481731579775699194251351379477331916379523289835929201141732756780730441980456075425732372866634726140041893933411661928266369674549070765500849895962810800761958350632832504667237621767089129880744046379806488034486768729453313266941247957066884380980932107029650986211587317074726546801576373436951454089807195586397179350554185937844978685571002068895841044441272394095238679317852664713793912865781725755490943304454074306994086997801370008477907675788621545057344634719942596931472753165489442173142398176198052538922434810049811004704996044396544933310291226393539519182846205934388654637778687949490068566614446705599264856882074573769096773723354092425237747924751300731494892864867655940471414290475272641247773836595481512432381818817459690007135713584877201895922927633769325517792301448573013250816694777967641783004672736832178196809299942873098680854662051997923413952288070720779498874909180393332067358848327651702603997157451637554938112375702589441227835540741648250208015549752268118534125861893296591715034665366376170751755090043468459926999659795216054453871868794892147119578497419411033580396126488889360159442946950998551808004002486459111328768986691431674415043589725189621814254773681218972107852601197589941675108691396873794463804531054435757695072398318154939255801811486721295185952681561429881959607293489637203255580412324618748713773210192765084042605280330504620023128985515361020728896185055717746789877572299112145514739357293684728499182823115474115844702516751185531062975023782162639795169233119089900263424345067002631961832299794559006134073107105552651847617111589218663966327775280559165855282877738040842539057396635058691505879890212314724860182811829631346659299449215146758389971764759334097836527204522140801761004693757579813871065252559094896938478661480288357786107562446129899193720428522972764680128097319092639174995317947281824330007201237113093354877940855653066551144885002201411252119625681562974716813774348074079488733820618229798703228323812032746482630031646133024262033584144717921086871175174143379166691724624271882519816243086615973233496475727668462253977888069688214804290357358982820471431967687397659401903396410865379800628028710681184127297906819934165490434133398667318108656472075917522410787254876220553119457141190711002674309441661843394835027060134102100638037337979457215524717490529935396308160932527528538936978392395586690866129546929853089831020743628883408321323337551244553631531180094281328794966286560509831370185552788915867024052713648660133677703339740305433710778273970676896148891215752158345719747025316500830155325828305933679712009393720237729099681954704814031162241718231627649779813009058995114963367893427309398834070756927006497881273775038585481828261796476541014190583739069455624024181584306779781884708772771406701174035562976262195908239527668936508146611867790028304720417411568067821786536210563997675708718112871315056325446609253134609294862408239167205005820433356844428102368810855160427901509271794381725480516988050297282129302568773256885612370854465168038982486260622591889280868395529147781173862657975937087549407154126534286542263337836432693006206329755948411525464381075688813227094578258711121584413892172097152050137277621243269434190400923524371158508639894645526322953694412514224088442422766720703531702996822310175981322739836148967090394003421461812802553282887445321988973000611316320986421997551235898548334433595077726475195600696038120324213638730523093856868931958460942484135994604191076443831035478919432803990351327832984758312318086201123131437609017424198507941517225964362188534759216305603740323662324242111495481959846315171608411232032142640648921108472534724204145634368878318314452344486813387881783088485877254556112357705172831244172748334223816069596666209681279953573916295503217127251651752469966742530043610807298952258258311904087343004779285181937334410208656403132171519214696098464227819783904015378849906066926401158633771842059969986329402550334285359312401910598129601092587973141219439187050600207621111451357009383449904533601502915550482203399806642899981311069106200165672141023584542793203299348131743546148847074578900105699234918850499247996536572402378636924555884396289480344036193264450145650547564712399889383311628656633644796293548371709040801627091765451133507107981939053730808578002050469815752495196905702874926047619661015366617293863019844948894664227969764296681433844371633500821585899277602408490768817911859567349513763149292882101740118001154560940934439272635945688016743696158759720106548028696151487178442766485929953087177350925617006544110254602297153811059975417915457243209327929790035276119802373292437611090500888579790431476364407404256058728786990288865807716619531332773442579784652096981855707386129659518557595155354698283536664098126113553508805467552067022382702331306805551550199389989844800176194711902151742065298984528363721810787045876130684329406591385983294662318503871574562365489824559257738228866936588518363636095109410869787407269920941242672110078730080157549302726759175612008818306009633382927593574105466148347002881683426359496358472761710051768974977940663870138391966718031193024637896149885328880674871492662704430196599799229269428786846986276354575291212104307303541517439821983692130135873202008399936226744838844842034452634423478389390209005007509704128560215818703253800862245019265714314431920231243574100434495474427589138908103762869051746137749098169760468290055423291678836272030726594984230320774679606040920646512558020598077161552779496594652577229690582493019807281556721843558429377074882965348602660717490565417156294964895885841832152584772075881042990130221774309421812410724265030039909052599910319559279044378661389190900832455769122285383053217591270220399415081261517116749293438388948798514253539968033097470347361346661382642849779272238366943313153757322573900726498196929144862957420006035101234579498622939204362086271390263941493665918476748940630368133509199865268463869850494880534048509513906598454174205984105619300658036335570882233754319009621001391362759684331816475486809278691026558233357011346824846045327424001976179891620951296790826238769798757508740649757671974829147978244620162717444472357422133575853417580716452868474975889944132187360195919087630588303443357321695554448876081655348607967366634858643025096669563456027475828971935007789560640460804904716100371496222697479661959957212641369776219641308421469423487983810746329112660013705417216578209194250886670033128381698303862471785948471305792521962976787325105052710534233335542868395690991984627400889517463651274995578229554131369564039162557590078513945101188666603152875172401585101837063501588411680532450418343045868402049836700301079202428057516499721463315864538786678047620723261692830932765806456225227180283077610749984348298479572051493783774855976060365161878560497224826740213983250885780218577039292678355053664536850045498124606949331077027214276254452266920623359407815416349975594277829624583247394636683466902817614754073589829865437085802862840948292285870608082259244711691568061914521428901426235107968402594134603922748759679553868230191532599535621566207820337806404692624544407114846685899907447184057955871025388945780356341875317188044986246972694952664702844417936479835987634867911540447535261099799499598644924337497009303048569128974190899566950422561128702673489220738885878216331346704684876457993550195821309854337327892635688869309743105858044590880083908526715076199282888868011191245359065025268577955302318215850814303760928814207760181722562894363545070244555497896995209402036869582804666214036559000954835217143862545434574592242339428268520871312466453492487431627587988496395289218498275780619312228593585621741460087330559536286832269264484094996721368890371819279672752558101161843554604368765023490888762408654597898918514586006902425354463385681604524364185298113518319320551867304148409527690507728300821333570349412231196609489766535046792424965696905763323738588854094624367182897791360106730001637336305629289356179165911270549605288069300398279432030495736362149053092572010845780944246363000614336129672330059241798859170517841911581114748852577007827531871095253740711793310641531734573468018041840880197270565880225262235532611676641747884553149973167877758836148610367971275782516024164179800741035954677936660804730880944611176085477609167188864391833820563863817106057003304580814196125024288993378502322784923342211289645020789308481268438672696468463234965976960662035263575971619805976010788671817892671066074771306784028884668655281415597646929479811822730437071483469905598320590880030263392914189258730277422145005086282520874851006801260544104986189246651938200792463614966190784169640354888464137109390672508872083552267152435389081657065639295937810095467676040165373545288121159670161300154691710820490253226501489350192689858022583567533029577277549972632431911382102262299453242035244674822843383440632644533132029152616721852302503581333205762737000223700838092082232786847434267148504211546394066021655800213281002737825779286651040768591866264002850821875295109624101221222539151357584767338563451818605698845610620225736658999628527854646515287355905352089316550153515538749196296017381228399738523880150183704069344748667583400643755525503499613644874423741375749260640679735233306914843827588664263129022924423679673402005954619781204486007485839936145508092154362963793426860129977386665146230341234923688144505840503723561584665032418700039486780073132561917748115951497670407966037867727221903555469479286305882652647303730411874575141001990078526319627110163704287821729515616500313707999396371321383157492982120550885616193766408780308669024721155353022466433130868607706248322733888437714962496280171975997043667653589825331128920843912828584032627611126390947479081671962149404678890213014184838324052184979490669600092688788319873390724501672244793245646462218368298398077348292814145412167881944870856364052148500047792982384788381681706370172946344071645961325749313157788906308167768033476257093866800671982669506984550393739220916348067626738444184964952748870372352533082807610640084462675069660585980401338167938038661644247424213279165139069386682442418834157800601197589115542777007754245062122211512540722700851384090370922764195516809380263884609641723684129734746020003611300190175671117693215275608416322816759009724267493807551633931751797598303980036595863268641941019622327484940081169374568104666977751624983619186606644901047018194631872383798499996961188620712559960664705379101302975301811789588443865221766131834008221945836089573344244463358085419794617137983634154216444625662882502653052702317575682001164595496984546621646343443465891649588131078690887327854852435638009029220124706808794714703696228360473561336190530753982992891587258638034330799780674817051448367750674767442032858695937647473129571531536907588577335462860303068430100562312272738090019802386052259756007985519441481980060428243687983860330364408768021116232849945135991150231298614675860713562956820800016600910699303472924309411628637551866490733122053738178858182499542562410723820889882439761531942533453995881910917336162389999931185823026340528509170391014134511277246446603971661736638498764043119395341202543044421414653713868713876570798113459049126275455626991052205743481007351230257821074233197223371698370361371227992452146665607728125979993821837510482434834295604149463208343145866676202819098775350945784624859125799289438357330624295504529964309104199587819018208288088042983094451051677419235616122118709849850467681583181911087570142489950098947255714718339071942012914262775219538186984406748160289474472411082275799913908751439745996280913947819327261273621132598796114802199835154473631678386140818452798357226808300946032774461165241731333379045541796355491428343581398619622411789558754871066070566947421835033963168835128564697639975101851174572681249434748576164707534145473859477550663170761074585917839309782231410878214717521625402924773657164350975546440782922508435152505797100917255223853592044318277457373676987995037061277940860970404594347292891552191733770917258320465000315901973459248543902802201161660410819877880023121748457748651901987268229039983768245180103991159641557048733934872592292075266945044427712308086802024185575342858469345595263707062982101039401563972686324385675719740735323363260891440380096244269894951828614386332035332785351939335805057033912852714892497871022441720751206627555834316906341830375861680657601038887924576447303828933951186511936071637217779507229676737394592233778372597999720738049746946778274657474394881596679280087107132509173986768501679702002327240809031773314204421606603496412916146761612820149798879905315845772668160176116300761447355367770778095679639290670559075399241993067681723648382590070355310094049179903169474641317710391689061411831624968169703784031263455919161749519407387304733689778316472103482137792219501187986689219165898876639289539893957476555129357848796876885677596539389305023085651258599823048926832386593217102068438000330587056769591625951298809179158979472744250561928200720526263944080507014235025201288779431674960758690829161843027278664943179875834295387478058875625440782537822893244469740335852514954529882624509548231649174913735245760559468099505878593679004488208095818941718829381983624500320040341119781849864357976187508547224803228199634546940526880352054975748318275153204502178343682382995278667841355987489574878176892801761056097098829518027133186470122054870839200929104314458386348584895608815001574305855793077632290298150436496249073211904816705658084183350539703203559305335660426042362778378182008304826301402721240178257176535325568754659432598330199763350093200403005774895776241737503066492665573626621362037367917199442022028507795438882445463178145960866402482241910514187925731205733942550817912980870945945141463528884452207204984022839965224389101650313839596415687235433596392096436768656748394049739680534946841122125731184334523670639219323085225931157730653059736780263176170291329344902440015839706663782486727839353914423080397100510374151033373555820213496245786557988300873141852530783728869181903650251142082887513123148178654455222662023991489700388497097071163807957370931217231677694576397005568583060359680012933941012135474994687223896219972734642170137223156421231109860153073320180116083578045214117612639264420519031503410562184343369108418395831332139113989699373091414527375575639013082239369667970607329395737850352930020954806660014227898917742763453858333918564366653628690883151987848306552772313785198173078281946045039259397513812606382253481860692813205360804446699688090455962264960550420015947012083920034679434767939284547941686224949540909636324680610958845812321876003475462258833609204147640106210389952458558874242038290050972121058078473074845921418581967330960185985514747489837497300904365488734496097456897108382419603292427565970908898305794143707540923066799092285294398767370951067940283839066079500603875383521551320616849217725251855849939143637734988649846767155124476952282416312167394241898479262094366122904904584753737447449290509810745101545216595400523487354191823000709627749475269075034781889342834096510245109318709104723562277596227199127519318941272990305268119002654728552327381064361028806849003208471870468078020928481841629656524262507371437563407494013268802761748574343137293449371303928485472503217523952325400736352102511795056593227093712915213465439054119221900934785835267642793454461159422262531396345968834886996971925251602073024275088781356085783550057061249965309340172774277220613571384371439963975259143146009489606956572662942604199885553424666330956543581811995487562893449736915721423334549594369859032269301288546333702632957294729160272140695498894068135797993756595517749213851378441668269777361427229886653360360050645932888696986069797753841390526384465025745953261295624027519567189833650611154443308075321771556549456225949519521031943490291739823955305907770470376716633600916694857011289173324722628137633271519196896327794549638526546363982383684865310634456983648165133045159057901166275847513284508379653135477187252045915494056151733423653911217246156803431742672503836328056656956790188763887126648367311980944621383248707699539710758893202035827742351521595182193704485573075418735697877298265054242937270284136933363838712163772647897902871201693756667190002885996743717292089625045016611781280301362346613252196724660821239373478473095250913691722529801875971701420442564834348679999744478893780730724224110578494708730777385379345008772501836427904413409968599227601739990552652725075040809526251763742786823906045183012113798873722643256616435292387904212223734154501928283078582425729316675611660513266204069813819479152039101703238489621492502812464719414702637522183855226381133607993287319323263539979147202021015537932936503168168100619083014059407202927217064092156935232742191784973132824180252384451830688255154651994752183965085759523209649148734596609387390877281397041073586645562242005964682057838537278284424121322515807603307866632556058796425432429925908268894031287694084247570138150233926766710595947039289008692679666234778084724310411004842101724282295289673025457175006506067542629732437882270176981705277212233078655732216160328359996767207986414284357643768580516386911247185357308988295388390103330613786303813023939575717811987496872254363080990114432913649150590575547391407639844031445716326474421946649974007994641511432791923526036482196272905106163500130413735363283198649119183557572324718271258382942054208266491157373935822289750952651151443107010575063111005623085466951410580585349702051161520006104535111948925902117974161874726132658810570447686175727380357299837788872072480127396095803654606982613350759565165717163353929813090765092572274924512256531675157548962222767930790545441776061302532942445384723941503602662182515728376320734706440469463121297492011009802312730326925092550844403284948903259227190888890666531811353786101265161957207826994054458008181842676131059153069897109868659853853236360865425322553682277365651417094425445454438676308639493072933534101502064869967402520084583466617668344867798899322351446332310056572640759831873258548834376986280961800704304812578987902511850967410989468791162481437143329069888374760989209091145532345162704012516892661105007329492160095437036630868404699918017353259822814043752478916503281752471783393652283662642215073903780914418960371440018167667332092967668660131694559057568317840796218975705356197691605635822362761118275954615571671563380772078740372123338855263086166516874632350919891791352865708694926783517120592996769693386721111345757742202558659240087828748128478487143477158107565309429086045074099429317043004958915028148110192685962431886798913647416379995634067401865695393446800168135219913174325846053088471602539407811301785845862521525258661310704538277388149877787767675192042625417819306010037462426658644782787729013242027333086120490622517801641677362166459843205921277787736605987843528472790624138101826429159272041281133678512822403618608226526864612502740010741203696390680544304855105719481744725261544503454511444459495422694024544810255413297356382275316270541625079617480571118294492017999660013301795751891797702981104647932518360304216227054895166021449339562324413340859954110384531663920160025309172648645795013182337833764437018236326021144501686235740404133341805976821259992468219433542707610873511209826584569684545160502217135473652859338890567741753158355856354994770929674167804821704811284248913124385968288284131499550465071550279769935932581074766450106985713288635930600462538584026052366293285404635847040339864570128936401162626764728054816772773452132878034883223478915322995583850202754730066537037114081088340414052080055279865392610836390503848429733107458249974717013478290456492675709094205361407285093946535717847204512282461724180234888629945825516190636118046406310930465346556747175944799260621123896029956687469612991431238855531029520398033612127919847049219870331360457611328508765644574592524203467185611585854782275242896478242955940985166180087572825300156317100315526347388400222899929651180550858783662280773222764087795605049544431224113435994374981320372274796754453475993616179856207049344215469824033982309871232922873947098163875006231867356882629859221774443959399159723824016649890911506084183930684001248175177539405287088349031151546944434582349679726884469915375122952435512498032646999459849836451143367917548637440045281623700986706898809906374803639656581487442630350664813573147455928324897553646739093756211864367769980199831489412944749886414479049041311960843884528230044159152550303705478635796455620220918427923890273728457759079384045574086673440180264299036542372611724066180850386853599080252451530211912749986845583489636063315347946097795574236277463767900741721851183427296688467872600003255215844622998188271917046278014761443908966884690691870588055623419526843802132457561171188595724578496104367135640858021350076786229480130256371312605227290837740746032175577094150691336792522035065721995699818901957206325269925192345584291862190769481954544356928552182587937806872619467149018449996668013111596785758211276680800572409661632578493655307883657206951022486114351995951553230714428788384761363038381205921387773627278042494378637747749430348685146664605557148331712526480916881880027207542844055891969090784926084125123171870180112309382292167428846451961284160872642636143346852465569106455329153618463500292703404569222091176779978121764017971453434265446626980182593421460337338682570838503670706357045015766467700976172300673203232067107117955902929238020044681962952178000810642304127129922483116676231085817108955644677188189168498409040952296954942195905146223560111505762642428367150460679164769281519194574772272625134706492902315683365388516440146145395843349909494493152732735474120171631128716119538214625645262837701513200451795143848411674512935389681642937782256070762748303948246980508736736521538233886579351907169841242316194529876464387438723055891448479477247045740197357749845262754204973047462171431234640595645688477779054259199907321533524559396888358643239003081894218436535138175625300426620370432768890090537559590995570785082493057160790695383555422847553154604347764902602716981096640691538119363255864229787392947227704180623067263111576282384290374523348540073158214528598851221475207666598104527961847524307267196101445627912115064438116874733179810127882324909686067677204375956341036412849710470082826317291852591782601606001248493785096350765872104943678274796341301981895832142983433385791741661833864589270491363118308318410530807995925688738219712494026674760453400113310895607663957545770064796495484939537980090341229182606943108453731304654757830016560851823117066416240207501615978081653531515425214425977916550882497120111415688762883916113485864225272181581961495079311178278430046761743769667656917458687357879098238166583335664008606521334909237822928741898489276725202387349392260007717293983325441311956141762210331046367844133487404300407993180328305731359216634897199497478411870828118518753160332720798559810851829336244323448895220354861064630301164577481583094643719964421725760119296471986723920242111533780177823853108937390273864556261995683500508482744234484892423945280233014242839452687573030186465414100918478792370721692855827778848989614758160102879106032410589795736586319273797587539789525127234174792422534536529337284173411480500188671527210115610921467407999671939686514662371677719627043413136179948115760424299233965072115994998480184134473572801942123668688226636966590324774654696440267354812727169810311441465267495916738547104342485145100261762670000749183122048217226231764672426122792412093607121149778373785766932637410407018682279606078184803449857037714900063290522498850959928866175226972548152512003225140437868307377378537544567134864805894544327725673715876251733049396531008913304723551580103622808614972092731750364015136534714474984682121867210810577400262540330515011324738504565389069672422368925401647548950824401374583065682409705133898541701074004420523956842538925826773466122438140862160310731558041147151479443419930712989788829534038741132188896499349690722775364109350455530413804616182496940477730175077504708655550494081598103459046021014527726229455504313802007235700615504934107685062709991429160988513451933750645043055851699015230629596684004701162824836951884380711565260311364494806625074761716630602208806502856971077242272313965059301195948290746791589920322053739932732780834797601126318642406011570474690763803048035851753076270133555631977017410462738593025563395375535547724427111842334593185481081870048052940812694697663550366911702368475873996039625489657569455704121997365223420829412190698993042927910089210999412536307864856085936108946067086713094925950107687894903859155076248596249272870479841346954407419855630077705344679131153339593716785455396228016159588025369113460685353785923374826039208788497378589286342499367274283541774066982804855239681193166449105677493272171558722603694031733348915604940849713978402450410240782278140093547146135409308634647535414230899761474895529062475340534552346707086896503182818837858750375896414666943208605401380748127047687446015676602853964110674831946967130902958819162026007748233688832039486938512060541306026488560445069421131589269523609034306081902241412531922191452387450297831423174428500865085029533967854283628723237135942557047640821740576751338189074455551239599291498892762241986301001596632952793832427394075813032928729979410251604997338324647084321252504032146597549232479764890139524338085828354646535937244357469811006648324552086873353380125266078212889986054587676128654187273835435792257774624250124534823197159590684870198621621074373246121060283666159442633589393552268282563072177771929049935387522055010837888779569533738835279233560047111465913584409777376492268875881059998092572729410036891907547120778616778131766445584713215685926711947958963691536978994427360746488311432485159426771408390394663296365088989551077394191369714436386498885500702570114599222543213779779139201030891179460279340970141617763783305866933424210420102402813861593679036008516703030903855918975962524036339586574466891034051491531017337106838010191674310966644849125918604530030906032042596644874293539139710893093715447364387377406872405717481224405744273649618654521483791460328639398586383279044267466489473468723143092064429617226655640048887332627739512736039616309867258110387568274421347023021692765496649162073532714886962950567932750429504755932691157495302479605654361773479582726116569236394695900756301205446156340715538702872503278088669938300819536923104265731376112427905852419423615755845966889161580380178759660988382103789095334536309639209207561560141645127688266942444744103753877652590140611897966353000940006357182874603400460532914211875073477778430496751691197256057592788916738279172025324100045291575482517639715372837251748522278874429428968717780976543846195468686473172867909815379638334981738890744039224480727698706506018320904774148869444346312464849774588378540845847237150580744084742043790405898801170089995436274210732323993965131481752649227496254817385797724826601049631427741215745764579676107007907781134715866047945268538448588900192302468553828130572763085658493319925019181541194123377093877742759569899414642992630887104995904518843510969871213033789123365817211854550352524683106411318829777770495969724580201637319891304563781671445339827012425846857502255703394123760809247830500144059029300357199331505196431325943256624611761411913635466918851963470528620158565648532043781365589936661611117051231320339135457367973584539511923829899015550549795274870933280664333533388387859505260230637990570641274476737142415060730223427906793725709637189550847372369017271012327949052578479372680482781353913481798997320311143142466332063157226897755226066081954228561129143915591720399671929088613673588900923418387316629293676241508733962647738373524087105869012604966567489454965925999978235592484149020021708175004288092442282493330996037170175547573635007367937234348879973237169060089911053308738873181321909224322501074825524318465240324540206670016846379452151842756659835116764057371811375105012072692896143382367868780056965732963835988645113451799920303698603417130012432529844006573535664326264513018713306728553876937181605015804632316462439210208093630560688777155614444116908340866259961333369160371243022735337960347458568374137669304768825980295488145160038601376812028892369592722834415219548278439829942718453737736869082847143967915444731249173090097634615707998548209337712640409641396174849080572132196137569642018849616201071999024450836281209847388664626257416185433816955458282977103104680300611433305010469081780253443850917619435490881522755562772881776715865882812405336055021608221846893023498137201100933108929633765495747352712423974441449365235149689277484020288450467665666369776338478832622242745191803404112295476585604842073651259777637502754453587782232805032342831863110262265988179100948376714864372853742792054621106981147294905797527680482194476597674135504498993808342108950405584803273328723024182985243943280824381623806987513575795870690956917442904443138337099962227071056927664749529202213665285312162032531291107327951118678236571510110521673132830617010873838900020275823529984385471331760174637732729252899272770356569752237759888385010322132598727138989400126534889599430766819481513113998174502520426051890425585814348577926975854448209407768003298597152736821457819171138841397276665962502742752001313953413582014009127957634675871397527724352929846738799344471035512989660591650154716262446643209854761516469441982001676354912332162840120115921863081851130880357487477713554351029767573316249500396143932788213462137897641343322060720736824330358619262356288637240835225174237370414010316039435408822291653523976019161999201746260794745971253466995258543154489493058034914354679156767278314563606228034048949082540035961057834608789683899965221038447818870163475181580054677494491216992896114025938312853986359334879523965238455518586586314738432642409940588050476843603241311228241263679387647781431910226980194668579400784854620691814370586156683042432563726324541714264004650734195674427743529635807647476718174488377588047017823653926266543389056478166032382956690376677894079531988861678763420460768928250077281925971264350493703080790084655939407479122893803790477906924828777409443472040812021853750277150936762653577110574984821097678488023495215195632190404819221706559528356020320745474558652104229550024313978260836443989973744770148515853532651458534716558709464276073757858536548598369019567983073954426074337691600750305847229677110481580921006884508781922751611366014595489976416606593002823376495999812767479101518943969845398301888196650994953449991922068009728231700294489350224774910900132462931509593746460189285488476575202226592422916760908281392879559723740361194174822136336949900821914998264294499141339900691792212741788248019818123988550441499528255085971261520936797423744828103515303266433924971836353005928645775274658018472508382385706838048799643052321916173343273853474056860686321525899256283502570601535914320825867347768115617302393566760385631824378920442227405331212016530815626498023622713381940216397699610285904982303027984172329296784350868000510442698485674708328895431816687813382430081756598352058293973760064801767372028018661763930250963461574868948954531948116246761519727564020775420010517071769174194801222307567384231796341027396673850172688402419675795718543361801370434876953063828551544065775576649958118389189125453403288964986252194835593769267091982163868185616153914163846097777537971323447753511561385432550952455564705040866022717922518152178183362724900565741916220676071540448972524494822859281607490246561867113106247895509568137037931927792742515596269710445530362274168666428072868531722006781147657154096147071342167380136941676970131535743239771858694809979060144871889732432464114137870081611156206238320186640787550249404722239586707294781402270874646623728675612768209847286813737358495438063870759566966767343903645092713362655813800397642718223172310814831836502195677892712343014775666986077994106578050793051907804717266347083905952187021221753417185033089362550560143452408072872302646955530365376465538124823133091903217396711702971381535848180331872536326774157947954750640138671424232847406746938216497513495823779092884626920387172177494510735865424344888122865372127979056248562928219142645225313295630686025618519053607173141010720014460838970075129581935232918237647041643141267450487409278236135023020674139048213310904826498131768415204685582616895798468307768408465147344139239177325237040804241782434579853076476195547773390151891985808058269756412679304464468843386121422613701102998184991570088928970891781169496208148088170672818514187721401267999673159836026415493567512040720608689975124623164405481113004454858287661572437765212248752052117955931431721167126086260834369133086175484618767907621694185582097479524679558605125729871624567720781320592755870038272170031902303546730765406425946956527172176326914841396903800832131983973921687774858938199341098995677908417584986548342930742540813352192098418824954341168520611116963582735762509904546048999998013499121534846815685448081479124594239293699485709690021487807434103849890055507818242719606424760342180607053266624854192415819935388254100562185486660445797017040040146181059288515605345746357716239591919709755183280150765136808583487308985816443379984006145368064206343118630271930836410141558401044564003713015881007737795254190745143673831145541197021854969987504276935648650497995118384171986349317388302202710055199798244224724541220682949964048063405961728378866483519539966955569036025755998011245305536657481572760746511691444964795889771554036830121351330878681747107071528199334835183862702872257401763680587774680964494996553509173869543425390689450779868123828748590928300784513405238480410393713821595378046952504270055998783309330703061816651879751792766095191310409304914695549759033431788727935357725613212110745466553186564191564615919217537037231066324389928339629725070470216528813586772855773614373710120980936441334522667459273411823858885710997794638536908323598704982957505760288203397902048432692677427136556488734664235489764878688232086589350011690420406419679628709884699060598113218305562003639616047704332886142233387577038462948679034888947909853632674524762336428342287847230441444674466909988235020257532518496970767874945208656551444722213691883207673991405580199001613468299458005789228967772461417653852854004411478157826468971114708401651746202195745366519086695235537213978372634191689645941869600116363327127448736709036064713180703460468863411501309459938284381404793604433086086797417206750175872060232992280633983026220513563875908265155967430300206148470601372015137099607607536848106060029332700983168434129098463717519557583050086005413990877016462432439873986839156713369863150735317500204606804583364390624140767801922435945363054071889706949205285561901981730593288640720729298756968843848309415920687852020616619856439682057234297387954880629524711898042791377340763532719028918322305774596433458117996451673990766401479746853209257487031114387975896068626576997342900667693306858275565456404278310476348816164132978200810684925781566492103756281656588374163716122903211969145688551303651957176252185424597998097557065094766302073902192710778431489021044561433277571061528378649973939940833320580517369758486050246519424503216631572580511609372005377985043479642538528972393459750030443371565965850523354338549012101468657335582621901010082005849064960357819794535130641481361878847714071895244148938387274633441938050851146854293706109856283274700312416654868795419350437037907749126184230888020633318235137216596234399396670574383847114157007244371222294480773627041441726004008308218647047028638035694037229936362069721512101327981092604082528386375544917497536327456091832290629427044199888233280650689155288508942166712607517851981962517112775817293532584891082722421315016405409684493843098172654016021588852067909532165717176116911499835579190120778979585373993356126877687452669616765985743407045735596295367721962497683976718339332394821500416369663196050024672479137692834493847998160047760134481262979973049303623910062171047461432339461166617564474915990766924089800010219073591224889368095179523606405285605755529625339458710475786805938799616889465135749817999053664275750437465923489618267519140546066203435107692667752778941554947313078191086874953874041627404380282282985223566112762109934472234151214176922417928766789893951334074237070329659681063726742748490327066781283487811238905131817957244063589760053867226303721125733827389271963264967777281511849546341130465526095320731826689620558548655139047824938757527285101576394432799173901542142419329671297111183448925279342711156891928199517553115992130220603285834596509615851440189773782029157073618866566804205057732240351517205129566941718233717777419910478583182198668546529967518591967834557623525676812661079989172704513209121186948739692865630438969805629639875978309245902047136127815584055966564495061895064667118159628816541562039109191027761994827063585469016692454520662853417864608632871232455623825755880519652263409619763542880872352459806729975595165831559517261008353765395738250007959032328311670432836062727758663202865817568844462752814220081296709280847085833241162454779529555058308616329407873073821943544644001773904442298226268462814877602038050231208688870352181969638818510866774280638708868735307091448298148127318778570781932550752902099847592744909288209316124528629505324857271328302298272419998775892934509365925979558628829774738568301537322837406683131972552031577962663937666589686057550000147529381178261919667197210905159602030069502151722993651554092634725774865997805140487979378856147430795640010568850329008850333591700863664504635715759143972133957798855783717856463232418524409752919517142974220961909270549750107627366003031846198073747335362456990357484262956387577314736765295208412248478394519395815890508263241391984480789465454824435170574020848593529059888479123756762562017810541363599006601191599013534921331532178337979997301558695680465490542826613360236404304601110145263912611479351578027337446467813631097732988757288902329326759462907575053365182191174240136635602670522112632401482559351914790671620310857052121822795728385787929779464397462560637913332032425217346215484986533187282170349231521455663337559331317334935639625964530199205305977146291524354207704967617039754823399765181021241677984400114394738162235496714719039932051970312619283078713114115346692409217489288016470771732947573592556717789589015259300120819112279162889108789241130747092074293991911726653412862625591432390558045074232384975773419300726597919175838024315949498105037908524645253406530174225723897933123202206001343580423121606499324690997144750286761416912003999718854706640549917371540362316511872727776886817444711474887508628289024896672059752706144109210891686817554142783143044674910189619472565159557932958845988348961569381460728226331909820721349724610574218349895265906165129684449361916646933796610080049825231943821460551443544344572689755720493174548537267990965040724562670412237666269363440690000331869371310040836313932325314015380039232795761720355408035496168964358722485440736490206571805364885719489732589198105900329511851563845640553233264884648064364487805815064662049360370431606732416461498250985054745420280321474239397095403825709633841013875733657248582519028826641979650023589133682486486830908725697074053279547089627090063513484682395763390061738438301633531816417791594937753731552434277140662463494394330140723473485665098068592838980950819566825095134474879358394293796735676708981258867699038211935969823097566719011755743882899585442909489623851233182957792409057254383774147780926616507030713645816315731130057859313536702958231591904048131454847922349126852399656333579954681018924668544752097071872083761461322481694976394771608809105471327169347545446345882398675655653742288733945938227997544046423641301165903700459701526042098021667370830963427114348562872582686584929023203728456030151784311920773007797488408258038182126064148088652637739728770083899701653266816644718889602739093969977852987713200194353031154439362633760247783913157478168257707355473938791145449572901265748166245888890338638269177185493182692937334853582280811375410971652313859693784494236299051377292401667915721861790931389577454425672667344270055177361455128107319879654455731139975852032545442522007637399299674811774836629976851588195746194303600087495983972618671615108058627435144602899770050826325473294585550112383201250198869729303355334262564156527437712736469965547310944865524533847975479127350095366346609740706870068905441105298066181008522881919930929624591432615067539111380961119051615738810115005374097624667028486474002187971501682742356612310162690408498880073669658781501296839700128367106409482054875594580244213608547264686503892306271038698081909032757922568838722887288222194887946133501606634599352661691086605541128766005613494944080286627055389441831375058399393123433713313535490974405693827864204690840885772745243223725818295128420938402322246232483987236170269612986627347257521362488320551083590803340211572533192344691618220235918755177306833707588316245581358020520979724246368837094503356498249070277965260579028669360323304563638784338177956380525818864203284516235110291172179174662303123458481794081559474997209865987427728595363681877635662381234372832918881147821231841208730705623438308835535709379947419604404537675814193420717260541984142593473374715715574821473991231148172817408504001085253169355932923945194615967079236518249010812525422611371049974918116930220847919310484713064682603035543743403104371149539124628780843012963437026243126767464445778005833424941942402893537755937881403945229889378332035055443968416233425018593044481272027842801259699412684206323548966410868804248634859286877158909911522400606630548883535497717252056428877983849030214537589311959749593342981265080461524899198616323202585740874666383933268511384946180619874640978327669748158689531858046344453633126701722676684311968714013668444194680609675486167436610780164499620629662309290602601903198009653796024560521395714667403004551434638588817833474479456071089961922476814202476177263645251836818921681189600698391513675616735397722439709034593012136537783189162681503688247442397717248582570468210012290301768187983421125003771249842142169771920371712289755714614458382870797904915138531648964506315838940720367719823448181041915925589819745889738932546528952184122138679385720989984819215058293639223703909046233149924195433590176604476702545365017577444257016280402518149568727565206170791808812135436923123773977281868930468891333561903466374019019724243118557738024660376999473515462924841974106647273420376600947622994490683574166769054670790385676000314514442582922586847356650641748146571353618984223371972952829567895655622879230235949227120939391753313188654872329305045570326504028468860368790829622371474879830567778153026262824210019067851984892678179060043981960501201404238487170054971897927795200879213072572743636584216382156934055866512996808650010549600851925570240564700178037264967865935303326513553990420066138170275279651342711071877217648977179359025218354545654208853702508222285754934994896886281896235934612136140689596637541515067947436400323824013738315109794440711255675031039176399951515711429090274667953309361455615381034884952802625571135212661327200010881535013650785391844406819067528277208909745121019531670901426364493134724131033880636556153308361279520843165240597189951402942192919873349996262902736037117153388460357345070468553680264883614479125724735307936289774147315053980913625404289987079550502480249840269370386261980548223036807873305812168982567887811669157107851125559494157292682101455653201488016128420581792579936017632148897245909176450314878976815037771958655008581507238668561129878113294139972091757203056770087404385201192567372826712560956664620447095542453509881697362315875511453772620872166449935864558045116688876582957806081171715992399584952632716203267014217409486814866107732852441604306814687342112797215328932767656213094663792680736633969378547380157725474539483171142236607971275231291798683533854362173945371624873525597093494616144916698391616244574575182785285346181493260371963559517331532102885435971013783523633320044036620167380398419392810154302391382114478218346733689613871571695109031999676443542130943947116547689096139625299062007499525335271601525646812206701520622989287763549449626915378571458378328308220789459091248562647370621674988939244672306064224249115136996854333340279029512773073063052999732401227779660491427023407180217361783651540883085917351687665535001566821942909119163181932697432847783869732372012160464908015223813703216686974649464264553794953472379814784758524836654293477599007343228227984250460175543384711019133165686806301167270789861141165366656055356882221339826875449914914505161530109318457290755823330148739618928617748438704820577543806076024809928910060495696216455633344150280637268681476291403722755333942083944167203425297819413406338946508607597423034084594464143130437236284301074231145375926571529697683910613358102617461818491140547035502396791614514350099210555906767907283348498836751722668538874908698621659062102693000577246491724419717486373721940399298774049849760058595393610085805658403600344167297801193547920437505115151749304718183115790561708259764053609073942943287100365195824443279648971858627695456873083036037222305168333119497238484466127848496799316484461284668200853306841224798345181043524260071963126382163242204110694040296623140801178408924329166543023315098066425132546997618140512425302858857228292096831222953624663589692101926881994199655438825111646960310175627770969908950061576092493879773545045532546846932208901218030972182733067736582253271720151112476029395342247929161348038997887683906105148077134333131071033792950487990137265533837297156822935502439877507660828452756201419126190516111093386809563747151811918717418955521496436786687403950985058008445143861393300797361913799085074961224605265085419536182877628104437411494798546042266710627703181118465108989240705913932940091435610453252971153547660088089344946698828923817159612121113243844111426601857854321773020593036219581643980451204885963992016101978015321552388487649202135318782639584189095879106317375852848624492130836703871451184356222991240938840236580897302231065306822252910304452556394178132705185182930684180434532102608667742653719309024391994522446900298899220496906118816621415273800603120799799628240373426989734523480355304618273043947198927771146292126663625474514296792357279332707915087976959837267541269863065874986966130754662561543766815590622292127173582315304546657874175539878767558145168666666839409603728929568339935760181937392031922830227627602231303751971360153157291798636502135611505138337202214805028449931709897450566753404486390566901969164259687256207563123545687370403366923676239121715615642860178923187606953205237044703445626262155853969386259887552439454387403057241346535480941935654920227196117475544978986430384447114178739940256837065523683174045482313155869104640349017144052385633250575330638153887437480175946941561327946179435632813848270416100184941602029554550576772902732349848125650101638865320078395954291839333625085980046014452334633426543222888524375559732379369950601655518698126625808066809089568908596385085206950643377093289552950003290156387592429646609311423469959943620798549660925943176372769008614080676460761654827175804783155728708500482891949946869487693235122547634076474427428904038957855294962486815044691348675068732348771069325625054222957216604110042186830628454326906768222724602895327167393452740082816595363760766555200419590320317050617609082911802154821677265381654364108838687798183889125603488216949549011576898192510115258898243344351053447185390639920138078839305131442881440761194516962909101794788312718932321039961618693571174198451720201167570251606462257679334610755297005912652689409882570470272186777385233740183533694929730045618135207554290656166275917897043733120990873475143087093938006680296245223022685598324435789565633321117265180789791752452842884731061284988086476961406247815746144442464644183445792974924562066814249678226606152526635280605065662566940117338362546854650033332585639650035919866355905784842736039969229374227765484705885321429397539819631760413834245848022623646771073855464931871441097456789207112842427009305789446347937356599647795560708248586265993025744944054207286531076769205842361778482060140856577806206728450245694893081659883710035790805741726166345209808438437687605547609416300666393306968702503664854417780832791086426273810019218099708341460034520797945232454739309673231601530628099038670531278239300985882078070701569169994277111534965982859106913448443692064375240935402792896991906942771494542232115877474762919373598679071587310023666580672817829035424882282071442562327786341088580030902106667010371032458960851310287922742513390887400246864334495597805515957282409224850939129608703330410723497638069073886055355527898079739585460327697000021086617166898963043656766597246949433774655048504407907718122792318658062533702641878630676180681664075870162973040937825066096004031042641807132693920983642012228119646072300276850432059063595055367703681581487403015451314793630858384158195106033678787914179224913563152019279370223066905242861542761869983824268085874415186537889135926033937494008283759131563977072871295656987134261421088635140278163635060861503449550283765764824623950027174374603415699605890410755006689796411606849541883576907624697078388261350321195808027975715579657310636582493549777264041212911110455284480572820827973280450297563461604978830996250643201468290824731274459481648360687013459246730299168448257562384855146997007248040986338821723700745128036614974636929390482089360137061295212488321328696605170806991246733907296518628451256415332540010223515515074874967873879181166999449933483666530956226751221929645290578487653352184529988286072179483837609639619260926060563749253962481768959489301280682198902121517506774332137207412455592792753354298284990475569091483131907221868548501675541588505719580800364807052688980585991701749392565263165848718503188100622501202137797898535067492387169098072146830295215194304021751338544435146502205209738777411683953013418498355445643218002025895231287921412955129529092396975449643364072282015217980814398486445061378180240694623074692055858506491918556663882718204291766092550943399983076304336365337438093628461956839798017651423162021813550468241641248275439810199143084079335585353722737926678376297538098599458087396988020613534185424035777043529703176471305315611567343214964509513159861123760285596147683221298042719474039798221580943499842379989864012263697414322287332826421262511746732459740953404394978632680265592134664319055550490881519308126647684931313771432008099665938112835461060871730931411147858358150985404420305254109006625015411037129820853997406882042432541996409430003514558799816529629465597828617500444163930603181745968049804849755969492624360376005593009558054723318661182853151201852666383811754666537348698871451053662804455715530179934534390984167759016105495913711456792321620614043824848644021114689037115081461648724163996879656109678146912393252351496174330625673605981679631745441243549592521237832834709910218098963094919850644980205382897214626722147547753122294197650902068842295486018473195391901948386213543989788363773905980413257518040551244646025181259247898848152150071756951696456960161857098336435700986700377187933885404544783077002145656126013754987040115016986440088918166563052079025057703404280914918900786494442140695458132832167033862215648887361037252747010947421774146789033971152136311523998376824438210335774862142740078462828597186341905158756818769528734515276182846275932150395434400100034402429323849549881562564414809459444143796266555337146417924355450466631664799779994804757327451360490514771630017779798430631439074746160836920095968370277811914384369014611059389418321296202877612087944338538188516926701660832311722985674560303101775733438196544998361594019691287294447990781904226964170368676552578672268111796996358559684743847993414865011531023003744215037949220730318401361963014022951426039412383294023266137876882646198146920946791724226210108171820475846686480617411991051273917647173966600553909844564598867581869142899134776860791142911624992552001179055309378134838229565721826773817701544202760327054896171863168306761521211665639800473334633942766852669814306520849456157630696784824355012044117984159790085012816618641990190899294445152827520885804011138587180024875111064455666525299960880625508271901011352765562472071758116454721578179498667884428835599198066337242915819870268455632402050182577984733154257871503110714625562873658490392341069196103981918572418140094138381374453983668800390980945950885960903322465931588916166841264438431541028739702828291133185168700157672411965320194285864879366333585240291264292467191434150666174601879448605772589087266577284335282682411643885923328171429195381882511638531707854083546464020810509993103924768325133767295660799387379917199735773672664489971326293506596806676290011717524581846013793256733784824772721905855913136734112658207110079907354011296484003351891134828201301976129302451718449233490125300196219229199011225853022275874079364257298709319498892728881646188265484015025314505727827717671322998463412167558966959811102790447779780631738296989908625557163520060060194316758219132764901651321917962175209684791314835629904555154543487155139970971806475681557979820327583224148297735921296706459135995968355507932670440859156264132326384812044312982859308177508526981121948039925789809002659990467030321420189576702263885776569862912058238342158618834897179523273974739194348391340114150291736152027412855635456931177526480355782617392689609537289041791892743512792776812948959614787312185808874911600162604981342270709970647196558134866077463953121449438664965033227402900349242821794277871615791355636588772518112660530333230670668427523262792699712348957155952310220293957823646274190149440993539990648806426094112736070642741498332924474121616387644883505756464335653357018584888477413132850778520794425208530400135029020206145703818561727317334111485024851730370330446423359492554962815968424448234321918913843432476881207635512317080711952594304088595482378386880726606130805210462532052286634811858873062491434338203866977862355778046952464072361114213249985267582220828248235476561965639158393023056856444333711925096201724459621211402525780050979802411937226829122563422440680176395948531236692855245875783323990668958464484936791559024742149095364866942548604822534569680148461974440253766685054718706080243594010410060009046361631332719614490126823743921386113943817467417893272400731093261963613022217812008689945246219251906779941625553167821816229465086437418442032830045266682384107638932221780207665963114121999369884507874640598474921941286986597871848295658885143499841042423593850528745169594453505581153814476424026513838150936227734064586932037338510805046717114010058229707384507145808779344258206916372842640352689637575857387282034658657366275926972810397797620929962210440420230101674628159486455812592492815816610988892425637592806766617930695986124268068827279339695551282101133079357407084273026600338596744834628944680034993509278850521696229980379241418685913962904031580307553285664665847018551811021431318149902815214217292297270849307159116317140687388639323059150624928660101768725937733031774918256571231851018115099158499334700223060048250498726550010165493593909384531437329447992644548887761164238542853650150554581419023594579680979477388011755689795972675440089118667814128000935028158860330391650601422277592291025768211809920984847046324982770383957072682075136092361609816386138965860218333484544585902792915388466506075341544074286896359613514140813509379199727913840405581724889051210848652834889971497987839182003982070619704916376397378328066674248373852495653043403190532240260092186394592521500649898323262721642936762187021304359900984033900895496747593450388201242332411195416427126434342654701345804918507397078025154802000427933569142405808460243685461561077052836383380669084235018186881672015854929232935683897269892016260947729351282516613106931220987124778839337448169507482125035990165082526634297663923400989421336673356782326583679003189328239730319472350902570324824720323976036038908852818909222243965745652876451199659218963857449744604851864508683973369567469723523665794642478996644681494753831603248750807003626787408234096166995931566667418964203898646407032396240735340323132543687328387274208219297426754545670372026270089086834075586785565119852651548780313856711555572719600754696343535398191798864267734388939469362420592114648138894053177209109091741603428793357135629590679545171554813957301058110497839419901038437204432843922593546988308568411969439125142661930867148780830118721411041303368439508032952029264605982427789102532758350579645989845423704189810506438372097529105564877689648143176094804754350273422082331652071224433099789183730408622388771831768331702819987612184782636768249968981710988384957099525851205074001069331258879186745608178105517505939314716879776129049371422466788578570906612138391711665499501334062628549824215495397672307201240025173520542352209438037786144538350421865597315388648447172228102247938925498006337268510384159397318734392896157820521846849926795670151428453298003063918799744370827601800393057197735114011636503121997706722259842204689259645574127539429289125917208946237349709352171968631633026933414821153343075449030134340149657111582496894427498965414004312877265184391178207057670206729895968877152401110174237734436180650083386296189056530128309427436009446821877998980230087669213210378058051523091455396907778150921200988519088446188179497994934817851667071167009258461263593415129128253972895365652119112613588809553683381321276373926220483531330972677115491875225523135678435798658612064178131116670304923265049445119298446095696116471333116430878978873926515780902873770162640443298638690532682048859902826307760859724165955137846977679980379528848373068733533207230063072244582490837267852500659046281723357776043227102148584763733675135735128069131917203011633169270029366232834536126329416820670840513283680349940564500843259197293891359701916706451897094804541405091803892651121363639945580526610834018893297589939583336847140463888109346189895551321735290215720901250893159789273021089759790782225899383906616542848178254179416368902116971925251985175137263317747950335225976620476767057799069846544834725885756291191894045158766205016937754872015916408267203349194192982647405062102167951533641250832113155177935510134563255558655086939300321040230961954147677128036320550366370531528183891830273853402744250656813429663270323618198150527226162222103721007059652919814345998036332038767268663670214326659091339649742881148427893209664624332901293380300528370464052097147169592913744086230717033816113088931232150432666262985316007576876551726439837519396636321547175128970782650380639763400933629047977425664217915514063467874540055658328216661802863081631123864788220241328583291340460870121997370579521359024860503435305502351073681083815690579143769299693760212502579304573895878007312760234172449101595760258604661523074652414406855576009467666405223332074345733677347520643093004446540492714311934493327786437837817143846055532789519784496161884952668579261204587860611601372001949414316706015038294078224231289407038437599032392478228239168564700471077520055310465086731042683917459630337146668251828292745275390326889873532700549959135872877289286378533907554248435423870706654320606275148461475846271369986224733977799388598038052239003013185225928900189113916022700191259900199647196443657806848523223953365772019120699420734823537710197720382227546975645387528396944534051462569927097198249596497449167789367167111148015662000094065509564416969535304771372077507777149423041432993405670031228763546677468770396152202081800220790862975454650224416071723563930562276793791205341360096413018261587152000058300421528789959096617050628831690136226471402377979177072300967379114630238840383637379951194430372516359616653272890372598216193248518078137471482955766140079586045832623161801772194120372935197844867225238020896811670880543874874392740002095701635846705633089229782292980961074682270013964811391276915876809182538262407768118619746670183162054268142210081859654736366592668099947122992251020125155830074296523650962205175144291833490977581271075356852413014371855169282162882098918972129448509788109671043950781525421556824591197882878379446430079346474863749014482810145184310129687044990720231580474825133880029940325929460091295042106145369824199751130998762751448351704969244327165503953847093845709026278793745990422165791366820332584750217819435220398866997986984201155083703873632617260781845275934891672585464197586352332498482662479073330948736189055871539777238949784703059145276187986568034154049593238148988753200013725719657518400139949433097653740663389762979827908464815030578027622087730174591978804806030085587778165730621314841481285079509960667053572337157399996766956636819983613369432787676673204443026280724747593632687749300210416402847835487360869875176131857535556248380050605214930561045278685756793284459083092314668425203972317731114228637168703993155246418302145734905483147387586621169093000431681547617144919253175550508850718458630174239517763690371257263343568320587428612281108270335327356024688813050269930000228753595699101858467600939815607356346609848401130625840254127414658587893683760361275148313032671166410033019811099897006121268105302966605138647642695823656530434732261412579620410305822713028035810519461760912513009918138890190575692622489186123560337698376590647095690040963283743477531603996596956995979820128164865398097198025455103345927072422810740390728011999707332546984652668804859231531842605877181879623387578327028051938831599737676140343034375329481185464783476247988402380930307795874404952692503921975088100179612894296305728954923283170637148446669009199667869574378924657129500519844938901469829208635352479914036505786536695482427371620572992154202367294206116154859684446073682823198429907710622130379499101846797498492281898793402319763382415346273881217940536527127202633390557493198994574327083996156707811075574029703936469635197317572094595045449687452846432339734718801012333924272352252992039067866324166511116784313350993475789177383452339939676091387663816935793229260831709306021848101258260877583363275928622181697489386552725938163925158788470675959313281809724124297543893557027004630299915568598718299986433757860371588209512310274167003741006676399444778754386383344461695735015185495048990799919935525175785669201892324068172152891710579179538233634941999856563091219243704045707696782456622972915535990736243578931807765434321103090399254001941281609423101776134564279821863688668469550634330949838050105513193308316564147604468078870892928185968426996969728414023868992148961208023321919544251810408445481407912577752105803243122039936316297785938840233795117275661234851469154976596020829913340314857543509493853838603542139701303203681098882158935466112032386750671355680258037776266966146113308406210097186978678013832639924506744740304075188296428438990920941780068204615281878599191980294700047931259018370858463712238934751125352713016586000331830345763718194427935249230852078028187440927233637676369399158842730009409828276904521128491087728236102355676994372077246723911691606824358204526616925832387405992607189246509212153936570379638260103928261818686710890355310266588221212970833583860807559721433472422445484464163626142051498787037973810701688145242585191306885159289148147585466890952917740301441895364986397074460248643325315284181977736810178001077312209057808545696756288606349329991707328061585989258224578996726346251738178533568326279066595128211432549192768896494212724607998245446204219559204867556144106357696390545033052435878868869821304213437003864105401062586293458948545287756772029772975656462702162916298799085912701131098631855254158814568030773215948628301523970597951856406859934262563896908788588329316121884019017740464491731156674924489040296698663535961396014870439366014303736909279604432816370872747221121267445428135577598357094206205349905076842691026993686912059897410112956470067404325220049197946710230244220641144930759468295521354426986773789847017640250806122519884567159976755277662266544330275023191912245623114407335636696667683098529181899939670649767714446287726685049104096855266362260142946952045004123603030320861829175193693515676347181177256770910661686450622249553362791731676309131013672802542210241189404293100726745585427096644154469979433489967445831831069332032528695439458467928356167194435893118792702670387143967779112892463089803328106040735507019496695721639599280260941962348145457863412309483931198752976963555151721424291876923023267274053380175321980933489135058538707433997912171017579084173248672812347566099672158715641674383960378497250740268777515364641142974330278166268402669749275981297621578283936428170539622015515227949708291871367950608055774071985111277534594162222207428227442895680559630206473403106473161205959987333957540307364831876308567862970273814543695252292233279300966387909794451362353363946408942539168876277024878792800965477965212666072146875263069915603447003034195475044718814605888156869710986614566628337892772828323038049626458861117737301680979145155924565574593419450173693713435172932143654376235573875562073469964494989758353402691169193482829784119332273142593701145282773972624395140160992664968327255174585678933296571455608085332965384929723851623126900756447028643738290753791392997234034260043706884396741487348218733364772003829615863693215761595655960725136320614601628331205504944956249782097790627056633665510019645530077556655798440263606874884178221820057708378858261014731814422411808869352907704079129573764478448065102546140346779870807703388481303755736887838751445608195479783734224985802077723651294823379690343783957397160499654083053276163372422291096934739733863819866837581818477301783972870793794374847040212478730873281288092196491417196174098598531911153457956137839612682947520483120107391106289019167231967540015468016439281411339230575520286208523904849222577477530690560398472254457993999338097268683578511559746946812182979540548614313993692263379925390286173519970940840232622367659185515965073987775183810173098774330054043719760475192231409158745929290687222996612022559537114870245920125337142202818395591113300944245154541043817704758035843454145778297886570490660269130381028972180359716043141376692530443234921133461979725382172272119770489936178076268468080698032012720310278328087013486161426067603483699542484416670611885067550440233324452361765338334085380014882591549469421917442914555924332542602739649875970690923685021266880265536362438203669334828089723569559488659900316492702495427155945494155238816140956204944935186902465465724161900787829663392522479541769194604352517105892215468859509452264943661016107624918254239817450519693002761392726259356306677597823817158270089599641855970662770612104286771443727429698276073102039437374612381213692394858227190605943877128422663203420829541312462949579613218771232070997741541455412565563252160067371694318507773983359565427987277032716459745199976314103524140961437835726717497771869228151739092089726690181010012847435099658276775585168408332437196756457136779538147694319151993309166867612245603350478146021502577657402429876702717545956794696924892931581184441560384372084656847612347071404113503134340717101184438083793888104805638349309215967467743335219107698193692385465606910967144981162957770439221351176305260997141365149971498603246593124442505704289598360193316752798904881678415657814174153073487383286223356208082176120637627575256985101005571859467012475923559394065920270676884323861725012157607195837726922253381851712426088905829174991279988139130781485956754455929521873592513418261647866584588947468850799241678120357883733091010003197994243860688238652010684734092085180965259023815681005155882945789325955209753308849157928105254774508757929707716455968680243081012290195276519057942290488067885366896625596047480060005542580465480000501253699485949793831452060225009641245890642511154933546823043417025769861610872446401545281248489609420255477428869208372908065764784446495865556035426777475923114748123604236784955455414408155592178654476601596716863567144084385862074353089144542378385405218623385327085593776078765003249713860332580977417785097877209714815775949541667749544291712493168149961417248446676504367347357601680367193009886742963448709020602172709073601649851559944282478435525933275474522318235682408407938528747417352158530604570541676754207871022801432153747596372239372268211157782405876432317700712794670671010250251955977738701225400738860340267798962928072074949923285984754288859242365507089127122710070084732909757892335104254406284879001116863450756692837152823002755656460353195660707333508411911651643058328490197642591903185161954060287799559190886761306806913705466115247680518086007419793313264468209153996746232609816429268599737811902397201995007155626977431619142175631699328863909505273949695331783083727422640483194447575882772691349116781053112841322791448162064147536064527362749503582619085691138112585845551387257184880814816049923097494686157341770323618314977531452901992459482227692664235795946242954973564136980080911617570048881923640773628938451050160922506835761907083113340435015240654983539918243523520731819205777362178045283259094143519482479298118509835487251984562238863480381846193573568446101707132933101221906298678248822200291852672645182540959508911398763071792520117480894151807740244944805838445437924880774010010243708952931920769208072724371778954133498636312733728920810774885716024467228612516332094520342748007908502467104573503943474393952491907331575317114513002335028188754569557231029727569921675591704404822217880096456857736134592993104172880232971560575356416874991447767909051422801698353715061523654339833948697235185138869191862621781614663597332397565496197378066853393831225955749067482208259232301429990757875358719802774852472815177740680833023614395315409431405819929626040490486181437969313739627761909099220486658504606014001802238778453732221313867585334406292865675287308842869029412723865495240152623554581023237024483217662107201911822690188704836378686360167929218150164252019667497032532112189741577253926481626348999757745928428152974789180564496819378590044233967157218632076187022549660818405596364240737563735571191145473896280358674455183236224376971020451050236958640187620964590820834260749599181641684631491186667039924925434463629414906884914794855079235260776051559022164450346955174805256819961833825865824210559441155726358630455705351904658980494029792159485185407452513093087996506138346530338888136280365539737024113493638174635796980314194604746450389168208271796123398383137257830646179936189318784930956883440336410448342509823383742678286064700694288245260780291971833754413456829375124382028523171524173656683646695086685726256977366892600117285268091302378185945190409730592818733952854930416244907885307664152211907742600903892362845374761528029281193275609169181810719191315066759321587670297563370222198249186325726757545518499149412672996168366267743419290563596499628231387041070037231160836701808111707857747501919374890540572003211686533778851555457865401262545923822280167556298706041190286828557095979710380214090193315973834155407008751206525010111688973351088607591847461893302110307624794790513398787545001760100408600410877941660799469395839783945327014790090441873516200519351430747888509311089388418201932019325807089279468553391689237679542324418107375327055784834447589415446547929933695861830466473976961666219453003826101306318066639287268663891521852018747093460138266956557566007604832896506163221544993365421421185438904587514106885217756424301271725186289547925619991154149809604564976954173507392675395202399945317383483777697448923053213230948137078317012675514004986847645307297840760668477548505194334514550974190525286017218308720786460556638586984794760623801393766306993509171893835941111843712572075742218351748078584225187554060047075456122917725197510918400048507837277422190941010637287068561581889349975937362295226631814070076260687257178319791768639146448327232236915061745711388385607037439659305452599298682553688873923099203609834203230893966082634625318517124858436849231173204680042094275344016988795385520280726686018931466278372597000501306884388449047573343585886217371116375053060513764168990243561824666026313217293236981120689709192584257898820678595143263044290774069355566574253999644479891314524396714009110944859446693777500315961105729850469414751127817618937745834530130059531617698615059250562441597375774216708137820022992157843079397768181174332760269977012146963354978034640431335352547758124108197684183942158639103113254842808980274231568877008967781991400351513041542199812665026093193793729902345015336796781547411255540249501740015636929514497794408670862419852569612734318754710381165559566697979072577283420996448325014556767338717501117146284204739748968191294038947706629622360657555689978512519388019253775020972181461640067241055507694224712477097737246202066301930064357651048822389927677366500589983002211257677426368967912150762217777967450484502401462490910176759896432252831083933310347700905832174392983997733404232673092487987418030710905490992023430687474446754031436443553766633233795934013318400033888913694568301974028645384947749180156863619995610322855600626164033170894301020954959302142920306645160907811310510816763150495743971842173600563822577954746059154031503933668028390816969319931739456527549339247120238680999920596879244955456538060498949996728563687944479445805164870522196148671129332779845586015548564501356644465524720448118948648983730660999310816343242366746718275036022589360643273528886417938768467200978070364980009370848030999515062475119881106586023892996925962678502377147145358390861966526176026753054109904722240224245208806778347117161206533026497743794362596536178263947536179018985455686899334088680571901695903464593085326468667518735981927454228494613894286482500268852384913486063589362014696587114931068919646193168118325826454122046232811509884946337254723980632218362535783215343139142369017102510722277548732895804887793669740268032514861551312122475015615219558996835022288980609597961596118902627889529787194758988582672241905851565863487960429595822839844233700778723732465564891680110892712651567259964454421658625196714672776844662912691956238369577744215180156007267459110882588267464431821427218201073564103406749206519788743668579289566465977690214604406866092652586893569204491607236083939070751127281944749600722522892139699902233812504715604651136624241160172651092993656842836048620063663911858210937091276202041369346479325811418065948368035681312662152114882663982910063668070589465274186943464175566973867332696916958987644791680346076437650754183894743458431786369894990293018567404281446926523951691643287468699817033228275723604858268628768689088369287204590954990118438651459846872566937514354392101111774592070117512582506006951745152403040394402441628378425122533057510842802197471328690539082363243552690435529776337035434747921554497941912005957488075754050330664526423725681335811080992740124120600740387686941661767238411579044062111953035796819351862404038353074603212638792316066947114929603533771707053279171982059281231743316562620491932433390578110190116455123042603540474996384177484186590857013515494770323195169945374145511647721492308033563968953772395432404107270279668078265116431632170373065508262683468146175783962621199844034466886236854488793379069292465713467359886449273651295559936160572581267003240901993146591488458649547798052665921566725796462971967580750131106487283210686830846284725859361530116309027204471418339845168424017625611864115285975517220715340944445487039490864842906292786228389449015121657094839594664202056673377054014458241247972879353177421228700720977864924607127072699213194628630100609360692035076765787530250739798871928723445492467889341863498911567678485927325770270559659599870417774110182103952507719102709615295271482129280726110053301781122895778666720615014851604274765006959119732431130959789877432396661319701217132403991935566337098293946512759424978988674042643242562091498592523998437967682755569247521027758771143243064991030818543129654496512442314707403240451047497118859498053631439176338672930549301323167964414896190087784070890649762965249133728902468998219485456827435065516017580939821961869197543230050249411883221727395835580655143001974779874126067548773971776130210160791775128903728012924497117974794615951705009132736927349692099777385625804084670212777005247201002301960968310299603015035018136283400228524945137691367473336874020992922140333986299119101867395451618022618216788183288350067931922006166360139019590022242608092792038980920437071401719762876229091770579376810986151318929904647308734530778372519865129710967329036138681787901201817714951654977109732010244590430344270928617794382953470781639821553289413098974499692490676416111722726465222828773304398551982992877339714213264828457709741517390081830135815226817651242750685220258260991026032796327801719037592219327150360020599269341526952574269674420679274760954632863738149370238838974346659527830010426445954700974467085608378583853007960649147188803260331433872720592801188273404554157111388097220815722106884957055282045079371038378135091039831542543259766118992679501901814661370909005317086516018926883076832294074765473655375744777401965983456893445308528053779139874244297785070294532702155479268577375409847993988678568216031298566467633300761851890620642913083652832128806736619676727485931926587142137402297608356833618060119428711620037757952259505457147991366239362676371990562121513989033155443921981657106302011038028480302842404760968290342769158857918439292310286348885321563150182498478140867408304740570947228426920471421803211617816887680498299466634168868281304906744805904567118002972601344842169504365381038978580957558680678659204525847699027314767076490901593764443653837162500389801296384152674317915612008301110564389300845186134155456764876947222234851470805509287128369367949705941254152421058447442917771852125847824584888730733221625792298291469661231162826010562548010358830851304332124399477744946396700648477940745652157529157291895722670712112956471606749966432315802422655337577796808278069806633456053879940158844236066885334436805789380418063997096882934447023138211910539067409295081231775814292119846161036760012419709330425430107545043910295299555930924231285494487511203084328417766207701349971666433073719959044253188346336099465615978959521119496456863531665736717180236068751690175273431402939750675189172674501688259630576098931363928018334889423861719122340600293857236313082876826718115765732079848712951909532340257328382394756866317215399443501630235115259649543524034184553246344792649686729659900088035699490977890809144864851169547202688402633812253362754126463972624171172650109493259364776391192297702369111507407864869319910295052714255902387481120502764611552368572244041690516506616202547266464076853224097435736626056599207245321035582313726614392868412380641701349811075107599308900157184679151948272720667501418846214937333097173877384550998480622276794153685551690955889926943848580408805394846077006511120987406652488002921323518239873207666902230553039936139571845892022434961974708640353367807945068652147656209425773930679833815967727845585840826789166765023195137146075935172803014022529638061454756952436463278834373302053667103479597799606294711811925294139826690920896557936426525144003740565170741777094705387679708428190862102776092770284021024625494412182911520550257706793207132633703618551135653039580675993515881395446667422469886864638151485444255089241791824305665945910958475485218017638543970449107807265693771981280092315781138103803427418038313002010811161557434582308949879000292733344181121409465819102828712048227159621511643400095470573817721744262850729112554406051367117863231248945854497247051679036970277744548161760058281209038543711059499441665847439654494828124939211236053065492230945863247652020037495772706584698422642116002978524364903017369100837443803939530712987536212102639467436244422173288476558162973069656418863369209159018790829423206689813331491561978332129762161201702003601429913476514121121346845226620977258242828602739072960116970698839027604386816981307973629486127842908199438249125683958221872040326294009899757958494393044752381176642340578679075334547964696842773714594231798428320788057392039253594559039163586526617085794836113377605845442384216628666102888436003315256384677659686117095718091722423513822244630264449648325857189325843197825952789865573320090900494839234924646638454560913539655029378442541609913546901771118427757810464328147353060166182813739748064110290613254007330349723049127091875209234715189467432708508990279021871438884100782913566840551020225354062499845332139657801784667693144095540079790818253695930657216631809489136449349693742904050492328050716488065445884041522395836954417840163799956792081910187049239947852859287521295619651791049486802942573392247754973583242804456397971348871320217869403497038292190847175336232198789190335366767164252312417216433798092501056720360628253346845086166186898469452108874374410296312159490584281408162610229605381185065387770551449679907118706207759672590130584023666242851720443263137773618904425370299109559921176732014949451872385855947113496707890000411711494909100052820266610629337761864768129853454833896268439677765788041821735676811438812017593031290245961994977459070561177062169126124161622250254478476507564044786991631028407982345120513187319365908701551694491401897784473540219716194489924226522975794753605792349999887324947184382995554193171169161733177854728130989090530926516041082588204204506618427990876648336215015513310929681449283618726793924073475581332752134952958665944675756394671745737228300466077771612174861728032242212005118118661963284752296901227113301855956263257169608229958267739846118604979226972386673113103121769738343188611273899594009142433008386136419911446643964473047202049176465349275620433393971343272389046024252821856215040350062717241245899057439708730880142036141523274914501850397606968763666752640676972458222033447062025364714799217003102016078732358800845950232607365717841928733990671433900388650709480708835829174614926647800799961003640165281388900360116885522757071232063453723116967498483012974697173721729905118814178932304243400844348923123957180452090281439079611909682457728864851905552169452343877909951438623350581922128477465702414318848972065829353165558728066943786309842300243810726137058213004400435164775021308357097045654149153120615388963765038649152070190990057632754037431420058303575215652774332387172235528588940381514170388510761140181166426968801813243100470943194574840428468439073802892821169823939786566385028424413892779521182318501710403301949239959664873511267775977375594356894733743655237326998799023079099219348502950421678934340528564560504543184495451369562966978208766115290156541431530392332226689180288415421214847402155077277109046134530256558322164003793164424440336792468275010793684704606214290863656114970598786165762152778448399523672656976071337251897437332338090448404631746273843230749009576122964910020371760243825699710150568528110402391554616124311885565267679077632265218617898815476881894016523413763565473803706396979813076587479938773761783335973527642901107171007478004645074216280943160682692265951025442980803732279325015511271475668668512755065889919863322903300099894574843373680710744853062525683020143901668934659779679714658525798046567577245670552896604629259261412512335540585865334616565166840763166303576533796252191394576577548195868300756990286391843850812133171171198361451646983940460323666268443394095282372394058811713401606900882670615954959933832426056892127026552511712550720655743659313329005395627463384852676453212572300045797087891266570877704673040902640426741828093661352886790740240162818207193317058131656515383594066993567764454323508645475317351197199351412263249971408127669241559829831204864073786536369086787026083148060067298565489846909793800708296210457863376912481875934634850556351069392500251697272661754859960654824213512980478756867650708081554396297564205631861194421525095298678689222175605183093039728649144950027390121537000947786674046833829530565750635347998818210808875215536699509571438675391417558388848227814920697458523159127735298402320173781598800131911879521374947308166340173451842403982487266559178291351803498399231623595769970895818773635792083897126110637837998946815420501860965221463503544420379562606670261126068631191674799196121066132272383888215861061839046152200816573308103874866646526655070179103574201458579530984952156587546799978690326074416854770064262844958057992527556023437604229467594730975828208510323797031989488334844624666912553471050758242802477648805026768049146599281357679634096320605713700243549437974692650433309409590192660142127769503550987111215506844731367034152111998409945075498039173671472907065704320939508366161009735022903619446398727363640250988406826867239441055368069491620922692667092299795036212093746911363385755946045086280192447901909857199237924248957308980534527862713950626700614552828785833029603649724238931561965945484873368106106995998617301651077986149305516917319690185503966472645450810529129207564629064499531521060574052901182796009000748765891759160807776213622367838554978041781718277751213227433964532117855682988296030392205605805824917481921880333589493423486738975303880066370948083556775367087717369058792984321667159120876133548180007565652399083383147200299484262802415701909005558976665485422769540414739758789608053904742685082843044959233993126246892034553108911875776691740514128807069033913479452289613503326665623748371988921273662097637815944012578743238847325367693669234106694297902565012897500140637129597114417545580496133666147561920847172954045520151212724672709821607021726139318802126319166810620084961813619339511836377273462504626345358191106960647968890479981581279473989304438430433004053383131897719840262742476048350527750577705314213340334031192971999311660987541975948730906113266148368850143373711769562673633706235068996075697644316526767363275144455049903765480956022928044825592290497423587144574654705525935165201618792082333890617443892513546328152560405849340993013548271702945932239831951016717701392261215595921523518900979179181639851875875579963972446857277101587050177580387091950360916863105090022016082659994224588542289655334026008334419317919416611950371067074325142159409151961045400169330040394758502940167560852172598320652471104108241389372726268520004963984837444081212252778929029599336429886949330134449972199829980034960909776838781654952125775094163392317513287638710886720605757451546084412947754609132502454735180731935519645564271950637053859177059171282162414969072658719900803306955275274581671129576510684019835332291666361283230791092605293368947942220006769886779583714814731918410576874807807556334967883922721691920453552912661576334770929358775139913489298280091454184465437004396819859736724608352075650216011198733120054673826336172690436888680919815435037221101737509527755608506422825501982499224309053802409775283952347423671298250797557443609679615480041305903052514087081358181716159962410683335274910518627001518009656555047133719610934944556370191848165000102469216678061631261671195681421354474703477704348875468252462975328551937353942592025470199101587549823163969010118503843313492360734173247443278627925646096912966860289855959557177304406113432555641365344887372256460796667781017282096575705195308983373036403189838440412707631362335771290617984435249288441748236144224862214697403085677790202764625101364688065692938732625922622768728519692773375869075480585692164312799177495301315581140600748193772289823305833746825263484976014599958260450789585224386297840434196386335362674623577419510142220498880476224307273509852424847206147404839847413268143154204848262160039388311976866588009946376248329717519799233989760882585550372591649770500607016249507342615576944690905178115806282862506083467135221933807563215938108968518808064695738487929925916690888527833509057096132942733723315016329344858222361890930580430264589377340535720231455628399399380751095279338625518431873145768361672495414438658927420184346898321088423321863941449171415660932540216966275607005510296891803591330277142371033696891033051567586865836703843295691622299872290432223489235528513599067856325418532283791243657429989444897276168637365404769410853634006012315548726260065209396699803084188544563842531424566635373733602132358130345995058100211136676808215763224219565976044127423131669055198412858243737614568952577897565589824756042726272311113855289453648329987371380637090068787714353519990190242806725437051127047792392293334253111720630432843164790050909817059572298062443424933830455081517599019797227964345870274755436916911088538787872161770675960016148623956293269883640306667304671706611624901461258756961640587157750382235335710798133143447573001887081978708507290649572124584253566722784827058076906494605659216134918325271516347364539521825425906703989669738096148504343368143742893401954504357004162943094787211774584609337601533066021407624726526421539151546023929590315212710265571735852950010266540341007319521101702495102103887361490500013177347391795253013726931556163452687449680800679521624838601273023789551880054707745186858494066631373425405123491576539051822687292739748343645480192172797427198781439499904287508266230062115165769368635849849482118294417189778814034437240992200071303697655459313223660235843162551894929231448646737638736350705309372383653162266802525851179500921684977968204697079871649708503256603152252229172584934098149793233513240871764256888494064754751518965495605207427415299607504626309316590283868998189895715889194915334652036100616629089744355318950925049943576570019981685249451992967088464742537407052288231177744506300597825060664985437548065070158105167288828367377053783436956551313622900327511712915171563106415162579831866200252339441023765608035280081788061996925849533829314643710868649463136571972656462480488953170721755260742534155921128574266257680342630216404105061302547235649667054025855880038712849665863772862056087012376465620225142939769550354435285986144238857545099034385356239626437459019277783242603385476769037472006229205719602308467821193585900454114830129381157400029905002809459889926206566928358758159393418645946939080694362889388089900117632099951792182520690759424459313611432820880318828796203626223461748037853691423958210502813359394200717298628984964430865361965601803100386354064245956056536894052047463226020805995545990911834126931284849501446359298038012182338239056530412226414258993776193430099044539536114716100490779461115731771728827619945216401106388527496353159991449450272409877393481948483919951811541889781699579597957162365046345963227521861010803974251502568290686372383330289781838066078551849501970396306347530570951414239159123161516341447431768071073734970187225530795414159136795122027269991494791619127448862070445075048134752856165185924618353297213777195048034047273026904434726989136843158446236713979589030914476704137030986078548556345113150392587348073686778689902978678321982841172035195471165157838919801202303463956752863850531468912870298409043048175205701343109918134169478174737001507087807730757281636046928266237573253496765088495896476308683374885276603323776816487951019929851813976608555802714967534573885220583765331213337312765990199061574182814340936371008026184452390247078068948463312822698751817112450136142087126357099367056039577632655056192648161107971593558170526413626015738693868077082828603558115888383295265402413297785202911541554360681299532887810001333326230122332708397746349220567732245849176694808733693455143452118297539012881279608465174844188403176808511902150757202052371440062576297423753557166571533935328570543458223910062846643722605616872282951664676426482764424358558866724601127237305521117504966936525054482111022469387916443268362802046483936371122045525574668402011496776196992336826391376045665053644139505382219159788143581624638172829051787880134074403233126418092463941386882719634039574291236199311388536758575415949530089145110569220200476508255970737600343324908488767534266665073816818110250598770069845212580913059059003074017764089428484944786769887047174193115440226672255214445555526197907978879662061187904763288170950722578424473003361110306755262129353577736442927040835240215406627156244942775160335189559963705570200990633787288370955647533537514723406764931149740401474158808471606064319662498709874996828448873875130975587271927723438359681461487857095323455681597219891163002524064101694153550828443918321541961185857209964270694459335064609569824109450282147020981178165356867358672599167198423184617407041488049394012542153691776974456581849309218842710533644717154046476675920446007503985885476952156167595838476051071593489252314809724483955424749290693601728653511153258389757090150751906790892146234383840146036239028020067580323577972231906009104379450169064218239795545284919685568488847892976866993467404294613338965525285657407254736839229608360608566916252721975278197746884342801787569700318276296515497489100198349175199324338695567724296225342852621266315878922869773608263031636210019935842870608443527537427008410177736369803069919516261923292060425739249175945177103160784486314163970809600473392406409787533751707843674612868715066519211797594268621237107982028144689218762030719991196967992079197849092896059490603624242410071295607210961488245134138389884809128000142050425032873610511246635226138753681054671581265218031316956583582097459126736143403079353495335296214385718156085523771762204613876228812254515683262596398728578842994611968969496940003236747312724358331748010289959603753949663176826975636650681269329027380075675018502181628261110883290741375458003474875363854014476769407742068661592613914619025022914476851597918567997726570079727568126510421698900597353171284286983050934476483835594198536319511658213496848345708989240919174986292425179933858766537773684255415152853384465027166685165956662257961481912803645123888080357275139266190563512570119124887804208586777883413239188783734021253255841416451351388353316446460071059564293423184485376307249566245644026817641266057308796313665016053495833383034352872934593316149807224404040879842028637024070448246798776144195264566092436392531712123306364047514995571801733597758440241943299905504790137965478973335244133107394515601003644967007996701445491833995311309398010303256151730774662267483757684312635679291527897185114691789352686670740900176255258287385032147829631136637040443837400737362792771474153716419086175681861690976425371329981439264927788229797870039898615071717293536896439321615417342050162775370538698088503920593326875239154261009551667727019602859201072229135989853620194488320264718168306913688985264170328506318831381172466442094086360388918518877386499060673976067883364547638394557591292408141518081107417417088399689488875427182278073708595019524403197829046873301861580977948177090470900908996675518072500630627798751139654860918084264957807941358554282533476508128985766164574809349943054306939478594088397390603132438056822737952738371730201044812927622754583465308330165261808866923638280925791848408520836548609345606044274336674639469583273500907689318028570177000529633916989615109717461887594261910983378474140460780024932229968082973699210144243343660633689857681091911180292516435803950319919516032611171705248528125340492206083310050786560302208157795734531326914683416045642706710896414405748142406194631887562626547346290363299119785462225885156130446187793710594627687019637091958807067874161141183339116370970070038830667614706974358900525523084768957353009182277868154419650147022592491593709485207051387074296651661768225114729014303095073413130101714456005012376440604330606749682355784494542756098974037345852058031926813475867885194596069580434035091444053864267821479939845879723398310045300517789441912287328158797182418886659576196258320309593016019824084932409863765701377445658369841373747221263747237062250226635465431189359054543601798670409808566513963497530214964811874050365760871894039461143382173809701421530549754578937817989728185207486588211295593433420926427134588091297244786797703751071060581064457344319729027310131241911388390304265774400113743808493129692786703571562342086399494833352451104400921911261901514319238197525049250586756439215069589175038660570470252512429571349151880658517687699235288643538063778110191886128257287070288722698474718041631622606696132114980332149475316353916411486443535941918370797871979857622136967771221692519713651381082979147047490262695569931270161146232001848852152341142673767511672912922206939796514485924854333421354971917892932848988613797029444489385553987784504311434238070559883429402919281975728289264393010104572619828488346737109528782692414431930731403948623266730547033036470648017571521803583748845807343312642985276734971052153489444271470687149925336758646914830052975620285151898466078911339227301289484374506513018340101847694347153946260633410739298780083970427742444536130225089063412255442334817895722901620576732103350187987389589499113140937948315014924946663339294479402974962384376948657931491239716242801534742028271935747373520277299214968387132246514144265442882733635832397796466612566947639776356713918683522538265657048833995029349195111082864241771196395977132125466951041393426110272809309921894489907967170740684547090212187269548607960740430338411882266987824032264820823656252935775719934244736975036575311551970858526540725706071448514935019310043420293070133544552831148797985898344563876985453843586356155184452522174974080897985904692498500358144166274526706230626631924013251015876854410091886197112047214830927917321688853783266910505543904302248375447406138846034795864269549964573589852763299055579281899399613146571397352311099754139766885383737493698937510589125319547291144273568649817325700354276426314684336974459955131732433972624114415896660170528042259848006953431775188981576837656597074813898245813845680923157548559317581289863746249759622022662452805070267740200349704140412724576396080290577466491217871892161971198669082525525761108039739432146827498664776693704698905333852298927433035697548012452572745511067196196064299144252878238840028395302765896070260311841059651536841321097734526870150778425165932468316040920356579718123603663956470903410062272193127481930759907644694029374707229748218402615472350118714665136189927026609598152296576692704587766220998945529968132924068567767782695012917142813374743960378498223679682842581675258246441878905977704270606167911398759920448616052079382945599529423586084469781860463347610503411165777633100179634883677588933182510331147317790622918352480942334016067907975476287482001499591109626736938786279864133849845192314071517321575120682016963749487587024087842969375431382718385494462936592489060326011330392222882642631850052194270458447464632788715142863134616134877884533499011148704614771187346279304677675826369388722339993267205727310814586294280869473495627170888601583805680407464846540822797853813360186300916049588104049061976697189878656218484184484663182547434396354156811564172820317441982084082863907953831610501575783182520906840546340594542925200977967209724752387063396567781152141309782007323437165042714823737026675450266384609868016413458420255724615285519440090772727118023491442202949045019688901441516999774447829787060371708779709366736602840922286534272180862705045595392289535507336745197569008848287247813993294017114591220375330608121989143540487627203982833290680581347718380085718066303440408753926963935027456751554510860699247700258506589475411157764332619472072768173114255270452634509521803026243855958797750717880172165698814338732380931153138661860406235518863394017055888215459252989968024642508545909983402215528446964129889033958715134502164258889501007597037019600197350713982495411221281023896927170578197387104608525804742382701597947414740633806265896275225555008308369003353593091908223583932996930471570595712383796756438408346813607988046742313677369085094432172944731525332266867103606856320281758135562620329921949076999684541344393320059010922991353387850572266067606803896690377191336716960101943824754333381965944174174541608779440832808258833561593154715364966358962625412495159209286015211617309556378538193833052022874232259163809661087310256456996274813842214231675159631779288503048738202449756234233403411874811945336143218294243752853137250484658717431954895562488298199780959966001497117934545780553382506164383132551796198402237008403679197468159825460413148961088283586818351373344783868741509975795991998487225676129269282020046832412093260221236422411558045068582273061505881801005294873397759691512874938393187727678767710954982564301977123362110256609630628849181153889359202230010430423944750443742600976168668291933921601628688347022215385201675566729280800435406042077554489002177182918113125211399124422840346303481434203695440615893773292019745538047464321729834053761834641623626956304961890974674104029478142965747241279466219425982988506869925288306047603879614650174452461680824333493882211342274737011930497878617933715488469380043084936958600322409405656705798260628561964670934565956233265833868830246808096260584774472436551087081557115795129294365817808520878934250941900334117516436986474969265907544976780021856244311522209603013727626793167295865459944409428758988023354963661589399900897647327882822997285147364918383532069310338214895297344956440418622180533487886381212536318856954800033298413426623576311738314485374582293534073576998965930566907873882597449814200264546799823687659809547429350416213521545102823104811465654772156989298992288802936653307398537572185333483442242738990955866303576679151786429416487017606563222014011652470997731262562016032750746231276723943941332065311862141996434388891999823434700688954334775930648906356151715419661181098324040109047767550467740875264204792193791029806258809411955394585631154799629888944280843537979992737610107683195950681557093237168036729460489808827562594135153522654634785504404678396087619118768430699426267433958907454955672724159895116749224276346958686794417731958878810545061784795368979384900612549383877506973619923196923564755396007815413011864809263161150846943083412853220929923655820586344210888779085369422356945601729504390254414678005932308049700264521301054129938090011899797113804087436417996891720654428833088379032827664652058817315827554543230034050818482932473618820913642988647082535159654799468337398170906443375606176037789154503933562194082188240336331751697549599503364687207322839112296608026328741005468254275516338562201485469281351655966209556274426590543867462157573697094846799337519106816568816725690105664203110526204652299907884064678294259420007087516689363956538843725162399662489151365832106858884477407572248623919145371543904529316777586578778348600420853589602777277566068322376986238393064179511969047072359134252576492671063686912821577105746945095438484382883848514918344298016049632379187236246977360927434936456019293778941485506388882633488734721886280536519703215438359202901098980497988362031443829868640571429142059996588899496791087714534313004184121736333855785845363734515745582868514894383439127430229966208019739325139466380004847255536876368672282889258365671661435193589077628154285606134824511771019024776297131547308893145149029830477782282299552183078296817929098325724982389573135870486758756976827069869151846260900355394417610732866970157138821235509269232917356947864613167517104096373914563935913473281161359134153263490139466578086547503442005987315294895857944993855896870940544314805986294943499882143534231774680163224092811926842928814034183318864459626584595618292543889990238078867245716952558925304876835894896123458138921796071264884303913945454111832558127169374634914610856666945690650506366406470838980957296847465503786755149592237284139616501274995848064919693535623396299497823981903944854540293742822430443725602142119048486417325504383514363018082171991676754350190959534510233545663131185106201033815554466091091530878299333092207003400906640183392296169222081054033133357811845120785431429291508443291432114193618385266408053891514052174949869487864186737613518290488908455292630517565952438411558089844870345768846750353141689573990296426803882586846342623669621029902871284363363302240200890659741086590983767796292230451167255460056907626761281643798408881138578762829207787982915800341003374666122619162712138211285783238934822140182211719976972409466440421292820901762716931262506808224510977084437905677195403409692518092633425055457012735862611632440174735071804189168075860422305982293349645880268198500734449749960229143144838069768198145549320320748000954930419972657778490500158536748588640191804466661951238644554421467206329298251005798626928262901553158898833910369114808780891245207063560877503275412348369955171847864748294356967431795735905566375928571320259498803332919413819431324018747737677734859803955835670960680556463124452127301719654000667691798900315927893499942713810424392058427957936805123904395180710224772546447606402656667022085978307981366771863808179525110276328669486116638594417574827213416055035771290240837492025526659747610279601749428884137225640591189294390199439901678510304464917360548866518948068768395897050440213668725147568655578446761468260905853670652529760308974408073690555183450279265887083647388077343100131936083137506767452133970535470417859085580826284532104344481636679157148759116325368316633265570538179024889592988540021987220199652312985674925241946751550832910716415359665276915414536891844201599264939190717571512987510992626636627552079314619362835830316776726659558290234459894816849409009525171018001944484756392457634909472099056357684382350443085909473388471762503266729532496394170076749034363761397621683854517756589702596838429865297557742930965164821806415704305610937500809321675543973057562993559617109190443901976727700434137552897821407225858759015152316068354385106117218669980615257445825876694563837045846166267499633271059122390845587132147073443260049230154152041584062639148442397484455303088998190111618610086279852498479068822893998912222390891054734101293541802567765936096545338238260177647446585530405125984324507826457689291392835412089071958182622485484574397592357348210423063282866790781349752394861025207755390436039473232384477223686982282605048531456080856850146464517026660858493338159718684435181233057059085897785512087866388658021359265649782203570200185144626751436784926432245994125121256239689170666500346895988498487267273010772541573899386010803222849882877997062212262560458829829099473796028162074471263942356448584601054431513673236796944671824424460924342855251348679815732173761703733553093874704504669306445258279630517226201426156375330811695493650855383725882271124220668002660434741863196615631819525430550355496307882060599089099767710156057689698051952887029487257761238655165043220994541619431986952646475084631611413995568101996939850505430948210349397996892574553261649309095570997557484917962544031079471144709455116895983439213022784132487438596661722399886582003479166787262625140068405610408990524401233860766302141777183620232559902533862668342643013071176487406578601329564514466415871825584354409165660838122049206176678768057721317045452517632136758374571690217652722186702956806831937023812280190199181300469578327025959722473988834765326006571662031768655249554085425623707886716051129848333252509528652606547674239246635380990187737329583926028028825353798334557384752831436338342454476995861513669259222818388709442866222853664757147710338518163214168238778716252642121069924599632565484915431053880877088293450722569655702969535264142055128877713199980648930007315988261264210871094821777288240584305873135830524485246161947383028218205371776760282967336563116104178788338324335374112680145794441082514532314771064385993884760679436343673295758703308766828761561408225843604564459851028980836320957947115950464182738161666492013015185357202064743424886350675266545311604299015146113971274138930988687152259999705542931165325967076094183429696894373483150289844956871311630992211899505702323045585407618084549625372462318327092842459567411443782777481346321737512524394157013468886371571750749839594484459437989920875272508031108786172393518717517291501754649700444602249936614788038531910413279352557258327188877467316333058688442036357867970299380748336332293259761489305749399092340706022567148405714151925079060182974122055628466193344591806561361044577449617307031876684536144073936816404833763947050940669853866096750436128073822439953981745272872159036388708808576351643448104165339262459011096198657092806716640714359039044306308563292756814624255057484018583200915170898468196611686779186647292606300976116101950374366886639901207177376681989622607958036381597308215044250663332316830789831874313211375558189417360879661818234845477993893274171246937700599978053851492926039333822574031023333070978277550860482040982602744424367942132343659441018338256798393813540624183219160501990789019526319457618711581983737822936273778623637153737838727384907476470313400331776286087419089715092920893650958776417828584145008030411873681528738414120941772654847501335976913241539635377896302272833650621953372755251196038107352380970607597795493063595493301436033359129697227931253613298703974019679788699116022322300087177895869717030903665067264807593755214236486503864210019109096597358532454335623001656085031468617471212317081325193984308685849245757904632761843714947387939518150064456736124251919299498506127431362931028483810743628680324378297154467718775621972372465217079788068753657673304277832081198948433035905831788062258699470672859679083428174158474333962126520004411682868715801740872429400672516407111130908857192994298045793957173716664555944274236286129610742082126111892237626705791845667587343513907803435417063737960564140160112253263179218480357969205175826733867604179489268969430626914247380513571647965897650175189138823627636874773282264345421315029421063105084842000541226036995790952230475629568966820412785918568204846467118476969754023745364096499270076018472623210959705209967701287015523405026902814725055514957698090351000362669080882030111141787422939589539988218502157739762610268710590415727004893278608760663680843230276106892446986375543716210946925730396533723408910548609961244784200964649243953231322099776402381066357945859132204349145914226580019994713196316483110095574849154403985365633751554158112116786569888899229120071777242852796145010310278856310086722319553019781009078720817600097101866710113991817158830910119033945559528116293981496720071678986187962887327286406674403853654532606518017519584658281395896255304914723384338523739449230991448524804229555518018945143762949677322391845486708630677437238348839947081188747888722526920777204434321234365194595293957255507631381140351260767082800036410665001945939885814485337248753464435423761502649959870485514027144212708289974227903030832231039005389376527945619688134585864767038130612781892845143288450240484548353950240607799584982787786067336677932996265717070742858125995887495285458392234644261235749090309776765747065857801478811671079959860727080642557570664311015433959540290259093837696188902286559656716898984992099892050997627806294486609887726908603390799353032024217201904343380265035647700021073575684564420224317387242022873228915792598555078429536460349605700959207806490296771866472270242681629471239094469995937563267152112438324340939138206876336614838330277703559866327168461857184375105147454732958025680300883279442731198757918018110954003689540645596917952370224238408618211010811928441941387644321257476695088341459343237155614987163799457932297772075599638254785855380606573628017623858072108898845547406169573509130598018344755461564538959118989386727743340972302558156140947104870577152495006570881416499990045865040477383882878346863478009254680398764963504794400659791170106273628525529322548611437084253998149827613997605380998118099117287647727105811342838001821460042923264141242952415218587686792596709390983064086976543510762470898315475216617415006950749892746091068997604048627876218778228158789603350256967600729056537470434693499824737643177504983684671089030919654752646136271835644274800152319841209184635221089874672062202840719241107289101738065826398433572086375177677641596891900016490747619024411937188793517264954992089473011788271926442752885571953852289647289651912350507803720203204465696594105256051258190132896281468202887966806831459941659911602682845232644771323056181052540275292107916963986376110238667302442690356587946201126322784071708374466724148470162947059350962519669954412829291759385747817678431394330989727177492229395284067917438191129092400915280188909073887032597114274462992900133046908582626496423232984088178113536247999562087396585054637921755002151860383219910824430476535934338822074824327971468954510277856480058066837069769646492296982288401585958193639644061077952623451291803463748839528885891304857358336874166126397897721499385727616611464369349278020383062228729557559657454971419512048133928124312845864825059949844589809508059464776266619306116299553463024706518075232905953940341704978521360270907997085914063229714119889627765854723932912794654907835162766037297444661012488003937146994812384247355796959740475022243573892409034440608257869322308603526534086870453617816392970243763498712862403683023122825869421022772925326677332783748002572161535910912497917577288401283274034550048514198310331628778408361834701398969826778048344100015182327800687580070766158537673350103736116241108241460765604879964260409935123717811581926662529347320196057400179855213627920203195447492130682343044871166415180925667799093407340365708354023089183834579619945742474568649654200168882896451037640994996617720202076910511695268390570715496095478725153785755799791920049337648112282668090156324696606295742424702839127107193831779467590626688229500715456462852655872167101244049571769685667841468479497675967143883762176581497235063523184182104443534228031732352782710839429597547772811648377156314572368002619529253222011137970724296380023960431607229617304812595054196503925265326039351581097113519176494232967828543130934584646061033735484273378115513433862179450931987934067934104653857006927128854279588267420617098670596121953230469317832679419682726727811796775692055923443185782107184305501430391298289825659263485075145333415895674910884075287415959456954124026117470659363999352353980887175016643793455044001093178070449526445371159880973210787841408234537993052593740622394630898007465747848728615777502318627490861401625500445747761700232441131973072476024252433830560784532980794092388342626727660344959971929542543121761990544859848592840446170803484008428579359504310526692199011708480027402120866913660985465782150065143065295925029954896791677324607400931205765732897388577163845420807035260006836006285888151043235223162641381923602344657293621012048804783224755260252825541109230186927464335558630564984405452657498876198885955754329152571898504132064210245996156684803167936547792835237309354739230710763067371523516073728700179377427234855543755650950550091850407307309337826975036690963517067174673891045408376187819870874655125700649836296333749059637504703614189703986689671313760535190840753135922886928328039952184526017946906313570121349248069972045568234539862932171213425251640374456062995561047238771154084592732752253489459033054837104150100271240703853869681631825154477179058252883456388009535914315932834581194106606370781836423379537754523585149225494724115226762951511475037994141686673766573707887232872919601898060057088567028486535579321831678841291594072227284331226032850683657516312630153741990636855361236204284362967342884552742653082612805091672054733235601456579388793871259126915912563893158486040588303187477427610924856237916876050064654464268710171781947999543523201781101760932319679901727469719429589986282733768678001741639472595540352118926650036030420236378790024293873047377898575045104186045274773198280022246353625807025544165909004614113179924636704550923488127605462915184687942923233802907415766271522929167928405725275488478245626590227255815591801449241276259683064919908638179990420574698670035335185829838814046079218643680155016549710814118531804906800584110642499092211643352045326501159163280038376614173561683535648568169932966244459555202371983921360028693868581812074367479214969470522066968597750946393859077334967609542605196249270825677020287721258505991754044926548729844251684038359240411503089353261265195229424969227410758842942388034946855218881969693931923364346554362407144678363294666777572850216350187935822593059934386136948907785003755717510843391435111583291283787462359242825760959440075994849971743566502245236044451677407578001410807938942757099215881298550429710380793126659908968602645603059466307229648823826692158797875970805463847201397915916775616032467277708699552039733547498994512561802411656749850443696946846618116432453290284562664565747035235252652746175380947098890166370751491845928808786192748933750711342436352983858382653510763432123193005385287684345899191868840780360331430952370569854804033161799600092976382488693962038314802441760000425995592826690984672109189968477031434217676608065729573845649305092915509656104127985676453912601863422579931436077438425478809452950452496215374257131868323549099409173496233489452387039379134131348499912488114171820686072488477043102386434703177835162706675697351475082061407568233723620353777948277653769941002820243584230612063507881895264783186745818096447240678547845455938101987894978898988488778530491192621882925923357956959628298399593963696739669824178348086850454017127742847627107146914670771963926905795565064790357369861138540428170106916185012425662750737709675529389582106302722692538427860221045188927090658303852755674170311394459752685360881971286676481332408391340027060603138189021363204874981751996846319539165784770327046881421013022011821085280899916905972372721566138967459768680472610543122344604704819347761511931867146233254888720655898528808982716409650013190122719882528479156164835114382065441640446069288579503860459265728585911531591755101478004156407695419418070222368045431612065439028966826664437372909774964163068339936125082938304922040856933567269650084637964196179105166099317493801795342141375268559188371317771563566979723950234842144271789455008268946342802363937775521992020131107155507057158984251863204175865177724939705153273431410353364429711291410961150400327327947839370363826404000185011929879643681684384051748111801821490927898294102519495017597877302593417431089459157705520439957597210384717106851442383524164636872352211730156161562215000993980386866126509217216503786186087465159887450317260966389493499922709609732765294117181948683303180215621226784695951961678073895995376774318014344718589310524832122012033675233892785656301791632981940734272271787643979464971910909420855603046341000393737564065988713442053221152747939750069691833098873353631603996952307396094262960259906584212188224725201564520044003280412575473629045538770346037447974348250724513442415735558300607928902304983674316115896400338851543793378742771253659059957171435362154534490859044967965586690537877858597057343379613013327693671586036862481223333794282310766211117513085162696595950951482601291539355027423201853041568472455092445146832416652543868123580352983706335699256664976744739695350397040414524629125672281749455695893108600258857445947419911045526246590367046843340629651429301015492253402959146714092864404941193351524124136317166069488065743809285235218507221157090633971655632931304857288807528822263921430513279794541486614248461517548413225503967597554625274256909325500626844030935424812702784290905663072421163082599081913629021947396611857328213088094414104843182959628841441881752672805639540032163439081504693120438638702233314748577384016165185848574491759880852123011818289814506267553524098947716647634974223406176577841538889706920998704051488479427509852521110614770491523622989828206841722372048348441416077406120533738156927400669485865408962741284824437865004708720067495018542299236674305782532577363495214245135924317318877718300156011070974073067812350706692200404122781517278378154275242851935392718578575565545077183631504532181123207809021260691593237673711302666522282653651440744588273563608455121025669559761330177278290182106337819711091975690758849297917095280742518612956543114327348734019682049929922575577090640889479814701151024685785970808220801134205955204806265896331305245752577790725275621200364221868113084559867729372196433897450228300652428144728535598840747913357908332596439630994170967098603275081070636114633732492893381648337292949724560772591740371383651268117397363801415228252734480196032150954916809444116299630735430457074589091255273231564861460574541044225492748015623179806891459323499666416372744517395990057372618015661927573641662505204095454069318045856895007536551046146569142780866588053257751572326756966333473432972983202295663909390698681249857908105871386664275639166515578832308414471843071051825439248930083609207129101091902135039453830365938489853478536064951962166698647663734771412324224142954277493966892980261511118103115467735498318951184026391813537409572942029690166908462022450719978577753534648709905677876585148626333041545274613832036946581106099133704731254248633352817720137991815797955897000166784358432659082994769639258298967260411691203599402777131607003770943722642122192910157132489172871217994096171282770266094575393904827822143028029475177932706214890829895984809260539668597894349402019862903974865345529978652086806753741898480860285047067386591210966180755729334488071890427497557750091214011490863461916406046760285077205636599737174691558222649831282878594168068545653006943198069705287513023205754883251506023595192769701176444825779660563350446934496966620205232610909379271937407677960510301044355537299065825799993438560997297898338636255937579617934028124993066505997806422166768288680156588181051084728881602771714974301095727878080502319025083234651284176967509205132884681024156423494389112378497391341972801758599493973264492740491749162220142008309553933334725653318945158652037088012802964329594009604638748396455630422767391004903363650006151040835626765936369256418694922710231879441001847070406280295134893023380240030320152578155930569638902913204911925380741807013125606322036625489264424712548341590616295740901915220028901418435289550975352372699905803598169736081433791341503957946891599367726675823856340632518503648894572828826354049260670861164635340194545361885387485298693766016548226220082432241611190626753084119795042538736131994615405431087543328585775116757658731070621625259880256974600804473812755587237750564303843033309948037044327810628417808151124278051206905057663135397594574446558875603390269633536044276101011371941445652551305705087249213022405114009024342215157201789481062803048230845717385346878896191220253507243103307338630842638124691609398180570734078179428649988412804227719848089703630725451574178028697215425873946679584986376373435602578635862120024275180340272523836128932117507264135611761222827667652835310651023005385500840718235798203369601761838651745738214610417343322128352949624224524258003978077845280547907485550592295568666223038719287205133616225210361376486791645866632673165924757360141824166735674390933833385668040431398937034724892923911761064064827396820482484135079406844525084846248926302390184472986767418815780051859209688170966459973054248548048865076495433134879450745632125184955527751913838349045597014387302213785392572780423736038029712942413853302724738920343437819818592227614955642394369200026022314010773239150229504214545511809684035388379690923166663828225650740511100669973521701401422211402928355593432093788664444124852480630782598278131782011605190034723412054968434354540347599959440891838217353977896071441281226978018262115058040696379587765248212553273686626478942370204086488421798735437199777404351343355809716928235625168977239875709028515476044600353546022317841856792109894694444657830249065127655976418943261225134980605448648123752161619498254211572693637608666968708772255969915825204317187635251235737163057820298972853336053294450776957803770172871023065180852726522256097310942161793966322864415178066485375657493610204876869623086431821462322517665729273492202374799483954067149927178302101084193282963381101102682092470694553600094908371680578998854610981986177621827160631718067564530850702222693918105474184186356944897419232320453596921334300762968853365111849516717501303571446800578139157654855335146450694328203083054603501138617295290440593871633900477029612523596486082845906541538074035028095098127377771058173232015568661819976391173416333581875084439352473550849077941095834109934546224154008120615915791208714879789832736665742137501842515176115191300790056501976814887292318755679948268563643332676865329750337958768038666152041478000864807334074326899905559845168170371655459976231330769407084617420944394046538100499075483504911857966826443469436266854862067968385803348890099931547374595590002683902736577690404495895626536981919947357378907952920820861256497163237575464039206231443883724877367750535296930309100913826953520510758003975118229574633180647283655807179177048114592143742589528814100825224787886806581580975951776856559256456537492081066937213023426773617790641918015625866337320961557894212099425851489810415429340996982986092074220701059147454487327037252507074344214052237660439413838062817716464946912835817762458471367616670867820059314596407249538793925170756330408808138646915534725747097187561042105700709230906260337051428301577537091573478541145568675953589979469311544240851995156297141630939236055283216277394496850758253901058500569050267822163506734241572957032221680095490884433432093605916744144866886239316836489699596676315427538346461164983464156709726523812017502446690476892527937270426650660688640951686419451397816595770440503696478091577647671885971427035159861371163091528583677598310605071586626385859507525851817279495698975843146456528475098739173542663967091685647956199357273993163426556065463565662654515890463176982297449467076874401698342340731062831706528635751372251657666745552127232457889851364930650603278983407362418772988118302638919704604654052156463895887094931705539998419816047255480013274488258146633585208981235303976721518862473594348765955775877275100394220253078820010376958499311659112136523800224913820118157097896290192476408664907073109411790683389307459222809163276486990264066800982421439812874641417356037394159187165028509860439361671458955627684913691460233035812508856332852215171801035970512998060774556178036949865698320158542979595194946188569188272326219507495935344810590408448307959986242145704398684111826934490568000001591956491056026136514659268895191212939047424682613989807363183184731655656384947848647453182336419069857361569731265662519871794189704088102309406583768900950358910346816458788704476534591841084494669157881144445022618842422100437967159976373036859154566150642592843960122089593737280364903360742710130318406410625101025278131507159678444132422532612227098714307741331751723664428657045349580867416937801879137379197848501010079955592830114860204985027208339470968415673353131185068271342397133579543625808856009898837079436551830553494172191321341521192790515438385571446475110709039076729325531443699807288900272975590310089363186097580546441506815723828558895546189785564994906666225744042105942400074052250213576444394696945159370660175814571534662828277006410002397550061591353290145898991860420544862336349433268530786106157715757170209181297832224313031539487250473251586636197636921164756658823285633450504760546936886150034218658536020779172432142674285375486525957313198485340642861081374730965156029612349209832805730848283036869820939389195568057785502482502174972759263176778677912734142882928056672458685172227548593211951076081297925666683137520987195851001312609688136165226882769913690865408107921520146189414103774270605860930070915629697614098061297938145720110802746694551419228437114476932063325197808456321465621872152222727900218802237536503578763849019333944001830693940162586685148514491667941175783878019355855339749415369997278600919238550625551864781799246241890986839511619124336077722532310679132408709797203851437581729665154832987597671755741251768041637977492990221557778747097199833359914553372160896098355178440207298426416152969536494813543612454027831452289832191255383640159078046613160909384573213121921729340955465549823851965236647565042226601176767355197403013171859649971506905608032701196527017436812951262136790339862973003130266251280841990767939765488976777440540771870845591110826700931912275089833071610080121485278544439109450592242311805838206149658045944705528689659889174020147288792102565720599691008385326904673987124903597248962029626248011369080156696291629978196378703041558420564840212448585782464958552009662718492292611304685702312044784469973670974778594846799306399271805086415890198889674287051991031517004522448851843899089006689589196881138691671308193723208087626892079468235336790268233628488593243871814642465093929002325708788672755865479881005238050175115046937075517055411425707338480894406256547836844801789846444416211085341731183910263359408789872828220139931153108119772516486894958773141170237543768116974417240882183511093292299301775961807735555217021138354546918993599378629844659097066372258475082934731305721160325284332232804329738201599774133203662990496605084637954306159657137658092819614295638411809064718595192345304379263277861006365531866466593548064706447217298617750635488592475386061591623516749756127923304194266391909016915658120841581807375167478315722435096970948452428423801588146478304601495042882777824199930734837126963889753807794498834250277920622244291701742140780093863311932906444739473515850011777831843910320130468483319189059415128252923644710989439107495405562422635690991535067984248264475153788135602621247465981736621892566385603338511691426500743317039237098741427874663007040658124461497178612424061200266412091474886486840516758381975769984347930828571824412573794584401946278280839489952835971416264275303473018542504181139300842877375108841973630834855629173340414478576878146591035366320317370120994279024132033264843214089379256552136543595878342634546816248334163980383352827421404526770533068999019187967182819279429639495450037955149125133761980090045510853186136220234858211307003902238533629621898852936991802460563010533568061081575730943206735567681282517392313281628937640752912182929711048100175931236397113818454282604158668995278889444717989970434000009311908894869880427279802733500286425701883763117770169427698222683577172920348129324497381468392880612680995274536934647822895972423915597074768167413015272257483969039042650198833795733598546894057762741356157001948570524944228014152194015950331794492090235386845289695912403371736249228403896934045654862430133359608208472520282229958799800628334546818864674049770351902287695912405116663179122369308167721578585713191664750069631402011496907301947304737576217603074325783322679969176978423034418361880850304832726822190417873257072949618723275227579201898909642927633355526638168330209871489126966513072101728573090144421090444197046515485526181887895615913601292954026179351775160484041166813671915958465903977248160285553582650953646970737020601045720642477913600807075924304041639329707536727998809801023724255627944773024464639913399853720292953249999386045121889667902711880361100174607885615038205902032048111245863536153262549959964806182917379105621144828632767373136413648640272563767418887622699821047160780704327084999652224081262638589348439897197389375839884694317853001183069978530532347295127182104442877773452860833840224226506726158897655638387368929137093420750630386338817706973314800383860573647116885157122278225483528954646737748569190869371774383797155952930137779122361548532362880404762344269387507921269977206736652011071484640920872905196737692528635896322025926413700694993894084873462761180919269342384610001489599729273912012786500891150857823408023949305351973682903939676302069724255423054363954112592924263918308331653608359348085048347930320281874544175331351507237477425706579527146704501547769801864996248828100691795884046058699713237089675037813332133200553603723132722673902098716743167760405179295764828125946728629320748800763544164037555347919926756204239602991658832390840103193476331856579825923163338131027892478783802385331997711034435056859366875571061857150998757438827062398475627184029199140147220909267310596957045195110729098845442113853798691366736484616232352143835132620696125436839058181851636355883644017189753210794018033019517317420450072299454850286311259783004939355947130830322792538384027673220139341700555655827199818215460770136976360075560541345504606751352490165158115612970381874398936175037438207218658868960000041716877776872037384812857063114597136896376584395467765052051085426956107033705882363258742294685134745636429079207513429924631960294416012185764334522353794240831262387086456026332775899765405656639342081923474816129206332881968422957022490343864287209076702068774556476501416109561351025793027790672089670386134310549267184394257013704607592881610917874230045506496118492997032848622178157348315819364333917742275800946692637650974201611499034970384653318325938463008385995732307072578785362590532227798616253778909858391555081334376391243898128577707017213053006745776333557317441046203213309652667923446401728186822123366267222073904119764820102492758211259253961439040175797638711955644375498794001794020891922940150785670614119280336360058821630065959668161011442025419871662805030602718487556745174934303768731985188057745959080419697314723571898423722557114530118459449142416996661841582340713390776644567416546070581804360233782850013813457121627511012478828575295109812341183115247578403913727317445890465706850779171409635003858320944340453246836047751106523530425386511183228292231806224622274364756708591087899666083092181040274282508462540707059220700160241848366946463155709911201685675713869616868505171029803764318066951218638758451762488887860944454854856781624873622015048907130434901018807523139119896690003011523106042006119194004885266015046168854551909982565104118697107974167267913744353622208770059876940584574468339948766374766595298908058888522977127998803195332916808441802482169721826484986193330268737332201199199494711526988762026049805370342912368672730302258625964686953822327979610487177494818710053381487566475803895709885372535890038114139621858803320163715441987052712847203443956784987321423105366211964321114612538573345536962960323983899912304348034657385212161617530169023339360514092379583333317616097197097900686122446805715177172334378234521267789954895981937664585203053360239060403444622830757672729425714572406787353353971039715007426825106361224424294538801032096817119253281594346755245804791005014175265963149655714597609246548469907868069245545256468478217871626087313473785352791228398027842178762223246508172176613681906770694326321346174655592496168048562860546728864536124680606861206557533670262139164003208099860679097168508426158622424363746247725349070354037436092112712345277934689322592076981357041554976352236791488709395790048070832249354318036764789031284230700111635066448854589294397192741243228310781847157805619374784568342925643322024811911236957515653165366520290183420350055345603408750817961517029418221240854336247926733717751552281235393112680680608846225948852642738377041935378066675789685860107150567319579422698135628518836988927482724480228949610822641128531549187311602253769443355749678731109839772231583002737227958848019001905481432969280419518061164739793097703154490099717895076537616457745747293358240406576577981889583746096052413981122932669106485531597791520954380725813651335793709598270251679012586888376918392053211169076377230190764472907484461444059503157142815589208546482249891838108881843636666458047512465599674269347471667727397073354603302104012331344848083778822790924200294108794845302967695630206158114910691126671667453709186142252015278801763476483855932012679492654143206322252205659895408771132654809646556297240989441537809944071969248953606062130766231828526436709034473687644218750387461963173519935204937238193396191405971955140274086470099833049075239365912940170416122586421712218857123883233990931915426048881218920700476809313353726218577818773084503268555141968805435407344423214047381309759237658091696736415111303272777030085689655448509896271611403743769528055193749745600065177949030681963775199577590653833873102882930550564877068108613312715462935956482826089419345191767089635329906614944417214395389374971825864167633059196959401728805060343835134231380446714600970952898528790273619789596640427539188932933107419822670761727554843574923367836696653703322387569237990936158562541183210408081089865264227023389701102808616340910915576366971460029542730116551584713101510519785019635500742270881398338616070362213111134475765359704239675924956479060670204148865368209429246725645473030036159605047717350848691983475001588095935996333590878731287139265932032472098030318862477171612171813678121313861648335706108539749766332902648168004445325323878475669405001919706709226609900981322179043242358551868316133510556722338610614980972365135176168111372240515236167998926699084414711651542717348965496429308504112412433539897300645897062954647077353130207643057856439876743078542662021019198204032505003452966917077767135789359514550537170940788496051745582741325629160932528386726027583218222152589361035281203111126225370982065660666520054117336485246290306441417822141782003035032334303138826538140563979296659669007724757004765772042969507626786584432351782675230759792941147167884825490336397670511347214391328025821083016162856700360551599999526528020623444345766374840341091440308881983018287798096728256330303727916951920170122768874694644907236314464138554914259923268728668098367716280451531352593223139296084940719011906091542458863251571364956187825159086433929535173412422344613183392344379014155845152586452992770820982449241316521467951321228219351042762324944639375220188491805355045943663486065142808487842452592161816532312280329913319698975772947494938974311829944064056913959806825103713710012154684485530523850220297484271245573094325123471855575045100881551348988257737337286526880895857982742348301500759595871804481224622251502594315145738793527585654834899496011173897823838703703706667176924662761952258054602046025051512470707046374003754125431564104607749943231625118471170129813190980756220687539948871944311746901077474206959281216707644748770735452938011298485080101542516049477688193345160080817173015309005153758020447525218999196777380599419563622278135027165370717837677986518074616943753422264293559163952239444888072723444946654584229946417949110869434143193025371643621337313498121387687884560664558634254979419008404463161618508393422889480637269354297125609419216631963434563423795575312548790594875860171644312214675969012032880182069385610322172232613668795948776775584204406003939151955234824923652290721460229827358590455380612961203262067477470208548889522367728970658229232109370850598003439851516898615150891070014390847179308013931985896257524922247844826334561557176057078856563925041747206955023718188462165898376228753992821825850581257552364579468137140473872338859909680329649649310796955250079070578856570097221453997086326484540984597240137425193309391500255695764264781471779225167890920200293374429857342800208047324659896289951536913944588646778552451541330152042373181210450378936551032391504059928066135452161933427586912488781520045778880174987480945998977733447549953742527285575849561251868656089292449442583228034791528240076582510595195977713132705832771515382866135934124885660620794155510720850381272125319059986648983096770697860979345492420357143586496785468016662359724918713335430139075551632130868457092342036978156592887641766731775008949387111504142156791553863433073584348511449444370127204869133468719982582404469075053038006818454166834875875841347944191170723595316508859374771878938658623529358582779933444316909690812939929598696951427921810095062351849035878657094615947426278362245869241943551586140386334797767347803167493696303654430244188525190032333757154083450958835515074097018154318743554343877535869746336768345595142861798069645964360330800363445221532962466482769047264915871517183260187974074252501703243765334451599499347955957990471800327623126937131544266506140431580827145505983483811216331417339919983008377173693406285520885679091070339779151041977886591272318207482447135813052606044813933595106768153913722564631772544539904370683488864550004850515386907329530575325891188968379100542616946357298220609508546828969588597099547751427902325458189998380730509807395165259446907216214712222328909972741516533421342800617445322247610968112791499425786212197861689223291038759210792205422201134196247087814231801148964161296846477854045012941494172783049670298335703540830057484480332022321426197677389823165864392871871936635469761191945255111992538910060490260316150656398084347960796697252258607773234594243732672035031659672137605825054111737563932870853024508992296543042513215070842905496005414855823050993364565428985300616190376468166011861229545603650714911752655895702924452308034886893061648296087812477563094583557640621123054580034965912147166601047121831281063223432094707785603892048958782228151884423074585546920643333083566192441787803889142281280684296131728350757313721786097831525375479040016418071672658632242285829990458235554012931381589604327220861459963581039165048006075064344948052779833579780646577482041335477809131960349595675559480738435032972619732793600550986673399883161757781195597477099323172219591059165314951783450138663420785706609407584982544945203957352997311564331168220308115697224389587723487111916007555092833184497136472763174875928958891651425859596596583078215108716092009984614165306689595421264294286391634562392237043695929722050453118641329578524796966032733680240020886988170056370029271576298410493306424771008574294659019173272804955202906036933557419617071781706436114730080069370236695609583463217057078827042864998856015878534969402175876809871209939595386272075711770188093761993129082444349093920347556513003760640851867964056487660300011357597274069383261303873845026858495936409290855510651835838054106235035852646909686464458947252978611442170679904770537216400152663783122088121736065276221260135957564512509015964071398870254076563989036219626071670744615176762874321552758974902622662113475450824987783511067452836643683989086978591169087367581600852629922507231309246717646356326202277650383817548520298429690841134606272008671953747635518245578588176205312694585711829043178982550046272791033201759158282974186510571623984853094321800268756687005900040672637060541113652258150040511562689623961102131014120596046112114447187436826460651268728813948531676132541913498985700424824186330333688545956251585372166225997729706107112797506438161179312568027188796534979430928777394062958823923237165749167423105405992757826589830116200011717389198931558145592143568111881585582093524913921600584652983162452986861283711675558178791860170854781637161303123870132439901216953281339665327539253948202606458814022092387337518937229228498911187037477191704519495478850020639912191378087064026967459462916984865615892878431115192070505549156330242564447740062389005831098126662139820463241902155665136710945911888182913643791965637039353659356568828740464027566152452580900856712298972980246013239379336006099963184213258874036905106514986184581864658943525597438170157867131352298881022642201502126696522023503676671762309917846823946815535836011619093101161780963698068183016057879602645292712175261200173644006491753300393695624850228935733694580943243986112031335560741250101404845910022264945800303874226847492900397747307748721743456938243145248371323311609059436596884416128304045961239510969244348955681846601145018137379024036076025882850418199436548701248022496680109805821165815872474930947706291440431900122991575701223708204226570440698878550713712575361950803431630246404401754196911672238530911363374964151487738255672049688909110034199214544922901540052660591420313829803738162938179482148199496124521229502732581823999374570354181510432709076191095526436314240294796722339996861073429766663001601840729674015426884931948818291741965109046793267574991352709825228867557162423964047978143281343654670934983828158971973074129003120111225955182900971748698482465898199569131495362850153262873262490869474255053291747128676123147664357822659122884295192842727624819803565262388711408491035244428485751187838981303885764201341004375236357910564112664882372851167053295717708362452928656780737097351272269695013483013413955580868295753281638656963826674785005008864996665470675978419681062476889402659199539699097730268139356312250008925865827532393071999559362003217905466414476608606402475727341303738947032922663958786494004032978152661088745526810556170882253097817135926168874784998800584763260730481690459658521855011152590304267688179792253758535348152553415726149204583416222327820016982356970706074339556498049726438237843817887178706123726891377535542376247597584858089628846766517898640451784070114755006018647294012048396867323289690206162225216017662437653750285288473990242778281883182946171410544677013684003732547585976042696096228349159099117599874419350169867287222069779894473392733897877721968356907373435452824727723067915021531506976344143107021075246123536191940087646363306022550050008558481332115997382005373131504674413417939116384112088474123626930940398482812162956730952419838973635536606827765308246870311136262013672531580394352661663331380994375616070645958861698890820453479251102532186096682500402871525371055231529328536146486924651662504337997147015253435098453275805854620365590092518734416798669920341510960032280193715833413490384278024000322216762591407695262395405810061130560846651574626601716023182032564899100214054323498930066928657557240757448099866075419092372933260240990368593970857792814653697096899752505474974257885756458567769254655514735051247902697449138258103988067264914723122670343618664139370385993136688827094453325265546912886409413545903553335192295890021986348505947537635707798875605702435452399928945077192602384796166444731124021143155996694720461446548947951353827951775641745644905707044708767872935796414964199339779859918352670610408301425457445996799921061211334851824319575057682153227040373028444476326031593751922711496457941746965142564702797692376221299578884019351919879392108025550488434545084103412145047064426052957674498471714565431847375996768546498313896528322544288706411838613581151447253534666024062170570418457898440627163359267631218626887124447876590954782023041110553843916398893155108418772823620872702339818945165724703566989068719489470694277091446561088596696235975707997740549802601793843088582315163425626677355542495715020933749328706312226325033707267941268282011775956317014181353889548024168918327812245504875235373724896094144119999658754260729483808767761185405561911567933660830854721480907688119643279846230091716050726984932674800957923065773354836685037861120109448767219092621687552360291627952956020471567015706287063485169439960564015507194997743729496220097841874045730511730918048086984393895626864669304110872622620199180641001355354041667313833409020663150328113790103735896928033242279236534820581064433176756487070330170257628069646629653075113759329419632308722682950731943878997095130638100295562088066709231079773728723058792135545666895698050027129609230924803559316319645560400910718686509434650801020102318179995274529984642441333240817013758407627570953601470029297253245092224456923793272203146038893316928702458863210348212240235941058257063699412874157305489957415764243077352241109603785529667167753181445301726849192132997652359723711098441880875354313544325802872750882885749805410252944970149320292784875002482908317099889500424681449185552809425546905153112780362318527732241193331509261161940088954517571746035090332533747583783296981166630615023452698569327038020275539137267239009428213137584106402255365744246661741933156742242501503596955975813886714506518052159994087725538783833865554497640789195076185051182264691189215088141242402108932412462672682147432325147183410122397765753572325916452806495432244152585680985995397739153835579675188449025894823480767226263194617915089463231204621139531305980758611128680911100361651945070782192888922816702254340629608733514454540695854819192759503711377037562151882895854029075027949710830624582399499876898999391641713942724010470144142884662728088904996186760968972960452430613162371275585599420927348259563639622404115176536884017303235677962013323944809987132542309207219110989881900948599159492689512597015251160495032127799804395373154863115935507404694988219444267352377870647671144150849589858732579163640339053677233118446624226940088997409167314388537891794324771246533337948986586975284359604173869801406687264412285729152714053910437646599665832475218257237682635547627988823743737222734124755714556054834128322662044712526860364206101423460717307169475218503446105944657774178402856553416757694538365104582017528351045407963551133756582726146773227027104273264434802868176782932742039972251737762404940891284914701845168567053925792811659160693299856817061219312182435299542677623076975347645924994725089552943009619174832507729177290828554001101363054451926741852291027277723090119607506295762307603037799939963454523285330490565255264057242966587780058859717213519344920045790748492044563188769897960875043402789713120471637019036681356198957272517153769112305276708853355170089943704246887503824621666538602161385832390506009804622675795774041270480840076367342816587368564642125235642586834244198054496132365162566041546950428266889194843349879817838782538193253411526878783721173938745942341937651181699222325888210967044366508367935905144010045040718722330513667053984600089198334777699821708551486961056915316102622642777789190452284443118807990850997238108470265678436947791152814067558822354857986962626098632920504357904081553942420357845694202581834099579983423837019902719973805164959774367205073910112505359591124639508289931640716151175804824415452162808648062720594878387792555042981654900661386094808749915857184859479646723123142784609099315410448348674788240220589929645134710460637705215767792016631088356934198968939897690140853176971032062710359631930661460250992078861117631812191434980233328311620625569305819173756605049941434395470554738375990350612055053070555584791870137341913123828101929684761698674958698141307964904694098644986450778244071095017516329966042979508769530779988852490486275203383189455098703592862452050419170495645188154198099483341262296062112183785672057252868735640707338212963880442333797628252864163639375593329503759799649733164675014510358635676463627073714162572222565147487357986019117635279494966436770189479935918577277303636704326238734613382267191402092971063328170730480439069320974764259064868530264481149634055052303746733519206782229721581746285655107461308163721850062045372577687091275826466374868397474400427410032003831983056354237067365557276806289810826470818447652015654039872544269574804174848545045388784326852708428574400889489789967884529831972866778518593030509161361666479057547139707324886164962943466240884138413969109414093428293418130197750762607360558266263709310146135921130444720389535911514045197934003369389550676861920594327838923783250985478467358398078989797508884002088294166247169444101116863255065771143779101241502325586592515148074353850988918276740063298289037903186241721847420034645828103236289930552316190310756920857460932187187832253410141781444841708752126411920440956250646981767017273490431997423598072520656489496644362917042331421639306329634904775939963554788054349740638434167884173126566019333909008912234485183846410285110558395847201864429828515259960295301976120056340595709224876251155202838136315139815058980689290448843592763792293694700251535118457075902732549326526770514224514679596431349755065170176120710569004936089307992957263228927187396622733896427104519953843143927659122540802581542403536068524611730683346948022313764669981557980876384931393830899985403563451593885732354583905677704039909144034192459083130573727466368387528317719631611040918699806648701766522729747329386911531858009976989263820791021150182575759144051649082820763307281983401981661885384751401353378738177596530442979317961228116324679114813243655011948825748531739036051897471434783239788413370997876941331439256526831781965655716596097276846281742160502916598014959708627499323441398872500244698635503784965561839804582922093158408961872077208916827175554303007192677963931766763768857315401820481606474996829449231251125847403513136984954744189221164393655798614879649923550752338429794285938891157310477145254869342248061254395879217531140740375216205553619052446350387280180895155226031439818562836522757981269639034039885337541828149459539313237527098431122368441324637412699907997681604088524017593536103691187743335041250314107288334101767373514054689335724738291669098347934094413121420357402404189292362194050255192952884750304991603469937550026758129583816162346939459303971615546143893176561656535721897624979865841852821618786301082316925516961356442021030769637213499099979446657371665934786568122422378206348048998844695956134215150353266310147691686162245811919623780245400246293456668630281632892681280033336327638106429430277897067089917143959828673727455125367043789141146361634521958149345132586127933215205011569835134072810707757756113628915243894601566605801671216690096524573998846048753447832145799878842222360657196597478504771540321270567573110686902495023436722934298179129793224529341097748789521034378840381572788585836661902950993597871494969384603265568975374503405464194351445599004883255567781936968022781563913490947878651463211931505265557341940546735535105973609374888001295778897643997395733197652203236889229808297856770488548504391755562636535687128917829678593625868835781737061654767730827015472887855241278444874609476178936417516291595784894417576769044974975982176889673293130905305078562666720484932750872475395471650475504291632124000747566308167874829086591179277053968548327095940888951165606993286228458800589518835641805770125078366831570051065937650257563594799465536830912957472684098970671749439232782464497692114098024258330856515086699770202465961937387576028354107814438821292305460911817642222337317871747600713286458428270188939811184243592597297958321583617978892138542372567745179848353191293221140122437667593364228166694824582455797752706118626309289702117106960736354761012513210203590481393311840442485822924494246446237698558748543901567198784781296209735843471916335099768982258352204084336310936958434744914506882185895349815771683657080007659637731890785121475104449044220911887268275028633972712190508139847655266507819046070522228212062360957311249785864531119609808721746758165963870733226547849605713729371547441944601631344861355225983060570126024065924180277215703648668991408276579753239492806330923932675571603408432625187396195102017753888606203330823848539018864445124406502503858778128178459441090151312976839404348026296612433800358380244571194520484565877871398849908053771141139132504527148413042261436745331873417937124456703338322888511513122828226715200312644097862532493414932418671505958779067518946713442576133589626063821460167195267575097061744513580857167568804872491026180134002861472377756245754863072712505279887013385789853897538586949403352895937100906980293248764382741135988232035911282711002418552981698918304908894395574893063211527529003156859829488590620654780268242239267838592028101673498723102125223632329057723341961307451283617708430099657238573884813720238344787527693089013094901345582806862383655428334997812255760832019355146090273384733953248877207796368352757390808332362878775857730855302004119413967823281771378806370751919486151184640429482411729048325418620861714882788705145867264432233638971043215671056709138342906402791702654556253733084390685130103223334685559089155807521515716568059521737585800014168448477502228285814141671403992700784909960091000041504711976121455521270457127535220884847608446058976797209512979786366812695328615040923900114489567070663960893100194528255618699295340967588200244933348776547217848527459720110522858554850424198073935424099769866778089513805336278136934601913331138514472981844722897625750131312064915784086901543268716366999787794684901530183486337628946132764776217342340061070041019582347706965889842141653704884413724220898411991177786982590439251132845263095959016856856374394783524666538472565985202361446808743566927097585499933917470890262354470268104998198365793831926088419174737214118679266696458636223484722986210256538951132292891297256360903143995101476897733910082720227714675436902115947341690718235383629007962317366547417141179542939962720171276539937870904286431449200708377465070726238933041466493503004832072485589476818440828012386752544857386573165475454273517617244037572860339781515681461150144146173367413930355560808159469832526274986293288955410580655067638571271788866298275109265366685100076915058170470757664810465474572075028984491955792461673052318588531905740657277628718742899668369042032281761229521288211711065003677043212808017225419693103801675157466160712476986881498637320461780103741295941307538650314552325597463682169137508427799349154944703751408692193530855472128055303479837692332911958689343999313700817083050816331051149158274454087528257945051561777056360216129841196921587262508527791295210157685165910800229987941042545530244994965668981057026217804153534471940341779929569163814353531589077700534571569411310619900571022196172053143633041407270596496327330287690770541502340242319024740677921692675090729132299665224539748340164916473137321237426744294712922764481128187075754721338972802788761402224538916207885881923947944028929637624097902408324219436029097794391536153512517869713748858754600814566931816843377879688942229644153026091182882366968463363335569787714175121544062274824267508366694062434360973849816991178559146330899304521844638782940749397202236968541158936698638067744154985235298876300931162942844318659797862093742087222985720562975442182001327543389794041522241196270100727873922198224381118617903783180979701676418165286359574051078547838775634341860036651220425191713121807616244390547375922301559376177076014439415626192436601624829586381242067470785074958536282825538234051523843265245744253447307527854844418887723162591985662230281174825406600162789266451903518445023767564816078966087547997095433284399304093774499498243323829960977570892837418946386230230093728418180010956489650955014873187447960204450259151993974388620956532115531917690017365148203190344975200189357705119184381919880308182224033774963434724195912989739541546532248426573445247967411742258433619623671491855065028311473057456671421224440975301821969242800893110780091198856431955552714985857987649577287208996225625886864884327502627648111568979971288675481121024795896816428622875920662102674836978569294589406880403010217213352287646201969740247033423090269285362840100874996053734290327272087287978461261910019374844857902795293994947595466359659867990020170364656919584700574285799022071798931613169322556317797388852794166693601693047534018799875653589772318561026726396646826759647186542476196589151162225598248859326413758656591403435353547507484555132241167576011230952553759801215440257049556469510499040646127209233794172279443332857916908964113926230318341086811901407228733137210691036906129781890694336619671346294637239171682839128720635704750289747623943435923062640251297652615382930768647597170657719123744272533957914843324906352366028491817067917740483773864481685364154239704694296306520665640683966872912821167202104259048462401559241381174073742024629072710287305804476564059069952433293076778014167429687310432117637604627441790365598431700740655867193532046885317955631423829108202772870522116365450773028828037670762522413380987942664808267978684812973053774196911090489442973766222451204276243673823477512061068176647420166898928359397622427630068545408770837174472089042144013071884246374197016850343608175740171100355977547756786308386770762122331644159793558904904000893784336757882021217051906764222410419653551763707804881190967695942250170285787371782227652545239853455309733074234678925071825508844929511125487544651326621852307912514673840247195186019233598472529817211936011073159280887406263277390570281011438456929395442159458158988738434225254812748917432409538899674106627252617433480212939818430817231896165115381519600883650656913997068345070683381687066877026246142914147042358225969683154468671958625931971671497602575690682341451539237494216067047588360513517137581229364417236185353953570288829129184526269912931679330660648811218796100019955649379806838266671021699210854773094507639311630977700464364339494050441274877716191105411603663541614957896707719961051911380529205375431513726671002919501409568451933472075938628617410208293533976983003751636365258142737971326714308857963266725783491078321192338986541263284877663314377413795294900721760261819142040960019123014162991156740150427695940014190802394938433691060314557683993786450889528830383890232086569123035186891105174383857815884470061455388206485872980751021473140635967848912895411199914038695106087782656933995076421363907006018559731149019342127113346618134115302792072731623049746753663540039664720890345518075056398850871801283079690683107591359385659100839855988691583438592824865233652066314816344095041812133326204219551959309404259532465979464761889958891603271011070116239589103581114185826110498656089853139710299479771063122133117419767999886105212759861596482917666369660670970430831750509099881439747058961251574518255250501498264913508072589209582792862505667114581942728773207195543188931211896940157839011145348059250936560299495083343634523480178550530308148095914720941103899468221373487209541894578588055091740697584931809689745564447120064358357746499042810348631347598511690457136116797878374336062553887613302470722268622303905059613710431377433890083715882664033270323583299877260527432835951472749380874457131120794269225663274359105990694960860263211063426643034266238382661610854289136854070748089660573316073813676439368132995706846539799545266363747524187438077789966971251003707723020640061439806803314231400249477296972939924876210199100418732317388224565007461788098219372423031230062549008484939896894561626638561194063115902143312124990085536994689312645809300951741366574314877814333837933893276155341479169369121492071255242423161767805510913137373944058858897511983394017325719193213309421621976700147752735420957271649884913650639277377456331297665656071940267517219587165766077586272664584663667495244373150766561203420404866351414209664224603194635028410805945714061289514348918652016490594419769370192777088207748471502228899757014145858064802096005319903425618563826749126965112558884845055591753254296492671913160557114593590160837035580357211146243777715878358529626618800342913497093153660088287853043878930788758023384555013026961681516967216963926802469948069204095590613114875895706199052365417523770929904124619229724745421508053736204395213523711505468968558609348732417102524124135211489215450169225474501369180204580264364438847259581959731185095037507168641028429563443481522959463105286771691956639908662529779141009540191194080321680218907035614609589738277356168580278765886385707463031884945170337935069100121741797357950525352891964384936862357083129697909319701216235587230788181592987113741611914239352367385271402129799474040197077375659716673054423262142113125095733087279620601909533080641080133337629461941462602490732068716307427266038064081515906495300275832102207262300572784890633026649125930505982862468710308416521856181544706793464820855163431494943510220734293942941740829253589933665831543087641711300265158982221904684102569093862923944455557448101344749339462681936711733981738195532199270641627937304776778493772532504469325837533686147958269411725348638794922062657611777880832973147962192113505476463348123555490927086606806366539599416612318068610686785787145863495070616567299931904384200103807256891841516843632771193828888960841418423383258088524095695371035967110160687187969868255883556729760201317318139862241568814246156647527529692668787015561894770536083698057706322639589936269179332730892552371430467413660781111587963901921173094833714392429404488079060931089517926021038251402082362202875329979845636439033127032385459735514551608677664359038963160260528181800217969264934857530356717273740849479346897798500549150310347646951844777377221309919902804980800658937058567408379166740286075899309312201246529721319476571228143900117738992459819583780320231584096753621710542999225094845005486859588458615677234349818521311260275487993454801218317904338426929021000577879287947081904545731055652540686077047488048703347930488244237028944215309032095913513653087366146581304637986055337268373282970752623838476419039021621382373017193449195007195105222026790524237617814228036094929218103715607517198532101505569913801837206103822284281314352654050568131311441104672839314451881773839353463935664132086447119379323148305749487471832511993957946918739740195659249815316956326462082968130553165544789048264531625830990558020074197858509682657934485822663787878056053463944483256857380998055731935483859903117650247870457184768047876261999048559739687869338450415433542295571855487851065543496021892045140562988746107828414118779114524986189006627417379352565588398646464630193495694121764420069684669060720054213367711984360866441113134723324241590794788610375657539051406927802298767049455252042071179310889877007507976412705310259826143071234687969357949909034136622523046088259490036118462172505088636948812500562134675481000695923058496837456545650491668015420830344972238048672229848896197358790252439685011365239815154602344127019234198196830513489284676291213866991151762155345270060083273645701728974654558102676754726400898499303388851842044204781843353617958032700444207788001619162986981621661157738883802514536625343660445265139798402750290763748998547479470549554027032644524582261052787529439076768936618134446672791287762812254576758716353187801432182924010215094771694828376072017531233491727341079119953052565267412055247422718655604348041641595742069063749198765871217640593923901924658922390464379295228174876362800194875685744473546992198685897235759919267164234283677940333145661971782953497203767727281380312255778985082871767944697026851084015499849971244813447514285881822270402040579552295403216355000405177059112867623520404087516618573359979588097616747392131261508078308060404063820433547665327010294105062324483780152386432376328983397689232188806444294412653808077339158227214009034576337975658655925147604586620229726346885871838355691903849381362745186876927257139514453826730795105953477654892346906139575231659028461113410977580371470397687482581220371905102564230728764053147541826292583300409513372761157884151526656972893101696607818676227547091676366327753992336925267040401971556922095850139297920579920926694199856861619773937265419425637649408429025903878558248820519200241287030274397831922218969511476226272331543220427818665308098713839158493469491799215323491463088798754629209456544472888003522915078520416366372119781091770374954054654345866751062791413140555010590151853187160673979692747350983590293367705715465060602658573546550704829212543359616331039647255200848273344768553939180989627956883846770522120653803485571230120503535190112358298527441635242262828239201937748337452164213000725124831409861723662748937239622622096831431073971799606656280592698033388744197017013788790012746351482567784010639933456237429895408201016974808845302813878186390180396974095324262608813232644274913980507560930120181090547187638373916393145362019818109335672487829006182056054320393868202344538986385972324507728237288061671897114782037983824846120820722586112727773538816577521967073240085863941793760302659854803747091633016232266844477057530749207712040448255588140127369313055200453885675048541632258707551718526640227098952722915080154889293651417589836316992226458280884003129359130605189903436514344951322493061412783656966155748127944584936464691274929879998235869204905758690208112902425978807931675995402112191292122952236401298807821933040700806595508332181095557716289071708476577111065416646609141445572844793463701349601995953357789053362958141729629188038974796674128491498259177192204549985850199354320921822618593269088203624215730677052940596520636698402151070285865213891358431813123693108802231331029440850352652234792929168042440231844026126291256480891138020133134339702705314170401546242469947424253240437075835247163730581057667390129026743650360504697724100355147731567996350601011523469536799076510118714797194384634767766393529602269636782782446696730552520924597774989487314873106168862832829543015138489247841700619681434916384312296448519422887131585053523614085225358546374570829556932222249805857060615951728160800986602439990334313180798204793378469553988978863513872315250550895013423410332271678963307139201032166863056469135287890683105215302900704728749483470418385592694634793301355205730119256785710108236516718789378586901250372413086570366078416237600275056665140757339106378493151445083655646777299307739469109287621854971297309669459714786380617853793962361186414231090457010166704536295625121601005216665838386038105592581740717490191579629231213573704437236953334566493134753946061743727033804560234362124495045730135814527422886605800977555554334089333625193811114156156237383015299414609335911918208510572283502733611068877954551151567987528256570028901442067493669389027197758513699556854993056294646350177071821769965373109667741869474328361465325860637227206880206034934477659121957727111105115657974089003311438290540483548427232786446976804963969435353128199680045532096459742632062419801899925089066463301563232995379710040588261627092984295755579637015788749961216568174647612638813907785485582965246155565414880192998020168667691879285986608398182971163641709126418102951920225411106948462899158751922080619198604545920451204415137247201458841606233656108669202128423213234613312736394166403439617220677309517105370147058194255171789060056529614367942226471340381412182808244146055247563485048836308182958729247358363867053724330451407102450708048330198036201483063950200581104300347149309312183878138690990687989573448540917761216217477586628372578748081816849854335763146980321755072017418665726111104134617270174754516688435427386703954016496788112594071638618708358153071367161882785060224942077468915953936314865094698842574592998773998923477597680631282942970457746058201399269214811104272425027746203015744931405279586127754398858808892049122382542977701445420574504371805413107411245520954825107694622687977605746414622780554237149735555005386877013033747441950770344112043911612709993532483856260658361033121178124836768002031626696016153916868654274090409246487475239662974902334669889517583909790207453202311404599922276426702873939271658079284461697081372270545212870412006917950716407891662127314195946737175098439560385561532598625201174649945289719986766715269348532613970521000868315232139765469053958701034339417493605146117999389119714283260110783340152871966587753933990443871803738095617039490041562631685141428869688297885122308279799759289387112093340225279306779627755195745489986961304067387345743396833969840396921547826912017231977853273948999249141706747755670526006828859945073820129135013209066995592107298638556546277544133082754261187916746921406077469645138335434008402727886184543753409510226714349911108472826680271283558946801233937882823411033836969608084773596368576754340600822551840221871931323739200089984562848021390735491646818101864718087435788743050410981310557956499301887883866515485841665674884416269607945777085228046926491707442879849789037190620659230813992057124449493875993191928359435389054393301647501879239957782527306750904775134596433545259132795276412085720093321380572825500209367103350982410748208862312087238722526844931329312052325525207168721621745830212006584223692413807986139830592061483156519081400193868072753247261867168276947399261967697611793685501663487206846191800969117166046810563815830815524491963646819764895668017197497644177787378969742649412784743264862844581109597503978625156405255038505606194681064007384399113902814759876727854526425330548268378397963004665112203144121819153725769125976228053226573395434007132152191259840096106875375096965409773111223198979351459743161554619744142413455380856600888079650869747735765980895760945482100355519943306004564934152869507007177119794012544208138623216584578886154915776284136410203023879039327696556205575855270199698446051910537743266474685365595051526006763072514272732414701658710408491491283719650063056153840280309419502355548421971319455566083312571828602905724138018676218912733490878279594830693787809454119320701212018060155994903508016447103892402144089925050640937415547230500426200931802900104027685903526616913163469096523902951282178773458159567053694310482499504235242294211085849899682873908768957193176094951506775484741267271592945921821178377868830552775329494730872693422934832088948162912914603177527169166972752210930663289676908669377452360682194131821342528449990840040748655231621993228473346817189590021003022027166108049658861304701617526749471964796570401434147048785472710949412119660572347062755197202111430127257434359458214615074869532493029698560323378587985971909361103422257626848619053946295835286224890934017982020596455390676884913548084249670024218214586854053318661705001518677390563759090918645427882415768808684748753614845802845236856900651801196110478782144156241672991761544484824158949401909294173897893459687589063873680709905182848011008247052010634966305584885858045022026708970093391273066812629437706824514102231271261627012645791749713532684581964081482228217741780261582584821734332402304027728770609675989334826189814949607271439148082327465571389957353386701173531636959648660183215097179900292691409821048284120140317308904652711855051799552385326010349357374349970243528433884054647362058971606845081031851327094844045280004582550260302452362226616896227866191220231628750860299359469337957809667543518481803017847238134356926302926067846618982993714646428447375289873121330709171512314292105586604459897887426758828083707895265277825114746398176394580717887797461560286759820470122322427792284225686364853262875918151567057540176758507804086808234574793978733149639317788245010580138773164516539539570035349527597519413136451671948047107113108891156652687175892399159662632866689014003590236782240182061909459998180690207268089834452420852178007112016349234047578125569167234966130969178890201483791052220829815597638922454637087739728811400129299594124478097001223590244452547229337465149138160410241774137127791045874767156224162920346275793559133367206482042039823149074962195760436961033859553392008968267012496052729526021081887018178771164456321389511968191737474219435312222277720916446867065916763743627074692674129831204216207726153734487600120301357937389603083882780106051557504675720336465984651506837696819681688066821376963380718151717194532396421461167689028166845125417842108225940784519085043181563877140952167672709759569734281869960146760682751476615516185289078882617609347151877756253860732000847648905659980569691099638425438877272306477568364013296663072957696300942323617534444868654903075136800269465656501663752013051274052205333389537873451963734554136610206586242627106066428497647804160161747277732170388481272679477869595311726066146527960781808960021248074650523870101290491316727102571952867391176640785184440288520813364934678297188548657132852351845241649276073425900188418955296029817590895469978686300024931550788870184269995456956597725872155277750722472949877532571068915278253807029363057451858537490621006451979982400156847635931903182751980883541082726167261748565997518192012974728919801692915462742669264294772781973546223951400353895947529786569539290729485949787927810776745508330315443526530207731557799522647184943900396246493748706164972355204719915550194753050355671913934078484564882862157029316714609754889300765357843055685266248767176784706967357356461501645149493855410783414150469362185582822720926761723807907701511395265693275219791141797810614141459102885800549305482444981891312961222524653850136724789686791223309206842849493048141644095195895545422877862175326100041216987611280364271132291151944987639744454554936872483548910716424181420853455343740337664136865238836984492103008967703804861262969542021398660003134339269926757203731090949212588465249984567026792660947146141291434764291230215792102664919442728605164287692886365559885679176899580113933197172094955221273363637244119111464744203913869762745625157248504062472275505992602784070868431613485353897335856767169987110397640133651509653508860708072143458356165942330540223311992494130396261234142782341937729342052924995189535654545364786249298824384811082140614286972585657118802577424683704792261039089234193207164142952979850327807181148305244241388150954825787735327198176517991257504240183364337627069931253720748542715485207574627951916555446634871704598953777254258477018091015640670533918647033068094688491483164445662767455816612016834179923283171239343289525618023026583141678331351410762334226664543405633256319381863431619048228913256107969864290336399531747651706138862820551173566754497656279261355106652119173822530718890965511575059553289724960049832191247537333112451989025014636053245513389666308386911989295640458204843465763836061558859937563339892264215121391329254973041443756357483004420940899051532578941702526764890842606661954983012573275107131624068921791623094914030831625416753935424380245020871779560258432169097561972162711864364967055840379806906721766505206257131780272099654888520203886903136786691926502404398445086273028116059168799144567446841184798277203359820627693037824702646366987239932414124558037311796951672790937637579963708758236541977659039934536979222754401229552521896545510338599334247624507617615954188578186519504181295606939387097940018704167839262589676662999391208354434504065878339109362961397937427285032366460396963326272905128021707518652259461562321838305771830286458216588915264764863842346586245644372233400794110030791148487114915191475686626951069856322585208828121036974051814502769396176550032254539334690373116813163656839295765907089801571054588406353281478657770976612224483761206325366948990886606112768272187407539312683303922074082125165352902198395654771760824928766249121373931943757941422687667342666429486245550921930959287096679543111720524658465946383983821814329992367026149314681852255166705248938933810200407245475283088069481313677349656139264477712353471800091266630050742180110941631835349715783436188863585937859723320898331542743366655551235775210578461819228875535620142804411212981993822068963610015351054885265110152438828575423577432812729994378756446620800209145875945072011442974901413280991205402518617644007950687834619257927295012418182739294214717696288751076675929420892270595618163637411410693267477533039192114093766327390871450453505007435667528402990021166923884832363412122153617260955144435241335094193644399069875495102856287972614026820331631183296589046954992647957006542949953795145182237031100873398389031559917707784936075396009417256083170931812113861031511544943842351670564672404963943938241471106494336973432803479470452787784557639149075298590333946332342324233581817639567673671445465201204914792515106667920259759358121625185234307427514078267002761732908639323754666539529770998419859334335071293119599079270187748390806129315079813810012705691328484919085788917082012344904579690420693451599618021525563510876287710184694611837417674959957882326170217566522252788576140134641256510791524543720840453235065627912588375809420412298672613060525320229312119111688241220855191168272860766868272567868687363377740617770507908272407377634912495177797690387077127829897214792021261094006518744083571689023043294492024853141307331042517013105191818261962929266834323185910294277646663062652367146331910522802287547428262443045046638756296295454434681188184547987858005784131977349088803606126841638232230130573697433855373411203450720070081296890821432736950643180655728692413896743414693977969409894509698382015434839621469788841573840555369371041049631016770439056670858889844329620351557194406987516634250600042762182493261438089054066621987784738536455884953137207403940883764023978301889768498828976714620940959484647830754900428381999904608407626960078019411119454499885839951585730080605212675396167797762465078144309366107473737872250314317171918895321440984284702355377744680843391835672906944312838354252022608778553194843007628711530124105836833963286433382665429037901918319132987258377435547013920942068489039473086180778191290390102711970189440376908761705665843916454921412802676759318508576003658919095434870671709605702659963782166147662441089882814556928338238918144258943100103430937482377114563432885347862163948227311892691303067194772819746087362175327285059168533658751552539340541450642348968507560895605628806379484306728988960108342391868510059792203925587244374090719515717308362917312403004134840583087405831226262850141703414328382792297432101624765422366805785024273088176694408881916509036151180323276524020524423160682759550329423026895846390844574659731997653692134718643899345810751066372171546671366296770718231598269838393646689565401925170403187103902292289453516203492431123751902770423915870237739079662749041361288560290418590901254096881555111182797845529474495335026938472230236700624431636735171399773035087068870201226027540954888834669252458681081919465306987712843408859546169591022107878352530810243621663914987713174114261354068319485214441803742020198684704761712037460350332915099310546036519833780503921684193107621369983429281836054209699081180647773736376213430549386896043613626658999808269805867694981055714384500642408387855019446539203847008378068837550479376504115911746206587013658690322322372059087904863231768654096346497576581546717401772694537522572996754162577647527382613227672128793402111372132733188396166353950734117660675151635713546142293121887604863880728859626320021354707161696886585181776403076236791276456559150560022904277849261056422869495303879527683971239307709788180635585441398968257340251466808991286371134885573387558544815106268669957024275394566307781898783037381592604621091718431467831073930848465826852804577321635746228020515334875376241480196600730300928549451291248974331519848183102246073321466560009491653339037469937159475438112999730203375242625579890439393603567616802286773932188287475660598110188545335395574382986777143660377234292507662857997337260746570076817730506214559704147263989873857755369877415960413909526521500553030711447188441701698311298834290452055022422059514085059121152224242277852388331032142941376904085215096375285683128218663131965946265106498629969268779761276563826070884065054982999064669077089549196574910417697681089761476393311635184564699952214637346539485589928841849339558835735942885479759856896370492751101468272297269758578473577709345195542210493462251855735867699894224105030512484130018368244517345705099874257497502802461257271226661023963587895935922265938658338596823191037565038629712313083806496880144316584651760021208431510321881465349763384992517778243226090566168286804304853081654865113551997648902009350056306193521287710639109758452760630149002397309953831206711489864359855212894242805988228725320385789435691101652955280610894118189293633087276210714174318817710232408271470125257701603695480291211424482364054417007813487684110536573340830710223905050839353020101995763999647437928159885534107118647446589240318209518122659054013359498788725495252726573732441321034770924587578797293029915002453083257405324019673472838164817980775044721939493415763071558229158250579587069300189242887272424130555889542016517064701430215050350179047962554651780999203904145349034544216946557668584624174579475196415598466662883466861265317528183963284347124259014687016048543423715697354974294375836330753914702039875186671083610044506786222667450735405169266165610695430307546665199208139040586659439115273108216073251648350068815583308220575486226605336286835812804717335082641388039963064556381089382375745854463126830596964170852375085791589874842849847087988043626314035861379821512709304003204115383402220644261088417187506858483896255391195717484555863956450809313350945595775843470826578473332477009449885836965960734829714280333846328662287552376322296373873077803940994705132184269724680856947427063087703932390498908851275506665944260092962006983096846562656947766929121410106833150058062368686058531679244041259173806967031005629254738210027895556374123254055693976964036091593041232854674656122256885579080278474839125184334123095124305132934833230955678381765841709893095451643695266396229589432534926809421236606363827148434732344050843699327103036429521893234838240003141735984649736670997559913071836167299568830638074612767637182655510045284459867989185668366392058771161345215050908372820367072971524125451355969250692450590654435868195243878516729324658083178985967343434826774058469948780925515019109007503667915901918810322006966309110592247568477611383898765915360009112626539981931719646125600404993088694429743801531942329559002854006828237148070385789436655184611561045509292375155610585435072172992500651918590739382134117527545790982501517323818587076308117336187933948052853629450499689817356004397730318161972953022051300168110610087279607053692899753588361606433962246531907093394650577480805040280608696380547462511344003697996566617302211090396468168088602102000940067947710772950798528146577323921026024510612759483961254407436237892593206154136687320846580234793539314130553680280398588405303980024894567982049752447847663123482505245760000565045733608188305385060835036828450320804988598165468653532086474821529431081054829138008868675179589056263092167178336583920007421933847273734229649806228540773104372538979100457739693232220567689493506058269428386116890131714185110285218964277440703355923591279415006139005054604985956050691627756199729232544172755154386866097063660492179034178321465568108339350629863148380837337274319682542353475346132323606464925431018011693296911920788084906432045440290420405598170288788399305876507424342329907606620954080117386105251689220869845905113771754981028486520621733015587008690795272548418888201129672351490884013771365111526731734634156295287962504118822264802849098420382147953719436690843681463974570563601811746589207522587100793607529655350646715415098253039105158178686386746349824575231113133431444650816667206918088215397976617162681229592782617594030386318738626200063171916467431215113306560124434077391543317568133737424378762783661945291449586650684118903383630093558735075584126589728711117632019206979384766739096626441336272466431107875235242429766242804368995992211986901596414476673262534256026453696380610003706184480155715108450665208508211070052394331553881045943103571220101322290170818001790326707991117761283974319319042315496096862795742578366123716666128234479316125126680303247066581694347231787923618081294016032793119911317361284184011098593440183939120502087531186098731917829165872333442805328833908906128147739270096258202870787048005083937907494570174308202653655558009596510593690325656343004368058480570585033891037267374597431049264840924089798621208570631783534387518330907588923639477484364659203674218929278000388052101314300046957536903387363599508685040052397724723629087796249263076258258350175287745978991408199777062554540930886177853651844475492784938011656292726967841733921521315206681078765452483216946220866553201680370419338976668740010648344409400086406072420022103891509371437154876422086833561611951244035108890612966391681581491235452167076324223319975281514611435841247505003222817891849794726751697529640302497072551757758257912700062991245016578283094595750688944869824035243424465303942398278967797291932746945394368988206747105083139664628719856028361508704297913352345239395368065313297069271768243732639133289521791859684668701492602037161076959590100556028466567755703990589370643439295530282668371762570728640656330324840587715510739050241950076263496579864449311032448726676435888058886566147941135266027882256324690357199186481799058875547770602621996980093974313108121493415409163385142912844676548390191549390615749229007830769983816981337488330757283679091821422313222792822262147489195684652639437605959957578062396959076740881289795657693806492822807593709661877904213982891900603090795165445101978995910048591947384327703365679805627845687737497074273671251749286807865144395641550773852637075775517318467208247036401852314431535441584511034367542489355889657203882975774856633495316893316680253280237744133961866305939326465081912193702000943263794825551105334558559297915514092251595834684225909607412459474726139103269084175095790871883063513108371018027412308747842709449407719084461226376073511030441653624995734310220974816637832339772027660921932238665262736180826101097666151349292101333336464979832887904475873815258205479278251628385142273067389841502361498499416348847702254501432405297612659840128508223957279813230676499845677795438914207654226331736668251608354463142475413510246613988570646156513512105143190475967706408159021450275234295781182670650821158976111438430809405982452787698367851888212322218084393803196532556428433538718496422239263198345872565473764019045410890505630468870349035666900665371000828590654361884272307135401009097367610904946268393641041642309041565056776185936867678248817275969106373999119181790307739153611548032702127253200096882857719091241204971360812227959136583038644436912730822624700508872619445902140474459429493796529203133489978491120916560722465268891085225637781748946875726779478719232418061286618761105712808342663500151402238824269830319020094051133587792224267889032255395725205445675653977621083455856555385081915447135902367726413237027170140665831165371652735452030188287657353063804703754275985888832810595598129784319907981584811002261454889014173854007280739652245959391472462554489042313266229556034206974978852916333763385910702456599587734647041898851542243511297976682107904780395187171966995435822930393305488160023220423752047623886174678729349120333975456065509096209436938196371840530602552661188793730602524879506108876470641306791553481003792405259477740583445568038137935297028385796163997190160657067392814201760927149872403960132760459586414135654336381942659838328523196314480837011867510866243513551803393423479107206714786976357809509560148320553674471707674610145493357328966295199965189685556423408691439791938087873121459774636802233566152406685115983185482630352258922045373919056053736446225783910597532910806929645926786688284424543890141326323883728312320014022327673297168225702921678940332259076693770994090485014139515008837478979662154807334248280083395005046982894951861556484855242261456491946936713727415101341801924192125222768705829581178412737312166494888023570610590038814942333389353466604645204541298685897483272526461413733096934641979409053465054748764490018815236621882983676768661555214226450153765524551802703772181659128144127635787172374961107215660417573601015792938166849487811027542888264497652090151880981289265456624196110731111318306528441854449444964965068202143319908737558687902970882399338418978284235260228939458846689275436410654280475353142089766913097855402077195207772443707493055211457746221155220605508008121616381809699421554153775505402998511737600851701686993319978464813603645279127986189728015708508079073940643395720127142224015771516839566440128902179381737458450935919597435627103485086664659914224047874172744873125378209831689177312921302944647860105338959615230824157984844840154016144631726189379911862475567286186954658765216274331512887175267882265386486551331517176047887378642135096007928376285959168318706206853592680518795785077666685843638820638996326204106283749464584292321032710699187605472617924252730431763590685543013508733567530622953700390421753188079147789244338081766651016078638819881914320099777150835602032405058868225876822858544021573593652072636337135333114690327808183307057876672712267709623689443539627413382201676503380155517359735940187777326747725491545725767037458120916008165773678591558441252895400655530035941946416628514095702073493991199312723875414494044192636943081192817556673343205995400165324616671577018252362215198980122134268375404288289264582117358301585409214181718451772814511069375045077008034438813989699112099129137346401849848339819367436041678160036142554809171533407700676193669430259733876375979981522938159878138871763098160698033540066366382080774170665094718561969190616817210816250970858668301284576029428928349474885603917988673244795309431232078192000889282658407600512459896412166292500616609546627036639597424638907156087745797228549047918597850375075964793760084466954743711547992409501063080396397809673339777776424113248886567660866042822751550181372456178393310698521303448119968680087919151512496413021601684179387505865792349965059351477873005367388041517514565759287972966416247440122760840733568501203429446033109758658055337927339523972306057580921134629045040723751618052812779615803003371760457254850234326325485906339118877639810869436746059231436671833487068289363132770593683644675989230105893513720169904009846359662735050259517425671690345022559483365281629851294289317208345823260415869550477230959769932532163553591498033418036613759417187265363317680114556514247378322406763222550231070696228759595747429965532524056940172928932067061211904967648105440238847169568880846751785090419910813505995447498315706557125434266166195381970925956100143585949110228730015009680183347226263503336091375549397834623290502899599452959869268775445585765964472445041274537386117088905255872107972694095129959593315085850657369440496667950488023431022718524659747453354276077809798669274550015041350917106120094149598678461798047744439325724097361617585339302729066099445634651128551847797220290835060011179996688659942012146958409814368693052654997032062216527858238286088399789749673872586177154440379927083984417151721514790504053387160263270967599068468245635746715742989264383429074957136280882770034389577479748090642645195656486042582821451827287604585668544768401733184188077463937120739471900735389655524859858862121514324259597354710768588698741262757658653162613972177399914233189567107362651603660620749622672885442044979742384363001744494644880414054048317138444167952562177306136676431647295823692662422451539975501158671905840370726914153382712019515743326194736336698921473114467924870975639292040643135885249962363382315907383097513562744754038009238448010065525877990950006463544562233468757934191522522627552679185144104489765298765013140995373253233287772249100491817077723190742893263795311273078124429823920667023445406495984738185211216174761154035775589014333276521097011388679299435579849317803302358401516049305157974283830501795304857571512006693787780060294152031527815530479229044271412556383901440135488218231946908733226166761235940988238006886973080253321892450501226788491031307384551495247176385853862736810010709610972392771425422240766919172633118287263919910709020703914078279002260579750058256408284510004484032573995009673157691054425945614896480353349478987749305920153956203134290630752914103675714170059998020370870552014162818442208027687157179038555710388083336033970371903038272120564828637837392067142390700409312246461009529479155847827261691084590218098010911093184901386731624404873936579702505503428986472246712196568213247821939151714157361453197854632654485251569478444862259683026720406961876500698560021498236903054071353765912913439956681887588689479491588479994219281802302926372711805464019456972526914223043041720379838533393662647100351256916692623984313716819218043161466968905874765289981669299339003680878075247831794470098101444262389424694352562147268568986671477192680070818854498755685367992047611198593576463736641471323544960448771312191656741975477520349925435236575303151894463712030574574043516132507426637962588548600223867400052748798329098079805863030918090850182328166746686636824034099162463330518230071438759125298812994877264975824283179577208614093373859266131310593153275112184044332669174261084460379613254772626013536328941037869901058360852139021693676307102985762076823491558052813618021506723428308059767666085379132878365367885825664932001363513708005997050837107801372603518901334377898873222501040483752498160033519390742779157196765519308581578143332300951110296829139271571864431665789094990517253859887493114297551900833361443954755607679975849726418586934180663680206635395554021273815904546960058512998917327145337923662144315552206188025180975232551391562193735577187799192649607030219928752062934338887297169764754448410463842326786795166073635706905969836820777171100828899512297487527042921489770329076396222067967773431578148083430306795896085275799074856069675333709623421117872504750307434612025180053897456063753804506744424684838253757973560080020211317968676297151464268334058107437954280639185280808601217473377203966386569077209281099131246127264399197415782232015470341715256226621733267518733771748941463941361345610740436201698922546523557592434413673700543639475334648801254162760114215184170230550310131881020556385121214507528359093091106009186168726371253304164324428229559847257633636802459384948960327318423890331312345012717012970441776928672968348185505230947322183935962778965100792051980520198481301720541926722573725691741970454124722103657995124226900677937206826394277052517888173641572700879383564767668642286616700093171313700029168372406130084358874196282523609240341011730516253519332232621123959034162876784384987072400278525713485453376871615912785939050800074210787651779976152444630421318599378051658345564282851566790869407480348614572585814952327847906610418371281361743612668397307946950239891063915219940156825002019247505902837234541656052122741918529561303688300039855927229433032855731697847102551201233557562778443873533494459276227321115442138498887472565793262818653306614080202660046222172091233049319759516685695350277227748051588847413373224294490051004654291280597838277921311827945869529273332556759886771645262254762464722042022904111891584633673401660038388793437791819212249806589433134759062556019071601432606836696004003792362684555404654610809736193582629342933958119170242065680397681348405818427844197597186171653218955140662611131471724008540490784000197204147940195463710741028129215683911896930618906810982674331500314586193844474074182299929828384981456347437132256017195257189619680521229044836888528355841812586240135423835280852927567981517877723368788979681293812306909427588373329611530131632034642053292629471458848564153086065180832587486145846260372419363511680744050494799326886951604855223522759515498698907131367263017101990240522666638693475222155420869151826695971676801870311318846725054047570658909396878736386023661299424161342078571924544320438009346619334014993150282152932851438528774548560784786844765519135853001407274246520584794745762962271922709627087775825361019058544297872282560734250417245239641202228260904739986615304067215682458859776537992040033069654918567204781474157024165341680107062116489645784326647133342120010136658713144462636294923938198322314479552449218285710997308095864110558606626941174574149591287111168888668261301772905695990818910995747307065837668827814401094718752437543477553608845721754413386780358285676843530191085044621937896093746478060895582998953684153815582707569232321440861191558570894704965959928774480486294987815080160876638370872659957957295762066569784089436425152079479143281445029491933230639878887054524334944414594886852149937299745447199397639893920228847169782577943969028509667354202090227908452131337097498575764192860499764692741797849768236763654829544746826385074139442752746429053251893985667492848799744797640413985264179303687684660770427015651046277950641965044127950881687214045100607909099073909071678874118133780511686350213446889479025850515794526518510143964283324965877453253069987226670363502165741780043293082706583861493260967717728683724422617781103175716138686246357226688716212230924820617718913739611418457243283017052267782920018414039071884871760711065577464302331824449449833694896380196505138533205014228213283359228640749097907733609554611340674359917253907588106098882614101108827538841160689578844161785627051912229962944746914620427177366709634213569390177617621807608866071427821637390411174545208001334321196814297321602211884973062885385792524668124143676703429800029249464134826027091944952050728068748478836570978782020041777899157424156972219836140321296281158625520379394662184626540569425701115380305628506641610223576856385640496142764208399868104743988286989644835307810722473237591929842211602389116644553148058059923136662422427438234547367901661004071454430338159802305586109750490387280707570961446019442270813199506225358411774406733306091281734125417529377496164281042494085157266002369801688918225705256397801328294589565049706568937740206125635211812179485890494050039166130224918871571440000146598172744556509392398874554099398073033695633572077588589896019105048490066461045475565026990629675877205840785057590623895849187576299268772019939091858682256311289719420850532718408739231858485099667337620168458332917482347532718359644917946240551269010227534731981220153554441163846225496715624003319668134184893602644041437498600088718593357649133850613515194873895766040759680633168421673431975613492463306348560378854020602054904190152058676462276868640546807594975250747176101556127046245394905772371119271079653317686393938742269872484143883812998461182022168597517981238608251043371472980579274923531260705155985427118927995241610341513750722622235191045489637070360723942122042840638517142695042890016900028832053519561679620913496301379165007668559808130242069733191425424160443582981615954169974551374862540293048095147965235717583214372307181532903999998487902514390165193310952486562166531135681052973381209398444318886210919387405696155965714513774340464171218324528909693592241111106684795191743953925761744257454216628784049555949359979121372786653063524384085140509751805111390089249126296674651921257403140290218269584841057380592596808945947328402187496507714244906527728666465922786173463459187729892843144967484957899299761598937228759626215684392941487607050610340041074445550126627727331991133551398521570235584994387562309503549913918350447146066369600399059976890391151409986898358947544771905086662265119562510313945099641443895624306335595695090633172667865113171664020273197698388548245556964222322866820824225677509852825304746310008582172521311243803391205099205511382546102835674293032205067176903927638563362039159474468432692126839101977832953353515557169639398204835820155400954863469276080211030731091270047672377066006578556384143064674561840866567716086731499434725139152876636558942050771642875421295705090069176645576076832840783076751630494990865428046856020199132281732977311172285784155023562610733183628981866722715842679991945934756068191857956193438705191471044874607761267476411940329400051893231444108714452789574723784668464608137213992076248743449386103067120751438543548217057754205044405040623225462144922699689519055460536618765189323002953224243945583502714710365789041669527987168097743110589369392681541191057833347625076911479845049963652393130275035242063190189461874381713794005565862504603975870187755903771948160355954806840984797380555728116669704470220389312683314298373790523902700233628057367289589618106459854908402196727708347020890035966725943090717954933803881646954848155898034299715467546503822860703748772111583522865010324862258066307809142242103738760470392110851439430482242023566027368814745784283272558490411366215431403581985300667058101590353375761360716825930330006051527265020207320028070411878132990081795249046941034711660676621098461054739187207301760899683040162580618548425035427245574170133359053603044167812639357118220818833260307401151312998158499596384567048025992019314193520956833363088185757345870082185264696308425803715683415644516356284102816431142713101696540872540474276877861926951807279365437863971127762349400779026161205493818599056723649870734998463067705458709752547587358438430821759184261141082113570244161372058308173827513996693819541341840102834087864510594095414171093968790888334492068207213055913199302997855736233007276610090108361929768356817718162742932419673194990176536042392844087081485817763061607963240460861116272139741244103572348012106259901821848454138435514197352733997968987594364283106534770349233565214203809772215803471118151312589268133037300993547457301935440788263328660507705181767848627196263474999505647035759095525292233940361567978308183523247199776831245939851533912825101159572107263792208458657955320597806006924362907875403177535039901335535045022912342246703431809817737075890920074263835578493821112261901945866153102602218942830159401561658333204258153319502116262986844036881773166683509783793153837549486831241635114410344748197735434550601105824594481232057193119943253134115758069446555514158162666170566013222103049853737111390518815442457881376515258444325947953962388281379534010882535662718613296121290988599299299797289573114623012821804155774610277134068677333563702505649048961064870049316736819759356867376785870236681396233756000642231568665538020495811622773293585573841529959182723243287862434749194402100972740494757523851106094596354311038929284905770392190553615212623201135712629630705150745724752222267894977162091654699735200549610049750496875486595986299129107533207995216902214683645103445320907750349861865692121174978515800182561716654002217832307691383637522497927856143796312548970876223706203392676212926817010424861022162003188321163213810169751335942277353928250677993950846550291204082257995306915636219091582772976538180826847611165605498055125665063199275125161579452538978286611570905088692433806567362939466587071691068574289801361170500720650447904141826372542734024884411640965757969897073041963085155733697940351345746432341263542631673272610038028419916616243737415577022465733485359292796694635135484578872458983640351598679302137411442081977475640077952525637234453926164859632841775362615237233864249857885032340487527649213844838320132729617017626133232181154748691629708671781014900018837801661128492932454502836690158409236911121926592866116487645666908388679781216698131565223515152844108489624870905582171593072831875537097168161172495556173757903064765436578603117922403795263442441338645714566359819396684990463345903516491593230087682080789222771260760792101503114935784518865550886317822154136449830497954200736921788815085913327566944995985509178687565438142655848868217430158967905887119010831908859976536809399699023127859206992945118669956884890799012826184363236544109183983188321395101277107177283064889246873565346297302000993064577294377355140744383512497529861035851928261821039908316743836333651712845937737374478467479724350502421598411673190555202440009537029536355772505687243882515014510039390814667909411117517060100401472664517508448802745051907493932899593847433622015409669311183599469849229097472701851953017037319438761231540039444498512390662319523175084533453945347231988312077436032898454731065211493149892993800927104418417079642972110996263461898357482862117001798719075842781518517532302683076540916198707682859266647659287132975295095152054074101578584188547416404708397224768569023850595517784553423340059354808915787487051945666371268874027105573234929151204641374387433000982306886695755626989979950325474990376417819139240964291422971673747671090416153238759373878595476011504800728691907384562986458852322736566902610860806953449938167561996231506917300205193506010772604302052991190102484464947056700974798193625954396812989617577085243622213858007610405749038078474681288920194952719013242417825884173729734065551131761000176041916194511539489070878457514317451372190402589881878479744347204915937688261054916077540116282576413229850130547104346085021172488171918520403876989036129341842809733241231527381377533861384680488752315744823012005073183866385161190021199463011927222816619319061133156970824357771961536518026470954042011187346962174019909550210846280184096316759807443933676894937884431695651803899345799439501213115151027305354815445529865969021942481598651443533150503390752892410248486253593063595804937799526861363156353959572456558621349087303103137651704645277360766749970096732434017122923676942738286061613448554185964192559406871536682371372354984725294938484780203678111601703707903354415425808492326956762201352490012721078854599749899915937216409697304480203672572704448078485588182144361351104473225580492029456318917433430813851971676728048617479413750484196651817653468500735979067125979884293804228939898583116003172521587345978858062565648514280262670309458163793709930224628916860713923054582143344566858483823695929856905085060948829764898676288222958863201913991407564907246042494890442566455318893021757525121047019099202782123383891737908343566713862032138704052365761933131872376593920047385635487999405503057428463784601800198871773502571741407501474078942782122227894724089102992066614882666053081854607945687209339214345420374366520351784861430634861349095764915632542264105900541181913644902251697247165696033245541350403001831489554699496812075085239045656149591410237403745787056047370962143933259813012023399013345657327644730371864477323478950841638116214823469219133904778167936827500735862072054486027726286453207739303394277543192706902777566612586078635942355740380188314989967410606193850344280071489780372027782329838838626573427686179088878898088793096273677942188204750999696154512326312660554746693875235517528217117175068402567698083030215342700630447235217947737241330031708388889478385649414538823717538180859476545468344845916670291993663891753338967204072064201614234479835980478111211200666959430028431229441712374467925570606358936549962895820521040721830479961722119979147192069351911263782518363596688058597370021898030861144288862532053750297340785114726068198985759074599663343814814613429889710298776043885313607211222029107698457255983312256929461221157751882302924383256514318677180064562581051078112909579857118765191265623223519686858998164326518532092590223674758003155332031671910166738409918337940964041875165553680709183162825056520786639264041342870347947305903217769154075870656886116802660527365878103037826375054329320070914363843768560659581182925172893754217330533626399801479781013044243533631262126589309012826540033498565829793871320046821419489831094565551037664451491573657435781638614343126248379493308993069443110656625498368767889954133752409383675038651279937508179555742290096887506438904340416520242850031212071588814808829312190000857657778301847735607350240379415789592854692924665638805430008422748228847785714885404297565613003314057649130042398800207432886718375367072363512330641166086606581469411407006111481705285949140488236563956445112557122289633094764831771224361294229348068996687795922463426290650399604704136917345016564154873059083756345139733325562658290154917269397984310128339567062568106621118027797353989626051008938122513251341331419482605045226134731407526735914732788653974101220466454240480062650252299420968681031168576451173564861442834357803313324140003188058002973649913796341593443502729593560985752685335929719647554510499776155683138315430189725272010519916215466438163870417496814134045329561635848857805144968627126901891615989998436256144930879255807627793376957448342320372929599229427971705179570893365396910866924738519432573107195947067876663397832673081427280290571460499361699216092300122482135610683514890845329278992798603945182959450468893574069755907873892589150089572335157555851608158548835071867792894110327268685473347577555619505236163394814589970527833452031021853667895434058465105900281572501573784408320628079725909305924934983207064514213292843193874012410930360546210624120715549628480347265544639022060334922802657151374652000227014290174656612205106111372021148499138924002137766881511463608344736075767001914327751442090844355734331733347257772447794627012145062922185253096213115284987834981910930003015728500470343988206131886985747582024597607614490465435143086641779879454447062295888623867745553168872059382329611196048550453940164454945844391717933240957621125188393515121286549090712057548716375254565657584479249683320942441547701733575032315847261077481422371136796165094553298680433239982128033630843121114665746942759973194876956857825049223964397320796866563796304455517659091404074599446094475152764045695928082790347208824369278594979291867364366260380362081053494354763848119593994937355397579775659903369654724665754856190543139735295484788898182911752878203926800421770632579712258704803689740628387732311263453227058301650411783137429940739671115061501924565320034787853659887024341080519968870834570682162428512570554953216209546803556977622206983440511940716994713886851073672626379368440491161237961990141785353453006680905931567803077159543901711004614862533245076914684635140404627042549041478749912497322615652407684306629693779574126400303884908122942611735743761805531874989140994574969731316249017550586335156343005027242759124484196329680133074725783776342145547798338255440159383190083553608092879819051119163448218372010150843772005617949965215142290842411267954551787370468499443127108554489059260915702098009624771515212016163445169841724087068855056570966971153146711977718047116221855685331660325411074427338822672261026498351553522054731082253756692325353417482496176294476857983359944165962579078531186546706038494508071744149493996302601331968494069688272940486361919937548710472539508604198363778891275702748428170215185873758791972585780598072644326425927082514459788584397813779752317452389087806899983448555118679244538781237343955614435377622606335176359665870914021144750771526949645521330027712178551829320871616497446748752681965010215670126153159749597959272500012070881389444027816757406948499956740622180846449080172516429471238191723184940101133584453164414094555229780050764100670658113063217696963879821475488055065552304313817254064084777823664299827287997511573901965213508730864404731139346969703067973615180043572865588350676042388432620759882522350051813475606195989710601610849666024704503090801016922752867974832764874621511790532653432877127598471786203169876698615854083913604727911169498395878049877746816510672285961068822787399320302384501319960291203578186961285394899337520261548418599943222944102774430011147303919169556058825532735680889166559399900004867053714348240065391963196934384515313676844837644645926244241665016538018019327421426040014338116517301095057035003690252474669763964881149640303457259295242668373778760484763790748412711946789909235269608243124861837513839033953058090995004785771381162696794466214948825159373679058174609307775916199194700293040300047294681353551643434900967550781751179607899759267890799238689426904355039415146845501563331646519681113513772235885430300358152729544498517976130654311613027037227708656528186329118714969834233819249715236474658529198105374560056922055931349005047139742881793400531972352117576904484957483362306683008777960872408371094745728898654618266114410269884446420133353156714442027747316741257399451386438286007798135322521983377041429498560681967269934616721183230747903767131450740640194530095387278158012602692154881350292500471912054761823409311701598985095400825140702315460334480227518544161700502544969241834784676077937200360694154520137056694915947893345021909550243785078081695659777720505586968002356675992361339781630420889318965317273268129288312198607979321170430952904443074607857164299829489741013534644476204495949424447816395781547026660438781902636717013502266900270923090983730963008226705965749125932222364590740984464848018896106674747110835879184574787096687117967327107703845201953422564965290586035149387975832624321900203021333229517237268315447737205715985527159521135622004041822435758276727319814588139938308557756878035651778918343330210195389098825063039692707081448600886957173151134215949530866697801043634436033420736108089368468721656931600010542198789196690677908023719756437258312429585797447362593926826596483238199847480308644290274346535437117902260152693658233958170308783927523086021519355656703361296779544287802022318462395120608470549626752143264655483684367923338063544771421023259048154664828062161533865736222894854658313669466283452694635233258894135362867312281308124139585484317019662544115142701592350055324576799247393788126184982115961868758314703016567742896057036449017774091146694927819389670948746618100554513012088291282701102557093625360937834690280515457927850133183927585955887968881599298901059484101182270415403361134539632630842965556376869628383000866041455420777205089224912589025805300854238476294509492550821823714396504549031897695581521452291597503566033838437567788670066360098423819006438641666770304342860433860402453196585196200829561837782941779110980491181469965524683316815917592986875889859826343128246166557401522842162128882846633445290312512233934793656519070118131681737968856723688262148346961309230105227905807691433010003853882348188347975625388676735129098217157976662835051768873027261304278457397053077110168941112761064172444793190667491120257946017835971636478148028577444222543619763793339541950144521757223135936491161438120358453157316882256188344132768912590771732859768098438750287018619785298097261392533680220378937734087419984488608882819154226319931539966726327399431820905819345802886418304357727891721835599785130535484018513364253543039591339075190025768717506555784546101106910248140760329942735274540960192603806686111974849870886361975356157952525621774252326478215962815661158543042640497294776389120039024255356202717982231757629741986499584282187020565667782137462075296696069108518578381985107241225389079326422770432309724149796238058428291313537790095912452226228324110550062335902539104535969760786528379011835848304962243526876098838401295978399685368378446241796867215364350998143903763732356935740226315602114679976904556284538903384415275300099096723443940255587519552485232045873414692656230891655815042543918905366573417742230808684052007175140964844273708145514578226544848880354015989194840181073985799440810606774899857091345503615398018166781672906987552056037309909683516888877300539239848749366894379540256288931156260896295266626602465190171512280679413710430699812398730044479576764029225273146221020820752897122530378056146772755708286003848732727572247536589361768163143936431544472434866123404092211731911952585464389502198077595748727336504609427077253355228890932068139869331393646788240222946685148450714869945306443162955859375868604020722243525769949447279393010126643748249932047003656123411669090272173984914055381137575135952846005824678449386051271380066063359357862707438785564107028797479572836925145959472093294550581684992256724932770202409081978746417729525486297053800735405934484986825565213699152758809000007745478570261384793302385496500336945081803222460818707331727616795711883330468359692334501395185119460407044958892666190571265891162009833104853717714612858334356613503199577835250222402352939686405424785379116670476913094400765619986014735771733257861521457855707097893749667139069372483359353914111571096469650441796412852074051757715865555845192912936618409392480825581491707354890394044617859485726178537429007994191377803879929256630513274643567340343584652768047260258289669375664577102517979418325133359640252575347834549262738511344769280322960020149940916511167567166594192106622178646050890511987354648211295324637134244603145552459868573358306785799226725994076750125979758480052047719581988814945644521577548948543452722691017404480512263541429514111876443157918876387429418246246358318391070967091821979130720485874139181770902778306247960795259317972084882564524516428502670444044441959275252294290952614930689382852190817760250477719125443850382180951862225759367391800127060524608020474129224202549417154259981684129532621558408870158186901129447827203312755567154407763738083968562094120636273205715245834675611239951412165585672660436326643430321510858284942187091743169122333453631349668442899846775520397842218444516820167073274564438304366813170241758371095240294389369944751842061504392982416221613988553397623653430626818048398737240205184784465658823713249144090107899610804372253255088436853826809301530468783596004690761619431387591179017653808481885345589767920933343273066518120284665330685992239639756198029318064911568648748921276559546939088537502153936574463847868276634228124403689044940635457755459543905971664161918579910394944241668459410065888428983173853315759268385013963671755188199262534165939596471722378288593423847894558066243102020179980082523519996265826731321778441837308230388781570571340208978155989426852483218036094913349442490085701009126769476057515521439441591176370048035209476248303647689507235727991779889508257251406288613033125683436361919626316481725062041434074817710025764500897772803376623305684636790975136533642385923153637984047739840020659892539861652679496378306120805772403465406670717175610162699496946423907510439696509209640526390903083226364225760436912644643311679331435925968017761223484292162727984334559177458063409179051021779671893187943601856216339493335053017417401983241604703099966673047356594428562629167306213356775323416592370532951277125639342405315314947113567733089595132984498552324053103991727513850525875789698757112740334142858614311212718848176135175244004114768157039366200147351694997281776299856067741502491296063374314881329745304562068100315966068453922531424687124474825539328303927122691262023991495219979024435072561926133682216613031838496586883385134394457838698591822650634718721751674888891425132542585723978489746012858077405779597398200505796822053559341529071151493750421727215405964011954595498546914630182987781940112883365680979738983897583439957297868281532773487122596930669806837066607712516139595869935135159261856782104258243326839147446706992164619443572650326551404093626273556449319441611749444092529977149657717153372949300781634222384281862584245630707982363023383504598736970863309521612353903999438581882985588816730583922248924297363223951732467167698723097517597207238491306102843765890022300531475829697514794564637179689199345599604253655652479097858267928383980461885359479093363305930461047168003840363391521134891937636607423038071187936565301147050903734204887510506626712682703136024875096237180826294615754558399016472332096281395076033704050694432027627932418383170667659666087190972230897399067750046439022663831473085305445126577753196474304422269895337440275701293820474956825327506435951269749758638514767681095691938330104858888669925563514792213909485258577534542444198563981450796291274205255507173001918090152416741369870714234018922437852912625531448965810433482207379883121528777654901075821965633812120436569859615996261385062538244417371278713737175224996247451138690596442203214396300390029114330722702848397009106388345207163726267846600268590789414038961007401877538815292211448160412791804870847480920371444629327092875852591840188108720506724604558294053290524641385052666970936847684461036028194287644276428913695430024306195278000484189334731719687784093693596983767766590129438766421289562790660314220308442095494269219186292117642381831269300472297967311134134785468035322133501338733685349855515727760967100772319194955100355623543602808810255647937138894761125239095008958605210234397086854390708646804158803468492661039624284149750777390967487488602888230437233542050353804315943872221585567382655149620781519561783344893190400209112829667478978599569433085714643373934341520695674813445394006989063113900779705540990023091843467683036565086851603711543924590923892720423637461132893869756092243065491560916646987874507927043223066983501212061096452018582422072740203060894944443614318389009639081936025055270984615360610832176708596177631893599290704094267475005297822875733492368792205769462242889330236756641465534372260573328106319323629139038385139163310142500379150288095395030033700050032952574403137553179995731737462556468065308670032819519413708529473716099226866976364606454942332245781527674478423188654079563328385697728721898498392650104056051403524731524630968183875954827329869690443148512706127240585379551215824817038953694642824229641822050895214266067446683439055216066937927920948337488993303940519104727007237335154613628826958176835514448225278750892926484381004872414530856263065199122503338838555302121634090479562154789750447888055240859457323969791606043969513819298120521411184406459849273662604300694244668940385047811479962049097766640477110943608908498347940837802482143863515135835597969186705057513360325607821833134390463086997859590294886310372531312903680066856450000737334357907557424482134615343406228346920348434493400139367644674714362482741038537517020926365267671837113518320732987319814405321910967076945117504249154014718608529786160333416292755989061456956730052424395481187881853277125590192121667172246112406480620393853572953465086974967564277808910812397648613842905329087282692273824679959759230393700453309696954987638550791533199989603061409798071304377348696331915529272979994088301283401857177099784481673577300674179868832214644351644726989590505565764481833685724904134631830210491266720740879780472992761785380390856090470397719814819842254606753740928206622005108471295932939358245034524974769766540186266767848478087097556724531826376981308235218377405678327959052643214557710260715413237105354788379964291260181616514758575312253943138083505771066174714520578123566988659516345846842608061967082710158155612868375535950187531561790486049295117785351981247070660776124995876843665506825123205331884074840168754569295436571071434597543435734121339856751627830016416655852983194733080697246508147688105441224304786953714636620981374682445592360542273535349248033179725264049306046482275275901887963539785234526705987200318927292596547214899302646115668361765347113010243458434094528068372900913564109552325217177943805929598075343055417837412961822665863676274013471031566597752481717129944591758721384918420465209200381009690821581184769354309901057345587025147726181298751229648052339864254168325685210901081839405715164481010049037290959732295154256826395324752831882712452243832394034001703947978400954618001969611723808652708517045281808178297736984525975399509828668117131570202791869343055248586297949908268894705267456031431739297077080568149387252860363196619280543402638518950896395469557901633052686818728184523703937276726238614336112622394573180602047190276316042351872156340792904297505062533640539292921968767358849804299285609875609088213640281762772667204182429678147469563201424376286529799515618277241753856874692499887130682324392819897998004283748029928641138265025218673485878203589716055103460489435189237331847473882442079408392210338096120245117496340451603900871235214655931637447220390281999612931595084095973849467814667858593566302863077151512078052968742658812164362860845212500984189864190433641485974985324810726930419122652619280007228982359506776135586180259915452088531562004567857985319586470942378553764388629272450922377063651394602042462154451691328079240734600076486570979029758169160594829878132529781680665903329735676468580540721187856218825377525024695520616266093914539164326979792358737591652040946737943469688643474473180605149209159958014992567472669839493490748555385264384905402320007491616470769546112466319533782381808307509282578400832556202922125900278018847032659266203510056146557138399303940955587165048735735856570546895387068582871714466418059386833439262910079995751000903399499574794096831295845938992969988595080536150072744008555462512537471921897332994682874495363511942148745107092953949798707948877902574996040192496091853156742339333155541296850755664704323806226607062081085132141604275680488591065466208878462213694656932489322903763882928282381428327976691638760015257588247198934061843083419858916053621595763609066272098514464132112074780462967103549110313243354678716625138168615910899816556449898183271545370601006631924170720223387626037567650631185589637481474080217994609744056522870087585421306093951071907397769166668325699706821763118158773695384031733296298219006897139355900997591000217200601867650501259450115550207861704919650581494852794706728638174678654174339229980978913159700772361559509834341535094065995327925619210707271979658963951222601683425313388673615116350345330918472475405750360741006195027770979889598021927870042745757823641046761278603022443099285615464648806347292032466049117974918460707787550943241863129042038742386079831923554551577788417989666345471671820926734527523634516921864196164953421228159999716815426336689748418189987355548281146543184839997422931412098981260367570039835245034360028120682852877542235429622806624823872353057616817332117776855642445899648379753337973155838393796090652060511640115061454813783546219822154764938523622927738994991183092830998102952041021554565229681928777835043715912916675785348051342522721845569467536422295601387245978394448359736351240248824053160687611729628529881572804913471777207608223666899108459501880349184588321903405315626572889065909071121591344770049694221957201493388243082623922823442261382190420501577007963818454287144501697958646592882215060990476846819124211126858544634726585707797813002063894345422583714926448390343260666967453204461856676664989458746334909915236238590005444810636725724403089361042871082621515159887499566333918739939836020544346347165949012569536242192853150354972653742793684478641292268653326130722567679731291908034917412482947989829691343335327597838912173165102722777633887171332123947106932989292772027374910630732878289999523336506194521994103749147970906718927472487067718203795206567232693845792506637735414569566215436048006826056209123532608421213673208421978006160792225060299496011728662143611370174138389263466488007048620139193124141438037409085730596308738484924298741625145700646601399605140705732719559378019900160868675630438349283904222129463546751738517558695152156309836291064260546384936690914548147718076813172806469524832474335577952457422192420346063230967887406672123562636697663862858416954782113278704389999860483144298479955528149404770764361843972269528601314645974271415666845496471875683462612135523722233165443694852235959277887895566425508950114569196374537687612910157669743769124567504226938729327621862514638101474517372716176037742176545510360791466477493295384217963846152270159041661820656006910444306917068734471062746184000034140903575221428881414585331689379274744054759819505337591020568994035842200695847038551403868332035402068328720930355441577809542575907923272260087838551320752439939514859682209187186002105703773015048133524351352215220395946063147208484833678589643528290308512745923129878565143959840031425149507780927310057991260193719212846421369957980435451298309677851592534970513354364728113836100562505148770156604882432412756041925926476828150962445531729571423970991897254591521289807552439333798673735236628205811267505652167384680514450363193259934918762016194445250760556123644680354123110314519379115540852917062239445555144930626151428994322834658905751152973558962475058470188405548223009263717912770353629749938671944367081666768973924917825255643249217538527898902518375537355318417175833451416865438301113510144590094098258927168185122953237675958772540681595883225645694286288709093992390198252190990300342225666775753233238008112926356986753863876359333703045852807634389367240609842283212104117012466541020404468115840536156761579602678621263244354335105522644110923573710063249193713880157962667406002446099099933058451984354743598262004621512592520136385565475603044170732985457574128216554925119023796393071664298162514588638866143683278429806914776222753874444336262197341464013456244021542516840567184189961596977178685862551709452003056370165747808299504375145684631544315431601464522616051961898482565521530694944237586033520724710505981035754245519671990411377789911985878285754420577858214589779856417614133226382416779562629498229950870801897098146430152268426340655419777419983782813722301435281743938304716883935878113524278992600721276736992123703601059466139298362121212200372933228494243275612465899483063679892976828691330130403407920097980985741042009544124036076323178895506885982481573995446233548341888889315083691055865984814004357716287145844756609465438340367752317620139534527936433856368246624411343781844999039827033366939043562852951249514682567594847432056908013007178880328454320963758752826470049161780356323044360139674242557838976123441804828255369562961649900856388440430609010533558948001044242004762146032567251787598466147482274153782469173417797626422286097698508722211156245721232384593367690970938937690627097531484503656317961205061504465503325338766368502058620933853681602036055207855867595924320635679621103215359766946557501324695902908324122891444958258886523299209495695999607847123672598082759525652048399844230000994687658319533386737571723083557071441607537141144321934050555932988575044859236957421736202396578342263992526831806424832112701340892984836507983619055623760001819039966261027490574204236701706572167926061504781052883955340726078765459055669685964340874043123664658931503383658075802064107803087016705902359632330982810356727571620363009765702588548603949148251930739742329867740691138105665046731341926805215300196836117311309798169893607735957600324890696648710312503939834456837156843654665182814141554681673796070220247820700029702918325971679828266214077622623678973969446088773794393867828479832140790434849200047193710487028821373049066618254443306996837022482481903529003997907879210808096012759205314792239635609016867241833418972787947349780235366360179878278873392378578345356421499146356031967378471193653406394484731322651976825422895433309190719824460813489202472557874412934827106943269494445888442871638672671063866762451562338229679771192341789779346938446665702233622329716117708806270117017642635687548993297559247548721502110627423284680600537145735474645468855684971814069409255591547217334838926413866839479389661220282797951544814176108989825141948039460822010503701851522852692298987712515158894050072569759958205111222885054716747075006442991402833366763460532333495007227889259186445634714768422376358652532172801717804879336067959514108764263993544209582667294904023270005414922759749887489860789256306582394003494921412635166552488493364272831645098378235931671562645873777036797346586023617358092713744332722904804084511720401473858381443009813357418354731172340347646718124474585593708292940760451347300189698972028342592161853900154380047836280761551260926665973496707924318234552843531735080423192686516329229688353791591684884179968326837596664883589461955411933161499042126797820278145144147535125731173857714837129825369344963876552694601878539389097606784862915936478016456008104214287509316129841552706946940611076062928206608711337892093784608086865510889480698895092168108402115583468402211064093021605851060833556837414339721483543275737565588625933736344090705609811047192824357055100264154798078738161454265035833873995691005728760865381242144757239890870251221966002019277095910203344297005956776626437667030925715293545939516259060400789809257421613615110181018258482945411923592840597528620494904701393890087581736433848524104875981158661550541172700708315560950010527185676762886568600854051242928843420246019011605264579338308119253542506539326918080743286675101764517810338125834687067018180375086527913423593023764318784674252053914955611418832676818052981768829975391581898607459376388167633575755154681438045411117947159464371053818241623001387880352154462709067558191372618894899051414914152382712330394833946718925636351331851048928386302345403418940268215871643729944839679134082394391240199690501326046852074410659512805666751727407121153753758293147724042167933345720656332645780883696620462448107402417828477827235687721250905491699997730260597330836274319834068219031285907114791285406131706404882602674358045211173341435485574781180003354400637226102720624175898418727512181439116961076690538109598116634918441790373818340569207323043209570440808461772704298667597394539156883583845174513943861928879376884416268013878275336821007404592958466464698913391619262676498692221182242192924443963958755762144147452198459532928112971621021986038740169899509403668417434033612408203684837553902494330629259571713989767307706762229650652534333709127479095357319924776688340972185591013715535652695321159584136127863312835709220304629438561685905803624898048653515754113147648602008884221201621852702192681293140646803656476528132085549502894583421927131644231676424434321360208604081637313945066870320141578124827208735419241786292196487413474963297900102038093268852276861118578651655003680455339788494570571514445758739851170414179068832118247951671955304085722254636825058853886230301546870716754931057636099332829670934010189952932642160261440678038078090030518263006709615154616813507793647110776115307582529384828892450056875565129288764227386034086231521370090187232209340163012033911582206830301400730955884460015781869258215848887681327140405534292774569141598583971353072311930839755900784617267008106705291708790369835305826487241341597360321859609603331985077455534590686963896577448960574882454887938105131812056606959546595741380808093952421083920551519554798251345109719827053164467328721334932509070439480563686695329712447181946327095760755397127851948580807533934205813169438450959323671784341646290333763283598639071393231024331944425600737931508419548406475507006801034909784808386178441739316282089653034592034879958629496218226243644474900173329281759378442720759966898406729369134320817819576893772440462587312477139964443810837692876388641392369855273296815764068084030655127612989626198895630370269658088141421456009039976246068135945759272066751314236665183516237693330794770558592079458770922516672212660112707275709570787695363737480292020008233264854266882798954144001545522210780529056742557802779930806540161132950923140219076897735262479698019172032193233180573581053356622192909596634065427850174695303836672064726000153619450702944894562214105298755216412629734629844254636161778075221626171341661482702794263345914751850389377866003105383288667547973621747187099644156573504600579165435266491546472074185038955059923764972386911919426199242392262936726939082363515620544084958359664332267520633789685196697523392824039857397938196990507561247604698694908849714273126212906713567728676528761987774100321030498442845545555499084036020442749639854291013561492169971199299554972409509440302514091247018038804486513049991642109623568908706485096036632357549615344511623159459073266334358362659516479485081066400579387996311220864496823835852293670580235057427838290562814526381480749619560828811217461766749390660793543056265265957615833823840789514736744404173589609640693755065689683103099293551775584913636287805061068465221453086239910520548770350003789254318924411053953448790256106702150082893632865771531431409173037504242046669268162266002307307944760086623004803766650137251380261619959983149910955081758827903312896208765085360914416678186958025984737279500925868803207841363322065997254250766421829145883681262439141193946621201302109001486801189303893609756232304520619210844766845429212992667735629172325214442416618791095201954508577012972298545873265473742802179586896960559933651309515013491204696796866750747776779138606506851028897055106133307916094897946661980967095958349655912634650008874434162238242560095818855951939187702662011700590262664315834287519385117831577751056647688223744191793139251001202554880267038060449964157918124330851929541451700191323599156940758019478977088565047258256907513180017377613836228563757208935064000476870637431703392241221631597826432581303141220264325219623230135698270201405583090188930833929202965040078154152758111505900261021384083310353223281369214170568476236985490690342122601666686424792776511046699995692797706152789438194979019893292807134181297580848310436186921166594750366319174372965971238318961239740494231541041620015649905378478898029008570813518413268016662018247504049879957862581815760847654964614874922744947266889793749441130800998937652750984710787074548353825239659541369312657813592787805195481117609935801953952608727599887043507401681085820762685855762542032758652572868089623832674996284896997995479442901436739854034501131266239068133980535573445151053158063347336148207307463685984994863954704539067128142965068323637381576266826164548860143742523728903797552046891934372676679106554502304484141473199145981569364446344216141610256152462882325444320419059748752561233473475965421046611152226234913419915778756570909598042610888164788376187043908362686302686215627774465301983312482382414949808662119031310830343942573854649713032190998819402140117878483280962077637518776154508498602426468314598106656981014250522850966721565396795442387011572845047672043226020758626188245627470403381158064139739887326429261378077859435916231689470258912730019267442996116198136365510702597321266946451873388150191024153875805496362803705293754897327045871361024368359864607907788441941053427218697357273972940687215323710215691174909102018400280195107917916792582209464369630868536578129246528853881462373922973154310496204364655344717529949214303310178306501777261446570817044967047460340847060940105380379260444603518583460755222318989557948499891429195750231617654015462676469092855590463646740457877496528922103606591759458974761770385342450371052650815169276749271105491215715020215485941569341180874428224302316412442751573844516514663684554962225236992000525774760479339820436013168110693139316667052927900865700643106004629082204921312354547270419964816830640510359331723968032370410140793297650815516107084993080640928760353024623274631172374457786398547785713720374033304634692620118407346157173641330610948765638711673620282223648187074883421479801708419318108173573266782985355137877877698904814545108045145476799871334556566340362487613734677267396816072965741611898321108760196175662002364649052659791843889562795563620529703432740241705083606958215509627057650692910446742805464647780374335417645670208185442756994493880892150723757649831628106432742929121862831476875460327970595125156324360647161146975563264796983278189258950347073173733099936428678594053540513628206102764350168436018375188977180632789185048186014546968713584440603860176278242055316107951933147262583977788492496657141839233165311663910512972337157060030834076408609083735934417976859897214304273978772332211916722924339583932605505905567731651136734949765315292827142480792896645153774576780663394054693194473545763552151751562921842448158912078701055798090380951094619256704596681446558753884611185708961309408751438809095561374972491164357658746566200925364996455134141627292096562797913969148981377765552056424948768107709390206664868639442413585465440190983448500546226671184933484739803017116914629529462431049663357323874926906546929788102306101399971898360399871412490220616271422082953089620777759516245840409079297207453883669089641972272853735270594734667881768233107188231420571053364456410496297973423018585725740988070656381647135091108058042226024493902638187531759457144772076310809682956658987517971518568031551635122044169790893745981050478753866777422511431608980778060404238156439756642568841126568409579470840430623122839845253312856262518540510655695522496035592846692565294088897851821505917084285823634294122486249193707423750560629548228743533878870737258548206353130669459482513758007804169282828935965126638068373258886113365066340687513236931073443875570286922813262326846393085434493403502456828190162123061832909958173307364439540375385473529556359201295917450561727415378795735776893222808624788717409571053015582813672553529141577337003545573725220620075372083756123246685671338314147081869298937072489033214171213956713063561069335386616205892188583926447509197833593838371814106836248996830676302788591262471774551757062873935127268196060214374777620151576353349877432255945244477187467291670110677317788547150148588560761264828136175233008945359114619201876137221287144204795461558616595972671633786287862675725745794656546967408270307370453029212935610893419202378028521134275389069292123058098159434488914629883225703774639967499920408651301698105569519946778435982817097357846456616441343461924930306012148590422587114544196726306107942485114671461511775367534926125275225447231732361829062218404341612242312127051904334951095418236014822165478251543898717491728300355860723446999023642083565735419360684879721100197145489443160971183956207494984146117600481099924950507821174981252701265381849266617172043231345026876958641542895008803177147747725565649384721452151448449868542495338372110593876487459761439713309363242343914972922782072350892232202382256116857567506639271311690169446380829296093823041511279212104738526825081435370156296846578377768998320352484653494263134099417906856927703849360050886318279436907469244840708439810509907218348857315667252310044212299584802171745596720782592294667875999113707361359543344925696369740940677562927551806211158169281730655675906161933586693788329459370976990319805130533585276607779324434626879514260218915084462674485663540450313555736541762799199112390147405607201828102702290067441992187032340655438023365683371609870434797637358703695426372201670317116638321683837688210432179779162465200678184400676804846906311839061998094737548198764823484035836041385343528079627997925487010526130414366391755392682058889810993527360090685153226302915462556186598525009620572618811467628521953603600726578081605581118152358404131597521923922785263053446028511042057446480993365896857122671085996701956377847231384216263437335448578091223473848263958244026738419883927018185571687727896261824258840758436040435176414009273571646172550089374566832779574913551041150216916776786246219738851833984315987058419271139786572567929773932703069291894811641761047553234048949044861403568649455346394905727864942830309194781012357041683273213332931696952720157839217401520775588369340036590989251251370624498627593085071116849043052070673099477873670103610986418683406731450789646650052850384543840715575197465103284388599727616457509001063557878327105655258707816251066255189424325181350179856739512933156818223045168145583493793285581003193987134118059273653026496442442195906708763416916487971644541504522784530867442712226606370656613002818856217381780066952716751362460745247572760902411341321392717902910869476891452138367022827026173467565903574766596145654641921186782589630981473887985299226132143760028712069379440526935657541394425263199039894736738984213129904427879669402640150248339367684231102919717976220366875179109126310387852125914329735286731662705904922262415506955369907172904806047540160958935817663946255822650264740982320025421236176712246519993972889584197629942925343184431760746263789515829220531467924303438689238219805564405946862663812803984374788352509288242619120455970787724192040659724920612079065834353411800343430492871135518959997365311029713208809434875856191385555478326681773562664799339053711569444367442659053267690544415829539541351599634492454559537544025673199011410442299561030318611694028912190902162352896680529947682063708798834340568439050835960889603202571988548983372265910289471149570081824960347858461307162389371656918507293021510149691680759469445308579649596600738124425379133513312258184961452668305541510082006420387953723806900450888219500755566423076168979691734263629284093422783275641331903113386557824070907925476575740216051186909975235250458009881311985120913879873532224018297106033435304093679479994482572529871963542951032396307781642648933594377853188450359511678826302485206114679705623778249720743568552319623948569269414868157025619239207181184330483446099540073820713713627804732535155840928245433724397994979343977833965846513446521155167351979071214479218958076295207203987645896868625093068235990544884259997315817814098468332630662212624935332655405039776888853792330128712493810844514676595535313546537221476678359291497111466145198308552330812164772477938333747408341455306897046642346731185455289617346486404150899631711901603456947708460563504315426463017713239164240803409093017199588671234274308508597189316748601256062730375112811061670985550800100672997459038290585576742850289020016473155057094303099285518361126166441073651800245151551669410481568639983567231554172906394137529015266325716907948162302888479717658648312743270238537873698853741016836824393655281635382521923062613354221100687111378061584721145430527163791037048214331337510943251314507356458307317424871053273601008010561207097811949642342820512397351297726640415858809741084506772411774821736844711837944920171867262513431823411899759816240475345727842141424848426992370716402083642300871494155518150729914501025557128596051368850818309257918842173593001742200430951679268209350820392082376422145144815580332382703537013681705852851974232400325829911370662707534924724864109401004157204770147019029028081406007066227918943807789211939756234869738909374246747323547693084944005750214631430342557482557567579078323502293053642188939613161613798747851012962052061540207335439783438541928015663371558360628524767251489415241130942439368620420992048693486017051830919399296890915808935205548185512129497735151942441796109545749722201948262901008317247127447268612879385244866495180790382622103092854209497451630880389888188536971709498159295548774337546359041082059628223691656843596318570210374763274850579336035833236524282210088907805459223839350955725285527090183209690918379199066689906593595367076787554000644467922908914513840898142699538424052983570583295963256305385716919773192801280488533430262222259366112457031795122095484956748052949834075293017437691636711199572810679240625761295747267416020548743366417933768059123736446728518341862534512736222330079052277958605782838771762929936938337575723584054300494779909652068801669998611708672308062460515719325773184016686768103108440860995203069844828779099477987097658573465674575777961206984358441570760021156874673306305298740399019360139397268022767307134448378638282605627772197389461456909920241291418494765477845957552257753906278674685622437891748886301543869438432545591419890082847628238603479628242391750989177722375715050558088828987159785332939366045025262219671609521496116451175798056089781596815090056422164268587246933838007481247084061889350566449217965498692422535625883206500216753933841712259641257658681536757901816555454218479502912070556120145824989685886371888876704256428143259161515410974863826397691971439914882990695631215507071398243876093529995678550224337040261769829042719328448131216572647612926250166046591940640979069029841288767691428418754475486701262067696310445775571440826625621027306314289686994596469610272302971502283878700245322291173494151530454203569641072029643505928507700071210707798489893028081842610022543369122949016777063237567088874444379138939717300278278123630145795876808720110243009101581095595033778846865730842052767068111681572247233983641299979447057132409762507409409254716636290370323702655058624546148058968884349157422554870611176318717290886819080125329531820298963029513182822775635181999539508827323773957952185652209674875795463725656641158970977308426194478091154949720558517367414870810400875533969355127476537081641738239789958709672592492510202823844439869905771522198799848727429908627527421378342156620939834870048303723923254769453924112803407435121687751553317077009050299099052206647130545636513102150288639069523400987429736871128892876004548822270906009594025956606763104700149622111172607710208748477943650509886509001789091628360563997838505850019966436081131632336997862414307158066995640884121288779527287781390416482106927177003035813838019094238803563817324771155408362937052594790529298078090442061605534630530540581709122021354660794956292249615968026735358566737625433924937852471336260577558443782175459245139772877611091255139217209006656174182212517597821619429430767108072161437681177044093379074538812104616769130074586077081100043979436956872200941885108081457851360316999880607929256921706725200814165054580140095050722560690670388163509098781713844839473016905566292679450991934992754724188612170309395545814837827821330312954359003476630423595972351729276757358074309296003228729278668244613319609303831608289411223450874567670822481563575232199914801719319852952446690476513846649596900385258169835135137232122675576720385229844600154350437279588788236575310451288370495191660978082337309100439169330551886667304216011572185516620945756274495374187157011939633669826185785561349507261958084100524949402812402332773221905765286638452730213438610460758152069322012239696759896812767624481793173144283724989686387820565749041470890769053190842003565830489384241130910016936192567810710668957709671637874766384620727983525224938442875526039392070042555728403156597100679242961328832969450639826411037617949595441117846907787297312697469748346701992368071536755645705600709186684768932136845945622690541041394531635822199487102385888698041747494233171163702203056294005251646877113225291842014927310003767837800629228744660508522609663741138888608016611839940296875627489695093390334156351202105003591935762667515870446867161270503448532936779193037077839399240495201634217140859725639288418457146482687578357038999055842628191892566958605113667435160269035110005602059185999733282780456136718747544945115147758985924103340970801582060671628554247046088231519062946576220679508315322331526875262406029742951510287911072781542907351335725980735170515846380371350304780497131303362557371445402563374139846996731680450437811204112258970530530751112360455538673817342792910423025871187882510449111462316890845558459075096070681582148704852728561564698167455867505801236176516674885501705369027232819443638425029202994086718934709881327343970028594209166778806079657424452444207914981227807509119769603465936167746174781443511059650614128942739079025766256006045547360234320422899641701233878206438873092455789304732601362918942868897751966255317710315446014099444901037056990167991950136468925060929886113133641999284496772402204774497805828689221507799418681456130658161779152018737424613468116186214836741834171091999698216566008348257666689760618450632354222015162597454058425769941233496999418958077609569099638035946897592146783529866422900921850134460827013533205523042512957575617520250538976928500664287222369070625898362597632110113830848813615578918457447546683013577099330776044265520796414722506948834507357179571653122409933618365523463622193908736766941351958175989784974270943718685542121950326202879627379365958827362031346534869645553289996776539176942851931295959439691000849603553891276271915951835500371539934349339088843902772191141377971498249933113009917433227373722034134177742178991741250708753692982625856284310722047686290572780605986785182112763932679015305865649086567081274711574278289065096140918037629981895990253981819324559315901507914418414799990934049887200375007853359461976422719627212781026654976201030771416289664907078365144503099020192212197992754087958057493317075329336890666971290005388659834404085627365156940038973240601999057170638587290094761991526909932832002556459017722391603705100966594148549215585233802049100859689953110581626760634284105586848530336815865776452778979404747971301984210390672861727322475627908690846428731734345640274419097090762575202865659689045696441114815549896778021769231374943536299915810681892369016624168127649943022961220567473286350106953344796039163201791429811562150945600292178884823235849926209430012539057362202582298168582759778912955086992734650473051664534471295666504975600957407352991574769331582523680842783225780324518473249164162354580889028911490906619619995836018524945734191596258513838204110501805946758798975505651902350139854127479934578941475981045697293567923032013454387511524851587335345722681814888063265387938431603894413594431128959320874925174860806820529133295155483800699724393205922117993416070783819698754758772649304749898356188756804679107698422506234291041784240680303186950161559665149465092620995122433848458927286688753791715867130849776983649193355730881234306649736035592599792210310570831022899337418330759557301007957823871114981271893370659790148717308330828517979471581363372647123313092738257024917670355539466871482178912399639896618547999977143218973004763894839255712069442698064468373217342365428256046725355288661624308267972447715271686744716002252916143853268726903696188449082346514066843269569098938149332920544103891838369671409706263769402406757296847194697924235190839238094614375200094079883253471483163456356434144355590860447771968133041454453454625103554109121391070334593003411049607825830710533344465466181737119932453479655592675836989945530841398165761103593787082641333594676363004321300707560296025030142933793702233423346451207969748230481616600518871500392355948966885344195160955928967192015448757588092694563763325392266904848371356790583788915762046874208339170427243255922648355578327997426609752434698835027935771225236573551477239870721764247254112553789560051138838010707018513276245460309603840096794433534589099504573544483518043889662889536447028227778093079909438493230450837650242257875057341147613434134781770419141274312071483278108099536312750652176522098078663698119356037113333014757001762409729089903687542441682621622542178341775192677246920806496524691291700694182287923841256308512186449738829161316025332821559740233873847234007765079584431496725389188892785072737593482256886588971156606605999722053438743659320273049331870825564738718272110778517170455156269384260020672681137608100254989506050042629769210027804733119196187899581876251044398464627253214204671726921599681863573791924911854152837104506195410764208363898118212591765906348503466283454034547987928299351102546332568527694443210611927352357775788337910164150030022838615819443663326976451204442594808395389097800471988982858564808602136210402460697368072583039281854785414076081746792006841357633378723823550255314677810086394354228981179242901033596299140157947727262936235536895434728274037037079178580010654163010912731909799899746892468282642808164944740612756270825743411028056606338953915254876470203599074345034033308665505197098801046464261756991672561123930796596680281631346424957670725968718480161863139284565050796352906815707471960821816821107478629094474082062914372413610789587738185302182630443136570212939851466598339196436580739943393416472675865631227506388601947481883965243779702291546237501427974602307764714198719217035736108931848617640959630746389353459694369828017818295195731854957440386969088215620286864403784598542757838951437310649615896445504285023047366435508201819581299492349963709846291678019520458249986024927126021134511798074451555220186746020735008779264810213769459345591361436573977932728223843015558520192283304963398242310622840967454391369991574816660904202763274497133890352219356955699110164690832956387219863670796639865727554466695150452270990841925757342581794658988778626458922226455089401137566012254467668517708147161137085953302210945988888166917670067277315040281303789920857536775964173904898430651740474152558066233571740718075304584745904333756989029728504718618885969386267945517326856092548431448575415409257323358179801108230407924033194894058611812114021450470971658016859624402428105414911480722296674534794004402547139280435010093461961945463082089356749364197750894796849646453355495038082966938347748093346999704017822811219956738922242633295988160246512546737770697914138789141868442218238555551703344659479871447727275350062929251666606089484021324252862865165781529594179803220871920935982846251998297001921795818140349102188398961158869676940003231904597395693742791178237324126805412184659077645942228159524530508192610953484832946112359700840848811006591647866870514140511003703649027387602459569387010997774533287699901004025474237727858065797539649710355635664837262353212812813264662462411405851200594740119528479927174492784412708337198851174799303570360515612884987824104180542432289114159331011467898348780118018659242710176639469569993698000903849160524567143099987022996557912769860625952719584364020094778495961394141672471277432775319338016615886647769005138400633424915211026111500822466261691353779878694970553792974417110977823831459030193110402967224987180383344972871129285556708330975756831326339772490472227475167974011902214295643320853563071938156132589498321512954818011797211708960893504745908107260510596160666715688051813722517502838675914891570719887252369312544729844682243340998775049157320645542223280081689515217832512020959267171285099118282955684005332306457663457525331369313289900978624679024738186079714537385438709595029892059133116499037757264614194942505630956767196715174033324184133452182377570476493667256390914521258039618774315673348198598238282402892969707134770910509467978480963797493595153003795757568605205019482435694231647224432056266540123733020250879201885139803294151871665443372521074041802495470505564045320862628251356320974681693651511328414554354975748853950603125136979879468919813139795774218458211949475408281750075484521049935416149253110045655824187099504255264700700436712874835220864134989985923349359271114845866620719833598209167203766507662110467618544702216516959850173859999142457457677845283377894828643654500396568641946017004848920008140382952951990347403695353065731205000471054904663232554064591136534700743252545743422464821592711320990363511669233393265230672993864676775427929370388855440883565102215528100755479652328465599352056341780178846830013617251967242241802997213185771879834657978780808117465864858120368464567988751151830425024564147818473967120999502804417126800669405351694206032139632344245327963453437411296828317491077971401987820363282689865710967932271760683244573202050830216461409858836704232528115276060312324585628700537149128271960483896641261289703583635314850580948665786379236780412240769608370035772662839882628612558949704021089804525229702295182010911186728232795248218368129714569291004280151193282363574314529133467276378486752659536910026381905521395473948120852800248547508924601500930895906186117767981103167172647548544791977314094706400110334010900526552307938864665546438578301727983766322427788537029051134882737365495150286294916743227184228253166201544525172596632719339457922548859653249327104137902865900593905735299220805638668098297395304511125334142628780142313789184264148824063703479365818136364940650957013663621803059589930304713819111292852883657902810116521504860807121732583884930118088238204022213297510829423721466709171608473632100931290739613190310746451497051649757570753914072318080387044054901007398899309341328047338024951748830339708351837180254455987201728968698792938906502049067388396140556217019984028169600909724085594131858608057346979340291679515869177861857875897477855156341855279899719082418092373294199089765574379560597995942373640068721841688998337798375783884921281990188050242009857026759716410327157975731967815326001472256176844667271995317413773445095597833539870265280941975735159681540907152865634906998755520648298574457275467017569279968045421324281849102017911429157275717454988191287554746873651967440862055610462282375094279019983235042708557551784456821341061911352158630489688550163642191254336720096520572019033592682242600771122807533669261862125986797214368518693547330984964328096816798060584995535057254156926136182421361243720617686939932425926665184669232098450384891755959369628284299344698079521412103337706281827493851969327273807525686924794078437458088543182931124329710508586151615236418358574569030077795456627830330643679223322468186997976567474266652755977298074814360950964443250140163903448753923067283769600794150164791178608857444640841495187456965349466174666947356581582521258265674519206757174918644744261915674795304400618403476458672034359294279368352484081270196730799731949975637572045768071016753683482446765889208862955420243231320092580556837204614638246047912521885287258775045447634202965242506683904003665716939105715384800773591185598190295503916027710841765136266560439964490904792561496867829949766327268344978464065987719861655095222343359285904859921260426264231338873643720307830684578504582574161015430432970625086248481025054719144719686568822225615813168560538966181305987008859398050774842197067546929639914067339506929826835832385928478899178197571972901921323621709302057281882437459936838939517994594725433833665470784062737981041031553848702326923356709351269523140590935654264387028247991928716024666576137436885519215620080310862806529356560170227172615523227726368770140989563685388503916090074381366297044657229275316544270322041818824567370462212189253200730349450070591633885288273573663818226604587665825067516448621779391561567310709469577921442388244402955317173025667797264258355932134948331712395045632995779692401913389009414259362229823428934941180704527303162239055186427295138484078946784276211678834993328262251630033188684515790509864569631174213630398491650211594611910624510418591331621110658869445859689044249737960201890563635672836088048112591777232702918124010708331542299642264155743659156420275167726486435839821372887204261924787701864296403776787442692161436068256500121825482361619626942565620641833502235876586858315802155907464781231497510355871688437424581816520252911972485718324248908399673652967631102928900765996415243065254634901956911506043714404461592937146693410874898423531050239181633211070668456738137572774103584928062321714730377976852127881974653808014861586434868950183564895712087929049862340094204940758872307661951857839011426623076356282991714551549453109725209737778567248474276336163640698016470856459329225048438291170078495045344278652009675686293548150389781230017906075806465387723460568364938211037243515055045770722018170557064101869666793593232769865981393819500843342141889748748817161294514506849424461475433825477429275864870748050066749430273149207231521850959467967753624792349266833314047100922660280960552210464622288043470457988317350320009133838495595176408468485216120127075065673601585831520786149041105003514847181523694604264717931722756166467410942587382857610219295650581823275589364927398164991098467995156149981037768900850501503434790317601439117422160551513172584357995205499280763746713530554987846492085432154135021727832986323033051468857444136370689620502935415952801885951037520889125468244630543225290934897493750121585066982962894066424944194740212801367205043491874133811488893703401361829542330632102849102783026323897410286313019319991045102314565893891439387450539369443359025158205463256233386485388547143732548610820572760625801778113348489321691930106933540835125185713669517024053645013339720934877261383575657964110729455506098292447077314109870538778064608214664590150157887245534294605880489938168261955016495643190161404311971691492572943825497061064114351358963187901750598086557597609777644066227223821365998128274727909180659094733860636307080656297584373272874905775912251738275782143512115703598349936886996251460447424679992590505308277042793641069453544851928327104066037026192722377124598391950187362738325317818727829170055701219162738276923374740973757941227158926385373704034674662931920283586271580838358823080764173551307859398155053480318885434528835477913930941258548115933721081836736931610653614934354817740476474069399886605769558396747220839072535108817690505481512645237289440340336330130297576426391530463447346791447310754231271058013467423429224055292421339934731838560887255823392931163288982268944352636758751330003383587102590690253627498585443789078056874428009218509410945334368877648850018281575327681691304052343826955261100476501222725276994212112319069880086325310902304696970214703847485725581345108516205784536300053517226103889983435298033207250202900695129727847251799364022207477871872956154709684021894598418235633100928445610067364809341831909024918616565725657451344078546232180265694347285046917413338212161791283105327971165886239520717812407603080895138043991300894966527772429745685159103543420062683037874760115640723331631754862614138806739592856996283976074163853585399955390073304815900786639818117664603031503373622799450073864734981099259700272975331538476073125505306606818678714831242201507300001771088698492330525321151195632402658947366182127334016993141279122765865231273659409503751773727296547341921964419673722780287996679026344003674692551049763869384305831353557694675663797788397840704052496337253607358217021630352702695515995543303351072195810812532851868246613601658963609371351957270112178626022743517485681984084930832116956387595940064047265678990032974151086326168584480979114560594408094234789590280199770416221127844765686271834239813891141173663263114116706939872404546523957069626347708979191326554432764936666986705322270170590099058891428508899739388574912879434520656300963772759915434090786838042104996880533827469973963516026672775650112400023554929275886690779884330959891379218458285707560443543847196503478978930899979368219381751057460190735377055541244740236336577187018095543631009187977621376002920217852574994796453511812542485411320046431584492210416628470612846003152987842861733071772284005747593087917436198532964647485904271427226933989362005689023491002791231048239992935833419199832951966883364393673094387581460404549969505172676934020870171377916194535330295618518240136038730884360077949576542683021304712408571549463767403916206758881616747011769541836965867072988828421288293935340139223505116935661187892921087255124644820813086240560224863903943149959181691586085513824503320708183754840755581076985544295812948803325468600159975401804552477771262536003226236856916105261911895532313269672323239560260417088533097793541037073699685016766643363937736169095311295540614476072059948246753111728336225926238995566316412760316039743889242313961865629479583859798505686444692312672930405765026096571852345983024378712754686451519307129499872680723989152277959386281063604763458589077328421047133603778616646033496205782805971936646078167419926583847767598816952038513632740910439394372471045165321737835901515002235819769125749295538119135385317978331949080786274313137924872409445101478019572464410513803764664789971221977049253908316229054811428314904147171673825920167167427577133542337663274765408890206393611762005134493551101953108390529433228810171832396094968403354311299409612453329627504563449390582082622770434365351338143180880130096514028361676544150390519350942012958672580799524685540936940340300811180565795853845314246718302520569570240606307535548998687815278993887396468447931151864870826394411633995016067774284554229446169697660268981381896952909365223163570557967824021613966632670962371130665015323406387667700180926550954817239588480662905937069376873471018127837093085395236759653925266250739610957028090691544914034258179137060905279543032257700243115680727027448015507419953224608289766333039084256330701633561092236210053978733755861227397760072814482853256408382981187840406410095339758693638812692957707578978168979892474674321429208711513140003069504525793369615758865928291939807107820627153844582991124263280020602927387842717912457523667941073945380916768494638909556302026518651255806372467173724675443846483656057154906392359148572404319172098168832387710109355997023066654383640157859040733672507797298873968655094339276106289590223084201346903138046483731466562071944471402286254956774764736850445431300480683932038583058444113418710912548836850098415213990247050052899703081361238515059055942375439884629283936292847399495447539915601047200888182951579048499695185536633057376296860098101828959598357999892523118903879350838937249969334141176406401469047735562574988510961320456644519127350507246943718616386589185205057491112679176605991049911570744994769777495360198854613321802753388520244999976325073568100456019318869818801525142296281289026031298297350166223347532266564946907500792545993235875206008337438286570417398179684692591583998435937698603567392569910347471506843909124035225824888729808792258206556554279454264436703687538403894326993263812906804015297036898149903769713789968010725121586201737516212822444308222116215808971655801000415937334079172556519526886206380539222304621987074057386145301764932953295530110913399887034336616235753031213065237264797603436696387175027108470763914865286867490408003885626617429300130621648690959401523625824537701748593159485477798773627372248636908677893133435070031179481257974741841487450471426146410452738200948064678564719391578139356858749939195271245576857361719927464669170048780281635990052883829547515096626395529220167359093538316332265555292595881973511699491368424943955050335664479557703407507291308741325300664163591833327650376932046862926439743427922928835038344566303133725549442435620017155457729562272863372975926602207959799567858438319110076358588962504333734296850058582275022895780248309843506634099066556098884506405607264094545434926203500290647930823976072341187863363558416259086181758168524016874799388440807485803160581655920103651289421305603870136159468254828388733497925428910214938597870856749914694394740121460778413129107463783601617723357530538903445224276239167172716271956176259923632744887997984140749954928901705535977880912743276176192698454371042237379952363607121579100671793779116482017655880218557883078866650242779647170190992050261629310058028749247552132789477071146445172797946585988361237135557153050005102258108186618123285375012022057879851640131230498590361166149585268150600983427047390402063626190063709967028328575668789693198146380400964993836737543738223239644473194885758253733163461715460199254928481739652424511152584749246194361675154502030160841941337316538591098723870783268999908169662477112879001605445495029477492497075604762273087017571838622363676073025001658494499401773146466314785464316918132117874797942016586795245364408173678365183509054262342758824542322456804125142929904760385152956074193650376366007693630510497077586392338109967021257298299576021554276883144099311982511620399087916960075724224403593094227808349816177113663339281485402599559564672390738563760193988348596737288872467989772908123850150215065595372141358530158756387401426228395166313467118801570049652861864870957601498099105084351809594169982416766487565154926765362119573829143481783010088178449030346404954208821471560691475405028793771859423686186268303296736545241094378828882215247017771637880200095159975769835418275026497673384499523150297741702208024062273214790874922643282474511026505959172739607905629967855176655086431079965039573354766505894172663868694915511367164562565141207635896853851086437937728322396416114896032831482691248793487772346145309370555097990114239614887031719288818674584803635457545108680766413388990473194864717083390737890759639135127211686805656726513469221904554172378536212746475147186916793318212101438331122363831330874370401308046450331784285656186483457192062777191840568857484332561631821809763295089945569859702087207312741101442445667600067239505669495235672858745258702583829589594457664285535638517458234559640731862489299074309248677994790196821989676279170115102678224228859161457329964582172375540734628622322683968973620568844193946226171505816441469990195068311556391029652572817843294414943973836948515403834268016120561374183179268698268902390444178698083315104049315893396794892309082348224105581145106626366093233732885226546117870340341030689697766766907718865231643555213395376438650592339890719930702739797454445475902605254844178403166173041631564801448755467926072775222302572857236250489389044685770006628693599049186400068035818949071633017245686380364622848552666989126888354268214507464018777454769816139001753217756783281917828882898924294178655571941923456369832017914798808880414414282108469192333387462535797217827006401587018824474681473692436110962837872793508645017843618270673516865507352152017243335541250714611257969535057074874480938337115698937454823120961863291986470812667566352838583617212330738026618647477535272936404830528632040500241665547435017723438871231603174594860988757869994138008714013746703974632263002571656509420088177443419489453319570444111180675896578196840123177603392947678004417145505594513553216800719729662901881522240131730123208687400511869165313606047120488054744292673681604029768052625783636318670730471151907435265975060516512033204189684651286281169854068591954493498507032088652669302661122969986135958534603768007161009565100832077282476514551324613187885525310400450261957193961483693255199995507286612781755816945467169916576484335147181235991913033994461441070119841354936153898960492514362354532856867925519496440859159976229524720937622905062772360145016183877988595398105005810395969044329255125149619010474281226579280632049257718324394981564265686070018073320423082663147083292858265237908629544891084379162342737218834742284744242729175334430406883403779246791092483425201992708274444329530781687657851856114707640777799643015234845280891808400704257855538765848075253149087842402541894311655355026801836760191669199746133415441251302972004815626730565139171780433430399650563672147752347192549539351007566538882262960085223043296197332092662746853564578630125665154289012194779024798634488444659768031063396929166491567069578399897770084586761324916024349936399651133696038395162897168595843259337571954055091972492020191463655767156745278567993641100724654343950159169898884696712815460896171917461346601073326685802671353644231771379891196897521812966889483694712485915225539008717483523852466658468259141606923853055725773652680141857904874995662517500892654231109329758340638137108487445918844815226368930528274492961599394202700130350450281635980436739218057118930253671979648550444007568722180440468616974541534835012408326506043586001999091056020675583397259403693901622681587570101863688038548504224661289863997462497312812873108177677145097885462466892501630447282575321186555141228697529540469105164525487113125305714237328373887424325131957666240586306835544918964370484740909503172160508789787871360767197834503039341133071939395723029027954922714937438869254683072378113484146454688391832938325172163098428898945330002594090061672784948980357202860392376042553854662565317222879980001744111332913175373058308896203467894180438695538390233750665623441202677523669098748361341057411734861863770533264346401883025450197020615977284828216889037705490944286407657556554034992492958191612375752862286424329463005260500076509087006021350132774844151986544737298672742167804608873443925056469447892452846700626414702110442992511829118850654313450379098232190148166551452090033582676692492945525988214932065182830981523435376897242988658662965430069628426747587123825643327048328455710320676640837299719952772133972692771552349095925816751383166879769499750461260090749333958792310874597789818301504094630767196668175030022515634579960384104564396854123521328840532080153234003775403580294577987011606381429231794472811701096128848796099695030168931494591406833089117218135665610801720911267612484114234888267562114092995138777625933900455236717184021725997392971542256371339450319238062026581535418713741493373218549543895332458379566856683455848744446682411452278143297081596786712678362660867503775831785431256331263392552053639237083883206028096610199772421409536818716883378924613887411386232715303246371643569224519552553817257718631516743192341787090432270453562790529268665543955924677790632014606330459267793891915415567877640400839002558047097432980704020344798451761865357644673562451460789519988315628866757872058769939092110291734474357448175303800148822922360364417955988167078986951601816091486826366180066897926256251414856434963700103948434689252897091918596828152155648168728372627832819288320975699403960111142415012467848039902207613813775546251595810187787631036840181808202470674188393504875311988152728285695977042468204763709491489732332712111305055534105588589278343965609888597293254780262841119811077647024359427936119055247605290496283792643598032374167673479241871777921563449152790719256061731942693076218840998702557775833195750251594154460882362419282926018029883301168755975958769176154578868577503099769477849153417134065391401151121779517931789517194650443042257406227333226090174780183788183425724124994067727487154740190501324165753278831760173109052969830495699525649763833237020623483405213922098803722943894086664680262465166034486326727459997141794801885532070507840856187299732331865318722779514642254660647162263419475299438719101555913896966267627198496737349945759649317431958326263957139100730033651546921208042326197178354525431567259001485889357597058429838209661127538067618820519464052354212842181996186694330412002059347136742997053846317470016944804909574858792392690248837479119591723541532785322826948010272590338828653371737437523661749308143995824936612253359475348871075435982427819745424587559289624056295174870222572803638775427567401529900166848705505039760969991885960423957679031894520777289183246721012033550144364233660245804213105470661455807043830265159785320446420280640183995163040557836089677569133311175598776385691187860645074063857521142593443425364784521286143885769137767146113061368087499354765010302692638752601293850470194889528606908308723467096679156949376353837422843992828924435389554472214068973312229914061457727210127766344789218034465696789918505314901479598340232624500113345808900298926792409204665200920802530181463114982223056799442772805789390781519916237763192943342344494319416122954624781179528021453177837173504370785368996982697255381021646162471609378859344753950178465434984636327700806423612391341891126341346089849236105380268275635795220573304534582776155695096367998205411781346612195743034932137834480503385261160735885186065566616601613733754618410441280469972010570324364210736298910768702561960404014878763849142553381670171994545104664251861876587632693903563114939388336168355413986330708766366800853862660796911784585745499139351829148244333646250892630021499124251870755077042860270820517571345206883719383590510305869249510743822280058559064728995841747066342754811227593358847118775293566421657788927286300566202968801384714994983449607973748005743751505442168036768748296554080223036133836002016404645470886856221619509883071197270628383658037651846557526800429890795154010617458662895748625811403460157355578092311059799062899655354892718385101386275912878876195115696562157933174232311419155547455271557992984050832394040106780912144350910976692767666874528541458390133874042987220950092237199935128186107336206275507141847446318459988846745739370235552371169379617617966941989947359954840038559944523799243298086987254689768206281495953876783707372134140536899881135630091362636614932895858727096418825730859356320838462549186937216950586158151825759524472826126970457652669151316633723245197744591367672999599895243953742214573667411262773989414262654803763768386200160403096274088266974585138645583165348837348570144294261926982031025158040352791043098959288261252578721016635644955896322014317060166095942184504514873737989901975333672176126977827327342295226784829572612750549940742432939728330354359775352692429270015479699519152214325492574201834525169570221778432211434198010156230841513759687683193929866647661399307281126058016787247426393029939543351899499090117513686473868088923048241158451361264399686124502465127213648254833851055151268803043478625640694590441975663850154459351157602833499615708905584452608981928257678015977775491884736911486774857514983631165785100714486359009155646297544974016112990773589163032664228068900504144605099746898738683479299761203861545397595812559130793348016556491979813672206117868231817919539088919019761190740440207110078619484002601685304367481136890412107014561461936475497733595698932659483670753032639128609446296079438914335397003082008992377998986868740150944072044260860139089927666564453914285416385754735794517895955803122161536557662831076982615559402499903752923225785632011738913597352434881696935206106921399288014606698971650206308958580792370035854003583858747655568978506847650542970414700970826742610409197786336003480914442066085777034535079890577555511528152683672694687491748065231806264944613028849235193937280098107670287150150585717954228322030707238362685095426367652906078223416321959985138055916065921519615553297790296461914530951826699018620869432609456885859966265678152840894617828421577607468545305871105278651119586120899968108535233902297431848151540092668998141022594255359701152704194189041096626749854931308472162642415509477407383487514618049231079288876641898963573309332903045488028704196871430462699221594444405817721763046433284184471829886928237430884563114481069200568764411080935459797761854173370632763918550432690070973744691103266083171379527203075946152587993788135220159908137295160973065265142530972711139672232215704601429725414017518220159866142937870103571173766606005795589882918280332617134320442742303093828639325627583939341089749006583379882314450778015611803347896737793272791657726461247483629636144197466895124779454686873872232399022747462318206347310024237054794532750741523918059302122135194455320084490929495991328731723647759685640571272732632089878352650903318073417838414141355934050495032839702964937045916127198484812543675338927423310033725150579651509004095211451811574461945283061441915958050172929764192627660547845945069858022492298075839113259033105500649550576309251189821015782858897525613265938737485008925906280460851522676306242720508563273403113776173445475460720264870344862618577602801871634666869791018482669815468160079088208152554150314370939428655025556405337474440753286180487601272132663614090825978733064558614598829484570507952074670314900064324360597782398004405887171110297533197309252369530568309806599428936634526533455604321774516089061734475695903022594158657792781172529505935225088773840613067029507463869944501047090106612286321931671948810364049666017042474906997183174994812609139592333553890777148843863004933121176147789075842297050100159929685490937746248886930440327612572661140292001402645137114683842242446177135814056181811324179500058203180655040785636978038714611015451796567618307342316761622906451322155169640699950618163112084711118234707240542769442941903144027943863761638490968566284212917008777268684909696027938403230930099616272999396019964935413654440367342207251697226583112475799640564420620951764661327994688062496661896172599711182998144413926661014780083438079680780283558946457602946583816821186535764136918604352407650750760105446204862614627382107189226536767854476412922821071127851131543668547140166215063082778522083467971188420567759596613531232336222741498058546159470324455781856795287125220037460309930444746574829552380008947865160118925136946159713583795042897400931681163224711794658893520008668846069501604920185081621246387057189787890339378805628377281520654633881413619638581010739290471286227038184537677895483363897950083366053547848888689347868027098083668316451108017933942952952561168104856858970943824243107297567006751054916762244647394597765682141834553693103719787850491115746698702556575059249388382280897961990664133146451361222091935878631245487613629131926816398112474627565381995320634204073777324478255587348920327268187460721413812886916459937998587060681604687485606089017608826991087284616900602801090355163600459502624773313850201041612917609816446625340036629881044384068476700777245654590407587464830249610716031324507769024570526774255886472484985790257027964257497526103755067234878244205721621374961240592384217464721855808612745441551334314874947491981305322780050740355490961285822874121637125003472059738967409673909967137462114767923494035972232490732927689273018881979141684745668341478123636235135792378354637437210468267194663568658081608965204010523888925682735344528526326189325664884843945681910700658332442419234856147657125370110674496739275995788918093117189355981345624653374968804224397092096604375490458452521591533817486739153675176576558214005024586855099933861144341474134914997843743457592644472728785454685116223409465064587489443409752591598120052485208480932822765267979143542888924418507285096518249118862681210957913333803112476504721380933715881728842784756165786491380619607687787749353056599170878974679888913811095879975518256687588392172107824425057455505283742275272877989944903873357043918508971375900355431663166160376589339308223153870244650978877368584191065522675128799635935309435112108924777431638192610046232326127013478797665017572502661998184360768186744445017595509606656824525848819479199068483823537840453067643597528977192445540526946626476475333262507486556527517453414010087034063311116740221701578772901052720322296964950965796056636990954860397104703705746934288719583813140312603552242864073401240314934622406210871008766923755770908776440753912411434268719371371556094785549417694101024441086479337268242999750771734439302518264574258541805266884601170169286735977021567037553366917328253850772274673305867328545262943234275820538082244557828726395555976287226756384210475570919574215988327925172589225340196590389506005301286101194694028608618841995667898727657582393579367402550695849917410279572501779364846072329960730843144484566388320509661936869180341225831103881896472093213520575351185407241836861475206494935653407052793615110311582018930919609812757164930096028028870952625595423345448105524037028394669133637660169196113592288003041707919472645361358778483246150526289224946470763262993695001860222962845376984200848958150837050322997011462124975887096781777753478458689516790650147123188181087977423701074077484488937820015852426546011704177514199876943737820084594819309145516080669640960757773764124971286488410759618380917577471289876587838693705268786219182458364041571919561053139568732372607126355613488418378688499325660612954023513735607214364797844238755583491410940351082215656595184999321290688862670844912029088591958657515182304227771213746651291037574432290766568821232190722215287691417788038984482214165078390573581394572157919904311133434186977115668986643683426592201257482585333426411554008036964002534764262806393947453818351940348911612547982974134430364404876563978176169477289949618135083837282816272263260194897321778235459971583051826706727583755231868054054587376132411848223150197784543322228199359484454568584320401942099147315476005995596038092991818991720573248572080750419126128112610861219500393657989512269932512114520424399179390025356306596058505828822891562705291069179476859159571373266060827669362738353845780021973489195049272963597769521626185336267330860648264468081558951936146048217340852705504210847722173292497267436823784368787012549431306844258772794580148589273974206432690428650144396999523197534460965647378632742764856411691533262588155884880584298543390382508354012540049617242927240475138952177170768783817536106662881592292028727572589018125307231212857704736690351102894561222220525302725441564825870085514357436829722584947827468754582330308859998497917394457130851985481437668241691157612727102887102781662238813847280905983386596156747935771701346533362897890288639342074047248948211486822930362789561247936561703959335282470499128152810441987937651047538971483136528448680053247519206731035051080740938002302482449065149651291132245099364248236702447974683783573526984380767896363491836353487064791323055217271551630363558602491780522543555127961754510567700282815354986909928542052110850361581055132974936715837187608949510934142079255985274033367704391317257149052923389650825295333640155130983467978365425820739304113626291799532928663282993104972007872438518542140623164214629440824228969089189977617353965594943469580448123271715640036673543090031665542839811397415358277109309708176809747683358350433189235026809417882875954134489036518439564099865352086681662765377894070384370943927302473213243376238725532967480286209397558166177449631460611596514123190956215312185503031453325441716870785345243239526700938894134668736656275382304604513213169963199690110904113251174185535547932650275239107799351568900404156954575660063629596802943537259056695218550698897056757002403220259859718758443308657251893629636907013615020722625094583342433604863655622710237231005527474624793053223827688956953425166537975006590122207966669684734532387826952629371470579729044801316672115873808831147757684045622622084274998859576710434436611929532845484988786852304718610061825459176404255785636187604043194610758281609852000044955300498136657129273092987741991017223289617685425666996236560983785802016681454843656554853351561339110866518897580372969286174993554385301278367942863286613810956752477761400669420576584939645386485246801248742986128566836357923580495501618271113777220647987481194709206594288202765862703473588999457919893546241875525428699211760940109693633260802756875575510943311738536017639740565389724409730851081221378783183502414614479901110968704899135378414044272960164129830440433510197752998985545380386393691741138682938157930351109767700535969154110859459886094534738042578336195903336254214833273269195961358902584824700888578751121092822074612194372023701326777492400426771148874959450992202444702604737288388063790199296602296996087455436210996534063210134966219083174712532557052721900820430218742164942076369786236605351292911545231236603067150378864916731236942870384503797667704066393674091718600088413286891822626616148485327556656475378610671799254462254330082725412183846741185733513439807304733059794663697405622374301560099056156942147003669726168869622883137452723878479368625149466903144225712070420991999342096817104912646747071096003139607758757525995231427443966047863085652282894209792715091568908319642057350308283930536722290744937730389825052722344149960407753217422221740282467155686409130965725552965686542877223512894145246977037036552914226188965506352425348819726355371046559104196193993400832229155794390527609112703807454648514900336480863716755501876130736993204790159421908950735531544423273722776937101103637934536818080620157348072154971771647373593584641044865423617964027107271092452378278136779265438425281781089213768017244783707574813986844651876068221724340837349560519666645456135324496963298596613429114636667720848900381020356493918501244681265353602436370107470617377046465198693918134264511986153506949430387616622876733290806515742799880071300668158341895360026575725683377692618573657994124864079694924833704883214972727938859734445738245906191753337296539466827703637342464914642469817928794420494093239292986049670280184381524052446568167285845575754253360399090945454069464848718332337365972067542244579567506844289740713895242654598658423145071800005519733687017700267406102206611537927047189248222899684450406598203406623779569003820102959568508770257634407514991909061409892582704144261064318171818940495650204903211905840844846682669567954071190670824183914051590431240771742696894384711071914443780353590901109638811053852666467552238860417002322817572635559922509455565972572250617825049821971256648308427091357017010977042329985874614707740241767147865110849495226113853865167621401129242936558334678338931394220980471987063218870025651420896529050430047778252762466866741298036532993876350062298160175541718564474475491004792199630285349237549213284103950255542687993521398143130501836627047776164046363675255406956652389037861630191644560666011582879475631850111633298789112178386482811422702518223140003228289449027487594966689301724388605406287737851040889818983191592438319273525148786910079294400558275631587039402977666564253625397429982451414648047408098708981543998742118480916230456287366619107589121118432025084885372496449335189791380621301640369289498484299365174950830918972691003216076945441393829696843880670005133712594670805174768848529746101632679713392087629549126539521396365685339803392720894652135555426011343862883651258057175755210392876769113593467561815733743979627802738899031406021812192166155887316486012707990674231758873365482446327410790643042884007160701315107497023505512199982876151302886170844339338792959089892998543946953572190293896422533580440576934071670548328855922835596645534751425354370517484831285246070746354361359927672728928649389109719350590306413301822678687658032848857455745253506292222880848443747919038394240046093835739972354327765427749255895101532719255852205314531903376232368859586981911141223740985126566008611493215258893872388144303457768415170074822013654548946055385913522517887892919008199555006069316211305589964251959700723660134968277651693822721198253927946264996967716150094511532659405830746893235893348359767248768593323143804786596090970226517004701937596398072851415629186925325749613421164622656519126946601074773258533038503670024426893964998191350813104108711493981388452040544182955341257162321522912292211565492499521950840201499964239418503259641141457208137380271394840384298585659688938876956453938751644816446595023597581468879159445650986780202752163142357973068466296719703578558628787368905577300964512319973798545316397458664540542946447765813664538532255403920602175254546536527294566384612740095736616056472399398098587445450714570411020290225185332149464790394546424430528007283547885678720364731292478121529976347083366448312802748282530614665223974563006994482145450472527379809242917565247289745152709995801729506424713839588586492163607361861779093952640327529636904778175996743597708505461963787806736897070761323055507623269887326583359859605195541094803910021240158125276501778305005311488755517559839936593941484464171874749683079284018419574858765835457464939634977506201979833804000406895920155328530751367344691208958884638907440661329004039482289516559910844047904149497428158081970691663904214920375006341642629439431177393802723331717271754254573039593199424014692506557388201474800238983287836675033773252751576938340653758215316601792269892310939589189200084322572349953927194510978843786377482431077881740589752747550163328867742627923103972609151936565092215170969824537542547966103571503573737608273649429006341051357881932458251166129118046973549766342270377362650517950000520040523714491906672344297336384808195090921269100125991632689171566480078728668040624224962708718823413316725561554930061412556717738573092087997843345928443528301538316036427380030804088750321601515051298634210451563615359998761003621743013715475790568496228223328357239031509356346474427985217734272969793140450022868013225340375185303608174993165543904787744161613891367336954785569631149422006025438413727285569331469533010232522373724478618391801459505176967988557564211842078826635350903119842458065685011624712394099150759315214937778602569777603914133447524096059134248142327155490075009329739339447741663022373446960069294006282955205446488727297223399964142954367068354138459689868594692747256090898666668160025114298836593117382130843892908618882265668746134347684393871734938479200274913766240081395342996024593740905152585303864898883743212001027231682560438062558089937908472456048243190375511598989900963861806201828103573347543834967764473515980850157836922094524442701035297049954302457061200503481209794123950426994706157998401265671641184987758152038075111278157781068078883741229403765751179007359654012870044565879781561488979484391276393704648788328251470054599262980235673652258324854657635578551741730293611977981801031869390463854568585031759870393224198774761575093530339992815005366981252333161401723764950058836847471526139169148419503650165406016679698400702791493508625848199387815589609799442662690715701017373593337742904837484429544659533973379814778858753413943935604386245881221398991131702062740872238757596222807930786448528502803033971535084529076617756850863360796628924583895050636044826401183270400482384429102384277755616042852475644675284991066488656581936767272425401501285151296133710285529872960937917079073047951993258739305348300701919447640600182091734302381702853469800328748468392442993406673955624081689294533021676376733149991187418657648318738576229207343524570794913803848191789433315837084315455056105721829999762807454953144279624903928789184132612893100579711617599241138342613378075970122905479214788904671289284685299108800875765750997895946893893577243492668846780518605432839626132815529707527713373021242870646646921368594100456197920604620377626164973519454603353948770510050799542525918895872566809925018364352556584534434729472425220897221763581920905974085208505351819205474719937533214972082114188760939755306192853490585596802692610953562289375856706263891778218539634963728679494032618839528774216323867035250991907487525515880591662528880579878282604336095610607736187091276703141295378336846470452707944416000440048037998316810703887146186962360668852370777514048794921616240813879391106439881267283773023366257282659868479026700180496433403924042623662889647427127727836866951630972082063549623553259368094927874043734395353165760097190618191693329649149073340395182005411140611255093399398301268742304859447261310976053487435392155819435507798873048441987414801190155986629730739569828010582860210073202481877255902147626431235730330244416120848892626629792587505376018099098108424292307377099414772080391972055180840151456336647741180277825708158067051068386666216963907434411001899071591542808570471489193132509754311607247323180524646961417851689477171683270695177244864571205006536089673355404636451008548744262636813728191891113261054593182672110737091662957297868481441730366145925833074099772412591938984019683734500050865298591958675212107799406028109582431184164854280977297584127602518395386165916381629551232968871938133445584303751552375293294494988496939088993229867943225220042747689043630777463459811852460480270267655843976001701850253592492342640551190825326707161879905894116115259998445523578558938663704904898241760289005544365774567775448830745274009687460922724593585299372392833404918690257663698373647488364060124760078675567712860579420518072560005633032348746384099654162814305344076813667070419095381295523969466800708320777016348367477725340497759635042798115138195160031250732598337850773229488388045854448428006875562656247447856255814033622469861790503683276441017597773322114489262023170643691449948479100693726460786252040808321039510803178578596708389796313313088969965703878435972889991950253202279893803360271223658347549019794689508518068628292126099885227795245512908789385278456197422284398849297639045869303077791230936379033394568832002507319888997333509447566611824319376132274898230375728600703296037006934114714007331381510918217654455231753683829274220221967120173598845792609475467427807175592051215818194339034441767537393417401352463192986912800087525892339868558199743171196477895234844329496437738482419395331213700916772401386980106638801749365690747811722086782909582467937786218750230618791661816979744634941091770900389671724649471439191004037258114501658781527825246606718188341106699688321074146420043405771409812639454968333361821637881100132214973332013752220857260233776877664910370537043220621740300883766618005366943694477233884646394109865571423613101018600771919451378220642385935696452658686085091674237706717195862781905196875949047225000849980854193712648397843672921053986542732845246489465434335373842437017538767579609010999390850696319877713064639288717238646241931817664437311895229181880127923599065824485971722740739605963663036607388609691699119620907253735411129787075715868662501736096868249432720085526297657647989942247531175505887257609912109500193975571303240388726678059251984203642825114836243649060552169013296967463753314595765958644992501483139299656484364208147657424369134423132429665668160891440175753026493095431450736362686878879360604728077789516417246335266025062590721990661997450594536401381155110339582918022135044014830165789311650105660346453233203271637222087025320689038268474496566791973365883966446466564113201533238370888718635632665510657781859163116534907611086517670582948751048312554319181138306960432869297174648357219175620218477020046710713807750672300553891513269752656773671374142024850355060276560402179173833989591879172229150403903780042257054816358667914027234537657778009552562369817996283117195185025410551820560054115993620057125444565381565366207887163572684100702303759109398840196736480638328333132278152362653047549963344611419746302126931659382517801954951883711764138763219833297749651288555990688610624364347655082831702866075710798040231959863234827912811115305860998029255692254170732884435451077103008384878273942257788607323944390398216363039041043904765798716724399721347595048459733657113931689267121380440378944368380129720674416342378800744512176671447046532614635063046728876657425164503955709465254422339859703325512257175183457444185643250023935189862199166436187113367399643920509194493281686933693476769256362592001244998272181078667973007795385375652485120160817123479816254893423409426424494748667477136095872212219002550104574262054772192376973922041143704596085229314024465011542524276806673714564130668695052676882681151294013795833628543064360760754935953965009287463251465478738391162456978740748892951529941831807675519967581757216588344485810835402449986728008783194452086781830635141042184717387008581925354331423254819865071645523133673225155005056897316039733973220781950061259881146822300293288361554850049562299409271742919166271415089459018525911569765333264968781542357471351442663612014602461178075602009409893238192579211093496433232154942255245701098706109117400601001969329111372496964268703555965940480869154543154979133581934360839200337839926640882219410355894438372618698737003795466739691237805685122365230760271623834369961188828775970413246320506818907219699299664543310038206066468311704066796913470532955639919214650105188489116824648764721016269183787511929793936156570064197786146708686250276830011973404290738593936692721226424924314143739333946723987115248673723745567211504476475495476567571005614993235171271084075697155001739055736209790071933261934510828529098501241848148651908955296091330542333097299816332929362649837958737589093177431913137569948760090991684438633511520513612374463014225677810076074002164304502989858602350488946888943809668170535010886486075028264589959792504310853379062729294307866208262137093852176186583241571773741179214007093473438798874590120051567623222065849673177325007962510040436753624080969908214757177422455064733271437157367835484812456125885069748288259596535201757853393554806869386406288301031519363422498967748814518584693038524327445917558715293078487865276460832813728556575267473833275453142650097584071185089192697568270675375833483140234563750684147125036366468069111110080307188476595294810541990117267067428721618461446468311649241346033528608949047390360759780331290621349902986043954424874799136996912023936606529454212791933779993576172864866009192313801309564317458652587224717101031861199810323519747987839957808758731015729603125180645472513141242794247295340271617165726172993246060645727467521647230495478394677776047342094411464985307434653365959970247804643531297418047022869479956207520915709160567088511718889527105988868307532550726753299627301407007229472537161162401749465316599835338211538730123042571023832772563938294733291128391829763477999040624755266739775860343513743551561159907234952143762991486061335404281177524120785017120022784415349445582135929683036564865641664460984060284635717853313688787803700804564258472331380778016631792426903344607760462992894366665636010215398519535783285966464460329811003183009480667465930758679932437042753217037667323211657180016734307925969100741936874497546438167711889570595547321993887341656050255885366999163167805340836548039980184222116252285641002994300501682772718261212447042557637225190076449279999656354694944602040404230530848346734317775973060317795363139823163109552317955856524819964048716194529022480438278549620119904582533763269415989462253182724060798939389634051758770356591022688703610479181128314548641527167862097408111422923455344951263251663284454112589431310365664830912103487014772925660378577676789453649372875231170798316800133674242411437573795107962939263600878672813582255712769154164280404137070784455503172844257993367438315627672665536689764119490044369298403860884948683590390967727205687740509914110833793784612674933444252817215731447023276198134217984978624261034864486111713686457966945707758558236488232871132984923737637796688750554752325155745569107920707688567713121369812571588257391626196644596411052692409443034074037338581553084160173125366669673622907925363072979882387251281391920301103728489351414780571673868398562443507225242400996314847680594277240549111898669320640032030925819600127964048405710685545343513559865079319621411718151272508773894635519868649652345331273783907294908446373640673304836573432850367473051318528548011777237694035151495921654728428422926878545984626930756046185262430526916947604173981537886940138128204643290362209430234091987361170184732100441902315854587593106271726747496597382489976416195315790074076635520522513869935672008470843447387056160936742618790645103268728574975129766927530317813088927422950991037076743238350453791436273129141754852990256060471597388678069004377305975700842254400450011699628919465389388147118979168874151719241934234844831541536687580663915924192227879539893141005774407187180730530036041095036835077405774343961212368670830477689423462930700645509963839819542749590330515022878614725081486814366579021760019521252462723125531188113644863123613287520522161270044736694697565714462085437858242659463452708187907571043479189145759458872439993125208360754722078128982817850790320079364284695749875063169472485460371191629116418356921620837728104345967227341677860427373091219633082926486617117490189902042057107210840095255801433639343227052395293638017305439904259164727999234919227870731487625395985439875733517283026831175950266002141056624020848296429789332301087349314538735359276118355514132577702038566477215343254163629155302910155355767963305348616201493466018818559608584602028463092852361492092466525127369598920647242959009126928524535114987000045183123169108264517071638444558499282838498415796299960292627308171750793930846901436446779675176502468362921589734827972852180565556320269122752465870521055023569727986526700614219092468149947228816530521032510132026938119743269516404615300097051617571744958611814366422173078307218833787287524532951201414725180266015083266561100975006358451620320566907903790631035226428520873905447658985022294410199602738600150965517460080480882038517319179536439839478869030198183294986626356224565021130187576467124529600054792911306993077155475005076434352795634592656086974383438367436831145145697483464249349518982197106869976818062166333501645105815771459177455584850493927952725340640428656705141976674235841782166108800313047363846325475497194802331088049518833060530404700354675229510021009348070962201674434065231986662038125237746634897318991766670738825669991169104603224213675184953714198425539482939833740526526759552505441247290145240655153426733612101495723932641908622315079004596390998455937978490878965878179537680390953999516585749893492347655552070656345574822627591210549622245043080873932012466377703815457317618395976820960010893149534086809083328577225069894069928957032268037939393463312568677750452872032091689787783011741970267982181597035013152148968834386096885524116840633985032841259151088656248159279437418592910684302945992263594646924386379802118705987213226355245057298316369750891342878987465921947014656410858295471690463895095175714532023143603552813917315157826474499817030997980462073141100776214662922016604203075232667328099867889177670482659669652773194162143758789988382578077166220395583635177673470988323103586431818872205332635816403764508028876067224446548678897528307449293435275991930297289295046014925359933042628255334648656232996134210271578582650533326277820172961812574050157776481508794758271488234420592027470717874405490808963164348783253510485046212463172840463234560275568273032090137022078756750706048529714418090429735177668046724014415593889755822896808409455757954306081798463515299703208776388873281278885651975794403422161049914364087043943985257234556687716971962268035686415332143589952533444013633380159312113186677910785346283456049635922637545076631398945698784160236534858642059052789603842302357015116437058214659291558094341272451804860688126739788355409816847482754516654437599150315947179922036177175903183025049558744311235624168902232438143669762298252664794211604800807210238398836869518845247060761702977670922451431147426182809611553182775317712111018997402876349352763601365460504544666017250158387778684060957742257934527125786422836473373140229845735065208345713584116592405648687181752006324914351514982594732169578593795030568919754721489615404902487752081065911931403656693444355628350154595286594422460726252174856911126461456993236293025534230977518823581522856460288305102437544732632622438976689259273796223069666788777513339125352581536685047847230359554344558884518109531754221488571380160481801206962697761153887385139308021847970643321957282607159253619472003569559051971212540611877148502720431592699349286496560815313089686674619879571852159393262988229677715053677442616880391465806443768721492328742950161036601816406513184932171720793615380488316806250719085219445638199649019325703188405366757005945234926506287517664560945398229728344051725714035643969029774594827243146967713246861084999711960360203563875932099233192631319467949690305018385063002511881785877091739025700267251996103797795938729068333038802983638251722177734637457244868329635475102171296887142824446849225959798153862115928190314351625049038540078473258990154783999693832322773058101592906595136351168715480220148595614958088723893685761459047620577796976931860027380069771895639528928044637571793415822872564469355533650498659909569293258902053099120461561576098408271464142348021353903130089990527796032780923986034882289488387141637069824717846914601280453045714113956218986938613426404144452495450834096475612445888040601112712980317831329886620535205279364381629685649108670074758047356039535524118277859361650785490586702627843592800958281942102589100673654836336047733294847966426456457081380379804031567184359902298839510734118365346716573128304955261890663803099212667039905276846620445706669316997109564402083731376191736150045628000088395256616611208082149718071565317425716186895738738411965081236851145822730915398250726860227914831755622412380057650940921224784902673461674953339820143039184286888400741832559856820794436733696966944412080087134344822954383833337422545132499671995036043209800635331546508026169381406788345644539196171700927908454613391693420815199075280139825125759802992275846910835511085233286360432093131514104899997509991839953620042656293258809692184652120093448462043436295659843588190315371567357909681143966747417436937671498027922413068710189407417391564052973535944257185594292600912545016679464278443800462264202848000245067051715507657206372461040745674908460499887144827231687297184517553845888518029929357156948675350404432424476702922486958832434810944880767800180580953448897421827158156107389961361770826674714802598533766691552213761739755232727661312544734798886148023276781366588993468719820267294245689368169960625336812129540781002069694455528342718491519440486525886065586443712200601733244167462774413517632959070588602241452274558685407228447423884243120034314107777127904379032869524959890328786261970802967076298271309735131567305313374102856492462081567375338281492069247641728135510421987901100857845600950537379050341668121591557035186043055150897149243908984010282328707164330962402631796737353797251933030770662339785127940224210459990043792645335955205069451485585267694213574923139760595013253112328407832157623859904745667455509135114396104480650234626866291050018168573714944880986139154151806226867010961814913971475991216579399541217427640767957137903115485114478739706764248614698208744891198306739889457170708836027747439182753732514867948804712508402425206248875383840068932997281773943539410982705706708836974969635107369703294856296991099952784571957802194098733225777152104356622006138089220399792468731090436613806676630169787617741761068389787028360498651954020925771707191751773654234311332495243334728802012614512814712930004435985856666435046103797007194005933670166739065741184658319948045354471107570203203431016637003039876467887279951818226447605748303979602514876192656678644349169741396500146672243754079851798074927678872034009858888398480411438953422674578082626709894651281756651825061014699093383660354598508582013310509592739417697870171857837610996236740801188900348433348493548682650925423118501121704787881129519319438687326495174082462436053732830792747590846986439204714441154608420474454520990597334929191746877372043015920201336975672820197994906109578388574833003783521204463406080205541242730552064409932435703407395265744676662139510480499113672161512195970081013319992180570617259817218520097645792084149022287511321860750342661155385301841100877622012016371973939318190783625302365493422992440099739805011312503698401539882290888522580642337180710861963802935069697197591150652190226570679201654720164061412168044871646152627068413873448584152204920855727868069365837975993794232830715735295936336847144694553806420563852334674771363713126598627363577755234134000605477581655202737712379882148815176902143255855443942610008917774452888320768627393791142419754698457777383332448293933458386743533467921183681227881204202823503824699893290352180612543120616212912285820001192893946355857184968939598104991125382872767189917493803491559825123532410312691609989257743356996996465078384503519201568012597185894976776731759465002453742956720326849781023434622910199210900853318290654825007973320329113183152711199115115339674213595740124405734626952983217522829594130474034116781695936419973464053742663484245591339745275124621565474688699196396445731028428802740688983476118296843691213318345840286877438932540757870146295408523573003785674713003642560657702777008276078823896973106036327838262985683913605137417890376172159095273499555927924863203257976458819811861339224545022791300373844253182921908365087686702271570593661909961910400028091537586230278313669297258146867787867775921922263157855914330113447557905264147242440408540423090874829911200926717928035172435325421653841832298740489065867644337734463138499466744874823079962209237281143339613604772746186707710863387522495080046695722936134731959885605623044816801415369578378866459500773700900685926282643447122196618479632075772436123938471941332576377078628090537102447198967013212938032507343021530908283042623956550789440154157439924567975251483203821934895496473181551418787207007486232433946015215577487204532610640564138685767314684069159875078651915099487319202789009590235479742755551043991540954333642642542804778133026857443907393273513390556849945417768336306766711760897110717893325598476722365044161522754461501716338852659347840400741893939430865800055264445158355446042035940171669258209410821662733038284728192062014734378468459761985837776723175272437708038239121859073359486002100672050659976260716000183385799497866420746231144463064387691370670019594057646719029243989954796314266490092353721812856801953342950045693415015881109888713561319852099645673763287453622175718686720934391808074527336614193161903589973397625743032049731657653027007924022748560708555486569212650367342265628897595382207961833195287485862950580261828007614018410929293289597797087225084651464989588781716540495039789531002677236792205344602077667147998897373921387744451397945328691727578313595548880568662765944602028448750453022689613265545607514013529541525711122969488903560340475453041530588370123214023675649688383806798521720659165781897527484031860499038300627707000276014357917956782182284778065321647821091248609316462667674316129906345438832787449160018080827530573901483344342984441592529464745168707256323762170587775751936620996737906473099398163878637953093927564252175219574910693088850297578125947050116137514605491823717030008717104844968227880288146965095157668209273079773929162357451890085901018393675278394599161201728098155390025180454533602252527045887301826899735141730031206984194355870717260010659389741982153271594775024665484263649290029784623121330660068022665195297039303772081450463893226653012744426167874201643369505774184658384665840446385498748139202717548871440593297514416199264671071448856404203555593163677262066899880978089834516744622291932539266895280207747741424014662591790174709924795104167654969128421134912497900289198975358540178050089959246492707158987415592499256066779351152639788011371847889561215860786081030773508042898040846594242536127036497587597329012642405429135643511893949179170135224996924583716891289967768511149817283727858880971169480404646831705535332048888768542393773921466738851281690159310746991699503999186980965982077523716204121757998249288387482658843100022499662777673352124709839766644069587609261501536966011767054667971117959382370959073198199145885933940468871295833039551972136806086731276075638642947862304457907048147834504411406783057035853635012435672570410709111844831618500281870687338924729783647632513898563209553542850653132915965445351606449446620694735572388378898288746013140118584348739955868329233934622619712035091048184708497452631608861553579175360596583069684321452037292049182682136542441673924579819115482726785126537784692603774715327109312093637614580211513949425756948182260514097549985342764985163962199538157946995112697450563595597254705193595166897062206922888636776905871135624079837054511850062947899484238270853648830545264442423862550287517701160070735414562576505610127001877844767076761913365709244824458662923691608649917278594902317109573562384029806373443978359644169519715674980434620841475314160756014510681921859683565845350842015973090430810946627351855273262565154236884094120207407229800129864571248319369514850030566765129249752507008487603032039491785833846474416090462601131949615669627120531263957612235155284867421008266573784307679134700106125637657933197146552663329474168778025465684043763228278503686979201174592791394004966315216296106218583461350110028233502894738575814256225716139296422317458315667169238214027687256384927345442378698943329352852105406950636906104240699062537097250128441190571112064346249443743253855666273139641295689612560659994447908427633682995093491212548083768334459383997754651070987309871168413026194687668310851412527076525240812515083440846851793663891730062408342929328591661810271968282124210644400916556431987385599020812483116189999824951341140078095518544811294692365113941336994045217678474672229462319464013402919323259049205998224045470341087145501401230778664562023592717854863452071229156994896594307120688945822776980418920679466497748492528904144870932871592340646312372555427236235733008213192185653599285640200908261187094969960904870859729760512551682331444143984365286280428154123994963528357044810455747144359657685165747837824290667942634513800645146886874065412239527761584346799018292261594956152116633972161935546529810974128067630295482520208060497047975228796638775573166533964878479308212388874679384019409106814946808944186928606153123782705261121200188808994804223235920212604552882326163817602289128777144055660377500667997203315005059859965620852354808007435658516515006776824457972088643935965548239914961648838311889211614291401482713910644499746911173603783301771947914376372278010750338202463161563309043558393900439658562774218427867719998647564918297631017281346738551493268068795250997215599085195291008151428254044013720606900239974675865534035112660945462566871903570475268290008380301741447496242013782673743194031714117669245238618424726584286823260916182673311516321210698008234121521279324552168725351405806163465608423407950849590391132949328194973010277558552718820123232683450209329024272023623465099445303594165546723437859192663788994958606288545998657091713363988183603601204702697868270332374142351624792265135187146288516614512636472673649922814463498306526220094441571980132503548948013098503682288444290571454977947310167085747610148669965041594233098605177611051543423762723706076070500534425476118517708907687658334287991416013869371403562864984722859377743439706759248568655318716079030378304441496066846095056670506335541055080084992494833374221511249023796159046787420232896361537497797183323126164839198184700323360372419920472362181329619972017994927588589227992159776052264276164860532770293295706896959191023783252837702074688680414660865971800848283775247055412920080263009823341538352391438452489303762026705870487415508477671232689112631556572135262279327934124170344383901499923838112670936617747905034962400492169607275756873170977111316158873446607172976296493889606843243106234710546324383218001304322546412164215303558581303264891298817494486905757033460721713251618961763238189933759143380808770355802234605929808903624476627131702062829088477493391671412981361966530868524566783751818402866457569001795120668267902040310032441363374984066924473875270591747020261919006145768494603452892834854164821533076974317255659095764415301968734634273383169035995213622327472553502621322361576477470440817398853519864986243880227217431977721731590840318409758036347673737600573215119829924607025904333852439857985286085576794792308492977547595327633772799131940242574718458005884505818485549392521539576461433778944415720381006625825525778551189386304621178709680033177076269897379162744828583902397123019523849325930507908059189526948904859981732029893964554081202521375230745730688195967487611264014086613238263332024332831513989360818030654575724794186747228701444838899893983730206327265034111767119657084174752055557866861854828339629770065353523200945551163170034468127980553817223098949314489551474864286897182274473461447048801892669391696163298554923301714812007067451674456203478560749269497994443810576026430145632958906552810923278431943616204564141730133979781374356497779378772115806831673018303605070959340251854840002797795504451047512865253128536848370982656519830532131537280970718866883800526560160142922085409852713446113030495519203332657388588526369931652624332889780954551086127325751331484320516687805589459118333182379122227046038689294410351502469820954330732083825217739780067613863979215522925158969370557413746419261287233940693796190620464529408494280896209930946793294624468088483391666973094310035580861214579234195109828131245012658643609028998675219149492357960155371094694397584633088078193657286515558444382935212709984779005216441583404635253026862223355805063989062539190514906105884474327494764314463894179381480565514006985579137420580596882997381044563898885921049063081599733555213136228316464073441065470239027096950813276447624801236478597644101184956445653893468967229526789468735095836880584119117930590298914018479364123031309634597560771799644168128388676516480474283229695114936478169017452431442925213772838292008504594425767511498765309272396914785678141289564051267929896457218530607643026053138942991052058466656964202205572020345195865039831888893129613678334727268377095231826972558530714049416733826824443563391352274154761872226490813650993976906497681299608328123840393447631293200133435565651254665684142619602154983137852906095323605896726756474821941448071547061923577212249270778588740207506939915665148451710815337174185270134016181145229208471013609265607563993249500074594057452871010017907988962440623333647677918927323333619241152230232049299082255771748171214795015207597104906544979968026553973564341267656053032523309014354895395719102811888862136453297783042020335036536086168946524717823824025576730587516282135793018669665377039610159083171864946270491591879112873424807651249085371284664404773955955522638242516087901521433959090040534898309604432219579839929122628231235796522034072648294505879139582122591155755937375637197300338053961443352727458842732883823793167527227588681457053891508924509111539492586120511780843661659502842571365467064303812415619696391482602938553740584000387985906275372510198490232685671919517691796691211471664744257953790521329097627611588409435628757432178099536723298785686126596625988449995963895504827449372626744409368405533915895626150316923702094455501413798696273574706219579919794997727257258359132016395253385245371610979856688434589780276117584622215593717606040295858947030665669782352946075479406873328374565835449580834455188579533939335587915749517578074756491278034625334815681781729975798348302805447460041427169487356128073395730708723090422412175479007436626805724345729937682302892442695443771405191978762347087633070419693597373505644873650425628601733890111103952195749089969089909552440772592356135323159021455039175438703150724855445552364612671829913566204567461325216753212564138087273661517385134108244631708558347969057998009721214404484553048759707277183214820428661746830798821337330493071073374619930536999429520348707372112563440693073603124645149995418246750964517691333855983328174991641757890056638091620976385544416094562146458747590486521558246154278553538444313044209852846802342534692225494086089598028935366285650145499768206809023972769807261793285921473275400672562372907594100273882503686798774372845931409847278741733078380547430237018439810272388181301979365585325287943966520230899611581155253731749012821241696326968277633084323916397843328945955245055662872644889727801318038816839158617745179686777759720942277206513110244372248837099319308570370058644371838666412382461265605668038496626735643784383682971452988610903539960639703395330825569863262181888042125769946450693046179327214117518962696753729724141332168012885284163697362662698996479150805454538304414696206826857975934869713934824081247794279332561702943138015387991578437250061360610678263196623203278611241968735845524945890414823068758434066183408666237122687269974461750850675665131306706192450524994991938356672129512943079015363083751851968179154961427593952705524181448837834829738149868402301824391090789107084894884668824987937174810554710127744827831962680435217666920936537334662662479414920390256886525268469243548095925218995348984463597602201711037350288236001537221534323800853213933808535948666080731762981376635163803935429999225198599833798231599142954657366461271254845193330062202665330725857400106130577480244264212817144478215565970866710752889908809110398735584589279447771679124283034618617539647369340515817794042895767446435698603035537767100746061589967537268464820770239691352778316926184485535433108448184926041969704851786211028456924957293032080271772649695067274837377794477843231600546551614332137565997038983849705452436056041665722703446415471563700040932603548050782448144273151474696617390120547372809619331459886431317791025641669586253274593686012027781704407069561762589911586536719665142290831788712996709197035768744751697987450002096072810653950001629252157788560503405402904258242427004302317011134449648942149502624487399850724670246401632572639105044575509039042177095241441757284400789961264831004982993463605338414452832655360861426845452212420044506799460272529497351834320668834672201497613283756429652343168402377095866998242546364743373839609944570944130573111061056681462813951870077073137625961989016935935551946113649337664886884739578513776012903432354763519446616192319120284853562410714105284648750692182637758061417984569234500038375613372408558708404762050364724512305112210524807985423450388039923300757698179267103928593653856730303307145735140283575264258910242771088447724914726450588646479905618235726695679980667565611379143680424634444926940990558395682872330662256416195170851187020571659464528723331370984470445979451099254361791929012450333135543413839687804390682359964775302744448914199700633434118051159853251222383026137545275999146050560049487194156723507677762045887848218406463017045552147948374188050083708849791078835503802362716560210797194397041802911829130404571190228020553224705955146218152096220914967037843194478074848868783636972400382598057226169602490287217019290984621606644482585688214764642584925792528000747712500296641952591981338844516938655019594980191620089389977692454727995384631965932625167353247333625550143208093602272721170502181356971326078994198882797687032784275573143286658722082530518505230855400301385145388123803924210641675686122091340097606131234318915100607291833683148443862231337460882676504404495010329405980278796072705259157317982318131693614633167154224025992070872702569513985351888994564213110243334147588966703388512109470343746903876235408533518442286211156031465404921468204115519816038703937649473897670442096956188286081794007598715192904577368665188234405707046361664678434931194034494312121537966181151588337239200900223346663596865558580142710817940307810826798065415271691576376452802992094262926204265037699368841169048520946603785456459832214314794177511074986277314560608781849959980607831377764830972010469570141433569531163681204264675588117875878750092322776705231763802921659482961457819809453275733671451433482779506131735285618449956191622627165012104001889805115864153178893457623639135847291823937373941933786395917746653136871189539876379686669190245651495890824402183258454532781642702620005630980974501807088558051372460342977399046187215631198335574645149270026591830430286976344288249629481196674691197540721964813370534593189819602558535018387440676521664285128304917006275065294055534821308855910810502764189075448917067027384620560421134830065915709479111225727893964247203180320282775473058396450749360184434098624137355576488289151706999187654859805688998960889476005093273046042534075010651799909483663749491655713434520166232046297497170513003824300805176640549632931503645084744413966778391404414700421122189639206469773519789256356530177643619229671205330694391751340845470897142736987125487443977880761086877780802945073273389883812229310842790330765935409266446812062090022358001518618766407296768848359524878319535278696449254908629857193374431967959579046557634145955481906609385438216926097922214029352096942042698086250502944878992442482273673852331116631690629075883653682071779075467719494503184644708359927491917000301313821808021629689722013593041872262677578907304317997437212269634376825478479973501008753736465524794542713348352780555817974078728262723557209715980038195159752730754152109840803491200309979142926636191601286520415947036748008814509220476454867429593650004212283243571580272967343624453370152656613720851064222564813214068030080565881372342837711346839441160848686314375760345229940455438577184571627470461699496071004228224314311917193775655226561602193524203878287085334829760551954018233057578434759677902208113372076279354972217509144220633568931144010811058612431061445880817406604387262759561290840425280651434800663092338138685305548840783380529867162748075624854434128276514338599525421175318608381585427942099801389285210224822617351774918378830541807018429093447082837398649990983381322591676919323631307841698270941925020769062344370817063398469251727021431328667610828419561540805884832720514377810541804639567511238046177612711807876651233884983776141280297807757602134520316811374092643138402008688982428499005315889164296318413456418575643219964826294686255703327429222975390072345662587776216903885618674006564426377506563006039009914524077823074226064860141434955539232107730109844743673174820652148645530789559983934677302441473254165179508766357937680817439069170433737124389239044734932250765040226284386172140607466156495735528655139672104444882000616417306203850563849611681341385274117002986785359261303333324008108696816497478293130466948950508798186951752046967172662153452832194296856777237621535283144261390701372746757932741211678302686790343822086659749366838961231795639356154694039616167116245591843473585993821026827460584045329807257858933789097074360555677070361198166061608542452659841633870375571022682630670164719283884935913348357893413817502647840663354090736753399596223915898604021682237370109431083697908729804687666414911693432745636856110159328934465075907634043317649223757361196590952474419434874831862996657145871160657768604511372612985501949493033337899949170116682283213313200225845679891074131391704376369052579325954359444055269145423143307469170760057489493296547506798753564775384861965690772890545394730848425699765117433061529033200333031782949146289936676680844695330026152428578903175882729953975341963234493749203515418451606876312639547654420507929668891343632815187696373854274207018028137197466816669140231914109954946442312781170224032749303839132698886675825717962864820073382094100430753999426300095937154675753360035060416394514201181422494052767642890641570049447071721541063936829760459375170866388008524528607696558501362492420874875583237752138058278370854785095926450001031493800682460386210620654519366011145259205521970821965098753206701304035043366755628602776176055538000391152598548443344378170836803063978510907291817562570922139460881562702775551016283254977762818633459445761788236930348672421809005781157913038515383592603833601670779712942402085004103849214544277693597724237082935780120895930825644293010161018556551532702061922009981273047112536903855217753760197956898069242431624632271269710997207208888464962244791491551729673312355096972873854538208656494118983336154912090479242941334602375600628406629066302241542562430982242573858702960888906526838710837392571342057979273903272585828036957509830034225609992869409977466234319440903767451733126802686695054596896576810683288747259268867570849681547254408127559486447071715289076194379676921918192536658684724771656051728980525245208551504619665405541714048218765405709998674123737541820655190273101012846686771122385619542094918566195599119693247723432870898617420947023569281678406748481427837661068577966509828900763361159796850189585162136616692106954063434087186237250447103656559274298888814476084533961908006058939004924157115883270421414414679367484487751393519101878692084862680197619409675477880021787696286794761457535337695384615739504124072131375403112046816468482547054513059583570649911988950778787810104499173753028290983109541953794037196614240656315469573947765556007788918195137112950326482403770078034331415178354141410120616183721925147751626112492582342026284203074910472111313579689831653332606927124242464988708546436289882685712195855071446410808193455514464033663538964662503023164699144309312576048654381036124338640759177527531219180694992922760510389286166468113546246984753508796940388178377900452729346408472252852760974433480911928289308772952373102734397273393801757289715373793773704064059007851890671947425073713289407866400334170454170001203952369934742412312396461574688940249409676437644449829824369070435397627462982507636552204290879604759729882897189606333162293426710460353678838848495814956846083087542606993588185991463376138186958797146200255135518921398084498798463652783029510297821927755443220491561323168980292097185460484085134837820246885468878559547930892798825831113739151693669122824850348830479374210753290444264611803883809539729381551368410760032232775849307172798008688551094258807641249943120036469393210011141027293301288382571346074510932346779899915042419524668159526116349595455316823058232734483691322499371121037192589135604311048333115241654751505604795812411381044446332822911147140522353363009667045135815850622025031253855144349011035023573548147711892895491528894004750103215231161150908499367881897516019298160592723991387723178719272887404306415737363604752745291550678299224153059956233167770281888007516189624700777348726100002918800704429253348865574373810335073533138140890722096509497118313992149711763106837337125410140328445437209242400211234655012086994908777522707627661135812304986192125890108812788262316663393456914252913706387513032678103802072819596432829117782467532279506474491837190026191464141889463469573942100647486947110691847467768853162231600677146247914650477913971355604605777268020168648966250901705148270335314882773068298129367753605162521516533708042207280244014781971690788661538967292755954260994293925780552828689631390688109991750208359455398850318216584508083162378372964057396535168087344029208218291377789077478628299893650520223244199569339753580386803817001880793115517057679641821390405670626793809795711996000667239370106536886117678653232690062961924999690427512566767952879646811070444278482366313534694538000918932266584033832996694250198443726094567843293151086520995906354047117601768712766291725506060850669602060610928775623797352217891343197758958664830335512018555556978295375741142889740507236065442195920875011657107106258699992603147542267909791534666568645215081840325364901517518651554029415926386735860109917528514598811986178055524384025756626149195564357261368006836449349370132899478236756188661998556440795401800868730915860699417059362051040355891520583376485184056274402193430953190582266477044240445848188975171119503419128279366944031765253578203217611879478475749839844815417684182264421341584113159464658997943877197200556996633210337172957017737973137848223086878648823720597052806015706475296264093882428991537347440360423554811616109378829208842346805758795764859696673888577931863719963002060488070378586101217056100913007311754361825172166178189871409580978801161737977986283825948613519544343575784586941459830516331651133130842761548032201477131125775836322288826817622974359179658907132852874782623587817125331951812688452078176866208723694476708439506846605946241153096684910049867314360636883911274957545456069794205876031875766000001270245657536359352426114449002794722188605580744579255105219829156458403375211405324716302595769610292487552773324768853715837908346054197022778366838459012146499717687405053002513031676718723483454285928310790153347114649868232949857050149388515479169418025958901992852278451795322709204201059270416433504419280226909559217069473158281127774030120254098069146923944449898900547273312936335211186326016630020628857409582305938924715754188090607823744574602439784273907505600987023767412226896851427359681193244904160131790738197535869938583284952217903671785933039840486408619939316153518351843876245004739822886100416234400809877370139263152280044350318518043819574556058668200509278725220250470502598750231451077513229282154425008991886642113186838483309913055854593451363813203962210395270558366671721790591559325945198638108383050471123064537404182185193725766693952070197733629553741383596667733024449785645295497976189149784805700361707612931157890811628250132099702883745259489010288317331592987954218844207236865574589577191122407535680442393986817631161652996736388937389092677162999082362879928016462107448412949518223661922882444461588502932289608568176502407594572765855053951711326714470165027477730232459328764467183553107248869999895864259034078010468981206193767594719742366927013075500298723239268957900552485399825494878522424232211677553654986625153094945536035535968973919375048502241852135146276845314424231686055697246259555247879197755238575643410952906522816252494124480190631039820586491148802088292427427377847338817741488932454426181501830959869034717545951707367885359557348816083811583340120519829388240863664406310884040281305368633652641092025112144314944792937891819312276331647168707917127257321621244507426958384666668202561880594809510741382730141608185956798849917053374805085203870921580107491353664085177010328943596955070262349074703939339091166362662456607767387258444136348512777918942591645443749342503493779150242910144163138840982136961438984720332115598545573249837197007732535438155893839392891772663913304045349176652197581212495375539466454282994137982347600209718553936723178736276579934228100124463714306675430292092754830810851909310092618783897613093693659457669106700162798713069270088415897687326583007594277646593144763205092681038360855485786225403675774294931749046690229490677322613910504362500750316599077718525837671092648275880340275363415805365362643221674305676459691110446665259528569082412380713691792118214586511863669021631798724807391560245498452595179653903605355322253580454512332661763019301245905275403363924362703161998419960941330484576033312172256507424408009672850052722070104581934597016589213831670811970192706361465926142028820360229480589906907430129426815681785434825105286266325283082294597204661083645632824876160142946927957819324586745196542532912279751153551963979697257729188276654932248642316788490114266981815896328055895795174330006512083314867809305228285559774352313319169620399930125383284564977596107725637734874934543610135337849411507296075922383149350941174417514948156481078933467498259723045451811943892965363230719269572489201979442522201120923669423830827453481294351225533987905519570946268697165085418330222218729520357094324672600205575482775652525590184450143982154995395931538364811468343632623559786081464931315545471352651160459585092178044781964347989476694287132422806561006972513597035434605072781383628096185077826500950471500345676358406148265494701038745513767039249429292641493951699176277956248871344965190534627946232593634619971740726545138639001498804049809504481168814313312571278395932958952168089001923650575420198385803480841710665283091309682547224154976310664862003644115624759561504102079657683982913256512973093896784268205892749535807437405573542327737519033080652523355923047893493079401580304326175191581231235170519871362622092316195968022916596207353424862880164033674918798999797347329993482938287019096706803002246457698413502732417357142901034183874608552334951086022255765536584957677344178186771101833187540380858888122449397978625232265368707102537978505186256992881757631918342597559337524885206620062803420849375866510331998035080302011425118466572899598520798137590751463476804016641237235163380752132198224539238717431166658290147042752676719835375744132644936374635140034502847813254245576623295985066844702133284739612539532467786634305754202483646431841708607335709156636965089248460182789197201010885252147681776259424434347307596887266321398618009166506392015069594891901499206330275742193548783962189123631187439734550690844521503666054143993281541227765789552643107758621953541893405839677097201477121300186985742219281212337903810490271208627922276031741159119920968555027475586745571544642411950351738237289293544606274411646242665828487977959134025890940642503469597117646344248869914789696045898493712611797188903191500602364335967765407524896303881915099021394084969176280716485841873713430669977731992902889257446059481778037672609240553831305615446045683034866005927956194904679218199993142902990723929621995061262123421441738061042846259163542881882566625871906172918520204010414917332510678297397651196712335726150646899250139364277635957183798358183770984497721485317561490782909988512215954647034207878699047723520961032278794259741655701204841381564480051054949794802637964846838110063222644549498070711126372064189328819736159650581401365663699318348119680280180640250535243084778680996672117154052796268830949322010017800444632399991663228613232528524417019459628569796690064153771456276094015775653757185634883406201151532763075947289289608793421807141829380348588954718098069072845714140216393898137177717229813384153782870967334908127729128289365066374790361940899907516820527948160733549769452746283431546810327055308381926183369663278210975959819657764914715095975508647102964059316772742332077765994392861526229178046818645534614366945798838279730647586195614511897357328768475333403584163761963775768733836588437663117730130735017325411103031133460104126727541845890281370580128217259190183458858362555671648510774625797399495672733444455842289875398488764161013483081360432091465044438844970707529996758076298096755828265392086595877062574871264276592573593061061392556494155687758910621008669464513561473052511805285510257477439677079982511325318387789211468438645042070358110487485450343175749109914858675714110983099435759500490697201207671700382457768966162555534620225552305978385654539340041961660135630589817787121318604963636192421903633558003979722549640464531496960640888564221256201811901833100285554537813405665865856985064396440876782786837232322224441588250898351747361458474655305121883359942975582721932797628996350433225238872335807251628383602528318032645898229172158220391406444990234558995069579840564728736670473837013649991905100175254170864048321191921699443030118351305154454712230141949874627177356377540756475764006896958949098577296027995138875902323190005063710503217801208550242277937112688948779415008355350389666864064580328934812079470522093842177997590879824733229466002076430839083075759531064914696187701175081479657295732539198161449452018408985987527949901491653021857568968926965080426545694124475502928602252307314942891782976014269095790195940591636893179603539624200367200242835637728144819611465282093300701519101390286605995527948659738454908229799117065710528104542996647714607624467504813609530465566001835673818011731144785365911819507462905686906339877975407048241271952508233444200895537629746349866679777077329664293553896742450695434021331294742105823845998100189772035781226218059643791941934034500793732243506978951534905080674163134500134742248960531601343145015373797222335477775199923301905719022082705597820421647438832788522434306892900766264216858330854961802947090149575818451420636773936021493510077797164784358820028123260766284834545308636766497060660769171671828929997010020093147522365794569984639065184126331061169902016979775647355022546112838418623812244911650160519212514313361575673590546791105289245234462952908701459247578831224028672766916945047960487767034934193389482043810865290421952690149261700694984221392574145531452443950040666290625620117069576427109382231225856469763461279687268732727497564380742575883340836228408096761044904269174700336039733221451110373485843221485520567532637008627110390212815022923853574685072801925477667211391935180648651774927285166616720942404694659531785910683321956394221119218446890281250162197109367977395610994530030418061591469670082236940984057621522584132886596442158929015439185166858457465662060709126297135622873268560924741004593581877341696080603879014615623393711649789365853046739359143537459136265952719799120219904520319377149781763274370406600294409253444592863615473450307245468102638764278166822095272474116072649057295366544212130059117044077340297827088243656796207569258050617701243133526128489037867516413649013787398432039432873666173011529737391084017771267497725655895651677499579962993108062474961244087413100686882893950845319182572329279174003575280337072951326029884141975135667237094491298890819960526202615465996952262288237058873451204775412802962509148864192961269444901726891365921726693114453028818429935657375090870510166301455035995902152981125759614627011085268130683399814123755543065214051931681395749795275337501675354543342467855095887010848287085272073119097069236645312441622085747302545836699297439870393407486620432742893251261712006640162665133553971727648450734262476331423619938194766916892109238857663275852049179928823541289453518988048739797314387409876747366715765456085517007761780109110136002239790225218554545371580759488362976396986386887324408698341079036392194812875485207688913457450845247902470865060098178559429323883424504914776701493006639740532792331033082167190363116066055505600247260072516105867406422841206835841461908199808283387864333718906741467632528694924780529423947901816931085562793782174073107752694981528118793803828500462804836857001216640176275344502078605244612248618123692670755778278952338739785646904301575465418346321160923359449997283832578003257685570077357480368079402463112446879301802118140708128333359810870540438902199644865367531151489171109747793095386581817310501471244287169434844951860611862344307041054907012071433632312142293697969902538453037269402792937348377095176948242883001669660033813782813494993436782145230650668241276032751221603981496872483579304597403294827272008533646356830167341750683734257082289631497833628853355814184369065225722676905918655543614766422982478837224197967082858348418924173011317743325741820835369916464740062312132824830952100609335804135825076556122234571461822334788525404527820464448396255327365576182359315195929944536840262256193724835652740740703298779567894092790597521874941218858833106278572560928055075136070626171024591409003604160460227795411580287353419228781623661569310255535313495012417170104582309927073753692469947313556994320544629991365875739965994988132005009967856404524335089551796792284721978909487645716779288355349261614208007789832873744450288708005727718199647658217682869377713379052992796939339611382773479935574680428442778861594516921547745507031962034705510081562129544898847760084764834735898422945639983944010438183615769165567547430025510960435252756043598978505621842964846550059844693187273698917877249012035608012407366526631180590349165680491691284411048645937975370138295909301668051029089883280930008216222687163986306619955591507002964012758760808853241750202631756447490034678255779740110226709702800738551956346231309030360330516046552398266340647747464466612791383216325092324280495533334715728490442238758312865153111882849352786386933052364102275301741731733727909332844518314520667526172762220532704323667499318270125682123713344014998159678263254553789650234273608449659780278305664093881590723037243923110770606351634201984360092611841633434349007658146238934902437200527250346740901416279763685828214464995561413758351712343595596582926082388034353503774409004619545553128516287773917118199181811047219773985910497776537658163985241359041357277603717401111453879347143270664325243527670199025941751480834195181944574087682551052861189401710192692134105204067357739342132858251552159240785027049591545919984026043831920435228740397628002784591805768000785135296552419723291012702264497367094469430020394111806765077525403152546716598131436099941016103388597170377550304139540537614362000052546076320416527485320538039678560919925442681704710308376568651444393516519447476689894119029404573538311849301925075478002533518038128303982616192176756935560497669383484818559182257735024304867023237811661344153027345335037798932228136859298129011153937096801624319752206571221080477106528763446327957234078389061646306876536710158942795127684802450255785892976967062057153948177942819931045440455439558348946373767626781564322493594136097304704903442466653441294928429506736536141690042170171886842383860912727788917146460899813051971170317541153037660384646494736785107784632810809996543629855548423081140307328674259967704268532025866835025400753115613805001091289925751921206233840723420880580071463456166439962431261478643937326865498044133256837697680130583426612983194337443542274029210917891179396493300611103017943641509540090724350489399502609186683700522428040610249709715860690064945641539295781946298052292249668994881354088688179317894021329363693352973669823924245922470788193341120234004771190405175731036086598893792267509702068473933320884061489084589177792023362699019017496235783431967509164070582842426429538727648617199565285990242913450965939519193127030584337498526696918561586108970724803109573597231990524102567389003776060699143348310420751486185086617228273435139138754896728000766936060693645707201690102893298902919111306372986474590057083453785967008348966711622204538528064825252205136425379876073638176252132806972743606388010993621152841599735641124545843669019461277125626474314777062127546461714993526969063808872069999119854919932259233143023127067031990435282104085163506864033775399035068189007681659361024689780799654774279920173111569776942222614146666304206311207568339735827652838626984242882215022192905480027677069443478768814885401828515693713101183036735249175309487847819257640467323696271494879168736302801583778936960403577674625720778246574738246562433856784190853933370237739698947420958475903810371830281681045128923911460019322354293422035616923907132135287006387668107700405743367638421424395813042576168068089903283180006172387182424491394235000031133790771696767291208368026891318651525898879912835518828469147341159413909047292329367611925174196169189624414957405123909769685645489267715018446198363284819372097896495429530706184311449655718044810744897016967109805404857209455107120980601612411153154352385738002963837120751035761084368046846857976564791207905196543324522422243928205110231847444610744450944872683896501557998401053847331574061968802441046770277885773748192935257086052236009331718228218264471693900632118577016853546489424328719602424456320057054478823531962163860502733218550435908959420008892878603856631837783715794862378776103047452991553450290903793937649348752231054830626487478692944617344937137648331522043940892764065415491614856464287913295817202815306211077565341996269928577972508549891293400556207420869808058304896624415753600022055446186680549021107206733422002956309217666643082709468362324316435333058372373071307014273621729245357536533616193060716269708467093254614258824752670663022189423033157028867972574871867831252901611158112696060131641903296110251680163714825556657816207702399109155297621287494440993026199544756664179173932841330362354842942371118873443956842193814293872117907660884512863509920222596398256675852216836035354786897037987724894816405332581894125693128740357435148959392930839082966289198257047023291207373457823671104080837935106235422729927665648268725593693008205949245104552454225011102727615914642322737331909656431785060661600709645089796175310019619042884638751012388347110073539398770081494491451408730474928766992390519222371218228869631562419070574645426842180447203989276690222876925734296493495476959674796917036507701737512895182897398861257326332929834503327131918610109082633951533746371551721098437838303033599475654782298988572464455649727468130104313434760558862752695868727373085121193614460575179304886327464969041899714714777453929849932875277549018953565741789102075390402477642493986379103236536163770406145297842891863407625037322049173885759613216597668167383115697499922804399438716223365801277056517272674842826130840440123330055571094785073066941447582323649789047735098339259636757564810320849200726914888418954784648971331507649264527778241516011240290391306150331652305450015237639704110220139029612334832212190632801318429127654702822816086732850172725109168093335950735761196181865672459314098180706304793029917910725240726886825062882582179609930075930333460026196180561889532569738531869521878961660049563479671639539825605909684290306800305521178576350788654618429091503574084685641475263202021691043910457105525819901959347874829527788492766046646088894768869926403152822876477846804267391352810741352418475718475929291351220077931386624711941454129613543494628900551814097780789475603935748434781177764965149741424409213743250389108968649413840406039204161125604430378926095981121912909079920355035673083984509010599325375799674776971684165584251263285207012300410836311392897565240666137234345786955837780132874029847585141562023526698706885269209523779667839527909316234257813392969839089588073452011367440448320285377481037569157790454406562879669564081254281481359262719295938433913286823973166090398647887203694048694631457369367677545619914937174106053074447080201261912860163114487541637803857402669452813181411184210380461782944029845331839965013984421620340017996011746501596745996620333101870115813745323068789629675269460223506242061601066850150768724600514928785734929008899100192711329586907603646702792335489947377978099398465912695896199330022620775363823827910844905573827649153116148102128039964046421929410622416022144886320024857650425265930169803814046456143443202106136905735818544000071928102272662126737478674925013290544849870921148204527392735850767271308843087809179141683316063086130252781603775629788391349191260719752109301852387185672737405430858642071832240853574098045333574087778066389368615856865090172807596519628137976754800137437829942561251390993164866352772409194325270494267083909949962307730557946811697616979367816831349838826907624363810493816639335950101390717949201699887663891588065241606118909419908060605882569132772677193703001227816410632784464237036520787696714470805005903163081909634304413338561481789901920765401925344561870176664834288063176086879368484828986907753562316223091978205222426089015314597202294504047464012413390854524912106805866517106372889550743625527869883222541841767234044403530331492526319960772686103806064513975171966373269796824998077058187420230992096200118994655003939999498465567603001838933497683168650241261691984668968318368719759890633784303966387154299682032673220058502819264528430361326403161263497977332620701761298766066299264303078751579495206272390276127315385867572944024339032655198781465604895304266078124827869385583580654861970813896010637640195943403857221320805902856890143679439864559936465400550646152351565389764398478254158944904042668035969656555217111506704507951728853685373039922778555361954122486276099515712014606579583805161441426431967005295800919535963197562391484455176541319809523647461364766849887678643221169852202489001857277963872295010212425816908993169692780271003672734338550088916980995790896783825214977874441928496642809969724655909636367826346655489445831935662260677218515054832848271318414029834767689388265794294291387687880650241068255636455023728933724063710033063210470033432933881448657321708256249916903471019295831786264347227678374067091957360930056276477266659271171343468527318271793823736195284856537396913724018765374796754278825337928674807212408037831598427855241449028208089777260111706453354111751215951817502236745251572373190614578684583042904286435266743565138061260222398230087000019878257616752582069449935100106163420501889718290283431538656905652119018266928430531105337436931368545030909393824517429847950732924855920051606934901787014193568300215633243751137203788773012273841335657463757294485207001466140999661518096037795689319370088904740033604887613830650998091735341123320840953070704127925300474995973305166064765732057100333289420015566098531606978840866016757008053719290011634861511780046364262446954058677958336034730824761926986000102410453996910099571258164930723140382162807613356020834149425989355324670576529543143281381695373531666696227471575306878738889512839087361364679912687540721699328037069075329574111597782941916962574845497018749345554723311552314512194574331778965117672053530125888597852061948195040203545690540835680144959220538299630614970607273656434692544166184884622434143380923840831419582465935623287883350943455728530973473214235279219740029970951741906107815900110755168248574214420759993041059083526702364698969958167632583513333998918897867755858793735352911080506947584849192869720325584435806028086549738158675772378060664656607961605011052200972193356894701382112965742264580333525481466719664137370747848003268025693590935040354269001299975473062321127968197177132860371898089417256411712570385298531527332900841511595053773044089185528737250124303770882943273143691677612111031504576304196260105563421950607492666548502187703877999261650888389121095530376968415784641277106385455596697425207840758425882018219842747333004744633472026295977089111754313980122491517278236759445644259368319778079060863070937448449840403562400396886143756577456713625374610468490142294859222162869700110000531921271209818414464009964941595449683402220964311277474057344167669810434320195929194850206513481735899788057030968538618550491342943882590054329409412951308240522036222753855961175117801964290872243199846700538322461358106742827635752343517126211599705086769458324729131948253331931500964683407184846301156610479043013383424893660763123095341390557044877203887670162344362836142558446219594598256704808772360335988934227839488706412039652592540565836979877219031777861102168135798458051744776620216976770087520901968490486291362799147551049771512579567171757433304764783584787934569269904131497354666327720839726621238077362991297197782169539682741912623323131928027641236262611783252854955955253877672223845178918494937368680767225839429705778185042884519502253853675510477931230233188320737071194183361504464863529325807906538481217312039544435489513595338215430746386127762934780600281480901923440889812317903009643897221944256036914039940571418999709492237310284091194262391588677851219807777257762848492039218315106858561899335427471281981728985446084428958080457622664983940721888092852658647196663957510809477029047135994831827599415999714455589765207444167137542844087357144195087900311167858248626811519324807366929550406294442369736670530402204548057687844394149090906295406227956871666309662186057049488937751667734504585941621203391322092627614499977319903995110746378348816028419219736453336593711085870818875929344686730741215301449279432430291643075700261577867435895206938288653671270174689310337991759654964383525245661992195087870066011499037635619617989396275735796711155429866181036468836139047472227684668181517255562208176189597917186998028997216593202613204038001042330859815511518418168988598936562442976928500773839795384775671181480320495716473334044771901167399117783472639080633485042960089907352395541181193630195415750417134393095169524859240549555507358576801566716261521697368732782701293670060873420119860040795403703104494197334190475445523876200100778762380467807912774556681031085570405851711210388220115631652995159303399927456318907964991325510449794310161172700966042159905004772831678342509376755625401439192194188332276477761847304362171520366736398010363447431511899499384654578787433070042449993449477623315600838903183720701276971698900027979323479594301728996879048832130685301610270445902195507387881069111511423879726442991671954108987059161192886148281618200400911389148058547140654305359732694749579126549900335997325482883230398499685307048825605688772494336936083220021099612735942180428976706709740744377580215309743820871168030631448506419452209923788137096940522555534004329199986003191123971947042554120146199436596816013575253287338885561465452507987876980089143166404690275542324946401860299715521932703845672185517317485709423348330981452630282162115239272430297789604426735682047916364908227634503710972123163746312354950723847120017695436984228238327025667885774739920112939090811175968874915907319775616887289642834922381119375004333165896848825043980650188607584106321172473044301537412651686089144745794924709458409644741040366040844599300095317685448100218000002754920599227894249370635600049713708500527730706253482443148189949649353647946552855707498528472656207872622659231296710695848431131749842371940363352274095177044195264294044051870368479006424883013939917441632565093644504957864641373967771006245107874649760065610039957329158701902979947005782132137920831697173013157838642874140261622788674777129443567907607532531941944424589534623546881111832751509024298750596748724857654535064693168404857772955544695398433112494901037248458392879564350494258665466404785258220119627840171772019002941545266721140776877093791890650256895374690931659067395308454029916474489261665526511229426574787731210688830849212036566284416569643030776326896293650966680578379213159517641698839633380758103111498546839760728693291453173663859397043187497386685347340913903336595632154986412856991794365134174394331869667481194139027467766897162418813267701454523993303852475782911723681279928366056527234479591259710057208052519512037841548415148813394437709476518415476352958378726340706327883689919290083938631601206009141955971434995050885894818085811466661951959764553505094316492241033222091418942421270858378851228542716940611584524678306217192132189502135832429246994082959548275698559446781517718272627187615014563965159071369318126100254682336129497220087267051513261558801139534410346490911562906878906312956316376975926036055864928723871512985211495738947109590547347438920800029186477555097962523034165601253328025035423197097275696433066060166632662451426621616034197284099460030310947747153390024782041459444829907936368244529256659552618850667862784425115757369989920810652779434306041308966872636250063320127013657189662528633232897605946493417183785012431497016284448574810706899859192369270656266410319838756980199328519980220912676967562436279217979447314279869097152224004271837938435573098366555072656349470387142366746504965493255195183750941437913895144004966210231621594519956177353608932358126014453024375067730238709796216689302500212178072132888071932769223148466396617712181529257021579206624086119648615771375041326529454424347031353139519321759099980724927020867342652273460134412401791678961028530608269381402469663721591205129727547578846496824570875188914772825055801945033144097495585166658132734625545266725149032683711284334816958693276611374042620671675065650077559822875080215037629255470583999356150871625639964004883245732387345585047642662464123476743116482027964906425469739788259080172778404758478175757862524892989190334731521785663658617737069044233368311955687822125910411514757650079589676738168549635013585643302176426557816730130516284144283224673143224652191734367084965286662956895816634702030957858037253996230855981618027925115302749672360384016730958060085460814063807024096165294769219390415073725791945141135129965130637046960560851031949315958536970532728630848399145693132151766545812382175198735628160045729668125525208971007427256974203785397603642821487609076376770759305463394080731706437746927068581794945447030575032821824108258905266794558348135122523744241369710711018801041733590372068628293557194833145286195691169137988997667221223941815353434152349077854230755601993125288482058642347048721857429190394273918342636394555407267190471875870545998672213987380821544226993620093646931339814670755677191173749910851241638199183228051719163765529867300179353118869866969948148875917464365154821489792187234518839676877264677662368930834962043821980962280829171498644940157149780622224816966927201014564402717424224201187293983034526089965083566452952636707196269903879696028432689429562409736743808556449159822173880089696605383104225232171730579511099692272243946317777337287438038584996505808481394066834723143175049632293449793665437958532982054075761525194548629139634371001443469186129026378720469448790864289110534090454269467013069387242008840201324362539484682231083785007101452727119571089387038159847579862943555611887524464257508860587279212920366738993730511456128682796185535300956130837115012646423623191377102338892584777367843764920712535756354326103419612716465207523216085831726656541412139043766851087832966899453143884243873226546157702526120877124637675074759916362597580445131779166802336856937941771182745154888900214951226009161610464662202591638745714981544619865480317447286379679023640620356100644854629661628262318820282597110599728406578703858136442797726997434617525590679100651043908153862326886518290605158170196165876610866995452100943217246318465200788230563872924009917799309953329030002987877619606580114313252172286415394945776813141108585897222355435213009618910050599971204897724117391798800611086763589604298128746780454157145163277611673745341839829922821263382022281081672777975494185564709702132206604850215771134415488559861005213736326190286043236277948419296572415457741576028847603559457308820693527062617635412938769321771727192905243693574909633459750431696885070442854793936640543946637089635551398818502919228159691784747349489547007539939499847029633570121702844605960629781531063424936110166779523315952469241309144182476679920817263429580023420983894688445891450176155338896046268098092878022402505907044515477754703155446653827713586804488026622710519535188240747615528787497268859804511098021418195448076492262130610262977706895914325608666172279285065454941663357519866776802870471402274981589901801033640500436974162900263440242951004466519794633930723172401093103634668042362566477755324852474741899130805668136731863929738026199485641932902111693692619823483626562676783074800658329238179735067200218479472046976241950009196995836089536165140867207531798755280231487591292638933992732422084539387296309784741085607473708684725051885963794006791014683638027271175970945519225803221773001491422179760265226993424011165484481759572299289446377408322394646505352905592088663916551692977496958018687473995248079457863103367971044711534065784255434800496446894924980088400459492442242559493638461380131604144319933401396499519075848260698638855260476707013987711551025742719447916593303459163202408962903728835349713444548993126099352102032382858561924053125030428414148061602146858458211713534928074643926342962018097120888482899570248543132258982730987566718942270069583156734538853198004469033287854285132314151593353406227298212244624805342213274762722929424120564465869174714249411188851913133481171611138418802088407220698984053183823198414531563931584216811158035322019265395262974319668727838892819347326990379978131588757318517180694590808504840103796444174393222453597595245110091354872281437780886799481635891880747716882401476606667752532185530201010303153392897261364054216388984399754307633399854636039408731519566778491715827988972071843342116799629096611135998060659612300690983111118703799589899661987050721916776359337649255120718165039483732403986198416582251722348734888090881159867287195595018721311901144285244307430872916238753002917638016089813032422922284083520896141344356954639118573157743909750078877109002145363870591581057300860791614002187213022943024209097465441553631877992385199503979496596001839215503482784606175789233760981908763695367421006884300015315526376915974911346913095354929489619445375175476611079361372271054877090122253443231476112882936444553826365513068299536131343326107026865218288086731123006747651906263553325299481920519071091780168515796918988389958860714746116007479858062584009271487912481783341766477268431732305473097578829005937719248787562620376778638134097705721254855341902494605567333203629959751312831875364197839923598552363536067755751967806693564451203165167721402920553520490965859614511158387624787363206273456173170851250975015659838078829214944208412595690391945539168939276850084741322282808784851143067441774330796434850633116106635298768432239318544121939791463196448394810697813294769927127273772377872316649790165863742441616596737346926617438774706784207668524891998273040622108284569034670180218113502015881443680129684797381276871097563636195849265435427191444324553545818014682203316996094273679996154995144856903034295871758655183262248155620566610374380810880995702568459160803016861144844466438637683689559600149537712827427170858677683976874345860958627272859703833367285230025980854465665605542990001332425395878590777267332834077764195237768751141197032878047148474081438988676008427438909932259700229499833658501322946348285366180804049041215854323730739494841363916745880373867922674025606820649113262690624805581432521116413135052076121271995715974851307793912989703326044296669049925812726992627993164367887430644651025950355740158362525495857601385375602306884532817524605147088275833147868179940373419807066809725363970998109404009288032634675255553442266593713995803873957378451416865500975844046390496235690317951662267867650578510547422121329467048354679331069293444916644395531626934422621499396509281357519941880807683307442201101569135483602805783874951580854984629157162104497776440838119764061167148464027290157146717215357884077308335672552058269399726144757097702948672650961874860608410437729042237841444250673640143508819015444088032083124058063315391030452066107148350781250684917477152119517055117773982925159431978882322414893715036262493808749640467906951649990035887210913101198196455387249801209161895730976211334956703188284879122189297554082156621048598243220643694288883866623672133751370423785364523479247997556761932298923234024622962517975267758097584807164454449764069091581819922821195257053916370466814276388658872917360532702923808846159567907375314401097646548924109340578062790810340577345332319893841933653209068512313694037530177012317112802172610882888883122411969522008036803506301965712860127716503337173389784093155060744644965410891275821328192249733311852958251171163489252050553199347762768030454899812161104490256042087629821611107097582820059880033083900501554661996362238551616700026487495025247739481433904560227070440033003852631592147262347045322817789501312740433693668361667422689021368885554233868086443254141924363017277614055419584167781101572151106955630009776196639797130400728900138130667445274162550117444741753892173577936270773077106021526089526507754059597848711347237718300001949161191559121103023148742389916381019968632601648930530682064634395075035555170723311434815855576224608198277567298431776542629481815119333533219168637326977136284697098492181200861555256420826776736543604508621262144005327251436635097591972559172512165941549731161959929939833607888228765671284585706632018723285099433332344801879191456804642778825750103155435268163418197072819312893188213257958204089657147519620930638993767403412533947173231153517633478192695916106830684342681273441298273156067124970731146093097466910075595881649460278203457737216165000668870476524866723405371158487904083413449759865837397836047388299818312420154606144241103221809638726944586514278318358873700627495359998393767123479497201268232059963003647594121719851365038190601595843578729422424074543171411947680936137336466867627049847113220462077985040938141948858269741676619405443849298117437849985301450559963489630258423118492361729962081309930527410055707279643758125168726588603602197212017059687716442323681750856561148788325215935221869587603187575779433609360700437876325174928970177461783195451170357619610462855085860902475755283575499416076251399866970344773342287739183433689287558682904410407296361872379177563499289012689080053012086527634137687746973869809141802040058450297671686448999956376671532979323262435003648282949984705722858606234437280579301671303163287846827688951227623035490434067754631180996533642717623598586219764842922308607100441563355416838774966304221866394573965368416780165279365188194935711590303023367140422277283509494376660757148389631038229234630646454067917556648796964703366235873834066738310077355755041141803498599531092896526670583700558722127367224491898208449377227884129342794810490200800903523871865409108059969775788726761435755957589286461799211469406175660812685415599779557617516884889366246528553388710725020708808606738006333441821699902981274146676961851925319628141297934179170687785621212510059127883834160891329733970128548321320057459095162861155690623787921541058782189414889752139874634926992715846855523171129910722294114927136575519694017479372939182419589469238920823125168143615852870786162152890819658190328764131517651772955935306308606453706718156277619744500517333701961088173970465139271588381852743070287401889136292940721020998544117741639162118394199550356086380714994766829332301760911109788782632491669904201975637817233854399078920988072189493255685389377755356957028908504274854342157850692600238452567310145395195804061977439448414651069386602324467831551289959530466491094925601601329260205554899747830988349237281081258121758498057677853068249682374285541934480358634064039230818921506278916479730456673371444726086364304941603043658183575877465020259783554868175528577126996779566238865531932563085852236011229896772263222785318402105272948469818460953588091013865152342986030405265188064479076814290740188470855165366628917413527269736500702490204913215519532880376026087889122947288402416882957879448765466418983533997069411798140231252011132685205641847525269716071622027521217351647332320609972430629998314432312586785791353127514191724709171558145102490240899362329169612209827105490346365579544448100388140996303979791195923300062382802817951629592848639862312801198018471641133631490390617364785387620833784881138749568983116925889923072816061178928885563829300803245789217197272263466111440333108110042530250963236539663938267155390113213794419458283273439312646256871249792701093912122986557205754073438896455835470292467104882013666466425082641061000214507566433939707724327943884752024393045224862778602454687772051947694537409699340865268345558254727569573663218637424815553504635137510080471738968454343534728915916954457604678443242086906641786244782228549892828191989227794615582809585373076123160610284220134840294891481476952139223230273840618207812080777972373919506336579744493042696674044083051201054828467515429068962531990467844184010263591921811180473158856690124443935181847811363488258280240295750612681359708670716184268941923773662435978833680332191252870286581680706725267944012391575922057108969845950724451029463462308933976126721621835236384036540022653957983928626163605073961257051903946500130482898343552658831720627625039863855966965492188830943899689802748965617270709622164992756745267454255952040171833863077837574099155079515403163031281166352442474096619882778771793006327457182645838357294118274841147216573754434607719097946020772927435942351902665230828377739922319967124563847508644129034296025400237039541228010755350148651233845343616603928516563239249064251485890321633980389395285858916157365419648470104526257415954082223024944757253859313348260181162497060589964939028445734549684792776197565589239408785794755765542779376355955292427383365054025124568705993028876913004624720943570695354208823442696959099233421459416538388219685028658114412204454925455010941129775222057659784732093021262505773073488138499105336392717348928815711878036307008038400526727088187510905097174610397899757454262251608414568789677916706400087696473835997751002698505542293341123220753073213984586658676523676021586241273816519882703492335581705746493040791880380293135389565806811600498571133492492834716082186284606606303395478531189792699100625383012591243004193965354999663733756036981309540897750809002577781150808528554608330962834783874443586579430779903700493251267745312762281248307804419760719342118273142173420451299077060967416594481465958427828655683756091178542616066214702469986799329171267838032234773565083318854315948937547849131829969139259187188665425888716690432091351489364551383537825251883573636640141101052105425245679135560612512718365382322903892098688533841028295990241790187339854698922429949552612963363638854776287186970298243265375247231977956192100634866316497537563570464207973180888510938835226771256026644567380004761515705817316109308273388318219036380257426456780795517292295800206697833811342423424693035448428723936304179114800786728388619657575173971461891484278324126095481090609612869436898487660414229877928842455477894833885005804791924317774898037379902128490867907115795017827384201341677135020366583737977027245049983219412670748758712139893560360180905960695863070780023338931902510940837171508638053914272938589401906592627833103063960823607323649480888687921298789891726166612129070449757819362498856707609420208304164130281815446843437059440456824946253854305400517607452673676197632602194437977898901345211971616361210078939855740129016836279244370411555769361369401569580360742506968857163015295687506975013197844417270330570474901194509086138568150549637749709797581195643160111034377619270523898249184547223165765088963900249503981993485941480800631352189373156626698963378994511137569365115099270795518232012778550759337863847417923973240784433736049405630462857588275343889050391216570050902127682718439943951876935887298987298702482824472704781996796389327503527378571830128635224891844339525808210495909096379668277652562540990170018146649843258825702090844133898452681970075780635853028506211465214248066827119179864073600720894527647942917488066291047462101598595306681695759763888447816206693161043038942824844515821110355839047315604465188067993371278343875033291546401259574676805195960990481793936662705160279611063080063221723436705791849622276465295468617877240832734593090164198109933297131255692297715490815549214123457908223347656351203179646237602189020542841736680832644006434789729764909029468632418999902601191650898815642918426888538348921945425750755692938802602130667565975983319041291253224006558609877470380313572469476634655201343740228953109044936981052326978769198045607201216892091193108312748604590198410215072957227995229869489136678051856482386169275919874294148256769343000490167268002323081287407676182197654030513280259354473555051452916207322361313020018945573358497249989241525788894324096673258561316318956003716500219588465490771415632992083551368229423061908955730165901391746892819999127203858966036038474051697002158287846036318994145884371963961991885876898114050862080472424085935344065321273689371364646821899593497606516839652560886186166800651478167320285768731898573636321294138759905227652405704785529105586501820822967816487552805762683479542879807660084082795807483056231647089143830626082839248682667865225970691914324722705493488232786049683925507266128576198853968854740415160873067910461443743653393538519259571148442490668520322005857238565588590797997133594952111804315885049171681395579896855097326963644865473998262889623125625636815688319595797416598890963507547495844218107054483709054435444441393668703853346938911281262539521914949542028918336875540765103823835846654227403478811752133286922293106689267262499802477922370393305437560432410925842125795754973876951029649738266920486066817842939956542754695277507226377762230826216147730367054663392326225573824215405059293632165458578936642058123571697900074470854216351085889813712291685395893510663500057700776252214101304926277164868331781399317494919959000393341113526934449787822787206725441996453817434578536428295345890467756584939576121531129398488994370161909052959074433274989524469369709845695476371409881245289861407826551670030006841695999098214004976993276817557066706030213525350877437923456796916575427886272613611085711650356896869208691482639793639541882032092224114495837298391986341666876207617940953946885863125202620339970371584414166000722452415017266151191376366630991280208254291458366725156057479559765652387008665812874116367891088902103724220054602162506193736772214830284781193906432081003780376710396215771982796321880846915463948217015274707456991948689767746869933993236444005632768089835343440492926876507459841611552133094507444052720216067105926436587589495827482038909122816015062652931833755514724806504051372092699832816137658056194625082720621770065719687916231622498381180806299762378038427226688898426335630713542999268758349009029274140193594827028599696676728935536555480592735831439240538828127553126946118415210953142778651903100981909556649242063699127935999623263740143968476563103583926235064377133271747874229127961838969233616724623982602218106942648787294357560318477477761985349201622405874410946447179861615583928511964647972247136584421170391440856419733616828018235762945307279628689735791969025256612736496654406098890961841061355296758780185280797399369419300001588069090363827606798098510839394042533827561450681771119727307783864580127540937244554808592878709234685668480470557510535140501969731732104042609570998751033947730391523781725222017869645833555220176977745644363414458332917435585635009226646644700421824447219904547276870636855328980752614531019742566114967850082245544115091952709148447970832873222807260147148607735364805435186688497170377971861529892433869224505300166200410838027555551447123631606821780061020781547410549443178184196072702151204434307813447027892810186151564174506326472970489433401213002882739297544017457431736318495477668257840731280770859496793692574121733743226738771739349420125961720800589955326667756284716881536667440244697956550654201560137525149421361180819482217678420438677002812652122024956011463034569443837991794582330059048952331357815927857311967637123147682412947358444364566444089414359556481838782885941791406914387330598553960838769609312422607310477600272344143166068038322215383900021923050377330837438143931343322943121239183604039429535537325746611336703586797878766430516216892643438273540488155473072861645171805447951480426555466703801415889927842837016943605115957675921803107426172953198010595233244583372077834395011120409074988045605983239597835490212722620467270432496702675989879037967772412876911501615440534639862004897760684858645261764414323621352115638837074506644455582315472497956540112644505487730045031125410865786341281545969312941008729151608072649058510880519049928775107237586201744523208952838748845344058421737339022920261841077433125928246550958536840346968797460723042741415181904315147309506020107624825638052105513667496656323496263843630899058231415472103293824182292583270292916798867135201936620720887050708262193621851060969495506582705078322169472747893249814457754832631993215517359155864046794307251122847744800330665286716597107819839706806563273012014459793709927750663404210580738713509801994500549028696639145742293615259283067721409738437663180487898196683663809882291773157843627143578854325779911390209526904827321947763361263148245867581602263135238689006706375229949564736530003481018020017829489357830079653491219438643096149079560809229114778856286914895211331393437507436632480423499760350671688756964843854973939935055039970342602179553060053853023726543413759411750727586104529316452644111280870805799277409424241045336962634222284297137829326322583313866696764583435513816512926753270001177275208660843038683759451066619139099025318009365502676348733279002728250878787499727959891456417538430118598729052970455475020849739458897081097451340324967541871242579161859433294501961804505254622507795735308472426319201833256115235002408322173824831791411188134732443720071121300190281088648370018538291521161154078214451117933264099062913412936601221872261920942218678340422860078607679855040334042845382014757065544909961760348515295094648981222390682489384362951261526070934880377813093178385297233815892267181818192027834420254600342597793805531313301983225856460853284451422328215851793905240099060809610416851024466510861593892488655758869434424179627133483206919869302177105516508780540119592305220935622011183352957791578462500798629770912601472834321439684247042846233963730866167707358077755323403199576556194425406699314474363960313246565395322722907673066097560027087118394501969155833739801723714042321720063799892296679162572330009950004819103841290121950376240998983055107587618190297789658631184566853638311869234145590816287069330509066884156202600920975415750007556572840473170645345562098552165653048112273655444478436687670995077951932179270986377984173829649515644369513804992829960516217710785420410287758163957924577507106955304551446528656644017924608905635831330931662967468877436081753683524386236911575828451035672841340630362033029586668686822116203370801323578159378240385850873205333706033244961817004127127645741369113163377823166032819478379364822501475654393272454479410009561615736723456698815184037488082790674932970048147523835757566372810744942189147202074722008963747985195807260650365863634081986240836644768530197322863285936991524832174220028195358335757752775326551730662908449922235856711310599447954052677823478037510510351530071450106188585805344622281456177696690223957281238867016943013708742664242470678900676600158221056666404025847408090174733039227664732926002792238398234970909781316620110438810397439502722368260750771957023104819407156650176056852162047032272276440545005888724202548797312129746155716816928195498053251549891967437926092727337674594549505261698400115900369298485040067006508909627969708337591855752964875966175714565968851655769182256868264505322928160002850046083569493368938289985346820357620395646064819966478426448155446132838444980276806339094823755565862978814420935076175185691313528809527958026879945029386437539407056426988936889945283197512854138150116923149388777648348640288384854932605584340938208209034058982268590060342173444150542793808354879723508979289640890189458698149233975868328170458180982498845335666505870294300038152177259893165512499943524237494311545567030770791585055044575852878522504120795899236613781402697167516114801950838085451509552606762021035526436530189832217677840860059650931982802916933819179527823834010225502596457000867694490343660802047569181150094349438110173283811348473017912953517160677636432023721563957064519741875963413879476083171981255277724816616493918202977965183372224980692612245937811505491969721176118820223575287560816102613587540223113341320358091973173795735681229214773767906078575907534259347266611003237785076933244277655687757034387125199011454714270152346141428197068998552430270712429485227994162143939747998186363462268798248092041937101943165536566916798078360448918264061441067263399007445021101131571821920509944591601735481707097474643697229746010935432444507762914949876875487149912180176851974907027566347682415215269018003948285747904340366180530722144430123210495084624881641857035112975048651551152033693081923141659302132195343257902974889631270969686605228351843951882303295848026549910867900172798960332495401294962851325125902019791909614621336299277808022859783064483558801674461719610906048321552775032112657389904755285844198766332552101162798011915628458154082605906186137133870909388567809328397148108594492025395098960830436305955821884675564680982282196576563909225708519083785218798715904187011566525964034823597877705583123947683636381913699173819660651193463759166712649839440364488713752695804565225123382140683515653133909196554474406985700708777878450582146605661068660467216444975069738715387828609333321475375013720887575726864743870274496478533389763321039730881165133024771862379324842990498072293200262182924591828951339040021522488814683058647121471333867382977357392875969982561667440820566968059045627423806239148012221611426384356124397415422485886897191242453892467091607804188395877172337577799463657767238942460624918919122795279678320648274644098096398459779489170977360263390618761675811047099340129334597889142887269688969736318190845905259514262015208989279312989135732327277386974879095064606130387511638255516765515638548228898308229402406971010639665459748646874106631799361303130594025619646093844544370893490219913200227436761474810359986951027777102860110443342822297937365290861843704205032366264668379105033004983693386587938038818322536570596541043063022179445772502022384279986287371200304618041402174053645015047170869310774070422699379403650900399487051914387748568279127990296737771501774901621239040499932977683289654899216235438265876064121626685012119735401004180204655632377024053910540682148507827734437208794161155093433485781482260530998026676552609097484861201379425588349704456751065119541166633276685785936392811033347387536396989870600104295811685385716421128398194597930340268503182365536587418402335281380783217929926779735117347882663319802126869928140162409479050262848602517047005351851408243185710255864460917886154338691872401776209954066838582926634643638893689723468958300515580151754163820696656496990505864905965639302357236728383756288925983894719549918190655116621203897264016780167240075228148060603672280666862370652953106923859259203248623123117430272824235852364158817909926449275353251669885490084056467703233586914887800015764173924992760401343454072261677082811326992209578789228193867180883692992538208260991450479792737247409367348197941381933974638376677579842351591632755259710199597711716626613562030421694517189282561724769956502839631753905832110858504165880463360019200424557719335204073516464616268628154801607491402524234629221579705768371298663379521618743844013739810519571673861274047576987315049541111868210785430560272075886004709680864700254512526990491170274135098561957080767560956162913508875786591767863727457191194249794449567102661092107471819005159576814251554344328971842044258915576226143194886049218504161516299846925673019798764354200611164758486227617565962058165877172127995347372978151467619114548834332321497122221123334981216810880678969427977667929210829483358916190419863232899839235899326598638115104932163836588813913164227767748156654348461003003313717850126666618484932766321663870839186829475254825143114416134700001944436820222206652383135380539993917885765863053290572413689278829747707953260068410607451247410581803102443565946079535167414751790784271434479207874483392640148596752802671749705777685524885418262360279958734070662056192876540106932784922429316320887766013724832379392707194441174061532119425342031657580814154960005141341590081026504450566696479371604722851141250992132587149495316182046884600658875479684129455995100175350888878815711278860265205002554584338925871563069096180796941998379037444164941062275772740672909296107827167182413337865328776190369536849353273583523399951635453231156420653146509215827806999306120971953044899471185586313522573296661049714484007742087171765788955520472033133776090193554479582047959884167345684794781879306504888534819169509576784205514163387348314241042233557872791233999610075597172451662788556327450820840271954346428417324717984611176713703058188548442161930469357599166188248906138674506750769118987030170227374354504127871984108036458999850427506655384254085925661170300234169833815272694660644448653829028417294528529606725020035986502807819333581899024535884287908349194104044470981051565728466729492059630985954945672219408985213317619022584851254675153536476229593113721685379802512176843437238511908843276425894088966449617037830277936553816399760404131254847715030298452457983564457320768288658601170442628907621918474316595702473196660195994519917727157564952039113708470567626927003011786822043730916546430485259479968719337962510734385123797735214743572945417633372129348497324509382671780135269026316779599123514940032313848597700187663383991144286257364309948080338051748339305680429889950701073346789860852029224971045376045433710584133024326922209810896354691022631477146963192229449114959608301442981277930123143906084686920415506829063441237905081443462415934966592300745117642663231220273838040773953873777521958514770026134457156220234828677063526916806946417057134353806471173831154235636555542007335044527709803467864862257226395248834682871361120712984951538292367615848140237153516727725287785428600468370597296232689451798865813642016301706500919187175512778140680056672716313688915778552539813422899732400732993895277962036381102958133148767095130438858786311774646236287770678822340566624154584909415520341753858189709440624200939073402946766065984102846959216417219023199607839955327932138442122354981539689807024357594681958477457601282493007590609262579846246703167305470795902899055330919742404373167628693798538344698762196572885469221337433677989776613047674871180376102960096964032098227002048380212404187901659692607767881169121431133571977133113536692159849689631094561177839507533060806434795876388032487439103283020140550338099459234063960933097150735814906963673223177901087022208057119149943519705930463046244748174128063404313359980523766932155765126988460774881408015423719805082855221651105719693952331529721499138434516987062791573779888567702630638974951699584307290033956331532424976468383896883523394583138762144954108553816697047304265571538964187533614011814114012772392234273650420817281883323480573141742252171659469758556796447971183232022425806201119229325239426527932445405802931903617686770574036817709928141689186591498911783145832257032620624888355509136772853681497038216540363808690615416719106117345823307780368759821474616899226821555734917374374115189572965481993926372498956249632089382429198885499340864755380746473913473796240287987566564187749351689812120829193355216614999354931628566683095757616722675892238487503594073673740505295523140529623470790020010661674255619811382204788921525543509177148590350896483865981962120773440159758218860890579209652639631808822187066525621545751664840384458379041083573840729305572183585372914419833999665810219269000601670919309236437075602949505199518716458011287493237067021166777542091702457064970758617252373387779521492096771520792433727926535765754055435335423012330781117727522279301055368993438590326524469574068620031196535527680089472806055041158441227629889308560251016187433394869038759196750669795270789517184675708599194073992696664953889209726808323397843933016212400727369843129002026864279593275021797798203726068576386116900862478627911910765734912803459796669724031507688868344091612834193676420599611119793486460167471542239064786668407514649437285683010172664739184321520748431063638876478431885546573271964115697878665459813106082243189609528537751418597988171091330048453662313828409196384569848859939792103096698973209591013971126225584402907117879365878754648490220509263071654600151449511420196214278025237476253016575962901829907649035592737220887695575581922655882876604558890157001731972257092939547477018835357224537507034777584865655911148862957198483524182813668673249698935562763996346827089063480735396266424173195510605103307544829694495539779425534513958759363046439811980807837239764279174692819078646117589384439493212642376287729601516097353386442832612541258060574386434812371746360265190057410441347046034935510322370370163607593368389746081239395713553625360062980910102331765194346570965869043254396872774016809290312707574388086146379164219186605792600954508983719240577200853521678544013894571436205771882920575946328585475526311997948554481406521743575503786967429236491529813677549525226787167436102472858857642540005283137055198953192677815012028128502780296851601088469844081318819360961850525758374882554125790464887053552967032962518400627441867903127837178133533670225922314543493660817311046809839385496889398131804599062059727836072664008900327471560371517472196119540142280179201654600292317687006358675226351863128528746301231225657161716630757826126547228707474413272466680397081421136212866543306069979716609597359167177994624503122171110380856042588356892204050715541524792645912050654321171413617781102700173818754130816094564901157198439596075109605072464482724589631863690905502633524839438290324026876538173821575641685647505075310980818722266493386275541671146931064582611240002047247037496354956306934365107497701005614061008745996773526168678662291243526962845340158001443898086294507155840581433834410294679177970344394437472281088817364666951793696680207484317457724796420738752612889026069778098500380820449405048346550351759087113846025755442344107119301036987781783055245348809726723103631319478529198586889008617457546242693033736969849125184879331989659911235331311729490649977125520705005395236461736393081335990986561694688270738649727668010207087037850800926212236318803475207595705960586998035729861381793704248420601972276686194694225692272299333809828945080256866817088681213352295816070460732808377614045962674150252872115392750112028770261692436491266299468146812261172606497291152530444227983997723433711483460476221858396054678860232218745254742387787984446166087059672033815276912998894881896628724839591396208682516480775680052601050437396345960955470383520708829227840859928006129326805130403623688555335181116655788422074744317274028546871324917490782221993433930817732043439626072741129837909315422760300426337636375400437816490037521652705214125441336498876071104740659697253284221628711094945076777231217610168682661028895825140280300062539389846248437863069786064130867022510298584278365267571465351582774527555491828738244925625955770339569008446412663774241997616105404013540294913090387903731759594884137428020916898843899284330399983395533368001175581187039727610506119777251735962401851866876524012367001514142745160873398610393721524832828322044237427110076284055615605936003291135588106185871561179532253042279836096720723626020402589137493886061861998816985030365151816190025410681091243254607385212118156919663463859440966051148815934499164034816425941637796915835090200928033788862962244682082877589938136048858721691866980209598574375534431697474701803576500850305508433430946882976073426823237644762762953842575401513888195687784924847289843094091400390676832833303164953668085925863797291987442097924158326922136676840977322664530525282536875493170998357419498267285390104892884911912021626537869966551851872617153159148420890442605709774213094006246833199336436772252733861826189355101691913736238847094041215955772159966559491951298735604159781248900674073654201886885707609604761569086963908998961279238941175588131258931768776121430952998203042707298354577640427570284405686874344561967900379711782557840099926341582124223528281545021138096213266088834437031493455386576728652342040578249525072533962591202555637829433468970013931984727980793454230996800660878067602778092055096872627365429268406291737428007340376467334918638412969735048643211006654429603077663840193371857378367089367963998326952289299711809918024413717287387933605058867996749924010843037940545233481408016871080098760394128042887597269521387340940603085110977209233859772305822897019628889063410830724119306396836008151469532985977256997375928385066438093481412338990201696105912334893283645950862335593191099463197657595504247461065681956491474960178574575625274889927302795343839421033687992898266512371469342078727567777460472868736799899054198714022497707763710751137431564869695761128791440006085108494475817138265185201872038750046095612365887531453668780119369469955309598645377541144155317077799081070706390124826236607471970727464988791848562285921995514069088184636088955515000257651675380549944353204646800306465035652896708815363514896221571731956237118219270058404028109167497623492056489399994634372480655860201458912805623129927806657380087909285572776902097122752151350290181639697874195548942560007611560254426752645839998527167054813681537046463455606231555053255510189965984363754487822487758152138707591376436228277033113190203294882000595529928269550456914894547463658925139243156179589440338814637428249944291922306013579426567992588663760884866678823250012958444503932853818814430864448102560298252046137997338733181693884441232862200987667445543949735645155509954961711083339378317155497797992447049181716222675315925485248452465987062136630764405358469056876606457524311158462744481208611182328269456929559856273750690390498115409623667961845244571337861038502938693096392601512480553103524200207286979798847474106151252476438385272190019796679895396446003906429439092818739422491566033429268580586762690550374776567033669169015026134082682167873000962489905135062195753972197820807913255584546917123415947470964803181135237648521094138840773623732367637553944599155524040134779545153377205223655466503899876990210891843916387880639591838492095748593134220186466566846346219231240912326682672328184334993332198348371369084992521317507943423544688544705365736007806606625392467518191610472427793840805461006559258521957805116149851334494832320700528828102688433998216496076266647408831700617601715379932261122456390050188216935071112538573064237357942191378626486173336600295102222938654432791775857078672007926313578431330825451262956696808790332980959675384322750354977828172489417805340517183310608395978960591961279218614089607629364940603317469878441106724641510879807454664852598587673086728088770120549308198157700078220434648780473050899060310542284362324222992585618709091727069592181642243740853118803715209992852529396169718629630870831066163461560506432923454983407161470112692822707547235459293335402617270664738865921149243654629729906199622559105375763243818765759121066775354840189261137476570855852726871010634065262877106521565719839312119511220795052692665610650598394543025884220730548809318633745313716467831603211702480383624549160115029386152453267789061369979707394389060190005157017474098851876399954291052791918756364675715697951288343355599209365801844009150519982218158220627263498459157288532050163678736523957627341517448825531251556522028566234307521112249311495751231911355713048616228483894101756458683222328151084956121492694598366973244807955987977473237067561844978511149865943592944736246771853989315695684910390734621605123801491678397219391615295719702460751545880987551705366815090524533879491620694413759800547865942734283680648845597049399038502443161072747060461551719474041582927413499214087446801962719825664168462874007228206278532334252294963620829719879467095455468161496512846711382068932630224455064925769138548516951690324632824738479797577910950144687171540896101067350869379974096955246268999722438703346968187778265536691588877452507887183005185191444661386139948508479408442158730527004964123552357993819141503444449922490083525242268886371732822064425808718533727875988976623371863038044696784774062460693411595487008637825871436755818223207080983548000650897366651336652340933876562668197122127242740378286009158332654655545960641776545727435212569963744123979582575338992353388605910089428742480041939714188830841074678939181465498362328888453595323710317274035523544929336290089612818360717785429904122217685878218646519851006160676923400969239836055272675308829139558757158299655275686679204741424086087843892313645301983712289753389994112711846858405653651288574846479757137412657196027136948512988664660367220772531306718838630106355069206770237598353198464216659731597533655056531687072407949878730504159253778605493967093748239900070181787366705255615013276162699303257946334566657463548593538761646631852766484888551928567513670448196984575159527661562030258722550450768528074224693909568797628520588151811673816029836611583744236112164765953833418224439438123811988302882810627474673979518474106208596008914338943693936125565776639677606608959088939999778522977236265442898666514483892876255034242099992236625814614364715501803710296782385966234813046027999243010599065977712149986255830150911781650731294134249614871078597959014637143080677907525634807009524248430542291663595907446114610223573664186667128422583658411831642359860093799853187090401219840961608301387668681717234184302694176547741151247129918281575245369196775598888974636586161985104275021872006356084370650345516972495782121807168634825555678821362240707612028622740584089270416419534931298535433325123339050679608194234587031956847932799726468286076791568026316327982142040141867930567784592766803332020627179743871079736087762922668010690908080191195774973847199891764679719841016777792142179814282739972011113575383494097018623429027475472773866047432801266397009324175396457536285688637987325291826400573000626681675778583650679503701892345019321731727647926186341597244490452925815207735860504303364804900137012995498337289045321602046134120551853519297163477746404049777843517653798883833076330945652874130967190056517409105555700422556836284153532156595959049656917359162584101566611063178814757902381513745477453222702292381368140710202108033316804631653669933175859561775399242728807600850878343802445244868973850787169906304774153026819909484545932237914829217839662897809344740319372271200098829239872701509307189306995078912498754251133253960153002648271288889063531236301399984076014524140057186204112964700933775286946872906492241227034649649160395844760972758494601340174516256539886054494520224143907269118761456504195556369760770977667967055527110730648816689330103306857420669919635676709031718953840690493051055725956654404989134606702014022180137830355033233871135522042305290384486787189686219659999898558240194855808161381807438236574527747553312755399759183529538857897445310950277986421063647817273710597239384857713898373175646315123164951452851793561359734502694798734334704968916751681246400609555365755059010220382882254659682435557144754624202190821310487251852563107458950787394282416443373191245432273345602468356347253541082734319032105007765582793711012486347404649232089832707662817046651054914964026258871311506455665805058590350155484514633896204236136741367068283173492525515066416584088606195738137381369548411273614495657255337577460388428717523845453390147437348294187263485835490073234166642586856669559536396754633780670354453013082320421916255114222082381797113492164744706837913941065478904569150513624194695919529616736355997262854981448871396227311136973534448014400961243000349784403586176724823510609035965560377087526645878527535000242041646134687457392598100240848539063848459820495874058512426337268073162090461977387052713748505899022523861738145982405359388552172266764481958298207348491331253459113389695388258045196021336247119982343382555038395431189008016321162947461720071097381661760988640579939519193812228798289355601609812039665680325068571629133786512633862644485094570313764396173184361753701867196139642882781043966335950621905120253851407661245667537624904105007483057380361208064362820536604787219263498952544100592993449185011492074474030540642029152940676019409753840971534083871216723452259966592949744540843626208512495964653749845082898185393510737415342866452068454557214447279140830505910349981753233260077465191178264907357954657199930879827738558321120872297147983312473737805348694961665619668625758738406416691701497010107030289639428867879857188916161241192240544952317083760339029923553812225928197142680330472554394733464024123144088841116658830893178900247053156523376006300539704160005985256783015101094256297057189534488878854123601214554731388760201277144244103048432880432044753814445370900848813049110762075655056486357170399982764935781966396659397307500564786027298046627553212096163588601618261939324345054470682337832611194490164019141488771666737408078663440231210904169045955382541690214150104697897229431215995326364092033712842886299848722946320943193356270201100805150730087391932604354025791074423322531380486882191979473543235936428170878308885392518736659454205926196332389271331679763577654294797203800484826751965915269330195611469634628826151745237478472973982920807162868147831965860264813657098806636785721321375864528521250134701124990325105750444879508506154377230673116376492877507797433315834764059783465321929618317477103460341385064940760441582496274004868937335293837322829396450443634206832745931121853907589578795484876807345992692654586416376283257670912515179160870202093030591888924335411781205578316497831122367219850264119202912339895544323288925155441663643636471529492817516576247149982542807449518716917435033916694263754056531921764892940466628361500201908073376894401212031295031480575946245051401739778644011216799565433570548566079412181336681140239875324012886184055333230283207692922480854819641163395831636023704335647608290675307827202494194065237250510921408531614743783551090944020070745054393950385307288653455908473085927869074577349293142865134200510183350778351196181762736638429030322321099775096240523242094781047746280169055728774731423221383928858814372293727705163682069588793331170380797701826409616774114301712613086730633639059543942873194696651877281277360927552891884989678427379600514185012229403387951649236846171877539864986623527179104507287204585465647645379936685499297367441971411322337616070718895950451785417350814920871745142636667132636049788981718834835827273010217431365185416400797861710034541111769492845407108228790083289862675188065443185942556886313980015234742691208462148261782861698240324897510843500527191917854785593189192345149371517101360758305902974690414920532189496309399501929480966771122728014905091799635203852564564436587461944799175467046694806307485134020756498975172584999353840059239785927783972428288612906427271882167890640444696526304264132193964208315951835554676094132939323712163206605599448779203281107962688464518919170045303646939396369218390327429395806730669253936108717252353500743950756765149171732605128661816397118052758907141666381867087391041405609194287676759387771548150117929087108835387479894642207483999159515057896527819714008906392110631837442695691039273397666736659335581161321185528109747802720830744417496174174444679147587911989680948446941862851884162012793787871844749229250454302144350018516939722029179859738534733889822332496524910720905628966669734904058166263902326151862084361885221281560912160553429733408524217326903416690076626788130344548447352609773495842412973714267027159390999561745612557067669018510533381427449912485758533166903207967008412481578239465447926047235601441354401324107599868578811932699945690844875992451114060873482455046350760432139019177313467383750121079715962065701521223486758642862767699058019201501038412568866005452265022409943188686585438107494072744161621952040157571574804252199049734780710536553987724442549494613214191182924626129046300521819620561695296498120785467684623678040163326059745941715364983168603898226327765419366526508861314671542181242250072017608381565657994739628285392705285802280482507785346437043283987158502646627286130960660001700512725687886556983152963876281291211608643544872308437790049162923806368980339219805423872002765181494593964367904767862228457362589475417024304358481902022116491836501338460820272558327506070294368523048822618517339582608740379678920626509485301551379211389907463249195591491502596002784947805394167225870049213070138461958639333847965022921574572517589595366700356578108777116708428660733067351156579168439645594107239415852296494231902705020557481730598829259361650291443914660651203042252221514473796355299337932631281848949299335062931771514297863284701944749477975291874639862016690479537602832893653790147909223741085624901458924512146371123677175777682120502390668105634817234119847437947700480733257196659832539978197000881891570339229143178743017341435594837604502883962219958881696626941666387886739579311375801765026376581599115665624498816470703542010151192017357531074077112422258761591147093810707727740728346705240944013658199646879472807647425399827893845099199277243087221304525844221680235666449112882960192346377042295534441749024623902254231939790810269448197106560079539929095122072558598529308292983297343243585335254741705032306864510460687744361393504009924821487453337163342981834924335951342488796260035522139294137218097833831820647108599620649126828922786889236597981059644895303245953904129039597546230371728838765190260159455989556874382159666739293225491177645064350706787541529335658084530523581313426164843404376823381414004863972310671833318487305951241381979159469177731716458131441089235693271318007594963009362428401151501652497611131534757455757113021159050563299243369023465978936801856082492282504067710256595624800842214554401148427243818211095891243125612255131909606005028174307907556282451802026993345505164289399515191430191355906281071445261541614395445327209480562115620653631243572179630181894325219136324145935661341285137330837254576582577015472738658112080102731040364739023317291557760521123062598093937264562525785211354543508178316196077440556807230965520757722118462914885335352547296639164679963168357559732083470181932877493394036971261213605339521585427219936164451908954283001004178064394102419219997249672969480261923978621323039384008841233567354694312572817122157856312170018546008436226052305043662909048134077922669539714709335010069886332344703186627414963995227535915222634043241141462811371396298683049730832035569578588277779468741871968134975651404194539178461216810973706817107456424258762026584796653730722485519231962034572671987025988811800994431729893819139405015104651988586082647321237166313435753008175008456264993693065451864258803111870883499225259909156576511519594251986943871685133475500893017497326777405486834860605050065518631754021761480109028945936245840630471649130379868015719071634506856000889902982545895710227886296203580743731354432037745789777089484933097823555160731228761541998932335944305095097489084154555551125729956131110062507720703333317966094086866185824138982182591489185903724884499933008255202670329660987723667394538079460493325100248688861071564459312710899332691144852979095141828768785681067801154770802120108890805965156024066655503126218876274275790884380021082094091966495558559666083979153352685777783906570997821584016140506365604592768801195706292242302826639039565179835862298113884487089467064350742456869879624139537450605902998560185072392393457500921237113702076325380608618940824783871831439942130038434466721192831396630839979115733472622414081047525444371059045331938933144864266395536057521787983275737590474133857844639700844854417604376337242162695052415308275150607447391373611744317289541973141814754829579437343469414379961722122307997177312032836184358177971695842535033585799513588921367221760434084461515576428474916736997309767325128933034201417996396016238124729909633243708501077035302356439784199938439170947627429974415808889958471670177335404392888493606785091785526553397996253988847694877329709156059925639339496835742816155071741031267498078007293862093746226692811577829405482522531353997883939275478139572365227416374955005111645288589100409375487929142160442959014286875579299135536451700497245297781584169268402487899300076286787421681651438153132258329489534201023084617382890911267829423334780043667419697815167183186977329344564853850270539403726908572783060418611445767475452825073620853272801769416700810484403069415694214964402762375973680193235143819413554058400123692790082377773904380140122929742424491398598269748441012502325979764668132171965738175525645197738679739850612781120136856729924956213229827330522315329919974015909517379176678706512972657927029683369376733444582195757357874514158991316988874246293261797093083009309802044487170685852795499048745433635858838780110754474979836549191572721451556561545025993117140489282898203882248103235362838814348248360654802479958943475685285761909804527156262030247970292871382498388561442918508939423129743457260109908832254607031779429332570516938835317548474207726058659293695798477249912487378728105506285776798301162646384579428708932000344248786628161992931466915944270275995284138270443660236517126330035930033147464251398162765012602439953184080435019753409375478010784945768782464676035059062639221005617685860860508313531101271829568932241200031056936559952948159000315116958180282607154552137401901831201258344288792085624462252485946163867701160713203385934839252386605135531467821986834421061476225406965830128585289285961336491460768437355363549981636713247928207590727246189923636542904533694609033475497800366945581653165631959526311148731574785015265886452214755213270300341487888916718330591026874764023824235725984907635401112188945600015354498622719364314363820010285373816604216078935765655980016773260738112870613094152969822049967522548642760104696514776565668486223459964536979273458455646796911397354720105077274553361092668884235155701435185203751511632642139398733729141103564638151121922106785716952724398830697980267458108659661138990549854375340345201011279409221558255530818869382263796443058202562666200620369332792956352590140553781660064056453652903646780079392691318309629699760989570056566086374497001534238886340926261917083564997176883192619577700083402035442860182556892794230893175470683094476882219803019861637938395087130811923792488688570956557464542419594090348313067353829401735133658915232756317759927276745942875630628899184568088758782789180268592793704947063476499379014976029229284372750163249697494181828605750785153989590303016987987726817132961401160887957000666172210994179788192637891274820305814989192752087466719985092606868944984229251339440599665757443429498835676247062787899230380722424383785120196014392488904849243331837470463229767776660810776434752950398750602346510420722882964212705713754064823421594569060752760402745622663218367915020246172959633787097246951359633834311031046679423883324270460876765694853504218325099263931243192167746596139452331507539929909504988270798710073528711997347310791290810934307142960521103647239848375733542439599177068370733781864025761773329565381376166355910885201401476119454118992606245972265833745362663282075306648123049003637090130575531767629679576078444831674443341188094875283706488410535379699492073446722518805242490786167005963938008087915221404634890616389381722118554674398756185528015678675096137423321669944739241316481020742770574275369083032209746778241489891885398884100626678664169986731004127959678102067749418643900955722523607934822216754978043171242695634379725609494286044662787814352989033424886635471053062202628195190472108117133713271832769575441734426831906413198102141025450006934577130682652773026912383989024440726218132427978884267328038388726438262743879483386585108305857641382577083235739684131589953911668751876548749501057077091290515028040627553252952990114714037360075906515789815482162135832527524472275275019950191119775146942429449339113309989994772077384244304972820774571659905779048429755849691465448597399084046526183376237092211492231124204867607844417806576532876709728317662215971663922469722741663917909260161582410885937156905731602290713506123448174488401641338526547908673102897269064649231476042395050179797741119676877687810974220771124734960740504858267710491653674626260593702091703470477281212240435668430032754345039652202111477433750342125736439802620408581227800701972395181378556516484962902072032506760245108808710656255257644249551817857018662840741517871693704988451788133650678453376357679831116054104245288914834052164691128110527247298343708260723349124872005453529717931317230879053562591990816677698717663861960919687140281651969174866014279491901319198695353480231207134241679163611510945050012499696834548251201063127292538977735079698404861360004507780727429431587179170004380072774157646883000467938048357005956400018658828773135841051263464858341133121897600587326348235330310323192948437115122941553666661328551363036862173413099044704538597872036329144407589810806211827225360493649507328474802333093659905641015053445756402186624448970016826875511505327928678803214039635375227589017855555115959442636381379692842264855116295422666072219705955738267784801389478644290599935041124884302848972467706644257724353727066192018188903406291517135602924781080445777598081565501732660014963293954820029280076544000796454678640122224951710380833604925525103962991658635433233446823495354050125779097214661796005585784152337050661605535249765512529271197588867196576028217158932478524597465141511759867813862548855416481875728222826343388314364923694423293431078773485666637555053797255023166542721629413600019468636153282008100647249952957865678878349331715574209912841205451607800762789747046917233656977662063958377439586577862140490641836141217925900586183700942978115448997044504130727356240779613050212298469543746900737505131655114040343775652852108461183034262574798102573226586395758580265560293309144442184807624359996891977378742565375739932155010202104861187449920177619499551597215305832785866632760241045923614620264017753182896991918812395744001933538169274969514320142804862284729169769267518896663155308630751679125631086450366568551202970675213986382654925981037523224109648074513992442739155793388717863672174810428266215334488283364985041845365141652863060929125282724598130460383106429285656979619858887941008264143648067848780377386622065602381250856837222754036331644997955847235691066151290251149365776135835755224578284023064627379369009638790639951356568017542944829562374090033581514507109341108854577341517811546935621429772905468056964601417638037151227268616111143977136849162093123626437500138657286248968267878748636907191760300142359527364323860374059547113196989925775734679481284022739585725097348406807320966160049404909005086470194801941699847863373149756673841320083541548936828382508483931370792299736591051629513782600507115131341160581632958229146388152515032491677326667544997725447618555309313576979845480001487711277781411413022257723184298732531407698350203888022809430025337114750751790320099999140889289686874978826371706438122632111523421902764548058756938736227336189678040971180963984635371386032670805649569312403077697262640063962856719396059089028501659892316007384867924469282118095334599809907724831203774676107082350445741711066382241477174997865599640094685073473667963384364791251859671436179428326909399285257556092696660375174200682540973875809697643613665053265404757715611913451358598817641885977679655094095547701085312754321469562459539050997501904089552416852752098206500427348007094467771123135601017830362876518798515315937457569022547575061902398729830230497835358203844165571369848326761312312272497320709390347248911909683757994695537387607260731666215411632176042329468640380142688296815539193150115451094225007168987850449193283876223967289038592519467698475332782279366685169747916673409040528013688367315991294271307235286222807418164279711870166977609415525516785946901805740664537730630059481490143507095534652902801178563634535067307360076112236010554511619901231919290997929662853373589882518450381473241385874153310560902229377555825288669287747306433341630945959099840344906680721235629064016050558261395491336561985761398640485224222832205548193011566312907995226070587835576569536968423529464737453151280617815597606569810504200025559202024337912580525536969051790890622715957797610672704810120235022710346549536772274752713611546044049049975185732498557272089588217665676026536258408136947144940970298649006666887551284505545815501605510990597832934021177320355379963969164168105041537137361231326287330457003133742707591430425945497718644535555642340079711692635931655230228452692396526598390647618234527873675773399512467674620466201978843374938225264497785493062496828255472581625247585533566995228577607294408656213451333644694643468011748091381536488491064254084265966823490416830017957733774758098488891557498329905915493321395466874516523874474958641499925816387765894711711576440219782334090680444841170019696918937091167518321973066500844287434049499080813748246963419786156609206962993763158021648598583265544599821164706912336133415664608857499690268664048593903501821313902002537167805340448644040761730458828770138143407637106721350115547241544817980070572474976297559099990978983313304747080382944588649040981669963396521533415610625026396186124216199821515881602066552177137981638477318960490162268599598809817531298125687055748095446890461900053025126601792675534782237810018694662097282138489374099662598029112530392814130590068605432419960305391598122343817560452269020914903946187264789157540890385242529005561140195485673178166977818078406988082975938917678399215556438818144227971337939462566287236615690325549592701915660572781810135937059359638303219962396670566110459627266002771216784095158636217906596865441697282783116450092098449682316256608439000456411326969345601284070659668508754184711782272907815977218342087132329764933413782096783266821183994013003163480842737329296887831692463666027829109474492475129431356331342352319414632472316509207351029267082940333325872221200923459201830195447763015841420802599967123896710942523483320203842462237529212673935496511368382076561778223210339401263845663717207904205622320102986740781166114523772736860028860428074246385520319744903991196799411850662545747442843386953277024548610855012978649306471690978451642009110771166501689201380219320958081458259511142937969097632668180501092181701094121272360521108093983204311742187476433808522998263896279471828597801094321691880334867032335044449901185983267979412533615384978573839805849061747922032119005347116124721399403313316366006522280216544806054249656719112269827076063393159095849079676450405631945852858796463750572820009571689130081131771251599938215364164130127562240044656857291115878521654897898337739549593929062798751505430918182507671992781887147549537146412010380804019525544438792517817245904377609174029023210329017788771554946348817400511004052168117569445345840881159741542904122658480582221245620556017663185783214725391582559076728367573569020276192478252676482662154628480384523625794273794696824516704529639420338203465986571651185173513879727973391088483805516085775459882307010871507520510098219965326202664366144299752169316369665311452982444131718784909168307803143015458862545391459992938116644341197682936236045424080501505360157150762552629518668592189267984230161136728624977132331095027180842582476538541043268714068801118924580525992372245367552206610505098500961065466534830630085172733964654730028569691358161237591795864345652996991803999505677768591728615251174394183056127708301854812054215358322956983868022458534440906710053232492186478193045206826109283189898809374992812107295950055246567833253481126720895244620187774688440324915191066039091309343953685911815707971182408029714294401490893707707080250239421062513302827997958728813824626887000083075796549942775093123166220616040070479479035825268993405868843795930774795502549401747015543085242982766402893829018322873771694229760269689283772398410763960950245819273029671023181246121418158394926606349686400483013105015082489650481114629239198387281653317639212911153586745636051742525806111279363654411057035943211513544915530520243269361148956156230447915334424630074542255313701716731488314277013873679773509658178063201593748711710876221394844138091384194920274408968321988042094473334289759272678569330592600664803188673999590945860800990731362060526798950508134035131394992837526384101081888278294386247922158288931398076759915404038785264573405660472038878006990011204642110596465851051836017690818974449419645403696720966025775453481720377994555793172523829214490511275813328443784235602136698066345012451559080268269480737252559916598355787531857664649636821519307830436310239507052076337669012771908328150763086065202182104378044280722212492950936988550800801833441557703622156808075854566318563178038679778589535273929334825732751957913189586563410809959593991595506531891241349794206140962425572236784109346309283704991704615829509127076450516807279047562644096926383979294408215629748276063477193459586178018170828203962946935995649407810477070881425026786976016304997998110011955561651169781825108779054064094423287510252352364414680629941076482029033253401372710610269366235872020929165057748141929954714437691970977215988815932053646501572141469443101734748075623908149897450527752545339487530306907524842217710278823175307639842568956649205364103947414475745135355388530510282931294089060885645091464193401036600534703149054769508909332559076638962926649361747900284049960403964894246423887238227929084938217393439595477751409785598033524306960684546344553134397478803398807530407593962179763278226652515429755043563224948485337568729252944626694716210897223673990588874601782341951655517368333280427256595849789983526946262835347194657252448270356536461765551043764941760928977251578244769278002935008545235862991460871780752203725459337259605422710496018568856123586231164891832779469161697094006222197760107679250195323859794976403297637404330398041246495804444990996689340441866169086655702424203226727225784826934801155175058261063287849374243284364105588314625772468921090326632831815474963715596159234681095004449658057541683438555213766635863867135277764543720167454873169804582040673412204056388020789680176380669310127910289605528679741719497667958453611454009604849470641536385608734059902212552143375761507428513181574815504179057727420315611076817580827341740629679965044305143381721760225415057397140428772931521460030190360347242291346501188917558850161718001589957262042639730183503206731219894567821673485625815990559075315541473781840941582912038040973714671428931255468103304572517916871450271561984696659572967608315640484212288609501340490158095919057509240509512129222224034663751674082816677859193432800789876285280893639904652966523219151654811880561417295201646754187826919955188368798554589423260022758182276872440741285067363103848366981934172529107091716714564793562213325280673980071670804842409323805898433256659655818897052643803142392415406121921797324747548750545876081382586332537429645513763084775709404952459615623255358979013923832517180375554746136486995330128744617974438620961343963848440554254224477699231322409979797487797013728860083960483133090435009875575031138506026823333777545880778604592067229458351225703742893309322203617034231438688907417517468422898127929647028480048567218299192695608475432364560385318591788937848206957127919720770298893015531965931103878957253977538704205045428687510448506150212786877947518924621311025044719284009296699064080140723797870702467090995318680900218453525485307554855806203410529992453633568091374313090488758303886325509150370904066576285952603722409601946635470858726357514181638442594166396985213626928102541243721003704581287353309863048233999491724130298891191614366699577361886694482640434147012015019950574104844134663506313820442314507799357995501912202320543200818110385817684524631428484777731322116370926030043247647835598857980941757400681452440154520004045676278631742758314679908217098452607625209698857244590612361489400502491570061545440949818400870566270883578616960637736702203675532465612335251626443254514548412925227844142590492974712557826237604666368730023218825997738320054060501747478169732137425867311851150790730941018452985366144238146960276333355032236878349304136154347063053824043886089985571970382453658904502220218475051473818352903849738836354341555671487350763647241928899469472108146459374604570286208825246785552130698927907056415592487196079577566093900638527571701152234177070468602300251872323510451896221869517665906203132911931570532263843292057020493436832328262256067922922069052073182429367536077292998580343424695955827918428160543159243380347944342708018533503874335505575270050099020584512687992664262611465506186361051239602002115856363246105597926179637484598477045211294872468770348176111265067579357006145248850942995962275307513398956093552206712709136011430968950297441476111993845478504270340970086041727291018600341881225964599916487057302439760348892687726883158371745905704728728591848135143462220676482139805803126051630643164280217347866007476077253688555909458809076989388955529392904384790383512152798099967754505325114337523811499230402365099378764331368938007536702525931235077710096546499841545491406967167533486039995198758468310660627526096153989137512975274909301714627135099762641878115844571351767752085243938000586377838551310446994350774495405636021968180487200034840757670815875344548888381341515501692367653562861779967474805541822881612457161716235294284244172006037711620391350870696958592960910073771916525835122042296333955765168343757032250844336919477921110721534329559823491844108168801211028187669239925703047126781886180059887361386827228191087447744712180054153538676060878411460823081942479029723049115730952518650401198114000792845324037996392045437823531364274556070526520511114137372595349878299464849816926379188902832538772747489764385828242009857737569919383813245364725630379530070486631744408046942679388952244710292144413281059690331838454227239958105488115384302716623775548471438454488548856249902503056724349843303382825231526624766071673048154253009668052621287545240776501426052947077573004430241102949430190668733898794843901820015204720366093249435667197207695615461276349455233095132311471707108766086692225805065068946177431848382036073602870511665138157208978254836084136380211627355350292141098985893724660309708030611291690684754776456432213921239902037290186725968843505180516032392473615021985037419560877625620038853206120087889676960549131264128475836169550801671350488572629550970222466820804396950808542745582476721682616468764629687879046337238730452799647984985182401004746372810287249856295443260440405886354594260956647849084735921911772622081494363543507048846926962613024325322120479120216008130102476014761670294671612096354494945594287188410849569778049111038834994117994070843234448243362066977169481518708663914454231913162303766283938275082922306765304253604701323459595108351489977213667765581558131821226380137693869300937866990470583661960711024216550021221152371771861521829772752676684372310436489985768387208743317687535909414537362184947617625786867558683332951218672856869716217290973772348401543993933297119134948121065690609213532241086872515366769789811283694251179611726291076864134780206133090837496172936313975704854365550019883813747208827721524503104120517137192864556898054988006468228805798171134424890301892099369658436345519685100501687943371622510779819564971824703354110429602156566029858815828927700424329326191991456418451503348957528989558548762726806401350565289548399081046037720205204647406873487923897591527129670817236112448220270833801840007762794262731149653827259513391978099014171669884859306455519167605565796905982012540887713739303974335152082686752045801025934786170151841772189156649104194971382090518747525278502782784696971172170193749137558966741361320570658774688617351749649906670422271136003357661679688644018275397211654079391107502856080709135096187061160184364059521204189478942052516369724280904379339512684991778101951421236171085662832300181998826089285802591232508257317846286635531899539822882135570914498424743943472554423121593648190221449088754586068857811997299600210696939695610604117998171484373710475767385943354527951661631284729187948113317751145745135144598521620234388373278569589759252546167099791443625334707193852217970408465801025601207253275014883421179572551028202102744149161815766426090030847135564682110318403980258830832687918422170278557849594941611362407666303219971776900449793419315314101671483644499934239702500167331099500817589132852475393506241077866929484992931420648895273895344711390126122835273153871125893308643067636905937266280811168246833080691685744184835636753638352235155884706356482735820067848506569389092146920122588415114431060717560734420273416692915676893463750942261395195842310386404599790841492009610485989679395169394554216477862651213892695530031169544724900189343468620953852817906261231317649388801538350336160939069534758732013839187945163020766629912040355640003369704755264063265143948433396771528610804317659935479925934647596561507330453060068601348353020141584255563431587624524818051894515694576816810772756608252382841728036156216278545390145308146884396239105824161826876387944457562875582642994336814603445264675237696296468044718349134583390710945024698366656298494997594907058913443052147296916534012360033830078964005111457531484511903769351619006565719645067372049820151545138224890332575504834812971934763778691830732193094995397250610548084776852341612348662026374348691653525502114037113386447901492054698959242260613132036737790425119354469420287461879042106032935635622815702980853740811833581865358474231678282124554779419129943046433362715421303487548780084810403308499017807799855772610084894655810752519625685089230961736795572009398166812666219782762094384750497222858473397997633219995130098283855857832498325667922055994304012704302158581760060587927254184855793737756930344523894951814568968994080039772041031418425307928260991607518779462838974422970890374594355047642598319738644776757451490645818390572683797376965228886429829590236396166286626059628372365145582691888934923362139627773893711392540012287303689354200085615023430675051220462508953428553440802409341293570811559902875336944502876915651267089509734043142866809566699099690971796499834384657664558196219004504543011504389484047901208516353673763546422166553732232471131182409951161096459823349317759247903519878284926779017442463679650408329775299466727895590576302125506795255112248541183078367104301853340356178416125239895648715098194208577378360806863604464166872953798801854923985003983226989874682748807126004798263807850914934542012582351612926394345980515388913056970588064206932313240523950803883641039414670157573689378022215662156883690610917020034390970816083269207392523009799623813663482395698049303176462679660326770014837009804075915775196821819138127857688539027487038126683034141582133261969195738992186349901214780820739954065787913470133223315744297231134992058060942129832437836009916920093204932609746686053670948764968465184510709034763952446529318645118121138913919799049534005553629242584869393449216954824720974691017877359415324732147984897842972925409632419525972401159929513954044527287515657601974047976263090279248828748436642314332134843207162584089528545778704984179846074893552870648372667964640063219566759998171630946802570848299964355643784955596413254005566917856189256260596503475689842694063992266509158813182599669307873954085675309888346792085397638269000644751339305912312340735446270875028185132438598052289135956831394953577943734710811773144402016853471051212900155538118130750664345077392093618011925166008241285332283812158951903459294727766722069138272258579698070004484080655298620862955356789015936140264148522698748175582938331219012140672654054890427190896978503673789461654101576760154456036778015457233851358499580418531723007226284051401937422982622958398102444499208807689497657316989342865160493789760506982571027435663385841571605805314691582288367440012913906726263237817212519844053746420118777333130573940777737488780463812855510842109093001625115663270976866660860238622000420559552162871344849045966456827259894271365245832340724125305182502698370549089672636318712853413946475733919601223228373238029711264486316366432021108467833142570129022405813059990152188721455365872291876706155416041968806914960201790199591521619956542736105845839923368263702683288442457813112732643812920590536259047011572487401040971664104826032976231759496798001528766441796415618348822106774456725036947236015042720151386396335849923448804892291825410110650498121568096091033419010206905311424405358303774305151171147174879188168204514859703134783396017711596850341067505201710092194121957983963506640985924746318909981442597222966827481693104495699548129690709589973129686525278401589856323600858407629273915024486086276964570699240311876655972389376840423943314170748891468269167856603555523181622267807431727682859292527682757523622910560804647127847302824923411370566525215256419881765865049967031148255424262321435015943888588450410904902054977994423704688409968579378271397779992451550146033052119055534438780563409678779932509014324643886588072838722392555470372767494331471515886831972201338030914216286591214531449829345767455897982505570122249829368298233816153225895874486595842814308187137301272805872971635868335741325661051411365723426191924727892391464347097416824724382589343559099896017311809371857285048428370728440183333881826374349297516262482852996511976463741571141370115261886388522767753183955525576301114213765619282756489660542848516509274237975517797680472886227872648318861724475055528193845584150399119124203954746760329977593211072105066467755917398550679278194815370983755291471322756732283071516656429124227451474086598528615733810798993906798118514453684302288968334311459416147923429419335954773400206842725157371867332540994860421615240604695703555808966912477514920853239511100892249697297711588388882148633331956373876978105775144323480998932760741200968438225460821227720385392194829578010284749148412156755187900810435617721993335149725519673746849283298718680886773525387954897074691720910288727220606110253673780440432795164184356066980428073794279584819151877283451747668152259689524202944308153353898028517145045528330690873823316405198401542065285117091152513419699724030515490835650073687187095238162951360472228602647211066133936252511313591261805580715043991141668458113308289963560798820808761091959436872829823707817901033297045217021496837087355647654715149085625229246063437273989725705597126857215580089803636106097574116303291635902448125640820373477561957041653512920905523243028242707238344651037431212019864771016548745309387589777542110965447582483388864190956805588245569117989167863679347496315342369720399588717415216838829401456444066613014871621046878454762912989508368984371185298503961981794730607126753524241747395568374580174040706442519258819879696285000301193188810189937539423332821931970858933806689655090814092307787779148715388941914830818601800672192265361034014093743307364803812277566869213473463933152858750983370809576213362719252832005970936035628167299875894488862586988413738060434002209752251063030378098612770499921699498511902685729744254733537398469633371203298638552228586968343309000531189393457395764775314613510111471609952559924974404255922778094617559248931768979384264098527771611497534049352715609815392891474503756818315716429727995633763191635336566220216014922806367271825804204123926883044766677826212856341153727897890854848619901891667214633079342247858932256427187462923774384736187838936939903295949201893957373234057482363382798972137538618718951148931078593105641798825592901100476266293334072235836432653291763412063518200049205841182570088055839236243488449828972888290702334117492028693074186321746680802858853822281360028767955224178374889206066681831942258117970436683110360517067812183405166410116265332015887647871014563483986797500558198615914432351987687797469127795616240265194275920128721044826678261714590477877387036349630981690832294389971674757973061668987382294515383831242568104175245107708019925715366224174875250351593773002248044816916106439844559256694973438093736944097788049559244650559867498052700482808855994270375984251481310657855432539955821035438030756938787396398822131589617022781792962579063040511319072360613193641817524624152399323530810258900129057909305562778430194443197560232338377046164962941433737345296591418032280627571598738568420327362559290495689527466895568804809573913221763797756938286266345100566917440466856479840281116821009042629785669280009459220764500317428076789241484620244074313971873522962210212347039153606809938211760982733030095228896342091493939031233325380859957159457080384854255844594193936192537834075695350322788752680140640786696407129922506177160681081992507529689365251232046602560976095558892635139146543646684143708190931986561570828736329850572744327067843738563917657085975357694980822738739240790077925496090697045408932296613712545617213027355655420850160696056578821577106696678786646585877372648653705539538393237671637664112319484873229559485722688207197954804669374677360289479809518135794999969651593560129906608533450885022116358492223965741939372122308051017893323043942991294148138447867258772977346049710789111087312979886199618996583086804576413860701666256821394692861182533271430937615554145268259926404827761191873403692351921081832472045791876464035544988844994878680388640454557893912582940851277061737158119064731107728544136640610633921466995038680026938187404499839191757314016728971260796905578585084838981863648939138442131879833221611330580932350809169737721788781263625489491364717813214473123457890720990818810706428355687166939504349212982575009785049937841580659022399345661402545403324030149930262457838711276442051079831663056301520960494854167628454007129728556746219080926848892446270520596509684807660578540467379909498425038798508128608551049557270316724878449190724263328234450968375508520866420810950045163949313561520280196463051642450512549752711788039976999502431481944743535779451426194833846447871215388824779956539751259815558405408704094501436275108159593334540779471219047914797626989047627590277830680034343236537718724016078926833555724706781581153234200550168112600345591253475307509873211504896998884946368850597887597971992157371587496558303399184327063304362545253557896414393132077384245771577908099301297090251501235810489588844185153607017237565675595601008021667570821463422643162158456595826007019055460557292098962090451997152349496874785748036181774464278092740684751978008617379581081514251019971415428062463308395926093082790831037619819333441648548687874680127832099911411168915302494897053147738644604030869567677636957863639601003598514981583629506523524810009692925031254011212817814027465475531135310250346364484193664125965260852870982223741627741837830922038778008574296226155528140122148300805094492387488289652128553437748067073248964746053278890915362847509401677054281421161445850263471228179311267245404005496681441535708283505870883290238250556818478937559762611260569398255857656630409774671680145751005932323404228158938569179687770936557209513536068626221920225322155623539864223837309724060407903573589977313918523844491044557458025459630741130010809007602001841030552371485591553810072338051909880629543172619270155729818554192588414588371827515698675683149648604562471886247614272598713420732259695282218400992614425522960043168633057899994575717099212629226801535810988352044210713438897871283862817714052901565365811330400635113741986541844258462314393264651168524341396830974616128869321629998241928361462525466823957208223102947242271904992326065505001738060986917523021264387691676049356091112358590980367223113428121756502471864882299291245017228302461804433444934022403986035384590452040249704587614902672685300999778556614981302662939611128779041380610462404748215449016647640068072061918618034733614518357119878165195059514256238524717931344203354693394169177022732581152850522474713185627925843025945163751396300412023595152566190267514421128789101241503556963697002787551957146933879836445643986234609261212882208809479015941788473982363822332969635767084943680390776812163469099979764456855995437449913538937109400691004463111721712467738311810519702157502974750145410688618294239552191437029289644542422062704252396887115697522480458614998624920163856413318252888076508455351098342603723188156165055105284732340237005794680446232685737014918939402653828156132178898176060317175050079170001492942695863176499741977221836054814018368413972146172378798757289673513793666141530297084869404713077945303677394542607643138493655752811800404879667795133008246335583020023453011697131076385304010056310986099601301298542838629927791271979926168473107357202757812718699497784581638135269026732198622808487351906288989595619429270946905852926984271487516432385854871641224593589562959863053752337264948183106101774726409193928995859114453464139271013555570958825700685056297027952454444861231863296208889095339871609126852964673657372979436670227858775435613436932256219701480235483360843823769430492982950098195051286344531596180945460321430372850305194465039353009420159192563662554350750294630954185578095254486808853448968239268626735148444213015417093617725419537429286911666867501100242658317342765479636195831282188658172814155515444915724892893392616691395896671444196158182442869862843396063328794658597854533266741426271366088471959387263439120843266777449215733315646754443120855327165053874598366087923294879283769177771159903610072256974967484375417314388371605928555196421391894436505859069711152347943982796080479007886591432666844391148803828141773389446940012474781739927607378146422737666965587942268173831574007567867901571284975859213664034495178173779033006399341758528460590258860735840668110399858550968447815148418281990061692737596572449461033243549685107024811760805492487821245008213023214957930638800510828244551928089377307114946397543538699847909755905209896487349219773701832112733805576579182176018174389156909915178470506686289030347010516079689799850194182710056563454773048097307271095736107281011460009842691999864152707355165618397368724496907794691766778145782509044493702315625352211058003640021005514144232826731793643028270658273027337009074967357299548848237731430492753135223593641197009050096749407209808314407498807749509519749873019238326146453367409182181578584300997465996038343036607084213695871031493423075425275123151236076908691127816086951239976270106066420781362470821827016678065735811176844265749873379174679214487311117456940086069393703302074089680366703067854539652267090157315135172063675278780311324375319850070950583446240794237359631443418778540770568420563677192393496265075462487380685707465725241672351517465843790852709325994193790401840567374747023824770588832793516597437986943315729897979044594583748172507955171044792547841172515100292303528104192945597734542770653474430784046955853025028721598712609578370335899987206510949661573941757941559713893651112125750069238231453024610002723328608380309054802172066711551902109597420320572394059746578041073822060041035509382948639538096411626446442261423447122395042455353771979899583758478588197632699647657938126643117628341505747460383134991454145507117206337537021734428482716376898507392230040008652303651576978165867082915379920473247331131498714117771893500243375269667992255706526104712605280471065876104535148926156885108990811693500010215622436771752443790715927288412988370206420409756668515149344846628939939365544801692044234986846938861812664447415336586301717737679459283152925150646601259966263231470873333873690598215592654828396810057773751389702833613922743801272310714680244166889552768498700901341508259096126727946635576755699054911234173831052154053969536925751605870978996300557214294019176612141264167615991933542396397194855191821667880534086148409483737555059258028904778673282106178980226074517551494860199504690123676781006213126260369102590439713586611248893305044122557100078111078176076979693561972954036584221527644881423099414672790398189804101452587575972295847412982799603024347279279299666565690197134930144052886190779191154801848019584097537188435974634111074240590102147758519056586136448676004841212915484572588368233700590543474059100466489579030714472603030775941802010192301682406242019123264103848543258183155865577202622995222434257380640986810664920230989114207929682689407093682196916796712742380830828848459190261645405624094379726651521354541681161237692908774875936138998520731978988679062374703652537484903811773141868325626354915488605910734375196213434636845601396832677335194416321365781112994004216814076573016994194376341449174710325430623231122072637066380527651438325200712354322881449993192581691141868958325052786466023155242523923554605416042625183973489343544555277669082756329743351756153313690938492576855495135022581305599603482417169714333972859463471034867520049961216212727390346806374116685738803013785135017935959196867493829523142993588052600810168120754260279806929008350434469512479661125671919045374554524077501787778553500208978639901469479356063393016186758839689159784524726706736088415364575147400561153011262044539868131107210055330397074677198830405028283779166931864321254020268671008543771752155676850224397167978807567961375608905088234649963678340072887927300098358448442571779109970702818003908237896494077553856643053499480156897650349863136878352497128594651250877929672681313599609022938639822153871078147133810212915366806692996058506449014121180720473520161685795817472686831352177295486802832515681798929879489356067891593183553344071445432129260076338816719619526254826756438669497410953372933086879606123306984163203613112050996417278132852564454790186645510212007304513316366696423784481911934971252523178684530794646055696806003030987375501043218100594150021090698804123771573272264641685469632795159887933889246219814698740005744168618256508164350247602444771370248042304343986410482492045797739028251049814313153846656095333445753140559823773629402717749453807122987434493795880584805084962122629883281467632143436140414280904163728677859995500937570515089080547843186065205671910807912693459585811531773255187965532871547752545309039438754129201693048691495810865619411834869962706713171978302224644426830089886084070381544599174216265222714343472745387813127754522981923141091848329561926682287077325575992645141426620256382213570455550657135641980322072417482189549755660936076149436427817144995286749789017733558942448717807846234331960018671765815652621736327193741419373141451831484267766509763713668667027833567275481476539464394989723286938457552964382631380402994688265305379136747367943903675861407218177708826998418421081942376328540700421429556780479252029118098842386282403915989876834208307089528202450485850369145422706647816776824476647635711142982761393425706272351195412355560043481843935384577291725294778964647897760052099622430476523150968361091803573588562975464207673730901446282092561505361472948882696705767277039946674343796713466857853548423222559400788962008692244709485787243710060265897165119765964533872848647204011739298763285101870124871177231162773547046680476569813688544182328988644223089796410130259135335810919064118273279843248725888917785490426635848284822278411952658215118499433586300439860867189333967885628952551571957065112335833250738862716563283429237451931003951265070493254560445599676049789024821035285228327389812797497466702660724857659403392213582095091071628759923681502169843405143422266224844568003363823746010134536296452400266423107960563086504508230036888604702760510003666409237134550210778214222411218206884984537893575138881717619074061733255029767180622251526353345950211459096350150086162643628835220097938556288133077115880715884219999021605035829619839045622408297870458189118495134064731318886249852971505273739464908834426578914451851949865610838421859990958919034138165981328818527128158917623410258382656165439979907431586634366079924612907305089878266368370154529024784639727935005953578847244740213415938496021484325100487512075323017056347130894286058444838105636393509730689763201496123876760434609504042340725756590500932088550500247064651817373005406657699802524454029018262917508702132919562151470464975337309033430977082507775715158529560380126451802021613370403586072135374695219855766134825426729840367796862131302836193000664025442033157180126871125151561088998972346967213534729712424859147269114479879932080744123668297937955780878137777842781879127503046382495403289470784450815116618201755090043886981363180700589616531360568328324382791159414464691028375950963585074623486046901894589226387265328674923957124677223759793700382818379911669932390833082266370111381410711057085151987166681569828016132512057332370887115493146339604392956016250563335060604655729159027533049378332585423784848303155129963689145264709379085184419283981744177800571373355434303946081403838423586095820270238612482817327255185826033798399198667369310297076420034390398299712299229577313463149242054469184405202182902111500728721579223692430077679036488974131059461062726854290229056274543455097360015130229897213500384461002782351928394715328026774042454291749125909342409398661928739995565284641892330347193294473966299883181798643813032633233983911705387263543417263611385089691806237367586063825610280958513318345899171626728859484596961239615638601986606911529766265032508625597450711703494116025730762876311909400401682015914472886232312545254071578469627785937613053563894339199904127457363368050515370642666998770265636591320900887645068504238368566329491430885406426972677840988688041620529523152737423850848578012570385933321148344660030099655803543061701045240934238370077780861576014208708057967256066187413624813642101348775022003031772521003160757774184171704951075569956526289687532046889173423992515625381868316684923621368357620081679838622754359300920646422314444313575550275026039342907495083669201477759829562388742927964690435112171243981693462745545392345144812456761521215552334449576162924795777484509749206374883496072298624273446388117202137555031017042989741472390286894397812141939972218860428877782420442415968003485108448622712849666197431044552531209241932357713693902578193525611168128623673067261097482256837543714579139796474687630817473577140438251123759156064732415062258182191760937200350579517344801905677684644276571928006104072262003555644561268130629156109456875406658794600940734201296366324156135064852922014684641729406370115618427258573946373338377285671543701616039986612792172242009410378027190503820237399909947462504314165285336950074504346352425173551068570425510253369618220998880022731195437851040956184418377244165832803982647555068752219807105258530635871283901381204502676942675570687766883033400812870786000977537168788206724239977018548828393658173015162513960688678170634602967709005340362131015175192312033428405334181005640230460426246077464777323609446866327380785148212601277325998961195914006754925589313554743071770364092249148991027038762343652310846228973289871012791653242300592539876282958160231264531460758868001749744721448858748067091504131073048168840368892235452173752603552148880857876410028333590555221896334431053528695655735761116647515610210365195796982585197339598812104493154622433378243781527947729509590195886032833105072395490031979743435066987397500803184535264440693654320401893075202961402669203039862162169355612896765484219309510991963129925611633104116264268620942770268497428591407972646612176390047691912693902138886823200941864224321754960696912201679456937157540255571817319634035940369421830402649505173450245103445111736068536480726185205278483832146631318838412645822030258855927081997072718281466238615565627312017842217093212264544783337381216127263077712394046572568232331971672029180015444608245803109434758648349474931237051136819004890719564736479990037426969835948186671942495232904333676439807199940778341208735976473379322583676970804381602974036764438668247965375016744889181319978251578862035869802538998852893668536500188326159813737830862891839550353163324692809566293936539925961303891040793814348520662098893005624210326541371356082650480433027256452958486369807855856256855343539786557935865837973958213713568963711572785506435007551524200768456908187362902353515484390701232075404475881049276738668721139727416612381358246041757660059038866006694304964658506737995464214619078200607952763311213801847218532010984839109039626436228577014562849860806602505047569787148978365758076946446156649853944471736677103882156785508224491492403036121888302493253284017348673930834310046988045308739742921979647054695386066505718252096332019102926617331297362181416843636493304335890207692545521749080019367365409390827309079296108790016477829897891876229430472761680290719683170725027358453115025482231062144098953454286999245990499760410112148022801507585216246232955327302058511953279522347211994725912020802148973934635624255284405156007436228133961434335934580431153820739671495510008399626630712728992312587391473469176404200413113691835620891914820193664174324475523073305981840361315061995961421447343032910068752034055857143984657842826718320327578613314489295890684644766851857076279464981633954869055239501538426553855891419723239195898430089004104170513457316272343609387851416910934835163126862065957861936733931360199445366149126823137151495319347590723020833057210475335010271649907216203559345915243033272048168985828363639808197756674783018277371790011842126640263931108266605829236843181361892025324965972035033796064109743742742512327773784011977204939320346555454289572403105725720866553639628008973618909833595659315330344988546214130289719608711028680127650099009451627628812185959138460274073445068804652280602048239544153606309369588696482280826318406170213700283326476049397770678953068956220082107760757187673095022009190847246139764260564233013459449036345285256380822096620886492499468479540164085410271114410757463525017347663299900713154090173324611299027743415393823497065694227127537929556080118640911685497151840509866770287659503326805686509205818044294039980091727828745884146016074723420288427733755726420989857529196751204525165551173818381983359823080156343833347741826967659474673421258875507666979630681982720562945886112053474009498729449185698942115243704709433877873784857487808672414168287545214148618528837454916252913970228619623358797181209317938261912541686192538659679034936851075704881446469666477059075796235286186473467316380528480179673075115183630317232302748694987224824260124345374605759554339860104983033368177603224159692528286934684534385561083479822207179091918033965188528058102254186550568622592659829375597244110430292511210492931186903533653255966567210122045054306694278658378494315229089160500940921593767843578757239762429415750069434069638641846868545775302923921598129999458910442163662819884962800082591755505702696587095411763201056822353764226679324016819926419220800577135996684203558531442651602391001616779240577596041674174676106576755825955932091125084255343170427171567259390465251360538309178054342659090829981334676381489046863559010314376949208781597754858336906546502816122735824548270287945545627086247623663546582210536652833392508085983964937947964541837679582027265284067282647727238047009918739071561868207731049809951652052912587940979496426066856444336598675552856701093367799742474828238347993338407610842311484392686352406945935657783494278952319303924338700857102316403886218028183817033324027150626721062615114595093922633414596506214302141556229183470886060058616125434831087728414096695725935554085467187944476436005903039936670465576839318181987082930420353427511587425239897005616526846750544282658681624154413776550132416136647267764070091625857899124449570653869525780057259054629166487788946174926683467130929231304598053621927426102143478769114125694798570049721750570203844881423804128084948590192024684447353247262124334978586164480859675293048068345232733871356445152174673445104936160410233708877767858236934249781647935317473253188696504573950315582117054846256289796328326781336019437568387438641889295812761018369326567098265839936175140777795322622688619417092585598984321904413292253081330262796115253113606289262703681022882711655597450017457909155430988055015846084095893107178311906117556639874221801327906669713424248409003823822517401963291255073048696801882932310258607468469028361123874602192200906926952520608725915827181608702511286770113192843825981527187507024824347427244955298936213199560147792933043533896422920396348949163673730227143368709406178627593040201368110243871887079012070689246423954054792506659750916542150420971285877166310267404917538587769925374503694195138252051718707135481829277051337045166689022813143043601664154744399479351747291540277067822059034130071407562637356897706505568206053450837394804384351712044455532730565088139979571525694443004887436148175249572085761450312668879096898214783605310588115921759567619388844598706534783562591301930102616038404571705439871214447087603542863851507196507730053269304546485628094372400886452432826443661936542122134086783460320706362841275223556703052395556076400609259420695992363870180666964581014278240833125199890517624144274377674830254237693343970133277019685982504851828549725927649258213960721709165592928088835149503617379910899593493599206175679389332512348266511692344422528809403770195429691469911648599720993773555988599898955396052678993910394483767325034922967964856209038208270385497688937116583548852200182058664495957453328654235719942350830284490524627345588343188763226682361106882581065131991967725896956678817275637599128459663134520938950172692803460292606894579916392240306803742198617630914475478612897959077782671424896639099538366864799399152059152835284839526418613624079506249637319580802236651258126896368676864191376263618604946079597332931788151006964067461904508495882239862340371821264434904993152931611098879244316128356288752030820626678730466249476623919976551455843362928081478472367102505574144353791527806014079033353046248851401237703501858871177863683534032649010846410491367687875164982854144957497563774161166809497135734977953381982705493573266948366246669477988768145720246680663645204506136578267596264988808188487985342684064617622390590305004692307088886823077536930311624807140440758103981457870307264358629888092809193913670128073902417190412418077590932353434747274412934374360919620170473948721836986843492705024679379146554739770271495461869854087620106252318002465483258422577764116249465866907010503500856106986659000757914297697565774388182756461774921475853010107057223524106186492497285575032675939072716307255265418958557535896635333889877374690932867957660102381480372413552644761571803871803086810257093879955691566777057287018781400878509202548901548487474893489616006677943335285031059231251420314377268627441139827168605876072143994312844916526223103833870620265280176686220342466259927878473139082294496393982587613669232524763273009684241361486678232000967859039801972765827649718780458932045603725727992620099059252735268955200784833256341766090295155647393334026038922650316645174192560582798595590517654004723777536904185222178099965746845818984981230023231281260731311235512619774746569180861591016113376741982751377468102994539430653247345530137016637339237835443102154091955583048676914007071142518992801329811345714220015842760090480974362611116588523196848253392826424500024787766987839636028466960284312606963718300790191176256208592333026828874727057231357468303316241997194417900769079876705167701014839013420587766586660290373284826934781815331358602362019622597731242495709553775134404762822708884577457133666990935396644489349780923012309915898001380402927549422707874587172832590595289325390222847832581305639696757183155335018758624500650092089839761407555266734673780956526485810819410090442282251438811230058610604055582456316605550344664456499331230451018218422751836729039240725839489366718283843404045488423554197180510528195642391813153972836045408753666095273095097111361460544445748878190694476317717167396819022610269883155358675702015217038153810989458393719228280844840650024302850238369403139499352323871801344966602339069979119568249789390757921618987874676871816813628171669770559518386490417469554250894836330861282645722505283752544580770878822102586008691518107901148642469761460578057470222291085692573612325222794975533104774403483202565466873762487261566777927045119980306921966412160358151473594846296276810575460311251345426105261766959960803474549200421080747552231741825874844792843620683491678274103137280610485124922748779986650891329157596132414072593235089435467019224973560831535079361672522305208468577451392669547837156349622984838742834036996054650127032334854551157544894790980880847479833332093270367131956847333304353627153191658748794018537517741175035802667632998158870632929180249646655929538588349833765796705382240854096343079705751276879933974654548186093488555354883481414284834780951557555580441654294367665940783199133746439611980554571637884265726362240939780897673543001885562199944471801945698950037669965769983742533738318090581169398810337614435340629832612336669500884681018803711387421842700987486240768735136904181830256400894204308193251825111987839380512234042914337386419086360178569853963626914484716340726242930334835235595836503435032266910523672851774783368206268215024325826711546081755934458525175190007222366509570070336105400044978088910900649267532196688626390458126161998891087944583599659971992968556390806906741527140719213721745183071316414091812646076553346998412436350207036862187767332679021324197374138746897717001778150260676527786527820259868290261591285560042241621710620389016844091368042037972711300139880805412376866482169569400694981610791942845549693363990912157459505547131874561672569702298549559812192447085474068693903449562307549942915003982307931696978299469005654961569001744431936385268789609488916486828721650004658043774069018819918622905702680235847663036999099879093858188724640538906792534465612882274819783404049509031578683519299039796220031228331877312012154181473421879485237588663215747320330181923968191091240634250277766338906480440720320608575129547205239999759730432206683542219668141703683218909527249219898879646786455982409938556773713694471553964479010482448403439013619942259902938806421278911633361310363496198295397101913087390507314328804405673972308828454637978790820694223847963547430383810796259958884017651065044879138277835531971298595469376400308626752795549687014600218527179805829012823911414345180914252975696154196259024051251724771903216056514250754527402402560200706347183134042776166878460429699969655468156358293809827217425894073477841664463040914350851281867724000108240772672151787313858490513108814560456823684515678864644349827135956639236597825670977443040996582795618990353214094008207039770437721640988662131814673625137097177986278583143948081947405515389139820421701320921313382161587488210341337041437805562732072750574626664398641211696392102377677822280892750528939521870458769247928519085169087013547075697684971236369828145518656717991322660326943861465316068276824524586905441490011967440001389241681360043273419849190527443282026569941027317545067074893272623926809678875955896922852179715360149814569311925069570278087950303507593492542756779501117061350245453573240013147906856027898911223557138268721149709872342667803166796355198064981885932458145501717126897357050088864668238756177608552618333992287973238379282086824902117164473721767525430620159922534628099583944742986201990798087008024980409652057902662355827848137525179069246007257720152276362703295876868505550273888586486593615888619213203875088638871675145759349441109592492125388761032815213964153269899446352083354488499148330634094753482431943347765042132481567853816455179715030308586919150842176310062706266403655073542477154206047580855323973065917039226673019514690046001086966194310181841256097221456792453075712286806671305576718126920714298141368118711155975057595441119624453505191529040763712726092425105953510716641685470732391926759272297303285764471126049464144073111904205261025759354987347882468351291309001883655903180772478642919490826365157634247502999384123740392816560645826280635975980741375912458058462616109963388841774280022803296493241334085296666161608643747498332853598763307038937588036089560310501194921320843434372178547711958872607348644752812058789187070152850200099824642170756122108522834963632046977130055761577766729844973477666365921116046506584089016956807585801771494501740156288852739726550895415718307396897630055940021821047632355311853075107698791644237158236484427514141611751657109092994177379050865842729843735698542638657750713532083473574166926054568425237960478146574085869293908463682269916980597188201643810810237450310360629450488392238443742834784531367335588387498843329165074940546343819815163554520485615170581036166703063963950390640865363011523500885027782131816827757884889348802019812781973783045793514504588331571566629988599514195300418306247570278529407492452582578537558843738999419181166398808762742152100048157583266481054582294556470866560856610616533513190409032669141271324592585223259822174724893357370962515436419344519814531451960256128458567590831900464739065127764734795239286312018452103905610407394608214398751213213390608989689008649591080323330432340143301909972031503192890246798901216928529300271031258036468195768896027870008289727539180363703595136054818402657526160122317396244481638749067287284041688708376377629567822236014872819348575031880535497568256182419687871266572804582955864511395024367502906259126902984712829069840131021811723152503890804668597734060287798159203614205781177512548393278780120272380387802434383052536515322690372315634937360987820653400402336632819626059341094022019889262655073649331048611136378412668632681604044785278439740728612681034794531702637822309609153651590770748973993261879078276348970154246269974800587547666433689434888393745448311848013173810833859162485372234620911306183926966646557973469487348101486235087135609276292756187290714291479277730757967231389213366293852449145043774614044419126833614124179160812666548918558924920942400135370294844711651889595761176924766232215969615961217132326003260368272961840752785386868841868388083031542336594635581966296251041354674587628108816730012697306193722557301386056832169164481096453618246031830611505738781436827078774123314840666195560178365570648669067341692011755381324436972883742537293512151876279961268709516979205173204418185996563036798173410304936147944904102726878696007969524961719072598502639108176921496691512565970199817589327877261211295434985661163680362337995107018104765969847370484535009663654445376721014715315393688276821738288542810736750857429484039061632458258175018396394460267264734591952060615449949068796868545059871272237239417063265220951021545956234549282291547012411229796011246723630948072343390965750992802269993884106834290095925224216604016476209600306460907413461703335805114169342947146290449162025283838574311718859453160859337149264214268460321720746848298816000213725848769411250650474867245507392983140297993292943963058359184982279446350529323200455254589221370602802149993570237247213238824191519191883599064282018402550662296725207749890282673508514672364704177374647825018901825990762550662840368210836551149240058742764690995859038790853541162386993696328994310729004927134330237185247833579886645959972021102959712696028858582852115557789047166059115536860085967790131218954842835147365305450372745132768648543316388247531794158255949551416658399961730831596355595013845773404335340570602910655865964229692698935859075184234430573194418455638652944950704322754007194878294909098886608979320860653404251625776579567245487003182119566632385635723206242074275841364033421586172979246542380995416441326366903823293899578312933980555264164255277333149351342073307443720081202669482944644148842032184781541976659924276251792846712467322039678452412433770067125514373868726995950928651960008271091714977485040429020076049019748808461567803958914241880787777648407899819375970809760787531868399545762128813216423217224708150217768399999363698119431639889833108940481845994912711597870790182165236876837917682789282435986504721611245419529141062439674245470474360095173832725155828794274085616275142328771303990827391535511076262436764532015084077546365656085164447604797981153673980272494533720573252077122107942752434752631437812390849268093509789196567999079447496797785107246406355911985914582558747416464248620254896315909988757870867701021499218845789553942598237972337854393908650161910430498016797386580295374496453446478501988662225940736227008845529676610460099696937267654179840332724485108413961629721037999979446879849322223618682652790349241043776888324915054084525963912199137824904345738045115692799929356234611856419610923257787130834182928829965800448168312467229152139556509008260939633900055030334805547268341200497397888894017942349900413975560487237679690104638770401096091009638504380031288889188336891627543939810460888871507100363930703191894371137158622166513340148850572177199131386825796609855599496913794837149344196661482844617261985538078972566544360211718053053363729186225350498884541502769551199066660680994119254611138579092943696786102412867993158218394970493063848909436517528197436035493914877901242297788068146154689943687258122551970519057154046187422623458541294199649808381758172478054449433933368021857521520274400966843148024884248079489281075221246960657367163373111815452078683300677769915769696387115501576695744079042898387217057709194614771132527941798002906961818258704046587850845828771173724724602969334067459774325387179874313768629601953141169664544943772441305436947566736462998527908797960878854435829247944121832076619543440220747853422246163854465440592556207565414662898362579009863892320271939815765475667573603363717492850774169469538692674900697309198939332502319878332690427442904677804478592999954824125399985865351280734246585537914418952871282936900128732878620892669627241132589397328427779298880575555501586432514805868914492803175454368902919392960474175700649128424174975276945324137433821535676496028337250052893709433109646763692805885475538547689858427835219829811217041727299433011445575127297128385585922669384785639553828516830348664142444895568235207617255282931975982270788338682628338244629192838185897778794860662241129253661698689755081624508902488277537494215507049570389230266828041636046727218676331881893795208449116750791563924926090227365967949168563419395866085169999118929223501640056552637766961610218637809482733594373756378056753732572618529374885400404356864526308148347666412140104580338135000555975505456705875925583644755919950052997156512529520388733843885659389532165465509422355344950160120582014824242888119055484375998907315107280211170249994160080098750415517395267466394368585416028165234894904692269425610623511311631176553499888775599357083163815281170541552624462200443547199905035537613434421299748587816657485690133423320578626540645612688099245675774124957164101115054219676021984836397033778231243893190584940071819817054203182803743800578160029062865177797411068586431614466656193856002781192915501042124661654233930316778464393860431895012779360229353094431367925799305059583470530235987893091964647560550158234362783447983149844986273509767235196528710059002345728025365717874007364380927991569977283416912739620904289105239437839801630628039287930015021598288068905490361931547749193936907521847540115588053447499780269986499465613600725825898062582385214652034321790701293865614443450979031449932653197210657304420023759127037138727071869283122693387011206290371174441618580126274229804334721076592657477264311006604587341111035714823745160116000985072041475161737346571147223642709227500122340452645089605883743706566583479455773489301902081198564448591575331942332871541291783512930501825633397355149559427750319481070433415404452402331529150486517246756242222286332385144228603767699946893064198984091140122792252994130500438021074260910071158357966286037749978050408966107739856256898562783283363172196630162534492553255854005501207430665013208995699119879464812333272085396241778487830927377240187302409990492882803795892506801946730752724937877496861824347596439260150036289611237102653909136584302903995109670097300622745892730066933154401614896155842485684172319250001936166634731326855031964103446632171391401519044799642558285615109241669472188828415982303903525498735292669004325936414330993782366308729905266735676014835966305426657941321016769782640120387163239955797280236113231473038261560745845614133356869693364561098403177533812095819910879725133652703287848875734055520500991503641344854517481046172711904805539492816241783714476267643135817822519251975584365297817821960157242370192671423759987044861674172396440131770346857927749743388895433092207479239658891941497087621996325507473083250685983151796771874063408101599548708657984778002278453921849416382014902161844050363730428412773240462992789030113449214975607170581178263034603651377910272168626535195211732522316521366380039229685653396241186091743367276562439303526938602177084040763345549532701814289370849352700256801973890767506229323029695682595535479252911133255213065779280774424362028186567582115267046598935869910249869467138403615331181520311357709708311503234222900236262448506209573368633428233165518057946612883379014143171426700613963100582088307581513308766544283741348496517602564412566482938485255967438941841447790123832224449054554877154376090444216508908273236334178991311392785269363721875301141626796562951927432259102427313014415113891614229258566854765354337277260102678958776025693518766486807216352615794208287613555159633195792839977156042337050980555324989530025834971419562681076511344038943469653718012671472070150387260902598350018493167547319965798608198485462892592516131121848098338508732830722398973551331511259444443589751944406904422696479962476881638475576628416375169565285504643083730790465779555104185289110976421129038923566890841234040647805268449450128214062859342217708263101476402866214932527822608672503627583608478701897685020803649661654101815452412636052397356024280826071399669527526369094036726181714816807958025190381052749561885873911398059270586434805178347381321171649951812422220192754163931038465169264678164028082469250430594141148093259237087648675488461691494738097234669387645319228158871179547686244070245808158887553614889904511290416672915055558649893345455371498023927458236083813724225729783933244475864553799922934038919979791225414267960469298201783955221581017354285191091488459473156513325919616724666326541327343826946124956766761730063493508303757244076530702440001399209215862854856399773316258183716100135494494308720827957952291927041627492072468099963695977131556188913468849166660182090476851890953348618198141274764616012124937753257167062846299634077891236074159329615323434386657900558463966413866583191707534615834939731910905283183119785080330898389104328478924215995905754499321486903380830394562593491340374400667285172748332886225514557588307737019101245397290763794243335031836141396567336155752295510955041015763847603234016194196694127380498508865167766677100081722516005668445679201578271368038415196326609030233528227480482775187006146011713376725050831824531275132582006190709372152546512915953657477023998455651517565737627573354371734651641768727315034431152722457536077158115898852843994012859093336870282213068204604872569312783968632783885690390764854873663803563785484452298906148300802002658843487517702936152331358732400223067218527603421341226649930100077840416875905077426098747280070840106353119991368125687961293605529249669905988094165952226251960032186099875712396391007232130509473198108674655035493793195785368751206791365103650873085359296663139262311929808424634352737920019243136483292348843550987241968204106310835047915462837162874662496770514358277159839495690266414569918329587456096501089615363801814074848505498877189738637310659957806945329083376260846959122162469605707424028040755596361920772546357126075093239379182116030701259796050414623047484574087172333606415964173729325284199741598291838324350919272852685479624222303558120705895750112805711795273982159938487932324824668214107462824223758918766994271308362281968278113826636952786689120859867600790939200918051323251677840166095595300182148969417129704477911416099575813880546267336187717652549795008292009842655598304757694286803275695701793103727283484923744075827617158131080524828252699049237765456691125269726285828734091066445616909095231619947618092380248587364071454419418072959137690389316079643367959125879744854544091542214937545070760255380499089355623783714363236895925269225755340220987582214732327379110845080668308069184193945261351517671515273691665792982036300682453795383588192738527444493210048363947029829132393822319010518027438054981935037032193254410173785830516933160296227366633939194957840671594584786826707542779041295164857821112808710685659211954187867841314887641853861726408202202152011558506413626335547802142430489679993336633802414821777817961906722372874849243229347545596536489221396982164254849304099847428485320744597445593817140590069305554688190650265182184842015066656624425494085850681685164677291144043274965461073427578585834375862832921541966010530901937892089387448258275679408893261115149243928302343790025312441926458409518445259017973094275803619324713078438579743588752101746089865664992667771114852317454840979309526785850115825988742282646199151916484703769596370304618140332961989134348135946950308873814446225107774083115147256110603550445081310234683256990179666623925546631412359325685543571269492476301794895937389116417646583820093297924847062633506626229464054820670675000407855893419770686083828270682043297309048375896229090347348625692209965077420100089236543875157961968178849382226528461528519965975069200625297872382972744804877000198356313961063741722403131808879081044965647704298372254980613150500834586372900868428456594852666302857676860884994151823163479757267553279261707259920781255657564057998112435438069759069588408074431050416891897206636100131346571995994122785048168821039020240530476735242882691660506746385207992417583708313383199221794725060065696933387134978101191440019989776235982854193067941255950874490519865394354599041193753471124424657182788437881681457728999529571276192601967305519432991092541342523388862118996505411301484222266271805878219492921508970116589756228387111441379429545062652526461426655765700677556694442621470233031870004480306724324290034875578589016506362592886648094910998227176395821958333780616593390838719792466024076832701681102174223858405381364924424659232851147569134366543310026523474533521931832426029984607800875287147594704766019339466235528833479290249084929845804179456873948068750520835902371908287842020473800869588520488250732905400192766135293579570936165696610763899512875931255594900395370653851517148916515338981278275638128683118027946806112814817878694008832504949281828522678739339915543131683720641323449448879969018810807210203707116901129561410555622075220517935451198429417431379534511658950901636103976877320504178375655436409832207975041572587737386848381190818736975345412042987959008429855683972199265357956621209825200422423261493240708088288808030400211928790636466327717402236518441398893250318060333387358120323552999730510798140115102605768526864944454702193343497678078138821464994092963332574352940319772631833547949762962130860417632643676737491497408743591256468625992607381151020522987671464788944201810099390075941460197531810556089721994042571319952422011172064550351924834177434614700296931604181534489692598806249518982931339048599182959059340194552078554118401383765667417476561159492884402926034850504604606211186824687370102576473499687157700701006576664355248641131332850898807867966485936338341534143014625325127318968110690890853211041197890644981368102624129262215032676941157162730292046823946656086316768148340382176640756619922058188139155273984514557123156923905928228727646752290705476724768150582513393544400312131750359473221359744992856539199471284462406584870075025794668565355760259111851986648394575436067698992376656051985824582204674407539189503100235469977476173303546688251133027373258077358685666328675545833007162649913196625927595078648465785619139481439605568026995841112862104040379765529394078903606951341470927305019199829216460807226348983282138298537463816912977538264366686755007568555415391680697283108068359352863335314586819835006769472463739844476673533571933012014530034021861241488056326446696055908500504307699811008895630910019328259819183182577928653016121767502657825235086574010883161083823882888938934214986443685161756558749301565240464248110652945510211320754280353263968654962504370302933978392623949390904790250493078444354155471948008418540281142538688674258617784041459941397780439928660682932131091169812052759728440866863605555272399225621500449014842659131539843563278854931868646059168870374550323531820343564723634152757985540511409208373101667088324450138433013836481932604754934410894561820777295252221058029249132703919051633604185474555332397734310118087912512310777680754355626750017990069419074724542193670167388813071543390625909447299070796335407848760641322159301519585804529931742895299990250516359026714126621576303149883601813018632326100286699751431320023254311847929623716345785980357613700160586632339215916933175590591713522056014075940711208361644476867046727660860292314287619868682556278360373579153031530236117781893201439918324429940418332111150598159589180051035920529982045987032970492554044064654601628230895354324445986867707496345688536282792882344507934050566890421659783167200970403758800780199422138086428515204117935280826856595458058817768277280510177888287950998254001439353389998789322820365140445137360839718586046761275703358356296292127470061794342172772537211058434984742591607305650531480895314533002886944685765580032394577107486516861731061530984181315973610969855384709614625780148671398994944817769956389278746476574124060673373790556987610087666532517522397992955669269899223981167650341719571273235209345602721741707913463763661797402531703800086050168485326219514987336065338923131740832935477427628230375067244961758114021910334410101009553599517857339224884132937794244715663658346897834930277521068708852420069215498513179670330572066331693038670444811502814794843953915055976802512051084880473551868713600568456186822114834000161488377256722918420177177456383382738364729693666846292209819558464415709268184192994512565143359672713656282328178870694620979071371244993804116119955202322190490710595764605036180699051322969160781182489108967268339062333942610417449593141903869406689828316625247012201983602076987101433254561738699485312135599170051228755239716912186545352089264305181437304952640702408089203405199531844023846415162955780053944653981065478444862162421751977286170607513757985256489933110939767731234104424070745221425001588605253443072496325752169404770446679212486879801803775414612112666391196523673217858845773359335909605136979207390388696317261531322865491531134144447399354339078401702405831230164770503786111854138254725627182019005885647213637748838531469203012668339380403393176551334450430696493123016731737090905547623428785401202907747787460958769133754115204927984394976402875834999345287221664851525279198931254640815384860545727751574328047473181990477557415556785181233254845568860274961764230187629402428020301919684332659502307323148046765050420588938188097969163080248697740882767618092649744296918385026164221426486893989210169354612806596379629807378568006540481279999997060621052029033604342482990972709997125173162761493542925379512712082088492621829985780479055796144930510421658154268569992462758089931027849449282694740084651466635421234990959862062221476524225372431180856540037805908650850321160705611319210046376503008643849408268047305497802563421731312405284393261647314741745364419458357619206915243298754857367981211266505547209446636354755398112680028847073975943082380094990945120267965005150599627799327406672270530291242719849545605825795833617844009809368807880985513769480251196050410377597770171323147137026219126801065848120182216092178188045349346616082110403904293864286278669794117045197896041862214827778286648803659010026829670222234695109048076525081231510200487834841335612387542282019371004459420011824426709096430657982991459132344647505195131513019332238172346312093884926109461534920300623531408425154429005430978803156526167284018026264870478681899003201517329655906556734923968371216144969631622713268611828561542321448394003121439193187823361536975941702011565954739751276402796919952400934946872451716094344932700669231100935803877314274103532817255086189601734829254788773841019010393305551923557489683224154341250295294974893154906860606621086422169846168245907668189933408804872021041399396197527809742584791912505001549469528284427805940446017177931483487788469043111833454870471430392236207634005393751399608244427025343065769036214833659452815549336493382557441750987705975818149350922647955093721799851645341070285435784275351108335079103624220660566232735865505233962926652123135341658670022766346194788266119652111952875401734835364942680487261361012793653840527228491045864103814304878966353186536201418963077398750233984914030295410578356204270130422758086195373121987143714341517367903777992736748781566970766912989947400439923203384070195832332547095915375069308002355026671493348964014076632198804848368479723802805309581788203987991550771916454373676073582613901107122109528301484822742042668413606603441551423914532370286018266761034428904253943374503921673846566590303401961966188424556885042259929191466030887234569483063704144715587472008992143227332045911016060534536994659800140210734085273221073401918706459522409818615273001309712247611358223269457029403398677300248503374057274781753085618298127834071611225589099183259389351542906715098856830812697167507855245389810647834083443957818176353493909479911765632387784060640013610195508162439420811196402541801504803331100298317417632049008535449983952131870686065140541688350167725408506192327891831149738983813397198737685367560663742787318022439684624431834406308636286327566598588176577044707924708186907181965430005402897739918858153490166296165683581765803718133602971059980571886617822298580363487062540800268409031652408730046565137363864162471063703804725022838378985223400980968210134962781737153031353765096912919329472497894100055727665860964537196762645631907872526112062991470457544233500687550788936373692677465395445597796776624266438985664002278248909209963720723053266653121413983382951219064315674659468532826159171923098966944625546756783880881902945758262200019424215460754393201029961770001377659031618421130938568721403094212272929612275505407048796896655584163552837504812250444062367412763924051454307358935326156260751021977060850821494981401234162166617621910104356369760319107752181680418911568534057295987976946995637107419792095250980653595708637224393356131789356784509378186463799529908856283587855999100599378683789437964448327632206916302509109613962722564724298070418632935299356957827160508737519474584626385269058919438115830713152706753470763559399628593977665382367583560358042276146710482000904429951250205617016282297036034009776980452383295399767839006664079489399773229424026397768298381952492602146125249232847872666670863056818214697239325973464402269073529768581245720044140618334715224140794039396162197554950149183943339306210024898913754390032025703517452537807070564146042542776502571304557430162440716475263052898788332844228641689326987728440054034923150192006959389399158157804178527029040863877837174439114434500301791493204177438477514734566634287270872498872118094600484168180173354190895052195303000689965218611907663201922970650417079441284796492189428184088889529486342844680735203991224357648317757413935169942423465559874300025436031767205126873729379692061302176914234933980848000940446809762711638265749726333703538953024274080102570603363458432999887506954963249604329749167108808822078315299052873493529643200207245984353672619938875562180059285307490429000613912035435823013957820885958114298576170793990695862184391113838346040132803232677472870140988311672469356936755011999268876378904272535501319490124074999660318291102605878163222093428939708334460340624158117905129865131727814663019563977735510552237947720861085563369825297350443611141830726549470852138866290157436740459595862031658835343071117323808062846395067476851514737422486275785002671711426144287617578674691214014816588198218291347690632672176173359941012506291617168826969158571729852013024704570544946979122862077097985074134868033872277436428582252432223267221860586088764080281510694753101477080598512527275949201322410232820137270511226148233051847646120355805249603147509566200686202585818760739327737375147052523881945915746678539470851638958860504105881637042095084521952435380728428535309204351428477031583266812920432868213536631049665997724296651705631605040714193452004014943324133317183352217823268706558959775187387016583315203476422646346669714775360898931322770368084807899193409158716995476580944629641689520483397211133391331818268627630369308434271176891274136645948895114824553098030041381506359440476920744558901045700670933930887152668267568270243689515438965614747091174456536098059907429201586086537890331950416170108293860406047907368893494447300845031727598398837306502118588216829775009025493760984183698243294293000769645625922740599199177005637772037933858113049835595519305747096999631238215062556073835625348001926564635269966269102773596005272483153020396039909680372197777723478089845169494736237890330374406565894659867056432562123964066381042326906507587307810119908884915992033315709341083407663279914834124132546840875378652522013114268947729777503856095553753463368531740428748585187790411590264754689095008579780409607982432761848724569051001534550071138627551968193109267853235309986978066020235976371032227651063015358072827965255907158693714878378054870319827324783559840202434338616316735638573461178457201265894426610924560602394644054448904785605130558118248371658474365125585656511592698307197120402777473750740426182670574988628013095388572761661243895510861368857324466884082475031051534994733232741856176507647180408416595426544331322585704725021708673889460744676274763082590161156480688078549040223265283901184203550118750872461760891611227994875416399865709925428878316071125618929990540126178046067360984482818447824557283418171010277086315866825323402667397636314873189367665669659624081607824796099834254167677274893193873669709524887549039289861448502380892013355294228188664823313987816911005685122197998714425743360445904738786957558575280586827914096167470387167319685238604950913760491621503230646060823103177207806840642490212460692214950652887564165114486473551541615503933355020762149302226753856947519031271468674617570421440372125390135193448536838832063595632236746068135386524938186037452719425875909746402765261631258336252903022240564081333699701252718004734584814280489352851550255080868162600326195564281918918737710117012023066301854769111823989619068146257032481857821631149875973054694697556453595566452013017238821937422594897422988352954265285039933310731800448020407702880934400410973600947943602017352659070691819150851679669775995737242869822921976441252775256015598254942884217074490490809585953806627736616173928275533021433233505474757517598957236730853084905239212807331786386965145555559765931278573913759998132731026226622040454009242433277442478033892725944403741425268689719421182110314200160112863978756030606057743181953551337856816659950827029999636783754042133732927837323302698402628471860556617142489774821231545023476360314036326549841961679006704471893016732522227664768799699238232582682384696261690953493752428582535474470861711513574497446901183865352228246918027016155030624095959024795059136768909532953960892477750645917107463129262223600393255553182639091637809887359877483106226946274428189359408212199514680102496440316206010479538346110937116580889203385203067855095115157134109782123656474249689805901518689849445699004465198377458918656237338816488239707337805857502639192250686183704306573390967518617783187185098822511107491415845170971617787300372646323803506025686637905948065819380997948628738326790837995816955672202165692407249543939016760121601608122055858100760251673914075729162192965357629593710914821745235272118040187656347166588147067366686592836836246242628180035363655879264979499002715796394335706468706546750205415619989529369722024844625215806467597546114127631025550869535848830921341181583333493007123103414355559030880652445943322147747728192308467078003184025109058314944394594864312445196086537932861279370840946526442353888721099547573688485230594089829479198196901365141801766821149446217376751059727506864023179929993342948279906235674612710716782008869758413288888781615285890131339287384761056460466317540026881850682417896787408283141001626650183618367061817871192223773729279624212908753695209958795546931000975824063853080180131960567259510344474344266787933492754297091404233015030631864560003386720652230954587732825469697409773306562024310399373235681874897391637173760293023159191887782373547754961642967758180077437508448605144148297793234933361823012898291701350735073977703397970562062381706376777992758280561993349640703566677819284203818441571865392264427949472207602142807192846999430995175877301403832006254481331876087146683796549365456564384960180817604210236663758936095255270966180040724647344474417184427041446167044556668006568600927065151709447964789200083666442059119695268543987448787313401454474938461746415350061583127077499594708354249714633578129329348584803548115719630531713300967550917808073565873353991191967691949736353422210500593477229776344787793841392679903770640102164929228243944024957874032983248559251479452991765153643131293729856803669968410813398264141259244448579924526788249413539249436711552991259609833801055844144459851694776009407461766002299180862595187117482101998650072653453184034029324883107614139256820362131003302614080499292325367802187391718282702757468708106288740790855297196582404388937656404391545938636451581809126286034804133898002425468618340841288717058248511547283902824638735868225778240843481390391775062967294473250245406733044716241396297897778624276430716875877093782184823501909445280783111355689797339901684100057257963778722144545728517009031661647872320955848614958154096048051013224784432279283095009599270069926780349980889954614961571237775079058070462803313868838466657577452394989617963317145135115570370684819873411701118741542389955769988197490321619407062689397873665713952965249235137326198678413827057757794466688700085055658373842032829595779097687627353796773473570720184472659103071645402773431644338840633044908694078350069205106603198790437046750693291164734074751310025679421121492381940913971473687607053954016974128537419096334764742499543668936818984976192693287196073072906454266649486469532345076835837591244694227659731948219000926343250274963194219907600029709923925210251968799594529098999953412215448376763285257435944272435403028605773397827781900297803567807518540747033768825005845435712151418014956884907359348111163274714885937657388631355765216544027150290927335183788746415488359407429691179387996659720420196246035135979875082101802247909608950215291088530440805997624533376854407413507888756729785423499918434914835422815120671499466354096697229983646479808741268650932722280765104992047473225743022608685768398236620586712879800949579314612631699507809405516883273682971626390422041051838450287310318024521081884686857429919034327466736147037662398634572777368105970912514240864536572182544620440503917117973790198520391469460317529796881003787477413690283392170064121467544670959608751733734642265522254887781285048198010017296902377053958399933989135599966379459554263942152155968015594078311502747700785265707345016726986060325329699800393082889061335244322535399377729552459645249978313604567933446406267629046840284451685261612037100294208801294323488525103973526692939572694423387276833979651006134349478042023964521480180551963628454917392435611403387488559282400621625644593788627148772403962164427925806487881950568318902561844718551602081629792450203172177842603601877031253278490183980422087760007420969663021961414205385567285353920723170819891724189118201454714856533475909496671790054485364701472568369568000006330618875595599492012859741089629990749942286443859546653435709085987134712191547547424786607172116861847853665663486537339971184609543377688051194657414824173571774415652276973027882269949170989967928433376059309280925379375906780257219797161033667493917256947278127781711163427619572848421822156089233305592495275373012968483145122523152701346865496088640746799439401291339084772149274035947013852920299813557826768362202462531458602575507619372971645782047946537637073729328101892524852732792654697445142325752739316987847556196720693088989773282807251889279402906383614608139680120168757923643108012047057018154405147802935370124856136798922520243335543798369904327059972136008583572990403204522945647839645969032610359842764741047951787801868991468159472341967571206458027546250017330403785119724141038250202984350976076436043378948184282753855373031735683537731376419963519046426095908509755744637639887928154671579947132754498391385591822844583357197603335090615418826842752214416733077577558555539821919184196326688990463864623718996189926543921254215425900625760198879794750610725340344407532866030444968128122941651572852473269851732988861568349241070368087527334530116586392833952442349577496337172710585124666272294884855548066747100917575600708868315529054855275096373515997483822897310426252625928304288364461870709635070818913142990813488389941478994223305594007096387695944837188820767526389699700279842084254977018342632129871146258326116297261179883002334616209294625726469300413900085608617112582059472331980515298562992450597823324556119341495619745189813074279068799562644049431691203447398086287838875310588987516353838160818915616725709152735124673126102530852356296371148865973419034115891599386233757571260763559031351315234043244339832056059529247301166024148428087865368128029309203215476263092891005211014267297826299835054940340435352426199906406713494541872260348761857324902348143445181804018296449092664083051597471993695574343528349700616246472015778419385494359538287794308023874602053557854910531626895419918516007039041550081819216313350015715245842330444115726126560549349285645228122286906901173659370884610530814106151967876289633383343312515780361198085339368558640375959600789131229863545792188725266988300906673430478301462397584148601828260334868500832296460381688472598656188576046465331597841517817849477693906399067636215621671618956349024328687087795108929264771925918076020977990691715610582738485961925963678213571274732137804388469497760224634887832696108576292434606901589442049894010561093683586872723563600164884492787123780811261192824627295250167427526534010488136138386823174168594245202429597054404924018352241434802626476298652802818148894965551603224976796062782272607741009147875249772700467388711105335680299434047652331993653010886196196608230846313980334179718215096611981787364465652441146435553886635844538883931830000612530121579997603102134328782657294705935720440308232775894107110696043788311074774488535225015628324231755586017979396470860749855534099911834572125781508940299284717894407735899663367866659394279872394881841329444890975560334549484719139765861729921517807867192337840497000159725945089545560137178124592707063211467097800728979392179224655681387327218104978260949114388656960539796838719123789588723036574902442662223670696447687961298750747588993123239013634576002118514719568738644344484735456237496235260182431344048825047480155333763664982052393200354490388400886381026101873035134783802841201867278997551896688510489686960187809666308259507771799871665337406640858388595115014362502644493359265419717205761185513171107060256974842436336277139566902267711915968151022205778327509957663614649506571499580641444544179274136458592802738224912292596058383400410004362173430042847376838438226559344786689810135551442755001254710622843092714905509371839193157462651183020611842360536898513976787547260167640576131849854061163267050680214161803291870295674689427665193323192908578396103876014797242863791488222822174154227969527175273991779300554123210256290381026461358793368020526293945243562011414683866813930464348007638897836469401927689124640910424570832133881035071485292157888636617094792105559230248522723176098282156573340889466218761019642606847085467698346780170939547739570120443780308854856419772024233403423432704348474073526079995068188091759066235394541259305362050363046043934813327110740032444699844702139147108345231346375263911468570618571302302636698566300857936781518669229256256194397249888768335845577583763995548622261162410256036352814528408011737824177264297489192748595854077973944895713810082090934174463625291422243729482785405484798094556387591017426747294086761428362497530097499255344475932839241077615105860521891463315338933224893472338863622628375533004099681748955234253595752774322158983443330138143881776074633809508544176250628125927164902191821999621916186345430888401368481125250926883153780421002845312187899398467082201764906905246605845405162391939213616726294653358690981373987229445384449473155536549091002533971321022813118458822768522370433273400155592328607786039234610923582758271650414633506801353291971686285211564267184329310198230695963760295728294378858642853122103989497759883618381969854066836334507557900739315862786668111387005386388247518640895872105497278804576831133302403566910057737558812897825768604682267510968239822947423829085327144279640639224843921520158775246166887123239231095541877612607566531596057410127714449815671183866784236863120033613784394205859209597358008715804246137182229749048682102977312465309321196370578436739706124828537784316589503165462555319720155443240620194030894950130574699618882705348251124854238449436211026217615450553796131123099355781547480651430777763808106625560066792457449921662070020745414494082271393583521244224556699472253121437406323579326914468005303793927808101833742915163842238373758349023475285328641177561469452301348528935956771304142453593308252938698028103168100896936476269483644915620453640767799862778879528479811099986237728795205224879775618872194916179869700434028982054194705541701470091486039380423174798336263738718924959581107263640457626686440812113378230069401213817287453619559373360169500449436762796842273838718015482686962761367033654226660073872674679952068893519404916748052656018762844974125632425847841753069056349862919513166101104336573637649369218567132232083888018135097553513696157989003793530088858647711334242992366877751764666721742566911283370161108670547574082220834354335302640028154005891501459771903208180135154646724927710560992770776129160870300725444434411070673935363514717265766087248659052182927449151530505208490673900604389375155038132002883889501736020694114070977051091327595075227599792483380535121876328203092438853540481626161690451868410168527362415882345103562061906137886163035683129808997257492173373462328589711003023739255283092458734539011621282881464514192816243237113402295032973018726294930135476508342333515869563602503320009939642345587064208306605094121069603601104048854225777385354395797519086345403032694194510425322884292030096336512853616849095661441527105732430534784286373182799869320124152381295761223576679506554018710033572509658785591983337454133550887702605441354547547146593555641581651095983911369683553949050000267477954859023669645572366530441978465540730594787991165661398401111745159110853990953611514835001102407379231438691965908099714320622071889011785764280776245126636318100975734327294296044394571425472876270042280107061335812669913002699717620926082633366746561256500236203931386963284075389635166748348876234220417957137655014375158558533520496764381435711178773442654734534296520328006204484163302217889783786985830565552377700553959952399591443351303925408314272210682254151793693307948199784866751581868816888550928408601180679642100044057912830828699731328281174147573191051811639646270137992691644050930044429082416948723478976866741935975737311370162721022736713265376112798782762824822996652161876258082669656761352625957721382335959225891213638784044478798475427160760941359865518524381324518888000488802616153594304194750384772513565965454693702368426974907267608354476412783542104809503498798180115385010432216214270289342296427171696229756084775836902833289262153866377899626856059893264905292911431342306944321473751869784564856817455593391662743481699462223001299655931111330243131766431239259029496819080827274660739209337771109330540962364839823863908387273098301940028483569854969148494625099752082645489983254576699527972006593935605375195428708472345809546672311624192119557328437475793215637800734732576384925229646008216596520828293740589886455327063830313694623150378085773866717750794085405767388207113674654488686732715722058091627864582731873792004060027947314813634431230758867469539840358813932435152968413361338562890780179844849793865075719431379491608044210178114014361997665350003736104184462898773018970926623399968790981125477736683645083954304531783644469502754722568049506105773803603464926849925386304515976481773860660463229656006949775369302694133202603496820540358279494508781861628500674331438822451441828175071904731474542461689070076130133544575793066971460361269978065027616206846460606720874977499868041301514194376937763800225834072846261890645380115940323779402094156084345081112750700793226891636559360208986279240461861768299550419860450585195079256063321885415503213166026393376148060135018120571356141241481961948102223044326925692271538301474877656144173764923151225324516144426339432986061442061038698328394097254178545359341622896943081714656560695051092395324886458898771728002662309772199952246475442315722059803209219687304530187829690385906565944036027105176931914751437124822903285979013655232540336268441682291327214527329741430110538500685222640207570864774865753654582522838701675671742599859075857388326889127791911338638495140060479434583216571845141280370838874960732822134563930942176229759733604424304771125229798435219396128994060803929063695815402542253581469064366419016400491582918903077094494466478773117163726116840517190013741474110123499817705814349825732988040759145362858406271974596525568254373865345246598551918936900048512155097632181716563429216091177714963859272539707371969218837104643506134448652828026807519822751993588439300012581206762255928877521929773009326670658973408175066209397696849177367721739494346007165251083942150914923116832981701213880279821511678605875445166855336085793034234670637544268316367104562366709763028187341227806599519963055332897873181217855507753730243896033292710451108341288351327673591169996674323399112731316158586833325562872420771493732452317885669796236807530660496592668591841077607087441109289565386927572765335096310662773149513492891252530993668484652892137156595687903179407345448267754134090476580778077422943385706434367766210983603484855275864629731604835949335735854308436148336796510289926809444841860383515787895579285114096638313943269812520145573741996817901894523408220550222827829091056120911963288527292723294462302026013905690049667052270462973672021667899156943418776206154317859948130854577172700306633582633381894049330843167324063370828627082782854176821134093640956461289755245400058831719735292901077560122889737088900419440195781378082619505171443547979157058075821089658410617462178811235242691887859557750164613841891927419556956389548360875276520528059140103677208980554215133128105783802901452283327560636771222368627471156267455910435446113834174602802876321285760553526848079432034639932338129985895888750384727055196582614313052911539848666553488341849946113090887120615172569203729009170065673051825751407654023696951095599037048798486275835982692560254629517242265406971189085297126725098665935662758681210261686629081419917610864935336839761628905822834727336853343835306133146406034928373592804267570501440223473719874480201853576112100832392727071553509006019463337860892853844889786331531956832195066487126583210785091666732837672586063644433921099707194614649661974632673046069063333780163254570716372553019423157400426951144758114817237240272880101923896179918541933577733428750322201807967481577901262386327779457714072199490974621154225742729424989436299563774920154261902164961165459925980233130701890185595603387585634815649276692486533507745955152106363869125735626443005110072227623229053379928893590712678640644736863434360171173886304137625828652354726015728932856505891425644663357948020481456498485870998868997004787081987772022289598128088600810882731623747880353479930313362524425947912570228914113374693317150339997007675802028773405688283658047808015940109849512218898830238120378788238673471202206722560889043310069859358646005130664159600870247455734985944215283352135332067862549574854608100704602839932377873446496055243412201370077883571159848299892854165595171589099746260463108089917526323307284831280294860175900966831169173795272239863127058672974982848794248598880617165376687775138045202650247191178833520665470257574811425538092358857193149251313796269541220095677651659734027659933014791633128840210640098234220655567040843474055242197837788265148495347571299343033765861303528224584599964631914551355093947980437011144724426182177031548211449943777129341218194571752415695917291285438495419869810387094417326464980801293713067797968202595362571624558383124698285241226744216533650729430581459099867265601498693965147964383710401219771189111147763117458945840346919318434919541034846064462511917581636752846628878838605889747715901423455903616313402692236132571703814719690837440281380785662819214171624429459838793925003690740198422546857078915316529799949597042527734333735971077641414453279616776247429068217487210307484526026056772505250010854963061655426881748402246976497371284541986099231601063183775800795922292581694102940821126666581901817340175405142388058853139184901580886572420848865024304319572685553018853093640701181701117162975847385618059180871809131335192108598957667767781422677725762517310676334465717378725767575007824828591176669327157425348923386605570520068192865764549849964475239163636753270737088007841250816788695834799715448649151723171190873420214856695912473195277696643661008604955168185862818944332194238228028034671262868156857999465743786961940237725223014582899553416452126169382213208434928818624327801279450956119319352638193957533105609597969083232571492482493054754016478837930873381848662764684538682660406203366975284408646006427384230162080757213891889688040224809170588019564308882329625738620541476587466700313962004207857518612482836286589274115508618303436343115871230221025567783536557641262060236530215502893176925720209930072518282121510693641720391445179331029341289040461832779972901283963738647454758596333147343289245082840039378337535554692882141692217345376781398167612048257413556099651667678975616412698737053129304937938461391952608661490661245646548721219895275322400984141333108963151986385058282002099571378446035796058885363412931925334088917784344481796799902661585280867697702445142288186217432890164731778052539186928167663131412706525483278190863768740073598077849542995779797686883891221234076062471764085489639298746635992981127860480183005866924305118344384946365021211575716390281562297588999327670539301459853309252736807990056330877427736332015570573818576103655541264650073822651665614666296534050279867177346764153876812071830811313847191277318805161553255965476724520518173271740634690143553351361526316993159919542531684068106461765239518244663463501854652327502243888870574284402667780350649930840000137928529700593315864839161060257707676721330672429080638299351863381543560124578404607143704181469551298031204573904707366202695827474558432096464174470340716618647024483507257320527984362751655453695772805871891386762417492594895255183547293834402127214107792582421380482677245377291094298451527897964640167579343080096470189329265717728922471320197804653298483018040038219045974058676137314995665397279401013001127133119384608815750214231596787907357456078265283317208304086468913999760517593021845367666705560528598306047325571752237928302378036177409650384221704039490675935675954659973871765292756691152947401369725860031077908504419449495482128425296870583103745895260609555310503139325957071887663297037833746628608580818404583881286544666065393885779694184871686452467122782130648541430955335548142401295718852005508314704467930047888806306307797185972884242439967990731702285998903935662216091469930816707619111283663332107811762075300744496588904226103398687350065792365388853682573932093221681016651142830329947851122257759496917173641111055707570362469444387829692290364545168063294423216570858651548556387181618172731581238308513390465666960043195018627500526572129856493015684605548200489875138339897520942373260259374913011292018428220786856097366662696083240862108378247809630234628242181188567877470576195588962038692131504012772595056713147602957855570892987624000911843860131103088523114613822640132547676500233618297542932007886033405731774225337273712423462172279752314316475309497859767923792743900281492878476825061245141894629641263590875150629830383469967008332512591918140097879186957507692093901746342986533999700290758790329466995786566770581433449030905564343144224474069697677990801014076305463549509109305926465863413988420823406839909345740420992612614500888715031094965958679023962118325947738810986542146316133240569049647799329144472032814423805835611229727801527194423858996595631079192537651129999516825503884150086430135978293618803835571777065757678357821543473733795723870136035459399912071009104592286518933101513266359719540150968286352083575956759865591342281341336186059797730854168889265559259940769622139882339391243220481558813951968504107049153702288255013094925488755810123867511066352335653272986986387898432708690105955294261826070066737102006282488243379797735212068359671651146432209673077231430278271206806184491524636516336592867875974344609032221815956684303981154046469714204283209733943960647951074535368992504020235337383293314137874845086298957476684991164752477605099021606196056383272927292508978347774237656326680243825985206956013526679907359547786000647122699521447140615075250477158460590296337863808646745496669703759760163447104784680732416878106283620744018873827328288126284260104521313539061972447591419571565193164285034908976720380987568879807152523871691292480768893757537400029984665775623019450675859340021630781851556724562600723044946767942666570608614241933711653194919924917130908915025659877421905710434506219333808134194232724260820120117039889276440946223727505826946790369075450025035717046839701206788109080252152478957485632815969149494457590326833349100918084073265141353276580140914710941432918012459648993722816965561411061637074552335746584200018543794880171185360498280632014633896123270184373793311259003287275252066786687238006094339514760568052116243545213325176601624890393547789287940662174286213120084540422046390617078216251363604458006878542486259542548161689271762891624847854354978987592189435201668035241353311519132523468637786531647818483561316580578094591010690118277592283014753584351853295849558722860448610818024310451295264585821871268917366759080530665025230533963526977996269436353886418320613124934307990812245539943191360498197238889901758939859118064951290247811487806332012111951843941720085390312549524971069746751015063213984973108822825804762201827008419645733691516760043551674061436707730684405970664824605203382152382292363400690220169887967504105374536811694461525534204927010159560397810162916176630609823120558602879453870208552229709794898352391470068654256992249211880629382756023086953815819153899078965754247744328644917466637092283380051631093355225518471784294060058922371613551300764830848477447422392959825595005440239724549157051781202573155662313613782557531044538491460909658243875320605328073413330463037602936322828704725600624572790688266913140986136806358300089014929294034111030615109868475123408563381079650431573275340533652524512228956284177587069859630833228345899554614991153741114749828643625187809559492822097584976572546287183050932848612366566624567395081193853926482137991498593352767347618433504025760042620955040176981419443391269943777910528214633686916877311502316563996019012128495021643010384607197671747529084413250640981338768455914869734353281241142416711705007295378819882329674432964537418685333540823781905174386439022290826072046620517674209376174710888698492056091044085452223872151304034198821696866011635037384727113726680466570040624015316991016081376465451633866419130808957312117323161746268023229221127152406272600775926337357469624609116307173563549007726378631498494497910564612919675555345042477585254960853739397807358016874094846613538317604012662666499371184694823392097994647544736123161194519420930635531391429372864324408889259629849175482732787313376008530326892241820647823333255849594736773733843672517385213117350269283965317561645611146772727770268891542507501143592781235576048099341121999715019554052578408680873189808831598923615879623427567175809966017880407375917814012484222232209611572016311448387119887437100236381651995643304962552868031948681532307067870864262764685769291951660833546232460770497550417909270111171199100447495431121444705290139175869579134263279723971825194004355493354216998986875114456241964141961835758472523116789839212582662444279246802563224625022403658311088787134905703777207937637100918248329888886536335297090309094947954657085010433724802932620958097929431502614400809989165349807349618099670206996373467387533869559937800983145418537380391664500119556212304351308460224563477331510367176796126366492395497863815296539221562764104117085484990532452274029708796865158451378943658490289747765044667066324917225379382958113473206206136928801135640195531851400052284797142238215893573012152749152648273280564762331444851509340652928219764980058405995640987746057825692600972338945084060526199839388385813887266681412338580093413420042933833058805552182712117198663369557618567608267238457449315724003426468780133291392163788271432567947447333462611152268518854280421427141039769394250674861351953190481219152043778452845483970113300836395812861515178633591205170747750356160791090816376428654550751880491182769050275789059494283522611927282794082575161219853863495442291530497871013740857282281525227443495681533153789907634815224912005075095404384318452006749468031782600401862036302759339962380933439907108054511554657002603677083684474233093220406513927620725260732069562810105723678414309092377336324404760028379473814260501311790941484760455454709813506377938993971976614621487839921528105218619312487289761391105546217487197570427743434058172106497473554330885652429023728800261009548694944538846929016519399764113900433047527051983193211403718114826476235978733270037724051934289325475959689605333833897817969441891132140009605780992869182305665058422421010127302756737124285462971490388042115133170086755644528902069260836907015068965041116818728363243542522694870918309503748178226834512989307450718762999464598912461295285131414302094989656693821098021826950950086724224806564949388915133749249289700859942946107864385382239219728556021597641251753839448428557910255132038895379589668736277141824948955364005683482855221155293714201538186491990142350153870660338842745391624995357708745289042524439671261393942165542413102307324957943613751222766471352483364306906993985194605559885189752760941028747318747969575367393971062826299154044764722175953860285266455143298273605369485281111459604824416219843132864235042402195663779826295766179422271708439700273130807057784140860267837463749537377964201569881994343245445623490835383594102588946275392040340775882346074728010480304782072124108740075233547526441274993101349779120288149496862270018860058586648080108438159790530850769950890015445746250942392063754392129783553178614964962165161734975925685450157872098840550740596438294269338163948524124132562893721390381714932324723870008444543636539487429079882500593871923280648993068591696881265077325188138372902885675032234506486885940960151987560331180884556735631598729840991080062216390713355929856520574165014258320341803760714961570737339272362910987970481182754873686373593240958498593427907218620211044153722482758584346393073477700418399570063505478029402522815006766601843624717810156906752032711242878118930217304105188828959195050288720107680514095135083762685066720245863408504563037668722669174915100793569252694852014320287947419728193841498122526133851600206380310138451549364734602765166377135334726230113321992781673696230701621460246629767257422759971931852585412082188961404509172421738783492363789398557538350486077645875979986987169608475362597981384055575000085205192989646010961168743678695454037946297898122481072257139645580660632093400142426485201373140955294175096110229611014368215978466915915652360059679407062069968750386018514353114260593059578296485275696269836476489645452399617220683335992672456792400710552609290057522394361282568978334321142513427349339441365261913673137022279275437860919690715634953726841686894157636111197407830156742669766819067088337610917694873398361318929106568011398212294493172576961490109647203108395879545355586403348999178614970185817029260549326629119488813891659372515961150733328704561096983579506099331750782198724082620491149327507573675252966167220997921928746968705177941532414999859171591941724460573890908085042747938143808164267125913137225312855293885903004456774555518246316837692606048732288550865686817717117845218190643448990032023425814509373467902520653292833522013595834275611333080134492714427727909556040671409299006020181502775633835889471212390586044753429958383355221326033387510328800065103403017126647180756300803937207198182159351009043868302763563642840238948398784199790991802688412912700648328333706648802291449463950914103956627754999214258622815011584066015028814937841389068619541189284280727413041496059701387633834639538226787272173734511585967506130897869222249211684193012580519420736927944759261043954969164473447694738428398648437778125875995639365655759461118917152801115965169764320750572988770890675237254201882181083282640090203861019865900529787165790797663979186638014928671436685352468635241087911147441523949080534580164200400951109508776320427437514196004115296692566073461748826723459261422261241355204687440808256971488657762012295210637865613323728041015919821783508004387321932068146665780758796189308613376917049082117103180944469784646566421970375003512098533148204759482764063813299067653582625403152740231307241091694238623588600774935330799199236043670580530894554381048923387084478004342050535547929536499803868366127383197364079769608758666289832045419649070526089846398276658549124343662105365849142620137029318537603528630645826120171499344205996657662958599868121384828819481994644497775757108254280774660478757550345647968128297871971415192162781750794291908097118147343755847397155168339565506379045410318111227985572156965530730441339389474917080185075401188717083192968520930302311329693223479692051539528785946098287809813705796183403226749728472460310731923834482230287130078960127910048103180726940134483043585892055379769154378139360907179740004463383473569410640006563221266026649502456572041307219741959338259977700711472376236806520764641425595861994503296675660625437656390972039176001205405887559351408797260667008563742458053436385276290367085983605479433382446195933690782248575625316839338639074382488603441439978543846410061939954644628565747588052728933323733860049863164246228066148829470168737801514310839450784535712768050203301030544434085463517547487102598804002548739009307858649064139527545078825781893434285274701831380060532087362251051605005319811547161543457757474352569579676221354419298259887525902163023983042071809048935226245760943307039174857026894704220065322871687959410379337652998499698571368506865304534425278463417174342316672312649791675963727816327876682890510656347034346173666573763992798555286890034586794071984330297381955609908772954184992853815714086838898508544145726975802981485658524658894824325046909343594952221753009832534692315300327064834934264211600844666108802057793931330977372442626587944009499973577744947973772506632608626409962169301447036135693815219247083831806058547337768580198863173125982349861157713233240905326689759115105317243485430544004583745520148026369053412784252363322013947832043383306732567887422917578031985079798908996445059291524268648469112400998465788605521065857783951305267038080382913517577730440179325229220256262380650705583704860244136076471188349899313794571604548583108258154370543400986672422636598594696371755049553176726701279724169784436870615072052658470490334140180138561170624640450626319815936388716631274116255730352415109545937977002850966226294299108051358248676371235105628929960105186118298327254792461409668741367616124832146907867150330772419884796238625341973823862556090147234894241101987934419542041692546674423565774966280814769240375030732652560928334935941000952490559950920080386199491731964511673988673310936668190259056891092049076543767453435426862810466365747976574233105212588777438965823736095933270188016886119043114791991682426537921558697063735287581275737798328929910094404362535697331268734814633502760071393848817984213622253250436965153512636149084712713073649304981404436765060636138525600931660511594009384345184822059221415056994982492518676433418834058483005095291368124578487264524974443277298889855219420786002247742982444832226426986261834148056913367051294000956216530523213496344595078132113273415932122093308027136665504422791170028166897072790828123042320813516873418587923456895041988108520572230684596476485525415346319451618315565154232874365270601395617244463501231776999123857871525504289405801477070983829213356993082909700430256928641549548232996481871649339322987828986100564907011860878185977808766307769061086579299195788074667677790522960846116654420451451123622160232824122236362212621878048029197582789420426494779699981919634748145309710804788811566182087037441766210956087195916130071255170109118745223050607989339583422698455086535397261594019308962789640200020328531981237517756445171136095862040695150563092207596252400508738476308974081099313528629997559950352328216914697822939835146099783648477698313592828809480763906029260406325848947484483003235550578600623924363080205071248356499181627425164019865444354944714888103749115489930312616119744066270810915311478235900938173506387608290506413911445582951937385330473897591738778277332463469230199639457255132757771517903714609080396417643139531479037507093319030942565041111386598390397220250151883553015433679074196539425917837156799620248463124779337379850405293540972303307487050135175523271868797186043658948667409132682885139090616106329970369541377317754298596835989576896615059979492040703699945386435354541486588450825571829938011451952272416277351668575753098965808085507824578770834640119789873499564857593095583583512363114094676289745465682021451332715282150247175069744372234232219003304231286932942541147626895215158784160637540414225094559814415999047680790146330784786354014858284563876302205097122686625072755150918587154617361950370846528034230503541897486403708468917219534770157867359654404759915889880608051263543173224269137417753591705058914181996958633540117376826844347578186983459031187425029879371165211903369116473353352101708634105010058166520878042977511636563753426427929890581367581845618513458486575660898074684276224630419027915597071495905191852659580525733331830446512323037619654614947068481483532627695429665213589992710584994031953167659923382231010282186732062288756110686362780138874277920231684613259774107208093419956056901629456663055159319735648250938546461675934621740486744003352117859575115359074484173097746133921632383483828070574402292764097085046186032379856566011221483993354204162016551786180962132479004199999507036917700738352140719457224058990304462978898001450733393794954912401521410440812076019527885062758513241177133356894108257533206456147351783728361917837638594024864980002996144975997431159556542051055099822403047860577439752595882395862233994833820836878455456828971167159084818679323786788262259895290314605548088550780259416979704557919507122276316342719975388777619011852614436452145219120922330843542598925209820900822243835396973499709257318272078540268855629091308676681901611448683940590570300399799617588985612600976758842208186770212257916947677004969896823125607392704947875599998227303174236243070939597580463271266338138684380438802471676322319560702711667109329035115451714443436243999412002916461551868897813365254773018426820204177138283908292676766977567075676996851897020372267554648696042120748401780944573242663837580505383180574688887555171671664155168658209697076698439963392844167755867008801354509319665262209821444911117880038645941639535965025636300205432460731972246126674902838131041548212356572171847574653302658599902685378057943284455392973333635807384528561070278311353930272262530215097492115214236241617632544833945753258034072768208246482651311467573836854495126954972231478980601831649907843076271230639623941299526125706718822134015639682666764928967860021383136576751805567967131908721131164504085957600230126451727825192024802201163139067684221584592230729011602160621494903831337090548561466761918399618352776985648474846029305524516197337609322634636975816445499391894762318272872164501517465283895782418139283547989737968143144421608546586788514137972477335949066106677360500182052692761651587447428951513755439123287986090516501083510836759279077567380005805776369952894018031613530685009632291248886657408394735903656026793946280637006053427177669904998475367787353724650663387197970911144716437605280292494003134195036433494106491316703268947674853684128324191414724869548270012122712013077936985145132033409447503514758374254441647264306913194472355850605622137271978498154223483971142505003965857570521040812822000194772677147068211582597284198015376477246251207785731057285818607307075419861681084385929286024641114127660293788615848346349853587767427190942403028475423412853239983195220180276402780364688477605651234860105345874912896427189630534332312469909083409898273507952153387570834039938853095854475644529613204454895987147314067192804108404560190993149214970789169389545282712307695811625705134536144198821759245913436345671706868508656675974028260902468410416746703601392606745526979120750783395336890450528146079846413861577087793874903120739869533237112557357447766212315123550378981120287952388976122076251551671472108198425348278861546685393167000369372444374082299579254086921847242670165688300214991444443849104442690225527396291661221651890076998914974864252949806903246134982508021227665909405444346652379099961532802159863900466083190435919723236770506274737349850493830888518797108382282488460501598234974978228382598640000548763258228156655264873055401278341666196712425511767432466406925540756774879925909690654192509323953751313676138827929327924280204518433591696925645918496756562167230171036020255732417415058193933930536906258558788448845998954833677773848078264059337292108785333394487898265080609323244964034641062276307425220051902147501893709551190023765113724615759300095848211437667903980514549185145856937808893302565415203874528857585679972020015967354950053304502142642692374885790475800668473930356950987363453331416640865054420615405325735474780763605638202712246349735938539506672538129840378471200772575808812033278751648753463163086478595736874405939138807159883265522911844766013624601474538419554524373107476923916143171805885255989351098757472257061455241151348462459553161659205714683138969038180941535173934079091526134173745001611989946630863328560584199448104709335662386620532463189788038956803113687447504703604400998687087093569143219378040968747791554071292743578499424230157855223899777440461170791090670840733891295463788772952054739252138632721888378835678125491114933926516000206768388301454022101396051199589004406415335509173197390491850276812500302614326459939384942037073472192894815808305439531860684848775947720792744905591347517269422509207730847054827631551092709599968749609622796784252801615271478696939174560700077771655727189381541229103476006363677567198301968817490596336778959130326805746806287501894406281815841111302334200994356529309243194368016866042466846319900499532911854043614313485164465888767165951104854139792233451869681458588296530201411965095022390314613755463221222770629164737489206360434332498865640905448017177846015856092262373718697132900853990583676653619545870817931064391079957739011249374341036417463254374358950579600452787912683071084874525386067164225223936721783230300655891275594735019969294035811841441915010847660642944817554444640089730442869643408511631405091175264762172273528098825397372650062437812053666100108920122459572135755906859815180174784237398858610712671395829453096384292277852573021945644696102619010251730414864038439830111099989990725905400449593131210001703199531321485321309941883847644663450451956490080229236784555390660169752786408014857542877139640476101571855924791372528366101339167535501001293359070365346915248620121007829194591009454078768918425216624894550615440951482590236452000708538333750037672597935718118166792345359541486097659922898600034785509298480931299246407898916220007503340801986435244276460016663695955814358045569031659628809975877673219424647187171133622547115863849701588260707609160761248551321208077473495230976606539241720587254805180036940107567619184016730562866239543614675184028941088079776226824791235987477504687077408277778322153868961698486430329783430498228651349610476656068363347260414258343843001738854318627528749225468377355856165802048786697199031269908367227771467590284482274104296986470364287127289959912454707006390220267505535652437537673848066448015776315882186596147348397228927375659079125093805110345445680555058997335327398398341965899714823143798286161407927021012848809578649053576952157731155609915743123013858523259992925433640606088600834032150232598021110440686230781063366416861446700293063787606055190433183209032450686806903005181672099962637503400213958966811521758198983280815945969530092183372653157396087026547813762495233830548447678575993275982489842047298136977107141112614423557863351082016757231733274314083537816440935080312865887648152276660034479136650263597973374007447536737819077439584305574518108610353850436770933795936164684012892995434541970666478457673762889449308315213869313117659617474144101397241895230614404745445443261266520880220885432518951000735490708949411702876734318287422278308111336659400996032145681049872945055809591625910035953251881530849612719301471826101452725566465762566867746498653098029249066589147812094318929055814723821475698295646835849830713928161927022610364525728060770528734618010553307300763757039768589894368213626507746344505231387043064218182488627143663073680200688108106493086243420543808105563113118278180572035701398571627413582088381245753606730073766608109015287986859863377240178770971492897217120955620633301545980027498610522138014114210836165138357574974492475677660481000687938904069248873256116924113389140252981596554124248385521489544219298625130669063184555441126840857074011224058354175440933721005263028068945655348732865127122044829101467026736557524593832592465176940736235820826916051655891861344405752343688469847976860553286948896803998999544673600492879080434171945080399932633734397904411037422517493286223180493599442137302806759116091768750163934245240080296862281257657551292952487416379464319328851124623180917312079061072657392921901915512233161933853340481575710245172561274528056701945809655287817946916583204690528370867630314276875192198848681311794482305991290481847868274954078042319641726456566089377770284749219297338959434810858241079382766443234767150396850651932119318441964045786041329553255508945702033778382450712687935285861540339901729139793909944781858933011124966042703048155896907284228866165521106343074943469966681562312296561625551003161500226819999292797626920128544237729872992857506416683953822913266168548814936391863974204426787406965158164551189394869746953613112451508699556190806995331092301450967437342636448362405557116040235719260885534974430781435208398769506403638166157214420777038632120493248267873312871870482668364811979307658904574938913881924085228041563261687904781268145579352560578327803562771449396017492796307043759177524720240987651729531360797711878903451840778091750331357064436123346874780989512051469922473067373882637079147215143458153033607393894358233515893305615925423479910628903895099307761428860603266535695753905854559586850406254028192813643516435606340920714800898523427894710227670786894061092825332586745656561732049726945448043887246806434859750326312919670407988120578418141342901910659844217904696252598428579168694732371213950004766437972733594038161440067519658160457558902822690059399801113178722707406685148942775125079917853251556667109584780241448417058651784218280216532163122542872209606963930947922610506765998069214035926179824275723293498523617689266806629325115005689157709662580448759404332005168368070158358888496332311780259346816128476894338961924266773977282877484662832642435690332803286045256139208873351445276715173270778880379278036072029364583684603179402898088911276972872400958826134432651941404237420761919152605376158561278158352430646127893661572011559082380082257911540357225749265649329149233889024596106446856166029431359343973382006030004424073157191362923833844131920928179818216999778940304988786514278892659151622406024356393066583584328222003212178051227983813785729038240861265015479651542030705634483504353406465757319099626892761138639247512046713761760405045501441394495229795264015252343312852168821101974920707160392844016202348682094850112033383611205013515838836004720650506771380206399129299669226608273676764534119976810552298048058730917666154344796331085787018196971662034248734346210523342380460228085626098541822807130610665363364779874255373872205439363938019597277055526975682850263678414467686744368769496254932624411640218993283473754027834985379488688103473817763114991268926977006035962873123296113853803936611635713927811317308912729546649881847060957581682276295390393310774069528472350020868664486501171128037603103380334947937560190818355170212249607614525142360858860235045450150294108520668101698696165810796647272854738509899352879380455501495809939991625350682135936388139875277207820635869642541595020074365946101466454458861877400841723461069096085192461541474923964272846566997959345941262933562668569321448269194604006955457928303873443593386587530543375585511733881122920501652783640228370530703617923227247570824348643662235909187947251725565106626887303915917134150860489938428362617349382024841445501302771135047528038577083280346240626650537756485218101573469872512875650971294387695045687699925225878964118469748610031671681022847991729691720916771145720777517955532356439120848409128620670725765963072055488719709546197644201479259213006374907755927381801148450197404808162847178772705531453054786357421447528707714821655132422774808846608069881450250997559464931917153201549940315773473396361786618610152189786568276401358929501438905310238821453260909434673076153273989343194108771917127304150228993942238428651117148494049538378940827924076911939150898052094933062080157798353315456704494004789193587397552899410104025084782376161671700233947327168902456351784270423323270880435018866114027545619267847706721595282486896012763271244037252488051735733322106474018436026702898928952949837071072960674460114864503004266287925572168582282883432505261892133194372614436088661198478799053709126723106377334042075058311982944345046625961070650701405211789216965831753162691367861884713343511326309839343968501825440383822750339346072394599506225531279508158874354739325817043102828286837453738435673313797370349975483963339398743419265024848633558795585267364915353256852552778835315884431288461264327836510930076811641369186522754901010936381975978390714459686559972511039237912113222220830761285388489052271156905920468481000648284910856078960978041979839847031624049767167828255035811692343144743009048000339473558659153880101491266395349276072937643331797168252608209553058934459702026946119115358150343794157245877799363994434815511983414791953040860646772473016245402231079936234108324480934316355653307092911526333913947883081984039038958540757418358315644094907335185636231304326469931028532467383084772412485844883744655240804876723004595124072399750820805085396342719944612446184097959494179722797305630683031260901408718563470431746306772097734545865538601749618106455729472316116406205525238055776268488891716915006529422629841215327371332974390922436451338486939453559634678105609596513235228354522224457460694442184421434772811106483664020061804006441241842005073249673252456859824332652385659636694959841487612902339536333838576923063920458472461929114278781072572882171774686999630108600899066643134156192908560516697674647517649130924278340216996490215274817194458645291977146337608072067000270198815243551470803869821892524197957334527270696439675443107311539023457928415565759418372995502204222946572466104466722369939909527785734601576196616694835270043711836459849658295969733130205178931970747852445565190634982857735427391363530855166024586264448404783731381079215424287699904748360430118948767507985930796562802145128777702743399419897394125072790589891084534929978312639815579443701800070254097504371046542636384624562537592857959350501064100962898909847657107236824085166714005461669495540847551529071238467637875375352138942246855000447659511426434641098326983213368441291631270009924251786437385935450514215917431505186353572347527254177971331141657634922646473985856924539412473515422634056302019663804170476875308720302504183509930105027695247301051126822968215659237065460783332769746934686402433224028881773667405844433867940888623015372508511968445603325094994642016730639549544362860203500778168142340012744386848815038607159397691840770516671121670892228732296397814882088495769767277899655864637021795285678232024537703129938924333911430941511167589151869697044811135456612990272803761634238997046366589923468795398781523870885137453751269183819967750842173229536726556658994923436607446379879615012989683249878857914674557859503349849674455888274987616626677451516394363683284275765542232801647124719250648166761585748778257026145083918229961879522980458765194881936597007027222093769455952225733216522565799283996924590795533141562733154194369477814806613284699334136163992731932760770486915794462230895923748121435853251556860211179055013378698369887521127728261527756535711283413199192473838224399149330322328636569865569961944940682362533064998490704396728713765929235741270643099028490338295863959370802222316674677813029045566579112671507352742207212397751847614386274613455782822758117064640291908661433776639512265745984544004543920016952309448874359229735212110030747808036954572421079658120785947339500891798356604908331192254075547479117616257312297986706111623369488967937468928566497463438427323993111786226232357269091156363327226810522326784679506087678151685130296503121861243886257491778953275687013185804166952007514718708221341190212163952008389915542696269157636329001235053141271667874154227161573004254521788980489700547121234185715018665507003454497993917583984960714222351260097690488377332765043222530931857316374780986824984055187257327027876348907210072690210498110099083468389668627464939642085416097379294967430453130525719573451282559638869577311059318687119176693619276121569071438386028485849420677706144652739233378035134266042663649615515884196442021589528352962950788903848777317218765396641505807529024228364401219293249332731425300311969237272764646562383507986690829475518633397772034947080723946829635234639466580202375263482521493843756776148711598230166865996839550766533228408027960376096569873902002912459387302852626133373641417167583657597921252786645214781375474414172456337765963949737279177152821648290661828201901706789449175881721950101366288642252807156444063343867255811884849966864321244856299503775677756981973835165196117632683144626849173039675963362207064711374859831743216246582913529103204265758988019323205317110474822721862155963125332226393256271429833159123322973877544300953148910950415442391854003927753880179022592605786313866327749065138160052874038138027373885934055049475748600977465335193148488732639355011083797783620246117839385382897024648351147738957096500373556664918758317983453361213037291257502639734207796931201185335803690479227400193894771248490558885098820172303399497765040583433245767898970124369357868270640425926712371749819438658026246845310262817722631347461730111756680056705483429626615106898541421300299649065037990985630880825057459824341454463944401445558076574044585325897520724973571241826403475221048550579073996395705264798610914892694991360754858921616106211556667513173882895463781062694113555837708828974863467707856682446928159429658994466312783790079764013075075099881481381041876738207740983916852142509419388024595473699907023400259012874274645714202564543115664271182610355531960008315071739643744731552003031590643991648647146090116142631374358265376340640661288985569330968971938985418104662144990060969750693049182500651522218101576208089962017302329818297854412000671436325786570145517186872537293591738118601503140771184390286801665102820211401497594316538626496198193738324347053274281601575932196175161923757847623109454749868645985363173942887965112363686300095011093508583439528135928102983180729060154156935539128938377450970913874905040014839213401817330936206659276192436249280963742395183104326657403471781914649005981849291294746790788267874712913717457584170970317164535044484864453147896261117253032550165897417536302455334362099094043284016208694841769449433121238319039460576047422281231598648966559414094685963599632690818035217236306693873514096605966370914445251548820874055858262719708816242929763123110070813738335994392588719858534261051160409037599369945682152382678195905819741500214465424363860651363482003998959250448808666195710600383572252903254984861817559780665983178917169027960512266639981471498628967270220841185088919419175553133228903126962687765496971315023185393837312920540139577104440560296850365095375037898039105730484342587673295102916814520786799337233114632134842184631926641815511271042495883822022999736180703909472547857382174090324695067251537714388637293627020923949805046658614190558075505155187363303134352290770667241327036270980223846255591808456496355544569914206209907355781263554768573781023643868256673043894737972305069734956457177783921274802144380716292746815074361417923528088458745666506603420339645716527296632274403798588295390922873053838724847221724344074973952003310887218365683210657580536696746965887881213137982881043752781040975250892400844566164437926162968056687357051795488287456061397331591840255909195594231389994687941292564899480070846555547764881689884562370664926702013122927502175248744656159588395868276458577470003722282795530997874460460350553095025967889882245772835608226965169445119774097512605744196872199141808578017321300929947697982809507318050570062392972370359624787602781041510022389895335944663523624100483319172040875546230830509200392835217802281395896506351313137882187531135996467574548638677797880131217763907827711694568712402906897710732495016566221054657769023859778715776479370456300937858974130090601983185061994999012028569775504873417058188350931965449753951419327252503397829065453704756499510571470574017090354913728033403639046889996490970305498909501484510071601956548875653010836962676696483994705428961229544995946809245270902400234670502247851738358231807943450108194389790456539000550856483641022011282931227564858744466584199760748053799882559905468080741737691224282088332416954175989798057314035321130675952629088193542119894572435484603442507773507738982684316125158132773849629106730892794379835467338569183616332975595730020900801140139592233686909102026273612781150996895125901380832252014414194802152585422052933762679291888519970553649408920396004179227145052301314407759461849173450567679222968466207183814076919659753522609098939671397959787555188445411605768823042630922719850068930448422534681071277651716348904652916975484865392412844161359483348443501510754865232114200925017626808782174335459039561673624243445377508381979253151069731952315197139694808929077192417073464215437939366227830362417081483838919445764404745996210731806384236168961844936123901730470875994691897562615197031150024640405241981922958810649168337775893264350586898202112491064638628184970428326285734994105916213798024767811757377479534969411685368027008506523556904647198876476738026686550622607569812762586358100176026254047782529607518259088200213996269077904475443109330203235552794178482968766146375125344628362995208729114783933767463108496592726453655792363902827526468879275069259411640635160328627117176924015107113726448033999674465213016015790220337872745497181028362735146579775479151743448618196394245762629144180686431733226138838480159299836662822543532702070114877232469239544437216294728887285581535026555804866835860612804465699496007575692939173992242768889335503529335425094208746443038768773123129703889765396082764096809502136198640992120415066364747290871886856213248178569765503957438457557312941147262604985813544807509457812660002965332118268383125503995802998468241524050925912400946193485392556685576871714039878586632808908473342022778072202391296090900095624680003656845018670166108208761688989500849552604498825294931706273546471092267607421055609846751003286478978558410078367436915562198087762874929496292098321143100907753781301644322432502525278753951500844355455422320921073236097625049378877618292324895837305481058758403958130681054400174258477709273895658292197012035366582924648226697760785831596368660351667178876717327224856634874159730615844665667690274017014545743293433075234067095083810238521658164274766718033459039950785479768859561184348107977434302290528125460500940774297889904141159252964550726215819079434515902550605068129226889671622356863765213333848103923991529630997082987033719128095472711505766045930529649686836355860737706953326936786473557017687454751036084406440385148792456621520565941076733715856985698199931954683350983630336795342744081242435714022330509232704403547715394866468118811042418072826444154553570208108440019363649358820384070155430657780522979926630159742367359150229874226490139217872850790952862964290863077169145609493272971798890901507369780544675324111127184857877636392261659524645933491922261132712634652648726990996811807352104086968630620934592845623787158782278180449434600164001216614533445696418656216564757942074378801856660471886672148733326065193154162534118574408766491406232591740810315088058528976231810344471914692374923184027566132943460024186347543782504128126631467219079837684100003554701940252810361426366671119393932374834714462809616820909456429465481882036000128533655438717256809033251074740301468890082311552086909367163570311382361492864565011163372372177998132156027453220491774222706670521571787110087729069434497731740909818139598952200627519632506341065973189843369861664123233531841822619450746443970539459216107187003208494121018581174440946025135635887735442792385695821826610269720063677389766953960813091181143624943863828796983987629582725581793930955607633241723640333316652468365965903201904775272229341281226135082812082414130670518059966139989958211163566848410869603465475721939069490361188286177347314272726415478190712386774229889663442639074388189389325167937812642962314410230776897884300763503722951667690241247186592274168669800529004027007273608233103730239071167714750621852524835859762219001444353611749311862919574697633539242417262675102815113858911996726185931226456735915661023446327689709184085286903989971847419288580630439389002215234241194215799360815682615069303064468187463506571308083626807093361800887784275785801925860353005901872465984140155423077236571426790520448359712328027696691694359005201946771955277337697665301676884121415324321321574472577146419182172233314039044768526703923823669567982852560782876434622169839669772142405940267551851228435159154849623441190733296142148230088814381535017829266616111800822693738907772750958889257593971238189390013860899194428938290568520492236898447647445180051875104011210486237061979808540365721679242618565409225391332057419754385495360231907924518127756391530479221479461227633662735358136466476088798412837888841772355551093113962003207933395462268070912597007439102273693938477482998752952613022539003778999853494278027188185938678456730429299416262571606003705146436929475975740473283484152897702998585771762575793818383548640237703491298200908740315829319305980783173789444314167387400727899445758475314528947178152972946049629370902486919114899139956588783644577701412231250791474571458110991489244377249834452015400240275278901583126863781620008856906348097369231617386181111250685579260299027643753165150330591738851466872034790685725523631268483921298836182632746597993813117745032971768601702463904455402662546956345315195492505937473907951867012064859413051227328371116350676822870013988362852406239825188397385439611540569500253022776144583064161442351526103667325703990560890516688117420520275917027963490608481521077160537167930860207874728241587539007928044465976946565173998048118922059128496175922643132296595504322763104385917516691092033931050165471308537059919108766790196674120730762650721979652711734647895945372320690457423993442930353232010503011032268942602666551216697685445365675094635283794821087241619223860280219196065704387745628205626140817489057874188559658410034323119756549352819198408447624908550933955352724309040940341788777761093769442118309716704041999019701853498456030913492047566972564619022084149635213107758767314903331438899455653480931730450569451208567615236933078146468336292082906154756184254776298361242210984874748974347716719660275125481848726127998782446493874034754451614301957899348112916206396785349362922230534018536031530230196524424723860547292372120656831536512429587176740265606148797875057783732003935935707481180368428425713426627675670251664941724924548983640733638936765317066098303328392807318034506829851606595969714930137171812304782522433073729810603511685507378740845608224744214855172583098519164413989436106541894480149131791117334230086960968913219734156908311899502439772593651440036918810237870635635462806133877622766965235344197736595570538227692664292277685934858315626470946500272476136108089509919996458207761589711191593067862228264808654424317871017966544975414488888418893875835466079277512605886712405622429535177762622869586665036115762272918602112026110310087913694716571192229207217328387996671181861995466882538982901016825304944794066070955254306090080128594158537866824340910195075157540905987986125085269654779536928581725081972866368256619143227889591607239355087234285743694861958038340837677031008856129367953750303533726103399375660860059958103512600254882200586728445723281261212956288820892020985691247349227215707450892510211097427777830898745280996964303013407544432526943980927828836255476050843774365173812783969070775013667382102851297845600235584867482704320485066468122884649451101936853487000909025287230870763153845509574722026413587886364310476433766406148155124123016875639892236782711852299411874431093679758664598934963304734432294586182359779644048923100971486799733428680426191326945242321739541713007244843099301257376972512586341335537750978181418255386432544870746661567960471874626373866397964555102495707745389072086558489004403417513454094063287270937004946141975000073689578385986559469182743124029870174216897893129654732443698032508092119808710092078147099800337242821536432668615614067812380662713793786565646864970892109687353926469743068069553001555176530355063379725970453327842607396848190272954907928671620455374960463828820686985996649853255498734757121633228633286240565329215646893793838926270877182932784819969487405434558131514595325558875406971212928204504487381653709907474562467957868484104343886928579486412687111515268078001259377538495781935003429477325982366494485032803217022145716004131890206393904179849688218454656324108076735055197259813662568391191690115217570460886654661036500183940955563647729879374077943414963423821355069875451789474467033710275431386979684333969680454903521363363335635423033972070663124350037558348267196774170224133973859871167194752933813526750188095278767007816632305084908231920256968037270335458962931824582803147621236171528792512821512645783637337351498740347343344108408168507417447681274809730250183332537208137135817989146925656729997544750049042285510448018050913471654521994280057692159785897370829698739610003978821395691807724701826406582686208630022834858612783847459378233217108583562570818923624988017843840889934394614910541416279360591529827561386580194411365983774488769555582844158152019712593635396708420277971380276360692770110945751754256433638841524499273982719192614483562563236994449115590866853275819162433759289841314218387149473760219534332412666701204169182286111251571157969202753266343777389928874310752283878514420587144107523305913145556376352761746164911004580474641498595446473552563066298102852173827799802691212364963581643311016489138063868918522504248994130929866878299947036776733566619529116995280920650229530761867071019099993564486342497439943413267208359162354265020149537366004491302751479740360193542478040854329832418997330849090910364502083118692947463456992627917232060565968316061113272566300924769520238301146619565779694660994223157045840356509529634157039914862598099796104611749940858554599455917634683939320849849237464665285644438991657788187047472703895181794683053123792270619349838315921349180162048561813604798242546439263366253482342475045452015761892576938168700043664717931168657280118374338195701901758461180639056519083946131846064995001615165710757128855820975286960021182304245322973333687453095436461310231686808704788562714761577875398390096466887685719414451737886196108860452168824599406803029973732982987404586363540460819953603200812496591978526277294851945373218896413598568128627628094403336089736567704493582539474040968397657844474277302624642170756579675246719565925241244800635957708489886784785333867804506919309830568350529048876859950322914824717502131273529374553919695420259058044223594604176772065663342753251404065285642972096231129778088007197872370515306540282732950635246151574432596264914578976550826593780464192129470342718574494997782470041150005513042457310530012644832609016223841821144486610565141058148661042751485729571992173653389419047013140022421920400288612931635220149184339346041059061084426848002219905698664151336170567955897668454508626257565210833616231275178977922568694938785080823223390284375895999895461840257201085531634605684971652818949188455279181289238698682731007646226229864097121029341809036350444315824409589303358240231980467896356863567837187663409759599946618828689050484312684366562549940374109705689620320356523385542767826345093933767826084358429499916756227531424870598294176174666170638943160860131087452103511333814934008563725229769975317557341692900496918969662321614921912282301830617122777261653483241366883085943729531672474428565666841941076024583267751519916845824146656855982895183463631790853145994744963336391490444478442135005020192197816326358474058747973459822286291713693946657186573630866539426017769168446371399673395092939283161363492628343370718804226266691708470658898477738937606040996961407320466320534431056274899441479701775498034089354414207569477169778867371334297661616368532437688767103319562277411776373686150265317421881685862095497005407470650046538647928142998952842227408777799559760029752704475497730660668686070249484385943637435551261632535369316732117123819787727779841705754240840191426936859460307404814302803505744125169232662651426183597625669777381646072970877563979407874983713865356745491774606185509221507909068251895717147310654292784510771735045351826356159340414630093291055676909467232351217542743806579851464808874179190776933578427695445622398256889666347126522550721572534399312301987602033556304844539832194573289752114156031064294387280879906749889248600096931248466048203622982635660797053084411690083953402389141968757769599014054744571312544295487945882557337329272601959818213162707075172512773752466454839265789681731374881637275820486143810027224974383321783112103810892627380006757419252124423873184727199498514977596245900939635116687035467971481661595273034010029523864605131681200241092013386143915107936508205302425352832177420986602709339387512786974548158415751345735872457617636731372546441291354121710848594948787562922943497697557934795609827420444687135643393925137222474435785618750340834114941255840887452490997051841792871565404566853357085705139483425534636696104988286959224673536205039336633740887641655731640237334900195361036849329551872083390310386317682361395715435462225332755089125114374045857955785131871686459220638149758496628562295014760958567206128303917605394083222126123059124201103252119026613294111150172496783820193262545110224080961821291947428755313019433387655394345422198781175394392184217122212581216826311212997480323735469599979362415439925705675044021147778677807943104037263512137824145163575799343616426241543967961929668825328340897190919291633033329033385485963821576385902645118777458758646585885306504239430460281563186188242288854577208170775594540136972386382281877327051255656534335340649713241524309049000766524598948140219162443176263233816405471579321497114249271171047124845404402551396235188477665296467145012763340862045899173482994200607513228782151433395477668175746763740886764393744793162377971008613657523624936710267342472699615942418588464693341065193764229563797872031498845038533984065455149099550131038510262221654336219846897443547413488180585691051595582577557160266377285373165398164664610927598431357206966265062470142970025860814324852023862189934576019274446358075627730464073072042124939466241804227944463865991215398492470585873998318958850534796698647054181052602742755923372098991813503503346643843072463791511420167609149630638856482758823965298301159002352576062054554757066835987080079254311857638303597392792846619046866717086603165039019408240403569687030274580107615190991683792458277481845103741687128005728048099816593395629131126709231589864419821580994317157153468473460419627903823568221253899672123976814958651556340065735160483297415973103656726948012170986543980849501638286289917664725660148033896017516941668121051953788179298762618518021928287450364792184457830205353221514938414382216670947557443298284939881380103470687199759312658114563019431618226795213064441933802997584821345335974572545884168710185069724438736650050558545201064562822262759504853811641141796383368237485601214792368332003156867262203378121570692404990292234038406070266298820397926228014060345052386990021664422500432346384327098472306471881234729843473203073459847380017565216498016365824181749741225930904733235768822435179328190127387450326352963625281838504292700883655358554785455602744925518601981939077545187204111946717440450165675954682066070951373892027081870427326653611062633181825712058157399837108776668089097607502598731801931370865034948475761189714304148161962976647060740625475168562026988390319922151817932999543682328105726796695487131959662036438313666936015651288438879010068253569425965280422008085938076459518323008572760331472859844294349020809029538742476595767248378285972580947988857443176547439522031090802161505154529803442978596157012261737600601607496157000975106304270161449152274392077460339951627787557274246199437222719495001342777360409779626674261846891182678248152172834987394631777084760039627164681219998039754379770147751172070529958126582926365347709494509954157461496942478639076288593003007112775287674166922525232443462534711659476643458642883535711044187935610985094925526046408456774264563421144648760108215374899740687222553022343790054893727948402418227343886629799686423652100308987511501864098947804153062439006407620340558821384145744299500618550191630369279587482653421579537372709374644316134784484787043319169896719209030836292769177730899777910913270387848842799653509721390990008843239294143209931017684637290631216882671390777182786639363967471786983421573731422695268251858247629161724468955379596092056616096173395757079057634905831320061286470893295671840791136707325995979655390177415802572969294536104946157346957605896860921172791167577674512981292275084288468202389073981765371606701480682890252813175149468257434685567650742691956081707500796321083955150489481542869997042890684368400952585406252422829728696488815197259466386457646905758346504932999792261115943272243968428693130929435791306844253552967282279366099161595696411311631271776939074454864359346301714191825581535200334157981549718180078120619680252466391552149624372473178104277962519340062513718001009660467513978075150844203737622087554589922298688469560871194785108644027218684484856703440128814090821523032583915629342852422158899451492182116575368013520880461220619289156743431154292598174027831463025843772841315410679092013651403859691222671063302886159769349082541951261271289609555208330087910716107181029340379620869252460050797909226595870864675124705766493850488867056005245630664969326128736279516488646223333170253820444069139988651272002765453440012376794078242978966583506010601945681915389390747648095684876211360923074702069086085087862394454361489980988250942209485690275868764919832668400450702598100583089025600056721492245172605039172346169738751994222376798737490884736378898147380467907044291459142901208143910754910372884367338275922922574429580413894457598568651726106748676882649052994681495468984648446332738436234560207103584816286896720525300770533661398659920844685450562503268020359550310108031120428109250285148393530602428253210721881566663607777207289420432880032289938308863553444862487682853282336948828427570002813989936291069135989024851947918301867520334897143075748565247822900633516486834581015632801701490779830528865615296710519241407349558631996622155451981639769446410097354494711016938809038655437361588579772595427915351024611691451537307611659251030435804481731772852758964467654789375040517155505945129524717108321648247051085044536464714430691553039432138628605868177422310340199973687082534279972563409974313896608415342842880269764317650218561237380893643372804942295809265020084877843483785066645173238577068832869624395334691385326924619020842114613533756010159223910637735587458042628176450819957639073740793398111612876797877952504444266724003813566819775520030933853747232229572321730375096651560355732396425211498746695834840768803579947683820693888089846285675505492178009805754603065703746617875247941404632431899735104002097940477281940568052271054529385240419321892068605827542142774427557138617626689472414773593597844148213517711852029284093943321829349424695684368336519088236080906395964400990952277561208823576716882693335434194395179444654615637711587191771091671946543066511354581846148992166794494206367940660088870512282101517039185103756305945598604443929466861568744399465400136227502718715128156189356880893050478143903820481073174734903902145408167616069960873698961854504162999112750434479925479564407683660638204534847043533791451555099402625442969229157641279932306219143444987586331392586574375100881949150287358428638006026446676478005039027457590706340994889272857517032877660700431849974508739798119291014053173809594931097676219211627962841611106643497401648145141061651907250762303300231835991824031621744735434804312766059194701204132735583182949618532774361687858003213996409285640102398311818230247359019563391978459245232585855458653022698138457214003745179082078475623673629088838175528085395361795866418229773105964192921286896816451197696509357316765770116728827097445322204011623480850797019755790074769756262683423402884274559655320244943409498643310509060189359869626293416735176829972641873223150193216776938113384451562705488904942736917687050061486129759024284400632367582273297177321253241519127009882949584406180716694153100798902969372081090373627386895295427329139424670726475836862740553569158328638559365773675946031289866210214003817614361900388043775433068309630549814721529681200220176451690838756694921997420890581819709792310577432017193605997722949006738016065740704639996121875305495268691610294275700061796042980493880763389301175933370983884576952974932739011362606175122007900105474493127293032238919778233321948596600326620015806581540854744330509198793206091109968862069526849485259015550623662086857205413305565403401213633152215196616743097333906825105446129306713986056969617514520066705958761644327852208588759696478647994131994070223344614828575374902908445707350082814981739955769190148428357531543385179983346312306809298008475570194931908884361008678249019776617587506609533756062733584153287727860878434284463927819952360662262779729113580087541188897585402138602743553689433633168474979535060580400444766044000292042662534380941763153661270946581691403828402861620380038915976177209018826509912751263289264576390734810149664732700348938189285535470755185450326834851550497302759524917641804730315742069631958766803490357490578239991351316677457131554912762864844203860615153592387594661124911198314948303030690146069920372329986564566030781350256569251324434456438622650791968124380702389212367325623128394637008855124980505470398994813945828353395200509773513983767739097651192884506990326718626956000801339539169344457436423878749055368886146085599742072342193264735287585701591449332346349568499057570076712311000232712918630252351227504158069910031336024632719296197348753927420229749680832256229514520322791893406551827913980887327099508190744336953098240697014021771487305630178931488075432816724025604539902623524588827725400124603962097701346049927330374165891688197347386103333115848090726192346603684041064178813609988186783737764220900990309340235230832766166603893962506453302257282653620076560313858217558869299220381699171298560769190998430415961423694790461874432177623074426671976099733516406076874894990229083788305909745936045214151205881016760392854684493238893589945540084838627753444916319939684376016848147924006703615557115180212827513919484839568956057964510140077089884922583644129645798134076187046629182827644386617423799363342355237679202539775762660441682627550337488670249123429571836375869311694472293721919782655086172465276179847545826715409176073926938934287762841685334684751957844788831981987768089416140805433786493076180949710863321556839791916262562142938005636865666229126285380424757944711567065221820501692528517919140216002101927702896674255077458955981632089083577599239083158346409480908230076042920394824739195101616067896408361030935353170487126344981800507514328059345441051798173962253311516485217502928457793441358859184703129104149059589172616078849777048834704801601513308609502207789015346781249419927919532173972720593395990457013032106672905053712763284643078861728976873114114158830358066717853834527106475812763689743198649496225794334323164278139673118596046852779510969964259867082138469615729796730756805852774865898198533506735521636004124479320813858470461122593948106039791363000772836679564294788482486891200487191713590357902839568641070674935552614927552204502807179130182121513019325889047116746096444916497139668549142055461344287411194923365077503130568115175511576632892062189772842195643517307712278111415818938865679661239132450662944953394366196646271574587833343198154510869066672438074237905688302858314597730329880879179518160494150921136336106970711027455597938979727673569298260550228908534555615049877412544821997486178296260123986480325695846050128301412349206990686075874370799915284529619118678597355955022699073849191076688768946943740738904555133648194347088588003206177733944442158665447324154105602287473161333812442725124015198310110480617162117102111527729010714025511701978723528857223446525527144365975601791003245606599771557372387154625394575361457557315507288353752958245644035022998459512531393809570540911677206731018763746585304523880330265240906640958900657680333650338412072539836060360321602000089034085060220658459335179148633899866623338398913066118114214093606793345865794387179619597413319114285636390599730451458491104836290195219749424512723095481619618166365105736253345943304452694818602679422615716041167602869420824584720399479829931812452330916083572532658250652520925106282594190126535812481020732475667167565854537023565487743744970092936912756028924280712098343876916937051054316656871839016155296347012817108608520500043171850729082619236054929961928292218623607455130332620335594941208565128678780668207052115745878194838111937023447013034426371568072812982161200351072484129391117134629647403268364238858457341461996054083958053676496710348591608109279675826035633786031756925106441344429108915781491782663158006117663382270607414493196105470864739797342152854147606341742295714033347971920328881615396121157641171109080569570379143373643454786338959803425323634181230825973918080092800705394145183669004110289849471950882320359280729998074319342457796668839214952455112138185472323080791989794245514691838467016951362357411089781310767325232349444909803845418721790471441676376854060043044508274826954469078971772246969544016590995641123794563441177623323589899616210529566742711233878690222680139640838898309438817681386737658499906082022889589486516098742983807074617446790336602531355845274456870281083150168501605992409060512952989271690635761303470537046268904558944128113876135264857616365074730995067755016530247315157892080937855009983205535082513569687659674139538616585710345003458850728329728756966775358158036378881594529061955993204601180667052760969195494367122292703041838035030569829289044346207988854706190800613636910398048411386307832547313990463104899620364292403923069120772727675999096917029317720392155710982230644433458042790783525729961463061953025153523200174832057474634569201505545724803287616780599959812463463329791368268880174381430035808654247968641576687820782524796928928974621459961958178834390256605034202073353900788727589957538586732538848164487041431182420246622185898968909350596354940513933460126622143542413820991282224221843072732060816531339544496746006823032035525273646431378465748407236572255213634303465960894836500317313742999511421286727515524069219393086690284087627233899690357700366896170614486654777362995882512161665678047787957421152122508155920903252173402621848970427334077078584861667249569814729323793726424314254446024256637643344996400588226874307666931539984665514728028799992256308067822848949496278951618815000620548506221230464194042502162194139658470287729032107047538455876391496797934629053461307124878649780056690283743211672938161172901882093826922181186923969932521573195948795421072881944435967045349871397918499459950867290165630201245931162978021143239287789275371337751910081559221915474251305837032650267244621924055894364251798198668674295763931642208012848994292393274704859289382068858840960074790827247757392416122663092392078461956274315025346957189802277031566486513052691737582282063368838826342265061192360833168746956776618203880983584689410907260472330663631669573461348983352431077128801501999568854601833328607944919470246361390409887574078954983000759272381293033146919190415084397743639523325315339872726504103818316571647758782833815585893795605505484766615602991635640902672966365184282023873473238416139794571959965753744296492853021018148166052186009409989318506254825049015280725331851186530817363024971828322096902495488243115103771705713947443573017980069982216068966304565592527374517820282645343212616791649687230841977451255315734951316882939937961624057168981271575487557714795774781662682969344227738622890628745654026414600926883411256932597605982349643265541771251802033502919266033359230202152686261174648367510995835776866152208336770243625255609439223085173124020491925799461602407448290131144517837226946305857356123564181023878121996922261930708366832890842076354390289910534930680631116346779883570342968524358720377855914248950065823482751497342205272679104268505420646930813770195960096483926082562907013198761319682739037408252351109227743407138904309006049443328483153072481137995681345339480827483455852823223133970175772268194578842199024810844292017511752501423801126634932920345419093325011797478651998336872621378603156570535342796097203342594176392353578184631211383998697367727469928649628296593522972422151309527053910684249797800677098365831505076766251692574730815491349492691593525745823753082132357077719053192869244602576893382294644278184757826689710426099350331161628562571506929924829246361538654363831113894630489833480541737030655553020694556843357527085935746722798974041096881338324967172017200434335651821720294062267918256179524968825404611298025216891946089744198997649233814880906138410741682357018352657671858965588004864424279249113160301599238752061052069333269605929180783046432903938855209459671377006820324722161255815652504412688192580677074359437961628286025270099690352768854654060677999577477808235732337016435305211848327274426688417263451643611029237495666822650322923998213508991396552499893083646783342363440776033606174751084627877737667291884643344717768806923937671758971855828744232304395702539606103016845758929036323738669585342766708565918859463813240792794910827190548399259727819873926661683421059548446363545413697863504457928425210362270069913037684252200894114869137439873382690600940123543093748929329517807707859524020249148345237091788564329027092444204166458252817278692639771330543475786013020181994509322162272456446714633483700476598480464363806957491332630676134314693112228639365616170394753716914510925510490743000012795618657485821689792038855384542274667539813335511563933670208773233193842085540244825847901447687229524892737437330271080858817703966675399160964417974944036618036219152337730397547476948729281611189770185102824942942427418726871324589083420746641415244158164903141534047876980725946329326293318728584116401773107657384741953662185215023383826216874500233477074750092535894496019032367605769960024719856774221638989394831295676428816906569280653868432115212977853996778386426407249980371994420818176957683305355937035680416793926798572434183728518336098200376313832870306814887622569137006134198490793771438644578178993531186187443943697698147233042765416787494484599282721226186080552474887719034630606431696136527433195240835727401729644729485585275165623309909297184238342898861248338939062747645196593422562008765889233607953232262748070806649278221088599547352109760540509043651741271817174031210929760586612791016447095665680111274814595958824288829561932830906769440334000414160330034253731731981955222915537545428493898144715093285432149928185120033219996545542202765157758726794405864588534487069595953636287538338851356600372508779223779484279366794866065600539861618226206650876996570798870012106727360033684442335670094027894978542262588191500496185097298992967905101570307734402029990448096616178906911973397114292859752389729180770996558654661051312334136840150705223751706471465518027002597248824458154888274094481075869239566515108939798486206454484264306781677715604594049021427805462140637187963463337829295119527745789884970837682409103261114370766822405004152194947300047744757216658261418726761345283147275691825901552304151543197083525600110631605468958380659612143966342116016198155951201244247403797818028680695784212415371937220633775339006689602918945176931643285055112241589532223058296718399005799875634182396226775763372245084462456121917512411600613568847248583664616854453608704548036190654340516139556731483209936944587914520694895490593340149175965953807894597156114736403700087451835850443767298011661294564159243188382147859389308705839806109609130139429315519621110215775782504577901869444068822496343652949268160832603927599739330101432950178932372904472215057874316097567195357748623637160536298932615580531337424592302531115518411633123929195174663816357736014103114388698590067465456895894337230602122968583782208464823786971003250271171552756659308479060776551162926955880968391154394767650564148438941111074180773654147204131142998215887601235077859929331647641586993725838258076021856644166792415557493134774392109362689272913124226302795729249621921628372203747366663854657998820969195222621763718186930993687271215484839400259942139640221804918541301135518290725305801075172983710322480462343371971540341352098366359383328274843734879642620153713788404131837210285046313696351478697052740530593153312326776490631055847347058698896202346792220170957176319672455888625354223625644974119170617925472144341774446377893395493761489707450203547704945843234610776140896306190778681454177228127737774021879794536107936201256074049739677744242776956894262351608547736700625046311905880808471068793917616715948183026945746152003300214227776186595647411370972803224994396243261995990253115882065089641609276628591054968940607484830605321633518457740931113649044944600974089231253501983130223791901524506613969442163308381086522624236766930251091037378506991261408430156909216274757582519489090553277316522705992761196776061157080944788056273425687316687313709722525671106431445796945342060205779260175266273068562120865581629788156859255162878764964318426717178215658650327662047208620024113645480010389420317694438350937501686287376917921790437437208668622997708173658162876916329165701438646308530427599146253942995053239042772797159319090049491791979171037682975606281182632295022124744463582172732890148310261704505862981052494015882695204037772963586127408542429935758601806249538850175570353889272850959821109533106059361329215426596108191581849155060156660714294109310112222561117211089178051037968338337950430337045005612831787405778590897008863851117291880732604106557866501973033522562623929491385562115996712240356053775757975389101260497530777557701915116108799101752071493537465953188540762904631932897224183055973671887374154974927493161823609203937453732998304848195338021137353357165802566630015657992587846087954894283005256938866330873089242518325586411476081918899060369461828264641010652912750477750454278378844456311007306240357482654570450684026391115831632607603068722367116881161414102298129344344770285174965466833298864290705738867643626315765134871922485462710559084401994738927622518588825294913206659000444715300880997714936901384792184707658690904527061081120328943668187839780831320175336717962985997702366520811198024231096556874246046454908061612591234223275537674309742558352873363096339821010204924084021727736651145577183575015798740173540586340100522381428800246159867051291727767622579128422388951608429303939531574758259864023253356374777629723134851715832162760933293388195288045099082210140228873672116798787617113992460203676190609152878922619285929066633022704606496535387153768339337209053402077015849296008890313838344286870615622133879956165119631919827746957799287584021928272626292880112209741008342979745434293700224784065828858732361073881813509793736180555884916840072283981842465655353629396110194788134455527538224584246177053514482557878516248190002652229102820930918609926330251774770720429263496170611294944252164761903623950134404080782690359892003184321171550212434420618976685468159644526822728771514449979263904815140226094716541307248554517654510356410713213590922306463066994347035892945016560394313690030291572426388481541371002692516061001073793596749010888018158711548636944514138897535002776440673423140491144264064215133589312235225151717627913345611012324520119904775877621126886632030056408405194723085489824471620211770667123918716697390584594657587113657877773754202871585452530370100797340804718167274527874742884893343435622538261592443065316986119320963310914676950352394468778685857920479458739432958735752079919300565268753062909427064274986424412756885542871219649986343413992369760066054007776278226329254946773044196485285894824589220926415534738840883827361601319368096623141354876121792272005496792494701049484004579245229653677228001964600410534649004613711241112610176525880700551102097896947021549516047974861069803698857626243644049231941964660233264467602924842459095167153751530562494182923022437252211250601621649279373112728655592875118405119012057968071785386261395774856946084674139675375509097186337373309058840920107454656884568249110466466058275385831741768582973641985286135666416666520693171966276444826538777756528156856001736752685340912234448764783018651471864025418403911412552494896605160621378556542830005352148298697452354981678397130178928463001863691642639139573529818586225437864893212399452220528040887789092645504467093007638204540732210228555545442729693184855862330830242706136423983917462731799515288958837347491680070183348395628544656393682549492037477164806847347628938693817435085313064945049774799290307359030022799065887645642908410924273689003905157244911253184682599973033215898371509084577234120784098225094596624549367987514873392550663631804980891300973252432209475061224046261320589595733411965058398367114089786818552845399885585305351015507396537107814356795635444311082443601205697404022425307388499987853225850345004661979618984657299908103354158036667529507142523366699081140236181396889160631439515737274403570887572477057883988353992920679663054812685467002264249776452444392719129763036539246224684216288387489344703504916897190017842395860680393786555803488675196196324492584279231756368331917257820390127310883389825781136450800508343735897100947786010258007206833093749018627533106440137005082130443590338400315506768130633675001026446995544381619164754312069876771388241009759409017747918761927608588943344256194126759674276301685710326066807011562907753123955457287513997329809286688020957805042652381738935157708984856794563645498898068743616386178652974499096009663733943023169872269293025654876581138702532071706263620594938239221936472972641194724835147271577160227588923825668991812340519566414733212666934337026818884576852631278608297568255593485715154762063761347072986788726955964994805355630589591460873784442229334059685772286265255949774483998538406391569847937821474171752063339659238547595378599790982919510363295268786533300610339638379824200341825251664040415760662281816037714520820601162422670298946633296687634336585210826207549138777686790170230640157724552723114450587118607601241005921817929301630526868360260427114236012154115155587044902966926222709557875653452351989393289228173201798095756749940321345260444401126662095001334093652836377883297959742636706999737435451906276307539474478758094812440704398306227396833572020052932571772688293454658973977984110659569170439065575389491898921056096983438650105922939721835269057651069135699129006538777609604584333154803977626524547066917789329979550382814966394739548018562790268988890828246440384594651405482908216389446101751332966905038015855419608310997022506297302611173455736308735049444303714061331399652337932077836381537502734849014175521335204999359828637165209343584866107957356034066978865294121857790439758390508879105917060842577481775256685520101714922932464531368600241502227344408849179044072884115034998080655099665956502927319675050036148990691447953202123342297711833509126420234748188653157465798660814635315852222274093665960727284077782230069872515450716670227560948624021386876550735607531544318729665156602292666582455064813221138803495452670104194068879744013179248848335367147543180482134417443519066030503055633547312944931485713436830693114452404748089749432382160554423666110783474129927098559215137373938840001246684873684594724489874703928284406935002772787126899928545245124379298130318050626336308621695328855931270317907505211112619604914465012509642517638862394937454115698790486777672113088804248519675357345208248458071763435728586410386901948166276848044588067799074564968194046997807774705457710340031128830689949717019120022238185711900637107722258338108262805850823772252968928302843566966819007703852815940476288690586894558032398262511680040816524716758221390736771127863270412532144232897454280791507829626102844620865517631191014714477930521769119885219775061628083077075465929694099170933823845422452586462066761101109747963550636214347509654930554458120221648927599447528839175910049524814722421604875006245202458625840175161760650077746668929617589237265952786620190472869656834369874134676750080212642197098105191306055556619508397953992508239496703050147861235196791904945336555476194097249443262134087064360525399997083841972495609984055477221365262652749384435664967484933213507280221940428549578733702010145999872589575229239059499713797431586447145919064334738662604668890333802346175846375823277454923645499876411297310904263151030924400012293730205380784878547851629923650993783489734499872812450987401068678338174058729261678541809012437387152057130032949745654625389154514099366773427732391202414253742558167764697048793171529510836363599491239640944854721499524567348020084378129141638627353276274487547080244860165900877423398132471403129155441424663679426805966752269149813422952205669093117037909077135300153039782693798463183400963569579749939513876619363824995446048520132498422249458546137821491026210639801535230103148245597605498985598698125592694423367657166846660126203235730061397864861540757206162869615463004071540203442870912821422345387122779196677512475239993189479446298702542327453977825459443139945083033568391223131339330585697131941652484023781472618482825793296905328812893926479093133849089963668881474952719377703115766300475004767206133252307726492256995765700965209352257664429399948018825365243071601292560454212787499573902736326596066829133332924280291382688210672713767768307099672528153433068540866393856313291270348323716634929740716279377234760914886189887656772283544603656089263484391240425603087702610277632016235354390238744727930581188764901094971257181997527613314911198939402440308786175160958669131899045061656077823629535760008804543696995953877149692782780239655846649429004381582543351337220965671009235563894901327410551340392648207047926982400091837132105101884664862044153924218056853314366117218909110173801534216574653579936089080804672914863283481538916898868131737474686459570527468151961079218738839955929574723752949649023315311993847016108444978476885284513829207048311852990724928334299360011941454242761054566362786946698265830177672764900240615947700113986454811482005914621996987048600787080564836304927180656457159606407820509052342023888684722943906315338024431507881319434806859389539255323591731934868346197988617669499022258239050807201158142310346995517752804785417863307904133988198588435494471329367656054983086766148059724411385437244234167498643266588467528735255413409838031498878997605824834174708824433402948000641354700914112213360120529672680617918012752341486328633425150075840128686576819245862074900543365733871239492518286451216556396910359719737925108617337726802096262388190409480949635496956624069800956666023353923568031810741470587887360010144513780064169225992770603082046724782826267273284853000555237127251245253546405912114634203905455250120799080558842791818106919290506328549611555555090457512847258219322085037427026094581079085560822477690574016743425335429243513792998591581018673382484054107943180216715146447709801227361749234970207115458332772137783609796119349890926757198946447288273339175133080832466546318370589406135847335199431026905520960008067619515249661457020010981176173252336549125872789181669924041749705403019779502356663130025082240141671561107712846126634891942407799334444316912678788295314014283946246642897848583512493718269680779367405424894056621918379576331388161246495605017146575052962851656956826236984273889988013104462539340088468263651229853804451960612006153251310310310892106788407273373603792139475760474621633764485437310304776698677000859074174489905378996977715635301297709743156838669991983195830480883974078403240571655801939634183034991625211711801511363612680743297974947404818381598616037086104082798726432008312638716887719323464433399686896912453522012850739365170774725091551596898573612795871853979057090802667895748221308266877149940372147458399166955374043500576619128212667312771706246613299379214466444862667968412033975137417332189699375383589523493149548617795433958756916039758658983471009906797689657917484286344939586436938428304895579979875622826062113769532532146597885046910910476614482607470428920075781680217747315302579532209937524331209886299115323368866927088533049534146429564540714167088685656889999505749105824234025248603556203592382599017338098995139951480643900376110786374432885004848516950084680668929675592200695810376088871492923238100923367920808179440210991503407897193862163335555509170375294298931050516010287166010749435891266254441895099065585789104786175103672008825485510191466121453808539446683853582651087385604134484817531965289345471568775240594158613927672673856385433903101315872583918039364835678648495274120943104309105212067276711058994049590283931706454138048750561751237324162870744827769400844914668387884981098892209010503025477866830046371891327580944887628239145170975867788060481287566986774900881059692343219295862877072113314899265262009120386499733658231716683578590002295128038411504307968950464708827414918448856040439408061480476904268181825846168645456659282718709296290954770047997787420077844793782180783198132756141658860420501127018485301524765396733077853467570226934765062471525243568230260497985016038862118456377557512610330908653336709601656018985705066186344430720574074004659424967391820871379788161421172548618229837831695565605242667898673190517702800471773039509779286042704096713084619221415444504177002411598133637401407975568935642172318179951438083493602836726182921691253768185058105985225165874869219719968966823969720682857660142477487388777200808825134738465137882438865361057322852767261112401722838117377257678044419248083306394837107745027246326362521139143654830550778085408693881051167829830750148453726965751544771932330884184901071516684902610014081977556505111291122682685786758965097134216567905859722676267535920690581479263004206100272640569823231634423409012321505888589243934309951412015790615509085135485681992302897318717303462303524420448894030013332539243874946548095516699756485287164859470525226089112182704786284740797804520559311392979732189039854631406371689038867547858093568629770533967344029143213730023891461146122135610735882109904732548030489980799251262298241076326053829298378027410631398355484968717104507433883826107527708943245626897224313384302658531310788359394264096870041476057060256710400173317504273959551119285188972014579168104291252091127281514667495617024212657229960939885704341659356084375363084932179792250330650845402390901955236446125183825708532305698947125857644007197803789768316448849206299750248008846131316035231668340302573421441928394957528478593287040900644869394394485707514912100581798427063167597072544144737346806650852784563681588994153870974267428081615619512952867373644742300929404526343410667621050048744406256152692941672946341899599138804899233851831521337884776168162142095674352525149730990687864218380288915568688448521043792689070674865136707145143119996757558520850082599290684177539752275036672342244332144544065087290800545392302967732579670205478398221209597568643020864079652044593888428440674861728212686626530433419303360089279501346166144477498929891985061876302582527992770208992198604883127373354461982179780303497240608227523526444529440265200878754060019387222111898252517291838385396476508104604070170384673716647836461091598006034061022756494583247694092546841746878339669160752866192007631222004175203701707405294628380200961505654923319433461248546344612292637510897249269162335280180844971843291126684562555402515825198568500725543849758021840369245833829468678054156477143433895847206792697331474107011841171006561286905343838577344078427059892444547875191797739144148211923575689645779555173544647959555818609681191535849237149338134201882242554328776002089784254297479807830925085082010662790833306669031740905250069012353253465798654244554478913827510668123250085453886298003369878526081137327261868429730885813970331461099564199618207612093252933145427706193072309026267457044092165163697164882370175540018582701422822524465297156595255888706845834566210308480139984740594740958852484478163063590477080095255918186796901529149274868348972524452409583785184298574240277539354315487067161783259275392034210839521072943058031160037604075003454814376459203138773898725242220742679481187028287483222483834995676005090241682093400056961697874743072637554272857726182224748587563905128811760191468938824102580491735530166721718472562089442407551649042855763010881490063816635716375660769278281231655271946786636591555106288819910787600963395895244081526846844543102230176425391578064697090743580485614159536817329779435025400117481608594792689599213778299124101444540003875344085170319088681117655033601869411293285862050534585095906207661477806672283897937673570799955442870785472981765793390548314166241744288372390421250353979260523308034001856246891259200523758552356564149398629917072815237660842953296568405043177505451655906963773023933098580860417332732560154939989510046604804141989600274841662957308749954622473112209014718211577224038970938423263629823410168813610957563361585130991306378662676882210808397423670782394861133856092280540287965135938722154793514023450314435156540736475143345571153467382281665097325948376006379463729236088528163562370225183993025597895752048661684513392325460743493424919098403202033254087257744028604442080778836813401051854112935134596507204013493459310462281278393531202966853917557972921037427126485412827696728226473584230122942323967288395021150747041226820392683609256625211639919527425692306276769435753641596441828598330803324866020687023146045842390707577755740953436383788093911830982166743390958142945546873821176382007404459897835127165359582654248836645718818570434389644014466590251481266317128653761015070924387602887812256291100795477165670216163448640527518417172703189237971085371547400776088715260931908370653497503544957952627891309620868698752929588982261151683134664437139716072419129034434557888631510674372863482793540775750953920293301320150818648712155277952250746804721417766129374016480330621727351230590888305252132575415689281464931107818144801812266215423163292452980413836317423372106220661050598886249149244319244042597009875313168664626265003908275209920010068670813796121837858867449843578237336309490232160815994165106755079569116598579454633998452397822149587008632581975363793256271034611681274357756551595546511418009749025774908228012854334328788634622815873375293309496101667535653680147382901566164373741751268646374410008699957252130203801392114728398596422763418320958306025009499341098919824333093979155637119465421363168101537916794875213327005711435229166584321250686047347815982268755287190109110949250385039917282204076780000710365643510923246623847840072425597657283127228507073510316074396457589894495865666685457233872623175872189449365395385687731220803507629976620611224435506630438275366968855025897340643949777023322531997881370081534423444005322979463881140040351940831136083288080997706389127212876586579589984659421499463455930434686804978334876413965530053173058367505302606595733732760530842542330702038884293534764200664031421888016489126064616636246711242451339431201076233863248783670867458050888599933848342303168065796055310105895494192043130293280222081664136356085962869529512497284256126190479570151308821599868026898563167709012324415118390825151121747775256532744375980356353317387302589106847528002948433107388845175511891054106997263398539026228139913309687131116088955381231043355640886372389945060265179686171013730827755104482093980057155189491349870780203086747842315050910472322915221422274532725965541772947223633469278292194382335477449095327294438686591345096984086108312335669669859793010335623622302469234029160171726039620977793816443386427019398951846190047920767192150295587053249091381917859323128331590494417608520008159482944390962754555192884812960026581735562134966545604007524462182811963499919712322839250184129404671670207420165444151511548442309629653301034005637998784735126510610741672300537824780155409631068636087784803753882873800271964656272576767423752913536721624118883500403950157438109183387685961787333463904692045037287501010367865106538457997623255785755053855707357369828479606298294695150028472373633124483706565465852707574702067195946645617611691437878937284278985035408917826392317239332133194378825510782818302985691962130594191997931516860849830610233198074816562131819121256243624651140687995869386248295307070790083973409678544365676290099375718967966820542801493290521584287893972537770094346130269882413615413055293250395557398189011443989175933691415071880252243950102292213756526665150866776443764487229163425845941931196055934567056858437408292922815946316848158425202849208473440916706144819043705606452809772170524647466585484139131087578896958167985609637996911162320331266107567555005217197619928531809357625808882844137092964728743509959412389872159999075751729000860361486759300184842177522394491351610124301654907769028185794976677958166291607952917635824319984263521757032661719346674957567935163146237445117966010038563597925796284260288152148485690701967367520977608471143431868674519324477547935864414909966980439012114946855843518831600480754531414164083941784611718449065194424267326165346352382899812660647921196215668331362398675500049031595269958221890189394897206697674924970866142841163173754110451883225064066665956325969092552091022181413140705470446386944601706602201678315393989017882757499639337471054474136511861610251083182928951476565172241617719314439532158926212695891386940338842745615960228010068137218292212367424145611457845479631274071174723111241150588284787251233857715095107223902013290041738844957119741022741860153670429529269416915372681387322217353067376501351595112476874307448799514162205497277437511265923514230498233223881746530789028024264364272655805603405673628993818517493179708714249195320031944691042508671675532740344108184574485054099441593843428687198895352147185378117489536730463234374127052589934025450741285073326199253986756483915082215155694039771012667714589887139055962738921907460762906198005122469525786194153095479002735166909477719645202793547200715650178732878679904739790854656111496747661325834360815321799272414030200489171173660604374981566046814393501698389271765849316533387895896082706219272918836545771069069790402846160675161203329142270881270291379439689981334009999197453433513751809861806687209968259050902289982180005697973948343386705905408705806027740683475834941508213679627203019584296621152969990689485541277612285488888517710549912375352024092620685780515882918811327226686180083622453524496459620415500161475401249341144689250937259432996357943940490734918416597162672711208507423096603441231104213180136048718134013121134572107389574558581368193273334182578377087271008894470886452065805521244416288303782892182815138531289141343730844122001428468107300573878173638050407083868932665435434368676403084281632552161710196485347188090927633417103279681493586476708092637677342775107099554475995323838537904149468924287984146265414777404070853855508620392250664980179351736559389416178813405212469192352011042717193438734496443117826469761971739377398032799525422863757163404252554844579170127504780023525029058659699795840700567644569185964791263963020173280867729625286626091771468406076555325800155325215037289562627001876337268597264280890934729657393206673571670864412021086884533024725841912202535655694657822787503959005980935884006625097864796564789359779326407821892900474421873386428481453703838605615150418869834124612969864793196018832969886072983380458701769800935352382965399078418621585482941543222944646733761717608217403366975730102188653894907299078279447244614139122871780545942209523247645264235045693599323110649586115791837631061482197637572090892816297521823666486424315460941183251207045541135765046529489708023775891973321361980055201349273590056550956957382697493061951772488558403369750090532921478429298110542568988049166243458671146244091480773102101784961891406469719189790646282933040490973763533274906845632105444900363743205200065193032429861858481511362862219242198808576082839145956942027401179413307056726176283307210434808810056062506371454108341863497393103568528751777180206479783469280719916018433565694296014912239359018689775615354655273255758733174470166319866543508506386287793369984100343049191087499380476943437301673081306440337390120011675800572799764993318131008638541280914892065911931332173279344163424748556972042259037136616342183813303399500129475419707857848828736518661401858158838426473737323327941449641895825158187153671063611304431252173931787028028448582241093367273806367214056839812882351515700435946814786461205307746644240842639839643932260080075760572825421135733431033163170476283491309831524778124910191963058670531158975409202430074547630172953268280967972216800280579056859478018118500957961392475431098174587516323723846676063260158490847698361755314236864227916161565243721419194971505401526229806364820297282219101851199908110973473012728386911278551213080914882744031376875251049957447566679369946532772030990195611141641980191267074904618703944652550610926840844716264039044948706329816907460743882692070562041483328882454088369872130477481084883227953269319628771014469034957439154183524291855784853184251371520503458654853431110074733859872140967979751274191636975709496011689427803516431707990644219859166429868844592516379698328178647787988574779514240370167193138592901541615705898320952765731143075685939166879256857366844598949702897346809123248732903547837184838897217337105040886894185986947555324408474146339665618866372954978372987257352817639580987385303980023744170921827873142452271711335072421250974851320141281399725515516231217836367687878244892992772056468860255711587345437127663777074728663273705452866460062435180492528289942270992308016039498604834017414819250839961555798914385684995698394054856086354300888212757437053664219956376361107899287175712074600582516718527656030352936584301813762460739630512640351034947325213331843888683589606463078245290436629848569951849294716453826256319647677412933226895017426224972269164738799075448088843835624536735313032377806200265049296131202874830439702679096536127380267722371493075890365536797534608020213694242436151826606015966879012808923361528201888605020903103890687113754707461150654930512955259475830695661675677027255676975980259587222440474123147818623695618339278780475149242895391415776938908821246798014061153553416325009098982930611915610867284275281358734286864786336675672263113811233672797230465827579912529818171273651541162676639979975684704321363547758771819247278311852515177940808381554659971225497341722545962082858828862589234154348387856841651532177459398215499881438743217993147418172478220510663753137408179070496744992728327592401796157427293409119055240378259218444293565256377450124219526275300163396567755957693396071333943705119654043191991232826023614075780997583266862733623329605721319338238087102515931958559872270492312440056869397667637311121330811898059583233315071191765655954982927160093492399024545964154123805591365894476256486469218665980450486013971555137569235324593777348020165885130823030422281014095427231968575761227261377323107593861708763833578640984790497436427490013619415250537721679196504164165456797921833643428985354325101175945635721027058122631224336759633581790446090981699012091415505346616859993201819955250553624853152524943545108800478585667691600644323540599554067610853804694777168566506072880469500062852183893183422899059648702745210231371862365135796531213152269363909598059703897272877890445778303625980073089366014096401135402464242226867222910648420864851047208125093078527455189315884443548923192154457220442158059384411797595089408761616911497113435445054033506277781560364243375019210151218108105185247981997592367479216381252271106829005716463617084354511011387517156963386413733290632050415528142582851371171847664960116141657486051418202711663622978137411404907483759008731420159983600932707647801872794208764655093022032063898314448564696332793218440428692505556061868479675859055398981820942916264041079715849117501833931523224189134605858461289260544691166451523846195565765907819915767848307727166890131571922464091993978042060521895965694584319166850858693715727680597666717894414011010839157291715009374697414841741009316793417206447840096735739234139938654897584274575304180831109335173923511992909891058409397180057464660264407750855556482785397651486164510398052528452931616429178489601682297716826480499872666626648016507949555003790135927817820926606280679529292181157924358510104309716289777078673837332816250119933723122978583124030781735188003036014311544883572193962043565997811450796591672981404930625322648174969735720326540059467168054369714750441934543720606669967003961196343956495006441979089468756262968326075249832485561992239817656043809945236915933136998754753911301854584883426309094740892868639946976569501798188926634140059491446060736890871936351991752119494939239805331596404649552854578991799617760553148995475194921817800054268950872105089387933320517904397970324769110765390010799137423924090888983833861291147411454314479091113830987435269779721221985821860358386083946983663996657646738343731731545537535438542967336587365825608480257067935891804487006322332496287625603999376244618782989520844840737546245063853039035338908732985466906513055420259980927745511959520413771614187073291996246449801012696574107406896606333090558248111964074664832869324555426924719695402214825796756329465806004732200075116623165602236443138613823470495602226202690034382685573264919453023665208013935707255728305144065958770087228688393939673472939600724139418665181769254653394034917272344980764782809056985160583381053632857458432919645773273059174259950151554541759074455259436166994066732129973384416281598281023618138001218191957421524485938457607350919719940172335774678803094212933444032526459379820754000878933228096669416465328426235164320930009166346500976568979392446936152988769682214622966157153479782783067758573144988424714651926805306432854508689241185125487860441098280109358465039063471564150774402277392300061775403941705735216534333006539306314885659615038631432466738554502453312892191961549555692152504658679415050365451682305323468885714561768925465920824990619863313885535686679713275851125978569516411303836263187238856249291158586251508967665344692399145576175592168194300784972569414443305396281894561755640388834885891873600724241235938851236172453405706919541011638136945454569650762508551747826784719051346271428672190220752966269600179384552248583430094682564656237373928665747713206843083500131781412623093209355950416385425138955608340705530316484936726858512265901407753355354128306522753452390689701207201904753616893512129040792633760678535836071482551717915808586402051491221626165982917201331582000967181220621732938665118764902337429993334679855279460147042181176086710371119958779795200185807311747324230979270616049465774975601072617410746335426750916105870369052787667931379829064904366355329448546377177438548520782528241557664041479353431900576862446658140394940017393053333116419022595501219864722599662491115914746233111473890359773493127624947407395348760947781047589300099126810909858720967067223222176337809195925920337625391283143130298382387566996284070964640423881381033773631829154173094178538069681312786042596969866314670335103741581156183260804486984845669590717290826899903449639263251678485139012929563636054685009925763571157680894754600005553897948378880698272336671615482191845508591472299967642284895237827958045045407618774517336017578968189599252968426966087952697870495930030770757733410236420390472317830030209577626930408342236482511210160779015017976367852573897238765436601749799797694661838088791229219395621466028865176931750693786639079003083018008506466490278230076762394979959457460428664254398050276921652763319402115881819462125831981613935576614595145352393009285886601963412082555229060388907245773184626994604941294439348954543448092256305013772456587351247801428675037043066024697973318683141341819829001153111203993254741540350729653295542726209491463802755290171392540803955837246228769679931312267008675442316502254482031170185197083031155771655835279177228043752254006450054564579571827634493754050696148218777381918553490141731308372678420615721540842961402657021594450899570751440053300492507242380165348694931523162415667604522575802830780070564723236626753027832852935321717854769117106201927455567399823602433232092174253088815464215405127227021741292808519939178824625845411317202843998876785680937273183924747772892601748289211784210058137137059624905022637013592660670991991731994517020114019753545278023892441207333475671034885037529983781513804755337335156484190369444323718160428936087280509797285071136119422106851346364001470620508349294262609488100014319988969879658909894344421207861680188050647741403138796374897202712356780770909418425944063743343977868335700810668020069015736430560387015351376876774491340251041605182727745714844920618931556749577787727737639230693977233998769934120635858283508297026709790032025666118269083854859466123927295800037891808074143097466830175955580619213378204809416158210953374641598653891352267146257267967721723258024027354421980740466334435449800388761820470359603169962985898149235221898839168928329931308561447346414230853874545982843789433649380869403646291567596776329004265824726800186232709716541359790161316950628741491925715184567583966271678059422953414922131908279419445842158478665309697734012103052842992871619331800218715752622910235038921202054952495888551782604850103228171640687348289421218278309525821213694003147325152574361216895903497366477288185317258439839043970836643097563926873640901375443834852018538222682931185950954866818926892654817017519615580981408998814194901240255416933583126673930514296906287442602412700986568591826053965688572561552959494866463261078805296783865253828737093177997064797147296277774856369054857481476464465147319381748701330758872677246548685439419031554048602709708168189243132093053850543265781817022902600722358847186724648951183877177274747281864987831854104540951261641592850775459674740976612742816310245992040106796485903453536778104513682340578920426316931610794106032228391697311664553768234560792891346140482194669241631523418126196061458283761025129122035014657148141271062265601489026584338832660583265525166235207135413947784203464651718596682116104098590463074835423104445495607631712181932028350276402873237478228826148745020450072565681181331320473772038409713124283870272296016565939511800718697396946108578435252639570693523846304000587165016285381189007943853578576564918652775782216609640690033380251302871969029281950593159489335050121175946811218280198018990318268500181697244698501978044037763092766001887734339879946131142920449578179104039392078733789680104436811173558290078201671958592854507110565441740772149390603569331298832037969465311333452618305433228979124320242403482192095658986692170154582244701639428389349655736304755317887709849495388507367394457347565700850954976707512654744343642976551773249533092308719035562538183965329336202866798486593828161806304057798639800683192641544757285831488871266071550965388479060149695894187476012151222940122785110602149917115337473369998517683318046565653999259929579449142940779006711145125870736087984643576320268351797157065043459051561190538249045035290990126298968454165410315912947738222134683977589520652192521168236137635847440126868289247243147474659837824613513671174534081417601654733940918004850193572817364081357333617571123487395880121812935919884775797039115147231573729899202652892835948789312451668967682746123589661143992219029141252669317802144212127304340725949649702300337564002965817829517315653515484295785166901307944265165192330937219109547176188728698571738039295448978717536640882050983426654881656453828472097158520194134411319925591911771717704197108826192514001547019532239861882672399131949306679072734956928641029616468189958570109391018775283304532495829686179262437061777728660149261577646951530491801525961905967179243953247366727823124331114796373707264034018250539033484231599846688297233905409205218746299931983686354065278978035513721249233967784499972334527444580294721041414190579162001511072150837106529153450105999767950733246999304972492673253574092164052269370268614998564837279260065970700124259620852971592019300720825424160870986286751186391585938050837683951800562390089752089773333062823235777163208862339640041785612692808606922193845770867668251822572881346393751920227305472125207970732470092285692859106295836158224726484309589096853412323245528834186582568283842429207474011475697383104683808890338589530474834373911853038760865763488162229190807480782033948930430464836318083369774368507896473895633602579563851806512323977935086675281757389751169279186371842997265205710371921978683182292232088299722877937911989170896625393555305042474951937560162515711966747625330700859979620680147352176382284988085625973336634481510573250460650332693704581054156812081624088119695777999241818188158548460555015396789523584183105269046233088400902032018807710017658596124844859656232516388997134865801063547031009183037094615550663567576356855915949021192255914633754832067301295469374766367117960105508676221439250839908436579087550507357625168965109425580645537325779764575467808895631710210090616779364539621820296338699162622395387671601016116550907670164147907719407173232401249512897877079923133984202703153985969755239345665375237805249523428496564840347338465741607283876677479750152048987349904141419995197957025674889367164525153759546252646331332258730364128077388245963842831420702477627736599347574058395584936430848240483137446572054315302418116622298335545374023701201457820218404755776178726267622314473236864385475998046244263232825290749836860467855614336071638712227426909687096490971364501412291564690558129775287947953937034349070554237142231279558812957075916573193882544025401693563166379900392466838325951929472482486683000553459708005745619491130327099850634597313852758459015476535598537815810724352014360900131015627598829923399838026811897681419925061800828521860631215152457132997327152947815876334450786993060937304670941531839459966779951571933407616294896036935772862008925588446062000102702917766914717877287526420108598265339789713315674568090167208078047733313893184563056733668086531937850551055982594665548199957902500180150720069946808628525149002088079027766993216592240740811213294066604205442160794852547945532687878585181242327026170090147913159433910166292152365907411729758846641633150229800414333474930036859793772770442443193941512737721538163008888388662193499384059090688890963366250439056866751316542464554310311196077857976826457716917764482624748239903443841669773035374747846287047409437747053936350102368916024031334347860437836653969376935321234745742858412789295784117517278282476641007176787902857197750932378770048843863352866828736419144099305426749325337570066726425040866366035061760784787333030429357348322157216772866813818180444752471695850729005680822695708670380063579850649714836957435100022240170044618027672605033819633503316115596837790123650254536225329996670067070912053490799378412779703358088286214973673676029659031384611558292333403829922813376511194910717720560243268355016418589071109493910445005653359790834101450712335924381202401913590311622128552935917694697864553148521216726115887179912304936908039154074626915989751933762546817987951762653179674779096599862088645569652309048360847281692517171090170784140117757501482401046277925135013202528386776520727821010867021955190240966506455063573816002966436716710916919490486209506441602709409173020739523068042466148924134921925046173411738320105891185425369605012543013344802281549909049305072953825045266930920479197183540368932034931691323078986037001048828462631044703609969078705430471682187134799421413443745193271786273293261933823943768252885268826907296105062482772868237854039425368755109648122266833262412979902468254152226144044689086513479410938012412348152630036861528095381584097664670036644941833013017922011362751021739146648008736763025885980534985751715830837952016634279963312077048649700162092438900199870712852095155246060536009264953898051953143187772331001875352157369544951477376105970760501827884916255723720255465830962770392888839241671283509690107651871309584469912686759974731489347021357556585071322919437520262025179901430996988992886247954232338997019878429387975177785685400625576433931656395761984841121752836668325391852267748756673658769261967194710096034292712238841196872274437944540217162589413840632298826438950527635695292736387110744053400330592797302707774724365945130546669590258684081854553041511008630035388437979057485222358451019562731440820076046280807874159823805195486312800365354044675428916506135820862109032556798476292888980299263727470878903585903958495461992285986178492640234801801757705531417094185875536688219083284856284940673232811121351385241516489999598504186509953360439754274212743955257676041074689256598075418830236482035039655811851639546407038764382124583223149522190271206331083689748056400913221605322508115917631746415946207635581526936858969291741764180530176385532135289590052758038762365088608174185018197778582601410230110244082558631218316740359455449318145850932466385940347196877383143828073470560622686130055158565066204296329473742805972963202973214085489776766675272461384368271881090581599055529611437511879274854625455159278214677757104760911052007240478750836876911705784215691795349450080604254758116756855582105469012753458694753489718463493957144519210378251861095590252105758744187668569793025093705599770150815380356398417494263918611735820368580132838794746149433335538479846109189716025546791626075986564000946057800970345335933352658440984716386878735256537542610761118415031631274661821111642836926699485652252011388174462154560257297520845613738445195578104621075701171023879449176358619070970130609527587520412738105483252099626178024551565026113070198836842866205504048990212883274913439563823554633862496757119189364568619043437031119528626140866745851702866640610338782597624708729758988081867624025785532163483607844388717323172111307701998000564033773939250437652786958513941166352420686806153121194638234561252514753679872866421954424729757353039867776119277402229100949584727091633335150332678606597735703862226983496067114013064200596322218846978605043163725152436715346098957172856727426390803734757593672793558985561135884831373704730764170154773450146948716249768720426808900617045699787230412058910799724333662586334234700309872148758262794326127961456047607271003838707838605809560857857992131030046415496750800007300791409242118447127525119091767588375410878588186923934463876683469676693608382303437966673293086818319906118636972386529450035448244872012799314538033929158095584218702291846868247982979498764469185209055584660405750188372555031150577222902121950597576690446216519153588204290025340042866175302807160929316360645289536979264097830486759771245276305897244706834175479239171802625199119752219494734361270538494448712500393796234364441406607345007459008326268653369804380948177527384871860614097721488496733622716825438423094276900864649069069926483325370258432770817458721855509113516989789569981742971633205229217565908583388367936374104610740195290516506848063275596382468955337255587743627433309620699245966000699554637797712486635918641359268078758367908915926176950774268210302145590945133560921752302944714723260135368895190954622492497898726036122822597136670510305687705412490832756107216093161975665797657236174800080023092596714492519926822720762074968483961506348174533724469354743177427507420560257723908540006745224420236199480420956498168145688458858680830433182116415149227044901518464610460141037533649224972470447504214783484175032390355420399583779061705686814334555632925752758947881978961825424980453728869161077705337560548593358638870590665538869149588542735897974453280644997787616478738822101092541544573325552665697087500830310115883835451528189382206206452006358462380272603588428914463761910687765277529365887769147190450685302111344364180302516067681486919159986142644350391958184470924239462251967186030851091022523415212126627879760150345877539779131990168376075900210951321614895027641861868450435624026818395320288113429112059983071766237944949392889692621885406838813424911004044641660428485121170295418203710443503839667161031510170674085921838367147444002299174223634192182496163601055410984619707266219218247307448046909164410888444490600783720204346376878567089030562081482077450373399955762564709955990960731903704799713437929491470897077464198601555903465122233363589693023907769457527597639887019056793101002278285981277356893308461955645175052893031991895297512060299714488784803825405406367102477485202885506587709853487496958910003469257289544438947589899056606282895149665926110233815221665964016482742342871125660720678189508196353104563704014708628499750705110312005531688348426831016626535319384842708603523187679248565178588259189516722429070245673588686626633840181243437614546941187769416941093176227417941268964559490756209242226700402762404139973694400932276312940721576022427701890777271013430442400618016731296364063595245495632957117387165127596223463733879541279766002593170845933595734838761389542605518705233121942756682958810474266712340170688861671522553463648929015934454627456679925564876995396995698032420208033773616375256759396847951199047513970402774728376334362865831249731531797216007992865808443314356437351942665225654032821167795877708642480268185048578349884805450026008987343835265163866963376064871714778032510950574472130880260591993855285581750621276628996332852135252611128831207503575809257305687127368391390750844428542885601958740048192481127157438977975885009177190673817177855001820379063869482761493149255686004032630458332778693703706881324334908850108473906302770081837596898157786491064024493622494974202054156136149617879127260355389095686079459605070525472215588686590912906560307306865448723934110830578900631614426504434450827890378007847278143292363977880661415991227358709775220176953991965530651855533672657291108080640419550948967770898595548741613421356896231022961022390485367790100583549633541658895795335056764169475745608716664659292819596383420997317928094137077256925172979690960469270392409051401358719654271333529021215820416726243644012941518550252204347935773188234051315548005861642387045574365643885973483595704149834604788622983318816229454122151076309042908696827783531215787704479899826716872878988618712613487367274223541662639925856140710913537405582670844805025269362831989714207173346014800397847209636433567279091519195662002961533126319016678855792855894719387303244270135593039741317718792368815779669076644475808638386952552775478977301594287459244977555612017437370491156511458454634703170258706793580138640364816709282043144705223955517926292185989498444324456353493053703193257207458646903573501290369319364686030414910784733280675613678830099708719691995118741759280309385472738641043781638361103985397088967626735504462102099430777274129887420782494733438842375410951475190412994385071069465144240934703162369027277289961117615246266166745269103504876371129734193952536759448822247779737776127904762321539780261237078772372491497337302686673340156096708142251353511361469854510655935361528644300365346301161085697160110289007475122723875204923808151384034803756334284591629489225406177861318492960443981937513380563150865084622279624404060132065996716066200483674752006392056855271292363540801175837931896138404357556019492770139673357669478977331729196535384438221607346955949626777039680926298299432441585582202007957274861640141472285259997460072935960157526399287540183585967038878560833080384835525666387709470021911860221848809406041431101233640931604570721857013509493568150304992352320477598277301113557908319476096332674904144485446095332231548385052270625890111111907433936039322237108459897661253435270143964871761284126986892689143863031202531420595544140869470506866534007063045277632882282882102175414200070721289887258655053414441580930704627717549935767887206720856820535296498597342824869316184062684508027558749469165389370475977244607826917054488063359419876018425489082252727545354465407349548471940939798838395464151077649462823353203365590178117228539184386398571125305772143485030542456481494731989578109622389007469475993563068915965723709301739692124268952403379740131577671490006933487876888326217263468279005412920938055892529803424696734883037938843000768207531502612049910524344536182305880407585396851079648967243787510681621353385508541776413525538395557686423120519933655072087187573101679416413402741333021942986831700220874382499627595149493374873980625444403828055717515555794832268273602360141468416026810094969965778927110812649772340703388831153776011146719017352584760622740200411052750069516847910071065265635479033314649364015473260782085898426980752679541330672981812475920235521669802839393237780653344667151398404400438089468476073817986807574856011514822174499355936731490532929083890567346575819095401375310971496256992187071747187392910869792506733495892701691018039477545157398868602003425868870621267805697218823821611574352466733587710787592652070979412501282826171630103432817307007451874187142783068172291430888653531632077152072099638448499136324343516180017973506152067228169055478196872591961411686527368066551924121266645239210713506322005620938197614322560125440822402002631033848594470879761250732732107696654697591653032764012315749525785715945203676894607086155878788770819023703749361425772850524164710874226097865259095733030258489830518538848810960791434406661745727652752806527936823476050014419777400675557593031468090278562625424024209521315209425620208481917962879130166008863795238506940528194852065153894754826843728462599474008376701890670171468989469855222602146597426848024118948135904668870790601309083511222983866738416842286067350014093723836751240024513026503353741104090763926782391202904909263243097223995537731465316104397028005835209010886557575627511146064513510034069802005365844578837889566081421688442955022060387329520746132642331489789093900993497042526194268437888378326279744982948547030543725918060114452750176755511164698921014442707416975181598267260388044294576621915851126984480520972150688948966562648103904192286112670734731371299756273676364086792849876564855193923670114223071001567874458087299283048075928294740080692826985857448418320085260950054044312198731212736080957336674585008525126933990970932609357956161296214929107812372169385938761787471475102421928808053952864622941162692581550822244443017198705935039442534362421250426130784266452186004544302118511977227721158919238478090266751925074611248325881784922924368656015915305337344918304359308586920492864227914767037076815421692638535271085348997763015715098151948296185750139645633379812195681644913723978358820111387078835979822841097252869173605182966046538699835385171090562278506329750326096226955041716621976427664770899448303364999805678277196617576276425301174338109144861055737580777236858614681216675576712957190672684074244848459946008719305562291711528419306559646663363105514869708809698498875238835748968286196898673433164938405861920190382627396631311042924368085713046049265166812210421725644495800964334070757324003758018517967126043329988936542152420221093533358085227355675348988963065962502791269162096701786589928674638371276444730916311212986271214730328145097990330130864228190253705436589185606838718850151984810248851505118435241919352491183914267895860457121220396319807896463511525909296680027084575274676489863666338872759527266946394021274619260986203338011650712039741442196630065129155870237449389024735882270632167134376223155773022922023049553981081696902286488543117576167070785051106067838316943841000659135074599384612443771442991897344794632061347939351331192027992548177994784282646894706987379937593537209830740062274350696235687695099570826045274481411930336737594338379464226398977714516049795245889512221922763106578105016102626577247111953117506176057396498425775474543876945016579512798165169966663262794226670438893533477257105716933206050424024857286238711744781997940325990279578168656039637052045689335364864300401523271186671054390866493208002612967389105819225354779939876895782864866804431420674232510922812995582261350734361053023277862661499455931102345886427307213890067326247916685119375356124005547934672049433882055616461535443968644612381691688611662475072195107752769649328550324327964241791767059312624987362647234849725326571695145657412121275356160425815479783329831118643985253388481606717280020823054221847458538500137526827879961299645144105207899528242824329220806369529134565115598080305427940019636271191764657845919571255906347774131630983926148857077951165005375997151165966654870332767834732637812034445889170764928032256219942823896446555729380341760255109939653374473156739077361774236036598827592816542524218681914475417411536669541220859417266936743740775085708424675311696562570007902468760464298298124292547998756646211948122191565150692608418538807308618122990216822078093650352468077040491326708117654568797149846966865354274740243845416649839934588193135531655033458327662597280665228069514783731511541465348829902981483677495757202317148600778948827716148801806676536974927648973798848096375543282879325996170376722019659496950517588029467670593590406222815654697577272960568092404088983093119103878826037093360850966782033103116379531289858485085864342823828155080125362085355254364183297445838994566893803576266176198841634970682616040249745487835837003032690081201914441703394546573815297737569411997977970007543557709666175134511131194920368365649434842616343924324237590772066041802983591703751289735532650208940954046599989140041906129749733579110530801658247365771667919247837323501147385887845783513780246902136748720199179643826659953712031487237976386271990205979818524989493881337460960164683056769796319855530015127522953606494749027566520229196509279547258512929859943763649018465081917231957332266524261644498538510559723763021187651435499955938422255691934059951463835133979569128306755458194965760489521888782182736805129365180441276663489248049082268724185251926415184426739369159223977242559792537476494039258721805505969005882543758203831168473928725787091338340833193479701132491240877681198577343191164456946088106379881506227955646602527791042824518477041956440837674570054393163613945382678045024183678851188965106409552125067777237507480262394328735131883876937414972149956818907042972140231623226190429074831009530717697100835710152705516345669893208922842150050625261927076651012548405088443845146114299598313277075472258531603312395868345645321036097395461219637928317685423075202609879476939100761079933537372426200533024701773484242348479605159865135369275842474190736521600573469520824659469575560458723899801818765912465711289922662225242021749140323923991582458092927421478685559167936557906087060230204241996330168217184908468389345304894551025721632379150789213140501242337358612782974097344356714293788720770686724574006257086025334535815222694164112598893860742126830130105515538525923178046049444963456824501419035583144071151050389726019080537817646659152627363725354883915556750391408522201880507598407249518086289833624759473651954621629165197450120451295507882396977263151650794504188114145057371649511258762751926888304783340328595200333277291955400424904112840376832597040628547902355163601902292673694191923481482526154069999134376161157979791856904935067173894608446995525067863654843752782194111348761629593875620984413227995972039700031307130344793582188912328969729726598276223520663719498199506044538352180672670159203634501230289331897986004224434062898480043849808797620890003657212119574040474592428048910524728018938984243167178715744224320268523263628961891519188818880070853874358748548576875173587799169324783048403802278820112477394684332503953188520124318367814826602317874817725171571258450491829063196914362427128054991397352866286246144657898189636225811844945853618702201010669057151817038704308719557031079833171039181225282235894933355495283756471963675695761240433247377900647542469666731128109412100839196600366935046806367038883247408057035161724845234102169732401799850099953654799495202507662033928228504964407234372819872864882612492531743578689347870922396839372902330608609361051156927541125442933228485426031898649352257416023666292997213300475399528710314500202278898644524086746806595676763766105249952935709997005526394439180948780262368630456109568973337433188442837548755514108266122833971432929245059424228087482781887793326630368989493246071069585594734799064179919371410580192049778773299862489380281629340323591110299879408708585954998835661675439399331709717378989415594232002964743916067647050678056989056690800594233779640693401000111718613670180824320320347224138817593731481746633968573365046003004372308263270178654173060951128224792833722407884381194742026850609552937945550975509287799966053649513366527913005364109066109927997608738951634683605756422792108413863578481371972483144172057161621818705281204731421520679425914210707719490243062319287827798817793614928750003312231159367894555765538075497090464234468093926811872835358798127862379511934653133603727033723089239741092734710067489315283884403549643693548211299223082184682238887150550166692555510419594154623045519090887361659796934356598636291392399259464460616400642802677118839075383269624543369886043526084264421099551947120119933799186196656620801266470208004770021824981550820180353707698526056738605685458578187649026889291126866327568663958554594164422073959043352712202464496307831729931549333467292022789187172543162514318599504913576156204549640542488010986932323474963705497563948737944065640450026240395659555330354455604477375501718807700775621074913464143395709955435144940522341699889992123210750407829453622420021697149369992719263498975733822716735674336746200372331832306284811402407644099169103705811957468344783971794189748638799969345851329643397620723342261396110942389883256872713532807614307435398225472254827109645507338750789049586830224336788665198774639794681811811526314896695063820552088744355414658931777057686055078154831062451328659665330562674790898129749770235363607771146592254478445088021704485841406784927212287935506143217425270851124816871770224428463336987441833440388518589558080572528151476968431793763434810879591538458142094401958467928719163270022997393394100258944427098349559475475139242803977905731822986953572096732067495550347877953723341749219311152057953152905129603278264580508914484193267151671485735196248727922511719327185588015927710908559574388270599569523409988092191977967959961199161791742559462161647196044897485306563145260804875059900104767809996878153340473277413581226853728400691969681347921969087871872750308454694708253230157679384172124357313376399538042555890260590132931622223021404874777212345489118874306907678309750437621548367015878839521473883913870739270195045780616730401842256410858993331417963546873278459784086548784663221823894839231743762720167605796419986349239783806886196514128055994135908997103988067127069902746606161827369345900415180810829017018861653502427765227512424873424531909853117472969385843546505841199428808550218040557292343370316999004712179903804988951857106721132728214736481944337645006263054672309463526328835882499164927326393384751860064476645545672492656205221552261044448527661728200905028431969070317918655610791605832286851581047261165125108192022701110192442436692737285367699448214151641269130677915982177986103574873823647803333375839476262322228651431635518221856017095785552153900889021053948943732134415044976652984693534992209680612219758266049307644580257899977955209554565170184500484320970783960969279580688430747157883145621094703736261930600060865022707260809852449699313661614230396648029599827651514262389905721898965746616201418345431727672476173323652340842084673442803866517829402771137457314407085185871791684255338563302226827067508370261611203454373868269527311225747467465531492857142018043949488153469472603730915920108693343557175792321094679135442448427468725915828969001101623374664748262165038391188688971408164613958464249103602824570392975248963878651163302754525591672436431128812935162564713295507068132525665506467003029738928167730898531841164633551251408290862781518417929193249352133945178690461065009630253780642581325424829996982378122375933898602770769973314834152880040461902310652187755875894077178957996553757993893401751046478663829275525414487578907986124254713148085600715899611914692096054983429180143252272499023156945600234470621793142888634376475271888167665451998242760694805846200871105823783532205024445988591442680068511777706056848499435641223681153992426097999063354765131345794543649578046353962424096556901754317854469890833323930267887667459187767018422469872297087680064058483571930726522530975689690469776792615990836611956890994239552916570823694952944038341257752619974980539017312753762272051298631720644718742754202436244924665862659231277688070016704953751139766871844246531193841325621303621635629598305618680121988504506239751669100729657477189324202408021497396033574958216430521835712363808183090330761585492301399322680155461854588884982639781641789909673433518727426287430990151328413697178705884149845219555917222923591025358068981725657668024719223583066274308003942204573479036834172692425306678333145019374995730635480651422154556730256090386989574958404516671056664377422943927994041149105727775656481865397011756294704241358814336026965524792915790423483621537068292213720601632639964391648248804156227310891203987321403452791290857805565296641811136895635089317702640222993602560238029851854306299526679665146677406760865618826947742774939629052867388088434035204529156326403688110480173600018655010664644107325380296556468869266381266577536340506784905851631850223139566374128652328717115760353973654114860616633859181364498450456237187168835405649727830401203864847438705032939426492884787760957646109095103009657521305718236150976638471052667035653705058397324195167910942717053367860633402201546993202589245572880456019912926371061643163716264102548466768720850327036015891239269021064162467137380917683607334934781885624604014143332082466835739955577086087253538901408324073752793577407106862161790078995642514713391737556840014194137980617656906443589300241231075695242112276137695133311349537227164898801703590458988053229747025578841033027008343070169792207558499098886548144285359002877136938463187099336496212334869465094979708599484233198304618746491015563226759269603198540344396861373873057750108662309968108118283985565540462426068975201082848431860504405222668112120518507595885414946055041864512786938320507217919252884119808834234129651771833744135106494555088240120278119008889211620947971829955806138155844644757743819163129904881246701469506531844518324602179629458210787373739542349334501038242005386599706369560726444115013073342463777129415127755299086418500498844279319398900926737640926482528344932284549320643470906615740726439337561294477383212198635560480666254085449830125079241407449171748907436624717028423657963272623868987307034817679954614293426792642941428025022720805127744529549988342381144513555088489659340266403883212149477744014672559744854196732545415385372867698375133133801247733593663242803327741689944448083975520022578403985261406446495428214602854648289484812002182037383537814182484241692784828058446181990684358190604496738429606415892523312662135975622106690638850661217782862875237720540048921095036304215977125607095951967595800764589218977541068840719944402023363976694106845302168151420615995977667732153366335046186090551268716285646037215332342749260411051001562534447445559691967383072351938257471186874032920110063841426030383227559985651971304670679947081990418686360660239524669059914903507010738881167967857989676062187661214891041435112000430207509402027367969440929830495256182001205659865435413624863510466719416828840548926528406357255776545659840175413696823498855223892947319561401240115056327747998999510846120601156790825606380028159312095796723765041089570135225666902438516239208780321973025909201575081286066406083547080601578503838206472860148831923044595120214774188231701136619126067296385541307028164003831288208010535149953606286367673278459370895597955927996664761971330095247447322716143572878892704689349942115690473924098424331545979528607752141263168732546175537294365400084845977905680437204262361553164399285130850973012536559863301604574426857201705138851036203086832201427522762902460509633542500959368128988233987823913721884808981716978928056438812404376031156481845705734572221667059074211346469874069212883673295977512497403673302064850684722186776705715276253875491599939842108114380272294632111880423813602629991356038727382428740074809160992090006048892371519588943902529638774632362961828046182489246933839005936409515413162824394832643358079572475004644797561582953231990898519386838912990887669196642170414971981598622164666082110371812661680557122983644783244961120840111957432377588443681581556752905953809042115612668424494443937346761602977795296208772989806587990259310332167432886016261278894015415408998364497687790393068669857245938318203555478448971358468681330712004400805613313752327105067573308890100563671236101505778748709738171890994420159787555808452046715857814575340546938185114047897507736746887017881577340251074568001736131525837127129725536653101664072812341143989400458827617806207191388151698720008409157069411438190348239940124309593077515620219824524737388581953319638354446802967405157539380369828534561552262555725907831026456105328056461661896603319928935978963375273629453127224396986579130786080525579557742753020385584033696105825612281991824691759535618471751373551914090055002989732072131152019647218668407337261508313234183342809473595234289142626749439914706006811459788763478832733920666313027371110866873675878810430625635187552954024236808780010147528311497331376873935616523977924336790717878297796577069496869929542607595446136699968393477056511641532257731669020954097080476253233604349620619273084609217630844779623015047966588822808573319546083536036806812774143290694525961778194289549136874287991968859854671001608829623903981375924550422932611647729938965036454988182226538986706173908937157166820657467727077451602691565246048171047210349884324279313931371928480781835378801704037407492058506634264067479960257271039891801937317109112192554782409523899309087023765706808507724507234131268420916158594812688714784627936509418834993226615955335288947715809991506141113170233850677027019332408876175762554458724750746141013546379033225465669627812623508177980885994925706024585493670235500546686756419380575546643307847434728537104530807788963366110104939778106545277482495551283329154206833994570157598699385370378608307682876989928815512725070910602293140952369228071943472067741687713572041397977810586258853373941020724389758001708419751278655349282775677647968780881038606341945100798918417163576619549779974862850802295714991591773681072388940287910959390117160269367852486605150338315547180058356933176513467700138071447381512019796032192152257927112037293398803322265973712019170348816545001290203418429498751969907197930591512674502725824013753208000306624491585724866805467942664805281826545709854735699621233860190734890479851772383580708187828412160069311015664081961173319354836193084137741484782338828873113699802124686366885653205188397407527350139270867215370938381315150251236357279532239806319560229873745995693434644815861264343953939633951472088631915182388879024819805003085342830110904058141292980871678257015253792893530171230486254613327975384611260556584671426172829324666869593872262516761201282469128336070872944522400933322351982192630388366255306497868227771888277267100182085885887100468747009242526566752860875919543709456517747641454618065681941398296264851494236733744483417827507338677284097205450266295073884363508886569669267354447121981174414503061933777199537941685476073787368401133109602940576960499547435076619375944674925028071616089203967475068161795742770460789030467109516792806021203979699750559633889459773504541605004881718601033501559547846515030539545882520791836935037664073641052289772936375988138383861245317645864911170408907498087697867053747801580103594785553887267843458091975617159863372302969085036813461623381964007154543297202160529419804304741678685719853753106827993135778043900554112654295416752751823548536120340487177762147904875562570952879840167396379727147001126760293508986826207438626058386164182106307649981641851691938761875343379434232102599680813054325044802065388950713827362126923717415712061005409576596279800284549843368013195971962608452876158002091010344063744252375125802063674648554788137636763737698303785923473331737194635667220435040690623810583307569183706079087361269547839073735718832776804516999065553612495569300942694389516162363338335622563822495441514888007644016526662832769671058252308606237783220809469070854046847173262082199381597397315617179260641323741944269175781801795964831070747299629998609252981275743095231079497432017155592194029583909902767006139844292547398332503285710006123159946285254913733712105155665884950811831212502096593048384462064049952383525289040992060492643176886618092289264908408561651548084534407863143272051969283444275136794462069966470459445659827306420917259535493510651441327397491307078617627626079234908301510097273434621080248232038919402680151621246553217995545447068051463288090021736061803377157897927139234634763777338483212689874523968174302012036791269130133604461009849648833726329336742433980756409518191915551776795413900520188100520774878360921859931712326926383456733996238945345534334465831415791497720212136882311353169822945807479711240565471038353679179682985253510551050745980860655143260013681566485524875027334615561181134210159008887049824536607649371973419229441418994984842857144494177682650429459824080048471256882539920487546631966304158407917649860527444407117843184943902076385443867586554161312225581256046997041197132662491630371743626174443250860715238724420107006234227127105204045842286793668235514915219799140241609698930526538036387691245816499509191273648814461385536207720871078199683825034205997951958081413540101955112203353922416594231906748394048772022372620693487483932104274449191287078186926282688628003866539115894394163332616931927964613868082495640863801593764134442800886846462909781255536547055547609472540872501024207222020955528483773845423681008177189831212183474753461051690154478031614204712526757079985677359834611527724285345052999163551916393942635681910432606341483172597808358517165298574982227729139904531998798653268017766338295059533926405219618801940624752266766405402340547500804654316466098002121800326233573280193403359735464684763074088206540202019302960451716796497170028481564094206718837089478183500637147443823676653021937324474996442667492028330895461784451398121003597393097170927766514468501410436911045291537901480550886836571244046382121956969322405957769801998745761585222710768204873771554104550591332039741472078073290711673703519796347781468943363504630660071566457520922519610974429869310883744923111212545027880148780916688110889544083523208059513351737792047202751325872536330705175516145023450629841322073540285939909481306593209177481367683677093358629273885414468555671307777768307376483420053690555072740378488346666380795913784921727814872619641476972585080126947778294449848886535419849750070407217099786623064845519759912798987082519768010930236467188468715809398562950358180824213836106263395145738540912166370484118809511779421720547674159625461435798651193103522725522859092017513708188389021808478093285934373292801583275359230958539638257762484819058205743196854362247355546183262703485524017642420973252801182498398943855426153416147673529892096415824910314485728445570576929301353197833659809642630702245149407868064576791018935590137410883908378598259819431796200851017184437187097715407410704248302336662222232883151923759569313267037767670484708943496040323997270047503168334086671831952991915794796467270241181921398432793221346004927837554573870437993446573052899736976513535837100465024470383866386221799362698636633815784346616127472955845658057018464839034029102831121357224250009665413729381349935745297830424252077049825059757052962948985547180675567905012947589987959033495993800864146430200044446554448913370309807806556112653112641216318030352617851201529312524079731666847144204805697227024494769398062365177703447113433684606168638270993895275437559160979348427364204997444613952156749650189089946422193354391607140696456743850689175589367733655699881314252223801490251959174741411713708409351276788084338415066259346185903709988853128026101304568755742859287524605023100931685330927273994375722610790236041170954954813277245032903593326430493311871069746401248561544429453300466695442545337064953229432570731529138247166844807026069594149923350447894672260570593259924734087231037749202804666908399545140567368744575419326178670375934856686839797593891391598824523779320122137360605187724618925761608703571291875467507050342334073211368914461150468559648625285671302461603083840905523340431398336438519297594107319127153269985169813301121198846910081194598189100903074220632867562622275627199056085723548274297464404560269800778981573480399867730655430789119815509032588345661166126777267287402215477397720688040898112422010603707790235765226696499044231948259411037306784555384200849658907611688457848787809490001964546107403570061924544273260033628422397911468623876298775130252416498952382865905682203708900216641294518643722521093735301773224469076090453591324974760366191976232871568595825602292990816675808310533571515190345731314358807209396010359577903684077983719867460316456431654545284553762511992867969528112512983510360737511699781355675507853310377526088893600225745886063250476860014318124116352695240262874366994466975206865704101598503509240990959084500613193071305551428858995290038286816040727825287083311275121167621097533156365311920557026453704768590003925955078972794222012523729477468671138980332929421779953220762036261594992591087397345916652714239813173956540725901220809824233675422356493105070664936001635189887564837731314454556940436334073732998593077545676202749339306785994042251648688419799160424992274574992863106096611578037632072108422353240661233993746075000386135846037476055261992715651986555143646095946919378842525069302442139587335758613533260549407254563709757657037091912894387448169350860384922123964417509003078275254390151614935070324930268037291265582176157932086991407895092598593315467648638731571507650952176937881032747018732465768031109950277950121017874391366333230489357469155540553724283065335535494677096272772438884296202287756831697736691492634667874836371237687123213501372444290046949701847252996655502371583397537472990315958639054704214363642821043803141542280281282090723394960504879247155853241523824196043706803103222239270442433785654242222473677444791541371728251351949966079197853551807022430761352367771595176294357500235532359665490070000312725215491859236635017932515332796297017388011116851783458396553825759817262151214779139377679096095836236401407011287644956636939802029000453365327051242508503427151020021638163759233719746571414283601149775200597374279805754727244290282525287735390114164469410476310937859307299270446147820538650858105397188878036767351033534068433731201386460778852206681205245765514314736922398097338364792014368419868257779990419349844537405985885051759241124949277733388690574428703872481065118087148880429121393292344920003749104524715717457401349464905189258562871269476915295133238698111453879375014729133953063802072627220926289513232603485324269749351559451231643680624762957966908679438524805854777743788916794874064814183950748921326479607084015019994709401557521856559207629993224940247670591917582163728398421279633335615338471999412020526385600298727286153720567590285836387351878566044478087353006181246938100670316687403141303536904126636392706167085537162432237330453364313963850421769644624243008724337418381854533937827783216395273624944612951320958897245409767597568789257248700718535212424626938709386868768066125096096147606139198305237610720503424137712936525094955760815075004648596246379727443328476110749395824061420333930650918088305185655565150852924534370136746180237064287067018366618286917678750383049827602588483470067820923090181175615349040509497984730986263428825169444068023181124043401729908653527514541562269841563535948013383046897262367970986133045021123748482232495828363713279856414591810611866654105792389292727900458846871608165801939006056238261827156685958865571545045150187237679697631273116003246601341697058493089336946099029241425417609040319486113831620100573231586745397112459164337005673552626512524808176225738073251872664090953570310220747294037608025033092419612319069288818662049004694331878259152539766256602749579561631867082439191995240670042288074076511575978469655198919202822143461343615397985075560596145274880069223523248501689094116248509544745367569644006539824589462846368559195554726796560862293799025183171398352383108372198635343247301939826917343067905918674977983637973760436460134453671630524527123145968840089143553381115465938088010337228833349960703567669774846649751396245209570484767979983116369066953894752519774861522140091074160818466215091252983654012037404575856179768705290193735702384244813555331176782080805420674667736465912411199604637447593832860428761402435120194246685808884198566471660984427811143349514147248126039435719705582429606039633771599525405452122201231700390569895206752829589553103358360758950048214721491264065712316121939166896120980160877802787319020938950174057913700985501511749379818168140155115751781987454111664368294428820342854656966481864659860198833693189830243593109201672113457183620350408112962911178454982920030013737635628143437836239624537547377340400673256887866555584643560513512745757192461508126224428383352662079277985800037146482718161864556778449339323983009329888366420413710063243532068807595259206936821612131720490861493665272865542889743557784148783257250744191561829250877111599761626429909165378086712414508716573580259275840081881719882751918139970901896069884336334389991554403129726320789744459000610672150298535031751457544244288000539324197720604539882205587070173419066143465170907776656591002796963693333142797945225836085111847781826211182565324214525422847842560469803292898008809979242034248467132672898290773822853121028737441258273692903233284257478301950575127056563799463927457833207364567103128229191895250744014486217712180200903479462838733257327023933863160554744618866861336388020130210419250747896877269843692588213554234044699085534312113921014798292642124086183533204249372996821440793543397514262238799330432551572520400713901803794247559551479336545084707284783415211132600633100701652675606218826154586366667344881932901569274841881804913618458295229407632282243705933327906179411293524797089006059048782004750375324384124832298495565141441989723446104266102470361351506108225742446123587831491588542275781522393114956568535980473352885906948176462753423708479588932172516537506796613229469900899170460688445278192533329801479491431220656169135280789356031613318294746077396161565339872460939911215005158785725687627267687920294152696599603174222037575202365817840047750465361538972282281224666766471430099634398953572899134978661714674473443109609538216691196539048028205842876060805781282832937514172583016352902567455562837134462265555179148725124495745198229528789612758141030106109668033430404058179465866592111524304451208268762806221429491972757306115120631146662656481931191238607801107762599765984013825784475296525427839843555539363835075103691797638256851696005232733669575752763599629324166988749131823341025720083862259873540593642324156441467683433501975518308895472216180351648948348711710255216648778944128588319408575581051047600182636088249979466315300215444887003311338220991135197892313106237530021896016115604794901616096905768260412317443612829516545272546362949949960107248741246145878152071546966808967138042984654723263720748450684931482050571101861877579259783331115625459959427338313676266882760150638269405677242889216139591783717910954248679434744469675022522628128575872783541253550027370475919283470684088671337046158978465437335575018651270842428653594193961879783332452556376900241522803254495850303995791461941146732462437773769124730402685236696967683230717578396308058206931518507791350886350906557625701501776529906524485637252782957187126114679431057671690893065700907178081020352499156012292582121112784820787398487899147622627725354204933774396467487907561145564653037302550659400536349554953648618137800364272382453811528978569926310881561579708211591647232358661780518327326484850712722079418850873864254075948124951797022220258013043632996137142484058729370625655046116414455149849858833072217876191198180533885696286487600542277870753338547673567894071304726706864971369669392191186413903979926261117588468381211738433308754355068028644475181585210683873403658103773886559815849419873661996803477121848486917156080884638880896934155375455808697655066791320785667789473682786886718899619497720268950708008401517109546693387947209958890995180738980963637752137395848970780242636776870689797303562706657540441898642937021625193161150609567602947806888477742973294849713146666292287469419940704493734501084286841149414653905741288329666277320963734835815673090639905170310830292338985718851971253711925250513765225301183226323826891633310090640215063683224341724023092578387227231116076240993620068735136167637711291802522991440837225278398836092457797238423122001215469783406804633176569952259246871348947944252773237200874900268731361258365272522497695610534391899343122281363577665938804354544911344114550250621252850862146126362384170474441081941117810463917957610400343947243180390742925682378798697684485757912794533958726989900765036398947061285550428671450666984975982225532118056158533665870425611447625126811325403675684630334293619698546572462091868820579334162152294349839089793531717750264581318635633444571466411090380651709244980779684321953413342604208725977091176810883883167331312658666278964740253350037833258875441713517625866487097105635191470324581982375143005004556063972757716554060109007223426999211716252482371334653462564514199709078741252036821005457235301198019789821567163001234310206015930788677779560649135152918173309001020023800876258091201262839174204038586976079657398311963666137903044658123340070366493959334018560739938706381744673513853143695533051220755091425121267224893863752076789233975475971312207994250885268327989043225351474850129432825035095361023701230033006575806748098739915715332207383235719131513642102139802650480616974374010120033921914972894055329906180609357180661180952955634889381071852298533258606672694271743151821955273640100109857202854546232514877364658102122012288162837045755064164907724537302117295080508446966455891577694284614197978670146642299121743503457883305825083906279297298384587381623122458049830918714408002095244660773454862867344016766050935453720809719431867696474004192438870612816578101149111736194688138241653197559689611322098862090084986211283228417197101652522535438378062021561266858270529162797870999164701180163919355659168175892418056585068482205196118813580528951469863652568628925593724343384428147754157650032087607493368469889215286597012646904278949148415473223530350680651113691213452312589425927505803224877388972009613577916700298053057265787826684447335049917510165717119729209725918037048423146612842185752214026586592943261219213027262372070544267658300820027858913376979758355012133870050613076789912112123869518827182484684572562770211130004431055565994532852870506846195056526193272944354046957958106548615378453018947225445529937377200139588821642484144053438145685546695913610141654637731262458049506597431933833589212978290407955607252120364819552327363198964025905216144706358103927256016955700012026948188929943600907578703475158298137808308871350024588010375844432714193728132739204445217322348539323088775855537398145219974115999857476958555683727762121037303857358655445638553456204877868463451639295558487342156191733226562761220949074760371959682900523588304145537818788742230764943766353525706902370276092918481750218811997004110500736360895031758730800727790341439460929970805719405526662741870086856310804310425874176779019585022958231441483802539611802937701655540010652991076646715647652260660975714981410287521602586546761892485939306514102632569357017592592300373282790899040706107983421596070246839674073948080004178578510740645431267342561494563109924965627068178176984170811864691500078449139995190702892491381238712067985229046197026154799308144117929492633367907175758998671170565631712667284816351200201634049762872746110173459090703926782734583985990724653847894663610336383028877570013013174752212366642728042554784167952786197453777753491903896232699520616059178375205423741304572481549047573907831489752930988280206533575625514124310578855169142361789099334549236289054339822684639879824093185117271228152986759444215292218010351820129672534895722812071651902006289677268189997602909788330637439909562640096282229702069340869345429232069092684262662731894965405225000289334480618742396573752452031911137562285948776720779986816604047783965907246248833862612002814021527752080637152950289922966442387153736810244576136767199255304798223745744216892575884479476004626318777967079454648433131145455085143154262666833791080374283844947584945893473800943606267870752856374828733000055456248414129947039999340079615830823808959909314116005534766676240246013552128850996126389842645755612023277529030420825145096536316688492592029756966915709763410911575109859343164330705862569413410721864078247703126971716743924906463234230973154526756657659121464319322388986413101717585333251762214106862661397647895792201963127229128739702715428476863219215062412211303173916242732558002173763333561623709017010756941249777392860925332882799275149621849698094702163947456113639509286260895973987156994157649636940416385774373310556382460630001215740546739046504854066181000687796918106002200023103835967903206223341994420525212319344574445154687993719144697480147830183176403084370898382495918499372342981284383660367056297642076305244452801800417013046933955567639397730233061162834613428516674603069963715659880636193918019155981597686175417406975265631419129073152990427313611951215130692965054693197807605906332847608653725445031108959790789715760494017004002512294800110716419364922967611798212427540004763551957435592372877956220603391196594084881054204275300682384033859470136454107793995669865493967439219939173154042800073024405714949806129267290698275595198984243504750288671226235411474456825893009437698882416295708687928267836892715549614608020841153543936323084127206796235524766910051135991432070911126936966234537499094037418237146913901654736292862394015663265675373115887009939552689146460740324133726695846595177871749187527777896497545569849981280922463047931353108658654004262588825374329945902702815923634115822407179712133724973496466435952584884882788856634021743010311274397569876222402538681976597127795143248406582512336305893066779678353469229274610075813170658092732498732112742639803874518437849773472264690118038682360671771893799121367093189100868326561304938812596030732999945454871193399298750981786320879864420516473676133394153758854508480351435412575823523755790017268763511064850024218133529587490867066418490815112287473339914501905651142608983793400606087293263182765363167389350549647608891987253118910938958728959426102465796473120258725734249234139661688650259797123868382740325432713416251600221257843082588204838964274251374195602953207978922841360724079162117210774141164650769683652020595774883264880237843246378080807849532987061483949279290826310416910203714384550486919564998932839307871151909455303121203480486693310728306661524732976995724411640791975312820352704704349212889715138626973274835367121799194524379134755744780965742874726676304626652065725000548144926913018396770977968046469278656849248759849279754629751875005932246410505285686567406756445453840316661788386531359954596441196737354420909280923406374640357210593243893793678304415903991954337073380443159146532433017523133965392853159398343876292409634639014361330875501100023285168938951706810089433573440151854784023050946949798006925195257671480101005393581383177604799826678912528310052458368594843173453434475780848488001751619526662034289925516600105738409085044594067152810817117612386927652172828315707851703553584135733800594261364338095390481995287685458754276306151598125574910876461602960417774743583193398916369427101551014164163534540940930512806964831076591834764267898626560953272024363715259384169166801679553074273833851886037596349374357033119056182657119696024114504536714430450513256730594565306696239881404804699844620149279817560913255756982662754814654201254917576731198798216156822186192896939871138447524042345150279888866455849504216482164178209951836215904592752400076480213911978114788522562613395188974181859997434227260990893510925564102884937267016256539482902106890758612026514973010981129036812591777418553111944089685345428392973355494684164228301737151014465897969713619461424532597225092807470259131034084605065600545251856542262540602645331973571227214754368256971364355562883571218013003167060624799284894040092563717910887135980369326543747516246722300713961657320320580838505326060960415978717805453048091295644035795396742516372351657923877767076717062002530082418666077839992208164200485045643047884912992461913852141016844256163395577775829102435666664144377012380779644803246271112919486751547668041944944945218350824861962897952168928607306946819124354021469909487986573288405736222451818889818040500081127837386053618430560982975586597036345967974081012742956756443892295685474110001627844936470407747947167365468112235594602075399096054841487505994940664313912180304258454428846926498967139227715988387838350378514955887172576354250997885552457567768831516964308976565640513773458567904939803991818167198258468763262604373459491238258930694678083101240345630865673026639960721281992730857353423603403114216773433844568986334642656945559742452945284056660370053650555570826201503622642641359948615950974494505818418860967255263629188960229202661566769204513725034572863526883223768156484851706338260164106581921795858291846608131309659098180913804310447008161455880274935657538747297213514120277758894066315120763994327758800178403511844841746944105059623234446273777476241057076009181034843801307959493200953379030673228703493750091043475341457651205311324291809597095224468188626793268254170416931246744819764446631566697149090242758461648741873893359412404814223825638655565954059790102720852320921532045925809993496012051267281371375092944304983909720662808195287770197312196139080018344432829109913525413251959788057816699604393771673517787372230583014389544754555475856417671693445747797826999830344311478439789804896961193690897671784509191811357433172374802287514798597885417144241626642890692423404012649825618159197779146417126343429936242211088983410551542389770575903828200936979370553986866705096678806437478708519792410085848023437244887610511067146202983261952575573384302495011410226965742255306271439586904949457391365507841664222610851657803956414478014593172180995737504363378418129205391154209472439932617861509915669999811374395410727707106700343519680208953073300594296743921652565139254313921597609968042982091736982235242344567831730931829332713828573992943054987425189913550313330607288190482311430048781659361359414142389528231313112141644245697448687862589300526750693550465711314982618021459502046433537856846982173497470078738291943376467574994056252610562645544410904359436492257796282119161567958486309031684257841020656180251746636105182820367615003535619764686495882033422010718613134687427120511547859286389560254881199235791436008205656097685045664525102157690893821471128861718387656349693461354795687707075663173542871889346439618660707412987657668902289281852456289489908809947619556377061009175896636587151551050363590594629023128346844809144920853568854228253939873943593839615700893264526234523732117214416469444396553620516384581986850476629480863137939526685513450531488253384780679559789315632767495039327079334416384224383683882834974897103099761571758027649803893085714348591193645331206729844279190707290569680113374891827193164087201890679889555418991326724784476357213507908615555171948670023769474878981790103745169023811073920268567596305522784580408367794010759342778722032552824629786521189945160552280623838611423424394019867070820718251652614723496519793943883075319114080366845838645422391113244010069702824850287169008193743136096423202129416519278052906601284437040079821807513877870355035781368359153508817119310600334485718095481653402471058329412739732354749688375063236380835516181298262008744870509555752721715671602089686393849641693347051287650547205113337516904888805099037786448338638190261854627000012329154609381449217383025684351822486113257501106167242804038543644390203417087639228364948839359998518787899976490023771030555493388634914219693533696159867644766950930047132114943278845351861968139025949056931335496252081035175530709646013785597607007048024976375318177723024657528382302310351495805288169604596154230904540393888840275542973411283380924638819077016068809135455620873670956684390667416811823903595718038528183682682441965290119408470069408854875136980523238313864425464062146639931670783674222910104919649063086480567072981585763796696830080846272745070400283045520802279068159294675270718998464111246916995528554944253438781731680911179383371226112585285302273762322916253978036095518765198359236521880446549848850649242304340736668593853099271570600714587522429757384016753619583249267292841213802066295008537809943455616375556707642917315887677848960184903206132739854051885955511610363463696007019377155506588893333570526305780234088280402595188578480192528162092291003705902253322174745182818348386195412551398637641314735000240978724414264466120037609480783390957501766059856816725606910475422766558553659401381822349183478733575594242913819774132683051976461506463149597392539846864346712838747516939402746380382391589359776980220631803158589174993898633749296885433272155102556932003102300240239524071604404122442701393728068234427238378807965770924267744191421488396957705064750740778153461140239296767599845653425919933508846748645627818987105442839086645631234787314782913951664569577489247104592236578370910812003497739304009195304613309573317150074799989614453504159921144510444115102238624787742211383426925591018825304507987328810087149523645193269538138173295112301293158864200840106093393710313515918935869554510391726061441958598710315322104650230733970877605274049495553676466856388473655858508895768534063914409881948290344874062402829064993808139122836832253324330283735197531347850666289310178002139336178055705364558757654316008499245818283154232256926444931875142142663134407843566897081854385142153324724618565167462439712701049602929463364310639186531773682980826672090042935045031163516991818504311753815758811588450229016337977761905138611100947226807114028967962124629384929946793534355326730607435144593544718552402207453301858941307570435629309951759519538286076117533058436400215270976314265657914777762232579580953485828134471575128082808779953496956569452254225138094066801217366706551475219605267084672862160679483414927759104710237333246930565908069074728636046443164827629518386319661913472868212050621931931725510006585891271534978238223990499159679459999346540517875920240479742062409127406273258124504658679020753694400535913259812710194327040766066438802273993031680539466778112303397974613023492089535513497520779062324127617397314641778971847792777358444593741942294204641565197494513167216274682536853625539322533028879857174066962638605370373402302963168899177646483818522116378587794168892213104998945903611726449616304170898275972129882359386944063673503726932663783347388028426930436533525456532541370664554692083629301314708755243233821988749566532704472456308109824197048008057089043764597600327022468533578213759238319876982520578108445422673025700268835838596079668172724747605594217056549825952551790666137787016394451264534769662715232698042044632730421808192120424618165690526073740505693970961301320586281364044143809944757474960589340730581663405736244577327971522902398761927837501408463350311665023956981576188286395737615155158018521537248165900021332127483149334974934401714605504431418878794213301451646814289835518881358522454765935586366420290824860180950630358963514808556073282153276121819841280756615375051613027438327291489881684681684589067484171034916479624196186037413361821242924904875874137869975082256244847405125558967272080525985674092160506330057403527423234933762809276835125461717148359834238044774264862631753221366222558961836816333137945035117119671736232593265646584193300263209451184255288267614081534357949953329313839722657255092880723998388729839384246522980528419402887930837626518404219735741701838134415897429320787543754868985852184918699154620115280882090645463574765437968798303147804558100331939613378557313331667977187971681892798587029090219642574441750750975881062260969252568187494627364176186088553807668797257822752287105996568809474439709948713539094013268987308983702517878034461639366320837151299492505693546966497151202695770616209208960550062689392784951945836651709138417984052733899803090676906012693994101373183088229941124463133467794736978620810336556789610183814895627682231158728549170599807298306991545702397532348465332148967659930855033858807597585214394044590216825401251748665919092678720777704996997594651929753851768693200987453354525367791195619362789778276297373899082116081644280766889579795548651813477872420426163292997994935332204673068055734942540510413153098727331482529237110643523004159001646961627666749992070366647298757177833123300907243820127289626478567345019609390792924594394194720435155405262457631075790813752274341284376476696497318407429727915482758776372025266092260157703678597405074181920490717924170847200257836283413322814642962990778754101069215921320566760836174998531658365390441472342288801167318319305727296970454105600255637045654157141178066420258929805918722820027966673674917531280340399467699231160504566473685270423353302148376286989270805621733003282529536436662120417628930897685108100266945541771078889426081904047186055922915469443637191411096643323503612995880312642460579973484378995243438757437415807789835382994406763133934266823702220467829398764355179999108085716236066308102204735015864665600223047249225790035750262190673603594902732027753866759801670326479996844094759046042486951839230795148685357635234723028608365819261812788092462706587337863771458256059266353582218031741513850562071383198290231505017246924056308614518585645963788569391697356853249500406753038760268545768319316673029473568859968645868572518531326420340010049926058989509217039591090834779082000346131809821766911904271396630224912373219560234627216067426958577226819241234455923167783005089556520682915765951677934356316069848366462767320837966668339000171402747822977293657923866579711919311597633837190047298612434725608078564784983619125580531836058145509292388753143472179680506162044456662543883967940662363568850100789896072781280404599345622591493874022629256449559822179088745743083325533571128712661687453589556254255528912164085459637142331468128917450823505462683430378856870004789358368949820879860869937379173563221668376057552825612914834917326076301969587641840521864482386724375712246019010939134970146417745123186556856787224138942805658338946239045281553457540269188554327726720805663635993670429914839266016446490378393747682257214281278532747566335447607461946492910561764167288266661190716601816054771755620100637556687257264827623379761624113122452881249128612349737827314353158203995201054421710230561416905983850517316840018808337286659304277514055914349757857820589614690447740710947906569363631907000669093545601830881439296034094560602734996762118809933420958041171048801770434875095721121140422859271434517385982988956565131989609517817354021067135021820725298282574281625407500810959785428076591514177007011128788995574442488987050952178434119384012477384953771728460628957216874929441225496451826928147341815533894625030487443702622760808925374094514030971264831979153012683980736840916161680395164181036176491378025690161379664992279976040402448647497439325428686394527518749691552355698983309920708224103818286436169917137619001935307608266617496181710799266371021499420721635527217028119673384043441753461386695337982672445008065075401214516608562697025872801722492933936315101585909504458261262734438944924825791543602068856814670288327545429685780090008202238186648223409086139693659464493494611919879643991684283914384972495361128677308742086247429795945831641562346301431794395349870215937331061731665111588851913021225537082955481351898738826511843498254068214093900613593980790260388777793730242955875798132240194892103875425301370313159303232210544670414996614361943977582993327481725724442060289282652711059541008956130137803247858636211497914614413406172551667950488826173201625004926714804611004620468486071914771581953217100455670707231435592141654953533539598312178146668393797981569005073038242522888369565392570300606089755905705034696286489716023160182346732770201254635044266372316090828310204318476695071155893890036278939907709957909739892095260629729221678712961227178943805525265605392481325034023503692114929735615519739998835888890649501526521708976036235605539058738872295685681366810654692092145721837915537212370862710536576485652384794543083239267158469322871161154177964270756543695171095474634771299832786942051347429750076037368000434173590185699343931611718220700154011853070149145138273474758139262984233072547397157131004750209138324146094372635540653483588234196797780069149332918144039666489946507268317017251258263053105210613764786145531816164767372492732715070414301863465348182947727467884186722722842044495269925502942787928795717171996898318157461373032606471390711830292997972857443490206808662659959914545031818822299486757059445476759479620508833339220174905792746478492374517206004262969430291157304788667274760282101534544597030097662907053806562428169100474565815519147356525565191619843232433628712869771533324623039384220991015968166693463771030384014580788190662833998319982501810431874040048625625252773572304291911712593352601938275077328094650437477993527520147542494190587793663061912655156663558845433852455170650488704326973196294293990096319905553562818787436341302488236403298355865077881112123299481100419751871797331390869992333335209610005595950715848369590054540082050389973116726626550439237580664078168531529654793066457962750206492092365485206334963178689424535627265657946614717100574734536162959856989856614944262930200769456739341262601252897638715703827614058705055510488744478021271104811054842092563656662113447740105275661031272675282673423087361400053232596794590056827391543420215791865206366958375766762285552716941111133326741244462178619634571516985100354372399964653369014944494824693119275923260499375095486081981375388261957148380000619523388485764620221105607288900261516298175032161173567125558903281201584258884157770252214755818335725210471822160738401092176445632891862291887523957242229956097548674905116613557249002653475859153685380474308151417392968253575986258490844999803679357859617989224922240156208794222656704091205768135123305737301094558476802448241954085305995295604845821193622581815165647910264015990049104011528616198532019543401600334695019770238620074204001690380928163107971302809022858456982843542971801445294967198283951120648264500942870426893808198771859728527091389397727244618603334321019466714351299396060725761518227448340773258861538370184835414153983439151659747155690560976587396780850685428064183060071018454594697259381548077164742063110467042966117756342348460451915880538767863027925115619331181656583836335212140791066464665223457990337367786756375353689110820743344657518753255433289437778020369727223177973109494475238737248671273239825958416064257967264814517214563825608831868985688671224140194860550582790228406170130020895777695367194028103753164186986721242335568700064270566027325012325273051543835201109818767514387297982453962464253986230699856260301706207497140784552107589911234879239407231926773516109162114285427744287382008515999705253805452895336050594703158006075767675271295736085002910742802604694059946934837515296540659272900778786625500039560028170059610808766788173306277149577605870840583673547776121977309543209813201074126370984603211826750764864081921848921739373550727223951798032158891362043106547165185953816613495424068419394489704810171441935625993219118631919131756293470789773649396757021620675940419035601384685503069856972494526091580230329146231044766708730552478027049309466789050485692267803871928497079125419641970278590527087947712960509179604362158692743325935039566129838792974060475042108190191489569788854401838458571789580249989519428138979825337752539377341491225752327398726171552699231017477727352111349041601683829578938044478592470444298960116439304553965598169350305302691457070418812353859367792026181968759559089362476190441567337387850484555012769664068245241041371592747327657172846926247444415853693455801643770976463278532943558104575107964908421727020851226540617664480816367379663553029129719506104969739410777013175829195024466750133718417648574433579178277881584098501746906648352916797911897984460475706419105908188851076617208630280939679351688509195054970703965844293486259182388170071303801806225015050473725992239186261897285581355331226824602844026021606180580101783201997474332716426271557688629296566458923440184311131689172255646888259584713604566650115586486561714262008606563731429531994192645591398732198736205278623920948769331616854886060153558873224315734632276854076801147769841859915128064673927469982315380649781344628073208069677930967811785766727252159710004016991939151930190832729269712208979539225310780983005257743082878687477834099233295457164268967869719545523589851352105510158478714717424068763245044218754772042038981064970713930955285331720149157481979430808353731865694287140339063651716359092457768016888301574007867971140429091641812221106637918889078889794641409401630629647783019115128397258743793935104052909272165527750997685119566381392061341764189217092704829892290066627662659724240683132597088690192984018525245346953597666096603253777715372075427739662461238613121625418175756958535489836121174206268443612153595438330475934629305326952946593578095688200049070968180288490455805553591407916886314049171941817833388707791659904564764291250601814315705090422311714700882818469688918441516573400216825418031188842423962515011895594807190564625648369873857310284362129716935302002864688644209938470550533491187944733262322523894298631924569504497950599861537802552564189616411241322908746268487823474971297398678800454348169703137090278407862010235945631622802852273091295373270670040970747954761924972271566295428747446166189049368687268038223064942854375060451953720062886873269913106339195176894369708666440118974631849512477277202447888550462848515244376022658336090058273198795687472559948992884382876812315562163780491264807338921615768977260565661541126482968641282600846992681348476867835485421419456656524880974613620996572455991162821760791445488999769415937021585225578497185859064975563032857961240524536102524847608257482770745783755580299222102705162169461047794735191691499335855513751064517259735825687332776409290695333030095357321816775981577086172934027959846061873878249487833615412758199235127048446987470669889294557595719430962562408037563015686800273631677146606920116202139386009956318599417479088127441346357369882170359312322248929788415503677878091178837211230274597492908080489224780756133706566399829754391879867104262704373322624858225875212470779755690484747836158223394097830669632111996581484557028429120389797089177335878160959184635071692640287093904277052437267865759055052686301036943378891454970727379620681304385339778442471526575295267846041783250243896975764422853272046663095993357805446149904588778498247293914598723897367414477059388611729544317662290422530180994300067812388896085609418471018000831072862399566201430856603315577795630599178082091838186187305217401412647524711571640789936002849406293285445942314638518655149462937971267831093132916969685425911339895752888549344348974786309239048506239103528216134683888417238348046475690958387325431414065765881442908019123180289344709923826778966818196700188296769248937962720715473460409949272970456439050602137067472200514142063640724935902922802584025216012442864224265043184202106722956782220417180854313963088346894363585101745963169708571459561517197913745090344291211016696607312976415978254612087378934244344528413137305624580233282874811995772405107538207736074858626099317635914886647410292201494523740934762267797205624135391821672978934784987043482338201988290444003180886316624976032544708263250573778963990403368892134076272847517848572564384929734381774227900334194550090337345877679227380277880578358830939678066506210438586367047366760327790591713204895641568455685749786863908426846902825117947998132546606815320528276813864390915614088113586346421112911292938160212636242406781274243811229074879618643124944018574053881270369370071693894771790247496720085268741212948227513424440797043081111916650123146785459551934321494533890755475120283027259671228315733821872013921435784872230393914624204994641557262299166792064917956811176900967759453490468368123150415313767170061799582677355986161903872547056513029675629944061574625335782425050010694398805996875450065774596269205920684885630554304570719695028113403009503441883817727160886349444176458626304078237056939824881054963854534366254440852079911683208636214655082268844641766290956305639079461988445377280378989614745791725344055827814921064835139069105942181034266764404565513743384196112416520987704517021621752436771556639718055004312060297630067054300016426359624392590795559576786815069536980454758201378370242504865112031089906183757663942109600253351296118590492866651394638980094921726903429648067759203350243522987790928879512826827027740533988582445048107967220317856946400998019046435030887752042320391723002266286034079059636275956373105842119025423914225822379781633808631426415239484961113246384091381010426585185123107976352262645348817704025290485505633687651896729287700261344357374666073671061796328148696757149147765529327846080961556608437073855156502308141046563931719811075140462504781899734397512746360730642683057734184406536087577622456871912057939259972346967716647713608905792526240119135053874249788001191540417098563604532726607132309857200561090437923224467516896180916761930259903053607709817328975720980921733169314610053100517949538790794654877820316995286881321133551065630982844920491482115870285537446713523593370120293289868109870251489980364495219103989637422025723522937281263032672136239538408812471486856611374024971482691885529043198207001661379830220182727639851634036850643348669356096924967631307009447636142690535102432850880736236670396437144518668586056877437528234195652923126224167795824367727322055839747858236203516362853006168751079814271053139483312907479130577611560457052143203876884408306711102247584999433394562659611644536931660528089221222379589183900411643214166979520131868072640730092499639809968072407315108664111820206264661077108787237116747589370974563328255689040828532330410483415140396987937071185961903937226570171705761409936291087956668938162746061181448089169745106640235645824914275665158730234608984476182991500007012347967158109904441345782737296602682536379673036315123035586703370743561699173050115083911831700690839445004305037664342015409100857344462543127802513545162661224051309536793106356084838318074422691393109151759969712604517202092563490235377967581947816373187925307073794767268889044849410886430724304297916805518232255384978526595031324913067345849688813588775205038028890875928177946604837270243119734516584613129256185810234796522870697986537972510676928203569385438333243697029341322251003402531565188545106732872977675549031359056272954504001407490236334090902221131582060286485427979278639281535282532322254520640819987202677555763300746525783738721328474625714591825448606009025549408839300769563511708289653305760236977989786439342409008962330465840063323880872023505353186699936809647990421531980512311880111137306563980968095824759995891440271045137825009771267622136388115599529513579543084615301107950290370746344322308385161248593342653054599448909469050245318892540605421500004256259683970016678840607195598685740966993386516483583488169268844814918665394460769295800253084681676160931662660277046514842423115721176529383868962729091959878926961263146651291976358990767000033312802307296240668081112217202570023595662036613357257881543351514110213755346404315665513391273358052693750349296042396263672934109013878760495408461550843486242323702941919665414323688906717975017645761133187422738790102887980315733584574840853790005227402476646506907791237990829543638200137539451568109561469766117765090043532369947415982165171742247545413770813225047749776971482495509321954314215707726953674098681698892433090035846997501841286127193919025289322142534921383665788142756386388184208792760436541272207870328827632180612465788613448689536910011675675052180278517641172553980156745525616753064739708405927576720738821815460605726944262413923431631118996058059352492402738517753235455012480681505983587752856517421360999080361199594397388374358600694519346412244412850119519875924219236499075009468254374371589590033832052023034960195879971273136515227818328376409488467359273780016362099734643124114731057571033810694429977836746618776007871615421495810855676717202590306923434584480764230654086025021087057620614025833920926207836701490888687472433458006454983920483188051248877257193931528925123113234916612911171337755678501323306140073146596508467220842466529416660009986514530533062105399892330107326577450649519613007678677801003674128956673443921961190889725792354303564302511434776039862166385834370329333456541296302812121235565755273907215619715077929832102846646596077068361097243277741323328555534810766751922057177509034883541890743403738098964473565773329420052340146864909398714896626406952576152444303016198175676507229228741430549664909374908912432570234032942695608643490751896840779503343623899835557977224196252895888991341209324655137096500531697441537160064469473226042079433255415710435658284499882138646991975183326242027817374556064103966445202088438746105406664923328327207500529369852922683812078725224566801104094493471080835182464719804116952029351211303125323796547554699756950795718102672536324667883004995261530662737510597353472059972374888447772703849566441698035156381913850284347780120305588019480352208300553701913273525608621699759086861495586112444570559495941144585192235502581788287556608841578937015647432389247894463536302742487038351960951954624250665319847869704313060413818971119202425454395925457803925209831445565449960071724552248782503080095064992331148808107475282521193706082113854235430806180950653237877655842822583569213702285820894201937196451805519436375193988711069493325615950084458148693588183540924584892916321628329251571028803036824316483350437466745719114963068162411590818645906064754746803213260419700879768834298015497962965453328737271335305700569485801915580540095654671696887115607819363545817150655844206446632711367231536945987365554245617551475432274866666621023935040539765866719950255793271115495373174901124877826553942925150094610816275972869303749377145845458786877678656034415564736401967674034634991347430107666458256063460046835077918596003322343935113441704492502947508534367346767395719016928678994918567612448161778037961975926406727575588438350862838272815711442647676809464405540802209521924454916175556225890587952806314723721437374954744305643147818500609810630492967407986752760096657973241494150462827440983760170294269442421223902550523188922563880065832128056314068459374111792146058265909491743593816939331060975764527679971545860713608010732510921636897842358075947934821800970464689910095209503257909437840958192348818053238394762506452641571675172755809201714212401860943915656439872942642809683750734994952354655366772931597090256620356502168974698333601262684850365537114718856012077013752877979263287184381851320173427745826001093453440356470876861320168501058728457422579676569110301922635525482144898729727811922772919758339542298888139523943208853507778186442215049325896330876627312338586513433403890846976562511527456981625486159864385474472554772528288253269093479111109758598137381535735382826502516339633593229446504833659500955889315058122147623458232693995612298735948286199324611146704715111418327897330460695466498775538045194052060530888263177232241949973713612903563846522572964426834478696483118539978699865562365081940053345563037809308026060045318832773514135771919665719112618234697064205208655762893147326418386995766714633093759935617431091202450886646051564556352022771854444230058136560774687537965630189836169413796743003757559145682721755532945388171657507899208897823047252049765440411059924703256670368083478038122996443183726265264156643165966822919659393956887265967221622918622495431600683797141582598766876449933814031825717937750541024850782862783915644981635096713794553148859636577622739815807889751930019519754747772135702272827025821637204486657640179197092904995479078431227294457219095334846658454344964577028623747510690857384292757431477763668894393241258744825704045259325686086235191516011958586893609101760793200803331143387024726912541073815073817037891718956851611310364555341431387743726547191818187293649452766122075722151152349943417241874021209766787395861335151178576035730330249773560391892424271895273943883652686119789311623436210010984265009129561996480500484300711351726847829601145826914082689575529168146241694898570220029464311548395342484491377988820926295745656488154679396271291420191350611143934686661082589342618965986260523173832115457758058293246283534886584031174675775943277912711748121759449570213544005366038401964552137310222854316909164009425675390633233090940342143025494470423716947025914146884437836781210787254598921409274190412203647402517636850316650450550146179614650681334906694912513146084594480946764204676246709954723696351829381268407909240628636999442979734595490734784424060203927978292692295996223294144797822383088302808743253398249447276066521373484230947335419623114254146083506905247445273051948970809720718767038656002828272929862964896086580884351820168671309361562794793147146740359997159652690987086676661654308872227178820366530074440735212912769913942832676705142180548784585638924464600728964591531410268434944053579901358402323139188814726495412671117764246144659505561670708368616893122114555330978591187619926836732254147160802760043170928495819910126546975643088557660960781146931409571449746920102279323040019932881986368356785927432632741729617986473475868040501687256335527838416096952772915808848127917436207743568315424054009297501238907883751384349497848713758867109934949945178700226435408270204162388333781953421094814654857357786527955049585480174461709476887441946802353150150837330928622041020006191728436377442862863029562852844318285922877105649665534224447983186442857196632692404189948584352068362979064302277020151474776408732326179406867015831715575495333470958795051356903507015878785031560957788320792328620099199315169190267507411482943287028491015048926603148539162919510613456783437351427362862463322570647928012766772557371353399631641947800079845081471972347234223928952480114753167933208781882086339654962515820393478387101944194601194457883901516245646395006004045488310916264617863665498854028996397831539834011877865434376621765919233012352710216895216007721470960018178525937883618537509859966011896544189532555803274741902186773240580061793297265218438647950061554462697440522866022001050554416563186694767430105423641114748597950068427553451419769077327602822891776295365356602167792633974721450545101435211819963724454483657772708940318598642370226514458763818574954251407944592761514691055791585367273872422032213185782527502367637191787292161650125826299328859849663832806981272175347558026983077731325381531846753072822347521318168756401491215134386851506233581554463402613024668009750550085367987293908730876654407603752415565032258886820176737886572548489547463291860878617637442252283213022531066377976611676354515599019951598540252963220130352796050845148410609602596320403941584018114725962361994459005381885045840604236803852142510633271132697568811899973863021302526388109951913506990291861082094624816199391021784249018501190658889903195054241380968310769965523289411126139104178413382066930712283672413710126444214261032174273531205846220216129645272987037447857753990593996359162743543601557930580157486402695045611560578796995043857123172391524451728036182681818818151901465585009815507351495830241066282700675060406196694069212907462232055450378309779049033053539550725679695682131838480770298712731527845176429993693308745912254211773110355233453776849366792223914299616959721322580879477555629372710489300117351467210552671040809577637485352325225476740947585965821068158303778895861057612113556694005547191126998024449599816447627775472282372596108800263907998557120387505863124852924122228451810853081064309778965991191895862879808433270254940895866214240754129721760141749759629952733270197001653761048585275760555550114383009160227154020032393862287204195872955890020510010999240370063099819786872861980900815121738383146560548035526780278297086908150103812815327644011916839891386434224073911238175558497257057086290987301770491674989446296673821376453924579442408432106107624130040072242936613073624842909954588248835658716264972644931557764736424086843986921905813224269317696324779484850162967942975834362491771128969933553493123783766696948120712530970543637788024072504914198276419906126115058018773049319732895349789174002179560891706331232455561087820702755593662182619762183972270272301339416432336313211888646843448096804784679435256684569377021836875885860569230381019498321716139342471341352732169204262750913927303071644524590134692097426024313666625013238786959881874255558199346029571094618009046421956200810557271442356611819086410241326173960542671502626668736681713509812069005213778022114243661243008122557682974115893608165705398212554050641154035219430805714231430283703582541092250932489886687034813358835543808556171741519049966760583911107533540635802025789101767475464934969039649086913373222278385691577246909352542141111927334282944370672813046203976641829364749976539974266684191006391450227524905596500653991003118157694726983961561239552492519412513343208006652210107957377999766949836850716424522039180550006780967629998370959018520251657875939207163708545969108625648758717752437665687876591588939297212877578650191466685440499703219663339243364020280299969604200843855201033731092099278942559585116076943490358706287788269720430062518316653950175648470234042865149431616096097682131844555602023807619963138856111405691420600424391879039130290468223385936517664141031736197586137851462013359289603635714293818389648477698839278195933999157236045948332228169818158285718052308746103766260914570934913290198555672945115965170540401495868035740574573762596915532064481033204645246492386489619598577791162481535737167096416020515564120993109091174696958607001684830463908930241138615248906921578231448685562721600730610369991999558321803746653510820402556699627834802668958221523187081388298015214197888225136911259011411120521852256050038788251656976606692959748916821553080832618000236700741897657813354781708549322527338252732574706342728195660762009085768838954235622058390260071571188785868671780109080140082677631356384566109423900553335403989128754466856019309106890299315553213336511954120262297742975154203445846631458810213888155105042183442869238116798429383615661800967946701860249120533683021039195037027008328382417456465736122296615293914354453848104396766374981393008495060281503416471044907737960815134860117895220385095476855080051583266235930247104940661828859079564341945605059754473765212853551635622790035375999073387732020781185904594673797805193754790392512499876245403838383075347169859000579299689657935307071403789421524062638999280162027376135267618307172486266369082580549053110171745006413556407820433202800589550861844377455968737568661385498577350712316285419669104589512041682604180912837346210554918493248306323589563094642573252857214491824128355137547374325388432968400092582507430935075691708951526515227631237363055986902477313121886524104029104903799885269089079184470610061701974542061904797470788859632194690839338878466407467014038333936476175497738186995056482690364065543048748463297649724098351458013405950263156601903847004417788446200879626168154021408917212418075716697512579631143013615165432521897461388773678414243860189864128363599264733713401500150199533124694091816895365754950917784974273993144414365324026939540618806221483594453585457787290723884245764809240608427039841379867890524841565968391494972284996610087914854188165684892332258370612850763613693044025954259584817478995684597805210315236609787988557255226883042636942473719715082549965608318447164633282349415456114338356217938257594083615399838808995664745817136989611872121303607115756517826530858938508958899801690437662088798652620843803918208648661086649421555068063479530381735333139593725088870593864966863196803825837166067293821908980691751180755458057591360573797527063430052054521416678463140870782974369058617369046835449956437876178033404604213778510162059907624607019530863559282868066243617299845372421982410103480486815856905696371251305559619158876818063778119392156936347930001078749233793883612181385747811560565152806983814448338960459450947936666318595893276783788715842919832234195281016031870069313101657272107321289331842811507142990666288127007934271662811605825301634525647424980721642222282686500380736018575937379249884566559584054506939039752348648014604971907396430150155847372146590942087960113173833842971197615063398622244995703876807911638048421784216622246868319230855669414168850518023774403690482174192295697393771950454083022006991678084646555706448473520241483646754065695375374798033521454339632087524764669852300664938674730935478198014774608377667547176880914805492374937244893820862813371285560745246316016635808008925921059661148170343419402768167051143317421658652778481854591933297643739111096830705216661376744114353785479270158006813390072872237374376191685480225281615878721664518609111100203507075611045592890265664138610324771931722756522715582833527202014693632299971046215910836419529201419883786642736848758188036500773931521294369255800092378040662202492630177453333201687307240144819716416168331812750618153055155803945893452569731842777169345243078070368858316327122633889167408133732600874476364935191998706031768112525165772195899592616402833386046077599359730445226473281432009276241572825072946939964791048534382562619098499873853478212921881472045025416000897261494512644477979431985504333988432579544120582261451675838903149589466307627458306254514761878225540407560349537588787596724745937047758701012800734469538511399540946787690373192545272845566073103031483467957665172791515432292863106433617558454581629445602278738445280170527613288370870295868576914606265113326919253889448840374577551684833275846953711818134105277709148328822790115044538272873558637448657350759147479833029529231585519338286477467783287381734491511076763064995167724908544797422286680999712340743071053155578466857388486331021247003793949930445361658833089597127464938379059053942060307935625331535981733044234391284331160628895143370767740209009151621680536486096651576767837323084387157298018297432143792979862955462205546178779557293640105085811920935773549207679914974628698031140511515667744517275441823467347520657006965610476948517851467848327938762006170382697963488467779413879071761384048444744092063143624857141528604003656117925989472842407982767678339487498209026202766833738643315503330753468767223578344368089649620987671742895946515262805217179716003508770825088849207685096239214537201247573262086655968261078143974275217694280782941381002508997610473198448951606228395617850521339634080834668439993128934513936838343822341353672443514076863295821026941900806026831830903027035234136052680086612033983062864713487276116377391200171087734911567839631136203065920416888616061626297569003595133499811899198888812126088858059471086198465049439812762635619702439282934942755075361528076352595049223407934948442120615078203860323718285532932102139709770517947280634994018955069423058513133707050510742513968848217593369735523704619912575208608008274194960896735361374539560713153504573688473015060481160117669742110456561694708711060383175212020141755318747860217515216254144837135384140406645554581199448564869962064383745305408293488684354985797847726878720274822021269779817637703563597607968073712781727756711019317074021110159826589839678621806863447657805365185100090059851547430411118289101707448299560935421667793287355000930435013925643176047806368383321406151200520211431119099483812444903541747301672841821837272156765041304660668908871871436675475792182156097504092217644940653610521450827218186345149186791016114457295805305921896345990536777038479245764397080758171608505693133595501694349636111249203122680154706514398736251648249468068168929023742787077801316651283113743034896172542150680302379773676816241525041772232387723952904158948326328029954159499474871610320690663441728452044203936159267173972574459424537543046110960357501407934752327257985639945483236445979057432878786429473910937529943422001834347051266109405116154008236969776091312511722776305171945581253760966265798300909248170201120360664028874396987535577823515639226425039071547978891186702274734741614483344150711029162326891916281850549845051176531227183827415216682940184718146464952034227152771576407282636515978502247938337150915359030055247554029313786465387378656525634983306885237116695712756060035688389011976706268342030887622552114133800235030385637373764379343936109050063014929110524313595518297304990387708883504438376952326856577658229631967800997494220811299477287274014635705491324650197681640288256234772207481729183816194758060533686914580606285606400676063684333851296319104875796197716288689008837251252287396787726809913183647095913064587757203531494057249872272566126870668672743804696588237332147905244018219446650154457695058088709850903488439732530812509629616329586821934693261587219407820007437894016235103509851605637961790714578788569483816138303858240531991009650739406974774497002046745415357318781201698296502573911439367106589743237012296072001365248212479340127663013596330978849772665568308396256528599023204890752014292655839864957283907017285979215235780362195228109461050526670430560268185991336883335173406628216430418028855718378500755946967645948018596224708867939553262633847547718307504623050260053963397450108168120594390372825913614341529274496171405663066360687567216600284242772692126625877158528490348988528655473723677409164379360209089266909400888980042582334432893202791443948409139176902513562709435561012089190728586866937766527406848094736595665921104793352690070397916028888869647656667231482591708498950693460575393055075348189670903085528754037788725926396309403096577998297186050529794615053916859645167215310104072917738468069869105411364546115362282695040785311664930462774120845712520583013546017744055151632976896541066457089242615892483493857979111203104891720397499358119579682682320455705400620340285281405327083322365513892521479747574081184801419261555525656171809537655073131210039767866797443943278300024240674533974196660233141715883381434240197201767269196568176606058548801434209703171381944862408642765836785152747051026756499895028677537565588377429828682186368168356116376858783937562264348477675090946580912858225948058039838301664786238180469359134158341217980741053024057269385734986443225627511514209816582535307979649890350140694651264320419242214196240116629478922807771113467266538109475882837748643118046804965113378717676995416144719708549491875334865506202936112977347865434881355489315668818563035209851758185840696486809082920842174394709549056760833134875307424438754935221659873771134197985201537623513270954928957262459043878651139630371570536363509162817115408834610478980393347028064582092191533693704434605945456966872017102601400205515771699284248320775082504940436126657626232561394859979521979342375367760715808215574238177778646992705733724135700565308666070671562137626295961808927262530156164888988660866129136686037442941221398651985550228364141839834748802230108142850719883459094848350487693064384971756807546241036935354463464918305941469388442789373862448826281968240498998211255517412321883389160663308331306875639442723233962226443328195464785303293134273716897641187296751118423195680190269126929238209523692368211191516443936944381492843994624184799239394296533407615815896691523160252519821340637143002419576979767323098058632170968367689245533872560592871445690766809214076390138645647839986872781524650228940752973819279227037278477022146315668356867510432941575130489857532212147077125605441534818646234778070439642622760155067927890429256129744228859510941961606235582072449061783362810349949408403295433185580716895348969786947618731473374173269857116046683308800027469890997296051673743709131474877052993035752563213716315299458681421685009920482973806544077815480966636547114730028647649605932193155666015636180410176864540778575684292105842944730206219028813274273128964234236429636281151837524716320703012264536423675145199228390777857131789702535609667414036621979235923856713005121994591558237199360836889439723107687410349557805662652523238366273029989843097312747094861872097858650538127515478789267518139023448855185679889138980625774220005462548703957086906251591846731740076919541139748197525129063834308963727917599070387132697760410476517679230809779750577737976384256499298043301188241963819911861452337847033847357526094701969719119563893592057246938781646319483417482284762521873314231085096822970867412428520067301650984767487900769009634760731388821701597308115693505949603845440774697027193052759064415394984040465689035297140985198641779145013939519614612688786346460986832409027895553991146339294975844331918190981053804712761572341417193114180647317106012641319493675026942342620718982246273298641799891936540500486047729201141739689333157020264561752433515947829434266284591347814995527099178870405163596273421431032059754019063772850912170909425705316055356708334165469402671929596064195704727684676386011150625448678345095593084028528905206214628639296722543478099554612027219443284181766842416289602425261651208513568532697186623985243030177399341349753574672763367108761167021256317485963193036979069919913771198736754125952088552038516341700361648997045543246772268396631388730284463433668003204810847590680232541177954884894282952445427363845272357534883495721245450721623787144858461759523919553443194477908408647478907125596637318566796511605969187633362747017754571047465399838050543086907882468461567252771764458556175815901878457740377090034686945320091702555044709890661463897974880239319239142778881256562294160764017377554738945050199041809040603027335650070213369616558226879646007545447897656027815005298273941572568412164399633026609980776338444437828057125832790791351169459827213057030684249104122990744523200455157390341418530321093750188678431523629367834489525903392967472458541378161624806956645026366084610702769588584426432925554195019942354013388371585851297532677889505871197577712133628801107841187901297985236428854549422500779056551612060573750727843067572669547822284748270815026617987634828224617651890187201675466206814532497248723957313982540883808347598743817586137681656993207784644142876142854748571765692423975791066322882220279598163910226028246328393562259630208678858593649014922337198590811050066999766800602150154747423581455286962850862978018890142100851199321352858759199661517780001840206297003683286993302883536523102352252549205530881990619198388710728958729724052784979805537440358039816719523046256337623216221373431366647431721640863798801010007780654568707175488820429157302791000725504893598562332152263748462736978713219923431789715356294874319476221416523776086369732612905176014776891864316664488752165777344651468519024752182118047533109861339685015899217142811824010863046221376752133124588438642687866436178737046460172359803969501512237503668926502091058565250893127375384595937289549813224801667797656227418597150986873143062121146443300246801805550438646325533569874292825502874221323204402113252282554571244059301714145728366866199903512671592333685188213263254163786096178447350150028055194412696144729208098569807218782792908990948226964470774706792016621997276523697716783960529843409356390217194741141750469109620873495983743205948180527268853180868785749797825514591217855547225283761654494537096959098345394664122108947039743800600609140251691866145556836991598639860192032316837295045438728010719533916624732245972882024156008078713621697243190604620908098477182051057416266762655949151096028189157556804096350346299224459329903097873472744530461203852302952026882332817003259815230668666833257102369926980837784577182104633129886277544626346546268939858685397261442321964725728778948860582224689210578572710742531491569500790529391049972293864766830447540586252608637790233451155525669150630245990343095142468848981803838625785786517579441387882845527836136498076568041344106836891449187171692848853809295212736688097275193587327700058231128986275150089481438501888064383900500646522389843945722120226390353009378966538757058067311914989791554236925524377234369355585322954830614065563569404741906614107941939851298123377133498908236987203045493807813804290411145074067568121367885360798256591660167938593420914623356006818218777143084667818632914927618102713071019029339716394532473697660770544191815734466650336482929530008778551951360194289340218065623566694763802464735448372941891026052614039392255168181798202951138921732812459906037873644537201893346526834196173953947972911368229824347860511949142293653137542311168701081215834759692351184663304367500653311117627849232562376855708985816259277358188561134303251440028436258901444670419467682815750536672473951218886280779088946953009632237888516967700363706120694439594458711881451663177252173213071409639321484138049973204719739435389561144717210388207533582554165037531897508108308403180413576381070084471996799718544754752611192167049353096501989014323840933859897430385964026114936338724761960819047073582519195686984825780937661093854573869004057761083082341822179398611386569785612780351509551794677843336411432307615773736097616636313907612489639237992697710146323502393585552624759008688448550854169190418980553767800899524634045882834897738945803872593884505243240658564974901652841627947017251584140742098028151320703821627659872672278612741963531209725253827809468737079765758279066673951755445331410272010821110206209816202154997033782167301404236912832775813619494947978983562856023574465898592710404132378089588998968168679188803494942109682078615292079735133536679786040021744902397329284286888563691011525476589960760149166029599982029593145861756305130269230643525981099564384378096323958114571533370431284910166570001960728098323011397130816905196832188338875404238453160431305048984504423475855033911958192220070008067523495794175797933778606383754372314502150163821774883876836254370783079204622730066444328679534557652449212571747305455116310184336092814555352990045068711387794393655145513673489594564943631409357212179792047466501816454770045600480957145996117260947425139783617715928228115801015637922494533036834188017877899975594839799488832630958277732222224431641290485803562716694840213200103456707996534353667154111092958893052491093960750873028865920512643872791381467525165757903255635093483837132860048163986598865862267987936683406906938565083499051839829417263211263574536386697706429422820725767851993988479285485880054713586480543177538397487263687463124579742699833899641956896962763345634427861767573061543513040438212506358278040719703110584655507341335040288543208117855283758616915016180563943765199115233137882004014129284756818591098653916710310728237138189335279745034041536185559884518982549334063718057484873929941314096566360638559608048536325369120652683764467796788735625233282079440309447532118724320678838360874507094258207031020199335065495509183921307702973406551971213508736492457016993359066463676614306407704179571624133877400524644790676408503564764824927574771253125945243319401802888940884508288982891401216793984018502711770474333586697398620670917614433089562480534018373368812005900323119407124188248858922118864773462927996797426518018440511419713841120055760534668873627330316900951074758839643243427540274328871104431315072749458243037016335360998460307742910845492283489981819220112821800763351487345035945827548494197981623768212045029724911550531045636389717192975142584998834859124784120566163418679691816577878996959620995442649784271276696475957264176529530407156224161140874705011429974217608357080395180853303064388090489334430070677386057432328625291138680989119444290230069808967927258331099784752272722581323053288153023344427721735694907263067808625841073611586257537059455164627570794423416693320089715417869837210925829931174900982649487950202644463443646624781172621102217704389424377617844327560157139989419524646916777708300422247138920333938185335937294299392286748657964178307055490709749981206053082669474556091671528952046856716846966680022849378918717184053659489541654422687092907433896696358982877051066027997962326548881973119799224019836051056977109496525300912234339323660844490033235815394530972396720665658836016139253550720368040158808656997027782898101957818523727329265785697749481774109412315909350962469527141782377369267789996337890325385268072791677363026143939886389398674919586326493954965000697039831203811425972348259269724938540067817928847913371768701186600019906286792198615972418822394749651020267667721842710856976469076684740890115926771838769926791140428858125875815716766175502729101125847194998199372441406601427461532999015102964045673102546813502746615365972619513199713192761370705266091419268939245698206698914613445925064623668077858802704135035183527121777910882884076299672804455383616028945928441622666806498834326997063814289963847994442495814529634977623998885348563894088232907780344488264757570155257001918628916772016639147563356419604016491261794978212157114528792122045591877733009931985410906263568417455992286767178534316726092618105421548059074593795851539660179339757774171646173428337317532914203947739286244188729079267827549336340611891298678968645943242564704478642937947527543974001039746970626636834147440603919345493213784217238619566573198716783482259057497552957899055243636718598075241078634538976293448103544315638853222658001617663708594943170496527787190841872471409021539496631973462019404075642713669512854968270207717016134110125720368983581505715935436024719648743910637763868263058069119890327893647775599094840525105601242788515596043175036397550660307890927260903046327248885920243046695910476750528320087183096741079124579279338981915450455368137856139806540749838548517954462457546246072160940886263659865075971402203652912517763469579469652922349788619010226399532628693416691213314190646755777091943715994432831284425192527457332267918009073136297958578467322904946943937436341824842851241119495856266351099001313352329039450559299211946460735723723444265902516914314830940075914035109709144032068504107659149693989192956663160771250606664859210998402651438883282231510000871791377027549050324359538514420408714259994023225955360151885805074430087105731913336266509977649024229988578735321864856109280715578744539180160760977455213205510790411877619831950290735674187814575245946441959610382894465623126328833906419718273358728263040281088065692157331500015370120752244884314322933075399304820092678675376286446071833781129190905150533009476609433956311566470278649830746502519950767718696521887572336721003131214813251129011887033146564196360581041155596137940797226445450835659954725684763472597904515102701909419593096145676236962708217353750010230072676849614180330763214824748605293051371121922977577852728327183440624530167719998417048855691057573681424887559609766568272082688229414506406374306542458726970638184486314404103716657192771681561758511247062596418063723678791521347898794360114210485031593643748440033500284521458345988449477008099644889597797683328878456359202813514507645887945183017764558352126658381178128095291581351566651113931598205347729212679362206935843439356244719639751832967978549827118964011693778348815728682052705018792404295241192894523910378948311275127185082539304780421337035904061415819044964081739416032637354909478942762030815310507393726871528859246299688967359979203614316962278871694280089081038293990053360292927288262378504039667340498311770156652480034554419573262108640997778313157314157586150568219977078438128193158432530042533507416570169258322465394579649788838358253503004268303988050818114442206561075156821745845437428971795303570275720434836523664842077042271375259219642749960086768038188299916540659295131614643143985485102913380851555563616588829680203422913267214279895724594878873221940217482002854637493185024738055269579212726895215152333097187971951572093519276764284693048215474082489769706102852829552844336378318099060546290792300532528591763413485300914919945692012050471100387109508115246392644229579023816011540995483733622349440272410305251915163698224552086543813784910370685315838499789242832635220181074707556161946464896735925422730318100471416091761821038785748008002341727513981214740795803505801193873496256346503149573770672368386438990946930690842383515904559548137764770163666947448294750223061635669982181532692953157435455005649874881756577795054665998451611340773252932845919734151287951911556972814538792380350141500157355865369823916584246615468105095570834832345238140519121706347709213990704929859095181045675675764894782149893695694812120467869074802837124806551690374329356058777553187962371526285137422719181071619475564596012304586070659883849864710075980318336299350676373749473009685983184417141576510754788852873796157902668720068867352248568388554477391391081397394095275182034166195918078174187730294728669884297975977457257840086701926224456802414289906988588820357346364300328784318407858534607728528099185596960827581655236634088469727995084216622246104616221120019290647389836628650590346108180032858186622341705480557158256228876416139090959892223863950400212708544883533281233360095659583411831799854792384057098959122207114122793440397868335524646911952350389039677168708555740279533624950298242042601819237438975054188766848495661065238511675138162374901672842150791233650414973995928179458691481158405791034126447728395576051628326679284972807046012335623599882717765572513864341084903680696994183177382575972188877949547872486650525802929612952958922984594545538608476203719256223674986180947894118229091023055519745543551164521620705234965521584393685141215981547305748174109839429205524884782783557901658832815553950770424120998935228494263708187146816310367996697820752071216465622464282742229297936029618523347849251172448868405779676724723042230749975676387213041952830242974483386068891325662896932669879485868431895467517063442274241904735868577782878798757259078974753403920112952027445783087721750538760256159816502180698928610941232750187449855562372735965210145046472473731594765202126943290166121549442824422888577715185882688464951647500308255949421836047907093357655177994988935729362706816679610052483522834397420514139670978748531979652942491330712198931519606530398476921608547477941742098854019799371534725922723810657084173882861594766001422061131839141069571402505508071853102358718275043519166242833164483693652229579819195798197432468539198173151049023745447403333527208256170335826259698266377016945348863770775252935732622173835572238506769056551888626388560335505513684124540145808137306258899797309656342449430441603237839471185964013453402769848566138746552175641392658418262702507772991594914966019971520060112925444177326917781953749297432826035547879603348315661361930778428505210804101967338312402535526836608898398299489387177494611947416023925318192214722501222584178722304673611628852366341755362279155447784845209549800582429179045198586110379701341464234628430314551054240476570912142332936942311848848974377521516556662011330034806095884750101714870846333489048434946206303696270604274076302869409054375117270638694219167903763594902921706954857565026631453815267331030950763443798679882596751483365919958154104540314537770495497045415603744127675761464160880898374614601809133057560203921206858858113323381617481821596051797747868679150529587860049131297327501750283296750304249705239927253259639168930048331868797874089029314696642250130289684539133450899285214031934926153224662826844084918502856626991040127743768266150650598041798666862524093927934734193999824011670906257054629453972394447316140114908938719710523528271545991240167996087943973813730414889692947901135673506491891845306641775902468519083782180799905580832755724196098615583341448768364207880399030589735130923380242193440803974961047881921806009933173950966607923579004276964925422961780246065456730166644030986577188198559443424926675538304341985989682563418645295175318038701002322119838435873065430944765134551119172159245624785462739124070809790295122605790122832905561113423590339212247393586679603963766304962877838145699515522896319561200933891952725249767429251495593478612873750279713553830426635980244788381754949519114743476743134074780214457005800567636693859485507275018265308427382112244490342247797480856781070595950410371499694343297355188601422742891733525238567103688029674037261672974195617987826810516480502674648977674541416240112987230361551423131873680675304653799706383563801179441287590063325472289413312366604482236619616678003831223768433566734952573716409421477009127252081419710973032034182650840839995415037599926119407745507711180359117440144929434250869673183644836488826170180643169281841608733790658310407698290486306352160316585242295254732610176912893816889309513983729688055673855652595480396472396213086281698377080384927833814729670407479077974504278009679886619931855298724873841248460963723568602160305550333627375446484112924547615346901481135524650615491588721755111070998446317273395732834572558200761343110160117660063736332722946359370159069352747134318452462947118403443690587070545534835912178501322267028472088924472799799941242972079896181867676219436610190098468701319359078507407714884282148994169533526363654429652846765857746611260408745692023289858590587632398117503407194627355164647621170291940561235164085860768144373899782558177903293620805547309811109104434492560653614407613743162695011178831251130153599419635899967954437432465812088025693154103636110294986497332907010814523108448510604007393986336913632531561991608960681667050820355330868988102119454334749564305943464111099992345917675913364029265460139099632933258943567355788592092051765363675001016689737504351767866684459843195812097739559022163093108438024054703296219346254780166234411039894866844239798805746382453923908566517646545301166905510397142786529830011763693407471727209855587154802903869012921210947633732297637494064714369451964885849139886878138684765105705469618209857335060799036715803394489085098460493491942625260408818572184532265707197595290658536597824527134167740933982601499955556730783444686772854021554854759386161148021076352508773983802582129301259665064953249809432375182270081441303012413725052289463918984565870219901063723483543325578719328734234261081203611354617747420656956845317673702151354160465899604402717395396278112422343431432410231962790468543750475263419630783853712868007570706128190162962751855245012004476417887558130980437769424148683739089966479209870883304211113651443162563580244783759876807428763961386001049528968812240466236298867085379168719642341955792768036410071019761011792472184787618462424774527919668466067202581246980951711646604620458690161385918949793135761308144401373509741286543600084475619279877242495149553786264197169597253601418829084441523826625993499180122249668559841612562366623402308255656841438177773354457147494469717396097197543817403928361143196799969182425420759551961940657629264619156581040071851695143390605834044709877780840302003703055060023146490670511404475333039840839835425666924502838013679757932288121228873750219778449172410708084847668063353420076422240972303431403045786040633359095512548618923368368265968426161454208093967001850205183095244493533213677654846399576936516959037707540278449200866141121781707949422457983842779126293172286490356306745098946585882435156964239002072072826524249734526279951545034585289566451092065539622536505892547334930572518438785573169456891112616819213411564453603608549646189881273307103256933876423597454099374797897936130521373233872383663082587106751661811643453041815241064833359777514194201054772425286644173642383470368541237231302861732911595897171195162688228134515396676399427247367309318204302780551763004069677934535376592288992562252181356053084152669058395490414214382976058904682230246470289863638395669612812763513556786758292175291616395697122014060896077886678956405427509715185256475386504774758591399186214279836940221104212210540732815334845229254262383030220709688580494471726545962253582942926689884852804654941271589751835841942335937469470494025677791425241753965323068821400687891989652840441587271465545914451720029520482122467234043209581251130588859679430206109281811066805393149301263097935018215931320306474943349151766188650166777380192257297731265199859720461695059517610384480073625385781886696201538211712861407008498318311170577055504549173738745471987876922671643294105328322468828204911706811090563013559231957010902519129425060221698346262074572910121149008634021490487106923661334115146243970459742601874421412220915033920107307042925371092692024214304456018521737767542255303214052061578521398445430873700083004622695366461111942124839951122303444672413476754181959671675891829015948616146391621706935701030768722854007476102395146564962315069840852238475267921889153863622038375054843960384011645270977305836974957735827855833054261346656014054387139507939501591586632496133889268582403434768895938558446855547604534007100797515327551515403617143189794338378420420487884327959151005658626411177992938294045590337027429352151950113276386004761823495590783515183053730242001595573516601724509566159640125317756334179833949006842129396039980607420443824706722365867330040222614308531772084312904324425175867351483576483877359894720046312658480985997504383480952322444374947321362107046260576299323725067607883482142039020213418717902911871121808439189909712256064102803105169680791059278560963919386095024679928917129121209400375950838832653908022104993750332518294958890544711457369318267817111755008713931695587132150630053041357385985844682672861682554509836769897069558741141827707669918387780258598434451107661820925990344368385606664363230577651220310237738577898511379893314781809920542166574785722452818317435952348579539054699063269625682547032589030359526270661661763461270680608829472116540813001098099496902023461658252060202568964020160528615152202212634737447420123608427888395222810750389412311191519736225402674506490684175253858583235517499151762142040597351279281967661741075822937922785719892224923845723544693508601137298929112721422771963241956048962677272574669425533296543428738285042190724959909530729334071719697621507297164362137773248744270526802929195129885347488968803124351902441488734375175474816654354199992030312509069612727451806044286852148670242742222094692489837005519067157786198573473344152929496482645348688747424566857910072599239077186322261728498890219818475637058111243323068162638657787797376343096985699762222751850527353799830908310994643866839282955066673393395737990084001730670445212383463635218145252254947881207476021621074721486756448271424370005876537250660341789028293355368687012114529224054023185001343222739096098716444123275502591020045924245294849356959874154747791277400403994329713842671491022162425334473493185621702197709100487822905585967621887467674003796431749342062507512786273600039528152517600791585197211266338675205100859083420962643056783703435702260833504684792007355203007512449179748097865380462890593465087240024411863790594695971695824318919974517895758713671695272170918196957834602618505324431736014790005895540146484859029286582987404289066259923932841943818541520951104459385355002132553039348510661119354564006110573193537711070333896025984375170638701237968150317110198013192045866100516288376408027457885203082572815238339589563090653539014504457953881726515040922311070493970623787752618391789071309053526967119543925832999319724520599652032561423123818074975216143590374721618488316355476948590334350243954182386150162256510834770992612749588887116758713818250585426213907563927721575745566876666217275542994959216357024295024882026847111763046997001280506352020727227950435907446238649567613263215762308434702847034020691152106243367694973651007403648052788681024709247766179067842798673715369052367324904902985772704218483761718340365471685749159419307926949845108283160008483849993010137317753376635013758505864159319542327027464932384828076085009035664395133658291317755264425680764209466284293107416545297332401951810481722169188155788712007028984340482168447101173072334508683815618789100825349092321034583318365863964837249432751651275021527291522219603827156146377219630632266831444073739242157347528585908262671389601219180322183020913640979450391269332132973354773848482192648394095929205895554470220149836632698547542297443745411386836984107640828786020129304409210134031520347972248584683743196347456581929104518806488130998976462363087692820051556090498099249977855919571326028233909575853859664312495767059474265189733338753219591002178109901771487627213214436195739658208064671435596758302619559058993098908312886733580260089563166390929878370074557612016322308967859962240611641930277270299804373155140443870789617016370899283471063197189053688365945484622244252497228198462218839668060161676079435131239284380660378427313230119631612178490269601496911092642258001369225170871490771422812071660571778867640647713985664425791568881805152398071414020378878356543674802351895034989106302518481508045224829370188294454942916343311488907425820271361536429727733076361654601437943891029770620752566373847632839488633574262917934451178319096655535646642530253448466331328023129626745592800915030356583899379604007932327895707205106373867767320170947359035530992509056192889754162221024872472306223190566515860408531278721011100992507505872838483925498128212418321959021417588799412079926781189539786768264804936465154173883064216513942123396480393413855868844047046042839053382960116429213030932934332326820724894488697295508778185994248113155527378487447096017486169205695798900055392342029618856610090732601734656239556014021031702796698220864022780119284527077281351164579514400068140956535450056312500154450441256021323920738042166527609899869308355422664014216258977399408047308765331433986044288400868959476511275178678135270323935982806564600844513130931443293258102224818959562949660835737760093384124270103982417707167011036606791849753485758111247138734334467392005529355526553963745873544843675187691670492382516492378312675117259129679313923997951979187351079820426654716833147739726022672734778195353325119404170500565643093246142444208955884816477352179868025333220448187449129733600488890057274046050296417136030944733987683495956031120928511301161418309538420659572428645918225637534005878562732910076397532251823364984078220042931974438147708266853847716098605388512888567804835864781675994155089138058607852405739885949208239782642903627984331131384432772628393612441859020566718810337556982469124805262008549272095209371302647288365469317583866071544711469725580194976884873557548756702869380736282960104279988214511196026677645287749920380231305461405231226295454471305394785146431048908465849595474034832079848659430283341425105692631982553141673530552658388419952297280034419209320776323510775022756702353988153608801654051831843101751197804538610510544006748297220827169987639905247839932430861346078764043287325004880157040137257136900147476159734088971183711943044265476721382635328912613769341441546621993117936025545396407212631834932761981545082026529393261274566464536170626018740686833767206971204898624425416148795794007054772376659385366983212838964532517847462422956060405319259895132773675312952501576664703530859764476994805216086000119486029877962278879259491160826570349777546457091574054320127628669179991801934215201296586120181985518475308512630732434620820466931702686901377668385306065656723904894650647822910023327154164756924478222483406384293673851085647270910139773404454155749287872613221904561969278916712917799157442281359601738470176729673210929085896841538757602750549072518773576593689785606475186504516267221327100951573534543596592748210621514897408668203091587418780986325081460255239391765606973424783728508498111680753444274726020002528511556629523379089500226256195176161343931026347223822800705747566924483186784949795052800495595991205505709861063334370826957852451017941988953733789680718698446046582765365480704957642143728044978990213033171788718469838029579750007393538981119492086857025632656353981814788771382281937964935480332874946265804233903924294037443425649883788696266398318821455078470325569115636445925318332768604160915872213806031093550725766103004320935009553682662686970554543396351377872047541929745443693728587230610562542445004298720288108902283373161304050695626622263464706747135485095737968784677630109392671576080009490703829211123437485442048094148171394068090962142477382821236284308841125583595442058043695176432117404893019734367149780939416929914905821981178702071748975236777397996595646554780632978600192677559997282489574508094030026052022060225871864397035281523533248829040060702895916076097591124881152453272977525802857423146717510378697559792227143762187003074312811920140813549956449895072346785918849077600357187271521987102962562810621908414437594904656423428771013108185629452117310307571000325440644191451934211365108090010756059038476857496063277093776228380399365508372355887181450905101576911360603819925836021881594834683336118512362615595076804815882771739542825153513514731149055137270326052957564070536728769449305808968327825431611887993838105862005248944101790008042725871857008987803079238017136558990025355109344699830437290143648965294418229996309215933011480828960753570325335338588152442128623369854702089592116859303544116672324450012103077290602420312835495598301486963786734002290393709030177774219214905680729113697823111445088795245278854866326486435070707715271924945192150267311451227350645200192253784337828004208024428429252051667026340289801216864063176493881966933701396465696348894734864894731798927521179238048641260924596701282366838859147668304834450039056933167126214116118540899305453793128231933686113153638935532760104713631884611897968434286259664116078595082895488356343786665600400378773051636456775024963249731709550840794382658355826241424854723737992101866203173603472871089127223485508306681676160033279894843966170274085604147538656130519721153705402989785432988751379424291739168684185914377024667420206541346267844952931774969292958929727447960924086920153031287021213599345376714465113399842885919729242529498850889887771199634987698559379553212336941857597502506195128519317242483532489902696654452396883758512519699214232564741564398576798956984452209214932660091555925602101789646055312572727260703309919545782264563793125189993999026707208304075647849633071465901169520894956121443011416963403492439814406454419985033461290769658501409281932932534217301401962579226787082632796990467898754310001972770239484428479374314616879467868382050189318927263539175484182796746246745654287008977008044979905990923385020243619066174979930489614861556748318157175109772026081439732171234173216541933130304300732992507876894659933711367031076363871426617428339737549143287571127738721750186028400955230292987466620428566966110701808014712548971459634748463474730550896009006791659967335363145072088253434870358551100073497055591389029859568307380361536789753851939760887434856968265028061284641248077308974287017845719875685755077604068650951720973734554490831933064746778382991577024639667046290743011211960528168146854429216031787198409805700741748484578619614861328565102110461850304573503512642992648504953976941341003817930304938442182143318301726583913191608786882691343438372548010652129203924972794165952668746230122063280811719707240929321376634630847368569887834266862505778073499215144964636582305455532594350997057429734567925365469619584412668271575240293958556148840003807168818818536099407962192112019301557698475183223023821648805313538305424703211087515155697619632835446222801237466750498819451841335189354523277015636478147482642662275178283150437024883364047049640675394827602525641290521441355153932635208691343248383554434982607022303070949834237244169819010441457476557662124218664508906856287134214977277825211524865049623593081965227142075031678339382361790563647980186416548454518684912733851536513508979936652800513804949553484137318342068788199334440679715152811204330966733765993491179782803164047733065067645809299184168082364989641262899271254645474208868977346465027316289477522363638767926204391563354957228053266623392128347234523947794674556880128647659258264570096106070750260523958520155939973846348379018866459137446702062895766897753885505180148916696458969101520497265950143074809013870227369910217495096656258126482801206288222203862327744233537906255024477689871347583473995140850863064913590597187201782392577994585756414557085245013383738387758786734691629754572273474271097830613638961925991803660566625926904741928635653105019756334697673780052061062353917589373363110701653998171133398340793260578245234029550223761035209173411054469119986288528505187296278607897561072805124372697301181548820322225542216902392358286451833950895869370714959290321622349400766241274291156728185639406721679980885183441809508208649827396037138473784059659123475171796653838105387858126439035988143152927115839052811793366506456599525466322586306274801961410959157616108309807770387312519411054741230325297238691583631612803531012492994934716826885747632379807767146621387371704389961292842227229762490209098493305905148541101681841943122930713845944297782980046327537611422949051867207507255978543222498445936393167766103717532228842614255462937876408410412477822987200568990894750343854076242305570176797680410047068056509248071677913862260909515682803228628658209441651533716951539349212240282771196949741440491740706088008266572911307338539247518346148008394165691527627885939985963640914956282253949208962072295197133832218741320611273086342596936122020895870392442678555840419817774725124981879149219833074317016146010458645991139851799863768809307783879123988729938815286754852399813232452333749189780775001380921092445519497289679989783707914674503704649886774601134676575418686737893946031958145124522753031705702975687087069675366093981556370575367680474776071959582292678157698238401903026683874116157888955321455205954605024655714467072688243687505203750143034444169862764253687159712433775638601960250380622404805312315747081735976816710508455450385669231253045435292477028434690084521493297210383894218075506972402565658877001567739056360804847134899635955382519381387321940170183429315669397761657951802662664647789902202814512602591421393909247252616640319348532726923184273663285385654245866522769825579707000150759566375551801054855047116742304342421586515795535261072568667710676563343233526498303153725342478716556051050523718968634277509569815239936928274690889320392484779872636590441300699213902285654496698151241700439760657862888103587373670398310363041000112122214525099464212599759230204504537021573062650322295690530846272810147080391993681563247710842345595426949358263527835498929006599786996681073718967693827617331560208463501136643498935811450672046730476860909137435152511352656334012627103893121412228672503282570513105801277379261892171455576704961056930296794371134352643260830681340507970507894629882353094319061788076466880828154149046645354730022284558877454727106041184415177539713718975844336495226045087820377546566585722583593921508152196546706899734597170757237490088265789877836311113127959795390429037133547920887078853570159459964759587678024873298542317397738488725347795966481314526648807744590143302967903661632186927245328724034836559033385359498459620927016003533593308590628574731347105531012833774120647352625521648094957150796472940608528354772598421616518118930922279758040798202026732832580183075729225125817201526011337738390946297056041780253802049076195157324692397311863916618730649603745693244958723161380539023793273769615274264213223157001972540392119902400411543123967208910774477821224544052452490009944479833705416023707273543468659325253650945878066082783517041531790175220652701800690439302003916203999318445875444329880005093162328383387756102992269375533428025085430961064617773620431328665393127576122410540434974871603077619448570220505174718012466133125655427796464224661180643717833789638396627666405220906375154145242225845053615419230885067705493064150269516631475980425952251503083944826338471682030880734988624881458556738496918279465610923434288830536939371551458447615653992166452509200351841134624894181488269088173671756813862078992627304183708339790425320416529659906630245344866673496147808460841973505507061525849322956886581864579951306818344045991880994981631873616546247663862715695169475170160488836580252646530085934340225863829674016165129324666319608121174967110409297523367641752666219270785171054777636260332601414165784264388734435532044020088301354581686412345525955431220121465750789853762839839765864510910903025529780666891920842615378308490795085025018094061787765338979111160452236947209939177581360308340900311669377985564966522205733138344033203246805439038106188685284493291621870911966101961989633803434445167824319720743767342613859570168324756228759763555092463388434432468029430799900509943904968265241948334552031007650346370683865715710067833026645962239115967031061968419211443853265283201113470506334880230996801150372023568458110385204390847837925492149122717535532251858621877652948397340869335157012797701689880093919551489150079368245342627976849828390377797573550089355661043605944601185835590759712552257662545388736525193235552675812952488127214285624771952179843948505317224590678479047897332651869503421096675107953794340180162031207638974340670243682724606561000132653634618574380893763508683760704095240621006275520281153933275559937767455927956704191912210869786793383987688274629439261523644159206843593186167971048043412093354702961565639938329582677819983263927723776222611138097899811553363324687008652380662100837312453895407321233612932245905653051530841456203295004583599971903307768121128179137619839358646223010722636603516241299105527163479431836588915570262976925626272351156163494120345143179763776951476987085785902783522808445986724203320260938057850840607326254658810949870223163005631988842145713906640573832161375308813938826883462635711376772546492499105650010149869638522389395314525716695266057668457415658808896346992851613742338223303791007016610953953911696336039086884400260493652433983711390990590968625012956554686055830060302434527548294754073777759841308655527772276868239130001093323039254089905020467064692212762689569922621797891692345742255843513242695656326981207945355744743759939386449455898917274848287726741500157716276450261718676466938973731963306166921785221554893948249543414201298888896484529801379639516532491938053000187755841268522365956230592610980974814604713698141965018791027995584373462298145516024087402936184956337871442598912695292978161981618224139470297290511564751982796972080588927877261871063810951339740490560021436395213639756883871141249925137225313637431845564759473486905053760940258115604568123294912272695276594870444257633888429592955480331825492641319262858809544553790221782647377756134172703634223963662802254457003837544984902426184704334379333660425380103262892317825983689904510020518716861770127515865161164924826340547860189696805360601159513657688300795937614469640829152961322725230239412143651547176301964665794663030168887215324217249237279180529808583032863244496477517271166220769532439311084662808847267893147440852687633946198607439872000982490245996755784853774946537647972585535825547019467435738413251192530005593179905701222671127697151550449531423041730233971512406541258882449799149691990501483966132931297374473628830983134972091524484794867069197681233155794990988652658974221448179108218176837895019375378803405219397446175342298815242790993093505621762155128215019358306383204031161131923578484902218123480447802076520042998430258642414147957299421015900374276956667436826195080091627259352596242451920932659031053760849957190689586471080281750481265401911742228869542981873841294263927010881047431430931832057030235040402296028725784564743536171470859681039531098288629706152910424869158671783010875704334079062559815312296611134480431388058342497544426636752064456810850855667456215066491405464509162782659421516332730532200675940013214029590562805851587465610254151019527492604453819199732150889444224534375096761161733754414526665169636604716244786428358824638923221558766671690258511643650799715300989033371070473632505223100895876934339642983224148807933020079662722243181431900848246362073306483042180059080433904135437003237953512672052225779864848601897764705970602659687311652844714997247233847975369680770922717432354359566229360708583786431227611115965583236956212670237108566837380118955079703103193461292294940480348057285303589573228954683476134080339405322792453892801897611514740921765620766262567634074871422961587282967612470934969999801924284997815931095678126608378097615518803827862137844860687667838437757410417135741553823878989313086966591670431618477599019931066867630534154377486339774131910637554003721183605879536839472127390026613629190476485780061823675844848216271905745405897026424311949778447445493728536331906422235338712265517477138322982456340323109150972764416036574836151092242222977727266978245989015691837939658600919435038421756938590758406547025756483272453952596934420915109123698214295196277724546670002298021779642567502632352511835984028841901545754722974547508967254930087134932431522117952645589176275025401950427517737629635336491228525490732958322310377002247741800787521247675472019570901909472135264939878019948786991926457010143012915030969223042920540248193308347075038955159109962898547307587394301893774731817954588145492213699052195973881540699724240807110052042484154743718197095694461332853823392353031836864655547808930406240684324787093588136384646025175325858329271424852261919650828342250446435296705501581136101841351358957522117736225343627691089228911648920343918110143423533383843451458314435808286034818367646164321732659073369893863256806809462792750441907989687544274721923565707491910759826322210091929455275285425876545532240488738244672450437305202521304880010381737409491588607061802324515412443584778499453523137433599836810138070542368432028041761730047847972497484811338347395717674685046920551044578921562117444209072414652146854057731624412765046410418846659521615999260055172779574008257007822513366424132843077202683091228896903290449576302471142872344565829022040875609464343034076841582601153056566363507521003546614764874953146591948060218752870143469678022993255404616475388850978379362850829866156453077779942645290579438667925824486662170296675025407588832608604117682830449498260574028569956044484686006420677653207549030404213308635805540353852802723556046733454804764537089859183129000117246599217600707255225502828026701080303383760349828557322217934854029276657050124805595335946288419155304093054395628276254776329468548357821501625037061864671749438127165225175061871221918906741875795865137899822472876710407273843729843594396834079184070350609514828314711201094263372750292946878475657413659770296874667791638667627976949550370759756446123470258817619077034275510796806138006431219272322845748759203042459715991060997562206167387975270636133238172931453153903487622158148429512590206056415928980862018704907760633468591973709361944256125426110961875214474599673733935553897646210787563648423895334065671907907203382089098815052751717614030641105818717778405190644782025265171490760916955136217356533529097299340499311165592920509261895426214201988820439898515153039129601316749100643347989795096299529091567096157896609604338798471485970129448250456610670402062899099683493566275185512166866977454343868881451193440223167319694696412506559585168940778396381240272743322222555145584079660356831596388663022366855685929489462011780134363057194351383332132180742557956092787636191493736296138347339476734188186020809998378651850439132848749011503869007339932942567121005798691554376583117001441362659070164918512616466914707148888194430815551147363605105079249446801533138191389299632224080115136183056769677040761263355864774772011881506950211606007382325395521978579351516062726546519285588962198668881636113105009570888971510745052078900702060776601263127211098095403464837394710973754933016607675799267036210372684349440404920920010295601911356540605113779299290101964013990156792278624945597672805481474723832477897267912459772657258900222808220276581753612304078915179605043796075254739320142723586340648187231916180508271412039019952036581964768024317100197401037451500844579686890449699676783190300004746307101665504366380554876120137234228715048434846901363246742206146510744885063620570740596768479109999360854433285873878843506487857388754718198914535646022462991361269276751448370141660980961363936296655516375223067819323637172326639238116466284306759117046308951285695900153536925865802131187897681201908544758845237501448285121475297164590640974276599758216824943293463912723224397617841530990718618685447073091577484846644376743005165346431416934418878699733448184056682524211337776195988869258315898720486360538340206683734474248597970859060112211366535584797376373342302792142419855900000338397417279468672526914080021364211794474333776706631733320954625450072747272971986227338832631818523918807376584871410130952185318730089033193187751054421010972472623530167092861915608630303831150694223635746229028351032855636174297507667008187286696202608791350484609183875399817462549576699783720965397501076727531768140985937692998112178407975756727732156480199089363714097680993782409929197709427535417885032496864143748756685028767899438821713276511556224939685024879607556342826527114347258814254370639076183863720664961798158043918164775537160577123039213274909597068282974871306737898402828354089612105112815442013983252727825445100074064707796578763316408053533939167602187741288584223495002276075865186817063257721731813183901824333309914416952758503133690487552199258265605638367990980322030774146365419661114047502501690726288840063345599357457949242748820862543078762061113893016534923651377498958027101223927022296605897231154219424938229103263378336264727890308553753782170350102905753977437956032877414104704830202600551332621426031806110493358508789304348985378946531522275352293808318192951876821821329017051004062059084348294503190701828098091904447989501597778714617018995846401229092894630945674571663039401295834698249764264467403794200750282240993396489257238717247028099327785830937951592193549301774677714800762957609990660444027263476805450549270372061529653707405212684850643708527350880833872972527977780594962233767690917163283706509296402379793534560141565257215441001506027080682362924198368734825654037441364305456208967749579295081396413907480230907170216163245520299522548871374682743141136057909191356318276031834511783642070212734124569677550361985772437407113348047552885422391552221140967029953577729660941347022400815138758942233812215896429907200610317626791872015597454653424715146188856439693514040421633487322675385474824158956891012282468263695509824921528329337013321207298009214583415112292635826716575457687759152369803050740896486841431092946929891850632331056372960271742961439984535510036328687153492362743127236049512580133753654865324358384176495809790602488004465230833610352910670183793900728253496608601938691603054610448018984888493957374547254932724002853082334095151722537747847782137665367501268306189256828465578363330989239180638651917599575307344260710340673343942500101318052280221225699829279351036563198860132066395527631959395854957735388144984198347467315428043435133720971173701048574771956851786563566836658103866310747179682107574995745485692317334415221953040716610210400198726495650353090176231711362691883122674405721461170192334926241124965336623209514832662526219629898322044728825891093127841352071211663399014747489833536046923111770267901127352511261647291984028658831479150074460012749492982750272511653071435483741451786363160827009732370771134894865541484809220262678222813892146277630429775370611138031113349924261811598061053557554472799487738201308182191791602074153206924288081722774541090435722138416477254203927894935146727839551281957821693255773000287204450831245179592660107996678955594403307219557466849704976479691852940196453038875802297619832167308284246881875624272458383952269164862688460222578480061651897360669676144663452082633908947775399908327119923565233235419801795740466355712930955877873130036826413174198807133350732417777706113474677493086426110101465113275535787566489979364297138607944381012335419549622069433062873357732656785314585797676717600194811831962916410778096761466338673854294903001593673549083819274905243317821896183109549591332880144559091269829001400197020301954051104247357076608506357025313530993533537936166301401211981265886094420991304642122002403842973474963551702791122461816217465559529090619390499060342641937791106509358186308959449507692959200983600710511103185305734976205273160902448531277607833721831039994282882381581279613811246198363462507126826692212484377987469491543404980597045332501413093157299899150128733889800360334816379806901180827810909126040049273333957431331655912669728062378295726816296643068290897521568448536187312140314933620188558437861213346312645075255992482686519558922912257157438575544033281692618901538782365280234522949146092025676396012721268601127842957047591007037595641520731017728670150435988130570397201612215820979036504257709943690388234479771347049257032238295662119843628260014294808970860824427945655136094031529524322713763626410312481714409918749086067433738803871788534157755163875675527424619539950989393392253029168563684234496799042094596390116931339765577148449160528750964089329293943771498029148071335557865177529208558085181002079263719089567366793969794587725760559172769163798494883309468098891321538209279911958061425358704500745886892817020026794035496620984855174895156865150107567078640782621026866856859818426853302782718803497832365506782382978096615308199757888212187640789333192652173679706957384551438022290401869989961235207598892124497055796516264691169655380028841625753896882358530945635528002528423126561340157586909303050317649307335397944836615960561442906155362525969177370160301477550057566070392878850168613416105575070678458898577812830428813465029608319712299748374524538039052372972301258271232933105677036745273799800417728476582873035656656649600713596244258715809875226306783078752274959039914140189243692868669315742769093108483603221145201787784959112323195563656170409658867629729631132833469476741200401069394999565716550884812468493842563713348901471216031557041714094074035000956463269939224655237843653088881707362218325695389668223744972853908304933813547237076726027092179823020651118786354451071974587206024855051374382194487645429735086889511444770294153629897951632576731536825309347050075283956861228689806462019555815628578690625488922817313670269064866631417561562026579426647835450519746275208418887602622914247169731380182508426165319941595890837859756463896946862549371842370075577936204047473173311860565199160929194907695194528784625326269025865684550182870726207938823012473188799597407538885754277241367818865947891500123076186120381712714902752730979021704507776971252042940587708900763621992689197080304677709462906987370026579912191406971773739438529319619218289942161447080740385903827496898543676359969344682390948813934033165729056627697200187359674150718649510101164286251872970854612588462792395170842941869008543934648488812429076411620298740232767515196874039045484340334595465194458804924469353088823934206233481137628560573629105254003235256179375239144848433534556667336209992536201762887502707288760579955372498361138337339498490598829894079137418297822073793761854494521115643372794107372477310587202141675779782505725911053798519500960503864653164805800260503423276511773374614538462950997563239401741878963168379758260806932513781804184270713353357874761463648121533151381765986363082979765101730111320453117963680642875852901746309658570971770782613248939255416276864788652647606387370828688309732415397670662761736214716927757398992058426333864031880023666820392172624824564311685908086188639059752691207319492001376165616509796155299070468740526961847374652217125274572128736500480744540866153376313157077680503213213960819514768796380245069984835595573583652827072264174636682799281487721843758666618282304890184751590238838009300730780356334408694375708634563007003161959290776917307310775866841760505163939527054175857230038623029358336798161364919979237250682534278377166041387968147446837732950514230388217041074136116278987516827722197866353961005262242019428863489110974300595150700902328633694990617712687497388177999445991083839755811761897146430747594638949847667468053068957446241309683846119848278706523009355897171275369421186087491764269928390758723717302948462980878384998779034181879673748589564641349945912370725806166593617728805560330326904521320401376579821977139612235750742907850377161672306417925614097942647224053638571691940639175563561619888282304838810243738174788716495958049556470362943255529912263481658279476711410764078893851071299714171710428626930092216665885768127377258370179698990507802018020078033370520190394143661988450390596334735498166812774151389694915795612806931536399075336978265979065780117147405550927778671536883141636750096706611156262682169379170578737228607716178077533627737834478473108648151835672707395945889449859465856616924145751024344000302038532384749908074817297593703441319577928362024421084758136256634617891893222925705585296098388216588803823782910583193322580850087199750796316941715873137844865549372982860462666874011664249234699690162622414699678825558571109129572908464923632777261900234596309531080403388165348337253680460046190207446222236307796088837486022816104553636556572566287383081641493841240213585806268220901318472584198309601836236880509256822705672156318967337597639001892841404036420081458163630312307075741826076195338524458376778055206586786695837871602300520682581766727493535621697791732483392440087576440145718861229654377097696610353156702786617527292757032561794371328701591925671901517101619007234343509840012478593310267817010169646999633999954619785580114400601681568489552877240739158728880369243215058057367919475837375684389983407579232025587686546415906961955235530134462990464987966117309381260437530726668677241659428595909323477268975680335001551093998385609189629482648167856252743046949560313971778505352837231213800973975008129416588181769218557819720968577206315605183981280246258238287605788441643951819266195599805774259943490117734811383417131325633376122924613742738616243851553855233645246369485806179876423882170347805470379262626224299267332255193940574413849859275088577848057061345794363673551610134913608137311424951677112453882488290746805734249504435855515902087497719208487749063580492342572302620472602317423037845776770076701281347410692250843675139693532103405472301551663537675693343294986796013961230157314588389405791439357453917357382101878771328760189235597153853034637219867919970558962295849595718002096074708224711111770742338047737751322649308494469875457593009988271801138600885869991512563473713299089255694958943438212222990377122288423829389004700905260377191742143770178238217573292715675131425527984771370921192215627086610497822232124769090636736477039724155475564834831880113100122116038945281893301563079693347987109469600145972025476587385124460296832816536509119867132235617670303323119162593589603508564885169875603045316943820100805559326684754207173728609856543315061351770035569125501852038919375190347551684339766875703776992802137425834248372087825350710768295991504562701568272047370822433714464630300305326198951225912390958769898815542516207130692008443221729211170130879945658728676142632713896559707725652641765418344066705048095459130797915287303727026928706225242373712488256309717675284961946129850166915769944333932522499997139398396391134658911701805443199395480194291496378203209815195207643683205979158496303056031601215958660192515207866390069075142100912477287757437241426894572746264458566067265325442440250947827852120483996702879965629391795154985798823186225335953832412741625090275302080358774856823522878624253361439673390631386654642911108574836503360394800879620531983683876650429154764986995313548904071438259132646798132349268956820271327909595812538959450086677904666702054444105389782842498372887050777079158609558381910434401417621830979374212007340361186967776902440059177420203628798865597846971325847612324798079287347570703608428841595484904470099230432946331109134352231547173594323138876852133581515775844841324161593642989609267229759451864247063960451350638275215606183610652309982117378102815520381996193798720995165713448359227369453666238247541351917103277025317070909559289264356028126889584438574942339797515398672182328087553452932418870329442699224552915028456375315835641980365720711404208938198505576279110227522766081955559586383506586415334305521287695491199115049996254857381550841292280250334130122545485457024909184592770788902077673797410474696254221013757683392946246902189258113731105065137879835499964710373113182186783793677790034742923401668258582432788874339690040866188338015384456630607990676697372728253088869603513924487230602186233495980800842676219415233858714298910821350583822399530369839548049708651870569010049572677476378528050947034156312514449840134868666979673417002488529340665147957647887773509615588216444370192082195646001727625312089448145664829906302081496346071802979986118860312292111764029182796620682322433969814927110122088307193056808946286032664492953428045706337440807054277059576808943685745543120884508575090409331605262487175811803381909551745087199019194313840973192931256684567387801130097408769770266626624193202383757355545778565497175925261593606365999579996962110725853888493258212354817617746765124055896648851061602060063295363287788967299703387933667106010668998471030891110650356218446658602489165037280301642401677367597698807647856046855058282241866488017267771380976202958188454161704653439707624720343419055948237099197312565239154675046477087699572772436517274495446848527423995867821748858299818784877606170182866378156201795076786221470399033013456404066529568710655771928362489849634396518271728559679375032372094605972478953357218537087189035478811541609977874789090977342519472748661810602835210396475663199695549416429010891574855907764431491700960173728232057827467966901878247573668780496198141050220652043772913273771400736267455660018167827004117301273961936537592882728993523915637129289106916261478622117136366794635075223643957699038193619912377626318460681587647396677297024396407652452500384357848372769657232259941247414784399315077496751986913777995081265956377775288864116998632606006543367806667240255245576911574924131754996748417503715304080024436869381332503032304883358208385105819835522760381986755968529995349242111868276709917745958019822137014458814077939733200001213061080065063353421293276231876162889759123272401771914913170642649742662136025096962427027709170538985177403473110503610932457181660070850611970637560583211831561068032617305627035847166482024313357716524683810666828374466420496295459048356307689630486400812245289527540339620936912266888749480255518498278505451766120805216798288472251670208703914128580711467951011965014656919036878282179961428434712777022880754000417735822565168803921324495990109350097306565314723845910300662388802828147682548532772995068719449967421757995434920268551305050223143360220043156559791109259953475516157393073099892380624342250519384404280819916482459784771467780537964738174989444987580389063036269171116578462873976680023378971480041583431700924388726158031090036064294984724626340664008999365600383166417835350736628150184764619789938386176128929430030421491056266448127151806118552093655139843655167575200652232526082494886859633410184466937124295537177471490483928394327271794136318577525596239917503028596619275763641153667575473780179335612132311514234082630871712713968804729952692664714153321288395048445997200646838410358921842209248607481308934820658455862483147174511634517554380907616865986450206033950772691002254580697081378030038066674811417322797898241076124306276907659845889743197600742273494607313470125161126112117391815002497132521726512074269178282187151311129686145758225389821815436903495810090564771011676444989290479591720209755730173169478926142118081199647331675443829375965158254531381033126682952539471977374705675716332851126749740451630592904421802520309467951641532079537006936213143944974467125322021924250344551940956598309990724331493487141469659841604386336316946414823885149746707205959777766324387509158929144218981735120245949495824934947848623236064156466117288483714753158111277902037984549922048036265122353279645582393352153773302793845884075634971232433952943525888078982642627527194138767750596026134035737590921994372797661133516826603362287204643884390409676573993784142045832417229850782543523116391095855877840040633637033075221596266325435080385948961792274632888285583436517242083104128021803344532105853154200600660049498809718625594697700805033217200548202461320313243088313459134764011935420696759315520173806614080694583365455602199135331116104268370060284672044650983716594402469264097389972308115724435729913206932259254217869861058588077286102663241837569814317210715115756770972528068514557022347670720934328940323368365662983390188527805001445689557850159225006826817246966401319357568939595913853674248974822021306522346577840053552883751168990452012231597370816194084544322560702717108445508306700121857474323531036103861451982853406225358806011827850233017330609350833172879919649967946055104638883315795713218919147849620351504425674938576005515405002100046268841848844462928301819298022936143560351172304615797372752457394156785042424553220348741968855555228705412714514975802060410852383268766318126442029448584702347736063650895529986169434938410167133473655848005618659029906306771582388422059329888937542881405831212230347424941598462392479976549577794873982141015143313184901684295573781215376597853119498146874624262103555494178479313112295685570516030665645019367715369871797423743864100960279094268361141447048216718766238935858153605963782428740079706751655375783097702831598701316975054639165865676510740673712345434685980091702832989204635802750505216661236489075094241876080383518196965285126448528601190085615875909335381253075136179129042724212038424098004868592929401164307506127328220007317427963453637122523795656416201579946589665172748833215535710284181489357737250555789548891090916512702794371128816385055419410316615481528156045419737138740288348468145952778668117018547910326191249420822140737705843054073934089107327338389216248914379668353300420205886806570807327195283663787041989098890076448132327146800690889598739363172136363630752473503891837680472059488808189137566447183104275700623904307939967977523425382398846825701802271161830087531987809627826454745774624058625131166008117907615315268975815764126401612556820013144708547089586644980324336942540576425468342116099214592144774774672384927473579186715565377461946554239181494208992826222824702426611378688565717976209484842940386596583645750955683575724475914437860856510554781856229857040674956909779931432997827488978602381549363644763703684718808253080937744938746209158660198608510923744602191891317748840609402569588202233361614093073184898344553565758074509697601244075782986471978979529836316353734074548623702551467173830018238096189874940724196107337721604787954417505176176637733866824740111582205641268217156457499563281907088830044415951727731655837229314498979896627287467178673607144914175576337308564894859624212212292746997936878553536767896005292185455767574441952620080996835191296115316349713817804515209600631579550433768521154471008067637053299701330071905872780637090250272361100710268681573093865819636985104778366794786487126658596945050331689208697716313945958018578382002048918252748507236102643259828364493445804220314071636134734106617767132543105680003313003924533580496696886216901428691055277243366572794751777649412275697099079920418169799731759269335381208067566646884722080934053290511897213170838673855465478238804311476846267934415940372760339244235891382882345800444633381358081104270633088537675382007981794017373117283253507644343311218687017472443952344503534764420813817307718650882411955571240463691494477079991017581932250988131748295264431392606292918328959615845358517567705754838903711948030559720181769145319944268227644700159630123784699855663361858171798335405086468973422847497588994230040666131375869787870202150551409794523921090358446708518171856636300188671019605148320947460719523691170795910026106779260741537644792769003525733531631054253741039350157541853988471492357759087462657000750072717851587324465348760345852405451005112685053177755172949764178123894695264137200446150669613869370516269711497421805564604418160546958473762294983097331153010253270140128306874973126989745538238204762508658367263484572735007458735680815206745619248455587614372824053867563680022322477793419400374136270170276021622265374744617814721831704511190222579679242195049372936895588370573283335925466148512113264970053839193883145761415039616236237348742164321873388426814513924055513304507333239945206164096371644053455408088428144160798163751920456818063934613974373531535552656168377764801076921376559293076629508113739636388845161066482497527218552880919906081896315026625808290637161960680877521322534411500948423181861722760958787475488730579991246937346615351246370986219014867071329661129488065463951184493145425554215216631207871067149406332914996319946391846221474928608363929239773050390311604185762121159644414645202138697876120999592777060091980956140716339731678028103528358046339837596228098634003831862755443040883652790240159124176125997811358593983074669700886272947848635284266842952484272889533229594322485752159411014233476959163118861138121426499176015481643067908142322576093396216062305014065442670637875200746768258312241817821585120801277696812863208888788885785762842482616669478712152169614710095132998865452903295439472397111507403595940207061459994029447571277860533370411404493101119634377606808812940557431384871731038411523047505957395710883785119212022785342754585658055619813990596598943414315512073303115196369416115382377389811744886176656337840707526982733831711481090027958252541593648451815052135651766033589695192057374595682145975649036445738197908760516693682872005210837705238784507004744610836639594300255187110767180684189057066098368695918718217358584701864216185147821781055487010015239943199275896118770949243007061918081605470402382409780430999892930642506666683832919340648325574538835147131129673933103657923968653922606881499440663206578864431438985925307833625150421562518932349661735439744676291648790720673981614656680997390251730777973215697144613115126009198379461836084146163439557450152551512174336656893757183081095535533339443447834941242758177622637239202422739433966922278649004284570387882581161234632164944562543507600602868273035897114695101157831514736817871470789669672589306905533428536740230612159500684579612130854854549621700203399563184810314910638612301067194645971545024993553011619570076542446269874485487106607314682066833983895069519841685000440125618423584758935229345098925276021704804686288768070046869501733225304231532426865942501739655079638322315423291145105326626058681096463755017083575725424937227828198648815637945152360078265425122506347014381200788050489062673289861933378464990621851135621600948384477367418603890090487489181275903762560011585356422514337461246759173275935510250291655506974657086936981805428789616122020702671114031530227849718003195604533585285744567342953963745617111940923234251902163910511222997495709820496665031724391746994446559425920329059276790243611389590711923455533494399816690225168241879073814802088854547624994982533994827382768081191913773012173553577311880339468786435531486257462939990882994668473805445576398338971679449272777821970380943842855468548004434648189060384302872956920935916693478667133550872722243511195899716167981830519635296128231550062699254469500066118958615846131428725631093271780259520809330535043991605997242794388724035650325679112271539440158416336418720103464699658515810681010209198526347760292157498291116392161197683475938565857037446848664788308297343289619408248771375802832379834487276294865397183344354523595224203905813411680197225458572650710043159422096563975700620777991428385959541657685040961990754080601698923841849446192495437173368910116034752357295040013209001006572086820542422470838568521080125478247083289100490101663049770570649226419027540584014477074474665709192207569551256017189385214717820837640102477262391910766817512701689636097453466192514493611602300072615225840358820959029060205816439743097548568584233841553364649208292718445646423225888821323662300002763540214371305055704812074711575430977194225007513903583691235287518996646002344764005644121898367966570011183165648710129865988384858225866768532745887244608175075304627316440118195003096521575734038287004362358662837527351289278141988992008443046616735798320498609713678075742064736306411838039471755436070062181088098156689970362842826766921645686355904476414647981133317689935579053110701333812994955700885593834804924101979738331431832627910090840994886343822382084081282690243630380857091388284997902624466268026932992093357202002814590046819787249977503844885919712651044625310793995666676994677134783274704391348469421435161992667226449314742615678262999642234684402611503973551293700000074571920193429795820567540900718890319580299846988560519141222035660101996410658464309111768798696853921238268520907896885022285198276175933123617144735308934997873824518292985631433139840820060281878950807926335449756329739610363118711144207738073265655684743409303192329109922178277362015155187487595901620960409554606855205887706524445670780262514709347679438440555237020145968316625626412248029099477020458837973461245504006147221373567478897157562619602756780003144851972249526337094451764514205768247968489571883271758172119530322007540035774193668690193257189519978246080513010557670255337326602776046990406885940095258327549539313071645230098510525032690900666408455557969185634526178929974063162945257867507418284260434806556637118462306211111965580965822140796567150793330393444193354145673229078303556564985788920132935741933089112832047359577916146901189442380975545802644727815754507493294724610065270942418507806979209382704453610008594972964481218998316769272465921971764989971707638933733965423085483419563904553255957575787404629887524836085410736813197208263988962370781008963923617801860204524553233127061668261526104929449839384569693541184613115487721341289798998594864871091132983704541484338031202390009486398522902417315983264557825968297924742056441122397815776353908135415473701890324183914253028564570377837892168696612853167290475294623241289023986880090467218197602882090512530728360491383125481871211683086653089975880637253743894160460573091467576176251852022233900875115204211521840659168498783294808486779894070291879798643062534233228167836874353111801513036729805744854650842103886148408603955367398051212884562345220655308581879100661612850296590478086495778804130869000362771470902494210346319135386232562343834232689411780414022504353586685575172783628653224353108214888656176831846328370302173327339746010846462560897876066565362710869382933357803609843866109076098252152889898489229847114102512589067557483547359593136372848979845080453595776694639457481556783393199064949393680522417852214165570125053007446711940767113226411018227734117266393451770922556243527181658834461064911268995980116230632689346534228112766102467039507170058075353101799397824124153991428281925247298080008042246621617082327772953552185096621476190454873518355668023692647935578745157624363502774739625913615560518539262613344400802983289206861630073586209801770060677562426367263103371581843486107510423649342033996338337592980554000373478128092403988823502602053938174532320654544592410574623813826898054679497113868658192960629851698689246465163575600263805827190930446479789763865673228632121743908216489605270916407693252999920743771447441377227313793063168129654989170978762676471510869067712519115037704548851204658860096212673543510161847293925487003542881377281528400804086515498771620993563579157601674317938037370259705416400249529845999406297493133007261761353478238444952054843266791547236013832702387513736085561071147699093643148111795065330143943775528665275534736087748157931889566714548718154814814227386086420587335417487251238967136943034263741612781866187230741321771543084843831307299363868798317202209132068695177146106462166939213206424261233640943475356755414264640690167502906893366553597437174947880578920064573792015638032919321555973683335936905801170788964231098636475198655074412717943095325362695458763074189638168356120122204031146408529161480625192957868374942536739282831808486055802639446621784490546175643584073745149283582785172474011233813107911490467335086657890257977354053346254075606991705941123972560922695058524327665485307310325294379048904561106329914945357328497839419290624766290980737227026451523193456486744685407630871495931913460244229719993020330980467511535895582778631330715267933609742119229649894316924698668568469543401170028553831511739315250306229238993339969530203520063981789170421216947524462284494310707404361259120743147160734122875423104397834639269841055441781699225509712419217607239053722738521377336311279924935291960088876145083391555526036372395855854576553270653960944389070551012044553165095426138087244924595427138355650457716902919551919052730878947165504853961980817545086837549920520522241569855571122191047992416620731907807000549385470530396103999071329985427565016944863775308637137144831291414838756785887198145272929218458481120095687204836610351424193557363760131592910613508658370280786426148511500392430542507828576377238508506950295252074263216494293949500029321063203439242390990255895300539704965804556220837615135641660793003309688938792528480272867456957694255381185182695559723024267796849286553639732194477588998610429693391864770231371430378571515646601713939482399058527308786305785313818838115307844589810035177528105449801004495621064788637198901725022791040189021015882058495781181591560056830588555652571327463524126339020512151814971823672812971963696759829182005917154849176032497796140246882533330878158537944256760324942275958476140098995685257218818854968894330693616336083147419378428165765195179586413908868483553809542891155119061692020784738818637726869369092741558126996700473005857334762306860159131767744755551634491921328355564285547064022246108945244542251065507124423520944924260818690874083242685417064645374160274046389038859645452606893597128047862881739554219647590176699222522872176504996679701000011900328669447588445596751289172199874133564835312468586659840018685164768653988510883314369033616280644588863751907728084361375789146645074648178633529436633382311176535715656069535670678976533599188969908790974269502349357013146043232373730292573572806717248161128716128285817083957157567896461499317707866552539724430420848292969321949782918934684897054593526770390321248377154580347231488726800775624594934905332568362767614223153636933028632165160761603410548790228391237691106320359529184630676404282788153081232706372040508104025316252661298547372974094463812885786231737251047711717977374186801638835664710225668065449537904649790781368969765949650857200752589961860800281664927101740637973216410566529780929913482215873651112037644113505574529086785594409106019755850682587614522962271831184135781920116384335785742677950355409260848848074933822581620419905502957334905703304889597854723490045808836336924046432324510548286292751600146187862840449936798316749091370426124441965752014730201738674887574212280250529081710726845648867750752659197115087609029679348445892293197130502094276653540157195178130719481448834975321613532418584665264387482041500112105480118981074404875111851907739907131292259805893028026904957289635182813583283330553761195961289879913193385896038175082426867678941868018978924533597653548536425922247378682028517933188957701044464846621933820745996286013102719583687397492505797616170862159108510792541524974459075015403107943036068183834611944565688909425744906810738596994855092562852021996819943795723633592174784237457715550491909652803841908458751521636817664449215944144902536276302018172410874854230260414776974041366606582200957036329209257068643930804541356781361391863222900405762052467028381500706029213485286533019938364922310388474359862363469893086656247492428110313472283652406213072236462268767573546633091012746135230521187828954657623543005459098409049622061876905991488600028243280324887345257759322681661730520924158388216021470952420345732735988151152087746349385367132496718711113905611573447370509774936109907091435555225296291837779849498494058560090984063171388375634296896249298718106418882447073805312679655045149634965937739143632580459751244141357363999780081088994966118623104123311624025280019997529250597013664077073341130803314668623410433812036669520270317169958865774340420857017949788257946663034648744794701602293472665336121917812897064181506761358992873063908385056495873449595282515366013423222216626866186315705854751660231452150272853253966691761107818651097853518394147232713921703651787256387843270121794100882210354110129111538452145363199104344956291757440024717331209743316115064641935558013953239278014793499083344405866319816108027775706658805790164588978337054952641136653908431269205994004312363010473206666113331528778582311851527921747956786944747286647184701735844401360967960555735845593226422829741092738251754028389758016629416150943648412723751702758190295664552468485273943805466890409010273871269182070094235999526327881708156619320998852251734852795756829898708203799425735568617035668969296384122709638393921675277010138004583299456435482193245890264375556669704812230130473092042126796755751402583141324040726644609709527750075065803579755610076703275185656578820032426345319775824231226843049517033153670466110455662634349104726349923200272303245710988988163509380300494207923120216895987305204494744746442555306787951452722900053902902368051262200592590927733675094226939258272312770850673312467090298250901543933234433208016142348850865731232137037956593175345771618433505695621152882010531654336928101258616980133085584995700328111337711755222826507636087055301022085756805567956196978549834846438902189174765401415171179248948339957864590743151145787591001085094345023141204180119386995728295415115556153616613884065546689601960114494111991572607253733842224107389279310624032806400287589631860415467903541637955673943151183492614236913525407548602576857605165402347674754229366201843562073018611201126226429887134185569878448322401045566315981676982515542497109700004354430936517951862828860779656232462194792556765806684125454091878814947515521022857534632961713904680339494286460129254316538314521878748425307043039037324034645041413533216060906228678038653107682060598156767694886237578347848337945678850988802917877122263012133720204534438337647486951196079066880163982114339208139134946913012884966492207545097801126062429627116950867798616990991425369447671864888283114820503703061295289308500606999141428318875290007960603209341810356679272685286253412071345556476869330946919245157593936494953418358542538072001868891969878285101601435135836529270167110240543428685440794760297585496520676842286026499651595322855583494033944967046165291607408468550880174490239942994064521154820099197361891406651067990731595999008858259908602532443334214542133061582174074499368103193060092075292408316413582317111834982682091430694216478275055890690657462871696434550546849122294061849862273051240177998688807608228092232737723863726799461206320473025071118574435518078579956890157289674488035722554006845117458709678006103140603605312770289262597883370786164068592758328140738935147336891772911525809772855106020985095855111004505284031606778727351860916451773817791624436766381892935511120905843464599503844166150124552595597683936220343375265194532740514685178991782360500290367513726755663140670890418456491281368310715551388637669007389826901142467284641800525535767925734888938657347598339267601674869065262719335900732906137588860426662752299037027812744973665057357235654583611298363958638896843973150779303974697081724081046325648592753771617411549298440398349467368399698987792629939985211265862337283270275967692600786952758117897436724887718360918536311881520235397372595671720493395661471284750253623017267193909215887118853033461930865904004824522128170649921961562196941629387361700193720238287591782084685905344404504482335644819265435348912025781137679677284831654035230332216507459692802622410495466213315624613668326146229003433806662013684198397820601095298518326109195030684317645361497590662126711991376331095326001372083717084820183093721985792863451646055189907098147721343272999553331269464996971585046924642410442409102532338327061587274491659792931392903364446522136854015050373377600124406058164624051568521581447800274781819245841631709076091446324669876393304225024355882737622418163246293724422997524334149366272053577045482592051562275605931151748642746657275149207524367285115964656810207496430061593970385015542335102506694478016390778660294612261826186462696606017796955922990423139572253611961213990256098437231144942350526151386215405265207807412522878222233199863230311914808774056581625237754454294617033594920502405868074056051095327330430246558361913109534007265041319031509642707780611269016421905505169872974579776617727859533296507176279596625224561841430055652857820921585842122224396479697290989158432113579827631749694863114485621458673864973092584069599318390064946874141537761957231644885591938094039302718532141167305206216254930425840099366410899320103894806088836723633968637167614704134851816529012642835684768049844191295470148553879168883719552474554842543108900357520831596852638241201450560882389232641892731471599151641695555865812331751969263211398968639537516369110279143753492932951976312896580887167332841703912108113368152000444281313435062447862652277276808260788234841577945641453166598292107981362219075159328295693884756748169801165430243180022842121512554309122461892281630345112532180491576480464133600583938756810250169908346393441507877269118729248338029802247889543319020752362637366839042876310707995179667559819001928529283155495791932361218488408771379711509672933759695772217303468316329964568127816900853901535278831349691286367838341005648162328772823607651619373277341822947447912981255546617687587907724982399034881993220193245915605018525833353428079610119149487377047337575900670935460758449775669283381256029302799991542284263157061210219927569983149864555124451554290528073491286775676822150846342897976595410254375538676960792753793329715247148176242264522682632048977482797162966937890980883022120287223173089199692764709840940366016702652680527355083857326960497756059801408942686999748858184619592414283705321365228709157233983859350469491733947365186129661452389035820975908260546701252797137488206101195113314516469534790832225507814330728302415646409808691161076603864787508836404718380136012895328415296193558716754009234532110866852639016368024491944834606468431314964385291239640551896524534594934160051231932765729292315312532767943892960509000954932338408975433550010713248941721896167337995585974143337043433110999816657246351243390645665876040975941414183813443311576518254158580796754063070024442062685934825037079723360116240265880010317119403466798598653227357269933984888337807240901674602988019184963952087245298694635524601713661016911222994477014644356578531816770559155770947964161983161050034828732338860560396730018690706358686809112433018698023442535179456224956226009284977005153951533916662901735744608823984635796695935165422015603579393936759948751154727982954213152115780738554485026784061393814009523798100539607314601749155742438293056006241852458223693030881889015443754699516726476967040895673989908988808552133018525157100348511505834962875374878174815669987601368931686221472640849496204956000456487212473859098754747623480051351093032257878110479760339877316960650926196083616501577400974354232911414199663253447268387669871628175804029204673317931235673662028130568094345145258318849074170102156027668254684804685514839371659611236315078725521748206697931930046379940634613043986903726125529505334866110681670249808215582973654085836478539874180613681499179939563389191074566026563626686785971262059139535455775487882526559026633438767160358603613896903276472486709288364686788406875589242351261639986797005654655660430299085094250768497424371926435634042194123409515134509018836860240060255635412945920850007251184030212957980641782616695410107186326969900321033714873935255942765229853123156261341252453751710753782379355823085638413840253223062252555234848828576062312783085901874675884860358823628271877980056096261721723492559516710163752788499258891999392701458641783827866019724390075474945928658136302441988312659771768107572029333057934435937659031210827459675075168761926799174745544483357605402819978314638428558003521375576127045181369019902782782983865589515457447290080971847387194899229870860012933685548840576374296207698682639497158194181757969823004936928148684877043822300251619858477347992291910697667606953325411635744087526452168254018384353149795660775675149745117645253790327849635636270067433685063383192079302130712199422516697693689256739088782690715956150032827768930508586801201676647360694495519489833327844375222940152112686955651746121550903936246907741825143582623196681421876909529025395797659398993873923351872761475586479332928442464335136471228139834489467882223296272586934974521061564520246673479353221955092668957928838991249594927229791135485828738290780254654954873168390658143748834292100799706560595804029896296358123103349246917364046527948434429785011590970319726610129686166285021517817336262378915905457247214023975195096179381142951008400464174140176648536079257386397169720118133997482879274296884061496552573674501795928670127076154399710016144989400954046106989228460623094946068639643143149240844483249912877994924521664806884680674436804128705188503875864305638677847005580980903521171490541050693352099958925186991153311458870417988842787052656094366455563210244257874715018157076025439319040036643921058568224256935747436245055644808280492853654089500030834849706210406510623409246413602392097203012287289512677900571076624944229500392393688469113331308114117368089320229749392277868147408558936318037930998914842523973397436842951061190197517639143858663240052378836479818688007296175536406921661914223194004617409580667440149652096551092141475478959659076013886276920296015953502045286722418725870652030913382918668820993797929485191783916059573324241767077788431605083687502833511787559554004447730317760322390697642285811877824921841667625025583008799953729245939082905793438471145844032328181142154317904355521302344514937861796470183775001974607801660818284182507437195683948398862998960600954185003073799452134281353496058655189302965730845569221152438880491275293090958955085456133753672145357617466015112285998703351610071564949430277853980675166800607993989014906180476637238496700126130993236977742115476235557782477890309549101958143192519345079301808676351115474076351847906951906128894951012109687789719469072175467675914833301189235645286985066950693126771849379017582674324848223662334268868739170475750403622746508650787956230751375887229314981355060515855276198246590493109424915880194792469657241774046679238754952152344076972097753723539548403405265858792980285538047172419514200185021468210819883449520288269201873074257830596683317060192000180280040883163503834644906031820260796472859818243096919971523659377144822469870124487711401792702137747762216709728958231081521384690254852591301473075491125852336360048342775601898490492978870362962080603815728137453231544872247562667630621518266517737943278982409468179832679097529325333717961102966924096191081370948842389979549724014536330320687098543348270544339210187439861866422889451455842432063668002087007640541520624505711330231126466161240873479671142189181114998971948285082744661807170036859417652397806019714180674784786966342663176043893053181313633605825882653409019848599414198746384724078702301617863029821354636279571682640993087514475606415425409067123949276188610094495990496835081638487599148211926657439441621789453027297281328101365943977743499476381997661785653350896647512854010468884313877999785782971089673952657969069286229382647210899692801478859188878802341922290188604432816116573656847596084046248044303093683300332884676950947272260725428045609639180385346336877011573871754028508113736240964081118576634696014111066884853138696374456232827262266148433241847437268338314715662975869672807155140797444151780334375513079577982650023872151239935552047847216932991709547730805529654785971830752161449097155808426184003194876067510605483361044090764011143972739122014347634757167662104131311568738138280263823558929058966688598173788540060265463372239574531033474743592896009705463708667256173776156204372158103953956899641716627135169620082431206913731739674530072566549266946490466119346230488376170891767108398955003926657848232010166276036816227791799488308972128728509554294875666024773491243345216314633047385769904868856471404108772554853565448132912974795431663514053560591326231269663586932119515418645757670536207194175112676305079184823529868076045271904990213849217409304536557497104625225648135339857950944521956561318106269939885076563641250361153772032277308729537532803751572852283388700806284934136675167422906686362462715000712077885183336029252447196458643333411867254706491974237236553795122273296092816273299985217486422538685407283000916457400532319450155560157763458437151986672609958458471137494420062549171442962150592642372542771675802916175438231586641892270734828834619035135112486055948423993551999122028309986456464493959475258123417403814844893611473985370996839779596195346470786983125244463484894140299176963430256447655377715341183281161943259955393527307615618567215031909201195123122976995717678303948323134846166297012204753664043450314739264159598699203950077228611783458805770164078708846050937412808328785464542852772744423636917508624564497732973238678954904372256575387534966322573358052866244312988639237434965324737812806997440435627317860457538663466284065176484556145208898084464909684701052894270731342142883477431853977801797270771778467932233112019492379005311060353332368606616407792855666887249536064527258939954828135658373373105668209620366149947685616156418689464751012330204363983153868373692524917640973962078885523212335349024302789290711260347038153402593158876290069522749299060880028261752770641551413039751516510441074533684139025364253356361416659625523167800945691836868715315796697974859509523129438921390557255633514141246084205121358849384856743468125110619436282659218135561322964642241906971465449500898189227984718312723593643316424215659653938766685917019836208311868623610895558988294359063572877414965276275324261063080905546614753875359748822117460101466812398241130481904649122700920517797705268443871850994215844092128488307797316055792607120859329809726074236070339805514729943114108472514859577165283137491207869042286507927603975531316405127341722373661113218078303930325677547972813365993064042896032023157590317402585709395031279732426264550072464795420717249952770994099961595499347422307763259367742456416356818087582635302338789516771606138864411794829262261636246888201399314161225551442406144795111715329630755230018164543718574107790736847515969546794685853395564516861743789293868086899541731561607703619919424516549927634849893612544246110899766265361878026318297885588328126554123543668214246182068896711881718471840875334331502336149671344169558310640588830228368297175240822896057625020920870757806459461572901106406908559571606356623669028824799587241505810208768876610199099286274160178149285125071641880247817564437616067141922755598195505395298009284670804677668262549392728640382052062471586370025887325113729682609175290188827017966727102688009814923192310767810518965498916295599742276982153724782848502807366418952212444645064040078829425588104388985369331885121369722080200903296977585754568230163058167852048648679006685457154058123643055507375373193219522458348371010320231698298546675007430506562883330394097580179141064613713471901572669830102713189893901103592924687353076718938440927696545089266727879224996215668544252953313772461236644286857860728336407226186463848498864364188579344243706165508440492421710780304661007537949862591455766958190332785725451416434993752311578588823327870862316765469492672007773186307003564380626069586473435722541172427896558185555731567495654145446584362401565332802021665291056451377499293036688365930455804563265117490564504898808817929940788733664068009966059120519921450494749384250374288850188730746871671757103727586639846601410119915588762836717784564647229929109734396982944547182024229107833260988866333875624519217933094675844293632084874132031211035213050344167898796005522532173602575189482120030568504752939212003064253282465199900439638074703291440669924494200394964715100981029177758468469705492707262283751191700999363467641395552618148761684654182573042908193433266831066232097164953246363886590351497780296669818898401186312875956564264272930013256871679817565519822411483296575339877123981400945605265347991472045663049873692256283529681337806860389232597827045928714744492031490391732272292624125775413502199647147148462857710416951812316256470041179592855647127278274277404132053380010247076947984402606976243128402158147309266170353322362852593143237353104174800181117023489098843011871319369503524086928568816539252104404674644751451230144681527131080335451227479239410516100404326580278253063413853035024199926831853159820752891922035301874850863803368248281877440253501397786821436518108758243819873649314719155599181168840294354450220952038612888008548705610092583988166632832913905671282073583106857703661014263842427549266197208893736264111037231249105944391681447163469921358629664833034976331890203528234440960301037315350619919783071961332356144356794724550709146592071818145723588962405221242769933819451765971957838244063679584892982076660103296132277104140795352441109125609343287859138238600998110244657947320647153325683664351695954316550701335293901025629018340680433717417912156748116432059127042895476905388564079730328145194767440139243325468440850678287779470420009889589907749824547481672043621534510453432935308852078012284788398740535345586995357470925018473545249166431313997888918698252193813957829753885828448182711454681831016254580924084618027347390788675699079298326729873251513221258596675267059411971415077393229056131857211801361940449551086965315860394394613458428368160894445979915266221076539920862950407135436071002044783401066060844241290147205330059597069590267249946422228607227521084802573735436945244639662361140896877935935664487446568669763601926237720692535900780961662541746260370424867891027147789191417069938735931117270767544089588563671825156072004514861312204108996063613099921894995377498888333732605425144159370581178309977882759886589743692893571382491099834118621475486898224221779245624165456328376650296441717775448675713823976940137583166966094203848113646307741051831506893575692909235043117895333667197241576743227699641782639280489167356597409610963173448749561869019413908013056239698631364346839862692894224720360965565013966355578366875295382948832040784548248199345263663242670222729629350037583908976243957688643731701374500198145563202289360222815101925220913785893502491393913926786520487703157744329373150980584885908942175118878028233767104001529680318465184430954986173892244210747956532172488427472980573346559939002019310447166578672773928920076820458880580387065286522501462626339767675003228365083309816418509455531771093436424543227782723884637959952653913123986247464828687848096885619719304826594052512101816796428379119484378692366874288084758972441375035904637058094694709549698318099592211229837686296979953770228012627570941870744894911366311485233737631827230169878558727869524775000992022071780071091913903290028653615412020139298437180714468078472019279703753007822943332307965427721647472175995097130253146313220348806328610591872551923590852707281226616050667193683337980406498335865555632816974323812629351698607832878077752440943634625921130796908487879110118472366460866826883961448744578057242516100827609073000260322667191133837917560316833204409066159137735088516115353898294480644795697284040553900086817934010146404072985577652243691660910445588763474886000154997512772205481757072023225107781612330996565389372163804535975243258443590591382467305674991111195180536347891995760481089910072909949847046796850422967175609735716897585843249311488036541557079202719288475514602171785204677991606038498441561579498589818888506863747373107644870371078169606122205549151346576374906589455278840220358954693058379343398708329168370680863059727922923099852046159932168891598369219327556473048228928417517311377011004800920673676164459228655685048537297612088910640242031915584239414165121952753812614412373160632419084959016057485528750178112357108221952879756444864065999504907755602824999372012878570498883080907761996163941768833615483044840502861641485440019522306057815963252237877204531292366754614839177951225408526504715299470017193757184764486758017030483314391096045295378941157602405840955083139427227286323391130400563239862127402830322829720298242717360592588627101110999973082374183614760279628478524028825682945282001555941232770404469429800528345739949598481720921573914355104134296199087391890836590864052149571367706375388703681601843458319132116515516974472048970391928353703477261809679932601584695835744029649732935572055356985225220404238667679972792429873215890642247920788185371247799185939107679349518982879259445287422027268206668786556682358412185241872604647260836772698179412894166292065430042767382911573363928779487343361327534323767510950802132985749913873686591467156416775222554990859829795088144246951740718977143769004604220403963872198281066033161658904064950752646203571741710489082036901404543535120222390201741539028453787884328324487955920969690826544314724506536289353836658620830497826212379658022617496862356125449729063202063444508972718598654906547632120757472714049619598641429712652619737322381259657034320401927265986439663404533252173451132829457241129406336886070365471926621068573228760052937951154054693232139481076598524716985757399460499427521737819096655287561560663745029678419118357841456869142906718479734858137101855142517984561289639051909851676858689741801614570242847894269105567571408602094641280877272410930917504561623027264511018931567170499274214718931060767780889708980378305307770871934116743307605142925036397266147590234894711455889267988760377203717371900269099720236881061707884131097292615160237820907185952705082935810837044038192218404791076189080423194385338020123840531635483712605891117533715031461271445270168537113912027352144134817872460363933298852185970297462198887030837706628532396756176393501583521657920729951303225887613357051885995546538029313818485244715750450090196017072501306409290356371126373135500839644533795163007130134516685496098153472185503979626381966384595499023184306530349688893295478004146701886635046640741300496016636475063000955315700056906124872303877505598434687633392263120864269832358918515838471811649075878590593046227997699988881086357578013009668665701248187055796548096296220335687410132483369056702854095011706591907682882735990239388632396280991382706697237829953802572303137366793755414532669723879594213770292934595058883297073989662402089899443707241284898712682507888122677482482093664549038626894078920876624215156046483672182794347960679222708232962277387336739416910423514215924569333041847445397069663913301715306385203011478273547549064355108231428648024478592997655155793661270925207450114776544987631415418719056004468528120942640824204962437956654712896456779324307141566168214169574559414696627247232218976667942976024688995089336713352536846084015569069515784583541226883865974010117464142241722495654102463288431426335514839863938031145901586859135150632317304315487820672077429373482060227050662877376437078624752244985036423856765476421265784868363357200815508767809541690425995627874616376426841105455463280949474876347437374084412185606609428570545391101113321879822839749282553139371737508070204090586676407499213013261314867116010071762548673126475659518224007205556904352939142893935538432762886791661785656713934313014056331765227036853359618957283736860290308060022043494881408998510498281204848918024367486790865773299250633694474624549883727865154571947283099804003062030133421065794398120515239291369530541400157866251277423871161227071543009928588571605589544476129734681470517359319983862695899484386736124491617374280984682062417882122379443774036736587515366057680628273459236050002282578369018665513440695134676183208446918275942340461984196062373547585335369520307946207915794154079611278885573368640210767527018403296503491040534105028298733144548053837422946399581921506650865243369487315790325866452508080606704824874734417333101458857139972743769709439052754072439932806926352301415570171458978242728735305678547734384226118567439441669080282543620691896011108242989413643178926958237908953518384180249429822353116849885695645319895574822327776572950804746541127194080980276978534132405750587307138274132711831149407867198964826920901666524069846566991154533140678845876223782118036345614527075936777420165740762120613241164698838661174183020068076513524496891280527229465193046393062933300446040857112978484149354761495447981073815325966287877832766577971707041782498935716172453462920169407340730051459236064458027031205356986145088756014312967664912513183756879503609281591725254178437580300230272927038468688990200139318148733398983094856273008005782302661647168297960890869943435997883104535897706096865866739804503896589124304664536761567144886123016330038442357586914035859833913344862589029948220390793202705235937852201097626815662701741457880930181930031352957107287098763301569469099077509358461811101506760098406852514219039582071046574647549644995109262134662903799594452246297255213611019841817537624475734571389651533599406614917052671590393448249582784147360194101728123006526777309287440597493190764702352324904181470120459669438151532870938583599648588543762686109960073913780865792104905904426215384255100711293039930020197230306032117066191528753894421236346616620180198133914058709947605011744516553040722921371156722394513144058988535899322359950770514971851960944799259088358336131127403822011896222204160025165055962955224454925013051894789095572759176200634824998286533056230322722931542555927360914243421410138602926679918482291664219709212055278077148332044505037667203192127343709032974610954591556289452373282309653352928989795291061344440729477615418514919891364240356899477898834765675981507050463367028746224373938316529843827039281034747226160600542160068562884582787576059149823369730872158538115968120176513023450746423042823403508222267958162844448981306024386311909828022729003867094830483393517890204883386037456560368844590099954782656092504459464519352374937844553374428441962013620927565322735923374843321607013133353319334781604058214079640755491088502069112910047177413692921849520345366212283421402424621565491033081349529851318112088539852127434566089329458630084353080477970412596198328932334302361679766364820620287731641774011883894679344630076810543974718557938934064268341366793879960508257594448255106186696771930010023850623884283137877753060458391737919303935135357141924435090937428676276410673308133952134438534869737099833272500548980589185432145044944262656250676712078009350625896007371489510510151398429911808341640172525663117414857480908925765997578301753042507601757898922196526416503434944497775066384631080616846646511095462800870537696900657431056570053133073763970767070389579817150877136874803204324777332324959579945080087707436801600406962661378351611843084804288903198917119555898302492194598609742827096791736194774922115205451218342555138950101852779217685293407936175554551933830780619194518862715008374212931531155310395743744150960145249185803354239913664381018679928102834033563687405589137963713195960499503431288412057460238999874620558897989089746563963374007984332095528444266628236054414169027335461931700379199615214948591879341243356859347023642949342267721041911965925413579961348886064807641429534432919706255873825263979069359232443786863735676075147561517525106951487532441037043799771689263322441546607314298104221612085954888061422270098231112475662897435061507411865291249580893304130971228727379207799917281944711064320606241859972778700696195963031241009641449946156794544519204986602150069398061222197758164009053124130312421574380395262042516213030315347069871150883137793976073209774597763031229945298990940922089763876435591805630810802447889485438148110380882156081319454252667153909446909649290666603864037424491655657031645892597146119593031622781551599332706834421182030224205418013116244486368795237633916892763844938242467966236729072125613674760806296458691254961722771556931605842974547049986011620808379502112193401029944311565831402660596323485591126748774425235874970925292843540846301074857008558566612889721312167187064670128711912183942142635514149670538237756087431578519477776058877350363646862639163379957761678305961649581799261690977676690944735834962368936806271459307796897406467462119299586815344919305795486489767120621192465694422983345057861187844939225710577447163085644559374860343016691630985031912073455764394278409566017764800971781470038347970271393748308525988479155394822855677324633322299194234343578948278103638391433626701699671875379591802346368695626712429863258770839902894037080429632334128923968409915113764458266825158898695035838043353618356368449098670907956996869150723424986430108228464038307675621019844663714890401138558597228106505268336363501482877349706176101511147585570482410807824828704848986731278091549788138894629404644065702298806960344920099988221277618148868236952416452567318890311416147631856945134782821881837981082076587734997834952296336098044721284817128691797539210062557576680542795797136670428035638232456429070731676743730205072841908097088419560936947194326745490259992378628273145906067713345791339047005119776244435386790294959241241390321959519071154188539105643249347056372742193446400646747437446600008310837804265505005526524777548623374561216862594564388273398857460118694456357392672939808687764970595029667524385101512652096783081378036699853281548183506170524090931918552405783440836266119972852997265907247711822496372819366836318398623126995594539465421648161515682426375535876651045778147175986722753638636648711921051783343249740339442328803017504360152054923017308473769987035482500896876618333059374305052054970288409941558702926251701453704599791948091407558232750151628540659093461705326672691786460261820442405569290408766706133491661305697955616755173868547097835329532626773847779833380598123373283591005732839149477934202935152384453645064077303736499163157586940664201595234890397582718124417337434358305006755598963126956994154757117158716864735696767185841879164686393982798895704131490124994899809049669250046025971750888125780366290940779633651735479789996540658749917833887309243902211017074563939629845727404325879913808973002298419971778919463908940551925146276772136337585719371297617401393189592476768433614673498453139543596843313014594834773002221106885780778456073528941956615677747721831793375565834963583302945882666123121579908645377385401001361852524009814106306400680817017464378965373255518195071547498777025852934530981266858002067444387569041451760268606212489271871450947629661547544353578744565904886185688452208028186380345667191120253105331687416987324318532080805580680449319174793832087026582558763781559928449103884416316225965669586689139653284026841235478821150417645706520698574670542677341255978922609027937835556799548323122100636574917518997718434384262650279714995461889621064895301983956847489881594996365966728236131678697602643671171476916772260989625747192708464194692570534653966972328939165297887074723323391933493295608950126264501951581857005034083030034578902303752263868401996555613618406488561430595213961654755475797151179193689709944634475149562234994525904882770286222260227456359564621488685156521287450038121304123736113263961401576092481174153558492969978155438340304216261770752087504371697292490756026021287272888837676561516975788634060911407195002326229767286540229817506362775812976331949327298704038938155225105132621860579045490951175342817377309303938037942377676137010231112153982789981470727079080924583990645540026741911898217067194821363616077813242680507945628083594876534640994834134302989644850050838794791386344278978437516867439813809502809931336644839708923566975262357036863857729375460978853045986699615390592494053255432926392750375242729655552060743915237581053368547984950063457731957953790875920678142129263209391855205371523839673817238292389972086260818246874583073988069516654289855319924378803082398499373346980527415586790391788805329629861722727513479472330780660391708012020660291842976478875397672652317834095978950274164537085922418095313568207891747613029720333107312057477928121639556809054024924457874048178898635328026514652016787618759375240659246703976865080766676099438202534109492885235649331977395841007170019695808899713066927706721794416137258050182917503133318262931527952013459402359938133868517870162807907196079878598028754174405069760641766977545173907732196008079916345079806547260951097605778859033560053278774281206561092698253943071349349546137978969066567366102273818624479042912053722168946658645216984170822119956469267780769130004911568391341748155508780558465217577397055889722474444641021857632817071609515352676239610126891264258164284271018084491536485554649308954948081161939161447688181734613536235050376555732995327583233815544813909596383325644867419965425362968006100136940433003793208633141855631118371098890350200188634127499763899092839334679112386835053602894764954173108495382342737433506231019849725769439593796619240381416880486878667276415224778836624420366813614106719510483476381349310649321177860557362288531743422132844015985425815156185062691537170727423612747910191512571312827597332979092577996937298154305800456813693737207516659599745782895600885467955869525512389863006448565065296461577459522753171135963204016242102026020106482783941183374040898971938500713594926951234400415534574436814621839008850176146037633835642120214286081125436761985906178610551739589546081513910518886928985421766321180053973189469570587219458201427038522935501991572333486178296160464364726163114760135008146756004141594949780056166073804403874452141056915889758615924659087306042446015866800084034131800447836956000995906604531939266182147582204803539735835796128076483963767182355147815425343278879243027444810335552512511536799647736867866198751095149533823759980467787944443305309590719687866482883511036829367106418290891233571566963235168468429249881471074993478545937319383870460247126770987394628587159326548939249554469429933732307981491443830137797028334024635052910204593064702269070109142373375747769642329205212931037587035180820915510897354960364798127628936073336315393224232948697222540491629599395485039715401323942994313165961079154923034689917675435668036544621608022613715969925667667797000618497378967552793161182220936646872470188573096881706365548500936778606036615636542436843717342229740262125997672579355372708211647983811731791944347549491121946375398081637819751846620261434495671207920709553971523696043221554860634934817318559193644362177478981915520429996065986519410049515732419152687261973860352610094835455673470179730551015495765008610232501226154545548085248311712742231546712115325795774734629884889412264049710054464485565926265777313551918704903256639142529361584794274957008076323362481959173383631321903242218736067497554126236947329083926569520394427025522232036545315123843242085374398088229844712820732466452752763311431334499995181566360375338978332134322403192950397256268030174707547739322675031346081995532185908518757808613060126355750850747937731948505878440098075821823087638317641345627427055544124713631464610859094588517739648298720055833640685837644040306700650838750031327985479655310656684055543684809070092399847567349977301424550592196248906742906670801530908865757678003253709590250484402682014386518862345067679082563363297851225392855229679770496891733272505572308662090379286990420305213524210826072794768165893537504459646436473134437682178881709211884328481210321113891863997279372926057530403358030066346242633361841353632511059873905632621968605894344323720143282283408230270098092035928260291626948417863863539711880739042096821377198082606646314816796260865708836858072185393190565956244129940505590202453141604055675204052196099884495564027436084388710654112415840549804667205491430468628534999746679424465304182780525821856618985266358177797418739196490507787069152565009126526167994369256335372480516097237797183081353345015452602294513292040044509497800455601488455433535746620289374674560179061238796550306437368993874236458488265147153996094493812020781266113157153051637682613458538943369989855210040502233521933281797655039447218500452929662421664007790746844518052253981343551370669350567604599361349929945368525066955017321587684681829373511781404455370715658129245389684236036217554801936345858318141152700126078377253042448911149369986221565490310331443912241879805503974958607400406490238479212911440668297861952598624967980428200247810373298195753028447226608202450390334882565536863146854255511551806400538998375755931827299845457293296317324346201315077673502192958085654998594253041054106923566742684553054991312787784378410647467259679319803839372561769855899619752466822812028346434027249084635861990962854899710520517482097175710249953732717687760495850444469044044436764168390319480542424531523434049048727708415723991342087008527408703516527191299202521862025330444938090043751624057141004812910431963420190276566354870999237246167416131513076056182163182603310808140452323613596421200981489793608744037264728062620346961617075248405115568816388213845678479300470104123896482823767641855803848388530262442508978706065165933853294113028082849749264351364301907420800510211350853257268738096567004288479111057234938189895563427819571083864252852833469523388334069673407219325904074326662082130001259883524380712434843606286762487078958304606621502183746587560616491848700504361786800743754680182440501880733623883902133764837775070771356766476399804042142029919516835908875713559209716952681300979544774648743487751329655127373339279882453540572328169772491092063709562765743874938295110868789350748001083474118624729893568139756065204724543338540180935240162280297933259813169888880586238034622431747871088584086750215482475903691966034395289187696540095850948822442317165079669036968981789247074232500741122436767293236684488922265658980833763496789433389221378597038313871834454148079102755020728839062863382689805902635036672419401489221792768691901079120692442309532401427279368037190609634924784827130391398228815988133132746908491860065684265180134541007061628369923068541177419003472651577762775430552997594548903783058240247961123233225223179217605954896356946128071006095703405755340531795468153941600688882575005175363128951676511666522794641148469715937877268595008196329119961316039482066438271892120169686318556377336479906084542259882459283543147680289993797470747504658504055773824853133257717152648745230149388048938679583953686878445142819768290482009579934125583647867104972488768569912187249847787935000463782412859309598933435548463728061638005841296401915325899007254024432642565555397157431078382527362306983463022764063716850422310316470056815637688540388458477369191724460772077958990073221122703974666838437973680438101453911459263591302612910878179608864339754633146349653444519072576409513364071438884628114053896617803306809474685977968036767991130517930945157561454892532969109948842221178755094109891238631225433895618362264023264233469894797638104469334629799228312060915144739723142020877046251338564468755037639137767167248593869439299784830039324243351338260611244274809047918949787740375445637211567410594706649804703926372196502487571359304222656914410220877078739682877512005215250977399426226600944898484073078197707179604073036103790721630889436107159915443106472881269409916216744528994620655465545400729065145370986329200070581619839930347299149888433920906802520603147018111029417640906818145395799291640730360366465513327976973236451285432179295788879732034758467243602960266770170821460075923860930077680330854775511704776179135367058150604500666323357853927123480822411269422740091258998157125655489561223349218140438170839456278171751804484383776048649027465952132986089155858122237028271642614226650809564354979440764341737847706157124703231631140398448010298110208259225894291735426209630861493376378222352291339652145093654286039596818060124581937925569012973021200832995719532907937251801783061581234529287405547788295609529804826075700240592065179117367652423855478481108545211966342412922692060162926091502291177535954048598964732681257448966034317169474923712525554191881214179657705071742558857620145812563106046805204703583926495617643719536241791766241108594617850970561252633886204681782345093033090864528487434805143390424414546269189225386519953634353072219597197728346558948094016726243149234118439665128971231827328977280404477822625164530538824263114326494122087402748493414429058397074005215466562469889597336499723745327124551721928513186984929914718504087021435287120010523373209049231325026353044830069235249534054960735368220421297420144199162957073027983803858299228074564200333589781654581788270556720056838091547155472978575297496254961597009409141860158625418838178372559948022371005038591751795111331407385619416903013706137869102680917460974932086170278472345115920815308396267108430039102585065724029643743097664480694338536357935491841220341074958390040383365543218824718270938039816969495569969551632155054112836396258025152284319412595131334319455949023714711146819684324965021609835072410686504479556743871524021968267719814085979319734660321883647914379218585247366396440854057169396032160010907489534140420083761873407884753790473583473949632888901401484671922340076211376372957801810444325190148107740940730905525809786698106661261726588421669392758861415379785381326941947332665313350266531356031100790525395552977296038338119047584969272404611464498447446524479196240162582102205480028959678065003598272918411920163816375354258753169844963172511167662968087393421630844480412220754355299887563721436400879681885232281326219310966922302372430666769529656625804014036245649717526587508440477309780089672984901407358798056393009448617839154775928141372104104166001379991068643110382640980849520184384432194234904714684520146513162746421472522956976002511124123353137050533104552161873326100995827593677918344162945839331270373499454776692203781651005359133259707257957923457236891708498964212564531097099146203230871099265330259100082697719194275842732208645232629275824142135670118710277938220740088893490129238650985412046489810976426728403333362056831789855853702291591160809090702136408464528268066243446138069862993564707695947626911089466473351685403554381827803498848554040965771665373968015595142885329665696743659644810992225435148351015929996615241667522334778792329585406734054968813736241893332435067782508458078570861271399851515800384030944093143096724478212664993283623941707045708030350617931232835252241586564040670997337207856213191095445373009016218697545563149090159452517427856929230246058858289436567116128875847689585445533337543994962434014787794674040570903976398886615732240058641250373612737202543265577085834188637491106419757762728763050752115404656143195632066601745754659602315114149726617944467752385289794854438680327436493682508309510688424430586301143733651269166927988500920910647023978765957682249746969893965454198142668311040563464571814392782018645365902227849439286018337671795739196916253235490848005292454031228150237062296540863118789330695067877545824244964716451324542092762962280304194888634125455614031184407504404160556114863587903175438747865007688417324532901612518803541205923353040344772636345060723004541829496944652478996750506082040450670656560760268203134535014401491045524408750508167461178669131035204889003700911759157654680151663996459811967775188806784974248245657388629657624471538455825102436976532361069865590774569534593471450095954953387113312707069172958807754002163970134922640050306050869685019555996978028967958774652859906750826296633981294653228433855368367602497230406695012588742313824522442230300381801660480887230774874838116312048096628190128841502906485132281330799666104051095240460447380928405151829830173633659649014072135530601639121901864129695320582131417023822178359095932497681814570766080942934220432870943191033723782413604112078912659819882110932631990558198726589905078435151347401988552847415950080463937941697371020077169483876626747189214376044117250971471951331056687063825772541595541922889798990026978884446273593400846056661782347106928742895355234321051495700093110898645952822335516822475347451853658983554500858784307340190300027542497161454347037365707256799418921799118596377729885026377680485640423701302057934771342428443111077922072845868675869846408062032173384068014845803011576798118733709645993749789576946892196438542945775370558113749299218223091149740637180253430490736520232906624462004067656465650421532618189716427980686849581580777301280692301770751663198898444964753861230039156582352992591069441037891004627116784463889305299946583411511720945781253004669825151605969319951252023644465617877875053092869397620724891715677154187224160306964479967654338394174959373103090696488033146455987799027717152405597837148666402409295591282086161387650651743594545612850218217335609377925344971412020957843367801688035856240049206257151490424820491508091654457991589416169384987770591702751295936052558925326308306609962869392336750485198822337046308315762791309179240103072650890030766020004949129328056331327465426450532335791893572147002388071625967977307316067520365242518768983414175747990246087783892946785079435543561343040148173351673902758801520421060884597847982800267364103105485373858653247692282838391053527410704779733237513606625992740892002243800087730695815568398154291493306471662309703907256487728420965483560143533876107418650220319447692111441813823416035863485558691646847075109271780837467950715874245972064725199520533575529225268835753363094996219599022147489826372657299665983512118204279066421296318547344621800831221364528248415446505779716354410281600729171692249947389805628878032751343000561783113739471509119776444395278194175834155933035224538326005719191939174720029315587702605339972588216459932570700578043937891560926131967843365824376674555403531437492553123946864638436346478834390263385966456942191130698405539448679135076475888338096206052911717492693323786538336793613873581233759246287670501394087750847961719230714494932881037167418497701335679841664706447205459161199623643746661974732743443253911579328421058537070360602342506592438102818027383002127566785193665314389679114739736191201733314540661366829646694471249718978015563482833235518743440139072822842440151882158952829581340624761358271157292864106438900036086977113426482624085544820179524680869480607689518613637123849604786637076637078324602512614584234623689132177280533021139978289266079559871050564719033594569579229683906403466791917190147918266219334230139058189659533428448566142002932441244302563153953521730068669255272314320164710131441019481287702745912223615003280199175352970443042926757359240834745726920334147672412898237462519121471082253558596086488006848264016259170104855397015880841854160624626042259329732217457568405978012602068454932857508668061697050230695419885189899541040763165836648288747981069062546805089900299962518453038815404212205247564328028490619113499979072636357326462344903220806919249077529444299639813280399135745203063970221726230668320638113339702661381881564741418006952756338950027669835634202386863600426541885761943694481168588619591735730990750662548000815499019706885370703399487666167076987369472761202316608647303848782804903763730835744354926713690325597625006953402897815963327511077360813138219882672345343961464348965631305672891851257322690191440798413847567040715728220614306265684328273061183435159206386173296145611226906624626669106970433646799900414594704574168549050896942003534309074113995619452878817793343404423756896587992431805488084729729878324395123386968879729396974007256664697064677491874398989600640431032095549740011244869986120184613169727766665738823364823217843263933154280286587315779841865521397271053706445756354622660513465350338799234025465534468982116754181673238700825858660316762478842342522476251340415578439523400146043457238176860794815008488354039135737137177564339480983230669152965990527508921243442868033572076649049401201007718747498760120688319981241826937135060050124187477961254744800899032392969950016573980028118339444722681709109790946873243783141424126987605753143469596489787727536142881633563019007652233517058429910360210619983301398547582894570411954093579089058166041233995504770463857114414293436228605253050071247025498156944063834301534049530565858533281662089422974838588384579744133208909159179359587615751323340536356257226791072877813391435122233397976427412670640420525621301886317625137276305087854546716980749605677855691780650807176932828796630966765701053948871272973518237387147860698290647969935283949211446494684875521835610865038231287528265291333497810273407660276775845562989797617046207763663907954536833405441394386762441968324717055457981842420138194946969151516876765035289679517385488430654834806773572787862041403613303070119534346898043969536696463600175361276502153583918503112510435580051195295164489421240887700610513432260499453787735497339423764129006215284562151338580893840365943278079565738715276081668898389871344003128999518218270785318442678103334231378653101876778975430493674330045168234928664906238431058497803820151846730674079475594904952011567138993200433567616662873060230907798025912683906233055554887418151764409051307729326903513783077843158496396175656789993096961338931549916075369889546443905893264367887146150807198694600920792883730336023576457487988472006953153644469851587363610943537017439452676015425670627525576492367092264331161602986922639886508680246774897132947237447920821425718137020461280173893545022789535720963530682338993721894680288589074261201006250372473290399881773999346914248947713500226520257169916975934179379704034161895780008248129028446397328343110535499816385788288667297958588129892178517364134555467145110164568521723829170345647760862257143631994645510396808516147084231132331999457960366180605405127819189259248257511667380383336760663625818223884370014889816619974617563190945640874770373305137938427698915468857255395102237431851452924712609392771280587430875203155366729332550558456509407223310910308487293964636816429588215055420858530194469811224523421983523385424948428231035396835885946271366724925754956232270339636552355190089282120673354775081765428901679257233494161031913569954734998574116969172524766773079323918251285451171799642557897140382780259939600775530677668387333602422225138982150850198945540016161840516485517495505490053639595225753771292817744166692597297106052767632303582982057051376487746074514230917272055124552504948580605515940465217284550272458594162911411641924893706206157629718459195418242695266578564634645592568975851667722216967055063376307499011389964517527020031408533951979301270434706334862589579885547684122944371732022827640251691866603996084285545062587010632830404467546619274890110630309627440745900040503726927294936496056267098464364005074989936503604095483321947576400015434642853296383644007514186725552739751595931843888257390526857271486601708150739304357141439487409420562658616924339557015093080579173901296905091561963073432456942785055440735836537938623037915786124393601109129039547979890391049640958721293098976835646443552309313531003660698516041152649166791698752848095186100691188814542686273193916828110978174245475495996643423130317452751020726883595284059178755427138469079079915625706852035958016787302112297755841974233019978991634916494613823323300097298732186755710455591309797078795301174761009890927801070650993188469377560374534253325114101497226847400655064322990103051625207640687518424200276786510492193168697142011477512308831168601786978599353451363244164606039023551870573276806721462689247881517559135347877601933699007142383159147320934215084094920839911810229223808048639998964720561312736195830270017343567143316741094350018829816036038531666357346383276995164963126167761543692605398086166399864028751302164042348674094038405876045529972070611636057363534737885884436877972862703807623846398069806381388409909248274493955428399166496277429470335006575544607397619202311581380861851564489305918492709029737912535040305206001177134205362198938850739821152085640540877281788954596666647692612243707949839119279165127548497555696992298439585867045017163339689192445280104374621236832887925165098526755314518001264544765857392593669879992396492352271677502127741398758359254633950054346293393525229836947211117142375330688527937630871568901811678092180140529589743949857487092905745170265547102063982141649518147922276359534601228950902372140752829857646064911552998848973746978662530479459595859725575450254517026590926509053072167034039850088366210633353588968775759360368490156287352914806779978149894718397797023914060417847048830435756583351240069014217569402963437935833162356440433684199511967114157395460691656516983033624132541938321444664639593275740612217293069906739240395302790242835318561327442770688589821271025854455932492821403312209865115558610538212435225126513828303771708642207381010568620705666873676647588012353999776229684541276066453045916585911402320149966371783171040402472658298956555329254521483871530936340764026817865859734130932422570477700777370420727403092128072629556336773357040112407633152299154687707937366398894232456809695749954543048120944630813932371730493166303542025210420390595735408816887021808490745768816169596917106410903296944422928643663951648554652266082650453897197948669110529391343041641072196154814037069190224602822768901649688646686484380103489492399347544768453238929269750684657244076719888455509793932978001282273559380801448919410823983324040250279313980830886598067357544050743735065105357163431584045058606227122718450043120755812220697877449306202854114734222947162995167192049302311958278397242870971739995056952865115128860924269291113807226790831072077491706917777983364498132387202771587413817741185000116993508568491852051356544946867789216623967081369055214909212793073074384445421307655640598282649809459549091752534685353645395908843049863698377566745495132519470305379498617214118916522992688939212644659349545571761041136414060307265024903646388074341479379218784525672879598260811259472977389271748733150250733011774488339848985450424950380466581091054773659138137558912083219048363582209735998206331548293930592702448470074910241713155170959862568349835403097338522819341093964204571471056354924577387383528477718242567921336875803179524001737430671025572770283655491369708697860760928492567618456909323565242409127626484853199209807728248812683514918084355198006706334437066175666913181591160668987395413758126663062857771397191582576980367803033199460052207089100633290316527006312467440532098586635559629851869849537098979565307306561587818281680172409202441728151907418199975998871336228669068701392073909525890760943053009702829157894968162008625734266922455598025087508915067046264750183223825428664828132294650672307531666293262346823695057070917171946971456462836736656804867606300712935945656880827190550102113094830557545164535161142967434378631954072498626665639008883218835867871500328980126466622401687715006403942715446540147006870437406465095196163906282821528974166738249721894553299711400187994161136377153840981436653226378695051668820169402026299906809381145962679001937067518626822602097019567511482197332554098475227803254789000933890919092865804176756750330574263537140818419752683390734222752886187269512916962707194178241912326089762308430382690617158409604685786690386101907571695749658366135135745812458860489432552913595699128940078351990918404195344554576453060739875808540427725687214711995179712044585224940393099241156567730525537426463608374665370284401548666815224145392103415721282043719937156706020081187828928632024664308399193814370772464148840713547497661246615559918737510643956136132565611213087556590341738968432955098504215008214886570978724282596083342657380255060440742032532986658762222828847483719171763904984519060337174080266161390898969671021671728401931554456033902191755004467786810177201547339697960726471028312852002180941631378145575804861147602274573930198454440442254710976034234021860007397895692009240822743773857879233565472765749150336930979531431877630374063870885780133544320753649592063623816328602584509574906596108960532595799015361045727851961952569116200215622916017681722588699951152614953312708231126592497161235760018537213599239101150948421926992521915874542480948256773111275728312590906155410899752220097106845800046221571831283974866849467028864492612448501691610585903613724338955718551199960940895805386352221229953930415387585616578443087918527473786187511841858246122140152476257741355635828740869758171824639856564212384958587350955545641876377232175776909214417926247963338141624139091090991588458215906743972094646015871046108141919042925507629164589807252729624205836472576051010562840850072543181025850221031637937946451240347453794035384999666276338376860126362627422085605558135042942524332337166453005802040524455209346211640554415897381098130087410907296174580171009139589070518979167188146775191637390754490679161426825054991971579058326242928169667261615641198578348961520615192476992474782481926311777607664268683409999587031623178136880849676525675671946832520832898644739419168174613234361978268293132559971724165266467986408331400317735629597352213743217372808824788898875602524567538529862648718328598272842598912344369564795634146987506574628692152395570971080665873523354321711071155881901477362509542910842664354585231957699255323234431873507669281544128536408349838227975991467264813889910916983869591241868428313966809714309311674300126603072161267429840964336660114409484159769099331156080396478387953037189389728735615728298205724911508558145558908716453345294826207322702382688030039612813673458923646926003493934391069513940995441721860686727098692350408464458938501451631871937340142472057225406018531117440097419389118723398138596649216391322788032085147552622699063731129784077149443808598662456513212638370104160647135574497981921231759123298933834531735849060559226463353018904075361103976808202434914952868132276448034523640504269334226398107745067066559298286416126295232451428606821099967596422697572075008912134253523523694014475095748775177449016278357008158963937241892555374000652714867324534022814312477598734632074601806565484206668801810408971473721539902030603313620905677753062059987847586818089171767102340145027109763168573552116767611896337946167392373123199030061194408780632210275342280818125344652696105236485623857813090341535395230834010572499707631597268866370966071779466467372699585596530752204438693162913250980599420021825823072685905637196395094669873817158956663881632030980701037432991353799516012134918383317767502443072725683214927624332227639359076010930814695099375534558553074497283259927770217850163095880117539738873784389932963960943601687759729249924039632610769222625977210312977425419565847690555452978749185498473067598990641373154699654729361700204838992112622166711875774163786614432358894261474955610111788994477557526039872595261072298527849027247711897953062462186149181441627064277702139708098085836620171001951024887658525833338821231120033297414090513257211173276725381115334924283538968982139257040067037629090121292987621853366633800060613804805965808228171266863761166560873458778686094941996207761279519882400694696996524243833688795655290307772333843008497873875430971167314418537675616503937043531112246159466514684642808220922653761865416724928034293256218573231086983368785481365098893123976067297469679651213680467825918846886710459610812736406228008921621731617080195036659584572354115544316588341289431179348189539480151374956056191010803214853617363083325327070476741051042738727635517753460364307866977128658223223758322063698430488563990654350576608677736237071860427518022927423604350145970050097037754629057087268715585427978280147128799097473300708589724669409648537529093023189630686509962961899002265559988919675641073206573344798997527907913339661327736301678358652281714603255529724691600474075865946094040899925104846440198607173239658116356696741070965269522862426700933952143081867389990638111930513208465131094634087985418317246729458066852377509482828232988671555412184959764492436395345741425484950397367739214301416985892858714546025052480146875536721374739081166812384584563410445719035702568412325075177737838387766670567246079944711578824422690929152412509150925608759683389707672925885040021366414727318804599501400655783943346123305288740272280871835224749463856855727425886872602867830622943694559660646046783343153161882983061458623794113888965807791375844051256901527619275883436327865071179776772125105428318843264871512156962164227016408639050205148468492964050412188679338442582398523636507484920255268805098028598431928482017768800944770247806527402351369846081474078723822844781945718030299527421882121908421399174904762109609190256066857255057758627431265772972231991986116810869915738809250803677718702082627283654973638531532300299574789523779552590001310093630105695270911747570743110859191699479098587744449997041303124109256159521221971714115612190556340099974445116629229926228346644238794538355556928363849523739343089010225245367315481195133245500662005178315431891594959776317420396035466687662002812381574672202960571932361224109620084460331221783731252410261987656605435266028183064212032576517248579359002340032521822174840722037899092051210527729073950838641087910761761141494179866188189445159380450807453716381885789462073178475520529594381236829518548753017688042886570835977363276666656452893671794932169172347566115369526945436691848850228753301448889891176935523451331983281274953747279435864308924180641006866574602850776246373084082711895957543588426579309645182453683058355018898372506137179268459314756255714866711229246788326830458688793804843830343963507134576931300985204511346358599304524655441402418004358625697213346979154313445057552727081044964433653326494128874233866202306233890459926849674256667133343802272771418779049077728789901021517139134358558161217387330182922912017928583421721187653543698878132657270768533113447930327748538083923227772162574815337401932345060679804349881165820187008836423450744771211399650866713036619285100439146774403956011256416765204224876901735157790662263200372478537808314337135096885886505909609571738406460213455371654495966143840893731588025771137655689299412526509792967898615947924358139241954903702468360315770617007439573541533437228174076680863983883597033630178076094016488506219239538281490202645205726414753205114925925346456650293303731270023844925167768554269177374165383898185179053401921322948618290602110590566272230439157466502061960009699558107540604083121773115008706980363148873891115372313331383277431370849210123166783631960103842759630183232416684753945181563467944838814494789812645112826912518775039925439407556344610583079352672345428437436523732997585654855833453955832737023637894262456206561671329173632797881554386515749889652281061048152570866059644313359618313902538328224583408809726845904954098675854734082922216384191399147417599672286826862494963577260110919766604228712897873288600299908678392356072343199838965893613516163876737248337201402989685929847213117044686445606124762592848704770537585437536107691104456092055961267004882800324114404970620254421906819224318790208801033689588829692660212883002929363453669314060192122324775943845074168336598745539313563936419419121459259149789547031991224832497465572783130146597018903485232175660283079588602812422240352729588350034411153951252749674325207299974081924484447046963384886762795705946874440704627518094033278593420077545409048239851194053490544589873841289977118300737918721332887448350834325501656406408620851583134754400183463827957527199695780973701072171518686037736114849372960457833361266610733577002175994281664404773920471928087865243246095937580704570838020939633634490476548496037829286625598133272056700269435440063902285026618784702157480069305839892513037766430988804956190382442711524540515208460934980527680196315100305996933801113098270786000549517469694580202855320994567837640890332888938992055628763835791110643664262529956736157739531930461376192582100191439200868127044050819009343286132112831585300625195183571511793021318024930787290450397261141665708195947086259818266584176427079453969631993636011394418745001405540135386061417512472474434200851614392722661916578243615697762049767780634784241664907020614713298319496378339254071628835831463731971014843932640275262429091388645637744819432807378267549044281024726185319943460055839695748749283432636564320604237724061142980217108774728020149428008695720410525020647184271107797864408397216118644825499140306018186635913041361385581424010226896764871532536205652266513896132155368526943270737009144861562661297723393834780434893274675814878361294918713081845162092300091339135774015813794920930634283763102857266797712087057264055537870680204591846369713395231852458052132787450350145945190315723853836250926470544217284883783399556236462632649163774834577060452490179859903349123443649026438299327021712293965316153469401010230175423200715971595951878158179350191113298599417353557956900819730422811680402486046636489341276818023286495636212391265242274642915528531422430308915535359046357640886050259127492327386241839528032161645184795879208139365688689820521818805173760106252280890731845755389297869505097832980211592847261442724559191665798157749372957321910166606006400135121324184273425466056641441374753917271838525155369719071712314823147649265322640537685500386790448148792607470974076420557086683321079277768623977684053491425316443747442345570442288575355512361981897252984683136672538389182266701478875225330719885009957388093113929943061991025221439913086765936139009195548168601269128254886379077846804291445068641949918575297491027232168902682319531565540454061169407035301681236834980914094455919770604542413066409524595417243446604961186662834259523677205463003282578528537177227970865833765928408604178016019896504473543333441869284881074142712676467276188200337958436890173028570652452880212977459252089316168252455246897691977193856736092057229084646367795871000104269169163652314240184993942936840526079137609891975058985146248927951504366328125831032895105046444758114976732220137856778900765207545756743998644101252124835043642306959040220472654525326842216269772241225630947933228466198985298429509747933089275557909582876870802776523859889051097341599958159627508007586646857517623566819732752108407823632658500585559119832387472542398346135663096583361734618639490978564736612614195542339036157338393765157947731579726082978670688395240250151115849814208349504190220561624575863105281536946916023931840372697127467395946826332076446557341732524549958029817102070659136105124853829336901391581221476071638212692023848646715912973275797342378159154591989576776493480037319968586865308249409049403750938269262696912688297845503071387134065421070699411626978440039272484968139181253705196858576707838956777787112397401373507290487746833094815244294706994356500272654058309607499085456755496972323597469086322737996315137763117491370893820045531571884525650274099656060781490862569612556408907420612938164933979475512132807625724947106133938792635088792265352636017617455066473730006188826909596000707917272120853173937997841531341158559681793863615842337976339208506317576534384287877448429190035598468011521695833995987482159656561154759002954580438854753898739390611280087174394241013081363770369185099985634432504115486558765930368275203515122020783273290466586954811924803166967375522360991900266154855728784166937206579651532300156982120367675543315684756075110191425629020922310142390590096017453648467000244057809695443613465705378077153484366418920185458782843064951934853589215606650649238075836327391174058144642444847836654064978522006136496766839604275054732501234334092503960856860065288111779202161258088371503288455038085130559477998556346933848401884477538325902543204917315234568466598534554259279550861486385024163844918955961262571956635461054337455946115816196270627592057135876614815796240253811789942602621171262725772296534867349668475866322745217086284318859326321906059516740039931635392841823948070244488666676509909063281079250902557275039195610338312024902329076891757258557568720855510801758910621928967167710010118370586099883525973548243537949001982883703431796467882646559798954993397757508107085272767659757288297929515954372690144004195813530921684058612302948140594520938998636921847971258725637671273353630984577886715091854614779380569677418823914489203342563789054587434321790050847157283634951768462041270251777534213222139355521852071229728778326180726466665617642241576402474751120905796966510298413066528303872822225031949240830242723306551477444138893934494631591836770475246823020357794623024542926080972325199615623803254333606006280113753872213855228517481346077949483632193541413108164281785646370026749250375830371314098232278223988865872231217045545628596681713967006903478074408054690247340549139660520991342300530023748525735996128866009388493643438207261724369200113447657831568194916904984825641890752914161166485724731322732804866296953031966241519510161001475823695492060033722363871464316196200455570479517854540826362571459450997433868611335744847923856479288981377741732123161079809277028988681575678775689533033291132009295204096338592614240712209716073540875148852375504471344717349469559119232965873795644573713585430640921520196883726818304935743390820939243952399459692916233965165245280069887459711797745894888522631432371725505817653771983075072287150330441380551294734823024765563097523844437186547498250337965630538334626507947416186772871675342758053705508634104612987141907309878098718331582139722528652220939083656418432198822997420597784504710961284850429409837042052690127035961998070660026146710719288286909294974785629511128263517299006390984549807899350189824832411326511670381298484344977681500909997611254967338900285870534054642610140355039745074573427956816686469740362729280505489648716372132251269656269886353529752520346708446769420268333680814524787948187374910767339770449542836380973330389817630501019031620641555127935648156193111960489870983927452816292500241125281306731701635542542765368500980046181225322368384969529711681852202049621645633885676710072805558600675553409110747478611609200662755971168201536618313441756878979668029396530250402776704622435281626549213696331405923723075132277606358254604559221589462709915288913028623236419270874846394867607104883287037813640157586051423448674217189992145616422999679875839853314617972615456770286672141852664424031640520012838930645331506934919627914619939983939325527624933843579069195364245524246922872704975126065858393500118769557147689185021254354638733743541549209270741111835481620240891871727059864122030834353420621144181657337141914350693127171658159465258512360790806627358322106822646633854510052177575825259660753746493485221412511869841747054622271430611432284574041303767955029638291499233016509565013540178312861346957611505769551569235885203041047430670732176528539488662259908094395257051395029636247032826443082602031832699705888587600497233807434749134188644110256652186471983007626336803628610215993780387537230852931799481936847446141608041085937458102625837714414728860127215487422914712268180179746636177778084072575255668646254697284088185514119407926382236996913185835290379313091330811872025665335705926182693756580731397744072078342610700546693681672182127266487611888367759425731764841646788812013670265701413750047439089345161978085741767664331963861377944431596575797865629395467240458691149029731202418693491499692532495881699697411818403170525434635954266922344531569488551036562327080284677578491180759055312239906923473742683953039501146748365454215631677039929194336265529596674799298618462568286877271581625318192211393065710488669955946022958814944365783809221460448440467993493080767184855763216599596117453037797340390464216777972690234289775796460284834176350434330016336043036073275350970499393584833147935577897885218643402041857565684872972968896708522552427968633689219550892906148715468966325721559712060617414602941589073537153678682701485877411326810604783155478229948438661753536866537387445965963552146296893757942465693077884228961125660963221877649100425354019370236667733086927380156279154212541343650918153122115180243821327377072103588252146423908450546088417758458828295626838495331776741596753833202749139070451595042809805943090665909314961432511716508992028580458054235611134470630055482971582073285482099986442134486798083607429819976699386185641841238163688286896501952510336757372298663004090161343965146505462557523564203073300624741769600518986766745702019271704800303333788407930607018366634946145565158681611546691957454914877898455760841838962649850543844417802180344950698845516886016436801773391423857439247490460982087659473577173323755209844920615792214162286424900544211766082339464043493516709197385592078566978355715640957072399629866056979192325154025647568979588283919502698918127577358792440068692769719814817586551936323109753944662392656336176904507139538740457662475149110311152911714178769937207920825693652280330863607572948304271603213833025927814332858042370580152402181486345631848539738134074491609490786170721547658754088919514217217240329592678699724448790809212593713764078384282734911104955886873594580877629873807776649272286913563633098783448211389149468236173318835178274243158091876327478747925495061931531499330400495399794838487790759968482918127570328248891732836250462342855402376763389225639934716369178370826185414508500524930833588934386790160652577572837518205723819640613573133412346499869486083729125126642214873809999124535935480346709161869966132892168422130936078578174713913321125001912401035093688385992002690009987251029334007015354397293592841206029303236562911513131179998550329343768414091545751737871321013802255652756462974860629937248755270788184366511747255853240643322699921013240235203867353377825848569225239500973055329015819068158834379455407307557995288027629608010387828983639480398669735791292163222630368534701487374239602661606367242835017641173462150378081045625646383493540463500030275464960729397045225900285437495894133153627153046800909770074926294892342364898259893466547001499082138579558529807600152452843627043655926357746509220294832315468172477797248487324810911702040936955828235039179664065080341697122844178069796299569268027766477327991523908470055267600158598722480145387716509833512665197750424986489673367601108262767855400235015042273132778605152591270610262412793032194663926126110525258412041006816237102779490011121515145625201665132227162509845068702772837368047915379306031808558684878266249001981989558105108804553438833782542922975968758136599705250483712250659676318260530644046836153808079275991157654907135802096086176668028776974714990328581694310760783218266410892061900846980679481392275244051554360364877753966967151774691165143603893045263908362643072973813520196350872278777097979866263569981193418095352131523040830473600381557494598199742537640354519675637458009137441709065294234256735769257656215420865753770357611500028374181713418336681423921883481823159433455955782309149819633919634064301833941445111139551771099083670354813006119559565165413271057429617348223299569080092682822254770198122219938466066208440695521525032610853876634025531840681914744432716775288107990372902138144113324273155942994587734930557761247982822409075927633735392877556251409888345804393452843446582213755533828875884601865838825817978630321177870744917982705115017448883444833234983479059469068749234009243705728801776057446342571521213334369796328685457047772199470670875541157939191951554226583772950187205292065703414954759129349448578494697282804887508278316618673383195478241774789931666223172362277042420757343501737890527980618165163114680244663844842891067614212753294785860745609709669645772852503166001827648789375649537156129141674530664190481094549499009047089895501303670445551647670599162742862012538112821266104179718204795360010020636812111270502611579992425302093938794024110021624512760646131822000165672655140839698241803671986712121899734532785089587128031668634832701650796764523791098316132363654169650482934602926933434164924663566773686660517697798782435924353823723994759843170239698733478519090768643556085639223829167985963865797106343522198936491875663088145331368661989335301579354438281191043600941068422871918372166066333972652138002806823492965904419272921755999670884389684942673434717072875307209508970233087579600870397532495538325414223922198408016221485702649978083328744207385351565926205337361745152814692630993995794559446356965860316288862335837926542774844155961985693210589950213946300618406715775254670368152976212702026153915324068469576894188434816823601259866833176684609799865393612504467908845305536565533154820575930449179236464046013907581383145276630508640545148022623469378713034760573739786762326431809108288475080391628271818202781721131172228379079173460938203693469138913513730260030077041708447513766333407625151492292268125426839457498689752232446446256806372478617882203591696358065469278037982801057021843332712685381915389958075051330005765497741904978501417214463682815908454132835780188831643728796016932943355968638451502788653886898129399433965421449148814863993631078394786949483711124379422693125699648231661765145506335183910388736936956957382308302289850313680802352533556668792974147388153233395833091036779112083100199439713271018899054655217893398986010453578188965538474311705856606440679791725497855773576331017625788456117075144443028916929563286761220886885171814874987058283422397553035849503469037483880256971712751258388795895591662787641383330154932713218904208862281136068394052125196195633359587627131353102086313494658731367479384817773682824456774958964263686965630400973206620071796914438804584517955900783698109286191617181364593284960729870140570970166563779779187905767452128676922286344830719158888487234467395252875875367811180402420316883260039591585535068705969432052513133859730629795642330321960437808149018431308142925197376399725178792785953798633201407638669692531770178431931001003856192469171629879770514620961270555924853624235727306082669800584350482786105783171745573869260403162738924478461951813017934163570940452761283693248184521589612825187551701771610856947314077351420221030120791242162058169121267797599762483781958781396562180867812428777346142736335092234869526918217796368715015453885993397220699585573962813771286932395943825627681367889669780095528969746554559605888849050741315432137758873100971173525036505377557328615911509241287804960788426826392232431680023113953960571581248670513296456278258828468340636822438658583139256421875399804509949704558044463623871573401744886460968606748878876493108829975219957332917444270026027663607619061683423591344603625456296157229595308801421738871378914942601383490729775473928374661881376489071953872043224990989939132307622404204583857748027496906240766236272134183077546525032456629622936089165803560146481388756174325558617274493557087545864182559403394619189135601754736619950263089678758930777354569699312009528278098370025782578059038393130972785876641352658419075469697426593749451716040893848726144749261898291678279519192586211102161655221594366467843534195117761651700737710214861984512878869132350955760798553798786736385442853948540584069522267170715931383098947058294866346288071261208023919162719794796304147245603775545914690925974974181046837785398781558212905803258427484809019325944889424265284211206812627237232963661019942877797071314931280110435430514451068294038515022970396793629030442437707592620702006490366191056565635619976551708901000154677800820592838249529627981243583798928878014147357896772177117205873044622369044055472684699444313592017979950195337649016385302225408986198114584128269278876095106950572329485360831729420243332802456378507433594097793343112600253484763450976404163618440804352117471795165155441932467000602696594063365587371727679693722581493756605174047430780930052354746608492887699972119984632820870241011998278151847741845488513020839163889811341443173602558287191685891619960755191258918921464580503331362310036730637167612607624623510311457669054850030341192114541075303762109351991260967932158264816732499349926942356237646683653658479831561775154235998128955341620942383435968924653658105967206375427420504349576021198938233901512862597735240971737966278009366863571011737880169001665700218915377391575215784423782544632318699458827147826100542723390538526936969760215144890842789841948412218514870214661554289958199275870969078221568315375466076112595674381085857842863232622131729959357114055186768194296963464961667367546973850642849784570978372546686267102733319485146977734125123294487499150208801209294116201901315373245221660606685655238018418069747954412927464675816259542518167811781878420178867278386188560621922616886703839707157880610201551053915208746198016420650805124640706113327299619362930360428986451841695212361757991674173032845934228758519842431164594006237088008531815062222418609522611705054610412481164362918580522744438318739249724222397061592630703195335068992323071364168441520637284319750475034786859463712181722310574921784715182835357816157987273899555006118522538636566146259472287566318054490639702508997300279024979593189348108486520600131734771963624105341108549817681298610412220540170982589593380322329454740651006957437817231749539285261163745944026320540690297998885962183307538242903014087979582643196120212856683812333725404710212565964081583836702770701050169178198336531684190360132700012825903021656753632815584022450041301398503812271418635514080747038007517181275919870885070047910114736096968341954510383998975001781257328600775925351417921776606951654898646039007892183275236670798374166497600558206288032534441232221616674530694569178722804206290130359652658035844610731465642204243258524534436206867494987820260533225832247918792806881581572421570631137711740628971004108651015700249611692064444365641369608777024859460541392410276889536218367044967550979727759261792227179928187295249081867775286220628466116223235950705972868348445379715474446191160660787483489960077065646712804924203773922137938949305204146415136595641650350556106181067480850372630339505767004573084550727338114313501127338887400354146821333046347674052615749683975285355938555177741019612611725510448390319163767437608115885923455142725705649746725623824828345559737377677690578397155924022309078232402289142163851790484275567383390050871694667153176135528185096844513937114183824273764485587090200745816505766251562773289991058688463512903387501971692224602018656597975468138391531801451139715323119255256706304339847862315771728932042471664231885056271461138931638928489498223542744380602023113278278790329125538554424154685094520117003586386598670927489935465964899874477103890836077135000888199332268110073731337389295064667620186414543465506772417089273221945808613725492804448304592721899369398306116722803990527480620763012775615348560156012179521816441677368376241234058155460646431842500346731948492780822133580365845897184160556550885349282013169588993967388802676485840333571338054835560562383082885968527437420981288878422834825876126147564532744540689916965070756873193857807802694722491121777496379019564934192619493232165705620914369394353859639912628789118980472009170486201701683114488860870584588299016601867866123596981857704032288658962146073015631791609190557420329893585095946445807081598541843831347960516803077763319746236575032816490410397536157993139771444391923349124273599274383964775131489080555235551578628917697526495319762041298249935663943527959878937637454370508848278541299219749650177301078431318209433336668606623250324165272513098273580816081308991330594512434584323243738063273105451665441947471572572524838350554497234462353348918524537238349272526389570374629827299361394733135242748666823376240893313888442593029923700929764111710238076002830330831450114883639918893931641614879940011434232486474148723706967288893978012528783502992087004621201656986312354807464251988794426870875044592997985069983495145506715548614114723868239584788420689267493542150191095279007622478066253787336824620393308534032898062562490020206337202761276070804041706299700888914675865301215959268548911896152025871110319244411554721528370313211470032823426088797491514770876318258776298218753488706795252107975268298091042955732739691064005790895794855630384349265281123748346938151544178260958816793346231343338544610735135028251610144523726609800054252777115331484469440363496123226416766452635965345440561869834351443875168218480857446490933746520155764579314890512287858141550735607560366850306541682907389026488170798490143599561976455256755332383271338275718767857168564666186544254667099041148176347491984579134140981329182281731260581260136473159832693159583659679831375785941505908909353650262240398330281712008728983922516651323316759335283497627564728021315851009453081322162637009566840769725580181694921940369876669178641005495960099258778836868055201203549150474379688791495114328842063806000099479836384782201369584750870071215683939139315239827790012980656729972939399713561730662021989994898843965467315143868807933329278104626843476221775916024007495284017403384279466320969493884143421373420081478951364547503309658879250974628656908595629310514272477742467749029727208921763634893903398812440175594610363281139764822071402956087644180844007281674632206659967822105461765492178267816530696670711262387238332260271192327253394288248490713997957584089041791453815704008072555964578709392810271562479631055358830713421821589434356868342502641614768273199450102703935583191412738053779818119106314984958645019984204104832788042160451393828663138229351388786214929936344079005875078298446807998229987421612170520256728926983358879714552829457587373484544314591429141627343243264022095893449717631641518729752727608627375871817502444739665387964155252692278632056446294892887210803941607999951725879190865676218941416508015122498665873566043456979698585675336567311040082808525393365965495493008807484522058865390278559359776646488826424465286559297888434004862101755562979046504940326037810907781749081054203539046397230449977440066038536397867742822670516773538280075503212221142463630005910852991262294081221608860922514261254321378614767534827398881243996725776403842930512443203325752095717857370314958800383947163449553650309267132765204309089248644914831518870486688880891657216327191689573203651420102350978478528109639946466410833356723624313038887715578548955493159629330434455963174946921986304554648563632262910454897057185740072710495529847464927760465566655627852636552405072487755930615530438501647985801372644844209206446811505095650114953552391838306778847827093219906746427776819192325669299556793578609284383181989046099980429942678945047714529502370472950255667560802974380374365143079615790117446406618737448559662049681683913364681763555705434481773356592348789139216059635110203317369017052748496103970563597157351971670635108234361469034188133269893363377621762242043650808679706145715595355520746683075889729009891172011253987480515997488583099092811738361006653603085384214960291445182062353435388672967457394656530048952561098517049488664655391000433478714861883320885351562248579223838589824039193940456917475122237817192247632005435052037578743082400449297026345237486739995650017613616084381907665954761426983505223344166739563649240346928545319436382534189838978310871901399453145107879042691628215434007913537230521415467481464854847320066392806793728155161991783576161883856122471488920583943329481361392093575504339057631884672315208546219221495424604902957735292460370996598924048584416493831139835543408775918080279160861349219934986496010784691824850744089866928391050481201988776309949865436966619546514516175765085526214154840709602414818376517675581420031889409321287310757919575555153011237785348026157837158003119803741780960535571931923511198622272790976982011777279786377054883589874614604902358412502683092479068630096559799616040176258656165034353965390251367593517396692453356878043692677792996491585252166431059430277570508193922536332447826419769035395767582844829902383983584297256072911690130202941159298660950737997184023704294613337215607546051139431069348408583077859060121236490331047116862151324999775433231404435017505860224247053200406080407205912868705097996840982424251139006147776398585447601819557683156340393873599771548668028144114423649731693528572658280596782864895190816409063917333709441381052739019839356339818250133127258248056527969670951647951936905453404984661202609294144439568929615719549566195868746449730834535523652695447716540469332044972035406164521179324138653534749135887894085814037669086570522963759092532858475696295158039173984112815562150546467115282271376741372187345223575124593755240148178837028857388683629075967553026521254574380273025031824630209540730144072692304538891731017916475199783995855593850351318766342759460097555116644805661274514576095751558572672996167192304658623216599599295764397544936655199433243899378367730993791693252737521062376799985818963524996861165240860149411138809313928146476614328748995588060493831621912348021699941114775265299490318217628460742085310854789079494121964188207005318472170247655735819560586641953795834573300959912749106634878423165958630696527138375550911098418368174110746772375811927007809907612975473162884688455525630968377592981073536273435487914391324467523723128088601398296189040562459636968649446882505770573320273727919451538441014305751970131392862331814574340976053549721216985860761533453319812969192367759947927137577263532416470357445235969477255968116614270189834236602553476482921375771357554882525070278126929215636266834736147256277620046841046959804175782672552805524309481510802749125572758201148052300122512333268853363699677480960523655059332001096856512406349607178440796818626096546411386973798729628699879622604563689012270483905156826233279976025716637812477835597333491529993584777812903801283753643686303763434306784703769882287159926143637556292337067463958333993725296834725824260379529763129307855386658849546155933046372400262470763919999441836682637925502189073113550265801148455687888321244499243684976679401394152953065825350621263077168856425725899132379386824492047836400431840210601048942335506734880438148080644889117392058286041387322112223834259560536396412225853395445760856652428111002217357392719828296749421581737333065229942332925677576313154164948454259119928881145946887975679410297499222971131481898570411477791357307024295879293619570939978993084836126383660326232643121783150170654614560073692700411569299668218872711321821427834662815953196607987905884956367622330700639940217766614538436236756389455203261775133992031676607417413329175040905139859270288230320819927529097313180930998473693384401825771201833588087710229694384737142744668571859980842564807539786728493512708423787933823687726406631785634671500468547892598157003601911167722271008894628590964405707494967537605852128044021011581409411079243141504672865512675231211627865310926277694976183154900418175625026741009796054338022970079708367221116934286338099641136492705103633778599637319064589838042888313875987448545902553260812407701003861311152907437277845393015219556021527636923224300696034644142096691376457714647634595877808482838848420737291721297240717526603807364025799718856703202346343803060351775201741752954883830130492817087208943991383305401725337296150452405463942694378115878684711752161252337202067273883094759451268497728283591517598449392386989976146955796194306511837677743072343725770530321223505068659076582186334020540029315178260073244305555228742380441610995990806212173925456135871566489290801755749803119068436756991974596238012039762468785729141472947020960148603848705431699671630835963632628727573369417883758740072748515786489718129103968785460506248907368488379632206207849209477243852863081258265544580929860075015026484933325794986748454367638216758708434719002199189137744982256666072976170257515743687746786995104639500096435373086125960204418680299580584670605260048517259692421147484566579874487499985135429865411987434848343244258729727993957407862214324081203633303875672665373446514760183073547221273854949706089380423659355740391496702214510989073164982615568591918300083454693538930395754390596276914161404294287378404097892625364815533502886912864837828964007265454574471685620254111408051397418699655396034634702230325731788561462142645600757900804784623893105322255503955576008340378349224257363702061755259735918589748916308731848731751185655516548101856523507076543367865309629596697971552797142530906189960133385150107036992939721396637909307578925110486199503664439997819652241205617125534745341362589256775672837954080447364836543783468447609670675028903535051133847982966579475351031814783955832654902501173319053615720315713627555352468495010090706179483697226552736762585770506741963172888072863178258780253574207031796428139353349619801751815381166158413618228869964477006939669111261187203582710309706633086319433832817530635568991312183976119186718715630665630541300963378643290312998437712999227798935776234029733332267468828331015630703522292301330655529595685106953965215037746746241010764952422708471039986943437350381523585158564166730254925802153244948576705803356809908592101444063550423850793488805898955004210282954545554308416978140131844911070686420613227899948577140178160660720502558205028504845678774363513891695387047078245719026213168445584150108902441554289845897014768296938185867883183418978506084928928196002207385530416445827762385863492464293808325175360634276020400254225464988487780684330297957785337055663605973214436056868695178425543298887924018943730938308152746622534027353403594091613139705013638737844241699470585191878428125535809063009146483130191455650477968596499959319359692962312824865801512047470959332365185522458145582716385629693106476644637392985604485591685418467212384813622654172811757858993208032748644920578517642113803177602153117897173481892661940844837550433659253704032021484297214102297998645086401190189950365523411294312630148959007718709135070253694463563827231422935033829544164354305623355999143433597836816875201981117048681503115977969271534156780913928618979434907306495902427535918382758153388259415819322283782765420731598210543905827936193570199698168868781575645299822499033193827311457337406091721529064421167062229274338819518607617678402658477676765571848954435798325371317330833762485118239879960549146632214653450520520320093179348339559894223294396442898142615140688795225252112722416263275173434179740636633252851493611125412163465093796090812766755726796828608984954097673975675767741293406409673936712702942119247354090378352653223685446136014325180001795824317052074217805082889263618321079964026685741352123978046901713661075495582058153495980545288032128489088671698787585265764609931839768960623227474563836557243383597030955896646761847429004520376104821603455559718873026755200304100032789773573464672483231945285930090438368012400168026537915571616734793936960782603143300957158205578940728652148546775106605391088070228940107953547060842923029238411862732004192437920018873062443097221994704109630896741084315588471963545580671524881728770319562825688772576456726220759961293713476564563161617610810539567445309766130133584690922531187450429866254761972234837462067505068832829859033979376564722476297992403243274891093929947663808439112194216717970771845134991362459801568660886936464603174196408886357475817774966934549216447312272532353099870345783501053418266236050534879736494648625636573496821337569686939396520107082387206126949302176751783621733062114332447576365340317435889926470255853599399330259575640519423415942269156185305212605410388922042669835099951583800390190735343842850114544055004270740739493586441813609456109428752506101701932674724799960501172823381722665283122062412069662715665200227389104845895661193638354165973325029406926414245095147427458527002184987619388027398900773594757891971383593282368841533976310273315218057809977192359514141626205219463193448196999740686950703844678785613048900328287644947674588333196216708133964952665980143103082590601598412469752451643053560262495018803445595238154520784544078014447306186413345257850409547070817148838596902891250778052394179810072187157198456519469079574170201085998793025050454800299639498442361047694069991088373384232898005323307049032146817864004917025343701641158485917892966126004790423349947021652280058708378331952614033991111886501531126979547549879596993253631728906048373483012911642269161220739191812348823998803883837805529206659735999112653916366296818930208176737504207777237545447071647060335080161855134291598053346545758791405173591274759712237633945307816286079335913520955689965372537764579612972169094721122182194953888141934300734303498827149389315808000550423348754118824282126914977351793992674646358341917772749568640791684164143477845502442541337335942355046510097519490671312478580222022523156024541389442758737231194196749282394614013412911547099331596743150899249303833693781446388855326287294840667396450932776072067028707374116429973301932278592132424789702319872728732801004315133409819216511784995055890480195786930713026099167990047458017503389255085907962689043499596382383540561621992170907346441940232331760491184252202251449258611206983768814124780655996260970311389974455486961534164717486525710772753942392518769282905632269991817623226488438326714795481083149330402511937644376613606708441712732469538430258157966010650209799065267694670793573013033041286290515941829780969148061171886163895847465862541687255811428973272271555393517106583533335387587890675219661176177436451614534756152356038094437799523838884870767933451548194324871400796541667462231001110220803725898695948101732992094986278896277936704130696056135852688881789019092458592826676309018860695335878394788088531454120348517742774275350349259698467935016027295098522837230986519572957983945410159214738408859669449629053276543258305919936434078174756584112782045090960150883338057730320325735930478368510726969437689100423407063278024392877688558855750068629469392703938197362332804829908992299028602038250958595777685353724316155597243296264819371194315028467638539292457993912670116520702746215216666936512292227996088979850849211454090893322784359053829052471923023722080360500094959603020210925352625771228619661095555139082850107721217289212869821392010554573267073432951217422047609267102065244795035178057526184935168592331147201705472395944557996485934315287602141968423008676339628597089646641751558731472765001751518132714519821454073773247462636676999786191669413195599741392091804797210024018676519994371158136405071958341102515888122816104502812577630805058649067078231997881850208991418382676275398000184117400282683651895973596705266123628349954602994279291855888044606547727767998741407016507740685953965516744024845218593268102052737233409207812932222797827782810709547034002255924191335730559483376249116693516734532049274706529431442973427310482953152169012670421488101654379522002619412894743186863775927035015872512815515903642905414000569947466227583388014191856985291520137052231961568974966982331269631989222226105654069694148991602260533223168093526724191476855874778246487481442138437405453101383523134497299475176688490180312394649021190485437623668396630792046527250575693285108598788064957514978046725996584479372886825062976765330831999764920932273354887278883919527191153429972640328974145200858744332614137184705522802095899107070051092783617236395121685580661279937220737297872855452494763476096558622747309850408553879469381561286314600217008075019989095547212381382279340892907567221117372532150905846273340778636301973090213128755786197147994473677267684755866045623035997040365261819365920621405910918956127541902983349141003661500637534312043386832392853173369618151121939870257564861538831477797892506372022663247929523728926465074065999061025197078824255990554000782236399766393603498142289497404998679136443481824713611108393626414153344215690192867926208728442109939138283371846148801058288934841456570239377923814558138954797176603768246153716848655600852022471621792936756562137640560520276723107462182371066890265707267026816096321459255402102925036789004034295137378172050909104008612102502579976252666806599611755547335506475344120409310423650139775979062589409678415073597192020703121002060142118039748422986749590722271900528134101625282348183728336001310011934342599870412234807439096381972583951461104028907765048641325408225500251908926144997197555847101777198228446543080606405384320535637916948085705741836504857239149609763552676869455953836745360501485375050638811393998918639204901033385110149924878131755592415983288620199595597511207065412696754659260187544862317749835965447122168428107477574613666962617320142893744814209139479409334239839279265327773658830554255074492010308685046127588487346164048549899324838640824646106940367343930991079679719124266325989301514471310245911306908661429522691283697295878443527614843936459265888213770190742087581167788094256764783300963164804854170998570927735196393439289870487347089043775212090353775434618089191858621457145265839964700528180015796499432044172537157958015113345090406684627918491600174133507345501906262018055308737966627151880792456672525369844247556505215583513382170879680690425968309950197063447584166790365893322474967775515278074942373089078103806334649385844094638819298273715322703086570613524641039175301058056897412415231956955749007733309506642579489762237343964991694145013284323105286257772206761495220459788960671859090369741572212021702993247814194758501415390356175676243890247862785251947718576292457761222087359660819913852801670015302182987216499399896530098160663687054553852566494373277104167481133191878975292101391275039659120888593595886389641196590025125272083405697333139739829571062700129722635017561275712717671454786336401638646438625173431701690319918951453047889686911426966114849853278525170877599301357340503264877838759158653545806440086181401605274916738454525171157356730344789839468563792069154810006197477494055407884655824502628812467065621157820740782979019911726883899095000319931404980914971944317570504051448314811791273557092127241451350177519966477980585536670407265184210204183362188572068879710167092627398973326433285527322705698062273884312155835077839305138412748905629829362855631243765366428728001838997097457117421721381994130464528682567998492529418870947758176802881790633980810235747816605915926244166621036302389668342602740268524869077965297760303487256565918655280162341196691158831656341404843665473422190226161927850028953132719043054200628490310497187520081828997105715940308878080686202027804536386867569628834729821422285660221849904278314743252396444307419199907804130920030149513341918362019663784798938308016913606097297420427744663434290582762497739482434048503731229140670135067198780764983913262899647699576590265224559072132782473650411973779150309724092660358957283366097055905578515248618053940205413465391422991692755177378557496563012109999300731814641131110454473187908968031877207762496793414715883019390260497654544011940492814819162052036425075726509741768357959203152477045838698925172863546671154154361799702038831457141983505803739405941533482649512714862113883450738517598886667682238817231347726882056355598952474423645144924407879525795722962674993039378484488730828156776161958032344813357605814220031952435131424999568255145619108874378211485606237548180728678839939587037774662017110159270158843266230276925579332350506149819715253073276911913139619700749764922132944806540705050508631278300961917447611944047539375889887662273875490815853021373965820434972787927437642702102289793531758381057844494105954362854175173075311418417527555786602497526470910761083723114698610381453517649776514807295016516529732909941625228897927879926454244776548714305533414465140664515464323888247481051405203233850978473531297261250155584398981161858696775885611015221929415511974466120903491442696709507450053296256293341793018763904802002879097888268600952140093945038639285695129624398530066856578529651896929790759158292580688655036573408517762386576849621711159726132398708728173050852740345766588045020568112712153403452808903025786824510775494060912785678109652348351252094652743482077183919145891736961591952699516496006112354667717133229641531731279836206547350566015184258807273332821035003510283747270623802913611350652708082115039070877244063636793783415344137810286777568667552612538203004988351223234543935983648344771056225290579026289704749657510500033116806016092475799225053112875385819357146567207504601600969870204575512953073734343639465435283464962579011982899822161548002009935516330749292048553872942613887158655504290870407581683478534801713698696034353515420236766319179338615357127029372594751430171109649373807590430497041006090260146449900338384227117676444481900403170911191182052744928461885094176460986640019130004576498400763341092533827174374196068066263193082238763936033776277820948020203487179027144195286647867779102262748445630558385556076637801936226434682130270865497493176837894339581014674720739330476200311180485666016240737224932997331127951956757535929501680703232263043516530006432948014870808214315972705062494052826678934729029270456255554764135178277764509067931600852345964667722779573013918971891649438224714908073623004864405428235342493611596420942899425836555902793038256684168031434849344519113114325110624225295224660538187067553417867479187629046836791874592850648001725359562924284103716744823481185382125995459461591392274927851806154318391183754333456373497899007264203156087726261701981653715506561276351100132201600544985483974314919291170704501116873905805323313333811703988239087766258255026710525095363717437856903505572819835449095649945933976220579754922711140139467257473555837452213353568056027571446737729096909942246798409455594695905092379719706012879556930498890568844897934491456285463598199473426507134511717006204865597472287757935665127856618156916085784105103049542118025139997512284488804198535364946696131630755191549111318922516933191441432312669893918303525013747098309627158011972513477727456257327140049381089469309695321686659133357796266350742159230674863101310033086091379015456280481579852510907616188245271342532319786517082888060155621642535482425247041511965558163196655116394128387096440628593867039591240897567111465453504173517053190663239496440677730757702226735076298778973638721696055528865233699018245030565747312703402257635593033269245941006705673536520291640563000853966012714851956686504382544027460520526121812324661790176496161484629935716598214935200730035009318472775137029339152510990669005937661773158097839305512757077178970920063900100531332756245918116420646276345561334035412515122743330322014552060712145091138005158552344800986732628855951012051674699650453796968484125324476377838612296577447976935331642820531543505093368313761788061952437552853661200449920501547571550873896141751827533406850316960005417895395857564629599143351684393395792846356807929460316179838567021482509861400146743274569454909583306430696058394081807672934032999437980830186468798366763898015164981383949093917590925254880849697408695230094220792999930293816314051525353072456855723013597962034593744313928854569893323325770417090022901896006899561326491305333330804457061252574032934174773154749744245571030846923939823613878874354454118162745129243708410001827971356022179656870219358094640315921465631258301027845448832974560607368338877415494358905029100088998293737793391585775435858191547210300029808425841597307068988606356728486168303660951175818650974263933349675566098092362010838622218584414848573473285529407332869292852666494925358150637788480440383222806569999822593147115914182733614638843014444213707044119071780677543492575192650752110728022219396811865461155684177373910104898885520016456007991048668943997746504534825867162716263794794705996659242127390627275307241552148108243940873642703037652856793373204555099941920312925889329836843247658654786441144052825024783195669330439948330264900567960738465554773770604291665571060612204572512343383469152117558223360945768400791118739410352130542872976109071584049107647113777724974794002435229177734484498932593940678196088526397116737647367572862271195526032664814537617195282808332744392769202340156791788158677450761707451498064109709466244311140038899756216356883589250811929494282182539633416538175731390962764770379958418928493048795477745349874106868474181555107617943233926470483484161975505300765530733161228496165814684579379225897643714754925021079078716247641954523970861361714713003934160621060540084275507679991589794990452719670690525446750030975190644138154767508892616178658282970812908005968353111286729431573179394958741532028635481443982706567242454098026678072964882805718341168657926854847916496997500436349673147928438117053345049046678007145204065024702018917266629302973881341049588618991479746977131688039446251405967822938237705273924508310677150818774356372868737258974429262659541370569536509660107162561387391881748755699194191052544032974713878567956637496667706401848341828675514532475721849061456923707054148317396344408354106162951580255490584273492813677707676631614711927903498173187939626730190945972033829860209141595827357999116869938323312808254645490300719884231259811274025613368342784134364547776059080433731185726782892370965181431498262139297719292664790598440049464710190963676231454921585542609330058532015712905139275823856124010975150350672715688861696541031696950401968165190181909528972066035727348874302667126629310640138223367633133396309190807854462441601392156414977899232128222137910845026595144428946138458877502715252130766633677710687271389033960359333891656949307824182714939053734555054162073880156625796201391797024553220707173083913117022154168044448087862281121889758182078905653149535946427087084072017747057459076651541720191123843986459200381565548652574305422945436680376802887639331812191639843197395461479551441759413213267754425881357521866290591025392225443074916781527568651355507687110059502794451769730850696850099759963257406324626414815220231003644070558360779881639397803664795305538753468230869748111304066152478378662314391450712450642661146602857445604656006538907091059430716571851503824899698358054710404380824098062567330509055630511721906174828486319419536849726312793783853270980845084386482049785821988213349254229065817557306931022496431212582169321554222121259757987419593873762890425823310098827854786019627972084259758151417745859102714256159721566810020913533303625943427191032117430150676655247467449380504365273639439156852909482060277486557454161725152305795229949238352533444248346809250736586771175804149560340014518130568254871511079913578316255678883376974741009296494787568505551203919257059768944791804867715783121411968527537062154785542763385082859290933041980043773955549452458101429413123904188545599909967790549565717329038336965770007192546007863752206412098372519900397751139363105394109023212243817796826041883476067885371129119801754661855533094954256092752069172778178707398595528263528400426003285701664252149426841522128302669801905058879476062662764703142784356238035163145583014008645194841012846260793719953241355735596595612837938557702912230973465194390802083477400663758140334309110743142287550850868413174663516577973469272922672992635218847473547701426253810347599782930990655868475068680494099433014704752203722525326369466774135278699631682834338823475945319086023318381260303022659945346833008242069997438661575385609588250432582884513519089734420246533098901580979896813998651224723340980501933760130603419897599902615317021767360949877930272189669246561690047460907127169924873785396602071370594420387856469593305361800262361646694947889236422672749206657214980469270584087937188549917121080771618921666386898915141531530454247650299229129533328848279408708954074097420127198243326003122974161492059571680182417813884292157180422577864939956982958339724891469914637625259718853403102872845708663489648824055995285106164745702758002940602746209646069744968498113404784201008946395352748308900745579249623021111107156691366498965819996852504360250892999546961052475862504975306579104814063078972885282003552864631272243578010362027178331938488561074426041540913992520292527139509536916381885574050717693438217494244433633733387218815964855196308208049592741145675147277683975453640986993231172883863883106388405175686087984561593233140433504091713774534173850552716342143640056085300061454585345965301511566258846793531831555011137050697764204761678032945867529220412519843778069450635029873781981306882782617407953695200976236868508821677470637862495186191365322615395609303177594382383738361655449138522467238484235753808891448171265536558681992260308581896333510247833710199960300836058201549994165258582730388719388037313487997803069457190323151333644652674774008108512183601594649428072229961839540018294246507605797064327651693349927537438927818837428523413609073288526480535417337788495795092618019699000403853402146556206677480962156773927156678182813378683754095002447682848439431050039917877542642708625213326368217979837357433557919207442861744183670443761025377902304102296476946715980675696046960214656280047991539023665387385479706480138126788050263732041192022634254658889984454283896313021492146976750786450011176991938249617505670175080776571373754194482857560278674098535697221304385895739144484260498355005154233662260862104805653121453195426038529634444541478901314817719268459856702877484472486052285035936313128638571433375611282980055134653093876085513612162145284794991412488564681014314768977324226064693224799504821328106029852698829979244530419429420736453257569720896140693621599340786267065933448363984356467597511159204022957500486451127660082017412364271406766705832282179520013646886650633634744365978677683068914489884630931928963356189847597235133563998388445454405608837549303296141164135064910897583880462894250452328460478168448453875959994463970862440708821545005544226064031955837717789863714572669953784599777387929043595106823135897599463981102225196577287898832972281239851421301880530205900344679200540633336166525784287828023284843926018389015679736816583357650554388232514756724967366896700999287161153442891129101934461440825302471501204735017982177695482441109945044954235414264080470125405823270172999608360561130075030343358083903994465654695993211400230855023164766573497035198456849843544186855190116573929922569781300869750919393067233856467839967540806511683682116062771456152950646044239499698718696881456494815559999930362173729301438787129443109265213948675573219398570170723159700277910052211247805650334890643466577022480660656638542279924698038490332307700506283001268423627808326919440398981245032316923332078063473247495843493174294487142960117847561618145798053527040107117560079220004062378267860566898298873796393250979671287288749110407213517385642013185191717359758592463912552798628405449344174449320191255311526113536517931367620388279430424461795597813789395321216520929895295438733520723439364015656420977973132687320558135676909212038437239383122276530125695923067389378829831007675165413184853143411501520849286374047206103826198896379889047250043918363059287443502317132695264654449615920269342944126115315028717419724639433035793005804084070686991996393133150485239196265278877235383032890599515588626319051069904203736930785939717539933648189679016417582478403197052755651720084873360379750015521179538254326076814826377593788343828871847506473384959819234679797575933675046106797221568994232106252401147042653683000184532848495932642046889346333928609874569727003886384962921725152531800704387634144227837541765510929651641908946892026004523988008171935423302542303623907344264635784792598357402702126638519877209809051963314066856169877070212484106977023098816167635947399848016674268451602583157091551215598969047729914050605335616139737682431713700139720222414182098021510337239728076710351925022193128600995003019716793335065295623216751465283467826122029284647711776950990787557057921500181375117542975421848836588252696141831740417131385225982692492038348039519014728266991309932763449852352332973275394981300801450255524277340810908522596879773727624020107310386888779001087426587112505494302120066515387457263072543467402212555622409684869127059866953915852539451819637798712658219207825550777121739940023804766563602825099049811812610266365825569319420834345251958763207889682502636548468528487890525014409537584125352532923232818384336792565502585726990453783970805470812593175896536525090600064091792679263852395021815893480571266061416833321134993891170509719517281992442310985959929076641215511982206118177877251452449342995541902020227754163834871606358015206961511100890824230430185279531330969703157820463477738513459845048849815799153115418358783285128315658342072304138252196717477378332143060245396565951736090198253202074287472133177027453758566671846936478721954836983882407642228250032422240522119997599767191238819574515050151676949776523793171603828497585100405305440788453095068912268748346663982530064015424033682372324773339468363926113384128923916818153404055662649304991051395170028389839347620338678399309366064505872990797324222035863172301320114434449092117241173857374664205624951614285322441895742009508880331759562742909101770429864648760325973613607866686019709986480209427259117871117015921597601305418077523474611880690399877463021814575617151462516828096396532880046762306935239827670822470147499516138960212008690938658867612453252381458820493649007186509789594235403610378080103949286388117052039075053706298109524890208918750661463714824576735306346878101583246220411562614875123306732439303423736499891910791174682511622780622223496894253815957398563168805004793772194380595454116723523303946771985639057196836626449597582181385445808211917069986603898353952094132369750872299680548452833419475497648353599847992318458223098409996560301311243802781666662624104587001035961041780473529185634048426571686626872456311711313051490406818408294887221003002146607863449128947661186952218079966586240540075176127232944205380568138539872123088347808127929788543684557553369008314018562577956131235318456193769801384332549162685260341585381073543404336892208463338513504409928414594369867368774847611869987027573474905510386687707345485398026822485556401869529374054571011784396945692464674069272372606772375502452798440192052413148743096108860705730595275047205271375515045276428206092465855140094726465011079870352924398145253132265936955516599137518345277305079118307785282228213869514247035919531891953146730195816184842428930735992400851796576712144902634858288795630392929006133363206893569959559681250898998376286963639492907228154164351137862569104190562343228326953702933603877974790021484745887530683612971913836987823262065017266169724914966596545645881594568233230619316933928116913100277030277390605351311740958258194786914530901055962632511176656271143409966085245282780079241344099040678526240092743150472146240522475106404906106743222281874015893629489608566958807035810060731640810426104763021612969901667148169895456126565156594448131686404639441920341866048546067850711462883513641161324187368556273990296572992555122636555070210189803181084758407326940294668316910080878283709317320570258772591583496485300796944826542223138284204796863085136670264413232838929052866792716517226197304447629797056181371193698182284349836036352474153983366444300076434601092979360327107389246769456217781724949602977878167523703122604766012343391453738878893189599936944643105366021170283830984358608679612595245389046750453415104138620821344592716203090739275974597089310609106805130637275443330101072360046126684055323547709275733791495594369538897114965510309329384889386636741715656963250120332002552774897097639052334813389721781204747728265283064087006447588209013613209641835222309027144862953188121627389000103772998833371297048174186637306502825000378579311939682459348178413615756753245265335081981775824478036302992201415561418552980926753022186332611239601315874898901723796751159294337718995690585663206887790425243547560348484210432876275452101921057493614025682382682623643265195204765598751026957229519440272282072594916049282082269473617342683420751191326375905901103734116422300306805786525904718263374019366230158211546349234739377698299397400133222820780119277954308054754650359538314080045013396564094530230770064687674685909237444679293929788866798770774478921969335336233416885161433795068677186490426733555436733759822442796217830425952245242796401924327572582241565887996343750933494369870676416076872704277257306402366017679337132969508594247220221437352995081979193966246976748665651385637866632662541237435893723113084176382168378751892692639121498926962641830636841476075893382275155016100585678189415319259824500589343319349236857597945920218647069838202141275535500469959877098654126098488934217285161940088389610694426598001918831891067970910878539476110397020830528394037459526848236545476546821618796699555034716844530899889433052341963814271210336568475747617399910833750849284577288630463780051355578813812000538220407671604362237103514621326892980082316046436679376047300315640790955303438749559462546571373628675527696796995020528632434389983410115857644752862477797780148894688549571304304644811222625733521182650924047174901516913313905258448399212850966987293143357232084561565621438944303682964699794792710462798345077344988928936136070969080093986561396845231454433758830143180913137555091248331340056317240616074086158972063356784706930966095220144794370605247090950633503758331542601935383766353390945329755930053917106032608960996117428644629479757098680975335350946607586141079833363406641824970221764414891953046585157080763289655896087589269941412688824854066774602747678547978678447981206358145825731532870956421180082522981210377504383470568737160651678822810709650041884297538212051640292704294847173325534442916621499915589438411136148014664470431110926708283788563211506364426386411815763418877196601139843515539999066365496061255848509952357799396929748376792836439319593216460226956662200358694463567015253564696853627961693760079369690039540704314362936779927400890591876854187257613752064426597008534597254599477968773955289052883938627895983168338877804586542638372513815322784611360461212664616796129509831617234154374748782539632150982076370937350312486665866950493960909620052674297261070498371192341561560948628922676115387811802483966124924231589575110887810316833849494277474962311442521401015821674570669404178004955218566315219579422971437611043327739776712359026422467601980340419298418380504640257815159723256201369204701441549974471507226273540296199005453153880059132805066848164742227610240629571094850779550768356517038761856498279080946941015514438955936876716601217008156678357499035865549716616956192424709041021609478114192571437556664154666008346352123581283797707446583835484219776858284966065050467194417445500099106566145131748468701844898010672621790749010553444469541856043660856224107491672395010508019537186940331088566952054076965233814724526552088405405294561862372666724059182359096889676936445766355151787927942105598457125726079370658644215066943188083898077478588462842999463567004185110387646499219574384326391763705953698395150150791492233633895510868039389838000843615117767036708593837795816271636946085898117543856017444818040787177838933496807517121485709379769678663508989338282553233205413455659051792860690408197709629197250387618734300160682797734278334928298983691086256297877708472450181013134682580032468644853675983536276505484332850532744762487711486288086011667168293943596050243366491022271903010198038138344794289261227013193921020097311174701358956922305894447061810741133717596386926156967104595758941779329793667257305418190864345391280755348404399312027759862301806863518736182448968363379112361033142570036557526128097518490241691849078892775042339432663880046893956476814942062187392878102631294550573899822107873484480425048165624600247852330377792036722230871240678447215060557519126709660847544599367463795021519665640061386490792350753804631708270419705654769022541130550942123312365338313693207786915263366281477957198440202396237723047131105995167291291084983707295064174876249769544454706203127139890324635717751285892530797835225963116872079365366052468918184912315001717324574678303469288801415129022537507008324018444062304321508554863710979662252525934659191674391193352900778000310563346361139920954248835668858666362446698395050666013930757210344611137922937819139775814863160147430417389991008011076680811972961144119520738517056950896198840166809102739649021075362795540817112133262726785117829861808201046179182302700796220445938917511443300743878199909753919809779686768184563575852932605166003414649755377345349368903988216633672250350442987968800114016733732783388450232654125093264842135350148270025178488189923181996336516659686969587490734401125605371437196276756985383110706991435594060864618133697032176888820307285702797565203189144152378120981025455946870063348207079910351321674886299884409019897043759519697348077905405578479237799875627450696869160871957261877676753709902609535908121922922364089604251807588226705632155892368718018230466287068029753651487688271477662426915226325913139033811245820075508542348981263506266074042337029487403345985596262690426162296332217311236326115368196681490153252563845246952437191027077322846450553388848809646084601554673427801460864825423569087485929061535380287778155102317041464464079069877517316769876378242905835562942229436086750044052516408105763298980877483241938687158745979180326015969624419982377677757814799362147128228530225963222543407456673826487255433072679913201284212022391372629226452445799495429746680816478848971145533616923831905969011133456361814408751620336269300319771628875173285193141694788518566522057836782786407907101561771393475484539803164439923797823888824995467776078133152355035650502303821712481656552203468203611893756143375203941237008834967684739746571882279985816696346772274139355521827981504271369757709728431018501170395040866695405711306345280087849091041016005756566218454896810353067450555712690576770331278597542524520638149887114376313033449528983364928344019772551487422561015549909430973399211630571194900517171072366209451407675021341727346151922909986800544557663638509494347962748123254261138938682425838266620175842429320176998078338809055275184591511220746898193126050721627185764417495649071176051771658237959059027931947812040063996054371738986767597954186343237088571578405481776408937768370718778405801704603541069463327804770295625533308986676747276689647951880764792448686937419619545405892538149518609751159118464286265042226403231782101721689595595706825923046500024239861047219428511390016013853572486874068361140872925108600036502793770869941790994819201837677372594232488812650840120136648901223303300641971045841973435850578746163326869014619785007446260861587583627192408447321176416747568021369980010687999302157313940660778410936812445416120026424430146885375498603025788241901816208436333407682192482421261674303479584310330489458587789438329633188481738258943457882330366580318602061322998296498543409224761930218027908291213478315912980791047019695107824852678930625808763334477758193774776222103120323202467234079601842258278806788684137297586448985116534491707331557902607094382987643689097807498807955088984553594125269958122028722242536708309678776484725618516358184376560193492017448287967416055712508209090362934820856335936543862639791371158441930353444017299779911868615426221804405470103735585276860031584681053113676234367065284180513085491390039316807102892014685241338319144704817128905945116801177538080016653989357641849383005331772779748899358388734783566665041966359005484303793719482027992619107808782081112354540671096794050392880716672411936680765687833921687940943225515907395376381580786178264479352343235006095079208407348864325904899715139385742351067095245174707236190110740483753338301582554439589095986224619045241869413486388522922647769799045313599886177735161273513336118962091905913567497999947114862392711118810092815866734266227434067960320285456745639717248491592252147700503067129628901507513854784215854308747208422520952110417151458809169556390847951279092950599787800825542584202199372216182502006888343088566619940637450498037586188559201714526155558219156738776029024374411954054001272800170994102521279182566222021662163775083824112306195857164212754612935715853518456689947208257919110969505761341963808003448563737549379899069624817980323528605517801356048612518135526192200896278096644654061300359901805431574614165148408260616187160014763502999893598223920839351638833590142982660081807540816216081777520591773006032043976113059571964225301284783138071098698900507034928697903395473875144737825043051642829357713263114009189394987939545937795773942975451409418898926043622804651425998707370488603686196451384057354411436011975685900500075204980000630892299951198716542098396672479890039661964528508977855411128922106110085640748962926755214350187187812062053144700084603026251156396769886097918726705447638433556410327319935749437905119468627617349687948102708159145851116806876515643721129531316444983493587057362020496290177168720040065671605996747655491541571036185920374633374842085077311899150659765723388248641871097134518153171956238086591346631160434711932708205016272457270641653613665081474968584383303418964638616698911852660869998066935467973233861168909596303177737204332054261551443873153461082608085975260428048762716131718141852891600106045041992450391734659979896992172537438197408678806292151509892449751016855013327854393634948297902032355792934253089652802014788493814109965564432977296026650855536781839173631926431930918711770110764764569189798150488628322864789489218522649800354004040188305854096335192212139169958944928213732555268292621020834405478052465012238289655009925954795147875708385729053568775180236601708035486393496967402033190964964003414766723398847133221698455512408525276471464372592393689389639037597151890517578145291089890748440243753998356782208135775313330489746791685786247338794196110043984166584852377700154133904713242957699640946961041297605834130248034923919861333152163740410072305703652354657187622863514686993493949655584627548353058531889916484902731198012593130331171139886312216989036144302262713654267363832107267067028884397080193710948497281799117484262038641104282233312728305474526539348809391861800725408098774014496179320236516354009597037251710658529176178013952583030921153132782002223787014981408694796873969964465332082424289122861858203667246275560524722533619790233696487649036807990897818740636586064749340875207236814522700915654144648115159339378353986942879469799874643289725278569848534208373114471703966432831034513931312140952609391733056740185923695129907400061964010548467214909625301872653576903367553320109224302928243790353962064763493951353143450751430718936493346894935389871544570448635269543926866745958705544810407237652294910695671024583055765853586823885498603178473473476581338845312778741294542101438771762772170775930509707135532890118548088076701701460982703039408987955647605876131479308817152566912784428976930163650468051831542750222985447767252534485605846446797685945982662750907670493041494925446817725675023490050167520410238412487307337724068192774746325114398889216236781369995511729388941410753114901541119104780556884998225973080125856583422162303071357703278852682292728229080189268776989168021128609522683160438623899712862027613817098619294661261692489214443310600327844111117994098694680566126450799586900182551786167122165488002727204193895557937351632766592653654795775392763570305924416973700565282337034031214780537476034284230809965550364147913683012023385787824159336012302882332731650704726452537734168719449633758118425174444009436642256187000772935304556745317077673912764344991843722742771839376793083975962193961080305734939398680166709594645087641488243115558226961024329386089221478337482560952727694857850668459618027250515880168904089879425388859363869247169925462775103582003693355334389370919397509068415601288133476537247155113518330083289122328061377922448200448634970484270279166855115623698505387526395779759266897256945790066197767522142883504391773559742226980241491406324915210341698858413744711831674294582405013958068195439691735900395857148188325226008660627278167141379563417796399824964319645289197260105427135008099025422556635926693038546360214777982937736600599136099345901834707031887108946822128354274064927387723457613374365273686636652501068847787405987351189102035949482727893087207448667297712527094022026574044220317671772208579458640307990187382161751964392184637721514894307260273540437006674000167466685902699125375160851541846694659553737772598348899592789479280788405205519725986597188318175431549702674492575950315985893924606892294297265602811729033719960971319529520415796481603590699811044553871360873506551681670138789448831486230247255439146192089213049771880074055861059590002351497391869029031419673078665230362415371487863562742017891906412525174997459794499682976632271260492257240219673898790592140886363483664890338452489930124104137491073169585399748539725364548840724407482363100971978911567267897389672375296522106151848284604820957114538821731518514517041906272758025343574202312069680278152765598985631144467395144204133601254208219650523361171582923644258185130624326462781043160987193358552727358757604250230999941288687762459909996709299287497804801535180321681801016458338351853253951435849038391141051225822115695779869037436264643840574879474942207255474475978864253258021504863494449514438272989179504545537364846627421815726404838865028675028082939014828585288057924043135860241114172380410580232405664227114044110822234536614141087468641199029250981526933317831445250610496810434748456483913123269884859769568217680383894264852650790962637210955075286310618093199027019688441596219707588940518051596361844667344189293477887603978392724552110099235405885522039688201410139628843140316707921365935145518462196674423113350780573133096395120097669761780771911310297159751615783346789789313004701664064222401637587598766600972136969519426994623917882587645418676697269445066360409514157734958131989880409437538230944097108047268627215041025413328995281456630043391283167878561592695074196281886533844995807937342128148668675745141361617157650025411636195995719570253467639791230368597999543271952849344764589046586958358376682983730082153635346979817913316286330799429818771668996549089561311940703985174259745886684774703188086050104893409638403661728943460344943470241102389283167049455790079796874687994548165614983568831247888130123601597659142801554228280912825960457861576896201599041984787560132813256946538168968648980637488332192116995972390573557273443966299369394582917350019579217838918450719165794333610082669410364342771005965543123173317076199864582005920692355526082958891045783555853478028652447989731426300676110473747247762398231829478420918174974319217200572848604546666886037772787468572583343920214763005793916966262639203924197843317026528641425296628346476881215827070158835790705598579113170107192514131833090764129955637166075387796995832060078201530272844341588168815582425253703838540971676905625796260438788330091583170262929318069375791886752609658343861079037376725271655942667373667791785666298484999789117070728578060723878143239526946467224181390721459740861538485984087958506504149084083082867423961188135279659567718622421832807685663520893082131296415531411639209184554743993190315461987129101080075376354979750576779880249378682066373709191684706660551467612887326639195199428983628071470770772881432015382384602315828741597649782631237263058153124371226142574308552102491301507548819340778929566744786972617119202160993620934050566486059201438967582923845014304644414945815944433443534500521021306462276265822381499997707325383524410134671773187528293314945736988084297965601534723729399772455176132591730395537068057907531923136905643654961414458878369108931652634855344496650822213453414836424491077181852781816534787255534161004256957501309150870148392637378204431825975299805352812669837554910283359628651788894333750625506833397076139290255236279128085802125639176264045731752891429450162683334015805012428618244678622406999509959945286495497469549502673739567368407917285789787547215099630030024901015996081214465387983005331028121000213094429412312936778529171612794018507475537280449031420574272287090434250698610063659171819923323815210799894680734678123714793645884195647171964110941393558175103585078971934464415094947826030697898979570847236319903743750626857248194604445615676721195353952463015539869901574511549907249435270540070064387608064429154542871945413049682476039565481848127620140259986895144717394573411341882115753459384454804698760288538676346400677557442144710952120429056317358722758230981747504314682307634766178178601931414927848737252601722552753632160373682550905913210468533578881654468373846709849506044788088436362542105579814197777503085522541410830393159359929997150141811666454228881853171954543355417020586171893822826121984328272165831377766824715006990322063477404453322924513389741306019700402172121096676719235918764454831179496904660013189876336676554553264004529576945467260524402190992755650832681331451971472075146627462558955425859907460553899814489206386860385854307683172723936606015386653115391752617691019970369951610717268042083444106287924250674089970190082281492285355441451638096674574926921869823933894456993696736243641452396392887902806174056437780594146860841968826992801043821378841612822935013400497453899959012125826705447343050290563056141828356553033460764542411131366252123595528316132365029717485420768743377752387922745832967290554513790565904927673730595058327375481605563665873680748142674134268120094231972675708893725177079191642709383597326743437023886248387165103770581008496163360510713533901433806369895145257608715061560921577473990033301142216586530373080138923138423891036391274522692146796824507333032333206711333520187299814096951865757777062534422672301489462753275831171122137224722322207518267207216897856290461598697175307464472960017077114882546067613047693385197175573588279886320205904959301667153074003210629904885824987954697387859395286356068076208651471513792914073409851597453468887382104803614014034193057931394196009868650509839857526912821079691383537474259341099599058774786517920629805796656998931704489950972344756724628032498821883853637076291367904833392099059313918523845814391131997923839763167534379813354506570514336902214591366909421707392176288344878785874608309164906949323868661634505226767441597925884312750805215997262179091531192994124435659931281127706816474872159858502481622300766977646348164757987274196235151995944819948902056777544976396712237084850611343392214718550052692363314529615154966908146535194421842685238479836398237614254510170581487028961547577884181234661609662780190831474158411679552489411613833661122501742170771763390773803363184306523232915218599412229820171479791140950313824775971372240809533600224848930886277079636018241776864105575791676688366872535503826052800947162125604670986871449215063079029234865028342226935012290045342531234629004503254522543154382430754099517565872831298353420011887552015195252660873192837979165662716542607056297524309269873219934032307228872812741783654862868993941580910694347867855385706080215752385365317198689622569045413576787885495314464807164629729466808692668508206630649383599007800946957587435329407180560573465931353438694281567687000999762062437939338927473362627319557605548363226325293736524886192303325745622937377577166735108421453833802935035528027262603383314643788741531445602282368140744398203385115460694969347877360120868474581528876159978715491903406711720431263066073346416551943232211908549158361660620864726525202246362240436286733989089658630751290405499914352943755950329452112996624003149501274188619642454616623005330386505899654854790691432655380006184467492480685848206266269770634060997241527794238414411912753249950444857576533839703713687757732964708739029535793691268371463759720187701546379216572575719899714794359573885594586424784952236680435584488302846519646437682843433818337686598720507120561163283198965732468956830193500772548702991195868206956474758309642504021620642092366670984329713129381849052593817137991213333391127966736515126746098131613985149689085984811442669155824857529966461593450322601924245417047566700467858050995363424937731517196943779949452844898779239763680154547097792658354289413498252719474778447297230899554706871866399776903763022405445750074799482847926922005730251696682144379946559732161963739434042997329146149126760972044171565120489316241208363793224182659503790401987486101600275069151404131350659846463991270769984260183056115634180621900022224654609950591257942021643463360865392677369482114597168919718529789360103356583012104596753096707135929505592974283562539551625678164887105658061073787434608808901958092957261708805510638279645801531996280880496678577190812014543741254673147072455532940515438734633004245359421181827040492217618992547883368687607743248333985875266554719462830300272128719764963714072284346486644073853095939850275285285935270718715481655541864451454116092717347561076845790433670346583905000188611479283911904897175544352704948949880495442379488108040148229544404232827593598580823334887997798147221372311788393941709388596430000713570929028914455332537940138684795202095822906119740773176550202822460807616961759610314169312741938829008882298173015722267256492508494999352193043096478146483783301096124306380181535200032790108861268058056353171476826662622449889297443129229863935389304890010408507346365845625239072671111403942500304330357076273749122277508781297330918951489489226219305729151773707632073967453939767239551467934239229879852140968194979645242880248742242209216711799552809335088629807348719690045151121409333480857447306258682950718705552938726678866466808614810648319189167702708260513460992357253629658246407445648669136602239687548247550324363051388928597962105523973942595782760282786397415799943678871018366382030799466060908781615715448132515566726072584563980449489253315876508512971134494349306045368190627579139621653596322380022526693005389677274749284483780083887968414335799073211799621622955121451458089744634105572119348953508613835495280607801656817074698645367202500031923289670257761922664552604053581975993393823248237485291316930737306788402886320413667308238928247270157444642221093741195553456148072621443442051359581061421282527984104434102589750184030500505187763954853871425606709967352850247958004457438817367073269630854843733188557307841955466881856938584316031064536097280894823638333145992986786833145132063703181088480338006302696570790277953496089823612417583787678857776703979295979551771426766766553490544794926980113894344860703279186810607052820367055044396565075408252348532756989043507661750352589279635160249014201970885640622341738887345437019237936551438998330248653099072390546890257797413815184759393423270453232986969100254607029196578099713601538868707487912631468712012150208546846050012770319179128478532016714748576161478373135760800567618473411709239047275696318986219635188721665842977893889141854947094610551776172401905130393918313441780090639644037824683286922242662935608867317311099569066564074432097747879489200436652530284800239456161854171954373675061258173159918117603438666342006888153667266356981253342098577953670097687852964146862279814528272315987886911134828061932686649782199429471909154543560069875134586828634944968531943217648706733744530224455248621858344766489327481926530462210153278224573643165526928172469639490445696709430225021866033150132604085692758295786394142827476975469895808284296218088526293057456161253022517552632067679887852396688075519370165933793407550777943351472755081179868822708512539861597843130772041173978328490327898894030305110813805522767853195374413760196500365089695884660743500124980928956761709645338218518618434749683310894834384045763867907112644394992217521425363084405494982097034863588814565644854275267899363008905133430952659887118367517712110711115831698448930940087038046874700846809149222757886134549298004427962649731453706569352770544299756163725404995035037939772932063127595290498861115596354568397640259912423242480165663659977000274098511951296314740013694296527900216087395882908831273907915950636127492853963125506089444643818772541188059145389008275495601682847012355247602038385926887134266358145817647968300565000887917968290882209286160562548665293881248630846798841780280744519868656818013818463716847112865438825614590710060644123928760628269262837580244950968394427345695097541519906103564093472832660764658715662187894869611046953074669025155601268585762783092374915908302540761378223345451958118360812506776509477496252327569708248635265877257187297425544263042099835256357148596689676804910035177710248458186406898669994137256971651110448271447542936525617415532867828849074650695651511068293098375181850178544142814743799044248785425099770193842053854749047033106740981782755236537074076529145729462550548194597641054742648644045170743379577619215896746017211724521536182932408855909255746925379414749137835547615161233508866923123295104521401556169251975986221656051080909622799955231857769820826532538110705034239828689893949696976830645926631384186694308595624091888904322192465311624873578870653685087858688309265616231661835206634509835505161783961545605973729788768319782637755368643201921466282802155413597629664564750370100311512124609112053935177004287492499720695562393863294872418592208225373383242022707878543265370091158459182225300845652440845559564342701957951640120602317769374843031664273773285924355963041932026156560387923857752694822208993104118646940285215075865518041746763806449753185269044264558345669281928838722066680168231670228114105039387367805800625440086978207808053301527630727242211497190898145429857104537745267591332531741367923123189852011645837761411295909629061790893062579875254212530419898585532127173683105425733748392363834442610510119944564992913191825682944529807730069356767347845335422989467038316193802018302053442306689333904382665589704815768007713438784600525600120263298243070287357409763905623162065753253854774672839543781003265114357826783334052075627728199524609981214494572691845776090945873515158341767214726855808977858283437906609437915785018334654643565419990477904323260835686003721878217678623549416831266148907559545514049954506986647429792846738402655793623391981611244014747671830985678028656282810563062543103826639958772003190220710514421878996135230308175510519321336250827935105585452119914722273515201956480064685631648429626189190966978145692401793553275904364741771442315648345139297135774617372788073139156749205794846500472657999418624966557845189337658168237282584031543983767157601369829425081844391086892340785995331896125710048113893294168416944195950655022525905721052924658880753152462174024130287616462900738923059125732817570449615505900345546282984198617558541855938060460914887379998593995527047823598597978517552107319630551880901682294873698587673353571118799238479741028788147658636023990514009311526956599319722028312734863688681815579872509464218901254969600476335467125808626620538443581880100439409298075768931710553086917121943083668729431460998465776707984640187977146649570434476148915299458651514400560682412974182708345727138972260468795302289640643960142417647648965329529667536340726380113638691459963985206728440335525383815007268663487053652509396332321521536070740510876144164522195805789665194471772538703035284499990882173413332658452763258775893221916448029282343397365222932527292945241541820358499917159980894879383391380051257792964465876561461086958864190040065494615601262378038739168280154338942230351635098427376830828919197601849216140678164996545992725925611678096645539434055303854522569235964747684804703232220034470682907990532268804413620340977152138039526866452189732857476757791326373854004751098194015543934014978394483653272550830328712530199373364144129587779510895021143122552062670924275500521447920108729755836127742368028818109365032264003577988167514213269327911277942842175007489764242205540673679352710006198987265293979189285561609221116468037027090577074589238504360134818306328540619006397621651507674749454671495543822453223730406196910188270980183562591094245538554780707731213381354322036279099697909023943252344979799378612983189458798917003837930345909134065177185188807484821409271163299676237475123229339107399032498493716785858575536439963178399640732515927897811458249834429356644284613611290745906722326798295224142349620389358383717471892857690834518381466614928713650376934714009335729095465512200442493863886674287031918175843926351317482662569990132340956628946715821582013551338775948753957833304000540791609138133041376755731270484010203256410618431415120970847521104441201317038522102876511362862524855492692757222392662654999162386321582225548759569995072593756865254722923073325367899770025808325481509206250772491222948806125209518010861081466659975952771403141113572672224558590612692606121730270464411126345981071584750413609810097255777751433713634558876530372279665562767909818580177594027454973455361125892191809320169012212298610649698540726248322659184807365263955407922274248194417031131885661474870819722607408961155739937894474537224747462858110997525847251616407640592264801819550596847336657774348653971897495139587905022315397841914873025279995987712228234520980252392482276099722265793106852859217370082039516997415916464261534984336435853236922340752803401414437351721135864483063057593086641879982486169977935521931773277419984377669164891927004288826640181889175301454331388497934367137823929859122618625624286960552296099224272724862482640015133987938884069712396072327290768017116766686362240765167878064208795651751788772910030254000079340300328493939751435386020763364353305518419827321977233211134646717764241290980720352276869630351891961722835169365014575954515052952144311522603730955656186752057893403324549685300067310989126812746914434213715091596564618575609471798743592739527044371567143694468338699546540330982171244437366190056332144107628354002760325377053088910503802599424719505403723879700292735279249884366902680729355224112883796236069370278604441111006972643668938379786713418739881037838307796463204458411491937045381846851076287947081418839579885139555346255133206132696065799853205960776683403630501264701660874937112889793251276161559810781522832430484055423391825463761333132540843650890766312193580680900143132993234636935814674089219334665912070639763916277249731580275277834922787581574988540752748361176942369256384496058929276388045635097194189114113089513762004197562835245669478823859455925243016392961932296104869304467089234120282917621100024549552472926773000639791279170352052173458205573810545889051507011332115626114762970809335560812663840980934767909174670735615477551727795330825300322060262417909719713063359083083870300324219178488571587847759696366247813735608608085655666067323738834381804562023989402546449941326348018834140360300094389458111636777887511140041687931881810647511710572245442434527167863988530018856347643029046366639744903180611673308120925681380573787351880068369354019791205001521996335773637626157013536960761287211803805293808820482328411676430675229613076730404949089523236014629528890836362086793459531678864931995500173736153157310180058380060625324468784771727654409930089270536201203111905448433125856687830503493044246998388537978122723683994451267256363505032018572499532375123935331369226253492959983567458965576381279433439853372611354547251104353964346701738659908153506086158326490718328688672048782082282422404899223904866568885680311681129828768215576631790608945983540057525201121468504698970321935247801814829415466569690325020388679775879656636997892427387560844817268931793512079974599951353857761331732221765657407127625115184707481325102054318163460688373222771573900490701683373642878153722682945571236381311971566990411677830002904703701612951143678210353794236086756026775761449093169360097307664094627786791598935044681414234636924249229697309388976611189868033359559960342277023352161262873114071296666975382411314482068123597097802504693060132014968520362889904802892768155444276965712644735530356434612936125245913575424430347694194279943383880123636396334813689405587952309428582400823647810707177070403907815093740728500589082394337846270434735138837034514814370006773300211761626898488363754240710286049579162312256309479960300406498455925168891830179783594657497720323147281445920911587280695940645974999668402204709487719791767101031966000639343527386719475755349200359288964493593052232688001405606771624495035128012229117844656520995014253837687902373218347567052110575525290778546598444333385634405251194755199718933477041382812811416173374676342104555612607113510948502275663283345434576070456518497533668756385388243456443248871050628149263071791222395035335953611042398891772623814943081244457284526254763629722373442228909452539007859343127075574032072721643134271420279133013473692014304448770536141860196100792138914631698824260723582328294278336597569473317793675878823983067288419819383621537174765378598663824115171664075608466776528686093699166069281103188862876891905903829439309813199203266633486541689303459253603548533681954679690234784340213273958973711090608713118230835753268441774953729915403188766114304448131374522824346178274796481881494270278497664908309405187738708643461326935903045025275306025793521436465687010095113837163027227400997725991149210311606998317301854376711684527224275212186903069490018701696290317080141151088616987767341709570601219048644596601249432603883773645938799782344049096759829908666207117112973904863670604148539445859233616759263392960860611821015538295681131889087194875293540911517946774424177008637886630190457154063409456225263876607810367273845752595486803023833359838396488861987855361651656775217738042049066729526647247323285443236495044580852892473780996201968069020701238659992290494219419638931731583863207257412173135044533000937801848138782452367306575566932328256663195232311581673710117503493667754397955458437329267272428965862271906263019986528244640368162162030824539856013099701271324421263484799633318085689832763268534942784272750198094636615035761013901360764276160229364483303433011090239326965553255775831716648948717161394443109444552775077762224622673188188816821926438989117429847643389437990762265932655575070803054721599888476539205648632457726193114584676447241013823290757617664750298725143578673304122928337819450321568451904485682577601555053721415591024480184524265165254470298635556964288047978475497464753224492419879051129420102344850720676105297068246576420200602846953690319106888031362777961059873252376552176279804959219500991605492151758861024722608976210540015055272383220737859077612522790059994051474052269358599292429056515782810124825949700744650443460996782259502262170161452399239674875980570218617131885171400286692097473279428926960877953999339679575759765622960209587853242799619561024506611516130678633243301411302043387138530363708865734286983565746916089729113525867320592708695051818530105282563635961331044078506310603317382461387785451017606998712403424791312240989811510385074346993143121315673595097754256989195579016443693408614074545829379633407836686433173648051325511978970409506540962327429301278829903552761334782467019427424835763208695866086237234659321050543049291449121107069627650467493245347718446780212698906597253235257653339341239983375092281466186307304455307673544204337381283909647015063596317029700532023100354315290526371335629943111445649548326017066206472078245482304639257126576102979789932143326574876124833520345520458298637938696802297042932628465129745624030673492208761769331699509450666520888555349032635178313594328916948611576658126703982711693171709052792886522685995728674496136344373265700941474394640948231439695834396447617636818543601270959245986973793960219002502491888847083432614689018437609343203149562950910651262553976583985902764872737123675255672634590257208300452838207391845925339490140174563415920107010158672171209804844620997907394167837335511580296314118966441141390459773694802155520870708616548846849420130049587876708428193370507957368602157375620256359932039155050557747767697358433624852953274885086280631090449076776218427018542037136942813694702004113502015706828610963739475870974431904908292698758220088143383919517736060215174869445964103104641636981818603164874348131929764812575505242305379735598925611909954100821025980608945873501080573618082222540414839917820675452223931937961709802121513211610041152034698938428656916110147336752879902225137844144302969415265347518504967482911406651080081823876882778643689080779338262887634910967196994236079890273522680673953766362481002704009228519486592945784506263657841344317724996386695314519830000725995456880462396241827039226063691774537401135612682437020844069825363063115726039987134854084316926300506117076985991980600638049452832302761807382792100599821817370638087549554808966407552285633382417836284790455504945437602509795589023546029280335377162361171402663060738690995551380002297616881192522355289783463211756763204958473840534267146928167032459156734168640332642491997601822285684050956049564065144059990259275276432428632087853697276819812771611909182155915982012199936646483495135483538178994201415810389752399967448572755021392759360736343303417447451164181758666045290034553706138788839440325412652659751123312794631279211986018100534063551258853483497752845682439287062140049524832615051249226437987114366732974468111802786898126320967609866944483937347258500057733479905037785663000311987011833613036758448411944951885602853204537602865992940082319642020804960385396200728056589962362962428005160057584226169574224710918681999266370097824750057371962931758481461423114562565186561040511243797582071808674656319037633784349280481434186857422287306193496637328431150462383044012504396828114563054574684986415167162757790097176424239430515622689441862397094732636486602875145729151987803100002841127029335060711121685822432329912289604427967101742087558477363683764638258761314801968022636938251766739756316805772051010772255535122972550584614340261551523565766540565781056659477958751652533481306039243315498639716629482973134372833539244066930963956940704818838155687898426517766707833187186055641715326470358367684019021056438493208338624155204047741596252187451710618054949734206027101887715783310591850971162484002599270156642205515689696741185268084820771392997197277067679786366628124241895140452852574282627312619712554801335442948502795849906711342372997400507004148670198360707310275914439677724861363925197903589510196729961938344583567902420010723245263181618680973725942745326441493450705471822597744818167895446309917080617048608475230847259233367970934216867119125610716770115082676257297567112481590007957153629981239634370189835475492414666605010108992481752871010443500314200265781553126611749415058631238927634823686035086828016482629581165220917046689334057553566569091105871646733837929735093072234314991158563894641578764048912048719943575403820515225002371382650997450100684328657554935498157911053264350746259854781834450705180962962803878016516756647220164667525574860826979240058787738455849628915995931924522711252854245150994227278635579818635271230575205239333945907477834838416077297237294529586601098428264820778143503617789458141964820680177815324226157792059765606330949438974732069701773162214465771822844523270680613613818600636427016767451682134499494882216659609516512783720675260045587955587285051237338637554705274723508947202497842979648692229432906990357181010625227604090550700808142687431337841805139848324319898433623726399962117419921565764195307315924113984095745937655142396907659089750751491337481104545857064053759501080030149149124687299512707587154318219053744513375967785594837406653784725479229905505239200454772645555697282025750274315435990772343362149089365447169535598817552112953092328234038366236683259448986335776553047383866046512134150721028399874549675466528979427750531277938839451329721024657050145793664968022392722168745311549212370315682287098814301913248045189225023948678068250448006208244035324009416291200099987098921941272520828989193253255862150157481513675955760277487070268662117986668566521224384561720790066150644243422330088360918119291689549733918648249401317308901354930250162413868548993903402120475810154890418755647910631815951971985764484978887822871925628655081840689872646155118876749060374337914246541635124373925089651900772285344855143689711570871747135466126463132771280500433488485777377840483594164288236683102139402433384679902673238352632535365581346685272282418181373229481067755629362910170664733960813105581714645857775968533686034332374484996510946307403325654210697179540925868744283600115632816728477178083197965490234569080417909571160622411069551158072969790366001581719818015205555746474139673176562716610551160554305268361980115385889718665707905543824997422099606586130721808099320814002320166370844605139039280988581463737739896207258346067931138763627886289927504156378027262736408301928383202919999529002591623577409286647045368063352305819944401505013159503689756958436558739408746250109969127435802651352759156593551882450249398701699725463865249734245187151615658135114426318347052777983916068849642299770189071761620083614628646733286280639264571182513749700289291411969545353675980307300642539165681873979633976874319780953545261537506305989070879726156826738689362638174902771111913011963868436826562441356903231946473941488768710142419340189606421677603890558295234900563499980837213145065475315451652336422794870469201496703296315687567201230257181403497356575216973161849865822229255834024432812761744381985901370628896903126754102487807062341229871095262771013569075043333080589827094834194932563542599797156988911828899656588193249713817234030552017286773008440876975957634198724310412807151929456369954696686265914513155867958416154713111074946474716437121100954306057402344135533820711499193045017580902179541269973626780489502688257329127581414330017717378795035699147973643686387325550454649976839088943481386132073154436790977869096252983959269474456810644224481941021494665806500558321889153047003772954232325336332769748274894574401421958546484755577955403308018498062424330868614856056735346956298246095837381372890152562950839989061660239488705661965507603287222963563864108997718199718124260258998828557467221734712350488346018127562153929983359851053918378209883856813317074448607184030168947051952709313334563609441601074979856225850206811036949544563997385262461653328035264393146844558600100171916416178820147621032620899191624543292733505652026633627421330211658994020760916180248883670419619364204827782669091728222114213710118142525599595031052260304419233515482798295863513429420478368426023594321390121150394473941820015081421671890452576433005337601760650038421808279068621678922093130125263864958102227615916387341799276472186008700258997508620192947006117680266122165792245098486103551956290111131081873606491190289368641385946101114788405434191629253759753348267124830246137583315244676893033694509968177104065589369494181351394937002720187351252030892658547223698992019316204688828987976559743496416747832909578111841452370084168437003932855538501286040843669545688524531624993976280059624528202478569352648087345753362015896042091620973764108266596062218199845193231324459222232928360403214948500086687286302254621724152545096158726396671067139639914242804180336931507539542577163988751884416194536417575160428234329816634184912570756300927874278741999394556249460479219381229207508015430619600498597328881873287493912547393708088070999718258915381337658266697035924304191184517801798603030554287143562851095532931520607288628614779683364663593203268665178382926237859210326623614913626785386353281562071747012624239512083906497581300637044668155381467846833542700440948941181708994003881556186362604527822099275504297303666771945952197970457846440857645152495929670185385609058356524748147080106427708068453069465948088512506662144409351521696427330866224394159814739708752495349012961642712637118816007309028301784972311952988409844920884846857555206723034032578018961476209807724405849936787016488707324204968611124893401263120725235037321323773407133959338521856354470303355687765524909222771546207024654688330781483031158676475985862885424909570035435259823117942884668611882358928290091995628324205215593942621476901364192233091737828714652948778151800702470040036242597341740127729948244528096809094676431100354175491899033310449188991670363467388287476188486950163114199465475017522821689263611251052484775289226280304838625164855149158472964586469002466509001359574931096366033202532726037023962861936416958615290339093787684946306202121935912927169631975172712649003633863818802728199137439900892547038361568565035464256769411581085781645474210250784802496398864429838833164762318251496061608572241219267549777610990381415726379015908410069785713199412529912628224738093552435874682932118955189326526333986028424109034968401202568076508379330431912873267265270649267336644031064832024823434820416434865479770192446309550810514672574250244140608108823626966994636070694044584420146501739119253689127400313369530599408528133958311755936967894577641789697989782474946764649897709531434494353610884349517753043726732427658392075852001401433983194471386610999320490187757758592552296291147655010272196847620851711579501272678031547362365287516706253610315483875712902020139679023243009761954780148191053347077614363202787199870034209342932700323759134477665861335448654030654401933436592675450948085763170692248372963984222160050794897847801595453659800217565296422126476446783130753050235615416219941922693863240021927493394098175354576499730892659596757621420236173175303426992321466393604337038019108161360704746789360763577415959334795221664420674443514783428962510315399382596451121465649586403669616568856879627345554932828290778540265866337090207710751157248024403409196554195615054842739700549374672003386014670179289155103414115794281270548769629918523457945836573318675381361501189554480239301370014933742874385896712257112847860992321923177480753380093628180416110292180877701343109712547886848995569757557865981047338083888477044944917154798825134901626724743677580844801189507172423964030315525280450808507875834030884819223496466731349366347422487299640420061745770828118352610431576829914040384706412394527440423795203253469889842284071814416664053816774645886665325319801244738576765716775443328316525177324339385115136880940845597399277926098081897450770929412271994373886198336120756489922151842614456446526121349905696918211721837380297319616465621274451095055901126072774367673779868024197025203257110855363565096081510346015469965262296114757742191388776138332641992910668501907263406061242961665318866213795421935658470138153873174996605140304646070070159624680603196607508549971758380974185727038964100993918698659110841401350263884265212373261179939909196419250067765909663307514130256510008021805357453574181850611117376792883198368924985525134113807778319381542231245101926644219026088924891057497702795934204303332422735214575372233106695510636623815645361093852362760631339003251077324468134509909156059060457363128150976685234270316463978491411031708692565547785771784689671413108351246078900877119807011156163138837645114198171615533843382792190805558777469859885376321049678384850413150369864249096273833988087707721980070417123317132705011176811377544069912024765457991225570036006729085733375772949798320541659774789560055309808002876572942609059587574895124237933956662961578285455477752886447098927382845336608432461712878488226830797422936648751179607444673847258224650942806985580843705025989947417184448209301293247123605040291105085170209298796105745340259790057262716093093647124392397237399120349779513145751944895294172117955589820569916736035213366803408028700642240481056518383894750508229831239409086457344811058742783005611725987135339094578466190918961774888588764659891430559629096704844988182316248740582090110164746588668994650764913762160691384756042040646825665075681960914222542766347398952151323566408483880893857043094505895860730854246193891238487432448355168588926935626402586280451917622672122039428207948234451997465330009417473644891115997427106002318600073107589795126002867139331066953911127815209021014869253106800973069542282384959415794825256211411741556609127550900817704142724984854003845967151512662516031183800911636711602503437867414427451393363329584185241050902590775091985414783468750466744436564860105306536356340409870845514848539583296446588596727817191127903754501313287175863777197797647794148852534201162166032152703623629165718738546029020622993567236033688081614160721446160579018666499725556973623346806924006585932904241254942893296958348721613509899833186765347632534270485369173108491488917874782093258112898048961873646293935951767327189528526734983905626693837598226268513177113570128457923986699260033452549874196674157225773452919367445562858575183470451318491334829288321604447819999898800213289117631311931657644618195596547327747745411229153514415465442766762269355800453217040058458383066801663435355002857155134258551834181201969492782623973611542657496757410231933767566158053573087492986105810598898369893436935038662103035916294830697968476965197486146395396580941403928206962781260307449551232486760990093940877104914402549981271080782388107025391369775203782114821985620363242946535156992429936665012982057027788064742628923054485375081480178673448869327743869238047640572607576365155449275874870164101225785350132132636184876431227152433702046635095671047653224227181766373994299760715425342083863367918109691471128178073876659877602910234699865731273886789541230400051225610873901194040498932366250789792863522194794407704696842910765867580423156911004708448305839445684184968986005630345637690443445732621310074261006119391284496392056808396457554633087501305256286330666568993544996110514817555070329822839520511606827114710527408959751332487474590181920940014831816712352403939223432187086534286289328773187440962223310805461670811191506699626585762032211710932543120689079935956480179205932429694257208586026852746207239692474812218769802703775122827603607452293885785693399538505299930587701412369601000518107689249496528904960226040080884154772287187381227371227454410882100548511013373739114712583494257283594938616153478054989483923417430594074608351579941796307487285355051791887343264560330539920897409804359467635731444394185291617366093456112703695163848973949471276378055858348206316621309828170158621200343733351474640955259205250426350748788079616647447221586087439565373405707600581339836110703984333435277441409768318696780383447934253775961099767257692165195658986769264931077181017404956442024537228250116535734183187090321955825005423945161872267209825528115024414277839179920538245463451599557090249393080383640008349143194082176610932879183213249177246335243974575815766876474163215106732899050121355826230571840155221815130592416171438089180296492104664464240138472957077857335001354119754266422186194399534981871810755664961044371857411814272332182375397973463471024767830714448105557408863491011523656471075127513551567337747962855078208493826768370583005293245772301306254204283603372461235376498281488432547053780114167855329382402311745022064169040749586924206032489684418252560922121131229910051238562269892457259347397819708622760415744083341160366538624143423062593683064781505054767942353965542248367459423499058874092561253126467558911308112555381586882609844728048363359038408177156146629114452626073534027449611398259336924066478842719348143210493457153811648551436388180001167852262555525149040006074675386025463700338584563655587306742953457646884501253782905203520887097844150360977182670699904535237293605005346510313160742516448107801819302443634513160059108685684423247971551969100647792011909459154792238698952808747465257804286271461067846551826724967373538920040875271905586577353492805820955308077733870528876689627814534949988920554542038442273050203459808652632088236218965237235471763616236367710787066634916881828389537599705115043089808347260065641639325173902800157718159154726600509585310154606510525528677406074715633051196970981486869257533398968554397609268051486662052874906174506846371031216055250896601453461698968356071172625563593808630467721320099521537312822846375735890937648272427825742593292101854446881770006146366599848812594595933737663749290897028924898788048691513447262033624162436952014720941919790284562268268623158861366063522495868221864938541103085777893287297129553410050357339946771179939690899404502424542059344466300010421161709378290197154417093146868082874329964177188317679816666598040401283265122766514189113752007753624465455831761074671058035891445415575838850653826340661851051841718594111135437415196211268174019360035675767234243656720804481042081579582449868592006038364357897370327698436121541470481354307725295150737539402175661884265668544540431594435742542823943193874671621598973470086015122793303620167694860132470879459098379943837153983573265587096562351173138041751306490801370949304898828443698084735904041567094039928646638455296147577632876000211010435320375084345918771049196220343997062327734385869073327375890170917943200313670254674191946023924457389696358963368686627322344045935788049684981372246359769963736349214071655167522418267503822629215275068113281125619246275489709829156731708722305613301249730076896585307414691196166730773875840679611702144214694061333770303321544558483876220590855529353918813453821159707852324032360933044759489081819404857468129487419556687059668881356555815390456610219467342854554545414193209280564048172932964147254304214268493029368925637700329265640350610637523791201770313057798237426933906738953744658584404229769773355104458453637857704914056251036274543657289537477541358695631536989019459656033629309209284638980786953840442988681113245561509405804729745008486717058772881002335897447020445376781012269680492992449767576921270674321276299088875087609618436879452044174882998616586687106851497038763455394230111385756986097789309770021072266471157731534193630002313724876557069430761140850959237670817855312309215680781134584425159545647775613491623655957021887892586646255990580586710111173890928853528321937824731643662370949485974100597648260256761336586785970327940829088203441935550831415628632153788169418906599787572707595742146590798624142164301524501322486637927941766754379315916692423571380395357169088813345706690909587597426586796382219102490836097225326895732948307797672793567889015990897385201924969835974396065261339055395154969986950076525217042608436834416034332012486473685354441798674202104623137971615233628783302659808265687392953080902256754544556571697595658193747184742055781895098487867870912677359638907390514233094694613633178298601708767949333086249678574880585023828471600867689613414356317535852061522213984590542404889182030885871145685966891502761756183327199677026119839744797870588492442711898628212826432416625289749869725570135883776566114464688237770007758440063029048164840132397100520882514755522195293756281368543852614124019933737761077667553300120884415708409483396751589696911370263853826097675272953159631395372908252528150337899092164453397299358176728254509017246876423787171072810501775335223203821940462624965724952231920879970494390441393118911713200006929032830617650811361371412037744548128942188881090593827151136815918495373748990641748131753296695938507328553630492145522078696320277936669132472621648443160666806410398151655153755157250876751824044811855032232377448550028333246699019032665647978559723815998396456809332507291655127878876304440317019242503165025108198582503611328038894527649307938951952987689769328378303437211525331884619459956714752018985460385743472400438874711196915467655092848362148842179524211206196609151442313432329004503870176883359695203282945520847069856953262858464252390671920098224352295761658204546679455833657742359622754348064709259857785865866813364595947259804563308274273176892460716789244647407851800112835514007398421712009029595644550035016376864845114054811547832003009860391913621401556451297422933196005814052335593992263093563760168496836332076866515322975427390083013282511936464225642656471693267509636615117806714956250334292918818607468159382305966185954592217894993233233258358507914055545067891445293347917108006585763002280223916044054047093282546439241275017853279668258113250948857450922182035678330076302589078127018645495300017958222176161255779969975374304974623203997863246428216041591431773198255232769968334329998569585400222569221639890058084333110383017264212949497017595771121267243329800801018411253734035304273189159126071149770637255759664170942371344723416158189033202624757854881933332215330399902316247118419773894379217114036768303444416651002324467772923446486569408928472372238360625904841377909353225719869897743887948782355696697795379355891718606543706751402860604346832470172889518760653524169949603555883630359040863734851412737593671323840300690754308703966867592756528500802397541796795310119406743040156198103545405121545669399733040561492345902472557758022598693381402739625820361253128214650511409765098494751264019299065698060323431152009264418966873411475391910575056893256833320196235102166511488135523383074939555337172495901210125598323851700534367103864877926775059730285581420755326060114443323017260498312507004308297878229149461150609309951557071910035896784347367599453598562511224154077427238697083796861753934658535842963343001994720964830363348402724202407938702459121727366279975202776248284677948844469241924810466122843227868787577121199056934770539709491467785156767574231578355894519741930347138098656590536199287912995068647316016290282011428686494129485920637659246686770216355097247029143297533796674324196379263921101068421145314326584523119885983618928754468961537296026816009845183130645101410379869802341569821082729549079166654021318055668404916333214445145210892052733871717137258587566269270797301676709772263369047272447885739855576390354469072754931212557988964488544196474089978214624981214400998549957417102164013603501273570239730760482598487696820559541506465838964201624314917735068687477255642481650209992804397135323639696070639759103745165269081983683767865784092922791813802097272464393434679920995191558949121180082371644692243400463769837825024381509801047140952531101304087254426444037211247196406405967964824416845731496352660983039412736365489387028234723086357093873210438469705216937478603373572903488539166659127075406667954202099486932875826721146832102288869618647649959780496959729487932644198375579173784117460780024541336619840417579171097625218445722449624942990041620101914916456784283249303181458252476004314463224300691507046734359653224511225467792939334273329101207095413088109339813490663389773246764077390053392574248843065549951957856274141090488806661808127292819162972239163547874308175969734164893917433199804226514504317388702996130506652188648265226510238368297341996763707004355299767946542011343189357086506330804870766062102401506566645108178734052814118822525512019444608292490180103924948055394813172840321110816873277978655068317871461523421897661030066108220944457444943906375812109679622776845241811840880917412570577495524724108930013154741347573367271352741904377066117024424035218094237295830247465487068798069515474148296551617809470155784421666741401051393941161653780250081783251502511641625595754102046188682888516887366012681442880862067790060915606003888179610453250705284002635229018505216946624136732633217747998927907465659743933289696769632816428194674234400385073787224702689923923126925399904345866546849559496973214741274521707405228094541550376282934914642171915760103217375801180118445323641266995104848215652140247944474636836139403724929391880723843992649609253452358441858416614747725718657180658796146527483497599585628308065852737801212983899760093623609027422374407261152762863314757490598277594133097717073246167612800436754092056739035546852797262594136543482907180643938306416381853820814319669954050848836364426453804277257486746300393182669427555164482811352196621563240065333098756826539596840018750974681786557860989898433865444272223029114103645028466327977570514050208625936888447152318396712355458511478463036150055735104169390236345775814704858216663557755041390133992273949935300658813360266603041922912647709645610475311282464474829610071665997072074432869459800709523362255094435281747629710997300607486736685263307229551700468864955631969566930157981936899461600975576601736204559612377497926034051197637621124456831937988299542379149472316211580957918009515063783072176765782969730080563758573785154612762876574092691328217385829445158337939560986724058432797546253341101446500275889283964771739230529230183946192073944791602893797714002968154471322740979031420777314526377965776788406440744540881030379219991744170950928126758708128162290877831242774087725410368532738947437658114764733304193966772263663167118476797641741708259482187949163848237896887994752801558788021047801572549433338530553757641998390231149221317158767008250915870676962729299362515705315831633090762374511451654715611295984930982894127068458561951078426143425349303821779082176839906415606642976928835112480705466498960775686500856306590749220098607471798738192721657222273229939468638597106895991259938594697194926385668086976576776126852811894193477315475011382789537746449046211039283823510161609264674884223870997332278724225110210962390379650177607864030659942929353840589641562712546743761903849216713854951882053906808742408027375697592875259991906661075320333703581136131098333202844897194924369763176924550825518195248765685540110956442519328839139839383743431278662489793559576598648193198339244043331985866947555386369584292627879576448200246685256247549688667211138565939042690583824799666452713408674786900123847660517364141237302924346650557075211489564574965629706825877406005977909538770388356098067393911882319463301969021359042006730423947805738616704730278481823442418066225835949842919167883400683924189156241455845963112868797845539285905473488438186176567168592250621749336380586690598736498083230800707654857669078818443980992175812656761425518742810450375929150836001531068478732255913282170301057781748531360200807068437698541592562528625829249939299990002726519288203997071089028572199098900116192633784997341430768170238369186378760033801408607613890948001768721595204274169617106649932868080605345543455246599761654329621919533741840488860667130762531042688596887191781558833247419960972446603640815303350171285024428262887138411514010369731500415867616538295691173557902108671184511077710726027333595929547892736793410479599588707965457711240710222860349959339408686821271672873351298148697874174529990308628955947393982356566628943759633508157589859199065114005674518471575957245736351214616352346848740971961680263439896793961245881665219086616165438213000536963611655493985664017936904884645804577639529352257914230400847734432441325861257899636329984899233523065707427813986411109503666365882548961718667286102765597938880902991172398420099215910809629475051101327375538688042081518799833589728742216681617315504254010123219064544727103516485269288277054363605014628541429627706822178187277566936776206696728367291108463744410191088348325877647955157959708303746125259043317921237107791403405244027906602231511277468684942619733860331716561460707526645074414273115175618886754579621837856641639169824916095175439844692114789691153752946205888370205142166678425189938849865878013822322359819376378199439789787235715765563452205001525540480302046462478904357549647897778913811624098605131382711971867040008784408747467712245685655716773147897819096680392388896253295206871356528170542019288559701991738305133966223540166357058564840450910457815172254007165333713248001673128096363048735607855666591296217319710330128085887262524752789204877050885847746523503062421588038051469970609629559143378838760847179192083086352553137804848674718833779901647502561706049766659399055242101123532328904617997005604377546891207103225388925563620328006501845003941422931820260647199021733517387070143071564809937759211727911213702029763980158076968416247511791049297797120081319283581998765040136055397998104136240250968113770706867875623394260297413720051178337102281041096523146584022509405717431829875991579183144759394800817788023164378793493045523892732455829016679982374099209067071555611804292553536027416935219980202028646380679512592026400717040636038817716924322114050585280480249430434539132980169971274154653561131686247437387757017556552094001255915508225910431021595354704417615549398184088398066071215780356655512004033016431411810833314912034916918074079269919917243948091440693305001462468599107860201605900524862138248080760097696979117631233950833705954146773156933861511515117936013130989537992918674060976794754608371047210974757974914571808924092896300885481100996540575898754281342918383212093243742651714215470968053669506369920889564124154038405159850977257369382344894189380813239394150250207180731608916888750869969295629104500038545473353485253573902542391386369015924607781533438039853562813986932121383847100579167126149433022414351124841234088803809701614500150521758905051450494064871667932225327153118601606114082109646276201621328118163255527520187855559318765015259251515161190617263730190868960675191782808301361656807863842246871226300059370239908950563334991488668795650636897827929102676704556710999787252737821521606864611398400019693004939115545393491951613356026682188176938082205128115465961370822605847689798761769821571760494178521056954728609129263439141242469605731351304175537370319345598654617043021180007260264378436370997909578163797177174906136452414339631277166110560891708049210826512876113175502362187629550793936726141372128661037821034176710741552291204413508960350928920511001608382263804753450181253090557517600945442507422468453299774919401347513101588435171907240839731164378183364315035387441727824734666229297190133159904874520461349713568541266437733648585606813701331310142539750908661890049052553888461524182959838401643858643530756031837334385469155030544924344321225644535132407228101300608605602036863807435650352601252493512984439479181215007119892735755644584432625280122377194029139759957023654974606918801008520643366946499819879614780254082960402953925887086273096352077631477640921529809737875098428504680940228295173251567722330220651496582571167667783297977318784706623091480808375532014254193368883243942827198357188626609774676230702706343272490742303132285913419368116396889680503719367223683545186510173252483413963402506118142120565110968981648795541248644490065380485093261387127414471360779651414045346887691416039941915380481845100372837443497819712671442117847971920316545884888702086464465730221265406878543265425280554124335476777712490117498550974280401716353703460470312379506992706558284384282237693219569109142684658765431246968714705849792575348986702093510767983714052087002044236473394634741306120620013323454757634110306335803126156593121764216308832107576105067983526501674374722503524414471087425256984169009548426254239894720985972330277717446687241451397870793431360796482687006264258702490389464188603405329300148515717761581388764273984497837952746181061819046256527693444336793774817176011477406443224946837611249489638081789881159822265500936263547761846503607509367874784984615809872947061381542472391723503484536648668098583645725717330938659168143424160436271778244440612340848108065512146923858677537398755603474736514437077579488433147272231799339943191427913180408164992679687145564751436257005654598990283959802600459779746124984759045736296163833121747848840943387185070566140152497449331530146086452631188296157440169468799800292117384667139901992990576500186433164341902174591719289935961567964426755047926703397335491461794013192281822650612230630654068444710635765627966915067442068327613419677975300059442473524311848299709544514788138024666586165265262946195613582155350189151482349176583103913866192990127578890178456229564478579806035123782952398340730590228059267288621943923885012066314857928110400770062510005530701147443724572204162123574424104687265562619208388006802795739686045311174397064358702433266282813298014354223362408119335126588943004675217529653499679014788909296506294687981216600228924048351098530927634848839192899443614848359829469513751831244377204992842588423376039590976855348330512188480172448535926529898538303775122691845666659191271061303400748154227393074781815669420710991878818952591733292250663033418306943299606583085836555261765879729542465280821397280280782664881122033131694259341011265867466263903381570132511571269724392873216587318427530546815586073891196406068754629375880307541419036951792206589877281999511798315139393526993863053006119595827316073579000154248580730757825538025624110656222813513015616422493066240552782877858240075157749100607593444875180817245915373141331843567236438875290731297651216794076984104277303917241526594832779428565416982547074608642732485545432721362281594587230887512905207825203588394127729490297380080822223241277889137857232910457302224512711317523200041962233431256274487033356161003474225007006338263101139080113587682266052027160336748485965049324937959807703141434897604925487845985212954988697459331725156236898791670763453977288230943183559873804378036024888545373513078300107810143569896507805219575394289673430382179868325456542553072703260830028947682827383114127657702406618058106113924291535943953235712353000186454604188300691454015345291753896874134687353437196650758114135702696445290266788515878354167911388023277914561833938739618870020612006017640065851270691979177957096785636927055475836908339811449336543928834097791012437550261436178776506340505751119487156058740130914438097558570156690173301045621528698415961750857257700763405305138360587734492789945380532820131193283610298786709711439032167973241188646040304981530690027564020988605533636002900154374000294009553709617370708526476504161512262325920580461334877530336881853152716774911416332308908507630109253482954146243878941371737122468591745698982870250656861478572285366683135120649860782784666145484021016526697098969295350635832748943183622647330225051357332558606632504300722647328449302757458210662838248993115653202791622165198491111931626189233884903419230819511181067871975175159692660104998660499871567909910671998614289719446534842467712868977925995915973357430156471914807616003579505204632045111775717389420289808482360003125810839463327502743151778400464653368419688379669955248360672818004601322499378912929854920240524666989488697486192839320638106398071351849445466069338318733944157689994455699818887100980887910701551852590126275370465328236471726949204773772362056426603713927588743149114275002568245495271835147186313172523290369064046474463204862470298648990522842810595302131283659115626521459357159440662453636622670833469595777088321648531021287341243550390391749484856962976138548428738970287994305533639806012171696877589261177720499144893408680312979098394973892633217067110635028039134602058727724642531723493008607402955881612353855517545266144630428928910197991334767019664472127658391128025323960921165113835944759748146932057348112530500695637988668875041209311426818472675388892133909044587074976298602911241418497644932453375879378056751920930867675058668528173648166532975507393924163261362244281981241941384442766267732991172363676885469231905774279694053494437036479630528875625954507984515970468622688527763113407950930090826345083041795548542710669262942534141029030468396837590187079640684822519078719569968832194049927506684482507534466938503268255279425822709472351522616654842171740717165923744589345761627549486893649525381241318509357907325987315183439314846864639377621101708085617889646804185700839393076050733331407095176712552577077008607547480072942856176688938495610468762523472392090661198951012116967408428385987995786942714962629316051337065013693052143222963688317540177623708745121258470863744995924431556058033939296955945632795984729843971167461491489087546220945292749975280830319461711948306527331273227372807247205976101298607361247298992866914653733335035594662854298305380706704984548606511659233032576494549268717460381077585747061244423408659800704691833472145426874581868296184942215473494369476869022583244195653718910582429064447939798672718098915210130662097301129665605486872100052276603301377999893706331302772431613967457499612253955713867557923268194455896226745082698708580418566663177484022115551313989085950266774680113408928604587453740281842181875207731103926283425641547137383472499725824371781164196358463732688602714647912466085557972768549759529649253488573310058254992613561205120973997799426982066227703368561975739258829409547995584368595649486148007054689518581166242474286520312956837722493822471103077555963775743159795757808276619816618889743275930473642409478854765822324189200780828054647819836623747030812629380816803427088006951470785100033878918347909235639961607625180332790769853988582674116401899509904523775303184780329907431434152752786533790515554511897094814209292906265402019215286338116390966768453233788261622739250891025004544169455136967321767969572873929709075462495591842395352610555602429060162356959769627011083413012758315589147615676702681389783534491220346847878780143209045245959488812785386356046364968769279265664118564754720868121502635385251898557609685935881140488028317620665638463996155785951581418720717986332300453985761460144380727354511647577166927408783146735022657212903827460994557539031871369060083793721243210870643680564933329897629532973098104363125687838845768974950708989359061029381281727796820918388094909657458565146480009829566743817797337862589802420470270303874647550910335909846609874115793038206234616883053801585020657595627289238404177362987994930952327819974701103386898700590692215968367228176914826008020383480088182328166954553990450112147467407431361880978369089056755354433246747670503222270329708467955770849580113682425078875151579432155356707892101204328740291025759136515433718105069750803144842329990513633997440628876675208956576775796301282617114969603484408943804540532415748073565416045153858802559672287676282569899739929681739840460244623024275740099989192325869648034944091418079741091872256120305368139173567096129861592188260175969434583822799483831934973086263645589424295187489702069453426860755091075693315601463427803558887767231013806985703670190058819652357063255617712938618796447606883378928073453264726928404096338963346583046131600900509595917695264300514242748111641411668726491117529441150835868037284746769945415263581526526043237647743688491115802337406725446293395301028171202577679735205706965773880564663605552019053671174291494594913584408725634659804609795387225318080794452062950091323733876008103802183623405957146458655153924588910189468058241385828598940224296852318715117174254030663766364552780960156610389601199929048176792719322673612293239361274738250101024011830780206715976522612260778923106966280546172499565485599877702882163702027888766338199307348244078389193817155964686669024798799578645428189778380289929181379145169484624402731003791667817867526353205008620301672624762314195978233792456143770900500403291573612328024597674453729398199266194897754547509734327675983695447667104143568250888344277688430290184687588668368776693458950816251435431870694507010979001805624328459818856742204700336741165253727598325149922945643737349259084619636480344344006491524506698416494935169152004429222006283083850219914678819537392137093681911141061733493442594751795036682938873115557259452678828745332510048138764802242629510595070412013863677976314957873763406893103078137562324340458697168684477110278188084126063800084024176920085604765064451037434003739235028001260748425211253832747273257554374035905245632625260019125616486163194013501007992748123916829792961665679998697396858468535432491884333338646925442175463801207687049339368470063705561640811525489303740442016744446975891908037289081791922059071019673231500459637451583523824239636688424170413982799539575091636634934535150200997871657772925578484425110357600502643788099284155423247714689557154414252694276639793334644214469269426038527770244968549155382124612073337117815307703925862883760294489549920121946387255017929836190442914849298984697969836443730235372662380617608531044236243186836947057874555186856007077303170023532117306289435466276262449416410085705616170357713968920876934866305676793048735909656480774176115948710372889484612251849118388890127548673745767197696022265254321996227689882897280279638670814660311121728714374467394344753368298892871291103052875689179291359504800650700251591183131526629680061615119088696309606951693731049604772861201665109718481176836499941469711605425309732908023058343161140123717137404926042467124907848543744090373261214205919581087067533615833978663564757930406064436063969555433300645174352469608855354007505198137246492954939582414981640674276754432273855447928202248151771561062294900072363534878127855447270214801070285518194862446331771590005993654789936355070251287000748902401725290721158689906849885747282422857457260506347247175754841629785375895041683260176480494847706987475058958073031691035704028712594444177644092695529634316788777298816331198667053128896733405258335880457830622764293787158445620221966957683461928939468182458137988650381452447048421606664838501146987936859928156394374747633955831209272550275327002249182086541790107204243504123218398731712804816194570707559761765057969569514616345645773992623626534685084404508797144530727369602541302743383362560458032137452391509282568716512296305482512030054494625259355901618773508187221031010215447137831440155586334124562988099061962217255545642520294115781002401925434059906837943662539745124547461101107979483714826158196163708346775330935475574329312304127475930594057361965478377199875031771831600529999010136801468429614921885490440806355126747011771983803855935147295310739817581003342977156832691515057430578842818513970401551456205452576088706636939085014172637699210169356988676211327330531023608953666875423446524097708441963086254109965411973164991170802403950005410374402623407563848011860301585820395132616478660443455320771050045888971400692053627984691587631294141724685496500324851908267274467356800473738397775085092222380653529696103994535024686303381528670642120396514327364068394293299375708544279105064691123827964801278240752662694952629257768894241997208457947038994472017926010756309133480306040990608632274084018820080730094954777670789066713171024340650099612011033583279946863793966642560764761726925864162077374983211202337438553656647192388761068044670767155409257483348322942130136414885315164152950464080770454252210186989129074396568964319406184959854640690052141565534368159214872725718404299620986613576410088456966219607222160801802858721682386930350465412978671080116712220204978493166940613947157273932411582074176014905510929235526623846443989301146968082568697592708302739532541745311425809822910017060354175261627223897679217595062276862539421591578244246367898973686215184772676294631542530102880376930210315293472403363184283815255294265293790126688415077525897441867466950461591980796227789643340857866941011165423749547526285542036068663039612448543721494671338918943094667550384158068639722276786997205601100406360434491561932715750313665815714332984510889255135755472353257384520501980474074162195295759855322382572148409074412887302794711099442540644947208684041423409918046757213455858423564182534930740960327110065834466365252160068382228782639410484358272911168847364704769100559861948170850467826247474448117306641563880324818424037085960590076780912658670119236377039718862228415481479946612189305853923914260812123009685853666908998403354561164424991383071348510736928708672509852380839580989820370280168653733636778795655249688203099512033737915698041740403590060547926440529025424603107885922252213539340674822549717108431505889486394921736728193265260548638134585172401564178111338206369862971843131528355275103437494350060282516797502472500244417332117917578477255876560783326278240831955690833042792667429426044912241268064299657486944174530585608706922341668613617378370825434157585744412087212418949995478344340365719993761489217253013442385147350585130310097477200548478278834597678871951360746531508620400127007545146498245596922688157605764617058682467919790631190686398825741880192620911015247484821937455467310379149413693065831260422822120487215730638903158984300391791105878410714908782093154968341481264553790513075910707980003437133360133684967599284003681650362886667049307753535807653534807327839716456537407672427055227219439605986849372464293241509901493075548588227645010573810410896086410619235895369365722322131339586392026940088371443164955381076193753717868182137080913065629176161017275975027574724225287001787514503051607932882862510745312996533516575958329001135222615407574834399992624033225434957975308738723228602281863986587284640572626176116311364061456329513640951857124735840476426236899554270243854524037138379469802402344444772400218099472856080638458252502863466976576545791567127259709089277924470498174630047711846864618190689535650901295366681178427086043508382312080746415669286441209322452568357451863591012591195841457749649374938810946767455678395398277599129404109577313495649584597247714362319144316323338244619092165566412384631630260929851384743592403174886329487682274150300152927510241620845159180998745293305101465180657000189063032608054143341480513526103588409229332076596711837906359388734087281079568527165964577837816901017771437163159063407994726161866988181572052424816005511731140514300111675978910198362927668354708511024442691215204612597398817623612938953008702844836647157281043812599923126972173106859352172921841694148748779416030668218983340819739847641090924969023808068306675048733298837970738850615600992730464971390105556391836600038859260350167971946514421738527086728345184172070555016579333678557535191971576327515001437080725875129832457285009212610789234219293996520760940608045423563916557924989225468972364375416264559271750174227414852679961515796006570462836464628117949259484035933333503037028343098702522044371722066051306958894706511271276179728322769928438980759005324552339524221777516694745412363816167603793457697037945932757518345812667479365084077040739455343998690023808137642742405294392179424982060805089720420914622291313267087063315274111645926083575543650857820803718302041792887236328859952457891423067063070206331852208264379639458284461406969323400709231226256782185345905852955499629577738124397090641975052764770472869579517606984489434159543846569180898025196702065028003929870143137296853803572645896422337435313933702439661097736132555660147985996559864829190302409586262091651051150334283064623912090846237713206082175392017493610935782233417558285235221437874213168014204507763036976495210367432639148369745636425628119010807484683583316530391061091741409162516790928025215382599721993701625153796864082755585447149904228700749020122687576725814620960770332814129409162038407540198967437569995138397339906812434201522125507435845458525973287721511247756174693960427910576191023932524302526966111872783212490896993304670611425337207284235736986184867177210659381952990617485972104773266106351226853978303609161221726956900128607691974020023112154573816708037337045182291535233489783924720635055381841823271852496785894966586978189223014500733784058536377769988270599978709913207994735162287705322498359455729761179513653275478859981343171040658853012259055177873698271059774079218832438676424657788347166896862006205121550170863778183683041084013550048186580006242851025475404378448365111375906701998524541752759871599308796268815015362912815908510741294599804727106717396436194484429765345772583296877842366167055694650370193211004074865256245225832487678977101508576668538589151745185972265153058406201553191539066086635029258076373408786303316656740920642701742157210596330617492781244990607768339892408488708612332392545697338913762433952446332221013575954338385726529672442301666515434767640224398270897208453844197923869131630902210911025625220045113768352325435244847863668215693421006495444911686799478319187023622051608812117500475053624751332150540749110258625127728748957326060900478659779673728289819309177092320260458374438495819618800212126172915195881858202273538517981069929443389392885666813984478360960035545969672344587807835086130181852982066455056911117580843231148496091071103050113527017155590297680136182195625684431202521054801448668533010349196508434128129729994711844051835865585535326638599717002056978254561951929440806881116679559872327189743281392163069502964996230985503660154571117555601572960062491933905152096476605016870485258250088895286228314615909525386298723422551299176036578711414003082847455700540143980051875028215381580795307375272147400021517136904463766425428888268928496726295858458972112602986610861019981058209944362727872783148925109391058614893055941166089568069964663005433651486494641186944982391557305053655820953693004320523954261578448641848674700336152760263440834487675049274116391169976510013893217489344191726572090714667101367036665891354209229319629087882520193310376710549509535006026083328242739303943973950406660647874615483339730463020657157805479603621968933550503267190968527833742805434730925656517436036601039764713196920178685544448135675897663850376082639402252602004311202027832909144210803837926447335076748010494349559657151934271018180268139680156278247362213891976933649310438681201012679264726517122469552674290969244656310458801360506418869213973447617762880519397068621503043466312923958634244056143827989160780401538609972557050599287134042807088856047083545099560725291868813896172949363396080052882525669795644464096576190745000258807176958372186930524618476636719381619301811427671535418776452535859721269174885329134062065480049934061488046067569354769755268626481791265591313572706829795831637896238520266262946602582138861537089622552598267349357922245095494356472855171428071665337204447980667225559522571066009963313186764983309987519316271863042436096465983572678372324149410195981756676084119052406231297620503485374376370334717906674712325580483425952392885679034379825725457725155440311630657698933466488976853069029206628800398641825117335879734023267198320001455463430007356657807047166057134214030297011928518436225408878768762031878422513902625782818036766756460307397509509967194320663769103570213230632450408985972622824394741055747631962378460102140726246719124991850456297638604155322037463952444009280138809506441586122003536205068707914715912717723227307886668803862098419287596388645799471264712464794680294659689752626150952123291525580243087447671263016579196981091381682636561690959014486007820903568748374157978462867008297947807439536929607281708522611036360833307262877301127590694257095566935787913495919462127426189047665137544959339872525372776043176472163116348611703445104361328559200302904651415177082719632996296169799150172031948334023325136460517421299729779837086629380855803617850604624542103082267479526399417503421733832846971010644250613649473982299225782086832982563071247435481552582494336427285227877534536289393654406601610217266675193605510095403768625193299428303272810581344027472751387014567466944405736088075665183979750455864851329024575869580551312644900694203301576146284399407626808691330937188448023882093431551997176923936757088110202212602470706580405816020306209256801562510651939881399141395813828696491479484059230384837577732953762056464588176807144316696173133072799581054432607069840745222160105881730188752277224900487754401525170699392153133614658448263857050828135608807092362261088612006129581318855193211849300168171651765917512398838997044028762074186416639226083337931618187899419898980827419258837515938209828800223461803731548049608777512454710880364632560918022239693909873511914884154840626255513725825058596798696770710932657262693613498178089350472472936512748872713838209275910351366064424840594351447976260192757136789005078366381060639481941270499099930363362739119212376280656099699692001447502853766342037300367957749339715807588572821029582790143602633882741196897091799223655092401093959625909772216984639518864017968062571988038352002029444768141310131142841869412540801562566165488201559411777219460620316534493803324566794819918489036336037276702797721836417424337345330598047005798784865310696271449183178765332760098543985462899538918328523788021009355123580174330402427180271665025650210032564289480979332357249496689309581472911991785796283612248980602662637688231441424443992138036173354882173422247569107156698515886205853006934246169810472933080701302142022764010008272377267975722560501768079594020298039104187533333443367393841154844425700470528471450919294115966228914233148819717425294304497329464710565225003637042875589067535976408717480488859773221016211895441331802367111262117935437823922951838061806472650359079735772045029357056733515133241080364593092071116907975454390788870641018569264459672343495449099368802117193637240331268838510219314497442023906510491436830073816776923790732709385589439612025348011963404953615785144445032698988342668472797931376007250534583064657437461409132651014333111887226351634803490312636242646919697428563230340405187111683444534961478516995451266860646749855243097419446826878368052398290581162938834997107302737191598248131125625382899551590726513119377225534249696504676496799632422681000147832416640187031290306615855047765241935395413670503561224794194944436569829291458092578563584522110380880362257538558765021948576555464247410639334221040493676681065563297307020485601324260780460604571448177221146086192450448733526299528881291712039822999725835901815741058970478947554057014121010621466131295602203262570170046008958036574547040123435137388143683903150949622946584222776442323045175604463223964731921249130222168703213397231829667568230188635674472752411496353422843690972252690477788068771638479485384262079139098265923475426147628767941071202569017831122372207652529522535222323980339300212614056808566298527819733499354350276071869726776411783626785354977552846570841415213332307549250211379101557338753148699226054824431514154946074178269883659024156688670025616062619171350982323749148190417066529583826672708965855246456459082816405414593944983747083788835524770389622320778115392593837960822841235303862364203938619530939569961415978507408403838401558771556025980095610585800782624954075006374585930630216422593426063719786870647306947209724739958465179386996672855421853213050092279575142411856649616473194850890346384893439036054865006786084543140461145404636780788614898640224236996984166915578613904607162743709424681822624936540377202122521719117673452276435921012492452892539796706171639298352247451390302270145700077633433064187643139300649425884851107924057932446826051198321376275281399339059461724136358178486110930613286098231117557236784318509205465910043602497272098015939300565827608141268287323632184012192767094115990566224633153739358547767531560617766001172464462598222378762749027154184207223226263942704552501540026918153801454768205698366946177261388103283136903046810585030870994873157348315459453477228704931954228228809066835791232205277456581179442628619337821453165231111697150159070490539815842758042368119395574848948333493824365620515247406093298436590296840367083673676254829551698340124177706308949806748872479209784438631406535274000733415467272868735372387298519149122840423208853123474263141846538667177821891785329653408315265934984750126802998330516746019972335332414145015197700195942895296091614887570299947990533565089836433320830545174527174654891135964512672207838075213256016732205072697590701940535911088616900366891824944700864219350519355004164761359690731627542877083821508593059312378521280977123108812827560799876610495686748365975247937993463608671073777175543330233359559163310534157959770947278696669441121146317675656961350085470767857319058348924583345616756443530039978006236719250824175298562131639858491439752410202691171543548061973432991485919109063990759777949270171030729295214051830544593453185363307442962292759494412529642147375254298575501040618871765135065619146221687011045319655744551160243141206469045255910860368887844026222974167799689154829005931414077902236806706363480810722815008386241765391204418171021561935770109742618056619249229349522834483649409110574707755628686081937138194297878701507481821576755956420873492969644068317019598964293565629967386740916888032795858778664834588787294478522268045442516312520519026683685336403466842439187773052681449685145337687681439170867501416324656460404057919669297139319201832329846905463207727258362338538623803363365211602208650767453837615843883679339276140848207387470506398425119292319353615685737344002294864637244412087588836332818872212029282424711421283389900436984684007458210103968739949240592979347497398085604892847395913141821696536822294970436745183420819844188636899783756879620833604940568063307890974870082151310306239813850473484967387086053310056456150969428101351490518689027860525361495092942213172227129549665514383467873481932366433630181126007989465417244728169159179059654850866486005550572424042997771741975692445178731325385267063734953337499998864505734791382827487155486865018431301934969819798875740125628451098421594355827729719323839337345784715287067013065129954603721679538475798663252149167542360792246517536161989274459353532001764892958340985591807087348266215036703486056112935997372115264067929528928166148029973847437125843256059944467042007747513356067761528050173931856665062275240999119959445023344295899456931968929916817213665290401097914588878427683250423991441745606369858023741995689207718358251790019312018594177599838267088810717143914462035498763471876757378052428656405397360214348779381279951586835705216756422869213544688730126438376792419599276520020208734247208150507136121131739761959292264177921280961050906869450063177204782850034842314587694390496655393683412954792527018258177352993184244386575024561530746279191160400945015905517866989680924116283876078000064033799682477376395959500753308655527577411248397467906530606246649872120588671905595847566256669778321207465024793050050099825343985735539207686002608510725000846242502020716109881859613539062970581874413016005514529301680123325917723253501934837948269484621351442579836949428822546643967697527294135847458612035482561463479818531892985602752541661837814482239675276231234922255897949312189348174082636505890442532004056607304266891977574267245158532955717975040311996120977558280296746417378535185307232954795306109127741875199606792770151332853775494974306957402485304799530287360007613606617704138033810689108233826377776421824246565792660401778138343652976744009323195781917800828150296924782485343083057182021074104894310646484894464011565828761863956688737518764546943109273528123331306497712110914767164707711299595911128083913553194952818836385106523697483927438035225379458388662674991570997392518884024904910885511170901823216905795837322789218372197019831252586231781346265557441083867619129762405199847672601460125837533231319027230117852033194350598978049310602197961331204360837346252826142591360933036742273409148163002750854698544317389717247100757038701210206239756375118911552723345539559089449414625613940296265954959719985419458428787463684271665659563945069185220916043501597899975635781309494490682878981650272672230681147534318938610175202158229998982563104273929356965866637962877111022177904867229117433044095456890054643770407832559573266715621587327404933067929567821403732139400665486927643681741370860345057137787716080147839622856107892456121116071665335076737121421736757756236279316765079705913314443614362129130411308895387210123929352007172260986251039660509274705095998608130252828933649763564641273134374107147779788516796783822091751757350248694954608013478743845039517084558771985684116184398887495773585101244545957263976380988432268870702503473643984367622199311555244625219092197291012670178480001597491028177628001173595516099420135316003210636276278585532921751670694511766674409951174444047085095300260446832070717849003708126332200739746208608388666016158070079063033371318351632017484342085585416516878969283210787060704074999840465235946050731299205394612852584912068238978736941469362216788285290532427909190542235260419929724691235247890882697539441002434483942919880660069712915064163221275633521782855758238188678023983059069940395228767161419086179737935977208672041346163782197821248650898789213847497745636760792402350211980498574696990643494568041053810544273160189817316703042551092088825759939461107210767922416904390247523313881454849947423228096758566119402030414489141739751895079823263061925800801984506668271986320789602560020679045885472050861060269350019878736929556229211735437712261386260496067597589982404332562193415354565680855618491666503934861338211714597191028712282129924641996143569187936010876384801317799717509418244441609874444791138871445830025447120343826515306273804636637197469040100247346110703185849108182658703990425954437351926543945928255242447421783531300661731684450821369669143531522700118195266221044445428387406114405906639158517140977240730929896108832867566968125997276707372774255297759689671206987927548399591211234423680321149739946927793917403672432501397300998644577133729379939802355025979943085780213318838245997045647937737009433791356763094280860676801265995604960434660372481259918441624910117989068046579014088491414182590178756568552744462228281283231406522651631758240496403973536541458638350724028921557899823466888228251208203728095538753318791857364209229121435153047137715308522530274484886461412363432924619233640123920884402100837966085075720770358258294959773693551157129868547963012388269665392284776771743843832206454106128987760096452225413979251915148096127214645625494172150404158131197840209805013995794771039332521996033044765404067749076885889105447517516501464810510452748533079663982399625812203072563947948413476777699825622853685291562088527983061191767639975474712383141362946417944481675044769166092122171821187223253203249556131066755630447196144583786929836042628133882283668547160447212276812376598382988220274513857683324213363907701454758104684972965916914089569556065310033615301928743243666573877570365193560353574787661864617415693181607614986582242397620139976784520000569107916283353858377697196046770973340663423652291958396832320732498812122097707154807139373212064345277519555391560331676704855821218384127627107309393803933673542448565792324137338203583665206466160883724339564781978296546437078565672049767854057404457869279533330416651411435990721192207018188326148685740438768697841478054162801400676388385619920796003059272086504050261730653801588569042864511682321869795671174896432301003797619424475078600145927815275577261445189488253009355099295170546763816210389663548600737795934149715077628915335776027458759160264864738870703607447252477584575342409669738898709465737390002402622302407878592068558020085667726191130332766986927589310834903210348994059229000008727008140225252714607861846222166866901202309451754098526995871067200434497941179979171146942772465541865229945371573431107425595151982785099287545166654131855540252689036946813566039037127740816153538317781909776508892104256538602192409333618635502472987500616756032462889724484527207895176642688138730282520209653870792019545535222162016024701941054259592595196534323938324297403963007511781265793399439229253460468182908272794013606560586673569000936961822255531792914876868604714022568528781682669235073021469142351015685075799836017712415550654997869731674475345251316076132177268853752958424501242231438873739515942732349562113422370976023504236506302419167128650145526052496221879890410205274561630644411572909481269390228928963742083467836428659807005862319191094868662893006309541957091788942774456965533401543960226615582094976504080295184727128400016196958987122114760850556080603847066671876872137907709958221716943125615510368942815416141893901535070580288183708540349883368523714002367267556194612198300285466818487107006393653513223906369656789376411372701319823164494577344527316741283032810160949560336666942483214329346436900281194575104532450846671956313156330502792700441309895330077242087079129404548353411380638552786813895259735523628157055653711086373968918155077301630444191200988411042511621758044592202869875213141032815314421524915694853516457324490492720524848777769815175959744771824878162604648073560643799979073906704129183854708190517092162968350415587879606008733535352277359533815220985173649395203465532078748297536116915621804536768651828010039662430775031993952795105357484953370212714922143139173865630640771633699148222235045028876935525739916151766960404161897307440868677850381451111455374784290865735158417340238971311192485035397563077922353619272005338044404809354291431389429157687745319611094875612130973445669049798463363320756362861623303447501608622642491004993366263498808129160346982520394430074607191958816497799809967470368551792206167512476942670018718713295597938446111543342854496131531672533797265895314795384545616033936942358913552586112068514553746670965361084704191203287066722924086596115886345419404962085175560425208207541053072782401835122350673698223134842971256320505807392545156010085267413761511404512485590928096971459308758054729860044087610308143622282762453208143914102975153805763484442181476330735004545740922501821116407788531182123140922218294721980564139439592752306654368298789834123587504562606014654196565861799439851650884124787869040665033962024246952381916310916447940708567742100975665472051329941596969775486114022278526796949002101977671600073248294433034740249384506347127034029345091264354094367467970251528705888028533293355353801710263770323887546418538582778485356716364653207618573631994895799842076394827334071899587469892244410993903648430330697465662085412042884404669372341647090189540908098290967671409028156534539651785528449722866391246082174480671961372497228427847391870894509947156179265906340108162521213569837885615974387120476021534285020516815011522037878488837573078684345922227908963062849242353172005409163080495707678958654901380043136867548386540099273066634771317924112072587962640796825705127471585851916739387409763413237500856844058081624552657335589539056658404664583780253860696028272695950986490243446193082602737900109791048461063316574309946010709378752859136115075254269995742344058247505763576296431748149075350938783444593781752264344909774171474780301097206006805051995298730335722740488267881840518756296940576548459364486665432672394138290482732264847667579159333825207633854075491219783871336499864880412873060621844401057944974043812552731106279093042161349994795553676237548363740224664991628800171851250327964708760576479572640997450026810746315753250376770159720706443079943672515769492372738056668221521953102841512140018451471342069099165061292044333019799234910838981182411696958027950891016603270166456353496228689878219308261504087895767124155424502607767696246384401929747452481614611724934425570539033544370475963367518436060388267119530531992304087916650512666019975417373791537684138255794332392053078766465087882858300707177769040368720480618449315385817096942659298285753569001059331902775674353401039194535959656052797004869788528602826472594248030285858566756470667482907892462409232086941583799026598050160264719253693324193777153322032619924260462811696740954556207184951390111012020899098070601002729430761801584547723108725579159386919930025815183953619376136298470518332317133109341764271512571465614035685845065942280712779992663113416328308477339257768276010448784034291525223712520023024924302218006586110886996672874613812925196089642284124799214257440508017492138311865297911685712142995468398927667902515799020061363646862234519720582708514345713267395321331418308802622843798099197941601006298119379307761366868783728828123185530435456999025672459252598174920191236574340673447996825335064508295606240628471232562312223608277404921481984360344407885824197771258602096251813865876009562123255401535521649504894485262857375864917898978518475048479981348775104664099377732814862212040231907905228636186683715547969075227800647919669703057130458605823111620180269489473494480725364726599886869975347264668866689675611454930375998789709980004513471633159182968326889334274176316199784688469224899075522959519337104958029426714224448445399813484318165712233589225464221669864840076288623034011556414982432384955340375760314062867826262720672043729890236730206910078209024036022924692984266583611867637446714983762780483004964596320297430828603948540938397781413806802778120510615200083547591684724436815588722310808763716407338481653558499595601399670835097043349486996939522932429231051599150806060148400890905571540138397424152471471608303600551278371407327128196622273194672979671514048432433423810152583370306735433505959368070091592414993006399105960792393544560527611596593908022043559296692720677697463418012606088726345988176337350861352855532080017797026336989021687322411436765504828977854491528675330263393009029001106991976492694701926197376548812300032683106988769583391663657746737258725351726231887436412208889599164721852795097441449046064261156084080409220276485508285436211845058205898820967734869541689855949659712489503153443507855531926186054198587232382111234828635545156927643436155318449648912504160614261713243806063776952540279750855440102056213348242852979468384776618648225860327210669791174187756487229427299381759088139748328865676669863711906721571509797345599155322717639856138104802791201210926292601211103461434397989007831980181795631654924170903635754561726505950190873349504028630044342150882748008061593507811750563499069704140913032388346390949674029010255070667358934269962764417885853245611697870478878984547148198788605654327380307498749634531824871355089227938669427133324432428836842528127779985487273715111172598628665791127151901345720335267561101012799979217385893167458573839067453294360416346614299646665294319119798523369388361140552688840860747446194248301908151598184592542022239326681816699803667848822619609613570518913275001383437829890031760749348621844728289143882728514034799691433261184155394971285397312823939411076195413400402821498733489296522398637769573539323381778472932107024156780761721589392156655733165338363846230923195476834610865394123622544702526793296919975724867588394485368881254865008388285203402544516538494271377464838035721565375180646931812754344243070958055394827255258091868300368267359732818161438120292419942500394688225898712705753567636183596575538711712432955484874834091245909690190000908155950534981566711257146583811877386912811735613690607272657284894572567616397782625743761962325154930861459765765177506221058351799880550594618018789533585928482158633585782130958323482305830924127351576661050395110194361808164936505483174001820115045648830509504076642731260864356177851758362105895962419994053182283001210941812448644566163962592812179680040123217835979067584287761516102873959229995174159258901623883977394792589907135368287367850957747295991944483974918799226062506365249415129312132844177259627247957590002778988435348802817193087891440743393060032062939018335696674371551659696269358766516732790968885873434050050139576052267443043588051043848952201400580294926436413621259392975451172516445834358368368947650730960321436372340846172170336067885508375421656457034845004041937285498117221754067555232158683217580049857856561264496603148546413051031120716972588265280966378978504194354173472997060878277776973603130604091131903362563562728177239822884980105873677159102554769666573876048897935173989849140006310319071572141222708372390279159047270274682582515626840862835880302730878739097557926517535583669568525063300894342121153335053609815603396839210791935197355565792921154890900929785835877046655029618585037509481228392698372682195283846573103351803229332802724119009188837613711739599101488754599366776915572651578061843541079635249348836603707633796659626587542364330028817880489066181089522953462436022390345536704142821673968029829532585938018713004074221653580402706245836732961090774460293284285585754786310226008724381105783397214016288966596841922876961947318506013889113053464684644053062710583170963956370346879599202827494465699797331173320518510280065526415284468047288725459855219611939994460426053288945320245514251587973491370792525296631607312812648520307067591824467938323424116621514124030474492083920331966114105994335275350619553518334042911391435892270619784025678350399432102746976379491861171876058819709116450636595231157399406380367834605328591349441733567129214124789927721986424809723718580770188181123595988612768243765767441978329937758844596300688561297951302660446161531230268054408453934037835175326616723621904981247777835148700634353229769095499634715858378023094276715899545231832146196301905040702234345588049534264490626784196588953389031014545915661359552611901946849144197046540865981912043244354002057773741405942193612848817734317071844769891280056927250998326403527591534174989888993420306695773107730200070573771362547525430658091435272735329492787449216078910545275426794115305188712221452355788180798317002310129211721211119248418262890831835811350192082222034451283413648625119568000752163448189782604579314758614354259702420327019492974589885401355937567867047988116670433666380031432415637591355376340592063370086784822217499425328908472023467515809959743485803779650882053811730211102309937882149382698699218738856902336843365135818685870670095968748725269019084872565039242491879273265594852299070774723276070281649271663310477911014815081027373538603473124956316474957648725650192699339182277074280807665569532949920240739993573162594046074174232797760703684463502358012417885766390383049891976393302968531696331040830571812292837235472877164232784544515214391327717853872485215087200551363890536697043685520419971132545019397087311236788101908559451660427858030553263145556074062931881673736173951393372354531853845228144895116522609089973458220169283589410424825159091320959549889230524810390535229579712352865694304625088854221880628896635924897639852787213686749636394151008606121984372834657552721669316740445277336821172625064090228560040882344209829314649059798654948123394679835901224916374603367065687280521316310764300542479980860930991693199340908424383172756074981530614980468911896188328546743986808079038503424617295158829083228354260649539612829858143605492313450043558925207401958746626728681457733420681269531089248484479057862180643483490700593663697700126980200138282837364976088941926349636063595190211567582968815181699796226934403925062485658581501361176207046738204285992652021486502831851467907157917813462450721750482196983321157845273020062655286018699120951665675929943076786149731346039874113326105048706287287497685071617947194052264991025241172371242531752487973162943191287977837603400969702112370885996688832814309760403760836276835108301871930962948823733890687612371860992907768290248849898033617151134209833299879865565705016875213722311289574587509697834501971636433049489352467212599244267575491392803277404371036664308544106380758333525412722861554666896621778524322459352800529802210147797977284563716125071870586494426792850197451266220318718995820127155654585473197126317121875456363192776219247824202109686490331551844207834401804317627673511802672817059062789764773423943897616413023292177029151714479096671760392693066195192639696081936794711065583224562532526087366633392521211165333547508478430869476774787814584369308638487164510479848450155291065620256502858962452744826687106498306626144795246653513652760745429116968991782948023384265970055431445068730475446375171981190538298752268753040133597547083685141271798722685601421384472035128569898890754028351169909121123401253178666194931510224520969510281986932213644414994599149463712670447807920518958552959884675052189203625597259526705552234783873344688487056315819688139300304011800431105023717004791477941384617762571412488600928729040113759044114213274377632503953188279850140008237347614431954694327439466817100446469689321709426464377774854742977171668829107746118634761311290066976755957589464017444869162149105882510567998375226403273854152245272926029904533213014816611553890171298981444996108710562718948558357127400814253074943850779491355520061705659469034443659732420651482439184069204131251527579332195468370045532012977354071562095390179901942273833022003950200979547641477495721365964819877990122555809885315638133292817232865174581416733617764632407920318610773665897640792226470159689223963692331097331849543721331614890783456620290745438304685590765133933266680080573261400678068797135027042063186361346151799284769697255975365653148778708296598457541153512815975569486844175315135358193325418450396199588685339454802780433542387944059243706784832700061430932027607551776525769998023785153447789691165912430311749082893260297248345347729379798121008711290275798016755961440269649391901423330203948836161921141858751163041172268590596356258325797795770121686642217550430352713767509199726970193832416624990540893618501700001616056456320075877270569324081366307632852569544351830625400087301314411798983936042163131694229857541687557562794798232770670355272485650142153504395534250019019212713775463049680618613396090461437503110172676439619689082918584709353983859884894193340769121494207170940751394529539721197367449036456259109785846052342309141688401588216779115362475277422253202280855363290084990794569999466659072479315095400320141758700630428906224835488316707235576830009838628781762837450495660914375403207892407199870282708724082943030273407988565718148100120799759284156222904890338697081408239308956079254945444798565231543976531115002250777068000144376076539680564920978857361098149683684690785025026971392706241696796569414162149561314742648526628657819545246640947123629104970016289234994873542497160574711145014539230578162394813347412420362299442084146027999208026903545524521123923363997847026791369820251826589561040929355622829971225661294918091535251034891765916402908034871821480102899952071379155617102028296982566909619717832409929383017038366938776917448628600047583255183468706933965074074570988972416926714161444204144539205417888121810966039060626669671546173957352656159843774495021867226824632589824933183258678204123304455719216894512501341566569389316047607209724136119124271307648178324082466471327634736291686861420626592739872168323603030255312263388480557537418493166489789852659180087436514507593365014415919086870328428713888652246144011742582022743959983605332206944006245859520160393161210276484865472452727206437216039167412755543193656018729451108668861031660826466277282212818814742350248233734694210241408714669596654728237937118170893605336533188334965123793914197672301223081910168500720448488324350633094204750903824378812729168775267861860690063080034117251938554991602687239605873612787009832105711528523658898459823456901310471621768717903041452608666556448276384067660328546374020956503035171302844875239203029810452801832130614309844960007164406848943804443091186322830830160565769660542778183617368808435660117117134518920027215897670860764393734380713034540594758817012594908473424169155440787020213773445817778381936078626905040031133688150248085971080557403977995941367860505912378037137431001930003227207277437686036987335617285400415514705928931533020757413201398082468724116711336981650456030054440563201932232038577984026204201839513362702633416867231700672247924437282705844649726009356638317571259712667979461828127150740307604056437089245719214044076401411091496889430643952076353797191348704392633570215302668754898841616523129888070125225546512826642490652173496696698034725282338057641519872493758289892257560227206394277011802340886315817312912371352799401899599825694820589557163576524891190148036649676324062639023363166832700148225149455956153005441682649535803963968844896215173006960063214109923829650915034602652751776400401690564491004113880496881449663334826661918649498530838675160825244823503072745858023908041278601227426466141390496324972516798275359505042824100948023410315450510636336860378943444154566337127706108105579555302589993535974179727872715907249818777060683790617692097108313363909231588786461011847241544215126178741508451575652587796485894287209661602936269656077033640157923996143328898613015326850908055666045302158668228031037185203454204200392262465294358852653223156342918901381269035316845845340746008707975125880557568339248702502871220269150073711389002726988701105034883331507868938834459060512397833759771094917887141174981439584364058807512780830388203323943935581998430969676828208617351608440665919669014296557377501931256742382979757776175703873229641626677918285001205930548960488488797949537752042142183332361804066101488531544858400454006464104710397648539452490527229871476356998728662570679499932833607054982879254407991104409790333251897253714528789038702819081225203899397560362574152939945764918674971047743034055495979768350392282096155627280319059992153273038716186236522563387495429997885193405781677967244261767082441075201141248836764122544219149202823858080125691211423948788783953316944847453902724905680785228384192320898620279031948891079939616822687105417306243111203990803527373017323397655804344652865090557420430228448367707206799091231343840182108768450798695440586134877690772035155740977552487760590226194974350104190685459786426543430714265516940829981352377854028003400085064984312824686167611307036558387739575586241671177920359580414722850489091556187459780608779539826161250019839830553547062524897903455801237212352876444051227425791420706226394208185516068451521286320372879611534564430231364302843111042781949973177708182896766074401126792141708717102387466352958753703357851247075011332560218229977950545444365075395005293771358139457006228308575742843469076995802041773077829850665015948982317525266333023431575837780658465529174374164641046488928457882880561910633350927083754167766960601144582842230236662093725537497894066362932704012695474200059312741294913330891663075086938326931339346624800925004239322800178100994508393685377602154627277594808493128858359550415339032532357485435469814248943466722758770852870795681093064688656150298849458119546697885246081665370954972013258431743898172998602813944695006164424919553506878009729882871781121997760975122919959993656480557236302453677936883902703586878943223681320984779271685980097308776207507118323095432505026774220734814103616724411410410805990394872812683413294709946710140635642930362017832047319345051726564971614253660763070205605503335985118254891591392006960242396192378606731707283213922437500058515451404928947005671403657323005797624383529854538912404057190196285292218254530788211117712730262227804915888909690336394158735932910288590757453992978083320033530482552420527350480710666293286293883539365298780304872758622142941508074775338897964991693430371305476517728341451666626176335799746424112943090812852230579230659284221550219987869131380191456715212853487931530771007862057980340729327613148371855346672587593701801694599863512757733230655682745560176828401484217075432433657962757675844936646371260118875838644210289663145553172826912091289187753905382855759724920012579820573603633424280964195518504401166407387882726386886815078228236712803567004931012501167885928698979637879622231080390344920078724796943543035407357552572808481038862910918455711067100032877625265946044698208694063429865284175291614708124971971353772351124577539781824557636900168973041811625060993695592620669479171607384490874601829578783339113361458928411941992997888729704012434622728886584517855298539401542103836772878768186074677457128833476695739745162462445087691983562553723206673924907254754417073017487516543423990898931252231287371845045963063310282916115251901870492133158129818843641442828723576648825531478729915015738256281408032962854907328925808927582290414281522440723917543103927351916425851514896214233180931441177795840411367424636061524824648415007963514711647360268080057483389026864667536094795014889418339679848258364053208326005071748193611523252813466017415758089355953857841586547978454073009407964580918198799725816475812239014830546270477954059614621902423571089427231007872770019656803818664543879348025898352140602825608269628752739201396668363843388552494805771307539785869840596623611107702571329385263882782185494051141613578272101068867098313575056179266489329274139000792267757764624844235868123132789488141394203284096469298660859458132632572964651524839108890024332603224566953980139104604551047440720344570465709510507806166535777859406415880336700078415679125401468542774145958650886330050629314011719856198561191235253598238733443747753568913245348734291585477047461819547765686361587210064667992045798059503292109341452028127839659432216932085503264464671515432646895829749945160246924754342377187263579303439953269068359068948859237925504436709712994144387647283287758562768447621634759006794748859811647863229457706865164079964795281304080556455869120926752386873291216003647414622690495841996598503971260425864710976371582859060477090743419385267044252282029734833068982226201084267593174428465859270725747981788786055400839299254989867054523345593202374938912864852588165327270925598214639692630372673780284940871158458208640395957620390439200234955857274386382397092122948479914787978928830482384886947834011812763120792386724393842729794692334275413384272293824684570797479080855183330520471636510560932586923052134828180583881761961194233281644158973159774167491030088668233552732502346771261667756311022656813553504168392729642779276006850024341580291520413941050327167437574048063782282932564909366359543241767557549987455868973805168868068595645220184667224353929647026954840954220711105734234913178774622867227544062012125676286145857414372955633648496718885787191359170548627689968089936571101169427914693514601245530302535209922094249683720016393062303548265981866929715357751203700876766979058271477878125927616643992968576391343001722097450116541036970561682606409488058795041359461605504767375361669539367367130989421675153855297050279162312731949677862855741010165334475516747160421184189387742708807972979345827843271697811146885814920340195887132336748246710209675902469912229621032637911550275764813897932026388875404830400871240302880426512363614427725533330101450693025087254180571421036240875662296653121078685791756268741303864288804406448439460348133451022462051891253954976787038191173240795823093854454913239658720348769666551563816117315721489796865764453916303530664520659927929191053448058373628653541280010659500580408410334810386365457893639745107301322153276026578862453982524410282693175784360985126274000050546212549772771881905220775752783468677910569519036354834007717473011032388658606709697782673279813978890913740249427441001117021792722747121334743184196215001083708430440000320907654419039599876119155452107192047898290713799194535286583159855226244513128969808606085230805385561002910441974413139682708231407254136087740304937682512352637051179088284143600891857137450611861237691100937330461625750563982687015371856270217655647311824531503693487742290548064618708187289673247075907993003394448128032680177611778407512055587744941391417024139991412764845347648816736457964015754871550072189062070855267692067735811414811170553541806683819182894038996621269593381396437209481513702506468010324197890406028958372762670393237055441074513394859247177047545626366731063542337947958206533490467085929927962119911553605443533910287318951340489911641576970994277234626053336778087766874776986114382293833305209855683879277710803548934520731120899697213795908931376615912704909570426699037115198165555193333826715242549669611805502220326112989786719261118541471369641277396273313108064837109315766780485921817244026417086811569217108440183590757020709160408858040950794343346735136023298850058295568583054040287526607317302108360775380891077733503270277063999300888362386936488124683883961868473919705375012243087997904914417518397598929897493331951738731125397628154856360222187428895490016184286057904698906238448627635882122155348685121580004394440314286045122876781920435551403206847474548264533416056978340815601375821988016808802390200974093459055365510801714433093463406442451973928450339108792407378447001141387742781043483323136721271197720741128948550825623838047402046566178373929110997669312133238864680190325375559819932596821326829506412430430548301741901807155139957861287231670162743099363418366585222382902641753934957844879401437475319401289164971505260793355179326847516446414814168342026252813774695595393369741354094280662476055038018020553048953934844474293931064664401823064113471819219618104657065634042049823759418944738262060080350310572742171774976539687875803635248133674588081938998425851517483582093497968430247743654921594813349650877405964079498769626636739723670538148978206728470648208862710993116448484309218723511931209789213492644899431322120704555223351248383823418635655764231911952127949000950758301057222085399721751502665745884565431099091907472365173434954788441299757508731641940360021992016693072797887298399793512380032499499894054738039404753696111735015128996052930944787289290192080870681841378418635336858456743205884590788088448814062570910850065328845224263724178321177817146730235907651966580616752814667554334430859665200828473602784654215170751791832750093324515194982217563768755024806689481501026873943423183646753406421626864770107608007069915678224563183327697888931315260059586029053647512680826775949168027523952234568116699599042915506152663741001877378035808789152327338879186218135422067222936678320476577969454511956609750931251802162272852081873989794388922104436054366366175398257286405348940018902236685994218173568668983748991200013055386120623433925663160024895637652442274540889132728329798746196540577571207038906704277858836441474250131984433926436886145624935533314722347386741650048103775146863748098557804285402626899759092437130214078976993761703086746325484593510808351276924013152574317270623134921000620778703445477942435141305639879531118841170588728607047241050027394021107311834840441780657183098702729382694585814871756005774610273395578792986690584546879960669082120374697059903099380928393136844252548460365816214496579959849147494840856494445686684215912325697195537770876718082434870811078069205644803506307907417410237596842480383390612710205533946493457273445447032383134421103385836659453015729549492492499513132378781985400600536451401922053258942572138030577549541301668177638878665071205502149025123990929286754000852049562382258612790825460827397079646570898951660472109986257805896318935906466472848940181866200749267551794920093263187147153917235218085694527718534967555978543006134678925016445851641021685649635939538439010810789411456440887035988406323774129636185376228214172617805591200417581275523060107460074231018121334969253109980876373391012996718739500870705760308678385120654686274383943562346549566639056460107763633061420072529359448214133499873392009306939309878335486241709359750631829990447607010279934926367039333575468273045552562861493776593524465558565962879167651368890442310468718022675171325364326702068842896992553766404051616614066581411590022256542423622433653621920234256853751615857527491042209753210963259447051105068876129543547761440831422137563495194027296589818439832105010714815855792926521194528608188206578069166131380344163479706550855702600941678410137508296424816599067678340593408339693854642221204582243331199149007703598590083657593223448652187627900755467133467836126894863594335659913769970030597272483495105024910172741124692496892271125483908823038127000905600887674746535158339473098454308990176560267536894513419714074216063150480105092379424040842534802062385741460628511377507997977414566976165056074341140406150861434068391647519421150711817608465770789311135597338839631304922971259646224510674015291349062967948755194937742771827872604302134102078562728432330900784185077217708593608359270058532942851000459334540641901326424749196080034719623899459012197729374158671314869642316646965343377985341248229955753384735824628244273209175930991039442730053076143401386657812291551380346085174996077413668731958122230151824140267626815911836056055426625643081989380351122652455567844646142242407706712933549351199718172868236990811259745478050282868875932915568751640494651761351261308193496083304640271483872942888087767920978215063858061239191564783530708462137836925684806290941032013944329801577498357884352961860588066189744412853552502357619225761509757069731564804365993089456954571977691392571989907019968173233695518591386936886538729939228783572315315472158179605352478660095214430378582105215085979572452488623458938184951556090377906853908406522064026027842339168228534019812507385974914321949957627199269597648468235269183509630471425809637854786640646651671087937774535204842408882098845643984197308615583532905183899921449460307759298218035145966005581500313783376043941617601478865622372201487218590865884479058871662138484498636159590528697576075746162416379304651607917817415891403583302522347761102990300423888445586011099381286183007108160559782623858762123741519357106549683913233974033493295606628941135538344683301131444716143745420029377256604979612344991361823771096382407139529727941450664438979123993154822869957631261503014671170241452435809195599987209558285054093213167731322011088700329296417259709350610057160575809690378474636214561844911183533003957561690154982152429022033707341918927950594661279173813530109472627715352855166463919559819975101395625263535072001058780807164444014532087300844597552255889861571993564229174982137408388447739220052988018358867541553274383415066353689026624048100158231965716177537953554436622475237233804655252320437489595601224994193977547497773995745353499033798048768373101570570885808702314260381410874065971557259452145633320717232150772735708716613117052060717947934106785813420194174984956941551752206276895756174251347701795165601105545790413597389842364320120104849081106771035467061888849613133596372008705954611353851922903944452134611629956771428402696851591033585178052706030342142738214366617881804143333209631085495627906381023952069484530418579785349133716559001632707403862625727064593129450677941814209814861868994986027961652428486180465433346109549553314702636365212092623589949203447158749113880763677242131631911227719826262910884009061480558618083957046244634678848022916342251805365856163846016028494235568014856791517612086868072093574012524653196208500189838216123577845120384040332452787640360150942710624526624408172309658878421651760151746045396984709456511585062020550175282142227781763411481199077193079787258385802209929245099517159456034811034600316195811058443666199966975382441107836378736954064444052459707052657987683949604948728929576489612908175154540592755716722899483402791608849505516484414611942194346654149492191323585763262845123458263075290391017608954650253170726775282479708815301075071068606195088968916755268696991234794964462041172988610558440469936398015561767728105421783165049396181587320860438744903114839164820596096053077441989491904998318435780895548616843989940930163730843530165648277637695403300017946613436937602903879454740487684156841376706761655009068429381646961553844240244052012985483713852932538510889511982084975517157804895535191912658354953796231475568865777532123397074314980901885657385056540636939513611800890238370177122466432376725183488455851823872926548268797866322410764680062231181208098559102734774688023576957403693365233960097092760300316253761866327945295305934415115168305237318013087258746217531006413465137910866691019727790265871766992419936512690369877783371768176667959257180987854740258540130416512365959640158374170482016782542827650730667386616098953757469612116096415702490462693524907052756566003460333768664629422790527946287214617427582686917691747936863956192428807634273102173267475015128632147334238853649272765316084130309404995013344071967442186031688446521144066474507619788651384450146023623168569639658165052803954131293662228185076831679183528534409140172172028744322418140395150732879109325920175478276647971532012996245260255356136401972519160435740283263662176199729481664946710079223589299935283151887746456552264405846227037918951860831403053709729208830205493956263361686274098466060376696177696671132695587091037035517140441844762104122242180385677227156093803246517000734008698974803919196434588972191512194044523558818357633005825977714022915205781745813280409300569094557124584134335889772873326120314845093302965912041704958909665763147276030256201126944061583603356358189113678357388513839780826164749587778001322535884489651256582814645387065190277795620460325156035611434531109113454922510671197902474996612806827077697880275935901007805200341454757521846282398226371220964826523327509507665169599265394963128156379001039173272733013573260772099082458177233178135229321845218372370266830887115218219502724483641376798428184753998463513017591424598004151388108692008841774977297192016461450060612764234818862433202799483894411356665561028744042254819099553212549008193091706844888119397246100467876233121962760469499575872927828232198195895767582177476754989753205755877348039853401677339959234336934092354363533111169275613415363846036329981211107031810384902634640960428725388569824164694084376454497984560270506304775223316192503320981201695155442787696623382002834174129614989675224482092606810212402963051106264373144411387275056974768055038790365891673976581874753810291352107154958242800563670003940487061584209987796071845535174745415561901275086915138339027495068462866403063447584808181142928592532204114967320546524329594630617961894538206195843711005526005220378543785276543889572073755715519200618478973473036015594709549019206214930390367209342334088731843006152169326317637960729275888872778180576374537614037796510371584399797736784804570424563775342860012333861595584064004358943579324963270807593120002864231280601817736976630374519789451898415172925743639561111110462993492548740564477316635840697182824644918229866223734851664370486731189665639176627076008503468365341491040421023756445590120077659984887091188469131535938940775745854669866081913813674065747043334628765084092610006073952542127596302393865152364810434668544852878651759436681965170934807314983601012173552775356116848178813466269025865372640876561264637144385590207097078403708553999214557605343732973429571884493050753993928697021980799819873517613319935433266343413358942270137420751266580880917660872586767092397920893674336229501144087583873297331187679874920343088770048874082301617312143617171491433207026961968739101626268529426327840655520869253563728810145068932271580719562256642121222484757198321997972737013825951146246744069879904226442028000182042549068404741309058632324886665879922526544454277912990082988136827242099918053598466523333253844580044047100261924231675212461237482172278404589675754339483559329281757245338096006166085463213935150144110432130836147797243176706162220240082766616575494299659775314298606572516586726536663849911161637834450946257617900626006364088404958536399607220940816362146399498618993901427182707181331339913278469048222732371686466630513456448897661446402085400048484220054779260864044062712389464965335127248277334725353398141938766712529393714073375478502854847110972555228880362117491869870971545756410822436269163890441859897358814158458839223529297018092031163624772015456068148896285707568278679023930145486992233848872381732603682359063833276773537012516143565908711691492725273995765253842943549375753980998607412320787689863190018982969910089799100795408670194351235179340274553499463407649859186562327354846356411839248853854124685037444925827875879278859702308275027971354778606332964553401693215401133472983507784270642822278323863256580595498835084897551063669949054357950543160859659033073711908328718048558842752065685732280098059068203762992156076253648877378817566747096571720953356730573932545780095499458160769156526172824964694844577305493775061111098446265747095695056473530544137017769282773552321642546950306719545141387656309098137277263559657737510286540597509115228590595827553222332057144963965969933809130669835388136018988673676061029903966246966719182821111423036221609928434549060546136514839226473621858783716908036001783474467845200088689699246031970350568152277312219449842154486310759569140582135269621865210493798147836752118739029179730921969900487028901200670001208967874206008857780057445177296959786710727910206487460001685002353759421362206885730685832823553327043750068724480225103040158157685275528298342015019340212469583616662833650882774865354099773340159772160564883952587594113422846456968611037154252867797703153521129545366600729401007656535108711953725412171260529510421975734889831683298094212369958541594947414037591345981490158309600371886046407648929674034805547141537221375324468279363240072401777521288867228396285893446769425749399128146995916452593311703852315819695458567673570110013581347464617690783568309251065337191245822160843563285498154659465261551495743269087226830078794482851793511686443120449721886663799046408245815546072616024328524690986333052264636447537517765617078317570265674258585325881142687731321848490050766322088994034877446068397497641112633572356989211306442009717939063687753114068987797380535527057041692459944892834324072844480537204912256958249573053141304588382432739766712011160296078254897745934239159307861579397869590917716693280047809991929324535624048092256204140989912404074836428517270176200558923246296229812896229887426030292118263173711241649807209169505807969072797119272016843815217013549755162857726057432236513995517031194590739915923822740914201542648679899203333113426338341543341488935978892765032289466078899396102287806827005448040389831241919850280081699197792714356873582941860994367616400505646134290749581452886124438944613671983981556161721990833261794506758048510622044382893680918505359144086405498607017823394884033002403424138710266568429204773673923583680766908447908442603212141209816209468131787079068472424662407075574346616939268387494122672454914315490256312238175822588752214176617600710470412352812383555666091143812721144014641784529701508224633269259911344721731645636652874142621503887955169713395880984841056425796876547182548349681325616447666405822813113125097766858473438436144244646209662320431324193478513677028794016792272135378530204380153598134416847230660901707815026951173402336276231043637501428736746938098509035566728230607007881682647822397360662172007427105147721591671418180499797616731506800563091021005966894095187402854216988589282441796382541753950163407627767105805764122227254719296531850387136573394161485051585389530442437324845263969132229934841301481771648447961113907050268780214757548001589632306300703198018826358764305814368001444337420137792834698030685938896955019212231786012941178616308867339847743361912703576703286432086267804115921805787357230244695346804951136879650261545513630316362901680043865372326453878090469037360327494742686511891113663844694410488301456801799623885274546468071500535316663794334450906721519778940612880090014363141354207207433582323402957162971033477725762198423116017235267331853437370585859795493912290650523966029494542755187528703301860582171977061482424343921874091316624972024020653665722463777171207995088289314776582157389158668114651986340556836334093517982587832073831439340448669581409839012986286743133326896241568924357194699003488290560315542213424542949551166402206154396761657147791647681606179280260707884351324520323014098033122926505041975954560031647136641127860227211078523649186790302157419544561571834463646319514101729877718401105498278481840262675818440120751251762797679787063624460089974702698056658830240492623794817151087535969382219296714670578131847004149726082558400405152238652186142055113641448387172249810230633920969709502787212338736202253739273289089805824233720145710954683886261254184285835257256356732030598863774843180974711215208239093837562058657055085700907773233595407560414899343414883340458034676374910492996125505813648011754013284092324206355079278565218774258047638171292013485452591367080916531342467209645764003047005892388098795984013931410041628295250242258377040291783072170770092193542763651510487405206649389981592605801485049604089952898168952920757081303630343168673653429926018155102914499456402133370751867292062739590136642008018375230751158698371416695931243999661326637019310272545335802094737851944801762153266287503472711306424896725678042590983631296582920372218853239828523084191460554539958741229614191432978406974522804991002351442544311223389029488644547187539857727529845926700189423879001110112963445960970234050576271892774372361985800198716001908151686247832699268071376715826166588136237457566917925653820404434866831406062909606404875181214761426715006568215317900944454926969424405605446691575508912390970373973485377926111844405316343979978785369283957390830414415133569061416086221648281743017176901061466478603390949901845270612306582749484383268015734828246417151503236337014997679722505323901159371678406147492168459888131332157679797024689597572011078309030856491502849960763900496359901035158505649410157542673500797388434579580484231661046771088306570438442633568259484552227836094999765556082212140527772710362310410432102299801450169551721094735909902581093065012855700129896100726105508572657621116772407937932837349155108919650598199348210125435215160572804254178085095609726438412289501289934235033473647834683205108635708094977820566248086930308566191104538454653873132864024232378431618283720337356305955473493179763555980366364143561289449048909180329727776788531921480218356778127580398683158767592434728694222185738463386468940630097344452232593898041235029973883676081441181456822531700588898568319305716058216801345372442409698070255395996480962269993435190347914439782536360338504992774371885993060274296563302523228398837551871595104752683168940112962351502873629600468995106049034982595771028207186801052167494367472346716399632760153925925437147620284331886030140473042696776885067098056734534846126004624277459756275991545603898697132526180723506979073568561357224356436168550297695975854237430321148474415221332434212077617154950525660221578625766161357598127623373226243583109372485721419107520071492431843717872804837830241400089008849156436204254226970755391653014524582290403738935694277305092269598686712844486219457692095673050642179920306908195803503645869771994490137546490869062177084021805617326709211220298093347471548392342106538257561589807248304524647069321715569470909094605958090365711971210046163370598870226125613380160472937468750843863152513297594368045267847545475869939319948857566620031906772671517444370609260366897246817460173666454097218757888905349593377987599438774073082027715014165322073264061314816766377588606874560554248013356282062889682512899974476689846513456715170775450894254649406868814485741472160919172911986420009769366407465625790683123007017964710957607288067181671068147930258933063899505949900010630795659180029618102323067388977749950894296345626871249767401412408721340906643406448258907101888494899169586701275894353332629166629201898916246349807467409925676931711945808124410190088503158159806858003569527759635060851312579935463699490607348814069425100612878521452029792638077153279886049515909691121577336252139251289877059720269512382530235848618491348702201242885241314573257910225593179696732538408332117101727622982639641139992620013298224635871045565617050891556915158420771165457534353196052779132339493136929103067494997504802124678526399525581914495524806073992601785972973493807578253934713232045149797200755156464336363108175685397003644876642848771801394744419004510836485607645609160065335893653015515391060940449532799187541984341021628022821155618837664887262381656382622644800692625826285797251866848563795025783515563478479140346447584058337076347707106326062284110670354701085367239459285751097853477157543793773978910852085711856075663092279850125282465008465761116331825936854934491813212445019746084278825525651248565534289335775069118059929485764925612636396489301020664033566448216771097156508486655250885917155058130768830747242323227569109993126782202465017937648531179543278503801220991251548772645232768381323139510954650223707989160467344829146158787790263961292832249224808860719233548848562386490291102076367466152172962427726291894448807766461510274580069801544739370026203191354536038976160538671112364736952813093930730406494409099450130581943185566630850766450493211950195458009046070226045492633939157626625947370810144395788418141916636049323456518243937714390848650060754492382381754837089381730527853303797603685410661463580939515696382016413090824791114111496135382717688324928000735773753698029579393128951485304166145380069884448169031740011814599535385411411512112225647599896426118456231266963659545888298799565961863808988975956606950407959142432955225192379509330497730830759798780392190737944404323952878767596337477367335225753525421168405850221743108320689364166233872027490392426932752023694101111503498191182101737174681189145668555679042182878220290369796429579778729600986273797320759970922504208520753806461469639626258266846507739354113935127231509250187056142511729341346615778006319625453848689466995231129395825447274484184741664705268622104508383614636744496028136243584014606997243877060881251862198942524452019678888987506602358467752869782560951968312791824512607197611164879614708229588430454612645809420654227910648870546251012534189764676235770490102176015490068523441212107582088393965353278893323243947862304247616243595973078426096699960505519200273167219224773688881810020594835861880198886674065906071202024372449291711356080560830798505733715286361738402344353922081319306679056307840149024213950325185870503099581554702243555398677110474961140945151405848690469289423119852676912712193111017686598603846384485982188712366151004536610258983761851190042511538185136996856962788437226898569893108404660039976335976341006595705654090694015051448082921057205585588893835490615591050900165037757895909708885319213959720870483561018203486599957028441342421618281724030936966480589332667852785121349543538383697231171220035865068618974978433028258189222473226426441685147124287207613489552341847150501824978466018466080486702294410632404515557900261596132385480484432487724819030397301768958835901912009244716676964181404423178817827226794793342226940272233289691003465988394784961595423661593347442246172762445529499274583387195410603720536706645470126453531988300551801118521098494319309210793598143942205007830350640059607069428155482119103519746669050484412826507459771519616761229478569404723318772581981965438894419872143937139721754479197680203762073560127770022776591220674400831459108698514770983089496187712995534176009947808628461885548826938685853514319006637765083410549049766081491550880741387569676071040288140303805576834540418131598756801731516727734481302340221734084754576200273809059661852924264929180810289405397816975995820598224814803466931507329783586160795335693806330785120412665422805890518388322121643207317085478006510327363627022865548661098358158811263522874516892954096711230796290182924208767424778536175167563297475329349505062341026710061025202685247658197727417343910148280688883183633407403711544912980706831993348230118916591347539018313342062103181657351867860007146918270000017005897613107285035316337680280665994899775577415116695917410509167701297894576870328880957908190000552710107453138623392585794778867680903769584467338445880055376163118596626070137780114217753341218812573482560869138807906866337284998348201506504825242023808396120710075497785963037912371311585748775209534413276542511428143040034474872041801122358565564944847823414584750952989967763898553488029902260279933893557808596724668126166187266991949359419757700558019390515821963057941204519045884236264940132449620333661303084201624449562651331731059576955050925275241913792829556491467412633385885772051493987309205700044770136489698383511003567280927492604016349912754704891730215061058462987944797489709304509876046930151711476775193558701009197709900026417682755098694706486484161818362210105453653090172584098802602706184812121161005452466982890207347752366194506622817461613635068829389537575499819440071209319506713393342555140337223722361275595228847052909730083867141612957907935152268414554434146927960316284429978871467416657400333224517330196834489709212734028027611387492710524657634196358309112058780707563542001861797451651716123752458462529725407170131493106859810536590239914664301428154136613349402407843844994452375759882557301018805168799793371250900453495629047825896481057116114343269978829666692336977988604703174821182875872265777056367160145730597209164679939996797434590598853344786103305808763363240230698717501331479837877210133868749792167512804128833734282632236778197116394005500840312467778312998058743241702948547134187505226955368127034384109908095816618627262014370794147573095468398076273142715027217663758632159295292827288490813888898808499242036569729425963557367626517871484492943151830400695904961895698380878319191523696295589966950423899639289921642655077883519500027668635038027609197804156558105603981093697133295119290348446981253677819574198031876797258862508424979965726665797591257870540657220280603583121906695195569166425431359001586484900770904819445772769957821711699010826386317658638090283551117918014984718635614754747247778672202247672919106309051502270078037784902281742647762811913525022015559965531092530085348368615806658831069251911189500830047986858957147211729568080037426957764461365794535668308476637530834375388059668873575715919622223020941525253905468667335386091423880518037189622581541436408570823732685078259138187495344905296469068299542517676393391380157816524496005024749609714996105870223144588985467466049985492558866243713627425345562490998765260618386722651865710676698952785447788832327033767546255159794941217546432731672305007612083404548698199569695099332588723978571825836380265130783346326081482152705003545156811229911974107205961574948210393153790334844454653045245673014195998013725350571481198265813260291930273379684833636580417331868563480691758009004727387095743393564032004563786946382231350361610649550417973038108404870139474030250281611961411741266226458368548088897142813464562902486312612868000702121848537095030548043687556173606748870561771657684950834646761028720459618691174034234260479477426272191173608560224104075593667999955518219494025107913153858551878790338158498820558053066273204202100217479693590114245176511069611874158412699965406141819719250865823816814770808841115218611284935603595026147104745626980395617825435771459135063670363623303915503005909360433173538415417659397186240355482255010787762824055685489445701217306308621430054665297965830609648880905609699922419842096766338579246461480245743122598587942645259168099011023220316562946596904998830333204623880431001532717067659133571380733156508752055595381272207137817898375611639698664054431231732779625003813431794235627731953718777376521153094018736202287523423489612250001678514812151105833931932749709558380562212514619745773325876083661644784427552473187652614410838267284681992985491567987641050160965993295023870991173953362778640146532032112975559001416600069103333503606446047963573406274198540842699037230159302029883466367707049933779353522363365673692639135519771454458613050179605990225851845325955377087690163043546409418777162443297242042549952346014611895654529688674057496893751417046661145093462995392198759466131597595083038559584093111231873504111769819977682429203646438333616844561575651213071977218791031797927113657213421604525473860741947152965524726564110647465956583650799741752256787003922125160233237981235526200447739241155156530903258102448859455294324635936277939862647761092430277188853194712086804367361476739962664802634228961235788495991325103760360201732608458014459378244006161139739781295363130733205244162896150058178457447448650078060532820872706368320506235104170137696370356763803251302044526389685972176286896451162273572646453068366480269302381142512254234439190493478551710826411116844925842571752377567594932666829070721735991866177748479393265344114025796647732249574474090030834052353679477311126604037246139992403731439357890691331827500844244342491050858345365414309136123495255038566265649001441706752763913268239745052884221876210605472117671619395168298062060978345252977493589510793323523679903116089938070220515964619910550028891302888591973615187452730690227776168395576978087974904876817177180340757222234557079039206993713090155139808424341838651885564083855595750514459751840224276484672724170392190704647371742849341043996708754775546360908770274823854625458328625537343280474974616868365731177331730254490593136275153934551008699108247427553183704443116436419857277934685456594678736239459391086271123652020448071123702353435446487867559890343800028856167988085690051324727199755986454132643711904080278197615659759237755944310976639690618262266937730845567007880569213204951429449555802674022749222781334320452864847259305067800658166828989233984073815401279615418411749824914647519686553126042055962193988447671343178908273971598739699552792246983780439097342344828935414922436195868964291498171247779512430531031443011519251484600205036252733975397354435313866953158569284197038737692692760607784618042400759783093249715051242180251506456166526275285944675327811438773254514282859730263974294513793167982932296697696875953825341322714262760805611090139840676684152074111019279458367860671545620977905512841634450340507747212433423878167182827311773484449227469084190152698532519875254466271797001006346979481052867060539414069213936452218249064714789541514545940932008548492709889704345450781282781765234587784961602077909748564478258608615187571519749413941084763700718570537445187817857531321488456755960081239006017868168800244090214504678338993307687535038939028333312920845856632473037878242206908928393282099692179576139921981043682158017967258601023585342463223571897756943599168132813068230979590873696618907000013796636795114211617548292742003958721693228550650854599118422099764141827185606574476838053332254547069933276377635316516268918416916711256434777245586268825484067018006511316260395391980496757943364681373125880485237419967075755753882608429767684899543103790107912410349872181680772796214406473002355517647934073381979159760372617000082659918947613828509898715257458180286651150639302289669851233550706566221508462126467183976247747199530770521925650436293848752529890676230449897637369090157574177117657447142943088065975903474902975652934049631693559474713506776152150964263781010493911770150984080818873530565280652739109813159308416083820990491886750581911550707494222821448169451563620131039743875227963519865435301343548426107582076671269860045214489732467145745553549744272426780474968782828212731026704825135846467262976241199903170953752014981281336254863528658716364916561351917518244188521379001475715478515425794799138975435722783311637543103743046730221631469753714132825495373789529940093218637937005999336412191297775947429596819811039496731328877283714237119309930685445789405443545118058375592891817746456296571529716225807671082783155656197480889415428077278198454163098507453412921491187522268428237678522753878938165229326537110130684623808096868862926225031428280970243888264207367544078045871449969029486371039817346999671156044239343572133548543068338909572617757878526935499115607956985261109997519145648610495196605551994193877995145948814495211633749870585234535143425323398136893701074066236211039682844511359840068291895207890004710333871009940460978828489966556317738176546570555625250085975810492903645804979689083414059622136605155535010956151487711273947738956938674252824506434212858150318301841374907942140467642051288237515536536083658428964331319388800855321043077879343230259689360750337854440236712919791144987398719744854406413225741002363214012706608805085585784020406175930564977425994147199131055759808918114363588613457057657972394459581207337846742692610976880419998007860492526994699167339223882647085887688061029182514101080596883218270534595622209265104545101072346326624496678595963030597064473205515747700542308993019188413171693652037506689836790530224985112875247734342102995194710475702319032511448073257746053582240618891060308267057807758801901630848592260921290787575589118473979434439860118961396488723775149493805020639230812141653139623341366220542689971696976126513438888426993087863224093894435943655151398635445269591173981170863503098607117348648386206074421139995407174924233382978066106213977534080302409699121881762737801825200954542866053242059006680068762306892644879972861140227006633754992306772789516050662918733280804424440145435184003280423498317560374514666934702953045738629669494079464082910936141178638414516523244121535803950569712112073580954366569084611493502463189387690331404436780705584775700590170371284052202702130811825950578531398739985187383168443646816673177266867220819166904363777816393971109325809303069996616908401724153945392426351802504644554375373523478196573491060746046204531150360581495155964891393060355062636724932481284930446057888573930971171618237039502726150143478685920157388726684977928747668942585750252229344599349751642681967895663019078740256470541701835475367074045304518640861771318084715285269211727672944919589706412976650922556537017385510878679658289470703213065236219693508121078248645049827426279174651457405525523888349066636875322787558981929474210395038845683570812509172278546065245360946050854327016303838749998403457098589610931841343030601393735576749239104130057690924911517310576698904071963600742068052334416066585407848681449438077337556538655545970833842359441033478125348963915671078012159343464345497035914896241007373323350182971569508071230479675617255079265700195457359452636376526864290892317371132579524231855469532071220746459903431682997211432373235180378694264500223014935889160443721836926571653035674439371683944788603065771143984874231794317618909939092162570985888070063125421319519009686190307369381364677522295081159383171979664997552260167231151541531456562847383723815085307991503596867778004520688402114588149174883513952888385924578803142976898806351961168963297259548193766227121867217349954818804662620595467290906375825295391608130661091438296710319441836781158014842307617349448695108887869662016823344829268021612634576857104720790746166623248277149097787608248099954740538813930260275227644334307708554257370169916257923524034776427463187033777849320486744213689701800297991568793722033962268142650049869284659862703980277750946939238640297892387283668324975422542458147073126097772467516574549021479376989385841986971877488012927393923873740458142870351614861630332453237651706838839596279569350139718110154680200945962088770732305661625941209166029010162763810376616562416174966279548388489214189347329159654561798853642526110523862315112495805397530968488813501233431123050161519393050327634528810351349569539097110577230317307588995129511524470645706570927536319641356582230989140042506913961396791233696958642284063016162479156662608096558226351297401499429648046736696386001080574348592324443569473989044699629582342697187048294541230418073744916027515313470793920818501085038751203493358015745197867479882043347443563931901878996408604969148945126081491982089843073585179162981335681887405998771578928709860491093882712412158625959845053939240251521628112923412462947776894578417752335066201784769308051793593196556990190029713391869703889690815932729278519321379440799218613689949477927334407711859420282982239463625454463212611733996681369491781779887223018728451713887604569538511164713712765215609809575372444295984399542232813718951392492704483169058021883008707978749692316410272514333921876498665173650677861120488935516106750228490373982252223063905534976822473731087042949792410371303589973352318279746140875712508432952193372886302907738954089630934717529047433690004136421205298126962542122908078747657695565457984527787008333189720706445666074660016781183635004119272260739393005204673492252140626412678731834260994805450895123823428019043662009184525131115385311970234379328558570957836185952973507750047474442953849472860520749823105081191416416158165806798369867658548975733392313620269660845306849458304599566475021681203272072739762569288025062837646826815421901901592887048061754037275415803870927817986700964023513711175695489026740759105882097728113050791830216144207440483096152073934559799371147600164313207004303575210448784856973579971181884534298833671509984861003655199084671446129614473682070074098393130571908533813938397114030560984329982507096701349637397210310156238506201440756789040409071535361051727452334730335052484332975353100185081849111115171667514425069673722654545545068039654941055204932895214252827978192079629955039456421108382487093000563044134983547144663137240642106132503586671052083813365295190969518860140974429783561214824902270237961502867438563827285899810949156105997867075813742290517368075964886791063537511256610840031349242988182840311540847225088034462936182149684556905461297025501450779743447698437210143242575288460119107349596317705317392334325359712665724035948755279107409738320423543560544746722341014173217516863899308863576239962902337628303427775064765207270096816574213323492785043933772360331804604084844158020182665409369012106958378266568035417050185266540857612473873801330459402415499004320746766832443439677154436144703224510134016281806524572843628548808262257607732011157038743574498138269669918348105051853015716056108560820608730790137599078429050546479183185814345257859565509929697085169584621217649024030424366476141224096124706499661997971678826803191403689866415911739344783643758575706847820884774830305848705699612669439548907524336139724264980979437989296755485298427527327245291679589125298435994964879288791833280103931047875632457237172771136939697466524668286545682114212077546387373587329317131087834447273330305203684478153371804652962987803176236747290943667176103332204422617304221847635916180554312951984023411013353504599432829393136290252828695213719027872024163787422671835474086443970311060154264136217651961314883486242196655165659150574564679170767563965859953259180506227768356048233228733714369235517729855330745205569411200291620065888112703235979103948520932400592453785120271621725828554941962203031436901472755512460937313584416998728994056063978256709558530407699147174249889604273064257595247113205938381555750586539507845502922267067881397902571469575826387728726879537599389247632384838333181011842447789982730245838537418909740322921111484757535766262386579312243775258356601445443765358244170462031248486936166246992594307072962298334041414781072745905654952445500227065061593515384012290912520743918387940513029225422352823638657801062101095955575468231684083932112966834621444017413717755187844830332863037613249446794605442974772994265880835192485180380580237967062572930828842342282909273385611010670271831271566997657726800031303891890886979380830589698089602872491286284555792047889330965319223752131547898380945967583874787248358726303965637243824573798666288621191299149604764225880071348340958955363598640165822097712538343167172037935056151163031006893744322144893869168851253070211263480526419063486668296404694219939186740697691010632824618858006284313452118951367227386944202989518853793339560527801310482733827046124423033387085474713492927353063947277408626577091427076313370062770969245971592213764121749393400838706539168988460924154533454761471221778303460477613791021757570436514243659386956809718388107717299955758215949254401315083023089572759774033610861984949270051914152441418098481434875655907294680694373054537087059157336064782606333246688744775767161715932379636862879554715680881163412399159886028489587896925789747730833408125594266574629820255123866439069003911548150084367497676516648696854909647627858343546000577772696171032194566348897504674600014641154738700821900564674742834145541642936501116352406317356309418365515110401332471278181664070492788921519345306614225835240135351203979294356785101853805812022881269105975898227707988449962159306878373074720350094349138994998265628533673715062405149172961861369985991581159089660445535488702396819388033080404135228764474339901423813025876759438587472613547491203959225666727287589072577768497562681282713113756659306073039007973898908619244230690846432320624672361825667113076759267882422822395002916757738928676298363598674210863476374054856447691636510235131133119279083652689422348467403529338324967382806008653792990188376120496061650986596514985450305884368582726839716318988755713479269373901407260095390722827424518661181441472649292467209290213854656699682657142099290729172828083245669608106876343688523194516003365976969308376909251349592367893425007651168899894495490230298271026507871775677815387670649240811063884383320646801657601174295841365716884486617044363946238867938855938549515652225989937500583916570527284529709746726390051272886199643520155778708523449435283450283457988516057669325628649297350627162542812191498783021844792960106926336102597263413897782381291119375693948963922213814090875242943932588190825732754937807184886459740849854129935055574215122108971431266028193938938352543258573986389461506238134931241347914054127371838210059487730841798657389982361505612664334239852874784163445803891023642470288752398138357742671533408320092471405522304669755832057590953367507624945584093448016055294809049866928077177377287013246962805949354624742434795312632591523451933614569661963496902617435731457538846282339945899737597120899092752408496791705808771675768807138718466386817158682046018771651426476590907978270039485286279361569594293433556947881093319963563162963600737182105344058941230134627908487773671403798352112578982048266967380421211750244326668419748880150327325415388261292040951202356577182726749574271355861255334055263153369408745748219329906335673790922235949355340131827328896583069720902375946687835098524047439785820811689871358471351602377524269210566278827579815920385922550789604464389099015917403760745510735288849080295265474978026374861991692219500783226379253446359439652808286773734224873649242814379236666981200946395475384910666409619678818369893813537433468437102116922259540781796998001982608547446098147209032242986755337393539386395514464817932529120831464090192564830219175596921260512914731770289438449267260880853571464684254374420469689703260920620377232685761543644534971295518038063544333997475467589915227294398131554976238717089597794821144764574684350273627155622369318989454805567747703398458312444535905429379947375183679936980697262050912042135541714665346023957634176073975906806407834811569200649253214165393964074481617128700124469819857626907554061915997932461845896497692750926804494974084720267877158430563191485819584725247148140283887261729971731927175922490269098679374114716894418018184344270351413642343863420769792328478314789670922044774792368880996937075340458907086719855239721512417989404102471192258174269155115926356301005947483535000590950008647927386643130637819844145381978979582799300932819555972246606284137775636976107334881324547868392418715358744046002038905910257808201584647057879078598773201292964096244185319378783338284208114992896272752825648698920180736601719321463934984224596088778883176779814372498018462961493750079401728019334059151810169767756207850356813177192079139478314494161913664819014161052437633538455759607948045584299432412543999871853863026052022109832320310626741134722682995549821035944579475220270469946765782106173035574503340850530887868584755881572892468320698955794600849798105568429420936435586809064505558724283716496715923958595920810098622377975020033665151166275713208821554605805717630702842050563112371082435254453959211113915104049089707727938436877210878106456558570612661292458311865136012335636974800601022852760765477161700752167953448511984351132623766255409357491847095273196189783300496800664920080064112649900081490195944842081168776073361305185623578191694922529280743105569044493757303950509112553980898636446346489342670460253013079894301712764886991429044006679380708084028807497623215621748987779715677618756354350157838737970678043564923013882443572603728157168759540119855303086497965004313131400667615796760692714147550656626996163206146967100131534775358924152150261542274076084874691304668368877915278126661108672787076620636276809651278349383487025336548775817371300940308605989861357756789614595135893985760869404780787199176725858308288722662812190872456743125845306102963604666921573872003419967753406785851751469109579160129232747015158518206053571185632126525002187918405518090509053579654952499160025085251452299785976018151073623236659140875555768937528428475416656079430610363793042877309350081166329647467705979081651101507336228460243994473550708963277104676941215242303891015045618827264973998238857249696153488456036736106846691467608909855968169233514817798404142167748130529994337326327859737665763125116513214321257590685169822013882176359699180103688287810910054713761659132900376676101491952908135313196098107522120793845860261276886561743027018411704211392338925543723591921188620719788725155588219606440120303036076415256423656706904352776504338615559228393538334923392540621334945942863446489302620361654543438538426368411866984085975338947276170485351246504809934951296186005435423940933509922640736115615021386925412159948357862095666010851704712652391962397447774484709541116392851424864409104357046045601584494926740715738660878164510168247515947778040911422430512330117669032239023210878012726248776158048473062705607494183348639501644284614644899897919527978561127517276399754312802531716758368927602016562467847555467756416613708992646846881664553540354240385796139133896014142402274173479830083691618903239435078209514675510663371982882317770461479708992239971378401823298933255747649929281832065703548275725492899986434972618762155838101280704025251092175147465933070092682750908388259548861880836244973129998184582890309660988014208977289840646136097199956272457100294029233016124810978341785594357834758757113029251370703162687934010054422637638098587998404183190022008029025284885629542387192760791482753997761805611915016796269818052176747000343034930725640926760422188739534898073899867079059597112602396455419030154704953566979106533820747604028873931412943249278452693680680921988346360490170785331280877185590112360772713308766994097467474846510887898022776721326927884218665438865036334386386478218559616210928799062234980406479421216798486845672808721750369753207251857539398504828305347578692579034753671197227151628166511993311008804751745957426058231420817755900215790247296308793270319775422351601416157161816743004716138237980751828100322557099624983755381589850994294867167984917427940559399820457662599300703773982575213495617410144946551870557110446112550383528067717629157673806267310182127817046184121664805457591991202818472773929486560468285255480592835962794630325634573026734238076515092646078772504654225409662809426838772997774307793941161932214876505745597827942147375750736786362752256282494173288944424877111495985216333024879752242605575055326032695450485956762638519951899246019103878694519893968114142377661353022771912766227673974750848346939466159412158568233554695116680264524506739023334861457733215275771530528820187056249009603841355136592661424475882665510151161311406482921346957493296741030103790421127239044299962773786308055939172370510746270924779606592714911989601524158063316950465741268383220845946946108349511985439057677491958681609627234044403462014898910085150251412464910397852545821138584861235173355961544806891412767130992187626047790147888458103868494212472566287030763672116662001485762580883778766106998299174550130771849846706172556560094347341357966749846145468432077878511836018239675572431076125296324553099201594752822271377583500476062478219166786758763070106063099278830014692789964819785428564651638239958930952831106658240251648432935608601159766676201327450837503541209531985650188934356188960836601299268403277448303782574632072782519303262406976604811763595170017949060814214909383268224536364255045218591772500823470182067307071381270476383306835755093415204198180680934312033992631678079231858575252208173109228688520605192724332934358447270288045328413351633968721365061937579833809323579108853106171051746187440402146966743097610115851696952923356828589082305022003949385913353970126773121246992485023469595697999443903718272648509162182950617833869076116651114168900733699084556259418952050098836665683354240035843093009052130132959505121426178790101664889713819234019505216515586157762369584850415657966079615537697037067542920076147017219688796463857676822451919452930779954821186263306588746127725167383763766926633650088814278259595251789683652885321118669786034693095152557834664465798635238046485003051559194589621979226720302050992936649725348131680267998927055940698298070051173646878413679323282741729150311920392247660037223403567647309747095405944374455825966906782971138494600333121768758939850396081661325065603922532853644632076923949448200337643695337539691687807275951399398194284841561148365854739300339066017337065383513863291207459165613024265900649699863438570399887215355312181514056295765268168073387931254878220551427016884972798570525419921816659127905227090014362535611476605213858635388034105406763532655151813367911402131058045418428460705734725778136270363979245043406610617167883292410840909689672240113605515415734930753246807247953788467379928650415576037788865482874703797371166313228480864668430975785793313066242409036076528450447172699778118406741481954817884737378933563954336275481670939365865715106795474472550487160569633827070099920906073470508153716483211327334208707419305795248884786188862119525993076509135674933977609950184138288614868754145728117315967875398514730258686701934556381051687528214009754212369243571140937628065819533137533127239908723363794667295952621316207074072957380701510707472199778245217616414258380765873202157968171946823724193964323455170840379553266403607907134513094544449690617144047672969524590003093509686975292544657919232978586474152026978062976535101030551887917417612001586481082189509979230444924828697396908764524484801025458115041181953339661411457497608783467627140968021760086681349212178781667879543464635538853061485896377508728189023809487679053079607378922155560259063562055783415631577798826132242892312712185723624865477247661484813358672036499200891141611626833426559013913443891545094206801001757091529157091683474102938959435695784485149929629168310142308909758261339305289288230921585934091099224771816762941559923440456221858865781648255866178172562962992461744202377570703466773548234842934822545453108683281240223642723205593412497766803592563328109995214336090130184095983028561356440658729701089950335606853454341647051076900033953150248362739593603317713034773364836783087555634363448307589216239041043676012658921763745076158789365704515799229651682224502673799757519011672814073471936065696958032315273592837453906150540317175630639116367780948588143899736580725000507215723136397458778016236808073575870795477345533235271489305293023374021541031310540811732843751240817024671821120294809770852550098955599184883477575382564478010674554481626527871848991650118884368836154184493919998499172204603241579659913133614682434292123231610852861049690493039573862386804115591175158763032716976206599778327393014560819409708203752699077687671410254466777013241425853081529277148922884999694770486110266820988414415350316271140024056204666717270980306929092023051115011802562158695538229081326686607302243176839874713193093198097724491209328413564436068713201187672359088534718454708483335159640195970709786564916157340933183786120015057775849381228460496437117532203175257714696688088466756977394770084091809564236180027875101339840728729182238547120181487276699946909524832984080427648679484793078256575609683127537140939722853954594655801914384824534645994521787958976111127338761952299565258690066419268590335173322772953447344051168172540615006765355875796787967567675200358249036377995834938746397069286640181084203443168717604693132277721699207701580990141131161005735362131517593333702420584303803386106116719485424800115984200186356950984632266581190948743853465052466404328022580847449112662127263654370107338663766242235507388090275652148438233647326605144562485570962148714424932538506232674606634856156666818927629818268692462695422757646701792731688003379082523667506154224598652489372678938920123080691564323253844235060074300740507023750318254928720310986188202407135061226561100576240816406580432342223616233196483358952034741420271207161495441635750107651820483290356623024201861457584710349394462610758704643289621094626541153254779033100147235080944464748633349687660887549878424548551819464605589399194976744573982495376481891919776872834310278296927899446770464971676229897127742620035508781069521210840972443383533216988863713631734662171600067147056948144610710170547252206033763293438536557849873768655599540730039149101295503439417098282439952019644746048206850614388406133468643260639223604878059335897371305592043970504394910158820090921543625204903630514216526847931835398952909313343209690755213518409139116589259920415502389304756414102038024933630880129383428468911091675953096743050474080073020506783335618283859045654348215069235030219503437074142663493641553825412922714273323522058015588257374201178204279295549565380172443100541915916461641537570309757503491155810460161611088467320881676045395551998479364312843145647736702790390652983225757143434309796211051266315654408964720816259909870011904628151394923635062478908554626622149986042289483620590407823462775244085648682596549699716722318083478009171288205000977911942371599673358761000691401499938144399451113442328199736798795646809043310016983513797545973355489004338477443078210689681697535203407696121396512497581788485588902094984341453441051071702097126007316225105614209117405807555462331369858705362394324367873506437473219014757588875955657301773773132884778897315686804310140677248093973186446219520011903005834854120951985215744374906137042070977253907565958754749646622019342002032379696590222753429948874118803886870548737512273262650892150463532653321408926259594073792211272442279931915454915450950882415675911531102109703008168670583333866354572357738686962409793788429243364494902051457198758430047397115722930311285823585249730242640565375625922404593912408708892381469481719184402651922449012206772087578683847288611020756935857391497827128263499390368319190675499749178727268079120144347209073975270694320496419932207908532088577808559096941213250682732703069516994602174534353880201913363919162685927103551179863065051234519351203394645513793835472338274453077289516336204587390290679129687799261373561054304394216168722700735816680126416836413298636693838025898414208512616251224878128087477667292090451310879718238250488285178304318440012042365907487730503522010954351353698111919132783271730217375401465666367648992952838354384689495503185450722151499632934594924445656931227139779052988018762121248528093321064821034204354257906085496318452396039410102694728388089401956997716804777737675764823247215469394668938845504591820115995830997261496824734056303388192021770500915213135313101316404509350441949453104454478594306353432566599226379880221781073339192821838254678386377755884896892717499402792494238963513232287100128590047552753170614337270714828062394262478950575503015127376224192963257278173025869608299164704462181451924105984746157669755879248636844659938808835349581033455003677277196687170686940377400940176814427698729202863130054504737107196371085515758975805608937768770391464256394069965774213603317742887346826690096247080478225639404120471999218906804901975780828634345807870443764293984582857452793739894650700255503365465791941202386073269221141864180931646746572902117805033176108651378000529413490915025760011816088583137953845990821916878550060718004742415388391436313042843922883076005558935059027921274124399110734618536556004718702725368962412946549664373347035953272083044176185252035043382675713616664586901865080386953381760939570392002999453172356068499511832297355414668723195933170059266164288256185525162173801725451047048905503730594197903865452742578076055427048241176519800628924686703034806881220357098773648021852585749787020328580435921431642562507716062382551696159232756947417175891748544271411594128214937434465413212097484297857031263505321934839821472980660913302350474445491919523469005611027544576410999134653304445147894570020336346259771324537557239738306994798128061034311972629450119158573073856037571713690478251442336316155646739581856259104486454209278633137831500378313507828143508727661088828073151322914030912121726038778182183925710234457553344312000035550520955672176723892607199321862452559863775566077580535172505408107686148732024845797179385663652424233440104614540839821203569497822801506969564447189403526646343841386145757363360211928024414510904555078873036037036205593118886069110138477995988583345311031175592751874264693614941868980634554995252265003204601963097538561452000904639787919971402809308278476218805598830720451247314182670890946584747323993593747600456368881905089419688130162202837285992249600863171663050065249229974516101024501761739935540533498119217460225270134872468317921237908839747263189669531625161785309639299364929209758779891699603543328674115356291190033720471671043893280034069740898785201873075980963311687217313710828265748671488532913176174548762046441622799189003117656786896428130151017773476003195166769388764347537689563739102991409298568579556950472389503694708799160846079551858605852533005769146223092462500409696875601634071133648139868071697868946529181367542868787556467264101518108753521763932344300647552004953513658658004762441654045142199163574701556005985682251160164667995484981255549861841107194953545738357182152976786361140647325465695407440735837061832145488780638632303404476394758558938129497383792264193667597103851006835601710909507854138721801641433128309823862079147478457884884060208085274308384588252092226755334865591990976616553656453570422923005141290556014684866390450788955293083973570566934346589356731184973500464339380712382025158445898977471634457500305251922499820352579889151391583841312637628140916359305856582019634790986887665604411316562674077729821367983434011888040583078844727736201106839189612522544340413593208648158238132177555291426796949059526140652365640844437418909242155994331005365477101177555109179679807321270058253905259969149827626459578695662821393073492290026884904033735834159939081333586360658044067764554914599811264533019816786289284412600199852624304109616928938179193688697528353878125592571165161979458137303737028828658225839212346883284199477484938192168208496691261969694805054027328031191785988449863739768380901054845685452688478047073461827050872322376962527892039007971257087639398041228383203292205958213673522195690619041139204067882391378058891977711159487415263929894005050848091570376433703561038928203956604413145061470185460968052564231466390942220837815268265334630958794158739968439762879862607072321918973296381916997688535975895776255387604801347324504677167778209512587697994728751603940705895189724763098498563818090029906942753974969297001108466638354952110075866331164998398833932174563073085276835105436179422315573040133914457184362347037579578862158073763807519715589729643587041613412631056549814632807741258954087087004110184541874477900052852209200749231046962881588351396342526999623088540307121905685511562494608577332041377835421300666683552662556475247245734960369375653904179258117819516816769621959401296463871735608574030062539931052631102879759560088748259078271314325720074159778894548510689520316529126073374025235618636926665092831640156612543142047617274241711954911243160980725053582943899495009830954214079799501857144083390821758137736903482791870117027565680608101622258132108815829054034632871008371629382427118656009848859438789411816151564977684569577375614164697442773655350045726840994565306034772993897860248386257502142691489780717246184259258984872587034402803165906475022622164402056779245302660188492676248157346974895335557222588829029321431049748722352831922808094630498741377714670042571514333601517667764743290619133902032726070442992664809345447056962879090311920915634533973778507679477755656998478771788286788743760117716918810057104136847477076896189472218298712725662530293375502688111448055369907121490199633015022040229205099718271491321752637353525149212385791856835422872877023505523090965869998848405144472219736922426727095312134264460960350676771082799681205263670366040937405758815124755125234153438734106703560004943388732885147604905459294587644030211198009531041762528901679617085330723381167888420577767482371423500316604513867215046254440422644040678283043771129106430817624127652662007497875298111775923128655969710406813351012750364760131813604554416768328346619825194699260538024234630736248223341123811358892497703961686461627651867477241192537676607312265563029135443492101790551972340079717541812467462401897301031906896087920747519756369896572790544739285633731088194148622515025789474562746509094575886476844177593471228850185562890009616236093238014519641643717210267363094117052549900954492788195198048782364461172371130222456783060266681964845761604726166597108113529973392087939634974369778561015988982111625461335096455816634107113281573834738355471820914695070988831294826775114881343663544802683560099529208355096558998571342215308091168546039797644580132014333811626642896263000784384192521935158008224557650652524870843908802331257731009252958624948992121046926746460727205055820248828235726113649553261881695595998506038219658258314276834486824082878657070831512889844252030931594529839011067318120190997599688153448214336536559433099518426347826495322244804404866880816297380305799233503313562317771000050265528897202569577851603912165452722577202816883153250536880141871832625480116903397363303330762878054239957141706866836552632259254623570926827952570662734616075774648175947866819462551115553963531731592780784299094883934486339839755877020504518010198245960465953798596100917944949665036291410222734803805558408812385453696745428840450197476009078223288572143817929258731932687894300418802105929151134780284398813320483286990437020078689438527099461216801541709108105846156840963557726532473648330116155798758722107034809908026969212654582692352452934800288290997885256029045672921196550218721053226875844280524770378527295863036717455172659684223985172186591285589228453278204711094747723218935436670363728344912932117926775193964411183862826332622578356177736654496685475804425167552809533182253228428207640232012757472966114914655151122607054962932269186612837294729367494233896863301972599125649377991100219803242980039652480695620465213371549363785903316056745172406130383624197902390537185255727520758829110841092261373874910938497708492690713196840958578428919417470535947517677866946091364050886841231524409447631608994214502380527935825543638768559996616079012396551600317624392247557964469309867571583289268995148932569314167957815521974900806326929250103127792742151587053204075855847848021562960976292737410735171669752330130283632503926274874354300727451761836066582495786094005169155195486735128835898814465588781101384413139190089004899577337397233555970163600250708911905279033379463405424033125608713967383735656779716482902127250872782564064637155793040124691901847550474969204012778943797706368762999155555924193486932087517099912669780305900451074616900951785116089230093636274783066490084741935817487998871118407787479058837834999546870228481598419058121958833324003503632626790693165215856906853474937116351960310189846644312663922504035106886937501142001695558567099524151702612400769503572397725094047332989740738550929352206728057637848405513060697063854149407829077647653416297311791876518389989094255643156662073844880444031624931114976048471769047745391777405981571871263880830794456425678980119421015708813558153134203733023054771535928540011475778872088529603865586774866163757642870803692439206515557567020777529635667390896959611299479635232155607532929713437275585330507003489084567459124333971865212375572736692286573754364997217504410926122765769153087960740799671287898408052027158992021995685590636971576928637477387956742939185761370333363811242843911396310261271265737112599190256942677363590016947093956599536312260560985659620922805016311239414761101575902919369726514623753578045733974891236945357026021642202850602438629692269474490563131153586786938393958125869641819623326502846498445962941817007538393609630486017442186384977153823207547667126372163678861450757740262950308793256480470201015207763223137069487733790039439411950090172359324580907567501366434488473973851514029471004790286973258832246043758593675777223171935156105491277045122919821155570769523155875301799682736514733718515867922676163627811050903436648087403414499189514316859860454867011507858552052317138475322849869261930576133570474002365767560876350209560295317397268244987563995890900009924780898276801644664120741354249181937909341956469973504431469227741470287204802463693037227528707274471196322746401770215652160706007626766098634978321934540664294019867526050304020166512104079628198003531562520936051356581851400149530757622471529146621777918324162614745303624523311650898653348913941334054895473294274969678456963962629723581014925771525406492959174143864105699137236203348083846153490857048526483290317359574684247637864420404822115879968493794881074121612331486387504888668331915652114883508399211935606808929512471047126645392694197917510500288342472061978456649796153457801697205342755821804250235936022893206099842546183294271048314402248539800533327411252209048650468649622176406211040029415656154288059310490945107266411987483780608207182989546604675541023528380500221313436992401490150827749044460130190808092566282458717258772616045038765409250939070210200850364205634992633254048212048564756188997799758392496904073666436967114814530748373074281372286313546446063087955946777989914811501615578615910593225089132166821993373419790116804701763238765427181248344423763419656548378510631408846430557620554888408176568942266494111774619391323517589761028975029574642613713169467145540635761194142133410699716345330841802478502988061409977660644446877668715639049599118270688332817092426372776125958750577112225082998156772371910072409270864398517755197266555842861145967971294898181058462685139553033550099908286663956793756590083777090335843376617977199956545937833718023163489806294511121511146394599287249851437470819893026058662882384879629755402464576291095378642109191304843682869674461747751087570544919744580297483772387262011339404578184534501914878850492487504447668834672270082534351863067305295218002671329149704357291955570033573081457683214320958095540576574776144497623610566930349643843120637167134186082196442125409202184332857354277536667112325476580976464766696812292918124126212063895770320708566898344085738667067816090574629999299752417018100480053510859541868360773968454578009490555357034877590397151394201322562013919910689294042105639233650361170021330278192179499908955159346607761142727914800031441315054574692905992169380697549353510597806991639955529583427344938253422625192172753549923560857509689465762732881805390281299250983096933986263202632822600219104861555855028607088011899741283373361954053006176867271701803382299932924455388094601708694700185975381345744703599459227099601592944752350012590133362760421312541903498281381643454497330126317417118100078408766361650128369181365083041544821605399706762703900263432008708220723752434180079562982247577186302060917166171253822664918327381572562210888651216559931635610721591511551434334462632983550016401505527256167419415385075971997849317675089063002609581532232011402384885780512853709222120295547982035085526695572284306815114245714881434304056460264340077957741753605685976096406846565500316349805819358371265082428390734472963932163347672603143995965287905278224173067841578648734567103924699877016339269923539506674674923871710373313958231714046884664567904674030524033847987169860310799901626392730904923241614931222943873724315811014043249055093426791049974735039656592899092972205997304700223777195331717554765204676617183689649733753160718632008264303023225375244352942404602933709704621964489219200212074384462755547323045648371863838982411731057052084620698142073446470512508114419616387461595839622037539074024403495750563829768750531193307156901814500426540365844105716765378491492870253733253234154189744902552431247729289891407762069883683060545031087966670663549697172078192117436324005778187409621491966141745690707603999993798577966510932975875882531143173759352585886652337612982735897160373224235266518186547468865393181719348359793784018889342233949441316074762025874775392661371906894098508667187337553008008438001505295135110358992021338440709298421920552554425966089111340596171443655549032745667001039053250015822534739979002515597104151765088023045032150642947965108109426977230620071251882428888498601306195010653382209276919427886626348449275087499235619184553249238718652967826030184215011217801503182811713407575044971969982211343818505030579436834275029087624758135575172640603269088838731551592604310517558454327647575259450311430131572434473416180428035265829728537624002477381562320268052181975374631290863001370065735131065692875101508835415353671941369397225926264703006307854362045153742337775647339124943709029856418869126398603783932142471077813110864149481098411933323720216971985427022065661137756428046770958201155425021498999682254941921536774228332148846168513079272478779253438615190974639513655305095914666773007186107854818250831954993986755844835417375844207891533223134188711650888756608837388553330843455683133864318023295159162270279626083340670728923472728420350701896348190035511945174733830869199591810069469207425476177096724431984239875293695897261176686172427723657724020823749942404120505867744736871259069636452270274335344472384098092737077328394820371656783076099622374664923519222310854293616967774115306355090833799932325158898544543201053551857310018842176470041855952448929622903634628676939549493846459955211194693267455856476465426916803364026946142311414840533807222697348748103456788488228948222892818971321493086317416357518198031275731450452932327235650205587696517207254388356101032342172990776941759706918433830287625421727465097443823030010278885273515636822904419913605750038899079000507646048170530528169442862395967214745779894871730132790669639652867308361212340262329570638999786973594517843018395655180703245017124753740443011604556561524062360728954915875946403415191695219197268373773913076928951737759336427431443236951813330625779270461437784549245911308117543316741039384472611989439871579881826274900952981523094136680572243341166557982194480615715732814880576903213685739810516273474931395213333162745244198100978042398755391624717739625805284520804281913681255553220051464513062340081635285109604166180765924757248004200457032579791549452544119871782450542994222669189898626489062520580623846809598967814907830096992144838590581216055504624378106768688997844399103710933714589257655175586634673643756349373263439634876033399327270247625337796395328512469523480084638871836379122573041984129460362409629515174492882640358001651540781304175724476399869268516351914479440415423416381036845902085286026440340698704720605973139647292523625699689146579095272160737927773319498169880426937660557036984975234274004093950799377056052081651821253553723467875706743064214183459407939563510113291327029256233504855412942342670717613894637577271721393738619174599897583572685948676758961748431904770859271942964262735963519467796138510631126063112538443278639852282363533206865568876940746980301797606029395209168740290212268317085854272819513747833859814147205396015715346965252867453199451235465847522714018447135362399900684541910681510676872974877619328063511163642229057894078749567522073890712512975304713992150423938353285934201234101157911633156430685425205689964833615912071972258882670465024715228261914240024266172916861232722336844522524052600823039005144593500187611242345002125504702616161006479799657151763994253398899812553241518915821575574680199491349302270145866160700915690428400069898746259473135403650557528370324993071851708845478648860835628926211272153049692158970769282904236010674148267353445720671925168053065806942874239702195289647344478891338991508813989356515091308730191125500206963384168366987327038276154876845217174100662951915458815756185715260251423252581601931700677303285935944953692387631703891843775341355374350461968345653159702367495014808334085703747523497788615930926078611464036731816592926081882703921560149938624413797705968213472743096974048238003839507716679533719934649353171034467427449930421420637042390321224811691027812123420466246057954470775311346145055757978492957678224029036221635534825617743588252957772511190766595733705965222566151799973395463153003315965596844678570770867205268837365056933673373394641970194134472320424747837879581241254453132284219978345085447095718932534701714128413223205010693637446607564672488562390740883531832870151245254499228255913434939308124970016777864841534561022718270849319449619403515738927326369279195256510890381912660519857887273778924835706385392238485865125258462561385576016553028173287056183199362437989125208095333461783603856624310758285036077273282574925139842234781380446053870988391674592015356764236698215783812720228046423798240648442119979514146553094897238088823635291407709309386409916470746638146761566978123368327961682942920765549120315445014126181638392660397564832536100539409992042658132120892032981146801804007950027335155288184985298664456413646850849364601210894642227233057736460492588484419606146579622937433387990024927934921284498060672820454462541326886195992712270425120001772677256882074395858819841859299306190231229992367718759555025580751429918667019547674683186720137554002660095969507753014929044585095887779852762002523847643091015509263934713712171333582816859986353069744503224226948833387645347209658270403282974558875900639201999757326980163083456244479802022670916714370509975684918027036864105135335585111096583709631729363287917776629046354338296816001951601312052834063870533690343981490375729547283996207128214401056126471828994096302186209442875478472188873269727160981983724433251488879455478575869026847021203360778187629329346222044624889808698125136610285291033270023551534718594040597066484541367053069243558397297102645811159121096502545716371227809441536949306233188973794250910850355803069528288415989920152749258728546217699468679763334179140093119107341726499292104846442735971428417561561590849746448121733137331331795078560386775619098707207834789535635693320487587647768904320429016331171743431720077766006673356269211560270049262631042530293874209393877267824179665738471876590010878882895038315923719308440310351513635575780028788517463410946190414646804064984076897274353407109008225452513321746713426335620670785210514821761774082802069956105962750517290776754819351607018810111640049918658476319180752232008583025658289072793637461104997359113270287604477580234993277368718860735493743467746162258986858687604646928823929700820108331479651466809387100861611829824467562653321605300162000099940875582537997808046969286956899040632043595306994034803003826437022782734060797537197761975904685639060445804739941106465114071561755025970179742293284951215444487521345185312315588869584097914117996707926219518062824841107304588937541231444209534819304610310311846209633467587635717480783451777056451355625136030364747422291938912520566874336531905350743947565144052610714576559570513078643667402035692754687029396785462040411101560856326112112063260510916129998965945110744237885438502056256526147131518185499082036529346160591111324372048707398464872205540097611688727739362998871464614216353045654428313723481019014175246665521859435585002442343894586352181706457082125368819692565014635135685164687106722098077826063194466445133141736407361544408871865012894018035935960582966224081689029604384745626407401833303174230079084824399577132308707101122907959507580949177504257847285397396501491318379380081966941780040268534246547289439118864593679371663384825294172872068530576738661343915251875602921529495959585117233831204382548195402921351211740277465481262685092592462798956156163788281053176114549530653357108237731791746879129546751258973173477492493316476511443235828587976740312115008067472921728322549642848304347896803567451942594620678861393282501469186399862968596207778495599429993617485591059917651587849869973980163099872719121902151630735078056391645802554036732217581404682102103319967187264593078653497424616723234225559765558639145822834960908954830909829457914789354869878074913175599412892411322309425212965115359656401160745703122565356254279509465872561853836487897051369197569736368521528649178203814208227245440985793925054994970423886291458246204619383551784409033308654933066907142754554901082040323146691728970793605657681155464370666814285969153367087216891418950883688936838147489171573812190372981687490028589038952691539374519200186575815132888285911549403416537650017839192357012849013494884211929129116979135634350887018757791051728655401649257651754460465437832204320587506441382097698546298365441552978639147506569129366210767050882198829406640626256075403413541441882931420404576031847020687535873167539159083578940621580180475516995419794377064506741195110832376963621536287863500649337713528849551111593981697620862623730454572492679185676710167283972173741738306751535696750118056095444263260125161579233565153748860531416068638707320072601580457835000538298318392528182948463568199225722321634428695339371098214355290810393528289235412800969623093617513386355080337335270952847784380043882658556617925577573203481561239966209454021163406181769366427903106105589151914716318648326567704808730772129417749554665238350526554724695738147886680952668709406837158608224165071508147843378546332644839518850061986349743271309921348542519939589618385113123017443228244036841653703046016932915117535852943066159888115367199266668347738476749586222676984541166469058265070290341081474968100090174705832749616264276809398384281065424303147664234397805920496294879673418763739191283993743178698110810491766926114605830356383827931827103861363407820322144159405116457745534767485299261854125480337981213472202334962346253078995038796318756391229258230174023215752260418077373370426947793399566290878234013836627331344687794818688027773188599892985310129225614430610052913722854084364538546493203356585722429210850770104793888066144195398323299874902870566818220916144351441719055051416768670468519942697292724785368943546628666826446940540319507999444492374331626092547985951544960195824178603770825380441976133575787605266974692658287929081710465777439343308927369183568863381168696585264383947918016143798893423446509306596488412177611919443963552062606655330017401655059087189815024346895059877504772857295677552894487294454265776541795071483046087799693917795957706101205606735560576619467046617119366754470475898594210379887359588564338255041654197969995393672324542679159319603727224692840989473869868100285967354185153585667295812551636468407322979884882784698919342567214710196587188916587732183234666106622961083680129241422452330283055599339770704155835773345999599137169172249217769399248617355589400124898514985964748701343178445777339916191291564334128058735602976085402451490378152293287701158297470201467697106004490560060430097339903427718150689566111872680985549867204763742898150842577132659637383315133691083511249798063786174989842199904854315438158487874666310647394145071493423510848481747839458490521241620494083382692197727291861583284105486838138742820599554230922375110710460250632988729541682344385076056906862627819780001374353105808185503950687330122442485379068467833669597540688545366590941111891675865869269115213608578864273704084611321416548153416945313013957448241859504034743809572746992082611067262555062556921948665217520698565201930709365812423991433630849531530458425623712348222078263852387338662455740234214635342352589166919621571861698111075340201652598619759315537841419555350501690382751869158596523977286506002391789795311166822597671871111086493668543773027860834615780857096342085342469738292798363566873100784977535872005315759347095192218063706262358646983237723078185213241615813703253020107420680767520916801360980335819950046820273047123565922731018382476289138506070602901429716582475698020246891688654717226360748018847358348480312768734885335294860236737645240947465703337952824926738037033998060302142830698995479299843368531671382719235888112189624225444098328379096590408705426017005628687519375120105612211346877674689149300805277583954199820545968786499127961235207213492869100026068837097813382121626540365348104043944908173332813684228336460051954786505791727684783280627080916223908124236330044810016911688963714948129833582359610733286599631650408182720829911456947814670538451010836462754001515625209569047784565632553092281609264692058565776015116610300443520336658348463518746069545442394541697254359645472089932300458849499597730064869376550984938080721847027213033454945414931711891112301654742965912504615468433758121443744455163709720447847703825424362549274757590395316064315411788782010677011622391313609502960231104760973766065065391437589913541166016983638098517289592569865006564965130136099752786066992906055338468766675800873039430942227198129455343094535739336157863187045595660591258773291415091416337203833422744775862681994910849359827561024781457256482396350993287262293079461371122913586670500742514323887337976117843722882353309877764521348930641260339843046049626977104019271330794205344765139592078478935069400218621624702949748222286804090103995132969086628215927868839784024272380840615031380505034916299456009837041994784802232087931789606997876021485212268433398888477167785208607612579920516937380050289795648203767440331489714078622751406517486740824123490775185739750591856380625744049263645072203974032939620559999339432682625616413243135063912292546099308234392391791897177890354663315845452902491654799529984204820692748248724195737660736424714971701731606516532797634334127871466835871839698466488833881063295163518434711764560922853278325623532345619506510112397352587612814622513333498099471834610057641411017388711148530261617847228911080381485655288781207782422673393357069717062225244866537193587087368442022424890551271690972768095714459895334950276621041360011795799830988933840107534935523231875035563941432604766198359189058123402115331920613963679425278949496748772336903175799956751228345694620043259505348695764410644677676872398954954171274406725252645274606777679837515859607357472786646642379591891041655890143781763235768520491600910530157760645321814313073026580829191513380485565068947042955452558747497580013720677635704637042348228881305432731752435193345122011751574495011144133128717827424408788668820237050077504575000867657902981604712282435869365164911586131841610515310710648555526524940031009444699268657248195431828626088785317375510451004047739238440518529875513635176341842629350793206679530211035906348890401728038112222511877914206619266437819274988506226243372799588256896842999126337246167731694497290983150080368645034642563197227952745412015033731799026265378931053951156628207587479603638551485294137107122438157372625460681508665721772729049423609656532891674917301719938182234219082533125840259100320159947850713553390988612318552583164821958627365278672849925822648551736180140488556338971884785012846591348606898427010139022294473141750392320741478708448349308939387905539138335897736425001802538834815706212198663025992736049584012216301127274928038784809058598812602300473838054419914918331380895208238983884136643620203601332325102159906306463629053044284688354296975163875098501256110821797580340454613743200502944386899790055293138771129863371906441698983462710848639903346083675259661043452238124635032671049417110251769272384176384449309179781404880176836226274594934535340332516462609546798554480727534352441541903792028484118380046049648529892342513741092748989218401412872907413848013720182232135592436262146150526766839547735556476688889715499684867904071950564938248489160692974500398815816764750109190507670682399501564829538237004803379554910462144219155015511441961784362325906765258152988474130250551515858880655693809981135362108054627138654797728096704007692049254665237694948076190962155436990172126794274725470282712342693998729831234279210084232369559033119787264800352365872785601474765827918792564472572587145301746070245044347061168988866339158775804380770896718960592980565290392950855846493174620583196224952101247142881598489119241936320485859451856117586922378096721424355305051898235449583935301950449329620275364707007451886135244268817264916502437076367993034058886264852114987565376285927875885786399616603167770433491972445864286722414894744269792081638129490392204947163098523804483460481692019260792514548952324972070255249379391089258764240038687492254871787651354704572783755437468462640566677621170517131409726890536693775588579578492264396329395937426206487136771207960665080457412319531215946539503300082811897767486233983796258501655134676536074700188372648308464546757266717989642522236557663597788423882505532489890740209729739393058108901924376522579772167898277617195948253653325495287017608902519211166387664880489122421899018347681544493436223481106497283906751491930882186763797388388526259733862381153178429699200304785509217930342294881982508703354952030648125128450197005509779633374748014571536202336638826904503094091583869171146495915473554888078076735504778956433874835822680401039830354918901391132645471927339082279220801072923009575939480954538287163466751141073527629482177379097143667851516926302689326279857703077380077214014572614055840217488080436635572736326262578573719572092374827853210797228419144769904451083689472861139394389629806331141874446071091700984154286302633832599705577024568315261631961704300517215580914274523189258068310774083590939765854947313652276744684744999991274551395067302926177105536353928152844122250809029756602142080165379306729755307405848966929251540825550763952116968115764290815956457974592823865916195874013536647190581164552952054096139342108456496107172497476676332261430469524402720580929188290366730913164014742031190847488413031043770384457416930646218124299215970470543029458472475671719196757464668791360249921421701410184738035264060042871756491782819334437564296889251332218216337691422162901948441050827946443527268952723852049848793773353288055433075383035118184569025866955248463810802874078651431400417844178393722658925897757779856906538263057054744096227689757478886011063521487764486599863733816139142713565783057082752177090145405801572001141129951533084495508733823812037156696165175438856318006897409701867954452635301250511921465072951616862895847560625517065475158274486640083482967255915781074425208622474883154837257208483345393168097707426935505977831375771894596282301395327301191639076941436203437717371753843140100221830546839221575603754290157288569173915545417752989468373262905968982372226044773881223559536727458118945419935994361283362822797843579105220475675656252715932615736512097258340862129696127791084697601355229453768406973309667165559938094301031081869541804847270162495760239522280222095185599140684977597527262591671175630722607744394255119238875269960691900233053551939512806351356363788364016407542619716654331965728881175286291360966149598325640090255562918151249336129417543763239680611299458325968188900388609998092908441605803651530101379163644494588761693018189998816187633309435256667680819553519366302904229041206241770433336422033013741814935358578880235218851731363528976370788135584395521442401571367277882652654507560828877543056531708966749945306990334396239411206088437101316731499454112945767161465153763291663246821021997345894413753928418553041764692847294309860325877763077903743711490239522007280320814950961967580478152306587967644978010571120206677472579742761305943617043212720757132142575360987895167982311313608330680600212459732167870261014632618058328522076874867435250343236386397239842145583556479475323117206525138026667434116216970926099486194570216048596728383799129070365589802447920367168808533402306108913382861856888415866619278676114683233501655503280283323865769617760802585464778224799701399882599370986632495596749558567856218834599653436501706990852428064677587616000963010721062698708148018230157581490366315307903055977782934442147630859108596202438618332871748855745218420533391123116566580128713701747427183839132891597865000537445547420513714224879502165964564694346894590839569479409443620070715920627557075623627591026693370035608758528959664345455102415298097763836081523842735951492988534082933383665450921513810894476995802708722465059340441579881123149631409374421764700821670383012689746800350839736835177090236229262141627038846012169617587898617054770542556303734804083783422481369658919456115966608314690633966570166695567970244382392683799133050882433701274732834395479752191227669187606664244204130626296794302552544320163098593950698716300237029864763472550156495161577755546416556324865941809486966396612995790547038025331253309052300793491610667828974457856554073441077012469771425627339232225783528229099355097147672413969785992420468671279846721772403368321898596518345271579571041061684761987517384889212348660983229024038841431254294763197511570487874867358348553109267792719151591782139662112234049375333484129565580787801970082154486008317059547454786434645167065475182810715094348925973101048166875234334809306814006625467886844055294398001182033452758610961429973828886399549553929692691283605023877877689512352375808441429890551256644247756809385090578101025975995948247502237588427719813236516925484070345424918005641978996784338914938421371474219789990929246508095918742024257916403690932145589496943361912621545871602054788871951599477623255014205116174257202162866162773601846374207777049307230680626898985484114793791066144630357856649439431538220870330998700090281232241982937228981327449830207677143073303857214418613119964430340092756235375874687540316633556535350284459072532111405533859790833617053957820030221641808734630682143836791866125664558836195877790927563444231616797576485502699347902600977856029866227968122460681585951560568402383791809254009153206104223949215816804761363197610737341123253199083224993900951419590474374805941354288030197730072604820937680444489236711392284301317172478289497308812287041095557773961767784094151584539591173313684871392926044740153076806828211255693052119463315902519749297785037316047286328774251711953052997271962158423369975003072828578905491848171155901656045401423781739034958033984276332362784919152725671231240500268292157593037292173668624530064428707653815802759837074235144250894811396752863059224430130702820414393122653245330266339603251070826103783207764609665243746976818622809565248322267956695854764106779505739789896786721175780849523486667434450853838662526219723017199275817184555383407286322222040780150735659360903845537871133952780058393860571833329007260016550732216955060285558127592442942588161673579106025235813933282463678114484167125278629507696272740455282475705681779993409358732897169416074210602956341650947650389242132443433023661955702371752237321602149134871103756005196193869945977390748384036639825572643780198757414937886020741991600001279721657032518380097739644926685851014899374396073694523286160367503966450294296335442696132169185238415940773654945480490592588534798826564220539204222091915462215782763766309535446816793034169697512309665010674920914798918697940500337563379472155970128857044458202042580126746972936808958736991455966741388248579440577208045591437974044720809512954044663385600341156562824647055680325556633356981195176061904199986815183911730685801278363441675517442218928800509902883763923829014212440456076610260210571652185387005363733962857742780415665424191481871588204967678761844580825320017996740414264931721926815666546262867470818403826981674951330964642777991947414464106541261244144401658314431878935711700236947017835156360709876826771001003102780588714456598698451155656655962383386055149454067652113483450781678013036405986006958857289661961241670506177065405816737102624655576099251942902796654569108488824193603542944386631521101604884035260303322012042145578437212717700972786949545327525748830554455554865996228477601725218528559223416500543312102718461528009087754460109107419588578261530388270133926792040628783353031656895604890273254029593508301793677688896405123659689630528069732313557178101528018221337826998346385038420294290098784150808438627044433978471069518691463958557500807090501387288446914223290160353563304500650905973312508652002799158872532097552449259498967239691174391902610855696914151929474279916738716020743952274388642818416936627308213549471358448108138249028568127048256174594733102278709487372978181349215319122609348731325339377194875578997149899646545020076147080701443376034726731387388725837840832828808391758003256610509654901279975325622753940931241198598140219422743782082290321959548665955382684150027426012966420345859677641975130553106213463269138592973310710338609523693822304350859613082351930459851941401097616268772943166545141283938994581791690581601179884751668304910112688816787276974955838196848473988844384367354878889420776549775648711393440430922504949627293475767911752116034053990566802141111152376336449112355696686578995255497730321510514234704273192659965385005957172429173130650672806371942398030532355671766818469841757926078822366961723435499402661127705779371406843791784399699123442234656895150258314663860154848937408901471030150216944936881846552312070691673607746793338101786293716412561600281377360809428093205418799312309117408288519695174319617736351747513289501251843524872162808800871689540938252567244765847648686564818900525676479218947008897316968026345365372899054474734043289797045860121112312092517248427187442959452488864307335111935105620378543464666878345915850167813577794195869660963809922711043685066749993416998344140856772041269520183224246745526079730300211571711150261956649612734167449463304576295245891476876791283133660174272557175866384505087031625355712987863493260703767879529134150670052555977653707735365736612247653717970275715925471607619751976719642372886889956842962027203890325421951756944158550601847012217202496346117251765233599671688331388005248597830137504017226359784218974979530044204541468129024736107001471822877526685439719500535873575331113248765913399112561772134838932345096543389880090885400296534068211473164007272849995373409611624179007208153452275654831940389501409964202957383266557205419607343301591397552525565508567885006430111732388130995307578193843174518789039609122648213313036290080684188545129537493628223928483078900333798331758830168337215549024910811679648064196189870948460497459856562546773566376356402775059844831818138858713807211240761212507098397840196540274198081853884430336592235453139784584723194129082246209144203553325698885935901323536426587676660210918381203384272080557709890024065689277512251630446713476840539790107314229765028597722496951066974251792764982926699821779271726159069983331790694017169665837190133263234249715073477449217035057586323313280294386714300418214411511285072252870268846126677204509724288885413979440289358548721808040995278018487710986396294874160944397636399579614549054713239079772804197076876320519163552472568504235222867492236268684264776004425373566372519156793912569274548912738574750226659070268484577587935931776180310404372115558769750166668579744259371590982842941139821857214270776563824346061923449830358273116792731807185277261403986278907300849265910453382211556906256190527275524035693773022196904290955157553406316626618666406480622233076603699627956744783852650022420314376179527505143833312615189425846355825662913990668404078860121099211171030090214213546014661533018395603972491031302675906394797073143523881300606608063196594815875698979969063955868450137217433487014937359972881845281690404874656109987243865669777476801313780403953645672639231182482508868143449384391533632520642138317705869621450934394248002106744047773760983920430054500910127789090021698091112712899970689716818629032924986535552637280537014318245099762158804298260581003376272680336407373851866892833248572231548700219067302859150177141024255991625067079853385755307556580375429693036067294367885818468010940627695978880245528215324687797413262397961838276967512796962164420869841899258186007402752878372302469328328226831402533884220071477952708781678885355159832730898852619013501308016824112722910002531172369956253025025686365389439301700178022101396826613900809296979906408069261813031573502568832180182771668329822059123492531102868954912224367350080649318128616223770178900473492075005648821053723190376437236286020886374691646723026397311315001640599624275855465589083575449660616879249204974442310092397042541479064253488815074291574521987287132816066129055789142006243083879669143674730183857215099161998880158098571215241165981655276561891807097813333663263323037441365857068530230590631998364728514484503966187837780720589571869478105188010180628349188977735982991016537503736585646279544560587341727740957373854264128469025239581305874272256327581153454372531579901157038495388463321099028164431839902312344117926896246544821187498595783929602146028575156374732643563980784748258010640456410741821650677083960697334329386965318956625428100694394857837700793049655577259350169891523304079264446456275242798874988613314754004846537539894406274131946353162866802953587297416392097547333998966041283237612130445152155393059208228482049096862441712941002520642812442526395872186913434890641653148465849103169385566714411521786381727012633053258678554962951485805772164391263266292274669648285630659279610688199707148946379017070593739763614590771320594110508442742432454872221318553515509037313044365014047649397050940714440220770147575303993256777294407753955600990955177369642578437693918035900120093656654963802042201881177661420236514545979344500050226160741142768957430352707187397843083245763407116129396422516559409773933140198542879950382340894432056814258708586806637387908965790179439511845771057498763497834738913552574242089636602946706424479183081323022805961367846371306137652585514113478948354206938820029757224631608621159441242928157471616137098693885652969425643036465776275293294484969852054599497669292566735602022103341755510447210508426037303836792398168963699557761594886707410404313446830369523674904563393330248830948771760180579803106199273046851494632109329684157919071725105574581669298665408596093708789132244070820253089745152896778688783265231180860332584757922525871539629551653662669811943703377559757865329368897571310286032388642523565237248518777939318196086839338766415359120724781150456915148214559937779881750011806576889344587182114177230074899771199067371409499388732592712861429663777076212405519490129894627576099291016666604978871943198042752882229871353115675426635430099739773037895457062084005076704442531551203023876200689677786708180132134529030532997664784069395690096135770979572524753519281440081316285999305739617593958424145070322146756490358944005529056463344000781553373316470286013628951301252203144652016167284282978891997624984136911658502043719030687311632244222223371236078075694033375966905302269802661853740079386300447683960278297296936522625895467673574018787784006376489017762999412749811669526221000209262612440974816818991967742496738587662511591618269461207182749614345037196273035636932050465981417298845800938219005517461500567200863393667737360047824792493245977305792154252367089922996487500761750367450179003001821762375103479670725762486062157954344289278377871333242055814816563550004323343086281619144835603096878799718614538944899310820620279996556687302655362838637764764753829845809912547374445892437641370483765611500157231126623724858007735511121040987594789866059425634605500337581963154147241469924275622891440854753022649590504048354690517249478840563964383646068122541058011569103942752634613164017798456746536455665534556100427141664492703477825043962380527947106902970897175254371930369866249478201452520509578512611379702711980601535198749415820980799246320151129431003590485173940947517978592549489018444225495061520122106294570565657462240689708836112806965476467198677216530066299222605963286468090554637738709156561083479642839999613285935530020109431791541205216050325234319623286456376303168601922547196805191027593451946871476983708660213656647196122742570353227802319303207751270566002482709657299651754849022390479287113255715816466426463889633695927157116228258189989097017264652927255565462647319446079000495618621771850385474016662540402002318400149605158759877394061235831313752482199239248538652565334575634581380328752431523378157489258458587843908556933474586984624112747320806164320289792688248991957015223264055112532420222791862208440174673482274664157884460954829352617130432479945009715870415921544442607427421231091164197203033842441438488398615179455461496873808095069230600607208145156184442820576727462259743927914443838207731347777301757360068486780469251642368104472061246989244124320270627087389538241707808203561807025410317757497667860404072289812150878994033342856881964002967398209995193435472811384704346522575173783237455638235763039527749989183913269209337992613623511281432771952008727712844280939479380558052227251450193000643651129254599113652792882419606378058172630280098002414510851179321418513044696640551147077026060853597003052836711428324084237704391078481310557618162993670917139911209506647689667593701852236849825613284139004011980441429259849184600113293860773393131345168108862820018496899398073260968302574083373017187595352300424838880576772382700928526326874211835308754350897284747573119569951434047538899352713718376399350106775705260389201155264530737710498902954338823004705257439038828692817398714817514375437665752524532147578227910699112036222952647018416702357606708538841224041604766761953387268558200268288692721042911200437323254470050727001784739253504065463322636922902880345244870444914680289185799836948582749702150194555645319953131723122094089822011455493144426658525266137895918543485420834450365927621394586849634753638121034779984664557835115756688075158893707243761009089221672041584058488188986047556950524579338532262308529039137934899672425504268096380112545571645985032921246198371742165546591857588831882721919492245633494910207388811159783594360280972245972163605876380766838938167208570746338404307953734338373416213506151049324159295250931253924261536023276319320044304701975787476402181087794890525186177846913168244297439506457352221045959281948493643547818280511109866950844422277359850782343405850377154574728992288116790521043950176481003320249606611792279751835865061108546914728935060990368620522227657136532861420971225329637687115790777753211645962146566527003552788131979606724936104988087124963655671625970782063970325251963217990834261159683311846145163521378455591848246345574507472874076946916494554556005538605173883382209597753251443957749869301953028844457471566657300754447628334565378074360607267585831582729858657942202759507984272942588937712669800038967065115894818076656628678487921051372670315367327254977418891005681275157595426861281136818607909590293490526795132995613581081082419813355492813335659008357342196369621387825895825613193654662321401132282232287989361608416828846605980540684008677225307856225955204795038193568252549753245102486221920270742866126923528712514890933614466502849072119925397262614644970844320547705091480729866306871333313172270869099534196344592901693657600791061578328749671470032394284015526514683574502114391241724790687672793673640625668716549470014592561920725546481605998148580395612833440232756854777324040623413847942519037577268257472605392878522385415613050658425867016632150106337017605875622283753255151113118776976676346095823137878208440116757710991587113459940146186923494261653581768109641004361359402781875265250648953958762685357091904258864846735119799542159955862656771699017285499067831289237030769388538293047007413842149641804634174112815031200627387324036658555088445679885370471671368502264071037316901770692526562001909098374765498917232245118097616778087542143292768263974161972000894976136553353166824915202169016441974401913151673337085694497776408952469068976782947242192533564337953275454682465092451763230475649797290508476708901128908514199335968469060227729954890692280207947119324905301200566731069828707053213644261033993463904794071435961658200029860763310596371926914455062677885986585592923546758545816056654875722766446997187389287403294558291443852001171177137251770526333239651842398093021265084709229546147649286927711943138898771133612822169780829592750956292664475594295315323373841706524286714069302212778365590940583383902632276984765545006330869256549784862478084323432868395222368295275210818916170633951308463830849449930223138616837912733493448539068219323800532962038205810755809562083866676657270245551755909622106691339039309182623837517958194015907803587706015714143032060835050759192916498568471737160624065955915488217389420766445899188789656035952404224992400909143066973166653962418165622279138576121246236080112967868299431979990677634898553065421921716112339679612834346872526855608242605871408632472333894875355201892789437985716752302906976367325082504059463030584243813730701345722779852855983749372479536926322813563363893921764852238088399074122630307438197929908688780804543911143232988916336288091909412698701263087441119053087810275219231577836539635454004138638968837990307547194965209856353919531060246249993959405945818148213861995716215041280309205371927206545472264029303683602719206098983617360875394646473703810437977157545327582873358997817672716437866096197697809142901342791338373351440249374494203503057482783642131591835104956002479181038557386815851201194892956270166602935078883027288394102940533055420059614706406594042733273309132892754228274807640420215850688353465846807014718244807248166314996987377339892047316857000776681669420514999795739527027334928009287229725665005718625469836685955176085558856375474173187255122681834104862890737642644452850594990934742964442438570593108959866070216688996072871946416481951479105696924721846193258528089988470406091479905359574538020840290038901576503715823421194287970848441074915363548487183882507796253953327214219438714068222426763142220427668475366699143446790160452420071773020216568727853947487912161439635639982902610722330490971368757015859453148558238001093835758072288405526020165025313349863588375020737062096040114376682972606742643711272258346651061493150566246907528237925048815055785611303274493148328720907222842142006228431007972067462857437517683726816841969888895178238409330107166397034415426751620575764119328521967768385370369365847139370378118060743098841815979011060028238713280752926410812797915935397141727606498194389146780219567776257395456076121258139759160103417637559719060999700432301478354065442395590725617469203136178665186308034639723498937416823243490402503663792440360416076624371979762609605940442141022110647799095442497274401177948139370437347003241812167675968389326770318992608844711472828540050226001567044245531144376153177671424781823015039169818477193477717555385832594549424891969304999689732869013196484931461776064975355918069986120863747641642588246122602755998475359534789003772073050352697030905553112020684662763878339085642115213165068017900606949283396122848452382422448570933503505340245830851188730231271224969649299025631609465230740796357392029093920319462196114270455984653964809606544112991655557385901220418167298179006250724689044278696476361519990857561701254180080944287393116837897016383879741128291009947002240978418851328126618074809210157060541413810009132300186088925954431956039929509906253272901800325261131270098454415109303269477330193092753873748891073711526011904454284713130156571280351968163002597530622713568860797321765976310819337121850823022012367168987298746467817350619647721074488829086034816657943903658018456046743053847668951030652238628379153084452365153223063029152853342012156041047390435057142973822983395031576775674632626751101856646439474384807712455919020014701553856091584391938751795602193717446921899701543240223029912178747470274239877032303134749720046252968975807318129040841299282474529040070009383077239867735316004312747380659330261400820650177275934308243977567084262553360407292955695239882887497073261676889934815614748867854252562474342687294813974327202190009043879260593071465793226732393724549495638978972562482312473084875035019724205221532900265730389769521159671369923835673345150232313427352079726407723064214110849144767725229781681341930609372216620991102505792891487091391419327715154546237996782079398093601954449368858895281995547724559086557986823775830165658175121407907895625945400731453727729475194297387914452795815186077580370054493664861178563339250639732580120793614610740333444899872208422276219227394745897095835418809151264893419644096666455948031287658636979843583265686498210613752045998138703569391222931367963497558577972281191417273952578874297742808432809327923928607811051746807894463879213325590451298102294191763205122759684902964243812228838026675607445519038231322007216421975083069524256023455444597646011935990371126479218581468170093794744020805808558885385083439364637612327639366303869837801059138497878146512090264917060234095687132952952357976254475283257407059493735364459371532657218391619721445075864913280083263494094387058799793104678011245365827813890021478729061136426899119545308430118280203358122156741370254153553597852416010662617579507387012109180904785503461926264696936862629080980643601214764576634704029590699516985079125047815492702850300541773089166078992177376651279308288378777209118921992980810852559079851745478096713672936009058607956874626582160476796247015292562014215180661717910172081870821711546769827364112213225205839786318778353153075850180569589692878774568644031234355008945883458797072086283053279853152799348157853904093591778452780895771399800754597026310866672588389764177491745899045325325439504649588732700356605522950941859500887250337347723827370602916037072845236151001339289359181549011323193068967879665558178642631221794819450992130221996441168086896192533693275907456594208275537360575752058405924408048942368496068304387394750092601822434843034182443216024573463313537524921719653457230384048483827868043711607543666210271372647693442847568279624940417162360333710414800283711481259012077568826635986910581032183726770070045206134213623683002106300839886642281473465210425670526296385564515977975715257873434434430841684788391870244931602909306925747641182131588427989371948547047573200794925007307990145738227581336187911099878649938068819449805820896671653572020530351703221668666908443921706395138359975471169857588150869637117831717960971925494538190649651547983847682165900982731209337373964488982929142603143445143209521584297416056189100113580279588244303428962867684105309001324010751092852167600942684617693169191863669895691743801645610610161471116626945787009944178855034385408569291151212898192913355473322943639814949062874812444953478935021836090351495253884551905980910299014675258763873202034871748876249847029346881083300830286913046900882835440370072605226267570330304626822690203692147334458709927992494341360270765618279389497361839137044933704237077449684428726294027957343315607939609503712852610625895796700533134536890293998600946006002728607273576286560204498709802799250059981817357560187873578897637916831172255723624360242313779070777113978307798187605534293291881127867125672846073609383087077187898282824401293802646667953187088861401632449022865941094421101660538315008302520902907942904506755852157615957564846005232498114822487774735651370659945193838869014449730438516539652947913965281261060913310497766527765464552268158084384089879877253618044174202842334018014789119868102876160710074618715499181685021421234951267610102445090720397173270366655200978382083222885278186634392968111844407622239833580252738370670020015671143652936112897851802286273263426950499862593333379460150797195416191085721276801516818706158711844833299020938861725121029947503056111669254610417137828319971572392042431553525697389352598740606401323351092681109997938043615102223242501609583608360729844286536275858643979511892488310672324366345859568583888157052899353786981862042850761389161387321226870021136771149726767635641633983159853510963404388048444780956054060553801878310255126393683605578580437602258277270030031484306638530913599040389923389014125094907667510101189039665934288253977499183217852620034574930882868239624846111047391769959988303483082865019953854942855812675368122133763738521337786393400684228700303970045403940459527202735714560850211649116763246405649381928783960033585551880254984937516232575431476039979830774541732006619863916469009228303839967555696771526046027359065157421852036311309983374886501588340459016876756982638375141795775320547696932302817164164435436860319815984124473918699118986661332568402189959934531707245723830316199561185975486060812260098176256906748176025335806717621246883992630092463811286701853631578791021020094272660435230026770752733626977834166639206680248461180297838194267489972975222791147758887865721560615345747414903148766951246833659766729138982809921444030955381684426586126092137116566731470660066522973670577818117226285494154006676041182324174322136097324010547676752865316572754036408352302076015391283537619961552688914273781123587499750852725668050042394468386538729989612495746791795707667353789473189676467837705083706817302893369125817028917367167727564540859320120435090555366338174189224125361711274803471792457334011555247206636994163305426610601368762338616048891748478445174782000801484936195738991265334934563541587497640339131809968570298030849967969886652200322212229230119742461624966660193692411053945264559248633415273205248699766435738991751275595066307566502395953497630783096703916695867890235517166481951215333807198559113312141561305172080684467203991295661362572330693706104618332182816362212405000316171298298854756773886769081648496313244174485994250823323343309533982181052854398970888605247622103642294639971259588513829841621905180449023649243373013965802690126909114408250037363641289642365974002775061339790814411570234011154747455722524136218662585074739162317877665876823434086305875926752311064994364695717045044338479009335669446277568859259493001522258078206200813317386039615755024846271324141793144252861693658755680307162619580081521466125021423209709790293508833732301596344107813604745619066732842106260989766920208249200525543508258327958878618307889921482913354641604060725986642806798969146396283703110515969848956038164683496052132044923763163806184485555020866514501334011339182173039691585386876512459308420215327549833597127334906813025263944089500248413977445545590022338466186632878508242898087025499134889138355869582562510796718551833158894288008211575814479988791567286642310010929904143363572557039598693345254700006113235645874728035699476358436641765900302424715485135861676873907567660015675678844910716489171145894401091160971394838637704199212397031969900542747273271685520637664293803256071530718058558234847337191839933290963822779098745877432997661103414260452763375141346008480589235390443103262202303389750349028066852826881465181716116120234541747078840582223579357141833345617285032084074619581347021000644322985592945134324984306334150147831435652969178554594012827519817938151475653632258805019563925738188132124405378592060486358669059434953763227792060565235449928541719517796723986851108717389075705515704944446452976451937129074591489086117317472910648505184131596579495951326562027428651894025389552074491904623313069832896644521269635715905005887987029068889166286989769527496030073982793972617028736590310194723692427798408638018654836272164882617470087224442200983320645992129773076343098553236707882094729872677317849175873812147250177308724365628571140883861819634628488196942907513494850000406978388350648047035253725654298378175913568588713631721468159748595028940330312589965115831751045152214469789045354595047929527650669502922361941354606941634045480387704520725680445746466926754773539088037699011080551066964020568505262443012551163221610716312725212703273546088638163575041952318691728839975290818436103138376253363859272744350756563294100872552112080377778605373606337022191736455320170663067251813800228196151907220058866831299720898000899922557154014460315532496271949939199577779076503073013203151308663485225074422275948797927055718071285907774992582255202864577703002168592816782775553408601716722740008231544235027340749590909541766136241218530479712714761274820430222374617054534476246525563064507055872769510485000103799683159249883254024377444377214777444381092683662405457395266739706838296125291660240128265596866087626051381355880276203788567829927599309214963774360134579206594514896706582015529906284780639438130492517781065123727151518043169856926930612294271423383742564166853020791780943192028094322363601597270998932484006191147459523570647937331035234965278265305524559252412828265197523260785706642081167081532852136586993319616751717352624103411002723734876822436411642755911352264380541557077141755398642868705607207680627355717910020565406037929044658753600891791036788313063121793348283108366169523656411385853182471965547704271576847087400593022681012364027062311325627462100273073482924879257570569003893278230794816044780248742661184308518215214287719592762918647515796700463130663893581257345210482874034049787910209039760400218308819899531417070121047394194931885456567462136484573199780404691352912459734934172104966134382198465721690414681941893277724132619193404628375562965144892842947097627063383880060163507688784122096595635735051686754373419353648515918427757229676765011983181131978279739647126586654058874980914451204309448950704120106090903996091105687037946685477289466472544401784833986626490419966368209630892969844581840000604736752040574091481964654148698824607841480297389096188662228711156102971865680118035832446498913428940603577650761060957826853426428388858984658004938004702414811102291488431685056338797220932753885490277922190887998517240164379559282140913971723373427988784376496485732740040086012208000523509555162615198073209236674146706844746739529429501860888796571096889703924672521134840115552173460759792014766477247535980707564263012641295065235143397612741328971924910304028983605968259081959937905887941367664945400823333233259439910079791398526705525581562817048997116230944173635726207106879561732186616189026003025638089540468000692329481263708197079997637098726718748164855143086647724765810564895352832888073012063463007227182394266268827032631324601237985892340598963070543840163839987059838837488917605052659591111328835126282951501808727695716027604411059206886301417471657649027131653577066297497399818046082901487021116286351551988119614347986549641505301992333249422904718465824251606390392190735312454398923839790465449080064162712948487636414488645018998735474821170707848361885682987242964225125584211673018543272557311146789451121317463191048829560867321939341592149237437575452961983120610569357597817885181739126430105227501053808287427122133946145004394097269740520221027595445111321270146495977421098673726252870967685747580816271302852213072571248829773641736085627417066179837293236954545204008592031165071858943234048483286684293244162835653465286266217772080026123938025589900825484310840949673754855767663939229415332181196597147096108538850714980157971028259495688853609763704071201363682107014422056462977717726783075115298979352959527448311488241979640264187143846688996882819862755505286748575409321582619493395011201214980427326562242481465332021375127654303265146231392035440368605312357903189269393457492245187228410507775077257791231479005575986001526724004098268078873100392399751717219215886377600604649720109045420732634206412591737605174503316268227129153504813723188137497365664516181140062666423941512501621451083388322479555749522143849287902877360904780200922277090158191539305544527835855834530818450226658544663850389354623527934242032397888864535582364266973746175084453720596072726207251928518081378734832169361272938916348159739144537727636699010974008279049351773306288640511007118325813910503785649894063843267975338656077346596774909098152293993045825387706507471076688503227475829607365514835277644342825676914182925672019261129722267733520403592219949272460857776433032513657596277992110429806962545007953640679954595511439614502283185985087797160621484117468383779059725544119374066472222828609020435703206334784994116870456412620180638527396900880440313605167748856747523850164672843000641981127592113322995261226196534043702835829714434471422220515566210396661358085926046955059289977536770321034625067624521950563661077160454454301608161793832910692194735228065199290547595695838790948489986420534205205361072019897757748994121767645521454963405452050874603221151511448153849987748005771149922765705773736325027065927812789977040444078346786421384717576537365986359240514039473692147261839534371110422867926644348636025085161901327582765136887758133970947645471077743841406357993664238137010168986156469263876182450356862928375510570999519658234294854468732470540972900480906852284913214995298334418699378869117687449757679667433519663366994869740856785739950750201584777437841330553676147995036276446235363731567667117317876696100147873484129894676489484268914818693279367667584257360650610934743448531387440613803200197445534429273238866785469406080855653322860117459300627588462653276541354032492736148353534130013073440070554681515393847268216490480450702569875862634112605999208952738938296292826456608057515054645219756074946495971364705070080680361097747417409899644452139411493986648788538437847114086005079985857442402345106044252646215145270641110415624250782213540677327130665454806944583007700881005930219170215723773525557060633451009770870393579199649877352877597982507615445524978345657990600097291421862137072732353296923546373063798888461409772261768725517003161400038947651133347369392258592807703317408704734804408740257147128678296875958443700415011731493942460385652127545032122759818124569156257180243413715077410010025484773561120615571258518267595586476811347867187806791499585818956371101932535849762448170161216303559134098092363447980868820269318809910186431253712411458340011395348913392736171708788672626876188342506416890580183602938145138287942590172523496002863543018518321125100161014946802672850265841985240959243589899358226455328100517786181110429631271465604305932200403065302563308273628755233270250898277137926680496087994164933494643541014731015620643491604764179068955312564407353885417186767673508760763939923239266814370271138133523416219226909387852817532819958927897328843864757428393516608023849406264467756612474949660082718887095571826115296276270718721875656810983488870227889293844197068233548773601733020176168768911613495196539011302970657240559476734230652721928637529242263506412314421641589695625399788374645610268512797985984401086009209775721849840328828109644187296591600894692181396573708202887366255939469910892774513342221875417288647695314895868946173976036495026089447289762767523697031407946448793392792435303733276916649897393485438802269031734067377297457402595442973316252783460270318553824203623524413780549689572858493389010378646211708774096035303916387945277820780079799748373535359231823066512432776906653246530235639255950571724437282839875797553559417499667707778542033948202499238136615614991116659357045244046793589208872198835379818688319468903383628205966497927722253429040084951969614793667086698793853009871092634587361432415459212370326772650698592419239419338070864122234287863435885838967531266718384818322925792072818249922360257704401588187573776009892279388714877072278345721440236650296329475448606799634653320658497280195012611176967962998381047679961544495683702961801575952418167140927239547861232081523036868682432448762472320280401084420860280207602503214298555708055409759902724345664667200084559808571966500205793004888253481888641007031549505675962514671498032992773640101810010357230572621169485846326854860383979194187568383942565905517144137886852823354056138168019958005850050554620830776406376230949890680400595146045886607814546176069906784480672170618162539545439128304987270220314913654360571461685211342469231362007813032609096575534969551491438710014892122898872400395879629284904844070982963369706222288871305996328376715922986505581610942016803150815305799994765967913267766806047439096400998624584474692708444998616339797260511933615382319404411996756296642127300329258691623384101753236536439813580303398134243364126414546673764340097561070609187415077485180237252174029995268253526615043852356227034568593111302377715761968492349132027310660057990291609037267443690036383316817244916441638007740474693172399034655758249506318680194911408592422137763446210685606662530970447375081638100311481792542908072394209830799640517947364057632058222009836056950498079811847385688086169092467308818798321834439084677977104079561655105916100667588824565920190268260412975622740092818574358077992498400720146823749533074549929076469898802907570469223324871720250681226050046034604561572539792237899047369390287656322910522521353651742307119515483077388058221396444294225292192512745784974273728619721496023102584038381386180291079646759448994114696649435912039686398684690075723967383532211980034982392621623033315039383261108215807820096513757871770177762120860787112261625607824763421313102309434384957125283632280325552794194616319477281947440497392814478336345890571601891309206196747252654536151519553151111612618517299013744211833506488371942583541522542205413227351411804842177648568286711923137885419196839520897615135158381740739368121450609787392314788182548093361678561919068914103790407125712957730613250969195446011461463986697921778601974362123810587882143708302730470338524956975308802755237793235835123657710695615009097370410979875242012905356420940546593199700414804602497812540107946385432924537956780793913864473124516377032152826577441832499778811701461060546086353949838506605535817421529073939855296874005083246840937961094395544531514699747306346642007814726239226141720246358855890753301908388559931261599943425796351175564963388512936545610863788475209205889175296332237079432137282473834088692602683488049801236484139487172567645301017517182681324993130452213305772433911292687221341228806488672500902194629468355560604294781256001953007170522806886939275464564148254962551340262471066208993188032730102748441262646044214639324005610074786718375172663783473595377816138494173176552937835760974654509908592493320939219749909690203545016455729848924241453214581727097956717833265089978006456956650486240773122215563401799694635284267295952543962178657258499611817395330868033335936132709955562688952435065527867703216830303580763862146399045458485122811249475212321893831288648159355188114516403992803064664864734446290523051215902613369385464068566844027054218994737818586122637108151625532329643288963298624532857624965654150708054306121377338389285803846843875163838955846230764763328246245019033467645204816437749999621642665418830944138172071724594084018123671785692311269309604596354515625788877491753707884624821594349378992598318042145342670402936406406371003988422037555899175936280373818192313137550927669888750383184542365506807950139967619261841629114480567137933602379777607895369026166913414287603608576810110989036631578827557950240226968139291927540089327089787859600444911977057528489423003967879634160254568961330252679237214301462501443454256670935552438608560925063064903494270429828134368879791172261299713289494670142399749002596852682567550561528927895841049125294466968291602982520371434162965980725142869604823961825001666369102474682426787608067600626260037951796248523606632137599352849511746000409581507425681400026869956583437783543013773993988661347334939542804211767652976187404329539366404627758525437808166242715012091756562851301178414932069407787003865736341297906840050060277686736676410357153472130847504958324210781247701322624090121240517397211674002162075447943221680748751039095842915562949486767704365441175804692014035848915870425867900734521201674064451974889981948863450906108757381161391621623861644661954865719889371643423866850548163576391158205266693145514628149118997694539739685837920792778660387818123302599544115381797928044888558949513598391082228987639222690069016473400273061716092761435450459853409188613854190105968072864805831604645935656074841501109023072655134890081981579537817607449273193753155902782801742344538097649469028973175380507990977124935804766767502495500383850150659866212056716196913518623000565809335342847171431842680474595541756590155606334179198363202473264618997537801192830786727833510579816721494374294174651313894460366079831850257232870971649039632028578731992551785007796944524935079109322799832175146615750822276728681817157418811908815109852895289645895590354220828030993193886758431090038097938520294375472433626883150414240202021880161106661945253406851326405427069617900491547386133516075958766797542869545048465827670604249583644733176215049308219063710047824163158306741315273191033283620349011407657575924884315497978429967153507731762618129865743193542918499405334221837828914535247468803852637967694837755622943669531658646125842104987217475206646630815183900276866325706738755989206154296782562716108251545217657563881860823994447876382271023761192949980202191200284136488461210252907957242524508154888180028622620785408141687683009567819678595086895153789273432926548908167921690676303042531081541453961524339037401786044545807919526933327389438964868038437210629519755930699274493358787440098208596861712053145596574961593458056690408600013069487298200646556150946392705240348302394729553325121778958656668477621163337715309048230779525350321166461807197113067481000778100907278350918479509490523830835899878313459535133518350640739715064068188336181836332067825147708734925151809925578469948003952799631338571880209949870916606743514231560572179679217607369154565010862124683586017701391863724598454816715265203386087170736350554105556372699279346959909617959751736146772907385229993566586497711185580953676952262964490744507849866176649229568300433734176589163788123502349332376262737416536511204721113103970723635763552326849590240385888539565054763090135878464288410248063487495083594139703811706743359959721418609436353091406819446716951679469131191296730766007579173362901766561907957382390425419852034975573727635815383086311375768327480876138081485932957063240129528603221441944767518677470679788416656081621272338182770209521555130869403749780389989520679430790864110577844346656459314319464412378873107496588139972448244892900613047416868935691904692267676220562864591769895292898392732415375314760733512570115408584378575529397324153660292544180969096066750146602742195228169614599230127410951200647617184540421272891570687328014807219600101354553779026143551632386591268965181045801911806043641813833987255954806373150152628259409996596969923538592336662885559278408058113155473166644789097847779254443225520803678113095900410264296285418221309859347580387334158984079129785945896437362694844625024384411022951932350142804454851031463146689968120214963941300073158792269834274953408301370773913285660189251797546448538101293808609521903382528926692835934035529201842351347877922352629287908902185030161166821865466642728046412259424163831825403585206387938284576783580910607145292220815413269161351340938005567925798217241458762436116000354953157174455348443725018739686073682800855654892329993050597217412929865385054102985758449910098026380863428627422611149503509531507798482827671132944710753562344985327575042643144207995212026128253414688729521326238181489066577682163375216000308363926156424777258414926693568476825320460825122179889105971953515987649920787624774217698223922843882601701134965738300149022019806987402217640195206828428771465241058080636617928525929144245436802707240678248969761728120532056296724943023507113801200724512138295635860318218985594682160936591944881563084018666273272114425113097451636878060732509654017979502007489647690134474470089422168906205531527958060706217843350493546587818783011853838395227368808387544734328526747881353485851346084292791182752119785427393941309076387043950413883599775977168075770478358173330588654326807924175918870406736746919101624993222815597060722313615405133043354314008148702429166996646702155352367817739210939706353223580088133681592860380650133209866855581904871324439169094269014807635845987875887966754028979868275300948148093520978171533120384561910054972790123999080098397727515523286652718050730648513193832751905522989686204490160612316704560351280810948405062233564872237921301862209628164299682058867126728798413394616784598272888285916374878025463616647109911403735374329047751498415936482698210694569602255699708689907044457957267196775904818296904990287365834782117982864423810228040059454180885920270929787653535345045703015395737387898079782971365921472987446332056794390648593010904353379696113994293025730671219228875906546620267383482433055023757798137538252943065288812217589350964959286002273046154879760578710120062189080017345291642841379646027675238759120737607605819313655004522603660686929443775006989508919989678450928510501158428468166450563778494906149122510437455655605695679104567448921111222868718302005860275843240786712902261330066209548155504085622208900660297673898680491024997201187699852196469266530648003548474660791192773505398015838691461240502062406229081874044290331637063026217018175636573112972860857297181446298948479214942445487684951424150361748355147932244719457475842477668214949159206592106372504696661548420769375138672623834883623375883020333446373686135240010515700665041252880190608955453539641486762560515681953077991499020286184804655556823457504313068812292774661307227351443379538959378955912878789076169727888566144280379859929939919572470276896677741585739020480386649748379648869123101860131703799199868476049686973536300755900506956293449352692875581356617357153567260907013644351957297087063293506523525391366380823370372323990689275580357082950675879291139768421756965120078175960048459763462882939448448939183893826538572284844968747076542088860324081972973334840946148846909549698253671990068254835905443254769898856500813677441792928296699312301611008401526111933745328972808766754051408238362537490814846166706599197291677492324691514522694517430479487528761976223235422285916812097468620000086829333394915310752321135269081056875677001653088763714739623116763187360920185826370002671849718736031460837931904344907965406256719955318320644262810645311319606568692772270803190403678213156868089753739778219378430489194622283411472163946563069054110947563250034144534898063487726682642195000909642615977843009766832390336767939569004329386336233470680480114401327714199387651755350890291097547447659443524368752750690349750471262637412847550180177240453676232798204491671542404656103234965819834872901435769425986457865327940755728049992997338512814697184586509852604883871428717484732041743820483031648079705798276328600591283522989957110247040774703970155944828853910942756223449882839915371899715118416449984043831025088473846058221341058218234514906349138009027718818940050112662341812319833544776795399571222866625555741864602210276579942827902538219254351124349965375872104908391643737614984052409240193292686420669165692562978997126108601205496220386016799657399042925057683801333142525651285386022119565148535961564891749804642924376828648972222973874275934169079942577519549051423701822643620218470926844347726192251920046605380083775777753422014452720817943571134458141987788344640746679825329089770705837351370035564560785158070442685835577036988544693934523442737993161335280848153959104167761050904833127857686178377283338703423211638994862989767632646675944182048453199209400215908220710433106903532535526241749606233243346171886756031687087791227657224811183205461933694164472501639026724585984058233309268744208083712703929330334254847848217918290256928869055049179828854926122098160720398435204809013339938331858131216435519735103764400863578213020883708170536981017934827509435540281205725074993033495584676900219295441667179071551908108699492818470824236890600123212635539318635337939126425888866810411639782009374578428391320192141368275657895229980748305655273416656983816518026763936827689542972850665626472678227391629249891483903114521007956851498761312510381108921070124300538592007857853006252544117782595761087384492031735539813792764083133676962938994275756952626920989284826030560526931611196989353094409314366316404752936227521492478109577357019336607581693082724325805100572016190246649022301807264780268922021449440238288941486881938778957845305609418808116358165403307563704611384349014735569817408207744552675473834681095577627295193296992608112283149746059265653235640555622186331480360579881279810572879663941056085247732577372675224098850045532532695314928284312138210861206223100068132802229148459645364417846616392508975665636970511143917522916917915839244880055351163176102207096761896838045684193177623886969495203848882419371357481056263774488810923700756915165310050783998649710808430292312380296678576419423570847157615717190001256732047568210165788029141185411709983344731860117211104081803545045230692622673553212381282589684021525484869269919910296756535286749911721379320561060586274451074216949618659574372150346465269427910419997945307162649587137289133312901669242320687877106258917462979195812499293042043632249430001109325981477819765850325652712197961196102886015964124062250532490485886430719873899667758673735782924344944780041372640008916545129883780495032784613342569925990550173767072188246400095861877703230961062948306991034751937877026361155483169424160034122168159974218842281967796787221412900691434589117993827362453619199781166621820331616511941846197053429408299548066519938911937881594056805781945646931889724316197471326293270571950571774266370034136305235088722899861239784670041358237944818624822425968728751217311340668773595905980209581635756513528877650815314468114007351526669483623803909328026413301289751118623735849679485980769188322331741259654162871591375601967269652385617216877224284290908626124390645807635012862053156032614908202996849211688379376058887935919636421593125701551380620073607233946728806562618505976070646744399683182504165027582751526598984860844503724995667523697013713264690316666524190439376070332263421070540128135188362746638360309727844236971238135945045404599369618019478087241222399230869023815679571799119153032414215556703351725422275747255208553349690261363981228877682028307333705043569157056356418855111176669080893496118898253153052480382938373265466951721940530691726905196408884572866304434964963331537342720367173207469869782517962516506934181359944297611038328363818366221532950027641715791002140994686615627882632283314779495455927385982626912571929591142293004625512484021050017956436736689554095244321648368603124502149501484041591297471601186059774045766463342522638555628463601495412514913978514949657824137229626701820007214660044524336179281696581009815359669885172471035157518095005162970038309446945209807470180907284703937993994599085246354396900197493892428836645524977567020665730854450964472321339593456730709132878449869529494685748165185978928942610864714975737437917923591018741949793149838479360984014198741733327667366329471346830848043271441524762328287900191656184261428957466884702218257733308119726391499710374518355816037736859171340152075723418701655584974875488166670829467233013039936998666117807070622940924974603183942454804125186271815923323320011604314975769618672621573773714289405893707796944197663313872986746748810389962130163988453891062996134554786835783630392315525358440991289022052478362247607551735982125600115435059966130739350488638704290539087768341877290661367806589042572724767051462752238832031786533859417991708429771237431205483122673984989652512249937769428397474308594175163000995362133366052091501932147999617760249284590157199251645036295728539820088228721810426895980698997935544361546747901429164921337016060911912708463806876068918908168369710753710569272368072168946481024728680216034265021483271898404513999044666727788096465914616004799614324662586021267761414047471894234930708079908363339520279821783806435962525132367406462825447463747798396742389730634084669538712236801118151107766471456602288629911119170489113832489700898881954458408005442976038309054838725840192416318274299993173999657923174201350739411440362280343890257649144975286817086426881975134582897677784192207992402775058601469247324433984181224763749994683494476822615673530272291715321068809968994916049009808567470140921794795161437936392431680241230373792710533222847898112051898545323897391307616292390679510932260539336491785554458925603829995008174262994093822291092516402197530563974563171580022674491768496678299665681327200257919851521749173148878953087270283964489560740702452325094096703725979595440169841230141220972834233382232330735022131161861113991456586091614089448732770723204062199511197383196153559582361293222453465166041758967574583325371563318007104913272793697291771537225579370682525906871466429068606181572564158155492195722749058227579936854628333778616897696717221248344591909484711611860178316465205292759683893165314833223507661692518700046972932771038962923076265762491488191799846323347670573384064887157054586700981539829067539098651949741411828928914390759248929280622564332140308199255260362801680264239895053722416818214741637776392188924559988923482006709446497971011448601212211536587039297967188420763035867055577184565968114807338469209015035328135320342919059441176650199268635791435529174983901627480700115721613585344459505478354729377711761720340186138805663536123426279117439971591311199272438897458596404510396130525761954437311158714447498395191069866607949385078790504014221919354208265551846082217243176545554746244063492420606360765726002813629917094604222015656863461372421981768812518193568307603114516884554565146270812771161542549822697121161614205981347490945800360525082801840407580223105723131776448921135399768127015673250629271235787602747556944095178375408314626723101873656911491059868890320220170136166344519973401795729711414342235651619138214017359004387532701308497806661968685609962418154412331823779322252403068046920070335201256833232033953329285810347691765818947720074187287140341480130586099335055123228825248945491225300193370929346801559498731167119572965472392460891536123920405685441569128331891941432408566610026396830882868627394013691469517692983114113855392279873719685697906764278477534388216645541042756807564462498375765132999329505128139200411139050720767969897882893763770763832469893883122193852537920210823267090193519697961232747626955683530096339123990295083586746015848131240275725941775132491674922485558308164867094314333605361078651939026203339447805891086363504579649853029841313663963689566748551630621812810432351045148610028343464703122984666632583615519691319749791897186125353622863997076630036933823795250026452884867124399202494783712730393631740248023849882805293231534803597055647179683271214853384634515813024856828925419565386932558031474158882157576629866614586774933176376205170422434293916842507685043266555875514250605456373985475533706309542139362242588507565607673342453393414511648494297968584980474287315323733238177237749828457262099694072915977844844118823664108447311376554035039134498251815215743930753033615015676634524114443469190434947654841836711100386860301738361549280617166940264456736280683388504763441655941061484756800006242943641013470113297385277957666145975866836770293206154017383094186450527291109429961555181051999543425147793673995529653123339523075705592437992115301418851444342301407523046947350805142325293438260048710445931164101561121685813587932861224543089486797489198189290014873329390019275690123074712239658321222830328998235480555892194273033113335824675359377084473467755600094192427614774987123624770222408227452007354386989927420547021888218297264890321115127200707895665298039827961322076820858115536277990355732458906190432038025103995006766129058166409138647283662613075614208313220303543421247606823520159298178507435126776561241229336116752162650559464297055804297765537552304974678705520789405028917208784062049104128209482234971324291195871377237345467927462629847792561415379363420554708243550673383855992498148712467012331162048701170062073674875477979141281505650683430929482284523615252399154764556878597718820647367326664917073875149270335863686421028299512759191242202605847293724975192514884119934945102997532652131821824013017933809188350912797008422682986182122117065199921380990984852485322755743845467983579365696785961155977638031130270558507481793233635624431277194972882180965772376441691302657658681070276634727587754943157756122556643357414891338504704398906454426714261956497849990690571673333082389437788015157673632858226868548070000361263507524944314106828334819514787868170917873298514308940602538891685658431557541272859785027054513287418990017169517890226413313420917879156369286938955641917481863416343940183724337607199543905986197803038894665558977008636485944178876601808115479798020766577719329198975673987893580439853370875006724757220853233333387762525424543822423294762477886582093563943820457831324913587624020474961757214696658174835160692215871205968044010515160100186348663607258330211588189564505399900501327490998634774636219948124579847319023299085631527930405523157647602567761314597486586094046099852648685151183528068943768547547840380191472999994421303544097131962428712000467405502871237274787672194876754612850409184165567144711269600947863427532688303223635604609044514122730324198689501199274892376719828598104643125511213845128942727041966411210507883214731762489344963761356789530796804077409016809266595100281422048660507828405469030586322077251921632283893745280342357281188326382454039915350048775688094032436681134093686838623172797872323447458180435216117931629918849077989394646581596681114133898655939369769191654076414030991900433415854983815234262521664220852612854837506565011794006033719823345402029884670624798472503889415895979654163228190181017122771673035485182080586809123988198683298609980993550486259789475030624651579177084071178291029033545000676002654289151759237575435628164298438258323934172782085836664097940451464257926727067501987574067812806942064417889974712644191457519605346326994473098432684814906018529897013381639399565263342341439854908070268474612166133175435071332445803332356657399494353160180419977219455735266000008580075925677135268158944210559385006125051762407976392785563833986007870372994581907140648410642001646977578876811746091308676992350691740860182995404132613562943926694698154406428185465700804982427152757760121624355266848362097961057048554633885147438820513243661021000631361900417027080575719813680040451363047575277645209104015959607736935264985931687248905741659585330794189341227020413106500152250696520887422230397493781801748956359464919883571611754736175190758697625608218483155449724998114117475859532785860317116247106449745567263553107565509757378387511969353660519488061247832174320910793790738628150287772092473187290467901950334877604539986786501546963267905592462010651872388243744221225482984112566425246452164491849744527432682464478411883690573930862387697281832508703105829384251075465664245997565706677147909536850158491242381715657271046210683009384707234830510383948176655876603812855677372566456688331096777701997618148624585540474163797582976422370186246334511085302132315307254054697209336453097571703878015546246375926794075621318899272870729273401620181767308154479789661591392712168679688666720427784332026736931570792264848344497220674825869636989359537304572451572460257156318275322421831296579091888204047896416453118501021596759414028202497582884342331651349036608340784674431988730195811243104743943509241492453172684780267109467176072613873935989551674918539377718651611156263857531009449590836094409182856243109974727928771038552648072244391189446885154809590987921246433436374230803302292382966585297035698270434715907985265253916288506361664241703812704729265190613264429916149291355945165867157746936177526414411708787002697068404060522534519464041262340164044542503344357093241233985514090943841840644818219728502154697136000398334477559062819432628229060815549405657393553668051930517884395131233434207575730011827030460739773694255084730953505853375060893282849078471507513365978215592584004346419487448864331242906916420570064017598911912333521377268724004663719667312994891708623516730310236781251805549630639126756003924761230873759045109748598414477977036594691008489953490073506058384274845942610794692620696585673796170846408994726787600015948463755849215125621286325996960920370922951354969564325734170138694597672907508359847743555989246058057518070848620079217061909806081589856111640908007312990856127539043180406181973889521980005391587783892271109421948654767475333125996461512338002892841734794662987030078198674198149724194517470733199961398961876269074523283066766775683851718264266968086959610730300163291275832271629742536395318531257865699610289114223729689739648965235099249607960447500002051676922291516883524368898977921688633834879363550478478753524121949260338677811095650273724246137049494171221411600330776597899109841088805107831630929784969390507674771627439611602412422976714585964351703575733977416664864328155640598297572663300062774178676161849330430724096279320119299021967798655436748613214952087817761544086612789950590294348515335153929778655722980151632539506576934190932323771477995376164428554965630476284522272828485680892215216210910964554842715355528188757003295991680922415169173108226683608417651114335011266475104503715459575382836556992772080913393609473306366251113629612135492028911404706850915947551210884485116504965437616047890980388644717362916380098235028292402834032499554389477778474517452783743336100102651117600353205965679719084717680303148178440435136311426097809380128483506718213202497604262984969964403428954720597718173037524808533079532481580946580202615360531860343612898376483059096158096281686224159065472647087290581805970264003807692750310028408377831311639654262926556726003285108375875171635361004701786848525581633374839542784393701961129593150846435403266477406230407312690517978316689993723720100805597151462413905505069036181598366102951247544808955658502799702949635847460374981726720287942265173691678857583732272662414391463433816224187661728809071703874392366711793711567574367151847399648057997418719600695481408282437346768926610057783065333305354657842767951986137834275412303070134012194452601396937770020356753686123419341047539359740857463075294993367042796217703642276614959942114704661460038131945477811277115912949057776372751512515620801721209170125010988104804132575995865137564188316478456166333588436714257567594530143302127694303181862056312972610411739614718688977397724453478654058940022036795564229398471728688103120556728296513582110939132517844958813598883970076193198431625348122281671288621360816121477653984221961747000586771919419547304794898041889237850004679654679778729419963953601001584138985311559078385826253478337790853972723334284175982138472409895931146723624278219679407771627816816330309533872481224121344788178994579220872358179105402698078065412541294851220502460805363380980360950825759785679259483303680793503788630931371736606038905095666320242801743293327102509578770854063446144057395570562211976232758827204540490568885085926747203900297995972734170364139880452017353449219923918522407099991235417676740738197716013552717107156587520936962897718893540537445160488603743543185586303114268481148122634632612001238781622605112698134641781284653954296225287687643607530394544659008098367944518241383815036118270226405118734484295382514468220880231229060435414057733307862003544114574292428600813937849164412930389433778585404733371520158996465656524988676040128745261782753136941680406240577636309460334412435930089339685648376407086182243671792868108522457388070830427473601932356998636950706476951245771916411493153217909063834349396778960225409209426894653905749761065228608891796122988246317087824689343261767643524113789319240140036600213569975481413923439288495880948880987180568802151858256063035639848554582115434174732036644070748610196873908973550967689602862136736707298018415134338793075084553002471646138526423840774229190436490891980401442031517087875416944068820684963825803730955978198923255423595472579230386012752847061364789250554482837586301954259550736838750272375965426497387073575759223761285910983548075035248930105585021687785523933580141813317919113740041513506065054883138960107821926422658912513805603968700529765618821584250970121398155782478992797085868914192019009789727807912941352391703885502226805296789731231987139081042293216278141995185656735809249639443352949038161771605240465458860192373891844375913762498806260806164600553791717448374386805740535853935556960184952748941791474297547276933987448640646333371354432746529431086254913413715387784795811927216667718513500671985460866203936524141103379475963859037338491142699538407509228563957150556334242920482421491519398470004242591074096730116693589540726165205024761474741337589512360935426017451957935122787408956408864588518639754861955314166655445308690037559360543140018753253880253559336334230933151778695591621858316456600399857155587196197154128878822038551555441080037517265705446985841743237018200897020579381042782371701121778268636342251946822497418743757995250688948956971011425748535724652830828393739095785699275271500939030550094141588971274491487650875353038990859264055567516315352186172001572540592985703942817400158150046919187814140042499413495639562897190742184437846774417280862799040988971203147143033101029229938410605785154455750087799093437251189018882468539030614750685662394348311979774361900871772743477397497983485503457311734641034686548190541033519625358536196537730753401856084211017111131307594486859311048897143355294648328256917779126626253856515250252218891062504358975802763127416992491228882373564296356171921683530042871284218792934245355276108205830501209689047673771717014111535827437117744634554454715190617669759100833831091402061342812197440430346960497145869878465703039550658994429463346733088374532728712871141963930550825453484375379503826575553168648587837168676391110596088413750736481064695668335398110363367519800264366213033857253066722341427626863581141209422061807359082158014985763283787390693480810112763932149399392316373485647907059271965250440291482910621485763723103368958446077338157891099746675278510374505076594392301155424335207119614765094486551577110962018721854587635383078324549703610253747633720337473245432319479569435690410662289815413777172101205392353082128482745473495899740753976555421034850602945730591591989903977929614289050720518151500280894715147637678545376495655102440858222387620694425534429798201583918493849843875593314970908665865304038759599979588176264252244940440486209383046329265968468450284820532833410284584895174269410165039778443180713461624745837006837030387411065485473432976848878631905568201933028937988077154502098388274163065534424802272733491121558786744841534121888776271458845477677146108629463090412912495633688201990930377217564236176961785335058049646717315687377780587089193860610108554460399744194321214363230924364885395390676086890203106471587209225758906402463412772600244883836426440602146174507493096901538615130177277752888602210041803599442020984391574953916654517425536088893693954317859083038173536657288385699390638230145871678982355034112773449820413714848190820149984665424973651354716938759618258536203142762927389738833867568599457327209542232206972571583957733419206990122897014659739805844857871408531591457448943579634795649433915102683850691174512436539034028641323369551756678719994731045579591987193367611964224821773024504947763112629619607203212097296106491611200464936053834435279918466314408528369117345147488335728256842872860145672223504022602393739380211225123823993831810830738568634354614117076931501127098112578015087531992814611680518481809194456290467427427055095496574897072261177413118875946127696813277281504413325037491114409240506503237008662657675509870443632063531456238339660659613290080124699386336500966631284661500564589889658362139102327684917725602260080647983526716514447184016092767592907967563867768542796768853760476312304105860806941530211296792261325667797500045012318358384536882534939291882819499539674553451806967426769264444531822904246902801784655355202682993919977425714596023743273441047601767355870390839688056258804206660622214443384703982007794252290808399752642255238048803690993479333154559682327618937415022935581079610741482086653754048051837239881363228207074302805371176715591657902437658642506757067256285516334651103715776147525567467868622364206816294561281287632639507096721936014927504591226429589460833448603810311285113202091373953718722030599344534461852079367638953037284542356827663529712818175562379260305084382840189351871588752273298838570855367166342922672116736916357485384223440255785286431976376027860695500216024405180069194072257043758817394769761306867452427297633270409071386990839705218698680757138375283693275450412221944828065630947073924232364065428660903440559303118619683497290379749669574131240350804181400778313517542708750063075898792603683871074487376754367256733064332395209006632018125882109411951186539087737632715557054344064333950619885286605574017907978440071984989199578055030113118042050487930109766066913638236974509234048013934930828233425269138972107869749419307776823409806882600756575114893574542976707003254593381917875988426077680046112979952324157501966616450825684933278279200622051645372978956446836015667440069189038595844307245059148451886419724664586304392813542703510589579245806324406736649239529658162866900363597629683827469603414791545344598101690303728190652166510702451524470941933617590416843842910911270648914596523329248983695629352249552968887200564669340142448180972191132770408289612156976196278591618630561203953504107275383322311825631657085612438353524766496295139597758948532412984125822804998404136402603335566018062249344599211405732527176882907535719913749523456335599432291651275310941170423452718379039487187402688503227677094672782052098156879834376201126276077423075054038930729346114943391822993218403178717545237289474452093509771195160369330349413399140309619267902766456202137680669476660611211863684262428075989456238484650766276055779196127973546762847271747566151277313838634802757160265381539653107248046067867265414880501616232301117745724760321994403590719935497902961861995223047712248087604281749339005483719202339299704929344102299317058589836751850028850695509504030921717562057099678815198596302945747734720523933969350788239592023515370895228147902902399071609253033863969487599345801799767903525578285608032678028338939130028850760943884058470463852680206639581494895695232795512723809132348608615831879475556989690026908000157560608805556243850031914905466001701852130332632090930770819662166552591257225955057857876846557074488297076016437527087620958284438157310514713507992230893184425523549977323639829437381450338467524242397317423828073290248696139899323428799021988186301669470537086443336343849948660767978116403306045836770026314442635514300988382457365724205892859078454083646805049223310782460860633417713376195523260576213199747142764594828015156863572800374018890109594444352081146050896993830856813561236846409984507596535433401099185711810217903548965336730458773057413475775855278071803278510213069892964591854806305681796305742565229733130928399007391556820209013748533181950136129191200320010322698296029307818613468980632515869454817974447017772764054618913636964964348539494907191938548802483661056298346694717930553120970511221380150019924370595169408698371784529503692496607351954084805637230671226182762921269041620277614288831515888448471830780983239821376407154238438807894113049385670941733613949601869449145590846812718440704124108023636229745687698641815001287243510559322353860779827469789165559779938723614514443579936022371947711584880925004657429011567860199581157593330431578515557875389763970613654962516352584244626370089446215533954212898200703182363480417251140745978186844668583899170023883103055323063054963015366920922556979535435186545887943883442767815037984468311800349308540027697817927403254679981013839566766164351940753929428252925198592406484698611469451365825278637356411175889435854418859122177594678399668989586377309213432410116129594181139764166090453895932161055707006206979815192481531380316487767445422653083015456440542845250828115595973248707708564069022497174186214121085631140702793503270540353207119824584642896962074645422988365100965010293790405496544288549996308402017600096540100277067856342102841785271601343707896831588260004864482183778879248029309483470060865065129391684271728325354454859971907762271221958490069286989750745643276191525453189390620536833930703970913388144558113477880192383253196366526013622208589030783470918130679236097504036235803021185508006049064454836002540662234175062752580886661215503815691923971678336978151312302093107396451479649173876008660141420886349910826160338850470842203261208404137704894795609285472781704800772893882608621242407783177573088663291969641119727850373530272330940178147864903238689891094576352361721559760883286016763638648226420214262151074684328824356918840113175315401546189762433428674894497297823389969854014441668655526712073026643602622391770176019077792098240528159819052256366975137651689635948005469302851077276854281811170609795354787338581879738856791557519707606191836452719934783075701221139448368731152120364595825480502169436065938395726070233509513500038744816193311033974722693985900123708064292643378294880135402579526316707314650690316860940736707905060179466494516987325721193887642017267447347178745179081266267230962885182218014830202478109959851131078188020572403171373700533130574833916694967851236883337421013357273575908782730015491265377725060731179091093509288596953571670624862137162439138457037912960064785581847928489928289076861863772739076546280939516259855601663063300002062915708200361785723660142060111734364728933657494792785493762002054371415069543783901347313283976522658249221080986759685360899597820556566389436623379842047991731371658878055996196083480376230624071101881047436106512222235800663775775745459260043349599030112730649586699687952952451230873914193707142152274961805140739295752704847889706083546487253395822138854693957381696076656397092915661818516344288211752507526223770678415142468256600907120327548866492070189134103908411269205822768021609700758481860705107320413227408605063884708694860648772134797327312156026318984130195813424008763732846049731707313991234798368016312463058528412599565554372864471923929068087940816758155869388610235885615389529911032621233188627833945187849673207161381802034745111659519868383894960176986438687710897920585328039031717233719577859929359125068956822409298481473997348569765579458436786196622399735673834153616999289314017951196613896143086892738968187150992380637934817843736895589162555960988581723499161119649386929531753942047265294666067977713016809951012748873698400126107339839040980036843321639624304775903707509949103802847381918041388461956209576201527018759940847154597942009985075126442887534376115926675258921774839129066243059321054254037285203066055257967012056690027861602193324872397279042203632947797736536244349672915372405184652608491701386771861398313438710118289877696574381276396473652988530358138603599966472259572234795533707486381832249980053051599995507864844216035136358567042899128552045226964670877543531978826697714850264403590526185616062945760022882717108917875061122278251320199494199439011642406084070549571284244393380290891418416054088275025994254469424142276676931963796076466819688011858096189354298222407075052237115031067913890153136782421368221207721505104720704013380142285811191505274614932902738001775164640722919511937557141035102038621889506189882855322871635196556035758366102844164855902919285614014280418980918908793182780651605316077605356833475687593300591427774270738106996363325229553351905355022232715219339272191553422937029297290346888921266105536966680946196168867140356766484794415986593937035213757965860687735909333948324963456896234516918335841952927636184967164216907740718474833595730408171766611882651098910174668601073303963745134135918520453174268021498473354155521657821030444811702714935407661354729444355371389905942762485033759777072075547133606910966921575518831196032536116502960725764490166064569276043318380825025672850223473002969599749741447364103177070347399980622212250075989315470557022807012239724802845886658636634068297800880489700950591414043774495722035119118275265412720291087720038078195215665643336199863942955649332929849631626141543373950353621908578187834641315493522163101285266554025747716021394318811617403222091535938614114009406182683434889493679116265059046284078892431710706548657265561601070363463810464066941777145376867647066486332049340780405622782970886675267198887145172254083444277583076015467250442720233022300981839701967131045863954290469039501124448441817033840850313322914530880287381955432950195132666316368373932801343169275857460319543696941942388568733541354310399390833177839892081943699993076699853348835615090845271878018790374916486331547978350117295792744433526512100596655797440045226165441730066537727730860785214792155796312273305931975427425133771540358978192316102594275647908904267601488912155539515132512496193508366636000787809269909630624669823123710408070451483851644805965453837985441067198559261647288566822570970170992931941120328735573334924179903250604186354651730491755636723057993989266860258570021546578909791272696779259622880356659352041637422058732789073814590695840157576337300801330451126091270818019860790171431069288974675336874651150701652721229486271357647097797073979753298804921743712504545419237695211893061111174655991930601324940624235081641239317979360709089956489870378945228247688850577422669217826192020988751006089190898743072776380518358358172816647440474468881993710889683499556776346534399272438518922398974969663786145031880057459430933916413641138755171368055193279345456970593494043966265461262563070890964627988573479250990355616563809700163679613825846505151480460433407709619088003749918358081292975409193444111096318223183136143302148912312660254662593763979548674744730725552256866089077207855224577746202478105527039598962109857106669380955779711445081701641942100679791328074805689559670283545500383997099484924858519673780641665838972859198175354548168049953538014456133625213871697578362766282633899120512792284690557055318507034005195590633934634832684470582771501383083074141559434226977304182184148938500836602498516442679043916199803053726953977922448403808541191987919540498826529221439929220037648640840302375139520181274999374486872948315351704863759961494242283555495429523525210209592471400738398304713172792945388476861050046090566219938977955052541477176258481285318626076791180028229186354479482797950440956240236146144185701548096219642076487482759270632037407105695778236061516901740992970701734739392612216833864295483896873211476415110446115264522936850202723246293196910783731567532759584696661884354722774823925225877706085153397315158578708598086771921314637811257112126656775082795994964596779684425636977511984537117126063491864822708820795478227852443747085710504721261928569538372231932207825418834202761682465899989805952458347853130006493586998099003389117934146157343301964694421291344279921681216099585228829899292242255069174583952170506312037032400502742314306018007460533314198746846017849494466313732372740044333436486181828211669656091393028767603569773206534614400992938807793906823898890134381525448083674563769129818323040803727451518495008583473425968477711919426064636195060081837922259154615844597598905309291392080130744954668889096394108443898658609731608728214995296446280306999728687493226897635285282388605736255761014622219522206677892135037581014344020610128292686098217330313898011965374462398757972160330225675324084904508570276880243773344432423167704121493845946159805433152317735219822228524893448964777027309829565532272541304386436809550966569483455870063538608522091170644472429502927575425908851496890922991026924922964626041073432341384379250692395530032306952668320182439396906314711641773603597416972003135207241702597108331802805166329027047394810148837051402342482790000700888691098657080412699047152323615038743914605349940306181272634901973476415175397634489311363266958913557349441531707308972195822374649960924784241439007521635761333156081718765461513369558257117091754091172362283664008986659000296184965126783995949608567502912204636391560452859919782935430341265336185824802169466725891474934454728853435750163811214176233739317239351711619256958016671192985381190793514660110902061051686980590801553756198447760795514741602436942209643545940479962259252129883175103231266974736493060480171674764132202247490846962474267881713380096371664615404882685733310222939159489813897302591244072683268504606046776150416544938543264774059953332074993596136811401754195069711329159888725312288088260461009570111879328091576445379717705405821716064969094876924118112923897837821681372255272514091616909323461318079648893655796885214649765947987431564726080989976721240865677699732676243915247311847702209685313779359833698532424277663826618492273560092214451922922571446952280518862947195836668090244473495537522127112765846464005445293048570082266435846329650730385847605067447789093079369181518011468335256797619650943954528972374865233341346790245385012314004790726262759973175596104347787930755975520673417243403088682447064770491753314017544723080582987439084668064804186671052800392718273991928373918271182693949008820930177337525830784862867400097455122600627933307357770248444515818592051000943960150405116774389522259645670598781411128767036029240724850869643045309235353874137769843955869410010491380020511092094114676747862206500608084861421815794491559145850951115935220140103200738069933031854509573236598000812876801312035668219899347277443030588722205618551979068544947116523030759150030699166892554707936238999969407251340901017864933861912610791426345448048821287070366234541912677781646262752455981717789231996549984923275884407866245980306198918422136622074535881161256324329895645296178948896648675609153852410429656157812430338114275140871567825848572640174730182234590628871809804587638495566672837532966333301866500056825039573946422537665047763177018470814659194300657674058164874879580347992309611478323059639886337093807366163514729451947961161249560406509274164035042290924492199273257738524557488251646789976117119474151452288292242050579873006536584575055912885113742546643389951102736236415130677540712627171648977337164941156966717155446076407041805116416268349213906708029720744512959695415233075941345729734517940667268295656482213083138004430207223590223924567507903347990559206572738982502632402784730147596662566459482178134157940176417157478689284038646803561916086585308733650709017253737604343563423240545824472624305174046802223484541337698738671282032264881570835256813736248227384004725894484478659484653213318014450852212173385078015440206111485352515411594407454216390944798708972279548610182577134762415854713322495958719945868613743753165221927808325899238053938438507804929479982988877901905741652217855753428742394952554131903141547739669848257067058018718710260707707097714136589547915152360398346966196149522927781383818098270779689820012262806604132696493988348568334585087309147827185561072833771740607847797405244354114177510443544541414985763105548098261387226135707499476616003786471035109825035481805296025920175322176554704620767264693598645515956525725775116447881612931945309825025250202855819613044493829287828665726367775329144332461013679650071081957419020966211344102932415656333431269839136213048827195507086461911596385983900662049974818669116289853385389413762548947468628537377305661961050476260352493756873497349543026734018967732352180554468518402750623644119523384916074598683755123407209114565552878404410289277274309016138153611437238593203273559269150294157782545160548571008141048381297396749334816521789498671756810436505566907638505802614087409932011443407294523436058463706837126232401578209276750403020224805900266313488932610024079876388652065952478554938738128249571933251955136038388244956387910593456180342808693851591475153123129168078825272337206423581570668136777985767732142464055874772415489923825251781944102652743293616883829381961009367185252709207542137611074535531893847331851066158010498529020624217350066837787330886266907527199714276007720716214957850643807716410339268618612273736110602690705786974898519041461624768287188436506865528356014286931012310141321059203112937089062733674512122738231617496940816451532489185793201524765899493790950060939482737293771068797800866350924587985739943414407302782948437362771224923586404073401298409652535440022997615581593951564015249015052347483358656265904367055574005422267712100594547109219412597363082664563547906294015618249256518279476764302748942979416152146914905946139551707522297443377323488585673291215869575261592883094419231031825205249936692310777687082094485706510804298182165773374502420401827055187821380986247846590854541448079550330395869014199564469129565190892602746613975928630593271227567312186272697984156674449503227996458494821732163706401244030914956637629661494876041727070575554308740069999292706139290044369623756265574377159760841236890475939617244011190519676961596961813598793861220931812186001113922610012581956976639097031944596820329650404269558229851165644126197363490341419928373148640156877390189650249713871883818605450574761095303384205572521588638252542693611814150227037771095400851271274857709597826347930388030728119992629102062578732340412865342594939981254303726038223012950667110625783578632788438280628939977425088207928662663794759307146660818061214433995667835846444708015817075535069119882959214875015485226311442150166032040366248632594870273611873816884042724564803998559103546285592525418793948278311181664553012069158425075134097264077515453337231248301791681034463535218916004661943729361408822418644474336727321848000704635389497926598536148738320226915251057777413681207579811824032771501734790244072060902848033420645004915385005737176335417161481610726738647054005114259227264080326722986629878751732742437503243387056471731432508435956384807779521564718515480432557967178871844345754123132310345492117206034744441845452470773717893616941519827030874771440215327480024769244754107089578552386261043998146697672095850667027175551629293222739411240839533883088373737073213539446269098370999966460505298399094399278581476048808905645690771304155901057456802147220443429849452577495455791618536603274900689137373214460544403317907221176233883742731645998567650214590012664299154380911318487808057309385274039775883169388622948849528644717136845734042140521677568000838287293138159822535864575783077204528214772576345141708612140375866441511123699776004936122095413164136938168430217140238486972997073568293860032111733295830708106997254940847241395587303273472621426059654957448088044567912192810729150041097534563348253540670232278027189266879272811961415208993170628458473005690218384218745164774765344219338291122418652567953444582430108101048265587321192127016372992162552703371711604015482949120189459738884462333030473632429233151474741868305491361171656545631527468464763739241255613550782674910642348353966509349906647754043018528188470242720462103825233245445740994741224142940781012685652088205935639315718551360005994812200583769830260088778228789273724655862360800336643859718099988139956822826637617927781608091344519635507456724663714885448972195732477138293210765213801249728048315567571317395580307604321926140395641212369682982920332864391224889721271460820915645228930921615649151402044074070427047003992185162508702775289175665222138100856669653924327629795355527140427231503946227082412658018098564099683309726175581041916544568500959291300230791572524993071553407822195832339419005628353755028166793305602809053715064696567031981878605194585778759363406416318202461523178834724639958250671577817606385067542113481747215083380683399358484916251838380792459697838566773384536241506880271222090582076348551464523311675822152576283477561835585649183146801495476246621429619114171865485284085170991785444572118507498736938899183061896796295477394771191547372411487758604761116484212966018411211457303242359138283866941865380486416812081995189825412516930615276936593247856262759778962693023126894113101738993710721211161319869289932055959550459561737334694651027143882000419230177768989942203081608988057142597073729540921032334596966380661364831981982395323016432593332776122079073846678778941429403998808130664661960000783227507961271301009800710870647594009680726013673873428631965546429460478473703805489838042208306459877603866507475016771453248514603096250249428312001926007902378478291867867126542244238053638291968759772091412324858982772143715836267157434351688659894126368658946235288971382031137614568547373542518212851224179071751169277707403313730646648898700735666022222140414488398266707444668254024540376971766911620589980469208275892282126734176618721127949301386415181454558566417041007161162808392930039922686003544209658788813207714770770702137921514671811609190599054760411555171704247754412920307271779587581101154287169884516756445885254184946039333652348135731526457635862013591699405242018948030409183537515274912164346229162634809562045289102198561836440650680955120134916294880763422068877699280243595226623943851480261906530545190766381769218168839476252458448370025666661905750605562105331935691079881144781130085643424512664122975640132169893075427947191038128045034292573766028730325916523423267296157503792159325162263069792066161743750067517422061586312087835301236094907422274027049745921531454992105849770938615399911987908950161710903861947784944009963120060739312809372923216279056261823152748931150387854710109323370256634267747469126258178698695093713313064422423078044305679306785206696646194342803175415428142354442937149604253148424208833555234931788025039130479435033221297442786534845046801041098308709912198866706217952273435029385599195326332928841390405155459751122420238628264175070126711191229677813717351289048526153724910290651692410310647823656160240947776120948686061972417476830033777697664433673507076225517248375295477996047322369616166049640569078328480919275213871174848738279414778975916578710326263438793460643042205986173285951168430985313982524036042684722229612597970331323639805541858082364248811381555772113495924607410580540018280591433851751078433987516820487003400608294608481980979770308942817305513357555752578405512193005538495855793460264524329425867864282947919392929078900742274793549297606045008269588826697053287168116367794702526091884439619331612479337122623351455217550589513169474958486096696500590738870910768803044781765245510854618545913043139022111219808417656859959121230448511763920903418362215609133624504742453777406266880830939084744116461744730243499496682207962646313489869468627522071273724235036848128017221247410922602145339933672964653011726971778753831577513054794608748103093071771915078796339090514195607719425293441952162222749651537328497756425177612577387175554778274317588208759947225243139904354779277722438288470940296340069653092147974185975986391597728520977028323919410437444558474302897995084178887741613268758416326136293495535104129044288155971086379747552749388266362214750442524735403179893448248765036021343606972512322455214909914694946262560492665248519790593624237848608338357254017607928099690068850457912881487882460352185118878021000794883071425351966389799854987582914387554106370694494881115632809329184314277666276193926902552255645550141844948480503661488353992324801284480648305930190269226124694002658132641779130003081537522439404376765660862038101200608639157585450810260211538450187134734849779930532616284144532858227513695760640715239822216842287196497793259711874886788544573194700713215447430599358694106030155766452377324504569966390821753633066146387096149497088251036911159269751747832213030265016250316394046750033265164963140722016407975664594578450557548505298275146365131355863810291541509526679012652966391317503161201091510923599580012743515316945843110323402101432097682345993175453969936279905483764137283494687246148776301950034883111699765060200612292405583228406721342560680685137499710656153774378232078025325142928218940933302342680587297992914513476964533229668263846359554830467400561130505072880542791354756496780521062766264083559499654367460526888988954763842615456901236348049903458437305239456280640518401660619509883165759092195390252159056123619376787609655239918202998248127842170849534259475923061271253501048022506550067635266479839721793910615055487658581563687597357139575959475250466884506950490061831575626703571872454862157642302704156198972851361038711936186862691672578785156519761941418618071090054265143746671862164161822201685766628079953252452983507046934406274802808078523551145176962510443728343327603570047387899027686991106288997330474158214990271659066824406563619006699389151105210399895056841080591324120402479051859720914937010217864739401105107274432147142778814244700199843741157423775060294066707865182226432121046005069717256864496529815508013456316264943181281111646046755052905778873412085185622629472686157432619631017809961705162957702803773654045172116335319686967516379878702100427333026497784359442797188593304901797630803698738718777654120424136735095121503011640726940339487720494164441628533685198124208769046636149100888241256969190712753967155145854110412938841752184885347664589007401675409675551482217784747317894734993398586026519974920620335246186433820840745227635682006051500284538774518996339528598399915173104779551522887401054397564569114625609289251231233135262252652828941211670125271023142992695247575312695274952570186020983847968404788980698735082091753104120866630961590187832769185054021371444023282666215544105417917110458323270833855042597030530153980783624947574982898088042583825437187540224009399479479126721884719935079709696076025332292235288685663864171142316499128345425092799247552446651306505736240834327609904330539897715518414211049797937470593633223123317926840974261302817426697610836215997308158921988908534571113743334653151632506587489420579835560190494063506261645177120267002947644527794812324833024685625905515233947202309812517226591827187617309553657674737629746804100333494304721971605566043177272565326950341689297338729124239085038021314944528981683768866225488202030323750258719302786672508762662847506863711778206695460823432686718658366408453479103111855828593507904083978837214008129979896022256229677072754554356476451936527646173003748101890621621193889323273596209204793683163184937795364774667407720015072489015589559153758620171307524169998273289036205724517501568712864223795850407436762473698250421154410573750987817721235638036681169524296237115052773388416283769743665430566867139646903844067154573334219404447436619505583512117680680609597784447757168062048917419246792853673690397042864642414351032553203297573201303879955887935550781172347204238346457671783991039185381815163710640886161666649477983202138002046946205158082073604654306989371656123806209910629879839078200839470339180743502046927952016657994240400251739028745141000084974019495656074379389461414313134172158706133309407510529175903157372695849305829371365346561802781428564358876679360070178212216599334535224002079113244409381977790065655073978678088922472449902577361276692223317123821521675997679261449482515459549159747883390584941518136239015427193204626011981017261019101220878274519417313570351515839657991668017612636890021967341744745909392191403082416453441625461273631419995384849302295518448115475101781008396754316484964555505593279546727470207884630828404992494242839183616967119091637250770785849011461262920828606523603613910383506085517115455708055144240693589993839905120775129874556660722480007223834779122453420757624230248563401176392691842350994001275991498413376271297784328494190135303841762121867599627075282168486140009018381935604509663525562784378614015422970027721167694266333824962107811743012429276570619355250459130337719383546378792353531049582244075923105804970662587422898968581698664690763731400948951968394087913886211119210087580265558536920709982945905558906119482321508257455464324412478358672869064824345454216329585100021059861789503561876025126065207902290314682002592340852113236878667301523473762836600335839072773430941092526687418062154572815197138507698791414277369176892616390541670712105931051275982476979529318105402724137487517657010587579970038780342067362854075084556960020330485954331272204809253538274011641272623676483618495871666727123622589408792557405151776304238570145337703703527250331678453240215051989327194009867730747411627043807051581462787156327688362450070449581934268666484842381836094097531928149834971683504947605371107523680630044552076921694883388092104630072234476155702130452249843933629726986954575855817005680607062743289282886578313032349101415666659043051628958199561595618985396519175440286955691864753259332291094243555207665928276885625083481276995883458791330794058568839532253563547657706522620011244430542281570780571941227553014778925459578031331650971184767178309930389474969206181945289443405470653807827775977578623285882815598234858253561349054608949650337773803493723925970218738178146310698504264567507167955195024914252598072693530274096694233740873884346207825433478228440560250505717902160737085310973186172490044062201639050328858051347616350580718751437362768909058137820866013355842290756093553703416574563378111969406649711512250187987027174110743982205993257188472982085269869581739025109782767318904826266457278009749041498193729711099558185419763561116486188867170012169543110519443677696579084015659753667319003741748302576047548186870013185874700573430867178819387923959378893115315332832425125263760454811513084075704359236981614394143457703162348054048106471028451674181731698045755607628635269864541336169758781526191294713370653173088895861194363992058307204092553780556443052280234391605229865680418513061805646182145392874633277503333168039123411847578867136169786727344339706913343921717483950474908303101157085135835311764370752706493224479032800577059903566189102567596195544593540194507758007143294805476835396838866886226055096778549746114187444948750390512738827627528059890178512481804142976105812116568227030354855104086353733787599571256241698602956381428382509273065828343189443638704749743629803006756957633703764307764613954747094625245650394394932263757479032792501703387769789886017806584533551023165122716506007153796807389997950131325692803956928709959552298123252165224291433108409278823984656591961453252161330228482081004096046497627973877844875205256456279139941257537183999224712176704822392667488656985329768938803459052041173150570668437078563876654635793680529090651979794972086839360360662680997581113319664863984563966506364220562049091633378487012747650262666201387596311719057558623488988189448292597943834941169009737570471405822990240385935169318141738036710535996491055068770168771128973448752887760689181996550292022336551667781954345844477566771012648728683529602261780851354885792089129109383419188114651819738478324256143031001828416653058719437345464516274366153019224203971611959825090523848663936972028127158442275194833505419163793571925200855973539038577086861700996912145052263562266205152350830196506105270606681080197674972728704050284520705330931034475798553291024209026684568899272116542531728503251314312646640029503852363866512089189220048580132985609948696135317081156231240857900308700741144285895010395255813379936055947648535661897876061922823524177668755617633294810354092807397528891971495101215011028285837808075907387278122006816148462720848775987075095901202297863389100922702352797487734312936855450445509818459998774067216173986378265148694028625079096193241880834567443954923373324443976297515962462431914653187217849760409632635998810764648796211036750387093937059536071843993364878826069032326356032613360894673781368282641025123309615673888497248303419239861801513131821284716406104897205050326480529346648500529852796160219153582328480884668702604831968104048318913934339955475047257440538144849470742327111225230726706896149738165914075964414648669992008238648886357435893196103586232704468229395160711115803306345782588152563433284680063093342329680395642583939897804108098175137386187945361616193143601330520724201043343165733830256587786342318361912899340928555183118628858076692752655342685821767783466158448364669850317902117474589469131180831690513425507348240255277913007486545946613354108542754905075333454195922353538159947467588101439243043222403121608585807421499031273832336952406500450654205134779868929545339368226158355119357925324007389270755353804991239348828301381304879487917710514292685078167092684656243733226700422202182583573658934330192044423816746087427785594889098778078552271200327267538750302060041408586753389803036351946823385802382690519729246398020342018479640877305493995120981425868392792896045491619719036156267877550212745702388728953827040425041880157012751366537711078301210994444093609297433506969667791278860083019825394989571283406815520018790753921570953388051554894305523197197629984508932238607272790816361676495269331408352834653900756842137007495866370286802853482679832809805324540436545150028808648393935576492827484286121352658261132861440718312590361724845777015042905189052004329854697289409840352803429131102684860668641894890479737121749999714509176622744276410471686696076034118479804031784529484115125237231469297690310274489882110373514468386347532877911343018464765006005914024396171873312316668753969129625487481513059317635705127909311539659668920198534507275574052160255541686521330365487334924422500870483864338764907777416364104690928209371601621682686353613722572910701986714914492418691536028085816211095051328000002129573902547811923941875336608200821335561578418256980814674383527396216652812373665073152329315355343732652343830482430925022772918622594537202651692804475486071266185851635531198552589863464477427346572992195847738028210824702588978800822489248050087886895461571209759269984328178225648996984370964614027469951652550651666632744994805625784414046152555940949611554851487381889252837660896742783840645486900782090047831628395855767422814993918371767799030165337927870365269715096956452342070222807635580301414874834735542227141741173107589948951584382039472140663866768101234914549798158421474090445546097530337061878574220209921926519957419646152370192501186208899964335977433505893574535063225984054262821105751192540256310502882677020115485899931511035707009707420157386888483818463420048907666510452552395282995741972146035635140887652666521556641633360424014130368345891370716862711101831729885872675580776495828243900564345352125984989994819764171086527873534919712278135246034486428038606143875049666494635812264813832545710161731914997826621148259664914403183017216793095274701660529083972772786942578728647913049258892991990264055951013290055746164180447577948096989975718821285022925546620434563658922039312696747316151135099940844114038622705424485452130384286728691463430967517479433930881999386172615648182444228620823939163680665576049764459002579693230525134930312912036712744744508928901630921960522573190892017894836989837940201841258142952784192940210906042903908560536236563150986582470976727986176542881669340342559892612028600363025281560122104177564097385333114730373605645461485853371882682124270951583592988540853438151388857635008820672482134756808522117013551473639829429470651331918220484082889123171720241925267514381068332503547163979295091238556355679291112682993620479364202802778526478159988086127042954555515409211520814625221580085931417998561365929432572416773133960555940141543061243099062221093228241805716833624531668968435332555162625844514157549134096335166941083907458126438137304205300218029292735756599899189554367993037570596532487446440881664973424615208994619671986466543043069247092956524349113772449919723514455997476014257177778147521402284387360906536632795423201471334967611667398037588214383346298114323440864174380403145426117826512799927766587549334709122847466975844466728509059116116237335718916995552566700433051018808718563770564071200877042017636793161469846372094982606349700943923064519030750932537819846754693726457037929290579044945208417434637942898284929799478420681947618403623570768163805251490878317079744771346114652422677157913387375568262872101846850283227586651064096107284374786598957564283670177596826981015652976774776612896384477346166627096522260320142084669794347650130723772938139556122341627958892445763603511236956348677190980549921421241160678238003691128612327828970113262755727122497113490827893219276003390778650254576993172977157758208689350273294163045534559484361946814532143876194626519088636064422377171487988363253221237666270506392613333797549168237260449762810604890696109602871208845171006814053933170764219823757563720705040277031842509687602561213541061821372032214557032862938467879391325786433763389891989272271963396321230944967449283533205563745251744261458358736278647871477766044712624072367290051016290461350227184217910084433159250739858147692095322337012820548538792121354244151605812343610636727870355616131311068615966741704663781952780902033644483890201131233615343336551218078844349856648604293090050522677564742069463762022896622081198053183799242591304763383250112971551656600265717238976111857169260422627422052440037519346052456534226704441197848765806882783389365601556012590325725712759722979311468868066277091086344204844353924318177212083323349418651654791669467559569148095636398474570534880089340933994716516419862217123103487480792290232253731297508826911574050753368642276104514409357379965005397058183769982904890714215518292432907424649178693548555708234008519839746069345297054492646242924837577810282429897612674776953569441819512621459538817583118969558220108068746952600016080365126877424022906602879258472460161388519266933864122644764585556573808925198017618776977251231399186040751713429039725027932369125155499747724503781357751172894584575073574377667437203799904593322569414362877274496043951561834752366812081164244385905299522380672044464410889366862732177390570251837807952182919355278539674560807880290501952559286571425091562744293819690229069526758630059222906090838834551384763709738716095698290744703281279211330562744780426355514152320150628015701531236920164524855987669965001135671176347813716897704003721749079626712751148026100585879955798933696132639999066472839166070966401285435438470910031799294384157984252553328961654720354399107792355074108444938571328154136444559770174591619902689897737279772583472504682874020097807393832318684326867204217226798133518791015933702677366322306466649516306983695091397047233734872965350570500765035667315424413303408493708107404436197481889759320877390000825380835653262873666009769924292323607724886889725356257577301960508086683637843852091058321655369915140513875027623829082586764140715307552178892939642534544173754593991829485941201748179243944683071030787893966339166915808910479179662804769832968226556200904870834805340762613874157362804996913478335673985853331235516993455745123419394945915550526176694715104670663445437006843642403487083138917438126812928903948809317831069868512368661821134971979127265768355006255726148680647115290201132432599525614212668605505067745611633025375315173396716350228991813124631976882649158353565342688158357465306747043062986620986899115815189820522541629729865673421866038892029181632744507459452842655814929476412607872039582254694030431616655902618939819572659894787025177209633057161741424874383816404352827888842230597488383210797249393820846712665228407572617064384066942940537020877505625785115198087627898108453037904824073578620436789591238059692840012921554737687820285107469337805820929818740148626920192323305118518048733043381951771000985350835965073712952507303104677626389856409920950267178483632270153313549904228436403392108914377505842554183602571882823570083401320539486353451542124894334569482948268080615779977044570889559329167325967072147800727843600062375617027420942365798732989105758696465268193000350567190131626481066826890527764166729825401870790383760612216767794896380711176346680808748981428439470887727929975849931396467747934603571050301879849281126868483795480155021919921382688182707568462073700125367857065574622418496733950740613777580972754115752268478799533051499584161670739341472426624316747481037389655636920044357950324222949197203234784262924478992871744988917041264120526437029458449077457421087322301964982485718492068144271973936740556555406030953939820866798371040753405903145190063720032531098490377621815502271313610918276173037000318532757556797292979360054661805245233890300279142921755923334525125499719907484266571798574143410491480104103133365323049535884244170733680335048346012095445446602606969003536260723538762509409907109617459211704772351519515977464037102901180725747879583367642164180774398862866671596431118181627510577779206601666518519708078653746020522796029009584230537881991108631305341207115230579831384442860705138259614574648939712985536434936421373470423941326623667245486981592331378324588727413637439317993684793421687078263577953903524700783627317311557581224052811067680085556280262428389754829005465431555245357387976668067915777361183467077058757534148054193949722475591136302793384651365834528832383055270251078964620133568658680680790454913055255741665904631731774066904197564027484965096252458852140206892855846445739000636864282807571394630073823167220082034591458135032812498266357432683233599700908766682439507560505415884474074400020628454108532529876903611284850251499787859005533286630380197749325994563026480983601744952807229266088653010079023840790428378699653295767894092660052090207118383248117792769845963745028591543224768283294969097839889585913589477487882027248621666684279605802575985959094938268250980739929015476272969771727036610802956130362678430505068923967577458156598335941556908496156957572363550887408365855436018020621084962894905404277233274268120782562327276603359627049122416066266322696596024444378964627188569331251784937873347914099628828911477769649546928316807702739223920048612134086919185715534756731365886663770178999052594278435572509027324153886508603176585269287220818756255175435451591649075964627061794061494058293963738416348203222274991807857554880521871515295650772211390338633395141015154343187490241161577788820821675056042152175748209459589018129977609613460874464946986806392495462840352578174968002432027263955712316138570123287131275598692185513538122237064571642363488210510743461171426918337417849566654454437480098826884995901663118068111822971132396296184634887624216456959782847467883206731461733953954137922314806475917767704923212875947479867243985591552683834202189049285987138201223239712116581066310396059105268281029626129286700538904342371848823322529974511166291168216908759079011515102373055317938568648958267631360844939884729073853631018510705738241984114869301306035786078245473253900096605219410934834092461793296879473607072038788694728028567741263847135033830023260917901907723243309273794806448370482521333697747147977887048401226741625645844368983883263694970217585897920311211485926570740000145692085499280187877549062111745745354471766259322309847817693359472291148974848464232905348600590146843246072065220523855704810741568990315401743019255064623840725847551896148676878334087952290840964827440777175322510120092080635575389971442917000609718522697054151571537908268895811308778615693418294167758284340084352442416718760497898069297251320102985804806765503805100340098184294104368878728750623157854256837532591629038138151902318279702491457402849122456990446393228434805823143018269952289101272393526568597131227398563797845930747400434455490320091567037335082229908723319982717177916845946054326340253009762061512092592986419966997167772158086143732691975513600061372301128703058781200765424567102086320441550873665338670928015836305278561603667823101372061817745152120277062242084146262224876844349675885551886940651836229319733224972220564284938955165705025587939660013448994783972689742749785319716153418567377309294150631662203586213386826935880932991301970956462734108887829892256660645744953517963164039630108032616272067216191566798896246256153981571865059688441707985170764616031679536266019629713840983654766039737049757980928382318027819481454178705566107066578354632644088304898692156476343373406920393938334477898334172589750875881644587643096179646505821292724647358236771488553710201819518404630859698229488930896666152109753288899083081415039276790703280915181756590178798014526682836605313185612479686577058578162390788391592350922447516569893850343381866852688631506263380304025677930854373374176173197586251615911594902652678802850297189799871611023585058695363617401860478915381195882650687406865764230371950432600546217094059257114100803554634064619211340028114346996313742573929198000198207119965597197325282417170597340665525715059855158736575920824704961581218190365103849509912740379273415523175121339740458819162968292276421077546149340598274965988624970039166992169090569540146802701987526854032781884360149249616997424909699891374902867597408669268320118123624034993933880312381456480089501065241172337234686200127052228244086961788743899150862694788060189619184850624452319131141481176232073689860801688641345054954856023221761029767855439609602803842725147167359250656321627624167484779590444465235682845460003403447069547713746029256495933916694217215931241552150468288207651123839649854471396497486542239112698615400422122045180365683970887611530598190884900437612405440766311494523724375535360926708416135712226980270981858817156151562493295538995154096035658069332128813577491770346191253030155058026397402436323416675084862431077174019604681422465962643877111197567559336199385841218328498213247581882842175646824143621754069903588629533714759482021363834580677860717755858457951897973490510484359660344495728216938368653656965248957371856028165162468722542252004288922132673867987052939148289547334897758998285715279479127586070557359222991033606235861784652725736514121770815365564131510874226198456032179519235116607943171462844622009813962692578947025348117811306725954888759347089864422524690697655313159194173563154753504834491692607296023957822514704790700157073891625815095479385313371492223639848843289314345769929177322386994372698816617351370329573823900311245927367852366892379942790140184090257341711280966608029800454569835313595919642706965413633974751872954892691382417291417659779925692314052826238348827242910454078173144661564455984047567055229797467245575424353749954595168516886969336323318669505127667361430412329855132386383816733231023286605615922664992885047974061431273526192428314259490047274316574544252240244908074886794757723162429996971091515820026484741152875811989452575111325444897926104383436363909967959882661044327145836965414991577096599026920629359522108582107130408423897781475761514905551905830084819110570368776553406593928560794381970072319901240316769441305087379333039919327904356274760544788025273442157578746673899601113619541484215026781625813546317090985937773954705631380956124846414114241326127823912450266222254350240710106006336385961670624758482404439503585319544934138714702547722920232653037504336991835032488876988691042825507316875225628055612913422860494212550031050067046172351630497502253216333416534436496261167391290781121920247264769995835327529499252435762116467220210967740877038935482734149368757111575364707330607185393952573696411734801912800921236330040644640155396874365073991168436299563024395102119399646490212122819522941018712333729706455579053348312173240028645746497121636008615906813540249127968421621217844878091810544815063653070941335796299371819293417617119440519257389909605300918262260491223957190543480713962716523603071007855348967147016114473247680699938383988711900328152696918994932238069531310367796445149259343015496826403377945954132349273216018267747063819790316470143955596402959538013262260056281222177639945529280802669545670825031889633266763526423112396213442530003450814557103883233376818423334965357998824789355226793287883891383717029198148591996718723975631342760275388154041938003202811857392239233532109309853535583692483715409230938960997153096766202491210046007511815797840892253446300360262231239447418383123442291368855400510936137745044950221126804386442695720703008830052447853348587348878600087393648464335692179202879446500611754277286198530052467096292003629898997781334479801789837199776018439170382860166648926838112599196553396939951643149741622631715245955448074736462745600426885340462920333028820894503408850301403339145755065775295065615756082664716325928952870825798066138909929798076568235970723400729640268364937724291863614988822397958090577124099037900774861839839832675201428867559078629419961641255296137612590877076096162949433030309146565275230857149771065371390313021041369157962007407932900540708783972468504462049553384113960667913183847556342180763589525440072181641692111796416352937953325017947598281230852781463718789666382119227214052480993652034933397486120294163164284544839380553651257944702363967034730252418021836868273062086416487125832924562692278860009368874390726331628360537730028400472585420087818620533936604129828602058687865232343218099061658467649661137200998852879507882612358124920563668519996722098907494219775853477333172945422482456131896293005032539102431876386462114126317000238797049262660495678237669902576710792221042537922832797201989273550608436878587822294370430963724348451288781139236646581044797541935394594031482665672283102186630634898752944204578288752303485417101029649315345476161040277786918661929223146087607308081355697794147469416230165734002984036238457895476267679333623544700016896952237205071363301556363644720248975455811342364927571292863714775957107048000645188789107356650879882845556315268840742295289457349458300989217033419693289765528479461527772409562413754329723471137641913680918789147770365900384775937847161575992897700305945407717042881902721423097633022737793460037159045625281725361513314049863078595679135444195354658378264152459124146362260573487364953411412171880507966265458052473299114462526897887619426276184352491433797348759300742304079114349176208306163963121919107593398111268840211479659099379281642507139789399523385020433068998049980985408874482728531530472619211271011833626006951876090088956600303194552747323547713065175354146719389126085175273737688629325464032848366067085547887241685582231950865846826916628953357377656071532249411660246764834191094890706343071024463737881590264361891056476552844979981686608128829131258720773123437321834831899351000439242051508601924995066453900901090435833963555086557871835469701328317919164292024912374736613951023378716072155088344313511064170893296528572320383992972548765916846432814040857197357959995658846242588400239029266157510813217885884954028958765597559263449923138762025909599273283600191404704981324095974000553377075707014209761868993256768758771280114430559376841560955116887106802470668610425269508720221212065234021312144921470214227140131035062543439211918489251790911291920213001681574311236065259735337737109754336871221320062319920998492041776997067231625557145997429708050256335369798100827134928986036241865660651623252403341594778249243144081309453831055204366763215455913432241478404891908709854135760393232605382047375842530261400076015569180400709496081368283427695064663566873311871513361817949506820606850567373315787348337864447415831118386338253057535856576734645931119319944863064247063167343656903137836467739246926310758274893872340514337377554031567781331100344150849550466060043682755073423398593758303555428834106416544567969357114421285601211895992102857710951908594580292186656407508139224941541365472809661381055448744117906209129090857958739798471502986264924655318177811729482017611066388291843900532858262793025419368909920912039759748081984626472618468317231671935296490782773240229742653342602207984942719162727567218268296059950520468557989594489734664579972487143523948989075503870279945836448494140291923579395229851492494915951454708019984555868108669549580631536894623704705221876351146096486367547220444575317049528583899757116376836275975204938234108931054079166037974270812097684742473108318670208826112848175720812286310535489237499758768673746865675562562827989046784145076751937131091221309092603157189186418808168689137330449312746468178307717955517642553449168295427892123027308864270251654436104269009709212438636679158689669005961052591101472980614576781999152626441155116323097910753889960779930350486026264199493368208542886811815524024204343882683873380830327579888192322108930717189731490397228121910098492849768209434709754959020890700018760738403698877730383670611497567440188445271118491148408767675648912191392387170120123535768628539813959594215832850025490521060026178882607964855283281031607046157268784027634086138427587619853772822418265125447141828226835638999895850960886745768082189269510707007343333701001423711904699664359031582673789193272612338219977871309388136895003771951826725749926031799434191698846181493055719811528936932955767635394530597079256779843908408047859174130668684628439557606593953160905431533193775813007381002503996849171420773166574084758570137797155279243818588006459508555878218822644244363039553223976969344565912006024404317898714229138290343340306250554402566546510176510644211118075289783926170451155263091692286765328451749051625423378236729202354183558951392790365593825474058324136754128889132334548387033371013886141946837840076756338720539185174187491696672079437489182303490876252140503719608650641069377810123986580393049465740532217443392610846987146365894653325071114178908659025010811972879944924741889886650953577970892161564638207237767489405405497524968080639015990065121772986054630632281436297204331885582476488036393395547385315716482659352733445122073744476513564177472895052558182493220255847401108536581921228590339404034291528868931122145295911336679561649826556161704639114358228046610332454021278622265510826950697317112848437870468310135403234280915489424626444037992237751727590155901530670740281962074875035308785728221112402167198369632471204104510592980883105277181564586881350723753316025766103865704530031901886329068581732019829381192507414660249476192975611636255376008935914811513250697417695455986350412623142500154497144316235528506373885448782539264443209300538540114740357001891783172271876487138656539687144899699580865578692923279433608221305350182680154461164506099993532822776618727494555995490238905400675663417501231328649130647177596943497441768925101213604069497389651611740955541781123718068053477234569713258581084351552695629806509961207031554485007874142641430753046341890941707070597783807359118013562995898778170456960820319471855046764195987071108859544807062031976497203841164380396158896998434006662331611284279187101479833257736927261856910685756533398221114239825724704973895179461199313041941788636062588229703676569350545133895987390738152666838032711978264192227659069154273551184197840481613590092448501494168410931724809421154895591183945559543119532418643553542116582039208209188313183381317399004461174718881570647364248162219140745159023234751232434235737641463370219452637232970897660986594952195479211035404412871849430884754788379054703502387284776945970332274150820256158748848921848221304085544235011206081258172517295424111102360563983289827697043082755948734010890101276392862273602791817776407166507428301711922712619572294189761020160945592000069302136993257592677477524191085725253948221167216407065593018938317792779225740214608193087669035887913595428797452106967950255047048089716984977197571784631310833635539293827197824251149509914553652803831358363232082225286209339813453467280876689707610378475467596822335548243407329422978474623278544875076405419373661703630685893098865244557069616534008076542827420656485680826225071431169085815569014569896596940574360581708352486409127991335099853899884503254083551743978269726319098640092731009948312372346107285554050792140586412241200109752147935495332778503421647258762814895051850222780721819870239972011879133443422122993608186608959237261757718949095543917167626527611902347452494469487409345802142637680364815080175667800648949561050018393951837300257520655947440458483652696226211241110179262003162746855423414526742992566150998821800698884590902342772652915517470952928054741468880455892912013253125235885749179762635394525845720936991325557548678362339551797179612662379905187794885103685355240632342329050343819909373082565138971415186985445404097017205419097057645624538199014130298809484838814553188721887365763624178641922656441524073779646260766209001807558664949261308114055794147922539725434944572199414546397629346930777477527724607294533433757722126408694428775468698869573317372004654834588810548847087507150457231803903340803078601177310321748371336936979540063110255958203487449268914115836405847387192960702871284374090183712980996306263539432977906913057664467993676538827639894118620756288667420739169734199385678375329839652362213293647383963515183069820297614745967725041689740056309563671850135248936510505723663655144760286446793187245572706811911294094725018352626340285350110162374168638779495655269294903897500186750919238214422777197959851826646941648691018944003939225821568335299157108757787732797847929050228132886851566625015557545673572476888690180937735545525722607195498693483445476561002650386622624865810844428693561424921990219337958742657790317054699240486535529128969914478324009504344463883074628596164093798720340134104245743623553806396866944498727527222063205128152719419239262012184976467984888919774709225807574865811433627641538562048176602088306941380280255374528807122824531829342467792345184986131092289158460623393199462575760976485468797414583770305745760074233291544046824911540787278569979330359349202296450307032956573613286273254801439023072436997376327442666062644535032102455917657623325442756516970000686076292293535540206857782434909850322276715908183221348366178859303191550003281776514678029874085028825897344146940618071230212392884210861393127300369191375865908436849441080318076360872940142588258048875012531571033499978600541668030502637022380715964598548150177113831508371639265779447591115022707965539409344970407311474980266524680020921856744334989586966058385399249620176515471303495934196980353462878432958893566729690730436848393647575280969766344384203307702141878606344197953066438968349595849727841284387073986899523344919430300282629425985800369888430810180271225058613787204684876561376386802138275335256673995056015264229164687471421760277429382058190330848056024244110440861371073806682621614644456776026438110815791217216502953514138098551482154559749508620383413559846755762191383698073185096366429174854501491140199453302008163052281222990129317760434714460767529168929413516207170419509439628729805822094198611475224373343293430683371464331053760297300199217743813701026766656856222015615215750794407865778165131754085803727648751394217317384869880402057785679486470137894652018869439397249552632057925937944936089046980944014025001814019724806117159062510418696067984473496220025350467263985305218023051767510341779403377143420416787322480465569495796168086187783621129256547956046125462028973319426118424408018559600273776330659099284651753041668700855134205103455751094946564518296993277425997359442577756380329185943118212311590838516388243738462755816353495423896765897886877172368904802299718537697097311752541835456379609326892059808230861529297493637802001579459796055210513273229953894079629703083007801347247614938551277009900148035058787002428853968638364790924952939167839065448611634238612249515993424378087671788896643629296908539791575100489183549715056747609580551046421974560833038507724812174375524631898286437966282927012212410367599266728730334695852839001128248750913116307768681450268650571726674300418829946800616281095035182833672260267554896080427165466929066622461771798392693369021910679774329189028815707384042149764771972997954621406088938483029798183593488031304041852843193961599815054355667756824893791121771338704871173272645982048172556592207717257661118327792906077067991003046985202354330708899781078766252305019128852522200582960296933854561446110861844089393246867627710426791383095813007247315579028333461611035273986734022379547739224004235245863420355033109258393937814129884299470295979209180422476728520557092377159716444367363033765485300541899122013780442954311302316634602140736954110282831268742711601701374268496836997920662224454392709518243695541288461803001308839664664783424772213803301563432972520550622243393617895007453309257332120602264972264712551210805941623949249352177621684035828968553235383037102245135416219211996579015789815369010274182052229632968448465929395875439425311747141301975421018985646450355777537463409717870733935989232610442080723885766889053162488267109152284101541848845751810735957303428994539681054009925111274565442314635841641267350012884123098056147946812297157763692793686777069455125621203130892965731221198767686720071677842721750099867611812934965542254555187787019525102644500901830046265422948809469917954958295738462189524537249870144251683803324080886906741519611268447825009876303189910984174764857512175468211275803662911753079434871478904869997980128437064669774321180512164654568973358374289925146720705978321487378980545966577810725655175373523778503277266146285364282898339720728129090554318442879155583753887752104515794266502388759996793625742427405227133523801239906110944113338624408454676428481623960569443307061447834519654348885258219667710095403340121677796805098117011388071643281847107160144936079896873696945955882634808729351585908922948673699314883658285198546396653294008211230381492132514580287705834264557398074973421863569739396853710359034294876614157897772966826796655272970968469496553393344078967844207893784651954984386017684975454820466577870904782736362428888154397521085837627840177829439415533350696156319952661480760935620986195373101046391130826184429168721544622505490053438147936956163879377825861686687370730361700336600399476526825073358460156098007513005336697862196891786706517412923098099635562234317316344445721608828851622685511997357420671745974585377473563451340743879362769214914618217488499736437980421712029811900954721299224709323279876120132797171623101449204835181587105969489418277965684442616941599926974739497516105308067632101666084834359331633244392752600373558302831779406849516740965859105695405686292227560300366246545580041941137166007607967001763311823361460792464378177605150693530249847052162966312040249552486513841764758610954619745006912390356227212701367320397447618201226294738065941221092507501119766314796112027616823454416319049217620962619920945643618712575376538405517109776090589069819372129535004104203728679660516862607217926114233299941386812504291832784829266070132800617618792984940914416047365104982762591609263507811497807393443300659498140941696517194830694951989779893286075916199085478040500377690086872226527187252712986907303154714901610508055854878010976415653632516493913066099542918598128219779522970836626561283967318389170087726268292645724437866265143685105889261666237419642000797496708611068330253456881154262923299577513534727315469852876754984912384821139733827556599542574626369127706771499219005861863702088276190317864973794629670138856309743900805864998534240241300109299278502564966053408656067464130617463524134330775747233065882305316501726225407584429860768292818439016421480684556737569931394728187711587197980428103454541001695060580107788711627897182165395228926627045288118484636896355626814655629739797272862346751788239661564309069206129602742087968210269968699395942784633742030186901592733278935092094523927579923018495348623756447996131148638764043633290995223595093646342261912070439242684020921614236417928881278558209205341059459403728270634968719435432949810382216625944417696382493453357793021197201935467425499228902118319972100087037888816706538998720869805740619188042830217282176782525158672269610151088568646928726621425638316049362748368302678220377731506598245737713269751121392953744917707684636452128939298021708417006750313754174416632840148312893477411116850862939501368398925723173829735905191788417870647424447065419253864493736366108466848624554455930291994553837333024976602407146845912565295477853285118431497438644667266570738007534122591449239761457325558428462031094606406248446461336814260359153840681838214227577689123629945513671340666309510309332866741782059953188634755398036835339760146252506780129237927001855617648275454455329233056417984253869944977137478924834539768384907123163756738327615265737090083597363006952809838822262543405211269502677703129444915225937341430853693750513969792388180482652178837184642440540962131937815696571937202893038626102686753422142339477302117312964808507510529169504470097004394992208633366773804338854992487673888074952389972359005193144743207849468823735117346512439326277560155123066715835170756635206418952553407352390336160979407814428183388116977150082188446066311450733688867306049652503779537046061135007470769418505710788315785956236232759123437876177896468675619450643799512312435509268595353967397040635789836724212176972212649764180977195073327429097243789387447188540878349907903386038698661952760662778883921836372402629780107816214643469071925385984031972148324114110723173760494391480535821820693672177642059547992873296633257265007158043177316351600078975614440343201640956265971607234121659123659938972330196959669013212414024722492128060188453860535658724453343318097953082620071522918619605898914660653518035239723692842771495542429818210010126386786037186113073253253870383154265512008717451318702582867175108938513897943469002602857044961269426882118163012762939846064394999093203666557856968439814457580404689592640890815978000438619147718236007493754456501195110314750231041552583767638042008092691018576548850392749319447000451256222171142559718608164196235201801388026621217505099185416297374933668878075171515782309852216043054564852686082587964744029833456156983574885558777087664479697162072058053167511335536942916181689112485184188320497443160175247725128809621222311389528416557120167447131732316542688132785770912287443586231223268735413145467238458697360052213280667925421677522396761818352533452961129130429744694106905388255395408531189789254708062556084054143345765453267325690648609217923158744685279548328978365665454236412197487779775962105372209983777751763525683844885644278471006112073881159275621757840589716796912872213749939661632119701538955527394486580030312053990580889097251804811750013627831401065803871818704036133730321134927996852999701232895796797487272202517705992176309700687649756727365848054678439779629657722258915242219262436082239894142993622602994822594567424903798479101420396979757098678319848852111825462972130992294242843790574458867057493738641839843347633850121254141593583268765422490720400265684368857247379543519169001953035001666196067111089638536737344414007484689682930163922448275096756440352971291189635420583535714216133460925348435335195910861794922529270906912254285863352446405355763778406310998479442156718970731589330867375840094754135072492498821227339755019208821550830750944407121700094442529474006910579276920402314269289367060326594616626244167846613449335221537163634538661552018281188339217550039845707643676688279525788177968677740822351258331691556194734768256970481993509118637629505053778729203529626101366107497508613415555251362104563581897749371204127484787426855121433646649736331112579985346563311836744426641717299318495938641684533292666752625548253014726798685378643533969723984919961895543517180813748692612865982726717026540861129501762485956925844024173784285000397969357977171219040108324916353296529225961943734946339332240946839993003523861617687697416583405807762151472617535654960434040415849756517248318728313579014069123490345323714453312330810542085820420664072847664022111874829611850980663195343259496104804379608471001133082542293607471257030435957499300884982600426447934742101326519778685981815487647526195806117286614106227629887411597040883902256512219564919624229026985497368894286094102050122006328796480970183878384230531038006567732442644077969508746437486306980037270160775356185756862064323679759221820210944876538858033812674349922571632469843008769799469446205334068251837106511331676338852559152692960061164494363089423589868131729264101129497630006288303664723008584018912497625630766356884900939171992295357835226837587524983201441857319194493195965040194611278052840225139187603827856105660853604368241606305267599161915617838179929702061090136530156124066290751780449766730483337016716948719422650082982926222349730321840767889759557848215667417531182469801644528765370275941740322909567948007467647210925942444306003705764143616285078685391864425690287962985938175093970990821706919264170865229236265361702516337675691850625515854805895099099848356317309617027977086015299254457872931292804421395966714981379797195552615586227784076731438890577402166978833125836206352058293903729725915105264597641355897880063915933778916972234500097371805349840045106818092106103085289857123994708266689996878472695733255331735181633360160358033949455526848698038013128383762029707250723233841668838904167756272837857998300587097332644417706717183191128309352614539941925961736584344682824628537888509996507846807641462131776385296087971797613707555643589041162874046624793687325862822709699429740251767692069949438495439504657993778309878780615880602281436396597656789899526524613752825241222917535929257393075939019890200322847762383570048340490238247253833789755319964476451704956842697256326358101563749830553368402008716322225190682315455657664067478601634348521006546098291067746198281597827971272489396134418513627246846108560155741612981302473772178233910285144518025953508267935742809813624785141450707409758482032626195806114677672008663500530675781768187453631991919665868853721926829146740967582191929452155416605778992339529851121364731779179178218895624815139125795226175098131328164419738034413078343906189210203370899194422489665890340501551592740395344631982343814786348621641813262918886170230729404894468388871719101991663140992233902808489032960353365439922736729912872298742470075507076199537816231803125784718853184923140529501782216810789259544613866812771545166812191219901704467887962695259955193882075449907544361765635741611959412609615780706914175095779381755708833595648152345050576651340163513342569787176787693681831977286670574742019949013948100793922690980731281883856177579544817464707525898894283036141390941217786264646925447096995751596153760387965036369682199488196332416415323522289101618344380789365587564227255820458093685762608226695589074884739691991229229859244168877909059855288093537926125493356552997374042926309897735682351873196714221980223600407825750402054817621426877961968773810534597657397308769660853534776414603779079733144718744949030911167584357384697701185594045661402099299866377807510412637865823330093406222041279444593826276747365226385810576699961121924293430220673983017611303178879175123073831036206407340082652908658624994885913299657446746544744990701908159527115503336716221887992485333797933351313838509705071975152629837830814688220093539024514396664962393007148948355541370461497773563666256811937384341471838655590819892741334363493500471437033210062661348390081805681489927872290397217242777672978244567938064954952416831946765363838555066698133639428509864030710496267020457511288268069138000282286926946744547528879641488850710595063248318303923835488396385935902840055229888590600354919155735326113487533900779088395978969134444847328608776499598170423534776683511252076737836228467328434883860208868210236941328309887218417022717277166576206826954448024390505925192441274688862071507256626470590582144470815495702151705445563089261904736359510963146730459833786778196079578257775141240067422797894392618928650530831418086993665540296666625936798039511408538693476454038500487288313150485779503179423441747401581931315905128893790089368974294073785618342327691915203900643688471696532401478454026097539622735046958732183156729569551280411555970499429449948092725339781703337717317682417105062535434102145565181544872258663487119896700012412623167822340441479630683956664546720071782127353003761504066905109756259449030881464130105575841187693015611621146873614203290380926928293699903072562280760772615712829488507468436631491729068508417691683867156268302125239129851549233827396642158942148484570089277294198022284923322748604811660530992141528072917399229840617713104471905910549810282076334990974862658997786930474502580083638990809069105163788357976307975938373839467759712420507417893768600741412247836822501647246082423846711270450164497688340784525170638798958212560534136934221902164694096466146521765271502733355735107707418444470896331548777785026316108253598260236143108859698564470689189634667171451344540244990673359084531986958598321131138743453736854763387869736790223503869082675634216435439782778152740921383496244697049552398288898574955172786082283664900071190693018677349061296870701323279017675112830577559806694365795009305766119381669001773705238994942198225148116013657517264499802148100163720833424915805476073349124668440357858178908870832276913471523765993144905892652302772304896196293726680521855791260823282948334601323482969017042621143370183642174547692942874065216129989339722781282239505171978710810349333522174143837081384059880245720096288915625288688305014150034216716649938785852637479224533577272385520434362038807795205822458929025689121168127423177250591233615802341660596163512217357674783556042636856679721876220938768686746384145308471935071742242210500862554563954193196950182406457855358239684977874081212597090516115021454177946314652452840311618618383412949727601464849823126684472075969046202589255248630615275542863433730077476452179999380972737919017394436745820991361771949128704086661874800997237559540456026334930225144935241740758846840342158435554170752214688373724177608711174347870056563510167170913008742184721890634039829751527994655145530423235516161307270311946969589366324800773151150072298414099820726498104189935621367993011774454368476129123325765065198505337179118940785992372162122035709100540825566514997028494898009434198635116290233335387231480798364094597585616955547414918283443175647295954780778678379696042457024151646009776321470801688676681580734482260279262632057000925879675879751521023917270367603415829613009696428695642447439776313393611027996194915122723083612753031817257064859867247817808696533276860172324719180552434615316426114645566077049381123427347042616453898881684911814566659319675891017854264990795941331467881699083096914691031442885863547120058470343803380697451100016733514628839990198117085445972615240224581866818700136768777718783843513352143142301213994966512962966904803199149634932318294270095175929619217135015938480984392179246310092516903995640117547754655031255210896881852821707103425338213555773336624968534382674172667141683332208542601661558549086418847096685819560950741383674287654471026714336640393949832903878932509497357845169875668250368302002244857395268918113327930463295568444488513257185321120987121694567210069671887821316583430367352298738116760124961919269139764226531587399206830673891485378339992202098958314731631293560809334738071704307244772493379247379449215539290301232340211186015809277044079562660384627716465517334276466011141932782575747915533010682210770469584877083501641470962924141574766339345459925185086329570633275420891048672316236251196022296816865709077113753283161556264959474604321954953869320803696565142641145460923654651076615852420667612451785594723140838906304227822300096462634558218459239255762239758971238384963340101866742496698676447653748085586024627442185325780481354549641142910969161120822177031676933289383742888300901215010451276608880635105915431341988573165450773748111803543178311962094803357908873241377948060886777795366029206104101307518663415148332423270575031303462721509811672934689096047466047898405497837087831449750015727015222215690113815874794227305844059733365858769960068273953584174588045255667479829620437189956919746086257922311343825781634372577654031840439054246814757285096992094441409235716517191339596789649615219697057672379964539912554595790425896554037053532727026546158321138367685340059149637107015378856413972337592119477322199668905191096098819496060798234781029829511422619118785695554357230242325477487048877127732059262573287329887734462685392671406455808195465437198198563154498455924488470889376476116537930800183733826477991358875212555948211697072842493204884089794252711858631196402654694521204961393598145368369468031232422966669622307788985419274058402704066770063741567686832487150107826379690443924812068910057685672685404548957405863165477659058104528252235492488646714914367675453944232521857206162230279452813437994111709629036345651481090682450053903231189399777995316995143086796585471137485498125711420821147081709254612757398400321788134195517101319545139241440231545122200347994723801523232323705907327935139945310990073429469829533198722494166756437100010476126721291586950339327542349583448539552212061680650214037356115710620672680852000588781929458367040980404385011839048254520846339096391986243080717385348922890379414103820067737647980754016589402164840953948994435146153050582528556959989396219818046645457127989299949711694711051674904196257753761853545128712732479195579926111329668413534774362067393957190715157352639098269065650312774389749005640980137314830040039497767584644429519225413742087232785155457348462712469379493492784604032176338786305428258893158415972177827480916352416966805524994079833711616098411699954549739382846303555103271219476293959467322078866669001856720060905390735000501209808591969958488669045418354575729862101282444744221408230536807952885043806647073595887146117102480805188403111805053876984056781660289140506039035659612888455427058352070164203760532182576777028914094256046256705054272477257694459611651713073669533589150774768464710740482318027925218681470552792581049659366612238882372409862077075580548572745231913839197555958613378966429741308977861943987891428652530776321817336532506044994199034838854847390507163208660094282235808146388119281509118709704374578746311220291512756751479741782978858668510312597713363250154265006598344430587321327303445467575426420243727646008327554303053699421115820706454282706672044487993228252026165995247488852037199980051133912557841914423985655100151469866476819675914220165633172241247324409597405150735017467968722231034454590257593664596740580015971276729670171889525207698846615022635664754414576046565734107723357492936342343666570442401669517567911068033508584620644594847153492854641630657158359050626545783170359945212454931748688167701347288466069315085319130687433880158271052957566696083411497882374387602553046937079338642711545857829539749182257027310632160894158773746592241335987115475133633548346113485220937477180165869343817959722050687654456813351091074703999644413056909864445142157712976561025255861106299463200069954037758997410110911618199777925112195440750755151363941028069214270871486803448633889621434459931776079474642693523042045895643151766388911855866715169809702365301852459532581699734903610255308497559068188094191588128305855043962004108763974367200844766477694127057757430262288020945405009876957380441114944670909765220423626420354464196174537997598239740103472431744228066188228127599133745087887382777911578459031953598906443944842749151935599146444527459072187898082916188306718472668201937343640927783322974302831044703625094959422369224617016856900445828246222764426321815099289478032290578261612973139179566902576597172159410426205569141335493025144521947072397130237418087355277569344722267088621389324526558454959891696775415434367005459715120453539620989239918369647008726534071107258077475189068601135170847785266022921745241492169229195953161437776237529759447786229183081666946621262336121922278582187338813180649912248213952930761982660716421175898775165483278547138341324575778472462737456910524731652866500640249692030874376069494616332869728876119007203221897697930445047649766867840335268265387606340044987909502739567105391734527307894333473731981377332735692480375851309593250636068642175311066985618061133553968328713997356218725292384192783554802847825946974486739518019857425108742199609034832873479562390903291942116909109148615310836670407352197474268084568530405749497420995228974547514895297921751598720296314901644533493746220955878077149425093343999707483912058889305450873282923664595178782841515016650223015517434607639139299810566970187631188820460793857224716857984863131819588006943587844053698405903204499054836731283290551262628732894143067507660514393154421176815704681518537426878164296015906453338573309991125188267694643294660247949702013177768839779873144804209468978734811738080128383202178675682137081600720803721372189115057927568617333825038453524265112982717413535354231835084192480869759200902892017394176185387621822924650268971930170165851140927696150984431141590802949874000719135824821210840235684334358354461068253273669612892848973168007251851732647569315235318809130214119861769339840735098972370439413978631183851692334732263449712155275940837379168158008580176395030603537998310078597921532007908176767496979966359608587228386355899163408608644604700922141021838472295967155608179601403153653622910216028345000443126700956678924835749619088808164208610037654923657762041962821568509544933373612665963147257496356079440271701850144938505759460660004251397410053184545172356381381638297427045420306564024431118170260480718484928149967560129937504038473417026030637117112269328381216665592592900303626500373130093904521024689527020907749655521293305504597615376122946399245176087988976415492767599358261847506592880542075487394381592820377125357214675807423229707561351889917858692678938642612898031363948700248056036832959541504925806358503999919220699429315575787586364137443887406941020338874608224323100813827048011183115272383305404039079299171596432960765610297089070737596582992444135704411970140149920316852178436105555766369435040403926292661289153831359110567925354078433921398670988184752848568638860726247273612623940643099092655754216414750256010503593075817581687706249269035487359064409458379649999728408026026212385433548524475846725048454148937094059320686210224035449900682420995320374131751962085811478740088342943288249686729981996450497793095425703723376943214360808627751010236734198701109718644236073960031457335903552850624999299021455064572193741177928781535398123885154830877013189601137168292695458178670471720355679030590457705385966592859422827852170367957755172857665729100467949981786517494954650222089828957513334416723980074694432340023570044140497813326497061148403782341813392457386581000906233156344892369036152129908409814379681941865243700580343128661099117943954803399861160166402013784662907410644192693598766690378198885624628606560798862299681802859888984976353586516170674393367373038963825391158682404746507757720841365774902076285089148573115470496036919146167954420155860242652731224451428573094962332980966646571000074310996812682640920285002566029484140678607929434872220345558143339064522624419201841646358685234681910203877055525891488837526101019450150271900863531241578040638710254081006129580899577037683246680820411666465573947316515264187612357629166101365746902506619391357514650096825001934782227901292032090398627584467768736235047009717746536471475360743644769282938175216278575413793458409357284486768808890661777310269126047538741539876976381084600968243663810814653890937227056776113691579204014121385297607899857298702400823037132131428787203043256590966708587587097624001526413918419240167530135967543430345770682487582068181246823041740316405327277307218682352160105604456537853233521751036538966734116754795669305621525772414328813850824443404387182178552105187172996324267286066431010627761040423995811435617166830096599750514489757251733700441716053842354698487046311103732609111934691101169905518028655245008907393939424847565703585265787560672940590459879536760486630789332051618999147656619370025751053841184424545229727018386890273374616617299915588181179677560866538968056597321928874451473655253090337497479099470287467450092687236130510185069919332792219114493460886178082281299706526048116295803402037188477237116419409153225558142515442849902339699895258171580429311447205777554027297729629312908532352664066343176915391023016398745944687368248326582667631660711951366343843577250376926886046805560731456376400213954129656442361829843472080749066432636951228831110660543203201503602389971639474057021335070964643852055714700865989395799789213595240484115779679646829736335580214139889667979181114372426916847620849132708742342777556672663033050739998395449871061210325593879925592233442903212119857286195039447944260267145271892283289267785521360639496834519986193034217481438987746599525775357905083931797703318574257329094515086090168871389232713680021410993660730456156179778579207335055667820937776344863133168689926394361446033935046072745083422236255051923809034691313547245891120841257049014022845958870712976863125091713033964488160576709085905594740334087781204434144182804998273331661158244244739032826866011885312482358992438394613810548485863478553291776436702754075465191411404394941832773189889141141925005855859330703724476517325908669689974740935858788319770820752493968472758225316157849804247277172662946517263644741980289918851586230098240807838101652182683731447727301970701764460474632753612645407261102963159274399614016553084253995245156359792908986299689970634512209284383838051600609075484643260933726898661168971495798055531566273635380215018864225683409845483035620719052795276733297146769622563049240604887905630009218283725072962751551044984044784671560409738814611282426549523909945616515782982099708764055575760719351837732777490284359331733523810414507008367361045505282324255319489448878342568001271802020097872204489202600988394979274475784804631690531539488317347486100303003841425810166192092789579260023419243096373806971577452140430236672753082406968360217940255493437678765447458747073710145668819294381906202881591906117009853427058010081598163311739450209416876347264195700590956237679939103256701094686266243221095322054583581617871450179440539778926477459786994195605984160783611477791685042322420854386901090495868625975091972727239624195708340541383290344865195534415867982758097091451209555822123509347335028301265013151811273232121240870377592461512158525839552256567793879645713071553988797540156503649579427350769158890602560842338173672083244372246233335544466854195522113151006796033019805009033993642523494190296402942240993897601780022490093388581248559210866163077704792895482377839326486621949838166559311422214159860414268293554931702578409368038360812168008750381977151062819796832005873839603470188511170277154485586489491113791537202408826375191337800087009965432652134486147683874124863548388031615772453373003676415330717049635719952117017732265650462697279081867999431488733100370090678622768961322478279686464360466049758121137075231303995552383918638359864352288383946341133144135803322898851004845857279478472263925943827311529197564328700786078587294029402471153495820730094471574337085428458653736084201747042052505866496905949329097104006303190400460850377553086354809502528735209744715714657445577320889793262014275841976131926006150787904401441702071288928529284637612581329662528914351948486832682103277454316402007505775867081226021824390857488964097320413106543055956159917914578076884320687130944277154850943677768854858163417423097103903091494655712129836494349064625182179965356010640573852139281336340021930481301251754562431935777699894393467405805833848249330945765725469157842172793332104961071264045210498706216728567914460554190903652244535127521311254603968183452623810464028797752206698978958862444973734656975259082980043016243804003847538328476818488658593779211707119093964981602988751798618728657703328641913087506415025574490625080549191670211459640485068716644215333477086301624873196251997589786639637298762317714245096486965342862690028622541456866969357927779768745057538039597842849889281627590751327246533963181067227751720114767126912643908054967340644377243480421349595134473790963316508792809884931868224707625810011422663130547720988095702875384695622207614760585420680126187038027199468598494494835870676506480558505080984748808458793682002711431457612880583235013205675953699521219461305080963269644984959994953710721594605055453863880086435585228714638293875244732193026786024776945372273341936703273114673250115098840216909439360062545850240011188820988628919420267498953824641009333951852690287703503983573037803278803928218849898888509331077938408802438494273573558936811749977724226106527569468268908453348999183967012505925036326952715440828508505739438442080379991060226879136833367756147449854410323673445891281462652891185525910947852531528815593453279881927530080937444315394776369245297880380569266546117366369895165384241926447296251942770551866559158298427226144321930266503551390824312563780520009737602474270843548431487994899297419875453796164230837451412842654900613448228128593033697899503034683982356418594630274109587389226095458213505926240908926361514362603246950279347991046095496212836052733293808343971787015255776504017916155326772568803310797420313990964113989476055792781318332942640356555285321311916673917321127779974906977996460504875538076188283049054978339594023360557972896186136358148119939649911545539936101158390118049119389243597229444698269480069495238285901885632700372263786781394165345088992785106064563242654339583977226071642820738130640752596604770624094241097095978771550511216731462135616231846028851189200124154792457970522642463511090463000345878065897582523819180013453694242677603595863193359537954670020921488668108187801916164784346500395171608283596784358805642492049566443667972090937867426975289114013367834518685683161075941180578985851221027578662106367679396455892711349449143120503345418116569029961836666825525202284253839900683325907006333625645700737839995046080032113898110364329463580519501957074495547917250139621766995269378931399118900054828863883402634436444983358317131422938954748886987524067323055885405576109861679227594505347587816030452922222599357320434486146479781619857814046298264125788828799593229761817247330206599798746023673186817591997663209056823540967541602173350125446247274008618086677476358418878158885421816872727459909897562381537259745700613480642543294938004010029850518185608665833743598840316869314583090811608365121219250072441584276779954907810202143162801126733355839717741247762178568977057699190241764109780572689493785623172835156930580450639032881315981915280243156017263267592706446689234751272488950545556088002427881865280563941402964046093279882368614952959926266453017640994579439223130991546633898707787887287389243887004629283258763782635353063741975433059063155414905084745322768090270172624506546086078409282076559791304336554276383916854720646143495800010926653938249300893891243767652272762180308657034551011638988082128149936216941128091335156610580728065183186269980996009726857380605287611098382922847220870868525968996529773918907963077674778520025822231523227472633522579014784021227329120852608967404609301387143804066412634553159431192356015105278054817579796849496571666765705840849186695381742713748657855061037703344600079782186037769420022451417226038360534047388553499005397207981611818670996302988038943281549305928363182647494281592457438402230207976639537099337560792829275262249395087845675458218153879304921273476593755837516297443741844336255743281833110303984651119070953487353042126668015003919127376652646229120534721876603113806392864611664411701333729748006733570019680349241842080521568605644401479469060323505967186460026601933560450198035667515610959723332568445975363940510058939495751648759078964378295486018845169816458217383412093065870043648618504761652247942798168422007938688831244033065666139963855789485085257495361423556012922173731807771771362666932626957051145079723160877625014256640000851572987172657568690549582850738454745208597158543441789341975146783388005718222404100872243201288820968298810343882219124705326690578926877051565092528582894949496085113417560632445047945423134784538012544733709341334128519129241909252800994505496853180859020367707211626416010195539762893919501198455498866023193031716970013325199629663828925020575349856703765467229242707721987659592402675710520280236181437437064110437562567730809930887104435811808049608750445211471588804454628863541711587253915158264332007869974393687102520822793572696024251296150996730108780493595614797731071381599243608061570923303177312798939830307033166915825917535216737374594853846112056156916849248041771389575956440810058831623357210043397635594386666853133441990699841340757646293282428599026417061065614302824444477489116190995850992350092417472662144736212880795721625381477516871006603653813970567578107955977632270058084094957683663387303384023568402276332186683108584752250618153825024370102690433106203095451589039648930203578850680902299822651683318371317790906925383995377671691522094374923567818706816409479742221335389454955019157254505656595187216930048565582221859481364686678718332731678042891619798438393213506123508764672320696043476093512341614694283776377161196483228846962864794877608350552806787691917114900623204918086765698415240895844619193370335511213556343048107425224069010144035016658471883913569814491275023506299688095266005484987092005787776439303495676566370249581043036913833181086538851669148208845896163210129488015906064967640848338105192198885232312742732892879233377525991780861257049208940341295368594030888546960228237289057740907821627910003049868338290177288013263685852194885125376995017327646639989858047035148952519091917974899152115521189124228807044710584987253320035168558234044471422583148497714662259215750177698836965436538476400236522842458582191931517608643654318165622432812889623284598673738764556361679222760613980857378766209211471411971313718860295637519888908080582690300905418926563099843084026055017831286259802356357837082315447881230937812216502087061792958623464329226889875782188526131957671609612782791628486535265151836299775241358008437656579081065105807648046933829860075360235278302472147629941163029037165253636356551967067565169617394718849996244891984005330274855595255836180035747207535172703650355110452638498211061066647996687827441331292392626997439200736144772795390651705294017294500648970855517232354831392812359834485763898382869219022532420060420726565064044213641246674640625824654426715973720667781690851501916995300951950832529312385608173724328988123580089269678211323845493436211266800421023216989112253286940457179253262133867795223766248286897292312339346597507609312987107734474494461521264431205940350377862379050913607127660030915119339546744813384452444798498725345864621568673208722814971455528908363773971070115133801205332618695494351513257151984294033064738147279594313516963248349807656163580792899092244460377168199257297623833697499596074544205755913513588760364619215142015111564476572961521045052540809575758377307013422065009898942962532386625993094985672725283847411398208162718426762312888469008180096111762435007481734917836778516108199324467410474454014888928374765935269319831132071032002199406597431793633840936799150136457110928111503285592979269652280344471057059969519438051780312390757990460502489922336265182273384723001029303937034528182339212224785401226854798273865685741974412222146484880321843776948525892403658712297793260758832632095876814431309354438771757358319495655307858111767192557904086810770471716672605140425592091594722462194929314304220316329507354662744661534000065342355368160189492633260685753366876954065782905048818102468940979132672250237237035510410437081155221437444886099252561220688735288723236025009047339942642129352643641903009724040090305310768976582349198988156465033654300976692269725040158452778278186087764362219705297306281847728043108988164057514086159030828850686125040221861337761371714798329703711260508502326622647591447167872385674306273099539317364712538317039640069315882948689643746851477578114847267173062507720961722947299363257454256538605262275797737212001688704143489279273924025872195649225579796496193812659498940357585992335559581997532759609436286923297723315037023339228272666658793449341069452758878900605870600123964067306140489829086283080029342164925756843587436700212507209230059767582676381001702879265387688275436768135224011462797006439903591458021005341754509694940705084737597635410035168729193127398014750644437393936794778068033876187414087204501313487140159547420674962631966404084651639583878162776862221352607194986216446783285729708723980640124957846110743232681180136561364888780386137443893636411377353776275547585388092917028965075089726195344867125352435703551586683688740451364125329619783139314862194144958227445903002210093569922430729311828456927610628378514640592041354035659718969008700405462198015285141982118966426085544471194067794063624649648856909870072779489807119607436822736075372825633478956469462853319758911585217067203062518516383612902520268595852285123464145862967194868846586361635221941612196608836953719456206705739268371100517821424272336679018550899203389928913074464415171952024213776345604379000490635305599570757355098730640253572740674256136433788158764372985549088167677009215545505302799234633624324057853997042012740793178420952708702297642624818682396614339731671470310932922794147555310603925918243626584440551891273434089499287638528724071311991884756007997213205074984084131926635933731174515153060886324552635439562252789741925917156003850358520387329797976155513604623860109717189712672417412377387950194317811771107322342666866248598573704090316327806166409775918145222213096446517240018053957993718520914376438825480222974622003978162891856176086253127025773700026156008594392983008997991140981178693518116090870340863919142192587298564964877457283334942389997481564049044377479046093800089977708720832117967882910401555078981139235068496967634106128057468266672609302595261544100255318804756444177750801934592685856276385171903606372007108125602225302002187430913027971756229751622528409032885017395542950111417197649284606272624151540768828249565964291840202491801456450833291007049302462057975981593393365219917288679156685039471516344961622345889349156831766649442832041462090562821857428812835252287131533558259016982196475685420323686890263714949387806377505872372101800274423260859798324163153725027518054826808912145989022261792702298864076554568920115066541190069125854686664800803939460748384403876075684053728739203677218425828919769108528918841033671184940992198007234102677092770698067264496835444343634264176033447298761524167210406276179003259575926251193728448423422243061277672756170993154915891034425352333399933655336112616089127082813434966838130224634154547289653826879473273119238037106119503810168904286041229116682174309950330661054810639348987897158582987422188504266481590458475426374358249225380460607948919848757752663970393678293216076333321661753315252788222160476712046413751852596907238694515135325074488257243178546416293652251712034103891838559846160666016086604860938546159592270089875484690175105528923392023324735868112208443943525671930216878638745831797941851451978509505882688556545539351434212293871006875017045719113965992232054382846708180290977005783219874445950124018370585027150044059028870406386652455788913952776971435251977340120267447538649552534873688210734296762595205860777796011432650486720574365678333364169076831706404192356744527775791364100148896713011483809025926873862633478529260855164049819309156197303059241711010146909915743467107335613725105683154350256741958923381862956132083639931304883619508754881226448228841603845727277326623527357916417358334006197403179522088893493639186311290240060062801634713965845467780316037548120833366663201990478532658380799960826731432936096640499095047194959180328880587122995992494703759020828752361910239234006170051456256224119970496629852327216253434866052393405442184725320420288563186319084902377860463178812809105182115527536410372465901458616443763628587869383484013054718571720870926897782267389911838346985460669488040520500561621666133869948917490113859816114333384723395252041461744438441174584752867512171606526665931369086399102884233862963966650586452463368350593771250622776892155807636704047365885277418775090450245707891150965874427956842222399699067800124669415199470887269291383768409123103877320583917994723746653935760778463711212964858766927264385534755738333155258057257698358310311905209083596564453219997729345810286868604494606636273691478583528543462820374539352927873201933676156527078184077810187241892977711002944286628742580221340656921132101690788855674117491074215721973718597206489430082689555800386458899900360397109584039816589760970445080248696092071537390126671666432850508213892466704335564452214648138486662050119159217225593948124902183222493264221452892400456217979587381266254889778173348148729220253544812577706982548318724126135357907458846311342038423168477609933184226932796905226288472213498757068165695029142049722194117964770154077782510479993242334416492485509837011871860823458489552495449016127904369430606707065938112000675864368965170294200968530508164123373247265519961131087409124012166765577855101374739604489396198195028982945952278260354535337643133091808401526258360756015298196439583124317941000990996600737855807987567820166005846730578075407706589547341040597128874455233536510001409527014683068345209262897749997275548143237305707637156309045874044442866360273226453880290871598004217669633516429567819092456013367905678801934463421417013728969582924841894776464678424229025833483354312512417284207327672583194368977135872476587441408009022081257300312733941757850434339129538308234251061031139478167999735013224835249743179216971180728733759586049879792298958660082407652573571098183360281467866096080069422257260327641393892257812556107693066778669329552527979959934683677721842438909641555617500414539865496849982380369472728541599252380040177659812671948073404860419885192401649665204579981593525690585695932802362664011489579044442329570975757406067558568175570026844428590966372046755608159030892434185986812752705610077016141020353819528795736073024607000251042160767124653436463123603875480490295115566152281698899754047077893567134537952743890832975135067491288142817964313115681708661902288717067204024518658287464774709689901646093625078186240357920289354277712062881170578260057905407995655362915281454407367532108232532618943850776165229116742447160277120754173772660905496658369418888454485954010801976676748890172412965141737166501666947259714409848756115358471683649356201095291757437503369339544802927396908804378300201416344264133405937338850180601951556013104608310668298091844283555187005339520214941535534147680953629488026218566297871202450623638169561274786918491676989624033179531633530544623559049730418362185283085469804443885199342522103865762421757863650989538371517726105571988003357877157589585647866627935764968256866913641409478910839355613213886517896078349979214056790005638513579228343000866515523462305804052854805191036798877111052565621654149979415605109032784306065361861892769954127955218567620540692094463041883189401802342550487890632807757101093071096678889480707879426473332514951666735484020360947292233727654872325440058222734296923983781565336478538743105879837391524752923410972221663589388021136772809378603820303752166302129945832277739218849857043311866769091320465593808291212383554349280810859532612940982529610547355850197394609496833541666010256635526701184447421271079662742763263926988844196043495148928884196778036864602770885280626626149477650622243553669921972804646805709199705744271422719674447241863459306244575194945373699703892227101289881068493751633156154566750479271349015238976076179509786894813979984371488662536264833061602644199296776734442923240031143098555584698992706617356630709837523311402291446434443477204018169014030102711397684670510998822321541577898932128330894230528772844893788096182092756927448615558255321166960944845907482268956804610305861571768067798751838531220965901530925089236652858413552917602928005106203889138106403919938144257059150771250498462739991700055280230487094302937905195928737154188006066352255536821122473770636226284951157924332660382211969083239472175333565893977469531771691945123860523185712224892515513868267160079076094248012569688407088196122826235496297643757578261927945495714169248314605491054570178420616806957026399439833698288233517374339262812758014119118492065693595393551417592235940765443017916454485134623251886581358002643146435180324830072531111876050754167566614033357840432718196680454742893276741512373487791333239357572120760629406456657542002763007260915312514527413736385484290950473554982642799562416345772361829448381858444514958360731493788167718700305830012314915064707515340643913407011786075270849499455153899712502306259050361630902652676216024770199319633084682662095416438337944625451764317065214294872571609964398497134500059233757902222185105882039327255590937188281405908055043152501159596800954023839132185187251109341552806867120323303064765555675162154292691692766746926521631983937327688052268592601930239101476894890342201699350728629761808873034619082304811575618840199009879120505003868190127076159479505730354169784237956340877620702650773549045597423593323035739692189175612676378502973633746036918090981309021278126805232025155374122824983823288146149020038182455602437879688210827351860767163389126168085602880201373166821353654247128167270071324789639697290748866531407044221721133419433540843568840770889791249053310660958637297540239409279288940001035866023125189878983986085953576433361506865119785866311379205991411222632056528217015454925394314275981224561000111003179658060888214495452984720872372654240832990991376454499964326975762806021572698269395992227567878362336154291121079361916842727270357312319752121635317487166964953179264821616776226335900643236659368690094620247254671350418469448765711154101089255350273270098692701453487923103286736561618712068304861321740034570797618465977358584251566480289488209025749384737105598553763999721839267009371784835842645005879282443926050151632852414257606190503100045465186257876982098469613593755094777260966404172646959149222247506881591217465917352052176149436409563894549572980658989143406943878779069737694993073573741761525924967452654335885585640295676781593867820292881103148180646620195097757586458792385101013390141569190770650609398457799734492356881098066082493923086028422309777665540192734851099194875365159307717002846889502995469369712811159031872435432583227719318499565800834927586191185468194325458822938417910490707161026965199393797245252093269860964673364738778109203549786433416033767324136659748202838598382521343853272132883103755754895231731674839126061722013582342684798880529395789869026082138990951608246322209550511659527377908912537838364985494541359018963884961199023151634736010022718504500337980055935890836832531036807791526928556439432483410126089495748362032094967565878627532432242687261648499797058778928925617441820906033229926512347942102512020393767534129614944410346412060338252297783158500387088606979406011445344063797710630851244403479044744012778766556840307389341013022529625382719188437483790979777689395140840949655300433503214275356582025930248094071928776347854080856289372837048517422691562990928610171896352590196118244415766723050218254398678133277590710557190357860459514134602297600291671775486337112947960722012622343466487889452966921983714198703551337072480165097445067328881782240258650147494404029947585267900682337537239167891729293367244269119443627562320862131104830728065998678194402300603486526596775253702156683051776295052006128868751957864533105725707424832075703566539154073500692165443211004491965148468233950741634817414784595208587910307327115440793571978706584321267288041530260091140072904619767934660401160454636461204087398037819689735036191133110445625613912744692072964754160433954383635196077642264425791385023272893951077248929997852323346256016616838636161786921270330944087968782953726083887032395169938718707728531447680132156683850264821550739183537097590378581469391385418420892380946379816065823322220176423677500000958798154941955785479920760144647695042054272588576739356324704199759421094371194343730070092456719362122290775107288068088983972493529054603492715146182441076951346848044275535861772497120181337436504667540459257297501964474105557878135751928168246561578258987726990216858942856326836288923674460270945732602997708077993211626472281469638792232235459240455910923838509880574148057245100510712569414443181907887290639821881741386728585970879730979916216604414672443421373947605342989072236001254421384927803729818090058932380654551431144888252102267383354494806567791590412614656822235242732469048808024317096841446424949664785273669643227289428409944734333865899190263639691583570602393190916685433646990717870901311920932145408334736284851344698195277565509893663244525088797633848047781585026231392969835094722721404395977946585805305290431606635336872193059581911869076644559061052606576968602734437948013297587869607423735306486019344000993671245459797875486724052508777746882321785324808130175366558463033874642534100587220405833692713848449079592603048326247608768240599362392334121831560964126381436142672880721106932893111263050206194201180367619798304157421200635060194264318412319630208284539924694250116963538073764409289888183469035760136805000875994504729548942815003792818491877358540761655734000222014298406764091086511098808529422703385903181197907342731367921628919908683237045077399619872365754511157476005985201130928780417691531664010675770415566712037327272494778143398856504118666261511237789470845494272434187345798160968315740845629029605531631688018477629823857572368718064750750367072664813058713278414280316166280147625554637922581093267010485175809815288746127978747563079201986740687850861280994475303961836553975412047994332834160020849152347197862078374709054916305705235341527311944101795955668113081473713708368106206126141365587189698995129613630840412562671250671547866482908179171495381489138133967338082856661905980791816002957127828434762732062442187785023252591895947556511119798379079105133127454904059467347229813828203082702338735612155424200597978878587751932275805151453761175585557582655625978772076824703460940082471840196911656798591641445598834482553627952482230132834922019587999968531467567846354987361115919296976156240120346355364018654001124312504792752162002061817589860380928414802298268139256115044733069510964101057975753686272533673428525500911342521082963187889754337634442949460862041342596402050031072742709150394528206105247796775020181129300330768449451082571853646317868080683444872072539368883248514913341079939978065310308746350880566062822087339245884076647515734680843119564532817965767755710255548463804016634635090041983105819893065127739976347636528082406421030498202379240215680996482651942618244415268698669455651592240300926686816269079102264225684420666571838720483972261558702992009302161842076164291067755559917316570221531078580875834647605860165134778596386092714397388538804447054886790527281075162329291928976962692155004566994814863126564129697437420068011346887283478621459617841541994908647172985674730706143980773717788098797494110776701918705317790861892484567168720207597591067540454952313167252053305220325240794951323350618579314702236946221523075216085522630692057734022358353706957897010373135585927663461055932685487279902155359002914206222955117454279077132866002699513277782731264281213726633905543492392523859497719247908546910559384239562577161794545606905246072419892323566257408316076661477924722155946677074929640101403731296409390345452670105770409279733866344119660976953564616864565638098863442508078692577898596449594883428120028786440621164036818642420666956506523421055572352325972433597690763112733918800776525859030217968460762852749080232374401123048035652610017086651890698446974517197716268760026907541153685312687256454323255732665808742590375722363913631904259746179444235933863233995901921711127469791020642736212838768387665247008638695489738570190816934866710061364278020971151655579411148817549098142235709875099777008761905648201402436272202617773788031643481428375663152381048970354611262214894624218302003715713050523569853977029348552556830726952421286393049790545211096894111041257716501694932241243454504215685280692675934550488460076879352141988617700674643418240242337089681051503139467770978936494928955863501397806462167995657080384358738656799599381915580242930373460472543678298409408901627216716400714382470880989526654860375851875783764108047007007845961211239316978149340467956356324800155973609868157829801640438085547785491637776097885968700650387186623635512215672475833949051968306186626080264414196369769844786512207848190252404679600117841276003022640650672872133703893025494219646986837189217503153595260617172396838738736042037580505369531994600259919085238887291167298342166163101358641573185254588945032294931392638781741911274288185014527995331490594465306728983695384204926606173688234601245487350026308760921947500589271515599968294041727889898091281741744750339253819610369908700593572165960660532274838780895096523186837975027814543176828793938550366053262642650584321189487952487590326874644121714616132101400754291529503026761015407106395661309065565269983499386424771708601264021663080077568639099576337798068443748350202068787648142882361512060801374857048850728746732431846080118318457968942193541167849667317540495795311577834223389689129706266334664506253014556205943511607621502536681443322935011783161133100682224588519120716881543088778630117744519677065395560759383092033273394211291009856205357125839512579180698320297082400790530795917219200847652414126963939076075927277601610911937225682713628693062433048032743052942947703751680146883317165487229190772617693175340506663829068230110769786198372014742521504185977342277544852167865961553927794242639875126629205658924935049171271556049716010710958591420181378259490278737943337863999656747808413773316931000903490173993850937071811982270337044210422142691857003391330806562025357578770158538442714299345150951031325629281737798403955118728570233248585534985540008638775506120785253914427393539140937270639182346694149513750853063578472826194900340798577588789651462774649028030415229903051287494108980733363538885589731498510645309113426885481239864791720708366386905191815010204085796644735960353840656812884811012051556083596452051365270999568503062580687582114008181357899419426720113302543225407622474787897958659418334635563826519147626323619963509208488563934738837698867633031010460155234323150204035954799826432242385878562521260016385792002687737055112464479625951795090986522888466113190709882045716409947431179851279484912783429499796316687763978634741675468275936479392287857494430489187678856225649714623599513115200980953666122776374076501595936129515196776508572553998506136434355351259481386586568387917030363516941791588160802361164408310197295801894539302937952419734175429448660459267635426166802498774339902122688956541998582961936642304417416838009614569218166824874669590329620645385180557704236866666284432329277652567818967952638540697757427656595919994257247929228966633377872659266105926359621204478857573537359103224446844700024239840265377630585722874879255005363443460893289530153927797806389548323454386893853103287222750269740302739720609562844351834944904381187538664051256507464732988031544333339487297214933841370483814502717958633618239441426885970934186361752447118226922156040041496215489636186939997928476551444183581056918980230837928917179099085779685902682389818049941337567537145571895959381130857510669610914371747820300970906495576165609696158733717240329402228982597190398487456793546100829486665242670414957255610166652598726747923750657316907299859750146643858883897521419850314978263917987347177394836852563717845177747668854540169618416882490650771465340644776767025571814134942641556836456806832090418631416995422663509211464759439042837148507939630012611504855981583155840297390029421727595234492638520001596351428027787616519488820854987578664250284808670559599897049472291188804586851345836063830173728150458718954179088245450386715567745719995856366103984313232712302927532682702024610304713014259953515819453651154603113478288625637102922628497691894510305968223176287647915258473245859945232695032435389033232077804086977727285387946659610818847999882616369509560446975152968662505548610027922735747082839575977969167992993531993460089107611281386065749683568023209556422256734907224536545016120521552849491781957120833185694272406127399920982650634469394555714692760989303821356434296067052205415808831637618556499693329154132110858749159806516515820310994093049148578165226385455908252243179351213753862867616087122979228950254647540245529960038214521985561193026936296328496126927631349818147843028726074554987373055512523712079888519080359074733061400277119073067623884545397174818772605105747207485993318424340417520745386301911738212941039900376825792992591266609886021845324102187527306079075816599710949667854371293928334221073235147625079871958453180495018997238268011991209175555126753639135188628944880002433019341299149449921968190946505970817837250801432012499937171403844379996779443482523268197043337858391075924791933671802338578023266276016982053672145358695339155315815295432958039317761992483914442161567017867725738502002789813343521831755941471618742214378773451082286946658676269333291978617496878658880342913520143017119081185452734857607968242985275568053119009731482893641999705632325943532793790670316690575994859113730610076028474324808247504814961971416287544340531062890554997977287487548798865181261124923263242557919285544328766457091371558025987191689130665073086345194653971769496430982291687743688745614806363187432853550740869271455281252050207137921793400756317622619023705284084049306159044615069502337170584518831636914947223064932941310133300253024641728162404227574879428424177072721747566382786206936304664230518586224000389857933997077763778009219459192337608422611854284956985420327229341043561404760834876694862099279900149687906728092305537742807046524041327845591790778065343027938956624418552137009768518570843181626439299187132978530797076866174401998480308874795948498359237447251140381685011587956094003007473622730573253758433691678068800171550427461800342445553380059672183779467862247178630188725398861821017963446028995495920065101140959933454424980783901842621662620073772407943016533065632057748543359780183411261029597273098406245348438706540013562212018980844074565276062345022597475165699429524149536999307726378673296789547079219697221420877014898539553017853307456184849809759932090887081012590185057084662903885484244155988610752478332599000550540323614578182864819087590699609207399234908017047118178273066092250957378896498357369479879995924335969979536994692699643968973394980437871849239292728753830067747192709797892384617208607423002677731527676909623160810031688653549155637891301246457052148054685948872594146347790476252755139419183371577747246598236673170187230766821104932893429409321414220193986366812381221668296370399996259146962317901193008858097582040002841141485139356016071033121702113716320086273632906890424112870713798942757305052283635538280793476874786777187131854230765473897520623225793923503076224798165523008850508799042545660842823563982986549979916110870177645970724438408514241298606073357708015670805020518946263113498856262356679430310907608499445617769391594435360208311341683462252224390552937708349116538108865525977200272145730070284811213629889415142380047494691338969379979063079648603227248920144667348350188079931007941345414450451716372161872695017549147059650864713660736731923379217669539233069847058465289803174049960137581950324451715452397243139079230162423223042480115067406467980655429174577093591366404310131992705679913811833326107924393689793401794867989166056935995288955825567651517466142302446239889444442646103743708875834865098781227372209809965871600792085555835471528852490346929971587618168688676337598110391848702612920962553422554050859336353895398545861823034769629794223029854357737339745567396191501183966246544620458240760680063406899399771107016766563331710592625586357432792065073814443347481152790759283271257542363522222975001364371756169326612319277020403894705545649906473998243948295085882851325775178446868866381235484484749600490363102731077666513924935459420766578633070439826641022105727327432926539380755444462124894318287343424596048197418937382026060677362409849464582500041863475634531389969446972075137540071100618654578887119029864948756210972270460294206910452404733182076883946395944930599444204857362916716278951322801133034203991615250343770810574890640915855693689446531025173297928050140267453929511559956617921746155757171934014997831230152449648764386986708230124731938374283431792436390476701676888425672430901069124681605257872586448343085085053886369700081408731162198071882245049024958519776526750627514588367610061565488668051103359992621069463619930171365739701045396438193061108203098044950313616524381708921916245024959678883029974421179976799352380335420114853608166226109900181487723560644412204459646151192484936168868827056482272274748718822034327373535937417367367460004207441862998416768907569579531634111808789998628343797715806279143001859770734966259841775245801536684346883111938895222140285434040853405952471069452459888357549768870510024204846051871712946465228771958415512544708207486972220624577761487470637394620537727516229562513561644149516843491508127548644033093654498178372633162812652375223322529584872698295137334032848264910256420611511494361621297675658254454536745056190034257024125754729811876932957234348271793626396637294506074168476741571519435281445110509129894642635058471481016671661022265608777523626956771451157878970987713477983474028304121217206971724326533258986862874112114278191721814977213880284912051439184379775773074369524058462744350530554388273684184724616114618855054055644508063806598736561065998758570094341310364551264617966162832801157066888325425791284439642357921792981549342924171973676640842676409213273843552236151687609257474501851534899294827017320865668093570767611723325918637563488935052046792894699197417263620536375414240801611942723804830419642338921395724165228877221308399780005395848629316928474657276802445464985665322065675717630915570248757570338288825732408558641663609079873965237735821090914258478039184212687331250069795562827845849743806732775914389305677218445235160478585367535492185503171657738863929088935667148182589455783397699682504794730824449910205169460406680465579776582322374425624714050079506270851465517695731146839376254698093503362156314411134319285883369970757140143111874414468142934429977957670987937863475476762451312114535709237778579805094892329661992236356287356894513498791245014881241700255625521280466403967050986410271558932981016857973366376231388566224305152987880172282212261823037081279845636820222564655262041699056361547066120637600330113787870385716332416454764867197878107399441741831295252120009435438800995742051068843827692958042389923851806455906170695608365409575463057325478325960926362683042509867356679675971113019154391864857965471036931528348113707779708438073359255175355596542365108223437582542117287701499758041516991127216844663496270767213234780694671379770541203452784194584273407303423885401978552777261376452857313234113865577498088553756670545869719086010443929175361944398488626054726207460179499211758727245003923713679890410324112723973813722939527863250124906032941760773665740975559809906338993733974999003165308537634923240580186241266956580995987341426479948775326641881977183722961078116780737623808921928637226300001828087110424998060445551702267107548205431081218475484561682625482636400547154347505659764633677660106317072911779187154061839960703510862359415299270739385286046172443215757401627042389647680474829534215913165730137810485027114179151562768221537197334344156068179263416922104683000253816989981854250357475467841514835800194172248926095414566949513994051938749116992116262454509553394115818167837727314138746348820076133893465565184206125492214088086269843388573798027700133239380398223838715375487526269336322842858140073358002799837379713964997784585366343340665150465955650976375021721292431744090307703762831036840341560803830940151555841039616537550181096957458836863819521745402067723141594082490270901347293567391556870225006139263009064116686169604825306586065257093445035528248920272057409350665196765534831539906871422139902561911670261898672357020003642900218267340709313948240218417970212886279930591285823798620239261906735550278773520943078710563315672161796492386323163092518704078383486156105779766588822807313355884880216895522932279037164769713300227844269842582030153631519621062652645837654584819376762992296836147138932079162746107874636665953578645248418899789688322835463213265414769097926084055856311447510924542807328724974079307191140797671094276201078780937295310846106420763942996297481527742823860752687188900270891480270123933934540202783949963693919564658582151597192614062406159252893684781001665075339403018229214276944043687196241787450473516131040043225734914224304819935898930686387623301543932917783433618995912629929734027338447573121269573078473797180467159059485952076866609488789067193288124928826201156293943870263514421431768614555008195534629292131225050452520010263188575128155595574083546341349855030309682676424602913653106761037622969017660222671162464794339419918834761213937773189802380876352753839484315313411022312453434197740223211083177090635555012549364312775446301842673718296711658770099074671527651411326481007290997678217674570892342518500736207250999966482430732530760336738636719954693485599394055127672436005261437894006566159362707993928651705249666819179626418716549131916518921835001535523130424205734630591337052657076357252996772328025696679620358585012910868104374106885918107364567140124521801436231644114930786979748627431239741920725742944698813137096319531457850058214584911852919340076912768502245490034534354823687789733466346760992088285990576634088993508916556096107564240135457207885416268570953492190206822188207313319699456618184673631914808493543308732147975668735088868994018623767955094069909628430927115923052363402087056698111013818795567498353382190372780416399068983183135254405591936911393159602856946967015970660765479052946744001467248759873351292300239923687770189962449700954902609925749396716697608306663832348869715674416801706157866302274141683877419248270688995218307150652690374973670007312145902612658457433036933128695388135051660446613795237221747916938299524522004658475774778763271138545220869824371980578432419632762330405288544133521383213483173580231045347876733482970270906315339923258848888106328820958473645755119277295585088155048184948251165480580645908454121379426241022255557408187491403948310332972451325365505248025608057946480043659636538924410908438086158233399541624871004202415526017699944552267697196060727930957057686184374386154399995318388670535598882096972689833034518099060080487828676192034977031295138469049523447291223391804258087579710663176827309698928303368957788073361332845886662511707936764071484096935945036510962031652199235551317813281421960033397081215621688595471532512171670985051930441581974843184434414455522855807884155710518793576866797877141833258238228504835180518990010855312147862130698657533318555290205255369310282875788366677611520515035236420035469738288087879629917071538889996332046990524188019371440541923156884240497882847054805508454680329971723063067761415355516297249656296632429762066155986980602249028182301430024452636318437219553585515277641738701573253079942125730385957370833988162787486632570983520375097019281178142394490538212303133036062272533721226047328752540120150823247754747764696699084008362763251087997070098047825092151476181917758847800103530806651447955804282253744259800427093886603640320767316193597753749163416068525239734176322929807205798452355867716440184794347183282298995245966552401415210086089946301030283749660464963055438777268014074863728572797461204612983536752602593571743860408632646421237813512093569172887799760592597175538002038458114612985145139334521729453949775439128540183639317063126255527793741589868370413721548834666483436539288476517128111030082129435349799832273850602467228308922643339938107606056446442773593962668293674899772740250669315952497596544077024829261517057726127791386106931211951227706743980607532771761251442903978833638040623437969647492456946870866693370316504969118611928114778634136896806917599673187306723674574983395417245339937745146161226979894527596295757956671087654608218514605522168985692441111365922195168945840534308814554706098010632198536657719620047041302033213720796592583495978150517075623661364818766739605608477932558876120915075165480011781151029205024411243389191367402667139639157485853914758098913777055564271846004160591400077521605084011972465151930022040206070382528549769260562562076907203842437387654663379317933978165942737819819811026923449684464421140952216645051102461753202620429570008729185705239811593586256137837780305483787840580911897127191984047080027359849901589366335122046331745726822739475824018654580345221565441486269387521075012257485001593870642017947647986434758350446102809414434553227858881471836563460660075999411102023481329100162615396037219898635708134707662045004542239052944945878111720462856304783175295110613175488114273563131024483159878425691487171978592483556560589464358376919212474279377487515638515838517266276421165938169795829710559623978650850267247581386727507166476793827795872403836828326730004317937099769270503097442918799364345928416160054617300181995087125737417762324507429411497926394159623429271450193094175845999908708844238197805266581093079216001912685354287606283413738530282711897569111820689380893919360328531524287211822910548452976954740592227020049896297934445868580215733451467179946302836572660310575000791311465411074996919367532941123609008375960893241152147672500409282380451514598931065651786490566298612469361784745132514308563015378062153041192620059664575211062191761893417437806743021212084447566825340894349335682684391204912433270095656364323436583163390582632956753579288447986885205473565490608463185090429071393158533904928501590853139533164346116670838696494460338614762409123736402539683199823783629999324954654234159525159145051404191384650676614320354942227982574977992216074050034812296387604255905851279730854482863477242295668531225289677318370323826966451959584368956162873140351315840476236479521245461455144455955073637826484399511683646775943247915196044282148569246812661477022022431363710540634349673761245150365845558724813327283455500910713160301101988491703602826768602021892262494572731528103662807130634352130886338184359464941609912770774701093739784956515395484733505197156745012262574017385114287115630299752594194716874310071830781091780284128407144948922654667643595870340989546000217361502881677468599627145459023706581678502593050762678938245226791568107232947225282873474096734964752248673283189841200337273825258576143468937690023488723633152891370645272881992752606401726846324383973630303280266554404735673665325974039674455088005662666842754096965463950781675946041860222202559980594802248247453271179329996724469369382837220299966336876074043788115680066074505224433891712611787009309302059894840960365638820901521164751427896017782761088904984027127540006198251602647965867233545140175936186535265191091177104818495858546580504375981397005800062334139295987617953327074954037687114645623819389661119429253001274520868429800596642065663397314303273399065932331201222974469260694654185502208505115272198442439854563649952319915688882292836680495535742284879242557777338347168928683465063530867389313824924200167856022747688955881437661277616242232210090469425415110462649942113356624932428394165060425964001736379459121604598041375724982190651575708539105850764269212200017274837546195476023459371708106082154541302149309454854584131740402903404490766238670110609014213381722803422839763872107925368765958660419456063706447925429679739862832124731366920126839074356970981411680157151170982942995668642781914941792201926034035489076249106813438969844533906982670026993147395964344831994023392275678506702561046675431968362361377544107457218223409647440015253423344971896895868842909736961763674160057487997120794503529388583868999554708211004965752690209487218743625137725158774627294171949357180782779327212302830900046447306601355783870020753359239801205138658061613471907011609781752969933900637962466244348580933416608993489959556936974573536236041301283466186452993236662660414228113749463916120456024702640059700082992023886596930912354313692915981261526562378680796036397346357047864411655450643168667378532792303030242223276933199233634758794970030847886523352028523809878049299235205117100534811050274292478380946177029851532333392514858550663905942860527330284909786515371981784224813341038860992336447146554920851933888128671370164775681655828751401812989769593647167351831863686412212243957497957516568450396327836424230652022198475765696652199569546672923939067697943601097187877323157140769073405746910774449648034517614596268509138330572018136629242716250259128364784894239401286200567294086790471722067684502449836713829748534978175448059941272250845133157211982544556686188502075031046324710348227418559530381004213509891302836345971200277025955986336434937579592990938270784306418749453602211887718791517550381167450132353761011220906444056930321457589626284299040836404917564710561336296598725789093740203452656986308806170563587654701537941754959797883213763071064529087526615722500265104939916418715807797727717739030039088775687795431960833546153887827325710484584857937455800692385536656549499303192655342268248305483522074493157633968327895720935997616868694659502673516044738685806943030136179940390692943665540395412209704432469413581922181714731321213243080395194712180765589723757179598956002811242793918921413674775300282462582064481971584418105291214381672126894498901701645514923635127241537414605788770804096150692719035425155434694547735928111064914359147226012086654428306130808016697894563751385386683802098770595381504019947224420041650911642427903833548082042963580011847325291185915340835710692962912637624354580523002300598387074382433046448513290000365055338085267528019332145016337407481721149138864839092428206513390564731987268872382767446360751631352739667478267357352558628872408379535511767515774098150735272177111309091174657343132050941933006441012000324876578799553100890551366894026476684068345665062796360006902700977169150558183549813898874397392508623071470996398077442908756071979401065287311055710270460124990180415578989916468792283708269724121183346623986003442946466704406196748702220954544817550552158828597575188959970167846674231721090093292804628763871442828888540695140412438077128915476781082973219318181407973253702178936935127501504552488015943913350767887480526435536907618943671752802204827165653279093180622250033684544972415422229206191797327973106730727472660133898115215008603131289912472602887781664159566055708994850354533194424758624409289683613876666316648011236051018541224052164744274179172900914551397644578137371852543867999090762498542440885796041105870466989820632429283204002273033655148317506183786869485615716814085861098729984938463610849567529875408893889916838299105427439805182445349068583318648687472678998003463166443545414674586057009904485782499861978690254134991276567600807568930107707637187029123483320609970030289401573767339410498017857818074671009414092973192222932943874369280655844304995381679953172591876328258505779470052557391625128698852937446197236294115099702925545263399235993598226577853451175412906007929849105527580015873319946216530117012260883707184157487721110412950094975036648897770467589107793068559811882158481571046051610347633698748518223887532521417477649507519565271170044414131553801198493871485486357802567256184723569120985457384164355496847292920291253924182745641151324419365865202485714884639830409299950934013721411854235080293723092905004293600333446282774031898884887261665699238238904850083631427366268510641371060270818815623983394460900245715989804527875433685150455972239990091142437722084321767067057675936206937954381309631748546591435067041993202648482899374904218902580177825931602672476503160021257136459019149212617745987672531235779022115053392469699115839384430021025259733737127443364953789195363310391410296933601324917860311970175454704097107872493075401174928286871097048560169586097044763539134247255839250375690100269642960545612990225910609874919931865416958866686376998794468014429345477468834516374897093303108856999658974548386861294352042673347351530934227548153413652444568992924521162227298583778726597608612857684254377856013513013234638811407558736169950248464816916081990114662631146802849868665245600607000062856765151309249994832992736302517430886080230866167953813953125367628641369708403050100921613200182848777438123357694144738140471380768541488453842048523397522826374183002491642854556494535379243387450076139417166709855744036572796436568524373990452477913444567413566102475722318235898188383649732283723711965765396142103683771408260708780684721309169341959704787651694418666451287078542264303434235982753447847900804892975576947817975685981205568133579603934112936459842409936115648413478147200701941736556317827594463880336115731131814856727324178680111571395893477807719981322964135298991582534479350083574396637119025662600839703164014481008749817102383125738488835133335600327629211709800651436597765716602211383856752875947730794167183713555259831337370118944461575503107365571440081963401645851973165696022710651362589290758902748773341090294218614487354583998557798030185886556704193820681742388622962533942265156772734497286641980380296724634271319718970931500307451686443815220482605316475499613582923801886378616884418714512446630666168115898079211359552967113901583027859847851967233828379318568955658670608371504156319453523729317077091883984222061965719722224766846224843263192349765785044851281948138428018931684759144290213452348041288526633584723521697596268683278567235963629584761683131711233758791953162970988328886673575194879816510225350472844356836022554324021086752692754178764473311280315307620071127155943103766932025013856189133279252603373404592031802578627583049040715355380884825710834172467642019563175666145039421157172824177865771263750682276140983171571897772003546835150643197549159812747369970129033674572991036654233716181710304142458900182905068255822515369547377415910265277687739309102963663405911719346329443523520907091921527326061072738097374713400122435530503632573699335578607916940556882254235633144259384415999987992006365591255595859123824727106409873214034490065678669567903812188008009026675469294203039463919970868280967340227562749283191201178255076775539056855274758952985198165191022716476962728215064844976299639213868199096392225065572638099548199921303131527145890911110861281516273314183537357619641971444597299908370390958870420075068843457709079030064773157060683191831052879934553133970702039388513978665088985637083282226100194947574268219374145213852717940705287764308479291709178176334395011584478275283174805364723164297973994310294979859285259077184699727172561467038005140772775365753207618284491280361761488915312363236863035060358773047163674397437702936520658941758768771265365083310821706092217589808580919632062935293082735637364752154077462735249211319084132537452916959948753072072712174987082257044146681338878883100748142565709608586204152245758272224916698806084272947908783235948831313739935590971056511737879691449444924039959220881606394690802375925312507573294799188666188646943278914882620605153754415510933131334993605433765251119144423050244709740601092396387394106707226622340641565074270031013763293130235792277146051636482524147313056870017016900392916211689675474103802549838876374592634123894089063178217279243644929600020755897418736347004865510662702564635032680259597972246417071014329878513177226170114604598165194881946732791208224129768129953466666783718492016624170407654570270769299814952542360740571991639261493919827538253455278764416128959195842319363052043761185021681148258608784274024058938498523962929158336333851123908778247209178708678890868642448072121627027674805749760174405860262125010306547042994727608042752072942241338812747885350363926286096164460806397748359568309514291894963956323728289041631293670103029615611386081109256920840011849040730283319224970351366098514056426439893776711240575672669683744805906346699360640360680987138604639112380911362408071770552479531818139083768816623246390419434227591045546980677328291526840405191269035624800810842529824112232537043878369523643199776584424300306618306393733546459336104077128765847734766839331863482228684920170373253543030447800091234770605301069981509389790942046463297337423307356002824846792706376497089377373664096001541579428433173461379198741405375768786831884536344433769253969110886139913563504910320003014481050896885960094212590015457458350296900464352224089426313422578759179450516553687269680951111671157755310915626566661927293452522994090809968194048749397899633149342801672877904450334173433309763060431264370616818875332946506217851391588103194261279506896922417951981082634899743409325373540952641722841998070440200416697998999116645780049467561208983518885877007682510993558066468950479055055231557787845738262317620931455701333951158086229193719486205806291275278132185294732273430988575913711182473424389601000197685412700887676549422832395480327759920340446216410562191810250831622383443130623410361338157384829523263592604032619790366346781490711267842105273352380907519200261174434344705828862852852767694223857456797667244982213762386316466250822494713195591682067217770336376126482720291708857625569434031040681744646962110943968587803276632754189918493397963699927388018228336919257360928251678425424425492820687829365353101020943179690583467059567801017952769795869130527316890796563238014803096599755318424662652315898296983877200377241505406794699938870262972773091780226607766010846237326463415387318783792708515715930379697412907821140178070023211214182691363623790195452510058038521597966754256622358190568146560803720896468317263365174488280006155541664842180384796048950150422476723576405182965732193516614583723556832984516364728388735642088244668727594524455881778927702598561704562773827133723647784339583322440984095967505894575938291757746314895708981346394801700920615520751185388415894124365268242458271447049840197646462114975181940348883336370874162491811995047186177805687493692340218060446770322822524001896161434634172591737963435811815904932104840091244524900089143744325008835736059442614935373158044794867268429534667408912770185382083886444732808469298472226597048106452906737705121246718253224615901303001989316689232247978319104561395724544593830354536658362519215079376019662441270048149476093599557161675214679956618260889547393958611683858074285707391525524592200416977184373303389103678816685226776579127305986378007454666417300887295195424560997753561047487503091072207288273169386827631895217062315258580112329932230459016228004320273722849521579287964431302422883665784023745404419860445073725529298459864816742768699123055393209119495715624253136097548214371402733585830429030423951473460795709102270581806159560572767473679857339061350801631901716344999713508744409280705915400115616698401261849175368080654251731284147609452397370990205312815602988579709813418430603038948690121636909077209002014934586102159047485195412002298275718933814248057685346957535901613620426026273143468640952518888101434613740354953776632376639082997061233995318703522768271102670165816893131489324192857308539458660974764235067177835343440400865577111882655318375480701304827554948107739315060078412400681249248384521641685876737220865381824781138016283668004342789802527250535478353824197773751940469185160253906548293645881896296207118966505399293797633165907441773431510325175883654057452008679955213073481247346890470957843356602065051662544970863882543892178386890758849724773174391952022651697780318043304562465002548836298152396409794924960398757346197248952761049388064082421235987083810065567065732423852987814369172178652966728632872513861272055631784614872382914639262792299803346200261198421554015222786795240088169035847067711371215374187983037710646956659486690867115412160524668484763960091403573976258560098747959659685746314470051462625395733593531007860088162042894903595481529243868756500723185126472817726601490401144253236945261543465178804017454018591764900606001341152428716133056908350547376479241074340369249607038208130449428282972055441332210219712394501149791254210223686151718960481025231469668977447136601040213179623907226234049814549888172146178671630278421610326136143824433814848303622827289144626737983702934316034526937081676988736835776555117516593133104939449032138742365492374766269846240804559166536538023809135133480042453059560383003040007111710048957226954886038055118499191561162058110757302760255745823225833171958360128457746276573593125596225196411761960145019425583404849252180134904465570154841892905525630529621519907255091417790651820315974291856065260982009915465250063190566008136924298565037785371293454879749114209906839061757476336236751476394938399982020602056745605725570561201173693104395469431851431810273998057915542893141458692454745930375817459548017777296160448185374178991182111963086102869715193858390671204471864631745252359623142155552102188573940598150719881952460970992151485799195374429199207842383799254610949508064309468121801585998027023035386644926610741355655846865875929044882087442414857986224941540588194682744093732683972937930419085266684388327188835574452801291839587623380642365189475891037919103256861368560188244722936002644073925539643471380239972481342969594409557590275870301901876065943498450286131416050451987231076930756487901843196333558354623988607786102598932632138588652573773712071680382745572092032891415946407094953887719225993627834008749966910839852840521931362928461280808354725383995978976211304523645147960754733508821889044701130658888564030559071732114356420496412825121456474749502061960009903811033788255751681128410124618988021474670355012322362009848945374016175544904915292920429034023705284692595281069038713958588931217253937857461913632392686799989000453252389937581050576115419155152864069146381490680862887455205681553069368051829423398346434548945354987195543914450261758007856942463859427689245139094280867040352093787816690994981412009382889450241155844747630094600644678336791635023133191747946074081175991898052196506715199899720938460411307827088175850361043675704797325319913663196663279314682021487104369533049812690941014863244795542711545549860472422491282189142630664151024246647298748707138004485619151615768023496651587192485432212596153291087174462018801341622246397258458973382860659766530197820356889517419326237469922769057521670924120194833176063848899130417403217131000673316777458408601723885850926682019208148305623376314945556131341094000865335925960749420804861713402224494446311918904584156378411196181406462101421578307690550245834336208381043976505736043093866069319802067364843151503100917356802859903237476170302644158895317273583462969016727622729040281554300656179303681824460727925008805642486734955089459258129283930139530539494496869854561653480020687211928433235457505887742087845485450866298942317661290534909584110151469218634770402518400915318828537623882946868464753075835051492390310131240491037303544520254446035051589292104840393544124639736908748225875251934846338251499676465570031158964493221524667806737847876668337123417446632351400246118749745969526963909306320636306896454011032892625925725048701277459640404228681979469927196234486533307793493809227325178064869432918074666993928481431827999219204903423759259020353406787678968879628550100029931275583467778732090544028970351779913567265425870102837375016659897809645151170968341577077828274611540456788169344673663724368798466155033146069324192086098455193087299068977541301730581017130072634521618688440250209686524251309162471329600485102952868537133970366569536525477061008032663098044777274783826098644002551305438922913037852233318855604949132947644429070667426076634607775212899624425309852888450502747733959297217140737034146243964161437386113497559324330605156955839774740372271950543331068954000387847781048224727996683764601805187830590155197813881700812287290683587186857298956901682474658119751553782095486509295369698548606283285029755200230109092269879147520224683750551388502381351369067132391493142196873778894554266840976581668924715319275559578215782420563817783926659291614730763968069254973843896230445629317171797901754886703802572602295595080954170325310063922260858511762850244105714029362775360448965150277697858826779240979274885580250849373638536110959867094379602313961604948733528926903586951060012515576872939240201106851103815369194901885271792381502949202184403661074140690860458104022071158441805923284136982527710989263557155181619092071385520659902223158648925319693796895134417617893924228352095943124666889657706472016753823402463258871127815432527795718885774481859568909903883548711421486989336145896168812456286333038195556317487419650591359556728101854334784970310994109953605446573024862357979840379753079422051108572002038858172390373911986198027375779200706690871895956793438032626309833023235457565308699030177570358461013603786314231260177089950523069684203096575938007276713091635496228111878141625053440844501916089119279391114264687390471936775798601272098510301032848897385580148006780098056204549091438286320879774354880734775894130331650294777900843592475552679933166762829156822991853793074477246123447495918971104150684148168236062464066497367753231456450972109006029676354630562513665868736947291840965964933598308429541596306042007088167752096017205631754381915088880203649331834157795664786073268271068087171013506754310911128961989082531504930361499302636836238051041028150203434915243120373065701583398906403832076669342892385627479977036443395889777578852209484160148569411918415360297720211583913066394213975196170527109462049565093130002575455912194024889542760475369737026289554706122824325226518566917661430677298415267580319173244411958038380012348401101660500349955558160797177148419479435227613990950204487794646367811474184917471441910922924244889066329279534452987675352273926990022046503602218302080771950000018200060586795749052622538568398032055076075502702208802228013383690880714508286343062196931835663974446045527897883218032672424351150701580861166798716434005540418171471696628247199785189469801646791393379624001196727955463891470633655198937861595675142668811772733174538060349610792805203184245903282233456765841357999387547622762975756544696788397015552202934982607388426142602828023610474313999827360524827884264110080105995748443697523011863572239158990277145808345551230623195165501688464143391080009860526858854125168003399919749183818608280139728621091761482572929594094418351173679815753270787245780064763765181645984012798972867539748818409909084592324057614092673691677059846413575102883898721655726419253358265382419428116263763108146033896827532651853941611946200014795531005589405277944261637371387601775199950945339449608518690674274806857294254025040677841195443823331190172886475858859393520160775084694130469030343389044597548858171228721598844238070384901056021186709689403427244625931609788608815848281999887126177757781718208153967150349271584238206499743975157875477076183130310056611593844685160102993757465050782069947819978474593884599628019607337462622211450532514446458675794437112501017765784573153035925674102554803305701306195434808103298382848086045240750349889624299793662762050193915772572047867861236284703484363792298922786574400706524131224758686642392261630969365615028282275959960055712885139486314078737785041179977966145062908181367546598911586831365354260686932848697145148268896951948329546577465372066287797298118152128495132130301287067265012703036270056669212707665427902475977554468970153530203408582837952927989736041512047687761987341440374030529796029174293098844864494804328250575862955062413889903936338401236314965364707013548901227341533122914861437983121400615357030582036689747807008997788543375114578429322078364376833052239108449000922775083875974941805817195872235737361350167596362479580846876179991782848372443321587329651374135323490910427597016480999350661856086694495668170717998810941903249657197533813319739341563376312493333745789330465378831272005681905548247201650435185642344313462318105521758255724087179712472993925223910893981823997731681631770583235123610806068886365007235206314355600713110704784937280234806681557199121057158235698238645981078199368556725028201187412533835859834685487656589393836146628126610247417217994253459263811459255825382246109318306578447277746665016378623856743567818541998093072819470997312882860962170104167780020467717196219393168958096509058881559625960515366236295382197997756069323828823055615162637226854958625512916151083313441347493601688971378563812616356235937232051099603590836889706744696826224898950794006019293665278784963423462137189042163301191577210545121571826937769347280301936861718441302399563852459933338881126617432457872232248053348927807484234438568581555373945710848334492664357712592601551022686943658025165662693140662561217060368170396980594395020517533301285798564443879834969453549282791965791285051052865719652526989303973992048236716063483771980797715485900503446059502827597332076436203482008992940627851937036737210668070711333316135976556504534010606874991410202034523164887691109416190264501322293801941766279995709273090666409585126296365654571551447161094391266471956479719468787106828272315359598479396335149367958240564808730171629129814834109062881061629346777621362690764282184768477460561973037229792850458428866860097860657249310541747575760891587956239727576654910908054945015460122016414039713848417169628356535614639001012631937696946407298419497007255075139532781713218801812730077869901925926143850954058214631232307751600937505142091100367786350857176977885868656505361302250076678937388665274250383626753466022934962771550606862488292649101111978359495784478775448831736234299463690456233316458903065366139666916038688880988322359591711103531274552276553813680008638899399810165512818765917382196404022605828419324998791111349493899201132994689876954212541701635543890222247167352961189839020686136258982731838299244919741298548143720341637346906806080358834901148329054129397120515313080588944628236349822683388562263650880825394101140080773986044099492309315508580194045234212910375024411377682908822540019986554795095189174043255249766684091766456350550508512576753356968933453841843122106102433227903057333633483045909612628689569832246325993110223678643627043500536211188807493988294284137286334964518376633588441804812889606123972748320373287718229653035604263725806939108502654435208610871999163409231703393511673034410088854611377217902553750774056963182492235788245882484122446063133630472097387180067193748301659172696116571621580855794125753372430215130945018462569564464438256005589227150780321590112916355578443325261623623642766638302633738240410782498150514147445013854017087210317694215122796548657298961647123718946183938740747613731071384057685491568372393229663787052030688194587942407509112645049914446455991726983375022278372440671389307352314699421411879689967429805783922540644971612349962595758255340068632791824835796003784901860769198515780624059540593053425131403195665883801615862686640481636499804814830909083605803875283977061203872573501092321708327925101176082873238968341570816233857509462486118387114311174166531063305094783930188534106565474235061646779579970130579637021194041141430039248655782753699016183134399806141127026416196329373998357104221862401948118744400477854430046530269566578097435998976816003219203104376231674456083502713204327346541014305443589488038749775018845858519016721016137484619934646567811065422504769063944761336392578438556756812940680805181138240648152331241563159294452924303343764361675111199073872465899577528849865599027018057832190071671925087899001093707712566801410478313846366141176404651672988589186041022779282652449181888594924977044013994161283334070640091565924617434933690413265791129503858303141454883389844861149303804135647777687043005606207394497794709405939530699947989728971633321012155473297436929915750794359746425837156730959517824660721988887995553766249083678006803754809805368557487285485131314298084965159449593143471398868193753529246604752743001152776963472842472244170020315269108150212252261340429657890713795105367651984400124458276460841972119710245899311007392015419605467861489813268980972546953825683772308823219562186805489135501567737376236810322346094432471555441974640850455010144988411855820332409998528324103142338194122338812692287070111274675867360666815397632786815461926314975772989206975985485722892192738349197709306391749671895405901179301651818843313233903262665283250235617979010695378863100213514036469945587312851261552863130076287517575137306304417410668089923658691421376579696968077893984279676748120390998215767172950382410410886301391910284513620702582705421162741833162714060001147912580329258509381542791677756756621364131735487727797510220270553115689050525971920073932402978792380494796678505537456011055013257984600204220645451367758074204557358716127362449905733228369714403195064506938021496805740181483463618264415966423791270504995936340440606852959759458863842401141128382860187247860312772918376930682331919315028230645915610352339926657117179564340584512943897774751200718655157715899735343722174382402548163849201591229695218891068028634299028527157747368768679601873034517003217811537843085326290150725905475859572969017166969163226735295683172251058838949712311422731900516485815102912884582912583286843195642305943892910532016718486354694822024584317237407941441336755771079091116726021383915517827212553937613345255409215445199017200972719237971654034921444810373628333747807220198335254652413862667904412885357453344038982767490507170714641720380355369979977977627836001709698008341330975834116250901965441683897352581408452209227196344870094354847303275418974592444537958332780310551967310899037920195324936921959564269073086754097324589336056590949394366158807513226090104885352797295528163229998724797147684267986249804969478043145844365510125902124524195701181975262316808078593923471055608052558211343016969760996276142426516812712704193473507943275513264336588687312375414496524588156596291053788633589033733442268110304274089298621396775249636496583890405082531861236543254622959056690198019866940743548729595969962522795713313175170591482188856121783936966917514949022699938749631103983202441618230895786165981486787506530174653318274662534153921811487887823310498154228842947568091293428010124247733955687325941973238698513739220674000263267635713167934704687119195776196538584117164295986370987139405975660043497504834998874943475492996917215459823194087894831884682577421203216109655718537442499029856744715553534982193845679558516413947021816750160432686063068146669681495914837957250981749222863529475664562182771524372536401720906912282119943696823131413841594657722300796218182670017921817548675837964377862697675091781563231583140078276649746055580494421659217305253124469317390940052769627004535580345148026239365885094044663453706838022709942552813348830687516720462987403274865685488024123932044740563609127823787497244580763212614497330028324249362755195439817856317210965648159074379798106446277698183714937805142411043726004692424622787633535122823035652257515822696864414765490030174199647470767411981345142752346278884776385487216634373452318700765563283088025899393125690812204095658370664673514502207209405877028718053389851620155995687028701756993166800777556315765224116169292038668561913945382563151973176471366443816763535075972727718121329393602115543764443675579295250100667618189130253797514502150442844171638872805112910176324660576619258862960547202980359240433944480024891998758501604461591557460591186424798405041072334142903056981800819620459637335383394144235209084735266747231545202864389738470844324715068122224433532112520305968956363001397630383947466050111805527641456895218784069212403689796100649947451236364342418529988477553356962390027411632790661604922627171631012790689970476328666504387469111809964649016562157446251983542930133100015388105738809497846561781768398675870191098396053237979737119549998953010277732064212886265995944093246460964160024727479331667908358951399436685530342016640534767060541440796976844514698239161105013558647391396968080034888565838839012910111071861985597816949238836201992128301372326663184432710951474256242745140141237131733561865388198987450537865384323242512238126194815146171267936176444897249687924701392599909044630970787691327035881129670890644910405352283068139326638773254579799626026475274334110684514022453859149727121721397712470205933671701944466155882352010451124029016260687934740769228335036214529228926758215145907484835590100533838646040117716522527904975754491137142264357373839200295712288162364437725848294910827686835891057464930615738300555828346494338730473270065005015898262888724812226072099012649339614427949553642641822025626095698061590277528048971804393768067327951937365118331759356647646886328122887982567773540385376574083642138737422804186645385450219609817104053039601068831188969086568841446493909961946328792673241736602882409278002203028280040606455048039905107195948234021480061556948042959186451937689284520451899105795571699623505459005192866507317981774083630754104840441289225164939762044289299194124572060384451718828928694308113856195946471957706804204598685482124333649193464695972192035983092382525022888846488976816492209962116832700369824301561993860425585552594640457580246884685288539708116394272430869511186983490495904001347631557273629513715047123782181845352486698924637299948193424061047116728930910130060812844320451782576464201389716067937040403471741192092900847240345039193323263530660329018997255833734869061188953472130126750056849952860506928503643820100286302693985015060397835521702348534317727327231985173204988867145212584020290828472817487517506575510986485389125465683843004293111388190616113826682974964876786284198904770971811439857477287191978237345572859459362672317443765970613713518228631270677427974026912870097839917996020031282356099343121821947431895178684168554491341673609005264345259357861685991519682617696204324321031767931175155553160464202556222233611816747828864554045614360643823593623524187107060335018348200361513468812156988614779391209048950808136370675019210363006014194675838017564496464410465302748329759498029720000979242349623663814587010062082384456754024793608360665499024762303177891110914196704387044363174346688372805176453162209057087588725094167997047632280373597422999870880512233122216928917448546707683135143633242188853711488200827825245871555226847217191632338496607730727341762523645507064829779208293471601514139484404110418976160760012895224575077880287255712579300876807383801122593913487518404925268466164940865593318192013153777605184490250687174043544624647416285399831687601745077508059717186337781428436736954027262837895979382397791992031903895043793177858954216956620795056632975301396910649718254933557807679628061047907049177636464711465485577540861264256404696773631259026122915673801343670413422329882889296491432214231452464549354544072917075997008115487154980477436687253020874836660104194102445998107335072293852910114600709579331999818902426195760109974345239133607702156747217686071483404289777299508370674603398221760969110196556638835761448848128821621748877982014410657201850712301582080488643523894898655781546664131352704572965232517375095442046007830601404022225380227789292997764525355208934379352991731371740918816377120002427380330114964674730493757930136956599259353113490343144627874837055079099367815615515367345347450343391655855714409687656986939803712544618641958715082718879450355284227857653608561720361032845509913160630191953882801015972605657673189227954135875226567473633904748541479537187634396590353553864559363471013308180107106946146555282308771992717834403182628408807782344047080538410221186709119487312461782336631006624425440590905707546966315710736107134399986387196977968694367125317918658436728001606140444509108227808557120169774467822104902253834244863856138269889203437683152860145417477548319346773362680308125850466409575470952100548188690223929005611130483860709711268287829993459592727348259383438745776140533061147694324158141285070100255123093266655656217375389402934281267281928958047279978999526893263676921218759541311308129246632862709964093328081108603656622754481811880484750889453825120351048962064124081206952877463833307247602374236827385676638912093170707444515251169751993263062350166587919233929324760206603893389070969263099017621032627422463452580193384823841890807135868260988559415918699412323598846432407788321650970647037938330706415031971741446635210452417724116485987234094274111528281574968781159657067883487545491551921187411421876247894141583073835502941446969817714598445296093370192770606932262384978129586135832456296902938509538366339455954532863797989659836093619188578831792033481107229419192536508574468498110046392500329287070567608309681807469883788633400269705857889638363683066617302801954421722588883685324108207163192592033951264328953663558645062815029650682755231932088893634482590019747980647961791225665366020155792837967254970969854865289572345080914648129876801822775662975161843247676314623225653507181526443270447015961500671819000150940595836837593793671328163067307774634570210717603813608932995359854133444995699919429827044184370862072733151829920305658409575646047893938172517946125286539734888912939320194317523602123156413162074306035824169102121074216290287550781698419085334000681769572022485496554092974538805426020158294547026463735251696540745974896088876607755922767784106436255220945445011221147074665427236260259705169359052724771757511325628627136797677875651759891418799111597370651407365085303993938445098733578431883359874862014585543564571047053194593175668718183978162476074546028637684569794277011988518720337352907600907041494467282222388816908852168902555919555016478233397587905566556774556942596859407574556378660000493765053220399786342770577966475703668747901481674317817912071088432354225235170018988630645470008728221374309475211774561895138538865746942782201619997964879349715188843536449357938755166850115267615045154371878917024891231436236746626213620253885333339593103561931072300820702351749787966344464833946629846039144975640934835271073148932557082052146686079064340126429766079806377326223622906203523014113295636542407205614502595872854203894577996822095586812695347037417525358652794248141888572527502183005105572937059773748752188275185362114348629975897378078172925412718335385158166547755779406782285775358525630430071495090015946063210642799006207078167416111415523842867714008386107583835154943472862731787973500528131994449670125967298340993287275322299351970854631660781456231694216096903016633805885792611440561702114039927312131747087462759783104939973565651301092002593146994281934555596590394829534855392297492239696570201906992590980338661027932751253788021635058557441147834626641620272470978415680310313699908920001722034809823711277266411331670056390086021012291699413446118801896477398057717970618593792349219589257577162648782429401253722178528869276435139801665799157521179380533291312355688629099492569629222882513175998786228766788609398363481032263419556904532598031564172838544932997325468954847274633623688764933506409066097930493146266062064545464560112426974674589130384837269790442906999108066783119400788209290050159492567359915931990609738854702950145739102717783964570102718284105639913749205667883587438975835348918829140761854585043969283384603072568688734270617047734235963523051242024106554129521691530409977930085912173456790863797571351676582582673311283744460528582455411291165150295264426524170632371782919053200153764164489108964792273106459352353635379820674480491541411093637085685279583885195735046943571779378243755712991846548906926289000374483605844766330941652407196319157088102127292415037932826225452580244611837045369639431929005661745168181165395659736270281919520408043800997116227723559546534934443865714032966493611408147457782186496508555128322643597600515070509405357495540863778168971699935838077569901894048617390270768550840059106259175658130873212799030540362092260291803894180461952660128344499671172846203587651662263742160374827086988466053975380424361952334546690312965195192680884227250848794515653045357808318708602379356086080039025056094320833210802323217218790379111637894368536787561498051232660067408077589772250967131222778133659342814970449251686195189991078572747370415387708072699192439147859374632379965574877667944593220750701702249911872059350025896362876879216569549365982059037566798914163976214706846987134098481357351466164898269445853564966159029900831168897901151924168421847296618931640309025793277826570314913417172274793357074991169731613804789398673575144777624425219273707868753991484445785843842466572977376697919279209367084278511453642218412214852091975761108426791756449242876824794428221757903283570592986422058521476672456466888149440972295801134921158792462949839981933602236812931256533032130668242173687413770423473523681712540486715165972769837737882408913691586178961275435068782626185019377610375691948690828842626457265666782756102527115225549998995094235277346356843486604320605698932391924517366638964422871095827227965157024338115006545675761585560295305753571140144489333886063272371859523544937126400708547127583879956354626403063970928516898023670581226783949773721754718541885253338305624350736424896783698190643199569583622415172601694568332896844014699183303467129863727319884226125776757815704094646570734762721277669460705415715791500376287918035895669235723514095599798306089338256026061846732662941639308376078690884318936951444485035053728384672868433372139632556651432579899905694363582121549691642204429279614366597791526456971992250559947199604396469557712420738900446959784953868729974466193823761335969654198257918990136628375047830871796045452230981348789675958382272445390254107736235954395082410642787664923168917878423173625658805899430293238184112892411769038966217276700564447482266795233194503620644417876604659331021757811553768808377252754189103615883322170937631499814843260284402237388941903068989994722177876841190880702694565541049453563851026373537127573555774596134874624291032169773281835955010510270030199901055640296421754831047827383194526495203585958331571738496853335764423198909075191175041360262416489490360548072663395300003692639042750807073663941239403007576618448758253954215175621406138552497167677295067687473527871934538662651565965706384971352150170641680590596768601526728439006847183732290567342332254663471455092047090826740572442980729195062149653271559676457066711817736115190595750836387506453415874833654821098907128745395448984590405828429695829947278577325283320440447838821938572409200628021025783605166492603442175990626131444415293587083451359491548260786947080025954755629447177957232854292938952959522266366405219085990293115342010573862671406083072106177863978467554087239308968718984916990006016451816740319712877504375758002176212415562500057403850743598894502936285113901132271020287639755938473002751267570266469612359430914070739597834408678536070819045739786539197129966711513241143810532268862332611907947879970146598438043857653727013423478541098124451673427357378806906557551673901266191369514998357218542726407691409130149704314255850439343289680849450490431869960169859961970499382588356032977096074058590295202999867812898021106570155810417047901093333911514618352559280530782157514706244370101028427991711429069343920354648952149254433618832771250982903049071851155453535337384533173060768445218957810480656329821985391700632879127622411918346065993666235383054152876714821777030833566407440764734361701312921344888640136535463051555526571799199703880823760108267516380965544072004795409476490772670907990460627469909245402726735732442479219768123061624240567261105528844161827324674045409911207472330477032709185711644335070164977943926214176481426939452460159072070157067225024239954153193705493504803282348723341327111298678760741552583786992580562496656577952530853256471895909756868158302182007641142032970357691492451754527075574616459803416075602749912075643757317289726824551773643993637910190573289125468481807023524500574987198959562805664979192148419107225936869306129967317996327517525405773605778072232118148469086136390431547391740270078610687669807838492631994329356116484343844140215080176910213662846734455873567357615698546072284887068971546823926137176599317243680630561460043278596242365336059170254376477665335013977672879772030972894691947151560643968639362160369073999317143407386282258655674186031071614776171362383696790268992905401362741265415492339853472591567294937984625436156194972796329271245147283857385859153225084415598608995508242722729531240991964926656273764248737754396627531200348881573394924323169302556019205009936807682575094699029638518716133606374613609239810921555154537623565077004707171320183081694487442087851691699814770670782998278810835941891299160140209563305243217057999183525912096483948418402388274206958513753759819332834906410283618052587596122546277067024729099189989161665913465336836324841565627559805645104236055557520145348044405162606156554580697173527725465247249772361184636721095802019098345437847224320202280043452268889504561719956922891924992756022820487806943906139155487012578400981822110006908552446282864517084774789697087113128025496008483235567003051890630272755102270352520218382509413844045222654911676855578305102075199006443464412854164663611728501432186954707919886932560609759355140432012096908551538135668682021493605105585932752935377172145609807447681638953663050409893255135371737001995109446635013907380506725522944697489741680821566035410522345540993234635753932038468559789207330129073302677881818083359766959312918037389450507868499171634552491039023851639933272030540145329158599878138102571020885131497983884008077427304513525357238036449636793776220233493611303372467178427189110262582237381971067806951784989667289694083597392253693176205529979776228868355280646768392931970680722257934898322587066699359037112388516110486966820125223126255265412681558241321732790710357984788103089715210923702906752741691312939703040750448507903344862093626329028429492478379582294829760576334642481779855285214583967240782055958335595025787965559653191046078598069193868696849659052363761338425017223415604708264539133376836194045397131449708117113110731538993761599076905051145628704462476113504484555770654553199646355326829943294411080588309658920315033757126706830904892120766528805032188886567735865257820965781559714097001180114363539270517517412677444100518634792331491231282215076446972618699547042186063228151561875378927167081546461350647796652061036227228535556084819287293691406207461422971327550973968108125229988691189792067251993019780364843795573499752311117589004894545555042842117182458067019107084919486068193441890155343374300859612359778266280215279112161989933364093617869429948476540650767006409999858120512636977197883217535961709154977542248171195347681055704691459637177406326714237745347349117162844820932746027648194463200910551655459031590548712700006807253206942806818793976206385565386121496491331935460180812049906414308109019003878843298329692214605773347069674408855855478514882552201866242817567947427541353006468565247597973304886755780688524081046857884831009647402768709910537474687819443640666894936254983497147193022407088823898582393726331245967299924772756283404496428695517614775205257347935645392201487626637825544926870399134326740512175988602779366543921951411218260964398098056916759566579619429258286057405904240205358191250462808671239203343591347065267683210742546587638248780654944991258347252666975905465082084835049246738515859610123971066057981630009157146388304275014173456615593603453383471235272849951269419461131925849093988625516975353186940674151477165852211154526543998829309667940871441841048424156923385467866190409190013730600352169010143958079641866942083005445782000876058086782685957222886189657129186782426633070770915947572923926867223744109404004740870570535022115486589424222678021713127298621584173322543414153851209576119583372486888296547725867965363499016785816509753754426315484269818206757185962535184028761585850858225343184507106462151409030902944524930879852988212819818240929541654215133020836488392158643677000738959887951376215755925458996346508735845983304569632526241527398040388921427404272070662522464773508736805870123597237265586668945302682624223336665069620553820183813360477260722944080955729158382428511649471724549972476646341175957750442849125121822374595582288536922048366546601829655856052390471913737237733864916497812681927041504591905602860232304771291705642249939928034068706406438073594340581604085637322923417464274083572338316536397669152790896352686898948136684144378211134237235286639494917824923979055490625679155196576382419348603571255189665272411045607792336895544534686258516252329143365283363230617365716446086978808015102572158239380279813237940669983177954348016353409420621845092601765270734753188219073726160753808275002343535470968884200757707226439007337391930811517564813045046994110171167871289511464517682568205941128090261672648764304306054714882163446200389241596755164178128771639613612829571225804008269836837702834237746008917256271596228816025527018911282086388874616595630266954892575331490331433217409025083867657989953971629139277226725142489922008380085728715082479051403013069178650141047735958502864697090560811316591070309511411252892514949569677279441864568819363380066031083731371846812552250736485293911961580602686913259414907065655350423845251117498276513675985864537050562428334701421998879866958903998891294987416906507357922375044809030383447279175446942960520516564452493527007518111058579939255653472177302963111153084782599453486301255925395231195824698598324106896817720514946764401878012239444181115120364478197131866134131343013100767081215599874614947014581171408127447945414106420546862720683254907177920915695637695061112579182322941444779992966005587330570807163345410767036511697314872224109703982035953600054925767800799251677400995504982611754386341761640603477396101009227428357534979279415767651659678963552591731161826214326098802906993028155657840524299064072748084276685296478516308104663911044576282417188260614350958559510996424742270357563377019334856656373228437905205800331183893002293019798744263090945517272122674087561781210349163816293574517882894858418283886868429928283653105469112711697487908986475155435559080950383205511950437231877745301085975951233921661505178964478935462830578403248658248367697713401866876965561469622508453353434728896051301509266215710820193831276261519841874870231009097870569522861466849604535008860388561092007927248424596212392891777476164369577002828781735511110074375883827319714889959078911869639861685261687299398528149599575282973254258123026452175954197946707686222774322710722331862050108573044450451645461423657381985912827165645470563318914864046791806707054616681557189777340370934616865120613404326297015954697613053034287232036762018579840236893200537154731779380416452726930784294851713972543995093537784808958910437927903161687587977121004381921873900361715312119942319459628692378300216840141921920303348493301508085558183785068314624177896339429783513465504862413826224922884946762890234580542507906741745704962165406936880878456974105449152100359080874905423525163435986324723494890063819809148328347946211482602198382262510021551376777733789460182432513593103674499559605199072120306019647546940958931433975957109584234578519240794094444377839106661333358117269566586568155001715831638277705416970325638942945465045599214576217529317217535475869085788552513416919572011213476986990040686754527707009326426727652103864500798541523492261943996700307485321163342873478602411246217402050339519317321161675142680864455298302455721658734235867395715283002046937187914950277898693333722502764826753020499540062467988659365648429417112215108302605492252962443862232929974437392861344194353380053534499076431036661947451764325842425177373151672022559612241251217371685972476557038382557661525072425914546323319768739384979913541352354671722956455828718254042723977018263873877712161330358329553064681358862393630399308060357988949236305474404644581811841725838697267090589545660415353422364385130322356024161267804805696653232659713816974163267871256883492766575795232160771416151289611824354170463503454087710790735247127449064501891106637474722966238930664398151885396639405453400626897134728690382272432182166189271137284837142258214631954339465748198979606444860582625667727942484961125622817580639370309039438683074828694062178197185397278788195339129094083283643928932503966430012447904669391581482023104542483463070284280804934063309601125489035613768904297044085116318890040694368226596288620300733825231685558207175080531764063836249139522342009693102857600001632612350229132678313313661038949728031100227621788140228241465195914936225542788640629431376476856773390166630487511509201498970343022319647696127900007367118467542360112530587114129956766933441655722212709133228909682213674498538147116283342181943199360352458098640055227310866425799703966780579709341898284975430025501567465476636402850412461070349562949021227154848835629581717632323108034963117584659157231520491859299005320858457281248077734940035342282897959513168739875390107396258840686212126597148128813984991780757947486929228908356579359441609586237767954412610957004039412887602231434841796816765112692200259918997223941728022439456814109956694060479192777773839630534820176346046101670876237085322863916151355687525640768278414656271181839453153196946649888904449228984928773378696835154381294253826139980087593031075298638482525464385544138318659614998176718710307758746162584193298126940201878159235304266643768654040378809841387598944575639374032711740957301378460594649051698707842949438151372669504299478038857162923270627131597167899449244785772326620035871760466908484793130578311170818676171459327584800228151820418882219367336978137036305110440336947718348782005652774306413208653450815041139868267013726750128160931491065427489703595076331250207241626692715342137130912002776828105006578254997848210416827085464435862413706414525550151242614240042279138820155009202155970110586903270514959323239132537190456760921069202931866446667387553264653456411436484299373232739494873551365895463191397013263330450502296031462694307935684840261493762907947621571325149979329276256136610574835072318155470938088812169067142561772933129432111404773962857125516020029752991038148467919155975878482188948652547578639068963674059657287972111055548287841821623836964453697534671893970695817984315715771015812576862829080487847272538954537540241832729674859029607751310342805683466355463994008594851120285983461983762816568767045149604515539658332488566311437635025722857376803072194793844135625404553798378239590359099502018638220376486138477990815409647103288076614288096713792349022335748609460704745657264042984175740470868487834678144756417171379438868816713953556245076378727142456648789965794063918438163383187315161616165884925404169868437831723029727382077258679802042187850720462162458980333370140715396413407436059941203918753470070205221566891915897294627443856989157018604376949146448273226853124333336987867324772691077009193695521111129243087558687998821851667854978509552034642322810431037719203075042945835867981461004454151399852439867830506293412433528498372733503954677715149726977512151216201262364753592206425712577231678948724482648335871697261859986242900260340732998038228904521452632323875165884500441062864068625490629048098768796597735365981432240611411694842205900325870559028103100179850759275253022715737797522443454914036445335402413933921383823115927910818503445166286879048706399712674121601556832188814036838599647177920495929252702878385248374837151633949688225308824340070138649742157381275956389134105194952232496264416220112386612613165728029963329453884356900786930671073429443873280920535212832032721443720727377447147857853486220254430714062606115146818944175784992245730783639484817786674120215269430147242638700074595832492613422891051132194835817955320651242265207952023751756221970540785107323897840853736169780569788158843577243923837731660172995323249045604472114612384206635654761505069347687235114511828096468548140860934738732002032398021589008531659640142991679914576616895111434172808492517694272528999245592115083689707978234774966596085678824756488315098215658576265589294333308289084874492843902210986154737428464861347310391472230469637884761450488268501488859479099961240218235483404428911006544066886121873468108742684654605480984242046732199558694122650404556355088313696932816684353061687102423006758972046180978740228315828111473627144343558067937740076373024739723680533148870527067152451876747900297135089298676442609342781548188700757360306968399077042899231841397868042394027366180399670035875404069402710147858807800838443920354650605147374434078989917928779601589446653766808372498511915009419332405201418985197049681281277187512936484069595864994269460438724678170409820797445172901563553494006888441744798910582274591105997343064397355841576231760665258373096038177206599334652061902054912177171442697478716115199573637677159832771379023210864629562920781147646202213322796078709750262336797065093614258545137564992162978528995429120912767886189712978767916069864521702849612965916334727798687167404278966486183633863619368031091289249529167117201588518605187244859577177271603657086348790150528967754438958402942874646496814180460466789692107087853291254863125961839047263931264807902903230666176767437539426411324614520523152810803719439024975319623303462124926234356046209296520664920497654835789557753466656346058806815232540609498505072503575987073115524801423020431529408716102347375120235058658834544520691979106148337107146923673047358353074566556590261715254651406020082238191158149051047596907668605224208350758098279580725951353966831934080455735102485553922187219341280883174248452671349986127827111009025688313777858501141790952610890195280334013194623308205995800265481645370623094064210857802382040303152331242448747936525703331041924757625357328997923336335397513203160370762795197305739794714990600811877484323039017468407678739610064977550525324547434082225690880674403022879725960154491360623903992684705421275878534311801857073489520128679965096664552899114081779349500885133945448705823031307561552187478589555933546731685228404078255172702261621139901344222800558508301699448590185018749669358921119240469397371388571411783627919590972291296778955749677992520177664692037378578308357757187319149723521533098006168393832375452038126830942580135107288101472985789591271686696553279871407736650552865369757760398184653451881130031573728016329729858716302846565284335395247975832576928463002782755975364220382668580216859517690246047610534204323491987637426306474001600233337376293772212274389137536434300315608767994172731900100264208904068296119672797490410495833402871539689068856798286195804462585632572428865081743575606948269176553465373967890847143496380520916477622168854717390479521932109222525053893204985468364543524092375266116306563296941199857020782715493853806087811648385398439554724906182220874315187195520025429554366649107971569418477659793767752969364434540765334783744422321759141169408897787243744275503506274377518612155144827479808892139327065648035710651854499410962775451107394949184317872499406785736601430101178005486808258978513627978337096259359139404753708816880366819418819122298609100706699221407095522880996233626866646281708024577156111627834987554067977375435156180173459527758035485356092563383040559238619720161380953874674966269005120068836324982473399319183360326292441049631943717637814102015292272718360007237919715188738289796516366050783042543872700201313891127189908066703797062761756670240947766880734128549159817337251930880252398087232518934333679579189422299249230480108171219598936647087121987020195933936275676991731128627534773886816062330302673991364717421827826704675723456081295874217210118595964313751143581555889006971222603628895658267085409616277929348881439415928365616402638755748929664242423881161580043917435002880859016958519369287100307337009724631792018953983890196833943139437529100510021699548693212474480295224254736430456860353896354906880130002589122506994165482374937379979444284218994488366364687871589249580484739415353433474482243470600432978569110503943143937739849226327213212046491169383417529286893999098979835913873012645706335204018072718198039335710154097507921174353995660736172545252722907493959934279425216232143978876941546994528313712299091217292411036515752393637702754961757367983214349915218706325322913475834535385694713052906543843034370267609846681126044529324791545497548000631700708623278367700323402472869172714955096013631913868222246974854727377248751432566119770775118344561657080621084634360402570460389623190422362061355238210101503677212129495017823699918181080024773383913287658893867954313999882472969450751892979724336781709236243839633211907176465703666891419396101371744289860599499377037247001871115027703650053208823157030331781027900379309570384886009579572054024637824850543823651996039601772959471123443276571803605562573595019976778732691200406463657589666497104946431730900631779177157950471203809416144131931664736392933524425285922067495755961069974105667174209229848425972134055392731880741560411502402988205607335779038466439470350964578346318111379840981071859292844649906769406349196805681152451322039948137226888456683067248212807243871172745104977579319609524117128728203737654499005155892125808283378000171735124549608765317869683929134856419036332335711472970411501549286805386048109658974322605058437557228857418646197221201070433223537244819637263592803650832457183967334911263530682636827738026229788780802433982891045976621876730781669255828066093646025442567284958389389956329623999188162945299154093326192778810749302388252411326570190303083089751278004201363277818671665715614651568925857691657218173966234315887473220606455001674623442933882474948709949446590174651922674461779609206238923020442094095896928755549431281439365448797569272740641464455279851893218351892361644814640366482831211031949130614731542565872027325885159486403450411334210281129574275868433261707620425358088467804328334912734472841784817637599840453176231895841302277283824781455582322180497343115057955293651218249766209827444765472381241872775252312509167803563873718445390996826532169682599705554672054063756064042915834700741669122694005648062919653398917237569526429627159370015225839005777422897336294193295341542964297848543395757938569404221089401258859162525859140403856873029082743119971797788624329760915000153782473396095242325616511062359268209785486384160782189136466120764465207619956833647628647887434933643434428793178496953717110281227105609094246965813791452670042653825785726701824039485031590914390882373198201802494218238497761339438944553650713501327251493565084260120108549662154311904686048622022866721457041108604564718577029141389354954349021375351100828025199577512279280651632592753463042412085452852574213110034641293975096928879931770151956165411512316841420240210269552558681571937676947631162078596670536132620363864299387029626523979706313427694669165530468463712243188272075396155549505195202979510489050910823044465897947297390419557220733441372649720826422688145525141907019672094063733129406665476006567112354954047532708440838789395538095297101644651641316324229850596121022029793759146712542546659242940772726635688630963223638835930411363134769764187425855979310827645822444920329645165312925826529154257308220921113908114694447404256525010237092070245461308332712185667608807434120427797254627228614799466829392122055794973904656512367734176329676505262139834276609595129911656000769400820577839593605261083845833446401668588044480164432936388043331333657345504378303349413521050725190682501908561070678687660733229511879542199389625471485583635395277091170430132255231914919362336342522489273241697123113711690525347168225348334716442183177576964471644701179431457303819538463362153967217673707340783618495357200845959061306159290463843248401975282002901144732701892041241575457091072735914635966526993458040029710736053525357067280230787666068389914533638209880118718002463851618847050917830880219510946897535377541167596850229336494235010013773267618891612926584193702522227722218278248212388533089824894401159139163525145603828139657317801249599096521947135020419657544817319644454232933108984878731050080875366459786896848244345859447463735262764268762484662800625940275422793687674734714946553671052352124207244186573128003167811159665395753681270719878309492081805246234495523513852003640027641142767200724164860179022054398483707898375511459578747132490984172400710127351454703729098454922703807968493855483052510961662023127591475610842350898686371259609019602492662031612938087732701486442527644035808265048972172850876828349683420180325287833308294000228021777522159999720230863043402779904072874153289733317940190615099050136805041951097647545318768892754967492505528170016179653802740177494853461218112039526345475495589070343685617417834546957623071962930516677145019072686339043144505612101980099001474055864515924146543302237094132647922173192333108177753622429729018258834742073725633458063904799402393097357021855994260048480610267648278226378398895891682137921663212197869978184817860247015281188479095639800384406568773569540603411732438564420961666955394667304095043381184643198321880135345162064484749066469004449522356321086711162621513285372750342291787019545469923420613378261025106988335525783125662342405679517401637166666593175998989119684393644930504856407705285422031537123613729092652576802588213182937846129543571585202196198443796494892745843271082796731042406111738362393516075995824483187929747340976729718660140903078830193555787265933952740144906108338620588634134615950466184285710613043059466861686798367629569302941163988519366537862149716342100633684457790752506122159310432428671828835720848627762449999087514191556116186689703519645211150355541004076425626192245684581657623146993805937515137570404469833810880369980855804631263776397305895320041506887171768311478233254300034168232771688567547333217849934400616558114423379780955495833965637882413662522098367419694530900402823033834325903022578299498058157750043718941311647683337503363892989613136605765363374842866199340593624999018180720330973000961632595026663497423908953219330844711265200789285748263351523664463098181679987717393125577052127807508155420085450668344349844699790419366471626662828751757897899118790002301158565688357869924184681131831800651410450746350058605810669538086316531468866367715682481322777979519055492720877048224068642557220609162157604833176676231560661172723731402805390836194877870167045277682058088214521219286963731144002403940087116672024236026127785641337790327162806977344027568809680052512178778734893187890706220518726926458984503533879722594713711210754230486372145950087118840243107237297076634591446571079724554549714619068190279488517745238500526070136090562282437022878934598371298342798604143740526509753017697948400922843539699233472991977133217449362766181247046086213173127535341122991210489716023734781361747033138880134944420694230072242305577297686498433578821585193342331059275476919663487519706952526580104580619028801852544736262485174085003206759491439417772461640914762663500483533155153290403520309800374259947616446884513198484974330783920953554814863702455773302506301551984759007817040837048518934686118317846700510174579835420396258559198415939999270494605082613775596339564438197716572772071926815695023642088924166724170633702824294938567544568080005906761151563271690503602053905839832549262279812719488590564804045557110938216692123552410554306575582060260235360278799260887492856816599462860330467716043012676802548746165859100698891753464879971421572932152418003111370988540666925607439096342508142602446064135828212171018277305225555697223816679680046740240295185351066936421304798682346882462324891621361315298698999486711804392839429018092522261733799351912744956034693158706662825850274499644776265536808986901636703185668196685167691284931091440797619413952869249181789967920857819165900484458829355390919373023791610488741971475586376914534430144605950142944374224238225003108013145426919380741908955631551623718137907659514604322325041119883903832585743601498542220819151837571922056887984859633348370164487284096062982802152596866661916143655574567013563820863760738091961165880964046606300461603015048248754844880052065481981908686051447615496372886123090704670664325870203546181620430410863476182124641186648999031817857672307329238126821533042154265203975658086810796460167977318542122816712925144218858298794082132419929084971725715304979509688152858051325488352635034624464442543132196953006273292787951946036027011229971651455179850852506312493862964042673782562962159232972340052544894096269888033539459111942445797883932037710998539588938458179926264445325398736900721036418124390619014194621567718064061786492216336884127446358180495788153840414893775206709920712093095337786648513206220044140641090042147052717045492149353992927041136396402033068607400403145990465422719581183887706200747005119524473367123495182151650668058991535443364151476580468034584666513835627581195013202763789361544197624015469721484741496043432668364221241828480399922725704192137373432651948317522810439109762575156060010178592197295886638880826419326151675947719780828960364070446505671536711531387983498260644711477601416042241471125309319596922233272050892400083198723934845671767795868575352884790715779558308290101236353101374835327210005354732636179004424412993376014585416903953300605871182840347882414094606532091435254297020745631900665452433923628600529325838637966224627534936360941646974767945959962292175701228630604666069684980701002324384483647026383680675867829961993011896606697268183003846754880145383718192729887971172879264418588648166319597093537999809758275711751113588509334917138856746000182271170792454133145421098926189278113562733020846171182109761757454004589959472246644196194308686461000125926601833084966663449482490831983518879227491300464916530311468590352593972883392638168503332434967793162692572430158427577216278413788939570645254771696457033294382835452430581123365971617996775578472739911289971471562742254339886984861893394282453537241630477653937063956362711248302386163544207761201299710924554733183958985964396704070538643115415258370388347456913848788846345139241919754166529243346998739392205934129764489275358359100953823288700322908325656022200072214810129626928064328588949950756214508694418051481235537218126041754533221129066914970135051849207626154234688742928215857208932352714183468770510885120737571394697361471314932627391791120283194170231503395576263939274187003533279805175961401855083331757204009812257728264188779544491704278908459950580506232814954302824843580773078186368954527893115008026737777144812333485961137829307529959887973273953634020962354672963627645713459764896155617286503309928189710132726265784519927284818434832869644511145808269045137585910066266237291962345279968025928901477964518029232974894860643965455870291365486756567764323827259651585724060821104893907819805341429155872918322457274887851638035739268897363127788807091842559102990620680270025285686985500569172309000167218936003260063070644063165736612432661284115860301367597729990433583029577854892838506107608299570188541550201888913761103537436518662727145634698018402500666551225209064399704144392605554823514191257552598268295901468881042788136771680858071846004576668746396341617904707988907866629947775212634088435550988038695807552102736654858636028475953624966035198190658943656190835050873055801114979614571397518817231079960715242195730184639041339927330537416515557992841135902568554084321866369034630597462748448939981852440444514167746377725027082940149565138647445326248827935389561808223371131176681039960809052029507180449586673813586819022993677331387522464375724249395596851364376459391241667683552708985096894493646403132285128730241911864164143884165045026803808607137585572788427815084774434411608010285094714427750383913714768181669531528561904267746697818747607502192670152292903488410752104680702254609995857187564417613987420845928433445840389618798915912329656297878760386761897975938073890181409356130366302850857856420031981895618401699965943388837955060247786855983679464888525964031979787017689316857356373567020730812587413037067566650817923386468226318900443574406483795451054959160282270367194832689540150056601480108924765708668995640139856601142943891506423913199208556559242108391407950184080618588527209078192976932645748031926345710075140869685322419386969757281522639594740316578678445480371149517035303445103426615470480462232991899787680084457841867155194402634082236346549602825251460335136325467422759915966688476889046105376816486685070084209685015024517603283702987680409037433835719606518452221102148832384732368511975193957054711395203796549139062619047331785378365084998871152014211322264193771633039938596087968487055159945247646259877933712005060644726184325179912521451828492562642417591843160642848762047826212256463381738750619863078294506156523855635328125153016466327824562034179523450828521286373427625649456607736333834273291709169113883358418029617254640435654594487398741626896842083045330447261670665163629509174531344504693838095422292790572685277980219373550172453579407571483584027836303324237545972239151727269289196727608611912292564122612139455135023796743113675427878761376299629404928166084124345601213911936125926972565962159527987181816315950671381898535726398180327700211895444773418289556852964740594229335337362308652256880463753491094253370330809312395258468205159495774053013182853690406514374170346940876468591702225680351570305573954023565303254027613445506177064792292209965595902609704114790601832594579724396849052918696956037601163037984699848992521021376512879502977977683576994090301378907326965220764139239802272684437454237718457741981209466822871954316408278130855259172530608553232704504656692105012738294471759742631668587872348313059350649242190579653949700165298749491711927215986336457005865596750974539545559363216574290721084206428234304174923631891627055891984644536975839483451132350110947121153978308349475305088393525844607993835171837832199092244886092947737022534886118547098726742839751371974440352154347215297987224267361772068239496145209022252904154869593705389112311099737551941643258654739265016323481228286314856955181634228422272784422241310909931826284291457120902334994434786441807599415908141766519759913581478606427073163559180712877728778299235013289977033304271141743532049799179186757215821749012121256737451915294861096889088845451119691119580218763754999491206818724900237259776271529649575054236754001366120768561625851595066322738280288808714112158492937124048403731076082275939494002053696661247849476051981915356758223913657262778734199183851773222248744850366937647735765297210028668347169555651514799065294578278436443773178610290175046124297471917455276695911782220647951862916785405519023313510668904634079567304140587358451393098256168996062868091016933959356211150991291812039346353695940303677885776180334480384978096838881707679650175454049886795841345548078134897567337221502688286857208856302980286905404709246927839593990103399396497181763116819891807554651721575091848257205556942369477894089867190574138677524966387955848536976374089992612828471642599427449877101228921417355774622096441004425740405143515343906606196422529053059982126845438219830854319439785685476414479769786090237881244559446676563686172208633297575046772010595470082979353503766971591394014661318098969930762633157922918634876837069752677117868320346215733648082486054695015032044295661301898309088158131365567139449639381771631572864240999897064744959203840060964817162000153174524814669304234550649850857603638634295628160319487623982670988044352153760056746916965557505412877730430183345786489595864249801590334141109557569868048570132458060085358176306450102948560421078836405129681338158829935813159688543712906509719140888027142745523393826672882511202062810101542806014836666427310349846385390951518139340835738599543414028330276928781928482631556136645355247474137792574503652957836924331443985347474769202331267657897101380419495611289578119572051280626117030642478014945387298832959669681236746263222152976731547077493390527267723978421177737825248370717219775384041191334684481481729401022427871053539636431034174498239689995806721978075447464455778341900633194760570980694259041428600476645249072272559370853859668212730878442671332035759604133294882306943528354288435773487359025148013557786234717605185665754538535931006357600732853402792315939085127701009738133742122175471112038999436723579634865760684222243419993853338032813296407050558188363950194597490556890108128639373133247324979519340104783742277135088180013123902137828355916001957691844328228128854602054264706728885543601772319689894892256057826219900858911207845676134823021357439477445419198243636403982257296234836263244545569509110205253840617365984220018044471974317341433115051053166028337352678237572090497632051139553727951977081000516439635961806561060681595491004673469346672597417075385109906615029247090091610770047578701243451194407260728259037089758954510627850975229743879349175697064159925207607117904963863485872401189874311915934895093407945404741549623771696400669361215462933985073455894040134362887942345158414902914818340158132077694587740817439553259814689506804430453936995388373034986830987625958270137175163504314074227833662307134051883523782822577544489962756410450573616203953172084379218951292222767109065422135041065831597304874591812790496347989112197365615053508261988620014761206446425446612749083879699100212713202001485872414158793844268231790639313823871456561938083383919841538808321030713778768865827294764677966496833316484794077400527915141940358267588980082986903496935525881165401444247722394850303672701992630250027958652716735898324687745018908952923717075389165264374868491667717164710674851566894072326221850068310153244042709505472973833090109695462251343341780008653636546154066286466053252293647447763176770431286923974475711381389021611629779474133467504729601508111489789264419862912635295699005105980931119316278386482814094774274603615685794270237635466606783856200731739603478573379193164201247325092788213175687648306543206554994066787440794683755187922740409059333565077761424660251229494357114142795714583739625684683267311164813339084806568074787495636464021326114232778557163860542603349011774818398011201742530615059848283928648551881248452856892924651047799038399246491255618908713850190702696833140760678679265515522070898938287558795038468847382686402087082067912700118665728765408352303480835107704383601296548974517405226918879393542828033027937246886231453600995356399539227544064736087998547190058239664576438916393202282016779421530860363156927958339838020291797314222382844730818909127567234659898080491426045774081257318261136275370774852281788591017001059087351786406524721955277002033830886344828541393428129545900725727846044120327727374140938517004668294058539468511306794557570201945583004324844695073308917235733420156843058637852618966667244635278965992661831355519475610979159938068547083784800592695909035621438419469015816492840330791394006732279261382446459130797268718316738462056402840006330670532138217849420079666463370687773063360297513363087451821930366871444947309119364821582272276654023382041060332338174576928883238743063934697201776772474755932830254608338932087594079615743539451346434094356767377293453572311890106489795054009192734563467668467607189910719001535264002003058136485326274228673158107091414651406118089086890938398198416811558699055889648069597584766496104028063945709436873963683015319595317552817099010429776490888818770124797197092763715278690203264959078640535442826930602124469278496694019516462865793438430975397004547354049357652573864487985105828123214916135048134437806840067296654666417248665619608367319162453341022132342196648446232046613914487522150145286204296060885501881051338852534063905460869176195672750249664340741311986905470865593155611857881580718259044253304259433639604337130627744738530717080002052981024282177634006607207186398059165805473378695894475937127582765807741196401843537827386675273987491771906156504636031710394843938762594266839292334425387668275784447112803839774625542368023809348380383509693418565879799836503858279568103456380786673327824328978738699361525910090346647496525166590558086186703312944001567425437483851258813031213877861704890050569297770098075470331156619746974694514751717378116239446910493855037263992362839870754506628049443733387194266764721316818909365278863450607266635732636874282525167712392103450650056865774854305466859723723276567956698305517076432464894722394878465219247654076469283724406987127316576719869020784172917981613966236016034713420134360335677202898123979184910624776330323056244834601487059958201203719022281825292644779329202996028983165287259111651305697316212890001939514084869225669939161918473243894601001643481901824332348193051128678529177138246742891591804601133126544401802919281507025511784547204023877118861174396470600614019617043790950408549858211502687315178611986519687434520113352916344678820572007556702985748685046207999812767470555305192198422616694782894997687590661096836023166508740612594338882217671504442097957202145456395192171120417054148751300871135208228441797002828244177513712190277451073424719669811763930161982059575403364140193311308537032001787337900404357912815716603272444364536766763699338505303573765283878017233263062334311638492808703819783253378062166313321115030935949783550342880460362608619089896573775636979707478401210007577858149359377704021163637334395020604895196112613194280859800315160961685135770505964845814405349279180572144421420379904055145258702673707258785989135822188595955779530094860765545360189771361482651470513158324179202845162352399755923136926378274387352473135055163509199835449919822231304085977234768812431136106733252738097718933934148009310752694871051822727704486818814323018001055632627846458500661444543245506378650687299660516108212047327538608330863913257105630093152050251565015169556294485534872423773884328567520207827627300456080835315073659294146884055841062753089361404821453072922984871530035667175263470425623837414136277263132000462402984267715617007279549947087839504325164561029246546953470090885277165554409051307230188192111479347159145051970372856884139649946829991433722562985531194217271814501441255283721166156012127767387609591542930023897456601410740441962224874244209831027478339055828920913167978933386522805488524440315528963233179923687093991021793722535115283479888331097684164496406250502565989327070687310725292259280255241310172162269052099801139017412868779578747848215788211160554078035709263927461881454413940375370200072711900921235756582379818083239143204713730086953972974989929206612406984158016570844891031676506894890166591775703807536649495334060861674339299008249399992916795421161347938241839991143674075213482972908362903222823529149725104917349682326114363445280365910399363348260687936796169094177704435249326813821570137920628207164890119992418773743150332601992808947602566457702112061008333559504184991641139827232766450434776970877970467918435734072773443934334183690544931874712057483686026488989672091708911690197911629031712205355219551999838762132099141868874084163998042575863641143167477706795406435738607563690606075539023073997946509037546856441733719736648854408945487401563640603799609598893119780260444958637906988179901447981366722176960614066209977370166398586800278717432639556019248261609691990853255137051617959613163774716968182852370740019857769790906667641845895772470582180790825091819019277978320553269867917781143822862786445259863958341307946321891058318575908853870098863477729012928149131493923927367837854925201516995578673759063792258395303934144267856147316753357178143759833600533063723431467062626157035746808852903999379378581569893517055426612536982767083965948632332051873246887925199238499621052668418243628807242333274792521409694354095004550035534936874010013789960257313261922454968698394996413390508353475802765116731404430168791520703441789161998531538789739135457076032149791995397445379747543692058071271833754909128049641581874314646634673062108432140379998448402310264114145972323162812962088920029342670938099318148202928665014893699217366534473546316634487410309146370579689789015186764578909855826038998522282127509680872847964953305844727278477753199584018076184636111555377756087643003656066626582023882648376281064033973699484566101935869540238039069141571114114675717605537518719386849349915685778191209297627034970973800634205940683942388487894825586144267149847031477008274915640288566352542308232443560619743900207010280370669970008076574483337079432707214093067771329676661867004888172797856394822312085351726557320109817627421571454606932675952161149779221414890410471569455438930962961018589586894610200735758302699135685062401447193429999451361171286852655687685226852683903497257439217932171700284251510329712362357095167016474200969391124531018630509411056225858681273661653635446318345671348775115360658039263006584615503838092896149319333575470460102257876127395175609280214817858648553232547662619385983290285091299998918366904679192246013436220315850992353034625548056785181287780749793215132122551222501851127260863300349629113266880849403945235377148769141632127178229051450094047225946165548812845088482104671213976941495735997851129010526461079199946301218123884780038977815596326248876347144267805807641049467616609734318916094231071705783882708888156449831712984856988494531331081875625885280699629961886184925360359214921349745394774971140751627430855218165325204798427138159555567993787520238748445915479626058717656210799647556477607453969777573308885736321176822990675928097273581321562496213215744318824093315872792994396323503286829443386471520495139205103322867314038058661555189916480089815940335697040018375693920575243269248503308755752167461814103949976398277052554821602214022421398323984431261029680415264934622858019106866720034527075553019786274457230037944918619533904290273512313873836726840909837475085662253998539288427965463012387405582569198040415732710897926140788741390667978870133755421280440350487531215804643612238712433884960894958121651052984736382449896113666718025567962549024680095927218833100222286975380452313463868005746158398285150332459973475816370315096357616746348387823822801565669053720802739988506279777126730706564258219709672051670736792754082755238144751264886666726680248018027475342346060901738945473740261222073414679097222076756293937648717366351099575270105771270137672897278245227540123822729850769232575312141403295959190596325284220946962062102605255616281724812924247775016871570736848407650563565226087696608058349624610464528098418168485780235707359602473646307237233287964043654878924068826031091798206389622202454538333087761361572780026937679366054978807859822903015819820295149448201089848753567086317756548690420321886081359863028202978626826197749043767511620355805627899731599165152175545369928698001263590531221498949132390314900966966173618620923917217941918511704203887859501867224133125314506136283504926874577302552100304695499429626434434477900663719423234702442098802511519557079292847026472235316856252187419048443524660107460649669874036716900013755097498365790005786246330185193590056783214215587609336959178870627726918785874615637979198470801003520842631989769540008414675627728783896740079042117855068972364807473579509075929498423871745054500613018327668812148911140731950999946967832085799625130081689001426569852674572503595926341304060779970562905611760695755510197579895854426037015592269322951753489163490529332537636737172556042317194725158875657072178671142347159212631117709206022198196852627594625145267730645102676262941741899610378860367118538530802460484232013774935492361872454983487387723416693265959266290561164161612458340653739680041432367079269452137361794608269164167960283840243150178924007050173108314747983861720694448001917958142987859030786047099911673531403005952015366770565030024601033360466018877242674899660487273914680449537483139789900131187985720225303839020894602566419708231636745568404710891272005336157421411182634486070719416804670399028329717315400359327703273566669191399002894283363795432747254129823545952035094612145365227507492966075607979265530010268627577594627717833834250374472106416631446238469469418483502204944892833866844612391536818548713543224053647872499876851270036483973428215481381955240794563181157824642426690244616135263626227681876121844734401115502224887654539891633412814831915707199279964572667842701129328026382148270613358150838182744570896135502701349171697338805676988063767204522326604503839924981742561153498522432134719529201813381447291164967565006171402575930558953518507954749147590189416459628137056520472036225943018329058163228269189079743400582801239182600654542409414306892263170813587223609153262674298969513148867603958315280065824709353590789568882082290306457789310149739821057213204341461935465642241139595137399164963328105624556424770371384318927978364705748514227133566171575000315625968455902245363300020351197857396570668471286385488394599817512061065092596221604778689522659539581989127293288325120170610313634777754618920636483142724807556160276593093150409228435459982041713719131489947301220114723034700734200521293857538375494675206401600022617522807277480978648922404068618211524093173292405712245952767540660481389384451868023290742512279746291733939363886552181995341352463436874259498029885545612326394527566994301504164422897044876487379197786718326710576873932233672327321095378237413349498664157381775191561734292814084800951658282793388467361252175377159067075447562400684918076030316490185135941632265046629463928036716949849793607679560634092159528245927601602488694309287659717656525941185272163332430878155405066255035671590436389648381095183870735024902129059913962484397491504837265710590269610093866302053268644415325257216704992956660858656474110678934399321969739343005349204655838098473018664904496798425249552645481572130676950726079534096363477680279475690725928247597301774041585542143137556955589986695073874735480855565756463615841552782201124067849253576813919868700887004379263446856191807046246584550454514674239120449417170321779787759024693798932559276481348541478056913441701907569704778103926525847767787188250965059122032267321207079563813917097311905986807687705858764743354062323517767143269982586743198871462895670739906384463140172393326781763356202388652115019701988978183985045515737809777434143241407542216680645957128292114932734265236358771468142218983116902419919568900756186196857218589574178698121127947237975485912991269238466087102385461170512351641808142793509975186261218596750853520398585049450559963371695570956556275655339426271966831856338519453955508241518288842311820367171655283791658633699676012091172448822573685261120648915500661005784653551553292750418136688389806672765332889910350075237872783767401227497159913136782437603407631070468584891112647212648822319564182364959618202790224148715455500628231894448770408899315180197152268056947686433392831549913719473356611833111852469795036970744430937514638682509820401139358643121605327088076565194552468782199063465415104648795089591954874786448815260572496249582999189804690155128506872565063204172067943645194240770844101178924500160561137244043967401018442168120474078380534629297107518246459544370381285219821292036148488383351913270443229176278759621824345089171478225770123886097703527205903858105879367613255515095548911611902532431802864917291048657129003384252391942628101982407362933803073847517606553643745204225625529313230556899671496131956199450365203985441562308749044068126602073935577663057862247290368770238002017363359702899719731843807954861234456575021276375446598223227736849553185152322399089076970096389115623061093143946229432532068916290326115304417320949850769136450359617052022694254090454799991581034914941535167400312310274594871452114857749164326695517467887055750513003840051790391483637811441392133287719428266763768328128839755175820696213993063145050221577007397259762163194175515825358129840971824008176409381624486243740250241914195950164145960701819829881924630206236374820853785030778503220233035997347503113600652462258706702907517474504842116667232443241068331764368450322121835698634682065612520431280446242613938750812609343455805665095292195624997000390491438922603265135401233382636895660833886899647298862260880745954294048499777510595775510574594791311095763780622468724695328712996282375836294859520644362432402471137296968840718321148886592881920523343645204044731927322406695167730193235260406136031456309244835258539791027643311370171499835020323350174147943759191454085344108148768624815609303791386885712469611988027394706184431640241636925606851755303952425840071567406298357589200394561554355906503105173443431066285539577899097857129115352382837409844374201368427287317084665666388625921488285387043757426022794142142873421636669539437334982019385500595876144528195442615468989537844806635951083083844363841522327557854206679083952138977534899247029541107447452826725712247577867021349470172217434749718646590168088788479946994295342305055198617796173776432050580661740358738159891003217014427086397263526228076574151167251272852062336072078640701044935486956734619388331337224341837113694143932610342790169561288872184803998860966535708987550558002667710192210075477991589908541524837301540124720177884574788053886538894969782644647401695671272062083753641706722709590326419733094190375819735332154993639144593095857635542168722710071414371108713232455952217335113672932588134745650835486868561040157468138314573796085225470178847636455202167964619786118959189359850210768632000539273716147837355215692110405878425046278236265326339733567132946836803447307009893366754780902969556920676246365498323896785401210945638959307564523950026950328263811734166234861464091734557240365180432516707569288357078005812984989524269743616328145832496988994954638900473971957267186348324125592930719744405884466332908741539481333842307078980357775561608042235020180201341751537754144889696960804008340652631084668145129060890607235629980372502546212929379493505989589056511498648074276270402390155996008968972039051948162275794015539959031448203518623339453282660334038803412785475548930530600772567207796480311927412783195008550478188510297910853933778284077468646825402879731207311439654152063574490212100246722823699058875783677429011448630478370159373471472256497583013185118763560413845250266509731030025085162563307246407407438247736513439880839668635344235441453712505840956581457512291823769978765172569763599930306149226610199778194546132884834168448704327173937502443571941528903715830040493456871974058334957294954930198780607886933870393639467917490401035887302274145555849135929437840017299360603128193159950326316728230297933261844485973960633032007925120043806747985735807750448311799305950500967138280131486758469041997614735772593162967788670581278581261462686535777097206269290119339586946607360001999527685903241747702935719289149310341444184750662254769392092289736776967822018330855257367227803023667553096418543101107646901613790686315468879494831922583057207658447609687842285108258741895259101736565492097589292623107360571678962903978857150413302401504904235246412380362206153078596162815959228173959792778849276823676661712386149355384872722101816032420577761814705215407866681578478458579917419353035680907751785998795217828505213013778919335484127458254502244877713593677305972260023872343521644875360238331969566166842150270757012941278791596681740720943791645004382089615019647996410865124258271340554129346275144684179578699354929589099422054886877393374106988859197848578113231876865329088079383731075667212547730731120674028121931163826023326095174234009396789394532947602610190352119674444647849098887556130112966833584220513510507723239110449728790833151518125735822021020384360916053834973254779272065764511694315660068951976877795566480437345594250937788831570727361517784312736180785000428112058552285371360667918699811788173116526970917987427668484559887483689095608230661868504570898753234382378500551516445303961331215848664121319466826933197727401703393787608115163311449355936051554627591842112599435160152074169171370397990120734938954113214022026320105107503363076809782191756174081748870061274567214274242832424645081630990511496335794298340860400541763127483416614781355165237184639261015909016769458902716215111905065179401228507750248177771767741546579908927422354035023129896273481187138675485985467033976125235813924641524659894403435610262384908109609304801446361621724243500924524673320030861602469116557479990898959579919040072518092768704947742759882345656933984284385766067198889074119507097925037730378081118835601453549662102634622274581953002192460302727297967274870593656461878110035862510122334643940469708774235654846823305707497233301732984436085058448385770241560955412510153244834935359902902424103352284437388606038813383343800404849108123290747518426995978438003573240368948255674011408023799452109740419717224883969602244387099984177188678255153682080045880699070869748261421453334102240331388679231195678433087293263649719220262190823138933806301760618248402839711341827037050160694285358834170413467283528142885103504093102924250681740341891468148414584649753855815337334149525330537553813508003927489993175682495519957972118505882711023793403467237972115447401221786838301309041294700029786370657394201378049948139286355828049465807343316317564624534641220032471593052405974489049495697904988999876331922891106545369008926237716952875179151046251681108790851808929768359678732216599127365650219551320034999800223379605905353855380085510424606974843480154223980353370204467985464324393507468892370092777657450382914755807216281230961005002399781477338394942305958042785304308300778342657923641372572632299233316208350967275526091106377373049569266846258500972080248939842848061195436118639157250470992760574959809871652812687136750274060582426057908602103870629752585515011158164403812193407795475802910972836414419934779704935389974316175356286975688109530667949736652672490169454489478274949803341744148516983300581783670001100497910922243696146946142021938682272394428675998215679485623057751280524974796225910899099823502672439212702852730915677392524814955752590865534319384289110114178792356413512729990835121659655425666921401771087061857969465454735427892827319186793347534687474611118098510888417292229794343150078673662865884894029958761516314287635472923850429298894683008882929449196941367438025207928377075146428284750794199188323586181824200421237407396829580674330539753406515281868261733937324536469826221224049914444942451270653133848838104846353301385417355311368064518587221761931255289693140886864958990090401963273735705855362249030447113167411553649670454639462496166178891771397825798685188451045394506718710414786578964923887073849400800741456538736728460031461050568755079217064286119467239758102434989205934903637224603157710110891506374851350573737229067345841603651667924144225257421257350292377115830032223768020076673422673180055201327125771096597671694092611515645382890791357240118620505826099080042587673726204024809253815148963965605066581953531920485555440019052102022447290334506308408610598180252703285149660708639980290645552645140936475614321447798088457918812085937829872203818449536852019225798292422010967698410157864854480642248841247245775585021825396646170768037167259290419006362492396718656606495468964518748427808368354237752842961085193333718783950941224548924459324781506782507165464260509806952526667543739409539209729453900036220630181177835216269817979426563315988539452943233853941832854476123704691648914474095845874282415608677828663400603089839864251154001849393089603922050696503209017604213349319571891467410237907152719184248200216726023751891721464888440366465929884380013639265675495719784167262996231523555225814076685649908631102124862020031613160575666251943085210740804769747571634651922460248124826358023895486265669114676337612196430443791677958790711940505763949172872350658001928068539967369922969598152619669855598572198420320582789303778833202735992997464860656512443199191968777764881168779673007121745346526488233159113669161433274652926629360123814352316696316465569683999707250024086030998855537576710787618608964031488021323562181644016490141612939897732709049508224110966960283663305709488489059963606835483711342750711067590518821010631583770852679585901379264768374549440146145705971101838583561068204205523242415663635578546381823192996677561797977250121953906490419375094672360705472019623578829499323624888332026457577044245245309227284069620950022006932776633649750005922391627341313290092105297169865135749351348496733380222751925342989440949699050180821771068550241755346306761098992174116038390901271558722627884234812575591295522522522415179853470503764053204466186257044933235958287341226069748661400570554391644759260197842152682709023287841118574848753509386795722005280698058730297965292625074819082484579262924978645512183585885085763932742010279315308579369900797837149502994783382302303226535533460818391503311378755624962254292996940110469888487402031252532353495960865702374809921886796554946721543275302087324750897464020063399493013595407951365804213981290175968310481726373797217285095751622692857456991017749336990415296748640810286773611812554646286616788560196577950668317713988967816659896890172066460882365722789762337447481945324357663707986669004207252075913544249124274068860964249280221682444148176829601767765165357926021445887469979874263009798945848075108062150779315735856235765246073638210076611197491984985342457301006532745759487402842013132066093892091473814881841784537574659631791336612338927827313484681236917332000707882020634716721014707716537452129765900197575621162270886047875622364135112733901802342931629372271862585660232302221497256180338376972168896288980464944865663000958670944899527203627741988498091214681715698098421057779387203331020588528517647853364594223523892892140787146443397630116428052504100906877265276881606756339687293891106039390872397863209746820228209183156028019393843854005161043341889935165420901188077300520818779047385447535714929120175188111033662103790979115261905345277480616236072123652288114060919191172223708309685858582447024194694988671044885056664029116180372616902865239673323746247247263569100486715870558036205309012535659283391489656135015197792434201994240004107481835942724127856813517034415909872813948988642903724461846987510013029435371023847829944383750092605188849289170585388154936667271781342245305570643075501785749547970456376769639543401609660319588494578396050189924442504756746141064924582721595132165178455541075980104158707899237227622384903318441129227566035906578684154423497419184880718404487037288874200377673795405356580438782860185339500325011432500048567062322189339901612412111601853398906963733377329913174709273790745795871313549555803109203331527947550500286675250873174362408972088606842011023657499621665154492499606793169727014389047669527806699943580662515893275661315875943533435006258775058963004848546992344893855531324417251090644425135831473157785513754486983866113947144139288240345514648458109047192017975174599078713501199844818544022676302526426647350406887110619947596421536496899903598549184568112971437973584535215600066958056625996319170994654117534881677368453016076690375132041849173187830713672903284383591929724175067099339125105840608811211321945721006381820937226659727161225920765939521220214172872884223693468106540643859200819025099262943376604358725893129665662956035290293227363531605400076282182003150961599923159015382139173721059029450257736688982655392542947878937758021495636810454792092022848022671735946707129494144066552476168692119548899120882665537481527751481766566687189768716939118155034152256892946332711658358040335052054201516344943767338795436968755464016959921760650851917283385881737330580081413183745730352835844215342223370891601948662145265643643626449243654344140426285442343168035430111956769748390326255356046046288123509309946942975487404986392319389031715452211928337258734745564431281893817532751532734934523056528270847916253273388962494293576295894445337331749618405708360445118733371153482190670801566122832398478430212047118354018419583450252454888135821812327493847604798117648706253932763930578526691116548130621157544249606234779676197929656621095231435506962595556394330730205442785244999756979340229005083428143916740945338043296764191455559911148206862286013386813660690831310527456829265425555931224051062681437036818489420299569490986305235762192551132395466719015716025677025033525248392552578818476245739850911654695464813189258210504186480830197675962642589392923739103440739424868540045715640557301281567197906040349400885839175364055377330213265309775101866471969254360859453856927984922223618712460691319785523103750944819464174746283456344213113636727707570910739789264422998425836611628280682876927662774457244316659838087030931361369778927507108278626654693985390816674544985575164030628464963484039476998009069461993412602939286198344583122695675068576044184960013932361145629797022955510858329541182975311177725077717628204113293283892868433380553891375995178619178869113038965032709696888841676621635593536681989730633394378298326209777055142855939949021643521918297692528554298028934929488306725339878716926922519294085135108853931981569168906864132319241263919188920257592162990300065839131582352599879553139436636010463410438458540140837967834887008218302789038990863774302367736455858563615043923760815733186324435434180753005654574567385293531811040037936623365769561712303495698783920370130090667260253245665106749824146298098842548029973532786499340555425767921487088711534012380677946499484832420339283401198978929463987130188772944415891589921548544191849426340272113975274196039795234547879539621801023588057016206888960983798000785191615578975132170328790602275350095326004316039120885694824888693097974093492736482239056795233321387329668063880400840945681155642494469709657663932343029153044660075967087680029915913736881217201308728802116848289819071570562993698991392684417371523031438595887281663815361698122170411711789606610083363892931711563185629405525641621940430370810272632729940696477963966617263011510075927269304558036809526446382034407388622830865948354395248135410113879400575551239569152941613474455362426581558350532699604699500168066545879973239616994658713048777958688706533115313196218355352575902828387272610730871880817998465470193807828905435531290816795666002630055953340057440112964408969997688708360133224966089592153642581148060113829132950425164443480005105555200629506777803140689566729515880138186612563519819062484760905026861463930988362639942093437559047156473124364505781359219247070397526284413081829553830740092626129137205571147958238891696484007995159563441396551008396199449977552321101302442832305191543790785689853852839453273577422252485158460866482156892823131786259878588706769636460394010292209455973598543326706322900502439752643457136042965588577318253945536777927229896690828056041941558000045811969078938113993224832869356341516563857715565575118095229304307682129049244566417824606256098196985078669041143917673499146524221933522953556948809165557702506377170624453676948293988849397923130057519971687408975266045184515228592523542421005082242568457793873895747516408685098256854885623562905003631638377626305805446735642618334839658881504847369545407705410150046140921684219638655576610901913526180146607762849474578947696082478127727117768259941004497960681477390268492498244633513538988424989941133394989450963266615425735283168471306062019544403671472494436664508133366621727038579525085638002040159052696684885394584478571654178777883507539768905140864693336650155121639542947844330258579152564149726923191117647649436190482533489110799464673756961364348957614573150864101307404875725837304770967228458719716072000294094614201062057076512329877919442433600306622953952224192043821620127900275013399463776962132330059246765442600960938639607171401352397462608012370238375729607164312928412413920665228988612555136682966143117100809313530228942637842615687884989261924192806284861508139031036495909138155518263153206517228840264202231776681349830851115608719519147020480490966153007194493177979148222973669162901941711246631061464055524891559183053832036275051893749485351497852977282287814355755171199147882437538984702803129231496690215664118566744315516767470081167862882412179363732877653875657959872315708112198212434822144524019187329990012457268853361540079583711548257117211611419858529036281814780956814251894526520947315386291917211455963149699555165555902363094617291230826504823548738852557198852154157030516339501550618196951266149466429255113928770502341085441194207342820062419103055976773748657297502523834593874224440149912975052988899120917203348349031033549208123996654960112383126109984852145451291984610035538746033948312661287183411659914914514187896444005368607342732275247818325775405277931026457842591376181940520454282357803730557273747013933772705900957006064428304441803344911188747254536210693882759917459681276134153742658034574257072686930700498199898271072661079862510398184999291556881765294721001924065456118938185437313493637204256354911404668774296276528936015930095382414401723604546727916152578765023526966615786629005950476455995919007125655387513305830344746180529097650353234739996758017902714063110316931070601689538721392292798740108815345893140269417038130706933659154414347087730239172326035548558392715405428973463241525111502618772157014355194070767321189088973077864614173697437018409702306635893443776398119702446484595310995719581540700100875162360938295087017451051078188624739886493334199066613557001987652796385753140970571061837324549155749109714630401006564082033771108885295374086596253753996403552497263842986607191838575341654930780767277119851150221821909026986152095756851115240221366113529483049737030160641496745771653221414275080078992849967434518233609251125706316392003347932729851525991129370422081652297923001215202939699570827403492278349784578678404584404101618502029935158913874394006682893046532365518187526925382059433678652925136612256074244986334396426633301534954833968192360072128811231082620116610262177164075019369675921548496619524175835758089472018910425275276080149236923028959634116314006476425522363171867468416844120028466319575424049786419756312134396042768558662266281394992303826079994420173564583722683855127242848053786832846643412845234911763398264176944994769670538796771323489949283747693707658852219492410554882794453577949000563336572081525288518013808055120809765604823358061661888123678802407226085714614334274623141887448253707625601292577854758911297538881857222677606053401629018188863784482885458187927845053346048768050372819059397158110174448276381468155440068642606019836917592999059057999150124285193004900127464302856172853932229365409417141046357086867184565892553592164126097242564563061079402358061299323577671510341115333275848160117434987184106102494104430520088988438632578376750567181920262684082690999330523096322558285883574545679478734709709914118578677103111293640153844308117505963000156090971263454010401248036283833254402168659787852085641535624686472855010040564402616887578281551779613088365847080311241757860128946131834581742330964659515168643741452375535591541110173573886755451661152247087231126171762764126662342777996020281659599701672121376837449354365459394881378695261070855469892912369236069932091358544919019406718906697622341321094752821976890875153071540703020404233763147164231730364228309581664779024802356333191845422407120280308033255132468409318107562249712892388405494574410179446558251153021373061911026219297783691846378415485077209327213651476159789609773012480180485818140951898643819246371524631714866256823737698298364624520402502783860604765526252225763629790522393752345083741049440643440973319209155890098368653564367605167327167647124174160762902827417820941605512369584193329535648345842739786821254755523483348936855235257499051301667099313453919823843585366039982784484558310034633389329581925560147613552957708582917046963594589265833073719469917046826470938879771563522687796506521374977266168900513233502315189848420085300510437736521178478972183258542394940129733250653127803964441694640815584835873928756248224704891742895183264218989327443156147201221043514934362101090038238081573313249659658159762451520852043625474042642133683487101098449199445633268640394277393897718087079627007369116234266358843181399812185164852875380220686259974424112469499433068526816607153050093236596356970262779608863371689926353003713876013169799007778803098214959491892785362345552357384571655433123159121460267109643437225725550339068731777651955137482108179807184088441956117248472148347284933186256921731464700820777980304785551511989291686471435541913426874228292145510806452519527219034619949354942769041790752673255682895403739520618510359357362306774576346470142320691312366766242867478015645213803080559054492085810757809984299029577779143121869649479617954187405421550644356645468911716170376481360680283928676818636569143733134288560360586172493382790954827308998101523564888043358284484094523925189531444386111554021199565746402198534479189714799781715309015635437795058821564391388565333746166250297734740942390002504364961720699856135909683336691835328833569610409198760458250033311606349782627007781493266492416718296102273220671108233157140219553833148553445724532672938282199010586188396165250501727895033583080711652094942325461970411363567695486503554352315559264097830890498938551927002932264481925102868482867154879666023295728260462101660870175953126156324112798990940737902315179482372352389389297872125079484797819900858261887233486283702381211429307779558520829453510518117279304862457482118474906456390988644142138525846503100638262282679873090577106021528361505412840839457273437314340851771846170589126876092627305844860800516343609373488394803699217481069512089691483838473582268944488863527484433017910890029036226512405141836602199335160341868772947283198416763207240366856370457240157464100933660553927178716911427134350990747906365608955270044848698561968994793977765671318067555756854399573944228262111214458960665421100202920429104874838323839091479591395121111631349219354623068343946777915216391776551776147849790336178978250038300366525239463464019030585044124727860110749044903783539767195684869240907407135835189133359239703346297171144245026164541322098835494594887972892790520339238033293321524285427329086743564388658125802946927100398511466824610863090879758883063776078624848696075425761132195799921471464018116802585535085757746736406378160158286394805699028587261185964432386117419063280342874723804587290845345287146302688644594419888266050772771439852824274239112532290316729931618681247942348067851695544745727840118036673555930940840859692410706953054065436000293165942061367606461300789178249852544774343854254561050378127722391978280078692583318782052107882863256746344902037546426108669770889477714465935687245147754587365107942745486874752717496627198659689116353662536048360294515783111152399641060300451258327098300424505999246101263012269050897114411076521683535009675746019559090789793955237411868648715977639928269674940611221504210253701584190418878740049460642712417743720119202855667405052254491113056253962238250322428996398140051436381878198392882747041675933665660641242719828923235177742608905457335590124905827964474059508396716206570336820794173707591322890624098932663557030646486199778451251609138625928098379844495651625439601397685261735760070315395355726696211452498245154025869243567285597825797989907796379500934928965806971685917550854740126411290055559480296774029195192434036972744417488624394389010882819708346578066125823515467821515412492229362910344910044419194556470359347289672914949495303560549228278917587674724684660703806374979167708099123484725024149304064915304712134731734618373847987968600298272332621073363645105740584584305651914577556275866152689763450326244945763194305951659996931512953346209835297420628614883071360428725230377557501453420522707146470831220915673258492822349709933222768211141976209612667612941524382432961582997021958509632853154519733928754527881716865888063700665728078727481213570318170449481828639873039507925156292335982512579695692762203454122209632184038025210065410936880986643538719733104614450646921467461596102117050969934339824778516392900075704322744640742622579743752587400865273203209484581344351880744488252530292139762143036474649191711193419987677204543471974988481789733686089160054229674343518056154825724583660332905439245137873499236210234591268031222639927866506308212950916856036547509798213241692136228666134170577766479026827083822778038072762333172469620858617876763408766344612548554861291538322268019715217626169894613701965584297400815637779143806825178118669352738404006450989524727493005581890494733422316410225322834776709528067602319120532299154031190714888552072905492424248381729648075549107769102879120739699087485883241527138377772816896161167843125424533911334414581731108665216823222746186179770198825833396537881624495348839247053664393988053419491396430345286064477440269676383393312087972436405215437049142467675616755401463332200483282852924556731590184374889715444307609657884209625484025739835216739643355600985628978870220642430413568585218243755418045391976592785278044450134250915296461232272097529287384582915248764263290671748767477064627471778145907522404286718528338370293980690618305234614151892374113573286078458992173943620933309063119271913966545296348408058281456343719547137818742122342034013606210993430012515209623622528783669743255634595920734773502927169495656590273083090202204497708000428059280595969843469530928021142237876150118428219998505498864927522649604539731529627275922882662376476531412612531072640303076217351871740005594078667107141885985907062583022631036456506289537721137856066203361180781218697878808855856050705523855247450441977664462714327012080507264753141427969161271332021158061494857958245358950824148873407895339783415535928061199650486945120083890527372188178467093501013130250605631405378919585658387816693095739590670036798366408260299875075415442993160384107711824931379148444671941431478211480901122987137162780263207230502162736773737311555214356747434711327228370397739319428522037453309987931534273064790889744415587820431449726689053116610598702293984889255716870304633804066392350717674918729726932808158324746474439989932446891517897007216415254552229284426565855185065443639270235752631309914428228976660956780124822927137879676227089851635340090417003942367333102723825972886564518887677255794030348776601390669456422930385180597095421709344156157875839216064584757003048531345611879428055183633727222075241496528689890632742763833879213523657340172437795422001003119794960742594906901004037422627097849875907178766830259060755282500362852516559907364919706930442086698367390147946633633762253255833154235698719068867290306265121549802384426497419636931915963297225307996961139110019506880121066942506295289856031130224051008977362757497237600099042283792065477793883763639498002813250570648761320882757658205631344183982990416949784821231560852257555205749821266791395288676714544086145124382359540166818975158395462053391567527272547398570794692728248469278774378029866839803750719775012867175716775704356279798965408666994113844043908975796037333752467553782274239783694115554619920952719424158954310668975859578380725668675984427625126519096684734613040912452075415317702134768373712943601543605435240531328147198670702578687086930133090238636290515141227456361678704131702242349350773890669200890737991258719342573458956300894775599988141644639714259725710944436656523795317430966691866653367762214003411694268429611132645732669534845332905876895247757072521343791409076232345075285134889735284632279414483909934610740798379320751340645520679519150507682489897875708441769978566945826841566600508574933783709394585694606117873345632107726644661032205988217483298127846811326762337992965726418792471010802691460895734356233608041160712630129246684388531963617752171934818298748238578469147930214687771488356897823800238677479680186877189368324875223296412656144007604105903773106704097024294280507378295933783611822455761434432712867442604550129732525456781219340911227887581488954030209338454032376070792810708360720142781600032675406590753002012047251753537889378189278619534099999968584443541892406797285749170204300024098223983635089387078238857083680406492701319106899696393417809313537490572917123100885574873699638881394413104732141659578826927305861677173772723269321666744806646788387409471721627303211132637131232483433589627438309876018698219897845265635027505826124808539417454945161937434062724608647227551345728712260827638195579898238582009866365743118798836246352886336763356196390590902828330350937018076533711556108798682928416065237639741313727463287905136657982528296583092274858451408432233739660908718293222273042609739143052351578772310486756271383235784543148503398676918495666079980188004560653708811744729840432492484415997960345480322688317746613105339737428058770069189349419878757593402248169907323816846945133419036436028997638217667583453288568626079171250313592374181468867361933156728631244137337669789215119894616812991790271771674711303457545234684629936676350416750717269592025096716792157521700299132558347703004762546574547042835896457615177641298458067775365270069169959910056944789298878192249891352067968131982348108497503635854826830840683433179121538720681257088898982968708766481139537889821229305692573074738568271993808832200603167544460149283275182206867250332512317346366491560915537719081601293684721195848237267207065088897511988814463914255401155300905716415357673332979187234023181611741905708976775701678695324185245390355290836364825480841858909516674313424875524919533094721785791079883489853757809373629350804636545314105913753672873858291849074165187251997966945395680977693394504380873580949093211677444771517209984144955465123526769643817601246896006513704572242846286560128493924243527751418197343863859403427049589714629220167011883788869328367860171235131927839952159197151681428534981409201653025514713526073922338937324024078754086071568174733354553090674075233996379286232345270871923836871715222112772188077487219124246921445563193257462010902846630713939763031304875081201791700872427327410604377638182320324421862912473425433531155245730855153639585819474918613413660689978927429046110436489599766139268028256350381650548640158399133160319360602275049878833567462548487823938418685250897267290870408257927854746034269330235051727398778087303116392021982977892069149816254153032081802145080051008526630822413661851238481835903301367433616707584006928357466244429404360225700433203801414152108367048048344453178406582511387437715013788540722352963160335249208056692411627526307374900158543113942284094396225055431539952651064326487145029346228001565649704882667557404946679163520090564078949022602051574767479002723950292610659133383450333873434532641687729567519597819022128011436435305526879698075471074776814853089215794686848389824272106891053396990370656942775688563680100043355430205151822450158525842392698568405564649702105210982726939056006835109223377499743329522865160874181285060136375720414567387503241084327525175082696771409923753255582752203517255553894063396716632783586250250042638669705550999150348487368981782226765469531271592035470839470799507168318964178972341406214331199145787868935991573439229491583561675830187275145553275861598476318841574485686279607805108870612435384526727106942889788359443661914110168612644907570720005975335387516258297855160197199699945101193072301399094922127933667727715566460256789411616910791600665031425488956513711494761794164519605196438720612527063665267515915008040455310771964535208715231345977333189670912648913644295827671475498559151728346687715654382995154280746722751940160243873720531170302158672881363094486725644403156481254643742678121685031261268510011078573613451542875174309872341975922231111948237333900033165302878471318075748003907321989897001091135106074133535558404741567453084320484421965698987655341656289672996966656078481507655569213909368993524399214745875702471091468052480863645071246139056294957265909847190631298036234047009914729960890478059964018763844150596053729750079821880572181199458331918805082409568673468250265738911529388596130392482358250593852556199907130891187648592564779058453355110681434348342007656895037268798270824095471501317611716124906199434278619620628254351911959139713736488747448701813460973368928884338250837229406710849105020700210534212462413243144337963654065080263184776816586897265938702541279812896220972636646414095939562589505755057852416804182876327880647104505140758191176631042191820894717359495480782888378461400681970051412214704958916901209547691328855107004190032681814728300304653756005850930455586658978860628570721650200562618477334248270929149711644054516776372456858207576591353963260843693506333030780217521052527514237022271576033950308805671107840229080460731276623622146528447009992588761618425180001784902717954046383711949894155066093497182326763909422237689756549631694656485440397032082241166201936562361345969694656179884831958647338693909684241616117263936816861306389937782323373534107670062250804627669001834366729217464060398961737323547193639065247711487447578972757782098846754590799671034823808330646133828665217721162445528708473589710836861677549199196675454806774890754026033781912825715797065357802260489158683933138974033188913843305636129677694640526708979074008818535339941724931290143274040993594289479274618553509759765202967712125500676005263481935767120780495958597283325184584944498957353364113240187752316846404961481956147053852017748919204401510904819535079429447732380069943471176703032075147086929965454665948545605240634324884946314251529567786896286725043874891916996043544584770480118157030957789344335878185677257122779181058187064508941600739172834670994537585809298507862316819443266276092069445326449626676252547091285086218250099976832108110333872803737501867441219074707475215050563057986807242393307852015706616450834211810766258746900429048703209904240685309792360698314913795575922375037528506296447283343907088877856457453301028130429567988795295204935473244249296511888809430770011858705625616156503887613784122317608414120435870065053367549609049017722428166852988179947878887483125900530655545690200641017794600301271039287571187527728539427820075058620651774043825445649150820733299148771205978855020950459298834730645012767624494309562120139507041093643554091213896929703304233679195273812311304930388319964906242738251088170531207821845124212845607505976849929283007943216942201628345502168352412514238113845159809293810221939017736279643190772065731209391619328618184689893961100272562055950616567574295498962406308392510283774945095415875658112732287408192046758443768702335679698985987990926518247981742197096276533342138069517093365690306495240455992483189973523996243284012111054326501037752527693795474591950498465697631953902611951266222562936047496316067299932335471670098895233318643649147797799529002410347797792618341880647435383117920142332363756112729080313795311630963454682048468970520901417287083114185979027409104468173831882411920778482079677112061611645102679092781863975113411215885415448901161411208658607435875786818541503948606165140525902228331795287742805651243942690687224649502147147376178103038975838106104990684239805757795483507446646700915190749903054680762884580974426387416300382005957194850109686656005069995984130847999308665718198607327113586609414577902623491008396472641318352353989962534569938037967064150587467244486656072662861864773738566164781137497510721129462923381768159312917694236660690280214728771626534008741774333428154370126418356911496610753509594168879467314224652974924451931670901638501438286316270628417468882249946409018485494261524664738682182463617186419395624301352919129762687029633159735206439871191016801500851819874317316100622424119727503241136019950758628299597078307257812104520068557987175205419565727176979325473368350114115340260055029227816139640549417410038550803592779854726291767747893457983978319623897491180816074380452481467438711365296652055226272525517521113056654822089899552451225139255396766090889797618101760050384198706032434688872380998458111874109528221012270632744956854803495430253978461929101746848878491944597939651261183284678211358581728882591818760138329624706069978941087660819476934412768543324258118585717812568599283562504400842489328652116425970144691189510375918980577250420438789471638983602099691835940114764063419824726512383025162377909162375478486023870740631078265078107058571003147142690756740337259991224003493715748443799486766345389411727377322130952419320747633997964644844333719592623739158198440566644559501608524039544740406222195290068644835969407990496915930332976873613976389983899372959671936022577962445672869135786558912232766786729756779537857593886302646961410355903732986616358047180125183587784473361813833870803630023459548523081740654758586165396944850818747141239951281059167475329891458605240124046716219367124828081421484533069760258792060814727119088183872693086303402937434915305117643882275634915147263550810166398100930791877170074502924742233087536424460727538870325024772822221885235996732050823272082815514620160174953322910503767858637699008251063411484376710998936400589395466255537255155043853538523484767450587821423061680993735513003959188433024383435613888882352046039427736395572699012634001888885465324079410086849454395070054927284797536320312729082898129774203741764858442941428199679126141297073089111754429338971133234175746181168250443709778555163216611631692366635824307119758261221901611523101310044536161819983998915923355705432853079345109418152136490115638967554298286699514457357836842357332330170556100897396366872459572287782100884111268667962476899617039173249782168487931589909408151859229800591590450289643393769474624866423053981766890568413809545037794178674154650241742445644313950349404485762537064491233068737562284257810995850201009244866561365236387417650248834539419053230043372266669519496419772434026464440010829605136028743682621822479475392555690720546842264270666107948004994303238228600756635478063494906155837300550922159956755992695461582431067563920614414885487138771784426817703739288039683165057344962398918261833469061753421455483922630243223604925601817321167048748539290484385182018726590371951562974463653726249897415353452519836893816664977926747548686950060747948116249313882785808217596076935478773061345996949790024602789840269536382102302383803740662290241264106389175950715363209486505191028390949529502018968621871745931141054469551781495448051261871297600550644132705707730043235982188606262053889312195235653381517776572065367958696632422966539300572374956256884659292603229602805893804340444899542452983319038711287117196211634271922856690027822250746994481765230295021681486703168813370938875633180048337479551987013992909289631237783277842824793955375782906132876516709348362922821126908977871812565410856264725980449766928958870649856170987538310340652451380217852411310068736381772000826660996441899477183105552067334164370795340345001364135001855337711730901626282710914985473460938458277994350460104581042172660379536712745021054229166844895382034308899961977189950050245567482090230804564711276441095143362379821092503724494721739344399547997866462668379909890838755552016361470607169223991829049872686700661612240020322493703885607266913245206302066630668666170550384308554292787828753018141067710701957431097416435023836556640983182391225419493309045165522515455643375603590049703905558095928844133131018731736390177279908763267667259201698382628272711279442828778199282649378687787138134744052298824171889009517388684748577836915463590479479200680641890723419719704157403286959535599476963452820063535179079073352259969648917396539339387392200994098576176608213537257276749912016831678459194390324726779161902190063771795481776914194964621917708661108077042722374410399123408698695793496436967926439734253492890775659052128630966209767672185985251649510425724685698591661530386136044005741077087049914506516368338000799357107846385608546445670679711374987990354910338668418991610451325808766826238570162363527039606468361018641892069566282140851417395823374010173188269557819228213187756544830701350717967347643368299072888511959338235462164753311851000790964144327695347355375469172314248069341879276861877511367941386803052498677981251601745815592420486912696421364656689396287909029188736110875287301905505453378863172166864759748957327026953447532645188793025701700060262517214466429696656829613784531306801216383507410707279267581522994105564170028278586231904116702384928544455795466068970183750515026510332646924467685772873972933262831524837623462904047620603296412681499426897803834333274730880827431799077661972553559504934738527536712661788138261685049028133751149442999962902896491065585117172170359784594519771795925648489945718115010217263454716717107634454834394395461994511920104654372528584210006921176169891297469657510485307313497306347664475347273220939362293352575716574870487893159599848848932572516202727232660218225427761516772994203629703299856190339274492413448616868768987317084531600586207446779844756329241225609698162638884403440135722377819384417926319068751844465993751557175825578131320134580581103101624935598132602038214384460514956239377529727855393558572550949489594620313586484328495717372379197079808490956012359502522092876628106429484445541159226098094626364860203638427615456926331316798057976197257331053994832759388833500494972798051785875399858728862987709527975855636853398527429075171348706283353847542198571762740479965850682582045740165874753908191848121915611332506001575342663884925013098825936184062718819855500643595299917665643705186497486447863178619602373677717788258336024926609746973044338274301794746614086915655538529897636383221080773921448996242153959008177770622088353124833547071413799052547550544712099884476312628383763307899504045892023162584494218930909626838388636669849212015314036125014059472769548990500139555036904159427559293209814349783140834435970381996226274737094906940648796574943895309230657510448080811882365256627943632516215079621027088178142640085642297816779736697596059089947649807335151936779660944098777871386209516557434611856185532032035566268909414459032964047555638639593485681407584364611061264554470321581284413648357964439564927278734932448202783520252224577268058577850759557951016533594088471221778645038037850467522259933005192699625766365291703824299941780760515998955576494262304509157247562056475887456736098760707498487480736721201968811154617449693659490389124294566036046195298234023328097913180771775557339714221058700250152211873190747080403203202413329275184581973513229993592023536286033951465019971646710251566317015492647501274912473347822174496918865974429026726143407544330521316975420317085422051193188441787952496363428959665120887704319859218448984106237573626777206273509007491797449905445918360638724116134821188137715089694668266110425565487713828488149860850815968444985384082255069028278301961835467992911724812921210416508158153976841570071857121810317845440715282782219179774914510238901024230571603645388751332284747494774075925390776587614483137184044949402613467229834974954235720294404398384667132469016829954451616554880940113193332098174749841874367418625572992531595164985487915602286055892478640751610388601452712978123133605142018981111234927071615240326971514807556678190594768641585771174012787690688068513689411783785039571831130536638034710785999153185935363424953715751073667768932138626942659936286740825388668646476991401641888736692289050646275952072599948849603440126138746261636182026990169349213268511302925588779782153012341080521536326202710611975172056514250143982929460684710594711033309157524455808238931740268251867433070773993678372334966991903907301337360403852872321387309777120043655871159316625260894277968825439140873815177437614316235467316227547633627361983054897873024707939705516164342805757461320681771157574019451131970755617349276622674109648496364511874634416724305420106343107003762583181600825091615713790335074993534171875430015863371397447170291343614948640079409968730587793123887929984965752484550231957887756165678797696358549081291305448377839791935845379333024785203926415185878226571220152829742163102727991994225129455444917166138968500148881106680521698648507521092546483696235158319785807998376460702240890117593454246527149035384987229509670637505379613969223204628924837524237467989473837238598630383338398774646395292290318071132522758364477905043313766617487250887816609468065679854088941422277355429250507246323583594568116889025712809221242213307990765574600676498380939073757978930644213373635802131849649249276615501694477977190992666512974448508204908211790273936606194579620364990384674630605994583671167529124410895996370457909475235499771359481269642420039055371343735264477281503786760502367920114566354856179973738638788089952008079269293586740037116290384264672689266685180525263066242387838360960005707398938537740271993516294065648066859889183221146645263170530570616171080242233259669130875500759830906050716454144731482579805473560807219432203917293617564405222843993206761609075350719545652294281382464203527898705725316637948395791845074285798826223687974214166053743906881280597058831661188176980207753638869332947982924353624645545270561826454179702170866612529497203508204090939327260651233036348876644849339037789022942166183254766329469910021565994895945352239299877952620240077411667479468805751429067493789107678251251878891650646549890495833138899710394995293707023467178238972419188533986599571118989033388007138373733268359125735948526959044278173841165736788580008279095415730176276284525823237696857194035371358482419732809492795039631913246495184405788913149512323171154719118527427306767758252061712117250583818111268529720555722568206310669091035701580249791760560995298769095174131267179844425379287620593223566210221285102937125091842936974508989602781781775831748378730838808644862067811802829848808473182562879430547637363731711424195127206087066497720434319034030842987224917928962845186113724366061919371789297396810650546007698883937193076742006408942361505918450655559721064226566315346824984746409026204618943433721891716872868727652556600260510358269384421851445932970572452404689750221412347786143250217165958828505067565064832194281197355365307150709086846710112206113748757541384239832376069972050048914696671906351356414316463587865814196343419568494243891394730609725346471170297061576185697387028495597627788533325700865612332491391591523360337274674465346166102086103134055762933706635944721782824153640257625368139824146179076964263572358103584889042471929312418777413308305539859637692601975810900463499166037248948221314590013745768182656872627321222598276518516148605408180962444918335766359030065690373616610794275197809167056885681668485675197520751244787122809272272307840671975934932537528277230248495792493104769102293766978969370624233167844749088590189276727321972880777843424172881720671029514946666203571676388753785866581682021916673874192112326993070511781594756241578595922733969833849130885519419789537434266888789657985393317182388203891207447635930167027830949428196894234387647228825475870279673144622248418267354305872826116051033186491375887744560842607989279084196813240070376096165791886609438150731113746685975454467483525848941661036685943519536095889945216163151876981124355231117238334569157395538023877674422763046340617865716071068112547788002050275046505645207387714106162154433813585339359160987552983334536384362508691014116060553763064351943501253543273605929645003234511816367182609046300234561119941005251551394401540848406912985531347993460811410018324364723551774730467690271485019060701783416221554005381475837311830779397726195121968015150647835803650440856948526658969649196803547351440814731621928641380983384623222659022990310751459684568363492814034134756180645762065238527045463812946495702353290983007530549451125627038175396922246876041856744250259506929739150105510174633946318186677687203837464897457830910927875338357284892612123330535396507286875775004090350437362660232359812007459498298137825266934143241608698937638755396108693726911063373456674498809534376225806380400062503701369627017157854979910496085449936383729243455839657357673350750176687683225763118915019618298753080726159002422132288032947452268367236710852689155364383832625587228385597340309707469502531381422545831053854251808013877897164797064274567458437285367854872988474006495375507229322000711829984001642613271181199615592867834348810624214345769057690941476994093900921083590704276276424111606015890454720264644833747205325708883548027129906836283042739574674087001603986702033339196519221066336413572675595689766735242311497237741649429226371568329851484366186327105553383116684208623331395899164159301549778383675740366815595630893299073607092045558629362092376750129809888232133248813503378624089352986455785798094860654833626795333204078817676945209845452961817794473331553448895229214882133695944246312780355407199578847204977605768269743810089845905048324325659305498310821249225759654033316366702315623312011980469028720037546612157756219968094691777301572562747762687797224049268437949672199490145893914857422113268090827584861144143800087370672358733074704295375783992014030623335026266003916358130233594349906407663751945115573646203112160741262256293399551327792805224246240783653005691432152576803688512933179665740830807606065343212502136044594570510002139163036523913762599529160908049769591609410113348198303317363264095850525877909078754644475905147675542057505606569955244043285103002687125683025102928725651702895763258153359879786682358798951426240769143497519600753668262340862739748602538360868412116410430990872846615505660083635550389091765687300488233958132958133557620896210119858127032747677710724626194420834256163372326238978630889287922062479796341175236014878185644538224101640177701690740954995255365524610602477280790846396107123565256062537126966646224886567261505248119719431798151220320387055684497631647173946843214036820322188932775138455510686944642998776936910142476872992519504635135354830897122420371529450036335829796507744114466463814269170738748457269439306144916689626187664188828542581392167268907613747278543489752477897951041120095049258866913450587593164107498311831786219751351918617363222375063905231745086477004790318639626089366382948784215890317110031294778774977260226173964809414712634894320996075004290237036449194421137974540912800449471321894343210649526479133724724367315625440891832814163203451025011234249187039780631417261217407947919637095318389759474226765933631637114466344724926972289431057217590817648627657766330725198573618339532610188921152721372486301308542584050300289925789192475680282001566235293473282498680319075472780697082820207899411416988214595667185690595528238358358248323282011325098871905813691893361133187257425075241459588681375009750045890251788453796116998720756028846532001188669492129173375852687518334042937310907218069963771328780046527292830320769557188862776587524695290706349590508569316420250230884533720073206165620533333339069622882428130140779058088048145585041487565449111282258951182707966378237676001244947547970893777646740539805702130585852403097155426829605562514054827616112514427477439219643183737561875005184874658023307491194731976516243196921048492735712373103951081695269119786369618031965061332478457702436737425386624332177106031346608750520151775304721726197387522601509636211075187739442888894096410666613223850808315491415381326859708452382345071250547284941401498857055445999851815178443329738912573643739935245087723404129450861898536399364209727167066651678322293366846915783696015107139387097532130447791640087019023204613333611776568922958810440558396012795736780447518783574962537036730018252212628473141930112924528600673162828930572902699324384603858650395810423827745162242371481148060676692231459288509728106396659431413829473336903339100532858484817230588315629521576454764867877662557707538525040186457127103882654083942820420586499118668440826585393885466835456494580167782004484788670912795355114577125665476991967546729311828631298590933602621436610273195733781464709523718940524919176028235077807199063304149228354928371998404073914694136925996176723396264961907651102350143949839843837963146355977494935683747354627994341417023278470160882799623165932276417162067581321152574767210678975765542727529759583201236566218159646758692704450507792378068216404475214745449341901778480058536106540311281681886614075824861801776151848620789871892164352663438013048093652510797385468476413917303463461510513277161890747819298968109317937050735476394548549998555263713906662902616676337065655390482877744769114283296845420199161109975993695272528690667786377430228223512629865855237311922835170978232967807693575970882689248776392893432127853530017785131174740229255837362483926496797985675175946383249711709354014810066811833874959978450988854906079499579114983815342027921753676032729702737153503836370634159956987117482222797712557628157960494305047689675811290666729998797061921074145442848281554646025596899648742135552279503447152475269041008085705848876142342051509664120025772139488559841558333249369244257433190328114839365640568366812127081261838660518472910699435969381989925327895970622703183187566108787570912716767707281912748994308039076977313382401577443785673324492687548899059232214880986797619380088340012608439365478631816098153987920374479253618912771591795455963955906225379815832269119722837853018688413604981583631453035841428588605983245716190087419508207588191284701896750794923596995814614057000431863079088300009938225457731303794673735585090794104427947522131008751106044631683382282442361667237396470044389687160270233232844075456226143004599696335591663987693180819144419202943025018804586927988614507489376523284948037039263883475297177176524187664963801523957168371512661595398221615398332417067379662070381530425936762040116558341823392734346890591458324079672581653096124792604809653126069902783184382211279580275367691234445836839643285910982294670808991246291940873359806543440270570099080536212455610450063812204996822218032722564327535015343443940787389146626504285190033753361922784757534444853735709695774788875661532435831903572583282275007727171096244727037889128075779192095411344602843764007412891276599954182620282147388210394557076010542278375602753128698577192785693660515676112479934101371973543877780594902011083158250415492531150826667928729010318115824577523505773486406163420529588366827915821339358872810964556790182397033748505127050011763458976859673299648212369083240302427169228326626884348053758017632283971235784458748100415917232713281397869982239581389001737559606982277632251867959068304707260755478273933805371284747413550248488479247439506657667275888477255307480983768230405449111759280087173456697223637238763951228915772750442594595915862525292939249897783577180220875476557712597866156627599419368126677785951546350884791301552387806507054196603731475490598049232465208302412791347988920255390264219044293828307106007426042105334988184761515164783137719972544883373421613260787875334281166749318373281432924707517731097449523002209626935399775426700875161045651180537974803404001067769016790367412712063308927716239088646683115920762421360793850664636843789452098685007741333543127670582389860408407485607475313041507610241503104688427205039639317315653734011130135980973971702611406674154559425762575116342790819485305958253581641967538293017243053036348995255404730738205440900828577219306342095462936021042129395151432493010557469463059673342825680146320586181076935424646831000800890094933212506724340856323406915865460477001283163465896025507501224810152450940469391031286344975016750513039889612762883309588857012848618795435771240993451691448609828674296191521378895539852975383833657445824504742761040236265144010515253484092541092871279855371476456001147233759698143334332514055389558728820025383849819622831151919456206402600505294305027276234587983828103759161142617697551048479392117530221950206819238206791628180063013293240709375826328898827613929930528057019739565356963108902934264910661414898819433806872543067642664582374403077625280188806300061863834397310061319505220940045251656386372393857111653639893898763239842492366710610640527175035153886971020413140798550119526311150646604946860523758029873212658785517275097995327121803436925104677088071585366177048412758972781654737729638462438020836802856042117025089437680780685238921068740102736740041778494254434140344655923194623696325709804238579108589308345153727823180019987908659170712947333141601310250166265748679507609927127996190548246132637559474484866485140246816285404447562573112682806955880287123492074083029596775322067865629276548966139414940666835042495783914540462732624887769054034029562851433047282905844845262375758280165359640746337149342683819698998746597344626971041261840344062198245984363691120320231930334264865204895471692838079336009450614458511697882874608985134607509861370533213437667791425293603929676855008878320546420548379064318812990692452595692149314098169277932979006905917073731474930267640270608214006132951093140997493582569551846983186436802271130197360626207896334970678275195345050923045314469274011251155750608389774457518465195346383089940211852076303317760174704211439774245558563908322670489476641342113338151831791685289892261097957702517625341188135906231257983889044688756880446427465517504052173324660528754868207180965946358557889443246351775929434518029503485982176195153307604843636271518756206177501667162528914985357720857897202537961417658996025613989331804930871827435812325659251823351960974201171091911935543759578692619496582824504213173266756783818067257486170299504814199437424210223376976948431041002709997603952877601666783920047403813856062097308746725639733456086061085820956233596247835801117137123842072245321806345317544467351925580017591485692361237499363817145647685318185854304801541605294068051494447760442288936818298885481558410973212549906721285158783041238603962511897148593551591859630144728637033393214583293449197013520106201921740968858824512738306418714207903895653112826727235173887217625735886355133806559256612125313894233568895236690647693733362385770626947365433730531757255375296554786282777098968755402001870015614907991553685020314414995480688693482441025629800918956609553849080137831955785029113060501133318641326342839726085202728372155852660442345215629350025785435092950083456545900759944593764243000497423254097134322716135135230128437055783265168476105742816860653648953995420928846261640595996889984364826500942762926215761011983443867255756519440243343518531319107274503510740292319126102936014848398856824280787622139053378042974985522364807032740507163877492587329388194419139749627962785882820532597553761501261874805515295254599807268663204766062675537014418158802087444446571666737319235505924923737652549039728943859132420970600201712585146759744622009202064860987365580391780365638385315625712521038533582657259897716363098979030838041373793756709738062142352900822549692375794317036781493440282333129528280162256456922181300093503859161347699966569924350013537558580602031591600025868377874940817986381172129608356020760546989235478824330324425607193307209099548563629249183397965657084327245021873163666106125093398054964258296740853226900486638362624808772460838618397079731917291867154178142787691403932671463700872788447458377136897258298647647487307910592685748244948217631363928679891466462322236334706894619022526953424599944340825384502507010134140439403839996483298777252074791641942184497762744639412814724977679962158544005176115284401616989553452201766310921348657578809500887857966046980320507510636139221708496589330162964330720501297347340277308103575808703857748082947270590378681255653360919205224556792602409661513659418629483704062553450642386799545656674282223065226952896836775194315140411948299808949391658091138143423218411465182779048472938219899804201966104566187184963242967403731644015082616439782700789682730800191198263962075995076554184356208612358697082464408118126897387687992677266263397921052480856268448874997636599145191059975549492344818587204851966284774366857892950541613850497917029793730307204474111064955006952007218318583978572538615017229993228907250636639417883603788936193245146497955818394698312416733511704123020039641387197436078758197613913860002033716580313670909940956944136763189043969958815122595177979598345129442080051576693459747198296473562366977652860577849241998084342412164179132663059611904113958436520705287642725932673106272495718870658458891542668967405309606087521553391073565592793904492554793842027046046334823077615795788877141982261044783426232967194500025954658211792669915968801574662236366662916018015062307373941735265130289734302593491102175430290771370640541762429893039349620913066264447334433467602680042765733259894017143792486225253625376277471482179169626458946952251685180871717479777380710384395875030173606460379517310474778838485406049038090608298292974108030808659530238792041586067772876229978785437191133360381902740269745791351922124043573554245312355712827835163558011389878299092770205832219827257566419482514359427778053082223536885565205229389956329381367993540429228387434422035822327948671768628378738072983896469938616239624903247543174266108864574156930061104362550319515738927276696189980566783837030516965151161548009639947214371487353232384980344659054223325984550928345451815942269601402202002395363007509861595341094529904853753489148288571833472673430212276381703000328879702873922820652199617520781941523976756442569953253675486526087635677794181977073119271443994916586053780549467910171674783152298626530382355581606370545083263295980717328389579001069080887140578873537797165661749382431203498030267515989184307872927506710356964715593291533062610067570576588683009367945243804063212639765157593048873670962842138888399202752437092767489625252387359739123026671955325903076603254383436564970499585360499328075779175764124156635232767765229531446148908244132725329757628161227979041263477250407348223690395485587738376295887908153294182967644811334482202480458548842159413687422907402113479332065494934970531953240807468827842710893211251620870072100800994923794062185415209971609786114063046012643007211496105597458202446945475120416528828698654392905097079358088645430519410148711108946158461613859743328549040849598102453544937299757045730900266227946426866609638068988521813221950916287615371015327658322073684420871349813658020582419321545193663470916975724789156417214268684551772732893408758890647724461606709429414519914395798187146982935744089455434906397314949883525052459996239711827369256108138221298076910607009938113569892041220758131802738663099998662162234966677109820525040344869858353436473829013917667948523405527065709775820015571276311231287551586876284282768371232849741654312464555088202153925769561759473927026006316191427771214642490007463465757208575643889639692348132285161294955921966226058658077885668180049158649949080066019370019620075501696033557853700633662991059709786081717965988327936193249739119759891013392530421484499438762062418180128275157070592035368222825141098150467066009005556187775176405970320688282620715798042087152603462659429687584447701866764931472321086207536479057428860636677538310071934394226016130739366108842086840778891684062710456383066015233514569547101942920733583467059466328981141646110147825320348185620162668698688167158867033054450912268862228441845521606774809702324740432791394875427154201071733210870091810333020610102008332872475269525952746023019034096853762124728528869232825574535126028422146521080432384736310775322947159679669147451269788415676373413810476648596938766019749131480622527303348900449502809797128538284633864309524425513543985888322024601701177273634882732045418203661727161235711241731199061606808331745997997818656906530978178293814105030982045247357465739501325194927469386953116699357159938571042632391578405624977670699923343762732564858680065058044700725775052534919915187628246959058870563559246684360664346816005334381630347896785314222215635366138312929978200704922592670785422035585222179243643887583357829163039874121944581294995362839049996485351564191025354893258030384161940888206877684761964134725488472859151118142692688686711642835778873607528525930138504812563191470673657491571817973381835367493194878234442822544044488454502858891372072505891408760978553427327945890851463858047237171689144672721929057457204278529441410323404768237287147933729934610169210846749080024779386166494393143927780500851424180642303358351826179139595686008248748784277733356009030222674185188722564239410342519046661309924739539698388717452233855383198326236243738348518617752517637819820815644024333744737721465095819216915043986193590956348523644925997359224204648363375361161969738397816156394645664085826748798828974672890842592844731453664919733058653932435621329341028857111929069488296195590471884804058645485087139656315789844261496969693075791259655147256414193780284896441173070131703373639792683951229455454263540305788162935824287431406358033953387279523983988650944029259762702875390306779353592748817361471898128102173668236178557313099863166919277257939359738869391031155143791742499744080066990685970668185219061755364454494817102844257898383597882640860295651273560370793525845056649260733751665655409845526662603002681963731410072738479987206756971956589327704632819205813592436139858150934126524596643601927003449382210580231946618920246473787523618638280040972055628003091278829299134330978357523706807417375700959145173967189726327589612541442717740123644770755862593218647930272823890411679616819347139887294481572551880809332010569040773932475978580507751228493438457712317420306237390393911830121900140513046047535572821372901324743178636984969090989821786265554214439230646787499764741417293496838944251691278535639319148172483161833514215506675585169241125919209260744033226617936320136041958603255931554841549718921515067251783503431439352438103327366107007416743340668043979929970874950483639837685458782264475518126324423015617043225681491724160477563491665385081729477942847555683990468199876722590984983929531280906813766185398839548874707323861584302412397735598673236460451390115035450094350644062567284317177035798031798290611715998063682989162677907083708448481195893393788923185967133339293482822115795786019722392787548913302587204638516701649923090621406896817377833740689399444965585642332027677429472050517613769397672943326314328476507317606378837412123268819780965051768868092469413003598463154353542319984895153186389549751513399720663172155436707188351120712792218676154742159165337196883293176510451643365263195708420601717626001314938282800774578606641018125300811529924924600325773662835189456390305953973921293529440205757546635858840548437644369723041502841594053682720620893425802457606457951141252017560403400331163989885875050085502579370536153929035561374030891726654648773145734772348505068374072633809631326134862242384071769479079331282883565469250839290054696499315677070846054450652795688978334437818683492559093612657346132526969967499893736563764539415258398916809020214277003924744572238356643857592777655212993472236399062114465486757551093878090725190427720792191438803378033566098433219250668416164591148698971344368478401582452750224080710865194874946400648889931461761440469610145331468370075798455986491634297008838930938083322397827581048287131621123858899482929948574528857262228604115701807703558423776063408628857346056598009247718932283174800118376506160486831034105556259781634350388348466491194166551933223775815408453277692970529657447164050917951617599387615312478405605618031020301551576237817505221428998025928997164592018588376550536803902823933061769230984395597042176807823623125617301916295976648465673414556503960212589075949406070516967950737484886591469640699721898869148655940313825477145864784566298161181767317082207261291842077791373924521642948746006395720811448490189230868298742527581202014634264771559855604958756462733946455805291615804092085281987563593158423904398273330935800714497441920689269129798048401874433376240562547577290726069177646709428591741236078066234742624379788266792161963648911863978929835821286298962812142039584818868450299392984433456960933416747067247713883712658796451473214391287890488998694269905161074032906099161007027076120496209811222051514065689118960386029408077104706179962392230274163996563775041416100868481223559529728382755205299498846411742818637834782332561870667587563629857313109670509789592445030798999182015180005521274084291985235343465811996471606797572662458836258430860353046619564200251881115782208816616021139310137413753601623447047374150589551960245907645782201485928000417231291356913616308914562858491504739310620091673566282304288492262132103750223561702115014542078967610047867765392682532428679082127593950256030119943555613644041437559985660539336232170464947673135107233976334684106606785127100289318452009218920101196519969047535756432876073109925461236390354934016016265794546441791825531739313854783210312255928723103359864135491867559663939749283291996307333216219009652652845616903945546631135585347287316879579885510997695421972970805749764495646504453610103486189379504093645364360147220697566301387189079486369657300396127573455867933049821947557553326170388696891427331392821383977885295849785553036371777543420504236110862747185581799009045707613860572231905996930888294092069560866476312091171567161334246066232689509183950670358535940285661180798455601704394173545786915233605744015755056336454333134656834812876064394044594538274079414799180765182656710598696625424647550067007696413162725780804698256531492286165231711718490598026593263047678744396176891803188794140152672451757378265502086393349482918434419929303104173908699804548326665544463542266735606129807822627758791543638661777068333881418207597523846911200187502946588447737064917060167968959770772296640863024008177932362896383266044168571686313332193835830665214504158126055627741471573778164559096173601939848333983433456039240006371764795970993183797651810342043881360083102502103873393072337699546432850829988709701192796923803601301603227203954587189335852843437813318430760800457676644997924243500006834668785779009689960441764607198866721357774104800250529001269833613096037475646621662202237658922731046685362034693828270868899413029229005567591329740806673357962065105245212075907509010665643727780886361516088069204065216093747350031182267399100321239727193066410869057377081205508664301754041524322050670857392106868475691567073080238968594172230213066329634563363579082750752419697691139176612188987971303293832000896094639501910271319059777261218706579471684131197962591210504231791109990502553941499269027079530632877175671303614418734631140051787269013321976045013820990059604109536302139154896045445554169646061629364278093216265909322941141514062402367607205854641255195638481383259055442806699582919721712760480772025222810110649769165117050600533832106801017629852169887668986567566057992345320313477496942109888150071874098480916461567028805921608205463883146560946793547859825321576407189642566504221530016962353347554168128536466478404452559038891853864887913154849251121069678918879371588817458310112789259334109057532786030037951959345904601371061561196644579978093417462435432982823432793787810419034628155810175240215227133645830669462252194200779114922707454512476429497005994603160521933567658405942921735729584354095176770095757496089896829929722402885728333108296159011062537114688940110199666859436944617938924404496345301403760537930157232829074561715208453896116137283582672513590770552859160429020991520600017184864109838622554198396397368978724282220883079764252379224106032294232513626032007768155588591493761100595117608030721453686317991436843001904204202743513255495020356549956204140582866466270783999661297072085669074400094892347071924322624277514556059683055818465401274353262724783794262853491792280193976649992745706843189661119422927934091950301216012390466963353637239601614735132607197908194859324411745724672413254312236603170756511383733251750971995128512291697140969164981788573925434321167899714454010562707118266407257962307200040456841246454378295108551184138343654851644555322185951841340867160617555733072130173431530489727460558525258140379514552928537991127935740236888819576942083494799253058544572651988334787061983828043188005728851152074319055624039667347672867883856577787726589383911540296348266833546131245743189670165230675829011614725817285810754868064211385755534002483079808829119765214715851408738272871365542944526128669318727628751835478319153732341589342661164630502909511195693472857301379403294121131149576656289093341649118478182102168873472664355193031414052739126028533656965468404446692242768171684289470086867491070369636484426771955416750830224172564984676413856536884919908559328701995178022147216562310437640739855716776072163665882062250113563172125811597824784755927318636962747289974730029217319657605712025259982183362199154714702899844182749720735161198353080105848990538948899750787443618985573552893876338814745461266336276225275529740911160693611096087781379895105509882632680549000999435641823504937669025113115870620396434194581116637638173729884690411602672251067509238138650885743077170694040984702972020869251878511669892318447980980453814750789309908150805101311242556672057711914151384864394355528777982279412017218366396415973388043821603772755494207049512057716763791857335247135057897382626777493759745344705200867293819464057406854393102579323414380985151194199955544013711481062672730099208884723388612324002355098126173847055170502951636429223362000505622066285691068897932426392217504278984041910428601141331274168485950742827344914158882235224630772418932336786139470199173588307820008338474063127322230949290510223320486616209286018474676621115532701355698066578454630056813409290744775231200125754572301803574118933315012811992123365018562185048080063413501692501817317565061363372676479629517441736927381707199796811316274463764696374015407161721922380068817620206272238185096803742749070977980971652552844891971910213413230142258212222396432955816230495100829342409697426913117057390027412546260604301468879078245693206248219323355920386456696251213498977638151319331808998865457643630998970260924571716017977338307489092848660700842880203988387378143729293816007471915895206385379107209570746941540024565604858984606231471634892808315036045877096131419502599465586699830687322897627875320808735857002440608128225963748003502411332206459254701867131650100265125827759580930859081272832862419729422613442276860100212556984619712585743120185080148098647433807557562226132902821622528768222358992524366729826767224546741136030494214002018861079877975085953648743065572791859370853368520012268758548388337097516350507213510083031670601796875938063069255749745288226757171708046672851439103411568066529238148294803776573329877178626784636746095690209101715133855353318179111695771764108844092230641451039550590094964035070080209541515366842301903385207174990196298672213733914092705339029658248403792838620267381428330357236013632498771227199341908701641697346812197354435015163274742892904033242458741169830063807866107103231166544462680578010803482303617093902362928370590507163824050965635965552667638624796518093447557464530500489796860914896812995198282620297243010986468776367031998335356560720043079832407771119983529437455847935823852404739306383257927170799332135456847846747319813382923449632014811148623774105628409748692791023012145070441705079752630838984803522606863159969568363070003963935549465672873864732330489907195912054144758389249541394353778865260653959588573424652852732621559306197022067126706353863720297806806029682412118153520518695389164369796682244173724738991215505741819059849709259605227763423206863151093933290226136742376154438669250643192117720147079855285053642413659165913932986688179892344437666532904427337316987333112497197466612534007676052317103313785244468147262778779823307278506923383292624053158008270435562937772186583231461052380801438922359603915942795830241560179690089493146760295041203316921928986003591660957527104131254139219009881028168912951792644085619556672287382731097670557332116742525657546891823027857549444223891544650658149067665695455572280945172362201450903081654141041741636264172968230061129451232379097803674362977850670889330221893602692186112352974647053688365099304280734313034642285932788757118070522924322688618901769477581004461618549730924681186817313337515820133236477968588865701728589357966450369317213092847800097598440200050972313825197305038439489078897145759848544131193553108461407587193885141384218235973312509327316766741295719093656929841947298284076128993105170755081399806523715860642667620573125995444426371217613949452485886279406477543802936792133064313844488666149045707744227360352642742794303392291697949897390878738941385926646682823946368997439622577916429024664305409760546845487086584849755634217045654596497069040967511981267044572275732924444164600676781598737522729839884070770093490140497468530422894397885711473671784101249411992570919811907131656969806862202770024117568627648779604165941874521237184400781196384486159264547253625560775032514023269268975382747526348072892178712664771791658087980869405294202513054557514440417931833795173181419487641690182525440758109024742739778076301539822606291700707908440983265829503546209217406049985646611012659709070842580444871215191185500329536903274422040006249445449142027831295163944248460614076768922255825940267909763987202347867432830340170765022286301877109434157244704683560219956753088826528728419983776565951675370984659505905794177007108789872762567329586688703513581518712852084843564864929570176162581059619608514605112088068631280293466058481023150502983084646891237929240075804335548321609909534890365213438258661920520454836457166403330558579772308479285815429218749503090093678583536504301255954908721389697225831187351345000881798690174998368205126158888317901369163776339222822750526284225757958219650186755885061083601390145012019957708921487452062523185987214029423314217068666827662951155731886045930231107280084107812819295447060683322610821098093915853388217890242384543698195539025217636602697967270973339600579426527810020666869532341881445022989647918177029528744490347205641021527184116143411359299335505776988013682392835366373671541344889789713995794737968506977889792562985374273063828860056452189275116245941006352191594973918976619162895371465693758129880374918097448183230262388231652809848943768383534521987869584519741816985103772383832479495946308594401832977086838288971395825294525852011368216947100820048564849364984249665785103049049003972525950062934650676024303144949699003606142215238866229604041163869771154600042635361012364999023716037079321131739125894238544683764176633295026957131398483981781466121027259898265570436471134272185276741880743926783963108642392339196531385849331530144424575993472323579507338458042994065197005641357129566563649723239365933575684349046318339631220078191769703887096689835833239094256365755126224134186818476198666456009440770564683635724006277367723785479865375717684289074838037673779257003395533424533168096348875970396629217437634238330303959193595307755966794494267018390358442446131970564940272953509812370834655045291939573906737439079978675440546073181180534719416839987167272777937978537535756101478273225099598172879469453788554924086232614659324209446325161586404741541788534817875514768817470719545860766000437668598266675583703151405515506634711813281862108784158215327663403782722695076614649487675965939370805302597791336325076845772946865403935677618313410060681770278624985703303667731596331829833042292386635545325488034557128772952030810173598205647755931522410876589635624679591231464295401818270569722575744361019792531357415843769633607689738129140498601635410689020638140720948377982096038101156437605128263766214350471637540414258037388671473844952522058283491603883988483309172506822147512198288057990435239427640648892899201806759472226724274715198107749496525928107856811025489700507667884606237236284030904063380643031433800835898279545499280600145554818363531104381892167734499479348127679951125846125373321426505141603523769085333357425532686686826935781166364883135174796533890070033104777206410899938758941259867717115737091970681757701400960270636811277697660220369359573797261703017374759871710327427132427627429023033857677015079493004482519643362017369670013075636537157121688103227967387035982553000504085353323911038369667430102374950389646584326937398724640724778205518808464341195923322960824917486892929837222184462439734386227063845166938498214710737803721790619295733272034069169740090374029410308313362599918195075784695290134536554347211742474714936968389250649787594870441401285696404845969110573642726576899091005748583216272102639514537318308216626559823794211640041688194008836481850813990783287363153607060288567236984299176703315511829963460135414993200485691308912467997269944202499171443170492134209545658123964638206992638647168991984673011171061051459745640865788721329700361470451671163789887553654148038367206591635168296336335295517122479637018508520934496154689126773158338353304807097544477136348636699763975546352773247630272114475268018865971871244752740073931716078072780479960187513127091699812566634066218152400123527984413879119187438797489108583949355704341390315850519126763942287251157676432786625322294071691149680417446164900618831422555354843261385787187350607262974489292303366163361471444215387913254818762220555601093812586519390018651854080633905258351665245811106123495967530502532985455211768400245053077083524250098295918528807127613180113046909966421175008584192210989306882849193990756538099687016168289869180726926355876404907716834064440163847131327410664185816957686698183335669799583514787272659541564647094021004831959647074122793108896088944284890506383842551248486754840795249011258390646136997392923343342157498867994654997177436536840306974210420298435668874130319176091232154908231287805011048373560886975029398370895384182711858992790057751139605725582918544486864913999468383563919650825395973255727952150090908374158274218575927085196953876926616984350918538864797922142159884356386680681792570318617204349191254144214526893612084567068019331961102691230931098488656461059843507064208836343747461804925531617706161478983769927018296863422806999303288230148737973328506686166676162365193279461012944957532405015868863419800524329371499857004111102453147793315334311924917007490908536833027983117803022083507236920030712980985992563157904267787411973203109128012007270178993236537696802489403469499260666770150235240187595775858198436146193559381834592859793031526810228573589769001139122436249931009235615434438095506702781345750133069718371464266662671956852133779363638226702186399138613593413664453209001779391010446330624006832227165042529733179293670825560983572359777627344171700675919490999448557682918124076166402784010553328995668635967566849994106181059516722585289147489288791115067186270047265383238993086373620565977362688013309836167430986647428341313577750430069384884573880123532383916121080183195148764235789321456593055589098461064024270405368587453394565249445263828342236371819700812271219081116371528146096063971019666739471632364198053672984555198641142381974347181559374098326406355572281287815152341206586426734470248810485955331048928144511205414963437303974293840693937206412941187610201674004179896205662968225338364331781469568591956671320086280481463163798213165716353541505683337766922953912652713928173083849331946852490294952836281224422112315398855825678620073687707810118308108317695809757347707396719433787656225305569604045700317068967426482386030522720434775014258515096890181580223298871710820240655237472011033065907736991158150294098855088401876041384251625293951235901700307450426183379232564984723355946615592720498214525133457642541681808883648559369813730299207543921015085867417510362843109196543533314401152123491086678793008061963358976585715701732714234767360718267548977531424750910527701570563917183745661578876225071086919773208014541464605300529762225320686416194464898026414489138454876742607861560114481803934577671287156047085814973422307748584346596063899147222252949026871575589649124413025432939420008043507774879131337650530544040338070998486943970724254091072898065196137292822477437470612266818631154578123133675543454295940132817717920968926990574202948757491389989738328940030154204527806945934177706474961427317506115279090042898795665824068381119651362704253445740281642750828966729091273020174496531913822833677371772044396513494394644777781997623355187284291721087169222858174793684966437181118211453754348640696022001977107092529032865288285823685700438060964287598952345343118076918612887647419342474890911207670433549460545350060113169598230426997034360409405288403373958281968356233728151521590230332946073496845071821905075342357886672964287783303951793248439113929026152535607058157956855978922903466431802099024091396746980067801508736180245415074217567782238873260257137184528598332445596395934966061992757055614771908243326359007045177060187974733844809665508048742165361628246564397626000409667023700952245603442305149958688510362498851868263803178783543883304646069485593656269781087369259130195119594666837589819160749908759111457920720820143998618299475280069448939520986709175840288262422538187701963196914408582170187706466709495923923374587833857116030975581647258520321748330447732577621007895762746109606079740571880765978535775937817296520522680324880943705607771075385571258649364745699273628871087749541887271183728203087896118151302912181554705191521932671642004035470354552831278550970927555370518402539367638599656134865584422519521377198230950475519356931814402337227546835417415485088002975234278877836267011542213676348642260521056336061213954858735173877879811937782249195812603683485109920997724308565889924212592575864766568527983886115249845129775120909868803059919270612724860682084094108035371077967879307099472888958155920824479422001550952392911351944548083189161805763218116357217191919865901251278882011870205080776282067819671294284638977681273844723097788126845588647495557347324124833724525018012464103677626585169018997578223521233197399522860158188261340998765724398379411049360011686555400961139825970168994425988435268718492029264867716068859456294249390223381725630791175449572606164863986199020239434911246098122200808950535897829639177680138117875154889344521439285103573154963827833537464008260507749345704530278940723255090080691736943432303769575246344851117788913304469425053509852568490875205690772550324383374221731204385399475586535091090686947064949594575707413706626852329664274396392184200787056241304156939722090959622057930602854443855579768865046264315105545046910089064276566933973689983626209716536979356129241158400144105075528914605150529664179710406537648468206028246285437905385913200475701557283646543967420078492398755121465546124100540516148649323315990828564240033571153111342663253747421852501626124259506441208263200983550615016348396616862332078203949559536529807848248569494599569291774042928014594291630009069788350029987217341272875023017592888024587383077839916047270619376352358273503662010090348517675688322984557306358198628473721029444858310669258076229295660180065024099054002990963127351684031183637474634844350982731114455822842402050543896802524765597169727076588152204355908747388232216028863559939659980496531395632586436650571158300876071887066570490422833654844982634382293144939838795204777450633313786719121338811764545028088652056749363859706449059408859281656579706280377524010848397552011391787365884281455594692978012399672645129853093865227858726794671655298389742827147906126122553765013113925769118416268469881094570020206878964511149527433458883564074108886660481646510368947341469069975030333434401169331502519393683607636174877872670340810104372943131337969039992741161942097896949981349532587157328478106387009414288775865245290890841020993513426998115737506078122959725141881605794029262384757684012406491935740218740916627948086375983479607796793633186236168522174222332452912599361572362051626833236188779001233445149668971456599407125127565961911457056042668167083745099372177212138713319135693058252547190824080973818517608931164906789776269281939578842552203374633459129918707599049261042424464689505973072254892961559042345187619904726605975155391833657989831357823084653098810414498049431372898481719735823136438800975673054421941491940320660512968525737654027199502550717806086988899201320992884734835981563258645763553617126574795748728232762516946418366614547578168470066051275042677887314681417430225234983989789080620391354783941770742841308777315742627711321356545299654835860995542860679865494024751639634523386854291808037673685055964169152207511315103659553178835214825334635860198543665360845828317678893932231750319554380384147821766820098449937259487281819197291857410292467253867215241404474733164873238381868935671054452904851672767776355464737013805965072340940266707328323104982866473974407634074128284475373954728485446208303935734434960906749667281496815693067889394279777301660537268847355400051104090643158087295668482388242218580744836388203192993778569275622835401570150757924618134506367080671811556640679681722406302082655152663390879825196907372609855646203950761318181076432560232486498855182112804233841297289895018733157424768479910185582884634668050624218346123875749263602409356950197735502217706469484320152200324398051793326773814529125850578716983384772417205878558448536507076526194469078988145486203771307467226029888657124572876684422698827236126552245084306769739152284424659718402581541631316750432863387798569544757224780945413353908098225354738803093955907858301002385300155261695140933989431223200327674851464838950940454120464189328450793415562465653707941628560756715132536325901268468889778015472971383097840387022960883833139210642553280212535644625164862934516310669405563399001439516601776833943825827569475152254648807317715345591484558982018054399012714038147458432104064062632012090139727276393359963498505152908622923498510446593100401398354293649133869703451350798969500588344625982947444462101724127824219045544908076604137425899235686393325841926516793900288676550771922133635014990397899000285531079935661381567214079655550775283629087738489223385833433753495684545205538539047218592560209022450554799535389524462690834276539816779862482801748739166287998966039056157170772287706366064520914223044007302634011524551812921803776786410500910315744881668626592845426674736959152748934045450494363263057253905177383267736640961466120617365446083909254080737312608125859112329499027137324108958886824252533230755852984502929529364234431400225689799471805641356816420653301691370946023734790946953569386418966090516513726995130833890733864553803870667634089513071298534043502798785541019962315029781413067416487786360973581799363684953341886924944597216699052393891136456029680592352518692714033125430333030695556303737419459116617706947988262104779996377279811860303072711895869279749575370642782857565846821731807581800095153079933852460416051339966124113311638517573553854075753509568141833398226236551602990768117581384830150818652286246899291176382832709264648500150433362312922782175994551058845839876305418426888550843936278599852762990965077138801336104627328103192181164342743657707492977006096852813687064397741258905667885109793932740003051668057480914861941631032826968307805429816399969413604034716984987509500767865248196627291595758696821782232542273971001786679928255455131210345527130859493276352877347125206909094817217416511487603693199345841129613319863674442472755753336699725747864956150618636409507792648999903625053841840739287115670060274419474905551282869598697253615100317469427206407632861235729999829134294630898258706287575183589016748417232563412908512170410910811156211044722305266735030013837288023690530650650915762492030698381153509594931710158273140459396433990062579851223001907102767374246754128106202359659871028778697255361771710958468759417264291986753699798786282042946271472925481555379657255563285780352928318652770227246234226673119109346897600661573816491490987913612104334219222114086684905804874141002134235069816397301344442656690022092945600863140787234594662794556232372330208633619383975274211486374983373711822712481780155126245705975212878972949603468395000940135488802212954009321992167476085192246806035373345218562891999604557984927990690744423030577774791588395550424519472435125478868100735434762177388255658346777479934877576962102852620784302969256584569901802365433166283841588040617968257947860179973681475613800740029979584380120231735406039851038374522562946350337162032465782689781594893924218413505051061056452623119004548685786226038295510351458285680619086956200323776017586478596746652153304426938911286046788451189858205987644571243906768688052385235797544292842049396222336099578771671550421177190942823485525888144239237301849845655503339681809911539739589213241871241351493772150199433753775589632645813946608105800419004788702271988221640973243939985938810313382411825708695377728684633198758921130059464981291140223391422675993398568590629130955694940511500261611734992393510042915606798492746912210994200726893781893134708707147990364920235312924700933181458199550720293224572768244374979330038085399991350265589012691777757623019461390176262753789171631396696431916217497752032281249256315304478971705952470057138648881210344711200050475575596769124743092611678631113213754222544610647426512170017956326099931848503758929049515745233051824951566783161936456518249424514474324837721731322606432311428783525647384800707958243980468855512898537036014896177254917874728913516169484189317830104009188913730244541436711952348661443114273251464933409360775976461884863251585134414628664239160046686512660297391437450590412706052284284347587131575559765944703237929725106485078667214593269883629771496565300707018912658103655113935115368510475323263980209112980047032645308510755261512796993760001432859572981802553060846745975897606185407118804850199095632649638569693122053484386219808058837214460167542936828336135762547966807585997539410319177867977569446371647951999275814266652696467482678756799598947530758092704843550508620386067189414683352406588904941616920448161521062202374196051445888153419414726825966664761267603165651854331728876815055539179215344801930265238924776565778721241108891232641132770413447126498070330781631064939118462785083264758496710920830193911615029908594909898871125612650347703501768712665014169454960399381204860573914225972787541348698310408336978576817427793218241968152893284620334669733660661210139045267548164146173657129184888613609136231778066270703401536067320294733272359690994863029445914260125992391463037816123507692052221870785827228714567904545067868361492057523830031323973107135160461063744656994059135175982841169868698159932839886090502955142553371599607986536487402380076152447182983484224789661450706761867664813719523062545781376478120523714195522610834968155247970588750738820191036436247818263234678138775730265096439753936415022121703941306068507318736581590619081068004849428841225913303941084847510115696863483966170533072004094786946439674648540289226277492858003960682216878941064476397583229254919534096323412633651331960931114756916527004668149489530904732234145789932860320753242244128980851717110627593299139436848132575439424206590359681272634237085439957890951903804292578415852307376615053484313306603277496095738514430810239655650055483387581682491983387479931903046217454527530111419309168819363838378273508272586323395994541686230307454504451646591614073933001297225109652985301342302368029448883602976696608996861458689035253010694452902961522435517917106452428992928298364783269449438202981754324269497611333842108833400050698609194701912297305855770189978687490874860473734835245571349216031930712668599615294419588282726091212643801209020430194073234533961932590238181500761231218519378250569850247628463041961707748436895787765346943132517756865346164272591281985991149428150341097547974277260545644858772896779235271430993938030013864941672898559017741860071147181204890211429526944293562984915778672247848671795168080252472078996466559487147571886380518533739241005276216453037640096214480676226835145302842633698971727738112544156108842823728910888344940295802327773150931379993864086877578726983513517788175965346804142666312028877634828159864861309724878298715095309732797871331895232081402680517334579914408805064168963212032497497417001998484874623846575864344588500529038314902206817671319095028005923133874767902277478582661331543408282783210800043602840028293164085894124506920222092731313594571360435465563814209202698948171653727455103125804340639295862149633009278389196558781050290434905912925675642399039438313596253115303577132406348792459759874817480944563498832867826195063212531438623140977731954763717784137361122568038957622810620159459539935314020130844675439331107890468644600636319100626946697132172891745693162465804091484584995353739629116534464425513734818245115990473606180249089738429798015243350273093948003014029952520624936450406196651450023360281759642173025282700130788626082699674612922764086880866503399494213115494250551059557966549298955917593414686104584347495870691080922616072717714302950087154601260200719503260401083678856176190669664092461323687654632251552163733146379147642427615744757216938167670107680603606693468504541149026644219147560813146636946371990037031480061941065446037128825081461356378227375058225537239322343266623238022077354909818565746702645774769678048659277677346840202588399553447377021624722160420565626286184130535319081618372259753118969154444236090397713199400989272925205501131310657992499382209996503468648257384759681545201794472605263105064605432390883873102163566671582737492556775199156250372884754916820239488068965588441943333129373640992784638704368708128809272413101113686574619119404344070395656034783361356750706607400143971286681644209185901587759717294247115272519703984255032001444980523681074892274054130638144898382786089014232085964849508152605000995706352664843785985532654361068308729508274381698329783630977917968076259164925487881615324103965068524742795682977962056776166700363633968901991530954238077037768316763378502136350918070461874540299173548829098657785306327867737403379281101295504077970443351744917277991165880051505903880320080663964540168901377668242081055470914532304871955204843169988685434976342901000796187449158260167368587603758665643975311080304751206157001545660799890819273798862410369760749269803389812731497713276139294285132262321368170238464773079178385468929236324322745416330186415631089807190634531886675581757709992077121917162174323200083291168242953084853891188201487954792232675533894692283590961466837752569639626264050862936140127297260310412789011143381132088918172908523451987777427935627690926983711933816538309949015604392822927207938984551385143161853429259155636340461851908391284975665274644114216912780546736371765845903778080445280958751745713082843909058161041875763636211229983283208656086270871659287272753549323013916042612864182160131938547550430905272899357433960794852817768978093471020846948455696491586156461590858629325506690042063368713780183123986619819472032608343775789663723767473076390048915460286609950229816521002047646143642307111221755979146457463116464430398859172548173810557867225336404886152591015364096705293657847546591208077261663062869587315241238439533645447810134868143385044703643885283640536987612360265048391309086035693720428171600555908507588472771406608498605586784761970455925098946848018949313399737616303371686643547453040520610616203705064519030154942468837680367532647146530003124794027394801954828999589307895665986196488670695900115975059008100438550061806088378501303954860090618129282647084764951679744061678911382989534219297406558979823433904576626687041245283453701193564995023668420225632237753915748646131293682631293860200886984048943967846711821534704737715153423043226459587205359415131366090268888117542828090946611618113858199233340120895153521013347779064223664660470418139798192087750388563312989995757717257437526279143081115072488317589214254262117894716185149786964773328258769432002800300808086831359054184352042808186093970581952970659130924960330529715637907921311097052074375051783184827597929934716252848581236658896331798182768620507401539816652321650608104835432751982189167113987394544766912786589400896951913074523938386940164505379096845587727132824489649488685890153265940077615012446248453266247913718780631927721241522116582585440079218981275724823842656670048131225220570863520092372268736099136808947241666345122703349901972301396054811716900221290129478208233783942013721403136150303677553803283149080450674972652088164647424367324468915528087708617025139573375963664945789888093652035297143874644331693645513642965042226754057041166331916851847690415851700044741494832402931861437035944392536022745340334631084130451483337801935877698991833075969648430194953103090895774362278901768629834483640418410871355794355643483327699353777961822553800100585765453603607293215590819818275365496683504544349153325422881767842376433125813102389661624626183533727676553838306822551327137046056365167808172938531028595498207395688923772099974875447887021550560420785780044332342565235590937305860813665436791961625218905915013044882212622681619308809445642330768503974743629649621043518146029467142592458083860208674051403199313617837777152825530977688743645853842557303143003612610587778331752671922053669154409353443626812128557713045182719222854445144792659439804412378490970307092054599936460583038708642456844589948488139995763792599404458671996248792694929897690838013130535389414868226341796974058096122864609395533471404163598752452649292936244482050545961900697548851895604699500834387614668533242153665458881322038186709400143394530599064267063543897610937811418069928615293285102487594411295456634078609216879612834515158601733543853907305574905601054307248855697575326605451443763028353351259198010015669519822669052337564517367555818472113124781848837623942652299047502229844307985335861590559806164673201053661826709924209836257012914426334286811789626009781615041649593979984309268339856006662233737746451823119584707505065498817140012145652084759572010850939645520766775258666305249099554117764020611696426616395606377771658138767212782058531829896838106731133761329363289686962604203244891227990862027924679656966340004695199557800233089346244517695417168512761442751269757153712908099917620291737157193767304232007162079896071656939992431582825856605647718666255645504491516929217141505337754374896683488979680447874168419104318155650948639899370503027479044553678010733694770340713222725845241662573580314146766062349637875999500873571502243683845482165565738497967347615403528913658586751503237706137699026502124289165199412055010844051282012957182161963260142965806184014085489297116385042141412823529620547600667896178032741096924755934646628753312996815269541865532931639099319020154956171278545168828910199507748599404990899761435325607207655339651113146231108353565719559358115300706872312928279410277240536255559808660005674748526288638033234866882801524578933865724325246831891133098309597364239422045341093261774317169278331067905041698696562069189201541808238738425651712866790660091746755500442582600855631294900702844545949857332221194935004474733490912726523350405932827827362506886992701736430844309418348873877630954429170241333519627513114534206376864170423767218328123403761371227422618561855622108814523324537231231148770068269093282501080187125289479091708898933030737754951342903812415790919293163427166480275430385587867537874047377205203938674643233518324121218405994398953031109250171171048970383799587639414958598797023014282820642215360756840759968386941821070406181495137023578328906266161957109867665624448630084220252239759129092852712633310169546382061507123249292481241690485850977925482796751299736844981596685309533204286263312879176390273103055758740055930934780358505455137596332835861312390163092827983516729726671671963633606554197391868393153145847978061116238008784876884129530433188560079448901245544866635847535953477693273179782017049516184423362523473811335994646562769379681946552437717942155300440335281706472431377021303315559653434182087013758130201883562167894540735868807202602130311642376230586991865507482276211061148619372465780011999327033466767106376915466826623565053584371462128350439415774032200803526219814286635540694587088237131707343820505694141685192627946293358719576250179145770471343939302541087584090543068208624554179691655211026058929250835015962151050627679673896517623786429373760322446167149441665491264874522287089373033994622684883623529315949273951088699446240051228052667611828168488662142154106396915348321167884796907953880043458186908340793791308217703198580377688472136669355457809810156515634336080640765944797163600798268701388555283432303505000457376964616470226041376386008355489602945526483040658560376320782534547651769466915381320162337748206366475857874265329248725019698377944836183942238731469113474199950891152138419058122438371048056365069098931467503802142581725871592862999715735812818923903586907299401181028417025148447319571252620985871260137047013603981969769632254109808087819295993870798674720296236983131125596180435617218967216748657668780979856327569926478436661645985325931922357521743855222848456799066786503164517420637114641838875923006763418304090691929409196666338003417116058962186271803740098937287674348727427050327753044616590185668112190381699580597938629247453919626805873892049149259431672107717982475898042759223307095121078780409286827974879065785279131688498186418159011190244183894892316892437910252606708846839521267701028215952080334186895427750377697481040539024031125149543146341020062931179996835636884099879853200974079751271607862195674402820607949592493139946729264624728822633744776335682514185237453741110455743589906447897790098357657150702137385353202704132438809706839169734463912462029222067552902287871566842441105506099356375606777982206117996335184326031693915229676111263395256953457560292882487968404798211909438253377434919920054095523035718760092551459835910847319281556228933233772107730039163027648154595504579833424345471117460401245062883371292107058245276349695244071174730675798373227322844539644922891560667588465929223868589003575444796422488557552245897977438603135910198620559045014152304476886012664259190476085565069087184292305700412328421590883552031535347019895420686450216289375986986295894386445011431711937228449613949574200381179747235788994636282453672984975893969487537432209250748981534509393726636815035111280780646711856417643061918121512233046362085924364256157533119904106746232700839745955643372578312445698593189065725221934073335073000245672243152726747680907231779563994952128567522619069132147914939183372431522080204864935116435836834434458752517216002244556254371347559748610243803099073841379086430002948063163326053496448664516435458431228565497725135440635644254254072462930638601147537052910481172163883253038288422724635183979475101732392275955053965953248269968336156282261387581783808312573586958326168728696957785218202161393091517029464750870833349520830653735924448979938718754203069166500174411045593845668333406981136357417317321750165152340928472405058112782235211929626056220444517662743620774829015438284077951803762288051591259119479369247743200427782199524114327776367198002931210644091728612450412804953238064985896606408444512737217408984411933989729480230660088928372669346785380962665689532142518770529874080338021702814737227966860669856038595846592104674305494592177214519159216402921994643992439356583226360780058026013047680043201285359563570688354405969171686673000992597268855250235646520329139618603822069514096485131733355199046295423930615278852418927371687303216066182919152112053288712307134127695798118087817199023061029436595542437255301872709589607835405799767919177429470616170339344842924408243845849950284147833739680329941540558716851923814528800038206223468833164489859423477719767582465958693412221503650597687906125034997899811548107057384618386098233466235183998577031440840845940189509288340691143384172498398369841942347166051707982378714916712073345211546558270816947494392090835541695722934321099100222480626489696897014135274866601777974499518803838316731998437297636140955150053039467439481462279942473740412355584235654463442155476412785877990121472164964694900670363084046828847892698501089883277855945158234383867633901511090099250234239919185318503557452149393047866786931089976521926153587613367200572266618874977268151743661973564411368175022084438801113809638382625988812572545408065984155897371606085018337227299197616087763612222875165113238630765730792894567304047747647419871640348927797457599431515862636729723272064317484586282319138069026770201435753122730737336275458962013364399486776232222603779618276692471240690158823192383847297778598765261021772388810261889145145754983865095923550223087740121856812010955115584583559524910155600946735733697639879698113294864488583243218109421875396247062546768810755272680485724216163251920110199197273420167722506421231921035391434621409180064500846879360844871245060380899401115912489525559359030063346828138540764011632328553593521179082496531328971097568677857039582881969670885557413160088354615008709794564529595743409700830125625502331725651675916314585523682268205998124598015268368158919392319428145414441036969441748521775484204646568523538634135242507684880474294231664113647156819118321203010972171878110308090337609673686584540100636106667001578787901400268346544618059483589376910225919771193294564148508945090300882227833171463068751519257226381204211228888474609407018637973627638906392540554440696416091665264942613732995891251458470307212602782950236356818674033145918829282967983771311183432736699416135112328735625706095874057828909738178486034030657798854698052198220004070429812372862336464793942505998895066683430586758539271799961624305782889253991503817687033397494274382405012317802192752896430226635338708521284405825298517587693575880810969723594427353060580193818664668446406542443236162139942046496067450489804226760629396007715055578630996005987476127573347067267472517766806299210483100321346062978233283897032557446038149647612931557338472482000713028776794694760668529478503411130439215259784535469343676484872976136345396014062502140844433885831682017527082143955698970684729520053983568794670983369541638496680552698881388415496884789139837648439996415061501345032025408622976308880722016002825981860785249872786034261005071821342721184249525406056807588367580221586954540147557371544639709110258059267515946726105229603695211618692422202702342431490670297654240474332296712180098836703767533652459266711237413588768686547643451373786579565257593443443945922117103571052581327175272091834102718852110798345393148880141536263449746481468391395759119987769052505600579011262621777300604513344619027656866449182614919585200731425589856100958067406952175233447163710219248922339963792056097332170738583679540073175633031506605567532867643616568405580444518525260276940668580783320614405032598646408493429702382500660239941544373943868831746238722056600287046080326297206296243406051905409044299192011045130220935235971711827976313096596033920209494895632658920255681560104423952277290744569417688994119067421876041698505174960127145647094424543418871863255916996041773168953286761978522579814034362331642124608233103009584709725916572938988159975032981610747831264264252064256581995708005966774826809158777893768229485522378302801781367472681253051742737730575723556382333380460834399867570698204855305171308200101058015958944453919636563901729453064783942151516056415239611183381548861108533260784534221930936748352918561771635264859267354959211223902104330063220871039729128327597689494642617491017466509010499233768824092310518684269332293090515530008509023281240495863906680612250662085137481860792793309631199266967432515974406017894254086525837803652055192595260927919330413385441584662784315030374756224582586129599381636665043299152535058630303788596461416555231941764656100460192645767335754801015636035206012887350665306199273275599118374224307377031049756860218044726194135497389781639295278048611781323941635440190705593930289067353932551527286763258898522068868986472097878484793901460308739551798473203683302486928914668457689542912663738064644278069195615174953640148041415280455855533335359308039134481723623511176941709274522655215439499883295049771704913079189574966756478701220668422917294040623313921435557089920761203027387811615977439562480848381691890130275624743673627360135070184310879233684869191137707199238748432538161080825275412943996764797217599211741959449818046165265005865588933845031050880106925224390443316662950610778888330991648109834631344414282094088586084477098382090821548950203787875178996917066417738272592927145731789036557212111966863874518969828346918786385267350487736773057456377981688728859070947827169819947076708320191186187926505460885556803656717645795407002814254941105801665794293252998319752806991306721833883332531851290291875301596244677908122151118586532684821263569852356576888743901721546421180681898388509520425331754551315333552422054308726563439367625158373010478890091621348271378682665583218420867882156530141375309422236599904507391215676794029172800308374016518956486033778384937406045062054947373994692630567654233275817052453998853040530010256890661761479657085069405567540996831547866574037546425932234905713730848317635442521067326190422217220243532596162066015653710079521620774238420908215230504408361549460259124478223943080582838825927319372564211375557184126030451989915632886986464374388498842091781910827653217510077461652816090613995719850028219847798664074067594840179826307038850068961980542917449497404883962866055707710704567927670066233704508745756396230500037402350952757215983978431299437933893505225139346947989316667369860302783486853246844135778276797317801384590152240520787333328482438848837067164773496270228554583408650398493787495947414591468870654328978542769071063949930959823127214984923130503803274682372673208657171227517804099846906370227030104665149493279644210526660195962227986184581376806892734055944470306651712180795691977449077400678458464785109989438763799252702556232194210481320056392660580698018415962352976012831878822340844448584273626526359345001984826155966127568037973882457627517004455942681428495405019771051276280803657537726707912233614355161567641460172214150475045687608747952490414402030465471969034888303562252586499568076650297560485794220431928819355137565175272229354930855681156374581827920691244321975361411397490501782145996317322245671124475100820474531700955255078204943650473101860742325468180535649799021158887471897484074639310877836993539784803798703525384125369190720957247330039994763324804593062559049013143931400812063974841298996104862106308392311015223187419242642461169691996251029304115413456427347163123217625073146569865832399638361668796058356302862092558181913559276742239530694019074643143636654053631672845683229605743955712326098858484873683427088982492061651717112750149452813995195522574457432289535266001653091591550722407465813795262902039197684941421438866974533668453814123942488461408258479286397595949698247379510230016870433859436716735088251270404857741536628694090612150615750014531913336869258085434852886042504048467422193321916362088614143028816659941843964877075804908372419669151984475897380625186867386627794105617241096037179232744542431924304997550326297794049845145205687553178480926401259677084929537332201513657664059847731617140765505965215330088520988250271000352460475979003463284610759738644860430315406083993137863169681357686461299712850752474301992720734280470697757106872636001199803583100315798099754272681114433111187400536288861115834394066274778561646188851446821348864381175739912700791284529310984899721769771752503821941967138643525504546881902719771544942698043340569794785766488645712950075364064542323228051345069804370069418766424594081404615608525796377778359209377509192018835770827042386096306039574980262913644411189961533111467564005159429214132294251565776595599995888742461635216355152295589221637855735045037893194059540740039907653564759018045609672846560715956753901634450814656863728346540616063697131352598783086643314971691857141085070183016765488164153599493605346071775933641945967408331799432032078867214606464308332918834934969534392894993163709335193830451407439302047423965139109512643450183145909539069172950411531198687201190594453719220243022460126850741483622774461533017220488758764035278399537217102049617372191343404415189290490769903214976473159524677118328290112397719076685106664227437983311564161952738947292950974053021313433393860033233691278048173608119976241567145105306078528836714664810588324505035401952419147418188040782095066492262183915192822192992908802941375669842887940751620248664985506116961601797014435314994408544175111760207732818328602153217740034285403836504205613911439549752671222107534585806760433522774513619446687948292493042650769204853522535657346270549200698314800238855239123995289491708773147149806617301711255249089944616607186892308132586732083948184835182554024874693926388721837068819273231373734069685925042652637749880543885278634549696260627227568642391352012433281529810036353133576476671930400721318460646186230984629060937235986141580454490726738792865287897735772544097664849611078781726876826776915215862187735575192665867044153452317156316312164123009050974752162332635099562592588636440351067421417222867238615737014594446046806552322883879223462448189380429328598349331100352607443741166335249453881457043255262773901365507001322895595189470024517519752306850233802578241783304607322298963313756726712370073791291187952160704288969060489168376460491150800646857599305288243380667398027809892252144165699553929340846060145077293966581286757508199925785295262489007237799949589196693324519173794222295993353378669169743748418714023970624174893079078789351460897254147629378357755412479994224153486021562263737228023737170334192509652194723573321142502152444942922215779715176358738592502734811039685377011969081405806074337340716626855552085249157950722283539972106091356273120932926178922812073311625022605655013851217999852293986338940279936072185654537125496635971338516250296960331749673278173278750655813976912222087441617964389783483175105737874635682969244389301716005550741886877942819171070491313799821750969161650134054900181897069288462190920800138174260232542304460670692812350610649862205215220347278704060615142199816230643441247152907006436585049316618125410538738109141467178091407932972104352249466508660606237011802736485915183456982948040386977370934705979251155983211112772300374311168273614604158841361920498939843719674280114705584700342507268964792628234933752374017349880676449806397857374668606284935005954855931567992668583087632717927796933942526171310013982216501948310436452269192649618678256185499712704090303728752408791506119300535020432825532286932312220725948654564434361508915895250041881512635487385468086761860256845771901838718917742087058187682914943641423312884085964583144516516759693770171182886148485606940892702141578707071756318142878901072145984641929803590254094951101321907289112284458913413568102661677796895031391969457445023774361529618728351254401191436636337117204837970213567971115977536286226356872675767132487630937733552694134824685752071883685072521201312379372511064565248012903010404239326292124474878185424976346833347602104341757353411691021151946818755358379851345566893516662289260977848240264224891345602160371672574867093026487787279459861297209621767913507310644051565887278893658442002583906209232103515712734614650478263777458551017146724617605815095445300299316225600154062721900284813158584234686672601241901429330805790441869123674086043753961179426928706789369783231422388232943640951454163009165626557578966068231758839442981460718710194332745566679838687329954666887843234652308945952054165270581588494105118393937644818083119819618030161884462504265692508411947658072087909179784693919597207106877367134980158377217094552262483252263484395705956857814326221074791449301700790706343964539534606322473555947744494722944387688873499401842613889997080046631773683027471897737900891958971614474835062174928175328563296483827230175828453170094718581231332814768118404201477553263214309658615680773773521768625426576207136262189909255555716257280447193351434454810711285023663351187577882305571368224899035588248034334099308037852146479783592983325601037317427512009499396543923965952918971928565922161708949851269351282107446628888515340308862860504993504136546692892941268197996291334971794057144749612888097968464289197955399809517752429796566948120270023917655970391728513854529758742477994988285355412941521270836098863430703450944317589987501414348765437400019876023609660878878329950477369105424274209097725514377728681578136090462728872293736991253592021579611692438565345774198167791787919673285819990595319259864870121625615755972401890851058949992889021399243059911510463753594785049067591380510465058727264614308334320242524436397841383566926979888198345645061100679586944429332696910874544967587603338607410078627435796443469556463378074971099829218379370330902933151793422947366343531981579489821396583072014347009723164752968063467382667643275182146929685375832172226753647612365499695597622151045271575030397022188794804227422078965348976691433991603023617266723469733791304022967742999244299507258856583395522584284888679101696301162475952404346694539837603278626772657728496696894136651055565436078677374252310706049975982706123697026794419143528822458862605352811796987884428033406473579047428975157866105082427291647467762653958844761030510252351209759937234558923853587003709676331499387231141003552044784591068995100757417210137901896137800236212063037544409783419320865494812007830060514576603109822618922326903410611404253623814993058853212293409136824218103202375683370230798753135461533474277499769356543650656936185059662935586745081459520331947363659951630565708629936195361104203671707804357232311876514634079797546378335191463699676175337065704357634549998088248993356771927283917518642855888654784725534500408524362285045672837417669692981506991341064265864407763788565345552043691910523072035702550097335254440347146881458866490330207668978900231466506111408176873281415126625195585296268892797356467941031594640966270937854526271479009442831220063324948891709545691422813729899047434218416525147548281233351806232660800820480084811472239402997510534241676556399161266299528064941870188775734097268362432692129487121119602615743276434263239531310670624656550236493132231690727086260994341971326013565800051674198064789891147542903355151167694357391194585688106113272270955797678262165840244965549458962503727547375722095748159631203294289671224294258719728367256410520442406396950754563085899351328067253075384788516114121905863301509915759194763089811356854786577268872612106345556756223472652185503723343439002676872520260571272613131818933458085574300583464909244477196689708106454307733404104992862696923769135022817264756141667984310745325076079443640511164227119610950130711085347868906410615395351863269031384841794376261609373715080418426908120539817374155447241459539596750051773811575305053908990119794083844710293292317243245865341009459150668879388392077816571073189345671275797172352276094558912865390269388023525361793769860128240723775430748578618199647580728165207933093901375717189985148455881789049448159111233875716879735446490989832446461814520987212118690671267246476655833984982243750144061439560928694270850295318348557125035229580615581087604997085442665012160350315370900242959693150385368159182063613942949668723791643053006661749607397217446040746661138181459056369630406999130830042318502428072078835830532763511535831497200480589297072883287047880128582749546233812805550326239287223770952821848702682794997406749433330189552261177897902875659391705239178144742390923973437162983063920253264536931568461573074954010677296181296957143901731871229926071854023378216991539279918173637169853660190031983990434838505352481199820061951660545146190302137383796714457789683578762266112180297107382299872159613525537366120876362563050019773185003380323778320838291065610255306021146278390124734013540852665398300113240625978076804679123925785535352074530134914919157235287102073450107880092071944263174284103984743741458243377949400340103558405460996705117374082850506436374505634861144246146808765175970182935067136546574001333368228075010202120659017828367511847745889492994684910303472527773110959232061466324510969514473936262901682669012573745669423927219096598214000886194962079806472097057814592058858216542064123659288447008145294013742544857624070069587085796547941927884607834320683146174297863888093810135833028394110740219070512999789207229519402710206912280485527446259113457644367099754693780687735202501752663870007041782348747151890385607499093704832085980123220357247771266060221323362521901408986609934145686050405709649290608807627899122449308578441101102119707730154067516259497583749395476930441614272718779692171264688569942160237540742210147550862010238082052112713400843793183942119217372583375104241581792345588595118645338446050611043264107573848431638919524153933083061951838170655786663929744277774874079908672673976359706247843536527932328006366326320249883553904058972561535142423740384300657284780929237643204223133597166263431918291787837060791726763451744927786697939916475005607764451292290460725568938346766873656568690197667005407927955291552180820850811575290411008188806558772127022112332686903305252706955836378408847908249213328040402549553206747237671186956727266565580626978877004010482478175687739570596787827946007729690048687599381725737728009629390058013403620943838357255196775444406758588358433707663440531994347762637948196482040686518110380714369331363103051565291952430650459273274391582772717037931900665742526339827363302321546470700814228214524211329669007139730128036718491310285051858083947670569439449972236105694043916851487170722555140968760415288609297970972136012619830638461354055525429178341629737203228251554184845564443495434637515531279508302145354209058660074436365525281225698644806964004957212234690092778263362148258663956493444537542752088608475098589105787757145726839569076908713099013874113845122714191440871198049426160127701592179261367589323682653504220714662012463140742133061569420019002029947072642992295730353108932112471054589949491404505754060787608119853198107915365663712092942302908703162321404219978199312356256056400461236968755513410755084382110768813774865665493839294674410815656020653348273936607254045826528475626048636579884779876400789538855591982238082112370609997696289894428294519057257772247363481178235115447950686059957197234808887284792141398431393405530251709241994377805698245439182664996840744793248003686606200804891978298670386575643990489586249340909582106034271401454208129127824234584237754309317786421443629089548941120202358561504950282347160344739553767838383694907414501088487685351303982806047528504117062854924455520501636702394442357217252757617921590032926511941083053802769561224791141818707665968316474510162746226753879240837607135198812363067863930770297908113172294176602668587165203326584491033852076954394819309680479084316957819113098347646485255054276384281797230748702163732089227886286290208598529883352995246395679639638863037703608726406829082853660333592786149146444207658114715879771888558917318456176484257959248912133569568145212915499047129472284314497352415943287322094121325563993564038287921222218541538307933492025744356316045553090232669078938453585942493978845534697946122095115302882096064445543280659435802931533770393539280671380322962435084878932266810835106470468060086509822563297927541343887923234079837401289635169441766164091117602689230657492160999163072000302616028961449188072044538211406412469260347219476430746513891071684807980925532844368564063616003281485304360143824962408042848910428094576025039621470642969165081103670384591881590900171702813513930490670826955672275535977253617048194612846787328195912605695703464378348771792992680934071093881986359406102647464261014984312302690503005192445186190472139512443672858402783777736975103239280279475182157004851815111880691731114433681571227976263126493923405513661015291766367027238952782400094578406304244742860483778876326846722217923552262531479102758203139339176123439792988603795768736566759431854751239796263893105505039888255257171522813145243231394776002501567764316494748341473473516330347089591845661877316038528394862055988000423840447501421790506399214256849921544970339743065525801744629914558086904793471907513385147736287978077425139161566669593540523752462457456743201775554744631774424847248314303901041413491974182034608194450827594379214216573585904280785611563040445001401813062325618015336418957423834964298608877404467781329899602889094810109684508066343636358243655869922774310907641660959226172790980253589904300401669122734597056567799365938992013272742660359136337966741398858638955972490977270577879687130754024763991118489331045055128971445530917942469088509778416971162531883133994022677324168113448710951802318080248354060664578204441764004535074902701870222007133826898239110899961270048678045555871439168943691273877213257524038109692952401945673749356664662053057219943698915109779079480299281226917070190017430199569526339410367401680157471513854359859158187846289039614194902563596420749972135449935112704162577636931742077402607194401316212252420782670607411345920663456001105532846327003711518261218030723895614978892367765956844691547102059489953325176716909716097178898168927773712810268347453291837728161494676331622261475566502295726363621007655565741516716305104711606066052615444949935280500614117296958895492375687223403698467257095818886018306837660478232788474588232531588246450093837322141197264126165423369626453875432906496344539134885294732952345990364007103977744400868964017319139935129660257941928173950898848357539197195623184894007032919331102945309060542191048023529647325242883917674711931867733352168749872550477206597371898797818395835361153968697385600979099366157066070363708064898532852908676535658016987714391357189456795023982159574372603885190373157889233673999892966691530288890530817997180816002817760388716917484401367441425498468507026750878615650959448352584690624778146918519349859350542129961115102070617940843358665602948557093856410511067016099778413387105860738442516977456256672324824661607359576908419827308972734311597613800233035148481019558702966400260034049638856565911097622804301093836248228519622691248528581942581112624763753988774745862148012428122933411451913503621402709172554220992509968707954822079645039771567784273239176515434302893516565980656871424447862754836591100741163380600113439146088044803872624347500953526191438298287632150867191350671212924399599823750799112918437109659411498030017218972959281424954014706642381469755448408103772186494208677381630328831988000708737165759013305682245768227170691402295070084795940360694356881481234811713282955357811001145614707151568851356753391899569867058793587320219170075991713447149104395818105425648447751709880004401896797441569945644961309803062111373904181219773666808692333234181531938779792969140072399238227784628754431459103512999377088158963050816891107063971552408611834120837854358980410512457140030651241464306012157089469641139750663123865397298024279389419452341609970336162936124806836274359226271940033848756095363934283107284051851062139721513153589279104463470357502165009745233177520651503229122734792694949515327331760976678168839959667702599237450088243113005682859287929347043416683300331953467737294286130763964415618032412780278410193669858557999122529632070618220847643542122138524846135113703058075592969474556367790061179627695963795878603281539390028455213545234297333783422825285677991450470647279379098356999715357588995252881738733687029481905068038844348444670796076396829238741593332724154224992734464418218512380735745595520233389674446199905468158407598284774013389777741666181027733329998823751311328529754125985904680560987338939930722249715471266371374482667658600971721794285470020032167773985399629944760388174251497020218099822406689130203723149219221539953102508461005213858489604074311231243008924723516432984518221855282271862014508735252098972457900054952168683617607008842797991415712040825788298159451005895326102607493555882501045858163295636151152074161364146408852425422101988802056220455231954276857261935477341801838511894183254623137080625088339614070583005800557687838213835371364991107429650713835898097142908442733069628335723928069077500861975974621493227933643194742908691449051399315811544024516706295995721209531401243675626080490963150117140128950252104971593462957042878053771283853650842035028956874982255534476649625660308813816282804831334799464481666326204444343971057860384037988852956050468833202517616411458830875320354289077117815930579372876689905140638987748223828700442457621756660858153212351521870495582811313170618021649577260596737774093285612016225995347255859409598512378458450465684524751169307925376665465201883489759512739299878250519693850411470213479546825033274589589269644185024031255784003903705757715874108749761450637941864391353391388907755800358058034705870661168710737425736903714980881625367917020170545501509899864872227047136915829004267935360414746057429120667616453785773590087533235610754038882999961125442681222461244271883339993370802745502635599483269202034389244081214521262389483065911122069296260566731616024940733073138864512424870915217900589927865106148696566754670635913203866739835776813324252946783608077526297383209045030210493925687610351833114476174594883995651231954762881680664755154088519056853977945515036407355405976773372670379732421676942119934404419258261439785072553569679660474566565570191280249283670328001502239232116318780656437369498709009999359039612774946712284406874717210887002331293136508577766947556236848350351541095673811315042935973983864949737892093749076263917348110267182730604036301742194332919761671862835637008067018343620536347902417131361634274167752763779497808996553059311507526942934599103342975566764259334466647595826552597421228064998542545509494029513751975661341611559571097572542776214808393643851863431611317142169659316906090579435481791972148938790106260400780344527286481256278962382643883673978226368936222184610609095026730323916253299618047833991469236656714653727179953238360262199758969535076044462593286484097119195140833013555070113295013607935549329202252709132929426486393422747374727267318211560385397830889150322243698110939810644539991619149515283299412511608981007008385867107367290173289145986212665015755380734954781132379109017590389491753023831318407259420216378212055595938081314088449822180038541421481365469947836851754218656502403172793183931087427493052713324951546899332131882602029108773355836240590156845302939414726215837117306657789050469275878049424671187987377376848877833384481928313772724911454172813112017872516376218321249263114937817582219746687294475753543176675762855086154129194021689813888813679227820811047229229977004303777000488321178929244098099195001931016751169167068270471985596448745204522293774318291846034616160847805543661127212799856030864531061308560158099027088281032773238906814117361749569563917987312491375102697120355501389091326490306759709401502694852821176761894698028292690408426904976908072709543264357232632801792829430742023662436524977136363411744124037996676474322022282410831299369770290644642570763322873515306401063430553712487570705019991840861465860191624311850320443358605778307918139542083588254280994664774457326887948646297170420829933177558707353741074628094173945970081285297831928805333639459856997261885719275361380565885980778046360257866205781492947654519627412771057987161307659811520068522752272559271420372438064972947758786084355606180698623512781223666615441699382985605896444855046931490583798712792967995163347277398554254176151087659483762712430985354114996988663436853434383124225443748284078149649138908565354878189473438977189704596541421028455142531950407762939048082311161818462769696934484454532894067849539801036792916547298801815428474320123750999002538006353410552246165911586930927533822014116909359077453921916428841250489795799722863658897706373932931430219002064440447599684673104305821526559460079098181140328418398996262240820442903615188532556121563216880236014902283581750398041331982377937313139491296707901565868519458393716366271277267588204154139136715434985556907722654475619510428106591232959166178901331375568006897520826760814813409252730422977088069397136090051597521760208035783055696768645952164775745718971435724273343767697892303213264529181577808424910416146196352790073693179234605791079508899524002743980755424458008646162588540120197032780374017722029498833357282431685591706400727140654819782131643200317137110023129762709006131394745205860784571292840461306263277861230084401771129189173814229465939560410782316224100349571069314527809865160116173850658041578295786659178253870323466903876365240884809753618142192404955504966329431501725544312382949786504499627125981105143448185664469305025093532878365325337118633326477833369303796542417134130344905010731404870261843011297898848999399715085328218581529300396491961949099425351351798501060557174326426702718649177218124035998656377685082539105232299510563592159048879065954994534265879826114392327552290321570330916541040130306621705814242815856924216435279794263351069882763744197493532566067445953857887263711791967108045598211469025259527668029159344871121435864638559804955083302622939226858198880353864353395286644737586385837355614611622854464188086356895382848984425144065204349027956441256711288815829557296211051006439351849664118845708945040241194328416008838085447781061467051538590512130400053770671064154414646031924042597930767430911206453404349461615168472319138152200047148662687131922504666907181727504128358351341073850721845181643116567440695271228086080056441099448325355522856339749292167369327441189582368985345487132014064933754650819647475435777211196528430698277737376775129227585283706164792988918653943922521740049500424720687119695223596307976700144339383938894458669025673096281809533121559421857300880631802174610713091064071146129984498522726536663046237790767722674198303478969295303572655179102898201006838888438920917849180874214993667284805252436267468778881449107047843984252804215904956692582244703428654511569193023118680785058531844045490676924300949897237829412548164517169492281780117431405716367067897756552549882506413027867518064816469120468326078707000368054451029422268534356536205281998505504346068949507085911061194955827605196426128018133259317713806820504895939550846042730044847968627955609070370591508420237038550940107035202546833284420126171530319271756619220719145204629641099379566101737071487846540827118714196062653652784005191771539690092282578740359970068961285011671003392637177021469698914450832516858630976353314416196474027965907139153412611629751428397070907325716971851291518987031693929209863468515894279843993144056790778419892477679717863073170871779067047602096869952890951777894801776505018487880580455353610797457302896798521499744817425065123732780357353671340308068738417526038690357359624582447219977742152991789493099582327636261629900205732904276536888567749721701411600825426299544847806364145492543635769297791212015263269483454194360725628958947930915448899589210770381187049583025016090043341676141456518232717258964955068651343854683312795395949848949200144279953181750885140117202135607678232212644614160303389094046916019426065735521415622899611911703574775199038636169503760794000303537707765599853870767085158065237945523220207142788334589932315370292564205311355564951432862947975210785837609858635593986881804203923754278749185797601646020874963352945615802777466128532943136309340813724397530575925209353229795954808404826387799244047285357827261140894431706940865133968513725125130798638221920640766697730529778755991973100887437586523612663108898845269617629935778104988259967981204126960709788692536797345478573623867166051025299846123309886694688496301462640386976424166558439562152579351152211733271827025226876316254698925330570110511352855776546195150440622427930968556125435068809046676521017099023134238659866978165212467616430513869573130596121477125099726686571030458122649130470593210309870735990194353594931174852928314488884766074727083876446623814374639415437053366732935814908607521098132832891456078189086929279189058420483499158857065231369015730421781848788946942596957073659906169443935057256162455253657274353583983242049337019376563098596375100409923602837684582206528274375284153589259586518748302545115093443134368637138524601202050631984594938876456732872259593607276777219585355440338068945238690122217611967842005420315363368491145494419478698666983856934784336467747017088145955908898364797808428972328297737691500340343489916110212895397116715066519226489255865388205392170505475539044776593287634275785651838015296700202483163094059808399686003779027986985168890936766356236200751915503049958643885837911623933798689036509663916221010918820222232318674406202083569694990774711958238494399636119334059821766531090591679399657296355304543805373125774414089248663148841350646778815870300936427504635875904134063891442673348939703115626244429396989700550922517636274923846798176137408657125984961522021317075918124084460503886593335354394532977595644159021609128675745463301769684462287455865300703157471376858510393435158168233507606026208506494112708114532409558759541740912710748360035428813266432335150734296364620531679165538804252025065297664387239182864136303540129086434428791988220411400108953352528625299461989966629535223942133003828657161049340014653271605485609224768464767922154998197440188508256055401788552897489950155349500637858833426873874370742169075158076145328131549689595088984419637218289015399361051940402003240546511982129296306678664005617503023145235122975861552710241946460301381456875664171871134662047053383267672220879492313398490632684350268424396000531300006414169279816086038886983343882434139730233402387068456261862735013260495906905362607103359569518470003631262832125607853548375441819380931580938692758853460645908201271387162847081036700151603550756795965607407102257782031101309273263586179638220793606865904382433110494596206284852718265616729704494352672155720560519216711813224980102493602467950978610308166942291148323470098943892243505607207888246888476817592637765499039875627265399673905025086375910334192920741838597065476715477069322981563701661062635981548125344495934960851863123919190720895331814377944482193865989235398740568312634619359892225768621741366325877386516638075910639946426883550293903655247874022506943736012436821309868362317669096681772065833785867673170762990880503094821949741172077010011313938400370411434813938373687408165587966433583087680810759962136008771988135354676694063307540983401509751342364783342178142602330030220251810921555055110258108904073955821196279619270440292347067681240298083273779457392009939991771633322125360475955125794315535182623873691609907160331067907019817592460809228276227345933988267870481662512211665280951547311884167895873327422129915047712147029463209564786990320306972537067645135094357988594163184487860692520150072771977364186097048462506495135981064762472264400471296339223063711404053960690182069353998562037082439695041968186802218282304064777070984463641937980193123213019220672620876339684701046303105354010074699550813906225653322952006097561390565915723341116075800766755135550501585417231227671623460746862278205118501638376055254639915056062193047667028731083994050334274848450814141465086897308883801537117921211934360237551456571321231427717288596628675019789932104504970592597593150273671535485292108373258559910965521377899598617131675943857481646195399838282318865497715816234712257327095815951006989423332803353158304176192357065318887618687369409556952260302800103460026392205512734009234503320856507568822678455988874287791082017697919446677168652485647029503088717893097202789021271708466642251257049054416179203042102859013897020800246766262968121572631246178500717252306829441389586718127323650308707911114024527539590105765512670058036321014695946963658889787365108822169593067466972950079504980180698022096677182930716892705006151689899617140758185424194841560575348042450199514682492994809101832998603645589017820042645110305553457684178563568265483852673152180464232794098626412412984272108106045120204968158758529437306613444826837301250341026258120157618707013901499478400541720225870550826582717080979206523052145923227556323747094118808596797063625604543152563965238895801093409764865812219458970764538187486897614780738664370717757905223694586470022446854414498324203781199239103714181302347412785009620657261470655435199980876539859938466287596832066314640822256426495576063136216752529986285533103236804728954629818807664402405678701814640514761402538378934698772432128340342806435072854660282099198368438034637539854622917576057463746925617880901811682094039761890025994633935815244436360874387618680402273514680122358073955144271032367641187378714509051070160209795535764276589521774859166937625817735614236899820832575248788178102019571425129103037448695872947262503585113661543969847509997260329351359873189148429452745173359074905040742378449240946639175239430862407045677429863103349917031664623123890109933829682050423769542378175014852005921702980054420429352669396962252620335101663502688618951589670384612799171017013700078117225570220541118528478976014833216339112411237795795527603221759574953957417570460419283642903713619496755860239574084836907700057877235845378212170832162213094378623682956309366473542905584504461367914050020502323807113263201400821675751695987907853811770866351712404722438678723146324170132916434534297615178844637762311485056471803363601036244755657614488379787900358396283732781200671918433987767096200675886227827179529846426170216901109909280517958971960237371155773930572321736016374468186132077288708942065390964343518531773154391390727348624803256028968773254131233045670207930682154783254343536688880129491659952796412089719314289670763493577633626400603792988015588746343746046980921629608988031043386784304584091924777105485771162621657372358348511543836577464299348285822941631973671847897833935712603343148051786823046816501869127488955863124593788218123039246464263192457342847645592759368479326551634714622447182963474016521934890698197824074598740237653072522188375550164952486690999193942254954631986756903862549606048380012431951261105965231526528497344382474935295529340348094768221714987805909057289569729288672864946248883230918670114868983798356729338946553984287046945163157722686537031400023005251362533891884734740243847602250213648668860126016239042751725857529852958832454482011445054823599071734252560213506395766926020518900559959839153070680262614600986286660396154646626293876675424853653128340764018535771533213197988233480511382880151391695391606957378748286609897122570772068828473116023113152749426618053201689563060115759662264387525490351079659270317250209016673224708364749588353748196563745328216353873535960992354330482583989214841114749627910093508701256992795966015973269891755586805607999389151871010315732447520542368032106086976419300202542053894524624984685316876084991505704224254077608875602145778611264379414485243679348204137121888629524571242030864538377570607560377489401375403562327153857302371939300551771914390987376361525548267175695674690563778646581825444068011527202562674380714905725488405023417698871527186891417518147281298465982396565324224090141079325678963633262356795383971073109795951022687319048659217526532474315550306205252858207014645859423280541034252854582407360455399565267080281515699104018068639175117779558334647572837640179772258238059249397554485692110652058386859947216543411978434744065725405252525351600242200179047979342228505825342392721513397312909179253005077333016249829863294509000708617913754782290747341149534797006393700557541072961879230210550045576406926989881910845185252015571029576997907251186208133770411682429986668300697027738626070217182872461025227123169601547759165813714416499388031844258966222463322800842435535764192463841504769058029507456415066889065313747470944692002227521180689625981800912386738505772549137090062470366580167829193081698511948774477931759450623646816059497750767731142053454277382909756965478604730343156456639023594733935025308970548232773534767848160272205080411608538781779459236798502339872032830959958203356230995594503826247701975044528274952416659263460650145787374216608083654418972952642832772038919168752011951069092319039719040822301952764669220699711943352131633949278319494752130874178155721621587630553831219038134708117631854127985760945041916861402780672176522707780958840592586699853321324017301603748633307041986530239058137663987550818137024452732656349588991296489816258490999854849603954921356545811031857143157051952923823744461866048658549039625798345459729037702567619157455250635024220364092646347396379618015350396575486084714659508777151086408910141875559871852649999631179681257601834026512254488647948914828435956084924513128496108523535958546733387406988827739574425486178564127348088340323128896326515851689648591221105271826250357206527148107462444174445598052795665272833170094004654364902850545387695331944940225447472881974912733161629462709872572756393064683833651202326873853439715517286096958969468671503216334827543107362072686285367996370982987528726937687979188239226658678519101555613070699934195354009091034249452924825866804295525911855795991111198077170678843970801077342782163634020928520438159241534430716179624617209308555612004904342998283593197696964938003060384112298895450122102081191832989520141433464856466125039890447308393058964027634415800035562793499923585356180138396423537277626847928254681696902390208927817330857092479717327705613664035034381699193795186598391590363666526263624372089375902005077171118501818607309403706688810789607326926512660550662070649501685050453947982426828520825596084937366526689858105313820899435205622286681539207445440116916032985875035480590098665996435358393280561919889826678966001961986037180007825831311668489515858562745397258677488907723592539852994909087559157228208207806952972236793465952334295923394851641425053418998166756624679024541267979352495271298731414691599811559932527123291368236905932960136289260938351330104099545290757651779290935835950058646367338430740880949165903771740302390710682024673674936732978120121763001804564404367756647574106905741605822870494180842301563392535794677685311449317031004999372267247284903758078656511764034737258494994173251250308585041200252908979872679623199148954638449571993425917011258201498844933565171774840184462567077231742520741242141420147887720029570250380910573220970495160633913989006945997403086830245187826208592952798173971927578241627425401897313992796774694118004325822712897558405370806197359361559674440475949918884859955561672872051106050618779679820966939640782046107256891103067646028167760852889026443700000218109439374170792573650683886038658130383476303979512327376037821884783177183777326854557436029657725657447727456369539625877173340034237161336509295787184762305752852616318980810501689126477301009437251896825215527007010141154959937558101359161900933492998447687830096837657026755883021404935648738226823795976128163318420053422704972396223771080649613052456844019479239059875086190977807830143036610186525230604257309743190326087590544737583247021475942197666978356522145422004178060166381899461188066268016399281319938953751790027253550857725315276475079090655802544152376751423703182459601602956075156084983063745388984982592952656778104439613139552250473719448769128350153676575023564153478539390108937315114841111619413215753134444554531164681314496983214420199899973996422323267994512930428494089934528208797715120160600000907975059389759805572071404351665320608129504665995855651306084023419601222911381326074683024164928826624636875923490122618265240059432231440423569965169898919971786619637283072998399037238231678285017377450538893886788332969293859555676340342040451023495852567258013898239411945012415661180417102586380291871235096219015064278649161277339339665344082293641576438167162689028952142745277765337943647892360586806530754349344819266842292408584607668339789559909547605583776815851523621964067530550324682673318325243971438111166922393782741513724646529520845573363673291074547920645941245999833835400974036814990560859996300534496100213885056367440583233969033884593338434385235022240202848411209421955332660874326497075739410503445162131852127779258222710375764734491816589613836323791028104490813819349685229207701416543902488752742903497395404611287588716480426363183641359519260935105273749780702145258987301775169352007225227015139766618803470050833109509528762814304781100178723498538353856008803959970447587888074298844757286824922919611077918131732073494200781279871187224314915331136571896876731515504012268366665376413238807750734633696984571206258206596328122629769622576903252583577713735352243028925132147654524801817236740945587954316295487690235627133516929331732121281551038172873346724281127750667810818630412320931050922340476912900012016221851145416026931664370811851600566933016508900394504972613896514700505745067394175540421988503700144559809008599549384058815022676285522751714420601953132439492581158042341541150828507719187627605321569102139335082992669118915470470329900209973239050604650197024343764356338638819883014600543432470846665153224134614122389098719739701545852013844112971765386807966740572731435166892092095368067321361704159620406742437314019044746022893515673279656684348367182405123893439542222691666784913478619041983577185864195462756907458867738278256168036546947981315442330322997031947727383372371728773906811627409773893236618288807986014816768175955240409416668534501201891792447848476581166054191443643819278184292434125211497283504972520765148568702567333634247710596472238096098622724975938767665984824243499068558346860244214276971870257118004987699809381332888627594275696724055411066601001911157843411383019104576032257734550731415593576137275860082968976185163651291085916801571833591613070219411088890491478834483505811845003439702764333487396425157032287075546621394542859619505058709046126560676853736713678334335355307628383819376626253562568535288006067432387629327428886007298135261425153633791301033351398393017793964899109756090558193432268976254579136714119518611528677397912889501173006766967302544680183047212378774450599997717090993040167751517959723064786417767731497485178343765222886943544406562176408270744737472109313458414053366526313153970075583385649558714400091383422676413290480564220766625543834874510354885403558101069828873942035966278122928815241865408282347769988258946222576736244573052372543784542274720531381509568146451652990977180735082921818980902870559260362596892993579398268014127532521255863822617549499551646428623915040197999769165462911472369725475996636549708136308996873896468089179418753707191240818494818964813716419477103004920014490472034914917516545040861662559487869575769444443976535038077816164740876120976320768821534601428784456065087892974195094760540892063024941753674946030024978609124982563603243075024213655271612693820420532824513604787859876440770247728394650971438785159410279018632059541814358572497626347093077179703982804794117187681139357258436490228221671678907923593458757872827676778556047910508122835623428467819675053610715069203681517574953508496405882359140694914131276808274992682545350998053050808309761731688988321600325922647924210034691843181224025126038983811109261296733385549546573333647220097331436923084942085030524147505478495879138339849462985582991254750727775547866163013244179450835664065551700332063331781928498113924573620478936336164091780044561887595175552205715716508216291440858629638364243966592308606726283990375860403054012156062058701047050063901873148336085115297553685029905668459901696153476105307318805924228773922141390815150101448765529291701352089897625376226050915389707629027795739922853816204044201320611652887600200314228495477882185437222664951903394434350039301526344770351550871522037338058002121769866559333862293061452307433011284202426333680992445831015291714666122291906556918449567949456885641976178481929902040762357168610416309674992312969404108426377613719717800311155522138034344423987594959337836112564733671403170947046679933120684858518423637029868382033914933648063237828549431661121813402950440603799393269938745476718074736660722294950563853615777432783837517076979205502845466836325476564918537608910298004299023146351273262822737556450002636786666081246106523732399070082166984687008356444839460697980479493857423422571995406229558817851977017579469190842664971862008015867582859752980947684647782903237673352442016022586787701418878768590424548119020524907534482915748564865908540644071904615490215122011191365957015520334608838742881793666161025593077569556891720512958143175298561076358462186062703622884591535126715294413046196708818660542590899354160922257352189500055428194439042451162509420760077549133856246346900986205007777695935725634003231521323714674760305773944151259631882618713795465545201660347485702145488866871650156606738915342225488555183908769665706701580382833249184445130751950767785436433130207445461659977844473463529594127748558890979604438998073236469376211805132740962354203579880862857887226869413274894622540662799558339533352189926154114492434929542605062363879700969550790118940082240866606644613092528900776157628184680333133941712769694446665139325407024533346383862945210946367346236419901006148739162455253843587445065635454999717297086280636689118893292111431187034296168228594266220829748155543818192898131318517106987689485058492886464367205805051332018224762044813623088905886511774956585387091933012746791689696030601085659324979438974316852138595978254613683574545171446403123815403889958893234267570864119845051525921244586094597926546493489645344446583749040234122086435774553856023119637758738198280821258041100572185949209725099234259681555833129308796910337724664270925303957336436195847782091293432320160551162239553617513923794935805695082586287571696939396829725090653698904021334043184074800040291203155778610784922338906587026016033184986942563865987114617224854399818414023178261423532918513382760074745205985905488019227668887164604540597930023536642574567277231383500822894645984712127337495228342055593324118096085661603689661245891414818123650921946612860057390021791012527922325486975800832665705778283757113270243957270705041232687873695134944267473849540238445285446395461231585201546629195736667276230735140361820265800641280853025141804534277859903931675175459891491275576231639272115670288952890246351135321261473369871531826987362299038181306151561595815869860874311073277972026731433974345781864961098458330495287405246935288569738544290569147986335280838879251393580674611305849510628495475750398951873378742361974218800300477545271070324986816405066117575803559795566765080652465455317755858215214891876471083329809733985293570223630477384776978503101510388263247892361993184169882414951956140417148319845050975858115114361937924283049950638682402563411830797533016452492927359949191386828563165297870099895067396485727383009960460977726950279456009194595256204493067570956733114426381393164113370326799141044729546597453214654092396047036511564139390504158140018799504624966360559945677037527139956418378931823405776774045441899327547073461428547319267521546022903815865524265857540151627346286278387200965686474899125768697123373233961838370194441408697312654142730517182892809597110572296245759102473268067124305431795290967333337933026435857533408388595391341770275858040867481679918129634813477626125325383535509011686152237584064302903958705041129200301283146083734778769689357502533324507513543990077952008896659876701907901614085220401107588273764157809107861680041392626076417119748755537691983939572761867043779538281899334322932456361158739763786950218892171726138269162378781935807061253053453183674699489232193916351645738047654384541582963909207246385169936375123823156136530370407588391094590432197885607393668223200308113816380912771571869100584690712006497653966248808521447955236358562084589716250227599104206950840290575261539002373756780894938431178523737798622058518642141079103055544109602106892867476454447383338687492259397297523099303638210060613510592498092807591229320900353032639124616904523738136480804883943086726014072739496898633642468119473523560800623776255035231567230484207815339308458026326950201195152215513970368958089977604680291120803288577714563453561868370750137762653626968062798116722269532033898535703356048703753586719969732212452952705901922684989244675203015113435273219212957705809484958412634583484958641988237585159612288937304770732917229910918143329420522308049787041201787453525655137196334757523402416838260828412500582016292610393513282297684881405685293642891440460092472019978082652610333846439929870014375377349345449888120197033991697272431287065030968783740049024035184863869082947102482497546684213567324050725503767415444550718105816993934666334965588179113004827552562149697565222935403297889834102182239129141449771611270440316484442690263740025965525526317807888076098803092148656419459104746176440285491869139885092682384834057712336041442488323561605200674683470122641572808549726274393558571923234631795530524491203048752168537210695655986781898702577265285387030754433368018002447468150951450502776576281017090568886455259822644140206700071049785018573920488173751593345965201594544030779044484965202959382178485627306426163113784095898099913851832916682156844954060829157796985492559261962040231786414876130602221225260166755297119866376761210618291374583354068543181078515211349822276043430644354293725869397900474970035743857463432319892211368546074207374980022054056962787304121088793253079219142695932705442496029621800823883427137394538377022294631890279020473438170024799524500962013289842057247178097668404379986855714565714683407368152884795762710272707500414487309142377412837829360557703529622140730771237989512503485825327276043346852912497242341568605832586995624702362853699502123255092313585834984445237545248288898847044429245697812288810378504096867086510602036528505291371431238833073050315194354489461796075223185064406752379592645149771663799393763439026622696846162442386131752363136273102679157068229176717013313935741224651929152492177751429883242498279057628092901140268232320028891484290552235347285018987156088947227892477210800393091956807048125228656593125297110147423037994891247738758467394468063837632267828374927548514300035864482220850579032796346138315838398949836297588077138936559876672978798543414885763232795670694656608624205504423760262957801508313566320052942258305196702318035207197439367974171342935124472756252541175533072153620688905935046598630441202337192151316000645446939068215275439392008475037237556751163142156013538905468411958504296452047508992360590954636764939690305170520412003765557322216275910166507326351622359194032708175532475084728456208029155373851001039705886017047237300811713924183472336240719704273602838671296396289224440939976853160207586325684232787109454327308553603382732420706584443078976586012020220950908885189093246024000232254068547200034787452356025539552866747113401297581723940676022707890701713181572860921269482468028723807440091592380979285224321274836577630681363072146724857816392447721178387988278550267492180165389272175403326110240349471733214776292741418408682356354314035477814646516918185361565516860344017669200754307817215020019193795851656679099096348782212322870977900066725634424132321047149490582963853260655942189171449963039579611244210830743987782470398387614215539246763862755675825721821013243040433122545351407370933007239078820989622020878392167441524757371826857297065327350801387113255070377727907857114458794572480729429384628957748664167053330408019309550632662918922328493675562230180200851214948366460263188314104001600163637765479528308126598302480004138209534468918460454377131446167275998339286784400859337752458964055878784274486732373562745286320674958114808285369635291099249802074168023090372035663695096701304122859550532349285222319355059434101369925749943710867808102648974126378069335779207677691455833082976069177346047237953681380555910492158948514415861037539188959373599032654020786217577858463684743153241060268690614286898305162264745522495614788074638901453804899654632610265767105256498024381059109185032415363322935772586535952270951737190512565533250022614719514474046571343426098037976585239322561869053719777051708719740957717390964347380096254477821640173644175293846827719396382034778477571364634481256035452910149447507778462618256576035907162168577505434576394157511098489159113924513908719385752953375616793590236859595083987141561087723827692762299059330836834163379327946788346542798752852581937148267101489622392890538633527786996006573467538384453100000899204555798087519530510924164554158628869989391855959395778408981412930738608341810424664305374163014797128096563333027022144278117805461179599601733559836746887066513359002288659321683252078610219291641574411544535341908156848499583241558510594244478194843777791884964187490673952743614168026992928506562941407692039588909729829638203696497602942136146094481186774282076254031881665526402879084446542336689383978566888368154073609955727221781199195281566478407241348744810587951057237043466869983949905336960360101460845017917092199893149480677965483149839045051483744569522788011868152317509126515253377467788367988945127038803968904058109456611647314078530613380821816304343661963721810598581888470020480843387806714139817318129390045519511689228844766700350532781160103236496190761209079961862780730597236763744899513978284242809268378713359752055831246786721733772451290061412746343626452062767813245985146867463243831432701550951959247533593286864863667208077474521594939127832996654238863328614175232702057706945504935252879327867252684737878706774374906089973519730619052637304138206526768013345467694750539977835376044262892407082661557635659033139807251679514001342924948530587161687218809697744603704753418170028254415541993637320649567008120899527250387669262872924066160011394941069440898587541128839562607883629268330823900880766403855570192007229442057906046668552981793949601153013866135741829294197821432666718075384592344546928407836122310866561007533214380181073597071273237594994382469487256790220982401480784357561985547559651738968235991182928498802577539103793585918386264286008366355081729071446430387557704652242113288646725420413046645738597459379540715589940253746138135061176172979362239705191650673821443517584967958771254461975469734579417364482396318243900320301610974541163794078367920749950290489474970564259098587911056727553834373327299462135970192863939049026335121569773957903329013670338456356050602262393216009444140794266225347220593063966948662262101275708694340186803960096030680735889824248912859953570420371968085524595903516166101310770386674398797490058931517543156431801285465825443565649730885254973180775722982797547478372534681665919788430885320938947404333558391726437827859968174088267806347425980073307249620940067242049771944796281607903465473071878559828951730076755734047751919722087669110401581682650607974341469577551486114209388876506159605467174823394284821593223624721483739422874496335122387699012932416383232916654644340751396606264075393201505896044545719647991325435081232557280938730314544181700634370841408672441992128420465520968273934885896341836879847738028722127190292769471563012095111351896819659491642725183482525836983251192217840894943815939972548217226911630450945982299006742350910601958115387976265686535809504184414429754992090693306290588588394930015778691484493316844848407707276694906203543196472519800322895496855459439006612552433219965299901507474009878829445351849203517325726245959550338260981947067866461615431896916044743902415021474722902731402661896312717478676281568759771608181589837567866433887624239915097991756496255022287646239812159271958926425580098521671106307800382240212226721543444008857722161496510290388600771300382057975734482673467642501353006076923664109230186532786862927059941052304304919453401462856572035782845260148872371222148477810477468421147437534502357610764404017220139514280434037239712233231285803967117398551524035520973210207461710695790715565310621082807323458059289636606792788102172878334866861791498861297753696827227069072010716523137324603699873395372712557978351595979889480279882312426053005442872691111191350344653611104186028866536232734152211992239401193466923378686298268912560692625906417327177631474199094803428804152530210998778517806324836151022002692703175683951723170571671258862299970772050569637778289470417798363963879425129336742692200982752759966209826790115746477378783666229370993015493383444344350541672983462749284761241375815375318629774504054085792400561715210699200544937905790176591883220020210336329333767075401012516937024895401535885177519002933175346538849978390371390780438939019489728944026077063945932968537595052677352886760513252040445628003263349466292336408143714210702709054413520511587667993751225416263277735858700734111450376778202912401263403342924739648093423890313021051380074618721484895359850606018653662773424700321545071744423240453594828068646390744783611228868689810943580616846676336042698860757755643619688541974663421117884296766402444967983658777688864898173068213555824862585515437004042828533326509678011898786878660062986397488648727530552954719410446671319272381739458539332258261040284468516904560379037426691923827030884475397576297494985710532264857843877871443293166488010201280921026702867809645750946102000307774280137287810098977338696575931443451685375840059795041561652981901107459233126819734263039538578319948501547619521478967043818285425785935691393024158357988106790664120518197950168584881750532578165865810131038214641292987924453147191985054957960415017337371676663505643553774570923750936870334131953755350623113400851358701070049016025165368272232524028711171216764281836035782455721074680963935449761788364512035409862250903548286396954567894478091079395482969615543262115877202907799776516263593181111711983899393197259063017759717932420086906421879562552625366282442343503406140553267711213203176222804329845173809503211636745204396194274000115297315919908802706464950524538093856689279086162964994497747099502897095624898755556547166660612282367391319915759968957951587386457324157454421411237440125638499539525783826806059950574026295449950093992946507176828206919733564676333908001047378738689816473142451628203260295997642129831747685543359976204606058344784473669860440092488270613145621583437339950641322456658772028836357161914220337185852231454815269395228333728053898083762576886914739160539863228307277153164538633035686500935570876115366393908515808308675935697622723234131378653255392575075771417904017999946205126712588378541814570266930696078731621446586046437985836881912075145232277673526723082865640272281917451169437389202643522641334517866271265390046844698246053625747479307900047846459404337725300539140473198529771220663861840648739313191772474369408015065366642614208879588952801917862578803605264185628179381456468855367848670174513564642042210906373001585788855447206271963055536605573824111305969618863388855945361143408156524031386058631969618402429004561743699462695639067958909512796412182001917355905452855998063744094682366198808197682916595382491929614917337133708895390210965409454931931834542157396724256924336299109628043677126795605424028533675640292751345676482670364510074693417632803576901308144464434795647072018968604520465104965075458735985373475917045756883291648276950497100934390118091276087323570763700500734860478490482847233943649889014110877123292596579865530150153601396813880830740848177084361423474095658225097199021912685371718626846464222728535651896039028751113843766384267061794914290027330384683807677233799864029741843936137570003777166440790039825718539782220377896199852857420186921636202356082499051283288217103004772441294337002253935343840333668547744514369284297016518161623073889245277922861380760837441398865020025445540354818630775326730678450828351566820666927273063006401236683296484247690338389482663864001544673760459871153519320918625103376537126016492945424213664108037392166384320030209916328274124770738710068000570740499485816820257296476229646390806793632791749369425023486718821796468292614665019450506886148367694189826117563855134671198269273279764325338897001525953306267094310277173431428992629182858088703344096330767317602036424855566116515628830794982065390803817205244326746697409010470502150728495574605535766612856370233052923816158046515371765084456122227290582552151317887059689833913691703293396288321868905729937644422651639451444928833813718294982572252736576697164022831925748277061645784556058453953379027103802633905909395748895845462516604736091674100564901961536035514280917889945721295213762769135482800020432057775522819913030824365431237452552217479166147968814490206487884884563867093306161272235771971977465893628806296887171497103481754360125383055590208022149277375755507729246253992288023077410100367786810086692919709817664829806346561274782059434987236650047653694922462169017288700347056480339591803763799550397597245032610477916385143972122900993878200688282020157844302755525986831139135012062820691008917168831550980121893501052759026428546849656111625150437937454999208768639626514196235684868815668192365306650221545079238698559163255894164472662023182671616978848027798181222121569834575989303564708525534868083301259088954198466952534420830769884343788210226562369852942849703055021541411543475734965073718178540041775389018168536245673260147943493983737134366034306571422780146423603475352451867467891083845356006881841281188548570269340895443717797002744958115910413049786660481571139277855287629572764548173090886730750826967725142925368555787735680892560727893322928199965017987581498608725688808202303950904892301592440460693443257219475554757938905514585816553800914811371929564365450481874298757948436134882808694117042945565299655707068489217813469447749065910186086752549898556720601119370884006769645992201724750411991821007974271627566030721695396605782976762146812768153091577271002871408526160421190785486291970783089606283941872045212675620772049159690351028831447654713736987669684485182555189813509851062711903804442375872394070442712298854576615685073455665508163241998114479377443155007181514423826268147561232581582490562821854069184030189600624177613357298616995545307845607846734934824348041749780375464915377497628862461740198766022807722358737418698562327193658928333253467911995414302479446128596773487805116254297766855997393247894749115310562584854730289149512519568911270507759845057942404059301837608751531686165980985563672914274620615725538131512589819754251955900743661956598848137589782984205195193376738593211550186906698389304192168138196605244944733863586535075735413346479592005612322593163235729547779352082398702068764210412036882312760355489151713352352368585114541447171137231045981580312021555624563542548704338429772338364853299527235730281575499363400064485146502327692591570535437920736546034329972495842587492251460187205071440516608019713788204466266027242669337613282270501350231952500640514365502269620935445239546464248102653299084583533532909701989336885072451959032205297017645483508944489563863850466287596896361796921102526354378106438355651684195013991316731425808151811338557779766916624947024622036751008236804421187472079176163495888388430794064464042252220209771711250506436934140736450098787231774136139355705004746254296214664053633601460187934441627158066036321514930267725515936281205187819064000357839947298457498881654548072239872113381688443779765866326437285893291316569578687705177248346286466042774811704708942784280921708230885344037199964861534469260341932409301425095491233187667363733753000112581553409481959223625256752509018061957922295358231422476836758139550665245413539172870164723047957010040176616628199975561587684844062700455548742148335604027070003497319806104776604628951484722190938628521278503006520562232740596861184236482243476435825213613748154138552180569708579803333636611591033909160823576154994451339370708957692279133910218067997097541270653200340837782196682331838106266333415924043740292098283453722263354739562590520974258301487554798104261385446279097196573832373647928343586326050919348044153100749081411852715575658264115935632555989115876688899218360456718324690260452954412575363471700092503930988204452620070273674500891867229032803278935436115995283405857299444344910313646016968266783676615557991176011219596751517936696828960713527850284420056414446695687875916862473003215397771642997853031074898572525574247552619788370499918343212449621228653026291509507085900432143163758491262862818721057439433559743532338718004625635241916736912092665434587801141728435026908185751205664757557650768878682946102427338419674681495079470177908264452913526942981979255101524114011450533130152059230478577399846520896049271884444703534998013607684145529293616203730599541623839891848345792964210871355557973196806131264697955471286732960808037501292060122924726850418077987825908337163290130325598007043203928619913077920880260376005787242669731292578460887380334071592045814562715346030269898779234635852529524933860910516399213796606194258529131528622015214727251729341489645397399825294338388240969230115262700645251359171818909334424521299453351187978764729871240693277035873241627521944476034560560708506268118611074961059142747395426529223429496074456916879213276785557907005543227439253270746884055943420454232949170304268825826823924799482128241033662806339753818631290468929622519185880554041879351078158120945018895599252580383981000064828243959864734065827622078159600400252184988330445563340395067740430847673065855724479762235219899368290994465746326354194398194496200022611908028299284230086461588739474056213117994519228071833350310058406543504079370269419359995839545662244190653105091604905035432519370407843070974589466088336422141734166202221232483682920131002626951228615824077368723118869189701726211970359127745593178364736581426919476328516492720671106627214711018996037437326053052879500504609306171578151658846973300499304169981133487523216559358642352216934790765750913013967711193430701046589157681034445828536917434237503886811799479731042015034073521687079617510937927559890761385707533318989988906013464040559580794800439599264520856639299779983421994982354056709949221709094605444784842996649817685011105161245574025044798258490053527206313690561166612583659077689313271618052723812159179705473969229307791837853695990777858768493938273640683952034954995082837235884903963082259313770985315185541099048318642791648269275629254006243096351002411750603004817613562524258948977066465592354471870081038388703407795448171023887236044297763499213381481453796799645798685110764052911758332699889568547980395724575171784816108542387864573530686601798742151824439754526893276460558248851944084448440956031413210204367789078636847600593543938966728228162698655584733129379958802666952180153222253313498502739296808983312056259673674385073925998705846020897289494167784396448118976171909661159594906901481306895143650351761252319221631282060051586116238514791986207581435594309200713483191634555364428363788545848582944942972680563093546205372732471656798493270538005848023345935355994526190903816484214684434519496224561537311096591868049319531772173221334245566473317896256759579439707333012870688331254768741521999862757275423835141893787287206281223549405170277971222922635363124166119306939242823077635042192329510210472326884957125283914524901430519183297205726149370458424657452574740346532866710381585299024562285278913252497934847896631623682830264872775994493317807749838287537889853616818410109337437694116183766865732162261685201130658418592181702292904674591455445778495939054244866565774909096551618923813909739233511635855679087773061439964236612275772365495400665905970885180634800119618964167305032730248541017070206802348222046193450388666700722495236750142393130662659391495305310958177014332983878860315639637126953246060872300897408988949436249190904594394689904027096208854969381396508387471193723280452997582271680031006852433924967797385034109479098300633343255046242885158478454003593719036976889809327265351590828188807742860220010342019443768421992556108539476070899736242995216283238499975751890463011775890359862025473072536418425225619862716493257072710985341260267911134322351502174741938261368367270926984019269533013011222201478169407101109102486547582961209871185836579118359524664927699076498341827682713844787869300101830606272678430786595969673465307497160114760454729403475823976544513182611254013713127636413370982446759600552949093047522442179980660541277590015434530041706048216000935875671124872588757231031525644507396551224722741344933965858808257175987732256753334093164782365574527738765590746388385774397154927711607756866991597745052288457498137327484353710647645550910243201109325128687893599876354201451016857564806460694706366588145862135972394904988989131178558005292284696083911154851621935975820227470250342878159303453114859549479900009585152829930119496126621391443388508063257376957284616533337011370937259940336195795278391386297892145706049537362568715286870270775397033106203347736683467471255943064970890995247615609630856006130920075923951528049855083055066981481179278912849418144562357309820467678231612474837869270360070880511757820704595159316721100706522779831304342216003508717140416015717304801523813605218531867826610177802025127358148119190662242092496130096447418262026094478550247867307578353804704596081244375247694099119408135993460074857012248786345701603874865860761207807638700617699024612919976569918498613671541368667436598070060030420292712494129460804766464272207792934596981285810452553341954899990029627434818680224735585148125603782148479012291678348542398597362530767311720123172044858049137051613614371360648143491011766231474528671763799130954506346149326121206055742267604791248124310774308046682088654937243217544675150741274918913391465733210862361921933256358660171820148034140019084583115574991529542316855804502048107804485830315084147090822151632302150911290507032974209593106805675466660095620064157000905047164873688556512459751087561934842272675014892703855520808512073313732653506407686927181467980711979747042486089773442982076506166423809418841670775615098644382029605350684385565176585257485878893557039015547500908589234099055800404774696852272342732460842847010842532541135065752265456642494098139332716903104913305817423365135855498537494351829255068073769789326228856642860335637256903378207644733975099723433679866951062149200134019090354307062288449343949165054423069179528032934536497801120158194764993414223535556959220133637017913939803656531100545392110974072429853254713546883878185250680218121840055401303099088736218719916879439659774202760206882264786403624969497309598595063264110521551763746571271342906140088937277689333861867154386003358435290167936019408305751021092258232055524250556459656398625566238844597596148669198735113043230611786715300571541254904648310138439936439171939973981670545923699598991985794946449531234645687250541006441884525229244932103763609623665309617636578876550582602644066542210567636821195341920778553415277292323179479219126582331403344923442178974822946383001110337023597270135105551371419719285975067380204389441651092158208533111741903664789836033864823909284709126015636362570518098595621727497172672970716147219845413245191517652747300695070777170346487241958110608901547226589842705004745300319218883135679829465338010801291269789310931064350360899492261788186662091232679226103707536477034793100328717357448867378178484458597637377491014847878602828855462400221368460725701642499221433093114505908429979281890552441843312832306902123417472172998053615940124473303654190980518417110222727741118753232440383777506811918748021880168913675732279505823697592145845691781546294880184693996591358631114948427341918305540297773356529887145463771088558731182223042097888894322768415663690677672929608526703809643621296606809172151417703917850543466407952324934439619369308803423137464456635765526289241512822998249672241883491261194682691198583544362707156811299100457888463493028415175531496083940513178981023214643276303349830215197813752885750250873858614995432107721269677537947105303304628061403544595633838570268891954770096357920420195321422469454238881444346261932569666987316305779512057673421741164647728709179845745853458398149887502657382196188476445858734861822105744113519799090992854201929342509831857455174236968193034396631107581646675239705354558643634822169533212948634902507968438801297253302804483301617162342134011563174806664424303130299952712302693716698325059867588671471068112295945584091782587717049410494228956284209645701327177424753239569168875717368059873794727771515957968637728517110137633786483346842670927078331172026699822062134963778808154339126489776638393390736136968227250690519648034557665393141314464619790231589546206103789518152454364878913388729040123304829076659170428488618524074333659694614204845723108487994191183762078079521808111195578790578840903610237184770252235488828820788912174959616108485532893958352939626274312407900862385657958198975948945380248852658407073617050686984864247053749360250874466046920673889408927816443524332862146449489816519448286333916355156085528065808129039731396374717751851964562631464263659581313907176367275547166870858706783763000482085090918251272004711945028278659195595657096992207698982287590957748075788741842182503101328681208530076292642616782824616693664508435043436657390233389388582863412307492264773325591120209638838567333627427380511216134190764796706593203122290297706347627625831353877937967129959634283183655678624882599444720373348717266185634250288178666333767367901001539532466855744045682778149377130967599293629184435065206345640082272637531744279678564280629300152758382964971163846351267503213810064164594679717010628916061769274374721541174785612864979214119735189940190941873114518285729699842370571134287342420337966538927182807933749890203858858471507920259804419048740908053464335797424214632467830810164628771269084858598595585263218339356916228795684469408358426537412742159112577754391536946809334740413516211617209877134875239606294243655638539133204237452135738519120823210163146126776490295081990638154255933884461414048820832855394631803457645118867952527360687678861970955588459632999619737031911098680893412945914769283949723368722598873613183624296947461242825946880554106254950072103037606176168969163174253898534907300843082785550056490420061080351324687180703479692767519395259998461256734549272435545805704853838116190347201319390094936103440252908449323723115509190608671253012730472376049494404430403300346073414783174297267643578882447539651198182915890804928016154283187453963523891231161477940850439102700431005128115934632706007925364020559797745735553472902381822543208677192422589369512610003082876101485382189094942633255176497015676093458522033569668729820988320673177300310597369543706587116441614359499623489390183298996339507083971125585991709924976946767143821513427180612486978966733383976581176557829870554082489873258136291436189639100009851221542208145261958037360363086604694980294821096675269829582216841146045592850997298386817136347351522405076527317736153107644770524547032100783938554075872094011829906365910055911930822559519589032664176266214986972054615761530421068600725344428187564785322289687830271047517926936361993952152332507091874753739510846905249641083933604259807988514568843170649663005924274493606207498621764089228324756787554688703246438796318902610933606401733579113037988490006309469581564592072534652503445684158694110303107099251579123905356685257371146798216412306214887016140045992854536566663165399796514666337519825211652271167402390751295863911851816834491057472719469411121020005547663558924167349678290545415365588146788772521148822385143943299203671023759939028587210561529791774733491895853594245259295761665837104290926875450814811590284664160570225037301438051738541987305559430233331519131341025848018257356980103325729882944159885239011254864445555890025659167483386882109919194912729644230281093769051696652123620051728498319779499463630441335605295490695148670670562876003074577566285759877206637416774404645947495098650683675812360940288123458217307756631117575209585156689850614222792067815035803265410040443696716582549636699055172843544390290715998476901287303037354877376466808457032924116205322774059837711636935760120908194762004175943396036071876763139979621553951074951021952192535071328776379937710893306024474741246881026374900301842496917277495483980346673003767295463211755627713444126087527869458685948706091814886032015940917983306070358964040293529896003126584938743031473693117630734373620679681104936411681689845746251701360631164968929278782031663877552637604978349057161359290663155645429219767848164053200017805815324104933627368344775974646893033823284438867666558705215601954600232428067707631700714120386881008562762421414842289231883812643119017521167541223271780671923954867478778859887992616067712153928712455512945745106197579526183435548552716498736919043837979401724997228966300869426970309217792990075410664263211149412534373168483345185915700702293681447402392141724689139568410246058319612601125439696808565758961457909210053461065521979273506375715091753245343408045932130896815824387803534616229470651883805521627500161673798798465638739256021035520596921989271548866272730318501794762380933967315108666095918180532737953044410189700461420930173814264189865748198756999842945080352894666203181232289790454997542361191043775257748329748150721248718035264615542805593103720273086979747812060039905951855152588072638079007574564450405917280770795429735534731242302853823991256369681112156570143767799978665862590503666398415842528283365829303938200784143928368415145625013897936426035488420994453543995594834356352346322884117333948141392808354753380925230851777215777922023437385674691579943800036162212231963179475149398529935884414367334938232285021847652515515675449339264250621222308040624126799438385044280583514471693113618130518217226535799268427116787717340333180211974698590693705738806277598765112963584537626279854732553030146031238923703727810127913062820159343916634666750942798331676655991916035777655860444896388155630651801688428433524156757267976907288164598260792101053446192782393534665185690529739585616067256304876900043126343302467904320261256554937580713637920076455750033718129133274732153337055536703133076756686516971963811380300461949989818381106343071466497315028035183598583728297242104582781499068984126418149196924355929903385333912902878244225009446935220326831245753081154456071220803282100154192325216453034150873372103818889251564309112040411146706262700776770052699284430731977669341783166947401712625242425281000086431824440746872882850261840849323759765992844192753041249652236424265128226437598198546419457438530701422458745925690988896454007858892515349058720549998996528201621732311807569874513976666823482129091318475479155291433024436603059520629583687476552319313610935046651252318419619929038695729899059764442585078835504434868896006903876418774405424645215459393892069988967379180792540944982574806407673818402204133852816619215407207268444368420738341921109094414477265629910373728072897148806222473814818893409621576715408636547528669397571993355097814297006819418861484281562130600788266097510514238283446982103047429921256416697381912798655440498664202053896759239634404950096325684277605984699439719890928405493860107212513385089671096882139175373342529193042566650254723914818105117215382828039312037500666401547085226505787686987571419162493499141653310102655878631809736096653380973599127970007693941240990651380207584209512834440709896305079803058355776193332156714706441957183976129349945291181121563971300286282333530865825720598599124622432842902311637627549467208534895471252711450802272892257428833047440724595154558013193642393152575946836674023840578876084393901361990083330426384578461776708206930462950999867499721365298221641720113843899018047543502255526188221833823493061273181603538348522267384386007034780571050736078076372273900738957323323830023911105009781034763261696656699744283212878440741169359518517991389411334320369689591681169736288095929092456593752687163957159203605702237208764149158499583729007165881896188332078154435358804158278755602559199193028298050373770532338598131620733675667021660613340182106355585781893313705010615862130487837882170641469868366060769597697336861856203559932677895887229505608456101003772518895303495881953902732309724110960200950609947499921831896445947839962442884142696457337077687480222275885874226448917991296350666759857762647788249730403458156074132744950199509404045062352265681493692377753703957432518497130325362701685805274418074702304520791594342489172652436607920766862108961366066794839763788290442320609450215300301451226176510026830072125344297803014043999245924468758153137092165980177363946735422918446949983497183951333799409301817201971669068988632228759574739159395053968505546558590988931103571501094193114648877587140671457810101627489582991075270818071488153322771701175341290198156837563739912529860025082946314195304363538852046249678752378802779135023093137260834165368472360182202848231902821608486687775747490855623431014700210254817612107673877588788201465554805880280106192753893195350938918144721770938210010699775271302088627632835385826193762003603354160340471932191530794363142443974078499373386849130153371021837684470015165763727067526022235910201881385354017827683306554854972806964736773025266940053438369354673958391805007924640044187526826090070508750725887535457656253898833836744681031717432129742312955608724120159106496706508618237436896222832947603023196875485901028505302116819772612316821789586280010472585567096798907653934405351902998854720949449609922995246539996221629391624449748443468865313299292123643268122731691721371755039717920757880395245106856724549086346216316013050328367703982646879920252885136228767978837375220759808706077759083291236255277725786164930023838956972739792179712276876060764806562592575924712761440005417242841490729363470891154124795007765522395224637690424316931075040963497568577896489488949515418600736789438012308202434105119860474336232432493105031839926372717080525645169777892298537926684128862495998335504512735823686439837088449627317144480327575631420417429903275606277742784062129841093519607300324089087250205019941532027839615533787742976480575386400076742032772116111510584393997308097700762161416681595335620388762921690758346466934062003796047264440362088909967025362811202084166097900992789276634856062595016109266345937080223178343486684831615593976665916941164687281569449215941916604566273129456972002405399917776512623512496448746656501062725986677402622891531031451581481707477423375916771749654463799971470119007614214313173297514077226839529364881777672435721309412430820643859221259028207742940291826957910091277138684482685602699814408976945733820076488587037242114196891676262488944238939900745524532059213339598397416367054011758961344326310632494456023803786242203158485699912915860095481749111016597811040666522704139509578280215225499612746355756643500332098374989554030928543929819226792249535137759231761882690163906305215749841688279214334217428597132639803116797520011923024879186615734874449333465439583695407347381789355637078823335507472534742696761742825061135619744302008755237289306618410271499408564386119113713237415552196116994493668617864173124604682614103991533117843704793923649776086114737179512724612720768960530455311302496498056579939548275494470583336603298605224129665482983572288020904227657068760413972130916889634726606415735679760441846419510546020480343818525273045943378684609074685883917228704827313706577844726426159118633026146977667942592766141393451511658240932332377999477644758473076360310370954001016596491293089709425709065349434862360737715609828050459467172509737178003424369425046846631051609687822648790107246776568775144634686858873595416613087523131848170672365570643873294957067295415328403874911981494571604632419943009635908751628072086326209209261787157855469426250663291219439637455423905631922083516398958336831565811849192119975485358838281261476321299580250236878392023307123850701235632478628260048868858187136169970244494037585152700453801953947645917857941000147943792252656033084023315998468422627812909467076496901269840129340307379062171286680252359509594629240897492219382807960183905213560960765219362434335970923806365272052143272457808486665794551770042067268184163669702105972843099823955161441699436356841034045038406732621517284637998076191834348460814357813396772701518253765957934856916664497613433181988762289330113450639363993299615583683752348472646779233049619751300997781566128610848691306487091127727704479100181561893155068986449022051257646615984075014365090333809455428450153459761406416518379361950584953018000833954826838018818950444642714262680800224307944128841959029994989833969825055852188784199697288696669147067125517158547070706073533108146180919046517355454470753906931798938963967413013107358953366651121409877271921241425294541431152612818242523638149539421041071473185328844516281721600244879463911427431416995203865811678047057104642177402367447779270790027449554477097901205624420530507236746679811534086079027689923811361478997503278226138888110344168209264857719628521178751411389057550081305624089301009247596518145172379707480176758951451514652250581507047380967512314789272499912351392427904230588499011409783136676814513768249544870324039242549615365477347543637392230324583269865332580692251299130011561443524824754080548339660554476986245776009223903095760639798269817164451732239087610966320648471358490714584954462287118295683306609104968229123594594343688772147439327232312900251583123799762066553713867932300702013482261676571592063889813479259810333237182878660138706487373997120208120080411205297168059600988153456403304922695820915933467450105331727115340005437394417327087498626899320945235808035584119414242005511932777046766316692401430444716246728678840597184151499215163924661948607574936001885802711274717813629692869597743573134131327642000597237134291074925777745286631431696419285796440959861748193606019832616281370476100923862981287535735048437443446188579052549862153651069362289511374858096146376357825811195130557755067766206284896377144509601276036106632169278853523921422161887316375748489495859151689790034728233498491496042376225681987750246593489808298834241069295981791882299292017218431261644595557568083031399169108725792450166380468600612159454605808986959098161801138095454573956252264124264022060914123441826270922885853885505203198703429747590074428408193566186986866041483552953683615174762619498080481387458038824727339473042342180682056244140288645200491305175104106894811140312496569087781699235836269640587762250736792527831761179940501091829117916197106358211024562053195473425590720952318116542069320855161531722573950468865807384574708731768532678143140718997059895604442030171864346680583494768013226872873396006372174581176882572738116490407036580318353912722898629734182737337488876135845027076854618397414044347100577605863021988907860165470943481042522491627241434261995921521934430942663915539202967347708087641134517122396970400883689536213770695384997340543163383647467316104753594048033802472516465069643681055043633764439369866381814062668043100394852168650630733146193545411796722489150670898475182650724803637437362593596926268140825205714563995494711699751511564191110409376484537468714404408404561739048033311583632404343083376339108730022099110117654769096157152603404858541779339134230961062657439836837946744119638917596367558244425891360991524475194512534086586074352468964847113798411157393014657489337469505889503734156776606725381888898047478188228868206095080784806300486497885537982498239055843265534433500253832376753967610320326424982273698638380467348089915728098054780649477973975787131051066361987435047460996120978516146436951956043084816791138986206875485392202767165412522376323248014532817282791793283925109423557200083902643557055022957840151877441447861049303389520014222419056791085774586640215177157497882334966949872598300689019728243234403462082344338574640879866136011825574783524936300435223843006214426464828027463010394846693943619558087135345880994564655861374367974458130693257984141357811464674972266327646552068709789272249097633397567447435830999421664623313831220895603373105036566804301501253818854490524234621724974214014237146634629772951973527281128464359803102486024836634477052376681287450138478394678893252904413690638960189111150446405757753896511492678974854868305184931281837218533560465802234176477928428159415134276296905830152002192868401779562085533491293019181876542499099466079478412293209461099495832527984049783621128731919323440151461231392795612942686888606432369608720406755676094789215468321738957180889068968796647114200381504672398457744920358986545071836029930042092055809244635213438362362664110869921006743295070563425786445935102461309517268832005861077212062931170380523504832541263382918622090984144405031907816981470064555771921278811632123419957098654121387689254222422367750596124769348704067113441520248396385089674401510385969150469088217153054015267329604700196254368071570671681542664080950236998159243319404794435417732761214480999505114064018518531221739941075865800109398941790879788821946244063193552512080145586472054040495204545934327179408348998304698355517911042778313001699312714177973889151614783813355153201415666056074266871185086620854459399325288936565184626048522418431844406032825293689905417562035418317494076975937765017346754271179689737801449770426986420375026006410805404411218786135543805049773783476691705929873744490829325197847041970872055995455589056310972262242984068829508721865479667490017773825805038224121125019930987674946153556634032682077073661181309455286528832736542881805788783291280424721074064668896334645651833582493942680432275734167789106089697771223295657233678507943748446008799572643537595438304099342839924668125013383449359189730837340885569134165809971037881363171693483628596677317689625934620528903607183396393655540869500341613492905262993677705002098785322065524371012480758317753009029414097751514192300323711349422772069198846059968538772422030296240880230521505435251588722702855108699583038106523925706060297021714285800486233164627807920637720030569716043561043079502430262448057653824016385160133657536860998698874633481657218590753965967139574954934012529060947157851709316570684966802847745096656193670575764082855216688783333639775672193385088684176123632317747626718638653162500222125340791879615926316440322620923241218629229652988909658933222715747014533352927669786183159301857511894734252127303649569642637919120979894479619049494140572847294633341199206686764598058367453604024189874310459788233299856706957901944850042530525536466769821279779812840467286912551264325675618011654885518890358584151877421648003062583347957555029503916522567802503109259503907137054474158397702692307631323137100731435697728957113975238090111100523899821265280274960801591129434506798949118273014755511299707101170233795850964592378461627004940018566066796239992690623264675939174403607715946981198852151563360916630778146184775562597815994050886411496371839925867641790617884813735695594080763821767770128596143681997671845388841235659245064174195651035018850659304974814138685503051281283496860360053950109641531239130246550989525658509738699596525704821036776672989538776703998311725106572355421617392310912585870146100768130985649070968169911911360074144051065065204631552106116987132624328665451396075453953808697226105174194182430407657616754464113508340891157661580077172265773315489176769441264387283651715498499068274605172301617018795044676520199612560234822691475350336408710735629650383338054722625188058665739334332232742600726583578135925874075223394284522511123294408583440534223949088716017831642146383130210978149947369888555055302122170159349398184875876075534318459061921690394319558137246955375323463286390283801411033331175444278204637392558180099935196993885436203405399380102973504729412158477643037369357412436507938393724181428575094520554816686699357840431797979972377130818121478646177823687578310493191945996863297144464892428045649924972198914041226760821069877170090664391665668514564680160527178848815429136900310358094165459596905040603489399596067986994645458711436655901476949975748164384779824955584344001270235646841461164772554460362068062010977181692034228739105213128507317754121704089654999095780749034817576652784183199132075574790973806886741742483963096290249996164161410396458443648618351644983110370996851780704160067886339509502104978004963243537582063365665231215281349890458971824634950527559442226868501937487951918998803921902999206630856672602749844868956187579708896411869126079272268126018743421812895199035259787103399196070565114844325131286290465673731340321769355452705988873424809019597787712794822171207885498017557924414437965543718068208809426905848915152611224314044347139069269959751125790438123750231498794419859592040100272588117946137414702459981261189675525734023939229104900602705887301850711969102705251493353646340004813933736318319484002275724259266017046978484259952253301859242011035920641458749526211276672314103277594605419428820480427491382722410186238004673082545067829590417257363322937308563735495053050722825371920990543806254755722763306582464842654185982053826219941090793789502865658864447514512397619114777933675910761337411611253270470628637028697062952610511215778746544253935299192220658108004283523476498958286106254611165788986081829376838042509808994405497281197231428307966601615995597903405415293010344431551611317073482968696452030161726420168370707655497140500140559977085465183398005069155357569710565621482594272690751275203593401884079516749107252659287199315071572372257667257485132221967946482768856193340493060606317715877290951061199939983099686515444864270543300044869308587441254724328337443355617559256673670760607873538354064328919415529488729828053796751039674506337315322435946432697196474037538430530476568514188211321299363777039433138125804318196978798192345534021207077267148919275255792763575911951461481813114187041081894599468852516177838688456581373357552373446826135553353692822569688769057153461908031864892772276451037685433452708982045917529797454058671561324373926845964609659409637141325505838503342930337182585586939849176349639139926886677591173605274980713561973872390250773120719125041354918441771994773961364794851590943392262310258012323220448594132994160628883436620914496410494399287010261121316424788645689705532322866301100588435775706481346941590880032896831459452322528130174159295502636133136429512847299623534031579941529810523962757255336313607205794253756755476765819615677274437295674811135757581092246889054441412226798028378441406630389997882800075192453676361586676604953381360442290907228463648334982649782707087310019577462395365390466544088035096874837379986974278706066414021522466664475619589339120063603182742878168461639226628551842352205895731851445293746002844265728191996399648936158396279592764672499675672488165816113764099633771665443973816547422486482625577158390202816160823614782160554905884301660332862891498297850301466720090632199507324421589610197492683839442892515390584508098982256588646195341380916757939259521591557555100194127185270359112844726658420189255476001617640027610738943696237297000580345622914676707608774975553850711157016499682684961370611695908570229494873362910328429188247481945022414384781753369812020328652139885729597695782802580098701327620563206177337088444308265630056264458242163586356954453197815778318861732869692349448910890767611611397828318740046376839162217396367957019376629835123402557979620214854748535627374482047354522796722912544109241731413153815501662220873306903022681794746385879791414146716322129251717422091135613971472217906096850867084195846588485633652192870937412667889032209898008138987821145267899910329494871288102259218440611806584128100681988367732538541524847656121907962391719759199929199514994322902320216960297716198198170041027926253982359983752327052539657329665930136830500419062476501367845646496258121070877633443754174496218556042337288745381144860714074960318307716090949572020553648745185955669693256656700097953956582503552636043480255746783569267387564383254074702341283207952244410198088439474597820562504037520481581905499141647367291583283592410462781325507569674837863083554588668603883951844032843921960439052853961724462284275445231179873791144550851007698217747427897589576537125296724603975417443168795389157785202622572729213776089453617637161005270049334714323986474944023254907966799156176104310264766157050694309023603241186879045427610257391229516887169153929678749604449349217978198120718216895372182872398304222741893494454498398650226945677670191587030025885333733000137159053178980484411233457137281131989955408969110883914507979988216927964934908435083270373780427729322515263691658986020466398838128942822431912009863129213579628304663791552591557883117286988371563914277249674756972849200419238601228924670362541550524822235993702322926808086446386200181341213474658811368592503696086691166540106821093828663390444888994077680866738792844641660371552355289159358001821524996708321346324277354741138487362133521757625533085483907442952402836823080749009973901789235674803336617568782164945040996689443644610332178108883947185964865888686177669041125213329646086072565817937861408101730658355057233410548656591568854983733943073718380760928854370247001445409665920256729216775158919625359219738083105369589431166435103012118174215426418045463955722020244282153089487233068878826879883298334058995546038669769964020023253465234268831521484340269042105009361942620327567473220103860418409380857033785728702308215936002813967273839852721941924778522253385290159734439335530253583886930103234214980102001278902017698854635758887311732673877154992071318978325203487916292877454213189605880274590535006417943268966140769629221307875270994044906591676023961240935634234153770951778974642025297047975374533879412485748134815664635667652518412027483457841730042348065004491331064822787060833451868959585113307380984012958257257875587702508160348796688685041934367895183728453811480574521181364776492872757215082499456150992403497592794484621260413333661972747862566300710768849614419458630411736446979964345934726020134571835834051009631514726766116217831989766890231889840174065431048407089861726592658207549704909727713114235091117729661506681043740367060996116720753588902313516170087409989169016533539702118993316244279929731805217799436542760133358158987099085154245663620772903914215226647667857948684227704319991877556227716679576037465941305660160833684796785967535387903303000818109632793565441635329612426786680086910849402574884387483018943873326055988207883117521077652391515458499631291089923939808580864059527505195005753300782986976430360552395898995242992829391368407445191411703250917571886501446953673801395628295615319898001660723387616043709961884442715777243231195864767254570596447519531410919891157516974826911563891074077000379247886444171682192382361095842872796514264345728669447522731837417132770372590538005699392821721264085275587201925718815179120128642280560730877433076861604140898949554500279150944164708531811481147724605018049483275450453409053378638733595737508920323405007315552582304861796494912924280280021940763707095451730882985185877103263830810829132963091060642605033974456081124437206646930367109389046649550670922476510589802734665202442054928471000401363685797446813940593643676601624131890882773744978232066683011431943193848905750277945399950561765361488346464570787107364587946128333415884786074379347193712985947531383393144631832317662430783237794945836681042821752802327775910175060390149311428786915385860912471726064894542560210260838029618310438147720263849460305061908649494014669997020675330507210830571783494609697727300083700787321669333644112086143780558319346500775208239570857480686399399723608210247011379853433274379451124698710649960490731105325793504058065369199175221048012431591621790060765206948754223360897682791239001188438863850402343854695221399274081944697586457915291167810344936715656267381944319257655849206607547759148367593251435392377308946281912228829646068671652860716983688425781628749141682090174769818570994137347114305890501685404689333229405251696512599808097632505882293551991591698247276274661192760984758257085507811822208039401014245433593931457334203148832461779520189155869505703250722374158684525219954316059644756220213112257073108818295170002777849712733306959822324299998860824761890173545316486405164312325641283663922162667437320205795693832139655750272209742418326729293453289295130557997342376528074135833183509048879047863195420877706890998509799579645254110088789967612250423337997947652095652380422165307372926477320713715471324311900345319792829896284177518377552874290806002468707255097947166675854723688477485881205409241926887090920340783104447866944707943849013487816043474278659084600175240274952940653164977879748856379363598926150246740878989533166325560852133535480055898686564382429719834456933070084595046087647239177348149067736222413695645628380330657648995273534021753266321541295474104351756780249066356301679976941713584350966394685149704381912897461809710726045940487283243123859444912891484779499936520399542490281067811169553455414420931862433433589214052778689352564713170381739093515891317001632579580739619686806338876498918677772567545610609058852880397921370159566260132197190983597389188515041814547671415883980075517979269946940544230935028279741054074892694262347936961624036186223230754361380196463954691591025551428333889764974010617327179387307506333190507199390095769253945076037222980556343521748192715146355397989719064535756734538419217586702416485092674144614514401912851313353354331329641325001700063405365622656710972508767029896347334085074312975342197937346747508412778142405834848378915674974427175058516425549247683810347416801889857537317230618487398035282829492363287712984332977618849846245857482725101324830358839889137255848759025302899622371048569443114598912276664520838804275509789879751442166473775913887071547746223807582964653707701213654374131190638943469151189694900248013059923794853312603643517523094836163967030978272104396691892579398035703079462104316216372437923496567201047683979329227269692973926089057926379760932838115351801669226083422536727775258557810538025781334318257688797405754758206667220814128422933055808988296226394869786839039603661024994917869194080986720347801603391520614368316772751935881206960737792731945347432074509863830225753263695827258031277120106619395243604646344424779235609921823416824220607363490985087843103279035338574662288134439372362790928101606730434481145739304490760546217928780464655191613080429232971396225581359769938705993047668272333868062129142435350873549860424802494022767182200170633952532518995451290055641223809287263888934935904644345395538999381230855891280008852788865133025482027988448371872616067895415366908267233712188080465613636988461515194234905678473681103542106328001385015686551693230666088899666974231665974668138874288465847109296090736086681562382804707755782096773785671928471826174724785369976893589653721491437565971661496257162604777136311659238422837578592459079101798039019017263822142283041770021614808837566535640292099731668490906554157576424722448004428634159154193675516418433843214272962501430445301679130830524390556702689101321529856772993788588105954171633750816783324153705233927845886675100444249994655526410101191874854237942591437279664196233603568543172316715271413843974214596073327630185194843452635046014202866891948049093521508382005163872317335215876092008381167271087656070324068145106984904869224855111181341025347009520603260277201727442430344171644131627214493170617993721462497980269143950153258959438841326328652555565487824374582857372314222337686885661955943175090319332328468225665365383253570037072972739584948581402602486147077576490657691691781868738388433629641671128009208797629792540158165338443417730984876820254377091445963717248290294932030293535054997640677611558527414882801180844477001139950744937380241271379853901159895854930660893944035441694706099235876218396922984830863817117627111559052126361154455184859913940710062256694150092377820964815006991692084533395587718793820329847192574897450589612624530261618077669332067602897309212597371515547375535597849879073390884080882041937091342673362459342512750648773322043452592057303368622746701676804288601316728560640768942476050410526125068474494194391580417205489641106529548891143858700903092059294073593259464365949124891611066702912631706315533836170753914885752770674242355738050270310241745274173607403203305761878216844190159320782065164079041356331039496156516027593328475300437449891869316536726299762150606167473131873038232438039317649113722161872487487158170707169051151381400765170759947966772766664617312846328447088802434999487952844907890770631952457419472809482470369046763710788161906533115047333584663053517450717788075091309667209665224989807268000981312287847719343187697862370881407296865842788468700335244569778117848542481667497084058183809014438398974632663243310472832080319270166106704193840562462978679933076704523737419759544310340007768510003010085836416101230531295882857444533297002058874740950429548141779817627542964651104679388236842359256599702350604357837940613228714340965804920511738735655500947740515084019122938965874453502289326152987177754843001099936965285795412990467706575488632651639102919168815354013929345455797730270384187070725067769249570252994872795596321582542739102960500272100159318663881355094300132767389505127364871692206286038710064849901481546486657589721030998717812275726804316356981151478858024503301863938868334425145496632808644687142253756688464470644196005914517354266975971128409242204911504304197977448814427925400725884441269789289506777329900367788023220048253921720949296245866005750146639289069326922529619556882458656316316297404975697697955260173647710329370742403867218014858894725570791218108025318985942345973162816144568113584570557151395349747818331009446886875018465007109430422641921012920563020462357905133852563661336578467086489019177096278641268162900631630483622959866149513574161182455002882997506912874425341118360754819118403357608343412316532113938840325207278843433925409464708973811681419063391652196126057681702061991342812116061522855541371669387566713982543927872458377189069204967254278939137213470955174213222407487158874069331197377761345511708522396222041791192606423765722236549222191730131608573577170958440558852299333344606843601687922091702252765046107956904489183017230610577158599533271997432871545849772571628791707049766948765526778942557355495677770096652292771883355345377118456642950765614699515144043021585024733425883540452186802610787028540783204548593684470560767361669413173904863778582003872129204581876445332653762970528464649762580465271630280774462991841357946325294921038082377023798213157325703605932017384832147005429721253738316023472420649552247655689425505020549540931496730011564104192656898680837297009767531065489149760836169273042818311523237135000414243852742464134781961554584274265413389933738832084110218044834332122746343180707174675269052864176745116572593093046808590244012799248568749440921888973520841030348023670180382815855659190669502086419404289795512920582811634599033399502132416089474439865493336262074663201334056278783487955752627513464316895563241541150889464460307167236141721659469776167565364389822036039551572831085408452891326787826038641225271426463255014299547204991405330121471301989855719916731443850652555177530909573909592547150822879729136819505312686301521511583773733968051468200265833742129747764184388306153062715059632511089699414537538381961893208662009114060421078133736691639160197297356108202860027961037792752399116928100823655213694317681839720444984073082942372690208385267368304488296869573832838240771668921923265371734488858861493318369840590376866257540750347328549732650920222084780939029657130225773590203665584526092919407339680391460907242348889351098861594335159930694213511467011530368866660744856957560510553872874497107498093013454028992247416887623791996973774807492148990186616384380201458612308390685899207160769420909107724197385584418562062181395420036213304711788831188373760544792379510888469515789971263680212074494378749128652822663437020050442278555130721102029059991556339514504155757357976640129218873367688243138350043503010506159221651454145481862082000890295415284195379360486250128844656581848179803175367014952652094260266333887437075013998280734815636826933395554787061768675498556086464065376233987267197069107456848293748899149325728330784235742213428973554541640151323425733253448637430187797062762485283862268583076422253165760601412918414862023496739693562190933784201062070585861059820513052404086944399037291781278987914394129426837380204601440502859762091673378371424313861543461626916813157140912248001125218258430957586047366869367071507953381146336614759635029824523689336950468335106415410911435306502674717382746171773926130468145589517813453432591729697749615787786527558609958946688844923578531730950525331977179140204611587466379351033333687959540202047562964793458762242934848653131699934083519886951635792853772866699490150715499306732063154173543114006221070950594138436627255783019858388700792098586549880201937150637035084485052002813358848456857030444244337703633749824871043318503620041314221117397104951943494798315405378728505037763754398930476899258446215029212628990934603567008559524269466357537203315997756032849076434967022091178906879250670621817037661685498351603039194931769232270592498580434931676989315736961944210416730979962093324057392962767055442113115738673807121561072426231717207299119206989632863646028185060249182318130793452598016024396665455338156549700959040882278663722331690674805270143836516364811895518265773628544272061424681267246716127168230793616222330994702298492656215963008886323023233423279514016435083847044616173615833964982192627224683822830915734650024514749733901632368154721748808258363027570049618193786661873764567783599366741200194812603476771103739282385977607951234710866508443424416095577477500375705028793738309682701141265700554112864113295269068969914152644768133369861168780646148162460101082486129234210858321856867800624681249752926032894576566076015910412704905663915398811282858519539269925065777089894385626228128144248910769273157676988343604096550513807847314553688128770715481785706634967019838864758995791556450830493139832943689505619044382632341686506171966562835276970413592343139995171145862658308885237055497700071417815180130440749886353597229937718139253290056863859821491030381249648917379499730434625931227488479613623051991478446750051678437853080628593300456880646094652774204239994894802132607119166711138301303348027001746262649855808215076791512859910021747748127775543371485140812915154366737446774603869457737058041446243563744005816224239069183798207523789193607959644019831245976522185055863439075368739391177149485250660741494964822109697046689524041833762587511303206196593711736907016225915321024480390344608875256578713292458615931191624063777926237406438578991073509888439588006779185639781345443082591241441960426106498589973158599597563871619687912835117001348573601801403408072111395221076110552723515762711482770065815715388955152558840069797850756488232877617101807793994287296831943261668079006221270165280980755572434571246758119272932450341739789533182295387716947490443459118426764652042144767857692498981446887667030039830747192590273799863006225236013818236259759827118214007002940081611856943200311058508775723177367183699990244012030388210953123215436156385453031221713441125901906430541345511749914422453732193211232646344108867518248510358540712156746158166961234765173959385983685236870504934656218516332932179187119910059908570471941206757678538351976894510533502463022846736790607121379121747216390086740352609547125288357476788889749169711195160268246080989049330453008614045283225435804074026917871576061923950295045390126507600124016053044534505545748785493011394578439195538672964343726720918544077451614867783296312094210754154524308657679052474956627308121200609821565132471002949700394956159139979097514404411738259871992910336444049973209723715027257481859064546053095429704372835077917788111519325131788100543952174622608996005478935780138651957432783118026415072525365535032312750597623611311483932934120528944470477501827562190317683139430060764928929001415486534389474959021023470126902533447241264358450820639300522336450830742758150296524282444623934755252023055440292239886292479106220540573225235300127626173784801551352923899943488189222346357486741373844934998960936421953479360691385453628381506421695696132440083185997409879176176662066219171925254367759368782727736701903033363704084381042212956095034363812652416321131652410336647534975112019816142261244067204761556993868798136299998882763280479682915859181752863755022470923550028342473490698910141355228284671342233887133003412713704103434571030407910091191969819535900276161039873694359707372259592778719549155786842155320877048996499448505448511883368277997194636466180439614370008106499549987512929634494947871892007389582785963258895320739020377555063399338443746585409437375055272877584770155885233163263210975386264480215612297402985973226445730331380338210354904660255367464237927241114846293479450382077157817727763702697812484641667667742655645857708982435150875477009442318115073469824876727610626090486346493404936942467657025366226177696992395908690026108398545892732068584047026184437613418737756024334538123798199632377126915511204862435054867693989683479666458471570464894307655025877897910022701325930434642318504513993654596506406010273058642315766587441212765307051540409872899059598950133651852659194569021494923165140181233237078897461480233535035009788053265150244340595171464812326702898106573421412388232712002018162949583702707132489481157291556626139159930983091992273195455623196872898258368675399937602065966762263080792606812333799943726993025476263225224305988957015497509164054612748436066799422203820342858667878957885212154721826813959192806177937051467278331858256355275384632965768198692677425667104644367505509691479639983009137523176205351070902378161374838361427909896552128213911824299960708967309848209888335983955882569933479514105468118992267033548658666046466143073956661920256669757509940859664281085447568753442873465022574048288280293370681338107260288404791592090901405754190497335245097516012109711895391655185492588696246315552789628985716105190429349876635623481115330956652079227583208128415231486327961552107397752674843190309010742412131336649859849346840340217807139650987239958495932635292680461195052445755921875680471316235066392906795598682975265602827881707577217063335283558188726795308437130770012046917350738464175437915993182318546590660168671024843719703927763226431636007850927782821184517355023875074379052210450638006567760828906307732066337389115765514772750747825618427496957998995770826260048038342090557851130710090683567682913907981279738788657065836107553774273009499692781364306336973972886378476847418198852272847350297410279027685467608376456298761960682002109421015677253795323785255566022104355289144880173450911031402892535563475757081726547410273184500183772984894709895513110913242250733811557979753905972747396513609208583535069689846067117953136230586346322885126288283890422554757162065377907253093064173844929633211703938311753241433862436602374317039101834322670360540845176793549969012462667850313106063221211451352912450647380661844866007505411702314119282063282705702403494719613244309744819264149627702502205511123770100856573549210472734307678253722610995221362038407260025300104871946243566848705401267243873762864411317184258834981037271760049149213563424610704361906970607811359377985016581872942958002913846254701161003468927690295486572314327991950404856931532482613800596795574173039385271437223185420938775309802543861787288338431466669264422058044386505631560009493411890142689917459956105328249008463393984019282856984429197767281444567391809676955064526568536939153473091383767380169176856361456631916594903389515724153149474914262697503178500331054377423566523734463576080525791233419265683214802015690930726820769533769910622857029947186395915992366071201974496866407043675028617461764919433793960002214731239330252695788680072392309973262089127897775469997196120824031492159679825232066039734037773393486148513844941188658187814848911343543951311305059467210817127146083015971800346934204036235912888116746544448941833765324432361389380808705386995661383817553100943735692848213361071620441794530290195275138137869610460137842926436738612752044055649895939135275590470668316492321986895805913016671057142792110119416891144433239105044079671130566267083293692260155242573838573377736838773225843114999853305855482406804469480023305826218708515556628902477731845515981466713275091073833490951640454408304623933716526217669824818776590058884844367794690991668654388040161394749641919127046339790680166576928906810520395100570431393506969758607847452037454584836870294751013011506678467365442773748360637711177223754755481123891909518617957039094924427162150887701174442771453754560523917197273159482769550722159298389528842264460607397900227256961869382373976490309522089390903416466341817656505437960451230553692174233897394119874186574479537896182916731084275194138693495836304079773248254869856671526271632935969406771162128459125071616860091292605969354435289015791080697958523143007361358964729629323910650904318848435303896544869142093426012632413694733082462520372209221382976681987429006574064858191834437260256188121910998729516378292631454484325927411586839507596221246694893077938955651621347727426866216915293364646064495461256289940175530135669070004974046557735730470252781374351587145233772720164519743409149310714627641685309625084339619615832342575745048139051580580426048928883227927206849974939481382867873335613998998216191155842807060409621021964296215142224545855876535280813368294581919432126163271557500728106672471690182996924867096020777776211940578094076623958186780626626154541612373226239303876385088233811425480065104278567141801790437296200251623070822511185039579545885244655227434641510693572058593610394018346591000945212949679713411324341287561314431672473326113899166086475843728789556179147460039081044360500240027698298723925564948525878321389935410731135076912756373312176772880844482234842487201201489267828160287321221326197500244093890951005955913530066341470032395528201264897970058236267443915376505292360843539814699444109068840501529610336042138723744411710416538256963653012681836168939173784896486505001700631322104163275322809749027406443488311560420549680160036723587377852091516145084265246430192456289848356808699598708778776096004649619366668580678709138884020672637076874428361915142200131777503933523429594203941868247388119991211780070343938838056558842527392290198134069038003562129920320204922968383992244210648490793221330492716459176697023296116715160669301534995265883145673914943757497818685414896610331147212758726119740947979586616341867841567434150278767514526636308514531565051830685681972215634009937999267497031907479232322210221910072981471773075614539720748657448829563969165690794306213412232058852806981259061221231350034923041272768816607133781343346137023301775688442141915668588723460631689182223057339691208701606428128075890228765427312409511482677271544217862523437412074001139132754475991339384589807876800813453439594669079876891250668697519287835967125992012721513094737441818760842985165031065542577029783055054077904455665967828943081168068567859008075642237257331550808189183031838068027793198570333403490657632695950501092581971719835917370346519945763373491954304322101564999786295511411655985754685628460360547396647198943199542636386071200308651732907205212597567615941117048968761075867183960352240974034298603859038848171212225597058713373956160181055562590073464481703647287209271484863790559711173412381149909771070441811162917741505832541507099592175769671555756329506502029631926588486081414841345728111294374743007625162367094623653032765567363026957053310932328852807807136828552302301096874501174851845887237357902653646598003082895076852144293144257705084881919622079369934580550282218108667106840406575479438447941836294890741775738446557460392714396135141817069183656792378656755613171154323063147439491473699631408989603530116121310395349364400755681785272266442353140010529702946885694123229651012859209933970771437885231312498643745558107507877866021717641441903990838113766650704941808880958791790475655571892931687637688628653907654593853206758994753353538937180604575057979903466054971418333668440481256632886642866849466608825157355685798503361815990327013096721790280782624042829588480474625609945222069250447428849853760653955711468746908521639457720313225892844255954901848285443979879387057302941035874081762127409701098309471526634460926132819543651133059810840075220377092077487176385448245352987761492450098601837108895606464472352063920206649600274184035439487973140760906115997530705994483226402864698285254316111029430290495774684203047249851631384640450155174245305875317366140255928523737914272145719308937123311003940896770799781933317431197633055501850187407043521105669000555284088743709558026248280053888828347880928729260140738477604849464821733942789867927019131777066784328626648545903992908600737904388057844219027559006537897951595352371996612389770480586613039961537924826844907105937651604398251176675874289018908626712249240885592296101610149347773769934939930221593812077934110388237995809263614336667846341655255952406535159679369741113105317494219540493566329723511099877589004323934907622308679526497824252550541760486924784307341854056647273563646290811202758410257384538408756271608546427504136351853440925616090960007939180158311989432227016000928465183718505632424178648277303782836408125233321577345498905030140255412821042209279787244089645323343647280969788133427281942309534865658860069257928550343978103945215900012256427296742965053384211483533375210325264883463708739540194832961248866538237729938313230480015282653058163104137183146257160048849770488422671664561634123826187580289269216604687878421784572071395823140153616100363969402419547856807011417612815304369828238996511003440573174049495567349049468273417530121744417511299011816833518561993879813921478687991006810633349984591268586280434814212232371141473820115439828207675116289454316219104499636923113794657231737278525813520955864048075200644417141207074040200705961272985149712375663174094269624036853593147129995421000677071222808293391463183537440702494816058166002218124233096559024891938420966448367747510447734698197844305695045674728559834276289795045682924770880543599133768623534619416342963607091007860820986237251469540378464569085046042611971814794146080788979028994241515131017830228869812849430917258378567791675763420035090247718032433896017151794084388806566181105407567607628950463056667041048825563744979686351997907693313750302511528992993579126602951488887410312413948253280858591405363928332269349068614221109573987097647181640612100813883216067476616199111041512188583406340275741142143594140099376493665739102371646826914881723456349408624544558806083116697640740442026263231898018067986372215529208966372123312967485719895497559895720325326708721921649336119521605599248859620021948569617826342306983823732841918382307499787751012015597999812616909150017201763701260004822090883959378309192820422408754408714586449407304695928144981590257216224160553977015667180873270195190554114635305248188873732002271749370003612641252528645368246582563280079206823607739080892569146152744719006461575005626953084287858259738407612263270375808729453155090495757195637570348731663645299850273023556509788624755468223649894702759067117444780250673501920146515625478247360249765249178452672750761954257403702779337896729929231108086981038540803245617970839166945138511507071191920156316068384380922357589390053494745305440075310826363695879647406663334487030230308480538565851915461359038581377369220153516642455383012600073417621476447519983726920944083790548231264456100694466178671557065677034367584120533969347889583005800219344247094714252917193233989214597398478861209439396238155559519059232298324170449350992657955089989130497432203624964663569393783896973684859611077568964640508860282438550389930822688366817368415247447827308556187370659070977399631249070639077836632587177221409170437476210633932035368227787898274752636701116201005728433630997849360134309899562662392813987627035299643855917076587283445557572559301294329227004904629100672959684323844561911508865768441950610846653079840042696668697772206129535012774819210804296999217115196662175492800617369071202683238294736599768105110273072207084656254448155198793229187895364955312346351622702845849096974998759641146027053206568932283065795142649225852887070025684234249399142708189151154575470194829651478176086337190208237046391427889776901884411532422330957057448846387871053460979188283514114466468158978288518478098683067905506055696240750637127344433198379967829501904207621358281758171326711301166940763699142151888503681719966101973286932462821536970435649122508255377792221875552203199888112126557820742189117314416390981491894734628035647125136779209434972830855825190683436072070865153571619503136001361285042079131482820002969656619548098765388831369068143178091855475077792766930694755886293148541178373763147671662118550714545271981384194975099137857496219668035873168208772792618002269424399899772710606640722568507310742897469816882053748150716454327481505629491952372689668924688931240674080174358422456060476776097717708871607258045045230474955032290386005617612006211505404592241200658124996755807229613531654172132951094586592646439259168653137033601132674390015766152143300763078595124807524206841327864883762401955942401213801770417790029738178875758697829506004434578339314503711346220342734911519283876740310861789045745544636659390470782561916535944397467977621953436355829281142982302963682653406680241380405611459890146014760354626384905958643343085047578114528516814716227646831774742127151052325393455136902207664686584046990339515230022529935630426629681498817516735817413162285769029163390469201866517603562230295106635552973892890036873606522308610018358584621886507792703718653179294492263148706790221115718827620622665912771990290777251711923698290647234557644448413416114619234084223443577716149649683583256876170513327765657815971451312594795067987399906565456776479148745124417738577233295333604412826035311900795983468428318115992383112260619516075377084194686438625079992942591425492888326520075896381229441093131285011420056470145598409489573023243215498012201972349531765489261046961068285373234208380213941896931005190374986620821645893112647887535863498444433041798553575443100877193707813932168763776570236566125095088982612199630009336488660100531451566877922767258176882547693066485698380669689860296823415763006413792440416356684295903572190489998970817893058782748759948983000039211203027629091072136989651260819156732428533971102681971796943797115795579320494672103466294322608804368146853316333764972188160524637839268392803873949906194420338556976757790301562186419767422078257129462577576314124631306686902945268861492572151240771737117609245742523074378654259324223203357898697934783525622886042414714413379742791485628524542903360546662284673487896284335778014862878330184070700625629247398734834182444472779465866453358722608858611774365476885827110804205902560284710535724192018337656814194737289978648289104401975624871763106737111597065284861128149133024628376862653535502178232411566585027194035819566237878974351948247984519358095025822363022439188329410158424981203972693919269204455849960609990938270848329678072602117740653152813466174411823364146362391690229974457274053603918001789854541201601045377699604343676020576234961752462700366363927203405511292078534105728325282642713172912122353647926893772979885589937918437348661701461120701959750360133394799785430692299062514036918760188219618897324172811441491364005332450820806135633403104805763104206118375679137930458929372581708475992184553707326380560732379926955593441238491249463103381012809954819522825423881489174648133212961166179180451949583184425826590789012141779409171748814437494514429100302535511150113514428983202728091256564066990372373026466865534788427807799813643435489780858560532272162907661201949995303976419862077070499277027318017814770287966541349768629649090803636415857046795773797528128656233712216599482569699875704443278745090106144549334289989738068640390098800599243052604399327434094597018002065252549752532264140912738897572040701078069811919140360930276711053085263854531273140992348476405985058205392556561990056064987431001282073294422078083980234734095001791792800867408672026194537458628743016966213065958632999671692476780661852149745006894967157893821012453055635312889952084717417882635873014193886745998128174651496295142568569423163214074553458136735616052153827961485149067391258200271709867979048369507345841814506548912403558589637438640737880173968513667738397756140769427814523962964794723146163322729922757399742834006267954169211600700467054257851539688495575909123454446985046721529857828153070220376395423685903619293535141411976262371307630100617648577784868639238145952049324084324889387242923830440173874948537406313036865481559881126081393546583825297868145978363279774972329536021004567287565978030514262336400396156720499933954006941304252525859041122740501959384857640949910934645544809782526738606889486814070817246348704831651848043751044763318068898173597250881265928886283169739295741330585492648988920799791914104074271994252280347135919851596982511068652936423820366571945152494536339295047870483419187533070882808749995800535826407021042367965575525184426833225550756500789377563792896555017910370263807464701995744644206397189487146288805853393491246713409562692357069747177010781046411539313887996092103976897094435520681613513387822896496323994805126526487018581438718446715354302240879528919172789703177138178447027940065181885440479754326099790970945934827499102183460633556960626753151526176282552417351650221856374968689053381633637388928658228433590225419337341361983738262465749590420706068051767984729481261609308689644050913266150475591846239232166536813163289415563454505875272163317403092891239170829367723296392095969607478230301063777321808644369827858665413933827336370254237185399115523758921420865520385937474753219163070218895271369386652674829231729258680816149230074656049983980834102985559434510115981675913698076724610732915090012594123442089469758810966272585764040203251916719907990248424902097471217304189590124874504202609302296321916923411175161825524781311989165390240587480400386255873227083321713165995342447962123676769939812232831069881155777180489844982030619483972074868762114215761338717104606128809887415443827919612010659024526951304655124892953832947606304325536021194804836251575863600167148620008590912820156751990847393441495547672403353178003136765424623865552728847095179308375787383501415787812466235023730533672730591151653235928134576964520684015508342456543135608674330809091853207834458251611225380995372912985162776647802979732139628316708896688182409312594769785142287097851168060746470586269208107856827445458046675286285407452532340413801394808345981720859223322674434258102324357726360007868646201918140991853463565424751279380386084474054930767088786113885304797805658929167259531680970796507435393078968520441113097750787304914366328107106648510405003865279577071756647879070756245401608202605708055269305286938434056770403854102872957564572877246302613784156085962684474548872438619771480835612379995322156155593096949345885314852704911192875769759889764819051125129043505490392099762415038713243467784552210012869126486236268797238094983013227437495782245853781078248982414783828190176030300385549829187472727844598694371635131239151811933216546707252388196077058180475646114352977269112554248483672050617188275475567113371528443564220630606073824034368805232655039643646093360337453615110089644727753747740606536618644025756467714112144774070339002077393507374536385249160687372902908198470537195277849401919211545935242128280114368150342195807067432122829130697339817236573798761009228884950923399291275212882319706082894416060392853010518863889615736553996907364323650200681681066904756025332468991440369169169709457674177064084402566783346901614233209993284427690035416664907112099292413853094585880496745823209418704620103704154439548884258318508057569254487692844659467353521883100338801342706616747694308488363403126513449426189184451412201452180911468542489163118444683894882617738128946863097680500462670951438152189118905256499703025915471374439552220284099610923360761631619276680351093587972821071881382462028334561720816483385246027284566589107192234196852473093728261626432188815315319679725551303064213035961962438546767657780067113398333578002151452534977481345711537200260432163785199678900291963094329663940637085731555611222006846122152631187959348328459495537701809603328616539771097544299669761029573353274412355088570212769554096692986988382550320819436457395894505956955306041160324150295435061770599617995387025474717343889721957109492343849832409233173624589395835930775837887394903472676928593109883862691772715801626725803334279360662165195449755714114350682330144271681336586590546360569783162732208157833879246139121107586288673241799295560119103380107202859442220140102401227212709600426321624593380574063651252112151276020799924334107545852978800581041575613920846526690177741996735417722005051274805588970661415956005283360988659537626279368944735928514517999517312343785420520900116934289133952207989496568036875284243205799061675900325574477221836136943715206117840284770289005816028750370292627152987994121905147359045773213717847127430672641496133699336449186686068087423093347780164008305169159847709747801564113552272999522700658195072311802442202436460566394768642162336488424229642255332006364476954884678407769517926053145632240409312005280449317640542058573464477099415549621212222811774249573983951227679505490923040675054141669190294472459176647314410698795567994147007835794252970834932717552677923825032950347360839875526408564631334024394008518252476671120773721664713551842619344289365017098028804790784879804128673014126613825496144050282814871107427117076569827368642484263798507628551589155966121389192893561529632051174363654620425359593140757791694119240540526642485228883457861927573295754930013901606996606279680485439901333700014148331850559013413492262304918268647857687582940248154859474824248744499801540260222699447457986252807478043007255536751223452329671108894284342153622330968410839162946996033441569035039389874074266516076321585197154293216189228215804900338341118380007132639883813558852252854279668168954831484587278943128684744075719287485988091956170848842721696762809956123880443863330561185194923101068780775594007367914681777591671987636310883721717672946174606444939488040576363379312957154721332910174189669492476997991926468609968784868859830550433005501328071263187262979253451547924688869449254891323902329454436975506407703201140609912858436663976183182397861227836576385485026172517100118021366805248093677245166888667328646180420367819067908849699597742541181338805589431119253263643054823579930770322770379339703033353190330792851388248625077728890950675181006461736364748720297824605091645227377878542091397517745404473024343813323879439506755618686194434468017264698790000989726001510804847031252022547644293754021007835469440312129672875826912999960289238993081649503139286176897523800350307664347478914973636100023576881286045428263448310018169858159951487453396530070023509133288792541744854909819462029962318638371645191961636135963590033528415166832211645080959558451545587882436013172394613284879255506089609230130311597050622101691924583208663011436871449950575571634395357383042710667188292055644564007777384811684904164996932248981806996842412967733254191944383005070011944813432029710726059450672639386479838575298230334809164157362024372011803494179293388379410022608711948918413722181744669982097206154533016691049828128903392518743099770935298200429048500142104795909858318186241187595710942408990697242306353360755826917063257702286770721222680706681006426912842749190920821519157117341661925927312885945839444251788107845930807128111327643429514260517363572235155278780525658007370809556630521519440422258442294438143058055996601391899360962303326928666539855008710994028710467996054632737352220822411138726882546712688051192145166946993947455953371459416971363550189317963211066198273229213379509184205231984700190239088471347338916488600982032808276725365865750445000789901398800794985740727229680156500925215578082255821517728483665238087173087110045812133618078158393784662400748007420215484832721489264800112852400703173528712012296198656619416251892411409568855980271892301806104794761500556923812125445927807403759940738438528474316861175704358005031799209416325512225378191562593395447754164738117471237917841898495963906167503797942032120783007176414901548923085528319694315920831992937768949128538321892432926990363946826845984623251927763337137886836166454017899246808189576041966388598061688459428534345513187315434484031584494650601476117771086416957318773448108569167016378563693203679052961279596648076476032732223231762650075801913365278308647133066533766386519415256581756398192053234718141943079408767413252965973566993250852604408230873753675322090817370637188450259581207040486909881555016539987463869793721788017457128459187611825765484036599578475327386123606788798587562758204860136285937822233483386161288890626629507239013471606278523042356380786422594794094728390426667945467658086398900396213486299544643416842895238896508191425496817201166342529536829559203722973731615988861010995711951185957688048297999840736040425120539261989192558658781930735000349638874101691047415553009121457948097779379770975625943383424925142862853003029160462467517752467880592769839737242227320577249457614747058229587065951593748169177149168364032632189055515422044405402421439618813447851152141540952744998777328807220958341434781589055588505854556116702623381604441997877621448203480489932620705873841769233048903295904252832474578519349487887734584254226697221087090984282127555685210567669653227590094230413981876483474017694246384999882809445498357470349697385199318573929584570426101308406453834766482588553457436415337583783067921774830844105143937805531091673271710606579380197536968882066225278858293926482664545041223699497667535646548015113035882637343357241171970675706544296110093215635770822529660175040485907885835511459596272548460901154922693502396174508672972058813546686588988574695038720264930249550067969425989405061545434040548545933288091294263832475619313482020172958094538822799930768229190748310525140220440406760042776589781234481263294575739652322337505157308048127897387400807616284018898872080019712221990513975496963978395670020467380613389603489683218407347591331033295373627913497021230438870320889152408867631446038059318465922827907292067540028801944720076790393138888523143811998932618822476950589053939665432133323459439789663479679192322487568215948362656882667455833053046151438796282346017513863017808892640868163664902538536814417075399363914879445666264603157295883104430311371640259447773057562256908846631560966825482961012316745431119043168625982953901753420943465780941856225399905543960698700750141017125867793948983797989846908248532656972223125214140569013126160269276459015743379345676633340480927878231722278551971721376437364902793999122603351413559680903520134013646778781770862076238158809807516228553741961610238522173928627389793336601270880687956983293684627114543820691764659452262277161793161112103102368871385036626554512684838334772310528336637508616187740486541876677682255378121723461101787968854361473570349214374401327521447609238570389117868262141901296401588417751187020567630356831652326571106931515260802817038091433917655234354728814537423590565695000450092402057273678253186204698874060680725582576848530763982764553572293403591016851044614478232224030185354763903583765228043267249858463131672537787572012079984988245959208506167697986952843140961208659006448032799747057166840897456509345521314929550060588223836609408486318997002453941191829765916355971264610009572842336660181486744883100756571790951871625442312346224355973113980146650436564664734702792576099797742813134796418736993884895097547904558654095710958845171072496549100627061535845776486345431389538830256047050841784352600826964852786793793183487255464023032914449722922818349102148634938414409912221079441780472285636164598931051202799404672725165863222971499798560375987325020812839851298172733759014940870408008363986714078059221254668381186111851116920682563650746229295918800483186091605774839562779030567041186791852222336057084943466685120254632989784816457225274388528828807818420828105161563422577430081586622700849177322066289416684961186768178486334238936288753418360290037022331078415343759419500835597162983850820486921891266607346538644927029269956287523078110849046568077286862845239291733452601995347049433264626329760922497302018457145487402442903716377347985875508173514166738050441351550359401939363818956780752237719681154588200904294420747901851704675199651632750543244110526663405319090471334640929966563063736053756426403762145414168037460396148841247317216099412377729171619416851299567825817291781497143249293681360220764961274597071364917836459037417275145180867257604904692965743254962535536819768862393340093453198121618299539585689009956474101852429979039021327038932111751553833615870398322777186309405271445729929841568171035358730137113355032827591650497052260093766021601577944147424804746581677821013118230782051182309889033985968058056543737276567718142991042073841671253724368748236733187279231434603815563144141623076230895108015366016321076714229677622502780933802904336515639923575332097849023263040515044699594651113075146580113276656487780632889423996306380092348034006777360499499417595050958814800635182594017035759210620014441828691997117994097098588469174371013145246166904884233909528148441104860119865736082364619242538981922197295846623114502967640507796512287233343535632448117301614764799321269037553103605637962335654433855857694535707565315423319232135513256764681914127308603155452383781761908650943451788141942279443148655780940053041805753166730375740968234303368408254162789050835637388239530937889294369190346844109907404086841286512733699166843653151401364640673393490575947129863402258041055258750587385853411607538128647136517778043893244090330163520694536083252844796947022050039070312280593919270405389476663323475454943636764009447517018203106286772362215187562372482517728522850776426528286305571938382816415505951525707830380853866905736691159765244332711201583694781401183664707329211135417948658403730369105242817178199209909539900526402629487310015224392179187463800981780124223368831950400192040635781438631733618004755094597907485388970460669801003983576604188535100158096374343173521386991551381573613696471448406091346672595559365460712192445704574298932278298808511196654936379431869025390720713965791210490395022973439363517896182776250015000733445385802819758196587171013389180360326476863319214713380632985143052402470262075756530972179062075012126532662997529104731154461702300021158982488954989293646602297923897668903535849291713295800791244314360476192815978476374304580618993540084133207569849573552073844441079047329792260947457508918944635911066905403514640702432616159766854603594213170484154434343713333618456621426603281088503019494043347922665543144179225282956730370414187626785187780815294951793894908019387146760230137153559430050439365839490503451495773241351422236062877311770150304712323572268031337522554827113833982271129917791908951310729766754092696628488509791525912906266355063894050933844198781593962003701965114440732489216861089363846271149198526570707123663614020944237099309668128960240385142457411892444976471962442764264470142209073002260729388533752286000003244843041156792306916561570747535740700630986653524609800114942583000260194303268595504638452234450057160584678626510515335698211106228223186251314652543060076464063458515864509290187001345948704686426808710818574008161379563983377517349396253172540632493829833932627944304547426986563234196265846184144895855021455298657524374867361281374115244639234780647787575867331889408171439779858587726434913377994898679711160173934960826154055880279440016372939902843508394516666884423456874099826292319507640400923835286185005455967825817755207737447228513976203184807718904031518557122119800343689259650512460381372822196667651410841051242427888747962196847157193991006562180297427179130734376036979910760816624896634615261478551823194317298321497790529759072348591711361300720238036377405029316320196569472778916504841664135305746398220912815166354875806601602206741912764541386402161202898847589649760509345543273285262170072261509881840540261609674067314115556617035069105026544645067585025547101232876990747092999827096389697007078862522123701713036193006159165879383257407267724911847920000501967733826656379177874776825800554900908555308134576620461005116183337947044957332334323485709105820060316390605489190256346103017679397769426577776438109178130702914482906106137164982925354826277470457764933345208296814794111236900025915832123926462044963385813985224590403865005862195035495595560671546253381001807272130805632944339969928985151417607773155075545320910454990292590417366157790825056859373815524344941955307308249085767979094930470945627467753850499663174248862478580000289862523101096975508807279197587328670573088326777355462840209428288562907236231480331209355798143892967619697922257745856996830006462297946371640717013115089670818321988315106002296016387518001832589101537496419631803212001393640114121631540360798702303200451979463730318292688962032911311676480654326971424439130142474796775332397438154423991236902031489139247578610580706488372283090316450286008405087018131231851360792923075712454212939426407099648687407152796614817390919586369594182286227976029842185312753093314123055837497192448551267703165295431789627846368293136006997134093846111664052096067836561081052182929862183298429715446131710415450457090037772705691929136219225812445350190140770737496921229366653048037564786390873537528866956323564064905336565180389495140102175526568497049146873787477629092890084908670944859290843951408126892016488893408789623824377607486620498682703438919441484733570204869965314306095302900177835738458391677219644609386635555156244129532910028708769449891676452564009835944409290842433616404351514242474176216659971855909844868838873515945257940105618034542314666444158242576912508513610594429313849952970201407598175970403495887531091344152083559048396744764445523931740293828849580232507031155899437242596639933704317025130518173263274855487607045823253261562957002741546433453669751558433932931329203659273754774212391154671218942350942946136056705589349533699516889633231354299018697296735111418324489657372006796242275674339484072296915332865718502368723722305617391889191343539566055003457542923703778014637852421977721523772503780160087355131316065036012293489226773344820898791040865666614087028904603880073182941008550404958978893107009453702433730967097085881622183289549062125158903767738781460280969174797972559402514874215165205887922384541705226910080587027082978678601105040323023734556860091058949404604637321874873733537793926347318015572258351327539158201318663134176638411760582242278057336841833229975757507884928878656164811790081402233689981045492638523124615525060142956008987620503845635869321200865455025143855063072772260413441924130534827698721769802950243289273983451700952807247072190130679314063529559347019932744690384165903963916119400336653891177157781629070802343700533767951364496363798262995989825183178041528219996210826468549562992909646075237694354868985144174452248679596288416938339173908029265482698557645302789615160481058437190590931560703689235950246118920170604084251084822345571818145107931216507075563160720092000198997447690040209398864923129827800757830627603368535455091867718275751544632223662110957314909810408512074013532409594742553155867270023760785608103752006213411961304702155692801203621386240858172415809567821970813716902812292551693931384520995089542607686985662764563449076052373957133656077605884002598916887308243574742087570299421504833952553921241770253388001768777731380174411540562334256435521187582168168958729128809235040823335873984665642676365542491363270564998345663166907233177674514557089181367292974058459598010720960326633112498379174100568773258763359179838150239707949399775854163006548895207608882685969761840779220792801555740506464101153772351642772618492830994497877923790670312727036256932234720197630142013656900314785409112948645333460199245100301267602299694432401003152166265231108297827375938008130490867223193589818441344533774611469654822953169556507934319109645001082306559106728284663121204225113635014697122520194857719402023793894267566212522904754800086992222889120926125760290413275299276627005537448201344314828155809154987468865891746308687340506557331201603408714140417632436457340957514540146486925229407136568646313106748363169213051228772553700309465455443956385737355003036599476330734864878841515922336132396935509402007965787911628037381258178246062239414795040282421657346332087099365912716271231378926876406913331728288598221747305368838886307641643474494038341606403566090920532293125835421847663727300766188744697274444963849972048456238704217995185243407168545633421949480980834784385479576746599769401753859472193212436323349705088207631888492717124197402992846545940396516657237926440239988308371190295108106287141820572593109594044662681989510611429818184131811246081572757632520302023758367429643205674485309368940489893979955330401196640555620946961929479385772449618015059495872084380002155410665466613051704419699976130131371534251344983058041669702638966695603720942846096777402919520005774660250695397233108450928268201561791148388913671702084460066217602431186752222384808058393812553965023669481081316963732900543416366768110448080169989238391373085993488267756217812319086256915516313877086942295808364816443234414207815731266890836221314975340575439583418930818868307644214575981944484751343127277804191207616952032782244216009014436008027954026440671783906446174674659559490002696258326171066253310477404455617180634947420027864865905529025717383066288205406884362169116322221215361099647625470076128557207317608277818504867273382286133146457532169402070822714148795315185095106861005067005705844062809678623692653622604506137427879413614747177583027902493596298669777011525356170556109616578774454643309780792606157692977689031138445508010952459037754768543830876065247377803989303472473916221761848364591905429186994330171048561827689547638619288836586146272371684381824606567108016058796502633001615276657234230529263968767596298111215249453075473864458973149402294077403575573551531748386433169383881611494345699094858420544808215991351819433095990050698506415044933533277030665335765475592408633488433965212070018565981527681592134338469901596863102628177329345344871449176978386381092887870755915970130649765782228965993293802037151895313070073595925589251749142158169443627188194642432260108266997608767207340354331256486686389788773721120599156639520343662032167129258003194266874511949264994433138264059064227253931427423798607262357953039287317963857220359463545167465880978712077040154014756189508765016699496546217579741790620245445878512953256395674689110169254484428158798504287443196363521142830793294943589392134519059554023836384119572602587762603753500541043453797778019633883852110371510513765110787304785288536766717509876260774626509209353556671144817357224507656868664967049440588597769066760695524834739266604135796382649100953896816313391528116053860646139715246586711970643175313881740523391027781875618974707642651439618395339266903515298955446004449404301185534305616890081181491742652958380535344412822293873180511417685863105138835523708757485609125955783376790581053117881549255167220178603619437419963265894688279389986206462401402815762354080903285561853273591956044303875079002857933779117624757231013738995737561098398215723987908719686642353314108054939139073869016342219847347926200030657219796055571122686197853306618579120882877323931845153527415768004924650356973532505830506770237905859696150045621314626464244595232698964599602076749176054403400268912899076052277363098442703770624118105807528749938536388264319561882809845557048888567060225738472296350052445347054431532227171805119560164587501746045971910977682433120779712068723967008022106912557851261534573742664304111655474155810009023893676112550239781468184650100804278865253044048519694241084792893354091240890989149603622251810802309025686626828195412685605379808226692468030771146663920936544232828931872776959366961791928236555876965121513159084671315182580685219769646920220885731361581586855984270632588600443816866327185402430324323341590478551270310049624975186544439486692969345457863220045935323119957785755528706522102231117395099048735534816928987029992754425383668138760323991072436228207701582690824328292210690482675387821787828347330470681674005155469187436351403388246989313863177210960795896537559170125478660800472634999621642702283517889680911785193479658823771398829016365351430042152300469016470078183613522716734922330323035361336136388336417619382198570447739527644949393605506543001744891498087987759235692729849191013178601907209114584487421016963762071018879290753323362232868877372161608795231486056581767091816949422128558179203886106344436653045137030209922105116607699768488307294067293171205294467813858998383129491639980838610008902562669880728251319153786257453451767764902356723979394686132131383564188893255483645686854143395533950734433389942490245483227637158471529208826733319072335015287771759071290169443673379064762962329651897806611253463754198793140380520960763701785900807809878477862567319885227557820715255422145277480358886364137221055026442785873937572959974646023370879676912031070687779419482619429695763267049628983608727173799464008958932886291937576023081542643752848790323513763622850368951412510131062506240141002033799437213275078164491007214220588925344573859428261446374059117865767664539711329783301973999826940982364544320280700025292938899602550265823236127811920099116453951912875034075370520077642661525488674779723427738205081713415052894883556634394725827892715698598948481129733015443353740942539495864810899788080000775752778457901350276131740881653253797221398419231637688250330285762584099578060621010623432920599346541630605703446777476059697542538267440217853221963451055881695360103561575323341049950201436895630813619008479920107575319108792795493208849990696810038353146861381999077626579246318630279518621152720771198332419030541006527604553391891843681206065839245390956790728141645770067950909321018951158162676787873215783693133162230606380358766693531550797542139057579302964513386457725430700822336750184016002012677226480089927971797639814918700427963661346410988158267746299357365852033310317500377660673260874559635582399609706530083305076710799135943112088854404963076007130124773864582945351748653849218113774093686168433430884858532732534969618270428308914505536983369367342838050434231047233510990015034868849082781908533047443904042521522026467490841782495249068888939142220716821552008304555231353104476395569850208056179806652905030863373438896462119472433851961431406866359465353433315741056248232235125881919675701370467738703031961813167653819426735059865143478412308623257765528639294681152448323371362621964120456701388550710527425341749817003010891724587435253468526641060042862892281556530570589738803942644132599698355632877722695036324783752890932328364292174480041009870650464577013933582712830854302917583897828394749631018116306868427296832296852423503933430763159505699835643085499311760532814923573741302272070464403029610856939135973468536084371686557655081171041983115621673735050848272133123905533952699819395306980790699766599257567836017088437254359135230397952098796623958201471277604656226962368233644480188499573773187089702309795609309598614290239338492073527090128190941308780493980980365453146136924412863230576839907992963487161883631002907058967534951707094829215272087233507632690290756701799562809575738627142417129928346359486591067063142463680744018960402346479269240728686589516523714176742707939015225868501646317725626003004460204497206828409740657572656598638832544475983078088910014586772373479628648376135615825190286779043695686954627674659594683089400583520380283425297010347018437597747529805620466459569929212931808589992409238951432377632727042430237632991421600222869256751460449640435419732450382992265514510494654197150704753562236457938991382263886005000692231054764817505413519277817878160400353116905196437690145943756804531793509568200553682654477298000566379434506968164666999295366779879610793815619112854628001659030911966111990393219819560583172201105757828696349011449179225897387675447186814163999703622302123886551923299168251237882695363415891017709613338173627787124180995975105883737581737569494503684602890585532665208526674368729732120317598270502556288058082316753473506234579956542592484404089861411938417858388017096061137475054634534511084480022175350278749820236603593624514969005840569839823828754679673363703701763721183056965918417096713189847888202486003046898984927323893641167027334374723164564746982285700507604133822404558910762965996403232008064219187642244176666614632189279422873188729106574505779482205354216130511008039153559303101919761315704437247800754860934064805410771270105936949899049040591117222715020381551245944349886062233951224214097237705613993634706650117720811652876959939134646908858025134120154521825238446784635721787794681354751406162186040129581818813675720018585563033726905767586181194258262372915373235643364686660934707823368969320447349854335582743854581249201497681861391416786860292421512650750763454903604195042840622908093631300034779850317920322815132956194711773378480206851569287610506087141597264750188817524660885285600742145427196190037948420317194128188061656396517211615182813609377089775036123225669961453995836429614735291291812579493944111291889715174989258099735289037824935819410252573464651764802418107812586515513923089135503952023185820769867685489524027875089736047009433720484360619367486144115572515612230617555406380176243336778307560884964916545332878650818359696358227943404093234415752535809459899952272920865202763001945149908611973998927178868226195213095523692819869883501346093178446230190268007857320480458962882002289744303579905715907066071030052504322829819308202788700710398512674215078867157969252463163140459165114156631957839835709967333135906223943402735381702052255490548190200205490547773928899033165740248143002050460978836969004208191399075369722236056326269381631079345831526989817319083204748422659146620726906851576211300208442196125916720108316200545594919936898924343216637586197526586716815578059567630036123222591553610518958074595024597720201476741623075898759797406062118857603244166636266525452671304233632878392792051311849638795593995453025122412341973098088389895219040517979923603914149238779405225176663202078264552726520955905760522577106951175293994364440249329705853456564795871969909975137142502161326354312299511733382732949642016568521281064942913655744362135933194805878512248655512721553666617250679982863635668787822903686437566416387338572836960386664478682162445867956707408847069704709591965354270878069481797461910424870581410423691829388314222278178470487836899797506341562594011303347210546686254776579346213598972724653368717588062383901148383423968914239681373032339391635835014739032144617605614239763866361916785553772499473746762049353772184640847808452929677181983897787025822998783397229497837562001152417875528405824268956273068121200264578468316117458212288596055209243706804189483260418954879636143960534282366064848594516131870581466602506608652595589020258900816036269383745219786293723928633868666807472951066518778363886116858900824634166830876370947373466736069236826499650520251317564529915097443848243603166773955299347425020743098678414221356350474652938272283256739132735379341186752938812317927343193976735883031104584298253545126414022275712397081808685450674542686363343852047965161514656578056949629353384756765720822828598501606808802511142345795555278377347307461669683088334434614515662665954335836534089004825531771016811403733950381819126117952561007754090175292279545965350420550805655329944115194377630410794589687140485023465062822244101617407195170113419852247704796839146048849515589558672042607649988663738709119919423722567761199652130095347223839020209808877905021875566857963862378962863289682877054152905592351882056279410525875815804382329850866674200591228425073946814946377216075822014676581443804228007019102778684954125104589315037088595663210798021898345347805402397393060046101055872862841876378855749990623988272457806308201582624312176923714606096161280477013814944295440179822363696563115690812850622832493757040553747015245954753666639813287722554030812847568110297034526053031214257484400593516142432088548021597515256888634789896192654298431511197456088296754931145883068261494389978394584197311740182022563059074489130153991086094286566040084741613751824166968496106336720850932213112751988067803503257344709569462289936227894162457459770900323535612160389498284758071855776961453191651633595154240412768454830440216521978748336307379386853634520118212873606551583962408867672066928673157748874369409983186014838730417416162822659679476251469867480114565783854018107520770178157242108114672580411305923454005745674749078189473508438940453620986982682256416833286823650261511762784530182204910333864368829053312935345894484412550875539138604361821489995873629412275650238486150331837966427883648807472591472367112621795113553042539050342765953960151379386586101425245305089961264353391902780112385488520367700023544392298307874263513734612716822567844452109043697699644659481768184465771805898334283141917398675927588197993618227196353530783264233883469550617124118466864434362630041934155058528385541934629774864672812631254954294935571018351998777114244826610450121717689344143544839109635671105385521426774689464394993030908558291793567194537131105160786405528937253859240632319336499792422997998463231828038381421761814052299564345556016064298281856111292128847282845620304940542200865757992791311693713769347141126564303701325674765674450223453477370434365147241544422747579578750104707885827110435651248470535300623592778031185024330494481452976265303980739506097391218276643212923054320242288871901096292619928592312512051937511264317000252237625146908718662929653247250984050111540508203161006105364453574779484426252327927001657023261542433064989597888090443965501286173003054567690644536467722777387970244626181107807423711829173554642591327272147779610170552075513344059659855108817314761614883494327547699237628178416015250496711699972582654470301395673398203809231045591606873382574000594765622728051921277931696174532225756791039293647129134031889415322490890026645580679558750227986339564433017667921423853795854491120748352801204665748015943720276967317458140438942183915581945384810911660551848648391926028598799563988585961695906196964077972978155916134323288537207113561299575789212676955395102029213570438573034434943408978277526141660117320668085816616321684504531525440687810596155025197741031937833741267601838593740874841509008893365624668440474212810088142690123056116559245956403018282307745325579064942786116637647465757208740506766035308594267093066907039168749718373265578638619030040527583017525970212338051643342682196613103682238098137583775866308444059436694925038655821102740425739199759223907815307329271803859969541621689220534433981112359919844114281239531290393145405232474536008372834631086056003505184336684121658254784301636684486900618702569008982084233562105453059761742716182059907625469511441936784353956259157137844740517006799517979330670481835822156808736814693755103814290831591664979139594331525270578830013338815100539984321446313736600532469930078689489125119941510348878053521358240189911223711432597527663721152130765950884765653950210990496246958415889991126187162238378298593557698707374675130433716116099032748266880439089884261625320689856351442495127865186607193276945435804236887396936993095312370555628570969656347778774385438741121730651919147320569541566083904656918127437946616236943897900076759936831279222531892366315654497755118394387792695850803745718047441415445084233512276703548692674163068153169085111978544398646075499978638730961867508093129250315850557759880367324737899543230964236075793803836681505341830234085916645018254802077494034192374795943842646995628159202976240062056210515402135541848134515310682083597262726144848553565581810398835298366047844697783709752045644585139781899867194375908009732768441226326742578374035702641853331184848133942547022994467044104110839385524350153371524889389922195352161320188747173559502660042414085060562646825227084161555634308044943186895287700829735144845591583132074322661495196520304922861889900238961757385088598720370932452393498487352396172631736317490505548971305874983611276277903182661807888463557247183448287587509604065191809528346092034481965069706308050839195694209892271140743977225475669389164461104796163148076039265339262004401995590470873299133199772610000428132803662156632316595193387304005403053902616985244820491004008305473272311624198688564978526185144801511084907932005487539686542190380054064105245103942460170255178069325478525132838625776288651335539719406352491370189323033690318758255836687251322817298594149575759794413885469769953256748064132316983924153973389879104761342684460553253592433715466081472799933779253997410720236369510271437608326550667962257876141015168616561405022912987579260188552448359453428314570071412675286966222087317450442209847851208528587165125560899554120339135068364897207450619153298026047386740780116593289019927842345780158733915793747456369083679841644744193681707416293574760230374223005475788892970473048927888394341178989789389366844410031205390350831887347066269149317987675407844866558637884305327833776759468413392782295549689485078378478755651497007976643858082032934862293639434321268857060729366716998895193485930705404914869606092927327204562772978901891521113403794196580612710700047751575008396344757347896150300034209627353425222904506925961748439316851579457786126756566946843762658835706580274704220789904698833684283735170767371213260065526619427881615479589284347980918032714367805607539118956854049034157436938595914850762750128876328314863420504806674154055725812500201862608241149211311670508163857730703829814509257896217178440539753457094632919949654319073757884922148279889025942613456555921484070464018686125904481820721285538701231536202990476804148252033868961594821156216706123681343898345034344569434198986213977527048346439323151323137435841481129219448310367191880656925155935008753263748341936346006017484261382579866091860661093045241131820382272628323742263086752499907859785383205628632229380981471934995155344088996506079500556506565443683432885095104656459936386779226742695593668692209595566190142256625014146216731900029663840673335131469998171770039084712942864881680875172654549669079354161362799523934111404231816572785359733982629532678323836037268382924366012458452418664765079074235058047028986219507873046062646402837443030238027558644976330920575550455062531450722369879447694697362234481669774225272148823899823637999884566675681927164677600682079626071205290175728955952535573967850791589242600255831361742469215823279316434567273750917581021093461484419303785151516841469410303522203275355341219804114205563503451263106791940201150859897289599436308761365618149583595935726992831329053724135215210187255707785281615238690895316291809570596059465673631331259613132229864084463303765477922646418887425392626247532706941105352875532083520765339404652446980955830475343025176953044767992007714791986744399057658173658240353073750899037943501110844499292752439006695480735144371725426655146846592990893937497512625149105709513564920717413687908109621700211852142039983940474509378395551419173861526628495474700640340184858076206324010457117019634399428395895058323427375179052459973289076016844422662549526395043294508082393625264456264658162789580631815709137561905572738704151316103727373007613803621958405726510420819637274961149687670081891225046209002181278671386244852429312118307857459220518375715146516708422328305724131674617233476380076670371892796864639007815528543477332906057408902496472316239870122121941722425731692900560634941638760022233029068158303624454754020882805005925578158947282011087381475235163317749143026168924569335465216047371781719402261471783153625429930957370704904753876046739252965510739872349994525359550717179570624853825595584849272763039715599906668297150163621690187289621958857580748121574983860503878325922258462359524221565666760379853481309077367974879021863805158066229344605728210391041405683412623989825176377476925133069461934677010816635131758046930243330285660360793085008940250895314940867407860927422419142393912191495458729827029229322366919571640807285520991585308967629582732442957947380536436368310221173430630428434643034905349713128313808957049754809252408380263418415646216832400813053626798842464938347676513742654140487170150057443882327377568629920846323726606812500731449475771153171839010163000196807343133840410518706762087049452125055712115857415032681517051542040519282917445906255778337113934262158804449662744466100413440661200370921924433166690453051747471004058143297154945540186521981999224230807067491471763162306868432759337235314330135262232719130606671836503581594366039811402171424802862974036581904365293845709545349114758993238529112027778886450851609476541007688098231816220161167030012677435792242260799135001567385190517127213720470609072714193963911381998196110585805844040657641177343627523441113480343664215017982110675595328406314936302171316975115509659271623210670165998352064736371016521070845702770797387405743573893359157293333897492615024524219030259732259522598315331684523225117494880565418745411302228847574939858164282140264939830938921083215967985559509756247945199770983086569935614518273960433846713832036974187125179260353093305136523214054124088082500734606475065000786501337201984868961250147957593822197225845871801028824075145785561009823665176286538106592157606251987444103113786211878403615535669067649931666985244210965647875622544620371468700045264783713861435406833433589033426114307532556254246150184047888892503377544472386653318249856659418748543921956626610434205150997643589420145115565964436454254073722268125961578706485122318273953454061829967127962862890484410440437661916140139694452245289839454838748174640811036291162876232265767226847278581022707273288159626464699045415093882004214168369914039545724608836031905926971985840931414835157214033010027352129166114718735126054650702614634035129935778917349739323128180702911488215985947956878445913065067742412593762637500845281747710959290748709433887824284271938171332762096526660422688052049735511055266659749738933853747821925306921934865293432082050778276112942861080217817705634223287504391963508024948078548309458609952818592002732557468318383181431149188247527701984869581293339977948826580526050704817651197396165904232150897429646674889603890772857905718621274838550904900594108878739989451215667267165430787475021324259915779016909434675117160705746593993919017717317907497035447631951364357165535651122903373951880157327559205337321683419447843005516428073741385391046304635979813716823148981551056537098758347008171225737943782765557933006883576934675601280888336341893512636830649712170804871464887548240760631679762933305145074238481236571940341263211391382079106263789972383056072241758816862627608682633420529408060417237559863719490185041555651732871790622906665336167782691554843394379686798537014860812039105035937249164255899066037980892435400035444015069187173192229990910713215800342365788217153427564118937393693833002003550785669830763001192566866621620643534067415072237858742374326943791067437281800912184383373934458874517777252578738683658760893648917241680436417814807619341315073562167898863565950685852368657562628540442003680877861618727896427101825625674617021196549315399083412540223351953082275826694578556626637295490765651755058801518163735441285332411947911802967268875614518591679473192640805383375587842301379671277980303668625773905350502666133935963834334802377014770619578795709391625226243638291471020035259536624866825306260213643129174912944120433094629175379353578741251520866651345647842360776383537772961101091200881380516069085820380608434361445609004272952582843446595335472330946579679461281111236714887665639000097319554563315792629771326997051823900492263436789484247483168166255768603938899003450531156761087510498661125529371960277225044956286191732025831126308926101473847970458828543561891417256491496781726400760767107491959249449071634543525655055160608881732569788019164134821123321542951123606509458696350181446483588492336602729837468372762545865710168905200288299283480601651485268915228241686972502091053999703900614252804237918912258228209169957917616316767552217153170846014525173306715907051307798139456378650664573516523658538335926073920243692212014533574780252510075895750841441128597770147767033486285165896097944455125132097856475892334766731506435217532069780354592748395790397516707547300287649604428298555168875130913155389263566284487231433743609999981066276424659204515485931733464111192627059861043717099843995242151371391769406930928569459117704686503607989465208246868178938370850709811670230681731014568153408890774433693445380123690497967309535048955775830010328783333348587990335393964766488750149786193092290973856486236457362675971670897385363560082763899353812056248321024874661167558675121314605841937994910237793593596799138046111903521233337088164570853387056762164783274995556275849436186706661371687720839384113737785579403403762047346286264132560009270438202055384389660299423088185575957150940239985631547821185366392103961522850711638040958395475698088506328742859936832527040372555576916555044696510493386760489604408290272384398224433527419457160617314960856781430993208177312657758139098855447568326593579656978485774916179875776280581406756103255483366169008105278728976193005282067625534658380204192091634371590304972311355513318130922541025801444306160228817848553960414661011577667019819864577691388880461291608442969013591717063496353167645920687170490618542512894454306026143082018152746870998104262129774440002627552425116497211310227345311858412790002643816536915216285550041031509745646982764374065424873394931626167980263760684265060770105237439071626962486062205718039799941786129570585302674569258087209628396728999935961861095687426433707766409398910480889378900989299164488671468676391575931797882017368053116036226132808207640598709906367125473642402623427845694273831206025122273723598178466904612206162648525332962728497006282526991199959724980295898331590734407105530713020911739146468926207071608729771738961038210710814304527255582121959751792844871391696938473741758689190978894751493937412470693398886417990129849019496712465923159625049712410371475495371580768330347873288083863733260499236831161787842536834358745768480113590029471905028897878618004916204991775413013417523637494571146007828567261834831272370320422080990627994631940722480248694388523037800577866311519584098133678157372910141066004930455141284055149334773121661698538349357242254113832825839174771360326135382854040590009979699464446416203210152924238341377525803677629297202799913979459510921993778796701852867083764677538192370064931247788752615498982558355329598329157951944204214817307466404804472028420034149679122848408897963804523207785529176561733101002117618755500768302417129226381070714073165221472501456015614061877858314552556481948509037007062655567918452883872713191026618878242997659764547240946426056395952865008728787647725281546932548256062832027991029055311604600978339893931472472267939834816705391648977657161265102426843261063804048030196192436966893793346148401074376842667761529271206515897460027222553399625765630271181209292099055810863881757856115411822558866983441358680766275927184068426111052982851534685213073445112097441870320744535282118645509942534316406990293765691913632769913436487706185947653337870066154005576214454348819599462080970739207877749926944385043491821191546102902083438005395287053326834844230232554007416463361509983073462084045975005280276471670992039840002975511066630585174999226571564609857765510597641087318548574759777813739824764161380753694156932767115142762251646749424497483914657777779493547412641398932706854272706206196461425017392102644811513662246411339973812936589757503091047733712468234829204042129960609310805147327803123818471554463249720865419241773293541792523370415039447154209627812928203754334173242523576437899167501552559922997305805774112632511764663437817311493450036639518094052136386557723331345862089278636529212349882493447403327695339924301208797565018857957932925469045336835274468037072664355173050938151429124180513222252585299287482127817496211782738106415677021609525349101067753378028921976481215424952723368599222427509955216538355515843865222202436168888156083504100626481149866072857072310075097221528408890741862634340512535988809689968913102838884238848940504897365233066081266397633673645551463072296424327322747981034561497645686016869779378331895290214694051505037983652823066258561092953052975530644080245749924095807222875012584607739631296850494155985378108795025827792313755612224808180215164183460633410009390772652334458190734893040760203522613331578874447051519771352540240615067058004419090219244415779486772493745134569495516982942616799522929119648508562360287407457692810718246951480369365662095893477330592101853803029675787663610744459490670753856959329631107717644550353371116497118847934601947634244463203041013581892985644775607398364467307301644242433079614640116973487512896091055251437975970469860039798276197972919364178192218644282707485989588524036137326981842623589749007010602917461050151494924475065336055388372750677450019562511398379313824923918734855687945516156785417427158514954771211804612283584860126248266844341360990376241510343247458753550297251532229972294435188842327861368498999412513322581993285669360849417087371304593139288641277826801408268824656027773450923833565035015853778536486222678749767120953898556259259746123288440078891145805914729869445770228351909579774443521850255714664081247818128780589432500715331826447628188674757252358426511679580606397133913727962929821190210852444949335142969667235383606104114670314924833393204879189577079283987413019824270130369577164061475405290469941004281834830014781116012167357744313096003290806687731768754295638367193085979155929277555623815877611314206419188525001520162274487986166229930063929182464193789468243350912007577742677684624072544394743905745452484040675604875178918307332547609193433773121223982461508084242759739556720581776832715828909695716429453662902985069566874006356541829271119652570274387152552911113448750538287424105229014796768577869903081291001219393328890702521950643543738592219966442978305065820978832847460054879027218937733497486135627976042771915737870137254230462174517312369791698711797349116472183573941395446302324062415115022977322271307358035723964277198036440566893865310855863053326480307878951737932780088854951477420107783811462632156769152113654169418859402766028561674792324338150196123224623328782528434759026131083435421722876241885306287227521800608063424007198918187808814083084730721915098500968070799421129008174185626803863480962448065796522820454413997442509588114805363856064905741789953769643670345517912900567299643263372106054558577253060557537986305913653656188087118018582968580540029102966773803722277153394515167985014074403458447511869608523087173015698881397208243959974497198961388538196688246496080420844157045445293099767045634239552310550044172573844976090314710067435101623169095114504591307667095798583628574232482677786873354827563608507047542098710042697415364878141716101137774627620804285728525841091665008738981033424776565891616329951590229217764587335689363027037694270109413905032965873672704692939138215235486261391276406383979152268921784549774062398463166765675683292794257939510163461632468082741872210805013448773335592793784944453339858171662996621538044815490116134564797662909066027503486621533082834243676567441329591521155308361535300130917382372824034942504759943276385832148890526247700655725030724252517193891389400254643787253537597862346997808045428557677095703379001560185053887528631050999688719707537281500238889688215097115487354000695174530346489367838222111473143945801109533452061768418224435132087877441461865815009246574949764312356393426017968830808260476326133548744527915004439031086297968311615336507867657212964150846291212010478535176195051262808409139916906503008041525569859658313391342320204238549026146029234159661983792848584995749515861210215153949274459472603000336831206406664302544344339265789225395011650266723218418829138552570989465295463954534259038556531029481700673181929824521956323458122360245266099284238285361576938084683479523724048240810571594737665660239309315909485018716819866991755077735657781170810417123759894373520355606797958684248523020801531480156087988844214917683389605698628846584752257254402382072679481715521915454424597607351424737873045358432064268305435368762144786177455718764396125011110477050247154535441084419684024513767587905638455166428961933023079839687793859772566490568766186000467886410399359241663926363049478449783149010935691271234162867228076757450217237233297933869883665254275868245633736312279660515717620907792525776455158278527275891014766345810227569996320849962198905491795603552533607737177730209500244227820833547993617198403179381069679175426006996832829903374335999545655994828807402133973364429297889177051325341218719376890770734034915322117129904166036841007515624842412868607731583279514039783144627515026124257034380670378394756384528175908565586618083228493665189410267534962932229684128776281794225798378295394324196989326817818444768415262083091247940061921382106200753209226965068037242374116624525699377911604114616100599082479242632638750412489237339063903073579006852299964967805501656910456412401780848398395069041440882845971490493937592336928135755797981460128946890314701133227639873427453877816609737359170326763661505514259720103595151169642117927621376744042824859270445164608845088772536545413431872222973793215583004356407187014794792406613748969365751828342119311851878423431803210904430860596981921639339924064510624340662790176433286630501477122450106327885633617785010984597933380838701434786583146103180445473319558344157494616803038732550170665558919316509329955087242957265301487865149625662410823426324009961037204547081637486622181535581364332645211848690672345679068486994112390794061229808115744550294220621693025942928641064818133491242280629709489554869494634252186261468032421946162470147848412347536324967083347877916560046216737467432482544502706924799783322708321097106474162214695794668927845686187788962103311792564711240537266142846272782446480500988683196054765679105222876901108951299296292882065964531764852080713586793975529411638476834174254116187912724120691314318969187594283702835489599569710169306030628027710588031581174771147312226770889074840673608786344797844960161809543738271754017279933751624776706643981980143767734066408446403600249626547072931629598050930327517188746940204127813923890780915839634489266574798105447919260550273686004381488692371982060508892705028802443186448133238224119096785157126294983344923139386377529837865964586052057114558373184605063002754353499344566737927821492541489399498679162739943879438599835807726665610724075969972218397952144653067249559687463445469449631223812747533858202671362137959672288404783412465449407160056456142950046697031148400603519498168651493837431755550973723831226287579560443425635042390679092362984080821744811704221658206389204736604107123054777296830408573518284412462177082084183319369077417958077125432387726470276933404091832259492650560982328811489932824441988146191096326396754101363931428266091923121351204223731566237746888006933768460520633368161188480250932198476342524025618029576962268654238347513645168137561117115941923028611894231573445593557177643684728292692618696400654572799043580143527008664636154779747523625184198164777809291877772591749062038150816687413264702815493897764016086155814762991497636549492021558262048917405250716384430131442383965232878073706963997807377827937743120103874022510161552061457572557935414367542788862885587398414466288009413357617584547405432305143953566368713462975730880296623069605629691263303703672879293932959761906604790866092742817765261979722582433541255171040422417835826120279023669768660908995245392077630525705649109558822874432897905588349207413690209840137404777922877896315702008128567469788246618839031781180157274200852991998550606657810837374305193696530094191138683231208900019066210862361182938023208434486459291677652383319371195040230452949271564371297338624214708784290036584451269707615860334590798785828202008544985930185418202721098764676809512464908672778854118695425259950568889160786070230091496975806887746929863556868875489618765406014271281172260023589899051488503120487859058986365188035787014050902510085214862069279457932533547079464431276021826787315735790437085199315573220671036242851703283588361952789005593957055176088225667609112928083332790976625879473191439082995528249282610116444637026007531882613725722513311426975399794063384140167384944975798766828030598140442717030356796127978624719362507529992081188060019095071916095195015560665477597057264061994296157541550369554409874982571321446397506601803899094074302774784363725078203695656650287741084538977760703288497758776748275003005000325929423903831181530441868830124499647432295264884591232499356311875358980300451064451959462740889894238021296265972540724649773343525071330519895602717324695415311314659542805799426447230906139242798445848100138355732386639497479070283756611948701804603657112726307234864946862891134222841309497979564773110830813499252389906143016860280109778394017657817377615263159502263984879280226822155968169394523062859948403114321635331558266971356069628907536407309624196320269701290438536958404657606173912644892720871264935274001748030666845635079281904921109679576602590957025519761208421211323687723304383902393386834207417678373726279840228479622597528066500859570794470368002028163165658122341813562144214006804608625517471213036013456012505907413872650121509882593137878400472919841563423795399668437005430394877553549931697069272143631781855836500548385702701031100582006344439130839014444240190473773282364808748133931523990545238152592991365214849458461886755261599770922727366280883003165972655155531690334245250561756461062268189317511543436408486754300596046547068901946209480629939852811859367248079408601715603347230224187736039800587985163455976134300502245683854398523249337493515232782582613609930315189916203616193977353297503320099922016365109694940429365602046221341189658389812812701012327968318602975415792415550571229297631651787778785328107313413640576150462488277858702834253454217990602131536710038186697880116536489490989207898884445591770792859333997284611612921926119273575923313712260215011251132904518515636988765245647154333583045324175739821365944922677511743243707695406326659125585579178263888082891743407194498640752923635036423913347984458338147518947053374150722584738692956082929123033826637943169833965166503894786321206826269243593036391858103885205795841881244798106385445808552472489549612640119571695631164741447463726055621782177926433988858082832499268113618525413658581813804166656443805002350788243522753142959471381641458235169171147588845596520667022353383893792065555590305905230967858632475716954473116528231961708871127348090054873519874784658733588904559654290126211023779144590255941392526322486829468358104458580300414086776551123981190330124637582606441476646092210595300074027191884998109438836000685069675814791594810089471088440553773083790240780412284659871060438821875009031103390371531030103466178111386006108884624426893182520487509466009811752189020871148800170418038994799064149693782990327685825436843015928984040630174063555971297374875720646159235319581566031172648777039693961455420382508194305823660899601463660264482776681870150089008885229138994860590060866821437013280399944379697512741613987806404229901412502782515361046128100703187499747085706451050162044264456476843217962765278111831289276462936050412099243689418187802231693003162155700344363449487194797447237800097047585762422693093266338397773295191595476091754000100765754121641679028111511052729574313670410434559475333873866938851462553871359880498748430437107717847578899535060837492801410669508949518576581506650808173101330672345225284745668949786137225038246834203597832708244040866070105599331617967475644340173426088920537654561637717333700653108957947938648062553604186223136353822204928135322506107698027644807879443288512987986647174453573026942565976755584519336925028135436869808515979862357747214506881405809479259829574145624862547408620152778925698517373817933441258916182882287661055201047259929794185735434586103347191089601833329636772499382359838799434496173930004959661164399825334105629930177601944449422819498051910369938876940084514032001068609583517460755804696657100357515443098676151062986733162932359753157032123678547091767714953571180011618187491363533365571737107610951314999439620225489822265245099249084131525347353454550660597557789776943325136021170319084263562438225156324951226701820136228448563084825787517734397835362370100004541217018051634756358677462883319416337772117646317806141725970150554826770362635526429272450193009071327253494668752028578105475536811356526192763070468774865384832809972064043490436576583747559428502105355605275066267258277967181403654072705349772864533781050638902796918663722124405358041387872125240734608343854380795556957987954643109794232721552042033712427776068422039608194020302205010423317424988931165633823009542850846782306508642925155888721575951081606583234914452240600571399158124211377314738502559258565433489231590312336822643830190200735938479582943838283220873667462952879526418931019185048920801274277726547101915421240892079871444161569126945694707446500766994470903270013547063511971260635837135240628050580246202830479262163208442083970176922697330321888435122934345420949936974195674960596316537742407298493524699269729743767782712374601725836540960323786743999144057890884184303383067495305449822104115363500815003195084201283743909917871315880257217346300760394285466375815948887775518837859562452883077420661400067735910252246126044149585458811838140872712067805522425584664693416507608608306132337150864249012223923619109217416044829608627834977483527342482983269575581523305819663293621407594649661046852550539559050839866640556557566059789226217152080858817001934781498877249189457569352383151124426445281309238945682568642398240920198779035877295352414208050078271050175564985078428007152983831119433970840621702874740592167547083346373046381332549531757124575431740038869539172891334764759497117639929542837128107956650700378125061405441112525636560717203830378448997560818116379590314898362211632012759445231569403393786748631907612410664649367336648973603543531590512943583672191386480634332037670388972145510837435139856647723902816596101450413851821463505590090310125545036130042130707343568991900450482648215763472484348079401632758807038395971394480971239186244642343395333609481034470736899067630047452001655754930303140495949620683758132711268632911398307846165282708290017749424708796199436786262447154324976138433650326647811463055833532582294541850982304146022369171733625656900234570656764638657827220660969442309280734354051828552028901138539896296260155099895718720377204304528492527305952506163502141433932447216798071011538021351269530960432379445968084202837125339455742574614653975067299801909324644287482143967131242028154078226067157499450712637120870269693282295187736266738159204754607645012829677304219034334958739101502128221754404295723728037001236577303310045901586019226504642725103910064971921118197244429253627103665742740924540345172060201238805460798557262117488478001875495206556829564362992224685737075328434817292785519496370375306695208182603996864442665639214613645817987531859895243748267892832938474259142016909936511273821523388060044143966692990025434070615553115301164850451356906440375975311107670809684586092492498439222126441846552600898306885178977761182922926285651209156716845517692625635077670247179825358862646201454577767833265627724313745042547817087097552416878352637209099612052971098158054723209469182022051155120349045255690017323831533687160070633554140296557110396453991406314805999943771323838673965216512288395666386847522340201676908089817190027894663786593822268341985104211898609581091734072630964281071896607597302631650276084045309200259187707367027815166600129681606046336391016463214977509394976687035286229047908842646139691686613994689531223951681552792565636998558403893915600285057490751319606151495020885872565430052141449825202913090983760829114216393417029484022893458139867431648476564582822862698669531237321989612546610688415743102396294776534254573020090487554753608321759985698898496759556519548958468802949159402991746810401868069413691423481613784298472752267418552676289747919225658110594708873112112819331869057753477824565562424863248908845455893890738187719204911010999441107177726351601190962553541515912790413312965868625877537687764996691794174780818453702889390529147587555058318841624966414537604185837908939571423445073564327507156521221783374964297205033768607109751872061962027094042523118776125687025177927942255396449485956277319496017252899460785221209291581472905483502162433790701061076683983327224906817143921735628651991051837371276864296815100632610459684017447348931769078133560227470318576801794833716619805875463983198361134393759330723986849642216919975728374220448011720014738524563952816730788591920328325828977463956257878642870953686600100745365781087606111679164941103182711261306380383810219750264719751666614040800062963587431184520949262855959528609062072333031436779891501461277122703255041475024951788853273943663729658542469871152233763202025008672144707620697799721692237193382916944987487154315383199364363837644258984365741834237276687125498082696218487199694358734386975921632292872686001332930644248749735882282511916258693561096557929036344455763505763413185840698276722066900135179890439578186572034053376099522134853748409008974154786860978223304378285105769268553521856011478389357949699827244459285956650800569044324322658513358113099716146375312588634536422892999194754930151074714303471574053183688404729435394726551224234762222716503681221832329403439287173208010375191247205009661500151798606802198289420781651319588567371345265145423814383376161769330452769523817854227984553419742445271256379541909010376907059654109327642524989568262233600387224556686885419810218565521751382916765907850283454554493081992399739329719591931707131701935162395809184794845955593590329935069147932541494167305670816176872559751301254195340690148498089267768753917925204893515887976894528499135822258845142573703864434397086279451241493416649696443129649674781405434517636380797845979395170433851649898901691670013321136081962352713180604361882542543176223041951377617894950139495873958435446161860062537791905225382279197916134937267267770027699964182664693779562288010612499898937675904995046763772918324746768177521348775285767671781504375627918951795554867050912695742212406445696140758643887754501752386187539329232566582892346549179699493066913173904722520042129351185439115554652408064186618499519901311805030659385338141926631456043787321269556478864967080534463143972108690869868871018717089397286928939628426455926269375125042675425789491374224436347313157965249542168202025338245064755542413082987875595462357937327821619106829585040064661328483411942513895209308505036600729386037780642517927727466517413084769570578609670754446612858605249801423231109579714702280060206084702604481401110105243689780032045659151520770302687145120040862373062651636390595273436983144262928953766900670019074220154287832591195146129248175020668956725349493896839617114224780383900096097102337530157376835828401396139765325683025639526556677657647672345687416631922111118325421706075822279297637847301888132163726943253603507873626601573914327550186910676792977612537285358705193978414191828818841200138096911181305457484288696883672663105560845015733474098519309426044780533882811704731732713725728829502756357348384396310751462930764233956087410984586128280980711099444964189156177269702516408451449916214995984161827777148509145250350184976533926187859210787731936461660714319206385253280368208986345018788989539433526705274498882556755714607671573649700919028795338511265077550784832782004914171592311012439935473547218746469818504689681039209394632536244066078851861812905776721361164706797306555184610758863810594142947738689929968838009578055762339675262408295503820215884996208790371022600941281338241064949110691326796563543268415481429876804800851160019481002681388030253636754554347500141163516237348414803155840230183651515192790492963878761706119084918148505709919646260430842557710486761244288851768524472566464786031406168379597556083484210497136561826443847559767907400156061866951494101602047251028991896875089295380520137377003237246909152544213426135467293891199945832017027265770543103238412846149359846993087973259844190576315687854257639173268906903491452732544351886464641067949972429676246738892198052461800877974179533840852442421708994974599853936109301043981414193576292383131694189858938193972176934981750679890539839382340744479951475009375470564485267621847410447703177397619027949888085257254679004815111592718806524934037353064816911111442425108462731264221444240451680431749904000362157364715254638092058803689863732816294621018097671232744335018998213231614024462354517679880521938242174581463533565974697522153802974081081665663795975416391544584276637588570654390708543287663845988372515421060030876383515817391655022877138881087234175962748644404949418431128963801879839510552695613806192106561418787996025333650248985374361505460470631688508550374616563588708208835974071710407085365490935793118825253680088252734242517338276408762428226344958745329816595863331814823118376648346423462158240542015237902701265168718998736739335010142657546414368125254097695356084063839923803200542391656861560299865002797868836935684815391662574734772540751256135084278153144001331609481696791820835289979376191291317418820403287671747627772647843133678367822651506915114600607706754527967520552638658445564236608459677059838240320544515588494667810604345576839997898837399234136108789081422892571934459464553214127515927076314693578079272245608335345352300722733072730729282421713173642910144085660380778132677376753015925682430190945732863513655215300668010055300484364162749309013243809109614134953240597648695757565546577243185849203655114735326753409529693738752154061453590056093830621318074349402049615645344902730276324708989298379558023816232359501943929388057302655824117374968288327082960777972206170282028680238704541506889369855811724421446148535192986863186275351141331958756680944243229889298405618270993458201635760737475357464293670862525927206884818994765275587275979299709718557635093102937027016149760558255276596843350759964097309246651598728293943993309393056132342956666017864646458525848470829365221810111648341623987004376749147589397940813219432491595427892652152576352856694719415089892601441314006678031873849474094198473229807300378912381101660335637071470416262797532389277202426460531576981418812113832281746151441475008741752482573703960526862378139527780481221907817459190303287471956280103488560617063443410285147125588811767687654385511711060845139913258764754051583959674291086282179532671301842505273817246789215488296133182074208596402693409006856050501699184559521703434679493185652640098443408802575429526884011845246396022885328026808792588650706758230557380964615503474515779744569354142420850814380357069233035555311532299971668363585985399674547282624008129670241038453195703336199922641505043722845115740043457678606825650630020102115589484820473893287572156410195318583626638657506629348380668194321131204521332345349220621335728374849753538414253083680981578972260279560511587477369194373946840302559789283663968239374391623850003930830297879477181866618303568871810491781915287171977628035721056470443961462338323297631609428043688744847349646339451411262738108900051408650375790732422228036332814571936860317909396312905349569299802801103141060001674003090079828359187001057784017714428966393550945114516998583285420777060336371443905440214036813519574316863968430624573585990940127421577402398071602303127759772754680906000843060454715996293220573476646321554983809589092910263208653861712828019846430924224180366773034392687593908862482403386381213965859242093321599941339627518223915132955240091046238166285071565156262616540299402992290681191200905468500221372835126782962777218013510634826312164298245089465036190981736042256116711683502028815711805912504536287034483789294724938316464716619064550440446727693160968222835208030996431025680180706622920943059770598283962132784585939607715872026917714417005395541742631419907300424485376070243744079546368386124504808618891928505353333598782077906386948769161971215873370288463349957906871760019520858206269780482733625912889268073908383706820793779560447197024766914536525091569094635291645468548893440022533607502941238616491621001725441947053142111977309754657182334038969444460781512807437733422092002322291934981263177848491665086100768633326774550562963005960464263453870847567642822575381326509653628382375393082598747303788442714663741974762851725490505980978792338337371804188162204071629915516548292443829203698500699950546066313554525922662204752335557607946875541871957313362086314458259931399246925959559651823300922327091977253842689645846462578055359582517043648240705731702568162208567683550408481571625784035130251722051148643126616997390058018806388510925439786281696523508871089192438699035746041719927543055012727437563382191094694286704916638018245636707963966932754282590611166693170019563225825041059314928268306096482958825276833455017663114063434913899283075918187278971727683310589949703499527788898347376914220213080076736465488725437848976144903490782363695848294237431725925481679984992238972791621372168995456569744278022379135647678789139617866680442576693549591052551947291201503670868953892862394237020117204447532580777887773054565049329896988439654102228880146914857298618388260462846110116995349377097767853688047552934018351932944740981525371318004571886369830364162418820995542507793593486693229194084569499463571299121999145395487269599309460433700116427234703842760214566213480367057233008743656888697910599746393244989083420911071683184152923542882053982984430415607339012181876836961017506249283453377452555992813264728801458956466952585763378810711682452176506514320462615345782858753225018487638895501469619661862333882411122876891289751399713063527081965072044313751732267867872639586509224956707175514042097774936954272370244781807379788882791968184043125426014887447714218963529684233114075793665493455027872041797759393959788389203567890559773274157681354213985492555433869344856555826116772791235807779955917159798915011000489203163454284983576035697031142780768032235446341158164731581379692791591316780758130893322339510771290815644679067415614542800631834345028987811404936953800098140674589002595160997538288618373639261499812761448467082151381879114217798596109758717992876146975595047402868509083251300961145929702491088988522834551792756104648580235281877338560291054711624900055563615599733450966450811965979120984125410115430995308944159155893673343979522366678604466322486213524104207520326401045022551488554623058738258916133037246453178122988850939244646472690165543947933923228765717348289756528960588794016814325580692318903389843524144570351602115516475256640977083330461716094310670867840695342919731027788011995208560469200263877599568301020216196923542330791709659917809439923885930833093513395239421650166107698183165314762761379018648049164883622015546576791233285617338427820421592910742219045673487479922456539742778381671045067062207155293085618800484464000133204613002629970768511263459373618090687028935965924603345773011008664189081186921699996553717034172462733005506085313467967922972784379282152492388473696592762648320410690541570351822219522257009520529126823478656778927884356119900164483378329934893814212968931160966482301890765277123412930561272901668014804287958834196645147873934480427124432611905036166411298759827448743362044819204533465927142861549102658130263582965382190883416140284289950790708018826615568262640902275069882003331814756455666726581105177322870632993017323894263200369580142364369608433207606553150685503703032729525708446972085538266924946679598683450904345511825407106245412275000049915077458143844605665180640024769975766427228063717112502832100197390839252582984892540369982608432109387480177126571209279508079288397112548340180345031645760252086683843235048075034215245762078939094469020925331358902218818627713593214046640697070341831980679021844983257109528490910586137628127316094857084008130991726376039436228717582255066219696638613294036036708694633475489256554960775611662959719293357055104157412592066300389853916381735088914437888824109283880556259022084639189451878277830983968040286154597822582525595927615249465246770303040164900420473854124800837245845549298506050185569229726674287948839463050625583227080481652654596716910813878559253288936590352058568007178672773117385373305520335760821639577679304157906046268180442145671490425394291751402725721654666436046856340846860917644727723449830325226037936232483681003428254440210698469903540157046336809007927293093335171811259426337758375465755650494803981900248160097423194194424497990593458792751268828461550678907845550760082026847870984384389468546323208483330356198486192146452271140078124426354867908569709002205196133372944884632034432294096902140383542716177508102228207615049004198057791996126014631378107245194240134277282945521397282764513435778275960375248744602804688786691386432182932683489221395342539054154936738946383447114175479672106743923046945316611498967921552945309557084208925093099681421854256722647412131797009818518649524170889837005694743915346382696805972338892448014678048612606049138463040472314514463964359222242613104192907739121207937673072800327624840173234747047596068483905741435408085326795716719302332861197583451597538904362957566921445170073087983824580538266477824811962571913596975668231077528333423888699501161875562421080847485734563227968761309713356144811021501370635667538046215285078197205115092967956239961962001524131398703364691446699239323789001267231067108892944161077668879529794547125835183363000232524630775585642362672344515012214347488244522371458079580969196590499477453781203667553694605008400582740104748734825422755195071529619240186525011290229935038465401998148485888366565646208981338472282592479725957350573295322734397177163360176964398190762759987160318253441681156185935483736386700393102804753332787195816945244848216115205455057782577158143304543214120160117229870038534247979931964515542434158415324109865454407937796625394478195523194832181707258258569457311649352879782505592461564270036126620593320928536529506712765748084326008230380952807013000434546625859248638133072557978078055043717117942633145568364232490955308285470281235480732809007936572972626058465481757069060177093314318698201288334924928528864336940117815588731118546098185837051506138009559405636860889886834039769723676802784643284140643839239780301834099257857129553741855277020198339711774702148363777893037871990115084155923377243178044478167095482002237883302870003534516338218621955445710462607844816521137267680329934955442662419161362610438437693307129257520521357258850284613062164958152853861705404721440884107221060259027616429163757775061436485186411184544346869801872102266331537365444581962582630926926154204258542194059966801286455169077309168326483984525730779100925932559224014292748095231081567650746011481392428533213038687201631016479057799578397354013600022338584720671972922761420080696570052173077859994258798172718623367738227441421555178985970941664042257918066914387497590203705920745982484078872218578448076719609917599380859568288269660979754835640676060907477752901925687114276428967400901870693440146563363823528348115086444988442379773877770136695709835176117836472558344929822862563949950102970487875638056009748037397078632997946271749923341905626314094561189836534379361223712470762810103605003586582952233772263593271606944485915843633740020337701126261732204861435508297469770638003954541010957492257130096873462572064239410423521759236053358237852633653825436236616534464299477137630565594044465379793741263650211954904483975636851504382566095240700518905465576070399191550940593308309424246327068867839607676492253467769530873991712076483013858204223982918974332761256910799580134299898974840834391978848581354326223973484704587037850078524571526067656882495617670609153870746262338653613070638206722919901208875052432464018848637328769378564929739724872380849929798082422428734969111937116476477100573865382873817489601891116751153550633275830346992260267629424580123538474840697167015757708739155749487818694588174000845541888276349014583808469770264489802748200799394888616183555829635269489221195753159329316204490690828218655998864186549378324481195722743243076221514008130622216800821125669199947248250750536916012779660853628321413982161768935174455840632596946185849986862433521165347330743816928262069971658083768301679701871384917480915203086952150621623122004807170328684181934794707453044630287128184192179456714009588534837625875378562229867113307737434439601496577482669933312469282339825394873297406438124473528430526518048345218113784525731935235644064614139934064144527079855941967654961953709763296482412196105958405251750559585290001155508783292941821950056267792828213318460265612043498814809112629904970621816880752779703551335807892731360974234527372543837537878828515404027599672480321017242428853000834625627264289876165891212258674669015572781849168669218840773801319850457541139883117403295590223818814535412872151696843459955472211415171444047474940318152592215994611119340254790232939224717820294909712777123312182023435050421741986075873318229818253444941528040154956805741512396957354139116910232419580801001626814666231411852713991353482287302699056208620355719560240394849767876369882981763066010677239950345308138801050224544680785240817595024064330984169192405853346626731186348011053972188157192481717972721343864488602507221202537001162059931650014956614949961695461743488060663737986763151287679677710179881918947676614347008286224658166613179649055753998265147791164969544355925399504171132792330348055647362467737046275003802549804963401218311522708449045160817549087065674633737571081667901822613405370662059336089058818418025126887370180933852417308567849253627308861179594871942358455031383855188890031390284455312428334552801491239672145584545114310049064537985523603754895823578692876018604711847710154070451981117089666435943480869508263452004038539294164660976707530845344423887872832330416016762722351960612509499796305284586066778847265940405357456660185316644539174879275899889896278660924465375802016250888892688898977123592416295623801995951406795769566953717085329528118689974486176412130092958323909124857817539140533588355427558147358503783041614318986256972034988524365389983283971795471989889425009239884571100239715592723070046458980441193454400066945486532776879733534329005570867445445993619479465330231147262053691600720290178101428873963626404739150837700428778647177898834294708856815339489718642065460646698692297399210326669503939077544760072721748768698725913822852276578442344867323096677063688727930716323083403055079119486273888477684680312351803672139192011070169898778980075380926012203213463479234783060317804505801794666577650762299502685759679501121813318082890481257055570060609770418595584222509959417719750019792641194476555421057282177009631578859166778529115943601283075426452905981190660450780131441148884388365626742852440505140117650306959171831281190008546509786512069897370419935021587914599200378206625684413901815825326227361042220564035227157779574189966976313417227366461711720966859053738546141119251461763749661218768509808558086276464296951731642981192937993211653465277085514687993937895371310480942105827403625211287877932642894012234378828881481402055551073064072164379814981610028126036418198147865770607638567413064142170158171553442335647470800269788443498437187033792431546540355820568392462464479071012301841080051376703823632540606065054827103216620136454530214398327838709883882906781306693849214285940588209287707717631313160465403196112717077219077204259591652824498407191561904227488250063258542579411161880819847952930344842742669285179361194196252012607951671018348257238234204138784107009558837012992703923562355368115350886363897522651042031977235030027057803350552443039048972280005073909324867043572000411388533653113231393103029436143715111661641865586947268138175920582633490843444656349370815241341426073233658440779373084705089755581991333364739809079514088519181572027334360045632410765234143090365329520622323347359966225895917797187951883256821721694499429097791353831718303680395108036729065110925017520275591469329270882458204052179476528740525217170457426311028306080124738025880114364640125013152170793456024464011198766207035977083929311542997651863863426895836751581915859035513804236835886270881185894283153661057487370272959665799683207723380552846854966095112663015924775871439046015049744272617560070486840113515467647476199480702728645050939030297454218772614442569620896232503963866340820884116155552257070829329943623863298666542741492076083699933857019804594621405438829402895811957293539923944009674299015564427437465380570022029951958105452402644510900635817250245305032511371877765773767031837670343681328271326234664481749274727938331054619053178553077270889955215132341808230923467945148392851928153970630651841540512887495717442834300153347002895410389960896789527557649780875770824839640883200714740127682247587151185199571555275562324786009765525788891270922090028295519618989669753434686086422743394181294014233698837465341511624473147690974946505255303750592040403383101136865980290968417077844576719971906344704344769570563735656155777227859065043765944805285867206791322551264155561959646343311120983385199402122527405666911909725184600644678370319432127487203926173287393721768625866969041084255244017743798358803076968405462944590284383143715063542898768767163101344319330110956010625042456839842092940546215262398615081681197551871841927183134902721577668805727669124551529559154515782080328480556459397378059643264624197518308134760762448034636545959940447223214416906294723778574231911992175324874532487904009973052377995582724941616979260852961203147013809150899671937112267873641827192016190978059095344743386415130680786584592454141925358454395090416869486844938528223653449338724525905934525734806946992077636287576239708257924680379008982379922158930571463334433873754611835636623567617566595129034742685211404116109882474348842055081646984295407646797455706534575182851790661280464682904420196966050656695400980117427963022560370578920690043292299217743964771370939600620452988725838212086120178632333275038796958876430802204780712487293425640102348468114696110430962552115555551844900136601017497270445772671167773312493024640452274781502492991233434282375105549248040048696875859133235353100840911778764136693421551352518073066323415423448889546146569625680205395124063519236458716265804371994001959510898978546423081104478630161244514756953024496997138126156771343458625497190322749003583488229758765510793113723775616817019448394435553980667489995569245350031314027667522237408821099180171357074966234094044003327001415608814227005134249883506165213507559606604851477555048496991132237211312423607085509450280392756778369247012643579918035333220460277113961250081058919792420653990738780932886306749448210902645682039167898888832947698958927473077061693687264218428839367519193374140216638434127980120163913676740734160945299762063229696879797281310341754867725359770585056090811981832575179921558061739167313634437041961765668147124361968961707359607988825240830683906896018358545314429810411169807830394878616326397953737585782603819186702752458746566412402138881899702801354998922959404865697656498051414754527296380976520884975962705884119908050593357367052946779901640969272585387982728271232073447402058917689300593929114273070048002465363784495053363977474497485089780485406053454483498261585726449322781660515111997804084267121695132029839734867226715579476826254781781133253405574599036776938629161678640598362853277980918881959196442325765958186434566761295664548539981562480590734002423225838852594343253111314698458841213594454815373249853639008852377904932250039840798370807963280722841660858712081700787449975706035159107141937057044100514661487836796244335397093280224503747085102913805675613988678249399510764528603670211319880438559472756472379708477608461389734206276727270722721384358898113641372382961635614026769152892509018323095804831674917472674450394095351958055095052167557303448329929853874055326239368752426334651049551924172355483881055737519618635089955648343441999218411286266675955424514796344869523378230165649762763263884996645977479862947608268747987636765658709243037120075560939089206391684880282582086354961299972283622590689330595059189198118528983349411849440790913473835721141881460941278874010646031088754116467141784425719059580737889117738349223976743073884254062310552170315450912720136054576605980685188456843852369902170548345397550284829427566317423990354893926526690033161987219663347521368170710516053963917604400763910592696589870856732815756550512982545245480398161761283029341047969973495826210995612952724474607173476802008675140364284732573706062831486356579381692850825048437685399475234222007333230900406476942318319072650357501140060635162003561134180029908628162950372362818156375959137780640487239857982509089274360713330913413817926790685386806554811321535874173455396145973488648039268739972578503903522763227100553755335644115196015794168615545278080583451503331872720709478576244544352244519506087689927753851032001209945259234705868894309754350612350515706623092375698738061988748161003271818970559060131793814641121019620809433500947271627884203483678934353949645005097616561568294526031286967743761377119190455228762692163506997637286154391164332690874408859533293990562413318224070093231059724368972697441998337799128456890872545072436398910927765360761161449658491897590204201494879320441168354230686366777110147905319800533346594322618507537314165521022953669928371211194819450502923570586750349270638506028699646387527703616796180478513502717586514427587858568004000302193023683856909839158718447980287189414924201403918008380041311808413912600401928648252343320923906732762662358547296130983658116904515972828379369143102946618193752787534015847855972063789106934044359803076796485009095237566628609654897124355312970284340447566599721851365462876561697967158209896573520329656028040217306891120670003219100309458728770986414576088021531126281609969422448065626107492937296974276076314532078017488226319424832610900434828783349743655450625945090286842298652646805218347999829197764519755565863622648393218141883499079977955275246689157553859976787308316813482446559689511684145522050112532601752687741822915849025806547976733695395013281062735138307184874437047810548884496797510599551543948053521738245874822771841261141805655661100979727062187888637479723041721214412208426904148239306358009846165111634204276252131792724399735077756047021935889822487076172598600505148928681595036679279701133584887154465685954308439043357781560010197710762009025290913651132084047086877851969413436591166961818530927549073222230001477750032800594051051148640048378494516139697053638691550703010173008066406035702733280132923283290235093985164678605777301976514230075713210122842960561976837087324843111212820470638649594946131392278214031786781462771087359554805636459026383606602820396760741460624259712964267298034203633837253322375687125735674192260821867516198606347069330167724978223879321011999851596136309785051223200380278520667127267223387205095073481287899958401377999606144298703736240348307065312555683811142337904378551245855695871365617640719692425562069178000649387206813600562418194202105729472832914159429533218615447967224357102733703771113738002578726439410635668438036057563234026649003682178796194301312060801364035431543421172784643523370733601360748136083277531649006825396325932112460024980136238070179286010461714099359404961960923377235374378666582675084770671740231518946448198568465810185084566707077249544428232957166800701701217898450714808052933237745788031517792155099891458362155625930660790155536647883819036163142479563748828359664081677029357915143142538339600990447682682223518410488769428121810179205534519722770955385677246291041750555900818205727992315312096824875313854756226671524656794452007457988782880224794971755882206747284193948375348166187755663265764915190527542948622334084663747841194328569885491879025350574418522087291471393099152942705705156643519370707409104470225554279192723126847004001255339876219576560553442537719343542951559515441053301067480773922679238295437680747847764495334161687649203387729563045832056153367292015506978861842186366421785223161402517066738501749847231258626693000889443219615645109407995002703994007349475183317976905668434276261064193714347413035898317943731972706740445907988404806731919987071034780009198150212440670530860007804343803617898013926797347726276964347934995244399926429917000635250843163628536459156600608129487443355548750124950368113992766415289827866703202394937068421729760166027147668932005917637984040315031197730102629442440981197927952997541195090175450373160602319626316126038523850436137379677081245140796702569731931417187014136727512120647112696054301070784874955885662775644293056562462382273009455567405111705372149581136995373128899731417652588791621917898655178929316668095279376749710504106938292658248987314564971628773673857564015271469424516898108789780812326721649749646256144052663760888786880261023419331910860506197420476106125622852759527665623356291632925430364702543480243049795045205727275805520782398091831046698084068346136169513246788246039410342113335310087985324450739714472067832139952842521328021620471605761368498558205695820713259546276460188424157380242757146228605883970741968263083474545806081446915413262996136680432306193524656592634322660329354687198355328108098830747419581890124816989072221058888533675106161092189225651309983975714663020310822313445406043608594731751056994294797566012745667496118649367322638549955653840272007854645913720727894859591027047374998485837489411852185371586646609432463784342104389013333017841265868250695899537962165913255769051388568542351643258276109348455690755279246762372668750018652961974199637085846634027288334802950542709149022991683879898149069760768307519161188173012019703316914941829379309489970716210059678272483329496224200085920022225897623268257092296664259726231561054682158200068853570523145347937628356995276008472739980730605249049459972485604216428302170212818970946582302766654770961735193806218837187778803525062417403304498709888395105294582669395145461882888914644321511000596352596683066458305981602434332918983381980002790336915400138280398450446593711988426299011582487258538495996160978934320553348334971324420973886041729439123558299546161723636286446822107197045237663053112242959866437532009217167221795372426215534350258861925030251875001322690799208845191592253923953846566734066910717656797176124870842279154386007753706674782378497121827260343643357598177112170392896462111502679733465572503302239200360202550728488966175296514769710570658239454848381469261515368910317390283904953067263972221572485466740020644212094640006394112372675755901010238993307584385142050768604927548459578298585250471602183372892469047785685873393141425459866109271413134872554230800426184649565139258507206387085445577528156255339283642340478093331592917423503149209908520954328294307671576027565085211118315432254338016471568198958370583631197085764227166858454947811390789919072875706304559838212106350560504030690613753772641735737025074339743131915402085374157535285651078890760359765838733214604245688322666520212409029386287692552121360794433570270092046859341270503008870440374601061882080257216311812161010929781472270945984196503014814581963157112123118955040263452854366721696320864038571620008461730321981064757820412251636944637676197995037864800589846656109859285657156738991552715652857481244104640039653037427013550592043407603821047654201569915735609830703499317657981828526137985215829086806335569596772183732533235986674724555036486231381728661234430764034741761065834944372927146105114142130561337832741054838820023192370504604998006180579594073918002510406785710759163276830218185753822795347957852752467618292117959142902314561897816453479448572502084947425275849576490784599513658716445906056075685618115306753735949544798811418896051858271769660913386461182041563238447827406917325654472129840230828615841373491212900726263274428386587783304761290285651233021386035095445129812531585643376562384792167056241097957666334281509319663928386293730840206253465514914650022386171678866271545530063726674697876970632269450882567881634338626696040738010418414673556339371182456485479347721884558761396622789031233702039724787840008770364577896373058963530798702261822082391353402804266515157403123136116376690760651017770299809139601753465925661835473410352962438520648346571012965007472863359931436323614630448858067775845904716755081956943777201563529181582813903413088202799232769841320433536532737972755064326022247344017764838356225929951589275968391191701533603097590526895031831133406569988565703144293490923252383630335814167850519712559499952992756325418210839663589573257317007577884803833051528962489179138420048077787167812001798200476483455273485220828863592196774680587563877701971191692169491761149714344762695102184582107797762337545893075815769476258429326340018798230313016205134861103186567774185613708142880185494895915968134571611800432065580548065427235212905255851893726704582757888822854514832552971050844030304540400548375873519496939593128209065030636704691362420927246729054777599841837934729674955075881721879926394780620454225085790955877057681852179191688221255296540813335997006038480397749665339018439470938576779798819765492055413338452644114523328759769802155285210139880255601713464700833015156040471142962082710725645985211333063655117635369148567062423460615798255149662383618803340842677994300916967632201043481157853994193123169689665633117873252877525674472654749357446507553385324651099427675454257817317085402358623694479645576792186293781494258072847761789417229577208744001730824401248560365175743399881283445786559234681704687116704138128729865692442763106693959392198443070047171098297406213910349290414936596296323262958385730839279529809575263151323732533367392801492618575536862556240704145109756685120188378534460651433211496997532942017897763949063517945208846946751561433415903889104853595143596309945856190187683606566109782478024396724937760984606686338611452121561833308561882363992132619078697208993007285857665283027252724682032801353292788289533283249439226026548134286752575825715111596271806601299777485875883940105752686334227873456204931384596908884887238200445641231996354874460922495116474969376157847901834467555655684086935061469662368490021434841234190524635411328810163992944742006772221943993550472767387185584863678535474410201806204551028566559978222058831311423216571604626440754361751986765637343307808001338194414509404709021619582047089893241122380442527655484874287500701151194246328483210015055872511723831318283085638023415735850280665136456881665199330822909600773691713892687821248173040138492414400216122077594967379695044528981984125547897112684207466226507859062758415482020479654316446455910941167777964611492662160720965452460301590896447761284706155624263239838705968755223777591711945092035831456973244332852246583968315002818295723954644428609243885775864719634574764719410737438265685915111093406410871983311129609381479679183864365841807469800824385490149352870663837638676948483854967695035511747903056159865324930851639703226176106458686072712954044701191599802029489246957701271134885882509698354656348050852003203822133472676226995840911154607132176953510376882425820073862464716973494151256805447776011110499909820264598185979414445705297104674705985874515840427816919704624652912294569862000658646919862421450539209443836136763806711421952795999982610499831425830861730640627875317905818958683443142867123366664050137390454990901020520470646676551233756308302850990177856223655645980625200721974118954992626042198570066213772674961751202218722541287164799712216711189336555400496359920031785399736175563203214847450300838847020328749330763870532934378098731647477380212117626494109009546195303448106448642348617624866609860400868174564822332562009234422330072203704520724293794514826126368484184018008451644675095991189405184645354458514375169344121048548297961067490793426173301993138941042368260344625985678429048638878019247582096357603009807570526262076095075747625979102499756461441359078680164200717096154347718002675027676849572002795109205691021802355627861542268943053821831003782923874208684025222081314135153994405700798423266329692746824910851389672732204303357540229374458476062633727637861296516932696807021295472751998946863992877165140743224329309420312544936586419932559593465672028757889861878702049082070665608818027850101357145322515199955943822761213488664616102593477358644176715322904810989995572263960723212324256941365621337130491990206983355998723590578432847517582670360241183856073243119519853565974898484646868952307058077130690081515455453613431507715699576909797895933520787007541336253502205428791159628757695301861634417875011636131284189500609883719645761437929275649659505086418932252351411489486530974758686251246160488798303370470748076250382427516466929130511937093773868269489537694695550563829637253811729727036923764094614441662132201193218718627441111373337234830883866524226190394803107076536742746547315877718176974990588754444617497090476619367355498432450434417503072380593917640734993773825459610687195773976372603365973742620829365845671186147923070518909339207851718113805067593292563317968819553386014219182707892680223166628562219856949738137524499229781326961422222113946400833848526220091017290816048432499497351707459773728546419845232356584794012442019362626010139732260115620047852481270636140384327121095739597494334586894926315147169070921476084279687747117551424943426231312810498170712979180332189466606722699037799079015245532911533477361459942185233148685473716188485520907943525528028136984410414899980717406641516915625219660408119990454894192479904510237166489397377196572649852971317152989334627997915593881578012127300541996727715687521881013967502425890801853088940852879820178290423972878386392049909743224623440834825782119018923229966361963185000587725923581572593714428533172846779148062039330180976489842812551222957553597350313676851409056439294671760827033833859724405235961583351762045518601507706193532323403466030129570395341259857505126958842041734897269872891555198544610873782347315715792487823058922271058399725800129033902434944147950285645504341917904470817819033339121030746157042372482741768280522217591203477561486672930140027981057353364199018045081863318967837596727615521641699931760027464627442115413649518409911863398101462405303809864788811741675367865631783198492241663346561920822388344428957689445605800126541461443997248076397870378801473408053620295077755349004548714328832223600804269826404846961915311582274506279681227109074679263577964027501541225362250572264746887854666322677576995795788911950232505050819673958724168173942628717966442504856308920441909071049150532899608585811459268764773482578048110616588660032261351117926127723639962338119118142011861783916995004525496701488143487572252592651942766055560119898717219337052609831447404696827360957086062418897896844217938630393566149430013787794192679635197700354010840477273195026551336818826676497225933501714806816837099597685495435773265359263514447564075903996082709379477043770829621052538068738220246457329906028075921966973771022176210495509692245941384743302800423834028823889758444486490725889854301972149526879574494266692908470384338062242318887899390194095137854702149799856138726631073224894247366126029084946563996740146596630983837635515530753257516456273990145364496317305258209389772892412291008560210506545305093539475212893297827089647642671982646875479282985868684562722166359466870447043305609519556125661150304975746025119844686427398236682263864158197630214837024970091951321055311183346732144243511304473717579931357740950390557807253145511419640214795729418906241537478751752958825648894156064156015270226238724365907262249831462500594226119676768088419747178785851998425963567139681507003614207408093737370686878534223111099640443045295381448282950116321454871235113935990267789440234667461083938654770665600253577278214325948684463329676432586340688251994754390804420387128221779762075828304735728273905766661605027949903090312661310702866388812668405955430398206972527040230632308948720792113873094568530688471561778684880040823370408731680215232219359948018736166092573359884797117233211715752279541056933058762192595708047004560175511229589205756053729048170991598885209628023730074794874950548112667015338248301848295399427541179469375946388175514827299731194626382281766461317713817415034282119413420418310270748904276128504447623232528253097901697637710998060403588817406314267843926869384687979990103929895774120199978848289477832657535908293752693522419554295772873149951349171458102622733441008629560263971387505339272407138435377731089343378000955101428871772175344914827732707087528862937655431405993975718732931941419231106578997867557538634676863320197313675340442936810116288634636865831426840646876187331459844198329345509355644326780038379425790869717436937294341868434449169238352578136377347614661023619508434147763164867807794694044416331787581085948199220098057782296898799656941288970179617879549452656185529788460812421590524524958407946731202145155969929353340170434288284296844561609436330694825016846586607849362234433357940771789584320895286832813455300987660628284740034109416319432333457053118178218116692163051819231351982927899340222787964248831809749422160610864121098154721924528504182703245167294720283701673894540983380568343852434887390401376649878022690902757326821444762229698722391482996179372749221055771664222742285764494063962073945655531981382734143099192724119146321186944123128826605675460335546578794739696061095460108531155230128657530203884035681409528726399630495847921498660019844734112287032569282356777458159345114009004851968074566449453872692352710534395165872157224223661854534065420323437474850632911835868802971031191505392277121555662293912082460632891070146640955279874124642669868820780435230940650424429667727827414856257674926197366258408447187195928880672269180796516454878823488577110505089002816992661679609004858457756860935812884006820321442659462290178270313218718338741154989464724074890875750355624126194181274094651120076120864994885527641790207784413099625460790984487084684802320825463797686374178822843470879958146407353891778299825778054907005561431011757191279224219509315018968143683727372015636532034862851952034362944464387344844820340805595149927076027395897854304680525268507785720188144964504696097036456389862291592605240061742396383407352636414797112770163744090158637370238424207317193952160315751498286326434575881198991236124268229458722851994465296909186848901306263476789437274260926965788807389727205050404963074925379192071023446906970923684268397172988765103623420958787328888549043333707224256936970916246687148250342373745017570891263991099160720956847642779085553566348970200133275709634049569346686442936682730861358928304162140054747576864386537385658006033463150200046469085091570391414280617661460213681543298371169026798913468592817789401075521270319647718464612985749746387253198802439456408572520665381539504637593978359657710709234162338984250032344784084159056993635237146832579510602743423392096653171572717732079518258566096744296978951308425348189982597215628339514011188225675885016211675062427118720311363479285861711530895361656258264474492733162184264302284178024970720049291469968195339947893632123337442650801192936272325921935858573468463948427508157966152555904235054223920877239354263680841186722152955701252026182727186816911752070917854700880962332575742721096250460150369154282547249507297766685751176405490956046420307065663253051131584168197326682890686228661269704622135308538915347733804960266969223870398529533263864845969841374162728821164341023393146631246277155173126892597994461392854274984049437483652601437895085959475400476299058620637711657153992949136912649907464838633192932323050530741547732980338135431735017815891224773322728832745145446441630799007004037802395846454861693583269135071912691922652127778343009497586238716823173690257615608904586246566254259178227858622438747576216688210303696283991738267761600157650056330240914917544705647119644579168028819730584200010555547578731185513051172550767818210444902485148026993762654185789528098840228815200957312457784070872548187307391655058490707565670589176917508640073077773512689385640640871282247899672314321351867766748514492831082315424493457736124170434378116121094638432295904258844770745860538338373828515844511051032199407555663447031949374448625457001860360135866883471590677509634741107453895817226657711205077608345318453900883772620583412707049169004544239780839880504029278584795067720237134306714926218470245973243905836634057587167156088758799318655296623268374557087988243548405121836575819097089145365017889510288131698687934932420188963762948509063944383063834439751803758487934718796297666128659864634924087028422113493314349912770121823810584592875630271200573177771387403097434410117084773346855893322221094308486491862235137072384756855681870352573461094209452320345021724850834187591099152541693426352636521347464966202902629935365539672234516132074763558787973020927272032425518925736547586735877032701749827861642182354730505836481460136491571115639717402914149778748973373573824691366187390060071635317074657386406883794279095201080544581761528462260876859218247356847538694326985334290248011385076673539793666163845441017563792144439775318153528330061923288267049777687624588855159037675522921597703748692880974031579252723320835149016282986200570873566168944345251527662412969785725265082158154502044297005860266516926192864357390953766927661006992567900331799875229343896180302154573558708414921958146133185308416923119083501984754945979898606511192528927254912474029545722120368542829958205939984530968662857078781426377062792372594735462417421605645087162897439219439896232969464406629073778561797918011116458185039315137964668298000787800933376488657387299225372966293666232480583126661530625154581381961062138813518259812257967814602509883452627606501604786994941324407267020762519579323902487880531623606665947094330047248504528440504113200821080310839539419202535609696241407355167603935763870363443987414518970721230950207515698709000800065313576159263410471874156007491937160076742743093315230805347198294334890359117459979623647772172370090339439357450879337733966795993591715276969485108204446924180362209390619648195421926099641576189227433653467118846141581668330325984570833031205768753446337753978039985766480778915918326790157733701565396750887470463763616380446618074551290602684585362073594571432406878317966041967659175168986202447703019069042080919436214602255863412075558307218414122551375659870714215671622997861721800513330485264276037004124372682874363448269449111806303655842506515638262142693186307315136985183183300520809468503521969946453552423485184268876692027504576100696319846866249856741135583334031900449581264907273951416728575581457750054335329925072266798575756113612837807476021363652499980768243586485584787780439104323345525125765819195391299051060341912199407025831634093624272388838774712759018877831099165801404164511661697347663798546596690308778319260984689623498718294504429568627816906755925292344600092495488949556960995199838232207214428114077314794530892599433639664910558364308875291484339613944034795464524523851719675286097981042620009486763899188953861614224709074835887173542781622960730940325849581318695245415958060191792879208746082144464764299199661315508421769052191175885998813472280866748278948865595006724849908610520845342512600767393170928461051553901796303923550239754496278913186031504455018805602404652990183823323912911274707590925103786873947044099363667710751365405152280380804687068878559016465215673126264495398197913782056830962033478589379306991058183972160791043911104867271496753052981944279134656122060862742256509829891169986524450618945609048283273215300567789535686050303982458820740029629952242193902197709215276315180844335851579790916204176525680653405024855493639297759108756835633058513090116491624111519655033007362099456761100070472618221369687437299817821265845199525075533498391150884641843280126776495380008783288337244217986660949217754472633519125117438199149366242316939053548347638641392471010101823734060374717904497401791843437407902091834290437837536611460239521341325629714796475625432152136419853153321403543892477484918681487825291749221691994132417847433378965269795988952559120040411086973394355969902338509979448456520893389411236489213088249516071638042465922576471940213692409034809001855216220000567230917034977644003467028660602233257632054236466725523976013899724365592825117427573254026999431783410571568551123196420698218033297543491330835781653917513107214142493312972487572460947211962729846730600661943989785430106962568982710411272916206110587119669077716670662514301160810424193686064611983349723436572104056102622205634882046307438462778499489581410286990789269619019786746828991623752407869755116407453371675742689056095477251295857573590879385548102790079697519771762741637674726221614782119347295103566778690603303898066180223611633449359416462638222344989851774687834953478034565162024795783867955207727267813803485950526539621707740978290212338303479284658059334377122574501703042282974671721865547973124613204384512715402697859621051009735605475514224815331676157292112821802435982307698030312282291313643301516008092597738952954808648382255901515431753799906977125076318496414313944420447169535925094175020558011973209514726880925130928980227086863284980183742684262916120436399488249955951875525714290675896400757651656089679092273504249866970763185782706340315695019675039725103511309658049223187305517169565185559322276184796558907457457135247456214169082200085309922901742076981583458816374790436103328691268308090334249191312243228131014537602832045316229852897885218427295061592104376314387176442550836371557495051827500921230879266513978535506452072337839683013186845870267412274420305169009451303369308894048102543590612665000121359348786862863952636408107838447509490034107566256698738310477766101022834280777468302396591496390337206747116972366789945790223064039603504222982354025858290678506051213379092146048488374848165330472376692237868766405749098133371970174241540697754509739620366536899570475517904257958421736226581011870858405395904499993244040973427695447195588292102260088029166377310737306921654167765654633267248520428885398963929831667967981841567192752322754302467275648471210768051200831655006849383206295391707182479268495512839530645523685111344230736780948079457632287964470693165830035105508759356415694995752567755969401288037411059597661114090881077955999899306837672415217791880818750431400778237319412306500745964203368825188674828396740209289365999689541943906657967852303188844619649959183882510155151792699855005345712007355702921724968606031341433329514168686533191487034113165399393691234053294354371203936361774118846771044611815104753946409149158678565002820243061100306041990930500217836060956126598623858701756007435138748255271160938005322729127379716031800631824325135116394436952202214013639913793547802913152368843332277096399534203849612949170509217104692689903252376347031173190282336444046623308697920763203873468087572102214484702997329050688586159691891773707384088067922576245736149635883933398625835636922968350645008776735297117924112014318820120253814541812031547916420832041583322849314400135529756894426518169305435818486572331601059232473070809730042105150018931527731534405978667066185661466766067172158561098907414283206534421532919112677415665979030225667954827782717921457940485251928974734694220331583951751967762519964610486035837134586839407058120040478226179202979488965592700038672301851296737953757118630795117487063753074324935063920306561989221377458901061516684264947397172603326055239585062261941632990174507664285711325551184430094877898978465140357108344716016415358700064067799259639314799070308110730753144742727760949822320361418056746369943392632463927902443707021157155678278325623061851056387436519107470679675976646933464183363081652985357780430543763469413870897809597413469257210858002096155459934818859488295730334082837529908159939156581033028888365269542949761170403247982413928099400228400594710767147285052530035098071685653558486573502088584124620855239416531600083980118300679902869619742975176815623789474660124824872476253247521703963245591837645102493846718283170756608441272076859831929993577272638020226597747732052632629641764642646712623013302665907962208049098962852538361461555783615028807667486279630262410941023506352454571932075897159021492729868385980853770910276463623040750092023930409516892284269274742583371591525853403705326288462122088829899174749143175478952434189825846341134900117932645850034287947642883885264739443065634758664155103624431487240709010980356761176058167883980317285561432874993299851921546293205849318106695069634797923849717595979036120351921546504074134019850244269920878554381539384184507660349521035500194792920221441432790471451861488022675951226220583579287930115678091801034992241116115042410367371287997357499859402609952829967076096656112396326873409595503995588760238370491293691841232902751583439308127248618061436235719862356412910042368136947241515226262033042783924792465778360533189819261412921063398642843756425740512296131149784345405177156352601364564180478236797766754675918472480312564806853785953197512626016276732644522656715446091390532809276803861824987856141405041817125231903029291442845573565416576052273225326498072375414464922174583083104120884672839575462589971428800775760494988293922820189916739796260217520169967343490932372099623253827475611111761759837470610553870716647500696526763531415570385484584186293651609595582912067642417023787049791595411403014771769951273979128938985399932449479372444744561624520552294128809500683639650960528740734869668946146066005050808738015695812201050225377608266932184077413929744448863216959169523536256369497428472777307657967401977327047054951969795503885215126503468541369073712358699002596759075502660646013615580076709419439310704872983425217574075935261594173747357610389573705635852260301203672124933988538210549645649433235637291863234659893682412377476060398438474686686645858810466073296577306105812290679461356234619509208957731088203011875432031969957978118953361266171443534752942286517332670661741422094346730824302110017415870187610244719787236769317084391340704138161262928129510365484317677532425664656125702752874473760294794215862362968661658177427631890813547197471794745968871490360540062022059062828327313080783055330060259828888725326737883481200798041522266242763428200871273627848879477697853679760568883127507068146010139778547318389581154993858554138362655392428770167688998795379933793156265595232046829062073703822059198532423575612741918272328978848908162064193278660855930216401175233957683790587571189775306761687241957140758333271821754368138475690883182493337423465492983115104763287810608674529220687490114412295297634592281782564025991899352514517489047111198908856035481686228429254296577104710543018024737298588426796857260352382545008512183955578995972118867748913249156290446410541145752626271979723596136399221069583464288942995710786202667926538956467208261983125010593112921834580702716154416297586651834904903869426105511123227217791290133304728019120782189346511464840985286910559079595283590643783396456387220376430500250922874148497947532075846943600501026079963157712036427658395203262703441059611779521115815617162167263569327982118186534747983199791130336693409319951624980629120342448695283679876834893187311256909266118388453568940660117467308750038129647889940661861735881138172439375130416580057681568391032138578277889757347974468111146930669807959323657726268576196258872740365203595450007300027582225062733600026461148295562034700675976218584861201442118128428645881799146378517232331726724332185834484013580159804718973424712348237657127354552616949504850067907423447137379323807012181747778005483732840795978113465751570923963943674268260214853155901304264498815129568921560438179711635412357539585255975346047824062408421241022619357468908357714924871728740417111948505123943526349456823767533067726867401646335022028094226564696114103251030182330563670214968410560200536541205887627121381063834426092172602177890048644033907105715897911801925243387971251005033741442408731772772147734189762571680563203431461449548391196857544634079870302359584665338446828334160993332033653071066667009498141893814122026749198473487728785381805336527987377285946659378587955192306611000703676863728955061514660509888922198219525590384967650093323587160468797305326885580244752024783982118793131414006744024516585244532881709247320251778017223524298220168697535567020631265654762334959829025329515936909637196452908374259781570073248124315446606559266499478277032749996315197922628129262144203763935981845612582867987153192068497303048387536659151280278576659190275767469979375520090415107776567079425631549086569009343023977516885184445076112038360070810459147210781835954029871914847260850076359553782502956801416820252790672501433437938325948970126555755913775253145833736304234925237643686631713481167917089811620567258158031421377931995452357382993360329189959138594467085242665664234989943012463098117107268544975945162438875118031674820427593168813693047231033893597444507240430958801290383223375174952089060843235541349458696269147172536605322090224638551897330408417260631217492733312971405346031226246212698422469096945990416239484244100948006997540459899224368506968453013736972889518092352913035156350538542147969294667696029810963351034970390728895031352605381384461781905710210568373434761761797808803870022775196686452553243512244370445549645177274589539566854701417584775117865878129843269932782116465533818379519861331600669245451013915339518198596931941938459190927591936152017916078052863854619660618553098368145795388595001379638981419297383168148048252664593568815759668641947704462937828961474498277869835862247417815597748101836134773672527480732292157514096198978142120508355491801766368526953732910477277519143970730964222118963829349273943338587333613773518135522854256956313465644960111856339595308876627057480936440496547652700396347219885103384165191061247110964256580433601501940028964274324461877546028497650692998188369544875188475715040296187707069361397771547349453204325920220193286805703156663386936656142629398272294875999812783684772289270100969223629244803909450753519305118013561892481033961355584487640141974923560377214765915317689915656238286317961989937687010108975220066277961660849684430859491065540791085459319066763166876154006652024795082811942914017346381782393353864763791703324100077811460687062140669927141586747436512943809116301149718044522872887610465604343425734100439705198136769010113330576626802428462116273680659498758535530815189452814582959423488052581606778801969783884147053245452950228109670345694042012841859420482048249325287816483391644821883386523350300843327884433526627090076725519229054012732058947064224239199816841024173591935665862445283328927649731069969372892333160599221266650308729205028111258363933622586705112560685577531724922384623157959434567922157600727750208270091854807552059240067011419459284531089148574537690364280494793569086557738854222583550645610022364504603238688247463677338372827553654326263631255325831178086593104012010927344984237008676636518305443723486060547328763865304835436888047412386615925806734524916510573912058342852779745920219387592485087345304085275102423660581066306835733418247026283308194918207651788143423346647367810825497296377867030636572740884831858701061493632991352726799377850293921369192881966562731789749820597814530530432535566192026314410608481634088860285758226935472782893113448295437198685114163876830721386373562861790742660719188939777271762800704715625871223158859283930532194995613067002945487023727031231877752236371939453433679692353690242734510326390526378419967810916433890847206504372242626712938782466343882048210164965735008959109729539732699249020712369156685480697284421874580979336143659277040747999660969245753404253217649315790068852274111364438695378034860343495979424937034129024555969231079329482948471813950903308971761658087385621533180494644997681071995461522093897079414162059755343368751462787438439971620453392379230927029644867489623745892081946762871264052110249074327887014249440853804320303954902326775820970297935764571470252792541475343339676631319998587132467899541648020284838995416283161521546069264356769891701427208033625608929694161732846741376661248932947896684641599139897865833750600669642249246435887412075632905357955859831460581732776372140984639427058283372378176369241252770663019478108451297923006083133228000413463761802267908700159710013623792020583165325757231151198325075427786515026934935347837256621742284381358451488041548380453201188056247240141990924878762488621981037890624383309364445580651831492178924299706818398054163329947548616237909557552272690850244262940838369606706365770883250933220266708568000641613987064511246473743892029799617965519041764381779400209866807078400182214341347247287749852658183043316348409667600050356593606847977749382608862548053748866650167127604256676752442207662042247553820083790605011034512352109744342676026431037519567184947509884790499912609869284419819163927926129816206826557040435082846135453039499131219320048267517913416738663538587347795730623537973885803517163803449032498678688215917951486737938629133951092804550346235746644993963290227864385467349851120512920178334530860109549642410807436552742119959059861119829676011507378357902355616698742271278116373088408701050274334070174591261515714839578033651874869353174952401056180792467518226243339410545473531851268642545675807964657960291075550805549928483804357056968699668009016132770689776606729714946417124245558246767018101676944815129815974029868542490895408471640714197350733612248442123095783950567854532535451445502582208762296532504601939044074773693386998507031414190726407119178868241315107738601803406386939732556037255915728840249974461392974666550672750108919460928852352105242136110142275016979503479488104895213816909104255756708496346284980994747742627379177463513415513027661224929471158098773475458127546092389610597593403128676220271035799179719177666636207220250578093916495435937412760125335343597928374152601217695128020628694918678002588341154871685636545466315179522084586751344139619843429663481948831280345382326269993952594933208071395946809036359960439075523873193544173112040942742825890154761236398549282500245517360838397617990547502572150604991752285592853824657631675473316012898005528953806851373142548110711610886860507544212913112369182480504689965773437659136355752765663112087949170113576422654760470392014607668352923916713421425197083744590814468609237951968480240812447650712097849117503674677646923578769796353171519725488963994803547220258757707049369524011883203583997099805367522490162581384215780859922362871509989306912760191903260820933530896777364335913532539142823470085172338863757457899413513396943219539983873627034356764494728382468557298134844831176872479157141776708737693582659989113209601606145381130417311259829623149062789616894634960570959970691526899468392975451727476375818564292286566406952588202090048721784883583680335301553751372992005955913302631088782300097174891359247579214583994986237307338570918270122604305114720270214320510394973483261469505056847097828974281020461998973837055078742636651132502854596691013638251456237684680380449551077366276257677037056511757499325202331845979397875377775937969013255085468432419708571212715542471190201812590741483497863246184812729351451700562029423708270646888741975318831244147083478180053789750617660299789706764396318696245843934725810878197612723620022393794481011467848877487726428019225058915505444092223551134527842982591543241007328112340602078196994738945865518042898111908986046723532449077104959242459138349077061203428895601403054256536464917395579728330901017809996426539837199500536830280844665429460834924086230865718181506653466503061639780353134866585340216780418775800217575332493835609174828427272197377677812560965947316065049915807001803930116247043114049714553908227657767718882127470072547159748610675933927086157051005138027945356625892766852401060954288893380977681918402450747241558614292411940278282349478106767530601458988071361097268360572932148978183594233488202961987614767444442632011789511899053122750295451159598361364720399000529644776594360008784438988850029642674309074071316911404549970213541690658658270253457882972045880948336016332660311786672307513600831031019298760798921810514428532156898064454516668306240231527361656619027104669004035164311504813919302222337676505508303901633004265646471453997643422568385372071319705704919474449401761834050763756782609684265495403603588249514658392570210336334100251669786965732078410421682488074990525337010374079886090811950548862753286167669988707824405665618677166759356556771747195178671954148429164882622758440183338650865325161077938811789474880520703803663799646907601503541331285446603095000174548942631663433595373944381073670471082671954505173295147134874768729263588728791660347556975418085780229602397009949000782319697156201381638301805209348916413293021315467937610897162684392810553793799476785612058510346305905684466346436264941349039719657724496395954361174158347127386800220848285338028247002285639505992225645401745388598326715326063221434319098473206367772351015181611096799514679785653529799039936517439120939111120242388887692934437026252555328635206216727783370862790143392469975214746982830887942548038535065889485983686054632677951714067914195287092503227385039236453909418418845561963917481612792290166067332125148187952241658242341802941275023553897333816286154296360714866142312627131758642066127296019875959525522960961093836501744564976476872493849511777357429007760402243091596878406934085426544190975630961160867156836103037641909378969078368740124248006923106853548333848409842773240493393608779491568232359238385843443433451407100601143400480239553910074422535669771994951175433598283439745319019245729913158240357583488648822433686705814388466363509437553255015607189372817370002403789805942272810784817992752177687343577184309443341173488140939308729158911855498842795009176711359895918012615597383121367521868764868171667046021283620265100293055439888827421105805714609959786913241613588429966577667135160022662092569577517977743157643695505122354589696194559587277734710001270703420503073722357023845203178347325106089635036808178624607077068458877285118180684400116913372478773418147204048122378325657027831486816274762744186174996272492515841957081401671701173993132225864555862335349828336296751982155351114291100107155491451362540453988384264533702373750063218960954432584339225317856442792922955654487349269765950219022470204824621118438905479090856292083481926527919749365177128629335887676993092052437512289733316931686881525092172128664044715632417352169586787864532903758596067904109193489538591404074848733064668157936681265034537671918690034650977745892761712959463527230171636206038359662169687483943856666498085278440008193344709351010154071881643248726811623332041994778722527565597387040749643486177011538817793158497879077235298893469674604705125662065216957189271775630873854348010747861698814335626443379100155023578999346487278922631838835989519366903831262887105792181120543692030292053915476799663698532237907167194398442076658576186725527443925861962245993244093494050606831657023681954587274637049459561006225864650432097384556210120527896384887273076943978524348730047988254767705514604108894428026533630697992822022154783745890468433230246318855282898266617635422224679516161381461406351467829601454684535044441247211559968654295450109168614395271284725354687315451705886894239055521379688315587952138884183726984687103427053442974057314457877967961705766933461158331590415888116864461105769147516637609612652666472556705785995926761609489238450289031914623364229228176435899177981267288365646209770743148420978410146509955665122144538208080541441097561773645359151186512301309293126273929456313335444172610943735476013974753761809125118199352617676188644928941157595000842678975053580389487962078723557696507967589853884458680048685125798368285229996581982424596507329996707978390588472587515870437479691360712647821769078696944672812564231289853742938491468738212842231418914399395557500367414975520018589989850129506584580576445683824195564040632327494110032124565587564657174203907106816877137339169672865275500588213849593729164959193090560243030310114461925556054014409491030841428014973575599086124839639735221183654239391880977053795935191014209564220434679571345715529455505319097422508737300264244020564264601536284228811418226978147629078282418030633887743774320582265594445074706733053453820868778282286114264880842279027250565967535820918781396093102258800303758731293862245390614485357036554697495390493703959260489888670473805898850388042060585165833931159007423851175401345295799012495410021364035136509124967498399712315032954253941132265856768317600937436577215146307803269941666717422762473840050652765784641915100090681566999227758703943659557266499111844702812629381088801760464869536238254684966836934567636859061135468124741948607801805184451062780048073140667861815797812979301200830904296874773271969728255229868337969379779121290608161877908625608193474501640619127083677442829570820930559452796846569944060130949192981133458952517378708116712574057516921952680519772657932446468242904951502644554991232476530952957624233732835954796486025710542576435844835274691308449056835321988623294878348436704074900937894684094593471653300733028058643488694138026561391175633891265792474691336746459307040728848883221620024177461528556583530788221378447564870833317062347028806242976671292060495235981657866134170065472962590419694880761752999581344185973085729862657363797894992827004359739783535088298047813803849227063410972936053135394044735394607613451999703280906190601976719527930241791714475353045000403263721963619085462205021807149947449766291693332678045240482957630085650008589055965668329983476937747758360415393123785334103624371746540799928370664643963835218776173687150242019680275907542899156222918863313830932872281634900695746496580353765966942297782416965759382103467154399282722030457822972730928754513124399045853690643275690357640382873510601053669676337632036195942079584832789919884335372256222101477185787474770163923691811991599525779348853751543804443537430377399058125598914893002559647200997794768659560271520334803704101692242125604028274827065679830438070720142513219067280331833717936327415780401961205466541171768489067798168989736291990558272164422379546897528321952564106365983965234508821706298062420661021970474681603326944592738780561201597385515460092598504335256503560950993993132395301332671296566402178992722718767341587437233402527041148018927621965371493872318231230537282741556963967498169506231886891715232798819003170318433706908114385607574733195299252785612087422951762267029218859965816636745807025579110165168864331093289272263721637303478692143212405165659483147900738794709379061589300381680885741875153464256330281008503005183119255198039439456879911332329594488276712078149273073395935201612726655607036609413730155740606691931895320540349251256358059844291490231553384262865248258420668164910927279718824012382767184724337292310582902430807892156845051339727475472012984407751022791662126155705772637739675057916488798717954874974526492653071284880447228963914140929253684173557670324548782315131461305700188934797563624759134211532994493883701645520043198366059080232360276199141309582758344332765987257352799846049954385357182575472858341810342197502695937233456409674265468846116108869703223683960589103686284841284231438653929590486831962277243821342569616193236022452163406726683831510424866125179920709149021739855908602695094928779270351847443981481339326752085387678387791438505353693441691180354997518834871769902810814418711021085900298529050132770671476078317253120924112925389737737286212640493344379932926722154431084219376098285427989009508318452588524207533517440006640455053326566825642669600849983456603195259371162204072789982712765167477860547284925365846660978319590329243324557396073183880013574185421252398519395317186489603742956821530675406114877786851147853803900924381457395121408750270753563582497162128281500327913232889631655618205148139247971086955157637407802454029988727253454471216882755735189563834592734786443181836786968206999474116117511685771364619618815089064818822937657743676084043559705278896052722728630457332490147712468700321675594914014819879565508504954738315081605095400192450840673474890466341438330557032673010068900525337360115354942591131818019041542177041755267712282348757093726776589823660777240611984159266323348351030988754910655891592095237666554957356794153650969008642640570522973433099739200034028570943055483982978557181730071265850306017612280761524836404401280611782147659521134101738371917483483226467857281306637423741721802554527049001675663954074364945017464668847147579537743125654283000594798531353255415448161554412448166220207813590528105454544685218339087746192278938683311992440352875035170766532043230051167336340601877033081222611371880402831660192428801173670407427136518919658960516070942764891870438510269045086903275956593106908755255581196398571682328260368370946079194453408016737701678297797126558475993141633204890021909786511536052728088098883137474386387905483158730816980406180016565992816947038718823850465706153419361479809022438345696609090187554673644815585228821649476780921034447017379047927068455085466029366234074718921283479279742135409651820755663876531439809330498068285108236009927741227314760775049559967689761726556360661638075313116875247539374331291099854085937558710109582564931596083414959762763084409915940463442842845313408293106992207298991960206101527663777567161171943615974624992066246159364667533483428350067090933446748607227977403809554164432823174286298270520617593383805595836335871202566254920249773131671078765206069722202768756040209614937789658644112699325772196521796076501820173332592107946694850170674111787826034732938393730494709780752337960405849411217230596028252476176442309563461635903637403578361883744123955565352140168732175965197640152926571020692927867113667004369174824510351140952675254351945016139323662068798305987093345064105209439297501864902462343641227432767930852250297573815237937442207964566891975000934599853661331147513179911410575170533922651208056275539663520936836672084393984885857734606453904862525644705405077329320202908602706760530193453520662036371392503894425489868559822718920779413172681569639671667730036350201534117443090170510947338776996012250293144048999194823251985088706958519264902815114007985995972426139833211182777700455225979273629015602054864770815587682842513600707989203032187445823070856485181552707410947430810150550627259537860465713744593565004561661889164604436428463050975175860686992272981620564441816903896833403652273758798250925876501663515262655894229761776176620696082049255380769390205144287567412090465466752902500560506253817969339675965520199115753489497879080088665472974416597173810944734383552717020029799881780221919325007298719910219902465016239785227825193040402893459913628441880211584353430686996291599855128123198090529327100973990127133372106437474300933167501214641741624846397158960196258846152574303891401994121651860538017803241749906181529494507558542298991832002922634676612689475182936113037618423080233941780786514757665198708265243913471216337727266375175629563185911168941343283700749376566443378110700335462783800092829290964062871559810131482474577800149703990861940725655338385146360262578311474046771981833884507789503801278224705278346500188713734126995009679802520394621011025341487565191181531450941611004227986107710248425498770159992832457149849559437546871764963809590850472392740353553186559257567010362013556403727299393548149000579358298525876406641005032527821986864412125314093261171434360118090599053459690672643693889724019184126031563161412192745123741022500336463495876463748555400244015984822115591973106923264254882629749298527696980873261442376259167204163591998149670653815187927888432482287619907258257658523836909414319351787512411266260333226115524008329098560540302005247317918328768302553320498833764694627259958702276627250943942593323172628899053778557576028480366514274628429385867827101183873845831888382588737640415267942134306579566699853187905456274837332937064391741366298670586777048466794742086417422546213578961242295806454919730158830019089504791024462807501827631067269874972971530941366113683314883301119020870188161958116048939068695268047942470939873068475784142251766584651310304773819598838650491291706704363839520155816576837301795916970488574608712803113119404093487864295697062101972961600512783995700250790613675031416852032845661075879312427388263425412368622568699495299788102564076935146194102463375578596488383366481144412095349076779268839883554917480311468600929897584468292041625252831511887105790515413464277555070464071536307421641603870704621511575691401030789243108244328100392908327252337435408843819323296998320033659397954591394764436241774247271939201299831950854650360994986592542386112970704384352898804200231292403550642183742540365677199699623456166307858892302208944082726626432726831709651886287888213686642354899645369075503144518294948345831796110611394918724636745113625802284486173808304864345298356953970030892197362234687525500069560774479049145481502364967824225105180095840075315814080943456927417861586666254673858221862798176465890478461235047877199511304331282388036943337178767421910414691559313032308380264482053769454561218562267295377202036030167103515720719088760204040955746660402839908354315157958730719941213461216844040137834684085511393798336325406451259971492215504777956578140133094933965207685831396213964297588098853108526500513945696225949082737512559150983278327746346814988058357508244019994969913968066442431117176515886877768903625956467818008993719409391109414654789402703668605280783715767585318886374240153229210490754315299124925269391479989399561193385883478297528943707076879499775842100447057255039394447698690117942744612733045108710959308286415330754635643827810166981783140138763066846747618499972083577954634888778698411489970017205171146432596616577191567442710419796007796653672331992499339103669018179162949165598244200914919668444193945536254362274616617340316503072717490250733064865740864732959087394149196446136117028640159160148781154529453082272228476616893514361571281038836902389067865747724125893071061430604416611751679089184806949216441192357915712542635207511451760088794398723400175708774920987616006293254455181170522263720757424104376241791696845140428750660187407232794807213684579728893363405049497925524163602921778583603090502793506852885038440772634140899148157701037300354383770722613143871609036749735208479133361290758639610170049020684430168980058476394050209926898097052358842669042338162856834151909903027472200038231395748537573153260020881256586785200731284962504472975055542869868075006772301932163245938442143113611415461665356672403295129424913719624539542962633100288116857382540432713773182261126250950915449200892368311106006784032921933049657172001285428280412048428887109993718652861361991805187498831675423826423248420882439732066816235159049501745777252207273176648198575865513996503736882549544694323215583734576298257155088156406953098926453098521077223304729616448375790422247612780501060092391040529825492620538799545007198602490795424274497105461651944753594379159250687970734260249917930834519266411388025046382283733368417602200748331546537617597653483075561415233698170722530236191478134501338504650569610552691607073580848051043604671958960243843323362643840522138717075324101839561236406082368162765853483555376715063926303361365017168171563946892953224094301623730381997298617965874356703572500926214639397874654650453878845061621801722101997978003101461671406031827682866383293510684143228549698597322539721042964304647876479724708509218418497367117982470303224725366317837909556787966507228359931649165068277170360070269599856827196889007715497898830540482640141736594576950931773618458723667790796235672848230300687269065790859463283009521267484558781280121530708530442198067104775817638134845752899500163172792881196887939073106078210954835217390751007541270731188414201696583896239823462367578856504852571278023110890065260332313212683195470571853590749245307395807594640213886941493382195708896838688110015589121595981323420356042177964964430273067897409077254072823674976330374658156524390335343681032518503391009634907153014631185042458196347978547884385446171043239350525587777052580351405625465543629569573800063521738145498262049720495393116637298359805756595699287312779855297683830336105088826586418739057525452691919623376180399707632592360354312973838848579466273146719197541542678098348901965901463813634195424330522917646651946925831593488691477279975831229915261400806324965672861376517012451310318402803036608124807944405293420281855784297373437282882881757049959259109359374676208125683344259104765538433962786239634285905995331203869083771033607703679543162793177679989312834153544479541906503198682547152419029611999658637966585750311650076256235422956733296774889956067989894949357326983927739532344433268346160143554774840337342457360298245943225535003363013333884849664856535356894987246335286112664695963595017838340041453846962870384591554346217702491019186587794263112601116644652732632871592100411117636656500195122409301316668532057642987867932372046345140347068115490215179698510458281062181716101354969150600183897058562263111775798724328147055667282643696808095863089635915649300520913687652643816439393430695632613879348967989638033427763665659179486296959245125907798875344509245926857763118180549901030503907269053426187575110794563100047944842102573678871229841072378499718690679650375737662843749510319828786051555450004550815432551375096878135130429529306986591668306132504323904777886002115285371629102059235525778064052631039328052153765209775393765171097977175017772701689537468503450658736628504109690659590487540508171572905882655994645963604033169216079374132271166345790110618367631713446203066772553077715764424108260108543906565526918383026463218971724357387430079027604344997036631256996196096538079513451441136499046325939368035695219415996494307042262527265410881562105748377876177716210360083338873426112574589636515770591891250260483591596240320006828179168160746810580336530393367564689870820106434300037909940480170639541805833757762524780256603526527322167966087230667656135511073689115246610363538692474708801679073551367531611004886772054679958221192838804738952268775013055105761793232353994167512995548346402044537694477454782442507904462818975693806686617882551467939911445840535967852307141066161560944994324915434223298353617884046197970126185823611619471652221837663765921067164325463102780384560221524518892488038984128982967294628219718739741474116796804023903946285886413834617389399895998202479837850699898267922188348334635723183324480156790988941138008187832798435579022017655536517413511438040462109983708562177696393808328513499266180561957158704230274291813072729403566792561195300447543422622217451056867982660828420300193503151944270196912975882616060536611946120117482758099512772527321287044817584735315179930315342149533594604489503461728638183050566959627588200393214358489716416558570021351858557636328384449722478627058098675133573055538585605530995379837646202355230440266232980219532652176861000240650828364445969248692334862192906198813934995985798462131245621707509676799148128497234827571297788770194243001325876669516447728630913883429339085214579657280586721631391644295404652557358685734927699680381430285786200614063043859821906601995496999572622272253790519741057408249586526350103680522181704001452973272256354825048538238688035238323278583597618232425528926927554464098625568756928070572834199479397696615137943512487383639295545756718860436700065021903730587473078047728673816223312648481233412075180025349237010184172409671430391983741575609879594762189741287914390275840696126300455061338751278677558349563863018852019514326554832525304634475981269679771735528339774778374943567308977673618019826755479335616093761383003018342965793378131612427518100860773583743326189594242984642822084457675417604096543900293567784071451345548873678812565327323758419044861413966096679540557129318182600466556035916129152096060993709344120142213662078353533692857905413089683332825949867743010534672781561942234930261031617945910538689463033783565740425054071254452060127900611770868180406748201016684409843699412205509129608120567097778543156626691764255975481895221208991781158935139294961067194771566937729274913491853905647836281110694451112465532553244534679859663925570122373516335592445070215091800895979445919752282449002837891620847356645698460451122626312383309854931755817151270339524416614608460296579936011784176172803936966978706484993130051621327936503957071191946557709045785309226781030549354284272694091519412794403094689913304860358672429556762923453273230631686333438940682823042513004504783827899580126303576410742225410358045228256761033542741164793223619282053485039801068626601109305269633342452856195587355722920508918422373680583125929519197161929271417947078830715020155985845770110054667389607872807307505635086499408769970689784489376649730118611332535656902882667104225636813781371104661868266554849474183534724701879589982031132216647837679742677321929337534772859500335344582980023174285223027968603823467606600611696887686254490407268079885787383958649351382843467991820007773260286702616673406952908104135017934525072087092146192828686380727559141424438912567252325370571009521259982822183244729329747107094016848313962975745376342624069753912226135782860385102898320656918071441032858741507767028362005436501565743788317069234194643342673620766197768664856038064700277671217441676093290402572623372563456796678460780357252865593216966864472093636319841734288988817271612297915795493799886210512848088315338430224597999475150734512065139616845363370798841161704659920167853788386954435143071304766379985402216222806499165646284209864020913325926951142772148548862814762439658548138138403489905082127736970908830451662763649366155285223382695216883664717760149959877804532015739451902809548942648483176270014407535757791241609683501458455197173872499356677071946028211615127392322644246773482425843657184174266689541359563350289851709812660565393571103822784591237469720448976928679606796238994501927670618206498311013353162619232752406404724083721669264080559470172698953437731807188564058366757799790326584644141252591025294354608353492661078732640029850659350266416866558687616421670985056244405574663798096874279543720145697052950561611541845622738902160123371262612279855118600198978943162926812865295819165376838704006085784361315427608806678171729084806982009721344342535853229665888462354669676849027118871150638343339640155883293233833695940252182107455757306468112349247756817169771864542773353050991166381184721863288775436244968854556316152259611735411089670325514191458003760738833200201323451338131112892943699324491675322208170924175188196563988500245395783287030312370710095550791377064754958107356318913897871273694103143253140853179834501427087092982611109064664092119271276941450722871917414391007383307201930165459533362650523866155208399829903557400668272798183871758355093189270078331204983285307554556954376373348508953696189697130075482003539010354374671621498890292045715007187744235447612429430748900581900097407326203853821681654016800594840474794165270393855056529096981512280402006421049486286287605359914552796135906476882957819669826542863178936838843904060900573226645468554492056599975260778197469430175524125910007266897914975980276253183603286638888426101690601086979445858217565237719401663998697661633497788034036489070545874273953442849408885981914629573281515753743363910432861196479316768685788640165335801776385296125127244126441445994113702583629413100681384253151983655742187078488921764227909327671252724963015291881937162823531236043150700455435307477367515698882077933979393352533267324734392077219436862485433827482876885273756977304167490288050383555988443833631243505342409908923647436339257034305366347473287671099695033030136844586257818491512485538495956818129169585093506853731613497923670786130686846699417566706508926181740133259239095870717029941734238926114141651096867066024049397272345837497194523218826416755291315495370576413260870334161188289535378659707477332348377285248238579621295785064492559977622192633970883150981598171180324682046405555179278699234962101573539634532807753665923511502210001934622515105341832789827436176106480964718027468601036597292106738945458625990058215526360487424338504434526177523531988542599820678827508478807567672364280030471909761627466764980049111089624584486882564441395977340605287007797830233350457146630383873356394408994870220416529599206217717660918206674272214288542622527676352626268804394393217200688276882916803461018593878884552916284358836429134070436022338316055481045416287713698841820989807414253657724971945126996242234943085615176637550168235114684656935864876732912653725485010275138814825221244466557060672920420888065448756726203819321430682609596691692650045876821108588743557851770196684347520815291944106229287536664392046873703871473498014231936826943733716147454412034359051916184654684171391014691908366533070117320824707601268959086094477387699155302814388485405212485613720460506815132973593811803232195729120532449816783029543061273342307287308797277184157581389031863627287309736222420161071253890394514256787452173855349660876706352300330977494117511979391172574056093880340717631860487431419544128871894401306573278791718781558732433362189220836270818195781420223303327604411295980129551518521288171087275437013979808994686661989780427156960939988801260155600300188501770952161777169475271042126352091147023720718211843360136911635845514190454369268327660098213522383167409286819695469023818370882606631610390009329587857277103270286262802567877408504242946649384054151466623051639425162601572002841293204720238485300819851564920045568376033014215153390817773942378640836191293411439571672573841446792407538332837695386903875376183845201211332196312181396808127877823970914022068885138214883054205752741823920234469945457996802739563002794733208682501198862998759832328310904400762992183461340719488527564247377790060841228576777354215320567209897712646766708073367059392392919146072980766318099361136950176078231562155277623946806444783608947704539495041551751407961174969895252529527648274011268003942312079196327845709043300067696424989651721377105893884693625359582583098119091024217033318107151028334344871577377085956807533967900504130181215851939532045345795850718269305381776849894076990217784365791839982956810850498998280509426077434137143165516552712034651821111936717902973270100923842094290616267245926037842894815187487434095524208801147276657508781214549396512736613737095012269051700796532470457671341181391143401812083194989566054017390656062029442340892281316000967507350025561820778279501111160743096845093336492134456153637565302882918323370328912038751301169580924116682469459049607469797947947443520785780347063194734842421077597853124587485304973692147440433184030414087173750733630242466707279536801443239610061427405056249633386067224106000165745566140584807364215546119501699054044495242909873995423767156464636515008072443625499769758332125253516460344711061067077574784149666994031346849492674185361858068369072218949627133977453475487069550854232579252556715442434834178953363399508340055552886707430890645635471575134706440718385316800528946389702604983663562901710542123072356746376985541112947725127724677476577966699434249044292993182496171626755720908525880907189563760682609640845548646725106561736118641697543808965304663784693266709217677403459027589600155719416530844361468861093360902229819553493463118026952928958020296883598876882638733354376292168272348712356548733859186789983476847744330798289034943808330074137621050146323685694529468875248004230253228445802758183010020912007174694864054212920177075335005934773433118552565401504880521958512001612692559551672234505748388562572077865413274573940124319481900221428365400704928010783675742120520312377781120640886484338367064721450149276165256251006630663222625476131210250011013772493450504802957102625203119131046318295743007756373777623011868071805243122441177200641606968358832035397035474935442183188830541230520113878587256387308557353571379827241920543206813857136669876187323336759820525039781236310843796925518853957026668690705631344135223250842694663670607899733559271161095924863424852216520991386575934243114524465094585328833788582776184796508508527476780267261314694747357267211394260652948674554992907932233124309617865374104857569701158799509224293978975830500916630835813401597467544330907662728192380031002522145884329176329553135034822110630916254575532986759009011232917791624018296180124241126561847019867327298655659704597663939767326845308858467355372081226077508980586810795142848799215634320356474645157217378062697461345659308398471554456284495581314278425827397935613983150826174224827592103418466126672471531283836817630048676613702695898551499428209957568036928733959649497457365263549249292512860284553163497134984016194652742686878023512426012010186016582121852644669823587932433564980278243252663639332731035689477299539173566987488404633061090584420595872894666498853967739039912470281658294108027339981536584521197334730599332185466751933366652876389483444206639931974388120065424277090098790728655649807686498007245977630954750359128631927136432633514281004115478681166418285170302473879655987098655446241740750222744543967913164987419263425785838237453935444052003788507909162701112613760728994040087524242314573886235310417430567108339145686710631050663212740414203733195536336531811622835145986231645388186894261308141848833321550546333377788440948845429176712845187943790539266420385053303404936828404922243862345569152213833350603788862611482112303748401224425623594301111501463938808410557737740186413652046501331264434338015954715365372371447886910316102479818328681247395978194582597355081793792588254703311287776798246266329590325657143381421647179143480696048982554806284874390964728013398194367337557939526355660737827277803871036358973189055952604310056682120029382745336646882156060091366021653098580905300844495242053502580787864575712351518844845379514031577038898005519592560310815891839717171130771661030536923442068741348563079105461985975227670863172451875675244007407635899005205604893417102060968382835964105704568245613798247398748390598232037088150278298717863960376734323005423341133375761229864374221953081917609635151483197384582474169565144304756071838503619624031386846811307903327483804750261063134246373597102174873057789270713207331769075200825915071808516532043012120287166640807913906101843785799873191855430784408005278601544593923897849437591924355526411317576455688143623461093271698404926000010856059863779518936640683536568597745939638524603668239450706178644541270091023707106108763693440408109676348628885350203374033005194973466301569061209608418161375677115148668009850377963490500201898226547271227057631349803837139425772031279125865302161737958014433318044676955265453205668069389448135927445353192886132283415313580337930804882251085815961163966559203378011756366114003735242243366450572112503595354404075924076114844253580260081719427337407231315231992922181392286064512189908502502920751525044896923352603209952893800822480753754442805785592154474818947088324059755278113166726342163602081916396110812047570913907269241431941548968399740272207704643570958486382047791770563262530937945123349852958969545226672733946791631975103533746446460398553715079708278032553374573600168433714362821976596926749243894615578986794854905652640558975839114139616411731709494292358530346230034757074362134816940479749051475698336523979670390765887835371684205805611604423323228528265697236858484240725896624549572325363448392766025155587055779945827219037127689489017428459738217538577946587736505214680882129704362135165483849897347614150851065474431512469851304712093089728304213095172966403200261460280767856210181845083626090700886296239390877854098897679528894958210973690612568263235721348807658086407800203017143634753523123500235556301992648135918844460675740341470756971970065765265147348788895663614792462409641217780288892859024296004476034772576404078389687841785467558983278371616606959191468838725024756299183315826153625472710497269584851681658910586222778634971373297797916025922580931131018067187758188227783361911823867486726950194751444599191350910954071048367801319499728256260679172912327782529817105770370288356399785447393369371202673931759031705920210157168807083578923563770888062011600696043384216795354721287448450270247971604536219087418832841284276051472858917353389516112687739522131656472620658766406050244952974183756020186847615675891376152110230486322400811261464622957075685781360519314469169466370488229408682734576379879830456746370177887338626522173082052685420338438319192693717718013777947045241664692394891723631985082775694287030358294981895004209355450682611286095089409707659222340114924543314973035345261931711103142677811093487546265999281067343209794817216097662031772056744788603773103335226494031700811668864330448184870024044191388769636496380178627354892499044012106470636467381294721263311172378091293925311376258611862409221216171532004195732196199404274822867384388853327453444879487888651622255276302227896338474058373062178601766220790095064271210064366020088150576806365550811329664283431024682293304877007917320863742525174592577721876676335707689642930332428760728193805092134668742124284356441626614029085536493979843413157479926167253388567427813275001897243290319298733904769037974830816160678491613398090054238973098643215584648343197364390738921907120449616973115449361450648455570618758919798275922210627534703568449013283517084772500824628035469390855595486632275238627985746343050364016251372477947767295863417308333841416338039875158832398599060292485383348429079445179674807771973035355735137425002933385638254350879709019683254749166253602512568219674644572061673584507368023318994448064382915465294081083250110742506337213806298356528461322957938125401168158728019707788201325679891606728829585696090822366134706091047226970233245198114240895897904879159857613089939685682237518204347037143373570505300077525931695266999722479307086735862256877766220686139963905596655696155360586574245566343491228912210664743665825993304028261778496372905209168824084624625978348197728508099956229365324049399100744018415207500946780703056967579226565857407462647764850976973641434805076416534025341577508815008493735812281786308606416935622723718853342042291686785288937777423035365339076178582268593223421683914810123610801248930230944815363027050997167938895911667181343423573049610587085815392598568092352367297312159722599615253206513311616613044368660881525069512170761914761261735287660568978358292021944738628716997891347111537228979719750743978748269094882643042281957146643675604138562314310174594215721985299733646829034770707359420697231662801197217082820184260055327638354419644552835165746401476620456743465294135388128799938308180574553465829590485194345639560598541583100858253216201049483685773496485252243210247673156115474873027922608674558631913007848056614537085735549670525952119903636885752564650276011028420583907503441658502260696731473448380342156470798215508790357427926025431707763553874515837099322522912134041809988039343051204255360320275038305699484040273782818662879454490532248433183218842864316479720792222734376611705959649553358221486940699512816418337717846097379783638448941130850767603007863376257801342568627392694155773563681051527488988185249866022364851591104918796511788325270848110901446879247502822201339063364031195004128498129127903092225666099017302433694433063657204333144309925499699111762025355861155240513097257656131755205908590517469570359319966622822424615437307621565502898286670771810883533891875639755672598998803110138026342614336838164885003853986601670792882741266301782739475680318517594752892374525539217471937098604003230556030593699134763948081007264672624465205929035773057113268105166939959672351406504214946801947084963659573633984975316736041227716626879816336778425662678493976793513849801762990771540185212051245795394019893643142842853081928527195505612184770456574564224175864266845083330281997386078531363383227329019157189901180835037241765550165156433198143010319005134886015921605374850326223271278405648326954986039565926780351503409003368562371681062993765439057734202092198696954400481381413279918975252406540731088116759397853121206130551617657872702731285766664910391576278466387147967908796872436348263679142952330860956517803157351359194406188044306388810877813815790100447822983359455609546577623631606845491698308364271492918840967413801766142204102025172701806486987263631419964177169801047266477739518459859720011656663041739540934047766228407386415950119597893026572086852982110508236946599222120570821086845012420964353492471877662967523986203416842687210389601276043213574036289359634334853148911482686025334683659589909653057790940375178412181289242933899278845032536375060284070459289130805928933900767573537355514665633541509179863791704637958395854615982483221440152537431642535072915300955408185341161842402092760060521159382993048467034116488746131701710172469116688825813064978461128432629918692968753519307364443871738572108020756328021955142025920336654687975437996559465463662980376521370828318085269576719636188535963547515058202010044198142719769221323916756228054379719569742619337589640800112538772295555470196993144974577280779386588518974267303360631009614898135327037945912309131578570624760072610850495582856286549695889233746922211305287209053663726580359232804052372920441830734160500334660739796394339807783795774653609315871641389853856884578429785526494936894015669694343002822791552207920094065355485413372486452899788254698662084555560216768001043867888598022529676473691916407777919391502543915646382470402759458231849830464432599132229967924507339404165878164102963651738834326519586367739937483242080914471065987395146386463848450129966277819661854448846751915257032994161702805083299086690810710794742916136090888001893935083190884267205920764308163132496921253501023973432755819961967425694015134984984782780532565539280310683705220655855083940052598528438509376757166426281444682972821605844137857600378564048795163052244188097720987974307812691127856638136059931701690168828283793765995653483837120037740132404752120121728631275166914084274839276837846816751274945614787782763747174839934740612976533434296676226692605776016965742362992990736609445891957444973500576925496467437818574477364980393052004454081762412289449139152848013902470990827777751598415218891928476128786069457750628489558532152632687730701839854441082648143633713379244448438374098055343312559927469699686343268955756220457312347499712473887686549443143623892177779315206347720608362866495581661152525603036395305842141344369742388726712608464680695388269222536354103028310953642665133876782231100057436564431594653452007107889017952419762267208858321971122084011295245056047013830338436093057386638898997135156560698786933059281050920799323141915739219290350767527132464749390029313030376361615512608337235015290693711608284293006318500344425594154615023708716165585528788666664330285647150759903068239409879394173530417188445185831160783499175040941824614485583959162626852028715362216751578957060895140745519118088692648223080900640426860699457274332388431921972023050255807411117109184546631981881870817909931918801616168783355368813688556775858697519569907424203110135179032175514782611146637512102844640766485421439543317405568301715051505685414801528934300993302764963059698108203692231633164621758982377093079753625374895719351393680573055220692006764141057350622457550655358168347263598379825304434458520635667499734222966018682981119778867268420027827451848517801489282536154376530955824144450991937913301199082576256829861560365814099014278768576077688347234887375925572209554100360957580297112285861122069025701711198538443586078611624078044616877389051757234892049421640391524814295959934597498454962488623450724204306102857341119884817284633941374006769134716069928519722539623657871888331617747647733919270877367362771132289108530531135840482809304319288904348654042679894402279709349165699986363344438709576651277507781530663282827336937050309851341445128729457153347282609769705576355788793244321000254568235105694771194500938947633975397972560105921297269020993527237446169441049123848349575740046582921146810667753979739596540854043747934027163450577963045372185623002859806250739543322997765188756134996177280392156937083368601642683352132093860598638718113410578453616714784597761449217903142830820450403469362814672719708848771705383586432950150894830886945065116081123517700852264984213265584700785919955009335670017459953438803006190020321791115431838490845977799975384261205397244838357428596085489444093774977642479769476172454729080195817058140731115435074784133466122930220933801455460372561026491748398361077024203087866079184471913304301312393118186734107338486942646797725012381387137456696605123603391979323833501437750809596932327785314674121499429101078006234544449298619063311501362469917147345482697672652598755851382337552079623587054206456070934545158687483605632951311529350733238359543165921776147754716803272219376210831833846041608027825054913888306914118821546985109212263133682456698062214891641420681566229889340223966028419630274537247063064891496058595163119040040406844819230672752028396968580515684316091791318175190113939097469257709645754271786760378039362887804737628444423313221814997191862000785202090043818383910989434352825861519962977329595152558944257665501691652258596277727294560314074985757883731665831827315743741667174870734970448598307664728595415847939143337932499727026298685294082646484466064882160156377895486597028687722002517051198091134710089389512547798918059263992805445654929570651271183367173032731955498706737445894595881690273335786520666332501786526978335386318091007630760868056718495788913903330435479575672502826399436506284868436447291956915245688246399297101296204124885981527343491362160946021664315345033497127989461060274872254327802871942184729498831629018785821256379164594686559960892942832291864094602720696500546744270056220900840440334085743633360326252594532126962424849794901076914023597128192249944501500618313802349050980764925455067771760024698347612794435905723569501003572430929620337389782170157104136615313465629592959376653989677380748354145523863330432212175517104314172430920877797537810294362674523347095966619498914986008479266709341574994962901103447534190216260873257129312046456690707522161475581810568160015980352779650639994839643282421730848743846243042539604476178283072300395089590260778385672926332833093534802841672995692099426658088595075146849074171033343614639624147098874083898036631515120946655162539663928419665256263077808313749249682680333887417843776925759667491078556512099571512280242494751400772992713294404894164533588097723336156630400237518949307161141924714752439770434419624376627444686364449647486113166002747077667611896295266258385221595016887266001837145947417065125173991821277038971383536290974950827143082973064316022615524691188685340022668095692023204435080147594944876502886765444018947237725174544241252599640593237870860250062961894297211134830227901477298596859158241488311038902832593275816062018007130417704936909169881000682333039205850543603152195732047816272677723077720065869494931481339431408543184448505047770219233422119792685966797183508251014104520201096276163873645093238421941818941228791318951730966607316653052633040331977118011586245901842404243872093521917924777350447783388402370015621706914849386968535762604611957227239714638029727879739063121660885373851965774583197922825150244627437260108784211551496125091336532962727630888227918032554659316699995715683778528972552378811626551501767465335494279134973149254503558617925035514840721008005068674020610881082558445359106887980854659308965923025483590432713304740490163541926486811767056227245469139686665019933064235198711742302196003051725134200260448678380601186854693621861665669230700816872679430075672216419255589364406024811188175786569944759701334429659726538738084032425730652413333676802443712058897491915683568796188674704239504768961897039924353416477535717941367269143899151675933198487038597009560675451425777417701912689810352661101934055204363400731301496830331829819547757961639915297795107535150206359512147898776740139101800153900952801182768087006006027134729783091071056795645724328377401903039384369992000493462061275853901078523121502968338889826982406236688825770771675435971589461056091026000371761087672090166328677913615599148232502177606095250168901314650713309609990610735938478696526261100359871184064069699458402763245927889462112077061966796547500758722348022076544194954469753316830412206772095532743938569318749149850297971585226350845040893635033994128644983437773211721885951064720912153436037291397200031358962040260698064528667531293086101358369149018962464658323040922364142273031919006877803201458730498734230999458130812731631874423250525894829248989052956857094680176609112307163896118981204192291656931604472511436442175324386858569973325827429521920101669271570694385012514444951528403470369522667557053290901420591785195841635059371897316462175022324449470105894182985461935492692511307839217260091557709459268416002798775764468898727942563808982453151937929443644778996539777922593096798960049757545079898748133354994234008452852790596381756629662254594488336632872658151554087242046670402733207880618383464141150595619264714357780199006358792907173742633523418667250293777910881836612266457494472267058622895137319676560334318108206468420065260316860636194225605798449058251050707142508456185395215984330038305824654262702321230235812195902242101799840903323867237525232114512645860604390229517442077961482706228043797275541066650195738240262912813550488849007858638962499853864040567075448327718552211969627783667357730653186329623062855916378350831966301090796678854738121446071880016455263713486921785972267493588976371730095365220647572180326644549978051417588291719386029392792913880346976865763005178665674374882737301461299367770581843202447796199135430766352855540302358708589483325388710895928830920540798673370981257065896915783577467804210514877598475697553336889629909418260379080092728471031111237227681517713590437539620222098617049757067725129934534160574142597895180756292838618841574386916124672766489559255367477198457387810797085022882283102759266155524817861403526133994844380730792604218518443326041929404399251089817127971058340898237585809345772399843850188888121376857807176823540462396536892335091383776244576214982742295838849519118189834047939172435806748502518897095519528433009674040744120523886125210196523642543912696282214679227907299478761748814663433247339641689278430624963264461877420303723762167947710317738693536339783408260784073450308312710611786537366137001216780170197564596959835169744708754786826438729458927303228055713926607437175811558601061263649846826446919206815074503245042161827835262544099211291025877482302159854565242834407624173834605328734033285718722027254013610325160523633298602554755613594963645702755546381956489613861906650317318807466445051432013571059342027580122810253465093109271522429861083290026901254814808960967152444362634395872176009694255694364404388357211502301577077520260789159981181772806420211187943804874772675976790571956201408261305139894488284743327380217399256792704625828926425765305942789346187261163930616143401081794216349628130318460155077341476554753225584826246329270260031265240972397011417053801747960505388196825243305261652051471946561011508995641605287336197461143406414182256285421619275260473900458253709921607588986809321343875240658928518903389390657243128708039661603756438061198761870994235593008472704959819536330634945955444359470576553322986852807832313478748281267247153182914253002313382471329252048043847523673274230695329404085003201818898953349062027758631946580052400866171468326553182184277658510931950882067724011308905042513997394036337663580439161643082182247894993887126201954751240910635058394496114738649846834583582121855528570135869116938020848745868668482946073907209874177782849939132547655747445449154619389514794944438158450278757739442063793624336132312168253406460289992058932587873180518939095621014072851952749840048829633183761924009665133351624265424994911270381911215598669400996778766570100896205687682162640026186856353312417184689201002935287933029431845160554825128359965719148498420389696622786818718347058058258937478159279142311262695414713364207222015039174625266485667714437690714863761860682331821211552088461538778506004198066651236988849565369230935751000068517771293361926052554352711156417503191862653273696334946917442296780816773011072433195415038723159257245285010381787446677530484716040898082063056625617154555186792430669945294973655659543594629490560977890512303859431797576000640870109036572416090834003466714043018497054561207846377059273585468396031261145412330323749452443373090810958078834130141625905988688705831755410148234758448612870039493140043042288127029319986869953349405515467504242312421085821666068071754457092235619163942177576925248342041628237403030450399412349538930513846456201198740982063066348701282058521880281593903195540498877215788419713457649646826738730292675769272882258614015882749690924030470591619095118591810462477629004997731167486067817676734483627907530913486737675028462049665418921418467237660790011934653816000122449111488287723001538205060350689357483424118377826285544559667581810490376481155753489376711751406125584782848184712458074177753387460028918012191755341345370595019066341139478714903543657528310790637993156696814139873363086252627373020726947822191940351882062235755110690488788315786601111661674235845122671621870595018552840304576887684074770667082314569622921180362661147210763005081708919061672792132865362097498617663775787229343731737966425715389927871801110760706525718447396037432675969428060081837338799529361620566249158031523124330807112443576778477523893827208009996936897286564904130281508226041564040160438263780827275682631535597140965803130445098450847277907564024290073785952071627795504123223203689789648570578870089345716860326823591638939353332270667535665571525737223268691413236348728928496997266393514235315509185492524512385461701483036280060873449354404426046903785028449994125084280664081144344770876834282492961106297655287491227850065232937961033807472514731258797398929432248373839455301704595604420439886998247440097783415283190739374179725541539900541095188090756509869894856510214859723358030099228526363791988191986917336231482151148273159620245208010182757754016798234760872514367561376897375332260943777424136701958897676491162635273198049749692121930089322217175291728926187707807271776420937864173777486126284958687904219228979714411817506054051405734846410660660424700586555008754032594627190045099631707559049383330344262137905909495083060478747771138241576953997926164693649065062157985575805967247179380726717904936475065247190631887813246616499227581301041470634632509454707488941741164916450473073278007943206943508272266090198704640258119258243161287619013532787914102097557720371359910854040301246364504855562284782227097502451896435778328063516590494555660330732105180768844605039623474309811150630873153511546978287433683599390700200370795483591650544399187160530109532027434259160345188275283668312267380680000889867414167089888736251065315849924514435071330480953373727856045570537401478643480360547596472082737503129379866012688932588644568556722273968207430071500767678635288194170092656652629927316773152374156760942536611834284579100615651668540839500352065320412319369090282085451061367151217700095198693597477120621615567591268414141213549012116211970758220430160157392705142139952210786803840805377935467847693162077048008393403408586417995027306706165578437746204967547996996307941391171316592587896932827017473641225989691210113350792679717736584171758194683325889676304230292409199291005295176438646473789589826099519406823154997762220450850141311132877595777148530442502889509085740422194831446504848933505224028296575664676323498698670117360242014410135565436791245186438410706459795789791873789935749812826958646619756749279725643526172042995808248115357016349332265839189266972891281868513226784283758125348512454097777316300353207386516768033216141832290670790523164051351966810166936564762499444282241687920764379832521399360191678757037522941528130356832908468852965964279432391755581264077754512016983441626088215830255228906467477944973897779189831394265437815024959885915592363206446417664558039967891988789439805663078989005265890992970288115747162615205836901445675358247330563864637319736336433378433303279247579647283847319406239110471383457004840720043446221345886052649074253716843882206919997280130577714788505437292553467383606399189872263186185866963323390643522614935856161491861018357613675507584963532084427081012865577004462677409317321797802114714703235974642809993530591018325460010343324121782474112156220416632090668727099313250645530360385019675481429412559235279568503590336808029692282052207238587137914227482483043933911044675081300804946734635649487498112047809900806065704815047824845012230996058422816583514060320786362832685621948787628169067400483188456249215012255380158950615494182082126820381673793083435135735020545944324278824150010250620931904903311049695774939896417622519715898541729653687509317042356822297583862434181274546028222517970545651024945247635617293206065368222351118517298215731167000427180856453924633022110573380742963753951712560744470214601968195198749499285235592159080424463688721033547573355050943140205551667148538120636774584060777908035871537640356497454468579588212268806830522512421806449989517957753173723794548234078551663555901561730970984220559160457069956742187295518571701500721982708921539966509635238101900752531413090696712367031344958158177385012720001543165824308976081573605557752314164752831452627468125624675062412520916978300720379038921097168686273790264357288714179412527778546384446413225456965598362909612194350129202402802567414350869675063917336584873698519381115332726627472654610294204947872909831221094216293982687805628768516084962105289225661116454141753046342095538731469659872292315780644222066632678187025274974454026748286078180997025943031360348424835508662549039142403023935496165084199303559081105472520346915399435608305447559793664289143545837775351880807381686153608107911050371031294030943415574931118557720055460130343879342773635135313024858183611877957459900001928260046122823171939915200339849126643288716871052043021538064491368489361532224907572340155602764012627407666120974200635442624220224707119756668453251627064724875886970066957183151418680414168065527593719277556771110776080149025499907294959478780445384021560162384798832615100570500439149797675981999055941517804171381653079653591910208759085544857860092884845161274032346384460344379939807416697667450931713512438719409565652878962082917882577629682205223435383843730354547997588240121086772719282928570167962967604905248604694649583250924632191990848406170081821785380521843583671826106872169681798087822793904881100242766324447972131125047803595979091454812451534423742578899886442637589353172154247521908769057338569050937620531308211595607555396201741722615607168228818114786544516184340935799647133101906177486919011042551006916878118665894616350564727792209306756525699246189041065659129210410419701078505699059184369223141819831413513467649700514597076458059784567416438185885530886072946838162386243345904429531527995408959857561480791909883886393498384738388157198562676760188600907926850669149816601950223828407489902822356396565789178776870359284737688534200330242638686356416315272774441119307793030397463997290911188205019917641948310241480879721518500598517368840231271127171638638094259204761069877162372177692741551257940459957378969555116900187303222734670044454788784666087347973320738648450335090970949664152207995501601139566611134016987567619954093157665597836879816367983233892582402917566655305173468197459871380790552371693393771067742538135943949355429595805386378158441315816276095016115869436716523769635090230273804302675780963535405791961479386264346667566082284973308885763723631929970139563080933100793618227403636329294367901647605401440029924177572334518625693654234265858326698560033534828165707357286107881575057844114827001224037545895333146963788567683772847098069534826499579452070710122793752502440250224514327297592555599136804657278600181033957558515537905237432542725204014244794523356316586629061259166608914010625883455009185777647202807131085048535207030543008724105847679552133458913352981076696687417731318153614946341101683508292939260706727925958335852328182948246970054658813736110864265608853328069647939216024168607073793364245345360846191577054714539998510008236334244227233804634189478309624129774655421183654112991339546846950966571174393824498053131786646408659348780049968089228895556809324481823224868945051258151042896011055588400217326996405228510405485706207061181295455344737897385566350922441702304862478682979985929120822627459424773321728473073901831792088421681950703140157626810464319723777812170575028195638903646031968043466149631374122742509548662245967036616338180422110331186673436522906095040730003933236504991058547162751824720254496802195721112286364487868066342285658397547235856627616072388979252551727740248884692843142156218357039941352456794917993642116186988782308314203560571037160340064077845917518072080201283359112870649600863195289302228567699484498378030087426640241243624118201759707875795091360108303062623556764761718213830621240761147833676699949612394399739091479730184101571136361132380185424276728905360389246831609974731136894666520588080025505144300664207404360001901405169151070568599301549752610997267871118361464720388318024705293769524447918299744802242151325077863099544624733770391228689083269871879604456614930215368373935046267612464749242763024552085825756494497019424934089725305771656103647714609613469216222837137471329777878839770272765557029587923339996689700506211259317253351392899726316294140770105551314651244979825563138778199204183490324560001533359037570364871054942060939045156983452028591489018137700695311822110363629191227505484604880094818688621860774237516836844169680368348008512051347191619609157988635912402536088988580564312221391117928663397891488735322469344367768403245752195596723649941319021704219945379999220849100243298627928405409709874141724885711171635216491139205380751253010589388731871935138885175027430425205646246138214109312133766333925124202305862282441211348608683844821994258692298092614293481039822213571554214482879468088848643589276591138870121330017751679658477834637028952738270005595021907217909057638142244188712139379216357043780704088321061966901443237721865835644150696925807578245324846299398488959379095952978268914629254799142853964848144933134709466761565980778651566910192159922585515475324622828542003384939545401457169395428414811604550524106886585598271651349684836862213516492734318048622547602704543278788604348245660648550436944058766833446672638047561171042646115590329344275624544276607449889613076315872139004388706640717010935742840973065246458794738330490379898679158497851496612559686286541789047921684299993414545865115757662505230211773079311989388891544632087333814530668208653105852383811333245666512691274898213967269375816832458887863526745587593567642392704397641460018198643244004015746134564950930586058312574172369662996216658617130493009836999062667255110521885191515751749342366721395660456621331000962254596484062454884182452972305741459552692447196948981882511474372709885572960403560728419956611904435369381800445081506229860482996183400044773635301181531688928708073267478726669239068679415776209328225590906722315675206622261778328737793829175370623555440892223228362864681307408511757196740178152894097980914672643950499884898673278281452126378186675905594927280807789060453292939122634570197351911779088876420852759222184534311007999705834244606426741142374440435319318059849610103820985729347887132885488447600230330801045070127628515827469098450384099914523185650967898917257614054227423944115138854131072719537535866841241150736606301029352404480441081155603875431268548136322960571809889603670635950867121427463438410007708502151759476872529247034015265674198027991437221590471462127049561571074830564350766683195617014334509966853055838561008515570345378727855876062910792784016239862466171355227422779073933270544370813437279491873206651638806206862205385442287348169953836018999341753139171448049451248859523461566471540265525908093360461824071919614570281806794497016943841784739826111256113602917367163193883654661446307276829582278145818543199776830001030452292982994820481070094738584739169997571163136429229003702673070065726177391120657122071988375781947296829782853983664193285272810211618199338567141167401578755550313923065214847771906957065392488182741233265541130849345746135403414662076387258571043201655915227827126569522244889459967340302913567254039178610251869870391630133286679244789775931505190633938566737365517352688719009046962210822358173162418348365408282684295891147066557486097437653740494938609956671714575996435117256321067968023190658926227535601578475662199034827510380855381662321818276918465982195277992575622793494925704197246002446508694671944206694002966035996545688347553170157449780542857401536112425927470613199695560379406075565396175823598747226159581047829493329210020932999393757094007676205307799701908277943645080324607402621188335170647828067826539576792558812026891855777411112699482382186248979275714541272538114438143923580922709024791062286177419509141806068143287053787119779607302988954154888279303054589543671667615472556556215189604786881024774127501811797020277100871563007076035029442391522624111216339267609975187853530463492805423010519140990247696988185242419999329145645116363397904943442573307268175771441869674016003308470047580237076316499522952226428166568572430612884847418787656728791485195008941499259503023525156513574029112962101802119787434075100750194891463777997377017784502979248497910188602052173482891122802454901370700248392642306633243308908012261097742099969384161220782197083237083042827848069882301326673461443702128816234630414706487010999327345479758975791869296807223460351828859684852715847457264479365664627052070776326143539920328522609112346876609505545204351734454782593028580016071967756850175795033854502326698127588556005775112014964146620385718847548242111434389332568298299646055866349425519777659138145254134450741493476560262163358345049185917123159930560381939769462056135469065111252074156271692490832157104041390725272584066402640142436414708378157341807612114333142085729176398418232600294164823738802197886564897023561336862575172062602644972096271632947180055428614283799028285107109293876524285227316521422738989657113064061791005059065943350382924981866568436533993811844034933880046900921040799121151776254391967974829095436908861236966725046827595934903368358176151080519770788234957493905765595334848567256240223575070185644474276164302927703606934378490105768131773527605982091093862057286053024600592024236962756124059318681369005253869465527119625588133704156792117869889582726844810679590232228243425694271194750953660194883381798106139009686439327287659744299497347122813104076983575160288484386198441839709824092591070518705095775221602780946745369237132816501086626194505407956328501036907395528728082919680398627839136781348203026784770690904350657410696893415199963796576775089344462083699210419257451223041092003516494668198230922735599267914489945322535944154603789868013788123804951364541216017717512801761068187712016219757194986885059881425964742825659785659984816632089355026906971332476504278571674172990760947023771039276641778051296197269377467893367666612342704665214198759324772009275536124378297140855899803659597740441846870936153709023852489736150121317052666795085904894361985320933630750608879610257236605568543003554975355057042284783382860062953928222592442060131653091965391567073755612120881773154119919390678257671405003194597946604440553014629956479014316901569131892936582383813297421602322465399478570728415540470574081133673396155582411845909180394857966300713560835322435648773962596870554298284730250021455248981802169233611194724146745156207412226666203302503877033320038948744733668350884629620587642633090356103834888546563115078613783811142318763717185835057615398260365626106077507267204030332138544541571105902028005617029848854422941846192158625886792295862365491053385375861154472522861879766785000495258342570370313707015568576171429974015511751934349098512854851802265896744590347732416276116554168412684864490996439708778424523916474470408668537236685149230357441746232122644698799714360918040491241400698274122618720300215412428392938934291433556335414937946899546578275178987164865789386134856103352672117814101812654583175935832156585360513323622155424236901921378844618675790541771057629924405783475441622586877220314708476587811259754980602609584166888331497929909892567603582256914875150731925645876954312449088797575535746416634845176166359732563242919002366982755792910122646237996995298159206040213883061444201850333381037171240099549328610636103845749612443075977085346877569664529063370024132675341044842869789040358061339263253601259740090883035089326465816471086770463531374991408810374529985497544779148441291061570028086922601905495770374834632878943981872343586204436775449811605824029465221860921190872407996927537768968040416378488066998893424858456200406642420118253917294702942047129330130765104262767496864617921873568891577460658521616883267224876239823374507367651399261926654498736965828585580558880559334455833009114781631422957215366036948032929361978033835655896192512724075882613219453495686709770827481394132136376247112263642215604610119719448536122014060426541429328847017520168165688729897835879411654903603446038927527986312397808200670550356208760100061502149377421644048162981983816882126334757598906494865853728722805217086701263870768216436540296001646313403644750542732596254233919051249121859452215223141832020804319676002280882818791216170940264941992659956777802233350058856482431526862699051411435595515545038994549118355524576352271766003836987046214310556335557807763081703491621517715124819534024697432376032533583901463409382016862198143839024738134758704801599055368611783591654099086088395023215021176057259326948300215129734611189494115649378728721356933762071654551743553043377173096709575380965201709489036157168604791479209069208560477251765269832767534358785283441559933055141302205898302488675026518035321870708612682101630365585842829830753587563080108045661084736783043307156263844648925134375208051012057125257408032158620607979862553204791133768604358810329245717556157965754861381496943915782381953578227039629674229517678933992846556920434657076644305317189384289245794712616967048439840070448060759581848421226173401405760741472428704076547225308945208815313519910442851354997941574725276891184677382166645485882699614889813801460939544096854606086008563434457723303707721564352424960192841392022618670012491762210257737451692897418807002646414063547657453494048928063713836846308997995071543167458494068055038709533567973530666805438276156514592825048413661627121289548688263077907803498712540796035830642005554737284215814928865089975735364696960380996106123862339940465979233023570115740834921318950894029427175364350385741442920684383861343247192194937246717573758762311126181293691357645309960344111096490044936052496230707496738136536306100596119813907411834471219406309323465321773285807751551738893297337085427090494773901413167996929040582104456691201783419209420426349403220654859336928869690928956486341225933020279655922971055153063793610145680049537869930744543236935762278284548693330076483059815792604988648014095541768347711385849822296647444938627220783094445863679318919535281390240147302637847392208886942971028394446197057051204772575538280510362233638056528152545645026336100625691665701439799178365147202291897343984647901093494188471638567333124976849718754490909126515393960413017350383846008149005766885858744152105705799307692816357169954382392936358368135339920636517341334419629556879900020050154429730812799530286678371633579495679594703741877755713229440289803600466955520010319676980335035310360172064172188564687865761936428660509544886411290219443865802257488678542108958124016544092725193767693781864629041140588249436570731321474784167647492833279219344532822900683085479672059421517804280344729625728355202340457492678323220824035744521027269342016240801620051653644103593283829421449266578300350602985588306868138188940384927737328422898847861762893361768643580036518988342791927198200745468845761256916031765299662317497911691765943969153481715896936352141464602213322234088736727783842166964546438342024189420889978044728810410927515685148097010357237299969574957103900550279039863505261058005784888080954184586928128970817126715722423980580372618753260337727382039674801390144801494307212990873933499484838673844363415949170472370189314751868720985971708879637215529249534841610104764957565951313952908410118454740072829609989184864836005757995030055535626192697487985202282344623232302472206377647897974819121689855287542221442419318132924478734733809421822506322198345546715538299931049527549425882404251195225730364474743462888073375490290763795678981219418278445277397453619166769888859695649118286667704128771665856431937614234434021668089275984719867449406234732365005960564811289025343796585689246124941638624785724897711302296141732647350375592115403997854034321266726414087537873506652644336074097877958893412747123655511455809511331061035378474428133452465947584551030763736920142835696224573507048839810950146509900873566988565290626471615597304001714653009564753166040688110135953204948909758134791795117713542203841978498173406751229940851575972781174873029429786563779821850544314835702453432905308394848466596065749107554216374047365244213451376694784826505017328492485136574630324838377198199548319253692470542926633415038758207473869373247668493715614919856901514041244714120706848057266573527469739788822607987470853615264585331374689417468498011544537175775946184849829491820335879828542229952797441224990691901368193911052307871183218705868148829191741080096285747224167994996062766834796144877697545431625739132760494670002747842760529109027848505920069393208385268869440263863119843100999054948868641619559591098513091653361117440981488392269366962481273654901333385506179566004746386121160353268910202153478192392673875228185320125567302767510958521664460909743967473351853934056599331897200905040575634225277264206472838900912631983952658094144000948118469395159297548349608594549855666723439372003462437881661386424490184266959585675588468491860010428073604050860925810287591667871458718768216659053969040309458558260092621519699658990008370465076214828709683655067906339843776488399489701550866742224771423447803905570011051628971567944301575820672805358879959323286223541818379523220199266497728833114950287263761289883666319995198756560631300986438101558079182506114062265600288433291178329077178761071463240419624583126864428589784829200666530827792345716792503261528604267856773241382239297052133660100911607960317128704018349299610405501682628859668498994445895572042119825202013323077204357431987423340755742119367576104233842633336183227850895693322298642064760934712014677241864494115707051680086681887738812235908617285140251660777663744274898498044159881184689265248332880920495984053774159347663403168597561654144823685977185845207765319638792273993426795774933939310241854003273615364868182471485892071798004682495688016167491011157675057561942655239131865427029491691125221063254136106571561218840551297143628905182923794506952479429640084145891583053383865824109430982668247337021974842572247327718597845609280382081324587571064098669106764280988265678901674364696328040161750727898227616461017374120162648503128981509479368947218349652347379374325892740720002815991334236927834826953580138792023226874128696094604406065465472524691872377112946253591360087905105529935173500055634273402920259150034735022911038832415179360146582434127586887597583315447202330635324795153847079300816119318043740959981958429030275951511392368849904411833279692784661074004317391864758716312682245072615300688700450898500048840338829569343539549966520158167340266312785806872980395807568680422384226865430609624798095360781582692179435845251069996524579551239968585563687204296378557194053184837202859746426654274477919279764399433078057114625952342439372672270301870208733661071740087424891373796249064391488990134815664505494164995137505448031253681849375497454142534355525983358440635280368673466858973908039230613194840997069988539310820410068071560062042780426156544579919635962810492615713351496421651185810056147289352361930644783080593656412682705323031063650009450391936027883813845795012906144324264081686118959759781367905447483816449522272653777692441087287367551994939838004224858192229383064592618700231444281064940577161318857294539397090766752349167877182160515337223746135786705583073170353750686111243732680586961179990675642099267772735953216803127255201098909681923404525523731486746773570883281133316808681092144090682032344798633698458624091541761346126504871858616988638733713203557377970060081409184241978766904383856093745608812276214361083349685127146916712178781527986271310731062022268723419614258810979911804208808435206056134645366039046956922113743557805035895673578086627412898571857515979492913644466572683527349036988695548099243572541630608019397577245511308240311652790749542149883941675042912080489579082404158449487420601850519939176168786761045253118143421699760654042502106148639826928387468497696565608040103690168178722197230238329424221078299007794287983068490385930583981866778931766176247281019538937953531226281055924869318211829820311310071597037756655249096943923482523771175043964335188359136891989763754469631363847144767698985319896360801964920683478936297747152630210952342856414314903969222079036509251783141954831859985028062249591790832770478530912108721510639674118260226452349131059515899753161533620265799862191927684055548855454847063893630404795520374497107142581624065993229013766174344723032825316635000749963725606064264722402354152840923014468301807348129205766599811883708801094448451218187337596643891342472275026955471212006276623121065761965941930797943821896896498414712002239664429474827507692891248373099831048909497403870051720051525622813878313226946789055183224456014944740436677498340800266666085897751297144681932720929828449509480687376386804388031200652661512878136841390782751076831163526001456820035860364108120112612674575769615540852654737137859429389352171095781861060310302684786072535617306838831008303331103415652930796184020617542125192629084809481909257792903186120421165914021621537280436397028272546620871232647573005565547055968051578682326576498889206793849661344188047945961947242206829247148755462376820113137192373243639323378403668596276607965298237671890606683987634089088891449084017850118977987273745707261885875409936500995547485427256628290605353302918981501267323367468585619593185743618859557405229974250456737790726784347352157641746827967810186747410095264521906082209028073980527007451670377640141486337237470599073113607609737551478006790273594183127423705380805174938373599272056499789870604988025901366385493199199560239446441259162785348251069568525038802871705550148658157310818564216607665553361253041586550082213659346308772175069150669516315391738117664524937628082777158667131159950718200481684360871912494360177756800016717555624193948702589096185118846780660377109672178098260555904629060114268174288328528286912732431518645103473903129745063452192540354582910995087858176943479074901317580410409738253819365605473360180815189420764265846121325261006472286204383564634824655288661873996113725602476584416530293486079575496093748874419137297038511595569018539695963890697609332258479109027556648093840495210119754625940459338872041881795988926506391983999192418718754303381180932391998493398875974570736131094862019503351295097909558998225218006010315662293405265781591169891230329754213899172957103530133809758727464134105174661761030223076140401374365251668027904123984015477193915230526475457384701341811021459646540464626426610955478569595271524982282459999529208459080065868503394208287702163744324662312325427213272924373225338801797827908438376565632307393022601730188690889823738815831932311535115930973342938717371124127363766524440489798016588764817736937564955911540449203148605213332844370350740708106928082698483916184001489063145914151209833405789612869421739220910274410081253393699172254589655591407375982017235150887418941303668684196732333712810765338710703422285912592360531351779589626919903210639493339817918044718663857442381925208971850179626500746547148170865798741489752894154028533743469332597040701445112929419703976717743597408375972475130924076187333566292953307085299916374576704976934625623912590208361650342622509387827121091093243628704027678705955082638803820217949959748220622865790928935024950696020827113734273930541340092841711476052856815868036241108213689102519409293630813903173249903392632795046023143922429371864671788527964386424983838897186516987878300295107216113578276787997094482191423699397376472163612878201499904449440451336188909625214819754674708941977671763377556901237423628771566703662540660052482348586468422531348309023923887778538098328786120153686550628985364090970497555624814658408825191549728249222333996187227844564185762086053258811515066150454099691408443843151485425694187778997824342326719376343826567045606470153371623563759718247424728678685436652135445510002483060609695886864791566060325715283562425666228890810350928612991688784092233715127706676299449066102144954430627382654621120254326802233252130752124356017503099085021997898086045747437864125528782622493278042929309975450493300037827952036200099412221738534026962810576334275187329685322625754213833217638599624244659344439363005571976882270157088958362290739115589783809255546755938711079654164967762897700594718670861688135388323140977964552958927555982375917669993627185117052087921189100263200224717169842378035012860369591983764794577957060783207900685865841878498217573543157071811846653621693460139471022652070412316436788889926293790111556984049749196473401602421804339915021095368404731875358276878135335201648321150540990170557387185622933146396852074974261399727892916625204325096440123590337939569808021759901965394399002903023695376670227331666498401472692441408243214600045758792835231621890412937855636311822571234917130750874449443611284190615454099411512785512316527649383251645489389923415416838919419653557882974393560825516555562617987475910265746919215323425031320946188761961831222925393338615929703695187966667340131713688550707520663441831552260181224449235252726744352924629376053079674038967360307072903410796701824014644214811182335818640063396315426847986328971476548909657574405248728450639462425203724198714624241459111548630394035440436646421851500863985162529870881909464768321407371765969625864768094544622405497180178483471407394988376944200126420318898948939741763608505168384529495025797438826973117505325243671637982053405419342896428347500648522640019965881715661889841740151794997879280856462073981303452409892378869473838101138774264844828761294456424189609867690448270925533946824106519144522750642316684262012786420754034458236991201968270257226356616924776128420242828991650807008182237063770787163347043360537568927543862399214900130140951718809826773307071656802820747277416057443097903482697482456327898451011225560994466391718473789399186476808782219147986099261087414481518106368982014454233031755988978576260750384350126144094420493139847896465019609891011840622010186620318636383419564729173933063472386830506463313482672345902374650064531269736126230545634399095484598202465874474336911450725889926770833736610700482596582588316110138335415177085179507025923474439882758877869664862477251557111557870506156735401151914763383606465535101543492298585837879861439452095959581566798241581503837629108077865164286876190253769815910316515689927914801175319278890843899309090791349800405678462404770139065419819779828182832824716728813866487601835997489881463575129180468542174029417339154438686912609289334688554593021422131132290076958694190995687059109982012524365702810173635011181957381358120443411092729252559386520104318486052749180255211845902396011474954079746344081321522850032424578145354791317350520043869161650594081066834114522925383169817838067999638733348967923029209420110746612126501612551256986277928985195722381648119525614086310376627013759304921762627104934449018380146871600480798605147766905836249072520927329204771600327018030523615606260005020388547658772702670973381795450887876006362524706202395424721462125058695504862351198866286565299729355335591255352782039648211051666948021038006819445691617531857137063010026800159563082134682170797020363440228541820140652516510353706166829170714818887263913022223756863117459245079627610293865292430428836204918607318996681169618343890608456138476546205585935831915927394628009524955433501741670604750281902947376171600123049483092145383722635064022910979908120603481831616415617694372097502816721851758074621072790659582912067081648467879375472574563512287177610955090788331292770721263550567759090842794467539687346514012361486177877867783914107957039437335339138235940445247338711047563981757967800939522233945306239288850457062707918333883524921463621528968403314806120927088537486839481883566143701257332973555958749442045695991868838398498420879271057252243018205128706242305478458163018548182035108683375783784113951393854244281939000475888253181627494698904736027371514054636731392087304487806077772146130800355371580496935588219893912530633959763362656252048097896209120008043107821592696858650598849918531812420799912485173724714331868717169648089470218493133483721444304333727243689808232567517856414780834030340570764339238129707215859702914023258489335974563151513744374777080354193254489476421365476318161941125332416825806579344060535925335997075151808570887593003499018461600672487764239835901790868116934942663390729952472795549230307557899846803221615108250520846731785576771412545841108837720661792346235428719004694527545602676351777289991532664007304490446612739496227733724387898454696312665414600771175518868915851745978407144200514859140403210818311948189555619773713819607592388964076220747551441820448168779275403896824075637556267388146843844230694043343600445350788712314060570313238416480292480935839492933429148691846902906446643178138387459915649523535272726791593039961107402218958631340260371692377978105067482771066168642891806700879618555033531184741850955339368873803773888796770341776783490254215573823606076810078944013489437018495450709365449844120200446254263688444383662217911301876705643753145210903746594008488446177393200352757542422792749246926081223589688291405205213198316969729038309229164722806637149466046446825822068424135292141244883921185100258618110409755588537072033987274498088716634339091807684439721812737821216708251322266337794213854966796985505896959379297882765280991459758506505508697689870277907288909204270474799513029628853354706570867016229977904718007880705265430999220026516873789314606363715948386282562775625206068464294250890854801717411087348041655631427101226336110354571703435793032559772323936550161433116382961908795236989813340280197798614357345663721396240932721133019258961309666758634818864276165429641396137206016563735352739033129578182912530867632729354222042023600322823026156443301820489786134013622997538015797121647820620977098123370229759978893032463295345177768578139708059454177097651830696727309595920059244809370042053446897627692317661255622742574767392886629102956372440801438015820503369357862510876404756675909422514773676203164429750301309476062426301559431066416591087089721726665061753547863562792469457873272203387117792473671779994049575938428508751221517261609644489513360475565090255036336632501675019158681025455907955801649562910549682696344471126286403451838129448799748336056260011428557124452918614840077659856767061588240767700168685795874173287144500842043229918468446764611574272864057942775135137751608204728101508797786923008285183054465935744080780693464179457531116593532171322978761306717009377269570522164492367227275454480429898308296876576621085099277482687199482799835497490201161684967157429835454601955242540105786195528267297934836127722387696941422606323597993828675813741517090444343450994923695320477697446548693003900477277690951450648438623561389155009058744424788008555851312131945414225717832508821311388746265317841152833048194737380501471744149771166825506665734973907484468901719874964395782690073120263681111529806126347070120174841426745587921032522158219227673388939058831467388413745472732626309042720662515615293123375901438688208565509305691820022406677464061844177536582694443926490896152520851963144238910286356023831520129744386572741127321120457507387651373078129415084566026051458609944573578357198581449752878888249374350529198631359710660413038976538967682438831648313258052936108592066323653547394041470487702021042296023061526210789791362951138573232498397264901489690684180374475497684615923591915303197543124482413424097664823934120131305929155855618084067775962368537909409491848594762748751490696902553105635302576700426534672391894185030120326213909774378346604492430900805880979686926411656468377152881927934742737443818736765417670099732133973844710209141366902116565792402815175762521931770632251688146426813214693112223058006140875123613694684894968558980048693372970899740386071692705728204867559199292219222886060019457642512349395069764799486319245221318541424429593470895617759225924354190721441295388507658100023357771054220540586398966061509893438205117937147363799008335026796241260682125847564929134066321140202211805433461279405043465130178789064352090630178584877944850309353204298015798562068970741052252678228142606419217532550015283240123165253026507402998792503790300300684048095822261193919003850833999573683505263580568849104273471194396196511651484493584662399517936347313061602023935145813455109322928019915034330283223882618234726125904699636894253290135312644379150645174129925103151178273511410066532244775243422317630381700580141333490092175162273129795484674064122658395829743500770597158025263143426413312278490660669618197570841125501721210270197347838233093085222329534739134011608407578973009533093618491730873695512626065522639100367806211045217437882626499581782220529369051224863292915965990542240167177364924255300811240525062516474783259883173528538527256422625464319429338425312132991435366946026137365636324083027235502529088440487675377419279826627850385014960466968799825173268020646155508260418636862437856028106008395849564878768740394020808661110551009669168608895374875018165549116202994163569483210765705324147325780857565643820353027189560382725326316751974904426607972237370418876340624471582701923072761505309270538783695598554273899468125017141335748892781172646942370568066302451166682822759212308615372048338539994474198497819614298153158878825955735671700676948744017907468238177314538644449116771140020325224361236826523732594997110213816928666205276424920674436802769660312969114785108994227586297258307232749147426727459170023468133804283284270521755570685862192798221654008166215590800210203010260941221162894724029008089265033464127564054759362993753659698734930542591421723883086004767696143439078872770720513904639767420429811581390390564651040207303630987966041528525919675223783640987255905816197479705547189037159373055142017451411073848599110498834442963189253574061332663817382042718367499390021436245718791242131426245430657152529122684818986550311477386266829715603706503754952282556526919539152806008067020188999898240125514874708617199955082550132699717076085088857279464167757933414814442534626078933143048599949190143581588822409242853389482388124112740931664092852326570587911991119777245098249538448854237851803099619458309564850478000591995716772487278850144029915708194749100596579148287398851637435075652948628542464835350607809871701528073060306967786212745277597320409180123727272762844337154893290294855336664294962893222286990388341808216366433827227184039823177629960662324868722824139779779338201325204528259742142014086851302023688158906179984769726336159443869812454739917604792424580992345151962657795898899541822746663348615931109600838800265291937645104122268499982500109384635227673906996139310682028180214837687346697099101938344867142633105857109064406774075290730578856775580074688702723385308649113410194411309566440082579356464208158129863372933708147119170193642771050843051777630737473557230228680550117487401790473156643754138703036552362529361981327778937690381792012936030209236981056134943915693678179580735296156835054483133903205901279134578671629509032371216507391944319533778918055074219307680764627420799433967544881452494526983495130585723915536207955009102172492040248055035553431189404232182919975097162789937224978296992183184741147345363901785321334583454068016927773634656144674108447919820415215160663018991843685435123580444810964092131892747983615565066341303806524334685920625098924823353834803419048910013663437515642854173439622512996464897493069485292541310584490389571439089025997753407282368778022944361829285910555738580066849421159539558063637485659708932505527549345979185359374445522418163681476678353099825114763774008087929021924320778023157532564013643461982790881658037537020015681755964442734240599796185761269318466358715519740698806928485705474708166800930017175494734914721360286444236105229490389921520143108823660598054088596349680983283475217647850846278422602868932441478832256160439397175832159762773592563822005728199229119874042912213844364140024357980039224081538822949559349503971396475401403126695520155925717815713525626258013204748524883620673295453175746052602792531116291380327583232875993517847196894202704600132511545565613615866036514653102188133980200691819647071823539798515223963216657617970270099872128652329363816778574906673526058705177342906722996889177504292027953676300309872688406701784912018459655662066178332208394544780398753354575556530776533054736662388087094562050745977071666166023562299254905545362454227394370156008596560224322134585291337762532163977461558982075553538081730588040657296666176689791017522041808573120264466598031563399743655151693186230445020521609759671616142995498405106299372005494010842568692347203556079052085651369409360636962817434358748009883819942116133216838400819228290228875411693163641465449722014825271022044508273199863077091022641012640307310909832890016029197058495570216144559185650238555915883404556646193384876158950507347918972971183458299317543807248288694088037854632933761148557199444990711976436041237224809484917799446479564463813611381893224064975862642285774433219274523533429330375964962067267509479942857457262205428430207212241130949564058488267522117877763193563415028249571751526488415431411395151867792992899546708350889676601339680525471145586499889442213965133269741117589670988813185347339978072809927345843013972179020649490323185757437390378831204942481448395415999180096016449962852116256803298825595078280428345776509432521938161579176161106767897807934142708215050032011789520637367477309589392851437017999489400743413153866689657987238228512232314454018919913370898970983593968110099309922085015506563812986508252452297381697873901597520826005594741360782158812819583108624516049989211828365230923134022243617741831874218441936138799837270091586327467924477569389676867890282707727522443440662090148470895977591653743231386374502520390830710385552975788352255413706543028373364289293746864407319792326338374149598669335282885916732561284108967048437709678818632710086038439566439481885228969825110393319138259066721249914199084170653131735183601524256779415922296037852894633598152737673654794694897477886498629884714442576480035964458148409242101834533080472908410980285372538508698105370784177091775480473779016112726436033899751902690289677390484809335689901536672313291740046324814210323911327477003582410500616833338120864233164756210435050138449389134325586680899808102775447743888230366351206338843942708185356024019886374693077629094260068335126681472679195703349745471298255450196361153119632365100486073520261497134617815479988293680154034067016139181474103494502292887020029013971536272871467962380840817303563949266234546415676183871815393650598191965789532098919607176194770342106484211506968436594017740088288002334544476149625669573046366108130980988370478553033069214315226845662282191646212097224271868468658462473954397832348914343035383380094172069283890517468948206028357083551922142064205403074790931259605674737209154609684533829464835032392604365985102952486170184703203663787561234849073167721528745921058047952315875264286920993883298346820475850137199125976248360198478996490521914577344662806394612544224737684715420757852921671394662542750007899715245260945828955091816466672851333739696433631752739189460539801143874510871017166094660341889642666108582202930176282335343621646303064273621020153463376613112316868800324117697271140063809112426210564290367566235875854700644257996379382823077688738849233343222372363787769505857359718065227279581226213144262841040994537953671027379863957545877000887045012383003670859817409680335875569485424073400018833356483864996037426023556173434054262433762150204642122617892872315409186229124673400575366845924071244048013848034223755661503666606539859684426842442636531785614226957444863396228176482600370420464152080389289203221414008122732745579640833379022900170807609742342174353061092043007808486934922332158300687137931911807447133709124398814200121787411393921453503386279185487865797204201019044165157405628964552625250371512097611089640954696184284413481787629391279473650394914858430624495056388614761250720115263519382203495620827802499058405322118689193042312539701381472303282172864046575058225132147272573055361422158835521642728706926149521600511736828021007784247343137910596790917236081865063847991498494226137119369331482027770086640367126840475354742535615749296873874290052382529672832421585008294881509765206933120457054014431648895023230614384454128922750988210066523838704646367054816146351566892241054975388279106398048094209545490804770486464890386956919498753389554797485289134529577154574263020684734235128002662611323322468054928334680364412735276683958230105882393571825544663145366672795569974256648196054650682546975222232874775975918869871276385451249991039400392290398966698654175440190614664540351064400644993744011065369063596031733493532180598350802660183259555619285775488495416371172389773888361808652694558065540374002981794956275083910808520073402876441388073822341715287643978792101161672028664264527274172020616887577697815310888227273243363679801753058614904396472250478656950359109870600624774496806564028198898840393210879351273687517340557255131882203633698941203710765214802971443624576546937426482595642336177912895378761710362994072641681966905182529898764676100501574928454775967564257009494143063797385546209703659991854587483603922206289958629565302685825960335514247128299327637019899350073582768755602325902143115218714247496414103112967397246866606260688430737952905402677393187956921675070157969637934731616951388387149053273065027559266041782298885477149355477770726509461923179885334539136255017057083506801275685565696169974503052958645000793042527815961454823098704892566727316033702716412095204412351406536045161969891518977056069389399079756261074419570832242093590042356647317406674869487827633109500087035921245088358661242708135817363444665713449769896495991763644093497385413352417585107198373103026425087351140156836728782579114434510812791119785056813881649146600691299545483059734237792118946534745823661614808733611101199466061966733172568479268366327103041316286865871134819820029895690004942330053639593483178795231011121268009183629069808733812454770410215142299693275035100899756834107826218411700884564706925703097063556851308539149611726609084861477010990377128349990152246164686780131466339110861397234157840544575535789667989149462819980375263975411466581268548446077150521392665098340705393131125906227431568391496355671933432088909944332014862412567062937109740464061950016214400738983295415146607142360537876976254574016340149904949089414524762334796574030726858078231205888848982296079685093495844726386436387140844604312140393628054123055975976055298465693794685343456028847452001341406966068340792558909229503654535516631646260742310944699758520379380360432075282832457402200863586440852845384113719641292812357679335434860497206514169727911038505796685049515408705941091564915950420649007772273528423227485400123209774334489454822762064740891634153997377720005402932068251417667927667721623921632941398607149110287670526095660235331834241483918960381469345521806143049318477538823586722142866250566716935038248647205880575133215599215786268297991119630772897786786427606212956033391504400656183108467392809390177536267654926062214890211062732787793289934830968259742048959329858787316098966779996777277963105981180369926065054466586363433621962997841276017661024025999463078468648480912128617869715246898188377553402269329329964708041391729804549700377105545235245290787708539956830336708612833791829434199038655559091052733941862852872680020352228847474050547885626348721432201943957405460685525768257729568621732280559885720853766745689999309991308831116458454401667797938754953473061584574302136410264960250276287849015936965381995360691525443710095188996140251306997542413185231885163907545546158169456518439597282196153524997735685776657861120229737500142549505011822548716334936986314385863359928233255596746220077097828087997726756015449255035378927812323558234071969720807790094197296310839734207081937604245855529348183432337920923732518234706642018017955998041187060497336753855966476896616148502753188297877185075639106925460615565785464521312567875164336991560833251066644506717282715316516077190249319048927648587049260314200610964099199702583826872285983078494630585554140757965391369963996409425179913343238801717161536045385896623289050503475495543333914662051488023221721848704355077527897225181370718541458953686019583553946825513744818710620566388255065482221439289929977996832426635281910983364299832442727428939133909732075507188043114652702319563280698036913078845179671716341800011863695198015431512252981929885635223332910215811437023835742917421555675136498621382567395876129407688171161366095736889650065884468696739185741720157870150056470753944407509442601534980481292897608252098997489068685458003208262924404601848481046479947305332279045694292994347470306035481352196033932768091125099278936978465025401251296457601845860798799504593540046768933488246411818506187310144098723595174349660332346712420291640384949821065710378638058125307251485098682219003276743037173623284709626546961338558153208032167033532128516046200446330977942159846683220502897564601357739602800331576559411103765337194725078619892291622904884664343773045990134638833927243090713470943918252908685944032363312715090679769522420685084605604236622799965930750184177786968430920116062652766213993217880257782586807747132147442796813131987409895962568870491615848430111318355746342386461179103402243450173428869853048467401447608211110801037597603952957807653506851265487806293913244190644433442031500769710834795282121391084954701397780430682831334637537956852926735045328496491546743183433577631370585576974522309423505400926334293944288675800551824101060132987048173987031774453121098260668971658585979848519474086835664006207400649871873923589174598999746108505371366482202008863696563050191388576734428782214367187859733453861883095939499608154061834158564592136213152963860692445241186107076508769334737206392007808724595104695266006936185621885144155466261077918866984558069501816329671508533647217160054881410907425961554892050595286529985121902455938612766565415840189252265523085608531426977612485801191326054391671467337199680146263519783171218522507633026846494986244529533710286799104185485504865111718052319622766257221145747555326728352064662610765080081007577792376252966285575624326954032717857359629439888253130635909747700188348375985075096846348168963631572021962455563201969747317556628749358975114185253037042525706654764679015294918271585437035058611403599675589005358776971876626326787563024720442075856914460201123355446040783547270165933791260746865909181511437807376755284195774719595621089169413432110001897812188005010841488701894719571318143382385009160902361884252298395354933838148828225024326745101519981162314131515422463854656102829480185036280842754929135560969207564969149466048112985627349482787772171614536134875788505799778938559693360660397644841203060190100089921537649095278551736415639026934911174090742171662781800802254526506601323714810734245152226177423310283934808965390977946867793170660216817159101542023303800002017703336810338679316358582763252496771201166209089124887295939082838782232211959662496209381420305549837125025859427903642113377840140589179419176463151971440334422543736062485252524215017456244737764049494806726461184406920976656378029701906288424669953893080275806247790794482936571079110820067002479217467954259091637545736389387957610861524262873652664592061194124747813794698471883355041910418239982286054942409563863911320041415714523548389879244639080792340741784909283700682176131544332971862974915329018998726554913405082729925681240021194705056813438989590927904266168455334900221738599738409521882352686201989088747949195601055899927892768919795493483676776720474807058887492190965979528872709937924938274517654336606079604412746166366413165922491590752763581202773685577116089561078810601788166317401435691789507526088939779509329055546387641529290494234161346710048252336760452901239179439348746744151010846824253655160062297137348513271253000923412662874184975174828127747536586396967427768155390971985153859450071336945429600268042330202111609577627921517419082634807694718007918112847215197331801254288056369628859768830136780143288913559418881640558127095759661441639754405642289289670105850384247139387768650116744483514198856962236993895232586945442886443383388736559753627895546537853535829814099451586970954869542385864810723311191612984027380954360735588100627937152531543168355243587996018295592792768556258142789028961188832208870257195577406902878911855234123592522131041890084312894905252166260959511398859473732582531415756632401099106468879053875901019134552274947475455681069276545694058415157354071590111235118559944194636042432846245309167763014996135123995161004685640321153901081457561804417969877798259884250247594602975001498096469920223909655942938642435406946536341456664426088212808837306787716053137492996619041310661998241999687372933681209302144988317987700534177382285988146710219375436044239121060467045727877268832211656904835383731324216893986833299315099715449971349130618865928133930914160533649260237083721751742361149697098775901143596676036774592566375642490641573064069064955697331921520445178529413725078186628052255581226642304206712221287416811074674228970588550582317580706975729005393937966812414785940443076770817002573231305865695248150576276562827847000388883090417595070640575256962268904128862626172738176061865567497800353875475071032802245852677403594942976875977291849449212771802426236385378361586703785993338772887794531377359094607798942171397426030075379130546765063478456157355541892938451029707634938454846160360174865395158134810088428836173290077102684138177351947483148720901045693807117211347016893278236145464303965409732258171362454061087423604603399203813352721625836402188896228151348549994119723058207423985730381048969270757085136129052741780551953411479906002252682244003028962890051748488263726090608359200614112154388285688752623237446428611507244384439070995070761453655011017538633075430052815383956339077767832611665456507001129522867680957059054521320289506014651986934852863790142206170851117538374639096402370884300721059693939969158585788855096521298064592695685574873251960644527368370126510403942057508958453966820076641773915812279541819788856876209115544043285128835607354035877427335882911895989714696676311418395421944886388251206017608353943427690700255264980588623236791221371386680240087252557874136309949889392660382655161986951029518223182409205962042567760629461187532592867407030891283633701083398579468360528432615859172356026145560412986699921399264324847870781462891424097278581538891177199055297827921824043973693177126144134808007350584045717849922325570005642566620439629571345225407304964936923157426528841563884226548377409232976713477902290373560537157174788926606510658721976152461510135923060876956599907972575944829922396606314348553161621493043629703207212310108563971738287843311130516606344173374779181569833795536115207320671765110984398063804643370669257974591399771258627838460429495617116736121124872626796179541873786221376742384712860555845397958651403295624519462823962201038083498452775089483576639163999388944906315104733424248473237059167226882188049360834597815069723019816562772947262976083070235942726164384568277563472621178273718009149137824163348760413702921297474104053014320325764035157705525714394469570126960378230214251178876168813894310188391704213608740575908480770197798866495621379020621682565772894574894829388407857499415362910883733795667252942062562708319640844324311104420105543917561957354632320552451551761772956792174610648427827126535553679596457698391369692601987467024866996103724098190476460805894020499778088021652490255531909859378657296343714935421258340525315782513041818141669028597586967630750546632140886776557919787721476756091789339109230687825877841829339071494738510677994687065231246345023316684794806062372413451838465006014117251302812547536559563772890059773491865974351073126126391806184353281080391225475139818068888355129363070695931074539316430637070535582664771348197551673438541279248542197743827790812495934214126871283763524234306393634891802822598202947958781858235328809296067655033187997162894143513296776150504989848938397383233294594714798857040664163006591335010621983860079063323302942601331482670177128441423210724569929643909480911455870810757598469264644314623175253853605483919601377830937916085189379921485707556245966362213169400642823659329100715969338266487820310249013665655441917669855022008107513985858105762802570608090577246171101864975566168538715715350944010028639003807017614842819061058619097305592513503561598288839006449685363139413346276732924629144003278785682696088846792371810536534698984686958110477215982612914952970794845175668642605709630892496214255240132459947163642489970063060458911606721168681444807477471109773315051749539703409786844492319239614561377850357409025353289445646862343579292942187623257005433829720080974980581545898077826892593120375423630678549163350553221681072193824090534291709216215129046653278073850097686275724092033215982940231675444086938617231013536069146269206845575412608748415827697332347231750055848613139200276580720696187499738525208469482803215026320692098788412989840204176930950574993829598986685546390012163287724701764345213522860577042373935669908074998604115063746399049965318989781929249570167006060881836117836747046166683190945528539403506644350113113763142073575664654327802968400750155914458483783908643509019186955935635256660441942785357044674983145365501466522347585746277870027325882352375352570372992973140865039643093321821677136229041926306464255529269268477230523377212464967645945246621360056541368651348067489607010176977477150380502770133397450941174628553206784323606157230412250288916262886952749728252108150847380945248865307087452631773940082840544273973382707301669973528481105717367010082258838903110171956795113645327347905047514661494390873446476537878614544453776567432832115467663604501104271968762720028436447136208884153569132619645160565058078204215959506760402269345996905083921286157816085247098561596562838569453655345497379590941566988086428521494846715943784656795548048243695432493202866988444185959566956999583813141728460363842572083013265058134643037544295230131330898611624096886638888120948308614090294712983431442263807424033180225320039185522509344482982244785741887477814835991781096057893873987171266880850907926216643072813300271935538300722941374052687935926708215999642329515910570416356678940560316267207432789854789513547324488097897351495024332834692323518405600991862010810635975499343263415525825136560807153068302243773300762327795859748178582837348490965640978736798193777351386488715473697194283786519894244409002071916421477634628107053350392415306563181528756020461340662065703781832634886049040638078561313967531528163475555809205984292925104078044291181620523335732883505510754363902198790398960434564974783980442398523922675209453400561700082197960740471324176209875971548860919732960002344565177825155080281685177371511431354509049841498799159244455026123974062768445879123083692408248564752702161814127590421056435462415866014815257821650712030232376475013258065429615890415096047574947627656254410585165895531274076856148780036903817438904005797294999725738632956881935555009608490983642294890987614043567519546268936080780908314302829714835374901655481798738466595813289568151781647703140506987169206315892680070933247537671161001533755919601951567499520838766749197043664578248229900794997193483003631493151107744552685501455523060327057001739713268029419360016412697364973310557186206049138470224293064186752986041658260274792514202033992303206040734444255060789996085085203576241604580498142777470852768275783680800988683004924101756686084925389569421589689653324908211139884074920336169006717474023386577364903977694323349373913671570727769745366102259009274173604786214323465055882094964003275241025619488207587053329408168237936789595471116201010094099867955831844090358024184127870064853534052709916672975959074298563283721133260481053615933353325363714661125944764057255517301874075087554932144434887879269337961964026447349249253812837388208809883728433494176308606773269149034242819555143729691419270915782386383940885128784239989050068227051351926634251136783332472836726011305651965148654248398180913505933620618179872083397842076655665553982893020884753851143432178203560609527730209486647533037896477274650941316687989002432632746415938075695446768493274620576076722448670086087023126291193507451297885011812538006493415794301000910623225545634535633588908962074993497947529028570794640381090179327780188195218590228788912548637468496295391359419381101022588609093602717169013683675327753738776544514783147181725094194265303852950402628801478356898652290238566415451020199668096726397664022023053426441885692878162181440996318151722661430498660975355234969116979164497853317569302339873281367576544682388161767729779810264808243492439721377607848614601369355701874615390768308192563914087598005117390671930134768954463303754021053439958513647494408462341355489790829800346939014217614783805944973791321708568877070863719438284936895065283847269119343871760911015048912218443103733711816515350254116678629186914551094447118213594401086506693519769852028611735150205573409264516306417148555917436003993135050956600116939520971999403184678056131182762050991186968980515998813616281313158556352775307918388336244278715853130497422111524767048408196599852390745283339446331550173789283737241566157648343831710675750941000277020018322507057891904202733343804574311515959315360869095573442656189146790333827296384979824148040164805518447272231980355918988380754356130089370046378432383597589494304600967479890282743690487951714840865183413286128398984955759465925630746894553940424775355054828359847443998199807073194457935369324204511568160228645335966525680252601639725768543699470640282963869430868046304910625076324136945233017654215575595030872676632806715951919432889451503861832990153900148003388087260339087415609492809750518082884944831201425926104010721993186894026564154236812988660149426940864757532356485294277746685527171879868329588493956939784418057174640935166170418028437727899502322160932928924151582232971171782570444603966695243279359820452257352484716374978574258608247829943274810843157936411292921607730720483254971773093268103145960639951378867287271182585331462369830808962893481307541255984602796482372712697158888574359755414595462609391827084378030620890616481300926344419848920750356847880111563108907032912103719809302500466727463119876748133975490153321786888378823540584114731834219424949042365904335089785593279872197495682097637431749936135956177577896620073659781754818226857750464490940501576835667667703288701372847258252978670828497584654619261012366009783782499489595062624599456820346825273470984727341081738978919837132949852703061430448415325699878148818139042508860372528259876525509520346094591929866192824802121291308806716708943229977679003587726575308813516854317864509064279721509953035450894240941499603120805983612256717031710232091941150646495104913234586146256470385628617693555320732049353195362456889916098372227255531990275582428896919070492233577693066267470074386009440249403887507201214721801641519771950402119099713950914990103953637302501617471924950689104563010710612653615028543727961276056415772683136960387915353032531321933123089497995836780443394094409858643804518374914478268708692899925497966589934300822693883536693916329754618534689526230901596272799874434658162236252404699671550124150415807528735737246323213181499160635040639257222914913219184449244845050356607034746996760273185946477970246243085509671323029431924502547930850561483779179552079549696344233487735618039271378187079901384174626955710112969632903278459699547355444642318049252154051826431314376380061124814954652334726830867900536787256786644350345029436408697981159993573263634396271062382733876344989394343519954400310177386611101922538465416142211836605569025440241640386139829950820177213454018991167962609868456996479233298615176634266397920302690003916827783854235790558175177906854988371429401005405977896812782678331291635382501800185370760311047363819062644437256136966763123519598323707622419434964769837073699983692236700983941179741674505245759353725679694171734993411689766760571403910245267203602127844854631600513925432756038476228213212982405344299445519845282082053300213119580235697082278723390223240199267537519575101682690701248004786360953595477422767621925681394545317714226143362374832377997386152894461825336012866119145696893083843110439490869429206944625187461852410187850789479559100629260462158037163584699069276559133528458693951116502686438452291646097141463918862146872143783986438999584951668505228200828397212065975195173927430993423466490083039046655602557052144150168050751990685944770403711112301226195380050767014836356867475396208916750609652250308758974309892033773680253066775167416850861150726124776555732293505179269260981224099343369857219319405805600730626841600298591052373827080130000333818753574318481321754781023700819303869032919358532963812555545082063333039567115743280651189804687536022989941195446989542120280659009987275003887525414415962591429770619310114693553960996749061088255368809058102693418242014551700598422069254841300378364953722313402153968362739838197928984992883063169188389448053887611784372319643825643051449983488197093246377260149088484286828539155684814671978513978553272634304801958405664117830530176313179079128961290556552507301936511507722566843945558013238920963393735842876506902358253999137594142750988572984373466635945616771362348106280601677022811416980183666909608237727856035855322104775858342190911815793742269240842491544179370661724771765318837168624543414330004803699293679276766996337536643252550630817594555106099832438639110057244257689912965945346598694828294757930835990465042010688605320091078465408923887672306426054891798491603781572775403574370538565129069462906938483751755509408221264238540601458085871548174953827029163036212549686176906296222594669815984267972907659243802019865590837130172427152421443761669962931408604198171181083112653741294783751051124714436108111771064329617665415446616672867821354028162747194455337282103788254765649779761664350549820889868974238440280298026452898468706450717820537756308991702572439683918164119810417806571766397507259106176681997296250660762503007046399209374506007590919404367147548334770747888394719460772701441284938939605472745231713454479102841229109132190292388701957728243922805068739405931972104889094210217027563923577209251902418190628400635036165194165634470004563375609691378705736833958293024116413614815794588886732978688398571579094213640766778063204864324018173015063825671887083622408664320873133585916744756572243281153278016054872958020233088871735162412706810423153235125303525963288098935437521580776657308061781669653051673856928452870989350086130724757067634525360312413805051558546137453390808152493646544674231278723138292902568603009452307146699567424047667870631187828598471470458122824105441532803480719934219546939169332582067763320384948527478994681181962555965690607251766637399098310885469286967500097289821333988045514869922892490409019162315110023837783348449120426700786943787508956161405697476270579240056000675635248256300552499047871564111461263079268094440317700093436168119529218732337175625344359636136968137192820307895838692699029723050807084367161369425642662506305353884659214532498182731590597139310207883311388517052596955131107283786664947936478482656065677333374081016511458880906963658841128962319907410202395032758844522810469566332500803119372193283324486246644042859507652946311225851757569463535881036473226984839715077487409938853232872317878963905467344938567977032368605077916414064690375371760775793425419372169946148558913509070305674172634273376965521583174634532382139889744436091565205025092373260893489243358982176308461011420254877931853475252626907635063219218082160717299112799509169908639683606299933385730037997321540098602563425850028779007199179699033518225766998662994159376491956633878101465910348781250675974772394724702954012814867993543733936460387581946176640764354772194303545570883233627318431071392028838274233733405490256456148167076603272889872951239769645433451039321195794366988910102301479046950931019512658038007805883083920552838241551711308849189865609022231628211473018959302914642904005681346913979394661065087020735044194086991304107128943362561277907416002191420356407429749793178768788661593765319252250628838100690506086884454362684551803120107820387296781142699129829917915568141738888189103134770040051836974574067151279680487176354985210860543100557925670832646628011396421830582533033124802222011977390348383630807038274854369706320503178339707942712553595487526225068935643832303927897933220417584479013551616901413013348513312747882892518523332493034968552762584645559754979797789914979275461828835492472610178972773365663081308574024438115071014898353527453478560842492790285362359982465347084767815701975661066835423350829817181595969028828611518147228188403699287307166296102060451995316508143225998708231012823343490607120601536664979903204729095822025041943814792160080266544064232194814087823573129712176900374226495780567703644410484554482514505697973113808718906391521702840463861571380071885268676839382995806897118741317678098441755125236990411772397099091084332573355853579747230308122158990560506560551559634406445932374108402160680127556968254152999921155633525235556175096383578682627520658095986640663509548601999792556928966373623427563167739067378207725138781114736907388689763636383110301833982243935908864592614246740017927840767989939005655781624494993488192356050231723320393280345784104478733212125094856762304220414457340180873503547110343688871995448736677096176859068724180772925993446625933756487836218790264703479755536332597495851677924387904543056401854054823067893312218321900592646190942278942155733418774419208156304187069137885092276882503916303761256214224966518738803053167019971349182814316601676893950935626774077849323354416907117962474067461398561192561660978458623095546412995924192089189806604830360270810110122899459335450114918313235518994491184413002437624806266302980400310677577142831826690240150807257936627810650517657154771724074423939103794339140241878335616334151293365116107532505263495636953570813950389758227423258102092325211682900007814743546220970505804280709652318731114906215815003864570905109323456541744541030061507257883350250555870514532612797712313000957721585022625777017948242763016094808253123925606102422190606860426583835008962908743787993183890474955705902623264132122086333880782050384723488838457952541903928416479484453590740466958650635164652175308475481794117666973616312640468040879067133991576385059695166533823932841392228117185389601869800693359526197294132725061148901576084578226318882122829834636504310838739025663456534654391109349610306906113730429106210077224717858203016515123559505262338328798565543404351812845263618300517086835995964409967723687563761901753204231741607379039021927458210582697827624303233373594042036570443962921161121916934894856595996546045202259970475800102431381400644459081692261021718112491935289475342914114844055841349726595377501209736956474024258223509206488912235724563426158891436798829804478364828153792414583032363637225296489395457870926972759552114635525088587813012566314477017576730235314033060095489654981928691341811089299962566680088743715434987520349426240116254100628545307100828934980852454013926606217323793009697840580767884187438751736063418079055123092857789900964317557526509861800076155328590743227129358877788121831568140403771603462698316414525826750247100144049561027455115002207441167040840209688179254364483557913360682195173470554184451660675224328264651850941603949993579986428201734972017735202641865045719989736983370682324856528873982030066974000668362700114390840843169927939978721233904959783832654126944826220492148250947587371156685606377534258696680755366647940891459456708623943278201001462592739584451332628586387090346341104319964320151480000385052382585220689229545335042115874763303691263854970277956987135883079499586332850188630462146193745130426030974774822035925355950691813224049101816285048337088901215886702414209808253163428093527422279772569045407195695516094403771831917247358375355514720053243094480410263793629432161429607260239373890871232061058393626889206498615377988295202049844243252058787282823679576348387325696560198479830689778189935159822171231735097873089213784406832502251303386268540094741143273981066617227806505165018739891154262326796052268464663046840849287531175120355977897946481744204063255098355000800790964302287209671348536458141014476695421992996324209866501466306215273553196921058643964399469920601066294877202595283047495999657141660230070684324164779042869615927599362398771095746664754694853434087529789166144466716986279872109435409211466711683783957257896934589090533564544111293121711323111244639325183540839656542790643227215219931202859829087145626255262861153049040130464700587942505142375659808807187404830691511343312064220010775016182110630757426098355894224172751204888302310185680793054504668162208769782423394748627274514628471116280299928290160597835293722035693831477579073607297643694239772058024985648533250389542519185907960741401272823935039800036883013521288584027592837506975363013284754231421710031133252600643744760227090701909661552652610563749692145612234664126284744788858947383783975413509728971125757313319189736552182419404427186463829974914173019779314135368122956020376324037182627998131582555747857255318989664813860148965719189775552277018507536361603647172578049463431524453741325375051257398511455565235621851320148456269695894541096718247285090208762947353388783539803541991258794209446950809595026705685146307756956355081785910874069341194221750806927854185104863041522772626056328437233264517635486969772766377395410452402020452175176106911194792028413330174108577555561743246447321358802835047598604463548795375953035780574948548787158782755897011691954398262086958852786462982119383529198002458542351842461992436659297728538026071690590146320910849392331566278963389292550345739341465077097142961744551203694839057360981397797101992700542843896941149913646411058749672093227814450592887501428909527068926970186352831344635262591192164674992458221278297670998714222267061677876044949474385416732775472523274019331878007012145166061091503845229053697195998383935963390532678573230175264799093410198996677656843451782700803779650991494006473831234591316972896457129866034812914939225849150867204901659894612427174787422467032836726247739245935910743680179935611006275532841642340137927819741406028290344733521510242926717808988425260514173127125244950029088491218375607679060100972952989655978813001495430961623914145399307278809035872189189456317006677965656510736881331672594603192355228378100531126852525105346303782777398882858203157719863919680194373289135117840057734167511580128164256434510669976406968929586976722449654873808697254544294774976095984706813060174291491556583899581694559458941409199000299029326672208897273843777996755041627055286784487704838225367548599053875913792135530838297551549691346231147997877307070555485462686107153673633065251846898735660296124301048143340012810513771583309883285111714355775214282908895961947525091460395113142566070014693078953329623965440913907842549020527200410975880070873053652036762161769263720736102206511834161383226070871011611109942006396579001437737234814827675074962132827401713416783643491654083063428027355344095367907554818256317635801121812199570885167570190181813323750992334140819882817076201058925553715137199731696283504943520612007530834602927855005463690301108184092836902267543456416418078052429804535131038750959051603226200786383269410761758147849927287093862265882397277181446682423207015854905359316354198881005748485968231998677128574460524820523742876824019491556398237410842918718435809266244751722672410310058095731887886606040593128116589731157995351331552986464749669682794417162471111772750368175121435350344509527784832808360678899459627679967111706328108929233214916653589604183861678981758252359297309672165914995354825564187304760583898194692153997949617300738587527533172161367696484929153626682058144021615465240222743876657971011241247754469009944418775160333410576956680711927421668381282962601355587750773316628577437778864482684220875665776246968877436466509824180969067962638810314708244912199896712388394418642739370854635322537990546555841490301255634872358821697476359838417376641518799324272662410823837629628725074458191380204651703274951040408804822862124323686449768332570468256339701059287157956589300386522033873703252649365499447327063441547989008356159371696651960022042563584865084429477855996130446068209767647056752780943171069337608977222913649462570152374147237710737247325198794255798352404373888549688915184200224973357298418034958378312115406441383538277125999170993731340550249318560927977958205631747995366963517527051238369471198446189632054246406204698705515576728639601846986303266177393317800471386586779871644820172457562904912223855083571350054031168429663243049086556861451042657700757023567904058895675052839805561735706606109687366597019411534445455029055461327982419778335459803273855828204712615393929574021904027659471329084523409327047318361526125050918785715572485408495690551318024572407284810290769387662273358419034567496912858906061875047678022880827690286914059853423843002530029872772087373641694056060724889918507723455820963303633948338622983430951587454330502933183568882243092582480412592588063698887758047462409205754601832384523525569052242357966936901776400099839149366054943217723331144723447711891415738335114497370006004924128031952957989196034656002355128287914053798476495729595144412508308413420175481101675567171832923904293391578591817223958018546898474362217857361708671598679348783916869001898322830587659434688459266435413106886544703465805498263537515540485083896571801321048416627333823809984304949981746131516254402240993550878857334339258659986167414025151662060375648019687184524418965153153039368078664194688453569383325290243434069378874380949968600348885061978843811863084820245178782797072708309049021461331910991463695802762063271001242697432271282218200530585781937432925861511329964547121274300826644363919051789507845977636035228147446710371809675259394581713070224008562609979034299509809487763583184699549605496133870171317066533865014553321225832017602403400806994999004587536672310927867551748455311818748707320009760566489763864034951015068826924718650589114581264620747886091779398958703140832932481201422268987177535522965215581867837240076573981313019197764687423806069014839022898874409569070345908602517241781408493773146943182537547832133484036047916499331754932486458505463839008100490674298987168984005530287318375481648845941941661713445961527827315310660275681358039142680629511128208352677281471489848715900111858579296412102415641622696643324429683783601708420853190409639352461119631283162445516845186357657249056457500106022103638318835560445338128353437383790639102869046632357822987670415011830120279218796526953452822540498200172578575617785724063740931807991854872747456442702088149233874783874539657142253982920913225085148683025785437441690849344184179848387955731404687250482220480038589484693891725197978594914051711648703106130302566708132059177588849508121586045298675229976788555030418809339929224501405527033222397830071089013694281625929612855998285117937872144181595456894961180962468911582896676873984757432400367531279278227802868065939888382381071332619506314622913028455339029068716127591297414920199119893742975559304113959448185425868931292832523975435080812894989096847940596833913250057855829806197174297809554408173661926553978402196366978989366676158473208050930417524658038263739939196217885444146522497504763109064785353829167058604704363098802770828988233310818382831264496442878299831699879988246760198151664840520056135793830494165989175655154899927915711667688741582413408447389196088029385634818184362174874509769349972899380789232669777235517472599251320527673740347005873643871296974741549723427061175769744681283229819932728964767833133495199432133907055983096651978337936531125355172405738830478744345312819686628439897779339516677216795987837383361256496299720882036455265079930100899038007944077836911369627504652451019302850311068806309406440414741966188954303411505612845240565457467018154141287994402891630413473121805205437583489008658213399639362716536063525844352078200087354916159061221789864150877316963045782506672631103101593753092200997269090102479761209572114447578525184200682982498496900255467669680920739712681676476140945826803422087344049552158325948935662913837038738168678355717270812519758500860282722307505433441710011003497435709675883476255492835012394762639529799112368505795830761817519913787250423116400797768587932219070582631087670892970491002025890907739337207605688833989493543838607262733772598152329489725690043448665311868211864265733912280288170667306110015615483517037600859006000518635611099180257092130100313759782514918612065357253565092445983114303618430400237900885793736643602234414292403071838960679474396740539023371137706875770496409172771506504178278497187247904488466476199226501089309461025550587819026042809482725147767148978712361755226884890215895731729515161693441948442381397669485086955952379163280485507507493065721271053141613066384685730194541140173204964274718806270314729056306388148709846483080087558638994181375636201246988277971429343857669502861292659787192195020764165920676718362703778583364343284899045416148592249391391424709226635043393089271953041814826668846201571137280250027084176196812096590437186549637187476469031805796550222881724047718823891207891133559349900306609158147754589393720195897505310241549349879706091074616173714724393276718863127019231084872476334827537799743829572391321890817387182596575774766214456459970421030966236148440050876273240208986859927412040134432519935296340843005912004139770023216529311080079735776841409490342368404986344472211304904090640510762880717515643604784735230514088593017249985641403356929119221090613539219834087343070681136018506729767135837066325880380486715669105585669689247300679389742238299572714417105451844858596659425676806443163823894931342265315528753856107000864238223719156011450067253841245848290252914778427211154451840566082497258070839295146377983875570049288924963577519969799075598258303690337859406465949855307297039886426948286894306499679021749070120917749744556779412069750100464822325345423241301356243609833627337721288244711750138574908055366509147660790000658220312922205482997545870668446048580628664053397248764404373951761031868890591669470253194504501986231255028175578344591487892266313975987257230312101164320809803989343307170097231358712643089800286777974450708369377034192725423177444214841121532395853575595935027302763686733780619700008164872466870921047063418390428345647940193127108696414903123855785281845397404387250283557062403813069697106070926332941442975564920618956898717501849386691877976593202890728843869484201911244950014082106721788523932974038212931670454234581980832574037459583565176630759894988567342169394520649542531115844594255839634505657067665822707024738706660078584701800880089441452179596908323662706655894433698515288275447230908489180780763443760666206516995282844658062373400612933615464779775680064652365444656561106158236398469380142996481107214520866754973306716246489935845201796553729433011574754115300825706412585560329265776994394604281373228271306884762296712272921576327643267146569925652028772991128803032703287689446565440224574246075987724170119872148511535969529973509936532343753409553263001226656544097219084316524859069655194031131989733792727722771905988997013472454342031820026111104121649622349820091798828937065144797657171458245475309654651290525290196724022281967169821787081585083264503562738552568459940950197943455427432187732004493367924998118210137770842890864251909591356753930609141850896467935478487687805282448271364033740025253027035166961773120726933104294484206481983234145062390452599710947546087236361511886697225096040770614810909754896348585584611417185346327391225015830180036344815590797185474935505201412292672086761168578594529086011152910915680296592173469599660998229105693862719800777721201089417084118096893251710261579297569899078945409629950339284405013834116458243212250113735315489354776986434952425143977708186481620804649332464527062320563323452498012334505391708953758970416408337432904874329509335751573010757220477014391279924532496699681107815851975288036281318981865462145833332351220054890076075190424737440106728286563531812429095915792133605979926635320469869602186385305026245834027059032254046638165715402542745181743281545171596747787359648546688801038838619755093531531838536982875563715936073248635017183662200467367743807765190186642791206070721704500127583999763713399258336955548601876127039029838927660324116739766166615436852083666752811786308426258775953011905428582135868335055561338148227599492374778244627384495737899612377575567104276689033546830528825058386024672291862417180969270954650710550360294628923415334057888303999842996588544319004116381065719236621588730514085369878563664158492519280544068412385697765216721618588387657775668750215307186687283783601048930074149547824432356334127867612163418748717855439625065595162493814403891386772279684360885261045826022909387099977569323066901060839958324206318001707086154966405723428029346901500229540163623630245236683908492649856911138230272677883586942500163159538809697293683981711363283886878457389894185474532371707199785115536316837263291265686572644403502953359046972721067851657947206543646687095886985576233998729920526678277581567827245471499022805440918026672455670539264415645622250090714832678002622529198496895217997628862599488033109390477246636584259491188688982689331087297618933278284318499896698588531589423564964537647351269171938747882890560823226391366645361465177616682588027065731065387703421223913152599765623389043866153098585051248052248264873784681057830214293220247159925132838428589794224069378971732633384471198780239812180608630800471049036936155143089897338364371293210149147450504757835456695867263404126660109031186918195771024772596631184235200839562370253615016456754925116350616308490366308136757552583787570492566627362839265348667078174479076688342861018967127487570421257878753933791375118982554330272241623246045293765675045611175140475558826837035509893765486268126419456785578078164318215860755217413482068752454402314913684715475092886905885827205069685379337515023849176508096418359208748787689389212620158387563102340617789868662365322705086257908536687343827352642544075439393452684940966646346849169493814105889206201782295366886085049048694827262500434904352100400250112858235592627835194372065350187331062080124751908375440538096108259238989931390069944674587452177627973268692817993574914276040018180737550433869652764427972912019561249939278864309289367314877054110619337758912155842832683751019183434495499204350483438969240076087771779152571196359338446226336224793454160920827065617992503772409719227745351555989861447819491051074028311850109865879566643220684973832781868580388728356982900895072376441997748601172934048712246909237644565272457969883293040830600554725680285973412956653242147058974557258435635356883123118582156821749947133316285736370547921392370264575008329510560991422208552374671285709319528847638611726217128312039165323952589578379278619121980785767013923215484554096007078591647346663454744345970503131201600269863544365034319950490572671476061964609580240551354409031482459085365179002155124577775949415115049989199490526974842316857459430363864737371434494018734489270232028972419915128156136940766103385789033467349775005630323409991018438335049315861266732422034506731786806827356762527155749047282239721065762719408375996880760678236813407740219202364689528709697836436873050559737853486801333448828925562449267476208815941179858451474455018307219605667035357589357526085994355607573029658055660863917997695888984393367501145928289025354371287346397636924214112653888393676516788728170144152275221860225935957060282202549111710571030876781238830730207698000159252146875437470497058636586492597068890140913204217767058593281285856902352846051753072103247811101254378018792455014869441189545781349728193864957155375879330373640459509463899960572060790860675327351483405211888116408726344161381930074101072069914716385221103267118591122590140958695998258017539271605153167303097409868993557077927171771429129726758079420243113150004030895219216670256701136832580764297162554132879720848427164095811511937213026632586199494497999202477830484145132089196015349772865124020146299434110969436333103734928639491334025193878105248219502896640433684659470345353651638520963876994950239229915999698559447913048196222899953901610516791728130762071547335413748602680147037240806617135398189262893626223329783230493918167301663863556400343796511152665668458536206051845608075178175175608180926439397351013205437168399626498634791078084907455197446099052692268045882462748708357472755514984616824107848227769252060019673027821956503936878011210715594460064271258849878337440157564453999304650291550157112610195823087335101928385001237301211010699543050191232304232587123237683430211950706715797299515928900746315727008289532610938113287521632065017937223470701799530677561761444480090433021047583091566796147424831353639712104396835934806406881506185859024284610004433359511514245900988869809042493029650465240501150455095127588232260388367353819561528217203881498912042748699253566795208445656021026617487501760744656101803031283516148196365140330068189204305774630773730713365699230153901006789576746459661700238354647482602955638368463371893742818210812931294329731414898160944205490847358294843326228556793239607546722668852027257391593751756247565749948409235121720407916021129422842960243936190089765119935851499932460690027906297798938050169753142878438426134075480352028245714070914528671123689949252186517434273719495588686001444086793041602109549333646211739556720235231488465949170891173659391034430026312147063430383016991626697545240105250263891643999585308632276739180773050837180001668295297576551814489270981996257764538311428021699327162376986870516183663313534534258435656598985483737585536175610501321709993644001640679893918553209315977560215923373424615873101161392636851703594341685534696690188238426320372589357372304182849095760185927012148253701262508152749636859618663894821111299905309520613754418644623587487091881982510797724722178987029416166692245823457702885854697578781136838231069908273671786563418677164959215753201015173105352881539644997256058480658351819409642651155420372099490893143827803304387000349511473336420093385421335950396787112670782298216143127623227769148078045110499447686805161406622733862365761285109778878941228691652120019983556903091302189894822400647561908031865635140384509987262966519066737097404287114795766275365964604334454148234267011404873887455249688344560703890663011062871446762244471101065528281722557041963798902911549391917338126876571239793303409843851119754153266326567284495779417339254688365572754806426618986497722437924537017906364186918013598414143862532670618749230415323657912884360407006326487006442934879316365110883292524963370363504361400711197285248337401246574844532174658931120082987777265828831281439336082206015577790419892778514076589335103201690501583820896877544367877255239202717381363775325598663162886064554939575667658721420854215278765108878323026330497672170351970946778296569204430715777254279954080800732646432922296172039874685615415650117492962556709968634680412617983517549459347766541275329554998523534434319894941176816111635049789924006078740912002325841827709873667598818194589574456860518790209691076463163149155100008017456514799785384319592272507377512468309262299540089607799646006201618880978777647663763001318517645687121038641505413647877849693379200856557061688909904554663998355811743008841159127223130223151398361324345708256735554890674479799918144659647133159542305846456667584315918870492577800373965742741603899920260724135888702232063437254403042239427571341759397364861220661431793072404759835779994257756900153643461923638663148543753666728510180959370044044162104183950203635521056569889715148829792495841322485535165427295155133529583663983129011774412905878386833193381309859149486017072020274804224649078777276164690558749988431727103786596145852634665434460328601826641868565307186356527765247166469357294570017185878508722381008478691127789707045716663063540227969877514479984344471519774562364039198522011420219758369779957799919714325939165680960594489428757253428230742410730678133402005190555112764124450524955071449669320119933083136520721111858732265917016471681438396361762685171744593025860651626978090291943612079333881955832312405827082173748168080239830220009918506317396285617175690766836623565095579379682697846577188449625920723316153117406293018427061908432573961751976650948005481026136710041868843250032955163575505617543194415191786277779208132166616854248911277961376621266385765514608925434324807100501936436967213250753903377916416591826189898333210815087622894161585349893541395340601254671263583069972506618721862954938075561855158127779998481276180963884601868490068044260020967492264996738984194174752816957915041895650468580824494108728793578870577818475577765724070774184199607206644674558021513279339577708923007549865095850057912476820378781464678455435156775310854215774397344620514116290730665575637250066275907077211198337652989076585782461699984550270235779656690724985892012201882328265871451213988223859381524798245865212532797032999588915311268743070154079620319705914776518277314834176282097400413122174202339498685983974203109964424513375909281743963748279820139860675003684681233628646421503116945370340046414700398439483981814275151262397978488931889291137016716946203153390715690324463075389931402696509927438817533676833277361660769967061604285292303675936618209243170806742542937066900688331597830511031277666954396642489977629290223955276970419420452000948850132849131011777497682809561868996558183925977600960720570141441696496037420402503645551035674117924294898573472497249151607522145454837127879406246981460886110986054937247568273906151565850908948096941195639298007524925100434181669718670762143591604802826431975244435873246964581598836809622972834799872982769583134006073347305170282105083812488070717933067351171897393523320202257053350429554147677198961609940395043502550630508676400222943755502075117679427276124743446365658747125745628074768725833360808843938275407106126376636962997516893825757651466736294101617492979328320331531597819163161420108562310134817812508759752496799810624549979536983070528085186284723173466256863297937743009169408456162021607267000448032586618499678149056755721035340577362411080904477746372042243546413208978734288266715484825896469151778813627956555827025437836691429661434206367274205366166615070479425390564274990476778890560344671011986903201998200707574561515194941944946720164130759784912453970967125803690567716217903112654912387157031772164987756133086108659597432378864927453767617379474679771362699130426269220986409191768492308862017643448002312022563908921422248371579445886504318994851971825848674588185417158851254492320568498233621434193937883871790288686376770182332603681612336346246282894239651300531109555846215914473854093710563934145374404387407220818205245946831981542080266389235963139885269057206773656385526511818826789654168567069047732520362252632347511062075580566669550116256484787861484556432189734123742432454357753588934944974497671767318379895625454953555138584881540430928469860459012757197029041398868438475007107571187755349878163905164962683562913026039823953487216532245093531598767567851974614100291984184994508701311145803189410314979159729207680310009413133950801226051779031841168661683650210536435860575896599210970562268293552085947664010871872838804368285519196462937990194458413703740301477098001244657375328343100178895244680829387529171846426274839583197799932012290031133848988929925447709473893223787084543966474279370853860895277807457362250975756465599070767678193179358496520147062432958351612841297615359225178657521891377511012922728632222154872603408930668148125085920005926129428741423585685163775526479090471294478955869340974320143054132589599069268319815260695939027644308207481012086520341174996257684982054951543935318707190541600604936782133397708053648320755819423675606504520979000196294168118517842849419598882833446464592794878536751887731863812339510511497135580568273830339436428297937239383086447980241509382835880678674897124999770435868283824701273411435528564795272239666786879461619097050943000254868670514670137094973214543579343754445781916488010343368902618166462737911921492137330522876063283144656094394118145869685226191313644437218362893780741792341198011652799834731206568857972207347195519759940082161177892400048660863952503091611004170569443475101800826119063765275283697911815157438119970176100421189898889644237634866552926162298288833041474587701398825813073187793735940970166148925635272877256955797995921829402790272346209188701656587939355537021971893141657270831744300434453847063368564804466845516061422056497326382035081501104063777004762497411986084467388890646964676233732011652436402276835265745987324077057003361308038203008471661833710607521279074417079152291958010224876238364977081945576584303102361119682527314795460920944141556226585816910416814963371017561363164534617106912000357638117370005831241439289267476574914059149889104149206287011807309652164036260669561267519080553398846313479057901793664366786731052434678013961178443726464806027710567555760668884944754257910665987665039657771757833293364178347558847390417609077360634655925532687079439040649490793269972265976961522510763622329666740723220174754119792516861805517003718489244250719772802160266044886803764455659072294731950311767594386666944522575099636188720979812279175530868736110332188884885632762384851717796805374689366529040504400929980119101678789725890005761258475421240351599394180893483338563159817629101682232841396858467670520027324822404273036977798913130818441734165858863101864163426852597576015485281328877595006725357059990636080972039088708421658464177597572034106773757561057576655354574004330412835461326940372171477466273466024323625249303647007329806266407490417230257682292668817421219225181902406352544585102052169070796780674802850536819042850228546381072695061888154851867836481468492050864432141659561174402587395489643354801433055555719868194069560671646547637975796946204541270172024149000680569234587159283718940935074759048896678146232669625935466878885627833341154047562825206045708746028620068285325455293210388022904205397387465199730416452221724918703185482445568144093851621240849568360640460070903704848264963627571474329525355914406941926554632815184466999526751080773140162501351363172834886260153587744961199791602218080771498916579064504287866000444735171494455068475376016396349782578570390861758974279170685189414861319628517158331451399587647579840048711711082691720194862023012306831233215658403615355793923359736439638118632237987530034713923408943333798085816488532254276232247177969959321656529256357343012273348657103975900668698434921811709512271683229047355716761480413596859482591786520216154052669056197567238647187347861578839190752182216529600076011265910402911825427956529939936764285886695569029564344290020358846102921031451975630804473575342977441678996803271771984455376443703803224869370160543538140689215335144936289161632530476332144358296797366172029440760835220107620236739706832891304840950914780603056457971537585956901745072900805356934600448860317236907285950961006399409765915230042008831726406482812850257793329014106744166215628780237017407241605868103420116818882144574966750633240608746085259048975173876088447918246997247533176578327467590576198802655597706317481386079264683605865518302903502087420527559566009460169879538830023925926040608910913836892451507951367983642230031498214972161761712302135712556486496301203626868225512725420086690472241522129081824801507624895043700662232053791508197655276625299494306396578864561228285845107286003704006327480818818018397040930933239478710245375178231656696614050741340794284494268885938423251508169989956517506499229549575623589874358574335952417662364306055038589567413359704687600553327507751841793832574589944076245177476026419200584978272006163489312351343562226439173309679271261364219278257784986365280632239868814188386789734158925146213386031432071537602472541298866156438765944278641182522359675914281473288709509469984399601749554969137729240645895287594310468778884402695351276474869111825939917421737303064851258546413157417222091521308708184928781097800416981497559051014117752117355402201882388157626329714098311736076167268772365059627239171975878734007469552734897159021646542158155352163740575215419728354376225556753214458815865996634129010478625833181050413769797300514782313755080373917681920815980085106925891272375811990820796519373429256530272091212195575839425951736972446520789066802031008552404727534557088798704252541582888761195543232167328534050510089401641715917150736185921001976790610495558967210497591600425337177631529725194251993454362765359532522474811808565748236983002675292934275059859784117792880581471217756391420495246679293797128100389955220575579854594069708582256174410626466312399307314583683679173721633741907978559926432834719297554450133175151755735431850588741519952018388969295385411005230653283053926480440104013484914811161844005972958568600231170444219130262846082872897636598695881755538757835051073094831619949429459819799218003101676834829513927843575449028965392391054403207736454553019462821072253527328681964608802771715052195057546945676418257559328160818408309978037033363209700825332349068691282364432001138960136269850411560876217266245428667623742897991605025923994135075198977862931723951360444973940070391535589097461624922793778058313389175698547951607570665191173693038321118422150261995504030101450650385784844003682842641717407184927452154060323775471095716471140592136459673103767424858063067719714913270659110987117739796409721934196303693655477852553624386520524505844981098726704493793252737565931317690703315236079398932655112074291937729129657617847785008909358180832553035686046974178918866034178212226461174092438059308112623380630001008889997653104028114080968221595167680002191102658250709175151228952760389603336752340173531184420668103038372219256551531894673546235453624995267262106735020550582999474910132105317696049622884962758997479054314651036225028100372287648180733058420561980965565073411008362046120218582450703899680424368987555608444070107175696762986735591047998959454088803239109275241560295129719431391862550417480313729565672345175508745303107951393605409048733510081816220611590375423597575332032040711597937774772648699360229863720524404572080644901765036107125145667166825247512813197514182878107192529965751859992477329827863455939990477679288461022435794629592346287776627626540872720698525936470105959109103242542729833134844617478175080620260628281427843662832488853688075246047519467316129650357018082931192448814563398316274099068018373351361732539824721489206992473910495132003684113835753963288431067670296199640720167810878510745065924108499448076588167141819037422286147262135133271875241381397890487077377444676292584348345804204756649906952945874910542212728305313395365930493130961770020818150591707416731707852947231986715135291947351550729541464918035731784683582838912002374193876700346436053734584902537482029164659941485684078217736107183831295525179891579398826921735513448137817602721038773915177527349337497674684338917327207398343030405093532797937483932611408130513885012842547856154719055718777062977424146899733323938827555706486790509514220220606023769741663540740460361184912034096347978495278588047541809768179091924407871858032416137266368408138147808668659289859113704324420110555299842222068603397535862682288800940624386945714181535124142488217647069177616667184851093016940309319270755832224622470733635767801775420559937476042632419283686889274774474502512973618995546897480026223230849553494391748996373966374298398047751392018384998143396022625973204299400736547040827051680599344540490075850272490541685479812748657509056161460933504961725515753594025741532963349118797385264508541300895192626060230801522790360060819583685658393602104962246376844045057265589420183491840374235582858638109981361870526124070953487817523216086753030230931250959032970441033733227225166088799217632922446562192090114982342916109068772544988384060319738271428359647324461645924737777492349170059575972922591360363071424863860668777372018654745153964924080646141402357058638900219207393767978347840415837661227305686910006383424486494498679815548702629934220401639369799414431053031584429286515934693927123507380714895499679217363629934017853718676374165966134949162104139123287255095263428107135168972319802667433272774454968992293911985327565742362147340194882969015124816756913486344098901166322706656120845088045090221074673475944997215710558179322648104826760264011388965374509071405257355463820863727775310673420245935559232512845186972498693439046248709076298138926435656700679242245658644436781771496143027384129358723928271258588554122244120686699453386314546228177486002573271770398342850891907763379815219797659864911566634398507830363244700881494365986174160622342482803468570401476347684084803653685932088516415514860360730467720951704615067645105585265383866471221114898299879435226504690655671499299842463208964788743131150781334453737827709744160900910586514768332008131953866349682436949667469871304284420937192809906079841641254834731689197602612304162738311798103929550795034129063565938902629738619505877991637841662751624206542436276189202029810257671680202930621449588086602182063035026677410295989613423995683615813839162864587918220251738091037217222295755876098073086764832175501347001273300120080439506877905757372597462000878642977289925432013972404206663025772514834790870125031135944189659835340046821309677747122445713542937321295072951200565434398377297288804526626473367687560784666949527232861942806603991232013877387710176133265330716484136502073597380649701918067825321832304227642806735461348518903114835464579647697846959725551054730596705172775670822428893370292019047995136554125398814229211078589652860436445337413272471466539888866908483790697952962545481115056530419154365511992578964447010032808356474083020456736564021198536617052682461152591213516075799277733825814115911114766855239763591064217470888001975712339665682366168512236712914994438404258427041784002360790911293865907633617429409006409853041452059504933382811755578065486413647632131134158130686741359417254075071104324405529204123406179402795430443764960317196822730226810544018132914607978033215400456901341613160351462911204386339033525058088597786874055347165572647446984935125053812914034021998516489048299819332461243321550269878288131772515086830084040070569330462699419285114663658719556511881088596786686624479019278353442222915093288232557969079324332269234339040664327833218512540779844857465297613832546081851320340234357906559436050717978241243435117393608461817020441293147302065000696693116347886096805601028276843782238902851930598936363685300763050743953499874403014922182682840290466947906640295137962832766603606533531932062486983188527861120969813857748048832053635130486370739833055397701872309188818815715447184453921595486059678038495436508727718625561277194605201302787733837638359659002838139415397685678363801597176836260556509868929382390267063737606676516753669539593031774937190088907919663282092191316661929631227930791698246928357622514025692435949213544355023815490812246524416719506115665730096218341908797209975986430887536647280457684275485923146272223098955865374498961999027245557179709827001794804361353274968375763150777786950689068933814578392191822476987066711893754214149082178881607298319997434984183756579823252891675444675858418379298617031714411082758333147523888988255546599742829188388670424380302374520017670130366106137973826414472461382863155731170181632908678778234370390242103290102763849859849475494568532004159702925740182888856836606466973510376382601380645403415662998669329140730722876831353060554071981989370239080422933963259075983516091234760864152851558536828766825727945285211516033882055798389479262837494499722670637225327778099335347016713745833412445990510312939868112234684897575080861566587266997601853861804723760902094202192945834476360738179330036226652558907309271011159222211541362326010976404765323867767620943830788232575995657069893180529076516046768586343278763746015652894309196654830595858566236312601182141240602429962491259865323542991111552436706727969775060101224303006061788344832135623612214684017542440173319369527268048972547063358681987395454446035321109582562590021613794761040831895673161310503595540770891934462006734750720121915246408899760253311837003981452440515644678201100387947452481969546605554882610794278497395868394352478849605430506505410941464974128194920479920251050836236177585302114868003818975532661052869619338059724522912476981361770281200313825555354850016500577561961440281754648615248589211126389162391663353938037091521007221700764179587214182031480958103008584105383777579398138575185901270966993323240945361903910985453060343713171467311622445550490994065876415234608020088289654705100490654544769462549856169307446661586767272848652138442648274459427549984379246285384134025510406219294326488149559403889821921207741063747520039397105361513336450765726362810108972033118336718347444397000724468865297473582201413886323417149797726787262057163732631700385477469411102168255154928581714383752421687695105119351910176131836337599903770549661609137468627444202603120458659792317846515053964047526477153195182376931762531059108455092269876997280570903613924667474268014719076501345097972209312064909713792401434376797853590427408167582419761478688991553029188753611036660019555025256949578608514855453227887737344700426633344960941601156493887123603418834875578099419022886889710730395570308520506361258834983743433770076429860767888695418279008268369873151787234405281278327216356170030096167846874966737692632008276453741654128822705016606834610407578685121746881639261592099494618710968539382200134807363426699994826556087870448207438236673303167670942257975531236359563117680109011255369948655898515449322111693691073993848057243725016468590867918280165060813925226713624039912935749696126321800419987448968736400771618343993238263704023467582613738132882475453902223931539733365174639378701829432607326084747644590244910840974559563895584397238326558834680000141500746715414791938919465226031306936150970745138262692319134710371412694584801023761496879119901049189048310584738479194830659366542854846314627402370825682331051270901625188000356366062251213010676043964462970092414972463623865694638615930927577172134607817972468014994197795880088652771795610260874142108610538340153495368734062185459509134966596181698057895222753143893514341635001820195314417629292133184008275938754187038071869903566278072360972658860926235190634378610198560638623124164985561852061167590935821197842248757809401000196672338923578951122619409386803847831322107727809211296398041088941417631973896762544632000279185321695807184446243376845332235986869570845738467936428979494380783525367661397893603068220134260358199887646067696544487008270974396464808128300308629028490202169323167612958281258320521161601359574176604577962304028266452246779837743628053064349858231635576220999476577524792136314198478664074892433436542338164261261089670046029837617207281770285446468788936140691786141517166870769689933097744908506177767854031598874663250378917991793969673915413642373622211901561558483497533355932921679785716101188565351954772183639164662667995942985510601780307618339532593128417502043052933593693714690208006491935616143732686213269363375650351014441713789091124169666241736363860837081886041848746531988020340429367967374328917934320724524640279124325729401590991104097338890515848720106085401062896370455034655318226746960271796617095348582936385188832335379582352504125040555829179458540158573421438258613679244421569169848395618684786699742577210816682031453352201896996793214582871796940348183657760222515723656371793421243840317779804889693279791998320235391933465840062824035757723983104357335806127824624180816764284279307830744162504026823400788526820795678342624708996716404993830926942434503187595892042553636771675235888571066119900734005725722270479856943014692541757017485083360875968964603279578277179834410764479634504660555990721684532920182047403354166402804704999733267380317387378418873866747779913819089819899316704864294851116908525501320047891525988735410015963179934672863759092527478983700187828705790863373539011005954924935652972429492459713471032324911237926549619592678213060986036049367503475683355830947250135929101398216550767193293705595683502234809098885758221288024063495146959947626534332011825724870031710555976087966043924372248962116468503923692999039891287806866925304457342742499253642059953046853851685249402614429849314374706384076972040683110982813286718452067227805495023566718948737250442145453317022135377080752883266579784900852171407816057797525819258860304731933631795378387182960064863999761238178407530219529672777275832223964764337999457734742716791963412470356239442606703609936927907617313739577256249621863697513362552001438536248603778876277777132084902907674324253915421070075322052763183847253266445602268771902960160803576288423358506283145761040678690295722602873517589086395193710783053052514147160822713072081801560059049309199909144418292273413215358596870205825888743275460153388870540241857219209867968558976568614104830114947513646258440439606373614471029347772420884391561271597674685139839019539821180696480074327268899014597858639854447806524424208672080445834014859554223041153798226310546987981021876763173972050306380132645895656114323515974548720049305081515103994362708943721795067213518068337944679213316097691036640830479867539678286901872359241628851314706156698434713286301002741242935122578147224045417393697485452914692129130782436052199075515256462931208047963350180067660340224156741169090166321507317225717803537353887097623682121595871580665389055627216818436681438268587170486676984546100888500533114914768329707709176680552210209178277987190040777495407270666494774977372113614214754889550804693870205709241363866866870491557050861864915646769487029634356338026590205426560752280175997421084307000172710534229408266623500973866797808395090135277196808175668592850556479207441663520439713304035302954214185278874182602056057004862698985356370292017051815113504999454801889612266031329512789805130920968682732467380157998045384005266774814213700991974441740190522369581197722126037720508226838814661291117874030066847420226614187937195706920810722220548224692740048355806145221478689783237394024098113504848835049815120982282784716708724191773458616433937238216588855809431716458015730469559854123638176978961766575020597858692134946903627253216665776794641449671798454360069031752437088178135094794801342078613643397387882758687454938582337174550236509496601428551766912278751980478382592200720088631186343209888389344256126739361435525931284906824780957866752734841259641446881119057044574912724787808586820958292920751279976582078712303945341487791770259273448035711133906008524682568215436748106165481842784982284344838598302994306163664837950520851810908466587678372954380667641469119685788493499231892341756924152878216575412613830428808189435636288251711107796854853011277710453279511760097789949888551187454253574988041772465835927537431049356357570855676557725628837167146567687764376536349352888585406446728146493785727784653967656641855754888946373713333828077187698518576699747398845518567670716900913404882603856961391235067624721568070317713359746150452689815942739830847360275512993194956696212349511583652231472067239005628080889530570795212672155042244144429696410040656465032374475563851897163295985455413164055177305981052538581530022425298750797936084966202407679072387472753489240262574508991910427007820463533385464544912001530450916689690923628757764537437588866427249112401493781484890539365049954612119385688569077457935266337865043025083728365485902336381193415678136459694340599314071461167502947856795640161958733899836952530845515511137392729223298792808889186784793056602073798589611594429318259387853621376776822248797634645785638620289639084616227811206575231188144699056937077688334296319212611286549272777468696461349054894198536059624834193492626711499500723704247594032174732041163852557504587968330014702312100740525288679894128873822341043623992309915638144551449471880593359780176723794310652443170206816966008267052788815350705424142695912081419719705590092834751124171270945844697218856303246753581435565620683071266436520334617694094228209892578805536070209884924698731525292184175695999027328062829623437637266420809499129310502087700366573212878577624329917462672404256659547498429277844017447915661795054630735316719966400524665425572664811050476759837385040890871169134003460639473319344646084309427843910180506514990293351457708257504284088451493137535775281582546082678419822750394112638324635294646656174883469788774162423624077810404714922458175476677138130019966434465649659042906163942905314436341975701684037447021268752016423557227621352844857406342820357980341693698173675747857678586424995382518266998399276084557566747587756734209198465721392814564109555550079883116064473722912989133102182622811600577159343527506056803974102151862179150564132369087695589578449782194686879362359237873111808740363302378404760854238246703353041614739928353691890941186230871346555310484715516274044920932357405187178677872610335990179814304720905783220381839267313860450712673671729400772866223135206051450421837698931475244938195424982824741185406360681128279938835180471861563502143115145579815462469745231197421900901575763726344041734142273958310789770670832991100250246902479451144244097984303071971057430499277734286551497374515795185218167220938551165777081631338014774338861531082150722066617471984590392487568303818195428090992143152029695637818553503624073939109037060589622530587956981595770536049998909688925094798944320846190915122468586708126319322531783789762506867480440893446620838611263423822741667953587765019026224944942223635339248644318471408544576005081054469684755742270070582614842030467573750217834503811329911133268053248675408674265547863997969369850574073088972432588316081343324275816379945895113519628552927615760494677340840931971256396095400478653136509353157986374754355463179189169445855792878634374701511339139927997279883984829377413542928824134913032689936088724317897631242409484376807466829331247101902053856932629966968828845383823676487311135096336845315374130209266169131940060650444926325353239147719765892977662990495348537940433604246411621441749045290993708223796357089418188011831603233725354407644887814025478855504276371092168225155071210148411289465659113083074703174740625185632031050245524350777151426736171213590834302938623122781315505064126734051533125258089785990252158998801157039805608593316072389193281612129900345506245344771782847340284082514561870273050675314314359466062475844960563323726392166109441452314514416069505779204228377456555579010763257066775068902919418085078271546674018810727751743688750882116777762033124641464295103867321578347080756074806321198162627844468829210161364147129021919515730772874837049545207726447066220713195175333437059675864951992557694180719344364731162389657249866431981291261113371739111838260140671797916009270185204834202554264165382813977775235959011732974006711820643259169984844107679286207883018141109172634648077532981884161409369371311836837360768325227180988083807272179712770645021797133404389742020424931549590258360331491935321678584828484438727276947172096762219021583464147857280686821057488455056260227082671669875206123250291859480889279440867616172416474363322261032473162969131747062381115615304573539050008861329482161746590695584175846785129267441902383082149948510778016892141505130761753071721312417122110471161526138146953138084026688607430424981770172045584260493172908744588100906851606679543343850193970378192526566857416766148251108776262072928657408932789574479556445077122609692729484876520269577978067491582433839193962800263446657114415911356495109025707564373682897456285615612212935952131679331011487156644384681568740201207235943994314968318599677473470864568799969343715447122765640582891776135068076755157394759688162378663345471536386400363510729993937309640401603532123738541508523366771078656677967010778618224197208105028159866458820871604360785439476588530593319792793726131159839067520978285261175254546492708646686795926709669542193468164780566482885817316929735448862933374687351182075291777301435695169740488456634296685572634697749922664109378770367678721186516941460107320698953896780976789984890687783190373640501264889904035147381602920012135613392917976381461002819639153925676622678411610749538047918268126083939282507434199013555001405520772195898092835934316890464697733210888092808077434430948607871467589362665047270355418653510161050185500796980206054163869722953131215783677161099767919128601243046702656127061504085618771316021299886389564749198817585427504097421180875792038237391482943464776359503390115584310970338976961363139524655010820260718581623568327516724966375957318455800646506045285133346362191114896669337797731091101922903121866074451246558677938541069646529541630830214160013652700958500112677608344689304585644216000865376546911438874645373254641543089051549129419787862903160583661666567897236913978956495883985560753609017910178210935669460064311417980986963307327535602833409574351311724325168020239111460193622269510667485751132122389440385621327787375885582566926958156262880855542341358517733685740909293101958235637079953264112210716848189016507353287340105681652354003172494889428948944739954254167149987154013702920191670822402641868972871587209512348555683577019179300790746775514233315779513710250837218627876701445666242744185945376567194908993324785491644508253289981631433268802562552202436557674809854858401527442255965427168680278458581416839191743420639706296865425682748942257864192738736457704526580791543510576613220311229943094633175692736430576338757189427747092537955719704284559077043868416349692363963693869962447089055883136099349891708214022937753602036294845499453431676029909135546169967138125422698247464967751155518213516255281257676131557255460209442145789068250451706726435678311809741882526746166819277100855168824524214454567836896390815611867217358566196020375514471565030070452856909239097343269308734323212754826908153203081529739078941604066271453360926573844268160580526639740579995361873241801873461452287221515484928313302362224107591577191134428777533434913157797237650745528128051669063698850960806589986066919063729512285762646414403798559288273700423845407362467080946406334484319423847388003646377563440286320167896249253629503444761602442449235130534859424179160471601868498266378445945651205098959991160199313904714216172250881306006261729958123400656094346997446121201903305481113179975882253210629436638670309378630816548902504180669520544604649526195702115038215323510188101811676322527415989050111504829792464090752767124182804577109529413840804417929934758099952320930784754485407686214454102584721789637041993863539880606039462948007896594122816879595499781628809508054368534949906616382196379638659243139853400586159267675013032052754422180932457013779668817027235531083941234611238732149365139340890438349770242459870128801248988118082380647538357665439660090825053850493200924735000622763795468534111887424028754133818958245467465573611454632058646817404838507765460822648215692435216770708345143862336236503906913852723490992752640118329942291534849002863500544307056412821632972925875202268358807156372157861740812137348561916025448354473573343879856925470755253018264096293415244428627333401906244476232703969519491093468527270047112999798128652008232503918068505498946530916052861510163243607286961929176666169336909394751685345708228993450632352468899106689490273732594237375625915623103288157842932472318430926161894746337798169138854721954943998196736217847430078956062868805570259794373297903075032321711275675590647484106641111095515067592710466887637625800900153598827272015887746515134144647835223727199424684223635863801743776387452023017362994770022257483959948285662203680955803665900981419678190089872526749111958367598993218129305670400245563775809359424501976847985410964699754398721077407348570271773560121927976696194559828935930074894111045265622906722358436697911738470079882449495251567644943817251073595695015067154293023129860004058656323896678623224935899905406845631163532553197581326434633529068958925952607992402903978949613230336766906401759760374182598641404050222206762400240580033869218053728337432664698144490956906538252991413677676070098796701940001231739467251069115565592070557386503091614727574667631167957929471848835468473080002734329585702196450953501254919095672861107286462671615980706597586156239627309267867704873236358749952551931405133996004669539928848070583540655922993226085028018473103742240294330017944445189032178820393781135663381741227360931606643279553359725429487467334026950645363532125279182008545977861963701172688299734984831703549173550372409853654351444089093187332805341778359235338483666145914676782942715882097405454902460996019086126312695663426354897555428932532360785601119737627316504206340563739241022104998011025791747667842898905163250482083517433280151099570162513713256785631280941971004529737330521658682985364327372454835291018146863152427209412276986049828565184652840870772560551978789336167279181699181899799041281221435931817283256796606158036623667090915351960669583950424563598970789666296948509594807670093892672552570756378934656459160541139271195253275050117678833332636666781831550628978108850257768069957760291840620999458490782548926134774989178359032307046300369682865731053707314912494978719053420324786457400216629254101282658706968264483411802011434993602681926341980263606857930062409446072412646845037425017516967402626874607094477203739451112537153807383748978151241243309741871678549195758641420510131402410063626211334632547091365946531703919624761125892152099164237002485458641979782556686187700322931632675259468094691648084169227372636674272470456297255979509080333175395686461108649136310850883148687154215971167982722768354261067198736880071153203409576378645863517400293163847422748340598355044193187377201021529699533580461011461192715697006006048345686399431578086036250781073384440639000644970018430099640025023595467250714255650581508002803011760737734704834625480284825572229652020579801164100853604289476643733664905426748705256659045172409970125559715725608294082876086940244226957381590436199481929642215217360317490673580212486829901095236990526175208289100519607885147082752065270791354358778915660670354023843235095090347483887244452888852126643265023914056810521392440927743470038761296869576066359689991236129895021159135261874213846478122024680007769392863801281822253613296726802718855718995819400310676781181984902008635712301201265177298224827360349683935209434256998502705375740662744645660062112693409756365793089137205835364442404186694525399684705064655146324112446768360064967031431016091509545377065527161484210710026639379118589107522644915509187963674354302876676804244635436693592616371836440012753456144105765102295770366447059436659309657912157687258649381267079530461623222162690141982563648545457440200385392131679848319008556007768770411225297898773901583369819823223027549950369364811014298309574117120370284965270091864208370558943810592957532691301817048459665859301400230148669004118243287790759207839973185054262252317677307924817965571140776284813795542313722284624255856420262540790762623750062103501697706978940094466305105383216193862670098105324648231347802912114644375382030508142293434664138909548185831456832914136615738927410138352878527222052793201737726438487640235844919663496459996371594632268288679121817647857393269582005694577986934794871376043570363645334638587601524702604761167876117303745852350617798959248103762657612516140491630252697235861742070346469908192925743275314108324674189319170159183955631758836798356287141212404273334283082203460797285218312565890343844143989160546635274192577422322098509626476161933463632957766731573605832791812887574487536866751744946398716782804458081274316392174121713893540164162263980282551145471299202651407911460243276548273947473803382685468986145460585436711369859682758753807042058143307335840756287082851515674707778723682264272047598789614523897354779047605202710899523415418140919364730583500425649433070864098744690137347757784486195121216754003194145238363949528076649469481192081845822487748981672953182298706553889395516073977684843643578072436472128136563692748716466238634540934525658275616357301334774340056788504973792446007756950276580341282565508446180846166665785688112364946281759425456051723760623092965965148704662679029697470451556464429745947472448401109759341814831754347357150950514780625005418729195089957771962713766096488544625803199284791818859388074589639997335292210063503358615009856637995539012448907363431419513094741610301382750835848939453089459470564695469376169939693316978351118959556840078575825886238001028146683842906561508235584941221009541349882420300919141061798961866849174585145779580647199295668761211349012524898797827193261877894854880158840718602532289115691461196952772960242924902612507242819956265679768457205493700136801660359166782320324576813197726811323912547447516767055393769621309333875103323909129455733597502392772771670222010352785381745669366323086232219496037950547696795933982492225833659835583766080993299841057945341021550484069760600825932177420392094297780153969054416846007075789847309924374827666505831377461252776503671343335070773595520737264929314641389519130203224062894134522400550529939263620146571430974663234748366504430559493600026932525100320998836140203425148317110154024666206187699881390339618398045721322547301828597609791872560532602699050957906096927087249919366495338980714144078703340953865601623638787600981489011694499342285746038174600361619622768799698577569213791545202529166662283214147248733351268829668918690494694192476911285260985976422693094814556379619002434370443182059423798649670255430226434044134168804260534990332658166129346370613265963551382246126678857864825999350187688405266795472714462244590260087805660507895262720415607057087143664131916027760224578022194721596687504602554216252472318567765087659783358316004997119907843514233802219161473917731578257266414177165723708093549826775767134554488710665019826039709732398369480779827356073025265697637320307192627875439228294283306844662506449230853947872115379875383968995538735688388827336996572364783244200335451957930208063254060959880098720240910894730789959214019286051665615951501086458426874718712602856892265144200777673337288975872179293612990891748045501012046785108269052896977631940941285825691181668996712398955357319095599414853215122330757854145788387771071533868612598449255303614380249798585109609969621749819176323204693585890909444978626981124122029211333066616838250093221805482927139145902704143594345820383126702058616235561322434151222838811174559985992595175744482738348506695370505041342865770563674307716755057147055799489568361555776317818439987389230947248354321191762375215148363198061411491918401577323315652517715824089194168481724541087322912014130816501577080513079385531140828805354677764072203149760659339757429051919910766553851800478265677667640244468560404598184411831060083908572176590855624930424175572643552518650049227359482584099216042375938262598080555859250766291473579428994311945403144506221966832373844343344644252248716097616061317187440059008515461388832115180046185021910672627775250217219196731326474540499476023926343611418103510907125813757000124087836839097564964191956079922044368660544969994397964978563836142269085376177863703170871880981045510339128784768347838550157082686838322062518613535757841995209713802316722892942479106393812533917506939925391912611403384045902992617881604644226026950662344654303215569961620558976847940746683714797718714116616091366576661880946887212266206355223114972920631358908356748142849541813791835765182588611172261759989597469217330070954698935284787755631794989492116416130709610011580531022307684107652971424893579694011610551430247817120675544847142045334710467156883711377815250967469004713745698261616431613648922566770088091309585570146341592273201868712630885557884555856883204382640746151342001584105397058616968954761648794368573714584113989362359380931844602215642734677181852670422040673385184531298951162521949402559141517609855677942054258697106335398424044977245707916497654750854220686337940199641625575359918696559796882558128068521231303409222508188825488974378974943417993829553800330403646771924353949082052447020909019394845976430140202228807934082304659033423697879159064373513808526964038434781683132784317668281917666992262497579141521953837946991304995921421619763939219839316339631063654232676226040912543200697108366316111073580838756033647585762148187282156015396576162627537191761224678423754847924946889596060112666594913901236269265805258770298435511575240785675401676927711055703180224758456785827975589311870450448662167696374601938008978064251701599143880966244069408618686561337607771153087789384025944879317065877230089299267431089660064067675277556956990463017129115120684953524861670561245262773458999518574296662756410213182513488160891215273780241188352648060375912966135985258860837406285868189891615808092164006946739738016285276077915163860918587970924319055043477159522252019936805118206427936920679103395087795064429100653198997608892779436648186351754323531392436754481394218868185342370250012221625113256961433925125916711562132975123485194390499749651090519718539445785363825652710986998411151910427658221704839233137479238134280092639358774723419261753012284758620042501483277552673472223483801430063073425470243091037353576005903987796592993316073634168202935746817265422494423151110396568210261336718756339460988574171868904098586558277746852039548989291100785558762466571843440187045098948798528063810143903970153512376031873951935228865989772272065011004922587738202401983334040148239729322415082560447568529752247425327668682015117096268564660821193204801293126207425958294363927142042811899831009753744880997707637689579005682525631912431443660809789282021528170629078807169326183764649305804046900429782337780952339144749043539277386998699331659343827711096121520815551485937256981746195392033505877226646610349222308053616544907520845060748880819182343817567055691827621820287435033334155342453278371453448159919592098844774053724521514467121469245470522746606103125305777159435728376698082497976692303585943088908621951042729915458892593106190588793702900249047510622409695104562877295374044884823803021068775481190122164818888403918049328857600116679002381704078252160487831647612228987552974385834688224129718998840337594736323892969965336814663807044117135312671461404537979450797968379621232655819623596001201251988232409027309133156079373533621633502320721007262902538378083352927315468617523127513837613285007560847334073466036271804929347290461276781900208641088324280215579746016826347595011753682016069407436511374638969660385409437891891387297199324436009023325879043540376512751528695316800821804536003657378619280314726619895604536493962896085438515433476667043295987112049851211517869430377816581164952646283614131859986339124949960869839734269847119461876767152404075094145158459141138812514505619318426689685430154502175284786318308932901509676557309932175097373745848020677795820048666023303426163542781478323053663011593576865497846632876107136534620310579698718690820029841979974901433988492425701327832309726100948541817519124661280684912404843113681380840712677806839405973028940094152957908838967367736369143989129868634591730820137683323313295839555242523693826983376825519147598792002887581674994741525800590364284216963724790071391877796159039474769041473988891007816177458452259591704156546336390465887331747254338639068216103848811438075301001493485518543805388177128000418828237307039647555394697941851308671918359912262972847818043743938405273052722124021355146298445712268045086074000411863368019404786976686480064911582698310344444835825959457143068522077806913409700447088774078345397427336438006921556455471307662008166292491675681734944511852217406796900063185376307242098153616022099780062681462809612510847740073043704705429241730367968383254659423601102613376647659742069776746265837784274720556321262345911372571962049459555214549302145157374232447097251416208442932607567322222387491922202150436014793784522361698379547254365821949629915100504892606911178019321028569046348976688635730716718665226252121507891256129629343856958858557138751454821052216406637280424007042630062243924215288623009321553829169241595937406274532684156387014282666918230651143468188184818284451152640929680504945018479641199283069623868258818004746347164446175070564378189874672434098744631259793340278952676890054302018191208810802636352701941033888304252644037872727722062774784820389046559006691710886274356041742090365508920850704067313034394948971877559335552791306073206261732536652089463601172295937727643562987067572915205089102863909345631820965410179227008377677629980475206284829841157501482084312056645938991873516209618442488080448175219143174671812856836023175341529853402556772517512203943079132287362062747024613928214706495245689751518933996975652561566697809607212987999038141709005020799915316921787244438356179128635572083138166830505809147953413637224172198743382098022741910549399878286169517472196200658475914810576550352133971570563283656108456035652441427003577501303345966174605708554821311097577536973050480405410499575306280286052086707955793019921027350837436997866847139325754348237662430862221066519000118176369558421579733175755522650753855902860097948509925524856190242416762428090184170653602618398850584273011904350107762730254175540359479982305123412552598633714699702245013404820334297076937654221874387184235682840878560585359191466981041146918414298068503295894850650610501987665811137559984030509368724906773605540803310947518898952984336120465702580369465638833593762625922158810794920618534634855650823426193103781044600827490563233324369401997631991202943039766087882014471892481695687751895256960586042109257197112021668917206848701021980697981562121951843060715918171921513099849630074260288860564840357165696469105117737473952671057628770996407942626660480327123522608985200146578118621089677646076346439517900761048206896821946150199093699748048574436545791940895348396377207302318692015375931551934096490510748563668688361348983545755160221822724041339338996891548873716653491092375030350182253983545407465876957656204748599700187930138616314888407865674735093609801979357121651202719624033529375616088116172563913884808362079423754149884284603756118663704492863720373016500992355575630272344532204877306970110509814998364983396244035540304154249565768527948689371512965305203966001951497736668012302258137951050557945698617311074264661380915241185694086403808151029047353366441244113083895501848030719198048224085010473957158777900742599064163749887067854823335911683859223104400879551880201251696401666543529187510982557073020093479820629499090642235561216887518401544852607021017929588577721128177515215870753903084141667194830425804517420520153005475295171783636313272466582645956393150373045619130024168911917665003154761600876046563295683616280001370537858693067137888505643342361992236959168695899868031476617841692887199721716059262224084914214851748388643772678566322971840290899272157379145849030017230761115393212067485829330797401678948163785721307561159498023003796409465906009473656641302112774782776467304572492509714398617332092473608796188058987361331465150063248543607089212105384353369329958523004077919340295646391681662040146755477881461106034792898915798839123464040386390059395902427698331341566310058204501443782699381212835175488171088155529399651699173279755775676099165214149447992243187268889409255539086134257685616955039571344024719847415270509509952676345772218160392605334486335253888771854505541800334332862702884467765846262975406829581347624011596718118373626941629163424613987852636309874261966829868734222693262683561658931654651397444911608752998845033580587861881541720024767967760119346443001536924341757631341362034650899840499074325341336685318458521416417534892870505454459597181554351813984297602071897875366036757936695054293955686492429946207563831934581137339838396087375162865756276821197815364902115796034134931341875320735032737643751566909864834181653030110938021995765268230364719357147081559367060138994965173230767108897476108292962274834864717216173267736825735591721675369980921026592369780255959472253108858967097802318666651736026399721123084240181066081579738481535556671169840908226693201998682291222025972449096519206827181470246252533524081178451702272134450992702073468503755578569849896025880877254377774197353518950123560567239110114880429511200244157233194581891914417252490229017764328829430210959289808354567394113547923207981729193975787435568627841038239944610428431281674600412727141630897742683667855319543071020511902933567974267696303766583684424013140272839142221641970817624760650220142338648654379256738846258396379895553950156137326899698582176034038235776974197043155110487030706548789285131922288067067639484082742323128971234058261265385656433838487244528026999276226089028179905454513929375820967284883413674535407716204122081377968040804051427118165103703100517475936459338700775247286613835857044188297599740217222347868055545751516325359740831852847852406801841532926259422469092804915007160359113295689430024275688112176894085697138614611334746588412050302377905626388694233190531763423029589262818179464808179216182429988303950560774301530153631928363140697483418031836089014891459317595165161700355601196228999812921655938011593882474231787093881056046871537194731490047294395554128133290294768051733332672981778262664332963671647255707809505458786334343299182153486500580307343236080876372196852571420347642272323727873757220812710856910511383989378131903674020007396944310945287131545799840668754880085538794813007725180792051984534882865521321648348908409352805244140235161421097113224464542293800535078897745793582622419224438964219620586445312409387399610531843384201682989204906518646923019128908514575800852525020964174053163021474877061089821416472431586857139358185214255979414374570375664632168272657317088076212139768037585730402287577484660537552306706449865994915138089162815351544772135665279311680613377672004793419287042473637532528632574313556513756698422122305789099730712621289832543426916981252750389249296483799614501697717709096687845538245606246873351393721810328355252457910301398058878058201756770827882436983936945902915179962661057104823624036492481935017888523872468751535755362888428168736401561861622313601456562992105247203861454357547855653219279107665193499569458360148644205323223735376370232035450322166447754474812504088397611240533134557710484962667399256100883836675235543055465570929871166670683242077269603884462140689435325822684096861426360213334351117025590461557125526109665514139328369113047983046903125531537146231891852471495939255702131540364359579607770080902444034949278583661658580455562826145852997844385734676418786919147218393463727406447509639725451106890954365925687597608418669144412030650753552362264597381205751270179173787969738316467318998066958367788970613906625390189072582897076769989638262342863165293810085691490297588221417380208915848485593333552989682212349148123399731162581520882061014634887248941576608329440295449009001429394434563597851471637208635112016455391398310854731330658903938274945915002468833936626097032507585256132784451250260957738819053095556597040908562251209707924235358839533368546571728377224883426166094185794935513991550099314313841798074858380445519153010735309744602265052925027098443576216677692009113727845574436260218988963067203120996804283119573930247592473607733522693036150444773505988902143563816737871636130282521664361869267910491375613989360902362821803466972754398692354271331100789913375656744409477158314451247694111038508456711492006254924599655977806012801339933489983075360313099594879592734885178391380608810829326917881487077785568187267180501812239029452376966610481131872874302746506165789830700838163066780203160196669640144346503279579631575887709205998145704274301601083639741945507087204939239824284375365104971330877399395778327257568876644979001627449110576616246540729048529403737262083844553967034053257932230708553435596134305613030023272119126337620183754293010179146099953562096062612612812725553371381126171497780169389433384652008801676720117057047529436293844952793230663031855577653550996888347689274671273626411728301889465416709960942297500745604367594486711103883198093592046500924043752432237910697980803958799456122124274260378807227280327269625439110467839177657081025626082735656917794018213768614676656522778720479467589963421145724662900585128153445228328464870527743476865828044548159170910952744789487066831479889018456055612119989149148551085381300896863421889190737803857153528324660560002972980018215596209463334282660082214467731551310898689255837441931244168400280559485276806517169705182549574891127928137937116743616461193203011712717789817073673105557571797064178438684259229147270898000242768150772645041213481259639795270099189584593459272331043147379074964027111651250150648114802646199190386841054730044674456145717661865998942486266908964821730483962762193165425449916855427219076396531821821614107627264825145514995002928364914115301461658705089904433585044923481559367117955368681906261335949011904419381451445102880635348424441443934588857286821515240931104202699597478169016887509119094769522020770473786212360967677534538483493569614164588552350609527854184547417172357350177540148520183870497971113907077242562686022312338824563834804986330323421015445580852450859797207294605299799842536591493277557881553884279632867218743515459694793390372103030192769914431600907737605063722273373880585278650928803550598408829485818664009329817339927555537543906988162807073168091885509547450683109245156527667502668163804598762392946551289806457275044875581534216594024124258068357836476079235696825296571532913991385377475433452703460638849743783529490343846589143611210001325784950156434990470732824017699590053265667053431615846651469308808306432955017274424149833746221773412116465771637783094305019272392860552030443567927990980876246560004708052767897809910269836414539747034340315518432477719855476171981165729415799588713806656345876015640010028136677321921655547364292657506406004937761534758244066627234574909173812900006385742506398641988000775649951907438259147537475706072573705163634769138876553042823711428217218660960163321759395862637007741697578672805211333771969386458147979368917521140814203945786538209987951489353155025478643356374540486750878543774774577307049508878544288649465227464741673070885836759057878037402589497059242331145351524121622426260924748797858582440669711190680367585263514360258466828778940015152606876553706546332213026049064194510436900633899393666685933674566256352919178531929635720947837110188341473606080340211122492298777464558319726629439713475032199717778554068875256923141713241477288905030185963351185718858828498854808855223119194214422918017227943232934383081185869406607817443963554486464190925432184309737541466101711149611977641440484062258969903135179321692896300700958572891194505007701407749744682451261523075128302112574607739504004175146382696617077554436137872488604060233503455341251523322712904646430067584022017840046938029761145742051004412841362309088520559434734573748509378100629121735883426424400752770273952236685263124942275741981880385215378661255780337376121953364245404746658132990223779881958971441512495951796814083035371054178353092192883126484654225048412106428940148331988189897665101431334739131517114169108402691173729578319983042333591536652595966466892800767732511781066115585622347385645728748337949108999008249314720603664459762533977419807190430174393505749531114409834898234809430019529474385558703540572263728349332073195687295012125030861488317630786242220655573068730484410380130179003447793485834631294612264268926095119361639094617621685686504793622844657787231527479208949769285548274767580557972056715289867935060316638952282535315156980332042334854585360999135920715345581789744247536824451770807103363796050017042856926425859947443841380482850745977644740237585284866363901649000105476669641156925527863425502640703859707918448256444371250576961043622714263370712261267318049454904620628112741393120562143236306325949164600253319519991744095484390420947543572498524036760280871371196767872595799153501130744501058039150144880626465316885155853699176267501129268439893950517926821478591392861721972675848852360792017929218196071589587682247987027295645374707257743602470274960682970030527978035504047936091866819349831306780289474489059027031737506120572688806113257767856082484249245629072039566261802448598432329015764832415078981447830351834830768300414104950231556115517154367424289562247140277123162324445530578507284631359008961975854873971150661086473568577243887272146661772775071738630639514628349602045651180132843686946756332856052998501878587205484750996948602359222358068570841747665766981898170483822540877478137301038190380662301703602736195414960540358994615345938845945503262063315500765199838268990272817882032953497864054825799912758022568523257147377826439374771456278815327980373204673081308574295063807776435582733047830880136493831860862186722058459689968662235697128531389348366330478626558019700745035136953695005624055240920945524328831063592463769997572219273770115359506108132788702820253796026510412572847437968440981343120563056620378266557057305374088297090308259257358292753117621384614640787873157523440303228678797879225009438369907332132151365732175707002167136311634953864489306347827088874462054348786878486412067085470077645514235777327133520703012082539045973656196368453499753280259746478767486071830232841915925510446408218461902849034740903870776478051779571579844589457630893687805017831436432297938216540357111169588167110260820349789573401040260001614015859495389723418484359016401894997201124644841445872504922435027733410426701639664270340022130218610784268069065201151870004726759057572676569973015757507779144977967981216624021400104944675441396228191688092415729619028796907518510110435347566620236532335422442577409775863596975763546596631392632647949319027369578065117862647264368420197239122939727612361077732935613653314553932146715213862953546732359099882558233215185942366336051368495771667011368537156672431638562513275706748287010412959063389112881728861339156903482907110071452311862497882918543817352722457677018533041361568743554820934713686813737496626965523058587919539553596412382734916928725673457826299634349320845296499315075863426886036052674656163025661540140150975339326253245675336831982426502710104156878691011078729650684067511598074103602983792252065856938417529062273432940751965719792409023498946825901002494505125691825727042266188366273918475743562537146551884636534151454468749426431463666081286680155049192197899386604212588882743955503805189940415132344849792493448875837010143928256512266125110396824155833207258084673125582793575826183337718521615565971728464917193306851228831044425898884474739148721449908377073196525725699924134912251921718703015232290255979283347214627426840393319648823470719963286851084709289572784281488547381477722550357533318138198023311590101738870955139823706425192832654436992086311120281567135757683354564099489732644313039880859680517613122294388942822979319237787567119357382764975410477280678418347215253745117874774960605816659860016122639798881755300047715491604672408213366109068373557980191750903815110455315228997510644671654212178442525027355818437961236326190835312319777129982450866987476793799117766025568746142790055145129421882455417302886269905369600475293475599333515818167702573270017075861506672766081565643493645097775029619368544269560339935772148177430230486674553446624900085429250775103032321164260142451172482716028166355106137155406761553318886927523732509138711939483719978092635278171039505457175554595483962051169783014971715124864850605450392541610714030517616201533960125510871794748091905982434201858434124902432148662307948658398038884459505848386970590366047930366003878044858347440049730333392652312160308812208066603480217406444274630213684470044202852897043759109904554142875456582456917346010743786778304444368364208463090041412025728860521552006062712047799729594534689294950980557509367983397642249754714761212776166840013581883961380313066480749887274988657056946017965087433293844636240430141730416986452341817722140749616584067630765521764876265239378151022098480103500149395242994558109985421128296005245670208494499603935431796129817815222686233615512780619380245963466842966714326649564870743156386639785875841257878257080814638118093177339145757479274366361730556990646789953057671638257778157717691685381127753891714941203931904894033066181376435660035485506749943008550930030537189912179632866994522446387347658702326546118244733256378637455909377681180019034496044051913121781084174070009631778700555092410453258767813577315145420320362938983203221682824513850766373013064104496951540484067271486169865375119027619508852134705367639819439475653156735731150130630206399768283994874392395281123004865298670253215471205369689161299723697763899847214895056756890809443621843075209887783047874556216731042011295065570002551923555936424501088079438542094735292908897652548369683457335212461417548643004833130972403040235868535283866773003357892286851620885917031052896840771105782128206569600790093836223892072288975747933905717220362007924849628360071899570228830158675078196240804251841940812854509601646242151917506443398768102590148217487257329926939833406813035204543792921909435869693169994758117056554543683714375989772066171881589394170259196384329442836215792403513037103367907185653535205619727529869017712356776729118790333395587629703887231095692927119886729534032705855469247894886617027099182832903236026396688121256710700641450588047679616776900444821793887286636040178850620105035715264153980028781218259326409194635535980155437178114731522936357336468039311863085628752441865537405693875413650006161400707360567881481875204187216666328820697305629907993146224473231321040908725308191636279193353423577388094484301438095508889966744117845666130168356191744231249512032752232984089449728053507478791776458027688715123713292300366649662135920954390163515764782345218538701024624686458478361698202800677342404263980535993642068410184453901510458385009016718355488887146710827480092826463533927161777798711022513211888678080740520663710438391883326827730139375435528088751844394082117458367282847230873702755732777614253968459038666934394793718694821540913649354064602666785199269234472881756658053324171185990419321892129837236321778395451956006332573409870663677650448881090989053638165217298576166627516712855872654302998334282618370684871830370505707606157756472375297986158815375437932173288268971208362582115938385493923738173456083760237001267494777742890279663183701088769490919881454586020115314066633935841363915614941557219411517491690213762766582645134596936175766876799765315321184854419646470810395196590482939013070669517910929263409224689429910419208545095020008413236282681420832332844515409969583939987164176128857118953089385214047986735012723676769720223912930675856787406386572706325739654500447194712586176679824892473526755704009646534100692951386936389741940601886240114043761652196606519048581043111676345639618425757690844645561191304601187547764804094431781073030934962017569703409047692171119658649188930962265139192590111273094579978237614014428134086763469817406804749370302660835674731384656676002353268698463546806487736103647636865464010621406004023745659635136046713749946726758222028060682381488016959595237766046490420282153074487354919918232669131341424220820439282038593138728074298548345560586049492297182249592384934497779685266405998672919408938931887477246595695500768421432898488574172468034150942042031917533077766249040626389660421487188830573222819705100022640061097346813233837863971203038635925107606126157787041935987376552204822140921570743688384692728835602345044899092200180523159537964953105870307210203392151841331011652578992733023954875141709719338778587556756818191058685634774515256415776377923581402832496185646364449043596280204516662395365060508833462937133832403156051415323688992735079880449015697050227927458065570068764841617574871015946966598281647437096397227606441871167795171937980571430623444827455463511298557836844611340332925236216332432441302911414081952442316204975660156390554015476391456155801331306436131499297221790667702830483149194620226300085381973377162143843769950226237328580329151317853412135428076073772253488343186383800064318273163674597897354731940834849164808898398083338551485187962696270946521310023342350369440795861949798278642767879644545681837339794259802776540836811688581017726076143290735148551518662488081432875154690236975894510033454116355948296059103651713626289730775127376837880969358461801658981662675239667936895473250189693728203729946810370593153476354645428843630055660005053951335748152755230640947436236014375309772203130849349705861933845223932698479219841385526023127675522914571651380881448658092193783527378841675363489642354156497293093501894246816773387218893786499666606671422057460032627747449547009041379637398106661645674050338087922915438935296557040813347021806447790947542838795991393509018307916937260105392425479578590593436217171135551119692626870540604756769379516329046487012053848604452053979497098495283396925036350155733739871188615357409342195596722739304540486984675413676272658742131231061335018225715436097409075072945167870536126083527371876808524202409216440241527532408309811504174166819706232069241559552219939844994212666009441437453970487046359043209406936693127770203545310492391042719286149231677040069541178985932105290208368760334575190330078861983530558883780026822675940526393277255343719319716125353535586561276718027061439867057195441745192468560700777107120853296399883633897777419818952870555642693649009032590899290566464581494816433628840625192897577961700855103703480558774233407770601494283238338830590561956527728567234513869426227037377697246606183037962520504374294205331708156438142302455946875934418792379721903199054926961691960490117346218083617297380182081660573884046364501343668938618731050225943673007699067045260233027550621542250638871507487062632967555538203766851015894769485276583784394081948300687556187845442559006230673097787244878819199055920634412206964866387603305611798096280518307610533755522371273102147627612567628705104878668968237163411461088181301127105952003741741787245354974021572698439353099190457953878012598743367060576872119197458257259770919244444008893428950615067148404567047748958498575715823265205069494474932446890321911050926530111559357607085056312663735820642057228885437114002912419141635484878472477567767627877872446721728551056515955100016655367342819829616206942580432733597436557986823666235525132081304171086124139082633960141200500395646153962092438067535835647191823018440352271347969044885897752869404811661196910472241542531879705170422202055256885497113458241424187612896353023472706915570619454935634096355361288218721576013670399323612749524651987375142592881271533016959420235079834634649862287161975963144638330664127914409604082362475548921900608108360300308964275692083799311514963521774850602513106505203188714839242220267252974281696542308026993092449419790406015646450297563310176037444191948199313763348616937068351802717856383905483430850124896005585713790503122356691263465749301861196861477162947749849823721641287344962064973451335421216650678102776150126326515576512432373138267949166959355517846824633987748698458496684043677849202634913172716333181274930279884556595215710752642547854974156235832305554824569170899452455430083361278902269196503329911242055541350494549426686033793987770065131799770408283547609436635461793410329476735625811257622007022505041264102792597926849404655451946655545971564976762000345380530923989950586892754348416775507989083293759721807267226806160813168179207992749465792952826365378999111333601277375847023065387971828582835649457134274885730598981242815440872643529940493366845206619707948034225070038786126852822600451420174591983276528898113324029686483877414153724916304394559685854613851083280134156442327446610217505151884160075870620417742225879034704866872663919861949726925564336782637110968491523943364331774719950448284843634913962035096225762985110616369712181198656645604281649719295567717538011621787758594971274865836241342678231365998898399646158031326828429825433789613680867208528669112347288806217076903358474728901728653002299373225839626837724137201285289189782895076460802483963740334139288692826853860076634516883432096108578567809726835983291122100588787496875898619293628325024264775388152716067680091269520375446683450539522408638152548530828717413926999411221546640747646928833619671064056705823482494234154731844895711001312311061136462511778082120586698554792823306478050911585899161229450072957189305833289553160400201684050007760959999688920926829528255743436779437881830915238417744694366565102744059773278558772730622007171090527607369047188727644268511635687632147236046593379047945151802628245275602713620585303639023668312365037667777462605675877260920634637991348087932254164040440805638188838043746464059763700946465470528304559080638632729165490406019158213044562510390776793762206561962346195991363615672073391748285405252372392979311344646469755257199054884396475208575536773491635828736605254145247005895170180742524016868339866441136860864328657489514959674638778355961102968833180543235732368891119779154213612902177076082734133119813825594923264006577022783724938944618163443473126223014149554705314381315601739779373186288199574438953045051158038171941516704181694434219173887118514535336659964515213639220359484825170022915553326821814878408795377112755646759447441204033341982936401918831020364287636237736355790596865981643830406243314699525393759274142868348105846296792727473690335333150347314557979942755791958968405037419851203704458517331393638914900519638887969914470906373129140463880426398686330988184326722900576423080565087950425430891909930623092200805094516607671857517019626721276917214491671287066808748457881150687105868356536570815626274731905482418501375912421885011982218419144454816803712279252405110552901420357040292574761132565517122429859022452978483031790270708190485400443203977014440181629299408884114303799713918668699102999815840920728563625940851770815499750027055942657283412553625536573427689862809995221422695082618260933260518503961655043567440817500978019598379427157852563657124412968916058838358860307854286439387456831620375753576908938729336427851592495724825509107724359511952145519074176135408523950198020394503693016226693719815750223417367927867406011076228485475228456727167964460382550456448611035556088424355657690573656268786276864022900049302429374140007992196356932078422895219470765268561757391690970150694612256095169955175697624258192814534518962843847938465701326266528130599649660783699600258673223600786379495028070765950571741837521724506301143513000605080203330975625118726093881833034894511158908576538516361465353682067526036373123878331871297594363661895542246809390026264782027941541333066774018046404632072862424287553149189007322353002435458540477537399160802250486557892798566406843354353924038773511408966817531139101516550716112802764228150628592119781427295896548242634345792067400203905257625097025830127422617871955510904296912155294163491158283537436639788042430378112587758526449922092061532985367024531210636208001607930464114983015485392680644708497625964963991930458694564018844323348722779989045390046138291988811702761091083651485860586478521534155486134173912584729564088119442417883104632904277596175115779142209656987183714186162727963715549963705630324397649916990492926812456992480398200891087527411521520805104865502187556105918253996790605538961783230852295132153666419008046848481162705251796066224102412693474824061034451491763237834071728474243242408946042911254036663362410460226829050228815235933969035983019915541242909494798486029956758759584646856975058882692727092873595681043666821545757646101771885707112016797969863194334570578695560826839345530255243979502783414689484435075618893878700759210027244450405531603565485305641254727862634739121329447584514691236541968630220395148742888402093591695443869298240730363578766373179329022875524284466643035320647240759819716613354195188918766180420594883633416390917912527974984768660179155622147963775305276765221790520605688025906500981987606553373467824152465197490722968897140088418141300796986245167044308222632968666242638324743681637913266680985417515402541779671337064291366293081765845494191888503807284988172958830605763962302642941450149736771234041735748192732092150998447660492614623641425008870093097478584570187060380996753200311995414975383120425942845872022940137377723155024873606596248794905157664709932253285618998345781374509834513252707066365814446762437970409700787064478292619068929385615745651799081033568614279259902405179748324939004950484228852020074577698037679462338507194896091814083429588377612588308125854437188453268825598148038269720609575474087281100843777538578341178192099362833891265844782553514550064294196513303198679270013694469959366787049560928944304373050004917976674825699642010757379411144414764768437637302902781335699205351534674420076579415003001598577773606158592238677090479389016161877059721245602872669905289997081043012310265473114531524802665211630610194210674826124050318720852252725796838093935115740742883880018210856247771934645794691675676990683796289683520290495492201810723512180714354363005794223487444542712005434757605809228955052454810210918112595076103351895749931697440457040948696043638643007127140889420915170183137685021630977448855180912468606110108330502736146401963599790116552238394853299264844106259396185595906558375578414551918974803443379173976176197192412141097156878442908096799569586032732233148137473580499187236482613973363016121119159184508394544846912323699801053003662321133193216958765378993457521996214061550054194753944358907466651572509554336151107159010447766037452668852821366124760657064418902711140976916489621898226015344550263687789278300321160480893919149816393966127894425170523473690838721556378983872154944269413625958797343987479217573764327172564515019523035057351888696592114674762089231553968924338354792218892971738526493715675940711631172870814386039711867339588354798386144166358729920345426336956099640422672423456879014619815737577831305590642495750084430733394164404693381623053159642766919209875639912070549419408479617599463641468399279054028429271677829395254073926848664183187206268375472907895801030553957202731366787532617916621310326499289648165065329371058841270206406957563278544277714801788772199812603676495324562092918167941845307699103764513063734187681476195321134871815903340451948635955200127924151164248859730479561584857832805301510800084880723613002705721458296591256803493103950766441532531751337587484418407767796672401005034200992652529172908319983176661293038702383590939664424154906522831282717260478880588411200345316912186231940205983916636333139382645091553889383305236811404789537672412241740697028281241647152231755202855472370225615996087734851235669413478079600835319848712184302491481415622304789550029630877796391287678643048033884085244677663338521054346663466414827158704274047365129944909048354157103346220286518334960650139919581347152575307692776667782353226334936373672748415219059959962779955014319674116101243891168287506605079759604785542340909705923385759763777823616371288885314860196953702137073699578038376779024000091357274480825478725609598045198029274692255393693492113661297239898459592068607697809696162662452996171999210905075480352059833413581937401383313182946527596312106030973390832518382982929892706866160014785086698507171964808486848006138771060377228372874785709743328065122770567116478611670658081403724034205604850817570184117335163456934931113409849895343474924868454854098656023765319668993076406887340487920193014287470838174740389518522042380029183968893972023925814392405848780785357713554963862952652834106685860081914360303218823847380369111652768976525814898006910132067100072288507529991141168929160796926206813295497684885060661072904940599217328982756478565169144319337382073158649858817633738978042640097959462312342742199926333611087732944701704272798974977163357216039725515982616252284702265192474471108575800866773328558297732015820986289668781542240020754943524965317711454850379811229731329326847677749715114120713507404973160136878850002877052866681545217899035027167549628684465138234139088206942653499110748946553065464255473801091410760409992429596909189156523288463592958138781872395659800199342755155382917802569587925582699774556201809871344091536804503948844758479559331526800953038697896582163110041570841019690361530679370277231420641468046795344113275363933213422448247210276217366338616664700795977644259908393185596487368489584158677653540101274458227092438122177647390784964765214618870077141957581016973771677426423304774881757091358456200946023321627512021271646391195948589787144026378447259405641116604940331869938481637536514365427082459573696234775489292764627092578376740838428695480179647073453496067753325018261577974021868790514868873577951428693741683490842980702740815020121559686738358028298857861007932361953470910020414564007977306833053808454120301127619950078583962778222392916932628982885303406876085699807276969900878989630215955168398418035930794995400814102610588086051703034181491855174815895975839420965742268168035068598558543172592490921330131375544514415256896043785580374389556289636098853497809658384882188688666894689102590448955686844572684063125890263218547208363488565416444023776994337027392075023410768920789378512979348350478989377224461035462351205473408143598932388582475983092302581852863330712149300549959976916735192884848530953982899816324945405473009377534581397742742077265662130869308942488911041602265779877491081395610972585344907910006467806673376342013885358699589896574942245110173715940450771840430709679002592250556803706120155449978299096871112099014255200509784703246794813515061194028588730440712535513256984051644741775678246438608453464034100309886983102415405904837286443568851537940349930849862896007921801886250001943887913395712491555135548060858286621527702799640203639945212465805703549372722627638456720715505510462797667370298055066489914112590389295266680901383053591979286087724209429039659052521689962480060887862117203331993356452477245619712215470328359538662843146695369625534486997620170854660758689499676545482284218268555045412829281954273566638275515401311837949112778039514543405419784695694022674523947611988853011598815378801368524623203994532631283724209947011682008682446269665507799882150529781143589038392755285424409201469693777391310710156654334717325168169201985718531794835835063136338513354812807343681321056858591304037897478965183915777025165031127376874422876984598734769716984301196519198008150830574800082219878841042991198721918484355936891852127971912912079103201710603140335424285684980614082909826149838500159241566364720748548268545446222924256144972664028694402779769494828559374896501039455179769140948743908269702215997191861281821838122550198174313085749937032521411958418878491263245699788117416078960689708414112757961853505248118332088918733791179516348982973309999168954917959130190526371997478003304653023604420953775953542088827871372539604849789606038542331278503701539251680684368575519900383254910615689882861392853728390781443822558987836147582658306316365880903893314991163335088448524065010956910808080126408013855720666085988562997055742195918738205356585068371917677231730835776815123940791574961290000576096620082879247723284374244253264225450456888190355212824658303442295379045720573839026417015430920957729488475752003254253301741145852678816453196623536135580629037692674708092414940245277202145855129486789939951215432031939792588276772513726691852885203830715307586179734884876065381837290499003416983993468549433295160875621390217578898210902114433250708260088092368394676945062164521073686481899372319094541321125205658607597991822774477237060190901288812989113048263136337323650871224637252334543392614202616491468559523629767538365205770396333516554591330015475796040944823626235124601209367953068238573808282649112342627058349191987635062092745649855405793792805944368018177147797967852875318344892215439991182294715486488575132485727713340385635143816706375399812557986612195425656881902483901032929241775461710596347114018147921681221736389845448076196527278235943903221525165728855638202239305365052609638742060448155914004069811204257909886020876555448070098718801260809556394458401736371047923823143973442424684981865501863669988304454320903363747515858412045386927539598373295927041159929936515788458339805143661503413493228800641444829851905192536697953671134254595382112902885892607069580539881112075597379245018488404438424858816492090321395972780143340939876045006884302431933267761753477645797750678398138679578061001419756013852841427929247536354307361740815549737542757081762817449569236758092440777229588754349407660517556960198157534151246818322828147083266555480928809833509012020822510250698942682007965911910581954025957459368564895981380968638262463273377225320628541875411232627411058727636347095903804674128130392595044255307908336731516088445205356373335593880869898106408107262369274603676146875169212549767557448133605583578658277330185324091438754484809844186578889233736721051947379308241704019420894183254939848849396484445444610405066597647874224137632145972455245383419673500622238652856816527423998514683058588023263838677361884937241324506193970195527485363095470071452963766382814795300202404175038778432994902379575171165200271910455278945879118747263356270482193778520474043124850448464308467516966815252812430632822295749124604041516125925657044282676174700706440861530986993311855515946798493841761310999596187854038343612181097150830388572986651858869644524897616524516950046089008787615622043295502692506550126146216724493784676405260321518075987459223001593666353370685673714640395069361344575862620638160480843383729214631622294303867125918341505871061943294035603606514457279206676289241845207928835672215107362148957218296661109088589297068795147356381954796329085929140365197729061944317647541846450091195568636142701945823850421073558018887303477277809457447499447955926254739676038961209140025436186633237219811649127179838433330553009268515140444037494019458599410762175629582748772835795799736067981001763095418443418393431690548914115991598121377639250918934484285134497441090187767597094043636618125716612793173560374375837999366947830436168769413350597129154811564592680785253013217568175943163154888544014722280959694092016593698893043803289315550983572043443940014487233434909014699238502397674722960670202174719343954728562937363118590882514999910570843939322410071219927187097635597077148902011751751527576346845729324819435630155755180207833634924762371216252500327415918362237172392690667326908712121412765255106203722326054024169857898125409964754355602943791543139823984605984617180795552653766933387660833182441075518152011840175335395421958424942334049101499049898864707064163065444962713053090916123873662167993080579137301476436832863021323390956920063228988958648525215911375084841777744119607446919547161566463043602577649384443867818677800297168027514269145559226989559641103850671323331725946384405691766431599807314212651089971406160387641859872518009165492592926382352608398093488696096027584999909169385881256536994019079122530153616950498039961202340054340838666364031586926241362528524514785001813347916493578465498994176580786661132838109568213112003073406447751573060980949124568512807090669180269869899650131978815479274898005173006184356026566591900743147475359913614445720365009690031099565227346064408767304871779010785464865566906372013891925267748617229532737602743890615537963453021864245604743931235306083367751741042820392933521045027876350324717375763975660985421588566861977518991737435616800017774795299022597266437936675069352605367926156363971163217182122415554219731082684493534696601629466922904944995134761144545396030528282867539329937837924010877176048788059943640401109557708093598908254934480087564569558593781514124556544512890112940125881652192920797632845517754551425073663490950505771054139902429074995405401146668326662459218504381804503503374691044566931710335077703323463346972737030329937474347610505622189907982419045869462569325871750153739201400222554807523008388045933425613870690566232324582863732750343910219866393039994566707418159951595888907871434415492571673526596632949869024149369267743082126629974599656238858256756031575289922393148193399566630890152054539871978697460041904447866361399602408578619730903730159511733550460468318375292532066745391944166065211098035961213782520256488327503492300976065864175723636071084113194152886017831521309253604265744464278546302958191885150013364481077495782040773452799292372570870114242386965497060622506248920431934312704680393731513324390670319062599197741635779250997850880544399232798286900602006550478451699896034009329766295030270180559066009013731726167210052141741686391633033585390795329189396920275592183812315138402410837584363021410282318144741777698475922241093128129016757892802346629867054019524296587606823416594812784924751753500841670474973369731015938918713584029369325942472035529822509199021592994118335270231306205022952552927789851487269361963013587971830072158331458377106252199781665887481532544347223589929783481930988259573597351713573234478294474812556371187859069589253017428539621161346936836604448941162398044882863072300120373262337013227092901876913776753286491897111598437177808765397654809685619791184687885224752592320242867468778242458309721591422216578452149952700541202599040619389994753303253029198934287016052605130860936564920731854028275848224904136782663838487361985219405741629785617039901588806324428060678716717769177848201038048242834940732662595861114712930325363683988841734103493224788342093447980285107476290190081456394960160283018730922135110008469271848893323108583751169396311509761971772561385538676556973961529162183119550097320255307295210368802235165228065736293551623169672898700806765919107257381988932464726540013905152881769801970602006817561594118957008464281835336448830520148333238474471199673492198089300727236216370686629884271115883757179063297970796626202874647345861869675878515165475120839075030005900993447364208322160498860944051722914768663835956750602361926441950237086851651941522520601781395465698972266232418354364447973104084331410997396928156345728640018970698141111103440328626446096242903282756903513308340389482260496502487045782114429724680579786616072458688891532488139481762589701724945143010334176811970087526466362183121729041547842116845703797333792343450260995442283192105109192534873126784150502259345943620562403469812554706548813122597487611342820113043594741032540287643619154540681625955734326446902124218780784442835323744511030608198078427581162491279289336925059258760965720559132709381531903947302396761311006478098931436542261406960020564125595318522674437463565210366269197966718370054675619223074287261235790656514791141939706019147796074323525924560987975900543216325168085550004853369118398792996777809602516913610735560729822989580348603507160908850271199342934782764432028060701284256145732981665621430208628628160134119539783125965125596390704626571645121905356880561508623360027258078427873987418375925740544247364911834571196621648987819599736069691028042137087917205139562692780596255402431996144299615540573532659076670918355885858102762467511349498402325009202439153544745474128603060919793080030638164674943703275407558164991964648265464162720646846415034511756322429718616502318373283656306237869763871181091198377918329079482450915996864097060365841166071579565932279636461513902301195689085956358754500060820904826423872923417289788548487997739987829919527084538282136661010747420762578844790023236411489517316606017952537726211084654829468638192452536905077846283468626378845144521822587516247551472239157152010843498084614136296232611168804133322358386793768627744139614071059803252689036316923207924794109455406180683705697368910825711186585671903018662842114123692109590157395079049538758194424279810778990240315521109256634925933882462695119443293208402724486929185226721966745136775350929212275795015188837092428127131773676677668039997585205722212643882095456399874369737384143027617921569642719852005125722121101086059974417926729523401296857635962532099672654344671941206461354434460480105364550603875596214224352374552079723542031705344687041706226696710085807391568049950236557355510879825596752166007385577265192988514708230864073228051802321091001735425271251412962209128636548784027100109156094916450441677316406622688019311416228206435876314320949596825916325882261993586310604399352224368486513872951133904394813087330390906268373580176439332343431388752832822829718903521545328390788516763317534723533711762681947819606605613302796595726942769829401880849203185598305572588353434914708464633921724944256134853008253359095582682558014029161626781774910239365417599099138067913477012716503601939596242873922528099753649465631811603529717436695663050225717717834287429039644269246153689486966486544663690862447635681225276701443983849848250507747163968126617187275573313167537170231660517109559582874999532534027326601907024988860443695530231723583126428618155329066426230785755635455945182043572556256483555419528332254274242822373132390361649289185210971201008361675707713267709749228027241658749167140037097211300236821610514000663930569389920640336597163651903082093739710048767402627952072614940522608968712221146294324492161955815825281065432728625792903727013191485404438533995182519155444078646336956602525981871005075569080388126423642446286690284104047205757683168643023035434906691741561345156869846916576945238173619046752138384280551323463179086059777136245234195129627911207917226169092904613153439578133980212247506855300812539683628019131223833143543462294176170568421533506095165945429402229206896588085116082218948693544999348259940519192188449656908846846267652285435311101251213741494616602119822200381975371917161391568957813313134267872533791674100530081493563234114686579864546310014974328368371960688391169033794773998426342479924763672120454547415706473609607514788014101642614718504092009854717731335828426370723448832148053411472689226444857458676439492683582807502287196213780670014011401374616995869852551941099691706838162398587031933879795771944865215525488068439717089690272937714146435832787965383593694361312099884342234675865413025164838034081425177621151620369902479362188241636312818352789188460283034428184188336919653406878837482883704936092749872692080129873814407905017419965012495284888868261526051262875832901386178112999943217598168289977924014922023283502230614648133796280540414180931308298152031634032987586973819707708679659558811333207143300465413474145493008661993678149054238556566178897278053089281449612694325777966144561355874632728258703067551865785157618221039574846297748482599214203901898362431648933639605812835223526066952300346589548317144446508280983905475304422363908098562808955005500412684718159885614675103633933188951896044448033378852502206722233723543725397640438850826221956506109010495967608224242263092153404363029021289361484658086861434782767093533878566441472437495665290230418572392938988395248169882818404306952616363816961138968946271387846019613804250032942100527297824978154901771567830800481168055507123775242922803794777516904032381148171958343771033258029953084992040568002638064487507124157736329859608871159366485025500569416205525482581575346897434086366870364130306467152308266138259132596900053574921449668060416017723923028012561541717670164175417248015051151297684030699595924290614087728990601304370885217055493172913730785331200591536907733151914674968262498974412284496447839445100503441481269458436898071033539443690898131336658646011815591976810368868478286537981817675846001524793723856114505915258620998433856617449495489177196578026486774589859873546985418276884703552406065747058762011268698972146482370716177227987890140121044479826231062932602635988565686868603319970530849041203097878500939494862615410482109863711416875867181711714398980104988611509298770903783771744403742066059862064687923194620325698053438949138583489191114120535610028945828653898947703821514950624868307901852568766676035058862560390536564663610909600698600052045743834972707188647024411536766115577632657178964482837271598572386044780678477237724128510008414861181797338327269936989233730714307605565400648890993074939746852987561932983616103639088549700350954801846432100887833545542628708951564695413390473990020011331871047585834434758304573571030070462615008032299502979874896484142556656799307640618121626484682073643916968252265055234395207422261547849824110492279261946697686187013813067147071152229449119388302330542108424270878664497726479352354076260155001752814616739124207424849705068006257402456856773297148410275541781230405819563041473316434370305016298618632639247527198448251232594390126871247361998474810759332982608779551150457342760701985735459555459509312533623041574055780180108203123059870268326123752990365210474624725833063242657703788597503400310911151327940401439956448188218811201715992590021267731972118703748748146597597979353539193279046607200815855959757295207562729649032115245499569489752344045700222372169102222451025825291543481126200201098524115665213140072239743574697370267911952734176148670424663369335938707382315970397809116918246743850911023160534247612857635364934319200363434221053316208462139654635864787276287700942061283116749567729183540451093633896814574199497202931120665806927948387658937481902037801032059407739467832675732971940670804661967707280011011313424667712233455355624549778521064888559947300611939164205015597132418824905228480852370931869638734481757232403538664935239634081494653177428045355530818995218543379539936327377993084151047300080429899004127916967724928070405893006446526791021257224963399579156933475202414440247940282866381706386070688515996218358745211612273993491932778769542001404619063720232291486212546433244106780267855410115987469513746395005363155756939485512604633258213922927308862169647105443434560187500416698835283620179132897436306763512885364751447508772391613365829564147845017157418762033015924468257568273039926296926860437707952476963542126417434478366544337458928294553250820830874355202690062884013393197678570506247818420687190951084637148457204837164822134646569238615409953426906682940624439384721371473779346741247245531142867872400672216973189679251894593684960390605075739244867035823093475627273079728383357933881006869839351023213928319345886185953117898716905481555409612990092457360193284893144262450157991234970832841669632435362250465188970991727868562125506182804601964315674514422490241088400046756651946052376678083567055045704744013496239135376637364881330635880536882701408830966567352088962208564452875796682275889318108143777290180086830406468833806468961309168990856984687288127076058191893607235570022180355718230570334711540621999659817109947580451146090463465669119467270480113483076912919088376917641432627674792235807844952896264577845324403528242130270615907977514426908392215379898951883587190619154203707519955247769769959533147685778919877269774372577713820928054396614499945368996133680647537739073538297325305979887127513343141547193354860198012279194943866975723207234328644243496186848660296740236713384076380500006065085042432593033106894760068184711468764220189753674318443897321715748078179987125572993072652547074387211825539771685485419846521205982721497761004801138299370987895624412582422998655455989438181975417758157023221580886019811209705876134810832867649943190731252387777899674328522581324112048367417016022267560120834371718423606872135020007941811718859021842418881148308228074399902284426326700150463327951938603203591395964378465721412966152319758014445273909726804110754542294745129338810863709208312009146730024601098422710622964395083878816868435942631715010105346383771040244977044926118679870600697739780996001762859766839877777264021960829627948945195699459789051310468836435606534522504969499990715805498450003314332835066184710740908417781725395800748047088626864406152474482915278074911304627624119191912796643563157610660766501197653584173952587160172717665241228996094257874601213172891735022327544640716757554054357353745453016150131902558048310555560673170765447508577819510310880957307288189807898980647240944265661651148784213205627865748584921260719836980024473874762733572826251440265409610808351279154165705817743774940083469177809532636049058067495269073118298494286115188194505941852389054114830094782869147136120161047421499803063693661443602691240044319593932925578698175180008476760961685911057884710916372837252980802945522361990813694545041002333196975091141180938581888990094621358146058959096600687189547396275293747906119068818786571795278818339465251564415171567631884989812165143198535586726198492329276404338013657177783610626760281790973057604332270056189991250819279792020471956284309815879670809207379605715339299770132193020386355748213249551285352332862007165741283657660382600580885454762396665335467539175157732329549454984160604484813522280384957215368395939163742695319309269447107248742185840003421353276845515095306861592453626904291566406193532000559158572724205075128716755785386628801740940191360277465009170257275884734500036979659836607700259616754508936606076859783405560014514619731854315818598682448671526787015112917206159211808239108934945852080747641385753089471539719672606829269835729070639071139345227891574287568600368792498654022200301897137465887576049036749608286697126260833864071090375962960561769606667403376317206981088179724586553220608170069714085290842689144293366561991272577339136492629910203566732052759190071533063938908157517858144870176423914559529569875817872464833089322327653345827745160163106229814717001957056049115265066665508400926244820597166512498573775341249227297898922216576827714710440565758911277316894948575448771394005273576525873516896170748487424718077145830275303724379325972734976645000975148658125076202717839176011233139340547048902948121235717264266823499418346291005575657495178627315210179695148810902177340976596792549269011433400952817862138232456237594200134772002875620896514642192341318845327756942255268254857561630420071490725399335346577932191639265812697051892671939312783733091107624355353864740492100871930496820783657710566428308462814973810978249933546031531024567736000966293494075572132866854651332012718827775308380543432458555370709235410523467083420860081074831339868899156216774795635673009971291176540653389626989252175157018283332918430745423469226922052128048492676303971659939822363280384213748715138125412450821738534334984514964066635377871169235189289568335734391369562700605471133210794300263532556738628917150041541487064243066003702380788804502892572528418930486322761471177884628162184383440395331559990048702695933588661523575799635922282994875754782247028883736836124908897760366176772873734474591721092130216134423823474697878892776417129610756035070764608204706937439174674036429618331786172961205840382998698135251685401124210520264946929314596031479727916847221544278344249552009436970984461165727356265053815805259772576858431784047678148742142679927838936312770342001677323163127793734424813952167948150275617633496410983183567285616106534194462888293040877153638466326392793583062202397156630070604659495540093381831147819478468732480923049743256801798717148894260611960325350530422363053967418675555530105948555076330913655806654925827733802958428686617265913078805414617319900835996973211457809447522706095400679381222441758867446669701790591481380094171596463207857284219204810274366780553297726233726824109911880443845840431939159763760199201907101215626028575258790029642485429355385971937835694862609045076700192008659132774198523914455979390117792861877786559309715200875393726981187890018115935247650019328688526894930621897891516815688266070677312767405668723349831809345031515136791934271317843815625038176620591402151881367653024506699609507111058558977037277620978659483428736037604387272949569031889519814818824650675040496109919710758964474564916502587010036427614359174116561293107445060771738514600883438611552510922014332893907042836829260507604649170362009900300989727181935030579311427656609981674415927200455200044381855158868466192206503538017230616035716960672519495159069340560014649959593930456404014649089078524824561548497974536225366492346866237337356678447101144918629362122988227439668262813375347293251695677992666892798826087535184550450324506197734536574205614999006855468675736040643352309588193873800368746452863169943241095380509169851615339830425555742784772781123015672140206685135936107069875810948909398387037365974763592933108202696437504795281768801259099539653891309905546343661355224280284652145645698294615662590797872166883859052008827170646818658820222932180925730295815313058153468604534560705980578975186439135221812109418833760136273862013626586428219568894553776006872752277082838288080774684809356445598072578124501505993498172289214617216446803048123387977034621508950331159272427195293084107715577399051990365937494943501199739684287737763106820787224533741531985197856150637480022528296520830687694199994013835237766376184000642369583594509019542978470660939296185349925506186231236583579146102770010722536579666028025593234184602814728733510177746072255348653678203840835573232577953384395049429413614519859653371907664908662621533288725079261946017140183441146082841173869510374836086766627448642490292117761215614587925922994895462957646534810038129577735960671604401136539559174464257652560420134440399334800740465770311003304230024769724793233251406923442061895056301528596255993288279599109133980441764802400955858167904406178790296043102888714280332695407160830638803636657008343710504580580155666502120564431151300309244086085983230594142981660463421752986578616236108086309796681104553432725032624082253114539654785796381106206322837961027450935373243275614276273617042715435619900564245091656385332735687992956619004286255690658675090325465751730690096502900391723774406143596008694355377322510867472100857740038461209441440565131502576645564293131972883892233069397040535825140051393859361853572324767727724143009315492740473548029240787079945445508499859006670225613947332652495763967796592576740869015397453776714299601023796221516160550631512588519387041208101284080493115915286388180567628271442424047504980489810525929756587503717750808823559820174427185421961323752621126982036373593606937922680935955034471797559248707797622024863153868161667525969912585842553785075365984049037574537060975251815367157979669587619361638212174258367540475144806249737644314731121653898767500348944729410835175899300070205493387856241556910349371521182565094582801774479059914488949584594582418704327992004742701451005018770043385062459327573664880252845139967568243202511537131628317916842597451654567057588717317582864027308289466636972199854367300134277778360291253173922627821353581745679197919196299708639231691253524840095952355758388933076219401346169620783664424071966759834121167709958874708498568766661482576357804743711246030684873990283035075651917152857490949843484659780841083094598910045652240235176235026899214640315753615971478968352267992055278138257955051281626309457848716587976082480720602001744306549556675120213848082720741488427381705609846551234966388747594765015566834517695612836878892042553974377952463557517312283809550561744235033766339441086025898394154339595575903099911829668153436085087649479063833094270399453387906554918173064257992392872809714602649579001684496655178019133483064798831545619088896444616227626354494667869377339775168486305270671100983095907365694067647054241315713096988621612707293872348123092811078988829262592835282508841116342116734725994567494791974573885514901519943134668890306739018886320887875872475632379755319720179568585723235336575650818463144228858690362958394157528604839728185654235543780103898288566570382758912175942925445105094979824293099162962135551428738789302646913966372342532891386455733105143341895855073708671387749574482482867862688853419910702392459197923764138652624736187726794326556716803874842122412511802300399772327122437641790823084955254926696994600663210831954379927925661984487352089220187858443983381991293086587098521621983345099352139364672787994340542835003068099638689047246792772705509532741278467442742338221099961900261870436784840571474436084519981637090950383954389533147596901690220229684714844969616480105750500460477335011748221370758823510420941861316927949894626045163851612672894969359192324130287919423717261831113693834770446159864737399844882620437358135593953232353033495151441143396125811674850170057238134920605083701825224014620240887438804886748591353508942117368820824307795047823252392034266825744936207417177972599229605971132765477941865476597461115439062793104088170575557347773443642418386754377267771714986710277868339634380954148496324282029805578177339245052795403357591274016230849151800274955275358876069423157061144771587581579049196238627509189457235014480675868445604974557287323553405559020961741345091675952295314910095982215140747965410747220260684136210280552265596117210885599178571110045773736479655334569761976519686980687005576959630608073553362380387898371995868985744884671214840587171829118345744013320953166828023895965870667817770660194005158986941974455491038893526554940800787901374066993414925478679335505340736964731779838183425779620041724759385265351344255427622110027154254511887460530381053642435970838816269202932859501769896215741603953928341447963472483037241864535852060371679597129656263337048699228894681214360971577047923098597904117283103339227950818093882604331229594644751748653482846041671081074985123879831467238459086257526310617335863688635125264564798541393707479792183891685152358653467742067124794593709748735004854119096454485457422383363686401458207438019952526976213337191634003348635851257028910999752455259437454717797419585232859776236628355947888328692392037748301560092858495851107907172732183526499348045914784147292004910385497295202784327440634754339426589913323836784457487407574048900798818737848134470383900912471895785764913208043365381026621225240322044336800499981103684343833326571343108504496057561968724151483808135933477529593536562040973604730379772093245642461233008175164811997315457666365619960668693339078929404962781462964159024770449091237368109490330686846365875644389374130122467208580700127182334258791615723406310002201979272016302184878388223273964051953934543271011642987236054210718755176413729765777683458902914374040463948537477385111577199143578995107204732632656715439116493086541614414917850192999126567342462817461030244803914057796933065476390004306291929705755338283489263805459002545278381999975313072435455135524001239467290623705892139990329693997006948246260866009213999624812644049294464823202974469588369006649938435670323374467125176379067500796736915554959553679609014177978898095497321262482036888248514478117343026862530572910781873535024907773088043140394702266205525601784765295760838574735112396089799325884168651250290227141050073164476810643162142836054710648330992521638356487345322679886093838183357625367412256641249305059579833053141586818563335117377326316327301883169144547761897213985988888010973428073729210366018456732547860443620873524319443638525067978591188429011207514665347378711617881637968285251579852894423235727550428163459502468758175211703585594393442475410618189183270602426455918374946012382273999964500739650782852264882529032776796483114400619136753661349457565903288313235151521730266474278957921476035940119385582764374493923849232417112575992527578707883753546644394927742277263900784410201258644431488214115345523411426497468532504579496792264976831140407270364192454563184306945356888667736099872227329700658030268872255586776380905998253644553796482146690798713684868848874767349752417111809690282631371617281965357885431417925385576645027516741493724823887428879782173940396403297598828107674558120640764731394605481675783055199600827673406964029784228134812202568077202226464502488828140284011599643060941210933863893139186791502357431704213667529798557968292266982664781468366453426675484482490416759675658610347549122998864449705684574088435923978690197270124340230386524086328754469749311147363210077502734113774104336014722658461277216107834369904981388368653251317829214514117404327131080077434830895477411522991329990312546602719470196108205761588453352308257070422286271406613465041822823123588633878266618289120957804830610155512851230236282192968701503555286246580026408262766548738679425509283284737195107166678422189421366022778381705227631030607978089341153896715791680906740288451745812528801552655879297577992669415538160123878768622177521536706568391760757616471087120687189232498475536749574145587139824714287453950539676201404932289644732857119405505665491954635938221312172691532129796956392615021351556575361477647677309798589834637922822524025245092193061701431969452490276947064273211642192532481880359887474334778251729392129635128318483085805548024128315195071654111542446119346057042547712262701369709871465372722056941456119927497904681462644741437087055473230808595745937409890723642927094546066407495753596385293537332887205451617784907218652961964019083096867930071259392729521033862437869784116699483981384912033649837162632204126701588980369960453568740797386069554127749840216857777475555049977939167062810666890157894249571305950422715968818201764196588405036364859380729771102624001809338289570932089622792386874880259776168814269248346141319196898544872123685998687220482948763424887108952544749857537782707059064295889166074454198822126470649251783833158568724547421722459057141864230336827061599873075237444198002341967656531348449974624850569940964587982456364761940989782518624433728780034294991967705440614746328215007374621681859950389122865071838586888339502699605820682085145186297377662140053299396483150758449292250050572014345989589387545149914811573811863120472494481736939624237006211788199198148194541005681722783146316247850543167803697863063225170114291567474110195749666502376997767204450253287323709547627927096390028167992963337062799732120739803705429529880886369559396598292656698501968534263864264273658245398059450739613025348742520006080680423258220581995225397976499173528271009727717894041078416239230022205982548467768220061406763394831032565887955758922130071523835144757225493006309468695762141550335856414087354686030585178029476585934265086705927359518980182211229938408416493136879883643189132308348925591921234254586903319543117365443247751648135901088691593913581287360794182041704218760521103767669423625354589987614211170235038253872282306667774523842224814389014803609191209443104625177949463650096815578049329956736926435700590517090950278972687940171559831662685264192540748816310144170502043480351486594765286967880573154691833265583665378173217524297222314515419369117192462270834890123396349480032940783512580578694792524507272005470655406909835508628911985757943486592345701223869752139667429576763244541688563565174886213838467000566914887921767943329447201655632905027398684228293418119339817443999152919111504320732488303352028541406932535289880936741592744237669500382619335451511430013541631408003601490133828333928148060836694071216127546841115625468189222456755405969197021063650156490850480566105276701223775367993103018189681423604911569724468138240842638924269112936544069454741723254087919218671727285999774074555340621319691848520304376373442456205876587320142835796854612588611927502989766382784696228674342707043382804967710517509255279839099472395807808540207688640112407007191778602609133666359761697678230479760096131376044709202785014638672831956887420399528443980047607659025126678935557122591691878687395267146413756147656532882893043822827592528967471024268434131647393552600635173811691962197030563375551449694425950713850931889865881795363558987779435028714517776089183685598991917990687034816526219443291124905061169482428150511473422618430614150005092890148400684311416644214406230174466426022950100193324237809146136792764857358176880837320437303095407724584654436712631498872026855566546799514023906456488829945283262378563815603418606239716617120908684374370849213776334997800330302373176355915829739956348233049871083260118178140023454626888864591105639278182621857658690576300082706618722091107905795561525662948009522941188655558155819227019660158585851582737750587462116182082814088792257677494559293512646386446569448377465481759167344636537445784590454014727668323855363995090184126324191761460530558282699364798403592922382747374735316653530612121043618881515141942211653306664691223685224950070580739331614471141217562252033124132368149895852667871105558536747440682255796475312780097201878692315352371859951773625518985292772783303336167196083083151624163726074553403694987430569702986034750980563859170545028690676039638423053914975173332229137608083316062087966224696090614883911840174949355755634137455382921894899426306207347559950450697467505494997746010336510663627470220844406812994699439953008229104773964799340990848870226961701385632516828063598541252003690893690426000877772679295213115767609911181642689876927910985530830876805961148215730220054810178703430474488984843495735221638698227180405293523873110797105408203038773516397335329285290757224662725508120351627404573660077173973970715599183954585126135787013910165587796998880353660136124495964950308594694898188464965488796842213446351189453374183850190157984881606179178732237183193358416483586974530730354841039381154632837680805613769696721741328557905722221218411300078141527264811527125049539711032966704221774774709532671386438943370762839214174576757660943712006539758201755111958364096446899828848540835899999268333127218883652747843308968379048798375037165945233175298988965107680660455369403881420399114466202897166802217813755988945212505653785553039375707256882805739465366078643507927877455998436907118722290803234868190859180047794067773333001360029299649037773751680463214282819219392676821789230526920784846588887536689692034702119300095952756034151759412447904427551162311224608288502609470421303354411586994021292565805723062134836128249068699926084452468352621090208808127693986654271917503568738854068059868049044601310883282294026271409738406927013951734833801749993169844370465934808954138134466597112284277590883039223924179906513660899740292566784750292530911546873845906247890067464355818459975603832395828683190720913924868632616721881186185689464320376885215488470993312181384811964673364603634817476986458516453126658306213074587701902559044898460838320491415824846595016999514876500178866383649133495021227125039465522489722238912519022400207676274294414049722834690259620722654894464335532296993499270531165849995552609786039606098766372224741692015208284757530462421150418075463371310515349055657912782592441597859477906272526959397994362754604059217269403634265328207473111463717401884845610679136171967224615883367652748052494506241210665447329940576979570813110517312119669368627206069163230826231531390213740285028383098173883956783021864970619101985419387932657731305570215092191831990861141742380727903785410140153204787902844561732818363386988899435175982787890862491741124493718051091963806534942783725265118959808860998145043525019001540634257065130891028980206207201218151619739912915710579144205523786331648007986046368345895709231698901803840147534661458173062661053333374480714119775464845777365398971138200688262711173100230232739478424428760420431052023221413204474673796270793480263242462103014429734209119059415649030788071530542823989388788956627819317746272702224848066324171913960737951300684003285424140349513547588608219483342982988802476665698513385079562397249577033093816037983475991030693169037456402404554787735056276335763486412017786353227271240008866386664265123277171026491907487385205049398451335969849912767646319673493689990548306259076888405199329753057384049760472173215988987307994289630134260032795633358183351170642322585278019774629213522345013323627658603503274947331114838555030199998806430714238545042796911099982316927301268927743918363055834571301428495763482396142719519031890683880143153572172883081397022430804086078329838523881934892547765251885396399660491788614215969283798292913885353654936018133455873818583950018851113097886129310867668812045955695969058939969102664189139555397730173494408395959776840706838613472581295474022768477729162238206319427434644313002735758638468385239303904157112175265946484883114090839814935899616172764749015374188034956402956241797311390125091889659548160221964912569332301961461275857261361408718271498750480550432229865411809490500161020857184077029127400405459822196002709850776942249460713370217545710692329255473311476604931036856182091413586975863527996378059949006481993858612335810091063259242698643628806373870814940708708376774800525904715064871811402093220137792543616353968693628503320541192411062577858712183914269833969151960082880530239701359629446771847117512557686506250863065581073133128151326770467741492205165933923332613422280740577190183293682330640721285139264215660551758099738335756616167934906423698799643813242374491853652974859927754638308766761880237646269190561013932302022729740650397724034076347866076381339025204276393296880035951852044612389704546154148817484334715399718808768020775176454877636127598965595033956607622271808997093757035873822460133228533898806659422416118893508180476164912522213172870842473006016814832952881304287435918806089059938039998681419513697650428324431795215777141710072167801125041104452560127636558815661434896610465600760503601347954809800676039864817428166274123863120460368333047774376720052058697949837165610703311579163261865912925327375823481926174700352702973851355080099500734797842870546572063219667921678111434588890818250720968060976708114715978809606249581949850404372605008544266459580416038525504470113005344049343136766814811503050932479945354262031702640793297819271346683247994853681801599267082058001470974117090840755142881785755637617009167033656703289783626478184011823038165128645514749041488535912694492720197060761098356088973884505506167384862294325453885272467110263891765179694758437152932506400493032992279923981873425928417620016017702877417070718263005830512508582670713561351078067008552524545520901319102084159935917628730349315109740993871349220930628102610431618600961014249421627081495287135379128165383112774243326887369396619613155680936785273352647759478110287969793727425972987601395822840985264774266584341603633704189935515299414835615939143683527364317141553882656906942520731478855491272041168395250589240145053201364612334338723893707624135084599155621848997121526767523349460784757636620892644861169928235765808395275922050981319493732815272562418382335857505771365931697728825310986025787453102496295645909454271841239459820190230964110366084522382596646498800834752514774219707191663654091309306657080740707285597587477125776062557221530240275262442097336921181096607887653023899759658653357911896279579122337491293900004127149770358797193810745538376371954113471229582950972889203706254981601021674551806174870795170353441690607803556288468655843153722311541575404716466919431049762960095093524672323050025527154685217866097158555955621527584829117746897318626764748998459014537081882313458490778732575939983659151435361875479328806789574401332446609754901657430352684355159251658780364480366525154259788955942914420232138773168986821174757909167928753721170431192547472979748080026858369391068014484757511514062672317889649673186852924370043383853289541030324450852049212383318878237776640279284405611130940897470879306480812455835492047923202554077301964284698918641535570234192478052137746628691424205906895653940308060610609288568900687451130843569129108146510455109769501936590470927948644458694738108186532728530498071436527960000842222907608121645861552341504652848245626196080463769201068144426878826217488500482275528624653412862573199921866496260569372492243131631400198673354666531155676841595837144760907299811226206584344333782224147552104363072071878286503730150921147640983520363979095128896857942125064565899803660913932050901577706924765893627265917984318797501728043661268371139452123303528675425362065506881160407916170917857458559022793785395997661405916595841980787984914554079576717953441458409224441696758415892860958807960549660852393579402276059458582549830288995492023274994422740505427309311777884226207919708456446032174654477270201755789475267937557237647981281042916618921359719303896076842417256958769289550777842047313532612478583493617680691473697679765197800357842076286950595314144192353068567891753412918361659989940316123138680281813761911207249708744644922665633245212976651574483209941634745873206477403319527934085083216477945389501281031599556781391693737538077257747868605217736564431284809711259108563326994692063170721232181339695008524311446864718776827940310604280429655987726170382687974968664464111423895498026803220843455889828918805474879775199220955363254566662684300988632176383574850407420290137847183156553037693714816694831988639031536450136884110177890228055647980848650875757993240761103196464021540562541768539745589806439847118993705283714144880077053516535070037361201543889254554124228916027162625524108871545218346146050621908344062578586024703817272670507322291664985940734420367549412005955072774879983549041940593422317135451278549860507043101027587496064620378104439522812538393693626739613854880106898301258571072503578780272287001593105369065861896157901277283039863732284108261578841490111258232947686389236756810524398481196862445782652736702040465041475864722800277441741447456152802574211008875816176026339979688230204363812707105583426844708503374290332249553002578652504944024112625981596655953983766399088151895037363349181793866354968040932954315105011232723832903828326323658732800267177465628644222180794536444820908619135943292262220911869782653078223614415297123844593084531253550443665827741448534758522560956298381134468489591479366148703867675729229569763373346640340212573440815379078111153058215187838795920388267962645996667046351564806956053705812338261056908722820945213491429165523935847152842608664158021562302149349318862003903938927286685272106501639981305565322586151846652529860434760942306324411637564068603197295458585386285259163813391961381965922500453812641250999505018888398038221770936573754892655829803778368780407062843754962217406517708072015093578298862015466271598013604531149536064574867511137720453236163857870350138362663741188025505518768650079561695581720726773384229825824604584378111279851967721241318878176286899888539479997956309435049327733882394262805881456858110413482687688346687336613224469212211391714726756681219375242332735308664597097787398221357811723644837448773723371566537595835200655595874868872930026695902209879615438646929632195714511805004112710955858053969071431656164186527690271522557885908317665550300452423866376165037258171825266556865853618808483041827988020469767078889979472408727657069259656640381375586128037291842017234893405688098182968013064441470316492791771128812176355711218534656250181664604168832560516598491372804840986544079710287807417954484458388347387012512370887791978961971474860297724007661529265813110838900663416117047094264763281978897670722679266574798769722708114186208185430948481388105062605571972647263665195061474479316652294123956166798277751741298324897163110558837855029792216508588073579865053895106927926569808205142739042367588448803556545101613700912044129131632339218364096619978963822862935957322447356933505655128572624357377647541529614811277586795816192598857950695045108961135350338259757621324804993381483330343611522522838141845495984395687111886222862450418645399184380612781766536636751478609121530548907654421957921065162566697186733218971221324182416099499404066855298500634654339177509113607057253474838952239930722268796332775702228825075397218103544204436754538879835919359733962221985677554510676685582753687857706204681977255311456295712118451051895114976345690575909595657820982039567775220847292979564192417671812852564832861115377300655608845782443166315050286758338712087086321962632729853625068178613778852705908028259904531455596689163155022804041694503503979295650185443484576819373841970482290100421811585805110944367927435377170897301320376461075307503121075964185080835076058127770647839644765553433365288398413571226192970967451477269470684822767666382769271804584684468503578338702727285029315221392146127716742121914945490660883548931880867147847145101009873257619098837626496724831415510446616326476668563839274780922750020953450860349566739659960129858814419548278439299569176828398895774971274562242342760063717911973435792924237434090308915302689768739510982235494218885541064840458332050380775708876501253379975601397155204276490434936645296312316306619273579054032267046045757703069265757309869653712765175650567885090009779543791791956132259280231732576714877495165095236403007069241183080401561193980953660322020487159120690446228438134770563521817698223341182293582430613143530232592878631292337495792480148022062736784334244284638441702293033567659071594672573978320352370239938976440344570407976960909530325423298348365415464391508676540976526859907174330717065224835546727481460566054672486853417169368515151029571003556664451553716571463240305489648595741065827792974808452792236622356944042354964792557037661975917895131431112016385188481954923342705224454216649997959836279355189316947768163442110820564685950502514262550919605369918790290267106054867624266102661142658881776234293925813012950853196799425438085566192563416893008675562290700184473221150534456256403185588356301984262176534535820020558315577463293825396265295300925438917059124708777019762636671385850638788783675114806356685543769137276334984613348938491149814832318371683090259010242842151156723103430596045614664369014990365595617629876251735157431609679203864736507265677522994039617745929037425362080708445941223305815855908195762801136534776340975971570452224991478776421090680110549906872738405250854408555855717113132231005272787801393773648372758260523040597682773997775121530304296500712050333116318643115817408726279892500849047016202910030145650699336228398132662923247441661775120132533139400861367924483617122432134479261325676243529853727050653697632422550825083978128132155474697438971936662486048175178213374075820937608941148835666037510341244969261593730583831036901532098042305708967435524897736794211973212039849348935766498990634663413704017422169048821617375912731574266935652144398020318416717222611369189777938197176228777925096990921172504825863059713447815240205058878102065692502796790856412021740223882945477552701188762680456828242210788762154905866025048263343529405248268773308890025425606827989061107769821973954905674854844754587690800948241057819691109878545213235703273131565674858386180869509800278963407604481736772491206068808027231178801562889151034899750758728600272970333529788769785630811362641462972331389137146717135831969096317818813195245452354816022910178496464546621207894361396682760233750538966882036894228528503743440870741247332127966842266769859403258195109036317415110223308250976855155832541204612182311788713812928092030257874314435901815164224527526477749337864426988466105427784136790717688843178357499999927383218227336489898532199833968441250589911164614721459569678381766954112913741041171753700494484981630996305134837569045455800326767826468991404449077743062506811734328327789237641256849598390214602041553154780519954252386247544473905612359858485977048686158909274496240758468788063677030167305266912084244960924028523078820921368942078496318638023583938469578246233572210560020342654174228809407049843158076868186195404192330910385492948848375001605536301598793102590786065883836736873913999648408187238474414296998430913224524991706544991237542113105707711448869551416026562396899725035575772532816607682459842532520145607356889609908110435393976142737091826717324706440016908746771325931220133579910910523185769223022599204547688676707474573634261002100155890392244620555779364904768774725358480492373319046117499906134307910959589536375210429077148386463743966881814133907909374405263849356108823497734303322653284238458644598620207286358734753602501394177883444664923297827744258651888027035176911572504234071847208453785892278375381748440115673383981136571502406806394359632491477505874466767989257874162291904433219450018521584286448132980033164495983448171629651694817217994379701542069099476556751344784237263283626746634641267993892304501971801701519322907670144210904231528529660249671024086085660470893487411853466024473016524069277864370077870521201093635841294678721304253799094429722314198770955289414173328218853047957686760840927897229638835105449400464136863076811380817420111999408168149444620264925662678550161256933613570050391186422814541079571249953797104103346184003739664302849387510415268135626316947800100161430790362392053191684329147263566294828744001689179707357048974413647901057245273998945829807453685469134335771940156937130972051310349424300800489907521025686342668406200322567510430058099343933170024982703918003569721382397895877437764952550162985536041917428407978778088065268681954309131822732799198147219432155185277196747996402078373285081109253406245902471599897854871451801028441815304839916956616676177150711502218292655189873683663991399983511518230602799659655020351811029681826862906098781923807266954078939567036946314159918525399818833192571630987437020121187225451727151479163332071963665962677338754071583055512873202453847506540809423308348967398128004731661905942141495752346380864130422282941318799567092544338874051528375448978020206793180310197305761772264069514248516082132827315295326177234616727892099787819186509894884632058214778408760960019185631208730606072107591690325124665095958772293583416504979634218481116804091934649168560692780261034561146465982096111623648616696344968889267852430551635726776437419136796925196445752331489884435118393706066973878843807395668492645115980841580660590782573972807797176571282683540053556924911507129082483265274076792179919223077384642051871867425611677915735578544291421105550622353112918085165959921065727936823440042683664974003729860397611715485771240096429551728056558275993729053949904936524118136212809497136939041316069740833259301846767104708940744626963806830158556974611982123411401261124410383697116476638505638396081462454551698530954948606915525605078143551017456408889658896422066027126239205264301719402120819803020754393734640935366915324159651196302916985769472768270591760048684978122676705668923973315878218703618678623887822395041711933882586597066213798718539614431452796337887385061409445329900452561524537647810892741277382297810124965406938088343998575012664857419109810248606950593785212838101754317668976356165380755750011358740809843149652229989853098608051431309787900684370811726913332486795874567958249313988292140182261182160913859701342301300555739329731395685657634871961140694554766788611761269906299581322144957655857391426147021305508573923225948895411742876457537527175047015070891676677632799208294032984720648009902667021331222278845480719443994043132549507682389292434433511848458146458697355017642701235270493420807477969699043490801951262314363287761917242658588425425885527758936972497606880149706626431982376721569960581140434712368322700945809270585441666799712257218238375247008006832899132391785212231456148288330008980985504419339635078929418513253132655143248205110459781448505333738770623526220899699333692329848795024019593610865728735219068728653707534102895596067200062663195418467121302329586196107910030580751532503773867283518119828269033433868341218814239201679589191444543892155414356532901726283763877360837631476352827595057745795931854576841827910673241005187950910115161420252969149191725143354222181908308744779471054599493749842625320645685474864160407823518739850291195970572401531852078984736025064847397643179156769225493552584454002169363029101533381959314999030191151351279736222555672386427615421539131227467749863319193111213429446224190844278495915344932598902016240808256418388218512852930515313958111971250940796233997429873564119852127851656938226617585802338779735635729911757060013447188349265916151690236138836361186658324202935503143858978399319460566654650119676874000258126779363689579918479909993913310454694738601619331468126022236088953406727959813133612027569820588947271067169895610354300329289475263508554329035793947761946043633087088327079472678660558157593713018948887611186193786063820101010795310150604255760443368182348537405591288392132388959545721549929903316844932376093671517866930974560173006563829948178174980285955153193053306152389105774869635394298443103540068432514051028539002148584800939679185193337791953424220692454276589606262246966748389551714815057446455967073227418554334151068655235961754894888745848971768926824970532582895853234902882860038840717039083996220020657283351260880290075753331983066379070849757890141426297532161270336190708120660736833922033726261856052542054510217374408880079797583274995982984061087659077078387479512302453436861412324432324438578163964215439912205862946891398256815069498571237982411911547753805033212121639024929973240642383605397161266463562645558034068892266792347664013504155679728217085648540681758659464635870661787432246179070924899312067129186649082025085188256570123849491747027104821635220987797045570045712508908900366796128154755346251282083597658255256033558659417553743395379014401978472837369083311191773423413550562601589839050136580682070660869066488587917706311671013736402052445975012416490294850521476494957475124557161705634630944914402514035519627187736530687140909237076178409082286867751073365833178201000249154014228163875051579187576105271158384941144124375682928421113282209131607156551821362986220214752449573756178452564200014510327221700726733189227145679355185318486478895820894407041599409984867733365373033754548809357369104019072487347096774041453776477558661768122409527577184432762608040559986593555046621124188029687325416915404690067903736774296650397004546900300310224959897455667074931973001467052837953222093873355628158605371922696395318711768817598535033367846713862253858213767260747596394353751262153566165537140598653580493166686734622275331339870087147756611613247791675679578238976542085068393901285123504190523153993795859926678474478035386313978267163913079466346360009969592173506244891413828599354722038314540144667090025331365939723763400014520033304512012126009623899160458096353303788359313395300400195723090492029345900138806962606342535876377968004350387930287894964561900251361924202439992845053976878803915952907346147869180478035305763633834688998896020515127295731113904050281971099435784060216840460938803160308149860783445985501284133094843286116392199234491979295918631610090863742195595932441918909474311008836231376919734751690605853252315157675048543788635288613801771037543131477924080391619664718531907699494532371088866601231960938761451076453583631358130654837846135792738568522995656654579152716527576085523873733268713194688534600787164139326928284507076633948252730676158221884728309717075211013490490081440210587989492428627120774153030780079198165874005540002927099529406504927152686734003573259428305561021620019586476503141700368796681590912901270616277087575831041293160609798164720400082305112049243414669829989000959155029882376673915021511586629991410201117499380927672194650330720879067241683520831308302691559370131887213969428279269816195371666429860288014355902994108380440583963829993054184078536578451577125045132851848714043799235245279120580383661150954209419436039452313470667834056051030914720738298086719741919712867666371006858809222441554285455902827085450673957500554196568412168873417986015511668689511373987258934443946940720171495174874170859299739106203944902117117418372055995999643832229863516053123301168391104099574068165973570501538209275833773076336164009024872957686179541648742253232776711346038067341981903505177031064909071187799654095212703448987177213261585918917331379206691870870556129282299961932261861593438774826192944752882718948769412966716682831787047583240250165564833766091412602691890073585053964482695220921994195410222460105068221138120355808366527009463858650193295855095575427498551341114824922083589161993823947754289658096522087866177711315541527506912102226329487912411508250232933259359144037251201804391569711568186274109163999066552775550900579105128242538817529309761871710398288001234730925928703938899312347691369113856356186307638439859874662788130414056985026152780002517874072873493357452650742653805212824588697526577251524850875863234393049142095704680445088171968856128197705317578757938917005525449808342635670862829502035987891791332233367929636644156450568301520410354642240325546796392387084388284037854450701588537239342162539078601316158720632004463434169688521971964006100771458359505481769475040995307055327385767510467834782636495514410135185350214405058945347509754915203922708805204559318692398112982387983917611230369346357402663045225098307027022041471613621493529897663724393325296474251492632656388658502396919971112383652555899477807297943864981487831808855216284713873378137728759040299903400801947397614825946077321993226084418454941179017043602778949625061416203146323104894566041484248284448000850753800111852664452921597012433372314139848473530334040532550812113084303448470128444401254546025878233173417192331249818241591571573622353657862429681856020137111656133425198452174692805533558430070355288455175877070228818542374108475532160247478435418302920922990894037500840877492774933174619927846864855715124779303747016025254816237407815506621255232948919079008168986685657342516141200034693843864112914004747072494179551103218078990581781796362272408045225197467080100077828229452760359651504771743993746352440460916542007724223522558636994993117867818641262117120238361620062196004723401465916404645795716317587619816972845965607196270614749913578726467899149590317181118198569258878897816441778396679326314436371566472515053003985547409026417068581368423095239489776707270110256905494526378931251532186458862075928335986562768012873362915201255249254076114729091698627279365131422666726919182820813985340494093284171643203710672930517944011767376694451478814215697788534618859306120238617716477751636747460885146373394934793308598289743536576101828012460529166637459302723250750582760855735674738830134878482259015215928842958072607982950624792123950755733626943459505688316931985704186126360863327560173231357388197662203944817702686562138130937593089268797054418940365503248506258503202554651567966298092202631940687062106226272800202558505254983274417635258925618960309966624484738903062577674994369042227011771941901763199232452401924049219613598103131971668416471974873162744581308783756726926023727778464664005400149309829458695715873594463415971634360881626184259392082927200920090546974055037406938570785607167974450756995060850157748781907572099919143532801474775133772740360739882448132597381688911236722489583659954852189819901130326639436181386518840232136647194833513920729367778958280214683703586809900463909868671625058181979781217572590477620825367208874247925609449194884683172318122681267181724199998759692728046818207256395034962311667630990673530312355060549258612672413288243282945875952567562830895445345469965796428049348793643091486299664684056383682654639401917882403602174950638276299376519465533589585030720635504229419715686084912034810892760893616653641828146306594661675144751020186491614993399333424830056849126390613926774091845141442968649888365238156041220931667109728376993873869763351310150825368660938618046684465204364511847468302864830046227608970231889556944673878927587166672569780168734597491865822479548816446376901608598149742079970478264114191668128098707455814950586403003991521427995530133767219841544976288276802670048856616460401366241937500213144907244695079366473820396357221173628951725881785037249316122782166608288954115957747646560080988966307647674719111479698415915877514190777113561873313384044110729130831806189571127074631765601098412618441105719774333070775427719019162668847036926275651509608385416274978133438228146872180510105505282733208446712439868094326639507314722554365943043284984101882879454131137656047102763029893399960212774342296525611060488338055110211529881109347104500476485184505146386808618552508225965625327981204371534063553546929596329532208661804697934419497870573992070409390192439005025214614380854998476628424625930088277263414997928556188384154609220932514081696065795131232659702162821596645892644267714865812097559416925727992496630774373523758521778766703411874858946123567723982933591570978193815856492140540258435434710400457899677598360469546506086325775479058661090612030395859913298376635365865900243807720209555374615775944904460138991591192250759963328228281059464295187238032078183289378317318343480012570987129729138357927208249576780214809358122656530822398235942172178358883775672640967302086675806127996083225636030192595223367245712791560238415885345105792976229941819395325157741091659678082143075329437738401281345792061546667086118230358867785937896569672693476749872730373505972763428457616561386637923648560156488631963233901078419918337318820118670912890951916031207656882586644739447002192361547047836635190679694524082487016164638096910402161879923609715042151482645453011383323161103821792101192189736395561687171363261005309376724794046490284609601290100193871016386878855169449071279556117712551611684303274590443938954547848204636478062137413262825227078671889979504426021062746255723270038217938102255916182927171915393346786465884700686879212622878402873291512667817567279735382346392379161496723454181706529411432642997596644062624533156495026683079976538329144218197164688364122618014937182956862240539859929344742887908854005611161216670408912282959528824504654096699170614530616314559344467441102321397970628554596635426700628281620828958359470165935765441775402880717915099541910085531628845734340813210920023079776927710929761913095633595958782861698066219482888807837876214204049699182557880748868938881893500009839194182986860634066531316488721495102771430520630240010718411824950799968432748949570888488823859898404182774733376112386181621724724515871533528647845347901752543501486892202545804262279571591727642011579554637658664528879907566067838073924134013223105993674384928119901222200162723627101866765070508269511321980736970609926333063450612592832305198636279955503089058972341152800897159743296509297172688763932415698942481435346047107224156090668302500792509756334558849783700328973797207538972104236120403059514656919961682557487975360007754058174304569101197230755257474752802819642689204538689103504156919157908965882027929797246747653923081336056149400880270722072900292094421610414371665326094612366001971683646614570908911476839886932736628063989499376435093827100055099250619828597703580854140583677321523720474713972750181015872686723684688199956691002377857394447067501269809146328455006195150486263743720718740802252907981137194687427932819204802999798451665845265911753116949675838731156339116135587755038871151027965946810976168665228396985534335573958954882680043707679446180581417050350909861153703493167863144139286711977370160002871249862039453277564467813529650782935975338112293991117656805719527793556549022080037450150047701118019640058183956194204018225456760214037523841479985893657976136794551064882313298855944784180120951713005560279064738116289262779037463579219518558834971555458773015070510284412356149665672083703657637466773900367935541867548742621291069487802814251541681167193731423110301838988748438753466298221229631361967328852685331124115916993688665570002789680013132822673933799540301009025863019754286980318926712981120020210650468891718082028643842565647949391178674296186782209434460392440769989795208966388001764990506034227589109664322672195935825983619661051284243125714439412444075242609365440649963319533714201149191743527767171301891075990479924247893207850340939548161257877135157784025437945831062357935930871497851481134264518998812852779777750217809191787498131441898072932056027885394378720293101959914198726877459755824155521115177563986956851884545308499223825876101136921025578308957611709304446787903821210343018013084980350930344160198872689949486520263017772525011721792918718702254015526093269721116197719773008522977587443243081055481688090567222446087171836102909396388442884053793347207823958204977872621637471524322270525917031720300629849538098530572647990791545544586491165360180772939899645261787477636898078329823405713053668740015566060212241740445001492805530506106426498529607587090763476320952820916260351540259518599010808904776354449732203372132264157648221224767084591020113727509605803564457260522997571011977438600101047871669939356192086860643686103481814224443494414703106552576866667131779434669932361069464429384284422878922112840845355638214307495707661194215083585851190394274841713951166440769557271671842431881688005016585528184736249177776599345028190041368425414280422602501714319879529779910037311975203809881470843680722146375009188866680975290761856050762614818987634014740885721608529912682394087419815130155974212666809397385778221684693809387130089392355328502228760306983660119576336861328281673220314836638165722217063231939892939197062707792724218984078311965742699335190787077785792932801496599022971912534267134440638889891440215516981924527336454434756968813776189596986864478059404164022560501528321641929367785290728507174724481219352566858878084027683983327914354220968349768955688729432062109302755140664508545479465750612363622226835602118140937354415022382285660893189446312107516716201452757271431147479741903913818346027623340635140824024533629212630323408445518258036836966454003034056677937478691815805249239806166606394731579056048607442247226838438609675758601241010874333301562839643451171856249619541011701623733504171982229455576247873262295096107695698107410280411500026137207886575573331503401533261238006789185112309799735596928012900798745452328467878727829216149029181950714171645193494224360755988666316916735387323066068341592122147562260919034622982520783908174859486566807700216148841064126952750259427109814301523857028354786232285412988007021880115729501316688398646761404900101017551158978400914675716637648941211464638921058422806026019459292967645863498415585155166940304583447783792072954794276864121263694328270037192150017255557191245567190676727042847698359395985555991402661729341092316579421196960922577914000495761805624323706344737950420583258603170892460749378203934977917465858118871043887727170684674381868887470141774141854151776255661209029204052359804984005986616653415175555751649732723747006649509053338877380206568203806360212426541035024383668514951494247127821319289210409860038709105282426948493803832786345649517560331677006145153661999181013430794760672019233048182381421044871811995440492559514076816497814674220104249833103032014643484627104200710207130456161595075653952795958509872070421168422620500227225761059927505581224567082575735956506648088578379821943835550110363226697600243283315706556496600851403712604453052617318301834908462617615406572041131317297384556975857635799107790612807897236756713919007534008452722999167324027836319392906616891099908835424126943243737135386423896099338379388981847478070952144346394563400176776273802243908211997681783748104777554767002196471075902692869674529293523208059094182480540461054902026671711699728611806635107593293293234115555235669273169964346342886007166215480930305933708873383319722317400349305419363432179493373873958246351310272372847958544395416916757322249160604211025034775367185492180672640751495032034988999148992056239163487959256258603351579775825775132463229615754633156748157513822779692265655760464281843039482284012017257327573759455316516597402561475083241928620982993129783989318495174885362265623477347459870304347158889440727153257031118435088449931431538196092556755290492709056258317315642049000293857203792582726842666272916550635637907789380461143494055508900907560575800761880199231592281565736803973825988949859118171740485501338915701876305965103683368818900446978532118213307363359712296255751762034437209927301527480907559611055943441189895189341630574390102233040710773784463799043893110255373272537820980771265677946310509362722787297726901429313065153050387295810249510071921228051887582627641608136149839235046241455179003300810572612066895149227041942052220393864482640907005646015752739226913316313623077140041499117623725322691504716082671373977460222146746689792866329698913279055141207961284777530771298354300340580220855283338147550255398081308844734326381398893947195825578848152888002505035385100236943043651001547929702546804311862412264402817390812153573693756710662410552709146498808024770220808467993404889015803201539220783475404431830020280578102222633227674231602098930496220756790838169558151531537819903796161377607233005190900466428930335197976187276001871251851080700466941170275520740953922172491096789309348965239142873931959360356011274987841348623861644285703756058175014857726632381708144927121365749357401378995171609720787274728535668634553358746804499525637489053727403427947853587804322262911539474798179659087590424139185190309122226455800544661938774162908995252280872348660394770729300519186615287630871219654750074844405164312349510423033060515030766729057797589812909745920546512749714870818624914155183981945559866243925502008553526241847962005831617138787408065327198282140429225527795170533254524219556192933058502960927444346376224742045860235232357537909870030584400446352285163140448355069513967215020248124300564337063144100098954402789334969423002135081097443409850635403093762678902957318445372124820656315672366908862868895010770822037553136250007056669769335810481441072186389464732248228781003221843847555009068581786609210473882504840357167589558031999784090792860203171506660950621961578811944959417863823734720817726914954827227147688088132874523495728739702435284171211010043901969216637414557587071391860983795934631553350714881391700361463638534661186295630018043102139594142932428368901110653381153178518958574915114734269619928145648701130347264328617195438549632536321962632808240541054252420767380170669258143621473558863565866926753127723856731130929650133616670641123190497553772975394573556542583941657598266072987142774992531612427864901617426345125221342246553850926919083462573252413059511289687861842528081009536808170101381815796949641539666247539686616204289142115983912850461885446870641662590550444004416741826889207817296329583520983844100160226964698148068034493577185991681854685770131954558608781927859761726974116266048403798717617456885539041149258570774792251312543943374782176471716381473660915488544852112264065383831724398100345334177381004402501659665502936508073030301529574652855075600052350778873436669173793535188786906032584747300688668014650112843012749348225233995538942360436640878134038639038263072104777091466423657663513156498820123239912188138769138997063459011781937948478944368182112619872643373402094239044239359488770451040327126255990410994292155877242088470590466970840402345092892622260608637161218114094820523641675211260117593333594725700020126591729688975334563779924262034035453886413876704987275842175090468611884657783127501581379339224691866113096984457242566806901157839779543820227129312131486776311263896837798213565720637160989432091275404128960586788979077693433156663806762798869692929212751278365744473225047464975049211541008275448896200548879493384529110293050943468182363979459006323810699568666637856116485286218725812835869233906353999960740282542819723116703419032258661405951640648423802025406588395417567822484385413125031526590947718616129431322380647431527425967811887753932195294338588365973945941256864987071933006722346163635158053290726625649279668456943548753952190981051668292335821850270880098790356231685937543689685144932543179902188194399129657646418141171791972141600619029538548162330020934627691116961687618081587486927629725100123414394651558876731720595396398053866210675347778950899395468399195774248034821062931111356827971334407755548296026103654862895423491117756182734589652036918476286495480141557825103594898336143164561159986410072742731373350640505114835098572701636535694652371612160772674645320945630450855639243105263231177013397111529878688896007979446890398524523946962022421231002017081584254462129226179138130257495797234584957194515822278824035382519424814854349596155947284365869160429595058451158892463252981653608908907307259062498844607838832740512713376942460303921395063604674071427306388051493282143942808195828196646340274843027808273874407753954573247085478511849751557402985997658949877827648460176242645679512165725695200648504096541318651664167398639070639384100885693984060227398509245445786612898995219663737471573109881401710661789331516250298938693936898427697876746508717659891842351816094762122888674869333426567832592756101135402697887388511466931052520575743616361486319646504158509744803682616055699382250281062247726070567389922878049037687523769697718332146288734935243670497178554814528726788487566675764355723107266003112797480385962867876127725183159521047146524579829432614940430877252891994219735822265364687242280781793636046196342523209132315138959935497936120704769761725883109901296904022377193941198052509691274499006763184101937686441303077549768960405563809374309005290921551832510192606467339004743826426662697409609178282042043580020969053155574904445539962474827835369827041702729452095896171009247916730115414971331001438391250252737154173036792160993845843546353207828844093916835131800783889908645141984913272387158633856852757241697286496533462666968143695933555698971334855611146772119147345946628571314681832453739390817513057595094074495482800259900305318662703407449195621630967537857044060313893730324441433105521878164779485876052339780534998186018696456787677483330763123486194747378608507636732926538539883932945800933929467451343697634877173988840123957985510476137976155907643976106935394008342121593026122705490602781407085693485556146814919364478100605215728122132417072020734815073323720759998041707644385579657560280514060557560518953607037926119525410529681468323417068822341099085747579803356488760624045691366156178178502063482784373357017870625079761782696622508120214721754460751379448225598068761375829513353498121217077696198444712796763362091311270110077113458960197842963768855582448069366526046146257819795638822775672972721965169652290299730240797903491832647855982263176792650831700437475382380111941884924443965053641020166565751016391992865806024187531758540022202408666477059282938823890403774900616259188488163571345294777454904096254931624721282829066536734113038443080286431968120502966363335088831846264770326819912851013262139636286318956793452667022226546164858564644602539885464199978257787858086289144639431610503231838566236756261437417512468712145798260331969197793497819028655539537012194313027416889938814306317356778724364608607134279523528209505038901081614311049281258455981823055851904238865569781789526827928923631478624455425002757104641799795423980730356246517326332078545048000152981199682203545721562229816377438561874382400575088942194827758109822111740559799272038159784803211397723087836499042657677446469425673678962313035149459800593400788586218972594024738278835758495943589459645906558553963693240491855838261040420193485934143633212833083059325343219777975789261317905504301678883950734714511746603827941367278100507641108994101532415406111091347621755893938532445676926167404056842205958837914507257766204357041067221394789286374664024160439181533768426150692521049195569777175406574166069909498132612056019691773024667839461491309313502613274660068409706747888774097705418621382848792532630059550060807730940410558362242773587177030201377735299275730172647203443179444091852717782573498979314104655287092081494508890779025701851833637163252162471988770224466186235648197626055356798496361791297085739826510181521780005250420962364982726083712424124431183628898946404529625428167173308768747437758142754645791805506592748002709198534334141140161207475200657609902117100857176298241541878624935057430208613425775219528598569814009587849264533218939834371478904161847792045103307803462341114152433237578416336585086193831121426720245691540280866237919610668060229840037647135105198861791808748231913419771646314427115644094863052471339150056990882340755353607709549788227305299599596236405190559204931115994848119414822328138862537663852901956238530582582128112545287894942038481522190615936781550594218612344335557223244263261668716367559910705796890574231643171779617374137698748080304857288664642089804049374207196654812578145192016542493258229782132855835612535584332688655142851510039503003675248701165634159904123775105612478815076412346685794358628732659293099080468470761526482532702749683505859763090874050758293735757730047893492319049614799046571199240245014760760525581943812651288076205755525256184812978850045675583923949745222373116613248549012959675654521224579638519337057459428510614359167973682253464124275839406906737906647098938593076674716052433353250895390413429685611922262564592821253858739843170975539577828367419956465341771451222539704500959617285939584668899063156714491732944285255989517941063994555090866402068930623376861004607220247861432201881017391657687454812926329930292701144384184789365002648601196128415256510391143519943633449594582220291460816991351646562862274663194974190120348816687782607110123594724393374559192643525270737930363304532374129766155247063431138515749713966203396875036480825843506076581513880493262875470564071397363271751662711926303688702757841918472109595443020624352409311694460481729404086709623283546652640934717219080179196030016294635131307890715364203530656514631506764144736404412345161417054941394812337495723473745076543498683563765444580720198353362300282831747949417343748614002829541531009381771793734388642193090410302856011280577717355717054652882173253882015818150910072770275269985712470845169095181014580337913760846967424257431322420631225816495339111048407192169057985711832360832112368150346894562114582998838372839285821192490454264612597109107862896999911563434842681927398939659220340018541099885732613168524273907859438274205054195011715799178677764504140502185600745820222492488912266348437704953052832540322545613145111926795767875120395778669010224226585144559306349230241192480602641115065321097021895121245002082015456493863597790666155502351465537039195177834411991890624009144287128991738001304707035738615829702856591455764503417118753377583944265691793098801180350669724691047763537068293829417673150597757398073441080167222923733994653621899649376012236288205182369139243648454959294899111313851897824203755277088364967193799312901782916634950656550742719001036655798548158790353646002143134212557914735485233741641107814211003146674019870792588648787449263296484262639971194669705073328470987626719569156350960154111413191237428023208914134661360266501161760248485902038271893513890515080014608216264703246303521708127790654965136558780997990448580046084917216181445496000701826885182012400169712738704743645344732323937670516682652856085807418837503940339607527451507289087507657864734305642524340284703988147342444781985300514040479768154690166055778597887481011754944753143341300080928788216668862222135980767959597216961029371704587826823468437340208317927234714634422138330085904823141095841748796683057611768618175903424319691446974704066823807291125653206112130498166409391258963389234062936594066074629291813768440227547943189777019000604460415184891611953773900661121980383341057645707018575488035746505179081120288830514144005068969417456434901303849752097988317372969053211217598540197794379785872734029060105974967804868229256531243956437186002799624769276427598019573953189263873848460950635737343511858161848084459939608202676224711830662868725065087211220131362463215899474940894203852538727737565426699269611262214732063327061657022371520245373115811468301963670357021979381993139635014206755783437068636972185209363423570192090043871810379195883021581023620822045787600824413658547090018284595886985335321052207873656167635237159643583219599991576090945579627892135100639932597258961494183931421484306388898698770457431404481410023136707059338663917552331390456127651985454818497170754956200330544401063537768976839868518939395659418207279465625649204008076502073396337885804230202220741206725225818246836964409035576739168162914005053025153810788802913588730262798101280154437655823562379247028969293562819300563464755386502058360890497362634157653961362607902543425996215843605624106352590694610956952310225805445986652104246750509773499916708090683298434397078150297373236232613096516250871954228691892018994744801629960161024946607504945352460527950578270175606405260433687600594490623319618297197759882793240479551320776494673654206757640048489878273941714016740593508930356549474120813641838569162258195365622251142145702057286040714619741727441070920515134244765194002490516478337032962115214298107491830986847621561516057265522024104849723690163942320041238354803570208509777867533498132489368884565276673910081615914969825799330744009742258100733081522754160398480090698017523821087079715052907845512343167423961401821175220837003981816455924441091309432937063078150804078202685597407853607158447166207828140934083450297392891717696037217904712899904467094094686552258113970750718409835696080124037105628493580059333765967196292934779026850535552178993446082941947896862011444352022356566328444139545291111518348250813885278047857823661864852861814826805108122966965898981152476936682435048071535603162327660721353325124332858905804520168045823400144606152549780716999280793420024244115466637299949876211080894722290976858612781158526493218616574377088618683515745958481290021134844947629679581755595451771133005849407086475766282877444216456462971227141598892975903669631051800784791355889456099374019210595349191870212956389372575707660258937876693836364218030475161438148087751945082741663980963753930018041785415766627109709744725603779365415830100135322351544198626336597864163176767666430726250348343222182914565757864376774381291212038564355890614426486283714987169634895510173865472514861971774901358163154406354878212209661223770651101783827971533534468765696076820420115486811313645202845974317921261818813673972883448945299004417195957371443242039357459131231010835647950609258938470074168275607737237167700859377486310062621239153399027471241947962110858591948523314246339169821559300347193374766977777611828607942483576781722651922841231628150728702726088602577603030500168903864955171928596533210359428248401447873167881266394473460771151333917104037178730952171062300935462589243986078336208419472257208861501409822213489281241971167912605222100246047950866367723680691863205030904837685959375974210925266898915214049658654505342612133282262398859274365854682169953876171835959541179306063427214378718029174714729597120042509141973583775852010919397516917554459979273501542914897096731366234706511479097723893676728076284737728143080949089885591333563094718448634911133190269225377561291614385257910219930221543954851770418641608558083269810429189882597976107289317427683262034180061935581552573814517826801729529854069826247247093019899073978893803661334448188232655770817270339154152368822435031184736259999315842473823089634673714269797252614149181238498740744471184234352341169090871967205733860154600645589712104775448811944375506557303070977702423981757639978790219394452443488311246754993975534202519505706880542777019676544615027722198838642636014966908969886780669975109013366167959239748182085842788799853112792366673987789430072202683962957813647623863774484903861357296455873361038723959057598475607510115767652685714709667664510630569325779996812503818383275839945309675985724430081623124837550249918906917990754072517511086427928359011426454169297726128511656993692881070664107917093615866857987339943144330753083075602141263486867755502027156486572721700962102552369814369790341694059935822310603193183577305260784592302947525405724456348898027223173846040491234465646381287323933380840211802596632633936922593174443482619625469224734459372268712707793589213980050898360945248705940621786906931454891081902250606676318043305747448443892241391382732315840809588294279753608473810166111469109458866967786488014110250601060018736451529899035313444463910572146506706814036675822245611814055124463621559498420379631083651579549459124609116273653661327584680679155399821249555525591826989717283509489142220959380026416595413701638055355511373734186764669001885238695316500172087864785768931897706464434171854465183636447053975090678082276678940839164584773659430004152654995804353879928353377371459010205827281147482795037490146871397694846681435527944199490643286760404273474961191160859716336846699152043996959313658144381316622061843470827711771331672865060494953440804442609260765795480851527670794767525878301613746198436086408216955480001015024466531088032014898552682415852944786782278053498732803058840549573817820399578802436292459529313234261300238474187521037641945169332828793889958882572030294955069410937090602873278308994271380988488400575296142977760020141445835779841471263273098011399445690172093184199148134230441580767991447255869230571378243136362618890399414375299339236117042037026275249414171538407646839453430295380499049491300907481561509163157184994144124947061864383409824344309362881515609045988687506713351780875176262665850189457004884125838381836595303623227789989030451539810187409802524797924236017321693479037282549082300667233378174274294429432976429571487081484423119025269625334310188273826305862888835391244418880668156454041566070191030608133527013189631725419466748920367093482565160553620606526674223547725401428433304449731699578999857904903411845624061655399461658070867775840202663680390728277215991254828562785292934927059578022299115281592370371310222258141297325785479451965413024031477715928103254427066577967829355649484352433040875790387471487079757979839696271923652396263770996478210665703245086713676263563502630105457119135387434109661899428336554505808609631772368140398919116195220186856200458986438551826859084659374962689128089321421523433785011479639052439183063269001944382944294546097030016030645837233179940111864577063839604525858768337522622594404990765804409292329081529134018797406764672138187849666588475910878033762707811380482327973212403127741997324458523469072787439543986307156487107809555288019429648094329104909994809216149634938403211460445536644945148474617667227872884911547702133921557229107322534580231544281128151292376643361219227033653379631187814248876877122228941903316556123512317433864834508261320313111169918607045425413464585683312902499808895926142780755759317491247048136202575708464132622021451740702945100195589472832484937478456120206003147304428448413677447249721625300469013476819735412947243579498483829279916794232353917342022572904237306731510679862917561604210226105074585560581394827813792431502698889516064863481230253814402485427975911360684042121358001866710720788386796590468414644122531052612909897755950096875878302247529042613453442573934366217758481887653852250926393657003641897560358528339696238498773373926973548850722511510922231235816993527146806912506296308912217323946080532954914566402292842256261131847646151800748943348022961517740861539109535475509737937466922175723737303971532546698516224973351235380678640906135452805271111902782485727911043325798708799031353288327190869673112090361121734521355252466657947642125659972377320593464454112564908686649585742374905147986252707168456470192066254875449912967547752649271973296378509864757787419243560162874989012257194162832835244013108810116383956372982138742292724461887170439815228851783947289390872701223251262863092688781777712002528775448576162244162360357471874626153601142526297721484149016730403136204151336828191284847820120653876939217478780928015573779061274900127620799892904469747316460090294276415925288081829238343937840983236766821772308088797533705881952102611220651721789823964106889133090598313704163225197230987153113341396777551603690501199343789479714625630436472047964992449644542302252048015777358474226568342998478097320106877915506218571722888434505349925329759292965464769329938003773475327274219701871817268857641106661561715795206710747101135054093227242650673412920360439154357741712425338423828629968906919133652565762858166514223406879142216691012349770907781692262729130779296921392841659602540880021819192187190653910673556050048931757404346512389871123769997598868962826765795402128566632216253975641943009434007543785639956441159029051329716170958019788108084236581200839756904026770117915306719537622627454565051525585668454912581559354217068654082463925250026964212654352017943902691071357347407718311009087976113767228080138269925682823829281381255218940256497188610938399594207303320120913366429350084222422421540110902419914570145880448509287310595030626965557868027147609831958443902094579039726189207919538055155216143626843964046122226354632386729451585904975380500981161722161056611285708729193311331702991665242378951823117329528184435299360641441683552989445593650454856733157716492811562778816430130730698073059147641070834492869803717111895389596800243989147600408067761715672052859589628775559717145316242269908375644449896023951603683986132699757824009972280272039432774352437400353844189831785630814193299430056366948976368513787438644674149811647026561832548582359764721879561205684950568481396541054426890812605353222804177547390167959345163030035229385565465369174702135821324871641172353310670439052335633645309190351633238675624503956002201703922617055551644635573247404481773310361464020870001453712118954728285005662810882013610036008755609139026214694580393594151316333964022070194740879561630379306450559427526582734710754005942685098708783770008039128338752185411343397130248837975832393809848813490990432303189252207854733768077341716046523287949381437051006972173913462172911607395061865245228225246644187822072421336183267132332209723329373111296389759362193718915013683864085082154471690218602318894818919804844106000642024038951082377548824556352373749623252137481929891994575240330971873474388805274641068071830324472048998331113676843239980325653115221085325231575184815103385915209838176329786430952111545141895346216484627727931633433827656282355324489291854979341096426348905011861382869830856634386045783486429801496097655653111283738155174813589049429910477503170997333526595096555482586957037891016158912180766018805420510758561276041160785896343890725872600934957944250349701003580409941160505656014141961845363564440626527742682454705714816398400929415040353149724946914325516850703637371219410907384333968877565383149478599340064471571648921240167805512496535138355900217759650041729148135739644157590354903562911429557244469425333489847564321672021211179024501795280668686828827222235081124723236381781754473833215455150073859140726839439714092473586618863293724111448099451893024322536935146027961664265376524171277234704926084145774893299073615610238381398152935252400911458893768690560207107367240040712060915398780566746706154816494382790296993088289032116786793692282905916735884115791856453820162180487424823634822040208766109771949439792085326992533184430458633990245375232282897246882547317995013838241808794724080470919728959308494636490752474850974589547509142063956815733960012302939821955931225613650929627620374971011318252280821366156404718915874568101634630409988855323676643662076653734191261890176052629830825835369075754788372448983434430446595802812043366657705591591143154514516696699244255724593895805813882264285484826326299582273248543455441355824537876641611652997835687516588087137541871503275800639840911039040722815673920531303245218815390776807674569886963991939463884436553918878012303796112933088590340241596785550885688487811247412548950398312188351953701712092638758533025718406718780895903085104970834083997311333362299118614376169543169213910207920281350274499318653280164648180990408395484726904908680970317864269822733091173571382184152014843826303388930510677307235629905861625174571592588855911761693158849302772903025916782783539907205628206403575460025424247984433574530945778163246353898253189162574748143348479964387606187246362304047753315217090248039265736540664968734022554185062843568910039689142908241835123517084334155443682156397618965205313506266810565540592758120645677579412544815306749640809751228366659364995300909797722449466046409114973772600220463812665855687911113912573465418688239648609028152755931619205664463063641736312951819005407668026203240039957391918437380600298077976152276719121970125905032098838046410337733517164843917642096652974029429756641623623897007880228250615604494294521639268310230166885542370245891562567664408977649096829721889587457245851277986265648131753559744466200207204610281032441638059788193631255697202246322647976987240437445402385539431106951230744310016314718703162265695460753425917568267989441505274166567309404511933635431666149210867967871388378116191046997033340579435764552998901417613289842362375365650658094401790128644077559206187337935017317961874331894272141923534301479940731627760146604206392847850937079771039722455008664456572868637640918956824999153491696316829869681699435801809307748484164014261714200152519491542171829426429937942565253810065192166442115959588635697128000051057192800771201925490560026031257033273645814684533718780726640592474771626081109125013671185597550264692044660747095882717451682699243269724545216847832933377690159519277584156305116320018362720109423184643991387381943045241534780676265114991615015140328164957859243661786773624438624020305031072270814418921431223975153096928868084069147720061979533742707161900784963554517840508676189973936721056782963683257588999408941305131195588910939804981725976382067852113205123176397768739356827557556896260429448267640811492801793198864407191157032548344066710423668713737528214981748393337949586841148989417346182808553492962383548094556519944205282644994232115828486255798626490799898854525325093851773057880786683339430752486659734644099138764947877270773015553925968976991966670639291185855518001373398730292329298644454342007169309172639408144415000759174998064306840936406684393792244243031956256402193400709845085219626790677212653970886523278559321423421460909578000100413876706585258492708326741280375023377008423195881128434853547902432368353398786940286007982375547530267872692538123866181087279623728967429972921813370397545072574177416652431378670791018636705524347974718503745060228892891167785060656551274956951309584620778086849165958843339842817847173927906109907005471906548810248927290602106815732668638440149399226507445466453541260889382118766754418560102625104404108258665610985226428483347137720488083768357056472987106563872666489758611813183915002527090356522378455382143837433194237836060831499857322836983498262105584547606597832760327202479913191882474151421742112194312443091042984215496099116101048186118811011417847985712234756447499356637306584358711098880717516793034252301361295949470235644843600517229831716392036436743740212746624355047535455450925132336056511895238686087240603407653734339957364203637356623938667597822585165952653994763606656733761942311744450942235995243304961599743868232718279094790567545221318003431140325792195071523034312846487854489286311565480122148599553773494964181614699845072335240294918562894328700469340460545919582665446961842912904995195967471602339892033585091003160842230474998865916979561223525490047371254506368532382538520578661666032300216748603208565050659521476177175057179083102507320743797130367991377805775248747744159225920733533261462885224534834065252589956806735337006437362071703211033038190317637915219407709784995592644368637784554191181250606717038266825863728069120264117832398904608249027844324567067372449521075049970003726266106249984918282962587646373607460148389567115426995851770856636123380339153437637705787925234697594194163070314121762481852567855527765177620043925810696605392007573020577547755521603392989223459280414443591075085184827890336993378977879440353780231428596034273265861457566694949844515953500127556944089016444587793455233791905410795944072879665601740314042403246827027753916749135060808115801696937706721066862921174076105265893971282933528906608268371458623241856329545230001433129987929796796269507891626177445277279757447327132524240585424065812095675260829507519294272570030055561948760446051823733948100880657341694066778864807550670987233188712130021900813898847598140863564609919609180821309128552472241897968036471569047188103537509813606495028990929266438222039230950987518532777222118959376432752858054500708021015459907257207376235336905397995400805146422166139012685217600513327448103860348133858798537928210758947470750409514782804149363029797361499634608700104830623798643359031021072276032583866199803462265303178140361541298049605225745810303072850975377200725493391282923583687031372045819420654220932314902020869044277536984403280343984729736768800653521095963199461194982901213096538892229359798105041417497383136999795935375503251898547024266169123786386754616739164952384208041505042237379211869441323371378579069481361536361768477706222977326585841453891611824930652946475544754691828444457068584526201016090076517766816210474871325312437280784653575510956797751859529578782801223028840967414313380744819992380523383400396849011318554000085614307601433434478382681137835672256834472104160554413803497882598580974468511277369200086453238526970532170751003998260492609283997458225662930104559779332260011994196242436882037443567444207663331754898296871806825341177887969244860596862993046912532683344478132256071073491286977230980347224658058670795303772958921807111975363967084461955815396182652974588643473405693013352903222651122167714776775385527410545609224500764154463164531155252331711243106405658056219406472957778199510250684961457144007163991687274926796212794569250590462696284588070267039822739908415128395641913645599115712304099891060256084415239770486438153693977853524629692560486335528514571983282478721954384733817378264937784191323937413804343614620328018441523425271629443529141915428944724486011748173685863601548086792118591405586255168729918784459495125818676401491102618896588660912976238939320592623158508834379641681754693736384610257027754425567669798728978030788480187026354305549075725639506403154494433523089745035955720276299139488458147929091301428777869329488192865489169573526014529798181810388644064297869097929792783057477917552541896414597833248851231606470443165189211116945074824032937830576327639230489543702614644821619732938659223853496772508468078446676363913739636477334382301171374682136961336487697220943168662194671541509528426363769238569574544223840543571439532419198885303799897509452083672079935599711445331020809607113159279462125762286059607340897050663271315900061511587497078119766328645568148621478058314896262585885801658783484082496125019379566095974351113930112008878596848927064827328895566858450881108605690209647743990641799860460639987069725378110230962354871451000486684528306290756258343775498413261462990693637540828353521728252179196720273661349082058725093419873275947367807179013808853539629066940909768468130782771763637961281355634311641213313300587755501923345166443546631042767048273095711484509967233347938865330820238193698641827712748289475725073266071516480121142185828972125281926515824927992249639984998754227365730139005218832044292657338311397281755531954165329486469605321384299692362720199196879867851777588290813768781866065746025980670949567428966594002061024388633393757375667801267896846062406677272661016563177141476354889172448482469738343651033600246191415551653015718633985710708441789270335183400850093504556936600438340870425874129628460048110124345181006049296936432905163677173635158131809741515310225756715280512241420747058026023183479636789667786596196568983985588217354383409367874470117930985868988098728011845888985861225367989984858188537000256896977595816358039870355979279909418939798564287542540836950684671526852945891718967711978514658579653052296252008379808774199302799030419153375260934066649227137162685528282159935549873058368372425524542238525353155176925065494827811480307710679396382231778255037492819544038065000182459742348870471914382385089602794507173114399551683783365913039683671053700006412140807182127378460507012769886332003058293937951632213224732448518891512158382055893565714891413246735890128268040931159386056418065260264525480798881328498881206500516500853113617119833052105902909899915379729542954864123698830869824219104172795294513543361724997943884321773097281317615994024141845414492416611236324409560787123713728046232934420720476202634861371754647300418988447815282707834920562912392178732077486322901933071146024721625277164563162598511036018976520667466863816688673820819948885915369245640138463509981214712087988751835021163287757674313195559249547772833954630192656036892208506893532578762097009979853701661667402088951370744238956136817370494964267110144747572277925382044784841824178530483016029620178558009742024697148555136573507736929952795252845301958257046548726397991545713183131708417082474050365718532916135025872508727019687487341349955807407289935560407454035453419605422096022558364739834685513384182342768864153886217231548000630100848114428633522536693589833666149818524745080964971211960631683928139853860989481164937555992650102962182289033498000360713512120619999101415014621804858686814528445208242562604602113245089462004753474983960557944316312158401119975126709989087248739311383110688217077534645080226320993993864336439965027016479862296088814114915389184657985422780311854160320190360812401662638119514133390424109268066935022625665198474911243241601937524305757514598418774283507097287181505921572778828758095899308154778022357918008168255125359706343415859123210874607829608547128217378634632238375021705150177272168826210083948228864123701228617322466855494511336485520061571272584419065005735847009271515918252378944536479852125521482984816033119782253707135554164593460148953226916216700879150583869757211585786177398302337589618122530753304267600752797183620654236900193608239167220224243699697009491073282480687944798851432508799700168860894270950834680718772997332247302147036773227511350817693442795460295894920788101023889702661221924399497740195458765579930924681000002729128718312892000187455086277661449096863478963485005937530197289947145243095269217392026719278118595895308133655653555595031960670178492785685094673555090749119707793609109147918286231531798802372115892303096573136254162287032568164699471768024897354656697521518903770800838620528670195476734921280911883557367195037725345735820018011768226012943382413975523868766212054151480117948007601233197836405116763606601149072050122159527504382934798994264547099477348286724320885582486252517321613800510039302591234638420646597977876013135417844719366039241479257017188383367954284855824143310109633484426939194911163857122579735089193824677464836935154331962172454490904300340021703184527884393908488667109756957158649081389840343064287599026493679984503740771266499039932877632696677524517450201482097135051450839347137029457418242700121567216667742519974524467620206863767773908503493471229500657755969391018734078274711759532285598051712609840545134577716477309637830606377403084816505906204663418491915120648106093820262508917578085529827525262709860088597118097885459782013015235569936781009888237113937566478157776022160110842582687938171500623445829892195280656493167785138855324898809831077073743408822252394513284949211588690928866346300151845358768099544645929625059265823385531013027171739645250625243559901098058687564059122747993938707924380660422545796289716209807101621750533088910712575123824546107384710427578104369848931902124444732083352465972086144718700580972902319714412482874922249357222342188531078037086333715839179617471990165804313594877891750049383254030679125124693492506883613905303592475780724527624078762599461607319752913536255494834049628501150451325776817977620375414941725953283243886205847440912959973320384723458127129686468562982940361214525442998140720981913786185046010860716035086605248378838830184465428635276841086570379452256392131024580419328331293947023688132544439652262024692432285060217983991753899843514150048039257417590053254990004366178961535007250137177545677773863612850048499310391493230111761336988654507444027588397285419601538486078539937167933613458114576540937666056187353464116976107668557790592491345572082254847510881676291845191130912122766391239625625805898538082670871651636685586505390407643143409396357907603377351964386981536068213758035883660847084785781610022946242536360059026385724351839236378234922028293822380422551122852909829045447877240692556413476968135111736796196889622637620367429687885274554243026806270580618312036539927755441397224182325716460143970515674622461228888789323408185915522230413374966788683603138022617653296795206692977091535101716434521498989811794268679490085889570610829435958655204803651793482349302882868263813748772878399155695676646211044893773818678673291211685617992420654821277399739223837668524031427762908909292409124641053114204301115828268676820090226185874125569207472425932872821902648157752607749361715043958335814190339061302816202957758780459515075697572125209981228348858034229447948745599954812497296014821136220932404192733950377265365265707402692654382241739628799349890839991844605372445480338164663703028343148285220075876967212818077792865877164317806046701211446904111503586723183036589272914164294614349401427986410241627436797874349477973786327691893174711940699714372785707226189803841940006632792022788833155250816608096681688798967971171168009414404466951631368975169703585675510963846101811037886675945103019943405852410337456103291623328456055400007462599611006521305862412554103016360719924969319327782947317252657714060316215865021653775532536469852770511720190927484810726183631774825178371407229455026837802794006467345349240812517875867395734184411534311709154358685024785760963401012113472908246466166038479671014791853672415283380918885423777837589226261207939914152296409773549988425336061967960350567122899512144671512920093238853968545343467931834543934907083129891782882913593121687862223707284829711616417409553657848351862659939214128852726932716352722445818353885086426143477258272202159377824537280368870520869516242703870465686062659147567425415376641414258755522931136540769940690188274678627985617568097863755352872632503084432078811717837574551805197044109469551092733807866944893586026578140860510436822371764045750177892548698909203964218795075028654073033723314361733124535746578939605839208247208702283102413512813460374387485822468710325245565890883560610611253100675778746513080920529535438825378535373793303570499417693408751193565930077404333840823930086642315653413756819452583403585786502666979160177619602726911374914906136986242822537545916301251764675648992466084690540606907287200774546137561889166889536165217512106265887815722625117924661196265606221781952570517385264780215464733056250621310091448086679353883302661148354465012791234637892706722087301371641002529894469368663495644866853641456416008841551767571248304281340262663079700249815023496979355063127927375735532843627947620670545500433963025863097305035817341550526675088105287348410211837767339435612004889298757580641546392149312387438107452321136675623547010092886790702304191629407184549036536653327957908921032502226240928317152162016033692597472157465010509475660449946716430114567598275729255194417811892400895451507656199943021463654875666839334741206801749594879666577870134341233284104464482963271752844484885764549322434011435026677048002443010475162954968818625223897292888301816366527690341536351353021688443732461728431599738534172886727190589739082023777380646768896671554788136626103122385364582175471333560135212195784865098126104240298521248311730644972035160916339161478218060969100387053501208658105158985572831112688519432711826534569359043744956450104352957219009807421085757284869861172552785087253554152110546447496713706168597619873568025830406279628096344346363537973291455756699447623936270750789363983793702913596333142018583053786723055454207095044241573205959904447984451638797922322188581110385228296838911775423493519641288244507557103647969020112220084891567906635479692202480035506715775121404799621010312149612274998798999954583736692038258010353092098571932860068840420554086762910486843931946292001623195628277426600293879612330208439200137611641895297041043135976551052605488510891109222287563015937310907721819374968240056745526280929914801991671686419998720841586497933229530257619108913706614555631442664507243063834806413041112937372696702001601455558698476530241168992095022169213622091170795216221973857511345661238581554679301347377770678461865179906071102993219268820932619162836939250092777281187365567292187314443639633472467099297869879385386175125287380207973109455534933977010186112376941467240797398811626967430655871899985285191931763179376589342327585181638565381706429407615917828043939124641496890795107106960506382495726408836618682712812681664996253558523318529654761251485665715860077170756896989569957684350619125140326806218683962802606839923641138418610502309969116028150624092547404667107485175953348645640348932495907032125402007182589974693922433011615096293976233904268702983424774817446583947514292667616855116082710701422676446468481542043365127949524867350900535659882976523346346147354312628959434271682193340441876209086940559201847702830405108279596657531761467292796559262042722465605112589173279119794002934555116698580658444420105059146598018639890015299490931567826924900223536272855646826449213369714554041529542878498910174843539358640581158943097380912829725531664713680458118383866492591250369262305946368397772830230005426921321674620145642563906343679077396018892348824315002248988771161641040756792832617783914611228342356063562119454802167288248833230487879757010039430725051805893428173162289009022036670413989102875241868788381205926073911704184502514930067649118532919458219163833840856245675083821405637943003778445829808911534607061256276777986753477271137116063550972042009795558845030499692673038281427690202092218155015025746798170488449015048928344820892345579010859402455146841479108263041245150339380289708207453541720786174317071409530155784217928606257806880102038777315894532568693759258271382057363147824386781731649320584297192710245658247010378922201410858681458488563388644699060882980108081680608829975876199450217791237782083243781530526908845964299473047832111030322336797070351404044552989655519224023426463096503160457175410628432560350869979065859828989797759325838669765563912324085252428501892218805342805228251852388649302170241036573519068196990229617062650055849008120918840491590195851402059898749161420979806472506885588777588317960938750165886464572304547161114087026790401438584153708912190318216165885459609343248661691329520873717320849349500789967875310338212977446657033060244063683948317608566968826141263611279479257712725519250469953207133522592567738317033672521908673055468831812722119051331552820796485359193357290071568354446671918896875766529477479259206221940741858102811971507247030364674014678476355401161253058660766141228352369051762604694253823991364937083290721428435560760894345007468249589420697359965607700651835745472803251737572573571369449573784776131107051094199809306370301957929184313804351508701504312928072498786684332632826412816428512569182825775070441453355658472829795888519930585813614054092648394213669497147774521628473407344955972410328419711811642289265778609991930948300257238605122702370140032025260423550604629701749319500063200775212108136725676611139521924329325484285911125190774120062519891188553900894589354955038327797170276925547554754505223543566594287960375992265502108873587316099639280147859581265749923626252819766434518924433069253782100813663162993794091068941138434335554036012248695008464419437150692429995901010052138634497537376657713305631231945881568019876512533136861729969497852259850612129468851446501884973846055049766586767137056377649129537427457394470978743078914104678653740745331124270445976385754791307390573851650699812153185938794081933395147406845419782419423388974846507058323447847107676229196378500272167479159183905708816890017063733148634675466177633895206190299133041742502131837674196209464847790759129671769980724764775094572241857318775717396122542922935450464242672432712358622494746420657020983824045575726251124868105141166497123622374991687134390072614118836366139601910868169124384591234197485135656481925942819668475587277851242206885875019281228966387715556772169005163525340328804097431553959600623840031425659483387768257305408539564536145236542803006128900761563570627507989771059514500070411531968878007652514498334733630206959740295028772588438009516917575811343326319958533788466989890734896517526332442822874390804785344211711202025285040633694241190363418035638809452630392285164706719627256536978969125779057290547699459016970936721735808423398794312135232131328078285021915376059297775192124881099321965339417699185889848565310061355802272034095095439900313459089875397708328143716346792523863878188329664205392177864017689277328334905157944436791514712316911296403740286910407248414997144053444736217135292756747176132643641795357777097558740187875654650171857877012141245036352864728861658869936429037979948519621331605343992566905713276315761439378804314565940210040462281525580782040421673523599750489409113740554384968254493962727701097582718578444753743566293131763742869134891169642505069178134653699896033242452546546049494658240639806310048363062160647057618016382430893160543622202344644966838541748565950412904146090967665199313924276231478524087903423434147463534382575669413734791916939526904680138694070612534388846951984514425400157211522490919916443005818906321243813489084294322340265557401230802329607999308237021619991586393396709890226731050172688773443809438841690486778253569358689234196022191939764083307570116730540229643582222001876729842583976793481366588416986778612593532224776004044768152487556686981282069094732604831319212416467347188015628537249296975186071085340298880569521528356583863804751452648635645268707152577389783130453793776643336547624603323853668871130612614303907608774990167198053653570586730677588100605662744300671912214072090615184831471742796388597785337474623717949355004223747202263485348732421761400448082767382166047379053645784212782327240859595185198809846378411187818463512733762418520249565646697565900400776844277962197267731975428470267236370508221688440262730472328364738951758675489301325363964042444462256523994809289889160092899992690284781105481282913162900248002966007382492739142033169100736772422238337127046230486609099180337761204985018133281472879168094165974653314772812110174148982862339928350814348924532699527553273223025619872370303377871904238307637558899726434165392693950943615608304921561372988599643388962344530470004301194209746484359197811556428896701874666018928564741306827011855714734262243748970626399113212009902218650685156062420876014844791405138920356711561355370163077079809943271222310626945732214706130714627625635218886843780723196531305338168390615383412075265194091554769450009323215127009214225942683835350080389811488695754349711838944609241543562952022551352155793093297207773159935451948791647719587428298520863501178655780584549409049843550934791868866532218666120477934591206792030189324945202196160302475528940865295001903128425904252237057446654740878921001198059746056805959815668570787638618319331100498222199918935012362668028168226181591978204937783198090456472525879980173465969261646026074592367015881148543693702066290703588813817774583060343272043285922875272613946450180753919301372445119789551702387644684369414519536980707111276093793824686966154215060281981672825022105843662667636988278271593826145389078522261818103453372496009189659175364547962408104221961483816439809973062016356047911450862124655472165215335860870617220846497990510662571152364228606859089427059516944417193419939388138976842229667534896644048265798154380135143451045412394072837016488474041024629837529830466113348266195097463693599655864480234523957777831387715106914052133713436660626766288849879804510695459783349430348745124936210810476101887378952477745194055383428938435745938757929984923893171853396105481201310483662045627650368426856229400368965182647702711046034076117016730366511799649755011715886671706535704920006173635855504609646911080155334393138660701906651854384669973423819492559881109119881362195926707944555446968647546684052771703095255530018373211618383257241034130664369962236033437001534197255559627050243633530764134845056042441499856359462514775226312288693909409920497583367242822113777703114532634647619953014553428884903143595438727967334572141373341332624469583933798272609056151627846148911863624999280509208152346017490188067692667794814370970345616149165030037177738684673625476736343938250647527894681578361290204860436884230785871746451778718985142500843387513471107737905722790172801102831813326821011709025145168088254459756473741078074952451581972000236998213496106814695997447017338340789397957273165673723354395586195347818172518781814125736745559103177990739481914339064524340203130766586234515136802305323013667068707278177525097564882606911913116416865494712732138360144568068066720753861985948291828545802030058026318023761485077925896627661659273182996378317136833010934857726752430808207808511673030437713251108012713224992797223213222795784097828348736191546950573056691151844300195411483155429814270082753842025728364239833571993648891849948342674424049094861510370083443997257409862677505046660495950771218454084503694786240095151869994936827213396575904622399499973939553118776585231587894970241090204415606323092145203520634399493176427441667678182958495491696398156118580706438913520131412022963398365912748718347144804500976229094661885989335827480203880647468012479920578137501795649123672618450431202354772551031778890441312220784553790428355514625840147088441197097488960318566952476141731565362131176079645451732716979796398880980864100743492263392524405523259718980217255293554095472225558535156282574871633673894374930796524583033314172131155687104068265907139448589838616042500083259196820734690937266895539863368177884580981052068562764469890416041146317456709893437834766709345444488622732786609548649717447136100125800855353942725216122450806606674129626086747341048589560918031341017940691892459175210455689808504397324392749970494695909185195375171833059082522328856501102395896821598550798021514704267942376920040324116371551052816477670402103903191323515711808608280175540783866708134742475227084124650556924213677815024617171445761029973672148319999707009069270248331413770208624707374297576612306269480422195337422737618112206331306262358666917494527860316064283623151829826173064005743500305389758983007998377065840283554143632713067545372026128684346479569415306117718393623887707702869822600705567483610721762751856096781383525730312434831945339639673265941987809723519009981092090060673695253741592108479332717897168359390595881861849686537499733203900659480487572488695281327235502351094519395760571215476436132262105293674303723314419966967680088353011682048421514745314588307209989665717831412813426006986912399451552117428943994075329683175367243469749598962813311178006100117395230495589108449718697249786734246829097667955877324413576883193219730562509084140589346010168545021488136314328836811591757966952273933718459134508821704468073977633244584659616414454049974838446768494305834096716116798060709035832776124965983716713354931912542052953030546923750123944587760535129309879023658304347845497912773606112843402368666009943353571465467669783516903859306228640401297553185421763127658176727818792197159475750287623080377735702925794784265141564283098073438981371648682644763834744428045886050554097692412938619465286589209334211911963211226259601014252767027921082824942225113405097516570997865832625584480803334277790640200156210078891897254374983050791759640137570432755453539044513867280250453278566687768529221965813510955262828828776779981572630618559268765634556530892563296605412880413548216629072895641107925016850355934876466107114432198750986316755210492287456859732936665405039969765926530092802126410628259123190903083221993116475501040330236358565640392748124123577863466950318061735530472327863988154052597564134256183290003228744571347798254633431160388410128757828986187496597827103264823677022211939496947239013161572449855639680611741624557409641951216660229893440903258267071790921413235754335526869290361514606232003791013930485518850222908411171844708171473388108045444145887458288391976620879113838138691785080225937714710792315009022011958408689484752343435527719883666572534398536858874386256072263523355189593888215104520507743942692900812253340263148510910198519569552326860053698421849198992930210709014357315875484299034986698417129948140236600349938655872818159408978595601543262955498405138356160324879134801251264810961057891535505919946065148376713472901476833158560338850796712968323900394441074759187553849023762298103546489596885755068307278035425870039264410303847185935812076989426826696050138316905948222563401817254088865728801492545603554957842884406399116129162957475438724188091525189684052213277599656897205030186292425368688380495174851111853710330023080597172708837989981368642615777753071393499357292554561080678108513773710783791627418887049299128064005214848512030492890824817766024760590668281760730460377772244812419853696140693848751286218500969978636580238802120712289580389678132168848860017305717829917067766122331607712480740788497027343178524319618832990769819749028293711144320510220115569789787583447857031532077207672990520079698327692696631843473797000982335226885809912533746772336020905483653485485231752450236024629223581553752758699835895587737292709010673498017761504242278410540163779145474803297583235609752597787858232677316842155049132674944653834440285274563892555039161759914503626228953524753963473964421636341312540900606977402080116461618544257472402224087470229215767645817974528522479696580161120177969986956275043609523351706905331059824832831522212754229009386599757096857495353217793550556520066448190763161244812196189712553673647895497372154725587579058144609521224435688355857677732747199155890996253437663008901823802682726903041243427858707775126512473117268183666961918458938512445970755929008666926086281020226087825591819505266012241263947481908134425682002572966815718242537958415023316199290445019446447897452666629917030330383273995050106949215402151415432283878763548847491834004934853408706046818657561516465982692476388231320581520430877090388110006754467657032518701825497573956723851211582124730097097815299800102109988030684807455189833118745873336731382760468991473621731137177981539163280692425891823394798411248461626166624069927728852098455574897266798099342845750512553287810808372882256398752892057154074441012152639709263431835345727231123750568423651887051830602962961000473395244116269283032811885409410284823752947692912307664444309617557833980026245906495609637694403673067849589163481246034185480488609534878479830414835375601252314598698927078012748221539236248142269062665281230386615076352192786344995208867057627084149599071035720209909934450479923621305702229554215278686983330137881567595950336739010540994198877478388214036572116153498377481539924598069983127662573552253890043222320670540142672318824171174250433018176714060086951506198544306017196817453398902423277725060307602386948863169444117597054035999626114736721084769184695230161635961638487583462162461318745774522412257608928290514287312618727318760726129212171845205078392402305961983760948993217535877775325308473054544145720813900121261805023022289110175009957522717343067069928086969539678793664553857846020358041119061386948279612547673224831428186038597310816681948537070369440096736997566252137323337129496630989553259938998147800044054265010189378081689406599986237437369449647154990129837055240523838491576679373538128270133856029965592762680100817553205530804804513208851174331066755454533487276206781196897024217418134481125084340074248531178378758928768139410802156168910362567014767495359740686092704773491800992815002568539307463842894955348377982021014726603648767353736831599599337337024134292396613366261323161521349982391879575417292529979641333685319666190404229304499152231060609417040095461416930768034901638202576203925795594605380931532474872831794180493981933640167774219342575972891795255006577790648413701914723230963224086866782066311055207019156071355676899320629576643517629963185555978757555809421362524748961907454543543051479274432967526946663660247032793768310286236392109506568665582582089574974051695525139763218194208958440438083278206638635460004085523501292964158150018181462548201060190094943529807092787782022991194393977638869863374805726314130043232655852005052056771984982017861474268228991875122322164774045288133731455722506837238281988699531663236984276559821541974393995543982604379097809272451866086037599653588064307812566063470941945775986665904370154176350459941437502143790635670814765534018965241852191274339978662908552484049136121557517671678170507666512239762846709539270770578197507644465778511940415775838902201977333964804697057363176966975976985145702152460762007204217617027933351166363515793324727888984162688070699454488280442994522876563749280215347426479883811000651663972811359819204710560194377296945253348553813588663725722941761518244828561166339444104180533415044549374053534279196983289585742504446228033648161754153939281636987676953475529841645964455767385152478292097694925270164231630566168794869372257251975724736714040162236409725944311008497316892422477498389548462864677400050877207095084790481913817125120468076286621119161617259481508416931947800064478657194348832249422989132885254295582334604935166487812794738811014959503191948783081514412533123080880257993707693106340333465691812589283836050406601522284144307852682554029752701962448346681196520624287656337671166691842395191699702859083153593005952221162554116162057635890571842567053138886384811312867217865946398499890667400807424559322306048494599190815277335225053875957493242785494903233537750652766816998554316069980742250891018520275485986549448064945286779744342715236786740327241137500632660109818066587505491033862141273651977197023589525781569595653901072964251455511122752875645060036615539553185298966517548235999681908698240661471344462310526387722253343571491321080747448579728163524818795750155287453874172274728669444577628071302878839654175063755372685762792884200423728347588405011075041744197969606930433321614373817599224760095860862572451833132038945257434111858625643866600896282919152108967156511492942296907038935722144046750021802072129998105382071250085658857996406502106233060214766298902883735865438751523840414490984528260251324719195010236179576098574521321435234063613875842132786799359218254591343342415275495767465455095129009511063640605419774864540890647956253479250916652918887415937272470330587671410868046703522725681357504577888273914038502706835003898764058878268425660717434501408094085008808072136800398994287170469189275768045300613708202698597997209865418725508307488860419499390251942760597345032704160134260623125205055693090726639071719250115802348035202326259389255898221794538310630497310983737659573812735705873326547510265764613916526540713196821942043534655599762380916084555241464062198294086498151648580499720944217810304384336198962388783400504918994484905127654114154828655484436177072347422919490536396607121295970723221792459175392741798638933981968299539931872909471555629548047066223447865198698959767782322732821342492785212141888641136206371412898580446349579107262325562102244106925026446880559250828242181932556424234835921312384612404636082824170877435971020075693302026675201699503023021720392226772440349779350507142275511669223805436018770739468800965201530763284525923489095702303057529205375725722313319195840640168089529614272494303968883798496122639981566184404559777148494969457882634186866644597546632699326497953761910299905781780353153193744911342762720988285178599732019555946444802192629802431429015828306738480764767157835757467076055934270526243133320809353662963111360721829178349832565714320479857078058218293098673944468133068433329531924282551060899770143783386481795038695815713654862934346651922869609288045735242857317274651655002961098509595101441750303673607959362482107260096183456545330144707568407738802656431052574225827556224448970350121401642267467699814484461952772930783343715450964970556017990167863758706628494001542352729118521866636336689079748901103020549386841513318584807570920899244198064533110005075831007196785912372172259854547395928160025496796751764665541026148084278681686637335399412988492424149656269443331704393085243178825272506355634018959653114464652968347892277583630320010583760214606753454448069016384519204964798187920548287612610808335305188932617350133928953245396564981620251272400938410562661805208286645685886424286888489694130208851029500447440877140298677237760236659286674085421422420805632532649722665684568362428578185534069013747633943581288603356186682344405586089137115693513486027966826938779872514692593126493437287450061534516845390400984336011527803088065704615113049721255014701541165555577047587949870359872888817772573502197404297362932769969153333465701635694780873911516632296698385455018415487399908784298160622882208425976934057530117981962146045865984997290321271483682416478888306991996536708552516902535581286882962054821281435500667783377188812982288882747640430038033972347576919011350749379940635887787466264606250908351151855832612308707769994791724281047082382528009510274903645673159809344542746645476506627622338363025773873993483718090899635249075986279683996391049275459012062760928791033895648472859153640826846390293217354969977880508647415236831658921133181843376438678426288862945793331104197119846320458777352611440865551399308065389377717132605344037640702871846640696819018721960561481036145391289398156780204446912472644760590753290842968415639668601127505652531079415624204715930576608399252321200936158288268865158132861237319345581445026219613071241535802078079890632150721303975926469497732236397265883569821506672247238182962075930609179602559519967279520942818987212985129095071233285613893735707826588778942257161877824873376009573304986665137004216514035810879307604964677117671179412693919951910630612173135339371603149636881132697101090961441471069299492745092822563234682745256471283575536083583711229711429112740336666643103486857292210759736550366402682947427487829268869795310459929902900739150695496742495638303121493743666357340613071510909574752746539120448523950297600240874961385496670591612748268463401808577383169632489675104710130550165830173179876206262328845173506244858353352016027609438626593956595201462331933780295744445461001960771398868266738154738898529764552044135522235885976826794271043696763382257221425317025631813348376407175602410747426283949837996450886829953361690494404880758313997052300436331679517135970759330668665989231168888450593865400202792756549938382482210188477846450704166516170918030012013685407649242866885887072398621303317959421918050968019201630210810911500621915030252573716497810079097024613382620757012333595183430570859924300343126402642047566381456178867473785070177055960921954155788313163885270030968205212489317479150340651986946516838253376250449685097442567514156473538895109188038690600572423669974747040903021527913981808715158444572692645448085296132195318672735133635086403710396401618254633537602701737929319866789208724434774893524378569229417339370319186171834634658716774814954618225265589648471595209475665695810123388575103573162511902231120516420610193449373141994512524551263273207056287823109021171133125709258433707200769848112581615838362339085264803481721184639995593799500553322094788962943256931170716388868559906760691559313505082468994502535256737801277705972290403210572553803752788208079326372536983910445887977614042300757078962214325806608518847752874480870861990606672924291435273160425154827231362564880643710930208574970143374768331646262539537681638443546134014913527729581221909345463079521664998443303811111814324555082992008610771261146867513619020908098323389934471933813790377839591112996353560850482213694465445331753030797478573140768721682197092890446120131057355064247320450359279064892483711451347524807737097843086131206452989885116884675157659885051376743146215191134450344374938879266690898519391764914750358686508974234715742177720413820719095256702548239012673167760772786262464570440954896944265115461695106315585250134610043576154963753594987641554916173487981636581106448528269291357764369936336366007165553309230072592961615454798440476233978017796542443877060233178821078643350272825718126911536541281309908950366325216613597356680592459069622678636715908496549229341003847054822662506576043465339063023603938063429350508458273096271319804563506054977136950520638580515240634503988237908027429615351348266019338423381212412460637045999254528587217086871220168237033130247242277369962908051886969087678465885550509834252822444696891487824793237801515471580760865096732019620390377937667074834504459951105494469187742450936933334797030035161193679934275181951547327517062589181921338194036279937283871400686541097186624159913077303757661764200072277478303058665370644307853006702551678657397600326391286430196612684087452570328927169445323209453290826267033392099323391976063079253600517739186840172581264270487982497490954045226657942998696049901233446955522932497256088258579887954628751443611501522999099907529519193939098271457057513953928251259937702666734362736700745770665826710778590759033382429205670526372021049640877613938076379414506417271807380073669768750705240929304284023797078178186272535943747983828187644568549403199356904079108639365676128784517553743481363164917369261612999531475749699054243836849967065061000433539293968792576839981414450294839262948520851974803447534250169954516908065399926763132943947668512749898238453902072381765806551432977996800587606338364215235027270000785120389286958880763163512730074513355714108371788284365491462527300910697029801595145579308955207991732777195787558390196338893827763130307148349423138688549226836997095464399429711518626188938321984037930500148764962775367972434259006456692491556715255862869971464920123611145111387171210392985842769986796146416316924252759533408210667860478460954334794750337019924331428708601832849551871656398090927883116815502454232725797637210481258429721575265008491980853032777080756850606253142542017161631645110102034247101143423335443708341287437934747296353649065055461575968012501605829644896244658020980110203119793881852191955134741802773070221347374552633017315880495783133692904181322016439915239257979769267967584137292089108546453393348508245855292143749963572174784238379111440012825343598998036690673820623398043260292862154373770763405631142732378078455842086260376369467086204827096663218834396608353158529952316226051915973386828179090287750963706260037513883848335225349301069211472681654145137882364572525482309017954090261296315313618089123373968353395866571666784549210194389908627414414328273291556051542413705353562833883460349859153281809575795380422348243397605690380183045324677232824740199325512745665316090884687979206345654740561023518995362547804576198421674134863189397630707124153342445139731696533440245619872420960261127288980137059221020847421321518571476643865653767455095046013090401113230068187416241062333597116022417971463147483549145091608642618339881176399545619528818168490263126517048961027811798169959262989557355201514205821246297991449498753917876344818934290971638465151783725611006953043180419246921189933305147594061915895754089727069540800059813214311168997670629129650375455608670001472823700062101753363913082453723919231518565676191475947599328335771598076877464594249611446709002245113580171057593164258466739867286511011444420231307186236759011661493577644726450841741289540915650118504958313109004764463038540723668795221385741724692771757083403324799061522834124185197431367194535310049549605591649136295530289224180438405523841404564773527220332814275267557090368100465553283903007752451625220774852227843934707378947213622188017305289624227020123146308514246197342329799042911881287384626193246328311795504654707227533100464874896415841694640587031894802450307568110712113122174851874793140595689020824322423157312514534812029851804734910932827716034219845712212422830353710799348728814784333841683671019141822253428111710235700967100921480827909577440440360244965175940878505915694012698283116628786181596471007075167938079051143311272307721303645381436341377628254743411688468526861218058502367029639255985320462758423741462499274238677649559788093094745586032375327684933902415888573755108498281712158177384734445644714144899953393205604920879731971613604267526519429273918886439223386011996616055328584851307870287745637304031562282255472662869160362839664274733367485366226404543834284334646206723260480287872869234790366743474007109345769970853429334559277970872141050007804189615263379529148026661621667777014065666847769885642497218917062180389647429883126916079580396542048042692987588453224179326379549269251945305263223472130847797917016956781018566896090173870909898774141485248413629251064735430552089959694428906713348206289248532782096393192466739167259888516257828268721233601306060819120862308999857627831210181359175829646244719993089178049833325890245777519193857378421100465539278238228138911748667261924608497719167140724480376236141619566311200349821848130757453121917243333683813644059481054094895946680964958139482418750349218324169862444179121602530440521712798193122697651742466879549004752628571101634756589652917686330770428807621474945758977530605584239868262980000798136165132997646275040520985255647592516725410276246921827247469894938509611549749419518976543401865361414605300813344094474776609073153184517140630971738480204369670188075875708162177704541356720763996086273465784205029236423770613524800326638492682711423728565210141484321457582351024582293538008759085223922969474321490947016591732213411314625861282148796661354321000628399377827405428971276412177952499121747589384372983665521719062372961182580130683585909767579844177668650914005443419678592215949070821852580965226543316569856849611158048301529895981396429211824000625716672179542097567422994544779603910336905009133153472332098873714952686865297153581432458420896141420118988746418421465997695031182428074753828672017439990346079035386909625937649827008719364585448588386447367154596234163578043963450998707484254162238586594978016576816940751686337094875956752949231876204003568787452194527408227460752819080810944817317498545066035522851396497726646964533589895874832410230557483584804031209438068058978509555277231868378620349766002576834180217209773382071391550444338837611422288374835145938028788504181978748965775042257289376383523076836830931275826104595035948282732534463009344732146359378167218090478248654819841158106938657215987153847989621130357923127996208425333864142492156722320723849252708016124407676132079583316148203522191469591923015191214982006368331649498317307659104036033234917839922551410342205637299449259039989112735505899125056339241553049081486802300966180281718080343874352761652616376109719174089616179059727348526083026746606044414377151034663702540322771403530036048507084960268597307583273878695059274886224247008352200336266849143502552864197719895633060689152105796109805970417642781576103491521925933368811811042764722692714864325748344440221535698905263498096178324842986144047705996039258937771984418547794302530273250671808834798627622182257994671328841201884646377012158387264483489055045789574643454104711946055707734706279324560986481415554238566217128157224872886616919409593252709903375542750754802281999766376518308175388076880188158062889735183916870681886082356776110134385899391321539174398347920943281379524325032788348775060545174830910265131198101111810539717885616450964839115618521740598401593980672035011615834992520430378723187830315542569162283944363801377929775214010328062325213582593195605510333039763551094137862833517578561436704875795960982570855955088130761787273174986969796867180373119380373636078810576677297177783636022334076302462148822330578295825717208177683136184507489523718488223635643256800443837334084841756641854511896983625776994001592972306913499627856621389634922185664730018905761232865982768384048784104749009306661068993986647435153369706772025722945095291530321261612040862089063150165592386607802733949276376816903480860167865063111061152909970448923282997849313106606230345830611287064543856812529013055407794822145295131967963730008107138998238795580514109441487852640489603444960798515485428567789925585977234665737682496149503376142872585058731501694256625637540635260238880952083842313569555909370790339684470254140047717426617860451835043186011682442610107129497838385861533222101861794883946669596331862870098519843995030180919474796835703772279187320968468828359728807203909629532015150343000840490691533461458856858673877783831304952717932664931370020271378719310054276111916353352992493702100100137637125127176215697745579884959133880336651008121628418856583320665074750576314145834960992774423177087018062673458049939048572895699989541558885164748265065498325001899368225808784525379407751585702080448001247815543015508962482952921434879939595801801498082759507335300683604735595846085567332414412845049188525049903500177375394138489797080708095691688590137972680711310297165162584747395008045747554915065808785153769471927910975737177020899125758542215767416631478329160059973637807259924498108226777793800750949133265249437671208455544840595061291650866741398752952270222231130315273469167094523466113787435972274441889665004875964725448081403069815912173420516482839905821092471930345676830829544042298041799477907055761025657094618721846038042989792921494901754709040434864907680544179578794316582230229275216629101943061501637286025933082163805091728601775113121390441143209344617070678111426913642442087789615604210924525609946745422747665309860395087588594098932652063045938724066825638494431611414959225570777899769765840850955705662002599591355238167761548108143932146474168443415680266506986775844162985408746179497751884090940830414319184279289055800678313245213744515131736350045523202814501665093743195726601037694620551328055952198012078486037420646069347280006422668943191515343160695182750513647207675025615444385480406940193752255900066276472091155919710270240556635616071953023871463410497014203981995347510668557762313812881953801875768212135967692896789921735068352951306129045351758040986101887248088071337671807037866124380465948589930636138625046943656004471040187866770319820011551470727878356873451312479219552014858308787010675817562294493112964038780819107469467767781829861011231354736635490611375616121742898749251986746657726816428338132405032256222032015287643182363589871226587135605411163326251565765673717091232247734841760344959223697687742000500713312126134559958964549983780556574244956988752979708279806969626519955992955524676596178993486070461278716289232088544742874377187897605829163378952362882520994634621473250412260132499409336367307409766092927426566838499111705503057333886716500819638196181224528796046218351515382788210217843052850115969568436055880566544117909885804622573840887026306578418882771012599550004185600262319989783676442532148905835362926071575060859290382739058190581417566844326118118622039935284868176885651880286909464994712372063216519007617955669051254215175344989761369026333156519119649987997081939202736473193236344268880837115077553690283360783873038827536244582054707414313972179827387744320691677228767816269222188193761865507476297491860837202884192486943573505335475998789859907924403572391086023588432339415539821562181574144894115376581473213866505743170403061565953899620313467299995231087694840445675191603159520564196483301727410798631658199074187693731652420648285499323866641742055497438985975674190658683947053362918342548186008279503945943760698515960110617370202466080031471175787725829324044295239387804761401481342435952113110557427738599062257502920453477604410270252601059831653283417711852522122680614428974859814765607861718697133763828134069704641709585193165119393297189606963956447979147682688256912067353880149186494214804373626330758652399451423389419203092656245800673642679931481915712692262158313260822641225228198650612168749708203359115735256495432224699373031310037410076290701111536436244278622651954724859109574005254563292522214502687211428133748553013373459531364095223415879081079824224050774724553752815153455992746112041612800091287456060491038661015348461075332172996719038407537169375510656735838344780716482752903829212984800380136913753205079066947623132061643876851232198298778631482561627998168949469272635261709435535419314396272011533433061829594460304235049825808171182919587106249567476387440827367777463759194625398413428839120966909836716368679389830194733112400282581526029386388495285279722512656847137898211455564255797533293955994390597850949719674194544217801834100347469270269530708668828688091312494101463759233177057200858960490136222331110094237140735866860438459863915774542217264304218808225082045572171887273746079229805536598515650217501242887793054399040025830015718843658741973688659349442605678013926895710876047857863539949828522222188545198619562165675234752668413064915067965971859694614634151843628858636390943491946602828873747055296242019957236008731176202373790055367845001196790173106240869430912381985371408080944619171799600319023704907211710390199500269786172671520433591215036773739111124794287982532169390040916479240992907812668683828186786239891012670221039425107551136322815627577497154768476067041204076880010071281518466575157890101160168731221932607321619189662364422848825986959165861223691772101224616027737209091193691889645967340042417664840359338652744234940610897665049927738737938756994887147979628918357801612609542231542510611668835807887532159010391432475607970495164059627692681231867835084634275981457869221130337815524827634429590614300191578833282929567714639484566620631870617229661828889137030555321470375320984270706554297943663499013532863300310524875816932272399657900997273344859585058644901581307655117919024094046762921005623321170167009973132306601440230538000375645672869544456477773726076655550053034544278324290136669408106556253209835865018710991725423572119051982183628363088709609760217741974718463022196753491880535635509012134278561218418256653271365985563676783946838728191835502863523837387898272997254864461685651347516488136501743052051790302477012937132843922555778088850390001363182756713921204244186427044754462511935786601279451158077535567596341176896473238477775608808084188367316555699010136881182457748587026156964758866918910107382555484329254187400438804940265518859987313027829592728748054069687016972066475630994520119870779348543531076903025569374474302542562147899825709884203116997601762667111737213588779025857063267092178753724629660600769654794010180257102967099514927189730011508610305862062484586878524863144373451643660578047074440450585847739322640321354133688740769531863138888901916448238843144805446229357099908007831002735872120005199610829589647522460639132706178264177275945600869835057399792850007574519239465935345173288583283749754782418474871377897781575980369531525399150365412370598149681524694480848294784150384068437154323253086961393443953569648129572467721902997681806147658868820341414963853764686329060986542681317424080758027227305132525876779464903775729529620464093836076902805928724949391256115341374506588534174973738225594136142944851682926554244065574246510063797840383383523548504401350975555602916866996303780145588464295951688772494963278794500458890417012613511295439566822256477641157357953403106931744352704790339922652360385164159569266459304757632094071411706241005847730256737196824222086329458923173503452809430944501133192835802026087297961547393706464199819156981762913352085733946516353882275376659675297219354470076529842220166544954169683947044180078168543259882856415373896294213615352245743316953298413166410774590733811440216996027325030150093426258065128480132900249882693914226751396388524150977835223955707596113625433192248890599450658418055322413215385934594449940201436650131797132123167931897685667510005955598043535675515659674340917180017087910115077509845333122409143983174999731406301191084427497514369800388540846671207018334073963980586913258670941461872479787226854579307628099724038297792087472789584140565012859751207161213116539829533950898739881391848854615202745958669345321750106617901933999862935089101664112827292892699732373634343901716161089438221108218863813872602939203653433082025668421066951122393864810508076828950147112036322541955018966668212344117815335871080188564803972162085368576837937218865144277770270412292217479015775546694116851912279837197410477653773102689488991056148136588474252446892297370756668935725741400026160645596421862733920608550539566172895906334673754145015137309214191839192661691422353807169614902582829723066680296693433858184867537893850082976656063601593337955215631188307707372309023587215554555338667867103383097049254060444844503260903641260463704105739944423540189397316978963344578040009442176213369457586195384495338729594837484745619974457302638225973924689855795883328950493821692791159265371746742966540785848747509862916490215767445074282411967979940242489244658589487886754080441316767332678188146803250770066478927574150897052943621077838898842543096267319513985617917198974740291393223313235344777888063815650915719873552206142479466544939672975932008248769386774372574882568482547595279716713470051628972191349000366927669050724999190631056316166086027302091517873747458211201976085787290311253126371350476273306869940927090272716239786679230102210680488274433194160031023168642632136051476744522369680506103300007581062576519783389134271273923626272595493471179871340750634603242742268695917703383273405094708282250790923365550774313514440735690826969436547338962860826536527549559920928144578662872975027545225067416421897875231632707157602290810384659913627415402785154207121218171627528368422104962631254213602488426659549785323942178350505235147163285837391600307696682745438584917632235710488080896369809627946200524720480755499576160898999526555034911447466865045661075275393406324950787112907685257487465478080426559789245137298216128532043651045857740802797345912670981848658407968445200545452599374558345003615990908927267365061957678595436334815618159207969150007665363096923466509055505495333319281389185992618492864062689697298573217761055500841265698203785759884675038329535419697368966194012162484581728120092732578079606676276246287756412764125962280956883586198808844854820827873271379317615420945324794269540651347209022527264487436712765883836809841872007631532336278863699278902031217621905554708094775781048457942069735031050451506734148120197476744530045125840702050313770033084472183387111943386501646328400595888079749209254867210757251029651549220051974070702659779906947035261076265866077546081089982260624684968913393655915244499245923344118117044847483635062205462504926690961459148453845910882163383715774336770142968162384337970915753594326035265840584216464713899667226047677553497509627096009946023153191080647215390733515820440502767928920135196985316915551984385783065974328433539134715737200022765562890467990335226189082689213963758379433447751963473583192518742532194508267277743568092838998242882987142038223600372923848083873849824392615632913673167602741517281217204362363941551516353717307043962832870013898063840045291054776812243502271915013462152040942478927840014037249959319520695171316402656184798074243735917495777384573750893740407710518044502301391752190799475980495355274355311667795935415147803790934882260510290650228794137221333016321878321303826007010898602528864268946576465948528973878122123267545015968506617512784168919670780278691308591414734676374895933967546443931069397018131679440577404711832026532022687486145359871195658961643790277757612620300868901560818676444671112356304105768418618620809450046087446668171819935510031142649737428496114735736065392011849669858957188050387585001859890910539465371214457244809726233176313058683170840524098625229817633495320572647791959913900184987710370774639244606972085474948806097234656152025509391794456630433816727313810363670724193989201531552840331028715670140331488607576329563756993043384696297450258333576982603478094563029556608413778561340519756777033801060702875001525861021240368658424507259401028556368584296138733998190146502081026581980799715188584305059065250518969648885362277312766339127713529440905098292738451515939862877812707651919404475658374842817915008820460269313508349370396732617078451924657653961596238832712384187499969451696766567101161345229302996073735371874050101202357110289865427328008411655438222570266781939954339461920342832400718018854297180544493141205145293969826688959466588832888578407787472754930031721954208121993790071990148847694835168965699587151007798407374323822968177738863134121442581795599402697615990485695427131591032770535242244608824482983615938404620761592273481434930730283274252191442268520243989774422973983869896807505607601428537369780541369921963898102607391854475889184539184650364683527488944567167175853895119854544704728985038116492468628104056640960568674664024762842314935508054705080406588579323429126176896534238918906331370108600969996963510350655908366500434158664755144032331957072333933171590331843030233720241163873712614518403395062516195602959699916766188504396505761211504946417971940645098007073845897581160557092501076082134388043585951818621456142018967197312540123841992886675567899585927345530475849523021738503860991031864339198326790192112891962325401481852074535071674187816485188534803907659768684126175162304535611469851963067735197996630722273053384820090801763875930999093344307057862642981457681003683231742535193076042709302428091444900689428449663271302475167509679588048535748392162833814934375922265471165458924971138904043367126085755055383604869897985586640671977220136446911358386873795271267459519292709879562309753310504197005543445329293189912303301708644254640676823237661265231750661525112172460024669094883812661277461273712387192611677413755034508278393119190129502457292399884484870212813704972664222801409162749788822848510094517767556901323958820664814407066734147597643611072198440121534141787563877759291491037820610508327472412840544438043113174991398230833197416138104109953568550972179544831248160481804563487265664318421770256307678946751224445973008258068149558174413212285628663264791937470062804106155884467551825331618395097117867627536852456654424483539947518177564454475251972756350960454462264966355791887043753684998243406414296582564220982239414041438295565945622480084066149180242597703662381972532158464627454222839773887265220393636202119507122564616373374315997535142638834019967076895235306433526878256661127517243506023518721670128266449709663520330442352289221940038775205202026256862113206014536080234672076442964982095673127709316352326275665428397459953215018722147527684529672308158550907775154074825176534468368733393732072937471811612855052727430210633334651620727517709764701446323904099368046394690728035611558792995434395297458334656488687310370793339224127682272234118753653015016295695901682725951460025498747958999262696477977960161494811601581011987595843061160230235460076391731294836222756814093094741717845547772399856991076266577348621971313767796271498639940525189009790271435915787905544583028256859277537434106629187589327679902253990345621629292257802983241504626765930438970488485799805748298550005306631625281097450731676428473955767756881596834664839160228645337953822250352459969916532767050416820746413041240896049758549637312201101633409280844938721207870049175490852564726135201248285154315493773773925986776586716915614529084071815198261671310183742577805008365394518524657302737500579107083019068999826259076925834550619823418064578601715024220769723674842404349398683860626064112602345402190885555310750614314427980390374142424246517665766235988482333753615965622125984211478367148338483019787718929066647943914764537257232662284785387049548902577350650750199958873459537434055424904813597380465750921065046594032735600058987813494853227218983250090244474012381969002461884486582290937345798285899961503269257432691427966054132551708335481207244908281803803384881164627831159966806101652860547231861166425038458264141792314117545789653686784867777684990814058763431751362134827587333656404469517996927119295536763217963688160080747489040907958751257208363885356054775147884765725280797895043258552874731935253532814486844334258808709990789827804877810213281802785588203091566388107710277336216495528802640869972724607490610160870966927620789807779698891353965051142606581874223300846342687423583179304182832687802534952656158176337931973276229631931172961424145407140729230164696693106962206406176764676209911531046443026025328621906701315590633658604401449465572916743246866526087838456858507383770713342413631659241558776404230845023589661636077269821916507174902937466917081004356832320468666878992628451327252174736212338821029983481651541226250340479579047746467546294962664928007644472843966840696238486404283032976833749033763279219177223530372404115678227823984383212802296736071354206165397087930973411623289183083794898480080886235818141891564465789590292441614708750649372939549534260210379982137684974999965871843701950578671900856630244473574113489649444878055985077385393568370098821631718707826329448553647234922808799213480691661219611109971484560053390404149799354256849886841925788746504720088347223374179664636202833156733138890025864333988017153050157089232727016551481680931963511998131637234769862161277688348503670704213917909039636921337862357503752764057401929024991461050343400743941273203608909194629890773553025631002214878006906950501115053585641525713806339258940617641075100688381734268035628144412560633790274729897221107606767062721409385611702435803527773298237426616531820265200027713989533681600652244692497448802948652634984830849130597323564565543168408100576358308493423568790586870618907395021185985980378081235389585761857141529035183683844864730824312311656422323012578275583759163061490836910639740239480200344016439630811105841586022043198842739170550704893596272482688144771939624826071367553793668627379797898099278158140555324509853130846610977887485256439210711208963698869840699671350984033615917300302462150944665739182004191765522572951854741037430104029003866885748823389075663502643898181498483294988402413256879382904598861403792445206623925182584202099255713753971656265207154103068518321635256181179999658735151826556379251754645610794501368692061345641563786997894494381470047959163822896264116994321092641116631283378343780653968302163505427551822904555730398292094911202565547856568199796259155263141974799628923683539212240671941577593825173245295519441279774442555337376778753377455402741374751096675711332135363289216672829395413870280905700715646278240967033657355050366070397016888135014643472794877626870720780312328592147825572238732938817072937914291003547911367518004100922150886569971333623159178497921507863577028891566354218778515269466195950632217172362795980126065163879415608262738218128716801247871279595022590193215638654094191303098655843702904688029902683206813251651254845470969646867458105539128117616323138200612084689164340135285921544774306971109474464896519739845675875597434214528228379054282036536889073797087503907590524660347195033630704096152118820792140989279217161276158026601069595147461412935828868807659646895625177495363555609717051061318513302307302707474933203439411550041484206851138009728490223041114868999328718276691440101725751355569665197675339114830536449319357720932698888835144482311776318136764024330600780560120812746003068632361939204131696752118541077718576969326374507512838083016110360965352875167464890605733951154906228823779256106264803396765014416044365420082949530338386476123615713843309820862284775681477224132313256502111471407079171287808028967474303558926982780989025152164349652331413767361526155978574155139141665152509928072587040948788116031867697767091055649737895942436903918888273034026572437183305759534936281650809629375667474757198489530452953802384671312826501478751706793571277359714225940226580429291210995069779522234530721644927457918849934448259172318367258391218038255482467180846059548687857023868740777608451912531760998054624732026036183941469219669731264200360838754376333083426417858975780916107433689685341199500177869182820873908052533620404885716258943292041855271254914421122926454603413722816978441085053892022015390037998051148144690295016889140923032878573770009544537986049017373744080634407172342722809894356305931208680596104493456412834272616525108529393969525503267294152074826033356314658032146926357055604052613671981767470270954956193381432918595848887114684781727588807894527740599833730406856410106909590397809548975686530912407944523347953025612613443486227035849861015004501886704939098304351871139849031709854864955344207364601497861691803913197806311118548311566465655207491336720779873623636622624709660681385724754305665562205202608531852860641187488033223787697116925453570254242381363678881981130779808694824489464176094205091572288920131936206852553223584131174996518234829547166080281993492884771917805301868749131608088988458393460697215080602483548301188789058762124884374473203445552099960748353529408823594808043460966657412117783960962670496774889636098332224133924788714237717130684051501186721666183242211309051885352214954313429386650622411590210711203766197844309642475713862900307664322538741995736272652700474466855594690343821367909759108665906211138371469441318169145627875555789375920793930174412378180774645562141015711275418282628838582207986707837377954550117130786211281501503975148504305830955448986513789619686719065316255986905256288659952548157566658872103037380828970892941803180049993702506897685697342538609792011310369220556192112168493657281201952277733873277663894790939904657241444976870636575244903467776114934260046812693652344092008521382590901524285242917924163465219027952909729300236216773631525712222460135343733923738604973687620712035918779917373907039479084628918794686456788828698763065785668257279820787498172631645411107948407317524383432518705353574057115622318696486278457656045810980804154785909604113403004397124502628770110419136926128041921725067060157447118878961066686447660836408740318163510386755170519403530750990174190450001845649059075953218159344627355279443987999125370841713235812537928257607071300316010975809128581412750513246833715077129964846265307988918944243735856716055305437738376542008282831173600861345327557026136144086972441773843701838157464911497153193505000042460768364194238332681433415977893250842908262492190862365275691764804207720762559270017241986148695419034258769685478605805557416714037730284546099320943426382121792802412983457248356106193271260356612821760394618875370864929551146448953609609650162495005526741443112984656879569683543369152949728921021409671888594123985134145054050060103687932797421904374095340642490458425564858671481483360241952776084702784744858728495508777977033695016222170615409148549174085732660151828836665169539002779352049642850238086534302334734314265352274139466541323565333305635850352639444385334994406786247994835701499173593188757221768124367078063037617129261972052464598744388431993354201451048730883942078419279930563400607372002240417121083945762954229072072619147697096200662503443449140155024466607797013202801724673348969981034388582721413721159830280372019459174359225989958539704137883425500045141793415692728795966360459855687349780617132402132071074931416058281518976407546634912298273400038976682527081161292669187079372121870024479999279962852643574477988634850976802759444135638993518760228079332271681820084087300757636030294476418979273941609064865090821189786402311312475979118216793516601108416659510725035113920194462951443435370968270632272720841525085935587412521202614721194739115261868200338556680185218644885311388589029507654800666012221579120565364986262576671773144834211889997333537585576706869718914154696685660515668935055925930965124615797103162953833158314514172849147573054786238355819930255284162296492421964985812387523812724351872838629805873768513744313453047191291670902868621178158372928174101063513111158600385648104360231562104707433115833476886310371823638798818597680119779638018093392067132177545919114377946127405284706253216309272226411968549375233025075948448794142446164972398827474419082068844539796430475664950540782131617732563332436387701738732720126785662900901712765982420999717191883125305661669226939867475006787470223248715140261032972058024994162032345517059667787153391755244223844956331782632993001935106418711548043692847921577315979995293550408190661761488927076997715862575504567267955962113910676915614271591323745016041815437658349309988673144794699758578149455315633956921976096098393643710995379083405568943265416248210891191771828720775392663867841702549995196809222894729430863292636676110153124093967275061619206635163323806113906896801423277168163900684368587406315217666561354011784303171361435672371094303499687617756572301624598278773368837770705563365347841835706420538234954874481100604208092849231736140197525776552262726907131809563289974172242853603894914916775237207251556374877762794292719729173429543317918395994645674713654909782771671563373987479855566327238640848497857850499101991482123813356446691862174998388361177555271148732359931024839588120718525348685273370637341001557893840024093130686946899911714732240589046953067702870352915943895396653659788813766271954868187232803436652894326314158284940069059079327838357354886024611900571677427996954616658924825954403671712687118849552458558605727631146427485662005217542091565477209895424371801491373614852383689139598631144872953608188915289850996882605076408678766328644533719517151511077661467683649855217174654762939970306105691876726857491822261737304467263975659028859068876491233362898592962275733170530508389375658959470176992292069837682822196512314011938481194133951914749392000145378023801879912014564850265495634461902377974629696384520836655234348974288855092752680089210260534128347574717402088303191138514911109773902802427706493312280758391838055093215877147412210947749953769908821278264931141120308129545768915460766992191348190225509905658989187478432034496783682404429369136215905223847499433718657393915234476698698036306974666373688148812864104835406960590932878735795513497871591250130115122521565430973141592471189872809959422689973729868192016671402567271615552358843597126353287011517868143355244234255395567267316318406591114815848350931627831098160091588237902308970276269168573327934868587423726398280443787345919937166875773009624540183574825333723615092077812451311511094861078384510675920749981405191355216867663390232762861060216430036228791119435241785282988731964063572785723505402677097758222466257198114548472464945248510917989586741369395957306313458291730399848546419306542024274182807229265548998500597150790183887471326764133671547035734521551128979801301589002339984289683891760986404832463816197057656441299372611200059000738636427920287538669093335517243045326089522051745186618420827096883395766759245062256355447785280532688786459841480565347305380167361710438622723191028956065811734819951037871819707415531705844991586242600521717236689534780169852085828717671543194982537129981877073690398088485742703190053205525450251788457125957273715240730698175827668650219389403516696144944407122869037249223649753626373564569274781172282613801842411236240537521309906484389256573200124152238868362891009150270091538703924436064371350928436739924059910317445304813792938334387943543300876897128120231877792977876167660613546082587857471651832495685091468311099039761511630051156130544993973650359039241314015693125433271915351520147013265576424278596596400219824054573426204224596035793694793067318359043998148710241612140025109876721361722173356354166122656894968930649567818059684175407525099162175160343716131311713817073924586113905084580360973566591395773759658181427468920789362872167944773119389652023721042236314971110389115734907160448676108244773824407944756470777936968007029342406096673792246801909718941669300615951398936596825635170262702084429641465217470963097497660027687601852266318600276916515659361557832248944265127136525294779278700155123744919155396508046258518309516043599281923638021870255541960187896082171623722710310587174136262782122126838073679388250308547705184127723878217413098387522923027742471170528730943083225205886624815783207916926373304623375805644456071206105682836110040836476014338348469931650129255267289735712943447764737811147564926421527900510615837393542063213689419788033527050221314179682962383349026600277768016945768320375881401093838623304556357829636084521559195277711804902835151352050415067793848713578804428792000441163454044115709570243525382881001591837368380265893601821637264836408168267486541859722369556673602067356514541369453352225155147891271528303086125421839897594902585175334984723920019673158156757194849620855007390244404210056408296190377652799537817076784903336053756662289657724132635472259646728631970456325654803001103670576661404391048516808615394078806917603668839825227287892613308030067470701401108409880412197411132267411663585821583621506158894852996327595113443556793137017629355495339100389344328272116020691992244058154609784873761710069248293010995069590188042994692034566492062661328240715602319461638631610740684475293620136927638635412920676193417915135158664922627981117523656891237969401803798397064605978436939852269656327128775564877753511382138773490649476111602790122371527005578429705177841851025050834528189891011894962417994667497146036346743952466373781537355360814808387578245914023280696087251240772619403251192885925685136719053583705494508522693928829099708565298530723755231839418098679659607528567989126899524531670194770511056090241878802805316238145781281900222676050273131996910310731564568034278434730842280891329700429370299866627486634775583145387840613329337350991435192226985159623890138604784139815333445891054476845761729967650919766812264756298462794975385839775109102081708338226753003928723925042513749238429777797692379670609016067682978940742051101078889634279996762116086128242509205426142946198131161669579706674458832962799269995781160810832389946677038266370518690472082601084867645771089973347189261656868092465200112786705180341281420887410026702668834824280876154369967006136370539093411608787200061545797218239315468786911707121155535288148283848526546403112520625091164442449259680559229136697827174091404936177885143537257083134759540515709435370359225082202309806751828253116311431820277579336413168829368001433972992850810555780732723184371609603378677205925370858255581034525499715430596202665411028745517922557885890520831946275967190104175107865999889409773593865892360262630009283292985998716405873871509549177789921638966913983796770326046350681635177297090720451071367997372817532706771308130734922203243180831770205139495680446502248623735247988067344005820815571221871601514952838328716839463699164843725142684352794145762111081454690760107488246144306455527520841131693967037959718208755773315251983890200679429279565902536347743941590197653567838256879017177005527158956504727294813974119387240216224924058409442335404389321573272024264561449206672619078060781301580859529524799985516121819859365236119976764264613089189585068180038471239431796220796918359286563461272594195749049926384866170550518018038215640847851411497756010521402890309502419300612905769355569365275677361608855860925784823420479933770750303490400699642023128928175442494924496009813635361484411510551834893672173983092491239915352255066666778194288143134535633774543679171115863858577292990567139788137831680755758512321712683655196633047819547927753866221921854452602370768314370051240847711576529236781559533454306605019667277807255489908432579230709148386725173747494489722495717519538069100663917968531538514670428928166979839672130883133521027071549377826885908489854483578852423220067427410264149588485436700131963508833979267502443561500530469297588527689238584257205318059487465230753821588808206931351595877391295598676764528528430961046103217126234918986100267493263299140349783471094711654828349819055484140037710936270020131897380909124400718624432235217845436994821548623367452250170081331123407821236481522569610816132126873805755623003894436956613120420155875463176095794523307449240502955897736965301775112350109458963273285524375921298226298811102062560619064733351674113591753937806469277753858778492626066514663839296603839427901236694317819215365640668892339897575738048747058770200895462033323642392649768885555830243817681931078116069720565934841692364364323975739219444632143046894021093723357650143996393450529413449357732118486480581265008298243066915210728713257315662605960481544689027449650748907714835900876037878583203749059132121040826881271140373113026249329092975417800447103727818768904082198956287393124064965412179161914030055182075586473992205242744289722393695372736486768568044112029677429810068226991894354604419716147918536415930625446500401746167525470350252250377857551709573814530814811166058675926984558633572402481043999940135921432374153362531079858848243693540611836646752419473865323776397346148857682660021710276974186947256188973801169467503911662781463092219008972168274298126354962320736544634872890078300038181193262033042163676021447342754369110337852572310392745983666594067106780200207762369438879886448844968549434349612528764780344243281403694942135954820753077839402554860193730406850565559093808986450880931250038512492036512971047451097001088761208466100593228682066395073996160126735706745291805830507514510316294949668862890273703085438229459386678324383835522038500794301015908264954735582204587857371838994364106300330583302406816650600128338272071118489265130716275828815307168735203802098409723117906783545379841144975788348957713037735852467805242508470871149102262486385365337464492957622162869087348709053127638282290593236316961761514533258886566635842631440143563011940511260803788228395706646520415256340653803641364147979608520741496089934493651911852612782241462938764131160667314049972274571998503666561780404690050061026298657058589382490605684206677969325126470209399788086472459396486409128587041238524652159681539129318839883503196150805668811272738920874436597133163764830360616534491382530411052216927896790802038530028448477209640080032748434495265993645357536085399596923392722778948640639046385147114121414193318789007778432973522972707682531182496436209024439417239475031128126118411214174151319955986786151853772019121803732506389923864788331692414986044449656735700226054725491506038944349691864291705616142359804312445664963369902498831097623924730321549798980248222718441143118115983034783578499265998157661506230302889454552967185685415827954749842125114448240658729679026074614520427514714084482536464992301443501040595736748497986189597645527544750261407119867413594755226709693386891837339630265781527408175167560906531319210419298565768121285865915226117548918808805682855871137283447980422074102266288300361902035152275288339614843622500626790847883017205639059153499045104157563449808755019912592920106595873305246574616707628957574709668567760103055018346315775484354616990930455394440660169237890727493080385971114718720602282516184290760214253126081585131322243703360172728407624356955148755063256740051501688643775959682732294220216957859977163536857730298671023977071608447840391240249713618051047254975964825404802369425619784896239826581713340626054938473195238752125629051837814646985646483212995012775768305776968831410330971068840435255896782454076095678638736606216091858934515702718603471189724992994462270280505735592396253404536828713503914242870331505439556356241377832237928744436782900575891849102970232051113784989123592550331404716479310702652243217704271115342235511218133079418383295950263793009587655343730325057563670497972268272660244364061460581978193484130055596258951612622251476661833649194538124421009971343666346739797708572641559267609470571251835084627167260399963804125948111379093564156737396186484204579322463803302672848674742396644498161645274109184459571584390554912408050151938047570455158198809484380097345731857099029920282615380494835225910582037358463082868435327914882867693278632036993521237932381759207891576155318522558872145901020091049216997224739958768751173938863310427510880998155534476030369295114898669394903481855936879201983173808653337253445601859233710366809971210058821523003362338419233842829940212064116771228367697198771353279817112012954898896799034178559461792877850767197109098777987737986089144425851133949393605520387885329124165550430852247229012267706938913504680257886814890580513665165370521862086064274626017417210586830813681766378336680464801101122111839255998756973744811958869592372624970641875601402503284073099318126422856303181279516651593585816044311906255578459685328405115265818830549771671792468776132970661143958046747425972243135165094194855834042790195789289736709875623522853756739110438212220359275593062450291924143345108885385229538963306295009103970591703304081088893114924402013381713863585988930376288928167377498921921517121488837523543927253888455463220806383888582475824014592447657071463524489693383632654549824134199745190166493295594934993614926285669292211335304068582580411539766307446291540943389699281258117608462362874657463211344920583003227388540427170403406178712485474673203520972053417592381852111933206163267397306107172837559921203612930819951955416392507033703564151075817390811931779983410071666390512525876441190342602501121160977320045627309769146584130682432797369117665104571662395612883531505821561171911795880642358068677826107131510541148259844973851516972961013072382242599564997794626308928117027328708003217422298911551519195359129950615174037841804072300362876612332138202989006383118400839124911144579890942548700593524108982619732236329657636487561974318654855992879894582107574711637665881961543780050060272203162716602909589825772290566401809515774881913270402050193501591202330258735879541674097743427680778130937794196444783027282086523604890403457617532600206970096550325517289691481064558113597056607557452148259320817034307373620023616451865814353562476860221584839869969967177012631562256251781309726681132063187483083182960726377816202818379437668357315400261173613161574102771895627259961472786973618840893574269633316412496129735487734570672861533548180192361278636220144287221391999573245478184537717066558619914338806340198711217836311734876732899282944530506169610839729752585004997285054670258261498452348147732862565333209697590564476705281603334594236928653902666997650619701689803005030375637040271971685892214895073786593027367652031913588013017722227671803683102922412247506468434349991460877006550338508784970871969021842442057474577841693372544768476628201390221306857266646883854324352098532149398432888770295035734142432301846158155450446439718269048580403394621204516936434846196710736784926370852529457720747585778943858697573020341202607606242383402334940714849673974621475005458264945791093447253792043903419179495923579591632402339775949628620010908534871260903064320275503427017095491447222887282446217829751316541550430769604405680770914039903457501208858551576551536342076215965274406048322950755678680195662530201095976103884799707470009426901350294859749152355892316064152587120453130564379002600748855324386626938902957287294040600616276575656032095612425901243484862025649234229638629965958418893103899637410741849764507564073027722994732094276807252353675973974176159101542407733070608043234313364832291081362533821934380737050596059363107845096586201121632021709266103550851816246121594253576476715634485241473504307953813649113879265398017156034326686613117115072872074369853030544123584367076303758482744639558442782730173211366754233767355165963706260970748007082995229401839265841820189402891170512735985867327182433699813406079909382560461291001718971544266978770027806506193222289305411675603901454789717757550825461795749146213334265231605014308301702342151219096685531994553907887997088164380757900655214853734195610867216834623300539902142420839361302856793106933235299834989198871581366442712748987354769020145258464799528905028482890734074335543734431086979890344051161137618573506286277996787703658638392642454951431225444373211436973571918383525078183996185675427372145332016362625154470706897329349639732867264629144810810780856402656216343069917500051922037034502118745511685177750714354454751925652222346694741896327041817530992686312264846374700174792449341178117632382520285350404379977169466453747616756295890777411136900405190435079969917386888614075944794158421627096992244985071221911628394762576752582200687205416700229907790927732031988021509926091350500051919393958313923605963681354690527129333675900442560698634429605500186689782477205484958559370614428127717080408272601540150220739349952052708130780966737961239375319605286792376204263164557331695472025868121398558008517845204621226594304799744549955164797024321171843501976369765610961891389319142785106162988918518223021008161675137660753489756545274214715122769280651025930972971818711000276156806050059289053752089500341171291094229879461797374585546432344986145043431502641357353841774082249470607163024993140218102450601061936909314519781680648710213115812483818710821703921019641762870595938568069895763708020933642230252400840174383293127789740173666661554493812300890715015338978376074430752274289877361718638545477834931933650303872663223455057240393686479233200564107352086525889844332626028199180549031779460980610501812092376035294409574054573513103423432592069972022487379792453208096037963803915094601171302087903237426534747593094866072079190226240478016150232244066059715350655398600036019180183455546619020924749438306764883273389731850590786380331303490990910380512681692309821731556516414265689601836182542942112467264882832602912706796161079137006951082302925875454028028043865212554261135773836346132622670072072673168699857505570878770946277775311745209050669977243875691661309303091078151271364873464562585995127578470533354477652597223866096113575828877187525201957553850886117213435149425471296978617131229880171358270077831754119400547742193034317660789525297263623770014789552274324305284483405869366878005770509797612536555657152349625432358235124374903241663568293253961720365290088730032526202859115048894971429697982279378326026276764041478232661296046532840787379497678764518091519409283126035384929525157562593112821596572143928981324720602323610599039069306178364345092137232300212905617708325128863907634623884470403297340488232734982146707043878770975965493284837921931091321614979393345195660841895147320553126596787106646955353831347134781659924127480825384596414725190119824891625255059559316296354196887130555908879666615660237954746087970108142787486942680941333794536533896954128680049632296577778138882392386089485493702863491256176986189119462445649170256702640680794644858144553851314640422418510457141962886081689330977017412487491464171470254336675364290016129492891279557130973603373754753895947302560329456915595180834784677911621589030832663864733280870707346690294469883396342764846748632649500873048212098369770257240955021927149709807177580832902384013516778047772591144963816477394055234392543621194303596265745805612757334279568557350345848596423948592813783839865530443984847262582246435441018358597533193468211414118527092891470993665958782805261022549514887526445333900590083700700618346164836782957172743210564951512217548302596772234265722317801112170035737060374953197140067679575341177359573453506625560915443019980191365327651889089215149828509093412143914372318348245606548144179084674194382506608141427883350052560200047027587977091686932464814237057518690794450956308959371815235427173564643164816009248769282803858817181955693782474697163242068297740516258174322303503452391588871766153425887628888298873845979578418919010991870133194854487516080184019681012646941493381533748049188801082302995160481953952751336848538792766414115172299059532462181484250412565116854414819722607950820839932209533018818034069510486761760379190488438195199361392362434873600320566560579970278077093633574397186419333480331086964117366828507877321757856573287494390571497792955705428217380952901401216753252435318910268680444534957837323980236785858453712394131465496469215064099882557147258100547384663518210510696433334331101348815119407179102362745300741696577914280723704857350829303282124222373682666463072411852599200554836090119615485306989616512955930628958107018164473014718266927693268808114913138513842215688575264895999290322631586244306801290761174626676256045570450238924835303355655165950914087038879447772154222637405996504457541708397449090946719823271801985647193161418600026523616555874344042081165744866055535135634890486958087495745789972933589374812039192627881356069366718278006829214296828596725248556583095081367280098415635140194380168838899067641818298650664968943599862858225622165771497789962086042886707137013286432289001937777006328855999016928186242117198848375033476510521984016931575904758671400918833540389683278702173584939248137468887926401239845737497380691916344281193391572842857463057060468536678942536062217397083725275616157338580190542775722275133997523288021626469416295709765052763253903224980845017950000540237164212515982406427742291677514579925608535040496643293603249806557491437431573829761745237322189538493885865113393772655966115022232341068678972949041262130731099564786969603037295857186846787931357468277238912132945966114105725934947417034120564557743581175496763165943387094288409054488348644327380769458738704057024727788486207925859141649635525342355240564144805803439468916635021249237991920965629359681869436596697159870066429855109863057095479678173652603635844503246960047349583932954795827449765928695891080133298151523153074294994518349651342424166028793008849877582888263246287167789821204245498936462886387753257939409267527957238798303375516420108717194102991277924521103324561810166911699433113945618534950453934963304603835134081978630443093643088000343205417477270379978537250779257635805776374532432910859053155064403574097456962144474218706729446073458755176391331021400187181034768280248159328154516305122756790013408795328573800227475034166979844602093958216441115795546583497862744513104218141648186561324880400447070949589726082629880153635015049668202781481181363945083612164507120920529806767916201572521834628307216586460201125732599226998046587352919184287215338538514551763684475969115721554787824770568869943375140010535264472338504263857612672850372418211220500247485485815524296275976894456074354532412003494188944389576482356238272160447732587147899294902184880484673091215762028187752387518901525164538107763804183333394927627726374517493785380939794469181614132892918516644625183503060432274485297228751199636579322255872229864919737487529712916274648014319799295814725525984882554842170292984673733711119220705160918167594863517197449143362906379535058595381932798271613463869735726969203330424117658848563794056468350728456560307035095925512982159698862184412098270342273916979158348663846420081618316756071785309133766306005497359294926354391057564449908488055121604341472033167439760096744839956488449537271418245656651363152629520720186133877928629913524635509284882869601112189930930909229746250696358709274437096357268589011084401396823734110727308769814324166656901846818673920088575059879145482456851225841034738889651460514670303674745710136677183889583524859855881512166394466608818986182887309534975683008062296057799410378540349614893544235962290326157166908808144726057496335830022986805674874355961337178623197296116376782087312789537847754033915409073014492378538002864107121462605636260016909758916535366868204776045053304895171543920556011951287926799014732172337017028515159356253328863752067395792447896096636503686157940873253565361952605395831626250877228090653382047671150710536458584277708010737346620837939231116969841119276324500191425617928003932298009678129020314810004056278327823274854184871826494780269630182961269074878696310035064563951679665378025805241680460457620866946019398506125038721659009364780985205650778726737392276583756503515439046312567503119897315379226614403164096486859924571409080982083621103637446970995964636139659420179190135856530528864123514350055866922200390659724612511814164680557371619788629517509405602706230758000144886677621401968058431631215131716469206741840934068492326908734892691944017469159346338716381210240766443356817910113011942091092754761115415519311226844374231221893782404222135534878806316461839030765321178884715553783997392206736257263789177709556530337361101907062006394462352510099374834672643364493800717666784831244878320806721723805368176041385586387163405651347900709395481643381912845876157527876374363031462363552842783344949077523880340077786540380999253928145629083656540893146709710467523343908318163375096224286212094834552932846750826789886968169050472547697193464461323182159886275875578069051375635894998923708513585000860062842989771253696840078399534658192043412449156212890399266159727093686826638961207697520143995929601094087159290687675466205337083899283540841630001835885919299540688688663742178734468710509412468348962502355035238822150523461721781061149184354887106389070217682038446065734052885873065638388990430160069294143363110998925356904778475645898884341791045101329172483157024199753219092391861444228975518804347915056090854215847262136678797617055386794500649311708969886260425703885446602780070670409739104384535330468951473179709919149826980356550640541798192132033834838418763706812566250955919844444986749319704586829288846642929089632910201267970985872192397289682486848203116948688956827590954674145669519396061913610296702539730865024214025128192935264171867392397534197306543249601800477874623315195674419462714982238196672796573101765958737631623465529939441365173112242590387470413445416550403072840136109772312363097174790451279925636436029622803324923194438195881480120807488450097948148776493677881235699468798392079701592939764889920461796013985245723238526127174757897092283870024488587970242720356246988107987610847890660423006502441137009255797247079349588172402483028056384938528514171334559602355430396426325131350991692594609805391390008792164045845205773935218153152565251815326416573172773229938486397355703519308384632211652682188546739493915706981429103076671786908696859278896145013345350477818176061825394184362348904385995588858072625776892986257259319320488148946666847157756857147804164661150355994617614285959405109350342198725646220964269072760643098363478009582360817270405371294151476505777597114693726092476794372864231482200263889199603957200951412837697819109688373906933797462577498787311828259160243494288815324136480044395142358792597726248760246083138363693454423318449906774255506813143346305954931048444475842158108005617690836956354174529988292446630582482090020561084851738303971469844104560094090521442323970642892403001782089796686703599972790396179695896666482040931630651019112666109693372793152831824684695385949575696380781424397954992509855095273075474657298396718604634300037952408120165145570720562377545319981597088251409400876525608771392485361978979556341626259786447616437446167997942392409979543276100515243624825432300875269777068571850325019224943864120232822570971944685366974544911942621369345116926418394080758952205196384558659912516536451061183595442855539029051148184054776798537448509991135707212617761025824669934040063544966649908747792347882258792057734230634003354200252906773748574726379074369371058007474373820136501568102818154259782387080643756564985550189533250327529060363065927181036243801644458408099076469703132716521780284247870576117802928111955996549456675632230720498712895392948466377639357887125717381571532718343724983117493417547412344876705381376967684135878542437100736769074808029058549424342306296997129638743487813679608925255911624022776073767284838599476382698128764470727443617499312157477021191790875034235930225876898199075641380983295761397113777991370919111109229217038181406619633448493760509467087284732896078358815619804106387580458733193570704452898093285348247752060571096456299007438733990379135036399818292777196012502894702929843578044919203700209731350759166961273438306007222811173008679158379142423641402758137822961851639491530271644817910179171135335455645078587684716110245050376354338113280064745563511564078783772130299340533248448116364086817654714126089126838046713920365110994099875491280012233386070762679636356436741312196632634835294453729751091311291108732402444343773792456143554707731053915589813907361983530917098508209211298532081914681183210206621219709026412991841989002102877060310212116202921924981219580554037071197765188346967854191175170631471036065156569261863506277885711710109749837528131088434757433510342583447993372842093034358126663623336329350187736337301545660184681534257866573908873538461145592040311589777299757519751138515708539566194520862952798565864835780841748026427117583200676205049402308570584566973047432404120084361858130148252194849639162433429367138882667871805740803215201940434029545908821464670092871571111706393309447086618139809544664930253656951847496610780390011875714929730702111209232399688683439746269955654164180760105710071343333658680262044522121157362176426660552653668151440583628246094531374171931636042395859735779111310704815129966441629920587862522540182257121705858663217120855270035553787995706391172908861118061955492788840473770321255438120739525821416688186440533418742178346108490320606972485444731609041505558168538547603526710976805173915920324128435276499249765642817796335602159957850532189966606334190326679089112948939330870602688218239607766933394163149402171446138107695274840332175976989700431470209092040812943587015760169047731026265902361434636767073385142240167810499588798407084108604936421463042966224474103426570902338042619991054154592558618887856974182434449090479929039903792340147494257975615175070757083411982194548673932242354113637671874722471714713524614345524263673523215577215753476983294582284935578402724564395804192334605922741965230811849703173828527628232147869204311866057783526110071634696765151963624121530515045562397238437588863244672228720058842306138871825056265076302802772257224332092300938203049019192996862713568287573382640599782907067870157491324637021279643488866041736872133690209874121077481654562052607230495606766116952067896682054926510046039022392092713855371669258452433733494472073001830134346001492420636724692028305853856516083340798843214997231296504091176704199480592206355898967542844766159996573697099796617016659927452023524387217298855328185364960795454959860288617846351528870978565784514042481045562517480856216672867957702429931782443304235760895594490312232346430018329405130316727295651025736149214501593441703299066798572009068614221492151556572701095751475869611039783190068432829564138042206059309551826034773791131800322608694199914852224284060550670136670633735319744087888014677751943910091771472335867810562133309633572658135197865357617677908351888958998749780967883119174748568395499601526492740628488923799751976478515613275245771543315011757249487212848307661782285618781389094598424616781808850694120620457204441385317667746235527440000641632668427129791984428411690752147245945422366099510505848769611515481432313327161450380980669332582650392872096177485689508657595946632352859779130489890790720918344541645691601992348073323721037168863724743302386079687253493154210776498616733840060192577485012438688796910717460770238756443473710664711042777426514902573366549221312072712929357660799382179788094981788242028442492738125659973363829098625329255538264143511599434981320112025590503594862325148400927317712097801522639344848313425989226491668833646836109492938245250697267016614089689761438665995202009178108507703118519100169280295686608158693118836370059372913900849552952248787388566883569564617646145202869447786645894890250274778634183476417923074649510714192713809728007757637692259171685356471644394224676393807019430792552712470206521792731560381365019810870629112851307706266585510161630096670559827541900982675398109887011558392287344181101843412741095063380532934275266859867682308298322611114394917611172463699073539465586773634029995438384898473330080920068152816722209444137543804261156671337608209113162776852806262789875659345338286819033807441020861502056555705773114327434694416263680610722545067471639473840046796910270164658384408267865884584965934248195002123235044559589849554794232254776757563334333142603432321580660710002561090937543285143794351738686708294095887420704223221488952769547069995703609376221233850160527514014380086530719891613656164351235656264174354300630459267072747677309956775746318143622482952573548183659049111000922312818361405206495296278981504443537750357442055197524497378226870461392253066266640523339963881867594457398432918754469988348626005768938461506446008096383024213998815306808912079688347411375503435520600568537573101854057261967340886687044947252628057027572469517096000066730975895900183773992432415063445774277894628988691565721863038645685269761711966816253918056447675412122918555421428202363854089112793524791858889604562930268440995351145896051829002407316185665424414376079261456508730313266312601118813972785731804758571103974198793156828898927284107356490821461689145286315038292923514554689584881417898426672781989310749614687774958183772068891037899790300455480042456375120494841286385154490467434383793346293047638263868310580118842451371481510674804211942234843467111833410770082146261278965181285286563835803566268989926764365899590389296595203323062106017696248645314255662867510455105857402879953517065908983791317959876665645634278454570604258821393242474084373970243868522117509076175987636393532359686531774945350179817912745783431178547141195166115765156800988447727530006476855344556431163366538027772551501402878406273497663374996464510205626701003681186685908351756289708834324292082833505450153508546393964445319263937846936352182009114554517394877072285259797010100507094669983115372166897105187038237770797695613319426609489087651989146182208877814780915457549927446319574693134330994613581769470677252432918656970348791513081461429803206985059924513186012575530261996368311741058421317394500230571915628953659323797114378548312900285214774968780483695787875777287437599218857864794705988841324558284332510171253193584637930707238701891598256600244768208471097401656734721842287995274931567621291560241087824795691170853523470189470832579630540632798503654557461971400499627838263590849589115578699612271447521607499150611453886250308555339083624599088986413182608031380337305907506890718596769704954513798655628753118068336361882727883949063250660806682679933064535575266656644147070118287247836288349209417673549147087304385891785236236741037330345157998662412484546596634505472398097685129402097871981032086173315466347560474588837572273038421107600007742643681621856624075044604848009678604366080903197391349696300338838867773534192115874959552576991060673549179381511643304071053276066316159334202791594666822147436326400603862426746665462758757553550040922594396217654813811144092515730310348165275703901233143136125915257385754313796148573626042723683265228712367213145819097185106185223315289649048388037348134987428350811566543090589315580758123854969305469936810039172813167972551460201496059429679421717995477540969083893797724475953056649951819343431751311183578324719844131382657334681040814512326843371368768867208005522209428581886792084805564948486637905754357224372415432995683548764724782484396059621737793858148251528687285230424609487982355256108906441291998435563181459792646501537559322974970027961635821829985425049131206121225689476059062375166458142244591241591506202072433545403248523281552315084267698749046662166132442076878349591018863279323499391623065257005828898588663695246972670446234225678001456653913731204875025558341313573585382341028875083903111567880862994726893234956569114501188089804256782505066522693652616764581266123190856276345507708273831404895026535335745775561893234429332988104292909154178034638057606539570143939371356290860269599057146123291351047107736697160145013557355045210633204709769482545614688585183276301314138353475760545732275758908400249681361300451746189822728491014585640334431611759126392638849985988264462044581320173086244140026327940024602020702005955252321972066802937191732650646463384653177058853834673914101009842521513250516242871490403393389286718748461901069304946133330875972426084187907530763855301057834116583665777400372313139583183324957207870037292252784767469248126867678376618222532672507074486993381732362208665309097996834257118347108734480338495996393035945174481390308408703022373903688019807208527048350271561311402751989549377220790894719343206874336031667322918653438343910950328465983788630581426229116826092945086914267460800323180790275778872216069564079750658866071580615907150202873326933322857222711780560307679851468557115822943197711104245721075915566254305318255388885681611352669687346738229348808131308850175511104039914733665040316236471551663346036029578404325691181658482677344232721955937697813920463073697144489926062962298418417858819732096038054351842264095342193368589187139323952107908215406777755353085031457130101456500755571704524306411429522567579621479714406895152253898204067964760168789664967867530608493863471276204442468256117796271888290223657670669283541788795022610573904883389950365639626740696925215836025691697159996276516591796927554901611624288346046158475563347380737324269921647169969585918779668452456559336130337717112793805723591015058358605205647253715399070640047862179253201404200160677300425929819922561348418886207363375402101624975344872821953426121202044097254606249414833948584474645943157890933112592681652880529897441153289256838214936014927529855056058081902163275288882220668757397729930180689188888605956063073958568876707213594678418408658191422347162459662341561385298625021541583281134540350088521106973683733142688083431945015771265521535168555467173876456413087526104047131834040476328781539658994476649472604302792953797098416708474043563286517969260067669370408385253008260053037548568892193390102068382554849394803228018753079656755266156521416250874970718663864084156322093169692336942538423792606649568239497356610760150677036808916111937300159588984649485342806845440618564409335625240588264271391975253190010259886389331745458234631611856910531510298702408318872987810181337198419021019694928193417368805673905428425545411168320275187685739390062072597239889098115242209973012551352039444012560357425752400980393887705345356395946316490400768507562067754556580649052539998857114797018902989295183416557294306722243788020618709919660150669551599989629962710678125131000849425319246724540812553934873433605814516356815377641350469606437409144076294431588414885386226549797385307566043282118726460657638881045734731295809559144887700618238414340060242742290043787487063373564814399090784537542442378059696567695845529716954977970704122828121013567609523279786655543762847689131920567094396815951261976854639310029146624632866671675562271693667907605868273128245899645825403532404103368345739835796412700607318489719013162985045569466830320289142906854867131103481473571945315870666919460260980636165534983921621564567531922154715745556220086880150535532901590447814346368906829939684693726061782074413869608764534337286663329128501272415297572479337261697842638719522207410286411967436951063017726969844741391265338397786343933973301821126782620534519807023635946300511835456041826105316271187742789387252280905471937573108371969158645049151048024768566272890554011433060905107058928901837816831481675195115746571079572078610878630997029202398129548072769556961207489218661663577848764449684882302130248539516094253814555017162653315376110254363899251569816458004619671376331176102846717477167103248874058540941450342315684216095051215718491703876020325241278812695296950187760268330168482697283498745638464197973538659144866582735640510462846822570933042018437262915918810831854803637715041008117154458749022899946697248519363724295047338603767668403489502543079135869544095779380864718795638299853723192810528138345326359008334272503282602862381461610997131813104535162662566556748612685266013810143820542424017293058413048357853607981001906879419786755840539301138790044343643725478960028600297768652786105695879367783302519461567419959623570759504106172149801494085292506321010174197341658021250061946795093850931960311309158277835758108826999480527185207866950516847815343100396554538748835385998815423324650658162879515802696230633227694198972514548303393068549553266863706358912772494397210703921052469483017992997060045940729012389472498637048336842302856025462713526288027520567563554215407467468238506230589841428662005801600797290365287644225005015732930053232445039876264339403067312388188245424162815273102347754485538924402954910278030619794070743728839695893735508702715364507747387094671150380792368655637956234618167495083271060083295338886809804856268091403475161340012984546100985595551823615561701355255420682558485239159831555739791941147851636276840643319138031603947628196235987983120096252838322424584290099801817900951120215745965029197382306192498156985198130734087952431531176485443432896549396683408361787794929352833882510198304804500292455457158640521718386185116954164534662323319789309432375179402167090196196440396851100001667898638739705337883391351991057877237227860884452802460824096405115555518001498531824220087788688962526151048368152713448395034496023578895745793112769070310624640724884974307327067806689738554942358150602594804532909561028124831299489614545471289013494063337528582966530871172914711494506882364595080434854576465938139657259716578130249233345760577881056028462772489461784669372684230166659918300573025480144223942289567381499236676022182754651083405362602068540500735712234027459726976319391469449941040515126938769716935834988491202115288162663643977203848491395341057167623702566108911569297845006625114315650774245161126555771662699824557151634308391785544840282488336180281054907283757403501961053387316526128963784497105614097736843472140917523895857359425236207526255356307969052924601014145731341415027277680935916291225787235757423756987117676204783203056629195596623416094595440013471922882734058138869615803611872111130078252321029584465455505103072891105957362475037543616656944905869080156408889500879930153592745475076676407359004399020517905600867521109435986682627061994332868309342101446116895012391493569025735001945871335879535263856563641943955736583931409295105302617450232368838718957759514682895174435157657642482367888130219804788575440039866381354935166525603573319891699802049602512272594895590337310459304456322487438560024325506331863101291334881307486390148817801218480102159467285569280348380881521101656216313451024360492888940811359935096267214538179583432279328625091903842398593621230650548562157055458284953480253865635184360378209989998320004279221171461039470793288225623190926652504467870228837427891744403769246911002569409458426340704319352679580374503053367447370435941538406360551042829535659069234996568512782104056498405942015711048706520198835217867357013311475333736288829360692202067294101674408228456214048087046913645683800608301947650391901039960150872692204760616717503885916151546005516166601504860844029143742938551094220395747741078165303099427221626998696295141599240597075142786914872402272525892145026797122764056163129289981122429280948914893719383392800464816579620693105042339495672343752814277479677387862666109220032024937672846751184039891514692300794775725788958716989883944326804454611330845640104685882205996739312949041882982943888206778075667296270554927349627474449549077546324006232773292618532782946499546282723729792611641858495450311804826786417426442283701395166325334161206135637391465205253490929928193562723215017051958896490173925063163407403635060268393993888366700837026619810218828339352804801662434168431958168027755192567058866594271414163491739315954720948094944971327495464948244227696089702457913687727561582353954406510632878617453837679910588035194364529757622173291948454370482531537929597903055798665154564126187228814330501301965258643871864758886251761810064523751082793045788635234552685956971784973849164326214048171193001066723309871116497501874196958177777332662355988372969447008151386293030710961247351682890565534484576308637205795889872322890160818036626036193555478966498094961240757130818808081708230354500184165706511795318660226215093158224042979744059931346731978987257475464256658684746103014189566565578756021341440903925271191611069792352885534914116466011661493587535532325740397551316116717770686557531793208968620405304935132932334969021267672251738571416243966319844242090226533689965916058015195524894161456180635496282919758618057625821902078183617373887202322322395136739178824889349100970697455272508833234635675371995889595885810429662758369951086068692903992292657477824955565030154265530043713062503785645056519182326737577111614439681892407326776093234139600726501568163584180245762774112717894150336314469761791468085181145988887519192942413463371187802196529560519200424481333394174845990485886785033314177244743833830039455905152237058679785415220596160988630237063553876077743720012336764666612112883239493728514636308356720292268805307047406313489475329024730339972571405664747894241204391555030983463743224188152811210268531071904619939129168160213596473420484933963674829077679024170665128361246036893870098247311498435396072639246499297581319979004737721032182156533093773180199571249426942190902933617629261782151605707923917558048049639924654629935328797555150427201878694524024071327193618195205472869315428251149379430676383191886763571982094540977293730912099093863129975454086375025249039988232256187604220464928975710598588110452935201651923317269723454414498755949960446231037042425822533165395092878706304420454897068478666958634940914215910536022677472906934381507538163944973899391212108386800378518019733162951024939972661563095098787822132921589605613190000513017649490605461998291587620015562060583245752907057189314592344716395019587518084949464499168126940941696853961292034683139330915054846411170972919423088491933406257452471222129983225358528684451180162840093113214642597280968309468590497838439111533982954257034565837883014561679459641492529340791991926635353786169842079156851216013101084055008850152912255131512679409753033178177602538304598334203645930698560908781236325038034080663365051905426153577660330455445402590456126306595428427833276728433306562563701010840750553575860800048023765003340917748679576554079841740940371569267306212571072995789816766197557585923279207848291663457812313421699793486638539495615872327330481757874033607260153584869584572923822069168572328813431160351700030879480287423906125658517092527646631026672907745729218275754170174036688764430807800746182609440156807877810284780660479457498182760038044761099348348980251177150746745937056561994243541030031622393130942293921589511737127830850051281271654034565110162659894554420017678167949474227890686961575437555379631088965371942830741066673067423951813341852778676148264940715049788198141629223687108893709846087903025996021659736572286243570940872812486319101315633487129122943384712389298895746975465261910869052373048097108952701830186018712977836016935427594411930210714664293680134983465641382754683833497874599908126830342595276215669440903041820143573513761309578392817069877068370911922758679675043665878100172713764202026792524609931211290326981474372297925511373454265236879156104941519726813568124953793207492584733834407749287605152181885237259009732343820111249528116128829060612226636976185342336296767095284296501786596146358516753179602510123284607483113095696928014066556406212102162236403221384532958775840297074560464481694810194629754112839477807049133657228221140191936551260983677874191721940876840426650124299626873189329212745970942516403398773214307840144180434254073895371013220372702219413935790921880378305234696068366386273668718834524219325122538218111329960071233917631441691051406237600317223395427882043880674018714911653613148297657326664027784578431824456593044773417287390661647470057516399739157047361727237906866184885182757569487025500022056308777001010997749396776312820277696812909833849006764391720913467709372447613075769437752533064189586722889532397798704090550026065674243995151533167768642366619531224540723546713668828864802552422937798007193978447327158457016080375886720502924571575415597233019720125011407357872978390274448780129994289288743416878889316377804234080262922861604211764648588368041436692703924105952593652033446166988110851077156325447064347861169693197393097986412261768747075130362504569219086766784694701988882423629836489308216918437855200133041665468822965048023449087707681578153026557298117285367468416455218237530344107635828346258564485257328831057068583759629428194819682841633453058243966059179977165645400188404742613418718282853040632979873278279942330843795437265424976736892367444252997231107037298389024750887200204176438632967388336011851542809572585400955031931417569857952705135507680737950463537455661935724798484640618371516915335830720295538793200210334808993830743900187488860943906018441430455224752451319011010371774207678692806796635292142976146628000098154473725750451666850511253601232564601600113857231530355829684302210262595588952257319195935523692667234269735916238866556571999565980746450766157447782446037909384848527084668484778292852737477387144115597118703594283837031263943678005165617116696091692952673370066214109983169489652520351792138202055247959000735233212094684499195491675926645516497118959652366206042929418428741079964832922792885604621328950499016254951298910010059735302786187625727339547614523692205309790659195027909729970818366202683844640808978035827682923083116833887104061579677430383000945013688694401009431186226590437045514760152677539583642240638223801232042755074344103615632044569971982151636889367977951601771404965000312384613406385511682772030961948694310161025528313023576432707334046029086009634327748425015433202381328163749516971204868858105739945630724825877090499806213188326467999767818501297545860284089950930209701983124124601906647135577839946848900476775840804861314221443157099534966427922711128319405412998430208579170576437325794287082400779127395731189017907852356823400395187550691418034773027531411359916262557532884138035948687156612244920707176940628425875796633580933011838948983245402277508820176057780747611176036410259126591658603328143110917538603506636934213325434140689359185810070181940801593453964998886784436334311207483015814042503663610741533036502326491366044811116651970643715923331563815789287453189041195395900073896021128105059403123967692462759633835531925536654094103848698838133068606719925814812289318609110019526076088235514177824025384762968476544957111918077496477611783418701731901020522622174264046288329552923390385014364556012104377817533646061110300930174297873654329634148665171477976257285332042921695639141809546307789144375403962615580091111322590953726766526155956714645086651771395733824984608589811126443430822786263435335438958018161421458418227226590875425967441488351060931144188974614062092551895636313796262702637996948240241143257813078814736090805778326777632361469060162584651425709182562368325800155834155628206572137200846503792268514172268699735679870391551286649306233768194903864349155144097066401645411845185418973115839172794475931842857940568908679539519025913391796465525809365968844094971010926531816561648451775345031514213512927679354625742278456988770464760403315732471696542273478770127295084776854397353373119590556609538013971998620908572473046611572209190920082974890330879687555556152269716387778495775065655767797732130649908986703963895083730324563708297083151960695871671943750328333745158325241089381414661472109158606518099231892064365073385548455218739083895651791388804335754365644662197306956747814515203157809697870989080340616188823403913072874842324496691615673619682152414141379719706363728688077491211136781355011944778744653345118025521065212908712832280213339828009946680719418626264598054623331638384371866313760539557720650000204950587968869746724803937703614924425797922018797113280185966632801454748549937092538965016499384579858959413613819645109297314524124367579342961643505040691574810861338586388001435526447384055005316346864241441792294006862446683579853094791050499350439452999683361760714423389961789334049030095829564956548022367705093684825579885763820560126125159189197840759643646040278613149452588417028493789893899958904395418441961890553357124785273556619124425566851294233308707749579469426571159401770748937784602990754025697968973095414661719507614733853888699467432761147154032544114630237242863118079018168996068886290391546387056460114100387996260121340173583930105106045524847899735428034790543293045087011450135693319257436600669276319120020846223940140691008739707888733597238172150544858420598296822935770441523739798010420304005437919906822498121360845407110696124201420151198700091374815245975522394815624946367127894768741536763802423867893079673557467094043784043520835384809812862505483846677490002741469269903617546462081848801895326929247794431289041998497806095027296062657929717839190435469059793585181437389322610566411847328432871739770773399838254956050213448135665751510370512155325838744576028557667988346795674680589625533422695576673091703182599883146848943839193039756858154337649749844730300650581184611760057877169904411396225052618902572622967987524466123217883684948114452805222352919338913070658414954106735988516013330215704998268470476713424079482726546139447774998350596915688114174674286486282567345800006999385688274620018482313093374018712935463177088495370119143700947481443841474883721106182174143561088979772719798615879234686604207387899385197706937645388404386632229945768360304920817865122428475498860322451602683643718732764489984420279352415505480894256842714908222823878174709363255546621624526351786094417217185858088802023134093311441678103935324805215855384894281897724569608778920710955381708319921793882568097540337272254977840664239730428513592222881845676350492551126121376231823517956720957746375904940327349324414188839215165733703626425401772244865900399820866540418004944616335196039517912945226575837257345938204320543192228433070142331247375177951946768993592399965980687789238384308687468896033458741350183406429597556764917722494261890022557128588582295859372176761021678047291967055217968454128334836992437549962618647676953113404371158996371236953940648337140384355137795487511080006171682959100033973941282272047039453593020944802643403885358717924242590442075597751812455158074477817349702311263321624060497213530912047685413951485759406437044472480273580871324604864326629695912406382950866503701404037807834199407422435630887893574072309761269862359457494203975827010051685515711287511068111224938339585967154403041431835428512783690377280337688982930634875332535408152818763200064952842084866769031674734113698562148523773346362703289970035805675867269618285861480115187746125877161125556792952313618327331263558269490437887267676536513327136549843244036886375013541765825819152540371700916369679782626534904661314757665944488770736554095984880459140342613661071578379820173698388170208337453869265273742120624308560615328831764581568289524651219900117476730650566121807302942513935574845694226466624853324080871181538561726816737978853663684682108483556839180231323631731109634423328111087010298761247366333114644919822789434604881826072320128641257592504259300628407163427179237875339144805433951685073357228912466700041159483425980525218647710829016343500648169787624893223046718860338719686757417010047918978790354459909087467892737742460466888122178593045964531188752307760563972996046748710355885978781609699663590060659414053156532638295160931653024264075737405061320137774936128734020876414754918246346973337978783741649130129061952945347818785546790070476496365500679736729841872062459464491490445908291700111282967393034735255423436052586406642397322994586297432222278111565202922209327109510363340602591052692336434936479520797065831661263801565203489421107656957783600881850979995357555361150591801820892307874926168177975397830288589859873376843593073441156832098165925981774006968411582461894930157961187458977188186941779983794542992743056481140622090627985491599656092336300381947827470612720701863014654690816322712902290733800391622878458987565894983225187976354551491222611897361630744520804881941002857109514198347177828358085522410801467079660477621936090249962439547424518418566847845557915100792395382084295915980226385400185666281023241493128457239719119147355749217224608465074046767026777472963271104927283794937478908919024620155572965916727410837654659378295082636188089591665177305255457444342734661431991334139488328539670996162998610137773171255476785926448609945509825182446210621399370382113157848094140020458173670431843684554775212054053705580206033560687102558435950270914110428444691960814430056657377955454567600771952629153037400661543568978651957689995234747837672771284254044440677461692025099899665686576357454480558977398298210693479468908921712012307971557944802630671909314263786126782915621137103573110855582069024662233928084648523003449678053959708945104320340966023915894395506066381626996510059463490130228597914926827472491629188839903310367878729443249771099332428280640225726203628057285726170867928659240201755841724188053210921833974841858940606533223881609005232689876353458122715621027392256446917854369470424612120050964375837998146462939665584058488547211127846482289215404499758945456815855869840259520457056013469499292335919149175184625214118156714521871715806422954120794660257668753507706706903728328737108069991272873636065007466204854442233259849945524726218234562414616892471374605225034496832837185446686107812491231727010082457613236843909339445930711402459656333915913417224087203149881446809513441155462298075637008741186034410086016284511541304852074733929729480902817565235604245112889611596238485349446846162180231364820034370566616751050591658784584605044257413746948357216983029491175722917683848313373704874236451010205352177712628660260325908429932681778230617863978600015135898553618016277830615150851826914520972331045601833937536357115742224056171650335727880171883057354934409040498208058111712387523687634713194812154164939181935720574953209201559187745813272623827958065016485172102551025751421160715805896156155194806663626606717619492372056402141074496344674399468790102748597330940927793179190770643023952624977304761520945697265054121765207005569613422740028371626587761410145937885560386496504161109650355456527484961531769111502424397008187526231688122782513896308044722322861162124017435329195063895942902371444647831076742368710047296065357894101027943079069033022536938699859319066193450781225372382933532786269357434055107212334638987766017869621256218572627277889232941078892188916958460964080356744339032905970237116494442558449313734806632413268383110076394241348211749832191926034844332865678050176254517952853546078552425951793480334714851493294670715433137857558262024452400420221316442400183577931232232874305256642628729549349924958870153244472908186731503790486381307823830307731306825486209858580294786514049822316741552918750924599328483476192605255740104736471496516525296818954986252967388183647260428165838029839188111110270228276851208169045664047798380071651070754067620647750764460329783108536832212475022136519054929542303651771622098503131672520407424901792743856868577395770594391024144297684977002102356914874864064504636143274689837642579382944596844856230444096198694929888181212279724423669904923201398113801444654358749184478484966409176392364750660009936983139963108665381320543651943171381388790237253858847348643901467042800505570799512000107040145234447713479603013632484435979655958785192861022399886744266452716021738316767893197422924298514214924247851107232823000272737511811146225409648626729682059579373380931505057262919238278137292940149602948892763410772096219340697182174350917304140708537190229161597376285687220197874741864470139297772212814597031708305475285537612243200715867441329175490244464073499959931494139130333039640204367238811513650048238891822482722087582151079514691194599593418832643208101763960699630715446833578434724692239111055684194616377084420955791043442425644028248689735391469125464270016612435653531580651348108441098338013528427205599253855751626643826721994807405031639538399225192725543432402323790366721474022381851958723590035862397135867340665697778677258209956297462975183546759838589783461884161595439865053621648518072243902730084723988094702436627746811398343736370011822861692326074094331427870789542919614714642305472630416285361978754631984853299230411105968249649355091874384762553791639359228409864996256531683728338697801958387804142337743090130004048137746602626512180901779802291035576590352946233484764370034566834896401576654760696074963799815718703883550177315603785081990832757842435719149155604547331047964723408716731990413211534519898058699113285798422670755266974409346682622884108038050727707549427077622087656465574858109250290941858076699379010389265882977127071702705732191361344169936564087179208003808541019816132310941811625101362546708202958173163673947668049336923829240249660122627898227532879363343928211586725695690346837869437709506310894657451687572875214087413608647261881162838826720286794906432052706304210430032247305208524170893325693188723289477646739233082844604798774612061877386824242547823081757122468155021231741375988659773757449820162773078385812495715804052758380480614035463989226965374215863456300363535057189507589188577136135087491520428865156903038069566823305441882566147957086606977264554220349632076697720020539404050940859575957801232270281122748390941044038504009956131893756977691233047263319262843972432096831200476409927777845579215438169536727550495543892900243501119806840300350438556179989580943694413357319306358059417197068328801288770567576190708350104462247221703690296014786307598583520273767768508301646704862915230125030592654813145606482128174096524140782053015130200209016352478567460890574851046294959268071575517494482621753825717055127593839440833143590824402137719751937954696998427061114960873657093710264818101193782084300933740432202609237459273585297090029603929665262517776657924628350473307494343530710531007392224625819841662316009495492566752075984386122985959393289393730882090926740285521703263466220091426689180834899068605571915722834581404220381903806363569867679812624752744475450896232846449302009710681098314571320829484730100850060287053936050498570674134626136409534061816834811960374328261096277532405856888908575752371014774736618171210540597949623424145887737273654100608841917186991511120846185892697171502520118477877734565871950807665028689199547625918577343947260226848867681096141730537584480540526133060006516477723426459881765986650332661413596667305274198938183058552621791749389073283396461745260580030941447114925527208910112646337612781024609037373903742362377168710686801538787159940150401675135029856605995251249415652251085420992874961281111900753087380136074892822140768893527309361439042991603358212778199940800324741680917493724322222831306482613814755450677113692283398525124627187760334824711362883299990772328866140739936837485254223843648188067281298083946700969397854048476373295475675341916454176257199249971888335663374223000775534319610579069584532854837916878872108795582674509750421456104728188831363839284697785317574967060205256565817383559060458983821571751896157538465971538877634217330967965744116676537347128011060104374941811012727705908790806206153729031123254732305303197297307210167427991804241299000838027543536933563598570735482896134349090923938079441531087248076735983647648949027865982602161901290617999202269203562295796583286257111800232521523609356691874496267054860535087600759452721541485285216582661164278362157464304737881137330974047998694622379284661777727728107758294193602686194333474750164265336971439999184878423467316383302324284331733316197633718013245291739505080833137666762555676536537998393140713263035807324073528385528527368803127294988660122705380759657800741547032603948201379547081662662219504478542808083803439414697720258952989087999878336337756977037347021636535178015337182387007950064550533738937011972930654176780053011863564347316930638865505145630432641998891151739951453624213315952745180566214847580642812613972194012816570182172993240714672367219571366068954067988545132325011661481396856103014173181083305904618414218973249565837424226994085091749502170851015742775691788464924439120232915822182607492147830167843937650769187620489632650480731711049922372596676715084094220090842407139718891311221028165590797982879392703568376681611118613622852353194309104774751327607791936995497419133737171034039866974940455818997508511178390606147874466080075014829245733643279203571430332464043101027255525581487738953233533139952934425736756406938129441557786551712065118056099302278793985125595526751276259168150974456491217631714752743765972742706563338911482098911219232059194196428457445437537252953424530733979333366877224651953709106485649534275007616133398266531384686971280906168185787690433189757881809411616643738863635866826067180256788525252676316760115501144796110396240122304245844777399335392339454814149537766036278267430117384625608850216419712864236657294653218930406677669746010216757890343765739741927634152400159326047646100681456920265994172128265095687967675217683830692704267416897916598223468521007153795616511095260730362356444152402252804730168263154834600037731237098604810369628670173278564960996236033572106158888639716349526500544980509059917489476177774022627430274012965246220286441720100967876582954624368819680868183333949961327756766966602724382991934218851629145182896394593887360147933542729434122383730051093329907659692807430119501476033137812890472943503860575743890169996401373050588712534591086236097653371414860077911328153353662792229626433177792636923439205943542623983899131489617239805673771079539696272551858511092639255544844395215539477991596101018170288668719691885201238615425043526354104447194048499387975186582762571447835247196936616645600791857518816552644664268628546686861556990217989858437919954612084938308178356612031527872264667572448868907091895311982907344515315313232388897944043605062084784248116429492005918889950520818617566978944963598019605269929217430443290186722190641085154612023169209033580011847435062741053948545196984746235429732917761141394730905170310833581398425686021758381610580543600661588519394258005886419895527846439364497270825263249862965066745984942342011625221266229771302816056061631611974336386140054821920097060410415996063138137057749451727182547764696785767096629119692139316519495115801326783723857888253366720043898549686798236507150328679608345362944600167536303442773572996871662866274449994145266353606257503467753983267018199842186660384799068894130210312506419059743420834145333565317252481290669377086652940203992430077498120108776366032228387517370132811170123102830789383697306071425483488516418647099560605891045298086494656971672082815561611058818063486744464763628061679606264404289497305261124339821501998734044858840915656172802203344415746811654183285422793732557282721594915940219607006936675384411861901227999760600234548685485510284435817909788517536128320818986275322060063635131353899041582586182323575165644504148988072965318255145798108229658934512330636645306831579643361448416253792098924412061799403601105144257035704312641616571399001620734403677911655424315075288601780872194788726480621664014312540044435820516171385769851090428380189345291004873610285058975207567747397264567003912667797542420878607599231042316648723360810382454527213736832501230100699676974926970280628229125218331760800738858428106810076956675079341231671715364018897347379302262450581562209933110844518229738163510764777237985186291530820838296022515271751601687423295791263479339258776436995436243923166220061491764676221034952834701682462243550243919753169511983819607269319853042118793129306233000659607957140311471377153990854692138491840498368086115653631671275060961070455644099061859060129835260537347441782904684654564366104729866513064997200345780897585578321409215393805038640808281557379475514001713307962686537825652516115933289647389224430560167600255881058448001992812474835503552777962427466041495408281547683786456825418490770183516371089028635319156296038290485470465163835202769273915059295442138012075197874075208492803245740293779812075808916544153150853416684104524720558393363109672759024617243214416821954016516701565064581022232213884628255848643305648271696030221219367833616821741091608296906383425539150450543968155741915533062645109334295256311722364817285357895373144952443516566400535846436595456361186481232534053032364029197668005124910844584253657965048591259846338162856991411514689605537296123335160137952794528227442776997646068737437546994704013247814627046860597002306635805765054439520729075030683990671171673736167715090078834977820984548848657972228944319791711346353160340527986216522262016906048693260380549964262985469114806621792388330306315293095401597013121312481986831548996993714399611241900630583145171189181994183255556823514334401973070961508757218247403108831641292557734511113776033031429405241868230885258690688631482742969937292041703468493117318557984948969689986635062986328846927257731278734887590018618230891355155404332280869612621921669950080427078482512558423076836697237513567482417392348020932452861334773639054768810462088726920207927399317916042964093920717336400801546547954108984819752349909396680406328911350635234149096995072598766934618394773636073050660658730453402602081153413806481152871728484815253514863454094498868415117116223640907936359245784793975044577153433033084277853321495108210547755818307729158147641324603219308177716803803925479152759458826421051569471741408093882314575937170936491677832944795224243418818417876229973842297422331851488295592410768369952507186440858984515449282601643295362801419237732951021728555055078092250754192612404544926569480458794873248423717892994989277623978878637564225882879785030639614487801825140070567570035013978512598848177861751004207384267010542740948800272387336697401762085059805021766603664967490197222437526561717590195278791911311372869870418891469184651031448779268272718306188392119351054226186365618589342431980496579244485455873495331905722871433776516194479587969162303141786770001165426546408102029945361303944351827161912794721598797428402782408491420121623212826810530041193323339585800980885226167148128862933888740797718872348568988398793697190959552523655133706861278737541165741982753356922836638542381001917189669428051548894337715247575740878483812467272236868733373848662766644326258210477504953163638187957420555295284306807735154761455434773432251394525253881573015651933876062177647783979704933208012226611002318792066549560348319526395825777336503967155205745955912363635744104099239137886507683301631352863135231225658836070845372695211820965103124279268040284064342778796495077980965080775589827843469572013741806761188590515551720641569754395684581156189207243410265007138531513514500002434896117773482969399192502236438605947438663669852090931399322312655555842189750214944138386447150325010096502007996387967942773972946243619722918597271033741062506146414675507489804199985246882282013914183938208740775178113590392289386427688648680980970673761314497878089962043460058763940158107025028745804056594796024218980612895740924879219805980353808341509922207063110892097502059070927130395517318341037270041117810990644768252306648048515225643518123069774788443728518044777046986725921339279772495619489298147968884566674526603745999799963968034917668208287971429451445675688194834310756148551594987971855907200018021545137449335653700807621283895977881690766212858116939447306659349493664709542510603286624978518285946091512096990673548662968557103318541904388132997161150087363972225172811939078717657111023172546372280065770642778320888924681778158602447788314196460724306596006889335484073700383497628513474669651851376021590290100726908722816548890834394237190915430117975716039016683896009505136798268523412431363967183530708492956667373589882560272745666065826389122976077380942719083917265859281197507563252806343519388347452691813239984037211347187661276281206905656065879547922478359773914062253156996444096116276783503724808354440295138801160876597175917844130240809742733956055028658064435703336358614257288013143864003176207050697723701474902213899308339148932771970371107203002890313876657582451483543743456763422568035261572581139658469933057143252223050234918280016253748189121680405224624893570877662384469329759572887291208653217323285575770008845889284049271598766946516109862753714348216540845182680983211573021341624905367919957293946537538992677947640769411654808985906625506229274660511380055243487443590611712094191137753391427054945242184349518790004751779612013792204054977014322562221792676512695275766209875327954743153491858122681464518022517273647421479299146757007424080202942143302314528480494280423737873334261253947695129240931009227859579204558026090934862998219376928230968368115387004162371734557343812814814476481259679133511816974648799077310579394626363488940315109554747224810882659798840559064072416450434652435373001839496788783542371573615076786666103053274234631732549741372894367125361770238055083013584128280488821259523091614314674926419073153516545450951044680958329838794633055006769266478800686238531766471701130233314120788878555536401936976833635123574175622648029459391841921845567265891467287911588216658522690253549315604059409251942943580373112885045724448940073139063258431747133772425663306622432382669981012887061616386092487446285158154430820646845478400458836289921141743296939131170781132431478689698108914967646226931887385225696308584504002843518578683770881633118485635889911642541403911291776750892990245556792859461518253885123140262028049096451330827602768305355166855650674465940401159805231863531716036689697005954277397917860205218043824356642945619038408686513739965327971863153823049109704318059175981809929929140604580745888805431898161287413908120343020569990741722790698784378870846654100619464361536840372372249836129370252706357927170560578514962031255862297322309010126935581206164836331129091076295639804059278205768426706555554697523442107032123226868747927843640526194491438089898735833348896509953887659829328531184640331938459420149614615824086898991846399039540276944378202163921594622056396964221610149906949292920771047333833296060077826952477717603957555397823481807529752548220591155843157810718264239178441934730870547616529675012761896867099163264738038189621594474844952892072991543630752468670218918953541198773349870710398809808386699755372933603227189101965098257985679483989891933388733042891275050738937726147893871281692461962263440631641285835354308113459508979787366562296206249308507446288708475418807627168948019539931050436391011285467366097403179682409414067455381327142888896472880066210219982766202880168290690114954111293485628996611790761813401859638766145614456703359247837028143163767000118842087465951702229043174658155607123781000578834294887990670807526863868587645605284986420950299751491304524590879778458489329043088498734126819221235027056413156843394810007012975300346446450746569796444300877112826296722608529147865362784746365880018952431431661579365182342807415192612577547137101450124625942454870531420485267350279764210843321906360929114417886092877395300764021222946015494761055817705750426307729805521159521679238252984191642837885605419678830741669730621679101269941633767453259858602867396302285860499474193792141571795084325465341394436915345116039868216402134110865195967287656600602259783476621803620074742153766825197838314104158484142450981603478675283288132279071973417230041493700160279830423827659121933811216814464843033525791006215649156728552175361867445401838857934200134548159179072947871478165134274674755133168776817202785631860765456767148606954174802811577730509613912851482478253691457463954737639542172440558890360079572630497237371484481516393085221524191159103534917887839622069635309552485245561947248037163083704344766851682782066309007271759387855730323917989612214193736293443836567005988570904260526919389450205427666425216393527114061351172558676046425206687692793118330294542475793850438912687876223512550026080500936491107752743021917491140196355826474239371316478882065773035078995221389350836621607421102275929060914250525428709171247986033939829395225420445453541204567104015385602547781507894821619578609135924561161747778662295226668552086745148563438665991323750894090811137280808305641736328452718533059296949819641206681193866562614044524478696630017572422884549864360496551816858207544656133733686992188437947505917313498341109173615804294757919871056783598841488467326762088403249956768075415894532155818463326280577457056410667337063547830808470196161097968603750869377717721393184568525864816968442481610217620400096446686696278982554364405674692255030196954658759226841384495801524866861971958717025614723882493507835676647153152616832143051303001724318786277580049789837476485816286415097719512177612573404155352696327717509192019468832860560934841023233991503570299966326956868567726532075453080661878643430562508441429049486036117494509641956142346907686629674586624966478786352084398588510790876054958800303073182647989292940626881268799020063443557226418964841717492679813785939503809414477390469089657367177628767204370645298555256657872866007492302035545595546537849175524305282984674394963973190028238379463219395864897987723659817191288244085832283937038131181037350156589855459636689556896803096733382054580290255382573284832605017095620965083239116061580457102404850911527952605477539356078957069429887702852984618887557646948326270585652124243203515771817919544877002456829061380607985629599582855637128671218430080865410582175027908182829371934584843338669564937058570045489394438100973600332165299441896018424968353913641179759079794658955045312370324328106857502953361114589374778823967858840050317522617562604782161935741155007517048630749810214953621620394734972926687752339760001321562309973669597300128830702077585075366871883648908140770376144229431483752398838885268928285705890599567742044314838107399506539111731033601919396740335404894788264204784415089474780713479884118247016265080823802075536333182178437319294134010679153253236066975840214756110670920221141737098189249946432552676226606160093477560664497025516678416474424042898497265869372909825157784710848240119286291417804539813929098306483219326560214749379173438634213438555208645404383275075033529434908332060235248578545952611697943940510050539868028672222504576945789240342610096358085758954533177315508166260747746212986259958804563314659373510696066612430825523450696506235558466887570202759361923232046741520319322087324993103250886483604128995022786372550771129762818023007505038754703485755219875487211407096619879178866236024492716168160162093291442638702910207483481866621108662777542230164824248026567492368171970087376711003759857175434452918160292383338260155828006029081096462370902763813338786191826713261634732559991505208716438848706547671988272390121447797973211425223033860379712511521272295673562771287514812119458774343251912130672645320052626879073622164177937198275589365776424186073546027886047784931788181596746791183179045416355338132527809059228461698576281598476287097505733888677405668125701056396245020368410608641570726012439833395333985525258528542060550582118581477489770771191377385478791569133084033156866989174041378458926408265743024578115076059377340364675305465094860287676168061544797930665450711058433802630003532639195967073747391853534218597534297997896473273370444150143341068538869861527062322084386387469515057382560550148108235515757525885928528730858998653340537680166829897934338644144746914078903598778154327120697433411534264205928205574064768076610389553901256492695540835616406928844682739506713618683734410523901865962676951785638026843282827896746830651951476442409080309574996206637734610393406271840849828266470041464960515785113162770275371046541539948572775185014570768553951405774085774040743454804089248282113425906521274672499569386097109292038535603957632931944109655174706572218436522798297661644680848193203143301530915485827210423809218893821347507540185361229547794928352415265906326493970919361080992458984869940824824326016166107693471219651234484323236247181729090815364603811665951455775335552039248078930034739800048109040135123408543556408462827566622801879701482201375315457143523416182147746560346437427080470955484766441282402086027445642239921185758315762477639209864394047202601212255295688113783032990669781229299026189139739472250704569884346468989972308731360218410739865986226582403463798806410702572587272163499863135030656551878052008988954275370747150891077373901979973335720615291363548104694534194074992557846038525502917293669808899526261178599789471539593578765498957007588990143614552015483176679176545785675308799933510264725925656636156250909605769868139484677212547503336830667240684305116361719247937999136868294167214773446707482775719963465181934754446545113933609009187577491683747107680593467468225749699393412027747561982747327213835949084704931134735261446596826628506418045683855629476873841103430328364322407162403719545981722404083766065721257199425994663225912488556444982250442310261873804133121560435593330318369578975335292914471453446148409984829175266144891886730478804176872697524186182634074717214212887450536984697554467324222190837053912149043875998604178467124464364882529969541504172418860936276063335122437613149087319080214305787462432845031842643202518246942036282568949084575901986894383127383979865461067529847280004218937634582643204510301173462027281815277540476415526229403788783325050571599062618327240175679418056708327548271978878317435460456367981522823320835277165996680864526890855697825601805728039898869145650055324461123547909859944668850639557974952127667348893629976031732808085170449256789057232307675269212629884875329203872213799939957725098124216393191901692011402285139461870710181966841734492434244466870378490916786920499148897184630724500856429880260301438836825938338348765506893625681995303228905459147393389464294560034262184860817941422274209222129028480959141233730759935762252823033186426076980891966674377988672044812153839694315094440015248900349293590732594146954304896589996921869093137236194745671732062620213425872571216595097987945320500010150557321566418112717363724457090067476140135523032146495365434236928485405202253176669677493162695905774727372617853327635556875606434916248991520621766601585270348595026208030753569625640992704885962947221798391127217090455342253969758158417907336432126291812584594706994286481659639151334616182886951751295408441542325180198361887525535811636431471941820809670688730363082948646376972294987620271275724912001070408859393600983353390792078995600767715952165598956263775881900770316707328613846595220977792508927206973886966918213129397592081947490925427025080578033548477463438127541551513595885288664511405360436548376615869439316682061852230169578455207714785410924709224637247407640905534286656013349995752833775644626395807017007370207228950435562512349192789293723655510676780996554053203256259912139693106019830124307713042549037236683836981805670295438845869230885065242410629452652830385548398769673746745887184748801763022229358735210471523832423164908645317327408059475163163585741734457045087615631395996721528618784895084548805612776207511000968596640330068362837350579000262185564440933404077120168194724120565319448573128491957855563525331315411355814882997879222887575473796573072542094104220124211236654685097036932560290428344679723788334900397654577250208278899715948614773886318783397508997661803923941333885450968923328416829934517585389994459336701711077463852638606547221414910597170960455421221518179924118123742771654993025405908364168488429952290428217757982123435827777900884626747171085514058000743370720662353720650030460184878654831793586798217501652619562175703640075379316450538772704906728737301354342877133162184652136741026450130947943460712534210512434223337735054180139391549935645781823067086695453000654107764970819787670083980097502628524388246841598856101797794007270358863133741339676245603383093637100593688624775649638346964995365179579035041087286601563065469148019958472948907268054676964482386960198197854093704895272021071933394253973013089498731809102112927218538935245830941289284356403502575843233085828949458738362490349482934382731114523762763219552878495226461730128047171106827994174246870324723263637521366868027228535029178711980103731373678501695450309026848606802261005069842067850885524119705812985683006438558255927042672467530744114088072489053692650528446657964589812876452613651838356280685699231608383286013405552007083314018478794442869642590414033035013155247743759435606033471209536670048586672243761605120753448306219767453437339761943887211606823095526375037839573458339711416992410189826917218748641973041814542706811605649163603024015774464561177537589436839483923458772196307981156062461708961514178915258296265846562578078192992716007923961393891274759397921400140206908034816323655240416403597770905908817407335174269223909428392858332359663832565729978511203185374793824337131312341445674739558688749982539391668571578776743736935233116213375609995745237938484432814998651165882625457823965097369198644827545470710714181319486204852427130762682953625077663988096542702510769694159118718133443152165788879172569915448195944880685381244823853243033155232927535647996763576925631125931332107203245353374717102397370357090274398757629753947338365681429348634177066456607605663099244894199784227267227372490793721711972665322000001918650660861521409034379406150195494729371096778128976062555037261316608829689443659455746263641550945657914955961314879942562089925329354893277047584316670299526813382107468107373073285304903146199207532275212184458695839076497795075243001188051202535929235694465575819039599975154052416566490340186927844335786825984303303281493419689830221918989473608581692323667593959480228077013061548891551546666841694965622430595610293618353827202982875412274259973058767532667266064714777327381317008344213100114004151508363618367243223559486583343362409113959711772671750726456643724160213990989428867310809288650252008340277051511478034059140905971390765835099272128125585177996709211397090061628821727999353693148327170640790597890878916475599697736150182052710121288984546231645133455796909537125714743402774399983921349762823186051008841199875361825573286460986211845989546259613052359639720210959951729521476490736574854819265036762984521976447067264799092120059681157252252577807036473024992980477623991103965586891520139161017005598828596925032064447042644672492877113824697586940440976490926325322615540322300717608212460012486497103923350100803321997515713811022824263661389031947759397916184236484658901932264191653225252611576658541080211794969770400326898284158431937983995281803888281971917069945129872180679545640304238377382518408706512709611538627339171910815100767009904456653353614496043021177051813008183015171496150670981591854980556227445469788232233152726258889074085810653138752947552430014831548966486622393247847845473363720642349454290461355278366445371165716614708500022110369874684384385342952067583225544978108058036044667344060028993103931865454805342214160326480047594919752003981362398010937795695789005972644933084891197805208180963004731193535276796770822426657458823546619007303032436380021083630059430885831286129462324093419557283632408387589270809384475104719465320768411981430047420804430865804002215705663839163893398730243282071802471988858195054264919822047880217534895659618568320407016823756313904729717775095658310458629388476843450887363135800503576234220736035588417239999683838263840903664189582005418406970579538875559140579614979670486824163268128119268428079875169083240385269403075381288420381526741992769572079482354875878142120942632152771671918610876976019872321813540260029734302029504236567650622415277966248057679002529366113039052315608746968404902603613225803943312491830641449046402290800865775685357886156174821577590980262602036029128593554012801320692497664359475023758010377955399497970934209431981257556916097425328913197141494649630849269520824410501876292499047967960682523317266415984266704122499541205349144225366139473231507007817142264912849482079958111021848669639808274887538533603968215471567940855767288882666503048077757597645736165283652173589930505662859704127913846096143253296920522610716569473611345764759793957651691055207221204448112680057392824856999362492674414561148852175912330350688527586028765704744072918813858619337835290108433595893374283718624878212547126862502520213848212317396444988159088788955325674729319982076727166658825319803795501080446003003066681452659534694670199568782066269145258642607191936493656907399858501693567799317466934862304573517373892718767584693450044363430852800084223942460682665130333604103974970373289279833962595640163998957194359406710332805491138220950507817326556076886701607837630027060485177011258994186184084695561825733610123222611879611433767414566164317524964870236559201620233697496847005752881030606712185581924504538828960062200548728243122707160966462443185021822667106188554575250966235778901736641671928787464993714805865550042919601078057561080094408132529392105423651892632583796115454011392806419253647631815969659935942312394267710047763628220287167498735926073262133860011925279219920687814883071726948853679047968487528998235759517242534953235117037897558357710627567168011310053013500714984077272643869739050032860790599942778133785097415404766493120753673681244658738300518505250794396266257750180605788446118978249870235658615137352231730581260861309664580832706343635749093581787288452001397345574140537035336610773660310143196446696449032181392076121873446682692873227193343679701700270062048002607791744364365580129629902764445066225331805007067630792251377259062549351518537266166851231177127426862241438329309950736661098971090396983728259109122840715027190376596456944954639962154640833574880500765607103028667735270313983130763336261982922415565768246323341375467661225634058577587489578548895532219825371769917936224227349897100978112057714488605514221410243232615254531748567669192995286351882270175926081349629765594791667604499973213225628319466322040981793404662314596683742626812333990759071498225582420646184064747530846495665580621523874962523833056805124052448548848373207154045615189406648910267397025017634369556685313262289912975503604119727231374717004095047840367065662530399737114553704144897314369576717061656565818379320836904728520224134129859277742854089219584751875308099979993945652230839942638773877554136461247253366414714481209682535464571218128522289577815660869138643913337683268439860245177253743902002325916339483134580772644628499122170961265610676128813920598528754057534766610112145603809930988764873345270789157508167073903399871284810833883344826358240957504560815006829310278481653631005705146542600126003493608038285069580098020935642398635354519163674704615621389812488043811376371228629998552983529738332961781401659086375569844909743620069079502301104180737118734375178567931490324117764426791307476772178744071219724340755546646980480468498052884699623413434546888752126532265330909918146533735696150373026233002514359311272780173765823949893666379424503401393951005394592433269768982774757852249680150488123152945404165836447397926705921156086509248001069368718312250898812267744841680788831216669474181959595934863413931464799291335789317035177785418677596674083575344634700896395853935502134969840800511333927973597648102312623202878088246637728505602908286207083126486179019745295095892081931641116704508605790572477039933498848900080181967109496505211240624094261624258594267474928902593709767150894257027206876971022628397711775138871910716553477976555945027179394623592246842209809648995703052273739266202044780237104980218975201023770526073246159814125469400890304317585325601267564555472957292617422228771381581737325371863904083645987694635954203903135439676930075660035382076234554055364054692668055754624464464867228522281361212158560956746221107718536180604135542188322645776543236861133226191678873426147155512769210910298517538015268408984785420659890069908662109629882617514203122236199392147406565444028196537608813327042131904059349022543431359935133963369445933779441146756466362229757977964897932098598485086211339985061006040988429753966164801591886841334886060107105144673787366546855469006503940104537965173565842412807122362741512746438837539308007016636791385264395835171295243905357567643830874183834456958258735267621254440111422286411477349488027168992559366031504369371227760155902894183638611004639995900053252324490041510298994045129945455689654471344018077036170303961446148430665617802490777287034972463881833118332652094407899290304671084969931720054399372313289719956730752497573960127265319075896931192513757195372719516216103759707669466861186100970879741739173469355806697664776856298197082349516739948503526204303597658307333154942698519351485896944657170474883754345083231733874665135440127836561422788282650430046001963268001546953241009241108322357870319668789155485438797353923438344475915964971388989779660256828143336548626091989609539880367917757455158788583348184502605279543637869081708342919998688114827818369078376594217430112992626651714701272920096217541212488498294984080993688591872705801822474021480517212442507473120787339759821879497520786166496020845888354234134200055597293147960338256841123895972279905476687470339022398767185136567123096235361138000766036591194534399546209684945824877742917009122498955918807400603368754434221019157847340796749632745465789141971694027338229119759727208354126469235699468830356893507085902927342602900119382005599295870127167395715474012025452024862462370106317210547802261559821586195346268618585446208413688657061519837416674035323189384884809064750160015285260618193429921829399788322835244357574078996414026316102931725121814118393092634650841949057815609960449122994284896372213813488966328074156775803176133969670100252556245593103723790762692233733709942182274143586831019190562954441285428661958677335213289488339459314056368637563066516297488213963453035662154348400099122481761902523745608662307548370866563811054499517902182250077494922380203787006405762124501122606334819253291690055421221379016661886304561816197685547467111037959439576475395267977699689431754009410142840710557881799726809450617901572381059127175500915316241410968020352058896577557479477129161283215295253839235741360963265029656144225553700920656048435688990270416489044259843040295770832609555522197427294380762252209491661737228306965924479333264038732797239045664805742369315091915711935241901193874743527775355089707465224600903311868518770741403239878995964252926907763043088221288238152799009898864488260085030621944288526118211333296486859748933289984125745069566527294495288207993795015316513494645140189116679753392734529468076350216737728317173428324792347944615362795306340219990759623896012759180102348410097395931487819325252290682130459411061587563741343520928110720095755978847433762159467592540211899679732025589611986838704503231768578258195404276218937092566916920291443045573519388124731037737460059038359980619997788071992687799327679992360081308892074411913436514340614139200720611878924746016114473434169476201951209779728656633566558120817702560946590388829296266381781996399445791059863683560459383809934145691909245336477917392359735389241120498233236227895816612390293713538270965335315319946934386585156452507519575414957780940662597858418880459272393328958280268169110994227582710130512951479156808513368191601604844896775507664268728899969753824050447324146481236934640241724717195098415457156895433553697322692263562240079643100418915153450013462796337550436672604780486734214182413919006484036629609911733193879543210663079277747015758411558644998693061610090438205267305088400136022308117496662562425057298420739851725012748852615523424297375980896640088939689549983219103586051895806760288098938912088205908735764304211051782387772129249903812107651123621957257970797616219815416960388277456128798994873160288870132813549469423246188201591726677158902803757090434096734125501239682136916813273551770245440854120124019450113811247167695672378847826461928003938714224851443336219095410099252910355457119857306464841884905030633607513489294941948655189842785690876858416640680417050114524814163872830606847223596556917394009562209661245418410533966722059381659816631483612839919530880622435841650920220141918667574751303017393625626982206584624878444913215865509753909439265543753585828278574654328763712258124417952099367491053929984668924001206653256825057239695013311193840285512890225855797226836550364066087831403898319201766383019173533449838837011734800552869981821805667366323324367825115997415678614227081195531828319520091253817555324834828916997541861532024112805426105458427722805525675843026169309583327929164565191724768189465946283895634057707668963635282392489581105530012683443977897490751849129107107123842661675565952546390092547256528235964447116049433708491913803863474969307258021729900625931273533422470382582821115179928300726446197046955021224897236939950609642543194041723643479067500977069954696027501168192903628092095442305172783792068130779140686789127860989915460675102028964525605702902447851269231996851686765782680295387863059149937126016509395933067489315433637548798441124560921021114372130638728853365586418579597837335747192418787397124655789235598069479287943739267589574524325185230086918475327413580020649722775445730657028030412543384499995757784246758728397959557334147828543640731357779525618154773394496580688658029882492250687145690436063024092558831599005614983382347684775994346693358079005081584629390668791764258043496779280848385299163299926167506222042474868537794966518823060997143842245945024972465071271725953982003315937225561626573201268525079760495892063986544359772396817172491724660195012664648857763903395115474950846855548963436743518621764428037060041589093614737527567016425299214362702677797899893002709465689906293480534565555194476591600469656667916172195386088930837369229480814092840797470951888302696553579993377474962237787764262801653059629692247003490914116466245361478278146569595564594921838473330468248500289194029902911313193632297241876749300109103807032245907464468926048193639238899643807776738287185316297620549225764409571281855755798822951555191665346965003848933614625112863215821743134398664695733214637055505289288984719482846766650101510821816032943248299238149432669267131987579361964892650089302367054707498476364287782260920303089744183319387921692988578325724921167051737118955359170033028144107639439950941455661959173751258755300271120898399276133832123122871338049673744959649149383498700158789821858875815992017035306227767983145194349339096216959601801744379620236464032893304823317402744211702889878255628439333786900388083277658919959219427737599782519365996013714632427674267917520911131024410993217100019969212528380033512743201642234448166429518939728213902388888399728273399646867010734782998985583656458231882429076650719959022996725527139280132656676317834620029109425355711731461833750746761906808670632646809912928498507740134286503790459414011117132961497478937860892878163640091456830943397394382762415672766907017194267648451544231812535148937102628182485989345274648922128384875955181273412105376662805036294143841125633946678301201452322040800644294426558575017404983566022424255410258917151287918258858275308464876133004198575603508031991538712851417993439366583258725201508153286718057508272889687092226868399530457141171067464898566820184864873621344684720889403830532778114990488563130106121190004041955524907756316588507747386112744825296175474961020823384481162705836024863067264712548274632084750742911426020361449526747046344830214929164587619976974583696746549559110503387744439279400176406395346854024543240126239543466734174703908847280004331664197729367437675726859958190556684599972129054134319598530021515959437117156118787140811719298498913297743997560318608835222771089098516274291565190044751547352292383694869712040288649663915660080180082989767524153555948161688432495388394059020888012819010615392798548913043208850422615152160278128145600628987591951947884664736160061359008593111810455558489863942657994427903133740541711685656440692602277501960530675601924572468260450557187105048218105102723494645061802582002315235192348617795331620031326001100440321726504550229634707850619753028802254328439901381375503746256284575332797097926194633841535868301505939627153556999715166738489137325652056253799203036409073127132836994327844365117737358790751761580627585895531863149343671756666851919967452969148135034245471297614423210429387339985113904048280050377641191682190427452475812756687364528743073642230257710670323002204031974874191797122340993156131015568036491515413415829895963887604753745128676515780216159513457295323121099734817522807219628318153056327084543951528958485747075195353876767823990770842879321580553522979484884671518306652786068049637789269259167869362741271461909495430285438320585570003670858762710769541798781349754708451502585804685970476305343586084508560721268913627076703331639910923909728377233415941639158665397450638087108707850257306448909131551035594577062495180783605871639998314124040847230672070011045336417897008302314355106541081853441783226880967385046634602138643890374957958531379222322195971076849385189625678279563651365945367344891558244536846883158054100061629197289975045032436392680221105618409510851349154119458064728691388265404906911229954677236156354820152787959156587304668769447132065087150108057820101177657631170483341178334674555168040186264440505291340114862440897363468347845146023172042380146903136056006460806762585940102187645464286838971371802209649768713289219297230659274950416105812135064879235185986965112841720936619467456783289435615821555921593748681813031539779931803586606298976097662115024999695964482705934973510034719078192435222229888253700766861347920896381569436229090195684238626240569909964817323492386605088037827563709451181585819307005963930507969602467765015371961832982587220954420863160086353906828896767165032762508493524867904927973169642192194103450893895591896931433735727032164317824534260018304843616940296987749980775083101860604481019635898702610585008090224550941021980950118450127299528098882099019930543555796701221335224628246998670000278338831834564646207166979642506898086036439733515860610587053897542339175141709359732284769152369504972741152353601823166364963770626609575711580202976807176373307682883296247806990809810061391443294284727246320209436131913608369667090035207517932312322647412540913915317458988158692553707699095917928787956420963610642481880914407522426106559975942446749105154300380541933794619548641104109667853446750398956871646470835730329595648906973179494859939730022646941581342266343917605800937528813238408621685696944072647336165381675005613921994611575173930834163363407240682046762147162711622805043204610834341977235385110733440963060598857678722923684485797517112055230924126146572652027302152657296939271999528415516057689125877313027451532047110546224501003795795558957327532601032652190579721545085729868782415634134039891497250308304036315751276677170940041355540256671463787989957594436692967195587799555154988323202405749488942881045775704963976785050360136029568986256855481752299564934513625252984456875476539442698328494147599819197715235296595394196068020572497026579762955655019558593788592729184394029005317414996819270942457357413581169129117773181679318320330690920325344490277590280406819133243262753262597549989306930227857018207143741911773622380824236254651866888150351027706897396237399219502170960212700512472040778174993664594884849722044467120709568644196835196809731404334352607755722309902998175481376428056412303884678321827411030865405221233056755965389494967551535638123070417527632384756806854739901534288437246930570173880159009665992179087670953602835667446499456257264375729036236883828635669521927112545634310739753477472898787111549356310655736051038740122057641951814333673246539630327227005312932268422481082679455104368020112951583883880643292494734797435438590233342315601907662280634240559979450036729602907012971065042672266989668213781664989487984748804021058973544651546831717894713728813359977766369691854529889345943167039922433450535568042832970869290861826985021108046399214166670210688844097342676688233873924691629707213003394593178188619715962957157956898905510958208586347311435074009071574715336091653460968123135546104164645254211201503003418706367502388933027269408057087723602145948817034019875207103293965590253658372301297635170126212152277796190608106201035251131409690479443823496510401055087075118979017206710275450561328965923408700300925687722308102458291459502957104556272118535748630915239622105123707572116471036990446382648918450725026955300134524831734886642578040554405760219598309462704170538399722024447793772435545218351285687716688710557021084354165258161006425979814783736508135374935932397610906177100541995642177162428154546834307302320929172673854188254889692205937726501200544464687276675495260516289542409883707635565641822695525355698946065383869550466880473469942261843421854083152140531026877683524100162843861820036197954964502685237211986452585417958671704628020022153636861998824500923858927434048164200625523148417182353957614799067378643809176155661952777074803121464092233521514602046415787582967982997482212876595898975866020168728420276469223315587990785770047684053469047817719940379912988004549160294121164501833061376717366261551867474915303243403665800728270434302433301256656246134194234682749097032311155650744025824600760475512623170660003224297208582217159220741482004595930730100652909723409987850705419516945052194100162543760240758466514521429237640354794860343101107086781974983385423164263264410651122502872786085877063967124774831839130834886331599445741618998218709947578754181202994114581982746032749936222425881882912818870971352706764770454620244707344240688541983841049023156189655604522140694370561448791240143241704267711359624286532297091339555455154284822111493739233204934196297224960195601697533876320197710332096425509167212431042646420695736255624415087589226193706897716514485174558270296183608996647928662612781321979708248602162277621038531780579222638784138312021964170787859246824150667755210688756824826370685812641912058783652430717049624697850701597106297709533068449852058590761503015747656083295934008855342884989344784446188415159736683348262451974677564670720559675112594663121927976723797545895755226963737339505693861443264826233285697110584206311783454190692419715640953669826153753999096691208048162652881927641133029875879960350511025328126167621999144009691559673652643263962041673410369111638906617287934966871732067930636410221423571091499102091892354422238724062289802718518093693652525709927190015575014306239002736927124256112013506487271915227216391442954030618777224249038040999638287159667416232893201343332690925190231931363594725549681346788507805019147740368527996391604127693538846948124750519080883045153349884299213203437897308838018573622135810271382764166680261466763911318715217828369451027806207745103397032331402925723965289384268394999789168643490648314371799070250011339110938244009010364404706752484615420124667654910796375518340232292395723471084329239972639439945746292444601214581184491202754651310176996082507799398984723939077384100178634589561459865673357074408184065396909082072163719393086097911891312646580891982200683294981848242117600629664907077732212295046996143481011137231513275768969948447791899379879312248728604933491231760747738386181697361514127204141171042941592537719866338795937753587531901462740381063282629356519197026225772994474100459811331669646109465937337570602212776395889245442795063932862699252446625949133215072962410271015745200072509198070871328154497537817417880361753706512315231115098643559075181583545201960821857097286226320500148232592288331959515048454516619246226805648936047059234093693278062844682821495161946237427073908617953710407016547739415233493021739294306384588620720862724837719084773915967709554907814786157479892418211395199962455208879294155225893481827683047535656201156074696860955715754147703776786841642122516058693443761760742476514830804554336054145734784243875476901106899193536957594223042843114437912332150955433012424695565868103753169516429709750670061353836033711996458561778306269555284057612056571028506854560198453712184181753243169347574765900405853872934258111683758257831141824180924609063764269716373110124824611099297435680106546879701544786058954017485570154031457812099230459385120092345449357322690792843592911646358342350487718645224655775417428327844632580194554737362977999110503097311112351873055045581620318469459322057311936605461601736375285176544144056826649055307184565451981163448029165586868388815979654904820574200693664331397974265706120951965091179673609535633980994166972207518246771700308876646458707360683728608734567353542545556831602041346336124032290498383978307255336568983752242647422806005636009084381783134357086892035679954831543999692222167701298214169684522533765615212044959707341267997672387970184020481990361475202981321775334734586585410434086688976094104884450644242275283262033045907009719048599072289544860732309067487012948786702905908102076131493344840920406149125461929883655199088540376156206359708720910619966926530026387759549551026033841379766737270335047439752294922941059507251604056475285889654271572432231984943976318492183041687980777286815992060684209164162416024887523965736173666794395200009945613673383456226535347987929082327772222341503243424238183085925393733163068228721582458651909258831223775571783598489656906779698235398331162646308310042492059466326833713077979358194836607636424102918863246317963970902184760441829046022175549951525921645246071532272661922733930390021775623776900188284959679441565990278103290249314042748598349338823814914586367478483790431881829056229328161958154657491035789999791970876164955167360447992448358389849714799618585260904469988547679804210381191184385836988503663606656091174138740996272747706128479662217999341347096091780778873809519395023985184527156941864665183197863742403901629035099086644187472732204868702423255704438648804061004697011073937304770909907974111785529441848411385609575239679857304323718891072288905973030005766144514405325068009360198867546292927017304750465764814047204124371555405242274186735581717482522292485367757697022662796657180115568684918490943733403503645753691230682246141995971258252903544995409695148096437953294288364684062741483740895801026284836518613979480580955447899264499361564940293794578047994297882770479631058423744090715515168335540577290471688906263336118209820680472456985370247932136274934740975538354474865741837247830073293158317253702676413444471765733254719010214159875440686323910347633618396150098478852015726028708547315949670291569602488014407420011476169161658480829260007860444721396098960598628790993698929736423975821345567093028490456768187423651811966719422391459986967900254199745576793919876901199792057448014560864321125947162689283611759557455619794882522839759348084888402878408667893761432361846802179230373492463126229227950741736941523941221987307822382369229947242221826706952100555184229764003365405633015019784963128117237277810567640205241083127537772097186588234944102796979215992656040888883267919534443644469854046232915016845685639020276512505826785820999077331428224701868476268947292335872433442090652535839360281600694411717601872063973851369903610547773190329908768975416879486336673786682696363498707208420022122358515834305118174098390469438008775569077490222884665066828544811822629608095646538342809025360337894293038754302198435085754571877680185330619502451460119855295391694291091404121731450958948741824479821233210314177591611782523535537530785140755819726373118487848028786908127055069652835447416304518520374440911742623109857707723368344528398639432723847822303977587840757309205343498495705711503189137033473314792454147586266999264840221616912521355273659536146230276398563709801415839949996016233175764009643397164450130248494318599696683374306159711181843689958697990504315304171641500402250950439355553354595090938593954856068357540974988923349501320335288449304455944408443910429846198764242107580676369692627094382813291346479570927173259776686963305331811399588436139119045002566142401441472125287138329955704701110496075348000580923236547849460084812533234782836171483400115757965767002977109982325039202747052076078049023241136816835254738810289397963136993190061116014057522164822033625441188039611311709455979933782665266730514071404743736369555752182663815603353031977756299475238408624705852382270685021128298895031681081539941166048454007647367562215116475706416079754807851341235086919385707112597468383122888702786693034652387520757901088780918159336778669724556196760127445651559010667445929239612374294749128087897994906891059393891755913731532633576638589507407634986259840930359582626801395744375335761142243443012423345914982380617633712745301247661692316985822013851787969079962952397241374823528972574975835706289599724259440235268088214344355442001634095516222390744656263483095809329719647524897186611248392407386014942179961805706617244768301285378480893253972300875299190479186227204683678665195739576594946896089027168125382595234744794832806897210171807789916723406942497001318391002490983351937055639132192973457197300442173527849974698540069528558366120070025631087285082377541468626405002800169017917806249830156087717087598323292033475845380355193784172005831377839677433359387270412887656619058225488245064075232776769744964767180673868067030858490172008598674863620146773626198210711461624375311981251036874850748497672880422702416831463039128598507537014642472100670646450767800124987642196856564141728113969104321224567009568725511718902681231497721440333953473834017826573570517967484953338736529369852042580028887627839591308784624131153506946152227140050515463491100051401809253390322582191136812755537247394429882162249918489193020907204197946372757301497726348332351082599476099839688345254340325015976936363470191309702683970654164469502519575835657844830373706259988859933852664462201300190941922893973039259236291442552069166563979023539631032850694034360792531314322269152694086419918933399016897660523907991206698426952486248839287608539995897213426799290462894551278501018127778765075720300902219685100243780047168704007512046039198166668126952860960549719366263387861354049487075625408684165059678782696017032685895100031906024891148332960195381232110223246685794134282567446067395472045737091976913675285484651472431859407171625148884611295802363344159872900424410982525392915864951112573719576302511027367076401549053002465467584463004915924757934413448622039376890933892295631839502800075190667708754878111981060003320789570713662381804608559233447522304747557086628053150236039183964788552773282289072392788064492615671162794180449001007722943234625205903528899143728908974650548093037488837315484882561020833277497975783433537736775569632956242813190746408516816471964091175576410730188949608512514001319995106966611971375480863436041250915907163848621172116599131665708045386876062263783796121572006489296443311201390441468871895559596627340415550315642013231499074069429548404345484199921297506445231310849171089792094136048475987667825691974153360551876098479958401072069478172606169930632289268683029835201205935494862908308987887009242312891955420711656570936243494637737113129282496249771372734058449087752262183780199805080513017202871650080582115049438696455222539168117094205418862726461963031416075156447096604466453879669862721886016378583597907474996526532469059443675967776271161182563603806508082580598447152367814042116944215128699826712221297650769180819746895969653682524440392322067770945487091613450606399592675140717213136309026487755188578835180656426826714197770610808083079838072975457021693933490176790764915882150703026690973771131380410544139139500426488234676652903117251410294488331360761235853850517862965221275150415270530571899475917862424054169705119777640209262541872693238620872738110023927820882122646144349297642923311159354799388801112793287419879168793864734231502087076947080388274527552651170690432140983134348235267656547681465499805914952316556528546189757738549306465560622504596068511117103440076987003302469123111632445545061917346836494028720346539396323074369589831770783245494081313215629536926908627949861571002829642944507791889100919574039489019827010357195945510412232716312184700769020824056629371747188570126116792311971850440963910014133927126987778292389540211705081691214436582195892139341258184146839903660156642956532441880944936359135853750602135065197631220084613299706286768750750838444021393034226537802665089412724298059104414607498012673128047475086993519019836543371546909513757707493602074339115651939314046393827619398283708401709789931651529606317397831428617384668839646977596330145204423268919482184420557433489117631863802036317399562614529485423319485554738251471450741420163099274969824791531513671899067031235152397776150491509178103791216538574644339478387389139585313423067698074452422675041746651106408720530031544057214287553821758674270657171594651991761158773789440629157415620970641268298504738395734414034373313571061983247404335467189949442676459185962058923898894006946365661883228455518310968554005092852394295366081182547250332055143239541177620462339436333658469622204076225141704302624644121634050372360160784398410169662197788944065498636716919978375440578581135143853468889457503374609027164852663053969476152988303030650430322646880879632315835452983696175117161041555157418182456816729392639778188839164370639618986298666184347205494503020507650846693359088986111379290065899025861885493427989935674495507867882345179866032576072705869454618025621989108722146214922330567946925822636912353738277170366902592615734335255579378971298116263259129238661364091478856036687657802993549468951182717277536765392852110160188436208014674114272611106738262674285550721747377724032593830038363395284278036067056926962250532768823189322427245010499454543966267832614793123228652049969936283228083700831888298868475890269817149290238390365742871230835689492722947241390039720009901133623287147035344510533301686634468893636140968889227931603056452944792822626725790229703308969651974356443676474733958512777294791360643307659277215283696723071937512711571385557740425886103002554594982526273902844685873114290417264158025338285966539856096686932846352909240270030030899334850954868458199230225005959870363731466292019178716077372053053537628214551442536242284856960974112092965184202051823565217981094447283963793006099127861063385360192820288418476893043754727995054101685346314899787592217981595402999237525255558716768475372638030165635227997527931043376094971415198797640885440520288633376886513004789885627687430864574094141415337329704390872439974365203064398540499900849539111934300122942344625202871011651609478402773573712765633754230429136210261869178826881296648272574725841196266543449333843723072101367844580562525819149178243256156743864235571575644964588367316363048042133151175006637605060105226251113793130569342188896277866815834199184718966311575205882879398390192052650867772543631078848388108777123320001837287131093906186847489813607999297293423609686518084236133381077915737835572692642963415861327124833757900881571254757251328972646237407985034350274843877687970487107629689663633083464608016135638428671229400528393875462952289915423021563379286345880638256276902195662347274147149054787829034934589045787184498373354696899818188688466151319868890679493241232762358028986732932994925124952968325436393570896155355803586214605025086301555457838413469478783314241742458385028608596929417727625077141708146140228511650499656081096779179800768053746396409376371892376733135578138508618714256146938685734194919994441801916956983201991874696913667048334615939944384193538722115972661230565836377766915974004602964712481062339326800380572069041338209080227147665528798776556573824019869997857476383955511165954186267733224875185646548117777948593259309440145453007113171296518138392819241799093925631981791673698564165644732749185504841534239781064444117054317563024301795423190530383403114100814991801853495609560571569169784820158819583682421523952599885711349549949775375513859435931458691427604421701787894370002459289140629874765383865905544492334459364762777874735290117324254400453287918101228307080671425586972257161252585997433083097187244210888943772239481759651270884875247133869674463593998166324283198672018068828588587473791154789546917872206412161949295664999606956312989166156754493403405234857363214722971889330948409641457853337798983179430275426724264969306426878003336598684894906188479570815163952030411294668200566650934159900094539635537378066225006489208393387134661088602689785257867236540600427488551691589880981665499851877097262086043422351848995251695290803977986037905047784310310973770132744278396712229129367589822873645490682062343853393272280883372328025786959209822017282163736147513399544390815836245389492905109336094723537817829254827876294769178561309583112727099083846298311178320491217444894532791315308488838902276828244914541551964818001931688027954627587537409468224507818106416257953741562037596493152284713492346326953823524346310307357127968373852200033019063683458062716605335815560875707942657014283925980734697805132355863125908947400332002320813180968370418093218872806232031259803748454785801741392384012797093589779564549018226846090177052075843517518422802644741167988993461282957586889939377303457721744004649714664457857696127573509064707840738914576846577418663458736751052847926807654654360289187313238291709400587360355554725320165190910015443885776016220162663021600003085817490922169117099260791281176903445779660747948935410485644394371756405103873178967418877919296041558270403595406878502522588326343649792767039389893597482157418170894945647257224670494892564834900634094135069542047521595756131552189395325469017432672967875889849400884329740966577782685138322951479748077366054519934009745240061026210561121607683695105364632545021352232211747018181538576894894586552350378286027530296978616898846838607709309026146147080057843456591960654919392798055643478094377723524169118241792389156419917756616661672904487233880843915533158867797980845249265543431001475838914516630442779381535506439687011222767581452410351918400216670131674657525401529830039089393288419587224588696833228364129024254012881014417609709284941349813511111569662353042800844471581912884408336620931921042349322495110468535110306663950563717522831138131552086338641813078779920427060009970215929066642266762265988691296180791172411235187780457155200907867997329316428377855473725409157170680954149087467513895549425061442668770735876523680669201186702126144943961538352315861935424593378182429482616652565663665016045009857239440239603847378188592566644378732644763495850744678293755451132422907189572876645758853368384100999253595315595252739629875338539877803429614383005295408852909381941247363840062911395107493500083923103392456078508112017524121376976516754678547106571887096804367835342278027991990339061999519557050579029765853490127088471436324758896770498476640775859788769393431033566815520663193697015273492004445875455893425020058289855093145093299627968195239165424673407854113270293314484941947897549709037958234220876318022674150833524765037201333997607001221298379603002663285758343957734228770322752958983577733220523076296352956731596542893881674957987437241295732433864578276227542316020730273581767378528006799169974998990265821251675161128005496674972909558931024000597482363555074284501456736966132322492322531163172149932528611392439524987891460310261888964561033941148127124064042980045261999171068656061785584882199211175022862346062825607531271286850574285102369133644534148574434136431376050868955614296447345671961405898545697482848860783527787295628091258670970064684835060210306850516115616258681369332475934810278645308682840827575908720461391197976383569645198831829497847862809328541557462676119554747934108775962286266182279347623698624401421200172112920507270763517667527898877993252091089783228592209828275073708474917825015643043538729655900186851712055519460254414221604938232637907211233228611942352025941094243891471071817944283286520573190285597051712213470603555185276768544937758215015162525177225745195545804769215149141767286161184337233637047120169576679838246590193966660861311080227950079376544675028003342464201148423943472730489007936329943334411425668949690856065215156976342560476349527190790470956952570359811791481556885347330441872728985900483017519758812807873058622964858149952091868700409088999055136350183525896578223299714177155406663487608555161363801376606477000540902737706921371358122472296925780302383148569043784211116470238201950220814196242075261161799057814068635069998250562411892058860983873588729517690155461837029122329953588788441433183351431574769799571326458452321403294672954245077347766479085149700916338106621710466777004162632590491434516853716619317492736109688468010411567636404367056724792655251468060074336647333316950521309719421441915139148439640026610424967733027031162955522180446019517507056472664744782153271142655393754536845203851555384144566809031228193876633174147174281092134272899336110922124776354390094544208599733256644954756616837263106422382572993054738910431520935677262225660356150242372442108786437653778207015194425249604778312197463632378734446673984112323071603189081097251596070736148646339203610344557692103586410311872633308907773915902148462151786457255681686127326846815236020081226306471598029928236071072577733642094413488071226302648391629128878988140250851264634697139728821791909026695291723873657993601353117328620914540639104188935137110987053541561902462089460462172583920400326510253346699458640413833934382651778260377824399115593952666476508150303945470866398876706347540386067189657068986154515007554927965155766568504315245947325954975480446340113918935223277644723857946919799372220000729874938017710184475635139411564466495384383980123902027918388979111144808308769310286523732477803086241454113730992031237258231957043463172296786404702353287880106798293180699690305057811439663410438012602496018972335873806145639885562146222886737750487464748920889519635082833304371823195311109702337602630194147735889920592380296943692330230234140126109241409573846044709263133565493154775566485956475854407273260019823934488150039845605982143280623844213715040508186698476547330916675456023600063535473915458080052007664479034509428707968231267022945078288076647107733588768853238534049359321882495475840141538403865197727895338437944944117936826310187680775220544939560828017532088601128014128142224328702414139055218613441864404529032250135145294575267562785625235566689201631847466487616319852903484239927272101651223416842845634608746267272923453734092534866588369207046307759646036393173597332508712990999654416401257981042596975260710995523097507147549364151706563130156121930146766722636144581914572184767188604853623845101541542634378655430337351228911508837029735249593977551306447963217982363052820606000884468511160135592336110718685532382654272611083671493360138953388933068320040941180972523058120757341743632274678750057215689717210213230742783355086091520596978043343014681611569405590657156381994780463258996738425846694301198170453783690639958531892213312635793368578762390935198989441435955759928956750992027462613092136722490207586496019057054312674877094083506939549116900858958607214895364484090183401386880651724143071551855662568894651447470013163927640388508750416441634499179508096122842742408950326471158314928693222226632657414345182878790417037131092550596760735026909231792275913962143234370638084088820071652553101712458394411937796992639643282224618910298814647423058465062144833173728725654095660835606448370121994301924782846713874002060709621454993365841360235706249763540938196035805158847585461495898756882357586303704004384808799496773370241508275952203566250310214353531065697710444028972271450350333852475338729689167555194871416387360276259618242037288743560217786626440403913431069006193716101256508818561345253533943791337376776206907664518883672940178914351248275567421586494388606316572840825607138709470171717130731415225398617101086415844129002212863478280220010328885887246483230550941779509621379297340635023939492449152329631856338641085399473259019035437351073118482288433316629439644413442513205406408746393303715392696788557736513675617992909440016879087271668970959088276791087291314438760535626485779971114358991420897931973727537674161415840666846611507844491082773485737377119044437872597045618943851872530164369419062998911198592172453054419882029048818368097653034483852158112418584119605216715017202923294336280090147950032259484823868835077453296085783545311206168638993723553194786917134321731614292209217242161095332230988675881751939281986848143881436780414718187409850825881354991672587695601834862653053421165316834083260006106417679903267351527261254064590736981999042044100244866891990850333403796868249004565991298378065222991862074116326842415514342349595702527807565176199348993241424561674674980762531041289412175660895372874548752540789601397412074659777383306862662323327977636003271098390802986850148003684972647694718123988312362297235982062053037763278993045761546749506190834612329529749123107457118161987147491179369131340508601955851677566201098832001147207685676036251990579295540383445227661690126005413646182409828039128247577476646342799936777262988714127916753825820793190034220614134748113281974142482481551037634161584941474388416205786295140750501583896476098095806710734795747005753227498376218456655049657354731453964700726549579557832956928367879798371800514679799618732449327735507548957010472758344323046615063176712300879557671890872517535766217904668380240229656191464617914451249912305253772056510888359007764127626652304424745432964580710005694073371622159417943355786268699787943138869837927212200355593134035366742294193595277963577214363372371616471613310896552126621130980517603582709999543283481459502936773314928722184237446054222641554952350284662500723900055156839242897934994369671774170791076272962107433031160416349010219780263166189871615006838958628608038278437411100238936337301735026386210940974951165522860205540186710195812442487938708855541069188825705858728835644653347697280900440894014916340734354501454141950306518012435514859802473802809639837346765551596881339437094643604779514833739783984929889044393665755404935562112217049053975104696793847853415504587039091726693257422141805758633596497471334110713760025414514710577409818861203453054525897162900296655768521537782671673764245441486867923718583545601376830299722823384509630408190792339324357175646848724961573707420281031700935217313833230685531081495690910213202803924418314779366927895183619553068478430935089240781381742131643115116165496123340350777146755525272442128589789795527033013904857131965023311677251506672323928939840730823808709151691382680886664657332828624239878911364898899553925302133875508013126573899989629821615056828374684612017737119639668596209867854694228151628000750334405443321520642102300307127617922349056368701161160288073159519568069635305656926136850506636654288767819191347010869162759565725991450845029183578024915263515191461491085168264412953827136711612824121450009384636568141784309498454231637565060509516688120390841442691468727958719583943043371755911119784802839609079565149599590271365710498969359210820903486439536550623001910734268416751587622191960828130253440794552684362476857578533041088131858199472057652445052396472250331671621329654508911146059761786412055115253704131186427075402451231641151930766305444236334046247317914748052004016400213803252304396258360757730413517007632181975992258951540459476425728593476932369013759419265144471769653032313448503110851914026522790659186533016999115242652057176274932538947017565811386960960550313036851858262443779657370798222897313426515182193864431151723720761553993710699257575745227973528961827784032327514437368518972755234827129351401136208073960496090078893114531022730794179297961092230748684765899886669779378079954368220297964766557242108920650797044995142685993016690984062231176182568988772831006231280580505766854667493413782446130830874861006130466422696071328222479604995411506661696442057195858678771886909389636480192468314503479963680329556180951678168558353480020970288103703043665985289881106191583595049748442547160060215252332323829428241326323284231954752278279572088212786670902849549980790087417602648593625753930176033813040341642204528224656563322408461521003347740948717234883621142595012286087654174201687379877383264260541069494249807284211616278982127321422845146709980587841410818093395145286919747359472690259999816674321624987786295485871234744986268286930692476878398144224250236067458915388424823026379750507531264442276450533414360312904730218312257808409927475757477250587997240721672399614252117237718829542203823649633399758313394232333987895694445043355601066823927171075425044474535823408929088671172795272518006669988700230280239057796731840515303186749748215788411315597836149618347569500127260698338738550564641520002362000023280081359923190080098827571924519911177785039618987576200310302461428359139437628748479787882101602617967384026371896679143505500696909172906277888537476829708838922055597336022287162542759808149447751303192101730636067394504740407670655145318007826840612506545687659998415988266192980432368904264145207228630283294808196186137654625151281315754851681065316389877226053413345112686455950231771287632954859050256746126341420357902442037480286524467356212107367371490382609471318051149790048401578783555492589875220032677529540545055498465207720253483292274429963219011600328185631395963468635763791072301590378336234912476373452952479479257968860626567961547755732603230392436749883702812396571358272576869121473660808708818523570484403833274021405086188802405097963293118614541490458582877897622054206245617998335753845196817032257211327161114714149883522577070748336755539962151223013596992798362821895683311037765130599993689216438403802543202456270921516703336200668420949561628824933485065791087388321289116699263991827874796646539800101733945654625698375052368487612565233267252471615513181241090062191358636266161856532173477188059944984390728028278598515574190665063041415028210375281398941313290135564261385320236062957629240149303584187247247834215272935015924442221538124710704073677126478679731955511464352443725975571365556949891699157369226413614547011317841395348715892097505012569076712136496915518566638979897683227017855578375017803438237379652253398448627696798356218634653859176767698077214707947071556282535349006883474693786506028597099131074929967285604668798402391741729404710121047564883633148456049758645144345150402255412793310228365670843273654548663652722591380394996271657914783830686813855558029137181714868736380700646630820130773290104797781051002592134963327027752567281860782736354394610228435458336164426864088591416881105832091813036230042047575500094267567126776121301367307163993179775309296941768257810203670829929824409403724100491133472774711602540066156446453674864048858972967836068824565827638732059747494368821402199690540315990904817751495652877042136814764277355140246663909946426689091395257742708544933882672387132516573105362200439207513701491460515909170915059855817411817510400805105749724789728497683749609909397180285077594022028573465670367713127585392791342145146887478987410745349109065163924072434723767316153705845627243762117390251171953976932725098524932336767601836645971426878358738490229092424284565138490500741951501009828741911257183973878702776583243445560501207202398987617952683024154127764207713137586422519578687967471257878588041717156044526639848318943659412732022865899072511518766193405612816129708360311024104710955188379479911727857323393548575857789852222202071179273144448084660839014930343880860698588855479548359708373704251874342066264276402043434654849988296063663291095788714125606077294256489968787323988045154876772159394639585182677539766847765839008235720932934248121813084866750993247634016943390293511098761882890944534299351218977183521079945610178091107827871017734586756350036297918199743408455751260401863469193340326000960478485668956635300956801988025527498423772618816172586507365807750495488524617108682165610336485016555033673501146554264529698710764883104488093002919937136311731351056602478533073054358783517615754266803399326334547588534659967005336492607093384401318601748041446349791102620482163308246440873775045632012436798774739587790085497469001966405084552491641241991959700866067425602327871622112094499616926020758665900674358922796693586640113925839107390705901888592248393802316618196218269175457631295203200287188419046825105286009881472517179088874353908454547804527755769722576545864311972022310706600748112869872619699340649931211702291590757372297188766531457481145948335695585015519975037441610310880458815656030516820433691442627673651546263654089245615911806155734260297401821191849902624790609721667880065053530519950636565846551893937207917182371852241810039955653985433431325844102551192852251628961816001245592906815571947793596989086562918233161687377088572912153787142950383538342431145204355801220346355113472369721944875119697863680051109697764352330576966726558234923820204716857252472402236287408049232247198525668712640095644036685637949101367483234677371382758505052624642740692679925025350935880937062018617251937330600827562811080139635130138669302774334651400347536533883018550655062174581573603081488237131437863701465830023765021135854506242954534074674545963399634681726402152280659154312186501597136491413085323601931912741663923781306621066995957438930369115415610337979655593430012824115876775125009046077196567745839268766170389388878355468316273464338235923464934925974861846207630528031470057991250931480702654361931058801782153538183587581380100639073041787873515948750247357122072116229215642205598667593842581803928565656480668436190223079745864503181207332573326730655332312878119565043014051372938371097894988283194771575782194682199562637369508743499598590601354146284260807015630396759057388769560891528651294153808518053010522720687287977216556147375521906655375398738988035180260252383608202900742599383787145704727655448906936342176261930308184639536129181763501564696429379974365216856073229007101432933866557145551412233535676898809129200392496451848067726749888024059289335006727349619569994898968692744179958803905292350260448170355960403174621140343004017489808122921009522564505683480283341134026963838488757187270509498996835001686116401651731277183329495317165669903077692165993540976784679720112246502614693487710504689324820560235059927278166620785683933128896912198049756028627909472891565799957529658981630412356974453293299624417890130914101104958292832082366765440394849140262790550556055846092517190475268096311101862514851535247191266562512136528733143447432894436282396606612160198405446928139888700411696469545309516027358539551183548165034666112072173334411426192170534183396774687625270950236926805615264599779815248684520915642867329327336532239019609956038931851084175129555107553967560840634188423643609145157978025921067516609069802755447528431090701547204407316246371957379356330900736069241328422510578436223834586031781117531915394151279458518002346674806384875432741415361280063496359180257197533567733177704766878168852565878187474990246400781634481532299766257612435540374194833359516742802332044649914165540350060289647969843134210684074658981295362702650019435391245700505228363245778726084765323751372818488265318884614843971666666296083467970581432290280996796589431699905499622564259819749898198264204372475375912591047819725128119668635640408619942028099980182049039464441168884665313155567302166532409271244586810092047035006500688118380216605845077828302936015561947035521117011317512589378787170055574108750683642587199963611713529984022963395509400252038626581011154595444357692598347855182046585203443877207585550754174451233379368754459390620914083786533556086117650221958072418652850683497918430195294185802472855975078115722002215616654324757748500718413955760768473691603229015538598275156811828885514500932837994506581702275701082610709772646378308381604950706782147449103764036247644062524213032490480384867499277427910717751999205381582110874466461876224660027055821857744600124000609886573708865493688500225747949158186766731762175462588843022011504288926919003473496733786483992415862985894865240619727522797930638913582421384515605235731314964018869837016517998522155418957065034379210223071097412499010641876010393551728729666561487123953153446690882913199301564723239433470248225033276901008531082020125585187200880579223884333153398633674463053806024535882819389138613807594315028014910638391286909779720169401781715363397092248916851091036426965353533900835589027371233555489853218889805726845644672832329953170010189153647897339941371269716812333756454502346626520481881023226960244859084542628227037757555674526496057302480585549112734806897496105056787843749434807031321230671682779442911988920007019786581786649358940443750379535646254396885690891494997511709335216817112225724361752132581290559680229258633363520692757586454159260150501257566545782982063766343592904765786434444494166770769334768229733375130368161853589785824638203620437132513320147306605333258713355572266676058763128572021256136221920936287358760267378262978917123271246124428407712332907717369098375194657857012240713377840231906046374698458523492040191016803159613380287939948785793418797802479931123192989920932563142322827027260178617072327523596521866171974986051154344927207268081544200258935735403722514909642099993130080964567274820198441658456148060959473376293507056743144141912478442292239632269679453515616010736653621264129776465112153407817089986936530921000570603812912858695811886729954878502680226608314054269569615100173914425523394604327040931613554863744208762705713043638855263142093853032975926031684213620267847555797085720582584489397879633494457982211766086435534400320596616666768664075637598483492750030573750615676781506133734543321922201994442462867306904700025014468892368658007885589079996143673252638411911044059251429266602879885154503784705322241702487070583976957381610559304641004062019879811398267885471815664442535025999732124822735325512313510246240515726255478846544880549141441522533517767197531260602465470479235732753165776211096850182668388991769562377028262690517331646295343884216671986096139359328976501472616388835646501511488957995209451305676204472871158539519605582832327102858348316790338798791309745863795889337153284203992577568537849990579933008426851344665492599649262663922358749868483919457177535101365460925012895417015239760578208445256065934723398370772583293385947042313841928805466446280466268240233227884975743080114973577504740845719408173242653444825967601278864578999525984910971509614064635073658003498116390736157231417609138974802777578985055470664777494097936396769358356080876730065472253404824149081082433456063638521882288597702386861870283103477220813435514694330111101435799398226575215491635916380356147360558248622425996205086666343797918512206644417654849622366383848775577711653121455412120621363283304584791336214348881027566384125162076300214161176226709728869722030052511472364624307763284978532927603907625661982837724358717195556677249292428153808926176775001960339370432023027932008904138262995672055942920683398954662211955188751378597480198728791081746067660708749964914407354886175907217607793188442683314904890752347852270189226057230673790003079536649104001858111669947229670235873597915075176126471727052505446024231910362759068587166212466776882940936486973915970219685227809112221315548850796263484425326491853004119313268447555171505457876932339174161552402655501595000879240148499629990146826795657199948545114716169951174804486250168982917760574817008908546812581202892634064612125488118689250839156471873031468057256326492359245115885314741752654267610351896841025348171560601181767524509330317586946044604399444543809713509867081370265703387762659877172873651513882748518488286415067204692974875188416302457997565314301718029359852125913492589484267502828010681453681868030949114449485999156676809162401309172372332062328706244914245682883499590676606092563091365542866348672844328559472982214059346446761428150529762102357286755310627481766226669608203790778577541663761117106806039319696448186839202989251750616403341234356574257879783458410526003953902504832286485099366283157454730853769835827188039070844839189722558524096097622546878300721606800809652457696706924328420127255302460350653347449570743993527992647967648139576375533418334795124372738771106318338187022226115360735570546322736583222931111074676738879094009486112564370563272842790269608132170864469093991583132931248132769529680289591866703614177577493877071660648813894146866663013978283853660004637077351300057106683926364402463220280059910747217097895530770567063833050275599539224026019372375247078546825018006055233306038850100789540694226591852652497403224906212007490208351575861754304475761795629186663987438033333703500840611829993701814529571411600121831829526797264055719583911189979657212682231220666456383768818537493416138861306371639731378373633004770940564834373260979851298264112623833280721671196374178352496489047789207440227585527210617699969182572871970420653715956012970219954149738726893840618865988609218233879159661714724495838889808520793668013599289869654351232772271720542618820079929623445343568996468690283711944488126959294291839427980552642497122326226322894288717375649457487456008149537858592652179817628065334753940966541695134886014097827532600935086979911656439786098988216238869092136506369546903128838123005200342172539537299268511381417153535248520702907451281835001935726592566249806877499555359887487900541730391321778299781629059171539493194906882028384382037867274571088431113251085560106147355381342236810555697849975592533678911832855937987344083488912925844032931444453770929078205810857356320272220187636817200578740504644160583553240664436546988821688704806236344601921321221777136428528983080311319061400808255231311526876734008601346811999737379158323953257639989696006640666880150746406139534464785954166266419465477652833901910871786297630352600750270367714677241911553280608368759131550530171343365423269636301255932266105151872271422786831110414899104324517851367498854149556844547350070054915320972320817084808480267753641341281291331765057756724865436755673041058888847451934466733697267945762148129557290605057019716103965358419069208911000909407507139251644821827508215775403343585948259499037135861904122079232386489762998644982767090345309540337620684298498559392686106265200332748220472266648681012792770459232295334084363942522611236618669939327290833158948628496034472143732765194674719504063465045585549557158191247853100661057673588107057461015853717132912160473620138110299083425546207693307107146144241411884595964944332181659137638094297499801361954295382694037578323354571423311483569877767286830218414687860581273155570005370256389886817609771743476113236623079505119795661161147825684488115220505916965944225792534248897994006390240993075291817688717243765283277875056005816682248267637931576994432206733427772320813861334532524896032087046345152724419236743449643373513334102002567279558798815893479757175477693616478507911856437244903757250018685994109302028998829004418646047995496112973054048136467214627936955918066854706176193894739106143732874433709375699996911667216336251868051931448279937296363098976757784507219705380973944963454756769593629291583792763500985706596698251170661108889667338553529091903261910562531026228078349400228968926557993914133732348808587662179810020359077354143372695518382362054133571495367882758037503261850471790669940054519681011914423833061162268369566932955179151815842568613285062001291058459927218850893185834643987954649762881964920650926798997045159586185126916528528852911902087416644587034360390235854423956811175820576603829583211321927104560869281943990146408906256959544674162279879195104697730120145768832355608342519253239817846564001180261586086960935802088157852480589260489201004074495768373303367122655596972288230857676578421460269247426791199694133865308564600232895019555107631928314557571015801308641439508238729637044805282434889701506031171064494758056807602198516471227509204424969559167448539906107942307630094038361547404738886297695405143703855260620614237869389347914219667770853163534068034832201025644566407289148451634708191728399165785648702719147144925133562665105853071644733870005901792472871796261152976751814688411917058604099491169901673926397800924306083561011581500982292452711229255294421080791605758090361637632230393236065468172837510651365107934852308127657444114786196494703695871341415525278202862169283221269751615139629853346321882077931703056684046935530216379334955842960479334199325036735432706335568524279063024859737090670667884752332548553016428869116327944186870810029685584583533664996443497770225275502468845090890890215222368883509825332840746195197625821550919874458104620842283189807275991610644370117136624481183830535219079572041064032306272026823336902466803048621661017071006504320484245876623348914621379340330104349478402501308536063405599229107390148491570268725767240710334087046164332120167483662322161298994220228701118819242421055462003613623034980374210050226930324883340375714566751820227269355257907315725762014561045950352093485738266160703924612029704990507676881605924940755285376192485427168878703928739426961451946764227279641208422236725991161387925834386790732968506773354822245800530842546929606868363436942509009775758096026719248782290530937043712128076470340265324209312699462004624494537109399143507530880287036023313693931464369644136844134262251714128339766762216506301386143985427612278891262979923904118982960953925410306962267421091079600928466541675413003097498355188478018190322895616839677665199268685379204009400741076087648781263367770574150705867693438063980094120801704677576869964632341825520389766425317931656645987470834967574766114735690781368269786489429366924762882150514911975034716872228737896171955951529215543896145539195770539055180351729981447093510641680564076996877980998068781599770776677090993174601884103996683800987483857669769959548153023608702816873405828009023486276430936343289443872607520988453439157066868538309766355244369222673093217147373832710211057935854555657042497561055067131842747444170683818659590824464826723258787972121508337684712710699958447390482835625488819478185017106520286479448378935431730795046356338214241438476245535075186930875897254005615564666428495999522378369088670083668570790785701090219208006824652718543534437878402790076884801530719265996846521920034023692498064241712344125410145663003892241387230769872824175402751189866662266087242666522740608081332509934922048679727107958091912478630390217668646392038352228502368358091001070335120647882780636524173674408931400091811477437168098998462021156171349625241094694921740611311165427837789169086347983425916538946129727256294929711003656683134889324182050787386709034297372493282622394906737661680133097367778188142135291020144357781532925515690970348084690807577325469082110623221389756392852726191505542554925708416993296461447222503807794568294847220612191380087095829742623748784897810167327864030744029729156187822585726804208130273595710460864780524721105374926203653487507062725144152077089850284862396323865454311821649754206236466734166395514466991308482947048212229896417147416622829993578727166300952012456155059873540863376039357962609535011282712815046182165953219211689104597576776631670320669612333823765616673043991541033535063751540102641606685211350984608186133976563085190821993434208060972017728545500466184813908612099420365968396469002296195200313424013529595994310557770515621090234529507457299049015828570586290445271524702594499842589921198326149683098472825823574194838751627301763805908833392587666470002785897869613321889786566572959028332569933661599151759366297087860627419664865594988474625706048795910020283552670999178799472077778927827204249934198905504180272456149825928238569268813026389124137645012932827238003689821008399286640890708291073323519716539789148029558211310385521423647185692866045862995065361414985854808693663742458489352224473811879569471063846688982441927849463206592400361483434237534999757301956918027212208254838783856238000222476093663940519165684765335284438104455741381392473670728511259241598468428534308625574926753611309685080528748549700003015903663897064158180848877871043081244361576039062703112465517009824988350138711686738192120530435879592788609695847794428458553326088277705864551673800767496369914352562734191122844189701716315514720426262100135329906685119359799344811680188660387760035335587583535837968656173909073665163391875601350486561924868733030632159514214550455432113647204168004509952469600179457060515446989606967299764705085880796769058708224928119717793479784474431548935159272584908418669356256271274666206577435674684556281752272193915253552941382309582241197239753394517702848957329434853479087249972073264330716477225461730578967545838762128266750715110030180982194547483790527357484735201752402387520297682548842112423817321451875999539759539877669498339317451257837966113138273186000505637507868499261718439293039993029073771382672762752881157935344468783413210214877407559544487482183178825273230825385265829294596477669541201759883923284195609140332696996833266032137987722356061715783744272052147829088585918795858797822480640380172246212255357608739524398382498936959474166211439115261481013778945413347851863583489568081872650558702456108071651041785854761862367014911835474082259011839533877409338988157100064969970104528656296635960529380855689134493257709153047850722284284357156226344679807680486588562103118142762725910146713129337553503479951724135502033489587580594837760287754791771297133060393650424816348980525278785591393072963088959154868356537863538292302799598239794651564024235582657551766051794938887420772737127214928228196445016638419345175481658227203606253644098643612732121849436386016664566198246166193214222638676508005499124365366297644182734348181650968629249282609868487371264663227371631295026664788421913942574209442299668792230112874497441757273913918226651744291185468703060546960204372359493433920802882614066061516550309570497532189161752893043405656458222501232908651783359430309307373305017018334455307421670599784308949624382633372332592376682079319485743671949279859889042103586367676241765423838368206243310088519876039010488016272953661587848202338335505619623117936063944815497470606055301171706642850941674333592516785197090844166579846844503522079037919575384246801564757459447898107748309548249517812516567514391768403995986845047834988119426091498128600416553925040129518443033791406786725338877937347796442379734432979409727799040529020863390549020956978304342334336249400372829821108847780017383864496801929535202690988915859853201290219108684914275951336478438493918877203735394411164873324719682096904024683042751783457341462651850729676969065523289462531879498971271731911692197119750695851674890647864562251709870168871268894672243719370813671544621279510834276205871908619130307297442447269592991801735091084292608096690537976455122401209236049016385904591098131862442377341794220956660730720631663185975688415340387970127663501374551013522934297277510682087552634048896831968257853597310131320228485240993226087365385706277808197219773507065833386987978756779999411273835153490911637339115552235059689786269544879738634014284043398591604779737036075177154338228754728439235905469448190291662870541509561614630470260628156756094647093281946492837074364346646495400206081047446933063834850701272118146184497259321655257578477526784598673678003333063752192405333914663232413041052410624794993124156378772108792176330280997606924043768246120558579927249378204855038182276438951513858115178339686512716676514583010956241101677252934089541077793594734722159785772867121925292364782903461251379294237146623173731623743052604046862685413474786715746982359349156408882321971735360378398574401953959318153328191950732236203879641475832480906304665145127033037253956617755654843583691877240399330189816149077535787407317793406031589630498340804810278593180521567707541414213213216279763353077809122932546973082520218207246302509710528485838648472739948929975370399582777770617362130125147970775300156216778951232579424608656578289114664769468498894393445389998354952193343427106056812330662627815903025203240794303582503031675337663722599374752900268533355787077558582864066371037643734411127536948104627844644499465801654659515751253912784211956820589533288856009221732140584737786214796633895308387363253172087165020029544674282767402029468050409102605082825013857707494628951284422646643871220584697418858142625386827759382819566409754183167384915696277406020772611357534041372379166128467931722272751073200683298447163161239341696528131272467154526020276775018082641528015028190181331389139480581984087828105453302918455213783650487695196479599843968712726304858002669186421471491111946261660512467319324095533755011208331673265928494187513311740308616649813106688796160578732496518454064549496778221994942728626274544387468084208042740642692549364045996856196333555229971320045796841641212408740571065272925443343345996914817196796126995448598386477245454505361968871098630594861061392299893525642663124562991391872170384716328286492653906859893907975597651826963725803162245760018840702321786125411372822901790880318779303411391452134766049286660582999679504318443728639338955859103350556613527346614002026459454174189747847071720654417574592626852893660804254736127056582476558895944168767491839334706752730498734199580840722854397709140537546397058096889042057105825841853064578035641947508470851793961701517243339442346842977106883829629337744034882508170490536502540683957040360847948059077923608890343954069739927601646134731492316854085615040741675519341106067807072780046666587879358775575673733996927356409191900313119766699028402192992577667188487243427002253484726440764288482824542249293456134174694206150316073773080877853581299057562898120365660502665240369415602925453478304949340906965346580468573639221108906231603763393097394987121930270122741038240077835238669026111078256162335999364174193821750936686424745209825102852519556143148770766402007598024879707540751667225361841151292055917848281951298396916832518972861998882596988671792752663059999856369192654127974202574971016897533721676442736951314765680179973628282518667755121161981990552613624794835672447816785318141043078906805890787355987313652458761924922203071237177460172700131308977185181868352825234493964380786690030831574587552877747897905376561100367950821642631885794386250593696700385340678754014798503914972681389283689933621800844681538141137403257730746729490375421781675749625918687659207012156541755571483368225393182792116930956946425585266548028843098929285919853735934048991673545977949554891474281544737897087920504606082650019924163650746273410996859046712629915488869849222607251589422707784474078991898951319427401334082453046687085824795367440306918836144914559271628481135917818822773179886218994051609894093108411284168132521602799729198424848834519706198539237640862449002379192274169751510833341150429558690633403832983714566597787309811646635347840390886188308632807931531072371888918526927741729294611334479066571208023652743369555525751061007067199905342204229759950134707718029950753585228036469043455488039551622738170738120183322802848322754803405188846137858813367504432002719137988796654856425671581099321327625667236200734150576676447694846644150652037343310693934707791183853888258493089337387842828762120773665735717241092609627436147353350181750309474396401500503458461546179269780358479030894224053483441483450254224563092761928279485191352794838076972769238815842477651145268374902567714937770385095934262650144935220684705877356123427865141610938195014967914776737584828281574552467642968588880725123703742676442976269278293205835854231264825155528110157333612523491994349157542316851310815793315711352260325068300933062228156957439454217072184344116635813323314620863147490190177663832597099339342962943767615506322098095898151883410309590805852518953121583590116546926933047042056471265434690267080896661827059287345057234548510522978892160313514526812173968676767102714369006757360552904267578056576009962766650067794198908160427847502910844517002108453699590908246581283150535135012886817339848587632901066345579251307929478761999314208921829095643175575106783951698198365173530316316032737614893355348697788222344301707681179710115133542529907322837454735812793010193391046775587606662040692605666207821754043578723346756293831493935845470606158152262511663535978585720062914425202748967287639927295838437338198198989392788079307022679088322269145111742317766186966999853829329060348906196551205637242892755465590128873430805071588159669313802177525088183760768008797248098939202179980033194414413622674322689032188424609430413615297193853416932813436819613112036199728788834290668944860041416654709085981139179483323527406953847579646732968794187306552159416895338153972956874025107878598093806067416153834608484013528342538302515880168374112813536224062945562386784484847943139533170349480870818480027333994085628790103804519474077034702199280371941709419082830874707026332618854979732945722421137334015453106053758739056605874188446239109125813023124381946036994344353550629047181795468582354204334728187802390768974325606227588165218721142992769048713932229448138438912141286843666923774126641393612738632564855233898972913882049953757188379934368520121795346298876566556198469301493453569400330024564067443754964991073526474324804011209078707906479009366101116080752618949010327200282213774262937470407519074776987474306186235586740958831545784580932801518934098839634724486015106128492256319954736617030449113703884643743129688147364800001619407393546118831857799362632851846251642812198011597978648317963457737529064447090100077939640122090070469337386433421699804846025945782454028491513189068208502748242939504248672909696377081163779014386936952768000671463992859886612802753194957096804311478928103195658925264401048358120013647124898477986912485329447796217157713219668988369006852208487523486848443331937537208885506755797691225909347982098009258914673582386056708210089400261526211637333146720969944224439527389535639382523940163857410132734877208196374597596893078691553133721446223809369881188738325358174952342206659809135965868262844799699613742200589556397594465572290593349256675842377289424588596578219196970445879126589000332769904843792467653955566194772540699971512201727378772403161880463566921662803024237107870288316743036257320784515547042528448470994717752840664852790469584062510952257492569008063699996403355359632246557144617427933446110581585377618253219075875421276918562843314894860958299819016953133941807004395777658988977205191332378607438510293541982835132817816354882841456319126199030716668152615549693494976190508786635690835653259859108035795906545759651838281734063649150759715147506260248111508636797498437782380235740554279983914279735442869175306613613251378874007413076076141035181608252959216982165930726432494885381655550071641198367583028509138255383430114741698733846943453142876126410701205802977068857480516713601062602196592604320351308897503246529265412441493139578373500665170667681734970616270864374057718981096513245915683002573754739055743215104692283455815927452409967485185408749182698589505348896145723774035430373597270451141907870078156977689016237016656573387999661545266343772977762582513365541012721851982510327131804440193218088625348660767460313118446146352871437900775171811063411001928820077223644918757490497255771499148550481565866010218989391578271266805935627108516016009256792535877759508461354372159322014563188322813357606743612436673310067474551819911951212520999723356345167368272542083671517088908136148317089512819162304252188320764868480365383913485156608247819778085734909754461993630214194197469417305422066402998117120996475068806216695273656296879073398286408507155833706926043220682726787098734901502783795569634413920188631321246748725685075040461319783794749989139456240850072682477017989782947817024890907119311276772098023075337848131729449711109338910695578083743843929771047260271025147385342293997324085011852389316222617622049156319707756417671243956577501647172260350561194171718179908603680826938619509322579585294336949439660045823992945127290908926864207343732392910150185466110897759993027436033723642305691926659291577592601368236377656512388823488532870445175792550165523175913510907683786812233072371454860050494377885085785062895613953056692294586795298213138768770047261034173796467513387207289357396326954215182595980351368312038498412367939556744256889129446890906296516960826373199865602605454042036855103817468099909722676275905526306963030343395504955365848526357593134975971869649145671727702556184044038481914396545315300290003216508245255946059945132093497092281511288148080040850713103511431565676887784249062393829242970621305915188992117092280747677425604927998287885366469063819992748247126679201523981200038078652153653221124980916299439458523539993563457090840805015797587625854136471423038084075690300793467015328627786185639846408593803829922117494154732650333674525928911143647607083775933292293809767137718651489473544768914863162932015542432770151724343845398109186480161276417544993596360848465338379933944436705505834696332969448062076411328726481897414145937056834999898001576662589928307472042062255244740799288967467417308534352342056006798545920364704878875471261933876608846814827112588575041596610059192389156034618109871455432614226528536399420703711035262751243725525912258102590260618314997923978493920613100440667726353980484990818406771308173733640620650546906973976676927834163267969095885110581063503914180488793577221035362636003928847908450876921120147422313661387570376234869245319995088466054491712710110225204504276705134971259173932953484262397588456087476957643409782345619542319914343111264507182663852315101696924209891500397761904380933006930911664823942638836874677367560895159491350837865467328779723427606127409597685675522024073669936462803147843650192354223882427904605437130520924485481576270022798227958836053613831435906190441966857791093085250813881789347709586885010012313762747916011372302902480955282478889778932965292513115669197723253748621355870097468418826957069666713113470856496686615448754753265840991359258837988240464200888367984775123797271720664742178586214063294308769540002303964712307877855517301820919826603175263834787557725683194068245166270567631510636671205131585582743859693435247263245716053950809680774652922860325272027614140894390634203897991477119356486202488596058990784196497216783460680103432728232927206725565030791822592374311823396186908196255454678413948502071648696468996086901897203043758036365056034247560358170775499018388820773456968092157254905197949616941496705136252722516523334827846758406106144167510213789454676698971482237184118631727413870560600718199648552640778729006065471351299707378019683746198561691851263932899380421001892497388102565485264864492932208765339443469085125722412542664683934615573843234315625323657989649556149501522096106702672295347793986967979407057273671239699421821107966381488270987250735354255047571809553093808622242120720124151338718001864663961405873036866265804879536221263535144357081844706267563782180739048840583438054765006416026667672807192050960500002455236326314798001079563001415857210321037436259514000305790668500430755164198076122359808299961204026563044517066003847812296017278191129653977578377638309689155540721831369008431349263909493407220990680528696096177559659487951934230136568482064230403119498634742140126938363466872998129264232430758719643890029135919137377092576415546785848595952778118881508470770208916353470122558867646676115806541546534847644055990480910910783695362007037466782633190923946802556569576109929927205786370815958165598451355705872437260229775087788307314221405580581013026353469783371778487701102474751602584131685485000573340964526648285923166599344901813494996837374342703722512977892079632920329559219666725074904064246116235410635526128799319646623983884687282255972980860990637918942428659443980531542394271310853023126266941558180428133330511874925739857248596642660172387677109733360237488421520557602092786572722398189799980125678695908846267642426169489151283623000638415818240612053090047478417635702615967427468787984021076730904307696006575083563896423307033108517493688734450384500102651822398296806589859110192890402202544030007054990266088554378693193563903465677797703078879796230246070301609017164366089522121623321820526194554073647863127427396069017902576527185394126105208508146429909361340847253651931990670189429792493484093291676434489631525920970107569431351432094653510525527558941209530271950768790661186717080101450507716789627104184281797058277988792713021636201233175201240921907132042321322605775064276244620381735159334186249804754470458854627014433443374152585609385035494966825904940544907037997338752935268883324909260662782035831890402029661417373248292456174426122167577052802188667160125058230426014569233653638808445585364287037095878265173735122840574720119071486486178913097732238453552558679237343538611267919133297936399281318054194766157467949106237601291110648341314873379013220695087301216736210118512033181168692597135768028793019970160011653574506431539091717087072084010945616503323172784471516702004223338096680314897161415859043685233321150375457499585402519606932056827882699089546737955164699480669622787547398050701598641784355851809661733739198888957469562734511962251217350257193444232880597842114440579913255018514633872562765644880168213424070103438048105393979247813968214414006699616955709355196933002193035583859384693567563616352984069134737507668713043526793011817440737054286502943972273317562682455132730341182923532688162721131877673906181020299021751761185354519956413596389804353507158545956173131695275563332447724543748529499054787249558785406610354891792028119695298211623927244816690163170847477063042258100153961717712775968969879288050204702744456300883408817404390445196768660846930985606644551862778629503548965181004813389523959092426101481101019164361456101617474113367604185560385884078575207973314206959393000280364504973901337249802636997543861217157126294851101467017884744214658474709838127338765045522625927020694961040541331455613350697088231165423046058189448650557808266726645109751982847802949414951142435641876862965067353596077208932938193909080440191009053630780406453733099502548652656334636963186913586458110764521673433475903260694946294563807713511207084032656208493196602665886186708484595278464128025903135276533828929067583931842654255096005578522892973832631592977665565221962278676933047312453064036677756932177616208313093319981272416326394755794905297277252852395123070435063582915899777016098215357111657694042653927755577086578693203447017187971353586806169910916683577718936839170039266900460016364935627276950812182301513744016376955868498689664031072197886433120294734677897818288030403456883764677246594039100145091163324520199566625034485051396804197524743830310288488401205247853266890640358657646758580174024426898396783005950791560902116716777515762407803399990086532607661004166212535453823497905905727760148393948908469209692362255530302026414821688815769193390473461296273106705338663899407494074389485843546206813261297246883553971769954147094526829539263879994116332535043706238268249096661051833143869954906586930778471145645080967725302106738389801767232245787243352273849280649258826947147102796942554543462329169531779809547436055041362204366956782131049380385941961078877485947607273502566133322745990393697278638793276097634027301540954928166435822740209828700398804694697929486616970138812674642875224873359537514698019235957328730334000387037315711458955165947503701170407169823457947027335709941750716263134067343726703967982725574434986237832680475375986177093523098803618742143865433797386953670896741770463256624804005120090011697356867339592727682669737720342994128004316439554015375377654650177261864694110930266742086502870997409570483660530624429485109082183102394739215491132863594606799732067601897627975688792847059743860958112963324330948563261026323499714021279959234511779083005463315947460588572286661451476641050256200055482099668604889536210640894757753195810496661266124452450945784930458959536915780518457086187353033346561456613791144316110025495986691043664975846485626495050127314580320884724676624537771593013098960453448314635094846834521149772198329274244174401928558620449705140689975580676933259424835401978035970367599453165514660465803670003107688436442475474156194116214949687077628914635883785375239461259522102470482321356043696101371330409964006382929060845101802747306475397024012071527750755596179280294936109680169932535620910037422576421861568043959825738314292902595025510458198866589492326138581968003128120441415483559515244327015994278589849603880130984168705767689038238684832663297443538103495995043830428210975388431296564074043624588297646340273990941680794066089470185347556909293827937841589789380381332025596489073849812233123800119199700849185205196705623306527247388414822317491893525277471078942424345539404578059847347994142385953290036877212676141950823696417365648928862129577978083761610705853182395304731774737872570458363456294269822617420398885553213612410123347567667549310897647484588123791872892791247189713155541332249690925322933439893938544405789029795464845660371036254795762496595887984875949895992649792837485385458655246617915836130084358274443921460353110346124653274865894113568471135495522578102982006512328662365160723537023225626161945291247830127492024409798758421456130561792620615964988027271364025494277140803324517800148695342147312717224846570279025507742680934884919408807286218648532624805173867698593747979867808376850528503436427109785281210210410462363645659828949622571616630169621682968267745275855335500166349961443934288452286432723550257802169537616193423601952874394144622306109086417061023003875826645077613262229973999625859170080444838012109702785274977593642675085235698039495610294640542898520550184928681607065022944140283593978555472376708240172966294012795964857010310682085257269682886646048253616119895445186325999520106118254251732392006186096197861093742323924543370563973074181300177978390818698355484343145053783747437727003179572687624180952288922827044796746542148324776387188394190848158496928017421232329992271275864796179079668493477592913847660835149776261298056772217765777200466493561862487540652650262261112142613812194594197868320561997445362464240997009761286225431608533854741571029788000496233391693591582246846450305430813338347664257273960098722561230518032748753258975510220086704209356389894520372668061897686389175269349463740858262018100880960569432835131167412891510752928618446451004046649308739945161991124057346412690698876905317002139538038908841567431770209792390022001303702997798885146713476338501898416770643531474117652063269456655467176953032596565749236548097074560004567595919279024228469162063340372991568383696968449590770741642428393662787420590691881545853521931580595196700241383662419818441656156480149503317560701548640975831053395623152367249740378182905304640092957558740469428142923435404355223567150897969265235697613028046765643934127486898852161647218533388111656797050542494148529485414163107640175169028985209511364864708092693249255796084560241561407311495082423331121260797209434549788280649553531691227983130352336542615536895558566471702719274179277546944708370128980298124717069133397206579934414181069132066756628441322339034044028787008997948473535484665391221420758907024993372490271245237434386865320388761583909418827779154189112267099438645040170988509786671842596374998535061618902373118107531042177132199696878956873977096664796063271591995796596850721041075348332491272324036965617609947916248504002480728837734080297642151691969136612350079548704589469541816852102405821324441423336773837216585566355103541646234973040863836920037991020662674741254857593048561514770643118706635878625178140195429428973788676993215966951282490739828888314946897471942787918032377847527845251066344005502885305021369221905356828285702061326776565314488556017011761113382444571481807490220125207531563852362441991626694068467775655687139630733815941592388413150774927587675002945739818695202423747906250149658783356110501740817987659277543287349826860913508860255518499457433193812078803272669669310806643937653992895750698342545306675626220424545973923529168386553155309473799769657638857099967506228826786632345315050389841464978214163310916041784715904641919783791189585614493537586928867786778825770697290764010103044592503954493861954372320302340476954651606349258640833944517632764019390413849836400498433126200748774357691260676809873396898911064532739217832762759188931162825020604627853477815467522282763387325871731189280169183355691632829692992681498318060635941697933620908688841088677604215690327176993461420413986501027118714640841049570804625736202725889895193184538609379983714725182272054966523655983833831717075127697341467280438472557456029047548973811331750331569935651991066154524930585525506653597580923811258288897757403633901527429954670618207970337275126787325387563923765338097106190755094245634918828484795103784276695594159099774453194995026681815509820659631180741304028455616239306834771360004219388034173302017558068956625151625535627705146610316098208627180898798925941428195314412580508655215536306546655247985648672593439573620638084743449470169656220961287982829126146259838858885256541020094432140176388606172060810369713152032263979113658653754708087645356179782545533503732125080619257922333981231813775069558251012620941272827023372195084726162270477191010928838498592497204769619417276320035754503576485592059237878334291961121569429600934242570980778491483105179800452577124204373622956435547798189376104217410512276722084510651005268092719168725064936606977288296506990514851037479981256880047972559044942782657959700026296063250937901974454622635127882350646147281034692226482739275838505247728406993708675721856505747071153285584527311208177351301938262331019890405947373895807925755017759201220709612592436524316412587160588885953199597081600081883860239461216975550787328605224826077351165573513752706361736330120571489081900737267741007749059144741417354709911735083487549996347409810554826618694782324613985677451951797054975996864951375935158031949671897950700717773443218566436138689680061935999272765181174763037932926063592304005270426030826521839005232344838201039029042628001940484157319641318235254319002504001266917873655660885364460831601715247578631303801015743288099736310071622985304428587521372377097892095413390042640731667784186352305674824296796825921137777582423929436564659808321078643579896214494917154981724080836416293904077413889007677964716242726533791435355662377875646424741569623315224749181962760704265543925365513208682752800861145199779388866664173317615579990764608904993702734430075656198828516894890836529572564536741340664105292962791802828288741131824350541998293398753973479311771796705861743663001796588860937550155095828451801064627557298965701890558515389679531193698105928648930937008619477486653931834169192984806432487409917869605119187273658308630969109853309122724127738691288844304310528200814862039958476559181520848948801175606066363881156437305187352546997087950867952506718218808454965772025590216886136729845190268356553435211093893203859669236561056155435056637702552892582546915873631155336027190677995510711419760669498721746548955213278026281879352256734227937056524315331052108225128449987727512572317763886806057668643255949544729253206661721262452170858403458560572643818683024693581738866419778045803484115878456183361618160069253216525789337680646593658397236238581564232756239857870390044975605087311431867476651737787002245049411002050642397837513998307931778892360250385966009395930385209136371430809509323783905041435250840043209609012300599749283359733818358468253018101551537947529666093620442060352268705254879461104532720027657869866889418248564413799041113734806909587081636883512818420668544779412116790190316520264428636970638661790395721747836930886667304561127190422580636491415023709358744640043506070075426352459419926692914947047140709378506624633868039897909619829936259980191686840995465273876772341724705812359773618229763210571095556895054134776678768771892595482292517803375587447095289047390140705242922620646888182669545032223333520462149395735661333254826704652585974935249830339085087756167998493115803856844824512782477302409731854552465608682130067837816130457793517672688487680474431094823957442956491509440843530883577139048568401171871863638021346477862648252018952281637018537859097759065657964109971032367983894862848441938338550393831274442481933586688819728205055690981613500261209634180108790264318571967556865978059087022784037277320628782148904134706118856300221731687640820298541901854750175692054726209076525782491327926423391797215870042449111017604782474987637061638211366854996129980914051840560007145757225445441402994431907240128045410345311272740807236693921569778960987396925623870564785607959284150481907607655983411805376353874225106561336259124387738375914420949366493026951529128488315016518047880632780735459625180214929185774177410288465149955873895549141117252892638361000462877549354786570215481375845505151452875259507056172602184960291747483646865028191109178000608792068153088226010485854391640605724898088604204404433836511065400176390857956338374708757100418681907470009830091184991351313019213212282680706595891629402224679639864101290775186698229556246828438184296018455623066157700798381567103017558860256092915648008084051415718618614157565821997568573929381391078776359445665732901980616699218435530633583571158101905585931713128933573150401650595471300207086847187294505933208103385234107253196419072058377503525395521829233588971942833109097634983932865538395331556471115779773572180727083617635989615923593902510869726858091292843638963970586025846747468561910947679440869856532665644560253033416605538605391915244145397543718105513711790720461807399879600982550647902297859555692503685631612059042008163527315940379419944049856162199219365883847572392755922857955686075978938477159777484866421346158218539970299136912431170827787385284319875356573887501379399368705938866967436713563601584512874516924890416695588940270391624981632390829582230649015642662066848822574604063014367075921953475838612551876259892206306607797406100685286076699762750457202864162336711412070962563238632725661458986360419453672664582172586195548018746158104803323648914120381782721354282493942862164389105002621741107635508123462836125514946398517630127346143861293974052333128584892338383301356432890104323433345234966238218207435240512636862753721309056053447936514638669000203339491026102609068021800208451148050793034629721470313075781609492219369508011466848853507198445798479003479851361219838673995379917298184768467180537039339869346332585655461743849680304867720350501234086021469384958232541424191795748285213695572914658554290357711756012475247462501070313058615582799390413732735777395222017934582765698521789826790704847892920980791974574962381507092948052635614077586802580460150527100578333453346575317164972880997994925472660053897518383336598794611314340015404580877417569884400960208055931989194676825764745746811293867660600182131240737911842653919327633852850154131257740431668489906945768955875256639454597017803553096515558072583090195845333629265139571199068703095926136886274888358793167423047381450224804645639035169317763843091495197774219066878393398021630763147143076057057838925294600727186944314812809902442506818851240804853181895691684046203641979298663995695445230180031156272003614213908072482025697643121988604472650362766477430149299141957418870304033836881964836522314625930919154930695917177601790914475506930789719244058057654454011541098381050995341517354663642768348252102310996011954137150089884515704352353293156556165021027452801557778449269562089708093344145623479566898055929880999746062171314805392142164641285656487116606464941036993038046447524629182532251101883243059767803816235290972182999671349068185737750070956026031224607386542587034550893459536676525175548421075965268964271498685371461330551582267140648415011365385400936241040599281699464876479410686116502471283998775846423202910366729701267805571735025064999393467308312207312507886135764701318880425437666641545590635768593044288296157036583444078143000925255637268956909840274904115006856710357022092692741530089285795536958539503188301818017017496528807446857394959328637358139073717184900929899990442595988087851612614037476874004372733501946315823921038695002944067844265792287477704765584975300517532692203808041392576542906009282456161289626855432436262576141538557184706349076835709273275318349015164711698323972432864784099180408848299603637818067320849020102882827834353517227547925726255812067988660556518426631772488688052570473269957170836374843799988474920104028443328383534958215920104539103355782891780053903667654103280158911217971645886861370434636267433208819854381835082326895587402662316993131359117676963357043810990087796323617278753356656272679629526898353085967633033086081849953271590865647908646088332094575498801486592431658478701178348063207398932323506760591810045207249085395167632133337083434877412361634153381927526559115250872351136063056836187194379015100485159795143622254473911461024914346746371926369866136579676383868563973724534091898730228054351086531994674672217645463553150012581446797827055958462050212698525028465204617530664667266601485122668394878945706890765613163114299982453047012859740920287635640879496912813424778582320633904176179882072640607878878656226784499962718947958450246130367524035065973482073278931523951988096797242170210405272853398271613372996819220182379415437432378943073400690989706048134978460691848801423256719435145289955867060887502802474711494533622980230550218544268675023465596433645076615128681966698757947793810388861230406454612817693407033207009511019081553331394183197953076251279174311333964965984610051214720639312199851843839006370226148109089951489119363237823370522243724334733669193630430692926619598918391701632129027879179728358231533914251462700956250256682592575048702722364634677148041472744495247907083682698041698098396205864958828567679559539411352795303873894254480221813415892645858635303658940662255699072023622714200205885979224287428734773041109123219470331091308318121700119972744479842452880258192681371582113981835438499575438307407281808586713848814805179118376433661108553247145996760817059868898305164094067531614212527613751344763593082930528030882205503690159306182875426361522543085031519722624448124301349413498731034064337955927436364531869553874481135127684143419370842508709961122787932575246368773796295299570949274491413002823024467515348486492813683788333764676391309753969581070656485590719727961070945860821347295339065863284437626892143256551352971240747581309139200847241501747714005956170220527477675465944561317013543305786728708645482502623066207406477613031467480251171501598715574738212308030024785799260519539185813014862113458540299412791120440593722911012287769004921543511129469740834080101473322641654286506632721967858086056219247951767488202279628664103526154327784676976302554289229745736161437924877069592761812168857981937371140465280498810085194888830937598084896295987545663121999760902570154856823467037340536413870089182874158347700980079028878026018032524178338868268627361436289415981295417423332813205266983951296495252874424888033682232045748691671416845408180501312048816921226963301804450356860462023541196626634075614866939293522421144407555577310555206493067623048294557722856912686965226325645289565011527764468008702364888088148608527311844330290656207892924630896926657973196297718505041328268160864589169247508675696614314487227246834898190851661834060315265702167390437394239268322318616543589288562587750938340330007103773780030407672125212542933972814803254383414259630233072088349112649009543230400999306703151810107712108710771355245448347696232226121486914229518842572530671776978497159890573238144114991149991290474109046301697041147508956361117606974178355506634834903612664956901916902554526273293734080732014440571816934454174255017835775593700984322618355174128761891115420770911849054389644836827697715806717184717714954005080987274391241897886894610606472792826156057097554635719507295283441813202291040115268168116997154817361830647010855599933073324818530714236716419717867909801874603707258819188081233561207700403362742787334426376805781920416038364222513577898119551660863037034436424461100049372203696162571503243666548542145161737855115693937828094819494869103416745839488668283229858764989153177630056406203045392696171730346142439791335160768914875817858215336594652734834672670808393109475023627968204860345435975953971124632737208323023098195584761748733415039048068269135072981955969807370013147794832087858875303990509380725958195302851848893751888814792916505586159098948971012067390806885554554938051609623274023072945779504607388564729898450420273179629398410041774848864435526460251237421636203433520606908862488513188634803967514787826890506507759406517246153734958090794535886875798275627573392985234283869842083070781927686457462083928255994415846970698581913842753936483709456215644108084075400142880509018561507957955587088483728255188604983744944742096589921955530614683238763259065044444354810045080022290345972970069711424184246686698906734365610008257163621920174518541236470146329716224282991605390568110087118194168951943582110014750679002619413594187153583271948921022801681598353939832096605858351099022149922547880812258294313842040017252511161437820612217177224754789189352406039018415310772959650966074812180112957696396671818052794580068815914692763360783517209563437955250180391565773056010235890720216820757695790601281760816734152626687027954341153249724342591547712931603569959569551094571991512587038149510686002800616026413678923937954629625485159216906472500667693180990924207861469668943569256122774283652271078549110052239384677984697818700841839940334381858028447088678234878089709127031554310050967365432406494037902705209850369589625833845673382582949223928336080365373207900600722415178412252779165053061399019749894127917789277370923304265881915656180183375543214359971560864619922675163827337035960109798425705785834854145810779645484661665305321489441526916013406748678069522646692842392096080253615386950393263628771351843250907658141260461460650488460400294314150905171746369404037170168732520993332895613948534373788660921036357472127137433788098165223432542563356667633110435360520629387421884554780766418827661287875659450462519599814019912250664528923349443162380778093106138239636478154868285104913278509469959762436774789287113219690654314054706359921312388149181955754559736989348114971224339484708416956869422954792612383403143911131141075754395811530060761326904989362596080296994422144677536973761742840303546188160569829350057236315085309723417810085542465276495859499610771444640281553416884603333075181411695294979657144702292377017843099964936665631492145895127677620227047673018694688423647973880090625858404025017739426568216805710477565380904033057631242063793167716165620241046540291061299046933843677231764863777385947721313360961267782027202849217112639521482776279757275277216192955394671729648112690130863161827858830989967526782543839635901274530501920122957907716584044979750665628414600933732011557849237844662530345680967960618936617894534604622730524317345212730993750004327105594384209231154832243362174553650627352265017678942240537810207303863744555501194051322898863279721565891692682563080326788750624818481997075244123046013576231668261443199395979046277520887300514597085479712702925923535607436934590148727860266753193197092949789499893213775060110588546197192463249509992252752297095760121287067643494752860690502813171316881572407543926030398633216423076490184006020173555283305936016115631876202587740236603217809146565457680384194139602216483075309737869645997286839565860958333004556114769827437702044279736061402805111936078989363914057797771215081857196310024259323019718409323233594386860582933997799055007092723648207068151045823935661893696069999331184212599995276438888860807535037222649181899632397970963121319031250517335327435108751247759897086576203877063831423687587058590693388493622710235276733746452262912498610975932049241139163872593124597409569075353687779377330504603658097466809596030604593554247689816923226557693962628764307309292230393140163601955771795578683771236094819569283247986266535754225032013011723540996788647722359794674528535665531894761713066409253924170018380555870903542025096373524995527705591110471837867963013839488006320011318239780647449318659290642423821689443092977354364694456557771655099193177058074464130503311763632930659084475395973464753718331560042671852552491104086524912508381030043409000783918076782783653122483558368713102895797440414841917249587089344193345426269758214945519035570660877007553845156062852274690456971513974857338756231450851547825032894817313340031017064008729261351652828907198956785716828640410541708077975937820933380554482194306126223106377017231897790431953652486913252425103186502762024404641660407578906964021443740853845164563747069221700569806521015418196219036412046219710630043114644211488989107328640009801741086040313046827294198884783243319217984526182584096569798910530545953672505309388056647580796092166223599053039150872231694052830212740945241913870876851951362048457236178180308433101228110104518332852108007990091551111265914107039109406583058620442341093363743835187115960551944235517337352349699112681290186558189327940076547678578215564373228977335673179986429422840981343155605756133032771646329229148821352572059831688853524180215275531676554798587455480346849225884261409966970851572645490902302236419044259066662663409172649927403006793653952216491501417254806876422695413707784291715317213388175971539912611537283604212715058540530291189742988648000834127549923787289507650892594735238322594834044252903490006333200296083502854096056510821910678420233544706983944447852423751223735944133186409309262309669605579239078534692657505077633948634360047168065683714401591708712797991235720854517528408680386300793816902044890312481235770295128487064109056540779894068504536001910318992493705477774820798579941999350017500840992524064349754005879092312503054677185857882990569244247346486077189666764219533633780488979498335527567027457604613768737971062389592710780458934407789652146887415748336425025993595695775979244243652749011011196101011252339024514338986506055507254407087631614719921731746039403365145767115950378912022715199576686441013425258091372859261029699433836093567709128336757364607988661034900486474119823694717917898296444795264707931854058356430995608896561203682267350395902466131975360524314713139251227168944644985253284289758543219409492043665710971314738722400293339969745123517378731493727068045127023390688906349170132811718593041467501820056742264416503936551953713622166785270507828453570744408816693930206745003578111645659844902707736772788189578003058077468562472773852319448363957852163350907971467786279617976210306568812578907099800969432783417063633930620706231705020143685116645828227716166885210882751304382198123566640928457243103282567496163726853451539823071151979969462392864670546092233450312500004768265661564286056683326673883490661024051477268587967727711243389143318034340256844409738244061009388849322364312393357020854452701807992621979306952034281722652937705883323912686427604130595265075670295082297381458077036447469703307139612722368290149965429745606853720284662235491531105437237761725290836870495025986847453283947978908851902242470752358108808884098847437389970263999574228665019008102615810413197500437476631223326369931617969983926808918999362255321238297740583057253159028055190826773985170286151629250360369996896981452654407745848406347285931559948763858983301183444856923455213297484297390490710339805005821721364782651722740103972073107836829133792261220990509549634309885418870943954207702481599753169305678166743444188048562776576904911762611894434271388882758150480680607168236379540295607730220742397905634994584718769748644799680511135907942850229749763697994537321982176556250565004022618115544590826852908100368262430101766105800016291377383864166387623410146837036461351635443632003355353909189004487597471030175212123728805414535373210203123993698511804621905916300913204040530804455951323273875232387954487962410617025129082272477385720909800787684896622725391590049393667862838227491509524502265871348932531052593924722564591760496068799114882885732730987727506916875132143042140877100302059707629793221081103023988189407321098927554615760413578538988269896151445956009559526205265446553329696974835045906043160394198927026037892189661331697064408148972306547943028708003873312022765159826550291830804615033079225766280953984680320304256732353793335212886477520652202099771185787080751568952168722727199104923386145256880567764082408174125646328169555025559998237758680428972592194089071677415284455249085391380681494873940327881346422137765505872889958838931890043326590984560392213246743490683336861437474546044841248781518785455850736176236368149742850665387232585185400630076590181296094286150876716361677769524875258398991203589958195136947242625170043984667882583001305240669219049655870896559282900034557409865173016542426269546446350222393806015724911518780850753529984997784996597019253157998307731598133765301196867028645535290884115605216811081244309632110829175661258651812787455910679328689954233751075612573484469691519448101899230199102059260639274322373617583406598086507339200660071802511907556153233759936219464623449113357800755216179370711070430753101640054983850054649769543962588423633120240593525066766464625163869057009479771202668006889894733662324583538690647583003813014856417771424307199875507364238546451293316545935099634364298166343519353990210361821265559885932018755927520720494626960198811906187065779747315219600360192211577714278952081187317721670765186894831528656415310652535128111590646051651262194323791875227935404646212138543051900997987504231408072215564743612478539966800371911913308092647683932382477152028981150092927119397040844064294019998772522762101326614269679184578802699407849862485956221292527535671403302577197449308942629066669117784139304784061626297646621691897081975890248735262215210152386275845720357657656272359268027176205856335902591039339982512993529397658092581644334880947353588678429147800329319862754028395224680461185292363298232101796396358017081038361287380271741062532039555598137789509532486518340745846638073858393665411850644526727144770814233346672132119916107114600542366198910566755491534902654361571605444782114305208748170449036097624785085577101322722250359761984694508126749009749813967402519149006082066523563244684969976022260664875566871719107111356932132127239968324763445341984916779556374015561607503471771199497998453561403537584828107736447384346189299915943291747765662132809855280348967701854834953682435993379155167366511686725315142093148032899199274963408549936164679290431036206232050767272521664029609601687824350191890001240260426809896265249693834483517822194043451489007041199798916050298455887153082176147662560900197871325913397234025237553338049105216980761853510362559559730742019633056346760424765440338630626698782916229109163255102409996597286872560550009012585954433822066290348813692149636009511305538136365657233702733960072230593967854275368776403753970278218605182082750694875322138634957713338754236895591837136400666886598484566661442933521552553953896597914967134637859952689773006272841307342861758482151061478793029879053419659298697372275117930783770405742861990796589120386117308182011741315739027376405953832463294482019119162016482712548785434638239197279669599367725526505695527480538574902599985908289182158068642660876693273713441494597063812402263196709063293751598417063747492801275326459513905264523186349569238005878694894496451339343443212005940606271664339044298057467479710735678987018281174515092380558908743760218631061250471718448393323869073171788902095166711021870283216277790233881445826890075633855576385044072323870760878475961098927797118191269881675923602107350331158547050851764406036515200012746930596237386645458563770533372815666845337890928339349477993737789251921303727391216926238895787972368827306316677531754149424750563669733716202130479583827331466196251356428377519193438677515498322461839548962015524214417238236776963480611705274735121103191529922046518153380624420585772235494340424011337445687137042926763213944369800338567868257567414746366264085598154221133520972086020270623919753523447125030977715146328207005890682426320725115296421834130708933730322705378801442546863181807277883524182692731982018446427884124694379592175656881304322767746303231331007131794545967728209202573631781604784394318143493323797176032488309079782376049215420880648732863101410512024405312168634934334174529782876719770331579969591110225399757836641713960872673400996240828083449525550920054461470617032349753357116045661352945289145080174592289302173672495959077814577278966046570682495093736846905744791334736442474358599891289998567680869813026900607402240982221579512752969957408240237469927146092550027072489083381641172054883566446952810193636677307683923196118573266840378849754864750989624674488541994850368903856885562637143311686537677020179169823143674788718145392284091457445734910540357780021573450341231634008968564508144510860987732233519489134513957314628807880946605021102623289245068106843001559581569057283982694483816271420968247828041620707013498680819695272423911413243925143215828011880278134111086265817782194968006867677906037124076398419638157449533434278795925973360569358959991638997336869861232091714685457294653024035654067957359619359458731924477277529353706037243139519654490391824724127037916552360066690507963172758772531675947180227797443606970428445235743816223677125382317986013411314762985168826867266653644919237119237528620245405148617494847116248730201784008733333872585023298201359711824330542642856190209583119778874129951391446353131297294916194744683078383773818948094484481471787987980087308464044092487872730868231367750156345153971935527945454168094541257127649430981847158268191716945677648309129286147408036406648010281627821430181896000740327895844561246505062960796893250676657692090915267894286083730491099387285319080406761530906365851370137298373644346095400591174015544734863222140957725232256756520164798705005181576036409207766219804298292849235740292015270793661731710967224752153789472681735041471488611181579747180806937096376221319467820230333728496866150038731491880484392325086404528678177358856795742183680991911805369016918648148913685697852079087764111946656476508450893182459795592691600538495544349101691369095496927147230297219548071910605749824743300987885857119831388484223981247369330595317695571139320351751071111304364623767836038010984057883862342543421040035430499905276962285809118624613389046459103084932879227637528581461387166697868608230082739971408624160215453427459455895712946059181080196472435190830470647482825913647630773100872729408984608395341336671537858296392426261760793563650649226246097394992133896583417251074782238523994830537953454868050935965483242866130606431667184593342307842339346803838387583131055349432224957744285849444631178225092326075781751526625317139460939985813264133118590472057489140165846866571541719454932892333906984643305021531887030920115116663609474839853720466938768724410892454062351559047889784779663725334234193204056870210986193155594076935510792035582276216874598693630764748777637563751118803874524151159600225066953350022132232137037872446388763521699327613914401076171345186250566375298952742978660307093179201945542871197014124986375640989371563946147030145142773961958472798560320882616776094432926760346090419349779078361931140093131138360708142865701128734651778279648097050509253029911823348995558851710079880588554446766774951132334247607500290883055006006243402968679609110045530029477429065818063155150203039779256326179351823399806638986711059580503567532572157273029879667143278543078297749783714271584177956638932663258008157615957066625865387155445421853159625426890045403452496587964600099134402380142525433090974885818832884946185225421073918061376624511845978574739893820065401494310156919365839915165925219862381962177418079313055402465874669661895019159669479101065048461858733838263935354252281887048809960444282319476874916088111159808585006428513740997905745590788563826280729145078614280086095219212298927435406816360125024934349731349705699911610022123690376763564528204488130550070035858252626615575809422576794517016268574519243616815892529731132435012880909850380917261754588293316588766758113380299997290993307145597907901618365805763419164671838315522022763126873974835456085040438693235238022397762795235481150273312005009160195156800223362410913266755696802980273935374401567060481285361228862700233588967251954611408932376088977757252735450819006163025959856413999056248256143383800942889614847579294587833235346919277478941182453064490909151115141153597647474131110901462928632659348339130224214753641679296571836048854381456138909782966452659111257692295595495790687231326177575772363202340529206552487130782595762302411735037267505579348432573459038816996579006723321937484124785659177096471656038648559825440188221253254414564155532687282284722374461120582961273251597210292101947348513713932081138457055961690481543394281693358897454979406448262734751581707122070643443386951638315398863277480428074034759829113124231630661776567961026495046882174916965339098713139628088067250594944048103053830425404885519183898290182645478381529391320468092302406072551131261536820221416515891647552977562444528179911644487678165763960368298307467980943689320431127341406933204010436801023685755288847018924702303310552180931908445247372709852608286929273085387398096917431952001787723302966164664344258882423713909557499073864422282133177534607286610634098366513023664569639040789103910426678465581299007865312144444750149372393567071911120964555085136630668707826833686736053007098947113501467679799544002706742620003817321357544116696270020497371411187184267996813571576030330923430650101806920935042915680903485656862315333701897290103270241635183656251214480107424540329175862989675658119684834347549012545821048696230276579167758167526442258527046484508048095854024314027764678276200181048663983275408532754134424081392310422610543942228404600092647386511362819339081317903374876996039615141587067114394245546754700697581959194372545780220234269976106185373922409187785387646308139374920858283870003250624999718049770442849175763203593545588147103776313892627574825697994413327159232479149049523448694090809637167501406997124145140665287554485822423793960577807164858573882627380944558439351794291318298090677140320622826271876096053578383910724323648937760242030835211105223916419642330230247379833447842948300725694548452247185826386585615178893352953104310278530188669501696800300350414142968222311545132542762014244573035806499058665486511467501373495318464873914204708458942136219695376572310891723824724502683047215003800169484869615343161880973145236260383852632768419359240637535528445418318167817124382789454196468006333895819260423824895471191597186787220129980970201092342934505940447078240515882761618828772441198722692966022866621456647572215910870557166814026820038048621537669789253154920792314096243820601970656441621359650318937687263709906257905743872947571186967973898094271786398557381368275322652191301655999418093054455101246170213637007442558077835830104692495866515257787086553516041600107082361635305411392418033075478697571651821073634623741513202078375122105095397698979576441219016358044212655255145091065121328584069709276403220580366211694989932910805810527334449879654258915271098713211307107756455626945522515417857419652728381661075337829669535481566300822536815963618158908990424437531615316873890768346221793941538803297898366975227919426788775499162677889366961183027203135976312607413786906371134311117478807114535024571737893895150434891137253377762863587296168559649810823736428897896195446465551714039160688236896671672719354198808588696741968664581223485456214471097923005418773243602963721714315052457282900613423626631748218966856497591450377494806974473194446654138318178272558665540704186170981115703335916349167502749317487839022276528709755826670316400893479255070788323809302214459868844061226518872123433299836322273318224583497309166538106680372352588374589313290924524815056618981531159899600775476884607534475500910604491369039847828267517023500777819185489311308393562131139526977924886259753687482883659237281058588056911980035516583303507406004828222068681882858643487068904015149041852249975816033634744817748121318991108655352818850519188265758501221663749284868178588874733892223266514796248698972066459286075769091449976221158542541377487853519755772770892708239439273375303163905178096016692265521813645348248868859517661924818182823147496059173242365101230319436612741578853609199347806613251710771788936853140086376788831476826547500249750447591096423393910476690143351558236405012962283139702388547622607742278978675095868841841295675466092863598519504872254394852545281000920896216952711107407684206530381877552715909610461562739355114456359411111239654854304759857755603624725171480875829351443427166268122597629090564657626868284694710279345087115491118680156364832985788343906799975490556261823922998680154373320163605354694955700048764966418846226991772340576848716913664163182178533586695805940784751591132029981449872773672338584277694223474685766672447704571341684288719828004265818368921839930038001961498402912371964340698608149460106167239958485610222432664892873091065630737985022789920184227387627511336222302831459086165274804931348349157398891667412275151121487471091870503441573734593160023297364685433453044508979276587428035148388201718357746005857670593535048001737179155785421464996700647005675193104159651671773365389093455700717725913015018631506394513419142634897704128071305024847539842100655144925441508894418579070601095794747801542369834938286347096085956975783104420523124226599540673220117577976043512883893924874981667973201233109903938457712633817029146426348983464919645571631608523757024898232617192291639927200661973569345936256188261054520903930024350535683250646254296825246328615751313398846398126108911978355961163750394649383503286796519650867593299864386993396481411456772243428600496013009739574005470732072736815147490838482526807389025895609523080644489547670916577237345827487628676980802796483601504130651534304353883464635868907618893652206392861546640600095898126979237276378005915097585757699109784533953559758033113183213977617925031701979558280970650561197104798576187934847931127409808117035911941119573179175009392133480488979122576118391897526045655272500405919316299201762687661414617369041588061140666575318810482991469645959861273868737343622723296967134464553915880120360092874716868602061900922099567901599273853462014592808849064808079009732060662238742682160711813553693475635239566646925540542432263654549872540302706025110887135182622334015260059449077391506116988216771116191904683508066596893791666263387759312825027148995074142618058184102801037809424862947076213905326613431517585738280420658387998610731335799911791412843776688090163384528747944239415935305380380169117926331809543967945786683994882760918951259813754004768284110189948026569354600724005498877832852948252189379071961572926362913119499668049265806372007413719378831240334801608662651639426991123784288789686639485554896801441521406145082271826217563139530551116559519574309905086204396201256575080175242129415250390354543600674578223047100230494824784559214040060004654661592651370697086526917085782785123636170188893474876033643667256867515205688113677299057746491277341437019770449901150243643914644982840533479270747902323760918981978661928677816461815550555010763030040855230078890895962125144541854083743392781161735948377845368365172875677408003560986262249126884655950162690058485395594235581165117417302289971059906382582490522416860809870961061627711069465696118919894716218146227477515724591899364662111084206873351740025827053869367898283110562824218766895329010079617804790701440347815760530272192504888729522442632786783077458088602892581617983283408647248966829291777396253355477129842416573363820153102161156826343054784972613847074614248888110203572708403884187810604968137942538909377847270765464623710052556405396321400008457451816808377751042239272891399493239091825803507567262908947424396221526775547996592675890376322248964421306931990323956763224788230733782257796353955780939432221216166647145950744523740059678392831098508751293772418253967211043053379958094053400371120694632793352412804629657580429722035609808505297865500788578127113221001360747903039127747685005735344376495002966092212083085174475016698076011384940781972876236411948134575857117919702393499622882863119118924271799626285172163023176117119976942234902371998564939231742213844414975193563919410728418929543263589469591017423523160769269659880232476484182584084357742523563290665094160821044011534566101485977545454395679404558301630004199089291613171194590282765831910770119167460198036896956716192885276000307434755372257110381163157757979716318772690621197516360180813845755728048815104466470800244186422215572895714852084622095407289016362162523208066737845138821559612539232470494793681758018358901262389301305200568274629596719982257205654074357647665275659252207424421660834996828318707937533573820790191282952666048344579316845248106490324322956434464168948521264581077460181360025884420651945705311409553048735657306903931548347763460938324475780179049543116969923186665265289609491515614709013016927435874305291253946908444401152102721594929467604147193418072857277766904549621032735679630288025655701980682451040677177461323888704199098463567322232773046172000303106530653244548307189807122051324222636868639719478990292782765679939136887420183288681200543532661862258992460590651343001802110317590478175316716898125393429395909939936391825779055717018547209901519639031970954130408652399592033329615088803382594879315633941969771020598661763113652679901432174568053276522909475406986517961006741817073530894964257287974118283015983734900038325204675847008789184767442002731864097251703048009550573660574986701379000097536479886199895554610328674532313221895023046349573694734449160683936421983285528630892389202296040130024790809868440556547466598216343470909982620347645986630656928768250001865533967995985720193019941857953152708970799780147504695874850299773162060497117914884355206394548128312884773411161163963588185196559700017722067808950164800872339373313153043699310721667465909847691046997326571525737800039039439284070325233093977899175023416538437591654608546528478630225676024106704450574567327850598538971456281912505347584910317161301567510852878271117046620391106587283705525235384702690028496734570615577817284623588631862848507678330323657434132563205016525630434709975978474180718877558658878042153175189017929104522628578870832598507639880248448155262994649337304410654972293700193458017387444089899851177300085556894772678415391191777666027784851844624668498883890872518563482508545555003543325066647194904428147010616695032768759647500295676535940489868517654889833733055942656296110870039658743384764229209242939337154846302610144815924269846362335723490539950564276715932345637835423655290178220325495870337116803205225602755264501210923612326583392454146081287676347934387620476291668697657506028731180000858781429708017970335399520937398759317628379123346892862215046296462600111734428783378609659178958901921915787108238861596508967727616136359402957207841129051634274872005778489871924280617913695369252965735032081967924462881782892275698335018717553792790056032672760128791752793632131768445262948036734439014942106432538226473482736377130273943295867590028035427665939805556295715030015404262577814188238413241571385806918710272984417246842930914762622081309220244503399134046384358264655373288531249169053775459765249445779707070663150118111841920055079898548529450420158093709911789772482684470878767066151163458906773754144549370261672179492001742964064506797129117693330444789586466358641139278340064582298429726464574256072831425971455518274641442046560799278728957670728309696015412038082681457050092666659882218092167906438535311701226418437358832985360788581117887103742908687291842660845410828290821426727599354672417167731127428999118539121168159528773159101438024504632633005843358355672525531057641120555141106324872207765504283517923896808151042562113876638465463138210869888868727780516956176920979304350525977175370994109286863539867189471055487919846789554999191255601425511890944995952747319796169115826088418206849114700969124535889170240378855138189283234303228237595383342396276292228232553688088226714851731002301684725318328502179006777953991889041563245045928685530064399373273041943010575696980749071045735951445411030456673870664105848213781865975864454093841372782383473183858830548483660251267060617811363517408710277282590673348560933932430138032242150579378792342138298737013181530715362623071325525620149369916615616211248124706102495275605835914241092147006487948011064140318608894105850735937566199145669046557714273381641702971107189284332633885162525401192156602331469316123621777236542770829759176508109295291851324756376231897158603705536224602769848281963050615795483471383591335070076622120537800092139335407810633508298513160478821827182947752994068897930746891677719277391278979775036722056270352191216981793927711312285474834000547305165907878831686255161390830588449119750451007897491500469816896774943196704764886788716802008942804907719720885902962393284413032292772564693757696868083965084406829897003718655099592043087511561600515433122756107578242178052714650265323750288856933121581586979703318801401045862709495017114537827578996959354927765925707686434238884488284789417432350050943790406558387942355989934316911862547990045797418227685725450482929780691239267330843266879627008487830686620284447298154691265109869406509255838321138572979708002589974814138755453686376010785472137317977350591935026834490856010270707014065061222968756269008043486879384971595334136184262565363428646202852258978718951425741735978983340168640828867870811340403010989687875709235847590717058797039080862627388825997096072368925978456728311519692560290905753088373387542346641195296280772555925075889108026914560608701231008437887849216538138645945598925243760400340162230166432102700755348775243299455876887968661246246992533925914424907165056107479830028302404343638725475655740477879602206262900462475675502852680221078886046761016186845053469224895703785253303582116650676779454527113481419327145287638170671945430832467243900052656873425987464673747481922392355109676333815725400633545390204192250038131281682104669126394334209384234190762206916263309384605063079302346558545364543543264779729143358616257465764605900095467878594757009605219164648091283781026557421166633257974547770247507523711473434888266566509479185868248188727277636075739160526216066031288238411291767686597999829621787997653475072489099669802050200675306248574741760568167909880575439277746593650769247015167218880931360267553034940845618263818087413432512203744732082552697247571392754774468875686360989115197271866364583027408865889493450908743048439727085015966016755737893225477396915453222685861198401657283604656051418443029582830123817767785010794472840509486360004230326310349883572450145190920343403487306179228743704150419196708129430583139482307249023261159001968047670696490095480895795554304745487053574226999330673360540426871389908735180790754764655710953020503215404961112607932941159824057391148650586989400841671490940089811821478040362150914083831702866141531115603612708565000188780369329225213264568567484466832987495242709835900276003409938135153009924645768810757446438535272394635472770848869676364652948549799733154557004657273571920061134624720188109895361147204749034923744996953540192708206623831677737795667991003717577372390911845481061044086577639514455223357072503413370581015162579307376472682996726054855748275959463586948486364676409631850254923657937917227750488778800652328267977068738552911484776881755979885545656951295224823895150200788741750058305952822422412542205369024782310794559200166930935173857927546468811242565291040594006434203130115229018229499168140215284101403901019333073818115086732650089679631924755678147304144049915050529289088174514980863293994342748690596505995477471321937862470630984098338157495692955687146654029757345863819227481882139651645102362818847558137637111927229542781653392697957102618864996311108855180518753595462744980071838401765911712947367044218467622037202300367365902300959598977553944643776345213944705491939339297817923362736564133863496440596850797949483833578843270479367925031801736566330118024311011761368752027412390349211052214337861255299294329177515814071290382579184838854845840737327864147790161227516669699771486512719616890444866966487052376683117239099773494698994583312590979837770840955591676450105009707151251604671208126354662879961082338426688418857151942158187312158630341733408098680826953441448508591945531007887865558741438152965505824400248657389733024224006038645103476108243705580322239044114191367970617153000323651838182988503091170389847711397828109398953548515203820545774537034470334373753772313438778649129925695243795096552786323904032881481688511457150119207242745620198927579127612129621721591417024124098757389515832056403344143233985583408324279262962714184495662921640600778354165660507396437612402291597353103566497618423519931379075913377946057941253301539700952650651078791149943619648378110370737508294251401988186231302885958007265273289041126723329862697941534927310376971723080700966091863386115794072960227625417752897116093415168012590355776949614134692535840098244728089122118825345229017759929413093079467057898644623562842147177239662258110197904616853184853074623649060212953953472325195989421828312402515241821897185357743974002615251634578742919862709351455982856901076854268551767885447097713199729820634743794651840208687037301897784445604424384192281831451681884183588126204835666756896081340951796413066933930538383077659834351719690723251686113055118122565677288611830034584538968306681060052008370398147871664034191537850050848312532815657482915810543924981321891652247110517827385796807623921656778219866828979061771529308009320637248839459707432573721951232923357962794981016901836254500214643846390132916107987653875012525219697309658207695655874131171895660513909639709962579124949096526635259260849734109513147223497019234799497302767413184195377789238672283838773648538859372080969822591313760120252353938252408093767948616044732842622508082077795483388353888326086997352729150915036528978870049836327781223212972505089159274008898909783762268862247892814945913629507057596656698213953510753795735936637819361915096820578180309348756153436464150067095764269979549484098054273119465298707663944668549287181383496650018101735472031941394593550737851081941744220177689329544880713217195292440436033627870618108686843257267480788317258885544664502087319615520977958738424690464249760974502196211597323098474026023936634636226230651264892721250219889548059749057480476045297501449191740265510707873564924082469225589235147819821378100659824231831801220262153081525975447451311827032428561927784601569702259760533314782042009025172611410973591215474132644567087450699643576205262869115897128738324049326021866739122247486922378820561440136877272093331082648792649408698227722363919924347977951167016928320917748670038639766558239982044676334109611722579087434887987107969035381174734693204256517728727227016902195163049813690238399900303786004054458035505756673568153645023712579192455772148771838199525455970149376118887204653155895431789391581753370827226985129652360470087739585377422569055638964198592132301230632547422555120364788607799741725203897669227505006215996294920356179931245636612407048042235639139002646278096425353046743919210115242550933944660596252141530919671245926679528232328027568084875253228762060000364188337407239723637104189704861867512802528672006865955637998689028568567285685310091346862447839902042659130804934855015937747080964200528849358158204384536658397701185515041125084310037793166436846333523630707410583100378635939773386238682499038332552318303154009322590547417043314034085303844728737901365586385350781138488110518200317306420009796004944586232244278579562109913796111216025380459996627577433271253385106356266293507888087250661706121426874768847859325487988441382373408584874683088878809161142274157261692308823173478309974021177331589024382228822533851767336965601998312512643975434873382257886876609255261166892206454162345910557276614081748602999200249059075671520246973256100330337898358140328621064067050956644953008797264201178046134911139466565322545488951291218321175029101879695595116478037621779949137665577628374378260940753207666523257436159424644838445861290882359068960350195745462062842050114420791484631138045384355159652436168993214832604918566055651563131925152684192203910515541762788685014907576185358229228250674923907609252608572209012050132176910821440192866335561432098292079864626671557190159440973441999121634131188920840897600743020466791167830285079947474672819073231242127573275117363801171908673896861964654898490590830416281840524740157871181992856980047636810642186480596445890707543355687922267668676700694106820320044367607134280425349374901224195796172055398235828090721352630724166262971690836596082300056024919893890989168107038434618974821160722548683359626173123078549536678220393907336378306973788557729467189204485917736027210538449655373186971664506722651977573979493832247407808626190871849162266507088805821099077995879325165773874998279047361364719969590678901543254913547139963343843140171513974268840328337107428093383540201434293250315935800622585831272593790621401354979968406843200042515797751315334682951820831804341830883830395069245738999558833672159298173768445776866937996248889253678913508715960381108890689376503774352380933791551207304705760091669637783619685574106275752398309935277126992902616303918192994830596932027227766293070368270913014447430064923292300524463438345581715435521775470600867548263632821044735393537064172875091729885405443496133576347800065161586996452964185408486989007522695009705521620716202686146165960924533114241742523700022488312986425026928705214767032308957601104916170857628377767192785202244723724487694767284691640273092554435613949067156842819615784312038685698056123201037804643957329456987904784414262466993407017739486545080824693884679673975055552874871679664707997258898276568482383938698047391466854591047141909415985738349465705550995715158863141077219937539438141542844370891246524476183963171337478430767650959488497603387077401367677634934889060273649479210163384779106125603087946364530704859034127244837576726472101333979936547614216303475721117050748998781453470369344117677624889960105749918484272792356584226783029270714742476275605022337234455345632884246647959602571912429462273926346638494055731945856639089617061239601934606362151792239805675842076978167558671853338362520406040548406159855038129570055231063480667290126055621287947786908364556547814936298152553028521676972222542464650889813508964070570560035652823357723068094835480151883744727045752394725761586504666610824284551011725923940623885858079484307181918835587356463399849281612430590107079475232356249264580802004877971612734547209709746707114458356089383553658003049454626818135306605520825276896079577568668125762412027793274622624337095971312675335004147022496298880025618767600931090743990292995594103642323917927799278617073457180228915681669733601526005163251680909247056472314883769420546927379544438044584115132148239087430479345528062049721006934402966568867293562177398986679893023985209764655107475382896224017291012052270045257530566918111359345443265746374136081925036858304925940899507747316347904741034050280617471630628579043876573037312247818666806400492949536526303258923334191807924272754476971326875171444737612573696800629997940658745555595293431409633731677146243434241161494044172756964604801371497128811554365355674789523364433401523619874469769458625331797509542106591334124843878790984770086802972506767900729934316947866456527121084956842048913571390591040681463153091469915138710778720175571925410870096848663508695771491717390046180070295514302079803963190398356438182376751992201407873611718550475177953460028147007942020594516401102503911302383773985100416544072158013823267631646064796813402865151770981114454933122335950223679476920913967115591226981144889120725414783926177172027244945603104002191527203866723436735059928030519519949085252101864977997444749197934506530126192566030707238323611098020882175635833866475184478892413715174852401214281063475647745024399513862971546264013287501420394264363684605151168932780557295608802952742446631951140792042790200611073297059689240877899779998515984153295152205197455444573868828900182467022428191914082181972070511655896382822250976792140308339900333560682773296334693079086608023364516401205096072922495244625942100554020265193133772877265029653982761219903744603873188470622311287644826619883885587817814803148397187194261893255524199980480716499422887108038168144532171276754134247128087068385487698767782249390323293384428173773504291216080686329394384153797690929146977232300545561400610693041230101815085398148838733254426911045972976292837396884975357540269135985133131957721481124549926934515186067252778149305701036654652871498090271672449981946472966071595677994818226287634543909957169682813588479704328024568229172489908368940122057326824006018368560187277774779243592807784047159428584046480412025820520459940263477111862837224131144163084465926567788121295740014209348040405988649494650874621839769952711089592400146131290102860805815931960798398863368061652573925745667044864976675545455299821330500300354625957284434580514619648414198442569681126144591068762137610574319561560909608289843445706703970968268725317073480864969130415956894343665915607086210856280841068569029663875211759564024104738080235099492337025254672630609072175071363840471983380880231206681988225233714159307800807610750201144888180616280685645593206640292311531426958367098960964544729489917733870998875505376149945738720006883576344733401520204678794213461529875140178875134341678297667398714057934141334139579048931695596179994827746458399685512788461498020398903477557776261223504125988863515126348979707369880890192648892242192170841770665413633725966640512989961536515311454437113561294052970668816335129700163789863044628116558203377395925075229392949592484636397658566560571453621255879769064228815262422450656870265063767212264043569575861895151339625585334659903877892085664934876248959576738033485909184070923915106658815420722251609382418377505843955102494878965657711481127707513148556038766413696657298777815345515458787221370242855403660414617474116025767698130201436292901192595231230768033966843776084153218056491009735614711310549497499668609576438664595914217274989291528958874255402742076143906209600855888925218642084919219521062276203630896324612346245057392275567128655270499805655338479298598536488040557252635702993769844444815985819052889809437216833299425595965604549703752632143262655319198582738739008579302503929576918103741477488083215788663185189364576024638863335456197023452928740658554864021530554644719543808615544405491499343118296303824920283387453682552732695239965163154601701431295470989951748591202597439083597477430308292042045767529609111870980202412870416257239197502206094706969997138272513795426850594758971588567114918058055553020349601334282062913358588567338864297924042634328612203849856805771761284490811758155485505690506498847870509283700213757851304246188860221038210469992359151663398140761584853567401970967681542157064848950605024383681094699043677806508387380554663392339206199873371521613456638245953549128810320386675182784253549371302407826015590154045632970094526384250667795347594506824840423358391218896226875780360204630122673011042694374080925244785603282807271512816050719431271588698295366649918326125950561540920289068636234273391314604547598506446061077393502797839137607364196506591836580625172419332924844988474925360208126081811935435430526768634722275532811890049261569555065217395493110075873459844375944381611271732651566617357061744350379226909908229394482561115284480414408577502328213456697788104574246307667620474502627353691094446916621109794605929734687817128339045681659821751666431347513042410371426781604864141834246380185960644888907320814964941702920078159206439684911666656381754661411580354223776900443519311038649129452789846573992829715986492844795423528304103291849297365409035363330974591710124227288862402968823467918818192164027702538232194973898474175008819455444994887071370238066444024038555644833179902250247336037039477390786997101845913113284637066223109781560770823324722085740246637817714824560868249359534766903393774443498634879769363196200465775578780845884286401962925175059586643507676055351245218901190239281538238691187264551934164339409842212802663093448480389119029185407438369384682237652817784803505856157704783912137111127848931742890482185306373760338369874706825443642964231356471337269241675708537464278584540816173534967673119662896742106448635678060330730305779563917082034290831839459035834186814783058771681076323800805725416313762476645338908972754375759003630504428929930416811297625353534970720181066029648772440392504201888432028189621248194468542270570579769354658561632340674237672120553929435353941666971280328680189454740618957008175410535113630592825410574180021665666736393750730468112101694557906601321151112806608848640276915260747890230861468826794875185010051764242943496799482950744433859836996348598430637624144632814127346036367807968021071653611508232898772923381308907440368803231798420715440693927005053115148355565060340313774417309797011704321147254172548803177462184425773292328112549476920032141173410547131743554451824030833127136963504873143173634839283343565145644140398993327406228266320967889244131297015795577688582509608893408875777785042396666743441638912419554346014440609018919518568357167467566930533249311142897536981189634322205970484877415933354297624065846954035857295769881655276359953059820449999224919668977754136915460329239994453707215536515945088097541445110481753553188156526599149304436622375154020152397054224371725168971399536946627004347997663662812018173732941040847789625145851449266968748396666973430082246063817593166820797061368434664293898569114097859562262081232105605273312500999799202397414361918019203043543704624065392632881572952568501948520243833787860233742345045155125486832357918250872762155209266216321875117171542123469595240939273107673806747190231798964040655752810014689942766395255174565273545399810366965786371824147189104320220400154896564350709971572703178780744089176943949200610322103918181646286408226381993099948511330982509634993825340854478134914886346177867664371572191064380922282941083104950835134502036605073479977454908664538077136974709903289939263661292310321025116252422929747946017370614473476834149985999980727345520776977638950619416503196345376579099936127533525489972285832833186123634372295650632817743946056225384547824742509916439004487572202686592413636791073883166257781675560788396831261938687955860050033377328652490586603365938283927470261890996396256992184969780708393447200498668685645791286143724340114964759478914517103752038475577089896507283550760970928750491764373525069998195158707255094981125398126232214488218719499352301419865630913034608991316371695821418851000371997620050049181326370156371612351397797199392603035276843904057827002483108201759318255308367147718017804188105856200151237228887431269632316756009703602781938989188749237407584027042910178578991189616754980306516140125426713750211070143306375431945992509450920755514910784841797816910435382021680739931284587622069707527248501646294161923754246090293876574486161269933652990811678917255459114685224089152558151240901940630661907051001221644657155281607303867048341376624701487535383114019271265761688083053875416309145865610458500822482668869466634877931476909161727036748892669293639697904867461115415543425669706902878624528128315606940164683180833034221989391589547749658540933997953931007752737881753127915820946793695123812080198789683508542887370353656689624119990715654569056701643610191274642754090768991884295778456347060136225734158581543762171640995375655326633004705463583438823439218092809920858320310032717839233763589225871432222161506078209703345820200859397592981123240900571655310688104941064532213549764290855417632823682515848997775287548422419005813709604994132720835324946186423764192175764950707680955215216527772051108763917413357839235317924903206015158837285092236329306102636076324082733685003683440673716441118928137023319027600161680809704845890952747654599127418838974423312876165859881183757213934010517125099944466558457473715786463513461397421368777250259205197926217867614101714123419509336057905944153557837976397282054016914272245235269534353401875805713673711930527949681498074976917813036554013775161864964828434575141493287459726555761767833444050805143530258044709765523028736329108598182335492213238503739258222844144262843727389576673880313800315344756063273673338736270494109304244527732145536025248802355076393260313688812261104837417446443921688490791504522616740934883705701526316116149653178588805126432542480022984627870305346828629666990003932498141555015481198569304205406480951957177415783365606048026438129848100086167023104432916226499090534894775111531021486659675817690088041286063707997512298365955347579299908419265009072692155326783984028689297162314662145904820663850161771453136029883447337715120858448092558191051643246635765686760851921480277602930513050874129256466756291705269446858589859189063429359596723787796013814447815517575600171589702859600881560029874017727304985241030959647447184326855957079276667381493231919221272054159750691069928743784689183454631092771653860025610908382056470195589881410848143654325503216540732376873860860445593327649590003018312353713428807039185061586796465584169063124651074535860957959138504364096555287452894478397537090443967261126051892797320905760825496599159956645001989920554258875983048187258965822423361730722294391316975055247485141701947732958728530589475904541058838588378671576944528983029183888084479022275054108025515545217775547515545059942737570773825556593880561852020072410618894117668376771684814643372795520626487774786055694536450367782513904387339632640274298711318075818387493051378068311825767038933538477454256048324594176420292231607558578872763473945384858814338202848382250141067924368525084172528826675614273902538906337431808800171604063940163721995350324494545973951751169519587510909206647108072476537866384628305625779405302016412436180534832448115115545738912287616494031901156526283442222434367433603828062000284783231679483190128494761007540130315889080279196223014787325409743000588806816292652136199651537408616718401947905015455703620664553294833559985247797801005385746517659862304643385472363545755389977914239415328016474434396947649425974843265558848354387739283006644353329491115647162181242266203240526312520480760453433922608069012451179605608378695023578693714159619650110194388554092990987793876369074567433921294978235393313143704735774813742676727369400995310566782396645063939710526009386249491317274938079936586846250896925846833853126537964246164155415992954446469643103861593526552391187675604031672874854768514375470240466778891335464282106200965190487609900361060538916509108712781664740759916362545318783637603561745252090867570090029603320313413323863600472672775351535268951992767820073581242345142908154949727358743088024938805290015045273909153020648443749428620028521728260819830498070952251329577827150624740682992370812974181841581761352771261236734773660031943493968568439106922196975433209218997727776630896799638605990029895993308616921945726364332086683961156432178774189228205065209288782296836681399110564261482190126734338234575927804854456161624117424222042574382728898380281968624127523800732412053723863411433327407808010574590888708483274974166840809430792006258853827046274608634362470968380398486892589844842385633992626262048837951420219847960295667723724261845923835008197990217845001952672483593610192410209075545071242942247027955581789569563388103702104741043285707811409379074063416518773803596000738327118981447801290108442129074378238394046734586606324305688031316568447293068755079603812002583269659698140163272555933386657068792304420483319882467152903015411129745769881706395549287842324011038982378030096098766204059189506323863531466669283657686953035784710362085883664544792720953462093026090155479770200600350900456900619653095314370719516912123495414138333501808624245002692351883394705024488742138887143126837845900002881788949856521745413357190228911050584679544220799240264984321348724371937663973016757141012681905113017016785150779844840803717613245555315854000010210487781315058041299969575954465090011264745535158295215382986494090475750730247402104831696382981018571489553689927564060957207384395684971486221415143098378009158186309439349379978210427114929208236041406682867966039784625716835462350588000973827044397940079092958945777980668897683360449998166904309368413198079793538447141268160753241595842189122481292045630119861503857505330265904986187722035798227464231968802835044123570468762661088449124913585094674981725596790901408133832645115570963713283316317968716097811195277370740048159063008261689820591393795880497040081427969713561731407503597978145744556819316340589808521588623428538681628051075190772952121397356985795893509363352938107779801386951233091191697974312895229364934287474967515974896659233314795394544215844862209931145560910790545799344479750582836061506805966211167194421685546513464309972124577507962302892862381906500925059622191932742936313067121011411548996652404678882893243910064565199090709271896605422952024112110978083055120987285215555382360943522785666261237601442787389367464292695837015872806474037397182653965280408037304483090794246528343270322476597758956338465564966395538793635718164706039044917566288111031234750574307347694115964508664306167351269752910715936061661937924252408758631401431759820104897392856538115981263564879882933557425568408975624427661570412712179059309813994172729588949633790887231973230822980472014103688127725809460561777204379958506566127527908872400638080722769890675404964432108596740346292258449174828061422328959380487993396218180689004193121503840545442534507344531233866899403459229513170542624709670115294542656520127240911029368913448397333720032164158165272597228919734461220055864661762042793401474152846196688031787339278272695291984926729587651680677705724134911933349567839468354419966673432840779754885941040641618124945688221451578958410154036143231301218006031578348217280469553879682837536220825406238922551734032056475805545110772259334838257980950375248421625059026897487646497961658420714652120569167540862828296798656485101702519531765058246621651139325093501455201598536906410457034548880112771562883975900250010707534650236642398491573839611996466194825065453902391043437824460363714756102872864244364699997420630086060376543457470580191333287839717022615139720586479708077268447576849913434571559959836197609287248376478629935133460114195301443083133018369742297049050356762313678293385253642546484630757311040139065255910002722360763806344082794213665587083916145549804269870870850054884514339880381686869210299139290570257873809008214253913795340439431120787703467073848372122521690748810512088535120816736509780391264186386733468946960392321799701294344303842425284482942586490210328752895902602905238388724729021648813540751774001812370123644811874773916742869650998880314768116770337788056499350484944847228976612565621372139925257894254000681944272051839788382969433323540138541140688435049764634909249643934330606291061649712984272761229092116595168180658957432614512152368158280996312949794659743568656599734655009004264786779539609005507871190317644924989126772010926925960185309939297821326376464437335166738388997473290618671279766054356163970817841459956878709514615087157955846393221446811014180735521689323779317654293655988099944394995933888290655849211740388690908804810316816707450927644917226867000057740855301722053223708335947743603090571316781751584592283210230221566506178291298231753215236661619984850464352603342685622751791670506937209573953064819891080485331022324218666616549829027245429296042119079906495274046607908125073820034216181485310065118233363756164730060885577492672815116472830688557703137050424560260568707114121064059239734301881042018499269352551282572987940902976021136189025077348811094602671506754255648703155965688744348388018602291975804966274584474054607310991519936924970832003961254887159345852160517902259705438432348144947028808049267722725530682783044360302577368849048547729389408767435463903585580524775816740889977185389206456446985184639411371407119475417420140611697807074178486440316389312788869310253837915515569065681603108934810340892028956479601536573205317981661821644177353795769498508801637874447915099174345356389470023688082568056677234907892176650855539376817428134187327146336738176321508319828024895726294314626753657859570238742518098068116211007297431885120381210055683166606116287406717840248985828774299523970421499308554297339778773854906666262650375460604772131366619114011398440437055333861502500390809248118689817591315817523637025865804959506857857691348207157375366518149261419482011786588919638497312739333270190764197218064795826196574812842580828194852691307138939074044867633345384932330679060522193023285547316010131382859612219898101110416699920389691130420469024163023811863495902366198600803246682681124662339810820279990505960795401872297025053786625525094501900825726364931674466378457834688530957145297336705773058721536991537282940155502015282246740692546801149442111855901335807775509320569345955508599422189437076661161262632969804880080942009185303272453511554129162879571163493689084539667631989189046890632852817174683914373266756177570920040607636343379548448693705093284044487074613510948543865662642270055430483434339750254003678463043120398575549835315140003634904622856052034169181987488894277532846377206388771887818145994170665895847658295247241939958703191420980971571042101099366846548411626295167815932964806123303478733584093689590659392108414685943374618898672396804109607346240569439608025249317835879252342541160462662903775201373610143203987323831556069674497735927129083680420015797246586130562733610899507116960467698818699953860042689927031488082330660372941272923637520996441506818505613480571608008408883609396397445776281797486473919580459457799679102289749928007668290650336504514547610592945061228221637611375697248494727331757666359048160718384997269540170079612872782852896703240566032206077300291747683253687896929901073372337226367260959343199090906344969096603771716454117287986707860690776141147551926793772260316782274708741484079977137492712529810939953255418003668447593295740340654654810435788376537016856397970388914076274075776109189894604871958955161850800733613265563674923307482750719270662159515939036279050280490206509212482334769276171990250761448477310463997417087506251011949832584962380156713172562015178034105578405899178264206026097221722971143371858856939014035307949385125035618774275997941166968838476306705504637366768179812587730045735636136170621636986694806277297052646336754125438875134070083062848249150875138996518191111816217933121087191303029063928489340184564900750248576351447140332655118469089354153332116743334053457108757911044692790412678308174033338976055035853764244874387194545909898592688797495084148237259604345721121006260341009720257530763804317381599149560606039002965657357597135226088193632972687000278089755425075112667372753056571583402141559299892517417865931138641700232122038510904508193965803750178056726636250460321743110724123736853559543522285023460170852469527213836396720585340872265832421644307018869987064275655468125868322132632922285967103821932571511714384180762373973557627013313562856342179286736164107060473775634137098764028446610178553517813351521356810406768155779441145300981701634145466116269978673504994207715004826596776231563698446814853003861791170895274454186084363989792412353326038952478785488781389309325917716260031847377706075615140434864812742896186866581328291253669992360747640259750283018028725196338055175272199508776782849709140867576894563209876616524427371122830877113993913481836456648005716269589766546812318919220579647329932614530411085667118406194716542530793625648087494208353317305941361101819955761106874013445608928497631018940440017934730256498715387559424489512459550544045214328281613128593816540758998866306079584194212366356634443351929821500601168636958945460763678309155532523703465360542719682875638778397874743920993152888568856421955855050134784380290485421798760762314132546721049596248642378069651643940721663353810755417519615872847872500135461193075534946746207528199780962848541750375940132851812725785179907468283528232132511897936597081362277123189468796421985274021129962427999459576008198859564901542832374348092755481861164349594202613262161249590388924361292850420255064356552801407125811807553525523562980808327216794658294484238565108503950469013744380961801874204713692587909109173812266303513425262263511957024312738132290229224799600493419118941767464424810253875999446962105695798999699978676172028762724686038881597452806774960809407595145588646911058942304038597949500849340421529641415724575360980498419333515944375089018477716850942968168138202357310786481138997824330740627473239026000084647621104611659678570976942605540490197930927339832600691948646970200786101625021089579318825337097343177470803359671038318038723183277730495118974128262282665179805238474141686911652468156054943925406671942147960815934201925247539465564621030447303742966107733346876839316343431439205816521355267711245069561298309862621266305484634207665594315456834135633766874421370008009692225370598086548403800314032234428762119418989671488862849243814985025997767392884241791359154380446863921094761726359704726957599910926683091067969067361814390917802946351736909664643554397254411084997226994114852529034536836870225829749077867152813972712817746064319720116949479791517072266420673726759757262751695373433382008133349080120327060166000172666064881304443567746859684939232859945057955573936032289434742251427763251005032946814487954247972073266082078608122324820938983248601190643410437739711577067035601860394059993140808656777855226727552191958366930917489009524438883907621051391287357276921653126890631190140789222561437055935085331636450502818468129296364965299912084458397647568862986834421236740521698745799791671784248838412290977727676315549242588960710645727258101264021694081270239784985169885645504286058069499872737747285522794735453363947051307833560385031720665606997836010152217734018978633056755984700135515365939345557162606054673996504244434181920694767128524553792369717534410700694514093259928685154687327944151211883702954835743383333201324931682999830455612545383625371928533360778651963619773943371803444252372285661673120486493490922101133818965389059267091185190622995239784306764859740442346789714586074993752918836128771785133508455085865153263538095571227854614040121911844253060685505731759883223104100583800130499168826626955638335680080428800667083774194101051579637768334919679112303248514068874551325973668773024410624224448404189650422064810940652695671475556707205751249642613233203515634429764672034723061839178726233109873440708710212899209291647362737090497304870065153218687350272945639629384180788865672293905674668600624369515668769556745778603399160257626495143166844530495297831794975659059749899416108125697840619402352749480277422952859484717743032257508110923896630042280373110414270059866576629198931675490876417719164437547579646195150497230492118832621568604474146872261082535487219330955243439566770924938015957602783974049741606125612100216484557710094798257430434737935678995561174835878041373410138765097693020662499962943614615341780242616303357595205769499667621300897113463510865876594279015346993282270329556517265841908248085124490148757912836019157519861454012319330058522345050386584340322159881105900396478172091130293438906159114962554420172316311162265667311540298942014377299728178963422990657051648035999491702463861367443875877880249717100126004643707204483032150852861011887920576356679027980824987418721344778061989874068956418016083474287093520125421761721390655180286109393417580465034145943272842640708638497660326404832826654957604330296026846587966364965336497341614466444301250569454227968425082936443305463736715611553117969409101459193389184281740216664879827240728329190002771678708311245031132488485413026592578455509804448742534115678926366781749511570282427817235192768191307479756555398562670702455426689720619342412079980504822796480829688112112189548099631978601377507583807316714109871664218460226684369366036236110617834539979356124364913547385952375436559221202387655729417222290551158893644318419227791800925390595145068342653103747102627349114475451940657665761676253703498519311027912266440115920282840464895508663447230115508372313882365427938654729176877874232392561184006268883533295448574214081568847469306196094489715527665642133366676484985699939013564136505818333151203959291042242958855024316916867031089288391834162849684923366245596018897844284132715649179708863546810812528761634430064513055604565340444382619371540394417534767514707853116070700282116567864294138612149343316960676582823688658712177148972389614069987144923474728045615126804999087645629993411974890589492549354306952767090155122166733063537990359249826755536821285288918787522354567672410132112798383334351197054123523589011393187592166232556352999078279569550754467259559037176638688735743111745778185967856997587291452444794411447241592571188385075710817341898527634656996480819658687463476937849752990609904089918502200243280546629588104379103669415375853541666715308640136690596289272385130439650102232269677233536932952706977316367005805122621633106128084138194058553039392480689624957463027405416631253989496246063044408478365064431319267506545397377787632341158248846264559742050987207632218595359951074595030838005421861629313718991606728041600972449796000595858928844365444526621456464625371962548716865014188618036921357152547826173195001439164078513222376494975288753981574785745612411679725325729447465264773214861467551434603518107229686184582464891649164096836578248034847048979304571468560102088908804794652208599331351418658210720212424273243493528341442068074501101155966506075502915018691110299427869375200716608583736526271303764241776571546951108338947978771680287165226257478501110513699952635830333069090881298631611327540513274761444103928225484585251889017756627279774911760241527386555323836326643658240873389685156294415690457208956345091086697609647751844832585204690800003160318334953330474399102512712694699631163539049135609047794752563697717920131265516708977241064933697936000207569868426917028987128669288095896485516620374079398664572740282450747351160159547336959159463843173576219873201163785008847855651683797085559458406846035323830846950197920986158721460814123082151660148779254367234364276466721646951535778261988466882624332569911489644477091816491103826382423081900627238969471944338978915272096117924649568671887812014114200601199942044490511601207785400178229852168952290660927775643430591080573074848470904289287134763846764625029496773917273719555908669720688490904836129435675882047901830596226271691467980921016644238346661850442136743951366642526149117163450493127226036845400332161824592408283808122848726280498571938504140553118758843858629406186151683558073148468458837415764053558474404929583199996485032368426900146402721293254206229997179202940233681556128746695055851198738004189980945748550767556108970051646853530130126232288434347682057762221992472619446406861651397964126915375801369715030158411950061158631881875531825990110589676569876470831412509368971521794918832849757683164688667332930009957100202635139189051237791239916184288769858649219433670707556704761730136452599385907339899813136087654900452393971024181746930565138072773402369842945246502391231112473509825876072307303876923248401456194816719526173905018526298924303021315403146806300439034442312322811942949516498702337476684040747878625981256670474077315636390696959591617897875983785396977627939969378887223398597556703709112524436413502069193532828797743581265272108663261300334806436041215231772764587101017932861518482171803057585061056932293929739321443445484309043029154392118280257442535735219678969899251095391792009218096372624657291772363033844342318597836766267214557696383774370233385977538591574544204708974933257700755689157465314272287948890321675733327570880836400658356585786507723622863973970392590311833174425049025836198905504107143983395063701757120886425295674277543716640471707064133439031119606219207037430568073684339800104536283792670663043865989629692767753027364663903509542272440552908519575444751196870917159833352719859562285258150943319604906788766087976903645731042647110330767276878143508341704241587033557155986391716790887078188618262602149573117256529629413075290409774608736826664494610014491927911368040131678745270013223980252974576147443578836126251035303404972862026199172113853951451606280978042166062913056464222107063295096071786960462931896934613334667382516025380817285176218925714033006876097663804293479102887855530961624300786568136085939178528231171017897344357375975382948237637643885358994742378338899493979589889003690111010009363217525478808675318823263343558311963100433653030473786306686309607617976326653612679268330615772473897390536325813309817473365909396209609498458747903441622407011200369635826451733180565928394700002408380911285275022309500476803039762346033130454097489472925351787654003445887087776902168688472208269078853386572183731931713879420761909344768391321273386532062622116705668159609367278049701477769205959108036979432652873128405384600122482532523042023230894562991482282888847871162802921973274464927122086682954723692583153393773477634027555617593880179875604876698407144757062178764530160519781517888252516327921153608195044178128664997047669474970815258558082406807626806379260734618168153368683950661996738174881605713401133679021160880508212606053371870981741454170477883621768763009860849341220891406287593965072479514809428683812410963436274300243964342907572378955653496742255385887612969708303676803761078088648317525125082304943051011732773506977063822010313937892582069749750374474317590118393519930144978826008168208415183328541309663606160049091753342682100784356732271089771012128243440952232977738278420646275853694569062051976540150382415930041838505925139911839130148318096461675224842025709113194695411598158754231503392295642096887024792322165695456994896499047865516831175950967663717706850359836916642574251874769946250533312649349625384051143676244633133226573338979181289008948161123467317759097420800708393671821707729294239717548113689869782374409491393018456260992193636465935157101096755919808445784809905768449602090381509190054580848580140315484691623538339940498488198579706879531543874998562897583714781127114919889122364978473175233672550349728635714216510779168865233849735760864204426328033871944091010639020749221137800072410653448712466634077599404793023808185418671879601553503298026521877019353825762773396193287796400545474499719234880127692267046294523866083381697439590236961156625688226237032389281384216629966643972274170998439991434775397469551646241570488120260827271878550366289105118543767825343873731180527241016639442621997122935672665133640429726904963652576549367522968468866067267724020073587183542077911855346522251623483249177262870866184859881029747528599969277673211595839948564597602314549586208600699984670508621290618759910292046200186310385203614709949543909620664281174321458233644762591346199171732021770123819813202962375766110450594934015520192731107971004541290561234048753705848459810283200990999697096016114673858760586094180246917648706287397723555113238955347735549243851641095577018201846037998179381611723542626679219876498403133636202259080437393734599518777243295764232613900668258726921830174226690676421049073112750208080607109559575599270557140689490768755356576030801818328135478007245750912468523814706846508143922984416968210768043910887435413634630190317826993561120562276592451660633029072510563845775125231230266800374991108155517048678772263426473810435645558935227907587959840394803219776182374989385863536266721871730270230710494139357141073869646158994678597170745381376513668811436635862659792051872178318509242874849734156631131207893080281383215902486703463648359334902032853133732329574137533831104590706082219983340705057130404945090665663692246374729643635767291368365993986465605053722231333125764110426458647333198618014526063369320674297653606510016896877674816750441074683006950338245463991715995702439406620263272686835446012551011025006873957257228771013139386075078205251304780589975474380386929878804714337793428708260801663104496192081076752661879303919540594540151946232501956363470076463988063828039222183918528496166935446029995030604384323063762324240272838572517598587989119045865345171310206168991384198683127452107218269328958954008682786665347202773385131442963753112926851342461883422230722919303170274313297863759779447991952077589224275920068726040311422450250312901596631988537245788840401344573783902528566424173404094066241397783729493212511550317856697578704311746313691086842288718198603565894352201757098807683113656585313874898082118380660782334469319845992349327487853362683591179628819543085591518154597869049060570500544613302333741250098415344087062519005275541469542590107427083014598850845836690956106084149690445495306613225862122859209514895774754538241270742739319393631411547871471429282104739919642772496122035558126559425459576412216725095495848263925259369997781380919824009974489814197115863660656952610895255881957509289101568377008668328695382120608505223357016267012827794574065102422945639456387280733467924023210745167223773195726009071634748449073327842822284347625461253242036126121139961830576648935870933573051296565410895994369109332548262498947006192860895027668597831626981518097728288538955184620444156144062021019875522879803650725892171787460342123993902262067226800341141533666464592005938187717285750911129898774158126683718883613679866781482952003060998031421524910567349650600145576080669109489132964049967939387510577664041581894533248864762865375932475787021849164327241467812429560014782088605054569158867453044925529983442973267655866939371704442802269310062341330328323884904187776107751522454820795874682451037174720816550571596911130242565619339908251691718497329209498053553105686418657582476386329260896771304485139121645202928587139908637324803824619078635455120981656456057172098663288095172256069956094784778848189861443694542007213262555863953635574859274487653401523284516195767461148876339043286560239275647110759611305672370659256630192393417815988203393571324601436186918246023834510770975134283969161196724362338488753462838955771943806213451455856775298269015981359763051949949102685320756469849085309264719615958124796454881965011791278728807015312967931949316448255768125130806017988850168975825958756749441222428073589913035997846321511048026438858265163404327912870065798819421397380358829149297216052937199971036744270338861269898819527593318554797695405181438667365464303849437712305933647092602093690690875012196262427944589687415467928025895595650959325506293053769991498396254507275465413224084572461335174168441618062493959076102644183084116590395521622573718267488725905256038603013522684441772106733059684553520730485508401409090407117694787318551011646959220668993412897192341268448151502252629734305184630326896255016578228172939011449440836896589907635941883765773187243582485964197223674076502061149457189207537944939501563840771979924481167428468422027764817010616831138845429534598224392824940228555652410046260392384090655774732193933648995851176327808996507654032650059514631286920793837779573570773171049851094844147613838114945785009512519321802864616673026527532648991213518912920005508253559229544657862278833009928711525840984539491166605245012863183794927295405560229444056707259867708717677732507227679684393797888996960407678640311734751758294662944280391683454658028856479399638800612604419129206319896540142626253719917575540861108441612047545254908450446899079372152614272114374893251412975619835896169987622618573950356697816414577965748426648655738372578452753482666843197096824964832067646254160464798339544892437154136251855296403558293698114381179579642168333926292919999031517053992671175931745202486144199780879667248575907929584750607764512496291840781313677476392404378020591644321127606793440337573912875743036887215663675423616734014875265687257110499106469796849849365200529213452189409037300084411232050240601248468494926526385653330272575184299052399031473204708660082632258311928862880822556916880260193105845257134571015097237974783794679172522371625167174309395012644589027704164047078405190705402654008451829149625027169273976554130034269824030288849851106648310888923058367458496695737144257546848790130437875976738489558461952934606938188408967140375316312266795012137281758524640111066464236675613751120417524637990349213076415301896482826070427462652992088851720260189339998952177384202291502686618686330727208423926051772304068785598381489761874944890637972727401697716872941719497708322612721327608788079619110960853139920135919203790051254377943395214767333495104564995033546817491252645540840129479324352055367313555519822350577983939993012985498677004982818698438152494893546685966254984002855840638261581422739421614664581063564842364010611919296359874252139651365777020939045304525971583843678873120328275218650883960527847315366457604768161796787800735037144387971145207199972694608409610920265967530032311570254308536010376431098147051531189286900465596249294782559925608512744329418769921102909000126939311070441961325869751643268628112038961987019824157428708304860421090839399862579280476172998617696018426471471278421192369355810308978994338264738535328197156852661295752459365444488191172516905800599924709871865235147448354163610970454590789765856464430126434949386532346973138608930911244289001032287823986453663277975295154380714603216751377512087790072347789763575025634047399598668211158888406571407208519221901491378228912175250138206308516178478406928425562026952315396355114182118782344161716529537569726511340117227338443020368282731015977109492179708399059823323895914455782619695027950097539690316901195194878273947348553601171662038844236512130053168135181616305294429119866508839210117294556282064240537905649310585580913234328426203187989562948315061944942209767172992957718267135098554357361167176585144099337513531252201228549805278879317982041284692986780159394581272062933417626107511328473773074041213994916302668037128690404674507173355822245885610902194861269691686571150780752759708699613650903907558937812483728837581464860269434433835816962321854958915224402640196406965368792300812850169812113362795707988879042717915259976169209144102718116063497412013164666977309127626524189015842274274984707769317871966745485427533580164495193705095738655359502580159069725403373619907083043907322514956436873321364004370893955924058317064539372142094239104438131990421742065706345516290132367463796279636151990799089280389322104545432310217310343787956764212370250661834509304878159584009275372337046723923802729844659578430842370801288562802995841744325512451604924506374032122561598324693105308530443601392227395006976736314550622033154049356172472550227721437097256056884459402495095249515365251339398787706428576662795767594621754408883843026009503199049650442106344002709787258548617735267936374597294728286069138005688812506819213897206922567906570380072832106060510663365947911901147478803759084580396375395022941538887412811284825531099353867047793075533578204895317727749197826938188982961058874876402947217571413765144906410275522363972196535207699059989320127158336072183479062768040356728015079234048274573496852369128823470806563470269923195197857298723631908058756847428753752695995406189863994893599098732322965582311977220048271669876488171328865256625081935130235523682463023969365334043721022007302281113715082743254747521836872549938758604078819107052124705388097257676590584932409617921251499669088309580058081293592544063896919220940490702320015014893972436865940549046519776269038855387097730885648352064263427564063716151127644819564392210164981126060256806965977881453366903421033953632304125081089832649883741366022673223956218998907296377811737583297876525201925362108144757782917645567396176504875260592777798232638925479934462851960724535620500203797439776621556487369040413567211153692942795774935210110371424396168750187534608424991487154792776519600421100844115834769455444223834934382275018918262777604084548568642979956596957647901197990414395603169462867303301393995562999922342224643296539518472091945578413876514819539389363420078110146349432893047017856699289398145200085751119868006886173475146941415673342381015943144673285337969669695366624065229396891981580268839284950880545916317698299415777851678198333925138556825653804214987337916582046858223258181025311776612497671668742564721895058468991323710014208372938801065133572913803875493276055482406176417102560394877683809501214746491685169237050098935733610464860240345848421338899333468598032966833885652768114483262844521153825475368918438757521212871013568672118141317473923923390865968576096422221122009100122786557466613196198365766780483587636940967325413952129933054872469421801828164769563971350261959415127013760063220949748712488295323215266159183141587592307243012092193982908259770879225868075353022807090935716826060616736634366964387471017113791430870529838162765845290396156144810465400111032821149256222856772675984579215725061036604769036179936643075925095996653572000694878835995486010314386589483107310560194993348477320663877212500487103041887254278775447965985064117064972911755626114598439477664518872109010268845503713141640182772993684348619349114176992600068501420373559957964283960342034754007065297637536971893650777359374214610814641125869921526107417681421866327648525508556404009607397293539791251086177275639257830371526528502378774218687614455174929476011670908644783365303948739596003643067270378768015785572040963361199290394454118534264979602232437999504853466636530632693977875109581820776799102250483728021701151808199200863766436604056304428122266291773095057418216852250697453009266516953078909401919594187716547244850122782203242975965257934391035938274384695079071563965443061870526683428419513851002329217077113955967565975701293866964486101100368148083720712887117244768026057180884546532217556930252837634448400515022504888921018857211517993275449073785285862993876024255296885340829330803405300892304132844149112364794705282491568522024762435415177328966143687274805172760208597152337547459586145294975760976783103212696234672806262647249517473777136594191752675241622330497648473127403632936586478612281098631352352121027428789651987810854133074653817250176380670023082934635123603764950957434348601883909711571471158483672192099259581157153615865030203019942284421982933850790336795994131806090276325298482667013482283679941449242611493069995088057729479643371728796790588169517549734830476806996749680303454933311682115132483918640239314164627084861949948088951107545879541130586064318398681854806653333461684079474595356963438061644575806836685688813124454006931821063936218842824742222751555406830383897228885092709031015371543159879107944674690043694511621316672748783804212397714604167869221317042757797904126280311665915005039956790091372121387386988208790471800226652011437032384115475250081584481833612014550136009398465436676827458048338511815348325425971230547019402031211998038574678887316083690906390601222474401925814913783727682654440491287205434542691922878900208970295891729800625738853593311208062633991436994853423231294882114138422830871524300738130919516897509639730801768786028818456119460340393402800529210149153067291666188793501187145421405448352994210192293902023913459724320473607243847475394015843950680787766921988259026295921335855129938070082431259346102468952746332692916009165731747573744120649650169569091161803962505538171179234640945671427763122584587914490621083576662558542185335579890057382422405698015010385986731228230017026405452119727256187344642377376709973783203633939237448262637582114707052007163674862291819404280888916679144827057531941489521092878507268331587448966087960543669783441606154858489001827584998855902434943455131593923920693990925972800027321716033663737316221872380186985465687077901246935076115152719273970096768018394427348347228707502524427350691084642006269674485948645366745310691797279328985579144566202918994297634124481374054342608548140124219362978452826822037252621658408139442550354165101789835452997848454841179313250524035756487380440026179795622758615902401047847543119802879869357589424966120418568001980414835879840525292476688976134580512649792716810789566139659058975292534247886848123159702106485788495897662356092882892946839050875993224294553177177376630295348692920011799397727207889030178594760871710096863507695626444211856694391633040408521812671173939056015633807725755873976036185858976018644441246940908810256925394861380243208084669936658095066608228825872379885334346136612738783290237767311585015718001236687576945261390969314200548445632700417551564974855315711689973290128613903048728251680573496663334466982120062187545511758652923696475953787299232980978423984201125041758586101430840472208083466086838669330170041891973327844723313959805526047659275259416206527397598965931978506353875396523688277515608817585061400460373891819651892985878480649987029172464490610891616734207353584431733513175083446506677391534442591162116272040736376007685243492473812548442038617837552729548329402761926090785223540852232483488896807628885666391732733528804045332477846665149518066162479678167610220182275800665440397808927861340324676086782236634703630559931179494429196949162723123832441310008826963229991160803146741485775692836378462684100745209211018647190283943170173744206387788103901661630156703892131364893609037435232768669732031742787861718167979715730854468797156402745316071225417137798407007641518649793533847817867446530100490162965988889443891010116026287764168643235214594463492233674622550098213704123911563207428445789232147110880104976492537473641169408456122283357354981649267945138193578737330434154906306582495913148585499183687763173805706491047439226347248733324272924633973515615441736608541392076086673845991863421709294198116031021606565808512878097229989928304882197063009292791712142555477841182577159768313375993042361260622147130077102674332781949202154066218546739578089033977962407556028704148096486706445168182340152802237965471343833354356142502371655384465246356779716970474927730330323632891271890071775104662444639236383154725245664184570539783007822679144854116192854743903236857671205660221791475168247277035833830175571236961155804819135246693821678177039787434663479358241981716084204629928099113742885204541574555488358722442757364762008617628336973596010987756218431119354947253040916745010751970570045250960880807736827948846986701613763818843202591029311145540183503099945478446970937933083154568590485539527700364250566013644621013746474280864961497292474755123084349952249741026910626333586859269701934816229635412050769338814992663158834694485302752819682340151624485104585453774547006379811508068860803068093167903886731519765221747978264743621829803420211512019360494274933283853100571599442595296179288118172138093223023296593851123324062162365157137063170771077372175829617630123924965755862877402979414071100256356650397657848944907112658943494807440705140990011239412779959316545450420690431997436372340281537731116947722370106662350248084614312992900789183593536471034286147977210934699432830770636797146200842597764340449763375587255492205434993352735831909505122514643833986170476869724366577770885481893478050709575537276994578803511257384326147504445092374099945062826150508159138078708084564681463402876150682749315909981503524949558633789952162398319052417635273818903435317831641138006599880136503741012446064476831418754924606105252717470469182465796464601063825124295246756307737831226364908186010741717606227786268848954669082433532386075783570830580486490462789022851916449888899030205616207258799332294218310735553811712007655629782119779349287348816417477200597125307505653102903900452204242817329916918188748486790714777406229754529116326110474459174031739559920017225840658068392811964748965056945237170927178758852040452224843003193223495837160349704918249911797396662900548995559672305287411109926399375646968956240450558997928266721608793352344997941572039172102770431523075715788247672090889462081910831922746023926279902025221042706797847033450923069352466357915052564007821447995650717391163269583119367468422099468065020631984934423307954625219823716112168045451983567281473463728094149239441224351071648511599783547580386022875469333036572059521727692129982109344479012892721870792019958012224018369155139588013002377945272815832143968368296797695131515751824914329592803935410677327119215778087153652693554480233316902144445538158573555009200446917586427448307582018163745590416786297344436274685357987696981449020585314601866746797724552174533507380514285838831303574425772678500544592246321851494190144165252672511044120826441885908065666943908672834896318620860479445062517874454188942076575138000159491745316257413310977735125316070906744853517789136592149747093201179309154629655705094902670986174726391149063813052811163424471358295227025047076994897625796876957539753762790935622159053580155172166271629705684968759871355722932082596358338785180358804206568087513589556685126492882117462803749402344388576673529448917309755815178494525619779596594207250679751528940253465604750619502400564662443245289423376247200322094484887446977048181544379228300767465393612472318112117094338441835606336510371605870501964021615242994642585345039184581066294877239689038362795714211560000445861803316060673048918908544414422775237040093668256381148928043011394070414114778409912676357950649260697932721516116208687627814507140656326580709235811046710315067478995813940842205116401716794684336048216773130202351459187724806736146637809601776872981952951292989920030082521734748591681966167245200623538546696765927820210347905016963048902868972519918134458802989301140243689874890720244291579554666222978479048859745312891388424942103523666841148938809647332819816654546572168048147625185842252765378746517948332325785430080091094247317113930046143930932037240399305351398657579228732986782961112705883915038562330324994162877828332975141490629847988743036861645694769550381730273569404427431136021325309635621152226691367973327828309948586113439556291337927327243984527892178667918495347028395133749341887209384749757295223254253545298541374219365674127558847833965178788484388396265106503960855940626843778409473415044390609434771597341390957966858458251060535744385290424732703278439944630888534652540703776587044657721945890458498269062565441963972429383135472424410252476697746793883456933086908789549723050321884313752674690565303024259071922530513215222849851937832750097854702264770448371982214392079272159944461940946685761303634079331582950151443234392440464041590623318852818462500446919763838732224601656088389087336196305287570883902660437432447035349417542417628703421561569729765063231040898521233425106423217143426598619652870783510898052312134634124063081798876625741347258990672646430406470247557426017786308059976717567180241419181456022074592436282659816893079045625183714824489654522546183659702449215834204939697866555102998313082026705556685742597316331342967339424105953357025418093571919090893423500276057547072925421415145959728500439087353538544807387098106331184266200117592272791360500825366651654701697757270189908355356712285416077255842106868327026046278715048945077799281046635227699645316458743333414067926343746414779064582109204691304110835038008879097097254081421773333723365053570664712308740990032062134218183905393128127346277269623453930220092871653247633996523798619967902146604739353773269586238048075332863807183684619832717239563868101003896748337834083390353813016213820215201132656838745731349803801190805056694609762287338647865718114504706695998615183501334859781921609051065260928556093417696101672974900287013288847658385736794466136943362686707081783110160677292791156295682134341261177191848153869085567243397722856735856994284929712995801171770753753440722193528718913141024666505934851330865971709994181722992883784379199850375894469085488781386840837286629777801878469570014881020037519981905275474286066451397815272817964837018972240905707182508273444173677444975473766702242270336382551273469363217660077125213497691011779070253621788739255704909019443085039095922514460367351174754539878487940729397306322768275713053100389093299502825139595509051626590992274760919608920708787176693344662530441118690055554932940315537146416377809915028878779041466150558724051030509261494140252949396305462467050259074538579514068156538125744468381384372650319436995044591737569895938833655720745012477705845478596857546664309003370465459774189970707744148356079798582816236615579155624812809662461314366374937898490396145995775248101284541640790378246675209560162773673063879024673747631787942749662408635273444010925301676948020071142336695465397659769714167368788570829287499394793986950874956075434921194738432837643214389387451045506723020902702549434206322234929891173352089127512389447956059977592546722273162977266993600686249604811579356674856304295976095949226528675871427206560112910076301955840837204147879007188246396096029967083238544654689772263871840312036853002674069497463407343846839564448039680804847586753421529258308391537232174970037735420254696990426708335405471399322934754738090299976809931783251111561835558388287867127831274311460295663969848413659634728650292971780729786624950905595849719366811169807978796682696259863045699640741486687012180165034804240494691445461324699592856645253716014983725526665165324967606586619291466047685562922154073371110233078545587407959513911406664055745711460429499589454048633793857874367798431816073705601339879171027407679686790918429759428470481689021620042531482232123998501639181503231589594423509613432077740119992183349094298992556210306391131111191090366645338037269177272727390488098646795222182871621467017160771657048209181732911237806175863348446820611509950121233457856274505030973254623571280593061743009188075204240353278169579643064114558339896100096283520955868623684592245709025351886043160473906849307907662141272067330931707020582979183711427123309601663493404902698811938140287369036305670363229308678411655183263497923116946205136879232680796471045700287716011364636961622474815251415577268959252650180577997631626922048312453864224587822276088117927766789287492107176329758704223652477171739480931976975665659033525181060296363728234975245393353970799400345391729841210249652925667147196685716643759547156678897306369173459459851169138285983756561663362328145866892632834582745124940063159106434572861465742027343362482114865840157787284103309092699755791982508140453990390990345994704229171318048481492148148063436733304995992645492284347237514259596988426558643982328133689961234934558520625591996463987420005770890652019336300909335240706168080153875890663221181803720195848010121093405300910341547453844457546134096929352647315384014207317104423030513649036807297632106879549858360314511344502507929855227085824996731879475080372573781022267347246866952977979675868396625671400583572222037968201278721591739318841899938278840597383072968563659065144569946273940032733899536512156545945663180592816698111234002398017381508644761810544503456124730996038048855870841151231179059474034729282654246327175370019207827942354635895167531797113866918878877018128476054025851116437652093727819691086845405076249901538377285479420482237398820897305349932137294262812046041594977253706123704638708388856380392221370239665270914052647809491838829296259074419681061012359016278842743580462769269754077164297678096461380192789144413012334339562423585926848887615426434631418879557294907932361058436107255683143267993394450263485778912935339165790905023425145535647557703801498289919569429960062933350018646487615321273851781734482428709551543619551472931915080724040222851321602897262014036467139924823216930974763138937075431478792542707392913907313286795194450188811792612280553095383298528675335155613970315396247933739977538028042957961727617107284376884545792825476717073899707220906340000184857072061687035871462574749887535788963270435575986502914856456995399305372579350391540508468618336937005238548636509314720129213068403416250746068656208980869042569188442456033891955762637631137235495820132295105513070053900541102910109618415661952944702301978751942664127332335158220788732009111938717478072823506943675071798567576097685088744743862629900136475081077577087693057162250637383618668340332894426686732910114324476352169131956566553429837418740274813487807913419264600093647686926394130285285714893287356650172170575731117761945460747583050746010088089491576326765375983200461586808586435578392411096705122468984921499959222583958654581371037384187034289008604153814679609618101176118345861018875881026477081631237273942808131424021623602393969537058190317819022160270520310900592538774534352681154272302437339340339651917911941324419899824037249453994593812005821801429147439321456354861049080942373983029170543510727022150910658411441104230204566605183682893022283259584073658033848340834814328103558883492526348643966204689119312332591863638503108466796242425354389834220661777095543498010781771517480569098352868584359781343459808411202637442308577055800557333547091847815168522442592709180809572566291224049136312290494469531936236762200376600293915908805434362835050900784156737342017457386685690461366285406632592348549356869754865347555813744845412703498338025156641230902765563769006077886832260162529481375548630012827170924494517981613015214501251872658518062919365317036092329353412434322305876296215909972650207920386515567888921236409033262868882567357175313007680185983843984571153145977971017964788366002997548622093478286184481760341116110038213862195102080621557856559466952077421556982204846865567027002232417631099198661012665887875760677286848187671817756222528018740483105119084846591383951910588952814442979729820252905383835875837312817253691665250952860228443263160754630646790793693783423620991175475204991970257559068275808266249321951031728235401993388251417728222778888232264996726293484208408287967026858012131346075883983678123884193619065391740431179287560675612258690003727605796414977951659235708166638048893149860001027605310613257479465025822816806265347744756841046669727877783206545050780786713630450783073264183044866505610173079801936946947393843195429495812338129671215535505754860262829275270322341757451568690881950925198260303898781014654919193170340865263773138216778130612887872042068429830491825617161632059489203671561496334955386839183974067008636754530614608105126102329473504082005861251912085774913374605684007483027208949995354899232941710768931694243752120203802545556489467759460737891440936134120109568721852168645788048969303786838623349289539696621129232460612219314320635065340752845579963970121721539437117979807273858284848126092195760801992443678869409569950574056124866333921695527175198528162321235584080660815905824900003611455455338104366209416950440118444280695411944390456411621846033165727726624056931512378483996368050242804687127275780846861846407862971325477399680331208707056090582397272437388915740934619442728676010027814542430277371382485517847971088221638127999997919493361501422750474335678901189926447715998861160681058722043911652688585076293675930305839945570715366620101408991476535763213345471333178476666960990777701880476450657975265516598023975057890353394523402031604823962760081405845414566084645399562229017586591950651856049127580765147299818213752662226781275994186074552035919109260997706387176273431147914189342305675216124480555558056460339007878237409088161400700784308894324382345884756691827714393981066374648251284946109515319485796268571825773809217274551792552992857326971309426069577768719546448823579972902839589900737572991512422520572449207260533954216443629244248502467681711545422919340880877639906380213240809946227325440504753207800712116945701870275616082674549605888821378076256832751833335444708640089660872820431689746085885897580963691186376880791201464918645110127893937400951796141316051862341900923485115929187718683818636729471752901546739351023715419862503621052732366179427107550236913935058906459757953935068997041189695251760054447094196250291670227082151375324813543457103931487280085862103894201530782828591342222152937993873753223431904377434138539455669269189162963744223419348374802694040275736198597801970156651669884765252608001415578668517713886925714807109527226027289045334539293314726067761398426379307111672760410587645419517062644213327948899743299893002866925128359293975320549341131098853924434533849443542803022364713109164035439010530914170969562502220912571850707668253991650573394298196048161749572184547398105296973211395486001895892668728428152698282765904895233900286309764742949244917472409270706437715044311120091668459577095408464715723150852240024396493820003552857850163817093857829475299988477826114088226799396372789023991339992474106189919963780410488023823591638088519307503072022908491318012252310281941504329801831836019494790888052648982874957573285297347794921643234566088700094752842628524776941268571930893365846826985148340924576659796542261812315522107848731452877614041312469136011271544258771348740709739140634183541799496349852487993224192239732982736877992670256326120165022027465485079779000591639238219604469288801748387218386876441790055627566074388992692871173734079088985076614938046053971258367773829199253828122768883037971551952727492218217195252256544346210123037894605458159525379442145844298994700363508230905951536251405217155195182775688512882075352748479249826609714262603938590694454937548012288191779289396122412375583129738830847375470346974296664785261257227280627210032750797598128443751167423035371293674216746598903703519709922809980122546377641958993800788336420454259677667000692714620425847446458770942819094239221936904410294209836855240737331685177179808100516802912152954079729894115015405079796627190467034055126005961143556983629156859000194811992693891293008602652303204199389560871374805785716964765891833185994377287341038341449840802825605145281589687449112433005766244252015999309775024382813148245076124213712951548095824473344954382703179941094584952536317235118460345978831863403302920988092180046478312445307955024700042725763844414700025885586940166367810078294895423917946070339138054525188313064542420267255705177106949622292297576021608750753976194114438617716752426153097706551890171357061110839147984123299711605768763302819585032322340843002382203732830351524400919553001305250552901325874171158278091381689069004943195229622919456625404274121663929867417775578648957426268707100884860374856748692716754479258949332722712440810823679763449981921005330237749817388147457888441473440624559682928186578793655298367616688904303883620626084185440260060601199773472224852205558056315868361672515053842969815529044054117605194557482339465163501293039573179337745352279450352724707441408086524972306844119986922388311538177819020661462460245805911574066603026538022216540394555780079709655358310197370219908778798720318571748508634092644663869298593460116133546560594567340450401264573147548997282413859047228140087978742212947218043905834900513983385950991567552139506537434492794418288230810927411087961552510647569445482603491018306226770851999587575601006036954848518052861460957815001449210395908223004104728170144296636259057446856201969007296813030297813062818752492864797329483518655285657411636517714590722829772594322386295878238225668007192297123871867982930051434992812392601034598127241989888440784354896149062923245806994859944455396222190272461431482739968209119849955442347401684340366590497602591649976362427810617385402806932882602579064050683366195313010279682804232718620321576376545294144817921705855725744907141438561957634214488015689993282404660635917570027915486971578173201039648994749517917474828653689113215435554092292278107720786495814649151326585730613389665261630052866402212655330490922903685192136951995027830553639365666007230727793952885899269644372175966299346753842170519170601568989782487494235755822802292422330042980533907294040827331206809174008725380919410568852384675905064816021070517779369539762933462425201155846383021563280756374491821417207942519466520996813730906969571862509730583168101494944513321182435594545209233899112890161217588459927476147695384790712736490951792298199058789606994308874185691593887696522965685211509962715534195342624618993701783021403500617980772908121460250479810443575812101047937202657137569284299662631715421796790867946609523033723481383827009280113742274734314981891843834791153038301559704926874500552580543460627957815134645561351467878407621166019208799384309305759971693593809939282417440845755016742016403191300518710408512464979076984745047920395848158965013933518585334263954685829407251991972910022753305502656462987643905879668517318711351810103813462047588178878954831884459431650147364285078860501597477236979332008023201716569926557923321025719880203237964424153156981328857581713008180517752951024191676859455516491284008550794256579086638489465493967846111674922278956708981127058826731145799054845070676724404052002017821683950423421752191148490709057149470233268636169882841992768656272089585355266356551697131825185520418303828968580332147980931825526471511392927460454251578470329064680941666891446724165645291758468477105616219814389433900264083733925239245191400636355955989000223734832136397352004452522109738795943389465162201576443001450288979479070981027355016299988356325764169825398698081863403065768414141378995455081387928539277838871990247009295527460982144791212366974153512414799986002082025844091903095226197323276335418531701938441281920412722339977720760771632659494044857650554930289625741418345694085114799239935269947092216922626033560498116067972217695045184130433384671111590207892030506483295244151317839454500559891440771147423360967923674549985208516607006979256233619077355467934503227297250653683016484589947285196955092095785309708623767677093593797788435219851271769415547786608027679491414058683241546999872966641909756133529932125645961440042545907874222088071808311069479822914839813358504730893971508912070335217823116580168020372423522124860527399907600196958514313062362927515398084299094902092841181556806052955683425350616826269698266539285544332213826504637781736735574423384754664280058940480642659842027833690799576692866145514031176169557768265759773878846685896941142890941850897523292004898480109591986560916167694626315725514805468187316230447536520477819998627005034824199820734719389242918423627182990797285254467340624191319616734924404349372685398675402898314658135498577225041832944037364126816010110807390459953962316964181391720306252137300184760341379547045111685748500835560550283870746622087529117603991701788987000044998305725871420056689299569835247306686422644132235296566957662169702596925960034033757306143048700483931690394895079499008321279963823664953066583363078438655079795524557905967637525605408249928441534694544866966571649622232557907377770602132904476133100996697957506382557431621963001432327085764885463926761846862574832865524207994208902728633716993328323354709591454029004077948200442813171093937503767944224934305811494532959948820239598038723016103239398404827979342483005779000776837285795494074104574963882082699341287740419635700047309837759856926742094809614597520703178532062282967033253974679579578469356249695513140812872738978902122164273496411762680787343561231802358389606057449426622766792035889749121798249683313112487763820031040396435594337067131110470702046628978231035089374687636457352967130863457003140920102460811316421161109297808815730321282509242573937195609760618492667082532548804511251166815414267826066929941667033676375619494499949312315653974152792071238136253650011935298528225483455898756669822959323684879487924009638249474436190346009694097212812795549252201888224235468391670137956660744904685454765585022257035678268095925042611920314253251936655169246710137993047646836907432015319855588117614436118494404883868202552321557641375324277596549118775464719668859009269257016133533086083430374708900943974168005780817131075235735735867707124518461282095729392473922169080484809961020935719501699915648920793051019755088254744017452329808389987113051127729747362057918195170720292315898635289682358031194384770682864060841159501209067341132548694015521863385040272048285381334157156863562844236090439963694970675912798212125848242491166945901866741846070248755927729454814730356957699613995580989917439043048895755002567181948026537758367188083146470822181025821956210793805717685194695983615473130004741029857227254733388135414804178810426560676820868723994509358215328957140938060576322838950985133149172666773985465606812195985214078508938494513619295986901115645275696150300636832645566788965017415806196700568038339508491154417508925335854519772074256915817956731648521586023677382211179964502277765863466897369491032593735752117474461704767683712147772345400894349156737281091703441827945800981796462456304973127950676672850085572024411978334929774368300692008878295787953967702401348393357565924009047946289858846408451848096156081198878157219415231934501615829143065187630579211995837489806200550210218973524872895165891497637986032220947562872646117056228302752682270100289301157189291963258339887077071683931788934684307631280633942511754131761291028392073377509093635680306683395409693098657331011671380058765678079739962630946057958413326862896360858766435553780349546098864451453342205376362478154456998708285894835747259667194682802328569516692102871821009500182585662799447468493332167050242598394482597467732872433776032963065948772246831872063316949420674390941076221020872340258651805883273749948716406306657735809489259658740419650685644127094377471627078328013639399463782056548501151115996292990566367367102270046929783647320514176729675162389207788723530690104595214507166368616382572913740197729624119487923044405322913276846890253966040076428528690593376295395850505016658273647103799299499909933816589078449310895628253218137101050029343756571042735854325356577436975524483215081473438105300472344573585363753911163950282514311854976627659106933922157543919693332203337092148841064571306545627334090185212013259391088468353598721322294105602958987525368588995010968077234406016120235068132638388511964194434715457673271125823464269086887145141301049265553242181767060348747162339931276169414383600818916948084697149658744966967025363585440221184790788896787319242918349285876327585220600410959393937308852875110208485427432470572689001379929867122024841229706764302124842431292276914908891940373835037477841873039906675449329507275226002376610673175631799691551237886164043769110947326352152651130886823814849808786543157461533437544372522146497975998037908216838894379586586112703085684694500157954054617132907560309722658047566850756561684716575330347875532985199345190179836552052527011682646978786004700228131431737483958929840977903891819762858563620842959067845946164233602589126187114607859216424042356402125613863163162968124910798947850934312976741338757216228760403093624139925786989237614664374597960868618378684002683529192351579397050726646640979958148233989876204853108069500868302316811273538586663301826636345236355978386709193990700276228887687490024211091407313234825322759701902526850881150307935184304727844138528169057458532467181681262072496997930636864183672730219155059115525584304781222357791133379893005625904904430084779381915575680225226831443706035989926095948496755665288850294712372917805442883884235388444391709144745945213694090048166800097500219832805030793957289921043692853686574484381957706508009661602731170751800171514454815541416488954807690481022529397270549687874394121953028690062252674790912436414749650811950457889202340782291921737524840721799838210662319725434537316889290250751157483990710902022887468855032075794915217507355869017789693460612916681014836225934220301029892837572027712263069030116498819119663401240589162915303506962296637710238977612855366545107168893895443728783442978001203932464068331148221788464849252902550445828368419312926179955564962834571268029919859486676629719006797749127635025934521761322011808413390510268119556635662235953726188295344129760438371722498518943659880020569290686610968380331998370968824105999362764086943264061251020453919393341034753145873583197591731506504586397924903397468728917148683136185952851845663811320823259399611983384620505830201703850598367678993594903464093282912602560181145964602061664816791454968132849858446757792485363109086685067385468067612246408298078899044203593416153959274726977484272635476173034825880717091036401280751686229166341896648345923165245592632511336083471964049906802736009301443953069286975901358823554909163399850766922047814716821349046975815014301799065356653955400524095518018298625896637891771071839335901194422046866505621839205756691869520266480707025165679280441913364885806418081101471439165502268491378011419360263021765908966077903464109786708427647307677783226669242528013166934283061673076023883410569467120228152821051275462849974495835123427223938410891135028006353076285699043992944745102999926347610849439728072927386796734615712431024525569156130775596165271701597836217667383376400615585086103512901562556510455971053512814814363283867289627703588842389442696537108016793103720018067629553533818379838400215816382626162146580052191264863925599391231486430578305215137908432203660412823332904234196564098685165895728674179144727737651492422696407705944274660104903729671233268105359468668669750601621624737586152804252129954254611741241854274978842983724324680329435008298298305935413222419448227956080304882190957129015565206907461753795266849067603415809932593960370693136935270796193340355258231159781258028840056980363574134476319177816595317399587668573987965462367393883567791440066744185330894833953518201527588837793239356223453676759313951941175382884460829743166741570023262284741722852639737853927445278565963958867570514270447304827397833900279769762043989939801480304322514897698066978885319196515261796136911250410905731348354392048100804502079001174498774123331391826898703313748259249922832101647072391016476316410523033883609454395919957341896964618062156937837799952562793117219612935023139416850611690100237490505384958135874410862349815907398414601806025953309804156155626598571169958806099759627663245376380232570888853722917000254799726602732357320533382181080880822188753079228219531978043752938806336603884833734544523299309145808415199242751008894009349304720838230473278045203500047046218370592311674387516833687339692558221436843568123333784688278414492100372022343347812204088329922309781906522255527964794325765823045096233153016095189022311567097946480972701369953382082407814245511007944460614411270537208850938016555202748973280985890263594108743803147909539873258239713266090660628770486138859813529301282313624580880164255996804467839142139369299419063815171900460841084032174726924458041788541322926930471404093849903709328211233439204981797820298780593896251773070065704731030046326513293791668844505521212164808425106966065960265339724536908970189898101029723692812037875556868104119774433836097137634530997038000334194095291770125411028334091729055834826112479881454955486426216574877112699362756507362856249745190793920962364556197041794740515500716038955526392080307632708971897085784363418700074650517333020764588264413179294829381150957138331945506529031615909739834121517611445332114560911458363498209081399986539349077030306949949743494474426947035971392600725485443696469940659882542876843908689331555180732020365151092326220657685641940197178252375504635934978086657128060027055739584514063812634520072045071708606338848381235774524237981364852295961884496982063600289790936765117099844022347666273129458936866242462853580461945247000556137285826335686283469355013468989754844040896492834516218814221008946089614211533722991905092480925952398348967595093048728066373418426119633042963163497230399829384973765756420072752640852439779512658764192430777030284944513650639943307177213419534023706278844018646803129095465806461803746309772842537653435984844112413927749409667582889787931837018450069551541691275737464304885143753166727387042584569881671635228585208364203142054122524960068079961034078032054824772241589564564274699966973192594750345770581965433278664650526254997031182147461198202848230766893032927680695747533911695324959136417939589265163972885827821504170563513384067379770447823764453962444740877371920045718725260825056694859499399810353775816502991011743579765591705918223486815363162611809656238534785739555455507956341688231328034762750794682184171148204295711376951083634158240644383033876530811196002009478149486856921315551041275452132996612973133360204080410047977112621532217121433341697754151068294645656398580727598569938254699686249844201403546733100888694171167755174750852160230509857035512786488511012530979881888748919657553568458991105792915064312017119754160736416297164510342357705211901829714476816546273921725542410710428304113823146401232415847468336580750983269404490777923900951708374586019210817259705540135187139174784703683265809324028888546811049522151661139151432010180738032085874893698867499896551408866575016742773918126089721656414183932688167712124562513986708050032450166362947566306650030753752920264133314793165165707362603414126003442790780146040061330868167448641517417851599676583553650980396280855133933295161903048359781054884900688106755408913806343100888888068150759550862090144177432127379458003960282778330709105553816608667926096304835500520032279465088482045660594415836373301682985647296346424160652627869907755965337122032909803664805135747641242661432736297400078555153444348651678980056985047128709101646832707587018231602667507480566506860889786288822425989875278369587149689837769015673918140297403544384544251417267084407489737612230268829965194374785471653076530935304516235316308147938433411145526053126536360071399512468889939292879166531541885869584728400123348255335469636185452508185619389752420954498548093776046140246619837326933916065075990005698637846607111796026776950105504356773730660761859651855264861090439031692884302669760775505429449819678725482566074117893003845647738746029206181768627171983856125847101418929504873144898560272397246440783350773575748110120070478231237703015887743890655818465903612727611463050686913823319666413870270100780938237233876720343723531081626496555302837506712540223642045608297383279735154941916547454628854404423142733413376360480124165258491423312889234488101136721610228572307348286285717332435823715665832952107071821811371027410465940174636908231295969072417737092703072604338089220826000493023505847253637853461084559442454249662123634604910601644745961695069925071808939130392502719595890274512961089434587418573820766899460180717466444426126656262536236951064810871119071613171799389231199590202999779681740921608777117485977976777689523292377236026755911762033804415869368803644106037027080199802570155418706314030260419563435399757082567878667587312700810658212439935507810419934755876196091090645630222652126149868992577988920907390682574560925338110045564197822881125980068556695178562422512475668558630379598714645013247101165696859992303686447497978761156320405847142195766522693224292461295429066345743589669170345253603243574072398972954648181873771144908218940574844653379111970170579619146402246896986215519443527982973739682183817423647946281765671356882030644587508834254506955495123244724306724621449640624640705806512207339777446455484082347973596093868036558310392684692294826716617256346060429390902429517725100059664869085549323827392830853098892789041646047283291108196187655646506349718168805700278454614303914348630783834184831496454153588479459888361540374866014759574359990471065021544161505018030879114917367728053463308678096369254903420905085437925495313658084337493497921922341988958205313773793633395728934566900219397851657650596679368917971706041413101081120041198118177170362528978376731846589910388776150453848326500737959419289598931496210392683634513910933642371331690157714626250038454772760339373910460745216794093946076615394811756377218193821923611972030801540486133757477556338994175969574633169057090475045210574845587405724090799881398747937284780824740270384882067397191439629131238704157685992383126351642122926556147469508023338026125284635545549803153939400378056900192011685174642384259424620422652568147718242165399646460923475054222322590685622996800500981929310319165158766216786632447703314231847471936050841808695533203599780444749508064544113183007923629471888852313898850611919749564327580469509561803714289057727647414346343592368979603063359554381791197944090523108910998480655158576266989882747553994481676209489431384589346740089879671568491975818418209762549896616278302832128349801327773581136342197326187999468104111538755327592720632853370173011434773502607725901811996277464472194100470420319548362158811692313543079573130748556358343124440909018806566035320810422651714625018241086913346736601565202941231711163069298354995006607038787126731090588997908134527134868847588710536557544215297970868347475480186769904173664345068264314480567375016786155257385559148213561385423888287320913016490195254040916376592186638976719802795801023903139766958274745374948446246776007681404671687969021742483612358865348111443635927249765976940997968707386634972929598734226897115835339048570718939638206163217724613296770124513182125983009381309628874801591776547075179072570787249617668038530170407214432021151322097821451977650901959544651537811304075225181567456849661083055991072360204992180569724275473139130463206136659031183722656660308425014212895334667908934726354882054998027380791371433283207765723568885745607404484611175883992306316721080372601300442632405811336368842936890428702824371236519066745587083657209860010669681622138025823838013426476227131197408074342991633652434905412682521197287098813746502125433582630510851170224305432185971786274776132192401531669875713030365182448307428758982657651500674159093958590373840820427576684212600670652346273780484260041283654271267254889222873240864645920237512831303676914378424221226621124459149768494019710962374994941049533400464675588523221385393690370440086894908844607490390775922845818827766283325017521031716763263975181665526930450747765074243284558170223362802135207156055087469212645057984778673223366843430345659321843573878112891040247391966673589611006521649587454969568706415741990895879029544445875011037894248155354105530031695079811761756695716053492847555764901293262174480414784216376250428620118720399908959485490718061326765263285661282208537928115774456293747514133401972355216676861512966606500872839385491777062349239277417569492109473154833162652711702738831106244475489757748456247148901932896605009938249337912198625020835930763426070195626621939948816687739586371477418418526997839869568133301873763220056762717634280829519064164866293677411848891636513098699128398593822329545817346084253339462196355908732725475806544009934864584944484922449511327857891929055531507301164645722611265314006139171164874408528328215425901816776353046128609096566296256089442886546466066149029739736751348427368404310610386766316093697719595257436540898386517729294931206184092955631660135367722666826884121649501077017042003574348925580073048026655431573538560017982421803556857728975773490548879820620753059683617343537759753142342056736042326061546990518390908409729951909655136634186025104129804895828041534895892721787276907071705885194975964584820826628988473395457258591393830766502975128436022277676248056098260845128197342798383596079154260632699565500566378059740078299105862420977392671100718680767051228527494638778441768224117856116233248638138183037508225546946580504834087538006256978751912658931949353046131627143200159585504591480278118282237152761635362940432862540881902959093759603992336006024916996847058371894154480326206072391935677610821726784692280317267638840620683363650580161326373361969267947389045428072680042961214505878508609332200124666053779450642951780229919553280883016123120857658001070241770055501691838510883418986855079689873884381481025792431441779160812585034931555321689884805896828174955031568273639060683721018704586910341871667462236370444154926982322561841651714482649506383510827082558148499473062689418799895072096232995066160613708124676639056229541217545895416017663325713609516614480031471263960629852253776899387524183373355066072351975809814227681480903081701426501154844818906883731759706717574032941941317934463121518496529962743110707972771522810692466200068675917053113351175666189462200341823859617367302886652881469027558984631113162592909091667572410330047805804173399530079417984668496142147583659541568839453530665796845357718196063602500254148194324140463131357020443082195782243229117627401185921986514488513184730883728660715372129778582136686879454819364544746220588603433839978500267544212306278359939896891406535720026233893618257938417640342137740334558610090768284996529494414455242861310565634658361284879186022868819371987277226351385726647424644729811450939201715088182825296643173208070571863872167045305105778020337962177041429939500935724666915501069126826569415143076719126329150516182539239001939028529536328798892469793637721754813920655298369007635814603838747004354129844286511436902430216094019378528302158170069769897078361237218204913542179258837227817519513228240839270322053156892660076140840320715153282623694873754768436284976213510602356993887517217359768546521229277473807539038665425103813258913245871977344046677945382451658220071455142726405156632600679291727301729142916194882591437643350062971346157382677899333405550118065128499657128035426825382649369039410722832100341329032906114961207451308527080873182017735917226135430715514233280486747131323823203749272444488890146067472333892039491376396165249576485922448801405754007825857548573717663391267816422068799489921302119391714131188024860548444993887637317166876762190125242094431800557609664966101257555163547549382403832222907166366031015337781126365135788188642783503015953372712326983005870466018634755631617433496313898340852179596596873840641221444619979884049233603820280864013367287459606969619105123370087679203156474008176958454727665345090566769574979358792794377300701716188173339937761140165046070976430710117013647615121198899624068860544665031492725797807127442705261307844816935457943537347790062372196287443213534966611108865221101798490388027936316210746057897180597833082001630412085969155892260492884848632681875546121271908664411816558683361083426352573450786377747287372476692134215020134620432059379061362633054790235101160847134666535855755257683495803341868005998817501070461182148629645384907899460423150209724071256617429986659457206756799849164533306913993540582538633203703932554536468870872103697582955621291170348873011063643858951096113569394209600175593565261108180201715706217257931901766372467255190791529041731913653898442191112889160743295785776344395622020984431137085612122849780033680033630527974976227855927582884260767722642391738912456426238253278425740354844842277590092594655304594104590586689184782861026737212795052003917387102658368771973850039019818631313862104871798582545658636424371470328839414653053430545449277497296677449346316582915575941281190823170370131391404689930004385631216164245840447098871910702081940873718840932965362460275232308540380650269037368028819052709376376692165105395522657233888030663571057536140572387948326424407011819838376084738884911126719265590108399904918303421742951716157520814510382190725850790057699697600133377549002932793613427687082861145673023983517992391178191426871320612540767358624634751304903575399795157249386228257753182757209028097124496332715306969240969240393359439694467417579792045722581028913556283030082284925893686926195039576706607945760894853848093347778546269393124529696537130572100369455390175490353387522932637213064948099059772245999799262727736476331871097247972386351707054186052080167237690674942387425269197535416098336450987673257469916551431106073340317475914558395276651822961100398079165985604160567773705638181081686721670523184638282226431287621827875024329532073471183664790832766521187179655770555530111733209302119834879163576353812534848519061595441501843102004906659503707342592566572368578810050205528399861599496541994229114794153714283794374929456864543918840927544391722883254637642627435592517212632661500682726755554680973206320458543741107807901340211377724442880686481549873167514412656470158057663049816236521735001447018781017700767933449296240680253815128422456309830130744587658701720900178829380162400528579800965201581614128657006859520879247539057697696531004575506197022845614844686131175930979210893886718843272295389102475845083655633807914551432457613838354112263637349688296834473692142646206806288706068189558056958912003650894861636295430642227031375461021054219545225431589519874320842896722661383253520280851812090919905190967832956797504806696288488704197733021785939213372134294272154487535531343391823878372811095348606990758463263644817805412377624146549992507739386794055510364068336948360807324694885732466147788189762980214261581998534411850920675251604636144145446484059487585661600352201755174219034979005900400996174398013778776105721044867303638189823529427383414710919429329295984643601805432908692554021495978803869745888763474312894176708731532108715081980442564572901107798737976070402314952355306774315179097029828523812597930940282915959660024024681245965762000029823166942537487613094193668331657783392259626999225300363965835238912685965290060440791273783376881469708206861065375878571871157770640547347303621447844062337577769276494103329157244301825094508021751249882845236267783148555826154854828188145191662194282090302108774761414331927053283607230261286355426717007545440453538397395716334285818597398079293093448060658222591418247034678943205361816649152760353804221960988733897987478402757542949149631476147573639750952416254360955086967795652260763214259023337915236883724728815636100742074897982310709359717413919637070573691122087202821708143444237594086383774039139837411490040209419863357262079634023819146063947289279656832004568988415139448854095070374250897999957918708928249878553024113995389685275219041643176334319449668432889192490408607700329787545558386574500717470560277061041984016839516028344087106611828488625454525710727523746365259523217920389580609662835234157745063710131844033102496923331702896277175691374461864822823461798410412846078484837139326365503663178542853835444373075147521176039631998239004985564856917853806948770317029408770957164817915035211894049242012168294168921209228730129212799093438124315339706803297761738952385519174644307158924455786876661731080662180805678055348437695308653129745963574441189662597169982809572650580718431379350590397037001292802597169043179556549779426403609035421307117466945012886578863875236378521430736653321561994051340536361253677938551057832702687659188695985722121506878073173271045071803103483849548867887610522354779405702381430029075550435928248320577012421692233563846325685703494457973744437493481100637078472010684458829961105974944343698590892144871437265411356945658913488056892506017008238850868865858746379239762297491140865628644846336835044981525360731056939039614260201293229786163727050903608007084120889661312557422219837722742724346083703395708355250553502070590647584989576116659078293231199917635725183891591670805489316372872794530309409036154954658963538354599409067025330624665374843003865515333268256760904132782875178457664034329046702342859709854926106583856496309858545094298214336066605931648665563461567391720018205166375008090919412019023556378563773769469479239554382372455018137654059666058638378735301960485413976017853870812429938850310039343008083028805595263999602556731778017136356072332440947346057096480902064365057284160288401503565880675935632565349402989612050383468571741366797548244224067085206309463389269672280362324761525060803898949630946934714118955497573252097669790321756933277681929499546805595238486007113635413398871641249324276262539988442959558915163480032027029295973514998763116917180045093248935065425430124110514398502926277048224773293250635115220568430378090808007371745789792124871683948525114577980464086923608671668106756591695439408695185214555870267399105329345727529419152487856106397159889249635006097011270144775094711725802650286225634782016970943521998472180501055969196043821648259020168942218403779841611287424534396532830532825592258834538290829541735618892667479499978855012412637732385077278652219661034104874728657077539709162941990747205164460931753000719514621598039415512742660614767876764140652141954438151730301690031135422457624976180505428216104848199286230588977544290707627280077824019221220492510712671868797859009117884686336110410623329547390820363854085042210432102259508041998118384040216374530481441201745092298810347450335458257641858873390613361012152787406117181509742653302503121170142830231914103290700745288435481426911935113404889216343147985613504658801038827425794940399264274097130646560112806772747717026768566193860570713920596218082823099287060360677767922438246598845978229595961453368694909129349302762841492165668057656673634611588439790237835082986293280979216739483355724785187986714173731031139157341597670486304337709555282461347777884987502716854038323392218074807384341754414092074863773729033061312427455370156160160005521030569014264798316513202556712859324704079631337158159695891425968796532132445048102369033053085356413449402195303282932886969899567478644391055152319138330277546639060111199613792845842858633039914050212641845400081117718182892034379021268721513448027221547882838168753966237916742836932831575425534186247874913681253577301034690483639737842168506324672335590144328609589002580981821759858451605204972641192812833149521052322864613449732283634862872912318808461190633373707344727749658951447487290443769023111946938071010537344458511599565459314812646066777752385843036575883180308271259454442402689642144926248945778733261134237407217461064710388369687648473155332960683070287811690742901658972932412732288741458244368136848333554985266328407299720724015281573477596495834968799734409501038061157922924421585134209245751628089133879886032049320040701071569129593182860205475910388492444487457044503807126858114686931290190401223605071851466754915319595773162012113522248484133901282127289376083851847498401964294629830687789160164225526291294805098667787969612107271821220650465055617224235975205088161257148733831671167429080069104825101683279728262373365848685089894852603213454775571051954126410881603117834579729774052416867573688552412030440340215412189168321367946561993145573427043060837567552931904465098095694807482314096217441552668041983094973547554010156998165773526664542724845270093174640916442479453811503986749447158716597083770235160995487515084221074150411827449605665680136225280552081195406368997520552754995682919993044594713960372585073508567844372366072162080025727004386271001762257576957268854145376019991041066131058836116971175108736855526274442206309201677335671880144560664602610228177192748866484555617126255951482255982728713898692071611029416281880345304527644269072429173175711434927057036486991739970675015063473769554974615016924640903054405178579767164102298876042318954150813884272859927933814796017633591906124080669762252950936093919365449983298270141205943057567559359052543165676409444574699641032406760304444870844153000648784667822316286111889224180123685460797267509229318396069208999817984075625490595205882712234001842264585434413878433242338067100599412465815313979048119203876549114329731864206943880740484386058713006576489383920822645563269514657897562188076796174599313600309930256666710791704909588311348756774375961025865885860280656439615915133943788267140696042529882819585664324055214139537445071474882263485267822775928598098952069343393193872268751555419227242958159098301438897904602832484402135608153325218737146922194149711699482616005970943828213379531014209414109579294907900721770254231005796100787534689541151369457786496083622453674534146903389185257616183175130515932224659356433832574777121369420869933216400407421843479777283897944885014198716153934738947589388242235264768496150943981879034647139845087212183698393905860118869176671919533163623942688634712392199491578277676258866259675255260305174666135229027237759090102179308915146664374373794410910776673094072099949073390293933803779861530035805725448339831769086489564279730109403601981862442184551582321474767592194283357513411133224185150804670871702318442670617361189529847080955524028400517012751898841973448841934052988979555080550697695998089024525508704496367026981946524450556750575066802864178177295681044568137419733348245285964469143172283036670440974165997807428407594370751467008990406363449569359996392831594149826833167560625167133600921388226599785679892452575448500309443846899222335347339877744984727930558770602114941551975874369591219935403758912430941461694586336950792840433479703727952772844143166334669365685688397456419624978139522448399242628312306219780172681362526686936893969771948302028900250354495486898873814608590994441911073719100761878694836450586886493058868444670900603229674637931389658126198804690352086701518482749346390657055489777858666119186463109586790169546862990858638663299554381310234641473985720488508743257912409829445802804648430707299814663643103370719915489733260546155891179728040433753653557100557360802219987944872824701083477732392877052558195088507776181928535042710338295757591391705590489129179345936103693798857727197612391664484136191951709769827853622851941199855037637468856818797678527441225223367532131776636846697141395452991504775143712659333298048861904290463017302744245245296586931189130984240565367959579046212124043906064596990816889636188177051450839880321607076489896278332330309377680261824041507470693888124807041835941809725762334078639723792972511865364593332802523072860812114118904695168625780111194876086699446386709725729451937125224308792324907817627461170872912329987825010540509494880292711940027198217241596709587913808250150832411523726460956440501082947869872254334332519209633461620738314556043855118898286441349269345050938943105204410767216646890764332652834441367854815859761071647963366630576256272483238291445952990441352867463492695360760511871077521865777819024325389319687517636518586118713054498840064609850492082858095727377740266624350340258541656277953279915749791920460780587361235383982336190133048229858915622038831658692529055755721631133975594629721159546827147139290240122801411300925302384360865118166263741309656981862983914660234612622108640671692598526421000788166330464469923956577832617057745828778644856502116296250708395562744556590044279121013901887259361602524724744603363660780975233804558056662834699093635123635067348454154153131411987627921412558825930602444950670746379149476063161709988466981344807064034887959653901380018464690471059260498122043242630546032888371744340892934462426111750411065295330360464746371208334335448378649838735892531038710939471642357843941935821650561692321327467505027209427116928463296759418609698432614290550685766192510717589732887216782328402315788532147020705856046331520927077650347671670981308530036816764342141537709293498410393174555026339249848265162695676639989099125747733174598170249708771774970696181891752038124697799215566317042095474981814768803771832247338193435391458862068740190209558737765236919590368747207596464706750516710337471963727941284133314213562164453284316538414022076543532334939732660514685583769105211158522559107513688329302130152751517140821619201666032965910583329822931514130201577390872412402390563618567145641713413947854647157792828706681977178866032182504559179000941666190678670387943458897457854851865991275832706463055046389913799788564928463544663624609289480133851149975241908674912599225131312216000376208819140561140439335148357636329368625714019117404746782167383247841815587832387282213659912009071108299451661517140181668893812423710258523567385395454895715695408657206591921278776676396989879294681011326373806589260777454159145108353969345113775820389155784320030836001735883861905886159848299783295396433884475187361390338081305630902161722561575767409072518530257282598157773546763689129856905535029640717333483117924256981015357263359970610614894165412797999414439658703119900784415112682316516299004486331955711253723939816521507187561613828657733468180835556282464027576553392977563286984651664317456931074750515387835946856277460395081099842322631674597998755933672059315685306452918696758349428061188222056312811252607708055283516421857178437506434684131450988815131004706350990251345059632633530677771228625769498366862583980948773607246785756094129308913504279983322872025617562081511183139391952573562192494625746441606703070419826927872541569862372924776370611717179468178263605647570314733958363600503810659324622161040949772439302048261034319673569984050649961921012729380174652939734790051666242789896249194004071894018393528146225476584804620069014556946043394664659834335920965544332716491644307055809872155615573388762939042316434491119022416558215853397145385068121918123361642221584618630112969195198920631898959416634462883758317822236070085059734366316097303959197073680045116389040935784258757630310244132524955935492115206863530959836645590387495622170392356948298780034912803544910895779030670655188629623487369534738912588018716071903073249635451202253654450245681878830329794424756715988174385934084290585126412566983491802400944208887371940948214131887759440333785421320018418854305590800796520574183023683105159119381917408932997245285610417651517565303490516369256907083682707592673503115303626308435897993351474012949062399657012059017335697438826953092968140960802518152180763267377989084926326784279195400488459473398926363539438408919342181617557169746684811844056192166061644078772913162540121773119360645796029470707999524143616744357359649533691157257795369255364685390300121131730658551937967042199382831670122720570259408378229608994609377756614855548359950759243098798811747606053205647497544677715525263685237952370496778057811527020298901440017804420708166181708021231757297953387677490488623770242527624601152474391408224978524005377708145103931840273616559613991237206554691607887370375846218783839260247772404324513145149319925751746720697889117043485396530782503334806008346668009840789861174956900315040882433832400827517977063358017911829953391938633559439526662847315810371260709031377174117968094684978273448920610837779282971057504230353929487543358047102111460177605931195290652888892472383042712234230672732441058714545070793040833133731555242351411872595925431587426439295127673510279674885082351298031014309102331076321174085601728822105238572232853328913232751551915754881754143823686998572716734050465975104400480152009378770820135422197236443432516026201721007640948174851402720031661821514725460353885550609032952623537612009391267462777162201212644072787404248390450945691524344083958138044145630149869227131916921582565219732145405111224959356943846583354931908545890751958195549848643734889953436620740651612323640681943546339587421011787011524776364052517694729836034262357742555185479558388926236650732899413479922255480988043188729298015080225414363349545173832589996683937048858561247422159240884161659936521421289618846935949581881165039503885794015029213177245189492565330426280810566566166740995279340177288334867995782569601655621501755374888742810081778387058460901834136119461774137113591350105506073687674228811443340716402807632219702918092422250202159479598269467427674866299528873431749141081203044159546382064958096500565969205982595740341755956041929195971330875460615786832801325723198176311021329305649148121071852515665022009265046799029714679460609377156020222982315951965071044039398387187799328399797638416590506792624112512124282358730610955371002963475453676070834822963949472376775900612658271637412411509067910475595062158043434219057395636533246520060035219576642784083701313558602375765412304340716013223662781231928366282746247888819534038970661271184770016619070365882113467145613573129103022350669336224838499366458787258336860921424611211760622843375081120224036155074154417230300508251453761764420948541055152018606305445611680299733914685478640775512837434626668834761534764782501274314806436469698092074073248372386375768078933112866744322825948431577643381453507233487146356903461931245625292631282558380035322833761725807170207604409230463959135186024113790106476613153019702692167197344217890915166719500019187857118170426266526223628425869033640584461702273791270196088852211333499482837927879322885508142660536966335360895741874671091033525232026683786156795094388275757486560929773734662369180451196917906614978065853441646822803626605168795061123449186341082423960838091459319301942663255518442902632280750328889715335838101251356220119272655361730103852893455052016947096082620186327620666128999835201517156454654526448128090337193301315104741531263323997757425186765292985171480779049860499829815633491852427823118530886811865737943360533175825270594923246568707575974053494306768426473036141209395749691411730611136067696187216549960656683186457782471615341732695073277416582442042082954871466110452883107435733091412780048864633188081307471799853973268221895476440715968671086262610444912736504700828416352265193079442742761575887911754820307325017041321160941554724686294162999702436643467625981633799462738864567444588880121678217766498347528306596019938458751852378167095307126325215899941527933059627465404563879093709068246135575177144262292230244139209238250572339090965636607096179398719290685438810278426665360734055350972833191706145907855178119884067780703441989642560553075418641212371904178826297858175564905836107475682811151061383766374250330301704229656765465474286742897976969817993938416712991105738571928495635447038154755738698866815087690606025917705253320859545474257127843595817438492418012163086625177462519554864641836588269481701266479942038908418728778358641560296568240220052804678098312082082022290481590053961379045623548935962610645277060896296296689092892568896338225561621971951814562150147939210770498056368535909464456870575047293511418841957821199833254735166502680866307151957435837887850437615105485743327436836765178157990004989004097296221661757766866530428228897680066832315224314778419774988715446600024350861394966064399011627827135837978489968337601713851565909180159467558666299906068307095636530118275115253386939268933771611425693791371051725298469780404421532478919175930838253779539395141167930685949151795431084162389395688999671709204521082369288872870370256583565023757736072451628040741558766527778589241316906562072942046399802771602376719712053311750494237926127450195885699671570955368815371682602696488758102048904751778997742137536669808354766154112544210532011958277340382135740714341341182750513586705100325696220529751940060923882965600105315941209217747627095006900186877279597844017814123329994119084690538761423961750045842436367431587534644965305403380072655549408415993505934548424614108601646659608290127329663437623774633808680312555674676194690612760592075828981530387136623387046054639944134233845951603865583547089586224086297743033365632570488875340691931802403596055795629152859617269974251729924324184421905355052028696776020442616757451284426217312541448135476890245259864887112856448368828072630605903316006176911528135121961814240654109624269015957338124872291629876090612002004461053942688616927616891673574012711214943916927477317255287489035164840840641516727782271906042739402448193385771921441266504114804776863354265617329562922591055015817572736361113648810832188442917406343906658460747914572270909082449824384576010795819493104857438672044323732860778742759670956943344971943200200624654392769234159878465034494553599479948214747691794946733091819394083059079444266766511266847109687401205176028664162906413604597529330762770388666728032186130292894587822876296351503714270463402393202478083036146637083687067407868065510785834305379292597412839397497887864029867416357719602011447068834589545847395411602071131305653168893241827291353400963994285872703181978488651969914467597420657580946098122822422064011145734034601780394300662578927349552052237772304398948408006792653729448384930413309779813880639485663315309394948155392126206416952393730993186135449532842583926926910645767860002003237458719773858211942962441862237090944075044990438310059116803773480641866234308587294442314885595268116412513870270030934127862270089128135850854966374507580189050637120874858260266433452350389452295003387279755161987270339796499299169199829052116598873447738072011181986071509516984662750054188572907864817878748040521346960548900494127653053805900557585031097454167319502028655349415702847685503888335506343087661298370208145014733539903729423296173173341982376533279712197671780298447765081000076330204355316418028599044278763176246452330810667760644676184923952532921696631379082009352236126505786082593643983879454446127898381585329468200616489780885294181661508730677435616519001060005071497270723227991384624175730194638264611117100909847975729101349841498335995528643644871504673285100249315155669761790709414376988514291246666745172014083626076834074138002609675782945932187028162704404150497893306023472644854732783103629292347448024775112656184221281534871800011511028070894010674941497051152925758869644741391527657339581189664894958551624064696592243816880187763512503801333489487011006290871887151242743440385688039848482816327025030264161986358972247845080607022122767997982264138177293046302531415564569607390637403615714695583702650137990612206150117105439726047018697360663241872410287691741049526572621291599605424089311446452204118759405047094305458238465010865244917092344909348505434282156579589918350343298262645341783533622112515093493268139551058534720566367071415433945989320021895917013444816664746123444372922839758650951904343308441828281432923015045461690946839055921874796402381081289634482706123267110191779271323337925264523501385331058150891953761466490120845293167827681557205347074049659987948801881854629073901934474622345186330096276067244810446475688863934205087157760991969886482153030875968917590631103966337467223407831720144411549726262011521573532486158533988075183616351204053993107360259685723654148550739723821136045496449236008958784628775496763336006854637358180552738044628974416896175128374498370329706192886552109004696205306611354290374108993698792981664053149823950637990750174292634558547292783527633128353249689090293115886267614807223322022135810614552005644884305368277443187386864357429796344597971910615793911835898495448435629584191394630299542620849887578914431709429464998060321173237719365673409800542611546998712545533991101804096412399558068305973021862604291385600321379276746753248084583322216421544607755492015900479761347934118658117739150290127025482936954160755429326502984333406567939034262170864174749619754443220028403472178114181374892073308813847423832643400743324107565681357502777618526828386923423876281588229054583994023475232397959205237221061384916222681950410644104270984879357367666746838007151909219720832178612034404550585967117121379322349398027907467750276162908176873256549024172313891522031764537292410131111346884695766844134354988911361083163346551250957492656626219432968364815606927203699519279349632741893463487530123394055006522021872625222247522714868422456387489777462327223828757770576738895298166716915282678411933643387254854262305433665927332689079058951408737351991210244322289804379055271468338644939857279543193308980735135930329978115679251234031450007403004389853870515322675708975436935629332450911108159727601493350390467650016473489265321684008215240915145539792955604714387268065917974310984754107900158148760489843722295632772547075325847666418392635809762513644944154678978104062739307525927978701794816019223890474860786006534575516094673362433758538056775972607742618824196991230305253841676109943489262458650384467016667411187409042653792254350814065184660291609400838200201587036052309526789356482183226218402781100844445429572009298768762877500065959688879902317986154697421021581407325539037085642980057169503291640022742988164658018635021249218732267333123699954079015074733056636173716262126553536013680466347828644387629195764921220747138463680112697818204655881287909476660865590380677970550515143054721382708935096136568693894810543281768594093619083379911945925663983790794936529231296558332663308096803768144170435515848873980861413930944121930108514628329845625216118964613544359719068973202999011509013251830517086858146523442186630514869385681191917924793138435785117737648986524032625139354369953005549587194238919816810095984571771205552296467680461523975171671220021983666808555303848508273879626729212788894855607250747033359632347748987598466200029375427222603620459051201645590524591606813872418570778528233515736051528262387961709995501227428969613928497674980060102441859867781497307106231674559237904907004976413243590557209041799774809090087253439720509717762060607234030344290208497330392514713167360158112120611418696581161194999992227171489008421832445461997861912879257376953771936445433104423826355006284264837936319672689223270043666065056607857895973085779965532568682538645138607405588707358743450709161503447503855777277749274822902266897843583370677416659549581724671169797834247285743049089218596515916400427879467216302637477977461807884675661249674859220643473478592493834024312904344967437302656600894311110609948350737758255926090476932243945742874981782773555155713929125673405772125680156308862046486528844377938311292030464404605062065483823764108227767393868610916290101366035318965652546802348114663091885656391948962505287818243322773510327960395925019351178834437874953565660709385313980605192183012842438166819430599615815902354692628735826766090868021155548838461970697157055700730655783946232193473798891988180993980493926117370328376626664161127428820286955620702729025874783289961289509225974019691690055952138092272900608759368229924722210675321432108513222563659391237250229074289035240884521578495988108658834536782201654524290522548612066589558065863336823999889400167553455468058060723404854160670554163084553534310791850528740077839034197867830772546131100579549591270520009736760860544489115130703801126612636895914714647870633030317039040046957496436076966543527918364477369738505465820473926375775409664430229144519875067201154847137773327155988486313737067333462771978042744966657442621504878359384388235698128278597521641865728669070417722531226879159918636464646392084055681160875161667004436492158161880190625391041404682479244046581908613343254601702648557413899514366547380509468894669737732170594141118073931801865041218900656245700955423744496894708968142389555436783352730231854054844200053664343394352360783838767922211401150046132422942405616672659419348866927246251331675061094813546397252920851187902520871825555288689719582874559950882045503593446274095021730462122708292083334305757945401091952944630386590107216327113692845853865462633854203011006232870870822548266613212504117205271938937772972391778822511163621108375038246014054095270857529543301085431093836421639649837578852349177558906563731780269440065558401913902583041715290620944608350973542771920521092945529039008240120611362868356105846502855158902851059108348062664111294049858615714005107639027797193358767244154823577307121060437597693476478724654191908419243015167678630051919591342139980257598243169459936057961519999730579688833573017136138144671168923768677787636124099189858775394189200463820200835670284152548869963499885178010230851540445932909213356974403901944110730061584438106396135973223254482575055942935832349005221805975232727606576824487554847477193826689615168085292712124478796780238995213684528660584890749023467782971239662107056917555373161699671929792935051722458171690189371524137991554332633077747745490713206330450460021122874812302313956861404730374731596820296261531130025084923886921174474599453370374648723352747849985064821820915823786143991030993037178077634924956421036146690473539713298847952195333775502128518063065017620673341109773763432362100265087580862189956973330967894544768862823384908951060008737128332648440412452156150986820349080038899640197564012139851954313415592493693250657782224098188206917189426854882836567056974894955057726544788976372931962843747243040825616172226172705431732296623713156454966979645652776356639160853304921029842734529124922020382444035774422714718592260616584634489602839150737992329333252472451369180136437375822197807559087643349618652459727882563761526289573351946860306037913287370124562439465387897871347893166677544748454517756394326838225004307384162842608174204210345913445157758416011533271937927774039576993255334491741487276234754422738127413551493869149171830259508704917676674904706797092002416123253992453166026970642929693724061516259508794548127876887266099422893400579608187780978202950466506773882457515620664487636283720735142708012335834568535564028977486331094077684032932368659785340040967011919242914111568616698211821711991723774901890811914422437323363452175220452785695794455490087032857270835346507137019656965802029088022295007425023127104419586697704755737618046326781931967727129181063985521797675520843989080989016658000710810701807294432713147398361507096916120978410630732229975014912468945450628066351373312904850808730306989289336083708324861346326778924752534028575857599145059009045484973894578008963036125202531093577722779393065301181120040508204485513146056044217795466529225029239750449216624612834430309213154975630697574312669493744770161955912993625926830298555965768076388511422143126679380956349596331990320269670092435970188636722885433804458901584683586204060753988112963277640413625104674056719013032086623446658263051292348898929797288603722052779589968889985076294004042445563479351869782740240373914501028377703404296261049348121812447760868440664320277112737959174019232814057118758354580336649039401312213598356075884144638343074313582059433725341530090610267148755284264019603003702046634493767827162873478717563098787105600171998553491085294156829115000026867624638970435546548441445548518154541827341766917011577505383281356061755194898691602316494157606919843881334538951333225600381934417250626932226471986512243665282250350499915235940603061693755057845702077936941466587572397259482666833838986246099535103277579860723770132871343996386929100013797237001176595246159468445600946000423966599585193572953509782796277886387492948439847861800244453148083456006227280349082725731193855273233503057796695462504328156329252118913557146809457793653203443851177381963956022237911730205710743259802735154766573167143234616912205865683550266417231229537547802277136116971586889253250169099455465084557080714163441929478039062862261836958506680047322268072775934576847625726819484171193393285760950692806637166681281218450003508006232642304632931782142222212996085724771817165142411509988403990247508693290174695011404149978776439809991496054175262664198238214518282035724503526554945042029873180005067942032342394744786734762185197374527388490452998398355693491703196933768341064828208749182960095090271848994130198683728923729192035025841736294431402607807331966514269660757131873934595224146292315575538394507546146669682881315953486051128393819903947724447292618289931300218933515105916516065895916229824782301584686426734224563010413325364400120565766896093056985820713057199097239918010785952691807634100678753423436327606047673545948031024596220116548773406609622162477265374187057563605808592570836633977638516450055969225285383491892307905079350756811177159563578632041828388293022828072318181240323171169208583445166552024499555767773762707232518699141172600234311662152905177801390192363307768542695398404481514317094305726406328140887439492945781829148000453522020765300263619275029802511826635652479766279080052072536081307093673230332271199046492040641654497513212520985916834978800614378598747425959506407254749698124161457354180305830792729083414984818100489319538194995311855219671454238880469930682758684118182818528180233608407292764055853083694553956394882640427547483864515527715125808020588608095313282130569304162831404195815252512112420157792854344144567052194867694216613448890684406566874954208656437247077969927264947235752296274853181627862265824465406768228000637425606831257584670241808313920246076741865040977414487870013586442487278378201390953051140088772545355011235383541968420400407626075505431099696261881868063282558766599562971768031262407724984498717758305981586027646967226934506367535951162959247089661914310334314285495782155263469512483013762861431353107478670435621353893362212197666067540131505033628444723490605865179923128472134433251333445265501415018753541336367026851766415813919783808381431409333786040368284052133982317242202567797588289219547997141621599928003748066755013769221667893148819249687019507100887066791403014159549348878687422817544685194288772626484228053762778013760617728093486754040741300746798974598735093887662659457640046716287922586708699812851190833174807707400221162821319526928614233413918971213715891634522776504003703268810686679500003734851269811694296122505833616833489303609636774204938017424488501647129416959080863472759274638961283953388925175559508051483759156415083927927118727222315822686157007171535486349307789548829234091553975622127096696099846445982646089855321958287713811239543666199998161353943488250362853938161234076127771764078836835702935959677618899497713560006013229546376689891747626254507470781707224641490968459051946867071477776749220827747098322834146473443650252913989234540983299731211903034714158393036136514546406150508528314583462950719941805905561382054807369846125236558161735507840585881974819890790025096364773759337105840038701301587075827361301246779743542081862025477007638642986564798886512794670270949730698824333513030824439437440879655292846089310543178135799455469421421401560368474594117752619029905566903014599572384124925852865714648141851498685258248979845262740202293521577063003097396691019304064825522326613092193166574676641778713866219474114008639494069492986846382729741511281188651671559024235148892497045229789191706502267801421397269795412389833318474367873876676819588391005462505561756149373430774637691404768332464626020723982560464259085876896587962196056268920420255508527999689527849830829348547003429717533830952394819212940498976683143241845720345245935279190434426277116871943600435916603698782465721795289770277697222774667316639795692569875477705986241272696194459251404908693177175555089215709703493125712182929544882204714233462706180778256984116093306350102534648827226527879554946859211580552742416763654348856474445065355999736946174370008581244279064538367363118272361329172785966044150365620942538397210853718759055015752577800687784422360790982364982154103889488989645451191374248315421225470883283953339498359620136294316694123468997745243976692594335364961829268867696367863677152439749677074678270521240029201955139832287189291266212975091203566704523915129526621811517450647728105251297848960563868553485059747625669899253250431237794102782203555681031004025826567686497727434695565677211021968447566799303098786652234192849306723123336659315828342480422834711195975513104999214884150329252163204761914667189563766930625338686254109105693445832805199521174328602088414607942919729450252272387384891320006364486248746518786970424902040306387589630327717446280052530930829969651187920135805473390878572739543894213208027910223189287041266452351851620448663521573364687055687921994031289835860646569607630498162513796737697910012554198562710355807271443832632244109782488399110293187228538910292577859468782602993821323552793737992851830600298937877087972147995297562745188419502550348796856757784301430061802535538365018511055619457900667705449828645223209347274781905850310201097321203931099315359173788933334374363832902941732685788381601545832318260889981792691028809770035148888106282438343875395622068933179350378744989814910135685975154911558612652371664988045121282572080936476183724845908640049830947859883312921741836015220871368776840617939040598491936301021738861677969289357681613141544391103268034279449206489152090013985423366300930487364780678615355072550055280174405776989521660253066279063503918320317691730210064395845744007360892363949713638457684019707480627909858813829168028033556892270324446452619574795285122263311415263675497112408841601610219106850499145111791742985798701697515751157111166184776563257114881962769232400993737172820342259706082077754148791760258209459951914954361198294247776787699725479290660463117813087558005900186161941960552144978855626700284296876910665615397971570223452663735816987699805920939828747592491593513633801759035991851167886169177040895208756352751943814600165180513384032223346930932680776691583228166214689835268055499812226595306022539842777959936860785458885381026064863473584475743521217710652863590895318286148425323079631806529110108262775059498259941314538281395242526314082123701713040320617350180973252588436133030171375015035079276682488831780439531499095250950416872399820851963150823149835687675584164122796427981328312747033164417897931838703014409025115898278835336106758046180697942226802632682157529243380019207254559841648153568169991000281449692284823358023428467529403986130019764816808812527626362720329239967529207015520023236094075802213089150975509126796766879138265940091284161439482503124039857529995318735409277928628638609614384184908245639122367275880051439570027483748494695313182190052216598124586879096594803391856225946439800011387423820524677545222221160118924286596744771433781903303246576112878559308926561665458627228939226338248085068598804678066772114271158346377343339745117095459621180251717793779362499091898751507824488314672851661914771240758521928886052629912112013255782348178626820572647346617611468715578389363644574535455082852535389090613183152683976449123007375558444705272380955670575712481978797254412591021959246312497949485854518151299508767068529654911051559390403617231752134089155855674801196951779040479432072535833925228385759240726228644760164579043909678782541366424246668687884085015869292957636708680681106831145068489505584423328603520036247199725600164496366216544391297319100833447011859896404663761916546956048022905556281321520826956807337812852403160694428381742164778801492898394955076378670622261015202410818183732843205947824409139755121416994257516238801891180232812495012498118000492534955001500143770450006693138729503035903195999279346140581251084557379291113745639584364052847864017750693313462405929771712436813927472251524523563403248742399982906065030590910510755544696445737481588677001084984366304715570172253641612448778773872934044330791283044508728326360612737258741185631910144966350537539874965386634310286952859799973626247088603973991641092782607912333221473786523820180749679106082103375426325628592308515957460405494236856832485921906638176449504130427656816377500799536251295145730568144898251225566209468446063792116472443575759657627784180518331140141510102184805433437584208195305296727647617438107913133809091925183931806786152114948931890167663406520637340531326329142465356731279253173596950038853264133199474740080936415525212247093447675240400264444630857888879455265968938635865489372784436944824623058098253075305900134290177290762708092260007759062033717963546208788490469669795129959195029126317835121724952671677582693121188603810482977221696392791789595946951525802296278455245929513745819651060183737674282438554749638015341566057833934658329420684785950115599685199497598399369464859742390834761354387662901324354653985116970451852082265543048661225189385372162370245753254954366454407094985217436453048024243434761635915901266117677493032549856999797470906733926435066638352192729776087873881432614743009972270019446163870847633282815948912325405643740154319419327919212921193337081842919889797097146122186876578372265291970329850701025176217980892865728785400666441663698227781642482598066714990722754317933906705065650127864493766411631973215165198600278582521872228149608799210334493589188009969526486258678548486124148278315080070111743311827330016445374607454800194464104612542129266999851465854417674204404389237053520242622601450693661445580758010554571957240314391636082637950009925261535706166154974424685752199746233507632272771264936393799096673212540053939848423418035112004482213591648884094843358285297470656982810788820413234637292351376794932199019448913584225971983227735785263072217762483187792248570139575436012597697098395543174864188630185298436903910117150331962269270188095191364813261440282295168565371829344152455727611038786773861612373772479819656076024473085655569794547477899225570602537293243374847431643613261288925016196000312768805175102246555520570125288419111341267418741214331258587658111936550705932231073162702032167305378196431645175872781653765752276321234593499347260105049477576834352535642118982310033410134551110982839170695972993820890217767041667789696261935260490746939400238553735613139754197174214643399374707866995006772619979783519417994002170208005334563042282855432526797101411434017387017384873890056205993498421146639037497613927813076950551343815243005684037264404869651396529423477655550436540267956464714805543650451365802501045448206595006019220052164201726397477043463222102759902612253873412297970396275597840324674565140841298551619498490537929562013018814493902628563062374447126915874527263890802355530606994150654750195340963165033630755193704920426837887623292662446902336822997289402146708102620336848031732058002264059599022019365006131140793638868164207831153947451759126215570690922552275797336999917679538653054079643925606695871619912579962489209025608422918194115710162326606474753148224471104815849004061841653946899302799489221610396864731685280873897956377211450241731042548700285122657875462657248014973735308842819194583205272771846738559703894124137492890868018957676176694678445072007232219430059351460625666254405610278402020407493218747432550034020825128760909712836113161011532059232828965704782449233723307610433629797573258680982524016312861761641293609332096241580677235359676113487688567112257651572757862004467882599118882650135630137901474980032495786267717287371454052917309108756368348155917140111079967468279265112580260172205519135918197748238061660028757840697794226833390276732133421694713469690885890409903515494708824936607219328331137945289401145395759432116661704681197004528866131289986256976656621644042252069233416229681054827437048188853768600730064240384049965621895083597730084350320274938899351957193945031617382410969011861584782217928870207222952419265343430566360104382440224387688366771115295463098965839441672865276323553470158765442546254462303781992087880588247999910931155928105157708527535426880360911092171676023001574058301455905623471889782781449396995482425443226568452320232383536834269240222829544843554475919213324900969000597789585248741568271356711630987357843014424554357647019180055989303423553419392964519332667464779239852962560136977800757177730981663249954947868595967721046168250799044949946952032643309853449819727381811979383212843182007064762899879359954044837989999541778576748055556832404280386221331716928640029000636755798254685430249787089617489700518636277281930796855747839589470218925075939298051879466830160900622654595388206743639815231731696356623357662951497060420245494510373467153296908243803550421908753794314316569520075129864757453085868296229393618144196329974946182842518571161363957587609217807277059801176431569221049775344937077983776767298482981967799413205557603405409998889551304000396914814357633054985729011593658313426083853275340257871047720862910321074093373677049884149054058961609215924465234145218911966797004743166855554466014029623704498087845367944948478975885414331653790191192632144332476518603789924243896341660380832727994028419792118821665214097477377262084447777673756750659769365097164613867970673986735320031716141113951468606064309001330428307081165253926459492380092665656533196907718200301184541440681733208805600356102683074544975539995195099190337564848645312539145158556348431200644120119338953795225032270546825258851148443035799828485615365246752450612537908088536165838374092110075410883949560331752822277040837729641647791295786227776772838940959787360266781841276760570361015424555095544896731859980880671172785818965538832360498983942745529553779506737306908623747080069454662560207584914219370343672491121128704287811031049369184276573443974609926647351154898565017136918989779554272101466185686468968095357311978774084887668955803786864788341716347800255139787491568231338025996993769176120568108722597150011098425652598226072486825351106889293979506558968629789814356776240545369281954998681330427681786772325060270631457308123230077301101576897042322243896127297646262410144162669858280762078438705936616512075841072935962040078132223557580253575937109136735156152694521634101288916198031129069057522349156375333406609197223185438857333900444408328616763068333029109228085822455275190501708534945230167181618805668380500662929726886386965587507355689494774260555400967586563219090983622783027123346450578658327554956053877265875027690675932287323127903400993928011858844728619069142748085277582187965407101789110633837748819213390349436405827600408999328626607002108017059623318496110313566310483500581348204162122735250092941458594931128270764812628638972145295420824636717715698411464528577734618124902783655853301986885743413965819283915799421754217370322997361558873136193687871516415360823199445016549756467110408590522550873582821550168327365679360370874277896958710519959148700591198082795144432388620165328151986360179790283812919497677299611910814885491330403452794065682071648636616631632296803833345124724949015733361413869967597903620400187364179832802361838038638813659987880860815196885595902508950200920529489723637124221809597715020039051635068734433108394916923469840683205936820792888482832214595457534507593705709747047712624846262755067006364050428007931508621142664636254613211312426849900561311379147262390262079206593130870675742896745967945345918723875620555844040044229489111758749155475914006570161857729984223813046647994187984846185715134689268774142652192283023934847429027687669121853697487447238372630797923398374900188970538394760998646123222760765052693245987027826325651489473335226498783213934398396735004617506262716693595647387098812160046993493718944776870270134370036277400635879793414412914361325119682114992050709754208725004240056359492806240585138279887423171841388244613012437720017385631038064906318729882724998569185225760434726204042424495470832610357121856451284203325950230629017271523025688648820160459006952482097999119979992801967128434883856486862501233285687348430054727314436962252682249778262644557809997451323731979398081362395542464574323333633944347930424648701804533739135950068948379178052777143318556438047239828081485916561531061373398576755381435760982745124313793881140904258641586462189944910553028214247078297467049966262534312317848765727810522536906596469146441247538167170432135527119067490861034283655739668847365583597753461263721381828708743228419261150703212814994354898857864542416843869719790383067589433895963949075683423795984764939750960956224087949515828850976899162046710967287480556672270061123646478191604451504338650913951180047210743353779716461783182930378593452472969569141703424533427021867191751602504285070705438124697514065391900369410223370002145346878956992924939446541154296377052771854638849563975317214012954166945713720398968216498257056316835795482874822904199198015061486215071682530527504559184639582755148380764333874827528432608309718301765357469703821437621735043621285830493090706999871903934077078035389144125666962920756055949239196588245311126584642400962396678109467914380117298946177240401890192628193551893344955675307000164352160747315039962989883973072848041120568875146380112175833901845276230354825009244587997216623460641734298171707630781229144753443833049109028417267263710325122966378583627084786497782129157956138653275825103762166246949603516838154502998562552136922554549297886282578602017971160743003896860178788456795983447480267399109897666425570329872353649489237303351827707393804498010521257871474089548741922297200460556128579169018135888593519040761896987443352230687810433500676022519810774944603086460881187132071754708316638264152959387267371528632491046659174257598593742604872543461472914359420410097061622128755713747285658372168183475106528925024739999609986936855288778106178435765024385548479835255971372846789347066772290472968425569650759132433655052219743566325167478726644978886209688252616226846810353858672672785621223706098555311469657078177530752022725880993850997430650748193432783245011472716357871412113739595708429022289015981403739930321780374032164343690942151788070129103715675637310998679990276235658907621825492946422521988727182676033332877632216029238890851250754838141170726442703338829044210297808525907946620345733346191418209294125208523024573699565213469388700287495507380063789233838895793225405087725212035352130393858831718486196290559096204285244673344255309894615751223449836135055856531455832738889594584443239624390959620199106295181326317940385306472791236467375613253435179199282383356725452378328433736131341180662647914504970847913983636904511516294725211729716512461274124062242691478681490522266508250133072243754877875038597370599778485898236546033464470031743187644118733158220105993555555601681909794804183354088315909065472216487082786257182775827294635721818848016249151190050109453066585158436894974242605444909492399693096618784512039363568649227406136277061372862462951237300251204235934338827399135310258473885461612668406529648729850074319794230128664668020122860146356631076036085679215571828792374378397114753378927594527312532459969175431594982647680748354199603801126684487030658544678512216249907146141688936983936951030670547855666878286873219670350395839964168501337564771707431250901444797359331344147660408310642739758960144798758252621614781737416488264765049921076579415510030552829466419086166950430830346941303520239615930819209832346176846378226109786680644514189561401272410059962859815894390883481277039160527182737355955206721814301743738904148814438507461066810306631616390160720117130713563949013137236423509875883675412366879739737244621551685450070162678819715766806900333654010236999111331411189375166892871495274266269136636959014379129569986453094124981134503347588466933325718664910052450045856080783565438859188880888976684380230174120477383682465179122258376006905057505134556293136392019852837346430255287412635966926182931121619130371655683288570346122448633875887343277434690739917729817198010645313913694311102475128496588536842189456147853814243204875463704340459744624142538040197157655740785225215604899197324278855089437214062001910848507711640485870280429617538977163701791994961148114225235157497638383022056862001908724650639172562147032090907512232405807508515922334494180740435859551994756659020219231930194121482636793645726386402293963733020303137707557346200565337114560456782917507230854539625954402011165420403431030102466605634276068899440003295976296544118764899749824237273027077522911294056241929826284948770772000984619169996189386204476984982386074283584959216485397376904187765569988257912998301008278171328559438020477314685470768036081796005819769340571285877535534282881579876688313190512307990137131580426274809319924502526031414388609070177997668596497667315789612397765542829931658181023601121460963651175866788922206938955887075662908026990765074716991938883918569571951074539276116556536607010147008197481234371135928391952447107529966566010062433430061438688874167198848795977953712272312078639878948842871132677938700127833262153673070679088648864931296106254625809052158178592427743412322677167555125516418154699513047946829647336749572378113711186641674322418980857534797946642791610239210996237500307788228528009386277932937497166671669494925999249992283574376638253878324894022708785850270476745787894255722582087835974538998232872262930191156863832808205192533375961765639234598812034944742448705785151202631050134484160910031388735348445671384993041020127196377377835071785344799643751444653866226673526901091226624003836555029727479732985798849292540323957784463231598442653803850837252969800240250891825191059774878219543066126710030023264206634411552161680572622872492554662410917517929180294851700083299864269162263081049845731516764638260105599597245394233221759156131772344917370435201686529980830733870669635747342122271051886883973409988534421789261183313477814460919446814571861956614593386665680127200612174757208697456138020463434728854709725439787633552726385009804802833210416826629739005531566691246898767108221777301283563282882908865376127317438456326721054430059062727578656264747479526571832429181658292718704405876935859639779427428902759124150112073828856766267412281771941108268169565552955980896915731763828410214763389935900580842919335094072811318009838269134928521810022844179448185466047924802518988665769898876803039921521344887425466699433275018966885202384102567826006800091641157447414455573485908628472798758122711230990331800895157557138758233991370661669519434651745295427378601280453669642641026473101206678779221320780906804261952545856973789608620857488726333163278105171082275090176599531692174705828707471619789777164008623898666776700148321372318094011191086168439682574674423462510077858335284997869957241559137654897587928509627587754642277882635556717035163943327107264423295620735681834222189816835422331169829640163040916163329415660450978577235571476497166128369891931620214160838306539153415881944126713487605102261349277903042564948240999435481992082907964630255371121830415158396196289737504727583023420211834067698675272671384839572388855354432720528460471951684314345407001932466773401908440217419231570082260023493398438414673683853067595604179188546164649436641209833765461231529753506784783851593128106015521905243814074905214594943658088456559661001936272003081589789075081602795808724438011640396456010275978851418898395787549746199062273196496335674047668373876274317893562650000871233368716528284317531227705276628727067702670887035543606305935742174617647491972375777755092439912843395451167925483573588575572246355053379100627069308420902158598489728771867856293466030390090521613974439550013252145942333115878731061799537654907927888830960455422798819838549971049415138193772321084812512152644489593877982377462448671973150966665643348809601737277924897503212873968915532539679854129225431137825665279323085196336086232219821310946392405992698292259053151301102211887082503907085057095943112995761876018266675148191773594595970014073601325587162846347276205209540342344792474154435053493824287007371981087066951572167145860045261747683138827723151007832068523674212470512790775725123120039658561265412374671931037264310227600960493793000500176885697468283853440226535647522150487181526046663785496798743492392266306490711788971330208145364021583819814000903326764318070795080074115097288593111552219479333252762941610922232939587334317509874742080224826360573284775944852824439782846588659503303666806284341502946565902731992541148450249548137150973526350413204519088547669618157486691442981061842881434772498425108348143036831813934410206819256516395703944254012980432011499240108944538470930332644679030098895678564470583229970271157710726967906304378680548182750956536294224611192789741817448910734263699992614053924960507062034867200854024131136983871389991133733391294162002530249012756940229423239656346848792287256896540765698985157848050827163256830078297776838665755566701564674357046788574578950286220890557538622635095749518056737888524664540342309498805407031655425481590189969359513243110340746668574817550377997209921925236073033212622639692451065083526755915570576429666587781210095875360395301036681445304165136259275546961580617614204000077107492205095419894480304058975874556264015787140985282210908986403749373828825040971464019858175987009787392435582039566681378790442789777119872218455685394902610565914681342761748041589638874073637029945377609399859119308260279557790908330569995430583984661774401760757235177667704716252900105667092682876176830239198350094247268896675366422654093621571698076301495070821615069726680385224889259309143494509494986340563035514509704705086444337091502100649854021531307087372963661963018435435967061248505853691017216008288614824962519502337066007499035188938359469059711749642379887593144032048118407386450672415647412639172805695186174868729046572393244246668682839130052512269504506570787079230033862135037423298969210571521504698771513727174796210392773851306080418833854583778236987336059800982998145073429244779163671380214276045631547774189044915198209075198272890004896352778168702034014894662554133570630594022456655687193813974567795054478730364840375574145588724043192727966678168538713974556503959431233652754806912297829006057299190993415316207188058047151799290299158588803499172251543031947853639438527724633466637731402804685076167746283681370588326239449098077888701204350261830353839709976049942309528973593331029281737522438471611708556148072571449344080842471592326873772139708527848513620084356089396945480716963799400595139321534849885659391862051030989539153332246015151717665393961112765402903656468947167676664666512225994866785791644009142945631189353477464067215988306718288386478518543265508915494473284725488972016439845695165023621176366557899358584380499073383724543731992476621969912615328533710707638675928231342709742069012496194475245962287546073469783904066042937456512120890917518996393470112527411041364702966726505236782442253378915406445564654436312073829845194674940720204986249998909139502426678833776858448957416094029151837802153060719116532334099497797461481150099901159245494551261156943886476667174420839319513610893889470504255320620035259010717201702188229808556839637424159989215055008215175067265473647793122234244048432123892684319643035053073395540056009283446954931390678018660520374956912032035061935157594320112025491645540973171687594856850287818532324423361470681050213515939992374063157413640584126130389125641370683799440025885659158118576838115130618257788597772322167545374624393307594543537605948435464947149561276328042612610659946513952699474609557556827466175035152362773286882156646273781290352896590233629110179876577883591961620772165103730779095894195832553791167051621262290935405589463477840204655973741275188205800995010896998211939066658683093842835607920004263487734702116344761195250366374680772063536917952832305864781326864662990850260434601953502548939844661599761163482497319111330162404643039611121471659597215289643772054799251457166096793890869916143315123053873471342471066566296791605528441320878939884277822357249163890339313010925339621076324371967308220345411427881266879435302466261318906193090402876064089077672053639600819409717687734942310620261642709692362056506611888640871251368185847873488833904423206657833482996861206291379672386300188903141244057621880298333204209474880511107091109155436106486696190875775355446891888941986318325199703931143731962788383667497568312045326668941572334445912431586657741436948059102024973875312528024073019448759435080784547196182910939629126124793252544231055085888900980045692739560617384294789674948304853765280641549360717368435666993430131270520972458434731776608677514739149673647432213177465194523173621012812583853596570703910496305816916329459464691038623714215962649476314788154679761759377040450470529199474336754714337241706322225091458814699356631088565430774482784709475343005086662051431709517350131831138989688350649137202391256492682043830022879547713635900830179543218389335307196539463790771394836204611380745778052903087713108471989383868811519111086729776640652017812172699975777705151253864975089663970355378047732463550038536075018441280292350467638870696404413519193892719099003602999104172227175534755991762231324239548848963188526896434965668249477056259668948048278901155408504405008327838556516731841472486543078019893564600793598125065847949459266066248638883978341173281643107104265949275112857932960877834699912570678894183141653801812305768533570491393454545314608433205302210638294601792523546432979399335769201914987393030691396935633725702621379097330611145720581985987185736851370883001130150303677457804420060684935185729531336318446591706342975543436549988205182326277985805265875794723457468681541550848040139237321250729338222914017066435336315748466675585447829897193917500205346806725994551393274805826561808462603038585149318687219012057426477236731326753441541937648887687700332346691508843682873377149826087449961485116189295223707824364679920113492093113678022174584266202948828350404546380993492217596910448448354010200973295947354256599937949256948849482493014099235668898985551347083280243194322915173325571818834128130592004972779701259698762174475180006440669853305097905096148308112106286211683010296931464550964023310456519296003658547540560401406735420014254432350215294949697947210175673832167590780118920011141203332230627319520945965561435928775925273500656616207055962208318408828896437145188928704625008930969763207104065012163126090990843672403816633143192035372602325666629189423774652915490121199650026842729216486428318328392966035488575281422749684414294051366602024072638478086486978538991713415957436107521014130658933942152384552701509931253965967969083129699637401129646456216506652953684996961794806146229580531343418142939328736627131548680335030766492552966151528298840429009150652043496611619153035912219417163269593540295122839055540810754816514779723768258647573389291341305641794325091014280148101447529469646120203872162882846157563098488187363915869443457342864947049389575379746144948272676022693797161039330697869806035483514792957642679802656609258660461053966413772917248926870274436811659391500403392688413692797746005623600783146861584106986621097580092632427602997647489157885637870253144958858573023776680219865967763792193643948454117196874567864406262221974692467462773492422623253901362446457732302945865391811267636185754763057380796217590414209484535310220651577048762368241733128438194848279893106402508934768430839046584235951979036885707660043096580325897231951445611909092794923532015382989783310412886514143915572537360272996274562567404188069873283428100894524757865092342845132914802963053446386637889646402989552976043428307114902646102662013188964478989105017976246661616841651565398941106259224813055344414130028228417705271213830079111228980960185111982531205459741930595703317506764824998573417631046802962504744276318898390923041630563937129332831960829930282470572680300175852399920774157459197110774496705021249059719748670268044720764030345218293484165412154344801250665841911764608143909392304959857801392102099044808823984629532359751976736438695023050946005729509864693738417360077226785025865786336170118130390951310646901345339856189002904894787006655886819313495311716457023921580816350392202195702973618778299147614163095921285475805018349232246503168372385014291284026151919144308571425173962289108693201118978538322687505533879563863709721248427593164292767554696478599088992948279416192238946563872962269920453994871087093504477749035702098681525863460460621872759014769723686128391609225865389821554136704230128734229529562064545565030902751471589200154571506120638251127796748748141970799935428234751104456359598540293402903031531093572370943048609537293373866758995364032436874806904795006504240218533497435069172670743773531911453281001627183419087600140528980226549700313125286508543829479272928588229758970332473607913255542868699650263778255257028263833158337131092096181780596696852729577822367210250394259437587580321053458305894302111527086942223194357914000239885356136123230988984244706656095572773223056064098572973151192933677436699970301912871325256944677917919563875796434905047076210089436530000262278292422484648177399639977277649414977996327225166667238618169510821929396332296274657654754859155157298922100435693170051038892473680827584432791884410258369849086689879756222131647417641126420103644127301385261759932611157330332346748315565082048684491702142297983617379644526936102522886764801800281422208240896755161545600731122215175940572666894089401932873783994214781286242891819699630943760458594650887581392108823246490795616628919139822385909543598071021252015007753834889140495576656288430794467585122832068629092643382049534192696029836291515911741111769940503129001613427080622511059898735333495888908110446533139255871482622974588945566677337693809203504218872121094836040466770888465784405414939977475341661844212194940846925680532524260271369240553609755720345885286568827488778898653021924773163366888408784703603407130152535075526426053465340682360386199201339115003300491586403894305344373471983673461059848884269437146092624158757172979369407026594774827709558829072050975843164029462527683774798569440257913810545828300889966877097481032241319206390632642596215007390984940286602811281099561489544254277818884214178071143541080222367191870144918888915709618334140315533009358159102892813180759792830924702551051216355971456569902298406502203684231655343367151093366266562873357848542666710735550608275385954062625317743240211097370364939736758259934946137059557965864612834621602745090197430089622163105242629759027721550911244263249179816196474938691021434264900934123370563265900443023130413144920503822576528824455778990394657213287897894243263290443036896202445866835897843684865599888920664836775841226795759546538013086114338874649748975758731301093929304514486992637508857868683616188057053276295544132388137217743595709722806698189102150492583014434186219693029515522706925661954472337537895502129722933663567708104769104880320836389927544647959256458119207313716395088514424118778811005144513229297372225756713408954109898644115775262897163265653277734283124915633527881134479616523603209576468884416392742751071209215587458866447895203692066761528902328338718275384868806366448682700964147938380654732234273388769700718767024566535785337594285041415335653472716281183203325969891299532489195109079606908015471856271181198815746496322270979971765366051106828654187857391982933407584854408961595531119831436144373974552864774357844713694893567940515320364393713585029795960532917353090297590263081068814551891219829617221393586081536847946153572500637162695332682466444818948865429156952234218295039771772437019934374168733925418465876692128394331005165828041354012565645199761873984643595155491148139804823168396309513691993561215942595018709962792582550580644016570964550554537818821140958205168894273705728711618674577618783253776208839863305308885450054818838965742934787692581317838309856350752886127550675112635638271466919369386142478222863792300777242735472488413443844698958839165628903781971450389793518169912428435254081178852763337049430317453972342099773016867247548572805394801469826402288809732339335406833476160828150643107148124132386252550012698947375728055024049983357753286032537818786808727669883104215035641725893074583858761267405486837347701232721660192789174881508861303759221915676745317388643934955383593652495542667962907392049816517420652587329811572682376753128008601983595375957244957991464599301801999301960167483153552309381804173535596864018930455070442637297777080867199132271790314612482107924213652238634323472254072564480121465468675040595229466074592542792103385041882512159492806820784433565463638696223199061182978156702808094348901637184065407326047203046789812581486433468480611315868590559267464666266131745589276006012148067416746455145694498208414078637553300610079092712199474992430460666191201865948744653341637313515214783991192303820582583549083354405480691753468459352944669860184822512354676993776830538323500503934261673364876500343087130966922810028574409556502038699175211511025918245844651244623222349757849643222188491627090721464443117870925203166371989407130996008432118381081533503692569952049399300335328764785677574697296771394082736009043812578656236425781623430175127218693406287031469491883697925482850518313292631339160050577848524550688633833877381860064555750788290301102495623430689818103817290054502085252117365791014229555689469658777714430930338023098797777270684994824216449543552101090771549544871208183232941309379234988624707281630884728484442748082595865181355038386553420483572821176777640501584777118792134439612718715473027333606311670412282343007920624068800238152422804637056271858996931804330643657195768764154634227615527203156155549588999576087058035080918055879867208913267223240441304987383722918262973491179776362797546945977506715972666751114504209774542383795111587415539956190737244605607427137892443149201774208614839973383709719594880065998842190217071946715200461934860398063765476220504673809511612344624593270729865437110278546636013451002556844672667156355981167185165856269709045253651657849964799821234195794950161922822958096474318972836079920714482610490997471602633339086256737432627204195003104347922901933403019733700794952131710148524029135026432057303052504256444545814401122436718373387264764652395149036814732534257830365778569159455656134441115745222463851973157307240448952201011405447112655831777628814178641797365527612556114695164151076654580524111784149251992525597182234644865318532583790428284108714813624082215773997738409425934864982845892441324583028853960137728246387018376367753409020756444377225574174243465474605338768044482154742513569937977424597250461455750862717626669997381376555436861491357001523760882519469370298549932907332242560210417280066157063595302383992127125158738145639622248862465975944193504059224832864958820577598777241407634293744823802977032432976807695666588674019449497881363754642181539282447329884714003055079726807062736855931744391668434140549005968184887795332880706090245586747896857033150074362404199576948274986259719987417245543247749638683843747199776826432141461118831295206569625713120163148897830837194821705287905983394953052653645637474565712695276081213385084533645744277494776680854074681081868768603904216030728942637111875045056637667886622321555538337190426581470357486318273358796838119822354043573335029669772108903647889661271720715555281982556621345218593380068471528613125130502071720531452344896194675743703376518156005919061152018894438831126177056982325482094448395951911431663291509745429272464708504203166557880907364138869755867832088281679425881502135108977463440029882509133521657609038310505878811718546310034961052663708188065997033673845753190644566596799808987039871313556012082189565237877564516309251812352015750667756405938564070187777021804881561589407365333277842672844610730535815075015475359620604760986674001077150395461852077728111391511520375263544949297365524221170082523069520100402148112540947719016509993434753578477867704108341878463564802425249064085252905558440428363086351004683217639822881340361828620592490403431646024245144550651291472382258445976893650238433942858607209034359785106997695692273076153757638820332009168756365852066376776097662421189692715899707055482991451794512428490884639557298212964266131850000433400007344393280992458264261887861605267583157959957487500709175215322281390025193288852037911986583777519952131223176742375667608844952344052254283905756133370835980667528653808163966589963466715146827773992748939887981312593942049464944647649476968003028961559380201234139109528783798007806080860956777786700454212510569231724394205938808514555038253125839028582125877046653575753677698946706223733777952559726790306585978645570626880061069919373946359561530149209171537242757791967749326968947820390929274756743982947154384770734680518527412421931995532473914676121992475123925445594777286118667882795057956997541333250524898491295056707087824767387762676411284529648694470398785166927218859357811169596397356178596337902217672481299803788780594391208243909080755697070601938333820442903140783622509223741249380327555717352824922535026016558978641512689379641317604463652068742121589027866845720875044905485289734361156511846167023430627414286965933974410923151489700992986200248188422884297567669685387539277785409784483294556151909419792972830903654776838241247655041954795822369863720139668533272034251942451863515952374985858677813804637397714766002955754437834277924771834851847537698871954987203633864970021012518668460561299187690379056938948237633498729255520996184683589430681266849232855434553009003384257822265253055095888742938243833406806208260189956153968835623244671142314978325274553714378500934918404633333505314903589629717362286547757532514812033542616145702627141812403263257901549177532115848958681065792927169371757016612228201098938078664741915230243179614565250822985709997631924940503047854281994676894383155345569467715585083356337756884873115503793873368021590850357623224376699715693274270480573727004924398608072697307211400871808204580268913790939904746079658575329277570541610317119659066888116600939103209019127093724912474198768731848178863692712880776256790980006737915953858745999785207528024996883220146025784777780660778750979857163735474680753369103530301938943768019135761772095006110771363291492688597303468979985752676526360629105145422650772320802986391883162035023630061966254546256221855479519738667395712859212104296391698521050220218167938923060875728679665288933556147830793247891467819044586474481140448594440476089215790842135395990447693014959975827382167305115233933628139563313279199301970514901455114762225567899183332849870605513935514621264896074994688731286996966278121593927360323176786695965919392487572960786296199658027966184436798743609336613064926777811378337932546636138991438071223786578333044518476567002452003919002756807088900740326579974057545875432443206927165856165269017482592944052001111168755595266353678357690053614311255373548488529825348719255722804963320281693569519857048205448940852021987083703558510126151556960524041593774528624999068652721692707270608975383338009295057745275790400979992197690761003161978029182044049423849285241959813330992038560468318669604692717775673528253204650103380192631090079515236706141670390662486549640640448027646021198763931540226085796564066002839090341059755828751234214304425404571090102752768529431409860105731962225746779760572524625869614583126821785113214734687796052835728086462727972927233498251478979213507722272838178691752007357297045029019073376157351958681195537579730547112745559849113803146738811124467002985682000575860864838971381230367937158858565804009416446151283769485046490520621699772794270048073957904747761526684030216992709010418655297606907064805310280878610487688765005098676270821176570452277517799772475208482009848604092214601111946275840107290021010218133349290604953849101822771595460744598807833520501066188766532275096986316417618608258438984285063522642222353908309264431504236865733819837865832237820679181680632449187765006897021616303455062411751678992250603031186798430646763582905156857496065925884039393280916763970612405638956720502467661336222443694963462006097702672618541911623797030875972113972225385646727805640810985184618720289975670176283855706316248980557664222307057644715568974881764241974734496432116583443380339455417477904665443938006722374283428119702545010585408470622000951769499137671708075340386743164469100810839857726188728888617324068408387935463792887684095423405189823670186795274874271352055941275515784524024713866760017503078167001087523122871687318086719139711383622356466371319087325388431592192591128281011439095383940630490707057295613657193819118654152157397584197512882200064138639991293249661039756731918453865529532313139262538157566630150988197113990696486752864252171326943674127949956842745178476283127608144608564095709376606803514165918890389641057648514342237378886992733599067165754737576497703175209262589425278309133346585488462698234596406480688022468236219825272217410927560490259613184321274235109325812294488910258861670326208634749722693913975739560054130923358897913796384853112408435567099871630063217904766488261129781997334613457994919094726326486835046818477859007741851302283170365133504182227290557748805533088490769572469795006275845761522285854067079829714114839219575681341261028781107448678383880097661558711556604353436748378477169731535637493075523902692334438966262224827062122533485649625918895956206380908829632779459772999441852927445696388130132770059281095499718303945443353804762935330690274029835101767834422913173787039900273143932014244875871489108876828032143676863558218848203742170466524210529696410614357312502318529406461322445823544403073440101405687610709086074969212058739147356819449198052119655888207659720002625504736853839969563664114802785009186377831156810732057139645415371088728737538902509711749816260065261643362496743264948549432826290887772048624193542059715464305827467673007948767426078222928589162164852085186343438737987269700438894213225495328840888518372443285135354890632959694745775541330265867703209606599623113519008020971396293613908361081988687764770554033766838377611410708518542823802414423003599056750197916984691574555732322005239953330311729971551438910613003934764680448442771958211044083232592671328229842840316351786103791451986153028092296078184593025701410232803955770613751949993610732539478653388480308728982976903734276674015558980696812749312273768147922154597751026009913160724814730664534653928818179259163795038977859875067077982822495546890508597566951459668914195849259552996112452237856228745557794006556896954814519484965406843022990341426309167386004515738403548172008689067723215290808376665470349489323228699224402869004118053825641596483129347221170928175246330260231032825105541620985044616973935126915938519289551510912968960595300992055382047520348278315580734130306326785531138036520344565435226277753067676278517831030971104730713613589858829137833127448160025079449605008904039716801555470192177266199426896682266547626667634842305951377602865434631197223734022516088052415990333473143457844872397938246526750042338630671342113658374693780417807838747955468648395572375035121789486662261151874920250879471501065912601812189882861303814646101359546761010049127588969106549654650652199580526949322622817301519771053869278693498468022355530696806331255985612071162760106473342418206856988108068366698270545465995844327454002276094395017678899528479249290986717491608110302668960359286106069780935912405433313364177456565379523521458639872878519986653278883953627996731521387804014370097467992992718109008547620654758658864771457362573171361575213179140192885706070468171421526292905892657054093863990485378825464102201731119895660996545478881120254560765577619712821857435510640507681679998399149205351868330141597562727534244836541074777744305973918296944440988140984333909336270565531458888834341284989363548446921131964920437998164031453980989180141079421126965320029460773863561642604778859569091056436243744339534640899600402472101425956789805518025350883199477855515079726717251265899642765812700294935265627107967029921862390940767664909419466374883516212699472503892482156687262694697184065395483963740106669252689952152752855965602207401845394153738331010184602833216495625113891576223503146587833998083083585659789562589543989100071958138833488327264709949481030577889536421330876086767569835563631666310222230093303021625529448543915770031119724538968215444237231584777151238169154736592603854863754195339399210036731515748823278738490443598778597897348356216462341704967999703760024861400690461079846761401506768407919632702182469470918251204463799786482888409216481757372476353484620193655074189189795931805826232835630632779613497486271753829109044125513192492778443535941638645734713171822711478313905946618480876382331004886683422845041579081310853465986766988022807932326505489912667602383493117046899548733969728786868349343297845009707113880704976302223109254910782940851071063216884790630826653251250723767300336303564616267865078888976499086407910919049200370604182232703365969899862168653629848588629546732302008911087956766003826739559349052689985174110477878163618380645344030938699200366588905372627170253409174801507825275068035373263592736913649925335764374515402102043357112445671925669175506939771304312790106953051819568791457504193713198734816247795571004070053972587739032997758161268485915891131181206923668233700680504332873824902115492247255404682248352581414945620750623393768357100003487606613115264554860737941546208448606183464618135993668953723749549621927512961071933151825362850889070003059036309890961601381883990734831615184197676076356074118040679980369416088222208618125649485550115341195107106467376869521666284000871466609028652283712337187191612858684003799918309148394400088715295097690606577600694468792860775523004307080909924120337725494546647551333657984376609347387378703428935698213271976809721224961836936137687698030950537167284442940876919065842853975379261778427975213815073468514072796256567997040251799517222878562681689873635885126250061781665874878428310485691385757337210193663170232261501035102627604874997936242369821668775060742484534914442533910389681154554916482480667093908939514264553990477923690513054535196784385394228961644714468065131357167417968669885568438736120499740424203639808168917642096310906509278070142763487513043589056499295026493988012776780225284341461883734332857482945070441795265693871964686588716234652529721109996733033079245485515901491888501466398657140761494555764524526136273232995834329376531160649704513081539316176149172756143337635042267446541688111960911230704329809001995546418905743645922940145963145619788542228450723822460596316823961768498214965110695635688363627216872624138603692309679086410481911692026091108087957505968261872288455498972929576534572381598254206990448267045094252017881272932352814602523975387513454609645966415457258210405308849235699092691955887666645345835201543220925613292336842586860415019934041061672041201349973646585037260277379543631584728546807601879753329495657671059739790562683572084565997310478338413421713289344432585106067677578507352806904761482540570337997827952602870785302667979226998849510735351262105458677904080804143011157360919689855483676610208065961774390452876355039800978968687314614103450677479066403625257256945690673378316546766556970887002005748253124959452825508425255156910726356995799700019955934942323606821374841889942088044650459344806232717309897023801595229034225316486262091429226330815122301556511788028130237853273720884900962198560893737277638298822382586757243097617778508940682991009204668025481645126072479721112784852672311475764609777899907799088073360323145810604262305224163928970182608781317787409890689265090069688493809456818912974155272926098900472454976534390334942356885435081830739210688264228187301881336067632285667377873123808200940352011186040871215764758988941716927759102915523663307940845951922473590085904991996903050271001807473879305597158600292643969773840132938189365835521743443521096647582924598163871954953213474502571895401183006057817893052086628412672083556156309600417136028660535960520781518290728212334150239944306479070509068673488275847166631420085950200982053872179080675702410855471579435141613347752106644822032727970974722767255293821027633806157519908324291012712234171111275591555865958061737348688733886931197329871951861692774931117342854605456027035171061543724906140622511142713801073261377093115059943687798505534818939638073818729604434761627647168527446001582299042897737029061370675040755376488567497193618675647516193436613065573998128079001339276557517017069108491608470734500768285303322388547973233308764171465815207012313872491203476322333745748282159502623011361214534653739265019503684757130144688665484660962644957577629903684120909809037513610875213488554317696650220161834449979215025736908813847911021852125178732648749501524594521059586260042008157853877936919236840436520504578680879067093086277345582592978535929073723496532680700906761174643097201785676317308097269775541523096288870659638858868307360003525816699175528357208662367622975514040440627271184368724887869470056392319591610476232051360289296562022988033355279078817734649615173166646171138866473967604449671993915671400335067963984950537789089380865597632520203136919300956701105692908242707607005868407411596556810040276650460368560352150277462378885112189395197179103327673978909745007486201271925955272292943073576048184310588033534532366883348921148778838259547024810215709795874931364079619075160279096289152767507211689240086412103369256964483594259520550644285581899280988213203647028542626419729179031518772410702455555079852670910948279970392628788405215106405568052717892405878160339758053852680928819844439744601858098040237741282818779945368494746485256094869069859526818069838240845393636093580099453382801831250169037800331755559786627078492724302259875331406015687814110934999301189077938235747239832488926728015669200329480351248440425421158114023278036181499328144121177757358798355276578985776738211943073138636344020308313272479468796438468291942971041339100171962549116034636753873703944493020826562260796648525045460968172644819627710642838747539658112910959944151519491367104042313191814554791063833786272129169230447505942473009990484407391705853805301038470617477366851109443267800540774289767046188912259128261742860284739712013029083601882696273538743006638666559559274967668970601222753308522407887144885251217269488435059329994865719246009622377558177831198567633687515097736723977355048711377041821171761298486576877535237148200807661543705534321113816927978808289780706921138310248697503015401889291861693814262223144465320489994834987153742603758620172301341691531065666525290931351863809054099057466088283577557899298465223868710791380741135388126300768277163462654082158239498009169876723109115098999755397771359089560045631413877224480866806642308193429081542078984133629444422159930070271567365829134426887182654222048338245757810220615215167534771998159982458244250781630765333923637057320930808868543894702026646624023687259024785835648995869697383216308075209995376887995026058091612660128747650018007027864503941584895119043790870235704442449049199551726835982445120965608848418505660656033201660509685179088427417945796812822761842477157196812571348499192995377135355446722571037933993880248529657003140790823483726683529519723084728289551629319620103568094575195021049781311485798914089290005570855845399212247124265931882124627041376432741519779001114724578169372444621355104170678939496087936881034714921392500680921681817578302381603579897549796586706355216036573651556101221570189365350413912725076499083822366733593362863773618902410078768188654311725356344236355947104774287218700457999352805046719587363025238594821077446279323741151347170571532572924720342548907054618234686169629551623463767908720453748204696104153569776433580621367646102271539503622219916986874727796241488971588508918512293734114430896813586118783169222942388746516564116991311631088525091176041120534637232513032883544702955293673990612553521869612348747388050053829099349573161545221453334458012775362243149997745530826007668988177040421000520641897572903238315303071648852526985071421848584487543846762179483738074022562121381826810207022216149970283353023049969222319337522946961402168575958740747337178045509088818699817846152159606007569624010636128721731227449483048429104320539433505433458240230709145023306906220849028270609442219298167361161714381646880102532707976778402905795671194547710643286451683248965769960375736344908724528610298147753139640630084412252992029734388378654491426393533917998008095198495965379318057173219540691080443962963014775702614277015073090174420779694233397759978223736497114033258426398347990455628073227570320376384749820449883712670281073043539473468058969804463058340740999899794370013877974852072814881283009624951821705747399385031195825750426652723871998458855381816294080167169295517980634688374712447554622508922604472129672020826057075022845083955416255655283668338485744181163032298472378536133111277448594039163704795309228934023889828426110656764375403184829094144563960228962423881247909312551937239109227268293669835763640289099103770228276893376400912456625249204362379377071228046683386552490790821520525422673866154932785485607107941311631775588851715259085503782404022174844226526377371535239149579549026708914916266365906385807660952473633272723606987519579088813821860617383826582569319988571976040204230759218616588204157629942326293093539789428413582352878079175672780114285242764511423085014562336050833826395807778301404830942947672027002400052499739120911805555842413086399436470959635124556605642048931623008319794385355186243472248193799784027525715196734540979544750636296488014333198839387872667478120475863198618139240850222886927647776308905640365227532619426536475717056719124421487946280165877807647195353645357216059160329217694276705902599086189158729354739617680917833362206119403491010978654398854318002218477769660938152064411849474688040798687681704559583794191434344251428207277079484924482155387029762884572011553927079130395574387878481837232819574181606254356336853225056403830752196677336554202216105902082084794583611873820019304060068633719351550865924346452638716764175113630728866006120912080714632612591104360145448072327473958342392605147334699933202806406449822367492964411430143762248366320898749865521783010752056512563474436743387877216602825508602338801942131634580042278292703494301867538710983469370161423326626220572221289145677908121825993696530072150144095149205769924981270079738740928519355626671607376951389704162109906860622048130554717744575722062311357898912116346793818769169278328464420114883646172498825971871159524590881572270366797045692637733860600729705517868260687067761958478725409022073286824487426367689220856036327354716668716359057753137940989166779224677795410467383046755485227859157953691271116055774643549794541902668189567002506017885586631858635392743653147886958608964616606480355297714834728886924981758446788180677598383917748378790483323800789236537223611012820809194170602480134102881483795570520283550660946990592085177012960493704970969978124169233173603039234358974218733134729974637676881460521816599699829913759938187216577778154922966048150289595060492995938486901001311129249220461404890559126417408724650310025502728379153866293247879618467292653312269493855601834841078785090483032413699368565930550937871490515998142437803827246020527758984597610761402091845434107396062826552494308773618129096981645603918417349399557736401330490712641969792488506478712170279867379699997918356100587433283384814725172973777906429300309379303540339870720110389107853184083915468313229760574388732774487523567372522456032680321990790047524130763313927169801244806408569373542188158586247982279994510874854523759740896441799321464213112567088432945595261691227840454821012610505172803636144317079045260739001465181157889930016570411841559383625901077313995593553717322822666611474566261816612379076572449951040832676656094078837800320226389286129775490287716375246406746102084316095200271554133905187213508737721495784688166717153109992873410798982247043628595550692963252889175749589692272233904178073475510052236489822461398265729536544552820113769380370844092531374825748318181341810039480902578220636700204559760217149434134940572009112939248806368732987025273578756289142197964170364465726659353448253076240825886175225205978381412484942310541598283736077521493242245248449188095515734167347882997490130088168551635783272423856880057654220549355299848935393694092719001363689247598908449641150043065237377965693052828768355892968531635087185517574347763946948625535469612457408648321928889565766716351833647206062483703586905247002198663733358784751403232853988185020914314688822771418483041071521978510047036534124265241579168390266388466183787301425002473782162074626732728684526587467799051985349145513988849183995152420623718162944590616414765958212481382910003773766461157798488728471180098650589207600481693657250189147913112887985273577688075283931772731080291539560006596686311768851833046879943197781319779994311683768649615753207706351623475205446400337184435257471044694207265859743993943083053756607231911959587997585659974156006278024998398606547665099848063926019252028849256277194363286921755758770161111864491656606612532887135549703053454144163462919079424206735598393502810098165065637008107451028552199276931107112603771629689633267856279496207658329544463796800125762981007192960095346377273494366207712786470593065278310737237884923389928747096016310880948782293841839736381594068550817949199870382470115184464868553501005089927943903267562968571307456978928996522069551230332410558415618911074086306459820101933829949676552265338125545823400854871638625448426125667857475950857645906564380468373678782652045232695678089117737482589694396512148382037789479531910896629272380513128156844171305952346548330859805112917500923634155460198024997404971691147384571412300149410195285315107354335867857519795550401751267386682712744422081249959226751352506500241455417623228316933657061623775716813924022534936322393340386591920033129725403162757223123401664149217975139982732888142333015582247133191117848453186096409252900966318911536528264591509439476100471541998479533194089633644779647117293578902493889106331498520887997994652608627383297393063020716563494529895310354588250634542769525242830817608671063260640936426902559556274171827675835529948204728953244523027766628284374916346998708165605154064413964678461961156164857566454377912563246383187729319513393529596685320494562971476669883766151535195938190364397644529265534430717726348997238018899069361540111617473757341950975066320968162721188941820054027859034394690790332261935076193173074020543004451557588164060025597248721463173835510864465960131443914267281492357914113502107490970313427259060892516235233359812517841404127164254323505710993762985477237714585602221311220015994759112848067957559138798726596969093005457868793490859663624914170882336823959652315872673266265146660676359999224840411950945710716578690154224947864545188035700590617920546443068041524316623059436004957691866663438112243516989398906766415842030013015519715900265663026753307449193127966581304434406562116328321793091088855458413318181302380302633307797437458679284713720418509275405382085679307549863380951192691654667811174349244882048478992278735219750366239678232884232067827728761719285275294074225681650541104449874928070218706978510267432155065513071360189898142010192193566495750577638146276971298391540616685581768771291367500475661261820655495444189238734898101988678125057304351409105481145228732986862803281060064947303516675137467400267169689982611057832016911964342054981224457824128618188155793675276614656651777898153072816555452350696400302248049003752931565218073539446419765978559592126153466494974837017659512175577488614743530403797030516079369127415215218872257832042322555918147040690347653014581181970516544001478685358015161370823406518611079331326724823141411550308679838704535999173216627065573873236992675353669054863232604047507019696870025378821947284554676534468857481207913627636196239522382942809611479629878068618017594119410201417576327952702373646745722519759850385142247963915876505427329971606496731247082469559305750386833371606280879058076030804171557714416600384442426997639829705983291906368340230085331675499139889183409131609035263938045739399703449067334256186362331146291299914258753803036671848696392315548064895805541660218457965383798464989576902452076852081365182540364982931540230954129091684553800237987954496191913385196402724512294604489471079631770095622478425354629895554106582783863793063926762826826351943846565852254514410059713273339313511465809254011453943806406654152435279246084964893569489206513543807576864066052044213813516246713946232115234045076660119073156389816383266186748515460291715207433371122313624753886807833174740324519996741542138897282598713934535849806933841279888828609162954464519751193027180751537931106680620963168463279184862102746905446840109733668260115721981997599031928526030949286519002538927897776589530878216450236384016367211548634119033439617938980032181827675446327019755071131811588070852152571984776448891932789560645877643670026984518967691395017067204041854213866122789502730846287765055233922160004537727976744624269553904846399215867417843592574971515718574627284540946935605192560611294764799332492913296338027141313019484975542764145493180503231159453750602413796682552305900710077304306365898473990887008107150004314652602741409305736244367516228936568631924083145344808416512565193573580905391127061722282955214732613915785881120276005085417257743423029215213873191384334753355766597893169225515614245935027655806466629828988394744262201150832498629772650646525443944936985903957342445809317557589459157360298201803671634018024285474027777497530163598204793261191586246054549212258142101158283018906321339200199636791166532787724289984168309366663010346564135657935131069894868198812806530075533769129454958565847545258607071303373424255730890126945831500122284819497180924049214732107939342185074786374151970486723951298618143087925653271061458503066577602775019385547605884645137547983292120225872728774853842158430531752164683089640555924167991293757621641803769757972156784875647760445292974503249633438264254594621851008466129586596569276780261151636982550887361499172433822056974144911260873594698303992710615381160881962312174732363482297355248141554773064168120913489210884096659154165658991235189542753465472610330721398764320019289390025288884748346706093700072368609463104968613212248004308588741910795989905065691974202070648616945801573552473718661909345252064653327581373660797433224039798554325283029748574521565865027146501134625044661567051417521731405424397309234491092465765953273132401210538273567574093684706270432143756723510069770816293280534970496759043665078135449566611740514633517633573568382041403422710166459142727202382611732664209490345721788778611675038467376765722619571752444589661509807070937365415311333444396536168587674519237806448206623245361828441918908517572669438730754820294588563456873146444856166744425803229936932485790848333855814605039268244135064254879645742773456394503418661731708808672967799664052303303580963486698202825212887555733824748963065077082601260919771608525225467445021994772801013381005906436948962186489644752320738523893132087372733537398408297189024725040668062426431788546362032126280897255794459846171147743169334802445692622934603527439118241474481235355438150603666531766965805146009266070206338270648287803185042442672819858476013392287510697861461472354868570886597395256086927763687038471320442330174060861830563779364502459997264036653670069523911275987772261015946350948159366705169502555663811073937793084675006767691435431639726617124783730412340301862178561927196091971158837929928724710222485115279676768593133837096393579871552157522629820687663290719522036641412525207561775844609655496644661471677246943118200628471074794503506344687782669285843403653640748439320626447273954324906213849154599348064870093152114714340985823615704930762632832127670287226251954764878235043038637897884124010675472912652164122593174722445747865940923107753426042133637051928879241780859958087557107869663837390032197394915388782630302211523187557579972556572546295132212111777012386366219455864568559024569753351271719802323774134822917667093245046023971954197426892733366240760974646955985411354753496664324238564538690179232778327802511915916375671334309711103870794367332803439911047876982349896224318576104395493086904566899758996275275529723111508055789517587014978181491797832615788142828609159723881282892150245585863265170867638305246117687135815602963340820094212192912133765812377720743910332571958994323771153411892300785761239258118498466706958060346706729209826194447404239669428358945507251333407475776391630587210069339108171210559848108881734801535803554496908764567301555506743402434272254267282625850282144795835207810350433915405799257565164220123741790918257643001510572703867403186693996970619013050427206037424976724452397767609644665856655163424782046719680661474450412240704116135906204248401506263358873866744831822952445119196155194498982952144232577468044615978415091755529362853121262741925799212293177596505135510773305243048970124138577659804566809339358994525448758394020270128464703351996903102702287936582042236044284398597489096276496625522846346192004998569614204385615597328308813311165575814099170752747623031929677816816499630502048456053535170611355012668807055680830179433670620889469579473617582637425557650815346328398102134743215948513685074383799586246790537858007681763114284119928642172098537674245535838251313461395982789227516637760251930044806271945909303544993063451574047798971194445810952003675022244523531688605256483798787192060332419241286598603785148951713414505753131509531671371029379515080310291863635430989925316021094898456785843785417480738521412571246935550642961677496075693367412819472063973183081650815430074358540119259875826099573653767972987354794387740184616959038021160535275523384203961498936918394017192397715569327830495780871044008684046297058702714868218578421856410166370568565874546031430419890483563647295696482805535341093189439038688681876921485272032374380679268564585843362796094069074839768874705611721248609533646727196919252825829172875253029706747799047955383604072816546659882695510247611243424492576813044222070761152780007167273470486956386690160616403858125641099130070280441760698494333963303300597362392582824280953203613987413376556548662680985421291627193280051887169084075208903991689770575442839323968031180509396074895991851356954836954921461000087191801170567503232547519242376016862636921092188871235324457051815077665341013650595735982302399659343516761912446044528507433164915685202431819268137220535011232156681327316703858297678978345443397104972440347430690482721554198267238817093706634816081068326078293139079066881639257608308863992695220944609277595212840737242861678640592844460370997854910719512935857339096244322242518535062230466620254681616830399369067658468531756832072123338989180534669491859742769861360005030649350956626604847033173343391652612715308658130780548696903185937688419593896838861405150655240784324229497888448473523549624632676884461291725207425612357257638438728897314117571331465416913876807502245935579148996868003618591570588183338623131867113291848354086572236932292603123141512064449468979882459256355650600132998365605370276660380788595079483246076518973380590817901662539506719301825659663806709926729220429745768955349064472324302296765244141664408249390519365555102398593486232377653972424349899972062011284858845928979509548721504603442863667692863549510643633585373746386106816409783728987964041339882264605806413913736810475308773713521768245794755092047832341597330650092347620116659265267082483663042409476682052999930794556488404763519502134249495676968385573891927483700297771995388164733559662984204210515175271267448674389127900329608602672963372268583809461895426897425788351049288767529597657768503077710914835053823567887792990175989794979813067686814280074604127745810485630951029290999053487253740991535562529964300454968761642101775003621969867713914969508881479105788068885358906881505465720449388334030587989373344469315079555265360693868429723634397875598659296577886070489262264676967983051454160271579939156713253429060667390331854980645338962042274521546194849927262681361137614543254957098405015998353429223773073607601941770448339393217221583267770158573658333205814786172120804275467391361265949459779016513843142016958687076181272918969686211010580910939353595071091601118394522359433585974626823593130140043704068988563666152119894241822887971919685627436729672850544505582006528292063387368597637851905285939162642507587948676634509986261378296294681536913316821352939040634540119645526554676362876108741863481382600244803667686034177517161077815023127599192921385082649250498717886245097339994079425632556131327520444092917005148636379962479776835601751950457623413725092645516082223810346233761473256302460600424911564413049999888857755119486422855520280801694717424349367400730577718822316618319647092185235931133466772942905735019761563553076530442174342419034462331600177749763574427174579305615171734312197729372530928949861601134192938625454305201921293901788148702934561773110233588976804940361974759256080048296098758930780590567872980261953620700336269271176000338444071282209869209433334930893653728618908340859091775180180970115957527561747273375916130028823639159283109247588289432536927758486869099453442636098428203213609144646737242102941188950855019283947535523732782721977433154125058494311083391955528807087145161769999479830045137625421458748387161040485327465003638892122095859574340085153025821066807860375280237611394569374689459623587704377210782254807917756213043689855932020148823628180642550516111667908511410996803855159124485488839854241350594635948383887437751563495408197317314172952696805705904483547003996133524004173811566840569319238541006329211897989757398947099765556066545748628898635652406002084032426348650184188664169748800828476456381255465326312068951637369890877484981156155229426026594373693169060428373806372507269908089477620323233603505388910973918167283936645405583504092876681875204218126253749926054757358231871315987001604794219348992507737726623907587885022613492127057408850824649040185361101685740558066236560846820019331829935912710753897851486169789617098607265963576542709195739064854730199359112087410848311052863343815942879283951955434424876986125248127582729583955862232638017228520467555336074862541482591890873693686317832548979936735767636073137612420294896528772047344301084424993359000951104393519033111727703852610909088487624393871620813510354325939230908099182899467727279237045275610734024465032039899919596277362025458245060115747930775020305953785957179257969179036923497541617118493297948235465926374374399223975222662629063370508384303736116602417785239743006194597165781933437211994566770684157490544173613066019540385097109823319845704653736101148222952905672300727328944189281628571987221316437219687326560371331496104018385486917764380718406523009020403124491917525250652363676691781596810947721982489969724844184234134079267597673783412940403802677628171316102534845913884140925995394467616182670759215033938508854244840995014180711453426470135083316648260506262771400262981447753014949124468636064903788125796490026126898278567018714758687317939973705576848558397872457561644174084223202290886975494474967448014575102869420420028483649054795472145503510271259511507079250021208450637685665438988427628937905877762666285328105349503717977099389411278615200149136515751793872682080314541689520529735905694737119840962844866936993855876807499785127458302103305135553082292057307248895137977214374495168291569604999206652631674672163733680693409256715664222943542565759078320377305916472481326878478478372002493443490724220723435220039349943398782349707353893933981378737894794325886681821667365117328749412042636769434265678397985789909776139621855911483092504925695174673864325949124586410113022015443311140364403049597353751418777249000489957079820121500044554104261232992707627338368040939249869631573723776649214361084125744106468399376266306404359620809240495143520692741465167945766549036831365654754637926958113578196727867347905335226191082238553298852635833651101627755554358624201744119953779330412131805884786018530862523713165470747530813491092781758343320178951374756942068074592058899289916617760960688378855666826008447594004643827164840923889238329256826235759405765463166029562654351714578238493942173805527090827921131802174871925291293051906473385161560014580985653994688757479928358256990530740060682968833071570468403643086364568489231712443434714202332210556206214112635247532979824829855425902804506277267794792342535809129971021047367175264027634405104765885178035482556601850725247930624784890713469743509357195745813311408150479627985494570254850731889393762511378097836813064085760401149934349685456462232540197159512907600755153004707398681498134618506388875100216563670289171760466231411365882161621649740414667687627247352896152832312833931896733351624193542532005060589367596641206439593435340199380256028604359330615910139024522216149386231141666832527209053426193698892165675030246056171113876595870834197237654971696264393408526543271274459522892441917066784617009132103040994196413731129791621067303130005599755690172773696072584222178737904618934104104733782198469039604420706223857689178364569763407487882146085142898440085357642014399189769058039530704494278273056073505514266221782968972154491887225523564867415623643439324015779657986788803388339898159392541507119073311081212989072675199201135270895599295138205349109733875845773720236240505826542783251144065267511749513209415350529600703392772317920380231446422016860921480309123455437632629853238877462583215089811665702996201820907157708254931398678260071446450041887542256884028744566132103338944172472685489941673503804601029927544844759450704373874992398522537349994587988669142166053970250427122107765874851477395398169354108901330211096935106747110473987305256963064138490214358802984408860386854953170808426034948727855947556615541446905909831804281778733967055551581503220761883992529610977679239999194117406449830001962935684135966245527846046219769805286093976375179742531207038172188436389688264014325185337376829764281869459924351768451088685638578381857998498729925379079863139418407887794826357879474744294371500455902756520781859992652691439797985203506882577287813553348505661598305752926022318671419482422955865736877250292498006944826363245375083875498538035354419857325768474816498231679773739845842906729235232520044815458938662867190762767318480513825225808005405123031483267678156659949587516070499534247736273445414257114754181420775784156526966778585197288996793611901432254579698923559993509291879068920857216191493769468963690558051942166040838390830942005873330638358123659783602802325383923248335392825061324627853033213898370904837264033347899447936597901204281915456464736202440048289204540886815329017941086303981542827261146811054371485398412346525522731685901743495920171752989939203890047327074200425067002191242248475048242008963703215337433508614933886328435708081054197083532475635634269268712130767417016902115923619303427305980050689371523341691364851053479457400466504771317514729859957820314176038970041189186159425809502660823797153590726472020056731127602593685437415924744406177914997240716495131354439103242842459599632272489846593266806794557796879830908691896459539660064587972840939506563372970449091309197670557141382566011339163915690388748893809724342543942947870458231163717678212897795501900943749835252463596631759913713893619489077331506432341862172702334951090913187888408973570009655382187135663180809587092515873529312072032459551225443578609487545504543886767632592564380813997038507998904590427322533318520114132754933401794383364388345033118556600244004191579362295168906081008428303269120183214370827363894969861916910098044329939365174181826056611011517202741564990104030479778911805347343523169644320537928955760179876130482912588056986858131087391512631048204583593626225347199268189548196246039549993612044212048527352474198011120282941043466051061257337971582962809965936122689094375943662609187336065695864713179476605542331987111519674664780538339473632663191743125367674254411916797291513499558061124203326823200424078470724597560534140725358352875492752477717008058948477141202160018605842017669687461113484173173798105480802504173029964105563131346857805778246209095574239558216875997752266835148005589561639328522882354271357031841974073069914428696145628115706925531006472414013962790391209347598806719216128439664926274902836517388105782933881462696489636222195705421783899571928392720708314250869003328132211743483000367293712944952587080302701918526258028404686973510193714113910559154755729345035340729900082156430846796485478331017604060762276664409317382801469063004167275814220438382605710448098058774167054398058780817334933636403003419910137219618672192135948681946783320636374986976928993413890549988847862306892090779609551573803359774156642300130585329968585516663490366585706353733554100358237005561026355827331976916807414412721455915287330930231837050285103433355435995678767278974069796540085700050149028998305760440781765671015250668235293913725630688719680016096471121699786320446642955767210872288389082746284907008237740338356997666790992719711301385956632470847007658187542885229475396907923971675751751571686831223946183623514665710752595981471847005236330849345111495063000020141418008542989222751643833246200227190314961545962895200130475783215309764211067767964975997932287298669806701874779410341890480352753096541228720072428591561618085892667910129656821437992394808490441190329297479190155393912229719204481687190337492592625335091335682476506156960665822104857966350787104102257901088913326384578381649186182041056250495904617381919068227291193623046701817882245282442628163557643190114264457595575176248566785555187106072404295266983398882262505000518282920703519382014267826317599373707136093620599640780656416245795829373079255048241555859111576174596058411591813397194323467630581769910083915610446300812737000417487407318270983298948440073108005800199171457735751091170138702500599017920189582453973897617808868657815508984534056941953134774399251866837067385675331664442190599284684704373439924885958308618961549620542822804314620372746284462477369912851649755499078326265361989387229490993977200155063672760072747040827199333537654485564155007636145433064546937724136704135590289702626524354129106059852630216270533195396768503442293365090954212635664284406946110279788427489856653906317412656595026077117109008413601715815713181365030144962131896389820590146386206153066270516555477984221798949944489736717562655793636616403784362290103909564991798752593852892601768265410062580435599414803922458284841805139935087270230736279228619875392819888188038750044232158933660043879972709955607473251945636971349600481166625701163414175183820823875439087697656454064506164392341935257019046304087975550794873720851042801754941865731300630283419874430321838255457322666199530103008140601273828014933827091419859273515187251610861540421605695793862770124666739829589824601938113315707319844026798467016012589759215808025183848808381669615583247284726391049777688440413032578419939154382953996099320537749474903559023538209218331640141319249819396584066440087779210745622071287812729410305261370792095712301640201684255765176083218178045078658054771511967978883661052394011633224721908288969418907511943684018558892011029508841256505226869356040813549760746760198402017660838414587091120517541942171242263742218801098453312575152716491057171026212509050775079130593261352718235999068130061343386569508518655867340361233851952639665145932616311282638874194585047369756576355646328981047085693197471699430117998683358630476827774221982070026743237877092764243993308920117814092169402591349739742706358896792694249271305512342144687175093918926601223960166646720153334256380067682444711139586645326416870820020610457411048582102362903735139182052883684553236921127966085314065641471130515810999897795422512301106856351245844982832748797510041220663734674793937048897996670963906026586908007535834357695819929438300186356927832012648839250114432278377039642772131374891442875514488263398448572954516628653292651138589569066328126276123637931464812790854836241998695273152757471388016208507193741747183813176505889306544823109078526812483326494666361099378395884461114803454362621385273188777582004326853002783534434247327298286467345439116914144487224876197160863865872485554067423847762711121512930138609468630101495661546226419662220437169647802378343268349559669595154997517999165869356086316692957196747817355541004723140698035683369346400142050833237454703700679385923566761209631028987816372772307180158672704780376658362413747386577586484086364426324912541161578275661352288193040285827701057248661817156426877565498942720251919744234246347780721147115064804302510257703233845079514224479386477474128034445688129285693918752453158357198553764617177622930035590202643290200495774880951078674354573999121490877199734828602264016891595228189597239639477204596512831270363024436593716220680085716465234476087048022202533838306881856579259874908450664409568418659635024042705454941109111111159119236473434979458965795791709878640424295531832329220348667512955407516352018736858457972649159301607785287350905120300920786872859518940639818931495207726040781831574921233418810098842402642197211345967250767545846738796386544540893532528459456996147697717588730257185765013796360382133181850428426119809983081663211360657625627812509564665021794080153789657898298928858155251568155878242272320300850782370934762767148841211888679147443800111984913865937471050031688486157045150522306618318060621482778528864698474473560695591659955241707947399296725984080988755012179728683692574640161144424050445819127114419913392606182733345286832584974974058390274002381940325578962231636610436236021941126995357910873336487901742996458328562557825921642715519662224143241499140331964065529285678254871100058463380888269046465686790476477295429371612791832485120130597198168213100358159943409814215838417378996723051521106955399219057865358696059904282501756529956161165480327749751323519951384926147127729903817115471852767770865364138894313737638833151042108550606002813145454256257752449524669932957369141217577201744330764206759139942556503908183555246612478122109396815840542297015951300431300684867614024678821581105500692351843951415433232073815417968859984837673553010443002420971535825689830959144785781509229784601553677870754565244276897545993273357150241262368784484183529562478332366996577119609678277359733381783559588444482343709269848881880814683175599400182209190191603062528223008793061029827654963589343353255445618274399031775811076657993706051442478444844030430217696897680995402805697828010654027938558960805921037788736810689765319366908286098001524817835424165665295429636013518798141874484033636535677111401039417848645511574939353635719195987146455550423389315241606118156891360342104204436653643282837481519554484704079935853916329361475188629255895082838649259110613105303204044999645454172708957325963265414690057676661752066587605458309038493037989187832145579742120307503511436092750354119527309511224374768120459269117522411137066559173968895534535037624895423693073240431861104810299273661661555504734444500670489988717495067753869899507777225265699159440903687387356315407502545248186355942881918480345241294795060753103682534633024783359129729436556291026646568061389619842157462032962370580103956363601310950013415369148917573106655188199804392811671151544129264227799407391888932306342049883814705920453265161077276981693060583064589646775813419791916886315775831344663361817565007638191392857857359895561321104685503219899121735583891020131575039496963735812158599190529661369274814735156108131376076400302251308002818714834344623908616584466194694818584339246043441161791665809728747894623127296645926694906831880509442895356135114855289690894256885594089603932378024361482280028977949607462267006092990186181443172003948457190259838234733625066733815012087507227359524545424003525261385587593592227660626746115891280397185458333288192414777169669707164962815558652703780331700340574608231300834779998604064783536135212296502650338652441946241316846566702801274243276164170734343290255299436147828370329001114169935233202073747751626736803467187305773651838697281363151527334583240244967490634198633322567755034803084806836913815501089894635074150933698743967605668953910120374694123037264576286191798342856179114495057907252947322300866946372537895504721278080871320137818632876696292612715840569587981002804962262644956112210672336480682980363255932804522299949775461997037208652944567783722481090886751565683031423351546166352743070186280497747615072998302240009753981635481787292380750804987539639997065675149258150835609630226412797828356087605727276159563763800259940367150960519086938685102058436517031878667559294292746675421940499622550605969919114625688144730634577003570749841933136268223542826281579324438828161012386566839890786099270255888134664057626797019698718522190282268052152942682141323489713155622370836427967936747898263239459582532726808824584184199178726114295510300828754387520606666049551267262685220127596118249624404881160954571100651961216208987714523533744757103573696668854531880747043969737720238469063369263509317486422840012843534974193094370702671261118799998955308323128915688670251851837283918050838260134808729204029695976913743294153739174910350973833940121422481597980401747883171089036911633289753257171163586949650010057507500527103474044746814289198708085710468432813049949138809864035986588945614544955556932816894168147369750648778810041431433648443684133958660544856676305559028103939741277423109190814078029840666977813019367414041412241435092082589332321278763742597034445106472338468278331807178087827201237157930808031231146800635312915308875347181582650578735350553984149239995621023499732438877117361079526452731467946849774983122946362377248588118066296324322703172084733254613863348738636113849634651765456287308021617964755405883371058761062903255136193451065160231562582114209711277946990533568570152249799053826225581250682107779203128131107815985288349886467023985283594791797338641531993014404043959220032970938217224013636102179210986530615822432270626360079643014877830440238167712136857045278534158913271302859128204849959394781134555066777081182627439555720673468130477898240549345870016175688141880964242362816409134022217703874130908768766127436473837704896880459755275824258542835074840035533195602206488265820944466983290447641110164211262899249820542361767463497235685766515522834240249222883100062764588957609773750500676199621018632813240200207580377970539238083405900183998992092284473487225648005469755478588859806354693562279192784807240128076503224405267900380584879446408852043670058222958149316467513083799478246902749322675588795504585618564040695956897978285015230060947034948632140124894269278708829699487217253891298137789542745499555320796940777872181210352261721168061485303437965026247827227202191578428143694343800901380176828584983267835018282812196882166636174014086619343834506860148886946704288324354419025257707154768951726164099029641424075257994816052752802323113673011086250862655513315185826489253586718915614489925410111475718096407502558577939287421013572402965198335535495045017345887054196631219086890060333969350169344864553764089594154141314456963904445965889367151723980248574023510260823484795122092600000659286533728295868405252629162187356323279884576126232848128532573362990631586149301374980605562882113878241629047485230266238946244251193274691987610234691443178940718396500481739189008442550778146234337243197745699214108651981879567220418428412169321867309207887144573450479671541171049541409209749153172911223857889769577514204137503052809386136556888895492798212126955589269135158994589707802846824217158658691354256312926576320361677166788823146647537263963268563828566580831696406322352096033457716810486275752172118654342791237557027073509668746577824463008563001227870078015038347807097816791186183144399959522294612624853026323228212939907013347525203092793173390093472116410783237914689113827629731290150828388984507011068002066879921237147074420845462684458623495843241611845397899772083943144146046462633434394153902418380468942705346268624749284971438396560870166045430015105520091827765365961945068941247503969697827071571247320384817516692118053224173957478242880088164311800384382348788138957402135205348261858711421912696166292616345122797216864276494104005316839289794325933142270016006640745909537856689347332955308928757582637931784976683038798519257556505440120638678956219023698631561267174109868397404077460404740675651199296770574563177546547373895624788984155223816095928239413510470116689385680950495168398090754864159084969549713334339108855751304540495154368733517742614461456614074391718028651619880605587628782457664611139682603552631497685554600159621746908560914034660949291308089794394638312397650566395280893374565486177558199877513106327572178748682396812174624985306639594066697800608700567630002788416651682336406644871332153079876737711419679013567192020480305417599235989609440531643356612316324836376448661306137385849463897892879005330443950052467973215008307400220501089606960675512212440807874147074936476064067769380552210039276855506051636720541876948004885221744804825792913383082787508966757550169132841011425739480849627170488222343594575860783060715823366733518694462284081006909780826161269526777284291064550149155688453412482613500978385171656029312027595231041435191817357203664006871669804088809747472633114842015520539294619673510245954176508293351593260697345843483683607610886259875653170278270029051460369154661482649746746109641942572966307041130289041184161649206020818255486563842332689271578910959381105817877013186585339613332129023274566294347621406266390290908450072676390438262707097096092663268116539825793934202075574001978806181881188106931071229246612503238057983385088125719001499408152702064920168492363096265463236663956807976906929219056973759813794598764075393471236269902671107307666322906757811556163427256885373598136525231107773799848309919667327553567627045814054464490797599581281931542785787023917451503913352071496307495654401703851807648492126562675874416322425146417895273776096836480277957406094476685150012001269260382933486412967285528986446697437222547517675275547031137632056250807806143896787557562189590671730051671460192817398419390066920580357378941619497929706736912577594157141055676007890841029694837771097471136720007140915509545348918569668665327872004658266984142663709600772084531855955838658015635416265242244379393678209374498559966219182996700163466796892823163296923173261427458491308094323398419934494104501908855797485098457336902390795167353253476225734181932453799582273442294971941503627273850964481310177159460542475889813966374346966569101734114042636767373477414461827631012013714749424146604181332573990747647530902559557539325277898112968479694725298290672377109111840744438552802959089195333235357603961427756986312548718779148998851862474582870064933862389339389652414976284832187677406399624054339004989814254475797152224521465989689689115246043598759154239467006599522778710636815869058395746477701411728088039005183458502789115511456697070936051911144570032315902855094665050353348936203454176688534103345682614104797846639310472292571348848913055581377067984741029041230877792176897487436181145502673294006590299865815151297625549051940474418800377201514700521313213829678219499234608661170958650234756778385105022978006889491807297087629492493910818691942263731329606494925080731185913895539101919875271953922614724203910405862921160726116087736707544049863781894287413669823572143453929222990435867715736250814274636862214087676526043386404005444748316681129017279165473412540211790801080079144660664214320519192482278383386621221289450649594903319977877193630210397423425040722273449398345455634912917184966306404132736731155799589135298304699299470830657620306454911148684911095805903487862974095297423553544407136801759975297275780769167410933536106437181473610164538220494992162255477027570382996014320694939894874688735310978632421743779963719051866248118775392837141841943113199005359570740648004211189138283761549857082930023845986263853472878021318889994869822503174587805913921262193991806620890130414062017564141340863287220734814997995585175145620062491279359277494605329746088059399421976681084774064500212430081816387731417436566731518991725863895307360907431659328425517487014058909419986490782070510184685508657129960076959849611274818221305185523714608905671636086571190083968630769739683018746899745512342110911826379142319361588268163331215595335743145185904765658429858574653770447187963574192754998475540200966120073312831926588486914355828375657202365146900766806483629014830267251507117033241730272707108056086376275686793950814683704471000246055720824636899700237360044015322467959828423578360827225018900318704850881702765639268614181947192553183965986547449318558815149093676159177469961552340221358713545427911471036312756506003127673385410174621204257000713898760350571570825379334722406882463124892881731750863186293377721371252529067786851320784496205694496585390337408957126541404739449749452503572784526717889145561901107439697499417293781020435080074329114842107306519554900580029999727728203835544870317003547260167046524770658133773701148133997416502409644164255720707658403022090338992787190333613799113059342874899894373798318335399699253791238353282188393547514056266166581163045115799840275485761211991579611614697910734063076974030170510976403636739221227278425400767608153023195581484732803073495138418841325154714824516087637231048625158103386708496909985491800566279524311093393381508257227600597389967102231565024980915342508203618151204812736839500703245615105833563502499536310600998655396803718253977463495927117020791317858011105349004755050580410822989907125218317390782433946528698097862103142371617107576926475784636507063533612247820369181953966943766981454814986025039535549666214210992450764160547724768745730619773735812623589021913076476825086605907227564011879575004643090150163499298029402294487368531010175548955684515159078716972270814416076483428778286160935983014836641278736734802686657753046896837052331417980869824641969499945522746023375664953612247274442140311633631899740825804471643612693619309633235122504595264667198950240431472607869307567855879056285702182057883605481460870163045393847853665253301980084345339759655187804750805315882678612398530566135617657759087215565616768486461469386766880635547174470293161668087305569095107803011600548485881811787380462821754656858759824449373169914280812342401623681395757926618665062143050041717184449186183614925236241964634264342783171052293139076980562692010363132623935410102190498658163233090398289825106279003990274511012178879418030022233927155515042921055724375441156101915139909397659440822547642152104740542066866794168242482577123112623263563476667163774619684483263373387059935266731317692348672172525859350588525773175753569620076816190936431516392279976520709563672345343902466191065473964606667964281477658008550572309743239835526979876317390612050394834673124502578928165102431630428326863846319852968350266148317676859516013102724962016788427232122613098765192258343609346848729695197417650236911661338088230173221397413159684890328929393773889572232075890996950561001213856443623182025166544755332587908326775159971666417989416678163381612102086107445952998134012856555306875035730099937409992733357035338575048583692463168983502193861293170670199633454009847612197128347938073207120088392761925790940817234570225444174054184870133422763623104564686129845186731663730851813771421356945653593179556780581532210230366545603590367785527504861513829334053599507193841209206073589266405018032771448780065153163990047442248054226550943032075998033412783236099947131360857255315937726689750347899590746364550668585256378268879424698255036993089385674428392664247440144233801117530769049574207605287685358098463013284889508906195825122743272450760895746431905364446902995856811423776172840077770041429161326036168528044347169253263536470776683546346871357466779907654218199496161068973255291421481448167581284274717748793147115748299932514722762837854325363968938409529122621472861490673404639311583715410400273781180899843764855057521051524135592358341556613359655949524961226511740131463686344163895086962246764387129573127459836095247326140373494417656834825156477697103297899680209222761344379972577972184433244733119508201370789625555931683252201955450248197187299929004926501080072884995882940780184385923977867051987595196003070312167206748703786167477790779201467432642286239760895133145493746261381822235170349641966912776931804172373497058048953519150871056251390560604386979254747120633079130615916419922470907921904607475683675231831414386967201785440511494318953283256081675416476042435097164704262369930260134561101858994575429010780078597722543161531654632429223107548522893881081440525329822477305234654594625867916222254714340294094277310774283203877719420608101211236652639328780747253934339069807060410726880430174916864170598856291450589770881159491888049914460958844219334841643915444006936210465060822391619212439403235387303494037353300970593329841397143947832013928046974854255719174094206834772478520677682940966719708500860331269426936887954721835928108748155524224281762418757775633690303998784123666947799755668563953549727142557463794136699481949000117038959977193461736962195072175630331394965421881696291615214577441733030979993969728483614572214548197254818721207802704559581198219346979932066824372485296726045184161361479557413613060054152079716800767566051234482917821083443339519664155608515326436134829169899358038789180091850115584105823523877356744035475549521431983642501058851286069949647905580034094520685611570630719156684724215327848642197535659672739166766306999186732180072485022025014377147602050678529058706881427509422592036216083047345094966206855119186808147528727351232088313495812999010739858796033225494685672407884917984826617464571643213319922468702576316626101793073150078935893886233571719460468562182351428095938233784236979077727053736250311605788519572034092369660567164189994637671575207279705070142119569411543908246508468411596631154277199421138304579768984624555428466454651351160180116609478344619916852771516875559311919532428572633334824123724872361043006982266054500797911634702649508320733866992175047035501281401836481631164751485041180700998143409124160127352152901589339090874011853278721599637705616361032029518383302476361493769411466594868390061629277426298745006440048647602119411414701285757965457946920584566921261243696685059103318608590403403932050081115093575410499733776288911999332110071824648641615979965535906674056571735225747819934797064741000881919653875885306978387189080534843424519519951291204339100717793534839032217260361476956018792791995712427993295517721407446731218870586766675876395147726817150439590020962488970181742667415190901511108741797974502628422230795591397662405596886566379130786333832818441517784845015990985448280365126026263179930441684462015729274538448088628541525594411806496099481528162577237713784137530330975433794840224961026822092147379189060993105110044219766029897743850269913453826799283021491801629744355239884978453491641249184240732515838799868700110801926508002836081520040567468490313060397646307432797215406860715157562468626562097815757255546210948509671052516734669515811831869811805750799526233249650774108540286781350333764296558898421048127400830224773675501168194499650997856516265798130202894969041360063735757085217371875429966095876074342872218850679043634854179496484162591758950243198623458555444020686938444259178743638592395042450801808077847654264796144426269949856121684811547826879576691286582522025828925193147751945448894602342714195401524658982172188354917374031800821671121319004260039501547314529225972743806575503352692514213766399450233529186981593375454616121824139373233492762809020981946414150937343041530326184461091922565168558143014950845855141738080241289352994428302596528287235785856812484993744411040562433383978452867743499300812447094032826730083972680454113512342949072114146499269862362340809875048340220029919381903861937647749844690326190107731099328106248198006349019010551409701599492166285071624465651032817521958729286610133978369703782180585747769806285863914394391891826293317019417127512460384382532106704696553269297575696916646489678556488779912316628458141502315497966925745970149408774255859305417139528187411048487931213961017597024196822128159709654154499887737303629535035779976979343235920062970333285686253964419941718923507919057122629968728257426042475362777066473000676874842380696535681678343749865659021184142988276280651759604583474968921968572470705533680229708716915121391976655377140630494551973173095674813792928324956729112741130432836946759769078984410393334633840390173597071989790891691437222824819240317318994833727923204259718514062776862843945456177038548006314256184723418222258966332689458269721427289502338259106034223547034092944979850299892470607890622636348100844915979442667838090088539600712183457086982746501971325886995207514705287850558986925205409738252357700842046969846130206563943717702811262142996547138198849917546517600018975935930161206834500609813590021151960910477691880963301609604698390580010013412946312316050006461322976912232801080379184939698215021779568344103484598117976976392565140809376629414080751001015163643172108379350203328217422678900073108031477888695648623306241066788691843875700328074747151306991107068045665568484060623291650955059533940926183961086141344392243553549689013920356468490027415191988323551905763841608141547159040371449529482886381028135754563930453410976424272897640880227003467609477445510386378382520022943336491471431235993360807658883289427721815009487840899272403447431707692194280444746083251601990528085142557428165868537220040022411465492090172826762570334439259861089713078257614232786766685081884093567612163770486961398270613173888848018991673823837067685183704569694922343180803293631586674025873864741214032959956699507558570575938687302332665116192764568866989055270129565292414941251405953391577290734507236677783915656710065645960765033214802548924559416630242486292628570994553273562294084171825726617300922103821212586627407618101055995557126113023585381179364327840869795114097302189944094955067741428169665948162456392285888400923395036938824601710651306044916547855886216622118399630407999559165891135877477475538653976643358494905248594545700583306306135941282793058507559479322414447316861645599340629004561205573190008378318039447375582867530644921377181278263616336857938023351930745000342110148656720073352374916650586754466221981089285428738281463238499023592951714428302090641320077816311466910434937051005608761808707527842565558373782521529601412699618788247111893434955020913723186781134901689049101611105469333166569427555980639434997419579830080555181706023717214872256435853957620126997268404507972591177357543419460362577705692668484040330600850318522483992918836985949599802542292703533000674225566945792602896943118682123736210285161549711740950153157213799430147931133726585912638456774873946264756865103078938433661249124011651406237763378896098630727346667420573504308848577338784582010664710428149079269166680010280547701799910129329634390380218801358683622902593078865428203678559166999691718557475671599733042005235424219065329813607679248193994786881273100570398719745616507705841417391428312365166707690893735640670628397663723463164056598261652854226595325078592283033419472977981880634972133955053713476816712946620404063115029458708962074246469647899547255449836561118641473530594866478454964942904300277015101114633937095026493393729183871944038437397377803194699675361902634532044514471497633282397566875542889728460148678129339375607418148830399481279860003987011537809474573096799997442647390367165459367555673614046904812751478725889950971471004993527530318322573792218379520019435959408108065311130759340187103826558210281071832925095424503684409671051621786491493386608404945453414980318880448191117443552130375567611179007713304002977067834837402123629680094798426969573511687046417362407208070954226167221924036878743386225098376877485198147088787921334616304362486702385130502196498568735552649705326229850239488840977313521537871922668772075939885581887888798929393504676051275842815243431141611785931418044559219497655431825158873250849458524751442982353526026916786206075081508740523239099295637630175201073791459982643611090887645042191247559181532947953036182457769485220168615898750083911989331565870650711501183794812252911628702026561341036524578797598658708167377302991662358860629346099355384433333494331621180303810084186232473046379333144238369355682140323538437225724764528893084642960903956324695257557987287457709091096830144182964366829123440409729218970228514940729314519101338699453753673126903491659522384174298239850584991387741498888949483126986897758793233338231006090306853627821352510780358262768069415484318321234802441396821273079849645526406084378628105593379844536088523481921161063599618539093194320638416867815108094760616513729768108455454632770388710262060548095003956518517477812979652433563306966271551352919833149976195394502584766891287425448221587212619762436232712474183208228699479303386890988799477495939608174402454018529086430211385205843819295705788733558319340787402966682183564108301009722557896984746327136392068448263771568790584278998486757448028890645709533079033942322556002594415137740229043607859728216391592641782917363352812821601612710333385983904068217863893932625160422223077546760849729057830042863297448106414302611867301246190896577723737666873642355484577022474097867620068814359381078388830609357238476323751527721543660661214023551590151981318463521675018765945528330699843231844806331929212978192338362057404079401055236968017957442824345039328073935864123762720372054605729810681059990129436312672960165365263404710875644579330956405675569682774702396548964118725996444454108231634951368319104678340092021380689381508179360561716185746935783931433419725317890950523621516281574347025080367860157480382694097953707284273867247887314540646484642263388439070477940239179660581466069140943298097910325358205464970705533599400787276478323722537611193435012368834740000794082421188339976455160549992886446117237529511128441506040897953217051490628592742032201865653536475789593728945529226201224769152069776444679918438892519846940480917874116790087982996066993932776163204127625133257559466721770965982528889654269153513291946997069575579207690425972009745982579519050941390102488534938149887978054483578690543749046925170899392114196571399937408367313758620938226839155837500836405065296152503317233138773621923398342481624530574735224184791281869535646509291950263287585329404925611293044629190069369427854941172304527141556960662214577924356546234593142942744029194923887209496968454306492032975618735618640098970678243645724274684307011501930014877048819476654514421355454750438486580932471794311809553384240662185638224445678014420082194006027507075256305823920192063733937355146885030910953868799033431493023711121510598248381042587403061250557510495758584466924914841908959779647466143684165796959896820709761689082420424987493949476984153745950716507321976342383333467025948291742254772358586842759476287362304307872666333299857744361052787863589831048950400741528017871520563438515821884084893338200035044256549738745305705892255959795678760319809722746255687498311766879036903905570679418434474922857082465498234926676043305320057211938746422010603493940224756464320906658177123867346555148833239852323828281088233337570597299165736612802945250224872003911713281917870179835452811911474973922645612799737249774483282486870567736822820137746532055650433129271522219363064330834271206192210429510384113594691963002128764043660889707359096260547572606573649390610437317709943605312295208219611625571482453612994579095554847604247579643397838805424924120835799172487087690387609782515294205770736317651440477924991056771957989946343403220264466907424979622417224026001218194360063152346674580181528691942584228196200089392083103331229211470032651532605893992069271815782069843199357420566664822858367842121731187387562163041716133570616246399758238021197422582167123452528671580525746850801793074183351099695949746371748452549839823830168237274810816786367242526179729013841931622226529378423351981215853760005954896359500355192649669135052968638403187172431288733150437921609039495990538068973290267270603890438471615011289358182957965144168722479185523154644490109525420203276107567114119273350281560422496610794767374090292159877960714894764825206975251387664965231289419031611529336382443768402533881441100545019024871561046486538070948728347400178200078915394318651872732635026027193898284811811235049068301567053705230476959645929466935146992733345240254883944964542761594385078071251946732153232541448881057087823805234018312295404539594454307847892756022975465562593837397298039588928939867353800448925195078583566670176821264534209405103315591140809426184965735126698313448362107548514210101187600724875636100363958470769763462896569675188359882196086119581426621021237471707023343801808500430464147537886638371322466668666676089546468189150118677147925166947225382078175379745951052879418078049807684782362583747234033881709659549073512584380820194960161485494074460825308997220013396780151726731939455606461677757710509228890133370023238618686873746342761279961519810295501893533698734008100534462439894954308560547011242222644055167573183324002801269526827285181539148449218480740394665231348092230167301411743974056653489713845642948021505354959241412488133197014692113910834632346384536607786530999874073561079346293120766029690294533939064282958658816691929222782704711152277482790112685046904964517518760908659886325580110586994069736233916989866440264878505958056348204322373537248418975614197900843655106407430321616139337115623496743660625086621386556936286330221619127409076183964730778143683338934714327167909315048852255181934962450801960048986544947470221760559817095874628397070100215268090967188777588519402793738210287049168960043298467312633004809886301810060201275416268892896246107823822408898933411609778890578836971611273830443345190231710428243948360486972923357276874630062961972714711127151574434981708797372153921645451822739742176447510525698269257044417765577343758936737408400299019358228733272356933741265333228570412884434672017691124947805979148491136191755502676726619204154220889180542396247132164999123058587138339485441186602029444876782386448878750128713261650960404200678186719298327990925630008494974818402764325363544207836473273360062706929992831706966270200040798134151154540692336391873494543446480218473849811346670843296914684239088018384512947952870002776416417856128467400545118136959637218864757803112114425871906343376794914431857278873852010976299725241254208334438775202824951428799394796922825852255749685927796055891757306232445646623364213970232108276243189666784770821430944825026921832506772067537632221924948145073072513869290210880716407108975099511879130108873080559076393485677674687950265908654794504187107615306260817727730066826032834050342103699187467058317960300699104597613193223149492962281947545183725506089190195186006531942503284911509599614616589403577540121949778690218564425384207967793582463939778866043426110860923747853279216645090307061941840455227592997725434921654842963488239119098640394008678252200035460877167496158550713857244846445425412133526608579794840611013690202364257373710577591023359640425727232614122919888488139871136133701032481756390687615331268601667055332376701099333676792530049672119731387497564925866522398566363770946215318931033235199867348294753273548538360581823295207556231792531668979171088683396729514869785108601072959938662995704443765412221800413699066001338168215900672886188195389253945104144426535983866625174858962341439944352432447044610944777275098244861008556223337960077413798065037340156385511414966308312687886204251110445688558849270554682544869090057088459138276080794385256137244660062298669950443045350111597320998737517360189543623335864771607356933426679622332408780777238535152000278311121723474601596044008200336039813154559788413886243168151174210282553129186334362774643389379516342626497321669230867452356128208932786856095492032139101008094797554059269253613529233383221162897549899305358526592323512997266098910148840267847512934903621100016564192271119838476768921163597310144120630530239515281227945825697069161616193236152800421428319692868987963751202873794156114009255518143947458987246362515797507101754033947225199553169894433025949023272281843259673321905265581730290547083680215804885078107593179573337418298958614846666070977261455724042551860394667597394752629003139218214922790343752488475724582105828240389085307967492070358535456730785488252224965763416184166147546416998375797870218420773384870275185807646970738686579074865855581540766079312837828250103658079913382266462449272869566433511365389266750552282513836479259197812731080016774418932866192254932290312944078062829183398305655087140316287955988574091571653942903000065469819400311222349875524675710599708430102823687125000372933438497839080589983382880338662041212590785304277404598991358896696010959662627733171319302625613381171049675427711726066421381226013130649444482420671177057096755944687178918197064021474845623213238450922639767495033543749702483156811977655707289468842539243170046121442123278211283329177122023055205298778859507041478108197737230941526515370112210039234563048152044168676325990685539292999312043006165580066713821480301812491856384126280213239752095735681997273857278745183961533010843588467690380073728288219809923503617547518088056092210879009909357334294895783174776982734413368072946766851481806746727959425842027149222283038686521073842712841711903697744251978255072155974929351674441940100008720929804445974817720259187546528368390285327570546685928089690744332892487091347260772103011127089593468305939765944823521141406271674090847662123120969288614499849082805662239891137606076564832982583028627591849364558367471931251853537351999984402170512443691133415253761903391757435554498477593743366595071867672512968255009945930805432373403711190911334499871900869400930235371059513654062087709936134284177705680738081409505444074326040285215881558657919635739679331518794963629385245184963528302126733422297165809231521256521133385773071844906272055990616309057942772300470204903842653305665342503501822283719874242118957954959319322050879908264966729259436288739003492840881482292059109758329526113082524194526632386939106509657961885988675023823555593921865272303586088885744593326199627242223998119320605544631502285198027704076058076669488799571372683940151575839534099065713505213337524837838284341764223162181856748716272980092730083579731640422497095133494885079841226518375833124957079137382537404822858217165953414354112176130618531802093839642921299176399542459412997229441655668650334915850553730906901656855966200000507690906423138991075444450688870983880337819778348377483436001401833244166532076403083999196973009503803128556083819623770012939802598561209729814341483665062669928318072655154282606677501548951731806503364018264363832210098633032122341220535605590518436717132518885638904194719667041850277140947963615887953916618088134033238959045450218437316158153374070905904160430035138368199184730009952598823039295216220926908053462835814201822598261933509761923482559738084233496850480937327084071655625013185430099889881471027303650925664462070643035953682097645574964710582489920024035138840400066714821110063729537893469895126554437395742554232300420390067764242436825594136974296781522499363462034676245025767116616884944217259161427436391896952526183226080854568875118081673462428806209662756420351583139876549327339751300672202920474738146563417728196312039755053478626112427377905372038378585461157704463628698660386514102670997633465196655022164380207810291179501049406895664470498245296532071634097955094945307934018037675207574993732227839014925248197325934492436339622126045469089743746718395609560644657822457535990476519513583318595600517354639244776490681426073609698877824485566664826415067066455383293940568066315220825676222640087261167456535859829101309689906217642135319110867828560568368501950929001419957892296140784545904755795765929998326878512476106205075478621016989709731095749079989958225231012620246804350915482899061282609626276226084020423965390837870401481178395847413938767158689696255396974414880475257038482239456703582238067060609243614071386072577909055703935937960438796779784515671403808036817284014984632734574533602259220141612049954864981169170303525331740077011524714496705654443114855006343581824226992928717994277680459421948252582510832632016877390856125238219769747515890319886443528013340007929749328052936619905201755714034471085556642569220056392039695280397713171208322231011039234707043013851469055703292938999444954001099792308340093734298418678728824941051501155569035961207183277068665944259334277812919833129330482349273345178575463870595096440163633859256453994096328772337966979522393552651885463286737313658061927293328750853534477348207498022678874116220345645848300318494600463308065918947195826668753598522447731032259497188308083773284376653348768755026711405246826603497467973052782413780506707273622211557014507397119943358262373425863547464824815378661693957854362630592659927572960829073223607781065193610612464658706319954475037277750796205189804798799516450912740168399703602300550560449207211825651232724289636489326392483762402312318776514473507936510883183501759367268742218489618430998595110747512970422527695941215005249780554780432398761127561971743252760637670034575280147750830730595514784001471147023677450097380448110651199971703756463446620094071855409201032929003824686471681336703475582451335590354941266307987566033578732016428611318939100217926539154757882813723928393334772543438152880200771927402604263036816834417586861583835721781633294911291014488376003743398737805149005795859657249342470261215613845599216459167457036897281483954089797364700351970129863398306703755087920430300319092735652839484592438633708287601143838793552739108473790453836211474947721782398739924622561562233732833962702100872889067273493959052109665934929792462855500684845095247411605976180518735058835855048411754709749551642879383780733382710125975540157846752301481723676819385639284651722710198566610920673119554897711457632983960165204419116176181999196586328594180675897489444864562844501211573325463705809997409149260780893653031155493205451762406910049574160068508290014930127700270444508752154410981655158050121655799460268794415413084436072601220644513300096684013194209071533699209633017294514136105292714595628345625464812821358283346076575224242192287635036425023756201423502841276801494278508570203563089240896420689544307355286648712332970685582128769938286096796538428698281594329035678242348205226412915724453795803635568234807209402653551627217294272188388236685637553889049115105895289550103289342523065284496021336910374293109658741166554892040395057137780632854406007621324000398465826548650809224413607900163401006140150701335589475935776484126583763808194882250614036621254984089371192464328888672985686066151909008119237363339510911201144394041790634474420509470882383154560628841834263186953518549096702819343056024393555857364151653394778252505114868069608756343223086642792957406732513941583197948266610870320936691813602447886999464690267025340130625518225513768154741811054758480745085007652514168539075844942294453557998001236029760561933597662240210227604719359302055536074463163072285905496739355021440367834458028857161800477609928223700941003904379553363061625968842915294402302261458156027422861883302047544693415666621565123208743426907621300688233037309793772376905569368596784148536308583905136280606772046351954137165988393952150274940190133067607925332028093844503997839351966715101613814030837124560720621884060340797849203080273085066737917765020499610968347893164306981416940328533765024213348667960637024191572407557661760155952164466493297444365659185456061982676562149432538649394625435715726401873026228650631821840563601314851449968053408313033407476381569070623937503376784039687521917434623592981253455403069221491283076166354292274898392981474828520730190383808380843656014571217011622389856059621514932728099038762464191798990805441266588974424597964652434616460293940766618481796307927420363169579864982405112795196842598140007129706094726720230893973204020359970842033101085431369217826006142481904099735692476549280915995729244573128888432256711930026439115212180802668022195259986669131221068321869010475981437601034011022290582264767654865086504814174473582936942111759412654882972265528536339333183540632099988296014639665231734372501824888864293693991301774181599625489277326038253560169790257946752191520441968169409904722434610093052463589340346592612356014666474578381205614283403883978278055013582329197985079420498186735035580957128533352380284889236631125076108506224008869677846176622388111353168855348238546651979740014757345951070228327310864349877455985090820700257788687929135510066978830780647196418315001161663062692482355422729570574405757310002310517468847794112729578236242065544200598517859536399613016282000744217375847646552423007015093899405536234041745279597056316921800360175973297376453904917140760929656977973511063048545975697766811200982588529300212456212916566857167621172044877240401567810863438152353769024242961953211748458203872905320165335652487830222257253073347574005427151753324404749684722423526418205383653146222588233744662444144011518324448863800456893232859091923702653971548451858484418411340980368258486343798840394519378390630832530511784097184636503550497365149752842992557297431850278182591994463781687487442552734368488201738643942462479657598280887859215896072757091176962846917044653580343706507104541218773038761638538773863771926467387775187127068382696463763607847803787227148340336550480509229378341821798942464434162760315113674628458264852955445401360781972193209143894117059139900678599312741181908038389787334463330923471072922378761932726615786045943344954885368357368824484147129154374985598836490379603939465727651064655624099367146774904185998819680768410063172649561700418382986523590226375567660219346653053678149540824429093195256676818393483467444752796102012014872914147794482935013013222625153693532488392464847064471777518952191448226922258360332706399497694888225254201675930239371358274903440468060947308696855506539061946233275189832602023295281853454084538756792208200892052039301897092991959771094879626611093473623221016640649483840630722912023184407948436273642753065135495765046782016562471822614485471846989119123704641581193622814344593041635398864993510317687500656906737903448446937884405847737875088425953056605856408613634093402899635499132128490531161443213971015641195359098839996775035909219194165026611175055604260777574205596111302066925670283304461338992177879620178704466815114257297707030608253959173841376110981614713943235119792819972671595382809068500751291482784653421777363255272961439099571175303937236164697799076966092283365229623475588560860464298437420305885119645689638335784265886247155696343436866654652248689928857316799727043453559027306347673639614354517298491579978783853695509847700793117705307112083851350323953293627835119101270252244085514605088092561071137641213034522225795909575217186502860131553572957389427112674264321757687692003953271702564170656771121482666606796570662496805833142332402082038717398243014031935949657956051629583842613337860694134450804646103406462777091768756363968277683388800044510381802727427913594223424344796155736087129910532166693882342331565694642867264804744728634637638213862135697876987153013783898599295131931451396652653643823602217559247815721181945653629380003330024183808814498749447619892502432276031276415842539543849253452982237064155332216617672782550342667108785760044165562932687712078978168706125194473938115870911264237813908004844666273883106015649828842455856584917047633370719441442798911176700853620394971797858489690418131947015519197355290946750060535970373777056477541362716063371839253144384786978602724577547693714804635416488707866812314956095951542492455361750675396713795919356884187132221877340880105784747892132529157439596932197309730109120847118977461111717409264265458457614905100405536171576224729309608729666596582886926290931071713510933539172227979231199534784421460144212793879121387415514099726630942800630014831485128124024133918301003047125274433165478032665742249039090340093905636618175486074974204897493589889983260549533069455204711540548322987139660722074672823174784249653264168944060763651467322651410921981079832586404764518574713434933595987793921738937506776269402885886178917203441341702674657844456087380851543849723474813212435209038080571894726482294437560680815594742304787818104505313189900780280095955401046318455904647393544171310073699982289761021489716913790119001886687589180268827943301298374763153951474734470068917839171317901793637234570601510203144709758874193405325772544932252661762873686643358503489570158268112911405849250670607845970842867122511754625071259372471807105738104308218592588535079474182156460067158522500224369262777293216823341662414929667958909533707055179615334997826442440462423338566836288956978222502424978107923647350250583414385184957635262594267463773435503087773821816636385983679087404133338283377971386714927283502926713857537496723833053064342110641380390763987473804458160506995567950742620772681306239905721559397087056036405381674423337147810680994937825872738700859450417826333475979449515075195817760596143495373966807298551503575908561620088364259239443334696710575770589782111001730032914999188719390859525860617937395908946206833913021548784922755010535043120034930455485390913871306788422374874245197371040026069873021658638551373352001641582313186007205189860779019338093514873393131599086452828617301902504174307876349300945761939232719854393984857797325497841594651621790936083644399549812051618506911344895436579499663262455787331723237981003029082385894818460017977307779573514671279294482639474720065751453736730096589005845503074205566604069617277489193599157678796048253385957021649042359818791161591985862431694752527524257624478497450944086842133112453975906457025289127341929632342723854288812786203351550751366415840505269198785549683955479233211817620218436193181749488946769635815212863899891310919490538112558064571640780004974031772001058422888261472863782676821251149645792285493284512963737054451948714607144051745271099112631610213306756525544164862503573522153401027394193901597196743335369761784452170699568750093515414502730267047702649664150897338144610928362701557232935208198959682808547043483376839215869425011831967576710715875872478373900709199177949235496575588372014411978848132536599294843423897380124758576076457762156607969264383312157693707014184426468968855516591337847077500046105260863329862773159456115570060949477170518131850258780378317372748089885679011765843319207435177934528896604939791270301969424803254032576124327705691700331120730978885683096908197127266419105811387535058257951605509189752880806421608670451461466304855330138965914748375314121714411329979007313001793957338535162535463953705391483814450054064446561266833045173640444257934759863234755936657500950236300477080042250263547346831320778641934087798107890282700306988309182452693766645629888821476665875042299321926096976480879024056318907908208504767780999635764706829894396928536334378928001486793725522276177840650667677572260940849640280326582111449848567658718521227680948930749253355144995449955703769781515790863974924267570305224201473546781877427008958065884204028679131820241253025232019696633777786039213179001597513334397119351306315083149488721106598300662381832430608935451673108352117437569092729068897635649057290727111789810534516403002295886544785114195722714987940457155384638861059631201472378986747513407434108398743831832577561409812221042776121151221540391382163019604537224981182030832916255176012787531530022429199836849572160321577605692361019026229289651058637754606638838660842033988321477083110402478709102088784958209916762695748139372624326276521656738746597962526944122565111296410598829710048340721686967249506104696147346678835818802449825010574513613343569399474828626799494646365534662355471201625055464680267756219031776920019485107594632349565219826013200638864182554545920360488714410406596900486313345249800873433464062471714928323844443547416324678375230732106950863619358000729211210297021331263755966573246554100349715373984421825569746087128317119447535371750589191069248322724814374272414837536991677401026143474626694872378217524274994271316374034146694904220796699540188292449798191075092513266532980293285056403301123170895793002527721475547300544026052673657233403319363474756521742260052918157735718331353718667892279527434514050288993095495241497741232056722421705539363323670344968568125183392769240669048672138618563713800013812180089907554664610556966776560466809936490904986774265815956589933034538175445381678772162115350614000424546532922846967028665648455067847985019933083545584644002692677129175273326809498184034733100245429155338436461701407195461229544364180122480792078095337571050392474136119131844001642518444870083124847354267247039493515005402146399210490681459002967322183922800669399815758798292175113212263388199503231605752017370196862002674286079524707138404520317642481584764979530656872846896555945429389098159248274031973587661016790739096247727997108997986558088539737946170178082822076163675153599726788128008215634002735492148650416024312291823456558186429993063810382669861451720491456440233570962954138671735915617974188908619021440559803913625927036162855458011389710571068512186155939796220510710818816032250268280473482133044175786145641436636764805623274255769624096777281586516963555152194606777346398927748141187446898563441324322948137913912321744647320535914531352555601328371748954311187809688597937669808325441698283338617151837043569223052621145905902658317393972693077237635718721020914826103526110411411726346176006863200131874560916371173716782190885502494380952494268008908552848031223759453798818885508247111128748530775562129033780343530517101871187083391722778495435400427976364277647766178217653899926060546985296513165043267329324636320503562026624320081544299087469758259822496793870967229997805845317862726971164083552991576744066507167957651910689481828654025892538791378947229468246762174451080490594765595200352799403349939381894560387708337838168159051515922081133624568444585388789765213311895434883377094007824841739377173525924730263249621755665575586530265995795155222739476675119604265238089986437223872823782131192321196647781351334954815246793091426576479339739098629557087861409867232165611712955310651649352484417121509441563157204604857941179078322490214741280059560914021926890733506278592289225642109145078579624627664145542913256543553985844567344588173428465913550691276792930378632193099921898323233001872991104096804747540059042782647124495473364013033266677503070515937906365432530196934730821558100880483007011687750999579867691840929484487775622558900992629349601287336065450177149133891832411921838923420172793629065458208960003389723208994129243533861008573798017382424811025959104948425921319672118546517334765670376729000405137015936962751167065186026793356917107085083335187159936243171323057886075430284477644779077369045352719006219632619333302550771498045730190319804157443918795540526089956424142454422149367049966883316282858767086100308030227342055234619043241341213429209986321645874700458511508631260224010898196250220700467802565176255590401671156583815727540515520241593086971349368029463185727184032217263988916223795012784040763300053875847210472073808019224989922790843705630938571800016569304079855340695045561159262239028402552241827078364436349812326183151206587536245521738990477211778665648191716511929524199793180637971315314356402783108692864387852647155795035416776352097524574422428293031671257205893379785795751103987920923094283602239266100298602643876450003444515314507364301025835061098341416972441283610888401973663822035647552265725588079111648425869314242666801667500869636524062226458946901751985219187850859956943964756589238777702293241875910643914185768940563377864041440744345986727565404143572895923852617451461388176586838903453622803904453227746911730531500949019540361705351627322773687782976905991601333293318086714211336057158094424596497664030151359977262659068602429058223066356898785008826645000088397968669592302438476210666941644699208149130878977083999557005356074119440651188883914229332310666466429943079052946173978015741788711736884839790869175685132134645848837146424813897391995604060969127474816676068920580816893037432590361622972075855653676940313086030387497934960567074626234437978410287926580756333105864143070523879185915212905865515156523743803091563117150886865858532218981131284983718045956714574112859924508701145480672858134513197170581140863908413116874237045558755553402319622919145523947384621620152195529445396854480053145673276219016181380924497312077114806609413227935029465165817530676297178848536089086060404176441143232703126544333311485158147096627952973518696247141300874426865223753371992541404837000514336963954580897970344717355670975324538931013222829614531578233570198980219491108847336920741323191794296206622264191858575562253751914556524003779848566888906800911935703703516330926791658812450764417752557512349975248206401984138222493216720575066213138916697566339855003360169345412429205736114299771191612002061748208168845849285475873308349979967105617713884785781405246755593570280432959376622489825805894374422067553293408968958194316099496676135501263887925435376600116534826818697633094066308011447551268143947091472325262487773822725588186691744439814065732554944656040545640169226832950626427512787928987554893506999211617490768854440550755790787744785788317132248464344469817584885996978591312829582740303017275628743552109665413505205023612046827010555318000888817267285985655369520039073796605030824782346178738238306858995100245192481991917428392996066179856105164179379706192418828975207664886686057480819357425146463152460163495702149757369741701753251500136300243529295600899039647443460163449806370171285244891080524903764055214772987519610893515261715058975297619702587749506083378531747981553880758396786113417056844548643800435159084964690334512268419433168576100526613255450886685365084547092503583367022063046842117462235640307689905996831245987044204402805735167383198351385065287132370735307899027608602470375958823749109340825605853846399768859342212078925737210330226796167611749822653101789540622486442365519481144768266599225147122227845613360301052309707815601734753639778695512412429140085246032463477076905902072070614061802286212349247380522484855171973683465716840226686988937425265398752022096630263629411834933627944474535326756419171911253684507517902867403038050885327969306767253599044681380125733171339650002135927441179209350680005970956447510401724720085356645460152980768862459079634841309937022225439745378182591902357668668683525179948732001864734278369357800708659570300330621740973488111626650341693187488861460070123306258859421111792337009366342603758075361349985304154617269947480580924665950424130430591215309531419479631838141300289751125256352742327590191642443939446986824608078705521333210093296449274200584086599908373766221222935587236463587118213207279960228078409154249924305714018214754177690640199490790212966843056113352174186364021709861102826146110551715844312257908033773570386249034653117251046756339412702483483648603414289849820382760378781004406432238027997896442962823248582838801274855990570637813901642080820945206790171479160790686377174782724910437738925949757042899528575644759379182994472833713374963407030160209980778599128185956982849929688022185442425179877385726129773504426331315257329555293839509457338049075038008276830503556079818751596002431227981433908558135468441064035820310808280966200737489083450298787481406006245615514941473482900599621145373252305042345738988625764977409651634576893143777458015877256181604732466026983147860101629459811146178214522979790695370173443370179610554313086365654209367698194116757161345025103844142084458196626907270475054247270979327688679941869110908358200222622541749825288152398831950446340305653247053917397094996608949814180199963898925108184252886934664180295563479514363782041950411709567478279436654871318445084223366086459704083160463150698953959254591634528985217685322815505998504683796997909055101821797952466764394439381630364317981392710538106379043330966062809446928298639332221923761421036151949530581095749178642317394013117441485394824631687989090440736706009521709783049433327390449329555693573753129482255883723924291300313456588792553360238202169163156005846014846891924267867031842068692061229268630093226421281776158354694606809083327125902503666505904816531450163499785208314674735290443713718390134447994887679650617565526148908614561981640945486256107498070316058348654722676608804391931743849739685337447810177533552648889252636263209005758063771613300208340913252751823617822620166266815485173517965299840190705220503990167843327301981584669417754296836191122481873114220255285232207690975436526576848131885102669039612357137197772473351722144016381514093840123534759837667808174970498131556073415967771878537896928305589091544838124063331102148650780849646540199774310712335907363136218981844550422393771821252742936924828459280638679249016751424244084670914871600861856751861341966062413396895262663276599757418474554072334354295119312573624714465301254434584348844009611744865723414911529064537923596628245670800865916102027195131173222261306490678513361010764608624915464466324375652014420480413352689368550775116262035185854408661872258989607486092055897541364561811110896279063480738742810196867106459848540938037275363670506186364529824750125216557902688456145951108287396924911288598643088526147329793591269256695676658825092041281065662358788858251035204051506223249258913330756791827466776981260617741026047746572957854385552931852762078704581270726761898828604938585454717119085698989498656308846585123543459144301584579268935121279958065637917194441138731236258917729949998999723566947150388990395026374709422667707715859730241765491662917221989185935246775057347586208379055619012063102671841540348528868032297281074226024533910014868811711894055502165277490290646669841506328503289393091001448797249827854867843986495617038568033010119475667345589524583505260504760583672436247894146040054179081022992582661033358473442997856889075269683390244581487999643455317178163469989072887335928251554104374424805798842361254817129985983494482833574532694316314372572839412304654925912978394927284701596123880377330612662231198614044051344170360613127652510187213541621429890591190941301274554387189844408483348124778523521326561478770942626575234617887448348890791972365850366974861689823552965641729464973306476946205093157678895336323872766634388616789162423590338106063528934878745837902796671603080330373378666786238008138955567995734479621202616343485765313667900904133806943533229903123412486102644012773213385247204154243926668523259478196375508883716711942716976489423180602946022138460229034739414465844572130850997733958600074049518332211465588515215376020151314668680084013695022883401560503017526231090693125682144247687069883384048967752939438947917549050979657664875549262866238725550588157708353749960381156527648369129493503851618873466728110878941919664071255967834145179680348029268374417918068719932301971671130950808532968572468104679059023479892448923147593056735327333733864305158914282702465128835500464373617824327466700904611611813001022587954456798490249470008493083903467929363564954230169349595691270740191962235180759809590955836625304488293485605805306386082458534924625962131788970511428451600359598696153886892876778609038903805420009216465179972572550731573664378676446832294940511981030880703668931722639950575393746313279508693102942350041651217828172971021245363623442777239225434793787052921856917458178076888050999430389877515660357022926093596952166317357349867026266010305301288916972011837986405118723564688665300366136738559904354794625286251254458914106750210025846426221143774567923487578625746499174963358177225818092888784923306899167651150897662001442630529452984148798564383713594434633254303649232750567676620368065670024105308546189262410817442648027515711299842353314597798589489954528302099483734046544765450891071777654335982359991127350165989156491178551441688561931537461534691705762681684511396084711943905900035338969212823951368136086759093142117435726654266177522888341230647934696070224625738212305966198533789526723504650301936269447610931078454933213662532924648797237465011470445991596976572736173313204031948686618363312885924288507385237503379132464614486793035930885790827644649533104195627281865337843972336678431892909815640418670384987046894426756731702988056559281767532228159405585227433632205500594691166444795202619294987393445246515196549940178218761499587058492495420765429423124906315525255167584560725344044419355951049504345298528751564145900841335072559131029522601996771474897556961782215537600325921628020460507173951398727414085943454904929045787353997804773542887477966649881773788915630277963435638011390599275701749416187394225725265938090363737350586871419593168018729455957874150580104831553027612978200411130685419303062430337878353108641323701867914316138844032835805443142569060642050059409176703343285943245998169398807062225798616641978565031296479080042377395249588079267305834468377110501114349087537314046755135323503621299994441569814864347615057146067314222909255088814504125830633461984087548836849713813218470276247999044050776394154819538196811324397996913336095980905531188075588945335723831686068713105597272976178384704098512942694158017306072977050092515793242229170198769281962522708000107254180518256135382718587542473616191646446946010641806591017291596445478324185978974366534183730058674075736552483819545781144877665090072824358996165435895441660517971260667018523040278928613106010039313423006318517976220738644793573825120652799639559119481517517542507018885655522647029657614443223513775164711292633440868437075853023717887039009882014860730848824246407027903139441510439774738453004684752685448532590286809679906704310211791710871995783474045125069056761824340092501190803136214596755848990179445314967266565437979301638895791781110315818112701625668043485544238757372194078762715762475685271823855283575089546004060726230630642305399961390273604128520190599943294642663703404608034468434396294065739782309557536440632918216016919933226553943330691481376617721574814566427101353675159859853418075291254779596971485986665538743038575909483674497445211734858051339619628199940056407686155446704153010962407290099601371966922998101391820606845165228212356366367901372634219064275686474246518852947719117130326576681030755336227112003027257436828043070907246955470215121567019011599846186713681488095637411388214354882144376419620377903551458025811689482042810436442516351037344689959222462225049010894121464165099799812374815482339180186518449819740668955100633738194408533466024652577612127225957809879610229058046924169592098659331772712634754921706143476084870831954439383354700574465536149846444451880597507885298211761048637628940732786855924292278303865811744331053995235670309390948718267124420729378019409701670513174328793513586484468456375823132424921178793182720773671944301046140633276935223563751522468373229747089466550823348037963476031117447601133327762985096092691307172706470031908740770737400103783669747079594023176130706561536589611853098355904163178520911721909242606737193472233879036681995196852162162122477819016999426471897902107518486762273408069696949300720232840147875233835220464818814765026012955917695888979949972826267763868417755009886052630306613541296909205280014098096623169920209307439916851840935392837178430621787143565760855321439321426801956200944554192311771296643042414280619142360212223213782202376124782675923650480831457661561842248440491722988283347502500044914693357945935629647567435478666028869910552646482904006220863706236783143157494715232691605608451807631847703691094295621187519644753189399014993279853191800877297369616903156178149536543205170516544143354703700529556707393812067809278826695525071634047387024633551391238050217075105143191342497402817816400298913370584190943212650230563899064849101925146895861079767408509488934375130213546992845375758969513267006815980501051532900469465892293257109692421466467354684575104899122885917658849993858840836582596985784482989244900196058453667704896503187135634013670924351428634850184205126051902714738097941741303547108713881064130281826500484786684378865934257482507330338701591932880778270481166873349549151308615991051266440649096172577675566972868241200914419518023579910130922812010222620958182820874329165723911033833269608873357962644270577217562040049448666116190192040727633653281689887414379138621399188722894918380544500660648710053319817474714968636115645342957024039160528825919034301590511385570235687351521854475282229145406972055453836811070601812272343390773540718565404733369427538749411203699489298838471476291041976726867437236668022506977447813669055515902436955761496383085435542588756757520053001362517933142578900482580147269059481622323298845522606733335948307504000431138301861727991105238564737309604418816821583828469486960119274389709741605464353458630870454143668608108383042138194817376522049816924747036848461662482748259195085956977751170470741956617720685704824398175368264839116462526251967759075562341124716494072058595024316814586074568706058944484339215818498594419547795966827041930598604273439417137327345277496369554386191740293987655632462230480939378273998188249235502896613237469164092383673985650666215064429571270719118507748373432287178856204484517335681512891675771445371035583437227566952606675935469999233475975608023060553022546068786226403684516136322973024508360502286624698735938329402415471734934246390013550063606241718495846870802241030890258059260482540387448022150336288847369283312647641643969444029461136132869034542674291500242250332214180144159518094794381779288002345988569957893474203250018990202604315739203168241710824200886607085047903947995791166439308919030551570984661883744643172011109881722918301208062338714665484993898282541198812167892539919365325547205595286934432507740591186444374632509771905919121166463558947373582153191459531571706361701374825601653852478916834753134676269520027475452434901589061602925995510028170857204875051853405969526283320063239747823574350055614749152857019506954184304743701670385797712510015066548535043816528505295603020374899394251932082958914947516480621296842962530021642559405508489001191736702655448445550198506232388942963555281755542750538271408679484149824591020260687931448070588534446121991639031428227170642849536386379271906775118449194611323557339487347398923056127857216804161275977005073955556604354983954868285307954275139814940944124384237744500262547196427162385264007832701544499239754708968714284349227353323865582992515191068081017415657879129141046597464882619756433032484256094487689912082078525766475011598188480363576091519965640556139686806162939843993962548410660450882232406845476972165493150561473241478342651067093943958010285571296236843524373825396073539995143432276524091435593620629752230580353795338442130054642687951123714103463023442612607982597939704174909967725324716492638500314760704302151420734416360506439517811152223331470014661116848273717795915642777306541532885291913115223431053490794736884466044873143740706337907114684880530220963326701978013681051697637730080145259269132930732069089566037684212640688873530548512276640849724820169675751975278507714615552326700209642852101802801721136750298905333148616277754021238887641845136970396275846393661774207431570544887283485897412382575793503662689474152560917787182601193695228165611985559157490108872741111287449430000785031442544551647810098766426952956845421472629637203347346212563573121389815712083999762476980034460249064553207059794238446192341464054591521004406940830631222240242193701345363704111930034172560996785377235680981145048963426829825700134600798309054122584539422908086697511002588284991028951141138017808876878028927582290152196149620972357853302869173278651011840638421887176447228346823204418435795222758197988853321982897843890025433135992187846991046446765630807446097084260579224985121769124113655508515849531952428841929893656821452794268849907709951941861939629401352317188648657033658211470563868232196852182232334274062772753712859404813634391459000549871546298698452826510742361803624899681834404144009724456205522259015378556808804137147144491840564676702816195519639677303782433819400209281441185645182842696403782311048178225178209651080534503012841798588891287927376514990613648418067835276828036683087906340654008302621629561163938151055706905024843443066122874601357554406090628526054196906699424511875630144826735586157425132716437683276207086502224424421488554789989585501915977911953579504876480081551623749244942106446556760586592575906807805477865020228253612103348449599246456155122881596018151483529335064466895807629679646631504140109384259824921240529157497602400756377713461126491041688066818980641036376552922475760098687010655349503533224794373650875366387169325651903300705998019826997668663365856154234370544227843581698108853488100355979079429813059386371865690107838300913849354957776934645940120693521081466986424877413943034263538655018320437952070602172427499234393197382244564277464972149948392055780293564730981338119518082331571795211418807310533670624988915423014948374203535980183174180818119474944421832178735857423665079131440159425139466805063095270873727223282243385272187606468456173379122539782954313969534189156977023774622093428385684929923948597761784051742124726978893961521590309890905561032273997776446618146977311040082998323360341886464984774144747330332847100158277004827716353409943279423522509143276612694616973569025569677587810368961121080315160522170919040284629696127719929370351659891773435940209822874622989966951736036419201706051108694880567873378639090783442705356634462526241239476826428021998598515961128144670189685729274774466486227370531403907568828923895254470530005795135484303521236452734389846535867849616317339675870221720394866609445173017802287171529566805990808605531515787957928924123208482247344168985360385325153505058562355551821949889909330063565034778343723936774569792310669054053670038386139561526240773378386612234131156256883174513675897248774520760406750290388928943704464539001127374477303993675820358752612426842937414827033100122950710653570371018418418231423319042285056453040302470006156061589661349662054696649121761810791275276020074599011258718101797692504761092827821527174012097956640797870827436995267272256629977934121102445053600394805285267234219367132883399120962737523240378148796923233757671643367803794521108090391882022776653702552991312171425645915656074739661223966490017057368278044845782943635051517155015152624677787604290369571939570497354763354630985135395416992361422380870760046553567318572193319692626145696226996441073205637503975724123906262653706146532586426452043919866659005707810140468631791623605573393482450072930500652827278483684847292990640738962082929345429404411423193315014780448737430073154440233302795447634767989164894803522303210033431874304382600656673407717620833256540132711562729248269811178215419170388474749106559385678609879169701891961613525671778866483877704547771419267934758913579326552693480861419700243942440316795132538348373862100632914363607537894266237653322860691946569346834422087117176087153885267493102947993452517849086336923554959232456628609368584875823563149836969572179115929026535269346207358024630142077739127350246948374522949794258667047331753981794932911980330634279649388844104917598565207662809238424925817932811282804805698525875017666567458449354814684057669100854091200032438739920173679123966662027146179376143538568742976394430993605650043108372710647878009043633830620016057996434859070967260686342380981553850063845828573144446933612078560480598208417529629715920375751557505130289392291166656621375758457012369875551896915014824335114764164315102262406541316417080679250669793406911657473197481087420490503514738924132027535576312007566130524365019660351213849989387997752271124433342630686519985876759025628616543639679218182055164112836531138238529409868385934892814267021708943794435951468837774393233809679159280114012220403278945153499882539366925416617250892801338539201252166752105414772776354169598112563759371061458377481419307703161150910045429088821265302350277677407075842720253782587657154991442019356375571051048429034090768669820613243270710480922299207546478509844077340015098759577185253171202999266579708186099952470750421367876810046315820789169250405338885268012797027064803106470122863218419677219635570267243609155259510136387695436944308416812899332089931459396518771816228768466930335878621421052585097497632600754968626794460719670298846032514205571518238322029656931728085876525951009821073288126479694942896523423956186197893730429161669921752309535066039299071027675460040359317307826511552730113071964093786273740516638148408641911088028262538543498258431578048587383747900906493956704968703336760027183556515092074548333911623140539576067394697722158208434306582195623986606796305030717102503086767893073913530482582120125884310813580494850772507678945763143242980650536981880000705023823824118740541648085104850361570097960343399930415766310578806449876172415518805321335917557841185346525823702261543041883176172743000684559864897908575959178384952003928698425749804646510535677236434586956414294733024147306071251819546935790861830896186061660805104072620237259153876091580288413819184769553158947534772799694760567643055324760261604841115592485066370643466848582670202467606665623947740634864829098478721695246596804533455532526412281370524324526073161926422494451909640324170256029056723265654613946679236155181475145748253723820690434968656116978444944807770588280808714690224901294300327815693701206387764570383226442796440680464748021308014853276973557056151278732469886920248986311763361203901179450658133192559990578246484459926613031068426739356498260312954916208831277334292106403197120925403448559884080224310316375733243770904604869365696276631388809059561800918699980083040820030375249023543210930557329938483594198045454597757621839707397164300238463360977443577180893045795861037898723384699069341922737521807311149446738246998148302001961304531979597644168691187980649427505360849730495936171508335499344582106023400669701058121104537541008116519408320766600804618989512146744637723958425812275689081126762149288609527331939592247491167547612794664235033299063863857107984053737730866676968966119563232602642194043956077819270306743007196718982005824407033665804272549735056215502099840002766040040617995006177834082119571641456648824400791673689674987371060949404220023639954453032609654472335881476765984857498187702277014817581977148725371550485505104159512232790066783690188851167494580964343727477151140911870756566459546458366405392561114963027774310242308076335726133789699061758759683844553760856501181340870168861500521411312455540811865296523162933238511055928759778785413427622094388278742803138583655412971156824773069142238992401891847088614031530265337398714940700622899628067725414853033134206531327857695735946569897083930199863223476389188073967800129780451973397385612163308456352320966321295417850363085961041261720868563735194623927547986342964294070187688460552871990127608288797846680063515025101781378859818295940750941696882388703697655573985949938456530554832995551091042284574912997968035681176688500904387257258763065698845560156504165014252424827917071457621531228695528523262743451925296426120674039557336767065102466507535151331692627556442026439126318184298456789298176051376374702650756502994955687614081384829550167040500188156643576171234979207410564470008475084056133998194406385363429851263105017809076230445308448520437914061864556694017881570365886968237390044074920539975288557053692767738707499101388078967293058050005956464239389396005697144862520620451712247186881950393415366910936644183100053992210191773489955251855005973549483662368897122535159937477652237892024786457530117532308510917738682598005995826633771909073025595301671980717547628345774121175055835334318422814830811172797052662647243216435572009551126333988559704729372728808909797926852515785917281691834143073608019225419413495203204193954625181707970289499246518333285061243405592023996630834101062284688417583753015934073383417826266871013281880981418481404496489857486672683148036309374054065008520516412078681500084301906015610386779359723469848091335017080423114311797374435836234789634741576185661182914343244804087876842000595186923409382952212377648109413996456930126868843347607605737084369279773967826047860817331722182279290556325176973745708457558792712786532718091097080292157584723904549216695899093724083231840036910286938183570401968368211799083668245575489636896537347968724344560922515703900625143922684181226522171462216019106760456553947676333167650249050552539082601582055556388397717999291598211821090235295420618997912750530561485319323337761876993348011139977354875662201575503340698720466168325954434775662591774138354035732022071688397960205997765559393053505077492026527478620104025342236152930613407971673534078283427928200096872366303996316656394648828099614396901769512255750114598098079212638610359731387761020580439037081112603393411806466577394510319702190530968982707339100092363871652139523367429598310213186157974558976011004408882734977402946588796741961216849055423385878411165751843930742220647205603399600125820241999337653240457956345078192917711768450944961643905854411082713571167055298984632297843300146017616258953078361553651104514048584498905454884808428992985808609035167887040796719915831263954371794464087922121406857520803790560691987023523528339766404381597717873992281272712966560518321198306131149316744617323647803857554013293388926660962674908210421187472610359601173194779923666914639150281616036507677249346351845328394877181055106034960326283604251391579924515588960429524850897205667787715167051002135035259931495627019575653541421220985980500900623710385560462297495849703873767734986935934605870124173610354917044301293495452166998091682433260143979581428921945525721820402974155022218629819531731939485698224519020697388486422829299220107999676273368189750136658348190123138157065318216021019907237302144634763012087641530752063548774288582019701155108593869841345961771311013290827504576166988007703289239208955813112944681065075095553678582561860916608720683501794827665287556938882143104438806038533431938975684286908624113465210522614584897479556947174636361128284363688440196481633217578015847204252853507487794408965168337473244305935547697050969157276953986757790348966160902928058826793117115955485009065256547364134463924380840022369951557020106751643962088500000079761807084599971329863444508732532381227135431502861280556181348068994499282534612942690611314999587204699195038815856328703054382063496861765113501528752398300567445048999307592349997612611224290444424019203131104682153557089508410288639838271608335355395980249173222738081437883875399851154020093117389683991098333091447700322982107043752235732628849447137665178022090187870192703233380037968362903108130846785491572954851266957260157890064392744952906944712925125045228684854706693486365538868341994386882036591158453015593270136292014756510883058174455364927254798117164054327837872891830107822241244699920192505507626580303963593258064071943537204185485835227119860943336835656363461775853723997554854550338538026711894719783061564968697733309251055244365220302028284053967282797593420170803400742455709449720563395374262537999905518988056321256187943133033407371079062956661335113091291815730197297489812696879518108456768604901000455912368545511699152813565207696983618025188735886885976265277498254250399259016473842681810076285384161906663847261324849137316554201955582597299351605699929043017609908173523814879717074950200246838424504295701061270564663913578733769210358074298833591406173261886696592373318035890851768481819351141164127298558271141878346016106782145351597130323916059491518758446579222063692833670693146233205073478240545490868390870393871863647414716358501443278341293225647133170491024688328450061615570301988544129294693568346124295471911827602720902763921100728690676152128887131902520107170105862199319253503815096933258583806694031371635121602826357479546311035275406689487366811904243516825152627559412499550717281228588804211472111027693039860253161566767214367075986231204659874213272877858429503929295201682400656134924531525580717572454920274855346042039646486701214046227818515134091597594405701763937151115352393612382526572114268332678431195492908974753754312222451966541056516175322357923727117398142661603573168940948636259180180227515971707370966376321694888369510098866835401306948918154934800247028349123379614445492762604948644392622537076872357028755588794935775754354244357369109062962811449299244983247161071688838843925053372764849942098200100245019301056818108683076192105608452202391847204092224454418662439966059106480144627468281114038479475572312723554008877084151988624252796763578830142819815917144835642292846481303410586156967563706642418057607465480069029868737795882493262105136579018329566457353530050843910091634282019116799700501029360867946866551518111584686979274158095344651452737295866209959365932624820698718852009191637654461356989143053301877336600444135408148157617060653457095394599580293528996136440274723593989020855394635229333655494673171907520655622572945045956066519538427319699543354166129492032263070807021657773510517233552244799255401206621255646568290045867994300577757071605715615556859845693943347808237906698190474316513985474580112573644968771576009863515512765406776232196213469046972665387165576469721012663134597039729301889234850807555322200252543371126132393414602112636052862245118601365364523635445203525787669948376706900797672151358551069975131258509114219202585271965164526335397912793291941561229476141611050181793622073111142294863801217792508908899055093398678282841755294707649472511054032994365604674741453247179104985856649606989256904453939760447987529611677347413138580359192241914738844716557082378888368094652349641722986676225720619062374791049222725791001415856364378941586829060980887023362449989426134675826040919406269590724669981118292538810243082699940315772722388516114167222677378907328391023324538227615788160574993593065725934738910417151548807151764861194703912074254330720437622494321540735867451955803353611758958777045210316433460420220678807890830757317996469111043648522584190398811475869389937578845021754737519064171663889550702570355377378166722446134770899620903992331408794567027438944006996172881871986180956951199353637768058468255026610152556033001515675438325404423962266919403529388268981574060341874470455054679810271634630115273199448312561855681307022929925821128744546086549416139890261088745190926301404170497430892516095218023139009966516448036389897277839833083549753468581936113994897662762222591436599136012250010297338351127323783853363184831139451848321501240817470117840784053455027426544440377947819443396706092114947665840776255316494506754825909508255110987338884877014177740636242819283947104619169285743976129445607464297242361420866890856217832696157270399542549462779627907980682243444779222914761214736893583117832968611139351481938567521600660912422752060459383734182802285822117317718514345776398813186027137716210741037999459348913059373951609590452916994630700898019516265634116077499637776765631468419646454336119640630170960500585842393238935316476868498906537657268159106175161851722936924935411427256325763999726283742584144160584253681442745493614269937513881157101287791243843322985011498631757160556406370582929376127266970701185148821032721134411506564449378149246122326351407044173863608827296920835807503164537890264173381631895467814634095070628185217342556513510667519275874807740036715335952252217436541449573999420359400269624086009108795739069806782285659025169836015217751542721813236209607789556809830753562359930127757283353273899600991858588688903678479328717767746733911947549673808803883989891935307134687100819248257345253816691791448720645995145876064677650284339307514596559027290020889591351917006303893136117783289982007673104360777647102076008524150562572633858442074283000647044504412334174279712631942029169748290566755903501311318794036929253934098436274997284599349376421774118390133622342410404491883043636439770822375059869232466901323783175426466687300615969247822571408077931927288299728857565301192214918612676390849010441091268893393074890238588570737164943190235228606854546547576913495519230213975426401987631822034769293297253875796715650287929587257407436322996557584097150018480036777542205373988131635260359092435937481292472573964537751565612393969711154096763963435336542005001636193674415571801907175349555407333489562119840816306808398104212900517192524270748719549926404836476950125129056548126279039221676211171035774570360275717600331823655613676237235232244992634868677207396025223674026884702974032597374847861398307751913180715880895806314002361841258184558401161877684586609500073955028531198100878636185746267545374864772609490622301077956065300426086710063205631366343544952167405419163720168519556439482013925514162672522976968145935224622621859672101274454448982550291643004751493627312605329119406454896331769919505555334792434408499829684892402696401485923967568323386457096944671678342301215092861029472494637533313595351879597975014267337533018826828037392693132884766579589518055514162550945341065048614429660624132571475812261700168827243632660644696087719582638296000391757673812439493436080279135802688194646384213322463773599032008302978783799876191005978196248406739595983722724920505950938896222429824453536322368295461043629332027167302373364731476004403978992099431992904504663313646234749143498216672680082305574126613638976878705586835135183660548149844931364170159649185590388247904161881195185162010801980218698450027701411640767280856908407784267688950336874616911388830703296540185999805675446612774519499147325713462162017665198982147851625399425722993929859183803088262620773112432600761627252012581641897452635055869694722103710329134534181146444834680447641359258393873575326150575220674577924919190157212007811975647405097057850787921141229275571690122957810877137652537996291698652000743446082763962526830170374715982592480108676624432500165172435937581333021936878644027035486089916100845632513716125950953540402505809632073496061964044827761345793809200727616574372921714352567993740596813085261890473924520529961828424227217792498531074025720347257956544366917110048718962848596108807210183525751519900090541481829432201758477998520509198927247498683776457081565070850555917554247421476826432276996725676038657763004354952726375026475693996154896247652859631290607690559503116246260959199662758786239750699338602342868197131742292350774795868911300353618826784199442236781779884173129586584799934345831582774610012432832049687479282155854841089491826883859108221937949214485614628592627523374581461761898688224684560984933126469080482645864436997623583447002011711148827561808431102157147383919071254880512607595863981735717670596328397466630785856938743038146494675604431987867857958688415063038754521479537742387764318405669873865133976182887159243087585077516088423983039404174963459087551364771268168875271940804163473490954088191264188667771965257719077139106078444363165547652336490617089027305495217331949381844863948673160128658527176664685662579463479335257595249654989169453350617549443087779047477281386852673999960491022362408390233969102576707079107347164910486516646954690824396132670943828646211267712288775714881860252698492083200915589373683421125051582488914126124614723896083902109331017296516190819670693333982542841006658831867531446387410666956801774945174379061783636804644123689767494478206825480035837684438155523395707821360857280017181969927520744066272656597858177614332033218410926642683308168716007449475409041541708068127964722441930988263036906260422340811696347618553151686043729341437031992338100682410905385265633342347095122609726299325674007923400944506535532530361156932530118504339946947856990026829934380388680907839302156511218734993237865187873194713614674023022640108685262693726987133411815556500955123249036904746359785441561320539931333974199067619986737247057257719797957468637986376572253153503525832315792445449978468318221971322681855347625296596001082643106190862742655281015615442602118780839568189609689845639568135623133933667324859163556561256453571762078751204996797014321613475337499895193403893780319029143343390918527701541642871744278524351691217432478510105147770414291630725403745975584235231178653208840063945724887243409937980565524146535497769320373266638539445218862980180709752050936895116318555335948197318866096079312537808490205540182940526917674711028765324264480244647180457733399311820262878217704294389734267608117354667133183377566814144098079830677776907684797760736344272147772742894835520135810009550520269252094603921518737423693743784552511514104810806685331444274852886474480255519019321982216161025389207966333226069261185298499484037763475584872393631691521187122866879025202219634353885883093760810460336816238764433072934864478550930841518485666132490804916367421520043835317567262519310943260136108538856247483204126596270045178070797227380565196899998200419929263445374335628449646553980148421720970681840765898560211215507249768493606745867480855350484754793993070477018788525566779872838041486680626782934419545225407180627491483896974187280629320321493002768240715200249852217619869849393648450083774147025146087613063441648174302006107695691616338444353275157232598565051641385425017151065773140759220790477406794487330309955161035594265469227614258990477768252863166031875141446513516801815593383018636665747697606686061658695793725597328410755358643567893823823763364387958211582008278287551599638589619165227484379548425063441332771765765792204011316754663538586856688666522040707330782719902201065478788442468442420331855646294186608162109891780844723724933665930538573841459250621496094433373853625295615268459666820610268376422641527674984532288447621601428321042765953779557655200014120454709330521807565829664412998038096285816071840498352438327427022637909437497300322054461839478905149280340902674184400595379244577870750509904073241017528096165704296665417336408081125242333975079425883488196571002604728035007395917092749978314942549153482723629602504303636836509958858613225665667461715970428831978927984754086139747275432909159517179328570322823532977119047801121183820854916941828125264368377256769368294736595413279099143677947310177124899650165705215402059129586007110448593059349231052238211730286184558692416570883166934193672528256001023954553812214638099575227065875660827811428371870364077994269581351252272834090618342660401410484013015730005538795416272702790302513616566299633100755117205324317051637669187234227072413326737105101521213306218850200659138555476191252623688924060680540560611439389703605911840621332935865724742002394245881925446688209088660744510105942213490705232663908661610700608825822273051426868322620980781798864058317176436919730631701327000067085860242389403497691318836331164840262264536032316801864996853507376266899642449783005676132318103113862347334802602322516523866724268332053493658646267486636284511354288675958346420964543206003945596186097576887169333287600150643679869925072046552528109068116255421366041241054121126462511737173657941157235152370485814273203385409989610330667105781756849390675702115957149425276468163236328452340539727714581849867010550202819851623947063182825580892186996729719046889548095001865018551831047204463027236788960923328157595740042611174245433872992332495605235244858834943570084182862005077327470270836239145727088749693150970090312333854166605525053718789139435706978027276016112111587040594858471551591208382201842818550983407424740930207504946751504930416208336904738716093094336432403963038774254602614387818844412360112608037780475811798988373183842099129274219481197843497018724147870435742744534925036523179895799932155288586640719728377300939037269657439900294683530551655530702725242753547416312169101539543142255059501227661103443103978599301450037116099805881208606713128390384452701156516617019854438725400103578089227831717772871654772326443301725529622336922526330100712779683965656981164830557138767184434949544033579260451740112332418567974831492644975850853187816808659838846896424883428036463172536191913606415078059154350643333205877043530310813581816404701425131017592760930698339512735631194171309589724475750620756338645961405602160233720525033675886870704362703042416023673409079708899211003808243465069473336625897566069493441428576423552626583809112656918364863642903638413594510683976271497528691717263107240216082003610790136496347653388377025424213858511922184228187603084975632523631775724659128188209144502239893707263191402809155867026522122761350937654306069597453264683802259599836047404206582922001344446153573486004043726686785702508033346616232214609153361686447440466312335412609257852989615683239804639427344985570523261145173733395289601602031935821783260311126239562321295282491805962768958653206990999324551853212097015993023862112848871124605170607908827808477291691841655793845696396749871406967510177850645341540487415664324732152757903193528087858077701905898053395928113547555570172830216141012369962220610467304259117611987617569766676859905993695381009931725186028959191061644524106381185780629421047634116778641689183552312466404457832756514290128543570266700353430098278147291076516800034185347825919009949375978406565430026204267559162827720952184112128542017075569190271553101085546460247837934833910280682908614794237740071532076976581678273799688164537398057300675841165054715348391810923321473686221345591198072983841986774688860210588918426351509284917866009537259740282294397058446571329305987417365236173819408114742343539686377329260246995828595164143928953665832534823808296773902207303574126414300303694389983845999871024027856617229479086711763991972850166177792978362915311163251100821563348435757901878777062193534271536970858793795920017286504826356738112827403563693255106694210565099892457629418373277889883989909291353754501962842689602906858488285680624833420602569255339234355359823639312023493864794235171654138554137177320731020448851065974955913804329024775064029038910971867745485588918172958663296135944626495834129412806653439979132372501017448858972122464095758535893061294457235299609568970546340600394950731445241065872084996317045281690338872114215818710461220103534094125536044873953821753592175359256975676728978787364918614706818767082808311046334691965194968354595054463906802583225779490755036403044213798944586955831992985353324754103900872216875255300814843978275870329590774481977647324325635281437714750490610536203351555290378881099505969288861750134360120416010993978721003338697613313124842292970442916055167004287808115312458448415730303821931236829814144805769632596211238388407502673422155464802362545812364066690065729460128207283999953283872381631748954035063657729448823029771406861664116435324645505918261955502002934348854174308708533280695119901104200838955975831802041308713127350109665196943502881229016158286473612632321649894991023281641012422208380230410108156196044089141261889011571416561072380079097279329928247788064291816309482690869927470400803933670924781676546017712430189256136091584568321088812174584004473063089172220069001487916916190656163910647245511211042121238938804607276868799191988265020608591233362255209823007523257728035481081225827333595697241518191387487721018064625325655738602228249449406992561302929097038068477048409115531635482325151823480678851561531792030543295988004263260695263389097902311424002110856661821381910237011598461387865632107326457701778265941804682284948999670991932828857674783738433495128325625699636299549107752397843382350034074871533715875286279847114842923469964420918958350393641568897248701010830995384441442858343776950240004015975880563504788552257408001267533464668765171882831985651101937192494707853629269440279860923482221105807837629202091777279427207098949492573139337967746676686648462378138596457011556484882760275759437930680628247866909012873969171273512742546132942530293413173379765342913773851780525894472160315065942362851136625025970823872126504916560695974180818561071021184664088928439913351604706401292448999285430335573421138221605196652655719578300891390456485779022447775886055791631106527820467938036523459105470713338209902328034819025651629967532554062059432882529228445831457484215143410479553767829404881403726709714091875763279977321021952633012839133665825888876806943024761329798244524574891588420752461094015911243153622735068730592976890312817738167759397030544408800510910269600096202237479546846413966227521881724993221979720800534064876545401947619256040046259686998907278248381824766912759218075395781970551771501854670259063443684018956013663946763625109708074752378529380292697851871538272370428502852527493503279713463523324600672407816395300380360891765552597135981433664772706711051020948177854217473270408967455073578502801500996226236761309525233253700078859091026062490089641076101974840006674567523490048545487826685794264403713600118062863474548958191120226955253219381515774435003121297308775589235753177788753366215768421497878704100890953001456058664513349588435267729744873252265483947423132716585831116368164497407348209812197187772033302622685906180463487262154564285712551317103145683907886729477826701855285976108191923440527129538844980307736260536209852978936482390815384624919325780642607218892279449585560054911084822768799828106893468502753176338531934300482026170662427480839139822049150067871668786204614370747727559477251112332103205069222958559485653641041494018944649013122431990907045407142695585597729685929840573538971399207713271021739210490840647380634792575772575761934224575303182612013046905214073931319641902602364742556000427062484164309052153849301791989537843777420595289441536228231920401131662787517408461524453492472100571811197957684280409716889482955842091702099538401285690486111475436065645315715343914096195048675555741923965744700873706295417763570369033611469390908003704666035647552897593942825191465533723973156101869492849362226642526272355075918250181810053939793398746971012024795130241339105113130244792572395843912880710356236822371670963004230652461488114273584989329257244570168157467880590559134063700239296127958734273333621257792460577343082528262190333022986462299743835674667870396260564077856872199236252428798015738543677130470844500312838593721684930753420971414337170066241419861482393048742082848929669519958949780258956764972590501086931934842666376285905669875990927642820279385021816879724966072409319343458539374656412346540142448959509041618017036749443581567202290689537440287631439390484567764487701071529115447375993498731835584160292766627909606999141623051280643619924145297624879393893146382284747107445101503399602943111859775528261189783866917717977983055906771113511607978710331841811176788348803281623359084841642717863553123978027649373315181363150984122801701377607796104722785581290443291805529531671144971413110343762600356876858606565931639879120626430641771177157942507599640671683073847593421744304584270696793059648301539487937632359256007750869765445298441360925613228376390358125951311437209925089231057959032919710637345525865322189881528266849406157272529255665131329615613930869623923615415945026038012057344258342601765423777230240381087776412092908182011064278496200224796081435401767716915133943281581721464719270460881120303116901369434546264557760952206863332148785966511890007926864342259806724361533789479423781010602588410868745372540225704933995547616165531415396398474837470099140609443457758281009386265169808435169578700091303190153212712660081417766032118854336198751552704345569386669991552394194972336431802763591575533014839053979080823970486885793988436755740659097559949437981927579908737770264244480938925832868903377328411087036060849547497320954746454002604745449771489476514206265127193197638246955699131659206417271765442147747856343602743437505755645623177531513096646228055690056589791947992230142971211300901882095861296846937930066693327593110188757938135840771290952437508562467079332952761898965344180728742024161598069844023158247278936973088457162230012908121713148426733184804625429367643573132207220421638390953272394157174179851135563205552473055909404510474858239948342868322734620414622097212104079249996051508419363303324009443010717526967609950603285676322732904560436350415642965011040285355440354504627241763083313479038101681911852585206108857208601966379080918843058750736167929979592227667653975920969337395905192910210159104662357707216480965056532810514897305475058224848201400515514206107325133346387999574586874741389130478264879999962093955476017584730405249867962716855217048563212363221101775038733068888542299372238435295922182051565137025557031410261675167425156538836204768197734014354963835688717451430077203947036458356208799469330967240883877635021645967167948079730880868940673483364815210071518651575990635031823315966014298337522684776358047346800400364643641005956880783589616947736616055006317890161963153051240271029276774569862044100869821613865929649582585147758514267398139570022626743376208949366411961860926132471722546814099243272723062793092304643378132863547773344749134400873603599331721816000679109619910086081736807812690815368086964995298938199091251436426169841190997608368796397183862977957843571981656260897359048579269711117106308093811669983517839133080629403668628286354191084932884755574154280175456682253152672687005515909570065930139842444500831235652386023194626848202609709727426040994762213529266124112537862765269692631858468527205404561532253544663845787891933860004511164351695575835372074147981011953302351416854678815109909077693280087071613501536641398175174434966992691273561017146895082357713876893644458223138474088220634100774879025557465350296597155204794729782991502063921555885525503538241599889648871371897423568191660842517026202484842252499958637322295678874608922787024545030367010090949557389307775192396778438941697050872252286243208243604839183102506434762900101790680815732417602856339843976467967305923112789760491723450094768340086858152628888625175423023965173729774191509780555689303598084089545734264355473903087088876233306758637230477865454318062937906437318628299272698542026074933119807669451999008324915769559819271397414542036309108671297481348600445697799849763181939950328413821818226012638863653728025830178285170881065201884412095570728138062419055881031950307847667109908172780151655281215615258347775706090306399793715706756292845216069779370050438680240979247777922401175940093657486246637710092978300756050756749830748399818290438319352024676780473935459526485786031677409076229369610256706116576908588924565816154068095747707620845325138218652259176015285561315408754288197770316530435403788205973009163551771430098966272082150249875726850224971921641326211353404025935197113685576444903782220621884700226662341047298216071410856560925152663856947849241970148561611571864955135808614083893556448596003321339624485071262582737817919331552625110577422939242899314497193283547170086263806554097906529757549942213605642022474533105467322330181288198645488691238799089774207176765388654742852561019073639858805459651407123312528043649602558246490974736494474028367639711219677761381076937612036394636991496820537617081777274481000371596148951913521562288103242050508096154294840992070323304828978747660253326317188011393987642135619694051721002091607918976049832287495858814877101647455258266528386662512808225630315611718301284725808317730385831813483544543416237446339143275778779771146135826945958712611543607870873976225724836157502985977115569900882206042915504978797617359596879163926515695613844921104417318151964698241928460255932748174089403226937056992505850755435664161843926236542768428503163694039516593186381060565166196895209271705216282300912226535341521593809854893627898462960961689223630822180228156869486940278808148970025716251836901424871070619981584055967038194097368725820203566481955386520171402311711992267347405526125575283054510259644760161498907376286368907622532714150876926575147264287203064965053494873624404018852417474674246594090014827089601679799517880757397748626258990669374033434487638899858950304613058589845204069034449303145542233271638578191694499102597773112967054768512948934756284610398468516367789985484567614329413669967766742972675072081916572194215616746804036228153982054388297208774101026551176620703432702697745748983250142253620034250179248213955267543853695722307530939532870212942445610349428357768404511468286755068056555324200854716323870842227833092435716151472919984609855180111411775636994453281747021198812991283842070189264891075375894909800949924000289432331752595423381339358435189218751754178197144329089514453920704529711517782585317161039681279734205474909203242292178396482123215679415775276700270014612761135671583546171803127210241668257052488720443965850592497299020741970843286407033056389578945135490659341575758640538704338205807880187111292453756864118499057462155779667264480966747198871603725285541986679722706764731255408165815261676500254565994841400276732426184559186832952067492625950248351992236090062455791591668662131503669699560051202131552569986664329635446168051555954999700139887819623156222412628307764130643628528447944271295780786540728871041012124760674680487449781653667597371591629871489603316117711178161423407673308373379862474098664527185591408661291507254231866502308745431451116996943639098263637537786672365781777873341066517257873285510772468175161901201554117549972494449766129156398308227736812931692110166157133796760952625896689435405289207497251213983406682225683080452849963673394430720606827140852137731708858071281946889304254208111026922320475940060446714445941524520480523741598487006396590082943989668725834710219134833346696417712849769245723754225046168466662674813593014349873241146660744186153000681946243998845624982931652058651401104930755599527476445889461328297035237697317490912890381839579867898236288052460137339283588027186317931400512817862860856114185822433579474353744748549498888933241982468336863389276271417904645331515472775938251127275017783650310629823063332956977899378065663542760302720930524948584107261324485115865389286162419451021868864654900508867056703272320221621906917179804975732367157396902031004925983477923484764570091294630069782879691965329510231563316485532403056843568696978091839004871826257958450763572830592206523743025474007916077176126161487268199561356776902341856276328678084174587653666736547435281890687292560617084264605803751794474267675585836860049433642588582216069208480815764764843538666987144913522105703691870925135850719716182273498463483945550920327036866225723176207680676414791468314653776678992940502399234914469257668832338105745024485617129107075541829402394400120383536445896368499855778947063674325042478017805824363078885595043466502017115090485127607752060637709043742717922286781210504616536992356513522875345823602913588785543316154554350287600964652197453000709783259218744662919208138113147742984256737613839020771060668111419430984970211181099177263304749319982464269134899917023757342981632147731267825431878550826509912711204847836549699476513969012482782434792777657106814683194544327651657367801791325494688797042828211670394883148973234487832019876551172536228521214233536668173721613231720978427104196693874133408911637492326072627604490019273248044223145320115771156106238515422078871905550463274350413686675663767618676013586301524978004573185052436213017795806033374832018079895270962230061792449820336802731156533413756491409999693545666885332475806669707772239502187696664998020042848998265892247590204976703608179128893085944510866577150563767215976589694214408029685403396774786270889283664734952608637789836133601106883131439931758857301139940284620350955805392737810548430018067456512049171630693326321947671120435758896410031824176506385691431238774828829063012150525080224032225671103347749421503277769689327977046733624426183474447054492787421616078029203829559833894865092679232623704413935361581444433447015563818302191424869748483293004174406149487309826724081269447359659641986146484458013165492234481607436701863675087648372970506472526509053233996580479587335783707700944946281010415451443039806617881905238268067192758567355757120934579641706595259912851648445171516522726418237257174872075037829041596106781124070836050186321276592852675427145202042126375949989280516496415025342249929313143739652598177120187407658676847426498154263231198627884656022407845649679434782947432355925949758739026410895868569834570019436992879879677082258594121661424673146639369637222256112436633460580401906850026880574289571828922630358964809427191185184201502551690769473651732978849437355219859051731159194231159663135306683541827192610880820752027567881152391734003286582083046608444212268174951217311182585382260435984316385705471532366826480783138515178136914371587315462095761489093656267771812288846409841457369863793032631207849568836014453376125390926376446945035530168535607972810242897827333806546366367944557938666112942712393685739092275317908592371363584576694217827378678685207150149703548857865388537244427112769288903500626276700217938981183304374565172800276520697984507085556074366634703163193972576730112525947061477682575570659398358204876855832184139818479287694064707330184188613546564253827981671571991786754960681101607835040780777338426119640360255017484816976647327729035484938186827092807026725444368510825762068430262685807612007856242907972757490602453919076093509674966454307473265165936024585470810073958973126907929347552695474686116228265532314989766545619860384272337748739643656714607763137305011010346619065365614272912342269543109966523616477387847094245692934841146690888335255004339260974425807097827160241089052678421575071967365428687236162041700008466652201055649515034661052063335281459135677789202636524776421096085139945248781339293951919607250798061215193372855250177111253382794625937023818530810005219679579076446070385278726655009293042485617661648795094916132728947449831099695771666046768643704209866739488925655647697013353006425306269565013790262713088549387478286290902874882226339442275760940209984203227599041114605181714941382267620470791897811355198399534556559606705375452723423781394569982335016073722182403075401971017394600730707720009351625261465807777780097715060255282178413475809635225611772752661152081887939313985433237602915008425241141091116252813893620046199262600246670280962733448437710935028290535550154153403582848382841523042957759184316885174671444286266592229223583988164488709377311096667132067792684427585677103161086845234179844045047010574269666188812892402402948924647388846717312769272739899165154761880221885060376554516384220245761626857255036921838821111402499374540518855702780064142503857628830119171142605858876799196766922733767450200786388728198235459505643892280507862544785701978175631755387771821784442036422575771972032392927247381029919115979611532579140083108739185685432760510922896114009010056218965174721606777677887754163438160090604804155665328165925035359970602230157003970976553359856350365009976310971494499468236243513254228876272559274360635242275481501819583478145895035467318853932637821872308637071892525688254090591732199828929235049759633009001231580370200190562977929234282229407489548932522909719946587849336339139852357418804271674932217335685780849644155005839497648999695836654571653211814703121969063138815003244822161859333313566471809252093640111954864184461384756224254041769407922256993052702035461671298174791940953002981262105503153600984012036652625903702699585520672729163695964985036219378045320731152153476193204617742185479724000853936623793602838978556783225232183931296626150867142624696037881851723590538269380038624225842810434076412768931314045817371124766090190203095966329282461555310487202253100138148708238526697570621479250132546111700818246488923878906750361469943022773759289978076853877399345001400860291851146429092768841319046264384387816275682661158021758087074052622287260013837523184604655724544703329704649336442848916776607326625711873066884094172027742323400276840374704549227397011114584179805358528611684035657282637158347791638788198967076567634952462519457510487728978133643337458930686189376533379978900724725801228047506304969268301282835593647440026824552274157680712386286967928238118654480593007712668914903273821785141487225729544647982489335857655239215745714588970576691798033047920641757041619375280565135095622918574618590915155026960413573942980287712932723322168734739232933544063886781037882034195511691541653684519661010447163513890173680087560386663333047581747545665443566801284584358193490451455679061313297895733273295612205854005460384271897620794227324514001949136636846439301394235006281910063666492402999333494584233879790187015760584900611643057740010424455502609692286700280180126793206189316788673854669712104969056750362547816738096875841685160729056664257361501727730904582559504195390147688607894394739239290638331088352667327699704644564560140017638860284274039424370799343970418675686551668336748529563341000039724352450845873644716564583652172038251143873012189785191685457790451018698518884253265853760887959629009278642309077299897769121874382021985053440133627777990158125666126982451957258924583436885006537325935816561495313945342485200720802911315773608612058140730710902770399529493175612477324873890710162185138446202423232453270466549211958193652558603961078106630745317956567873025405329158279764100960002772620648152526045119511391281795521784821592196065310786096677461412480706433117578307830621333899837459963528405605362370963808489349153304444721007478132622655519261632223173685049150560616691466483607635256853616381571731862633762573918655978689583834704661368546595136484061102225839926982133106474343331412747267880963944190920626962408450809567077778995556328239937321926599470877557217583993311706972209138426972588153077629006692493641861144247638544902029145871005903456764465170803918255136810369431282462019524041606222051743832821993789544284771218383948977984398219747504612104520262827270148669880045290931136252886810256412240760475610458136870348632967101543108952758756597156322082426817238534965512126613436832856781320689681436392659064272663457939286308578403528733241761438086271955111296408683838256561474093980254215854731991688291733205122473735803963532625960126777505270206056814109139649131819931306723291326101907536096783833491549648901435619385714447637105803897716001725953967946582181482453071718743043752282914799706076292317161345194769951718929857794234792563908057433714588384714910141625000651753244629880583341461015445485404971473131009869107311202133214509127287719306118616078857636988577546788892726473880406755172744413454871387332452503902664112829285822431666854652126806923124806122186694509953666329950841886111725110367580834938401412335078991583351863780068798703336029591002309834092674558004227789057590242485712046495079303730763688250951005560578853266636741845987715547501397519741915930823870052822516341093718373674001456789154299651377445662558224472535683202631341268944622988659179892328237202915629951717491940788440637142036536315140497434161564443712287361526141649118438574815034292788564918154532781301179598534205037903615898236113094022632866809172887336575305446920440316322756790813870571690044798017350752782316658288180439641434675537762461596542630976195639188772865994404724323077211019022132926600873634831123158311129999038150324349206503759749371078364918514467899938062082746550608544018342761027896990640340597859264632819175823200286217682943517069194378497972581529239708851628606700837220998422915649017071252339964348119790403634051187657645114785056534298833341019398630572641619638804461220634725572310907121807145454571660544355388911182779249642928913094364422716603646972907992848349877329629104490325863425848296986841256245288657325105320286200618917617576725254252344870807958716404370467454747375349121179470835352928123286746823511605897677714630534390756625444710073743682831010164600091700691921260706346786510281722431019135464823989285905091064324723435851290269840472340277176091285421810856044141669866700561501304436324658489415119610046455149320515480228454913947018159758396632438589667603612843415054700041068419689538407091235348744282207359968650270903490674414675678305754581551669755394423948040764775200067373112516841976391873216505854758759996926791985233242052928800384677472651039753460572494395817290120212744802476179683026966184186875628712826009154390894768664171401282520068306420472382311745168656874940314060571434310639764083412541427459067141516069432052676003913775687102094869195832573563094840038994951853475100012992303241737866443564037518455063501177780051794613879367259086772257746587844300538610494994790268937854140397821099909964836521446764899969558533511695029221606281971954949822869271625179535149877667873707968998787385139100742624047787599690466518624150132600143507434970829078886432650307590539322782507945129512687404534714734404717271889462073205645392874528547010670498392531425862727404308487078254287915496459262777417365787416373211251796175250017726557220105503478694520393936172570579860643417163930281527509234118675664529782649084431552588943973400162928941277391488576046540540699489237119833173282707744716991320834043408668311395835557972536691034095360374438280057246605485545891756905341247598308718236922653951241632295535365667324855966630698108729845497856521303730390513449113719404315201227768255188372171500913625981557094940294901835413741040511119372136970234320047869010957548865233060228038200135687631638214554822665032126893960327706015337493823659951097667373942492940583391303446351556524364411913485908299655493536162312959891087220985098580763823886556643771129967568138700381172042673264496705140199486992808529111628910085054481429758320164084764042988174258429799666868190591776278227067323542678940561851764675727653426927513071252776580399042591223742670292290411623524943655701444572276954136881481051566074983805999662169815793911953953714726555858346071885835898184799416103936603023736440252084269562852564320068319464243593365949756817773414469586154594558363413089217509140763813110209509249606771002000851156072540665599124060665095064322084065784714703616895503276904166707332122212612685972666995464441963660715986961451851230298812909260011776437801972578967893910212552510910743335226277540388026941532993721484030712300254634524664419715932475826458373939301070851338975115400410967799727274625439286819827246880364112868425600351474752862110567425508544167251868307085445764380035453808209690282027603112023046014503055013061174297559259928374487058818332287965106913187799094075981450261823162517074021948474316596431113647924100094289003855065855192285547001047921165822838221070153298906439245153059435554691462487500188137160202133383823873864638291527009506265238939030303436450691897935468636797753925561904366735096784631710571197167520847060053304463109285631865622165728637330583567083594008302009898655993117813114855857830421604493736017755649373080914316112329014645768383841337092526122602408450534724604797126793724810093792446623484318043039179656602713345397612307775292790374034541785129036263076101295781268564974549952874376649778064156773735877995737526217417303299178196864544444952887076614148180562939300416432401403926338882147752351372025886131837379289519231079062238640532678108077208005058442577219754797066221152487392491295851731478262142765991564130349327949319771876044627829387862137358529471053011921261037336990030899308718611111218908349369003737943799591714307331487620685275932406113049979943822925298511626789938197401368302178435670676801056636099183955564441669768410656914479252824834035398627063954520047024497435290103948744935997511295796955476418421212930075468128731362528284729817580424090181710005651957673757247162606850078891056802046624119443178235794614085714999370256987970069365960932577014597556138705159121856413336079979511066855380618918179005179723554893837378068820281941413262890745464260291488702871714412886011411152016571727562016247498178362005910268576170631505756042686250427615574658608678858709862833246237287794075120973509715159495940414929916329284251417968180650452738791421323125865020588735231025423594910925891536591965939957784608703887966447459054439783473400785087853122800963737410352590540814353935124516346470056477692616655421501918844931436167509037358284616914967963745641850533721990234449308763560210492497976274442001127828889467477568852828590852826937160131271307039101750555562781171840472342535108847461665803888261478837907640855583456357054593239680439260733837019669362626794308666495665074542644568871814024754074522305262789344356217259644304959303053218067907700767233638280909459524537597699954528851159283689351248733297087874600426049717925023022572884294840023293581006148659035013775393408192827700786942281630032838027977237539516839160630265109612737831699758626065741998744575222344068895679842066082879594672799143743847500972562001242620245938899754782614641677313609618264010810148055838229506181038486579013737052790009577831139970326031090046361581197981626519286885194522068754165998764327529112811937893093065148941115339624827342267372046872555405567508769439965128543380849541804618715835447095097585069947340001628863749119496332691037855126945974051284838155284685771722460730126274252508532059945980020775930522537630408104141130337533865394930479815093900106837802526536583626238445150507755696804692042254277254847151367561144064432416956639426267595044115024880434624227542935349145179965636051789822572951957211157852141784286314878568253587897034598994763682893522208711967663002128460168399041550553402389110591208957966404327170484680962624204379052527405362520645181968114914456282147025970697554180539830143078788472155393259842256013661419373311654366054581822800328882260134009460603088355311269322716308369070070785202188423482755363122948987346369881837201397293408482995687309290813221311960435740308214867967130096110165552476973136840695456713321042350360379601368410246357833483768647210704985816565705047708818459591615553125334283299258922456601052105847541711839015970865251179696056090660490568754050351590847378929674924739325487700604714439619148768028324911303016717110736442724577733100687788548383538201305459022161973860848189536227389108702772229536013714832680863910802660678400918262079372110609849357842463980147636611051004038711364409478878245805288264785346279844100731363569193687682262607993013290539287502479379000160337022642937916294312033250723868146987135304865987325195447833140316269647231468931782512374094269491855020639283789248053813378058923648174460354113254666057890308761976790956574781513314794138389804262918033387102541634782773073879383769852016349389376492439162507193488117805906215910908135305626668133298428215429581993926223287579523609409922157240563669039353147460385833183805395883458291917745770836089100911492435126958405389827562472935243719584105391845946403595963326301759610974630565438338981086544437841275124678738231432480343933826079875322320127416519793123347453143096726132899006616489653385423172097093461038717074876855924703796274266497908035519972972177944816278915932400269376092303254171154027761567979282031221496352862493851217724144479349091894929815664894256859344078847338723125073046711868400284360120458873293417839276891417749200804743861909025790995925198141398253115708437657276425488624986458548075074017099842148531432569270631088292589847020646147672963832718497409509099950024524557913343273268687135879422991599691622601682744322078296881810750659276713999405839781407743987917388208553745775123493354945158148989971521765114235309706170007676034521148783879973312883383414479428383397143262660018452987579392988878374626157887063162587959836451970906876663761997462919514802719091711300555111581441532359134066662574132244921254170827787794961307792490968911792242241875965976736906168316593188018139453417085150495330696266512908740856413844617556460897775481291738977864710548243404536016151805638406482812201171262230839784646571706726537840479269936232400078654545295122046778341150871928404261678414313116405481590859111762699395778984239992649463160013247118237575680900401246792723552351663884854533665956774444207574803332457089568668849470459976183816314567487870987881409220094308010600626271474260811553979262398089193165037262554078983641932944823974487102430948403336841300260012427095404518736892041204110610148224516911180252947796008490297322985228402607505867830494383448327824324970374481098516419367408209854210438187488726289760886712669987577998076661573221251959087361702957664738211531749912989895330835310586266147669382187679729114423673987807634337607513465717838003531706964161107766928395594972164644049762123467551210403085833720903116002841542816924779424431560561768050935301225987190173221075055360200188925990364115734758550338939581765741626055421894685754205398932318160403867083088072486560144983811823398077041095575474632778617203928904327231315705796276963792249479846784372948450308968061939099235303988108794562694288213903973731566352931381088710335182784599004858717099314005311381223705035139400942358736232289971444471498481459985835929681973846540432903542538071224464193639411029708885150183703331998983034520257702091337711426708905615801978102352664791588899512464057868795030580820168832154209994622681691580335585020714087895113361321897161582556763140257320254149227025672470616187391581459684629159713681904323057183886383627772323262475419730901352238760429909842160564411276901298373670021910657251807917658811489372033089233171173128528999119946431687837087284995536202550849314704738260509879833605088272266285887237473209158672041960176730005699539121910022192444315217117438220987070346553173203376653506210923300337368369537341521435297138636800738285944071763685654902139291585785836598653017533670811088914551081815062874688755421295046539256806361572996257705301732018176031961817717916829891106204182783461196984871742570767065991702863116866257025566752947844026223526825532013051449476481722625397364566906796206069224148313176482099309748750790736365045161053017289062389264243203797213915650869284477871055989188476392397342914363477525302110420248467388841440453856879032887211421849754668911944918566935358953990262798113027543583452339085901694332397250248336195741267882396101950518783166694146105004700690781385279231847259452198568033044233573956730085919926827988206965277134854373532823191743218131608615045732109554367850210782408706287399258669782102018586276942412568200029350157688159046805803294477460401134995070225219935412578590814960994066017172373903767380429989464606378488065665935414104124365847883744585518239230252924986507295663553352574623917055014611985154805624570780225218193938690784928517177738171901239800305487288235744603418503795253011914569160514870896109477341727657660909460572687151647019039794998247272085148810433110673615856281179924327930383381965946890393324236167550967304613242659244490394865904151359204099814068407927366860084415040226081940500987578729982415759573265693980042275731835812055078487221984794546537487771281919657615823747681369359872399086265332283391480116442262196784282046537061414727275227958407743601690338721082021975676074029949861015594392879714130200829391802651596910422557496106027971995823201183070557044108740795333891689544290385446415844232731847430800259807968881533767725061377292157492367006754680184185268788112585091215281695139606161303532307630843283882542943519487226843029747258516299339314485130015435339137280214493942917441159517724574706731413832351337155720348994045397519312491360178434254704495282555511372967636040133892383530511480223960980744883834795021828734388641441467661460280597521033776636365670634985966058051912744587690789711972824301157424707866622518166926981663966950467585334888698521334287962130810141091598963529423945838708659834127666515886598292264857740080820349936724365535053078922773020938255766320541119512786061987423187344479461487471193422164154839355927018038180279869568612301167909531577621192324433098515049333756638351486211117716628729829828695884250708033607209211858431126037300102600268646585405039305204087470427837732661161450213028861928790042511223708776955017983622451898956162247280923718484949895561453208543166201711119355653352638682082236856505745142380919684763732094004272064462655126890539925332210034787361478898801396186386943600591933286028609358523937518901885714721469653609994969997045033859335447719686213320266598536057244578102377006229462650938867165157307686205826499521564915172146085320619568837884615303695158278036381615082564143181423271069134840368055294969498194357675101041995150400496572799332511462089266309828965634983993863537979310667729177389947491041745000496187708534071191590913376194915424376761814366024018952182327714729875647770421093850229263655386346196863971102815574215280590038865669133670519438277752022460392458435635981516446531861528020549460430165294973795398147021033838913767875019794685019656860380068667784083959372163223830604128044782605187692152760313506582346151513747419786128870161080937327334049071883627745751696247532787312871528358690735947680427972160179496696926707963280015668521143558470013413069159800868097144142023259970570096743987792017916874259118812553907562391384599407358857347825801070879436685251428436395217227751904200789514026804704624102660936372709030283284003038128942683197640019216785990352425314476991245995720127629592871802566369314692951677161789840515734643784917910115653687321494419777029264667139516017314744918227108742742701811243770498402190150571673671988017963455140622924109568631958470408640125391569586704131599923163211497110029127788788109562036012396230579436491376200762190773402623999694690105585816564144251143350525277809332277353991855185847218753956467021566576895405075464121458965914748563310423361013500030772523253858075844451814259916591413352526063080783121625574314714183442941551007641618972194536611504221640055119004547500134625959316541900876784247028562725901612291415382149984029851867249473203339052880351147152186778086125476497950688158720982892497000631127209645214458726574081684037600840827951629481831480886522092231581567900213898467931872679332153247934545226720559335210736549107512498656047660770680773402873853211127014951126907617689553452451736280807643695004989284982589535661667766923810938954855508619741661854127468271860279782518397426529844738574141507480796900621786055880797386350946463859910353431810263029556086099052023632101952200899098145344922243708850369589537166859184361887511641412870184042831064607503366647574176720216427698802729058473981644114819858695443364706755366194353002622212631754663310316344676220983018449858130887125087296319735585802054487607367562783575005062083149805602191079286984645355204510249788037777837486687512636738216946506293124041053179309194096184346776040141552178467290869982967813996025070583829008320448803302106026227499342799812467820188135300640534045387297072998490865067540423796879718080534135868985579602690292101275190752780828928208539219571485466384364002311636696981174435229273835410230104850606117660694282411777434451910321033158055017729566621573999336042634270667250661763802118914441245938406106089874923805625080089036301278795305064350246231392141213778358656872470257497068180116935320442059884157545545085088731743000609696895097092979819579297996537149621351417677228011281443508405519621092558615792154976346574990821568809066073731960013904399360364507796232702007195838040397752801001836903332739690831088400093836767279008297127664925252069712987153162411458144635803231436219782874313989271492808471006166704918442140465047602480460424255359312843295061923650136026231542801437783032028087083738608530633292651764170584269837585019139821051595623737417273701168803785259668586111520016022816715677074744228610495086222108198812585221409550876168996834036052923956693773892381136646271756749522012020745111793776111155263573744191349162235796104193331513817490419881009785584608613723549569040383665078675310044692083849013819537561499134514461222240039054052799892117248228777585376094701328610495556269302927262159309246142964090339322545461400631528211622352905265232487655037192571541470808388926045582239817316239216296159708079613534047127438207490306264763854002405796347517319989593677262232375465734077870229646283467669145602805570350239856647418238442812146907228325876013124522135087136658316730423332476175008330887207911565863736123166446614618474241272507457427947624289178138264659519406177096017516985497151175892380449741618239518413068748112269103094600447498813748150005148440046639072149942969934717470453004952743740095859106147642136869463839120046555799823597920055673033391751258963208881139498070357605967530513764881756001011358413846435008305532584881083674815644327188782917527726795502109736607771975716715831279354700827447445251329501773580785475528563766832959462492483308365160661149753753263286272740578008555741956159582152936223218807788405941340511886932073462491295530360055045402588852498817711403014257849901808258229340201787493951423478282536934220346474610548998960882640801781033488753107326572755024506431642399834839728935128366811529210695731476982460960638950978614442314672929421635893387029681044320828924020057853389611340112203785839491226014882561864164927238489282775517934279897871684207413593725099963105052145617023235673816354265319270750871227323768882668429426176093775471519562177254593015712122598276394543406247370067292731470158581365998462233864169059251259904779745005213366552856978406142827515625926785708887700777362586030119326503103044005544622964070988896107897281100898487308011967239256900135506071520826158104852211508941463355778118573263423245029644473419088274715658415556197646900371348455818928097089813301479317885678256911408517906415609268602156334878392764427591564554628852568375180951082289670866146687196644902454496992045885314697488306044520871592803202283348512179854681315748025159288124598471006464650796474162461368386451406079186864413543288876534278625688890100971053062321439685453843308778753824294838582395781274214163979238842493459978134088663883692365444503665440054602051026746575498006909407361321981435327198690756439842719922473460486090625902031942384523456270515527850480896523879515851516618965125160488778605338708210594178531181017632262581743389184038632433439824743751285682368295071872210082800034682846263034368389075370740730840624686412945715437121856988712584731699963528993257454792661393664346115099668764506810101159162871910250107948688907226438500518892933683964096983706626313333029332573524878317489385082773925026792304784311577105980968576309396869011045878357333986458876215899232224051322382777400852013542996248667581675191398930996178098839304253958482842695461659799272015042113054213046382928794354683157285211542544293703518632487711491327151906297030429217258370673494138519780192846750233283230917607950853081742774555311896649502867414606204815258324560789607943162618173253584508398476614181368982736174947103864484656779025140090128997718110355367100861615237795141915483957285342734474538830550362759892012964591986437918713012045064958835357439809476950628134879858813858281021179548204609168685418821711294079695605961204526401877572872474202707282104853685265767466415639061314652520673055250274088168920769689048633439995965703405465554367976662506871582484151727415772412760888727991732162165778654694742334470089841790767037958282441610954994598482499003262255211591879644532008327103791027620445958412487538111272297585514961715852594185533955843742275259083908748931732568260741559730645558532682270433431699724902260338011520020600758646606069723255348380335621547435371178910188925564704104524242568548995564243412495221592187984268178087034200178969857288051686234469329369388394997617248735454571257630933477407230018224409450209124734081873964154115932395856841011528149187668738856819828296612469406353572408506884757612918530102302668912658013258123298135277990699756700595965338656218390681264906668788211888273168193443286953553474036641565570568481683046674324031891302798444488701958728581115165242685405424195379135277627261811741106731573735427918652928304893351408778486040553398172245548395705500533551023280347507042875569672204507612925168653414348611292416844135534449239183956801293875841755507863230015810474529015555596108610269411893884562769427964049093236686754777258849762642441946559185068494638551152170519547782274164476406387015978215936633335385977954356154341316399177816788594564867856788516794698732564128439738151047753223687081417594150568635417528847794447563656759122911559814420537219488467041136222212534650844705840109569911558102646587355885862565602501999132814849522912908499621420070523904645706528410233338107001608319698617080336863332990976746134487398641511607216639926731868329980452611028509806850057326746769962670369445835070118465026797604706134943951314815382814919456666824655659559415079076881657949538209552267023638556226953917165948597086135179137915080551973900871820876265116677117078322930649771102708658209941064618586212074360207107231597262634332386537070071939934759392039982115953597403953258183452303024777128093215868238625569434157111161070876580517513963812637047028179356104558413903587775765856164418408157102760855160485106531543110596217538405953056557465726151146009643810785856970256657497058237189222572684747945909054030236971718420965721531562893758103995167375280069966631776454327477331939703475808756935567129578763754948165905509195103879793994675887125890870136838166107015518678380175285846929762985897295491853707069156059854248812765601723228275004267482140144709270098183568105987319388748991526089053469169158002451008937307965252108031500935771072802561259788030183296934636769537903259107788454919336744445988419139936172186285831273101100543315140453951382995400599541986271741742080193899230918436514704592431903602915942764692970395031761744492920973672976726283202064871713211929096200613077372222295226029899931328472270199218755671052819075068594304713477048960572815731905205417874314918583329634032786385529813383617479678069424742534329372384520873733789646589261559386331703826360972902620124701723374891511981442227611189324590743563278453000391476266550985368570111754020029033090212911582205930982678866581484172111610353846236494502199751129283004933502261771700705983318847085338584404273384379478098131453992649702441553936900801561290615421468404591599094591449327542062211700173360707373115180438867230056135684880517983299301792782901255333003220914653427679187274324026745996398132177524023342629618969732567990096921429549557477372998616633753172120964167272977954744665764000757222751379651774966102174187076295314749230158570171521778882391934656982783649451902587162930592246383102878468360535101378085135855947493729758277774942846449825759533574715390454059282375981999747112423823936604289967350294252916251843941718259470279279885222333775801463199208705471030710311813128065162359547614221594163307788543769026142765682311090379167438598313058975900653662662362044175633373366926099661307147602422152612621759052464280569708797433742604969562778297152793704870399884804105088193669247063943472004716951225357188624080575985623450538088799143292821625093239961927819984739527712709823773643081158049216108589296253389993351448140063506822691950698652410863855424447296939054222407050956931445680475051642733981928174620839099512681552019304276083254850395897618001893975282960381383584299588037866630684545426233781120460223362478441722256083162031558094458584946007711616001992419203040576982157587286754624550410999138065978939524513767632841080513741089566526237032910895398752250220143391192078218361478825820544543218266821417072434646612705224670606488396396066488394918655997057089176915878613745177725092730982113159949119837581158864139387765399697936405002829535480613123739127040732979154635429631230258753838645431515370583523219940502784232064098063080932318640567425828372737507029891108803628123209914545975620270273053593392426075939841464760721074916366347161758628946670726696766359865622751567571464582076840974626181588760498585468480558495329587039112492853504169285891179509756230405306138530532489697623249547770442522510941808709076920746963808346704204427630634932907759409010486341624440349890811297394128804042868946478271325151789300946146823812015272239884197872288683212401814507152251576563918221826309243733663723623751569740914798721958648866376502377183201361220777102480895003731117295807973448778775629382090460544321724416151164636386589221786121621637016363124038898866412203761344592587026295420587560623366067458703705865704818675961928730934604017878189330312407960173470880600972221650114903268014422201297758169307113328180317368308668782435184243404041826973217208108736915210457269571526472743071549672555798807806090924372434327725555152340039028250355112777028378255760709384882309515981025228449793794111437072191596557496155045009889395352707366162137257365251276098772379111799710787530506846435160503964093962897946760408977661785235336879445545462808622614633502597332104263574022687059039305492223447778205647798199950115553891498589680746804055130012567626427403168980927333242554974242244297127228931689398953269898134298904703773053536353731654427918448843797025080156987582290128152692637286488069442663357101858426422987000671225210482949069250376198927865679208942718772151692709062793288321146320560048346306991131590818327074785730701715154644006744217132071598186089328340124592103971699281058729996617168388716651732003777738980989491265093134912721940009294081323538462362084061024706657888695602910238571949740509085765762626105759011164372420788606942694615693250435532082533543033049526370094259409703821753604241069123059147786590168417983003804877511074659805131474588852663176973165784927635316995374861546026971653946784111546644940556946515005142354067289726331228549315633333141036189058898078064312715298339045434376025463399257570939393094939809406285533228972200266530028453606439181940768772528817555514334621473484669400845988199291967701677453873778696574096819736263660462081184678107011480942151287369920460756122267074295580778099849988047158291379045329411957789943086618950270442110364130570382229211996249968219633052919537158937495604098875322892088042389603173367747435764068100035211734599548788623420451193625505393667127054907234759670134059134897092532518361917695492109141701092831878841322985616078368548652523274489504562656899677472284237751756648258731369238472287501497144209889612297277670116348024377936366923530014614808570836501765021256740437937270252963154166495708206209352378216814339182597975480483619111732310103303375082078799957257019780438386644499222930352587144797531263224219162713646318941431235675124518040083030440241849670104112510833602109055271225814946819314213789250053497310083353869474476729928043286506920511755975687456240770095873798515080885241118459691959109777048228855312951139770009323047679469080713181973879827147681249449140878843902989932748009541968631090187297013123547829597965445874690040732371782853490265772676006605022112687226648429886978093300071451305652457215756295179472647656494185556607366834649752333303362759948574780461412772229277871227408845530145410119362098316414283481030864388468395249118748755955219981130145405434558283611927702624157577222749430216243744115063515896798026121243299249615362976613495002884374920149076997545180969632866761299035830656099520111553966954992694247256883322328482939059902102905661906561247023467776787028995460993882545908626982872250329218240876198703792559538919293049517808283892955041230273375077663619253457659051281513008242838116238231733146708905057143924932424949248686427113825483341567447680257418837941148792396238281047754635442974674786094198412024364992031602144698311939057774085992942325031977393472951591393574868607488839802411556887370926690486982972133168587714803470240418536261575760777525527123648269130394470756967283105881753819744448302265805826843426168588435017672146617615682361370236080010782090861606298570436642366523043447968255999769667705804441956928816201510466823376558158636712203410565744896788936354220632665576193615479222397560107682958109451185626831996314895552541980301712617892538893907043349151862928339799289328776677297464750651140846824802599117635060835913395826791235025757499838035687805101465053751741517207857113041840705959222741529324053114388344483644260317427653707330514418963881596837271876694407825059036838305697708612971701019516487482044048310826132886095667140819432384436014645295450285897371674989851555883429976443770256303485235670444270246715111097407557268527996185984848871768339919486757674095327701710169930188763642372187794203528392474036345575666810545170438257291637612266374085350459988659842593774316822881691045336764498530648019025178297360064072985299228797342396122875859719458876808152451227249133079116421313330791062691318753145356826201778071109553262532132532498767824029222490778165401422085971599829138731251480828436576824359069218510218713702609150696599632376953974008628073461968370147870092394496499832064012875735896976351204324217401086123772994812255238258649879757787264425722005357792227610956593987500929989915900560546037896580512508705398624094766170626035541336262946730131980448660730525142356377701390003053168357854058904646261523691793948736694900603452365803640932407434835151050415390483005515675266149707599315494887098908267399508289561121356871868037218054453551534331104838087846543831131298633715679580468029097926337279568482067637487947419654935479995212477223798526198196047147886503623655778400725163099991075489747410022368587459983025463172925437554213774723659077645149636081312323169713808574867376907554561242430383580026234112167355192602664560755681654591166341671455268733085624716372277037787155070038710606625375508079808732005288359976831777320508966482187291895763276610102747451039078552514249075293936024752539623066692156681967252542374470111255430625550618394738712917537584968956426253164338653237363633488055596533736774462943664188734777428443991682474971625801641595276677038804143740836052023400624300487522678179272460640545836003021928990098618142692372012752754425760515870686608826131320782141179887543771963865204253976942270930884731894186377270754870059282767408025276986732468836633687242432656999528094485561415279647824878621035916818991007382961635331893169440362194848482321321759014383115090232433767820144735108728257405021471773732367524978827908980112724826693712033482783317705825044326697930767355104126348022676191076781177005871348615925345040012172662354139550204579951672729023808456771276567182156177559602655763591846155671329393812738048909599762687847426694428519421826950428404561159292211949004526426875700252869827554288424804676486486350092028347531142907687404505402317474226116666513100738031405805512040092270774524616880481682846180059421616062089857448242664530693916788970525133968563312704506447414235675192949402242389023160948726576730147200411753396353645733335675425859918828243776104639319569471429060096042527193099392407539978846792136485520548337541910623563030009562599047153641194345391621843542178362297677325967720439330626347462290194869299753032215477046618135234511711354211969392533532150976907635170906751371876017439323217256308245790310697102375123716598565886546308406683118399995374194859181567910447394554522413119501993977409845578984528134687551820989647872489279132044821437724180060102851982820038572474334534203351937650022714110648391700234286052908307288673186614644862742839283258080761081514908761193913874210592013192411633289284632208351651152569691086444180104809450672509424558080219435978789945621018612450843726002524044624206900517538832653516028967325747084875376917418777508642429799202207985129420241841635120895140470929344693565964723013368168195941815607827492952638564764582469652806076278169262653428449605455323427520638188677895714533391878348938657415414080763885270140000029700366446177268337027350119452028342009157751840404212014870076033168376956529252644272690344452377623704988827608985434339145782256644747236161671005612358273502851089006861937078874505999976470871055290998099402088408748308195167755804361402963260870079180086824020750724803059004392857354039818183383102601413828482398260063878563031031699349416628484994858985556003907177992356119121251964207697737228523054883431107139433521759143468667485419549002239155764570818076274312134607682479324411392027408913635877857227213019788112238991913667384554905821724279691865123871790358424407157670926081904992760216310225470163564088287261964080564190114345614551636461660856356845150574676859153952646606509956073300375009070874062247502451848383098591672768120746179715661336186349275725442576284438347419749723082769056906859546663117490914606861162202201909609928320188577448400990399830862473845942839454428830000021474607583239179102079212258946078876915344698857069013303054921578801479350149895568204307946310352325128010018181707357097556047418322504464458593299987136709677764090972965689039564999163568003949894295921953326894491944081808816513850180320164581053915858525524808505829981798655635860690298842109776415370836529978216111703107041622980066244997046179663437149737814511083161161105523081813594409716559661255649534623200432673297696095819578247876257750674902461656768491182368688193638543579556362244561646801237732891797015625460641449100151493396752775821761508077830330893475405143944170501042744427926146419432081243991746170181362549017469839361105604543849878784168457967713382266677073627369625316740232088324089357336429234114666268338867987814285848361624822438117477475788723210180491222307512769622173958088209921390986270664279838957765374433113066281346603997741248740661887378770803835599977055167099290835054982858390000223391980311551359163629639117280522002415499730952375990814380169454754887582492352939669011948631342364917060729076617549899036414001888534456239355201759400184674994159112420878628218598972764203604346710154912653835116729216749825868841536560345341763911771141903926114064774012165294906484281577476791159510519830951894356684573508842231211034381199313388717188822486700144178210160672552652403317326601600981830615685605158990885565383375141601777765624331910116468601099454930787635783003717969886144740591300029853672084132695501134951588156207284903002051030501219499428107145974269803308678709210468249618468894131367180630246027304395511109529422308303380787022624881365066915772706568273765977653365521580881604074233723492238925177687637191386504522949637851839825800728368471594048848447289725154856037578021855510319905663749624372174865544727334105603924289445474458978891892167394669493181190370289459950710678436414385068451157612499187712496000147094627369259733017381634990919295981058701634315973336290533965441479650982014265696536393113587704442705295692709116096478865706602767332304044126265485263970621734275661932659713215362388052092136086782229446604393240139388839177476086766667222667215630239200676910968392886003943964308696610070737868904599987128473670426655973037532694092870809664504001900000616797930013820667584797864107187598629410470227923878129204233647918895585886774966248867589422448673513303800575585734164855165259142426256567176617858256068764018408899204985953953023450692919053353983747984069027549308493615032366244879736659706642547267517764387162681803381669172210397715139863680582579891811493280533564461274343910132090324351354443529595898244409674613248395606579353236710096434434686609341483299522452486061183629992615056872133166521065345489807442143534595289373160915379363390162452028180178698476407653506951291995135269654072586213616787579434599142588508333247663446327864301930232960391626543493967638518285699200770881928206987002772748147829589171450918079331605311920857110813409937285627569098748973495396534150932046477382898748860294949494279261268053752779804116821082221770523303384765704239606612146188100696667887146213212259932293765797499241640729950599444429660274423084394194069485736601624408092339541692735922440918656636054609839781628898414629585896842459787803532485080056727573440174916577942113311272560408087954939947145945678463176101910593397359973483800241059729065988121500763853352706945207259947601685076902718618058284913651187406021130526961298699156892297148907405751513179205613997018282974225334102753472814374213453827267878609309750680970840028726857575596772066073991005461895433060981332013427514351980293928031161192865244652437036613967640989677130343732992641369513574252887564324195666634440549172860321571818876586245230547988613328764731068462162068946580282410924843816271840690982173829340438449678921944923655307441462405832611442902893154100307176469782721514051288338283815911124571146324293819746163654856824996105759420888499543192257700111226103738273910148810188599352482371687781888486898273978474341198446836247369917456900513029413201080063912251002441317910371864264766388980712397793674095422064399627102979663067924804845528088876634866241313537442101944155451066730380809947639718472552128552499588970614884769584517082980343384228748376364402280458769000661602108073378659694243821922237436882439053213333151729802311605919028693726851656408014730574037070215285087857826019924296537897408394911592986529197799409570376394483237619730319091874318366237491824767377928205113227746635022594183224252107447464137755869428607581957981993746794200025693469080087102409924932678855767094301060152060524648651827495819527698018516206927649552257941487646441187846231935788873737818462020763252476600251555754594491877066348224740354210293376679544255683011462128537224515972273961711413417992453141237996889894739868318638766644747642950476575233942713422220407777983628513483834582087530436558202036052864083357270825735071028684604341507322578547914490560294295788182589194602797514558392196205036312810944230118555373341038357714976835275210101372439885453377106344229290096798768075795643002225335972835094126593246980705909390289126559889278311870645021704728560750300112700539248714731281225017693665123211014901244789963601963094145963412846271617256658376108695021271362340220546563630970141005932601811799163229650370392472684752612360086773638697792608691253823974569459737465700836897446661904763949328610034946209570042484289818002311404694705610183788854264562432882411639025402752901087647525148736175058543481264329254819473457087791557774976921545608683616649343471235913330988302034717788200312859842758054004351080036513882340920038426414987526264115286333383933094391011895826271861147092515946324027353793882585663731109327997299528696965809501859474420984858825078436262403030639914287640412784209133849848630640474876696697140308119402140407031436298581913568822052241373646620732220833424510721917270462441536174764812777029074487927920059070198167186525731273831071310843738294832213251252411280717483056952823753576471473463926772033056051253827324709084952005811597275908786813146498415041749710556622810792794622156592012665575243459238726639850754926605726563079666495201561240406555987382229772194481848969183386652124863709514296248331318555775503654760861003296536208966282849641864471126690682581575259608822606031216263126259171017651786696685609772184675156270336897464047780238031494676635044690105918500917231513488568239548355193566629318930179618879832014284789315233882812913814535232535007390697003647396252072942877419082303339279940666810357342997632304352829019152509978423846715355346223069703406326240196825289898391192017281393255073383825952724796276750752378629964395996154388094413782080813240754430764368338521015372551437293272357536983622952518242041859703369606314861849673127563779393386950590284594849812944863539103906011705950531611737266902172342763726144626585191092102811781392520296878411645309142005586704741071133596622932393622310408308235965670745696225452040553760540619864893573427382915853159244955881601039295742869891944630964152103346040947277995702278033418154087820957997684276536568450199896138997102705397640014549834580543726158100665542002310600770617683835215620173971589740839026406906954564125804580935876617125609708821190573454738724524678625941432833822330965833972669578527897605296468399941595213474030132575009687586563773046833037638670574668398004923379690716862089683220307845746443961794639323569968966846178008133470815970310436148487009077536457557887236305389555835941877273749940410897837742718407863661727380295592692156595618153893824224309622473741943783473557144144035804903871116036066982042874361303770794080952007889159939574916406583331346885385419723453238645892969589355629628745100207255720607089072743469719719256021631081010626723545503236103030324891295395753553487427436342296298798760269085772584614521159476606914844595590508800995392008864207037226983529681615833078236862415207119048643850228767545522802110377394067297393685328982402311547293873942258869056075568875199616606991973450554925852609817059422175728670385315347228357980958836682483149585977718228475538449037966073707375043591641216162626337003813839909111950967514772705537672893374246148187201956936004762955319155016233617096380104068447258431224242423359499394228868511602486980484382784912938871564361619897355699461484251433526067469492251683338452629019016546165206765441541627430336756989732151533710545979171500101513104812667871790073995965131636078523938796596642857506427047391124848015159314985774353501593723096461590571530180428196927343406250586421469036726562197883087562187607628571115423078905869973290767445938973793807168948965076218041377588399650573460017608360109166337870875189332568721136729841472068479971100120100120173248145837432481909027242072822687381409437550123055894877086768360704423915330821781800822195516958254967528222490329744252343857603032503984753962761443865404793904074784290032462148368208128923488573155219803617960448866787321231756421507054919741345842915214849472862698213429906868955336625131851850681129635252154131288398212849736360113994097897483740861459765379783883546425932827507883086061233187238467136692314526024263459923706300833403983304463780936380718204008700519435445889258369144553555461766024279857590790450163934462799967889824519466108185358711394808068363179196448043369999052194798938305732252394398651297282085198501438185467282829948802545844119876250296525369725496445412850733152125633306101128975254872750956249745617765068341191437890790376922028246932239099830524247397828537983191391852767872983357768694011944667478778558707559784999102533826303777544593698149323020875146687605773621949201781428722123946825782710647711337466325062858984755850606996210742801088427224678584769943119345688906161348699105552195365478166627211615162201796423832553158252708853502511521995575443196331769263760200653122485875088234776223144522987736060890847991664287115146317099329387121815362407137886157993999410988234566957977672582430913168081394979650017307472583753077108455781570363870518766806311655103880741769770892878280165202442001213263668053457647680411894569159378848871089060226023635805907324063725582042388699900566156764435171008337120427609860670096435620251819580928999357089389156498192975933433106884991271427518554779215319722669308155316804359319250739344822106707298710879700936319937047328457628757338664748536602790908253671429590697275336784560564406377661692880415621462100986709658403895679720033884128193647415298769350536642975946217000907211418037168565764384733577309806464854116468765446601990712503401150910292025389230010555315219120089561923741763065199240142410510055114392368628235771319452402184646827615367467698485690011750527325667945518883000410035907628974726809546048010743540341914746540650170592760174050064676287361662118668748264863177795320697205069343333346510492963427267824464878405154364515029912104915696854302634021019179440764351546549608277466183550593211427609282721488296418023743041231774105283896949494669496338525484480094060923857497110106824136311931350714605995492260317411211379675116249525657248834479874753735864433251510575375227282099359162675260682839620535288363731587342863111776859055736342257001025426612021062537985203001167771479601113897090515663515598468256525479408427777872358539276368156754202950556851415455879997637849265163222972993434315124892627657914361877448867690349840484721114886060953107943209358135270475822753427130431814565090512594713958148005948196143927371772702498916376734742910574249799134891132812468542354329364005901491507066375986499470592562801505188888434198964117682064330835554117317910058456827493945497385013065218897451086181051441833447099799250288984470962809592285407375655371251508551427768404800182597959779738666956494468340957657895787053845798915992691962028139360731313419122424209639813659799096350803823005401283020625537624960725345351885573942635209137326208665309712991126021602219907289650994653031265157534794555925793575495973823119810024721970302810365844730637582641324734248303731503352527716204353998968448639166209080066588677672816468837971287015757266345381287471793376631043198427047328895730862988602227418833948288808807626562458747060237716194767571711133146316893532028558302810503545341653935371965493229689777504827787161401969377793895213625065382875712400836595298068049023427919430486145991242308997416995455890989028995800277310515480149975708790150684656496023898941093414593336117718310904618120685380096759782362961652684651575432847115712088773087742138264050838946860354601657081662645927392574139517235340633315103418439994750277809612523567932531626336394790889438694099716199100237161345281575559638649135239672351104690452135096208939068260117896986894850880108347509143795647707969533797764371022432821187281718926208286874901823851999449694692298971527815559947775234406828897301947579567380080250943430540746399129443868086545288210298475915207458518265057354588767972349337267770202148446028222651476792333711114168175449542328696842229311838452165831787737695416567606365416372196774885555127489127468806134469893877431390419373114883596846434574258210999416454250113795009253589365648210815446139239712556863535307505743798875774498583168833664900906226989834902903559205166124528838509425084672478089605399646663119885702578116879127036951095555998989488098051773282347470594332063267494975549643138399576960814712005653184176914649704938254048261301919349676428992653537507838238378839832071569068640486204234842718235702164537408878118904981051217970627267993841780498749817097983469900187944950333998929327682617693662291555490788746695723973453395003253384528497092186923453606398342916293047106518932974024582413467086252829066335261180550255789266301075086506400051299581035490733367108099321375853864877753488720105251370744505517415829887389664349475286625092724126794282387052997769495636366653598733974148335568766139555261275842676240969383456002569556493668801257409571357700136597004313091464844162250867247480924835182524813283626153723075001086579685142970972035016075278242698467997948222899773846520583029599463353701627373919761010790272321632854646953712020683247237138542310089563697379876299817250838654012739682021275487312164663458316841629998633949879468099979128626688559744387464583271184533482981836614617329621709542361636615218864265498553804466724239667412078313959761366165097897967334386714803107589210849319417737247339263044822356490281651166624220665258077119238714026392985252439212411570904299418313002208840370853225996305556745127330497632041091213685872053863055860714934024827979385378629374615014565656234580347060800772367132131318595459906016432212083807131560166407718620022367570249325143214636384437674734712195583674916759173782309683247221248617628501782053054133579873222232840446861555043022286158188823571539991300063856393663820001274066912142047745631810793675242107056629710140702803503662584703399616412489663006236635971412993625700638085266349499719766338417848629446334453516604714459164762090432914965625141827010167451916031194875388747722444355988055134298263433014874811347639402176276022069578513452038077191745666237122644140488578148458777356021353143566622787007691535076233062049691676762922254350433732862782722810082664791954171437714669869973751067809587170055558661672662706893321064839949274799144411521957443968513102754331264938943656437431137466024288018107584392442631915824292057859649277241246268034157096723399920091371560426464311204575827654102835283105761714870534816475823547957312394130001948275058620638914178745403248108558093169942039599034536195435102159089965335926906731355685820596199947516103838095714034868514699180465496686502140029449612180122159574753636050116655757632243475740910787332489681049352339602274372392258759567464559944272683271439328292577168718059451923420401829477638642070857759924994057021471381570282971622028298946013603520595008613943271103251367462449508950075686947457161768657384741899475809657698782788738785138585427290534385925021706804430000556143404750782610282749457883131297733874343245361933197135789867945137134335151463501803403663715805340998001884616553827472017217640213580253941608991512037009015302508510517061373609579228743452624106423466965767515407191027973562107969199225537604894439711675103508382405582530734748453676875479753498585450711323648934419736817077482150853031528981345732611008224370563692010740846522934993464614482828284401024168706720889773472293317546322910797739212085340052516346263225816116344012563003965898168534010818145721583577132098615062426569692115007906773563790261287046103285862334524458848655534440680843278686606964678472469167692608259805517015012421689861780671944287269082132878069339740919597204249408891523828277375393368590966296505757560776772535452314043521473821565372787830097556190747546352493899492666242916019767622586016444081847167963763622832028518405584350226833842457634766169154268841864323434995382292685902945532854445945058614505439255206406921468328157483186564772725374988431015829260995195270168397035451301230980691008861085414081538241119595818790022878828068294834255143585598036747602907802907485895288785920713097366785354202434556111286162045368670874433093329658003097448742250139368606748372808217034298349664558678337748380910570742698385179354361563329193139400315718505321001386808341231871783112602645491890201355909441606407643374637718099841682189247869627970316626287214371092167242140211099602572877434452877681563627251395099712040050033172244233439901087288139989877520484700368104200252139937274839363105304833746681785823588140479577178945582582078878704214572137886872665685530015524493324078627150435831674958666750328117441129444475089203552827474299857634761020500975840520698249787274023955390850348014282837682397711033061579986763614537677659266728228552005006797632335630468518949953043781930473331301279601931889631607041941863927557214616938433083304026135099373947094365272118529828247323070690762413756902644127952711143119551675062152370632956664185306266751729588945620913942669688553561306265879250829349780223250221341529561350566286273432076838707214806892002587824035105756863299842278155523273486291019615084362800563518148888873198350192925266824873122049631877159747228148388718605913266362200343879370712379840365707551856733461853908536271396571023431559771417434248409138334385597048660486382429163518802876881234848545174452741607408787526965318951547316801106659835078727965511113796764004911116936016121733141866427301799232231064148604113087907612156978211646746922430572545081594315332374053460901321888199231967068074196544016696578789452525920414951525061842393264462455532720085721669628007689737731630099961905930148584166613125849485153112918180205501335953461213812906588877757748622432831804471571023674084789324925097191214339962624185243956084385513269529070878950656438133635096087311764451733485928025065545069516753704489831383623162470306337637338290711761794990630931871654598392208578544163833805162207689085290336592965044047611816483077611396010865472296755901182859139767020361386982941552551705767859699066860645033157339153481120792872530495731128654160200371643022955393526888848640408967200992769659701859075060445586324567567000068021697722271377736196064496168189824122498550460498070636357623561953771930416779245457525250955591655458348781369721947816328704133242141042623559105691348978049603801694125558234476278110899741047521635043757659292486109016286203727449652541124387857235943898858782675483905123115520518190324615181618779768552205982116991128372799952451008096625244098005144570769388446975911677587871099404672883628416895720216976278191498944789010497577317010978204931533029191340987742895546008385456016805457093913692669816321190265136578294179201241827855980344535641329168061809957591308151092775804617180735385427638748959466931516662769815351923490618340686976555268790168875761993307084658296287896341934847646566279497671898883680401282169975922389229614574087671883790247979517386087119477710629288550393372465305219048613292107379485817839043686494482411067298694898625930819930876270240462113057539307011672521788178943884774813498778073813612048499518394549754438380444739848069086948859240373944288720391141971684167397294562486843112643047639631280242218372284458640722915437431909706318080949579881361906076644212659821620776374204485486862278219138805464629016977570227028639346050282889912469023037361254462122771403847075528387294971496656130176201299538024936355974721864283692450070940346905725362704510731497044743180269834098722888432061341295086969895270898209968616249912613375007053217576991476212967980865665027387965595742535659598497249692677630063578497182906110034323280407267397709056769663383794066203957132647674482990429011594385282806857904485624632717757408402202819875403208557858660415746383568887528739037100234441856093278611198490697651206468481104422654861853947384493067425917151877899010063454276407668824896778002160349444050275644959373991944882310326856353050814302937634451161423875529786211358614341856469528250033457942528737377671257202006476484030465593037887139380018326027275356017095726836453725571711803713366862504411309110862563988722444039615515141881412020169998661853635585506213518839807620365600746828881501781642400655043717802090178675937246650750568093556693395086543918874620774505994306085157465417163196636645097733533393205275659156275192204830718556320088440994737743410296338838282151839502786014855116886576312688917394466302630043478122404146390381194695565901833602474319136964030148456172159673802749334896939314461124706767339035405704429758491295185581300123095224343443490935581288517600131475927410446326224811427618316554094283764832371950886624439548968443517219071321833628980521199161592469892413002100570297025192548803743982941497278180412922852563870679888842404969524562397267464916000937896360568900507411285611127290959237662607235223977661459248305175041396107729845820001908291965454788759210100663482857980301520146222492592205201321712611399414782778146766754173813386491984682412180411370688403089805763751273716633114838105845878372466958941908182768492442589342372180414765576957055615969911389932797459529551241905940456341787565909370531770125795756185096483799133169721688676665847551689985593715665271745986321692237178178083857587018190929171147365820746430953023057483642304611648618422674745194149477061053625907581676067979402070307111464645931652601927280405248127831124596736972412097350968584776196480623211082053804535849362946907555496327270410835603910254563137906749026119325061038038120899389284483159020309741788608221721210824274455767065166361020154356476950216082230973329662003074622587330744046273545958536751169366331230270649402042474778165687955158865238457761170792516678950698120862179582270372010259881588806893691332034598846513391844919349207894836740619673499810634525753288169641302549493535044708825897903554289203563019290978764420755409907430097961840142963257998024557728550137069808212095057271668720306778210517143175040119165419572061763302826761761583854227169000050482031986872580581202134744742929072109880179362668249360949132987358240069767070849124038631824142313707422678717520790446689340964995546312798578555790075510619075822913191482923095664116934127747834176720920200952432709933873226989705480003311767276968582484176520195400154677924107368684004755704313146258819388494753066506616338278606001574414836641594493585820163338521571233287529317763153884720090683117038956281637255696949180432427713457489950729581551112098325631035803849702653855655762273146064875507265549686267180035965503833263477510254745944200101159615395058967436955844786888584746928932633760736161093925567772321697665535518049755755362212534827562858578368296246984777993622295838136016618030017317748424111103880619043558245751294999397770879781090246260286529138673858549794157030053352052608576721514443446085437113457503980260817954109065729337162234289161422503962198294763079968695145692490781789418727830436206769281661612028548146001256465533017512480231462554109856022575840872013600251513769421608114222142122097254575365688364753489764767550846173498259370384642551443454853862372892469140213528512227739423725813492173624136503949979955011324240532873638821815304657411633660097089478428186170842909218270211539824811647328595999356182167460602528343266192683418529089608856308431025637905318304430982924218276171792997077695792113532593985652403354472625292837991845659836455090679593941332884122139709758777185805158762546235662505756342228032682452713677442459868032347519793053104025394825109803087495951539412113194385354527892403622232392487647963602325383368317461584673366000040722023127449931260891968893275497826697247254710484348937506696844544478661302746355406579135357308271465982898725231462976631109177617810065632792988039373722321338132663200238554321121108695889587399074094678127348812112747503235560409781783909070933925449546412150081210322385876209287097067142314852549766857543372161488847483764544425876268904954500183445692292791123772961529887208674195932414681373783708098581477812072226200154462701472034097003853951516158585436629238092121635479465846393179755932430095017596279926850212220894791470907941659643658021656410150975078190444370040452831534766682268401273892930298862371890531931104266840831122424018275820923683518117946449986168052502522534693337085969256584056343225686780258991548326013590555199191144802806225819453275389322193727463369083525366895920193582858359050261014864811041695348472923117852015765195867333820090288419786799166172953412866192323290826014688530023158010763462325152462799273499782195931665328721564311928234705468901969258448045652768918826386571526593134011120487727356137847255066753362409059461134110045207890643213570527037416675223342675757782571965793835487060694557300942572572581600769808011583930902598393196524180575374645163287132391304353877584257540664192372602309428750562648124802542769062717502677082691269432264500038646307555349070763597581432981920457748451793336324435584424675641970883508915727077297863079900675969160176961246271406895692597118777291348754015518919563823409767659039245507485489714686582656414198703046446691899103190693690387567070895938157399673643773806016359333281852587017349876153310086113651778062442737629683491557239746948796153729924626662294006170508262450913921477598555509308338765234440682933849472191814400574063934736928141605244320358730768059425707550459489268181521750356673587302104212941648735398237098269818022159276173848195553760410813114747061000849881501045683585906994524541665365393784831471799469058154433490562351759932173607626558842187200456279887167766170208809037538971854028307828368570315326880938112344207447837012953058351034144773648766003054799531180266715311338464149824287814252113135473184092830148095343838640124675244800267917854350931261240994087649708069547597390826181147343352234475623826540208957586943722985478271391701246491824323101932913411489111257397856764910997349574703099580701413048029829523084856216980943631990608569985870116886701870328243708895310767280582708295827061869985050645075433968564092270116396577940209383357063719217766132049823428627645337900950866832890841989486610151459861184515784854790468812407089192884689522035936543203853303456971311354996675579564966855405548831459133526993140181080226477109498723060531536313642068629940962676683423293922007517384133805059906621456255892944320391463940061195686548714369756410737942190379490154977117378052399164410795090304782396439844156103634225012796358982312426212600541127946688141963114192872176301795202227522923188327822755706606856031397860167779044257728257420483350433363947455630231005702168847787062934274395035553295451815022599911612477480935973960884303177913190451941756071560906206146290411548655263434840941436872313647195356081809519181931267955753450962868526079143523834917043246499287571610019243675777535343478573003989492032269506545069129766696449390771089183366305100768815570913145113004433616395070297844841705051156242421730726877420696184988111198248941219544771545154084162256164353808896386375835820443190006960633588662990082985541249761004449252444103655583251706250171638109507805366673153662489122966857418037211411917909555284892794643729353000595965868717275638362297662383248380924429426259154089300802618355775046978841169432487291184178667738552636512536123561759749165357390712165087026113190734450508282233676366421216847666108703385622465566048327989508232997358610227839148280837472465268909018649406399371518714713091720056492136528494406131689994721739816980821803100615428566228559485446163218241019632274868986643697566475979757467108901205220403635947452660708435894314243293394892274786689331167985087292791365916020765721505308703467134730836138845765913176560130410735075477945187400397281584466900906062667102899407516411279005833459388786006736974509509047170905758912106587263562344828667241976643407635089004760740485543642131103003594451683194158173305671206512176692686979479562027351464093800245450326252988280624555123997767047339787686492857070936355908908172130767226986134678809983114092447723599691397819222044290178844329399338435152980595073210245192114387006777555412955730663187178664173813639785284167597335797297704229294848132561566972042929640954312196177969122986931305598096641676224625331192683689846602562871985404247598694804983251295717856099846204081946760383636152477392326476238505498654776368351787147960941087883156296750707276884323337086132047857921469626426621267163391978822444975105076933273778741542969011742659698724986948623760911567681695718037413139936783649139013582714252659501469232650203426488661830287055361307407700782122387475041165430377391006278042906370826941644160153892085137215944480854298958958409030217915270541542527636742979375320035245093248838114382775577567939344809349467042867203682260908656278600665362005535266520766700405596713595117278453640007607829421027313663567227433269426909847885455233704088275633180610354116883179901749886780078348070412766313712183871958098334666666084088261189933584030739660356230016042158906287284729417316945476769815381882928976238518921917019539936376552721434317565224584247620144105590527530928258484853840195665700248332859085739101193780102281770208781758534204809913778563837823219541862403626835053560634325305143179422741983416041273996635578791515562170498580979610929036382589523726728888930384765513491095641792758983552867026222240216324287314027516795295703046451599819978689918285323081965409172617422788223528983715172731862974764454179835837099481831812357316701188877151386832118551332844765448014078956951948605348733001605238139792427205204961154381069385831822499830560399525279039051365151105450820654937096539636994540254400302695124804199396032302385470992019840872674177299062216216714574058361614751436826473450961131969674379060728095412351448972281762164695982369668185928159347763853585483208189278246616983620517166546468954125831273327892703678148500569743083782353509870664010508155125170784898416047951175459484359370757094799424634040868742618430071506289157912719316056300175270946365869296645925468014401899853957704159814662990538414798359212012126539974172960602524544689059662071451640595202366418557869231028847412375232714190747074964536283019286388070846006922063528372010471060757902015005176195446620399671434202673405984914310667545050395440242301925434827211785616375912999507225799681100252088879356427697891943904929368377698021123788173476859886336702233097716550386449096403772051726011909907380933079442282273501306289937736969632896757960342317563569586483166998447526895565214124241006673285924512659933555303077226972613174318814014749649517283727983472468993562059619677930527315919979335275643221673777696548780059971869444373800020546732810776591076889828246697846722272012671177973211039958488552090618881944244966480980194691317410068079265646642623589211156898244576298659003798655764227017034952160988835953540178658847412727324194748857073106005005072414738357539800277754707126091375511860026697906237147174352881633976984834542822266156702124671778912423759085521362545978537408378629510029470907636378104583712783266642677639386560726626731364066364010666527325836832849052541760973143367687806491946419824358231550217881094067981078989382593250873931042196637843060299451717216502482227551635456663282288339471402285094156047926933198595336373786519303784810476224144022191704537114081674055823727934746729468942711067074347561761588618150327790698283312722784504804285127115657003421639004088036166633539134549729666250433603019226214803598857090308954725538003054720189242273276578062979921521957050419056918785123506205825824035097894366522762539439466577579339579193133783702823785860589108422835269538217668832506713895672009180791525301106293097318439627858605331522742619502425748141808537661120023924798163175535014847931648634761496729047759432685410284496557650522514482349973269925473558518582809931779026300658126598484180116441424786935359747441880173790729668141811608682164918527877915993344106028346654681940098129898468101998598364512590475811981024556688429968684701020243719268013642065691748333173868217275480148510633776300430807564571159055043317393641194873477419141249620901569675216067178250682145789344812634915216962234984830718839387807776419215542082490002036168639699003886528192358036895222386808999241347115841075866904651109932040678809106947827882781257831727637592785430247969838396303407098463007036332077021164016388584217537612445657921495580932571585076818127852772831028553371038576709040723736052105634093574498244920108177764659317088227458170704016219075907245983903502330901874784956742926028261310358098462290638633392111907408556897913421267702818258998178347118291254222293356154838184901715834064646948712102793431268326093746955195594550144436634362042131684386932904129669978963825441528214956616983612603467018752406610592364001022764362239731782729881975517627518629789329816397210601834719200347529051356670190407041561743601126485583076144638730407834926444094529674530385081759337097250253011393147054571577645306560949241968081106809135627063616853242034821464538264463033011112435268339547274800029431914109002397345681004473809531725141534364633284607161690025823834953115723188579532504421793739230396983046259432068415311860041489772480445318929063472152755338986147465516770815531158028949177077295060202251457284901646071924936349508616110310701966731003354856882458227283564139385813668276638382960632401004634258687309009363745029092699117968227498009594124815268710595118114066979193521365720061554080620733348123076592645035509555562727049980424943364934016212425455053609033594685025781847941029344576301676077660124449668388015858200121754857369866657393010382321185023269227287238031271348412793245675528011463704840015587091269400570837505669912620734713779978079722258595047247401218106610728779672382977286532148929540226740193210902780094613067630797667318791144779012459546144548284407025797725540127264870620303575549508678030305241372349633668313731668414420333874773006522023171449749818631757976374375675372581002260659337504839385521099705879027653590704085129386626839747221863115562721912123207054060751170260923608169228439937244568654704320923687817191208568361145309555405670272524303500863033700727650446154661391547683568808546891231790059798223930614125902025617773149145671472016585330986032878442585152630938554855553922497350094327686491003267641567324992903390288761389212737432130344394277942622612004496956924647131628853037020813756209173322616639639467726036671090656041900390098029887709475010773128627963856224892218143646295857451864137265694133092068280701363575673585683706124364889897629323142695586749952946599090919599431781392793236315138896906888307376932318220511241252398908128917187018043068648391380308437993955679559039499547831429288535691478414011027643400144499578031496428850807247452584077349879817824083191656853236988788313145012500451736859102741649805063736491623888355861863058293872040050624299559120955351294079493280326823114296466255264709789872953930895333492238035744618697641942132183559988017973427402016382061186483884340052627267768589333499163141248504728853853646763795701838104621769876120181053913265249136757037605446289178417816818236453032661741899114271619839661909358903182937390622464346327088231028520548831106620267991914153876640002982093598171646570073656234982396881056260637839745949402347001192392385178396968190888517536177592442622465814387527256663798309893315839100001220779429065184397410002219586405477519785927859685815025711274066767457511665638542635081168063371939303647500033166843609899668808649837561912405908372983175574004500646269520017103070904064785540197355481772463625766379486538772962784830353332585479876932152161421319308157438563781819015024154611939327087715863679664426354875244962917723194928133132334729674683022386858306624724441505713891304035397412026725264457665379881565216646953246697138622041910383585768438295954409652041047302345859413871056723626703392140125412909792734559808014501336392884474045480559161450194729326475644377621400428531540415433589765754443665690724153921626786928707195259674516663471244507928502761194682243092045338817369895207955019283489679233546123118413984593654580098234809269386719431374254338047092786361028811026912677690834164657691968908345504003488352785292337680851609328698087948235092593892004196069475633875939374215298217586822011990374647025256189322742372986029978452672499122177554696884900017411589901066126503247586572815329923394862749596718188459140466025916630021075567277212508999599464346416690891064921416263716330418493559842471360884629412026766130170196402762639765634094120464775002161393731043379831916172960635095118321017198832324700982968363336040409921244898534499181484037290972311332887576640325755006975325166623284141975865491564931052497330542357776760052700208147863676189290946891661218189325569357675887937258201375811441608641534743845903639103274402556484215390616397365923366752101046575832758816308872697103081753947353893724582920021855845427980542420017224974418426963884365747786540456114347440300470832662109462954568299434774712189121891686735118618407634113397148728568400780167345956712540891275943060151290032122006053344320849125899016125203944786319325675517655397076528888272093194206348720426284156829757249648283063717227350392437689852936528644866022361428791801317997765220399152218531031499279088395682298465498430614898150353128914105674841245834432591129657165072990529745087418437171209485699750967669092033533038680156842797829596361414798006470456691720455467488142439430091505491243663745750357559413117088711542517184091396774238984775176961431992395232287897398583200293825382675321791212999836334176397154346631498204157929242128722569887473719004684940997156822197209668950810161056142391654522376975799577738995067293803495098258892542032347759475298663216965861151028901252902512680724585373992389793088900372835715825711425858165156084931009228067429610897972995370353705682925990473733745598213040955999241923720381776982410820119102434510364183894487412965587169924996909770977112135312585434027518459816632017547980352709057817711632862296139791114477989932006181721436671453297462262743381445882198760403482308033082033305991116659819668737933265405582406587258304572397570599427803720751798576057043355104571990894483901792599556195896483811452720181497842520960235975924280317149289133745916558748677037973141036204582903538381457704758122160174559121459434847627909674663744550292424049626900262173693779479508747644461736638528926416045767407592164720365490187366159168329300593347224616882337763077695591488254542074003691621129261978583628130334309389578990823924063481664127224709028411754223954813155058775305190403296625238994783942233438920237042946939265057526998719227426022814368433084196307975424231851356634852116221306850889792261157885395318396332407015348049735876199338688374809561283042091979067359515620252230125302437978904197490215879984744910373486518557790568525809691966105013214879499980334477384272412913486674908685906348359510553628561736180234616744966164793789731104076074508258828854836164475912338128310664097085089374139621425619311287179956315531121736890495811771432645326609304011790633432894930920541860768706505321031924338708397654407353720673319022188755739110286844307509371991599999873119630655513236633181579869719387284613996973604049171323430016874129129946976023185106554276897256837784690900480034104897660484876807080914389425978514013002325235764260802458169982801542693653346346552131358116230935332289953870322202114328114563359905021586006677828029773676684541222421393954364493039354565823749919142347548357401865004451783344409334872124250663487275484424960712398676163361442921050625534149625169946834018720747133521807056560092038555549901663578242747968535248455476147576211463903114270791219694084623613689738214011770626038405780327834170043268436047503416348650644084975581269788867256938154105030771978959384939739442927586972114660117892434354665125654798203931754861647651026963364950205088268708734724358511688284688277005415874920854761385746461975433278115144551976212184547830335184034111474988938386783177246145600097392647021720180810039974823046536180358581329398768716316800655665308670824858024836041674564955235683210434466818608922437567209096606169455181015350219446501413459220016498769011402117784351990110010014205235431619867931063832360738720203510226194088972768407865048530924178152092560288057608096560320024088933188224082770959020676013982842395190349843560429358173965211088543330892548527126080967822643187961441419726319280047843683729009606453918880007216360941597458014277763046493758503751849421767086942767195928046364468951046971984532150086206698234715081838978854061393653860472393867449217185972311776549151372240391601231282093512192720713238233906666735642948884102261724079260758505597646072924218964521728449086639888657088273410788936601813137590807889262051683137779408549597819389571843813454481101122485618291424767940981843263843556358267163875587870172190550251920228900272685192220060078077476073374872948129822687754422406750129161721590217565769841282136129809904163799958747759940100013597772475819141425128331009870831020826167289504171115608955202398545977050141333309857784677208163709840878650041896965027509940900398452139447819783231067163787325178161105762616185639993552874257226483487662076389480882392938904977656146857038522004001585749408523058567092305721952259025979808193979879381872788404662199939437257827229386658510943311135443952294424128848471942147228760573575501375344241646798436256606479593477684382603056818874017934526752772370679718161444271770388009092766868959316140984419555481367330371149049046556913658069125438144568511300750368019755925876848603776436678664544012129266301053305015890917331858468849849252535944592187049846688144974559640659655996693717526129684521865661331959059593876614941740534224545844844084772761625468413447043157500895207591060410027708176011691249394183065246794912927000793213325631360689462078087542961573217532496610647801293700349160910772850913180206807601719163050844464846540884150815754707274437011544867058594290869062584652645518293298761890145934529509677631812551345427875055314871004249946540378918163017910451027965922046543656878538002893824502108104239896386684267540696551527002240701520442976013864664796727738042658374222391653391437121116945102575621731999070386880394220622612679985491438496166737910874931846481770531802176660333192013926860900907184316995931198126640115485872442888449078171000691901850539921701590427790560840444480401725384209275321101801339073391943210389964073142095360389546722218004116888306488135152567014520266901486510806048495838627219591320474613804195845959515246445781096337833208283862188211678347998207459926582196254092370413276616868867501880368898369448342916445332664723243980805264958560800770802037471634408426518752254236944790345317124215644871146249355788305269143302171085227733832340688356683403547145487457001621134741171699484895887377248295592966863425871138339410263886742594747241239981199530464296066699535632398490485237977359648183620754756314582182802068339056567192519081700736751126154958629949603518153474805905177486442895587348178430983485060142693730199998481395736319341698216593762700650308359639327015103549180360520022955689843625522967172659085771918975133504485909019100769468768821487737958703201406577827905881250461122793578763921424238346446050905545780088683048601432456756077745713108725243374032869723491892400175922393810401058976370766504565300829678888576148913219411743172285646501505516898000697216114599381462118054409378740572000084521617988336917868777364447576368917483956079358230176398340771600550917368300680731043509628840615811915430562093686935330453670585952278502489436214172212370766136896224452423467580104558689941562021251223566866120564551592798092831333931737389564856175453063338901644374560169850735488242789022387866308607061242211723716638888179093574656647618145354195935382854554910985442224974550770663382600148350637281822892630066484721999756669722327570833387064281090596835600541988641161090480529056402134368328046733157933142112134000452020081104615707994218190597179839854914327512924737316475031820481776502788436429651954003111927242390368530942487159092289169502016285399308817446953272366170372094859056333120701040950841342670324665625818984351866102385912318860191166607299606555015428426324649833601046167629721574657278998417345896228935457054252662823337884652908884667701048637620897039185591377645974535725648960971056116057055309102056442962310293239178324353023450572418089572313525587239547433038751247071845585289482501328040898261150973596763546324242100792157092411431802770399311538060396688663108049032861079415820521420097761462984232098298848567626381073621641393920494802700084752802714542829628758901366269112252096447699621721178894421096836230558970017788883526639760433118056789762001212427229873837478668134653976258651148704198406946203389057471215556892832561056552416414201162639799823517595640295398529464772377337258050954916020962276281844840613531093841099033884393337045744255901325184698994170654152567465649302935554083586381935831628282631835938966625184836396988933342118269253091528252588047587593718544136932126361637218154574296059608304289743763982076883503166926054829734226901029866301975597024562663588013497893783294576291498555510261577059145268419485870690493384717462532609545719723505206206340890296750332701702086706813289889882795256087718744047307006042236098806598549888856460064971583768750772175313126607132139503498838987793062978587474628434285898309606324280411330288044197744728384537788906375867073361564717375063716633442551450004973533647113812464112372596008810126303752002760340977506589292712326954664785021148949190126496582902781118952197335106903869372871595676894158273661714094215780752235561849218072045474786038921300693043426232646281407514428356499874098738353481998093780789167662984947922445846048141431949581007188182616574180276182668972307917652200440838587654706047621073426915041571861978116583812309223368663806147324877058401940437335096477034078687812942654778001056218331046008068821516328271234142531652466225816500322994174013137445139852188058615683942920731946970647438524944332082840743796023845882981693733285395316397626313840325436348120192735445848957919985731737482149832444325268501753155664012259967044897812803452308001580195238645687746300609135004463030661456271526392758187894903293202117697655146622263826461814760142889654558579045898175230446107683813585893290361308646786797638206871542509644041577601622918369866322678447222359822346266707621067252170763198164825974700924554532430228812751250891526835457326767209195751089463449246350286164968717730334033085375760987770900565531235028091968481535713477953041605734306683106843322482968886046909571285841216485193849029772750423128655658803242675157583755637064709578125332402429794331810553743009223593576472069241867706863797297257261403467470677486119623060605159591608529690047801821144489826686056538954400549852413705476638752112113018322185765508243255024417222504673262185061574706695586061818673523042568229012516102823067259728924178337936093599893998690577007439873514506623642602985226983599359981765587724303038481481217131267773432605203381071595321776823623487893111688977948856361640681374572019908384844035127041064578822372337845635396167297925165808818104224185010727641141797371071893286678137510561235161201424551643497189327160242532844893830508820183159694312467264562657542048007381109042238660996899369444137205481038458173490259612947690860002100875163324426496013530335511526895583597412887439472562539092481028207121546762269150345349871352382926540094941858857430545354259388088277724642776521145626759935332534527371531714858357677577076579560007950124701554081942964321914023328440970779443120664322683153413036559093198082481060538853903394788817646804076918708073900819453430362669498042560539168260159422912104339273141992544011665188134855326882944007420910334332625302383899894533631914584350238341405516863897848524132741485672076188085391803324791214895626902618973528263890979062692544304716119561957549362124188175843790925875291882866067046422175370820241223698521386551068860148289644575893070713956593376998082426326193320985341330061901327118782692138324812987253266186378991541533200753989132084843445141767519793911749486222634401541813531454515897338599900896093885369536569180788582035058574891805904390505838682864958837859163621939164464308126384048475267890036234295934237978571195140130813754247125394332363256229263174771309465638142542761276754396320798641648727806044768241412120272967912516798571479474015312949766351754743879647775150748397080376236434196487643900019631793096082795546268698298342293972119884080518502890150661455259840544274205053842336849720747564295923486722020968061188276238351032423081716461183785853975162776704564691072553489963329057888036075420421069227545574031012726682250830624059933739278093518640695998319799044091868945467229774574528298063870124552816435720853524022270154390441210045990706987315624586740382595335019771490193619560012520421640527899600073422825968526360003399533713467578261454397977594849874576208971820172396105043262462570336085524687730470371842759924572439009661204150216612280409340355422636309888295952763555393517786966423423271714481368738816049935992639069658691194940645605083132228288111277025219911648632808773297520024461108401590475327461085469395474768294205866663365436890018294887980055097373445061997643670976346926258974130262742320656295629409920938716159770516966021955137576035122732792298156165226389561033025432954654802717204550180779591465706000999892756414087562126331598108524989667080197490803316355661541229866126395822940898044855504843285480594956801172123018027982401979384632366461211419093497801579202498133291079322694771868300407007117745403381238215769349771048385033287370065834647471853539929358412654439450266830885363384311937698261916615525997474103390316456170161454745513300621713600355873278281248386454774629952995711094897434943411140727684949174079308985815675119229494481388713368948297085505100784973327095490033762176347661822135712627581928905253664003277642833028556977400657012529828134167811986161521748198740748393379433464758371817812289680542746629040594582654163490866654123129900399283924276877005760817566787981555364061849306535488284818851037937108035132431837166792884153090936591548384727916001320784822808851029943537854668373418763819666357722490370768173287718946561837415058475042406443837576429368013157610275121267275707931926804487193770522194180154246062359177085280521537845951371064932912965160008459084385407143975296221918402168030058418774456335562524977907708606798117260264911714608872003287015002422896356024229896650953971160107371482216173005355502614560682976140756235641488227662283352894739694716819443910215279705638926877484330359006400112251603894817848366051584509611916763287891180848107288574650546272537274088498195288616047921016614895287928931850924786297021839765746434398860926002114906915305154293725451775593879116702368604821415333331192316554824450954786141078540751194208767131450001455202456180620475772674939916650900868366768595758969523702181546461232025661893835684017371918933070571533054436724695004622222804135940125517804039918024271562377387730369640540082210370939889301444247887715475595932377173264789459139403501578438407276364600340324922147859359389434013688099704941479695441728702300869270785800299158240089279790892767412733841568419888392129346779210497612796522785235279062253401103362738432360800619935396884572297650772565188495353370661538832397082978443195497186201196056633199994219079909251680900100441314632346380095682263318455794325510288466952953193969450028157661762947862773580613945461332320673499061039191749905776382598009387525429482057360550296235678583758823245915006833582356145267835065541978863723288382906612072923674043608953146527982401829658664936847269874983952458101243788485142411992767265819544899384278747888142799277367007035532027682657909405653840452983341108250374279841466335049756392841554982014645353763434705669873308572934200990979426957864828299396275305754080534982369125172807491711046046332410650601420274471669602457509864638667542588858186044673163321489625934412816831763651574768293406855158824175090267647138157758977915918098821648207172885049179247726067600853643975835703146981941313885725248014124560218769008706333841077294169849517606968580049295239150057152451600754053515529114698880296099892259768171299003231129954342124859900248437310149091844555417860159158226528753931396956507001530082186589982668622010104593133749082368722851127940445520929102503352786446538299540694991313781907520233590735385436036510779482133302307504826663263717419801860563465088569175113667297668200651287314310634522933140615102381702557331282963121325121415574823416180266290516404471143718024572226870237747190968350905163522582501086530808053719580866891366365616757735882673193181879379047524073721526385985711093700094586649374229483903259008210791879954050006112279743167452102384623559251118854444616000001088812643688306758821488186473900234532533245877936769466261170198387942654386722957443173689049685421484605899616946455440430602472673497366738257794862777196279884006839980837117450865111069299237928680436588101056244743041956599477508134499609703131054683540349794824921161069978633616917712825049217809882244007856943700376578485865209856284235408051310890531706456352987791845375983551793402320842000989380694568497571355901170679304083198469181895140626493194972992140238984676383431743069646735172769044671315305151691716339024893397163528585766026112872368713530520095647250934514423973237165682050224403176937382082036983935218061354101897660046117950982105347293956417066984239251017501163601495855334341644010569786664715264896737126574012571467999594190923823656242599229764553139039449490136636793202573512860317911992957652601931742857951281712531862319262254721261018122964636590951567709026028827967875954998445612713686041643050002597108205951632090425654389725058766502060753780287649566687995303880434673218098637195538148665392554163852981044733255760246650268030493398686238991316991049258016217926777141717717339459821468895456669647131059371991793735739021551227736517131681366222070228920298397918905444006023503305593684769355837883236997386797104788727232597767312833329451611616209891267604215689126054711053719770091733591946813553939120942493958390432316200777456617926035780896922218637114077559465197732353340514276238505556444553476606204092484059041645426599870571555493793796869529957250061525895741167116527718964692412024926768488291906995891811431787116378205109047414586761893375452950617426306536133360564058158444663955074102798548623883078836584024948507379031293886529612853020273405511949197288851115949829288599409258613854765316416828925149004041707213183287852833279593873485516061851238143472596375052725484473930209317985584507713302332482313585916391340151395383744194215333204906292126206121835473813559336695155812511865272233614655577170487601360193877768928109940421150180477238261088618159400430728940961132895114118707907545726274439171811382058916264647740372442431831661861218627466975892303243138088290874956653143526814240949565404135570424150611376078638682558793629180119201718587488867072789311494732893071267198808610792559213113006457148811913717881737143365513576699277106091065151566955543666738882715829652165424828651075364140272163402803979988166524173578345496567667600062580994593562481430323247424727362468665988045760666793538087871623912257303811169940713405728934837830592266021189330209408198567027301738333753245015998850521433433907840805995533089930651679829772423689540747746227048115255539489381432468184980990687482910082719256320100181514477610543205435514561323361710379653852200750193354928523964203675653231451225853353864713795189199308218996621759354605753477816090238029608805256577396914329315850537084788025850754099641368927091510320904494056691560940805304005846544195413946888841740148307005635762096572093238759673202998355551997358441858894127050846303671101701956173390767168881715268960174659067545002137680061022128735376870476684713093933660517524469186674906268341021584858997846741997039215283404677151689539416212388977794919729744256396147294571845704861790087250773362957832081820573511708387160357355121951029282309288244227513793687449145363051157884349172366711175828166296965782028151324380763717338186933430858841108474129004115558475071086751013730326454504460133384130528609295469757275473251429710183704208579089408358504986480100141975605326967123410469386056097779007741574910642717574797202209351410380430988807511771110220759899540864799591942402893381135909369092372899468850040447797988767622834501672855190636887007058345358987775913083438801322241255468950729418929986579710392220497844445959818249615926893300672996666141788354688162888252899252732904584247036238379769792591800153559744277801445325780186095842565532803957527584207231704066779280281780120790607152588976933278668904540961839742490409725532758789707700921664737409231308217775787436670990339551386670064328608021088616288022274117499495913784576432209273364674081191863755018216633192534432032120355988773795632758802977493027620997076056121016975753584320700202953842049398318695676188578837979947315984658029215416464068360249623916178585075966091141315795170573286843573071373556982289782678693054683941678377382593456046297084855181008038344745168551720696224176703831184239848797282723821188095586724122853759916019543746000729572263374049219914810834449459050481384820125099527083210724161076657887429659038712633348062464177215544437707439559697564986039397771609880880139451069277960760846291813566000409269063055464820700735149739632278121185964103598430256523053088187919552876861176190158963595754750417048845481457555598002595243184987452691322034050841751165911028728931825276729127962337507808467238688399678261168081640733402424369715277840584397529641772404521886949828996325918487222477532215522006453251177558240478998119733294703570126653589207401670065149847355685442348862354489607018515652402680583342573275065979450309765426110936631717082434284667174634915159335122452692651590637070173413569288199910121855354297165673915393680580277347572047744321556532202586559898687896581505873954468339478668987229971014518458270298514957441014276892750175861212680536456864375024925331521209891034004851702646943181958800505551967781579117502369264335535717395647666931290023219025536794965809920427857638614115318399038748123705144606471885112407513316418840065282539345603010747820347832920687388018223752012837400220907873016279600714030046282326531078933804896109153059626627449504225700447317519442468307532290592291284821365515673291327497255460238856812147876911362915769599224942816447886415859720488392650824049565844495112711870234517593512884037842013821704778021064380265361685688075128598543104168397642679455687879305994159530673791202692700875164239352096051099553777965014811430162317239068812905499245042756951073123450308243079179963006357955045291254935535878475058169651243721575552278508603569514681700477685582834522508636953123974719481319336841425456143224550436977921300273513698014239189174907878579869143945453374355362933638245061105529623787522802446674263311137001896489777000138421879553840770864331080915318257331229299307612697016490500202876544697588732081747664106545814152646914431302504958878130903804293079251480313451841509182551668967603627881472111068349199776144661164646302131429051672879750838996319930871592203639117725141222258598131071275767807752243711130735184149602493297429306599332330273984505494173697533765284029253785783329536523094823012036019182782719636954029316390740089618300983434404454791861856240336324029535377530446210313173443586659679641481038678222921826052400155571745556823545414098689071100220089403403717454196038341420698829644584271119202687033709283424458619568886239304714768649716243701158148800526011976912934455841602399203002058797526219210783211722888800057983847998856229613166092282677653050371442463351771846764452554263305313260996167238394995768506218517506762043213004481514085953160063217343306154846611139954921281961420597508505168343308965939848247487290595443176085666843861461108804953182883456849772264419064909450214997803450790372972239500297711775682097407604320567361061564232711494101211987551676742816648791217825721542020980699138009016554250902240473749652070491113026014246039079356357661891438205754963493769646175544421249932111282371383127520731900920430899647425253775638362125668513123111428292898767372240583504793040463502435956951982229265764209954902237496705142842944364036960769477234514090735647235680247458765388956019659916704498536526083857675528280849080577817685365950134362860593550500885230466622329446922657362523430242783954259896623499046539831140364127892173458129871693226895777700182289307274924031679498830523851556234928064865733486760757224801405347569458883541386004486721998326710803618206127661521418998849841085129168270934106260529354990776056106406730064964789460233969939361782245895152663135925561198253576048736948583084323456929474192114150259758656299495718055362388068146387304199799795323487025620151974516600960453582413820698275247531773922800247641697328469132763108516066192684063952291294804501930791595992913867252755432776559995925407582269866358493002817766600678856067590333957551675341653297733787176448500085552397304260337869550157645576916170473390484457190346802381704750864081712597233269793208702790541327304568957286241799720437565085153230094715352758984300984665323286186143983323105440912047522137912503440466419283414064979104192662962580428255143406276140799103456109081620833016473805014796730235768934709027944314505378446431241786128983872041359067751342562820054791647971931161742876406101894980526846040122901260877355708704482337408581267092229694500011631589351391682750722617162671862493088300256292216840236652305095015789337252606820251737538998702288959078221175333493620855315646007684053157446441446727376313297741320686794176171299598171646595382629710102349310196023899997057241403428519777283868033291252200642647147253884730338476226672310800577887353195490726928833394640901112346376019457557680895109610443108946582527602904388796745432177702571213829927489416620086757196800922680627662588590497214520660633152771075504885242123029458681905288643481339768996656512238204461516302119171122760712690032204243941735041695052355697913062849009124301732557436437153376573397876850324827654170568735691059420091628112205092117706145180486297874641119182856590680895885083042020966175662533467205715215739838788023848044339163311019023565156431746009279007773144453973334290048263777025697169327954222057354254664498654946828688717546743572139001235587475680021347041825470056182716203005965142740478606454139413164859313624046533988588131249592018863193020327788041674298450568087861849405365478243838852057874939594220991515647873073256898800590652779026562184832563995284385832901491539972576099943395917774864251518415085175110854899244489300688594058147986013721184902589217893758310409594113112241127846869997934286154993805333596799563121910321342452230215070691533533706871332077590830904506710481317093567090351108462140124468794440680807864774623805891367809336637423891021888697628349720160110381068153937659016963245901160385574994867113417679887621128640922063336282868019311347323105848269690835382529259480917870885527878759411394336353786769081270802736269054496544295656122558629815751845492878200095199658786818773147573286944931793157985772588656328443390530474056711885359056791976090719664234504761320354200572343314723290347482164303147443054173466284274849906720407887128802667527638696997821258213557782959113945590264642484982717729322042120519358847354362609004970534637366124449543788200576979313588839817092051168227723635319398923826130548673497642161134104107937700377829134770955849836538845009118956538344428631138927379090095984526937504191895571557494042781214295677327669400861678936063878349553133142749022763449226739813617401117460924712918238540345195271961813234387316449403958892241153072822633269780082084059030929419330286009622107597013377241071292738858439736943202720158872503142966357474362250015751585802655915597647881818297122708448431946128928813124177204878500969939305278631612285324541839596009623796366731977874337943063915484325101566562022523214047445110796532962720966993230032296825995929277075860204617874752354854749561917807653329022896668811806852607453479577615611498626900666025315069777680829653943071625681743178438775465347866170274772883040216185058882215722555403224152001871929047184412805915288467288067050726817705773919864810115158836001415460675927480531397198746473238559348780231171947211560853427800567352505432225222215297209192121223578993308870570817025317996162939987556867358200747181747015009535040845139321293028292921366883523637910606104266914179237240572916212786064333099065357702285243883809605447533247665976423699886970625761047529353731086984911309238048541879393164290060997489906959545913864589866899700032005282288233862735094342980484684108701334856261450632879210973832570412213547179471576744260430441289168282467914431820870402230098215656375107825342537935224336739037710543920832178729264992820480947771359355648867259465841276124663482784407725412744448014731058057254826328261097515254428797819374082142210076642654560396922350199555005014621091402930565290423448979817652869113711879736941955378057816255676851828673812190255775130374747765826725900163277055209827426026703456439290733719779885188705194982476321742704836906926652342997235841104796764264084546148816934360044673467749970998624601548224651443646528878192731924724801226153075899814664816085118015440946011816172985029062418765116903477352093489153126225383474406659496230072478808561402777936385509036085987170250245891050412239502966854384419657118621686274160394695802486163377143300105912177358062302040297803641335645721371395412986347560892387899895786076790468457661581165886182825835028825159849003626572314347727689497455101925962597573688318827735224451058830205202669762742323865204870169529769013982303354329191789769826374039146790111511190487496602619280658756312056500044169947824980118525032132232151541153289921256853720235695586275890375509407999772487950829002230259495332207971469046276354853842832430052728286275756058255565724528510520772772968471210403219030986415195959240630841308953836874781626956383689316328234027937763045109269154633791148801903285362422573251731385114770447995876224596801891105269883360931664568745406668896395718973277940602375060598651087611945823469476083557737570110302092084564755491148404237037198930570436232712474117225673524298872677458928492244331919397997100992834334300033758173103377793272007415289303838267814728313312820061523151100439801470178988514784181650332972889632849090958661078803976733490722269680836979388024604171151835953955287088845040139992418071967302373132413059339733165786500311528468699092037389886547939636177631318957109651457500233370393059305694379422144591752727499536867076775074595590175049366516006331288531878176937042583485190751719572541800138892307234836715934192712918022739913304061219415068542167124126156439720978416568779737894001734104933107776300671818042538719702908736607282454008242294139539359995517682064561603960636864355154578524837886971903536811529054835297895160559132293207117167534770151860603658820654275601301013621798048558403310734527118609294160439008554013529821266223917115527429156524787600367109245361082859458627159658317274725097064276481338875225108743230796451086599424520686923733203748564409412795789400687483802151073467649234464537768216251729341348774434952782307989381654672037135756104423219912885224754206897256879202539492323754274506523567748601560896102870637078826405327850710830327089640689653255539701740394100686470714294048236045369926414468732004641986493347241059067994071374401044850782472539942164266813830742931628897829189512368661031748040364568308971123941945625836689876853799170667540238762597499249248206547076756377828324657610433108692186194916442853842167264815386421642496004474463482529761676494413714873177826244762884805396515026459623517433357431788646220430025933239331652165615198938200416676981903636776437224114039662886827914897219279508803401483313522456557265348630251306478934850431141468263362933471764452816296266940216833692121154038749222679953280762180226739278121086249928628133964438337639560905397964899294852713433324879768194586988667772547975983224861895343439624313072220857596394646033660144081185965561527296241171108016069006650040259518713239023329828481700307808788683529624673955103286600285682075875594981440252618613683900227852536756913839479168509030606076456510970514672319209414701567980305864827365518262263814734740783388330778200110317653211344872266516088407261340195634949811531960591529547356138869847790566466445960737461731383457178039928117727453186033559464776846471919881467338958352326648809727852953582307192770731849563904177814740606067394149890780224109186689640010141236793846203592935021860660664673114698744878303929291524385366315623949606548066738526867187242139018055673465107892348507296185130742622358862971937472494209748575710931799412555862391128011686388859320882223990883027872344170295685047028296047587428877735872973348635005468342511350547487356837470737831998575244364600804838111385538204102915477556332293817772122207509242323999939819723585469103495913322565494067082590238522792624224305255414735993884031172352137610099112885044448497756110819589622848651306932622332987709400443588856155420901829037770779699223129092311739867496281426278677471907218023854043310195469302874556900619655661386477632544012403021651378604981043543288120446475691251866198016354508956529355825474794678189864910124855226906718617252870317640468684547114783846041129016136757686565270777394815679183749836983638184897671799841074661543181314624301050182095374061370659594760600457146803129181013257693209253895215343733300408631880324635735261403760025332391034933730170978205999945616720087524728138572317447897490435849769619542079105302560752281915429049523365696877612014954257560012735466726092181132824741063129939269586242558542505295638865074895999394365027312545866126758542394020826617449668771759750089330051142034414012940064214064394477438526526307501873812170443806523124138032798435481278888499140737606229451012780786596556878336240655178541660952727081942187101551969976156369407038887612696374307901932283037647753928763145761519956723250940647693567748344549056224675018022413968942076486336926821627147267255418241161380114065873001543762216337199129391722611663579669522513652196055902611159829725122488296144932538399861406069068458147234811757516146149127734414822778225168358017068763186693103694585808612431123365153316691404104299106563671214262598940403177664778838667826483676306924198957189096808948693085590635229746459659950582136617570289627639903358361841765517633691176110418363160895966800443581260343832390785247661561906334935229807381002755005098922174272296132308328713749914359778487989979898418383610210638569439270239192936273893669509712530068362266459533131999079562703305391733870341936970510179161863342964679991170689430765930297151645891436702609515312754361987083881030945803639484688264734391393358930250085674622854758486795621391903449195366059716995136904870523646426047986362105480631310535595115153878860296909047281543655590470245549063955785364494109381166875240413091936788083772511312365740501312268017466389161320457110376513289463910717189154894413667360026613248228035832268575286488848174833063587109142641863951424763686474676528818378022088381185926267558310609020178466245326179002387850382450547666941212261639581596406389710908656210579294715539328813872136135272505903521548376648284888101103623352748618781116897407289259926363737402322026362933938825407120241373575371951313105438176168465284008524846286977409225813974426974796940788241933608273294608264371946789131068142830417931221722522833740093471224491820285657645779085036617471327664075875878757523043026131173064545906732087964892975251590655547143043399316450858272124018507885145827311109718094039159368796051510974571762506507770219653374854633058048842919215239572301660601083011503107284312260125760544975454090852629325599541117595660574397563715621207028766803022484842953159750058646701799119460818481852825596092578354365039517764653998550888326300515682925650802481081627774435973749925761065950696539476291490515520867066651057207670589007689296079426990719069191246816699594613953658046831630954229325676689601536885904334210325036772806950772738811435005755829167911134975884218471701810038451939789118877310296691875196733100024161815257587805525867152797140267472930114160139363568496303296903686318711781661184539696851369911051693800751180571955866384357521331883560767711512995665380889040378854751226636810799460641388397299354642774898918529519779637255960397088945296465547329758337021482242310259264642915943278154492626100417604158546862352324420988137899917857838600908688101289631436032979888011952930954703083536673271705075397022865604545843880172063455926717383790445986913713316436418541713024885276625215758300428381672460309781873369587489256629742769735628352417787285199102586112942675180167858910227512452495707451639060901782809757253111125555533474238147866008336910333519479101858742998877422639691145798759077637585396801147181666098297107893054901740599442829560239344806849691097214741917187761373825739896465614172035807930736310800391337934702788139094578478101987687458054948921807127329373973585361883106853347860815888741788337380792982847337214744563790633261373378690682078936922198351578524026763651137246683226734593518593654065007766980174473161801564721049643145044459921413996302726774342570080659972773387715266306707044532911746959698722506376525495869037001793744085435050710404444300432416110212436746731713486963132264720531127294946185594874103964617024762819500333525920477958357091133721345374336629805835887516700435464740229605351810742382289354059711855856607951695232217433015261515477822232934763494071261262263570052584982765267616838086588661015875317682403861500993348955983056524284843287324819965013981716146598452303279512894506167934376253706511982052495935728155701851416974064501572158335688940255794155344006969976749071415380994165580927422190192802357296366871597658410797341217281700313694765100287444514097540404138589017056702593646853295537162785830620649006090682717421609092965659692983134320917808377097843717196556071926408205067928075537142929201444353102807914538775745401146812070209696192893403023894225592947979115907217036638414768618379408037159191037453342217300372067729731846862508983152219667200404401473780535433591951356741047801658230647329330169044567898274102271875069952635028260476112797041829202243631236968914251831190060495081324751952927447957623510587434573999716203229474679453709150052879091141090459813211403529525710479791150453616316733752961220298050767271572866408923929727630947160789148250649392941226973429189199101753029036884541625961716824051356810564755955468171862445760235205250666339036516340520931364040412621119025873684788938948216471811508883834714487269083028119682629657063900924487576256379210517085798766380358753563648679561382669593786183468364290458677564769124638433417532849347687244842164281206794658292491615826722987735722309391206772904277172457603977257660952429797702582520141849250356570993643787856615422661272483237853171515710937043570598088523661193311584059446494998952540042217467951257981427565340750943747783637386490673731924084689788793019765503182776873977815238249123024988675598840330617549608620588230660871868262133360100876040196867511789068871497175485084110385929140169986040762449405787840421570196174819696387904223260248580571087230450547678280554814718789676021619792449540147115583122754437835663075018718665942546176779533843812491363704567740921006945051014554879621861301503889863700057908699648368061560274312552188785160334494739070868485782659993493063519814117958595604667988500517661709851623974190889693117318681958127731990845354450242103564834250034673745888167471974897306308060345778912493492697882867783480577859189343180992440637328231319396285549944322864920918393388969593877528936010530483402977509721667735923135497782856510649012629672888065015579417302656162636063326503682309549719315631094826850323159092820410010426627507521263570589218197867005803380178594300675366817062962425787262828673825631364862392249334376184273231682201939912789646331121477036301144438282879933071238776970089983108821467521278597278559417129953042484511653033386659503213573464560198188426093384100748103172989108139370537174235881329602364489062537867585305810074443944643531451446145865664628585475328040459564730427306805501695038641407222791214308971050653530108443973085343354023161391610590702620499054822962520419504667536633495033690856588255647635368303980146959202980548656424044755082505768258011988546977719374674048962880109624337724286591244364036553715130721689573599373094202176919808231455581214159557177707601883500369535794704218906457590507853720529977502604331974899290798232090253571863180415843006396683189782279382204093203247884683720898843138602121382781621137379611539416692953868595916570142532730643893463929062916514855132246242241513151363520976278829375414127565860249518860329713789708702339139363697634055659766396699108610957122908095716346505329488773487785077141777465655889042325850299277088504334387384957923620520101721239307807340247132372470121806062855832383245967641347230959710006297750146258585833457432824781276157716764563051716031989350612529925482976885403754192093798451145363286622261965705369947847141023128403859140239062259325823341844901479427747614253108832810374871002175951400255312776704204973817049360561602683272856446971871221201375150861040477307608895394281747125047332046426832542791580088623839501757767441836478890243969142388781463474872071338374665724272250463898577018565996230764617951338438267635093456368782885532304449166122213089865698225499637015972141603777271014649982377224728000169846886922821920649738548845190147432801989535259848638342124802790538867685201444191373687697494889914252117440132498687320790591519839550550159283052923047623300183919256570838357944130529808132570812763612439505938046416028816716635979813766513106859467924462689542062854050697103533423789855322924595639930689753280414150406507961393387280368459787936203115647408859430784449319624657569675793610024293918484944932712993963987480061176251951162458137169377461215242193872029104845080664631082971812875000824440996927004982756440996532627799142361208548073588210769929702933751599954388152663287635504885814677316101377699297301636096652350667438022998465431631198852220510735820518464870349660181827147959475364995781081157616450129345405304244059495581296162464751296168874461559533421933174569455803764594772561603610073688541527680153660688246404232519071684144516435638777512855926688142188251595474375794247673681597541449571893633218415605149120537842175330316945309153640072048885218518367976188728168336813979610760032359852887214795131706755755044731277402839083170664571960385484346358219464515130809396672645291109770243911739424109630931981865766325810155915095777359972718307633905032704293562894962988314904641813338179574349011483678869440168978426646644281828086661528771098047974763240982303618208516816326708391052834175023933064190432667903561265871958172364105541143461841350066853136910867667849345880507825415342305596544706766260734875063571950206112698555148937491291535096908793615615939375320177668264226616370782210787981833172014135877036551520357795896505624955190235997912927719276452531279620228150710489407993109462222223799315782705348543208099659791940669353364189875410706231665520442843209691835256201858539175652960956730800872788605114298587879056399593427201369118654249112121165424316623275048268975143255889511352391554778236577183476343854562426157533709640604118628478475841627229268910775538215853183735744308618271248641614690127582001896876209835329742776568137795961094394293211593394823181955270882457881911550243995267432849962953137790144255244224069800402887937896411006211629205510972570805962642180079968433075810317502207088489555604672170285447452522486373274765071133892910168991266284642372950808504144956405206667169972411311971348158733613816878351842519047558922008219297590635082844880967972488255439159570427474696450059294126834293101665354686155079346301342972000092570220373638679096249689861095366806115925640040536391770830458674211741965498431934629500333203794068395915426227618722404264408400983484129241889205646032481365376996598951369176095106829909252094236299098913636706550556438626646161942187938687755488218821470058598946249112596193332097981685356434079371049636662188282474396419172619912417687588657740314273830145435613168807868880376647162656670831863778903179368989424353390468833675938920219321025189096642000313489996059441293968321420892850051676124415286849304422765243799525952523025381077970427508822953177893792610697032450822980667760676555187459083929405969548574033538374175454914767039460912159044932046425290190757334764555545949695640669894272014865950663821208570819580922541058345852347201832336353630593921856652225502536346360038751250636586684376400134507134504415924820656456044791159512724365742895749265590160769919212786695403463362322596947104996829408720414358775147510135792885220598519132100373246842916413118420886496418907828135593515210386662111706231696993899363182553640639297753735213185408970890899092341509317885515482280867570413993551791545073715464090457630199967317776790698254780380946715653145104646716093861427931164341709998732902117315639290126679074320568878714730830736737460614468381707277151121184892599237831885852175191658758723190862108907222422845997255487724426132181883629153734512648665632480343279808190180945662478417969597078120351291445906407391762207418161275967076156251417616409324341250890370921923900078824474981421598985952776776514576775941128659396257983945254161943764639317434623448346719977178114503982513600306017851525808425431417784534598830982789560995205346398132656390653561227335085270531548145149524315048788571794289956144011014540924110702492314998413061462248649677418438107169529619074734565527056173694835809346135625304605799583319581283948081106518916977022448098372943929208574093007897756619747464637886419106457421351003147810237796331373599315953069995409581234385998896591953878803515743169791769798137363550498846182763490373101279539349172329028546106922396710313683227884214185021104694694948916807346786863451521485728572958477371168670130501071133217453780194524035332427397260257643517190582321636526258019155546227334274457456113067614855420827908862464861270935348123132097534847615422094866747731670765269535403597823057267609758781040428589988062318898362935090185483538118141147948713659267792739437364113144976070729673882345255147141645139126390737813510515149657239225033525206272284868226460255709663290139599576533076718048703567712627670283832226829110718298181811292410794427484377706085805575899315295677924512513685621383684498657841287095617321460908584619230176512895865496120313416892033372760134706972845843405635240585861933024408274352131379167217449975143726719892883423973748697733607137708895648810075535024848740293470828170778262280336285249217540773659587170112149645277859622926565545527608148102809941229053533871863288083211852387827090875066909792858305874837958955850778015584545926070313937052988030036404290306709381568751935660930185194509816173734350793193443123288795645157290593333650995656754141915697513143263837832661458113967925343490643479051582015917890663329522250472988861061437931119755269039732551351285779346963181448984370432162648771870112846792176086570440185691307743684580224492571237840144586326671539137264112474052440162051831407047712575293170033435139209199041274778925063583861299270473278785229457070764885774320346358342130920810230553543092901934682099105007498028686322600807801065247612106109508584083433637093397875247418886071507270066269662808656418888207935883411514753610559141435271093550307567737564264495054427389490340340347604840618946660129300390092142045405757833025893660262061891546529967921085907392212982183585152276004255004514802731143645899386124291248642550717623468086650124866611980943184464398527118361481077815712444007542318357944006773855500866309889504350369823068507930048340684318721138937865376140316204931273702573984913694051267372532174469630957896817854176766609598311096316365886581044632697885819796813350830454426634406000316305912780739160022775792492212773852123088196205573565559152805451190720384957211802696668999544512374341897817575767543702104179503801908161572711336295417532832825622693064569809454910363783466336985857890415150096863237122003425610976188972225522153308076329629380667681394451290552765908081017967424205534873822265001020407357406104922766047731411650409028595983717775015592966337235673971438785981835245076976494290973458588456738991888065862429938758290822927463576630264320793823619785697322171853168724689166959672239417591651472024080385565855622172107218544526038247795554828920304983765221875259836024181295827527958005272968234144748270694157409396949356818217048462430931239262506862332061967868688992878565316455983959155354886499730084595495635092263301884164083868866522404137448590184701386768833221286015999469548131600678502528794395608332761819989743855102123968077541638410002091335806461818246541776849917996835344075605000325903361331529543785944872241861485520570885030126668330440542876977114085553745367110095251155985003848527016382812588801220794309111975436155074066114043615954752966002891977362780183636826214940914820892730893700879415059556392405536842213907202642515673978923423111385098601713910678482465731333006537106347979217339967672363586620230274105116593921683128707676661783297841856852403225588086452257260673629391994629281973228473243576020392173367787073202897147184114902330778653754564347296883142250918215340763685077376438681855804473551494785617370967150998288059112759358324590078274062425354322948694567218876224293933553883175345566673427236783867297099334560958878535790940344211164163603220614206351950500100451922110741466017817865540753968861362252896914644397747782708363909231652091531968962797026627858509051918636843544383387039544624838851607634543137231382019134761565229159193584406517454136310466985393168508531350486548006019983490278244780785959067539577076544579889342645194174058710766710912264238929011617403054893527149936362053877065142153392511975104280458056542681948453771919948517331364024864493529622888848353525891708972067955703455577207586724261067252956738448569061592348924964171389510176905731501596769543185595300289329586358286693724310408144391453674578627254950976487822928045489671875196996754770424686567533082684130459604372503923373031653075375033030706100487583357772989356798553591437609115951199249382267675481012924464302939241512384707036304523645773063621706047233565992038648883875626914349018881752718832202270881026589627283006487581980453432491974912148519846722372106629120385027504423998181150204419353121394337664606509551635203746396025171815992294711473493959636929805548903671030830223378616581875192407119612092253613193454856741120076961892781656604278899394956408440805749806197841317102007309053958716930242480163466568055768966178691796562838062920903326296561554192835368826885987487394562337002853945387796369657931345935846125945694585291233152939503350669369879507413541880347446258166749946005178911222575425732453801942073721765489507670478879670267258675680750396779518586732291221459134718998495141989353818460423749042377236357939003899751151189902894524557613784148550535109072426787744823045142618189441005502079866211602295695090497208928720165241531020798535825894897866318987580569671296921029308900860131606835529705019563109544784551836143873861333482131322338363929965559659447859909694970910110302346679390885898669981966676213265510757712520193157506270056811183390583172749624636101138820434439452358943386828499360720851123117468799479145499916087270824583267757817228242545039113223181678868476636627350767057985192516680498039219769293428020981528281381079471560858803160946022907197539534516161535889630408969385884528204791012696146569183430591741185289477658068996425117869851525066993365746928816666529185701083246783909291788050672118993489337925307349554506045354401758105171285545943207572590961533828299327725607482831433165091452885722765469479107834862822040869395622889618799421713449918236099287774128103294910878200333820994196819071505966150853830363568263626166118367658857948950822879798465563384233649958304452181632823731948206581856423840466593714954455779433429725664034099427301624208324409603535486472771873493488218225171624023604659365155753018348996482894485691546078014269060162274770738776034250156283804199482169719093967456349113815969426237064311707378876102516962136697155122624821487703420290708834335014606208427193902539677252936152560980126167913798868392971011069349131917313180599250125004340091132526650359061409193050809658215145708786876745094908716530062096751941485897136718617975808201448182760381273520172572965722195779671434221599106904249795150864930943103183188041308673482541169448957360566367490036986179693754022982361471437266966875425487190978095963691397906792762036251291979139564176872123877267332288741776404758275599900065927764017619734588000254314063688770446175708850372465418816069586101762244830103225350136635586814068645431889911769570803652056435389470630327799481903535791220960360299330064071337807673497596010578602591185411477087567170352671097590622361347769161355597669540689399168804252059023382741040169410715388378049284680168830610706972493076156654485628325654611150786653499921959629332358132840149716285994885036911629194784637260073286282522072419154057884434314719018946609675815512767537022844502011773864088308842704543544774173811636471559126457391656419568414493402249199943151421482973020946964214250343870907312772605979404282437852844934624846737880413683369317849443981824372683682721437363943067957284395031841319480584190332949594290050790655214131538621166073306454298015032345797885967681879961955440163562977840619079296095054868030208504791435727653983112177425374461492005276035147167513014442987727075233489448371147575052607394973706649244624789358272393523989478499413223190035690214523431672484138332108039871650810764120661361485759309444619503800304983202683393498131646207088628448623442368591508611670940299080992453679320749864428805295222600503355853705812528247752360974459008395003492476466779891525335886889015919331591393765108640509977007050798306419438635989948747090735768989082195929307116079846127313999187218417701585032543808121549240920546411317453769809250609418148459486843576235919011282879412830445980970079103206527768733259481485567750078695284055361368909803851629819462942397634840583173999449834265950854362166425875867493406007773102874139818847737163962666175879082830454045753454821501618913409764013407517118576103296372717373105277045707061210028925812907620137971896772738272604459811061159454357749839684286972893261791853539860807493057942404948997796605949330568507741000648626672290764331755545237030175721618697619624530454943887068142862855427959317977423614402836220239366689305568385712198949596796885493223469478312484495059569289943261924579056408771242608811011831182005628608273244930144373014663428138591824229154691687971751773449887819810937293466080392454667207128279576339576442271258569680618171922967933504890910278704225912802297780282761138803012577196791312221008168208292578126654731248998739160796073134701946439038234530786410821319648577336303390883789562123449022306448318615946428084701968936683080372133413185622211176538839167571065928103085224717384858218968434090831243142965961298877325811245313770296080190066857237563230969670469673757229362242231254837171572755862580486141827545598875354921162029992749973522052182138164545920249047371180945279953979256800008947025020107286611642235647455863388517506502533159882885656965065523398765873882417533142519690692635026628819459779870835474877909992445955768410754986103444740941639367001233531911312922995070905116229071518838504577437773367860902309382880143479619360264870982706959235087019297963236600009448218042091506397238771657970176254784934773312578023305556699055371778568927702476231865218510617922608219601785927077075996131658001882868218209936802740854116326843936620081369665751700954308257497395044049289559472081985426449633519928938047558783694075329808810640637873271547598340819145869958003423107715606210129660274420511122728978507804165274671163707991810981119648752659913622139457703051426978218622534482072753374287428076528185925453386650943053352893350588676301095652012380886974792855593197124853021126276682618382181872126703782095714677124944327108978477713583642639695556730756807312772260748837308747141224991380459397709370712300157351626581970493357526927214007776000655511197785319053352866199578826628029832247896135397032691725344350794115752219301969860887578061863114088989252431256960445538768675866563607054760069100634251724154486325662729320739214974179639940587542042190752544061554570678684423118852594823724239894168567147239491496641155750048261180109925724304439368092648254711932464301555560689711750843769129809986596924903400509193009033844664703866906700371560167451574009571477722953555038358974748350173911702096026757712103376683826120247666956067878521769094839920725323403378988783418389649007020473926558226178554229095281287929801447872159468861210896194759073806024014766415505764450631171894846630834161223646186863430785467152415158148862395265348716971717948039852175762634373504322429856606325247080717429615900751552890629781279123111547475864979829959586673034824808724155806890925600343621165631529896195695807688287882929070547430551101257276636232473137057416799295446741628059422302765189259453150506315067469388325304009104227327845699128157457147057855425001096210494277055228081824843019505674978991224833183335624765526999907361944323245247299190785748325692096750836228655149289515711768820613286775964203222601057705080490826897499059286366393064632311798461660717253401661125368117755611060793917542796367632116284324098756064678661768442761337474354084789739591003063978799304455646971346092328477991411665957013534093468460303515354609803282946797562525732126675590988256510049669563393676707607602097807798826322917903790957393417042626235553376014993089097844084701559276804628963703729079888034811907889112950195459923650259935473590255907095800934156797624796102163157068483047448276106222124868347170467843633687310010595716920928913918170965760248233176046478056059103473060812368120279488840466271370965412213855739900272546514897656370929000224419760087103062846105956272619327287107106258420044741925400766178577172334092690838889483289730790138706343106515569650192119976757169445568971186963656702720705678736480790928695793615689761605740775103697599441816671592861529731378260374425922696902943439349736331373015962120955434266087714220304911888312340028298805014324408079222674354240250305652870022440862699016159419868128963590678518392941489148858699657908211050985738942867017364579734193929693078400867076515278777603384015395259102860651095556203634322781725165415135801218870278110803536166841737110433814673661742057347698916106477694708577365056827526733285185132750978249825567582033632051438255333353170962506407570763157856715596671450500868404282794526544851788944990758657368516422904313277907652765466307675546177806753278162920894678787277998607800086113933863615600124917057497016157894143194809017652436393592077570853178713857052386327501154882401979171762089685703368534458529749651737782273283803371446264589538021242323782583114828878703494497360064947238233172514723262418185424567067322131226019878343634555372477878450408755562576853809330274978188212955759274138781835463904070252860801313683139854214487148588780263171670164777031029693696202806632931436081237287173423106297044439401563906279339367300632009397460919310684171928981255383585007657099151284623294319851276315998956335251128332916250098731562597280618275491069588136650023847335996103996631906441507292045106074781080197331201387562665235642867557384645297808678982741600241099832517207805069174944997255896714988695618404896559792637575976599000705611432695338371378476449952573429941946497953373700585809392199676129071341532065028245530240178786354077852339014875090417469670695692187811331938941022223375594435496841747903652301008260426779265739721402679752100642915153825796354745242710549183983289668232482510971970016906422714234891924693537868213262634928416631803860738035479749043483254147574968361532319154210172065778823088440206253096486714362620236539692244441129250618962463034827085195643426999844804333433521738102137096886009797014929000290630252720834256705141625830852129346349837405715150340207704498881436429895864895641268131283177597779877832970966700835923050922457234618848173011456470124420580818555213731049399136249543576002288492575316652058922514117596268844448413090720987909087945163948350390134240571345321432815884439180282593226152468239647060977402532008118667699304152771151947913032403932291470168349860095251747773794857898524751364223000315844094264874792016109976742145755652443360942062905588886333732986887372474037163640405644238828281274760081670698406088416507597831283537312559608994463977254454627302735233157829786314898292514978677500554741405449383345018261987908384942781338259125670332805273013486744345527378002958762154056511968424749743247300260404329455864193466225880424499369833780253547007940735257187184161080312071797682568858149034587545456038828007152078124217460024148791577739609492290837042774377448348633705237850687856909301453546362786727114247466439255168598191676735036679943489484851931874444127027579328360207060317441103426826450800745733998928900342528587208133295974278542338752589104005936457782430217315993565619279157986573504792542554988490797394430410598994958114403123281193644839606805452367616871076631109934248953173053665565266130549925284004619275304456364356469043188508478977505507649015481715938913235624911881177110707921143214308443789955051391048929403730556134805899111667533545427121994434423240377165200275817077720482538395609133956378242701331131359435924194855218673695570247448785796042514156532174605939140744382678473782257334348000174082893315515053986171023042084298291900351256058223650291666629001312467146383339134678608866617708450320132000975623913999254528645748544230616793159539112266669374192844744595606589704947509547223076648368961054727738670692652433025478375659402307355052139950962713206133004644154329805597441317543995062024727360223982255262321804407833341032062269990108776054669553688680635323346394078916930554277550243025353178034386795915971027343509383368582497402633179388004169188702575430544852829657528851796530254990756093318394527945729284286921848132101868361090199328321541460068878879475519062690742728255727181249830899035458724028128595769075037669622484476176258641897293925787631385225748683939177413044854854103682077768315849516266818093187963903993602938850744536493940541514431216626255344949345849321059330551740492406093646833962513211532656906205588979952786215095099364653228766340975484991251291580295772394908658668816240805551488555676105961552546886504717725742663566435977797882323559952651503018849048526100935788039922342614413935447427737951704068649221840884542376880153232153111888522561080420898719977447604196355037071190962405416636182040921337917642526126689136832470206164618061914905664028299658540234103208180466183576667269297053118761010666650168641652830077476261644107652007214260121178508924861118202850790617803758038839590198858246803008421574279256080503916667093382609498412494235099938462761629951344628990521205433364467886817928879459842798828967136527454577006441549673249038490018689521333557255893695660830675538746799856265962508915704395298223744695694016258931974365697634118041705462598043354587921844238399365103425423153430818872409544995175048698849584814253630925662175429291072927746911333771313339347528712208999992176443447836699636525725519747619148999659388303500453214514051650411743144962808303377751376675879900833896262625168642272172975170032967982186401638992067088910470002056978657892893380003934457003038957258822839273088205667167178889302691713951722617699029624640159424466285039470326200498003568259480385785975672993372187532434941652776557439167719575936211238321488279500677164770874035517062523892757529155178584244897203347287279042183681730219155417963915926424822009419344608328973611828121713629767222120837950631641357538593778818490012321898586087989827058036538198772765920228964448663028587550016462412745508548558971777107803285247229346248108633379763656228399464713501061402188961926784854126838372110078115211522025551467909690500102878863802281368303453469675005106870468314810396274260506989411736920817072717859049461064993006302383842779486782888908808727411419896677224543846355729574155698324245835410373433378182551549715924393360253030184957106446965871283008681332040558682411774506053094494073656914123196449425452787422085513632412654247787501061363500173977811967750032848949502930305192173195610371593856029353685939735013058245984217668332733770249757111836971036292240791566417419782865796831521575216820169455487356901585033713609881975980096985914565475437354890499601855589438027836779449785987127983732280610106213861835283196647372110848757514337645073586565036744372616088890590117108865702171747158723813091236474190551784441712211464222481595167083462672556321102077944199669595418715766862452063128750533082234495937213801054793674613851446578467226861958594088332511262991507032593918003805759864156266985595076915473125631287325007252706867473858953412468509242675940928539559993281621364889759586979612390574876090420008488721913901207128113066213481914496396531427557073311593154184763847827495236041470324735195468421186800194548063596601299324287827036422847875481282434864329349169846456684302157703969458222662544281155320903017189564870852669571417949071429768182733478158099105693416968348122854573341232192138743078601976957515238302895143845693250198613162588537164575899525193087219856012993938195557687398824619684575132181908882436501834433635777481448941324976304024298468174531413636654282778953763500909098857164633200801203486249314530935498662250002355223805618355736861965272764793134790435218504336137049678740517835963126549970191861818857325521188943644827698123962989031731614814240765486933583312906832979304905484918273219124818347995927263462902490018612029404894684285979107501287623107688237175164087255277084341205501901766655807277229661528015362937373393910965533445384989956740435560336433575415996828867364214019036123879327396509266920594653013154446404131962976951818082018484955977650740542139752431699575401169804482093178308423405504903392757625037590437957009359060974166790532798404103586140605052377736926689330204628932211540848448887976631886180701241431596541229565772525731598739743807733183537685603010610501790251361611831778547736248312931089009978382666578719343578261760665154464718213132360765267330180486376786642924727814098336266957081107223211965231436715482619690967783506493036753514111855749739015927533109877496197047847420472199165600713883333929937757873144071219709901425579788651091203415807676997949102860143287939741431817250197710880493718148568957062179863813669975155644231214905497269441981313096511627604247558211579355901958925396903537658355031064914510826168502853243073352983801676332558723056814314922135934646610097429469310473966051456291472042859638645239599434445971451961885642516599557857868571255940332201493943240609439203172487391839631368213318562383414040139177812285633089026380202056687236441085849743509200838951428620274708626119797829830109078501291162748051537768321351276644161080129723638862599561049949073344169926711209023855671926341204980991772101974313367942703774898018839821584883885795230529266502543932701631736549182045306619970425384267392461349425638562433517205610442081743378105201316540541644003467110719358972164265370073448049874178402947438031385006430405374168211738099240503423016201462009547179407483587913729715029845051375645938339525889640972212459673473415311666907407733357284396905178847607826822363731850813568578647474338713264958135808375892701390806844308011774191702750758606999431664403314300817111101631312730847886337581802159183425725311767133567903194236507465641672178735151508734770004322766250590181922596669219331572492002464256318012217382454022038458188142507882657851427802182481336678533882219712753412116085044909015770010508179510739724158364339125486009051749038831315668896994167622626249584767012860800596391787818874340681710968686821692933222182735403434649964304232152075359491619338449610701843343784717012713552878307187810900197488506074780089414204306268449569744877657867482167989060570661099589259161461277117940330387100268732563643514568987347560939051495267803534201254389843975442343344996297773762545764776130573843611811250329492841220344057568607870356245123749815663281458748341583312817232722599240243701687546005472182214869767078262597160744880194797742779844013284283901041045815544454367720270398670157513861566325332750461958038281068547019238761346764762508779682861260162726223065146279944783071573030862863464103880507729020926350926777737063629101387366262602879793088293083318555851365947745815655940291870665728999314142169916730455934961638852129294486881366295788240810940894081941843003343888017513428295121783969738903178089859230724057988659312018554575557349712077610530936483338170526256237203147166018687074869888876231144529115067669700723324409417129254515794605104274430842026246367139889295657228175774707431834373587505536539824921678041132111077485878290232989134795913115862040590652102174317116172520616617902538712278362687235685860787550178370744700984275080584278401954649364900785414666076344916580573353165479039314712290378521542154457914975379257036530627161204436191760981456322690244026258954942537657268581348300769488731216568414638775432509480650132340721281215119363495904377106928593940437944577243538668684183056518042849112931880273303783588559057191443856868020771539594109441391234226972557437242578354497690746536446073122774148996247710197536000272108676023346773431148254723232652763009003579258449573536557907422921899866921267521783206237598866877043534531842984751991466005037472516028061259634250621664571483251886233730266067507467252142939967876819794935556621401656110865275488635929102823531769630984205191183893726633582642334433758035584868198093701035964039601200593503513774044229739063561226306657537835003198186534007747968378563008824671659442193960940663016872363933531690315573730726654727652878844154223691668916471212023210765891166031258474595624490445847124657131080940171634118122777239608245414091581764114534086964041040550245970145319018239010999794457640547060611029696719365268353366878879497337671980665312269871059320986795560931521261257109006123397619379959785764847430737965265005665228692193757275079010511890906678024985656622121999666836596914204666242657229350617175540334337222931061021543820087534050334036574541923544876199931399625403530855584172040345803982490689652234168267269215683390387157067487138779410801301405698991295291553542487052655027157051513275729516406323765926383361770049455327469729369102235109859512481765790857863747969347965611939496576858556506923319616749728320148454802952737811547606318734008734113810942688116260882015381149788339680059632321664117985877290378040251207683488604254335443693163531555462492170211494709804837751417271197675904382251741342126986418323580123083652888183381760821300812125527137616496480915651309858362324591537366281318477967764802326171461465987499555482270568422257527495383372482204725743254549561301511500754823768301685518485808078090244972928927675167145515221792310685206140679624152822346127558354674746742991093668772043033904082882535681064464033364424944974133900520845928123644060017241584078892559905986367541338049673095140984905058407405059764528604722432397979255515336804359846211786318287332024478107034289180745460922420039254883672762096954724759651639017862446013943946484821516416698499323661926085594030515319860196573853866205469710607420798798343920722156458343389930322406862421741769699142553169090722071018615059478380082715987719839316218369166688987985077737524540979680520971843858776100773585707623611162556064978167639335292083563601171530731305089680480796316680704933227256847900400827449242267359291540710679346527699833287166812034616418947160214678194770649776392401823865886793935633904292355133097766605792176183123150576285114563964266232736976718104097574572503834781538677215696249481065787757561973249972232826359152821403285430993261303808185033252177516290044713404410573006625258244543044194197434926289034319751035049361856485114665053674809824463435621104025818354393170726020963595896844156815400800758782558163693480750735268910522305631925846992020716697916956960912593030562255711295372922213765976489554137015040817147153367894360999307240458915553307198663348396897185421005277744084773990412137379646968401907331782248258647867877747932192151889883809899794514907936752162698655854867656911661200476100518954753494549318079321124424719703577666422147834382712637220866986021352547766513397695127194155390811948443990455815665082008410308679746234332197516717783710596771731455064751633042635756796321866966384454618913109501465260800425618269114235324070653810693999024900802516700795520174638569700276308548614750279846126881125006403795086993593418556574310766265383822141245619961863522570214977826510983039439729564073011580120793522691609000695849335351328914886455741629444574218806673102208698943826036489670599841816507457650288669407177943953605194118840780442986668154425478719933719635365504441788534331398897466496866261150941827187507719557193236710224603765435451926337740742694981108593689201705879757779511622614697446544943748810807605551262121721273175459787420778103601971928735440123347634128872351427386742775248170555482719115119232849213789490247401865903639734891948220013240512512330578905561772280435308424705500603210094467719885820697640833363261903173472605281970951666064084755461367999778374635581047332667706548276715827729464626981141182885977372823158426294411850623660146681626787590123970721815494647501868445781949144820096477471090805288468349645899123348920824599359476160256639888398742324073376794914225060711209287819780587119306751690778745791372511997301350982834310249226159683200158616149008672701180779809221155342707696944363518241341740324515966491330475483389459122085078084888558127135699486910231613903631241455646573384619936883058262606216773231159263025099188141130381450713747439210385882682609025732516610011095806738751476343999482507983400951179610897300996373684299096662058480650619318590560933047841612245477003837168109560513675869694776455634001138417084755952930098865936601216561065114239472556749793779000276410423647141377010058540459149384098387355883682097024104321914426016193509646408244414104636582363026042597709663661067262341049667857730996979020897032454829360913759802305881721400870035084978694080553886647355573808006933441366485914696657403653221651550287610174841491739364693865273453138298538246762742763344596414560742331025086761323974497659295962329621177027581280475648575355364352144895546323750046342896219316483484484050252898977115493304861470209712315909166278514609603175412635603574633988949339088543546549782200651286630629335226910111091808077400191529913167518548203860794452747357528459117025754906096865369363783321474135672669023447085610299567652255246605668330117148921154744071274375362145080967694750743195266439929641154168877059423709331661785244865055481682879475008255352543126800902409752169462642633994863680139432297796513932674036961362888092052946661915423413262043987110261000604229691790258978791065259827417950526072164136161637437299760919392384547038435179593225228040759861470816386423615600800848413934161940982736084023846909920990717180590457810154709031797906676712732964150896889360242320394222857422916207228303439130441879481119663720097603234049301501472777980199129721411730355918728575377673998062228405362542842228254165855899324583270103169790170414531837093447094063908682883007379031609601910172152494033643012465929949326442767322684579421400498472320760497040006051764633517983670040492068492078904263381916682599243588869559217890105064609482681525664032958018892661132160593967713567283923461421623343447877546015598417794204111596525321140390878449905923987993725742278999860059621557015130360011717555857743719099288579931272499677358800248089693873693562865252414900810137720654142709747613710342056227953392298872513615002058585321106297342481626725590682526242157258097784257650602757363925860879998063682560168309428198089517244723065771832251550551490839651184521042512926395075947462590133570176511333981248578566437813050663828533789886120691243578737492190583736265042397584780863322044482547319430085566911013140079484412498455496016441964008697851703151370200418666239371581534658812423748133395921742303331050359041539172567527161486815497752276813973653503785898366587211880520823909170677562274088512975824752614377449067580365969041722034643784749452540728646054607463886456426530006719307229260368538817398931756630846371652442197925108117732492377737419412195337864617795984634367060839562052355546461478455164206728040924670604954305736805948129607361802463703980115943023041655202110848649952429616485454895755655839137504179880109601335190773084417572828345296317059909459667196916907211495010964251388847889363861083386635785475344480263385697910584963190534234651632554171314278422678724205545162981513976393453995779441586343820467076650738381392848631112114135772925385577877283449113975395330798592172147653917658457727966801762246686895366339178359934756762159271697799198805825707266987972017658483046167779787324133412242823549285729455955988374708530874437256314457034859023279177670875467183254657741210130680018583798518000275344265627328765765908669867538156875396111806470367182110036080657324970791597111538345325491748846662223646467418922971887530012619528746681566406512397544667636950780321045029025560580707257772022806448949867691438743143338769746176786668492035368991763563227077670840942646329766668977864850236381736795172518569233993875651879915748089030981446670458595036301321925748653415836779395773252347167319436328222604447181366233704867383912097182837336465267542536015499690119134536689661235235492728257888416103157122895218887308130025399431062429149058760369099696582861514753641282386241522662655018940203855323379993772672982766644842634787807884448612241494230004356703015946815337388312260868394062913094509927950099626027682472276525721974347025533530057047211888347246287024553666476805769293648767021647795860766975924526323455553595782549141206795633881293594655729139669643679232151627331529863427200888524076308463885107062599616392475413422334869770590373592816763496132072651111091588762108969360209228768389421421266811433796336965093970286472847772218725778751500988552917053349068588695114209270582744098425229795611880349983825710093481576677443546196784108943751541667280671868039383991848576027105006581994556480262997034645825429696176834831138532882220467883764757250014594099457450953256612136586372779514756962524766784884532638215159825868341577529014171074926177897694674095249803452914693709079341348701816201344728851543434274676806170643652962877151642639376328833517423450071780226272293157927130872192989146492112036472324844300657958657432402523888367645003604626957711632777006101664162838862732947880718062758238617316960510124512516728887210451101384207568012124480505589832718609810377589727470902537308689473419279289501632528222946752911957417199515349291562279030614055252835423559620416567504354609847754477758097683330922965461287916987730102061118322466349763722712314796276841864153088225026916361395494166457828402811858024465945838883979764819860829521914406802157399899101892550490677629101112119912029669691917862959130541626199331883318579098156465053856665964147582624493629300269439693702964926441676279208924358470895362618517260610257833143062932738661009998090502163610211076074860553630621873927785834321238668461207266296895599293936381172087054398042227134164026754422974043138228471288911415853887314741724195396091541279691462828736447666434780968456506606034034801754834085718617319729041170512478283072862302811257266444847483491748144977490023273042711629004566120268671222692060586893167276437615150233252349790243205886640810095101238758335054658292677528734533658634751429781602385479176813027280267405866947260448904951995131428007098040897135806657745170827753891616728806300898494874899507890846746963660977030034445694108491888258964108745248352101911021968328675137131501679604167140241776946898515217647955400653586609331579735788388975984064854765221602528337890486594708147463152751685892202969027521873648999526252897464341679214833812668527692109587241110950323518383731384557180989067284046991554740381246244739815297795251985407159853881460582059124718890228320245578944623164576153633216940089584417687740945204020341202388348861579308477012593296888202267766545333110223665721817647717181278103975235424323920838431647797715441384548995959272703710695981041615901141386307174109949369180440591295466036641780116593535500878564203300111291790195967147732867012901075846379684210370007735034710235715791879923772508806611739039413799258381477294269828627162795914586876427321372526237850356469978918568775532468156685128773949581179172452609533496683041970860047518200886422437758656787255995890518461470273341119107467150660550531433812807022696106198898026901282329434357456854014003371578594511956854542749077841891528380297479196180618837555948291244320947948811560669177890485663484178817983689255214017535701060744820746074182214428949395238941737424345259731744923292744314359967418371885201619973131347131170903277945928936163824711574078551581055527266096384115136595222913666261078949010086358447758602065435485176307576024524560254224745651259319794231376186339078589645672877436986038842821595472939597446197198717261768092010286950721497066357197570108765985965568153675743361285945594902951325159032703514798289485208723148856106954057001931413041646649171760206978598224944040960703752787065400944564151906871865715647578270397548060774383877560470449335493252930076667432173136692081875869104389833378005525058971138726593769148522947336327274095807910916639320725012299184418071551605271298241263395332749007852373818305542995753932166729082451599122284160647026033470531713021781810705723633823331066103821276502303486174378486042402327434001362857279187328210068494109304203359158294455408942317629073436615059753696091793027493382109876445709330517830450054611353468177351548632681550355351024898858447469301392571415923638452854201765063977600641979256480372811267857386002633182005083476051888758645734407547102119497293601223872575527130543739235551000395595270102785305268922880049829583132399058539748982954341168548089009855110590134679543927930433566401768474042428713193997879161007571405646917734311678868731796360843529408226631267034126392601025601736004536177946173128123846288527516428721281669770578702159567318685114804690413441994141776590388715692314725974333097360482571723705868765585858840741669445334771979173757863059667368935813575339256750324699534166483001344981525102717115629338831757322149174445369834612627143276047537871477394574394331798719822306821782548846842011104003971421947378718811331925273796939055400656194015999842244063599972957766851109155606405750568866981600973571476479246582712688315724074024040465007943229993353961110883113500191797190427615654581583016990777522839850614731255582150565382678294282927611213371797786223875808132245804935096131562138309087392433902470628817978147402585629539693766099656762243633984517567603668147343572427612176781858332328091572396624149130387051464296819552471625400775050974383050907734375044546475429815976855219383510059696793326032107921988155219753777112222184886650470285097401947051630073226932669096449973834412841418185529710934772047093270601650188919125639815339548151197950020305119897342086126247535451104515763355819753055367889309117285710246453076067680385149155065854450794668124353518000895884306721782708562173403125833735592182295965260587698585378877247705737296115894698565158930899627418585776174805168187664676261666344452664409479637624702185744589094184784049521593949728852423523259061750304421687128123336138070126140401765047232152678724886827793611561866850729096797501483241902800132060315541334787909082496017779024627346285491957210707580212278134810017443783328414296112301132308542604466441894769615777848095256562590899911260288866657632374384318435934118089509773764005242323012173553428720610783729808052511688479729772646051385040261690528975801710368577436485284723120701225859578144765423939615072130736947926903662277385351723208214737395036181692639315190280873393477001511716725188696954140088759530283448172680173047086092767654423309166976326370147687177442864206558621849329254426225784781260125143507497348942911442192770034372772940235426702495991346171327734100663897782716791853077829582122390017060943357636947554445914768805108193746397629736000938954737147997512435487320972165001463701256858225490344984387853293641142528106178141391704115200848123112709197689779115575504792147626342958071377225481819366366465888599520415809334246262019504155256835629831434038453624998037033665567382883833188655454707426924941890371200692707893079457975777743527581076889555760444297490878551556347599012728394977782668620381843805124052075754027431729985997006052791402764694228605121208651667647555123266435460472032472006144818912737944449313844857704373572407846679574357915559662404354772620712384912524649997339256575358555249250214109014003365877598343349783776536064118615634967329765103210067060426565329279404602199512157499210289486401478441218659160171217550419385718937607820199262179376011960924675525675928227188833052538645166960810460621478668801684382530774117314164062355607643289001794934686202858741198306173116702829999592399314531442471124330790285927300101113208097895579727698041217396963918015054882593013932693753359840467898130026209402580597363000713069682061132695091207071572836109373553991941684606088334225213883215056420094088865530645588933857410063406435399171473136598953783626120004594729038149818196597544071327617659205592907912220747162885014394137127494676833011532371665713803581085165461912227987539834737442348159288415811872332457695785746017245975898303945773864183955574741110922413769103263759254087182693296946611071684533544779604602504551706307805611729241408431957046883291866770087733374529917366150618535715739447180794260590492439216836127693409622547584281833232608606764635903536731353765132318781846856635933777083076011618265563162494005106710658382200223893618813897733619016551567435217755668706530809722664181876717331379453310106907821570870637090888347710753335228708387443780129491818491388648917486682418758369728139313142178062358780481119801045648460246960026925243661404368196244826626703289242945664660662495006750019337883566735528209973817875253957774351946777987290341722515290951403931896094530945468035744237964318630487234484188322648002131237272364179810906204714844486280980415905352274911374309347765321361073182384039205208384572056251542518655099386142300237488023431972428274509789870174099863890473099924683049903893618936657881714896471665525860010843894131379428652225452798402203304774717665740190629631957777175378605963986277385912577385949731441563177590474295232922120242423535891588034940338328302920395900583840431352412738513283048044705472407398796204906559008394847430165503230442079865430615798143284326961062768138959439444917141867789854051573867973312585856670026001098446265439034026531273044187357381385520931949127014974486141111577927388273070053392756054567050918047150562445792796160025799083229434798456600249343665315069708638513896267162669707859371585902843626192383875887982076129898348572366708491627571809176220643841852090124308633450497194411896564481891434663307191670051339161326931618970033953727061603880317558079738825651563323647262816033855632501834305759296322850718781155207261072702903032269361059094622589617065908759483118499095538251436355311612083196812693715471765824167134980353142800023528641931296088061646178165594175336721521156397454207335991810345407838453727446957501757644234650754734077687371284907697508248798695975405574047666175719805311722300169563493000638631592807314100652128783734481372587867741116317368983311647815801677782372512538276785746932675760483178842849118252111861735477854864898172440077570749367766396101332125895084694979504004930099841837314522846848257565307144524315984121045582954068099552144288296678415796799224938793187632405740413178279945977338333632174486093718975900907763334127904300509129855471081401280345741277877692033341108133735666136771914733200258998846264938071147182531325617856176104273240958219148850495322196889423159522374759568517847693078373154461783273834540180602243941562354629251633403337043168875186172254069859701659484506812182090426020541579075222014322613070104456879159039116346424035635726349022119295564779413360211414736376630355953326487721683870493089836469286267102071053388136270960224874364030196887763113415293977872200322501666719942779834429870286532883505887594409213828470617760041806207255055851403750851612144964765508477035825655873309551445084853362055221702598459681772636608797263699222841221526249034620527243256658465698902400215159954879753570400132090367353282584649860753672960291418240911475524471306868783672935795146041928204431367509076266851400463214246467762048535487081817802154699781778484540481557040618951159457074091061894518735955216434456252232224265506550761819943781849620445976717775142456467954501434656324346268153376162992724034024213552230552422596554245854418739395343359558062389247124802295680607062854511530538290450992767041818271460054538470512014210346295935799693134793238644600400170404145205721214484559363681149601539096845230917317476523704929773452023247558485551296972238111018185631547504638789862697251804221653999897828023638308244017063217825390305533445977398683147194379279823598908549002870238500251392865916750625656700891893089524159623338085681467220082937057607522105074521536766635468429117846150146425217136147728370952800572396049577014251877290286364794253105530107638493370061905542229357854223582703748368949569079785299446503534370071839123600568451610151834640774733910975783426884421413347071450299260234699514259563539286639909612487536785085838164687833255643611029310791966108613089847445137798754803013358817123563458989668590105035307557120710005485229446342023916110166624776668977259212610326261780262304256938108000661273709968567461860642975033633796331320543356975713903979878883652808455477261103987381436842419231679191696971446252237457537320604318766282333370354934620352686204071693229399279642319221781881836369511069951577809051758901039731939111049020864690484772325361312871013182228231647577994541968179038216066838323111415542689348408991572322507333991155686620691168273925924735505243813046698765565448005884996519463527852176138123327881919554027149186715240462075069485325006424805329165592519385338141220179452499708956841117143169325538745194815324039061381040937275101036019801999571421178442693806952804526492578034834119414831795828059304344278949292853148419558392637055399552474436571037339499194172553227152535675371173993478524396939962088387385012859364231203486870844317106793485350405710057489890216414932980798059693841099130449774057721262705108083636148895101659338028123577491728029888723093117966809204940053251325828691295062472293316937713226170942187691373926376484570612607963177726421791111721918752993017656095505472016077142350379850883638414907036488784313893384090945197211893026919848067650811209153091652482818354342897241981193045847454976608983257359497748048705747444963456597892268083046936988672027094466220067510014947274481695094000622308921410558856738380773356133648913821587791290258813450240403075624123408609701334728874870212142540510633641214894218584252304031135139266664146039662015661082302620892895559118815855257898250058137559813065060311814772418621359226310959840623372284728117927629254946260677314228643588386640134856480642188788164765787756517196328123240230979101068564554535159365200063573572770327448757348646385736632624084776213517841045871758957886992081151031636669171289666150024578531553348220690829344280798863726099668937311280074199841523462934695800620879089787415057608423590130220985917251022445200699562094333389167984409584996957415118752818467362108608366054321421861226717448053556345084762731003746600594842836685707172542302177053269497670202810879634862525777560774670036978234552169416820681367408708367323501520582535673954549594386414743274272762700106887177175269186725168387162839887849383648466114270700482828998208672579462040902517409326490108313033425264911991789304022709608966632426555121800868797381987673757008146499561280105849333674536937501007068863455418237709626853296293586481400539010677756516682921243076628338982334925700920076899855825733093445830131576189270922708924667226301161093605262696343598333191521241620369010943105344463930251674292766985308237986424515751263935229982605581465463451169833344004019648102701125434142831562642915432081194684115705544981210766820378985544918090018487185187422047846077728709374007151350737084576267581304743188413860677134115198645475002024969625178965388981981899278450042097125599492188287673703393844516065893810909041102331326571812212879334694847622551382001128403046870883347184827965451376368985815186674616328685044026723850838037919459643001062078009410668545095079487921676361514395370604927035416961989631320207437399939923621222900680661248622373538240752060776326570105614825507057306185421475243108951879165136413128462131774190264487628353022157537318855875233615730510297730574849718567633417259983423133349835268045781221879866948731657014865557486121552797698992011275918915716688930868922897116093281665825081161272759991780761592543597695556764611058368757342573030800816186926918772306861949445203981657010487391383186749545499440798768315959317470883274786758909952962735771049832158262200425313586219585540706232231147597366578136674488412905063871578711738297639518407735783580233143056658087167952986921112684641611872892837639544490150249332524856608766348664935858826465495034455574442717810381234643039275508075591448415614445178153172104351273407173657440018486109384814249537786690572917141282059235323443994028533994715887629336684127568678410233198761604912188700107458269963326828641922398605794713336502717187058645044996046813032745500185735839351131524186210094654143040036435987694957045387246291583751620734827038011947199415988875161626525275750784325689048396249610681686616410000784556466450849107955889805988676700799754205671472736358896608241913783469334969586265719160167771695571102923207079309757094263077264385370683953514507812232581934033250261959728191634080398166566847725018645896853442580394546247383159933367900962991145741093852746510891276456612903094306514926817806557514477741503144020087294209766561094654496804610588559233390459367867137657398750030741933178848796008411283170281441167225891247113260969527966313460009420497540579451161094798536425155863613242383155289740158491455952986984774253141197024861975727475609930104466436775786860428046986947597745893668135030477798889468059756567702707475505860883656810108261482107654348769431388240116452167866705147949858919932954867616238162168011187949447721203660290976956784977689666337235115557373868913976211589070021510032034852132730391840180123355061023979319267364844358929042685908176992518674907015124380883242231304618378738684546248259521792845134044889249992455285875566860504178810726161492457344640029634583328210161884570200252535174382564529369941491016903044860392940771775548744215912595359778531673943314666706626119568682798261775355013243473248143581948631527764419908050954805378995444269587424860389396080594178281942778999020717528167055472741716532071477618738874413218268067384313658432573624019542884060919133820424614527307550680044376227334932891991057769043036314796425001427663780655341689382299563379765231634166562847479964320203256205021803029398121743872977599996922235170392134428675475525539803775395367611424605953349787923006449765209586779441950356804918166879814862350873542927919064755021907804610284813778968864149612287998920680372525978010565440214022760015477209554544157373351012659191048002293712270408956971229465837818477895865784342327232453223386745987937518062885545001950964560095745391187046930961343804375674911135454052569691642055934878638722757739045800724770877049999777961226689200139235010016931800468559757888956795165557832818345073812210491397994330002049454844852580759690944803907084178264227305783129057542604416697145841396091837713179366973868051061411215033993868034704962012681912717980071795391417909742053087042672907352922500966762854375308038535468949669889177788334469868755364356953308613120222870882446435386645628069389037148002316392178548366326636216391169217382018684523832186292638582045353906247083994287872857939215525233447596767286591744539815653083123710298199736106887853064244498323823845484690212037871494730179575323716087965273338452237319796947850229435847902545795432946947359544392564468711784395078287213776808093479882492443555204845876854229690693888093535965642620050004113904338902285104450547503817503093158345198379309412094177829662033736244709194873092972888033212140638407689768419522880477071019404935260904990309058001279289824930231055236197043711404698356087664701587624025967196802637790962616873703380437400679217507590464202752996037564785658550083844066495536753109893369537615047672760926822365454052346368441611299302597127304437351104254914273539915546487724098386775318015946426391448041586963467154761304083455663291729622754612406028787639589203376042584391082649314326407458002946730176682073419292646090729309056434215823847033020903587710472029524831970800748047509462683236213742981526744570801334925240091873981464650249528764800654066499652132080375593477502264926892461780463049879149759278290651523887629516188695891976982045662871750377179567109362134990862185602245469848928819272380882975674749420602782788959088116617316015469920229822824694893637337502704737922572667721405809852260948398618236566593488932399912380222886449478371083856149328323671664044491891497202049053857654750995834448859772394497004951246697062013376899190837834951038995206584875118787280533088227984125503670821030031461465957153333770692737534325203129535696503160518683026242712838659182059500721257460141589616956304350664609747883731735608174082014616615792505446147171664302631203453358881201928422266058258714320382093100941205292989401143777493385213457985821350843241095217508470012172659679277617440449125629382078526177618740180135100168818767970620210102810540701233221301537086308705509812230732696337507973566558342828839219856275275110435592890001628429702988608918453926173990852671115989258951495463681341536109730860477045176701730751894512579431060561268519402059811218263358667032692975832950184923948027437298292344474983738453961350077635871831798649215992852499965954450856976480804954403677411819006377796077366479541911076297953052770243216692933478608945438228119971573384634632158954140979148132439243339437488583541464612039633392768367216998902499699146013770673202336374926641662698083151090947978166379430766744793133610758778615970779048025172645138781725343687197156010624689879851533429601133123957132563806640899811293177315474304331739114568563325028440017638385592869667500398915644148677168011125175928308774666862001638917057595217427102865456784908644003853478807950902912854207765437864570302315906118694120779355219455499295712775453713505203808883864735258301040191990893039356334519007672063104434780604453589528394562210532851570942971123586044971224480679243454673817116777886517185941264857330523968079595853840731614902512040083504077891855797983470473930474427647809006317389300869513777237673073904860003154431330094340986260755750190116617700744699472267982699589477756191733422945827939226577903652127529977287010252285153820569287479779022722289435676495905915537006979082279243262088068624352347329369789924849071599314556895636693848894005488491095518303830063872438437488201550509153064469924286710945478970788202311297371506073603963836922609985620506681952411950104299372652043131202468092756601009826814543389087349352622592335552604522572604250382600315621952675136836650112784447601821066275668494697444908727434106157817618465612786807783110801122639423055369024224805681045141372246640587916053615675682972166910227524829901976866564779346927320532228966995164343207642679089852832460175192925108958433308689103114345696439483682368548723028206145214432103859872002992633521066795623201827586474230249497189734534105475587315598377897666059399263457712427428344268958780958131083758763811306509877302313190401109391536582186437147225745102245232181908085726489302626213440057719432371839177515667577728508299281725125775457775253610650061764126914630999571538634298011935524494729433702261513290215306848756372416162021125740477774588375814876953732431031757572256566694625447128033087263301377185586467888934087409113282527054717830799404142527723043413296448838970244770626854475075234549483534462865144902005460062604086060365768458757661980393726325808926300188826150663864843248626357936128507797121170835030543504763502234949072373755191738146469715780645930141144403864200545359807200402757705704530952793170135520185174172594108966007324502641563668415585334350931164858548130347051389439582215545640121675894986636132907431180377788832387372154440195722995683529762776618620978510783684379772848693990399946086396268753975190114955410199092856529654433490847632022605419317370322406487685725354315412031202685706503054728294982881875471221007239138645508092892674609526725806982075596750586992618900739906097492137295077770655927313640323785026610009090314114531908129957071818343153711116096357407973595877349562694504053429174906663117689650877415472628417859903381524855109929052967643251670754502177835386738673038137439319006377473674435732097444155066109104348865366161150429969106879316919925257338050627809495341622349564547616464349044122629836612881334170772425654793332088608847319549020506176134931726938961085906634275047171804990377821972406152971505355234262283619095429253046012853590733235364788396422577867603863892152319842405602475423576823914358341619177852776599474320536927722955061752733021072848207853230015819355994480166961562262539608761722982686785955219124887164065427568606374318878515892893657426825933124369698356799096540050403277919714038856027142941924111887539530675135198010585346409813622552350906463175548804733576983395694380963000965965663593304623896284699680303010399982646489873419712681764829450281698166352413724687858961238330565155334953676555399994706332136274170516083124619869914980189218109303627186723980218788849583351071823940208277069308554339319191388802893549167032579937648826130972931264784143912740704206858409608698727617625003748713663575431546286172145684720898428360878133195203963575844010154288356935827955524826366343391639498451883142543088542932780455296331760374759852284171553592872999941916905208214659495376758185819370432166752916850878446512373720933979379797533645846006644365153786494270987747738935019590451852115045838125035883100991656325188773660450988884575402696301700253959295977294070865842481613515006605850750088004642245234413679534039219393332607100514558952750323382327467984051177231073606602222173642275208143396644931466181001441722192856043375324781682527736660059239515593613168753242997091706115188762184037273209472919528573751326015754292885530484011840849909854453713096047317745557638501820403914492304798053870409508662813490257415798730282263249934878669449162784932809229637235495588968211260589896735410150331791434354542735155652144765128894057420335172071611308878427561156208121345477717138540452087451729172563993934085110595023322230884865808886272823128943334832464458083384912054314559270099476336399012320711068187945205180369099491528989483237819676982763924938880191024564874343792960226790218759862455904443279041471575104779294817445968295692764019369210778600441221520455964402031780266670225956687793781936446156099763635977442619345493129155563504196117669721766765808066004198726492008088197124819616260443282854982349562407750602223928749151823224584841129821334739040934619929114135751002921570943767620886776761480552995971133887932962249471063069635431834814905458320250482406110697490446969424006650972638204348535539579367358521225860216675382552546151110727878477802666765337384776724308607848167612842108800613282342524736318829207329138749726895207217236097926935554377447150035219866401035206619494222046556605169756380186053020353086346494091948484979256092758526500660660579355554043760554637383629704552201266159825128155319655631593589398891278578194313632140898926901000527982002534633649462364713650892706998442725724460861885917146145024490146899886709325168831523906467237441402277520744885445568825717589743879805139937139204459157873520503898516164935854376909163799796814142852155135928201304874443604420913673864198286988511028418978364201067823886168426428630212952060948920404174085290104527476479302552602010861884279938951677448952252110973323701691337142059289291567828333432482164882739207501624886511009237432702475481439044007620084945309378696658762913980839016671591019191599523114229134998924561522955557147089463967367265554021645067397870686566425860563674605745111318997674656895048522138225762413732516285693686289415287943232747000431288193191114856237039824288495173929573996652582656896091542244861068596274039622605028535477432974099613409687399485894954640817740684032831833391869490357433907901746252323066736846829501476214514408558126240566893557752182347016895644355232105731881104096700659889360277520162831246238766873567471301215445603398063790072077468181026610254224903532137003989410258387696686636986339481611661859346147687302648748293067182161465282437762496227303496761129150925290489425535683752954472139774372616545708034380331424545123886728618980179147558577798348206768418717987681006519075543874792137308627724177617679677223818334020635074991552593484536313533371664100397184870219743465396354256046447063582003310601615627808048513708344366018493026101754395039672090377769640540943801007909259241967787478596156635106078037457513022015026232725515179923078711730996081719023128312740121250705585618525980886744469240310527428630748378298999681464858388561988473356699718864102189239331736060402000117505366053755300237587242362130275760972913696975574378055056239593567950210729551139277367630028592204877558494836304174111006383811903336387640950490817676932072185663099134076622953870731410504940269505415439686162378834788953855321776723932424674255172823668075448527783033870120535894664281153704095082792671170159686660003497628706064229073088363753649928251858450869437584132648564348048519979880381367226418225506093912908255582160715048103762457155578908047799702969539504151793835514982947393961406724147534379476593958215209024289422935046209038007625134904421519869550809253109392894375070810382267640027724507837923160276094083639747679266008031786300227630540169527893161603404027724493762105287300379092185464080681571178055542377510312143675202747081150880636751110806011648794994357876333708128819725385000567019988503121849063932999491301885491714040229048424996468876660817473597278986767207095004663205646470642573691531610671710019739193032433632840778186944518343984969210585994027821855543057579588187402649390793480889847544666778764602455340355300770255005138532577420599225547892163359633197686134628861964502760595954159435166393395669359038917864809398547153744493668639197244034361492633757712005513107018004155923240803475025663127919529588274891810488601598151379887956188933588138689120992267294621826535711312446868724250774627983970726520406378999540863438618445841574905865831387308684274745615965936187789625960167181147576651942683046315833063816460020128239305265690899984049609312242950234878609616132306564806840078092044269989251425537267853080104916461697682452349923140979379797440341153246815436695750484842146547275928932929851570563358716446167963917212914100047366659464988502022247237419330731170314445563495155817084144367773678487404714099714097431837918712539950233851980707529634502970786155286659813022505055576822343402365356040134211958871962002813848043469128891491113658345927846223792805406573352487302655928889026231933317421830339854699648047953207535871688204854150819241089214289390416218871250229833984331832867819528802431091334089194516449305835956581061817014396057980461265358262152066725219910873774480202876172851202348897863036785636726546635619830224749249546972358557141002006261814138658420421950905803816615655846606014684387668543105435559066754199985106434482048126871949863564842267984840480314867036928357642019095200121433235214879564632380082491691518316816899456828546837591093570762670403632336612959690109894112520898298465955031602811516377309458989489691172169172405001697628911099764315589875441073811323923370442213657935385516252824244181651825701864107772831491233465803458901778482816155160768991515556846821232915085039565340799899178065350604344706670079715654428403103768666085807548461465753026424795343076692819579077347719689431653258291006244843158330808276659327670155078981811366824810449243384149718606897985537772391833152552327293663553109078644465484823372847622182114969153382971599447376940371015980551952394882266317660631049378793089289621849308813795249754360475772308871698408841584373884448841124634719492326872607644328351992592989850389403550174924329646398673402392240394025464226233214621555190761844718994128881939717202967422455402025560821070976921349918514669958011329397730973283257015327218259590742351970166730241785854267184488247966267785764466585046867992757972620847318164509970082363625442850237144294451606337797602116293340558868539302050419582083318184086582553042962960774417346218369689001657438657767162701020198922033090201757969549104068666088755557458674105541735585384054053028844694171518678098449602734763665135064794903999211593097773272166407179522313353621461808811513620899262706311399648778559878969628923554775397745298781452489800023714403425919225815004312612687334731493913903059539481347396600951823092795820278883111356595603526883325706618162198346241526586462597037069716688530758822249464448499414990479753206391304085860908240863744272635859930030630745340760840441702458638471814538578064295925352011470643221678305711472941064310662774772078597577538097219815763255308994390834373606605287191476489914918920964717697034685727381651490217633242513602763396752298903997039324655269273640283431912038551900152034506153483434002078813786170631298540789957418675072596195098536247930623308820278414116493657455130033540967676485759956487653028345432311350651278579390549937328725970478971710940811613106864065985894850142363378024734504979372831911171226696348899455606773442570757647380338173781833116602876315808520586243817371050766602155378148063053786723703015906476378805255931055670233148073653810048787468976081380206261724940757944736137191505792952942894569132223433056806247204375799364579055496943020392668866820400079679501838240251438547569248021474506946157531943339055048020755326202726255533151690570717085330354655127313816628052631504995874513358185877605189637425065593773720281881386220863361617207060596881780001495624931638320658924290390495336216267810749082287049376801647031829693855716009551798038688445780750971885304423976086646538539849043148760543737477228546451854387741213917999348513186855510367415196112341732943056917274598744165305740148483316883879889236555829375606860456187255389985857271984220503290183071933460475384860325622795807259691598422779390596836098070512047063096622448218617175151839625662294534811305018348502855422381000430911130674963775377877830651313270545667425255661182264956104999429321033456457267483410710483347008780395519599681138397138514261033067124218431444637268062313476434471477543426865908471764640043658642894716976262145032548346416395312354942027529661009547901030019891837920486655586578389171058204707186229055004899325290119666101408841443516162069548329219830030100280336761939076173595158965073639208760799949334974369911007623042220608828267320580931070520520760459480882450311474636775393743353001875723254989179656324496396983621834037346757763802742505238347904504994782202537223642019525902556990028122381081774338778132482163764099706067100361972341477027440713051561571891292023257625764496694739849940983954255683211271163169698252824885214341401729739538923656029853005421112535607209152642073667345533165928572581989881574660117674449600188373163727567225282259727012251092766894336602252272652742633142199405201775123774563962232829578750520654508028551875712595889105439611926144099277603934299084753938674983573759489212625258386980776539621315901175164037507729981628722484262868082045437813658662911716867206382978735435726704194769615493804098153529286907028140451352145244069546607341069402818218470181003044936125386817427862819726488450550397730224482796997839330043355977967033893927052224658968071849596612660398736688057142737625932372141255471508993350869341523977131105792657536162429753513432390837286254452276761353961256668865661622095632461885376000759602223202995675447206184422315862208892802014131995760556046379147924912756738146160610187443529567873424609722644518927373612038626248645081070751639175743722141651119516866708995351115549210163321208456083974822766377702033682670624089450634062485651573832872088640965744983141733099313488813554687562836425515657425361358880327557224276857286009725525704560711624443105650980323431105044927307818045546402991744935524955486305259504529532754080515595208504464726581019217704206908689699860549402945321659244559238032032493416827895469896009388620804644252675991446739878847230292773840357866549360050345961577111225237772762700248798137610156349977667815387806428302482015629942241382130948154016693120140231208652191456717723214840109314564145125543165835540571938193060088817953163126800827083363507708151089799881087264284243565381962664526626535886225668985270925643813652403364550422211050770053174339586416343464236811955686147893968941132630067877356452513244740770663253865862630645839888053112845623230212495423129204600001891595470175389232098265820184842259700610803823273401771697896925677558614012349950209995755080788825767788969831293441269618952418935505492253979533088953068281005343805511400860471331660993195979284146390842879314024689399189390704721787247255590848044640535937303621882958608254313436089856764474489061568728935177940701370505357057388146192797549132798928174404270500465067397857003822774770349385878978260719100438668239338890119722442401765266874805758071885472296540199802208190831583646561344449587720348996709758410275853804697134225773658036093269849927736645594831934082005158100973615487224008063234755424720666261629910423326020007372981589147542039114667500248987998463195101801834312411545326903718619275276590333056972681163867472998910198964174137765744957349138576668179060953038793735582474835097494251765108967989254549355974154760509888878047707815766175344991981388918416251518734944515420054809660490511308220987036865138493476394949976422430608610414658210196543798907514285832438665946336648490213904756175655252787265987530402163654146839514376430069139471130192638684136191770843527401485365254662503198674904055947604399446178589949356900004568590161581890580619220116590593756793845933258476732868974198597295504559644519390445168656717135830457984283604885435150808534429464031216402665780980896865101712288012520797164764060351007576157796751722441280093653606119231004506653318077778515209153188093625072768413285888039332476339253637987183825275890608584583572884562336458855679467629253859211635007115323130534265313187587743185314855468094015880149060087161270791483980916048185390111813541573890759640915423800704544028061976245757671004417471157615558789603854810880931039850761286841296352706564686308356322676222012840102323646139404274205619674015712615303400326630198576458091975129528905745263749275820159732030718016332704301123391880438688799169439358955129327235508291355357352293590037024033302534405390416914226290428906485873026678922513844689124376077009416092850992097320914357871782135292925718331472807114856147267724493696676984711488781196196858731708293339576009413926579545018030461588219985715815554907051483135802398624249984778873210314257835869730138327462015325848600236206005854830352487605824252123720096573723418182332848710616168979752560921714705543396913793556468424292964733732656330160514784916034245272855007894042278343739998585687134500892029909771446715184370877879856926541786515128786758824732089708605770594091742067820740246232039427742238292279604783995100514133281219349071977212919348608509501483290130281753609518582230711874770083168582869264872776287044443290481157370855990016654463929451350678252716675900932010878520351471627281288927680592355107243883064502405530099135941616230298769772276555490535627683664234610114495039835040341025423616066814380297900368785597822125907438956215090065109615109606326823425754827743482161141140327083555054361793792505296553759818488511931948026860474180048603440243094088441549817904794114319946766288334031442377642282744599573806653893371463420848321000387056356977459962552039331396852082581262220487678215875395524264283424174747890870886376913411433898481974485534285625488592445974764621765558455348219941773557591393394125930106560817737124362964459774549189722520785032541499210923657081325978635373337967157382829700572140283978267120267366988283958555088425103219457593504607463062038538582239347812351493196095830973499307277860033006563243852443150790753470729468485411628050180940849854285707543043941882166818455031626737129673206350640024784500653960265782011850724489748229011408532082709187415235675292139983445574137657869256739312312602089381069934727588530907533275463265354436149848437667576351897236971690598797175953758009245542001516888072266205670146763025895173052175440421572595613520718099315366596261908267079741118912316467433226202907209489287559909795198835311861560880482907440009946805685576274868220521369522038675139701599481065405463396982541764891600741897110339835852043671650103731750055352959629222903344279157272924692432590371574528201342664810534323009930978486732558946439098281964994789314119285940341045221855326260244706727874090566223392435862446218038905582858147342398628780126870116761905088627578378449335430494585506001988038382662564609023043168703274351021966505962185376158090616357342126492144385438716567311055003547966416230153844903719154774983757566544908181983067492783799757267239664426846632577230686369583267304294833017033513737683082756409907944938142341752709785750620664752704487090182815431674686703869926130687581208519239108249514765885273923713416123357011123799934475346144365643617436373630392431020767964716682208394314887192046599488590450804333932825576105917679539441682298583129370579649468312862902690525120370179040695616906115247438110568814095033622210074945880122816081030474711842810700609146435623353842455723305678062583500141868180164864779575448155225846820729028511041945529205275877296734820887321986426429059930136714373461512052594954798961227814753679202795632456872383885398294538835178067209958082349166151396015549626615277613854415721525925407493308854614936410447279575125890192363021031821074897585331432854765006980409070038674908709498077376603032762059120878449598982399992533756036340076959969898510798492812424524905450219884829664047935596070207213623049667508099614779100524474646999601255420430833969079302976276643410049043068305672240605231896115973116292541288138035325331879306563556758549702424426181277901601953665328956940788020693803251601822081280766856648950926705772328527446629536705891005293899789521050048029893457242840130722151831708454290068834814516444047907474089618572020297750377418301349058690926237790292641134081825990016265819732233598501511492089690111499424306684889286817021854197694047724441713677107620046365154259511066461281932006709889531695317440068638640019173156735820595342941593082679106538195522846779659490955442237425666108375728257235844060456916907233719368920516654242773072797045218983368098534675141083774028235282711971461598240523463733091569920332109905216807382812695090493205795489483068610572921897773611017627470363645791349005612210482892309235968663958581531331715146208328215248590216188110081131667797545370911079134020951940080975406651029448012605390310778435959058653015998598064861985195233531055941825963337666530092278944933682640261935416618161975399809738742135997688735053495261928773929569491112955255098125744616488320663161297950210693575929371447409709833535644166958417853707555873993874837703749435062630657738032619684142130927884133293676482237851646164650590287741849118096211149058766602971926416967550430467671188037917648819050431244843332507040225980333036768414979646818687864083126267294054934185594153933280616160492224995879753576492219155373052752227196103494645823074341829431637352446379669807985127801860905990921490395921889432854308149431108689407094426997927625623541568461707943560620973619500591283755689081369150998375912997655200918102572535005531617408109694905857848088374545887969548054637830436610882320403820080317853040999701853425492610297121620197192675854632003883848112979742267212540065429492290555134747572622210568391799009291554380143444659025122562192499537591403863443472478757951768762604305828240366268259576375900860567392417632337189080135324852504997989339448599434487389302391839624662589482561229307841468679039035376573126568405616044728169743421486491668527498186404717545864630354689179779970226925913719844104816400261826608779478950569137495879590848606850329166186550350157944495041977158265464429550284826804235314213816261238754360222490860022467470790173655945705212908619290203858416872082368860585431814937399310300219310618360265344037696614688260906654284655945935364525018068446329133931722821460290030096930061865771705378921382123387842648362729356414407793719662188989168004736087235865186659921576439057318111023518374063432496540808615204851881949249373840157900699917745171335475164150260120895827847814701682685135276038040730119657144431423374026020491704097486520606867167867662121959874958866518455148354346509140730909433266706985830245734545888194789786622202724754729691991100045249827939855822311849775851241314262357927735929056718193387857022364547399160173183941820967304170575041663269737561365779264149487905282974654977223997973077764742503776420601315728728005680693334734850232346642745139294721529919203741873276709490485943409349946828256855928134485529663245517722648952804489403373105961616226279730067268180490261681670401889582645192872001085792144105057374301653488091980053937344445475930403824489511483473485737857424624081841695688097722490538583113819705428427365534488602944134469860433354052737374052800086609463570060253292851748236652931854204685462375611393176981602765171311501956946764871211232084621072749833025255006624948907716572891881894252793548788944753748730834385659204782781493752191731915120624335364132264231727337458290803157639248537292862418810055558099530174323787759982018277313035362984490505550138604290396011363442621859048741290864087486332693477587134189895597833578844742877967906792827724560695670048419552307477875295519037953130386904123040606503067355202929454851626456270015290886099238579766689220366715378861806629595747406224465428828796693681182241007710659194056432808107951781882457443130203049068078000115097979302992001531649894111808216104517244536200676358623880796401323064072389822960929738975639128711639232094022775051974019645242710469346834157843833433380165453008539589887781299446610372640658809723158905650795609739599220502799459166217803253404961209153566373190233887292998528972211354903904644438293098855663032855726051211327237366031740429438303908275873003397460750018068296873216082209409757064553653906020595698362825789529736731881682198909424915789228752916311268199724425496602103885909478725587135616365750398413918036550349494051291496459967154341676668649638828306067449000634904236391712390496782301494341031819333286420317433185141684297455184399589101126778424050601425813715163309029228448749125860231773948686925420997819613197285408250638324659286868397560497081690947099361027565762218671517493211494944089978762574387399644524316681102909258456467429561524629825874909416643263569965962690735093558506458350257683362654706732920212313516474551402627272204488916599651878214060828979036978403048829749246954963180167772427258250685665873789195265276693169532769053247627337591319517736993326290489404486603486457785044536995581546084077804919193582995541658118186470254081836115950412441996545927616817105185539849747285613411144946868491215468930827168715883947890519862484005678631514429178618680198591593760913865710756033057320959217731674381416361361411957718314992268421458261640784399422731974764191978795219947315308169938033273868076962608225127202705344496404097844002758173637111041418387127483877081002904555044245087408338368455599539165654085747022132051134517524113894718843808778934750015550958145896461397326861078767050848898883410979311020567392238047864881908882857400071988540749429301240396047419136048101357352369440584790841682774255637492836919735944432614592043288726012702960695105228171629792270495978330735206596885287439626455597300553732639448094821547307576313821155276383427636105829904012804843431629628913044063632899624153042952949141945781953332222473993065226000870332881969387573655426379741871225272176636829708475983830078982180960421137035507065506891656200957244908138801576590668781620085547358820813792968902792988410366335992963564523935539554907414470324313356103156502805413248157905517749329583713642249611210796105164371914273512738655921535903342750456846059843148700010050591908879613741818158208369360748405595058045576999911396523460016897385244500798482192970908493772407985381820157537378271476936683052146762695261792973748138626099703435393031805918977994670432609444415578618751735123306480170758090664195845297285683323186746655739255380817649438718260113304972380601624514966429947143844248935834069213255435732017929617329758543857978083723950730048099930506835967207976228790301236721943240673127489644998023537369821622181863644090317590675819926151759302691987161040772390893401975559184739476503179424827205281313406707407271197907688542202412221348404775344311244767475115923150706509592517482962740181097284558895846807524881012319317282930325610687994773338290253480236616559749878312689833600587385199374221280447987587387947068308099505439433033509344627248977273586545659168865608730907234438712818184240157986367844628909795826394044803359632440501549467023602361459278582325004956625683733258501489802953731260365561000945591762972337935146312259266183203749333386039704004011236155486974473969874127916728766745268039581213318176849692744525642694914298434800245452328285501802624212028468917718297188804706030144969513407341942482459093407342895553107060152965510431329504663378250532866304389174520367907665347444060692803735958790902059125337205423894125554157389967412578272104326306763192925024587298104018169404753929154222742657531630721954276731772365940986331581611776843267837041589108157739890206152211952774749811289948848828345719171448488306847325009318079281004459319736019368309404708649027624398055355429593409607885615382228399266749803936028782951654228418196794955301704351009933927238534236192709317075741318790007993233212694836826394039753470740469013578437719572928695984802051397868529449743030954138813054716422761347047384954269669458680492415079601847584266092673869406804625067520629015175981003123738574410740447965064791201227863598929783660395072397969879895766837104863966275224559876257473907147403539497174917227872292389974760831640507372517905536102684798484801170571383051359553639140901153677046525311553719585630094827925094288311996896619214322408977988425662407412027088257864187014503555990449685589576496599170557555258060525379586179756309382654639510491245707954973190236333147148161115103295274995954004109127184706854476241684564773253868689471507112744176713557280464783739198758821880387768111460481701496598851756996383605454710547395085759841676848256421125326978008052853419557712578455467443862790409537383621193072261258090880183461415242818850684285359210058431054192903668224612337937547861581279916721666659986558090158677560226916154783142897516640635180679148384887150070088363425198009343205449816926485200651793980086109881228380795474873069079885982363163132433029160749664688772618216031791209190363948124700408059148401127384899123590055962026942757597400277639948071604730637156946211544348375641403654384757476465379015128840287428767125948304050206664043372176001021125851667758694998377232857681428831688364726644196877401861548513168038584572165329295230552926830685323768247037322004460189084330587967952773008412728124226703657361644452581926480579483243804668405297809916149286675928795287033036377376121476127200523685162680676608998149249047980285664784444046228840670595064999491323249473847658797087127259365463632306208584432660761110796019693068751942846215099496167516327373819172104738218728559670021778620366692593783031477473363809908994466648632611698501720578817355551255753545580722074648722905751293691309683025271568453896110545317696611228531114544048081300637176765050493598993778222156867566849721380015510490836462602680444051614795280377214417872119907492812415419014509170508651607729547035798797675116567908429026501253097928468299723485379881143076260858657843612447350166538356057336530737487316862000417195966468775148916046005537841879405951943313427191415118691799340819273987575746930593474237892403133922627600570813973736165294885798016888150756381470087611826286364736165920426933656116775232811936660956506926110877872975829648572094278075238631104897031396573290509622375395378980140110220887664921277266456000444172511413171471004096052669001926468655259949534010953860477925437670367518273987893659912261152506136975928528651377273081552164858595058900814678581914803288952406735105888947486275580874677230185398198745885179828238064817085049118883621194425289648157805028917739383214558301263182437486930446494099416332777811940839184889797078204056312997269442943831465027846341399882954582848670375257411841735487309125642853438599032836415248643164312969439022534149704149214560896216457104002949477156342716311529833784231157373068423376550959507651621428734808265902439996667695043316646472686748665123588932799114996052770957976659631108688517610155342700044004427330488292421660420007138744677328504650075567128832332787999105501423773456029124125021990531759932553100356777061025105689139786733099269188247850441529492625834650990465450187332005722694430213769822911005625036375615002102461400207706749236581456625925320192654017193938324434859668747009875580828006128054690748974848145257739534871740128206474097007782811705514992362959302572010714620937147471853903428754490068315302260386752808862049938300952447235519701140161908400352769890085808716636444687855663103991559609904667476293689895809347613853931864528870633853801271198648233070910459173040755704049194870458325774830370571718758143685344834910080710986277988185269438540188016483574265186139187589461761515576284203561680756301172353202939398955061062968787317781658388739156968103201423954465760874083471108454214715231075683136511419045138438563763683287646310360543702372751596990037748926224984527117723906824036227203298438186403142577157663535785558971494079234390986651639935813629036785284432103480578674352844086425021622891929653871837055012983821118410834836928952104307781424583184824405624508705714798487509168721391107020155999704158475425458978462101557283719310793290973431410494171402034924156335232968207590787015546480558782381699575261687932111499275296722794133875786172552507374173564531782594528654170542773145110722636984694198158014809461796894317062846212765944216121956160506008298498703229987927474301990763983515181845269937652624226242051278381939189820628453666861620987574908210559116083865889548762986767564857663249800788472262674800838418100688148408611962818997866876916158840060694684159871394680259894140663503792683248592253652747240570219815487007306252635526316872327027465323560114383259622693196377220794519200894480697909122670428095412023032434571673689235572303261580225395686001276635220401578959198924174432323644213884628640343927338193754121059770456411607568564500429296134312633417495454279532345372346411564373491908716351944528229759745100007992494373864892451860934156066272392533493105074883233062169900325909749358089883221921993765961145021387528393602311976332708678930750886673441780694504624760500229933148240787798570133241756538397215001499527072114891681604542153381742680282495271415017907973806419039702780217014812068423292644840540541960859937337064510967669880966617491010730763670075123778300801088251221186086957355784567476033065595067154003498115873781270782434706496832585038638349025878286798457289539686585587201763968476288847708842196324475070816124708841993547309144841323198793312962752674762099145251972580234276840719314467923987549878639635354868184443693091358594926706409194273630497342142383858820911383108036167451852696025069472189422984245414344154623701182686746009888855135647608823773577136786554268572811264633778380368675121333622952705740095136336236633545356766596870286928986878198893540696905986870153765434148526088291032010590631299598213431010717333067786559513174572300571448149341136108597540916437460387491666971395116810523380998068240887650429074119627910875494460542836142080463021067320344190388634818901541592744690711532723456755959318564683995661211835646940381882615425568274035098535941252463720354915337434525318570135598110520880287688250588786915695593430066519324872867990150576112792934802736629100000040615736782124043843816485107990731187311187049678442660238305764471256987293011878038925733386182579406201878451840942132039599675368662079708620474563622247005743951046843018976658591499161704960926448598547494899502115257312586637394260722756440660572164873637684307451858104499202419257532197297662025253489902067023777305341761921587838061912700858321427991218953439258960213625265412431238759643113079043408740697943357631672366339433381321565940962547897089109297548189124142502513342825686796579134418832377291592876806404763840227964296999079194989225683584443600113962983327185658590203906078804179243306063099860425856942926921533924661762920652538875215286156942825236467737020498452930918448538002499713841668905943951153441836409139212031223523782569962702746094047120044265757802118182411249460258477048660750689873236443103208064611927158224423409136802320843128602127287169033403908500801415423500620040285411009580709721661237686299485646747013165262819650296601999823188850302297282683578444161263947650455458785782916202518632399757716343073781113455665741465978280665674269781539273213860616100007518585567208169989408253052323683604759861764478665684494719852849268731154708579615272411311324229864136046018936798175629389266982081710445500714167191680263481240986698762231845996221574576193740586954334904339273004597160724920857591749150971166654402445819476999151392906515962590995666759889044119433126216594248260951921852561176609790264443461618589694963121210376461353498739061616065202380143317529494520667850770963345783146277771752463265096489269876016588729094210581412002417338686627743393052564280874314799911073653661802280881758084181594873289031959082987360312146540153070431483526043073324198220103282799939321146094564105022408089375180475366396422078550456117207807341404584273337821551444311793079009995357991259112372646421893141672506826780786205793953827135065722444008250335640516664805887968757820099403650990810490894933626296227798789482816040005633044178539810021544616860290977358452711110929742164203269295509050774686685928205451841199549193635338922164699037709166220402382316675487705712220193947349842204561117090541571852004351628767059834453770585142441960783205256368074009020785371497441291884543456645564623308574141228488921989884578501485084469842501671783106722455042752961134452239710354287643291428568875668099146159846651933680481143588787417460335212347357186666898727368271378208261672143735088023617084846808445561500166158068351105999856093111094168468810537424750666363485818687074628386912190162997842666038096366922882235562465968014741578370261136836525109919600682219692494959526839592456998450575895951384560302501525406723799484103728899225100354375446975584248323705818583417171033579592778198930068748600348294479995923742227621696723443868074091616910255061936661580439382122364108985264419240040834385066375292597766406378528246747047309440315928345229406749494082381050967600904469432214466422362277969871318081298943404750724513360741876636502432443751429938077704361095465367392458740510518593522178192623146482515023522241353306613157763675276281524110357651397091182067313571481036131594195458963478131895318664991867521483651210011336774098485219973088133762075948592358488540989665063739920063395360733782735370749196131798803364090034379309562480597523565151175431289295904479946984388870530571650145696230770787288229023716589374125527285074198709697713153387494643033231722578923776308884760265486328096313573589229196677903551333118158917438894458419876923709211516140215438451883131154774869726041256062000880472287075703429594809226722280305897468869824762851747581193577246562557951448823092262483050211276172088430584563391804885317235208979447064875583659577645282066842393681592883942796651328367637936239965759978997655827111110650583035537121156076289258667957620912598096786640601932551646279694435002968275802472454938961718732129366233757997534845691996104287270309463486708578700174006585077907637163559472674780444203925749576165849587974944048393314080108938284397003043268570858887490961064235673176136575739745440505760938053013919738544722393487433240597251628897448322373569735825181164550378809369561477807124616281790752395225822648287276015939774116502230733238942269493994149136221628995226695176453563760432601914024603101550623774977545873306764087888540435877571431652631537581399775109025021061906370484201640859994273424889259708089404819053949060790432974372340433798789176651996074155337854193385782341728085950211170634518929940827710837375411985160398816044015513628582274584437293879871728976954079065627150116231351503298674295454438028844198574427863814408680408640806901898493397464864564287540276966322361362517049466098268532942733359837434267162120397437286550662292929428914806002862242326588294844184472888136742180770020014108826679116497624984205155676530565823358438445041404549992510318072510934828694392587959341395237066879062809986776929734006733628564445365956604069783751404832162356992554331796673174019997263064862900162434266926802864705718554804749321782502504322976708025771085816384279611845400084743160384162993973833897209676301256658554548039859655883062856024146056273165833351475840117528443963171324643897749206794155248401206721572405781390291552412449072415530996185713221938387441567261879901003296808297290217807532068772569003009344517082539573936292451208958652650831912729844605669083901695983024331651646073602555114744839122126371008613062257723438391339583125350438347842658082247794423193215437139374393865762579564739093836686926174734116170844861439515749618977489355357471499127965258734019541007315637676919632409468857376877959973185899110033942205442739711135160919334807807207992845335864795624482893714857899016380475539995787691313423918073333291318376801381978377878848870099780278375681357476027444401716822186698878047950596322136585937255220613343591408350319592628687997137938057039252383649466615935158356899661445019116742807149180981966460405674390212543642239836093604574643734357505942772520244850151441598613652060026519354642075295850947517752574205435095664331505515632077125904654061219185584440570402487422877701906527408798223252849408380231221883484779992844686049101276711034314565332500043835579247307533535260811847727264266953603374076279075050071453944270519705557837631686177472660007545088681680420857223846175126224746984564901818208246725225832550125358332620555423882978218480635159467457624156743318903858893086188674810141039151001619455275217931818462805959999615751706952029243455675738368983760393338359844437517572051996352009140402527708634336199537342191438742951388600771849931278423378963597870679389589389575588608459488307413825617467633275504016062169960974562864508370478005131430264177573079502102172814712690609948273359185962178929609432190286415462861531858468899725331075670856057683624127932857556439047561027323483595666454291165957102275114298521646174924724211192601746297114993064062676972513595861220318892903072166640240760788489288475222094864831766647174854779882738021509728700219365940793759257695107615225644109055627213369612084117519993260170144969313414444409951201203585820291794308268370707963858161991960997425688521234287938630312954863197441749859319399386260356499192523362962816425295136452406114196750765151007250523843151378713926189258742663068649308390438058788012748803667089706610401941032916906496692664318539342336453196875893116683067339484140971337119066673048137410996860885175283604711750463082376650395903261560579458522555799595674526758070428940270452297241056993933249806110757884934660946784929698662028218086421316090252026562330074199628524608602321553128899934474918562848157411949430872121408951048366985089532018762327546126829404610442546995658192659060751362544800685728074165614061067931908812873257140967854410923445964759381660848739409508555994502528674514982188646074808268721479976657542801378258083824485014206263082850176362504760711950121449927498616043058502806813508597527226673645825149000164785996034137830508586773997678929774418577832832421211988961668990006556446216067116313918217929163499700856569981840600932320011581793739157790804100920276326102135517551338880219853026768863145596606476982598477818829289767921590257148401449993018977339084078798525351033228656457204861945049960533188805664687301586847609311479479848658051446548972124445611560073840871035722247013563939560481325346008149964160610086177470406963305035122104514013950570658872811359849383205514341810674224387970873854797579732218264618628967948446276133195833242806458048581432867845746447824822518772167834963972452683969140711470035558931858713228646137942702689624350124824843399842043335179831164019223928295540055916128702742104874063544053541764852633564437996130691710337991475481979359586826915977902801280331880631727403008171411469908895994889759930297133349760235136483846208831033324525796153785357549927853947027011651345619095227707204786357691649476579869132095460506120417969696120967932599069881279900049163862621176710929028723247798311275877492484399444545678106545145924040810221151961241310139146054411425920293275582502747975194874736171062766193286901047886339973463127199981671709644194892747340358994915168301762504852757840036526787169726542756786000052745448962357581019708680990161973559513490531854933710562789846281477320121707863350401291845646459018973322414717011645836282114857109483383089212217732358505864710531089115350518057525886690592387060622875173596116950063967793122441345404689702706845471207068137836580135881118428623588908875600204778690567110006597648473495043947392404612789673852536365769387642728914452491521802931728108297923315254640705296199860060482366567048246209025788389858256376827040575157504242462534663765036489770074609773583448633987540158825342707318701825339740500363375948964759275579222111444846810518985852061000516719217936348034345824029223363679135816738708090082550373477912504561246101431975227311074032684918169116567594926675361908671942693226868921399052772940094011876690731514005220763869358017566061496606954406988990205682581288340728146976353495950465636984153277377208930469008809285162005070600997579815577908484611555494102221894768919528988712468190431837379534841344894348046295688486650537393972244906740838674759217315955981404571679075305837431883346162287271905426923208380840086042908764989310843211921990762739468915490677856110871684342797918192496997850933429661894126075998931788957379856518459002250973715095257451190986604742123093089322268877644985255471738649009518515752180752493766606884931220390203938482879707519326968966961656720278134061981448127449903937486647835621075641118702743730915569148083722295746003438189387432910172580370079306527914467525701932526396732255426081911411812100713363927069244254899573140846193552028294407662815255448973112242883823331124669472260953869637327337451798970708101623074778006241045878228097182046813946038680503140564394611943970946109007352450522940427051285829367699598976490574224777341759303807642040228956433678454861339639597366355434593287744077015780596408322305897700086224702041574693506984438784461423789298665524049893092230995388389760279793713510122793544820996429807218702573629862818008104047655441105731698987353511935097312783185069020571718587517670471090730021682835871545698339998533369233963381301896451865010709688459201470867271341216628310572471520758254634795033040868181071679350304393508832481549730568329572098638877369059396064844843349518781191338989969121913372464327411038715153681412601919178534143990297155312338215404431694299025472298794159610936964847035197864489757083394782716248327459547330492418157840011540276288226834578948455785500859439065939735414425330985960952650081360550582546636609150188317459600535453079634446385048283773310595138760152472718323860726968599173618261894418824616408352853300645233278860532933482764817506516448893533134807765972286658741402648226521294977044191441843670118607812245049899437254313221278894767902848163033556657120919732903603392879219574431709321163345602287481408044330341928332312797305864401265994269332753986586798469045390144708348148551316105517797905577976104765382242020064222611743370652943254401030951709700028161698218905976787100321778424551873745635255205987386414918041434394119332435831536348058795891540258480052980644206707374568620640376863201052088322074044767837118601595408161471828042136550034809512648321790617164504048650651590832307600006245295016288174720031829481454726811474570624624204693443272924283066751793574452436474290102510526584840310920449234219887196433061968029714533026319881218887523542243985251791679508356624799656435517896148334119839878625493394934895352428390829912412283154403629877438012122292634872910645714344676345464759576400165549286994030910785021124613077119946420259836906378723714865196235924042238051098116679206081781240957907536022176695033054752133047804823212621722763481702376487684599812373612425286208958339672950622192268094271459017887808676441731691092258356554577491367989505169695088947287761104041778635045338755043735248571387351274026721473192124589472693973771600898966655051094044985961255711750911900192913914874683644924343260007094734450798164588617259794616541748482858148387356156108077349710955828254657188032264753648445137327966413778297224654633720374915813072297947160975552432681051699073472559126560238311233015147013081810423957055813374515621181719376148336852723574084168277586754263768453142098462559422494497721034174028536572096441037302184114774598468200577885963540979354994378123618403631095523386863558987103783607963752290550650250906704899987208385088257090106307402304845241514379159965238454440592538092581683947377120283002341628238643810520731367237365099257505133801921433468702389931706344882631106943469672615514501664964895131300830211512771743759405891472943785049407770010730215667263030877783153197791926341593145228932516785845449792979042572818940940547363118290205821836361916958285742259480345255996407765065618199247096091010796169650835533673898930876749471455158742980513141585712298431339737000741532134977546895926896435569112985336765861157100099541088494248491173596283922989169940815652810862079862489080277269218399320489620760797341806575140052278455097850398471823604195002708258944128265618697223045735731611067909375320083755657676557478403026129849776133147757969489067158001093154613128456845603211242153255633507657946329670399375173630062245906843859901335933636246899302687149868746583304065535539350957798432512274699508679104454515353648585835893075910510888572688553612093206993798910888169229125201043739821653287780384444038235141389500907724629624037468161766790566613487028707771137511970888890597935799691011130286681975085112669019423245439119892867416390173388680583179893962937285115800816432832837552713068462667358419215904686680123469996057753567073528816163768354369506088982351914290871252127605183076127595909747665753774467713581234981027403188261817826710710753885655034214063774590152316840713421307905219777878956320775295009345212902565637348298824252764183322369205774694375188275276830403001959055628448313329681826257849117336757150386319150566891154551538857727164735533839895190433059386092114508910003565381104068269885118461475244214265043742765031636141761418283960493918660417342580108499642436091765736155419241081859301789609096714045480789961579146161185030976050243625839283215761837070321931122296363180527692283380983672407864502754466669626554688197218964627628573492460778057459867229257830762797033385212587116419129101800964115439774940287438084191593688078285296209423418212684725009608995973471283366483103448189763984396302583671144227052040784664548757919014676193339293717094637408780783222636431344785131354530933719286193867191092207694902369079923568502359085646808502545036231517548419246951124342623321517109666851357504281128738696150529161616240596371266952847080787781358909279491706892980718638199034992782025635639386823325207687951628100181247873823024546730353290948047234627768322350337004215079513330044365500130186769931418752057838362173559782056002647262503018119260071043396580305527097626651084431543892493512058762001840895405686036229110163351424904323863552826210171847773368814167552165786108658516127341591793758936533877684064837602558405024712296341817284144571829921161056342215361870798896784721448742547452144795247729306303573064482283871284012347860611732244368659635325182425187864169454061903997773626348322221489253429438103146970388272805758517528620075542846868490797951652436897595017977057614677369121534968927739272637755023509334953962337266114789435204632126807029438352900103556938672811653362744342143281689756937702593128674974386051690850116427676007902447814683571658836000783728211429752803818029528370027184814885628751033072101019797006860992397506026912834253437585125469541686094907159294700119758914662066315684116952101894031025784374531430852308084600287900350811672837446005925259695875191349135160087350294237940794567602452361930696262847891921020258515977472540738933006379369224670191033097932056751711425064248856469270864619139801756826906202234366471794980117144139492537368486997202451455188730297416077214462792277515844842333509930900926966586692778230675654796150970775957307145746227028433246596120021775501524938844204014908815803484355816190949004708052804160169026644895670596424720311904670441352869159588756472347565103424714115688185281725526939839091407771414312568081536585974487984747273528283597108161664706680736411168975050435668017607630699267451304956063490209822173462443759601558549976566374071029937561356541324929883381079785194775555573594115654088328634408498227813338249616249137880926108799695008393869662673755571114414234075958158401390098197931149809821551747749761613647061688514416159212365930266350371757976899543447267066333501185819001022428678609424332340593602345352478904980720175660681711076260446046593860865394094916842931082387886064489193119445032873634102365193796527780456141513172919146495942220398627624514965767226705722738974946155687964999756088746894573446562307068501981876541713226866113113693698527630672388959621373745861525895057597160392360911288916170433355770458929924790850590013331671617993515252468095287468446655015845406066045116568964128940903727308301970559803587738297380853128972654508411292074835624733504569430567990042716606180970456913916657891019314825280564926961052514663337208234445619380778645945650172693689659654362335262706471070130338278292275988148553201953855751297145570510209023601077612518398138700218356794621504405003270012319254336616768542593653459954515070026908405149846000026807537821089197707755343216478739008687080629805473550981352030072052787219478867594870771409758730249268318610822067223074248174591830693691480400813499766416194181208302010503797527518425812155488329575008816664233000447461883474067211422187967922311441798821977421669416611362542680704363448441550612539480127621480943908773855697958795039318198242490123355793176246105201745927524247584680635146926665031103374166029162386578549940296967956872343118630369970861312665065223221623136661605435787631291145911176011701985157052452153741410913080916688585809443698140287925478070843272214625870023937521550482043958353623596557434299722704628867726954996156721181453731022497641579599717299000221661320800988704089983732366255231494021053009586986044182179009750708045975496133681722589583350382215098561346039360658817585539831888295353983859024207931717200771748339815374985350862466164991708198524270078040332536821482350390314440074378457066494948974156716594809057633290884985593820170220151930160080187455498328356415352119301389414295480726932278343075848794084088867511014004835850108165358633631977674486529693118372715907349060729893731975478135499197818325875019777839857027538993325328987149672034538374347584558974043863418964787834784706332791446316939281322703847532890553358898034091940064848243745692895244396446193039527978224005549936269853632076567465125162621357676029357291852202503736343107734812669189640584974582658653635571070091478529626853389514548342402630789523184817737347806783923186516108232553890065864698064581074330328218162047659772177819779997733284538273473282163861925523379581174931671103295819638489180894792834334269977104018909609029195804919488646378647223705493260174131592002753341502686894174107027087881664196081282663802367479688463830413406643579143075748371382315967791483695892470922270181022886110552618619229046439304608375112802922278036150140947287701639285553225963335710640597601152059860833488958153472062880478073859972472746600327311012112492068099885980583550254338980046192145780611594053272160241211423262150666807430370781772236600463135265696526067117324392449978098178153757461195174110780050629972282987105909488517966192535385615616717713283622659565472210196695579714597127354007103598764209914194595801204234011137531652738272111805587603290689420189174668467190824530755842674606753794465228511308132002864732223113831288703080675034219016885398080050014516606867602642674477622590245095254526923860198384728003616287044547926534964810618890220622095003080098799230547480943857237726735285919288416297295607283360179270962602676087818040429663075144846306991293294146921580532369510835346764458105185714253085894632244856332343647034005216885603356230350531601818428525013245464913190557305897047366053156543104491987540979213861449386161819846686898848099788220354712154207107668344137075349902846853385368252252192739916217260273811686094333901975538296325618516910150545180215763053426635874044622062570967108679855116650279536704285270514562361696659546688999589320235781006738539326929682204826163870785115981584100565698992971660808571317807936202177406529215665911789042554320541108581206211637933545945857509011388420962967972847693464122008475478353426078604481059962720992848827477419353318602586670156244667027143338521079829296707673514570813379416794171955835089047070791317259346169629734473199953279592346400849517787631752595430363943081647138717980410258107561752601813337792596700034633095618250612433136682463083662780931733039234851113879026184000640295456856461473668510408310267656044589072173827943218818809965633097159993618937359092184549358501278495755715024367110752506636474193700199232562075323786115389797387760361398389348794282972993898668495270197938016535884984095981941913231793743898310915886374003850902737198967555128830472670192073317411509322711932581547888177942949905978935350131142371327671765241090266005073011780871266682225261015504149052786204572897204075081058071602119951303828397449066011794807336044490182009952991523978058601399139029781977705964190336331964213945706177487898113870738819173369222656172850584042354078139228844097237546544271108576481729042564477527037422703529608876415040384290557009390425477403950538805193537653105913965277736345356119765517284849940229215302251765540200609159344910491100785937632172195519704863893210999268302349251794106562764017198803891769585928505610075296614450984893211273973474375705461924081713210003946564238839401323852996627311951676391542734147122964395941815045027795301619807706689622262522833501572590272309624607679051063208115927852717060880068477366560581107825571428608893139229899080639059785108484638696939406093618936736681205100131736948275067994189082330398289145785833620653910658479191877394139710855838621900299410991986343610728810027370818060293531760207196872824716565263457347489282244492558217536566454166530832241263909568198161639415938926465058657453578813531551566729123566224431618252552497110773150938830364091412771580806325874776013332377164010312332358760650238962114291470596101267984440385757127737207147314796893148996583179486770213696104770056994327473554470103745357820060730600139202226470996582190525181591024411678187904201026752760837590519834150879991318475530142369670941285179165582032739077799740373271181844155402547027266937487542005501697087624246091903761151576818362690997517268695909786863517411282168781145032219187254466806970797418347209883148129162442299927181731203635344146468799121813497646964841156921972122946116118549509371200499310040498379210194765244585575677358277678043190238438139585989257059406150179468439689160827035445945665312447525960614116420064073065105467923171616827664596412938291360620424733010241991229120198651243721376263238298262269639607355865045129626763355323333921154597814322707069294485607503582345232426593828693801556782320717940617400442312057701521661528558623941900709784389085778495672507054808242791392145265143703736523642783714623762629911407731430778494322478193994713625706531331791104345483614479167574295042839614922888250272613840936229455315642191019711914362019875987301888185799437930404541641781214198407751305475616433118398016989648688223068382908534354398400524445851043489565249422134034014275680755691424234848378336468601089981003651273127390551422965283820633753513768683798858060813586734265614941633312112448678592345217851350570752966370862155187090623351528169302449255656383461712786849090159612764316807178319734726098152270325178296554826954821081628549864704747526237964368985353536232676570422473568778656394615348052251110680850467684325149512366516980603822266163467149240753057503900281351442439538937431674545034413450025928733455123923131703589387598282065423612286934369731406725698607971308753943388269557832424667296942302723572312534314973907879239494660814196074161920586129454614765951280472339262746143390634170895528518667179013109663396066420644489958018134986714950827564108066145383463378611255336619428011324658984956169067893074100100583041392578825851535130983847611256072066234393520560069516355555948782743040448551550866013823635227864651086807977010829640945377345871927343460669567590735451786614305684605745830737823846520884016335798968150252974288705305474082667707156807579275954137144434980548591251133748638222393297678346438379936513304123232322833736156258171403070198692078469378557085044681243239158670647034540252995213492748647632022589362035411580508284702844604071449628073151279394915055505302938607233307509262028453820180816847930520476188915627914215195306454562621002783152765058770611445446647898647914613640418260927024338921091594522483135353952304918230906232072471701290183884050222588891069617461601138526455120536726519287134051160528332198413692281848714619409746087070667016448608201028213429632591643564958640105746135587914299954322630721723460591528100868187702523264240293903350694311018310718041948388321259689401028450467219067477783595929784254931273528469694154732678845408485455420731506839360593107285467411556112419868820139716440033843035399416483122875376890404294468232641104684312076353863560437061637345088977033055918602155063140937454448248166791131132621029424998336500480056211453137813693222352653757834896227172847075514937738424957305110166558747932353359574476445442031925725498651036740579182952344313491589362892021576051374291410827486307299186892213923951477482636510899597515852901945203699305571132083742028915569421389340830699561290542569379963141755042230227124989939606006666403727678972725292808793041411629161109853594784335839425249175801455343474179711312750832523628082282345952493959859555963538182534984700501378006116234351554169128005856268212685354208319453237040561942348846225028277236520183287893222863181446924155054748524391195599714250970715356877151137176103302627919459766221819629963534919347166263228617752884504341612894596383480984108033584343627141053664730068098024985102660865409881921997901604342556916344126228307289097943642269444232269432401556734726791289767096499283615147121132925662020576655016819237115889002147123274378666801791140253315497743879982304776685888545995759622037375334298389274429186463566219487475201532542236122641114814380098694764518828512318104134625274641546166454227141039520741356069359463684533344994398241795953486751176373380470176894516522790103347401198029151991006036985644440166701771011638558388653278543444373132450334815411312168095062579700666125904749026460377972156165964899160571044165495932334389197937233638322624621106602220579354787599804818395822113171993946989823953311118405789892702990724311316676567112108992509572739628036723607431875363055265109913979270884087262573177996234117482490833347292427625663205959263722989608303629588352940329741439635790751680488332482597120276542075071171511478368346722572788696917874443390559536029318702182081611913475910411720791899819017410838116705855358112400597502834997227876314220669086858233213446708995164280221460189968716416644135956235978106900237582352220996978739925507777259057467520766785152561080460473173573655753805889275040193588530239633874467706611810118793366830943421445665947476943614027873311826435813257872938390164179570589469726358195010275342929452208964282509265270880588350117375501324104970312801747873081133441007054216035613957307639838976325750852704795721109731548382312152389853450466673493735928258585948384800416875567464534278031061330292239194248874522610958106386673070261256545009412251305568656930163388107839206575971258166776157040242649117463335553015726616198774479746003028777437282094499048293929636885593957279703568438957707410212521975735937008519407390123294225623457119326696067534528512023775586368747465158167935165054525754917911702164871085066250137307419017615578871946855898414971847961337706542748957478622241477701929104378956474166611857706566523019074448145278648058300697604597081664105793239544184657063759583761321933832782987146213283006894384590785433158463184576678712560008226660340214213512924816807253802077456615006238304479317511497137897897750659687225170757254794588195700453693830100253370922975690583305017538832564805203005035690046500701915683034503447208223663592122007947382676453381528009508059746224481187521468865312490005918767446621298538854702739943932628940309506212830016771198944219207577442927520118608288113472908665026180341206882821864064608843431130050919934759645535104874897621801169514094567968617935601443233255477080988455224036533468951382742413180380935069293702633800188441970313997648905546452331381582548493973794835297765227252768740030794589609794623676143236743113039362895447771106876483270883985378313640194606185237426037677247529279272544359696277697268024577441460112937273821968386393761823742105908143699759909186255788643853227379317314508283415468205121006617600420391888887916529993252349694135194788297730828744468133629799805736117457576638516955962401629128038657671798614457061923785821459557803394585754336764288432396963788856234513093928000058557388084546866616363133534003274393271316615713587320054859392483058193732407705761076398881211267752239285467788005475985144155755462247349375932810687640504900925149584264861665318315739298153376018956366237378410961882841579267184700539464408342643288838076699270372494556444509596042069994784418168819626823971626612844345733798783600868781471670906867495420335827741394295266561204812920928113234859778026786887691425945708921164406215302327909333306197877776735878659508721107539254840799589446775409651430678354251015374851234467687500395581738274235061401298788967831332221701605411647733356376157744299661976269641232663018891470360228895672010218683812334395057509097167026281659705296213138125909373779874415201271345166206603667595446345684049557327050023878354397846982693945990498857622314985424955229218631788848013620244629613886184562606741947402793888427578725654204089221614480768965285964231575262955731142326718310780034021600975915513351882995086758381522636730558775137002866192076667970288591557575001467440965399004547811145677573828827714363433241245196319306472598625472783630542633623339921534994829399535707242595061653601558560325713934953931924274980316977558859936602573937916845631033115609783657520040581351309132854259334655360596611616696336503306807132525216410227786304442861061899270623320830602936378117783656599983657912878832323241748045037653695682990502301798446978306301308331051487183346885147657320638306480076938573460170791684475107573084136309939773149618932989725526438890019244877593275427140712852162263707347648370451552136540143535325874311608184723997064845164144906667309904451150991760888738183814599435794423817913802260133891674672326873550998066421804653879646954533096434573393191085713399339204287335070695686028674418628864601629404336563775769616400621346266493333093798986162983164958800922405159590162311597400100230137809886272663921112265616739581244917570609133229674444376711160024482589351820339187387730739612037784018198192931866113733506353130562831542029277636034940333611107072335881284202110706817109892770141744539406311619998523920865184973153407528960212932795086090100319237724739207384683440770011616428327462326809259404869559834361907146633895876831934299863962942511514674028756056575033669413144125060886801298271667206000533174498956896106674090388105365377982820101803559471409160677583969096477966426246648529581307907686516192143348575450500203177615372173664635143675933390513427245320924275160765158876247465322681504894963774826185282420680269879284814418890348992964444889551861646323236698621225818012640196295842280679574059296837801731336621024100225163086285079411981133166310441889615423348712706481146859628712407856848095756484760230040253178751913726277360101114009273603836602427506084679690017537632010108858096262080910343509476699231323029352315641220154674962211690242788297650064723685750218420919856603495661340615638104389568634148059377207063324925877180982702734987934914598330060811825496848947013193266325002287254664056781601512206667180410530002747778421730130495222575957452964443575559714758615024336066851205673771455860413003515503802978811561235829671089996962756243919933521469631983969407589210224669122030905522961837749405987989854993345491163538215037103374854221527686686669206698588245438140960624047109721847942713115459138503941095264902293405561380616036106587425786540771408524033982095385925444956592919164873918846140367371842940583259504548932239878867492816129747747740830281404697204942470740517919717113491085561681374077403875716362545322830640488104994123756214005732060525980598211828240426995048047985275989444386368519395044197470448137910077737925247516220312028039050656815240626233190180834510913457274866713104623194058867208682371323212404571252205645873315454137379529933928124029746472691705701873601948347932558204208979452937303535695903481630111799597926937975254446109983901674640603008656148237438446745710818421677872305457476853203971305764837078414376921874711076414580558049206530694243309054314429324128033329991300992833454494286925051635658122485751661556513888244318016818546865679254874415661440012175441907580104233774598372907179627359477875189673691320217176664663099153349167938154306239100649632370616603947592058422238138419021432743854449501317126512642737282237468676883321790188462680018385890372379110428797667257739017348054714918194680292248022588988137561570832517450265125885841233397392300342353387464649243771502586414901111082589348803288839376580695001018734210601403085295243355797159090821360999605731021539212858198592814967096386226301033015429991174767253596593109719497584539818590034971566304535063658600206990352849656455715407292985800068129992333247629567681024431258157418277330102729142723808026971662012413957303031954333951397671677575570907562732883217887258100468780060892070551283802446555024820993434941641515119015386857747738022392915425995645840868197903594476870288387399496119210011475264132127798094343860296990500509868081774608527228318185083172523417964483732223591295143246086487645533234379694335722708763325299509455885401130398545916624217930858680996021591779281258051472578337268378163628157006324369554412039938535670318943218810115769938241638275702175734701831348130241578305601030903896170924599709720148491757567200427925236395718675138141264533186614071819255406430115983621263076918124302491036017816474803045729238919774869085819746359013275630957954120174946450996230261551552429952130765158558105402695950707545885705980405605807249629267250222495978843003528167848596607663295310578745843460463887691848622304473130895736056518015169025025234304346756279438332770138991462559351327961136960527851708705728001100016924533798370924957582254265529091933421284306995894661521169932140097541007115035585668534548140785071953861722303574192983260554033714499233307327503414919859282336236515197870645379208157755439340223386384107184391432839168019263513702965305273591646321718318871459549840093808470038951051951891624413844908677628774800025278303636968995821530123596150321123588190484849805615220043063724363165515218793831600267861185070150297068282670467892686426008475074943396630220063436965966219899245737761056262935589420882551912428791690978927310549400735603981584176381707902245483974379305069091468580644212496327179427819726822402047367282823234780163100939248465467568041891951813465978163506389885274595637863811907068405880689928088049827854644351690763342225207663045378327023732620546255036213311631239272227095361282549294537833432059039445089139826993684021399186203576879248307003184127312428974841571359979278344429477477842613235431263234085534234345069881424643099083718245074516364397208709554650679082323113264730204041601917380125225093489104229452424913773065719390899263471516766389602263842826797528824860151757028832675818069936615819430450641914597105581867637100529687901808766620341315169355484953142881740650155741606868380477060411393445564647521309078870578252952858979933658333558224737438096066936436274267563356005029214660722717384989231882425209952199435156538803690935939292532479787203857304193796058692282064719924800860749901956137560329703032166333713571222817149115927521778154600284477200522078416067639683453386971708176881351182255051305046676184574114038700768197865912524118509166152176799060970079189817533956513347955220002657820568134805447069274358256666499006019051767574902328493597974511429996643779982981440573155167386734442982688870166498585353566299296999729499458697984369935858556225402951218687573777542621610904087749829764462590912824412766590125198318462807435681205240591024246248539317927491339498553508414128446419795146957301805283345986737391988846988329542098742055733319145856858942512101711867343168979508561906409054763997909769274366881802129833062011795787584414123634734589030494756023486391486064010616101384990666843972673103477773007113178437925684421825281725549340457294629585863129067781154034484943718962309598000083206253138577030164656089575208628420802957733877826931029006856906810921791572702196806440275604821107201089846026428899295127573526965392637904941427138979476353588555056425594816686934873444026208627691111854951188700669734379576365615053678817060896051670222468727565852700066816447332533978239227382819192416563744412180176320057847683217023688066106258177207363928533385870506126218937422264433864856717227040945384107360904911956646222554287193217604883047013807267120292208320495390323559563496465306017889471685209688862957129811101395019313330977932582338281711949846364162375633096135156435141994507683165594417647031635953361681897270641038365727608283349237515017626003612307859538558003138285803355697768840134437939585448541174858373224246524614600344694618553858237027455323510360316090293050532842622635388330437622633469265374441024271222912663749347810326421727195167023627518326251016510025440287356009440964630194848672638243388879521740070518190723511854142667108357441459530302049711309320881119286142029891090385906296121552155159636342125902568993187375671679186123010096757072163141899723063162900822654120777435357284193082828905365945669850648681880067545456265518558150706063332481922082058438162591596385199861807662245026275793145137941509888234366501365153191836415223089285607746333807187219840353939856099228351571163120799654614100167007798346564313014365013350466387640839447614611398029300769248075077824334290535650458669455331914667179391723820947270038171661706278435396876855423601432687397110760131911342498483925880835158508387454126939464510282402697005118977522455710151776882310455213168622913912549619762109283869168807851287029891287181855260616717043063543261027994519932877246269322148524385421641162670819298702211629591504621371620655971614215253359706342920707558906705891194119416326478729458711872884152608528545284137468360494135352737996792437956882131194223796425637497335829894390687742809096614348323813345595217557237319489649638786573828224227157861948931891481932368712897228193774403234028281252649292359012613611859031450847580598249467897336146477043432340910935645477347269158916195983077173027881823426848368897440230511668337307342499594431652646683853066240757592475069679657162895607181780322287060557298357088948529792850738961438296117081817405026720724473948330848030389866499433608789261332338715255082817506797152193764660684599983435179559797185500644549848679969436046847356852026953221662794525734961279504186039480511798100377436415637489442317752040420066263040222535024352423656887272722450944153753403207803581305963193294224053900242132934687843115775068603069663026974196470554642010147077584023744938765151908459463180938405815442513226180266304191989674098969808746495311261431058517394809394540748058840355975670714492732071915825238746664473866709545259961151134666435498284223545023004051985108488488716232034296957279382144309386942101416000615561954182318357270944638888529446439363045160784257674524323132083650359657305641677140617142915660577433020056873499581860328667598501043577138536427218512327864114635681516961449363570538905800228706474811349526137862339278361426426908081696772409904580458000901459261389345592138264454659462516402882241245253189168433898768423001447085682218791358839325403226015332874920951966656769587244850426184449659500424184793935276992546423959541968991244643445849618960029004695889233268318009462430961090377717021845616468300667382649388376890181785771600187678386630622350883619770252971342654732946662605473389429306492046914242992175266758112048543317886359446050665591045934369533145229944869469486192528816993762717043980469428388648019613715607512913776920165450577690995553086197866204746216523403107088433575454437109531548855990073552198446193195421774084634511992285990474760267535348510436217254653173391567129482564698021262429787962784131167178784104704021441524325322493162388418923084435372261623794148264488851826154967500479734774280221884662170694696769841716539610819911955448160608246716303312817877463676827590800765042138501350640810953780621304370799925539443417647586268940214173465026062503851127943439451725972378169838093694241616102328168691515970026302592818611941088394585305488161681110884581576380907038200831119161377583528857841844886737640101105625943738349398443744288126024182535544648833217341053258846370724850774587017443312934586477063367006863608870472917943320931806635088927622339359861831239588655787054189380430315740906214330363483607318981153058260576183898198635687000293939311409211474360860317144342748572568650824095353844439062661756312442635092753387630330032384784866414928587946424882310809826688883445926638719545979357130890724552887412597361569513897760513417171706826919206129994178103911191034839337499631952712692411397217941983389831580728697107151028185668071727104900902755495558142208781602702739750054655176670260193812133362080308043973535803778999028425214954510352529556333588576766168675370603478169746907212573674478263405975203059096631715486092151385204319300071025062715248756171028305852658515114268881911097173729087380473368503135108095965420366867612132503746886679677675506730280243844745454664208369810248940537407189416725545448941331287595990869358790258475694673526623593137833324715776388727599211538070333546966354194596463436163240889455055904683436101417970825525317604842780245022186206307339562380469419028451307309965461237806671561458607444792245093057129635416961580459136690930627147253992488704598988500995831987358121891250243579680110516490557016770452206954441102394538832377342779884189438505213461116248432589250555198059988932697407904427992558549301175483689769870767033990813675990141073029254612333728381575038681978243715211799057766637060666449745339174713753979377443686488222822026226871393118629778327870977361674832303785996301938576199531256650118473134997577310351390542021768099007175387822700363534410312300728147141404124000459551686104451551426823631597142446246806267175558658461838941241204492345102326493593556492498990224199190492598016362418417270113340752553855385850892977348737605622977872413902302650327747257020119792873517719424239811277090544018015969462224510202235689009755369279013427185885925888606786592443795647767434203100691370335098491572350768926579988586177774510932087457864381081478925657492123276128949677679473766515372613704480292549466295889477950260719531234659281438616023990508100398379190745343756643072311805103895090702176722941428993326762794025416088394530937321208013801889700076035643994353210238187188513879853455931207459122724920286083958316805881074020973819871899317161019822456691902111595479948719729064163024871471082179201346461291961089209914148506006149700966948545902800278464978222839500956767877445330513033995213519400325985792287265484405728518619648621145143071969067648793649438555037923785352270364487212389847083224516288090104392245543051959865166312396785418257125106149998050399166278460738259569247533775072796970654476633506179273188079768338082754418253005430869215422286073308697539915179959814225862265313674459820458575429341976379849812498533957945361216948604127598762050642311673113119695089386980219787380005752597130298120018239626500522700488406605540469137550496158129827811234087126599795220055955692348880790272331303564284789844939386595938167747224805003148486680931013885469656548444390003618197086156647827744009713551137426175340658988701076831584927627173296058689861333715686968543387291176049243481110033003806711273399752059565578113131017928232998296310440995222144209286648977562568369626025925329316663864682320850566254438766190023685103590439347183435668278018581496817150697143605223216296127817988761877387863749321750276491787310150892170754744771609422605716609394123287014505966143149584910545042404759806100590049807945693260049807484717445050559467414079521859461562312617970831921774795454942393229341181147526131871963804091092023410616795988138066858126913333527963911838421443236146524947117153829690703376826621492153856765819668796140069907529671094052255885908789952255707089326742610680895789717609350881925055612844509054518683793267016150301667436157547060869180940894353655081105382535882180510364638329844405034001367390302687992870246830148503003711303738899512186768327357284658305439222684496768296978452671316956458497080087507412807368213014220790323119311941005209994949789795022803638375467380846872587400638939467149966271838932088615728930632090362928022044822566186264899710007143346325021886493081675651089017581318994657918638894319420758937717145577492528617890776708253195282660285508423615779773285405185201278790662388980743078760047492837925504489686195396156184676400775482448771816964292417233618081308191938998466872745295172916068197967165296646338728366890560893880626903010685654094857828755597516770137354646487078345659164135389709550604655094791685092555022567824053049730577614520087220314731920351306279758972518286869759602184648352848939463257552093079963400877858427367544472508694900570126302704750081557745923928949527387078617079179778126117135823888553818423817256467234821838154397810406372754040670059686250696547440254512818069772479362648077333652189909742166164806129135976041706630835502854598591125445544054348208252043221716841524882403967586026624658001111693110945577089557323444153659069894681875214768636396868527056109628243332742367636623983409250996374140239776870610147142977246880560227311517688554831235808106411436993226221594447124312473850473417363206550623001070316744444573514092465116369194375151695503896721447450567894997811731192661292452496023091191445081874524621377782715837206758253213992991306093672365830485152540723671294816302677941591684178127126092908365210165070150321035904681998445820532448466857258901870490978761777389390064466593683861028476062405868583668215877100631950835500005842524851044959807838386268670551825893702614076213651184211465759007259307304251562078328202486052656634858317501216625631074808967171914246767099141656073464509378516810960268063226174278398667771306747164732762687230243527938853262142679703997068620051343825412997999971053218797766902881206472778590226404274581179078564510486713035656201751786274761099489981409214399932963628371414885967208994967133892916898252614282192404813277050974528252510846120086122412869961755995580976377554456236109179089365861685136915329421123982006065552421996134439604884353079991597985769387780942576999151305885116884675075033658751463049649543392914524193787794229208125291768982528658678237539796507795576051527260763260153469676362409299215410724849895339762973446866035952127587774787048759559616995096945658291526471161750231192457714825596266959806535321548965386095776406156017663509506583830399891298821303341349520357545272422118787134532076442816917413459949752627751812356298325522419963883462830669442268025677058686962546749915769656201734145251214606241989751680677128278859811248169957487176480278685954965679139908567072237352593466721821799323978487753076012723927788439506948611551525018098198814572323700922118720818609278300625001972883543202906266287314738925521858166966516776906260935968342499097909130853721527522219373474756574555407162974090915367944630221008607768322059622290080844659847459008564432742283781938280460205680483828895851819373292982299344862453316588354351441750291971712491379030913142396517579153787094739290810459355161515664916599276956585272418932070025126489496237518593907305994182662641439931379353765153288550441295528762203035167546763298988216879701800180087901048628605319396401529972691996011746455401690446739202705303982153828295169062573170051520589451032915620921512717414286946528288369765115917055655093245158001242988360974902178856535130506174458180903563775885575999034882627248650067884527179186697839371504975432689878725763682492780870078130870355897106199824340855786413691449338004021911274137698874917332696525758422603774453462394633107576524089936868545342210730381188105720120538103827538089598526121660857849349552559505381284523671113314738666510323740426069011207297908973816741461819132048192358348421327821516083612510553143596107399234662888593724193139935231284615830076719335431277044347647921527424448781635758106943047885249981991059960534728468286085819448518555819484835989073318526440284615102055170880509153686465796249466051676194700679114910251302105830397073793371553028642470680237633973158408305135603575480313779298227990766059118421060652413415613415742731754342603722861456543291838874648845160650463099564218917719751274524230772673292985053427071661237023066851664382484939269823810712156569906680409897268799385586460111884947344297429356924091247048216836798766644589747900093733781360964787753443110458564952529801659788786446067460731200394327646975860976035793046737353484555285120030546105376552456175078884335322978281170245678118136790092310765235121477003139790907836082683155951900826412045017186947487621037857540739590615663244862381284781167641083825901906026324060422919002650857318808569729923239840899381715464805370374641071355526682868202607498139243849443208042396459485506708556096125996887415671128515510721399019599280657412789673779616104581314987158090334220981467660726342257441018477665661241640284776636098549348245937061500620138366149042642817009984848086911305197963875047787098643152498370461199059782841521759586712999693505353902143010634747954075844678252967476644054862754541442176436037761690160545390597614148614607375067463991990609229406293275674225717558274747407381051124202821369378671090130703153431556984177503753873873585816319834392632083637895659227798654246099906411716199321199300483078346688323525269862860787769522437341421846605098038448994092106587510679584087457278884624481033847508334019468042860144925946153816103134177243444784951463357972558434171446189439967885016701898198708520547529841692888651209354149786156976238275916351698692582055061030624958868604105298689906027006868980465096084425344315826901723185141176807646155846279017580336249285623552828837152844148834336991850076885626993012423372264626669077979869655838577747440947930436830442451817507993336412786131442398022836410036424631209540531793696202416866594600847297352957548263888848373937994933376447341153212072738779131579782253428344460898123292849152598074306400005989605061109378904990270748289745412724783624713932349722281661746440722243825331316153715371704990497568405642231933194120112577871212900455047481478086017857128224572369814484969750754985053736770147688923517558091888349905157978481693232590457883436407363102312085994566324539711494799064475960999876362180089814245634355272004530269822090187070882856206164059929783639968335103095745378429799152323093080810080782146036130585682831602713549118381833350215331729659852078441446974235858507661107582962944732062820409764180596780443624849148171141416506372718669336071036917156771585114448407274811163481199547050798572346754233983650754402697568138822341925319032866376677538196988964457107631814946206716863664417661716405897906147697906469432057999947918182664773355315882269082306551974329990255350786138703050176762002005563196990868898709652364788288022359005131221293341501901063150421528065159735623181141387455478408327762301295135825344426302548071524405920597812406807961488127734045413522136386069726300301686016094955650058902865146582461910757773727609460209589085414822023184392989821272287125880976396776515659824993619576547787632954654977974794942642173120013362829863318711723890668870162614591167496952483539926932813210044295492534123398916255968348221959453358983712906649101822997514495163445067856538022561730482798918734170305431023911903934500126709676202378392445959295372252677009556045563415318690627178492588113668097458432396368245947433059167647008015171355435247262864692926457158209044403987412008055776008358569102992598132794779700777314723816165677005694521749361434067806884863832256630448924711505481310977862986041901344634851364187229216270323586052360110012151590430628810230276219974187371475267670678152014775247416068685230260345880911309852622989731755402627915142600413211371746608246505692531798282865912338424629583661217686517071355825406725633365952842216574442191886735319041351830433649339060168852822763758296610313852473050217351481469182232296124342648741114241413037403041275219909187704516175106681829420127917584518046346246271334547217983780415479133984511046542106554251293018220167107708129351240996411065430647078294596079068981743429553581735331745103482301137887223680835736197127643765582443040923547063357255160416602188693382168680628251974900850935559944714701338125743984661147601380024757531827267020337525686782262268559222767048051788236099699444305723709975765058450095461690441032954675702749803850915070491586087286398692441892714876485590521463715365268112056861573677561355889206691838112262171794387585252349322929459096614977951656969940647649344681612080869021375160118738981919833364112339784559551519956048649540896845143203992225632592394121861641973120148138564084175698820947371651247884489726746970002348255092152345017731830399612096472342484471820968001411042867116204501164280674921821485173761840562780754526884374077031401810675731847872923778858670876943382638369650111117903142340479783959257476183412246524204023230625814919368661977532599606304375331021724719707198914112480271355560874084695799171176605225090757896269624422763504857984507978538303402813066833066229945344713947274607930518858606674485332686059992205774590026731359178503098098969487246169741275037756489417110876810927941926476506468909851659580177062352702618376583526451883370603463810474151193157003295152430501504177988732621251670461618015498755953604269976172409519250419574079710413832259928884623631051279541197972427094314507162472279535993627961606796475791409434405409933640783926487617661827226647735169209201637153030174674986510669652423266611519499361812132378043227482965010422733623288896383713393656713420705855318234702433208396143112566661888317263967990566954264717704559815312109057052541220069339031950905648705591764441860889365142007149278815648255086799997262030062949347944770300552410552943741264357623443886491816057812991107860746706002218342444632127672836679746663627751780293024879910788922383733358051013250371574807690617594512355204006363710646059617484606937457610396114529572931121236870749101643234441735914115566047001050880548160189680334321311771700495715433584238372203971802245306468349610260898967685300435953939846256197315480376026377474617191422661167932195794450950478082693736148441789305339505474409649544212585910970636651729545038524422583136369581109507865456615821271988796386622903400653232778661677847353969774128560192842224693938857806584195034338057264807577957156099932161976539684016717626517958390325158823948703720794106529792566303913600092012522506521767177259306578739766255005240903465442388735092503381253008051753292539690530954663852227732532624414487997839237945541528247692804626611883209275732270467483716500582011520164441497025258915097986909905574744740764789176773956864324676099092517869658260566913081927853879511890046275210539990617473727092933608152000396803771505447895384302406098242586791851405700915274876016821217159024371002571409675447911229957882647397558837721489452860286527198801948268159707030853745834664935310158153430493633908507781518890024603249737765213249495239562003869241929999579370459966993564080038041551167187719961992929078069211779981360456057449939245212444447099601654609097520750496220472172886487888603080509732923024807074540256889495205928328023848360201220428609770331320443630356114926943574741559041328158246032577708924899691345334506974375271021579858050659348578971192225590531502597598569609282266249920229490947725249871390119488392858399609223399801145014109397224351442184580724776364309282358589833549214293350290579522209106027946177236111955778815407684051473021564882800555593727847255361034349016730681462641333458288331033997082208071735843032590128997490095023714234880604216331787725165165467827398345459011176455286979520094219999957591127461280183194408408852494880196719762250526560229584810104856361095514547398402020538676335088750196331142219111592052396786525818046758681221678415142815784326034991730495330475309787078246725148883196349272527876887110997589690048966314406183833607418372455658260061454574430664491878191796881472196386133561841024863539099236116646680171956200499609392546500502339949840204212076832933510163750917970928721409380514962505949376715556770323810724052549918544436180123224087459116464197254837267516774356259069614527528353080344919742050593169186054607294127560036741027490845494123162671770761997797890388560354025192208545659816132613541140769186938377318898797679238336154608888298207582190283401271984097809471657887600607294629821230707783340925319923313649942558400213424049036160096960205664699104525015511389729652801305632131803110368777952660381040062755493221700562737757980630272793144201432932703003194680621199316530816729228302156847273754980643974166122148289433361794638857522472898926882624737521420241994976464581694411258358569132943548177565457414674789033749013111443200048658467180242241431876733405427248658382327774715084786179464196379921024968789686809945923410220839477720947074936199923706208862448997583404657337494568259672835927752211597504016021465220932161881983607091347708827243689353862564815188207148445003309553189075150292278297617848650681029836669411721429648364359060335353021882169048101848425390680205017096740398834789312796091823166847304249146457764565806404479803557934841883338109530657121158340699823134261345790046232956127598613217802987714036871610747911273265958104411997426680790195072963493957555339577610229710089710594979842931763825341560418761930012533419700066677343291700599873845944997469110787806275692612298452518636144692239508904248774090539547009362856395829556796494280920704666423692179782248414208701861965537352764195383279068370537879224062487413757444551876279568178884332578160718146879050428315641330727202338358739437162332959064986612394761843513498987233232751813782786297650809929251197888167377392025916399921217927550788816359008936691231880309320735011551710305260454425713428842494687851501032891539293711402838086609953980840342564891619907583885782027760036586990486041217895672960523679349852814283568729007486128001051669799854479851512369144715475976956914624533650328567026015448959087062373720083764825235336397309454841723130660382740211120599893703911977061251346464983483093587004374880191555772068684075991340523649002244292028324871897491122040091517198105431293621379926577010094243964953943153990544273192727106049304904052342774160571572901359925407036563779187371746337445233436906853030385816914376910110160987077880084310085601613497771031604137300802072315299075592019344604667480663895767817082126158656697959261402817321756350917040574235487076072424939574360579783622048718083690910147672530404156530729878073165479603575175189405395281633891586547376624312564748409339710090317334320791497623260528930660646954319896515377137644571893623835155985662595928407338669168238331539306597694324284306614554594208406915309592686518658642106711324423066343902028374739808661160696202397540446612201416112216139246274575045007009948005658840271369452965628345381423006317404692913726899246268662519979158509090844150266891775118299848750274014696379524600875043738378849778036609205543891846800382646760722870552824353249430070737234258819870533521801991022121679702450121880389054320406150521519704353231786490016696084469239634779851079232299553966734300221721577665561074001397436449153964462329614930940800523710751499167804310936098683080058059804782964948311245580094296548555952143572711984400697355799831203790632946170229562211122171298041945505792546102292337147467642213314971610281192444500764017506168991554942743314061800765825240597986065669228358363869432314170869783585691425112656249913639865994300830759172834277909278033433724690900704800786097258873143265958503166464089876290642852851247974972531888090307089348592490043478228497980369728941142792842029051213123153961926564134165716361426483902217618205298281979338195670353702996412508607048202242786594387836012803909536244086619329013759839363160637968646703118342534731755153813238730393455004160838691498903129204726300395335993700127840214110747960932761755259219236725745888910758093086048098454233488675359269025647770768370150403162025004740732631233830421682461743297323436008788308463202489805337500474527434709596526145457601351158257026425364526638930268638829520901101409106419761426095323734836699116016920686768340477603231170764476244341196475597493583118730762023041901140082259174782671492368416178252429271125937465905616886664013921252517681919307150847792639549907264486621185696696428328521870464383967334708150882992693170022124104662164933496631643059988379647679958492304056868336065500306119202673741538791846340409923862470792875310050880952428454444790641740909517681396642743643181393106300167713925407985741236992084484500400365303151651104001954997092209235674703797219868321228956087536068220771485560515675153459530459913242888274361778902568029178621714394826741422084807919018180960363795909184844515169252545600069899215385091757899106483540095196895385124660560147485292920559694358703119654002907762597839135622180883871434512496957111383940943454097068644764666680176778185367326216461146027555222177393574560321147224731795233715863033297401539064576981659916445321402060853822914044417251188282433005995937694708025145185231593395293396219951126603425624730413395510190156380531404688411143194112251189435298648142898945372862909342669904474669653730279129855601271179733927156679926695680940532597847589192612312968168223672700611843139028248532554103602807294276591441632643822025760452908263010765981964948689416307587609975404513786570345416736336462873169766121102254068779134450383643608037159552153665055112706665714829169347882838827044545304650039576097389199207904460917375063854797820396775502284388015866696738746050598240516495990824083302137187481956882134824541538472416624124546983351331360683897385335930256138265325082405341737583165197507042366466672637840150356919887453745541494512576313187490632269231070081178737715965350438177416086122321583426781591460348589327878719282815785158176064946944195231751280866984280163499568168300657849654140864405030470442368250700623974326712057431874051411312383146271968743284519457304378329519465012873180665669739586775369439316690284860146775049725216061358609884073408728676033046632008071707911791992889419390072952283020000625891733545926197325563797878131090748732658325024627872692263338343544393560612838928894921265492719674245697722626545309138193248818143198650799069254554377198395742008433954548027753011604326119686446625968063748440249407885850876384245768900881026609192654783239514361585028777951622969091271118015707937584898143491410313480347040622945481711898177800157953434037756071085576230832195899233010725775126201392576078382492609149371135551984747987057434162135974294292183604082721656817654206058411205726770031673831369703971344387156037695074280679257133574998314574687704589635246427984899750429480204600924657752225475502632604583186610686449251293324911454019161735963250272825697857085893952210916481163539688747306988305941174028378611606082884457645300097703036995045025151665056325952545820130437132347156495355291055114524078904080427799221150800647154637062871506192759534165731887761962416976202259703559705410979366166614206855764647386748578506427588462415450469908787577662112812199190350549587554143135502616295564916145278745615840247754134486928910756421526096762896221564926489172541555999293743782454811463810651834465693655673433177639718077429005566110622065631763961447757911189240779593118729158605075737202139324378657264234613314073937291601038681790912454057312164027136705449786089640570071203224188349350818620242712992568800999270661800475231142714016706008162393303369012330276614737915662169529917085602631650186823922775287067070080476202011645170878117616047646986281441920814991165298458892134347210812553099665011222099981829348967999626083464888475007861759805834277838703299087986986092954814408087611427316386340620202719994064893814422826433627273901194182399138936976176436764413597591854130024060348057245770662494679337597069071863839036845261259599721781566287092663613169071673048120795523844797682269658868631995970507595382937508783019867887732513489716686440896429020574565781846494093874519983154673275661658003998918579848150675777709157838275693633359893666402995588620861610895439971945955684008370185392053683536663339778350055433831871374502839780873972225150920513695442267183188026865726220100202112999161659287857749217092254482627938551748530230679065140205046285335336369562812853372208284663620320274305173519506125800688881298430648096496797952229339991277969639307964352673472506955639646328034657035836391053021002170753220235557284732488005724886624308567850014409519249768095284805093724617826866475366452300554722175261478533036898013037245081360932520974168406635061721535852219419674606030896207486642208945386544499662121178315219809645790950819786078258434684236262540546797046630372940889827075015049495626088540447052733475783428986702933848892110258695266644167814494203104699475178739055872969999088851789681618997044342600048203111309173516971868037585644458365555688702377453685083825877034685130148720074688632682565881853066384464546255658847752784678945740787108146750911845252538582415823004103301843554847788211107251509199543364722507147316200632669590176795650639170313758924494155351218758069864555108613401908938126238039144948424520905156630224690706536842854058209148242409320906968985604437703130696584909145496539610541867319240290491753491065794488049716383996393320864413300538916935675230314905635220004958829750545011493820952365550236371168260101415060180534048659536990997121447287904535584863685981865524712437122298188152388147160899226160614528285224907150703743784696130512606006258507911917759173128938157804872287056805987519008615889997504665434301643322941710568097396351418800094375634496731010657959286910640943907052801203974012018996678051098291660571834283347205215049894027585361843275265996039477391312459270350138088206487274087384132371046392865969447937673428390600764832657295011697949574868230660986340239039810833557208487569522698646758323175806622734782121941320334848721224997471777782222998655256361295876240102498796474177009790984723771626987033427681332987137328374467815177440601103223272116515348270822724183200605472334434071357343224355211775467471949669978207841420344538405659029568426048006453455367614120024442276078269951293834626571632170414546036296204703123614461811373796871504447890433977746095931808901082148793746498242929974329432333478620203250925206331046460272512411664862149765970227603885645930960834031506415215136491347220636903923016867590748984740969496225782681651093243492497803271326470630637387855763332052831654300113810529647243415676692059978420919355991327105042175647583400595547655538487441609883618221778288040135748035147246928216218479983813309046862390468104197746664237441332828335924110771147800162958922412376489124914742851239278118792493626633481393660826015215048063822756410398399643393521686773108940700101982318862423742717280681476199350034495126865773631556265902902605531868248721552894341080414722854802823854152258516981330175648034318216790803851195388787759049292765112254587985037634175075984729079747166696710281841811127852439733162261887035499763872620603293983922674424731348560101550883997852672343055088201664310612174736594405757314669102493420815289126258680086582141373743835995953639784738888713386651778893588474779869342696558940663306929013711369084961317378943355970395624297357923100435296981791287902469493828037787603931544070345478353063706639298043647098069386808467873415980641172059874312543114351809221513541509222359450279635173285873458895049812568608096266859660346309796605580734563735963050297181186190817886096604105154962487553758403325349092348466051274930216808499396300106124825157151745166632323018685527352646283713246823370896742175086699450189055640702062359678488265607536429187901478947820291530648122488011344819122567031946840540670679940527040993397757934702193767010795728667015980867597182862822008114794234870195501861109440191053567495134062300094397049630671065732830764337161284995457811083462756433442330749527667037406043243612253613896488575893252669021459549544606989494722635269904995000291382289247746588343229307641081174633757968740605661119374317413795145193506835183866598162575522868683680586273546479345047406891383022766747244887986157268371121964768107434693514345216390233568189464189984344996215012449124078269420167582163901941974310823122811034517441078593222881041559490024431442561302759737648064537197255561988211291981316801029047211276020134695277559251336472070147334196737325225801100208877650727001264828273537045305842603377043364825684985201175234591629164842711455221092673963210261324362507393607316046642181482216759543217313958458611238366074148062204372265290837648651546752671503981579363677667378458728631736466918072672698580934809727521098257725801562620613735169762618658265780585792606248210546867080707878298101807748218657892092121148173661118236169404969810578469896178405063450457895792297607030585093316077361925038982450083527338363002515122938199224720378618148437796914978344973240918439118118795392896292436098862187426898591286317230068080219078446562053237017573751811271032488595848190422650185455962213434277333598041915021216620347552898564194709143687241369100373627890392839167172749701219886478718122029163647287396460435474536132528246305411598619018888757687633731287600235379620979699229303443380207521559281482714386571363362021920010595405679689640207693798793136310911356738111085273826762956928554480229606946088394242993617226303702861123159108316949024821822805620667210503460113451728048334173908681028299630751733279654297937713601100246832384486926085837971325532480952335421217515397324480442344035850264893421446163827563889472538199115813946906011407572738780379076880594753521590322144983429876493239498987369594731703931483636953111601939281293835484139212049498941030210502521211101932307376487611595009742740992263464196165276081130632915762915788735517111746036393305182990497480019280025847953794238607679537281467801595459060586540220482894517812030913661513187786931037802502217945673170169888831617308345637214077190023988063437132447088957102377659623442348510089414641278194302759177061540548814728106992216899619839566640444877431202353212604120290687425551260921970539100060455883864345522974348950949951676187682236107170037225299531836714383922963547843790218749891693700260639595569054941399398121659641869172745008647293004580027899283414036098930049891229753955669078732638484494629622671827145927469354331830852775777760347123228705514116506930879197218926153882507442996557438919294297640734469406307757445530530556013679758071435370029041424547248076173267784473934404858645990195267472616673219267083673379607706870735283367029028726066060276289117775803818972029724776595824572732352575515068032918656556761554691095293446191526537465942395421896275729727187959253060250893049303112831636941154177862448039752434548288755797736011962441060932407130865265010022003577125500375209433488545882686182117681143230234996805855610338741049685526854949245919043624070303957155070788393644877354509728815518722540527903206959195620826585204684097035105165489910576167782905488410784730066040116911533441582414172463237251064050531222339005791816083935950704192054068345724366641239183894735268265149530400896509967194833112465842644771020595015854730377825820811844561155651544120364780543686062371758565866477942072146764681057958663058301459286326645155989478557250177155901841269235739896216807960810748877625068087035996288317205443207225380388341298547074513475619678178438690421461880790773574959859162948817906722994223319694374358432579107064075333519464879648139297046900072985831138072451341478528637096981842582430644738949677603116999401776347395367231139097608920539176414153446970744641179411245601983632365737033828963610440907122100974114175158531276749790128721406355440149108765743553291998589284603166777891157633699296941199794437232706594917411818704033091966450077523889602906125855559687682095407869078256573240161085702380553855466309014173520621333216156339388171823107011683806686234636288908146676908277549756372649960163619953066254261430072654106097965094679173549564690253100307553287415891521814446878978706127134943126325317494837022760852661089355154998730964678404575937782239157422792991859350932804344418211055785122904198387196197664978680762429472132105367588248202755602741645284262284505073874934582588342992149973991913590298474977772059987735842750588621124576287094242635514568436014998169606386180472560218479302160694895645458032761288758374798533955748434423595759365474758402693136189401323744914597303646547864424673231451088114862868684873101509875490899093675431191621563681013404717824631910745211344432518271446834345325940948681193439108752349083226935990820355064772210163420661897942788687515349596177853425382728454535456820994782587235656759132613880029105518823233137872643648895322868065170663364353056122326285791113283248666213790260548876661003138241797261311998149149886270857882731848643301484785090435337230679172823895097275258979814985944827791066903681868313722515190958288623505406178418534408065649265192917721852080706481245090218664594345654424966110979631646580114712946110544501349834116347316172125761051267175646755987629962902088539172280273489940542161772356824411879024761723083842715519214842381481373054856896088373833555584446184174509729450268498839980390390442037704333812295232652782256511444426804047779183294607943261219879141035636952224089729776418403604191272719690850990894837548588946190164340259716809588109203201210713318296312530443320676993296959387692416436803821187018169967516144625930730200167251364678211665082759356656233802957165258100369621046149680997635821820143276889109031840594907137863358576584511733959228990708702413700565814586384850267198190130381297582397565028192198538935880290413858335824150790669046232764361613519484277328398370997598607052739737558719326219090128539669974998687731974542001656313925162560689195416786005468624392284639659762192441846822150313866972400643920630791127728203768454294611915360597679735129851609574023054538313412059153134326759573933375842282773300171504877087093798466066867743826869642693038590634669665040053294793529336936019293521965863859107046423800939018182869666237785810437173291525897924145572619250987472582901701007211121369379922849246404527383803562639288669984349309102717138563605727230042955228367243108634341229416507392896684869634774960463380326141827062780821334507654455090510287879514905812964448975904025559871689876085614196596330075714551063674014643864959213108091190426393900125318218231114626041572656084503498265405193407411811014045161379240132708415152367705083963787191141227468711199555714800908843624603195341276165737795572808198424127453288385479277801374644539298460527398902976956628146871861036640181774226470790586049846378290091439969994783446129030689443345587859437145259901458089082265813994825928405353341984225016095493152103749752777412495616385426641769366019946484690549446689221532653926680172037041758606721479317782811006684827630334998506027636803790576867537516165749905663002125046096249521294665479969269096062455251196651124722117207101409232046127176160309995424259165879006294959233716520609369360034415036935847466871342713773860716638648436941326390401442897431442071034554560340742517120055570797851190233911607391229519900697374738083359918450463377879650105382116303462641303115324159104328458341122908232032036317261620528206316998239752462942845964998929895613848125676732453325030610140478979136530652845982214184354634743146965389960253348770457439326575050148255413524162674155497360567181845510751525599756440752584690260290804333011518778384072921127864467422306150034944162908921925048649100921206871962614379936886430014713165804339682765240249608443039493768909390751376096007210318555526780818157941670549575635283641571757162706846322879892057415177290322517143608760799978062920997012048269545749598303191155969513331914422550067842612086915178411821673475193089759278356969353259975201528544582281048588234673047163753405027290609998087142844601767184513058055209354093989435798469777304987083353265619427805501080489105017654888183536980868142093700977812934038470358907210769184719197114693281752036148165298269598280585964484451745531174615805124719483150098597383746876909662932939372284062486396250794539195546674790019132163213277692980494912718122816614650723709627969592314959453459850318491123504480341739438948082554090351144541569031121573121049743793532683954120870581178343207724877121770458409889383994777917417310750299945513278931571593732586472671725042919728388873113077460284992241376306278760545171053986664406841270539871046952511127047437419426932919835157791791922512703684784036628578344797718831675774813548883660248538296142675542423676202493844551732280684207697841213917685907491817555064770614991652069098782516036906441705965607929448426387416298701856429399212162200158451533694447755205357761485368958301110581545330560162729098779308071452015259926256559143032259434495823713200328989712075925819979097529681790955750090308174892938307431547027900172995314562646118985572459138575738466557347903457065466088679715464611012952845830957359052389132378971656553939022814908812418803629057421346014029720641078320723588787836696917538884167536809816214174135430870278420691484500620563213061214722291875559753562000222189384282351379910261652531211260270362413091662371897517398989131187970163533701952711289797803204075317595755728683943619144692905632265476264674692633952363585897016954352049607335070626841785917664096441652227944659289053118697588546212244835759278352373804253722530480967970336161544366185364933774628990888673230675867921797991434385983785527713320745573175738455616768596293988525327895922562210732878501335566784106192283449708053946660851617663108300833340972350643644865021434853733010400239558267054768371642658674407271250517030927950550800088049342055319337235277706031834141858264491368810968550611833402218845727263549091849219170968088020975400512914958662795188404425575749034321868139225381504586315375278777949562167965116685303186995576344735695256456758634207869673786107059490095348674343283240617800412300795207327926320386474913929201428341751995395631355582864431878323759763716171393806430715859338983642829357323448782757688792564514127304138944441124290514655050025499503992041940973600472704961894518100807174307183148977626889453922463331176401622557009393973919735744354302521186722302482561830348431076817706443627248386956282501111146002187959528000228185169518754601702131722051328630690433474030592021624069289884812958113248545153152631849908317269670632912524683668763996734551326588598865625831205434246189774468928076781701518008527362215675168686714315627076883435388544071252560593060023700332166017775626432747771611536679422704262781901644407140546179752034962861733878037478168356246183942890528700511940229854372782329593991305963471028566840060884291101499351360570122067721287321422598074839835107791653524678026931390859565815930113570253306287867395007935645052246344047789138905245904309965093229088159943697485180022143084409336156594911232086266377514533615258326266181354993161748135205115447421357781025895525088335312149643857639817383834704334685553072735411103329286033344979315205004608716269733582935418349734633383420329177670842903055440697592686544133498750357242572840363447184116410083735062918933251159867442503111588077964372448368094963798969397912920031577532184802191112312388201456513029550276442497709059524919781316906566137202337998130230653233223341780901072525044831581188484447821174954459939920007948054748876389313789557692226041905499620606968935801868324802600222338631770534054400527998340418574130936608496889444671551363393898429232921005552341902134058711125639413997983366198249727844404415114360540941390881731537372147020595484252676249310694848056111234643023805131635701331046585772752084891745804816444771488609624608969012119478565633912579861023472391143483233310831999818698712403622798235627265796149972815738820086943508122097740638604932322405631134683101693577043765164297594273671295298140031509037497857150599691201538518280594601578004932579512497917475719852757748011605969677751673175116384663832580576568881078933881999618948183841775152903488889847466113414551024448892942291566330653676765493490821447482736565477136514828067111474059196325114837545269380051518541928918623241749569636226433941699593253587572540596042941809335576074131419842551897623854279297734001029017391899396107748731161797931176311707401072562404234701075923214824354693613108724812033997774775156897275143016476910357845013267182257470180036402847632413048394026338549690219059935820526072897510180926142583045202298837412288667399586996152279178865136270567779267700914558852760387466078933250927103304383401344747313982988529756794265235795374319952314615459813854549946842441661839346353410988968742181365472921397076482363237376500821249369581701135099627621421070406562720065605145442894862873732446234119550104301878897876553831949443616441219711543848324320306149592331841310524284433174714375618881953081921049850813513050142115289018472598627278823154877559385481545300167268694203587673742483677076978396284503178955466822359091996100542508828626488468467001899752149903435603889713668638141963623115145809733682620191659257169358119355167095959133950621552967177972436428183686064411959920186335610505765259737780377798398746640491955340315636254081355364646162213521279320897665455698317705964086599540836119339919993887552150138025247439124272445239906373315336360822234077974557167132485747151642063579189621249332482975585360136742001536825211781698028091884159957349984886532125670471673259001819091671346435587438450320053937012286417306505205679385711419318746171311561626319214656882425911231167923300873218492211310183200947741411397698195193779604182908261691673570641133793081523384068669703271146424830276177324039041454798930742569000089871659695848667370520979997513743377351046656045426734043346172944275224446628075491485779952171718386200339906468811759259798155930301497914595502537832318454990014092174039651359723583771509539314537810367401602120099490952844072189589867711519151899474989782648469087616504756976094777515497904762936965512103334026063656402704992915182490421100253630153412280981585711891417225965987124235389272479135649556621914300564695476098948748903936422559812213829144733964428862500837385192737972742984669088876762351768252265798526019581710008971951140808601392297886162061901919266272596412584458552263879922658076464236858576244501430677989881831942562842959175906902667835774220415904606848389717679270214254743612195662181466618684480990227877431050067396927698240412475028562591240267375106887697467913495881263922330808081295116512329329409381120197450699444229173800269344332797169391581998236464369449349142750298441620885328926691353241756444505669615194933975778769212123623621525519856474142366407172750165000534958861478368116557850786494400813513309516076406089093225154255959287866130744197778100614130196164198940780812067127498411314001586388543893210154679391949048745561565410383423636604644787552718229488250890347802775412501430065013464023559122637179656732830991858596996562626575810032215240778539802336637512197347816124729911809400185701031391609382121657177040180385463517887939851635043273688433035941675221572554798541201031378658789156017826526654692370795753266801981538677707555343124115017717681755212354260488129082480782455336520854488338426739590625883287723494337998908837922534290498325120132585533471377470777673860426582598313233287103412010923717903930211749140224454073992488423559454768138904315134384052243691344425568964322741052852152681387690543386378549219798689668350387242736091893051846531516116385089127856446805528617522201466064192085091504788000332293263753103367911740877832926064993333257163111219487753572993280503945316994879861979062110709297679691271858544646814279028225025885985041880833657202574247803428960826010836717916585456709273712622632740338429885749922992673244838528759112636807141178552608166321053520679118582908226919665502337280256320131900449595979800035365810142404759905158708605463884988435130466245567465010403397667919511226222631728327117998416323085891291410199121306636917194730466675818793100141911710808084903418488507195997768481447785649211317183863830780454483525424648817417184982008158794970298750202155132023645221098437572614096336439417015130309412314899676011648474227485484842185630079652185798125245516438579213250994918098915338076657825112732010980187871760051618438231376782894235446180560488955296668249269470774146951290408815758534842163113839103644735689669748271875500405635406168959820254823804650119296398806542037958773375188409140270630548290525599694957582622942696362142069451028192346737082256763249618811618727135881401431157627553123674282101653665276203087911259486031235993005862290458768469205639848947166440443588055348119136541995243591427329899300181898268577276663746636185425607119589485980032256498286736084544650710283523994546923712823696096294054427874038419893790690847182101147169686159358688386781868394380874733755226426752689097777408660347648326484700148285592616270816259353494139194832986663930018680677501734633491943542007354373873870022365746226929358432843666906682572963980426349361801779733694500806085513919997194765449826995277084202461527121266143412350781598810561901806411833325496021664584074633894705971634516398612333710119436828979706018139108544986423023871091549015413556182620221805573700424233435220290006294563328406336796308237763170986930532318639741050652656860991447973486331199471789185612392995879173139154305965404583061251701333438942068665796425040500491574886816422142913432916112577545068447328209263232102106579680961183163299442644088544981620162927944745082867423484188030337943482339556665438740168371691940542140458240505643179527172984581742169486239106237814382828833708675591669236816002612457544780988126992157537152824099588672751079886044083215515119178359998081065054354729382879392038133149485508995551846522942164748427118161977722728091838950338398109514189106244097681348514572007238334189646341242996414142515186273728948638126562168057122406150506780167127940696160212148707398844768943574283232992981038647691890047868101157915397602181047207312997532725255125330266486798776150909061970713632950431851389503294301184997966546671538556755955998308785709102044784913066060011715417444041983518303540323786066584349444656938570031366703076128681137347942254065598712270110110555481919353001066252024672222177719682711786932287864739095463656415853538577470438673237524396503188250511279284774414796451674268601939048619196272297276667513084739677433980363101044871533200336479477108518760396874736046064962664577143756692504190284331691578853930700148341951304747923671754467921896372010507412371490230538889029513084001905965354490211452332013786161148486415821213804200725003731164332694088349572573721353845072250121731658403192092027188933178501746907194483454062681517835316582837572269161442027275340653696807390384608993903310517082029607191481894069568110306749968367584789671613109765297302893656208689040220917538981605199924202827238765225181565232063707736094658030422650958536228098210260654011282756569441792074905599630946299238937605516775191191904741854524530383283269222112295819377044935557133899198529876773989410753010198678777040189009356068395198138727279383433474826511805502715102104517324568168551822025208419856493285813130840094859293956991034408175761211890035992973893870360087805444389948586402957633192580109512978361814286824594840703204993492674334847035126402774690933330581475108665247990482010079334614975762904163578818723606239532173749437731760703991305190174129262831096064991860381240858242093502780112682526792087517120161997041924984388573046204024583670132670838974868653077290823838929702043718658604590279231314647178232281751422191134475137030761603059914491410957415055649779206224814104447724354376709436757733403385408122811692518980369854910836865879697911935859203396914858510447565951863309240833775631904010969690654646512312357743167601373774676354074117433958494541370640025023610977109649544004169873523024150329711082774894462638021650062011785791685532353384484854293322558531382829694314257893762150520633914487340457700907549011437625653811360646164664496665124815207347409281837360246370962445085254264865712278439379050245604091903447605044018509813824556531763069830354858399920689395954871913069880140087686521635738081578031117705201007649809201414944875422137865976702208496655305967350762573892650830545828692645425754167268586540913510174442659489332530368447173704048078007856465011286891170931135084586278692702585434835439816718313603323835777132123101120461724512928798094899423721430182400351417640827916565735325009417690553675306323426592737740907727725846231688307161712139679966827986669167943284862899845583117231255866345172595702617690619694195829911029455111923701019928086079500108455971947637179820503879501981703829126574381142527142279475795300930533394314119007112610360305299703158553609100814042055447543383093102517644951714687380215476393295761849436503768992637015145406746196610655698364067168169891615917554163998480442793987459331453154925964396205582093980254338647412424204802579122897540916386886066600834686093089683826650508009385864989766696185361064348484340258628339039675390793249546901614387436856691624008559566833791660017171925133876233528184710953533947928523649728459203642696088325992119632849191247423925851495796578556181956735783026645019141752433140682397013232078773211528972416764027387582414677969905389038038178331269973306247728135739910787920012805544359790263051332866014252190438949174470387658815272859505893585595423059920659972621926991463289752657762633170263164649369804363178659449286562004275275845571351813337975731214521798747321932855268524160584505653711927227097475863980095104012799823293852873016767881616456162188677216798954069210975266065971253128762657928258470603278538842835709863005028055818260601337670325634066127205713140095429807254073573873892213138908346011880001923708976558643811975662059758563827095664658425397932956101939536067615672174539641574478343624462327300970431105533293083123993334718364621577441265475094655220142263680600261986727090709724727275681713576803481863688516574625659071451861058412273094365017297556006032871639014525838177900219580528492997564842660012813777611004934065659264044622132071498838751320015461956723622408284302198538435437827197733599192245983066860794629070299532531153546156978662543637523327106610453748380366313156092928841726739877717229888051427356143515241465172391856294765000466957998141481133184054969109062503017754681406469923425323502184961178903342544418926191167821100898897442362488598494213819138878550558249701014838499142986315005767964349970752687251940753712962302983868510194737239024858385711250790910430098266150822060053289451408208060133824538857151774127364164910674959664284683167347214576190917727595405936042425634785652224619937159285534562653716450058580161133534638745289618359841047145663541809684724947538062932343535269921628916988156650708255358143023755091746493484730100066257354918875888771874959940528459546137746503522104387642220109940775240770783513726312231466532047684661194032844823161400328673453874269510801861490974693764994173820312922674552143467492802422667040661805744670313682516032647682083738910078789116295618465598430812605261135807389513630001905403289042534746078690510901228780686332715561878716253588865990602203699674459835792710342114963889225709516308537184480341310281990997963100092256379689172506990556356924089858558751928153140795316901995322694843895364751217795439751449079515468689723555955673064802579045612124460732168750975120961216545850057213690738311937678908497047527103873206789124061110038071586445476751972107966217173894928014629195983115764743094167457574263638396693556746173934082512754480092443142570757873187056460625832250635961888670460871299263946087542299985416613130928443325016672705356411645966626131202525611806592007590481565748710560005073238380823224058986288532545768213927028467754894744411980486071066377078703052296378374036242655866299815893724346258217158446246429178918150413666152344817844154194299991158879447380318639574606247406710198502503576305702335637095732263675690409025487343875247644156881092213333760124602882504274219053272021551623149462131533788885340628091117430911462918210055337727783690869474864154169026924563102149314459122955098959973764015945964903125651839681182813344690833258533173577909885018629267082669246839775934299614552015555402244542851615779058425191194716137952574078118996470733993908065207190757892628560815361792133268846045141454990265403056875212071365648643232777610808577640126464560484250499466036845646930757603583005024841856084399344448623720659672894922292225312000444267576010623040618758321994821880272141717479696072450635030690427461573386639541303588552874821223710307252930260297376121196796242293382519370495869741513423870737911481643095572815148317533394708944680036539638308875525623131344185424697364460079796021041303297575112895298843000592409313968326871579433076894185775255827708140592092682505904772314109765749451428698271172348017146618369860636146140703226021300756187924906689663136098940051571152090044681934422786860445874500205171555567508403086427001863444204898686171665475077939268234618741848921803644352387294223613031393843876538921208911099932432964926458297363866475475565869358596806280215681429938980602506421294779094388847087166967352911780169311095751745276411111741992569590925089441470291345328599973422713346828049314672708209778181375256988250959417972576301575670134975260111018583776954455458058480000601234195434739038326554432673811737936076897876824610620150156395245527561845170035142114910643170571462796420351295282840929664982112765590782352294327512412149607936517888991891192813423986163787289435496221018515715984561867212886892652769718317421172435809831880562582814026921937107026480002525667145932895818692516190153834958924172460971114780979997868878150399496421254255263876527217968997712305243392671710104530257601156018428298366800889603435794470714705793582929455985534896573104138079189104396151486996627173936763006127737306439762987470923018947936873976561782076484021259436025552413842918771857128043405162828039958226375161551846194549322964893384274353409087150391684526296004750895121130472332843461535800411947029472887564494153791066189905906353855729923428998514995289320445047164894562770075360439151578817562540247787969011409219526738260271236088981494189630002881222113355273740266033582002032702576007097255512220376398643883140911615680269967359906324887546813375582745212705683570505865642618135025828050785016757922075998000266021323833325269335538090430897716808839670859041490864386692920954228225946488841897450225623467429490204684333138541586388256293672919207136779913325920825353516041875688681746339929005273108736481062631563273726734952649610208430797879808744951953450048712876121113926606624915012392916802684215919421994706957628321906993029595537620566157453342457194629914296502536059224681541007100967888590770708774156426652661375380182887713372945214071801059785572972144444562337496986242464581440113627850922519864820653018171026402967879213314531612960175018640792786787533306586618202620374595541330801952020813169122669811731389694427771077379859061597460317358049645920441447919427457846058477551701613930991724060474620140505430652172149589892180025680702514334255031457473521936440999054212342545637764668674306528890015644140004489414595459929299656871676297688528189495011458225218448000082602828816388821872153037320830749411618369897086967226845744998781772871706406517376700946661489120250829195604566458800404831499309897635660268152467547585315712220391804975994478212821887650293823665925652826423951135855815235868081780080506140126027659511866465821174066153638292473404328000196006015031155520162478842026348791516850802529267299822748428853523116627605927250853931860966225691308805578259206653425925029567491046545856343577823944684862258500909074806772784345389105470875058382713192883255330586104489361424414151182427373993983611155850545239602168788873469401692830939653636975694066931696984919793665742778684606846512623109047049634011245925448765739990717644486909126551120575838828359330869447393619108450296228631491289567252700650815151946592046880605929871291401530077716142748524882460782147406093048822987381026655821236711040565578599753421880172691769540773080273498756002100204882696128226638927149705225628179504200915267455495322448682809308204172743295957582555956631887111774550503902227335334845061508547911566503993676051486933109104894102345350766796213687429875671696302461465898965511636204816653966330562707554292137459159253874852761923810319891068221145334889477072990117806725997633215839732700137568440446254173498049401716095822675332946679567679195465349551184997671834244030339214879691646733897931325566092671959693954186366698370017700429389068297811050791647569620059994214282254378866785154152523991113406556531291555510355833642411945311951365196806963929857791762451737983387652179803059253793781773787535547526767291136860905494318181511489376385094387130859121747981908066666429975043460630135178884770395742756117401853620336164156917847231465638878405637366279057923997072533347538929723343730695980884812924746738400770889941619444801109905946480177298545690109233087215544280625915328682517282728895125505524126893385987141154021990501943751161523751421594008934022578270060245945624131965365847465165717135392487701842926087522544544106555024569876888218599909127738063023303293246253371716115117004145129423995710115024375215359888768685235422411452384525332054928853851028598699160909584687728651780816030583345712917379197270539783712757709471318040718885803926076380072159386395226718089186515024719348522363069381175500413077478823018876264598703414747487461731467844239080840357623570463334506866748093511579815199953351514549271639145434921360805520154742544290816882452832337381560577404263811415771416758844223746649611995679407494004256299005735992495898328927405138838945918612333208119971739942572491688417368941214121557361940997230525713988234386529827519885031557274441405029999232483765680230439711071677450845216711678252043774083807850226861662569202961789632291423012837991489165029615733077499526343452114200348638983572921102304222133060599177923245374705671357128384590273178101966814795473901922059831420929319695525165744751886253091510852850058234599400228233821275614365222058496304589878857082148752286201043169008697924307797504858317033717053441491243873086272771884717413080496544463259490080020625671197177829010195725750303139705186623978935953785197164964072883067065169319695079458732310186920991639290487805658487092517843112873255298764872766930991815114422568698237642899886056380396531458582201022462936378012123106051466841896233912118771289773666069569499083807047063033224333698074962615675179448179524713565599134458295925782223826221267859858059009284956774791262732140127644198970241453709404165437509433084948508004220760123469374897552242930450909570601074323079696618383486652186762217341051150758798556031957975186035905191514766362433829025151965596756123829720000615361613327888178037840693512101337662519157115674249314329123490988243476059945368772072016779518822806794130228716472508233259462728683045595764230170071250040551041779227291147028725391132141953003695144403509523919357721647861468784727865601088989014447910159750930139478106706236122968419854535523307141488683477521627991148452917913605541567194769454962892922194325958748985402188359821017349366646702767779191496926839516819836527456626625606524923949774289304146809002656360023619342910741589182028349465334611143097755583243962897102313867177955299788044741423442692252715130385458490631359307462382956468417490043637052113614075723287651290221627631552339510024178247875040307125757347252937628975935982170499059377275345591597250661201421041504480775476490600182188505960023468759648277728115884888120318681818950362965737222903225242182832567468437813662185675248528692187305418856728168297825846387704397416704618961178188890203700371066328870855913348871890195540994454539031481823048799729956685691627842228569986365137324560103652484082978637026361848088477464613361894364598565703536401727011406127427144201613767904843651425519491563861352608842233044528066272985744350909296120954542328175326363153647852832496037962171721712425359567250340716317514518165113295366419250461659023154520009175331731622913808386049869625504354556061002677124817790686724099945030510843534210961952739981338555780367151581680169108435537640549296797427815378845500864776737383082720070499237717219435295884244439982484583516587347790751822484792786050188725528301396482545670061306672446916142163721205950638928154673569874501647868001809804036830710570270229190600586684670172224684165847489277193783823338100284567878265440793596905917907144442604549054188500543213390912008092639875431282773197310155757843698658826853010687265020027082756320556175207160884779918109673725089100356798860955431058183341347765907098714082845631693175519210666556347405171675615560768652473231583349169175959156979180036492553020263795449305488325714221172907450724955706772692739610095560787082908044202546428018404364201531945312025732677352176815926323770272296042214442492236462293449567106211732680777715861977207596286450233853560676996977821019737231738064121200419616822200833205559195549570138650004052177530645792841168865574458495627423473642344738551396630734943181406777333981982757266443802486954724658402657138706227035937703434586216998427622964724620935130710479585735784709007177571471388118190767270182959317647126211013347041303325905990996042416700437925599823794722454829484250909494608367512829425840548834702419498377590787093124113860981986381874977826940089197550506396825271184327102838848888237484448473503629282417392455582704956678694074245429183684933120702605130989570788924898135277823707493335576842720189946133769077543286776423826851426290878381646769481572147653568486384099460614306943045688802662557729645324242556229592008736088580541233247295720143807788366190604156375769486343687342812675570483201165328243117187711466877963404259738715628226274610132693023979194805607629359390316478746584428326415385476472690049448034519671874647987041829161930298698877449432253000043277730914492024403641144134722901729007326724369032065360305090125509147481087152061165178255198281491182091008723439673309499771080736701666633499288040957963283476550142532397766476713263784491052617342920756692753367597375377356033504643257303084287232728545641187897917284091333139728086162065663075371571713402989354650278340564834134073309331724120864406471917025022642890658636414459470711156694918829028142656860652366489360030333804849426715242598133328404350616674680289577566805622025391418364174178771242483016013639247559527059159988312657390597470344972795316681291271705786868077652133663198527087722220820772933165633291584843067886007331517867548582385994680897637066911839308389229759259287923451595107246704739924845989890274988938654343588891012859059350650604438454947901339473264138937492093636252530302046039166010515512018171676935662637769459002085476621363775188070064207917016586532076947778012547013085385176435522829524852490399092317639928714526772861992832652937110117698238699191738480645329075847431380768198075499195172204805755411213472634586841550348609151670347808771804857694872690011445893094875887504755088179230079785783484740525369768207977958721158384074376481011472019807427191908817568896389918450129504061455954370984945423853949828917534578069268101009844639260133630740529094525696831376667664173922294603219397195155689939690363021885745121006659413112980964230041732261828107813127082375833537796149360604878682105491292764015814121159849739327841659713702413917878125157033227277705465628259796383944361267282298795425193556798949372574584967547232955017603080055759852989554627738024247616055905851588681937291820548918994052125709403043037964242989808364069478532088965132881563969099782731261274398092043543679101811841714788762350476480484830418290815616744317751074565564050068186034154566080158600005715224309480160184642112230754074339137690837921105598831962207284154125216412577141528500743284091427996287297739610663574887837231421511151799148316564148680716523908351322738836026010902180543781107590432616520965147436794492082275362188792344922836798068707939278444691632895700179052101300698473029754270930923644121494478789318842014202829854454644605304681678855214088051295582273913831939324607987248113097149858363503768325335779866981708191735735119254731813019573717220194940533644713029395544207494691237240343750090246487349976665730630041670224535483915442987412993800929938243127500964738008589747471267952565940262844952660480535790991978495678345700671274453929140842013482788304433868813749140370405357450649081549394897997027912081379943870772171068853227441205601766319141693411935284176378261686405536426746268933220914950007464296068581734599810804616511242234274701616120768511059349810305957166471346418459765255997713394616481282422645284655560810035347202817650692402803147892280554566107627344227121528135816218729778661290251562708578399807255046414430632547915708862046803927642314369565040564975019953437059058019522082126062326909909814150763754654918135166054448100609838065630912544739003021409796877445840730604917620649093519514104683259094025743540449348699694427110926806109348383122047651692550055066227920850612853023023419235200146427583895040876839598565479096443839961411318242852229481409152435350870076732855771704912556150782797312004773224682239133120301335105373400101199283320064939418564228207489597671022907799701628407093931937095124766921355390241948795769776544389826480520466816100554456602265226459134573826406549530465252975937379570851082486116861842791071075905525336468596253151965701970102733586917140993926814445721157124153928835436870564922095971795104912609853270659337745521736698184573361541059579939072993955117641883576237131106009294433720514627578212769230490441190039985982245210775371650548405654485523960440102526626176971378911810403920292158368774101960863228472916188442548550601254741509507772451227332621124343004922454321187655814312209134106863643661039954502955549568348661091463186156003988438021110596397724207839422732051015783295868231337258275384252658370684686447746754593588690679646529468871300418932449983236089964742235835632889959465048659877725901530452085407274162192725310729426854687438983843946615394299375990409806268296203595382907835141576629128126204018366347290087755102804509117351151808899047671124970724879746236130276703451248361394360626041227318196772513551823692247013766765572281123223886514856665163604771868841877486246863916406693940223356234236661714744663025552979303253626182534852318831111534110116246629854434691604321638485512487650326182590286356395125560008203953404025424881818452210848794340829036172865580977670639623290299087108589346559351307103940656992963153971261335597335746502544123141400767875887434590583429909782299972508095364972653493206462482947269793049856605100304190073019428357635591763070638784053449329788040586110967899953090019377320265699051254900597402488773781000113723587531055351420600261441507655288453861406423776336368007073551893887541730109780404553005133053183522611992982391098825013561543847447841659464291620228171310179417360797404788529542773542477404453986975951249849801993875363546150969325665764581674502708231402638242426331773166662602513184513506600599737851675388012115176595965856593251597787839469723656653863985589761987097974234809012515707145488624499590296769146709616162549648346903405417587015796987614217345339094657200812458291092917336270943364157175840678270342363815453359901674597334952944577195807016425072624223750707460878957465221270275091456100485124378143669812610007855187651337231427693891741468534313568119807061017712438913758644046794342475762711326410156375831134740665933883548457748412594247176207852791421222848212925392189217736212988640219281721934782972065673841230669745421592995500028877060261101972832191089915186800491162144417334834892740044237335579500820272643855305869549491720226468624918609724299828784480705530487779070395074399102178875030337281543524633205471520842888539266626078626598419358347646873397371434453296527401445414844626707164471958875829619255900670791077876121500813565558420985991991338704402432079213700268648264920167772156961099171840834739873408796996988896205524916624601559360143058378795961716440406588255918849876082727871581297911836365191099597697448521148213873713818508049328156975917252112787748985592747188581594816094735114674694576517428153191880296265406925030627807298091956522367933928440827423300320533981053847988682473044236245453081138941314935582618299658139503439103395894630668807717846193064196537953793800545868365427542345797987725930802241715679584206098774356943635400593568123493177311605547633264955805936001494687678525820231899312057514098682812672455132641086241973027528932264615134518390541024859832050802584425578127160145692703960743205733309996525401900879173238925281846077457529486455188546448861887716152705334619454423308776805445214724528732487918185474772078881879529798992783206091290803206646616458697627721469717922756020827454413511750455007863354546243190291426157368830758936308675839641609506223412512647269691718898835465203316657496761735267913204337323601586536987360291498864709372952757989963250410829072333970855115591403189394388368834975917243681919981213537569233201475070355347038545803042413485279700610748428604623647084447512282604858802402241926839314447758614742265928421908134433642245727234012127082342788058947431257730955693247735119545190506941978953608447511971646820262661572668750149847434424690890175793444978647992995916656783239305194325050257929453869945767985191365713044549642185032822911762767348593710433498573439533641497204580086328710762363136164896888346010243832854782831848586431652991341516375331842655148221900870033947870541430197489112698188765261399317262734838225252260007628257905454308904879169856189818239472541327032646644439166975331689013769419450798557367254781153919180415073535129382703294571361747080223157183826616911390638880752669656407260334765719362081340592518012992163627174647170839715672026119112313868764197895536352030555711651583408335231873224503631084761780862169543157599142145873637622670299043843515652874102777046353607993267245612126327336607465124498120604435164983776634407009835841805254760176185757957313887122655393502237954632329565565878314155196460115456470561332805035188002154485279937164148334685590399452566761466462208962977228002477810201636729122410410527152433140058050500035507061633752745887661210926935621854125231927424051346840072919646274377380137791899721487380496465805440893714422576834059533878357865016558090586911964076354024050139279850958291739758706567020399099058918792147081583185627122506346923964335506690214093690529360629555476615693129090936913428286051494621789843313378129476943936987672636388444435414819987452046622522002149402850240046212480713233075710786577389709015943868016050245757602326798782993056794023886244831893428959053965881747469599263592462994051975328206302349355010398935693276984892346931238469566862618970024349558547772164090303264384804371018457301418318580169676447219212822139771938499016246248988006365688432232612460008592116665775382531224831486851498153323934275286499557272567741869846638207964104211523387778664536909494483116171525695213220906158428450959861636624924378673440939630476732850368623935814796149274250458819858194151058830866243247736780897029118208542401761652118606045611142076752703978453951147064845729691348590260352492932279402065451224443063999329759482138634656977417223788373615767346445469514288045057049737476147811070091148477189925659780099612992741426268618768231544837713263622742087421837867696877971281777083002204096511157813138607948987669185823446317073964298497388883648978911863221847450226203218711218945741681414175820896028621878855861199072832216538601839270467233744928243108084622936388297076976590978930090675132317815807372479182940763366460979307755780624000394365502021963418300381265903524839527907687179043313677771087635049207238177593669744921769035991178641421119538771092276111742081870483340296271640103258320306866007166324555560758287933743610186706773447655537627711044730391415420132086070780986622022143150849114359185264531399831897660188973887298404013364134858451284569983363442167147818082080845055008849831621781490863559952072888755652510588361645993045805491635236750723860190503064022285558444474368871890672001104056091785176625090456876700355045055669052090497208662830440478295885078268460434653500403068857292319102402946657118220067309464003800112154252183406111219509709915515491732814554602672704057056554902104109162193442056212227577905156228826026381619476700056288426992783971542274234404100196458178067482559881275018746213493153679184015374182018496503466482635979338629437264511462599283006587199535175546629660262866755484627612613745207512251916088784543838955872307580889255796176045985116905961659301365156385263307263017268979809257544667039492190267747752214180217029230235974006042472346700783878475056373119605639889818719025484753998373436991912026488516786784643522412244520867792216056208784351001489097663986443771479259370817925848514724790745657803995668840482333746520932442273307638117965865355946808336920400038978096915570901580071560502195348223745393987112684297510493826548515504004148159757804715189425632067965998997044893144374589665620369651251585960478475003429140423348088251265944352354465965348289681953588130871655044247498614106788365743425104771735838587965419755511354543236855523537373918956051471443962339812052513128110929918044320348875668061251957260599677932170252706361988060867783055059263046432815498611727858327112717789005644663839472929818403958836083958992043305666433785115582223942906114041143729615818230552462354022275284698982525144507679219323205759798169204190282976850100308127117520062479278445767296057026400170411892107943372392563509832325083048835410797238922649477254100918955318116189203527446146285356188858800473480348363302997066961926711030097057201492349072492477838410571222111070166141016600393680702488438159791292335973145215234127720295750479048967404038394727263498065986032824292256369324059481010892855682813369201950690550942229077654362619057264637766365645322642044006395970027800253106059799358355705900824359891535379752565364098890808970719120990974892734451226983141787135832181292123963430823536849880041173393743691431583428781887780256044271217054618073409230526640688202724251130040522514456049537892538163931847435919709264919573268402266261071127732029362046504707612140958098448837290000205582054219792436891550658545594695710408134613364080783832902211099637037195243505479551725810161977268119385288325917181307012794824357727670552818417268906754349062227439479391276448300424877465986412195722810597314234122313300175136126850339990674585362824051967143979328051345741094499248203393686088933766634046613350113927773018153711649688101383200820743071821186480238713383864848663764233355868995036611991614472664636492579848541018813886913303223691121901029437809896588326889278344770915052592393228517857309378651522480368080310193244657372800485795644505356092549420026281012980481938434436872297905829954137056351430198769094248892460723991878882550363946507218637859463649148709068284561030041680264727939175446887045199775126668711577851114370525033506538436627969768216427715769741062195067394755734445954495155710381954823278222949134788942595881760987280090352113530776568023629226212494821784627563388663868651447464067108972194021621832919755319322864683517155597220931552440674720088431379955404444383959096348825683691554558850830800971436383025781133667817740080764417860663218507191685310981133036895222165753230385768631809087069485166400741575101464528149694879510036136791159552027006553332377333840084728186574354051529738234722529696052822345214322123319796941924839046972178428209969246275190982137155330412357247668455886007521642464966238529394955348400577489321855466619454432226941253039093415092257275176162138565784133361462633002698518525161059693478699589270209026714125565726419298138102722237125707837284529830270136536516137493711925720513780873834084913843597163439808208917177902427620077912666353254128928062195398940592941822509489799690897922182720408632932518181252356924286538410878408719399330240815553202859533203279781960873953032780395581928555448324497133147106065747899660099692657542153299504223430114799677426387332296073213398016810949266727761071154016612477885775631266443449474057646176309885133271216689659305986218634819433313603971618716983269835528479783443367134591053940333320776833706681399820135776747501972557150115737980210781187559107537090111414915491282820388614769255354252949064760715323148874095764305839579602159736202003671554079028614423655580262616749996230262144836886830854324163191047492819938599245190614901042633213329272153630379031094211119611611438767417544415247884837295177646265872464623093823458422993769485349327329850091037676234521385662933376151196228184980388955160169797841889757550300330969361189760697357767701563743558690156381861148911856517194347533081652622837839166239789498615568204243057927058049628470830669844237552412883397741673028827495630453040848719102165640542840401694388924010822593733454710322934978519277777373886932543286406001371679732975136034001630849831306672846758155718011993229841363945497205211304703157800109686555246090196801951247285969973502353933175663016748236944770952969036145935955313474877966071926246515420381824812422201722028675730855132325312997020800078462512404740867344272933589106431992905524987892557708848189184973859762884424821188707423154397638296151913734992633406719997343807059888547053683796769510898912858846542516476635219532882262786899966536587095636981681304722005748465526364197163810574475392481592443706282499646627013940368493612489961532991933129290930675142526566959794672019113070254099190869061129689091960573589287865491038677227823875487474601003567082997890757372130116636351620358960985989346428164657890819034647136711307472977424761674519170010041635383071302635320180606008685152141587043361072753922253497076588125369408565925951465183051089502669602254256262298633439981373242354020085846930322486505777365842886211013544868177753757043901044628831415166025098138117625502793457017863588495916251481221737484047478647494457551956034393235141140283655036108736900835705677228135766207394257570685125250954090458088859869034385834755541410203465142527113538094400670895402864125573146493812628586881770918637594720701786341372393812993144771891955151383668480165609987944914819655746297762888656255051091755769384771947711474378681202746293733915750634458856193016108636509108329436823923776101861776954712377366973735318070468710650911607565791227018419222244924853836377561290667906649488908314521762414172395392345873229948999071453137686503231235363717545698695506898834080382008135503302145091804002898336909073530013643469367019876249313781617527114602101939703563804551900509039256556781954574511778632338385249198255171187772352975584872002620535213758763812349383791087675220507830868663392071396842587798849223984783943790088910331566649606253947307711080912966622000571743577959990460638140080579244198763405779271546430342911107247835039624925915614892887375417157586087738838414219524861486031190732969320119175757345579891364559179303541241332834465681204289462409100806402750721971253838663109185372202504231096474744238772267146892947759416192614387881855893736213145474454170564920234406068415065958342589820428394378302410932386949785582362286811153808797842178716890831849402544582043282127542997939870208096933755480960124649464497399304306617391616402043705976423249243344133501076102607106328336449432159255581333313691480277259410151823910776404308714533748441971991875009825175151550202911748607661786034620791250467725132707077870376334057020780064794828195542649534164567119930806947578470732463209287181386309532379012073571094530563631566073718206406829832076879206403044109843082932427459842378984274807370843245766615008545716885796885808567351041093672686491494136247561059611216918989359297511269251691486010009812876997598503102649941457644729918379582958765925017743517111161381433075589158880010191916215919881572444420604815800019007338722019183300472495924855672744593365332475529276635538388432808315745381668227647109489775702534799884864800701209861406482608319019795371135919806533161555287441476486413852368790028925161119411254978117116634543752827054162520004272010807825470525273395587548953907133286183525994518291692899943643421019805152775283273101622930868537275673246637455925153151036336137226463339018480735811970460194489510103624635004251683412307182654052155135343021340004331427257748986519341453016474426077902079657442809561494179281890126134876683209139195163713037406831250980003711303156955384805870837489339512852497208281159765140115648464153780729411927781154103539681245439811154214227135745552409950911572420035352271360758144731155354266143169578068974758286455590634089851967568822747300245022238739497956699958606006630278043632155210340100846746291093386084401623151198816385399608896191443181588466792947660903552104064488661126194431335368502393132249523987444839896972517331387475647958336482899938245086966828689367898791142940788693280523442887909843321916348538818462031549714024501282627113585035635701500315884166534896933660860254219463684423148587378915666172990523556464188029032932058967805441705296858659604953562345928858744948968427670136022449320933125873689359129209754925246968705728638969292044120995411358296804424521936492866879201080505064317261377912694852351847775150459878482152369147216458093546862447279767832377216010682369552946670181839397672801380952553847799711545063499967456596957042801528813700912386835873837808277690519262990175104704859638308472604929223326237423513423871535568230224174729231299973862860747594724031907106810008480937578289824329654909059080969996887654150977832780420438156177429268023464481156806937064259966902998360573740966113254096062146280111790113900751433757463656587286824620228260342316526159768686683050802160300604044255001563836469037475753174393028621536101653770886719675167686716970130923217549849094628084917023799326784838931446422793815733528150858889921097618124917075753448372436354122961044817907764999277397847175379906657865216443550386543547578641267210756957017155398137488000867363693178059409553142551389367793397507935944946764725064665456118068662705847727665000472654473413729909703198454496596349608281724360732500980381368173057188327006200227983683477585323892623025847351116975642423816090406215661193254848715969355967685309709930861079418374872222939725167005870461760534404088603498401389276656980931402846794030073456378606019670493346292148431748331366363591138372673536455069733629506905470840433904071765280346003664903153790467741384516214123394479085231143578498122064180593466402370038682611118475775436417765547906991708621789142920694519899380925687212618195413497784794872854851623591651829163197023589415184375119630637232623430546623943803037348666928217331334598276903406969459860682485307816656150085287215822680301233383041842564362977931980458658457284644793186543392599691946712989133308341276287020637899990265280213965070061803587087198730054125518605164055429871994772876939445266552949899773250998078573929917589352249847907103956457935383345863309256315819206219326314840699919614060315392687910004480780612374812159788646398420111418404078069732609595053990901781996096888400312464651434981257700856709471357897465882706817515922897346281435127118152730854663710769356403390219517558353694276981460308817702815027580318016444837018896961641587373025176674408572351581263155136648014156954700511426976725721805578004918864863931187110014754478884036799229368921319193600488260908001555214591925980855844723366544870424813049624851071958095207722626529011381960445533414637636999309532857335502415213536964299901707673233161273611357776880834883132771356350358172534818333171619629975973364644597613895798041906966129138455185604110042086062991617716277047382446567415081892845300310252468662056224375857003462405433715470086572448103887453835797003095555133775454792321814180244433416357340057145683518596608087993497311389981489487933195175791123158706853900187155762243199330860505926800196954478063306830884595710319783825036845220798462990043066547927222582069110366062478936599848855142323564640645335288738325115971661996089092186795715169296606324732587506612101121338208076102154780939785800546191624211274178423284901008445757445393246451134492287448922915001396169654598698314082071016754601784182944315276735691440078654713188045119571842546649749918098579317520858601440752507793681425819476230198044785647258993602448580735606417291272416179838133590916221806819682526265888323055991912054318377330641902375481492821183822010561912386491579905804476101114856206883753874496760927661888661201063514874047515526145427441735045770552350916622982018229448760483860589205088744424167499400070947393415614405011469410014131073769168005087783153724966652729657327750582567337466041461827553131899955151849897689705708767190895835801001152053993700284637795294381244807606908763966808913539263769525703763128194269285325583864313108478046111712849358423827528024319125245972168694433847173095906726078501970307282977407498936392864915244996356443150121541363830004825038158149847839566918567870690626237400682732967585688469363942482053000381109852097029322457957144732393491345606865576891450319297861043586365797554817040738179146188712817884280042222903578712718469940525116588710164394397136902391260943787215117377908783410445888901055542387609067256634770435171349827473598260815200982057013745045426797486276259885852847738588778642708729688247189453486762816583159842615352608254760213754197341664737698505895715045300350977557831695865288396713525206388771988880194880003527724182100610811415468687697046351620444537087051667392144710899511914083405026970937092169759646486816604160493906357315264780967087933022964422488984135001154790878744893456207394561112131433286795056774976761645490491463330513808242639351551357467203275231098594684440931485154908833237289589401610298343803511535323414817451163473151409200775703717522818090532282592737334744367953144951223962328396291852300138771058690288566354536821774214289539046270003162118090708983301510189399060615656517963319593329201550538850104094322585940697715583893444806934728973983066260482551297204477452617666496695499367838245793427287600092384985350163433177365012294417354815161632191955745918738248778843465348183711587509220674835803079402713737856309657086028723950608330482585157316400249208652857464413115581228037907818493044437628141239533660276169097033985191666386552392286340599198088641649623709381839961400910379863676844708502384940117099742926657974027129424457906193006466369309854822164740824660900230651981189879109603803745578962535496640616925756144413894443054326127723334963478465970527181194356902990634509883207241114978452189034160671817609277528535467829292093499869613213798090946391130181903908448564585552319622965186425425395897070632494922442490182671169791938887186064879839631930442725806852923231382564751777329946787987640694722224033656649656231025774232462077864964912714536154773193236436959208703948851951233643094234311397313880247813929276808293975178796424730919893208919150824677948688293702695159254918001271546314369045787703018922848627878634741578001379498846393631279982609269528830155523435784689928253313284216588039190785886151039881867897817650715508924740941223133087342608319617819966817807015354622381993261435444327962709477460282862275612161815950772972418253862825617187645175343304848423339021672429160700757905261770245601942508834456608971266775309315214050065456689458252338783582833769072840937359704276549706266497088137235190098895829732476965588964296440516015460562467769078343978261596703509743754397539671342987332350627100697635731767387279558792127525339101747041880904860416992789096195266144453523555698852130373652782455377587396776461580536271264200219841666537496942409163024780554072555542904796214153802185889997739985755811494584933037521996811653028318562135864400371706939302792538977965925316293148741023481804329483481230663223123279717207927600171304142152694213533398066868850225788582590944471946068357962257095078540030097836327545275846639787378987206985588912223262620736655242373100171055148538347750386064369013251059688853027680675887151617649666741114700969794551992300289152005654679310058307579601836288707094626109223414851115236752006971358470016507414080232126522449430380572682824458822481558956914255196311000555996864516699161196509265324877768270516369112712301770588423192784181942802458120462831961214963125328425224755282281208510558916786629412490968949951283172352938275627759229540766515231815066789507193623899873612387367502024245582062246999104529160222284297033923047197189210916755509116369164276817509902566175890240627420586454314979941816933012554751416588224397560967003155607968601215421084592726766633160744013057850389306177788885879684794735626635654687976154984823694767238656933904122321540475223739131440342886531753009085701673197238870624426770042991664188457063971405860541169522488844602458533980539204598023877885231119362108880209055254375624024831735645490054270058729990547352478633685539987061914269871747600305984317739657586633869415039775730978360639129705814801795905603494110326479024949744599879898852090856620960959083427618840963565777115645080741937776421985845194999213693868933588534297759238775848527100319420805165009532820498789028003326561507544683486667818378815191043480360566627895925119389375989688714943713884628148954794390744206641755608995433348387352699351130151106273320407672019397142313665904961516553314474210315591718755669301151869517935443805527770852172109216205883944341958261177048560095977739973916264022586686638188117362590779234752192706961235151000313965391229324496937695995770920040078553282309185841293550820641137541050434142600653806961977907946229708621448189274351027970092764572667104048618449621068608166309521420948237508443984796970741906022569456385262830625933898236043641109539599627486393544279682592052731861541934257531258843510300204912783539354445005405273161914503866862485444947448645677319387768121486945364050693290682103513707065872043711134298235309122644266367916145695615251054899333220346779204913420274130597320149436028004090466627979416667675765955239610623790866602669399504494985152145748771543878207084170436743061913448022332957970071340926864432485375805002197273411992887690076145268473161711181319986745390042651710934062131876458083460512401685236895347756853640485560141743526810001042344053618035522895387595236987307182787141422975517462948188166137243630888852320807661635375314729950705578001752648715314949659755672696645858162851807853538239128530352955308071616020132323122025792891559409928749128334240320522009659288334926513483763361714082498113357203194722568525628806402852612030311254926417124304256831299383955767512372418788114219697272440107881995799095329443024532351315564480585256929968010648061056010238168203277508008815887429012223750330470827174557950125883866532610386227538083114971695873301743154614233219710909507491843019239331408454147188639121812523682805951665119238795145810494407187816977502626522992983349219569386965830007200289980558627732617748369978127311390625648193781815036439894491924793649356446767489554458339595030111287266031292631163726828818851804369673158176509115511587387918224075468300901705997742254113918489797486614783357007459634932733521861561532477993125887779484609628221419280285064741859494047930120891052124791859189599586342641453503527417199480366269177984897027953052905567896165831465616219795360045351544124918713754479918411689283056126012073147232141110185265342282103129501544188207677504844417292909802361228190608997745590542841835079812796928707928922375952943584429567707994532304545402737817742861547511191173045088613413559895366986287631634966925628022818802085103035903146409007240780772840805771907026903235967864657762706141154781914103951363523222976720900971682876495125613230466226483027473724724060924087231029801652673437999276021096001486378659355296339511827454793020664203668404758503574818101066014596573374141108761668666533622745727949927032941113206107925320216859487004104421676448263517244257987247632636508612819901306294355004260345237607116178717299760616850439297578233710672289722633711405633512105908518800290237073452053995030640271610925006467448333704535339575679639269276468998734180216624625056929687490792742725296132685036402583185523227358776949668986359403499863753876014529756192191559558997383439934116389864029703173103778206917908698587170288837634842704745483659106071171693936250680854866610139657730637429383889138330974855903530054371704184159320910851826272865437939372839679720579191026110362173062246078910521463364520245010365959464607464162764822891791097498398745844318647401155793398616396747844160197592445147352931404255882849556407622966467388831718344607349489334524523601224122343139203783767586509960826549815995997211411889562673505895286097806178428439109623479969666903660645727540313569984468441785811992897859256591169559685710409297934965207487762620813287121521306326952163091692845503031764016805259736604554495857597552038948534803380113964949733174722766359946621631440249848854646652931730350264577305230476824942115768620052324332727247343261615894903334989035633668301475110243667524595800745891558916003510624345403114415376089776867225010562970452498766559112958040060518756930111970656105455662459804769405456320804984227191633067272774471806552479480171017409013917208581294851913667546373103255758812035773888185338732405205515923293191488013743747902576290319860264075822835063524356470102289276733443342049702829858401574736177813868376463485880940781674636820216328241257107496617287406810870941287660276824229396313065824106647968179167961254377921538412420022347234422394116595669220825884281106977732766176348816683432945189526268735947951662001519201618247874507631468857721867237254644168343454419730114687908139949595712483849023966757520672218459527614857958966299378137069622320349826395458239243700680207307097050634568822819091628365476804422718019433054143268302163296347670622338330967028434131320159377104530436606261271672453322043160180096073683219070435855976592402111704365320163451663273218528374409404335605159141338566689584090575422649682620196282637354051435437909864911131259563400222924905201778637935717328673887821988329753032354820973650946150422902709959249977910046456618864152830465998398906881150437621989604107245682385963305347522192453559998521948829570533536710437531194001846775883970719381148772826479317190023189655372957407225397047560430959116827755263086845875090415203138995308354570436017550626269816262002580182043966984503993448996860561332784176479747577233365263238795594006917916473098996201047034951767564920489060986530006588621702984709103817465140295928165272781268059191827953938385861225559878537713976267233159147096222724590964260129205688362392984978978942508622219659285902958658024707189825403680843450412613188935880747017975743062472064657692742547989858368582663139919090533820724593608567773811325102560624748898187215274715143172855675401520236303579948772137319083181404753745462032038592151234397344598117166364766506244372571707525405747796044827016911838294631298122978833882312521753037409455046661273626007027528487330503596539697863665565463622013508058192111749229788269966770669768714480749780436973352347445534351912464843534924093484498587301147845124442672322189991163386714723824730260286659752102431495768827000842888799696253327233061446397313263293969037952380407054331704457628424147440053411380648310087666509421331262876257095653014067835474226683466897300765293878725046223115208557027803868548886009791853251414535166023741223610143754842916162855368206134224476055667045499675081022131144406289810612620036520393623282653104839067218318874990012462063412036539686167901409053378246233351402981821646285183890367212172508512269511747596145595358259071838558839520781022018724898169764456573432485488461651202898813017519372883934498297249100772326521924825400206220411675295233540907421020696262074407218930096548526256024189661766377455417770744707982393625394137409313347845479757286629972861621934297397857600735004900227655636745809769522198306242730674345496677714434202122070197929252329216266989280022461111474116116690718327637624678104781955992754726444692293917675315413353814547392566911840936289034516126713959161397571053350670641702353583256636338246318714375579308640708928089855167735395390604894850334047961526602912453137774430475127891281665645665790609897985159386792439988542583514672432036726542442892879226603249471579815370391346752872472849003712688864472539875355738796265836755653589177884514720246017956439735821304328228935453751002631991498070434927823346587904948160641276423360971514582896434860235990689138504967223260476137364808629912480443526801983144422682424220266121924551826626799285331470126635464760014045126908393230255064045594404972778441542958643141868809174797780714133538988210809755572598786678393962324615370321813527788936247979837992203613088749215582861233899786910034916054634182195490252561187652554355855981765052265212732273486434693739759772691016923079171567206202371766461331867535064480459107516405108178663987826443394548975502872788298100477053533560049655032179506939249447501411738234647798432941721997042008256846062948776576397230744677602962599184081066648310880646363570842452486456110928061277223614203533503426164537766670795175271322691101820935978677083724242131407061588424831893918291996792058573803955366430819390919974458205957648056399556471583854696984295335774446521274489416085499638345641203067175608010710946011586704431857387226749845677788524563470866268123076444601192624456749614716287655755269756829956368888658704686424738794676909808342226229364574197363723487951575633969655055582121227183031268660925852785593758885358646266518652770681126193325686008723258410711975883957194823981351232613738394310549136951704805802771316651372902947875524186973258721000309859326149171712687189987074890612369554115326084225190866377632588085090484817412472904607174084030384101353922727444512994174447221424502564980307843877967197351366384416662261465081023514515451115712020725727736617073424056581810282400877008090296497827067307325119098722859905684094318485537317261055597005601592770349145589845982806123928180716077915600690701726519156809321634355126602021846347788379653019760461760426804055392586236809638019262207665837971770601243883445545491053971864543604044130112414412769395253296013450380503214388049245086108422231721237665549124944837101145584223121218340260436144177121626099251029476189666860424869210757253968872328626450441585368998521851252209532203346340205035819266889401174283349162185969709802643827996344646916905551619320145589417436954644517264914342370205320802246829440763176208158872557077136467467564157552244458706028382375230595015453159308838074538129244846091398053965890661289945438231186937257020641702465891127347353542286939087501409347572589861243746275004645858676532926580553079653013810971907462031401191408706121150357236495186188869324723749789827076855721611114908995590604687924417680058886807609906185149450520781854517986971980794878640827279570601157535253298711894090399849032158007809533233586507894110767611290493846364964296097513175761300662339864440015378706309712365182346113867836419156621230305028489662468262447918667012580613391164333560465702771889844729289725538025988374135247344566451397636950081926880161945090917736289959575608518408635605522869527009473660863339749462294220381674935484699774738935448032767395041398887433188634431771213854941569387456459072120863282654345124318402805744072390809430965762012688994748321197334352378907909963208380332311869177307237067628310372859410952662476151640448087942585346983619357684282364929856262531144812165697489071194475696147699588830259893086487883534651485765599788256867036431684507010207818694358872006062032209557724156914002182694233954166583452526466316382442544798261014075358319375379228018793912244833622626240830848326496211061342925065296693117671058091602740449688299560508865546036943252376697684504157634087185548512201160123396654164557533790569676472215109994424476604230286029849038867646433416790738860673846728951856520284745661990348688925875734238533024476849064093232595191495922378768216841481890425417946968485794465250815883138755189815996770055504638926702565627083796979792630489042666602304805982230891537597250233479758509398663708900422930530379271884514296247156637309563726459790509830372071593541682638696086293014145198799632246453132540233597813230870196500612521045940037446374125044517923293932945820766085822358508329096153930814277329027896442333138125840549486904215506805720528989992588139928507153958970872224537356561324979650077434710037052648887872073696499404702057674146324329494178926676851348939276623190144751493075882458717565821992384665405575968402311173909556117989001466721458354977330508231169663350426044599213370418148152482150121336740595450631391825700925513499426331671233937666387846367943858987043175055710683328816485710388138147733773089516046874287129006684773623776408891650670248819399241801878577392707854292522173882922633011889771861994184180743826101364388062842366296601547333466400885945207393125671411608133774124235481817962093190472412996503646012819860089689891833833530308936034025940707322182042097447658822800369957389742816263624799907590654445533706503315674051911161827375924477451523750199193054887213428622403409913307531132953019671411343561853857737882259544919282956262194169357757105593822647865998193428820567865860579263101701937131197125763774849250769834774419666321934469057150792571755616698646614058445836787034122839284849250457438535971613590720067146260301474318886109894260220644567762352911087411159543628968015969915517453512239449103943790017875227435634970046995603943684834919733526820130178527896721866928244661797110424117420258463418646094350181475722049297823645421198922673166090876880702424131625670721016750954251018609394842796815517869957323949391600189363319483196006611652577643360451758773350424917032811329205387315865682033865313875086824636427031141110611298834145782247493045324194171298242892879826870398165182903940367089150178830414939870704882136804126358471235869105539117237306201036663722087993417460215933521692112509601681923599325376961435613511668782050440064334451367620210751342379243837390354094020719923186396861268996498477144841847651933817722933673799783969211110244278166344507294981720958545192567367445560601450729215748089688142851264751055361899106965246855750950482888268917700595250313623811307991998779472553314307842314514230738399071364747311832072983908541285616306432299738420279788124637356940673029357947597579487133060043577355150050586476031659903271318490863899496568532751316953212016177762005868849837457841731196908992937171299116992603010638962751533706142351187737965557520675951758849774949659506073404582785808536748899416399116795543780195366528801454723252868794106585175025039358993183110895564277524794051356954463431338012394289567045498574048972004977029163778866044167345751357792483883858194627021501160336935146501853316663117303663324857862533776844681082068786571131806743012293527345922507813084178702909719795363166412339644490814181295835457398189779219720060147732254416040574693418539511185336622662505048194871783525233871696032684917377845142957249780222459548477613479362827735138421153181683138153112486625425536638465485454101523469794693920938609411906525447195525742051201313560558869756299371914754687275603441323241430767947820289777019302700185336192551726634569830442488607896951056911457374532796348839476610680032511190048905773259952599359569116153316973573727550663430844469175406702615744262364271688006828055565223050162387224490843213181137813136079305356963677847664422306247365203019888516148569333568966930547953583694954510092537614008782692006295344720655516237503074864525978986649762638877072069466948232607219112669864715425909041497596268900698255048673631914551211670538948021885075604413981709834588797731531560659945287912078908545959592454684652103588832943422556513703023354346205266752053024993359340092538235677514122722858137401414159612608991023176397870890642806782358367965667543767567071500688211097408011433085025092569485611367118274746275742857322829233671558096938439245176306902047516291762968501621916390368085527068413736490209123943751874614300755348018912283293933201282702683715323709727763755238799373383698027454235243621155157582724960537124716572756284199710918746319075758979559139418344639677257918507330415120853903941119644567827371039715257503445285412659892842809723799338763472994415157661575667811691341597213382070365178107036811931734479823148337690199305861169955528660035223964281537644899163800585398730775069766050086326284447141100701595552428423545349768646145865246704130832532572424424610655613590977822675614216542544095421739181566804294524988320252874350520759555929945548207022956492342987199966569824940480321817766334043925026895928721071044738701662485711529482852610240478329015955764694869692087587219602358532299469107350899719143221208666711806736948315677956149248318619045308244643500533096210485543753861866105054874825427945400702469274136582141805137595961497886873669157204871677003940716751936188656352203070108057301378975490648015087586142794349875521650105972667714856956989144123258481256908710683893053870783100126756130876803726125281431288308329323301758372759127176609337945755547531119178230834556537991102881180175463642520091296417506722168286506483057846354552262464998769150790287859126411394440280623921893304723335780787585396955774111040091493868720617878040163073632282827552480309396970077190274713725784706161396744635061446571928940928343086075962360935143533687239073381794837350568152154236012557669381101861759640137831694370311424336016183355968070195304154686225586576379008137880647887339755942373046351288960106295194615092964421604195209252453509978399155454956784490779265541598167034489307856260483640160825305493743496441039387478505368146785798553522993338881974387046745931591467929132175029426518619549368505941133653710975694676873470047534895473395675469813928289196518276795337566551491852061203530780967998182011434263095922091371572957044036739594576456934041034684405192755840135346242585709941499354462510835905270125811579738969822379237462301799779316594670633100519222359816544040870657447928557673880473929379999338067910908006793778091928606635984881397999796102652728888011071809196523685782831017921676921036208415595641132367633576727413039306062661237366332334331468611246418515569261655307576853942767902305440069914539245954154107841043974489894274477031146370412616554663738713111245963796431702320519861253176752995366624837397244393336638149656609429766481126199303494489174904621220203428902876900360499396706958346299752911027244614473828543550890807089770104072436473824102695613155595223591649872491060152249736489689030510028358254234508707833728710499464556884918520356430217086587802733171638768333003723618557487502368275961824356696680846212194252752651700292756114893898049303563578408877342368792122542101760475181257900871085213031607340289229227332154885905130473027800551976575190747336577430059867117284000836378606258956393659850412994830853517959707549564920252221313536441465036062522656772932559308299883060678874791677572594519984979434387302858741376164756571526144686150036458815858493326266428172661633426945189575404417699283301351607616614596321218603722466895601550902095612904935964403377530675543571300981687429884489104037174867342923739468772799024303988779684821892324137278203448883710115474968805962591298186185009991189526562789438782860019618481692550884323518731372309088107491948728382818121366352965285388984850174330722792197004155804693879502768402593984664033866528797641499067004879901251162821056016383817478716954256099376666848559168259023933173298063290591159109784360640895963045859048830664502478972095096674977045715555549306661349571341304898600925615161572060141168759993180771724369604632392645675209776206699456644160840083920315766759825272940356708598836387311748656435908044846829997618569499632203222181525653015029398228772343174394285687571085435537003559368967469748754454582264892505519809972067583601808317212018374155982871558847331719465289875394861268993047646632229740757486349841960844864168943373520589647856982716682796789576151846249865288178196149478500221607680034810384013050926784554042856863997876101109443200007103144337497028161222315356846742605236124968352538323063552653599625761840566883568702744163193599275340673824171569648459060479072157004893791539683877789337311900808532741096568787474110715155964168129987822694678316390780279292819477932910565118189316833134483289223397477562047823413684708099436834161967042785846034676518008883364736085678480483010427102527202899491843643370209270684537692668758073543961998555327899958341388321329597406844343629863207952298704111096352524454547547623660354326484838838692329457331485581997375889082947110505344012620525564501321132777246528949595779341306658717289874507411972095418272997851553333748804361411394220917911029246671321554058638759785189919151235914049019585554836529606478829679970216394992942153409844489657724922772980951224674462951209542418787445146464696607391104834710543862664671219232041222379004107906192123434677394798856111625496095394548821907441278392622131076556833292943371652560409699885817654016817673497555507859432138025610280858561998519265755709089310162725568822641939892618869378833334044873575085318582525820942687600220340102808745089364194455871051278914636463645794439246164321139379391287272718533002486729300137875549690186703079789627723766775881839705110239501861263596028817585446729483219344788593969537709562375709627930672203080265650755323609369081779008634638511248156583524102844057174529801038790969991927797191700602554531973877134005264679113351705287508325500276305179052786771425803617462814764954506851005779661251179097773576966381810333949152246617797704955720653314924007679157963731213708110198195783562656870903002292953612838003152058639380813381825592738920771609301695025227423208832981051259618102223063706473949944682524094363018220637149526800109970380845699295876142841082571053178757533468349080628880491933619297749681193256880719970154113205762424307906655942565917549154344165426210576209398579618700358229458551594388476878270794560464530367128820094774373404298134939286261167069055975695745801731437640859301101301640508965038305573033137973527674861388344188009575009912760636458757363548794021083313847913191054456657413432318022076102044622289570146010167193091812099893981387942215876165943391762171614093638062613091161220348986989046098146091141624943948496649331696410999101461262344866264226889732811736353616867832629176426046779314220891479739546041777104902535570639447798095719669443638170478707195015825098644006150640274278797087413787922228555650181492266252524603645110320199004393492336242695512210196990983154342216807389368657053455777998291943414657589715285287482075138818177818690822933631916832013755423227344979961460356028894068843071839328294477391060629396810643503036280500173402500074819071522887213105598180035577315301881558008989345789468656923352251343326230640262677120247055092415464706972774133633352268745026484046472110295540230408806015774640572598152234443615151203549903277889580980126875367853766534989680646606834786137406113012917895040345742603086861491456431908604208573040258756105929519984156258528650582784951159427528513317431676117675013283882426767915008083687409178017982191099378177904929222130854993549248474880281280187608124484455707164774410978939513928918316879050728861994807030312265137643106718735999233600097987681442380067643210925679728670911465828818360348326664598574982115063305711889335672482651536373380087109346924087698891396078031973198767617967199255097636812607750871730826150679543747771811954001694418639087948645641086329146058630282732396600642107077467735154401840302025542364838293004220055600439136361745994254433420838881474970773952622707779255703532174354285648057270199184369904812583913917699517730395277774081642011174708328509590793171173340533036985677451210023019955398834774192958190567670209824950550406148339556887218121510462755047258385461891006942714413930473807457798747910063411392882878021229732353436305379896782548547794140941276589534843169122555154459202421138422951046890997473984661092285592470557798312222914971885064986390756795614764258640924469480205490232931566877529648260084580694831671873594009802709530438014301299496403012006312104313314834577052264042825520067689843447266571506625926182058948935936851438666784320566423749805753855468391582244567292742936934112785469437087938252784408273790244351019547375872185977940420781378585887301144585565811939341581762032037881355577417243317775083018104580461877599193120703213473503285888281494170896834060744876288998255968289877344120789326530667207025201001407367264611065228754939806791596008151227744917830733561363965445803016383490774203837404645804500482790957049270723485578731928228801323847383083249520069353392316958616927965790769550827222631162629075407810696222796151081344439323271560289963655231156778187077246753154689349425562372934690810758848482664556442089311687765939857207085663590776991246005262913262451792357664139678956382072491797469831326483646062978194513182403253981818486321478815747781259376403614782028298988612347985994865282402825865267911493009577611053309945138965592050188732255602391482423342129201027411080467830711158488757316418383675631070287158726025174088348458041062150046308027867628169137126115041308616090337194444203235099981972125161689028049711886775726581905750598641103966341493785550022406704959080572442486646948022540701144043433419573527497823797977704999477401484915860146369336804340933044186585353976277510841562100008504861726719623700157220941119235137005480296740199447298233412977700717929125076611500374389717179390945034271485572700860962024792031581900456914083145615522904892529921620644761050988334566745553278176407620082070894313460880331879213948560640873318434689497991360984086200403412347048290309224032064715097474513320964126927887966682356021240383249202958110588624714493108532605473430796995398117531681626101379306950872837336025248034932936682398200885940074540099865531593194612444360613167179817773706426362875534851853236923307396363333931511814439646524393926498395860239404015402749862195599349659450416308745820003171311481499885415740339188258180248035617426674272443306900825703222314006655299598518961699041734978247110056713754278293065797412711044035833712407534252816721233012562334084273813956763727700964967774137148880878187334221167440730934648212573307629491132774445729474197669891266296515756664532670637419667101775924067191528214523553644710628152644026730550923297184102045050901382603053385932172801993351637736277478149951822282697042082519322320005127018685675883710934967220208433459445076973335589274704016631219193401931836796826007437073363007226892048125383729358344888451636638173390398831841274828814832734128490505515550555558182197374754352834817894279040789289032840258306781814601953730807414001514529204857066532076707030931563680797861411653190041717144386912495714253453528669060674929432224536535889944203305472444763707011841262276915632206080223397079013504322992271381302347754876209778862721215925062682118348123270834212854708755726513760560680418805442195925993121447944363396138392417748802158777515407487390563582478044544712744390880409176233653074548412865151947291521310209314076621090447894190442822895094527534454914013976733605488388236731017415121953756787838483530580646364982464907601465318115877785750455468948612239108770174293723418398082062727192539062031745641440128936632350400207158522021607310720905678509398199913357341992441296673303927066420138476578771262949785770034024865009824192909200791828660140591010006031291394242489829313940577107526396369260410181289262864045179945718324652734037936958336720874092061989871254756290401320483446333277339853633224183464257880828363189247932176445998299221101769066152761695015973633986003157825902381727380359547528520798620229976619682584252239440770622419504810676522656171771068480064100347789839737821801450378883382540338171701952650004081923109918544015348960436572013897053356222063842375507334209183523579842244889288957185156635405854052141880664543564020171787621671518432445365987518438016925930637707830203831969313861437795266867034076178989860482101703427546391311919687914842397935511923727983696246721833936709425034411633607928479916499467812224721696018848101523918433620396045400974989697965681382593111590580658049877469966038539859397374679438830999306389118224329553602789406389671986867795382307760483227724931078288039712266338758798093339488394334581101499779926884037009966716916859851640584198674249952496890227247870407482390491773066956791650970851039786081297705321412853853915288465728023604750510878654585762464767856262649264755297418501686012999814990970794758075874361071559074294786521257209363877746057272377003414616720180709629961690899989964762612684391963593614480990606376610004846806993013974973072770479896786267733009000497243420408323378913163117115547692066884367675055088593907880391324076260793856737187799698352756236791009681900761795903829047327532771611042809352476615372425130085753341872038310329291407886372167455418555795060426985119587368152858244737511966001905570043223713365761735827577739186408042952273195641494264669185559931986633204159577979710604117687869919525005885922612557942954204235602491801193810924510698029154096658184616555760611200420543615763229311293180847317272497703125896499618526072110445610871652820229830617330996177444436075765185117572075119414032801985494712915140230581312589029107826099525375411366509965374320420722891217336952663708703870250127447886320128232627535068207869297901232668225714462197890439105484109489745453520676024812734342037858177703358175509770088901179689730516942079438872993936767081035752637703545593826222653684180049326263844576929664401833987284151036774020423013786529667573094883402564485908122470077288952408296043903227137816316196024967114525216499878725749082197608017500748242191056462508201611259340448408154533303096962481541654908350756572029295703274184743354981301024537104303741712274624321825294591992501834662790204374052461652328221864972576267366736973000532911860405671334641690508077465188473622501583800128775570404710448081259280087533381261018824621783579049823134821853257902731339207380433365279781953151176422516397542096967997002082531351224922359212284281941254281556498450460126006129183655068932464674023526854105042439982796311055863847826494360505590956156052215274370300957603624747186868097723710215426629096569790514006031829361248634625971873158371661683440126197515663956426329832517182183859812240460068976845233340319521287177262306635464457636420449956270610513639249141993169661105456905125762397325802234330404190280594440789193589566629430234337274494550998911126316016232452265504916427981660766697588351881023988023070500361745510091773938147681972064711023247507745763103629263120490714237045562790471720758480008564696140163849978519579828092261121188471432456199569776934583879996557060255096432937089155620809540107307191195340500384405686842791386655888775978294831468616685517702225948556632800647561073980588761995174414965452513998200387187446471718056203024664393026393360489270988364849353884148609813511679118477258618426606433176871890185810868029140527183784896326385272340251327332466290234063909282503279095384659777332391500326442080125857499746792034673817028784819204671384021734925654084413664840019561407205425721797057095330945494274113034944272556944511802846126149847430596962204671161207296100886360324309676124641791852678200191060398409672603545484072894046908777331115457110800183878616219480163304772593509848122198744033938941159876198410079144956157253742698569849222198770219969005479097984128557670104892500308609114472567751107857219213446804856473890899988437574089187684105373152268635084971358817126191079301109372522881449816089066635078797732727439043456421183973545063080301196006122926386256510626774170400678923457689744537203476675183696323445614713300763248809197807133714352610549297138468580792783426712994155480058155276076368063875280838540180655073858720298881089399498265321158768016903922784976117172708652592407427270176403863943714671740960407198360107864649986734157233807634257998225430192829906605658981876918423508717400501338553188554931435101530533869186922131225510752452312260453251545253888878379143863374398347560297457165396777726804154529818499905155045620651529107921361026049094383841839590262795322397623595149425582544146161144607509757216159965239297027821142951541161633313538909372582036110070540822985241865025062155572578883696174082849176065471657506059468701874817708887990471550856160435728462510480808414940330857112146328801421412506658027267425568463436951713193231835687334477297758063802728337727435388198338038532687392090889293575263392249718507430438171963284642086209918894343735642905761318986528566547961217070983158816075075516840994225753536725764902063773161111204718023179910847168445364931136224409729891213724788286328715276058089383542826925928965956657155270091865869721235909475205595632222981709250062660978082249687415304206179356399362007337919172448722910780325838643880722531601077249835543993999030909377491100778922635319101966638253612432077358637926008494727170928891572626634484763855417592615691958172513097125793441030094431629917574511994205559110097973301185788652412420493915237946726484128021153643284768273373704761348547037719959472085948990074556343299854865258471493641737230770824876707230305874417807503934883707757070540385629012887563092824924403148229536862324579282387399608020916695185549070261203165258616148061174620137491157049125231221719867230327132606279665063868009736839617539554476120745020846113187809976828967467535175886038291171881065674663587707525306963749484958558515122673848933371916662881406678263088646934450715442657979550332549190228672115136023635079302294470400759705757016234322420581359403583590742549430389798233223475106011795429697111127422748688339021024518647355268823840518546111453124900626050865659112360451673445304167371766560394440757993380865301960189235760599231518797565348496289218264771255870014627819638760641223122219409373271814484244793520165849618545237355056675489276375678129434982757465589036082139311898399488537452637682246888968370940713460811794434771424054834800821945170033349146905536971294619601812233632141341300164091001808797929833308126082462535801802532507527234327443455717609394930700391034237002458934751458184463942378816360401539364204238567617998853648222306586083345343876219032497259359595556764048735534571014826585394901276230595697858420775348807543752150013056273073607786397667742237285003838577865668391739049639708560575074579370994437096948154294674610208869209577615923339992495133294519754762512319312332318327520794648029078733115928289569035350588613132070759651509803949005908205057056926225143832919226336718415277821397405906830816009720001729456984167743531171716744333828919561329268918254360495672389209821162465085834703652437022789548874814499575100155477503261434838317807393552183116217698947955086528402811112836841059279027796706242014395557536984249317345475092296381350234113831812780680448204466712599701913409771916246950756821997625287749490627869664415875473567630626214833640573717463940735795697385311474791528568448693261702921188599558345993675947684390680143508247895445936549495939152842410856906154545675762008758116378792678559598753330162040335731440490024857853953482951365598377225185583307891505996520971684400527839827912403609553231209335422709185429203542967300769552067789494217217999511793635052735057339271573076711676300096028581432573354828916481479299673556518575883960423146411905630160339516913602684615643500449331601354709960321943221201958937466791601575534413670737368631326206159222520556103939670769842566081163132837322180308823232813573396554176862967486889818991139732038099392042972545050402057337644974760072977792332754438005832676378371806148778699848537780994593896304828942940743119208356805014691642225143747501633933339028258725048776888720416131950217860717910805601101889155109489503891882540129928524215200096956186099051654309871455214643025585949977144800262645775908378993551316698430136784394295667044448329829679164310301710912972042187221390447805809903172301277575811347128309277066403933874396750257904279522240979558039328936690099367515815749769020830196698196024874476297865475453711536191027538996021498522255651205975538496305118038095356825272501538369522943164397979198329980172004233198351514338655398658674704436689365819923094887902407707936368586726615569537889529696099718093249720270193850053929191804852463433447345319225683575023067237258818282970319048875708825451551348939560076007309259528422105915061476761451529654434649931720771417631626561091626202691674425422170607630795418066331267113701528171058646431316309702701040276687941593890918682139956568359871056518664628376963631905349852905851055794327131071942699591812706893232983432369504915913769793932009631606511776990566936576571061376313255633784031655895603509778638957129328666899878048053957221875835293561662223431814678969143269921708097133589464536657781569037371985304302429355904149449546510856077414573834273257749582539360691329754604832456433163416133355897582325249957061848172211269208739810738680085653058021015283572269035115750220442724599928502193061332231186812698869591648304981640390349102492622651433806220907455990854712885943244937301297262200371470124647080328874060946023884310506177752951931234632274072201506852859468984996562518474870793682924127053428505344848570601104182969030139545235736360323402523964150493612950928572159201815079883225800512386247180829420758091187003665792259714965686948639608521735114190119310925360348961752519964744085048549825941072932956578523749473502472095430289106097765230995526061168687803189099927897723422947099289801828435686022246238467081312143423775544231240700692351512062358174495727695603750961609731865007917171203518703970860934657395412060747181917152652307171512236525276772909035779573655113723231183760858070390114405970236386235518145717932712022792320132567264965388179814245498034258740635982147676308642633815364739014928748618365220994693706529384132636032181169804262319006565907570582204164702370047532052122657820744691251153572938222689452174749109495483220249307313090961111420723614055231277114422224074640954076392420963850219011640133430397770989597686960646419721931191480848831983485314191887421348783120526614447049160647741660014268432593627306743864292894296456348744845422363917379896714862282386101074231531783918979225606583952506596760398787978496181322385561375150228837536973154112374404353294849904812964173929247613833265582757980683555404826321266948820541633599988829676782544528043267857008965120844765495086891143505250334702410692740870053012040573956238209109215822688106450050357012761990630754361826360974928149128964821504743075109766724066199353683229450852805671091494629331556686808926187219123939023836333019310195970581676104434882897830433871847541329189491149766456351718164851955732149811134637757178230181871646610196428552187482760756736880132745041633527654542606179797226614291798451341780949919654802148442987930059692411437182311681188380698639742748085944518071221630471683737118382407269269293149105191958557676798368471455663943334345997290238611126848836552870291084499575961787899545992580244471352803217417583479002687195373347448585847604697758800884686610809791534911755595436961040400768514501784229672598152665587914073514564593927065888337357733032534140398173142888872391537631081217024537094588394220259784807425869240576158124174117980926245928635638689352719651767988544201055891608492488126782505060886430389663640964769548460766744520415933157495618130758064704917681817153350718593384890793980203894590548665019380254615083919347458727120885414005491652577040870102329302444372391303397578410379701952454330458159305850333686499111090577766475017675236793915837089322191338205278692471476820711387635700073906823432568240244772964417786664057155907250679028398952705103025828150832394778504619105405018864926024435891451834798418954590261523557051293028720920020475700674065857944912567685594195181990589108546880381649604027549250048043322738775473949545836617515656935094216351720089952688046295019122384159500889654677558652406318930668423413236013697947739244887285164131542057542775675361841720715286511798824143367928929707139247192466668100895765536784380282986965901013946501278680441183835208092889721219279040123765073355108380003862418341055434817014515975471994501495596474527146813781977402208553316912349419096709471732609932647799897906699616016582566067106312255568059945089149588903479228865935159321043454027041698285627242411782663534995213241630614401999586663873593227798897250752125312940507870310920149960973220903636591483420483224495112486004670258116782870068101680345427394616676961842852104131500702786256739862847316571269985707755582078170003850919452756454990284719887974106332546663431795746686190644085624147566452122566876524699254786393724362311892763894362434495093183845854204057897799853584979330169129723543950850844941587327852483874171726081921427156688302446411763874185673420873815872310073208152115190624343193246218598150161552755638011246865057123529627474610360998046819160912868789763401195211448825171333327278706347018182005343543742250435487696233300902303292707314273361449596089535263634777569500587354368521447847290447924284317072358358301864291922701242814344233051224833676544484584176955622574819895476385016429547055731487910748122577585050250661137966227634245857632833979030215578018238199243561499717802733188541189877840572787735358058703404115566533240835127636808747596457728776215323652140100970591270841578869973850493009912905739567609005851110059730522672037792477178892814385728891910297877916983297947655486355356819696947008373889420636988261568794906697616236765531678640910715759712552943635255092306344721933782558478250131149624536589715107862550928144272989355212548519007367162237133190909050082088742954437554661476569530605664308486508076110511673855183084818611004794757458899173866079102833531042739710333180757308336431893225064826592954347038461416491936259014930282876146347574241038030220511208454153261851597196983757595375154863653334083052464199398619221161254279639628504902967323168714961118983510070865091906248515413836389439323617303659557560212483414288286391561367417498667131085807332602661764827210518480462324566213242277954253958911698749080384257237740530612209136941180021804599575337455516832157002529954698716074241360246481173342958644164069333153150636666032300485306788887103074678647726262448012172715851297904892545676748350788548060149869150866715501019289507268305503461750291470561665205084426348564197713562487442095218677747435480153261152898644500592474796892247333924306897002301261139267220933389948375802654580470434179629188741066092785805993178308827721117792268548702323492009759173533246351053926516973998451063174376709464678348492817405296788190735007804788015524698875021887698922226377357281823396545107601280509048642498043564746556428904657468465365661495597493407567381879645846250136973887328672867360696711749772105124540129256096075003836778011504663226822706794638078182874828237434178382360314465055049340458023426047042345535967524551639948183490760738778884620125408702547531072326625726631867627364230663706802510297230517359235815247986583924990579447402724619063080173426158262789987138957632430953579152519013105871399012505761184701174304126365495718530725814012057814227270135493631773187196707333477094791270471722306342580538999486580185452822477379247180456532309081958802738588072576694642223717712378481980274132491926816772130715409079876772674223181475276365613940546463765276047645434011899175430865802406943681229291111040364583475949838466898543611631248649439540234450800442452162710028018363482345744438882704032430614068234065025905566081146699267589026017577309185561802264786259992448741107994566863067420144499742398449005017062318485138854981818478867579667069153333303999285260685016155748159662330605400007648385472390617541019306804490743493675640877425431661568043936212804880289591365735549409978945461436709811597090775748512064707197391034566440173193083118134748153765587282193363104122377104623140359117674782299126218416476199377736823208596530834309313399812422094801502625766358003480400479334380997048694338697808410941239214452372722839632339390970570435878888289660770138484131723625331784440738465234149044144894160594405421792859846411897415999973482999654221985508214237656049055513000891526484653793666022945211451297639545670347034757867462809856372004905907849479723500635262493475269668661897118267610924568441717864656519928832432136439193077663426724809509804764896894185462007659724160874773278988244600514911139056626158272517531569969580720997944632078938544420379298105585582011758963945352818176877925601598037194223553866108644337657436118302717242266864736548679518823843096171043317330956713026635255392445584066256548066365943817238765648835614636895700426428310739899956187065588804305766948571678439621045998195496330257893446139664831627333791273358026866952085097462010801929839669967694342520839379229049026728749556657012404336413150866332487070565622990647447252861083791674169513080243735000737188071103484219578337476371462538166428745322012686059502664378618252410297979809534837981026812199408781542085252001377940055286342175007258860468814978358744343383651997244380972144147063115850779215987282077352696174056274071150881841454586799043020042405088756985793653858918455168238735223985493194297423645022421142289975810563512961100504792415302328033990747236941835133773844244284319463499168249937023478147005761179432963554643166017803742929659246580671824969827676585095898732355477036758524818244442225258982853615132653515851253174118882698459893964483151568863075338517840349876907595788669553265922081570858727161392008996966655903226493063775862150332189668788555723189607894669833122246367701350553461344038063305037146531292602553564033545880112964010822753592594908876838530590723423775125220113964153651719434246245380521721933239804881167541094414741454328104528908989732890901839204861862282148776095910292664139105607138925506568603404683031236798095407560499062032655562852642263110364898288276212129623460843391133237306472424848965877308832982890555065538932270055821812067895966328527742631567341407010510509888321420321487072767000386742866393697712391155452533091449077497864736353663738907693116344134195508110503730998981217711848845427360203990744946853245540280571168255602088685245977560679962619164443789606955000560062335968472566783283683545237878613352256505332398156513081705940809755693382346053632713133528070980426864403484713675152679617201322744897547242061290293887242840450910504547250982868572315883221658868979291772924664683182064600289420163443345725986115386568424759057383476754145591204972018646326400091579747285127139398576736670839597415526890083809144687924107921200569171634215667951169415073082401693780799272401727467114757451986084577943455479845792645966321288264240076565990199057158425704117289893557262088213340622666155582520590809919632706695076143214193887262020735785165500912953764707628257469707015093058845591586470614324663337502000014014655833116350618783383996302320507144853494778478388374167115489291619859504847423030455940894525194419298042165560199083423937110526434713076827573396284721625190448219935861371817403764438023166621383880670407371168976713448178783473164779485768907399651081443170697447275320375534094362264098739081898877136250033208230812900545492253966330482555501614613123177786363072170727956469456134161583105809546873839387162903493865973423235351119306083258045612523476233871635057136348559932651309006829190564264198666446095850701162026845442336829867270621923387291374599940893762626578990659257442363294769861751971752609792923345073667402137219519959300871128265751521351335649548735063601357475860192884207033890775643594217311005898415950008767780384022446248874409708633206996983636251973094019241983458424101491154420642260048913836217503381384472107150131111557346588676116189389170191260085634797081479731736652636808381100469220167995799896994461026130202815653580128678217345366909266825560278227647708009995981209549809953284509910828167811216944605192164198143118237741447653277902089987579134918768096844127410256406334027824581834050384287895685955248544748057734700160358804633342788631413504192756812339689551745267425333855010572141230307702660605694553091159524819582995264825127114839378462747732309996367710550300342145355971553297674958090691823774212948462384822490078426114834747854654833742645988231251031937889165709057281425722337228869209558459120838643351417762395061905558502207971513048726367632614767756451346713363193472488738017280519280175351353325602368459670653044570472468574635453669865331055861785205894212072086594305721930009723125530090807678849344968407269094120558078555343677785310255684289289538191450418302733450024374254739208849348106236867212212772361918677561606075811712164143236377041804293496386415417347539107998359912039890745557334367614665047541506385241803540416894424279143293725277781706157814014321740907539904991036861870079387679572707469202608420248937706245363381984834995126741450878448320343931297160289180030875477957734029573249084187868213010191143936868995004583072013038368174059508673055761411022263960119500350368916631350851241611128203456567347809877533180632022666885431152867572729632922853891732406373785032452098313989753297246193619540842825542609325980497642067931666039573290729969343309970897146446735235283393743664222138274767010140762157388883568012649752551015183401761739121667204723728809357762224008690977622893928778287194777956127330544126815377271713233787164838830381181724068152543574185752198567467608911881251641362839997900169716418578834484546153643541440069434215876887134586403256313042227256176848030735312619877256624088570981359320683520516116544098975559221635556485925418307163304989831559089957940004436548655841264804963582705223608026121160292624120139851386499993071970773354886138907306128021526008006074915118841856501254683210428165147469007303746343441049379184680077252394506649494454325719407973754914004006102521486808815156349304125125410912140568911031616844218288841292669640241394896804748480713635673865413204713344526428421536446670091147506723691065064782444483403415979466824232283081091138589526249566701707504967490661332458600302911141972160516747575771238950024135976505006262610178543973564220489944735821347982408532191311574966395499299432830025622131913439443844405714753516531180736898037694892411899135967253490228379453452845219602562993041226069170815050650014068324160242191291830851178587658188628506621400376637369678921612483265870832243502858860263511588500308914331643382322316628738920451467502793728360319155710739701772233011687066229609717430986776995079375172854847783622554428487465578095669544544533928445902394608314298912641627687707163996874027521641800465804653715663050207286142560914744967591422149923942188710576386739607522502192826519636512906647761986382830549688474842542922374397075173709013585061436209177121727743674951177354818762491791927315105292712083142911301610696202419224564293582856070943715159087497609161151849081317657952605245668746245767100604814845968669365194717667472574014827111911914149089473168046133283652666913794268846231615313612443188994319292536227288660994076867409965980843924268245773806334201348172148578753929571079358721991505962828480406102422325616204266592495904809485854760594461372730537938160140458715756564142584764133253140272908847211856463315137605111941581346182279501547503264776565185115875536868861795989789497113352521631128820040409342296780135745702011862999317449242970831133509556366520847075365118573357327996618185054474692653688071950765304630514445174284514054929366061448467929753411302004193368143652698569604212724659460569789744012274707392237562315232001790283574381898104238643042118757942384452444959065144367844106012219210568249562274549020085850297144119871422238170759098649264043498795936655596213759725911514353831284229144337489332900475863331174996520553902239869323619853215155250806707418024629376326159941194723233590121383878961749286704127695605019071273339178506400914932833806480654321304249676359878465887640253358419397896408324657728537037112959736168317445167097110720585042521448482469857940773838445203359154579010082109014384987848664576834950662549517679831746600323776301140508513306573042527877675192913404594710990036473508977993876343932600901622781415733285405353977187111504039532295631416723442496635177413303387350593269077575661624999985757024596479398634103271927653953895484026585601665028846507570671038894401157429972128024669387698063496141161934363557687132867937809751241460166183715836390913106772791654037713784421357186183550890687165270011066919659437012618946156434423452573695248073444159657478348247291288519140025217434299164232710479246002483509889261590265781748424550175188466213617974226364506480142703343056252237951538053867965566587784227073302703028625368801594827208268547703554555782970972949548135822059229791144717143394736853525326769073969962855389421261590905778898755685319413909528984330041770853316267529534621801864597732108698833271525085270100743647538878233307305829687987444332489647876169254776013196240924279444749764348942627788311908612429073410338020853404680893424143255243613510223999018331490482752043158941883580087968860070939021942145415986357998462983994562283628771794574167978829772795132551248286552758282860141749822509028415914788006372900968943886012354058668195756324383021933083751798816391519430566078347817206229620938035294900806361166039938134593856003574381508148401946422760166460960472557559283716274435864079221563998194926192649319620136943343526373727746625813261824007703598169200936413471785367433110372465922434751534052242088275014551608441764984421726434540284753578316262861898270184905199584167686786857112085732246317041942200303034617847755896204204489121197824211847070412825687275582946682337274805012281971228420961210736210286247097472566108076903907290638456031430866688888465956226841117221869123515621359899309446653663896615317060570628013882024297354384952755679136392163379705334655233695923460873357910527571645564866335638332552210073762069386123622166112196735821686989602193723304194465126797606333500180995574325789633667400573312049877872840577464121034403488783420090603067053114343123774053277867569635059174216243342736621488267696847379315391636027770955852857307870888400098873154393607615140526980350681207335272450309527516177678584545178452486443350938474574940768744508636308005398386418357894863430491363160069806028240261274938961888911288315371795698316821749896944308367608517638546887210729281541127931687921395319058393800433338653147995445088713440850621611696420115730522477135750626601080408580967239049100298216610177894216322640675230232922676795449634011320880138785833324322520836444458598502506315434956735125129514158391642441662979333427059856820658499918656096038352845020550529321584640526604762217790249354787926054343385092923215895242266886894917585447219931018551591769469200546787159914523607486145783366143332193350716987313402050527206493385957072177534498030330070931344266651700597760519035012802056138863243793768375900993254513113400501833568352952815569942469493150405118940188286923341987978643845195491295635860366286091940885608800710803574467846446616274970577066970106959432389437488915289785578624939662945499646646664959172574143338871274827229370516955804486339832844052131518619744140987860797341742439638106655050897274057877312262847742829678293295647321168900565435133353318647446960855854231587893613815446022856332003748907978591724247352687478943474403098090368918828607761456250145822934798071250225667161657747183973650905124239479643569427498056789931907568884212167699424341422053949526132467557634203423746340081624618831470423559536232966339060588880438517904085502274565597399362404974009654080847239119843819935997028246060744827829667919445886959336165824762163859197952246689688593650195013225083886713349175026829850056601822089932416804597521323606602142123056479025285639407045453812542291010475195961194466612080412757207407867352905638868400999406998874130507496447538214349294541953012293161054652853638101749023559352154569143612816167855112868407114692999021328375260145593294679914372490536969010970932462190440303586262934788472080076977145157647352001625597208179356092990326241596519428140171190210312444919525988739984460606920968111847759075685683796347462824367632226008287298577329617215926126729817530619231786129169084368886625941201321207737160424183662171914509539174591220068344287084609718991435635356207199679237158153598909379419052274251208067691412182719274824734327533219745368599805958061036999611227549985074926043540529281407775775259935394833068517333428563098741029012813245916298508142433992235615020305599403327822957564863343765455740408300723859199370237677661613964883200890827732936205309858666118395143845758690133832002351761195467113108665803393207484657372819572297224989969431932674265589943473492383482390282666563603893094736817886909776964244833521227247219927066538327542763751838728021310195196799569121363714763885028713838643011460149222559168424942604301962981228725567619633790267069989678678138424720257996272454573895384675124991560379525157203328146733560488467552822167650821593059300091258998562447655026355098792018153667099847785400850040297024387802736693816966026968130943228621408014621426489162001113367942210408525805986487593547960613101068216527257717411679715144719653964419812810242377813683516457160779679706247359251345052228662179241078885049662360784747576078230923992419397983166263983156837255789886507278446600096790107006038371883473804157136149417354223223038232614949813888116660067854383801831981806644571352546037118889004810350719499447699139378860232472770578588382765345500444145569056600179336387154677453518759602521765030277979769190817460152548100373037866511614358044707665206195067023931739111533018142933340532423689088648221537601750308984583616499631103320488326142589277826113846525082356353833665635404555862662884051220174150054364267690230825080066844622261233111220417229682054528984171759428083294752762741540948802887688422154081525687495779986630922592141353562067538932822580034224111532716383822026701565633890120550608549827074986077829561950428248206181365708676681292897203318845878821056167747076091882782820121157377136976674205991543652220375731469659157691756096161138350235814196532456055497901832278324148411792282943612401656510178754405138474605032214931744768510849799671834298534847924313347652551206153946134624254313396908331781195314789385948447783297973457807868324142119900374930931157103579778262375901575656099341308635336513764862849148129064894824014906282331380266752824261222973556775670199579972373068373465578205639126216909721154015339162069940360898269632655314705705808802560978672859562307034765039274448231702968085138886532850682868902336934941643195283752186599738319592768199890647453462404423160104218436899880562229327212233333415323557503745736670202446677151813059609788821040037311700703590828839536451010785898146708000379255065478525835123484270152661943016849174952119403632497238406553039308184770916869427410144973894063262900488801921386224767584305306248347092066870597766245267420814826823156225885126834851578028864629909073233887908762094734235350247433532063595757665035571983755712398613982361154671910911682038357439155831853884801586931698918169348286749436411941794476838857294689544039632550063279602337866565609444631287735866557269939918566975421081505562238821446414086790009496215870722636329336851461327497157699388163772764091003205311831115578844229336084882971420852311805052434944846546122288539216756642911536681291576903164827670477822965690750632171586598357002639578891250700364830900852040327113315671273546547559169521558865570802601751236593370218874947950859260760758450950951956067002345339936223266460567865734186458323952878074171737172194359238897248797994031119122545211936554050198058690227114299641984949386500915252137277059521251811517358985173917933056005323296653180596396576833322284795254281195655446003036365739474031429459562775075031283216757564957486954235275818957974557418078395525509042825317783959065060009458718877830378121643058308157860868001508530514602484261248689982947487264570765690392016704231650542511282204086180148598689693206562513839146635613831185270291820125476897777378398621842983887029352709981177330351412581068297152720957314168986854268794565816292231332604559322757319537428493531729217015664720309985547180210613220894863170316760279693933768309276537711829284934779903758262944174105189399021074331342858800962091583548414650239970088940287975376695416469273430964841711013879262989981722366445627419746845658074435125555164394033452440116253293070944538431060533892353535676453428966239095044130336363567521395095241139802165266281732125940665621622755287034180555888361468172000401673715299763440368304776894509170824391679501331649631881835546497890509829300102402385019581177922719951843660626139486277492744182010188008813336049891735957376864822218729417194810546179842087439839856671647638031792754186877893518327164335076465671253964515119358659814737708999967010594770446282493836501886929570908512123765870432657217675014993411108071342500008753249866553669194646002523865247519843693244074360306686076347260347649443279952952398652002522848856703540304919836817784300113098361304905804184758906760969076937452349686711567561161495912516309045220721597399118815293486689555085096420675725390645770600829847669934693445944508221819147506839835200268671356173789531683845085266911466390434958072099208028109852334404918308864962821292741861290955005492558166773446128895949817246773115485754161237010865638918979375734371858664555999374930919497480957369166900351538029594779121777135071270402041038066482575506351147909944274668104661663664396592099492512650251877357915876171766967687524992113530932739995172341382289994309068340224487856243534531755272142046127918997842884339564029921994863063240768092489007094669599055992820116439767099628657261587824527805358566304715564199787513610935904764953180458899971572271160336268434834559915054903745344103398666883393718807929924075198139818829957339974962822008426652018354371015538270097369537084095054314602204132787942311588638421545030038338223379403630235023218731110279085199866286945680069310052039538591589666668952861954837959308389557023330174462673860633730847851098923752944482859689095914913455322929198850052739252652512693037165553561094367098046790768938320603203165752880141993570063196300892493859025124387014402662841006266242460742463066568654539432015477555827575512486729910490602105316098639037731336622182535586713595745352098825569642583946329677245077970662806617786314765353682769210002377104031338890576898510129091933227684511204541893738954350735588756538369652654638197212784975105257692029288115349883260762270006238499527594437845387196938419245062494634095066232132794777341789282892438096553697763207085560416240341966937152098132100024568860608232898398084253738370775048405645771137782095515845068045170298945955832180813171331047733464772231521932867786188688195127009466258965450784249051043006206572463555429101668608677879614701901820003119423146518890598514356963204328435866635658535586857876430235271687437511444494251292196738107925410658484206613029147146716714803193876131360717037147367379154276707712437024721486561852553192907734822647120690236470015078906082733026850778654379006354220352842092670851779451461414243185230911198360760050246310015100430079605149611021171252486450310014491801203643540773251724241952204526482671488886938329724399544210019338292915516162688406280827294848786844165651449049426675504850115484134307963721599791645441933560294945805691392955452533907613672166978652873113804410711953112172162102991239468290179052388755721934885292266913137458632049163099157895854107834200691330995575413578232445438291115926880251827866567201846369980173649391876977776088835558266785796687350841556952976634461412704690468619421348292023154645488437365596442627347322227255047488286112117949590696612497512150687609846573361751705291038389844580077197185186588562282613154571261797820155164986550942894737516373158871396221897691797929918423914682659851510230897464264994984128292250247814351197537546679478520669278853781196450610857354320143737525734715466389049153191353589050581544372486729271700151396185050014089972792608328048659300457298204357628906762684139003604959035478255902987792457410813774898887362960279024121061099967803298751757101239584846799107701250401102646520478104347504429217646527351077754582677788091070151534455337892876584390339686309612924563323493991315276050242608516458987518333956308460633694917223690755830798454520118357979617860448231047687948203481666730142057617367104764215615154474814448867119565166708964920854201491335162344110648598791089310191624047805865663064933360977537217378004712707071454972866464734128583864565760393545006275802057410899900689385838068883440709675999294660501034051457594304216642002699903553644616489358615121309401510923594300294571530149410609018938361708065772010020149919625873229157655389315380631877450781097319094498143741395902877256696336179558218704384512106349778552308366833560643752002679986698416807241125478564853892823772470045317023720012152268880185236172722897077196628025029018479851016926554184296619765586664575499622791096557219050782558209887076734841938092909120391471471489908289033985868620396176661201244169010781117518199133549567638077696741597073263340693103176663046017827000305201199305133360670107353844659507195511121044709255135776542447073176708324734062700061628588057353911410807743088951063178742391657924629789844392615788348792132467642035626620037589310480477354083706989325946166677389043647612209121390532934409999549029163483038823326357293718155521695765314601240245008317554111209170234266852759988387596592365458061350609581109226973434672698184211030214883856603466434443169378970719375331710261088535615866925752895158018419200248232086201127015757381537439311000745506375119974836324455264168589790226953645615533199625901515687114942719193934890642265850491543675207447788322666127553423536746644891711437488059781415946457929303049337241473997277641344229592147025691283128572002929407286516868922901674657363159889613710733149952642666832765090863032222290117997525623280386908067017404132482594922894211157467052507105067580740492392079212480221116521847851138483038396044919296544204043422375561624967893109947393442607943256165579287477468308370853680906963567704992357953709057916615725123950449489988927187602449920299113213102830301095904057003360977351750662029908776632545345947582486373792679587637247321696131658340715775511337625993823230205292192529421892185258163964336434416070620086298757267967196395961325229870063893879387585266517447712103072555727011227176682511729856510824692165776885776060295596099679540224561476825208778174933620776243574468309364033534283990705431606163694103323819564931057225845248363800165372845680627731575196491823222369792858166488722593551792601179435614289168722651130865299863289416963697873850038555806092213810303986180686291524012423788827890971196813709690139553667074639802180700293503402675325915483334388419225505895271642559356363447308517366113585856387511033229708442912129904221487070278961727354393617663328796123107919665577214472692148067783908196108838577645157506907932220707307240255189500680128464209133205964735338066158141096736011071988483930097205376608995834006557246339442725318754857855915275168290044040917060712711738719281209737119039451332405315497816868762480885985398588986826994166077968331865039723698140633868926422118613563861607682232316508578282441175523484515729429617334170689493686470341762907303378537811363218908416335976791140749003073752175144337775542573336068387091841031813599652021591721326230090991028367792188563835409229381408323529228070063385874918444468382289194463133479589298947326528075621741653997672756105449899398550399394347283331208697981929635223177488939592324020499500691070821404401902400099770638275760299901449882060989971117201345068528374596156571478580362049801735874968838140076832321455518267274153921875171421858591248905679252611043481820674225623055496841323835111020501275431616377835844147024421866167937331694059660005186780410917918144905382442765274659048838630522970406755084250972795202855610707763236201889773450204036984090697347757785294904132272495597104135967335851891523658525539979906869612100649408098260564159106138669675083663497097342176955965233143396182701597852122703692837957319752391818845883600404488506677586852530101811162357100346981455748756969069752487271912473645209362048202815959969079602883377380040810003236296389624473653667039131489593883641677715002107985056512007322373904157521314738974812206603569508570173127369969507805895521963515096413705232188867594105179990625248148734645031515776771091192433235180351259183859978130423448234854943747243920327882691897005639739759731772657209564596737889472062905499929410367588361507877875447024213594076653919822085413497282500172228903259107412329998964143952143060043144811501904631419025022377814519211246441852180297027362513322848596747754943874734539238755957497823464402647792488223762172692498463480633000420762004932888752587934376429253661022152299289345298394825331930155490524713764392406174434014113331057610862315541254848449832770139322774762221990244163274949011599778063515928374775258204433541657041730724612709950147978744092115864416715486190825890725767372147500805598026340725068684002820973917995226457121164695436375103170139473766710152457023888154005872806874050388877812784315293907979395274754982826631697555902293347149113953370720480442206510692025419094035236332592119753005650385104211680661013406895346565481440615037828994410265004396823970176885385475401408067490669005058869143289245619136280583742139245082486157997074175163936922716815623441153899771410888122698550812565051355770782384174749989429266912242538854921092407784641887989115634536432200622565667895053392170473642133418369794705442165637825644637153523752411595786880033343446213237693459203536699397263775535782942095618338462538329481253442580758738536905977825753320363010270564420879819700282918753179924838302219451086977773988325615795033081264640525369649708808824925387070996215841504735212776599552336607714556919451339006756936285714026725415070071914495264259851795867939374530769049160455717202793750555509161376714601772197284834066619792596946764609400203880347063267128774813571531830068384087057015827896244762041321079303770708982827468701131226215007470453294219375186349652347026578430089940871724994037165331279665900480921230226416609067333734202128000374407550399179867551304981648572698841851216071077772012661738986328131307191387085923709096979806648610117171354891951793668539790759577766003689018341757285023239253459237066047798570227671785955704596564061133686724873491557920423378675478760062694443796875527791715886948232768169299229011020103895905820377016138626238154055850434558299449275050392367107069705251212252917278313538797460255449740002786193724826934237955789440366534994765780297349841695102744970359626503866985751605849986312242936070837671786798850375804267280960145877626575502314944207561912030418063421298986879697784544496259137904804602236567635440006011467888603034177454705339526166910341413633583535836498003642505470451665637447915830693726946619957646740464683315515003140170279040408006060771527741601867949449121733931457154011021496762676939194875688879815846437398295830539828681249474229011312101793199659711267467502218123619497499442029939297513907833720961819074179633883328080158571870379346172416195791701273349816837910136933359658998888925386769363301427575247765346376062812160309274946507710405490850461872104623643909699844975723194033266629460658395723813111224548515511952480117926171855536086408206228221042119616732190170773555646834276318817285229333171137124137264991280651259095769531937933858583593669323698170808590770269755513072850495234350450189442751631037024181825532192552341093303421533208016484476151245410881606730549340903347624918231967951902261238174475514032554828561523631673283843470129274234607263261785792744192333305208065340560818106401330710584086434184232490665216818954627261403923914020173788365021884605737549872615895489105056472311515268208134313146601328425460489446794989960071923854385487159160930587263575209256331120719783843467432246489517141710239425234778936587080589848840580752020943149369119510969948831819707617670564854052141058375260325782650552540063222200180418522868014310539372749653518476677486638274356964302126966161745652415408655858394974790798758995067855418073636405949337047933137072023154476714671012649290171149159879914408021509572796634980603612029425168520180147482215925262194267645946264110064124857207914110232223857378976290480961649921682651804769685599503912434251711868125345228062349788791454079963696696554940451181279361424989961939710424549680988431791836709439263658145571873861052733977346011596995266745107755211019900641948705415332948070205572999557201116638207909246212244941582744781901009353054523007695509795320145422329979796290025910869099867013276516487587629522783456174043979067542396672570456967891003033991930632687403440744186667340112767662422562776786022935568824454006089545254287513344291964860336821866506670883978295889555921499021692257010427478181103570604857221377996724170706733255322139439553410680354459915380917256173848044991193375643322871908236887954612622695695452331416826047110944200254885939883352013943837825531147261792798141942293884752852560467729442331734158699128719118460807658104008041972122496724949719904015823264136572204277395836490989028198261971544541146441884983353278992930240282155005425891410340248499006603698866765279688855799772627505445800126908369171613307482823610858168737760954459825440761658153850990487778659592976312373365058519034596064167006854742008839431152372140904890160926543875385736913171629654501256020697535489206454484300663500572826714382734855418561242200482512867992585719649490319576133553570963676014682576527693963074856208771193257733950614627871952674685111708148006747627989570782583994867623029328950820130495034296869372877849170794453358200295650364177726888083398430868999975200324279613557121849867681561307753104886869765636444497132284572289583578003417740487184921682672856233374967073182560297114369832427030877382039924864090484533803242450386679091247064784684828341773732797801442342813006530919832855017103709352666793326054763296565025773211014940260088081375340347505002343728620852408530217143035761768272075564147103380162954077403689499419987137430371857336145473995434650206747201579780870947576343737649765752747880005715833630790579779226688722649864679184296933918126960323717263706363052339999882503843978613154466415905503308549902055676740062536183728432946500407968563804381851542464167834262119996476093968819513638192649233533973551191083434326202898234483983503518890640588421903190548810127230194427153427341300563542761537116138995691045033225402596687300629690840062008046258091661553421900629777237204582442562765472146675039219515230164781888893824330294319166495975652322581705177858747549459491749921190306951379958007081193599721450287963624377700918735338576642758473129725702406455770052454886186482304089867378072547094895344590239025928949085041497696736171654802040918214079384097216177565228194733252381841106891760464805910138522842106028620161687820231184925651012886456477837730044380466516074719310006721451376990976325839966704411879694236169695929405988455419739956714980117575015553625967434306413636053285433836835957917846583354374586677094636275336758021218188478802030280969035875871548491219566323158539400882279886171815353568606122591567133464523838825632757293012506728435152989040705065614135629862665644269718936786865186961508013896248456828474221092873248592528449757966903696137356491463747500179286473537773393177636141924166056944887193198124475677530201300714152263651685972889433943473119206971182634670347905971891275447919752002030471259857084591159490657424831226195456709689060334059884227638965948774361134698996811331164141807997807141649301737515926088000021965059379280192784106766353003865410336860948613046735913017948841758659282900942850703582911919389613269547675721029628862665741780569931343966806687566544035929517382350325706786012325412259682352009492261761202492327724291255904135981413634415202250209076312576236839301489998647828035066999943072264961756742439830078136742683880521130609626583572794827669218909421951345708466669326562537561670643551771274967287624804094147482807834262096833744550916919208444193059307736027618351625502180913372957805876500336458417282807187592214822953710544709465513977128950343120698163195962347957550599985980532515457239182360375604296238435262503855223786673382380000027713685501809544110374755376604722003134059430145187732181229304717729347321639784210930221458907671251543366972002176018250892034973214838647427715116734135203712912286976132365570589056689285195927586481335454198974873395170264044249957713930845509365993596489046598665347489011015346049341965015742563067569194638169475064732016021049031208630107129992063912429250871160164403938002458776093194310967512135768848492179197762253356893985484234255888188157577349779925806113450573213487268971587692363029007984678687376634176777136525222914999207746865126184944091042910482605061364111153315033298286525568030718400541842730587276564718263354754888752292166840183966842500927434624011335181538667272388529943189843882295878125644999236061001534870428502937797351184952866917664886149313500442606923315003135009028428578599281282721190410394561457157797235619862487465843955601983541729061805526165422547520129486720376015711442146433211965716359983277108706135933472991067482092327108233813617685768976414651794105235943921213410241151668032394946999586015742196522804647594688665966136407945725952139767772576250881377025330190042311154292492394757741453698828930950477762058894312504853576776351461600357355329152245732244216473851074262955063458953786530952770000515939679471160364360852307784262933210551887043486707063286299958898986429480323839441443885268128851334575344111546736953302350601492026156116746987608156332966265370397886634635377179846042812857367937542583487187571014302067383083073276675289917804725882596178028646075179243267425511870822132769329577889162565038752115900155433866487355871474536607315525842798221954322382436799172568448953293141744275545117014520893726976449867424172578674711311188850949691393134705745802396583934265453299753232511632877633063079412139522472413060573069348017309828606397727073243348382134467627575253422513211643807685011785718321640602587159313774212467824588490744110497028053328555922503754395600156277423169084604195322564964048278773246647871997708285575991702530197196856725214349000675708392862595840571548282131081743330725213831944715744923209071750772190139212099448114059261682563752845425885904503259962830777068518973177560532462487018405357002826608301317961354762766691140740590644373663309531467109650417404958454649161215599733063277391595015719576223076657936416653478895045434110053973646627724600730598951373691800164265171845460152108031581305698971044881656312632876491413024006926966201014293611689882047906292011290267653747124211296694699407556061098980664648212878697970884405590375434811813128915010247732791073727871618405167577427556428270195505514011101201249007665192086019369806397628509400405552229071071000707308912160666530671267606824597908993303491381313791159087097637880343137905879358793803857512523245341913297899990114090740096376450451557083023408005979531387262860558366896886111846795620789013744999974199944157310444223565265485425203581186272343551148705594535247473423182022163245251548549669429077832068020095772823931159684889999616411637234707364501383108084242753627840585197221442504495665358074878402786507607352053407719722158833478115925515825195080821104646398621859704964558299978710491434710454526588622840024112244786212498038530218910975939527465306243372975561230848493902430499835752407335273257122272176719689393490116235750545542000685258066423783303570857306833115044356866643636015944522357562745181372087289297490153168806438475142339562754859899098111156254197627985442192962306508768036450930204513616734236707986869268811141502706051593751322233934674853762045291547295163195580234030044521840858606022082395028481650349022862039456342402917726642855624132780549962549017542426357150178580578619187727667004371653059145472380423793647895789422526447225325344348971776663422168175982337045526483975367327053471210344014813708431894659452334550926694833644872541568150536067118973695998717116172169367708794345382983908947675300798076007077447419738908171115235734640476603953678753812688658920467476679718334728462711933269616907529174649978256170816699173820380984089378079523432107352349952664849280113547391842991235070625660574532286512841229282175899357690947464237993681753225519753128745841124045417315059656926619804046774937481328539684996227322692655368791467061330635075671735933070396380314367036829966546822525036713350886604553662987484963388767923750576579822235436072097230382964304403293425598501740665451871507930821020801430176750954964132174444206380701783274582483585499742580491733524574315914480752359804026888935921403525623185418695762321204233589648950642448599783825324786982538935894785360941759991045013390742675797199461185945757803555509858478922517164329745935828145261170422936549826317193173219708893497245732415236393394624839516377292937648438797421615592982591143104604078519358738942394411422000672599748838999184980571505323202505854319358760914326216247955368799089509633771249133923912737559673121411748453665019957988134847990188320296441622706928845928775387054159996404890273279075357315905217304384749910661997683199447356994015172665560316795998268134945166525101296620518251099299521047023552133806598192684528293063628273105119401860192086943555709808468601020595524958269213453865162660097271148266220841252484155021712954407803710175499535209351169798710254606389762404185434414412182030261578484878669767381907852659267146520459180808959913297379153842189197076602167541323802603633600886046595188953065047718771517716962507311765543353634301872287609246159533673577920745359292572814237313772361218896339472163452516150951224902490828078478734080527903132891951424751848358817806806889281126520031108517090352303098525944752780030536135163152063522130859721348490759199261395199115647210740060236764796040146288241459791648600980386431279103431569018820794765250759818777100507838118591825676219459650064047172677572813619631027076621828182433280114500027736052812089590753739597329470538320884752987145019213947017500411940352046568454241331812087167251810821112392193229035564128033759169186051726800514676841143895937521966904721879646172882299391460604655029141241799388483965703185758509915006601123642666841005915559823182251306307594015432767436909597307398329347232811621187249152545332507915429008255334209646929725806623379795457556349533504400874876845026879821834912219196733249448981188877612675841639830545397135270138951621259494774060508236829272862351321726815385032992893947867828484765963602004400545896707951223590419172343671135543105788824329267311175966648454204927482613543150101218909312703915982382755699844018168454018730933680040917235497034886022154454341055255962944403596508993691375691325767144905797258391734674866386422972161559835269857399313258105396747353798621510205606267050979530580973119085556279146422103628873302538285357865315848430961748973725641734537919556564310898162935434065986334875191318116049300961939581055622437528775158130099930834088098328605983633886323201757550770859258447017892915446852965232514582123675684274141860892730110620715937773427261651331375577318585596196517186366186008203531460789074280882966349959265131343731099615772012202591922649737814561047546576533196696377784382072880563550833255259166974249021703064858737596864684601962405002012972199767564990711675314509725386774292725464165271563371873261655724804744670618640530304829127517523528139491211536843081641591727240636620044017907959778190879102892804302231232368653268681697164137303578993319177556885204507093000631140189695800456227141198974179870686715378734246821570634879429577518052966754255636138693888573463474262043287028626425649014159828701278495464844858393444245919785484651069091379438370537287839121277621515684618749899933755329779763301922691488372222814119931730010816783125602395628008261831120681375007013504076926956352864272158279154852650011043396479842080209696430278910123912625855708832242732784588181334415562402749395832057379635035424086872002359205885375599410375722625779043821341760518279896611734149279134033593410506052402497523686760229038889974727761043081982275454833319520173693433759423671932699269911174583257255052718463723793846314854083292311749741223250815871050022514164597517795233457558125483274763064387837634231904764461918551297118952391926630129346429426978587971710731765324002854382267954464891953810412470082837128048745633929671565471709976447774746702719703084305313643097175717679540470138677461745163477020402790716134715513377336160553441626432654657116460885400090756101733507604756103328508798680766327039170892854983796098379364930229902880031491753843875273854706615185614726584009128977744349595372474846294365377307584408738758909945194499672779400220393071137798497994745594886730082111063624776282392187907090932634547732529961072042953763756743267584927293747333259708833644518371139651701614784091278121398918582586788648345971299031297539279198164785335203216519844837492593832292871076074571154328941874531115781682395801650201267955462824084184590944523630146233476888790849556939771393627796228895089659647842732479905043309368536708755226398524018396241017040349410657260313530143551936891629449562107954748817818095070726377979058771094930741861913415334043492232267924718213091925542641986413322707567007110844390052764545995732458141977018994299353284375885877380983874440590901984310636181016265928895293759568053407775521173431225548122240469378495477434067457762669961555112891792752932365927136056236542020332610350783968610612453349923452578002002721844029730589392117298491205525861133973996729761638846087442823542835768037402762735106010513956401264593475479695024631491531415707867303529022701563479109648988434170373811760264516731320754805616710979755229534227351754785988177297691009862479246591029164429611674139173269677429834396086260286078372641507190489958666887484094963736897581218533258090851449543389144392280112630909558784719256467932027799271800170048930819811475137676517473499231549410503663726033069963427426062671532770176268138574973875755902278760190710374105980224077794195002117909928034796233133781170305831549412254985432844655270794340845860847886784827546852514518022783763002272589023973932963871940375681284502598213156299633483408836156373960894200076311025382754696562252245701599412821118648302095696647888607063228580880758628009368663406212336536686940480966810022638889363264970819837485952047899205381765266252546017417053627601457090457463546303260751506556928230648109738127781305629479784654119986547405594938862254407553602543133925327883992314782605665474945589310875960054054796161890516755003242895904891611050791433531460937460387425077423832901170723303402359671648179551009790576729144776789074842049662716450103999973067451461552074647174969830903919721569235441115915120289610571027799645707587530935073992050460179931387670268017133729503168950361710521306640972679324760921976548483227521155946469763240589565152645486200050481441877635863500394739245990548097061726018900332068721114809500253245432996076714907803214579785378992020220745986417563087886222736802213282823129371504023428557284065600736020688991910537920688234316851698512421966568950250066365547719423272293147203608282162821064026178995736642315746241090081768475414249155031988045872436563806498305556004681924012642285286725365312564549102042342837349350584250039256851753962825795076757687021481190818220609233640510490851801050467949918660514215818232473471065906219295161070348989480298798319644480293563322251328908747482810299555657794047294050349131596421140981793768187806425885720222627808011723794103462916490918530294733240399449738406303725745262712118761103361888848926363217575021871084485398032535012976078949333249290687530919848169365901019641962580252006992243904889854644087536530129727766616790504522150709489975516521891243050565891033675968647202880618693595198982495679285745493764504862915123616518341371441387421257247941053163003734937849928137389402792525550832380746279093165460763902591645872727797874981338790386087410267757937105189752604311897671625099932828653045271976038072320115254815726277879315926402464562113654461370808030351458451181513961974716962990839458229449644541655247412533437121999506638412194208976928597209039765665474437471626000895073232806337079934636641739795699270625138040129739232416725643825809926987303141458432133435116363264137895043651718688441981051168081763231946444281297674090989440960732239547474788298527376608281719803069854725278058743326789634665197888640120242311483978259580701410691840352216074108178198854936951027893273688160743291822883933091753028498229194137426788321367455570368354543055446396015260681393378196083067284262175957093900323211335185884323912277362638794912509344961819648947625887205410749665091915808347600148437155550512463013998144286945635128532193947684793968681181442623973202918889746457243091415712400781444901618816024784170710397743142476729275684659471972586992438533721058301872675088969599696596902662557286302358531562741162638456663200429039663686583949276490581149941842849483079436425515924547813526435109961444680103340885273526270474701130319124495819147148435905083452506113240433588943808136561456021507125678881497171870422835095439620518257884314274840824444391641917214720715980280858687184479807469516889112413199123274114404359008317764287387703920556635479617061374292392073068052993087249361815331828759885190133596779127045703316250982096270096487285505821014990075859293870173547345173525917033252270952556799402598068678324092924627149849672031027932571762855285498902504531067978179113553540476321825227868049487961121098462981460172755247534939472811468835964974051420382728087764600461067391249697713548796371593542473800993141872192686962207628079095662320223298427885652195945581591521796789290949030564794640866942589477875306754664976207141467263076494033621124113041866469599156219555448502697693104916836722921187860301419185615512705511594117729775513223541387980671573175173009173037608326429902629191445066856315299273435251341220769429665740236365537080413459810546289310310307069993211922040248412797501423982549794085814666992438710262360617310309762445038536069847839020445550901699459601000685112684982811452308814784758404321715262801496460604547434505856654528346565575092049318057946695461334707472781700522155230579033722660691149555058622279067386251844716480270420341403733665817698619974414273533258125811046289758588288765723626710853343325016389031375473699039080567740778333079946405730107941372415332318743171924501354999079711655165787748506683267795880292768377683768955057445729391231072570194872904647236374615933151741481669469865040668043748434830485421994739149303136498282041711806587768324706773795016477293060728596694566893346448485765044152545408584036130238449762713456134462523456946254693489907653006090531422683588102819940335895456373928635270011081628416463993959775469595708909759497209044926583958516790293193070211353149522780664021302513874879463428528184186930571274679427478596865099417609630408150384099684389067112199652418010229215917499117367908099580618702564121426016719701609989665863825268850237357245788645445389556179727060089733326613024452796311726793719252098241253581856771003603966491172751369918714246251402465407885751945710860024554857005935607004780629876587382941936693051162668527434279631903185794940805086866653575436341997913912263927509424597549142443574275714206848711718777025139220240746589604553162203068824128941002360262148702042092010763404083796014778683150214207112228788809812956452427951093520759934523846709122202146674983599068232888902483157876395387600314615262864109789196825965150485777921279201159907505899998873171169550305679145904203490918240972048450628101276412574616532395678925650060829626231310286579406434782607414482273590620910551337618644678277893861522829386445502306376919897816664354911557923446529257300222086505510127918597160309628248786351677666425981816231899872894831175769796455279409910597557926554015848693751138621092881685069955245335586345887144109173405479605585435891777641518151501480655545123510886698716033248177412804420130794617591885204068174261523139449938606353542606531441932166758464067852921160344777969180064971759664745011827070627737040058041811826566865486764593152481169735063673767720983823251512742410272619966402960007552159325192959282364699867796674299867760558084527640815126970838873363432578799706958224644411240565156968483058736553150576598115571793133156064183893491986832831090678793028006863781722615686265100168453268984880587593167576137013252162390806589759690327874822798863814226312296269526060288109829541346250287226196279317651326385372028598189535847950281460205516248705217128049758338205023893412847959146474986588908004479404795914165498187628716705327159275351154397493888216818902291239656562895044598242380076147450842202428952101414219997308260923180743643510606699740343152980399170077299603123354356068285143686774031398606368655072522337765673102558315295848326120774803052471452454349290829861686634414382956253249665856815198670044449827678615176250117159515466747187221314540589221836768898941463703115020624573000713443582520563484149070822118473472163942545061832544731787472650600506570550392391607346330904021856577428017213778001219622080932654425702112166158171470160429111882584768994014006302806721078204459748521831445857308231726701899653219972328505770545542447349720397903188836740595817568206947146016116327588244796506729541401387754336373203191826366364777108907849423197042718212576218041993515587580877151695381768436087598381415464759987683420211970482215339647004043723256542325636065238393454172081806931849605694877597232883026815377859536823895809298607959424315354132059197190270662057814015339070024848699664725492793450358218699796764285604836107996789729769896316588705741202524949735390497498342508621716908789117178890553198828915009660893212992769452186560739224693905860880727644850125700474789189214091196163952236167785692578683707551284701914521403087802175186362616957917442521307426120558251966500280098937375831462140787355987806607171908193996728054843476862380568138886360712158727593961797630670405106442036574636822303627474535529132347966933270797102063616056081228388381919545519435705283848835419498242471715197943395414585909627352079831109202518891079236354508309673056623938507135326479981315046600137926597044866833380727457251606470711539899783343617267478739709824832003702169827013648111074878007719286185192892322493457477501414416338150880872689411091708376609452199495896838195983145945933111470179280442980581293826778237813852640653287003486293324129135138494035079684484297099308806698515234926121784595524450780001792028571878493356762030799775265382291268220656758755493497778387151168146126337498720226053042741913107326383404407922176290591847801453218907273476006638227718088142828486204314133963396065357409081186975167442775019636034533078289201575094264233612022480519265052502809186769627812677236999911486663965643452286431284780217810028381602917359463681097165231556131985720500650300330009485283734509365542354130978640279272682546486381910927474894350663097419757556169730972947720259996522128141507152347779609306501768280296581175192375518139475591645627640119632262013088998817228923867987059038087275376252329601441332119765945592343174471731946804264735545771844960630269776019653251701025469210638686323207797256621180481835926935105893468692787289093042844660461221347761421835666658444128164262200500917758757002585769406855754146830498059395268943226902171413974692155645314672680331341229475355582171698329078417318686714305134109375745393974185919469970619585889445950792634604303294875197753800373009784697730904320335829221754277975256043145691280649708838879736831339593770283932293838074210613345590436988743663575934175163517636718281053890633273932333738925122566149354684149760222456778159520737607161573433925722444357219579746358494710379490470880787618726664769332861277676043830128234659991804864481413061015772252719336421839624575283578815233515999887581407192556248461579051101268806890167445072464016674726763584023411757843059069014502061725178362161395574824218222193890761931661561114757936726568753284634083214769985800654658234047936591001156538575965316189176058265563992325725607363138325398558439814216264820302574206674329546153830962858283448401239225273872962330090651590527410456033447763602498315451106358632312843307995568971484592545367045837365027099877241131442804256511606127459044584414503101156474754332850264599137275927303544620252534180726510253499779174526636931716319605490553156631719115973157380803819983188539234749220470542934515917259071703773725743663133434120604419144087771624127159696176588923963525344811481300210383139595799020129822888604936049023296367317212747613179687478509530669645401968485498275334193003584525065871826286283121113471961161299363872888591188748399592861788357044434244658625985732731813400572946139451801337583406139747660387855449364621935047387236819693214993406185454345818557229998266780638792627873296645258829305713816118501128419416291325070468559875225300599642237874531883742036392502861146928175010789810213214640634669713606319194155165368698676877030288014650824043981502494349241469553017351046248704574041004385917587141090231337212501145736394394665570444139176953299632741272374060451634710515954310567893904322701961947610306060869793312479553260906567334014049351068208979560391753515917511122773732179371604239139648538771329351214638774479252414213549273118071487081097993990529606138507075399875408519729040663811906059941595279412216469898808731230822725697655161976625514695062990241593085200023008514132740580435116184147605579802829584873667211762439026858170284943093826913409509472785525814741975316244305350132476094511942936929541080869004618143125239478811585529074251704652034421620592644630002367582719305083536291942311087394220380619035017648233456175311369877782464885815644199868648623721112616607383343399850246927541625782002702587883628236699093906331877599302909166472329630137837782291328426683194790205157373065596542790485222520011234875085758787056647191717891904224170230946551532605191308277797045667360377052544530278271994889698545922705151160177176491715271348125290772206481539211681062265086307827420624083587749137305546075716216161991557924333660053759745675284853542953463175635849878274462134956786992346186918945154736953394710999253552382163728116230273783744253000452252302275092127624921102282769618651450454660032305293705159486441513410532131881086608020765876342971379091703884207058236483598439806877303443648678435767962307530120962209580939585190885416342074474062524201187531578252830719185723021896780205831409344981228206329953019494851936700554965141944355345333305988516222961680253949181336050975877789891733206041174727240165046079869958667273278352724178449101595992515869859374305711580082457948144873337171599769177934845458902424196333311230745126977661435490054176180627287366062723850062984229961344095222978386742217591152226105876869916141581393912998003554637551718157934096482791682883239463630902445072680203057332355681139383209130650451861089672866397525239727431979362218241540295846743068311284302390963382907695543213613015174841845593873173793072688280498338461458835782073708229652369251808605872587320690581153963805152681385568703329599762734611671076066079018059534549308664383045283689847635113324059714572983814278146240753807048035508670324837092975023964256080279506178165998488932141898624377817584208113816308262530218272237623427412058752249386606116526658889984245383078566511938135393032309222173471319090200925079848888914506667480111772989726297464746942935435101603843153086106009157472463439210900219363389823410224662871411738759472069924871883976259250543738803503493806058675479855830444819968163505604650268731462788880528846892498377930698172265088476220317869355197811137227404475362285827572543802640500838095407283244844132350768900307685173223808595932135104401832906051377370151440492528321529096024836492526562600034638558099457358464827504856993035737391726107271117872571132124198074689839351964030371557464734351879515884469408178428947767989987501998515676701689511436382653371960775940838549673811260864278865776268218255243994665214627791618485287752956703911630188200118821231413440944851135622141067318090655108405820620901325409892520829658006123633932502378745134552568590372236160390114658619259648652452511541307365422358689947691913767185410579024954996365934640065014612795671447145451673192435565445118753986826041731189930255704850226166281744550481617974005995355152082947028439526799750464630414432510812461363911405827935695834284154244024142991558624731256308974936609661804177052612315684988686132238236494457825305307098592611256180636421048210147145625052655809690355615698564913322108994138123568026331970205991893528354325187922028014636671305584581341236078633443328249523433742204050932309750169711916666397763461064408359017897142528318586491512371164467997076402771456309215924143106510651947669299742895316371967672833637802169501447345534086443037586454033434190869673232560331843107741294316484809940804389032209897513809301747313466118262573116489163562302340906859471217139475607665640390712540649993075557437742384528221063332375723188995942994437346913808310135218111918795455151103387572703798366373176312621409133587107552801257279965900815696466205402495143651967691069095495230456150759426392580944987967786923615384957257440509258642056937542829810775677799384251284601830865229190874509066711045077990969425895048881747506994931551668486321813714722765498285538858169071933701162147644378649507944633296300390914448898708229849725820672359087582824759279716031861386239967695025305385843290263546788536099370140509581731142250943065985808207033295991805516198613587254237432562210886009225687255636640825201909850886315425252097060810389285207630995767110166375222215393131383532478344622227241078846386400348515109323116444013829765346418818774788814763476892797717268367766956476599784742456058369483375091434413828867007873073585911258484700881520874223485909326364319033373449642569274317748509787916639398303558317796678142802877401746176188601949582442432247124135966687465328618921746028931942614712059439761106901957178792240921180007558700124798373075960297669112774118854968487340690685427322342634253784650271577105671793086740550109239358306525569239705189032060400822874143396298844837114613454964094950482072050960645906062908767371553847526201496129316650497565354528269597674177453358008406174219488697679169522450290543886446062206775825918269742958677584017312079507520863655201793795818141607215436879713068033370127939893232112741660214553150224012896062082955682159635970374263613430596866677677419622480848657143759723275071132400868360182336152829311648198540985996922898824886017862819329204513695261734801207517273749602391330418856869706994096587666196020568203022767203221739119082168112561116824683903704684552744150009214134756600598952670115521410139032286506161832045207072591451492077720880017629281453743241084393661850049055980561428635959075943870791136963256565677168182554383445722421270830462486397833677857017543798644518465241151198908817892343805192720114307478078986558042311645628454849102562097970100668951887186366693427927965421095734608442713154161729718533811102607715537702914416536747179380061912698115732565062906152210967954911082102443386495353092299444318445381192513938092861766653110629403942583274161194532733724582662359690982037700092932176962711049076913837301692291493738110191443149706398721056091689400197537834471798885771147569703009480634596492929042701667774793823309245630085037902816749775401510411479517927204790811249493570051441944553825991887220097341630749829668849261448704048419888200459828202728538863497218452861067884704193351812043501805376686800735547474363468562739882555703170271546432108990136401085513465597180091264527373940078461295002832103532209886834712999684665252505625299345107815870640799121190818064119678440488730233346948992520183273252483448638687009203883315747032483856871239719751118095570781191182849263434573211069353699705882436062962357267655349816627258347566469534583374306765778650638162741326432287427452507257265634812725711976564326797726920145635266224601516655329870550351750528316205443412057486323190900605235067113859641908148081184399417387831693830660804467293010113980658872739104168157372267992372833642991739391684977557321004840262653884666810681666556838422290508364612400774160901024667061486364294992280323075172760279502516623259710442089481737145144916160592506599283247115379884125342866173684180162759586618244177198965460144884744039750840985034548069321887281911202137951356020922955122884607346441273811207415276028133751719600397019160895060534483591483490409536133028513076889814303853817181601591164142195416948722346772223087053103239621215142625285893905072452923890678332304041114697584681915547601284607275712674059448248306650541754956899365533241518724842060568270976329017928521084382735054826361199921362813112005289042295436512184562215135355407198685861682121303983437027369981919351637130570405740459043283304950233852494442604093071484407608961784552852384693337077458255213284497609211328057572303453428327729574393317384881664660235878557675896359019078917696824441911736431954563525266322323574654537583639053974915028770943594219694074140366903147467258108566908575105110113753994651524572649965038505621917623959544929964842171679185329522684151226058463127946305406487305057839327638923014476802460959147753441768465341124868143771662615336332572134952731192066992624886522769095679006209898074828969257881054780224214020793476680730256502715562025671637991520087593877089797104030113836775837811062125668605523384107574340160773844836036898236010804271108098352140005111851655734385809784998204490161214658117133055142863675609993355048029834547198892371544645760929035940563452649802086354731597792547212322513396129352391181681831767221285370608872398117078894506931637604340870297663789221859869414061817705147097879912186969689319490779617559358328656789420038481315112970119964376169329401918477022264781823107258253403614889960372655036152017088074911987459010192406273073000578430302011525294454180078709988964573434855894933623870103296631699328342966435225729958692429371679826216139610386525809712940168246908542780117603618697770613245026098547040163151591158085953815733119664098771312939471541262398130763777358172832301829357734392128368438601112657347340957119244937369877521146030405802548055588034021308119726484331548920231356558153287520522297840510980545960769982132233636763045860582031049553285023382627117913820178926253971539348062315499313274362815940885361688362489420672919122418317518836456074406959220929459400680187354571533619629639363027051664667141929929551098195149155498501773722728832687229347112456026236818688552578816147236798241669553403100829470157592037003272532283755602569222360221899665046551012420819582809329922507295168281457066274466452494036017043189407187703307622885206988422845059631850520867775860651254160772165823336836090744245324741913252815296595790855561963770692946796844201430030079724791464866952304743489054829704791381773411924656988071647508608655937369493333908575885465984244637598265582959677456225846361510409005798161877017683234780730406729153232794079657858241312838587668685246204366771639718304321554283925984980680132475241835931544145505974692915312626327543228301213061340738963117172253596057635545586739226103279528007399713277862599215984816261663181704515951877761972930354675965727817846453094322206962470231697062818327594381673359027222691020765694084349444269392602149092901504024548742508613244496482472374730962016708198926238075309859784142632094038172221123449044226629055086102081072540686147674083689595481918440506908231923775308458040948124205081721616778971262925336629406152424720946020457985320480350547095395476986235438410798528945277378250128647845183662210433008263557845619326498442767732115293873502617406320002467014886558571259543753839944523686071654151215639626826426561977729182882800437645495577481077056622730691448321870147418225525092499977277877282150518143096850135808802999423661265173184727080076011844881775137244321242096089708243820539343303644840125661715725898733847361246467683523472002477251037769291200985348875323122796806380692998398360066144307884599281694723818010990754289024699594457498571707295539559313702398908874281325040328912396162244826471368873366975430810676386589402681326761779355703855912741730548572460129350929563914790429623605866206027254025355789465975201217673525831841361683633664091622231147905075701006561937069664283788059517858684823283609620758938654927267098558991324896968274389763287838493891498929435786927402625228535350233983787354452549750764022508005553714944180021069614739603307721395591027025132255624048380350350432523033506681713310413190866214997433204344266396601363890724235296506761515271961741202692861116073541175618962480636285989848597884821540727141409485139624637917402153337307441564919992050988332011063434479764813256789228106614137729619629470583924651679271077652731017507174736371510539512728784980190592295369444151125129915273449809280378435529721153183632651291248566564449238017823588764901332418711239395047014019117785267836216851585505597712821879926163966337321274333473700174264509271476736886495811859371026750921799219816746647672240259616940716966805910244030431128237885273132178690927235061094461785348716503619022140170364350450262780625336721562223432444179660442400285262472284978631687439418417805438686068612066764577093912823322366143170117441136773692412758767269174855625814669895838155782444693822928744097196645198234930155597034870585872192284180195963527748218638754448635656225126149856976974168295648311709790185036985175088780761334408062652999141141956742176631615607017838462485013208062843263850208906227107632479831455162870069875156236102186445937058118295715928929093024092762296941807285903087823872670400013244499579859985707429035022552267863593708730343557183685409929766613662681809287821752626353990770591673898122400050059389036370617270704791583492901274907395087978314653181958821286605880119227543662733559924508380073816502038528062735437975632357030962955819488190258310464009569283236325824468138122722296201782292344517038442763284171950226308893763814315678171655922399831661044469129307662059311169534960178799062244136835415051018998524377619409861693386384820189961607307447497497186146323886124150762336161252815644274000617076642310600117138226275280533287949912168008312770362930538630515719401746825154010092049103071059155652722721384705047980303106547766173315723889502369170665100616607159591914778286928909424724994284646218742942117756411381678098967364458355049195776061560162999710762320600400595386563932250779454420092931682346123423671729722815417264806132983623891510798967438027371905227256562789135786888681975082015778208334585961275339863542487280143397299037105522187082375566162752657618105296841539827934897710774359756903481982789111385875027480518996971692622766106036189260369497901072756584331639677073161963140863512327517441392787761103346623578387630249058251969679763163619259601762454238083044907172591945840748382381166564910726668789502830830777081684310293108122154270911113209480669230304051381624366535520539475342051941981053590294773747687370739670877669673488218005846417545075210322236503951933160618886626984642285765091068183223441425605762688619842138806715953718765621771442116822024367256021679275608402823637153148613093201570753382775595441927121211789637862493406816989411374961443926846379295046030340137385827838775625809796354541429564451644076485744950319207183767920584218112685788739285767396666314276494187540093988042199851322606157616734442320253577550477714722010814237678522453154883533437606317332566996987016600590095753477458638150224997417408155540025487193103022500408303209212306341475898850458759499651713143525173737748955702340746359919028066742203897846728761326821309474807738061027886698336302157410759201654523288437396030342119253576957104298592283388093031006381144632621609073527283210393139502985750905139296507939821464943323923850095694764941283760270217786583188981311217582058046907872464912919866294753066435016148836517918165514218174680178500749607223661443450821159576379611193862341976849935446231987888215670461021627763635084939118670800359741443143437991655454247975614928843689066547082099719102310483653820484186369340921362572399315477036337911693934396908390258320028308328502136261288587873724901594075769881829989660274048111638153570692177455879741571110532288588969441450681671566960383481866345615847142234447295829096198364438316943725246585612736736319795322447166814460457447205006333643839026570208580940357604071619532255612909005343138595310743177993872880459603603833780430186548277324039902997713504973598487152959940247634983197305292862844863766351416616717499360942883633300488248364283259465518722983034605761540728748826263716533846333542640802804871122790028087793868628643886311030829079541952019613910078205995777139379760877821882473514113767852358727402720400847034571417368529635702208488516999092583869559103614474633437186792749662789727827107691345250753704248097392324541438152490220278945211755882809073926583489913582941274521703704069275636540633204560114582639146498690070093996313020399865350482164735908754125094374768718961862783617374124394670686793692267669860898376488382425202914337982384046900407668467977595207763565658949763951359368330763132509684653598948201607854897505330343912454254051495069248180449852401742931802492618922631601954250494413651517310340798542995949615971474248309457406055410941663746584288221351745580181393645450850760622231779079306562565758807215692262097891457697678773628498956628816159537206116434395460715054185951216103172921596623425976927659763150059603545686408471377791799343948338067550379982084751272962340870863259046716799460166572739997933508385386897092246091813732407619870321326152671305063157451376875626512005325093467465495964590927945586336461263945175141355978036818632877325777761386331969278664090685462812944502930931305919472575146026834611612493594776117847081157461155645948334215786409195404259591920486124543517252603485524286853534683060249813654664522081332883841137104380619844691596760016778026496120249940519626825462069886041220740452744386827024827847596529952329616656890978209377254585166176400978868006353853837816978745273092303259675467695995713459601951323375746731058511692482635590426006952382293447371328910533869046693422397863787673876292628740008633892014603245150093136247929811075672274264845444174967531430461543488353015175155973136319147838462803880208013937835989290628312643856394410911768641696954530903662779673303590926505123905768053831734974580652047683963462993867450827334032299857941582147219210391218167252920730935002578737266023496708266678359816011784518406639457608734184538438498369919073587667942129868174691646060874837444333861801796005663282432427148980491818692903962051859142507034031315833321789031846788601018194493570783646369983435265258949670754155208219087688511175682491928639104583257026587773910995811347002807350061116286261698515154452410236240580442219022418090613395089024449984117092445864455729484305910067064271233954913028182993714689671547656614484991243359156152624350632155089994212528849226899442734950731818134603459512324253743385890462083011122200706509630992254733834986386950797863060420806443874457750497180200101472712051325910663621769680070000399274496932334589603462781193125411811546758505949356956286529884476587049342195142557266817315221906647045326591002391095968489726105431785387073722227997908660394348850344423579138757081432386843554655259704447735483780507687095571557716972700115992850954093086427176117217456117950475072279345194097433152808407937093131450841584217148193073429418632838868692261130497166500785966967622389912330288173038040335627714151588505274865601114589254418093625115183793660353990652986116129041508722762452771755890310329304962087915957084775430155574147957712518756372688282260694415822403010521325311025912952417716493496980202516694587744727920667647096286564203208553701450447972306150150008263095217543639161186499225092394732189964155041765065948758702495319202665018863311749147056511874579422167523629461181043785790374570103666383519804098195745971761453415035255950133400010317597532895666111881439543762228713555336977005818305501417908308072542527851379874720892647025611057621166528965081333066473062793688453330171529972793642013861963469263621010906013754866059410589098123115902380044713034680604099584378707060846731678858936796784209176075343138364043218411879572196851771195247646474270811993726890450367106093115559219951510076549710544772337053404563465429762372527394831922615189880494763676857512811962155335066604534651648143422533090534927765538769857453610552399651140456799501055100942677790500445834790822860768933959424715875604368678850960974879879663203678002890933003653905340842583986809602156018129242511360648452523489793787953009793329026084167011621419491637365106374381930819929999464618135107437655374693828661871084094895035662903095974002262567391721351369675290293605221705943575980010702919459782525497413842069447023990117632682970468885309875078822739317230650592687025100395759694273264706913635588467279444958741841804964797814905162145410580896128460091194496378139874331340231451621609828772492711869846006339902147502799881529832339857104359967535265774971654602796298826517848369447718175553147518354101348344726968211637148834289160365344098073127923664510642555242658152316524569365250263893797066855128160642019139077129487903440922719049014481181799447595400031322147027491969148071808923324436053942667178288557175496302162006679082033254082197188344169070039533201447752532549134977839087925118469593937454930951970548100593037806572691509906197769431735211344720712865486863358956454247782950320871323242236272455092312225769832332120274193528261597315505946396418435648784044486148741661629282546151737137155949415527666463234124373979524437442756024388071609877010229751298053338103137128512878818547781144260946644596826792869934309470961645074787569026609595065388404173658068737515197953152526189032875152180837699924541367750508669720617052471882457379775419878317737809442272570551890146973390641909161447263139968005662841997161926585277456666741407912691997344467856929604607068627892794248532710272965035667395836854920036455239118837133825053454313828601398128150651785854081229201849330202463255273560507243746462141768861871701568808714745576864310895914216447130017782426865634177005132619021343828599254168281302218941835339461729398909314997356843386477583957122246859991492361666011329972140016137073958506201875132657931967181778884741645497089219321258556833646142206440948071625221766553848355000345943731925613168652219197317701688179347364847281312780355099275263488212000532277847896072659861667017180885354279615733883613688933580779000873647706139153217168801605628539219752815849453055613825037763839802495633554706194058942842556594118807659287546056649782652880375166124371175594832586667582027295791247423884805387113760330789625077929011081879450650275618680262468931610773514088016820662579937138837523214271893447226647642059062126788539367054930496744820202547655380754793006281627871189301341009684652493824310778543700803401429497858942659989760359680770644607040207670296950348123397552310595473574610201802922386326911920865750344601928586724011816802944048147382414138060562172445329091475245392270805776993520184259004138978256410594806372658292691588958747753424576265899122515348943386771055105887900191468550306823213241927756879828507040501505022740909806569457157649143668424495483273822388506031642904011864677096760682074196165729942358691308776424159369463411804237033476674833934314555234544217009784666057280796885352381926553493292084917349817443801041074409162934435279595753756678949489943770025962768440698310540382547776526269236498000615791338823395438497642280132746395660879377867002228878094633695769026642125313445706190659735874677240376299591426659653493060728696901304450644972183740576790406672116919986761091776635628529280674241933268870102115028059025279481341302407515305401245188541633259444721104025135799482085894218823870628440886109563749087890892229291657294738624354451360431027614342921792727901803128612168134630586568775283501790144121582664566501667674078603388689662414475464792026442616333473197373766450245142590474162715889720384007151309500696454734078547321156613438191147278817426250515624657304551329895843217634148968699030068034469564399324234744323046060915138758968742692939361109060425003474526465775569046598629525316797790752609213450164061688350842350683474044577552911766650011993258227153951988314244313768942838259420185301815666744480685540882580393017831349722020474889041182389531461193380663501467214839103415324367283085421820754116915959219242865831010426043694820167552316314925336407659423323867114654070110879853146637299361938765934310953528943573015102086596344577338785811506324358835424432147096469434877318642246755726784127676409325342680455484513749184896742213998781748656418350048105146951324016324030614203526200218446886210536336759990790868258108077493489771482890770998693923050173913685212357049983914202468052208992582451628779761476889076307237941877206484677035575439535929179284877391754975377000520704206382104610448641565795194177627192615903947816165481035840971712460943712332270339011163369656736390509262410453561607444733581559955566080157663235432728976676305307022707390771688241639989388959518031571996604023139921618477607971628840401521164709189081774390055819075185878454074027382529392130722238711234676617781592594444755368320094095800900736250652017705083660743543671921315203144430482578612257919762696282074189581678430303775652754072537702641738843130091641264179113946588589026667099234145450427415608495841778596637803355367367613093392804422910066657109896366800025388887151250359453470623031268658561345646094647271212250154261479509546163605046355858240308133318049820610044601609498527360415056650940068928312361010161134721043425428025020849031374043010620582158059345072357339658280664552191113867237529648277159012275229698016610097116124268012212592256037129731007674779768046884411644141467162608999347473874559966606085233415173443864084875731214321199813314554469692939240778898907463015348230214442366801381871986085049137489254653053834511733885254102264838504454730875884004988461865051202318585848587134169695586474926091176889388718753798978560655880944385164437332651244497344614985475190708248325276435819521833821156392582121217965707271359338329233580447265355933486445181005691215530556435795858384369222051223088449007703186107467555012557917733807539640281338832426196103562652128585604185683180095716338687394785287936824895475542893366610956505473441894977158451067483979611223317013118856777474838030134689972859122227981612286804485808775096341129603976081110523637370231979963993173032424354357736022331793427346341063696669460043967650371047983693406084950826936548914758304715879856971921901342589506876231793541139714849466957358938063926090160314344726286206108181912752329648863712907831523232444790810757209552197596923299934772372958141327931481366663227614043308797902341723551542328646972672364823500945353383669445501704900921803338943255257155167149382957372220888211437771735884475300012896044407078754173608721792917172661768964568769015077441873861451701262276942171302463245773744473024133843857084591952531330806081063723707594842618294022340665068780285911400661989541501218949846345792494192156412922080474469676338802619880740510488863916584697141233323616260055707135916955757096778316613486672960303633408197696168364483257508375166028397795672016881023917323455692686970672896805097420303223585073533345752019219554930675816873748484191765118941197665592084340888126647632219064055613830099418674379714590954611842414442230139504581940981680984013118553638062992272136567081477577311647424777777419553265486582119408140971822801319332182131467280355281306147278065724376243538719316748970602547229333501725702464033641423395042926999936290712305187684905393072676373125605814784649940844207022434292426836879182617644479043644858764550534014733239491200132385974680397487662118690631424410099518867223669959042747338845112116948123872376912949337124669609526556708285968622860670518237740703038346817471111103270605648385522583962948984902588424819837728070184396877495467610211709631725987562446298315893524174752544403355081004819022938465750612778253811317042355187544742776198085107866116445024326355058036578732255188178442923378924318780030767915364656654900049805323151571775595592520097139078143554749681969506243734573641217305995157570461401295788037036886477445625934000239505660393269983489590181390463602650037000435811075127170616873694781125069130147816533827839628913678224581776618791736775126833609443400356320617093910337769604806333945369973318456291247415257095207876012802198871519215558890100894972084499158309687989986418517287811710431784110392220662710432941917160727189061444868375372785753996906168860173972977127465123359412703925514890697735189645553459261569681969608879574617260582545728336871420627214664519157258708873603860938903805097942671716295329227024624739302732982135059145670149956930432961572924160274761715606525665855986959827248568598393437675699771168242770544343426014803547839211132992191542695746500209933198448926661791531010304117713466393929884096729525376059211205904106281278574120678413837402927122893841166987098327133855534863702023630358883736400468717831125539335696439150102857326876705923669520611324445193847164878844674553671944778819612656614302032672462062488804392777842236498076626966257960077733825462222655110559283195105963728332816797438888303489176577737562281729191816157531878750371755525439030314814509867350475193246095492095950551652204317864986672514975715201127796727000762956171075723120045517829282118337279277249019650830598674643577131833339257435596108234577613604234297218937297361365270952139864603413831621731127398923126048670426413623916775746922905212451856302825806563515910890564968134635709247508368029766946618591286756622068164095270493637554032303015845892459556772084489187791909888202204217606158377986196708952197573637214036688723245838014747479486057394042244383275013023889334864252684596616056723032984635240703989023384156199119339224815422181834455315529843013586647390983573734812545809163754685141110149827730529682503961834153323944093156223945736693682972132539292522288416254366397001564545781093776750663898305544532420106828990782438541713968424515406430751339297262337418429973173053554051014150122704861550493834910225696210417025736167187143489397059883337839364780961670893618157341418314544269751498721503521176565547400515228639434498522199602898031149482263502852957710303949495066060667668925779184661501379085088753216564006301180463318322062479305258883914955624534098776148761449386277778737525102488515097504724001633922772580862354427289650925143887239838635738070905253118514000025232725912504355028355607206839732625650696055316345218987149726909279422820010185566494467560011129330757612075376314138518601031591887666376496560066003446429334156442636190424882457534212248013637871509601674583895517876154046565803612306804258537958532555869321675545738958845982814316848427979739704066749662017105495517576409296983131682028397101924782679930855876464756265725140191337680328099472667197886481953445568764510431088436633846786233624229485033335085316028290203500637097431716406076780329691444772623875983941923396508976298299412257849587767761452467879813039075131663014583030253334321806138127677503317676986261905055719089020688123091237866917538789869563639034727258284369708511189462084336956314093273333505923825481134157540717777535319567286834827323453910708807255745170021482408452069158303454061340773880765618714696686477752944836255262671179885583016486498545176007668383077763499738682812163416967118268253629027582056859252076299244002378026119759195456491750639555265367142949027753165216713411496155322577949773720803566882779603852805585199038719336290080604922935371917184763211621518113039764757728510495437050719437559567849892675015631109735744718185803339496141236828121935665705448002260838313371893878306080660900322509521079236126727961428205877390721254325913804512826784216508857855302477185511818210170481145372608896132679082545476033371908312904770359929708934033401204647601900703497875904194583098460281305680743668073999949882248709405739851574947723917713477638695390085341601359364008898561057993555136280222763632702786573281160948076516141677981142441227127156798324470461745264428406682742282264111158006865117648425296959132144976471419193532948619280067107035637900455069291813543540714805387904485960075924590605773388203230448488343548476600753402124384695929691789598489300863038476297784004560371588295324696573602071173927581712279830874271316635443287351831131015987376064712900667970889989202441019832672781235268303226144827888721290172843637708247805706955984792448241592473528307665034732563306213132378524226601714049246258613062643425714599698418613169201159572515346094309928860659434885730275828339769283668128595743372287706495916524508094276145482575212466438218267804828972024375387165820471678863433060934773761124285886732195750579315769544424603223028804309811743531806608672371805172316966309339094883813229011171259918338519945493121910819647669771882839480598546470052066907588995696893699458631367516937367930429424111851011324036301917013271560248539374075631419977442875287491724099533188997619638964044279551999035701979671856318243310299065469411597187780662284622176333105728321850239731139907318162078989343818432562796681003632837153241014627547741652997041534676624902089320727333972645821515231020321784977930696688000914694135499434673725003874268948340417853886159687283653985645303705313715804515748290616726943693828800653747439120085143202590789712975680114560260865294606678098058703626402994812580556869283649605001366380702922905498068918045632191326403485461101058169747852335003330408386242281422595668482064375419663433694340707457162645457110896344925420793939217514105911061329636119073822022236590233774686434459686938895936243940637588999870803185586948007611735726312279911081047539470990198903539225086588180892998878013818495962168390142423905948681519904742597074637808787107595846506582610251174684449132248874018011859421165358726562744029301296408999922868130809666226018289230454662273681576816737783760189784748295604913314833512043372936426154185915311518827827901199874371795813512450036717646847133062582089620291243012076435815593889423023062078812873982267774206714000711533635953327579019608499539067671879682735614611492241933800988950870929021387416739518068897663470221898177794702468503873998070521095168770629952611262103882128460989534800508969518744547600487230512348758580883845192802994318411929528996084901459817873427811148731018999862732941164553631837136581610255963603336475527315916182602607781514396873838019658244045125480319737910207854631465494322946248755248353584784951371343788495451468608705997481248776658567821288103739764856023737791408665841864336986442614659912733451765625753285715466780292758859435862370453872300704934129768084520606375503436785381082849121923382350845914280794357610962080103272327466761732382329698648143524365059220088708780709560128845836458465986304355129001452001647067590747722412056125753232888696523169525156111959520036213674927522781288018771772940930817958394788559161543434918007485858366468560413869435480628651953101243735802033627889358295244437304036617648805552800145641090780137426962522187643441775730507182592318404829604720346443188886936901320501570545014798806430904477713762982318505267550220662090139612526226164399504893984397552445292258215470065794268150602688384033573995645980061346534969235163727216222838367486295645563403185313412744824734137861528671107631772772503726385568024145755786688541428773427176536856021263747296751953218165463109026896339245570946346584626419778128023112040907485165238585623037334462474612235831545253601126457862575873858351249538830495340479317192650668752815621252514744278099070640183044250212415125882313997587749834846751874201068489624615557176060075577590528424817490438555530576861905821771522506649746243910788247108377788719944844952685895926443192492836856237656528664542547023182195424051662222650619783788198470967144641227967847475929991782308415294579881433013221930185288132507531848942588394893656100835882689288248706784444709726771685537002393647729245787055138660871364524735130496002998485055651441458963109733231025044645572621462588364145995896793045544665943011065023215555270934543123045859714533408897969574760694586380315236953134935924784903966960794422011395765509931288508068423582936958083001958859957298682445574540073635654095779095967327964137832002388635476522585333175884513283660011578003094884924118927147364412981426151575022156362689121534195191553637960283247794957315979364307721709151321216174101330020108001519765516211742523893936926544793956026442435608048222729596909084932332646094957029901127162799354003748437678761592660783040909953722919384660152128457823948355444631633370965179054660408029273295857322507046137313213289139340301421770436877088703656668187436258858432429189311147416572432459396858944615039105968582176370885321132237415960045467834396637992185117061079447077694636751272002009552369088385673159297512218223830606628160995996890631982759625531621302155016385432283964963363637208210972976620805215163319323268599142989723877202383365743204272815621557890073552169640422405282705622889993305346654474916406233411816266349042016313464614288528608987363811640631211688899115701127996026961303666575478477490203488752352443047586576297935805515399247859062709506783805910977564594248292347684960461233106446613373535559118098682833792304228861847541922298454586877312289634003741090201469157722113368128191942828866749960757485278393210888356400958491625050113196215939634194604415170539682419876618921616460032170543897632019625546351221936042932179781461468271565217936490474314748293514327078636827330021803259385799230577416727851255390507815394962506830729464248921187399574237852831484829268103040416695417703611758155681259923001145477122342557614672389884178417486208085370303903343679339336461608805868311457977335135062784018796725701684141518384515278351755187083486005102332604319640219601775030995591703474427906697633171555834954849621328651552066697150403066753207609116624660208446870953752856590214253477707969027824824336364864703597934735291645427385329938978007110175450244085182508167282544921974924940444191101144318558768039706866512454638004273082697525120643723005304304987666448758609741708616652962830264469715941589877798202310876026389023066439057266990502412487794714654697405702147804233632297021523224644307436846359234221755713056090731642589924602959454579143001388054984106854579330913341561631171763085095134104646805541036858436810159243854279077560701981153768622149670728109285979843542645101591948124164504966694653397039749907687112223066671093256286706750695132903083937328695989831738827614554838545337552248117119815152374681917201985833986236833523971904715499160546139614391498687408029227687623397934009274403734392527887405807630473730193763302882973231826313423553684908452490533111900613181941482605042211958662889586719748838374466106406617309156224922873597792374373714177824271656814684456064935072145835777155181412947610944564016057343424887294021028917602241077444199164329770625026619327312803159689034811258474085324512909483063029741348432186244919535481934404316484837817595626301209616364033204341579066994640427391555016670519700602749868464067087985953774143009721937317826862316208214570604805427326549161886182635427989767024322951319984259467596391165281151583213585210413406396203193753839344982241112974271472113394036457309054888513481267062484874071725106145587005915487614157934645952352697213985466256307727413779097613059517585869241811272457854255986119081861280161892475982596411480203047782774378796047207824925470665330830999532009755750388649325280623364968914236959044172621611710054323261522387525233114127345126283377313756018159662236274906858893117106567346097899393150930712052006753066121121530185358356749445435661642042349567969127274657871583093255992785991734149114467874645252151718981336545642007808966764991790772066176170585816447444211039580211388097664117073671658944808886103433036847881305742732756241740961051108019132716474970229154109167779174101529410138345851770993587929484561459497067354849106553816909213735743232246419376097507204160197230631780835130225969714654538365871203134075491240027710775879165511062615931496433953449966396945598038115446272212646524899611538018234204659483829829498498481258089909292875528362607599272297940725090936336178120275767007266328082833370562333953146054800998363104292762814883662024945587607819775757555408108602609140474123023478307684189908527275216169073676798659930468185160061480736355822244066963135927771834642779522880900816757088532725714802593164612812783552225897598768272923624236992116197567417006267208391206356471927980220911412533631648055771493222171363466222149012191020202115349777778336578337202611640304758385482120122058634185977671131827012704634733871938304750765563536859978183399268740046721579573799256186313946613855990025433155474939884973316273765669850734168747246309925702793656935112334376832747574439755145147818728127859587836962715424408280855261371497784363879326218481793452944270445014766423196918001229168235223594500348074256871157021372115822874126530223871935354903282959484117629412957992702850655888556936121310520647684727888786191378631478155078534827369872455528776912889980091838209973292823814762484261314821852580252165277719644746429874072182741980789027022368978133100591351852439335838717320113481370512598575775161023861010317572614996414928090290354015414264418764685417042483104916281749787375864587533422391963038757238607596967205341813311372990654280433202249096976394415727843282201004176059126806012041568301933216862364646605262507012412305492033974781300726603147066468381118994097100510890419867884552986425507142021328697980750607293398114285238859968814601180271479502674508406245302277568864562403453873075737271418507384326497036073278406072197142958056986648756230537964230426979922174523098550568426276495546109399001956315017480041007071734412388911798231027743248669125943272970440311361306535866122186731220276743291673187750658093690527565916697992679129905130291780341291801346488976021390206225588268736037757813529729565326831519808435167371720227237149281888043594244716855535498249906624630295129577905509670338547203748667931080052819834848626456401116786421299701593499308498183330071004474196726197134746847296968666417237665972368303672208317006687364465093908668523964459704112892128114346303606785542379522987131743354112659262822213115512639413763531067423741600538200619942074753701168718113704169936669201123231003646350723295838725969195746891695538686848069433672737323942994605026923108512885835764909413395340776355502906895959334586596551565755998890267203730068360340454743419216076672606847697403653290237332441866888208878248544203944060875335866212334489123052794674062225020240804495819770313696375207922858652481391510357052355735722984473228236048631232710764467059717462274819432258852199069696234778283493678343294164774597774266693625940550340010135021669206098277894604050332785433069817476962836252292404197745633529119760131651922578663344686566561995131904070958308038300233365838956546185111776399386984137282750819702255266692014131624525115047070406981069044482556572906395057490664767217269265056354745935131069299839004127225241823038331763281170130925671439812280301310087146069099102738242394768212265895758875804837017409764206802979454139020106200630174385496004231184409059840305191653369772534459293922507461604983731661236494197408268139068638746426358414956008047776080723509966233024674529630481107100949924088770513990291635129374780897210376555585526861094451306478492769091079450376962358589854035541477655861705696811319630564848584755826835870438096769687750667702375911362224287797148012765254377316704533038060787946193480468645469196964102512120606398219437801803292621049443139756249867742654604983408136390203393107151644905576020135718852450788923007204946291283356325459348921045539514252001415440503729534036637316013573303602458433752578724601173539219004656963414020077592905603828853867795346001380554158475060538221185878248879718275860299924970806513558906806870265445235303744616547128918968377091233358956542397476061039960510286692933762764986826158091037697494477347123251406177440317716506341862411950024162603791193536389504611706361163322768289869182501133950690061676592195156984762855581795306853974534339851525759525901217312684172518869577432091696384462393753710148302058650658476636495342627913632464477160980005169460815977001602021730653696789346078918280088585068331274784606592430959549241371632437924397689170438644653109202763598031418161635767406968625920018018333305626144924077899826777380283503390352202712603467943711255557962378102400970770595211834251594606202553687804659525180497015626335339522295261744726167849214775174747087857975508319939057297225609156786226726204423068149187212731032123044014431206217602019467464105710367966869768285321774668786936791987517526747368643834550464293163508449904904446612677374615026171068423274005929731227684249420571694263727374169910986393905612523911354191644592114618724838061180293313122003961696097340024620485054538362743910280690245262117043742363581352653661952328210052424179944031551613731845058671952227517685146274107156787987110849310591757809437319112207670410613284477507954739315615121103591835824571025119428814274068695378636987028903589389883578946248313674321816614176305858775187565475298852652744057193549150843484189553786155073371963025407803758134543367563789096336437343835575515455848677169088396137227877487783434958308930513160031294297485161126462258679692394758735790069715849504919860455113861940565331208438069921048907342221289029085879932024746507309901098196762055896975755619131476253086683926819310971810562015946480165202113773247974461416791129601222252285491141103915793790295729095895383020276932360216152438078432489731605240102377792600567798450014404013363302453135907598405625080822641616344287287550674108641113347782397728270799141315026080066877610723333241274229973389778699635287360161140115232357031396621930662078422471623272443087037012516607192257275837806676150335656917882345430331375086307193156850847682908040043941046839364893205290603030085440791275547023011234732863904994594128783765452135710808870310563924374214964443284801108002351659178261865246633329573193411561567453840591147920746272987562014786948447454636054100414912069340465905371800180337832003880881050386705116164622657011774353741131695616197553139871300346974101004475130944526594606298254124229363684677700357676285018762624268092528359475303478689510430206226706750228438265719166475641926187521612614552318229245441986523652386486209185420084632189864665159432422923211124447182541646705289462623723919636628751112900912255655581404289221209980764523893735474360996681951439146565916953643127742670167807848171105543600267716469292349737828320051646792461016135053727053326221264034953601684853954706046063032034407116588684240088460726980549612506933726376322558473912094293517692863315329505272728068746851794158308912009872123923124557819166105530527408727835736545012014236119766698115344965405857645868390768514251340444549086386797691495219185231642420883772995956604595731990058457895764476229768328880249643329585330545965693748939131697067501940180810421226979367693496004024368454419124820392084118197658196298331527716684572652347747298263130811124790116696880594089798773224967469236793641005405356606381483287614800485657670150199342289058485791472946311461418502676006194565630015934575244596582740707260224125003390768729614972553764878299825331845037750160930048697175411057316284981112279396439950727880548687485657857326529322802588493564074028332725465009374765794849958441675940063651575056990309702179433805272498259317529764659145771083905278359554240169812423027995800994920931449057942457093911307668115810876848356291228258968625273214738017274286905909729314125503505973218820662450497376920029063674204532391074889258866211659609218593871266416961720236172312085636572597266724152900422133850285122313228001895617684247088159626948663785697081885696864418327703689735039419232454330848722653613327299576000682399629898581772750452581576374005786567314230522168240644894696667983282633061810498387793981700412623065759795629287990663285106132917249995363329594985936012204470580448823633120212740979876059198771412202278216938137066017261421507387088168710785887693091928581080521030810530901338328249393083286559847585046144812819610026650440669724885814824430129557700096564524560807200205565135846336082125639273029427192248149259074286618188818636029798042030322268738146857866239596398316880623533057044233329511085682834531163027371871461127054212243408162274100634787731511182753711601619401362062493981205508760801461147902001729792558068189912399298665505674195814602982253665513391020245099107872167139903394319369038593554965972619780488603654926628100393354765235923562721447291050243724805335778070388350389826003361901438749350806982575767551046222845507364125176439247909703805467092931625596165719820498154701384962701240268728381570551746853985714244197737324066918688335568819545030907809119945797708308144002753471454836233270269631132277904449095693508811135874793484199828232354027161427608685815213966360695523327571284347389112413212067542553860983968009446153011520489255633019419696603082180834970870933864268306349495803523315241711083575977691057157200435301644377578785543206706987890091887801444281320189276002305816932172827960688788046070140116244109314200964170764980993426845150792574492979189402003759922746584485022342745053535387336093402231172371378403172842450977045150570644733975933838144279741272066375910669034689365967469319275151532429764563046238150681535128206994520117374425477463228719070718532065553157840943653543492319235445444468884929536310421864723851049874324566026790159093063908670929667863383939494904115076798175974723594941605830411360758528013942023031034934737748706446273625783458398455128764099647276996678491046329488400869283324859045765230220401320128075985804370403584063659292120663121780630193330027035328140437916686690528669857621725505127944555767175811468800620465309264327966355127827329441597141721015860999622526888399310991278308069324311752711323673150862424741123858491819925647421619572335203335094992227253418486544877663323669093537585664712108038244460442781346273186829195562286299809620843795572808783272010074947318819939791316175620224630944334104579438601620542620881329813449310120590672576384114712042392614779321303245336436200647675424319862199068767004704200524424404433060378414291900164278310139893435739023952851799696075858079339086527213743131355326362824767247892413561379187755563545063334405411360265729728401284055420879751504843643540367414349173793983607870452556115684588164325623507316256574424559983677114104834795545011401195861318426874793893234833623170531146606402684188838149471600758567173468345179377402315763171313509185360447005571301527242322979421459642754570882557093925115643481331338723090284145704161153485389468683494002103461985111209903509118126342033089892874491551745202688012734938212475974654084844985667200255044356054997336177689306560756177494318809367556623576699037810830233218141031192450426233735471617867655132517708829068242288447929541824411172491194405729297527083352877985973966670884243758736170229744194396794889694151281152792320343091614970589889763989736748461739048310541626395031439507483941118441983554313934890087106693435459856244188420264557555252666657152064541118694886013255377501943867378489317896570432218817095682885461797660304157527318109893289211328754237761852572006246511610462690703124075463907716869480692292040664598186833160140439165294153122766489692184275221068311960054204419360037395212560295776799041053680152134644645430761144830811791963827220070735355955759349584400390732871302789561043721538199735746341786086821234282471637759670611198344831495158283503032869415918964300879957682433004998522647178086403209348945237769103403978694335532851458990419734473345560330734931036704306181986050545300964285746302215422017541139510493016612657800738296381341016237817581750560268826726768832537571354813406483322732597473313344715949279351707640144090945903434568181252012450721900682204706905550935640522987226072452223754590722175271039346788120457107047422642404290459102136221656602970699011440073567508422259470367898024082983073277006657456379595388749700799288917079438526786903312234362311805057289497307470778057213926965321922552471073616628443330283084381071372171034751506479058738984017145627137497474573071236431878559361344284781391709968145792289981306399010264738627483838365464201997583457930495427710640128706751005209921126953973710765348427613361061407475612029431159799065769052835639778138790652443761658909894904301227392566752177083815461555637788352630712217188244936864127139442687569031333790071156896640606676316186065254643313482153077437197277642460378633487696483983137069423675532139612991217466139869909439750552340990442353986322255830854051108685855856345846277005449088018688239933008833681384407288355352814273789089748080929103413345860943697961755725763893441380123814164478960634046966694770649638531384210478010293353822024104543544233050544702128800687284485406658036706144008910705507688898457490367139671140734270640697065937923118183469960288974787293207217735251916105329831409035571768898486643313444723783314835886710845044217597530998761300829713559286473966715174937192845698364687583354288201264476187772278840863494777031047630830371203509951320234865869907488975434061287306630649603963179430263168354256034661248339120659908884837782876301964846922499471656375884963297018837391696399717279566897811542814014889916447857098686430860846174580599403557994870815020963646644767612730527781011280292180292889283804408335131474058325856931216134529600915539254543762311593715150685318051233140102516296874554227448047497641605526488100194919555002137436775678537034726751354346764216838600070664919357143321828484591076117683176789747205761366362383190525013241860559935629330296981567308209110537719021596491895924077014901665898157697975118613607018497877651963619478958192359283860513052885918846813901683430086950046494761052911952909052813490408657239620415360995075373386138187744219909224420190558292001159438773555361389024716503781833253124789284254104624394528501956288351657277908099933750921019496267308687949198041741377138240224097625316685318396846045746430772192396226724328122511327478296340354624697548518524888654350774808982146508407480975622312049319881770082356610916657925261627309286113744131848012451773732928782839895150568483587123529708287328256103635920267481786632805626397984241576303873132447259291547965068754330090151542577470077524019585018636592543992048793360579213201449608354792323463428828840752447068434446312704037551408369603320050316313324564640947250821206039906558960519449721082217734268726291217032984369497351619736886005335698571955083810818564232560272095012171315469060823082542960220037337300232341942848385961097016826215204081361030287882096351534345962096439794105169534877831184857231477636284820398105628161695559505845235251373271718505218240686985650661035717668084770998022036290505658884513319661647762840172112169940514555937823172664443641188136179684282594287802312999213781913911292361670965338976715208278720467966806052144870229308846056069226136701135750821146735182775588319352476742967618313143739131449750720960284773795374170662167611058072628046657972438383085547635280059309300293611868093297898443511851242482308281686675554402259260613458384413989060800588121230053016864523222428770657143516781661350603206662212865139794014612755954227474878466080233332103920654340117786996251476580025225604535623674035481641309063413459384066103388238743798561082946491519362651379277375646142893319082988323170967255753356636150313200485928069656742121131989331490537667187642806027177347516264465851865226065905224953401718493292484030473088543725351609136429841640417064432859956500271700417132029694877308779489206247933812858781227131732338635515956231741116037819675621734344320195984164826258247172992897314092237937069423621918123374120316806975716428638253876206712928438385648236104758094360051055126816430964344377905586983257459727921190702596925055840808282942402422525112031872511450517957067032789631833050299694960288030373774233989763308191652606525127400784274296558231766130616607368147690301158884825406309006087096832358707637470602943320883608472554577700874198247873626384278010325992149199165134704397891085222088246548315400682023453466718394317730802498489801080766508394766199601671019031509029037071895560622974307476337236463555052197083602408815114626629510022955017886594855841394477891032141139441624351249255371500090270648866194288614613662558704433448200952540527132022127922132979250577757311466930974554212499285698905479158172204071621839704944397319415523975369372575784787485459055079263133784053304290943640520458707982144132106893164345988855378627574229462106513847217475544663294243873213686040933906092620665547536275989703569788627038419130121831452203319869208569170035604985974439752905967899159236452902255685035340518726642893332705872296505831918288226322325472561431306405861184784596901289588892035461970570530783201713175503577310630221368794018618542722526298580312898937799231372011899576147546223959812235257017959083071920003620110329826057234221532293107727567175144924179537976678086298017412620287816823098149049057932101092978096758723665077077363772464666505292197367193259639860334847919063217055221550459113990013084127572048141787330678679234593294187577650575798632866111255585140765993725694092563928555203535525986035080105501672048188795306298996881076760528076179353494483439817883941414450058638828737752362297969239180762536010742900017137111920416196238391511131394552815708277040717481356672317380130053922440548276590720605412743674825197655998753676907054701550864934420219546044358823122885474799850926268536042667016129367991720464056337629302544662380527216550854290063176975816153272641836035888483924402031830681358715269277797475438197061375724082253521283264095884102777896133207493370616885140352717911911967095191643541824489337835400157503845078870391403340002125267667967967528179291377079115999958206556016851921754156867997924969497886103378434310728244421469164654826960410708578985318335405883105077435265731967265756184415783853621520556201981369048413853147833133951088931139066779890501189377381931017119930735354729784273462977340061470245329006391320901832476841358120779172965295543734750351545733762053551180472276548798202982158032418444095060067058959170189870182336100443272565963124342286679968698773385058173168798605112470346098845433250710766347583316664788348803841348647432762489041168353476692183610811680952014531680856426130392295030185213228986406505886743580787093106116333020006910337537000298228123051707639106554518206894016859210316374782766506225090713937301580585260895081636070935841890003175625184935037787834374456330604220934468021528201799617643715498754230359096301221851811956787759286514547965875000917219084684794720249911365706905956937647301726100515530905543300473240406069210882452770194079931297198112127987559720308663321673340830743744055527448408023041415559297414489536617775482936168557185682556975881123119260586324083020771037155088151800584437755614583499910086102069442632634218462177871963682034740033946466631676660831060143736422496210682746651496581264749302530721932502293082064655864239885749820673766319201538228873496481376768829230748023533912949328380764752090098023985629977724496500736742343975938502406914080137263703034396711570662452053375193998416247522882293360829518679353106251760642112475649021723484530246112316630237376306516720777016831323511542889483732796320962023895690736257882714135381555580886621041378031160043629446513858739071945346161737068485401002418709367213774222968797529639733127800554846359278183981132020512332261141089826614948346493632318373861125183834648093325201820598222083286235469575108034536149198878875956336519234520121070734252157793375409049691087277264461199374367569161672057159553999741989867575437607968863278731657152049097531524710332085287773330407209933327444560532781079274296223930722497090995859547698782223768184114229555880277591315788236899581389016880497824053240278141484476100462805145688479812690325951616794402298273510506801529705484221574735983113618748808425218421351171183783242412382946535456868681618482075054138488479094651680440133960740986332204142792356117700061183876505413863482422672452093448722986463262238864116778137539574015341244094384676629438705808877919728539161175955582161821851045439752675400706703866383372531753032781589176217828841403982649774786780046251887094367643909455451874370113238915889763475707957912271010394020047287267156923944053442364160706917007250500881859363701146306260971018488943807085596880897302246691153835184286682507826676317000487181334826331555219737666785940058784701105875113304520840406779150632944197931019065023277716301676865311014858493826864265471238186605952979455877454145967337838613536476543611334134343240344124435492949561471260558878035691423226382273555643459185976256852949431526606830285264801844223833217172502075873658068783002032919269389604085248016997387689840098711258041682405002309669986854110669967926622525120922999573128462195032184452169998589803254410645708192408079876657972725320950800402854215365694610263786273349302015806049276666102433494988521788398955600157248841122056575444959591246516865847629482542482367363377703105043945328747009057422600967248475656400713575617520155520506041454862692825546847982042301484291310354577341415927660222678883310144789720731992897751443431283703013315489903537845021887238429458384491248669132672620002816424888756837882113807711523601257772037824362792143359251844983675284912145598116189856174671969401503291342649477601695769096433779370848585556732266876492394457676074887216160303068594877353832235664907787843407446533920047914044050411469844905791967164943413629739408928713273343264520912308599151820637458856740449408232156332658459483013807062026386993814841130174595853400596723638847926527513464743630057906177499497231187777278053552728329273428004933569984023782140233292685621929523628441837509154890885771028795518380707701193695002201104001076569268253863361844820300533698540030077058186579865755560749616794983476608314164115100383537343403930006291761093618042921574014788187548915625657160166971039767696066622869898809199226025723591863229813230335185318016542827033659280868893929862616598311642259134107925463645066096279518798673866053441769545347619341908152634588600794630952226105972567754635048451086611838210991589590017165052778567286763634841524493751949812756853525694147782142482643503965043277978900490941259038961538601203897908277146985839589764064130216314514068749269390612148817955922509195184727445452914536455451527758918541216113908930391860996021929214896736942368662406138857486057158673103875537408411765346633778114856658376854403602677309094010062450306191960838794614911744801824035955921137189681687962618064569270238857599779015150845385090873682539271752454044000078254685737880787180569572173481999260279333690622504400439809828396598377907199983896982495994214536352116645430454923242969977057646510600894821746771931248790048796397702492254283549353171482038755063817951882394991168430288769362169604793796482851666907734729377495153223656190784767939661447505154098154688520565926710435201663428668815750125541993769560954556551312496229014121518047276772797416377740038541209709223623409829070253269311295196575547965631113926416040774256099451784913427876237980236120941814985817938998945450235148323684827309096869484990127365347742121046325853812710878802839468147819816263302095769961370233958550318417889273692583207237593906977476994977663955474068608115211321287811026806338268668017583729322039636158785113050213735880958026646023635649459394597638433427118621227289718644072580098689161970853462816382378943411405869099147287476280050800127160284955696524480870537525550474685913809671488398819968105564800365030845630537848670762499522066890637932145918146998305518009183528382329866583625710397624856582044595288328482737624544801948179732150890626578756961251942753757671586165221873002078646538751809056498154448642664481905213227744268470696136203684602353751011910601169927834689510463413731776703469279279723530135283172440893918505925829352147370596393696322075445524277804026162061758019518318052512958843134394627193967556004328217540336381348055404415206910066110116594277760281769034704943548370203049728153328344222814136124697094677546934885127626810989515740927044873740140130673008589866139158174188049090280061483799069760455888028029265264113132696782554157282631719625773650335428600086252693068790010643404891551910368975849010559108164628839014218995327969559498679462439664122056163634297721541369956250107959059474837436683923031504993122407055670082747673926037631266820691075265647705733106600961646699034217862310545775662791614409855249244267367743423887502484035590365296145413327613284392844258858933768617967425202002086369761904587613846243405780378804967722902329197353374867357393550522688067483021969786147890476767101958367208458866990601605600947711814776626015074152159450146076996373675967603603113893875018204693404228409958596834786044338788130656622546002423935798948998681598047281472740195022829634294216741595915978709393831334222073572989652186710852126312953284391551523861847379123278583674863999577105096784207578565673940239528366378024916428334187554856789221801248192150298905393788892092151794609409765757333872940349204271104173503704443009322746403357623559012380507858026690405156672107245074106727808296730471531731534043400264525376011819679802722503301236226218645762461217065337874415511517172624449525533928473213064708735716182567843166829565211570671474332195485750694626146682454686100925184864502183750692633629415774111747619362297367387739585633810407072807937162911931964256697059548682374531635691696819922527730362922967638140851703053880664682525307813353353693618842710425888726912890324654548241794518199360635583530584745935271891799932731479911940972796878066349213645326391599737765635683929739565884722948367169514677815842027155828037002380717494756613048979837951927704316557494888452393450633153977819454422019982006345595667869774008258230024902854567445722513082970691682001680183471310795350468569426420866356635905900618852921468066048794448431024196279545376577689592039876512826693133867386459385701900631581605434178041258368042474636195469160443555272619018211982781426563215172839145304989629924669593897839462236382405664052373726716284869194889860904536239149669130425939524046278889894960473022647951795749857631966949870226247419448254269759152497457806104436301029176017076113485624509461110041383092673853194199382302453548645384628026574189714984088234070633667679549269890549218797732433068456340826911741107201322181620943223506094970986517988089999683848420640899637696213742899215132946369269020992605138530599457032149678216499983748497908941513966856150510164171120624631382043479469376456957807738670227840164695581547997105153773539341955348289767998312436203648537479886896934942986889383083692048988578241088259434388269195490182601241672645738954912781238240548043396202330569206705635534838784935115005131160593773336026053564869069753881778151742922575820136958766021790949953589959366022720520859597694504808937791483609399532718809435087902868566781715068531237837583985355533130715366420839210512735907143294047631352236383313355339725927220808669501374892093410657563124956559521789444480313025479221021301133099241243140048850735219358874458827049434613567361362302570579540785008335286077387815308952518307510768701058255471738852279613247007734716738483029044989687988639935389261984264575701997111636254494521585104456424154283878877024986267282043969775490278354567579448372726477099008406429794387069156562627404640265099669716603002000219113015829424243162132307323333339471279032723399437435938915053370876494810561995130015200020912258809048831713919960744269203091791142366122985963550404451646084885447820326148603129231589689889540763360702188776803266473970100726868866605869769303730705636614168924667689466083197056928445765561291066254159522104317408972752546590332446659972438877423925527606459624590247768113111303270661948961357675429007427810681713015047734803034053675971846702719304382392655640475885939685077311627009567001715908273397774075416376055048475355865134380659155998781018743405477591220585404443664131312038794650132508153935519638278047573183311662624221489774451688679214448853071866627209729931828885704291448120536503599759204663118480917558583578857065491110232527829637272543165138953487177362932139254016868247384206292035126265476081227573073330066315231963069205788765521638530542262944436148028570557816587264405792805647627346621508780912814766163228976900406944410854317768538532788907285553195649138223023674410356225543123624833006100709017432886859666551759462282747676771061545838388762869454683057582880857304210805134621945423579562725140575740717523414655293717238198192297497364988284562219205444391411734882277258269059515164425654674682671143704466383380320543340458685197911504201195678064996706766079562030259329602377156344017188204828256501104455714041184850585213309802724136461881054919352551743380062009116076302405861427484469780253484894608298420799135619251028365281018205572517225568075762552218191549245924760333470506284355775664912891210053274684340166511322068774992999181835971054792011034501145801910288458170878791930996089252299041782808532694510066576530315635184448251314758399112839449731791417766460396536958978411701382085506689093700990065075269896175525911717195309386719740872813301849007207501797842687258504255804436738106261962387351989970328936878247460675955321696549320077147743014349782190557130758304144938080500431130279705053560945242179817069199145357676991136743647241524734031023744526601256585091080430298767145471611944802266705272475856983489082189005277623646697044806983669175718113412495699877670102683846098306775184347766140961695358443594459825249963291461511752849833135861754575534118178825299106844724242492446012387463978840237560853766990133640949620068108213984209616599606393234202002516833566053091574108202310602986685193934671788617528054601300540769544005130244396306039957028333529618066657242572133416528674672280319739034431209543631125997864330453087573210460886780115139069653187996025404801183424419832890950945029998990741039839743417709233976964723709104518249814734293055513697138907685800642992766850744642414783951314563345085789555139593368720027982134518387748133790750645861108753913866891519341105623264081082412144672671891403759959967785839066354339294688128076644448445536983732155935663504969781914705666189563388759900459266485943916762490874486366736242662899463103693017234420524731712477327774719198869727533646546675288618600838170576989046684209693004771900440539724733767038168796181548020777858774490324097513407076237121505951338410130914711934092578509699997237572382414508450343161348262920838252319338779509028520856925746821835533161008814710682434277652324876870148808825322847734571047831831082612609325457224131306258377754621983615481680959716034826823016900596392575112672241531322456323729096812293792024500699486194896808849747673322992735335754227450957619929539537350250393877655822665161512643123436940656537303116044555973866424078122462553071570249401967938943396354641125344173304401375002161285691091052094782148370541144647458144832219233404667700674103789502143091325904969871095580225940915134121964750886561752690368002581888432744085283275260591241798799902418658378241705777076180960088765340345708029170437834949241128348646561069243607949187631630652458641134760295508696773243213876560122841713942063494849047720116875664267951018855557820625843791168213406956685205987655874543636311879322426302043942580023709459356134963311544311480867612416744145772264700221940905505627203172842344036784843182804907381371014470695414710135064542878470674170301983960400132544181135918211747066833548874524980966630879297690748078702686815699444186941813281052001677075080412827388410262116199121747951344500494816726491723564885058182183868052615021803413400434404146247206411951255359181529990206237573053505144422943789940408874996796401115857710920012134916542671616199338654591978760164759931473659681578595741112256129681468074702934925454344483521283069787464038164336191950927800635302655982309899604496423515706164945196982931854942687301038793476811216187352491502453880438669336438326793612722128542763791686245433748722983590653201335171151812452313121678635735693999927510582510851620196004027468857452406639538936430323607696998271835733055830346445355048469047876517170492931192928744514338243226023145972054866639371316026537639682277742823745490608046869409045091902374545930752698795762610342522381198366257982772189925485367873862698670636920955484183656232815761018196302405127759339637464944567708299131235062309686079914109133103819318922990330319711737289867973084251066205981740535324766383938056603047664141694195067583304405420694359455972796308691280228070811545640096314981079327494693710516789693110599501193035321698722133518666490082740853075564851884452169943392346369602320146097750539760967356879636484659548248955711863796106655373608389921285688227186284946341972964710803211498882753487505075764762775276089438047197513695937837220554549031701630472247870602490047518482316473052170561397438271243032860702548132294698223813131233911601820130290068224080880217146872174418202421303479327544447321008766070007295648734792495465711982454402655425605704235499541614063251030958459150259772550483648301703133841334192565971598570958898466935081169643941042397438595500591089207219517230665342691202586404773886923547502946279294111831349654038524639573833402600192873425899626701791793404881124112086165190343080273449183354875120043331819094449940638609927753706982639543944806729905507998540440503306436616724092109106821477615533322560306276034126991667810924613584126384388801975638463810907591842313572573579063449511206909809753944597491660835365259661533457102311296945890924904545181595499972367437297558281088373062103537488999782639372719809893423968104845820423837793534792764394368687511582267674047874910245029606115014387241912078799871010898855091401385373119325810693534524573165302098404168117217285317298054780009349914915788971442712637712280058306438126120646268033366530690296171601596070361555998350402490682342366843460400694277637376342098539740851262219641357024929693456573881377855364923030477933734442008984737185399415943812363038968362490531356409793495750779460030891371013342830884413594839338628137189047786382809290321796248394435276185666145215436391848693381535530424891098034681265630462308047014551189011297893147717238445605536679036421458620969770657153496322173776476357232928641980321458227551467319308012341314842847035922781487446841633617448742177774300571217864490568530244565949482648901282220374098465907452341914702625662107771726035412430934078183151197770247450499191496559975650877042129842355534329416340413592258715623569435149523786450465375264955488018320022040037175295371443407033741442075579280517423244005639582432155297729771913888670615884083032150964658189606974633736697857011284388783963486684623758086059527655611559817153456079978089877397463262111940559572678616036232917937849182455618195695408352268130088979639054865667250022168668767595043459581671644285098619946659452616037158712980253483037922922469823728808499969468686191622081143264588319528870548986417411489321756935936677469124326319079797150966684027468310608560465016230883485565834857933451772142435899395963664214912189062498257828932294819033008879666032724321641586932416245486793091158021387072855192127708470688471883661306602943530178695819770492425365577589827568903455220671031933915229094344859890510821902185823729896715269185112804483196783704930104285988118678496198433430766925393107621895599632000686382961775400214639846550148050797434278918175422865745320731012541597230298028013380624927193511597052397842085361440137629140133097449207847477045742598374176535517797289094537793396931435099911608058616523563948391503744471475470562593915763230087441079322800000037592060447628811166942343628477538251954623864189288898582731503617890735287369621493153476067829105655189992309794071765676672910385606324506380719807543077993545959973828399967077085604968393655366289596711589204455266001397488470379943956246136267345577895042768467988606538431046125015855859477397058002024493178071810045129032240794694648641223284186198535321384384744441091420011219446524928323738234222997306705379749400020598573044105267383212839694548101109421908400637396833266984725584891471957269367777996216052370221450936737519145677291767108471701190793647744315095960817980744684735833744086762134032049499882140794399311435990804776710380716759945756100084483153874173032935794309440665695735247509375839870426498250244858861677243448067975871328571254006462969830518836680443367112328763358873991184672614747109895149183497039420078099341273035005847239100762663494406169234425529259413288645443188266402085573640222456347544188420255646214099948673315836254138186213016483848696904773449720923210127626562536432955831632870809274487520337292128665730947323469529883350158346566543204680194861213658938526646570340581523390984922332802307205502302560015842018861894062474367207583762975091378946660981149193280978189899969283048456260881095713038644544457308056909771396681399562139893664054103468159963723189351111818413919740671172796247280229423062503173507089682163789324676192748034369148001465095832648309986513548371396782917675675278842316443053940698214939715626839263696382211979731499408811056117136069304749321471544611559062438057959077003872073906159917785911714736406637070111240609285428437376696577299976777633278008676127992897781910178772805739290152270119270379332295907039484422723798233407842240510866451248419036575163111944890193789274219151450163285099687557884450706512591794656789111696140642253825409290839861373921874619868929111492444393703351662499899498161154149516200408078462338981194868447092296164813452635015021216941087961775130918629198408926726899045212749136003983291400227055132646977496694877555187204010504736087051474021866484292638024176317054132111159449794610082854653765887080110475510776071718527507117222027679607830862649655080629983423337574831527280426513371603733971610594929894992113380185032633706795784598727703347123255242398830713519185414187622028250720689541100999919589441768419437612752643212335340306377442658797119705943418900469974164868768288921273081630357921854668228464403980718362093672632084379770828620233653413834002230007952651530265510274165706790436785898662267931500450761515078073543953561737580288827601730213893911639705647234658156304974883345885669068799798751644821848860353201864727465721087818450725213009287439512377282892484613356521882752787161317539759445428718560368567528084399349168929387106158218690929823766234891027360930405143857963141603433895191347591116215387152059164273803863282447323742383563746581174075146406186815145489797755215836748368858341790506795857141402930011684742738026837896266689784767041897698865445316116836185241538281570017590554873231982449404367048475704045173848139278260771193185207607974811095451644317933396611808923048254116090012256553257938246950759775916151770583387592038991776667184230506394590880496452314922852343506758957367387807571128755530065932690249971073024583822214972875765173469559509428783413402522691795271731248975973295381798146983339735151344937494839135822741842159898676929378601605751842856743121564572968512278693121698087150266936627117680050207282548908223280170668143782203183466772442353638773265776808748185775390098389115069980320730284971985654646198084955057446351130191615443025388504456625383057691007998945924052300593620479050354878268049675142177972575476666019201421610665624406446267279521787940842064046274819342723323966956569076380001617437706056330406805261315392070811279485717058988486213260425506461400210284733332137981530929951222619169924878034145205222007037918313848107322825493509961373152432110056315222101346414095490365086487669601231003671221815699586575589975979011645968619830144495710142363492148167447176580854057647059849050557446219621324454539042370409497047610619977094747419302810703433679115231427926743484265389302726311149359557310170024406721376962132489760106810270892432107804927145623028335746269961866745362418813308693405051587834628093881521681081833685114851584493192453053500110546092529129728521386619226099110287120673338995797021073111352197809472725897978550664804342568410867914753729810312891621569642153936131941481840774128366152133775803967909130366580494228492250586630062044264065682481079774390037395959443882896657879291785689917520181172782904161920092362906451523743457860792995139622681292248168555210482878137179059588489744212358695082734970835632360285453216377439667610509585379732022601948017266938872509525627207882824775277757498802979773023074156194979244515722795286309173371976689060730516499681380528181384199567723618701221670773484646328333990802100039770430120954027388972834360878958022597355209978763409305866397041138248517482381606996576643002285828582377990600275164396505706660151246483686089061051779526233325111079520272766155220679419376109734589179782971398666433725078510948770808369006019741059131248060428228521508858617018991373141786042854959685413476199156397089456160748027050919586757723287370458517135665566431745410967199859417625625105752958185652208212493408386747660204150689247957148750273472656496119055695567235414184828326773890693876536019850116324252505188938909118851115560216443556524512005014479853474706710657744484185806965555107871970765436901805106253450678688484567682303819215637951368651824576522213963172442860330905932571327050363587429111483468678216271399850069035447333039108115149429012138747414788629983781927333348194351890220216012541569605740171234007954165615716680515447509383297088161774412079979067566768083318640829853666308721603732829152723888395208103281200676917714824682221540062264120016602725836071806493403478268938842754989828876201304113282212527251981908982675210964176093143414402079668374821247160564750397363175258507672237559683656147667038551467551165951968363750792147869891532133331560009736101036739744655704019388307258145249926001252366125921801029423309054308664893358264746779925698080365137559203292026785385274883314642023586237733193884403297338948050075047995184502604573287208405407836419334331599945044883987535591797925548156085549206817042719814828107084829222468778150512928933473659290567605206990858730093852453623215834658995126143537223501085040729610540415235087256973572236883814878034391212989394523173886080497046946354625053308108357939934753271501748801110457258682067314076766975752394410614194187492787106204959049014719852303286638813886191464008043562547193690050247516023669632494611824089489913964777169759119838532283585351319276382139691970653872866546692007704244290876248658858702671211419236073456383342859671537195200230646512716162414073185639624370923839490957458409586798438934614169971008783575911545529825540108338249156470488303161091402647516469043152189828586763772373165004407009845531445949894234470825888677990910026002256265693035874222502144607179705038998941519318512922511345844247025958699422918148386691311550470756361640532346993471145397541052001344685393605586654520930841329665406611221441877953865717491123097185144113407036909127062046951131910826419232289579130647167485340068363980428216797496206064792470533334340371771962263432018778500454371496477152374362391075958245044646258285896603727609673683584351675212334840812270109194312651453604776678430191266838993256012401244689525855002088100002366397468562369592241784189581744848616716718896257834245591943900332838226434163431526713582336291972886597415674676500077219366498683876565144559983144739421954827849821627983269225686031373087256398906668118105756809356934867013720937643192966166629692797266087364697466969407532925715568259120932510404629786642324215629981565319219551164369892024934349116634686501366278853765756558487966467472414962005640355737385606365410044273936511940125313167467654013741060800079149103841567535828645940677541547373865458198563411813961266659210333596466652402351538247679438492101063736217686429099951898663825803318472067163562849337794616919168135945005280542684809472715311848045943106410512406337826299478925854388810384381603928186914003133698979906839653296405964994024549241370549603419211150271865962893682161014067043186770411413076877215579740669238496302218395416948008739666140904882166512227547295413617753837236609719368111147045705801154006634578165679948241806564065658492726962666308507550491275901489778843632020499708802835336093652172248754780556496764805122243662525501871813583870450335428075129655930286143105739409255768291881292357727941180017584136920919852031223982065286491024521156784912917855189495905313514160001163089996832982102940492765070043299642828949130698704901184469196042077353051769356912477840341205674194122347212775900326631974079281780093529893205598212011957415707616488962035541048406888334016709683874170735072042791097546390737242242734909939058397095612920251869020116228080332583775388949172256981826214697094771236331434080476626294310893943150922959030932553840440356389043008104700777043190689767892163256146227793835509322527117952139602806625644101834751161384919168028637952110587631360077316762152457725560272326032064907241769047749418847615073129174207520498356265548702361442986841120347233891522833500087571043219999138805275246232279763260000774912868397416494317826484253145130110770824224802513753986269648687032594195551621231400026495211228773655270831779591490925296570371542145075119743441520481312849045178053506173564407041857438361090486615324088650999213782455206220734876567172619882240340595340063371785052948569857317936732963104143040401830263601012772076443465587326277333647602107935147951457753361569360032927463412365920982483604988011952534840872017596180779636004899243280978938327528518906030146483445074391389039338024298507204513806783057865066590200971308576836332866267143106971511265115312424454201748966047564144350894745795096519892984662443294368087402004857050959492104247932342986214779507619754230393661551395626721954551147196503507373307849445423831890055407549960972817032814940364425209532038942696368889434339863881790293391799850190803832415781809052173115531856765951835043637227980154334681292510772835162157754817390781112582359315301381190261357204440265315601768378228733447305043787791304597144768001498406075877578568152388923930770723099432836645414485254292461801657840972390730727637961245687761569069087246529921684145252909205462670872811376930978575846019434691496993406549752298381580937658511340579291625475164275622984262757523811847963714635885477895780757155724598561276291165725679420412297279857053068202706707551052368997229589908831598101280233278717172367478105406991251063978796019965783637277283334605936405281642286704718308456966007222789288885191595910227908760571505763163260188640969132381917414883086429398426744320729462448748513500349228774622192194487455722804403667318433578707682566480511536385119008837001550899942689352380586547260083870204271841701160687025540062261480724805072573004794902505769818418729125682783893966971974914438721128150078101853506558419959068403501012857528554962004933122698593244066300518579695011282379137463887536466782158365975527350725157590272527690328822898606048005394830065688300720719233623324028531040201502968111196959120143863975660375320809854712096440133561923564504161212486082622948016384540775512016346433554546113494105958558090960715613829703472308165679369447594130991595296996319968693382737613990692683155746719256096705073022778844677305977609038288076276409550081619721368531852894600768050193474896677174400788688437972527639096805070017209244935927584814047333156769925290601612187096926014817577788199492526444365413879445631644911181638973543928524757300787179689189092644744818605021479442196498966564671959301483876870043987452048929236165459290782094743643463118705580414913400581163054672276372196911030638184056937951212420506599270546238472466582984044357412149594121626517721392483153775451661048406036910105376371769868155238637564455070773863028278866810347172281748266938138302062758117042228078810105935040041290026915490146335855651565501844140746250309145803293222912295555769156678131386851160360038044743730652934247784895038392019598497135839486694694291944181940743622194580638920801161636125250388189408033019475100500551200484824986445365747951338998640561118465671721395717455066289208587256104411759231616383828978860238487398973338291940611492103244140657668633498219745781845306409672908481121045002963559221296527408804564913985829562812029933557585986432581574431138948029286796327063570250118136915433043302395468726369749010850128832010274112701554236343023250084412725884843302079298948640450991149716343036887383196094294632124887597920780590783870958672766487903386831174200327220453482658768784577315883974918601699224234304602679028551562827760549133398718160629194305183252285356201001153026338291676643764840235302837580949665476626405733979823112030049266916271271306451678327264437889996278463809562455625617624428085411284201817877954059245339902260516444899606118798719582657054811997590204382423978957336388740900547476506220810377198245512701333981511480576033853957600115270252627851392636432980543632410890395892306580547668232095106123490066094780613265553430862488866455807381863812255055429826486592949305734156901944100644019975931446806606910536321102934453044010288683927431896657203648332334245495182659812691435534193351157096300112046620892137268807023761735576378908804895009569328130365191038283239873352606029623961478535537490147987202548898776668779923720844837980358631721689651327446225618118489321746954907855487123030843217395393267486926055484340230287287725913105069760698613389924122170267810009814676151414087526091529698466368816606379191191981048966179266614196471842855605576767930596882539875875763693216413333816690204472260976036319809389037856712145370928331515514672730235018673410961504715328594648783722355311669106429835296827362483326910801442513617869518858998115906131859778218496305792866139074752686906688739091760382651337101510604710676499179831160816637570774800579339683389975742750354192337388234175916815262411052682400762487312854940606029629253039489938141650370719597773932078445124941685781560804927761787981994194840716972141223629618674856653149202553504588914611707436354837630941080466203273823905533522388147719681497031463369348672624119539422551980810088525907400015951660958338308237185733081436160528635203866204462939366829803785666459249041859487901100633672281095851897363205727736956314768126040971478264195843003251653030302307940136862918350650494076691179363536609308113122369202187550494141641518396417502991286566086500647984078301901531617594255435320301100014590583432069430677604968888021608734088521657161717800959001150322247049233295830769233630517641452689283276381250717928986576427737403908763189901835458003767985819094088950730534546113886464630708154091463601036613501494081916311644594422635827935114775866109542280554403029361719919702678325337637646747349230009741657018265958000720500396034143437080493205331819735309681009123801437479433847288036094226435105363239748720842223256127377625127645247999285746785098474463206642477304892385036332143003309142862425944117989027262018318022958172979165875035501358706487128183256583601460565027315376694701659163548344919906833239774057534737085289485167732217942199574887994905764226907153706117934346059588715250034128026421142042990668795712583194559737627759025718452519292328997679066309600839560962895374654289355107823328509722546369549603369869666887074623851369960426289043185768707492854396789655300902989598137789220225229597250576111533309490550679560975930730182802983526609556280331611209253455638650398747704578189769905896426263657738025198736951830319109228949230377688680462074241022209457311705652789184017673170037777290544192857859773829718879618460097407037169080715525757206622649487024218997887740590274178624685711987685242492276997590851446887212302734787223611250258130316615306859424479393534766856686378214148141551600392269888310753904481536799284275636736245348114680333885528558423312861556969576961542869457617559497955713489724913555811306418859121898323193493475887993349905250984411336842780841872833709990125999664065256542377435876414842675682764119201992492207517747422026968493351513492206240365860029324156718263064894091204428488160600171022788365912189248375933762271376417150949401414971924331172892032255001791929354907957919876675052633387991699672189791702945497168669787156974286726561234207881124511664696014131365561237190777998144505739706314404224007526531321849728965073574648241829697996117567862216973277700619605319355009190650675445624361129479872492197630741985396612020857668679677388858253741801716953276977891356498340563837200691306319011451629753895333719777358859880556258196792863261567153569733098224777713110155399775371884474470845140132578593420196169880601643942262437493702425829909158963233301830497645492100965802594569301758565846312398921756420561886036501456521019390407817336892431724030105745405485422237346687134388688728744925743523581267503729074261422201469877286459252574940005912770123654229971059137477049663066408633453876643413413588046455344782112735533990141555920486053250293225265394342726270596471956367165050082230212146518531143759834121554101097851739034225866845916659631953421057923906504722488600913189974186357453498448236348260669934954980701437512527973788986787773675774599352943709737595260800995858408742105187909693369051717406995860954684787903506350453201385628048152974079265480267375238463370544617454093939109153927254161099367527594056287852852791963757694143510790498809177249217505166035338108421997831443033338296095837292402656200954993454511184942325281438981660933514723579729233003999534996509859566082792387429114147879121650217915293981018961141642865837041800408282526273686824053267878675047106010475437262363179392304842332912206368230521900977195409099227772342455930241505591193990760724840894628346610308125541168106989419505771658060985786464565333306286223965438342201518967858562360729447876762432686314351953776109891324830677057395900001344264913001727741225331946666866624520316561615493304178835437729359086143923715211819799647041976681206919068431789454706437933583892148109308284256918121930078605885097823860514229084943681805737084820753560223747631651935922718602283714155841789492185670143577284009159539922241364439509146518474579268414296085019696936045812417086860798112784729667269702067610930490203997137118172671381808662850109726779750559273791752769353928385206605326829860649268063293318283593004078313766546914286360361597074241351103361174097771932293634938910612037360232593631669482520880773505540538911211830106560471661765942396354054565325733773573961704454784208505176575380821224277049290233561830150175318277904421814778635370440668831204213308192274042383453547455383136956851236415027219941771906895725048523621909023195893545765240903851475559059044593506522146216651347802580508113401905833831774377058084590825573539706999827939201506181656312097378871042455892077612929903947778394296967373877149288456891635152687614205117121627152456851884493182790336779306135463339839706940717068112213746100235225752610793539642790787151405533548770814352508718672351165568366127619921853217605393197036901528127632738295174962670367820554929459270752387305523309653455356111387298435368456246197891302245911282864665114061313151238723336521561854648885880848866884322225430661620104405835216981797912075677991451754619798640941511186841867004933828730763169020525792998307705732309026871927586175784185387253478884366386224921934787750411792976577452510727017744703108571049746394970062372492575089278207755569795262864188529815309063457501175250667032020278242224166932277637692358053017381295082482719159318544412672882163921552527312656749280375497468937112593126194362901368347493721809489550765589573623014731645643900299371903079209082026028664380125236242858434273401820257367085773366038428491299876711030582739329900764215057160686383195037637437872047018034219016275486841300237297837306269366878620187960656617017278279628579328753866132541932701222607469127773886374327255741450682936177646264253563653353746171896973719637531430146217516280817874575696407360967755943497091132177391566331659915966515068332449134565619711781810116556643901288343531772409844156005138724491360042743036264681109172334178852165172955861771779783997130811710162799909895155822581735883256880655948200919328429689279282180309635348383063134375479276683031527925191057990557844856785315477186890307285024471339117974109426821361313638294280982700515547318713769394253098260703357009024124707465309714824907422596483143210259497637777417910633354299390517612829313183008268655506376747865433371306759114577204963268670919776182981177360262574937261670450430289735711942740065435551200829928346211289432444979932129549127348791697994398688416901117008559045834611116271482024998137141838375742194037799092958067730442393289408214916214826483586227450499505520709626208719108204516271269152336822428522911119976699134730260216565375037624664847950732641972844292523972178574236135106405103025835337062971163863268172117610638205088091178016479837018997219055765685827548810555056355062248690107254405565266017095538620894410133396469246826515206474601737265778550413017476106187611909719666440636717673550371371672778861488216890597381556633544457402619640811814543924174433402020519075698439215767866574586662591915853094166231488577512357237498255395485948499972630147704333838521718242559061382461866610271135947966882634271704803372546808687439598975191462453573723857462533108627017333443759267438803795501621299241393552595924798148109307253779790320746751490757325818833009431162426116842660134652258524242821631593381185764352157875883851114904713663051248687221085425746007373065002900780631984629543773590650562402832960357146633620529916378812264005101756314352144298844173290538541367763894851121306128331142393910524878589827147323343542295378660328171305203765744294043178174507993086553085594411457657064980211232012438929451853377603879068598974418540503705851442868211864231930041980778621109427301777723402707864631885279835250483369430482254244720665431223599526024442549344987657795077769168668608225287847529851739146312058198512279599041457544405106859639668252668909295310054456362281063284201344294462467573577422929018783451155353264207971625537218952807358918240807437327476582266503385025534207418064373087888138221390280457409692950366549027582213246931281150127808229969602906509467192408555686547796358725497996319382316741039940369139830274508733979823864690510780185851022891053315422526821014997476054269501558381285514951155881225656256147284616733614426351278754202060432568339717194303526765117846686229715626533985015096109746787849899445717361737210911063538054436334127742457700996041499335270091604214548654640892012441646226571124566582368342943028381123676807652651377867994790795008648178676675428683043799025713304848123354705037345103404006576594067790325037799717831208161524725604924773149022376772810538144568890010443481433636405585834990032172791035412947148920778248342528896259612562957786074065200171040219381513207607397613004054515395016925817575913651488557571043115464704936043365074426123869101247694544745313379654813015573249850686832923955890374283160735170539461056288503105101130615799513173019583769841789061947387798070608347946970433613304047940716198963670797999691170188786642675048620046280467510875248796674191659888992382652240361361683874063251589264949668530839645241397345575552760925055074083399895479037732928413292310727863494871908697751525139981840102550131907605623618149337515968843032936568181937389553929371657116773415944164303470154722470987929927645346844445754970608659935867517526554392836587059376117139805539894057141517744913482045100691595028668737085040975940952409319436966982743646222700544191907428610041958095975646204493102278754536606292753260501941160341002879266949322745539188752935138349383958000200019832575507970899808392592000701123333681414540964478388995433759793117071742039490092479646178797608808817443248831015634150867251009397967438464659796799656639744863580069824789655298071616076073190095312378448349274559876313667502127101380297403835482592934723177688611339686708742882738718735052251658285090122056850369180477645999553733537414847515250245593310245745156417433210881875819652162729723471926663504276988477817426284734648886104247315226482687647025153108171916833261757406863147904217213020465539285853809108100221560701391895680215343400868638174079571049211196881582795958664226006869503519058098228613790910775681857348240512802701936670372642299688448468682895957308706552738402447744179956894241947713357410963366177578569842716272936172767641569937872152709101913517980059111434495771575958510673161436753935110983336924474260935851306211746758133680691456461157023597076042118348995356672104361046243444062914646584689352304607054340122531027017978102579115277173494479158428506867613157126148232108557557326120115865351058598706893770264150438166069051545057475805519002980736355286190949653059154284506770021568740965076832643985395250270344115567881358789579876902392522072858557739923166141672759119808683534794045648257212921027103994869944516747195704432551889940605332823298264683351230720933841511804001316208773375269535288968120585292809279749977269990349444897233717862994570914455388155343918127296413776975563188668873957542423462788706490826491007940521894321748495171341475031680285447738310641618270160824810419785586668392539804346823409860466640631141164552685340950702743528112567800921007901341481505042982832491033872871691674542182019948166810581614974119877098366176427975080386513983483626968862138151043417488603882863989798976115230484548190515670524903071341453990970454052919644887308429864225300110627171924248481621569543194303975720534063456878466357937157450081927490106415707646689951211516839762749819252484352178623485803379707133515945022928995615746509915268678367768780518907408248217174865513618924731834431457087801309129211436054099982324682246323045301001953971942501639332572326637740148936420406220446729917471870271018191871654694687485073171961577697614254651876094021626686367952535526297313249906723856377075608257899488280364848445115974297127835623648692269939308584530668933568800907510314923759633023571006259911911851645935208250058337033690842296745076828609059874358642667273371634986976912917039657913853823130459296662974836240236480181251846130305341404471326561696956912383358876169699550811542917698431524027061517042949216987821368112866780372584471875425158575563218028375316651607785325279744405978069432927535944966536299659022471503430045507748100871995273646138167590401763554417429226145339500289488625358435569783950145296273720551225062166403905934447680046896301241342366728487211425621731247564536845725600917270926561836197970299525588345061094770383440252716468521529707335533671505534925633474077390261259917348090073240555910469160113128609044399482487460689737618330404446080620867532598789698587805113185772932522566617486799525008195658771939323750018703530176885050718914534741149857765267126321724463541973835485410621955016477666928806013446267952869492734247688573776507187875701296509475653496553446414735686663221534427543707748250980066839814356025534816743598383784704527918987063692082575342279845179430143456120709021589070680624510697685039121928515693403548460164887116995193153798767580758105458984202162250737435587720785534275949883637587065394027145848428280528259042152323414042389042110878640182868520282961497071466153272426744563669860806832877477804425914150493242789172319106592834782481547713999070583942191174209115328043482021885552985723407267652352472509495693039472233219987452449219202240898175366930662803371712817306484525042695071410803806914851283935148487236457263288622885348758232829073641358340090681296124739725468095912850843824717041239532761970527757399195370739514864742042825676920064067186294071283063781176385086612853158537349966526786293087509327337265595437652925065300937654790749730356574446946071571135042692333624970085370190200601938272084957466011276158972102091031945305310792592025610267953716725373150428853425912431490251014437460844024654758601374242363302401457364194070269460064707300097224708131321526004423583248649145548249320334110953752294637784921698195934816035074965650756134793152946602163648440567155379253663243546448131565460339883274622686919903459785960195886717032735843188368585895534891334825180765436699322006483477137290272140220484646160830091653998997953372430871376270925009223109934872752670914049966621956384249297049846659607866337012513265794458810223762008127568895538815684452996348758679779258520422645086372930689451553054910755411203254076468540953488174744642470188287668071407100267099382216723044345231759114284583768489025993406184158815187802102522277967603958619959385633128958479364452814970574024865140885903971343331929487503823167874300958547815861258309361229548448038154180341803556283804349785883435387379231956966261434473318581223972834476010434889585410887823832977967351817807711320427184486765285318548870401413319790802353368155690929005780069803910955018675436692840944845589859638638235340952704996727132333605632227877117566854426057881454404522887625444847115903640236025855508142675572214122462738490294764539320421462407399090168007643706725279695125022440555147395669106267669571090897062822701351088815870710902409235231141961106624749517381783189412199898954418844213271894855524349807158079256253371905822560535320614097953137708070411666398198133878863136204685531591864665252531817115771328892892788143467925267556410058007819356705816780612565872335974536946292845848639250407493893774923041524969755498118318298602425788476486917901594751448468864486133449190631392067233213388452781508909784457664384711648901919714523952174975469147542205516325097071437214408927040963213213299607805197126513967073466169156745908888143773550913861572654580041671465617153228034623837173375714488353870989920901236877193713932350360714784328820705381138175499827777611751924611453331197650490956352072521141535611442224729218966358556874949954192715262807603889849904054301372867074643890197628698476442420660358102161755544773993934562936971431905685437936238896138379862980290576944193484287756011182891876768322717863392322786181291455984776465937005790858737964701513505525011523819980749394297884770200735378548620757960740095517435574998299914109285772814477250468499285876589757921615003658352888851698323551187490354917235617750438686332176648215931173007567898773751807666524655002295029992129269192804495462595253377908302420280020640154483359653701253520534827610777072630887143205868205857396821695013611244019704103286062442677309817084698753220259844039100702782140825824223089908854206467022396169313170626079531718834276777446459170374814026891627715935934554423524006049040839197248851985499812323665172061303513827129872345627232156108834789888140024356517575643240405660537119241177475552578280770959415295142831768513510825481319587305299629334895287346515297072798912596590449802509321591012450034285640484937248757474056727310415102668092009039027169081611432281170030690114119655173327979040085383150155579064456680364541129920387937037551781816033355005259952238290722009299920215528566250728199827828341074393610008666780700808358653816110709935365462371895509436047439087532924139424891291357466454960653140347832961072984427349556081930060873974789333828541679910312695180093668580312958375848393880229512179424598297292599747935475750103299758226180284623782358610771457632831854279205685118679943760534381253502124746800676339986788204979039629785127735132650552757921520053233842859090323835295452283154593514588608392304302053504044068053402841101775947081826869080256749255913271280689194241009857949192236996529110829346410630690214210935383520425626682647057085984696967526328806488286851744200583188421171544023273831016732455967668015258751142997181821661203720682696123317465158629959525594006735487978793522922155346681096905724190834523839743489019625572942432147085941381980443382430918140448729237676755489705902820145519872696287611464805420667155540549776459833818627442694342012990403278993981502606909552629714947406693015032663736817343290515576435753940673987278930232054137847002477456556136058089045274675007343055969854849877172495973417692224804558167742697375832917017690899655970139825574241333352505429272565356908385972554573611908600843828774745848665913281281139225379114073827018961202256362550488393000426673541261054722829585806359301459155060392910827005092004042508417607915598399834496207616498749055086945433124907332069863127407293085493740002083795049538008644831860033360183355995209633868630220299761747145709443111984986405867279937448996813405494408109970354190611383173468860786396208470984601069547529838481698194326703387479362296720679765149378306613226367903837420723736667054168790077341541332564608695875140937979443172336028674255264186613459160926543167604816210046010967517438828048314965463184169230549853981808109628787370185980633045242252888569785431659879937081472139760364377964241109700325347472614109218796573102866978127337634710188068045811361772421324237743528140323828166498101715704222753561671676196850700395071674793752653911736931014338594128064879195547484610172446123426214294814358325322196912193622831397520537341321134813247223208661308542348893296545991029346288425576626165926859450634141540695209182658788121140881545801222835016962179286427063280986805655960872575389402475420424169592687175211136518746953138520546664204823780526936067495922842972166931870439552663018444992451024132467103649692775726349369563517121350899861465007679066523423416342395477627001342963353070667906124280756453311335869631526737948469645062539065117206080728800915459498713758598089300822402098493094981789891673559489511505156434834567456038772688815771837563168394789211695311151965982271639404846199393310318631859501036088075201435109752340259116242723183348555033152385352097389578767587943252467093447791784571722260801279484185934871881520324476110049970668902098174646025631975938149690006611767986465924929021889179870374596245325435436253576174209437096790422417092227579512082298892177813469030303774851633669943993747712576195700741118264720697931728506772160252625276126358387718363973336292763532937193260545590307674569489598883376789861285569887099304651753760805838837065102086987813459162833785034437838718639330588278987504975356222762332998979589031834744826498408105726346101457628379795756833378718481961035971102375736431605892655432361581795500075137561380608703501221004441715162861285243478620927926780486727258461588667063708824523171811921735434378195426452116193826899740292620408365203293964404232156733427495851482574422788807267171247705551014920065379610053040771499361106425477712614993284686652303898346521738527754166285561228281834875719768467516206947714699132179576143368277038209197658670938963764539789045739823787037048438581498327005757162713518436069748513561640290439476563020748357843766767249652315579741833852702973790258206835371173737851497469157876694545147081147111236611147875060310358497203593884295365841098372181352358220170348713462244174589254411678867124079936326146036081368275382596048450159249779161189204439916309882865041744137270527168059860814320324288114531277020362914950430833403415568427962116740248779215410260473327044769442145869505282234380295936810180188047059980857690244364358288653293628649432654697861665083461591390701246889435817681746637324974409166300868241648070742513098283400385801263843720900826260034345692207901976986486967924538594268230109129027659788820716122085591976568157958492853486788294505396093514792471984655514195000651266646941332185286216087996433286094072122578409415535664213973355529776394662523087173967171471892093414317346893647170680952313620606556627748664898476767318030563101890500837428483735887650964776828869992707389329155150877795991067311971933191850603967029032549447943367852089373290010398154305663744368462025702893013308151393934661491798768586179928387377096766310230834625859375017599883176911180213581032149808785164550199307432826907742212043352220414693215168506242196219710329123439629564159662152164698853181295503144652006951873243131829248045733853322177190313411986991564803490798017802695547412631031978872685449398631798648354325133163571486351424538158754473613695461159455289293399714219468039691599779301023347626557249053338669578695141735911881321565436798267835428250781506446425818560802700427154332586039992601312141020796292520777069001604218833771820019449403392370485721494098822670480623179203475548463099002288432018514146685309656878768782052133977310360478306284311355835118313975679950511039893842693189956451986799420767697106241110824611929318668657674139525401330555009801230753374868040270932802457700127447580239927127687003634444501090032366199514628555373078350707977654890252254578141649082408393830166719074355403417095208762160295711254255249599449448713527913364052868212143794397446859112536895531817704974628484073169906827226637035397119356464055149070737364928664964425265347558936176657336757447809215461290865460665581418031364056081031919219391028254209394860058289498758402073469646107467057091521504731907850749199719552337910514460896131926930365622769639127376879561669144000496774971849266283737385741555387561455634907815369214763238461908759931021677655410129489003215071714277287494452956905604825130604816777548346177790236876169947776759811851119691947656988254382907983373076954600930560078601811245166285424339768779171820285084943789775808027962144492072011782332929278589681918016102668638165351972947022140758376415674498644583046326884311384250886231067369117290579312896902331332985354075808039387340738983835297413960406900031384422182674001237053749533846029490008424520763178646617467355068026376300162457043112854674517511151252730256231894901446551328664925870020473164949070902145312565197570298192904946736279625491583213208808339610274818847756391275832229411721206650789480661773026080112725504565421351046701266439955428388413151641578258363840539715374081232570757751302300913682871836746377067853410859949898697639508909136710415334331821947512408654232234264749508732586553057290074189372565817560194985044198347717272434601262285902754541558152555700890643965050347156491134364714486660044098442403274467577732681689483481110592312827674156783550087466773764451791483506771582136296849405196957336405411935184728805522484773263449085956302860958694671889193250511376182541806323765573419378998095064725560404178807513776703419276574748805003381015002036664941681516960320578860803826053996190626812503816896974712215864484098665508550149401699751693223799922990824279562846205742782822803226892841799876064561681513403765263821282446839586791645367346951313085455245604466037933735436241858677501633059356312998771487550746622773989737321546903353819639872144392419662286551967565815568525461477760397159489550258628539755077890706699553045528509082961033628469119179728392554782108564018899701790252725355733162114654746929973165054017511696679018847816557808589674441279530049642199317788276153915940280328978860590275771538751202891084653365421222941619590430918573542844801205472212190785992647914001830109347007310288911351156561450529974553136437594339416817765293444758599062688666584944923352937431809416956137920004278696479837267984710952609741981807535524471024311749936222583550355286649666703109372358948972430052509765033818425047870864595610771771659486303183521049144334421825453411085887303544840072753823232245301091594555922771777904663589059356015244805705988027787382101134193706658315011529160880122243099168851095272181342497596662902392789986247661062950978438971668306415601949982176168338309365207814539599010233646624583958974326166911336518302266642511087134350448982887427926049107331479140601207638661580213373152101635780736292212502527934877367268389000075937865096153467034459902648048399913769870374705392063006844852688689454289348098730861225062692722049798101729261828790181627954759878362462372476987008568083581203672167929890318018802194494934828874861654571626682377840502364364396637708341588925038444363465449267123069106948132611551353346862357279401474256713184836574016752105989261835817671022960430853085096407449262686760507751907280946473195937892098207877398136058301198611537942708007550982110034082082145085300436733541693759982855158101117648723676908371089578791424844485635638628843397437746502834862864612129767290074121877489697416967356765031910537763057060084643682236739978759286554743421057337599100964514112878027124315646591897077619668699327782532875750923487732959488643423362149798861726154101980703804728627243143913752959580423419536282207429835704403827031300507715566210825051556522083391900504966688827239071233205513841268495694504584408599732004150044309125194256212297701118987208987865132582410245321570701242949254302355477290057506388456570415873463958610262972582268654693895611712053818658009582464303504601844068639107620980105305550286071380267470556797769661598761536875837173413508202849722689531922468877239377587575101469376296045022644554134541283406543229902727139447811423224372530124329690829747293479463475856665296412187228675775922125691807695799249575951314793922373137410273939778272182652167446220560947914356653966269887615360591627213480203774296425768506742664510495441571770092111349231739744231526906604540898739323293559539102677674506511333495444872193968124297213310226348711375443918930782640421187458374470093885488518772808050133338264501667285750430552864671955941835370893951107315461839804996431223539509184169699456742350970424066172572540850860184047861669700151331541440875914252756401660205520688511525522293988187097984703265154288855464587391629182551188835788960006604188642940323777481286145289074429039946000466759269725339628993549283554535692661297507613064706831723225194445631673482633564762902744520488673242187347898272705864387128139212539029506503466697283224301812796242436722311711102225355430635562921079307699631140366555248856754299032907435474186653769208474676696145343271961257711177040801434632976790771442291406925361619842017320200407115123640061397778233254401665816399361441607327329527466203270710218053578398450041812375175661228104964457234479511583928973168232559317391778390721991065028732624344259889957432017579742497793887729903992766463793871778341826074935607829025309465008281761483527326563095044504139902873101921625785062271227121255361886769881243545453312737658747830962897244747386920129706043103627081906528055821013232388246336111648703749594877939660212290476883883913781820885513624867166467916782880584479891622978481170702283739070568048679775400560830588104016206852670928534106135239337931329816225443983405119504746187959598823734251903654836271400291855475482305409862203629441413642409096338933454976230854502136798265229549089827466308927395075411792629263936288739225504540338779885797069203144649476413141577817745535848374400569954577967911078433891068729493440065985265714297265100185558884229702433963300121106898190230845466004197315004241045989708873351075876793758689251230194397885105006745221643721877429416835065280313223388922509679268447498161981975415893728239608474712038708147518157744039176019110847004676723242009276498619845643686151436945249317903482282874880364711861016504039088521564118582171684880178111835843153833263002485196929136540455838168974808604074748136785208753098280342119598990713670712452931724648468570721398329264727891300846585916034935234636541294288928857857944658356462064888198567840355148810593469304520791097253084744937889526326114334771269715817783851719317182530222993185895445295426994352631767912300118477975474649604783206348462840728149123392368436234897653378719625050028642360279707184151657196626394228313190442576667971005157512422316520426812786456947525267046420812363532685550551414774276758562341542827258967691234692780999062763074345023664539146423859017938932218165798304585146111230464847877996664869560407693973949403283206388262716455042400095275212839170234337837991891690536344938455779488810320522024957035333075639086503561413479707358506696321879803528903267875131901078665241126999716468092695033970941544946349870105608787934794317721739759094976544799989245117061264362048896046587631826620351475270247007670945647316351051672314395873810562517738743827842480259186631471467328924961893580737727606723134904992881941113308325467929844684735339460533777897567502533089217348655489984095345422372832176498504901292182880440304014826040911365887201117296813318200677090931296894736415086464130193082944410418120125904432715934722907680366493448642788554510414474072591536394467496202394383204726149394089190526987509922019387924935523035606453019199790454214189993311218350530447723442472721164875707209663574017172907781245238342283737676501124164489773978267006444219601164968265738773880380211379230622884853361280505227832669586701839993764953281969469108671900283483115174777601903722737134437139672761868816445801927940590426811941286944439301875146531352054051611986161754745422866319602279743669955892699258842144815323316807332553452621652767690068784913854234023665729120301075497712847436860477190472663034099829017498011194962797891703404754754593261872369848300106163909392635317940173556806445077465184464914639606448281895774353893317732517284187183284840940574708448276724655566275089423554734464741332432724103472871522149960516958453699385163427185777798844982889457423855670610075297435040556148068407276389542729324615684031881104282185391354298856668789787318937481872574778748672223767958064107227590833741930488542092667190908325595615272767096666326776742433784994854685160527463276982314259024227673135393702089422567339206368999529438283680495772873948639187554576000870221890313163276583692748107058015738231200664780624715906719145571865367589293378390337854447369879007703904389136456936048391021851673895602745808797249931345915146975485779019554360717645792675194721287062767219124153366695059156582364206779627267986535944375491917183646653448681823580801514579784285779207496016220841280841778265325277518461904499127633979814159229070849679754609958241048087132551419249426328255506979017745992850825535343625333319687344303644021168794359154123588519988225961855382607867519253502384206486332698815715820040802234011666731359118345582413657372611844154884291514844575792251651636793292525276050958826543117869070551788079757005539642710923900037593977768330231297668246034493575207537064079382648765752200433987323727887808920356015048177236463282103187538248336811442322430520766564715299729587471112141257113247129302654163772135953904337432419957909846945114475616156130242882349162663568745465168309204855354564473229314607549166327669982330549085600293682131067258777749970980070468941524078940710954013125036539303926025383619827024059900362061946803687074625331952759071074266852174234782667120157743842426946438127284930545843102326580138257904308565154712442302973143021697525119243374575107189543510513077345641036989881997752499508603370831141623884162739441651961877766153394097923369948910346416605366140765578874236025602247719563902992706702746189916442209400480815385254162963922932054968799084398427831965037489130117422518088257712593830216941993803665154754358354055447536048815912585506580945625125598699262382611152425290803457180599084533283255178578729095486670732199272030020786908201134908085487561536371300278526239697359612420486090069575404311055467656569947021522072855832817541743080183269487208005282210328801389488423184036161251973493086050130442382014044293952086169439241593451285846816170830186675746158989576956861411138020637060189991383275420437839909091318195876073200377340442873790449034063094846844575543015219062410235469059779740429033633060091781746084450939112527544917346173037157182668975726572635709109514957668877240142770493991011769738507888138781198636019524479864098436251553950219523190986496253553411660938246481030961283235513564986654285810405668497521336529655061212163159534227527826382428429340131014553867930854011949013247623337054857560000081213000450746196395251416738761251417684340507682868868060737529170067744921257131760815367139969796678069246366292384624841223632435471244123333513992483908474748343082898854421824809261882019240218606261193093027025096154702043103812180123522528300298534981547324518907116495538545802578611541457022884392454560790689804965298787452905302002131961108257169025866724376852351490583952219743335489014587412630632031107307341746083111380811433152677351924043535177024127986579735769926059123220228854968476407391721098746864313202558044884259383497994106029219686410084309882058486779156516594931709479420234327885091151502742591522571916408393053960425714409130406314968304638753899544207149904491611619547257037294821809989880879945947194506766008392810370970147831208904826325783136502113613722928912031903711269784289994956429844066934015423118037967276597015844194426050003761128319445660903904992116900501237182257251761415755633962398892985562865810238533973569447884842331222248718210264049638874784481061277871029432248880141329478271780741506194313438325139132262782094420997817923322523760636292177524914636109987465454492272786537563423108992263489909647988321374150788400438068900362260164335168792582731078007950562298648544783440704064173938911774498471600464365619533315176011828916576274779793405923792305304462532014764152541779486544067417290293530917442532076328025435046351871354612845737731936280591077810778806642689344637446760167687819192082675635818665521985829454851669932074364493051913268994001370004030915713677261024935629071320613757593007348232128079442053470338015819433099692992539262193443300099638852208762139008274536512812333333018631926826951505691283755154423094699092075058640891978394484337986878624516649510245145959749638052288648478114221173001675071337618207335496744354865681492139347630941935127740635586761307352931844116663981679308319903265155833369006299763120440234813538826928991701360098800728898484117113071466288659336282710629466111816567357830314920011245343537362005959335269496200476712248832843183647372064702654888408342408329738952239962317606746990942005365357326825837974032438386626302782342650267294123420530472139308571059832710886271254930278541090763963300010360200052957505278421614814517013978864385155545682564185284706725421009664132153539125581543371287042632749844564212479895377521263564385654053896625762058639492762375188394321034191161786409287168662663930933106537683911698253613105434683801831233984567572579680706679996128496319470497270687087030293439512991270604813527063870895992429420697753197084670800957509975809975293509409907738080493066462808897533097572385220036444441073583390576908006165155619265618688160053677326315346289870737140557838481103809748300276313743728533151762444325707285619895718006754273191630180347442762375195434643395096263419021774037182591595809364523524191081182016734706316565558574783583450914734013369536183453705319421705657781191902793502328006226403133141757109740584154965871059347009163150999495899377756646121528086499698570752726800703645857800494078594324020542215133259056787253812570059371745595894946573964154263236554652097364024583188900265193111536371528958422101258805154570381720814762776404414903873159195003273972267775204737846313522083755317045722688275027719629058517362037714269440767000689251809453994224399582371370178891392986560979126054015978824525156998470325797958117742430102680972473601468550891281994859582389306020908880372146711411577442580845633382459166614352247907054478055936124088552095578238305710152276414682107360163963837761126632363799731198944203473159277742042491867910883614845467531043425125018222949307777257560618101497679372381905754279871849704045329866888303438445816468768250197856040065760924817620691962514860315639011404215363559458955514791703440344108505933774427747904692885359358130560034624084223087451463812440998065351715307726587783073342262742165794883552875339667341178341081856947067593658581328422960222927477343306847220156192317658799964956657706608809821429390036590595462913263740025717791221161989560776994923721363138827442742662134433378110574916098108677901588783084334537953625775875034070085629406580589935745774146679601157802693243544508171861730449827968511118367364474328380740518661977410980166263720048442184753708326490202326564319720279827490036200042654198228324353169449228493133076937751890242375452338852459170158258489590157981240748294280219270701509955330995439154526515056180854482582294200363875540578554290586548485915585019828924034469218316584529611225874783404933830193181320368911165542418612399245302712606428238828445599703868224246384995072844635218173337415598034671022798914741320389328823681764728288686459689710086538369402785246998713181103568844806709408507097936700150740028298012441008391452719620203723915171608669840228502898744672858739423717552733450964725509676583042878721510897150979004283036921382966023079209757940052096504770705369850183939164486994240601005599043626462183714259985717392049588643508014830876147082707520114383871560290870038045863173697212948003715806449425832786995367268099883318914873053836469328201377980432352477217953818391486303631406828468083927874796151688955318223222794150614909849446778749848849397963080203826710438508306583034710583355043730077337542377121571824362599912661244136479148940903828229999558968354672888881643065507124737670109800763113719527170466735978836589847243831007457586590015311948865001422884541257512548045124944432659899482030845536179966964395917313528284663477005196066541854199408408599291134627431139803411859515041103285977409241040377493166237683616190530321733498054312061632587922467082444073224665693507701465582599690916168582658290671179643290202827402106618097114127951051217463875445094937106692295168104106276232248461681618869605894767942784924158492446885764736908842620852580804984756714060493280693211820212504439621881374443479447293913464402938061105625668703511159147044464714878878626418936085304413813990509364452874579497489706342803124410692964986918150225344613224607119760308712459588481400199861911590384407549174549197049320359702562187269894921671236748794055552476596095092547153096866449514575077506638109988054664338686919745856230063150170420975925813074850961027801254194027483537355782963079206992678273579886036006581856903783233557502351894295150943208405959567832762468733354842839819179293724220665221380421328751086770276848002585787172835829644417969332131016767127880014982417312053790604981020742368828498027824673123222896434506532335827435517843350467038217237050903435659123310745838108991522656372349513159085577907562423670619931738709293369969344017424687898888728869968123356079027615589916556876360536447049338496237199427772182265498472297422953221980672526267103612065559543275774009221588732933779397492859186739652782628092109030097083196258415774437903792047391737603587042202982032108187586940818142336048647231859421826604876816329122877696246784416347590630528096445276826772707507358624259704043502208409235925389249431407157872008938055668858502835501474256377443585750954629155607907100670639547413496176865654852697111619731886773307325567912202507038780090825132491237530093842495894672999507805904916540847800895291716435489917959595280843141365945528129253779492386938943904783182893636286934095736838793151118564547102235254513813275419225367361271537582734507113605162956633464599202884428579510478496433015434714022505576196267157850124780958520750482803596006883085300718382989542091988689098923443230180250780675804580477406846527267103623481842434818836482041115646094047352182351272516684950087112981768898141611194753273083413911920484546924133135586239940775057988460748457408231586180987944167615820250439263004678234918064538126540824604739663572939607477592410173431477213611344210122724630022994098186996981117068104857496271463153507988222691246114664719547226945862205405378545526065260253730270081501581563890280754038295194646388018174128005602666825918807823940750905269720313989145586251427311349412038445099341861362190030731979136544082624543798074800308083685942643284177945138570333186243601104925781729971055651975525767530379186479669710953905566850323313289911692059512864825666660125790860555434939395630775867933242618294297442638723150462549447157961053425886956592012109906891943861358023943866137979095116900073156248057254898439143757798812330316902004552736979149202322670099438531755939113811105658982686680151149985450962109316457800669121874547456186470022581918623709454856930373441004905699339307668915732228021051747481708156816041480638618121388515948973918766074074820274034073034000738989500460452486087443030975951593897758462072419586830876177566542340029089816496862651468582894940884361793975009437794909373018338347190852716673256602110694703102337428364538260821173589248442696941712280320238337170385498300118839406677920826134809819098170045451820795877332094342691083235727633812140215323392781128953840671418195060651594422153780294140776788359905188990438913506508059800675861310500788146138539303663387437603864149646193305732570106766088369229357188629932968368648322557397297411529942054400851375144432735191908580839949873535985827031787943753783030397374886622228928863590386647096257861495940097682025631437190404549453434508110984335719734264939897786858293178353759118055456618645837713820239865786163670888081118012897180984991051609948921949089924432552979255656817164920658990775712137385153665949223568764461827911833919357892979759294444434535487874550097369918954470736043513754030015470067387062788257952121948144740327916302465039578031879356757177795817400157946434221170324112477680074938493905832727656197334531333554084479716143046245098918561284485705361893882687933278409426855036687343723216128873634118807135024853102414600652671893262826538690957571632352618207578298883852268250688027080961983623069903283926389443483896621174687767095023303931595342567516664757341996184322234661220212084491001528970354543615904961150208570143990004335618086765999006208601034277767895731150515613484787135118599801141844998535855281092474635838848843485030524050160979885041354068941113191393842798331258111251262289667560878171084053840002671554292311794478047684443727132129667063528935678618119144932833880555177213283628024723089349177680669066716970430816049489730046490231889814317727707657668098104972162776541272467723796353240074549331719558030398334899016708606288512752876171132489628268429314861909234440607143293337653352829720252905094072575474013040715286148327337722160867905888779925992027439430198844962470811316415069245767987897733867717427851851995090504748113718146667065739424734956868170483846913946679825672977888691660981511996617534084341061910616698824135187688399123750510886182125526989873161722759061961825327991507760973676467889475638829372749501137022620638388215749234865388595490985820536339330905070054951038822882019401975627054431602554417361520425876914719353067290540826419666593267076023773540589923216930661228441070951518900953382845344155398882621636856333925698840455337065158927471528853094483836266744025533680650571533802198170975083297728525492679439983314941956504854182780375106743507290744322758156845923225059984105831427003398829017190504082570639541447844896568623810593679593862427378266189058082983670513721577676598033871314141188229827637231667285253738140033687507794060557330652157115431125171240841516789226124404454722854243398279391374210166227791245295737525846575267833674035651092468167877406380322567552442021648928977228415820574657378791721024997908937472232520277744230075843142035312705663624568873493430003815936874132446048105647267491593578841866692654528242736137096166675561408117798414582647399608617639587115298257087497592375840727215307345441354943205329607086839580861183443262238199443447552516198938892461555611846213680429794941609246573260045438628696540696877490638587723026865680504690425120695335208653567608611288097261554693717526003111566034805864498526657203091295791573806136939793075127385271531684981863818348708545173227849715858451875773817274266256980714300117543437188591252535987460776383058431378815739323756676531549296738611212538190228205480338811362777137097838609424561205056768793469379915291174781146616038130357706669172021533925370190815108201134584356012819165573959657723430944016385447217543415384565320466884712306891079582396837411203882024603768160685170338978743819275698821920406200396605736925657417762200498071789509608587725857296578191037143812822793073078615415248798222087760138683408441583282602409653674651213617943928023991646555063971283242030978459809656229402952294944276471051733151316229156918502222846992750339635927833289863839298334825506019824592898363898772593966541384425606728668837563542890364142616583851317723776984244411177682018114404381867972490039778180510597451371106454739422214298548650350881403901223939232198494710269095540288599917962251842820897406780165779765247724674367134658600514351047660353874007504531138048883003829282054273833335731920868830822503962186342630209412923087159735353453930415616622768667336907950941644080095072724811194299469563414014343660151039760869375096103664891599491838560754107463362028162822830451130349241609527922675162767842934752254443692229863205315063364578051112517177907418291690128271154350228837808607440904945460015998068333869410286457543090983716574490274475637026058715784058657783098607210679797755112505861685581833931573239169029970204387374138696425564946233600064283113817705737077446189867088305183664972334003197830764941440965113527819630741559209068982636327215559567520893976219434612837106611901125135425775437601258505490832122146860661417191866688328550986635178388676533719117975595364158949573650911503056803003068116357653504718433827653665743894945221049880086366611241616381153638946484299794203960930516739060971863614387645853539525675105109466192527050553947749878721575596336990870362163971669219644514369346231192922040688584307721983019100760654569528245914628547478111011948618748948424836234034650710014854002934507723845345046030441932494849062727412632871326450971219873844846469170313931944572611415776820846991452395561103775458476903804100110636073307208746502224285224457826755253056865925521732935568956460669991371473535846583707222892861574116250092035355015958782935490155079299643965664474209662100492895656419470833920026711296693733681850613734957447517177404869247360602948866968364396521138117284762823925332390155706629827915667329208364351975013070645100803658093747780814892719507888478295041420603484321300747678518989615311127876816158793316794379388733610991960213165406070361517533067381010084015572181432676818217529768204990703326587744346749604651748730830591230745221958748339244908578409713819815728098507493051737138791109385788436798297912029651968102727262488486142781541846144427265973387041937491784352163201155949659523719857341510744705117682715755118807888983995672279844383488172465774821263881569430344430366010391564947007940978056035184042954752840702210661556726310876538516181627036912249069777555820706873490224015147784922014937990973004067610449647537589767608109934957002523217237419030796536412806626035793393396803492759816905418457633421183664022941800624517240329511653881667291953696461837661282498046571301727602412325589050055314400008884021437460965587645367581092520408428894569489653100411277253921210121416021140391552231616780178403303979719019910235237738856389498922897815234396699467163351172733372263350726234772619077391017921381133174751062738697959824479110334434171522786598420114708708740348709756939101292265221047341159240834349585268041662586732548288056304928347106887410192745286005764798346238698407286302170980701513502162703536122996985877242014428978608151430796939181133315807061186161267819068321039903184338705696733572629237385333540453417489126024528656119044392548869420217799177365861532023365490901503175007017761689692599687229044450999021385935577813806069339839408938075204798604350316884200494127600350520594703162203797777302983446280349736438380693992604720444108415336901750006780173461985229473375888175529889909525556148175647327745429618329246637550652406492438424129589291738490539014345491343811370697495105907938698605663486197466687170316227035158926464899094951746701155254906131291210521835552694165151861567211916073481311810178488372941111916856255702654703743182689414067095592823366232837756562628309968215150613207415510929810284853446391423522909269324718306511650486487528490677051507419011320836399080113359099893369555747202148829123802726215084561994700283780302494542322714044406477212241431949179523138770266532252797728068510433891514352547632005351487770707635725693387747752585254437410515282893423319675081007739334315967089598323742671745206354551123921839970813263737916118769478354516299797288464380159030452022455165130373479951441532346974262672987394423300972750775761129978716428716102479660029674065321743270517333650642821745769087922516161689880203767004615181195128427470382941958182278220790185929121778409781060257175976817802789257592170141251813443472021469368055788580914078951482292843188610424758283822513507897504663016914736142836015924972849074809588473015933883453409732389937368715065252417485243232844595660289625495617750372264370926927857835280147440505624904069069844560973474754769194259113846019230117862622685880786023156594679725940471347604213264151244900850711740477872328526806367803810961209412490161758220738685447850747019669164077563644560463910843475617582360814765242452352637042156036156794751666766895355063278928378238805759348224354260181247043190812915184699866916364384105501186581976140771439676946770773353838264691235453285587710625679917498765016506249648195632177675754088424627966828945389633824201631917909729593427850967058551934799258787476303857478774312786295003334735312605781672235908323280911106213558067615020658813723721151460516325131770860523868059116742416094202845026989036000682887780208901414762867982020136702915414956704897700426938483482795451167531290025488683187518292945547393594097065223330880082250145871505135019615685773486783161663874892743476347310193232919849704221588036583876488916269467984924690504101474552093467004952446635032584713492041975204112655415077061099644606285938561266021118433537423068124561511931558886372877584646737701552604021787933101518179006176497259801762495655672268632066663194560987214064890864944492429861240640099683905042574149434294997965406951446609994988138872623398609991322848852847910996146385832656885330170897286874338869174382366383111526371896590229430428863571193104530800411222250998878443681959124110109075894396466770969317586717397869551133686560575951971643282279025970808021094993789312759086215761766006775426340720764281239243493616975803047164179250819524526997579476735772547711485316658780578024301586203445497485958703989133980684688079066376371702873428938046781075855302266325934256905603963374539411911017141494612487840796557340490039771439458510282115043621044669745549223988178339126747613738287444353623866930537652175045923832602698051070802773158895515258076133290491244661007662073000921374665663128626508635486170786577980401628287012290674305555689754499604911235964285404841269681208227876113143160064612550282734627409190384837527289488352982090003673782746736741505289989698785413191891197139845445633690520472733761354969553877529419542330667337039441217796208388424499265044927265605529722139526582520600006081761840711032099729867932790148006652753724488371614322770268337830039281272402325610878532464515613557489490925797137109245797856509694708678178675842990652917813223946881567818302806303965322714643673508357956417672581792737757426575477118495626589613347530032523509070476902768980853495860626902908315856814428395487920832674284892839414532942307783167735917701688326881287850511951594650097418988488445088811673573281955026880282270449725576956730307832257447178994499534357760688764184059740541555975079711760170113670468112553749147729789403119608693174936518368603166939247798575576359312368306150740304594221089455524552907428534888399034425847047728849631741351096989152847069525717915823323968762409841087494684817878221122383121076589631202269388831222725001292560872947085114336595302237008638654227296770142225762226694154257162526711438758061238178999705958756096627096906802862408793580398738347402123847870942758905565519173341626142197284624135134735137376841272833327784313536796066154844727968162627577893504568438125492181469099094854411545279898658328706481544945295842151712542601748408717165846615120697235136955352058036690497747031813685587773477977231795482845323770065680963344545798306937110777964091931810696915442308149611950374810336568739812051705871907384895506474810681981568785980465366969306358880713087477517087116968042503990294083619454195420670394335412858708131865675879092137781632917171730502013728045577547063641706744403781346087825431148919919045528493986502990390480969143293803511707370454909363110577194178287519021972650445002463859610597154550430960518359208117148814705557981914239857679343576420097246314124067360626692369279309645240242463370025894423915877364120562477053667948874776451211035124799830693901075484455196897910162117867631183526751185744422897586837461669672414809345894784716624039837846953571599738278418221568425362922093194904230851097522674222452275975016895342607938768491203672700861970561743078626705361242405393364392134328414690398628204536355221173081380811297086282182076306174810994481899398050183435947048987254191356566735277125295637882664733822968700319156081488835051938004394891369626773152858125196651427660829904791931090809053833386391138311392214951984901983465915837258727589259501368647781713800930704431744909112897398556461640485099789369021900267468871713280283560880394358216735094111969099263543900484904469549870030546425417837827870808543706812148886352413464759278992416483188493401536376207946644585798777700396433294022361011356880746609930595108768448833141240541857629817449963927755342253494192126520156896743517539629605114663665532941296332649785739362965967626695756982882079797045762536682022254034168830613302254767845228273592010541555679163066895013743817045136499768054600189281477233404918817229017713112561799010713469392851465866231843346411490931781013774222154570441488142388317609967202675694975648986427628507245160680661443118275824492466794221555612380871348406945762340411564022250718336580207408930325690800813326883890541726222880916089962551487216154848674557518477001522616769025791093052834401080239048855777791563451545389786037979301621616860071753225383894321985523932341688292009947813726474814869851137777646088748603424959567965845599239145443270408204752962814287153164232306174338084869596339868395772698839406612857532774843106449028254121821002407118616905473847280961250541602915911269344180876800888619361981167071197650450968525684237971604535234623327518724253725718079541671681696912426193899603919270410357595389638999628963270718451616375335446338494393527543899556178564590864491104726371105106766892168844232741394679321665888621076512057409409676858803498792922935031749886789622251543247459156001158950809288165266858791815767700652401923462583729617387621272770403166729025402155306749969671937354547261719499358274700599170177969932510866229828156989087936072615415467294916783956040922616582402492711872826858302373606932163779423040929519305413831624182562543744044162777058082271597314800724025031555305864303440880714321924693102873273542216186638705932722745463648250327745907272713460869970227168509827964887673833459416574734711398612428293359142315486734317032488605402573166943432166377780837647388255685018284414881113023876140076967101969738666873092797273584760269424108913254275720590951335918738362156199067300757392280561227885432727247128610640487848814512053492600444408645239648189477606834730831245290550294294827149358805604691357900996736270450811392860298637862077860480280877204856713605796804712842249256240907297342753732130809032295639429782182319927757882432115310941871313379161945992371142456964805599149260157772001931859221713688513290773524620404518436924839240297286658542360312050729410608340555372333530080960803756679048983406582502946652779159265333911914091364518770587058662354240298066745067215715222048905336346001113473239815527748179937989346607367260927332847909474248397383124082098263796944777727503044455769621807161600525174711258252081479033462054038287483172443754021436347470278017339559926462514374385964604520758044561636186587136324937426368621230583362580924796336596799484289068254369225751782292488924819550270037390082214087843638500678193962499493089459239379556222305242160411627442757843454214410678058103831212996613776475544035201979358308373214426110683275249344650130696797137011056701927790653705031841811145582997390110024414483909775328126291311751687666052330623875747761169772988419232186579404209228508106652547183184032238243471085555583094169865675353480512021496457544580315573865456718201632418696731295729479418518831454431521487334282939520682830590208051590213180815467571417791520613393199513351205012164509251220121140771581001285459907604438325446310440374926526112337055079858779674390982852745223201211248123707310491247417627491391203887604159645598446431749461410960966602422463453308635520068251184399505127570026596765465991601767927762508420139789697125090674351534570994687268946159841314167646717129491510854270072680333165145998129858724461340827947684341902491225925463248349515684258106816173684361756267239794471757504747757535835956558336443994590039333468628845806265617979606868377517534033401084622945334812838430836548181591193844812418917194583819599057463379780332050643045332299592254686297357838457517596147887471908024929158340416848802406686748269504828515305339322428134581270409989979423620717380830765359803164655063052661066792664780013187017147049803104771396361619192227689769820980210740339879612010121308123469691078122133330501333587271208812028836401148792941278725008358213329168946677954960812558289960176467575849125613168244043454580378624975629228311798987568131159800027097211743540999653177431641061109098592506932761473664635212709968705624152933199640388625806738870085128241817401984265159599572084534783696691323099636080060421958770503934532008970033097276516275578295083074385874252952604832585637527798505191018888646381492208799930191067064623898080511737856071281777838882949082920882850193634204680783659696249126012736441047503459682703421263709553311394159713958035933689533968012162602624771193558641462083921594696075655768201184641735084841986524913082817500796779972372711386866791101041730412672000057510189180166669477834343657800246106175424866771895015773108888858624344244886259992570650237696803825826561852597635949860503378542756333267727391317550146557072109849790389181212793037437090408062729246953325964126258285292909262550012389664774300869096404969923916624407576312991076386074923836059915364705398560718071404780269891313229537911682145234473277760804909489577414971269880665180871062924780219114023010785151857166831438302461117780375738816766382465530042900279681091853042600418237116783065470377034131629290995741217887876592759147232112346462913425436158661516527357589674413402455584391964599246072729746301265471830753708017729588865046119547399359968374622175683004412707844516549865483582874421642610627114092601259226561329003081612010608463429254274779755009639310108591835608599973151451073684917198279255984795631165170474350909360759243060212013188576326982603513234330911754256523967139244967310943854802880041054987140846351626518881234538339992931398339029733266285781122794475269397709590312422357809085220639556330438774772892993649811559114250561629631713087613456329855335816270564386905955113747352252524455833489017244255853313882865737385956694025926899127954596795120306672776558686326670683124853474637496498969058644883489823071574430259788312859492464096914171815816880192335147381603692893129865040883285716289851427393313270406672883259877489401864960019343309177600643091142229966530662965603128611211209087985724957907632298619319529161736729566804607365322519085258381429175663264397715817384262177054928835799872842163837083449606569561056091387867657001247054392696976797301902066376897917328598674902325571252734108869463618564649396642198447428305508334575235174674373954110602411456782285083987743535745954942756778396933451819317218504773506723705952582983397467289839407666383819045547178389506631917827537066529801673111602118373148754754166262424111113225785175068175468716565259187046853347569279107512618825206316090668665387302006280570260721505224507188083147590034493080253081487171451021714591868420681982547175367698283656900699812233025880631965838341049336311870645786379130840840324970252328808575446049334751211065813068210743482837279677519178371328080096893700415639894809823840917372130173537620902503200834948217028943107244351399992686344744874278902649098078202767213248084562398713171529329082346051324975983820608715920246342940246774227926292159246862110853499884831895571226262434188601783657383275944482478989547606331104511022804255079152289274263585000524784073844754915925894700418227491468631778090651179290427039805028393876360906375874180149970414390023411478888215769033684906321991300805507771330568318449038948472835041559843637966945554154234373053949611416329239623613171832871311356495214373823810128769311051975617066767414322735661275148491852439822884225917144883902554850324418228916981634480899170177983896168947248115842763542504618433239045303099592502196585630921159695756927795262504626975352081756434846872256459670489151981969471499112356762752883974571291619097943117165409281219919643931377444958587362595168327576100973416013800235269636700082353111830409570867902380367806891484773813980846763482266384552090482716570425220912978408228128006905599347444285144042362139136596386791255220617211991089692631789315635332103266987811669496852259708435718164925156762905135760812215687662233310957536322091313667708593048051288812431369780858964319749129880177581140547668659062757330992633535208439721713979368212129788098546642007949610863941614792206955163638859921706720949940359867273575849645003089061956659228664028675971954909600655634676463782127376407969366332403414062225605582580107366680398824203293508929557251691134344298984804845511719003706754092865336161680359390301967209226604213641404927469143873639798963269081040654013327195947611330568247241748387542273122972042162331541128131903059482940040810348741239894981862257861355754682556150760633591084468795648231078815704006256824248704580720987597507761278825323954567705864928873614545197224776420142809152040883502983758940767477204029917378582126583040957654737232626734411873183567081662713139484678589132604556677397271651407532411705556089621620512674988952020095564902832031661145724249722064855199908174544576624631258184964718344671427219918049861515311742965128305263239733817353769274463620624967166984984271310600291766966433051080223490546330880520528494250709539001045492410812670515438864410700973644145002402996424469049683484578193467384160686082306004347754991413072306695500114917441181619220155899335843245443220111886517758296694435542908246602223577887719814255207628455135652690654759734877904485105064551050613494992806249323249591534188501390578311273194903007204639238743302395378223227787891840783915499317057124465869320097834224876063061993385494151168095790312350752915816891484742210947973438697621767728066807153646886196651738617856423348174494644474577239581879862828048996826027469508459781122486168713532334361131312902923244717690204326937528364458281414094507424638755094073550551127492056894316707965750661968696646258590658286539861850427887137214703900516003969983645856464117070758245357942416754851652038779297297362153116237457190267221971973270395748549040072711150535167988049689831476030790699159157892157013317478235838516868882879773876944322406064748911244107612615378658258059145987131437650526474128589311227653958261900905419534039226177378282516888885922474579922937696040933751155590975846335836587864189813106110277916237161034682320312457180442672390245464816142353310559281250338440856219510820888145505588068235617739132091248547465390467232589161604462323512134339288617228282585391316052906662621364880858613959525184242727238854349337633673225291304530306458118809165207401441650665686350892737960993583410630098311839906498185585113185351107854741018785984072387724777939728192821518587381455774973556350677957037683746148147572339540573294360384099716273967102050386078918927765407531438632542385832518379556426083903012631093028048629275416174817586688393732289845945483366575344324063805787607777887842333854040624131398786412593034975419079505995331709078940079520886081977951240070189970582795122810209124981617313959224339578972240628421456805777406511902767111422743692259473908883559040143646401464668865302947806333124546034189388170401204580424073185271152005045391893035422602189833659254703296410060536455520529367259230846463699613488641238949747675519373184169630652899063790976062237523374818906241804963112697313085650404986431946456448256698139977548245246770957907052399366797356405247312566886138972075916379996365186914999787049522012302040616151092003164579882964132672755679989518766736099739125018613718220893612441499157528762073140017504616404250927607632242986806539410506143834841786705881278319840715360248041610352542151546135201406099408424439311579802685279809875651670147683448111047739455756866398732475119502073420468953684130261933032241693510130535693786666419116273832853983422195669480074408972130476082282525675648317013205240394418821599860846291476262456571070942581212112569780507236003944943770833644184095374721821971578144255139830410054784010166471400676606392862773342679856111292205407144665935431795806109384925687383970054472892604702766304930525226427840820033950765530433912707304567196113152798615433118697407722091387803021748354538941855080980776293010612841794875325894400665621722773099035937420715460195214427912426279730578489959022548004956348101199971553023800431358584517068347842508361412489364259773097631200611615192758969458735955528942798923811678819176862108306075253682620063003140725972672682315634188152288610445431902399237733648967118132250955311141307096705061609098413114998571293970884479705178998509493373906744728325407836723749050655846153193310249282759232901746221615956658645487697956371429254410388471579257579211432780816543078775491212093353014880489481472987813880209449102703176113337811013113543610636747011544961330592381611381082782682791361174113080881980651249877190822966542771331517392602980129072558288858642485356076427636557491105158889017911950616703270120710717732010830585923911361490793891341198197918347673013331389526191329881464056962272449005881531405418958232741949463632159391206325223290670558535994239530710737828305740281756370436838356721887818746520054880596992097816762789004526045067836660562908047201983711968303764727687792064880821724096510075048763625458631678922729146889762439835854685942397558866396729488902361645130527592727581475204664863998184430898911749360477419294100211498269299671641075598614676615121973512887891592556758738294727110768151574710746656896066549613080998640386082299023933255040406220390886708605669708741728792555071303642512922258690688344538417569458092290868476900083584947410560510210695308601896908851013451771609097535354744872464781830831446580590834197337947949005164330907196810574178724797956423119980854701356356495203426648619109949255433562304886778770440414471510910762638947426308217675879743653057771655424218212949303216442950047783899204824680596039672004122570112695357039293335480533058583818299984245985252124123860600598746146893442840419893953090271992019718078139049120773679415460150846716686791760420817929564767761681371281388064587919948777020761600287992274625886028924251600322985443234915384756290007481522621858116949758597711375145493843783615484664184161189081901265165691480265823268256180934199456735198141661156728024384636584329175923030383648088025595549436058559028993674514369098567840276305501123157905174204007239911164259419534531594918999038531191856614030614008853616686621522929478385298379794563719825432642611713888112261369726247650529597568956616515605261534793397776455216548728580859982223617065807028521921376036501043516109359673189668969612468224745913038882463391257593365876254077948328096618765317087592624185981729224052368406780025016504057094100711916046097713522996025656753718063692934442791012382250605406240327375197298623853853358240051304048744660863688959555557177025590376950648075400532648355030611292179975505608624527475756687629655562671027831759646937999220137277082799926020218137792103231847371148188346923056016593018753404701612444839964555312753617561315686017431214962145852065963782207794463432518566580184055749840751660073419248689594725377981308272929764293960239029932324957320026736427529248592159805839359408121072670024918195915578849712408090597730373114333385815502769253623949613983866935786062942706469789538896228551774214854632126801544024316804112721246014562017676845784738286703106219628827358464309219592062782324023248577682475704119308642828506030439621901707317539527968509230028043215911211197414560517565812189029438605166872594831081282579383520478421057642311482030078707078820450371422260714763297901220405492363292731341119781342033034731929241626063073204234393578344790304342884945067284990065869368159134534503382989896449554760003651894956686051683541718801640146148418158552875498995751738849350938258592487954983907147815114252198926699763115254479010752222354590946173333710747604297072079989704094462699195139644473713814877814366163389017086231382305539776957844317534274615683038000404570333496838113707240385172048204560691490925411597919616386024901183342397099785841566175282458471093788172053880207614371912181755454942170509936090342434817645947773147790321234338235431955748680606791441786519043100909204939780702110153933744481492773415106948477028636622694760400625588401157580058389855339050289032221435385642398437884013401756557363612722040259645849827642352170925237402871912947578046753471653428569529727267457956651055087321337925923729069825469087693634961741634826587669176616185415207359812070518229254903412312391401575692880146587558108734668719023067131770909343082443197108337055179865451117232097140266443123476519968985576161069475049850578336847481671701239574766393814815002389546680166578222407586226982053038119804364552129493552038402910338379715559505663359807935119323131164043943359014033024079971610612163658674596192285987011243931973859964839802237993469055828432366850705422850397475930310940781910103255081732515848470395612677636784942486182161146893707858888504713679418099166332557563027410540196723395834604885202073832249180169455799097442442933553143278220967748659180235022655071663779622972377865226759034939732953841209383898702071032536420091204520557429595963497182529885728952145288630735018422481091869965763500560438953507406494273055178772397081018130650677529666485309605774218556085674625113086177986759185478230820288549485344066474084623534144563632580213999082920714292833471757485050935308908605771961669185478183841656670810320495861518649189370728558909609775141328142482978750202630516590722819626462684462219702260132727251091014501716631290549573806144114989953251834192071875470934328965709409342143877942164649949987247735451102296203191294293612300659597260109389645874638752011793454178590355126714187586930964567864725345673965194716954646055528343930873103574858765041069753374903381878749832071320991002977158955356740514870571257207556665951073999332734920836948727678073833815793984672436788814931392187001291065459888514911968792323843049960418640640029845486993510204475140078841181731165910124004008217685349973953371166239030267871077990114015388373613687518248461535448460922034040667266391069942282958040599008191244936061643948195657474362199536437693271401873343444752928743781021900463704104721119591845950258278634443513451212870062955712182450439554876529033820499643540577114193104666604783379559003993553053767990292514614213911463059661561164822696377293380744520827729788576432138593860935543293242797483794758275281409260092394247870987079568331385946722994953811387555195824430217791127975803987218149848456661863666376857079389648671343906707427715625119937339373605325931303296227588113911344289216759073847193890261031735640467354220261057930902985983619166516366273248816228075873036305310075087751360333862045693400640217944138804207597686680527288399960601264535598328415472958224496522284922383642161618252415892578562320625333027945820899967737579151293863092513330674746821666579648225039772776235363765548993479315392883623177186996373911528918412582693290334053586198043592248745525116865903422623459419058369873057699491423826763115189031995335213828437345217017213593624570881693835255880490858016468359802030405250457570179787369476320118858536539979754380782701858308914315863652572900857586442902604435162981851804662592703480945947722353279945559739633498337277430356144951660237197999852923531600305546649595516954651319801069172054202330946418863732969167226252066135597547722669678380579286215152887543263173676371244872891782110553208981585472714064003961175568131884110537917062481547786144537911922494079667866665192706315248441426544620771300857580473786733801285101220252043839714724907265949004176658826590849133292318929056204517731495210207744413887964818273865991873337523198037470781904910860687651773961422912544981118549890379507111159915340510232166684794470862145541128963899554026786596046857877576714976788016136515762828418291705651952476499584791483528732708074547930544307115428433346393832852061297129101903395771707186851866099833032853574047994863526482214436528560483558549958799589385061168725849866409690382691155547905200085957375052367255456138629562574384286960493230503798343471393751953272383646949236491670014322928651066777666202019674963755271067647278875332709831807598663322246654272648393523097673337510445264146560857240039694818557425390230815598633049710431979638464365633846043171553350798349868176583856363217592027687030022581613587298779354625370784184372615718822035684065026464896685465796280612759474179499188331208387649759724435865629748035773158789716950783700271298551157706375479372605403874277448022123161473310162280039576997199263912936055898068918511547118148667060742870995784259051596615390663738578625058608175189414409784672591906352717745371155591059291238321114624945643980558512484787938735479171191234389493069894672540195783187744872668113430021843527918518912056582354914525646087291177304808872228729196300879246239385072960953249224213594322403687961241680862668240459345639891030776696624669819985546177478110492086315690240235304816218459682021332554304688674088834270144055775001562733855352105653493284679902053992520650501885936973370531966650351964650788287519731415671810656288813756638247836017720166342454510644261764122344529526727052631790688995477182510216162900925316146832425051879723005637609789678791617053506467103222916011373480297440044366628510235047734298718529561138289015996470338202673567392643809171697525767990710720181748778126304482557123932740875033202662802201565392530808632824684851248007498356965136549780310920788618609608858443292990373334225219508962005416487554132219722536717319012361228333258853423163127036166351934167139988081604330463127158387779577131273859162579569133023836838993095779454027203451740632526731767939930813345014741393367977764873007597849989137751740895503004000028206432288171832305341242521752003656806163124426414121343354259632340807462872580012018409634187743030790795035699463397192258915098514541800424932412856988469161900023664443132091260857551472412518444656459479977501223335041857247697524948874727230538356824966605849273179515342754043274516511589210190033182521948419034626111031972537561774274183120125735941899935843912344699842313764210562017809820473470498309947911455597734651342492802739412068176829987996603212194574989847702370279190258222582904402618947370047726088522222810691339355748133427492260445000551477311331578601989276407192404180962774254999710859935695780108621277725762004036952814579988615240833992949111706426376018534898807684338728891149326211755656716540721002439575155068403483843526533495196037023200262893260041190883664797390364393060619260421892443608001348640456865123125809740874951315228978951684529596188644009424630613919263748303028700032474772458691984967593091287733086260209194093946720332221883283773078772161874875510834476696739530661097259077370845768471183034754542278726009700034272059860641600218201408809351829482574652127829474474951682231178451705444862840156967532553150689003137601844412288775070221009546025168512519444434166147582314154108774025187396534896678482813194539437107210088012192633538928070134415320469390543511468586297126982807779231207182075077219370605316039493199377441276172427757012884315036908038799405214997592815677941367221720200447300343186562929058522649853218109501765293691894660295365137400895181002419177816386071312830516113288254176852690736732530740931716429039238032101724327835151109303783533994287427153408715942094707276163534718977268694110831032565745056730762742869261596864919893630464481165352063244423839098892080448600092675257330956718677339094551838954864692336282281010377394779036928993623618895137806353207381961395394619507920924872207994445786967983085956621720443492918225373410880995923067664650118232522123826581691275927328968242860639704946997263424503069337769239096120261472302629007520424669592653363319491509755663017466845155002191470468227584478237355883042415633476973438982318862377492532378442302273131674034652387716688688933412277658588429821062109693776370262906358951063726931833827606536143609933505478701411493770941993641913664424105272642600560486387662557375077526915259388438855409559290184604647983252410361651040761331689362699101265013887090488954524525500165034792127783326499126216669241865016344111000945885761505619624059803837040275365963931273264328521277209932584599701887451232997606273146456046008880884571014791795734307211476509781867385267860275416865887672191701150244907390346546593654096453376076735626347943953023410144136520307599122883504797111146338127036533040235731782241780118541299701298617869432022943309597190799499639214979730043127904199272137661835601906700659672683164815302628450070611996816783855966145114852220999873748850879798502832499787348431782033492677090051070344523389476368578086849557676531954602955276221318745446963341988905339515430251244639803004967544368558505031272070619786540112699157187241124160566714984348362107099368089598565257515949426893715027891905684223833076105045771237686662635094437776157944603025861361414437556308141941893781704112378237845796045491187650084816272049553347793532663252247610339486795045752760829520704409746435765672000049419836982925232242704331668649478223106970524927712539124169686061288747183579037423435205041062671549306432181399790395868500407665689587640089631462351377483338263360146309927682223072659100724180517473545224710020045058551843132787058154138080594435810567722625272923179640181350287770783241563554164753357696960851839627162950000559547627569273254888078088721360114524135404382771948894228052722836100426720347996425593996220376986351724709080610042472879681592208185300963320290266730708137552877112508600774519911935506436462369631635498613427028922537508472141304871222340149507433206223169193412643534952606745129730907529940390206222114797791515839041758657957062313451114851247943022387874363898076836493687446426299442079829592860444218799805470176245273467167069143368636015963224798656719482814233902716201957072837788714366501662641541026982772910434388814329723739278531847323263488310215233970740305735547855941929357279417842402187662901070687088056642085545808561192668804100876763318067006441566256317469131605670734049349190895985409490475453092078367163036921785495089554132766509873474785623332192263474608277685256785760456262617072848285974224027916847756916967891922766674127256360843866992551167453086383041900458688285223692182033495253464829316685223172835158384459602098050997211548586453716356108700608018116489976138082821452860393999724119130868451290580534276193938376194267536425717494221889497877130345533944866100876573219340743276032108026407939958510647013871601764878249405236941702859746785342106341219131021694952629205964891297976621345481381945864719269825259819390363474987461687901399860103238133393075097354448251436359665491492181897752354655430753144409885226561241572436934868082919488839825649319744294416836302373887456964648390501408295142870034390311575459715349749998809911251852823543042150069160049726819331168480729971853317299639569430823084900371403444753002261764277854923118244927024871400981352941180431098887831269152806707451771803249654770309887278143876197771856228621388945189160312857864279792809459534487412405746397246467268906413588440235279942691857199363232962710063721243259664229403838921266439283664513368671907536995565297769433325382504561031752440985661836953608257245525578187309432791494042922884478570882941668795152736918329351916657727199989191247659059599038136498673579864383828936158779268178518387099036889402050298809013117180573235787677222034767107535756651901691402151803362835770839581062735810489197426453848923184422625406696062535453450596365176640184323482767118823604743375037235317789742853263652731302735542035443584067335480091123635389059089973080299407766906364466223708452781935001795867681462352819515266244236759461279210424000620157630926339656322033642351830497973514115063430653510988854404390971846677389827265276270901080132284868299610289073592637948932765259286165791072584960582374992341220274607908344529606484767096765473783147629384582443269560116417529967676840863899396143626876426410568584171403663837630141997229846046130157157346834421871610957910401127567792547959912381975664536646467648623092769948797914544009646611706802291104575423298825810850973590738336475468836232398516021573126126226614016276427047957687045506566735220910610679122898335704318162287544593715785596047509488391472986482151597417497378970254631865479548614835257103890940346781364238745477078586814705765488069766517510955010146337090613333583539224779244792550382470571056406687538779067823417055840765845715623656695941612085799684066330021953970924420647563990318535058290996190312392769406584500720101902611049457652672108461504247586557804309903584740604978591813558578460034803692917948750067331738588204025349574102869097865759903478047437554954835905471679905228256341722900804337107308704258051121904767310130758127939478856581134535781218207814286377002413987424365629867949846032968744265354382744579098218086379244234077859391665263238062804853471881882539443944158524984738935877475250702205464790998196463402882069249158638555405463924151361208049386121905828145108710353201735342911022960039601594242333083606063102904017240196977060582878818894347582385942099667221406354962882095634087616682834892462808241486186733162595416757020995549465765097106020857318765364268312192210777049181593746506323777676856370990802690265779752452910996256218295130635782457159154608863381129186313724633160059402024006178663844860655176135317174827365983217873414881437894473222286392105525634363354911906686249548078753393094096937974290632238244043465104481702020638521156753582954625995735213613312352201873243122528901486788216359893722509207317308216195140338760519040908328717199199530538924588102478465772592500169688801905958431659905139143957345294298500963048684427535002665902522640397544438301484666547387402592985313265430842405608155836746531000705264787289690223170025356934437151585424932776927405149373146849558135088465650018728403798230670181942204537724940825104731304796814857512020980556962525464890639163011041237122601852149662364226479909981605493754903067774775489209386668670917938937360711732206908197751365548735269509492175335972850488762599652235635122674997595733653347327335635381838665174540593613908301812724686727804594562075820665125370243782608409683273070684704352104944292456448218141209202171929901811970503941102329758766784175144503323293786237422341878959722825998189617932079229442613907949048138954551101220483956597712555614978248035388838285557386328741395720553118915066501554477110887846141198344283158259266610141529151960113275446395450839125380777941199567715472473012901011646528643602378469925858382732871124737076431837585623887103387547357942777501369549054463089762876495962271256473918348943825250359391965649787103723403367994902557853517815552705683172837574228952958732631037178344996663861583891192685946502291688506972141419502799684617945898425632101312464372236626991863040996276810171775050352551990263413930385062465435469490640802106979010131472230161960618991016333977626909897924556316076278394942272904981766688609688736362319779835026339101875248880044507321885548103058617713973812319886995148234586116569256666903937236816254119432558474936158955830431494586984318218033125973992344694536249819067489772312935053439633794317425978642554993211254914891836851321340601817961833751852819025929978421074817903384071125665053427114000354569374601497030795597185125431933917621103742990763851122628782162893930489564470354171352038816603437764530887462820573462236470932424533392278091285648818555467237559192226621250395662516025712089157100674659187623224653224672946820808658796574037862643103694937127099477988098213685298939599941545310397441124469210085399887109983280602709390055022955850181954442833401813707066849486843933558478109005141277703327740574644937326861095037568663393617909442201469918098934532801974074759808094172340697745155824584944888027103930281000096848042710398115130863596405623582493493023835100882599412179096557687297432488541880419235731798574527593924705677296623031291313467697689189145825078297463758683664265512034898026268747294774775308583226115274493693535849328304964766829301079801109202023589849007964618692970892325428748520678798451181713369774444247511130614074991039285162997122686449824569002037920222541357000362165780427429666827043995411943443934183939780148100993050214337760787633463349616623855573566216320125805679756293523369768768585998848649082576033388321130372125345803947748137439097685191995033309031362214168560339537175193771660247803374920116420452317727973877314420250790722748594519108246653075212028370051457400426159864826636359854134617102002479032158291439513249233041501431444275131349630322825560518526840666310047030604668051309111205432900446931673017238995153493262170794591117210298212261148814986954250103391519097930224554635997424109343089398246420673479798131682178050432750432424986735482664660700449859834953754943157357252039746522683703962247513289345149652791579303993951487111905638505786501897277819143439763721802694632840997737550557122136336941848879943375195086986575407772744746319561738971198248910310432720452544383120269537806214653880391300612788173682882007365796294758364863636210425520432934212257534164931178906515625487334612000156555597108898640389066058904326803428033192784086666515884958062807274527096883068948991347820025648787018705576852831937648029571711016006341715722677996928702601191690715325436641263726757794487178195932691718639210998483325440239269893951654463298309400950926269270644828181514614868492438100949259244472080637158379766575499328995768687565796890466795665716208075831614223013542451057378035776237218939630694041057240573256209965154827273366171865225388367809140535384496873065806722712833986433461687905276391514221311154532055292365092926280611780857247791841006709748903131865183101566082663346822555100577587882286299992783203393479700004063238710798389423941423306647648842211011766591316911065564442527171237814185450664769450087630526911189499895074596206128723695739311610807207777656185105642127898498515956227171227947726963763152764552993261004956650378041528568317005998482879347449537823862078692277930398735450004014100079931926495826481933936857368955307922372493960941580580742213979273995382123672601887605177170556428451110146219523024655185865021656535284517298509260433760536185012230665999392929600495351472004631839740732897245865330208735780377242755209647726707919306695475565732588472434028080518247259030480417015764421161214580709087472398174956434197492285536375832179502799179120115811094856494170166281990828295447936781269104020500792611407311887331540514748670884785024560463275590694882288064614382710146910063704780666676943302022175597376218262276300176389481512363830735379708974223918821895828214576913177700887501210754571675219398321170421231233020136721095444104837481387275974849201124234168546230713956747434675343394365562054864437671034967349563258267177590138006940969950447628842377151566255143769404116820132706812160123010571385387753393989897118056491891384145345922018889310583766653010956636399124446356024561179987590980102021419588157200018725002822121076768593447020008615698964822894095434756861491698469407152364950680776917731683925037055538911644682989094741998555770014683438603132464456933990161340194438171965559076473649420726989013550435022604107630859146800883951144455312600647664728738763120523307077990518797225621280824522663686912239349936893059523746828373527474786911139152950368585098975162154541862581875399173867189807882469191653008318043321345317577501318473063166148865902732162732450102715497323430964274777122206692062221119720562025683963060525524177998882354736221695872254765191894529916661591067839912041236744453756278601937631952462802696770753627019106629715761264589634665326619480283244936122430247025523652177144046508735633067669625130186473354210955084514084872753105243065479619633326829982060564738921358070951815051288403465852292153732623864141711651050653954378896890122533005511728796848769381747780651922600294951835340740368801336758806113283406770470852816373363255339519024667362758625632461956399257790305591399128860523979309069277621452400777767842216732517425694105323451539562833577699701409890869336125077032829959389718292403068816792386853614286954206597407971302835831422498377708238047428230804554402093968225109561511392068568770992749809332184377378819046173337106233488989288698549227712912757696865077522765429031343079180682776465394175455208930106527699090887449297014252594993748386223322958434318317131671609064214737335731581524463139011563098439048573138336471393269028066497899073604688987582389272462995337441610003547088326280560032613431784940767539127671291404112979081076490233572258249737173130451920389141266383079728483292675013082823594325498789888564156439999453672662176373917549668186310648695314897133038236982802775928713961933541612239304641192905640310330792264484609919056345857820169015683409931206191379225368835087663663822339252740838121905397792508791733316481673538505168782803126358384775492752321385306081851239393509964730964930672756139765667870927192131617350086451141182525732454094492443393043805613100425422847297982070748403404480214209944372569341798624364914303092488332424204452850993555906175685676357680399703903448697990913768289563156817111065095752335676418604179691204272648951576420952093119295369765695730404101816239195659712256115102611210128627468596609552104770621013877337939179764279139243282420540808691095286110864564753488748566282738952977109531628525881171609685306592457552247840459017812249577059099894920698425682807184593298838497144406068457819459670446862035965710614453445225402252653770164085083446697603803069424728605800904793295278271892508083418083150665078391086390449493776377904345046203233158835416590844441237000599054534052615683097708814765659721437075338947452203181154431169894746798615712145684778794068227236501644480460239799669424127458119367012707909340169260681088960366966692752542728461595975609158647610200379127520435512123502468456587738469109412432062097688133815088962458890224592894306180026469943034849480792118190143305494875248100430857429019601002432924747721502475771381199866563189326519824675605011628265006109558561035520088321780143045291486366836943246257524156138256968712037873089174316515831486665221912025243026804343044047766341285065384443570542442859411349155052414537661067397673915574010869885410660555495973484355440826808884588381769365459012058219067400581758078944856283666747499272490537214804152792236252185372600386295734866403226267217046963500680906511309524448180646026735336414126909472378852236551487425069839367801872976327894627961615293654681828120512893770571601460609208382512566914629949778246821649354944480984373116433746797449236134809431008627415234078851525016714615758044856956277763135168303183531763692350238273281957793826231586309866903011452739929190402398398828766943157645386605538759954704015868967138834050393124777644776034093892655547996356174189650752424458407081158156873223798881765104622081787835107500816662797147906630098920070182858499765766956840083309806343843509296380448532919241012733359495929452655114198545675646876748846474110158322134171273113230037423000642040443832254125009704297916651082436247386519876658618749414106576589223979929403859660046021443082184644876242329324543689369839664208344245385283151359494065372814598114608551755507669738139293046042243621035192746735334683296496353716891102203361895078060526169169056471631603037351754286229569743781679844472913603387029328996118188185527659725039833961525725011888539080693873636710554650083077333046193481591482358868054339989467875297569643530592334926447871043098638228436359781995674440015809100076485804154598391720309424701908882449294921027145991213153892455567114890678584350782377083374194730663997364122655378631847579494037245124236716762325271698258226790255587641200377095920764346708175218994509477933687851104045614985689903599291086722477344989587344933303225690577706231791415913713989372752004582511888482573908179605265246137810845472041101773798678083651765520714622149646597578795137234355725996214944686819474156033269946228636047144367737336252280932511806914177649608658203233105913032049768735142940143096421487899211055287015172964622651195880170980443389242068692180025658720935853937394808234014839655656334109591897382616436024701494446446131438667508174702524827342156017224859819947996030187290519346268384012403876336253794319484493264745970534585294824038890271537228873592435288165816352701162028991400572273083948760608626368606883949846408803924914996668400693444266117432846916565553657143944493068976353235290693000885002222290010367675595192948761569851194129177779805737849812591873196310666940088944497402998067610787658283686693227734396603315923301510718578121665688904260972236445730679572139821770404095353816900849921430348244983104992397995111337637781792129911866555521558180188423255458819519358926434891918909528385913879502235769121480876151321656302726155041962644054980639187597019038588687120988038753598619317902585451424206042452003752146704261241361968292310098041185102474662283523793473260285286356326536027143227807427412597179716573330757905042796310126791220746092102582562851939987182732523202721057536799478099373853479986413450456736859924790863341750641164653854052714783240820743985557991436187799111513251726620955851059285784629812687075064165917124397051249787614093330968891925639604561774557270926593945891411709007442942312490693764747711356253189909457392640354641972156306525669370632816815361069651824255292868102799221195805457465730092611136542796821499447777854515762969440550683432869512501457793078518231984037136023667899437147640460187255358147626573911544566387095907325326095654300392044194136094790779550855815870546413570998129362535109933338359009930012486541338362059045548158761912970437517084751051296416411383292427390287954191961087290006365965970028352653664639526421151817089668169701668807541837472527177397268848865247928038951746907763036508626546981846386909106531149229367165842818562987363470832087170689082060040848253257205317521964483333809974455147595927121463076236473881033128008959398962728797628862778681992394217904358891863422064155238050651692976864316349185617309109432904232754638680813737191448042101533393216238370657632136751466468587908211866681731599520740710589595077932001446377437497145604841994311175960076027499898563493105617995983487705537592858177629049091110621377546746500724410657386205859721969173591265625070596963120048441833692889268568807315444392133147095079862450898307283109825990911005230009147907327629173302686945558455769492662815738596019579050803152742190306064024143665289479329872651890802470241051373763868297549567665084214187415347336083046175956311820344049936864082996282574523026862850042014034223194708308570057275270411741819403707830687198498359325498072563351709619396768485799476678974860666649916235527135799286671663006523952740897035013049153860434484490948469286047027998948085546379381356772326504310279363303343876389839044572428541276991578836289891669491392715776916866760485250681782841457214655373617521206383123184908528683546136185255990464295428062460357873088114145570980777895053089760156306772164807629417888672752700405669024840204249267804203221786088200364823422700062312570570088106144205995156041631960586193744965120398017567886021328536497633347049158833526905565228737775842166229313063084355711059311076144552797622431515587400356533889181820588386013064290311585695525973454889598883320483724235524311425723449886995593079570969113109428435648542555546295891976836405826248217041213206169057257336898575806322791360342531826722273017857501360416860537190166904583397703305140480156069157110738610378301459844999948375660054374781472225171263350739113166348875066528351470178529670714269201095172078714939110915718362253949737607880901115021119305020716012917520100447682170172541278585055732898100898879740671521052554956851239564757991134356122656974137714668844665538357549750097568875060910143589509200417693343018175960877432740688521746983492794036957399209157967586303421312196144662568662208055777427957017889802104573169462091830145741364996219763031621101511197441518996285955707942641283818449071806537243345694006257789656491394746517307504007167881107762849973050328931910018824698741721821542017316317623083337285010040073342737301102582792469625396052818364593559278223760118290194456649860492133761779066281991136357322212060087685073799296038765739065437252265904486015585613369732123394557604625061583154929399857610636143411067315044898569451113060214992908848211470723625331823567953246911372069328451501660306175130900351713146663646489722907963181557643312227830025586392621958502481972588233503344609673273141780229225880200668338015133760609801493905806845739375587461109301297383822287538664779466325119379682760430109665225625720139526986604814397330149739806194416016972598842636058331451574206026682919575070842545973972664433604945934760516080652762849125680420163550573845785178539409578651629435468101261568799375249747104817926992446009039820510285334122241690814175466699440314829285351560255871180373923916735679470394309615549831382309265374648262671055525982539584917654061202130960979990979370883052175377346245489732740661518199192893968229508458384274304486071426047181081293690593008049530810243652529830778875921882697566219126316226494507380421233642007871951088307265967687295993820135635513633732870296068535171107116288281969582950142883385371295779724095920353354797468624662911585847884235022803750822293488393639909214172319542415788895491639991482729026463177043561680944081551440826311795271190667904292547965879244055213748082064033333170831816423707758764200101897334202725539409604387172259123139436423509353157354192572199667819607608533613353259509108777033048153148746250393758951652198911066955977711992498499864221628420034887279241677510424858334698235717577513273142827044540988708094932903299698976058636583590358928860975685449120334798096999383017922169804132054303684812625600415490975424774482526291639361479578016255855598907231943534385727937537271451752981415267322639038946677756085002215223635646435145707093774737616858887195463930407744689579292188079030558576294149477337307910693974903174052829814998720444712129974133286976977192419747620867107111240044441610054062214430378542174095393571463673747086679469766134312697168608377459961051397552151845289697856248758225335714856653949079542748856735693939000317877481165697948154613307873122975931523512683051487892922934159634588906538914201459929281103926809005284412198541553629773544467671120618046127203009452679660892193087823442777774918347485276498506367265559347572936078296584493514020795860306665718058116382450532458704866671616332977367107298913990961995305929976766955323539637098166218704068128446755894011142808237375314799369919042228132018579855196273468449165943800414199715689736070231050919442005104312949555923253785173276122025867393752762899410760617686957862831088177432078178314011995565663947098578382418497075350558036989956738407998609956096006299383252055180574780372344045495586251445786369575960874981150981322858384527534012881782805892393019061527728201509756492852935950863610904300897947619907870667907906658659790419120067846781689467519467806579285129988398181443033491928535049968568098962535266823010094130177939287857739891902974144235378025027561703278439034954456661932197533545272889731629128610071346865768144192942033771466450880334830115389294771773818349852726103293366961000314661719407766149496292383034860711166271021823033041336171172642537148028405803659826239990329471714651949298678777307882142272290092113695807850717353540395370844871304390240162422090088753308306362832300208347798556600129335841025542207627250035653416859840469976308403718586572749105423130081575719222771866414371322551818754939918037748545045530417686944640640131538387162270061818902790838521082286306954507608567208311462224865072395863401381080675899870788947996941042705129862586228235167374335024219601480986547400849491996949960756462460079822262766218411301039947216971158506046224271529176634941672519631096313681788581957405224850643977087190990945481551454848318918134571840973286901137580318319585707111466908987621911071243931513745776948773935209777406867833236483893357982009656748764042779128411762520326058563860006531824864873558339797737538226208996476203854966013633430934944410926126468731404818787264014217378573605891890712179217800930904952197857505129338439694945945907312063106011678557772966302380818134058803458313171565303794661630233189003886394649140654374144524420571661411303854761497149880454931005040289979993039398759543346383323480985093345664101644601470266342011387368635386952876962559352471982571123327567112795637440183112858471682106609347651922986173273138182374206566849685119646405859007929981324753359874301999759368561533921409549637564982683874097108875247266755784928187868048523094821488221181342193114332784219982382610991231492537847355432417226745412251354720573195973312374181573743669068429264826507205288938535270207459468127953863269583794327190363405592394163877527352789296488437771551876469583867593509133306733065450259996864303155867939571788193648095867670552549554490232111521842728262634640559289285761478260380918865127026656105131192533966406366078124046204399755265685341335623000394766241371624163674540599719842314883179965331213372649921738749244179935057776045146341518042077210673446950221610448230025742161455399477380998233979883870263520500604402048189502960854544887715633850246458719364372804519922535267962984262615291116162127177460849501248267987995086953621380534598996563237440224796304072884333310256618997555020614040081660033113518232183597672697600486918008036650967755135480182895473556940238818380096575569398119364990381472704615583855004271119618240044841977937886144448372661655981416074285403108319808709503380842124329263349281336870880714961678205551649001380881326466229292775529277587640597626961827483220516772395098949813649398390673182662086895555795565380741208011235510348683371311082741897598068925429871188020475114082986427603497980702833805976880538048892463412507863430472428601566229801993190820181070604615155678321345868446329068439959338216434236840296688756563300360938973181408028784570821630372706355250120125628391585436971342515691041130780426696996657990686476251311806724554070519432494549125703244424083750737237917618850398891377992625496548881727389131900159502433922955051407488828485112762163642287831042218695576267706355217148940850237293225266927331033774012905471652892841963907729857835537827619340062978403766268720027925944637073670080497498319959441731755553159452101973284167005678658391989306301416206794505331038086363053720830510680887344358469291964501952910557188225633051244915392407407791755817251683995700068069236377885544311902787431166853130000086489821396832730097438036409510159079595870379662769722574386744296363800136597199073833378896166882840447401748567526312560425716685855420621361630037852301600451828868129451556904448511727484699340760916888448640520670555633486496198434243491982934971755172086592357863849958802583755996798461474165071412467094154973609631844481015257506130214149749307947844201296414659132026445793876102611029819109092865138839678512947912403125558409307942137282876350933467628937248290553199313884351265057501398892186240796813664238615660263945814749130858037831562564968595649901262633695375955369285116082261305439302171341959367909983052801353446047054287748350418089216158959077734531346237504790770431837546146187947439738507960423634690108174180157869229259584176375051408317724657943927851623296244550357101862379265215703338987365710690024679898176893124733840394833345368144404300718423761023960581771168318130156708128349717642870878726180483247880192606880621142646402043323671855881986886791863368223452305712995891518658515396067043131055279473823270985780077667795096757229924548642704620417365169317322412069031510541093033014987734296057407847738069115996313628392087165772162783269068926764363213549422178764990545129536632255282631042092179642971607698345733581282863922745551542611178836902191235554460935439815071596431670405887856745876326347117134706052161630292037300298415084123878510705097494281628890621386918215021068342781622693528669591612146418155352290892142015871914362077685815309950847355390677376765015180619374981812964031789464658537571126138162062189230072946527281988227722142389209062836569484364954470059655016716104113283527899329069536147882585986057234103359381021525219785184242317504644219437256042649255263831796140033848958843787201447773920410473925163845804145182100048760794006993267008605608106326299650594267943438186334183697688480722022935777476992603206351629441839811738205014234205570478508873330412857398912375062183844728161639750884852760701246075858976177257104707314545339474848436579124261347460709932821734401268930244883197933167368695130941292324628927713250631924065967721654230610820900275035781429735690026153670807581676942234261480024171398433799384667052194820967046498863120797146394426745431872074143164367230048820475627324367804254241007801297681346258261425222204735073255826366403562940380220993172153905102888444602720427136023198065339283525385390319031036954735450889415893688980156481926440927022937172505564209814743071494318566217067527790847968828908012866640812214596609646386874178257151433187941233825550996784409025668254017055808771145835038825793783741450685066134433024219572765363537301392267087285174901014969161176902093844388101662754111545580499984586149701751333593886192790237362815458211867789019543005433703696833758640044506536439737306762921961978256935725529626365889653218908963893995572534784984398979617401809584023597416144226085061524431119575471452293073423517954773080265092672148113243445982424696876123491031126337335088726668117186621868229066942923145739677970630392902694620659253699160766125556360664738868680325138670356397189137111956292661102041837489579082291053129881312419691536796594456064690986588619831701867570848777235803585300264591029952332756473114205595472363098306780589078900804674188659267961596657195984129736460948926991038997997617469495538202775142114438767916008915710239861845200194966164500972437936229764470158934624131314403660845451808846101297012348123585857116379879301874425232527553044297403591173233404451987666590733102166714336451353106671087387057213261831526453677242442601097725023027197940672310849240402560000558063983816820209479591215020177140192607765977444663145257614808113140644433470426440714612949581197378829974088224974544296814925525932975925771403651142694334648835090697739325056122508366606511559658132105654740013814993924693414464274508860679910016337119929802192939201771349193237498537329764285471228661885326109627172397794281468056163478230742087359393413520007231661197790297759386004619741164309147169125282286270252324633920531902607922907936098533957163611580462953133474616930185566254323703112725137937066263243886810047417429663072915235933285268444177963386692417079943024518950816031627702406443215147313002265660839620077102214235320657713275423582575579880273040912821204471036267924039448161004133878655413659127291378936659541736715473796069111395122154550086161889692939027447389687185251839965887778960861815346611475527265765519392374107872508566946430710046318596318644529844683645042802903372535131246208645522678269487509890501898237381346351452817149382247895660342680962952369907828989575538977641750953082382806626499607185933775560799799289177009314573203496540655156224751128650762110494665756736580620738474996860833549263824540576026934405038451602283927763139944467716380087061138560068401632626850836091393548608257680730039799703977336624377950156704191081376291725300079593715342608779438866019255013793419062469854018448795246542839452183341760456413075158514950739756564004138004260903776302017507555781216578861388099795141982248667294475975320990932501893031241444716875402966598860497357088004184927488259630749744465605050516077574087639041415773304504009640102647923130046237997612539134915401519002462649374532168937140995038288150354405536576670187822274755739063827591845449687082420118726680540366579987070810768113602548580145322045613773698160995755402740341094844152400766261315002934454264453464952509188978273120963494678005577260040529792411417362076803254028349055146261227701729034785230510394072900297728252969413249211681187064438807555675652040400880358508979493131459327707513792095670582089893299288092707005468445768433751966674641390160366058293096492157384314092815962260316136626561412252862134334540889304006127298116212588536909032868019093691310862999959156247257196433843024989299507036882874336883609345381210782062475410430788906288049393785267723485807857429538651164877443949005431084550192777792487476067075405076338258675587331959939584531435875796805222931342102431857851774494074555791262548757225487967681373834464114582850754912024563006754324210802310377575915093733368642321222041542045079855724691809060635925522089174637904605665829270495151233329408573931079800547069292598701011985725489101223176641304651258342899132436302147400054225261396700501172209933653527851632425090889051429312460500943272658972578594912375209398096053496550273219643984613702557690826909720768570793346512457093451941928446158744309511446469212785848124972712736120385086766887048791391483557922855760073162526678198088089210451423786324921267467637939146910596287937903044870580838695864410464831468738917333881663373642264683755275939945682825682681765795503952094391278497612951257282726467742038834795967934487012910977811327358194687464506758644969896149835054466946253603686773080669515344073800971175391524290523771468715933458586157118031033668190166000954806922732306985935657476742436894274421131836146297292235583885013581446181188901770140683941956593615047239389750380442515236700163361611068875204037027744753146594415534294447251985558382985526776712019216060541194428345423203477635957180805987474616259819532757887082981003200209585590347877284176699241032791145325459470957855227153949381671657207195122246716250529820737120199439462540706938634751666301487271092004743665572575466785601084266352277657836104090188023519435985013740261211824742819193724818173548270475295188969718692738014470766749089778450052590289146381187837015665729514326093539731851845185343680184807431269531870281702673936846631320050486506598957525607139037321978879278472915253563698000504396064594323489104961881575252595282744697835013200098977812897826903278885708134062997077005119499072142851498173139439097293625162910247201131760716576933815178500920614708054534234170788472334567850545683728670192252938095806813558679487650021004698817865035784197757206215966840391324228688575809578208901348552227310742675371421965157764375522423520985951771045158701373712448329128305257654784223487291839720757439718288776721988392231375867492438881691569172768481166261632472929558990534372064443957871813789252407843342044433765484782826816625857290728868022534219402362123676623763087116904946102584996844925440941423954289269918947756391788811475151564546271456100871745448465553692243865265146326279664216194027733912621298771224812556380643578920468927845225935371343540876194686003951774536229430503001210204924877374247313818610398191247872697496758922943870135095200007038683245682241901195893218167910909192023454528195999087099719605319613437252019218810872861078338917614832326795933187664521495271944072375058733588977754400408089705414060446189223114120885897904054639970989069511971333645013425008188845756620628496742103563619080202878101847785758150495141442735017186461971052709320500928044333394851679513139360606329313631284931027732157760463834867834821345917780913232923825703514312985730638950537952865856181800634747331655631891252740758121414508046283254314510618105726368899553336627649212539806516852251294018177135338815636819400614072806091326293783074681894353360574067361622462229698558526755559486384135976277723423936148562327359148042964552576239887319083746782730646514782823913980718573065456913646645081026105202218989223011045786514900290679490886979889382608082692116276206806402199241524609030402452552718143250574610692936884550940113740003207681031709881336771554554212459111631389759116164697750547425278303773203938255122140140494415681172588490254438528094752501641648700851411231241151627092906967515717817312486384650253757583039353008343123941975306490276070770948189965855786575242999621451343224293784010284066197593998877417344536828023688314126393140479097608433018048013665137932337586427636926177407281742234070661986810273269031871615849178980539346440334260109623649857121728927991363784977192716006405132050773244516960156057539122829483887119985571945481554764614816169726804238619454867356355685656664805666478984694661160840597521810975636834952671574250409532154327301915620926990826236434979241162632438403455633472649415353291036654021907709702727672390000182348079141613530450597196187600620614487032962185143732820546628927647649121078158048141569480585697397235104258535173144273634173351503707097225266586870990714080892506285742550020841312929792840470805169879176436363838294913923283471438359337346567708392394339913875929897160300902858575039640570306524819708461348726049726872891818032075375345610484450158094510899463496104492265626182792210750564378727348938676775703759690868576114229232529763020037798698567596360869918859822348888394029227036373165760359533122470080716130986565043010060455814473219208548963656697647960161572827113919824462935953450717418383498595584264852942751567212212380645589767758787005300320668437943126665056379609690369149426932240234104605931839051644360955952424136313780459933634476200419334610911420209681759794433046347719240412629169959717777915235546446448976918717069065045155248621827738636333709483860984210343270783473268581130860133992124247571797521843743326547074740006417398755323463547311917341446920398764094086180814565079318273269627517580318082876917941289545139710263041635936923698301145730850184008566399745090666743510614587604209856630480526629329930052731022564453886408818930857181379888464503402434078250494656412390993878097411127953673940711019934945004544332734049914735585999269866022288222991960762786174313666324677490079206156641573618203985873223715681542562848508724026921281545275116609113074227950615259147710169413431790349484018337266407862104068347351668943724786248835084217007027100664501495211065417969427927561362695432411363746588448946480976428918033488111895851307790473143906799487855376161139873965719124032605338804486244731697906695928207596414816662299206553078044024708386613898366828883726772044588974619019101017097275536731293371860108940365067513847055622432355135926815901526199758801461484221264825175550006796969257637923579740584862605833300297000307266387741106875073496488771681563463699067366246512888103937707722793989274394356687650818906539306043541363890531583106537826813000113271069352032515338035993331317661680537283567050349998267076862529719151873439431969787253502594173805845954204488362143847624395259793327557091197031170042596152124196078788379844378848008351846008523507015706750455738047830526277403546867656316738615660497735863991739140033819803094910629195387245921261845945688117430023078327779444396531126257862212973599706777308329234116590507236611804528066452482380642075470203421657864848436614924548163664314923891746533423674776982763286630441252463629537434299124817595307021895101583011090171012213681069281211708539311005586353232832836914473402577308154444043104304931879099167802559592443338915509188465970000841036269322365236090488715047326488154989281065122975364069067855731451699122177229831757996612521608282316682608988825837113365120270239895108578881377838720120546162402617761702408416421667319918843102178679675332378289434295506008210022032981092572871466708935970352799194146959738599265894345185206176393399439032467015528671318427769765383261639333977805389679493275746084009384188604732736751065173130644165772759901299488123566851126658687276317251580327586034295711668675272630965919323746406608697190174313460334024201095076755473826469876318893987011525687026982257637535339801355726552913286975328877828649598100537552013206262431351990469384761027530231061611695151857443005556806805023922824288481341657963879614060099536042517187157214725810905469172576362916138451523843159128274798507168708405843648949140211774034142966803086675160463684588639338633233040817814928787443245681885704871033061487063050171273045696959143192379330618292112224398442869888413366191802043751869182368068911632869857457786438021949305874804101449689434689302868746107573451298808951521213066703768205275597649156572764334084020786873384142963971323285875821143795081533448507214933118971831198913939768703275680582299668073841875968033484414870945461260415015089838009978895971229251536767757017042938515516672579055593497743427860685413395658478293982051087394664879944990898008412175668405241875357543981885364663805403764605476328626843704998650398782827062567634033767756761706366865306553037573893206623828777491849731736881685686218040116022424215741626258723952460300523409751701350347753150724698027189874076657018595643985826481156242006387186439532016217741041923942754832515575097370179792074785891473226967625858495239395289104789611657815382887472496723835727652037302453172073046272846602869924385334142226175178538990201716285247064784956949267143775727946658278804591931383500219679553420822984316664238390474715563685979252657550337839761143439513798028975311567432704453043432012295904254660894314704278264057830820909514888945221239157227584626374743134528767143683143375199635181905044281783140901166118253172013801446745589786995876742277358053260130789710550634966765618321290920716113748766663079775270188577988930857661266186696517569912479582643159477957805831586032204723083425018926501964726594864946041573390300453692183692082521656821016641844117822422762127159086255342188807264803004030074153183162682425081754197105225894838188081685201733483946401980422261479447907088634809500931628279073427406381783612780662105583957173615566656619808849891478887209617092166811751642093501875126606856569805288084608256466446433504777627879902462818916497037076698106441228440468148561716275226201789819036687161890837959298117907461735221755471626742894952662020874684166711739739983820998194352794695408838277908291520834010785305910232643126877613424453968665139670390335756803767978152367097654357561099436216696104619840591843775777743287147164774186088382836376009223111250023551992191216371848140509245247567197181239522524427366423724664240948136013436379088847610663300531289260512781607504675429811980960369636069252687210246022088325203525571733646750241901761511856857137095726123545087090637193034992084449546482522115749791072240082995505890050741150977575380654271866719270916312054776868231463371936293293965809640584757596526808033799567727510539002246565836036589592257949636109882731128879879502988322038228587731608483370375168836762212077667026213536049968339668402686028346950620850391544288871933603505141927513909681368221077957572138017348975117056472777814579655515053940124865780137281595317805857640592370168062384579089522570839690208848918723790414691756945203394133529342272963540249411106968894461356436199368578945594982146933928822045047303728380617439723190038346797725398276370945147211750404552447392304906269215134715776705294816581614833276004030238649129574861936807545361466220227469942640466327352652520614799737023724901573196727808044144458704307688729322288527613541197223823737918914176184632394492306981371581083034789944417095499240920402407852622091128379665264982992072084731158342166297342565865208040549222000664141180926176833813408111526852801767880767230188030185249625588631533632240878587775283628283149129867570452561431288901576384572821085954216467309660321288222039755590908637913820481918796433258815452632165275702811608875387118015187669616320421963957732135778602585384888606568787238986485932384287252556523783708275985037137382535871621434282217747201538659906445015919702632892966108426597653262686184511611887692777001033345086102905905147805331687937773449028288722496322035127320468467093377489927724115376587779945909931588593435340676032970359896650561583215208840961830159063059326851985134126478515874167398587917207101544842561632184038135681009872840495036041482322805401402570859076017376605873304663687394574749678418573655253745523589531135313925487101159718617165062737742855471062101615860531902828482587521989483262795173758853466984815636345967748708077831195094413230106059414439848453832514936966608977472894036075157893356696460290421730421615507252164775970142844248624928496685788155493820204439709802846006661618522983443074715525634706787620653056722024864345020199984276879315941685280580638145343236190561815549727905093534841164437166741580645793610420347070867293735670070514399953609244296892469759660312134231109657308727962853199815865152808930522877383328469580309611928379093135091518102499373330113197370741090017864699791534687483683157029498003278028485265662636676006029130843351137838053740209587972095492130847214617169975988492654432146460106274669303759900427269636222592638718357278281548105520064255922619592653691144451539391325278507571383679840524425972317887075759623930107454157819375071798730120647521596864027013528667065646726788474769705778983635874884394588258478165046030351533429801266081211754662492611739085272204174133381614062245053681299709279521829884475173593057959184125062222297224170328857790729699658135442644125297614615192178272429093037304535595970343664348543196825017051996615512446889979611328019654556817388587141454291874751699756050465657894387410006538482247897055691959052265854063504537001529637704194860031273008424700171804907682928545777628834142062735940790628457960080756133390199069480998388720075124485144232817214879944182505058915857511739758622821525651061365673352952007727228104610408629638506699595071832166736504215330351815093880956594060638718286981199025366999822644782490015550124662035090511531890178496915390165017924106645810862573459102704944723997758877122079232482489127768190979894351046981654439950337003272072652766595597317141880534188323862782965030150422169680085175047052258846223594397444590497529114161641704502275968334842872588841293811936952453236238824598324566407390691242338847263108037425248410412033939681236587341942994203855485112944216777554112487572414174927272187105822134969780882450842990439103251036238344417829091755070609855589422326244190649947766912025801706259640595389261278201045617957135790399815707379580262788192509727606792983952661587523700726152336210596414544618617786500720895173991906338874565243580065219943903126382589435253485083024061595509719682387128402307200856693798222715267097411835404880064474871468545416021585045443712869702275617698813178962527513494606976602021613763219700270881218479180175898982758880702941682327623826326403111300605106485125855450026374356214791569196360478071228131482256644664859425427950591121851630449927557366941977944664470501227015256043015342755147757336028909394994563981604244916917573249193475732036094629470509399303058655462315887383394643763612217856838156172217636689889570772313269422641420595510416622189298093614963723497823600578703754878311781523602628460223354978651709417806593881954888510736392016966690844108422865987582595576072160947202460376328559904053097942387332943316123453499919293756117560298932685165644460428870942480502034469984144718031708168564884562057325234008643000821821825989980203260267322576590374981657176561037121748775253203949623243262134295892585504842225778046859753290422515060757033784457723858654984554269342302811506331845820647957088970223631428672444810147364659126226683758351961352603300533433656331067935699903811462958662393482465400127187840604109726156910571285311439035548446611876852473174134839446173630651808114567523118039849985244866893098480225660005376189099583977063491450349495517004392327265128075916283973909941144795109517000120825982595992692254037595246079722828984519223811485768033531503314828483269789343524064200280765213163027655114907102662660246997977916534739469852240336738417476321357549686707021688837729053808077361392610179387351511863350056992441501154272368582040305045128576503457581034456086855944479233438179960157230768992068939463272977046718486078583669150299533393696706398424114542365568515016075947575936794837198879907926118483656274293366250447860721141380669684579588026667778125273323070133506831585976002202204785305521598670885686924336644189189022151725340988083012196124438712221472501805079612582903057388133848358328461003020289291191685235327884011605692100755051205013236305093566743849914713608399798986343238247439205896838648123035085447992684143251096221883005107279518410075226040316100235348295788627739682840506760877093223038010246121714526085141221047374545851417467470854832092085876856418809661742910122819668409159338955525845309939870160202331287408857884499230817938259318146625966436176842579663936042223756801191134116260190839133007633242735053918765882302780315371859514725958113559650193762991745381213402875958802809093836468550234796990168693178336398639240439683168005143220621856949121149184818421079349367886470561592026965128177598279583901614783192316051264203992036422134657767625768601279485864772383294351337519338520166620939629871251765606130177228221519537274524364755032341617642881782938658112065574211539294266441823261635462748826629864996854498436524506043628515287207312910410749893673039660179443339549661701643822979864846141987764581237465448855453895633036781691208704269586996964286479184332685628086750261550870915740836354230129692047804948859813944268495103399996627809782634769655191986174709844605333751390406815316972058660870333224371666108820402131635821663592537571619513376062508942285705619932432398835768006497100133251755119455765717895976184369995046116169418052416469065991940354384284659538617355228563407332943977096085181457856983843923188244578895825306847992047014824486442244807618909097352417032404655464961799437819989359798902795215815909708033294838440502563893912086988921227966951067844600884400183491974878598197342960416002761382733453900830484157036321805906933276723226017288404070627988606610902027060286270173635663217203507730887098047609770130704919846648766638267666656856568131811465730558396185410319400000944008371414207036132955738083202957076028020544826866714985343618217170696802024294722156941469536241245526232982655274503442789188617036748597263796650812628262419664273133791155960203360505933317445817931329080415466449435105780648168664757565979180319447574892611169759558100368757672625839581391452856646111371697067181982651123537949911197556264271615399197088845242455269058810335846435836460129575629284733141848981257048934032721790307835992720654635581864914697207678563880825650056366504230496520662090281381160052975810467263867183099349342717712426721679846626566284345276816789657419369946911030693385182280479908977672252822318970359544320538897882281608956501877058254418425763186832440594646520165297404741246257048876663694946023455226473871529614261047411006149618522998480101552040664931673477527629718262346134727952010969409347336514188909805600478898335629711102536530291110731929747545877309441618678185567534665124092013921967585280982182614893407705702590109718859298246173754794457489445496362524737700257854721579406100825711083547510531437240890075403274872953638614225305705467862740933217329881673451856633565861676355344389692156825167457162259523815626213878380169067101159309123178582858107873969907842888788112316750114584208875973220423770504167149369740546125513598970779280130890986682842287730452667433618093202180632995377175518680585690075246321710897846652007700727491459289660990382680581616348758754486701217542230936625321339321674613640118871433628532129421167129794588578408375232642534324536440971129304089883900787352907920780660527123364004465583247525928612824077603917668191319240463721076697162022239796479888086202875503746251896678565363311461684763805408651896342889676160120843246583924419896739077585190509473641269178827827196808915335455381219272439459775934423066722888246836630506970032417774592283600636946835016432260479524763808637133353850399336007266467717456618481145170693538058647743913251766621615427928164165655812182031631823163925637702187972835933738671326788185276504498813208119790237626008324736346975218350541640770051675694180188953493323260265084042149482076151244526105470174774255846124306471536994884165864824808763265033917201431542594738271992357487363849763942948039814640792470147998645148078392999059606048970860944033248653545913205103787337411763811683237082806976304350955973420091098067978090891776785871109437505539192291767892327773411353011265790731205387851681437173516358663306106564825360256463278937301839430372178681320973875576513917115963774763968822179206682718653252864666208860371217969749019748177406473434776216532760648861331273890727362146649493354149824213268266868603167083006585347841002008688601166810912226770569713828145881901096658944957247200544590769720881478776136735825230192997852977031724021317086681489085412045615131915482953275299706267751739317009073323125555992858821455261763055041098719166192550238211583149336896240058563787448030903144254048652812261411245732120574079758490998589437717612208852537378977103537255681008964213969408303187818399524770727175206741873568337603144852545848341956558629169973572707081445767291083299236633772740528247330162192951987854359562960346269266466384180022824641060569340444607751338011113467075942357570477060697191002130233902153140221023302531487192740038033785691488134516371733012412414077617319766014769117338483840702461386444510824705084350208357269162623658114823498022039578621150242849406898477769031304397431042413397196410543158823312531101526297391422342134826761633863217189654720909750694050717681349233539127399955625152918415241648305590557030098283781958899405863792710706265971220166982020258610587763616380038284150327569532708867428982998183030379824108001225627171751335300338689804738934191785215285321201787470250920196101012763887244278162526071914309509473702893939826425104038896898063953711460286766731572549254878747486835695867388850407795566744737765795550947116275204206271678244719106345882258145090677855789506567968684334234999496130188771424877124492723785909223542054681124379574677542518017399958182169151354596322042838114446822035011726103299851910008406520227525650459459482542634610926420019701325185518018248581120380545296625269558953823526722476999782169222572860302381338306632607761198061902602067118618235557521655026107199774102549688867191464671407603181438102975350337327943714451119880226694338984697315592811515336444178933796638324102589773671401046006662869605843910320633425982114856246445336067650390537242395764055209198514402927845167320767900023464039805979888384026607593502011222342923722700844237676449729291977775755078950455257362615311085106228097804728245355251776681358533557034205356218364491672614948692016974671503371182352953992031826884779403053271958825046494496467644947674169709907956665191332557167935421112454895687773835161533070336390916325423245537909721332320629620828503769737463048724014606480880934013053026735120559067529550020775977200605703757715330023255673284958738380482362026236326649431476502865588234779068070963610950055863454579009440693603703925092693278972159856100442059984370760714069343945088746937046361179425157096621742876995311145475148096575116341128792817343823591129406450238475783818788776989044560879790116820646643626130093869172286128700473001513548604412639709702473750384596384189815238951458147078046915772364506060832029259014164517953789439462056585165214858920329508096604723709734548517835520880260087568239696809790361029700956128979506820070385990509627348803416012206976441981553904151810534076545775579961899698488555380801488370668282540989969672662201607989446722341398298403402174566850126943917860379497047190929761533718811218321697698576728392755150687518556868393162005505806351769462749513494723986920564634610787855604721541564005557723992614558853526694017044195034099032635100665082867844131186038876780123555498966413004977191407315035617057905295230847316691118268568202997502185234803731639646437879723725123483124100046334144202479971744772614473062990972112598134122235670419112801721697477859198538856685079843977901083543042167735260966273145155865862629769771726053263235097108268199816810890705785986500964692861863257903008724202623664698042404250031573315740785753307683544126879534039017215492494100910628328178685603234809905798698146960748668844447214619914085467728938780680308858939109424614227465050007809495402700686140038144573397379469987112724392435069329589908133453862243966795030262762495900502468986476063380959655083548135137648759826491505022430711614770314050164433164771086859565879186821738237418509495903709840725616348585919240792931035530186759928957286999542051221238106226258519725119837997884138741117016497158859127805062389328323890422166037294258379110060427871636123959580171926047328821498470473598157350908847962382130120998316412268988448083755206458647332760347453335206462098483367975917530950318042477518489351951597808382584659183989215118519339694354042645455045416856442891596905551377060241072529213411588703643098633903530245765982839300734661423894123777140919357944802015473407411819636004095174116395635803169299603773831740572971916947091148772801620331589634754958934837633188238494036119436236753314141733785472663169074390373375325971161541536513289886662500228497600957114307166995336963759728987295206402111951994693695613710449489777049981947810762451074485900327332574806101624698580479719404636114178903372160831152562878510073244169624992215128631789903689596475824166113169375207250418490298851584030900327223307663524513749392922217071402177084464609448298852739326764301367812580568383748608611655610234631997733120743662303087893678434024979542835070473168616474397890590609699439943646516834581949495278115605596217709048341627588887619956630872479353296312748800270418979571558755826754611967825922060363837489749598344292290402528924935800447274124499481407249120644834684132966166742444471933350536431296747576878731811662564626964991138401869560493137053508867701834405032165763210318876445062973458299985427001256059512529846720644100503812459340353612038669519528149818796570664052416874467939232889320596242619746802577457241177880678526240907115527750623060991962801647468363423423621443165014956090159198228908659022618703880717573935820051734370404490671639671203782094523056600485501953171488312191647608014525504915224174677185313390182924794473787228132776533879281393525622945963875471003703239264694938139422117007005757131378814190587460150764337207079009326298889803605205652277841722625575546489038900649912038528477013690357749646163117131668892268716329725633337077860480786663613463703995149175620423686127929152997198791166035863738883667707797585265331582629294941871183579235769837995551849205588278145526364459084467725800177736348520262799499484301219090562529698369266644486633698928518839058306866755581986741365181852564690783289072546099613609574149401924771399600584985669479928365282385535649480297774375135138394102863066603866938664559430918340326489684856836390273655119949453748816673235373168151608718524197885576665203490456502925655184709335741212834570624928934858864288461309591563522812399655809228136137134285062842190724629861666990107410712211821787877595306608354574728853424326605897355564970898409093537474862932824833985029767492712478891642014330494837082467411937696645979243398769667405661193243290652730173509321296764199938195896930296241376296242963952074187481353559369476836701284603794674737592042773426239747459229086575315441601561685432209992138637524014692715387943140904137218964376736846155517715524220612895047779936037889747250565778800418386476433639257124359633539051859677518444644937903735234930151566004127615630868663125719174003959761287793009289333263633999633348429552974255725530196900961891571327455420247932394775150477627844300056542220667025778954392659069927519662704670374576956755386718098290207740123492629219243351823033688248474292396342323574634452991189703509404733488336508039191969136789168323794733502828168215490419880046756034136861737000789098946931493507383295643134965872477845136726689853238295803350556185611306255835137393366807037143377725440859396790269538823385847007819142756555960860814953363705929761054677229278601943763008571363600399259275951235640955190859378445286566133103525599899130444344304419420350105418559552130843900305370284584781456628443305314265899563884712304747009638875636335647318847218171525302757395848787914074452643204775253447439532867766796797951082852646776903485223939532043733810225299538995483750234393256514744015894562518002568885676851304248217626120911590791771662465998484734636256172765416794432776012282266648290715957944168271111926166419571389176647142138161259048461634496983632768000902030156784200482083620622739874544816536430202474383386986731142762740341903716187183004631044973681110475670274726711781259008354574084198949025854576361671605412688303470809833705807055897272011708926534716517711256128302626434971473338045658239926667530027444107182858474215494800665588400256194843202207247519339609721545463716205031644663591139492693150457326247492656527002944735339558269407996449496638140375118552546716791434006014711411220188992456538609792353863701313672608801055245832002645312048958706544484217643111872130988649990801277159396466653219496674051920169086562435741066099292596120609876022382846203583657556571102695050327498466578724088897754252696414861844714437198962010781125924224908021681708338926688371793215930843547524667116994082002607556642404988708827234287102777707541686870375080515993319430438822837576050407462630564047574369048286751337235024569900669646179834977805040866452790858409710991804490703348428258093786653272449401763958998822096748231950507325746367050880737303732038103265315179154700954822974357499200150317220453229710037443599997539501379876829726669918579262316430493587025044635436945326009865381694680634670556501126977711107382414102031090257474559691499902797962729071179196016427291872098993978057228920390015484126307888591428585954683558313670888739885808299065928803334831634837814362884399955586368493108611446413029230727685540068735287131335243737985484418437966471358528515433927332697670816691531214808431922710948262901541931419705495559030033160482601783296306125577596597329205769580728335407558721235494280104703688216152743712157839760933011433096986256497453842406216029408476587144195657910745262290215381623876064720538604978596487182592540837673113348886003291524436049145413176500508207020866681144863225244802687356460925314639727523308078944796365935105875827689979948511565799833058956433598644492086071343730887593842815032227109125199611313039550717259716837622472205560881367390280917693656079408435752505850288096933058325606146621022908230693355634204018782569024204788033398352176778949884491346278400107307092820189060207478411890422662310138924951089430486014778907825605011467190240111001502333892906454397534494932078738043422545060571625472329090301836351749188159366864135776924353866657677229702159323308709815963359138405890476034351339093646654171193919465778976896540538962061696255568602504887615008286186477026993333658461810023295239370075988050772388582559231007960251981831177074728770000341552681037597742405195522626222753807001991669557823611456200541310125185907072315045139046943437163216033115017540913728619605566426804906592565277888662931079312263819403332935159155816015119000077103130575679587531978306398441896954917930833479675641892918928278265114420649299415461666990533768292415999367983076985682401681160566445365620849459290256660767837459922711412999097989326503291551294870274600105825681372918201078224415935388267472343925667360271840279819455887809052493848157718218516933707640984837391061107909188061272948684392321038456301287731089229836587353066470191667162877889577756394562382515717731453627564750893859034668064217589234837379995756857484085322062112332841167690518082541337729446026671162898765213722724401492721774880545092435058422272287377071380622945786270713986813554987030789985562879414781617962740466510684647215374817231790790962548199314829254012312054496197699980278022201783459780074849843069201341589872582183695434378321863946524220730012505084893084998134075986798955551184729770108463521470691704512509583366221932335708182327831959146259054807606573707435846338227531609488783375547359945125399285335313658205483677950063667672324767962134660040063598663922180659819422608822012439201176912585052367883410531263255887860267002889813864525113257798277341686903043481787748425180476224608372983740180330031157040891750423677618696554297568959746104935824732332202671828867908561761887473539578691281403122655719618993220615341472618700218273324031719660928021780665166401709028776641400213317853264263275931549690924957683443107077136313437600097615214673568887602170555907035204880992356228162736117697123398388304488229640667391586942193419972228395027731400718281392835201783984157859765969449644246705481166681068226200619809614968521389413913991630706921804558877889739266716407705113720641744519885855570748548576504001774436715204166273310083918304564081319822124024624726432004531277192216922840355430133845790011595720218215059874652080772390807580541103810239343060741001748746779251392681918901918457173678311275750736137738063130289091082236513775665792536568716140840278398587456008135487170211917930230807390769746050378186079691585826888944137948000298052823054240133667947630644729640207936674222373006803402514550791180306694011957506707690687975328968513280863225178808620051104480803589691543862411150533416288889734751933322604232208409192716080224613394395040775958683664416482609956236943448812809369347288643091866250921091955130898823676912071056500526091844425453177645156414780007061171649248018859345938129486296719554163100372845013620575131627487767989787035396008580677773356078703230590740060416389268701908332920740370694843991403946889815524119164760195914137701812178857441598304024111767622594563090697741138717489433076919173261793289972639406729972644602091859602540759178082567894781391172710500954952181005753298470930051495260410417178860712386521903959863940101754924169137617361577121629808659922808528613480556315846102226219367636360782932961324769135766036623870449282452456569242485678532677275642294378863289524516549794794640263601685904640078623245255583865065406362928444323194188604570961594120705592450205760794948537172358020357327123313763081042298334407124923733154831943644642510689820399227354935263029278231172011004064389590930769744405827664808438106643399089700079572147145518533478252679636805307562008295646808197147318842957816316590398904729613379307630617271494017615489469161336246297281419225972635312047915915560016846025424241492539753826001730319985078751853669623809430149814820122970683114715509409685384291778312845637544009344588788504103605794503930782891073961118367685298719195918995733372292461507027423268864644015998660140384479923836826105120313685311868406015003922026015988675570313044129863423993958339716110925796600143351253290278203267013605655568090305950262363501283696939187006791513305258395994022620409548491880464945297975831578184002213239685453308809011140712048469300830156492614055539857435857194668179662113053374045885633767532422185843100816528234352374203407274530771745573191339950965672708032508211273607359061900876812965396893393145080818119234647392719274414616295148896979850170437663598203283904769936801692350144375127084488224636650657414665782375843734473200528349839270698069237265002960417383020701338314770796153085657373983220162890266498793684652298842453040972979586807660440643355921640875300105946018359790030011867512678290339236511405519664087679606731689476296844665267153749993479628007586932271956452146173090143777886263878930389609398844517810479759803600812757670508242990884921639675339425639658354690767270884757005264898510934213981499720550783153017687208104838264528011168146612164575057878496501337346295973384757440474508820598021865432656968660833043862239264936886379512083291386442321929576717629114943879093212037183424463509844725445005454908914863416065352779956261554478728706775944537495290955931241735520327434811035445859751240288638895442802750289920737870269580668753902387126393493392256734634478969547295649137777909356328843043080421965838122391641582217487041616082214383844595622364603215367774084894400423539747010722209117927711702908170611826400324210915326261907711512509637692778745719572385916818163083501012883550834432796609206543189060592703954444658444864552274797072409640155109666152406166503852559556023046871041575054332132424284583546111369848550268800784311898718799450085863230352670567012438903676165995142399514272649089568645834861434626363393104828131235640536495487840314398186671440942111741531126471769832208607744144964573592966186060840898111814478995582727472579763469745042233859095188074808087260962601351278653544879194869332609390065189511125901486982224426355356454504956849472475134913254536551907815856793278928427357077998282299336649719855948171778726394358359644566120776542921697970262311313977957442814938531721984889061368800443916375950257472227489637718025355716007082843223829594974673406673710758795654990410969219213884614548733398800046838324764032987999647089136281886429440912262328157441242401146124087901911496016324164355211215650239587635729948097701858685596449927460432880324886473594489900111952807864206821252773244824631974257865447974015941756792517907448553088397646463625943125773023096443466597729621088429996366825790087284184345890070708642709945069957133068825188484739065765053517480638817776678747936447088302774682428942895156794456459737930887437599638646485009718989190653644654366799906893236257598767115621985094605540291894274482811082831608087666152373396384733736670524318539970956214805638585930612686022719291284316096190920601445819747702230551911958525231425933637196860819845951267040251541863143461115428139906925329393413519433397072892127110587464292964764562678779204739471639121850633091523762754699602657143140547668072132604689022273888202046542051949046459361456535355242284876475862522050524597674339488013540981522408658534816013528499530715247740372603067862087935758415256773961324811694354040899450574481691616335729663691086030906742813096323981990508801648909534223697031051213445688852052854397874581205973950356173090768625795764113661334162244442306973724006604870633081440453227101475809001560081729994545232699809128576638968166263187242776673552719966460193641189964417994332635513028278637513571790986802357143450059401157694703658585170176673563502588086873559982987908946482605439511958432824166174224620560249563769427720297027661797575983259046542711326027027120947906088446018535164276280657352475782440012348033013118478927949315926525930027205642968082896394734548198246595392943432407299001573834810046529267569777756806339115262086301798466153937478054705409733161836042910573173961391050571988498112190687000762217759210756301342477951432291900242601809179336966774072861607129260632936421472179079146413632390795963632473355436977635045057882178692845410299074444388121474259696887225242024904917523022119829547482573869113969238849570363239497698952782054124098031267454902400704960003058155187177517388749931360821709431720464303964420209866049427322326689714771714046541877312311229887737162840975104972780311403838541559584422235520807189614192569639817300581285285453847711511312326913123895018605187382411024333806826000624775994996677955579865082967984206753836777658990849673711380513207046682179274641238903215885316534853804114565620364229801870820075286880047598371859009233462918729762018818529050937867996666389059232845639371554234472849524043603579831870735461998945484816803128328485570595935971411104549112854508030851608259927091506828461591447589134736735749089459019712486044258854328675295031362043783486336089865586141422637770407616723316149678717452421712467655922966456913133635575735780313136483499157607283397818533016759631942735356722241863265648294055397615603646361878242954597223942743318253511184302014053927223756518007918913668475131185948633688616383210813243459380108729512026291975997709712915089873785131198771345006496766833708568419925517715512757623332432822144473463862166707309758530326853098643216058029157479417537723775027390860682991515307149090165799136073711419143578610753975269154405161521781423595267823685881701144581974817896065266472161207111695846577455385469089286210425216527160539646255179707465657414025260337533741471603508462584814200981533861509338207290224935311640991584440881303658877752277055033977721511007410103153848080313172705276379152309666641742959605381310875639314123652625332412072856402050116760284343273153155555189699590933798201870265776649692027601121249312091874965652034512531426949809069294604223161661695495250314357532604150458470350439935620214112424015281632041065147567984575591102892728712172665369788014754205515295848000881949027102495171205625468199146125624377221986924096293094622971963743413891741456464549457119054888479071756939712422538018856952183535266503260589045759973085539043837137267669446150031752950704949427276283829197132782105933560173698704666319099790056259784682821643372571719142591098278321889909036482792861402003212382605324421164116177525668228259829612174967455207675803568343773897092660135359856959531718796507873177360679213960137288583840193824681744946500327810700268655628391844551969596095154275123172787234978107877482856873185059323045088635528149703464417576404693321400443538711702087507994876459546359224256419674311825676934077611666567464928338353191607867072221508295514334827563900769492741912836054769849261010040658784525645183951394679816521733105256553591621299181949023506717495793235526997167017350775810429540864267673306032903578099479605173662268633625246443025866355686995604251538910222663858563915855103165093610564549978856810821209720857783284445254108050015597269777365551014484726704824294564860826758849520439628702977519471251301961249252979576016521436585547602724187185422319829862609039560331764040027237049087734234736913856135817637648708857537357949723451950114992896060814266878217717612164318326632752694995447607577136010142781170746624174729107989318905179691122521108398151733759059836482319686468993789416423077836798861826342368146906478799717109830142194142437493314954318252482534545795238661107721784363587364547405889369067476015492150724459492592162261632022208597098543484810478370570618006378883558886149257818522453271965665918444070193095542393265639784703063656210564707007272189712341388962510793621366155902478475006262164935901724437704670050136933896506510710044765921591302418243891983489466788029094334578448688705823901403223180173855290389061628377587651293708880006902216985070867523984224640367746247296884503287426691326682767340134404000628224383190444301517438783002825716766087516242246304643799963503763895717266140554703606475720094871862767985166537887812480820211964120422724670193455017126722749874459231983976931224870314948069456171894594969339959615244466966327832496158208873497808175898876527176576876476569154569809225722984685925989777419524594460997679322032860519787012579089578641081890612846500638343014616645059514746927942703130142060443532636408904970205824137369352341479931618953850097509399965307787638108963424266050056216336425395104130832660447289193364456046926301859404356984823405781447929037525291119813971314004679521971924992339074122535091619573825621461487900282207322491413667225154862718719401691676984809411928538126511907277609662815295250775895886679792958909069660439111375788375139808060643728237277078537354920605527962731005130299058674514550466018212671958234161170181838895461485999578282581242069596292805174988451624462731014671158474155975403550757370055521801880042936630530005049133091655022054572396532373068871380672276251833926052957515978925863915087262262812578691796063765872976183430905390163879733561712429614057615968983001959563518019771208207456693662251446904263687824670261789225252728896167051171789666050070328317188855545942440937356559981375870320525875291711293292125987705391135034230898766921502972714916611307130782019121090771850260088474853912870167160421994423410525583048190646370420682763846035449492373494998433947829465125475790188656416919551989151791596085046321406324253915651008327647404697987543835569518899581018513063199286387197152736398803132657377296848468391867049070335697405615613950626535597062548837987291645317547387850037437170788894337384232374694181079744509943889667173411792576347291973384358072377842049024615103884290729307358182482637776045749227256185623868000905650826940261012061419618831395172301915612585716277895959566039503409124478945010591998988754444095817608334864323927811229178896581828357597485814387351249052401576572607337430003576719436137731911379317325394611243706614283602776766862076897388387665065103653565585287965299199425256463745654124568141319863350247872587132354000955870982674669388616984468071537707186920676136581130516057882637234589100217165730170982673796972852289010756966382373222897393899556549030711249532972800395801959148173090505595674389268047585274512466276505724348720172602509126027517972481429530439033300644964479190964619937288336923845548625133254991443863892884211991256237882184776872932459024700262429375611960941882968208754045621996466802194988877696104934554664523288526783726511334715660256989899480596638825022059952535486165527418342010191719982701948433999945907928310756004055181754311372322069536992871038616016098679265446862071918318998657775553061341103177993364588258356361519563949901727936905893163719040246542883436563794718338127693358072545194903175352241661199156945216537726426256218804406547883875363629380777344225826696742437298898345378321764654287008146829171271352983849701290228733495890101116771635066205701083185155530159450488939563117088090554515756108288704846851526145468734748657072660724071114970535967395140382541039427097987928664739076387086273480874351414849668178275507987526276051815698329086458509943412336165185540865308110494069887174688165315578231695324208696685468956853190522428657610916356173236137069760335067544008976594539081235315382353195404493605691368417055020794511550783873713521687194955451804339373258746727423492519174535307567164340739450955073706225253909894040827590491758022148636904221559905600895832120094638819000178056234397046891165027872667884952200239724812739009241646179886698204182988328440388502822648487888647709184049384816882184021307019935581535626518296686536927989448434019911798045321857762352302848477450025753230752916753250488427732286564970221108226728815696457215133499212103129149862540532374263420589383703037352058261062483775695812033184851804210389429053312458166639565308114428402046398377661433433740403463195933107789031526785981040446030934098346664582238762648883277710489827829620364520100671035020505470047998627403171445634361317093316877442878608956807674793909319620252371327798854048224800897209384083906492281555864039911175942678311594261130057155595760329686396875203668917235794486507028277700518314653901852391626548790982200395059673319340249372633538044249293334014080840765242264781010232744156920051557178763213462785040420165132637075691559139000839491649487966926502831759316481759373059261900854879334048208838368972323242719347650189687068998197417786987329301321954093260835897003792093213978884971262457589284697493568056429840776699153303929756918069373768266029146675441331354768702369239608546596796952118789509007024977936942691874684553083714141450887529240221488274933479918913130686502152609741633733251402927725429257810870585647597270011798952894301883152386955095983370140164579488684687229004544169408920435172077058954788897111436728591302718464858127777073676955816143799410066702659860890296489335583674202988680468602937661822730906560340103773039627637155560830013346635233267935907953256717584679820958583202654715990871826649390031097323074966792237599387757261862324359592410328297571036054442802036446204921070042386427987630739054765765963662525116877918469851375676821920142859203548711073755845448805974566157812084568198973265966972387409699578675992588959581565600707335764461425035173382793561371355668743416387672042577035800672422920936575064249715782591662704498033431618810153926517431544169096671941692424911540098302404067299003748277662306850471539849637726436926982146979486537935074595720694548683453572382957140992869026441029777313857785206127542495074034804523112438379615777987186665926491251410501244300500078207436641033019263818190108499978601632190236168847605943450755058362072959430539750422149386120087873258383631287934694660668229525203358309780681678031930015363089104876335772716146315431102557238195265565800253484292518103100670077082649773976479434213394200831213359619629670696884811842067742937364807129448219438564714263402663690928861762375779085139917757630051675401451614103946113556726189730883805362594785841349043862994304285527103281654338933163922631822853486506523363060306045201385645433211441084231604634201991282480153191404538625058316579564798701845654629268422647431574100783457114603103251187934467553034230027254118412452321945636533729249509409359758329856055511219849701681274363264510381460542460157779022697479572344480803729537189213948845100381922572636434158241091854640345624431211048298266053482124175007866385889565701480900009953783944391041419335992922737043127018153168465420006184719477732068053567031084847458725802495257645326837996664787588691134534193039124728390510675251458942976198468856849724396441273474047255441764348355170666062321867790992540447419280059962924274985793525207996925498069720111152850565673954168280891109937581890148167215266118747093816970339575523929730256715884314504015180785102227014513363335770934314265489440481368674761796309931181236387005486106513687845363900630701556116986270297675342178264664354801169071024143556434381856696003382045840530198881128217700142611359265188918311952865044877703208880009051829795930758319575223975595465285454013719072637526465980167724808260640081765686593800868535164627029422833248719792913207437461398922128988520470544679340130965419403881710846075974468497845759161307447820730041688817626026440002522837947088483213393241551993048356170417371976102421106636363215723838497604083766148527877127628882548798403564220755660693941930422344794910697902832118538965331806732556907343737103657180198958821382349453429986893806189446591808515300500518622087856683118523539673118707282492124335457641553953672974149777170937882931556196068519014447121997887988676395589908038120537414383887973871308422601329244630291016340987568866679876468807699727152138674847186730312126879704057393580367539939596968753955695019653248137583290509438561056479710568605042126650162765115789925839525185683195982440615273728904784120768596835042920993858319320450610008068024219014215701284239436065786234707770035436245511514422563304898738599830882804441820962536515228861732880590845191528600729314052077278115510305684510858375534459630547132567236002065690675396201623385164394784855912313865959622742456046811391904409389185172317879832094334650522091488760335104115863650228710621484373981028614705135703853798171026017505908804763352933012061404926862101219463577057146977575843557929593496085746657126976213324684746064043908751561050361631693752257633035164998044147092052302746578048526430983286769584001938047657666566033052725794037512344859932788879447664873269230831054727719478285649130450139126835996552733629217289140094828230170882430062305184315192495734535909382715473249020042411544751325835589340882552362911171141422901420660005157668511407057565522641817292836663895527029532468903038048900545565465834935643115240537401662808792395690383494649909150233339757381842239340739470734335865768198094009512374672117391945000917504160698072634326141454044072315552596429413194168050305614724797169161463473805949012073304330851337528791850463995891865775865504800369948954253977673846966828112229592495848961256356554881080803791106494102078684754149135590919264252083831349544572469558896744302098492138504218920493953676754623734921831104446680592528336460368123844847172785675376636146473031918255579000290741162633632684360509985466485048336291492510144611559209795373012934991218948974056437705761908548785152126125594310993008377417919159748502581356779806529949349002656855418498637433052452582582099598756514268889161000299684371220517190062120243683894595666625012473082592249890417718223372853573458863145726801510088682996239255144834381009251813400194693887010452814917050763549736912127662783508328520351664860627815521453279342884649832361693400083288968097993478044564741893042925558112818913584737677556479813983124082390925805661720032399341696386406771184000961126309751659204026460884754640012490936445267798440939662655828078009205982859880625617768646833577639858189032179814588177864976120257510826065786365083171487014536027400341903130556612468644972834588767272218405950564438027485475993874678881377908622355578424647654579781289701759960945167667401283953800180001739450919517261116071487577059465567339936144065719817780978655856981360159318799617001952342103985940241404622863786695614243223707887248014815921061685239798142494784250323068967674471101779861782581718103370771825804696780415565073255203154627438125565705522988116085536577952601772076141190730410789449910804586504872767009010100643505286042507008319419422681661604352521129655544904817467204610613033981140384075467511662387538477351634905301205766642763521741287855309961392268236156313350833475019601888155683582892862218290341398725730366667660612927056481685016946807528148966070174129112965273143565688301787264927977730631658685734079023400369174568685598965012506739858604588389113732102571118964481763917935581406828009860873203827592137081453761612866546523917611714124209469971046164850418549170890680304611330594842809896578690378566817408956926472813339170189726705709021293366459336056957116174346733937803759290207062188698505179584383016653942745480398316037660840545381261702898245430607670040842474223360687851380309543288423891980560475799497836860521111022956566410559631655897883288506767427066207128402200989060354995984174337573370612558980039407832209911982392643756152341462785671884423126765783281032368141848134257239827108691317439405038074788219479354375498407206930593732493188449324370218302831831540038524854197635296453993400688256400728295790032411112576337391006937601484304128580846099952246947351577054692769493461870471123118982385364370181258225055904021120379895142603223431510504312712527958540305472117825501632667967335946204833209479218150380323563803989610641330153339001320931424788220888714789835402968277724190583776247106052407545143895864779554906960649066689928471475450533274927700677058815921069322333592842580598265189699862376271867559121685766522769632119585031381804863397845277975650324240583070230097120274097727088419729417421094334884289597856323192693167379572548654888753996194601196709046267928964013072354849826729476396743392312130211161007342115482599373362377363715412185964009636237408473904783207250869575894438643310346450147286711511852007060812497860576761412335488969842437446003852756047405269879685741089617176806051587862363083846310787650270903437417351319190215457920093260540670976890706740363048319093917957032656256280163221092633261910197055366102582994126980013811448482886442077593534499047481668141382232706265534246984459133903898675949559872189583475242824685726791258620708914591925941670031634243988068226532487398217548544443455711735190411252976773057552981402258426026546086734276287135615607245609838336387063371446705119599514864904675804866392974643484663628703195015587608013194623880176106302808722796545496076162181613012917211393395404775769230399360090306317083303788854718243854378563676305564645781924416784312404667303580158585337999889170891474382087381426749548956514818158361582028428994436248151301713134900074772013278526227136095443884505540082761599110691797494782344461806964913153801852878806886318358220417266937123417359973717137562679474175816549143461091113636506095633371139643351445462355275277856437278506237231717615984575911548766747487720654787946427899166747005801967003548740213202752066355922633055163008795111556971013420324238826400450711106301041682587253249689793170763305087125796477042030825671466876826432734475270890656090757462803862322627503725553314529743908944070536355161454665826099465835333615381825706150886095969444779552692849249228868589342708471302854046806169341290896839204715585346216271599096976411663205337247981490827970383415205495020662103228098394666138317827381261822115894871439566849628781929468449595199171975035124679275114951255429165282082945681499079468151624048974837967630257906429695369442652959483298361704995196470808352691334711716852060758580750307748653788628849555087683071194392996056991973323207487317375358659685369493704651372539420761796891796440990269979371238340535964081163137478110243149496305102009824352175102315685645418654439711314210371028193475458096407814068891550930537840057129789240767597946928337237363574719034608515441344731986735833550218250881613618718425703565367111569227692885857326995028548899588972808717304068874142911361711808763122013322503588678524332153784767048918889887539333089666412237618926084781912712343010710348385299703225724084488719616669116825530073050314254126678039225472263599653499680524542735893486874677719683151945297691600226919665715352272735123739323288315575337572557510719133286890239751585532982580585982566338907826237380591432392645983060505584591220216766675893633081197755924171516703378140000370033587730312441299731354798614894267917482905818414802097509331128093897756779175943514018701413800801823548508140246709827773575256296913772401795876082802401524879173121329383966966886915936191910724699074775269838047189504783831982881522542238663086634378890092144718610714264726384730214105359676584366095648529736575213410596845033103220499983724744299463191891045053800584203735126752364812998470528765324694634136439503147623221458350857666843984622323617353991175104312949282376087938325216733605352336858358453286484999494457861400831074030560124996643494417859044326148419214487536404733704852976984103526893577755333159212638720815136570306618932163614414100050769196933092208668375664432655614997647086370585441607813391842115950789404045958119762452904854655544517994268795086692732960346289006008940749327387361436991061359673387206801884436045818035566941810904718734337106821815664317247719705061525744671086438647705614636254552677577706104655250161323794759059355032391111105511843023013692151632905553430737141352166250675308529685621448007881261163495241239272732188139072718964342417885549941163901749215434876357865746705628137170309570206011245129664701122500297767161135400206077208964657290783486063425920467436385014656734494048170296601364258282525204881250553946636186187641112543265749330727771367916393739228765177387219608001242309135602792156605891208650101283256945070898092193687690949193013432562700050355860572533605138261910606260497582618592448467010451728838457038498757076808173090542293715975533737828549168265843403222066960277318086217451892245456586298923153011206912069716556798544712453687634133848827701318885571510854697251335800666478993153983745508355228902575037636686407932009306963292664249662437117505552647746214734700109999165909453868107373860189863340802897381048888862922336505535811006783566484724980651243223650014109531778542343206333304473070214831877887646921951289897063508836341199519169385643804425513224891742267190632340047019634045740104797890300430529483465899554468494559217190565127379875280916570305104552919075588517339177545818841570335493572038559723124000244356527546424743455043927953007277565739909759497857851341565182360727727704580609591355729899863842180698462588278272503141312294740520440112278946624676253577962529978034105653109202991638032321332920110324949953100474648362321398744616373999169728797817772069873559320205860139153239219267480317587982636664682689967027866450295452058851387612288502912129695259594599278269724395907277623646694400874768823587299958920006313106986930873334832554261117407904082586903955465791950113998816384229759179722327766277644730614829405293326745833709645252811838953159219636415375339421634883432878735276910965841653138981835945916593769383387958444799251376216923336665866042788620805100357313358845794881489297522246937710359332909065519006729229153281745331849042538714064130592474582621079550700513502490861959329853632296523859166724682847715222014771452318754776145958667533572061183419243001017218825515651081382726483070936102194207996514020930620537793382321406255782975085254112759501582935342837914848968006612559547571293383498044343601553624093836458661448938802621684385883555511445633676263105290650010932516917821631889888834728034366731049197830090668037763145519796634158814578759230716293038081001962888708601086414815254610717673857250800437840965002166567041573144667274736206897385900272423546865490257938231297399583449367824146382859003816394634981636780163587706437789361268309713332778804866080828857124806196597306631605221308520298835105581940959882706591226612817159673623949686950722618546674872432516617911118448531636078043607657992258015965372448837750343580342378804156009902644588324589930479629458874855757786196224617400799066572862562115000635611388285602882239275322080560859185110700857583831899568060278979496932140854117075406911130606257369685606436680438974408448152123851897695775537775690506858521580564173924896305231796079639876403841119217888242944339505286018489146277689949369179001146872103397331865195303853808461444119826872241475129610126989643252197236072010389286864228611598962056155082062095057990041129246223378814298306927620332107636264835693927467589171954078078435334084283745864193809617803673701552387775713230249706637575059220344936249846231671599148982931315301499087841242314346564853664052429784962904503396063735971566195992563154585163308320030228766402569692820474960879012346067908217336779535561040551174373083021645499884490489910644083900621101095291817473965843962267803710675828973979239592778910963473260582797370404586493803385300426991765693571629318894807813105520176111236971571976629578799481767732044809087880481736571148474791092265032215898688346910066842659296324686822621808479364205962851075776237248620336313131369971788814347483896239287223291097893885623211125662660448814820524376699779873361120331827883223203181302711323167744226596853318772930101342571587329069384648942399011322063479606656879894080025646116901809137658151247973111213126270536584423519480136966030067148265716381656176046641023680016558228577383188436018009699282772364602676402432458937309800743788757592089260312833150200565287745050746178667233232286890120918671777834753671952315907240448927763768959272387842555484027987564578154906606143450661993767203677993332182342985373201975579011753855701978138898166894849335231866914005891779918889411903988283524034454480391219502893397556368227204950556827236764896502868163080519376757385569558691861312654565614770593413269086923103549512438460301094429494928619707847493144977212794988937182234757068789181331734211591306017595928692178490179078865874884678204149119095733086724086048694523731195110669736901544788464789550775787991364805797779572410658221920199314674137087387837616120271895472191439482215457830028707342629126939685246135899236381503834038356824719833523799952512959605982031810053419174866757288576242040481212314423944006366538166483166097920741238610793309352826628782621564656565836091766470300695796783806933374198547374106878231356456092914637822740263159390544053766480850719583957329804275851481448527832982930930454745399304403220538377548567517543120152180744379617259249496037746349474094211663861769621428366029799463929227307202475762317823559794232032594168890269683785869277002411018844924288908713341408025135602997546508858661503718682253679091518432913310903829348916779800596338686813887567059676946464777952181019211251584279354523684412366164121076156891302073173901229392920603445782451334508873575377866456782672350902624780538547212002819855041379345290153226179346767928166313394636579379461699769210973685308194554897963918194436232029451857237677854607391987910942621561786281138203733743423144948474495343950797871527162062337066707048311821745325440753895649251842416833414886021325758923337944403672363059305011509753738503612870722609064927880397295906896064777996217571181549055581248820791586158686713401627745237793402512546415905533170701994246452048444332603058847568415433595740859311696988838999128398418950836238545121039721094702073909824215872760585600163699641209920608861976911553995844186496272639804157871351197225253534007641603530835150013749864694408713955644730773417817980547597483678121837022488380700782293779840972795957190617495591472254232778461377105849088605355916229410786689775401266338227573693526286343927692842578266136470020035278239956483558112810418579203901584037104023509003800300420105010536022533012704793857983450704629841044304025934778099090434275360393119133204145122950988039496274634273947760094444117077054221105016542564657783016289457903596104932591752236208492548222610880807499881995241088058995708015327446042616125301464134414880445467302782290651603933728166847787258894720737359595452613589617000906403053368298968782949258065248827411588404962457104439707284328078244916249376696800285360661475125662193704541210087336226967673953551069265681088471777204165424050727671075646654195197294354076722847057609236664589045794996492450502663789681805171196770319298606814423494465796370749575892863339297911467741272332211146542830710145290365194651838538706303831442861744314869627450891448505863090440805111578295443483813171902649772008617692742103173768827521989699029893705490747151691086882273454409603237601454712900127833397003927118083736196687847301870816776292542531577929862312024818433618974136820093284989506098453902925907447595611321730106275541100777225756685374892351446764818272823639420066567173344822323037124012071507082408505212062129294150677578359398279016507953715640840129077068949201632633301446843331118861447863227275060332332210999470089942068817368707556056146808196886720598162746767891864700548931095419650229345098198777670656809837081621486937024373839207106343314597005548259535259546788098933023023965042839600522402192301967280412935002050922277344167311561606343635029816861350323495385027693942285760365233338919479465324763639699457023281431673735259318405054475041883434846347853349307096353037139618701665460057121721862007367680878310454887808767317935375218880356773596522381380066695980949788143367364353539761778804218084974489786314589193816412106121576198020386231127266135413706776761193091823241184287836232646435217788863481894099520224325421659093685582297382199092806136223269876022811603004335539593039603362520389626908291985426106198649462080256749444228104352401949447999245082635631207276032507494103657437550795177861457459779565143901431237729069382779094563149923165213388134002465331536998286323419922437346616464902703431857950721346120294293615691059098819499753503726263198176793043991407706105446629672931110823699595133144475873261245306350975071500300777023218901677101251738217551547334628796665186458188161770089526979494702501975205119853092280167211267031406945233484647943238389305595896369477743385235454813101235475339973456962319276348666786437647572367619368040100841294367233819266939411849679459206171634302319937296892004797169654606953003428479678181217587952136473210741622672789617101805478062215475940320415423058502125350340928829864033279440122009756446133244343357580823635349780081542844274684703414465631973341962523888108428060206069874455492773590881258616263129000185164318774352578779469129695892256506535919729584120578831299464985536254276668061570672063118999286962959912767322537395986618133235878556172244231407642382169904364027348295265043512095901568913885568666996671275124681145185282789582318602986155042908908298516942703708926678520383602191519127857240323900783328731507549467902602574008626832605367695571534693092598790876470226768295748616075981888456023922762050196461345085866803542283450278775057928040700738027695743409796590451264991376951100457349076630483851142198718124025115933272710811745983695820729246243432515678579100082705498742514964254168831774381495397951916046097293181274442846428265634676009091442535909881335547128223272723038096108425665480870271140385661997563925631397410441096772984276595047707268257266841604678462304378431612908337932371724912991703688964750159396458192957439239727126059217053622974014898428679941148664596861386474975144629649897787406208441698049925346269346384091015440449669807250127038507366681831878511536202628641324314469045658241549055609211002049128807239290302729527903658192445268877838123671510234813588935421083435187993181105373915284287340681684680510351928585754213357471165056842689894335182682785345476316169692221509630478752260926586389492953589872963155285234432966533578816907643486643226359397431141114348265473683670236667637031079459610871240611840038968934524935743942269861313255694222896245287083045601810093576548066273397136167550807708759799925395477914145075238673531858122730663983075520451364367671565024286208762254940696444196522383879490508190122155008723676107151025532965084276180605733724159031688452674229868198201792388106432266379992499074625022397125022504902266499823444922464082464360997357199445838256121876437660414292122909340589345570075194616974143639040117496205717451964162826325468315280946399770055443170225042322036781788892261692242917201103421786358658287288736487769508310597378530691587844316921473265437680864169724894632868873831849497557575656124015847145035140849310341579176129976721742735440362628668520304877078827655039645585827683825865720080651336676835187602255412874005277968325069378688761030321135530437866709013935257940402573860438026152101656814109484792219528171492746565163238956563123122440666551822555674544816498911875801817673091197178146899451404325579682035941311000375509155685891280909299276235334816406549670373045208145426054634828428368815236620733020504672621969609066181702086448393100915564433175018068164893762185043622390124711952655565370767130426693651580648207682467906347198602440861222427099466091997829915743487131966939775374071136253991369238772709542436497883096102250721205793507731626674600833423177528061102525628063995072365424224361694286521955399216864599024022316853764372317655349931765656301548087982425688389487123290516715500846145815515138332988172621210349203096503367301849385522425265560678254556605919022847331320319874086646632129812915974323028660400671853026343982615003321350424418893647569280749413133450921083373167007883620546766800674253012448535606659797045768038425179949403319866122650552276262191727276104347132402222191917544594452207002913237865032353776326822910006513973248775919487033027095376351686020802454102674875938383988144635088826326043752722092084313056501901167917675503286642248421050417934100770249016698522104397514194577649171811209456825789766317664043403381057475396358433772734401192849301740330833463544007495364494770799426307659382984951238956007212920784242051223241539579079502017265984357713022388275136652352157125955523038547520900262985330035355602520280525026588590316544326679234946879424187527164215706466534644519682469536976329709595257994192715518842327455622969418323630228214415329122566106829115137573989299237414842420460153805347344266281770820410558306723927636819338861223464666412145820935173652176013367877099581927254141868684604976463577404099419099718835683476658880554569693174457658657095247436116349474897904049781895805694087698932886324324156878925905680218032634232197864399147471069523649565655435278278316079029782365013674717220809252826217392269930167276944429513364707278921909806446616121421999102850308665995161865097841438468173721587867577732502946453778979898031138329363731339928144192297184537094893195714697292171295846333019887279728771889072656710619864211855808775078977508771701715295119218859151092687249804331677958304133368238955382187980832546229776596128320336515544155183999471003703069211556136712830398945575656878593087744509360942040898515380453059563219634229591451880517383224606524625295898926062241450108798885609643209687143884471571183324329563144575275467999639464773811537739295462366982490419804601114794483707891988950712486236284929253673519615577857799290235900734497462687792458902082630844150588354416928723262799430782695583158014450522195152465275458346638456023210655552286882730959882002888471407073498332379408468412758920395653571067691810194566347651640723216664856637494858061176994963591014215493225502802750961843364621658853071271037817235441258682595679870369837457810518411780370044613353950813415257281786019107675272614694298205696645286136279010687685284094172120033468502482631191761798629618610936981841306310766170981970765423104350744139148147315407515811385247105416272120083127746258418766662164047290737207195001122890753474610120094105621229410036853033223962223369676351273354841526885331681467990892972112617382369574661589295721169338363931209884957288008490751698154825371711260565889418006459357434437985857182462844556396117656640709288865876789007291274390116591053324413690526549440974589829406418494366061634568914244388933521351293242116131630471188521943712761012788132446659486298640741874037289804532577555783057419109176165381837756315360427136654846125890505403885218809793675347848324124547621296115834811328543306632109287836953435389539101986101890041273162531285388184354111390817152471188012817653914961208864622324007404160934582847492165095687928735749226066304287149320032432015226381064021366747793571469962198232697181649753234995422058847174304328541621146504947240209298168859167398979065233362875962491195231888820389757721700157578689136846538410791769511923367729188930523177200273247176131243560442779649672605476672180868025958243752845773804921688529745533265032937537171107546126145733922469225771137833543181657900197588315569541309741037305251006568298679362675416607386286414035871299738912986592107618425360208592174368634453057911395812707242796560008529755946061604479463662912079411094637527310897212790985791323527248313107765191237749215811765992057020961064241015458629909417671456344855877793563841158170724079383545673573333634012997671881258131469565232783388790841228324901698780760171570182891385007173276257120031828879270387649070552719446749023088609327012186907249793555902947456847766424697003505586625484025868460855525412010839065660725243549500422823881961123948306244072385496805355431366972636351307863225404375141947798125770089956803883154280357989588296962501012228515234972087866356967281230582808058006889438297114691648678500932326354110088963972419908162623040174221390896048934985781669444954874342065601490398137335932749234485265222224861522824564643441883829037695725423726149126699296558974001663757193089789768925936492679291181554189816364187752668591478658020433539762143117854961558168469297880462695351250031012255994676716793881260905074048420236506024813306743357475185159015195976408581929981167792517167182515378711916192701256753495047516750961671156132459163954935761268857435377692419670209297617615597359815263423498374774933674069535983961363629455582984227334304741697413312945418787352835077178616933728372020422047718217723712918566391769861986275889652965200890234961065751206447368454359292106881571379204655124056119192390528004473669223909880559284451175843555247442066231248511863468733725319325383676409895124806297712685969990510519230371573255180177874057561977799887532825006277420030672561001211915052520152541680169860638697410201194503051327770104420339478654526493064829354469104388000519246543300352651631732371946125768147570448891275224927258106585766053236429017634731860118388300394247922335835749994623206698141024812142943213509387007540164239053013050011855362333839647853201629973527102973745366476928517607281626221483931495390643887301066983953132297114335811326750610486203226015898520617534626753253658395302068558558777329043396207392407458648892782544472839813616646707777876765799307879651620675763817256695968888020971494308961594571163219222444691755351189722037117883303815403878227804172620236026852332569329214795361484449676603591374634432943638805306816506008494420110312834118619764658123363975186533378497487562257651788759985428518145607696054598331076192809205982960386387196117912668980145439600093773756894287671499052034117843013700080516276320876020181652545745176228940360002768359810296361281926863678573214930162338943733170536601664657684785215146405234247037272538976405054154501140141639453582715692094633299245068029255030010476459678279069892821143978979802041884196576571487920418252472038594712436449136701093828970333387686732964479831999824835173698991863838545801059123888029873610968888114751845701147318380849773017786842942168133154926427568447045638730559533467502184820184911342128482285140576340092266855585062731748971891879217771587155343277228372713903161579858311882691679780102752248325186226318808205709210531984242050867252801015562171662066313364492513120455853051722290201102938532068588352536473812244002604116921490495248489335570959073157270896837357595286775499252884810908353873433931082520306997670973698300922389553076982909007022723317414306647735941654044545766576567873613232480991352432606753616726026450251457773333095020809527648116100513448883568373789679110693901777092888955176052405843298186851240311707363393800943539708598747612552934293443719119204938667369030976894693560626782907040280638942428322229061899528756785452697541805265324701214599937441496572835765271008953549898694784682555227568897599297312538787658806381900256727096636271317413436693773620496705361484014338876163275460025071320326016985402143169579533447637254848152936539523131128939059060803118813669041242856697166880479697712621455252442850045452681113996578168405244642342436744424961561082509115136128464698764355646211906574549401460731516011710683558717269778764571568786409241973302955540119129683515663213338424423336238642511328514828240874107010372057181328743621772216491264892198986011126551856123785627753190974452398213723784432971261728679457062400122433279346109658767069881601563184990367257722182064637870313119331052069615651495158595979357954073360181055379335717336859309299501442404161266656353768139946903360083943090203003155717401442813054352225347553892198035714852737520274598510862724050737757709692129250960273557396840119416830891118523096634003693819445270032215764923083665887063322840295636525759532959857314638743265743420346797445641717857619304126419887496690811082338373488467749238338242504167533877939855450845190527277261168654869455654149080156052856387681594416005345591587079200602180380369825001161838216067965823753907421022693554324056109148469346434109283971980959850920389154471832086058636820292365654046209960735331247129473287369102837365607707737499973364315870062704228378660488550984588627489669163478756982613510224526286690086559024403747894249027429853665489805760870636595079390657599142511796224483943108983527438911394416010434370189739917829101613762252777430708990115404812241321752001732695665796387033970315863818905015210937309360437184998639586317773308835754437011807069504126257724326171057644405031709814926977253956698668645164189170870640135290924558247316709705275393784206778915834349445999928678487063412413586890299280164363192277933596502647467777844142592978067080398894377036390831275825511231005277377959697665823748218593020936363789904308566657635556746842272328641364679597786752196320930167669137005453961832371267353352195567644524223371667055241173321522518613611321139377167493302235377743759413500831762313600526670965478683896730171195059229077165473071545131232612296057515852546281390815048289820927918878880382825330818533238076582255355655397369337171743092454262575115799105101072332111996392215933000743510015698520674602419665611583688720137434268200709647221080320985750036565351211177231315616285652885052262000758896242224584262488908281647401380410636642452850189217561099389171118364726129342800658256459357782730363844401974797780435312455417641596668179393025505132928328943213741990844808553630483989806597598157436105468769895896000787089028193709828543758671603730882905207101782207386788392287472083860705442515980110980485535580181480324099660187376938618886675523092005866828304473592705063614439868473912030554656202053876942188820699112257765290523342891610217157485852405493198144818713871640132878860631418253188127365210008417466601176754177965058955701665908470222754129804215950052519589448610036905757527138215951244715974343280357648313780353441367248640556983576547657022389289792959658694733993253644036639672493324343239554635251840801875536689410141573558081354749767199121942988767271872460264662058621319339965333111449489626131492630426395283674025096847914085644951820577596079234054899192590124338689494918864408767852322174542020985884127766023207705362213734650223233493332199221949550163477784139016448275839135493076012667478740113632780050921103720422386722943278889812865284940004077437024931643521720622178438312943819174099640544734519683121949621495891134264606610406683443650856523161581642448527892277017952006787112422183607873410594576222226446685025757534984932082749833337771694567812555215603365841587405458344938503369892835356706154941647933820336309230913896199290634700255119888984283504867493740363932080462262074557407668003934945501365584338025208122634125282993379971391893594767370245299223325797367780484730735094926439722341094346101940276908024834546393175751307706326861730587698363026819681007320640885715592331414464672572258676597497670720674728215633220231861648818527584154208255574926229458701525029411653967632383881351135913585772934195132025786006141722011380979035379015203230857391933967624829928279549724077376729016130697521703179371631147641025910629325590410295510131037497689104938995034061319325823290675439655983314566630601446518735051788327884110992285530006994895750827448723470515733867597616403502330982384359528256802342821023542801421344321872581382279232761757791420228281855237271037340705131224378355325741599660587550495499304546677841305067515780180205595158620098377958551566111446584557845875367071356924766457196341614246987919263485744570523093144875488817194138664573187031819182076576471096620842673272829606607403265111719849672573479719476624956865205287541140758578307418158730617762640063580323182397416878016298389978197158856345357005821147595996588389240370585093679037844287626431529846472799820857548978728448680403430123275871095415971272621579110064688094236280439858442502102838731350024839095569800848780653196559393501187396518037443631533962282772808432706321648532968568455638341715091212530039857131582034949868774521123666425778596869604238545037199808696096842766025321908077149484767031597917444296357230943977508332290950182565366565039276428110632690850166985022572964004927861660849663429415732900439739709470948927368499474104130332585660105393969970166929147948414527511517843472455362581520856976394316171871756520388658026494090474972521135471423704137492294336173472084791300163568500077359399209112565003694485484429127634884974941533335549255573801758688697357060847399185015830822709372768059300987124059364943483593227955724345846867867078535225140407053149781581853993109175444148547990365493919616898968115869734424222606478484564579614561978447613736661761880130995896726644972093562151544378127138799806879300661653137477463186184712099297913069932431581654775471276364387660666792048960072295680664501349130712322753706396117391569505267219461507009049373868418321612583997566760743947483411095154124659655771423679378335111384602992705666841242417338133519744886314733431886151070841464922516427621192026486501283002725095067047663044100289507695116204370904665002420484254119881338773993813987420266174473122161437713786934614129006063706540912926144283584779364267822655977380602415382495066090568615193116887589565748596172330060190180648763683190830523181108579233353911506239126484504026534675792173867920902855485394916982761291122819072631730773974676503835120744233418425968329513331283865441236419165496529693057816374074704630188720222250898786447793359734749789598660880763757372070057882124612583016076903606842160100860746852390672441152241203751509268077112617833375119487492196880277736793689441918944943229807137273003230889408545435849084443555113935618989580719304745693044812299471822160017451086267841449909875396570157381672127519750745238588160035070655272179561142781081655906600654243001316709240484497827118156636842928446698435205199918928753658109854628582186606055017107659603089688598529107708788501992336509703791858596827054813063505490602134424515571660565735243093184688243093299057566318224479203407883587034345300696675243536766726028947610602733593766229946796392942612339158764758149801123824824151945106881289274320884298939240858784128023531950139601417664681033563393230046715560431397252416468019955647292343503681325702101848871521892594816826642964096089244181427490218876679189383794556361337428782533017744484869503108203179460523126627369289967453051943492164536148157623775251879506017924338908569135842321832148131650286681422005197714057512365247101261255596083112174881348120433004878536124339346531099140924118644325654208284765608151875962661863557002881557550392590981211258562656009059789187994739797798621960204539681463547394340663338858543150800701716714843259622222042797551701143114334406253822105677395591277964300259573773902302892287316834567319784736481856361168960061307279406492698779755339565725843334915196535131810048434447978553062328157783842396367293135617379175077064711118073018947803071674961966645191301378707581751993161538457675359377950236724087871931423572384383839116701930142586556441907122124772214619780703699095227724667506620672052252895515053947072977161389442284380389896984444550696445423998443260714374951698274819469296326801590143525071460895334652074571543489249407248487274447141511206822060998747843086339332511668226498002814563128539300569603183614415592437248319739458258533396395931235195458393423021976557263655150519104199414421829838783797934759183112032601277326144288120722875031742666749023564791275689172898881509294771155558373832317201036470329900080930841064884575015136034773607661149664876593075455229739028902298331445478566846181069492101135189720240809751985893505342252808930526642600799719096822134770256705376166821907230198346320847433047508512131731271192040049525630966993462065184485878735808332834857916251295866357355868791028983086880228642387938673942911341818880056547722445900017823916705925771071718477476205069002157396322248151254428560310863922373277023795823118155331511990555773002894889668522233235927016610188202435571668609763987304420527761878763553520221491645979927102769309334463490975777523977261244763067038975860058868657232986446356010286887922949257008853428876531596766566584897870989510852615808504682317583180589195747286325386400257932429295008586057434742892267992024122667466153080293301588218385894327899332295325336118856611200629213063133824095642687255528248790870240195533947902972628513218749200730665812532210530841676196706290708343281396133002424624049220409192769476679925146126477021595234688838532289724632128185775970112204166404612676664104942906835565982053909775830849647244598443035936301241404008343264856247192389853872019943729296766635955872925310507152862025822040676051807109866561769646849584834399457055179337889325704868780130903738889376227973431606571001443449876110313480596148200692567235671249981028534260459320848089806715318385912594950100930219110732744886032787418476788526750616321808129389172266690387491131284516497251550561795642454461142656272679103553719735450039651128021126322797744531586754855954540013824634057764172422685498509479713711137391198954085392060398357542399792403110814287254162306505438304235420569819759284143371329802042869679658878138709027339840719379576187896387150807053650889619846701236470759931914831591725919736319801052996784572962512487762406897017355661909210838199797598361437552460258268622137765013861004435941694661612946113412061297134750111454331961807018081604178847046474109478555782822888287462440351687894575637151780142263452392653041082718812386392497511753666804355501864406944555786137017303870669028449895022787778905202765173473695464195473021789709172448857991745393608996502136311166938774411410613503962988852306739402229600006846992498695739117105877288464332909407690694355904129869366194061907705185003396767991380059942169319533613621676639296680851951724293905771307037319715580510985347861121128725372582199853509958965482910832419360149663545762221295731618405370994021838436367005946512520544450783809366984563071711844213117798544681136001378243769756335980587570396323874057250787240477134992777226249394298728057586795159051697070791253721183593109295535492191095139705383425482124876719785922805669346401448058160980415859164891651609944754033751066436296851197222900637838430472202324374333449934858708348722724653318091830157368738489776409886905632638879946178527102276220206855285781223922245276304920553898748899652454328145683636127010820714389015527981545600724656263367881602362840346876413224068153962235047724533754439322026146806735574800154735727344671831193530754861302280514535529751753523438548994300159363223737409452318892343856892099786760573049234393759812794190852009362012468288830532090732309288743540900561338693154411481006552528084941759766048157849899075907825591047015376968075938473358486716222561283489358520454881341698963886608945554582535119011851180389863670392584710395013073479676749895103239928940147448146541274881550600770208683087487224301804732353428808456850847743072891622574559659033960708681725736178657993687986134219469961022847911375475551695647330200111037183456199133874495906058487529624551550093323182972589894712558640724698057797488568780543043218297195889590839481487478787713485159311598801188263403356643314288776036351730865290533787694640476049316548569448930439046561106911206060690179107114775977672004876151343119981098959625321766691126097372759635050798561601880558949111994277979605201310561159698669885149802703984331185399658056475643063760066390158672399386551376557770436190625218568550928904234720508254955815962406834542771900634708458679052569493577456212760736747660996608820938106309398010629792892917585824284386942305009081100198340804031192756121606572521869886680786370716393102312837751143530767190155135286459753834928058280307074031272990316398610298642015591256619189701630626182799474538460868363501769754518025205669465715946575731489141892409442660549069686728754547632236515665636784921114422453384069702959468527695359892864525012884363427987453803161602884913779625792370320867626051274062584318414845625972346974918463088032473930386094834396159106253683095543641133985953323579761415658208775640099871721433698654024742527376627336512333003300324386939758468220980198613126639680734340183852109500116952226332505978212197218600544794554190157782445518258265240228535918116622301193878428861313966029176013980654862107128650193238012441261320196074821175763237347190600097723404108667831672644527907756413597458499197772939848904722219504467731574332144060885403792772434841089716705339021077606838309491537563114268936383302319906026158421870769029476556737603684471608955914252908800718830949314400198984228600636999807878555689937485741194942742840763517910686905949111108668623418980147892156346525898439522129348941612836694679523805363867059790578637724249227239538034359223483268796974171291096730468174740359323655742183666101078869702236884405224720455308195367423984648436689547465149280341122887291121569240013960789585355522476357155019609925490151516916864413677968383458894971119900454150254658301767682588237182072862106618922237241675707585778160147972544697429927271154021978597425631027816128123369751833031921122653981350547514419384629675002334060479095887057882197847864661069635014231661664743940646342044224747286008957702002430066838400874376541449630413684174744684384135756631567992171392198253420209270642416037416039022872872287634074552800869719731829129853467942357909215038036448663412636258188115295626241092824026934613188924225571755338246159204119981774133275941023852371540636272419238464464671606655862082809307394795818550613153226278436198091439371114557326701504333403280313539514513736762710842162187469200672267071369327771870468932413167803824866581793202904877221268538759296300008747911689502749491399138771568262492475465774437361257891959837368065631483828626713478001596758493899041206279238500461811853725535782167575263485515818080151129325525682404101231445523473679192285446620390938427089673791322404398245721206941211640341146725473554821241014654244553491472524367168944123177180853807105014123014353115236521681059626850652221031754728542397258198923823904122941971390560625222909553062607281676646040691109101036483891102165720752506386950832285599773749791930433355676435079385990245643747145356013977716710093330472172985764012105716703811468748301598247002692283906025134040515110949246563002333745054382558911411909391555295792993005693661330381019384925495499783053126114401698522677107777288965236997086795473678307055932557213946248634770481828149558476745672093655384692659379820667466494962889041549537402111446003551414118939829646675901354647780636839939738140563919767005763001843585870625314708566631220145084605387740997516960766218589915539535720589460386908477086915762430296111852998819476070673719744350510118379932669893775653170532644949675155218467858918364511628320914346758096912013267117073214779476134260154760930415208176016666587121869004155178998898563363342287101499585638699415911110544976565149430101107916472232189955062507173975535963019305565049680113845547573966755092029458759848414230352563521154152549985161820852445008232031701947470056718368703289261292285617232374135546137100975285784151196786422568702547460331074830981558072216383027320085075823241978035539181434535569171991942158570808410977719417436392786731064591610183184400923332343314894680521225975386616960980382792446893573877623525713482611471940767443265270378618880931149865121799596634124416583931805843023815311397762358399253881465189364113014199323722425489816068862617262674622137114825405577118552764364411691967030977075571108671476138918246417750774711640269587627659613284254238112030943144795468882413668006044873248300891956987191413705318437864265790483356779971812019493863763114958992964713050516151659436598331492701218407244128418556849690765211036979149141094225680320163467216577736737858419372511044925731392956148815048583340743040209864358388185721252784993270052955534133478937925806311609323094983905275597567758005212207564494840788218640312031314997614211942962897900730941411885900719880706006491600770524441159646389225888500820403830545022128865963392118283253034064943857891173652355574721151131217252778081525037217270644112273408636802112681331564664673070000980743307123651607104993406568864517451590362121400187726895682599703276324875548611643616039582527271118267760926551225702199983998692132460758649557210088602395774845075332419817753959506561782129293307131700417801636974009348921016442045227124593962308327873252722013014928525515748576427338881070839188755563987806794909626691061864601501961001055761817116650201065162703225908621362219008454411206316193888772048829098531286630835135346097008025366401392206782629854896946754952954283646007557336895435226217239548560324158601095346886713196162778904231737383076243079623972399346184098514931157515226910085746642926755048984634983364843421261824700390609509679010207616791307627880235244498990571443228002839462261375761690987445485263887683288476998882277795121042184795190383528127024749480628996992140584550219159848642469837675657890697439453221222451397552207579442905814812927303603478582042043984830046783931671962379395656350524238867767653893999315706972386783355296824800885807118921419904097999158226338775888810868645191062170324530794083042893634405865789298655116784159870774090591128195946723096289334157388361725210248352000444125491197237602519876590888514985840298353162958310173089475140107981869255995197622524350651597083257888300906527472848890453528542599660644795885658037831676840164021386046320928413717308354451510217356419588899297825890653930111997404760671576088948123103571411953957994602561083204801458604567912417747528417905544802097752044933876981476306325896173250778856010649077242209224034182896965466020035854357524700841763963795600753406031063810598069497535895015120153104453655711015763627312064985969691865892584689307087222231886826677599769083147261708102280120982441243912855442227072251180452551083753783432077981904266627502628146622963847492042161395376665642702653150618329749544347380940416245127105826324568542759722184665819717612127702365191913734191388807964443289330533163519942680939037247402283515601238629146675075666861832702353065317134449040187087705961602341940906978910571809618652846820935906283828692786550857781198652511700373821747453626553095556219198456544424129019274067916893759652643366177061616565063084101953041251194983524956287879703131470245804880944308345832807661323273940497384680173548322425072885030093071918920191826732987613221808631811326889695911960425003215107092022937516347280267461862812228444636355954157530651494815277848067619836501766097468837693421739575412045724080215184358315602861882573560469526510460937791905489845980462853258651401388435977622341016545244242434979374411862711005002838669656396167145425500979945735844734057496387211403651263584480017772928336716150720585544330318004653852068956683903062527253834555310411462803151901476483265146308508128453622900060309771290416640544428151225066134015148008211223262856901171834579855798794307600919330435551522741839506830913094415590768533251855523892442887846160176335503537179379070475926042825374317956988697737141711899123291424514896007504260340188385644469682882388181445057094057862353221781110140920175203333583942214614267557849362172159295875307949236994655518724865897505409987471650312971916946630697753519327278656322292207880058343940883562617194378690078476083549816347293675165333562459974406415986871158880239026114160989625803373444177469350783558598655718625826291045878459468965915856116577063437030885878735375174817339507700455412590356539669600356726523390152215153903227183739058393365320807810168861020971724309831722329403719572999073865578188588701489054723079507038687643131378244157857556312931537011787386093361646449301126393712275965153818386375696534077674584787286297898134799231055271236525962378480365375343274363511320914340343598548906889092923382648498522682291469332248040990902596358622594428380825323421901069125554677121392008689904043949523231008846231375886855128655442043518731343488720911845918573772847724320745695502331223951410586054415513623770765023069902726492259116550209250213302373384889153358631094627286738198905451283802363014740488573680360440623002901474468747148477397578945613263810038485226612626184189683215681663577450107105168682526674530399241417717121345204765612858525251155462882581073918634576562002702049361150776778712489227765455797244994290454527572204366462115549134479252687500444873915779410022989318713260854076511808565449297583802264856737445144366605043029091862489423746458790155328248571406568490801222783911643574589817566535447658418866995444653144817605393487080794739309489512516514454756877217409732375483597375230374822906027539754405568851726194203235752444478147855556296468136363865095627750069651776901206569172817298732476971551354802895372073776297882882029598574445492334376966011169240784844884383077729011271764551841653713597839264954800159453336129582399915762574569325903684444979583066618140467748490963004957662259268079520509278708595672194826414752689938899004796572859943493480470520773325256971196424220442672249167181372265259066453522133556518974932337117478356026050244611690921198023115897514859415532038154723314913936058154429087210451080130432963683400753320101894810812594322411286616686178485879217318821343356991231162760190879752938707616935131252292090715174486870719649613418340756156190624914598448153135384890314202972711410645041887259753317294643975532852681110963651486330668516265115345714930112939486414767146176964661988066425804272492668495851351701313964712574312367281806333072883898831862022328042176567577998400997099929185314447420305766661482180097315239432198900957556574712402627611454605948607390385387260493461030185722913405161284750465839513735758697496626376088637750300305823400357169566097551626407859945342814326857234046305838003346809752111012884654476013048922490491279428396320921689029553836489035761362787828743692960751510957267976725970732523103996811634140236142748815838649814554218838307558603023817960540132364828168328851140129387684500961103904189033353850411473168604869054746373947879535897948538242579038916756140690565958642776290805881163776285320180036767864888449744349831089891865943558082165463052270904166915514821897367714610223192697648854874303940766514615579695414162798973218610910137817299092560299050226854802668058576532991563348320743302433362509990381398792335470581268102096189600985953569436166239459003516654140216601061815318899844013335797004240967042083003806037215934799453236094238486825889369271220661443185883764864239608452911034107813142577944695209875162495425561338465411867163894480079779517821330904300941328180469211118147337064247413781459167486012825700489332065322595314724051979650772041058522921087064195485104550550157316945766996786313542896581615343709826633840696698859568561194013294025894070904557717404853989061955468918113805010154636189974728031721693711801557012386183288964899306828396014882306827778636232431585423834212032364483926702291372006506785510817301603088699022492070695908767168103136760855181893513534755240876148315271786009484664683934857978208214817413408698634528491698006705462012725539954691437969571542517503476991460757302745210295465973576235817809728891680803818046329902013330735893021722459886766443994884226120895215782824541767803145026761584828342597332467729220423356109968772842920253753045991676651820067934219855530512672772322118484050954669221089151948643951631351415016336164506795459595829079755752794748136500189815443236840064001094923478512519461007788304925737397007074196154333970624505480671389244309003774816749148394337656447991383029720245236771256168858800283996347655410420112856697612786644593273537139306211339619665670135035584416523287982866576874872462732954203485583182213479784929109947950876052187736926426113250642964598013809183577468360079309046921685898972393632378119468945760967257562339499883991670460920520407561566430367025380124334546640011520766328646288912356952228788421104343743587440826924803129463083558851600578186709598502396744023474873059696839140385077002920804747168841513170555377330534770152879281128102623820893970849354890579714105772801111736874312917926449078468615684757855668188602915829286260735991189319827246174209982250020892469293960245197485861538722535150038730329647032544636970973544987390716282985874405473055992901612918380891067540809235102584300170539843292021444885622809612795672527241343977675786918961435101053197893292417236188461201444365906814957636790440906521617654988092007079222887316319446356755492722638076713259187566233999521798597249917584300809138366854866429257918166679825463239984245103814216386672596508137690010335627733426114947917828704501142875883945139702785152546239402626613613927892361476744509116419903009809421084550508004770571973300238360790996022026839871612543497599195199434279841087336930905919488983780650754599414471682692219927181746668046963722736295064809890383542082164970272021229224236953874604900453172580552275428066456826210544657968096179359195324564100582841197909629037210826987642282901911995985114955629394971259383282830419571835727029415090067366821739330272292848500341892731368759954207947789671351713251161836976847029658979645542509722810375736956983538338555992941856825690890097083167694982583917522249987715041143429333543086984659606196778679636626546790523262323686259627834758292051024281520682790871107581159327088129848684218875763434641777139047169839493615297710432624481377788241406331108890105613958573049287028960413145147839152895604887724422780431425793664346404293240229323170706656876514268659024546408046891504987484646841398863950026816672260576389074496622012632920855676754548176554563394436970806601752500085667161087187848807616170551966719521949974354504064676169513688061081128973617921091104522798163900548547201911781659422139968228390252191103760641766666641494287508335588539067074209326681214572660852233484910059353562719538570377028273055305733378558125968217429908416952036445694384172366495898028769275990899088154232403857468961191232417976366534936880254019904416266333643052190334165742059428107138396097768388838006145944377828387912404910628878715984905726803656110627885243767316616990654897645405816783602644902556948799744779309925994452305954699454996613100897292509834547572562606475271454294162170123945783803666308170990376003304979586851766373107405681473386580027705173310958474563081637384841025840547788539462836838669217930241258451097464180606613445309813433799403147611341700829533848907781225712635067443875155565831718306348896653858991939260956206548774050907026105762359003435432438014991850375459904181398065594197910529345772380183774699971378565161933091227436298799797902324212973338030052365672491730763736848337744390205079681247571048606061140656944917046143753259937553879995929801743510667494860376992533593850832732181738232192788718175092815099237838408401693849446018668125665182235265774808604709264670130841657763004591883101600005345918064533758466250947220920011723587025465872517825379402831466875954863897512591015074112092854223089006949322295727023261134676658163693739325672170405598368101790275583334600488384091351287568715992048394781360905386123575963939256329939653226215530105227559031981307492638548908548089412015446431839729409389966918909374373066089437994621433418128912999946587921272990841217843573774836302717477229763899861676447594448692720212032216282951424685814209025195722723214328633773131091381482688807885194338474391570732813633283417214998097548461975583178871517830537218913148153791816636705455310329295654010578093697817681346925919941860416412974631747035797388125712078942894268515878284896660292261413399746527847717101738971050161905402986916489160007374713427400879442475239778807889147604569143061733343387103225065547372227435371501104119682912285571197744178373870529404083582394500829358100418598234916276422175744565313161754138557412106324886288661282947745577231669746964843708443568329249058616040716626958726693083917245863534223605572286123623702838979983306436172801201134107450478805466222209271453849939133688562449768063294866644160414419994158882187005785626239004638166687527028566761040278518245112776630600019567272242305410068399043747655317990156945965215828614236954792086996966087579403049852073454962856240658848253148609494174660249986559490503885582081409989745187091587654325222369459374913857397580383524807166540530436161884278785069219975590368623974151190615200539355451798477063723904335037039884307647355410209476904407933277816497275422536647532336300139100901009999973810196838485805622905513290285168506418337153750435117336742674026376293531581078063231474546866640237110396695186518766449309514837103714715729737263716348543380035155833843528423754561896476823041255563092455455515371964054359946121480351989506971604055749594666350305651119236850330902818692045218400614318667545785928129639535500277122675371077258318232075115501353854590465194205006171459561072812832403035195055872755424032634907300120742824335135141785069782791060672482368467743320109217615881531203529316488968705291330665874967760696192081318023500408704149329550777945052031549991181084560090721637449675976071994813522267343290102449991029120073512962234702420800648734293910347732735115654761882685408629628327476017873134257787638916026888160943069191962800039463644314429543331167692620736831374068977335722466778758387029536587693858111465667898234580639482524939311973874433917264849880377045474914605463488081984354477186974279254789381271069888716578759476682448503999851895407768119139804867249958575838016669053507617170742458073048487046686861784497601960786312929941915752767506903872108427581714381349474695048841435263527700380919544589749514880814799292412075149152512975671331978340670798454806061277170418501065114771946037247759660800130207264806824650856821319969665381764169344094335413748086074126756309052427517207978965665566243584176176127086574722399709534315261791845440259185269212873177990569026932546818893360265953800394369527387585750106119170319026621362320672743070016900410452653545478392158770509496370068778191364386080563280658227153427443544205676705854336421950565485011806965154446366074567119101470477699831821812222354769041293920773016333729160201642771263252056947874972314294392883593552170687937495577680476446743185331944360795574185982436317777337295471123952020337994555296509407393188383107844156688942752014098695396870473117588884390841815863635845409839237758483017083821292183359354186660134481709798562256022098590809795401570339974045496523148734931401621662879156573869951076081538969145749942917338998125547635117954130584842892070912252811258074042035381649441957346346434925175702971194782328809759759868187742814031165283334033631819139435819445413187202174858937660883168368761665215872433567515591092496656161302700325221009865734239856631785999250675551809584749708639436549032653279568682268176070544573070146639515095113573249300822313772396905423103682654569641549243289630574060335679035932771464019682477521734850100322111557656480779028794032817017523574788754017734536898688565513701810083164472736652482823700384494412676014780450593649313186611994885837977293741837850371268817032729481439300361908257831588947937471889469510656308500178088174360667079797492451493746249443064133750997787028475243132895795226922796035313858869407527166968405369445091776183054067990782742208662971250507947447983258854021934442772704820666719422106295035886162379280128047886959945760184433476970504681104895939445940460984875214841954207527734037636461193004963756059281705446417056045166832372083374572539653821503424558905922998888100369372260893021552219063355959559999465514866790371907758971496090447404480374130813603048815902542442927979328622059429120602126858349299324816138006280578250905513759802681421715010131017436446623655421869776146181759168949107531331114971090973856317107845766180679032472807934243423657773401151820490923165221429703548664876312749752082341177613082749809795134643564253566439137167943160079447286265518986813241895131984274997152216162829444153503899215417462591691939567036651682898407131026807733455063029912437547039180899625587174531940650129061104399548551367622612091336868193802497853426896753991529495214523969134013115308331840223174684885916357590563095626837557971172593365367896915271074470245771698685863161229175612256798536282690490606608229591175414372724785136616360945317835585891376921139643497009342252615148807204836517194108286875401914267994434269934133497432811949269068861490162731041329685079230123640800082151625741484904390888858734329432112930828401649300598359080385005240457521602808307811173177703089855936217290836375684176173796348827455262322069759282147276493004526489294281944491833062065414184569206368364204986937996491451822205694214513394377759906219254177174595478214701402020020222409959208326678703939991310170222233741220819294914394616735382694457821636494671653897476876420634109161098312691302483201720679099832953731970295973652829048749038037229986046723241225169514075246607297793379264531308571334466396178144282666868407170635737260720260905770212804503372773958049361860735877927591216110067484841499586515325487860399806991830964658110575306158131590562267401230138597844973632243299393589876650645967136268516014163666073460278839230773408265524305868393233267283746582698267750628563729414380438681309534693229545927384618944143627131435750196067967439637676183781166485498146310807040912283898364347178228937505475229014074351779734241176855375900738462396188406425315895467156899513776405527581490046788485861163253356658731960660021221812523189002073060272357339937007533342099619521925834664645100207298971567330760348098281546431570250398795004252335925428065933289359217327838687838105886616498572907372392553974088943899977045119345739082679100386225923434911904349056524333975687632312387203303365269408983904895393301176527160653282008231724576314788740931033684175615000842541258757028922679667645075774632198029886373527355033501872333176757632853058932633940769519808399488773648614400106181417995504198881515495750661894915903915291720614898566141125076210219098297324977413775655629266541966668009513617377310772245870498412906464042529325756602532364637157162795963055094486357715653345810310405574775182615213119889145895916514095881653224526865582577998500260981360029040560441647282762765710621831244488052633514829181163710886470722768598494737520499888180133967006721736489352698333299315629694629762316969983185620885383328122344266500519825237693114272116613980707532788079286446429636129809855725944484471375245524292151251170093530638337062470543789572105471952033240934768376551016395408090935587560794941693592571554554042814378556159751660712894646040952047451854281098551555782469482232557986528138715351361055827553362037407970660623122912258177663183747629664334062584096132760051700689600144391932058603782641003627948084003539465941938897091482605274997137895334440755863218745128094440035610972755833767010586763830050568333811749097789836047862053102750815619205765927736661626934234469060868247613953993976651551292382671252313505646986798526685042249833350701007952257761411325733689145269804901732230450633855005005950682655590011333644643610691060004092999681381026439821989349189122687942350646122011884409273637484008485151198893896491128943790908604761050523827191618624493263877459651936755744236534630444109565109953378675284992488499723710597766316964503147405833878275150068849756637053155684405194216927824482455831990821909306882488231401718895707695754313081085769965376784634632448617455500048061900287237773846504360670302098708826776257826257058538565824745662275925645583679092872351684391122296499247607071931298358691147877052753932546693599060258678298148281364646586580834096800105276914497156885017461962489373008995696249588007020446551103623171995458879399816683742187157082400873576281076509018848979383445482214238960566893656208671921084029941186754843111711987567800861466392029981936354395241170285907622082397957208690952900222686526145113402515851513084324746977131976444717198765467673400614293337061792078894343738755036192524753395000139322428191687251992425656820162645971389365130432259117611343523521015044851932235185790279363802108715888154428086660939572622723723448535714786434060348387569725304076320866871378780626304673410725324259779606873463941902590642768816587378761241744852787011706317981850788320170986458162595543926408953420299822992244433030865097950158559162997945317700715904377600026801912578167368495355213254436328949467347018839556814204410504302033299210772568332559251553653159660363383316019120631028674174466425107994806759686306802556261773260595757151511138860670097875267537378622634948873463018616956008368712679814486815701099618754857880138873538447390861048164023178499004803589565359507934714494115553285698098300484627097659175547000818969931919323204439558755727179625982597930946088367475815805056315062836817304076347770131936981329897811069638666764560696014642390279488031431397358374454771308349787302621013644018228767023654443416685932530875762366779705420599234727574486864051710249363707383354959952178950075626106662405042704817317204775744190395072548408087331607844586575027098380416697050015048644913317646055378565424322464240290610138001056533249231409744555425386272906600854334244255850832332099416549143877747352185374665140569116477995764270662213223492173123615826235690051597134449387903191412840592945349714228127238974998499639112403876038617198530591660391574884109640538221113347540151643987634960092027306457975582651759574508395978965050507653727996884240164798947686037313193272326095446352674494771172407459730402009434530979117321529656079204600705620767404314024578973649330502227861724023162771268082616709468004308920026030409207451041573039811905379808410940969117020173425035146845314250386107937627237374755651627293100782508394010235149229400501709155256691212077881559198835542600797544453776077191393563324631628225406196940730520870891610300410213687065270201010857261956091502904857603944259231197090429748940081827914132324007355763391762874626381841405201924300709543898124874976262673818696265754629294869184412632522043486893198242728862749726874543956145207072487542449233000497895288252378450237270504598408389539293227401074155298999207259215033338754943200018566870887591454591521593749939690624732447818414459346668168319545643229928640780338904190701777875901373327398853757514011717746199857737625466225773885234632501549890706234542279427778941605232682703386776573318091434947694544572115228222369963883875579173399929677671773556417024467078108817077620974401676588502585589818744024148412316234939085337944997990263349601150404009926152820934069664094459592470351134222407559260820397502025127196366452987170697925219430183015523716943937464236851543646586825317959281589269320947455857778758844307853414498693715331020545267727408333933484931533509732822875879897598533600446972643515240571104433815533372556549540068949103236714805871573471261615528516521506035906313479308799311469733891270184286974387227501467423685883230198172105797609268614090118425325346702338325857053280724002315852840881276546606962196644688288414937084429966773738642472901444857970908425508832523138116990921246013366527818878699640732190680207654586797505040283104198424274317649432099155098323318951822959704747621791143637475947603717233635506251139128888472249573918344720114230185052683734262392107042719302435235301275995853093118793485633607937058856918981424086842873434465716360999866476568729823167893040106687398760160675517057972666416513375889330730038261422949811984279066328138536756253287440415054722912790251454865868363672322869054590770915345712414996482832306437310162766599071830613184221641509247142182256454471245361669015626000596068523724292064718307209823964483086397238024665453501120948049514769272645473548591667788331849202906660776750436643353299645341113165950139332287981202277488178098984508586778663656260691974978961951606046384305233705647929403744321728228746818512131812278524660151782259958191872370882922120382584099521779030487460323010867508266977233375449050805823312247491486729005300056967204491137578241172866199273415191620771260660204439989248488521463048942432586933750655152691192535121265550051201248210293244648620673798252398578242818758402160841684543000717847013042877160426118010931236730787912523989985265743245363921013640138234890909940708778463235860905311318441221056138853307715997956436690500592472077334612750290132818286369504149201352309093880695732896625335024531441162868051798542188944112629592220457479035751806022167397194752284014576587400327893605288075623303820867917700427839747730854785329148805196641546263498845243051660152515169765140260292329221460689253668818451424594299115927005231344556972426161207035700163430476241683386448032201578709549288333283264648337235166466565412565530481634090322572597760629239163119326082345659960955506100123859184921902806658261969058141293899917426212861793996992219857427437480882012321477694115977811804044873034689233647547393432027169442440560874458353772308566198633417685424676172465830839200359222104280451824703471973748677556489680270973185440958877879250919379906690248907273176539008661179567200369265573324781018942555016743431520823109223793228107042377464166197464178059971332598148547699858973214768760776975930752166452921884646674431313611337387087545839929640804732657254311656821980256073191132201445945606092650145249301966513565171260884378414600235407805684406884797192195473655530090460669177131687431944084510201460862304984877507473925891711616292753807730742933237662590060153674339120610209723605251354661019965641483923996475611501415792597527608123983411617068356119040808272769878400606943695185754649333151597455625538348267600195707809348888859687713212285526790669638728914951331820836337271063068600594943246364122342385867895318865024524102398521952266220894915128895033804109350478020969766353304809087392779379339979499078436005600443459796146734655126343599398098187932625531504073836907986672364165089754553243782483985843353361942421670479246956760738594790545571677545411087868272827718532356508938762248111884737062892144189477766165417493908153604983107949598283676015304803694912599676390464523315367174064523234812748773565631093168993459469409223749755586544054824647371116300681349301107954452663448603212281225001926927745485792040407780425094101266143988252913938200568046718955387172255493810411351726205561795003927409088537401943126614519314679033685723078506652837627583332374574723542078721035511687527913620055856795220075283775185634530546687516283789568591076173166505344128721482875597342616256517166365226454800304067706016485099738476910246109371004553616391366134016473181733862841877790446002161734050927151892654587724510321050296371427287621534879887086210879267319636495131462650172324479997322361406735528262023132919509365139678031655720922070662544522285614453917057780465376802675571858715423514398249255461548449120081608469637069179035872154081210588723590621528378615185949680756169204761284989821544827981141739660209586037420084884450383561263634469773613574207764558111593200139514271005546749790186146816501946944400732056835603536839485877409210039626246274839064579343032327682810369309881657498348517120456936469698058796079587357466968313907844704743322486770484812379805908309289768683266978806073040793794637036889927610205816591134737173007958901075045769398792919348909548864538039082225851522874430918297104465679310302278524564963285782566515323221940451205578134247217941044443150847380166389390979581191083913033796533174213146985338147907258370195945989148626972632784607528695944435419943630535053907125248001993146622497984479103687277644094482632000679471129934695570784776275616473896519366359589537365305815500415354739471334100455818818233064069594639594820592795604482252105783092110447012235204429498675082153443485714429939587248473264113333770017192106845586663216804009565843681003470214537860275927629707259793570611863513404292777679280382703180652619535182202949657934209382357477630429614684376470985013243206016801785566086585188526026925537450022355720659375745871645643156265481340389692078639209627539637501378661503488233603883927862817119141428338695181935578285564608913001507850376843542616538255143118808890078034052117397747776828224154867744972011908632939576371903889421868400920308760704205265470721099478461297754931621094444780000843352546022766626280302526911813614299293456399292419458400256730420022001002683517907923987741348336586148982062367173621829703957200702374838106044305301959111838859566063043711375318170684496885547053681868830823109400309841623719667431830446727976672728925277036489932689295183879716119860267754563525080064002400367679731178667179222924479304523368969280973459170287567980809993804775701151358268627647383689141684771227846088200683731003501976342134312943670370005925017997716225318581774823458821917235963953566439262195903282283333895682831135245502348655238951041814656877238131726403517198723840611776877389407577501108174449580770551185165880007764094913050050888517629545862270970371919514079065662506985631228452729407634458483558736789704655167744070972342566076558030961057714297391516462688376372802924409488945641702210048961282261886315826681919627403510611863245968964538637084586630914182046804687177167140743203804567208900466116060520403155197845582646629370474371492539020010879599035009393673336430871354205820418239038174155557944783206526182943207124113371589936600869558789066866559359460144071510584763209410191734551062530867964912694604212779151346063050330733881253604847114525240838594001707069950759240289008745339540809668508618938048929558002607556706936044491544199731948825400427952493909177920908515084710196691012121172420648291874895136375245075217889962376835946426744221890653404972123938513398757562421966098478874475450061596126195380007751396323617736164297147240785384382736426880537000436268576041606437173134862654430171387092575079912344780856164492429269711557583874648511998362844263744419850635814273357976425915623798105114932759032246992829881895527936824088339399577112922977674845413886690717765186494657855912483983371560677156835952647976510214641638821845400866112707524136411950616039885065797624604646867207245781057719101999067469569843387134507820650026850773210933417914173710501791837085916984506563579449950929684167572743456610549275928369387864555333152584330182650950205405115088021398391744010360128094058652971350226305370296157087067591984101018552161266042559395523149940267208593601161011158553297518329198637756708172254641409360592796139893255201055584491585877779760028138151334390655069234426850627250377427601740381207409018380903860919052297574346526918907852964536080788125313195941485771208587093262751086955682418355000291237740083546699230254606894043232702387127062160177835697970683062579619753562246408209337128947665768212005197878718416525158051823818110756752792987394347443832295612739681992091600266478995093377117671139732235730781684603465945563184246738823946762664922534563264043865605351936314957727481388487814446981382060924454679099566035004225474388747706023657156280770599265628311212614511485179080076466464472700539476071627231084481181260246998093088457703584485671513385607803560529317293585063744489936228659431062963373588824316594966482863281378036654644827394762925084370660018490446423614410284491448184566061124881707135232158776131173158694473002311032531674715760786901122388483601169534752765888641153956271330352628635479635101874540570431545122917572486456638785659930634514139437948260213296638072282452396781333278595676888850974071196447552426200820000931157833204108520870323026269419150290016684321597549987754597378231304596020821534014647691096379742288599850511290149510529534902799170716635139835090377424660962702616690835327097565622157830084624495452400875892341655949891204409780698135873999962400545260532717956262321343964141980757909015892992775975076405712465568746732054029956044979060649844696238796677095685352811368087610933815671293234469106044028815902272923376316492948564725267061342729410089279224547608995116268222761403756475087173857792355377936944555868380628071706805640873715729756886219914044654623310054170986197861642153823952020121899792867595532408449728763911370749379422401900466109023481964359504848036582178519771521477160286520807845895908246418819875320439080532756800398960992716621473010499555732787055757731844124644293115556532148609649552480147886704971297433063455781326199113415672750035085283553307954697297340962220663061400477712411461988362843732971864518391764313947853704632993616779220590717566320059615877136312522899870943851567556702859257059401314718411001302904011526726857896930739475855922055831081107656356607096122167122025147403080737417270068154180795498113254928638430992395552495366284526988590608145450538081516143178465337469682536388947687154019345527963559055199499690934075589175611156347827480331350290883266269517739484333924479990599916749914036447141510887226829604171551980964957111265875109381002665909756110394560668671958190576748394193317021525554375121356332946740019149958110096843395813079673807062280417826926420609652404364109517248982627869175977760040467121714161257574189423113509030287115126982025656497452973985961104871605110754131626614334369725185753299355878258263570453461702382696624294274166461118471907371056757693271208081481785138192341009111019988792920127901651299777746238921165253462297282638194289633295859376721245451366494758829221718065317377301385978928424790279446116093941620742985632090640598442387864769999559215082756738403311138050845800271244592300705646747804038680924701932711109432140493424890686307990694677219784907048088101958450117898126784338189617994264272553179509706096372969849346293525465900389547286647300017990004294909753750592050760274313894117096143710726989064181586874769242604075637918846229917537708589665470064873799407575857046131632650813373558817041928255906623919495112746202695823779777355553019403430799296423154201062749804970409936196531216418032046149023758861393392135658845521911400210195052074606543719758832655901309309892930559097080735368389178533172031987848782971332610798953420043492974925213321366152739775761472839641763682591976343654971377367351009254215403161892691249397353738823251060750165221042808604005594358932178148898940456523804311892354650436566921355620275621569348032831167571254175399903290733054440236427960006446798011976390108155146046911832997262184460508952934681337560422817553366176134236368618405753720935854962855833941262414220482435409163976516117937337819398009532130547178392951617486049342565757936784399328243383379551973174195611666088926359833061182138610226934706114796719819853995945463160636333191356566482691841927679930236719881361013708427639040154614170988006058796416738301782625689908148377850067432512329933179610161024662609319687185730061092800841575008647885344383693533257077032050049010110445000590638947677646264077460025992995735431108848053874317800629656667253729143196590865013894231679441606661676255295768377890560112117572266307880386863136893934947902553204532533169098596351789930583279025845541463701302105133618211607410809936175522933404067639980670344330293287205132756329357274896094459196067336418153065805117274778834584860679560424490274605249811441814536366606010779257707455641167660555094001921601731895708286434865580203544526522377467733520577134337259592309894609988303342686304045634149646614825218364597600167922527071324128226056483366607168723501031905769098318223794212244400570815584669346116508037235009153067515037629851981579286684522264398118581647296781881180655166942432098138167009470288098431730874376782701103056366408019875025499634522021049218193856788236628898790509988043784487273830525770157870331879447049680787149899182403688638360974755425043543794795811887294213487006309779784786535027254410077442169073306417648939137573137364036961270220675677990227994245016177098194080361116519204827125245200983287135422128090442800501668410260586600822178610068080026378701741345516878846193972025613831370808406082219802285448383950003261079892993480971138126641164376650451078735750240142243039678020691337406796883518644614959333311798173784534236759499161817339305659410171757982974325460741083599353008231179835252882400381343900993635025093114250221639502751986296243402780802195473436733868209632003670975079161081892927383856694177322528307137364929741625938160497979201581613357966035543841491562249904837758831432949369557777111155779371286953677320912946860449986770556691390292185495719073447814296494560859132815678462515383574518219140305780802172460308704111196855824544165677381333025630807249191648078253730711808904269570909349987516289707865435284945564861576321532436056128059711768993228387877616776996432662252731927624406408495543667168937461077689703247643562123553505327411842470787247816565622627122749271149375223516306529043885531845572547276899554477904564321264286966817845818476753703214759186375493425959687555329605255836696545376762785892008295932582878080766355959999227530569869284515247069456755468002953164146681606634099196989566706983787412699786664247732661557174001164508321617043880854509597149291447956829052066868136824069235463382049628597626480661533636687456260922234345611274860984906348068965019411354345189622946801118772636503299096674345103745047662630902762526820238770084310141688997196288542484987814417239592009052122305956124156868008316808216865151058738248986701622021489187608505368822759529654640668848561842203879556319454696532888473933678579372701656847430921660266622543396419675665391808721218125216748094268753830165436446784853430010033390342605510977219341295130701695808516837165635391467924585705370661120745918323823631212180499401306717066021218443005161144288831440192371159998011611660290500984466897753703925483562313021393602836116502789809628468992620836815422991911044163998352601565202618616350798098773761452149184784992240485553228191102758558305698846741829210796904120306042771848962727997430268305313705023146446625655089118099540187566414322572306960447508349461443054141945830802292920548125791370758030401680635881078465447819808986661780937945242629446202669733255888210794906386815299295379365566652025216772719030163678496254283162704529159930768837362920947509911394794748443107862363832384138608102091344881170259183990884332819454486743985478895227007355060086154079006379278744974539763475584333787820199457863864449422119018550917566909819545674609058766493752005140066020120315217048416440388565903421872923853509558382862420233688520260537020702676202878486587579722391388824238857969978817718772331136246519013453315944107472046733316749869269668906106561641536282652507059966944031982727309581678735285617560620338953910835851930595222833321523378029639618123155022689973904331151711028242506008638348268673684959194977173384347981736247049842533166272041567483030058133116271958711352163586020103900130688962341339249543785241487712692151652839094107183150067197338618856996566052829651124752376245420774927682572492531427103418565509817552150417741821558069578860438307932496980533591058745572758611220638181468644128663692435216017968716280149634165512699521603346885260128977637616756436190433068519396392580688943338418763550339157108149326109932693908059034260568741757252615582214479280018000695757584402246076517673581999216889264927603245710384108354609180806569048250302352570009504666845653009454804587480725052312442781321548245828320066718103819189747393097540147733861025814225222105558804761113181240991728479434088164598222794549474656307203688582059541950459783190290328096500422544422463793193067691681457732922659616921769312319616928636698650324175827625664629064189641881530228510152005303824804622215165761259196723049430106716264039572800549267847785410429003333736782295408736061885454652261911789505145544223689474639552938033179751680866041274107448996410055088865946596667073518794628760335659882266758476548898802685819419987376346210865837147862425890646014293606029333485872686722269697846900232310767579260294341595382101920854014290528883238468147540622442337674466748546526665413677395281385490742375998964546705394471296561358755712002866885127119164047116689849426276543690850919914397233727373117781200081362243953742550198270939922584812613871839715578219991169771172370049455943567709910903314166440911693455573127436429265786632959353973585536239482924749568163241205091718826430193770341704893586393729169049068767095259822758724095464366840377813304225409113615656555634454030727968415604947417007853432420242503003303429234768401899201075307856891410874046105045454091165382068479140078906467897531124727517435004988238604726812115667461649126556560051025101950262878496402252507512705264316751430111689340231918872573957977430235875340148953599947965430115912519332112949140407545723382057479917668518325710202143206529538391758631407420201001161168121316614952032438677428189963839245127625329096186269312987561979380639465641912907136296522119354556670492655934444293348694669888992318394414780251410759954906093252118807093975238259766902451663268947756038769275154287137800353676697844096404161215804214719738521553591396836488503174874805652998196634922402271224248596721732288028854054706314521301665362247172991135724324985355141239677020771317041499787960544928076009990690634619908954953553606064869499147787121285845325814404175490764818927771725769822043642462703076493581953341240750414894727886221700964250963427751270383806545879777222805002489808996397097456755933300930902833231435661181862786933267145188176875556707906014326925217206835296841193457776118780825221794061166104517631006487687332017613391260099837655021462428261166378605758743570806885514730096159122754104540796568953723641235920223692665610545692252734513022215609370656489348638802303909659931453604430152160506121968329168645881649710998745828952732970403745304167087161552426060315314589464087403084752087582652775696474884891257385268569519734556272489235549054455500632073108726891291931678859057310002395692824473645463502006677349217045054797268821859059789977896063833633173053821895373786028851830082411720690445493506042575498864271005730345664504321187272968125353829222516354551420294697510714380075171401893395707776018373994502003610905362064167859425256097660856341713421313624855886453916253449352136932514484596497679764027871827409299346425036270239497377615426799195318292988197561244778425896942511448290589601185181938655014258891601637818816984095403178766719575099531331751370788004517200001736835621129625791824933575856401600967104140730224700029787554876038350920787320745437800668200610197623609714194536448807995815939824023954296584055863678491395458203454871175352234953801180354833686720427211700703699219085940337040242434181229885398056127272557743526607020569955894585255257220862211787847463662250377009206096364634471206434707862275152556317210668597974788204656803490044216692691663213009871643262259391914358703699794734642516411836558816062134390476008168465403834834835493468031410064386081325360530168377992857817872793985248486960572669304674220788146858434825156833590478201704431357879365701937662920145719713636696303575993522094838723274498143047529197315892768338887929729210364726206803430088093450348076528548015511976377568317756945041797998478955161379145003419462611366562762792001599711453929699766277183847719134160558559993257701471379328299557890916166884800400320136399784081491951943202816782702689967099637299915234473938762705077983470074055300304024537881293832131920602818959828453615115235845986404568460758888562555857937577208777887705547846024797666086834467644333349830662798148879598965825774352207189706684140512477663657712332789755895565121569950568276875816272021725188305325435028258782722318893751484527162576825346975645577170598970978682452503301214388211502695634679932582833563246257235046842628701707934085077764704115265177920362035434733393161693604322642996121320523597541635055111415033943678208400122026758857262663261892878973363366941605461838459243648343080479834885027508954614919927902038381495203990170219027434593368340544568289483562128921307856717879645643476382550834893285931586727454744349936764144111866073385403255924931846538641049163930873005555231967033734068166067434608314961809404526233938955380647510741468965945777925362824087063745024956879922871558928651221543331750437494997077298256370024060709202502085725049323997053335684279412294824019908180461439569025343163727338342040059584532167987845410289980098381733555163342519237581297934058820615684659561920980516609897969865096275827913039614713972803976046516167482617789687579968708213223845367066671847615719864395952910604452912805735518273333493161630300330500634646311777433339017003707827892104956425537344932728150340348524305449606719315858656198958742095374481418947530202249584336668405668376437177870723553402162194197339242224860865101312668812548530151749750807981604677845763112721739300448230053496615376935709462757192081034649931815798568059069710874269968899938860140671028869313591265131662452299568309718757222328732984627549304685177302976182665922959105724763185324926193616921358631087980969759143493943239374554308851545027580498017427140113416591654640470996168250976768819008671226426127187873193966424666325596973238255173487981336281691003202317893276933271614599668779053417218686094800455408695855914588118510829829032604988168525365661994263200581558658801029162787247196436778061346990988764075763074421426729831981762248115307731697287543977294139096544679034443554819459365824520220021037754354343386703433869775006195047144940665868625085841930840394277079076857142007540153963483408787484481213447620638819199334539446912546075719029538729629981754381797024650512937194516329694587628821763133834274124586367411260838848333785597294084959094051801230113025048120853266057001860495586235622112441659134266096833632442417423213846103405562736765141351216931975515028751290148384832906862893852375086982227792170892543644051030874602035107239240008324041582265026349942349557898894773368532719986835643077614222414570654233451734262647632456196478040316438729933329450342565512687860531996356089759871481178551078597284464463958247572451584112484329189562364713831293784322307795660979229247561064719398158265972825349401981345476402363652140034249240108913923030470467236901534363782946786769247155052443335675210304871545958888846988796747850565015147446041497569721304557778834409449959149999186084297843207400430048762958563354700652048518831991261873814022497806164245974618416259028809519294949471046324411397228749328061218838393320472081337983910637400436302731009547801136664904714490571499529437470895746072710222790202364569752144528364716967617590692377342246098039526898646798392430484987381463469982920062480599010302874297369601282649547438016813558245840774405530967970286877648839447816529407376233123641732075764512924787192898531115049742962696476876294812508782153899802968184837914676437074934116953894522560113077923148568042916972737200109678325860301438223043833090139914601083900983740371034496386398047926599547600021109144789977638309175180211454034620758924718737850956041581540815015723487170963387918772178152045998509224824447303863754713004862065311574590564002640140976346118466404012581685380181903149084176570823212610551888038433623640344677356403755857304289137291890376580556706521158096364332290933729829589935770457585017167399678393761889820824482819788086093980041333543141438741806640755713521973904125990405007381382387069724568318868169632758180782813437462878673507881668280177843780414905443842352619469386313629656110385588064832943327965037770476737907036098186240539704170143277814379597081186286816235382406549252216888076015777213410077503975245155157947860339896430635431951777215444065251382729728942098486785501569659092794538054029332895705790505861643448507421190027529160348363689754564302984968639625786755171471088152972068758315392541740890974225238109841909732572858800751993188414239421500351219667698329327312589964775923279311045763773865833478832313594966349687552084513721544285969314948673272926870817376046593856029927880793503871142788162933994527708290152102537624682610823453351130993097165616174075711053450467591024179379488435732212769153142957588745839743133389155137750028236709226644200201611905052868970827515172147321245905338617399953043995550000621143204307186504309472124480793315469524385165063991032027075412410691252821522089399201992537159147070166803813948517185887574906035608081849285297101422020317143012234306547250603735503191738313272219134008520508007671239497849198665796589522294248517306769509864854708331290176346446919550378132344136442614277173227525447611171866216628793591756227926166610467146916466141206368239461543658709562061263276168264075865656785208745032203898314805058122989772107232113863066068312549501798270681317952150849214635150964707710834287807391287809949521679894786262675148977462999006062941421429110671426513959168101675458689173753790466979440601074430197406814067913217547738204862131672320226935229720170260217112348605823357294466238627700020515550273810023634510661944966015318982376396638144689706688484991057071550129718149047879616901794157488379990543272044832082781480679491499085535800500788239473838076047113483735966143589471442554414116643917962825908773234226287191759939112613507395097762742634338200824624650417828698681883025976284005885850886792943290829784763354814636236444210588118251766862711033186047670445781378513908419684944876840171304952394214482875265401840865709567430495337654169650451079427015024439227183180021531520739875321535663377708588603747099920144619804163202176128494606140095553251914244669576769376120466706441161104895553147823503518959318345903285247171886542554415875030623281426286216080621235083577430772769823647626134514586469557324908375528543469681602402610550611574633514405802745151938589663216949268663482619818906171382688234909514119109728484484006592671304416491745993081832464896622003536370244897697761848272926287367387175968187600406242214688652131594988608450789672190705390517401859203745055229289539836573677248998996814567068089645717276847643070547258733552633241445637774753114739300871777960392952801820177793344966630478798405904848069994431689480317829110037147638496217814812991193192226687707872257504892209695131319369684658031934990009610469126868081468707569166727975372431593804531020606745278752480708996324238710307047161030886990190922787402332981643682842133616152539993678089961502822038841241144475643922743333545492418067285109302918078809430412602236744874012300130429946711744731665876670373409743704890483910164698410161487815367403321624228528144420929481949482378207372360794823713117559439985982013979727018214707408678113739887208588124093671831771593781092162846791021625872374939143892297661298476540777115078006675859216199250139201065181796939333442688267246246767093922439372881666126027445940116157757449510818668883450835933983748359699696697513314812845031727287580421074549890179443037725985941127107949110309893221109090128263180104881169822713404509516173570295997724257853157221181225361957689893522032758623334894264023936705681249497316971031725456545568366373485984650935829780789869951157802735287274983595194466742590042852652911397817977214724288882428138064677745662710520459788733695655838300600525306147683058277175639692492447171940892654350788716450337013391491465010677266142932576623924125128886189099942429513620223646857118942298297213897489989893292094772127077250117677691419425482695618361005058939257596435306308842281607671870863149481184094211632099675058483853863194138426187197931286350396013718345342819445717804708610457804392457021748629095293137373623131117756291243053233803145460473827962757539887282154731768169668486439453484254636233048290450096969127056858612418553302289800839125428851805444032363935885606507834624730174331294795180195042846673883863903247971904211255930265827117931599102247165155019804644645252974605688052873048235859914280143792593564202693358248483724011812548522543713443223440583480013999553662229164881190625528036484022310892767676700970659045334077753165690999353113879072872417898122574059842026854956536967412969838477751209604449423486060911085534085063674667177133797406462777996469281114202014796736861426445013641062323348347147337534868223472797385625653188924577697939761449428244719459728839435965502572714119971184963699911854986104947777818235372645660391744671516229749001458519568986149276550533372232784187560995969969168551348317834110087395386621892723312351446440875245133273222767393526192727309914270576475197769284927176188205087631839908461929826019291599452882562346021786398039440049493482765141068751211015994973238328617467541587329805870062575231883186159772870795496147651805470495509839238474405507620481526436566865928063668558214204942390684414505790499308625478114762876032776856882067341252405742791305044271017327789186919661998302240776927246406840374008176058940627401826836059150490860495775097992901916853910760088639339801052916671011388270360417010487533448314530417127230589060887623485699651734111440147275775314094854991220515379319625296118590432412024697278630648580976826254395591597223209106934086953119519870010052556750295162539849575128827401096522802285891284508575824343257963653343545227563992256134647785793881929237325326216809884245522492970028847170465705020451480959708583223589257417358789365161873023273604513872251014968739209743389385982863501845529469483922237440009046803904355333557280265715235614195869748557212416973469358080195914870714749761172467680776564095203624339225208442570373877823305348013850390346623578344481988616579844128368298121775906210831876822507830644264947539131397475384236917091788900108231557721006746891324454466305245256480777805828652644419619504930389994883671240322259727281729246516277881997960154680610527806673068902257241850534076052183930848776555746834288220407023472040899713888462053292098408178863073741793552871386918702704131051732592120871554528337849645956728352255277575779614960183489901559081330095988438941004589332956582716051867329992754605228055107178445717916641631029147467213350762354791584513732864025967408035002558682926854372670283665570676428909898209476429169341754137577580051074047731869503745437723291981012037268361047696639290110967224683220335081936548038449710194962052102994349126843584921427355753242999208246056721296920820799724784807327530764653862691792052205104954320839465057544474147857332111640619762299050706747470255638491337735761403097916457422401473974051284535435978227807165601247197222840463900680554488949504163129412359311682281165830913369725810010474913210169829092891816777601366077207263098001592364572872373131144050022670639295661234303895613287828007680515348953193592854919700805024831489042248275331845014501582603580312828753328561478492260688226634508830736871649978889511293449165780726835488966100774868689337190421339339711583459139462715926316758201246450253421021312669255416212420383698885398629980841516732411527193545760519416316825841951836749033013811603954472004829675707025796946759332836704129541242195137414841145647145812333866349228777016324427206492429598108398983939500531281399567571853977207422644621942435111242839396927036104569968368633938939447209805022389144223133712032120239367568374436569000895319988844532389253353000115322553055001220485556799769891764020915672320793641370993309446980356127412671665978140708130848828877432294142119132707635642828797286915837523452862678551171053519587700125973687508801142128765313781551587100650341549250717130737815417085946284295142506883302481182393192606341464350078583326121532947172261981155595467654410579714657325937600108561706081147048787232094528131742410312349639098016317246967590387010979558582746217871891753707000976019168826593115614956558521466895954324532185586744062158905336447006447777115060228227819559419071145287894413798563596381066718937772422193520496692102325652463108149272846135409334399761761699918693098466020267967119730010691207155181798113613117471688426813932444614415850855735672629446259775265635565923361030598814234049258681251648214517151123140737912496372841609670510681364922054244680372240516222207968112360392590698353271543038582656806778559565526671753679665934271321072549371205146304953999488728918273350041254589471229276636458258523966880400011405006226016553398590669432423791595642571459491401510232388147852078319445470552718743667473895800880328050972956413804092895773839783421417777829397202377356104335096280656266814099764042778778224365032009677104845671983654930882630335860212205232524276896830704569879086872353108986259299507420272064144309726016524698761765210716455843363024750351738256764246380622174326580211087274788541964605584430548232727311227526808771845502773614409071648024206134651186254178359094482532077056050017017098421813230505912247360140223520069464188427803936945404775469693453462703553791179223902273308285589808183799908404400377567517725639103726169185276938301758552726053692279997115304698743747371949809160286473983814238184114679368399697968305128497549096994209196438976915852277209934644361108792401324521217439102358414377201900571631138888964880692138331045863147140441594876761549093450174205039944479169212055372353293815496510674350110668902558667727471829258582421885724260088819964055235870715792688557343699210942054964746651648879834724419649639968966502762083600512855259166768735202655605028334209838025861876144197035361407586123913268087549288126614289075218586833471191428849863837445815122284243883012114514774127700334307375757385399368846422498781215908436770982080697484122096208191613117003005002237239917210297139466161054102687703358587248020247727392501460112857805735117850181775936979353771031213469997925075401188813806703095449503741590321992261192417272046901714204582530174250318025664785901338027228330423499930393208523406373167630432977193106357294479390262053154926337432277642333692935051862687955608475769678213871687569012492293776304669500991194645562527165015566427303938216369838242040279650901676821445242664517234790610522459841931722448522830294059926225680894101466232163379821931743101876389022090703566270871307993085304974044145170072968145002099835416946554974130989131605652369768686075763429319237830443516507388445513971958926460139491652565703670284185891174564838113701775134251843094916545981556837740743292344634017393304928909627556564115076602880474103171475001924038929864822096066589468406917144337041920375876496511365895073803903978970728907068755316926881568688883117307865413026617241183895364216826577073661040573622763681160521461434689993987086616226684570752291854005883076541925186918877984660736595290448131966478606249950492804207353595929457931966078612804671069265217857132724718695233163522001229345845146192012003537183983295498414771008856761127596392847812724367000037608945458062025206461044581796852903270839856473160789279062752589670467216204915153793557723420063258589704752347025168667984039130230256436194096021815813965722797479322729052353510951471551040063818233684277493971374256768622352813487140319700108424066828336969743926209530862235518170724985859967358067446815561185657629073763636641687590610766123166520940986550512891354159703813071305716319040257443529313329782862192083491148482181933257054322716120064520368285202385186136881886658782176775006896949773138144300101020328985882820348992854304918086563415589766380317400421790198187984777671830183157775342385912831636457447977886575678338758528870702712083762286197137516359281117321247889995385720617777138485040458546979780462107963758607830554517174084145611341766334689336494076087484204183300731931029418445134159728781327995422935886454505994158260576039711940185943786438150855807163882247071990098447509653811738366620005926920683466690949258906232939905530137321725116089157213498083329910027286026631862094027037722549487982673009910807947932761397347259126448471582631512083337123618227411991750079269637658424212697941764018721962724866709554141799630872973307490229725361900008163476000380662734344050100428247995798829953112605052794186936471869551672719395876134723200706914778540972917092318524937605067979621908445698499789338510523849540371855045795693686658748295562889893879323719473477173237359700773541504785934930735657625303255809758475702249776713332837948666641329515467630029634187080823054538390970601432813398432147767956473714591972995331074972176501660747486943630521704553758206498920228142486481048538729461480518914616551868880970061687948627334824347104540859146107185554219168889052741070464606206665771130385881899773607486268203986200674480571581181493719628983505001656435267396816944984005095336807950765969497653254846970780627431245401587456346151272659392359063477029592613146642971748604410015346814280089458692327074075723388055281976605380563872359857209980173801641225240287857453759217801198371187725859392151463860781469518088030882588309323174686902160522550605482091722514369065531560343357483010938303868695599251761017104311892317868898113865273272009796514152469028935981111395205069232291240785051148774081613831478444775018511422444738698741832939126409855570984607508094571121462765129293828112317043381049013525788387175415364800235422639928700360909504805178014215979927346976232057769054077936973784969274807107588380857254172762058996806597965563753156550336934437035627187583757184423096062085595544696530432945603932899189404485930553343924878798440120128994446084014469113291524498149853979811911409040967553410666151946830950374869687180968831686653396783599739367528068687928644365455987308244102638787035461406676728256079853175248179908355480090862026029978103707121590270250110391216053904878058322835047842178698913577138290848709983005680056659792238206328602356779900992091958842334243995717217216970337954398584467050650865475926133025691093295698608786257132564971804405129743415777499976986683739402316241125298001739860525624276204730408796397966654649894180993456225000985198893951629845583898574121587590942020824507195839889925065153995693366554617500663437163998308207643683290850364618694029939892685397572164867238041674762102854578976575730981451430745318574515011312080013266442061527495137796153867540377963484581938687213405426516037725187344228962742902552553790336039950568119294994694150769001133894504340913737958818479297294161178531732954498144467258504138475370969389187037872291044711573406237514270849168669021988126988588764298222019985218866414723546310880203375149996504046918011071698128985522671936352894406515197590996168735899003988400783769827871434029269263869047775349464577806910959972620981094704696622801889901218430922703076022111079550647317420985624233018977342230631613877776832678177914134542872831523324020966023727212448607987184217269082465435367267217313676343353812223112113636653702741765850210161004924213942280595963091462257846725900059446367696244479405853551560497764793152253536424189642140164571080361969077560340980458782338539906586658033765235344643124245464026472023875165858560012883167982753627480488939327887148219505948892598031235729847900230644895419352311642442051752371346673940414617873827075672731806581171515230258828556468894625589907778502144778500817216911483515286107867153703574482132229004959970347280014196095266248229311245306105679027435540316649767450623811359499209833510817044348383392501462339895600864452791063863437346188439625958225263294551199214902905995085440861750835213269734137178118301766250212462916527070929144743936691705215735526628495042650235333964632627462589416868685759611302745382014676093407464564733485908661038688458036353366937305206985359828285600597394085899990574896530467687887525046736906196119861488836522288015377972699883813628445829602148176602188844386622731233069786269448837034529617699761676152051443870080445640111912288050848049511137554473981466204367211611987484722657031299163349830573381530521066336994465212670781135365138487705388690669970704922711381122986790686336816862851829617786803497044740940340454232941835316656380356031590537136459704820100820816720533355706441794454963063982298865119746460764757048971966140415401154308390174096480039915070455372278818346840081043462144548444696433099555053121008592143297615797400605844869262138371296577787173855686185506608835717168260666188209844497858527006914735741727363755292111737358589918301779156924534111849005828398941834681764828751587622830445076893380946835377748893526349908478424833321938470549886487667587692364685182235290046064812616936334293080431442436224802787451108465879908292291220690288674155280344468036497343233948860886560904719520985397537014360288113016797841778437448672213188391414036770478078794122306053277896066263226090667854336738694006412698829765925070091978040128786782875882784235325505119544149780851894744114606623719684490505912776727003844892938576139596780000307190232258977657723146744603949231009401261641013635361973362411915495094534053032846818180275299760138387171173998744347425064071780138758225311915038560283817904382685667418473810038027073454683997421273352863629178205353528789516710390500673077748140302333042990820434277404188629699288872082137791688847566506391640393839542374296653819400460536037081265238450432304265337272640781540365486194487289524427247918636020902019857256752333224150586429530165240193898370862887385291673378242922518623794404568042759916069995481232301145725264896339547961492741274931099463950807518691103939915823194725083272142592192564792555530497123066692554362004935346739149853881451781342587304370196339926286227353165426825054013265360899360666278202702627251533747011855614858993104207498667244480551653306751766484800136057976295709001257511313202284864106550575073430311041420142380822276112127339647490524071451148791085428059346062234600118615919223757217706959916602447321775973567234847680428925154115035596618100603087849135073553090402706968790350615318132442504441757387010211645641070724980954717746326016464584036838247072409394450128286136787640238514794003315779662246136115118261467031822718647080215249544065592379304745759343646524249800752225417428170366378042199930619149222145763489428799618432990333950076742604509579983804343406128973638440309018502237606118765460078906898380747561516615947714012641515244865147960403468393633132436615794791802189248688679706924007176867454653731773712790831783822858634254965502320269894292439522325214498030004506179497331124742997697472194114872177487018043661602343147613854986658460964539014871328704397675244518104137694508560859218856449120375343637786745019014367105603118814282347943542521320759008207731699734069433179798519179164135227439637959955108457927861208592078004629371649287759268670052361267750816721913068946700467609211705701986690660900004231158292330432448637864687865869034774816016230959391489415481081502069992507135425117621041306611069516929124336121533627428694349244353894237638103167277776402446008477283911115448291624466075390649895940185572996013300444663066701051873617601525669063981029114675262396389581974376108776654346770319022466234065874027396732926298164366863582359891746938147770783780151536194552999542566958279679436356680110523249307993872253728034408444991691888411876040989873945910782096511582044172822933798271624760312842905092231045567446211109462698397255975290977209846586574779625582615839828446610726056952845751006338591585707432479308830236907293206152010397338963547045430074956333519211107660046309230142199923776566414370260033334259110196478927524755489881447825338541301861002821534413942247673752775912182859795167064760601347077469923631875709232203457440367160263153065638551117693061529579824228491151433193026878159494225060761862342522364235348494206424418500959596190083379728590451679997002163175262012590066675969094651841186690905279762672481546475628103606957399231631033492001638107360305286025049851744016895247720367286020813510223302497953011766269294050805378782702642629072217766029473312971334113423945394266717089543087869968997556763909032618782322242158526383565529921161295049259051864775689504504623049672998092928213579062995675664998431794732577349057702240943665171035285521823058791085671630415375937415671390482635726207538547096710573886945041015860327827645398999897067134142748157008284800028245060583019901640919150096387963811444008647318861309748162032588313823974852703761378276873193520042565127879640111776127524813522025222321201500039226273188973368303673452292759550448926194930546600709047887743603217737635083677562269375294169509152623104537718558794040413735229801078288277363238201038052909328088513091408520616295985785090565965332286633367152009951470700627690366649313423244819725937148418083882675216932397924827635225879216390685282803220113003799874500256771288962052922377106645664069280546735492471339666597610162049826234998906946211462189642393968321683763378883753412587539361865998215769959623777685051168147418576933607162969989917349418177901379526253896822694873300401568296610725399306200768841199193849107307165465738387275131669794727565727883404054021761544045550809406010101084936740854444167662335859100690576346848934577941122872898369149367288678908775912921257757239426888890332751970618394400285968089415237659106607280729908903179919428737894920303059577155315659629013412061415780484177972858576903730117415614148320893243039171168987367697529596633310365077467006361613370880530270291639733211354421534147073494943883525619944959683188724121875447452075425881224737699534615460859364736704580396663226575731135056601241923180575081395708619800165114629126383423152945793350556187262934964274986121555578702799570234414054788876843042159303700352885497541807398476340842074562457503764688451687304382513029790498602004984637091328329710673426631477659685354594587518333031283055254026085807718708693699633870771335284179910780832711770171572060660478088643928263504462124498916554776813717107009489213220395967542661243385960691667802432368112704441466140011745412797269625035430169503277785443507894456154279396700212956004130987443615465043745416840719618034551821887187641181644657774854588498928463172826378555433875307461653019505003392259914597514899658024216014187544892305176254002009120547216692653411106336665789670423762843635969770383078109549770898521597251937082438129948680246685071301542812804802697244777360961500240580924938163522647475961814409048856481781310310003392534521858764160867770507187782637090832255018522348838203906987011908839946165986745620117419659758309254197646409915919207302059282181029473413241009339286322482874204236132252839928687150169830885052487873297403338671132641407964354417594541015443259281838712390323633301381538167999959814999691630778251422926443930853440628307046759338749715548216982538828842223872930896980473589248080031530169803369794309155875531369921071031057227038258501030591338647054937951274309674726162730008665769685925666946578549885627919349867364526411767273995142590678000420934857820633414815052904795924216690920589133621724606183303143018737848390688914704886693034516920521474986148440674268318318436327664150291837324226165355983499369675535996377632051968366259435728637856576639104813457528071835951899969003187891094622570224235899949715574275292261544345733058854059890608126741386288479307981847225853039879265394222753020938119729538894118921461193921281125154840113903057193407218760184071858120569926257280124222845927502663634471850951140861211178597435084960281383326570461654320171672036326719134902723854248996270994314137039923992340311392821541468264139709800474609857196547144972795875174325130651483762776514112346249732784415511806696316489660852170074939590682864636701289854692278372314317416571477334015419466792015809274530191870480930628716628833874217598889119824320111277111789512767137351979883709176704055846975682341778798923444454912701806915116343498035449426354295660085609894239225554162229697907213261201080755627939028746317903195504101350543136478459115824360992905866735784307358920472309675496143270676870380204309801413467959501686210740028966292342006122844982482055761592002422802316454347066357034179939939305285182363495596237908210888354943222692365030841672247046210773502128050043004460304927728189801363910524600999466895142523337607708565024279461547822951092445483622876608872814889978304213670549761488455766701225229452565051291062305341848493455465341947561774998101717093268861183428138260757595866309808780392669020885901763328039746604375091866346138092705758765719593953786753859753519968331138940208793430831338139693614227633882885929471750227285794055649861463543966536687932639904991870360950522784310456203227255429843952377759227549195585463655207750876306566966805386292244523230857418723938052286121648311532082701981049219600727678576385777073321354457417376737006300545323232395582042409744018315586533513070524381622709508480549826828485254042227129074206086787649674427478884848021312426764073724399926410871742439491240610444429779643183255876958370785602685672331763223817870984144291386146227574102148747973124925211736759788928924415645983132917345101311162966086801807481692171076066458949392610404945806158020894002784932367253205927349252327596404006861030476891110871495777703910294996103487543017285837055733968047613959308684316383213714377036841315840455935690037390455077096750907796568456366762263349141447075057864746458084999569929650486260291275159394888396156759674572813908639290378296592858775563502545440721635888635411652413790771791676165818495899560508772798020547252163097358252985804317021538856767435770939000193763761284471479397287814660895253810754349891882752176655138621812056885238534327348619292150094846279567740812494861979366924481649333673155794923462360076283248485730002094442617407147609839542234021535284627886925992322528609924010420138312413969832734595145925893464565006348465374675578296474001627312418761027886301986916564066020149642783193988713777685202818962290949049022512157702586456821577211149287959265442496457657029191911101313475891686291974161000193037726632362748158589241153808525027364102026958258594391431773959200174430497950782764817850655041178173785403172454279362006972833949334850674360794389576305142749361315992462585946505926000856546499951598985418874877976281780925758091626646987814988096359733397448675535013954300756096302908279398696995378795683091849857672888507498369796153171920417435300531123589767035476120803904699471199769805048977596374191659367996081694299192891572462610562787221267132710691453414744777060313728853284487379709509229861771028953070444853199169151607377546202173601207195284385669306480482932941034507667671865298066470315326655715187110391914865359494805119927789129563166100238067695651569957508165618728138814906049912720439017346269542797771032726181489735495436771087387566773822352091596111625217037353912216848940028883786694958755210354300283497842978116660741020752821796132267321115361347484909827346182149795598365804349249293663659593767597148440028511337198871013318649793267352599197221721012430323497698793791511790570373475280178091156881795834369123609690303316883135152239574686078010673021922610574225385103566997422087402375847088771333748212721522497142164856011148479975858193078474244933816021042630153656750066749451253254378405140040491859284487555479576251721064181534234009713378481151748009779579005443615936382631144703680400544726771661138513673406799967584652308602730367109352944901280090704672674871680349251935044510440611625348815621242259275190232509321042668817970945823272186515706480551245551376060171473475274734741721341931691930851551377172222040880939625263844042395046624163500713264279042555244347843753082775438158721948367095817285320526347590110935168413389775160690708064362915888976452842643881784448709737634085296482906670584623530818679244508020547600126834588174780411952612924733793563270262211398245627218695779695827890392472203026932592135839317516739279952969568473110953829807949890645326059167156889068811817329892186482846798280568915148643468244514361640745056943272128209284758446265951413404009874195151919730186112091566194723581945774877980588000461332606059854296642078305705604581566549246979976748620478442529004320324962078595363039167026026202701593204074708189515001511315762859105853443551323092712617480442210943462436467855949127453495559459779529634212509959866986850861678190074639371594113532307939963313231490052982602691800125551977465418249257528054585520315034939954571887604863919930755516706677544363582160835971042160913079674863266386674049012175883724828761820347840889763608061341769428416760363916311435798915536514185380635474625191528246845674387535475243338688837098572279192822993700318930688074991741511221369019589783850802761371900184898325406937138028017895345597617126800488963760673279593292765191909021185035523121549129655246367061758496425465479603448868269314881979513435655346972393510016050754086944593868861042432859496989380536636039984198861084651363583055864307868667865762693736589690000563675520937313750176398554175415579007180675560936792368985535272139615514753777554919617948402394765581874024891039177746569616529686179717612847163094424331523444560962982910673325482148894454399186211683222752277994837876335796644770418522069260028297583686248985012179751840017612535729073468231477604927620203129389860786752020783593147788954575828730080520045190822145937597265780037382466771733755747478079742136880418457189893109092704944248333077840423075426608006574759787932536704118210400767151565751371205993609542983779131869693692138382918262599007358927420832464908588326054975380870354679049122570514587419211983487143404862933115050945036328213445331834770377629853781253806968328286285466520859539768485110471161693224015204841779224441038764634064010718366012584608135667093800908935904036812578700072940905232745032281381279032617528897787016156941826853539408048946774996144030569283160540991979459087991956981375567521831693544696352719324648811383726626022769011810625937722972600832965525393477757680831358721523925246472542886839555966535679106399899464270039221435671282036934788770687644486740098198612246629147528789657690086105202566728121008912017087377385342282282851322591069771297614566567636193930186914249837897377019336974664291388011453238731020744456276134494550327278221061172607484691200296069057086104874027696216889468274653402075168956434320077040254078482034841066094545608680586701698047568584060282741492958845854268544756795112886188742144672750090460690059772051017190591334662728889908657639862336311940410374986431344836454698022177665445410115912627737578519223512672461107808418240241412191582582665258363788041326091852751004490497428671570635877665543871462423535853927068127891777020627961502108451657926021188109495392770698012574014770320040035310268493018419800580938965346352900444049347735531759555453952563034131501330574356302911342672451137917140314960440376923419584576130354217261828007643019548901708931440955247851703070760089297118702917400140844753664533693643449392497391500469874111994855194530035608572213887451768973328831060534863879302140851210973022411507851694006884905883731236427855168546561878538823585129923085243064037938639820636001016794452189808950112550430213448705935345006751334373035925160352255931527973092772023622846382945242978310159900547895974052686069879040566477863187306714931389091088214013381187615298841031508868316503037025694254532517038638320708710649390586969046310653624802331551402472218009290645405184718353388508130211787430634683018010676134736808470153140000853124344935342551698692882508080514415208650400271247144061391492864495477718768994832726721169054603309686507825822152402715601661921891030792259587570955322048639566881658034298519928527851780832053083370771164652992420968193612286346242438108626914763270860256368265448370302643747771690357272397420738599041265820629474458820878527096095267225339158164565040223987126829760106449306133214431509475681320819936355270854602063292125516581509116592455948876806224122384331301649615339924177764983522109077363753314599315807082534502295769814771861173112890885153783354027472379730992517239098201036550262756937906270188843527656671258920839079975812355649349705784336668563103998160538367882742624627714134438972591599827193565649793686700518506491089647272395555683703697918261800746837432118809997945018164734528000633627899047721454185551666350870860682984906113487956389853073037457023231666905519604727776848148144523235437219830329871619829080017751670825225460062111665941550521704939602581234288253927913442872949500078801656699447980520677207221763964416837662274329714625679572155305698197250909123400645091223621733673569883371205113040433108735701941199938344385027972541956326004303022025155704903835669442502315206256172794053108329793767125173038245538533620227799451865126169520544367259946140032500118647852606039901492116257799226656279192875369382815060723073589652174035368622349833098166876518950860326719332185309233794702916504233493295444419572926668128013638339569973279978754824912330809180108876693083803107182506078265543135645404199387884528703294808873736633830474065918637661141178202861576651344056437683068663465905230942545532234320751679086941458059396072803764829511611332830689004354814787521515807594045276982012428990918296398561200748155434468153422987412103330823063559875944901106812439214209628774187664432915585371596789287544046871840266519599757773481848346977332820949633678571789742048355675348699231446649197903252149657308621174539826617762251370264384200493923793719318781073391819305738397315230259736338862609382304416232141285551539449776142618709437566795194475751657175684739765934522467438962725478939050317134604129649878285526275526954579926395411634641613918817064905282379062586113976792045651781071385611520435217404299043408040225641086624250863731309579653786330409203134167055330061976451211755167571482326253773374551446368278714339566348614044982899602769053857585201657744269853361767230783056266985208632506604023640785181099060512064818094522721742600871709705564471930747268585825778083955835053892551493469267837444637979579835923343425875523421723616758974365210595645226342132451939265140150113298280755297672038167055905718621857086367464253553572996794320806308336302659051661261890906107319458373166234721559142889580280946305575688844875261886427481445619570478304050549656197056841593641355843959054021011806032001547856550450642610494010442388550263684776990733485990181390620158083182735622271735652505234384639307499699529390258095277794594429149552106182163862564645915250561447376090261860211262900732076018353091483398557020307088126985020808051927785023313578833658748278159410260032214846978304162369483166221466858865755123648700872409531290567802100895795432658350850397902690980584241544278369261009162173818553439177995007287662734235737696445459415887800757015533553754893762730797050224686829299773262923676473084684918401476029370388583835693287904292718271355252385555840720705575159533738680914370926936449322179000707133813746343608757235969129947059707322771755964383743002835976132039527719699744658012970475970198087903909262610048334810110713937346943293079007419954760758679254508995161984880726133036390111959207468797116526493861303019691096629112095285950347875787321126141873093536710578856098508970500043659352839241720852707826678942980862144469437740305657643057832357953260297888762793851344800918866386850563218493048199223684278417059334444729069734464619822658433341379231278727103497787143296851709958460874170266735221114981012662108251646129009741805856772224241727094516473886337581125706117190163806614080967425616336215866644172373923597910917846348426075828555705531171134884281249401407794184582350489003837753305619481790213086314071344434507914174330968350879602881071741337784032557803549428023792854977706641789326848317650298004254887889354296449062438531422938395220100301980916178894136073192069226885127019269521109053639798861302094753457392876650180083627404028782465922901538974161645841704139657615021018103750721923724233491407023748815206363321443980411108225955125085869514446672774705350127976130722394095750019776313501950904159968504567171455225068987087858035643120688071326999356575470388750485350837586204213436436372298592978894963931584866086403679023467952227708387173162587074262585184740188394846704297505615857742029448816547601738852830004328778087579531098252251576801825147828895336673303244660429674304437056975353662023840603362155914568554539302464123359209626321097497405032630551740124407365520969092479524553523795575803770670362594912782513031510247436898583709213292625265065040750931068667148188679511427063853310527788258315159871453614730029260606830308393444248051160308515851684339779958516383664830091247374925553477665927561671221854884379779439292033326534648426902897053180912460248802911047943359449529658718336739360794492429842560150216131416763039613138666238424269785239556092293800500933015542855695778250365300568703183834905279639728295534315156421313520206203757170015990755091578867709432550198532955827840541417052377764670478821347074721851381343850831630689009583469436381647462629574433431880332933336207933700528647867330992541534408076768353814564812033165152535234930187190382929355911784506300494256631380185075793190702363824951659817148579053087069651312107200457345293975580947907007387193259246248016985611247856954923213606372600571769860231486099946582724373951302210077287926450908078240524488245835333400752317260705080656160065521322130127799361013147097684959087439917166632690124101738104653755598136502706006049013833139040173996611549620049021367371465987623448065601496490261693028454315596816232790244465204691516590622135855242623216880468977432908019760126288041723497517049329595973909870461067149349988403552363504254542543593774036408034002275974872783499979515726170105349670879168313391993562567195888586163382859254644952022915018560332784866860733434059593326159305180374932366931679324952999670088087298229581585335393649735519794715237359102693132628463903457864811628864694014777421030960637807343051432614279125455396175311294333758846865463987802360601354217933693287881548225130156690738215446082877219668746224880989299871812116444845637354234569325986170250541262254256331956726768997527907393120191331406576482180250022419735833942639699342260033103600600918307167653592695004314251026474234331768263375189505603569434038884722519631870668987607166016236944613306400114422466343683323462418459043949764982448841915090649510281165218488840687980706721622161776771215404104882938352888495920026594380869042328091000988192354105866589813509695692560403418097254339037033368212400770505303248472958929311331186303150965663852375562386392182148006468131886384658729703776232230726868108756767246564931558959836385197706940081829834485453933243604655066213462551571034827449840199863590702816202875892508096729481752336880942421782560337310476674734553576816074454557405625826442932739891182780770848942426360198884934453788936313566450086730366714381859975914302194564276784540364971145719822561609627753121123727567877130822718169783664052374154726721012710949928732548587942201800173984663752891179025726570251548097070839406080242902751312465846201075900698300750628949693411732283559481884400531327358642587978498592148267337866674439680295687469168201056366391892543452918360661082194085574849987222835197952246887805558653415173353832373353820683165242534287994445715389627121275924545591252072532045248540064130939256264869094042636797247322816397840853270036817429950275474870810046719128470701916206137932692459223632538876929286179953347354122368552165685013178796057221726382305131137157944998209810160534484969924620530780409767344278540587181756406578747097884931807626819430803140626535098818793843729926043552140442412813931208868982588163072001187679778693342630900707899653977302754982410000968791086220910799649864578826772275317179108324633997473878331529134794334813472210311283430530221641315538159758218094617117516806212018314591103918144729291210395096312294568071956849524789757040131120466383896286231692929466166064985319919167645635677293770163950900446274582471274173444171406371586999266621326199924136797520676305938735568483251031438214291052868837697828885443155572058099893048033848550079329123998269866322724419337039646862161593935304369061726098609178284287070751945272484351472576657920492181728838517820810886460553271466981022205380065129933136600149095070097208168506466048782638963741209817357924236641368109930220774044141532937835846414341438215081027245424776231231402545157560872167717372959964647175569472970776801182858009954111984293511051562948651621112478167395321428834318825281341578812613186006013592804118644577163499133684853466331726392907232764659755330909439956183847162192551126039347487016263007340886844882871479573399684182875861405318370163890942318980221086220380336663740166302807049273403921036865537372378356671785423951130276926652394006646310119098026820701206027196446303976395947099912101655787677490833670950770021930798943939423982077012894673280811010062584137538947760540888244135807171280295713305477274668744382717536741251284829785326016483823606909410860241272053217882329568617608435529801045384728238053015338936185437088605401143368733203008729898627324628659762873092448433953818089116439210086794632194953946500104193264498721024302636465941261048214318910096124345607527993255832773500669455910621314732566190151823558164026039379613372712625845346521471038895392099264234883853247447837257311062318261524026135102472453429386830692309798318495719420081203215424138116413805283556794535631216233209561894429845796758104979888273884648086751041392845623484544587356038386795993034485199141382043172771492282634773398428063336247561571983862393114646193556051710803563943093789441220065384727858479228409889530788709078284177164897071701303309913587641431956137909424992128887964893838809325515061427727965166261031364726955402443321151003700678722859214656115327918843328408645226319477976053129338809998791656993666225828511012742728327546105430285204836692896078523551846345551665312057814910990826175311565082765070826668678683473864973205234416737409204264466681647723602169834362961123055947471883463089503820043755673808369377455797183537498746868741535166156041695279512291509816974562228172071563113109719174918940106473522601796515920324382014365891696754535863023596231089083554398318123761059246084164245636635376869161410560323590320978486178805917740119760371892192239758597626840776583640589297710158355833868891969258215197743105125724169564058614129333630250875498922433021559933161682421121224159868577238789423535934075932400788842941916175497049475563170083635699126338775073035847938878372826005803348402147293456164620427414827467833371743561652929042918679103871968715926456505546627357864028197629053975901360195741044615951490314516749793711408298776284781752062196600260352496173583011319111130469079300638383292199894616646430895532266320031376365488317760249000153023571700295009401339244217403807684023742339760844796359532809582527262052283248370603822095033454726506429803259325838207231411205119600185515928988229370660042033598559902301637175562559234036517166204929073365243276761679700735770084698152632453381573073001836036567994581306918096180361390746674426388725833570547758333252812882847298615414173405719722009378051122484575187868542345690014171516738111035761043915405703532582435505469409362751963803214163847863361794735125108946130043196264056811369335997113104888933150743222570689528536745747243519281290927004849984187247628574141818411846376194219220779069355561962208895273193215887130316113375781908627142175327945687067079115480111866684992878496766633308693112676742765056031037078239024358443379795497399062778352400151775230243393047876876445465244267796954652026840459044764157463757153708224054286712002772721382971724591710183241424447264409801728379745027343194127119755503995441537256078686793151114322585377247311677818178221250902930711395547265323384119384601199130395754476835345797468476944784801581315837924063328274540518308019229810025337139809031259147920894996355532910905517190759094720592702466584897820191967539897229273422235538827582234161910314410505174549073025371535635802202657713813674758482313555048187442024703937954283191491641916959395495883984828037156120322091429635682434477704044810296545683610358203967684874122643596145754222912132085673218126052580110560047303113577081593155480745305437155460920250153906377766445570470429681262626687954470968276089495279784803677076776309838638906566713754435241050720871499981049184978964549933926158063340094634304969131447368280212386018398998762794771187743276589970628010108890446924038996367799087247063319161679849459846363693883885405694015753113390754541041997008735543580687824241648415716117840645519536613453598716796878590901386608885202810898363571889981440723874740911038453669723056112063236794077520718814338606687236685549946346740246387460644199989431573104651306570543262383515984672094298673298957843078863371036152862673543184354707150669394940187511347038216461019417291564390161131549570082622291854662213791161712883158759258875730894570363819339850386132350998512824299923929023015496832352239748189565136950678813478653482586126025387843361474151629983117466662238042115060764374512679124121826418714389307877592181939890868447723527247417734158072682866056556919917177470130375869265013923591421467058045919911587857474920872703883747749310714518119566925399813163196269627686451570733843135171235078811134930996278380921796104020937157887810060895679369599968299395764918271981941971877225612805757224829293646219888264732842920004418836774036387362980382675432582726396602245287216342173942961760522163063882309908420813776993020863182127738452571790697992213595666046813779277836505561926818700914615192144826854896826566207932775285063714180882288514789860292717589592808305849209986790917672328712035455144614526810419199537926651071463567725776003635168388812125324802407202740534109979966112436194484752073643725517216076840952988715020350133763607375582473523664473560205313456292659059134168169765095661387886655695041301428813666329563967529261869603501243969181382349169377632809235027793147838829477400131658004893554002984526582887512324060777196543728571784253548923533688523456488718464876832279662269441576765384925467997295520483277947469488339070999747803510029894901378625665005292865230495050242481753357905062788169293223465433831403023816355906345531355069996246051397053533529140360546685811115886208894685485656384796616376875280206046444148906567735435084630979622812097613444312284401087896350152347081317163265246704794060810849013965903799512242860384231237021843476296613543539346720149536798826404868698850224754916186846396215682245898269051232695454753602265882307863256916837846255838960583070458638843671946344126392846723591285840003835678131160659169187288289897350462669811633305280252002840605350303581895092036298681623952932236843092602520164695544602426397797385934787749824648090135340610767784489802597262898207102501952954777389857980840128182851759155639756037222609409047983322391964079403544395672518700981965299174697347070806495944978214463697894070899554465132875259676902174408884119454985632608824751602211318492553816683949252866631689750254435841828203095801610681509018127667770236114085648146611894214708728009536955833645106911719763945241940227896021450417204485378609436720859965752921371533061582029489309127474847102348212233073863357868963134397452804129962812001688153928327876423902778075070853590562961688033826359871813482250157714836590837183779250388661718653766001086219015274184359289735453451814169541982117079212668355625690752091937309826330378712141208475884087802857417175851169154779048911277447257920592597246781494222822253754786936576413656175294565428936302888770102998710047428849199312620982187952057931286480889549799087957591986396784939850936944737551072868600438848898842608302733983224837490710116193480452864793948252235158707302001090552394043597359688096953173279794344262377218885871106003660618249699061828560377262849074897529152559767508973967951020613373967424337804101005354706341640087769660708116384195702721522359605992317986498452633734144592113461737247982559396797223176282999133731995791733275004459967558158803701345066350323997710599814970171117421415150172307498997015003871901263714116271147376390576051902313879614063076509446458380143988256557951202932686598141641778744600345832096019189294253230219192203416260766401445996060286384857775525527656380363148657918752178693068018088846475584614027947594830428888173156927661433537016720486747727524190425421132245170075270730054533934044612272451388628940223052406701139124788196292816094801072020521223404712223114379178006794451354873304715258084510688744666254505200225326524902598601805574895225357003224429357533724167307572824964169932221373173562050781757114545648621191137411988169934160997518483924412624850013809853568174328987922860730598003493731008478005271077862528089342867898842732424560311770979977059854113267376442357610908270078817839885003250851912254577794107173682447159315802281239157881117636106142848946823885481298879028623980349595657205928327939702644214446034264214776936763790868061539079104789626039103853647815438269228997022624738730613153809140879102804889525546777051305595047784023883724460322700998185161918070205593212552860410368704212077778438087449896072688920639209239498167773704952759939583106845258383666209602257434052354768058822769777069379070097375745089011899883296617340652651604902104748981560856423698157215312604498040568877477546364311604309498595457606744943985696458716222874942017806047168634095183201151840123481746049198171994035390732873847833298958755441511735380883247090688370963978075385124078120457967008635461068639261642902907769429945934660781789393618937616804563085995466834109856682553402676330094094284562940533853465591143086926396633417768720192148803228166357112111013191866592181065944184975952701655587788037347250567358529805057712024622779895102952557551507303063710822352396492307500603076319701390984347983865267310833407318437829471178900667237901882761781526384749874241674490911751780563234005122977467880410449986243497519965297451982628324292103648094221380621125782832777013692138823887199725376871351665382221879250534389526312459879076895418381173816127684908797385810521904249758934129005455400835689158715429008352808974890304505187542220390191205770667451765351805756473910806050937919736102399262456778937181081969615152302565973945089646186807976790028033014112132720350608468792971792284801838254941622551886790096150022204116802131721103714197133238942479277501220341812183868112016236599312550670016173066164099490237418261556425887113641514835179550028252970343820660426732494992903074973575907068231810308174631253481564208620736072070215763124042562592530692016773306144940727386389304075892485730296820266115448145065760683208819637533794068489785280148495347906662080987306512097813593280873145660535884344802830687256634140685584285484279415352506940784779329164264626408310277935894319681956973307153421714033800243258596855660728426679750691697494589309651707228719984309505922883034953806215613263710156507184176421539312826660695594686656007644035482745092255382932189631362301024686883216395275931124755856174972012716952063069869651679715345871413842481472088494079410483515235438783951050384169679177211149627648965553712057255155612425450844773047944717838749046446809811195168040760280339481887544381740319653203633303507931003095295856984209507582160812222881266751478561224798341245292467776239194283038044842806070122848052034953339307957544200723290207469204331794009860680514350647770033044847571337577072732091166852412593841328330505071057315027314055350483144376963684966001998789149408873979972342100663518907297771744345261034359990272340189103173494475782830232537061189629952565229462978620879662125334283084475095674977047013826120472850664225723604468958394757748600342932097589677946002416490834000371071844715307185624093703185554579734172517985045237338955676006306494579911242578867938645233090054386280181289358619754982131470790730785607958068235905147619674080883979441143323650862899240005022877434983380228654551635792190812787907839719610839857368051382242518581396274880263736599891181841521284426255114962198053118575839998055838792774551972592051436425164169058769867013904627054722377449566410330032085677811760820666031856053255502140117623154271750963132712715444573266661518461671424880773466040490397765466016735815381547826077759042160381063776395025307475636570823288048827288325964190966883663484279938009559450472535742964552300982265056509210317706322450473948921537792300316807901274512301026499904159582676518922204829391161166008354981239072542846289755338112921965165850332530286239962453868940129443895178948651853556914931370475838198120027869873436591643176343050609494103521231552484129096555019401245577149376473495415799842619974763481779692669171447643638412342325053747537280210187712566564085846506085580854961688062881426561487759182020594069097778370561404370288429212746955042219286073544996971327240450283428867311362574058129441015472946325269864311607755981451385683599096090200223847176221331244878975043653892811774736556288953020024798083707460173659706693793898564719799402540304587993835983570720633011987362436747373973075583042209178954993659715362159520631137402201730215793531286382855550930795198210844280088759598816477889589966765783664229609703069740153168918812213749363965499661041066140000492840488264462330408168406888290554732156401209615839170121063814573698278244758081424168828663374345292725104507104166581463019596982542010188101781160171959221885302662488493840431252784021711390316426725358430527123173693527191601428040831286480916553138121953967155741215673326164404484764241790996619372459572249866750227696683518555286666115589810648608383111743500396229220849401634337948243770602115648759686921894262451381674469027520242454078424865626802234325875519774571589846762752513874235850537234407266969298606499056237485287769278940038870930585612578534544093917747672089188053893068707992352758217128337276336026300574258600410313601036514289519557379888066092921079027007379126028914098463364165254214366885141199123185402968978271268724954086877770807386453643400570463618086544849022862822566920145643415190723928298483564986804273390383007285467300296755313417003908176341648771103022397772573152706601915019783504923022279585415727428418345053203468638942565209757582198362780150955385771640152730506610259883232351876954240726873119925321274837236775716561307854163202194931172180428837861122950078691103264332991672593150109752240007474970647996751407334397940183100335333177037865023355108234989960218133954451902881751072359672759643663005183614824089449548592933560555743715634932965938763953948460196126350226496472200081185309041484907260842623765067063786751689178036673738230728720849757077461375485286382709958177573369744679868106248744388996134666136540384021598485346754876201201819650512648011607564223148961391346913502407943883395768125458763651877007094445232090225736807253002176677554303482505653935999109957542996662197989264992047451773501145814117722307458022985246724060581177688270772653019450677116573452052785890975096598894759604051556853307568553558454249058337168200036710365102718212778565336995412002321556887369641505490862364418027084896490080059791810402187236523590887856931991971168335136185535886270555753851203181067768001498087371341984593481881581807852664741752908613024296454768034248325510026275920310642599023611267713282417126071525676777007104904703881812643512154050799521059809368721263299843232365637002063303862145622159486979740371138552799138686861218496327659956278951341905201699065171473615142659940060554509914206899041997632525114225277101543288833034761789592431188131163591646609571711004840280760763500625009374155718867357993333957217973827263406908467794384628684956743064686518805287766285785964132970496432633421261121497434454992271236397053118386066648294537954208081708177551269365172067477916146663213583490181299587218883565580891657152042469596428930379312432596783708994446959012271928742950326941403167469841729157412670896186593201812008944150650682045925103303472040551693877946997009242093573361110435151409501206733300384069406597448483032713250092625287878464862196738172282463907411376624914835061903365542097253209916722204374028192469570173485097574701993553583818775652302176041438081081737245710426772788686605393282460267133280009549349494182026299100524689436366407966851364751497729621497425684647118982638211949969873883866521443527168002940137928322069137706409439991182131766503129830403602950754130974377288690400327307329713620345458148091752807330791222421779534291406415701851824822539649377154099303221168968016070363818814867178854669288626487573934716088932188326920621998413207646604963559493998814563493514052090269317819592809744902381252637827130769068321664513075649757018024804255374283004691154170753203337182536768726780213905317780842990180687785192923159519488396863994626253194479539007180260134974610634967144886132192053674986746870534691996304928430679851401391298530179554196614627655422099692612798875284269286334685498642441888412725108675480938767481063767385620486281617624791142920288099824393629215797072416068420766334222255880950351050238694461346269990542998391571295618189984454161611942073932724321505378494863997512083893816419906941725763674812409279947684940507738298426567995130974531090577558168598402136300088221367475532078416513402271764754077276101178405493786730122702003136126472421999514891998580729211315270581307058490035495013575526278532822170875436746341613232644733480922548242527016863537275890218822262220775117084480873436571383511867675613518622705465399640320428576942732586729457990731452963337007203907393844593085252670441869934042297191492511686684355837607245037810970021909698490747235937631561974707819153569382443649997299828919687232477451511545383625288154847958618840547853879564383094998750938659321500537123756585987401126547436456840697622695142988922892185287225925400893758968956547688182452692293871793117325439364248847205871671035239375568708120548482635691765629235406300419353935410527117798152523871363836583219904181486595543378095145749656338282979626293231886260481299750656445746464451347397629255079378756969314779047475293953701320092530377621716479338374968360432950574743687029921152894221388396452263791083952612848696444165813631617846423883203119411940515409876179741988854830216673796119819229798442301001392385251489748318960241574681176547545175415012203914999670576696733622212875297052273624683621727962882991354389475507393919260670649858706895684115695619641453683733990318399543624044735023753372556924790048184805244113900502994960657362541028077955164975101731060756063723901643278863438112356050895377375681494683695103637459156086417759480575259259163738565984864849874111824595008970680611204093400458648446546364721998834926873817156639123318331451231767495024070174335111169580553557873378385739586260434184798733481558244856487560561738035010391549242800054811357708197130515059744152080255237123673628279848065122462772435141791439385826870545196271937426591655391631883783858029005326025579211966599386970837004731917588665645371764386452842736323459230165700604431657464102463182168907347406245775274819222175114991003904074627806758578762869284916106231754707099744761764978438084696405664076733286468561509601988881340196349987778805947781251035952720734923447190407512856516409275824551846301783414248765441878477214699807540469163737693220607633295671014566726906333710834290824069570772487822724679998700947430802004355846165260667369373832461595273192532269946823599816308542191755796223674059168226913767444033046706792118144996259788632281932032477027487612977683674278583051569273738782914156150765230368878739855086673632083235577802529927444228924705967755854342800682218014955907144213799296243579307202928463775423577602558798337101804067973573460001049065401471795581296233440158739991022914182205725926446050538105629127519275079738369554436979621139724369017846985961808711317671860240020353387852258284987445585966842487173148130375419534394244573381341072688204005806510512714594893981891763081333474826580155981460908596329085162861800682951391904076569387360851635492168385007721288595623744129262080939408277045500003574394665808616461591820148653334538676563698080528624482075344196456237579999517213468006827621423406937151181099627649581073478771749678781372027491746918931053290096987330080286113615583240838711236572137606830479245485757213406275804017969691677975656009953669807596074391674763903851271426817532482894041668601598184699194060061611537873871243847334722605192579841574626869356677206659609680835780035371771352040987339463504962581197967466275356292841623619993597507336308852348637549260749713894967288763618624193385162287034518719555031084241441006328852608265596202644244913836397455608609884656543997908998648803864664835521555161256061627659435371057129878238668895201393573930621023387847346513979825509804464877353354299089505497119504230331147082552949772196872419856503561859666208873394757955207064828080727470956279598176807577588907457323407511231779710881425554281150010560638698023849459841427878395564019163062763214559229288309541135158629644162946061339191515573232376380206358889034577580898368765888348496546325968020768736941126597873579038016091948563492964063861362125002969963483266988609667583932007817938531324881127359271920526608698207262666540181287087736268121043818777170538851547066721018110805591701348656039001573712228520119573548577897325602707350562645614737066770811502767914090931365651792200585773267725630978223920076733626531524802692314145485031226873789575618341164089370625039054103307909898766479637766943246388234752245277185587305161566646855552088853396396452433758987251413585725562623108577101006766425294613711146006489198499408191868269507342158808324833582941666850298173865399661956602761707151271063245464713327481951764842564637770824318339173273062108603209928976856362261932879175022379311530979745354797617302671276526382436132330427833898252288518326818032231341588725088871956295589423406473993361879548685953135981318761882648980257499074113057319921322168005903159458846342969382052323647272420561968516650273311774074195657034443253511096071050383178696745998159071064909060421401021893734756284019199973467257898621765442261446832187246215320710742438511244586515381929748625522191763550253235742041495229715613456089711658321566879514820145933513020370787928370169897679756598385632578975851476451825420486056366790914027928218710243009287965457694193356196332804197791590549518959702248691406727059519304435235604822517982920360127385868397774143545174987370532373475581706515759662206045926918119260475863085678515736634340017606334579933842621428397925410907990108154568633966301839856914192523087639060078924394704331443648193793992744210950929008955604829002766620573173654850490258186460579466901731945261537649206305554530245154177325881466320701692483906932214056976566580664770569931959406728110068001423019518366019680701900092075482890645997980421462223446112096072869952994290594378975107619367538781147449972821361153788960305491128595020435116493354067692095982557278408819500673651550458942284238446091617201917909711531531246760675855363372315023384246610575023122756932531736660045390510157104595828775843978828088591983043886806780908334184386054527642790359238732239587050425330196597751515381228945072435000049049809025681624610043155569392899185358228338001510908169025594405052351382022675441939087906471511615340517085432206696416421476674641194388264817617028632491772815863046512308082279648333160656897091886062000311258057906741509372006582727754456079903379142935350699736515220017423708759854752136339821107973362612188371704989040147136111470867679745614306368044534580400831480858257476447036207433652921793684502195850677043588504754038708521304285786039866709513686086687291952132252051501793561706447352127868100316419585022813493138197701043329488988598919311462627585431993681409267112284915378195086369364518216178284941571462098191771578464317893832788095172679325922092016772899433652552595666362465658680016116118945572967786597557846009347374371983776813701904281476662593987176842778541222550517874648308630240731196884961576960575895913231760288689471202189742986710770140062210982557419908254531689515727937009295154711697263478239556489128821161444401685704983810085278702158559626679634514070259567421156470261988936567444566450091906697484726230402718466118913066224578444781877908204049041576823593944414914804645596809107814852037584571517432779941493421800620762521067701329572150680485382179238465278501458791350887872321389306421165104507864887953269840183685032614324025382629685232296782809458958303025870716958168642079145657626144061143837628967499634413222340223741142835484742296623973951678283682227818209312450904399398873621211651660189864966454791496467044921321142071269758267286083018184084187140538276210945783848594586706267077321547560054622954248939505161015119346210499440242685899806099905502601505264095861656235831991722163503815590865592228866344573457090892512054357549738706867608207656966886203914374171823346105611773816803738814777550247867250936673312546911887724543664950513166726581808656736902516107527065160068185913838069296887922851665933505612690472267204625417624937853595577182836653511842945741024400048065609141444138842114874745849972509001628609816194883458913737799418786033563319170527101479225119154105564407457516609676713192611479877031762815963887663416561891154313329889581422968075472794443808533800192130521150038815924725757164608617341950025958137055445543335164460616667329583974714752153988950134883277530854908813957280134024338445088490877750530579216563728775880785635491559093130453736050215721125287631204344570715987502911007127696597152148347318675204433255403322876624609551990186039726797510461758018424748148327579839689084631993093086147976904570793772598287879673883639869577744378245147555577252596111960488516853652245967038022027588856350690004583904890597043009234569527701919502849356149020576845661796863192103897889857326246833359190035500757323777967493548022083478688878688135578898840448182643861714236683365970913980175035904513734816529717870508819718907014675488781065442975782935293542826760580980199805524681199688633497192140853589477396796764199364333625572597651213931422873876825047358337723852209248867175741202198886031254894372886264537790615914034475059671651386627485949260036216457253419405207061114389750036146874788481045541832387729926357370831578222227137323918623648972230180586752311208733666175493921916016279869596693910143368162725766015102077337285029624258022986780024445958170460086966497961565307808354237186650485423199634171414997154172068191120485149561993660486932695600378614643833033877656864792877106050503564267945685034918945353858685224596129145063897074862112451980288036815681475018130594175122739140807747577412732526416534121995274256548634612130708436921073235728326273563476638021401081092906699616550765871895933858111985123301080748596123190609410416992837472939881275699012663559137142058266054114172435089046619585306283069056307907490406823258722438338912138743614382580458753248770296222134152324370388021239224075415736774463682619694754349501614691261518937114801863466127366070247978059303958359882214126098052649434578747433867911332953435969204458059881490758032783443031463094854258316200543397621690771188339962980387307400197240513458437268781080004381718454173854423591884346281854699623830140533440643035066711601761131419011583629432459331037723213031320798466964277435333071894047144322699143948259914718083316108846420069658054826882245884110074788509377813490346817250067260403327561832821992870504513930384073574638881461844383822494743522678461744694044726513917753764246931057300480586421562205420396695587446654598218814814463056966414478226378836797096734734125348365982565297182548008854958940809539843953661159718228496243054105990196265098758863617845829988749790139759861674581761486937860757658656305060759861703682536182355586393687674723734506531239488573659760317748969080735116082865717626648066833263737843489130384294444221156800304434723721938197823526943778187327046907590617887665180337810485509304293517398312287107546070701230608806792283823579983079340981925745441622381847874370728772682765207205492419179591307470581017165928812564278229084746114382593061136353806318567153121539832250930359675785917787845746969020631803307413119158856147933926895418306046920702371575681378201915536106839875300755195955109095380002311860175278618949069387934472819346984890825851383779305498585478752134920862568700110450099592813119844263507194594897961438622522624308945584957850649012849435922491798389444245951248096575703371093642186513956209400326809130540631413517520500419419563932913032945784971476587187369099957122675863714761540925860809427367857759524887491625081800389175941770126592216461394766194664824035081678514861930684882092848504698311617909009716378766219646850778291122252849574637100766633815233092872744712619756906674721896518406932501779255966357836869088766847403610915671093180895414424169415563859692912741852675565885405975939300998282885320205127725135270070623030333746727689997969147635279990489653231544283372922555722419622731934656425196145210496743237647090949646021174491431959002231330026449796582470364960053689841350464726417324670966090500434888073456719688251177640014323114096409729747308966332167184552438800014316572782377743338839886958448288840100705407908407578158036846894735201271915434134435051630297337388202462270843432752347687025553694485303204750715511923885597327910570066297348626938425002254400205275775906010995920766664136599380357479218463759274334292557295853090191986313220795659599994346639184764571151518472330769363207234562842994525563989224259481582107833501656452973566166064334774895431115183429179594630578897321183749251912195708342314146349236447098822139023068190977332787324088265826816738404607288428949331992325823055984146473978431611267881913726973369521240448811368092944623342949006469572526702751342805761869909450999973693752792098180087312819377737700928237994123799469237803436720878178612290319896684532460639664770663472943356515454769114831342142385328212364507394299058827631544193188346566284233143662619927824762081515831565157193982927006237510301454995216297365404262508125724845468430387806004157958007765140780132958871783081003781934840379489910480339644400658052057877333294845887698709160976460553015137035510992347731414417051655451130473218985790948457983627034907044473983335956144026017894294778945604185444575115381292807589963758783455106183065018160464059980140030878315819289332068638196502293822456131775800671733929627079586217426389414697085754058019109054350377316500712995731362566845103847073243438816166618629825070775649730548256539718653654742809267566268916907271259986127652962024041095410241863205914096570334335606805359272279966583575298409238097429444703937281097244143601819307174464030587680872262371534535147897751950839236025701643050485347498881488255403197787301888548745193641292130745681908710296598576115606043165080159120675471539688496168159904354747906309506791403139240320527185744773251453290327800476919311873387670461484845512309058333687742161239752300712726856527535497841315529157291425657761239587258149568860311032582360711872861349718928409980163690016526247040703950259270546717881283826007103766246187043426724277937883849851109443608742585748973166579419623887108593952247184433105334185095517044135743354989104334483283750759032966598331404098613230825142531680798520566320726693392663319234530454721623415553596572376988553798264260739397232484342595706941439649030422159462577906181484923844461727928834648395677916345180546037155618032504341155487241956500296085280594799658663833870098685080207290796838183918070510580055837204045200735748564476189253400793759616330320373930419945790362146385972280596196012525792849747782352841294818857328268423662254868842818020714305554751112686838846842357771783913335482482406134414049921268576481632940947728964451440401855142649198468916436673830025071257913704475571103648951512237136499803016901479241208903985707140844644612201374830224684814621087545470144352446441166967082901417026973221998987223259900321709507467963317967619668207114187962032843428149045916335242388872486401132163683732053371576893966957993499666360156466524330857650204829472880240630465869796538304748890486052658779159524574466399258761660547810824987634183114547063840276153269582454921579433145838665811930942381047405553244082736527339484903714562921837137512361873373662260294170454496294109331624903871727951388830579108094118544233793953002033622175192853710761301417360708230949231536939695230055466480226615230484225588252219673907001731777623799290199590323865905146562413863632733541273008644343226341608475258249012212216794246657754319048997357375870187173832254959187590406775899873328085258433793403138322057932352555791190189790386669981349639411997800645243151326207789508855991556814411622196742088835730225806132381262923094425317167157018111036410655615738996817880211839015368269189668301839130439267272055976165776212259579409699861709603189582938119006654911564684929189560792714979693558589487817859673279391966670825131846291017925906524523113681859541538871362103683087230029394369203007560816178671978344543564792933485619289737721762619146230515926283212743942147359671665946230892430204997168018875234926463315184114871912408793578910821506068781242572591593768015991627425594043338690911190672509261175469053258520901560448273300233639869457531443789003866129874551012147726753460763758113561698331093962725919848513455501400083455148077870334338609939734262662472957972055533798754519068887092897104309793855693047174817469455651936585820946372209232446597236250317876252123184912617192613690290054989190829424277817082998862020135836296907561913835292942155653815545397023463413390561361355183500887953641324543281989181885976213268169643965672248102150026099829118526614524946838438687813563409544907009014907433236013649433667563759126742051412321137306496038625433803654856078405893269174518608187284110839512217437528245351003558395747171161460010473345065288899538309540722883189407640071231464328836717335602880698648338567815473486983235042009911751802790388952939194462025114630523211606243807745672774070398128930011806429500654915730220594862682486051547539339797964168511905909800257507671690219488497097456476582629695158189939000947825065938012847175236483353934142525022849796603694942883712080310637948287671326995962381701401481645847863370526258344447370322492920816281102461534411461807704718068970996636057257514867034525124816292549940058223998776528472092766873978814265197637588618506597846931546812963074502396556257531614924766671721432608718365438260267565228142827019720940803216627037262414436353313064591798521213275104083310629714311063868397399994709276017058409361045934691231620660495059317487068238415169431787427523251220472641455618910801407362484416876839291197054561340293428014012240779276783042541423410150642891347771480491342352845312490699513352077027069540781626436871965370491572984402031364637366195879891225532143555937033763310963196869538531940881788062949439679602551020525843936242010136661766416684007761023572261641672454189482073719133835073369084511186795644632263543607669114716149414012714025618299308359084920199379378013754496985931266288343011193822404904138767441137334105483520759889719728330062832161624712163431011491347578250895168368722143810563327151324880637755854577302679670610597371313937990658344023764509767639060970717139276269394172325307529541940330098749438870193320593647144089533553416652323888773054710870235762344740931365322117986771356802621510086230636232027450628675409639795832608753479502790046780500885284072066046216065511085076740178489292679427678487007827324564287163522518117312310229957187173335761482623057999688836194432041442263559709026098372809649875232558594971314858148856202499030080181807027346600544148097313608843095115544894621441973704161604013771820485503335293278783028940494288804771418583214085116406603808402595141007423366610369342761860760775100209638336048706976663381239157722952348444750131186103617829152203556980737531453972061772668689428274856924034202287972777571998459636242805166850812809244016953956925175541996511419901530675854590742029583558792998208386818132997761774091692433005679641183998735384121785519545378487866347570685407863673504373658583969554698418865641304924732133448547746196136137692529186867497957612152601953525170670954048299533885900578455526850112479581963802350682199300208498241517170661504834530193135955945981123760426456194465450055265173986672980116987179863133299646604022788722186029847948809316223161217507208516284218522920127239032180108170064479370806696306601401026594283329891979789177228892171535896128451503644873039716045858268263447365862180653072779219637263209750498829398296826965845529274172233290553363454824543367718416172907543853559481408588175338194206740556162765275127933460539861218755849416964275638609284373965108150586202799171209777797254604224846448098040491816090976477669524545212854696639046226538950499902780085162052729258535545440007814397476631197565292633655212126825199152603651460209950767559383503949821479629854282517733154404694867953058870302445838786823705020666610599063652626115082196115648175333590255990062615170184161478493939938031849763764204158481929578630986627994932474662035162354273723309635408965265042255787353449422227564078299763340720648190531476431545642241521045546241988205150115724152548940335807605520914326368781302585237038750022645736461856001742232561006263718405583506266425551644276628609674481928279419296711712437071939260259509225772288282181009666809599733974950468422585372448556773049011873049545267690831500483335981715000049722046772847736573875479861103998754655316090790716319756865064843678221261514094859377524737674888422850252491505047189933949058069911850165716612516804023984260575876207019066766028129025070300978170999664084697100464305775800458926809757366512429199168277832171978653602880568284157093825805027214997418395182345658239843961863761973554166628832978230441721558528346934830048881231745160773513557899290173349009847242637085700456505519304505832320843047997502091360001361403344854288336147528774217632086966760514835347293351106559512164162136745318978773764690897678563182931190330958910515317557143230191631020380027647106062021248253801263554982269588281817412951526624292431780571732555329891180419008837140374490653046872810226325201333510617889250672165517886277151717387021847566972517267219979819313372471958436088618125304428155359128584340855163390805228274825828307832981360525261416905450342801464616473163038829944676983720418460465130920655728194250148318228954914519635330813984944266115909350390239727886862422482231328250489945028028979068731977175163602440390214907782857305907401114913527338273324536102245926255587008777675745668760078689405800217343881023013051039000546213425469409051861358851747703616206275390236534217929226944909498991435205312527106265990253398548324450735628471895344366217796148356041262868964703718241489839310336712764410431437217745754918386730574046852187609996855550096096041295176627530658798258141097629368941596268424675324711004408706637675196149366621636579632680226020059554706515143498320742319552857800784718094720894381162455168304195695840174895821656291093749814566228977272416764714673458914844557531689225477296218966979424176856665088780329614168061382011635029477799266810501241199921670493024586010580637623854333221264715782213019623498448842618798124729973189761290252821707209409315058984519119106815271154714131724156325236627750924229983171633968438022653416187779007689896496278047382132095432036526376038162317790013244416362279946940908922734430655668826719060202556748111797619436490629673184061092078372470466006726003679118453083660707227655232044615743220492378443665759961460615350093852528296223434451621174757572383268851214250815532900662470874538038748103124603017046373099762324832664280282402877328801009541557847227690528507518856467111124393246204484305201041899525525031968625820310936829198168931565152733130929016570939659077933863449962294780131111945578585771491500513661802908405160718591207701680890257166338660207429250352288900954154822852093468711123302235351524713661714057988003735883330525863024259280647474675814341556673257801073382235659277253968495962008982640425860659940874491638473343296144844068037183624778511518554851094064062815299919912009836057345734250269241299618105295612163401201839742562655136708318854208640791468171964580554638656425470738724319990354011685972134154254699775046381655457070512606901453608846923823712590205123178732519041198402881938585522291106431911055287564678380375862881335236839566318006185451235817015202563849201759946850332776484390486295796455009406905167126516361851437877785013092076426823506265074833448007250805510779912833337210273579212038527470690825956458104052099766481250576563747090459479859180366725252491722026306633309540399227070981853774744948396105912004113232804610259122278204452788567647004516929072604208107981294113563554114976642112788918232797647715465885294403749685039942378555517822072951031628435970298196611179088609654168691746529626304656060427966744336134739523350539771145531846333149867263704039272065511861867432753730887898496323489315121805837540309694052943250465777780507055060438430812221120578400351902259042085914695092176255357860569453231113289062356149456314219603016899917851861985906672903410030677030669326351282167716304450199803424178846856277117589442484761681289989273961714305150812746412694329500923908833118693124217695573128641181104665425626577646749537398969678432466429560329091677202734635333995554627228823201680201655272512962597716436538420635307350325609019646660869930585379798346840624702343544028208223951560604319074202964131123036394421202628789826863646560556703711165438017985110337224922360818199383939892644607744293714176541913241079602535502711478236690305419315966221238105714812643880358846566050656758449803307112587630455762497495555797908492407057713653031937545291680035800589462865632618136311149528402449090626820002700805579198241026207751668493468137331154195993381846414982296348498929774648860292110849619230472238410977201517915096462166722453346325276273653019044626023906583393472570928925346258498939313855079375070137373622163001812801251379475095676543018550047260942748191955243165315015293180454849622783440375512733107702796145954410095445053977824706296781802869555170497504923475618217633138947356644178946335773685834395310474542487799783316988630326024508473486706917990287648781089633627878800385144136875632622701787213033107755944082308204506879793239937564042594148988461858485631379006314874390845459502667424102139146038863036317017196609940102614543604121644302932055819156981360158982880305933045864199784547376989672086195637685347153523149621681142653406859452826412040849105885842183068127139428750251500187930098060026651468242690104769129668457211440933911352622305722916963722497098880161734273871606146360067731350729638027992957560512428785499032230957388761125286897346991654306174913955867872362469553794396102264836092302119994112270445034174697315122085538278210795990496847592231732385199899418277413204751846541077172232588409278272905491218618012857737476419794326168553140968479689135459709693998706112767135908394564415683038236282032726873689841051523550659535799312941822860118451140440138660410428252852694441823747649219690474514457743942630201333139225891766478772321485356832244911781678100963736552309331762035223944461844494446346661419799738541158924701972402222487095985951433839531992390305388960665569892987537359099677538764186111493981173197249989713047230793622999447358343644202355277100123398952469845382615826096572286987141983282977434329701544892862904877596560956646654926573322098486763154005400150125246212770852962931974395551271378300776414061560972966585346345282058810665266164734636969061325498796670791676460602582131421740964533737739116221426912300674874343542602830984108013851024916136141403872444721433201917430652090206352988631688414312169584531209969319524641517853191706821069443463501144988791282411504584306488759365489016470344058789731202471519508223154171172918656673192169503663850407786211641943248823988906262212885115656452661893106607087281288856877352361648708523345152238712561392958860260087255730441523844002849973729926797855698108159119818399797732028100586951746322925961478167336476670436389133780778121564055294177435613051999867304556062555906556227117008421376716797219113867858833429666192092111986347829595188832758442318890546896511789398267179774585616815361386928758205572882578422403411394420872269681412634950935550636309888988187773349424507357247155918056131450527624175188964162149047068294644504328754048884577306805586136862889728305641639945496966458310617569074678722017375307615841007135347129798146057763286573696297805587978151457895082954259158046571318055463591821254089080387454754285789433807614257725049980974399783917659112038005272218910889351315476993222301796453267038243164378044467504081761432105650667173329919869208395414378496750318329656431344276243738507931604448106885501393928521026691103148201129369611315116000511165177346230262877882172074986824822229961805255410566703910925779108198443625390824753408877731611467687440413830578175759474755824726562783812090565999230105638997451877576034668234121833677422358523300134685017296683447647142249991553737431593156233386566855633156422803244751301547945683268723227553837186198023868159606937550514146466753252699563126595356449738933252195768796741186617222889527412133354977611592826188395169818508948418212481288304225646683694095187618870910299551049720543503769265418988622069756916044530083175205115999187787323853773106029132706239700405312748473982999293305422010943493234768691041757203508314651334933241077500932289592761173381076871757338050553738863419800309926189558042935223283550821857311689962263756810683301410682386846535994383687926925580216238599159593023250062672939920609713874504312348831088874565282008828779970379427872394975516903489295070112162014195235113123519302341385769511144987105459255849090639484923695701961095735851803563523641348604365275992048832636430165626133140283340452680027850166921798897316223117075810790933189880953426401442417077685112764665802206469071685716679013409220750037053243628121197735258012615599730003553399926183161467576698562595801408930413204009342313836030620879414336969019093826700001106071358208165857311408791612260595068837171688133198039819394082169796279876020887964678583661278594757647203710635618518260799723119299113067916150913008252711650080855779144207901335069274710938157625953920049279057289928624143375455267100988697057315774946719417431130391287165980883607610587004974234069142111443780714579837776432643131564655913515256808255804284790461899133046139684475526320748335773988247357720746265377024079721228293379400539401188126535345745282028351152695055566604118816621653855259923336704934377140279189805419979989606505787974132398713040691246613186992783041450335203879333790773569677310570897012807977580461056399179973611571975889678904103617662973689576497124217071956615795332356519905063781162781380388741823510834794055939647366647298356033540305538590116117195897615680681828987196409692355487505826643752630702811570642026310778037627219415082406138551962900110284856616096127579510597246771886234830412102392653647975193277205868669786084995157176047106506497979515648199485820633823989267636899009545006395968932808551431611225631928560477062039520678230485117811172318633408590068050575211563206461302926654914712510467987634985070660785262957839338385024513300615981396647401878948130209990742371392014361583761578680322277846539609502036490003664566708819564508202183379549205762024945593738483142987444769699949620870680637377386701082798095007039566349082332493005591746113847771395005396721107485666518202462491470683994491929202264088969231112287374985936813114388335160910023522844073073672933580055475375275491978967682056036126925850985251240008306037986267136684461921035894210442659180993503264622630568517599545771582807869371420137647211124283184624507230188819753590123238411975457565596450789907412822858109738487080948911743581319996066123648879275262079904007426118200480609708683668979475574633191720481869428889720019630318279189041468240492943272851714214135214053460201894166439575092966477251588719584399045393665848904943839975968401938585191109491151863049918643757249228014850229526786019659022027424868172943152666454167162622350082676942906710761824459520524403348295214079450918424528420027920956657785397734063793979021061348972426841026863700993719364387577046246591345749961977505203808936202085493114878364416699040869687970316469308454444002645210101507271001323817894895786064124750601272053009256350852116925303481449664947561690155997256978272850991811205618750815964319387006576195225740976857720931276231532965170530844870802521242667630394675139137991023073803394169391421366957937770629119934138912257427518834830995863869452885504738106887717059283260419431826450533676225278491165708836861713454789635287392251557893325706441006434397623773159346362618541273418640498238283025433611766037571884215071880772970357791164665056633461543325224796253367447832838364558812798249928778142520251026690088193792548781145736644515843650476711113182990559811469518032773032713532706923043239199612968385637611935233443068807281275051893516855132323933357041298573579038472488420329433306942233676393686185449856244668621522851751079392368298183258218870431837892760273153152913626404745886456578764709412166457069329303608167973604001494725946226186096518694499043432361724440640084438021569580851828785249587261269004178845682713558324249794568050105987166389605797617975657568820624599800078147083587973490779931704639566124192291892315917084553074618609372433026670878302272613914226526693587379041282626852785571752886225121172658844488441709444596861599146182111800454579775344626837920271726330087619397155937622681536864773562352770534257474590194528708752334145047687512031224780496471687402543071321076196840025947554124837605855853655450201723713850131800572560177018074827217254161604281656107302314194256078834738456269948281666186329329598404143975466449195479937186099391978358289417544139717794754538639968509322257479081981674307326762590488958233020893076852992337586777384996462443749388641800674639180305605472457804237463997837655819763242911918807630961304640496101556203886800295009351991810891325035479821587615301638242464784277720499782170675153769871259357061838341581339267859737132105171806649442846829495937422913992163220156465335602845452203955378301326942683094998313622779538235796890508213271410655621315201390585639907775434695827063864098857118391685219780231793416252860543400766449829552585616553765395107030775339371052576266923472797679483558489052141144628535553863437770545398518845805581948041229839901398186394007891964511516418632881417106316213885701049051959884852101124352826777852159780844078565077031878451140280080323385551605381636625915215669607935537231303157552301637593066783766689720513214327726167308936737225941794258239473798826514212845266301865997662223104553448833861397356553122730354504846920159492027708845858690173930168823625181007757746609016680342262210492740112707034773056899151462652032205078788666994543127631614090577680287446726003221776729763078372181555033588159461341806132327125158637450399228880083044593683323534662828029279501936192617278074372664583117175147430704638027850991935467748964971360436805897012704924871505424854980289894555184476301837475048691798527088395262940384056243242667022197099696929009665295847254480677949447605016408246627269510459618211933700366912947641517909836186153767817593152856430968373181860573375078551577706299891426144510948513292789544494249208712056301791354997085310738106036234318849694282306443842217821687076498762267780362921937625446590575474025789557939952531980060400285210868329690755982696826077749943568748402168130476320976075655184632997779273016065969964097956680900089159555436017456907797827192775243481971033141982392041670955351332855935664998291808456549846328989180786810110478678889164636531965450508826728336823427663663258074940178870777727906944667151156252535859618693652820135408130590113496438178641245577967708233353712062676492329377895088434920864063620573410821414820954820650409048282762444254879909714387152244725776109055431443070950539146691650418356752887690771020230199085423304622948731589225385481723475357733273371051332304752525442785232632720095240234289259649916653209496033219239457294364576651032104593843673179034365715843569620533621833452529141048712133919566003478755634964057516024238526542286320049427778909255445900295726592500388774077965694139761853116419737144045115477265564941295620352846760291344882048830014708215674790354128505797760810345946221413448537192223825082874723630339601784081250935805970528667883912081414159056074703373270741204147698419031845228060952245386401791477697014521520516705597451533349988061495972672938856805751155327777704907766921718523476443783972925743155064396049454280512577643965019809255868087047792301948773301386496540165730297587821908738092297589429032298267467193950011737782847710605879562724171646566042377628183607513049329949053303894241717922629809713645434673784918310073743833277173418887489542713663318838179940240914140999221172074883713987188644403366573533312911168518406311978031248920700663634938295092438439381507768766186724637739652776056701363163551212937486058139013196539280674425887420768348011783982864321352544765909569518503744172655063257200911199028748929028441653708640945960513588559026315499951649585212607376172921265856409943890491905860766653953547263946139142436006274494692537623709318677489257384169797502280074384273902660174017598695123106813099561859351498571214989788345387918992990104734960163320572081375010393612512503450073948782624536519428039337503924592564470455183971507870845992848196461152317904666640456618095204921233337845880154012289806161328440366245261601814070839952540919343748586487528419373581623271922906108645250267209267421742314054015159373350956124170877996647708577892615147002871061344499839617489078174136994183555828688513568806307497870645709024218996083619843283731823819655640111260247214133451556180861898854745306984933536709094021843403185771427956820486931420468245002243138134300773207182923882752828499454956619758056004352314522794888561830855909694334733065129438081019119878250034386945774732282824626272785383929059328267373752029056930359293756212568808225803924007611059176191833044722591806780217969442965573759152994197750350346600142936472189441615039970395517829686334515059407536016734719271718566686754993095290399966994128218980313354292861175631192823498110846039582280380408053003240559814219836054761061541863400996418202071019458985966318973538052993564639629844497623335622618281303683635329234944485482314189863028685859760462380624714687282033101212917164325300194816489682792927860401628063635692947349865148868548493311252663749488052941808482886098888788121834344495292250513495166136398203451516316785296397613628505310559460940882982297103775869708805983148374298496170399858678451093246532996708998615259723500286702460921644831227502405465973388745493020482771249125870387314640222261144142469003948634469110619525246315276850392125078353149386533526416935905524644966971765639341366438235119986663116977902512682445790271660450196939021334109006592496888298178159724727501977639245525678242094635738599130799382585819160983456613966129393565994069280832870738156603836009256110591769073406831421583299211336055113209587286317247174366401319064948568790757144741772706508966716931725376237262075711427568345068832560931903473258583220480640340389383827402353045911848935949708949436041843122559757223678844190903723085529297011400683329382355565545674961560345380342903312609827771127146914697637364648196534508929295332444499889764102619837611351560696619727091425988236705242234369383526009028344671462337962317071550460154216803042169918470962818629664552691058294695177223528375164693157377727965132044135449853021896166350094348144783195519913789886701195046264295205292404683304041031502787605593594824676362312340112756918497553619589421655139683877501301332388843362649284379112668577643042838298128920542011669906060740136023992246517372168851841996476304371317768984343164436245200932828525878102147771657365894153326605259977912431763684766575947640357531939808988164550034243940385895489509170776717692766312131657920622213119754128243481289056676864116636757601489213821916081021655299257239579431639921427094502351324556472838953018283426112017278035132392000776957634607347953424857097603629579049597303120613280696591568875873212772567420494283097633389230175086033288450092395402073002466138171167319487924169216677593923944735441658900999954895455102714472146469442585234159659238805140375305017777401869751511334768549074512231331729064225916572907164032106801779204352795418426225989199084732401205261326096269375787743927785751577586319150204257832049558317678092535986599976195037423466853362840188947803034035603501827212097232699548282241936431001680302206907183615120101077490483814517441682038575354229160771466327138234579245204774754584309530226290408924834764544869748261231893155642775612863417682251288417471561495272689261646466675001665765005473258074933296837317313179388935252922656168999035867030597879823883187918023035700295228536678643673525783815497728635473915649176498753651366264460506085222507012846199567016844000663586886678395475009378331680397618697398651589689656450436907692933951208908682393953749203214165557159621632567613902403092590994758114717287945469046228221832607150478301330780005273363700822173307158478541264187192647737728686961839759829729154092752814193874019590966924636103363065194440712428133110778716476554534326138877444584096350181548212304021303145690016627684796974037419496054423267848979013126886964507526504952586795746427093324068423137280438312229961076290418508076708451477631321128252475461082433483182001160003367724005506872097173379901816328177967447545983768637365352403788303825110872858590055137338896343103996119727775226723869722621564209823987867781845562698005672613631270501121237018562546802732744754072213955332080901512363290555674990539877213441646200562340758947899738119529611455183957757932349922387045008057898660549384779860941266881300191351304136309719082869106400756754138187464821682633934831329069188394034695229006885373327591377598820010827738552390377400735449169181017545391247116173670198314493028475453003230505394484247801605196554897767273021318797153482274294190681682542696387153369275578655121340667973026246047382095816179684966041593680207671139990232789455174297199180485351907534634071250405804553768492013642188322205555421749692204802328053979417938704087517521668725330879994880029646984185288407352721663918706998449181373055489902853296004282417700200386030010936687926869101842829900157388419880300579170885849408183690860766752750266611704030332999303181526462681022097325009355018882154166621000904684741785002546319762819958706859786342295953926441270142594608886380796102147636917745007573761480196728949960734504766104593612906615426957148074847719708136210242363432463455101677783696482360360055306965900460734495928135015954838497826639587382540445141369882900608144138968680786096523538120658582037967749208219471161169622122304636567638754568321274465193786865446514057680203850224694157253778913907335851327037014361849516633900127870828553417459906189683082304000402426911940372322447157048056372380921191196850405430709806609994833100816514370009037354460308156004646362134961706851461522085568317225617623937960638671918873772088652565813809885898306459695575704431208956185035401587632588752464655808150301489849482967601288725707535555535200455608871326734197402193113304672890090596430473240651750894386372871246351035666879275512212847294660631357677930626523605366862547632137768492736255769803415365902745619015636925792985400490160470914368084720459536021649163127078828836054051998164096713912993281499524269884842321956449142721212227332978900037508371491579140574477701903375392896743726605407506996522962552587952515351483092526570294798485114462675008570193208030328989758754310777536062611281756226687470141775180924912784132551551293080968770009588322172702631017016685604638016964697986994983631116570847646868888929838421198422501167917649890585242252552150707130831115224387710190258004601479808990781696520023675355624900166094909763491637171146042142823395779833763413839516916585244821312179970197972202928888867521992970679002947946479768208962633238919944641032200577178894174341248132429944100234738446241545367620924281967591115827761563326987053792136316983479209868737166447975211536925740759158426139708880605628712624060419626819867957972143570430931657223937753726148675830247809298879331736461457632180557404794533585683731573788586462061976002019895427951402335379689758116878695914592374513083059275172984269760486016055887524954709338694799990183937933117691972812647025496124828550964227322324334511413438320417605689432922598817356469993437324393365248973184845785191982892352292262701068289847318126755476241641477107630134160607708554123937987847090230527028438917617140712609854262368051443807942723080701892607598255587319027628122691913540680012473893870213967971138784498479059676527151872104468017769025947583889038612445187108120725796507743374506741683988515014870641816725127604756490623824344608895361689780938522148679520535799252994773215174852360054638849585831125656702385672792939848329207276282890176559464402450257239216491215863024527812843999930531599115365052166266717627839572571858627692197276351324493257951867091795474671970999073325866175273089943226178893609091316634718553420849698275218520885415280081944273873055736612238162563482914799692857676387082433537113879449485585352256988704075826823589938209339861742460520527813149706511802831374115648205512999442317430886271105751015494386667410392807004390065328263440509876855622889713819926483949267226174916890888322171771233136431529050199558232480802612878140872012211473678552124642892772751653996284590429970910931994584401365417086565156684436442556597323222765606732763073909650430655982626640260505923784696216406526119223964016825013022924325757233484731497138847627466183021645338477383592119609598773808270704158718135278811573580728777342863598318496929624247641691250421936575750600352418345117897020822048080912262035085498089793258693801480664319573803814601749869929861649699353272924642928940489394297113026170170735400149792680659225662187681711003679492000205036477711716021852190155827255126454448581152427717223133353187861505790915813266637088103056645047162141774736611688405967559232450777194668409681030113597754601509884484575162791527870729890517545899204880678554128064997260297260901985692451345666635832095171818375475136817362885354794519747805224666635273286579891139482120264718225883110950270196893689041630103394087817007621598466710389458640223591353961802399265471070814150576161717176358122884038170806158504888145352938118716946150666241156627321485324872778677360570630356850159115250710528021918531523575968226508888985539813950837774387278532644650161226015569007153905234539727359965762364150913342703434208005709118361747168300839630420430961999377866823735498171393359047967556303273383560575152347591817612477795404834913350622462411437868876373871839245089079602602491622244511208783307282944171220245085490809668554877692407695381478941159921893348864547132383408908701206241373776569596065628716121165779256292805297303836157291135254132671875260288877440554001852921798112923322450951808914346993439295640972738986816722250441453093884118988800878152184327446445355666575834127491462716736774627196399628360455613486939793905621796274888048548036190586916671423985002063523877638143686071043271280282401698837937358928939261053735133118271603245496299377026303119065994021096825052251251290930933507091818510001119657667972782998734834742993956162497035363424899567259425305370327195919002565040361474916081362575295033877009564700016469613030881630178216876950266727987372469223071676496486147199268687833599380860793091328929399481263337525877470480985526701232213514825393169594213885842360906702391807652403351537856621946948459382170168501503366856686662484361829095654916192747798348587211689415658410597849960069987308791390366489287919028172742710884251112307972126279551887424254824477472427768588372005001365964386212039981001578610929652548478248934269140550719687908259105090931301350079780240300800842280540895172833415665017972272538010359585089531638434326872797413539059765734552202253392766789247269856962224969654389272572055204170216424165281445671098446857874244755396633202719909440317130242328792808067724403797624097638742098110160984270575017106415337925979722421884239375029596211334077904209923090698903479047176106876155609636969301696506371506039328891499418941224456047112516627517951767207449138637047516560493747429311718339194339646346486405987818276317231967880955409160199564848230401512625993805139612964816346521700791056340898488579318754096571332819075195500292493859235235392855726910311788183358571510228964967852556359420908284715492963353830885996476364757666193049916842756471898823017085881930010981171522494704097009791919449345186420633547082485541950210975718656141574041669676211412531860771181184213182836511516049835951534953195251570977693525240117601575372402891183005955953406347225817973265217026717713360429555166254909659589805247750385710456634417421009252112545678769289982693137433449113775516375208913129440988541972994051978375389400432230841191068399090626161453972797709564320921038909707521915001106015794864185224957206882545882764313161842190526778164219689786447382363301653197819119170689826812508607344954603140690276967934620100616265836083172690244370066856820510863917497015909838379598049674523547897747261300034687101910674046071996401367645930071770680270809107509391365294555507142415858881611873311213866704270631280441470635409354793657861984501811952634881812131270909818205967181023059784900113390592861703070609543014927777885441246507011749539497845246887427884073292270025394817843931966166931842773442863924235257033285780573478565134721945305141495870340914377844043400999127923211691891682666985285297009537387354362639070437115159335605070738158030087221870726780520088849782414273986025272553056872277086634817576946135331035302346183379796903264556049500372031452777733036961718172161587925057297059272001675405969942566708477965746384380953917487490474166121879107160164205424726153437392727143827902688927972988507325404390660503924172833200045223881989937894402875439529017223139743962159491712307695494386386953907245798249890554873088439886939305740150558928537046897537391247534548754415320982498556460427997039301002520441443837152316739679213520780561782325811542613072483032021570901192480354256075694388015579103981320708448200400687281512626002450217342543478536185905935788944636511097094430112715351050991115758672715232910140316132291821470666621626353191439214772897338628773444726812027316804897469632838100915168688641129920063785968913247734174665399015951908129470469450676908158320727704079684140188789332490397271433885410838973700526337315011801619628983229590245956843393469430996601440759187724063242856682180808141668815882733213365920568184646674345619037908061541895672821457698525072547320670328957418714102851909542674049548194167700090841087071145099651208105821610322108463330004564534527680893379081632160672100520001419984743088734491118081838894610725804582773102062286909070207643730400743920140328520324047749157468788317095419710852123874879024738622354983558092749802384369345407900138371187019056962631900858354006346900007503717710181980159624710337430292032404146434607262027522896898082602601897410669671390664352149684025330180735651227504412687892302526553706449719789081871370158593935258943704006879547823680587514507269295922159703609559967571120743732990138997275168379923366447722341314320697603442139199129762286516654978863255917136494968367311328754364325465976242611324880908048458049403682347457935784821506552910412732568061163933033419841337672902276141024015076833071984325894261137425494304713688979785836271636133211096164363888162739665119203737375896722474153574749591243443600515883383581993553579487138532591996208183172507811953576692519471904596057519917071982330343786161495877079453214874822973516601527970706672054797946001413491787436511575242082874852523992829236496515668972844477115097510915952563566600949799752879983075468902589759555849029867670962152778322622612333452329804770432867885396645243046648253247888310718692739945092654106170604209495201979989587263243543672224615137969560771271106728169221936126149954457237600942223755851146823175555967073776944647611507400482527481743105056159975150345175461500843589520401912409626552040197215493252684571773341404570094732158371525275871339267171335858488807454013924193192401749439301799378040607462500327567012529399012679188568513227753478919374088529029292961597660077577877245900388286788062939131408041571601266644856032918764853136932928755163103325377775664205266973396557368255187796718932641596590353429980150934176441489744062418296923110033544424898010028710229869293824710320663030678435787833119504817542260669990678868905950360788175196668625219346447811355182162511211067191982482146197549587644743064821976636156966925327216697965445549051994788641387524188470798090415036091972150830262777744626887286036886863474769421165311091130251111411194996913129155285146373343648045777462488492593104953231924265382156693603847999699696634220871871933391789538886781196777108033415956298195615281209029538940266259832227629865993529897239237585918759688986273659059619975546729849551650430849322269740079442301843797160483618386715650989097070347091309535590115901582397332593370300928434399339958305765072223118595084147754288251402197574480371475551800847497858247055927654069898245876568515629628353005683206845227063900147409732033174287393256895857411726507576379237246774030947736379614709780513546420268003945653847519054666926622330531977722348327383176941863430647216607814861683140300244951910624127966332263225031114307780833197631563296176755906492135560224343611763567324554147906398528012772776035424297885704469135196844085442717109245031594846332362743226815948146791946649018801805409888357525144065793698789629526019291808165098307993224889952224508756379903832108662736876948192231371158682284191211761059407326303397569212771573247197001787760958104319924291308091649835830937226794169606671512478501859913225191178172728609953173851293780105522014259473021087420715053696987174147040443751557245494893173158513643243753531138518073782074325452279563402494853449505460278118034995605326252162105213441830826281967533566131864772066105063684564247833183503816145729542836663967792509371097095842306845003183017804766409539040146752119646845589896762966971754008356308505289666286126380813576313083353034838982103556923630248157441379808599842621492301551774674819267486439906120204654358851319401938619494748511480697689979034476668312267358359653870939586013685542524029656159676671242760831636811111360256816615805869123522674302206529780987342660365060705194367265919974717282939684496763989571242811311955699224593570662736073898065075263194488528884383181704910383100220251119547707068891768619007257689001814793274948636662804876947926509977880817730026271977648664214890782039811805718208085588629465737228102183696280522705835175312763409284820930070690207824445275510848416430652192680039518208847178562180015496177512696086156049834800554925940549519401006245365247802858779938730281241822269941996827142398575046923232723202743358409935104545702803100395536911473109821281473667944472875201807497720353632147633412865211835247312070860135540802635060006233638746702105780733912285163626551715804452541531085837879140955354946910733081935601500611711894831305806153919652909593542483009731963409522310721043377128473812059885670831498633308426681141920149697869684368393046555701291922253369137998469601398027849427390130608577527255228391971579278915100852106204168954319009263937489358641667242365660560005331239577364492226767146594970617828405278071604903286956900184645681919682481835315841443882531961189832667048289755707648950181640399476557747895538693238323404749945382020023562878146234094125128119016640362323335363789956612294100183393752619846357315003916846767958424350866059453647577242690676715219776739211448576127762008872603242704907637091599658867353186159375314410383843809759475836440905597757191481371000005459828081501489871761501566882410173289833674205136361169557474254415636662833140165854846990862589325418625220497497339346809402232973659861344486327062482824783270488332770861228814035761569274364457820795102188496490243683523529865535030059292880670421346780221207457389709445436072543147720763047749208085372473769100931148064362877665806859653908278788322359752813413002632272198255258286209596265049503056441533968155455291687092432027037622253379946516978699253196166573125956746150450385425378712435059259292249101269675330436880856414930340155055184639520967933663443014150820140428355915921585999358083622453163851515114087863122751402088358390130596631866091034131065678945635134022658109797452630612623335559596854788381981447978790866663403617487379498933044553102759646717888582000588109541048506171925638934026144732289147531934131345855447187392460026674019055858869018833251853802253852210911948166680065944894877150094643807882655394710561479783303072683968941205098691309666710394941640826916450513881660340756413725664289301294565936644450095624757966688967706416739296048661299285078350989567044919191369762434981919260377268050444658577106831674277326063961489675758602440856015703601604945347280376210838369306478885356906768748591127784060438482211986058190675033802317556841285810356183086811948404405455092848717523524215988493551173208046155651204116872001581330522545515780240055480998853438073149765765509552098747796339331691641273196996712146001027721254317955030218722856979968138044369133190219282449978361343341207305951138887537239014402462518394513858166818990330854422854345287950010153853059222067907392982972019381731973712740831340520297490578652712541132997068117783206860111607149832940050420009257598017223038293377298361123542218385562385702845618773980804183253096643130517768620659162537731029209315701844130939448973252502367782974356855804755979677288370854833005002137048192244119808494707800449174586970519207553646516199058602246565928896202063964752899547385666361453255891181904950673663083309202606311615590014342386049066418413123384716848789201189144044863855409643345734051605549150486789445401845921531547773356908504072703622856727375118753263491781220576774780978653017485112513720864302528638238388437491727624102962987319835951497791337508388003835291744478044821963317095130722450094473380068362874697961949112832733987732974391888416120162268739432119296536433046398999797628495607877967708293940371695986491621728186131099929049801359202754118339423421189908249766911393840360342320347316967912898409039395983923755589302321173903773644987724966858992192259222319052633727635264027350975951048612172665179223540724753882128805987698645213948081323818471109811486285700967090400674778267108596550739443185884041350345005750092482230578299216431351431601561679158654421734668754701098458436444839162301020223608468667332084445895237821222352729840051419521014607533526151040094498111393708428024705233138561020640182706984457437775333517158076991008911865410821282341400955295020722507649659695815228118627087790616803588308620312516987651154058295748865334568688195951327168891905305159140941050739941530669757700021033707624184354285241392599868267844136944155175363188997342470749861374595239062112221806066008267130608133808916882268680196483149697278321781362291514387617940198139342178727022125053082464030013378209276432692190737622597431812187544785331419502575560164225428598453403510719606292381110547769439937762598751532768710271248340224918693427037676656895110369244155628263600219798423929706228235931002727476326106820437956387341312066178849795316752061383329111570411975193235553077803335954608245196621073728679953277650844095264100929753329026672303455036587758194350910494580787548331446733843182109270434248839023814392355388108320392969107353940632278078935097702674185246512221344045387623459524175981776984478242717078658751774466596121110008048569209827576837263136793140784050332425659801426520211440428176690309089453667945563777571293220619465774315626344586065897610733463134124443423878692850406905296985626280328134445379026045907671990975417306487058806398097755527139381584972908466668025244565386448431177016925666988779296215927747264402653113070075908025882419588052926787889284683802020631790583867100447956587543449691918921257814906569671348158476773713873210273473665489269580449796435789092603233888967289266438269117144151706879931785005143223535223286236243018281352576627044862604197532427707798131791385827343864766542333343008141823736396183922765515385094347072722242011670132988366296804701060412335403311602981274775215528509034264407669538702065711739947008388810810965902058256944994612212583975600022342269119698814540847941395206245075819921313178806000354905889337248535298151899131407931145757749954724362632929774365265437077550151695857236751921024255538186227068325940930961113058664628887568469318429345376547508633170650007035147843764967286083801332185489966755250207537738651260579755027040681490445685263165681212414966158032306283027703647439063183346404829953380797263711869468662140509039868672423745064153261488721187326847922238307158586596821065885888994928936941770776316390321305015852057720386165295692621007690425246115292372727469194911017327609477268941436595266955943678027767368417744139904756599806096982327763317453142801865013003364469110696168215824902145564322788555132485667439909521992697464305315704245549674590906582955331920939061900774625013657197410770224064966514677137916515673372326199924015442431651805941424636854189416141584657477259717413313459945533056001765420115150300650663111050774259219875550340301419295410526658283658682393258740338449945997714874154151713740972410660631039421788767048205223287138257676488059207663867453751746768897546472491630846105894410888390653611199260887638249438029842603166551417817675981858173565344394935686685828238409633069739709829001514121844662261629877027714048898731940133156532537120277311335798064627951319610816378204325104549784306942874389859333897272798888642382663011163012773985309716821226591957584583289081101522184711538524760005285560250013294316418211062183220526104167417431984613930010461283327333437773227974738276863470350275265424748859857759070446552314246702901496010121641996539276447635750593313132568054479312377334580814017797593076300002146529863478731536880487726561655533060530509403324829880065100061682527452834496030638637308514587942717829668196411585932146090705365108346200924427010021874041590750550288550851523105725272702223042868523158254642670254000249773638173631245437697188657684355829492548938593859836573976369001597179968821012160471349939346551037173251765487422409898028749257976764679869742528248286636109785726666018854966410997175746421504431928017297587374926518940590745485663371163365601597362496350400204089464429106550593334661537987650980147052486962066634723057354404520107943865141025832399533073455364084233488211077260185417609900091972775214988429530888087602735866610778069179471241421967486928536265371297775169213084380397999645172756185721467835584138861438619991663653142858787343271465250865769879729114708952646054433837881087873780798353112901031647401291581659468836153012676854429854239280476814150057504399089105444415638341404325993857142948956519344405938781510093439806712847335523938021085557799594022466999252472687011985276527439478671027400491673139875995395146420948144336342515614895962772185246679064079677520550031066461859373190243567112274683866649926781126457975950262118687697558478447432423882964899590976148791517887749432938887255084425998778628625526032550998045965143657259046720279259854570869707854703316002382269977344726916567309010745364733617675976969665502153514686556493561585356039286582314630949766572899668799717525560937963034431162103684609220896989606563182087303063422249034347941207350873788416973171516443735874780175708260825180134448297040536087146850582318736473509205475297990582034031303469543443690679614728633895503078596494716498842499231026204386443314489472417795662849885582268714470394313037452357726715072674922388601285030704600781758812380155889704812577832903950352164844043779444140487435478065030212031367418113878398238045967513213442986131574614538860236350539208301407168179135369524673201240744396054176043494706915290902968257388970221107059955065381417001791678503658926753778224775257827559114246019813180163056127291548147499606607192936161878938146628183541649768394827873798340112180240151533046470978958962523889775900954616147918654620394424075790901302496225954820863495027033879915141325300640338554780059578799101370417542003302496594354969475745862025501619271079799927360574969541953749668881783112591757953256740452139356340469983272350017270648960005493018152986980291080672155521075294119785736785628728538327392845705446382807192492587650058395968953101474121542735247113022667880009629445320092210356441546104761333710372310372097139987432761195452422165313386681104539539990858273788170460324980177666292934704028972373018197569723787834738981871700156702627294875737114786315204141629270614768562561108537131700360517055489757934699973208488588272564449685049543497730262695476406967100284079153878175237839733753435750753944517144528187497662071346488859828575154871781192029324703682214257312362329889856269175977488856661052323170027995186097249911590801655135285975783835853977124659846642932353638684100264672786081263776081180344868570671142382322984834084302644195097020139703863995880117093321621708977289517046533051361362157823634611144686892589652859806846342475996131594159730640558090716852713676760593917994523990823956357735344052334253497114825508483042914213175347257612870771367384744581334189831708028734848643611251941151288824926645205180515695754799806532967484338791183629708007210830175735961731525358184109205473933019956032856225861801349381655811685455213679143767839205310954653917153719448005641391883839944909137126107879826385900112536126404569494973993760719476428269958716230564598135290768680850070500261332261636189979372123364402007167200067454741759432678354942872942878890141377663220269326050423522948294754121833088151035409740077487678052134146676986488822464426432230417071629345622084200615942569122301036992071863322322870845062368410906966594528415983577182508810767393160810902533654330475912153364461057856272894360395713867804836402306258092669113106174859066695953678590223153177077245835896790600483360150245279602877281328983080724701735042147831396366586202200252340715115752432927867260677426814607830798409119802832573413524866477720600853477793076342238264496546517350987141815313192162041041663450794038232129231395776935609280620037410654944408997245039008700448941443970704068280708877393565383439095271924631670866814000639058384790513570046183952868870901740191971024035657279763582870834927094117664132047026071696966975371280888234487158870852128129214439062752251025580094045910553637072739308680945018278495968371843896147456835569650025619265198401033126989470616447554255421648714714174984802669103904042489756258408126893437388891982388040979168150018609488522487108031588768430888890598530576917610170998976577859409589987898893161623575980490300934209881915896506135287638707911699413377223925321674729346412418056877509046342355325032380090043603919453772824940148946949318137415685073167663468432904509292970962888702923433109969904761183826702641629102762928761477397149371846022554022502803330824528728142228752369282536018804299748527618556191242789914096424851117392110103001051762370988348836843172413943900569673627396720879711715482659789832246368718280217599833022548279958598147962346268599908522383274811181823994208271439208014337951995437350972791379553636969371893465493369775105239872488049967830870228217939337476018030447658469677523273554568333530754931532553234945280200572191150941734355820348977699353702565738047899325960887100068811602318568738497398740810860220468721726778705034533913429374234856749900330952183927769546894122284881414136157485450206434698622294196232038785087910546862878715757170380675324908161772144469796821738426106119139555547809775544707606743432316197977615211503280479821921231504816892964608953325911418021625116948380360766605248440436847904271906416542221707823857987122521169838857619168070275387165387823664256542750620253645266679104555657521011918502057924815779055000995509006330099323337598768134729271843044854530425963970792791355504271477193589202783436648239643042455948301717155161866833657271138399014489821735976181282664644856242963092754405609914406709987244674757872468845201818417574008660766134995458609176932025809187135511561082172381011704431180927837724458343824550587855567493512134740932247538436362363019015438885668281287628974904432453063471349225915389226526517946686798041103578362551312206359974015693743869024752038859579000217859290336751428950079123639908327193297162753437836159359661021003603916026692808869994625721698972250728409242118639711042916306792290722125731623443277449681450179047446140828289663206096562887954250931818801625745429860425376652875046828364917207774114676033929882830703226609984203378018709714768351207731602517263377908558118905853929109128908689508441503413396622364948473543044205459111604010926705155425436913115819904202039503189017431671194160836102169369412555861632305115755730869598540615614937928434232692027525456180553432710170530484909029510449171293571122407366489054343942975366272950096353513830839568595454716307046060832500288470525212482130628594284555214509469099404995965311315614215392050408902034358417902568580086174452343481094763567349549826089784710177690220675101119140696081513438478424026567622970774104597181858381657878648474619831588955066368198893073728948107246162210132333309616649469527977298711477245615127567518188048474345529091615489891556467761927792447913361745395158734979164509369316444535957898733708900980069558790733285515052283223123176190039160054608678720375718309287310508208291901841724144654345857994779024675124116613954550245756450168887445008959963382317503668608166535807463969303379513259778720225453254836499791029484121025577263704080415704947619529405869502898782764052612547311733036185635818598648774681062600523293129667692270839922937238613055772454573211130045893223654255306118032098135007596254172643597426612751709664277757403014483282815435699094979449088003383157939725372438595481633027883306594912835058549715789600747167124925106105931843628604515903508462941108029303610366012545407255336615522463185786793846881329913214125258334984401602746842171003808174167743088742260736928377121284717689664840508150759081862605546861456407942532181291642755928858839589558831388913867116933482471370275533890787586362111282606927094225918426458847678995439054110094559372568474119881466944366135673650624643613118266258763816964860146016874226803310753286659174591836559342337114780548331630314191856732438765416316546273511113770944224589459242740509392408816499433876729010177584058405673849983600047663013474481436974398525448636596791715841943268111808661455822164472876254520782402432963667676747265169444840661280410448909400346617881333499594273203411841165036635987368603361080842322390431465283956312358706014825081567041072824047516338589622504150252897191167005900084958252240727872697056665247821894613927849001520129764541036425158765446494345792236880924540478602073378487294446756926782628395769375561802800716767043470247761962841098144989923237086759540556632802932406140055507949213933049359790170495837397287139552274095420114101079916624576647047941244587433210044269086047402118243887511483908785718837188264943721290209259231731057347829044159971213252115088182798735923034815046960763595079108512417020695753776085463948583761319032976601013701066051344141156962976482578026644782518678020490641250959353201963013455377827831324972554696123248857494279577890910022026772794205255417842053003138204131078626217446629449053957899121412218110848352313718143747549046773147514333880752380116309396770857138833998937225813512360144828080859442401546080739538731134331600122987114979355144126780968541928655860379008784694793077897936428532096649232188437397342591930501060853726598732996017451741933150971702818252172762829738661548067705397008309897731318094736534100900406562335081550339853921001510689052113969087635122674644508088660158998367597159345810062562544860478216081983649179158800413885543583019351670582432743352718002555916774801301882674445596795603410556573048480018021653787781418447966739285805374009809191831223091859267598333391071913654645337948967395523820969628716161812907289511988950893145642278284986989319327516320074698654464562159951315669530105596424931235730359511763178779790966396274405482272174195965579584525821230558285292243130734047283186401532480138103473661028340493341961808990521652007263981865291127186458541775696521843215559746381645842431807895238234616438199361136073345303078743048584388341721330551806881457624850849890250136687099703564694661339063716785738785864761923185850882729386160960052934841375030177658606630573942738385400328321484854228674266863874841134439644046666690928756905460165744268552972657410972019386057857978387589613355033860019089376713348835893594678406384356640438812873278305939097463728755219993161028298898803516120313108489215328397274168597083207170116776224706463372944810469217979433016282958940423996550692381163597817281122737625943562740529453796456542781657308212430091058129068138058163820010525679570342609445928505977434345158847980537039342046366393216186811164712962999858526820995326056179694404934122302848467213953761889733584047290040555845601327340152204482851300393662456335793178562040512597408691315613230287230603544777531671333413713497627464433904840910964844238069706023621202334469706645015574839494109251215221096772203574611163086344966885334234695454191100390146726669753935543955378444249818778698672448490306631698696136268239982959172252598373830957569609759435103349817925099737964118924745266449722561575969643803065419554178237133403554912583187493524675343324680486066298410665212782459603544460117025525076455987858551210268285633295547615260275736101003817679270158666020309008603976282762600187825136626405232344780939054757021303229692581309318985152593186884632424747283744296703239675345286587760063290010913434045092056237199949624332018752464440681427606896680741620211234853910761764789241036593762429337557539277953428840933425541621519855728056743973512004782532053663674701605263945361454638704721267441327164282708264607083100749598855912059209487870694110334607208437707948434358270242506000669724705176116384387052748635018349884328539939578059047784121581851786353222429977434886357495801208105903302317497206087727664802912301081225260579463334228179778020580741576044718559755426917283516963640504758557587045841584589341625576054140354968134464049001680698822066804745078976929898486503756074882172283911742776843711994873944244343536430064157984331619644785799344928515188256046846017746615641472509883063706006525357515360179824132169023719687157782148025882760627765673223818609348900176310444747596721495685611934913775029652232577345295964667506145999187349301886541570699147544226210715039215770928119493116318917358111237056077739642312326506010651729351341351223264966976887004793498415907145234926879485696954584519342975000639607640218141997837823245422536495035371836073758974083438238191828472547850178959918888946274037057108837330210214081624876509570001711599741660557122377804972873421140624385328011861925010568005277603977428346414371388787125037787304668213688447156629450216157229645925192770949873622842478085002154185414128399111826785419019326696674645649691269092809661142934483469400414387390848569234848193987453002079193053377798141234010001067791843135618139853598975196302730742381710171007407224804644820344723427828260351313780232554611380111525661613613459896743800100539879385479421889411632926802385015294612098964808966306497347901728723778512158029605123722770443548469556059807751477813136241057868299441443721097881475769050132028664911546211094769933584557941400419307275728544108900722026339129386316172439348156938084206329386650359109851377774227962526464502189904052945918116764038632866190640885440701489220303600622364028348418474571138969251635466965051531213210087720955245684201521045817226689110322811613700398821331561402517688136739910524489175677567987294017713744434989238972294245924933790608749599966763537507324813978075256208386363227222318380435864133689236495878578526490749327231890623778596818704687908485835188350242898504953524159111244247799835065203570755054869722584680658893944625037662326770991701221876320446599013320575275444923226701011146175081205339124799176207960354603270465783632831864328216750524269594327068677764543649398141490002213591088652300249104508731144695104342322641269024880502190852681244854510398356520461051530388117564175816083936966454845544131842547514562124969412492233688774059914905680446083901143722827294758839249645772042490178970354688820519989332381191005248954772704923583027437193596706744982531038778317057751191720750261538151117385287947307443643594834297798250458363057883748932065249200593937158998629653467007302187884948428725822357665575739769720880241225897254722915485882186155527170233138181019153258297305644806390750428068011497200554390040291259908351801157842442437891309379900925834453384968100487961604424770552582249289518582969859941748079233749345692955011921398277371784947932201063995163746871265166511706495803795591062900248620003091049875323725782102136656053212475922097888013121559611739142546746102375951357163424263710544863572764760016338892375685159421090066287202616847704457837203730797868087516490072075067617472774793318728629406420067044755889383529443027400377595266926139487046240649101077234309094723262894044430720100648725935682109504314433454277548475929979589374438939364963078291955944299924966182532831591008952478125579144488976893979574307882246787979359350842563293544061054038513003283942135747711045976372620610951821161969148696480477944023197629373172142104434054755672697213069984577765452273057080292450917258759184432663162009343178555286545320858859331800917267933847837386392375635777473390794332639499192309742169093634783304588299589923705934532114801844036545483053927113648573144688566102814240602992806423510433192554591774873057139564848326988402365330506914056027011462069881619848274925045365728039718384007342247205429405283450349822377618003739022562219691114562687013284129155578783298927572283417598114224018008323792577302119320626200371382222270577553838445800952629118936181200969183267109601496700832980145460838869085767284364473321085475596286722666827583117496969370371290460119575821581545871396335618951674517094858825564392951234158329247828730697000421565539717249784841301050634867685703508024988452486170632194946266123451142878183633513587165413470669054530549560542295050195075576389053323344829368612045357794213369561769551809298787192885202617752759805431315633184628281106029758828365803359721605328903001189922229749058961799392189784753660231580795156150508679352872299986394746451115103656201265972142683902859058092267530140433593963070840424943540105415514503074415830328996307874302346629914570585372740263877999919657569625043794597693347185797681249468147195172320220867488379317242140749392579915801745371483026930178081372707845782173938419733764586308061869024421315902753174798420313445093580464166488498869898389245468977983359073893742164623530972031136586247863757089033253726250323946160182785456330586604643567964647290292669550914968691283547416714841207684261414084197574744709998569267437149593686819890776951046717420028140537178532660610482590193297837587266856441772690064014055392235275063702472865926766548682543269866659506981374852900898602935824898373615653956358619009518669742043016744328729496842201970549867726999966539590818828653349772239116445934466890521407467822665839489302343258014894596672324788951746606800069965911313323199509257330782510852793667934880516299333365650358179388658700383795452693982458584274910664487366560991443851396258054675277570336553225969302094267398100390276084664770493078220525480033690772320559631629601298309271392369527987331838985821381442186392022043208046850750333704117705997257424788870426692836177582005873031925651451613284535970582693636631713801460863714413050229988083858614419628899390544440060078932566613153680216705126046691800221309294739270472219043967975401479448698222448700694591744087991681680510329327088822029587589202909751206960033639760469134876882176312480676481823580353378315805275942849920562088220066967183793885281869012634816990191018061015329496809193608345909358909068811371454933110423606503623718572575010037483892877847849501611111119950744710637306177966583777434797034057665422999793517958020386602394823067714831164480208320784721608905858564349967578388635356976804937155198296309947548156489309247177780458954856256024226663337199394025594150004730413005506527699040778983930994637327396074749190738248651341427547936084752016864765856758681295652885882123571878248221574589374801189830448774048237054321982550995708537777034865752177000048225072843064623153933712315676710312043137270922740853369699660544715857060684886124619153822534934949520122203969364972972089337409821652874850264329016653774726188437437123169793665723985541380832529310551026038914981331904017638155730435575802323373637530740682393492080978430259682409863368185088885263512815179239014954698908563085951903468204022535505580843865924247810526874880593544189227273523444200154492773468618833012618911674606223256793450188185075408325222617091355327942732737875119870797067401865879590456652201749451694589419357471331823435723312427250291172986170300732882557673134881281215698744778980697323461204967443786114686226699772712281933464922668886851644390620901264315232498189288446494400030035207585679188307362925768480700484390279050030585699374796355419244514790526289430250232817969841740749194945976202568245716085232593647779393814714836581872184241657481309548519022483519396230555681700941334319512928375341773023122133996048190836404400760625374010989087377837022168079963312086587948149607492187639200948430351041803378305804987107922419963532485141096474744947422232915655063769501762915115854059165197344994247287438147165893285578823503580560996527377143657566556525719522473496518864032564413582030588173536242497638433381181683054541054984515726484729517126284853390107826212161177081172283611534192134247433438244708920741702588785114576875616094560503120878397392366966989318243046222316755249620044489339886508860064250217327215092218226712352365905468897496670988355096561589580588699898319576170483121573017892130670608944509751261457174672082773159639461293827698686300674362378602043503828994637911923027158349759559148047331060010172447496046221208745208858793248800546574384971096083095300307401016564985758254236174902551425726949632997325962522787378703600431165494650403742139566874780668379782233893855040350157810670853189548413074609538162528205289517297178922714924135361203535287476198582665119833415948832964831905029901881050965542884916135261729874634267765968477926569222606207307319047496788296925252671003074711322165077763431339880208835194906929891279432566779021206545711087054050708203537344241843097977798407489287226885884025929243949719150720896620328807733257909965480460593230568095138950123517938762092165364021831970511973044504682776284944872200980439300541769715569356003443395055026301998387188416389573760566114356094546731935627287495038945793203932226816797752411771343381804776611674790802740721414784385939795736556418501867449220941483552680900674687181941534494309298096095028241166515853795947681353248742620860456529283744011495590649566217061175548932716941912921300861254259545851260104679189712998999174609409753848137336333541185874737572585753016201427332588218172293840754032767269319423358483217446254350141504121297266340386075349853991658345109973084809767861505197142378863092217848010793833583196667252419141303761138816251401151013433408001588984392193558089480799990275054660369118832351728665086731758131144557048937080235696982215908496778491051565035083603164923595531092934135752773509578123634232436240752089947138479961747885641081458611416891723590997199060990548827429917388097115982747888208849177321801099958462918893879421680475959296435228657893122007057808998240741086676798123524097212839447234839410312696092197070535023172198790625205001265619635823629101145587602464900976672229300501190884607890747014628101088890218050844853303796904704480011630449211090179838821078387421300581820148531513025937414782624497552082409683532132232218617477310285444149934749115406424583491018947619962601553229152944140650616306458494434557622368524319334894446333868985909773766555329043034146636646025621465326014565923544067524361891418840729217826419449740562171535103307801840073654204905425055492898553831877656102314449478872483041097492504541305349824912167205753782752638600227446937229086142633652114449344360973906796773838571444747339350955113243068981547775391307098371311148950601878778640626278724077135531027566373019986651429399495915995396140104931115776799749640564160564693319333811775356629411431170832076358633335613059073354114796784702264218151448149737406112049502136251898756765694880656846586129564507868446897678528388574291510948116078367350192442550234355892632881191172298089458284254136438223467684708557449464946085305950069406244219120489144978077069832055222260453349314751880964553902806556949120768596096602054135143837537850227843986500338480434080286474158967812615307891576027706430729636362686324242564889033240535292622355406393660769782599037625942309589730634855305762686444042860058791184246117645844293048747587054590229275305367449927076047945373280587274816402064056533978348318840257625810293200870009339513319605484816942795685767894463197985522786927288413670082656567758850873266139668465242111024600475648721295883704299789195666848907824799864267999626720631406686261646427089272612180899741064036124474241846215167275275496370538513010962301099878888271847393501540293230174543936220094409954028824428768085907256715496304933842038873030503900261107350953391397985471301073529790457035266275844620506463431318389165902925033093491329861239786544051750850771410801699787604176058337474605425162147492667710954428159911802897234976402742400286351810292124763512632183462142890625910174388148282360523930593910230257812386321682156206658833398275130936761680060818666541340162761541203250306766973072845758905863714880880515627114459289963310038153033224775513559785032846799153692698129370319413015342075941435886226733884838788240453514097711412173838556684110798090531223377895266159813732101784825574727356340276094196735173840630138439443256159359773562317920099305463486456992865891991731719558845326144624263130273373464693572312368092092909054442716585107071727939719482405828121596709242140627304104249626500162496105306412704254948944706854199782939305121213024677587187811840227814893158890813892645737759312970419318954401310156280125840348142109084186919304777851107767402717063974373702806802418908412139126168948981647259840199618642725727942936266907689941607630366412871698300296000330520454568543985538895596240553617884351984050669014493496449477564935126183780494248055193604335414999723927030160598380231109738063794513691010179143764555891980708537262493793803130745643648556466749958978159430622969260653505496047116763771774709952039825250991916200773879111608297607834893475100735070198605641152553783625487702719048608256878296467468206097617786438699714216958660060583264797594975130446066880436318156161947866991390103320163977807430582197783543152352809590377609300246032578187912892814400733517353179874473081813835565024520156377999972699985403249466066844158046079748723358147402622887292930416013654719262535950724491788584543497384872514160690331375145279855032261395497482479807755091939058732432658233950363155796701053001349227946271282929666776783562004094942309627471146844634686542021298005644970391402667978495045927117391590496110325047237399883274703190385464262916796196602081547385915124241395519649942150813754096124957685611881334698380110450903130131933530919301113893252457023614132730640348466217907537043444206658267752377553106207928390017782378905448229446399527603398601298476464116342983328899362022210062109638262121392505252982179284334067275544907062741073650535694745771201515908696710759285282241622033990260594665361857730280713222265462820757136121021567240956244930210722190603038096941727755522539592505927475667310478060018523606580090072031265112260060978427202259836129103609342373529768421021030691946167078971363629568064761800660455058694563965186972404048369635510478603947301128804465985158819635526674778507893251001411859216955804815752476613415897880689702511256192221928897799367205388314688489522684721039536202771245501187988417470532581246448776803014518206536964740918751592704134132452735566720337374032527303754450894853267993405654034354432782169724805718795312657717261784819135036371902132798158147790604308481768035815374746571665127029897390141716132334077914410874941379308116237239326556206430312283602931256677908068751915714307695324725819498224133190166691170142726822943917954676977450230192513161845056693117059073157040414504302347024052731140675300594100741910097555783764048964689985384297954500376879632484424012367481017493708128586242394903757692512617392231032259702314695498843844626229060267806658014640347670593427739838174427057558885244027368725148724135205082352759290500728854170098144214749322338785254271339552730012858348383400340441678623495962260293197977477299162821634987179196252184082877230739184778232686384422608362819979605960220561527519084075118558187759155184787053006229262888721575176740305012844054943760401323409320044838439077709098565354087765506750528499278967917967549599319367670420814624089242814046882719230539662600123723889222149652790085992310306754886222442937917718691285446119397469835169818367214174719877691894116940305415014105932759090779268095072851458448468762884715401268550689955809515185459686738649569608594182541359291047681981357154082387468381375275284353242002722910334774448272676107320073738139279049550686253104956540045165786743559308753130571540485993694966821180886280446147865364965910414387609487830983246766243700691627062909457698051999778231652927835068000315443938328197145802341550085514805974171243293161216176970035164246360081686670708468820046630837119453471595135002452748617780253514562962824185733285451709809693559819291873831778531488276667954315112374241303142555367619317117847172179665047948907719185067591874962899078661157545774421576058655930496145123571870498843591027450174542129200512009274135231054183846608811733844239124437676240625741038146667216776025729695042591753533962464639602440925012034695691343656821307239177707333667470083280298515209986927474932655628796953685879454363603473028270911344483768680870161250772808889712123244308283350422854699167772559569421243964923788180561473923829446848127635109017424934446987953898783057182598135025101832584696648350462331035095039293685072553028650041122498363468777499183798312834010172207334675073197450320624134458590456745271970218709429774383415534501326840276250668612809463760853533178184579885083228774604886850425635909664592264367443123512791660582282602562072495590925630006777942553374293915983638691892151236832440700309244207859476657333879748190917448963039280167323162854560643894649150232166311930122283607894354807358262503376184216741691225598794659012549638065636106297430224120912919178133220312816612808961623597138349054193580700779223112022477400031162246586640446347729118284064069060420193580997273322449370936428467972842414860355406046559283712032559946206425505469101040461164307304803951149809775281198818949914825209920864692535983047726222613542218468409159293330956835206795981679778661377737467035041201266891064437220630427101755081514547159167671166029039117471831563714646039495196908889631072952763876883318424619523706369169083778365644027469420316873157095593079769720688319087667052569224916054417692090501055981301461619937642698661745445724687900224032401293157828847309806125111688078157405116882736715957072710479428084223897106718732340990261976091109045282997669221668092546653947326482818312114538301338062382067791619478319294860390073648395073117162976092673020534384521656147679771096913145699209290206916193636606080470718758316150989877161374142847220131587586558912597074219055599058688212746815168859092735590032843782323278478409949275049646844154237698362912392493690508597074066414620481516846351876843751476177072475855642843526330582206100055077574779697070977481429065053987342958170550443311241147941813327676327044699532522353012981710479427684856168380973172678844579585393418389319862998616233316366666766314407755182588040340325284444779081616618018896268371901039237757760189723101783739843862449213210351316192068447320429736655694846708654800650948610591519919926440971517485351603879510659414245674585286553589109133706622557479441262448724520805313599927740071007658417418323225335992596745572982123191639879903552769652080661567611566760209084877600908068682159828839192077525818466389060269573831568304013716555882152173655828756069109577503876512888618871814796052751233814152597902451234773791966378076168000252309255981945234213495153963167098228622474602987669625721561017852298985990744129388619652680905361433769166309009072590640197062824286984350742084629473175094962979442500590731466253151937717138685620164550003149101125264271758377613325466300503234161921737109356673357562106534661987552990317741261631478883417867919791445773192402152091774419369419660711153141132799409457961518814127692230867507140657101368878137564049408145552119288126479827805418955346838375928662132556077251046485423337271357084925798282055947512299838270254040539576544610025059906835444423473843659743505313635451289233326395458070584086784581559614136264848313755742827247731672880549312054738804948631906688796581319491547816776109616421021463307026961862669500799266654567178633756060390386271053501129412090076633534018528880849727401323032558935574326948264212302509083827670728370973120510283085240509249682989569115678909784260672016967778128717736835466255156262393701744502659160934919646061473652681660123875550335948252308708762200600557005376680845584827650275284075124640510293028503502287120195692731751159000170034717329387393757933309683047298503669803893574787458135399009388981466035053082753616891589982913212465468950989285703728583235477060752009850215306278121338214443269147533811334805130400208872722565574945871546772692683699372158172682776177602174687651924665816838260779649670751974846974746429412521215800671914553025494852478853974458612371159253113548687353352245889938570632581552068961218497079770492751820914800921431197671433579469876548699458401687498926683095142231934869349824436591314950297730896561571535313309352431507446265796455295325948260611066912829247592661476264183294430439250510858233537055105404666426240268568959284838849375933698636051867120511498116576939656986900395354928469309198544032904507588826207478956800318545260464421166698113536455474585227417767727538102617601415146052902117409324540886696947487436430580081191988071394285818917648238568212606819173776759396197068488942088128049328754031208780041501152680592674463555611426176382367489043798216884959419164070625966553531798139936049251642520135673099438620709579315736625514556619622231863297080347105044289223143455425720082439412353827347740167575175685255924492345613857282593582659093378717338570543920374773239579822902620096720881962144820307517897493429189154313410814122930538520243126494213251736665530729793065482543912840040345627708379360023831471698881041802213279821579336392197611539963010804253733951345315527402526629169448567839252952032830047344786258789679028443551107720123794680386288891451867233195507784417577256025330278174767827481978750801073634804044957451167031247966729897524808173660924445532523090396551428909854990527049922690660204580343356161794270972295847533347124104874667870095841956718544961632995553563631921887414867035046450032833623414816626272739868862168268649314643903763178257290897761320515623698384901614436096068628098699335998955102270232694723323050929911184302931351515591566136278244867060671064477302269023053213954175629979370996516056497356017636814805922210079401954798983814297934580668336266279453899218707138232857881907554782358470322514420909669383397272025560020152230465575113563035392807524358945878307355943233160200513884789566516518587200048175260308976483773984334700454686708705001059677183550133693511483015819569038729383646568647653810277600527153893189927605198778218905924522349105727897868549201864656891006437302931150621106805459579812375683947454470662454669004981013225080421886693114310146252506988574865608404391130685102795521080547080287755047694572552539239868681587144191413813682522385287168733546565886787569618002939133008762118056564137005274536479187388783601680956381946844588501232695198868517410856291480390834560355042930080469917680625794969490492247983436082100401809181963636052713100392934063223100302483123696105074847579062833510363945799216929872273702524257618810179763824809589213077097020400226073298569932976612687959880524607796020378986783839384940162146276355805777582626325474679338452251043006893862925956859109205793220675572640780198096902431722330911175521557573373507969500466047045200719892135647536629306177734378612768330333031120777979401179840274450677958357483018531247927854086807968796335341375049408338386793782102988602149958577400995583664551521742621215448184511370922786822695103003507955087244493632093353555425410680006318981291132656933640762484706067862188403185989195325611316256631599846063852809489315478865775754415866664296350340643655523864577662625186720008176328578315137600393639257456444902310148220260166441619354703994366477175462744714204909697979377195551866440450482367851325352802064296099786825586521198313917852106119366899650432594981781936026395943801882489685899137495574612897458221208807204358915723909046593375209376543958296949555361960486507203849279462039380431239076013958096714995591102287319585289078785308406293464824939269628909997774247221905269157718977438672966652469421096273205609017705507848975213681250853230303144173900674807242426903202233805153347823523075684676601937105337574982565513913206599954887625644535444940657531603315573179195697561981413077178855321313864538921953071657403668648874787563941418699805508807589134937830066976525511851688281001175138703181228254729479704260510403721097848661180794115780812402110644816791556185296155006451769944801542560662142255409015078816784168613662166689656226915932820850362269553508703034411856230982231986520554224068536012942032622644499968631545080779091915966576243873943890123675483386387819773624473402782345450902085551002263106290527482992662958138892338929052641369270812758703971419806986384878364566061769842796297899386592141933214557674398952813132279580946865759104268112315696375075146602155321822001111516178871750012043726897115915165056497052894096787607484161479339091196397422310952114459339472677168702732225558230717690636369964971395980027173878580845621508148698245608157365537402558937958669098563356909302459163825617050539066154381120894156282350044363514671106951012422186949357482660322861643361709249514685596719999753802343178581142892816200302867874565518489675797519220196630556026641492104191092153663241165430869555564285016645208504795017420989489691832509743223289580190119506946723812632436539624199703933146725435859635089033020447708851700273559579711013278611500763557684974456155794870070930090387056931663628171299132277900512371252104509829589298474866790239120591598092041335380234830539633107330062019090385225882197453520595866112603800065497902487446188778468826099589818141368751245141061886617074435240395743233394337126461448519469178085359873813006463143222411079814138378235280010552796735665188859217310423369168315230817912239640563419896973251334190325371018111554719921510367977673610993812234382583286920976149123787217144054451897693711604579723334373307507652954543540109650325781575803002180442671402073165403792099688097298163380176831984294549355260191276289227809502195580565551291668398042775835621242455190992189012079191834960763823838716916755805336853872407910967854261998327967707640866199430912148155696442217419771154054163161437206194518413088669610899822373142818843202760578553179792431560865541347300181048107701188312677123631710576606901032996067882006286613341562139595229502007941970362524969277773174429727168602705425239041701262773878361299720330714025103554589265139597843957723005509544592958819705667711962192932646395877807874682803605034062078163257666784238860913681512914243898674838365780845764964978770043072186243050899972547897597396764077032561542374710852786571601197663175630487587151099187568043560188743494834820473822772400438577897336868070752147939106318497854495262101075470644646778530339915570992424253110002566256972445871107504292744029179490668180208525772355866708892099550588500789070117162215844503077719804813194085370922945514253713692185924782948173072125715433204636007574162409568471887195031967471884077365168595511491329584372417722628929884278591108659655789274002683945333351482137973103203720056340674728813508161093057228723968563408717675247634448348855616111590121436739456494692117429351122740795309963229497579561507348630918620557349474491499653221593514489732578014037891919253894081372213745412507596469355822626886503400434691723963757182261363216328249084109560082769581756487203083787707281743726873031046481229875124258194369148044069281050804821720892496969194581062071550586771352709506080996227410326550720215966785197016506176429477258455646543448114063244506951889315092470298708511843689405891715368360557229274835427391943886247623160402678515676966680456029846026669876068824737356321110680380606482182473681978848719585621050876593151698860844371048624767095266029151417363062464339094461940699341129925912022904047915576937141622884476147422714263288202723002250543693525600821414981402492806735057022974201573583683542907250676458603551258068509452090279553419496213527205105773461923162422443781390483401127468330101903108783196440292340506255957949057167013188033752441199529196030524155586709032876183940612008695259810637131329443084414783749384732912826114341987832556656002837516566458393790625840644688715537855323755805174290076449315466580152632844923619673825667183125199455181606824047084447485614741366798011223408721026864021714392380680659262674926672818599522647792759844650510719119458728676454688146778860227549977721229185862384731176141914026797162447491133335506941201131334403605451113575505945722487342309517992849527084208165914433434677921951962832644100912880460802757753012549885228857350668014414386572913789631785642498324060079492589002019690020235197479263874126491789991704004703625329402812980020335805217646335215509399039668435291514089401936122683116621046393813369498117109384642703386176736292289790237702227897621340220467081881527086152829991159410890944211252089605672060383715357454500062828631187767869994067314836968422937410859262441372559451213352288535726743371294389896525274273704212515584516899155553871960732025200316115347300705835828494108305991607580723480432520973744005042646859485572703315590131057976153993051825399848697619877138449050721773758321392798963428944683038809471694563284240867397692733421329684759309797119348535488955080058075907121847408946987576534057353306838109517717636093984005431718042896723249706293691707821418639965294706113895259219058609200434676438929929622136606574452157946200086489153340492023556912683922670859918281889186492837303848369555994862411649654937224439075693833614002753395036881116389031944927465505934718709634118562541796965409050859057846249682626772319034980149600483097654049067245794317581214055838146938720478523539043852409069562812418633619581261249339498607897030263703365231810498580023533834896593678354332073240221350768879887908142140019773433135161650216675913032383821131759309967908210658533472425514046327748476138507921558953832827271993940672949497837297140294862905369935555555648543492304642230928091379248797184500199719485459288852219671169379031613668524325933208217378926732595694561896300112056895964599980055501368521330282643028447974878206914478060639120969101048586670074725200897223053954016264527780169881005680040276987738628385496616712766038117319082768941993994247910831192420073223949296043026485489619158677096932180542915279800576927806683629824869736040669126234140978281390146733732021479773056522517951432605737448247394422463986610439348013827903621175083813456210962318799137522254167641164415960574871446375345649477589083106829815953641274659093763763794386174509851879672078830123455771169640147149973873958752558368631617410260481428223782095925068778074000153703550217797121042159793491351586090366632389654900802076568123927468291704009279451521202904356602759887868035561270361671697982147268442618654922286118818659744019880738604330782223402852035629933422627942804994979025381869436614996509716774334246042588399140230401014956876378634374546775306938080018970584730092037312522322189964779505746058512410488302223543465704853553449313429164291551964516694793526888090419473934267311828492002871909110517382323773423459196386084288938377696309421040826913344500857711731942710931378665567682468696982975551920376099685157750712679384116573746920925107977028886473555086280486592477136500244164996891392405062208285781643547162256564389082826220170357564828847178163299833453566692292515539969966900050570681466706869153733656325982486077338726734362443041457053378592662378733718198877097379232306310439077829301996827833600611466246233744427149559863768012664248530255994935405223165545966125835030220070736850292460526478786073723240663097995317754236267312016148672341540806449250781793268952883018317055371666651802619383048226427600642386895675462969781280794430647908514961073268115041189786235937019032985511668812258731547453852316205300334228513618550511721790597923771289487017618347905310695306880098610882186594153766995298448036931728059016539376567896169051832226401095960590251559935402868350881066229079187234096992028501318333810534582133755720521394989853583416276445132879737944020969709401002651626279686595222443145871352834707433204998634305436892098436981229281479109325032735107062138983211598099164455713681504397195433912336599235404098743475334847489947342785739892675203576278068660493813030443223095804363886902203624055988892482253254703120222193584655501713375243217390599598345803811281593370104233723206041810986885073339083696584046272999235004450790521409539275482196106773684869434474132640750865416953740187075231741183237478412470333215071298682567938370113852063926888580637535643887604594143085212770397575938808523205384605376699513793027804285571545115700104114070833643526000912210301357453988129498512066732226911402069902138484763244385518793675490525048457525241258689820129583508036267921825561244975482656077431860681540789083803507355880228003757778942645440803094239077416343178831376121107795419068269898241574449563051235301073483910812931759519325399282297039972107246744922993993076177578242442064932329283837819380571685973913320732620039777231960796724046076999289105557795619373557555203223977395207612591872983930789570049004845184259735639806816323976835430244378114444336776369720471720782043518526549497825730966385688952112272937712442041232351189166285010621901671921166610658066125474749594382129176202340556264436032906552158274105160846059333897461271327744229116395735763743307045838726398380870151662147485741697774572633570024037239691586785966442844934177129368501945931811915056699225750874868927061675598370485485841067724019204884858421296599755123594675297689930144295562306622946276502025659415765756456818426295219950638616575763479519347284484100836348130103533988570647251878262020994059926463691841656929720666457758941193834218979331964683198822723366447672520250299077191214450210459247374400496826297837648237431940494019065640024220329145896595694726818515244680266533371927201321471420441907969069051718387274562394277731600296322740840199661731227474382279459505549866792724611013613297567902572698906788613562270877708690584406326466100605807804716692566960036559411753429487157502815931370385145770170418106366417008008145960841078656966497543036886543683252021309612217773935117044025265085437639523626473939342922658438910559216663774901881729087106498953731863197509277651615172783024589401690816431027468059519192448966095073849153649501467622160652644224429745441067144594320636558392717699107352527291216322047627528161666848433293204802891357584581940686782966618304851284553159757592015374165401496252525674728288306032713029202173471500484288597801519082926983696601145319551426878541643539686103383677442198178597361053734566661671360698597881225604038499970171797260547153308310174564189712362862421819533031073199188936435394873115863378851215606652216690346935544316100329482848059101308972124624547558570790515678587381750420950478033479515589016377992302402952424518696648260898519994749299559077704008187551827323727035460814414530325182118677555581206567560642968203470286253404220612302910931173531609808071091763573094269689788297964938653862139169910507824093460266738179033016187257149153869912615885206440430161908426336630662698890264821362251167960543985332667377464198701449781704957308359090165954392681617953260924154395644164037237894261030672763553266117206855095179875176584422031583981950181655607852370216679642464818967673867530523044874323479174299907587437700184468413533776562625677077964472065300765980859658473993795778279093492704007252550086119504618287729228789731649595398728426324603463366621799709193921928004504349075478898149148671764914742560186940348672841972940421514527423208181218009879744915271658766304135377527521559426245641029585808490689588619587837880129384147852409498569167591384453539706293320077881181502189803796215032735760274072191191790076988812597136633009458835488085377109740892199334772985745213371183536033808965027895305538154704251688266000317709582260035665812616497031812380144024427505713545412572522231824342209237514209381371983636392060208146259282250285561145662819979868842859397920482794639937973813852838458534272067907091041393820975158218584178160040841890450044176046395937693489933410698818102377808088014634751189332953210495476736731055281014107341882615432029322814572916436241849479639129760572801417648126735147166224613596959851702599501648902699582222838203823150882978669060609234203699550688862831772329509071242471420222369010188079329893922388677187888457369281231716777959961314557301490413358787629824554985752065089645348204549426500748905354942419885501257656319747325739669447517510912304138877698005948544269773314133922623376125351983093359674099173728310203678656986043071128309379417658360232993660124114900697890447180679774620346049358599014885973650125106117407673911262099732342793349086456455621164371031627518145402360870389298280546973248799917208049103943050786708180590755791748516498121764891043045944038411442648536389541885851980192677226985440179049291214571047904971245223600211031791883175612533960549176309660813523091571782296570738262471130829154803031526187731104531869111740016671976922121454199283020948359366513232919230569694906590537028297887776453965865659624081953855074110139194203226135212982760045798199263014678310841170786299908046085907121513483275112283296136680001200146655244931153926492910711566279925692794540644821034641625141296468305026245614235289670448370394466151772183052743299603114510043671102221257249614567399915188448488057713736922359250526806632079924890591397733644242007333116571096312050508611231876889946166709452266759542390383071105024453103185421431006888797150836045970594963981971634186244493970502365885515375066425874216361961709888679889746637425984806840844476522760051057476402480363725220525299645081220033126441686283499047122310733635656042012195285232984855142903845856835062443707268494958810848569494036337205212089254028058826942311985258747306858166279623666225798514815297118173548695495155469878296745097654962880177641371359565106776332783162166077820311288299578849981795252650141056428587717299733721037385511187404539125136200737055357387482752236222096035522282212558473300532069937980938523204076672131376934968586590065357511330740184503338864331538824744962664801232830603614380910773699958461253876704400645556467629740837805411481912019307530386333010939767760173274351381713960614498983165510462927461066459335441539233275297895780738768083169987290500654792195312067009892331630384688001439166450752922183445600675566814483622886747995539139433072930778861716341578991387369065944758236121604090575669422094896195981275555574139767052901033978578583345314640175887149810429417184692546228786435930693738533727942191682501167266678625051276551220758966485930650235793681067391927491588503477622621375777130794894729799136430718119549964094516935171510094819347234587745201058980942563638987269673603800269662706755486353340642255093636864876523719832392403411022316614500857461355934710914242651223870757530169206585192135072953767137055321905898102344563377329640184640685116355393883795521278581499553571882215651450703176962593511147305497927254115143668634863125443115850728982081559577574063919886127623324721239343276480144829810428183059820316990517301160596053517421685292826915169310572921762212123651095859814878641723816773143193155607608021708815340170492946773111145549313467412105711815973240377276532631319995349018429655427749160002016503665017540333055289514544061816528098459992865933218246351084964808320455044379095256043964139692995256497865972916325930093756164425219565134308341678638575214132901393462359314459729241607864450512936616759314568542228760827632871828349064915702057234335671870149185740568174585415403004809043420125433410220147433763156868636387638943218086073158493546320541784195368991485099083544768718190406043001033198445550448584821643701616443255960307462368457816960659763815002452374562157152119210355685406110432985673735417004977268403262329128129991930649497174649670921143387542144359599935800301592520344818563877007414160177218798218268770476512993909439321127849157437680051121161989494053400687443630398798353770981795576392851742757079272923546243329879092669511583111263551946366764281939795652878043313515730583187989055527946740564408757526012852982128289081707125736960183910941005199753339339214581707754942639568490017712376447521924581882052375573248697379862370760867135415917210120029539399450990730568525895126970674182912035041465296347372522026954560592977016431423269677960371601358459718767652768619686219067167878446025313594851135932389447434005595561561595692122067325160386985391349906403249281005627089649475316925478039087499007937201734397940255632618732934318486363957290543812082753588984824954457742487381560780277764503478249079636557054434672340442136794885468008500919929787616714510834384871770700750134678619497165222712871948555519526877173321237336918585300184203493577210063132380313149584123076826810565838894535473531447090668162838428785872293754390292512830859498392598685504184129253194089114710302327606552904965748749903878215538126156346791965333904642228340239676658393483872044845487276928603566146600574240797976576122620190906717447999008634541978485856937050850929954340375633059617723941652455202017555101452704825689492414059962991225279199558621183396921570151044458458853872944639292921692948365417651610767160029543855053470249302557288864081685614435463926630427833280959538114537932056328694503465147419573978432095247883242631848983726752128455208666287433875065484899807681329398740388573601147570936481964478378935406470996436073015206410589831192346835181860840420606622204850890036496930376521047713068533359998838190716295037002253769426886534942245922184542226817060590119403162318372839031932519463960230110029017108711647055699354804684607249314862154699964051436327288597039298268615074866873617589770175415340727527056454336796422001188612683353393221515876200733671397556528579627275628311387047526678206879348872000233932450053581664658410882933370668937779436215717607448285119404722001673961584148749799782887522494978606926066628074988731657649146617792037727478291517613853322741260885738661552801362176230715327788495756375000077788965974332682585581470405464245993503878088579171126624761022330469419373605861730150885222516039186863284181147688166348101683893482729811962913639548576754019764886609987380903107670477110282761659941836465694436795975076447841851844149956695730826364233887062837492812470056986401692356125886007371278139499291576484963419038154186511980619614332277799445421083408021217605966684071405649652497687828618115565854412960886308527947334148030503981194097010716446683091756836235754223788553347229216294488367135957603073457256633984117784230044188172958473613942985883979386348273772441521932098581120800950867787637497057146410281710786635948717736969723308963102780204297045300928951257604592299666000221800235089179908937864206287119724031005104373919192184593537982100791655682425212644375487994853264653884119602875596313678266148720824248883891767765430498220638375249590794284711168895421380604974945666376077252677654061090396066719967197452188546324636596009583733731069492750701316993414899346522185428653946654399798917356713447342934340494951462233629232359349874424430291016019136709360429067947528049486061205540857516351570092856339178843760459862601171484056668476208440447210409858759507105863716833016315384208842895363173745578674182630006531205509763204093722453753149267963586354511984888343136828389037554741266673168282914117791042603876542681685497607554546112458246449257598444859865967508144004418094729851273670269504649995135568169839608997534343223578133319257255510630376003134205481508080484552291657741759980027840921962551333908873371754302303502688483937786904588071919533752514942441540125645105494046959736664956539740255440030748859376052304761819173909201326395541191889119492448594914122005056491740312151179028937337407138731700207938819815621495027633060299659626752890857797548798374889491226938304128552209662539840681356406159538270271453411987601020116273391014059286916027889667260743917395256274695583762746385743249697235109532300449903692928929082333808258145933652796711124022237398066311054441283791481232385658578617749557536015188049088547078519098762788746945574046790624852791746645705923677590852273271255200528948452770887455383031017973101468390120289766668553609894540266219075374324289590364448496280010084657790779200859729223616084869167107349606398732169058820726585973277182122682494743564340731390567288618832174637238533844640640744574597962317542052706007046620314531299428269351273129759513183646079328242117149864257165682222901817165796912890206069303341394678998657281135088219580704919659429415184533024321182055736376187663362642326586783704532000467853593748783366226766938223147222856834979677384221672044705770413682049991543946429418528688062822897518378957058793414775989113750695198880705396006397818232865388947883167176449524764007237176570773770210354071940724762964888018770459311235827184302427377784863981100166999470002910835256649775957699591787464529233128524874555703461498348801014916865176713136605828223137798115741607572610399889476530075354808610339247961105587041193115846049628128349061425387674005829741586716984570614211151716297023819152405343218861608062475112836223219248204875573509691194515591099780032940889807743999849760685829349950123102994728466251795186835229896646184412053503296802126733061532733578269222266732803634998459550506989420877005052185616929089936224591426869158870892135006466879436164698464703664336895829583166603165879583673123885886600826868221868816839118585466032658833452940783560757281378255696512840574174897101697497286482625505603296510961064989061495820087056053924742481432074979961144142156397936616041386543495445656490464639868691062137526471408488296111626537546755690964042479145427472899449917847729393830521408375937746156013863778436663616597482764184843274387497965758137437736240487471697358783134273084085161612895797910854898725951455996035118819013807702119355900427440619368173996629172813085370059576430978632341997439595050896990213756415919696039929468188748305753372903293737838958963783014579792352911909393624701932186771427744301082122617387821564446900977132136226026160788762723036894377686179544661599455194955805496685963084083658273204198421714557149909455002062606028347452773290363504005344730895403137358986616714543762977169019516408181929462676655803600820357914748395032468061810922630171487657477967346949631916873777841176667676501035830908644739615478156353154307549378905946395639341103573794925722894462263108900936473983580951666229933787831118379160120902133744238226456313561121114974725580376023966999364330903601413016790294228331806275596333138576445463471026357886208513130983155268084280591715948612193089321133288159063901272517731842184621112553303714106982606689985860197417006105063897280837618016161776681448912575298381851351842781306148883374997143862329715384299471813905246835743900332478153396157384687527790703242498500487426641877155482128643951554701290538990489167080067859386036718118027016644585254560171707699658214108570006534869446877259134726027140246448029698467986176886937740925500219499286488776605555895484310509647716738263588591851715708399705684968339839590534709417381442076402210719676431187580615798499265683639504532180617143509057582382166062748062602381025720832879732343091259866377737979137117865617409281022091172861346020085837023507254737918037213804217809104223692102337068243313287992718121941951722203081418405471074922182607204089350274373413721567839019891278473991607885369071703002714483914286428814734284208782938942386106669416962904980546510320357579743009374735886424336857720673565584835803948294103488322867505171325681921286802919388668894966457003266064432017871887993873655864020946458100021628880609414212878324965143819223448792908524322922008583397489400986635887545593146874849579793151145179598468810439856982695344791360045689287619872422153773895464612544251246675650331822764931622997347045857818452595526478826313578892571060664818388768940276508448399982701420252466049135316527871713873322590304346595048718503491443770760980456668136325181574303089945841490002270374347989950649287372046856118579405905564908477657646266324437734508667501271819609809969355734724744667304560045122766894545123963227938768835651620239444880954105110307614709093719916216324462258417811073027494477806312655812815228086733664284479871034434988552631059035497046521654436754949666223867130046986146353710033976536905753731968761915257847427226264180522564990891915707876041340540849744813831398928341388227250511730968640160656428599608072897387085955241128736697738694158211591521563773819743112056856047178800526043006834460585619068905849198628943923575067973340234344449617291226816375027557981231419639146735193138045987586801139724935606163689162800505803636668601537216688172675176808415309611980167831196597734343927580865355395573142132971738538281895722626105442491531187673572750333449886083738354121178408843198358733370791260874007876431325772303686963879538088611050498948090584664812035386766749819901781417048126537569317105513684789732048617272484292760834232347045603717600325275663701499611055619827477647013692956261909386919829452677112956049465562971665069898336207543639480884042970111118210647908327744771610833422039399517292921220800237083737598681094938631085865243727407648710567133946692263635080422067223310828227239488771603233621750578801641582594806337655533605397123201918413938881872845040519703347859223298163826147903804955636517907538120815659668024978109434719433511652417552492566567650100069463098252595534530611267603949676010508826201266304362904814023651946396639353297827610134139072468793969470115141407099002315201837807876494259579698824603235235180252041866806435760349425207034628006387912067037471975376036656453047446489629244409297979109294774993513581917655499847001664819829378649205034732003915119671299977320870424887515947394927650752731344276678080902283165562136552271014579079765819354687339155824174736687041405962307851741494417032067031998337515212538829680814405523593224211875150553417068558523347553044537155452911638330403233255646939654789324801866447948134481636945942962436212306643597022188987339048259485209425494584344357296688289956373818370746647785425966836490217714012337574418792265599509802035843670466270199745559086998870816007758541985711820996556056983067380740337734682199991574648522229235541112827254491970557513383530607774595466210110202799426029099289413626195225159275565286318735882904294214916994164717907194969078869632834645662609589544937561794487039934711686077773249205179202818758319426304939530897713999008265693144144758575378264537429636467276195473875466852457555579720533407891710359809308890221748424936323789312980208133990452844657959298352351432760315701742794175489664599120537368026773300899728854809197726947904262697806065377812697966983455048905241838224422447109173886609240453102025654352625442213750885018488991064466583208141075054687314874229852338989249121880851060571917254050089812819190222699627298795714058708051219480652562092005510541427996804613962961199425248336158905448544209104361720622609450539935080707719582190881436690540549344950009936376068091168081039719136526188549251873378564037347428448114089146575868985193219166526100765919616217118519969504650888762890895417747999696426448780287155598178383820607841438914120095169103992155360454426629655674129301502607848516050886405514062220235549208480135577585514703782119356992096368063752428078274383672284075102736019221904976451213406321659020646188034056063059187778430537277908452154841915855924573280252006438404985507622313726474391490665660991913056736797210922505744112172378916906652983181749711029696861402188860078851303798808957669231151299958254013517173407379195566836813641581511598728186880448877592272023303949293015568156239924769173619387147228171982969166896482047777459294689191169902338205087068267908896962038001477825181867581123418313843443164484635734339909215613512744781440022208258331893409569503972000839195999607166049182254314930145141411990361391621219723817665999538662894880986583702278222307816298419059538413291302082413114600389394833917487324759667656218834191507990116643768138443431612551168456593790897129698047435375832708213674928850267269870764017951321465068020254622601014270680453233112412754629567237098406986927884557399919761582345962447153373127194740268173648092964277144573216036369568236023372516864281902402930350579876103245906980673951232593303880583722978660703112900152635422817586889749162707321004542801390074413815581114211245697840452951970696386152469226947039719443626410516570054863114161424077126342632940181210381365974179077807977866526598669271776249309379624593919673333702133867868295109075888190529759980041551840488611630640486915742751018834504334685701614447259797069741744313226837803546878702398344684303186356383281598796375741468467099438620609845992936710091794830473048129792949899017233625227293898132591029193451179211696749117796371975747865420532140692097052797033742886471122255679660054758742676922594818640760577419937237238531371374103335823775001461770442222680539117540162088637799250606505601574767749396516476336049905129079879318230493274241295376613675603780554914346199060677828063324661813943766918742872101029538137340506035615778504756324461808162581652319295163231252554429462691991428954914193107808845682814993010675623542038953378288014823652739734365307348950898308275067214111327442659623884872719593725944327227126411674700457122905912020285077306753611722587233820290321643020024974328307298192447909435984632356980076685434016137319519794588263953260591591998193353075194935443952894594209579236157527406323676308668865642608673776719185151083115689497631837198301205647155119416724600597355207651233161903358593506369670873979264348196272651632128934554822500496104849061028939463526235056060742776254582004825023309173060013392740722300672441002005300325417832333652062447742545632900203537478598619653544213104031768369396398716698170741965911769731317828654557245962852087067428951101154557520069996438710865655913897432004273275934296595984263299467479464428177825983744073184570447311515421380222132004255033860602308404572932828796005250197569779532926237866252009308472144113156148211381283955811515231050858875796966261852995374159169770612557394225697074507020252002326683769304749193818721605472352848071300149431494679424266988414238401614184116232955509872525596165692806494903412927674979074965798980425101443295962413709715064227343007646737456260671450529297552726153482922535875393430139485488710086806980828194194468328928335777016488260252891262908002513566160627084270909595931452068010747126285647113513480237257276621590578125854918456875284460132300257046966804212296570745234874781566835956234740886744154207663728836127804767612870506100238723676925433180242462439943054040003528670658474715330276215249914640458180668269098864763165926146725825078122060176412658830728515978997530040880315866071454398683588381398555337743970750571986354433205659888488491787323985824979742177479896810276646220171841573893619733716702112609004982760861814467741776771454104608824995319086468015879708819670753553276342782899048771202262089562006249653947218204130383982207781927222914365180861336442000044835390607805382185211231792764841243725242498379993996553870338902726267758488605713210122250114800116965823081880093469208106839954322436352799660223786444749545900031090401820784026122671259268539040965697991089456307628662509138551410455722910054150746481283355047597047948792551429673761450422813619587630525699213938805535331261084098629076104454870551729844572121291465116086006709700194997882867964230615229551903922159019278417735515088472506300515134186657757212042743219545155118992177769619136219167760282586548608368681216807629310738648929723581864691299334483893340068944173305740589392620770199237785109515348764367051357198008955624978599359606628813201775616955281938819951137694559679637062496936256808349337682309058794848164844818754139768327574976709253041493567728448655843555973172014524021416890633743352417708987733268042267198974410047462291310337972969655625915619369365102410969805997985819556635983729673588791908561068719822412480584064935993853702704374104429342683487642528867072876181491850823832012457297250505646471713584692680550986127357272626543217570678935568261814039712989301002211223701940196842974236977178421725557905493258739294669239294710997280169807598036839261764663467981032720791230822978723572533244511508792084700795532169225465175221254751147843000096823217411359526734028471500491822444873336863510197573035210444118881812162923923070036478950586601655018246391418425480785407143837149600391719811554785145932751512045824695588330592790149159578843211359799994583016599151321943858594492440773176098056756205358616709620707590355060669163667292731710562740375180916128213776776155226181307442575225585132105198487075748081717372268869469596277671281276864560679828022752563277163390600486899133761930724750782843677264918908191596326978207238903454687654567442501123967700881717826924968383792229885550207337982534805675765106014140391703028040597297349151899781853218704730079686686807859371230776673435244474197743070581749593108939380718571951476240209263152642928731564964904540449036454728573723066826393245968497813728429039303760145251674595324334950499708733197416229370268672922585788217196612278500198609129340499188654970021065745449316359451903775897895259637732564435921998888075144979965192814900204439170604634901336169739460550667643549665560880734660734182861663741675303787825641591189911623861452380175301908500572950234109530418387440973752866920670950082921009636366630973896730309102048998996663978397665829538638542176124471175256290577141508205437638010861698089829308886178087041961202616669583736363568253790427646083066744668664330755570276295078804093152081598837050749081422073990606224272320013454875663145981025740314954765392356189006720632347648827486352063945506653838354425938625215167298616250964181196628741811843976238241288345272860274803272864342616653155824083630050447719242492354687896649338783407772527684266176801544155172353577594930422428754368627389786252883464382472427338631252059440967399081433579087784341302855059989592481946211358913439609268897347974694403461137289981814768737383766828681113456506700213258666558281144932778672300981371486232705350391868728639887896964152353883740013483506061782137794281277513092829227973776516679400833977607769504733989643048387410081097283556502024451283914443401599705984042794101128332604537014775689146351994433954368244624055211963186496651603870838315756609144703051939825060715613825755330510282722718503671546887293039818696599305126187906395919703493861739056635377715233759582876318839613886975489619588998301115903059296352220514214207405588379470532738724202782692416661444031659407684565419068282582651722316793896538299636810856317533335022234805853352803889014887585104147833823055387058937244510689142021287154837548645324753406167589496518496770832934760517631785219339817259222163689574857212533621620046235845213363932331749782406989463693600564789374418214666058917024231604397031097977283696444379431062583258929087731935579176283339590900684902961102603361110254474362736970208846663476331773843431867595165796103679556785002245937430351121754317875129212684694786826710300747835372935817792819573251305873157222827456587175400846839635996323172399433075395900951230369050045419327179363532170835397586888255827445775870939542434014346769240840133027712042391328222758400243487545147955867225921093092627280505457797429850167400938993284215555845178651067157308232274825107968433964074861444294084570175983386628307069231666374328445706143380068963047948242792485085451532319430066399510583850958122970984952895985550911110634981334924975549745025218070888459918339236032641517192953120616787066965912859705850363358646877941785408219437506600282045592198439816500949298502053018796674227438884169244177681140013681026924707612884774811797606340142671040227943737249076836359233528141226944901400085840560374997623863163655541958664679988977615833676431974024656111535068610841030201841243952702782660091646664249246511655547865267608056557000748535296263515781802099450952353661611088956246466013820124905347966822632600450079872473695649023471590193629204523272470381752349330770728829520117500732402149000503389793417892984566018278276062452103858137323410256964473444540260939558559788786546907031440421093197445304420385785179184680050304329964466152364831180065538403503298427843958443815119951650789825865131142871044604922211573030255782037637486766194863493981432592507196248126411095676622388678476339885949366562285090938820982269537205963409116077212621792782425367857700997723096050198440321340517243324179419393435786408749611586289378821881558537588232401153653381262975971575872594975303537921380299726438703828860367530898844984684547308676176628283987359471454687430240227508334471736094648998291473254930006744242817856050068342492554519161292234243844379879066892093506865006568393204597951103310403167495988333020216458565221831319344114267840162057050743331210518238488176314160145756998828528764531442857060541781242038968748829548284833389446672036105113271111649341847038355998379261421752191770443689254624131113205686163815052170795599049939853086465993208228271122083106193860806138646122950230328466967572769122687314059561989415262619791252217257509734783486888719080719239523202964097066265899646640492509701014457666332691525409219210700968821656793307142173174519065341119975072966925513649221459280820937740630267603034527122904027604988473609682048060573293507631488504974708211945685146704576267064234566092656998944950127069860402419225336020456353245184527346483959821635030775403624039835083936264228849867509482139035948209376060293791165773449342643764292054599614979955709726141923621709347055495969067752619941440830265384687975101614951953319109251033015696853669997775882836627734212466426120882938061972428672538819765658548604096765941234959780417604440991362906266337244427582731963215625513449009401870671699348561818363159040814867115613783672256789218632219277578302696319780119305289361359886603110299392958864471227052721605507058295611485040503220045248501099738275935455460998109227511583838319049525128769344083023818028349170325416914037648398837224533721395556321993824829899808689502714078190907140745933734977197126571466127550421641679746337233532054284202052769134289679603184627562499398433492041656935170196011823239151190768866080424525820860207697028933789104907973131952721489677460980130308051077308987248095459952394309142697795812567223900162221678197542990247351408515342096127094632291333320164283130522926798741964681773055096034220696192946006782294154975445849572226016829986123588989865832401916743527135394389849468718719855182540945370618298634972800919047481253401268461176270422000906596263722203226151464441555444610508268215527401353737247461232781579000266354578541855589145589112541576904043602244305366178399672575861174222595164500695653757526258498836907626111420532904677342593869856293018700340523598911954030585016472168714596731310766682593393051225391746068111485020223158233887976403684427134966996368207743623023040314810591232815124338428507425666152921248648385196981398114880604093590204236972671007449896343776682688825099708234842953023790907189877183759671754724083372812382719222885347778695142355612177573413946715259870124866396500414830354969686838326744810034336128432398277980586493321105055729923585011255642363744757558413561928029127973860606685807452039445640068107009372348532263255250937603937369869402553586064000098494313310137611294533652619544206401476557599600488144944123095392461930275744069373816130573204620679975862219582699562800154492024734816823105431902574673019254762895938447685413011442807300026874027852327861887448286669420336239270343296437568251430868529105597375910695337168340689326506256870750460628389884679606023384987107192228120644025314356573933670553319136525395591760650535075869654076642837395454578187108332586797251560289027708642736365660037614093374821489763059505564384899069500333685371942021808250519371379864679365607569954563543908173786084713615319050244346085738726743864458372664318463423904466706099902817760804819590782730871817344413307989929540740235310637810895813407019249760332333868817153379803384237218209825899445809498551498744166129936486684273203593312651490617850486455283394889593064066624546224954364360540223789873252075143591503214943059424812574993425243447300299324033729025982576799820322721409084397079747919949129668501365313101900475259093529554184812400365040233789949074201907115330376830505833249885428191114294546541135797064055336974733345991602650620493429847270153637311187719138486903552928706843305349433354306453849723778127326332770349610403448890981471247769291127840699486143176913236211960533981997668168020267633823231130247223631293599087278944184223006828216223916809717104535288755897054298547148157880909101080154604099914475654447503644748150629547076708617962358457780173884742081492055576700525763533532576990470971183243493260580614857222370594068261969074673883853959117803709038630426610647634748096871283217802808720651802257858200727428818283340653987511402498171917421945815625039294630498709950303713960930056690776965229783195033799813925456546803295005831938850243380740291760494391271630637251556364133075343778098636741470902860830373491634855653608888128361258139947145932520672787383015376529179044476805804229792018073158426474108506079732852005637442537845467374288326272505428973691275681790047886335197027489759892511318371661165353533854063488948936206515354814158628576610732340562900703245650685084472416941991455864637982186425655558843576732503055282331853541665077636431927455223937419956517153753996196070378764131902637124016188369183288268026918515852778220214686888788237944931671263923271948056913374544050051376595589794908111400647943174603162804060418434612616292579391192717129381850158186696415239294399891571156120593965230195410210961021822265651104190984811084744883658134425356214413650825655523327317912537813208828522927168479225089664182682652814564444733337877112624888620316526316380574319242146422381709632171740756247076905645641634806453870538027086659978408948613150433572739294164303955594784249204047604158703013862465767279077062419835761844426210344482368854445387237146546570777679075865916960129746515094097588673684897834206461845361651004333661384698102228679165523529057528729013407770089934871337045205131783620359586596480498583837537245313906094052131006321887031807255325532171360568210858270506819791111395369020328260226968362374005505013597306819602704128644550000326185361476371213637092307813463364267954447212325501316979535243403803214263897808973222528737561022238301887302278134573635219507591334623632993064620656766905321647806611492176530730121622865193592983791826534421114286176804215440886324787382365625675073960477386644759420172628457583196368513584552236365487709328549260417918610307659976232959551904476108820329175499379959006887462528607423749709031964483794498228113781374003959013104969497503261816984211282318948743776045227093464838606993890560489736839303775546298438386707938051391039044781833835154666458746580603685587837216975427278486500675492781616657084383470226991259142904381009451071433990627274168400162143668039437028832095591312783092253143108441021559410618549506689440303383488342630907101833532731841805365880027504485415582332995417113877195270229319661355215534144943350828265284654521610329165904878059389000867672304656292654038402273491867464095410151502555026357982636326957626288671925789867732199795438013102365714303223717002587251524011672258297766833459928703856653513997378450358861657027671351659769877222814772417393745546845445123296337287945068982983677949871374202792328102162366071370660328671720003437123269148568638239474402464651718596593542242010661076387075868704525062703738155217478354126753338708457999818937330488721319724714451870152599549261565878792014736392926855758733395720339200457503436038934666903363902305550637170052583554447129558564338109274413055154641087002262526965084793707559969012737364433033296915042862556315547226554040006417829081883616278823193575851848692638910339457114410751132571819541156983427549806116523738954469039135892653700458270354736060248822334022642224102802287912676952714252260209819465720683454523770407566529094391342331845130575401100992296667746681838008568519189425563280671685311370804367223674171450658761813746614014412962762766484886770154921168163351653069704021379932965547340831138544742870581000013912510965542914607952662864958438928609573894418755591791821114602467388377941750008415657703185260208360421900975986599763041004234564043571121512639921637747564706932289070243374243916760417843539406323215192970195757672396793419063905168906496992201412565528333257392607150759816518836485432114109188940161549046643597747639220133584944669651864960482556084632108159214251619460455107603350453677280559402845020095296667871622150063924263466840267571709771279964422734679323056039985379108559739370814364078511108482133759146476032063852654654033884875263014169139773673110121167975737483498899661712722153921027763328133047606090662211067165569124209287217041409449813912130125225948734818281303036228595106311487365342476995190520261055007336674299227491262167771035044853326366807141515184304540722462754259781464682342863517714775415038821463723228207355872442415591541757133776637181326136188313580878128386514129292573786025298677047290834393687314309395140026636644719220848948865037364988525649848661395654632168141578619348715804992106621105370027275512572785083940333038642763498964918672727953436786027377472301234531637939531875124910374726610954809425806907924325426111590214437515225059612980541091552952077260482688238534799000977655631101280743153162706272005054695742919646734359085668526704031564734023328897645203175216174067108326751032738045459201368514724515508574042629685826137345986359364456111205464999482520974039663804030964295322894908818233753299006800638036054384013822796302889528716261270044860675119451721515387557136414545212585744886336319869258792080330239575486337366190382175692268139120263139905574011238868188118909839444508818782519800801553774903132859742003556840680729423085408315117881361061048762799808485516858521603564457764265031935836294417109378333175104704530603795195511593197939189495190694992169205836211729289868079598559082701253882726821992817400615935824589872340029222340195130876773636892918576670069898325244832008470550232973253270756457871790304777778813106043281371057297911264897919380706691380449615094350060286451944576291696847789265081640050074190366994067426404991546832213794479170254677888843417264611404738860783101751779266089108480354632994949742038915834539551560566600903037167957575423200575821092418642754205865130057290413326105605637580109894893163440290546616072957452816337308826395653012925425260510687202771740058934499564664223124217594045941513734141589946001489683138953774549478979639702232863049907032427960909194001132227344694900821604737159224204129225873318041518405476310654319623403802054644759578668718268190730260048289298441716018972340450329767086078453753298640291589082587219199053574267407234311327830691004395157357665746515467533160710420563111189422885110941230963297547998993600340395456579886933423171821374002204500897875071097880585457380397657323181839951350675341460856054322331913085915620478820688013500575148143556339136294275001695451183190415811897729104470551051315661288576467868532216063160172725601888181147240648784082705469557597774300838511515701820053296056719310612653353272157722236101482632470537790624447796703791251437534384622122160370601548090160187411490773882782005492468957787237991681304341120110329942393952030350551836980093471218544746730134933492742647403932870095928171537888839076317855398020557790249842330035172901666277335279887034562083556451822604281289984728749908187874771579750921927809063601646648860329085692717007605615184629001047476955495651234931175060654757941909171759919189697393168967274721032704564585652569590894757689494421106540705149462822081825971843773064320224114457929188252360000494536317004396429119436512564461934063962302377040688778832278815827620894436399212128563199459205749051697985139049027488968632108773400365092852885760898175071356542391231245730422354514332634767913975621277368987574825732537262229454313406115873391295354656226866848178362434341334726171776329768919861139053737699337454797955479832279892099458654336907071104303125944349205009087380566289153657544342180885674910525195314302552649818335432695946123800662610042607181886293608482196167827903933966749126304368898592521807096490010410669136195541267856793247673717960819329876453515265006554891081778710744309320720280301635574264013257046986333400662021144890651704249761271717509106143540740465289008711543660938795610526522916710830643538094035273438745491034611563143953354417176244048754430054210998743951943533640917817117697385513524746679171305644609698148327145220070618288068869654377282350815292567240969700565725939385373419500989096407325372453769370584200724324501836967952229211371232103176514378124188462395220394287668082078590082302747376526672367932727391795103896559896387195692334274643134715137648214600086476749399136037541992078794803150165011031335729332919959372794305019966111767641838266824302582963217171636137213477725159319780536413475774017812773643168613095517969395117256979897553552895105625749768004342747345615925665927331240563365213070221531075052840524361530290660671777212508798559688706551291230445034926836396693200916776955877787955663926314434266651385881720969400186960800945827477041230579868824609703119238497729128143304069584097197361668301029209938990037353371964087494188771178682504334808067683238835402789480941255474998285959723210516060566573769461288222601018270373016384454225105657805527769753265871726120088409039101781932006569332351456018386702515072519440804702298650669122282189488643978021232991188185016525796774860874771535302277472240027111252522821456600626648503355259048026162034518632313008074060834335160518223399316464988026461198252050218966567187876645901054118432534267487625474922080806194036836761466656352462212027474959653536306102030529224706299948908060657225287701246785857678456076576911620116412248760894269024519232058533662408879905082841532107517563705315377490095906453328162345179568674635667230328134055140977282375859588030920325702795445682114901286777163537476135373204397756793367830650704030613637758293446572170108183197588973686922809045139368056560769701175482616554494074530354906492023658233797515272106808974098620174351254283964374691595348086907445463857948456167236472203551172964191229618910740207746447654748025171172343256059372212128103657586597499345781484814591534247805813706143327742139251045639822090013568893620723369050788451516551279255897819854716814822834683833271193052826041708611901352929705027653033479535150085923517194433158686283042783661650884170356641409910991839311441365689132654846125393188849268116596659696490079204619567004118893604846016121026928025340577586541477207411724806818844735773098328367302731929184441891465393569199637242318184095713347765462480912727715591757580148775549482938754888894765199537712352027674642710795148856445601745664548212979674781108760587199544005075848790102621576925984620267096566366296088576869000763777136950546265025423379346995430076020375177559455411895374591129587372967346269713009784473021922278309001575022376329112210770562412635709963467391172143034609360309559503865659337436016248468263294354269482196831964572922408437430176367157440547037305677494761532759284567093369573338218929648891156745921263721717991501195605271208995552061632404469688157907936379468947621984542666390496562405948460419089105699585606526374600797415892122702308304084726524822736630422548090571870224948208322503504320203634066594663860467514615183084542450700492085613283916570417624677220570939360692985519542266716547404773315248481894025468153459890954792419888430085847545937191793179721041768978825351909150560947182118362221869919081811959263117012099641554614679784854803701629469109706589819406222293497190891478067868201379250585685561289007859041278716069107367417781858539845764009727592999676088146077991868526308555729780602694750870553990659332221314162092038452954271932383852458378548883754116603732406046348513389974886414183187797246400316735492919748233362308362992832356238689951626002550559527828168725099800395499212383636462904834386975999949191192174579077316160230412752125401969971161286316655535749604656330177470247846626301262058067814620951003585913478038129087842329743135849739318123469350103801652363106359853007711788748905779165284246730867191681088756615694507176466139430911521759060209656172157232357774649615874747683554655647442595201404325199502751505271815433029080523324227139805271601902338200365394267001875575925132430534004197561840150727619584214368657483818807547856526255149752091839940322496528124928013435332813650001333844086973392196779583249003360881722753393306773078183570031129995026105592147687937764237710776908295657078846338759469658523741145102244379258142645235998766695369477948559510625790339388761498426994001383443463825675117338258899721569598447339038240591728251905733636230015573444392795347999196034548349256719689424197953054691920152791898819697208537879398047665498939636851703853831436840880855797383925409116133737736919650049923710298134722687031096993540645992843680626189851534527985994789340461790110085531511913722080840186542726623246580025324490886100786230517460677864456698116377034017376120766839428101554991039189749884688914529905088374844341792408813350910787932272097662713921289622895620387812861078307699039643911628296092842667801464298320127260717671733859949188490017421690580973167441459146684073926903293969367776449690202724664329927285621587362278682090546811757328538057486530225101610625528628289958502648444557109177770497518467636264077023660980435935823737780458370573117052216438223560096145804342033076808910055171352794537516960752375520610755732855681286912657076597029676054837737231045474989893646206554690457541592922274690317163486262572775206454347398067804421475694050828253961825848371933389560318661356822524198492825961912207944994381318534179570794832365761363017297237767483890438166607924746386197499069307892186745330964466195045356045538998550815567593724273932268421505710320060994526327453573719823571770382781984571278574759510845965406379373163095473270666674335987494262277390430199185272916112755838305663724892994965059455656611331239829497249297024594328854835297982060000357605121911465575786776790455317906860698381947506275181198630125626850749136661992828308738835860768618545407716087686622635719678001623378331899511368117768139786841121946488071888158772761815559767769893682122413478565763307061018410989680435651829291958533762715228401563273859967830884512141552673732163525217442435408556702076450605971129943799816757891607094013739812578612555268917757774632719092623259958806980307564336480591017464464173300394825053523927356043830908471747606383157670391506659972634678924822126044262985491036089295920687546332966091516537583748503883475815270665951104667235414704875085741034792477029521352212264776000273652563464634291699002696714979646500626798667389011720783413452733438036381431303608649223150237437852453207055721353297545467915553738051168462227773790753802237633186417424349190057988779078506361148221594386219205942960552807028867174041729065967174970815521327820485836001085436441739110949535180289269575848625459188237115562013222812494073226956635457347144959496722190661313217076857956695417583128631988257479956987540096494269891044057017589525158268779601008067518115335955610089093943656048676742205087530747904428009741122153187547330299798187158792053171465685762934957652537699723409502096466887429137515046839911325011969958676074970382408090959045244237331345777489772311046340465053638296589762857607718850649605001169984370609690230945713433937648318037086291552573830883549229725631570284457566167019695707141865040779230205476905239698598478049122891038793114497044201575499128509188267077811299389734178437928209313054491601636710698306226863691176622923173529093680874490369497034570586505618784283735386779392768353734347339781282089969381735578334453980104441920715971145064552043256928986484463801438963734805564609099563169667717750907791384427611725607036879111836523816295285164044204307504382448877508251547207314906121141270569411488390599194810476820918958660544046421791530785113317401186235801001973879179816426314259961385312717095153489115264870681248836258008656646287804805742622846882506301490294209035823964413911163219659863993086647893619395322121545453265421747944096193619638639854173533798840559307175830044501895003939771294050985486739395924009281537754203460039972873392629206297376940821226057401067889302931799138075279359516415137925657932280287280476958006412299304015026085332037239577649230626992161615626951104009937774503740723287405635923912602883703905122152017594492295124493574146529300237340439063575651700318780956806710236900318834379480867168801522348760823184013816986418512332537729301858761867518368639307026958495897365632760418761766150917739899019371231143017283316209125016246585357204084952799286116083490683633804259450347042098912390124311847716222275819491494654213879110280701040442146176616027314529558557795571314829037507833920113332518515208811442379353536550018727328839049965810938309257028449333427605663441409218918124292062176298770872367227075709570223558960035570579020629365017471145180046122589351694073829104020447455824394745400007035977665352679549051871709316816075716684547906932842986234406131669774091305058091911932333711979135815562292242402897754199249253629305138591647104110291746273624990481363791742117332184162047405216056980860308685973398551945462178393615952582429451785195475941971914716886570749155297364556077812219153831842445702523806611939661559924938540198107704101278284336275755435035903743110689083395004537786738632601441324785200683454851096665366776194319588908335642762558191407843878436809919715368317832421455157010714513692427866545323131644113776249020232085447173331664379575781582402384951177870234624111431607370013539875365154741395696278507365939474619590104801942926292982464694652484722278454032562426987761086442806242081476678475115975636711958617794395087758353745804803235804613097702341194668843625337186937526038466344783013576844822435098353258231641778008269811286710336929261517551788233651149915389983818142647603060545224326240363085246317129109802436943972671885118345896218214188707312447328532034705552896313360379439778081959583657821224367027640722185176442411927774590017968316983118069671327505775828435949885901514179070621925447068769688861122282411967940831928759095302003898034391806368188541062503778617728953217814311684272927983765074880785668111419485016794493562356832227822149076438207002310490864801937368900805121612869117832656115647937271945979682786193846038157833766172028346167964452955738286141103561343415333268982619852996392570344699774509886815767073862512064196009906070230816354643673616036437167145056453528589136118237144188530582438482818859390933884587964974181974221568138208608640040233206535958178166247837716044577123585938085256437293332276047237960406499749399734026485116663338998629370062322122631139420864290591591487029611680393283822846316236350361771138054548832976437039930169707162790414371936011605354274624371346526083412136054692855169867203657343686602277922692499803445613305700938710280331082067476057662443225436992109689415563185696003573925752619152230294070363147973100068522485054038780452596785839633559384605128227245609882614141447088844999996850691949365663099241645406437991140771148648297825376480554291818658107906778630761022827877529802345363844762931408292607079986044507745282463229279322473428675154273889136187540284041107797570695025334817821723714037303157251238679378550250800009106516142471343207688234018194333616377051033412245868785296639448440158612631899952334236137505754789183139061276582590578730988009044999380631515528339306338522458393480482499932018964491245627872859904991705634255549814528109405614970225945339928378543308204167542336246294351333487252057140982543708879390717369960756983897816678189069274242191078547097869581816106045973906450215342955582102709532074365142926687665722717811390999673259552963521686333184952290636545175180190190291703586532473004440576303679086101837218523448431559277036694049668033789654279060154305999127046768569385877039295789384383503850507582901924052495107639932369777307398847712696125845016611572719332112420310983217903523753623942094063132147959052193859106302116384027537087911051658812468513986184614627010834086149941498111322982446823163456268187232848201614133886848598577859137705815113403912229481335278791829321986931999897150820862563077756256966017091327195712813784445260101666628007271122122086176038900276723540784820752798848152693109082315471419824089881341429416089870529285364723698002067977135338054927834027376775481700358022551429529691617167537773329122301346223566119379362590062734922312812286365875677428893124493053458265113450376021349089486753527057347248201570254759781138488542343288496204419976255746372521686892505078568716530034135901912188444757659520931287200046587835545555022395651761440770126265535640338128311145315324600778973895233654170296630636665490483754664256770612738782099449418851948678094393904720237137729922086875999080665707702328607103201397946442343394272133542027499467063059805518417408571684324357395119397155643774897148835505184117221967371035150972869593822984125255272312576235223650224059455612362620892892842127658139441685991188704557081868784285355107500512899596028286294124311605023403661946074837051538266590823064035610152850127761276214200117638087309358332930337244809827484531761011565764724112985412307596504702045250359935608107950433771574145123259440366071869009392202772213436899916400170305979931158504927696922062189964194684144611773301681116768726000128033853056939369214079865823559088160254725935998718940026539640461371756578745429775378154908329516904182195053496981366344190853316110539405534269399057346171119016365969207008766609141743474430280876541959187229073289310921740221272286052866627591730084622595131604653775267604078804858022114273102698704441166833947930106521211520327249445863694604305729787221311352186019509558594359382115919326256776294840660030556176433605457574146942963138364351721499904690066595637996201350496596999252234456057851995011038192832193729417821339257733508525686242357893653221605866224638324966825167238736722127605985849184703455074401407927554863958910597389851163949000420251427641722001570222538911884698342549004860907143657393288465383459542622726920124693064916259441510932066372086846155066338112681982941820269011421966024771276900067102272303896637079599158806676975879880210450539091556652791571207197794423567276569017836133928888912225018501038303376755776437517321503262282587496401883240167148107482165182052592441133685041051130703533939191447925953820673432881396762731626214037116465324378526645808393362252977138658750253565654639191197620544515249389822048892118309118470742098072061589978216032831838397215103041978351262055359192352775620231034386698262588264183893001853155516968916856068131757364923339911834011842427541130021257135055380847762793064421357133710940065035490354586656393751175053435787796138526218018771757684769839122011554160740170260213647139659824099997337692031491091078184125340256401878416759244711838287365224766166338140375967335031077816848054006294419716953818986576493697137011212632578984663616998461950864024371321097214088550738431383724681904702080938006663440888801132108519266510268490124331350816120083441790953128517280344474192755223325633400986103070156932378514624344315658721340911835777691174022324787974843647323218603527893344611135485690657226043712170229512037904225841840006306444933974023361767239413801750051609618908935724902712294829366977682366537566338608247984349813659108833291398835251170163322797887282247034402834247322312651917786282150658159061234776074762899933841391227316549591487903901015630557596840521361200577232949012084331793872310016531615297734434654620397402768852208850334023210381341454413528000037163623542267052553620367931084799854211326901234913053994124839412257872532495393917050832790929928522221333839113742499656390883738824929367455174102268891660623255502473624859822370951714878910373823860142237480212478425746896101055891996149629471663905850027730992012444950669169525806476495823259559036648039483776251030370635093218830923263657908324060736350211706307100487647411763414283979602427879269179648198734657548832740232439112992255548568032241918724824415071770386415458779954247683070773891754828969530656664385628218742744257130427325816396075638091047666316546229856077377304230043395402420346841578576039303696773309031709989376418161675505724858093835721969131319860519287700096192740733388460179667149497929380705833919911718487510040863254407325315957367754959400812945326834873757684191186929578605685211223320287305604066822366697810922573587821480252486230528109344002392274455440871493085298996389421594270859928965792815079160018338158533113989588848370813800274657755012480726877738880256890357459463782018988066986312949944287648496519283674997300523172199591506615875831721670582798067216597818345001398656788333530668772218065365060978057027786643995083239353126690936487300057636325059384177525951903729235776862208911927804509908364872427705369772304566737727527234671592250593480545163969029605755196681654074521745178462874975122580872123513315306811551609592588337317387675191474972927902826361069325445279889088812548738794652548767986038639463408579790774551732780632862224059636423688541338268378665734991295057426780214889712068383645121068907717592027738384391274306466021572954616853808149758226480801309915214345645397928853028913263638550255493939566623080876361585644778059907230885881483099366743594984879428821218929776789180042022999179469918372579888795386490684195847831508718097600940793541555172741225272278478444820514801481315728881106122242815329664494960596118736046649935713465739917482986236097589253506681373577137810292446889558265778244063516744005538869745643682062607955546716858080532471550101545481482158812873097668190269246071467561550814036930543377464605651479140342764193143411221628050458152337148646065923281995049599889452746526585286525770507407524554585529743726397111223665867174508932348965469751741208604403664292729683737581926188185026406134807909635351567017392004024527930236085816769749393729244140763006539500992595127478047820177176978072728832523794723257096854626263237695029174695788204689268005635408451736476933028757928253636978207883051996915896947041183339543242688913333760033958634516448202427942132662027655551213701642305588143546309605921808211655241955014585169526750899309560048325005198413480200594773835810823102712765600101536503032370934403106143806343096444903774033164842687416209717716892999470405323993823879032353293022221736602176693145116098142696026072980895801497918396938929663810844124862523362877373686310761232049372203433974018306412437232015356680045908770226701802881584270015096029665792772015628799289981885982788539139843176779356667388925592494588935497938995981733062659295506532152539352223307890138434879006078163521717063352735595100303332097839905999499829903183418613510007388936601626600564295567135544960136290266550486203564161928983889226868441605872329897239724820220812555636892964214502947326245763904988950421860590037896196711812618060054832006605710995842132026420851287249962520699264341938600715827726163739099592826240121498948933824669496644801106433796383284627930441088124818984607487114292577798973665236702914570423990100036081272473615564536238079332529902249459697802451574629219755379907095528554592920069982766054780653381200039774032083780997168863846105576020813535891613730315915676877477521152284890067942172931855867954255308386088699352236111556937692840978466395805900212245293065358851754097138662039994700451957786596716109140088839399788592764311194956310183773456022054590413529717204292635401999049624046476492497972219971496841585551898527620568245013460543680763997084143734530197381417190736967033777865263799882401053070536017316120974295742318678858363158003722304108555473384495119331822070928810073996120773103715214799005340185930644339584449962652845909955572638808803761651851560883411517712862891853155078189440609535459952493655715829933775079039684282022983012988880406622484128484021005669311098955578866556116199504652238200696933261986841731933887389245474575604875867136791969415362425959183090131842144815476650171107763923328530974339828964881512493591769503970890234218035790767904927824596814542644768379170238364110445570797080111297813044345301570964524400190939833599851834926239841623836529342686637770410035861166329498934230891880329140179672517528174878141893184977552062599784607743398366451536560433024032549617411091312932835347059826976710793490538902418476040078727038658011580444696169252837958994975801677089822398463754142541356671476586303292633745259470333822608268623877749632682576464397320108005263314284806017728572465274256505535193337661232092986298856200847535531420202161870831697144276725209213953511781781405666152058145499676843310975667819611331746217996994457736976228588556220595896831294405963390635076850114334133921241144831501895637730142752480508488611107067911213243065075169012777327646110699209250408269868966628301688796740905287702000027329007156210038740859498088129110212721714881522006621862965042282424844027288061911587392842685590492181743046378723655916104208404348722069977217660060466568036538319359060932046997274769340057031689812203249143873011544592072680064810449446157530123018539455393360725014131761083299377515646386480449769592024703210091820087892899773647087374841206290520826557484114864776643230436402487288699700789424636625376112998362423385443448944071012502276371075867548275281357905263115082925189293613819567064098594515215576569461614215364235466754172563233657333683212145640670723717650378429235162127736336767404306490731325831267863433669056035762493936531664530770878814363488732747327812067842538238508186749720054831523391730782379286741327807468609069802371044834909223528896342167047918528687288678709771418999168370637980856499321301304583209160977045463151107168486037376880047623932444126169833365973175882422651350750393755077929857710681535723383949955779837819625512557172195909816620558228862187354245192110945252310854330495297866825125622544120041215163158122550179499366792472530606113340251330173182358160197505943750626353210114482793762519427723999274114222073573811252278162870574479930946878546027761420429250928128987115014090620618805810611776473917315459466192690362205068367344620331168983647385192243100642932435615514024492770024792874437366796598824626680477897432629713835564785400602668384675488012021663137559861124072971574447196946383926221454780171068906501896222023608341008580991285180086685087939013796869783354225440117875790013459069862293564347436120893294586227617569754454820364402703846627451229188691882102489604129962859280873062523732207499989597889857687020201693110588229184344116457215126722056109305327100912814482669128252549478793971467590789191170147490852645951260516483039198331884697039312739177424116247611850268837635100611527535272622735821857511240021028358878325349814711627446657857621055846946375797343729071033810520239716742536835660064718905697072898994235459381284840610402297553613638943045471530739265083324110726407900896472775883961446626147161016166360275037304704506315735146796486023150187556461297640363568580212695682919630307324919178183548370433433278341109082012640724669585987645410671269842525400803294149080741963816099638273960597358556568269367353572148044861436852731608534071154936121027292445764683637852162330830922665890868634525941201325653641456174675994896522580074173715891131247192650444697916571470602488741404131039945306684609086776217493171358088000421646545203945559317622498526425385568737784127441174670681425661255708200059461949754857985672972047864859532243811789059698690153415482285777641337291374899897224335420717899736808427308184086834362682900624237389643418312199567657014960050283258082485957094000727566246402179348942035627419907010035206506911462105597994145668858767820665285175339295097282781174925300196847158943359410587515536977996569095032143606388643531508908617080158871814862612264053224212957086528253752628822829749432835763210359433961171153986451592808202357711490630970543083579141463120019853418958432934180335060000190308406610619630487619711097018466183682330332745266699321006545804278186789093891925121593622336138144742719898671994811041395161409011867193799790212876331953591196760819928176298267870431148274491779194505329415243746712028300791820807352934927841983869676309384183977724353410321960269766797515016210248408332375689627253873779165186546553863129368430973971275608669569574199897956019181863786944228106291836718687076784652339512825987002251755984606327757085223049933173125271186893766466487488909063587752462225102894410103720209202594956046212434003778131888585683637271688200355784303543600641038969464256127666946462891641398715373457380258625296244080745761209828560014627837124127152133100172032692889758732960995928229388928218238787756315758198196077212466276235785441482430288379778906693883770245586971086528876571849462363537247780085461308889953104035037618030457072341341134478865956323530538676053362581473284689094231073368502259975206815803415598319892796650822870178633582441057267371691191096238251960306376654711682345992252630630784374402862323534930030122181071501356309513293127517043228125010979275732620074781509007455411634309831058238401763676124285010751687119086469788191884835050922126278752842069910347090300879860025090793456087847547759611614245991859610142315761669907468069875859689562548924466412663732501073166524689750993464827364589214963259731110013787519461694992732148298487595111736847919022058860462965985973791772859943637662960551004155226199051618406634106729090803670839974989710532223504188747317923600371463924465818618913712929991754012521452346896433085574223989016561169804826031992342692151473702311974413080871520061251828677082500835449694867644244315242954007140051369991920599798733980559856246313697018104249863739006082738193737738413941214082686636322780117412105183106316489692322121184794760087536282763791840145510053734984885006244779676863421018627612396890708004815396940077834523203301750380916049765929207764866173109812374075423434866700361766933418628724340778864244425665779105991887158040988169226564373400722197231339398852296472891902950169714740802687478602365398274329147484803575508642242558500813411130625701728484747535613561066769534127021374819138377555925964445716133497442257132452062032710367330591867067746845057252218630009222806301075927886285839956767292172385216602335748236112971378268729383572223741541433758867852426664429494090352568307499304485404650367684899767988007609046775272431972548206268912879467919982074405621863772789382936063858617576441603239725872474992792176154467410369683244902331645585246605282678262519439068681549631605466914987045936751808771921598573246073195935170980211412576203426207266272360779386383841360692006144592782793496360915107741698861628102941276024184530030243676528377319370977199171737730893406292156530685685897744797609573558865287100473024834245827233048834362163786512494756056311735312949495645965640359879877979847209620046778056524244136197593564034049752942674051989109438419999325855050290984650919437060513998721420190931254907109778048685573706655296574195530580192666192179604284710790499128334534185808716017919247560735725604569564399473327088907178672267853272788772823257233928968196039871663182789846161257161132572918932522618479394787176451973486587813636121702232820034345513523643443957826368544735446686878741701903350144385083976945762901378013387693442230385385067005759092761743956971059761815685206921944869883890394730458812996512685228951912753121340406001726035355611299616983666310836803844682800076424285537613392963913908562182046058931474483824622551020674643942950203330880146967617519750739489280928081139197716155461190897817890767520966886494562766338620654767148897560649928588128992420717549509318710006063098896805455088521148564063677105802402006400147809872772618285417701590495078720554567510143832290675297200107498145769065261096382009580159960462730993336176509841103268575032399321489364170280015034957656188502275192388706064804986750713402091170079053050260559588260899321467574967379766506392718311791183578103789406308217922413169689475370092740993043600663686038012597002438013867428380520746682409959154238050258147851164741503289963877486170555087424434653451475138761727388257911935308867257574065830904039585068929357466926183391345870147128815347166515805858440015294286931211496561987190894854993613949516750827456424768812262165394460428988862585504650412525618081882894625480084707968114093534303229721053949255998256562246859020236787894314478042779396833803977639096684452770389687651380207276986675609309477091655078177150279142723202637489148889641355302719632540575041825250163749289427098034446718870560138659989848904362865164697952333034722326758072894118721849227081265761683511636031863333702508956801884252722741086882413933492895863514557405198925544435813148131412080088641910362505778294738376190591335705483651191912739386408614089299447417825050654972709566427276605107958822637762012643841278259883401704556939465810727101488769139265801880016587879486739869722713735610970547172270999477418408856319772716847511398232313776866348873362570818385022688143860602251456955660350680572236601802532846852743232680042058415551150985628512452214449303885011945391444615414285925698697765698655223651143067723774154235965142265750222214330509660372929365777130856655783785449821463308563739555240675357211623475995979249672453301246345819890500585369022778378619405227502311344784673349595603162634789181559267800004143060656067382315712668884452104885582360976504228940763632838715224383265425259985651049667046907588024434880524835954207975627425992652754399124383933529431339657381008122951926513266328427396981013966736848522979525571004494610080100946970215539151546989997274900821335653241597678257724404124709863275184222817383602853894043298346226201844540579361157297912014289342890322559756097836152324815490551800134115808799309167764292290593098021009638606225297523256174404925965498608408094856313140445350152855303713344500681542396265308615287714303352286976813855810379942855713207440587589267984787816599836697585626450453004034037058116665071150227708621943600555797463101138192545736773621760130103472523103759340052517266833405534651427859883127842834884294121371442097529911044146614724064955967452783642768880370988222902583390478701990501618615093039127716516191974909442428620976562074102051698092790612832487612081043214580640775632201703424486282148383669292803315198400317724578126969085055145884407022474569897795895484981638212033226141168497097151192677490651242805034707054294170340144604424474229545785127937146700367535350656292752693241391048591795794672265724604688813903997682640973395752869720908791805044813796677364080599867221510094089423332180182587521269343584947170599645911142746122020287783718209336844508262164308765994852530481830408700365291040001637347496480870659254960923716667797694792561190248365610364569617968796403581645173387352001633086207879221634289095558174128873133997579487907764812601193797842276151822455096596068525881481342687097158919187895272910963513523740648232011186617674008735950563906938291323692237871094292620334417077647688349185895288561910977409173351231246612707780270831476507548360052551675248864134868056888968652156229216543763486152428753296856727850043891132027822258125536292774322113900013290874238167949611211905083523896498380575921466734821945626286063167365689788115803062051194214387335119231461479109641839319720287486625718905245189181472593177003073904110755165616151323037892022029250360080546847853190916368263985401259211389787245644451775444758271605673124585892721708879685674434815718861265517402056709707428776019038578926826800950124426824922198206548921728276029822423413893392374098116025692730443457514790248220364647946763255544803576130750957453466671735086324437712545484981820695705409827042710554410961565552130345953487192172174468050179056530192784261557982736300182593050659153974813598265297171798621266075067388981175348966358289350461249621029912863058407839772803603057475917576328751412775868508707493874055887735926212577559574327150135129499187430382561560133541331541444333167640260605801171793782602944411741871224061653253271742886550896111976420749507380840852690640972477189281238653595738465547505964518508754012359516054623355056540633159008210016557107640747735971947456156141331720511132711679085431384148847093885885193151023805212261172472746484239038204912568633857036154978055687332054680622724022683369197136624064394866897671029036527961888222678483435323776209621918110483983885371331532108520897912697870639851582198017238553848588038797643127853270610541864261581936645875476877422573623705212179931473903409355185851555424106121625162949733581493062620591143672088778182446346797007160948595239473541319616731238194682879323911327335607271867780595369125299910541123574683779781213761174681379473758203198781030811793646663442011302403155309759604008632722427369111198503582561147922932536531905119906644678373475348641136205950086716619824235502555245083647524766889471996085440590852672106368782171017354113057498044536273777379137306748907334348253710218672175992023200352426794073792843666357128610316425073961649657700269711865884052597945159968188716349927174284953952371256280676407831668498808019293066412170194688009653556293921550277885907294361379619304362969102521842918216005240318116018976592925701920336047418619398583596747842638550467556218398873543106210079324008446194771945434425254330260956077017439391704909133153628662325822343787624339809132501538629730535365190407496475995541449272444741244753265106026796805866388959003730339539122442100297451835327032215152923044066107093903752287159133288213892920734772667602830204324000726928675083219924622872751542183270760469019619917796781406091968648254959691702015093841563070484816622532895930338942732834782122953870350987207838802871098424834153841667955046771004525662139337769990705351528057761736865256201530671050502640696724649218201435740336609698305794748257843139874518419865727350824245800999208643474832068964621315335111365989334970087801160885915640167059897297888877145143957271248483986308574942355417480831947712606037008635873253321378722014941860906765593917586903295353741524848808530477299025213706389907069298993841929925749949648449021807426880670508490500829064108644321029397220929894649834961000786953320826390863738042278000180516054737752250400785539313493486872249865328798007948041619916150802427783531970259937779614147447927762550446569952520151118061335649972127830241440739648025493717678256013094779026417910784873834645209872290104235666200375227818126855497802225726796366844528478225338833502681721538280072319478913095937152134922155886619329860970953451475953247771736283087610622015683540837968157599467877291591605367476090437873259810897785367276998437136592951152123568731961758886578845230306904303510967264421645938935917846626381458343121522913702540695627988707474076978150613691073518254694797590542563639836641603023762222583392438399326614069322279526276174079752247572190424835040515919716016758460594678306594350517910995436691342241176558849631676901522802663447578141368448732040592357137649955435937097124124354657517958332105903872365226030457196526783779746086847016657871603085801636311327008493954083424690380374706291594909503345288732066411976129977268014725585010094241135661253312521136785234011979443781639897127026724607585364045188442249586585026221641457713315959868989994482168538528152828715490570096404507687527880027038082278253345054521281522946725189271122351305227780436292441408505544219479685744368695782339492587289508613154302353805815540856268517917824736203225073996806709148773601373290929709711853577529881855141135962746523462708892983469486565603908815927095985676732596378377501095215298153890342142287952354173332447981710870976768001096038135967058651771605818551723679770281731937159889239013522922345981237898509191982932191413893007743276891661138791621989587707528159885320350458667081257498819145757674160522659201624488932431927269515276213400808151243231907416531709458338171982998341969954305353416846394375673513800100187710978568149621854773911312858230775717627648624970315874462974820727013283684069945518830534812473998767681308376723167430806120460663884970857569063752240386334796958287861523409874319755231281906624247578436875927860483408359537636039011986891114062136299190410123056457076445730800163371023122900006474011442540815228572673735418526599534230991196415235433495059755700881458622147041786036775683357337539181145770588512513799696244245827205278141197253537780300403978029706782402806683702799219819081973552147464483035072925690016378670622570124427551836151917314288810521491052386372950005713658462071437639858891982543387181771539247728330691253692963898813107523442580838099657670071202014533696773554062574301096975620881941193967445987185070090200972843076748070269306500568621562195832077223951100270697157813062824086170487716543896115266039913014441771424505315291632207146030154769737562975703923250996759157555280218712487323423683409444388694055781893148426649671774297997763426791348445672863633900368961521109415687438394704429234706613731130209767493253201101225102941158791678049932300087073547872672702033192103518176918248091751227724489372619017446090647775075446924743406914580587112601416877931168675729481893819979356765395891119976942442931967650663224128791371625360972248512937445480959889221933598208347601565291877297995982769099351542169644289017278280834097677744864352797486770873371852397476774233695199849848406934552828309234540405777742509212367130120899152885116803500260537030036541181157385645153189386122762910163060149325551247024863996348915861639751560543102032314836213270228215874822680938961333860899608464390221139751511692792462418100450790743034044189263510135272623977714887200215899800562674660209856861435892363413836695807102469395155504676479798335523551511283378423031866458567178770146203427241128448993446352879797258041875435195706575391264714115573410507314497512747920825001311818254394637090616208841035381718009552316702563401138577415256675874072257791743820116102598099960883389563900466103020942520143377818528562100394211928700190300865707434898518341067545364934097593304015564419420396531031637575359595681628184269590978576662484145746411505665003450357067819272874666333934117175295680146713151636866385854000312958151330556504147823524166093173353354293304830997958123810902956986217138665243542085900259483261416009891324578164963634977093257760945042740500305642389672555777510607960721368772054785560265781118817572961267521971591463983831026952947830374331697352002973447816437047375659109054460074408476188426351639108002592426439558979145835177901864802950527983131957650360498795868365737368965755478915326715518234352391451646420665451929568518434976647589003940151558965792367649630839324929684341403807024676727835142865161014695442056076814365866384120762429505376340482748416928919904791569704929614732321542587942416295232480630400991544641034498951775710915872669380494542110660547777756788475943186776195751752764963349235260204401748806433710109865346827527285154019608462795104583546787249673608353048178211844901040173874033501177988493156646875240402823701481579297763579278876025466572722365401305490577143214840545986780212902962001059984911690163599823196881826681946542854226659979617365657244619497789632012305080122349800317407854549358845186780039033483814652969119470722195649197484197593340245997801810366527231489009656154143904159296684159410422165178546411287722634401188854040011273642344002161446657181623374760048136712534840869524593711956251107721334745934163763711993659655769703992155267290724344261303473800462204380526208029498718925543737961428641280564795939073946080476827656879760067545024596059038260054396222867300725813333504060275978624878775448024110805509107953617571288210897625501825023175630573934250579841756161896344817258564793311377974685598002360827249761874712188973135467721050124317919572063404166953028405043148856584976415144482994321793243069960016765579748342140282701992678495020442150569431258674936295423434788606677948379629171545527197878366172197689509004018590384957269049865155995848221080530667094220534413748027038052089286197993427609878855550671797528716312941054863892803132614071303016487497638136270680155636861677358639046530125407366548489965632044017642052257827273215188327082132514903177858770728154944873483188616730450603556312899362793854776226274330864104070008397112206406575204248475463998833145920681784420806747399806171575387479506732262599471929720448534309488110251405755550854200616157603263605652990032043430090532105253691715828080882117580645091153764942098358120108541619252632042828886769317344272454411088691609101335281533492023818164288868806416119689711759632919807716092787529502486005575949027118182744912612281351483342835972708532022890644260559121518698114602854198681981381458689642297213959545422884302918636405261650962661075545220392900759455448017647715761718408634744994020930915670216162623968053933799301471425330619356033185587364994613763759561348285596341768530558383871593372821090979224999706782636262090970814182686753424539088802936276006429034228295486053578187304368088102624442969882948471859751411576814839557825368423700437718278029912362855848909293634460127310062767324073433437728966581858926484201899529964033678022610650551587712414564034848414301846240101002976521527813902365122568462282641605535533782752456229292814928323495597169189437355646105970257985953837168051892532621846889140853184271814456019139936091308579595077990571580647811989581160329426986258393227536225622376186225926091367870155349367401865670295092661795278652205080031521212544948672042865191668211451775458200273032554637064241471110160738229011896000077030454457697792336342665756967378345145340400439286734711171325123917134989852324703064977782395067026283745917622754989130425365751184000344910563454272618880013237733697236276921455765974413866588665333479347858703878243198989427001836751445208155320853785321034105361855888330779904656168293913688686799113694470434815202364447666028262623903687558323418839037977007985193887921230770091088223729391901657381665054940098916194798581922969404625834105807955517212358903005122448008884378837189295030084416683619969514852342877578417555320378932388430894161726366893965351210521305550621322153088658750884528759863559589343822330129784388705860979260901453663829306923376349068975348775444957929886583198538092877116120208089079184620239872935952218806818026932243291559241821050579968558510259230728284587488216289923215011726574039650207835951363833513503648451896465385999201801696169462219888389881146493861421116849758868586993972415434659712977955547939988501918724730589240361169155406238518902374560967335260548270371324691942001016267055098405986396157948767379625992829492033667297357185439045007069935790503949091958986683304109471069795084157791560997446930730476206619987487118855536554250054791008105226033761158688519456197815967236903305033562062363362741511039132170609703817644233452321318193985393405185029821111288370152272987876564155937427331940671988218416306213368956049952063623114171145651635409979520590321786965415996070233423641380321741140806938717616832819507190329589297584787463134817556448876120585243757231919031023995223713425673341808607969638971483269200325102561625780409544201691588879907330493324676225513741340246326952870323650208956741572213004126039741646044919573680902280276051935594113970877816751616971544130430913069412280008601866225602372986497670117293113875219566835729492262623922656956865013868876005722234204620954267615784059684328871690916585216154642033621060224238207372379185777778862984192076874482171643557495906350144541172670188640429999001072998620862551030528868043089343481331609388220039448709447986383568248580546347596685895119848133824875282560911688664734411160793835577682671832924116532298321095597217953619907752779609755998176866685370795824180381347120812706164599738846510707576657126488205513681986880344711640844824561879623185368183050390047044083826834760264614841708592647467035353071527292827811045319289385493711129891108094191679766730517943528142623341806842786772884391528256340740475997885292527449095502306361644518810819552002578795243161586944223763085241334514929709589168839292213582025047007033369578961177226646648640645732245610901395939687276295866330577727432242435796508612462812173050938531232850384663395657318258931654917687939283766047681699197496815902895915220537372039334720927824582743337197871754101517207542681891122771326148152996914290626838691441032241982828218289137555241825356447276188334491063703021464460204774858026768465007997354119876613752822918595352242000368367306078342468116996945040873783537410884211281322161651196760672457273453954802169230223806094011207621444377090600761510468932563629575258911811274847711944856654136982116257904734244386853439289109311404565686958230363180277401234026314331425718955930525143659722172814305190898359047537820509924872351337835307203261465379207283608303594352146917927593397474601440904773697567192811601339616908939361490397429594626370489764392805085316208530464717231238928417337166997644604778153387302774980126520122801298530122287031352568057556256039083668235188632469470594128953672432614577225277807983134294487655048738395195747105098242048495405021826067827657951016711461506427828644890918459206505666610647951231546466429664895245186727126166933547390124388198544301257487320636184438035804566555762348499188712228144377447568839676714489980489494544715041703502505252436380944723737983212013853928160219681370739566683165357492162012185941184851135104209568301054007629775604194503214508022610239721644580395375563155684898156615334270428137105635261641587203550238876511219366286782842808276850948955038295550356266763509700635349909434851257956458275640340687756522083270809163816723572678781808356382087318837192221028158790935783377416108331113807595632376793655580895591302938739631539088297193674247511847103569605484674651015174368114543446150693833562036310304351780949569797420742391887399119003186275782904555702909583779430233322101280899161823860505100318491858986965955569904386916393810680366660760495246538835399009025743109942223554301235441310743364095822393644821844831912045173666505828041050514362462045007272459177212477491820315154472933444812306199533564175382502547068710160649193656386750391574772298190723317654951053230678229631693604606588071216241639682784337712884231770619360232721400323203812763106637144899481568178985384339893200049118806782554441889334404300074246682918731473608769645958589006462415040584962372143562586806650792262717582553486263597502143278567598480303937505319222902354929397608201777553940826163865244957411591220977781639805001035625289511281634528293936397508778747666830222837842543375738478479194055103037490233040457948896627035117678906902145830378121024876791860682826829946013253105725700445053122370988168903764594472176793615692934532619112692497842629693044690810122622830739926137081265238998558163929379868932222190562199085602951523492634544712797835230390074037160776285448891710935193425321371506733214646072015463843778945132486199894109588251183486160856282704434624954706007739625177297927348454766518265793750403694270806246972061642687806759509671739790583314792513311824746159800994657682620636396695620565232020966997909018762025049949255830048803199963210258852268718189928201440155920735985104599542874689396024351959105654530898355663093865874518590653259296448763542974577659650647069998378821428216340662980571440123599290352294519463823790988036710306028464140043476342392600134941613448963087970066835606436025089130391173238684070818027455141230935812098019063742037951708075298271446782070546886310009826269813441122112624400766936904697458842704143587991110578206933135150763345209757797343443393619738714612973467435379304964067977858597048716038705952702673193894657265892364165634342242948834703343152082466895632087251845141260865421359891349880515739859834001301308066242062759936754391801336338626304481514083265852465456602670133081069568974407137060179657908627085720300051768787861748007045091560371949262781356238824306937751476430798577568583247454847979273830626510203602994987700766953855145997513926546204457167043606500757577585512276846209686372863610267165653686687486168003036573599295364022295902604505787405653866065756589043323028721769519565463654791324205599067608325922575253496828016789743696880675950755701913701503176615929639702241277315576303445212445642526983674097482044062584580036972284666512472789205593366969906892917292776905188724047020713691221568903287738918401390098955280062056266570262050329091266912654190289123207755935407205844314956843733650942228106578746373858490613161173611015115398567943318664558869779572563272676893738533820493244227377956739922220303709504819858942279268041969521918701917207933591690239263588311776082132301014541217192851568699341778124969855469375863457294037130684826949501602815042714730802180205803031144296425589770473729864601719519041306145886002331078319578997869710369741832390210517804869925203617121719830451388131874821620659950520317251368084683432095651937971806827533471040408917712351077627595072085835731166326379563207443116263109135973845832555985312456908095698246375923759680639799880719260305010279839531460771793278335966925979329823253130298028924202063377940160448197784581276430596243882062729004170735855325686945298889812805148050122447713884792416916907872749829580791892730448785363355047693424022550863266540526463437688329121082582426945628655598234998145037837184354641129803616933405003207439944712509658908469221051782287617996681260026892000245807859602238466409582852460597777072917311805089904071580360693850740895596518238084800932032198701469504889333520497437542057962933713613734303279010963745875308289817200780982432243075411861544490717293433021910986740441409828904894437799811213013716032719091095480295790885000819379600591936293879377495587568333570888645346221502811343147257365777054624753463157127575402791805293348451140089556429875113271262891291354528024765227877417493739492555787960702403491286748739812763918812842040594156655694743539264280421881738884065696224370918879597671773358208142803771162039378567114930811722586687243681271652101637851899740443568387335529955499265572049355692408781452387012037504984552832337108469744822908468238498267356439765658619296970344905027738958233049002895557224013272727255352167622172936141204093023813225525424877997201891060655325936401328890963330651409458507311470919510446198130053945030335818396785270179729103017354414940271052002193704636603149421541684052996595027349557307966644977684033592889417365240980018647459863630233142071542895382766461038439724402313181599629404785375930220694383971632423648270134205651246991157688310197043914587529514659129197391809659128188375548451132590322666034658767227989194272640312707458267976470773322754583958465343442999871562349972132748771794663249584466539211351713927689734637288104266223734102535319000167928527131385999166119367378019770933349860935494971322678942491865751375680269770358590285572648571721782156179511599337097110827646697972605935738403935038775005515214191439541395589548226895609393279354296079327910042041852557894944093953449831504346024042782611617027999393833963320126882711244478896220833863135026747939385475504739289073626314448619865445986449775358982291880468604360401797281427016260638488948783899669965716725971969214071653635410737232501746231039138959875032884399581263532553842499758776534884391082847774213734738801873373055712446719807638023944365836994375725357342757337758076118591837027495075858735810000202076181010813260043294070577514270526197698750635342694505320759772808289288841756058009295272246180916589023947848260411392563622556919242000968688221751008259898651788883662468682758224413212126003418910017546628495400450418116094320554642011512503326572877852225483436131295188221420854217038784904309206041748820934935600868794183142605408976826862544874134375114739611166116864075711363135127462019426586036163703510352909583194494190232469163772683926044827984091460043562397860045197374863602792455252259415777542114988328185891066994511090891906064354884543244404076134569147286997156501165905252307407092512211511116462779993117339454439678919233226241428757095961840148370997234433162301224725884965816445607154678307089703559590986716403448351644833657363871919796640976346813928188386807227245384642998691335663517945094944053057548376295385286517218671053451225652450525730175192551608063789029019005897485166940673190795680301002396516368369665282345744768558011431265886460612159171313710860835449259506230448674503662643992482215523840820457170615829480318477751427738038721293909065773049435530446140639853396444026419163580365128198974104773209362451414898506431601519182270033732571759479974628790191314916825565655123363950691149951680976064601307518882564911606039642371978950279377368367194034258335558169582003594334146938070627692317924049201519503119486959773621193129152302118074808910196214799360837951893841421793461142960750418883311526646682479233764886973013660193805319570982236340591372685842740642328660403575039487996077744690076909489920783798992474464284891926623047510472849411967356501828052899804525159698267153296772475342155534995774464938730773381510534453613470359956227603807471463082609098658367364066914325639872725313028221300645977269656164159941940807330281020357592119151164518947672278959404111390356418945090291691244610300590612480944903016856486353688090550040173661653309858079573118758781300347065676056244464325397725864494791482893756607624943761800933809778904398610222205084571608936146500651815570530222417703692418875335408450286088282538714637076060802992924732309980349198527004889917846433371195971729619203920504773768800651907964427507427930502180513757361813950610431681638812594121781581321417913534318418421024455927889219804982926012062623448679772075195940950044757072495603939799239518367051045724716248548228685816460875760669332700904261800360253542836087242693822845189864727878441145639052336588157883384653178420330642844420850039211119892128404489838685592786669050624675668154865332068133606880783091871250252946013657131103188629274321397656755659448177558837800348435592329893094277206106063529744306859537076188851391691696099967040431203708505662859917845354545759185247979116359200865255670918705764510957778297948689722423970895014128803941856073246959519808181461755870232242372344161753256533200043330839455929726261268575576040201213798406400708298288470096676964591907603787593394152018702420261867406774654966234226492852464476114231374619376941539884904444195323017028162818536766438194017201739027659555831731627918861882309508873085446067007799434827332360613133400598959088597497196166298519821874674289680417672332116660752188726071538821577736663535069817913475210686016082631134429669192312526801938601228206794184957338953861082444443566336661308810764184135800697660989777589779756585960889234052369195886126717825823655197090179335741539276072075189651692375126003010278780168853515649075184513806448569714581454586775146248132361984297271631532434412725431162175189899537436780203703793065950267400116085582703271081211668384972609982533666381801357590067117591528625265007591272938133206037941427220377352142471188011867631254591455726787730596433285619662215487074579761964420121361360921958817474252948090966802986308485265419609915511056527919259241615165808530859492726974160846995390562977505520188244014437982727044480608006322749873180309525319339713986057348520106508143639961737774342629497151401485736404984666137128384892236583180095566602794880920660037186594667093755949416324379012229398381259343192572811153463022377816605711571291563383387600361633073711123790746599278388606743342653794521939967799003592369319055719494414508660083862100919744611561701287706367925300217052041020759550106151696632955736528612438820752444311218712422000528055214656653737244720146709321577783317753132450366028639337162853566494879148071673886784561504547415241136767489023091620023267520550578383883606524014518583738303773719797037228336598372932806424211496467575864840528046795621617326481816331630687393217519370368048296117933021885823973831231911788400107013578399489757061287791651609600337481099789691045164532265298062729432210843257402371956584282206335944716571394764618584649877215944379862098034770639023015675078066162689699568470775102538798133133396586984970492116805068916548207021707444919068391669778283124556875427070236582468469482884739873050670364295267182026021978985695950378440712819043502257136587660394907822633132974701699994913873754116575107157735789621416142024568365226749607589426466405590050177941273017872803385500712030905297680155620589847037610789636224454981284294703404327323646217142485911857447682412146664409959465621525082083312521930985406475618112154531299432090682742882767212992290678383298401288248670106926551220784163540038046710680585286555866908165120438090452342077298287898478801404803073555189894974179079860309117543221822811964323416803310087316549219311458338172366121152714724612663883361077188253733648928244824654247628522264957565843884382225778446599106997662983767060286088095667635824103519890936797615369822170472778860974295939944418426254633221934956506015193235426604534878827565427692459544385680266864530663113252393786250118799282605586266747325431201619413694180619114913925254772329420278807002144942930574159228964498490301830317964502750958608587303004190343224673494235649662521035130397065311795842721890865153482185753588181427975028156024251665093845215245852238452329287415648536626396707003160987384555872998398102370784606100548953503563805680238500778437538405679056373114704302393459375609132775436232454911291636843574759619869907665064665798084731914408562646646649377935318211754531632083625587039736621848183327948204912208326401818061983280696283907628835421171088505834343344830428440678653787735631572549735557456361107374964373626319417409897782150224542284532684927185672017590366702596226335017095590984132423207593335826488167749587038387185607250022060678505968878088680259848953731882957978377236428678387338467372469617351621313788211788519720707651910404244051896046108229426936550050257144002970139489549267639062102137495454258020812981401771019182005440285452429477038286513641126070621975754307112605624312509020910138616172537864995942309551313888368203766712687162822509194840779168884621673615181625057762074202195192248352640965398015908591367509602127091347757095735525178276798043829860168120031856025891411946228545447629225823770408429891348542008355120990591251330340753068512787738440590467695829043359966690414080538430747161827577925011873368193025871296467742573174463930526995407901821534179326184833964255858378848684533459562032933630803348533610869773254059114259894497474802994284742303752312698563949941632122410322749843434324739546817574843777726338880031011972697131494884230584153086105554004921469888558497296846172748612928235710814675901011311672835841978755861017269944907187541866332191589248872972407011747623549644146155240197037555936708445157218869102341242069497042061610999591470872682064770355545527345180073373824971025317494959562702481875129719297774767562047717664109006357625755160798604243505369915008028130936215699591863501466579727997855848127331062569814680052828666090185418755042064032845081855966843397566745796526014476083546256411203662511565729525886259610708205436460731400530397118969903062901090450654168613478035044784000386000951481758462083792636174884695235546557263350969531472933070769119564665549823696910211254193321539289241681560620525158654482384786876556110757033760395217163540008136936360107509498281789685742730596074493567130799726044374210160518390037218980239253997816946599153804438003300304926544742891060966081140307677220659429376376785077404495493830190156345147061923106778416093311464669167312924823528447018315340705565266688106634457196594337450241828741290266459309201448842510889570071435714345329527207452748032064370599915751685586350874432545741370192971596162405540597723893098474879369655773244404394411975941025466957328274991681793730802325849546578219873054125706301364701532206605291172167555287050352629842696735940690333996229399728012500424063324490186772555813216121152084436893132319476674328180832319460635325021071040115640744218074575562679737274617475261877597862619869841983562286944636240097422513319552215150816140462532159589180416147319095988558068889793431093551014493320757019395604219949676306294227910959748484076503980517432067163933900916009213960589799060466666783530794925330164784924603755676183941797975219206939454130501595173775453163268161855095333731709393572154513308256135595537559754923516738334184636413239287111464800917708792695630205759790341682656294941365254982493317627351123604504499324979913295136149712518084122993935712559589924489750861936477204749637052050072916071164183583501645746470877579843435274653650025182012170433570132514066902727634346831500952735927999803050348201779816853374945773889906392904898743449954253618751741015488423741624715009041237276991873969405022902361212519971610333475770083452639283485647674017091449761899136221815999692771201271271496730942163709010233759653247290515412885526840318991246778435832894620078286539110684950748194416450597463686544706696342767341111503256007302295441104876249652762275824485041767825594787364302422341615741888209585101755199633890704019820288813773439807497807431556184023899348195497612565949317230174688789474832016507092190165556393055201077541142199051239041836045566071798445387135884426737904475069298986593154577137442217107878545064273292551676987571876874597702122542187564074128854426338342107928626455829837876096781584164894984600155491548960059208972412803043829080447044786593348837313319689463359434875991445676647954413891564955341519184976672475427860882252856129124029178590908480311606117637587278560658299716767675923900092381226207532617778186539459889875813578708460792269714934140036516756585042383541124522791686477912040678136127403032226953830140704158869160033739936858805454744780570169235617232185288214049611154026690711943613513315292107594674474450583335898439543268972134218055225097000033110227699094071885020365995050656126526644000890448388854543695156428532762491189774672434212148326942754172164587383624370409385314979191544156866751804117543943133814802053682562353865657031812911012806603122468138856385761872956605322792141206656128075433882251104437528962765346994109234137371621296432049671126461431475239150079590254216313970130411482090815251061686028627410386959739749558235591315526461846662442424901794957276919940326204194222793073904089690634100890497962844080688795014977095000168879111178535496637484884791998333236662901865544287490608684281931883557576501563608268580170254747466172030180391120576977468463382713363626282425780519066680688141608159598303891658870236830308121487781356692877054237921564158183845775926088539715754245749748330276159730245685441051046088691432840286710150975561539960902360059048580858776054000683889172598519667979782505208392532094836390708232440970868183950209729634041126056034372013325173770468249800841277384100960848384575059599441262414004398316522714337286372258830560774918627729497289812279495002887404804507249938010606703134191371787472750355383780582320959199829073820880795532542161796823352117560701657081226287209796905350518261766572018076124850129838928006491118628533476771908264633795035820089645746989293650932016147969253371281287199080536649815570009190642296295660581607314192125120273309173045081819689380249333493657320034890880681388983756137853010645832409784762200350236352094640572326572550813154009562311101191093131842726907014536939269064251839875720661134917521646358496396716542549662124256981458274028160093052763282016710792617666240785224842509516937144063338736820026123067229048744032027393973775640254063072657645365563899952580857618699421824241992699347396670311726191054350567596060878727509621231937147305252095690575812937692224936154200096036012877299404264899576783339483299824652156276945031657661849596420474884664034328135334078808556146157153438390189113752773686395759270507758138851277470426200072246963226117538582600046605669343224289672344612214037989768669383833335728753656048686483546553090458533494047810486665497512974965264140363703526104215079128005470085307426505063628661246885426216368659998560354556784641668297567856082488589569373022326641800406586026176524634005234215267758559733496725586410299606113785807607287569407344413616083789704195138235805074548193690236483836702942590304065211864788302634510729918766109158695939032489755186548886700628107560293274390808297780991799069722188700252372038196930065983025896055394104809031084077437036647553817163744766860741765369519519583895955452389945177189860190320496385360797041723706323425039814885544619006433086517602401483667752862872330579939147776130572477900294113240255854884098287133386672701573673691420341789382533447540071753884106135782941470048434352246574461236195990959785428508430488316135270211445789776033367050082001333268721105124697769887737284702816498086688718649818841438179252696695895197985216015621459117837203866311233987131204467023506006810240133933301974763204297196325253753908682864142326391296048943733892513858704432376178302908180617267815519335044029603410155071240604703956714666137833377614356203269471284377728726550471715292960989597616902629594595873027475904084471956954527261080261586271957429929654153546586084148300855930675905255977831008795416593865332764715402575263627098333956241279856854109460602567557022921114379095166221997444724655190291992050456717063972058053904619438380638322595618713824967192465515673238019246583993836144640983242730292882382364115225964728972326250218639294154892813908125071221257832734327251483825187290381639612939915661415790209983099570236852202040122981729109294148523346119581444607698898255167891249298963389015762388759951451849587601999306924755889187897712024550120768835381856367852393363802302380030034621038738330610687905335598808984801163281937313744593392527622554916681763750577809927375150921767203945961650600449728579268222457900602147089623025677530762364052263327876676932077437330157148375088780146833150687169796499442540634324257131114012284027160066220732292502707518980581167397152376402939771890667856349049109499186424107410199165182469922207612615169924527193753316230259621491275198499527129957436877895801690016911977606086082645167052672414414573982435502854933240123346760938784800111192263920036909618816523696933012644909397857038927591480404121291394819471725418048222572926096451269925942706864458368764119225038697965138210856491646476581296768460928373377670980551834641190184195618802830579843837733523418921651088600519693701270410483868813259032237562129395155260584645331305712058662755583461519086960886919971034128521617745647472599593571925936462446521142262849487428823932573615632951149472831131151326568982589573703414334534128097045378368359255372468374790730718980299351359683377511603214844616026513906671543280286459250688557975505666821908632937509339496853594987591324920230249809421579919857133393176366664861243504166885147097630452250436579518882123580870957023237127891343247800193573902458424308649522940628236039147102699068373338179784729279164472445693402393318019466846532220288070063481163327764829858591271082218092188337672075463251214922931988355919689711492560290266571931968980946063287898905834824963467588632311962758813622007445266497341882325447910513000006452133434023449206608006189048164893418907176401801664299956307510960013577829191169427936100615241958147736725920921968708784212907867822295945907718923211373349634271045955303500004234517970252865622772780390515906794809126532324804872438378667366685363630175465407018833956734303892504871270065416108788514278378809000653406146994152456323778435919832645500989947409715235581347007464046432548769543202104291840428312124156688470045951209516823160591698394854284789324218774662798194630732621236002307216253299104453269952986885701133439200522134530264314050698756652963557224862025253014843707255809876643426475145402115948741824805673437256025967101578164288842439406077771127141950939983214174247717660411261005790031077778503899739181175207727794940586961979176125891806903233930332322118573078155891613826137643865815256340370940782297722847576675180362431542084926693406533118523713925698423442260874775997347271512087170174185287209223857104385527362573385849831996043700721081581899878838954275765629482995160305710390591452223700211674893458863224621371716676481714565603722726785224476629610028973040537022353493206287863233177611182027223426821519500792597317920892116341553972326099744735653815809387495259523239387269718941280088327821867639600083518337290033509246413261567426752669327326256396404319804816276162062468940642631734857643531613334232722023207090534371793225474378495238657899438485276668759734241020727370057667030052995873321224551805014999018194398084413818272901253282095570360254917013315314785974046876903961970264821286946859367916163416097237780858500866158180582117874870601995001419504490943892345718408335547659929508070528462328516262213048107290952714292009161107729863871117415952991204818324644815542834024254931730910514954016110372997914165844509926287510329488148462050274918929923357058671316424604733981973769555159945376126824351828954032779777718598962546920611035673999586961572032248823683722123655789660054824330098008898008798819120217934084118638651494969296922841648922683299079997009231152611211155700750791104415916151760005228470414292758872283936731741513763132102929531300727960492836855137672624966230120590558412047312022505894742505197436668365078512944218786462506577148211130836088746979808125435862307958574060307678636552440189991724280412360897206179076061391818208586980104694121332939911328224083210210380325176997091307893799982644210044523474699603288951235336354537380069567949903553568642507408045874939964815372654748244808403281353167222683844639499463593415510991034684555495900879389307358998742530388294477119411179320084277426008779963697095353152122027178717019733622545290782356991496630425856401965274870468197063376465673749678148712734691725117782558739496844353733543025584351825427420307382404939805004496303222993839916646042266065166640608757690847068459239580170822121905910857412627411184895871882997475217637388176012466733202063059456929526999277647909115511567843012494581550435232635997166962230526095115482827432878228068551631966669274117050842743256636755687959811872662413140862750126036329732218189998327925630473142024972958037582007481962200346867847883340017262286776440248255817981572718692711372138711926344059333078135741726761518166144949161864169954403088159141142357248402454943802646870224553143460796112077380886392560253192305751723543700703382854286763874903849815782207494460747548679514449254782475119461233298313341933522480801036742220861603976143041120870277300142184313915027764922160117051803054334564421258586870114834792708623125530063565080972749955365369117969418820572917727266183346629023929237884377483483044695345404547965138165289630775657424939323053170420147806323493412926241155594321941719092256347371889314750873502819434708353596293126935145693576009083229419856171711233951591396498188579363037587377052433370375017626975200889434668696742028917658153024927073671889436052167154042800727373130916319646439947983028893733584130717383608515896860096313324648448606609379892886631790526088897085099285132362149175082196878598859725200995222179244395255883383838067206390768729689608446452374320708491564085312157902185202197911581312325531094014330864638256073633734133329909706448365870108317720466784262810180048679253778121525817747746468586866877086597072298906352590510150587260088202784356033059312191168722587321518684235323657268681406624014010136666414769529872972898139744257802966789391082310283919931561581368402798531157163628353144559385420047152560733719209953281351099530950620107473288116482851546943445422808796629085667020616693952946000429073091244808013344981895142501838410381549928498882235405133932675392682217111167842135932903221715765936318846478658245355096468801548251558640747540032735065320265803237427274913896624888411088246415977238973251893139325956645783501172502674274646687227348922965124007172577218102041303995637818351849546405328053902191006146229870571616783856310825761261084684800751695614980516055157344247530280080173877048645438633755372834954675835755057461361415041501675253281067737923635976259021321563392992089324502586580949971996247981837478430624878876002183765739799778871298519499357211747821035617668650104349579203794040371045473233791485256173685274337939006071719574539702571287528369204645341779445105819183570949665191853122741815592811415904927398888305064792102983312124406844741465947148920822963139117147938929422596568192788285553245024119971504347729658852410769047070150072526704940288253018212967477511217944085702733997520143463332337880007141413049484607031085173760939906353630872355665455299701990781891625538132051261823674999382328882234226398112087025161760589024194704352251970468800053271049021575151182382854901738976656585827198083317768455913467961352776054514583938868294488333388765824672140475295099031032307339885324490515583152284504825880633503497234736061684650515238157829149030983482603870531275940981181106004310034465249034673279053332919445950736327404674562537992074415366985248364803033850664804871100508958723237770716595767616529730715612556852553808505581367315046079413683152950593863494224802422588616008498359151797567376492756185445252278641403097609554958768090047995079812170338105171984990184107363630767220922351417218687218168866730918976711288727065835921495974944642983020032136380306287366927825044590822269839783918778932296060629219632765411939858528163898346219749247621319680079810554929399276248509410470789325819672756311936266621987418749965523495105599285522521069788943022437310659393895776041958119484282805322141564456766879086181335026875883148655947679493065823292773688580177846852461355910359319858401553493445308327866186440142119001678699833264923322731180524820926946239790140808028111179249113281360937374021585341495304019542980719296862261510112992685213430261903998357250720184863590457195656391017448468860105031365774565728179652233677615519941485798988621593042866298136971908695913076590375916872744344833667987374113262797585099290817933835260631396043247850088437467716124059656902566996612080161527038087974815720388558516509497493333994008190956446996911968439144994468349891559045078414711563400232292512134590621099328083067895143362761271985362076209750770147920913989322003203672390264969887027760308813477983859231201043103859567494533996279147821015027935015252595845857865406458555067140873192778776653851851619382960119679008382319582562074422820128036095992147228944374928825513655885482988847354710299729783007575388442643424029815147959749172737378627641579904710444437327085972851136391657829751696690776558702880688690682959344681963189049967005161433444712094129776978760060563929044817661824151093532651224278612384853037158577275479151020375031492385437715416851948746160481396096309906792122971368339933467327407259286664380235617132299716371252379983012141635990687826889168390088583015881680982931430232854959280800594684746351482137357788767470504308669322863587575543480931123149340889799692326296756524939103101073134835685402803662947486299366045324424738595804036160138756310304050812432910396418363377147869102728590954402400099913230814173514051174512145613500063053340756548611581263903592693982928186433380017508929258436148867439254835042486612287279957324050610039063366709130977758957729544284371199444705029066077751383916704848918980288503463629801440386552558549207517835438599273286941706836138642533016931078537488570429792315278850099546577003632473455943722869888362815249328902823731747097466182151034314572429238380136806991962253554707040495011525009094890433283983675992119502007354745103391110253331255797168266055028788551310453016377616621810041473401291485177124527956649780479115677722221555697767873463723173751858794541023542990494135068016106997915555745775345568957049010360918837967984496394687037195276114983845361386425601387590596593403744555639390955302721522662298954938896964411837829133157209339373032949976502160809135588236000008314214538337586314568749021488928595871540724406364531189047437646451376056296565658521321577031873499205382734335728383422810941389999679772053953213762720504254313680717284440173852579851638893007486273353672538772866018278046380193135347175988308574534914043574078288421596220145766945479839106637751619744636129676549234114241714945169477891370440919283899149497073253639603637407765774908939549223243086457186938762574139491322646841719415961671557265626204343074173047276225904676732351976727225946387760289157551779218893667849760839545716242608376884828252611137054796795077104896621542068979303355676816238862071799955372369639496135618395195274854523851016869971086610516811337302198324264734018101862351661004306537509387697707814796789657050433072060232321920323585374330360197873892754058912949700605465286911057854335575418182521159121065152976406533681104311162556947946669557505757202064360295204999443071527649948379216934647027067490740371815021637000168405322098332002930320758905672131771685206480732237358870329284531251524346581742030847031529503196593476799868416929506096248303987888205600248941895587987818754201869897918726083534583198128184738288463137553964119148245984519318493349204567962352392321692733059715977672684836859899266212177342797550476812581409865331863140348534901007024293136225132223331505096111446873141544902849666218675224665739504426250236281433240782646058035590142879062616298751153601720891501154834513265610850408171271821167304643206330114523725180267291217737161563448530861337532481240559603933939494831888272824607118409914238802706185129318509134886999107086630353359014420509141261539962557940871483440520575148180791909103387928740354701738210020188402433793335919762221422042449157765543948126517441867156654360238667731870814325896444803138554914882060389228920084709457991128111408296190166075505991007915064452537361765482781785970810577025253082508236709182869268824218835083103647396280828347326272346624667789831755961267826104566410941904972527322716543080983261177950943306663878944304565060336710415829498179175575146138498900973330595311529047123850295281556694079600434520176115921468112581511134011740996819060179603446823212136312007338695473624968127423106053196547577011888737226025841686948080675763994809979590493902881375793538880552646425446915666901447334712326216305143568750724710661038409220378613924407278083715828580919204068314975855614223692826886097654069684925661777292784382655331489990135795571564574045881065585661602958109358870774584003100259506953808172880821025805081615706460787995102745374301652035724176364762498782247549123870353655896233098974792640601304821951033311595068300460240532906341985030931396076628075400057196190501740666257308777790356311935534438333181127208988602667150709457833617618857580255235578972009488093527923051840978618092147619047924826521910006152012763574799774037984982411313958901439070561488421917287764235403948171592986173708410505697666154685216296060843145088847101433943336907851792422269192343996240351712585336636671191337004951725810323262086417165047853164702004086337017627280493824215522564946638802834643740174558420913033808117318019560291012397156733480907969265185466188156573552428606547907455913872292561965792828138946519916970876824909914001697452817629196386237963928706300794053676622081187873349673307169430503035549111135404881838465135095062912074267769358187360538588887535768608910212447003224803454172395241463041730704472370833714988606343018825721921486585077593469088762831644165783865092678326389222951458330253017664536202167551682095172173396236760436539164330583290477953406312220722147384778829085338178147918308557846806416734234702943164806649769050923547647852676705695009645341870718524498632126066692557895230541099709616023860891292603141889354009379908876392822446881905835993606231039607849768326437969167191517877260850029785287116991310124099993558652353881675883413671062329059999508188432869048552235750141160201832355029186343107358950322679295672161986338800389824264024762230539051449810218983844182561098832948557868895531611179290105601327920132100238605715606482682708937062124442559607960124761610006413344810520158073451757899752482729300720767251975545767804522031650758368962194173946563157130220483464213311722256357382686358493828096382718959617407552329755713251528035311892865858884601663343903080588260503764996027906391272764826626268742508156718268047680997499255847129877695403762529417421298114036863360094448094774080170475504749885594211408023858510887275269435141206797378273847235095443159932873854558402519472896635208945564416573850522816892870587412178251388802052179837999083275619915945628236595049152557595408842570571232540632845454404531138019946479869670357880692627400083013071275258052757417993945518438356755204358275455265129463003282273611496670230955947279084077544720968556270361868123925529932601798724018267882384891009660883632013659508694211453916235211128265521618496951846231430350960693641381783397175854518605871147982248499007352713201908324230939177505846653996320847975804382307173398431400308871150366301419671201656297844860353150552876564609212854712203906620917481644539814524791722215437063811612044700772895117307463448833042017685467063082298081298719121950435410497586291740966151875650957274673163152998403165415620592964911312528885861385761130387130961026438977463785798300694001257986606812806442167747866109574529731259093176278691093565305148002945458716431365316738021488035774079570162152077659275648548513782724479937404325787162690015295350992603291088647127980177688233501311069699471813525194205795559500397431564841076573611508885130682949013689222432867264075682843603761109074628290466554895956690888349870065597770592371462269897308467878936171368957139686579394416148603747945380540688981859732778270779398906491130722605443118937858930064732216604144222909207082427419995866201265396988708084111833805368996563822360059442688840163654874816492987057935237402289665457537463022097957768371165877630227708366158601986887180602043661875929702996175740934357708205214235683169127790937851321595966865507893162024040187222084729946747200244121219132264302966616379887215231538204486408366025699001874253350548616760290718625397828603297657462951762210244344512715532520493397723827952770761132332433490086767287934379067328195392995011117345438913395993496340852155149450650303394406612600097111695529788173293498912707810750476557712486522114338104902693901943367039000250988297044572196473677394102140141328623551019923431017672289842723759511472886869664600331862179574043044759766819106123932957411249322704737252628863777505044898780728575892861168955902072705034183391625778372110428585934268469566359604885066201580956709869468053686247741880822541151270250378700388355217488255149180895845263845639271728839898857565942424055783323340427164824806072135946107463735601840640637643112621502211515459826478958352396025024912645278684880672740328721767153375789391429703584772922419789212894225245688920997228043434476366209310438120220647894130359997578342932654489337186642884197152106548200821136541371504245099751837988673513482182901128492791029743027406637173665516028832088874857222264783577752681246474651257852810032307042937027992624946721913627073710191124546112464302749429827793901512734855691176582612461341537974939842062447522051211200863803980910356321535212027524018370606464130409590224783608890463376912101661898119275781662824767400446296702699950954707474863749898715238621639724756941884582232863140160105065616510977851970760348487784174332829051322126746909752439489658304300332364880863705831820591706771397752277564965947887408938230912487408836520384115968646971901992314075161918621770481769798399950622580207464609940660854359898075699190670061406389254535551527234932544399658659628979184393853745162313750911117525639065604659826904019986388460220931417337053655356252167972339680406981229377309310786142617972054709249119032157417109013707384325709398598486617091864982466281133370369201190972026891062083609937302571590141072396172509034601916974163152747047168142180549835157046065875296568698442258874361228495742774698521663219134438050103209308001756176563432525508044507525278662412159154248025068624696705694196304733131139387426344917437574262138663179697266047902824880791483867289056648787447924479782584943310253074370694659075011302324232624302525298328240601113189141028856602148693093666714241052149448766035233589045625658913665998970794949444162065560012831369612669604398240844911088118287337738162616894710803517104099590735363932181503163245080702038941893956199561208290179903502409576365223370923908592947749424790607712570624461958989541872599936776471209715114522967798656680870744295529727570289570999452112900814209718250137335633499929686408061919133431215062173065607664793511262495219845811041783194281603207945909558256077007588337159367710762547685915251948634033677410003912924913374203229243674382640775248072875264544010372228928454100398253356334017113193748191751603695406928151783003837308304068158642271058596503636550097335954098764985323523169639341210608896912124786858787820199390430543900409406906102910183025867582413299773121522988845154267078136441656645185681633938802609547927485251342694988745163169852694739745077098327486549127571831225615437671969340119839345476968800305579972457225646017042162727010428069531765575156266326934516352023958451292944615330344292001792680036592413859089415887004382498685922965633610607932762108934530668627850369710501464783336039915242167775713452196898766931625427546766208604500993061523956956297524874107310274266457371672529222701345896306096671182917650536386283898993451884737449388966788334487581671775722742901937297082536703754762325770024425304261592430600052651795581497623483098636570916644270331206803705412956314888080372063329300231497888277898828821596495211511602593319083781642915825061853558285739345055490910901921783851170449665097573209561700249447564533594532082633774695674057952625253067653252233795996599946877568103172096984690884521952409551313805158140192664017697912061363052015296553830603825191772387586957112202524296089823271247362569323638467656458550410769073446190335057004409844864342527405592676109047531281061857222362643322852122739971829656862851614271952099554180254234249484703964439381022052640675175906986239811431540261479150883239988378182926208888560688353510878045500523953648401915898379439373498673918620530644932154271208818457926697980346752248758124709307807130873771002828131752635785146492396097309939847251083016136508746623357141615038343781754590193214774488776039279817441050789178272208188444392510175366480996523192198719486401259052192503233476429562301804755866475876464122291993903348361155707317198617737214112816074105392704390145941411360045075677694788621650503940118573329809718207259339504787598016460155134360177483413405667892759950903625271103291727002090091564868554085474816993663640538323988015980825322189315273329696881289417668242260911044596069007778772203951041530701063422758981943361887240454205413083515376752529264543650208496990757669649347332109453320014621209504479849739991199617875931134508281130950975094857209467678389778621738947306209018650636003557854426609618894446678030928191229627741012027076923878874312605482759248493829512750994300140070683203261403259040709054277592439766118505295708686327021674332833094344466084291020779495509846959998333397525901975600876259798922638501216445592809221562333878179571606249812356460868074450411121171126484643803852397892066536369706254947494048351811900388944573209252789271269018154535301859624825181166012125980694892330185290722978722197106519103740479844107020574971123939440281972256207778384751187081393115565319824622977346320022026173517697693062418657028361329820182823575489876924678704695720193610143294793322083843639947487083850231865573754773188899999169404623379289827062051245743272130246264061878116428783525959637690397091098753636008253434284326264036523028604087246018161499098450486057885686812025720773067673393886419654379470512002774325915108364118884377595740640886999097585624387365810628729372691211951474458983080711074563895797389420677410926533503315437130564883282905077449046137993609664814757218304553014241989763636327147124392140280192741602855474614343782287178677767796001544961300600818604410997689709108143315293822928371024392307786791451496139088319561630246537453175918273895682852991483787251435224178977960943839034195511861176295548909264192871435893165582572904786339780618216265013897445609583737930249709898972742529309141207230743028801953458744410207366668437518048236132795690702317845620525319855115879887433876280638893704140535899863605823731107775865400504030657959761735319585119807914330468872832572797371100500901491293578721122644977427788934441188959952734414705611483177494783653108201542094017299667923505048696472053807684190847752309053267338069952978315154521728120627155692328891512055650721083446469474591220244214453047211816739759056128329226212207516772436111292404397836300335956520273577022694445445252523834407786820744552610664831658155726300609497567967403410117822804365372783284256312626884357184578480126641620481251248661848087065461663489890229779559439798519828790913868601294095859177987797026194007820098015920417123003495048823890576456245797276900718063944085000460564465549531608021041431073636435070068719095815834595582770873387151945336182814847566425051992370483901163054939311555886216490839250570603026146826692968669896688851551111485205084679514394757268721577702098706876559482181169830634503405856246658933650213579699584953142933847477281367009463057916490195883113242458467185942246875636324629902997629410122899020274947378593247598439842972009123161604389875162276976679727971361635161554545435286800562520185722323474525130826505905578169219342095594292542469658350195955253059453314457377409367619081203507859838464753795053405223302707053084887528614420486112542470739074788221161496641472671557179634611632677343786206894083070526815133710851628963803132003375869887525544257904296878929709174781795486367628685728889518151439925075610723414245874846691668686738317703580245866015774345997405380160358044934230467835173237859874487888326919809100367373879125787402211663260418258084189930329494335281204616602944531687666620378768477586718603906615806666447143927323352828264245608110194014290727804406683818940852669749021449692210931330024238381868278791967663935342164521114144811253971939504176789554341274555987000388846076666587453626207230450440425752980747483553661431689647889544850927749994600666878928228110607200629036970250718297020777773363170624651467582972654105240374016220736476744829236534006986198493944485538186968082819327800564638359459735600844456819372024268034329681854320058995816209610106029111393020447639699833113822115728643839971915260391544431299912881467976256243132335752156991251760056019043208192490597366520774380066050553483253330626819453145611686077722621503963239337478124237250066706739402357894780144684080966098927274367148982282116867417190377919834524506513149451388941857353919293704871542537780166881953020170337705509225994340647084120245883205532904445504833527765415859786261754361597383655056885278458973046763260579952313325787841130974506532111443773743453749824763649938972458234465554061154235661297959233054202584973669962719065566291165779571842929190119970131991891908794742735631124743895874107375677450081390072032628376039653863603032214975585491155865388412791097973982409503979162332997710282038479750517603830378981719626136632518005611046669306833902239001521403756089752441192033877022831462879232792698367215357348767760484416193468605420953274676755498128214199424547735533910578745129357156524664359683323042799400118248610185716679104499244425009800246933518081856654782787121556059702563982488551317870721338073827559506613418073705664089037326135706974615558582183813360235863300663939510466432025543129896564253715827445527021722728191239801110063521454581382824877688762295152164631280508493633337702738772072608407731610322148103228336413187222687168371399381690710072656547814392906419997478259545322752642190758880198057299212213957269121497919147529896833989307925984750788475309263467695279923620019047321506080815180814909234634596670373299371468745284558153634585992682910765227429879716294713633860292763613906357672926807173232107137001265824645552560309517482157509198447120391767534966970019614470591734454186190200162801091319791936559394994288728410751509696363591018707697734868591660513396734259013139990960230684689098267195114622157353253476709112506872736201665856426039680102819554683340389035434973033912421198828835344657763513584077987351529333566418741317508764864505096262737150689985156613391531084358625057235594486132385089190283299917222941342017387410226139208318391343496617679450057456922967667813664395661915565617898728680282134093085399879345443242316066665061292114596087470589836657711755337381322808683514010253081612300950570742757875538881935643135008277605479078115665665457597393855640005556477085669023894702969671130907480346810284486872225519290156394789243733976828081136784169227399545663737581090233407375313356509366316943576085743129182471590357907036717987692571350485078023550069519637805230539844044537406415490079653065415336436170385084199217880674570486222915035096466809924646043480077117439661563221254310957855948377620573701894864067762438863849338357815352153547076240049763317718071499928995496664061805678698590528374060335643483067698071764000449342093866406883250169854692349594701804408965817322983747046726057398314066005779425723456343457481799782918047005643442699800514197538475977567769032579293415009360084347196297999163425312551937491410636113956897167405410365386573040446464187809839701548132301313626135131584490508736383153757708076681597505870566628777128531883051137259670560487437326134049672479752712082673554576241198765154971805106934115909203438694090716915878674521968595221009143024285483132752251271226930711942239510720061271944102690000600924274097414720148721750402873638668358567523062575823299297463555630940248770379884300376164240883838556321984741522083775284837585634780736232268335264932662576906944219683540483529663145244986279688057231570955142903975734896241685137667303066700799154822474274713182833019111282825843947345096992883916817100058853078286233225812733294339933872884967884032301345100578219887069385990021165336177619357537045459908724255919524985647818413135199443139608279746860823904063179891328251061026507914415068341628202822924974701441878104955917630273851504417421347094992364555372561403604493698483605168085630356233030442965512779422127224575840295934158973707704900009552584562208242590388220717046179114236791781558938209560520967738017068240356775108466419434698778445395066424089251588601637071185801419448051987185128390071630703350557405302864778770555504938702605151150188845714726270469829299176182808800331127151168255845438647353812714606500351247067905196406467316493117482040582814480968255680218462829155258583594287748544743574931638324764569342003289738506041134407579435938725464271716798510327990021304249070572476543891943964153818412032450466039353646386125843212509512027951778187204773630553455971801526150265164651608995727600801964720375477603163265521245173156049638571995108516647834605690877250148818412681363274039677709510358042461263423740128886200300305044538979776911591180979619171586069648335794946219089090669700190594876281156569036781637288747137583659640917680740125224127071437468348806344031256485776222945611178554862120351822179566283421009188205938828616410102123321517852008046875830017173100176043230873726116102834388006877900729030166255060381427839049031102329737233781530234370640446313802190721646028408675732532576567740417006208287904721761383217403140249364585936269773846704656197498527178184282101309288723806416903480278467001270855254282974153372917859115464454349404741849131752246032702205537587269074004522769544085175853678972103202967453751862283978856368741454936590880847858766890531494821124230109508050290427024252327091450025915813315762771982638674821749444681644193044350993880614945962469255573771661958599160116221612336903421831323325269704108702093510735671408109150135889467668505198678145220644766564773964979249806130778817868974875396418782277496689004332475236767766479966283998010573659815423665850839598614774505291020462034159214827183593175537821426704839285699017969982439596192043592691929130336496300951863957945904353939019683811981367061363081764558240117133190586421264657651665109218821945553101749181852998978304843086215238824307375237798724407333565374693565745952541669635810535053507751409844809345294517040414617047241330046016499573130818810631643229284719913030534596978941009007761150964570288196879584490290614577184473244505784784707311247100945981230959689600148574838891575204999219789502570046022450922986009287338653344308116762667752489065209967943485628124835897454218401790974860331778950809890952545186410091741843039637197978087113544046030763685362377102691515565625094841023552138595318607158141674114430790959942027438177014531699625868511650430837433839979351532691587983373971095951881822254650704398954098403210281315744661696901901542427093772590896181646797378205920451049536416980610079151943330892053056597588152024591186563231505384282360266202172342995493565240295232599737254258921399024176107026565599600220431102735248041841518570336105722081154882436950075770394064995622227023661062207486252268745192878404264072354417524803329997040816585802820155279133428940246324725566964019521220270619736596608051644710804194010325158274443926599190009653731361005642771794707908204330669908950289678656612393575035815220127142611038325643689535297954906105080468181823473217601521240089619444122469585837939564731518032786836264560036680661181688889007837517469473351340953853676590248586407798026906946811493817010249228940219500482212490148008612257663987555811626630918536120048830366649846696870453306747123930602669630231549037776802518084881719288631726370961936607901332917967599988385514443550128006515173021116492458130799070551211201267526764917690226134265820891106682993565623932597332904919058595993691866004648483860587795460566023955356146690566643944746442623622958247499375782870470870875433014826319859167327646460851970182457601435047505710296252146463126347435092138616538866974479700542358548257766265106330296227388963324289127979302059211160738634604660852328126463919868943113078802840790460225611468429830836571499981348302454070464053454693816980390692731377319296421197923755737910777904484253364185019009910311316555740870058769439023816941731405009395568671770013807392838702139033809637519429978782500270582800634702520779057557703968873009154268387199894777068625688101882176269408809864698660427331156464083729654216895406164944335588229689167304396995857879496946241962602660838961360570662489743265684720043643405050964622030296334805998303016314040600141997970562686280245187036192744826642716650893490189919441190546914162584265558122317305286191327568838645805868668550948899732893208370758167072256824415724768969352698917229165645394634033773637651959965834989718635651909100687839362199819903240693248276583983254863211102621530075973586182271335192148040434844750869217882250506741967776613582111724407934340220296662774098693424569003230134512843751612713790936561421963745637784936480040073289052698415653580411221623097801277083379847861643678162398368973131473855576040654800661823689980885007502449920272758045016785503547364849952214486075372345063275574438573869969773059421800085817118566415609917254747972259755720592547207382583805863866303499406107319357168231404321924855419961547776411371978172672174498775405918796937933281974541100199999215985357678919068067945335663943510341003179457948019646414022840577361535829445019256935908677598420734520132350130730446025510483167168002622452547284241792558233306778182918368302391734077427154414424848133933601147738222713645038896682253725037707322214856373790215818512989571741462942253711209908107596684701440635848164838333025496642016407683096853506746052723633231781776033640065350406980642616744477127256615006139207617472740208342888665416224095523578151632607603593706001980350191072863253287424914878137744133425350889061899758220543319878118242545278154105374430802962298919427009326753310669354056859567417957621680937425916165537306806549087338295583923739852002358918061736359298202361927908156562511511658848480507386442106116928663460581777962047394545282835352929738244536712548304009365822567173986411805240591345365248119330199650046640868266413325331060676269599299402966783376398609917747644200756341998031513886707339463622815136631987234930542523586731009475839228006747093062543251134199140271007009288226066769529989396433514257084375101493517335168589955521974362506584934202503719658195435961083576603737236426136008549895808886692749157060393160845447296083759520945272021805161169098275001851673130852772045182890774951778501480864559209422909938916284698712016813426073745479497374109324883338953203340849548304036261504396781221129766042007154575260616613945878529427905823238388611027126924922179564358636401701359759517647595977198085062464264703945324729908941270222135668135781095207311646656676329067893760618677897675329366922606014251758066925805378746585415846135254813189576709275930418182880309944727808082155592631299517545972950415237569819237631467756874920895418244888328485397220217677057529815866045599186908498675437428237147630336631615447655574875573539770579282855612872303610184721262091617181737617289920389775093163065057532355372486357883706550314017585632427538420555714256447785165451502841842225965669654540778093209204626141511052094821261199256125527166452221394623581798071710317604242249503999022520680521597102097949742036318827582335039449666443350686021282709898466425328321274007262103088003969668714090115222541129650990724509206325353108946178452131119231527804153129746533473765996699604003483234329648733534672495408352327127116686558869883436028778135421419176869102050091838785882430944117325684499181170368004354563476897232145773486418366692988787435526486485055408142919656368639692531787610129910195262319346867888511019461062822083718189438954223951572637482468060329595678766070741345512692203682801114265233669673416554179379671617352019325412371302629999162264852155460290963654486569247199631451928416066525587994032832832112298519044042809390736835545139248628757507736027114868078737065518053121548098323068687790168794329437006883006703426809528075893763190346972499695055243414613926735800021391438929455174333101999856276890500327888028932829443174112857802450750860248646231944693722847860595302297401003220620361322393684069745092512886830220059167660657702239519080878535410079437560728106599221160722523843410667868277998057373293592849798711082960238098698290127211131260918465432466581239810448601884748099851389536906470338977291642429002313914711035590321166041502749696346983860006178462192154654742916523082108548441076054960792731921827580788519611841778560942728901863909716628398405634962271806873300443232025571759083895526636355688906452504142618424491072972200707131263140918762418655573599999416354734732010502619672456302447647558360202711460126310149636381725225099011777803122357791724424702193072260748592323737369147502361467605667929396172289651244647608737865630470306342929570793087007960680483197029062712710995142534302789492495628023696469148243366189542729362749141918880688499197811736529953250952100950205499405320495713846578147631645210907724195165905531983808405811522183721307692486354469896276327991890143183761643857901704323422541322542553123871853406092299213240568572122599705070309104309103379851590045247936087673410100881118904202375581871659548311896108243383543403124728685301176124720854960608482158304330044711713626554935734772354026624348669445318014518421496649330989251123716304294322882428420056452260909218850854362667653773601889106821727579402620572439241791895103431833981165541825145614075853717719012356686466815459117216499734221633622880722694259249738073565738933096004035632507066106955266093893801793892544290478532280904495682670250235957078947326225353707912089089706736448882224487830694046640724217486474665260344740644333934215567087918435071434030520018281737185954564387393681156305963094444491181113865808658423519401171342219340124371439989117703573695848608711083018935302296841946887930308190469378734280853271640902080009738183712238013621188701766430358510196850484042542521244990365721907491201180419442084230796157857014651571485954320310073821647219576564564933216489352402557224756959660835500938760074663744134274004710677616560091099874846067133197714150535848352603005828793200357396413641651832007396864712016820311757567346688758199554729311300515120151933975310355382320939491064571580900518016056040095025214278367460749601084760815991639486535212053236549576411910873985184250633998250228953882513703507012314551338423401154220517952233411330843433196689143563596833299846655248535393167174361308261558178125429556938000516115713629428159431658361801754924231568940756982702655427052495405429256679961530706200041583028774612846844546699709872942585297967748214796374639324067071899601164941784980014364065956130035045622318031508131096065387045316877208934458674900527947828047994394324415458464467228215508414401755752094775346429102763690350630757950925444810925477488017972949284138176300932949725356875566959566065506862499691897982011273555919425889468979202026310165055679674429614297037379378504512619278324002777266112400853250421482110287553004447932983114264415113734130940077958630710612632900044547371503027402024000782707971065489723650911238861330675218327178929643205140782344959081501363201331724068949602398396207769330864924149104008359549913961676875026481187454489660376187123027794075993383823624080139697175687927237396780438177817309556649702745011643600783935721430104012767305012349548860654994904666632476271892043995937832319027974377556951348533546395709907102859354865279339206168364781997587745697314350951078937883451649841251998271059499137814760603802854419455097135405085711130880945175637704227823339108511189779190420450335198703084209428819030749885858065617943502848189991333004463241975459317633930313237505168108316823306410117337916612714345130619285404715650486247742235131743325036326088113442537525139688949129411464505442780528200007016164527028251940647566576748105614553782500368945403267301747787269330496765875134762815198172214947607360507129625315063305169375014714477505268741448366483467783677040812837651752829964181218052938125926865247205419531782384248738778562618164481909460567047489851149093128929879953109385030906766042875977090461959846344118418764995040435725124498378588834007516861636326696637626602935690270365611497877625861398558949664958063177780880358110911674253959989373422552820030168342024701679399451318206440370988904129662184526608325163965150640216962408765655973914497810266116126796072871271224213381165955074545189818263059120875853829033680078348657847895333592432975000682896343125407245981961230931830120882458642594476752962999165308644591636573682197062992180435626386848960700292311246650575590022475782234809011428127822634452798757709713965780629079708270394850586011186044870629985238684055001928589869905020563673874196877564241622055933840423793745064974335177289547823552148935520196653573375352361914619964719156125187491019872334669554064852520363184511102707178076278597480762595712180300890279297813043045108378886044962971379551235122527213450051059374042860409744329000487798856998027679252445255124319389031808593564393140827238853838514905859830374156338540311318568833468297992287502688404937571740079103869447806299218590129810439101123344461777797460628809616157554826548776517713757191340886842331147204840057229752515295545220221215149195033780139726842843822922885511961070756174458993937915632698941447178853968577652205593513882706634281477050618897452066124895650569071494516339818804292175021608889366654080185571069250684865058864349675502892266795664289010879126810676366990907301389166177528772382142206535345723037353627498754902412404166871509343786301297464241660944241002682855235150751652170752886618572283804699188949306227126798050896777355803232323294493746665544108245965178596118230639207318549304106393010221956177729943528759562421968126528116824538584823570269482591730270500078118669385419280417524527772555390134620379068952375109778533286462028183480679118836921144674060041321027349895370722754648279784942615412020107516158298804739721716768733752251370397617193033832889396143889514173392621388022731258193751325172590785663196476682393993225651569228297239260660616729800760961226803720672283145806492659452973078547350618895425562374970599651622789744817856047620302880141711100552276068871816623232795371665550995080111977990026662348606360077445883917953987618442713075136821554299569867774419788672581634688718873545821535500413591880875385969782484544529117938821692956426614056308996060403746114831478902102660898015559832870413885158346551498404609087971752885671688820660919863994418645472219665271223511509599436764536136711863442297965156105115999839064849869122328515467174366382571494712882558099099474188730856953893557579692572172439866686461365777920218019344796850306595376282168760912850626919540762370071491792443165327779388581281940852723653863521308197340551804390984587381056072743813294045391013352600678876566626279211066338605241574141590080269433665560489096587060677742976955734845763260710365213499595588499197872179598748682922608848521732463725865206625760303835048258270137536597562368211011835830418813639292457839861890286656423719478443591290109001923792520513571330478109707173613240153568067356970986500869164881120404777859188929207754151094241595196956422400072655480486315537995035802585919672990941350154302545214583445585667790253389809218892908153359079269413834896864093189957191282703123247719845370078311147291475834106947625906593744994423866271953232136391681147931528532353239111617543021540565993815299544968214965278208468387468392678518510020350828724256952995502079919885600579417077228397193131464861326488238652066442673395130456111132848853663828471020516311633018385504334911320266455335172927813869302347094853470008951218818962575535194487443924292004724240849694917056170215291626813402399901088916607143731315260712298212342147548170926881048177794451328310810385657963585313956540967107735293703138292078827100378784723267359359398147288174786417545154353387573627538767409092510241197393414589535550477154398470283392823173054777004292199590910201673465297925557177852973132157441752255484593022262348600202582542530851563838088789320937526168947671692286850400878082324782242979578417063113766359409887759280716804893071455318885533243762722480699316981006006291545475581372942745822221474608676516445114266506552078468648740648327987564348867237867428283361639604752797447814132253700076306717711392052157655442838996854813489844703115918255008397298376996448283090689011033992333478546045537762377041413704462225947399599868831601292756588675465891035650868186217218124782203831640149491001299205848904337888109720523900631196595364403641022288082579209354030491328103235775961749032711703505529687253706307838221467315838617672533655366042262007299424699393186882378157754014739678767811363755193985126913731032212211477141182979886708621316781186496017000798532445083345435472371439442430953225175110019219203793091372146441816305376254872009106536424202443402976002792367962118152474067919495639585483696687663583271152155871809283035075626204378394544273762671968235911205867136583824995888617842926282060565190723472913237865223233080527883333566861718280870587171655175386746979475404443028121812857978650426717946088981672392099907666415197972951391742176332055156252597014162818458124293028054870925384301836223414780043385595665715968105404169112589405004890065956110636119004972959632931838806482115603416377636305441119022518816121782334887273264993315171410853567734054353158921844281245872835347056793836627752681316237641555727814430529973517925525433328743945220600780517247081776941628074948979671232759813259914418762511526211170992309851886590359502825015211912120008641109159622732836060883244053605203067560909279760401500703673085238102406507322946250569445881959998006541175660365247513327766749337895233824869576905839549947444186371901157267998728525135389001504333149363373395816013893032902956196174068344607796035519204172717484881525838768277944609238905803021132148745440633004233975075306290429053334937468716523341427739934979069510823445138036893313118538715219048282363117365549008066419262418851764711340540938532239966987049853553969680736718534527580378913910008441974835680561408573679383081705863452890767294197454880202852488259819511374038303546452097581238264072377402819051775217273910128106175369551921889274784100979010600523380019434526607171611179716549557134463046703047434174324424050242821185529452348404840881448464491004767437836179996687187902595353269745602115768209303961274488706740932167074464478549689053247476370410737679658703773401947147902209893739105756873750022541372135641730657618746846862325738708148583621724147086149915494337068459978975176399084585637377006952292192924907275679501190006340719842540890247820920092008956704863568226424028892848166438816327046778733107573412451835774352819260988113203340190682008262393548579303665029804601903227030489683079622845665513022509240466309303096049230573460768983956384585943273412001277035699495265280302200236631129924036313794592738068428312855465985638797377882559574296622345665441886493755051078282216999942182865942476862881128073497131618891095451675005365631780506906102190392520111709230135680842235062052895335318698629547413878460975925153923440403707650750149473636148250724709132292092087737470950498071945133923811378643664353669862856960676671226409582032111351240650827585606960874112632496069789831999402571157230647022490701412478459306241390905588861599057020817535438661292617941908395249138538747274940015597424942513958075926698124764550658244459785783405652037990525749584223004498309105912215293417650566631259682077004475775411718521075747913572700616031713949980638803649684631007422091164715507698468448817928365135758481059021134505809293293264261945222990195161756822767458891316263759662375853747867683780236372274717415253577438836232650650986630277250147821455893829901700358337525751993448201520645737638644351898463477060400501804372735504513273670449092732540208713660323211075612074377133324521863118879321206113643768304305855110331863637403219508788958927289540273646830215531065181756195435415837568548534910994769284976784874572121463719232068220409569059633937685400244232491304125155330387299003549375338238662541150014759577342912383355093366559010905636312101310996417828349207884558215391798050221796096533064209369571212316670511485663274753613989621320026288290246128279763461265059345510884810023914092189321798264830400478040839062698843862766988163646428432073810521735400795417836128453714586381973455577999580969003430968250676989602857919963404914142372095404867147829156307553795687523418582181173405216785814547217848398142353192037473266189962553608987406191063545120854338177890711498643435376798161024668198993277233275684678504220100237467013534453197440215267373678400828187975109907258232267689201571521767884292171612110854521663493767388056611525167380544764523230356860242377885526158951716068963728580632943228091119822471120888464612255735693566878720706016863717569449152312610654265707693759092602811724043001097012925677416431548205634290066172620959844880867327442059356036890764908429749987245081898073406003128667972806728596201016653788811473276902548100558034518869787657658054170457282667976700944503448709995121337679607901380086740992659915873230820332084254618844502359324422477778548962477464160362333868868298230602502497651632573928064946419445216461251747492476513831197399752699077703963954095765983735968918943548855052632143873442039960644497418364638127077583443129160284994641247950220787052073726183781314698758151426184548119243623856557310811575797464740318438338682989019492690936007271827073173843756123226406372989567169503759452070355858273797308994990232120945895581880246387156492509739590345839275957487909016098291484328583068789052124998991257150577297923306572961382695600305290915655769688966356450671356020631153347727006503174684384710268695935433768533827240199081517908349147276785679415889443263179182911306262442489945151716472276971918596522991258321415673111996314215217686248938238907797111530806501034698277251322910226747485447305323541568150538929491415957272037253166230129999871220132018646588167909095468202105506410696942952679989963563759155075115040752826932773862770725116787602850662585397298655922468930351630695864432329596978179008038063509697275302398919238035872176618277158481396937073350976431295814449034960864542530719543903195898303072294563849022990597095055887606553224276429266552235298146461381551723211991436863280066531739492608845794422706979623767734636319999896487122614937332394794161228842961854645085239657052549517205143942717587313804622245240004064518658528996991637727121439425614563245538267640589077801992638842415709913209312860453483661136894427929741275834206941585338654021701248192687538862587507757028030662177262138316790374075984346551202033096333867176601941720818739952427462624949548328813430929676887048616614854162929935829751429735211294398878382403261892700991286078573585802785931452047085226007201828770214354606031638947417699506321786022451310975764054746447082278766018233031213864908560182618651186112087094044872241324740571934398137813803617179637182281377289558493100498421737322424874425267816671805929240648959478565767426974496854405312958800811794685964705838182011993201903591372838302100330026821802263011413426472246187696179238963651985081419332679981872290716421028547808743219433056600282285762171567890447435539958227724749232005829316334476264509287202519322843684975442789598850287154186400478450476062658084340586449536565049155376675138391677312642525912963302157649910362520226898721268443198710606556901305418639301472934911714890041208868551012816151381431689761614908613415427346651674214015482563944310610359724380413330507846201861801397463459958908929269227784233449016570540304993162378156273349984594982838631698503876183776021924474882599935454312012633766881247028079365755637634107392330833376841286513460630664014111925958032710832363592197226796108726128653172954516868129073290234169192179899444876264056111090561414038468206532570328277453784270507410354660007259803703056052944634589878877438160657254349494582168295726476135319401083871022753790334454966194841069314202171014822542734718766307781759326347790085629513105551823587872159590621035638039699607838391945966993564735979232692666227199533108066982027789632352172100774067569730022273779878165653827768813960908699556874323776115623537029447773244240961095535400795474681897965032067713791178999970956156711900735943636557295909730701846563511912524691454798986143653011665915735341391455171649159303626821170094487550280926595322250012609433494435098711740449919266534374697221683168592857590507082205621685903564222241742416475716800493599872714101697175017501602996274418880115246862035405908378975743308399512165079454801000287209825087507206692812810941538420185511408840426685382355958948222291999673761024481369258875637430746973813382135989981449382868753490647673138443517714865537325686914637963344733875501103342346685255127444221020253178012168809192727944695776514087905035206370268043928705687586950957214825690751491288430627527425093165941416616551658549776199236640491728476691193963840453069126840368619821677852459268413804333980878123444837469484278632164212975839780230188708408160815694874056239089330520467574201926512961470246120342318555514656096724756833911344161818549947061198328038140625715073194954207235024646592449557700452721273675829499506795690675539450206777156565041639222144575460639649812970977769013952998414940542315540812410752051243855627315689129810585948360293054384381119287961674953269783791161541494594628539094593659240258405205590419904650495653060378081712132104662526554769136905773194978940030115596292937598908655370733809862962210139517515278225503470132945665357628250294100424911957100472363554559345775383686096380737987060832726832284245184904876814978950953457831701015784728324902322276177828300983318852774968058860420051026617305383813555811743242782644240734012542358752962524643654285077239103730952758565542028633113965829704282230050025326697448672436938094134071237161348259459787983625079702181635928906461858688603147574802251835356375640751681767418933608014896774540323902527597101708943471104720024525660720943924945917555846935329985004266236456633261475032632947710277990618919074641290121959474268724945360564195603018364052926059018248157761287393339628451204061992218488558350886995315778169473362134951678651170827072258086370005557210296191345485220798326107529039855389334096195726239979718696903099229923608429313695557107960631225188423191766349757902341481768678067219990137611853855105182863377850860096739834905884978835977499960358904142231848274565079931988466327932243288422950077213506784180823069904526138901977856276026596711522181651487464012820863676021678358140482022753974710977729542316206079874998210979135820349360599805750889809550641389044079647450557751320307028159331542889218106063188996806578966063248956060127106413918707985093750749999457417931021366706178592388562411848063516825582400755417635383121380871577602803981765187725052227833375977829545515052902949572121007477017102371027213778134653006972527748113775599661907080486449447391466252296463775899896292359045477338015901460105890653758079454242457635155314684463608768546567993670656455746017066292184639651321189963837253006283809836541127284763089795950972902061840552125722969040332497693247464955060694798619551181417397166782900528689520064271035429367556255730842197872549581592739337986229328654082887829208315262715018930435094437292789987317913627509767650678131006046553638638056426265824765325410353294757524869196259017868876847629932518988627574363629902845889572958061299997378100425826200956715719843052439988047995687531058833875376333759310425728360746769914697594217563250482633205099018463902947633502312513433785557371644264699127240317914177673220075997299004904452391141122913266066144627986823075581820460527330905183098176789101238604484323339264908968206445421031233234603425435749042465790140892152200000566537996583961703560456387760874795050371791861090903023424392714634941909920399519489141504961173624758686318662636509101880724483625477810030117457729002339998417309302636180311313976103936947164638023430684042305672396135436203972260622801854978055680169802126575548455757952003669510242066009213103683637242147290722803950596436793074140154816084062334240582436033852379137621768512728770917462693047774986044056212324330316059738662940772209588338864785952341700748969734062446975089200319568029794245223336943844439707183207927579538657100676723722941838897042656330013433545841251654126514603699800048422340793012218414941917613572587221549261959724085662297977497278683848508255600900596191415030037027030844003792966095121684440803393845802390236426831182869189755482356819650011525303363984667840112827886048510876043629335739143770323377153626574660772614153041246167941476165107196693524269829866478075744200469521964073666098711550024525419234921651119806759249510166161963830022871647609839939869306345216779953932103278015814591319541787853289561702811929844265671973046789361631679796235417555710639278323602312896666960686639393829974438717780807776688122140799541246750272989371990949854705881042652353115053022821832941009989231974583777948719471161899514727305785322924797437053664807420518854746768374993564044219744756526130584474891404245589037674062979641136394083077726993102115750650783968710661026526559323209223682778855429576490355934067961820501247096163732869393816219369773445267395293684896377862167395406243822350034740859062099366772816982594659738212655456303949878185590055899481353541344241704037023398999865583972770222528731874633291059478580650679103733194904695496760099427133203409887798372522231866754173207925580320641564038343344441500761641199675786292359698138255688642669112642694023503882268997123103373230548978631336468155726823472208825369731489290799209163399509363035490476038374196335265654855762646494889315610404330324873458361191788968949021294351550183428231947055948075475962328861894617354028860732664219588502196682806910702494133284699384691336892712936213850570761799696795822028886588853562383741362054738896856683864074394122557056102748385152733902224986502773790433871049601069820946879563619645644190668410859661667235403299162700233278396816752111169593412942076927404968804892260337673710338617361781949942595038280035273225631351727882304416017566671018310271317110397747310863297529100455168990480139153884692388015626618970013501353945927668070703363865996626062272377060220407581997635796937425599062695682826591263875422472185151081206775232978594717315304564635884597365150596155912236293132976828760359523017889508592888731676360404325820103428380967217125695637616430031563373260089231904272692045378027466141259123618534810033776587524038079915959201291049499931657448741469174669088881823298188333766779280753917131697224965114682859461971432976605037180645837050190607199699506824863571797361424052129320098993346266238620641967322714744183402950920203423801523016358496641713184730257438399870418780224212520840660330224295585612849380276066947711158308028020959190543788465825309700258694789827327369459497690654516221812472036405389642783551722290166855863497341870331605071198157596491874234299647089698962920376414380391983843601799974760895497798420309767851790683020397490806604353016838374776732353134723462974327285024144549574636948452367343924432246063887012195166791855370208827880120224114043032564599943821106370391920796077609989038919398260247074220723353654263945477751575389575904683807390350305757527683059883985357986972933338816690994349853799420840600388627095850584168877678276655783062186468557295217152492430253970720662144890847119751255307353613483286818947258631077048918989763705744510950929532492206583375036452818804152321064085323970852136417500314448296630888180470624453892967254846958405266364692334557578527748623932067348748204881084819415967862401792558366333896659673507683420756783223778667831609790582330866054900499168443738574888676950135961296970371844202891989297067830487195099822285988680009163177283949601484102911976679931536151467242303253143804428464448424635252902061777170606160619996827223751248067427438848728055133426175250339943844935979545376481311100907759400240306471381174183714707584140871458386383041232071000401501285925986979627233031290603912492501781120026591053314044182591789708384928857609296210809659360745760573107924538614033483499178556756778179011627413966896267616352838859595975134544574850454282510537522969542475135998829096104984334263445275880946039721569880700137091093722976489179044437173365093158279010064204779850060078187791682797132173478874994572875399470467223661195893586678606592967564108513224724936653483894173040546445451541599079485723114353749358308086909514112097178201702790373714867400847330898834896373602003333472185676609983608804692855434616170359977166426355036039889724629365189027834639277720721357924509519724175536321512002085625956232446513637596935171262633820771229192401220881852517506687782632562682192664451094414421912966581740873451753642089657044929224505250334944560792856916815983815688783895482552485304777877615065690325987944065777859877893905400243488451921557475086296807896098935530554447898532597652699167416987826983159001893760435041527762756111439859935927481737906007089984444346973616485953299780166083414564613436827915064095451632212264005129862097734099923120675136488495758235156764803262389065281886208579359203882081088304955848898700473109398087647812876872232313803759781189927722988730360538114213144350878325456765535140531201518512878126726882603803047488999473405615945567787193757626222922912710171022482008567631767981457876213127174641154375197414836013686645663761291437455190558968995320107495669788469927351424409057969343107342942318643258054230603264971098715655578722538235095737176488564092837593027676905247260084368724963109759992637219719967025766080362142399321187540301518909186744079423520269911313861692819650453635531539675358042007071052806298905905065841787030385207633840202441315459987146214875914188318551943449679375312302732251242351240050823610067954819757355598678553163561193863810273973229138393390259207811190640820462023511195115719237357423618104313242039010725502085933244510079006836417042088145965094296904313142180422925168613591911779810021456562517912621005449295068235414336841736640887197372869989377232249985983512981425338031608710317068898206267587267259067470904663532982548311607008965760416071981887356365326907291154428058381835600107329723868812586715406516316320790660268828652814565591074951382277738700985105845939203134581144477108100724822577234060973689250269346826346293849096894292617212112046126210122192202494830325227010121820562333562064245124251366978599259636458262801176369560869673927818996150296515753786563488393887064060257016841843403997550309454420783187862994447284266295067855919552726533388145427868501450227523383881080414924272123118067435843999189227002687333097034216712946937179980242329604900284325310385260214307397918671211358620886337526058767286477954598528945696653515127947582499656672742615552675481600003043187313029528414097746162845954713936349407357278493201199252275007508999590699912829224010672998628098075036294770788915330593667592640551751785441479827203202992560867793008655083547763358767811998283476774660528933379176195861304243927034178250588801046738265381828649075209307406511615435483158218267806510747194219707886219243112390697955514001410156026902680296721689863454581467774574389215866112783587064626035553658043511769098483766609662681970631282020166662798065793679420792229818680218679207802819422776645910236869356475293858005874579165839835862464654256307135918637180562149916254007872882061745371393915286934094312844731913885898601776286823304522559035681640766527868705773174562309346819927811024002814494644315631996271777508575490926782314780711113896173645301780673912078586078519533582480631725066498717131046985510954824490549983401232434148584634941259277235388530164255615672509300149056708821993208909204704424183220244629418604853601970714006611916963115657499401614213848522850812516407442091331378133297312667770164584618409170952394410652056002208184798139417377411293506332029009117124023861978865617506566521328462819514247623012691963406460276245318910254013578393833354491151723259570852286222797521879114231485839351521505620303057813673507055900494885365012876049741340532165857455150363268596364784208754907352300452814826882653475613864248381138701193249967411106424785891761924183788135954032521175920667149495357094585242584016286572024506065653945275162014522653800465426250006886225523618735795782031058329205207406551671327113163608291751575767394969968516561555219873268311700447543744717134728103053012627069444250878877768863001466988058903565427150881364587818457384654379176068836591767352654183567388064371597095924566494104506119663351634785171329810449068032343455284398819206874011343079532564396522671657482174375600218583820562530732489999882076504761118835009036567577871465190032147650601668831171860229786809010505407029592197983479285396201885683629127714281559457136152382043656472830790282065134853110236812925519993005285034657113377095951566902980661682605438129244041094272411556244493962764538443286566648250400109988562199303495514149816655804377649640709569762290036509068401949398965065796988226006976742754198340628832910743619421151445668983292014791238362993135190400290931202906854402729299729010477552112601688897697389055498402093317277933460201532896364085954405419374569145190665509470819938767819407321562953177775897399935385354420493831202949167130757178320918194481028930997200029614637363186780266341237582299438849372191149469807626183523336614516514779647730219220042408684000375390161497336045446829976729771748598499333684595501686646116935097270610271881458870397533668155973586456880704257023106775125591887071032804327556970212840458670179616730742388127614761158016681873212310786384770982661821637570497623834231021666608476754352378235441986754650510531225355443221317166904525191383848159016429728728283976227160402060598342472794973318567225892907183464954605430200922260219947446995750705332044327057949546893409180396913049889261918512031335434669017248288306711548432675368571245898079516547297529180735040175980143188654450588573658009844275212309923947125791261976381761407284427267801769332343931274929301808907807402982367286433082732502700106768833816283029020292382322650692362586263991279977962419821249325257285754875131776879279411770040263085133514933324661299816828721335523618447150345969366189371484462753857550663177726986334751534099756908723466207648427561794469170396248374828757576827236627533608147194791736808197075127199920425800766713420413757120265593339270237455239677629996635454676891658728661952542808354187573194965259327336983361194368705479819269956952232997491173870223101021131297776347310611394713069958470499625463659381255330518905897552595004105436347245726038043847681762253918701757570304699122217084743642020870172803913346948905547417607989183987559533640872370443451423544143366791854597778088327968597604907968310268316907951326835720217568105810392985308883109220615094818312970778392624795923897457398766007668365985653021698737557035492716509548983445326565607764775061582280098680507385861136608867983166859384110692648607859717537568817568805908632771027579368079253445563333016090144810282256291328873142822240432912566605074584790048677623755587726276429724493014554397742282096994755480611133568020443466184857006472377242396708236653452056225786317045421788565275855329928609752221044475766368274864045619445118879466550736882551245153740984414601230231114000468848305542012259223030704068441816367093602081693530817524437291772551763012057688111072827180578921702720571376417780705117192861296064870184781878463392668536460851037620406172859927800744550285716153462039755165398294631024884381816459148982727521836252886568199245084086886510792211264940125259532380858505654450660685314011850664879402480305697826139307799334662820726963672131271954958655943150132897854833298507048556881681453226618209025125083685894582327862552522283011327243667660556118261627447977768087737617203051874039459057706535689424372210275273354914389354137596486359997111075233396337295378199924320075101191283085299108152868195307626792627979907974337502047552312170089467679251066569510429652656178120765391575678563843971146040750591390120033098628435477392996696499480626014693911077931853460924400791634626532083409938021680137918201400401142670262679439452917343869777982295736479951301712656264697754631530653522943989346098276480504384034130312854110076775349420716771311984099487910950265182733722289000975774517996722982141084085383566158305804555483799258573736415212710583710474692704563796579549089494234563660223022319317874503797389530506774762216991079356778971466024821853326018162039108849429600247393342081088516380776065118326257489419618776905281408653005042092059127417633354799606898971284634175471676036633681795345347127257244708357520717002350975966262964158143653065576254484857675307443357379862394507240992687423644344517803771375395349858503041752091277965790556316457979197815494410126091563431710390367277897078396898932237191750118728279992385371513829467252516164545694727860520485226817879297865752708664921333690081747855254121555520777014586731813960875935740942436029572163088716309888137952536421738976787277086838035873369270834852018156859150485664525574069692256847513564847667315382664499445590504537159340901444521615025588880321965642897127288970141627167382679624363077969731407621362833950225812966059050274796799183456001190988596863464921122404808085384074679928778441793083694300169800120688751721631783408813224540229401517287136921389006161719450417471236588676456693035069207149196285547821314494665731901001622454279207435731273044041499780612632548118454453462616917059013757413919089633886191003949586800765441558972390798481686911408900245813307353902296529750199206298487253488057677560600882854309035677896116247940800847138043902825608451704083414472347556065639108596683233520728668934557341250497823455109293643397409972598808026354585143602518642679571755895775855060671734498288819517399218746655951260320815776937512966750739158882278325041832283494775166851198583634954508204001852555569249229756821849663822457056157225912978665008895672829463587475022746023655551479795724695696254341441224612088251774062593386160311211052842634681994210746302160949003835540584860787305287859972174847164291706822549925160303362119418312552112230786301347417763333663629219326968097189527125467743576003894510089159061979463350184844193116167485847544073955307995138242546152280661591459586543143007963420625509378462845608260283345758310172659427701815682721248528925283334143785838976982341258616664938214686518408470991590025411469002261197490177846499861645773016724109361708006225068117113021907981421962320488652221045686566934734308618882498622229991934463245048764382758436435952401467135512550071938405831816544451082041643499510794034146657943259546430215494445941800902349531115225012787127567086307634205217948107256771908119931869737469086532057894262083805966748296529188903745374813481999581020682568097290984588356547013707029250082975196680311855371333061815698280270907631889242391108549444011339263811524615403412471661235122455998173704596696554020528492257407444334592999069435279573130538225089906447863263190915733575073159419481796732388602198993735691414228110842327901791481847289318626314245389535818575503941013796786148463178124853879172358914593567650495399262250830220464295595546226582740659242811670591272189906718408499161566604874785252574705158558655454746958848456859647339242972513381084107585780671356389215065055168835259349502984458960504520438998932926770686436684209691772812955217056243669652214898462006937004882124295895951138427952396938902940498672105748057297159533326169447855975714215192098712681187468863054456234569977157011548975312021435284516891765660177408320729730668988391213101403454283274451798026028363161952624823351734415684324545309221894887232360076241383010096745646901182285647603497053011312810807811374928039975802458706478667243747505991775364990960989702438258627668142415800141050395320615852492092343618360342220153434387450525418371415800781449204622291585134687868974982774754411862722042126867339099517246793261165345249438547894868249885631505912307613301179223213766294074523836390931474067967020142822592324485312111981350808119867597563688616443818447144789174816032912337040288350340481324189048390120731198156112515230487727835652754534204825640776501736793060105473566346902494465996514798847941916971351097773280526466547588006840982622864516322062343285323215970699976683102047909297340066549713446951149907402649856886492287966315409920057063319245447091874239922132188448371665019200772084722623173165675717455854507675454683308851760232231799574471854622038126004898983204193919046555298178718437706152130428453513020352708417256244954093042502782511450989650161236277671078754489508273985733930608638055181146186616998017836523349501246151461115781164569903695774901124743552096770582955407889895040404123878385894603025498499800601210866849515950936200143670958738072413922552905522677283853601992823577124679051863116058144004025592334303774532626655858587498111013686645272037377363538767305793776680755183999638065882161376068783189702792806322784695833654249747714532134475029241279633503972152666938757267304220397696479494004178091155964664354423807459642959523619652351696346611721592654661737822123089085980598984656876471747126624459013346898323571012504213522907744184788038601806593832635247874674285924921123950781637044730719121736446423037891589967210264441901095183430299040124387867204701790420776718333401414744751022460217439293404195252319074737941664866543634514015556902294765090827562861362763633401757762850665020637711698496285663638050429101593017593259315855890018668652277806829047893908775235535908323607147231501884222897565791146449993099587279897936361155623125140477547014735364185216451181333771370414310487657040779253757585402515636814561564702505911418926076031211218077012362369649413737043704818526478946070206575108810465595202850204112438210192597502990272523650578990746707120220290152642702658147545260785411440515139238025381982336640971443100549414290220438023522140720758419904451937548235100644881646641955609350985731481628844830093711933184170207839939137488794832284487334954877304054801928617061501291165051875604942490720280371803893933098214948502976467920503355867699595776856155591149938515704212503114181210977235271219978127476843565468241358325929734000811835594398802527357091795192493764797377071365707662829638310007101369802710727206718015765463301387910203278454156968873789127800795031796707636209768333442243283215522891825734358228873676902230304829769252256869059549671448421869373918850048666753210488583193546849610747228949015545034235619810463200349436683701629367337895704548742225357365001182476619248586149862771000318360070552129560201616750722331283899650025045333748352309165751028812831565221679871423156418742528756067766715365273698725379281145130850073939746337098805901751100354164968534675879345660966621602816641996654972229557748299544342852659129106648778079709520310355052027029881800068990950371557218435893638323677949153406722990650522962396478788827402057728580464712322803344813898877044347852863434414356789549246022809770230743059160829778532432422174084537864580412569358332301637159738464887487324880282142486796007906888726021154706532521021636596760330123727402568834211558915029879482733479704062094431273467350088255254094448007407985408667254096272732576088070298069517102095027986597676739307650064806720569838070924290643211134934087483912280881781952966675700715698602556004204713573013791999918966786132601500485578160484004970927239620112529533279672515863659421547474184209777229777344173244703961200715234675405742561821267511206939714937756526646498053967195329797291051872790487022373728339486748874873025319785020770996466901007108992950187129894750339766593256630293691654357994160609090541940604728722077272847709273443973815035420397209593160747069281185119930985414733244361759118903824287708125353852052888266919512123417901146672268972220312685088663524360811544694505673547465970090660942745852033655685112349860445557570581553230731193753870586575747447076078971233696577458435496239793792936483426301574935932869307497063936532057135817724214374872860618700369123459485383626729632948069246990291600391510479676230946238303239081170556308036026911518558635666637679889375565041175400308173174197970048233426771412994555134734845246070163636122848309994551083966113782583271121351915450678112733406560775138578007599260815444052614111244883331886560616185280267472084835077541670628386002103265240065213947584061621444085572198117041586226786372155525934147982602514520001979944530062035980460914750093980336474020868419929397488170591725936649820309740440326588465132084768548459190675432789713027053240906311266817597084135791453565927661516915798783836216365889493590998806782997433939946446571861301007479744769148006872889877697097641928610861042195743107891304430553219952697662256169852916596970890529207409818356713407497353345767197172552250083627295334711510840002378356751798975081259903433889508177868507640749860386498268186503265178565186889700030873351437945555295721331718325074244640806836408670964160701690301643108656539537292717912869727126801681316947730658790526645378852368488225508735680907531140502250141380088113735186534232583478003265141242536305815899505877545796580193704174161016800480026152915030429708657192972111990345856001925810202041749965557744196063033699803245119865714048568546745150182338466037062325484372335814799668228827575212054739955988020284244032753455720499133650837933146576597290225384989815339684579496667392599427732949779490948117762579570610187460286944023954807990248676527330889207069289518666886919024679549017711189944650841055576472563836252666408083416185783568679205658760957403095838274441925202251901074475260920042639633919628678504405160670940475019476533339661184465490975019123505506869749077720503993333636965771638013083784751576142845807222415028639191798859872716457199362152481356908688639234025649050960682923238550636627710567326382476438831776640191894039538298641049141150029432291271618693941549084191191125902199539415190204631074472306547883274012685616763406561457227392079277779148336358551677417931485810411111272747600368597431695586475454319464363733506847138849715035208238069131238998146387711905011370563046555094473329442020499172061142920230844640642650033950090521072191401832230947943051884991595075597664016308066221702049489103118953379826500198900964979372690717922351743685986898587099784966049233241354879032412579799827487365652062276015372567820130817984106980507508372258886880642874699541588105960076846106880360259352658382465239755540855870425513703516171615674119897431685211497215056053356761400061272751766447325285505678044675186226707214064939161144849477205624920311442516103499369770184346785601024305366258624580319079150862969030017369093147642768902541287284421595312199508391906917497363508939002720639012047877089477752992373765831705257350710896115710791355392383479441456683398400808017332612681378116982040939010022605489050755750481187041381077308882306604273674897486165615680888877733373436947015307734976132813498640668904964303383945895929018057275999324153927280718834990844320800802897455569190875901485305912207542364081736210018573163932744320467034437488726551388593976374516750046265977031486008243479206035242344279601848205760285496728019499299341783708441435765537581280069848949473289615471115348500606278521449746151827315033806044800729390054630548359393225809933502002103212979924412549598314132300668886002693950112812191212456279085147406964548490101355673781706657409657540799224903562064911548237497835766556727117777403246709915143817834042451901350260013066150527488974850208793052028787309148681501365790993721638987923660853265080039117954498709700489728574573690272608421680168839557807942625895059861726933114709404024545506700016242511755386697941231308606866454352747247885496163237353516786140236565970438630642442741565912188687182742862446469294529993155025116168561939980984972945733381038670411128219374317178383880060161550194482316157412027492908323841775958064975693797881993826031753522506263094919910880748261896508864260470752939417513920512159477442787712573579230980556023308598017236332353764720678517869565538061111686696659982404782883754396200620668756736351760796703909417305114933231360264905513119279066610630827600978030746666284471153868981053769560233692695329467628683694108834568028379925995961057029604134087203275658816991855285246662760047868443353801553317139777038527557022184378657256681935790634257959830113479294312257962873778088222541337737123941630748956958023354998425108380114730455658052594675447236843068360902801748856518498045873937396439881311756722713424007597652691480335645254142503692743463548634512060784078937199685283925091956777116961013338645416509539703634197912640205390124376462152122754662456739730033550259867771841453429085619606558678618738571995222058752560712614981405995305332260041913293362403833009786467945592471102572939416110016659737257725302192641211001323299419261032235348656143569263000447683323815176358433045791090576354514302180326229846366584808595307662832608766432674932705073322371725678326174201185267779895267377632717181854576186314931108846499630478137900264803256518089629302163211490187573838666950810742799523898817644023812992694313851601147025201573584657767049282186434522818728493064375167873612566624840546903736919261438735973100729259436787606974765703252339006493043847194491363983890336909147855341150995522369352587805762994961634383942362563522884123353180548768763554669700430813911677988656636922362667787888673719399674122343091417484786290254958868718946776573679129464462962079478861010476846177772918597150608536743276337432016330866769754972956174087769721423566563562045618659461239800896256231588479135621786295997111570275523846046158016154381536941036327498865529114805856639280111913147464561069800850468021681057670815644060880323746624953245164837269201677274603124595768629144046036447210807701824772404353149944793483628491819604620448721763052039246236244394463296448037368468698620027183513494301312658571542562971797856128783121774677965129974525789291842678002873669197312112101546925847190922462227690538729858329126207856488110295137886017216399750811131211023989502437077135935308037810077854422860495195937081459356749634750877232517676585776985516845888888321448394975173298800014069093602494704843744882054017842957320503713983123812135131854547188415583789103642874042385630571775155121310863863514697411949177813725764378529762899805069118004644603927643388868315374001187819909466188013099217156910478772398708699052811217461415414433988263528874487041658106789772773915967060905029400040838311570844863986512107044510388592071235010204037710149459709057966511588922983753072465625904337643608593122201585479921070622871007258395091640604349454472917546761962108505503197876870594862315770238227140941979234662240222278748982711687710473202274768662554383386571862190578863033887149431867060833267192822401708752826905823215667949389912777942083175891831673081233209707184821426299750197004501949739189965627554923184519837115827505899477821316635908290130777458518680299323146951102412614175118559590813238029099881143136154407552307092563315298326656015086799569076035203366731138719448591918344201893997810319125664406962210231297193423357145825362211414133510031259284704907044229792473103248414188765885304838086397241478343894472083683206051179236832533990774403262616315617432896305483811749993378765030359959681596311264615061941746308048353856306053343070250825354915030371632323226954577759079061251522197200566889448106803270487941484404404410455051900856233255834633226751769202847810552257894043917309411933318342981908613037010892503049116307846710840860560505849595623354172371362051232023499653233731525764847740852940984624896835063339001452157727958284024882351136458661687461073929566322415794192658869850763209092388772574071077981688891576802524621890094293381158959444956840531243433695509934479992789060450309155379508075511243349712341741761361293916582804965749968636899924352231297324778506624362622167241391391004921278940000828945480889247539793090541477338885644377918202629097069299105318369854418282763937422098414497455941287826185009132089354812489528879429726846743665458887922603880916529481879003654656376176614348183893558656727999366596088689589794541803943327908998779629035860379890757266983651833738912764172683249159772007003770517337705195004052948934730589249133161624378890165003599197677132434888779392490269308554627886612884010135089640742856234183374429502517319573169578757386055139965574975472841667706988490697711987665373930852928154849972063736985818744789037918744941786875148827667026740590023160282658957851291726482208307404340749517509380262109089400050776111429803303578374916460284090705688033553557369913920036188256351243486583899725924719880790527119997191651797788181841683134235730512841889088151594778951060955208158866386170099253622717614868934115371659378441272493189306823678112338940824277914395621198279532640868991830071496157271558354516381740378334286361871109121219214314466418115255340717168601532839909179225098825559060894795996326025565402340093449197988047067190542178032746691299405865774617237401365695985106961706794977085997916283615952572357034815916208991079412423616409923470840139783961058008645242492558885463328796371882217983257220390941130816570608367037671393106503276440525891501875041285410576016827465767022806541126174859391037097783759329757721104092935818886993979192516652075475492254426545833916602552838432894285558199474913288243481661896160739244449504296136116435502666826572299648964007900269106525884096282195580729613377580917330341133863025323393139452968662856364845977071901889532117466651835621357368386728586717016071567335447719270998838348270320365800043860602966330731950066808666762560311931163564399811414752290154571786274753601764217015414916992882251957791956518471413190680683495966001153648238438816880394656113653300579242678244798167954734583230692757398299533868658681249257306278520439382472817200081596117699354500822499485674769191875575277262208519017574870027869935821150295639774582035566998232533561879542799912240052791850277007282183355581639301760867879481640281579686026173336622404289637634404257588946033215218768591735376487356043650047458970643380466030638486681544190252134571568588078595331145347519824783069802779288974290777222042604027900021731920460131937863106619950814013490641417237922425599412597627164433815665566810670187774157521634959192801374247927303159537748767473158041628460233866325598931815424600638053991163675962594026549026402245092766713354667094889017415719816325963253928365796393305954700118526827512679309658892214862316715355818809429763250546702542185436738977269244342690808637680302110505108070115184972857171704522227014235797742125417406172542363059397136583899437074496546328005479459381578320567994896576602411634649153041121845229956567758313037592135078538318349799852154145885518974400747899664114675475474770083298972927862555619253737257437542354954205487489038277298006585675779098012094441212833193628610864766208141380192811154317479632999812529289310827997266551881956373027993995323735964389247712104189506815522236176987294874644704603846483404547425644818258765971819160812337151146320438959534966223071469040814833628793534838467585904475438456418309653132966998805584290329053191158535228350961535049304922451118279669897226427297359593501504637795500261056221548980746596286317654285498254024267315725929639526329145952731760335491734939701364760099498325653674578712917015459150097144951376674546297396235410018875680432701256390236684243602140024406470837599814314168924661829858001246211030120261815687450559551860798799077793836618832966148398846154815674647157968722859475089843075280328386385044871180052507036609241208178765776591078007100005531953867635671596962858614355717335467220298365810191641715331135140553823060661481822333821253405392671793530747550301088637472444647662993085237908178673360712148578355918864122480431179030851734553994495294049749793695646200180670456436620195757771900090601121592906421789497281508502412666576394881702608254025310559475812091370815600072328581644028781553027905441528371656472629474945404376878117345742858817066760062415681641230806828369723768259355210844402183639295224382369780944203426147750516996903419217388107105485089291104677911355623884425342783081082498215251921412204986225815027881057657010082258891936739566100987878794546893229351497971517123666753523407695194257844226472904325069828900185406828875457814592075193250828777336769371887602408390127211659816771348827384215086040589621836523198372106504889076149661684423929876159032948580159404757101096962582992798778825675722205307847102676237820079108415060046251607074599170720982325386586283498373627155378834630096228448228956458603573589827670234350760040315532609957041043896788822506095699404505124304222192440421926602845126685885309353929969116467106868914418800394300797675391472192923870215222312442440991599266868034908988800918708581765891933532356753381025238311649653127922868189941361939370630781728044126807898609402076752813634739255725494468467526095520229675710002927329551140722648331380784229914898957212028435299494590690998524657838052649329960573690824750869072597488928908402387227675517598062578656704730979528604650689991502922263309521687519626906265514590945236899117802101907145882812258217372564068110828435990771381027804883479871790626816989133145433565847619531114191620658327205803296695325483693183193836331210084671707177019078399273460172223556400014223318068310083323773427765357253058162852634762042649661859435927297045530399782116786567926641887678429167532484477680459337540571475891105206134307372747237418091044970035791782003328852559258141954655581804122372059247009069786780536199795953909269101380481243500989436469117730876551400414376462316245928886228384262567038949856626644101371987039425148982356459771247503043677955122682170372389096292372270635300656067514734333961413703992187563767300327814330471284601206704270294694803553790394099414652965344042362895556861684402774147449102903269665276143349606129442363806772844455177574213822209905302808693502121645191778210804967907002000124744814193885973760560372069933138867023567772627744056327765874959862235886948811466457141396621702221546270415510231273264862411973643687197291863153570288272719331266458800883017162396361235482226646260997106435153191503835288511439574821701382255022528838601323488121152157928928979250081012208154385246859937789406864227351544489195974541071087704719809002582240995617513073421810690620658284108971954065138673024000534744064571652424346530320420418927183897158221557238717193809432095735415144626728053861662394638652999072402169700207243531965898769484528801861694965552705024771754934083050483123718776990173067236675798507641004269662815885411946273995501803820938978791715931823004872243592641923545228791518539048315206731468523965409964379715480123535509740735558827241910497037590401397870059103898231176719863259660540070783180400209756855399601502081363889077691817509456077622446780497516777923792261840047977264320398555216173165657863117987138000204295211441524631594744447404451561418443919923914857192533785667268150549009401372711180706246784968144136613955722988701184648689237011494479121965958205746335497109071171752463549288072846160640232565741548471876980334909284674764711113697551440322924018598635942910964081412010566187846553552132008711459128967625495665842781679152400092969341961378369864180178409939001435097856188378340973205776452545991406523863450138205081497677889708503438751551066142738664503216703086269582499494992198136756361780683706117011956828682522766786721950780226699853969125734581527372434883295837632920812609079912763347028004366183836495696780954017113700421878147997331749314886507459491535611148425319666724771695753939497289988539157286346124788840831972492986069097380333100308787960125794146095404322838484301055525635080592184550495607520339659067417033118673183295782543379348770417666084119620462396903810245906203855555532044713258253963981256144955216613465402952682926235156944656833327546532815927181729379622252284124482524353954353455648341969274504913845793351210587196802257318594770454202302395893303186958301223402404209873733238066593392543444130664260977607988604787441279281787233241721793455927832288002714304820510095355472000758023318575888919056598164117219324167132149956890979394632386681023355959556115520298848577666135383407498217933538740584957799661012218562372305424301410755791097003240308570797534223171471200005693624682863167749094947219845264606734999478263427257177426073686517959849210919474307838444069990975864500350306296139326655750148742075106441541033174257688524050232755836868179327851449301277650483074236102532145402576903563041873371069777544842786497294016616620190159680813767578204427201497342277159258681117132803013219390354865804859814320692614739158532306166442718070226314516814444555002875322765530074346270522261413711879664635403259129305502989662276827077048290973229162385467854038167843187661454071621036112302447877753146190961716522815837570221130130997794064598536758103279437698086150530970353690022870517380290679834836178785471160222532194757152726667326329918583985852660260806695895796771062112965563225656936032321944459922338501566397589480154565624543900199745275728372881585881829627806841860094850391020654476182631430834631708838588203675549380794297969457039463428801622981741903446406240957782624696864687267284898235519174441840013307711041077216851122192802221177098053319977265105577451208983912353363324311554405276554643075415918707298977518305605004206725852529248315260393437678062558652750416932711886211958005734294089816390065465704116476961505146197013819778267770479273209779969103114441331078048403337168881440039877981615111495488797230752147274314059965826699529475840496957563889963062688626281517264316356488228119948330076895176212620863684307901595603409225835831818278044414929319554978810559411488216715940529573507427324386347381417622125750279042122208011900722782700445736539909651516846208032108357326747251530366634595706269149750689383233121048232043432679600553336285603755690156991009473399333792428224014687287770507136733661870023011210018086291576406568799447145738211036874965201167855689596438950844280074037985977955666429683454806388616487016548413837639032616965942154770808420821711737044630456912973523585408593104494137091181679873209764237302538964098691852759873665999294704165478797728848344387147572301695420110280539314117360705000480367313174262430106583617998304954301493991468619452499973901736853351827137976580812772282192981020662222846111342632336119512967136530637713902520772875042511402238821173866292039355770064347842715301819067647293359358826784901940202156419190184285194672040099580782390926742703083444917257126210041289030242167913010303430412385893102989758988588265407697688126318708092713008131817369836491111755979176106181714602781006063714145992282496337728226486212693764401390770178473748484735850867600844771337799238442770860748782049581202460332162984868849534049996808825048637719523741274265717125671483143145258285993642790882547085136376730663810226828279529476045613137687184552076036835155574048616527005110062030324810739565272226218138978808044783805207139272537854949836683336355781705838986859265399306216594282882828801206550127035774876735067673064730095024876629730841467775241985029043622775133914325476446740630535123394144244038560407230444174977144799511288559948361628292774312318134689880573512376417937206901475268707880984278562107703586118796571113766760432963669603080399989429512683797320357762699454775629542211173796630092395911533082745968371189284830817451899190097442992367260511292846615526945910021541280128064681275712774061515421914412058807761775240478673697509658186655975701401969579699534771616956253509262030351681737052900982961843876683012509629909268037112509444617173218448029129292263971763519084067037118661232492235324938832612737691578649654404866154496554157215210549169306644272933196997713973012676334612162108790107658522860644159627079901407801532986617295333980785568448349786843677880193018935725248196080208673599807739755858070098796836078449110098561096856180359777269551818161660765925956134225002722542071188297518580942353982901535423657607036688325975147133107072660023967858610855587676913910224568725374398183107561474489831794106905644493397821222284160755599067731278355719595114219206064989888634904002712866064948755004038700909066973738319300377059773392919235506716708579626919494937387745901131240454318043256450877256673415545116777150413814404299451730297575146077301414483046172903337097418606233146357619545743574827342128598046572661548143009888683436822995124397739183264003135513008132916733567179316697271860377931476867830598396542500065907043383241109293313306066442629863531388764098000612191893509807379957393720092954224775549072580351434724202275284360825757161862511880417312540907440165149474384882947269730759067234693470436658985243051761818663867249184845896709013350053957614720188556173613042162485535695394115501349355561999829054387147884273259399967347869762459138713655589443701223599127211219483755978273959698490174710170973755316917252934011637267244032813824601791588995644239384426132772557803548423295528202579148471512808700862517245982389658755702079068106877846288657000418373394481483339338818440123035405009201337487285424804252042421855757843204148888783579683934672848004794365591440219295131400440571455876642047627438684995368749564167735864571353673632608164022300963533221649905312816422703555917265453016390310658234407610522457009239204671965633751396246241014684598453116765796905834777448989026629388393214311026978809147659332775695813669848662935747733113673303536753860853575405447562379272282519862240014471264114974870717472676408711214178973058294643445958597396117790912947694082421147234858878333497994014839650041479308803415996090880459816802442672339399025557950203638144932007361791970164693322937849072502833690120615371676163681756676802631839314157571963227533226533510529295848301893635372939850556889580784348339406257188749269607445335400749316150995182819861484401932967436926330256243570789755795274926399959866795100926231428156881721473536972200382105406860084533612444122984636946754995868370161308834849199375400263187789778816272619504337430655857991606828831585061289292429000221379718226893783394615251933007397984066810875720078791704419834601913393288764292763646476242818040412119843907368020983596803535099751953900542599631755059929305178581207082170135041023528374757880065802376214831125901330756412692174476938339108274041279610263835535912495196338208074734930889742525231001667742310356740424738394058096358400232944810400710750243751826207195015351726852758629507944107302949230049836196390786324791460488864787651832114362926808554055784970118590404896712460559999462010737811806007702856163098322675855603650901209391532650606583212743987451855473070683291030106354925007819402227556499621663589902506396845324229781249058005506975365676003595985131162904820831260116785963454666172632627500871796654132021915178611308858284957865019779085216555395232271730714741277347190319326439789249984940323989344954324538502378275364960199409139697250672472068802293395996411988028022710236152515588803730470346549077255211406810782607163824689450718032217417879492332164719440730237307248159422282984791827375684509939758721686949211348339299701571158282509431903911265786910911088477833505939802268639825382111674352037201904368351429002016961301236315273923348425783331350073154931602346285769195762897598276658488653104593756640110000837366320211987364361485286809960231922082975102517892139148059285650295036190858099487488909625052553698723433583083570618406838695264777689932981156380480124939631877969190450280900438103031190655545710926180178847636542741653772434945579898621657484006501582190877450941006383426650156122306728201785063118013311147555936882479020114992274606220372091012849139330180316763123044618992041012646473161432685737768005230170190974651535670198532077237954321027882036408339767011601272873342573045377268523527028958587580215755531231700309118981823039957362049850811177315440996467269503368003564020430434301654395785717083575496881566875167519531162014335590311606666332588934907969123981315246782463386045534760422758043683625766355907948941208628187869399976003839243056304625597995448737564951709262353888587681840180587583395387059401707272262523859092795190175722454250380086367782594330481030426689357437510923325914551199776214532916413638489892862232578192457229370321192447957449322474286456412148593088576864202297637551582096724779145914842936982332398721935275729758969876543112876957407502386050994573083619496537329925927054917306688663730431223078401006777493233258632296149268437497852023404807510236691336491755250827494803393896300630356913361791013065671754335259509702492521463450509220291956878191859389739630187151474509529891551284567046565532457910156884751987817302529752677618000760671291096919060805127043140122264847613007941921397353756742675787499111688786461450941737305804872373483338755264831684059583002809175260659697906277360066099518574291984948038095702321473576613882752907946449845150713273862146640167627011885855872525043533338520380771688283452466086787581824789804370656556007026297369648219614102370016863637114894624450822596856245482841342601307482283823524474250689996146528761837019177875979572436938472136654660243687649002543793169543137827262142000237809020324596261123338009396721083895597150768750719505940901080189070476593805476371265973288919272130619395386103538400326122042261002758828429432607863894638248169421916357426072104048653324642389364205351047420848442891172403451149416172091284177483048635493822328351679486566475527145815454884657165602593238973603615367697812989387684247073204520659180510890499525733773867132174624505242672507297616297512215507667457525860712218059889806789228604672305206743892901342203062621892645397524922155690831536518049945134559996713899405234269370017863451245304035302510123161353579344841026731165059644695480040200130321907229062228504094154978326635521098171001488865392517258729754261365390852247966885660217209406592449197947648471914766318554993967446329125817956464408072499143699693745079277808083870350724002427841033990484843302666514227173041955981411964753611182271426427151989201705114858352759081950043144298309913804525738212872896347970202436180112840446863743273763163678320516376818819359379810154304872997314368487672398969591710353986071656716100563140777816423464700262379338794672120907008826375943515061282544550575179839182834292596121812673954606928875220198853230382729073852867149280192443210661737025026735683868980820258978398762292513140521169204195969648323851306067142987088399340765598796253600935525441540641796159723118770024306862232126691185643150253525769159618346637134643475504299296170113912439613322709365103058323928858343307251450396983896625324291831269799709618994737195576416614941827580007606576608960949391915692370450561599073822548020895408062831358186970659096692481141894809332100007674082972600672915967545267875705115665644733470292696832791165831110887199109119338292433616795235355578177587851088184588993381299235250307022523032365319593755096903808078869970942276287313116328984144058802048287264546086352259998951721626166126607850483588169995046068705059906115936926014526981454324782302810585521812146475666839186207739026662847504941035111495645963082631858282542753141449886283270305699796015357521853199943257243880341929339571312287057605881892909646395358372595570747677952715424482386770206778585262239395853189319634737792242379102102087647781173099363442528753429374622483282220653184911851256680461837472205597825942197240871969819397402140395790844551577321024323189062157158590355346192773795484991947061543262123043987607742333189168274979034239468110540585751380222428963497129429550080268266089316586176432605513567887110191457272819959504208399163777089782896785220259541282147660275704463186709371834779282745205876521415615133353006833713452517329813674442986218889938184825513842201492976927293770222126076193230655768306742767956718433145882164668320372978052903415319781777642130948386608030889314641854157229590480158212301990894838152736350882928859876906519810675746128487949439269143605608793594412654840242636859055434397628123178232939861506796933041856337628930940878830171761541566386254651649881701569351970715630735853173280265017865443681126513805425695363971073692866894599045895328930116552327901811000891532915473207861021865307207863000922779284176555583563793717664119887713873922694047323175871567544636251525111366938270725562687170425418915003652040212644147922292590512133502411926908035079000410894813137360128461519964106194745387204975487927397083009371695035300863135578326644500839806228540638932159594627942704108369023214379079314443622580483939081804835444585118649893836961930113347078263840458603352762902328357323749007618360354201811698928358810744692768616735193224980492388180178443600323318910655458661781955037441696339863137281928286172004249812018116713158457385357382549866333269637986601493061388229645522634974848768345541255832842369901246893794692357022557252836897688759639190739878611035489430961567352513923496868191662331901391010164560472126090431994521068599125591009292330322196726615403532501087202672262567837101805111269593517827550411259476573605332968076882167742012753180275746866489478471293201803967511385524719313300677685719627879216320487410676387876714539958930197253742374938583009184522791271755129931452935558511028322493581508033846755362325758707483840588067457390240219917931801928239500980635513230236809345774041073628384135799850083097979242706734777586875652593183116708302842758465858909804070148381284084003041049828746417930817114071758055591933677963197187410449459553229507938848500860838837002849411651119710949753736119852337238306685240294895493864229353402527841270987458864097638725026704606062871374194774489622992997613064447976734402215593842363155587570021006994431275460104225534582754350689015066613243889891540910556089143397221764022894349305371503574517190153105818593448925182157376394383706581298151710618385732724511603394405507377250349717837606174558795140735302988046611588108950103061176476160184714925593360978685780538235994952556657113258511598945659260667902978248026877040260902968602853528874402234774081746346066299571756137816295717406482830242921484173332460563886636832473899836061328580314095239156619815699397018409918081944413320442451913490178510665737377542242201655267242535549140858242292150697449538798522277849016999931725538047699701272775316429972133002531420335040466502221790600502542332217686882060430360014306026180615312643610127837408643454344308325603945911794956971067203773394757323980441620847829824911378024843207713057597228798855514249847329271320403039173578260009871612572277270534166139135069072035897826995469438533903793606089487883908996350775391342133127479710670293515251386967192835873648902351008083704137632636079047671024067420289177070913727170227461456224689517237390196732409656344608597042623096637829945889378500780199460099533663308123991555296693361609052187640690135099509244790798241521264268097368119216275521915945921427000738803561298482836633798486229543286840735169840100361270636876594423955188337159516196731230896944845748499448693551780538570799510303437825509945924486111088414492696285675103532903709564196364447985910558651145311600310406061363395557210913947392804666797947480617351572209044156446081693159999943258924424507792365985870633934252104869627559744058058196023363451342724446917497822810433062689266320587418624286406676044406612398902812999506868120530359532357590877017849162474305850682226512561311928446055656637717796979948755455081311626085300317470047645384855248062054140363828167810385774202400588728051034545140567438545219288630031717077184556356755744378401240523678459023772143904901292262860292613215197224497494133874243624214499825751914995701017701602919343246431165824088808113774511055180220895041933175855600469605255605387758870813693012811942663367483906414110636387398938894757189901879393223485034477379955899109683286943388811659822497894545525639415551729355951721784097119936638812940887097722649466387765056550687177680377732138854460144226846918736111141175616000693447616801496087474067974489404699639504856284753554370342259118506338646408694789451659053664473627409635943448716066373348499524242169647794069183228617849534349991639546623692870898578421452314587936275363212856118033232163284778780351097510907144084151787205477689541274645992036838615386871436531024086915845745677494206904360621367760246687747223813445075038718933826354203034865446813058481622324117969754778588767264139047061088704673938333785873195818639259136726796331996524034087069932698431863674050312796507262182854472928895932519410870932064136648536503727353123804534069812657949807586182131172410704533657470488081907583527475897379113886048200389833293421512224830963148279603935249466414590965363797086542668414404166782155538008596933938071210081651458203699788941817905305114094267361673872964400489281953468104048313917889045742966510069234984014202931747629531941987929721656399137337206748038058693577971433331934021739514992326082101848977419379895794991293329722641330167715601036504841445192758824048811216710429905856413283210790579012004663649178899740664332569157476199973702202120204215574316288951409316986168731974043955977335371626088503011176349956439285259341496123271774513379696453321830707801458281118970946059716100380452146019074080871109462113911930504061291651970561269986480574806990797381914136365869849481756614490018484270618084104974233686260993730822097107895425925179845769352652374005735474022859308998848582502146462059049873431727759670401227981279672394184442108711141501365352214743893270776806577593238940145702955156820422055410724221702247655132151471534976650694199468906780838664611179799674437513848952391154853059851006515905335649907042517087396243230297444538273835420314034075782852165328020229708713356156964071569726898992327582161718559256150326198449718441912418639926358859252732041766398726770472965585856398005950084296719510611527467211903782522025015584556420456179801207161058221097288088799419729291381764966222585690122636699620296444760580424236302914836018064103995675693167627270443443906539156854656393822163884022856137147308483286849012966474766365724343739165530963729439562678892649523298664263493823781334920842069516894543040182782478278882619738362215314902667085622254627204833965727965440862925680033397674349781186161176161078930878411510313107458079084181026940405643142239025686321062457039592539475491053107651128445851591232749360440760901510662984481110200360131980779107687832126834775713594442941400152188891199283024503578081550560215256962106372309969257485846524678091044625934881238340369808149410600516040909359576811056168852295933924876453133650726325559073241921458106042617867698351375470234520883182705077470837330181204473954321707392875190189477797765820720402484710625415668359955926777750115627653886810210698242889498760520622563955579971075185173961894670167943001866503762076598605475229452769357317012204210695144182256254757439646545047008535503613107820986221307245672071043954021654849304466618650281720737915123620468162835249173208381932951539928427026454940722970535437987559343053605161381273028507275947272506682982201034473986192184203725183568454976236761563581226682739077606457775714013475290105022593472435384914606511262963065266545000409860560633963559789796224081375756011750312008679293679145447710950021803483878067303133265110276119748409258446106891596745686581171959714835129843060057267705287961164835898006804195636882289524124028180631975101128997019715321889010826754002674566931845613102838317094176510565279156050873892000059556019464733758228107359524891750687339701197014269055804818841682047931801384087667162521620315500524636025405504774423815806661475812958055318403480952915753500670669585103319553483506370456408593856304927000929735657924585367152232144074968433268775292729561688107038446606338953528866089338646078484540451161462599434195470400193730904500448839868854783338630718420141462113460423988474171954275106760683446162500217581454908065820273287485417067712343353692354215453072222002976764250214173501854682563264181110818605595359118382435559002801115204280303120705941289538649508363549745776217821796139396727393923549625972421455070579871992814265739748082995805110427422885308733396352299543101129353523211253631821307027356826409682181944311236747832029960924057383887801373248680389151921152385006739918146163047354468741122893845765687626534646777847786852687882991052493972390135117320413077628891209259672955738256676073639932886994090466819691005929706407662391244000571906674756612300384218892608220420266744734106528078547114289882525863865239496262961056624329188378163028713910317174667778143928850005263866697910864940687430890612540126395386724870484164598526307143583363799048087309278276711224559718558084454529847973848312113842147937531666713903295887018234671111800338882708379845842567897625918977207889065070290286211064422370650567935392748697070147657683873710785301809666551461578117192175826274436266600898652657416058584159920485440722834892636342147817935503151829897733674258497196331064283970888176762837475650997241664978507050601836937994073987144206598781502683556671298427969050649716417544278799366756820299878077881652917190209435105671338476501486365133294267619106975798275806014357940394659316532045998137707960149201440438346350460449688379161267698078605131449458076526692885338604573319056410630363440450289111196984739855302516594341169019054809009765619404173103493448363312005491516333745700257253528777345176860206102085557470141585522783011442800457655820595248213328314105606820429414458435363936891819969510006032664387117774406381039938742040147388852198863496988705366081794189877634095781545159097017069871758472452889931046151485344004548346457120831998948599678138170331449768219506817981183430498368393713154446700499231974279919127955331942347076038155393652075978499503241784574855847974871414954428754852606000771949039572625709842809153203680787709068704500911293564981878242586279035956885825328937972550274107373776126337605276688383692358697072905039317326034226150360109844535150858624251853398826390586400332439006330693953217517130367939847819787285916066301561983092685200382609988524235023181518467360363452738990823114728466348707123529500815680532067869597193599800137612776415003177158754897140983045464792628009485853105815064048694306188275373825503876807159430871544463681166253811001785673328783048178603126072424199890189591443941924075176071035550880269076928826142379228584221527242819367106836566131267754600652671797733268079653787760258605951848514527951996050519894243548836256404553523004793029297386936024165097009659988595375371759847807821000039387880041819542807927811724489956598175055776982104690608553667578939364280231179197851144060627187423626098154829691155508646210923023863258033700017112707109335427309298005585054788465692588303157856891011691343190284528615662384935195742344544984135485327156550327971184052881355018591937863587036613342149335254359001012487118703985452940504637351355479053959616220460018192467923223590798029708065821310047767530508900019674977665672975130817331958709121583633080972201391223993623764898027999400606946276835738777431236203388273773557484404251336984865743770676810435801520815627539846782346998019517114275047288705962652338199347310768939717781605514510260743016468762309378806338232630355892514279814341958016765027363053072454851372900030361460930606590043651021816084381142841370824836426453308785298592158267449498487857756347076458745286476560822947358287820274035943001429231707417375838659361654692344458471141044827207304999480082418720094561643899927781208516153680186251505996453095162536365087599581851120724921986797135989426471387338825052091838350451364355388106588177343816746319337201846679875167994958930591831068501374463066326040632459939774880864402650720251451769259324000274030905974748821240644016437697578145214840895575721984503471680611589998994179406377349406188471519333494788394977382795514349586447014296517878132605518067908320534065487838861733939754345953238234300729658839306666826456602817135780199465910833656060691313243460894828784008083238146218390333687893753846814546548838789831541764294992053362115313499753349436765650229535776302112769145688660274768602233515186301878221391407452818979075236254324288405251704900527279690716084343189005599031392847787249395603613133472369152610526063630243579134247656053261114110499159023445737817274106709173650299453393063293442246638882159019700331836731709155638307165278967759123860349999286018282733329592055935367106180551904633692660241960273028293988413038161943953990550648311336043886030509447591603490439604110276212929106609086562845111737224224706562878589357618614486691999009728991751325868919412808994247926098341569836278986101573400089085077619974765233344494072882495703141019816231219055724011662233348693673960512068955019695847000378606271004284031314292345426829025336989316775013520078834956667115935207444984505513214007876407797669363809419986854269251044145719065248975658746318934654313070168444248860900222201089682054981725335877069419970485201892362950337713500215357455572969155746987167889146394636903976037413167392206340347895600883383652154697108572113236995558635770881244299706993019731252106317476570359007662886143406753242145700570869809364566194630620796394600969645428541191271154495255293638068543791950429620580126011165249174478295353165362954846369569302429948306668695622381684203267019573510097202167628333376489179930166025312928284968171830547979041761584371116082722575117970588311878954766283872036860625100708661113937010146339456036809553972962366575425393570997140079565594200519979650904961938706463326343148028843244511368484769002324270097582856297010217959261976257452870956040195339350196101807720120178269677735052744718176234479836646628764335629804820146674408111049162159304193588216585694092225749938488061011333175274542065411608598088233985527997798825228065910561985199234248985033483891534102334043670638987308796483185724522030133481478668844584923631523612809948051618739884141240184064253725265547360732455389847866033491914788692165787888717151974796235573733139254606497950725527163688485765811481172113419578132459053496870622680997396028389085626164497269351598093227919703296319892048241718637806113191444909958837487516644041491802287893084132677083895306805200797748896960625517618282998951411882832168971957911538448229093843016666922184345490850649164187763383058537559399677953052061139191792930322836559776634701727781435682640424306737326387527716274573224710908651109979589745639711777547212645484296418542378662630189845936365244370374728002342075019203956848597421165607014978463839121408947752089149019647454871740766512498358468956531357694394087471036190199132275862952597948853206758842071292748174114790679660269119388311029533728234923589033939158883116091634251056675385080111031964777967092514827447481050463976748218838291338284242195180183800099284689372062861442181587529513106953673880535828629393676878702438151095410591511525734898185453108135879380409626212158412450825130325618515022399965862396102524046171602144403743530573681737725601813569606815125884383777865196792980659094567910286905101169154421029139538647025033234954237064229155512592164120150205417449399268162664721388160129172450401088603081734918003849992964960307189636759403039211673653826525940748815098835703659877229246916845452873410004209559075700440600273467512127512776680385660682350530845068865262150876131267382306150441479781925909660425089045677790325083142009405556928414882486719108027378714479164403341572514910380762888224687673515732091607874728486053387997107142025225309894662596125099636723582605092754981953303657935299411280284319540597856131680007890786638267548863512263950853452981714468036406249679646694150474970533336898348609102625669754781496549911625036716621575588873459594725084562741152204590684848106764264784282414130293756774762235578031670708514169881139614059879800098225591018731649110967780162874220823295597655366465651088522523478139092355036511468313943291926671954090024507313572325826580945972346147275805444151014891337690808902226851716391623771691462313414888287729206045918555881662480944632574293237220495794557473478987629304052539382969983761473421469413872574399707581863038975167250118461814120347549429908851270492816442832236429989075458243976165984889477959951410815797220319522090128203103332037875863378394855458487408630230186842720576514480397733579709740980112975711073892186505060978073339916460309580233243654265851610379996448116602754874876853648445681298442706226285540703943238823972979976407769652877267617365085694884603563924673694489632224014869274259545667690754079183813500500735809796975158334130989638265396430784869482025316596733326994914777155270589177995324786671406272613816463609325914003683073353019477303049598291536650366665475268863123606700051353431838804150365155304592478456575737297096502402858159919388600883945480910237794156965091947601542518829471489450780694710577244719581047891000348051969961309095942834787921931419799932341267723062088964336451041572354673570671426988751972343473725319311241925339582562455282127379277611408564726838996383437840269878497434430459332036483334914493295367770312025355259521057803628084309824946678850797301407386845037274346497327143751804553306418249536460490017610282580397258987313167347898034057679338349611726526267952163904304086000784407797463165605208002303593900065976501135115172956367297356363443633717199591475682398691581310626734271202416544096915477321633438329151185229840101250972982182013526462323959514093260251104751798352270366886016570369845494363001505652610190779481142434116781160652912096201865582795298139426223382249188027473784671932863493221435175707568748867858689581515618403869175310242643846331369413714151801460190384566725296730809275442822435324262196331342959168864164039147255890627556760679528295176443905456796601138452843534077710434561895293620450885372838626450657314688509900939309225138293793252077716961079916695186199292391800239972797747969156973418728833522890999829144870585502875154560984431284301529751916231392125481230798944038567049286793349845648567128171104915902056745702722290036438966608019812126117909266765397209938153971904179931064367143295640582129912310527228728595126374307750688252549351389107757907443374784041870378232160163707049236652014349141102615032079758117275642201785346463734480882973948826492239798411009730347153676504242691724751027061543997566401917511901120864016018761726919317601096725510919921321374915609823869641814032472342089898322225020277983799625090304459031588425031520457217047053846845123458213261208321357176501032492528525018753971962013276258166324881060902597202701453612565486668629618817241138401463167643925207814417608926405312135612319277473607826204370447162578750969243371598718882156386690081539098104077885384760386212026870854058439654844181942757404966668658740691254942058064060926984504751109209972599787404605027078679285087786253171230248836528019667714409494905697726104537136850367618136647750907286431174832073761669957257994167899730109585850263017285773518979605198591093071056308144137378329579032481646152540847014604877587538727744982384636195298377002997670320948903540308699802696250344522631339249426609786482125621742891382230438987023911281666629413458197872444272384128292677416237969233058661377245300078882534537615337683158229133434320689357183819581542397917893548231728728608559531166295453125189083838639375041391654046753481955611565372173688071502117102308724584230400795805455843933068452612184242473289998430553583448412555660302091064834668717266233005746167507653146126841059353796519845432509495713100134108914114046293037442510036556820715808209300476174215688908183386188350555036049216314119182657775618760557082797399905878833026666854614674994528923004381175203571948221848688633504415744973525935307488708096701490868337624353886271590020982885040910557155831660558296539938146487456882357241775087209086476470819866096318535484971976054223497099202823176299981498494656366096737022419053144133496489227625464632524651473469758196385892289112486093626203014090143302123272867841444918294678532125333110852287753911296646460570493470939412022568194611081692756753689311488575646000225674373057915584053364258553386995688930367099432614319016879178989016724629769259581419806658256658245784726245623412745881860469972083683567862746757981140943876145233275373268885233930812581908151127055154906921005472593931476655600740617637799417292798361122417068905596322378561607087603506821023133222325558387943221107031868013097123026488024232683437876810216736777962332491354257683584939086890095033586796035525810438234628946894735692317845592255175545499252800303379297484344812841305525577836035304950649018086856012096349312783535247624523667198282205636782069926429203444031928897946618292077519338457462139215249476295026002169461481736716209509528375051234104985267725601625147583631819975892100677511130676303930386124120447178539069663282076949645125320579458177311195150857870921922026404826278911489441270936220064380484770429790998513294170811803002684965413678194579689702424369329197655748426736286907473427333366470634968384162260103296783946121687479015002428725828057897889527050997477044808699103817304966389213776422616973588296783987280803268956534955687422925135884110696597169525620869710396689701216459603486946059193163919467089219867574366210632612766218843487253342359967183908016931286287711623729040975212707187012394497694170920148925865758353858788812382459891248924474682420873856119341599798686298450573043564895386416383365395991269089616266060345760352567849093975690961671398399806065739677653996186379171740335688379637148936345793221998824631155211612074832226207882526967352890114798799079785451522331567726549006061390100398529159367095911429641794081144350452104931697836309860076998215482532042132891460161962083878091707482378170408211845265844197529884514603521020122005559759620393344794275099294113689189909984396180590609994828006431041697796964950665396245764892031285428080166734020524410232481079891408809818326355016822856856862562797399029838610895621469590650964727368490093503559420291279311315075487895245786483842922511965419668065764664704786269004500451920737975616311282228764737045635811931691600934882253139150246849882612074656298418209725948112995329911752102795643795269480035921629330581933015598551616230276139304497710495009058114728318300554741702071770845069195521268275845276061197094940692738893293141314061021122233354254750633586458788428134662197725374584674267402889274369067130807380819107423203850947555159334216543732293504717468974578263102466630311350631706718349474242507595290446561456706796215925658143902031574175581476584790569577798213738959006721501095402813285026088521733949727522952933573250719968440063813615491725753605374328254668122638633809590082379744962199377916975925843519280685931938405404139801406956979296765750525050188004765515803160354771736886990938827693624516744651596905415450718775054921754549921869717948965776691874912312390098605986348698764600387189061503669333012289756072245283492870250326786372129521629404102131490723891969498350702870595094828721093751693902979186632624690368483684121591467594632410282734064183530150299087555119422169012533129483398253946202601099326932188193544609510286572717582921414540234953712539194538875516326760539609844143762069360494249447061448043990232440194616502595537630021112174116580851667552089454895314979090193236985689301537296521233202626474352259650511493330553555322649749487198435537616068022755149571419779000818332068837661654730724981100090963615559782540470279269183538117662693631583596038122151734949544576673081337575502749002216058651365315270559761592977649686219700550111211112093660998688951480096067105042655406532066680750390201784945655651954111150189915751665266300303078300433076352243730254052614405720398604535321492752816008388731377213811544331073994804012177245572321205456662789689729834138385085660733000887046386963925825567543251332288614458291213954248308891133133020029891267777322612971445455917604189971775834183126869912725692570555685994282564102456854918800996947436560211177975461994602555930231201405615875661175810323068516828956788524965973608982239485597001707342670049192164730344619937268680471302942564253417933364576966757903348365044839829409128480360240611326675353344682062982615706438888092912436239801104812934664263494303577025481957909419442898716833677792479414648584741911229406390253643558374249867903003988287205260670983762028787153461306066708849655816928114980335715087708711066658533406012650963692167893401853479100352500887458815008410621694694501569914508459584681032442311508945674384488582548337057053402843205844595458578676389089608175857484414502832568362273357431658615497632726390684168238839929182810818530502060855421807328292064536240361189728337142880204949062875874231930088917138764644638275453878895683593403402917201481424685857036363725742393336219313199843328289371685436374631545651909152053547145324733709599453290703371391412712380455945441978580099050147352324938827848120213513895910516526528811606756657270523686540907269008943634659605261456195895716513475647082806019988823706691964319776544850392159560785660406938898991238938597588395466883913930208649681901203826414621944330676446525466651858677994698610204827120449118668482641424816851736677892973618535600805566920575047915088557809203497525983432486775051153984483313210998990595085061339913166694957140989805128416763926879724011560921588527892744590192862301047514203124599895516934524244281697954861372237524215787639611597746819345945731592771480071953639001095590433638602260092573278806536781587174819140785651793010663013162332999401542272075359581984458979195893892757196190697072154963588929465885758188906774546267009952977610650070772276465130739674656064031620055721626194503632240203660462721728802555260008975082498879680122320321872358256027448101046984348684966635008637343270643570651485219493154753206389434596196452887127531412422836495530026483410617245167261967887183039661740940799281051069226229776513772553902442431378354509607990082143981348917598010951884825710763190916421115938260523391218240637931018513151267177195890901143240970771923816601310349024475205702630708532937313497902687534940698955182054317161384643710488426382359038785263164039673679823443098099452594658884170892301432979377028450721956061473839990904171947993956932838550292674062836044156794763895795128155239810060746135454663704740080282731103330905422554091732936709170603057585291883323480698262589503849383579508128451865206523156550862315170115925753127120375700480565568478260908102845801534781252631269798440518177292493680926637990563267427727029181164248797842194098768908780688160771341078867032049988220901912238746157479301412547062608783740484096420689100414048901791768277566958633712716862703476742956895980864892465986752503394086599108389509566459029728360845786690849413494098625955272292785636144762222640648113858007399151665695856689233864873388627092800567329982283784818704812601422539282613929278806039988411533076955376630862090038372485114969047939029553889196419677566109276749144728397853421831371394187543312957010466061035185099749101138980873134331354776128284348376604211378766577382234208278294058568385713664462616928807259734115967145255660294992632274085728758548686344448337558412649383001452312688442110038564246426270895102652398687396814824764606189448194988537459792965910341686175137849824421437496615678856306526044913533013837226439450561502830189326561558050473531818357815686393789525377228200253080879872130263365161801948105230208623758576202303019052390987209488166180408804901007955235293913787485585560003477254499138416247819925649375472538402405205969193224944857555775361783552529964783419974908135678953959769992559666468945343976043224491953594784790958754258074156099340288509287444916411109226805157531496154054012475950228162089527775728412608008904484437967897737182470145772555912456650284758036801816926506753057245969152587095574286504600191206703506761017958118614323206173227877928903730422703182484351419463804155357051651025885850301807882077623101154970146165273421444180494143847067028565880133262591835432100025511086441383163517759734314224301856935574812771354324845709538166453431548814982803245517130676650207982445327380291082334776536084392944125776475308428028708220076657734648939846001641469041382196151129930703048957708016125596491137944281565421507224714062910116375564917338069489003183496321535565669861983416127395354679424056610050067233671227933497583161131715594959281603691187027564896156325913441748458058478150711107899104917042133344802240204742917176064529566475514715660849678371206698224167438856164563521930945790002898358617149545907341732065349994993720737800346978763206754177757178403032725012501045154391358376169491976460467078181269430902015035989951603943231300905512919389707570462406873286287571543167729466337960909409812883275033446059432069666711226586438715996524330806473045327032635384827601841339417155224558821628915322393135684746161009352538561854270481001483595606586543909048041135599396789251097792970900441240983587135764563142128991873426885824434032524591348219970276554276183569243939434946505683362894048285406105182842866097395907965201687949468587575025826608242638668503677222147604934273925281767878389177136029799387178966101740975979279141455700870546667769459060273793608015458793720240792580847812908663361372899991636513457715857802800598860331489269463804347341031229106920861377617868716547424389591541095386464217086484062322317816859253413614969258981533464785723303118156812921560259184620482753195660905507650360009384778247309669917230952147604994373304836831947265353083560477663449233187165992940523369137780786441599324708321329868128920173150936839262638381820337162532723834937969962871455603822013246843442892388243970644539130249296256235594540725948406967048405707508165535572745751950588680631228261734720685070730434387539311456953159979965099216926633285296926615105125055315968111196338406473144043115937007085309443043880336279153756555446486130789309877469713291915045471951962537276432060588963487686609020097260094040088199327207556891337530174333711567575550987021154685904190999267342306593047425086695699340821259072747671466930230355302433198138107660136604169005891719051201099259126417468058663711710236753591999453123443691640405709718335690670845040810747338456310529418757655842064784031092762374602765351153492314227511401016840271922248965331477650203297763588932918117443612042738108934743160108060812604512506722535481522095845232971880569007149001539667907076441703399451740702036853522553576442153591192367575369801517536631962063278649708014715829192976349606653329497544962890137192519816146942399366074672370407198334528032621656783552353454132190494201504274976745687820839754113875669844327795667781664951920277556472346902722722609590882879199986008130174781019815351543966512272934420140919100825623254019798049619091336270631765758674222399385119670463502699410428873528666987801149133869126907380396326217938360242948114382506688572710724907755382743140318018801537207520890383528721264018232128489230579521578647587729195219499828006376985881166012418927179077386494858530301183896597187258244727554027141762639877657105775178810236772132149881442557379980513171327812604887058946438726096979889491756963298996960497233830705751277655390036334199966537745654107063452194415671742052451927425932853716788781382689335337214047579171119474810397090088676780106821851706484640807943042381110028616964100874003619902857796790646638474181960470376107207449996996458716724740227000306955584169458208444550565150787039128801564163489556662606470456947118839137298007292318289584199849679936050507094750271061440176163857826175940123166714594014319269454137382060142982015292661480468210772479161712934191373396063125747098150666567688477444419649743189001044163241959030479970058028332952141665413814899930620345474464432966594312760973135283724439552527678668895310253237946005844294499386760518554526505301762553348344699602029191130306937548979763738424651896518159253001073694739620387596016848337123046736155731750687029342734946882972973878169231610211674769330442503261463781839314771007821532484828123729903833030799211754106573955253107416000502411483905504230119056277555834677569982374505079972786909017562616614283288464256463551919830453183668426917676923757143154749612531394758767739904393018625405500613141957740427493021939308833091238535436394378608770371777497260758006813886745461456903638156410741979767250478229102787396637452484766468708490180706162859820185983470054199007677544865149559959166279990024248293980241915303286802671052096178340492971201748832749010879345231493505295061811479609534950075317389520157861402604309033510139015663329062578510694032355628094057208870115457485080269605251385207530655077665203202290522946855742327678440077321141545675493406921278734366252405194571507351727678485742628866085247269435988988005174372462585591390441485047462046540898849461114572758315503739206884292865965356647156017506819300117731205605023265859804242578862498244450363988211791273438883168242522742601918667993518139897711882771787424476589500202801193185475444415381089334683665390086293423739517845557948564412888806418721847905164538035455858592846759335706331114976507364679832616815401669516416378130526044615118202311457908807147395368632808829070108921870204147475895119354344296809564197837429306168416968932477640611962777395480008679347039066118331875149483006282199397578785506168009949232861305287125229909749704309489189801093668113352796830092283063353996491696422949742609022419312463911273633241245296871790803504229376899161155539855283797627167783462401904645024971914242339180152109314875638118958768851132098191850760108087115558701874633840408308292451964766055601521176980398423886235031279379229161771357800006681902266938204938954574204984537865596377151866786108584883335415003798137184114916545082154701632088320144472046352422692240867701133465673987607457935381626643633600249791742767320548232989883433166708513096291256295220465671547901210155877263064797073472498805296910397424837933478377744993443774687222669616398172981049470869795146145532951580859373909554397605418569861991223952268700112738695314743162455675932314142734917366665822696871930296052473533348428807070494265577002099428329886891810050933698905784405413477167132618549134028229345300684599717893533980393869195899630036234002632690946222302449873734060777152634432120767722198309042754824853525963574432856286274822204935184828619201481933418995875682605504145737829684717232929672627154668322583515643422883416791027054915109168435998351947482690910165978707331893258333261246000638150381832200850605400493827218111993981971630071489574675281838196206700430635246828007522794698020773189096254948882600430641888933109147865541179297058373339899818972333311219381547618921989332185921175841135484403451339832932047902448295845858541791820117055933234211557882082124728460336489774484388812930648518853227322635555583859409327443742994251743750969884691630924986785293528002433996959923685930414341875423182465312340044211715736065234798162002050489839550079236738439329768410987216097378384870183227686793419546537476341257705649879215620124933421873891967961915799457340787639337322604338719854981985151426601931346930669364441826784623368904034353188949270254460338878866279800688254071521795751514044159279529384380787371743177412435129047882515516974783363747402039269308836295237981008907198849881866320053715888987435981656427795457466142536139483837737272946070676906385648116403693378278876231163773485837186505415167679380007090277697264283925178314022065600236187048155534624263675498028475707067861820083425687096989206022666979137339853013565651156460899704308445632496026234523850635566530940532825399818616789361999967984273293705279471940835191368073887079916936344236067106032955253094232932633796951035881474816860977692438007522840554527131154614107504243913798096521494948045877619418666216091559865517343737367562318208191461118373739500189380064156241344410996119723810163545406010267737928905372685373729861319678587461012055307403838354418591758886264081659635852098107597799218593130957989857303330318550161065932579750090133307542502446782522784495031284529319550959235642118147443074036767414561218435586296379475517561772031937044703653477074743232073132133977015574454683072979936774678137258332345326211290187104205402266156795142023066463685605760952949824941879369562566649421191780175741404639212963522602887466541771742589767090107753556185793924650366064072272153395814552378290550887049319462442056609275345719272762536719313203683947286696898057140513755495215169005701186701922410014531986309506758809579969042454976077653546885572640218316586250354903983918401473520034220266229635629981615060004044204760837445402036539962791027639863237684211544103378564225095745537398015790849923061008642912902183762775023090805586713076225392346217764218014572467408388627082748591109131835164307297972641627924442044215840026538790750112936213786928898390683846307165975691942115270792776036113414356040541809575364818655494928581356058332242221601029742474165004707542697129550303648237272636926264762917155432062146395432294001900049473921026416750536467679802108011109067003615089196172673617622770989590642953754093338400225432076179232639775841906924511091436306164922650108886427243082190548948326065077693342661777751572903016246012759537584535487406791682712773322252285904175610403096232768520499400150156847403608656226361110716836750303239989540219187659064687894000903144482108588910628338780877141271536252424372905678807220087439432041171147054658993497378391544951832890759406357229391458248532945386244495412668227589621662383719290651343675422631113399253790719280403978312075972307614285782394210139590783096477462617295089379912140125984450928647558403958951675986180990565495987560726325733424498833962745247695807275428015459777870481144387845442373116771054546363341699354808800946106568623779229345344706082445284091332153368979881805847610087508313531797420931468731132487546033704121547653901033172603765547598084244565291436614280610261798664520948749161688333390205853557053120610484237172379233910891418531448132967178781525000086074593632080402588276766647421509455903422982509875390147741319423255765576233744820184601524020503082400922867821473440501487918081944069806596984814354576821335189793976127063036144148789677260734607402590977474888006730263596179696586171856977625094446826769339265304619056875751705352928116135134011755005916696418240346728430282861529695403444338718768146941048732104132319702606671604488763022546927654091379120786606616718600491416067908184754023596350888166162001607911514408265383082400615853264025287132566525145777202642093333759801522348797616073230131128904800644560542929674117758522485993869749382032465676258073274409173415688126796419225328689138850091833177694597613814256183719583135386564811766080565575668709780577303785739265926704308350596602658083266455930875162314705348796901128659299941215846768725942832316726230164378544496560888351216711330527977536190170487523171384317018859525965409824308441704869636852847382301265320088420588732414026270296235573324610287886459412036225437306874532722682750466360323685064093761135615863995297947160922523402149554562126494097689389337516730518301667684661755069613295238818076493137145141368508510533531630898327840968925087978389018225144934144276218980275763683181880764180514748508977185661245288214947824925221827767915381602071656907658084675892944573418053224374090523737023028421493066590526221858725619226841833033621965707835181453968252373744901363961983356710850859369424630140764264866253510684679796167968772874217425597206074930664691918132129320263838685230266122332948282226837879059472466015877073120637606315536522055690076234374220091000017736465838219787685786110483316645386028199352382279740567599775908103224750446675634762907853844136220224169685252032148754285345562407239002317472593043752314216351962004013151264559046548673017558872418377403204798724716394845710693861937624816043010278811583260840094352885215237754294109805213966146095135205109405981053508774552769401845406981156135654246713745830263828787111494949305173735805590269249172808049999976180143887595805695582513001004452137905587567271175177894422872523549321635366922052877575578877419793080576171161949165623771311843385359544157113238247297631525174629240545432288088819690694642951317275770154642117906262212859163315031841284477427644466428315077497024546861613021121142860920495576784765523004249026367672732066268481230533712425367189203375729700699459471888549226271465886992970120536468398124044141454996388949083385662596017286786333823761946261172058827408466051176078409603869610636264695203028951089905825467208133290496608282282770225741870030040622050114835299202186253937051225462792390038113586357975437077151119581283217674328894435969875642324299889976061810318781421480279812564457731440483544766707890609422787948451998098090238862211104324527773308149885371330882759682032425797415074557165240939638297067745785233855507511671472355987013454555413524484350540545179110318096805706707807417372505998209565626582111690446251757147630600553090404379601823443392580610760105893351765693769799500615414809323534612825210994330632878973749575273586648885698702855129544614753601347891400463669660738063980216029096245138246225142563154436806844393644673949949197525042801338894801384367199117965969688988302810011373149396282122515815373897565060380676942954681317703814947023217536790894509544661718820803689722366430861635901735711158977198868182490214603734961340728092620470030821218135064203432611257829125329921623814873157019201161978855105575886927945269456196218542680745102522140712113465851723007879449254458071041988347948779871110320458445243279491164095881415595152582136814557739346757624684392192759368441161591027583323930030799623840283680821996914331051662064123249865076776268091698864415361353073010554967338495565333971361667858071503626766742857488438171594983182032602459591085049613709978216528071765808806356767986352116291635094836108623612255044464069161989071452870188960367702967061914833700345462400753709357006547326554051742532952420847329236099866775849693050145222425103708832330413997540139820271112809180012603742393729015814435684400881095106798508350503530765433206286124176389239338081683607563222454361975504184997312048220717624837140678029519398221280086131611730254133790657948785061454047433894991952575163900660436813000492797016052224155740739774056316739448191267066953751313509603076344059842993790199242522677053389859012897897753581258980858590778828294675067533939426625361269371177377393046449295878509508215100259189972604171327156989867499260321720859508292717023363191529493870608461389807264165580877465135217725140989399463706285549795860120411434936155136177994267187784481348519537238482828557850657464706122833660703202590207883922972322107528637363661158018201949468008466308319233012242812478323687205454979223633233370025032571322110225513433339589411989323407840918047539597784249964273696506223320493056638640546806816265782220791788108527497608073322317652716956250480729354298265828152231834883976055328650889867228012881546381939884582791251235824517627182133362110975212769867497626791847458995687706220161362382579534048341526708447290076420166270933881460565369594396837382234806074866001687034495171938239258295600606948566150635819002065642247313607293938294088514960838602389152741446341114664548887555479534965421311218930801345823821046847841268358031058521714630236760311128237883230454553332232759446335891170989148771203250872705393164489757867828326728400359418512424765529428205991674221583567693510273286477176968279431581773698023540550044591133358495232991112579045347778529140800322631935486956076956694875388793031618085098948784166251970870661162052742479617614993348354645438105417587518352494261551789583423510289703332538547471461889303817055960954673344043033455198213444461001725363054046149390266392055198915517683687433592346202764146021644311100767705821749983225290392451973721262746966745473382638264048254909513629888897401204781913170460271381939269654820618947208779254136083213757761503265901208360281104663668460106035005774435040246911573813905692438193908783432579276154861879416430127550855600584052645319906091620970708191197949963475015579307391353932415608265881475200227427466954350513878877740499571298484913028511996643405957336840311795095565114673603717084576637273089165223016202019858469999291824926595488784221837241882852940705858402707030454600397581937399967972826955138446569412455883849763169993186080380457312424221411053697296227981798275823588088581434349245692520866443617454283378499242805103950258341165434815818117129955539106306586090345352800647725348181711357940425640490946905000247037573083826855025750106502488344068718271009411534261670804212430522645970333105548305296547721035431279193601051279069181314769657286213730714418734632256570958850952579905583624441515223379559952476107165526076537355282234665791340412909329347838384927325524018323055087552987292083908639116842247181959863186393716237968406704364417999469546569296492341650171141755700224135511061678917758441267244547221030550673800350213497541456855908813371887021881833919547168048600878209592297308942315991640079314177555161652334048151895319660437192994152352788558003763110483447481908356225074712777570014707356380292209357798772895982412956683481414008089864587322582869088841107747681914465719403675518183735782435709448944848700237805099820662523068865272059489135720305490914292228424353200644125979760077517628074343093987148595793434454617186606476480326220570667017435774301500788793930499909532333931183871039519475452413141359391606844197602671581767895766829941400567860109242244866527964085444537200930798404725182294354695309003362911184149746315197692593207112927517021644010287575342850547053815650970141914541132255984991810781806408748018866123676289739582463447461641597491869931622939785446176798627200754422348970656684247358103384654985238517646341125166048166758553866599575196463274013020510058604567151859502445386805491950221563580625772995698111633162254019701692790307642428374487770467913915854243133639379442433707584155867272403858896042351672809990027567530248964870575280498362455938764833277134995374300189728271915028324248836667871641371081703710621263086887046451369376083155070232096781848519247649914511695312847598290571723700941493494919131106230739932947033822575341827386802773120678714439813298608049245733542557985880386218498774262742633613440251661724065909881532606993423897201203969857492148318130282856915122053295808985635009930054543701160493236880664510930655076867158728342967457700890366775578399153997403837918846505009384067536003400508866526065886064106618532848814442809857897703522544057418999732756845942955174729022917043205129976454364627584037950840835751875453718060947283658198018826726172914412071277605410865205654470022998012391243407001928885535198089355432910422972274720338772561253018206537172978837740218593623695347073698839106169285718831061265808167857218012024510093734544709901323913002745525941145725766672079069244279845770177642549523225522933858258975460973804973284234703646045215119174311311177693447384866270548983790639319549987200001557274952159110174448811887935213118906827921819218432999120660467758637598001202708747527702288626775145726784352846734183032244358270135243928103450811915198176459726843818227957629347403508487477230046933680626128102197697425531280699125160004739671449372184521872459434122791334360486585600778497152982389773113200588000217135439887315695708755852953208705384756328603862533836593103381714629825906898903109321147149404733880664653745274197178514202827536157488146784051022087532035636758186966045142691056838682995583245740570185857112848676973226563479817820469670359596832171718855545740729997266209381726679391766701179608001250666630803205417873245999240096415351043910735619592303022813467889554009048303002028880084432657588118137261224910910076430716492356993059147575724172564156072617780122710244364632148345402252498849051865538078680917070885392146445249573883478892218434730037302959982799381129624752207162189161816624647029659990127848930735088588623620140787390491580380092553516416478442566226862247573627806242042242537309342961858036249011806315024592496164414883914317530369075855653196669335315704337133870261355294692075180228785337623771681860493004908103573243926667129032501381893118849322442970242910531489799000776942704257141208633133828163459026844817414124166791223293656715118617133345865257828568914924639382541272251880662641746389155341978009560865196468170417096556592329246780664650779103480331164403297065287309838725766563076650036308345040748988430955522148674056805484196960276954846005722893683524024960272434882973551461457709066730090768939742748439281868013874383539619750537507340310349387751422763403176511439489720517661151995518023632502345924798704178433741067177961716856262997723268540469876774676470451903406007144741321069770822451897032370473635793241230740558975513252324062518649602932266210701564172699438659807245873340424663185030471646579693813081342185072675737297036387706558464862452875331399519132451278696528391426640684845116445989453627541664161917567022018084319805768780262638256807558875822376532498403392204124852716363948572761377622309026617478007052667068042660127758954229400909823578949727042264323492409378119584627824899974591047052490145637936379385019582715210998809524445277262713379870567218487050339037977879742556913747946271272507790913264832371076879713189852136415600540038770717220973630440699576416564076158400537190629398134832192177457623964098171559371050308679439148900103474413032988144340208561691265927518136143814063048159668426643111580171126858320084432594131495752003201449305270632902865634428610159009461610640099780248582815785554956146604877791448478938671486069298037827508439809103155535239000475505304404422869764416437326401719048130454507442232121922646346480632820510194037573034392709189444392939331124398770331159210703385669116307862221646685915639741154177955439033207526257770356245049634003976140464749299255977346894706482680817192812757029693745256329642803922697587944892034297359858607136540079904346234974285839500160364677336761462415538339630216884194164272238901198895680533942924735702321480236197384499249440646116023192305060424605654596527973455270425568841546160628413316107952362967206606753975826537942134934339228290891853151521547548055564971311917588467342257642884353619747061055997844616608785491337271824578754080505421567853286513275334365763160369147241708783600624738528470147190701576105273623465590721150627881850764626214302102525182549739564262672956392015093049088060320211428617012397297397780739360374404515036830911817683123252118946961339810343043168922370019477140622162534342100982469562570035878875739900645840216608428971573960669726051496641958771514697109259075405689269082727786847303903406756022606107338649344316402834157176092050708660769204012505827603984828951152372405831174973277998827227909419550449495519169770242498797100131561065661060015069712239938021224039082004026226003121991171890284352314385347929412316621747928935342411563038686363555732012312696035067797697140098550850226318774061323383085919815289301795251366878583628749197749126131725499720568480841226891909563214373349860874890664273793099730857412054547809725508244067305910666971181407095130783368234030006955340133924175537675535027331759821465078739629081451079495417455193987715219514794460917331054817586936133255187362584875268118501661711474362265213992037335499447011824316742604518181919302930855025930141541860046870679416126197284267698865254947016808115048199095250909704217034525614689684463071410161782156731602259105587919916717996939310934825224276875454257356747649604324882756351458749822684668701597663456940732586159878702292671964186958016548440226043093554218203656192263551519061238665533185409176953682820145870718312639268619174535315378133696591795648357603393253519447998466300776170715343451697561137417676885053785230149037223244709938772732888910456412014935851822592349034601300138770853881736817585586608839657623741028808442522825426952696820690436190188598114253214528279954054961935888205862686164429333816661478731915991015985808196327428590706662021200778027560609697693323191336278415105014632340011752258453893365293395685456200543841935469524492166261836571893069286745492478053170595280197230160016496634565460612363615341037273210117853931898641007892993162023635302970923753729758898336493554629635565276306445111225665576159943652652016639781573307741892241873765115455772217824916088601987463403279272131077533735285002872776531662519908481691831455857850297887154534653914429861954129689478330749702069115640020524369397318828353290025750896235058598523418829380749626498681910259449957622553817783265093919789303224399960484080319648558416656449281310224138783248054344105879588435440518360907423324453583143547106365871553076565474101795690935577880027851648333851640292598641297980880661247894640651915396263906539464721744033254217832340078182353214936557114139852978845078665247581108333900881831445266722641279226725744162231432303698118732060916818351323764712667489093967710549540724266877011900060019750571576453178093816051500227228415646036544726082395878322697616495068934352361552226981722912980174466864678419282287597032391526957429390765915469285334304910270476240139983283182508328310968815140852998994423453687118428009540730324952035270354374491225471005577683090905062571819253332714359397931832181964913238810561137757696526355809540053896543913973277199384429589784166506240285877362222018851368866662090777995231684318803192060425241051285011214743411219241402962632683072714586404120232539919442710060155070891524938596132242486940772730672664285243655646199685093657041889206009847545519530232448737704706053830635708675358492523836297358464655815061573089538256232290774725389066343713799874002241607347114593608998870568271577580707398473349566734647951775706031863517559478927933116491653463590688189755974805769661340472207607645870695140569695956918185500909894539465336787316076038583312173556022803907912756810295834956725112040014756305129496493341426960376405103757501062682294404837574270502810218835147895568109274342833353795577131086872562940306024807670576570359771968875505367141058147649585523547160690754907684150930847359307031578307575107983450138178374330885276886679226560490721840353351890576370874306970764971248672196173630072786075566302433999711210947719296782332234025302307545119960048711739751657220288719014964667911769432834657878381951081312296815707424946148694193416477953838291092887509820622173703850630380656944348234777487732819834582579319921176985199541227657145847315641880974603164995456895830815550296116455027601561802835739332670180846801749873554028839420444732839243358620462523222589819158583864925748873828895933962680626371585860184938573728474471251465025321876833337490611251206932487474597813750436309423466637267468954113842426659980474412049894535011703495557066320363166733769908780055374077095371777159062880970973092703249128793596622448413802750218779213792838954566589862303754634172916153650886607092524170413274924537588814016012295995078007954553225700363235364154036863788784926222480995140394616331296469014647238685245301124672802985058130626786453819923337512140313190430845084781765289590949019444402756656695231929346484208970967643189070380654472198671347299008687199774251164679130699082644785621444322382115373254008417024762082650124526499954215863897637271756091480082109310676653461583820630863188789967905057869747604166618462822718890809465848787500901713152141697811979083337390512864402783352884441233645535953142963403868081082496536739775149016178300627704458913375709888609008549819992913859394584252629716869240279928491379104090697313059786320275915431477372334422569687236841611769895446678958090396942266623884046647471293078550820161916373396249535764523301075376000223324570122844752268976046753346797680747393331078980683733732241072348396481339264657698814368616529706692415089048917568046692660644803843022055786030657552297797600559932647350449932920592923567068740243647508307270681044734057990101729986441792849927945795416548489756345068540564056994415615589270073880831327503274798877875079565661411039406174968811268135420841659299003663020825943553173712305118518588866721632469821807116845388692388176189348492079708828251285869494059600238063488296765317190237080825793596910078161550400415876513872128221418970825556525898025148691788248759876493597086737017100453723833741960829679186679878730033745445276751573704875848321584017260565734276910901324841347569513189283004830445438584159187439630272498217824254844922093323462713214466240157161053432148208639456840524598807124460990094961695922786093248509500427348812311819084916975357643138430116284407913509106458401521952394652781039324462700317729782180205575055527738533823769685838548233359324543538990920580950207131127529123007926904193240328391090437052327560232820057808781198136462384199859809967113645454038834777611867340070661033402365857918257682445490175542688593141645019041157038819540303817042758758904060346768205598999430557723124482266417599560468182003776494944411436532352306663878443843584626289444930510095070713635364718743317149031433357681473051420810539951985143955613110425969856160246663026583640868413863514272314138847874266562138714136970839180477926370659975929175748871121358470250772428113603269207910616938986516978844454940038652449641269165662069842059481392574770475797861520179642073264924674230950920250833712196288689205476926916139390938482406320636362575975788199636391267090514809744724693839196756698073637085812787973677625912294039886668078909685446738055748274585724496248122155463362513200367242391063505671042858635782082437961303692551653054673719992115529520388073398640753689079103777112054761043937163371686457204135206068783964371293572589053155943441083939037091977501160864659117513344119571858527270500010668329029746910131872438096172548158560077726985402978937760326356447295982905711269595469690789577850643001121087127335080127420883210062726386666103557122162882726240211592967667657504149033604348718101155607978309097442442468202022522487788327403168718656833096812149751658917521212427316020168553223116088228552287420020994280672017311885557742151462963096457580793817195406585735192363615555259010272110113010030396073394181827358293431109358337927273310980988004424375756844761469523285135638808653372333674921974126099828558480660683733874835724204698816442160893426135017687000827238495440385788914191818240715486013846090549310730617840579243660127072547844868215135876005156658284030351069594439257759134645439285819936351641887494704534644599335968741180181622591363625445511878961390126038268359281648659870311399194154718511404563666045231253753109903149483577124818246666253952568385136677060801358158679545622648495473457164185623415933910540492162110195874911372805973209834483851724253877042741695199724762094427604572252212888166374105359716689133421735882349899420225788476554622769270776431962992261665106000198957311910233849537722883930230020458724729053350709427538345530807456662147354607281755465539210080852916892522646985816790826171606337782961265220657323473409374651117627034993760210852003746434837587801835918111245504582905448145690832317391073983538648986768496492492993568687358487038981489640900503689972442653095345650651283565864715901178700879217297633094373752107275319062340040276142413911708473983296545244485995677993694049495007594055680424125907564440105434860044411641017002477981348971433620218103797478525959451077827236848120913153569054033136598734295977995510399014885872529815574598151795493164076900502259569129184636215815211013683693573399938063338707416028785698698244815964108963905304746132937559431408608912399675757656790962174500092177659598001639798084777994203236881366023077619774122409131099177893378452885410288213202557849741461690128476809219595476606829122846815345946852591834468646630785308845899075381215441979111328146981786582196338464110789185929741292853880978473955037275939146507818692657944230858260402392934593048809203448484833078303527989718043871987445954911799714363796354210034498996521350740314083614882940758148479069930396071561462867740760429940842658398300463690843788909874577595544538229344878182516461359737861272304111760603119706623914292976665778736475363658947658848793887219579795502521638685747090207301761892497315918183485263459757938075086478753242679648835008889252024371761425676678886955592387321280432138348356945992384609706633776308548589538639682351545379263213231433527449744455478714056833534418034422284937742835615948266231763510481603506126899999385297957088360544813352777374477780647870184147996550589402362048979335538065346987127963488892481878470570640267128790995669770204354932040350657180768113040048532677375691835223838601962676001708698319834398662042333480218715648843142187213773754700937177621090668924965298872438013092212151240632341582433922282250247429449841366163155117457523952791249005809532111927137606911541123791478787208329781984157972794617353116286155510624282456940021591922943506481285189519076179209755626752232640208461077355135125549495347270041508032207622987439588180010546697315193929406947137815251696084215178025849756368979479823870915282736977515934062278509674813956311856561262933022291475823275579316091495845838553084929366510729126219117584041510446457628661708377001744085074737170729382791610431976277952579540310247299657908111083740900899472453911173243033308198639448599520795774554341788764618395168922010643614003635761942529170244204984159858752422109872735407039329295335760832638369531426307800060975332674687691233714067226433106132175604118381574221836880300847875116291272581787286429486072086652088531652162868301213896600661729685018025271806846812178973980204161213228698242726486804611930430029764931507273443328325209673916462618784720814352339497520811445541121664019913995900010166365647003302070256454972942259512444756319237037279848324672871370257561406315982566936752329980925317519019510140302100732769598331316016194680450177751981243588291741148541464725457584832927164422851546231639789288723487658491543698859488237994266250051703322094013175669998862986705879553424591663861552929635373157587192996668957720379383005707036431645412982841891544238512144369408715536331054695634194936862396429637504933763774947872522308050038702637651100993425082282694579015460500069516225772061417627541113438719796761465408375723354377771337280327847185136094741179256667770638925826169795814598367738833190442977086565108384404774085747716308457012748611717438014014989876312275830920690116625661943117889800450535122749593882868780181198705332702422092631865981626436957767553387513887107728289087521656889032160957241412433821603413908713062106746408673498842480457593477192245722156306993778879877786814096959803817397133316372770334680430803854119964307617591542565178011216775737921952372981497910237886531487386829334836111745251249984698653309651818543189610604909344737670131613340784542703334090851970459635705640011159080354632854195490363877263950133968674383809555406221810381894246330326773871180594566584388681104659820884190336619839523623050728010947024820773044628930336604440480209391782579429304945393626708675198214798558574757235834446278829278692608808514044886912917660623775763493850473645544484288356129261106359923956011318016804746373512441638648105536334212496133118732350888245707955737775703273288565187611266109447775535936102649895498620000010852265422096447100447402064452645810961187218382145080178148204957457374752567574226152115804510186028099916592991688736331109554981372010971523790890177600099071064673146572892651831931869825724441918711357137449718231357576919773903526066211389677402274341530901331056105023726744756205359327879897667481984477723764560275625803061726961840988179543999782797984259146576777093326953441882802098328013349294872539090048074636664706205690268210255871881237708085555861340081477254001526607164090212485163298293099594724598745370898474906665213434038297457887998758867272507824335990077880121175531439943358040199493365645880954946488088483932745409821758781790556820275929617233690391266458897182245407420961281165252702944301477063292281651670835851358210295607621704056596909245254529467975271488683820937574421848370810256855848637391895898752335624224726322347215617794572470171314680802401979893919875798025243986181513907957850548942618238070911071745132043105181547740747807095015609933895097361074210914171147702446356308316431044052052501098781291001475291992624388429313335118470824346221304565602326438688449709946703573050037166868387381949422605442580525348163594367387777079027470500796731888365857610313528775506487471492623082031204193270149877327626425357085956196183775069202537580572871747677765491629932811197402538942560938810695887132413880910381235446243778160012545774808567289944276098697958299614766875504089913854825722890514015715924781644619013604607011878922345371798218295481705375969226618675867807832293808784168138541498647388952216718864376351008403381752776968533301881553127421035652283023650426357583723948497667695074638297584140108781770434554492688404663042857697713391881723941124547883953337594214554891961885996935475791469410762556153107292520453807908584094712384704384327897623433818268992956414953708294871107218784944904826680651944914692384354538126935741586934572546793735573119248062908775243525015606504170465471638060656083345510220918765473852153666927587289131023868581953135192338489122076484093631932945371817490280246816160915421439620532760364261016554958076952844556170174538654233712054759853270958334880353046586752844778273035632240482773687685524397531123385071335881937953099419509044362958763464451657741956789579922421122234223930781057165509329165483689944107642749691865379444236971309162524776296467043303368264535927229353193929100541921047441946806225863784121215989520896137570770787247736279458812875793295105810913606049040540977961909107910868635071357997783883784577661875149340143570016960792893702966884133240613046728636347495131155862372337171129304398224140449244885707747485985187974944166834271699759189743567141775377477094240090765840974646313378035824594188416333047594961392317791490379509958528473729815137958922919654767572680172981678776810638339615454954026385899554859860733778263052465806116167266976423594260969090044551251661757025497853824017104241937008184920368774902838416293048200944555114379843936103063249426266323640063181024846491585612247025523826876040197647365445040868446794451675274047525904318281299059091048453852920070597678502155247057344847994272046556462399376043094674620963829984832857769054669461926807353661677403569383159637725098179892449417883513417481645370497485124835600011748921728474703161991710944405088391134074850614729148109750649340229882347374646243052827632240404902720144386039579126512022072849763432366006043405041260395320769150660997187178207765472879090271656565519646899804481820691956236875624456893125504892953325585941676237487872297461512257494307088807621883251768122294581130841734437832371791514855488610048707315690738660381966411123808518270471226805701164143247265964580348938997419057337527776711404723629757858724259006909240468786500568404932164051762820023902070074431754477022590794914109637921636913288055277779537009102064978440071875695308435857971556794639818044487039201432190112626284694510278793911041199630633377455144167836774125590536790803753994881839827125655357719457296942317835253283232414885307074973382124226038880210221589408920296421509985500278300589176735136967054078820809852264210116836325025367768818655961072273235612742699198092268190059462181796139558998197134899032910324093831667368537011518739084216281446775019027163310022712525282027791648500101148458975571708008964487558433724040965916156510840720277411680486105912072258314258543055009232429471855616060387658243316034533474659949613929703360300339962492384990546199048272525593676699188100803742381517121153070587824038013445825928084243587368313016913364934301551394357535425515979021120189722233249676435952527611168229536652426017267661425513129772954161461315520214496957769153835818106425087732807086997631157778734989643335117919444654396966736685718673660896052742312211771692645283327453132124758094141469875816158153807141372995925598019947204781680279403421102495737822251223393280963861928394038528078904059925140212436702247111954145793657702295638570074661215404310623016891648147089524803322275893453832004995628125683309187698848040125399123507026520814460801407043721045952258204887610618866092466258205195728585118013872002880046402137790507200024013212884201057738702160243268714558411443090145295389494025164037530087643933430921352794694578194282039161472926192209668845273655091508633861402245213847287356702916117196831313210607217884675519230751077993050153493889867393597673218454096161420529418807025785444858791670731839881016798476969577817262153889504418531978138754141445115174553424705695032299357947812911053309209507591471288363047567642661696315791366422146225724617823460546348687780111163402190490417855790275033050765064256813831707785187587621018632757603385839565838243841953161577076294781018521420247213262443222184255749905395737294135843172418037440984376410848094964580961050291502320118453359525161686167639836465979092254866282513937873715836115505329681722772774584982474736524351595169031710664234200772310641838877506948513728209389701663707942655130175815586679470340077592344056038451524363049178653466755225780732771184026593737786864562673756403992301994511067690783081991080223664632226410919422378507667136363065705692439388987084589807826259240320557776469518413811403514602974800053174172229722754896839786563462784400115015624378378117025797072442962423539169400303185971705719781289684383647974419957097761001381887312191619672266697977083428989443019165927247332402088366058261934700225762357702766267007238933319203668595210984082451982194754591561644042488156021711023155527732909301187523855006969109318593528283465543452154050178149931126628007627598035482541524917405628165132886226695286585423556890250729951253137513660697189005883293267668351985012000466365393179514839001080576922002028060120766524026345922160542377350259272933088481409222459037440562206896812135418414583366254643050032623242198053903334395732806201606601997638429759269695510353215810766753882395995310491617158647664538601420564702565604867018315807962886025760632835116069081222215218697603369752581561332215564268362860594490808979353492245044867327537982826972914049968732045297122624748956575451192981438497957945572871982047682958467140165746283633343455523379176726958294039586733183054920169041418206050498451733210153605881672910305769124726970453388119633763345663940056957924775644275958915491018797984075289993234491327197908175317652973054276703926588148831505566387579229535732419712865912646492711856526287879512035381513999981778532593743468711027284028279309469847308884535087180878060174741892487533611026199817165397123549458904528137509732705823469422219783596271688948745236018697090720270819552830584645439051465703059259223525487091090758041356278049554533097651578313070990600428668142716682184798926448799497411672376729458061665010947141103992824056642659323396869799514100849632053566035781360625382396823992920599569056809950589486160582400353594677588870405536258091823517594094306828485017764464391434645481557979032356589361394683570762223965182505143342784350800582224890657723386679912773374581787774400118076539161889540777462331191053937420245150269346474267725530548296165331018869587560099703452411878305093756042126651757985583910770825671080045305826327986088094799616486780331353937482873330132423839486815646732301595009688186772899255165082475791199273803135041559395564650164010370206842920998127051556250959507062452463069927247906335433211444256660349626437055505076022456548638672579697929073865408597626877318947683111519334125132769174789254745980010158579785014637488333237793688081099796620160889145435985995016908470423985340567515124167531212968097239070341369534571627256522027492339157954442069943669601045127922584230662892846777305658291964490447768099595846669366515556960908643559487073269611042629289930647671205714917902409595413890261499791853451105835093711443535167617083141764716242052009886457574639861930164553330100770612755088341770069303317741357601554946297620266607720257376119789127976502223768297143637686348937748195565555451098355955833881420178191179826728353860035919384826864425008200848281148671442189284374655978877093506761194389116907474244893300201684155255822696115018803760734241020749609967472599529577014412519148238365146967367117567649954105485284876229249198024795110177193700096894703755815076888272480731511666271088562980911902177065051788382747809169934050792259764455424590532326256322587868453317381542970129966108734033691988073014289474226911789431725844935278080762929294187674609030906143870201544638704343739057554136463936180737651783814008022949726307875364213298387435978956494652604157028767628594744634288955616602372392607034265005836145451053512828668249212820333752311178788833312278274690090747372289120776898875790197398333486905645962270291683713658754710909434742242499042028518683628578578831226404096866660681724363655872579643486257080931439588791067857007556034890701052231097388751761736869470636139832908710513615806130969066543602801742226363663551812668467217299111691809080796440276111750607777705713607575929820781011561885157826264802230347212932641319982493497445845523077325251649243634968268492178095325391775288314936432477649184403417400782221589533700507811640805450285589726042428231593383597830473471188154780406758310939017721333170959500270066918832253870885506342240954334270282134761333477821129690023671388517857588589031175028743369631038058165463693405645287717599899950512367688371707581038952017317880250269859027065184348769771325248508537596758868383690432481148194696252165859478679805832815022972824992046060488660121356588420720309939608617295734106288118995987845795257915946756392092013594008510619942960267888132268126281385795403109305800937103052046534927544461066192065482199188859295697078063439381357159137721948892495846334165658326628700686634268579538964236884684221863710401026779375260152221649578858302203786016628565935165661110540686112948001942035284206258855650980442199203396630223984755854125747920641141537618781138174734761761566861759236446669635322331355841843103374524962279114820577836002574890673861851357876089661225588924013161545624455508444519888240466145202208505387562864109337518788178790406549739389726779691516003675821657748429192903158987742087839118068934185639023849267650648060785903306065730638535947003272001619096651884400031770976314325282090844123889184829876844152517043829327763897000485331765046352035698707479886309368396715973722413419381558086688592236685838306483030759114942662188274777829764922358118624608698956726740136885892892744956514929117135154074428242104583085757178166545083282580941612599455698424119467729607615550233529445592935443917714967097756792272760031047602497407718565631691391891519956548034556087989788128658580951221129430193553124868412454995284570861628445145078679905976107731008377799858948734392935464574711437116985396245552563340377066166830114518724516682619478365056931231732734803360856303581783946718939762058288620298678116126906561809032862811544643320749298565635723551684734415037801114366337086581592666404415714321141073121766545994036462953979454986288594128220309469006814882021508884396561895122146170264984907678479241475182182727825285368134684537984281614982376440986849455698339480503190357014293847454432539746669365575689844846881900603862261510551415024670891549436639733633760322071209785250155417885551281232641752229028925160424382941073302518451515929478138837154503589990820271340384566398136137932463375737644589984347074711977749791256334043497492054617205128965392391236793144612743667562519640098602541731295527059018408896586644739145773942884090034116056593699812137085433635326016040135564269916277381750108174095251579847939274521211186886928375875234034291826377732982057102082429371245244959633972233288341591279649853654331103205481264269470372465957540764264372900229800332329090029546164594092939252272098045733057635496167095596596763959101163368583343057470226449674523348228972894865792682970116353229328488439050464679098312071629828968278104093556453589903333375207288895556530490789800107745915020458870475650276257307986625630339999236445373639704494930577206523020240553684046992912736659078268496178124511773469021906403970348851283350737326651971067998007916958641647080971496066773160638083267076151693780501652162347374713794708745993264234980931502663244951128848193451522115901861432274809597530561341999803732728034231713904740601857208779933871858955947379913779578872015884187822186539560556606512189926999429979913227771939598054167542981116965410910518177567666892659103923289068337751958717625141869424255289899969260153680584376233301433127549104034260027158350745837327106718158813166247977380677221110088239597450839426471210813629125423830376399670221311867724454440877881867924229003760084262005485674680498640271090559533502850936900772443729864521027006397323496016884741809689113421286855801799246217856433438570489634785061960905276299631101552337341020896393164938390527381255845965775020483015524177304139208757577604427337157116472443195136551516295185421652021434938056200858214359770590684107946414338992452372415752374488282021489293836803110215931375783805559846143770881691569609555071802309681713318308459378574085152955083411146495569741529532027500316449554251766529487986711743572579990780826910811786527949978995562169787040745782484387780670582853839328668603128460757158705942602515834405360944358837581995066318195975141695359235374053948842122165173929748922838796585590259945313775221513475550779895267140535354694994313311930561440357612485686727464621677758745654646238433278850648328750658616084586690729937682449671019509012378653515129682977339380459548422143806345845500605700559256148486595405112248298485917516308031543766334325826363969046927250441365679485334196937384557307405904302356764137096929202179805793604292792969221255379935289894281729266485816351437027692012688197967030963880481927527594916336377014772725862966010377497639038230890701670855700872883347170359311243099034367596848872049316608566417816586385474225098733234006706526282969564076523244375626841304017831992557263380014540189484092374526519677079979965747446037835027707134325726544024514189915534969599743137572973932103989445015757347052020377325450703527757878741410167248080591472046323759017749867663986237445851355613976846361708031306140782168343786249818328934941336687369970185768821653750948919583566198272639935906260603486491930461662535728325972177697816396906790597516952389938029850390182629627054685281176021303909743010813657853406455331323819137842740027207222071571165712767660296639928137117020894739080387735412000626265537053037874416358272479134283337660349447235573678284945482217392803183005259708783713574985167853113276502223447042500183287237332464710837936928531475059081162324684537475093532716331799047741386397581337525096624286336287147255104326405448703401980393993299073826526146365440064094487051387046276330656823974570349961671072060113036341920282234629252692605936845096001837245445021810001219629647817321063785837096632575964272573946381943073448297794636202686013792061243040438059910842499558778587926364088426918907053532651260690777847416918460212005915300264304515242766864677233192401142514869842549011838007597802569969138544177852207003614293837483393985468529067926785481682303259793353440555145437072007070425141596283398608637139024367590353915353617207930725887509201874660987483191228835798095211844411402548282292571539707894470482427177357009643739711828628199627617046162576129842050913390686981711244125088708270875459328616882921565034580768618903718453091798152411983155057018522796057482817608989947202141510592934560490377289856289886300064325603070358489253136547479019752780055773650092606090188255676127387499439268407200941266700383604768224879901207797284900210059377699996990730213117921280421221531533577795973376846826253895743510125363393834405867746931426779095183400729476553277564708819793741241029449960719613497183342225820732261638351532386943188345585920545120162966220027876973072844080554808440509930970544491287936790289784185652673337258977768715115969926808599217060890195016879033849158235667145107214610737315467974855188605726759311311199427597684790911058057367111199394426980097613023687381623277097602594632240362970903048287480776373040274014135088879301864843999779068953187452836557338852460655749670660927728505016135616435910778963472875029533150812838364642901506289671769055119313989747563842422493093020728824878393854326959597116008558127528507350279489827124203734451485694388595823667736600850840073739135990406228560439210136325281904280478744541059667704423526271619526851935256075909581175134014024083401351169343071387976486430208235463570101346882803760751227925014455774899564862871368356233467726732734744230360905411558586511351692663776181584084028791064592252906257550685205177160095170174688950834273945256666001300626295430351955836014241041948740176787462359209362494948958872922062290821234682070684014735454207739981171536559314858430903862086780280228429494368566026927006959511453327205347109031882670601808750894131396762533291975103924786416972505635910774981082169041337429040293064423265664762325381663681471997861990073539016683470871754988689887427378075216468627363957823551763181184857261401854399140501191396407084850970031277036286929005578417029819590424411004193984774648042642975445898729565303078745314589328766667017486419662488467867152041186804841473769747728803363051444989750469369599654171163763008291494770087998785104128061144612056678138393415517950512320707747307236918491634799829343673378614326896084585456431852703259218347098455462798818630546319181762918739568040668019462305491946460861202446154380338946287460352914862533103465885827112934708230805470623508999792246595492708169041322820273348665544842643738958760195856646535327333342589403020912778861612289104285446263982346012496956543663139816437686258743655867017053715907936430686012536718351196567506285016415730463986877388444222752103865973932069717545306927254312817734077828698547229309871773445501492931592274049041655650172027737630460038650476876866256426052074310298660562859493228021034049777352594701640837613488870352741182666172206444443894262321856768571756187348894723999366811264930376585099735250307163518298778076367399368867895276022601058328051381773760342355149821054809204447256391165932089099900100548194190546490406780049871168212036764197834905249516079503250770241172299165613471856236868430038440513523594061265819228243856317731992818708560020968940560105478413396303122853696263047781624165808338489609323258826837286699212417300237295462388380388956562579477838774979795112960514538354960453776869711858103519531016981734538440419908792058921209033512193529322493810624559240758709655893661647997556537671997322719637356014812306876246258801277818338446824793383130533336218889991260286492409036638244488592504749352122370944202402615196379593437165563041180000703735261691283613588302719118622028969409884472259148247299762028107003290187853075243449125834318320638032806923678993003698074158924327328745394576441329871081140322022480231361162882035632663605119310750591922670039259565712839710460804938603989706033508405345581826100350960002920081098729308686752414527026038370156523390116587344965200752697460660690969826428145261112740805292906765578585082820425353082236912304324025781306600564745110168236165386345886596591304132402308420385995962805782651991467508064966326932848595558540427674235374607441309780700963312828442824774990877563725334285374958336813897443759223346781695500974896242260070027682810693681615395231935168564220217135899296193911311749365870493937316505322686767857968579607199004432103529462682619757905910363179275694360476873560885550385060842972939120139942632402080821239501301718435868927313048559281239294468354936434051294047958081825118992991715329283933263525886660419966796979891431203587101178583185523033115347981679047286228184456556698151315712687007044410948448553116450589726020277616490903330553283827562737812213819580321110102028685346225646590594300863756292878052601479813017520782383741932909795633922081106431594390704228086440555981648033995420666692243266286988197236612773964305849627473365412106506836456531562644454995035768977263255323865470072188177859758113088447781287310372535551846940868180628140831948337923918607127313954852044552331219141797575282430871377191369222645819983710712575469106702789290443870558707688516675412574629917791433857782127838423658468405671734965226739387552751575173963028745026552120863462762216375213593887593448310315530931608043552774735833588637178696150531736067067132086437764058431622370187525864742859683242184553195380866495754877226884910555397828995726527994395954310271660518659849784782876069287204051977763163590787741251529314736881432775293629156399081610648903515478036709400131337947346329394058556105450127845622213164011240848760147608672500557864270848578715878587605674599300661485212599814519511589471215671471009306849812384009333578283602399430977420886699019557505800837948301182847545589712551504819815637866611576330517135547396000815146525950619207387905288725757162750834223282840875569643666812410495860475641448743153261403189871087848073909207945969755057013645257227748895997132904838707440785779020352464695583402509575121293205953782327152550569591326200787969610048223414198224200954487335856800595359503910842775267827898500032951009731038095942865764696745502877633745888299818252090325967631733015784379112156321292135159641312208680789996303825205734731993475630966968834608149956165181344980225759523673530901876497311264355080068786740891919936718668306006232393939434590075962764465243068457981508130738045932769212161666914091217849764443789125556223097048389891234045502752768556256410898708535344563819148039750465194927497262508338505773257623037751341884966671773680759071234038984574234595713779153307125366035827617977210737301435267387717246427621879132080724618413647071509349615301071360818051218370752614495472074759983264111493065106855764735589929007125660297985903679758870221362027278880569674334843743510147856875078003874150181509287417175451936920921277504744995185280781676541886913837576812571423309942813562802656430366418534352871658642561289155089659268242748718742658285729839214546949892708946266755741043550332890433536534816827401400299135305209449867017326271183539455666908101758622482221359284722979785939416293211684003685406864283606371459429783297644626781505114657294213916397733325644281588613406954726620680751160768943884354113490521373284378316959986243444204288484023257213246118746390077103679864516223203058385547398456848751550025557782125987045345675918342126719535764930089954397362294988644714422314507176128488593913688457428417746852935748686324030801201283473460756844038579672878320645624767679668535605157759489119743380515559940540134426016845510454064147650417624878739351863855712470980347178075461139670797735886292612135614138714248563929051968076466974774476312640144549072008465859231805773725464312794692687253348997418813111394275558401509227615907191829404526057595619544014803730377288309824566702393009134946042147827350443379612475966098162305622449391222108402211688315615495994048940147765512124088643173522010603279288089142791867340791093673598998497626528436385777067960974277157724782270255806954181633934716719227828443627426065892321575222674021622707635702400597501413973668958371519326649180715756589480156381118366598174792208433365684811905215700778378317819809638202350627809754203651425782750896519409748997898970126379407378375914992220722906859039875385156954595648306535042183413764247626846861994658252411639447648352972136237218137962627181333252754822568019460759525464682869235591938376144687296597791143550249958470952299463897939079914369379891547249286856084995042728972980536593321608165298085997126589151959199151494107404881169477598254474517298501201841881062754443146689515362314775256558778140966467079357322830166048693995234153443717948632888967789434910927108611949012661165681056988798171006121306701483784632703509965970100076385877295689196668574298590839443593778276746301553627545526756713203415331362909052487052505484573583644165979559833190147471764008230889435682922761775030161740401940843325254110497055042623203604536243292892250189724626734580798506339492832657343401727017769015112519458253933106455771903430185899209330963366204852867808525115476668967554761683302866941089153735561864239453006975619628388496699214613894604860415831600271809573845953409819784908206441898902146600262395343866390694521751906657199104802263298995477340456672709487681318338669019201823617748870706960973711497505938935485021911336655835092961607964937959671245962327368542213982577589461890336421018345218975126680139525505875030485455606704027955119843462511904595929822941107364576835787566762125614418438572015244032461117838809326752544835072063927530748866798022216490238490674155633329690688700021612423579227539277202846588337374689494508123703550886755527998940766112318227145042124438024476938551862183282503025733229074210088692981978368922827800883936747013689265066180634512177640008237366440896838129291100506856835783139104630590486170514157992866588861945750117701498915821688418660654477796050757961561840495379223748312624068180587169330708327450784469446832866691833041967019523109754744058696601473733652138702257103471062872513772480611343636006532016502901489998434600093519106187113448943667533958386344187963369586349039645130789683257272388336150458554075364993774294266579643756301991173820937575399900220970616253265782232725072501562047914894149536178210484622401894681028101961111237439044233377163964853733026764552016825001860675072235050798985115924976836099151265114244746105617617528105702493636781806221455040964185436484556511274713331570244829828793127282359236079168286248739613308088290652106076965061638701984651761974895155115531779377621000455544114572136466685713994912149023723230368895157377155078763663556119412068929200774710963335927401704788850984100121647986815855645492765728211141887702023279267428193946517665953975731690948416193096800830829483619757834260697656081869863061999436738161021489817885892828931519643088840727755019595807735071472427489857316450540798793492045032445945621745941684838290909700207175411237485953350262323236930566731295092916911641625326063378767841491000138228257173834297690908058808273776923951051826945074241890560243413314603022848550862788468438146750134381221205518789299668470125007784358350250426137177678341524368261174274150530028283291761606368499330639035103177180603453073790220909634597522894225914460516483799268133367005461346536043215023326847731871922003065063408492379123600129557408126102587022682471118117381143805396323583030868928725648806997008215789942765093159535015404717419034703757752674928727945434035081478538294670702183814426136057996434745528956965896613406292537446301550290713436092417850859397450426436741335161900218818427264937382534828722490345459716898523271964872271837143051832515317979659149750402179151525969067934514201991309281179537438885556384810958090223445779184271892553596774913840658998234783039626500313598952321018396663324872120407658361830379086921834388791241049149588177398249542075209112953823991562231218595313190479285516700197617529018607264279043523146904140651119392325873754878614448872342769950817378192823174245770908091445165081525825601595239101073070161328008154661300489832396184245635514675225688403327049043038268636215931077300534681246430551483634249165321671563995974545688981556187226041450006135126494941233851471638248651326751200656846154699173164944321840570081182243043869113510079923717478065505048921654633446659974512257824189210981275333375481079572855508402556352750386155285625760059593810630432394722087382380312488300770247497553229086632786190395924886456744807900810523361034637289210262757865882370191544317662651639505603418038470888440132242220963097583818410238330915152826683978839626771433113514847019293196127257089409976129030725864888372265432963550034041808396538521861184266902628124475367911366028250312247794399965355661644232201667644684174318141465127160153619905343987020711153679453776516813238273980201404784260892385506368814162484560121711026795711489303784247054928595010003073945691077149123069989641036934100225512419502438593678983698452802942720473184982415195588956181185289534246708167779103215231689984511148254131848356407985549456557199175174304379284382579876912881859568228867107862608335161399016980503152182377500662164227955440963422083520936520199493316279571312095298578641857287359832148524461783955186744070712754962141207412430635468043024099270131633757427555214418327688932840586558911417102787404342331100648842465932109342080215974941409473098111124248495972686631247384254191213882314215203690600223606286777537799887079159039557531457981789568139448409677510272062756947530495941371855020182726455260706104607448498056753079971841225902928618505240893328775289136242684824784355377806309031482091897758494291459997691881035918869396190050298434277226976452678082531752021723463655696223536744893225510755033091588960885973632753649729998523645674646242585349892304886233618331362641518540426922645354803155236520889902383928811470302238032837382172633139133630616473714398976382835887746827090866013106800166437324957405773267421373758292188272247947801988607841298134168486742907834740656691847824489533865834633696948046986466196975333265354514680986560280718128160756142850782361416543752380576009900351443957071867305014466666681785825121493469137833409324828463514995289051688714296365316408809826888633905656192341859441620720783209307643378746919040822547895424403649594874208059194911256194700157578767286674420863984874280310601205939616766969975367598796176792243120203381571763080863015128291844647107308700120236903802907835997645373883455636787830610439264989631787406416952826279050305534585921185357771110816834924747540003459424950627362122511416426086849992768534990160011789319830013417006750256151021245568703078057945959707541043284894679051908890564858371655083458766893149994273104308448785528370772671281947667745322839647934979448314227371704795722662698659860266370845418791758131552481722096301199536440463529155010991699381735706965722951071897701939351057087839344005040944421743556145103694962650311130415871100916102761577792852454696250570154515301799565955701436443077677062628638454348462111769547641850855191620806382485230339167421973922153256913218823460391331411676274190378518388273025958736360980157625835419098403265679557529493920230372167255980686586118802530194472173285072657903201940206917972478046996598817202448341513880233611368344854403404240945129159123001883838518357776444725593350367693229815111960366542439341386268090243990780579032841272508782788447887955868322121329683763674965473428261626015863912604474055693106505978550196438305403739903587388167958344728701970499937107909097269101765396724731766973541174403935433849525255469441620080706834842555815323518134627637226766468415582796249118240862374185719264033710347793536581290503567760544470115948730552635141711344382458393130199048730556941849714066818186455254708695882207050020499874337712709526685684330089446821260071410403190695639306176482740285214039617914713116955214261210929042688940770996392572394616414843396016223916179795915378058014264956636979654806496567177302648257378513721528070970189264288215266225504518592699607277689186337346876657452912748803705337792258814538662780177899412217363825893176055044227264514779566122902377217019322318307499170199195433511984090370280931836668606008557249971314807410238353453846767673955121618959066401096590511846418771995487958677506834589913106291645024834965166389124141523412951290360591407963501874977614854346663204809341722987753595544557769374459712584301646000123204100014405325021677877870567641747275541045449742500481784220891352571458445189387537845901638416081403849279006457380026839835055225265200409584062148550248696988356727937816494530909362715223915070989513086106264882929524096115097424064846304182243277778177642879898568248852587280817561002389232899550844215365703850719454247491461742078502952975860531834421099306023318668341012204635575075648161845506643557628132904801829306382624643166225746905786796354037393177298209038661986902298824988372351651084989417827406065660751897219965160404883701304369688355482260402919935216422794201609410819818033342086286611610698884242175291611417245747213445461323397320869647140136200126921529312583354909388705664669077813542767935213445126001493755632925327601006969047880809222194007818842450090367682537358440761988358099016372916219953790413046379874602686462800634119492980396919891913090921645267705773103452193449675532706318335223407163325824446560007681412823218011692316010301006242283649537156759869402674266172152480164374686055679126696264643817866561437089385472439802678906987779191479622351720617798857443854761207891233922969038269536356580558641750246494499858767925785203524561243419642147534179514759566192832010026412938965151144221885068961216446268931550060278805964392828458587781378179045462548231143175685882005523644043567912942863450776585491977307755767807965005363233355782136938901319475918049910017556523466302378483284396987502198224070884705639158949707490434539790961179534226084773018640846934934442750297583146637852923332319285490852293667681440143242607193245841847880176593006588686894699423241597714533281083402799228385356180427036929049244361059960222088437339291204293893769621877538588134445360856177973039678275254883067590883531302461131775524523096553507254295636454014335446243982634981057028453961751122183136442177895570828138702886622723963842395946576441224659434531389995311482104788968398247001425272552359223820882295077067094851388541445885225162007841673205413643375199883563881382604953963412261992879794719862274691903043623930052584896274848943275944178852335862963561892501269435124293056185417320726961842793990492751345992718665983083889480612787758173406800272070990033937970237637122376561287957360634965830598320388142511218220246885172825551889976523042114877796216403438078282181185945262889315521318227834196779598909112237728026989874575173175857301641601581455038024063130076039732069791175299572244863506494755503406833475270975618553468895609977404224710896832790200732257988174885742353477970122260015237501700835006981540613611664169933762181320796349712584956146075070288266923401367979224963438809226336738162111541990535679821922076774659138648863130190611300811396345775485648633786735530904175075186609736550640711954498975149891989029920068609765077154675325843124177598815564149903897767084096498092571164433631563392821299095010263233384749190454744122796343835317167748388418529117236154502549856812858644238416812347129086162458641367236684490694196801130323763201343709546361508528594070763556614224626086722937129366430618275614339379160996924105371058380644769969216867768877307228398401851884549656579932965395976990181598590159763826000996834091173463339768070188782638375491370866637947494752720328861344641372720398649227963154159671273528571334302877964663863112896636095956092971825533832938195946132254459699884711099891494722277236060093793835394075728450710460699292840963887149598076936275882891833486888096596445356929512472022576040834334004284278230376577868937961194147390789028827833093463333224412785188145528494468812951035656736971635509569494886503587558755210003118889703399174997490692992234653330646288798548227986484953877862041639095337560832194242937018426491017117767163727639995628506769701380170718202117519543165835666523699819998184571650575983245982669928842880275546558454698192247752805645587863978882494283112276407105490308799402844602036187194246704961848608731414904988189711781881828064932212090513466250004473629604319287931446319411515241527328630499535980390044865396553550791145146880702254647675362543837933560002242302614960528870152498835832271379830691541694004561716269082746176993257919696439192543448045581448503998759294061736775243629704495555391936477813812561155597822513776142045213975979550114199440169648661514464875574588577784316886815138455014502513620496769142056426641993022312372070446896512128534385925758552728432908775084935420076278503569531147149803507941119811718693593559627625242133460663067622404751202943130955216586150805136321428636128047772004825419077524061173734750546135839186216457801795512323141120018859873099803414344996792191205264154864241080351408751274959847340983294542348564821036427067228601354727471187402887313702894584722890624006181943967157238075462236818570082597030535144811074977528833679517356294488662158335174520535695130205400978121971113072230235275439249059136299850784462819349750804931032595665274630095272542692671403732229780475831472313617148979294829117854241398708366310734793044461349387138852195057957706005063166297329468488089205312783851545881928573145806233075252751454728647754311133369162479909759976913115685869769124778916265492304589316663980561971393935878025907114216246172214245389386477574716338199742418573743499296236448653872457221693256169885047786727426510451815866813881247424556064338730990838369288963994036330522154071298246604432822278235041333052418522985856541769010596620190673903402588242222712233881322632394717893069686800912428491194715350013138404611502374690616584066042910401195091748868979135653494952673626161306352667417091747255184746793334530281209873761758907769940988112558957057822118993279163520802445047147428291915643598364745075516684647355063208157713617736709041902945677978379368004629209614940812287630197021718648802784317815399603115783032016249375036371621835361252234158999913214837957287316152756708081849322093940746586490644597912963757952398425649893673937131688719629977176654874062237706511996655304865949864425106553421789980872981577788852163337680251563197879224159439160331660471892617352131120558761849501994221254166911611039635584167322989923440520867871852815815654791304151461538857985392738802599868975145430450262254688654658023232407126429766073501640034421761255465234672820439230139645855664791551919464498296807213071588614605604691020927827308757129078586019377968610564413492513015391997267770057894333543003499189412663339607161102379737763132086454421245023114827931177193822241811856342259036916926292238604385895711131843792239602547724667278035744399135903381386238648749157841540276984234217348119178401114947094788647990483732689017709626196841045989993358163500882749638982322315023125550242138386495623104346490177332543696903118999069419168069169177029406616449083417399722446716162363953534537206170410519490819699338401998900076758339050960951572269306643743936361086737623266326789431883165990924130931853935174034579123261528899126652434418990634770912733295586701668285020079669956358646506207252386354826967208426718738486620777343491317818133709435149026085441309419969796115963696753056141556981100117992766703147595622144079979203171591097173707711653211281411698339775258556977849736061264340525865478899283919152340878507322226555281780300329323382395580724141109245246762697358123533390452717816607432369616223853462314518485849495713627742533811363257740565865025698801313183714490860958006429971634086223711781625108238438263236612497153997887806616423673427431415365410680821467332544918732882908670281561618189335207811743078163427891487005401420979627370014360151680426653507657413209537260080519005283015608226841746745926196068340477125879597963151315749937257026502124335765234983077621185590038233773093573185560497777625527674484633140311935897433293354117175632838458403868090895646900408559219069782330576435958959762855894989045177702259754324231999658731359996926502103235789966310947550131766919724466327804353125303131579059451696850681390319481609702381983470067882168557275831366895937354387179852229491715029672927832633267786278900292492175658928029285682489107042503571704590557319590226082847748108215681711830028100770305977461023805999465763991804943321855759295025836312753916401848277363402130335466132475087101214244568351211060483866205489862488271205723378864882234615722103985344685495318702189892293903445672512165945736551478734242973790103717611478406143716695744772672114689698469358420722205564781982000656018151611404669784040936407124009336106259903283360234482590577889733381935751416477285322683893543721986923512099275299454961682553878809955466184378559488794109851465965974326648628928671137471055998544660488808135601853999800913909877489394014018494446706129523627306950437044106911365223146702113452892316577171920992505397577822451898248498629094397359962989196125391016482909205266834681317782540095226038054253131278362210609857245799143173670844589747589515364315051562838317709249074098634117796308464831833601745076933457991127009713991339673484246991621074680354912522525284881276799650265454424539341672799517053139657276226008022929781685071245179070585961255503073186606854267296904090585965111081712162218204005387942293658271668689391937422902632433832020055405827408178338469768453638819666480554320444485761316313014103736994803038795954206246691236305141329176200697908186837133546935573946088469979134696004226208669949864508148328945098594061525833589296950356720742769365645224571913128302864526859984305974486887980677279236793383309921293902582555312692371446884265245903602869223174854476458492979262838500381134775424431018048671049080868659541990980316379737319867525229502627346696469904146965315636323894837199574297399416183852172216035736841255724953433884986071184058395327316398417071318220948536619156399310686381992672778293140331434270476972911554863726406257472710159029913886260965516139507537100894000753265856691280910201286278366380086849369465868181223500421167415067121321931136071524403403661267388199159909494494799437524997907059911893839004420431526551437356153256070956555329863989136801474312313820337834959646585808749054081064790140726623408429768393868605404745440318521323524184766771533632779066076020085079060167676626267525695085416837901751964719715931400209778234163118355160498472663083542956999738250972161716872143039892658343525333177725363067708054348078764026181343581501294552242746611716330136864365631423009127069357396458116301619518533347256013206665584480654316656199250204418469007560946737720898262899104977667742366739419101853543327621555495863474571998257563498742808507795750497780634236605971068316846923860716942687506470076224420508467804700879641243131932635753368197001888755654050872848144013097745054277767380128877533935740013970508692356739032360973107339115278265376401762868782524115968603695680351432430390172898838128114431935524145395792799750333383469642660952888524289219102323988658641731028325163440356421408516294062805974260517091371417172644555054510468587605802982399452000821713695863861124592510414570584826144627684643442401436080722881452359008441877194707944276068485977163322313462868558115613553394466849449383316375801607447277612922165028527395289217451774204512038451026147909016149047906661723825547970562200548453637625395639199232858980411689187765075516374194793315204713467073382547553189269198747591777239352177795774686490355103064718725913478482920063608835689338564354404384212094973169293823981836508705344490168042350045031387487977214167174736287624062530102386054290330534185174697301385386953891380328303081392430679643665901765728596863248112257980036504198788462566759129319754563037083491816242161497810903034381022736886465741352693916283644296817846010178933770476857001085050120436097238376851116340097796970739867073884873849795418373348944663581991126813613208810261122243567017769152171424764787029954698510891123173154206693593509132675995433740759835835703865358353297755609859980277201676550636106077953491574341933243061851936594507568464025905971042850972720282963321909893350270680854538775359608060080548223488689038596869337084710602313136970834621554774681423100295678377523873820476117996330561556305882362953055333258916955110643538688804882437092806180488534143855658240876439700576268015288641210282897372766912784648511716770569403579088820036317727787338053936793571810800292492629550127974159563203613323332222866998982487686405228585314409516718110936223149605980725402719020253479234033961905753986884539528454678161859845222432919308783631501689864057422277096810038848146656440945223250826760374375077836973909556728601413519513858236142052965653566761461123693334399140703268425866917191387484622280164316148008659991496336563213773674953665223943168015085606753566019574503782096515142755223497497800899562330084191872341601908102777848589335872941996085447436316790181753645678062433216248341392130115413708385375614201172424796511230796259074554602361991616897129677856969795119983692781629169536841795779370261858073220332055092264461022784135092820404012745550526102297724392655890662025542822628527379175482180006528218052191463452903739072998056966698652724789748563326912001123121690281313413908151539284203846157897410275130867142124974691029706394331482390924562218451955441876418808218070106664236184621489187377825795929579006386042036529921571442200226742419954206964197386622277256410861893808664327585679414342577021289800749065739418577847878408704533561116342577167118761734990385284348668671582484958987960728612269413022885764928941020512647015789297402638704197075325533500643721577468251211031389790407832573224547982126231064167649828521123705118135992761849824742736595744070338978138220279617908117176168414507007559984496345297553826931826174119899782429580231418589057126788572237390164217031882055722437043810015624206203614420646427788389281600115673001883096782578898468380245257434338142938009762193471255423624911364237654538394076644824925165884553279184212042285703852335035120332072142116192421923268037721717484558909889156295979338134266444445321328728640720788751169088652646113737371953036786801672234020736518982241721054200071505903155443274080470836310801761325200579081864860776377892219791375720520133180049489172344312087329195371764652251142219483639382808708582442797094772019637071347135391809530686109468645378999437297876769151698858938977609888863822461792858537429293438860262563075538354065813687348603517855563832704502028657769045091084123221130531591263808514134775686393115057697938799393959164160041637213909305607571228211942023801601133493845272845174058674027255122166147303757092089831420787679787890656157564546637243035157656229033923365590201957858353940152222313258503731992045892352961664408222417835277000999265302481882850224049577974695787668717708265511349685735475754284259219437016894900253615845395844716549092706828653475681225716562463086664278618625804368931517288568198769750694999413344638022694712858348529164325966889006617282898901052976065462556065220888918319429605346094942710443517973937300533805720238750884678770254574680602220793753101337210595793661745767614928431247874851979266813257313397903798267305599954959791139235051519433669321012669237110332195117612188876679890442934031356040522859540717041755732432386431160753411437184793584528437925196904742390677131970837636286542992962060752926876016904204266277918583703257046653001988746941280473609856139608402863098787813274178518328127470525451328668608010308432355476655088964224622858584230758220464997696206726133566835366587288760031609730846574149876832341245413807168558593416960196373434264134182985050318728655090807533120987735465399943804991553313212155195887879756821398723311359290215898148443890977317168074386552320577126637250520610497954660180037754894504786258671209858680481458151979860275383759833630638380964540267438928670464222149761222144532992167776258254643933118961453257304991394032826264730672717651033670627227731955339490665479682333176727485877911496263858105713836678853240085309789407902166192759786629892804681382419378476380909211143784391063937136457622619404772943942368467027478993222691938753372990253770201830912865488931527959634573814225513569966931687359733118338355715812375592121455147680376936882498386866809346410506358580782365502416926309565765358423789031582328879167776316367128216075816074643630180884898651377806340265011861224044827457264341843896639971937290895486254147366912326246452992054151916239551742844268758537370968384795029640696547763884048174222743447218453326093447422983258581169699691552442348116786317884999822845290288378762568871607299622148625526081036888192872981483686887078482313037710853576250010993255882982911252551382404307748943377924457172721804956068189033929810504097716241114647224250804479367834000869778841256277860537597018735537192236577288239150584248520038902446552168274507456535886750820880237440258708214528356661433678442553751423728380499065600409380771587673522442328678778073996461041473656230213142086340320314969950266773682504368808978931087505575384306757215224680654763952923574786084889642438530917467192468376719689129596984313518052653066641447996347514274876431266725106730678507334339519363959380150377909611616215038715204301306193273449994616770696799804179595785762122556841315451805818638886751748444625626001382815136698112124479056417951960065098777781701960174124396688277051619651574816818311191168087489749010591335422593314815302995858108403643723766131242430790962013302296215724560930559598723779339554888598664803438418612579528547915898853534594712240463398047003297151601637850302163494531983877199894845892406564922383068974532393005294352665791827264681470180122053083148650593529937521786842312783187050918974238617026884071811854772140454179878414047536050315462955499465296894684547096901736511002408035823895882731953012518790920502875654048410379430608747356872594736371802363567616109180196704529576140282218219025200677397097306874156426665899832488810088502258113783107595723036463899107726504672164195739018853919287331300399500070701527184595469496188443529558524086844059135444395616974218133110551937772809687414777800127611905424648894867975856743641872730943223450634894332037917942062045909720880295286338178282854396580134084358874165651720529701534322305280631869727388749729164770721500130377555989999682394776056298658794158188660750716246933315419761670063667609640232812565146715654222176450505889542049578153779827241801196630181453481825687450187002850646706035200692589034886131293648539862818843048337565301955400196073671021219779104763786252513138713647505882379225609534392583430173338269342415827775301062676688151321302644101038253091795612082015428586097564808202865659267327483160087333195476475836203342446759680237656888953929988144858754602303127077386426832274269638288373443613200755967151316749713876325459159100613158765252694032161526484674082043699520370580183709229542872385004163568820082865980586870884194283080821959437761957575145278638018874914091904599130905577206422493662564270943022916030478197481277121152041238808947293993418170432731744138664524136791284552954299364365663341935760932088993708947553578235078612089085150536645586186312706130035584404425990694794599233764248781255219569027009281736393358088171903312577533463074835642534713780955907020350585028561771353989207506130060214433440039055769519527192172081525266010766473155168250937484900834608756098443239390682695763936531637080479163573428224085578077573390250984473122632503141479367600614547562860091134796869699253009736532446534042416922523621112146188959344489101802770622439577845333802440732784419548689293731779131242955357273353208286373865792278158224500865756966460247625821062850457598947461929638257695668494960287372121365936773052336115747454064741463822044171166613205105036898293769279922580661697709421290307360311994176982911315416227715540080037057350326939396964657297190918053237193406586587118080362345603057431347607199374505167042525825771799698582014756109972119533172604555452332484382549305252695957025833303101261972769285216632762086126261032661570945555655039531439845424204517906865752311322531266993235983719808641118080616149444258430640545910541034759066391036551472640873292517708106011481606655915494376241716059925751542504979012723628468543276566788587580918814041324262141715198581852623729724831715315399620794211204524624629274816335659024498351260098781024882557877479513741667195138691915931125200708447554473028373029256668207450861911838683433361411331199555700717904733351342151907582240844893002734180064881524015267546404726642595345613546269263592721732043143953249651605534909248744261934033480854631968515123217032820201727455611675316878258226249779912421905622116608899288980297513507860986811972395545838270878097725564292063873975078709126476948879301334924159418793958998608488394142482433818329340315240868064657489174072660907821682618319367008756896470280230654063786056187990920007362598096110954258315231491680189463142494297993994179446915144010305970682399857568178160920940771969070180473429521531977596203307149693499872686873566807998747717094462586055834075612144710235226453747854611261661268147007954429858808913282397834142815022086707239716411232581982138735181457386109937237872185150098439912149516401071134212313184424152674901035157347397609687714277374228828086695775726111331288134055350765015492425900248761589631250933527662767507611824469562949545100303082218942547720290020887761326379370330484163143829898725794209098079534419358077658084988728550785893475878840623458338035644126158383744421590974436366894461186159057351556495504005180684382779844984082188250518517182250825514131098493525137076340201844775434209870811183487103538756084063268866068074867747072563901380396052892383750915967799011870986473501554105260811693607990747878822307142349207914118464568505294965364016282727912516151912733322245202982177013344467081899628157495651135351710008934947695261623387115256359707689790601744813027864811657711556164520292755697581698322128754211313934840313177257179551577402000541509103090367836415498034374639424276028991843911106645838248669352448031899430748058361791674320532189660514677966037092646371882600432654192806011775652087578575559358014450694442939819814194200337721589052194778463122295147473584436026119276145625188900329350476128148144571610154515448920422100135994668888683454555309350557778591090139479323742557783011616267576508920810378876400883299752217274392799452409585403125183173969983820308983427366243389764784454975194409188924895952542179862444033455284274957494410786140002009960395553255194111713134172873656881215911770351143712035851560455640168815370791338332290914510830208929237977413887780880648015081947610107483444487925913422593267316654409800354100856012685308965020146146436836019028025794231488133446658015236306103824709468860733418831514145454577830296493765537408813020223081690004216041551124023704329237670486858227381260357348051316111873210011169909895912123012434503961032953173044786593946669905748518052262452718376078771067742776729548503583873987465217609619932042266634130411381562920575696552307734185145220698160083164515798766706896925959745943686035017013535292668976106474618268526749034006335108016877724426289986853668704824857023226142093596489243864655002474675023720094402676311603999976345942364480552785545068960476685683870256402782196132331147275787105429790536322677976847083004615119554695948113239664517308309328134187047116807822592902255466454940206442069106402121766456808040770892582894585167066922757557444641472602084927018594797902367673639397919865822636083200200079005553723513734642957346471167948934659091064953186471517642233045174735913388865188673273904483415926220799932054422626597775614127696455348062196126839250628176579552080668255824776983119357186248443548720480198894859616403357869721471640385776489172832652627984174667126085250563160673446610950771336038599164855963523823081858095842989164924784283403814667429697419627750442190734682418960044397986739544961674345538588842687694357451063730536051687238511537328393864407224098787953584927740399277187244498402566964126405965713398138887185725065096953466781411081898214879752265876674214700095635546601395971571328062285936947713691455254761164841650817728858156400486122083982293791782008293403023590363456571039161100146289201548113279152598191834736426117326988314232594547477337867257611041267834460157141021068609244231181952952322998955697609990542277791578079263551241132970924429351828558542753190702263467250749061247870720329473375984641139877653264842120067585108931307902968421845420027969023309020642103429697525445116158641100710338120351775304590039887071684537689008257237845345298485369596808391708349393156618792550706810841886836758095977720454963692086842593439800766161610623734050424764446312738809262154151229091693851136370950508916149608379000801021957946309764452556312722854389328898429254619552555364416791425627589795912421463871448986714412355282313012786639999247984622469578931853710452661286925496179610071818245781994342226452735632330950815092003047666222296324402593058339913239491092014847490732462315865279480847244286828366380292148990073314741439623352226058514754415675391626576346542124313328903736663355470904867038008752023493073504079138090175630496128227896556131360309316802241134622979738364369982539766656930455406499544202415432998219534906435205998477521695916715197730131906048516380006859401865962493173137533610017755092810473183238324951625160568941017846466407535172862328114396717832945402551055165799063180998137669896310171019958783665985415577047727790868865414155456563354307938029369632713668381742048750871562173145121081003690231936582460122121298119859902788830624712613269806378603151498844603152909773622527443643330884991509224475403318206475105578719338971621112473225816862526081034510123077364346825935701313363752410421440173349132349808847662339117314979337281962339435176750210210327801837050711610807039858611478490525689258020944745795323034253787953240949368058743983087732915127157898006835716572276277020631187890043069178133594418121155731283027560228876752702504604643977848176105635015611380737616268292259550627012778627443445272326501390040273798093321928362786883454636291046827763011297314079209753176253955733883946795647641056971257320511987147900354467887734422946423133956683991494322882279064574798270052323317232466687119893961654744281164752344738366488718305488927094966494729977309670332916953450456586372736227512918635413397223255870202669751791296601406605491074931820032963239672135469351497741298801922970791566748671738727713936105481295186831150257420944902142254866942176656780570722971122475684556035911574439115472196621714442715576411501159727427489515353948146391392056670357702897731668387269546907805503228409577718682456380435879224479908268183776797123037835881152823948914385898313831249011947623939804292724693202360609847507790010914821663886403133696124638533007268626410221413946534580931085797388073919516286325787822818690876989002520170391768507482581297405146380551305827770511565646796781761072531343795824995993268192643266106363800256057308903590763764764080793474667139445630312320736091437387062164376770509224257915064605823437177762030325719879621978380933721103179430713746725693069477748957907694513927387251286043702733425720675431639365068778636267264091061497897147656391879904631198435204507169689222850657674801548667921804690575048012061429259110729648180695666664861333405508255957238195101816051157641732374642955546380446380638650304853954364924039589780010580545745163321554417799118489085509665623663553274460891701762745237653606281864699322545008706953266527069320756040151366993188783859301087587051230780552216128823097466341097040962331442011482732065764995122714196886436956879288019937784286644827658358737446481042052133607677642510347422110682929951995370285056099741482736129548800141656780471142798033746150171606041392317592744303809673670324538515513559878439906281950733857077192219471354718976357894293355505337375235285248285705331021142328193673937266717648738118233520760150277869011322995608482727681309895845499360644035004500372899313693151707047360905160327331992102281571669619880520997336585881130592032495704012054115323948929124874381390630572320040202337109558877494820854190388518075832151665250563967831202533019222761963057174480982999032732772858617922263726686308424008714443646792279932551245553276074928737503362025259327119288603214841372693389856259127463051973363263603457622734787100256246798245336803168627535695961296597543327359827579940655094032233191874192465136255296093042928520004353952939857543021083489645462474194146478012028474043672874411353881659031161658563843465728531000705971474212510391969356818558835493525361260318806642067281233441656561530471426755755928997576602129804849003787214667105493096306319016519656962029833177230993616754591870989014371411767959693392959841823079345355391587423666044891077890615677604096412606666287704964712856704192179568159378670936717694994007941022491763070558346000852804135566891337797718970499884917123762267676821578916753293547332332056271105808416164392840883463643992256871198307855237382111520895199211240561385598190155615305166666946857673914924901396854061523042628495018662762568920235659827644955127433218265009782373575327696649298032339292068332997450179688810433226865913833022289695625389746834897263993672884370479061842636774665894551890383069141505477639585490483663817558304921786808170664282830339873494308481700787159684819605992922036722110057902657286297303738397691250419105252308192256152029863287909630004103959843544935871144458207254693506626822431588335770241310554058245248763214416418548891593350511816287708873905830349042009376278771813697620902634370028573161848640639732645888377537070481355064673016171954624552240661864917094630543478339498879521575746497684538196009906353578653914933230145000692634575391474118671193032938972928303761101153793829204275847222235697348593147557578116228201029044725363803940733655185991091262515793688564042120463522620865787625989730191900887261595318009386769001301618251073646743245782953316735938098747332476464841672662761268500689413206051330543331275677745743671583341216264940246152953160068870933245903074133096898721225288776269932830443832248256827817922814434092359080930451550224271838441741373213143239338159501553331110485893687559170282082104886073816024013237321137701120824372004975170652049932863806333356086753981202699283763103914915466659095786484256067572583476784650103766738474168315427628404424844609503263691458950248499335336617870866506715356487826231124949820502945637030162026657467586819472749131683524249624446275355584918215654380339905688428052305749824439428350501027252248165234969908604586929492996610886260397682533491268031109514142773674980927453532107871734768164943184776854303021989133870399387096012150933170944667454346279046199483174569424594289200183326106169073834861637872435794257319674982743291091725281501794076177142069800844867508402835193139649445555417692380188048635690790049207662784901585161630681062227395631096729749731701977475855244517362376862402910425533094845543909924441427224120325828267911290239630408316935816821676697325234594676836319925144160145115678095059914892783852301672371143661872843010216375466827496970910250272242672240196316083628193969453759190864366039622277198945340175574431373760183749734809534261123620402789378534727509436359554057306649458160492400890793559611460203582188300585459493097075967886644903341316303866154824988992169783184894672155413245805454572836847440591525454584261897419557684636723977522240404707843506635177749891109120428533799859505185670423897569510624844206450523449435911212972443475059380184478128501121917509360453597355127085974080512449898611854027661930034878953898739516667817469662150849204784001541967985200470596698202819779611290563661719884986505374219268555059708783943705297137382364274002334680831988360253682031546863743478190724239374533930788159335998674603160181823667309516696496293388403632693352462167066131470310746658612315438367081553417882922477625868621551899504981481310841351536235754659186769860690433345237452837779680610293035464393162896281874456995527522576549512789114927337985402377951549792945750684519844876631748477005351621631638687893426801657268757447616217840780217637911009638459793644680630159416546659256263117122357860476345242062946710103919165671313648669081943043574874457676314810820246028729033700898091070808459843935558784403404434579866751520593475505931722877261639761444860243069237334122201787956875759210920336510928093706365724094241990508157972164302451121112471823013022614362419696117787787648214082684734478802098211232274331778960953787772883111306668447296757547145578443387303217112043765998076610599208897109758275477709446341363049566495784154140758383726275098396760588693622880257264595347540020685442110091148885513453547568492504777146336604295424918555516173170388488855091085775233957224977250198180518919988062269153125608784892188270322450476147052980057760626959755716897692118100120081678982175468059336025354734429242287001754235671262491475227990174849827921683592347879306427087905861828151341218215006155095887922482863138603112543785541104870648180309371135936996261653983554746786476092811032472488576633914310506331546187482645137137291923906484491149495090293182779483526364205366696583819426245158237906782873412162433119411169271589567124545105017756529435968425639785950791440915852405682028445502609138725280999284216115535011860028549823490116858627852484084213704321425864661789029844243473154419881762029890073607702722295426930914079851407935598687218702121545388908498180056358365972334445768329169779954987554045877851099868517867645421554881770855433146563437287921567529215656557941042489184958459024268796107963337516725784678859021244032567776643138863566932626957460611490700877649668357023680105455145265530690084557904827446305296440522449012123021968315470518041465826767294745546729855031550507469795920560796773695219349995532549753497023266083875322071374015501305748948978869199061866327704096695152007097282523099419627784913200059055322222409618531008116849418461770249644825098975535811936194433505958053384812992419195108995731155968582910602888519038674721409868495086348982765440397966080292313566480424255399565006535323014308095803958889513258624005195572180480471530146791172388770210166409062577092156244266384815915020065702979383683089885345401089631405033778564045523274161785127085545680948012950292936332205768354072500996323725567875668890742738756131014875670124617733197080475311296043546403398077939626065020624975117520658475862206485848612475472138337864149828337909287896437474042494947944462235322266874886716295629778085195044702070936883055739127931052056017760169757306743451407080873515391173524588201758450310494544394246982637920850078287718280200019896519560930347217199056944339222834003660119323999830139233856215705145845642196909872815880728495741643470206121849407716969771286058559783678334170210777528021205470130696481145278765196945587696796536557904791772375814222150671509268948773458022609835497723564363954908493227893493184085187762396667172568293607954092929826876843713903726787307408886138421834405816096485639364866974604093447364989311019422696361440144863505204123850211299625370490621653702288824182257601945312989693843229480581883342462934273555096088892084741993206470190091815753829453313343435630053815849748758745296032342372681931865694562056486359710916020486618074244284179788477086416174204879418295010683641292319035913055933021429971362220421703413624949883870118945078140761651917657863046579027214402348475979806139829083609891805015934690214415135211932355122764364055063536635964689429896263861011991180055124408687875319767577073191630587787955509099983307963257405936604539534070422943854339312207986493478451839935031639567822717864856096799000097974819127701721753967369248230441393878960052299011496736179767387788294477962194557478268118716280508046966368686267342851412169880295187558890619740347060783922578322854807715208717561530676269775540008048721244953046809035054948971590769462705903762756721626820234252191093796674994123910561145133742612872659753817348533816914663740950162600682731035776429664276257476967361767996910325113333792906946779580468934103499996121262930890561742419525928101934465146041866259387230439030051808685609944372616716764062001740137646805342323891428400287390245728870597645785544094313248952554247420560896111001230966344673473381126755101281598670682284735801192248047007528695015771843445862011882825751875741615501764513647925205721043288097120722278887624501633570398102903178012172190489807745679523706114452078545623790150261537688407530252877260135879399149729004606804825754610284451646148445592887879528579109447661070478416082625751271372899245678073916723242897232568548106499865385528713057109568147634644395614584107950055082538273916084118420823027257597373864232130059936297097978728681818293932377882476519281156134840592822745371092032414292957566161398920944772456949035057342936281640310298264496536320368591016557395164358813354016949408076726061516030442344448155703231183230922218130590712833634845180370244212544185714201234917062121962531473037303528776040297435675428999715698157552388094258886464930474911493992567381509226787768356805514476030985060665129923438523631715084668590571151434559277144351808473472498578148904513394925931002095881899727552637978178416188015592782515341460132423510775053527970903702061480553210798101098111493782595231000639077489411184292412036813058518658260632527540709152153696811703081606903729280829874328871428565580120232099084971798579931263797271561471046216883812432384174491426688537374968147911084679753436132200581590067985493754527615509807030536173255342271084298213914107760226707524929697756741838797356017093578267693164593061012068838775401357948371571383740641400030658786361397646965682085255657001301581522910397030932317099662475983996908551996079662004503695508344301292134160484164382593175324935430698495132420485872414069446614268828394922164517685550234033544718208832094223480199483481910291676432832796491115575234667998622930638143938123225662749383745680406526441168938368887368788583943834277855612461621901207546784864539708525754177621474500213560177284306188746997787580957179983642376103963925584404442794497132836605543981608436207601053172416346090011895571366133076341015436082257812156729333325138843548767478110125440717871154393906259832933718157692570285057807101811589215328098973965796555191404088846373990907145142960733865636781975995961807605402869889484000166726506568408456024013412205672992473777361925224823166075990205242197100002745302138550791521435952230679101778832339848342845737879110466640865352009111757675422635455349235885896481709355419810229058234353279005787845383231484466575339108298851700455187555125798019534889639029701460165770964823202211533437856126647317239735125894105802632638147022680713182556499583976289810351033514195508561950497675040163727239595324421105618415300273831670039006104041891099318217108427261003309945343228594740888609339051963710350011949445974077330299557829963003986283616075863947156635887445477933589756029143459478867812426925180770807939865084007396531478580544065342512206266456621053762231555423347650406624269234350657776012161068419543599451133473739640422431617010659006416367255768644059186159438571881076940813466018314238696854828711079276174541618172914942428386970114254596208397704652390479158282141726022049295422327498920233880931063142429369499247497760370797702776156771898796237782555289156196918895241934604736442503084893177062758461624674499563955673439690422068884221609828085122345549560570434679226187954010531000936572902871571860534752913127856240217405010851023486971091866832285256947473002297753672687558878923184259000857050688918918938244529035942615979642603312092865933563519323793643363550282869118412207884714107889392224786066827185454335174827937855252973153504491784177192048926881864294020150279149752072471485298309232606120173434275853508790037808642087208131251170796156917431591417183626134595602237325505363587351656183006083993380489160967210534930862286441489576858176016415801766762937377141868366498501548295429594471391803308201631117940126364443227390173853642281040170419477040232072790338102143877536000133792499023867922523632826879480540490817020250455189922354758157343297645855520092633040839329685301854600489055742471065696978829102166590135299463682056835306374341973231277618076561918888192344414896795009298101544049030576689860076215670573538151801362737197467742918161511106408404134761702014066200552519373703232442880827836281343090575337339708903339728114346929605357953220237731510837045316822715381136640125689601098528656587871569800619355648658385665094606454867209549867469960147643272274312927433115318965971189158580269844800954157333603590509398322204540155242517631579355628381853537968051880120607861992593916965223503902095146737844267240426509138634913271601329158497935419997926706064000228517109432534048054111652650491728299168669080427500194058622055576810398093017642948979822064962511068009413380192600554638057178281846207738951873549626960884430638354198867444423051950834950847053005487017639804645389151197014873078628521197095473339651351863353670110454848124209102616071054690419192769457583637409480193819265037878185774903537158845036732081949358246668607750153486554270949697825483385537406425432471900666617456387913288202130001803583207622789514908054475917251404394718879341801842421010304666451052655834348646984639692381581338027854605518060258710689543297128478151116672742939585924187042167626318244568694272689215379315401496868779937302028038609572393616398046846189963432487921481534010522652073550000375502302586769543373588276701070182520225834953945667839732194181429436698116907878667299561681641118070183435634931253241338594823749964096547721320656237247832795792601621348588494406547812437187671722909474324057778710754890313141428235072416123510328186008405283860855707932076692164495142987347601521304443846749880438328128233860073254533077227785413927577804795467224294061377978029649814590733431614268241359411147706033957543045602631513904389011374065863796200844897290702780764308500295858574515746213401921863520396944033138863690348295722828228337702041500805765931285904521658255963365597685220496112106399303362766930842380999631216182515404939395352359168016546589669960129864033165469013265775363608188179618545365853351683367157112832362127701520621609548631119965301607957526621179945264642658782865115925559769600686979264510859533838587555897147686617759131025115791744096661420801625237796422882565717153591552860073287576429175303576834760316701549404220246471611761991323420108014767290339876026859153454167946560520594118780755447409268234746518484406917505708873549880987361033694033375136807182625519798574262404440527766242143569804548066487698805208041390028312406518402512964013569581518967015152380387370518512088230396109159183017577123774233930609287144941704989843626458002770834494957802583742841375440818879645412357844102809222509139634696795281239697806236779001326888212094198906753500304015738437244944839881598565202447176319646804107654587407796776657557015031846843308775700868799493244330325248533911565961335883023633387874176748107309557549523561188354194250192089384786413761317573770598902727143805265701647477739555720926525699080070599083093239301553184889775291806144319441783315176184129046409635731152488013748467267810468737271771214042562359125272461800827294267029911640683858062642753132987880206624936873444282076551172845633092418534817378116700071906681354576328772803610352749895540955517260229024264055981981432723892101622808130268797832334247014094889494704399331040676976521082067363009639399847446114716155439736191868441391996754717240366509367907451194206847134064292954589710142531955953898586857721483399730695610282529959446639485015085737436197623355152275618975295156493002212652055133973566966634580586455157732305004410674975560970337113210721492517186799398432258056315213547593465219329378346009916869555843301711775645946261938655836884326052001436308564043844074731163641994287537819290121738667758590299578635429765446676613025012816003590680273942974987706339241406070705411348662106814261902572335827542065600743733799827880007903752422520566755100740149178784683898847138689262938502305960743321781139659723393857613348403419611392117959144920693703635829700807430928186186864206233518136531032816144531500435344519505916607217300568457859895309832125672309154901199934433444510468462889558166620255059043394637105630035795158861089126008582780434882770318043294010762640917686595262247833077479718567810110182786679344662267148756472135966053723251781969658252029219414506406587471516109523899367852974793680155419312434299335983455008596320800034750860886578091773860042997640483574047583140318166918562930348180068408867990367842146260175249354560742387414342233139577010322410892658191002126681465053683756437753235628781845482031199966252961142607092027139223100204055577187973918811411295275196358883903702448760721985711377649819027287982033414115772052668489071929481306712667730942433637347750825794325319138573391179544338111352411748409838068770403986576307889324678276346785071110158457345893952444257406905525894502088714001449748502362060170175360677783970395784146644168029194693486542100212202601158764438125145529641835155056237441573029739107064330641707129542501922055746750672843319196869752393350746530757544833829719637618414156550558678987217055925161423111341399590803468029721834947998974588557575927968511461502341248615480524707490861255002084839965435795700220592768116217215655837307760939530192459812625642907665037866918855527060425296183389583051085516450354060736109756551878296649324836176974034225778183751777341643192844585826637446055089517576975717405685471790291915901345650376726375341386164354005053826905258015875954325319280766191685966599393767923342673959105436354887382271715227637545609732158931220118996918296685302362222576366030717097395244066016830822854745203185883541841124691266274429645433540671015435283048939818343371017012159395488993102493415511878629196378113993867663884039587260641404115689363268258861814132587504612306345927222227280900906438238861480933915198749793256704875883993630938912253401415739770024555168580005006989623099065436921888551452898504172452911982400988681311426764304966232782383721749776117288238278829833550951891105047000674932851337014361076463839862540057159452210263659682909573684131967617894355249532487431518906628644742605230539225931717710745144769966890636979853784079809206168413652772340791107582117502541604007743597876966135282551637219694887984550482604132424885287527922762636304048400876851588624562820725702752272007658001127444189399451109586397380926827580300131094345901586586248445276592708394269998612416623669160839394956548199110573828253634573899148487705000650683393898040838370934174548737836399939088863418699547650759511049324483505869053892172540887645475253941802808014808738854480927102607226458899771786546034219452620112785720445172079658451328637322218864908070136083649423089189536946305146248474565384150451712467101124241977187135424697505629228582779546884272297908629986613161535696381516781209143625548285450275786671623323216654387867251093290137395889527174865195615585545305553747982750307808255714673409937928535984355209738447689553234305726889016470738168860428713610228320623526890991998161298662730914365162218316052649856714493598931485366145257918489938649309586113390122830303773649433534203563024204167796255335425597053943441579165778563375327238531185327584560868755742131406528230511026726640713059781685215024455922420095344483080274520354149576018852025182392238152779868358994699573415423438704607208934611223109175054228959057973256540196905292898795606095636168400810821658804261206714898871753741373463166273104678361743745818117680583407146689277377554799488229424328565195441742045290874601777286739899331456723748527818291064574774228382586191401420639418677413834305285011419196217483023135788324345207414095201366125587416627388565367945209738215467976728119257964407062141550605352226483698454460116751087342248554700681277783584694463779181923994039704368849949488865870465662323349205670052069587558567077748610891074698188991400589069920679799943664410222306647520339913348845176865979426568498930492539407152848455377204744216658214269410507731010130483619845897111101902315490491534153640766677153057001475388502938968648471484950481739693053102194563865649063786865698054761643845309982162594820030084071814178250452469772257296826054238689865203024510830729882177038121740221326987631528082416672838618037337560041378761547655805613101102050683865011229020948174712502775813766574069477622414492242662463963596507730290120738495745773957699825396558802469649804061084869964945737022121948571308260670228040159476043592108855741087425290604575371490397084999588866364149210128666029962008012091216737795124579917939785728428189803787736648777625780060955583901729215999103134871314745156423467431305447870682202345625124289163006205351346598811434254102530249644026497545345441988994865233621886426495085992171219742056218361271233864649206796186856027610500797184631387167990465311978591247390658586644165413822775793470317044486507149410956033348094709097591177641789474225624935215703720166270179003648881697107455100240026531555430835319522591225730459666229991148976677395689346047814459108828783612121553660148441368392040496463912813090921751986503486762722022494507480380597479012558772679563399284572929796001177487902079566108512580976627598511199544746073596831975807407010844903211680505793595415122025418301713909169915004915672759809272063389378732185082128676516154569761096507879896270016220691307142882497218035806559304104146743109967521461517177926923466749165424025168922529790384138529488933016669770863696809359895172408508305278862889918141500660250096818372924021346796873637329259323903043950380102999442693414316397070757657947383532788618918652091604879736360771300808089247675887230295250180931289230059305264903708114072342685048027088736740384308785953001893528671209121003792186273779632490607786238279247163995511267760650083803327173012790146414567369871643054860333770272369140128711854651170471355242645554251104266697851759465651063910713979700687063696656900615328560049531063607270426880356265154160073918590875082082722150733399870283588111307472728176914600837886618910307408433722247449202315593552764236272289245969419030003819303549751098108112075209254072688055437192362448288995678250314818775491257967525206300312264112805430714514300289443558619685395049206988111750854675982480394832359624964836618894001195040606915739681027784641694824843339230709119243304155696413405479339395170426036853966137805510439901396823589200230070506940917656859590998528129410377440313710042899388675841647600627040233026220496044530567273191563648249741099228752024753361858554394408074175294759704130189213045876475547047041686740071320890115269347770694246341318563273343766838062679836116094556003985586197055231366761604125219137384250720940251883799436512191553904317174918948721175282793045513489468060856296377929218414731143629394308343963149312781687675448824316963385517001701078302585983547551995230510383173495764327751673335577242201983873838576165271915633785332535002569617818960730618486958399595196769872714942595022291436517307922469581877733348501728734323424556690343128554786886365412494926405891457493620785210426397013634013129158345715152134627883867906684396556276604937338461150054407998347705938205174890657417289191349161826851783138999070377874983998422727606409062290534840172240976500573737118749062738835378871122533309170854066301287205065561395519331114303271049771504162058602052035180040495471524807571487479457736197875070586045202923410944961548713357911490851486437230753613347744409837764456162758318815068405301657591409362682877699944136805681288034332195775806753641021718546827497278893222799710890165703986719267956761937102399825923494809538711642104126395688415632366332212205060386625973045533256988331827647020086031875043591747131479196538561774478788034814327743751785911093007576843292271470096017058574888717586021432524368476297470131508220491308786956298281858046861418174082655707290473006796905285911675370203727108711666791686728755569648597973691244163093470164201613624603804624260675517425850124500834005831885730424002823044579114503863699026331902158540181398468071267054315879064492195370641520301210941553986401071959246791618506717917079023452252409398797061911434414448596376246823542564542928750480947913819985883627464140294095415631088518130002782943280120682887739543663643620357055498580391371989547547133231335154107416017839241127970595879106808614396743657511325251057406534813634701092205503965850360170658051860606848441902588814815426421419313656352623388927779209974301391612397679341288926025440214107290700976428208174532108037779456379035932240326295217116174444386955743535258415122168099906817038736750890272489397016841179676081266714429635569983800639057304392474505340790647081414956228670693809694605677406625202443598549521503962100836303408829456599683495868949207334973183527852121316708383695633529026016462282433391191234484891419713871077138773490860729432520614022081772797688237921743338509524299149510761508397823722611341560870256974924771664663584691273090857349453472922451376400196200303661653036769546554608415515405907149323526443537469079433483108354449907646569844112762993829490037246506780944664981175122600053213737825295776911259793291605996748686127004809902202309960108051287479700399677300547728968430098637629244599347978819128115500336003898393878099994175227731465643350897351725645521351384690485291098941949464882938899606828259614125381292529487751850520469828475862661078236782335460113938281379441832403478466080940779894566859978605205515367084052993513752965481857098837905245280884097497009643980386481984401423230507714971990685912458467038907838789805487839320150000309378958296229331695200784353830243812674264599883782219035817448033431634245975658581032114053800803452818149973113435144257341725527785100101402278337253808036087535114069669405265493141092982331970414498707953598733428218667789886766809142624621893299266003871189162189753522116881589765201306084105345248798506069411915720846576493579430116797039638296488268462114094729558070643300669512171265792255601535104114586446087787747671267089090764042693669890985622214421805776687793359529001425135678501154411944399034550512625347050670545666114066099586095173469836647186611719537911755123058925454224592585107419268456404386494520138903812532582710681672553252024327057856801232985360241859594633558064495914988626007063308232027033431237771380212080668486591567159177133105246973741625411998718787520066201448346236632128661673371544450750454699818218727119592808193352140485734137765057362153213608607461534810407367166617028438394279284255836837032121506805110950066809519902599558874640532329422366370849273156592310856089562162695973793894247828812904367000970950820775893315689227568670579455861662528485971797584451601086072926775615453059799908216858455735069501583585988940375732915946616586873351107347007435573530570935973977701848560808332594013570420301414278594833810293419710621288951430204741450497939073097258245240891473589992120700385948485424183345659572958941374369158738728012382170345802280054730364718002269617952048768131668081439618169853191192614182148441713754801400079675534180208522327650623297083594449254294411100269459061838738959034134553394859097350187074041144917446813058933316237707216068105740348701992621792062984239565648131156743381508157311623615407356414168431709468416807803970422168944680201023230417847737633538475865722161530592991975492122448264308621071260596859129608906997798414672813218668848681586010870227202656072932052040794386707937720180453550531313140728956628893149748340169017611785639309571316382133853827595152401716084929320194113073725182961686439364132949194277520860904755355860201658407142295675846498272728095509396522514404530286834965466604522953293819928470203727824293548991850572534869748602988637251885048350596440003065293448129859435763878296584030666167338837207005476529930929596871623759717484505353783608219647058948553734319110568212424669391681228134985512132874778302366001618450012616021762084820771756617880359297562307105644809769190765924100036202119285078890350094940654746027713359140890586161415420892632263025041706898592440383413270940161551858322087224809038094777772847073157311743168905562046965904503681284364693966792474982341720206886161129168124259546236037965704743295203734241882818962353013460395999605552419832714058238180893648869595311820830948378298914137617789853956665982486871401220580082575364059859010061965860128843815043344694829400240156604522101035790582212356668180693438007496481719291790161192601515841966347296788087870689133240165603153066624580595900314698699373196705719373339681902789586439163831765498799021399818931062922644154075555119542745405734923470038367934154326593457223638293023725478311530728385546127084501366593406171501450165012739808330786136332406630248881808902152175275522697216653606111125258957099199765588656984950888415564996417243649468812648001274675614107909218516164228556101155263624581812843885122544158733079976805875135749924467850406087602038918128851023113916682904598331526230881004731774541727119984524075029256482669882694184375378105223464098378600542188423840944417216787547499585391274234954386186157409982971340775469478521764023806268695706032755125978933817994540365665802124443005367592570257307644465138080410790010657517909752030624754994642769073281458266709358921898819359675356304556195018392966247536596902112131604646648452310342322889209889893572509402370686734777259967475401645462798900151910484910992331393890158732288391021808305761837118617117515881668031066115338494732060642843423702740584264233406989431542014570890657014870513613804930277487262279820853698630907513858537500993299195161047876211507838048843914382348520719172644287197128397550812442183814747940660110838573614985665881690448816893219247792027636022502144442164554255045178550646918347371411879150048614088355586625712532463192487226926023879214995751893469467588095327543738225984668955833582817865553609157151927373587839570382390960124994480741366183880848551859021461419247283878246089536115048765706395062157947622405162829271508300624042277097875046964407089070322259704905377119297274370039483314841818845125725236696852219351680103221549348534813202397018110110044041118195193789409170938082548126588690752377271478769401338415238403095331488937813655726591641301770187604703891379261633211254650102697849975239053032324706839514060584524007008432180828316132978895467862441931219710741877740284016991570001833332467639186535591834374355589721174925153635209508831443847288828483809760557404011047827555005491958341991010435587315442666098405653192694218325847863274518451854904044972911529794525173541936778458476094214369462808911508107229816937396868224876622761381595329394096700576356244287355277158647665545798276883676560211835292198766449225328026149210293576168129678772618062086383684293689795386274907686639160013470227002340609357384584021051200356272384744006484914684976269264700157063372377874904519303600341875759294502093637335249272207914756431884778461346780888379873653249297815465157244147278095681065620904532463480337442717400528255053496536315788738604000248603734163277830249321536760836809574270542350541047581205592020025881998028889109110563471045043127680260802022104820373751086086867287391203905814328466778948169911951282402857905575161439255133245133594121047460309276275659877870829952972915788167929674723414520682322592665857510759783511180294387736520262523815321716791963504329614616411934612300912874886974403078594337036402953620427100430914868789247317816522513463786775474359161402544622595695905379055109468772828717567847669373673149940769012091099226773066906796837653529276649697201560537593264178072296769195706065450202396569106637692218207672950121770281370187279361039050910390899132311620981405558611134392714967825279046383045585792288214504228279472141363042922967086357393625722026550090298163580260302427338383331248436098075647741966556291056761815452717931608118389589324075205963121880208728945487801843726786973237837981404063124333596245346473784391240108000109874064693804160356844737289332770393176606825521174681187801636670323242773517566218246082912890942500654225070826309469802160881688031404992905458055108721451337509802928129296285863011247071227373189159005966299887641423668283999433444480892456020858664172932585241071668850885335089770679681399108397898956470295330380149199815452208326711405532917968316368445771375909728374799104593292148011635500612659911205983189275136555313163124931504028822594147981746568455538779060129568056255314545257254505342865614836446453165911147453076087344490043482508342408927020875868336852937867047917391390344567579161464914890991340860579828277448046849127228095105676283261290092063898102262223429003082376991402287631103897001639364228608336807142660371669057617628997596334498886461458678612209709048066624774619712524854853726286199583449393550899046851646801065688637866190282355603438952400833793218587234791065056267754348245496739339384811114542480366934537530919847661920260939380433834924189820266818879285284592149111917295985661733071982639361207159791317310034611746688586724596296199396855389728033609395960732997698111522348108228194199470364610393372813424760180075759422647149967337482730352558713183577230133025693629782680347701399024408610771205267380331642189034227172508939457927226664836215333213144835465202126686943767344392011726918906949297014744093691660072158245869992007388283776799252302169014706456493352926367532740127162842025402251853046862721448243750640725390283342362802075113870515055897250258978780674076650471045869133451551239776691608261168762088175745511467373291027283217898680203341757314152556139831100861327632166741745598103528566417824291919739553255315361485391012861915358464420818262753385085062782107039411434099185015697865553391459623078327530531153557675808716611855532026312863385510702986993820920302522255004486920791854660503804992144098494859064611502112049760557906282150476459340078056902139827860146642183462387191896578657563815331478236806534015620955297996505466043684259673588032535011354786973806714788146408305124333471346148412286813581435308284909528042873912899857512863919847611948434164654611748120815393809280849397419497995258294841643965301756979843437752263616730863700281111965326842375579189182734850681210918312325959664771161209565139046482059564055315225913589870989367507384906291342952575710513178615395303302504409654568843955372826280966324921241989040009446954693121851556158245458061943663860197920859207500984412159802773737337468983883356147517669385596184553776988302749527951334402532431401691700112294788764434820697432147101875344730042716445582210854469907974862497578580482808392383022026001122342321736039204393386375260746757825790029554684857120671036665419339812527162502755275749711133789703745545487963906053222055226083464086798865762319423666997619470046567903781993079004532630153373342732557415848215720992906371313570733290064951833953238215250119791668715924129782652127478432148054536250652085058759787965207361300704173658903584328840305354153062744403231539461999483301682508094879598614903338533487003661002109063317439723485055344882315402849041239791412588420536500246808226611374018793845001995176507140333239436009167330288536418483825159698128143437622308560043428651456238908825059310183733642160422401907777712678756971053397982219728823725310771156978213056706311287723025875915986595267421641097584552067471344676931030762532781454962599879847612953013142024491458594556481244217936678198855984697554970802048912236853486832909222606111568994902331241765070998191438853168828159570691154199406811551599982227315220349172555598777449874798847229303619795882676968819801325420587437229624066855004693697664797136276501673063727640470595999743441497754231749208877775996503053223638650280758563350882378629173510928706064199668804007505588554305559372695603080615595515855497527662496350287168300575785419361616410332622198656253590859240952175083097038830700174656907883638354728140829474605152093644430566938085735129092072771612732567407939604308284804667008965133382219839603049393524796865655212698912429833240687060042587009626353693013340649254484651993390617182239973816220398897599696758033161695242997016817551292836506179344997902214041034915238689620136827875633323244872620894850845923667241758948079655551321150189448217395350957141734978897516436019371504563724634534679932440384550986032858702903895192970773724892977437605132885775493373538204078289364819197586554112465444844597892459820590282863971113493308351800038483428783639538011399494275584444189734932728058371207890799315403883845102434465684833296139405609583014250162460696895180735136983796064163389141819502795099860953583942597355152220911706502254429345159050096309641323117919744361281619742752670922409911969128582771277836472847967292294462927944426934618364753905964279714588300417651221304255696668936650119332058388562257367458394578509627648480973379650362898764236670872193186213305503290858756378998619903248685459143002468344110016972275787360762796238727572449128644172743304591501917829856705390347670598373875224601359754874303428191804548557383439911068576225599638633563588653297417496113261110131745664503147356894647907797246117504744853879744268904313324712112611143567065501553440382938580054104819942087109884294559483143552907194044957479912845420065334266775261150340716128832503553757494144413951802730926653953776231566347652112285889247441284379688373453220375536470899962440500679394518363269235605617186440304543541621447759359782005626094570654582028516468418330810788090348952172846653409144936941426008233565567241199544499320724777427515312228041197538433069931299074810338424702570606305587196945659319236629216881215406825888421526764335230264288291254818587043748204728984420109299008732763582069818648096665180075520470157700643653130984373411863818475025902606907349235374156901377815295320280810969430516855825003381268792411479638682870307431866594269536148496120485340533355502014177898313496230923032841117648644453324299743243161162657409082542076453862352546003407590646755573921366441698338889599797284340051732311605653028329679872839644766043988100875084178967747530595204522232227821996058085403472153728025537688612755881558364825329411871864927472362065683651039424283552249133519850985040515722692171602366837548953005880755059363768477133107653380965605594830956675671328724822891298180987985802392780024202471580943808114483256365515051138858831095841078344932460532085104092204083717258063950282433708992788168054846060222574431438426720373506560606807789676124660437951011919754163479182094466396103414128807119866270719599180517284174485075402094551607201182637863763264115075636000934881188626305645927079536812525455210336918959784009126691193835960736389147716032178476237835580537601821204599183716385232806146651578151443789832622461598320783393279285743761771353721670763190964654611874876685981006307720353021798494962813386061543960685399901640866290322795455991948970466599262209393990505460796602340996898987236664826974165241808062407112100678587076293271571665868393800537264948724114940287040321342692715200382810673146065649666627223332595503710430126351624324429862705214996839137907922067541338647311892068397462830448211278945685690546970441740803052292663759383975728681931913641090462348973425491713960925759799954952400001241122543253646807628020895219183133415694026276584957767216121123713299090801539802375380652011581230448261861383760958312467443582624875217329895404597480124076663407951863466584788089951686965474873423945995717803219887249371324614847492318502047483312100045750680615645068817577298176568022582980240283111638267045235495216956434238353467026586563406486876812014181134660701703587998174419753143619541111849556252412950734498156610265166417874596109890798875673112541718323467305067830243519376153947935371457933809169674000144170727389964141149101743269476066846665729686479968283876493658310159778174715222227237785724493650484054232629262040145859069742812597927651258043851597224549320362468115204886401072834721884650507061128650623655139996873633178975055378502896352524814901041265363152421411550374884771919287570928611161782403003958090911960084319476549951564598935089650289332291711223129869709281638579968195497988669468090804054091202684768561298640285023892540985702563632476525426435575568700585185568803188272976259317305558147726631594075381014299189746273591978645958356963286630156339752746618182021374371514482255719460542904156072699141333218216910519649518070168681571525622627675094236216392852023916295355489536758725665027801307606584436684209359030585855569325358374912280311112207104888844429064082706582225746513130849223392200763668448278865095040156062876953625981000372603116595814483605694361409234922345150209246692384040212879175089876853565461502543298481681905949334198624595076635906188040683145703309787672835613843162418589829478450327846202952717177324494347190865974734879244607862431782823433608891426677560409417810404272636503851562881908424760072741775463206625003454591213197795999627864076710049386675512916386433960992216043395449086186057467501349813712677748285665142267642823598337274107100166165865209288496124000842292752955811926466426569010543786558680774886821022328831200688366566853108246820321026919909235392320803405732942610780222098480614525946261781649282417820195473147234378772476197707624930237573380978324697019504654025410245595860466091053570093735504188301254612121345725078533107245824666285864034502357793245482309719266727853364134336814461250097539326355496607018877895967725840733703846271548958942585128900976856560478287629493632857459688482747477842571124879239833120302991683001790005419818708854390850964528329971017987403591546835263867623591224771777006510122941180661037037641101204670460318598908186075533330990313622175941377313860315122163535388421900956755122312877962692700551433411127936654766084712265052967935389323118429147210271345408884883864516190241701058119137421028109818944244409876620165839948017318856652948542683813297700221387506413303466478885161785160814940549194474206449814928982962804172048286556495748721310615768365712235510861263300286470116305968295221108251060529239833392386028849190731144547609124243666305206973997444414398199678433052035573454633572793449896015231770913451208092568829990252645914056931736919485915388761130157096963246528153242260291975575178887893333318880904769517875579777250264540770699252137216948606140244449513235008552811983177199288249480118909086232638562633418671708925151393863881264118590267282008624380156224932954159304072052200553952483892747422592619161815113480946717896296189881862103459704226759583569949115025407030029206513051058793063449501430609189288396297156541851041363806606523742916602140019302630294779376829791354801141815833514655428961825979510800843244583030146262292859639365770395221058307535613868354257277859299170468632349895952856892232343872510087791772034564834845521479258893914227608166410612599746994211363697670488877600051746943903254156214434164189641307218282733065865917032267860660890366824731200863969297761041030274910706584727496955545585698900121795794151745069346276099456359220030881600975986140276954816331103150956627653625237057610096630781698185455511556840643658538029483438358436650436427369485255585888210336434031055210921678493743302800282757761689099071270070252290149374458221427037849820618445925927573647552249813915627924972041504247647734466461193638733941438434032113290244713417363629168061933686723904694482468444296374245388061244952156865441296957429946148464015014954194758050888508233332763784829189715313643557569397461953312636096248722534638119291723816291257514073712320120671850900226278167294419724845742046511503016456740941173129440536743224283774085464071630290208153787749908761747008372084149492427681811636357153320099562738711735156335123974377786015751638793081578438905602542934102224053124536281104541234491290866638362405190249136581744395679373999747500137445123793683879093218853252039314593739077638369397069307904402817049053278326276117897677875702073309387420137726954153079493457376088443737552487751751344650911396097869689358676756625929003027996850582678119759377659832007689013471026120509080212677506259324924934588137216570657326470879105620356036393464884098501211992849670279970566756035909950865107157548139141053145355610597690092612328533032674963491206943010492309215565835157510630592473407650513927496047290654475371528373559419923641698019723820504795600756749896564007667556768794018718312406131822563134752088695527540062481502241376725272536316704394626567489015238775437876300426997838283190899447831300676510426678340278337916228259390734130231065858705387695734807234248964354241682982747880701524326978574516956717076968722781804149612414295412168349343020863030175400951686374078912936276517952933226646329784260830164241777221706240127731601177758218269243824886287401437125792436153567389358440619327688210447534818690151757624866571179657671526234266225311601896854142724064712222326992477491400042950245181163895533504107721464520611398532331423606628914983958826813327624394764077299375991691982838895798195804783879795549482070083531568812555780335801217953358527304656787521805121604013117124957468905513727572967484211180331992074389173607912198164431205115887272245683447255768903253217560355018104431978693994148852974524961346095284835892641492479827462520362958999365075604463714895031791454892403756727500720201442339314264426787331391555239796270162918716493008587637221565688623241376630123556898057799099601314124072693178678776980500743428720814310367516447433968049633767092250434957638571519548717230217327353975738992160846113078437018832044973166088252761168818188365271257633973487541131525507148909726932893550568014527262619623095822636493972100417690848669922300529412091337524613130750966229068848571522628293999727425589571985655575879820562563660688222150066163306808620719238938133327468498534405071659922484172137723209413012904820803229559436362278172358391309724870773229839393715903257885436853156988460611124011845534798341906037731531239283971362133776042686144032423864277113123822313486930782269264186079746298174010579497045762447116520751305609141854172961524935895000064933139683277604601977589921792802304922533921241212048196486545250913601696532200744445233054155932552993199361696413396444115382628941486008247127785046119717146216700168792697275382160121899130431485687500774347609300352136326961352201857875181486742488222293382788658202398716199700339114260159230420283283625552163133058095183386972308949691356457798962991241755156821771192179395958579253914847712430781975402841427042573391690659069088252167729817405910325748014139581103876464822795960561346137138624897885048763425971369979093652660122510070644625776179305378165303774984465690598500641052383904514691963544169505499673353302585984155036693092059818247348538634032271537311369071735861537090356792840633112948186387025009153303044645114750996867797999516278964312286277472514336798355580957126955117563945531583016911610073964066613717432403679205898468167745250111023880555715430154111203677231143629222029609116083780517924390497440069890281228809336461271070220748542390647470163851170005826781186669484526744752997559059822224968492997149302062316402299949531679364503078000076468943004595759924914875954545535309661823237137796682540803359654766874119123662869137274826248931609719697045174907715308729713493408952354984229867449250128609687575281773435808273672191133062258778478058540598840788955910443718269818956993090716389044333408995840283895078850007811270840353161211243180649414362527098458277659507616152709248879358630300966013999070460502084615269989136536119566517993165396890145955301592758060591796526942861375951458601972282272326980204312435266023325292180639842496476596707317149988588945378889040362558693002186602824127357140574353202022900660826494052877205173823161026295812467004970461652117214484513092787343036409711351066438596112163267466010489044684075205191999563976854389232014877013184093112330513668804670624333051927357790979554735620058086183706146619797038525910387195299833877281159446401593927412278259128787726481547732230711147782579500923902746952867421865095511280974667049225662572387831924551516658890022384530621208538950981183904041741022750316394199443582471173558249164447949246292832171403161798141236209623711602479545214472604208582688687309122301999359148338700763761283495347940445263452194484706345451594332021032623347951423134956101628933236508916986116545000626929523082302494507799221648415741141242398870965867322790332647858062862938577826464829194374196638292084087682475347849967895120953493794144090935455093452874738736815773664826161255762715770855779388545952422070263883467485101848286977694905494383685781052919511932698876883965588309280221777189596653848810759568621438213524914132348552872253915704061277137636259821088701307991548289843508147024087151060842018947623467320217993846138982097121003961983712422680994079293396301726199187289237850050954686690358071552355387894328155920610102280143973878242334525242729912872647291848249915270027682175549285616871028390495618928928714557968993079268134439706520486420885240807216946656138976221874015716802547043309484032313152372109290462343832894680887719488990959684826160868198496891976669077723671548337760188714215088656350690487747515160570238989875285658414920635240496529059643269137035194975089835571310633670124874241935890960413663095715019043842696196212209634384432873727976856145456968767528326023485868170732676460937719915530427104042249898259712848362919056915421218789828746789542642391375145182723724748265347822500267762752294271651277939973417449037869361208933976712922261854199210948082452658480229779107934818905470582706291895642679474879858343182228107326036560978913943152599234140491272079137375725022287387738412726993988738428943125786110344249726656725921797213294613902935661705915849656295552873463047426955893263213947014298567200588797753728433109771177166704526562415003467907499627603222148969349894523658010484316264065941567491853475500987938495597051732118634730992681838715722666639998702964971744706631011946651673835137454933772607871116616986032646305976192205530620866992025461260849484332717807831987574453401384838446220642185021103701908784087455957258781688186634212788054674841292830553524294469179739055371880968721455643463049843452024641301567253714241230496622835360014282479821154916495285074750158058174957221625636648906265663904824745703266696413855012177302986085308135163481243591067986911405044890407863685153594492439967630731479542825215520547761570392039249986748155479114233848660231022626467465319454012984554917684573754165109564187778694000350871254690605671614669164644447798115252851757347839286871828024860732813376069020219788619090131723436124794052963785888141813982469571892739917809420891340995307645258014189996145214558293246524458665849273485639070713351948487613909813321812806972933028908666234154230392019657316116993795184810896622692660983397356784494652358830433138388275268930475984144806173268681938499117096440920421340019381594782818286042074578133934586323035710743721452066066664511642129292502415591351862759683186174312357715758329745507591544990197745506101960152579803386335559858690447001045957368611065155870670532063930192505240412430809581561055409059714920548224332554536488889833152439232454944180086383365914288098241716725674572957325889960851821046994274006520508464775032387091557804431320557530824989304113565186786890132596075026746034101799285865169325467861916324380872951070239870783153399591658955188661071336567901142675104816800882079345208061204604499322692520784790631674906645933374849286615319990108731494038281479842772242463816240462059479604541401643906786115527732178376764152871926954420878380079814320682618713894407151922199853544732537987171287088430847006679643576057341626507751938022311278025412524222344102058083334050664420965525762984549489466721705039378569261910140980435723611649124283837546032829196768934376147205135203057007265546185744274074132623291233908107097016022175381883126709247495516442669344292103274422682400420265209555449962908726923313343983031434568107661518935096829745068506518846023689582597497355643012026880945507591520442445819003054571538593842869843204402937296863293846571890911983920478433013398934545171741349982232965797759899833145939841808964624574179293708888669564885966201842742740452316492804542403701553867034742041485090935993527881063919852509804453474290748360017156993443521937925617935681676785244143213339630144152547116710439329284562906507719312420142156913725748588941903570463007087232401268879880748109482953982586686153791806419224184673766413422864842599662533376005320883433177245266832496117286756339829764376546960701914276503944715169216498741596855153295545118808392342123517056097313233525770284924904907288729319091011560084012879709652537931681161454582610814211637232295152691617778651938596811164480880591522192755927131074860110126979324989015896500864345056536242030113767483439124328527776375465910738363013806875546381860962367180088366995721830124582390711766801928429232612839369457985513201823741753979892607859478291253326529174916739920362632463157059543321359744997375618892286389966805943092304485484068679010446910481690099951323664601698668112809208734849337829484836223072964479536890273627172890755884921984065229503665705372023684727638619230462765194542671644037682013259296669054402869745671190756799082987160809076865799681257969270109878899209602555178196122700982901899190746336610857860094526433657192081941953192302626161774628681045225760793773794288703233832454442104539533992684432337438712162457926033883938070813337748688662682439223430540313731273702846219944106997716592649604770780372678502829393482470831509516289193559548066953333345111511836947577243502122288753287568940993597215539707311708134255986586606562633944781538850549833214253563003186189175427261143329644253875031810101411336478215030734711570056762477515978655354949076409614353713884109269362753904246036717468149873634851214853191877846622871812401556118812241993731916246062239112116169132853920616442499963275107548701256819592072218741927163391289312978746094958108578344324432967534687341577481058577541367807972504496637149695846848003637966457060759192427542871953356215672848467457267968104126394185385292695898532597978968752010087032864575504925151473004038721333761195736211842943874231941282282182438960620746921237712993323832094940861358961162159912028079230589624634875802296191250792215703253020050701636314588445168291094975851025044037463547267149911546114682576733772714499613463341657057490545441485691410975167255465320752236036449266053195253655689790492160053303258746996993362236392757285045614984299654048228997747838526974118301180507247369380890051950279297831909840637886479999454574884186079705004565133648239444400201944939302437380316752220225357151342631158531149043172960259378897401183385770098324927499134670559760725967238418737565113912902566297919908468755439984705492085461747170765249757490184337096636267492789419294388095243742735676679329501718136423987879093017654807184925782154384975391551327156421989137464443613561477070702117087362041589671037871237794794194761289898730330034573664894817327126598398046587666664500686648670262719422806963715975544862547770740524446104583155022650783153081719488500041294632632831558236301268725866114386812482896161535834689472854705211694403228602784032447321047692256197012341074264978647525376607276414282131828332304724484713561530388834965405042974515383213201712867177402741455998784474556661651372945359652049376102164609459244418899933196340138353526877669228421955574040553711518277448373484263131376506480827820797894593382139656924448967889913508124171158146956196607358377936472370542719962561317275066157512782238328201539412420079572845131685518121004082756105907453542719648822642920739103305407062304994871812483469121710977820919709036023456504308471299365056412887094393819625859702885070653470138087777641090602554314956625975107920085694051142888853700002545212855749246542729972637354942613182114236127238630300814354696474356084202270201033562493149096735360518525807583251567379153877594027986832809568475439631559060052122394891107973887472434015942640389362309734276439332845739287692923533881649991674808070726255624922130958783560924594938525065705004772076642515863800116413413142797047026672005887477458990630424325698066842690539697688122494538305683156677477703089198989604353055256227597170275549104644332873820603921804592804010118890555685084925602496474319288525928074808606491544377364408415755968608131220675354633302650757616349055462197952993660157143304270192352557008997168576477430217480165066805292416466289583795747468700711600500204035146593998641449024170447857338483588690001091326685502117210481046987552639627896440150424221818751054715009566818086823029609334136747244281553210245936769089296109929608897080363337065610707365012872704751561870684666752737889686554001079312755123654083207113763433574449435355943405265133451790368493489173795526633477042289434047868656384971174007861331684072493960108796979022663090638843530213409582870721277175936305044932765703137487654695394749161228737878154648809263936135134776836697884091696837255518260241569491880412482482323470958426141505938658601467045575667086270837617157363109020174896883004811489304674892586758685281864993050460807331325878039154169245108028761515249321894794366573143434038855148019192119128826124981093998452711334693392150787063244467509712554318206341858707774153080068092120849370419880731580559803154214869041843950780963132407580716827254790267099130321484273199204964730300470034861680798439365951224049730823261793141197631182959530784270982192028890270409177252892571056003755698581448193426847703215916365618776536327948019529012686422585342210875889119708657906101206205137055940120906696574504372563783103121624850539729063522626742298614709172109082432385766030708695278423010649637978109865565277817497901584686201898781559067242700260875871159696952482102902454197478063015664242698404008081857447238290648173765262178912660666983173629808221976010253905807675142436440104619832035873051006651740495475827211754384276564623486934130454119307553570488952194933442670406131569001463669372875570268858878927215262661132748006361946884191216190235761567438486481581997525123266494814211473344664503997069904750507860600387895565630555916477994828055738103909046882050557440675556431456929348259463657391433860048446697104847122823160230384246139767688246132747952504909876275268634147454563634045264329654491132245025371618516118163963301498737847450413144090483178715450124341393305262141916381886061700899356890193886016129533271678119711042268419506806669740585596758375991202719302544814185934594168095385755269751203632594879953858559062762698045431941075240428289247948269882908065073670032852590379328265742086157042546636433665166679178391121932159901624738256065197017266452588074759556829112032010253074569805655193454630111671589088488337856132317160661635425411617986400145334059626145461357967021746001250109013632734167127283789891824260072781289541831305172269995201670177626573760960226557560132116665423906794658343223195108256322950327428068838655756463258918249916609288665375997455396891548436196345130824733117002630474106355080804943610317011996033856706105592962312947604963415983015986203068296612918896272238684894858061573230570697345196450473768879581262932778084448428293833767120755680387387840556445937180491259251828887185720132093990707390515813891700311299203641844644259864898228165469074332508343257632351344297363379487406622381332499777593184300763547172460226373512431111943294886711734431109883994548056784365091528240257855200234885011909947682116187536894180749031256662901925420962302129835392341476420322729970576188046557067830292865615939785238266498173776924133143141905065635673669192688759009167622160793897781405765138807803789254575035020936669120694820680336675580353709355666500509305038616474518737876072020225201375941256856558500661220495178861617354478151406030822905125966012301238924685218635196604714668103064760158150439494585095848755912442965950220240618022251677780135994870842416650718352539163803662752963227496681624416038100475771396145407033728009394290487032671284016523489773406169640665245046546926504396361508681641651264097153302434478369525031421557034965244778743216411356812125340612587346238760758167256024897049056817297757377646668394286032469303548513671183636290112026276711436710320581914607535670517200989886247468805401367530994848248584347385566900468596799729030459748652556777821924756484468637803440068410051612582798270351620142723576268303818391169597307955544455229048842120050888055238147093043120956072942456032775973358971308798053702951982197471717973066098894832799763619938466246006782201351663231209168182476016414808349645951328325866070894011708103472069121522241970480164894914100419618195515164266675523569781215652161933943415707585605305245940430433874752475692523295978472108445318972197823098393187238851902119077717474145350849658285092333603769941068007259878324994004805054195255003359986844450459939529525423585581724374544636146449703649016750168034718495637301296921518858468350730695123796617513811899656830197152630615733065957902175367688819375615006347406120208577118997258099576267337103782962891274732520780063820866713421781402498028472752540629808097730178805557162802819135000113599896080096425327098715181267667818972239824256000277866538896691887638734590529401897408290355876086474651888878066664807574720058170549429460430544859658011099541840782378852456794927820974856471398345013481423045929467666803090948361994064405716940639225844921280655825786945211939978009669987680521634925021579644223179701092170601406789932471232298940442962687498972751477673082719836208580330903175774594269037657089449432649508613404700350492056376815574848370810638841649866385770639908087210635342826074213494095575404065307730624801583851056804632718799504701319869558794577775939381916751873421394864829274466832750470555443158759245473861718048857975241333741040934175535629629901659338237877409079398778094493471233905382610249361148036722444992820307553384851796656726441251310977755677299343635345586759179453704048911266127093801166654881930088280386371544557470942534423743451760925320269541416376402551749014779507112842829230962743150022273406552107057745361036024010622744527378055522603243571697607966027663241037335279092363556711305612765840166349327865938483282668325786169022586391144759277672242110041541318754485472445248487497299164306930906121913515498361393695893385250333240768326608874914142732508619687514360888796307458182220494141491950130652049745724750873088803233563144667761992613447073354874410888275853652280141354531965371657881365341835602192243603704943117315837399488954984204463479964513028345227374456613473741751335169656853845768800993170729932239445483199877278940191214025783608025045427606437325328914249076897023003086042382878667512346899769447543804639007720438395587260171471252223420854503050018775847573586641593115293077211774180336095327696137188314764504406865446400053114084688174529653815857477168120880989503674228769345467336655649209700849240970634592420002925394938877039890667327818935769483468115719001435009268868906958175834269185424529928625560595039798811643750489676068653274977046301856842836448524859315180504665980448274305734123453836322310273028444593392023640989572385115182309793868060588785165733976381623973845317076316982699218770372111418489701293188238936158920147944449794402154426947749905177899732773457615565888830252637022754583950112809576672369203218580718596229525767213266350667822397596014254416197723434997331189539480037587311970888301904757428088602461907336540509568179843524997218027540524305822288145997779409407304001619464069669259246210686895181047387601540585401147990945545717165714688913280331974494826285650305445444295700553577386087157907963851584979833588141626632356628798091619395395190620902642225983369180373120641401117471681347100990279735573590665473098385108682092357694625983083612697979817982665460152964751602768610801157805154526104046330420140028628606259495144688670983403577600031341545625454266619727315013830944816757600508913394760494964112909636326140552766984809973562557116338162070042673937619008071504464061201690390997262053564988448269105797114173390013239996878069587705472693000146236631746410685232231076044620257494492273886698236787834061005033060055916222520326212774337235608040505961671139217079869820755829239502042700111787633185016777588735307188687383370028914249607450180523363344665498562249601616519539861079337665560916590412692792324811024005559187285784165591054295303001878125515474295119030163138971053442635174447524089632714021255134951128718165212673418116885745132788501488514058089618897045644225906457253082877011561282409198907826347643958255270755044664644544831677784741055174792618650572048941071684081046482877019408664265117698400880758447071095700279744788613753541995931020325341958371117592316261682855977493492248190707299449303010189696174201386907523770372810771578928978748284557525928430477839290582004294349677430665367403695549714161964984789058645412661925968284246515768460930948018411638665020626119203462208071060391465497032518496663486276204212300861999603862881333585878262506677984214164564799523282112689330456430731905678653882012498150671324818257959784776554529227862424229353906879804130543774196256895626143551186048107683734804029294906685257292938529987465914155935789818141766190139870312303558223698613728467524562329208350956172532159080722963436768098621457787444526698575683928876857855352073033178830358165967877193698525535968607833050805263777062851504353028548394164716448218856560003226383512617007896891682749720035641122518639609494834338680170940979607088560874499136093289454809156263771834858681257925179972110995594931001858976914087801873804615300491685831915632806867288126616492443434714695167855204816632065238440316512734968320668222767482221033625750297044122994483942224796048085775270322833681366065791797336426235686605990830241550152223506834348556742783054848099350577159415996318704892348713506670659886570668094537485040300921530884898565644414224744784948146650619128560311207921036407518957055172732367572120570695803729472246150897075316717357060814587047508474810523636516177697251695619017243754543032699965871592678947585228801765998831082211433214060784787618566564050103292230185073633679948910409341291423475108389547674316744938683267702175272713722882609367598701286106986037123599481638855499557637042769517650729101151239202882456206308556274667726860628926045383377103399194503935798391398065048436483255714607816115778881775044110925125516165199878808960628629970237063038671456332947642039555653762945935265790373727681722597101213550039899819826996633497463751733602247752875182071144279464005460406981752475470292241854773386409716637427668526390946313584262700132676732309661863861179073145128756521837349953294979089810621185887646630008535202772151043879719462803738115955018989341010568869023840061391103162875295040786878855527320277468903080259816082536471794226512581220244531232969134608462799584539571702816383403530611311395110069971932231673846291342130882327746240705266987988073247327344399208286136315911256046951363019624535122844766238507445719594142428582281057510932753759202542474974761946527620957303306293234292533960451852283500845141146152063498668719569442378333704544162623000328928065514813336034329321967245246794760277787366050678345578299315176933799970293792621962860275301491532704378523556204908195087655649673713530909556843330678626836126826152866557069835279857247348047226134212822186733045163262332800256427287789925337184825709078704814662068312384992311803879839693175029959470124500266562118771590875674226958344428306546259822490279521737230805000002927499399908244328335553129135950858517347081227319095794333363356102178081717631316161909135532238376148220311047110109850851097673617276480185477575151362724245040387428364272321994623671697020440330580711331729533367337578782852086658894547132271357274142714019770332833077248494025010746441918345353117158069519610460461543749360723193471070222390115544289871512312975253170672849668959368848900965436563007040554352647495332962598479459852913193554795765469844332351800604346639224177323077861850169209740168901045809736458101862152121930297779534997465401938173029541697743407533615160065707261686955515701998481309071585708508835556985355304071225461838551499154739565678980630291617119979659578260248387642139389596418411023225676591079747486087651273465378439860048634187972305468650811914977519881169034163038705602132298142582191627717399691855576300318369268056341097119118941467550428683735812186936974925682223660793583389801562935056645596795569243977087202770805720482911885531247988719735338203921233209613527345367061242594456364574621463713088763249781487653432404499967361825726335604797436913867763234027856915301986743423956148819683219705349108486937357135146772203005718105166132817490078657238294822439266084881044211479066104161960259393739720810318689035426154901012511529270428862000794030706479727787510957093470789798808921481197078558901519591418443764258798268119625232406127833106898223174290727593049184778594189256306259918323636789225827775807859820156662041843179089485979199620581073757717050395495022761088967882178627241333759383359786726728166847693146379457498371143866829590765330577731363737919319334059869076812713806991119086695334451968901052579598170277497226744584474010587056755344654174490883744101671167324217657330118599816066936792116458860469097319347397173509227072234772032714157430287944018831246489919854718313667726545370856827587509785610104863051444933424987430031458899586536134085798329555487075782322426193021035925869387187468177405008357387839304595967088224879050907526795921556409422998811200446048739329960755912699666504948922654809060896104188778939236325410156201579011355157442080619497135496759307112479261436709348186761058247884500179765574134600866172678779029004520068125960014453428937484202206481114563318633909940788655561009207429369086757495805467550482243141761738399810721070324687185239158912261215094594666364560854691947057136968485887374319017265103030622302472055348863827473894405390541541938163391868726701011419067052689183745232990919501706192192152442059799989870662908113758911627107868567554508512470564072689354502653679343573368857710239097348742042810165404597584546104764716272753937433610084505021512304725991500511028996934129113602903963889409344995894890843906906896479708277587848491503289503220994032740466011627855739315811270523763052712824475965772136315898234270022775782200832616390549689932781348078565321018414371566710467118207133297702990638156974219678163448983452243632432845069960535426103627285627454288989236732941318518950406411670445558018442177014842626891080103048041694005311026465323662865403678267688222751064164587871063987649021007945862793149710909981015262191731082920140472351164540169492084035743541712102380259447837035433414178995559492452289920389873222610500331547051708614080974616867039306934110548332270217077129460767420390485373271297512971988460499055603573238616477050297616961628929915124722886408050405496063597006092560214971713832034194733473702211456097149710187160093195212645790048350036184186454420970967569032323657608288310924437017742940782925591946299406888941925696489377904450908292504152566099570308158826133226744842425051459936709637298068124787967314705607811542435863938513835481145041219486513341961531944834531679507570735589097696822305522665153259090823966691030882097923321752265672597946944215930416140369288274440666027070851848151814684840243891039248766079563728414749991420008169710613889676198093815572507815995470587131408642101483745924327987839786434574122681228798172548977542141767225578928299740434905922432295088429127055304935206876804748114518990296455377423928937778706213561462012445675467085512799427060683726969202414389495189145718923367406101819027341446819240110511496262173388403131460495319803277305207940602115628116289146840215567167809829226930968193106862994185694246511493219402955976542384540707139541033647039717968298837891352121375976439278910510176910466539692272587218151376950111362501972080978554198950240247002404075364733512441392180455644005770990125350851567803140427543664787493803056587707538542327711251311717085320279543001502016600614707206710151223243636335974813719276077495833534248154945634191214610787074635826342551284410889584693806584532127717062981711628431519913433606312755082399044725399473398442213981403984715581409680184065930774058100247800704440273418822380546067337315378027529762884805521157890431525792053653617853817802901666123771945077546092085013336559685305005936175159346813157981408095644749634761462560731898598642406008461644326287816180515238974361552995955208617116149589220697060553031592214948804128509263811456721662038892425456014318523387575911529705697658858873128914092591659895658928992318202821093279935893827086947619142147554917640627232857039349445018287281579850042997376455055092287746376556100771201358804797994016680588057784504483988625260589681832169864023796679195349097462928435254597940469644448815342082876338369553585025822820998843599607926954365543518761306654093186057252046620596478462069629883720414434214101467888177494842149019427066400882438130511381329568076400010543566303370807802054859509900578707587248321353378384829268305363038600955146045701107721657094231697640040501458453447029601328067205377978495069269186818236222567265546899734693737201324337563636820743105252108455074299249162531045036196523530836945948117133451846235774009485619284426397805050037508483047096078557320690333555048038200408154643743764227511455008576092561441199093822635722743199607208321876208193129854795080710171914347784840114773257561799979187172525991385503759659969606746370705638525511628459238134251091983714567563018867527854745087759727271359599896206110967695452344398044311390136376223039733930206130382314165070836200242445858314500574591590876775438105518065010477680370832436510950462225586375207520004656706049832032201778085537190030922496121100390108919978229651545750214243424281184743041703902124122962975158530889003926613026152285460846009167525229821869644274754572846117085291915923406847349500168084408066329143199033372835467843108795540416059757786910039536007521237762984562512617823447625370848238440211997957013861011381186323937478210229355738968944047525236713429513326290728311647737944813947666966514210069175279349713988103526491610990703854675925617438160830462855925326575236667793895366832256532323498501460126203745522328814616583260221864411043152693264587672172568154231089345390812230330503468984067633682485599917194698854340647744222426022230265375221195301097711700089136229515367611991167033739255415366487463937913973895970740937369464102257412079752113031595442073428838014548090982201682884585640690868197260542755827337287372419657832311129137191491942834842849824082863392366102296362992186340959594244154433984129929917034889478436605672629999561132212319659235658830283834569123247725571875129600517168868734948490284970372706477379261768751117574810015592281952559313107305955831443402334070020032576173547877341066877869512222499113827056768669383640774960989029032163510900258982009425054871529863463311950592780273648646771172305706326306716703432861097971811424136754081343654549153249574268430884501447602109682844048087990868159738498513780581194757472434966718618339067477154754314512951985913999719085857040706285537179130784192583280936507116465240133434484901000508698516126757529499669196205161939242211840668601437809155432769472572461903120953924063571135290710269732991919339105086432936307080378616288291511441409449000568393761127138247370803139550624854616807720094705034327164008559732488644852355177384311086568385069921371406820896825832515501723523028042353951966606026702109396035199138329270415156536711835019194170346614175587589276354447607708403136708004067028609517446979548237232406901598011953226729590084886694450649175850073472564447993713306415142367834489155044000655740804124027277908868998925891430896221090633562600366592016846704796382454658702674691131167413557648650322150292678167873585621677525794717897629624227869433322874358189469120781288640796485551819313461048257310921460100365903398195413607548951961036619264842992422843976577338532255008570307432888901554693226716407599548649690364297951388558859290934222961298607340242161873536231494369900727175072993254473104382390472648820691511858288527362402437853156893955103538993398626674786298979741065492275544644286620277446657380068703684369885062662429420986001637559322248552002815126267375824768807455748351803136890506010235427053063467702247215140494568210229876038850745076164765677578258132411378920669164676469553302053100634661646295931782368708727292645027708124979708202497336566234062890034503483092794198374155732006440016504394796504982243374222569781073681933783573210832927801929624841002471843159359461573813420254479942268301638908747889793394719128646840775892634536335206534962772691159648892859193222676904377985089843096117373228573102784241737990372719103377585298553580366558897989616497438080453909215745531570343406203119394797479593732431444189843240444067749303222769961900271664842612268281317797488359303574743557631937344894676930389954146039200240110153674777614014353075988322836471253092078350734052924643036549148323442415439934241005715010995102805058577740780571735911036468237483170968409459755364666485275770631840278092660108815127730571146406259978078289268055187993359465261901344349961809243407623325464679086146669231093305099828321167385291830950953534032248429101678973813560301323443871314254216740855231590234412773655395505435242949416555406134946330999672003299461417362694843853729440848755058916274843725621971944831643707065101595491694818238249042753096832890243054352088112519045456195529596691199133612873010634667410433473090631426544754430353311685233973585530144714028562203609987854681683396041259987700092613795292137754359679590126543726728736287810030005833060877700530353167752442064050072924077068591393338684334774806360077679413496073367955903424229794170692917856788362373827879253821877688718859918155039412725074248900261952407046267476400517915656368790417620567321044370920740690789343647302458661733647129078800404789820921622980299368720442923004423827200912146544037995483914744794168971800953547575698825857928448045794387398407265104304310255177540262167186800332709541963517146497318799480424920265738878060811802085976163769928422085693520688766054759997929298169643886261355889540630372714378285550817565001525562133099334593940024480512507842152728228148309649865587566105734267169757280969671830489531554918492700037248390641671373160663614430008880174275866697135639185390496204812344398139088194936684950945861682255643552463197837874330128701862591312967344745292177683946493231879265724247812400794102315467420596736397374862879293752176976831056985985062311506266192258328810921447345028375781888496028281010864500995663097816889020295226198672210035427685779150170825903752580895772971379416708045711193634133801529156673583580196568806668882758647136283736680374173346655940921478395041113773658050080667292056530400543381048298487838450389638222038050881789108817846686382577430474020633638223012855084712119001602932906124875909285156562080327259206862714043340865017591104764882260559948625640924451019699954016547493180982767860432659551046474739987958022100956693765136878151792115568755156542932400209295292582187884977023886939022890345708464563876671473038235841792433520613460079092023120197224298386064164524877811453771783914081535113773864279752607006801273932548142071282841609991348384006674960280375608779689969349664698571702607067857104663542597878446381691796155298173581257279006421583316922817827626596180721003450576730455430133953085300893764800281949258300101348604141599417129388987566506206972801000536853546228792884959850612871609812161487738594480219550714218713858721059062088333380725738318229737598458887722959211573130809146089632596339708106823263941004833477236080433465388466728567228478019143321355863806912284692742558790313089902460828118823942335365561984243624356460235478603677853311935429776900845240558905665808281016241832985180490415563341550639872004523078974751395829470720576465130126890701592745971454636660663998967448820681938554210849695763675727114586935635341849534416218376976866162132287979637305447381024509442157926811063799313144715456462939259606836096031720939520140401212844794890261624317728007523573147656393823783956255048970290284518354527580561893454384125919933771186268334603410772546228085700303430266419968967128744122504185545391177134621786642228718874402872327049262649096296650270880966842077757478314276883397693602108796578721927622896433676476686607122624613702286504028010089613999184693537053127739431617951942068637029200869840229472775071923451221757083566728926637097646314835925085551127212410569001820100400081150777681186498357262973912905362724193179326748565212759457318997479704878212579058604015964604510840593938034507278689505369608594200951725659937571696204667225484443776388420561805443091713511600952257614566819820661909102369577579762983397172631057552638603191152854384447103320106872796275592558301240469352498815093649521164399213676539184307834509643702497045915539800024623942532538257256623521014689091960034074677543051835523721727494739884111273813172919852724209635546081392923229690692173657121673631158906164574596886226545139025786266065032230606931530589783102765798950732216953433694210467270544483929561105337226040855104782581275708235950495856828743967432438045418539666436406378814200822051346421919748378311826620975436615334390668974266874123876044952040406415525510202473218404233492893130933149081895544214778912677973168382635449255558821757555494035480008357133585656658719933938317923337398108402610032164443830763873158105534392794044223771384449961731889494204631139279752190033434035241530060701462082593133556643255970363087483725661493958594854213711263293004931363628226236421842354107489212996036521644599620472617243084314753191801400996886793304891617802770572994890113019852839117085341964949494581759227572449026304136801399865962621011055637316312766883977958976473011567402866723017967149532427629268102679103465889145534306911732021439789281162713886270547032653671068326501264319478481589382080881969712305695673418211859441285244741279891463088171941500560285866321046578284386441013969791760401587119594690741947444743056882934059207844475309432800070192457363906323046048311690984178292330652496598203729949922339914394159785877412663560665202477075345099726771917169618290854437056133722227647341630252903917484611283340724098416747661665077397936464895916042385426363317877846732060319163731632556564406223914721729469806683476314087567333711368920034319940685830611745639480205346327592480170571668038428792000909346410130106879777671782185510317523577150028292686066744447358981723434152516145518853679786092655652994507787634574419409340575822474009984837929882248681510138514224107835694215174319821765276773310928180115948086792949233100958483080010914666282427524383699967070595912917733672617804953318952763735149687670654676109754831069996443175474036358483707409237864593599757359059212500829540260060627658491782046244567539908179798815878505847661887717981726435658932743505181838088786467044228884517238617441440848493371438974212214891817306980133963714310413714811837110935404451777078101390669960408082481587891083834562832698585885543716608671840523443233816576666957060396273151233772298902985453648718306031758955788623743489337954187631593607535454325083340951631340495836452222042766016972595710002092889233681135964546163860637319751458733407947560760487632272491046352404340404870343204653251529056891026687442151972301472500957530532773408252741432054284857022794366659897006025184265417909324040890452514555578516123163377613592857107789518198143204520600456005588880955892326282771212752547590478353508057983398241850720912440484048747826784381226863344766016165372329979361800637304994037746792708281840777238027437443950518643664430637120625562052238489565339583769212176736379906185966267915344086850490793179099105581133394372760951369133427361271299681520103921828181290432059318251281173838178115210936366960597941915447935229932396975755036904654950163330302722067290373919900201073460198433872482667423066602271590343269891600069118754228221034514136449445599224103053087237002014579340132219239633507919485460854604247290613029463359312559295504146083427676950578305878882640172338435668961816658127583729438517032346917479405658255595014977242926912465178969586900468892632597509388290967627235667206199728404061850686218892865476881673133924497757476809063134668967406414745175893505204430372973337601282274311661695061451296921008558500907774633365888170343514022407300828090068882156876447273489998435534435546376294856716273794183305046560243315145560323796265728382324564515805267846934201924363923325612857711478668134737160244164541444574081824954671714791103222745915903759572611054763365017683880002873828949191377253008743807886367193760256180366405081432166043916235813436560228154752400856037031129628809102183981948884294983855993029522069666076993116110887048332947496696441346417553200207916586581367296008337837530621524521312157426012869545821950646162259743586587895096138679782304011634093690911577534485833188547717850715243615083331211308848578729677160199174485537825143505896755673530765092777615609302648096596924185735637528451701532203095187794298049483849931465892914104480763797918404754354965709684403682512672204166960760671155119388823797675758006311518440575196186465194769409211992608909293559215683483686799184283412944492607275161242132296580560161828247987214021419317699062323358481248932438555893256377129854252413139627465360569715271542060657520772932096027094921527770119580634170931367050384500940078546995646118662052160721904813166585629531960920912088227028644462238401244704235547170271858415533204285266357882321717969958419214423860056910391632816428626078729906344267783007615962492664749135738147254311723013356259914839315288563085987738319238230011826243197684596092120254631387971252868605169577123901412825663112217855710330229005233981103060510346297176291010897882353738642236455481744198613511292409582664146682082561455633755177594902793751015269363478331130072486754953731635272022280987182851786642203507798708459815384333463810436475220298935110074498625648772548311699841966841599197104144489566824487247614312673144822953885097616253208317284745062413232954354344800485657929296961825617912234942957676132716945778808147381497017844823236513643964769585311100244162590089566159522197077748665290935409612209661731392624196489436605684592260947095477786678044149691304195273130086611694387835054484446580516043697095824407836869718844056862367907429872264213795049733700322081393885039774612704967974349257361318372353749161995553431233287345043643774353913988324836452219545703675321770161580792991348446037232871101681585136655438469709917465163114123137275794775720083131909692061617327348483626404802558468660195348077430131441751026606501845344562726221323994762571701075217639606646649813395407970542291907482158269855781725216932911919996346730254884437661667868532516368319524619847542393742191915037290447526732634284633665081985835465307796393067764353066364493758766944709946671826554275095750360014937658696858440414644104050557476643404335409223284799001045267593244688358612241010537863392889232752170590202580683017164566535613190304035927480969899100519996197818630406249928288998368669028386511703491227019245247413672156936013530391939695725758301984395131282585053382896562896368640382849972226414018495091126109907528629379686023333788074881700573166135281036687253535686794967682284343675862308559177911647499673349063916900141741037375061518449604752529938225366267241886852053087658976895263598806400708107007225663809917771611115834073551587613607731746588685466925933943272435362612980833393954224588034434107389561998416046086642068435476819365793137129630513663370956723405920900000567209827333787730152539389681305525973835933286675977133302314716913968270592409954672651721848727668812623206725886151288165822481267780291601161011630092579869885013271748705303394733880853801782104741760184363573224920676609916184174362732096060227783648604000764639006727213075015949953197424458851183889309187375157956168638754015273340631619122393275348104027926673426400522090757327456043442044069876793420425951751264649514029621180999320375882995156887348470414119589613393140614724857574920653514918734479682552391921740389609611429698929614325861371859046475668697811939274066014851573896656442498899113122692668437520433778044394138829303210254434681402441282204544724942980793704266653725921902976814129795980284624126118598193005162254065701122380015039432620612306681167154432619294427368171973811015966419212898383438159060670692997583139498954758647089375598114503137614038822470043960341332271632608579299301601981035196948931612647365314872104716476893745129792338357319953876118103573962722790632655829246952944071596452905270009637107352562909500799509342339191303191456678891783449361550222763269313909245776032358136616899231869654503273102514221999790753050731504631616145276683588043842458316222981127133188051615018280435353149503697737817142078512882492007996651821613320258913684386908991458266464646170529611522909024078556274622861069194676451686372783903229285195068600393842890542299234413560589930185157933519245599531579058188589568078173018450087142725298001678190051745427952578368772375925010332365277939647760134955590734874548328110092216090220164199889786417955794565199801534345230081724264142684748078652318585000874891788804345107047865209750265412815789082625367979382334303141841272295589966933467921100887857857037210942073082932739002734735736552293862112660392621391391139864018119451653047550985422017611936260285884490594597083375574757438085135265170046216253705203261327563692904319308271259574516480985286362872158433146215588676191291219172816290977920885760600206579830755737191643148680743208671107216188354136791456622761723189360247454562964225156523246634385006694106559966704481939193388634513154342224036149964296899774361394639867701351055724408439227895547040335030678992066597516089227258778837635584742054703609025536098932134402969100929402084102164787668643068260984927576117024220233373797514623009246000866849738582755116816364205903274663555192608413651001995124752849097576763203619560686202422143383335339041372721168889818810613859711998483871780580098906185808911507929928280986628387128821614198626195956470220771275285259772729079677219997470854894552537940952728256394878042703166677187034647888604613650130646640716746661262202616967643091242113437855531616429326334710672444815120137320290316066271245423950270938124147796601160518164059273041028802201551412514700626775425729459700301971710553129177168331908664430612878927672417345071912233659144545100311412429754480888639517903380103086268655186581617312243157504913484949311183817445372821966583363092750151397937566722841495105255126584198394303807599801365096140725697590674105429305598242834830361586320073245391142500567748549383197634153272961447476794275619712392881132336237435481035854740886334089932008397674428445881255671124288944283764560065439474421570269820500826453044863934603521579283835379301073494932219023746920700454581331366033444872964436850927452356951512913500274857633409369588785033441813892894993892462725123712861730164547296790864771446043692677413966620122553034941100599593362820820046164890339586185771291320706419817927447689395422094276998268836722853214557591888642814479764386578659760819287225761899095388625638469701379257856627545607946992253045165614707251970053228003789344938607956017477474555797419776884387772741237285957070794192916109217218843012454786223107796447796186765353481002109856753726007106875935278837125050423496748529503843893684189418479030909839388796929289470570947227346066746417959652637499345242910546853914266304562210513888684014035236213946681954464484857763043327795306284281741208062191555240884595906204124555237196481083191045658378763390458558127350888997000824025035628421225860988045680601186002682056881145601809136338855928845857833563282829792622449547887236455073250045557638020068833545396045566475946788584832986869713589222493235179796359605296274126240649438653458653179666433390212217496587661379776403700446034684645303736436523581530185703181706638379261761708664405463024991040330719105225662999215194896633606210742402602965592408560316380898469004461911475680597905733333036443333615423708484283056596502621326244024827670425015100719130292499592891197488446774203814349705199326898661393992395576494192229112002365762989351155111696495903759672523733961146225848221010527337943480622944493298025011766572042319361282380402214812238712273093324405686918849352110129048075639916578764581200437412948259174495971907278184436232841585753826257922866916049940245545908592871038293566286126964837991237853458225927645938789141811180794517578356253773419992775537391125089245714307644263797996850551960904836148907558970246962006780387251184347407763431416666511232364066380195981731711027541586126808684099428218569679219134897379868307430977610128846026592314940809009733971785677580366494922553161495729828092301125513449214747806484577273609816217559226712723607873501444183379543980667933778921490751973098463022663475470764852459384439590688333893953350439947058379121547734861438335483159349437614994792007541936027877305276818918945108757943581581437837434934093232449513952616290579846642771523066737285932548745410393258771097991257811923479371334443058837205170222705538614635394471729678577968896512900139238721359321566237408374063767931169255456770181822924421046341727851311753562694605817183902170415900651027454918191141458603468972233746038006592775793359271554309041822279710612686167716712883334143952082726838816176078425752864278491383248041596481866134110955894227025115691537670331723225296281369269094993076382458754869357907063436491718163222777995473977961942709297066548113727166806236684588831210250115488533826189653670997826607354114026712325046999889619734050636411402033414943995380010208301182191430306852522608304394850281203807625093841681397187543796868297729729472193383673992024769940971119207462130686897877881166625873308000282710196422283288153094169548886452882558081730858413818811471572188387826894180561542591665277770788682054048017715461424239922125731151711206206453039711939101526103261700728515775750001686290800214231777781844329692498070134832023559883294337357434207498684210330379636765584217816215142980232886207779547089814883131170887968225670062758269639676947013723306681351912844447678943826970984988206122064463538785751941459776189945974236982099877718859503714645595880693478219001697852946540132521393988938771129795630006572627371276739500201348442265639698186883445151434974678064350597815896969522392924900470242572960645316506348792758367743775940241532664971162017168733593994776433473132334182798210487377301506374944504193351176554977553476812849763204223620366393120516684017900289952110493576533292898871370709922189134468332600957854748643423086975326134489513966959118581783753758923884315408475591550930875134002033904005686098246000373532473999547070960695711982198522568864379124560981102287682318062091739680027297923128804185658418516832108424721990073721422835557356433141608488473721625218598277348024066723821083469934071127812505840487398719210293578755998659954948740917527233482964643813726407754732497835172557285266022704750519394229102741639846977769185976096309038285369439744566750584602659737426832636818570542834123137786936674696306315685983131154186015834305332594735896521108555524003544197579201031897069739590719277892142476352103759716468644033132717467457145559542020237109610621759790598528257615000316722439005215870037352018058604459550688749964371318855084452865751174655885135782918936435913706030049356368844842536852043271607933411855888763147349005288429795202228768698986356974581529320446919395174877262237404275151917954186595276176865275127595103725849229332637789110155007363370112282571789448887809731767157930302506471792459659990529216909733340410827034196489070577343829463434656027815711739744319835098822292139528004144345856985539637376301833650385826499014183825464681362249324660295560895823912268543620474741509156335976832140050282783172934172611169189894286556635017478473685901103317249941885107507215495119926566767603519404351877356116139271816428867029320442126707109343303435167498223147692678184499535835276062914503717059920372753169576384322203976731888562036808929461698839680127457111252925764564182266738102544756725477980308194317980310442261279470125108984284732475022447813277988714017980993559950469337440846907038855101167222475350352907126493906806368058668466416313021802226513894557634144465035213471958637296428465307116242324415941528008442875682661757777558820473328843328018809292402163144887629560145506258194384463818752099378327634798162257885573629452960755867746053509015113976813749561384781762289652403040085556506593926287030538497279264940143999864475327451706235930219294595620174713753208185258742884282253217879371486022339352290468165173182566049017326468129405372549698223697871906084164469188759854452029303851148042658581330997171389569936328986626742034540957093883481923804211591821998554558031688318391146144598122134377344094798579198395257621515717355448437457769179910433260630466576184596209018903922010936642685675316354850307631882504506327900308283677595979593327610578423961309175349749424142530216026160907119624332830187866599106427983869495883793908851961444290001476895036982724430002492118122658863927200945853783616083503446430415723307952709627111090816937884645703503842314993017073998905261583965977272150459250672737470786207254504212920628526336047623543106082524492587343889728478736126005187266017879786358197449716026139811669528802003203137890402040077333355260524332241612748187990260927285464314293190110493059327017017268704491128167224679319211968522342003837619702092085394901799300737259758856860429509751325935462585951193818765014187213065080949383578282216573196076396169360045651584226646654033274080851562153880646584429923454676016778737308922543725396389079975517545392899292791989194821772545797101013919434393061965342727449221250776247245011796545357817154712962174152860555820561530544964141207237443553619941724847773602336026655994681258792277202593646630555351195931417436620632906284308501809741027065378184013336324816940697611942363322945323196593085140226882274415932928930769382667823850538601948662768618749712012860871216608507552114028457141868368460869332347649381700404925546466418211271835306647968468884346916621653126723855749220768210958621543736397942396099584502648281586576883459976517010506638256774229697779243290546749720345890219396612642619553106935096251249345184786577459412076668595761100048340426187475349097705978220104233675517346218384187772790906247074736298909699692088090497849582652074605463258341407491433529601910069531334048296525890134970907620876260610289977237122245828027290681879624588545442751565630675597699922653965761437853627802440288990649024452563880787081735267091007361602631631417601345172131208968769962849198384127005784745626784070174224904802143290061475310255008695648966552670183023813141961673371807931561217072599765675223015182876053173227000443573926634556765377002058930025434742499780033551039060170512621680535227607356968385489711297800340225961804018132948389771015823907462313742485638990935512523340758867229782713727512002614995100573842388108146493173612633738259078082787115179370698929382603032718203088044958330157231513940630241719337857533451041660257082193216285775018218199192546306717242558188120398315173206232024325853502192314494806979914955615990962798173528769043678020008734084501007137706662252805292807609336811149398818588652919019657976658931666540931727716866810291738470271844193045349554216006824390136275890008590865848539470024857763188016155885897447922195565054871332778967295153955653056325679174290834864023153746662875819250048710166991069252836076614552421303201203509585923582696829587868545870463788025575753068114168812991185355614669514189608046878092977414513020371637010203502987224920901488075726280713415331334348258384550279915082371447309347356401796970019295523243899915557514968445875207755027991257599445375556193292593090681990309762742368970756762862732373659681170964162817123369649832656712867210349728251513755580315684745564350383375190438691028202653746175133764313197924075178813921051677099919902305713167733874100501323996174638824153155929213645219652446204009055025103403255333580502837354709221985078872394510827636905736779090402820918826863775924991536634345283518933822894506271980160366527664112508358286449552750713225786448773563778412162275900226484415893918673164020230073886593758429755339870583505888407765614695625748898745434849544545154811975893992705833101606284673548814430200900665293611090128095084185333783763424503690598527667170858009972001249342323146577626591243430556304812940968695579329472834514433322330637091443397825962731634152002207731700211940255042593388268452279675077088780828649602974452524383513232470339334610993696143596206278365435753858929060211347103979893432301457393331388593500811552969934720191682243104460684139535024847339386638133182239476765615589578025604178947959403520281129116446771103283384831606474227215139123123309755520674166902898957701245009931217785213781479095448291306008387940842689925760033425594613348507378996704860124431975907918316800999502388817913490660711655836912362456015006367914019448671653519149819774379109514121150683955576874211653206871760429951890966809002648096057605141614742599538675405385758762823165191478065172723822241955852610498182081123549412474339939678101475038745621574652529304999032518045773812222470110609548429709421733686601754296399538461760799856622377618726113519056512875741651211443083106688158771051780125341276578450186926068921859114759179206621853475743337529537947100479457307348011627653193578542388306139421156026333356527743860567041085481898532603922028435303369185863824192508790437693447536227473437941567057317266701477700039315005571735175678940145240981370320670761023311727272901486689706239277291442978812438838842182085213897332623330657544702714461452487522391900493145567196044228652488693816958500655124651367767475592100169587739909271336281617655825110763245366763451988274155531691126982987258021478726017111699357814093150921063249906268393432388998067747872792883626070742835949223497183153369684955050637411952592908986033967286022765306006057693515001447147598157883893987843381668737506771044737271650727690000686911253372233596216622700732149330769728312478375143949635341787750981680035307236981179317320026198744324829138061810908481229608258999429652802890334234636312944590416043016933850040487297907662675958482194744490662929884373327111300607642139527271302802571057037560874068073179511440091926080192708270289302455350093049217161911979288147135696832158036208361801018098339633430038786062244629143132029868828448873953604297939934166982968491053293618239248629670848619693876204953307490267610677173781710331363615670356329349187491205406887005494603250224903770725504162829772895409899800122847771217365475986434122176593933560975469098053580442477352977667649237134291852637472820686607607389055967489883018470675215214182959590280830274298897195299028644914270845091065306525926114808180375187970234837738280316188251397018774697583883307600680617465543931500938955183069671957245735965712489798798443135797760324286931891069825070791304208970297885990262645272668796831514315003008191220600474139738210906415836945101482764146016375676066035873687741772338838088708003382467222829206086103408533478719979689855265098830362427595295548359049367044647242974177676786779288146667688329960556003581595202976311673337632516651218871962362119745012361868186844580135490390119235167108193569558245576443833568035167348949193092303175775725026393555787961617633623691249884329148022503824036321683623105010536816452250877000997181205475024593855639227048317017753275169754612978972772378707834599266424971286755946474882638699625190800434332448706076229850378487639256282211383526943614524966096720782829263830893389163646270415234474230791145397097681639089207129875904118271048938086145489179965953779176804035957586974137108763452867128331932203651817875179510216387428637979121400415672344837465867758670828080657554567310823381968168762628586004556119843736928293109107354524854363794477065124521564869263616706426167473589732271391892549727874474106713457292529988788294911017492343502564074937136262056664268945359013573560598746970911701472921440602220483694027365955197368627563002565917127819228298075536805990283674211458868670260968168310456024228073486397071009057761957843636976479332153363585922075438480827413097697617845614861445095732684783823825873768285545211854277352393598979730204681975366938636627316261506176551398353426149174510611857410744293496763677191556580523959544514619806887030601536465916886015004940716914364478729843118177519245527551788074845705147419851535381219219577757527187358377339202022147197540058567768093878412745980214804867918778544298332390503435699863607478328443925209211390677807290113594784957131606368645540003190974387008315310653246836414291121667036982200835370877068714291542058274332183744597828360178801917758852231189596381560066449940483117825328342601659403048169035391982027661379380381829265563438158008962955668363567741056280440591900269021372244556213880106403128140957469385434207287561888261022995448245883194147185777925334310627983300637860128307529776543866491959698891642077045971146533856360892718840499273897726485640816333256282194752677823302900745336529389779210249851096277181662236797634873371065642067995700434142409574601447135729193694388492313941298936792832845475548265470319804191444374823172913253558033854787297601031258089721906525655558973314122218087566605324257944687000835918799057158065010654132415202772383055937235085121505533984107817638932733840902042777284517441535593306952416315774152465622122546938946036695820301572736900118201443010942518067336851936807774200828061028384816675092204119772226485343672861924553345578236365346018073264503455500923662823006222944289465564360531405692728466267518085264149674433276596564320417081416674164961775537599118537577962705203084042642289064285750846137913176671692947933556237400585848574026036819282228674010316510006727485856558315710575052925500240077199490017806543602423587379384058838577661842134273909380554042380288442414116404262651508835965005548948303239968190652440401065160172531490107509662029766070960058721550405004293631369720162533372087160865371509695281543244719243327025182326691731690284589546650731229684991270397139748565091686113356748026848828636434453290008685664570786947597918995955069205269778318387563228493877084435077755003473571943955661185947928119266815454454476171071709489688566670674187636768214502149265025885355952208094222135312942330850112801329576859899738874371923352927747980249576361840884386117339802016065490101112362017686825038942206676286898172351770802215493217241571175565394190122684566293813817242568551392301336383244105257012557451735053881963273630794561160477262271761611727986202864978817254431626942006463135852622853909476251605354774048539298984111787510734888743071381199992848875377108184803772178295432227835355903946683044931901486935929487389799585115080252992391099909077119914853725688457436082444382503438636183228336183158690829163385862300297200531098484277303838075465125525743918572559809684169005255522212688876574275454302074849620275501991381997889992706692139742731583982366440523186769917833239079160985341491290041061546488051737013736138567821126109279443589583859603939970920698727991724349257248709712060993199469068361195977987322318320656106264204950297057451907097091442909840508481664422614341403487505626563048863460108540505461572162904263992938785313875896608023874012768789035685661605370612885853994339953959138818297943548861696260380278247588605000216461802921854817172627326782872964966754751795329637820486786689120947810603892560952925892320217493857229692822943129822881097345929904192368069023564671429000159428013085811964895147365104732705276369194667562222549477645467598557805766041335924613583878264136066612859016461873275705992668940949109689095235628310812705732142778784058757902690258988345592156720012699577311667423777635884160737860079650839561881354293941883571413104727181537023491929894742290084007097542549244727640811705913367523422163984831290325729851093180417104970029694922487058695216426701831757001002549765350287853998154217854673281891859584576047778508485938501349486754220162462718733194273724750267184649225449570343202475478653679665489535225209771235649148592206154409195435768983866978425860073666572876871939060392530820020114739544784521356487749709260447828425943253728428279655981390027525726282984516801862134522636990754387294615475944505854720549643504219897000618025522343869211419988179760301022698003643297584075851162230268442177625981662935946066017163738326787118639301873609581396346237985663436240704407211863468705013692221299824764139091986187702039835906240707184337812995264621093113800764770441738272586545452776423974617546787499709144123452642979870901758420011435738679695179503513828667170562316682854220106842733833203150229137905653393485990654257901921790805043273739870313713709288729508639286987611849460030673810024599831866844703867366336259112967705191615029802421441970500221115823897297661733200898787817743012961959787515438783384702236772753289609852668302040360474816984143815848795166671365108209895172517404149029723275312059216121880378696840396396626162170511348122162650513114613854496318104395285450386382797914525653215587063647876477043794675586046025751613701597581154465938649549929719600452571110375691020471644380438154989841226879845207528867351075546752689600897068173336397804932256042526435498781696996432106689179483063582296386503751546967602381735241799953080196211294781440572092176986307561117478506689885403554795674981621581082979777373739345464725624210896143851073801897338216013991203011879540607098102307987335027726887348691355070308373439314467270252273525674045863425342810883057954313037974960722181718150231257681894322797322632121569103249296297058768935827572386929038110606768882737112240910334694868451363157889680264498686056389486376432729938409864552708823077088203001694792357720231932307742102023654910807781632497388439427479497733403467114487231750551471672171472944763218447392276769245372236275691243864047334223264026794059832246789659091783000845173076567144425863643515716135929990948603742595167134660007703240754119609377998610930938022617703293103832973251960785461348947519844351606524208615189402658629789077810310110303295783837593604897251435878385646593235742534503960663281285707208825567243929191933634225478724230496932226044673331691960282072909882100577638273690271077482959648643775646077859458890530505065620930580658275055118155299127360320325994408100983216841112236686980881934517829018566573430209500524630533968573194859747054890451423347439868488147820465540319962827000233634648430440147766414796861565340995111109423746962220559089781962134276969553866424729588740972222909993244125254266448179235728281526097247879539508568589218785393963052830254466784565427754459941906260516612494341511227764698595074142867157290113070079640242309841219041152127577464900153540876991735218888604275281217381762188532670058918562557259042470517895453553226539335713935792139812582621964753165833143213261359157554024757185079946530566146655093171018821701200022090300248876945111677675489857507173930394096811315690657586431381455717630734861655550745708522584665923121924507190214833444701193877682158605077137168240322952158284771136957214139177337379856128651341742413594322104770042663868736675843988051329434500756701873829180575566096363781683208606706116085418423670473063602937310964253303415139592657686737907074472749032036808790149465668726104199800078137832086469451616183425571747397288761028235344658250221005063427926995677731413478767809987439858410196638294587393558765220078321851569104228880531232579821911500529692014014211878061322861791167841717635565584642102872884445201748286984120978674142033762985392261546893103759987031157956667958302546083474564902492637137462775657958614077951574047724589938927700775944803992741447374196413980811755027760193081484078066247236986242928461151491387789322919377168695671098565837994358599919288793520860645730444796865540133825010820482539996946032461258558185223213078808323832599031886231395208405858597574062745675868170508012248287132324918695631247207724192251218185932411053082714209302914461267870195519535284588531886489200292565053863316392437958367064735296560829576821978538600177309748607552150516795128435742829622137643061610649585084106108112125385058866241710055476551060808500803776246598258133388868393692086290890310672818504579934304280970110638004950061649140018979241348310684077744666923299255167057405271268961849324084566705635982865050046306894492745924792322739030599474883510043722325721809784548580099504559077838781221035998566266388418236686678604716513381017812056154897946048958781131436691589727296025921965408553945536841715853736691204294202414756788063056433512704858053166263621132994382248847724134006567388721672315409251308140311297497837132390630084419429429075788926177627002321047758136714681072061239353791967135102573607785800571236776436737302805652804818471991286028462412357900454218280979994406067593996635913840968557913398052694184527708289671152703790089200611878220049682661588280724268129427802932941070621793442061300852619677176286271079298802371060053575870087835147155264870215438802911780367129778322543407899861642197771530624007757363209757204700933206020028224996726447056162241545439120921989359215603387382003013663318124509205687036694777649208854171929847845436447637716981956938798531040216459827823391028184923592488636204564717360538957152458413202749685536823360320597022426866005610653626835320429343056638435894347272296387072339571860556475255840182322019376033404468145349962018761816138975008402763936426968180113398128495199442261079805725517224573915505789478558587963689338989353970924776854765025919103075190775868867539054315601797079169919708991040527031446813077211856013562813922230753694774636777519776113300815164589760123294475541806878740616278079081544084991109944579613748328679178122162730385315638565951009987885279681388195318149673682261138344788178822596550787045058414596729516197961208777254975393121638278754380905502963434298989272901385999139101837647421375029997289267055072215821665550321334059949379394558320700142870069613166690233438639325275098590785831543330634086624702823942692692293950811395838492168713103392851684361957997081942556464437349556864971687976366757135624581424544382315299042544311724947618057032185615329935705566586181722419073385263784388154273532452103194628657947205312480494603284606995630997492999273216306256073567927991832175592488968233369707455906657937153768249597426147837149839794886180081899760957788081165371479262262757920466257007077324200336093199423801635382920685956475553336779153160889758348254787333613715585899725554489911613939870406040118309663760674004884725000222782705044325980558648928066812985992650410587333833519486220243146010862554688486372679122653120242428428547871635111826895184174943070878376056109489215085083885698621120997748919137484306319413519387784324722557045924413232207623927661806683144064826868297021665535798439926375843030643863381123463743793617143374416791576758991052154143581130322029743333593993149490680774332628881844257912239604110057411717886121362332642593090294240213269797872486373735906681491172575240692604810998377766435924356248726944920247977922234258161877290610257414058827448896720607726603308190773431273954894371252109792810589106328520199850822554140349251159425554246331370723766305435932732535384679805551301430333628233525108388778741787937481118226652132766551370427068172143280238046991459041524212212765622022790170599932798053971833868716881576016908355687886750939614571270028374422773477356338599713128057059131473111047217876018744730236270880403892388159805655763130845115402571300031320597150237991669429640148021611205474525934187868588446783958206101861632535920063799153733227595284015444858597402053375620755728019449948449507021874275754288501697208877530452268340776615730207551884073821007697429457057632932044869795630730746503007371260302560449102155459087350506733537156081652928491156741552668010245615337368425344694239345443595125969174961815508661070776832777466806600422481579597439740680255619590904584336366459264886792822631130982624456298383398323401969919279010251777181921801616384058807886724194714392454638676804568279641218284766658910014383180434719275687794655463582967668451318282159944590189383899968456352972174674447429284549575731021200649926522669907850548174727369864275082034000053523746031660005548816540119907683104111412401909507542999924029459677524786233864594242984661057351048652490041768811793829233367768411406843378348916948347038944072333968427016948082191280993812488672087086954741412968224253904028349306738221234177791699500618769766548092541283204524248076271648587413279267866102746463330041546866912300823309157410693356977562850435341189233889412541220512674765069016163698786812319005426947873529339463071056866221683570854630794654193435864780909602628908048803345503164297126702361678943091846653722185820609431693714612020349801133128962445573475818186991594709448832289962792341616981516601553122349613601799250464107321830479320827216833028426054225668822239048438162059249105286476383588104793082568060993291994967223399360650641442566314543343998283016196090076446627363178315063046347029017605023818340700075365220506460258464832973455822141015161048744811535730227860072717708592986191386644752879001120238621646715614669663914733554106755517844866161062754537635483513899721197687539020652095331780363634261952686318579497795314631164850469224702973714104849444882403297071559374168422247736899647626215922488641236715489215534356828546945930881231872277237385168008811920151643462885407262959785901199619402871623346171179720294472150980136717550941758156474972847146270472407011462048734206542113768611504714114487172105384575041019851062082512352800485229837647326114751577376695319012053545203248695652920075827350649986793956521415800516192923516081407774050205057680198254984344653906095130305875942769883160185932381929633464340378809463755420871581107370105629832969877418455325295019498954451796711043469415318683366652680048915696442161718826351857323228356392851280341376571228833643950891565245878197310010095415875450159371571779162620802550664223336715758994128456979346631208081621385436716622722045223770553803271737185728326387057999942310541996624819877388505768054315782687526343937139148534805193675055748071057067126452157361967408762650455149958635473197964205200311641783057701878384574885117109462851692804051037374504810752660956140068823877006617081807148384005596782188265140879698603018806817008184135495036639080031307375835505044646882093177762008528800138005716193237206117012201408559766213634533419260947467039024506683646638786458913615597706837403809189736382827749925132142914113006200268527810545812659924135122221845495515209894981536557541745248408667282106385282417468012929171344620757749688239211241049353572549676622520966581398291584025432808946844514553956256196850486367786147766331228405274917841737691081164770108331409985749334762985267613271027385811228968301953064429286636267502488913959453299880834208642234864189487216637434948569515740662905043868672916349075267097133087907433033691439853557609391587249489155552613015624682533230788385061684761096692576405022207291364856530115157636680393270193636727780619379262025934943099578805217149626098077838080695102252200380181857603900539036860135940507593354028812736080175063065449777965575196173490968917556939844237421389704248063610013748828360487405824115375534118627465459604047584727939584748995744394874644884120413133617712329660313256031770772885885105769072008577178167247735358823145865832716306011524202532478449871915077149715092375615006711148437704808578226448343156516066426611300218474267998622228937998690144432193980383321721475484046102739751622593947081443279506196476326141704480362768997260193331452353708612410441499658837065016736421858362302726937787980571759429908089141799893307316756762358023779923921697162071138397239163856326099109895172318437384797649592343921191865944555139555973913996698435229157697765504175728350933495026020741280284152504617315618442606807157278210469352547198443705585321856776813967492008960783002618359071154001626344732675627757429513541262129666805724752527953931080874964654511895250122613669519931507385649307825628277663482354644194996264178077275075864839509228093332240650369288616287979766679099702849809700068145086662649345261975124202216514442725739018314387928947819742567408420169158737157690626592166280865877959273467939172612761123265773569517391969877826811170724345136645889822215063711536889868115328364748490113630573757846918415010219430586180265789529242696863631050974364808766776552590277341739806949101559497492160395501536161250243767878720280251607152870902748947411995790848142924175343685003956038991812903538856986047064506676870728787837877657868715806238840539785102081304828585514241700946344296151667253433605166589070812573733702092270550441372608926291364822510263835695110790544953555700125004138584337062597375246809124934968253788508140172825072037867257425695177637300372432028483735769268573686756117617205434655870312749697291994455706131032452239119579058983796832716937242594083153827352776582939552554443918093528041746038770328386209462203880026326664999590439450936689313951056027599318041716341942970684070926865016759104096387646452869312746100762637501821781693059702451718407607250767891248906686884225018655932571156943055100346516009285677498300596154112314368531802951821284740356543983899402770549491023266186884118490523174341247330314078780121304003236374624954176136991869674433270911320751299607536056372614717173615090681108466272256765976250233995945668120521420072031554046730708697073641924090786977415944635645242315156001952850820400148475308491471771620870593417624175473342216850637893828157143015877255641706627657494200833079390951303813319031614212693836354269038854775520449633047276441443765940965278830437042486612552901586088089154538796114458618917260557069058227027301808588011454762888369551958802361264612133810429519125971646218076386084322350579729234266054463006916950049235870275056180202369261954832489231005757451777920576045035792267678924786753439981241452383836454448262695355739949872119691466690835734707436223991508634151687472160393065828019057710274892162734857445618010395689224844542384433274492214399630285438979988453637898437853002179969363542052286623863786431812632980282935311906198743992994234538733790213081711114684437275205640735744383335902058495453373007259480719189601247471639560294373892638216472591907465123677286155469127684791753711808249820876670483371670553684755056128047314133083021185761230819468109495140383451097871541860046130452632761731770393119034320406747995400919124884605610144835238781999421350482540304270270989338592864296914831985039961187726508325520301171518995199024115307040239529172557343866725477588532478553441863873032452284458508352512013003534221004546435095875918848703080328734689487908069268782865058007012376968268344413581820258461654630421029634939987740659537724285866313813852021482658872160434799216422970896508037456480124067866992344942619120521900051581087702085662678739863392536240279480835162175908673827604947852462387083983593269219755459170447486892540701422983994370372618675242511951938548158364865007158674101224022164972905994103542263446596362776412792675077849368616369729835380676778285243115895651370243182540772795055528511172577303569270330612994945747159842163364754163758388928220943047640286307582103516615759737766454560709090657320505062428160449077850871511533567249018139183530312715185253728321538691478053215210675992939568311544101404868150097693254184347816640249525192942204268057665098686125410644260023340925055470914621337484508155415369542512899226472441867467464666850225350103581595185951945957727139994558274434704330801363817186548603484125350158548947545684961572131070171955759545641511238893947781597033930118279624741272084003065777825998649607685446655534111502410004931749665143933009985301977787970605239523906345778407760321903110593128516021496928393499543539636876412356095507275901547201086334307309210029244987371823979535007648832034581799719662876215469011283091082394557426536708624679027433400191661511324264642929743867606807029837803273773264114360527959929806295834241089822949184829174559076030488901348688238813328743637174186259913849253998631049783473584207899779385925356415915186516422848439579941768660865580590089321797263939963429032065751165108842428709867210545445646266375129329367960604667041825125799588334017781387132163693685405261066404420744310794615557249323593440476367611182007093184745899801351804271764575355838951804785258178607022944891859596159795062845492399889082607261476998005346626432317885424371015862223570989413548143427159321489030890026871909975574565839092201321271943633870174957410114348705968479310343462720036714752904265712827744543862056505622907635770613196294577740280442460781111898951645128902291937164412563008994229880928583225121799196233960780477595672633761082037459815342059712435122195833675440866926293065367945215677975598191987673131438881157527977763233301194555856698600041742328232086696800320973505655603181683393753848070391069434987179252891355768938042763039893227546227226961325849585445238081661208924520142311787190115366666339700927272955048176864847173567351927366103421469002025175262233957679796748853272254253611208019643447834349106820186055244274868958157505017076035785221796692682324758893481916427371718913015377360552964279603860720804852485397993119578716137500124441345572524700966136819778472935555697815659129391728330832434918543813054557825634097600250875260678183168664986372633444413304635608511570830245113202253806267369015033266701443848440794219034178850745578652548007648141962930665764729453601170607164196359601261190185040121719396921593700872852187687058089414244972662172150754650004858541139030339724006388748041360789506982327333809359233434229899466064657327212455294630893376500150379201660273244794548143788300560937319177977514101176084675042205955046613727224505710332503176605773219284698737389955711349836778271131529956789331404794689200374691713493063623498480279215506940981095757958336599960911492077439666454619738225752023907583271343626636089427761614819138234199658906788657167445259530248381970093230685888080905798730878003635836081052895472359151554680018304011123974642060638938886855386930543340110963751694881596003495829519281177939020493935570369108898800800787013595833164250547921054700121158925368244520078050086171559264388247142391354632785223061756635593538466530953966475405155375819263771178859532123111641278550425015645374254826968375430686177663608590368042238366090804662444150108918580689881799475094603216841503760819963447256170548677565138298816782727037025832117839475579537110620925170978853832670527057234332657011752243501143599075807536807097668657438265001944584929878048087117363183072571262126738635583272561338231003336165791392205001381048006630372050987149505449592536334674339344756315664703809115440325576894985711456260946764820773982147274118926321881651099493627187522796921613239096868894666178322357510262396772869216522906931576044222240963685567774778045905859674553264650521069987218163237955528038903180361977798391948979973660257969636351039377936501458387563565693975986244131025137677046166881111326703352595792101518226710150643436484228175596132484341082804028950895313344488938655301119913174366427737056571820199112609471144514371624485539616997646497896269245312229680903289573899688308573896228967470619231569749959177934076294909239113686211951801317619379623721268021958041118582519432133703876410890169674247359714429587006676570678859594319035069564882207611199861761578502334921366442935397391735126810070523686054090919840725651116924473061415659138355082798420244390894895574002779146594328899662516744378496796749111824658527605726636982539993542956197315922160256215956882994330870524464260709238037948154471336579182147683370209274122105640418293288757554170529136940144624865199982110852479874336698695781825495700324759479631273503991184848844136675444914732750265985876047530672475858555047139890302394503853495732170204143971882517119561927054575318330478542805565901804386633432565530169111050706639678777983757012334893425253574349577441182288036298345024260115137958054708095818668431726459655595806474335550908132026740164816343477531524894869644874803272149652904884583138802667895453923865311483866575768699397340869299783489536313395576084843118673564148186732212994697252056793337814263472388028500531510972089500274337156372795838413049575422200569167088740855612648985310802821945478609539997650150257364591822163944916798505890274114238541523423031352963080509384577900950819827276516610838622565341438345770190263206007594413986023284701668122185698156153232475581876340547691511075191260800295947542648570805879851681922219988692605261338427594861483812483573126914081030849329632224836621632701042392785197996844367198773062454461968950836973717367241072980826983135528053479733501770858851856478081663354797186068910772924022028130053043002415814265896275892706112313901389289297832137086259215003442644610590285983876012530890314220884574599607919242347232475940018115444607439037374123537535380900257491488127856919027624306086214260508309001386556736209693984332199610710163950315702721269682304159223211165862151001877196048640145954152155513733605307674864874051433363495704013977364366783279807128665352275879218137113299806503121657165782218601894877705829505354907689103272450626307671588842362138564723944115170928194841907323799459920947642772851710917087548650410007058816768105797514333297452138425704938722993095617348913436974142861375611655613243501709852222814867375859708495299618852517365716360021058881162487845597617373797952841900810479741425922792048218450992559833877397489366553313283808612833543135238288993761140610518564050207921654344437054956391976818889465046577661717716756097241750020727958738100427527324859121769802321086279813148508097147117587478743756477312065075610302326288132107097413964456973921130614166452334474758652815749660845744375144080088048031114258178715870992027466151304832846326089069053000282505788083070621086053979547142139168112596997778209026240340326284252328584882112325197598222899990511043610920366862316071378138166822658180972978966250369691620793199187391827677238485065388873776132068549894821439081016020834703284494673239922330311164236840389971876197047332374145301745894313430091660311034253013237616394269441046181515430509263204453515116400319269798725796362631416440860753394832945163036223967051462667915154280209102544912918664137484350091730531581302015320317708027896767289493741742350966137050867884063515412275761867492038121675438827343064440122186875832165907984437323329938695331735162567271472373852271175621470483310972847853536709378069568623900626810913324680371920777573757021794404401802992095269272529739384401601375492303350464173630862638429690625909809480336643678310717230784697578789228175935055278947040407659211574915558514591091466030610647447996207948096871033921193842510229251874101454124432790887994920095213623563273288774451924054648196746335112972055591660454280263961676914735967285926274868896617752889769140723388258300896036099546063126370952229830130186547090665650137157128546452510580652675993147819708798694165361587938826027661367421134275868050357633732833297266264837298998317734452662169567694864962955549784457927683124851452704833824412431599733778430578230988310587564486691210996030465712824504333800984607484315889256602385272629820601890874682867970725845880787708341619023884373906833285244605077292075958432219324500047947041841924381284299976785537563661030958786565806143160795283232930292685286858516331328481252017153791437904572830519289586116182687491816290590128562144340562130530600842587963703575493475649988619171841963470872091135601274089142241935545278138566340814866301237233181336889591824874111493570843197389435341219728874882887523962619369964572921276920093282152206966873720897462137921771908045374659548686359579215079423958809281404756305527856973160971851822091880690834425797528021128916010541788246631431999809466168828988575324774516496303186465986420627661324521098253252998118543319774908721792236756211331270614878865509693376867237349293618340573676540955829995525566677232812948645068585228512744497802748924223114362894256733889001945316122664447333299842294145202801200146351800150966537334369114825251824693051555699638144850166907174288214322484153955093969631867637516794007197107805899798253102104434673373483541135763337990124546513200536103623577319409199689727989046109496135344617816124387020915034501878972599973019185420416775537008103114990154246086664439684670310721840195891987467213491513141659622167949001516560310434090518565990388819596028746469199045486109340163519574596572366542222580673250615968290337581832028944443106246730444473928540271839134390267015031136209519398209313105136240664890752678772589339527170792000157986634294703947593518321052576588418991973176704299329444064481727082816555087249157631384073986575176800884593828484330519356515379511709938865974631862599762959152528156770692341085523823650296851568682039368040392071251074422428687450086625574699257643778387054058690221468734538173460305021083518932193237001484488342388106819560927179392514971451225264970548685508055033158333088705975018256236149704936420252380573778162053991271010114066272758258451544010602390985545814281993677309687943589162635027435764180239504613496127723128816987254311064543224093765245124967333366278869748755928700907414793685659150631505184610101475221549455561496868208198112296592980551150524129016930424745124694061436081797243443386603132881306449210281568748218023123902607141819689034736065525681269195227609561253504850580797641256131872075238482199429954030347823228097553676344899297572960948091380468522028565536074998326430591698537414346607946841542739533726614600260898504085487073803333912590957452555672715213704344913592726242614339230375485565813235314511088686978942003649274397499975372051097711262568074871307887221123668385671454784619003751716867476529077411672585885133077331697244443515285118471706036657544150313329530258550200435290453435504719705445113745320854117952411303662855474369875119584499616302115755104452350077636168675335046489430548055019536283432823758847642187942228874212778465953550002626935287551486363480065782728660692389532062070519960769681542131707052280187021936780185189848159462729108379459950407106338906451357544720637743828891171277278604229290086086236195627797958631521345907351221475147760182611186930917893246767346397577969084893271514321171743148265042158657655873151266746157303696945804113179284131395542342163408244700721345037328627450783296102054024940595676451258799504143898468459175946249510980139608225482971494393874344764376029143760224806991634012054862380766440856166389268017874563581892541368800783240619555784130027434173031061483879357339872872908228241748521190253101658525460111637089651037154220662948686584560001557081868914508843283576114898914268482457834774164510645498315978894748592539433189068135491796607647870574504819309088265211611292824263329811288501093305197486616220491285337191906617782265260226853036674913123741944337244757066605252439260449381898220816553137615683975962164505223023671216709528681192761090727289023573376875126472329771278667540032869548443394086628734111751218025406565296336160958073607490577119980907662671397900376024316112757482195461865547984725970769399222093346745408235807171681747760634675988171598681416690168230650197599717180142487593614701761098648640917238750317572626065268880041899406483505519262443605936751039223419571795367733330681396033693511460759882671298253529612354628937207536984880249924365195240471006860378145311779609611743636008633049452847764908734537316498616126791597372964179437223810488110553190567960291632834115027020417710716482222943588885528083764755120740597723135775175483244587597653906154636429152622384790533806259485763673752000810733435055833732154499139742313573294722310183306347121856347421833898993279264633459087730405132453928111850204657366654854187130198089317549781460299472323774502404508290603629843224923611909818303237123760446060409037941399761700629185466357632019099079703220292942056746483216365210428461235806593655869754543285535568948541529062805362276368485402675113178048320079764543314710422459117641101558238992296704291001915136611055458293591263303400896731303935195748723020392125712290854992762707851845001359956235349572886188413457408857284819533888843955194880779052764474809531823811628856085526345806765573109749558854349892152591552202178285423311307745830588278106806464949748278702646115527344451006259437125271987504751471225205769516175611148858542146682909106246009607108584024861239235864089345543763324349012516899756744116462706289460794558992036569051198213182974365349115206694024176042410912199100896670688721411739364203575855896133935238486032894889471869107491617866097291870388541449302578017366949158032765426355375162828808936794802806612668849550884352226640426058105248569734161248290982982902644826361833690155482985938600580113948686927559562632202187124202967755952305815385273589395674033393568909807821292937071103624257614258455893379804049324474932098784093833072183608778151083653295766721567599310598397993183354473726255068854344683720276928481931067036865909958000589905724850336635576123981955109581897146573894360066130133922097316739009676022247826934040924554456010857998571332595261586962942599380145680307046835269399899163679391444646031827826572823323770767302088188369532322154519306316664203124834835741330112548099662888553863903747024580705504570454539024092880538966225090963059115652386483535675651697071565534139546471408599302224873322444625995793817528112404227525339743442549101875728033370182318614195753848167433862944610403014593603974855999064673366480055879425326420074365353458249736922368415057462620056756828746457471876518709409845099324832173858466658382288376149023593538194090857128690261879145249579071327151547525436432504626226053490404662531796480974024722822492378593817450827897624546035488062284657879793464024539265717920503591486965995371212312148959713757824073284012831108436769463527893690096110489849818139581910456881620416269711107585426778609853711708980515617881891926013486600499899670565969289169919920830712194786366736997801134735942210532839181348101353163231457546687528925803556919088246809424918596535765100918861528864604818595008320975497121491056556826325968864875841493735166760031711102961695326817859544204265417651410068446032781465826005818409903407967500370949697080002962282497598785099413203285144887624029189475268226673311918007440332839109634004618244529932189887948710802737458187237812477755388199214743113678833413638132279432151250288169292502777821108008076110764704490914297575505889206651158364050757053947323876826969960779751714439942516171393163354656072149614964237789964288537213279946659682383017612540233834692652481575041784249892791083800380788745181268544411071638937029932456849311725244806851100983850865166319871341270252832443022221266547180847021339997863766472008993995926659842110031176697578951209562289631160591503369402666610034011981618844829130139842716020455348623101603981025933882160194433057346823339569407550894506987379286444660899322861610847444055884254802440551982822678228462573774670624594405750324712291465658263896362842358968734458843374606936575376356411415184741480082696852558681265808976936181204440425041560539153264640661872798941623961156171956263449571049053384672020185109487536170138375730313910692568769253435958885335953439751113935208626034437306816657259762001205469703653479323398188604863054137821864436004719586372810352884762398522209463562804120435942759461465937716907013497610861296820426611702120423534174712858821882499248404181496728257673479016391451814754929817174130136017633243239890841964211831462976976758961834168675525563852727935506921270284125172672311469590254932921148335155448847980073705599616332699883411418951708249788035663976516340849248430675188293912109912991301462375102920113168846038464989266180447438845135762987328635246842464960309767683502705382808311864824397457823013626837261425275527951677243330289636051567588252431817147991345277790077813090947960562059701440054036475772816924890824944288615136413072995464642730202553032945490923071011511765599351145250253227940202901412056101778095425038487121499902259149317540273295956375932833600528520183350046647338726019195392977457478449815858610401593090229919243843272227499682174862302596150424770856264923301539541686721358424041689818961934011955138008999503527983772608179075168213388355802033585047159376902701423133832597348992066135114561422455750346356428218743899016418126939312942368340945050502334378888933969726112941580935791248610672989782388535496980382902206814601513301754321285157489780207394612665810501957406892552946673411635394128002937384139405070240647889002851125772582282227446783373674809927561398845965376888153795694885137030002401562669354862650746790675499125088369713564375127749656782639675737795159184689853346807040117966810252507069186250247619640946891564559195517988896406550186752067917148653467550840351664308799981043330678351976895860718575961382820384292027809299107309436475369690446016337010941521964546899907354416659428044829153442283377574049844557623350804300411141449955607242863949036933810771542973084209419187706071360297791787552954658798735021502931532525410457015367249933323433177827309957513140459716915988346319880309767931434824031150309367420129296551384128970603794058356300472896051644408204813110949466065349245851851672605032602792355820982440774085588959901715349166357284736857997077252058865052597617660903073310140845291394791993041892403851227577382209136464307903356465342729914802097926765442415678230350344939591520462338009144562045099375422961795187747982997672314284812789412335707291063461937014535754223591833784712860952947914900599852611968123460439129399155014790073500130416875741945748185104604953347449424022378130885370295817412371801475220534818314757417276482978544988485820789839657844138720450695714232734968108819310411332012758296525565743454903430521478878418131764778190076660237793703751243075409017518092861879415910608215826977803686984674057679313436717939013294155917933733543438400374717298909032569373122003396296210423245532815655663682646456313449477369288229606528380265742715833438313770044907315503192768639447340735506638812007527634918151212909723769319876036981849284414649347025085159655515053302075942261626935625583259036624028667051807799934170546924675403739849605594585916433961741168760090453967430083474285653736919221449689035005123246473146024009578411503592025420575092850586923834885130375018570105277508299191150766682126005634620741255541355250199344975992500164229444724579118554727917519369157466847367664787019446141417659433084950022123354250900649882338008598139761413387650342000739063258317912825926129118800197010250937794569202097691104092417712069554243867249679200176885126210489757708227872585162343739079012869526248644432804651386463293569964544424458684841509946727729496579248115433206702404645053848425128202795213599422235015950251935101291359547873274964728747083674356783730305170781351548665408744000965421767982789212375284858636593361591824699452897264161563431877392667713372864381973844593708814821263994469505734526843970601194484219065844163664958789124912907040059079736613105327888114039429175250473204558818350641274122856755275342420539718745886105820497541476339355706277144433110129419311428174737304638198353468984573090654670513312624342136282083420462082919907291078016135047174917614835888737966882088438868704174310717972086718753872551476898910954811275365269003584763495183281448058759332952359408222558849166634040622455248213467748536988848473061940487780219566596029356895658831326268093592360305111868666410470621807396633253150335519335008221751389470474371332800061675738164214267577371846030472893299192671945852020493772419373171512112534449889155425384881458265749906664995302128091704940516021452517437604344527405743200850975703250049774526563849587200458086251651666929547243130938856905930609974039637731628317256408229133497895540593372621003703041651170734549608282275072268775082377583370564335832385249517554042738450121013413114689885357975069486787292790622407208651545671188906607504265854065209499622271296071078804756537283627590143769139332041392726359515829474855985124038661196795286280979764971469221359130070982909635653862915361122863704742244533407851987494524650426374870047346048903635544746957323113413957345703055750533558802130837379189878971695409711186326306265024308504280811080928381863868710069417566019349200669081810308089968343445451663938592071218745618996771824497381914837369434234799554024063699045887226447691509038938723850758671407143004752404638939112322075355763982207048646098452494681615083672591176795539831977923374489847918726566130248007881886433676132203551972773016502539133671056841449836679438710396562478265643473942973475441601731910891005794601869706692865027650006979750481251249247918195846499859610581334821078308347022847059360231904778391305712189745422107942866826145000442098646559565151994484876697541422683103687678109795363081902252940471403049770846468563360009032894006985518288364650939967580478982304030136763725524512054728027355401764476006600462492874808565165978070852068690586850472899864397766733250123950602749704021915915710531969611057136013125318772846501028978963345849745395232782209657735829836811385014034064290059886170498986195807516914252037947180543088362438008301457484720354206020228292768359454175816658642486412658040897110811030482796400347809248039447590327504599590901875425884641479567475344424228956083348977753467492270133612893005397220869091603518105551189701339383703751512573338751589406119783037210826329020108264281722149763963809254275894238253980456445916141895043288061393427429069276916940037090165298355049942583267610471513493593481597513467309957986800842872396294755195212503984751858508297566589765124324104071136733934276594604693804421656994507881349754024883505733117759780990624269441708511944698970382495900936768093856030770324899748816513990795900261520721643649464254400574915599389979320307675877916690170094360425684698860259359644781147967400156074511597610425035137680098866006782658308219431590272688473297482957202009010045977055436677963576389491886489209309232750365153825833648631754006680590466966098447195403334934238537982061120115941479126261786785801608491080531277424513613237391430033466421490064203313338994118958428823710310503759105825333834528997891385483500611662499433610495865570518296699601256919652156237753907062668684239225867789461308125137646445633864246585959619847375997192876276152322671521586059542175773863860798785562488222563680815147277912020348046079816328170381956627191643281182663921326570227248190553605022018325823125308059194471563749516642673292226450058562394622745195684336957155433741334527251464188708110378872749933826103607057754664363148799133244118410411963537735949369371105091326405902022006000465927307205041182181412795119694340328878285494838401745669500496719444866863156196795856462584075461142218211726533915453895848719743444161656056039772855258925867097403140877465686638777923556335482223845465497660156359998393684255346209523012526053120014154528266443447035683618443356499339495000973269824293915982099616410317203165200703558648442589986745228944956185817154849244145742491650074408831359568367743487890496667482278275649448203281404965510033870650274074019019226586633325431592008106504250846904378839034632830631431950413080051696205607754457840633944457557323574714077184039308957710245763674962479656212885515505030573074203492200254933878961789141239633969342830130838801003025737789648119215671159230364808097680828880521672477052691758849291187129022981652961607540017984846924693283900104618773266659945717154938454381727499723850533317985607257052220569654086731466055619009903090379771774568184656181869146929703995626465993710787105787955824568758509310678378208770992044455315889509510203602353321630527608608906047576753816235537379606962488810743793863834111350647788819063844091680245723780767559370783066185872976296361488393868710522896831421589431218245752934841463434335116915846811435619801483797727016711675627474617852114115791658975372108355325375391296284020529739762692165203972700607146102077668386345693849119243070665567890219286456451607453838879227243757346455465538512385620227553584583350502492382686801555036975856287912939257863960750861104030433143112190875082588364147011918314397753918684556150187856198417657670007645275801213323381495442045208179324675403921178533218382774697871042377740063876532534083154511161573226972027396175306570018129787769512464770132284678160025586431572635323100870618720416201149796798336519667965411257270716590365740432861058897371118001198833893736451920863145381095161807327811900935348657122822144720304546600295890496368909786394045765534376006673815110460418218747948701055228792525153576948223613833522109819373547192369893099402898732161096949614329908797864618962024305571063567136337835092235190608244568497352551166791825366066711208876060206090115180449359101325026033323291618950300372871069416895048041907556359301599001019179300940625669818910691645598738778190114499974147050159835071181322955674457202193816411699878624728905910154687639954289996127264747042307111636501147238231248141843559435075804673828404277144811551660287120631916668182172690663439912098736736854917810841950264937020213311711223734231568983431591459972068390803337006851623735734666412284809285656429260473188769979030005042747375171350073935749813163782743191581002267090917886832108397876379515653030430682613828297434082183230649206267038236661117907586835757217075945373123743624991928375940354665433112533391951632058840822710151280107065573122937298093929302747762127352442092197287525484468456403384353827764747062882919950002693234886020764991760719456635513592507644360259182199058286230654255258499238038683983180866218317259308836656380873278957638554006231979116769386937090285000017064994558704618013745628918257951478120163486498864850273615234677332146391144938415796439456085879389979547484476246907957200656973379141450299338637747255365320328406186270553913214663240201119518297978821597938643066788922675605238144768459650064153850220510111462403719010625043893956898733504332742399901765579536998563581214929987669929652017227082494014214308988946380944494276868800320531577229218185159138484209317618974739588667715608016501234580243533660662132454034067237234195867386217637642006740058738476885603601081136082475140219273284166943412309898872338659936414175588703030008246113315623328527492334762809110581270254246361842027942305400860821675812958917814217825078465734738636700146349115865782223852071804612609105826798726124154041952072555598462597430200666068509399795330975528997827048265832548159334227592045806839479574270288564031391933262147607774594720262538455476646583963897920672393135647984582880340602130619183820667500485442076876273592717896612557726290450356420163138587784147872428832363616419312514126454099037682017423245138091208232049173094878865311859761956247870114225086448431719364250441892361027337551082071901650502666043138120635831683998037979458822488343596702308261906724685700736496959448696152461549580677178341497117804482255965653082932576513848466251291845638380915580003474023368177657841142807740987457835005519671340984563262781078640589989637455941674449038126647662411560628600826822421535155634540128282137543180316894561602124773702414805782250766655453263383975262750480354887787443873407471672325368276807394574316634914167902776694146247685139161204063604360781574810622357340300648795967670232800033967529669024434435277751262816414405480418215788853192346420546014411471208873937140970156517735097490094445602707330106798060404379784619298535290239153448559444462013619266556312403089981745855847477211038256749576161135338420035900228613476096719444404310555489515742598252175881590424085040844864616640742756798755284327041549703575500884116235106414640080905925048705613481766067415198000382192807963181711046988721870256924142630899732422273442564246952900821741796799476339890885613883736749106081223126180975087950880356223561610973773688038608282391917950006877467331937017586205875255879971274236151362431150438923876391195099716976739038264853245488207967049838874534378266705848889024809152472047677850086180109453770363384726283437628262426259249580640601640096302044324307028163526653288906921176826186455289260819858824145054688990088135773098313356209415298660471941842811589160291951451586060204616207463484500479070167249681496589204711479809680621803275905270813163539219301476667674496004748883385477501513794032010240521157054364574966764102603904539608740020007264133177604441307523612550644713835630895807088577997647275281524380988379238466543438085985966883305923128732192755782608074154545660869371807719211642848368726974117656266858552139716518249914713322579099538106852088286828618082230691357302922473466488399607143096834816004458644200989032222862572605806271319363473418823401780982777485223157741544063309992947428504610938048005086242646056641648844110050340431615669151781555194808434715023815551527147326853416418039143109991337818964710878389623030296447615340667962234616984093995011018140505470928005282671498981123610753355028128744606769786283434795003406489105121644052493421876438358549943015696227487066036899647795506899015735372894939207148550339606100563922682594163270237473440154939897407258811347732081953747460735669618743071963382228048632412176507975937738355625197552920133847128153972369746162989368987954167864574560214654157728968934299951294318903664781386647200551329674844045361133323172707433043082373937381113582192643490545261244444098565743702902279390013737052409525736688895412727814179535980662368510930401714870564917280931252170802644622643950066447227081508011512512620613142298487842558457935129275870380113054961066418097721581370239417201654444593744428905684846936690800402917834242875718417295988235292471858076217492896694538418513479051858798337135056111837935731512033431584739734108128729424000973970210109548435538227052736087944920231426513271317919160961815486009588484320985088546717956285719268712294265294974692683057495135013666355167013494027379281996559622653965326810729014240050766763367771719292808510874181972476558131469489751646029834987375095215921484793514398881770661350286573761079971574730788981513501107025251635049072060773719320174397440940952372848292054054751365557233624010069547157765579339461673802902568271267268463046156382472053765726406339919478461936679084657448617108182849691645878376879894416425292564652318135993522680344755370032368235903720178948179663269519643827929940122334837526250509141913387360682178723911369274972489052088604407544701635247284609387167120246142533050003474409310972538731033400351440843395845133537613073987100291031228999195938712615662317227954046608366019324541170490192829060891926099350052974223596251829144256431195009152980259349985767469913108013822540332906395256486511831418655078085004523014838909446681749051620554070379067513334342586932388178746663784064691255520979884436551991981576880368955021367055931461009693966814495945602732615572824292085560234862984102504431066174175367503198511086744731499430663869220091901433855578914682908691932946986361476954472420377349581659753537107958932544484673069278989375240702740879702618353963876801714204604701652996687322544657982497926509478691367352810060323346547865657654117118948681791171929447909103235411481535756162182670910862663576938687594905354487115301690423256835040284255183165199663514554551000278728726433553272761026180114962262036694978757385797060841186930988013325461672493182571080122789838769871425175036528344701245569300369821978988072081628279561510266269809015592504981877207589881027008733761978760351569762198601001191866689917131918759540330665203758510312695467285104637801544305578509738839847037728872914552077364110807900688394723932098050234575522208366661585184344291924714589722385148586715691329672889093078237039847762033598905960374343391486770460796658123627955695601122892571454388852946728376238170529363905493167990122546681774409548864611107484320994807454110928556904060041826486378945978589425870969580265724476017432535453391944001329869724153683544544183730803147852129846491255663479688634523089419316621640054137859173718520339047517338120118536025785581218897709531567379038772204104680092118216942184198674543934858715702931023675358417410097690086447756772773769994897257067341431293704165161569967479374457853876221373327735744046213949557966357364381421044023949733644717189605624211348475499568941564880271463203060825740628613384340755824158594489914737718398013558259152229504400585874240898236373328724744180920926438722037371261711501824798301457642500595752310761986748638934189159390667206163983339605842942458951699656106463040936028030044954438644621432274547760859470065275867573665859741280532023989499387857823626747023958335445805026415097810599416697089057052958460238187706383526368910526762335410739481774707466741435992896451530813693444762181943608364049333701813762777643676252602201374216711086508443384234733724815255766119364116993005678738600792019197916666549623631573625674363330358007288008042590204755788732200902925086072121483712187764847415784379746926306265658968763737913022931519049534686580234917500616770186769259211646882562158936497837269846988019621796526242662231578874884529886395399989915520882363734350261490718457133657181620917134188855032506402613692208852419796646391738694703639026825657421066748417434146242686975086013773596561130308421794606987529402438753557210220050536303893406412938781627189760290266491987455161794745504649108572971403122702123707292659410248418245082729592213467099509580015925703098423631782625713926330570352214283063409116890890099986361935630434972446834409193089013540333756679944297507971707095185997642354670952151880137149474240554895869956772561831763860383565536368343075120681733001532987185522560155151574363574344119968342070133545291915014331076469809754752194964378278224235967565403084251497755345654717911219722493985483095201275293672556226531912739629572750625882165196997945427007853394478049936899287086749263935214467963111504848983128233286129711044961686520945364938208755848421147914662126031720707046231323972407373918162828418957034998775144507706609785579604087974325061130644633931952637565492077116361981190776969918347130837925955616562529871086827083748007673313478682768257974692694228739863658704219123997443049112139771849189242203469560140392455749552906334945626080399168525678535319052481658735509080449835023471178237022524655834548577519809721371141083533707302101322570742595281959477323646581797234304431752197097053513483205385712586932766155177088314123431317242202485307446783479328397712234276860943446681196902724245082988081344400914343105256382493253290458414919096169394676211751458107961325328469945220100137013238703821304486251879228463689419269388781695841148757347931675248852461160836802016397523697188694455180233721786749149604739929441670647375036190995943147924304046971675766105642459243825688036893707374292542822343560838864386524022262429810992661257378248519448602573055425053707316295772154754041227119973264309542727472741011369342734645919354371245722721912612757176177293036058495519124569674536413260438124975790836612354768233343166559863348233334020177146497670440592704814292476967549808023312859670413839899292768965540161377473512100234935292441717686004794676990131744404333136087858796153783424827527220859347591412725742192304378153947975332707000931159434966958900286119297840320115039397560576444844699016270085627053736216416418395276943056322733068459241946635643878804463511863070934722951791817202090072758934467072451615794569406805552654306004827499864076755858349678557516028031050750018775589011943005422219066766175517333934928950104385352188789931107080097035845266621245528015637877410804251611009731727096576075749480175529453508476827695196997309202163350204045619906269215382843645797658698579135819929987784313335003628152007856613808276681562051409228153903115573602373753666388604860112953013205226377897064485214709297348793101960113268166387814179646300759781883082208287832487339123327685180705136373730649342922711458127340423741212088210213980851175547441690038547865966650673293102260181509591763268671875022807526500736151642374716041296202055942506551543205185452483290295354118953862960897898239854933271320697554253129201800387157426708378898020399103377995286332060076665649103685968024111473183071193134065398818394414831213607394052124855934308567587074901184181130338721362361330475048554380683197282376602666538606831406316322060955283414123557154461559254337549358985872686481715007249629911502404987009132354511454239546440413155574956417237936364893052132864332459290635440647874238800920470099054430595277040097773260636957673114435754448915336635290412282370485223357596289628766006538120756359798145865621416930333731639596625766479387429564271713313469937223980021837328023644845770338994085971778012175867592360768924838973442246659027958993471720277776426602144688238179608873855763571873025861936334689465004620241411187736816491970947112184110508512706906661933436649113685604435869241692611770693203487319384037753063716829127364409523564581097804827643174567801062719393853661975921301858012159835379967867405482820068976194259043149058457537552563911103545389975609613917575475248557342490385217862459447133755264589204798451861739288123477321298250998106798193329336614320412492344875823393991354949568016313945389261701341442848901278861265503299891730659992055538685831806922151780878625042605822911248892444122059340016856292926695813926494357403224096625700149017353431428212587363015335345863993210063792781146639978994084159168886935291959369671070307889484316804964717462005748725737944467171732361151280849052904364547104619071425767486378050952544915785897160195916683068208118469402889689608929101581766536920982218916176677873841246669336458833386562228065032490387047164333000879078208127131439657957166242491017447197514684596749191622929789868783317714319431088828082408105531906626009408441834149158780285606527041208525777839123806167240202997664793675565812849205909140102175856483189477456538135648402301642648487987940025659832660661609635442968498221075617759485848685636902806153322813515678795567394325281470687459812107436573782427882684510919205954580488217108626518944804014713332071359834090003127745836928903050336922623688651130121270561382629569308346770254424304690591762127666855857534316163392362081995093246746438617335440743880030365596655779752520924503156734093587757833157717309366660212846903706673244086932070070692434264556337097903578063145990262258778915818736190601556696446907923596920430234994113909739781174726075199716903053831565053177590482643116671955039317311724906134786858915151150692728317910497652864461300823904955049785072649326796487061834002505593757506351039921349728981386842835248973525257904416083963708667322267764689377849854508384515412015098932110932750815509486555527212531918014195412840872055029497603682041577573218585839867976655622640036816659139765576401626768996976823671448132591916363682835441715083917677841989371339738097257529227230124796953364167593067414713760459454389264770134228763003931203202072089430044896483653056750271905730570071157387570369221784606832600837268827434526237612045130853384929278198650290025572521750361459877564482711535241388666298349007512895347256587635404042578246223756284247691243488036446128856181300699363977638376004535354574082319184781819624094596005532149386357688187623514980614153927985569636284363714738013687228987070843175925656699456401657864467024514042719498753389069518179972870212854569524772828171711746758809855397918071088015913025823128173923750396279367483104142181771027529789827393107710105247319868204280989718889138568137356175483077410818465056738939356298127394178806934452634876361841223332471767725396797676378727916550734711659906971003489910560358825476576650959548175324320050076461608600592569270775765579272064527581040886993085710996403722838614222844199932819882509616418597198649655985741042846611009602202239567934038151343123719703558855435255740785568636870536667742307317370311533663765172065468733666424207973797201140572418911356530856063186167552599277483566262835525468963721242859754620735139158598242135366995361058616201483673823367894386776750920215145751582347574792894868952487277288670523919114617442492001847012210834300102351180339872052578245475268037539328715918643570256135540915781029810833112757482824845178491750664248370744949501776099138663404706490876694138080427940856119334059878129114318705603358786237048720234581326767716140897360201973689882478998995923645809127711324032030356866544189424657853019623636126640402147566673337612962057501947828616891911473881815547186503346718809300294611768033198122705324047829492478457911725178428744082657765562474238503126638297292360626149295292497054997819545989931578824248415320202007492161108930576132759210102604567863812737496342162340538265515491617352448638293125041079361059988891607163262267961474523544677180906784641098929946106918745722082408879004789333907252539420560835575173185207373675488207968075549333080108791399088139636633003070806020439599769517441275365564812884011300431543063674168087950421788572983428323539199686002041022111563276893481051137691613609034878613010018039277223131417497418480720393552275304388923872540322059634580515808183683674386404107965939451529337816806963398413281893478966812732150600655317826023133241825611542968535091731209966925925565898077459209694043716481280169561435649685123804013352460024853448340692637081492910219991482192567618691972740576378680126374735892372955129444270443864634805748748482025591589158144398734884149472808727751037158307914534912762304410967014095836738000123789523046174167574705230311030840420015560406201939870437344177120321672233630482790063734271232270758166309969634024269372332105185014271705131064339852587473688024774861371112278778422833401213727221820430533341366955955711561143686708236708395366371831556637885470306911793566777029019200386932169461063754076850888498508519762366706613607253850409424574417750545556576929728126497655136478417902653243599348029897942102795310800050776002280261446904854144969234550986437232761066131511545435184981944997421179975068270454421412254406635993553696699805461066126544181009229261610864882790007237933526369055582664949448228002350426730537998589648034127985603418719117986404804919719783302850719375216480143814238553552821333382901531329504122048852540274970961412251440109193277884635136243396969742346629484309824177666369942575062426361894337400703523856272429157518532640377326359388357068279393693030090557855250934262438631755372246604204020332412033118059228517972233966704622264054426034745459404589220914116548651351355173661262764695177196954964225281929589235075475416649914457989255714856390933747154740552193373869572355516203021097950565382892017260466888949675314633547272394171942730067651320903464576988527953734642364134134121768232159046819847909564044384282490133757082188784288659958241301272364728405073977918184313146905649981696973856867580685132614655843281780983259573104047828479450518961033861550327328220163208332934565064695629169087916678018305079241342756051064996193386178406163697764672599040513199811086777010138644056161240674946068105747086073152002747788036910141032731105618830564046775229527952942071941166914506492798945895023191569482011182444405354016614895775962399686488147309440648182933351874030942161387869365544804721148884077118155635057621820815539023302810350413105543799546859375907754162240711049924271749784736544204981249338233596766974208924110425948472385921583605569744554293304889789893666702607568878171030663884120234004474222255497783406088870389861434639647839792982259347487341613517251407260876948961241972346675801658946242910402458555452566687056368280787729856180786964972930812281666754410719082098152744879661849018585093639932433597297961986462202762094424795958591028882840831360224899984743594003378081434431788955105139437599436381438031567755294623640959314417449494301995148773240715990073862877202705469757943534384662903735461227447212362493332132055848818335416369988870789398299356297757094733958809148703663231405813791135493764307593702669718292243571533093907692835427335743290404470239661646097744941858230651714174946010391319736446130892349838645784974586738859344832747895909529524871130500709628097210644885878752825111255433569473065122590920989851415393415982323485085041542876850053647210219489270057895865916317516970039770283046111753632013142327248510559328245375638242294372788519883506060442160123035515376574195460629444525312320185947401567885142572443658312119394064199030627048106841637951510064922978275266385218326891112382321720496169317507168702893839412633047324886667428756280858046108499424078610217232348431029067161490187775631243716912714916602359699897018578058062369099352632739498780395438924854615089419447709144020060043837598674559603847929403847840800366166726218935573318412764756677469814172669263464141828388295258055705401827881635767364757719642762153621487239726746935369468873009051639273653974388904609202929749319730815841929025419231496304240253449221877443908648346808450558649469549216469246911091761680699967953221693738417863335593378560332996009275384624064839774413552727468730778138242768045549760905498574730086831434665528451840998186919144383519048481444635725361978466769637628772461898102622736285628471073188599718814434328871582415312168791129081983003500503609728288846631561245533471315268160859140455293733618816936877260913397203589010564503966616472682662815407231873345196437912880569519885676290600250408434486378652804036903789857372496437165822745206839323058160984362624625979994981462481475922823778147691287480767766386251359355204390318996262712568677819747694074536310303872405850192963062485287342681724633023300746864039346889391956573729213079517707109479301408878206394402467544238827034309078197561874184947494213777567615667646658073889015594072521256985324129074401160257380539154153062082662865612091682345710407511615562145600465878769997151117558565369072091510015546701583110845267163996335839787592576378938376343562715193321040472376695706876490046524362780512080209784102966140848082342575327923105185122304798572353440930033202671284923883421279015062300360424266952378887943699444920395008545635724357684314944898456406739499700579720324970096476054201249225755775183472178346155156788845614206524507182727706740805124263223635447770605521154169744187483679162498512200403452152305313430178865339168475041706294141635263926564297062730334285903958662955059401001826213762249401598876252252480064172266015380110048513100293388325008848345651955174054374965466156545029823568978608680982827446066982568907757883854666695828706973146703788428608131814308196944316015380819683799880511305391948820002615091733926677418232422413198322340113721930064362678465063623535434545704193540526481715263624413779667789894247603625561178100699343292415194610007732033738561942975276074168922174528044363142274219256732203578752036604590204745666097960756201601408839086554054328261446295275034892124248396693213289962233138218665549601557991125253984113455045315370035857904055287671254919078028293644580511237514915986633087871371167769129932086117029207225857425266676886361881353906051264656933052895680347706012722118500438247355663791865991286019791586896768467447980584308107701730669688518673005746119656735890117412966595437756461095791905015183029840261647308069992851424290724397146596088164837755779634496684816920381514989728414684025451562067540945690459144321924062576373455766123220742002489041778606121017182944048829065682531408288381127256785550284283829331373992534249899906976561808325291744418841071934196134600768796924258346296858618641113080613259951058110899527942203941481550594009280975934359027829956917312776023508923892185926861165454245266099058714177661192174663514138167486073123549879869088763324699831424101210606306870996307793785458065187999889230891860645192485958670382685261005971111776413629826671397014210890502171718493963727054444611644810568909162275046892504229372372731180874320978337318886273279548942377383107983867063952840651065755083740674207732373389379091667887566975609405374357517809264308869744624128199047122082485748359828213733104169207456039028033204360786610435344770135610079362190715334260191529223028248117071140604088745561354228778405702691131065979681190441419487583131834311654875178849323343785674202605757463250730372755720287092412616632654166992517672139352251999700618603496796733034504921133525798509672569010852622739470973714481841837463034281145362438090064249606638541599958798155210088248633786603956145722756469320133293190954050537462783771243701233487227357403675473981606012329058529193849033122312279368801669946444671919796186485689893165673610573021544631580712605209154989465552694634049272314806227704959350719562875412934883671807641436753936016918636562142670396272622106287065055898732624309640133733911366863181843870714381401391551211159303350158149888039454716350844661229379750838703916266485359213936583727554515145532699812427597018435791757806086957811640404353687666812972203634368952781553665621741929636443483610599747793626138689541207611324148211647171101837586454135511090194133601577486986083150437320395078666168946876237390134946555058620562433697319856237066348105947454602944896282444723420240998415269148084091535500844828806504008395993437113555207663998065114926647648260746143096848233851484672736057395285266894498237359452945415515817718933314796785109708134120568128323905318955586108428615035016007746558259388777437871703109200321894502468575475196544679118304688428559601798365731204980551708000205668907106314902058098776340175582036513071805885781358346856667861225655805559140401599560844874111959953631067790182337445284600787181587046832427150220644093522500990671101302157720492119611179043840255793434950773036870511792498198473874516446716411085927137045533922626037515642444813114972635869390252055385620033765673997220526675814990414888933849081498264912953761376851075573376581531339147694564079741334549746957048830045916189755439373886243803898225983716397401044952788547841486285850420921018159019427647120646821951922795042541875157468291867510235761888539916154904574580797125873699065668874352737129150623876986955145825788384451136809537213568932266729030120874159966653215906211963230293538921014359113035314993564617367223957494039655856698827616665450690645819020012151173690448541247953183193654029899393632496581571767174698982580596404768420929351461086998097919067273272166568680639518547973948791485492076305323138103202382284388466467572727977267215902247538242171257796757342957281904724566315136372427925752330301187697249034225848711091964209829632467539732451224158985568221649870192999375011238663625580000811692068133436701725435404312468473921189763618892211625268943647010106062039584024196978416817338558708978331486231282896197042307793146111726018509905539547218333740630589046859336738437018907151342885553875902059580290836799641167597484553795649574791675799371892056463044134334589906780761374534341517058885042543072453902704671139312840393840125501241439742999680174418903028329867819177111523938790907600936809007350997662256652897920458450278550796445782782247992111332512572292785159292943680765185047860403165583095162027165668377025403707829050520146354055588032917496672803910177332947316677798181784296752494982286344056243965697570886896698061411032531382136121203124615981042200250385546448016648130793587005986678236480565784152238468280258074362671400340610224911410139546992903285673045446908369947907134716666778746622687671002101755173241825514121249250132882377629154259415880029666461784384846109111707694146175511318610187921843991784242716360317568404444844721553478434972526241439318987077588905368541862474680599193454403773779318629274675043180216803608986660353708350751507673384434794796755088308173483199997427165579409117944277683568492462399869727211212983425840325845328151971624812552022466111328996415914963934163016126919830743964288545181607591497127175462926916746660554266177555343294104184645632293494967260129109744066683522672069491916573625571064378082371260205901252509634284552619138752702516169202993522300256073902974663272032443164143911809677132555534251998222207324672353026945368020561400022594609458337129776021112845084532966170470292075744648940147291808511082235516987802101918256238027243726549438415358979697558004954144454862910629448798009397224580481707960683198959902310088947656129199586602238367759896315751208803738578490408663247146776993414359750137188976632560771059570516952151103593170968225978942260997190481468127004650861227850068377782526545153562323129347813632229533515509903899447154026735848264706433388786336320347792832334148616410705261775574468810695477743819078437235660230960495807262535691015075464786930872222799788324541752104879541016696267831324669146209450312745984890834879923815367987810465252501676127337962220253317851361546764850164276213960482431439429883574993102403559174594513901344250851450414259267997525243578874121538753078611659728538168727768754586398267783717192011530437768986147132990246456033940138442574147862733502239345875143758475914518882083881019678692172299547950875475101220158283310747977741626833977160728116475875506988709831634066164806651521798180560710552357804629670371784985298706504114888837095919977847480006408564412672443923080253003714437246405329067232131588430674218398533137130378118283322154682912099563345811073489699072514732682831436414642138050777238635467460366384289003485915090094324698148113234079465612642461994408552231989268864673948804163010557747098432118214287344029778962359820781728489821128767702264650285239803944277636458482806058373170509367835651084081486191881198598874240447186716470985822725937968519606822228405978601037182327694006392001251119033777042822593804597804686223909261177504433193587850879409934051486621425919995583857917531072952952894179564001096761291983361856020780913130377428403890312495738140675552619758629332063913659705072756121007012919551430764897293837030386183219274251851677857469942359181081894256502325367041702940200371261136118170555194859060026052151395192706346807882814479409815325277994751600349134612642684648740948689344454964862557635973967744553966917107035382935048638954241317277724579277074212057043569791962221284092706763807966569702079356689366628628795742883864041128036090803050491106359946217347520338995888380233643108970068668105017417104858164017743305148913588334282238199161845383796674668124741178379897306925404922430987967150849279316370211721196110399439289584726023974366408627169341614356938794659927546323364059874156941171221292715052948877175892103452939323902482498890588362950752710974007745458772408754792969544723214743068500171082117662751319526413966679471545850720059429366047087686632536701823218104334968654893554724551699022621862953186161936868358731254668447858441482383421172003577036121141650766428390327966418088164671085447196657197703003663163157849609424150096238845949611699289011036922094822520790600880614832114506291683891814877471848854603871742286030443421352954766696599535857887219552902128288558929698776284688203684997608638966673243022092025778578948708008338074180794632316243885903420692691773227246415047486071274548680534259380828139859988524950707208582163411951856448527394397722568029649452657351998691784126707513879806896778028114871696955351703024389364281543371522234832282911470282814671712170192771574870300783082619771611301228470668452550231154102052922956852372133425676699284224049674425960321518820038434447263324048854206255776985589295426454490321143774580719973194202419135111394567423310251209459208293646821673510900991129776753860469365385746640734402375268741863362000951106785452915999941792962680402095996131369566736837085564286087156275730914392232673838273505954890146890716891749886566840932311937728208930443516089011474973157936416614163088719057618113508493931925295529965365920189304155295289890246124696301730062986087521807997072851223389705873047138251959261770650224130103764104980337464819163878745582162303171617858606651403007640634507052798377481996270814208691540482185249257310877664448651054929331235254515805245679676428790301342720121701750875004133541295750379098709353974358668888818958124884717595874742489815175312364967288146535285663626166806288908518019151184828106783128876116201754379712350134407400026810985445160158351402651387260616710762211652343722711660679236197391729017568016309739228191227462763975516356312612046531247121852400342188109933368302851207486497341988269094601556262683467781978202584328010082905010359882374431983353375370170969802588057744353594103318683113760813849333476985785071826282676998432745554890902104556592701378629864431576327596658917203158054687227454495972922713348307308037973227154296599077426727397126906460795830671952137973395418898235685724771710597101956427951692734109407118869922767660835383760669434081232805538902921807285745543226859820622633386087177013893584312042495950459282441774212302292352696640862974847569825297900489014148508491903021989502634390213279389600894757578347130529490476867024190613555351173723652075494223487543537403915243787361111815347535925451023531764238897969979217685891132762185966569059645130950385174006666179933905425820622744778716763413449748176782914756879578947641968046532178164872509764954448175482678965276999683610401428133144251298770894219377722688401145902184123507470663243483825845788299816980141433827426955321941295693393711097688431401162073720166892404380483324191792640289440646209315453719195750887890673483623294813907467691613203755596236765641572005180352681830332046849345386288366437916414467348954338937870542438090924350308990069675672297074539721936963320709710944657139295098373484093104609776956043411904319936881611345809277775546625995903930847326078027580888364564791936048723866281072864579045338891622377932594574368963020421570875694176876281024421286716199926096434147773215725063436780777213609061320072331774038301908588428868289292579786281183584632953606038183912727447420859090480826772462585704719755192488874085262550004087738556814963869572510127577550075509404716504641171043186396854924120119146606066023627296138012351197568963802771465911600843893820699852576017289130066498318478352158511945841655046284146400058021894508070838036390297686179654179442493660695440491387804275276204047352220347093815530949115703845146104133768948691979173409621668880386030030893970979609079700932421297815344596829459059822398455391195489217376863531081871518384375522912488470667222806340016209621219007507833101245267897110245518339364550062750884852975142606028937549991387773154136039489256243885112040497954831845434805019343808333503300692420292607110319382640847456238187948065812199996671158795783258893483749024049907384516035245767259715472307459573946683011375304413925319742585610330161439398029966706604863062386839896153433583167145115751695797817480577060420046969979692860058904515604305275444165379418874500695044755437177677925691429480317607832458270353243152893505017934759845461463561388556804110142131250241190949833792668104365762356760520363174317126744086064314067970921170794963955368811253378280825164685397410516384620649923774294264638150522415429218035262428095019701218233227724127024902163488193597978685637364966685926480374712813108844738267801375553470828662837015760604969875659251349227581271767637328818408270325918955591930627770466639714419826456306690070100533308619007707329239221561483397404565980554575179554557013181149103799464213225915762287760905915260762604013490305546210254907224902890943895607033194297823226709875538442400286008697685742700516070824783519883488572272978637069792112643717153567489621063432185029741404306628721499225000688476156704460104319734904547078265777629406951865561425358918531224524277410715077421555048055081396629674155721534119533921538809930270865826697533658867204058944200269015651351197206436820063206675408670307041969030563849290588839569605576791596313695244159493590338319056805893501271216548953688689881793826262241305892437973575551946211211483914037632083991276826874888151725802155746645099494249961672530361788261338503471333100966677741289769387200254239873196166589463518829147323518269110996116824664738628278822734667741690617781387550580478965866055900974443112814867495195423554566061824839822029247434906591710878999114089470477858643681683166104310286516452068253446796570976395348648287924837143740236042879918311283758089510701081438466364468814280140562654851444246794490107663906071901653323150366822867703167374976039473632718573529607354775303724439056629051909915076724144546035481733403309957785812052562011719030771922068221241612580755019475941972340586677340009455206594806042764023725533188248782195224715425095840216766875577161781666789697761688988705569619391899811284709994015202781687025042160526561564591478704888810147050012195981680462864351733762463057176079493280181807897411880785227149068492589656002907186426716819876583238846716411399631288464394846558982154731646853030801955708443492669071468314064954263910056806185326738550233245103206999103930335585302513104197649164919849583517245773506163990425676912444401938216698525429614017604532676875609254139336727965455687135057062235139838509497780500259344493130219004818491537417863322309677756565501076261036094628523222798768065445018308369779144411424522961511290332133722039790832066937944121428500591487405487737117967401123314039727930201502241266731698654935701788917197052757614240419452111125754912970637355352239498434249270942942456817276495658508459364553128193577623947855737319395056176224134615399711065059723339926774975805798646930092679422335366197483924061381926213518055451100417766741601401131437615885875172804735892974493594785555600769729695511345357627337961054592814199546860129815518257521531665006906754310946163834398463067749162515311727559552871724286552158182943199606879255416973825491816832272844136894810162017179009067915474098793056040066469756028235730990369555252253873987708929314516027712772451243862256662785726904149241605438000744026119030800622091775532297241315194597558750692616579479563846756859721627475958411963831566304690404414996422062687382881500737232286085736044102724284428313847535682616927948466290607278021514104566021087824754047752381821605437568340910659298088606604914523299579095155176265682602911246003706031107492475366705557753466837912740478459546594292219880647436081347115892773668339715398646629024977714750812938831677679994272604235239444642747909287402993087405144678457124641044365631665163157875318415927983332377893711571050802497186783257509306803018996482000969654447282604662919070616731287648649301794946246081357653139345645301896809446272714762725163791965989958494508614183631331097550476610631959729219911304878961207389492224721581761169903195815961073542805545729976988383934328292129965512208610731008924426170215368408034063529877609847722370162042622938642058605816829485106515408144416781137830267590727406211843876320165384854633261871355824593785798206159524045940983188618339598181166815365137364620219170838813256294051375481228663454607843100840910544632474647108329700460426731370107400977334719396442662499343122201188131336090139386952311327841482567076610918932013605447275600376752441579213864257518961604608826163727154406206910701302976228488700269602231265897721155943620826702774210482439423994101127211940271070565043598807026601727418007215325193683848693927140429282159164965035058364101131368166938621111847503595946979078419851715582859387618923645087890198838442352601485689490451663416532210521121210512244523029141198347403041111538843949267896274075418877065807144457639128847270366085799973734838515319725462897169361608253615164934739778087512063456064277831923962599824306622908804190015581712662516963997005953502682378420024110813865051021075209390877338112009288640407109557212862918318999504840082549116595566274691496045163354410468878010806665465436108391196923033261050600774729991923540667601196869793262451850327313187311011301538354605290021328813398118969265946093597249691742369953278725059866616224281831842967383096853329465958597269838610097609454925545971928806315051678763384124963921228726883371813984439155195036091364281342497055945860772476573933657028042405694118823740416531118213785959011728696307105868554971585273948480676160685443448740526387227307763161853930513431776331555854474443859111257735953001924278238819328654611161655670352281042974897577086965657347450704542701443592939351726861850309808536259972092044168189724987041435797851755503112770908756331522552108705117860073001564229219692145356228974407787405442673701375113580944713415401609120029375052547649228151784244385754087343702593887294803090042256366648113803224032776478220564300987371481144393225290464820202401535529897276625658042605298579143976645421348273170776892639879753870186752548839593330536729939660670475866502375067945884647471541166990594365990886457653812454341868595365748828441912634483941720434971991512803972225865644169319766609433435893316262863765330579837694788737551611855591220685046882235678185830480423909639806551346190729576163704865639806157092719708751609696939605794891850750441463525070428068845951290029608805118936764804350321148676117597382491990000360366862983076908002720195106636625359938138609314799097737517359541570177049084816254873617277727333090342421466223964877048501915521304244224943669407696970318951955503005891454206759794854148855458758633488212586842382642737356073496609058810864912334972911825161783281165258266073533947431582537856650954638760926759621653968324086412213694644237352858286212981729642479618371224777004419270149597913225180375838334559274661691851044445144726253201652325155053133780789811681723240915026133464897186463596322814884689724751054821114506906577596625044173208459215861861269596337428128284333375554780624651295265671175289784253137672764077360056255342566674560385739089728845458730080865630218406278977593552130680234278220406735291647612390206584870156626593716116784670915773245068910939256832296745797542317051641707236546151668667463012883922826803703479160442482488671741819051345936621065126876899159662328390047781962626777154660116024710826011886531356424857259995645635043340544280064010366348393727219571419542937093998992243745391190559732850983763869832119944185620583840387309911369361111155177463274794491087255335778014836957046537744351878145782670855158481919807966852981500784408565962063482501945491660160250762635228079016007664724729370019891989933802629408615230267638199779412224118756589257574978402813516957040768361770001364899437114992374471341504755345066553379627412269980451944535511869413816265091702822497571028746034000188107748949170712556155530994883719495812955292011594659155430868068536589692525260524957155217384667414906792610141085985027323659087218387098318052445091468026659223367611370938064470040077368712449364149769009237219727801016967427799645000821721479659909029977548488493947444016210019863013706822827819128508448664963559984477731657666023239412021891782221542955584971865568693688604921153112160862463946857639136602434708577800385438865028453587886879108949670663705363833091056816397711422091321255762541532969198342314809996178137500728182442177945462457754673195468488390281290006681760956144277837119396516084903035979058957790643068749595697303459149010262822761880525340616090391234662625755810938226692590719969562122891796055623424761370836703103807791448270086438220259577843062469327782198823712965700830416297581667022651002150982119600389755741004864251672767517233377361848401598175466757421269755096475457205375427089287219732189866485120339386981083550633247960611273354325335458748331700371072054195506131310605887574030190037434822688231391601483219737200501824621758556391050958546823227046659706798212976478649165369127760163494372527022954838561131431346074587209555653928899454119214202881775184956472435380203089330446564455235253071006142462527062159682600729240062750350637229333159343581057835458198248281649522181416766328313974118191719898375486048008861609200289368975315860258639275993462070001348400904272715030108499062458648799764004553220236233782432052808674954213083664338590495874139149391847548846131173203781190085083815605309814935683983147576579613800720919743322072545412552832883076884039993724165372218422667869826524925541135255789794460066684676576849951877813669210821933595129952100401171077584249279985748686098898589921155942387034458191907553348054124653034634403047549679743335276511053225596160561340691223235216983448618933819733072476490869551148335171304056381315106393636589728010035359637415700810460144132861722590487066952205550924636247079364233554166685789184911530000820548713448228952346056433548976922862828949731102223072971365874396535471159355199834592970479466887888349986027463144176831994340405971021130634660655311117393851642721312724527847250113597672252519488184641854710454605855894567825746373310113912138291077519503208158646826515713467261873599904677423466843408480457034262278208999467005111936930561641458620554956612527014238959986343586256313494893815642501737263321431547680634485004496808206186088803996794339111050507209565315927874033977472429699400073823112779684398259748572754125321838418528226440419200744029929563510906995961573964148925009244365401014813951407333507997640925663057053432466895225291680662722752621018669052302055141800650472730313573946416247946431377095923071176240430121389900817235612990128159035801875021039726365756553052905555554184373365752657619922939442864910637004112741369765975825732878907222145787205199472283079779935805856611490821073364286463744943972794534635359239471823389404664633563504938936977883537384643603234261389741951537408890986137755501088900542436852157332651069034316914926076873229610981511927170730738286164176119285101220887270605956866633451346996504654360741446098341619460693637081850582579008869854714123726264461302312108753923380445428545938049832476685508177436375789334520002681441558945819744071012575081048627171529939662074214926255981268965012681288713187460714454022928618664960182659256674400615293697257588741881294626743573467814291974544139246944279531068374478168538902074692316890016317723556139975430012560664807206572370358040157357361055418286829167799888891775644785678491823471012152741655493014359081022733198404204571708488171518881738755401987713841991036676633420455174768223975772220109764849567205717756992787969930569892931369349677223393450443152519770885832389705936059069917448785792057872888605088610414381029074262396754960290769420696931119296606663783950632619197769965695631469898128617882409063220326938883146801733072363599247065523705284146888572058169640105679257375480794449213438177933373322001115140009095206760068377297502622591241376242513563604156989440864265231007432499658613882214330630314513722932030275237614098785143659461097944305027723196152002754838368210636881461219141280652462708489727283241635462874162771970771671624504707235602352066149542435038113885210774760829742285492500581082251627586422848700338442256530960914876590088206163916489247980834217322616257363834396702994851063075235715855512409039283316494112024006870133831664830893192880846306243808095213058856714996346254299601915258183393140914314513928463349529560337303203265837770891215381409917323568513773610739140476674079709869197605854365638932485111741213705368841507267158937131662451901999455678821740784990502915013730242540919557745261941059396130726308705263623305071026688624238398371070457886842574512317235210010798741786779519529785407755497304827032211973420597967979109638691073991642958858623921520353124986202521366877977879924982966247042387231282489986414913156427072701026764992585151085823379738125110343226942064363479126140917378698029765223173346862145785608517795257632428478304986522734946776703913357549171403325013724469813693768233727859769166201410362126328158031989022254703110058450088153115835737774339884425420726173706001605855567578947349909308177136003177101046395692892251771670528594303708875686441904740066730273131033515339948572687822188675557032034780531854004758149712028346846666338969012753031214690183030585654354570740783455750152954437825749399167558838994846874426748043651190386970051837665187191297900381938028073416609938567015503931195000496302761050254886451989645804315680568358913388943778836948663339419370779566943368876471751969125532200804581568419024849848660330452489913514882263153457385303489444153680338937927717509584736470817838722597458626740755267985728413780256514342882256785502456420136996159404174893117730773983286328687930485578119979395749840131735114647350539555947841198663714496480994587817175309000026327248816710149418122969286293164168373565519553065123693099174867565871028404532343274967271529665395303754248551450438036934160845773404379105974126342148341260188348388105195803861429207078469664959275317120680945604660125948144560333790240728619813555230252638596999473793069930710431218244089658149010330503584451813877206044714234577995195420641688143415155781745978343702287406797688586482254924616492614510113424817834778123053654768573956947015865130590990705064952132498385163304055415142350664026604745385159375877503106376625983627558008954513107817487548984547152583319705608184876647977871901961668253875937351874351691522234577042116334609840561138089346098865776187010384484573528125990709280400735327696881724554329838444853347734021034290138767792383465392833118264862237231298722763991767278669584609295645774742500137799969122566129227877076533242484407309312099319858432934730282732078368717700634775541676795897535603277679970616966025473145425487804182559402315557800157058462761434627466743437158063083147421354728587225399081391848366168117187998540717226611229348787747390382770502959644268012268543895981655059888092218637408034087179747175735624798377482883316575021251882964614323734099559047579668368561502320571612443745927816111124515196720435049632210520292351194023336768405423742737232782331407087125033430779582414593082976255184336262982061992667128367776800321569540355994190132459097724907729917374659440044132183500430202256393895113863352122655204223214156742870244194204421947205266201960759588517557698374811106570728841066600149110204383994467324726868004432184049973357418449210173064539193768939787605238329586046347835597278692464471892779875066216830615033006860543216763751597682286223149538003004013008283416405033599739577732949999460694433409208047945128339422636968381957301260739081019038825330232330271226455764230352107788117486741639453376098528995205131859300271683510134149171806788452089136469145970172492499120408644415587200328462183262535694789389746485129502643369571471672690257041745099820734780456146374252322230155106984155416924700865745889942999187757112443418865249657360366191284161774416719908360601009810021012564947400012172624541198400482846157466056518396719560013559955825524961116680653163455139027671611191118155646405811892520087645543770558172145234462427139044028289154000048041466010800912248688914337116719144989333566324344730709592197133190528727217365953300890499430337452335053819343752049198152662067403406228207150663155115763080124906139162837126810248008924620739042237216970124349465731701291867745065761673578637620232975177775650300407342320397202657700062657489431550799019370379919245525315575112087654307832398382326661082518509995877752101330630323201353832329619111984899505325083794532124354147535903482646398671697214668927623494925626222691317869319079094346108352969561328412740947991432667461456004125420821308314575372465408805406325699278467684527714190285464700945738638520370744129196360344247081644691872456918269203661470586394783003156715641234846762649568739250876967387964749476410095268424770244038123134462468696386680029037370254667626991260125315043405965528455149491318804982976463151901773189151024436129030114490802204574360270985902866255354015175079174859484312684295812150958115733783864342632532483320671922308537233197717628880242082971353125910944634010375279050138984081478019636191335599158486843529255532872219140461266882663488933297520166626130228570853489431256093234558650247227046806914891529982387070124619086612803858306287402042406245982670979145002509724402984200769562065895669774202862035236487877140865541468539494844478774435263672070501526716587306276106964281398824551850541888936903470944276942144088129416856114988993748739898553391834534331439164919536600349974054522368994657435961795724589806580864177836015901216955646086870590176536861240967189675288212647171673164252975060540812384784302097932527677970499852224442900524222085313562570821573133678656876137265982590193633419981352997464875544078822338192493119722877953738008881017902254411548522203767224855728038182478385280427734838762320846218921154843432093910833278347299609479390994824686025009886613157511993186427180197141852931280445703503438028328705406017161212557587090222526171560232474646742072926398392939427408459352964265299621178594718048550109692205994141334202256115117028484740179379915743997023404397959252487076203078819691217037280117528155454043472434289068830047715135454176025167158161160679527314244584651770656788254660053847138902413906581330508041375207138764702101420928976171151945644370076804355240001084970959962911020165623862892200726135360335600264231569717879551258465254194232345666902950848404890255780436692566975169910468709435678721910887410292170790217993395748310562793453936942421957104777473875610260300459110345754030852271898725274403470415988122889274948291819241614362598491137925266670970451020545539322462727441086543651828982441305413315174769719662563646401688959290732143382291795284417955834951081510234224178760707696140953800901065616684826426001060854342722757633592061632827145796614967821471068636677338485939854535549962384711567641228422134193607380072382108699991442708874003906227062044059120630403401235706152886524200229260958683091748167630445515995182942614764910201386746739973689425228256102315547769834575083865591992780553241803216370022097731816711071992649819330621672908303273525641723482987910490957612966515180913327078493107032848325213617744596888493785218670952083789146382044504542459024761133089946926225643354145041629249998038213378357259114119386927178509000829316329179798691706660410948335758828855071681118066977935309746118536195456697876857189311055869272490706178482183238651609325958445671976954592869058235961079053341030573718621648785795912433754334930118501703436264058548262610927284433142667908067452554849000217043236220174760642686233199905724633507905264745880866331716994114082412476042429657746808990121979803729052728225443482372850655253743231877416954422206184300480664016887072925644337607933318351964744001580565398867072695329029241683394471740795868186803925126355447061902863731564146138326811040200249155216979737734937082021778783759819417860484245049897591550261233802198522382423021457268011043347513158661721814269509008892240104780642573728895074945401744814552727160708208975847136366039835901080072582613749951722028787465656142762509553513520798249893286907332218071708215699251116612909540060434094977684912089619667650744935073588119479067282210513054627770233512610032537932135004769526880357979582234495067136048348508091818870556327903235171732865249545981994190686868530247418703816120519180447308108445301609785423601024498750272080521447968778327211712871288895114683724612885565704937591985593429485987288433665068549541228068677876987854117204851449052135959557919198574141885978076015927930192111502428010844007696834412303318368312276922679017976349861366483929306419396523356535577203552301580203733749248424805379801638971295362796861389300078763165472676405331512633269583907829327098787404518437439072770923482697679414255673876224008582995271568424435890017265080117341206677721211942976670952285817418261658944509982674910305104610720155504227229092591595324772122008000052265395486470689938056241302911077417145143350174145882025831533499241525227000077632946866608933613125500888747299218426136244811771666175714595234689417347494397797822603440793687543816450429900115220807295979933289692101615802492476956047052873913415205362798802007406089814596256028619836705443897001628964482188268781004296230157181136760351382060240219269681383260377718762505219896871168672582033781227944692109615882309560213421509356732892345755754692112142205380858112554942836401670097816035994220286870642601040261570886815571642607581149647633008424710237647306623758705077556398538879014557950397391666156021354534037570526074877345557264298232831978309653111006196208824283888331045704679005456369438070475260866139007414208047680027870335793897196761954792209620039679218499279071898390451841692743235997743316993369055080802684808575665478537146432593812462084729864530471896892252331840119785588712136320519792489481789927828639924779274599471270188573500629757909057084152594254911776081985127376433101548384082407178184702775124826375595461726291297787977976799965631328117016565863199274317054792831143064117505766133112044293976129860075896576193230922865686060034822920266449112607192381508944222923037040862614890714260886726455150591703982874685866808179385114837234303246130474711909444893673273972723820068504475766588713465551356323311086367312846984246713534496331950669515410582095001821710746008194094657443546990440091598449886832864735863262054795531245186467930256574492859924525657221700371678315910618122047048073756322911504755162878611991980532271682144011439113301003872890749334346163481840513891661873976666563722527134452699580992498450170742416089384754311331684460884919642549478982056888226915923293450810899981385643098455873296148344843670640447012857066104485664502659623777674680117566400615517616976752582241884365641975890722549678794730817489981860458037948927549756974889445127106675021830479581235347055974392028649138455602815428148551302036055351831620468234514812198702846509343731547059892491832876298758157130059683064236872803392626657853994069745869541815748767310349690775678683456050609561552323392607649640371637296824362307716220628604826751272245352109179513313155211574370851369811140714841393025878679789222146491175499543531718592431560122421941319106361375893167346947723743522806064098268720642247463445156585976620766403606344145546953077557344194652260538849252262620278187939634583751536381598920900413946622443181974273144427249156760751628985961791702922371509027933095601660540449036148042002235346821738072060673611000822848169980325334146553653205911502213570086247092959269197641603547202798720720377321358707025914311527807208099865712020494519885050230437027558546512203908031575317317551255744502416918726359980575569626984387502769295990389484380170519933437067990092845006336949914275938429086886763358447595824564899658735208831269564209259317092546066911686672089833956857884735698700781467612405182659618814366816133002834884671887321705372077651870290982320247922860462106538128965857552145158887979517967134608726547782528738095799951922996114295752333143888539821684383505691270921914224652471928091042682175888704788786869000991650255615303746552565513135184796712109436781553118535790320836563158026723196481165597921612704917082598494460001738068954996842911195044746331299719147885065629740340040188172719517150112539235923285131733973163954741387038049597600543176270110298796850730068615198743615652985606088690920129156078199625924760114727468568283068407909358106840721085603931743193175620268476447638753854347804169308659557966228502706092776718905657690045745626137862116920773765741528159842487313580191233031157663840260271781835064450894152844730576113853610182688969309772393105162157407102342244457108139106458792917708851238596371535593251051299577282433069252232688533991724064031677252140971435722474440507868531634924700474691348704552703520085512653355457809436041356355599797127865564498036080784069639216219161696110089956853095691078280453734639102066047308205496393791880689633331988538753949443594070363316689352755412517312030761714140633755404447634349795704490512363859659415602908466414880008874530154500097711199481949667386137477972144807849460454978331515513654950508964009533595748233432593075811236852066266831825903580712345005507822973411246065724623434259351047651759411118956134480563675146489929457767283882513483317162993900237737461481453599841263450087128907602673522304580399955250170773340927751230293941874714629068065896392866397082247357223187782902453640325096666832982117135731264874982662450722507870493393649890135581505546578387450284760253411560192480391098102216656619568283179373921526875185616574064591121473134155153117238267762875963052917007630417488997214896967893500657401200536154956219473447988750694877476109900147677084372387444365843595172402240342497195087818534617634853927578561551873678727948622976879253505248262472933234663285113588385242415308664722780134125121451553361315410697122974096123309015781925366640676454963176677939721725523183248718964935989123689661310153275695931753936560944185981900318460738776653890153358708561315828498590662596964563876735696393076965716409695498869928647892423566157775778874729288809670775548148112453551496400006000901628687065751532142187135396628441719281325726309059312640759719341761023615186202726845618113659219896434292066687062008407165968193179832158918517811624457755599715172273131147478884715156570560028920346657718458305071498438719495390048586762068478040524301118720077182679657450423524936533199525094978113896896481253231648865376857180166180791118633894544602824502200769978131164639371598300100235008833285334445010843296563544631027296552911349814680910180674814384030773670930559894870416232483282140357106715747745612137985710453685605980362348673271085179492823500032388056102540140120130536569717188850227140912517840054131630371043564564576828253184849030136047648369276325775874788543500818737292867613840234844644080742099798863465294923199045106430367875367055030561880719603916819770876222147801466204393531626998436066231959930582809271750308505485298961739512586801609054845091560070583324276413645511053782007367893868999954030069374035807816388371009902170616531579435682580118135359428116538175030516825316075234399357463903686988283129255683999610460177395289148675455766860567291925607807919622215497351175866723637812508482237632240250221612603825246652499179008776782182232485575880816934692201308686526865765980579640570643134741202329649184527350511880098223278959820290549906175276849243486608514339107331415537619311192633819035876178774032370227870735793493536222732659337189158843993212616596882973926303737292358771492386178443390350964968117904980354597557901494226460526930861094828677807519602528964960330396860800053352605890168019809727215478805379784879106474971637493448692055581979420993675338979497396832571269377778190140595368718706848005016637074829082182144319424660704209579794090111029674425053151793276249366566539809343895393687000053403040590184246459541017148328369274190605243942454848405554281170423057869090327468321431652596328998789928045584670974633838697497092766472898678954589110884122367449632496116627727056828366957509574205808199126202441876295244070160769133743552066784756746468494456539970596449184416878908494904920909344926998130081601910443745940794468468694565670117512724076673035693891538693161072169641801969459899103540556880337634236859289158854754901390268641186969025367830207484315189650215260445042138709489169378691763009800097751559303040224939726890562578420053435868678561332241377068966802698059680351281186017615642873987480782535848972113627239449784602569809178084765622520076427749625256157205316916538718008962554009869000518322185411731329191407113096067956076430782439100829976486827160264253954612283761170975076399721399225003426613736640999255538336459679881094958181880782472232500887832655881648044286954561082163187127717587468918635794041786960452402588140779737155358145523156824647085224499987879447493061917805794935921754240380459175320408139370031722406669322500455677318016103507031157016153546790736963559207689136163175460820769736214325125004943814030259878126322535711562644203222423991328660400699221827923963756805860748305194515717510335655260846295838492615852637476477530090000999139653597412805406005007139787566879469505985296169954475725458930366453946058072207650375961542536837546757039572774224111764894431824646366324737962925128436267971846848734664809749920310093293685326415159434973742556998193443454339850681832809189372014667959778283178491145059197505858216457400694461850133967901711059717699123166501480429520892975569843994986500075246559773271297353247339811928042414915802802649290162788425603793855750435375931947476543275362707431356449888718496114455311006330845931522709728535179532347842410417955346593558267342204576883641489937925414969495005207468282783470647254412851243291863903788920033005481738171560241114335867121180574906357411103196010287231139120255959892840814112591141004360848738114312540163130549621262332448204223452567218268400177979641423630420247453282852357547243785232691478010007491224880732495273287275853481408760987583926052426719167836584886567367273376870194373784238625200105151672352717897738267003704086691009417093160943549597068025361901340070464143383680173895882504600754811728328721375545573332881209667940318282441568771268342062997968180347456806346668103908540745653698259010026442287516887264782430791641704155589913452025695111292181328361916912737611537539352336648719143737497505456855065339564458651368911109653768725806802147264823066596196653363413382698664312561583626672711416498705745930889615295277417155988796785092331069913543945606806748468181010879901979145165316607156638106013625254424921673628239751592287837629185380477811214206969815638053981701670123414603882105217206979182080348982641994465074352343849168234453187539529143010430426485513490883817036473966067258553720563189709924073392108735833051963131498316742360810765603868713355557892052284696447235965358176268371849028774306646191820874905533364398006252156494484083303321135944205813529180719413682688420664006333459834610881133571445525701377378901735318699666051081333698217850475875409404896777663823249616646551931118566657621518951331776080127098724759176610486408993506811452168972577993423248111244920953099063170981534183019287440463125252450034097107882109811558023978629830171308713517600574205107669901187332616627368986200510165431397136257591631400955325662332717314493199643867352269346644965965382386256329245609597348715164717839000585057776651542408390777968126968262547520260487217838726585254235376574161002758160925548453691334059725711462381385128589496291376563986132706252462443573721723734282828256186176673261772817227154627443959921388186948296994768632048475168612177492994018845613285921366320047789067414756940578285445657753636283732889796697886198589494054759072007486368774923921705514953563411825669536100037871336815077976435078523026237729847788045951997727656180402689140773546810623804879581796704173165069093928202440988047666343445217156300715905187252652278088080873715816077119434024736514529953627799567613994737248205339077708425857551781484896705664358497735242564763108407756895574863112076000595531780440410040382365687558970279021267756399917352909817520474123544293668372383579604707472009890293941730342304320169734044853721844608451738555925241249793517505408196207866986963716165533958843509019233984937535490948941795371373411162415934447107159374881005752679842200936850039096339613629712539729029299091140203122944283881151814083591786854026216407202932164598029766460412827196253366526884232508867489345596531229667490534864760329665820156105989501812477635956086120847202066721353138939042370841540093934002608528567962874054771808812829217139900359536502352985361022184823998848624923537957945112627549879422705207736219798604811006320048242374235002700324817799835199846847020657801725049618480399714092962158964074623698520568377393411253366141195986715830541181801689255161145542071640688987880913764736404345691766034898709705911257486852637038681630579665778778747077102697861476498182490713848927728208845439060752354490659353846775809771011110487844128829116711795102926596958580152480303348042728395424913143277317732054444796414145065884233871043464986842641077640137079719240858684756043333267486970667028331000281394769825207035059274510717610069860864602178462713531291152107990709515723011023753930075812751690201459862557068941854937473737219834054418056840593543608379385817027811428287499404912905111757957927527903430841588458330435965553375117745464375048458624014009595394663732625590745934622227948689028523499922349436042451593165518330684191503115647633949466474415015520493434817856947391134227191970920776358011911637452119098977948171034674092796883695289795323229543146092107037365149973536399043454373423439402528150011103737715348801030145849208735328499522413716527195262805465627703131959520287765870045432887760950332867615760804588423791104220406654119502075939237776239118663530982154739251598072481252376648678975430685929642675670583915686050438153252155744649652406948907160452608422933537724154264430476015217878910839156630211361246440692280903674334045773078609238830525437608234770570980693885460468462543045594260907554436685746418885708168806767950378425793224181503875167098912339688140500102914784983197671160378011773995736068141336125223577777748729154232253358255297149602404738493663084112145816149431540839805221434496211753956455253508675636715642551425454945278689445363676248367786948121576216884419599847456599478662529276909799571804746476425079759589784872849789158515701758955451860871242612676080315870021601223349409949863970047976743459729802097021843107482308785396829969421087264827650597444377967849250089360474816691028255293859271323601602277124540156558115589983608512175429371957111243680291790973874705592710629068563037626883024687640879002616974022658710633316353801656155459016660442612577969497169960448420965469719151151968870457268091985487143936861579643408467239767919546116176752512602408163598096108563639483176822875615936143526948204745956354190172523973973823607705557187879315567867722717361398725534030601781091582992989144683112261045611689793138200970974339452388417653162570801822847095632822091217324014574234227643687581932593290328987794745168464144824405848865490755914053463580763572273123390530942858403766349868229013693409418361763154588113913337232110271753752255193533122534572620979985648210416936973495812607467628563968087302578404427293798925493116252023634424785031149030730567039425573848785628827238607718343780880122872677871026218134961760056063457802811602910083072369745065184027598455014672154500370469697203651406232297926260643424497327243069799440666653548021329687836752960986866028204463258818153512847485122642825982725920245299988181325891295651882322876471709722218462362669040151191162787182791703820898999081547277867665021261453081429215554685265292048783403416906658018944864263711321747703415619494704417862449939093279846221680176692084843639662930510189427347788564456235758419385165969106585671096745525671909530891436484378180999319676099846214488987438516848911438606348678796892669829274660420376847939823505023242201495863448128133172995497881437301152735517997922282341103546435761257637482466801418127573668715018282941688095997974499686643204109972925405054355981036439000599243171793500477447317233037638578168409650747793074370561039527154929010154697555429343188836565951967190621239483543241503621124370553721665217044355372456667325090822595221868786163523102459918400721503286536668982966248190663575583666334021493885345276345384442878702687591499008062733961776798211808544603865903854382900376408675864275721027168924611561648237070855749976746302431979343409253585243638174980095688421669037600087309366826057160261605840369340372271957297850036115860636888684666508559591998989602997021533796995245201744857521078947501423039806054048904769240926059193632179644512212454528476583795548657501021595638098403385263614641310051851074632759362340951151567518033441668235130729385645048628800194592059584196660440872785044338464991516509009518711722313979966387366949919160230655935313856966363054673662348197430720512326660051925271817214777061012988707787847684655562594819826239444323811612209674132912929367702463065032069404112099607785911267208138093988706310207290359424741751570640979286940066637703296934942878115220918585812985243826804051661840681396311520577624413826054573129562490511037478666024028283231318340664521484913315305149448984049225332745734830037965243511728472231939991344244293363351528425749772556753446424792122646642302769007910813701539888749199464936649380908348640386995266957527802234953612609085472283310254978550693399607625330486100788565048359610346034538733585334834645343012140924571256443798475165682349004110304161769498503975919051940985267945054594371158733277625971350772649011437759581867535926699357723089649505634736187169152793644644906241435944517707328217929454264384317536823673851660044332660515134162123702119519483034727941713653180707410883348337795299086048868247777816157604908597435473162785866515413101390735987310128960080074357883453316166922032998417047209771927136422530566422676192427456545380430186481439946363927772696177918079123178995242697217762324633762761801298098974821723523725740517077302633779181119434926140241275762020472508230938885891329810124559709135161361054489930949576206511337461964843180060504070168153509807114154432072307812731223597875396326935331073752535460162959794204488228676469321336879606312744668408550094353933262444336732611961733260401271954223758040605387523058578638761385489752140174624875524408817485211611685678262685149685129798915977220032711879862096912676143082563367096225556219194272451721901873300140104402485567361747059379377671226058034899656594619435541744072875193948406266062232619845164475483032264367943961524101699428533931979131291593551798873616813907217848917960445938315251354731040022035821976664741671500903857371957513400463516416947051583127379741960665274104306663969362430341395190143556027664431885865925997563755824927987467201212677687016011944324692007000866928035782212690042244237398752178913549870287665222291810503290463894959504532125226673125767335894641644380277736069530898380513811754210186149495704541121058344837388889375984594789656323116159088622696469426579726605377092158935652654273276972006491301706679508457579880067478533973557518073926439904649615031619005418705710119772899369534957211569453974651930663892064869649225149235509243614559034464856980256780573513787786781392886827389034611144861011556450241743059156297767511211640224640071021389261125894443106941383885391340758144748534906424644083755601768901273978210223802090737341883356467674622980015050083490002769255998775510398942076825898252308913320436984614324476729427944093986827125114777285331654606887906839938074661836586068210538447576020504831218031377063454724349926474847337859818702419738457720000988718223499349724506873087739597095802900949029125127861236629081696739436194749311082747748384047761496644577759421795882559431613819560461815375588635854899675872026557677408472298274971564422044680655562029394479933163767550319515570760882330483897023618744089591319085934408442466112502963451313805778387530843085235488080613165555540507821250797447748589655480598628138766685036783686234936933183170360070488309930049804327520535280332734244985744215665469215461737910243673780739712159972122778025153499964508791337291047355110889819296153610686172374922705970213961446575752442377630813264308406988297873167547460250918324343351521920177683041751130404574301174176446819277286552681074395155275537673183070442469265196905859776408796968200416289125432021753831590722054731769843244646961525085674721711027761875168191920985606264911430382380207714314578267177494867829716530474035429432969761675422192852476111079378265773211762887110861884113577741385802714760716054812110965476248495719646821574999448771445691472453273136088134727874818332992393525815661673353723143671342045191933400529436185196638625024001108093739783498593187744891758900401142659427544122415672216001449378827254408356347340769372594735197972604247652930776482349501474921972864647910199123969199807140620091046693487876740910651203360853297680983356257246083846682963524191578669104974885140910581938677053325162877294851398218860304502098119115664372916438576160462054739878069796873783025150486814270503351501179300404428507883830453940122391448447325921338292088519456565948176254249534013507498819850898476340803449397622643496581162361977628481755456101557696245497129852278178680142187929630944269840540225975387774380262468167249676460866870489924573738608167026147779500135767684645314553148451790797673975233132929715791659356668517324672926044881326333305335124212689092231562423992580918592349493772102964163935985211447186787031871383680735428703886935342459848758634788029340529518787211304977401275858998214409255756630926112518830305505451783717438629674524135331856278689417957041230517955113084438543992958055321788473274999239199336593807848928072418898065353122269804074587375611542084902839271842322815469113846927853548369328988899127124010519930691440313612292150382612920530090368809488555805096066003420950464007694020545860985634961175583629116191025851635383736557387796625803955408646026586361257360096719792479870183560005994664448544461135943757152406736973050882912000540689360437792139292014186453772893588320144649671984954188489591565026370490278419123802958485922277536574097555076748688297016751158565602397030475444185133863609919605627946622609394554699174898594215801262665871259666256217579117759380345002434340150770822198955735124314779104452431808837324466655738538521489366038129236625221832569730225689370368082466943581806468478299162195270664675974755477780511108030664451634150778905696709436732718137620557466390484573083889024535871064636080936582048791722800293389303629199831999692760535586113410691127986242663960730402390706823635835534131141831335735033885085680296041669272092441428295116462695567846265859726683305023288618391323548871107314768196393337095492491091896472982545108826530170829100052503303856884894470037540533260726004569790699784432724438200223224912097218990712021230124895340031808445720689830145524302639494058277860398265715947546522975226234750985988586392707430284425122397801722374856779381449255182215691449214477286508205207825788141108128051941290185296813535679608400761281919601288306177805170274558355587918912300652746249468389049773356072463482902980326951104841844035813372587642086932953278550959952151732545571953381824629512559706690008422839064424176751075445511896999715868896822297443873349800657380074710432729177858006920253036821961128000611595695474120105203307068228388879612899024463582455856889872093374632368562461864518649693976777424398416866685414965383738248816867658068451886121258725940848359733459391701212929046670461681013625716648291544524925070368775692771480399137934737479926779905194592188472932115051210546686748567282064554006623625061424230663039804882761507539433937271361529398568592162178443492002344416578691455080548164092420910194954386706275677443585447812206092200092384143567253829226279662568691077902047052209097503776522197893077550224425804369579874448975864988690795407027312219903238367567202315655736698736950883190519770958599241484774965261176574687834134823378967908682471167744796430178960100155127316742319372653001148641803080127990274131768191608381201880234581493515557030465852507967720596585973906518383817465400687803706334649505912814122146882374546547496763481288610868434992480825186196680114064214250247688881152188589365230151021924049107538605766450926116129958256912728988721556101660927618513954413493482047160526059162537772956308657808489897619924530558862441022857872049833512983472272338145068575592920477764497305113612033076861638953961757530403382576674746877070223199183700244092492988731417929507374913031492270959453416545297257234487766590223998319593472030394391180984043116712460058256924298961272588199580010220274024833364797332254426952916408835882702343017151068598086839731683659265345583174842716279623690237919212591352367474491119696103917005716124357710017846984317209272537578831007672645866126313184031241715675297992929684076166510064328724300723188644330732313449517510216031313733913478000097800409745381305853772149900637476718690343979630390436561381011886901901670953732109217768369531889544373392266851755852586065333075495388885884289409032872516615407793953428893710636976113981669538633493238603568998283757258502065978997928323881548639999355685071182875625668757011895837237397361623055232648923483748788084832521396413413890925156873696919493937109267358980584564884570244200248809030117302911595166734519453443443439093465610540652448585482137771381211636619340738534872903162237833161068980430178726208327581296221683449591817986426643123536363454452348589647371949440645917815576950791056427950160740504934232413340017248480407499471497598107215361308671618977094606901529431362131850559298675334834794418764655254890567556883850092657959092998520788556916417664026474362992386285834874586920842687139610974326333708138465207523293161827975885487889130090217178758280641371266442794382778997577370446505619794336489822494755347752252304447052454573732659236964445801494681756988843754749188266230621915110179873205772105637558203659679988832977076725109235520610714752040350905003472204818520886926799525893887503886511902316678182397599708107838277338346592482461413848586136160490524014911940609496801734923810768459888425303564792439494526599327717940762569815623234499755794393819689426225720629215252197391606310740902281166544524645217386391536730108601433598715373418546513240418283395183201200103339978846665279214752925830508295115359817752745428111604302156605464445700678343018746698411244644958965083573567571620898548173659513443699684778799997055240086358776129718442859805520034512821977263524582644126360395097582336482934520349553056786940730408751871709266218886304731703096028441122611137805750155151747423002610036009679399421434189748207844211611267641882491791199897857450666908951660176740488701664309957307660515754953779721908551852714736095191423159143054586695934086068224582461841090802423137032154916590969989981471911235325287759779030820273440078748140851516467494727528013055400512913704662858517274099202917740665966173115664693639716758951360730009006686169231857942358721528860021570640497175099466514060030974485419350334951336656429236552606162321629613675804780393091743310660603989147077602699178653847357780155843006349670294305369871994257855278359020720318083218209478806244977465798726435006082395223430233839577662327117759172333888148064036807540985951668710484033485235248570479493771389871434476038369320778022764750221571457430997467073922350065726874605065264765172146052823315469079216011448607577864504079645670501185248041889202314599744096138999228923329999495557607275028695201512774362976177276027205992653813836283330440368170114534874601353936289235575004999774619499678271147424800818779155069695496854861235747848167171458491188750705492973967127916243714933699968125758587127171413834366010410080228182102569550930599817443991111617342486852704624957175574221111181755309398412247691423478391989586822341412114303694218231665728689437403084318923897140019271832657690918878587035607280095218204447698805483296056590973649440850994194683915515953899154394740574037956610853955619339864945390498410652771481687631783821147443618013505838458242583784946778876980105853120109099478028744191083670583389280009861156346727919925608956406740048778795307904839633759813077380463334657829669262383639545754293677434557123746646077762895262772647512643264743292216806092963289279007416384649829326525723386589708966170366952012105467553907141743760789953715675128301587098545077200776114701593300855487001568341680222818881126066261809641919279688821621032352421075197383888958897301560166708252570384651510980125146014231836708317139339457480253773312108363844407227211116713914601043782919027597223983070895846213330191890572300317844216420451621207728478281988636090184951037531320657964631195171069985382380495537336215539448264127826480934092593415529743571785253322482916720179117357806533426053106196956755310629728214383742770623035318268726060296463020643575517474780366064251002178191060874397476002587363229378979184116516623872987092172635269064956536044030759038743865759527005564497210158506895193247746151111068556144324874430076563405328644242083194269137117174757356846886348302766247580157316867365425066024635244830992767295530971218268304802484228497237027178442026156280793473822628347667673471776217214972928906598310321876261469001849217306486866533743302487412078934271971132950170970314177959947443135051316079933515754970841641240741971365036656111543573601022296074373961134160445715134335444515549116670220891794608184046957424645101705303602017464993836156354249861122024645095585933869807819615282447772018568440642979903610919357717610663494913212734490803592434573953135293403412141156147570505171476571249317390450553318236272485361748627446082639293177707302557114933380375502834546130059385516277138587655475292092780759247659626697358757020134792850619600194564465663769525812212778373103553028597629192497340320692179943792424595258597063746575866657842168125047976711260402057997509661288099154285660405112723808310135756448039156344433592240070747505136512923340867497649222779747089533840071267586211499990589884375445263441756570665674643446374174317072817358703548214770664072495852234838091442953558743455673232155365723848066746965984578374617060103835460906813607697117324100691008809340672765935422149168635962642047711376005571304295711030156653129352553221547608300722128975436662846464140339911434838642798935999566904364360101584677420814176143216625716502757209632800258779716648400335384938511532714816104701188709099583496879254663572927247199489776498061879116513532151123539115688254364077476961736463959320381596407392432033768220786569126334070767204920976340426735121537398985568961880437365854692031274548552420709932572252093671799175586339758155487581643088324605979593311469316823876660683947743905979495498144818773187300247488618219099177903206844644576764395174539397604338470337876782945882671120272250903717634240452177786517737730082233693896682501854590968724401032698523320266046954340356611514799504892726173748931172960729317416386040286516587627171419707160879511832100854820664317696502811893753644795041004892141438173891950436833335362571451540972278983727940987199135683535122989861956000331675000743370715722204204633481841546833197312534974192881561501271329512370400315007771283604154924932109219969782109479961175809618652317042292609133008941671914538967665197179344537654261595128256058314796731725611147698813891066363845432970187787056626185340724083702048052448010339661318280255862319518172701984801309018792241082910628920681930789840607396839312554773385473800835090081390840593317849075831830468505800439375904488740226627952012198279554002213537606367336832869450160014761523102302224416923885405458925665108126382997011804748482463261868435422336536837925907232461855878450297583962552764848357995642868859924015710737163972651282027430641443096603078234487306738104853327973849626153597525464797948784006769625349536758225490254326558162389234918554183343629342985576351065154362319664466078385343904948481160131658954701870330078675640370937091398639739597180775445876472873158542092700712233748935546874550310567924918133494012345943362589010277219460148069515781978224286459231058482177292695548603267492321557141200397045313334054999717630098025959687455242464131314989919064027893016233024225490522689088310516643906556528276457561563649435533621343689255647845121242567616417297222466612025755578999461982963010511494670946131600182839492509924973149008028181623473796208055813739002622393778863518432939382125248114478018114742593013391872785516413080753896401616317132524916095312841711383080362817655128095831881228090957677872616437434284141999313744113402859419126624265419212366754594624649169715087309900414587796645592154319819282707344377573259641582574111199330539242174224460484988333899354530822505266331593907028115657369631853962517459740440432793506773564889089308848222046303158300147799243063630311774401343107142931715826990122763921727606570815307703135304730375987913264413918876336407310191691048319241041658322172807119518611781334651898920196206714364615203458491128940538187211199641013145386936401155131002055566307518875765183589707376667809252065952896855210484377142389616357533486585787437319045447811222549461979891088306967010467784577945726096767928857552155371751361140641934565604941313537681927888385669081526249888469225553629613614261702883603945406045225868613893044250331946188028317114043156697037985085486290812251716898184288492264781898670849404106125215375974245096430481183733274590748948223006057252151345728207372108018130395094848177286032060725011211759589045636394149366552272058456050415814889119840486382352834474386041626655341100577701163620572587269815875313041803095864245665970531023905911170325119987201500430991598440108641490623697630675171857071043328409714972220582789309462752360921751332608255252348620365575561757457786788618407641206178744198205006344495549702317860195993615616357693013759177839868362856788409849788963888857312323603107797641140168797980789521427974084537315640455768977755628848126622181017550926255784911994387315374178955651449629902999119888172599097289724829608368275691220970025903543048966637255020920052284369266941661628745191294059496173716830954803965486780031999096776776873102499450818419318407808677697444683516368599993937109444953757765765152253235706688414066698675020432402458113628629609967458290143519722051353306028775337436266942281078648484828682284211431600161462645230319140878360304413837761943855167293870412179469592405052582383374436247953050816286428061179864619220814074964108175966730723380811369447523984061593902804201299800416604078653010311997206758676136690677702647813706124542092853918774398591602339587099554823699185077780874412452988830271038769727575954704770191682041047652566877879008180162365158077060030448925571880515623394483910365862783657694541133079808351373928482154812869105696843787301156832239423712909357337519974325252400395617702066896210629340056922612838046202915807990236816833085187337570752741958420528416075921063185448111915041500522451713929310605911631907188253275419889650795072069126721877968793717558026789506135826270460159287627138612979770116542217171951666738182498911092004719781760844695034728885129242562512674638875992999499112012570627071432516317065966433384115616954388135584005052517952262448896792819471166600160797675005726270794239899621550104948785271064636572439067530564122716387024774382693358152047340609167617800601158816092398806136723224370499020403294925798558139216889952155520513352808106851620641545243156799798646862850892369588126079282844033523310042434557245800349832277627380978120125767702919426725973372074477802265982511885140105875683693508402442564754570838456921364090074854229280809075697099309088655006679386752689667331564764811623112838912969542413079914361663664963278417893669506832571002486213781288239954384441870654171841302098781940931228804898019425373328383873257273478356961664792150026361950738274041582620614616030787839097299348262401203177116069582747632486280145652634160323003083904478050095263590581166229323631475794974799172664537437021760696330722910010069753564045200522225617652617703982539666841985557551766325435008693565301022444914112184283798092058786833218045305894146854725711542921340238754384605243416733627016633599528271280413293739771666426096246491310325740733820381441197460871094899863092977665400396292626340992525914987957045388148691959726390969801692485693593781515334722632905279224958783729123896505841316231050356479504273620462526430475519349331673063465093981039862823759524016927204831819007350904241746895839018498762387289595341171255880722608297099410124439401998511570732377551516087065169833689554507462543259353729012387687911689589528273355681095919723149304383604283300392960330980240510965748709830468896106611684669724468746420270264057734843711967144474604947438461719758846578822718957583393461754401225459229002755822250101583012151827675089842867308135510390460992722353718184771920567583469006186442133069908468704509908755088776610577455776274242274489535146841676115494140585992585903356629666008943013963904643363185270683492293318242512590712472071399779109630052699126623145045580100403617164243694921168873299246373375006860244560207101958278810233669816796439625419751260671793530838559995060964145419883911026344401096416663775663292357756784255094399329183943835772630939656899369453400378413849554803392029314036139004194307812214671887916872643683350085504586020704635409760295422936074732912598507169828566061858619698654550241253398963928762584065454768629281543193878721411426588089776073548937687022993919015994695172902776636161569037527322291367819030066957373269785224969165710772650079562320454181857019384041797543389570197990052444536518637146781103124454472889300190059854800051991214418114590415021955873508724954258862286608308757249743660376343037154883927139755647602245171961968331143438716701749112356357834571945724092721206069261098168671633089315658001120035022698293100318117020062947892389700586262591891321649883303709724751040337084592829697654342718643664814616429203348257749623218121705354478222810059700665678491731275976340643923705819485136622789447112830841337581759329418674168362510217195005251059003605960556249590721774792840680233822440010229145378181947585013354553640421323202424594778587821580181392059082541101206798922368344830372318296348460548512900501358444040056545579957340750535938643523352967168711745410663506768474228443423000625741556425987610777079368492850238871061180356474144256463287968575708078449015835292085476242992232643547836044425766869103822348847616636036994451880635961216197496140538509490027713745514595713703474461721356377278240760544734406375083685630260810047176433570420076370763718040691012995534248123928295861525483892595743303045138217618863324637906769911204228705766948143708821534936156212548482617911660848918422033724297438650048050838041014565731235127376665175950625099626201483982356144882750650172396511280383552812225945718058444535356235825375602175868102312337288962897327562588237402057679327109348974070829018308214024409604013248659866383538696087222996614876657283798636345026408378041932969216081724782507971723590158983315884019724506801830365027196318967487850871416922633054185506106953167517445241345107797513172753718982214009927178612537276441398477436335797676857051921716850472927845912557223582289176146584898911160039250969036757225813017000323980039363144446894553419795728819830002939755442855588475509834947274024336026498583487371791970860865460626244141894368337510395375494594739650506040896397593812827334726038205337298811475146816103429757457030056870600519528348522993285856192947104189166047992433454993429661829783645977263048275979613829390937542164572491611694156905184185656458216250433642451368653418653884321428311649285645320012794167397835038338735304792106955040258538720294782632121508011248001933437119957349682792124642377447589514422114606112517217558034982255870519127504223535338525139074865632127089192061691332599530959686513403103501136468319450824613076444303354580060841246265630223627099377989775370816275588961934923648134963443575246252299780174068528994937099459523763412205519961580228308868863422385680664131289183454102888674336142818505985400074425173477938180439371260218996365951566099226002378113115124098268659960572759576211910629471515599691418151647676024847020915374718142934527104291690987860323569849878120574049804739177394721650226418321160496271954792911109420628123301728288749145512798541576721067936611172182243699079898540543171987221591728109965533652797304437839120680464175824164266396044886217518341753342670512758162181945852074012689875251469127509343902250551289427670906501933301167488632371639581034175534536489959063211760830686786143425611937275824396650725819739929091761626331556556137318300845108225618200719549509955143007281127445419002872675760506960041114517371860525529017822237915401449795907461128433910213908770746466838952174032918903817169141970419581296095169139870573628542049336401262473385366403916840910597484186964234850577640604074097008596575016655344035045647825691965491867146327133593821385193197108376825559243577766397613781587668436792804763417633980204517557941450294348400648523859305465767860670574173697570014749707050141223098476885935991322464147283331062774512708727738571910015151554806850783680209962045466634193860164364899800518102230755150059601043233217099759663257515509443387822643679860483174118702316911160837502093111498396557939866007252959543532670118342402598676832955167650222662727192379374810548199241475161890675261997198469134351065233623881811152421048785608170072069294049240160081171173376459711257426634582200604506260066591911410047774010458628650700078690442458836886084115911781214896726696042060053128148293901946537739245528913397947806377052728582753547742769416365300768296786130801125604493575164541117051945848662938060549228354908937007162438410136111878670299935720225139431487995885191627008601913080716774925924721287221571048675213447780958501485698237747090574560197659680286734043672503492520577708256087398689519402832501490852117571640840538833337567273636938743241264334126908302589061621681893335384451577490359091779647723516953997772542836336428384421019571572442190964818162719064919054647585174048192963109267909388422017491509845084178505191312274151181647699472181529520128589537199107644241465466458532335470655924296907998382063468574115543040357204707089653017176535113540539729261067241306712273045256033170687196417352371271274098402551996829264896317862107807698320550352157097164294320537697088608122092136427762661612608520525520588979631342314028541948604973703926534694336156213904001816302289044401013066954668311218163041686343225095977534477167111891846895425564892511912888924915678591617889967067733707779760029352088594776726579086265855125671783008815408005194971160073280004844301907732395656901336512860153460572845755179500422967243309713261877112215411142517870663404237860111178369693535043482857964483661463553559044005663357493227265082000581631507507604458398194385437410237522195630856195807295478610647112772750746663530926469758660307937707787855131714524810714544564458473891078198104909234734059079609095975704174889595585267761506820261304451661089236196470665999357874408363298893812694352428645706698007787834157877368663729680464629226158169969874100832288924709210284636156219645491421718997981676426611600684781579230344515344814529458511341461517951621521423785576167920679228595583103374607404543028127622242939025617943612156150307078674795138163285735385906072680205450898397822492695215664684154823540162031893690972830144547606368329994706514694200548933686785871710615456799818999843437050505686169781808817582372001018529115137648270042822358532519273657931827595976263510674725144672001327233709603021501552627025045825461346942397649553262662345397569525646631217712186454675927823648843851460392409574604787283362997494319753858460548863031595446042893484768972873137132245209805940796807253157423324771328044236880652642497776928725465332068387813234162364480760144149807183409223506977568343651387745541498555461498839436174321940995915112692630567278840252077503579165183433232748611576553889668800293638101189387066705750052451296357095541064293690499112321276174917852445909414262364398403918799262399777884937588301760419133223999626298730622430379440693525765469933014050882882724644175596410296078760507774149058890861289183068664193711685677836997326899398083197522107428312143577376690384319541366565990367603740877954876263401365346303650768785140761165739541715767254664548822690727494206966220854222235887860672312156609964410802617780577297141198704299240638802169071037127946701902022201931002963533481772609201618476397300185447400932660451187452688463737849354498731568936644118372697574695752904482444980470218372606863124837121695431365787037188009106197657515521751010600365182436747362132802504037495637205840031212873001731023671775429190009411084794678805806871449997668555551716664385387868350868896917328626123283049498255918555447566117536389887921017793080519171316421833031663643377258529988847968452182194103991000231028453964661406924557342384497848271691236121229932375841837545655312782483838241590609357816043415438586325140692367987835527635511075086485939431384417891168448810435234782731129823147447348787387387857264236501649680633622998926254193020477144821748265149290890250588568602691489201081507297589853820709499267579204653148032779350321855231465086687412989530513132422959794200206751042011925546888405807274535533991586756700751065637045779635479682259936078504627334779634800165280121692534837906187425568084332357701650803375112377274579657095750832451205123193573150966555293120140192454732859824145340851792214901040995950965740831388773319402667786134413417958568985915880736391200144995681441654679719614115368395196276997954872606464252099875946556778167687966073913127839787579743163034578053720063310117021263365329268638546559992309226248607625990581715594382286306512065101544478550387593488900837685377734397920464732375881851161864391226900470766660209141790790944991642184065249346449819734979315034172155883330455733106722361514507549127216170938473564985423919693898439431272267256551303709247345633592826413108286340769544050303904835057655508219726705700637996427220491327480601506256488725272333469480473995298161834380997897058617452928372608567391430497880411457133343226640604776775171835237158546774984524354926812195372168322427745174756958654164494637700906880533876135913376712533601195842458222568276305475665804877193316547453057032702324666976913498205313603281599811380859071280619729783920327491364071700826261163410116373095359814498338958383008495022021526966469353518316110727170209778268355567623503302665620237930961192160230294677138655764369587655181618896106696135723975343168255164784280616037397682768130898055192256067734161941543508491481231690843553522954107319138125119019650735838881616345863695550807811042800711786553931057446660703565686340131559066418743615600675891339694294523924214142631227595543859438489758094073025521883472265889269067729195007051775988416829516042186091079673953330822699509716001215522742508114104451595550392396471796790087618726051677667099210691423075753223984176324708192552206251467476991362188013534310497994160436680567460266078182393011683602212167328450062028471807137744545773927185261247156616106973341639219837734849897888037202963211570526415109704539954217723026594957265929529232172446814347824119811701159872940681932151180372371848245799567660690931966012157876803849338788436510940903099532479438268128979229927863039914177750606751460449133998614586475910217068754596975404552945147371486982187702103987547264710509396947409297554648623010626683351088740310415272164970017768533678604242147852775632129862664933425167916819486565204160641355385867614354487739135811236218749778247378146785815979824576476089252526496588924742865475558142809165381777442099934487005138783115735831826141905903569155761135018828478302622467890402605687415780246274852064789416355928797099964766703276626653262964361167813363664420278728528543168853372388912719948893055921798855846463825914633697191686337673232702437677932563354949020976667937340121733123296337144533631535359002828630580364688480679980959456604763130054440491367738992771744121093552326435647430564026283553137024043645258848436098505067746838648230136464131036631461617946986888264644667099985614377169002817772879768228308422431401682325137400011525476821869039371885330798740875080072601138001634981834360832099330982838929301941883634742968023166441669489232995140776011194650061882999591978296408562870817723894973639661648690292151355293693645973437348315828569713068713455791236640607422431738542907871465295164169975025646122398111174442545342900704687771015904094035768968613291516648436155122106422899915154802895834466322829882394352221338600579630326377698144204541108897185579348246810105496776017143544796974800068479394045693045642886987144486858181005497406245433111743978063796969567557745252024777214308977450760832379910980517151610518393991598205589102017954986994198732031361403254648528836517074102161030127299746119028285064568662682876970003381464641977205591837592638616503379367743711441418390019526002525494972008871131199214917163560185251415299173583750551653271684370324696007330212391309660269530412232750923404225547224450441015149654939305087020000882771639956206218193645286775686075102622761203463084763392919691689914180356791054089120274282793009922225335796572621696337795954449107992795271929851888233993153168388439594740149064018000837589636829142767245247933348743195082554379451575706293063168505789302770107430244729477932141382877376564920980429007899920088111382345508542734728036355177636680354707856261263403401687339346005900451119155512203428788759672105321041233438577799017956112189789689585291879088638625620630289953921835795477390830460363048928827957140324917030078738780019858397723788101932476394667012971615860333486919119870713680097791995648812599407739426928331333419000751379004660324312873935137630883112948845355101848425903202192621725126623803910766415616285829761170564656274222153495954906591916754009152176589531370360654134557163305217164320083694284238707921613238596994752012284083398752100800825954674222744548168985794295553748171588593761533729003996885451306554646718256894384706744227424244064800692370947846843108554835904261037307405263335179760131692782755637551957137275822566841673384805562695566554877315222199843116594521145679833357958708256370503791022445859174521740532230513673886264892370466307010305010978736107596091315700030272931636565769379148867728773788902741310308424432373415609210256693910548374624533527692816868106457037459053567868235240832367665599228531584877158170236621245773136805492948283335908606287430707249791248447382452955944275605822755348684705645196867087617221749490006143089683122362141494184780896780452839801375565493692202185526430216814225205376972616380017076084096500663817354439926563606701836000963115559409339196838647590326825810506731310527746833807714163411927852821596014227163027048198192488014504601807776385519301778635414639703504528162490466168304863543269285065389224723900904284415913899920899147352125990686021250212934522154346681273366768975452545797416741845983397187473266276931202111222469152562154506802150071038782764334923832991356010324322829931761536115054464260424838452263920741107147205454596765032604039480073704853657734656713989368368748718243456491622713828710714085608856805847972993114535097622937473619313198833482220492367327475065472666094413662301059400131548125276627422027836126680869399965865913365206965271293888182073124116986439474141806317153368883378036993811952494195366235915892899949168959625655123654052768993432676209055803254205389571138714170857420982797683691137141493248046683070488299477381064834946016555089739078440504856469945313744096941436202563995183439116885724970551364053685323981177238547057590926342526523331671352028206833206377476824363175193203637607178615447205995212090212216885556178041977253228623081307837495528882181087066963931377991715298886337746043263084225199804094923156744960275153202810462232606320800320558742572554873394062228651018259818704675492872909115218571154211420652174300372805873359172709581026434263904301563483006411579779271310594237839268253551274197912537527660264018669508080598701704405457006733237251651164091791169169456945355499481301775142894878207536103110513144224279433146645028710814312829175034157879134402428509178510989327423462029724012457063190882450187741310336722332981455967334626384094950024773627600889425606746312220101496260515386009573434699142517184816943912484427317582360052703890607370669778686027921582884414765960954561343483722311842603721086549621431177995226409187335725627661219729045647194746473447279775433111214379399266334381307260451563690434553924233912468230464662836839212252699065909762592582615809880250342352868481663727837522248976743361848052744339316977533000739899534907596705931778541434435140577998035590397465247857967227751018247980229396692830676064195870775709794388858060005290363445388259636307711289139869997360847210765792085743299396863694756720946589343584444886439284157503356986966823293836656079860933502718220807143593729208207342722677759516109338438856595816815437329990608189059636553359047225589725065387713269716831641435048808869593958674955072570795030058840128714029157115016614120485311832420308415438212471717557753862961994428834454572676640196742131175435403257972331631402263254668009032168674214984432338941717750836394038911242340107443114911551133043844963996957524009137448374004343287557321731644508140411596409599525719900472599666550479539142052397299156900502964881275976283221021796591822504116091737329487925229209023330126660468733015175466920439703788975263116469179491197578380102959438683504434863574020481861476768543727092224235194741351528928203056593574250492308353534242978648096957003034245734634976321827968971441886614531963865411553124120147512386962563920180619429287594102427636084678415152937328301925299953109412408097194787729703136603883916541930809410552178561923608782546748875227606732845490421125584344075941951612860954625079912866403369923712262619707325346072188175886924722619049488624144425109034651438286111916650646352425143305834878963985532080838846684989944520241670559120280429463395590435219904377020509912111136881301942234103883324338638123332816000519632679369320958222568403829353222128888140418805232529473798905965540717474558076626236532303833090125872546466990060141748795651938594725459821718450677822004913631766076330573491466600726256274903170302908719866139912467926134711431401488120399659305138191766881565906659582980018255264324666513396629941795171876008726400818036434380030748031553736408301341711120200838261037180436427121948361463909362925184394807836228495302042758895788890139150063321630952431062267610557795073352640348474233987208839189198081700523947128543345308520885505232143567648472768696497635578203444778917028217517492123658377106538914296801529158472674591565651002283975381908210035211135563331220767773227106265051348208559694049563486326269374719571363809072671365263649236697006220290819985053282998001869880690905203722315166168744891919846168246273237500957167431719911527394040260371597755700075226831755682549406079451477945162102781637968009058057555843197797392181877759555822802186635730003008778600688468646646117247453750260282773143511603577091399382386293658936089748217751919663057722358332353032727747736595897262716883474674316144141097424012084707295120298416911909827378423800842963059663673886519461525781424748955981631803828077023250870020264382871229054235148989305445216188332601062462527597040706661816046859034053837774781883281644953799105334566062133206582230311474154864245733102777908554244868141674529282944938390949471485008690101215644876294388085209492658367876262712358243705665056850791170995287865410831138603407447926632112590810401363590882461917669927143117901869544969314357697543743962572578275525759544334737621687158497529688735196406443296655215806785383140064780972501619074343395487053504202171670449811360732188973955425706813235245847871107137970922119434083532899443665037288494844687874905918835264343879776830714000558678189125293874162115038945596921696573862134060510510246629784756059235864471419845556479500122877620682979740110752115655780527479916384452053150493836709671381308484088202309527519728987059527999432766130870004660426687981865174649680172086154318873174866025350533871551952943417715894101508329869554898190617381184725517066942539581294962756246413559865882573800540700349363626541996579663238622615032228427661573951133773898181379654155269105296618720955232656143798432638647809007888631503048642108598460209982367546298070365285017624487652324189895594804960301734623669422498944816199012823713771513565314585308674407019142071685023731510053751219761689374489691870816184287686001582715637656831741642885154544838801086896814665453814330090550433073503353428822603812524180788254167458918508121361573420067954903911148868018715643528676122090258834599282375933537792002797520648514687020353216544660932428783532933776944196118555944765665547525107385276677750141746275802692993891273322962394521004660871138843353272356033119044948437167739318463505568285542735650204237621665966759746042466352018237729721928400960996646944988641509043343548322305348676775478992549004069802688949301843596363408633062908154375281319107808182023836542510773398902024184550548446970503769584738452151146003172728511620934461774740598620655466478810441855406559927384650193161841579914564811884528964064108293772198644251989781732301494995275938406144723535775166132560475539114848828586371190437787154229586845452276239596203387900289171111849738603506463139463057258273151577735549630695288088746925779854738927005641480409009281040729750482799412923680858948087572873683878547777941736631600470399298465921879992003572852446420366706431100384517285675225714371924119619918392403911296869796894681117037274986074268798573855597277976152478260538349515829664338028594535282770750486042102008666242646725307532535667053116576345069687820965941729389656990389749267372766648395924090301642156510132854296514699164888814696483639297842520876120001061339294061124351376910591109484863243675175385605643445273060818032936151636116105508841422470763554319160438431057326675638674432499100847205400726688801698798290147018494833102633892496719828094492456429349149441268223732932357775124768192254748149872116195379828282485236857321243835271139004978696728003529298909248740176587173857181540910469763046805692345880113089398888384132638919282998502504986902212448076982243071362378611731774362329352449819141642653760729821808348189894003627514451183705786547160221387108078220592106163445705485687827533251515317215049671277932409669066424910962980928993769426643307307654827832115157777005199362610685556962619168916240955933116117039072361803521866644984496053339156742223066716653671347419113890631721370735385588406301165438077381987854941244285676195520601422204957771008337609599927347587500150054577283251280881341323487370864217680162681211320216546191820121093622487553970492555438732849429896176944788286587134901955636479711829605300488022888286917461115498937604359282799857424036174336194692000555158614911177140724033062210217561093110939354500757976720187257173216048377440082286357073757635395540356109816446917126313503213071188651845065078298478701855602112233617266708519693148725870929099714286019121862773195195881339248954446627132007744555341136324059825868529319139205416058330812963073504079341283929533960590005698471767437852686387542467317595597215356114265906818255509378897131968391673639829265956376917508362213846221634009125098306662614234691829448733265941902497508917147557680327101538274527138617281108996481143094391526986197541560163532972602672981741621948711379227048316630210418241724866731052894603968004130950563319975807526089056345214890455932200615904223892486370183481680464736979023775936490104227160918615823300733200057737759335554025057994408929073350184379712531764287248193119806738180688898175811779472314905304660270595505306771971375048228343279699223804822618327597116338625128840947076305665946956097622249856658752110923430560610354924309535094274193171423940500691604488144698453097262005644802697240939584055641484501231581726169739692742226629958715037502552840114265308775453620623565950421950951401494166742255873268444071131388369516139013189017809173434520827074024915720859324822175658516636517839274874386881772888877989131174072009101756223669308298981402398599718991545055680106921892514621973582041385620775098473853884801248701106315176184774287862458203066684923632412290955842698942581210458846289429358654833814350810054371242282355445161542739775836356835042453214025290386345096849449064131655449415374634109013521309446805293365398694815133289983686853557236396263304500426261178795597135677412962275518514791393142234856932692212880907504664448794808706910073628790753409081004447453671088533973968912222142619399545576347671377456879177950152442863906534737327478217509135443788966502060606866425920439543053350393403687008339886364674058771759789840791661928341822426006722453389625671913081368961025401912968803906088483005595921944613480514942033827005690674798951618831841969342585487861722638606059082785745384712365073055758463955801719396422380233154012202768331194333424225283407619345421308192149629514159215570050105434995800024849127862445426086496971893892570511256177475934387704491750962649371540262042113931866878112177723349060511232136914093643738351628110629039069716168017848872161123436736466304162009350510589707809739882008477180198982567381672299759507030271955005479408370054236891460839832784004424951753494091670776240332213666025235770014857237531224708615791356175582869275681610452012337841782305598894118884051783178758200801726523162701301459456830824222308249829647729402216432888905513689272634699360578916224840989568851884089287960845051391736622397714486659417232217114901007328434249189350424465376109306507847630630104397733055174941130645049527109413822978283661590955693326538147918284495599359164789171801732123558880666119000553621252772190217180164915963946710504572364545540238608320048041127653447654946841726297827281048380683627177301743696399057312516328224314857060013520146206661068600562909359541961630624940540635348318672643120770957673001645459953142788254612086688225317210316984631175087789777556109464561903674439495907921996771963603668092382095299252728036575258951026640264287735692381756838169784678617172763167969422860231317694614059148578148091921476528859433023784635977789813151060604042908875849792813252871891262940461929167451414311335541205363869971521540847698810077664936166625039496028683737229647122051467611156385594564558245978353965954971375248987403274318483661370312904014965845299221259990621029997910517348830898441389698045384583334052568426918594331747519365404021852564392149278722146284011881690428483238972922681358106748465016349917154792539145488090040986933210190241209090876654232272106950751416052679415068229710052285837267981889312102438208312524385600175858128243651895575937731760569997937756697628041203458096898312625991313468575169423984912256972425468975325161444569950102257246739204965487499041252297141924517998845597338475808648351577357930294946707736276845687573885658419117351116798219754753170965153894576610627772026926225968439745203142237186892531582185520615078907921192943573318310466788849970786590035902526105410417230661098477880563023747160037554675903112506257160105134213789912094745202992714084659749333633154032682677190298974558075534165730388157591796772501041514808351145044834486723648349269210704065982975871836953534552753166439260636297519886824509529511014257142785263758228916692785099116670844806829945219210061719121129651772663196035735353432809292235745101365510391250539315994051440956489825976747503219754695739167449003364556910025977947146888643428567983974079441975520651102954407955309549103300381935146053615541557383220557667005616486622692240156052664059777975628833779956679606899400026509593380759006763010108358077562262897861601255640533334312623304057294970818555185293074644711404255150826548325182668819835103945578502688494207771953809608217873862547611878973186024944262460034418591594386966770596861961721776593535477791084928709251136168581050561369082481717478189369226806360547887132464730098512532964138932312526189908760221555630174251363249359030623204031330574339397185978925368037365168752484086686942415277806048152008363242917669080681081054279102728424922756349494288849656430322499805792356164515847505502694556803421486586605600719963227434567987117536599606169517584278045408406260888337326048166786697110687513536184267948200139854910307143602637207122379382935884741838538300661693181072993838512580061630052447602753886318730465029264262873877851023047236857778941512549631458070057916771264191039365509260558934586460234733528440950286271656194932711687663351210631920324221021055273921562398741053434084049975682572280035195054498794755183167195058019997852541510801475244222425132683723325927974373154861883141186615087093365273851264399940458021230174113104525694434113850075343651357299243956268478391653817027783905184600720266254398819826595949067916405047801131487650838038035717949503028464027701302501535092416683506205712286591610600243475675846190935209541364119746479531649728017217167024349384533676735311646374777095748995492784909814271373011962941076030833764687424164578682028733894165029019103540647891619744978774374995545680096525924841656230804522414174171173146020167247440386011105904781521430691795899524701502669578745973758563443284701650099471693285629145722279518067992353716347044918116634115624163682818526382862050887900969976928928636419048581804074223796854810241638561561274668868052250447245747913798779752239639838665475570305874777173506766485357035746085007688663414239379111060892107155436738505077024098478001194779066720424356327164989813846514926294855483120164370768357821752989545534020978693992763001184540638417717961922609851443353726718155532959666717835437152897779809731525190828828573784684821187937966282085975695303664940361834202390606720869292778574208546335348249366028250993724107122595401541007249370840304046080599661814418548624148799739721837590530058481667418766833750886970238782694069623240960328469358729650281273089533473541866888639328317837755623488930108109916236706126556311696425852784642390769432692366245419475802324333078100719159338686762637295255920477185642971519184744882239967330261820695409446600060873341586343931184043157624481374152797048720384376025460995341087049195136788577775761683885952939857750278206278746047692781345015447406488728287169527373263187072019140825622975755242290652657230356639526994414550818261532990099681311912919834291384487283244818284535596078463657625251320095991684338637406947715602340062676068320201231566619170271028404135604406025506177802524193930738980281910528909348920990791578162826136320272835627377398577774212076171228983588463982047406123678678683490927629645877117699883191834678936933880473795095754513793026341777082427540850535127263231425691499689424609542754986774438552561717016797325131056767958315365663132054580389927875164732645620725005421976021647585986525440898599408404109701675390583701321211661408777077118163634049278766207490108734535370534868780041298975711696181761328299719204667246872244931993296260618565466231950978386286463167648818459323755633552453976201731942548551605762566828220356494396498196181157841433460257834202036187825263136502453422175031291525045429377817677811642570359445120176619581900155686033713066862448870865896597959678168258469156443865797840167068067675086441260195806685862080678289373226877971416824310771851481031240957639670687873532082164802836034577754594019083437437527005564001959460072477178140198375142896038926519380301878420627056078732838136834464654093812796627538027504992448515612677551846282662314724385612400691924068659748198136060850247501570684736599162177829288015759776863105870686958278189805557135498811185953309015000433801927141594970731770093033235125734803294739393997998656399776027860415547958799073278936556938306506776342458990867450646339313541341467251511851102263380991139463764623736853110954934279293071247654576303343671397399463063890005968982240838748750945651858577254566616904979775667316329436467578680487467912781057807744718410180562048827986584553246956307615398570891514757002383170971999103365547871597394587466923263939077820526971587932553991304977157222279602412222825320551034366018826181036177321576800980484705117525724089359048351479505512207514840884088687127188338940073469335441254551050712617402456739928386134128467356165716433334144460788347006776361820869114922926715083256152109955992092275209611074917612951821065252694540216136106969755074164899427281315987094199476906689849820813721484823541057801291901843131425740365946494209209335567896406596454586761644333551905066817954839767542737979751098232038613860244509278960261631418313696216562206815473957714617797202375800968872489134648808931955474660845105294781506293675855953377026785026771673632992016401248706416503731583728088386161938915986059648632409751724171755997141844760527428638715989083329141121319437845886863613204730888866612574864617076309703443233118392669070288788871850187030792242921460969052034584057122397293900377762209664910380913796020401475493054346986086966673305155457146152623898071527869807750251041918537906154072311990343082216481277191595180231103444165549390513588423136546938085853981746042839121675834629796019781018095747699030906362339523842212132339015350142083039669803841764085719603529977154782724242669334252476299164127320649693835754943874322583868730546460644229451260413189880555995819892326453390398405461467964994863237338515084483645909367610482522467314391856861273557546838121989747964887608528503659495379171946506767894393890042898991589954159316868990561914986562889002023561310638296908925212700012196180202922583035123743072749445879609805746363488668204985084491223806411182719760923628275362240631063609413510051336697993338053052657599194181851461227262592291471366925945518395923456569632466789695213528438123287444665779463285227019145998991673676710711533884660234181228899646462157219785100054518633391580847612147453243936259325883628481469978624710478447083818828731702413349576523965539332179334976417862444383871002962775406587944403276046579821481669212260407703744207577488646067524700296952837437560166564716124379068146217447264507096642373786189155395864393267466336282760195388903862994333111971782267193414850252505362309727324034531923253493030137892086216543455558354404970470636012133066522261753039348656405569224299021762708445362357015469512069042149773303055495951818105657440443176919919472923469217383044388397908497932655268992996096342902791184514104821818365423111961113970527894869065063276080313188855983983032483022809112019199063997861803836583971382665132577779260947954672057726027961704348743492176875971776908463085894255577092894604409467616097824093395549333622257153128251794303826624886366683203978866833156614121027657933646713766258925743279838260100086131473251680867374263519692846530322560238174700636109726648441064922436802260628042661895459519390860972825534899708789062009294774109235779142083734464911094113423222755829793714007303760931427552303148063216570100641510024869289616542375979376334571669898976042561598800594456620177180878039491471222846615747590884947653344648751830287209054949682330521570512582010360184263724588652618573061136411343643550910765175905576113042847822273126638779253121498295608148924748108264424451151153487586376297035800137338261544689762395328412652303762773998994129955903150469458412787035492039058125639467977636732484032067657562605532253362298496082230600473528484300548345560978603740160245199154396238918154626223406504088785222854642659842600404155731428429724892175191904016560775720686281967067235659853491220978893661991224279962635759580546952094960576272319354082535790720030132747743033476399077204162779862977543672959856684505690981826715348213371450871830541454085332609797178783283609139381421634274483252238003208128261276051098863801946721258273304917154889431575794270986740026780245155026986459081521400065865184501649174158247308830332915485347979957199154096355280008021589035617961286995227722228106759531143393528768338844640801638796095784112753709762556215236658505519880319481341337841696502898920921891677207710427287140819580785201849269009660556951445556056112371889936909972009814661995892523789389507906051003658481217807147785424645125476826512949826484553012818934863254787961178769364855735424499535751998459046589297917073614535835985472654547758680844543023980726018742296562848197255318435264022222810732828324597590201753163305591671050616704272198133280473123266177695205395150116598332997446572821095229862135161853500419330221393272182900815088008990909454538623655711206818995254535784218063510562415874730933442137396730141145937858916913957155922887910526352009861147131578213922256813874259374051145711037035952058460754385700158889341898076014742713416358696929467632675529732233095576015993084237199013343608796448238683704013556462872994381789134597048983322929078198531754932044550667448495497640294593066356600044876352222825532526643685867000392408501395888741181429003897212722001576946979144024658110011410055762355242442780302503500076441926224481489085065997942900245099050665047066750376634556135243815324053623572427818566834075900408000256639202210786389673745848166498803683284540218774997959036753638025462883727947171928133816094682698434550530345084759273949625871145448966836849563721070460482974988347837026334514802979703900599732126290409000469297323634027677735712398133762750141891035807057961946108172815173465205072392409268212526555112459059454104108122209130958586465650981959366806822373089913720247691635653272424772651091179353712732171167381628840176209825770790955768663132769619047479194937054540594125351747335637500802669136824835814904660158107038229968287991827035769670784639248232969003044241726045177526898592804705654579811670593999226373878326434415672158513912519176729108242746998591708934923173442077326724569237221603660446999924759935639153354442094228940322052738691492875937986105787341454931608641716018090179462265880682576949335631260681165697609816424723204974473083568606776327398556340079574328700135485245056406029377162988779210072382322823414964705821537052993020786147955137324867236413848032384699699301789699119549417439441988854781373128532266177468149279817202904597718381494203898335497194923641082029182429881238066108431231586944921668944997445436623756189034817386789338741762953551573127445641012916901282620375912673735665579269771709368212199604902766373078123209421933524241196912021791745364707791718408290472256347776379270338435383355629282300055961605819148781618060059915720995876930573607957174380117466178510203015962358550086876559036206114164895396318121869567325577364173895315109277270030795747339214767305997782474033727163655460410993984284828042395785830875989971053702820910970654777644540782015381948592758237492927132392502663751563678707744348273735550508530874688169825136992130224313693257948163714725090954299316548302504846107861253663184205785214219916900711171157626666992793184729376871404749949643083701771335832533842107872477612491195798837576339725620283741359451172838246648386385769901984643273581218061795498929433120943005954384297132455004306101448470448861562622290669150904441674530099373220153145204177668986680114729608333819414442698647334065789369103000907978311832156153700117384995900966222034085065420408984443375933453261875566165553514170870456614179446131277591430734450764940351775980245217577872011595863543089245285945447552993453881646804070397684492172283555611218103523700230494803247754233396984355046889983999746238446708616881641346260736020640826965490673950044076088415165011048671894210624738181089900945678811354450915347968137470891908261654881693384246666043273315030034024600693520404275548093951208600186893199215999205007560103729633698725088004573604530915815206346700346205659275021082786966186396673936843529475257661661891064716706845115726348049086080465517490153534142053688661103879041488531766132752407762555079043191414462175328393405845258020384479884986760505963695226237606459157021902342481991504563159226914636208897891674991288064153392037936464179641759497573647777668584395946806873399923163583471240788784034222110249938095277101857934822101773759497408428370267940429344234459566537010618211341154659772980493440787618797113690098698848458932836722240690955092879889400161758134057802110323015604387384185643812324773679137508704226421860143526379816625554708437063316159039739062844882207394495775473474796928453656711686250541476643095363217316989083819409878019682303215568899468871152786069852526014012303562309937117914599766385376275526445892833996192934851522802522197448952273436303803496995642796836076197961689906741282654901874678557697824065106141130216783331074504964431666402980228490253285587039751783726974394778658796946422481950875419202859108959645515521120253704243194523971823521692905687993260252258066865406044602294992030052772558477179904147353246939198045355147502499890455389998559559375183271971110662387580041362250872930128347510369798606529669158427686538737890541983759221178145702812010322212196273018857501577578622864726923981743237158232027792740327779785647312941490338897858412438915406897347859860244619866485911801202524911291993393100074394588769917268832351215225176779533209559547621414995053044692420904900607085148027996176750921850258743487840131315936336564035776046584818141129338048307450851667528768980301091438283045510416011681013022476881028620892748347769589068317559593969972499800249603835003189543226841775979790445030528070411674392508074268293319601579440722933153179212257752430453334525003175318927581543861363764575317570925422147262446814307703154538122685744735202293605911107873258970022587866056677950742460646102784264006597497011715518508479337493358028968462812669244261097213012321681940671369226243501912620603723372645084416667033306706455469046837385641777595272975088106992089713709949951300016589791957389943608609600114174915072340435296981733462461622461556475819460594676788010654848039693071169412231871745067645603828388470394839580624060565637855775589740423972720441332955777427996462725307560609964293439043346514080693038275371105623746511709519967079264726807207958133810887079539387607544343645757049777362945979402837426587032910032688944202721259449241846787328722440777286280101183505144255681562652282028956756597644999897567931251651898960235229727837002373659095262025162472139100450398983499317315508974655436452202989486801775251172610127979462968559792142099891354061198825727008804390068211195895353611146965695421984621327846020373693767176875869241627382198441415219881827769970962271102011685670980346013949186781971158580902054847961378452114426162320126192887404688272116194725698344226333365499857959481148682475704746367390218570034089734312861770118363450662601616737220317448674552880959578450321827844524101257456459033129525215470792999074964265170082695916627731712695574904779298595554160877513340690486176972275585137274026373924924339726197781140605882982645969576245211045473792832288797291968981850530745407314518900719962191992515282735688630872133224095153749505889230453660700912808152033198157007235988053469047378743551940142844041414444500072061758558064915726177590504170274327496944394724129644172390916572787595761417752446859939925627625037018127468024768744737820697777817553326340373664029794934054960403747480758541849387269870172408236282604269102698283232923813623128264275959066735878627083543780820341733859647187754535385509710316714087586694262802027207170272451079853538794392460681643373720808981988739319877806171476665612505396511005469322456377753923988316617238409050160452358282914214578167765336808868990906076038429870063266546456712167510837226463714833232453450112118769987052388832153706496073478513921804025838946505397415855194207594118673355997145605548110481293587642081115296419633662049204837289067073072138826544561564787959644508301454186280176754488255172940149102641891970419879981586865717117025709621092122368713772744731495609238540323233308736581817372214658298522694022073874367719790543050257419704275927697220446837897577374435042058837735000041311004245563588170375737805327084513825521297336028738313571816701077208558401482360207082713036635036919293323868629098194414034983290504933160409820342546344818395359241148299299988054065690029944674887884498947158506476840912723721772684132136179935424512093287405007588248863069764632223822033216186366079262222894514636352829192868559077821732679743078081097092683065042160784573484816539608280882841657063303092684675191953898620315934334326746980751482864017453944460498755258035765680507967677273755488952792666334073055500580932736559084658703400188706459638065834949630863841771766596948493001510727137085541754272668849981198374505102686963015720940611984695594213396603163524153473019314270117009034246576516987809068402944233995985733448892767278307916336399374359949599460961835309444501779420008640843975523723457578340481249508857375734546339152775553630363217560283794402465187151640363683886670406283234952829088169418169636561807256552033121346527115274741060498189133447823022105426648486741852239217906890620523512909414830257241794759337281793748563771647759307505756273283153416575590828023874758983651956136952750626270896308930086822836652130573067467856056975917143952548954710456109650465682066305291502859941244673817287924818423799845608618198174308585354967004649921697220266265460199769922571678154929225608514849348766908759106551431679398195099838407353477691013245640861734628475317144260878655596784978398368596410416706262378691415162870217180878097182193809534161647237947296706279476563519695450788761386619356451607747891614320086071610685978408533024987182512053277330164672442746888970512346950688237614346187115949422577798897905273255518574098687296369928492877928332892226945916419699424731699894204766217921848063288567222939753783239661507589770959859822943883388585972788624899261724507405553640410426764424540106601659742574672644935527895230851579567043581159723601783367131750615487634747382959023075093416126028190547703128619492311529519765835506814862813881229591980582921504806678553744946212632462764221445751042104157930698841132513902871665854525706078369506780861226386126027772149933240934206942702461004702833513141236021893885325309331951693972308157655224260761316097630590087346962047627508708422744558021031353390975673611925449816803147883418551579637138467574044480209207420429694085757951058867204603732670604317351800707420436785647198614514683231307576098179480931935052039450877964124611911428773772360643547714454966601132541678629788053091596317333235029955587664122110381224343293828954731089934056220584344090786501182877793605899333940530630785916863663899892829603563594575402859747620355387789430607610653200982926349881459317871750949518019374516889221560630176035091505687882634386113379814429360331044231823752289956052708410503787138849174778575999009181222858399214035243560696309955466773104395242092552101039820050588682924623876924293918853685180669970339538062090921058146619094914567173873606566089794509017461031525103265029971986917444782346943171752646621189741694971370526123859519287793347712636820300003283633328976702955374529865739109879012193265089522711320617501027880402405230270099165052544802681846236255520478035020029665986902938841892892210754925951304666486455118411159693143116681677395253187567201800261511199638446544915866349410395042205672429662835605078541961077247124330567665885510808533336689656548690650343311474448334137987518139115650059999965645443515824095630130828023587857158565051769391564399056405737267291573792864813496144081189073796159662374965219304057732573164936930959086326739787751069523734236611307758768886548206335623708515316350776524533089814376896559011877373433391271600295970678000672995991649308520420957849028300979695339644967944464714754183003735222520113519733989429259895442056142374319533790290728984661032204215025791123255283460127576184160951100557609916262932084555655799983971884341207534187252465688692583926870195843926781728973878755209498970312500762646980706771560384317844542487861061155042063682811543660705561955272756104399181762874615476771647579366954126868490803222559204183445527982367982922750417550481503473595763111032397735149334346151008285902031714665056333668367997895365907158169504667868853753450644612846928202813264851859837138341183955867189910987040042505173052428329315409029467990216491633663248724542386702444640704957566097397929418085466851517697490775081237085760043906101416737848077843625951663946506189254782186339708249428045792501737532727304954364451119086903731443903876328659499299152085012168377052285353259519955842021716842202650501555816242745661181428733348490816542535940690007879323869829593124867879748480565996136651200804107113029386138002423543820051841307864583242773037915678679451641799907494346273889805779618440112144556992071239827300823553449225596019666975795672483009823533978001218963364261595931697795788380443035702978767423338918947892313463401072646480893114215990135614374389618510646253491929516555704116662815072250625083890752282076611982738400895925557928048705792277970250258006464060696164026693892941660953336930733106652667068673762279855439474841829668904750781814925000621938480801735288641746745706296524594991091130605298783084268902320006970105282419221033882243439847411380752273605201661645371577041501999742433354277116995202084244631287369839342502178995419242772808969801655508905581206253193095981008628624554536286657746484644268381295013287293951766092924733887127680455768530872540663951606450330277132116046313933855124448765938886074715192875182579516587963629095649201288212792274139788440692225021281159077728025917606340162534029020612879596747004818248876985248720340435572095122877977946087858079364449798628789969862766453621657851850941608019659534720907066213855195929945509525596192769311512943448506964885976324224650797950629822904327646779900582685532551949981515537490022605293089329198504311513500790448966293205542392694382896808023840009127128365741849500901642500250434761017189285725752581913814995530106932771556421995900411729694532585196816252502074848449951416234370706904379295531505927194212275834365786802025641341485669069386097963117132753221877850586539909515717245561774031528157027814324192702878955971466005089954180373220043096084628379978407477471808053545419297541530087060430765090880290038369736193898225741266881327685049007870918542595484627575940275923367533168177875506843908961818917336983995618978784841067835281045281846888082924714154430149242333254060736620934244964848741130058400466773664160600855253581765055690297555160698176483098615605726254069758514737399629255817653458460287727522055100806057980070124619688791847391905865478807311891172892262807148112099284906550303651351516055462648354143939926604950651045038937589491973505114986374373127928057630146012746940106746576372564125964209681929771280746718395154707775713631578806960453636736181917495853712428062593916017583439743749913769208440343287015219836205059372909088452249048520072485162281041808359860989325078634011554193857645932219885812365943839108589116010146763013667428245374961029037228153856581488749915685552024264207190242568865918208746931163152583097049530799713552480506028900124391519970342075602316010657414876371276691010156580685627621269709944721538479586881059094816328391563617753386927154777826449961851010427216818299859850450270117211855676897378940382244747555974307604686630418927118631826540880318272687131011336470526613305835039870130665490021248628975381701047457868958538059517558593152370562274591843988324246280958035822323444526068950836421890944015278283188572876538050823978211626965309616007127407946323690981104144381941131007396479966758198607131733695256656861445890635062932241604085024518788914581965217895469110685780127846242172043656445783159013351678064737094667217501342143021996228292222927702916039255724704288705490773383102159252911495700767866508150066388080402695306133936335973980138807288435571176704507847218313339819239323519302309773151804032200169864999578877184728484025140117572210312192114267142582925191525628999211734132338362855544915933133682403485161745241978810691956198766267460019508291385615516449399499459204206338852608198593825951278192624168252854584608027450400626378351184752320708371357849885983347120851559766125789002838350931762394368753920211776498032796245886376947424986804580157505492573632675000310085349974257175391130421088117078059863635551449202101758594092758834899499381650401213417429158815681924087181916236008858912145334704257263989123386079859094938332484136779508712250406635398073766296095125290010759995265686719390426643885744002478832860695850586560430500267345482846364252622369633462386748545370463949437750582355255484240656780978533678749086601709095527437439760063257085760389024481472324101354881311715052235776005420926402583519837841174432724333024348972686745548499284425578917549561143420815010351932928088302272282405201679726707562124571571021853412084641425122273674705084256883397678218371107258725145093775550953871665971402360363426771175167110376078543452206935798052290260746706531565772785926023275640833591019645377723226452392061492423090249923059509977178352670451651248115601214097975666883619763228542137399885577275924697535960427745273654819986666877530587814947853290661747905526276374828851726650648276900971801133668119613684516749140034645659022965810957632309612749037596130893674502363972389268893198644847829638206323677730525837748312409328814058444397361895144610974338950232295119812140041081610630059165406762040173734800986969222223409116045015814384811488895404565844197947356895706204655693432799938846472096162463645644326614447696001806699184919529760659803544872648342939457727277938550594197808206278888542450422178348811976121681431070578587509665379192704063959428936643993860635104142181749391015858562502871675843259415128360016911768244769654914572126891801758543172747852590009684090475119702157701947110374981855643583609829121159428990264140600748422258755529334753086527599080331454830959338987989075100039721074587120358675627868718025998864510972104802778341245200610847737620934542688472151249297751231128447582030881691078998715996603773063237562833657770646169905463398063195352500030935017886708999097935198066270407141868321537387516671539058592612031484687096466391261852207495810994644614968917378228559552985725011626540072905363596867541300196166030099666440132654218232614987070554613331692353396916628911857210540171430964334350742245817461540423179287991291558616503980240599066704606483719827433862447020776651344309750929357275522413605727290949402093219274867872172296439058111881335515779659427000404402689847518584758137384028805715555145527871811635308635381502067064606361134304549092056857274234817447589504439731086586243315759770222577953470332903831913600466503196242104268674844968872154579606575108591071241060463790766426377975764015853479089473011433055427975479936251073365031274387593740692989438679990187988633753302345643073681458398256348323499915810842513431356853300157403700815452408931093162644575462422610721035991113178645250878370303561638690557956096340396727370977875259361813560263847233154907091307243851676424453785180662545067414177614120601068848580049641640282426053858692315925709450401499029954524896271880646126215693399476429094854597122406191075370253695804953640847115146027275271514323348305362333690774630201275881529962646999535125181098659550355247739484431686979793976881348638740273348752734075865095920733313805229149480386092062534122750814179109689462497341415429424011665259729578950196529582958934632991515435144523536847114080818756159353709020271120168030456567230476354993667287145414932217001227198589465502822932289776884469333852743308376533012326618441529597914079794179241126220817985742393011939927497782891248173878705339315273803832765372898417190179724390782256563450967836068990058705232271029528052468860473233565116580696338808938158612579974645564434947701230799807652460263111833003815657746265738381696533596459111416182143758291160815384451325368833172129075326851249903527757611438223076602419054496421324342187514749585166157729501104692101163859104646371391920955003590983563468019867406581463158099620181087033912763600452015500045697097400348934006865363461926201872219612563357495428050585304122836040045359083964859666824500143685145022010196841314509983536634068449699797691756895755471618457463629173200136725301215097779072804016718158773874809109062202809817240302154569772226750368934812868434442524513830386914055187414372716996190927593071958352960017034460471255752815562625025085317528739268548553346923841380724954574012333483169717296582533000403027381073138618483737594047361962916033027588581277674425650400538532942215549380280873290093086950550591810480455151520805877770277617712684000418460740298601136090922533291079589546454277069840182909509863061547092123679856550828997333163684119996157490844795863675846868773745946611002377040383127851573537310197909891677220473715776497504833462724944105261235953467976000571255185489606261425862989426084792214489047380144379732191411618032707436164265773945165246166036669092086872873307221622479111988391559396495664627303211787333227273706590398965965584085658657020563276441278603932823374999654903755371169151608612285194610209455584872974014716107831280866337566789175982258623104687189151481231166321064535278722992210348754252510589136122240663154038716123007872604263506537018930088937778832727189836206109899867713189211520404956513936615791430038759012474316414495454795031494877738079913935294647912385737806099013822399918374561889404580346632238360549075636035375421327882042825812438158232065087022973874568051580202744180745028851139701075292148733376793940042800902024142412340285393888170074454694593552747427185652643185608241267497015434890468467429729937465367574372014702995538937309821730035453899879248300834899742334141333850503478575514424715453005140703103936621577099122293522449452775357318913391893867714103504221151256159508183709124458536163870735636289945136255263078963572927043108115181280709109367100812605726171896580825594649029870598993179114462915402240509810058803867056325077357546142302263077752487454750668934054562600091863774055407062421265770717773098136429863261877375195715553908091692648651346075845145689644075092306291575243021260476298078831586796245212218067016948913557722931491043524833703933323640531317843576143142037584828813662533885420163218833893131585218549715357433646211577669805847734546645588902166417746044317071117183813784542641657074186281266695215928523797804927154863069942775390411748153544403872921031339678729619093674323190313148262589037983119157838868033421857764766527619473125946656803124910289517658923290792783810596912315566397309585413514821192141739774655682998343013817400353162526913900150089674369970398594001248368474136189555845274904147303895470486060548732969893964013886101729525090483219220882622860002473506620914870372403738349201035207542113653479839679693758270811793574711069538812352469581741094431588930250892625886759440841988552632800551597318600497359907145188982994832167670805426382678202586774430891766853516099366731067248330314099722340463431548198732588056142061162584946058633374080571876076403738530393831223264075064178375892182242668659495956346754851620496364796678587237366595548656269504796635529174474876074864070309549655439306866218582500168648803543673221175907778724024952335178025067066322742610985795774447443249585816419200473964985698901648261002763029154946610404215612185179334623235059943662448630841260752797649988850617978791070669485246222812536350546569717995098510328142120032427221901625133505157331594336949852594760000415311577412079263758277140530798657416042569019845570364755484460156735104328724600767414752988943241518197062650349302356016246922382465960021040733778013852365526569338285149054025614624985506643570047507291611279611060171683907711454758435407726320674909828512523733297678512946879716612771820100649701523703632159369635585850604796425358455223139353758080942159297059780365708673527001854001443573213114468059679972551580458339332631993735191396631852608933118809744668941868524652182572320284159544482686731230887501774166104775830214952458377765804759238398493161924142623522779743357800670478066831650892770653259259642419403556387652552584876277138775060305807647348929014375037547889454079884237325744729728898516665513372724173120049348730908862356689533016838621940922020029601382101605074041472521844216884683653958228167237401022110418715048163820260182042959227962660292161807529293795267141576850506114357127271103793112953491427700957278141333796447721093304265657710402702990556688566906432445138211555108635942496387819168368419283454824426975830413658406756763522382281888224738032675980909192603090991176009527778749123728540090169352779384466318894259931173756448745583684460885916180777563424131426835333965380162024386904213775916408100875642003891125585265137959383384239894966439114932333104106019332918048651628977625452210960905895149870528956988158792087760226095143296044589318937050068298900931467754592174150197063467397010810696371902637825616389340162980401199456546428450479920257650105169022877899570171001030193489062544606617177136997208156444914204970574455763635431609091998567310713034344003311402382190171777097381166844403157617916030757978097821093129606028865354626424963400520719424872254588217046527323501521592675281961374494274949855438554797309481855579620840783785720121264228319323655286455003874785390865034601811135748751538864586837100054546961839393755358065886056671745293865489302346423241455268623397528741375206873067560992581254444233096957771141259910593621064601378549695847343598304638348102094030982760981260023937508102317615200636089746616662970153347172609829599811661301496609607732289807979354394495581383661488878560572238060812736218213778806358019149241931280765673618233636583573634040605500128912242542665973854361151729989092096351795025677658915251194878518546732013557966127159450247451380471235099283544678529261781827443761926049402120374278171923705979728850518563174316308308298776182692150495587047953040527450765808252677516417770576179268483115927244021326582944024120664489753125114446697066593631658627632367350131180528289781034291849849469553657945049886211445353776808359436567883205936650582428375589639921117474427939871977233022254423447095807427885454389503844396111862095218398210363871540530358903803766286029615298554379251862146401096744044417361126033894307952345417607270618503156874109064095337591786103512988516441218614534022358289432777580569697194664782103685809111719104847117483387135162096873782166759875382061600166579727688275051250051483532055671571939597557604517929111437434218202940182376030669671661719711578204285682995870207765952430583616294510770152765226728525897184711634216604665855447013783812049386903379620513633161835637532569829150935001268548448505943280590171427395806299163863245108984520027349866828816560369121197422473212093908666665321003499447995534460584522634459905221703234151382687507211946233332512730265306993887026606743653201921810745084280099947691901570386267930133889989991354337365656087442273576723079874744247943165115962152832767683381757157710576595379111806024280688769058607216071680645051249720093953673049543352366736585711805306965174795541262056852271587412774387600099951107905457498985755055759921300223433827569574582804297116080561033336295112412672711861996443476267393676649259312312298642344498741465120400077326434170744497896047026934875705814595504375924360092490397358160742067527364976286470447200797858363314608245801364269175638792757701328292681456762472767169592117888818939473405197093887592997572729540625397254039242338645081182339307464131848198267037923957223604487209666907541557250375092574921693495861586850940952846907597382350402076659959087359287980575936304270098778350119060443083444656896619838200737044763098649925031934997748403120637570343928049559451837650759376799427829072318208463509747940058539568326217358122264368978332571134887015567830768747174903083785834095070288464553540070813930377872113196710373090987503284165269854054567682943352098633520713305072764033552112887014808737679924759837979459201299399504570095359341598126405378422825992690505378454161319701159807564640700825545196474738263524894273020550071966153361890293723446640356482821811402599057831005637214462305348758738753478152167324775346340242968599433713421407386777171708052510244164376893273583744955641083301715808346768205902680431376479607943095457024148166452418625775405682761819280670477081927322416207130347928977979847452678908206468600493559925787345166208343064398724700024256728368288648152192279928879093871638982935511143530907305458117575246228895909440470470264474909620819510346156075055438649323147947233220505821051690109797712344096217170135206935491521171583741811405151321740101422979745500133875213510952391970420937147327175481708654250973581497024117027132493683021406588626317062250505632175955100362202326732754227616041934743138759301349096993963905913107487064299693001036655329506767561369144634984666070889090582258107720310536608500365629779778426251145441675394705727792410986986745439477430234224972668012863169689083416737034636460616840425795253180559779158840420703968713683653689577421618846489030624248820641315013285915838577404472720645436890781260363706919187573807192341544622400477816409119593830820452958048259593861026063880302209542057070756987380474290201749024394996128691409800652928574445535377124113073153869998001168957919105584520250687570076926915151490203024193489566560936083021195191824718490098923989364036881755517152003132771217667706679787127929935286008836601906779664051005752326750546052144998620186609901995613554817541838604513033620757347735368423271251354701494544737078580569848162425445898657227492540761009271418792131935698706004665047915478962749904451226968948838802733605176645262939191451541830059111390934458543834026365486708459674054299726240109659005654824974009829531851077895778890564461151491822739172957549191223679632448491362283801782362715499860872757000312022982136255886336096236024315396309003712888590410490529418356307595954680153331030253806150320731201057502924750331205034886678723757932464799665796249445971059169430956128296708184458348903785700845961288021109355616274990288915344349900169794139376500117408593774749185599722301765692765288733282207654361214570586827854264966886060297321789707532811410569318616380129645015763681094909293805123703104649512365003404287177974366169916798832587423018612884574616876825621507975293736022675297504078554567857832617031361277740786425651909716227995824410512073728315274569668953185669328139545670435840652593816418771878370243930908149452074923776176315957208694776956017142192904961154695428255455672143631415186952782797719820230860604979294355072633445033694769796371834933579116463714258776677980837286893269062097384711633345337078131686794691817418765390939144709733427734533083934519039085893327743774942240065175932136635298864962282766708270382188850345769535768097674633997183899193951431324322890963574375391258206380776673121866904513492149974930968385073854759841629900300652805356228944642190741085755822002079002302208503661495973747793289400950649692451592281633128640182763215011685405369238710494773141093654530391391585154896771042985092294486157624544133430676633936266722222133306726090088537580535364784985896656183134790150693338254151057029311549166475653255664029995439148021893066576758690580186066206224095376042236382161761044120436379299224467606077050617922767528001946879842800554052607508027652821901165051427569535523970083968190542005970265280185486167807715785408649460814975991345393507310982435764612640340717037097031790929318832473127315320565708667039094084280251866343495608878029943170238726539024009613133953944731422196707615593005857148897299191903374826028403027879088710775641264840096850862454808327612032764432738887039806803171048992918044264770260847324901686159932778767193385323991742699889117751829606025267274978291248792487504603711692006675458324365144741981902256629146920726946160313249324040377190410377825513619584512582246930127413062092761117223983960745186758229873318431243391871215415550582515045187126334169354479631076912265822669658299758187360084602713093418556068002882962416990427550835892309096970771400862137684023621892362880901030124816331429820263452560829069142969136752978046537715288750348150085851501218206764083947127162049798607626059770040495885498879103314201829351763455178018328319957390855725187216162770426775746652560486270729443503639156768621911528361443172686944165580165298064664106071863117032118011323170981035907839285412468063694454258362260021193928632035022834360093019548991562462639195455773610905968860817964039972890274112294085657718282040428217888882618244100569950794385113303097876039182171402424727716474283192658677658549469515365052217876473650954325369351259267939473713885076501358400478942062812932553239099809144478825801054779432037786189334960949630337458617313979958257233479207826574591512775188292059637967541682986774493845932949432879299420056194577807045187476674837483145901946328420565325812297758515509458970877494494837237391041684234283671684234311149544873370098466812109126592892481978261076140587556534862390756723038901378338699554538351540631474963115482584100124648436526687299003707040240659729278763359446493003264940004280852823710199385145238751693194646728995559150536428775115258671887538515042705642055157925412928148068515744188151649054426488788063806962982763405324924785786710447905845600725630545006375831028700304636041693917905632842996652499443781535752689782162441280968639527391425099857136546873365810862302948364884418963082122633799580108423872453388464627520399602231726685320550382850563472501351050923809355790098324142948722214094565916861594797006277657586396495846046482077519470118495634039434095353295873297304298453601074861053713339810079102292823056287324097912890357425302718587423156614637275292859318987253332904438961786192498488361277660503707734124675908157723199006403182684734128915320850707989277602498489459456799165138702929042778942474432609687952234317418640410408137318738085138885970183534099499002628346919009231713484504138884639399184451864459834364457153438642198664640942888776745559871995365058542187166979965916100273481306088862427617490732258216658892967255154325800633788687602152634108129415741096321859647514045783729585818901169441556027593340282422380233531446839412798576805198215193741580510673931879045237103496454780983139375610579776047265860435420666632264834010597231133530976583238319191522453288969920450912596291138924964322683183759601025645434920104348887691446930267666010818844950228686783854988128266307791959909278232434363844119847271636045511796526756533627022067203449032967130346180041689437874402771734616281339462757254538226245748029720253883927385032626193179094811028663700038704779410839048909206865104801946534459120306062256132848454657350596670001185178506357036057723677194269372603346693167629167814200834326726477149078456719558722584660129408522243372870101321021603139780140090592025100668893751103540424345531948973816022301835464665436967422125318849634025754678700952876365911957677472433382195041221781996579786992143218640735657446988710850249615418901831401283054371809721555791769080064494476922140982094953559619876027886922196145561436062015626207968685521958978769219524388808208132461717215184879555355374782822401682218537923486675960545707008532601461206804413017782406162911725585785446367990001716303435214195731279193956848957469694130704932174613794907835738135821374025442974550056186556234626547125996088692847962532229251909299046575311510469314328791013104504811275737332012437892567579619933479430730263953276423876775909264405104724714709808701386865380994725776806739083765641861621420037825277292722581030879110786895462924084769908716052282569709043174918908899826165748644625190555930222454657345905577997216333901135224361715862050171057226558896251404732856747976515664663794797664501808947077655869974452332779037679201198263558102402330021185854307421277812159064078565786180839634488144134244626379342447713259076244320695597330277914523493313065567027994067891059750703904227730136179175351923688677626792287942091225405228452853948886617299907725773347156249142650936619796807798905751366304176045320206433714676801294434883618673378590412025550225731739141491576830086678375489536647381126034583958169488582268537496145293165957727910824578161235347429794539548166983581077432076507003053393091210310014136633665365298373670816280156696397987336966393137416945072142456223161487423475989630002176761042416234220789308740040871916225096671229255940127980420041682632110778453866735799733135135677878005606410119439374721989198439552721386629095971959428773907687400741521465496780795809867312001744191605041546356844898820127997974157848914464260625989990210977767448057831855766910149524734461889545222124803110105721703676711788743037440795219457533601731150403949538422990542535315838334316655362629654905836096764822319106732131483423577302747059402765542117396542198358450333173896026833162935738115509227751530240563826830052928529617838825332696393789666557671216637344545474302221186146360145682858341296190055186046331845586871188827989894038854267598032639204411483399614544685787906057092307551501893140127099399801595518601051065904032621050168004222723177426196211725195073586174074873062095199634073996019532995748682731377593463919749835402677923977058677326329008827996447909591601112121931610861982180007565796532621036115706778894476018444014350509882378341995693105013116419462072628447856431473619203149005785648975316506905253211520898026441322828624693534056237605246552412639229922116438628056673686367727732998026135956556232152377942988095589308000816080716782620630858717468768300954223186406872216073303618834322270529511872009626478224441608419887937452692324820775162281563880616996925840293009836588877887743000205875549398069063034530891206937603452954473262326346750377001033851867725431022407947551648193335392173840129475459162689551431345673318516551122836555553866004296138286273752281224041502323325085058120915889931889151144199503167960921331846077259831604760996015916008341921817447343655380962158682665550216657679730098779229631448039585278906350376419608918883870143798069632803816589184956586290796882655905052830754554624161057616526777350344625642921522986901625714664268894463830664052211470175009312909922334293095635621442305059153556116367130492352504607745717104181715088817841127950933228859687439274238549868523088621456847695186401812611943678077913295175320826820486643694116962466211606684927708481075267008270276228117675240495472605459457164493420602491935460132055453332727076144493987380300636768654418533811560881944952015307083708000758385641147675765825359482910973231931731636931939731796826400690529137421280638466905559894073197371110036213348010588543198157730321521295003619255281980886930526517165209915921453385753536431908514096640854415102278555833941703314534342707783744576212849775242102829922694617447110652983103833478732041951947307800293585046983329164163241265814750949377226719816127153573552230871070636723501922050518217486500821003025457765000069908840023514321438342533501864019762981453262652671668660493604166944334610589966676431141567390234846634851083046359908049089889999495773226002688727669836651915486941975827736698194317980109531909454999822780599547011334641074824395811287990480139707026462481378185221455780254713804003909649401729297975576225516290481239441343719323841635768470695559833008478686357690098036892774954578881086745524116922049844860620908890657340772708260482847650003781269472000117653007829392641318206211203363222098093417617221752922410162680605702354038100452003702065946478503804636784587793105723281048537889978448927332881955007769882055005502557052279791735043883160871007855508549910768437169254110849257795993975189956844018454048502682774868112446118836154831959095081094940362829383951461494073047532488751304586733869863537304532642251614293053248851818533685949130776317616129167688467382103231838328805535957660033965683904956061973825929761584503778315757054141717230792060717759308791434820898747128296894773655836210582889120914040603743454531488363099496332292811514779606972520381854941230907879122507641125515893964923884117948889841136398627250940874329787909646517208571295042962320797426960889311132947553282401996694448394612824943374998178187632270113599441808687428680154267309576838956119673760722859788353288552076681976766532283391709440653881004773247354884151454316687988945368247181104466316163729747990426225898879046228964474495936510199914159211547137633339384711854066739203520777479692643419279613349122523406309453480971327569384558348768549258700677079534788510670269872268293358221049811783904808099519095296222302131506146406737565326792231920976703104125303389329250030931643050785146858252032119674162253599716776043857947081645260523707090081135593868042149628542582501289890458556964181636654709912790099254740657193985562017783293779189287626363299115333257767498500843971206650999252318528820414099409399293989767592501559498981815790267179161560871760646376706294446833092292004312870679197024068484804936037904156618720944768359842545741432931669375319421531791749558692048809258749722809709174566342918567552381525557447259579765769943829680830077357430525412143807330434952531199357817696363814378651040202762623318713831999632066421095342817789961374566337128251801449152531907721651894309334891677965413572848732554560831927953732719591933558156801088764102620179767809154603221200558600971453787588827616641566498427456992917644326583144838238259538612387816576329898980945906736966644395061316186612141477978821284261786018869890947245012668728028698579882003789429640017108056169987603873003550679153152453086688570154585100442696371170413238370509261544964381701780706495383354528155329098980225852377697198324380136958118902540259959513749978993204170234456200811340218566822117503614276544590664423629120013338626377470633231440715600673000330801801280435298442931631815871549907804760168103829859249923803550572975841599200553477858020886633914746526442633099610844008339290547917763827992449740870409499018491548167958105670056040611682643664003678081798263750088283510926473474304710366275490529570457480815549558420541655768812224064254435006103461528981545208486989303764871601781644567271670970798115982292272282570885084336922109354962273194310970683378610304275287485275127313612802671133081347006474900712470546446264336466480150581542719169252315422206436544463346970021964843372576045715443666722930075838445752564494215561400924060718180821087692391091969453534927333363714324957266663288001013672666249524279055856563760188908242492537116726350473563164907133170695787462592261991174206038870432775002261359778714459210811162682560679718085915051329788904269857807392831952433365647086404553943713099698072904046344693375809289891537800783485886890989492018289532185521905409121360795371821503472441217626877698239243516632364914124153980347088749050054349782844992256688760388178717269889864714383303267273784174758094760727931579757747771319548784114410734396225707231449082355394809832621512212379319954715827277410039854235010030664843456804821878607852803067893756725095424984222693483229240273626320798982443724575740665915526548417538192474676722182877550027518664980741046205502318586093211297631532681347758055667755795148165295329569461437753862683191331995604261915552702144708542666189630161856881520785765342261009191006971221373520777597525309615716789479584850820134214445893687068957115817083808619883330443527254602289186238135518923990053838393866022666944702946669404788796373740621550715441556661655406611828522418744014484671468833591134839161068835398566855586244424977362512363166705800203236370563373687926275589878539946465780371300826229525090234070899913233288188531785170275921481933045270343940979003653146139597789955426894859817471324842525404026396056656505863016357519469303200112553872816882355361231117931532193319255716742504821873301059361442151589536477849435311359939655817977330508081599360055769752457106662395598484894604906312058192867705185878946887853244817770126894044130549312397469356269242877515078135665255340648383850568609538702859252922709759185588411565446210308973347603991286619017553529415602201685625685308496306381459014340018440101180029142035808525011389954123377646764538232061312644117066173757842978232299364006978646879300715493145132485670681374959301633071889339389429433836625756860149591527244245683705093974046607919182411800054580279371170819380529936484497956183097198683889754753947382015930771425567574958017216199625254598164249132895528446115465325698803346291313286844156634344160207774561012198725725618886197878479641318218627166302345464901151482319053548049306754291575694436821260118878897735931680337095657986717262572902121155936359088962676629308636839804765192229214593802446030347391393894289540867624868396764081105642570027699298448745006766078713817238225501277352872841528456634303276483073121105465706401375475475522845116032303172329609263642453766302135895487273183019339532523857865469010606282790490509896916401502765322066947115588765755559455286604316558119158197444071813911252686054770320684930605819509973834188130394570416972222692440990567805564681372635929420985867472730162773197882591158837892345707852064361869117595026087526454078148100580639894949510711079467054765515033042042416403730894167833174554989170060150356393982641982339770387895807045874468357904952180743668791358152317473147206982210170758821917479395487669685829456742617626868948147903118965357307642198607216892591636665991176955442223068653190310249937476959757138909219971779861528488956800255415762005308811985628115822289125632936198464409267502565382104766231445087404449949124422616030881454861258281273012505273958345591470127157935906291884107199141474187049241610085780050855391342142026804325700947338273667362511853830339869683319253896945054863270146634233887045118669013411366175123126020988067083272866474101429114241819619662471966040002154763598090868071244666842509122137956190248967604880370989351069887233859818147189908784704050620551915044970201386685495280563677694241412222661213878431919671337831021551360821912023197797579916890361728676668801528047216312738295651780045595275439828110428166229882758927905124355050182929484305612714728335388360962943776461499950221856582552988208978554969438947625864504946196037713364355752467004413431422200741329444624839503721516137487326213081922019886931823772366123714438820239960463630207082423486228815906800973137139247401328404985616305507448614843166202359467970585006321047360315547036653904876431707390989336667035514183258472299561766439600668448917144607491859387168496901446122183927113789181985679747668305740125625333661806176286970132455682944347840673947702553174124105117942462249516269972036080123097868822536110408272746524619375900273996835958628943135291264974149719649112779891896074094488805327276803942240554815176839122407645682015754614587970247829602652851112026837227852433239137846264293149772354406666507784706693718410050087099253423550806812552080052471732728844514430007815792878220706646589964168123610064886770134041841564117319767179166893323068898545832948349914144472667990904497742279669069441388039387252554916011305537624808444579579855836785218722978593856873387847173117966966117465797029482750677094623012166192679785713544471391307805283138983563160520206451198350015432656590500754765317326321809689365506923759582818201431537262226584041550995262552960353259368023278667213794382753242388706438867109302947196691441956215610660324894534577407288149948819729498964429540575717788462062886414058926805886652120064812538165249307083778954825916550588534750067545230292141930941772580745049112387998980467800800508752839158516256371342037166943352422795900917930520884454023033629202052071870769051448959824483763129647624082089425882046250169162453203093986444439854753052183439180527288873692656136164273493990161365295499538099584253042385968830125578208384639727506793857775200476764759824234654569481506118033462205435244960979052892077214096571511320307936134289335080672972401077604962504637419795924796968850088895527736835770649703059388735184034823484992045732414985162516232589405168208246707431560898016627927671222286133864619409052534927626305674666395108717396369886183352410986336556371468132299727852244632123620344158974832680381228960239152400518528696624685878431542974439731308859665642880440717881590712835768860583802552576954387956567178791441463172370953663401203557658904305635863849346619848764348324817948724689280871604775532521137886187021483594069213447784073429017570241628866657810293966401006993813434035848625280860000005963528653510058912268659487818060172761258030661011968516337594635228238827512327605081707073086237350431800079002869286930752316976876636901694405090289212740481158775066965161553421892820275435548440513218748898685221879010700817956499061261906082849159861639302982809681571761928185087577968250166860918515850324645549763423888079652463150366127851194027416454536860339038905025354841704738122537606703395691684238234681423427284777949687919159844166789134745922816366557807395556955977607409356808355358362433827810758094034680470580206502793343514972566224841413603275717119891113341991428854022974560505102226230457046142849974084896880527840044018219242900594839944157563586248727986683297383869026989373317100836668367951877608337324788799172955130320311949928725999219604448779300127246618630613778619620717838711089995386028357247648071879816220344939749258483336723871378135023170007941819418236842965866758456372912719383645374186359306885227254259105097594798117778680756083091613279441689731040010059356889234338362807956140126853857297667393697888388124345761839667777851699133957415760280920735224844008104569510192885986318375687379759456979249049336289957213663765636642573472763275150496759362128310397766909793131910913625241079186790534271130388388298928409323625701034484117389782768074617077480751716691529850407679689070723384311757598072295515483822399398369732002983326926019491566999078164289346646069937133620134197636821067308739542794608045365606770554989752844390645678428859518200654969630813074158513542643512235839257767817994983876309363703445939078986232777203514880052587031652918869681155646661081385777476444685928542874407951974243532977367179672195134063610969494437989400617822459524950477733677223239751219863715216947043550233829105092876148432182770554272179796112849912742645667869985020277515729873884924926923578579212902503965463608135943233059441898485977946710840796891713135337787985304342205160997982598315276211281901810492270558553012810788524789001318710822474439186314292170571226089739095271736149046944314194098294566212036137979219081634921006204563508876958265305900066480368340624414616454636864470102601571062814121673703820724208804802066118783709430911930885224441710081604604175543700346404532523638811302090003321621407216122480448890981308306579322287781352665557759778039067781428126461745487910020382152809022207153434975367095968415335645491691252763556504458042279858644091421238607650010225168697377218815063745719679786624794961525181027690002242516821228323979823270442580615328663789356858759971664029627988640143089059569390692697787689637764797471444051199686079038604745389875133205318657368231645657481874645772048954402372430590319440397225859136583304707383068391398574852041046992751625015914119197872810288487561510820730531904661550349053218321968136962776688884531469881304769538611560510689202019039085897225462258089004955997314622037276785564516403768302875339166720391691158139437450996470685459311803654399949579400822832618717039820661475570320077924355438182541880884477886327435110790621293175311726725733048013442629919453465089214413866317076012408807867354757777723918363272019385959757361339316625252627229255037415353237237341834357771913910942005331894386588843293401904714267400554493694504366193391049492554333489497961650600332186078239436561473444203770944782121186868513146455150412261496451262241949954740761338056279896462749608241548012866883520499465594662888957453428701127948952458480067150516945930913044109065099106593982781883091163692360935420647144640667416798480441674125270864428886821039507248449621292483533469036474497703500900272360631810558077484875682350462035276821317541916638387918849664171676818390957032890855408247716527041451474331413794321771874647054609746378984046484655876937479978191972144002875837237493701384395510075868622164853377267814579623415531626607382743888171618531276321065829230395843681302242946119252175465825834303199643602441056590713626635082225497881177940389721088619249060347097616372990640647669269621814529576810207002294766321759091335361935233632506100457474338615458067573599249492838101794550667339563326043955540636076556801205706442942673112923198737135467946461925206759628042846352718069641567935030035619284853585819911808529245164232865389419844464007998309303962669797454119356025581675783920694600611442638910425464465239692113935673418768327000473983886134497549904626550139325050220146358536877032786802056301085285431301920220240487666156850611711625373641380896758097534467757637064741938640832386467975443233180250239117177838286621008822713534049367613007677553732452174864039500525925531565962799996756874910826050450292702629169091931884292561425312914814461957601846780219872468506417111477175387039175819687585022419811702598771733514761469250449346862900569286556563053603212288140428591688117674536845479842269039043737652209840499367732761464655250488470778193120183726582395826801645836455427753262488129332342361764097369969759961017247367355614870529815941020548052788010349172197696426222458131945927091674131756922275586474425724041588569226162496182007749474706725902928348738651144774912021269681945198229231169417790852009881286664726282216995755619411393834152068966368908526137046600067016222985158767945284412087462097690692319048345997244378941503780604565592258149214191446669946795563537402897451981903517385963945013635748510201496886045136335209335096071218775457186213218329815011889943869720596603090322199262897946719599631147259818064802282732629356471204071752859696319700570937765493656704938986486317645599657784900129948778205891623902535820050986830629991392618758741525986317293103006994909116391407980007293173642678775214854129875730290234721418982242681440855418136254611018359332237896743495330444167911061153021669940748859467001573206162069577114811360074938390768648223222563702523793737818604270421753037382124570315599548077804781554344404161558830199255254630314042303516042350116871875732188873223495091050342245275674487681495213543852430119029094294409786184081814043714167392826735313384493075888602932153761865840290993938014362705062023712706377119209329637991072614932521120882162872986178153313201109080656841094255657820435630426440800626305458211139609322767611284465449296734024717059354190125432322409164880013936741994723610789676398071262389762646906256291131415632735202654315677695514154638051557783716323824334075562060541657855949721416174833715190444472629007960977119537459126896355562188899060605222292791944742748230483049671562609968222644024810350099324663401068925678024949599955744572147308055366045062664655528409577990460067832541194442400047919456244376676456312729478234325295647900073219883422371210698645918483625630407011051216838285177645762049466592900856853434375767658812343974831591694333845586458177024713661173041484746006195911846691148114509904263898482055746062386160179367144558056121220795102644739434820510468262074996008668516327599670236855919431074020665917224213869185107483044889470499200120356550780237884501455851147144228669296901504147134371053377388149387106000268830157864173129862819197819288666283363766376217646564291945240607834304414851823304671896466854284469963712675574320333236640495743457852891779113432865248989928772150279708573511277874149044990678796174775623234668455041550926554611411313268739312403077873411091583054280685894048338716056895140923572334655187053674766271252187851118982607779827010447211896080597880513440482517625247053536817137473133927920649498378865032487116534598291157395189801001038395183249458754693761320071993727721771891790061623629194157176613062221307647297919239203227885763440322764179662584403608054343513430397853204859500011147328913246194754222898430481660786327788569259451951700319503140580999436809081234947478598814537227626981870276434663983082949654482390675306670932760162027047103079999626446732014819772569296742931914095097269312635849315265848313605463924898057441161544442046909285180830577436234570341522528979721908909537568452246884115103698027651660328911739769062822355265964063159408871310376409559656380053176133510859217387549552370237830085243228306709955674484649221906554190724883507549031802761317979326171226295183251266515366424698989876678529879425903498665863857084133570807823775168382087211673269914485960444494305065106206309565803029740734195165344011225708168491268279385980709597199737646694204443670473538985143553813079899163957641366925231814143766092751083593135943621127761194974181986843399377834312368662157729645140736811811065757124594685496904501435520468037412952946652747762069986970053733696779672030837809239386109970598713581106459013283518764785093634609819072143697965321715463079115986904977446749163499972350982933344834553889260277080536546241783051639837983860480625113359759715780867116131893826162192836665068285853482683168446728915924098325373463955634813881502768317166556384677351085803073096528181579009051342963939115804796274369798152476519894600966390126386340030364539971324934200955103010096994487237165430058895442531133408497104701976625250493888182611644501995665954726661373425680184205330570359790716777113648147827187022146075315332284186249367853413312172861484322115363668790627921324843186233501749190858881145268816644028758667291491966567408686298263465561008239450645128160218807605740267318458135004782725349144042040362219936421056936072921811530686031470598649631034539855700795267711507767284624896279223221188699380227141231116755616070479171006324367647167883467048541887822160604813811453363519533558519527712435536678654076647351070332155618962772032714330943981852698417321896216160809198434570170494656381428888836366125508278004978056101119706655831330043878933374931068062055095936047294869536543964008982650021458081192175082814333293933296160351518855707768684237002627084581196037274320207277543499965914711033230854233479962190655418449535260051529551987119047983601951277661350350445404295705698640755345695070735572426384194514447015050392999419941265180198344348527992235195027256539375486199959912917967690246438644664168797977095107552124182535665054130902844924727730631009978797867877061626395784736013079715337074414027228264726719895446292232536380846176072617297108824954477827243300729366875978194136590365559933692120234987284026132982242812087534483895854041928225373665051305103213792345707884680879533582039580898515859312605705853825613836433739957820223085654038503029172952849906201150888170884571337774818047109101942202890800295405621214188573990232126975470136993629923712506600023940932845367831985790219251734382536386225219017219635067105492018279628183015365256730874007426565291018438185692194368790862453261551067794567332591385476687981301764396918554787806809609456683776670121064911662633330090479060717101328717497803200431164295970347356369517314690340666945280627344510529209474355158159769217525124434347156152672052667605561774266310292832394656139147075224983419552323737953493679716330800905878752686497234109240415985313512841863436856761475048520404159083236176207551161372056234688786137667546517831395084925659609348942304477285646630006846885049251844338571689621593881434828523227338099109201182880726401947946237725595941565733877484862452319436758945792824900491361178274463347316622848589731707769800216216345481190106427534093599811148336733911219650153263072336825719456409263795841402984167261237084892317882838797640330931229220060524402330504519844645146360315037324344591612611160655469068033204513677753709808279109442264882519328331251179390552263429636940387623518353695111895920460011338234539847675338916230097191413846387231252917616209217376078467699909941095929500959518076870266836334736853423297500767754581386396470440995389228074708958870166726704201363251290629319723745578559538455975069077816503583209932640738261953047884024779335791850164522737762108837205850365838276053175501642634835413406355236748758072093577599627436967248706006782298932018586807296306037949007647005664902997736264473637475335511441554180444392496594795120925138986405872854845231182413974419495387119720205202072852428025358868371772460940770036867007863070881045746509493279759619594110619409146494275603586168069836894122282108202912560223004682888241907368163664509880302476944896976322713305012090166379615035012312984295333700604085291714241978314422485741618177327993825679497429506594006672144710933191163115182317311221479707185991604149010296478724462708604191425804325204854991015174413965556107519245906853955971918609863841885001627893557461665679644085067032325275286433091076813796640449138819879723978308249611620608064645012597588582474653398968610438041115142338791399284259062273802977192202869257357824502446746931640425468962656257379931190696690928572264225431733349636048212955441879926392091125577473706480263895517259297542693153227238815131337465810731900368687270970590229772201767592820945469519826641556274335159803344983834302202480660370902865745344188178766535765960126610661335122101343240469119073714411742256234360086016754667856884657335724650048836548632777375293538618073833316286773234880397087052583460945978229322972843420707412792530514706151392101898389655953253066961643853184992740401953098850367231929690241516038865951132222270291286477703942738193014069354695216330677380580300045508770442357404545589734997043245536198748667521861090352898610230269436625614084292015722945400525140685733503799755490119760333885154686737330591181999819598892013304814382818866725202324193238581644723207925245452862294839514357533762382565252865662674673743526467986159166818455767427727605043285998873973892008218170307767283034125725152259973628155692174467357199207025241102976154651526438055332263353525328654741800848254730820537404411663102365000467172901069875420641835656414951553706107771616234840816573439921795448496733194823151096275630489234192602629790781132669332634330840805494747387252420216472858075707466877208517280118518611404063544095223673294370495864812472473211034050588818953842712012920092707968148482175463318354122568965022802196763614000906756262987317843678003893415584488794995930446976484927285323980530966754495368557409891693927321764488741012208010359983070488855627388695415953692719562448100610642948680583589885880187838888421548503606403103231579948024569100423349454719151016066778573185363709202809087663229543372817181508606104840868626070323306095703162228461187902117142743020217661977305910763733653552851540066685505113667357043784314711175376404644412539659644837002789550826923179199376448791274759619207396477798096024828442634373440037218613020575745926422975641417039744166110027418696825631393019267427763101500944362838383616509424398659882286000101825952949603934326204161600061894743684630857258328804100520213406776942923380441560436430952976025169849742977824023314766076638931304924006708692885153985986894358275613947503164703098702422418030130823638132007977574001116833650634106456730023172594747297980567701472622676247229186247709673139122974358914761931990605787980950799878913746124260520942503129078964646775078842085413095843182182571788606843729268234556900807439308782879098128579473489585930604274859611820182192295901459883580283266592536543969159513408111301346540450017504641566880836918343619548645430336810274509175437408829024933236941688594383609142073944539815031878881829265257112040833847765350401377622767217595262384243080422023563007544714734416093565995281101504097459254636708732354308856409516580040559835239576686995289842172684870078446501675294986483119462548284690881017812751669445990274411861794394907558365765515557857974888127987815356867099615957322785806479336754250017160613728541458892652383911334875916990677372645218077008423082362220459070173398033695952747816233294227306335490268562133887797089645319164383427147485870436460232857357306464264215559354391562087920163768787083331057296365930566366643907596236777031800113580478613676685300078278747167947051385256563769399645114348766300187472789689391136984905945068756317966024640974419149900363349549949736978517513063054298833153489540639997016915775339540682081200091319591023191067285847063390057031822628883401992353426801686547946941327547850058157406065350266646687575658219524233315529146611764058592927920310026009476131190521843714849799541736012063754439202604790941993816274868659979877331071862535926406775619851236046557592430882295137627591237132196144051735821940755225401616100698045779226492452579121808459109723313866501845448528998594734422070658140106700787927887564122889173323640109711673670492241443353250143617749362871482308612831621386276624205105918957695612710617980211681076419539769796932917677023743629471970327055606298508029142900340827764363446004337855698579150538543033551832236985116104534562063868291200089161135800288273998973276650606354454586439444811735594984021055791030584645691337031226534747118433934983866314209985433410463820640072728946193325202786214286807305608967379389864622270212484953350589787810819272490477222270577494840796212630738501548090630779539772944215359484903965697776382165705661586023508076575943391804463529698776106553198221967217651362442877424382589818467881207732406880521623573435390335947766233741127246689925843866353076011517496667147672249940317661441948229386546270946582378363316088521671425320563181880640604075545591932731679590171779632472678592331934588425208139833639991878388391806809444762673017062505061608785244161443191051988615567691341478854758440465736153041701033610747235930440077766850301867327002429940495513079615310968492132845163907798586764307966978607119877077609433896014968821691511374835518397056350451914460784150121516602699804338321433063111207443500275306000402689251479080408618237589617210562774751540462682359032406741836792899369874569254884778886558108583169163132463795768165532803324423981553362863134411398254714097436210533585394396022786284833192997926790801254050703153041759865681254063557373785939596861935613539483339954518331772181955664534773409889595603290613367753196147360960055336215255277959193630620512132857844760687587419027495356722836169121539315528947496067603557243280562759238137026879648709496978494944316891478039229592669545357697988526603289962884061380875179188413865898603064747332548349757089137415288847433544518801870581306309863369013625673980780693843174521173173548832001113731220561087139564865680557870255793952439274913071350973340045152464207373947386761974603250075314125187513508249273007339551406995538163729165202218934583293375100664766900672522835397178058165900335256094249566139025112838404084360453966792435517980168129442383410161294172698666937136987140106754440161955885871572570093879745518410451111468146345497128915158034395644595165714298504055586946165978041475310087871747048941484932100698723409423321704564870518713427294300387273835377049165891992482346239007402430875296373010501644091831971482391973924755604297459150695719237626916411595954716446221080258411564623528242850153233070002692276752444566345459805672584255797187677050773277136405139079015604057001539572903409616663236177666209136333067935899744215353350509165617709881505248677032879433180118175270178463488824244600046201090407460444356088113121762475516881611357324335429410313433497286183588445770904469675357839656450385180970777991797148301110045761993060931528188975001432737021849937085846954845643130974463986418861220826580795299076089221447063837112053535552181442293003100134992259976937934939010317373913122559543835802406138339818438683928207280334224561577882671236287876480741223031466286471191062665912265293949313481640342442275831287409254039769606376503519614076362029569825009379795908204600848477300118312426996662017588450880283139793314589435955466610213827768656431517421892046050547085705924851566246264682814371004482846759849234095106571041327067776569589812687448380562151347746581073086075967822274379526690449196216074558431678679586649267191016255281164663888313779690239328035727526908122390914490018918121054841988225989700766066145605768144160876250914515786284364646192153533674295696035761312508148422184279395209511857098374907778268799760473014371722937110473212540462425723018278056052422451488900539068486387634786915229428536065137039147169556811175938599991888080432890281284984578340284607787373132843699607949295834223666130479752231227923002161840311761869736391980768480875539563628351880189869479484873912621561938913353732798464162473344713255209242222906730524010265199430809373352131260022330912982647121198452279652958820961479930418623487890266442141866361740928585137301065445588410523563338036474964962757048659120530673859741733900646078388252398567908557994998748075267534058211230517531680707136917039875648047742975753807369528741624196438253408949163320092121668110111073249214194840504306588548405306869261808464983326720401758240434184366809976964065792677172456563250241831747453020752389490399451916289071813809606808186578027059209588058198003595475664446816364185314836663276992541371463958106340869139446780935347694691975687407752364824534432370630465347472242808993321366960621608256614439671801106081463214611192509687332566465327858390307317702678755108002687023292313970553735133956706697335672769415720462488542578580666226111959064223396933093012641296461001205738235723357590301298697289734949098398027784046569306945249539212069744058892472245185132601925954630919134397396310904015496064608198273303337006332089783953878032534328960622141006657688268546152834754904092930269296765090424475217904212073236422939263663833561934539108116502617873356586608104609056537469503659358552468556137792652398091304911446352550351904726002161241312157458283834072605496389932237503881360047162291578244935324239398113051276823036110154972311182087109180622200604620159047538234244085975269787008542292179805583053480503999907027406902306896162569362401262985034942947570505669886980431479545865044934588725040564753189408008432122749405523740762187458778167176926855189190921567943445896564978292525297883868719996703654599424023564950240941472191082530643336009234024627308993778410558061293499372950284402508962720798535861094356763433735544433713991628525859392365045881563520912399173540120091127926570765993751708750867634014345334165963158028915129344938107860192954173161491597636254633748880274111748251911360141697644889520099269448738099337560872153838498800501300291554578334360944238804823865764444833170225469896016142894692847844778197920759981685650580663092949092617209000397925467720715897572232547411627142528856744158823330763597489524483042814582565533051086068750857390747300532587456202105249593538625415421538869695292402851835681246256039867226125835214556440425123891888353720708717665192196105300244848299364066249471429761501818802338073147644072177703650201950494081959895194214601000460037604103732505367179363035903848129307623931212540842273260873178221695034997950011456625773741427126662616270247921431761704222095978352421545041629811160545244782705281480075936059611972796317615609860562137499705683568669212768761698080240689031223240985996881367288771457299990599250171862850168827641350758641042963401462778971301411390700071875815233291501854185900135058420510687828233597659896685751868414090908163340089215263251495325344917983928014759742797014116342830098471788639898363059405146803505601655726141542311828507303106065743931238050571541983225095445706205470223700408985300636369784548236790747702982709630623875776480729774569943430836183560332000595984729830877190219610174745815158848606336676437226993472053265514108307920489884840692078205110393077366164995539523608328790895057240097052869373930251074773551533635838453649029066385947428389229053451065881485262044733504952481472412825506244509410261063474797032275656122298913164796111104307708454244346976219712269158585014673044644278060449907074871749403895453158384189563662943166986341977902073658890584491395578834916149326110072145051248667236046387225514717737055852371795415617671594061391845054024620362730259827949979587134514224458949160403650481188678625604922452025409731048710808581805905544503329735546063713828675712043058386811753914014855165491066808682950421095644219381513900698162957919370095028853196740823541426868376627436546648888496328474316135164539369983823926524029450414874896034237140346333987967984528607157622145189566454064848132255060842561597753502670107301119877340803794792117899717307792649246168759353915353637344818842606046431131536174816484178401325741203710636921494482095887608867718695247107450783893414255002879074493730500486450757981254512136426568389159026328530249234936778709992504908360698500183798480595676160693021953837759561319074508501319764122465561250466840735962502772745698615958971513723738830626688582430723283286060189808871853207473155924547172180010561815818535573916596455755694253908265506205614761106201511787789058914400573582550204411502641908396689971151235877900766886694430852018187488827790435696254312583559814938823158944537232372226150731751093139240743801351717474965970342411952647857602056513647263878485552401789634472730138471500596916422754644042657149259317815359027341395705755358432272333008104813616026353255518189199085957535831307116969443437165077310164605276913444899838261524997047504111727140989190654564439222180043476569160709335856750518114576085881395150527273234000310384785990232988703010171322427941682194072546706311448577810683386223113381391315803802556229956384960186566817820688237638702941837122106503554138004692292643263809380493121525393143991596096569120440808615432314310965765699936083314815429241135325761344008121434364344788984392166778931983084084573086941417247948090738387602832537787478068899249260190058092174197396895549647636791652656209622225639646353397384874150121845256330244374244456255565508287616427098751431160766283880520691280987862725576174659202620391739429880977919406705162868716412325403768071395910421962726855255060624116516749685405919101942101874864863435499655700860129805814737034572356659046362382375484686022202047631212828842154119427430885248084363490206506771205258411493389996636897947298828651255622415419341538424961986398594574125405827217808178718483821322356706347503166729498413422772707938902460320678369410375000081837931877058201189071962998092299677093265119653353522150523746376305444365357907548409912038017512980083817656645511610203610341993958520840040821008818114736111630848033202051536049360063211336345714025056715256051050246693525255365885769312523793426724350660672211862473904331068302159619839509400431101758631282749158723164730050095306334502199705216210646493142498606150483399788484787374744034017117171587643284564019413965820193427035298192681042060256429072847532412075632648102837751024391738920508232622505763090853836146470435651931857150940482380631058286528031022615159377751260825327896656562544092843554021712943573698834601470129750914463077367657920977767688247027570886398411573821258043233959053607755847849101296775469299515101274208950038875205403650093513567486222951772048832662469688029127883909691067146726913090358187386692835183969365872467291627137584066240272795309869190087990093853814399905246680816841667533195925778923703839242574664996691234576621356340655806635505566515550060614294784201010618583510341077792932423620397162426433222572402787402783951131774808924174722322502352438840781064216346765549802445276307394296917445954276384319979025759665138888696211180671370617262868671679152681554183512073606101601813169571304608066535439950098841670377143125605894703876822314103508231460879803941986962493331898162328587291289321593764921054234484133760297454113133876424876781116030931765970150229428664621827117613297756693859426433044692385206328971558803947138963262851657955526195970443461983854392620999819025482084251987914048045088476394628232802508095612570492721476070504102169181525792015384338073001603033542138221166565750635117509448753168379011015752978664340353374093256291933966011333614838594028352576395550833405616640241038543250552754690770657706056633981865479696564606461547459945641303477409157154727369718486302754953000187686869692703792322567424175915186754801056518416989969144372318795840304788073993124720582022332536058736234402809489575412562371773904690147164662738201149894576618086000400063251992090490693118858321644269146714856002865581466497777191310892546543414757385050173882414440591040900734542727574938656026646618212938708956463272042248159539310671370031104329326006271992834967532249340836234558814642385313729234920063982934850366172927953792833878150888933407055317148446770786429051726580557691391072899507844529122639862168752445524607682277385892823667664235418881112222611658320510226571427541116824143916161760519094399343224876319813153574816135434155355505517628028597933672293185704781793515911827502087648002418678567214828524204156922824072093480307008939024026973084825535206200986417072489449600836854704858981280375599556163545757186383807142236629790745785169787106778373618600186263806615917898429279553663052177244957529373484330917811290699275698338446283880166469980010655870250583555358652301360319560587887516573049180202305099516144538154528541665939575777090660134893854371661652027949977267672467778261048132524560253207751190070134137710639354215920867475097575925542573179360215128392992400998937928050687171059428833776643876924292378773943050496049102279324248428484964488054161216206806189341571647092434380382438952201820386197496998393032261951314752490208601214614461371130980895829507283276764836913817226005009495082164935367676674514299273174884501438540526362278966895056684540368512215811107197829754570643240172905369508099888141620009524810908250116818979410949592014350926432805606667955772373315906663321151813487829069194837737791869378782241258349299872769002234276208427950492606092426601722254781423802513387222132610850454806889996825856738607875280823723271717195727286305750810231219146875105618540333477464305567903950651035418394951742633210771211626786779991776176434809187701919624217959215448951539511539473560350382078885598145515055836122393191179039597445094568587121739142607725785138478776318126813595711680522024329073390684954719262382608685938711175503681367498811313929744419494762252989915471352604842635601142704649411622545924561402795264784973281458957951966397758903461253801878552917795364857531137786203605590331059217301078713305761765390388523686378273345290235604416603615688360049301125869176864422018995931600514880669750323071055854197514477295727726448739168096185082266112541024323472642177844171366755305451036804162301649089405387905664241541237333989777202426832393395758182199395148837307612809251742548123838675306313976788699809052318143886667816239252331471201331837813122235855329983177093337626697822111154476677278541872419866947371608919840398015178298814272373464638287459546660694374213697618209489179584707432916453221383227027308790790809892252556820672869385591533526671958667237455856809208861469966308582543158505668402969481911952797321511054111529443024421981276216908437579376836417501914518613994731035626947649157788123231583973915218179696315856662880950422797538442780170067423066889952009519971342792011439587558269063631101847938524958334616144470980652734147479828553059459884620283565250321290932193018791992212643868556575817148244079873411164294426586536473118690721247519157672194892345499713876864467425804023530802758680600686954539378707821823228422273542372051995262471313059341855320106139230275311244740513534980910824495067844404084824690620240795612313686321543046873750988520596071546649054806289431284039085630217855122194714692011618069959830794603369966384106108168402400730588824615208074883603175887760892857054287529540658267770307976110258914361884104291799571370986167232832166824662451506122786374699095689314366058705466763239327864015276110509705977594614729143429589502809671795438354076721953993823791077381606618646333022726808201345738794200677652252483427489361385631927149828406760789113799026380450267178105085129724170374013185287953006739003028678837147320975657085841324902064306653806297703465469998527270131031169022476764587380814330076162490582289550230017715199969138096697336071731606400011519253638932458373834972213322428701455157346952861487163520707566478102831330589044685716464937177787206760622358912756799758496726714177471243241503605388928345761836906369085076494844293805896868380805584185893671822754949974144451460170520967523927480674486240488732837346800632167391960466047394429321814720375575869010093173771364292425927936367220339933306389202110663374037353871125501617465661014601884249714583446571570257137089558658973836086605085559250422232044563333527218188588532067185950635045495713361025367005953022475187188685442555480047271078970531483699699430148026424995368128272385174931489217909539247101423667957243772501826051503970039674578011180917081971187947345259639860619421419296331372460892049475523154994544995234225805328725428252288450146931578233160446484709041193462088195289104849704591511905635913379749378308031857132230446759844804461940912335574035404376049935537045169699547018252783845380016789800482628109127805006525655510708820002484607990851154999292880351176003497410456334056588388010068476587833260492940236430273622601029994970001381338913916478689400538942394660766650033946710124626313082122879317325758510198522703079903405638784926765936223645889625737187151576634803273492965770948583604415905087554961884167805571710932249188568828397536555116307589182211744029216549939327268855264523548035086614809049167684043433443901689725677290487845813733757182561263519144232077871795690074348689253293377479107002415110907376386906974787321608845599032046447075929733307064762023134346422525153906058918712792949881624477827426985610574642468383625951615540770895315275721487350020365600229277742369340412032989481664920893347250577880818091444992140635990337797668216129720579201400648481943600409864601179656023825064626433306853651235696941808099368598678485371793731926087581964533198228017061992706765950847045048165721133772993699577653381361202372563661897132124968812421646656706372495334055751129517404851356261342880384641281264149145572777520829866730939735393008793969090525075457904510792999764286268910348940975046599763132510909917082675024064306590366237150662915449293103797832138104230683688165219865879806723681475475679319479510384083275669564035938368139282708488002291529436158196082107689736350229879903858261882772265687992329319464586873408347626226670278835958120565580758908990169269977039358048175008584301775514973320858328042515145388736554857970089972285238019612623576801963117111351034867566550498503388445490562449939025547032344698768381174334185229582426112729832408732133811158132414151874485076977764824163026066857875800847184805284272648059956583883600742544688360416700698173519458345531289010389647013433217414210762385753514103281109682107204684043353690701513149848242895931738247657953473839421014468847766029206287122905816631694319641682988063266868418149330179729517438409892853583977197454941781363213543700696922237460827472800071100106677665617335542410779712204301795109704807786510843898690780074528001974965222968715648396405518772109466096790130091275997382269182693248537800791928784813651631787766798089425684309989161246042745558267047291821155061269356796829392082146980288495955063311231941750317924942251224396633097748258566017929676375521720573043716866059427683846560190021794288627950854034725096103801794708548867903875852637585598090186699596850897136456779592379285022309038193814288676112776758476513209156011251326810037669791557641429773734542610577486712834729993419009030184570192002154791942767989983785196091749645404001534991015123421697694262989910955466058420109166683245934326675472010183117687201765609163097985834806655404036212115613167044986656831372553433916584365227753102773209695926902777567715674229749763365807191755359236464007815621407575744508322386833001237057299514316222461008824824730679545000680274984014234031945162381375282580222198859093093427118213056240557481586254602010702881637545146953716261260052453631071785711826926571434422279119637041290567997220617603407961557930873602627544789505958563551368071376138729958787043196166044082560407250035417029479519154433483706050359152677795754551299340669351510111296754713762007868478547699168271504797606601874295223519117490907669376478589425330506362743108956368997061164236686250354505658466608232526115297172383646768005641464317241863555689735059355744488269128612295176562753301192959376428401292394987240336137644037331008796860526841601112368219054223037620529667230683078308377418909045754981394930533111888857919859887665359543036695951060423044004255189383102487382465629544608411350711544733834498232575692588554713909595250769862134199238420486621460316561279470423411778236601281248721033078820689333248251992927915498286163423330066447488789150960923161103082229498155022200319323740368820524665096385699153116341894536428318388214711724183846839265913833775442951959369682021536449224794003978602862039616457660109168958848641724585268013223111598051863709269827093894703655117516174049610146224519145533082115399722355197203575347662522658688321540744581496661636500151858853479038977206156131735893500913025262226718936021704916377840340842337190125408995619620627094310448437757440245780418744652508801622278017409528907886410812361360837986780200762924282164126477625108194939241113226683109568732669277348502592352357424950835160891887194283155116962558699804533677478815799956495333744172428907729719650001535490483146271666895920845691001361935751965660034767831089117004649354602113452792872684129387465443336603900174067772995071514374362082827576046821042295352830808800533298006232240340173892031747174620232608707137768568243984346042703192123140903798241068073054908592397248194792280146905390462235628296666855821533305920152489899469378653850785474183492089013634774830493278245879134750597653280719027986312278104300621103602820241254039418710080090403663776377213509504857590101112163716651471756977697801979444423595072305655243298653571288336445304592708073425681396681292501963107153571645718487277657045376758909707679522920961741027157961532660668871642307250218945967653390758607102878610552767150199859633606821615113674400154311101514948870993648233826651689093176604605822722276519819521963369840399924070138091233060890684962775058731530718517968162403755789256606314826822249597785980973708661713450639573819097129070481173585155115495511780353668401610000164126562849401259361210797093676666945143406866630293846025978528464569286087987540696686380445270781725117566245519733089186369693543828996430120347802129575022250754316546688968661848389359827562138457102029843173632478862756746606374814657216643681113929195498226961942880703325156333159017827831516155705977496352800505803811937956767571219053553359640944167078439901893146444088127628978113669666610855706339044021295439632188785105591992159223626313011005004194818820589368315099980838070284827918802758760177649313824105999237975866700957499289081048427736667631573202239323014141087554524872399213375347781450609875733682907683946674905832484317485131065858782805100851100269680847442624196706283502606362916729391304218142690839151837496521090520366208438962026002086166546450672617366692863364955593385377056894859939008153214167753382142639528996736161779738389699856201691687446617925803065882858364432526665462578544252362796748291928640457175905851699815838759437242675383091901275126760561054944868744206946445215774719947451035189952312299608378769661199079127444393303738421490245868647232306275530948766492320777975491089739705175455241589430873036069678610639682691585513455576052395919903070521120523552857815228214069706234693465316134551320352238117369779877871711314218746595042693485931504321609927433521866676080500480406775048502645659270236753896917424393534951591379102801399735850930114455351229231551528061501001258672264162455656024922051609669537758606514589419954799802883228860333856679953663115386857642562055492770819401289194568087520614802671455395554816606950784308546274574110730035909714803690681972086813476535593568160127447986807582001642657461621554338081556250096080629574006229595796094240571843415728329149804655182420957492317039791901684971522263668352938183720651973184882078064781608938004222776928306587310109114634310643807537271878199581670993242302196633751331491519093740813879929652999493422919143858154473935741643707227327255532763884644646159065678873608347347436894730704956378147692048085335162735464727150422702119188471419639580572245716819282401529712187531658081007606864763740307483873653606690643265756601521958606666815983476906319912499134089634093620766178020200102901101284800552365555364085118829772861679371436023283973132701191009185344761017696564075663621470994693277623557283199092775777899939515761259388231515126424128895138864234355042852414331721787066217577827006659075903675794064944260899257708151826152601278324611411470624641012123923728354926607432764308090615800882738543951668389060959435451917066041691990560063579123245055562908083027822466059525027806849156596610947167525866844346117012923333616064709739459857818494689491734322168288994270865004961730501435961210993807486136915557464655643659763257166459660669428113370321204331102670916915019772623742909442212225736375339757097516195210069770034242803733845252020287045766969826796460148465787015866324648084029058981909769814495912633963047541540201924906629201731922313675776190708058605197280133068231734697356808811467737943022830864517923345536944445998912523673007282261040731946392692165552385181207772884619373396443108736981844658716989066145670914171848571543306492164663011466434461444307275531843140426452609836181978910006830534344162636439564752963425268800458759442126715309002008217132239482337083211633894730438660801160852685396627147772443949697540531766441029760360895797260243778990888758725410182633715232160277413690239303592584919271133069004999203378280338514785261934871556519368202424760301710632791423897957155911920643824637312435119410508555965743449074412145693032933669722863996529663134972825720301034648619023761321953706415873313805719693194254054868705375919375421306770017214627086464335490318708544245441453772112246066759394188748132867767853495542814092072968171096009830443025366900372042002278368348369053224335574251283622827419170328773577822140827114036202569055068578885919162541158308954972211630745252822408044733049196445892986051739492259844699688784938861700264550563336628562770101805177773729610638315432550222896354147415548710873672412911043169775882975173197949935848308024283807965527550279108310740305061506405572676468566792322429914823256719922301564740676001274819019084507933715213918496552515696817606959456008103633463749178049111096792482435181887381097308495044864225731492487245022802485633153932336184748301712529052627314507390203299267851741477734643488822112862794451242423671269601659924547679860681231585942805349105862430796980610622120450626113847145417740678728899115794903168104942362576110017449664485984315622580552888373531947658581893413228819138140652784885346405319103044820166367017762011326155915618499385146168303177818002846822769215992920078244969557718942905732533330963595272352938370366187960878134206907519190521366017453764365901541376844350968655723444390878273908779830083850953225692379685285737362468520567774570340121710140386076592500487435482825657901771396867043069997496055606212958012128530075548423286741910124593493157749772344194890402589543629130007260234188597089305502349336109279246870703954041823701590713284699481761434974377804826336465668448037572363363655307330976036313346989045170767141083490241550524505296618410584626431636232982739501451412833017250839243771865511674671142645927598729880501083446795141228902098308639339023320632999284224213748699783103628681973250121531417134395969047420187184424633106596575149919221635549702852811837674397315318902501634669199822493526203022496465128743527480214020194854880242175228398287403667874609084862871270650033363628192925621976957265438177689729300676678605295230358007629897949369299597173314788889950951552741065938337433905210310283935220282558349075490209587109561348752252240343178926869489097701454783107628377776041434400907985727032243651194340789059401361413383116393777984975115719584261400545532987769386261386419988419542153710156416130368760561188711473054891603929880004264517315587142850456505299606680692125812865869443795812585967308151803591456536025075365721417785964278665063202270962490934752136461157907350604686485006457767805298498066914411928840837342896896774351931842541520464219416709089217136976295558577738033164605005473839818392005240154831080594620795126351466993612720647104166516006529023738818260203173688815083722629448784671388409396106503746284388274758769476231386574480040872790429803543300993360913281749408803167205344496929251262086086105537831768662591463250853983396666120255645949146381917260644304448964398090750115525519123921761950423773813443815929570315182709325814730627011673512279823564668346993426170728030945550552961922784173197725681282439632169703838531407144661771581392469994020963126537345639656628662710031870625857293294140191778548075215949641085529701529260524100680862494386650481115256308160193060636746210875484480738568579402284439690606080656170426083463412930962425366652774328783923865027436045649242631102076845183172362028765409452684504858759202081466474664452342525932418023651719624905163232136328012620602513514494941535921939351170838537430641227070446358858920932544551404501466339573521363897142251939559581229104608661229494895018288273136498902445761405599162426744130628510628055031650556554988974180284407406433746512296437702716661234767286469994766109945558025037058571967855608584701504733560993706969644040376875243295423883665657654428353084088363214941398796546216859382506401480787190199087615868308554208106643988034840013792553353288137161167079802033244697208615088740589328304158218141880082954345919365103317782185057116365684364241754778027191778381323691340152705100047369101591203093314992724589375938043668629857503989079343285046087180287902626275543208632431241213421535961107582913014907323895159537936136428648880309366010885416954654888310875553684636811626513118948168813778790497251514866380579198330720937760278080391278999960943809408199977242180687593309327750589901193114872760417153216813745759688033299213075037551364781698826607439278215336135034883134480011627666110788282558502168623633363930713708818682200808466581441247553907054785210922807807431599600922967164065043930846206465029044809208449481257978779261121936268625331687188966809850077940635735043727785753710106457989638778800176051070646621661373476172930474201583649772755580913004409987220548215772424896623798123336684749606613217207389361306614861009367047803818921603209497063200600694317449983558811309351196340626780028506325131296250564715648864658160019827689417663233418303121665930935872794365056061582484907854648006286647714702195336797921457380395962945530707907013996240571760855545346742498512990694299855283288430885485387344814790100034722141986170539965457233460554074838507208178492432154063161146136509534494628195375811463584786212648537836083882946245825939549592659523218606734927372557978369637205332268682436264909363324581311088443103474891411898904399532023442512496226601438800400008133358979749030549692944328245356725250175734903115367459558587710839465666052509679037184968650030838985135176943017420156384967253257529545936428863715119850800272397008437285519716839701362322994834514939014280685624109387349080471642209438068315351173280997869792728567922472175295634595758607852992056831434808678452819028325256094446159223080202140532034677017046296740642083839438965695634141957099050212629569833379436834921246046416973587831601343583913805970606351436727928985717912655031808548498966674066897885060206872691772792864757468895711499340594076197135116840193259071251701112722469895585542042685438645680113091021212037918932349559602242113936856009316836214132538679798451635687924064427594581154241583859759213758392534227849993558917095397780636769588663609749670121659581858376162134875961915658063098267092508894143980060180946182681416261557577083812256302383799872764525550517891808751801593191095162067856151030295617038948106588603682584846675723310273050039299462684387700266443981903283705697338519186006897037176019139569694168017526178434629186179585384822530121292253423690552714227276174545734923718276595972946485147729005763918714239980554411743395983355189201012120864150741370150852773109249791573048445398314525118453058023473419318381983090269998423882854322447623600773050020514435657112682975434249556142942826282557945734076590273942266116702800038512311399611397326978853832566297442224877015212495332334430007568719090880436064973451317045423712272341090855701021264788124765210954261242766555628532014977492652686547634568275898532825263183411055046744098444655417543374741238969044874291952335477142761118000064236453143190963696831147825526848291395546268194994414223014973771387636141302578489644754409492834597137131458899219464627346469277575680561978262312644697086482275551680523027215523938741959268355391580032858918978760502319473129908058446436418842836482117707952466258852752216346124825194853929510027262091664459702416560539166725137439444232930587793025550429706589696454383089979413969939679912999945678426270409081536780493631940485082443488798436198740973873328654538738483459807545811528587693960019652075154013901486943666245963593756942737075038414249858491310413185844575780738024871883561431065039652691072240651102819162689136370027054883662379986955169200003903473982704428504746214992206987389969555604925443112705775204775403346051639059790341838654694632666383475201779650326979299885426490526682555253533278929789817552758720739911598764519149380722266515166731614248200625848928600947544568281219780766172133352196846784708219576284181433325260784202660147833760583053355013993017845886185979737276503078814768935114663339360047468305741448022457744245456078960231679717597246549728872891879172944931840698829275767746383226214384259656891236194954630586337912601678432757879707300198064790062168769726017103748761951392453154446373364302780529167493420595673146455636854985038631383375232540601434157897827052565177011688949022555284711284801421944952889608177053662861067114801985990903054125173286720667859477139505368993492418620158966396046634826151595805535674646506980207295239596682354238437234439484329386456035525266543481037282068167117868252256576926199360813659015612680246456759791140980270360124718535628279063477300927820634954642052813279986564418182978889736724367458050671352408276739955145890037333841216144171542628441524971247421802631340848338908924451978833078821513721724309207960841786795773354309500476040794154226981213493845533698782363745414865372497361097820143787208049498126294072055554185962544736013177180757574229841569467406460061808994070394072704143440383461793792692396706995825652718207494578805930553124801165709301400897146567338993407289667308318465180855057083023301060304384446530848967185792839910719097683412612722719919944862398945946586140588341859796446370191551550372355729724619200423366059028656405081530471864787485928719186374886897400098895521417613222820748230791624726372942063125448079016122223713110464451904033016581775853258852066393352582126599644541201707068927856610298417438916499041998932785217212147441643153873236014577959304187421169873024377805722539144769655286460992828305144994000690042293106173157413271619820446437655057553596559778378688319586048247957776774950536493971495864030506925991960882840141184952461563401310645648566621285534744501789207354420522635201311639346922044921354415830874087448333016641784025829588044703216432732204025656546001473283744270608126676932007584074215068204163740350936918054278636466899646671405213184318299832033742314141899747617043459824128771387873375393729535929446611279455071441170716780613236946671471936266261134358537541294430488328064499520732924637480295534082032190381722191868837626384139146496433498451206923349081486894423652641158141400687387944922421566991981345753260346275311598915459995676392570409948237867885368889534619746034818655101738835985912101677493695396070137225340662790489831392077482371860621834255026901065332806447702039127932843387849185406902564188806208134938204193568984989479330559757271933541261053787928940317947999211303361120897727521562692992668541608419650856605156364420815243514429664306350113261218843682459188378703666525189156970975265759168956310830763759545367116653451752967084721394383396902337903442134636765673284977626135835708757617189064959701064924804368767783784948101074589007518172072329826600037448203990935442377029082159566405138408246880364126175600084847245440640105759584298560825091101503433567905479194336542348127568474627771345811019931616357370656521171946653170739467861147286400892669282516878137909078696985397610231439367517894551224504180291318172378629759297402213725096939068253626197631707821085325960831735338331269115882732350277023270681609506859584674713939991993962601053112590420263883757531229799297050247199830344289799117810461188747770357041616586090075053966222490820061737595767197059869904169510935016030577201330345256865624738458754657592084910940686200886334077484693697231867192205177391726830231743151116203046886803700671764689090129762507008274995923809122394057160715572821622466576092244861608471081488198581351199743262640138965515932024528746230718200601347537373993529212927296875793369475095770317229617790743502978130400959700896114291271565161297828634228008957879800588315309660651063022927241341398140449738314082754576192411576346728963452765276309262454412435728338104305964120428496287596595473112810896954889244718737340659480683246427337488274710411279374249097471718154341414456719432305643880651469158771113631136740384480661180768394896690754769151514182084427933621029589273817280295349894075261788065058652084270701248233188018619876884886918214914156424802771069574235124504252227810359988758546709810295858267927846993051040135488846711069746285949516208203154936022367496879866829168678784839822904937691966154614467237977693465880137643601679395001818367870971741739381033690616993771617562765479072773067816050975529823026814673568989858309658046026632576607210375092494100290817698562407636900190965720427632479445494412973522553734327573806477162684534093219334885607267015662171127036719320505051053813546661704611531185501283282676138404703531798793542398423918687803869804322101303331768565228173386550482879632689552640733705287766072039119899647212012343431897150547129743267942208790487457820911738107280562919048602086907001290586602180744621466103175216589358459498527323220157524786154997329255359171631202453831310282440122392956402994155545963461992772056406887704999851776041958926838175660193097966608457401300098750650865782393858369359296160100729783979423605310557791903173088088969664129352600053882768013703911180265548307447395476607707822769281257097785595465023811280781467924109582545815264419739842451427230349662776532703359053493527722409471143506646337282399039104163887964075724413676264946707682307069290820095024997743495418298976461509795339372407267006745497117156306600115980423779980768649899486789161081510858500089962497759525751820336941321877055548699019758610349955237018715581560445746823345185462572678514959909970666405952551150379889500201339126781030478843497582032172081000521951090708343777584578064891078179505361952266283285119744847831482807432008202228787198306540983681102215811709501013602649543424835484998768399633944916130224177200048446080592543798327572437565540059822299974858920401975635682471344551338529985085652441246117773530303803265280519302791537146387432346212749777910113774888822315518690228921754474853525723635264857173983527580665619916272117588569518437666524816109552411313216116298848490620913257064804871704228608586157848727076979567126535869962913875215545037705166410774348393344639783009549166874850521180432863169809178631055663394301315223158968242517747248674961191075110843033857167708140908276856787826263544018634572592936891882032700521864227996590934486237485573273058553426785442540738215616495386916212580579745025017142537384217042018278390248812660483778364500485068845496467147818067498570358981375724994045003756761594775459898701509879301511154711362895408996327467023409845649202588244830528148954689452357806677674898908269940376771108368305351662596481682887657964112194623543316971950073051766938389113506288380132910063996592489904625549724308394607386682846567283324341904975662817563865843116268214523886686234317551659188012558034756296048070153990219119224747563061692872885309995488344985753352145482467414655960897497471648475215855055371429457528931283234586455446377419720676109370994054893360557853732187628993572092682673821901323582372654482667210787512141120108705740286214666928385886851970644594250171119810677738587294015732550419359458998790007475715627335483993505742312719703814461237291005064866558675230675475223970586339511951726332807394356061909290359249669115232318940260354261091414894252070782832164297480914451005709499643170636636442445386462265228355583580966855612579398302254705588111716076901145544416099963021171321882392677202941887718011984713984879506866170120888681840820186556326556061983647955027112911396010106283423976930634100341106526113615787571671506546449148955966418566410788111314536038574591295609056124758283656845385053557224918638464107951836894581512169351437838864114455027023890435307093113941585253346958097225592768967776948331326530732315204497346453228436592151463630887267139958088980238699272923426288537539497534491391597739624182034728712976939303459719490095120735942021227486212450528203137547717635026520481534433097910622787736422471149919019343210968675847388729627854596755034151709789080826989401657320808673632391750431819141901007673841759280560155465967416019694483885379521588754807771025559681585949836783582344923639667116421040709586799014572056921043401134421953444195561606017445033389780971987090598367511239415096140154903285564140225949068254340472559896752416928004469927921269512630895906458230919526849804977280303784999415111764359568306730275866074241573027120170303419297949392793895227964693522054824228529304735510944625403102747913664168987845131830180123068446198937249949607387056457175506334617142595815809452993248227481675726330670566788465849985997467519558500369498512907981346448058876453457737761762655689175830693759618312957891135365374342146188885154317942035301117770782032421438603560521845456053398253150970384369938116406233423564229749544491407940637919172698086213436599168119470878026628250856339715493724406772429576173643616296863870810389237785885082151425871275826288274808891470709234885696498870953155661738346137936628157605567319386044402686722630141690879208089545749151033364060750781453717654810527104982268886931926970505812707524104372329202145161890902248433346949295933831992184716225135359377119806049107003604177936750641946497363025140462333445226232541795484179935894254507057984103204680383947153653256062271102997223722107335865217304041952913896037461986866081566933475129277234474922987618774460322367040867459000235207456849289851353619543812421283867602618825129971928356842188215998000528841271283765773197069078402741502857344862657766290656445491269431394814601567875503441516387993002587470018825707557001556709417350785644313989272202480420675183088759173610295443997334028874082374231237801865746548516467291366880993251353512499986032473634498838965027187154635263303370675498871851722461957022251588602091063442629708208700624124928441235089252102650430968661976080155292999370826475734493016058794062998879545032251848500437612325251323957794095905077416110476266344834328468909609634525615222351311444328349419621919364665935694105016508110092491796235851055122788617421169028709754663083312520217915497528891999323966766169849783931105609508900111013289003992261466616735024248854490170062196721554224927618509207353064663585208781160968923900323417098691207326970500421797327106323624127872838645488489363809334284560034529210503006252214678857075907705331041033772746442073369230150684633495098365775382042094869866506997539741761694627071379185228377597262407880233602861021207787522767130847296299841227130988127548186103028435028935307531028540941444943825509680984917536807580426945676998357427573997683578381472691125065933613959676605848971016840363443674994023534165941524767343413493665465916776643941761601768893572963308366594559987509916142354137495508204078662074939179703211630083881762728921579234745116559430066153216246110255261766456849630488677805769407496336177505402156617088377199034092597694763231952046025193878176546365841418079727173944050654334938138101007206099927311412082408761359594107611002571997840184518579068785107458919866605986451124953809209727084143268554785105680309761934686259130712084256634089499763112318047883881160739554795944052428926462940274574891924908979811311580428038291337884956056235474914208291568906332792121340070786945716276833654799650430316519089946214090491122771448777668944459806411973369396901862408739410282402993414884763526301429136131558189888425252018376671237836498127140259980119684268287817422242879296544002187921491395421679840443126913026197834374475212911729945812108744169929662394463989718025531840407558708681624431188000835549682546815126566628486245759942692354125719031526356386086535855368855676351663080394194272406457823476127168427840997413576577173396660802323804600118297117666034628536332016176515558560020229674117497400272487350223608857165951217740775900262457043214179221284090935744593483278645402701355083959854317700356436960135191130327593376026373138673331443171504127679149551979726037454369841536383531414800075396863049127194543383432323743921741390983314750782407268394301673411779779070277700225607805387938548264808187613052201064168048915954449672052572657412612114890670636471172326113488333832505089974089051404631599491111055737530360450356766862235969447168454884526586824337252791269532266812225602825027464935024501266126929452695910989027629057344564163421052458660001302442531492619975263027488105579075693567150286990476582804196802910462836373739882538196333111703079020193496844771359203586225007885289885273151212872398618097204214701143414358356561872480808627351986726522988266720004384197969026630937075858706994891134793780925554169504478941146299805676514926194887364055270672055341614397296067692793882727597165349585849555446134464605655146892329759473733084065136803983929363556246017557680533081174702087112919489805466000749953364598115470813060343202569327297144999965425055969239564663433762531288013176142295113755829007130661839981400829803835159753274763734527350428973598911918966466904145567794197334214013562445765895131833426910512986731429124842713046959946798825581178593181342606986054302251559222184074413813479300884336218388368615718536894605176160366567978823083473198813931600497099090037241828783314209286959024790866807718547497413224653827476906635575106045304546984086624600329227213057153618752872000910397149676921539612778111322091913762110455089057662557301875407417330993389668591751711545162863514022851912674425736952851865102972475787113037225093035639532610371998225063839729271658993593546706535720832846868779054122379464124992211676171437768281598763425628689640923875903343167056559537944312051916820178842602637219651790313743662318540336937700515958063439951230294990163978456185258301556975392975376433433036454206864562288035976730242140875050064354576067927970430337269965945841066927212925261823589064603581005656000312302528157636827950728693167005907043347399451161691660427386281888530904487492841526616235566266242157645425412331986573414457308012359164508429816794055708131450782649804676551851838436778047479540882712830413664718847165555013405277160750718331768788450930209043210779508926770477586483769092195870797799661902678892253917559312700793394141650732051275223814536344355996791385221397274975123457752717413767873009795785018175222009185783631108189600862281405895091149655101184689727261654458533822567535276330874462743930157978990002936872248989325263527076418807365161511801853023119988032330255061057798865741116615517626022938213370210801946128866383272074367697688433909840072462120421429545066387432812643678590020925407392605171360318886231801845495679682740034607027464261047271051186721422741599804888867944648485946319244940005257026996256911418443326483931844489471420810963141522974399557687154108413956613591620316247981426071759023899886269004519902724596825224525108311299186039497101088342958146611044104003969007836556278856487026696006633510163526333171046171991465061302222346076581845436199795384910286272419596082115426931711044166659913583672402956380756735126789768867236094226300637799613609836873265197705105716217858340575102060378994142266167226795158992817145688768273685025330574280409609015645284155862177163438558902788909414158489024674404485807410071179719035933236150416958929062032637853432023434647418117582026867134517298020263068667415817129167016491378864693556810677344448149582861570246281012968569617148819519968038668744712943049353865258371590781002124622330621434226326809771912453572845715739490790194462578822654198071545441978119066647255713599307048109171774748598477683294998908763960768440922233200517106157853892491431329769627391382814211453230235055089716953378945679464808568651371948474780948616887020079233143142440210060795173872436085290213373115987429120923367423912885237342478941196955991780522028909394004941329195100698586177466349665926682804540512134396198019321163222987582624182916321749846656324078490083621074985084914664632325198304548080442155233789896823427972663838665070465983147304947749479460473620165640442963103852617267983327511757184013862305300958116023459362633163380893284926828118946998576423661880816174412307079331309039475582798954757791923583106249457414051249776094370280758323031908575110759996245927661639348415916333247024418546268171660230934162669063863090380240110708221399113735858602889146747203063907439750520983096390500146521839052951112071395025734369729052742668528460746249425527009862659193745368069510696948730504261664626556190957443995132598124004813195696456365188229172145040236086465638891843741761456321529193098545907572967339721705525395806755008650539739174823925566577411333244255991114978389735639034307133102603229034203052382686922818003953550306317472886334421338508538182019879814794120701320108182143680676141914228484307677391612243718509727073182904034286153169172162473041950150566467363549859632797869169787930088051071623251209214751077338083747038963235615518988898285724807912979171009348349666264799973979839010682143910553470236964135476605175089822756542491354191809836072483921716689351442254411920589024573366351583825751853570622125711356284568212106828205829975835821297674018607968881511765984758187237271340336506180391888434920627179507151155361743213159239279387121311314252393116157521963129083989269047728484762740568800742039393919245117250276551398332481483862546833839016443280240797339389914855596018918487940076647935719524483953524777351060748075074991010449793748024957095346971108976441974032398691885733633815627331178281423889567599959532024710408876876926232062548724837995222864102701839854537009579815633609502302004989719076792941274901590086293974121623103249319794841243749736385728731777071849482805267639150998365553461927495477524779326653894727037701678490296689064832826956813188153058429540607360375750329920728655887756569242542820731185872917579616657983922366998928549977358227841709567185679214135671873659256852703585050311471431762075456270496118103158544663589129043830706488215923839572058945620504583791229021456794493991091482844511676721460008991443557135732477273055655860275369258815636001592142575778133104033790771178980789029466429096328052894803533490960206549747892786175909644943851511322145004283049726934708354374778617655949652135149560991978787620511220902350733132062021358604604655386535791905842201875413752594504916684694579497780930022057524470535880768146431998855465562132682861490022756452208416899726064467049236780628484624941820906235990535504174787848268058493382740976374844070551780382884643735279963654407127408119604173900242953890828576988689290741877936561575818417906380105038916165355239721325172552205113238350017947286695542465733432894304957377903124471932273916110578008577236840437602967846967413125306419707692969805690481026164022448557103381380458867291435030307998717425807952081198407160270244057949472456315505192693215942283044745199223563025214436349478076233099502512362958444379931860142528284709398868171698553057790014006954851724106429565713409597154047967039747650191008528819549119538491317214375058139471704289760519422150872611200094441005642633700557288708489461252263829021501062369446630974280728501719436839416601040859164287718977935201957868108421229622602912105861884869807935028615068483319072312920506001333100553037750571288891902488588555530215419215280383122840595831281727196848931074980982847681430622298153378717658073133959513057213093498407816576557610012008587042756724937680148955037423874616972019524241793918622229028251016858718073260804456528975452644021771650770138591325871300148451855844680124571977506692600744504316646874548888685663998485752274191267671175418200045999636695101349078930729419291120210676514189324238034376489197488667737487646425890300555500705995180418782569626315936821267507762034020795581972700135567024633644863021538472320637917328906163842457870923703586167712047296345840594435024619750420494014483780843516939865362107616034396783875386195776953059092899851597418574617031618936455848115815627914860334400155261227176150322994028181076440029899532501439674877972755063961104682199804373504477785286088139691916594314904215524542726237450503213406639155158060795484153335755943426235378026594288974144278965435212716530995264759443889317970690289738496845400851236799982711833121700195917039509013839095493518770563269825061754773916215193858832515194295696124713560459444474913951643384640508622556233457203009902915413942685905933428464878952775373279002731050541036701974229186164203487330605673571499665336929195554414480643372374883921549159072069120169260168704107172344804819899390000787421945664282271744111953107339710940634847110487543604877610099471731848243073701884501076877450487024143910986892963526181281285219950386531369315247020521223525961506755344621391605704654081107178337878630624791358989376867421521060734500185784823274828678405620921091718424859137232677115525738097628933294296231586388818887673454051198129808742448847523141254801055561638225496580897261070951988310533989909874404393326815009259726530861041127461212251586422313562092845572515609316777160687441149005955688758636547935672893755455977300989519569958533480770626284091509427248441077972422373966645949773115819607399702348093834523808584025150373086692247712492048850115480870109504890150366771221772058058832152273117767828271649901460841467149509922375628894730368644018319327610261025602462834414427411689952318392348856266221661336715300734676434023617994553000823429407063797443144096513622639436983682480394571658621937436712400827414286825064769543453658664436963606804670380254527104060475221387880399893872787590766385487161132165340832079581758156029712560588596672332810283516610563823921161064581192458335802416900728590196315193416647116354238024717826067470408204194898980249410249816337936161200227017195962443416116718013717889172912499122981061445581240594681170782769819743410609978006082864611093321520239991309728427139593429172442130574695368609052892759477600317859650932492821029337710142031333802120697251938074390015524654514309515647578533952244955550795044279953670739969156122933130988508756844575259648931750563159547400167270838788065228647896399498153145668511934856678600370056490302543971569868322634273454734332246635223121345645266023124053938414582698127830329234364957353469686409116957417605390089033383526223139477898706467429694556367558511147872825820097751299706071252734981400283654893800209842071003840087156562812372516879131934263486623853020853000638447743870125393216437762636889776127209599123401859310611011703238731318759261441468109467878597293323724140942081787000092794884482841441670304684614668961085329116677480379389776053928300822752776965316450648730636278450196222777758910726335290508428844128728274673481498683477892938287053774337199170195620536883056133624396823070338278893611100376114237998831207721854114671447018474453174640518439037781865910636537238808699009757705058230720114714821801674582226944420344345245578774472984614751206563798529017328511837496706758103950872428822914447221515573001596266686155016463386555367953524123879700350326793541533731213898447363042300026844702281221009524216247334512782574799876940882455174849225403870233542872116234794086919352909594652166432542420490476292604370495661885241351367039944699594635205095309986004004714217929590576557772200248527548124143213932830907679132049266316048335589008443269112751755515939637127066540292287049513993709154722822777849734661279507753966537659274288334884389705598012176854911808732355260849423017892098720166854914474379036718040722770721585414225175298173837211385246931533425376546546642480902118709979537261186504202024023196051781616552945910826103186410879888948237766239992871251799762242645781833189991865849481883946017660081633420576188313843900157811639765449597376862234881102500702972444476321939436575776784150336799970973608638192012873205947661901203044618995889066168091895967731858580285406520786605069951631701545928626197023987828085328136347336626749962530740588482651977823248130803409357717560860780815239356344423218163553545550848039660583994027101401630145961163112981187181825227302421499476513425689223515712026134779994552187768532002870457777544421568502944404551039900209728438256957037089112267227397733737347205582071127496157649731195700601406737482845677591035686666968456193480972885038548386685389029849778501662067814068160918643617548698390958437605182612742333401579671763205728810957831074242593823075638454475923450247282836601830196945344202604507124723532229922186092607929938981190382826387543810448566470469116946478380325191779014485686767443254764292867507202491424896880307018712389033665643680686952692163929389580149422557531115881022726031659914557823715015507939255678769189905643401963458734296782319839218890862129685931845689885502039124701269488637341944354383803545269306967940137146199493228420194475166853188568847302317115965288726120504407567228911863263004657457236133831422551618183878831453034275771112535870837547019267833119067697020474323459691416734803048356044412641962999487224660813079435673475196463459562326823523109174182426977877658357329097098761518258489703769826142218559821866766112056788406965587762547223396508002707599418664946364064237569169232420274744861440854954514785725789352260673344724835564646769251980846477323201535463584416310213385474907166882135980152565845090225763153252392483097052025529637641624891054960404184049519350704753709019081183548806508862100548866755976055860296471558060717861304593592900644875414930826793784686116137386651493168938825960792567261393021475832602731920985416851698879146038165186491117038131408980458012383146664579414310324089632161469413439924640784819630992100592197219277151704537885751877362574383005596870761908452159121426038278946115923124530836951441926752179594706282621004150723195935591343322821142067400392179319366437607691248978237011398661638497970912637708137867020432785119509625551406272656539803013038485324460349164245390475728424607405324249348850364278161954013734056339872583883156907551520368467975147456098675998886084931359066978518377990775657646192175160760077230513741811768328295845369729101936059096841264650659241042327035174251206339696848232775803141313353783728973656238126859231460850133896245953012720595169404293323204906502733539429054841109451914410083027286379295752549323351196506054681530742538652479093782664286030454011573554825700185869009806324244869288568678524890084597523090946185306712143681957691593625326584672397505135435483058556713289765215501790090132316207166953301276231093300722443259392333903702343988539444332491437775661284403260532371701219524254395553258866116037619850403496978501695946367742629494756317284108473939560783563818426902059647718968271266631713204906665786495625794798788530266448648680061539625574115314078423611838383309718742063490424471628185203329192128575195660688153220208733640960863975884870973489563815956033322231694704727327631726760499998656250729424587506665376481036272047028905106568672715871524064908168300890622889074549046350680553412475186442261057903210172698951265395745775761543777729612693374575873077721603284154002788269269708595789100271995128637574240782601593696168680505399165548310858932977746216998908481281066290224179181564461338485792711919772402381509533584322097721093855822217915898175527589145626532817177218704657111065659248104712393425361855357856850030800014423871842061278348668985521284935896485954640044892062004704816292797723565566446527080735042015704848338251573761445927482710291559054304143168480024601341122076470882531821445495252176112222961111252399506188168415251444632935594551399442624075324005145216818887223276802089684625106038678883501384902437407081158541275096246144605858241326038905098692117361871548162614162025251523272526632021248452790627977395721738496253228454449250310160602171331610377466887922983564922821370989740559302408603804642370184377115549709656365920428107916459906258405608646848196797224346651882316533378913434770664591184526681530828133638903325994372635031245578296361187966027927696531946022717047919009735222513835855032203374292265940479346621564968154579136905240009404209556450838471054463868525204203746019137522276283784338770309407777335465183480517163249395266213525200509669849073934932113313293129230671954239983577742831737320748336750443393441337190524331160553784859545846799425152352950000497691207058320968811948734590135811694499080909758965355373277331391675806238197847008426740125609770850873124700986256644659192574044469309113051614842251335970797334515322363692776745000413620172464902282450396976536242683641933907020110695804668171107689258122430954301299049664578823805692932377347361395358627435132191741235600902045076949092920851770600071444235714993535474747282158983252930110531410783508466792474123268689845118128640143406710495781493244561535695164537682853994390855704301084902836753925380271934194915751267790783435329160761807022310499917042292189711691265355584602945533273423095838795202017108215066498017975115659369952292109249860322172993124025041477403015086181040195126449946277982864258433200401222975085579521994391755325935292629227624455183563825609087019808022039389824754353221085643293914707668738327611675669004358798489253124990765324649765382823071208257446133101315452472928731012718269090698686294538529256548278848160557988276198133999170160655911863532717945595593199923471380821722460776344975091085516863099432523440777801989038253532792609278025874273445546767808026065032752195887130871099927098656992305995746692195876055977651037535315914982075650313923257842644718965944387390221313820110192118131077911851386802996191755240514870692517594542200250387275460149661477147811112937180242922577106250850683941711300533733949052319709814671053621038048042597002967917524932148688820303126392716254624761622209163149652086225332764575947206691835211459217587092511632259170140937788406895657478830981952379421412652605933565005806880452200524888792337437776780433533749675235131294985037654271691467044173952112769850397987190087070371425452028014287306905796416642126140466812777578857985388301610912892516777899396659398137917889279062800021563335691795727622870628754942104300591503583697212687220992963486628214912210385903766274093602481974599915278722816133310389418767466257116989994491510456400708382266544684761293549618935107003701391898034460694134309762515037675743921067005327831486805150092403247614709480625888442166921323474614535738653455180897958238283010738667765610880687729304911038661092086895314075696253862824107608264557822706942030425687887465050270644248262981368615259308074111087609233815537496922964878910356146181642612013081083170254315499193172053119281136353759640362217101540623215874123477329021838128613818416229276767978814156664532264746928284527546184652308594160833619192223107545001361718818485004471743417324903306068767497026617474738891270899298144853944241619749665765993857065226559028165629538708868156334172066464556389261371888361832074618961815437761110316407381510861371406584092818087809845723798640096363569155167007698561244183207554688319893330685205364359190308670983917500400093903143591099650393094044222182138230176584637863882994595935667315344467823473485221956374344776417906398154464008978091027527399645768591726267913199907731898543568909458589714486139239506465426173928033947095218254138637872270393607508656613240701976204596636635060920363664193689366303670548909874448798879188980099745666801408644657227534368393334255682655985850056178824078110383355869385185837079675532432688690284356455265606303883437968185563269970658441552336910654006105254811985462006279749135490587623746203870250568507286035747708119681809443677368427588178757747366431403161305945745637245514048010168828604004419335272737568972089847358656173540796812329513437037316750585343018883981618434028753147543439847494131462710018657495729584660721137285094060848938658494954351903983383535280163503463877316964800453084774570614123402182047889009485028920204003314312805271279678319836270967449313441656668908352528636016241435740074215698187619067176756925639910783352295998194560251726448716440573209676220589663436433799115328848705865715855399991861474021853492194295192487541824938918260929512647484225106572608571756614398416586359432328445699000869548719406041501167440448403851917923715787383771117697925698741195036012029306356821999286655818080981909575487095333951460461655798383402601073048168030574512269316917927229601229277740456732725716777287926343846246208378338672099319369251360422715302739723472458547317974430793626159937917099144048737623316546697359701907140547970970380817622109781783573154342498686686018963750055420675454945592123417132099170105276453098844718653512872858927590018142369970533262370047192834971444480521545571727486196733331743606234238467635811004571953512584554848424967784540800037089371967860603549383706160670405652796642492283535340501133201196714875243533967787611585607490936433392196061221935569150029015791884124933498769191865058866377569075445864762638260644128072654380291633691868129257087830455696966731527320093988352847067893704727818490142487043572459531092916500669700921176263753262436907550911600414320200911693192908129734885306752161257012600734089694223364898496564095635557193074368161868199934692367252041866000477903683195513638098465965595209623268733997245781196472222500006861848398206803574742203778123770685704075078398936765549516752006191825471514341822631627664154518943918061947266264917857475440841302915652976519107632726298481398313650524885770177501565638057896745341963368592867634676971615557836356303667864846653426527641721483164668237671721779276706888344718726344102870396839391546306295856089969560427551056300136806984764194777046889729345722702397737441822280444187877719232463164584226733203215926418892285739001165936666349027739733452042135351776362387087776911002999905947285171990408064870658134192513530243443235202246867597916199195289836381385556106658267775353331051301357322583567055638057827075936252394297553159718502255602286304018091564848417013970816851908094152189509742248997636574026303911844468668909372977288032796027656311714508855876842228891715919514573095148769649895191595121421506425387726422595350440873150092326999134151994130447207966312747872895782255067602420159097876328331911008050652198716532004293032223774373770156078790901543344589859147896702847311245308796727085872272751062752764533054127215878067734711108573573318428321791522508198967926664351294650951016310833721218968949116688711744142290163935590866765606528569970957035679402532626678189046059128914029864087369325895459562854108601671589541974384696722782382060836223898261685861951445702590804135136657910393469569823603879516270944239184672965655013767935239850427753918621646329573602361436400667437131602605133050547333590592532742752009494206321010344511362515602533806544533192094737733564069271908685016259144150704802554716915686614051217245733063004322272167585180613529906366098814560411219667187184403180914573724649207395729457849390774077484148194536531719424221055347258364073924176539094916169636071152719733526245150001345709969880511654755917549373511544104309258732059062974768304985101457585032451335182587635575657778279272393750110773979497640439137143317629168097413828252690487769697623260698808380969380537776979275592703146488612157341502803253705480112947942633666930078870948803049623735348425614770665676486071333116434983256935245320469049163761858221083068513485084858749710337042094694811609900447150142203202136086069888181665008039264454560332315706283521477328428550675838339087093590583615633318043917054169689638174703185910638029934315188763399392028580973483818449170451141152237276499533809852147496218557783711398761359540376490601661280303985260897963502026764082213935541982488087777941533889757791622105147963564469734509813496247621616651504401375030075093486052851106805769850714935105575317525432333531429117142528875034741762362570582231650523984675517362166758274761865411976627008095761437330530531532085440834000381254221427267132932771799170732904071836275609202179737161034112359118514183656605810656511428639849406260928759794935286202079085421563708592280822764405831553350058810385418305876306577144168739755908893953053475897071870718755322136469564605842413877813696636827059682854348755781483385576442883040251427633405014998996990060391378252352488431572371836068834878489051117183923607552401523890039300506085095669143799874302487138298520138833644348783899762930670656020487725200849185791617467647631748638490929999194699859615450429444472535620491776667220205440535029872345820112297832142218430505547477729175191274213735034149102330720037879375478552259864763277504016297926478962162043265709064303428592021279938130970302727612524735003740163140809618841007115779214786190253901137660209939114254527503185880663648513429648703677932768328305691557448058793779964023364846906812703833233947236199606798680476224699328084997057909269447341258871017221363636871280244646125738139145276412769122141432722631517033118949506032358291271022474273430824590973731742819905394789691851023355999248701272721582605353961062789986466384494441419873832011388095293696699850739929141837850674099497169079254582592534971558945203583940251100203024300973554228994392605144871652566165718871384875546805731202726764829056103089198740487096888962817653916607925851719580297403749814069682890539696044192029771486658427614889567950830402779805265116710375935786096316361482547239332323098039120163304004133569628184694612452849176735337278259190052821866824932375113291727404614516115864066147717551983753966103499587403500376619962357612234561647984874769127010409284089562006923065805715745312929277609178723918304295798256878244533694480603573470220943374628173672311673623288877590728746453783703594957567268666567229460568129134257012951190799472176845859907335667625459898899902845605815446547132412890365287211869407321756938064155974139461463329626531846013895417118189583921866972462291087076263592824888868723703897164074034332794344001364977850294625191343634320282411453925471260036750031727907632128359966991652742971546277913398393630799638087585557862905622966792544985580268867947000068740671250550277229304996911458816298718467792407119182529120799162329064521603664439007902522184064354901000550730928695765695720698164002433398300148109768544027129988277138459684841830682733251227326020318834150316568573992397420400526717448645850351943194822930177492499760627978568238845926619945238236991587688099655069069545714989524003288422391633672505384339632149422849839576277393784782192420475481037928019996522893314861439884716802072400192453949046484958268341974821742011200462820334880401520605838150837316950613190672418398584747163868497669608709511315390032486426381775821646425360126783177714552187727109403416168268835454298873248302268158654942743698758123258192530583816929679735634048501247126972010579199325755441523556492674848276259427214108751969755590216948128825458433483990101632838831909338770953028051676887114822295118244695277078170482498772307181993122999804467210230123504500572614179239348239751049448589267005728842219531445680413816989727559663297609478983309844121627201609278876166347622436666003870198138007885722686519680455969645625621845733722143495059502580952830062966548660025941584219216925802995280458305801016082945710632102775971983717693196859757678460672670178448173241325304460478650997095976496867980725052380269617788753360322977698433595017667456314331617617293265595288415748690894266326662310722303333106698293695622914990177553031804043735877230587195709174955663983085227845860435887064620178838365349637431025171553543240739853082975584238023830625797728136725694617686505494993999741938669855587967745822730367676750958841171913661822526901462281263527409483970871447573231601453670421552315278696234486246118492290081411180298868791185113975570333513313724640023846285027976514105230855289585435223076835916773938320898612285878052487859046872246632884896470676063447166784368104554726363369807969804812713564808775737218600149400806902159764675920110741453979444474873908395000563755229161510419500165679315510860718821277587804190552076877924697551284444699324310849253899884156185173372048324439396462153761203328520994658075049408494287529060086355415328352250437631113624786099080572447446791037889409660576025347795819610053971324512916084602260038734840487447231304078023951011965399788732214792080006726684099659016252744438452360872878897216429508398281342500531731382973850419514488911232613512625459895050255088311970538201252562539615101629959001158313280703172663528847709828766487348711393221652490361444709592030149653070052331117708925932432075706762061337766436761537869022711068736421590157417288525555439360943570077251097358377453286493536120192404365689338422574228181236937578105777310232404361640872287688833083661221641767383184781379993597838165189259952317058270804242391159133306635871682701647112448631069402330035634346033870156755383985579052788561068650398915907288898886718937075540874305055379830214412859033140229655778136006615742735938484400724413488810067366513280728112638462765763254513948916845725086874949517977803109013584820357549767110079610434464072589354499465064751179736767382192509760508514720185327050390770987345013125618910887995581114227276212390260924124935929020375318197998045984972585702079243502414891330534371606146280613025631648413895982307309253662428856086120034402172385521635181380203800060241948460404497519796826283660970267959444831935071288729968966865031201051592029455029407735676048375231105923383015298632079774742907660726811662748807877179053705927799329183917617415008970807872800897702761373406337679566632868011427088006918330144975048384451960056087603470332926380316457229807315671006170806144585948984958343332860153268067403572904315187318671666474634933896704521286254543368362012127684841091519523005348799491864322709519607795943276979161523306907648071547275078467801155810435987667145045539839151181742151573208875642585937573705365938976162777146094312704061375345039580386074432800372250396379487984968230522780101835422571564706738412973677098371644140418998205088873708703002137341295076092535166393364935204553898617256817210955273755830286937516747030346587407372531603076840914164066201353421551611859078797464468510265013943259133583548714305115846850150527658481829603439118011568033094722471706809769925396355075328226636478239427044012652515393539739288465885687164854919245267676001036261349943298940281758455251916199171275830872561665820570037592506468091755003052377851224061829233688420905575405616215915607368863933902989777016036060528431480365978293581153936602521062240203542589396756425516978621096526752119125243543330356995878551213961176531992041577202398100470563521930009463139344819294128426369885490585689417654058324011686676849346394283357090484300693884999918355161569387565043166001430430578741414693031599695837706028664510107536469941376943625905020353617490810997717590897280753189383762714414281631089907474591582446053659946014647247464804525350530005383598056407929580307195086427058503636003043675583054173650203865272759465200371914305854171815051321446065489415377846816822493727937656413917383580776141061619279749125279985759276426847122347680719554168176535921172095781245658013660785695981823691930847179391316260173320363159419359142064547464463016244301452295179031214697136187867818580560148984981629165810819234844394099711986549551526629057797936898925319618142706178385806603175458773129160903245654623599663082080161896806209668309972586900461646197421868852794548507549489696108896972782957981681795542718350276702083168096688150615447905457274710019579709999124010117046150055968260345954767874733013347252142300025552397712483730998957982085920100839987064487470004869422609977923777237409253176353795196523392304133367696799604204562860682229998839087119570852814549150870691854514777884427984602650299495467844270832939219138344672133904147382596257932214494268909317714675143710496002029496578247188269400189433219260643662789698497016959604753234788735903813030739958430747053880312917723508881224311227667627469059281069189027545734860440040591841651531978991662782846933706456672858137537741844561880153238887353411646982248052841649965863538328387238848655970674460591542627920961334347323955624757096190982938189971837352410027310853039431079304265258609650642767618975590389005914746841321262665616191927852786830521573602316618664003674135732001998547234162611985655701130921973219648666343564311957032366240584352812761301813665569227855544406161703133635617916608804926621483196179793470805726080885551015345096858752482491829779670763726030945711098116383390094257944393682445347935249221682227318690939094084731924230229390897918700399365389069880497954728803237355369548369625121252107471542785233253216273151937638871720786691019652121083436063100212605325938467879798422735999618059696573268625677396759655496555130715323961476452738992356115563344021804164403646022340674816938600832147848222424745509629244926670118697143142036266224888730335180884034888675200304286512954855414392928647194041565372495439619561862781563157422397361548176042133410695580843360584450459304563721938022936267021590229203915474961791006467607933014907343499830470968265884100710056758560945322084163464230329199811416093016208810053855708958002143075165138204820474092569371497755320306482535616949685505811177869797373672497828759102100649102236532101907433154387745619307831498261558197741658133378742817188046973261020670346521268779350287492102058624879606709419877635176506558883247845604333295534356966482478082586381766553723293308345127870137713763292550896498730843466062887176102660834266782547447129016261063120640064153881926964135261981486862573010931167049126486047449706294951617733383481184735566948331482008868352666711570853149444449134373282259382676524292993574175824060029926950959691374017415529760486681404398591545246256124840423177250365331556488834620459795572476816759128501267508071297605744333769062990703705168205884668908657767333715289453425134989304094844788760173680479538662662165662350433441940821215973834347190562037070781085236686759646097610781414923114293893532989024980595050070425202919162288398602278830515768320181452177955608558194708918157664153650720110724433362688926901875314319251886606047135974020934986759396370937592287316116095218813758714969637568029987863738106105312065326349006473394351068035846985298371731780750452629912020380455162548010332148737657065302240777421534026067801991715761453739005706572552613013441891070085519719870929989623235207013169586480431909787260606461126483985523847719170484063333136837157678812185983619917693489000059451140601692453773789225861370857016799167264404378893419853341942184743272567848209500154578268301956754519886237254883649624836439501123493686542479127720474593288370219840098702660445131618411353205992145734046392061094727200899745983843406066974191576891535745573232405749607995164572932536894903005810324609505663717273393922405848475280297887502722196415950867337745695894704646093789331024413729678191618740304076599290371722720193526541193284642437365474379818247226279518225966148291481169815793576923477128523647577138369704993799329035772234536235404284424413823987145234965904560882783496325350993605910233489914889271923129546774325682167885499799869581771786577192150619151268464085856566208435074689708668273238507597172054462897368510835550149312636594603561272892041335317699653827063895171332042318143036249922601855051486322742219876554371261695662124717130611038690810657016067361179674572628832239873343426282670395906510842861759425346135323060601189444523695162230760597808602632818912365729000375060894388125039272283266886366464632469747610181143327573349791256004913080467945585124951155534621215889902545462803658854934655447741324633024159705929648654072533084893491103316399043882534009432429369801132538300538558938380099452823113081363396812509502325372289833349045750136828139859828962235847455991357636388762021640890337950958815032134546193415504521740364663512320071196690138618786102521671182122273411526064138991407733608934296759348401886699714871870995263492764505948969259037963778500969024634167919450261502467390615895791319204933988697461885081417330392414210404718908380975370570578496314813073992624454539698448387508917099697418418938758595291757953827643920845827654636085833606680080234089360041292956127968797803729927789279124198855706841178737847584456270860498968648533364618889787136422153478933092736991237678465888939805860438605585427024155093023685288885547722305786362651841391206750585115889814925088761741167956052156638576127729538288768206646622273540047451458575219574252496593780686036558400341475304717359017798541260803049012422659584063681243891777027051309769720982288781292605000839867614720932832711650177050741486004876463371430806110098849622807754645366853189964090426306595058179847656642659868021215087112953699603674540909361594296782139363935978989287457405242979831212853420206458731312707536219654783375922177408848360472673347173675327727090955997206806111563265127889763781297486157419138213913456847439969649555253010853214574307632001408296797112493159180743393713809289176765145680669242008893258700516183597749624902419322021214452828833009169676066126360645525825810253045040624235269174878719612567884675308987519433954792951994867533130447827954448125998974400289412796698876945039862576097163431322109866594075029361050062825703986915927264781467896759507674531544607337391689797571153468207583345871594406147815860896269379007012462030161448505494730957088840512407835780219473995989834146839320403317884612055550303156148252148172315278054066092486919853862568912313160929840764675240421522230236868408739718855492716248936890368984759555134823465090890973780625195932494159908087179634596187820173018342692528943058172808987678230915959906932181190317477374638036521280011692533276252818411935646609544623502263090219295373912778282311311632763232904321786763784005533781802467740158839870564633879378771323907743077328457628248740459672710646336579856744644728433301127687134704616578810574007274665697870004558894356479629875618191259098573612948338873450872680465970898880545290344394771498169797006988566305145892390224052477968488040199808153046007911983493477257214751145852052010048653830582126541220024000325704883979185547622129802359887895478766156271608835045973035582591350688937624838222471923560163433790487823821961491234534844188385321188514722313478028637588600055226860575844617967855135572355160827500843260534610088156370288526935043202809932032541734560893951891760729766612263087562134405310565770915512282356307641482323955784982011963484387608588892689723687688020947465911473433977218964558244728184982470734010862855469679938614163732732860381860909970603776242912373691832980274214656856352282107630503250242468451941425156496606492239906872929195651091066490939127837345014917393978150694709287212994256965278932664627646479842293140818941296910635262808242061792323047710141060047455655263995414896851560574846318282992465523480326628952123523889819618694287332451919992103675603928931865204401201569431234153844544027169835279433335336171413280516553925920701904093111829475384337529728039135228607967170854968446202800181894328495891775176857597074072529535654510652585867924851201043554591987277460328268410050148116593423841125761067205148200065964365452815777271625328592175095068195877942420877783521712722612830153214744378347713208194153034110334880816639936278534798264796903803178601521305745895228628964682519757598130837383709352612962609949638817987049680085222830585837906409062063781900062930952851278372235947682690143605772604719397878707703421894856356083909918262238941088853819473337331967770394011795218568924595663244173449404743372530327368265802872458464477524630756611883535586317390799950596762406252995475454040934590621580633046529220163154071172782427439530217723567870888739466013207904813681837276572418800730680805345298409529114754258361435481237096990959443842201003287291965588272899639698889784639698154949213447211150710894955642057161628173793966016098680300633641225916911239773395448804512188841959591178886227231373329012332721593698847415562137771880083290166250514068690705841759646141825786230350123592510816201492088796279668279663183787514544620456058973062568579530011729852174709775209780673725780601527667728380830104752238077808301664055656108685793227524651575542760888141121957416380055170103099391637253679752391422396172611706775828310820525750325643269739342230558315351840943961003406173464184761213953925364232112882143382588470500015285345581904753978364831280564333018359453241514329626515379883260250250125011452696861321008716668009487291542389817664506729933414394821711596368563389348777794944645088227901008911172922156943762967946276528892069307534684243308452063448646455577742263713628296653082377288805386761425782806349234003661724024055471211366515063392777725264416252861520632056892788068121213496072699627230551787263658396063797858805380973852280540067608724406247819680043857176216526278211101537792727572648380761348560232268936924747248470641788012845741969552400569479331949297664844160098933603286739515501930664311812828953828920520177719763226446587099238568636004148782107165956111059803395858878592005556023067853207831677675601635073338970539667025322372705953627930108367910838818975694240861841534278130191590663365299464827605309886663180886148280852134860104183757217479129447713219542308147737489628943142775096397609227964165803044747268305130388721151292336269748816230888225789110237211753997542987326068660496806722849061119089455923616805602807749900532700324238934864389954544858957973669858124206350672801436758987501711738593267483175355732643897644143350758874050995131952145941497406716138822969587250878856806879295379385498494389400992002769761141147315604937010164766469781816593688379987079032439961482135368485828047290776329433255823636221323308155989301862517362832945908616003055215654927309556964975227627414574723440499951394734670064649734760989205497846609531427067252139365461811919221107815102156622745486834923588464583868776938514883090305265527833941029552404336936764004822998514531627787962869797276504411132458691281076454840281984140560781694721370571683556346177047395156410153233668236086595001625462365013742121157852336964029104273051628898954675578793541848211779237586516510069342834220353037489431869200741446413025430832780148830235181702088471437450254233386664570707041618768346865330725433481402112523305931118360213243577082938164236401736504779000313315612581313179053963246704228816879775852809734543173922606824236578680643992182166882070201570375843640506275207198797099355492939911683202243784341403153153333527483240090238444884837152688414846442270277785258908301993685465626788482705179103803528603389350732300336302547239005519562808903856193744734521953258165822902712195756914886785372398047660186573562867414416323071668665245158587558523716091582059664822989338327085917000539045060739496640616747089244664966903911673550204248447486000562437161584840789982572870458697010385759937553772607688727348347550410183948035352760521445900047193664090551326845497860421209510666694764047384675388937350121144935587089151131306814480289461723849297764519740823409544844720237829069575386756392514372198682064582939576936577706920287377344858005686585522646107245445398425211862467551195056224048007675326544894191719102938804629001652881714599550820364402383087918694897541036196420003811523073499881439475994000547828858815954361257026309579750635140081005172634042451720527884194231840128123249120406558158550019511256208216448373561989876181005521914765357828760496458677937654375155326177935367025746813636346936754191867934937546517764616127870003449350414215337462108185967076928215670472349375399520466215641362140100770546727683964584000135229766776760454373870319289801351540539352769448787949832297271400791201441909924503908472304387930374506309216507598837666656116741400843098273538894933809103274429268289161444639433162769357412846411528506703241511139012695618816200251010772103109959682175753318262410956955217966771767106139079259332723327937770804095346845651633258386195637005992825680383018006612777126322581638102568240720004972736083659878687491627259283728216558929204137439344838001041025252666866252136950900792157711704799695047344075598213835982670987980312558013076229977994927150012011590647048595971982080590146331731487104056071619386013939202672135012098953562709082098880538911412828093966915042079277018393174746493229624906095071398692458349129179013613807140734206057244737291149692042838990319994684217217473565212678808678067054885010715713793885882976374042178426254041681134360324075649220035326041436908782444077705325335437069995113673524754851201848484583860351138838041864151419991923593042546404149337268112621487208170940626747643902669905021704784522771946481184276213791296945959740602745275842942924196916616902285581445220867732963293004246114465004853801858640096928870612855186644923188240545030935279760069513785979517852145433879140180165185941122644035190938780600565942343792724205035634608348410715720164887455148253314799303708782197554318796043929765174327123039857761804600792871295818397309678386558215526256376097963842688312913693813114749131661704957264805280493077387514867214206888842192743458790185520930328834900678384128467819762222703904250062948489863345326555309938226585354610863187716605175733746504776454592519048037267157717064521189579478964950268061467967014577220750500598762828591195745532118266694892748399103575923029193943309090513953681692962666891442625680709785676160989485661035486599393110151860436845909279559102488609234423046625840752465758829196431506954995079234830496626700324512423408779174073979962145766154009802252705677571448551820284664277526530729041695568403033707719710453460717053184466292747914489868483588541619748924762685596424690206175344227160852056484112707865940736693228016378972487960936740155475320768892072420082338191495071327691576504039866757045281419572905143572023779423136632228010089565240113529167182002909756968413748096334946256069800402395961093525255950707117183994753948447676251932833051975544712184342595635545811995969991053778234477954430427543774529134851184464968806269225446787158162547335397469117002920308328723366794497307102527845609900622961005667689590938308717192103150185683726983845884016548018373157701077262810315897819384608297627962414672987468736735241691499872856850073690488147594519097524676627246094743022944345535234453722129831718571222028810356556619028172257405206446354371752148400713373019535065221251281437938525198669944494239560772469318228205922567994352101699665148287717762575133071808648794043268096751665905373144344748136028093111904733475112987814817315178843655399319440901208729762778759399008906512643577203147919018483178938376708703300459562932070423930796074936103066954317712504794758332826342561304904399640355762214595699791551383410858750512216397950071280859111670495983643191189788073925406489766255235020846427043560693427295981123822544934435924262894589512967293265798402993100502271482905131025193618505593266658396446754687806282293162964035890299725887358320513691892219726109143417752268380833654392633588451725283861161479430138122444212104726206739222874707569015306349693452794040469546718481698884190164657130639142127210961326977702168793506539805882596582123410680682057877644810941604996235844467987514350644118341584209822703859981378275115669829238047642561676836045504912802260343571487311575453229153233475137668297806465594013699536133789145247613479242597473021403932385980201577868028542804409401621792617660520703894948318429155573866729142577612994826673477019320667297664182718504715976111077906024015525342030065321602793021889902226685574179688642798256329898381399634660038432032709187727944726989318616202345661894460826591783583956241858268501579020917387324946692290557620599388788153585941230778403943199529586617155765635942790615430194561489398425075724208337807861280159275494264153463665262051371007759276134173867024026164158098671269390749529285539345329015790397662500313648616830518834975628662159831816031940674566988372759845006934451694013854959420296013674236096147801075621344940472939685938837751308070415357954328152070210572033050623544778631834801450192159068204407980837581445669236112341732463447882795089104527825847364407608177213124360298132805554752651190836085456478651404343459845508500703991286236971579885972579264578814102655987819994355066403554036122668325737204103876974621827374527546634781824128714548260335706899486538862005260648846299121853507233851411642719179207786240817662786808388172872928770774010822462338294213312870825631476251555076478751920871951601511764214741951870133932766225012608162821131894269304909497087067889165169303611161882788455607240736010753177211252989068176481673400181614104491581140848805632945821397333367762285226390920647980541455143747579962697469474424150304756023675744814613029024367982984202747254845356899083686008273728876929547352932686096901909263459890015933413462009301178187948480397395381591687560391510787971278840352981060570604216571165671377726446181458349804390449135515378943352695908830228242376101975673321156099676430503541967662524324714282392483376345194460353361630207893890953717942220905460788854802124896764195928568144293319684211371274066919079301705518622263091672833397588414064203091709158744976757828211093563968401230687547753517785589648178695145537678692169987474734357207194617802159272732664039659240494533440324355242481070716579555456310955564290210335749233227941522313205912859642441688252687181712722033086037323937694462996764495087621462035150099959319378248522083117469990367558177613683317753551930866582826407538693351055993204443898959747812366850250157718099066867859177510791585043220246620073458081749319390955152724066972287922826718792559730778128319219196828138267586962797849826720385355846347470315549948990232602039946983759282399652513749920644149832924422559141713392205534912477582273848758137835898126132512840956405577454039886383397477829210583331919000324404599652531262400611987359646245350710199001824412270382924045979161164724331513806154087803639616638649664952482632192956996027160749151032410440733001888467474036727929698259705750582594612482978169247674130409799782356793214545073258610684156112212309453882595601197639473165096607518192315072266983254346521338309099716961114253267110384496533578897872380870951764900250743546256909993788464452939356055943676281398077246167927634361228841659914288429749222216688306689422350084468954781669464865335598080913485983477658180560076150305399785237163450006062513143651504883901463891761412194007667160857292763467762155269884131411235376330702429891531174040498599732537828670253295661289441453573620944391786200568402917673602470096800377053982079784205634269877907795206760515044175751410838409554574057429411921366627923447230219966790768040387477090989602217812347411494649136128723701100421775311003177377518878207263997136740351763822278747580168278840689995260676292473483285621699595998303475322379810697210931241611781622232633572653444313073281759637158974938281279661679967239528821165583771210726046260476895396582673023087291457326886253607473098278117755319776364531840310584296512634335127905562883285717024682813635417936547791022543006330630284989761457111732717176772930687159774541072091950693639163696851922415461912127980010488535920871542320004207433399941795078242915212952465750369186633272098358181147270734685626928887285668353997562781441314000088479609098343764148748880702218817047013946908041059017942156900100990845713460529651758363364147772829240257269111544341389214193809775292242958149528747866549094081917113951038905232823503480561824687043535934500662213076960793150772788622183450131143717976100293249501440773998446019286649251513874543627113950264138281207942183803069809449581191029078731473118592557785465357507365489345038887501391951891636145394210961034673851590104531675181749989316499136292106916710264921289755585100168808554386376752599221058505875589270952251456794310026130023757454701438079800257020696334162402092074531657998571653832807124055864010558368524188287140871876133035155126244360560666394469775341593471529765656333678734410825389813565083626575975696162876933279310408229739431553487610345772935903418456819165209032473420093182986501192450306773748230723805005209077630297209955971961115326639484525897390595546752479378386721428479885704791130957981135317557417508866663900746282122889041649700084243567829222292030662740721202908956809434959185589725869245058955020951694865639129494996860288523650412594176183420409757911028638316546686022487414776482901961229126236466333006027793088414520869920899915785466541676622848306253970458781191981778951232297540013673802214884578747325036437870790188686774752121594312259944244431854616334540055936214136339983227959551305131399070307064351129781894572566954078013239882719571864949382349473387082832334553272903340292216062141875065611494307606838767066295629082888294037907804025576603599643797036989349158062747403862532070780930720302609151747040813054188705315916312832165885462447170701498441677306624184885224450164336431765714466423029106322053624306313371682221830187623002714518753703230212565788681703972753086830655180690521228710644993250025897659185620166004881801078027835043280312230325142869639370623313432542569219077976427802775059293707947697775744303814033634897606512708464448112401752011190102881336793710308336180184489414970686597585760658927276894525375950570205149568894267524103351994047809795450739835100325642231494058699097886540978837076617519445069543531261704756445935612891651325557544381558666355308953487538813084870252683891437054323804174366955446247838608084735106544848555289535954795991401466935171919361952118768877393908873518481095315262244548431599734579844639339393002863110739247912719182936183577665854261169796024222855107628335292630700269019941761845525777260289214622255762555415028285694617486664505319353015638079772248348827410735096575933649748489565191752408152381864332921828686797877491905306071886451538775166933907608809816795262042070324939635556576216658705078677586136408190814474944243995246823977131698743706292324017832235696309838556974546188063978384516690292787322964795283915791556666593151883664325327248213066199171059603373311171473719365802624886995344037483245362706309568956952781707129710906339276973595636472055452285032609807168769941624116336683355855898169216689319498814957005021153444403353781638592626368048233194287101241178965681015227309038166473064149467684483631782861643919575238660897765675413512988809219610810696809070253984181959586994510056189029959289636487510038428301156874632289486618184616976650504735761274289913039998825840711094202133050413271096998973736955607344251725986316370592337656102891529084923167913053395403279283928903600503322903932799608968715884077888794390163686276132664704208636280251172816790264577875121666798525620715448044765683185514988457297635579412752792986316342984508012490241029418801045256464282378895481482327950601991365105927075943910490577795476442354560577801305876581802282792146691250740983255325498164269949478838122770068576426951501956653428777862371553339050114831120870778398256487762690751519316207525955802076472885537902990711710813271504993570300855201008365304897746567449226310812377693410315087140816962002168367547764423062197772056080104246772669816232433373423407344094571772237162143146770742215757163722615809922729098454915693405676427842894371212537083606148614651314291099268909749124414239493235220620057394436220162444128171543509710923644103964082931430102029288716407786676886589747333694172595199886128822149103896573093155042630029768540842885869963398944643134637882043280075184234514180256286781196404220613330828061259622770345253757379048018119206960586570677807471105546242152527107588595861221801176312443063194560644953895634442633366186583991199025615035886286358898877043618877325479772179992692374604924663889333084996208089200475762705496543169158845304761973422259989538695292494965601997220617236321467974346833714108774606677398118507715552069343864867975443353620407062230663621385346068665466705009481356052059230135111606041995377317770744937275383788899656940871185430656419212471530157580601819857857712717091120176176029544317461453021152703003684371626415607370119734970874667237648277909938795544259484687777595086433264149558858496937408706920223097147455717437063277964500544818693407040087818011161305100890001700814429564587004914530547710951277594711498836467263724755190706478499756957328769954659823716336849243603521028494077365994346633263151331996446302703389684879166495345741301299232246230103398014674223280441630316838719882191701947378515610835330906430778446891823207142300728889214863770324405734604363596115169944917730256550374822160540059450343693978135645452064908656718577375028160908203245873796135310107586019519501272687136131445001906682205500626396542970339478304252358023812292425339651089262476292017600935881986826865143007764453263795938013110783949386795592216174188598693961719810529780243487650920011314584940415496667113637242624145997797904713626813946948130968230265658391745921631949937576053471760361689479770736973018661782563398642139161517481555785610191461472488485101981240055152779558259471294456161300275139702395730029432929891580165126950090627701868360151419385210550667893270192160271214674361134474794668136023949738721193092031404673493405118867723251960790212830606632620887129826697881108996788745562664624497422489836118188866868531118382317458604054666945505376015175163064918187122623157590039851932059407172965459336949706524515115383208816338023354392928901572566455925020061719436167083992704566440677567359961111167693369750883798539433378488599745034697527272481727104831032475603570252579145348558076319391994689927852893832419426078716326940458925897280143152168096626414319806707186282102750277828804880777190893976270833518572759808707109606562733402577313596802248432140891419806129188262078553694522459008634055795844263660760535369023178703967293923306116688907470380975364868270112252901683923884155533165941051170814681290385249455766800745390886173396101171030714044280620946084197694970314594398791978192755815395166711047698139697953278632707425447480162796263663896375837493590383133314448188055054191153222403687224915274060270276078990930885331298959047915113714289994813397288844210797457415078792671951329977632306873997295917527847040274932425933544947449972943088217314761687138206583735635712749887885239290030499769496213324332505726408138129174101662651274382433870729117440288230876037306107285290269650964965805919111336141946437758992355903304062091462000626307940911021015429615596759671447495405939089126659734597947149176839432157294566249612008536594661803492498294291902603661704265806611174834196801530007301080943530376408726721738440664614537472398510241082689289354715485694491213893545063137480066970773110770790570716491794980003125759721276892951033968088954606701919928242092012877949740486314013302045819898193633884960609729961669230492095256613274242326358683849044611498646087818840463973599240482369175787486449098338157776316397309797237163221464107864048820334475727017714784871063174635882829344842148448869041985996177513599723840845192342186286416914827452385921743993946543255637654063973474970846398095771445587442266723534560650749969975992709340733280876578857060394771084442548229410704420666071862989848549404407014680326097261364361919803739981992991999522306344202245476886723010631265863190053671852616104263705888113121300694881029918924154879539837450522687599366603083964837388278595422556422357346184502177567369466056485566495149514342939974922564507332468857206830356624508667564052818450558393239575147189867593665969629658821955829896110857702785118241084841320112120468666152902848085091108039529319650621326374459795648529940619743030961530676671263166005690088716089789862781894416776278100153455325592289274206081990649158728248906334372099322116919221461885240756760611827158714911278492354703828416357492102625458573801798647377948503393566143636991519312844975528734815910063748051888757643055760787430839893954969665382970858458936518858496552265637851998542342160942179399154805376971806917208365603833898918106899631426110243205567592146517363170451446018666958475156572235596168523499774233052837882215974772072320400272346055104955144065006306454512784218280491449921623597800478267325974038062084044182100074911157165500824755285030263211320515368791412850720749898154805261805371326613689715040558167794791356071108375278203156101303640265202246695999372503150291503842945571389212481696170893044579761376831895592962503346186660397549331802545423761487757487642323916760121177356346184834754749581212507622361577474554831027059842322553669817066567346515380011009136057660508523163896302522265227231688767688689751459785575417005774210887445637164614395064309849805200266063295580517620751904551830729650024675147784907866632729040213687286949832683976626549117133502917809653412465994054235151875551936568203594766241276666941415031140026931858000941035368770873746220458066799574517697644654134141486017605331653049140243250481454369818903455342323188284032683946518173463878301791410095239487599417707277510784140760503355777690781740124009274310061366279772799581304203750787204116772350048398546866175059102043860413932572389331072784996690070991166642828018192200065326142956905609789496113152341035814929073092303853052695386653028877590858571362819749930326703579321913596185806979309315575304322968531569691338870542453930848822653363358965598607460457286787012259500293808866276369424688409486333968656359219867650578907981686620993972507662880047628901808745202550828162651300198905492350695284539905142570488893033731575157562228504475619272223570517746914633439934859866262305188091280283620447017931793532509841853887651196394003685641821267871434899713742613887194947305530900147877441152387739656499706927960593248302481973643396915314452254913667253000321464384749483989697243414348598585405948711228100022373630699077864124478715254005085246398654725502668737853459388884004062115167994361579471523605702932486643710984387993904350430775351909641675907226413984744543828628483115090804616916457832931386586696795569124755071147736709365141747303691709966493116546245103490073818401863074904341087418836523857964663940155898096296961627653782740497969705011394069091573284058925984510991152184571821338724836100659565765388929031951021118082104890767749372221556962155388168338583620405101774516642234216704760956365702367809735019861175818211370684008065034559440397160264661187529138320327249077583148040193202764843122340458372508996323790922511715597354330002561055832189002252597494981613578531210971173067800745730569653902469986958260699978688200671439409056239033666345522910530995938536361445419073632010796273039462427686024246349510299408422052265273030842717877520172318846439138744873424936491077406482365804968993106781806916539234716573026491058742051747001099759643251890377080564161200468147006606101159190139699560186146728528959995176180084836424639805062286622556434503698171315181223090179881598455743384832706663061936858695743539132803095201907064000723161882516957860508035570419970584228055693321599158550675368309563525758321310498753050644873720780825991246941866360365038422018854620812031285383144562996222422448040704012665469666528732676122599729131667188129706832917628748889571846869262113287611269453421511156610405988530756374904510325325093879410753272908515153861191177573699571081381151982538658426486251220274998885676223899035537183370349595014939139840737439945378014057397071101180332642252912179508563209203957491307436204650608548592043012800663051754158268808866420820124279849812906797816661986304910875297100546846136495115469832754979233956561471484623977522642368185378352605460619188266034904267332377618444104425848889185214669423003455914307426819659243010971654393993201860385343844633648107474952127077475244038317029148429527331256614405494710116823163620728923550790566279312234924382486042894067027178872446146942266693531789289528192522509158948578882619142053456816890080278241084575463345660304311151031869752416276828485233016602437814622790519636838133266786547967912895533694808396493251213770584601051178816627844100582373582669357765750904084336246821049044876526396636764470275569978887789183233303963479100426097823588967779117891253635234458325317588216178497245793245613535814488931574145985224532124273715851986211014056599397946541833242865053635990158983735620939169896963576467470157406582818735975557886437658121920777880577684142792833729807252320604587067857153536662276888415019922715238217041808426676319051365834561644413971795235658113283758181392607571898265337260041692465268852416316371048102111688373310645938390786093332833154838105714172985779723483079699983701315309213822311690792704972887941170319617152900969959481446759037408803603641382650006427311565565068849566994741617075284237343426509752731682505218220256432205431983841429002241432592102529694033490134320349710580660507128553595907590571499341779979602984947577050968578916185877227595442733870296969398676929304645946590058452702298079154754188799024647741811168121834139526567659970900296435429411473591974711026953542161103868919235343199543040268613614636167507807577670695374947280496222632545560529024442969401443201628380654016327897705372247648601999970384070661090674840786426061204312322671398725005149891223492883110205806033154529057098021081327295568281292071295272646979101715461515049389867542956657331827579050209118883725916936601322940523751937409118304697702967815334590234576765226932969300693212481345603417585877622097974440356173887766403116705025644331489126303089920852809424305266690353335585162369806325331373134617690851407984745105940554883576992635320630243827368362609178451572133154582267539253663815902242200937556050955398227147513432619040087097723864405707401431504583609273616989212050855659660061997891603078253664693501871853735262070945791266205942603001310496613434432051513719335855485795236839771012045043563171682973905919467768404617993811244671924981394914281342499181583021805059729499629946328240444536363785147501701009072858604596205936732357882129792728380266209095556473092137851216261694133179801312880347332759383710882372717937326136473691585031020516199603083927900965168734369318761977172689287594526417665956050538729686142854901362711596927243425645530000455442666244781343047285743398104060591642422433583820839420646755412215196589766297276657098438638514858310091070701252661307050962009428442234022228653615795838689874263083270127292050780988625395413027597166230644033240072619228912557465352207713980394605682841149408376618453762326841504045485545725903705107860247223504065113342504429220425553100361665980330452766231397815140912972630802740116006834089458210052988695713119989549322118944875066668249093935960475566875555484018911469510808098796199681876120805285484828478520744438272734960785634006870131723966744885048610307805217953992064269281104684057409210817468878358150580437350851705321459987042887401387461985195707791288601453778192111006218908672647114244365912014923872903461083188321369691152782905661673120980893624945808864568384672048652639945138957911381651955898080658796957904482701818312554388906279861005556078442962464220378307721508471806379733409757187588142526224850007668935315380791960823851749539963625944973489968956665053516895844828599550204643232548717265163677066703421147629456569559495775569790793700903192933846347907749565522673656972997306829059072758515749097502089725635184660644481610171952527476140396244806977098056032083147658868514717579950750385571899793229930363609692750750988026605499885512791608150111736137699374564836827349139894272373345841143168966827085445798751895407283460725234551804741302234821241683572903621190994924205461994261305293015632824489084578436212147908414493335333673429041216051302753448893034890059899789086783197609210617847509213058854711382163834484186386253805098860908013254570401902923699682748272309499083041866868236621316175892663545437344733117300472541581869062415858774887262799130165182340439413213349442729297335588774750778012465614938453136333208249612519761072083621376882547010255392885373180417104986997028619811177972299724427089892306738433655317330922887148068193629613046565177232534426602515726612273027360558179714441123419390975296983679515969876592352182224096835059173322429053671037754616294512804888887019948240880950189613353313242644762057184343336349609769136644505512147688885252499356595895960450221952460853667408682474260229909900363247446160901322761775889395895688688185944623682268670846461363412631166536739777245137196145766538298269888448618949314405380991721679195167869397923199662113745996782865643715650654125001503645339011563259729907584881039210150700810543596171508741446528239373930017950420973304113903578613768291434746721586104237977799899291763352927092898151464710547042869427610385235947340479555461762649128191343852057044751304812786248775952939058753225303930503290904789926931861089304005268752835943491443475954574801671301699240801381800611126348393929023627740677756763433121045959258661859880144440663091686526595085903825582250873376272657453285599759394749406400244047212605005261280081176777894598939170219666830043717780667954737123294483427689909411288959234516219613452023003906975040867395761785663136817043295489453971213995464405616719424335704779076099917293506610229854943795448811065214333521587956068205705391398825007892662687228755885424583715727756941583234002183381843537931514973046283768479436578816914005156634415684303907045726824374367299405525314821156813447147493549394619837426182679818679936559741621443343310756414700187185223414899219936443678871485033393731915836498136818508271937902607698764918582314515191432396033044074170307027057740252538781567772871037363023978535511380939225126495733278268473005288299812995330104324226529358007506686124085489669415628918334442247641682648359087928970272743099423455201219705841613127046046299552938013373635978983975177672456870086852605173056298283520347974007786346477306408175493491322223328713568088622187900917519494611088986240404525163455717692509523734229393907484748741402781556780377088291745132259615443840770275828218592038078605962937098292025879988797761282801519627788251499010713626110201551413302179989782236243210920298969943313279322120521153094112712171768396575408077265252876049718637155218065427682673823925240407286896800421291029466298079082570758954822993442999580284758349140500940394478545767876803507876583842651097305868725365458697566567378787542573720492367536417352507229235798672052794347685938973775900405539161628996015931896913755187217041092146686526975854111925627069587834394057132390518145283583021969697295488866414132992818631635225035617689179557244764366395730752772138024806827490517882573583155845291642088237735464631266747975713458956021881965103004110558467427924088050536815753163124934794959260317218870208863372044927426637076497844083494313320885406020142959218478492230787940749823514919201977518566201381006303295697444777740293021771731882017911390865445212760309998942180957410834670179999708834069326966752018434701375306306368683948588221991143027517918928292351258913821288986205195683049547317920751677789055766817545716231071156646000608433121824736790224875737544532001730912365901688414538523494743345725085308178504647400368284111614874917924938557000150558463719838422328282257420508066536485626972326240413130384169210131943329290252707311557669532753268971206873281231618314541744728710201178039022675546313991711969274024339060840632786585183105632057849035593701861418153494652076357837739423952647090314743910780610543292742534347127742787319188820855273494472936508085635745598697150889801969295181246283513661738968970250383869762371314100160814555775006485714969870019237117339612570693021760225805851945554274150868050577373598859172355136949533509738156649034314208539129374818782465703108958584695854984087617311831670244297842902275804568099525865344748782202534813633453663643349482199321433433441023790768429039604835137484846723398206690680215147925561554381396830413038205013202920820748554095521191170659550871611185347202471892488978113816313256365029376783795449216390099227336238220426370996268799972793327493333530289136753320195076468085732006280687937917124505453452987533011087146151955979781083869290355046871975456072275341851788113984789174785669136446837865160840464596049341633757111130288770555534326174851803457464674722958291424609866615028563356300441525425858034116520431209716777520471580901958572933819971474574380823985688239568096805225256610469359527596453280398523699238210830872050978415229141378442213528582705950946240791029369040544475865736449815216070304426968984502896085127455877462021430877084144858972149515494034818039572562209497660548999214285042822970896777502237331439763464559607566975853871659464186312262867800731279095854419601980160388574572095177786146720125773561714150550592643311960393715571405114587696012868654424630071242049456429565821280969528607219417070658416769724205690573401245320130190207761111007483115378330642943670070654312747344111831496791633621508028010546778485600342906436758791075950658579501357643706576419478382259672956040412656687408739454411001789951465052600329000524283031646541976830470162192629960715837077912034903186086359613627200981025237154024936416378218992652917313251742279556794100539323532096105606863084373224689023544045057846490865392402714951209752181769625539291553354369979177519025411801462969753527366171671999311773741922745788370354615709303085055323721736981722042631063234317613916287911198839624179082633637061516010657065859761095863369582869844741265860874584219648042680003930609214930643605043326240036017947322123563970072696187001862382687848878372292348380774913690188452060235648076863817645361534506517169783308120501413822513912421645994161162448778510066565875405066302371985853428493153742171407645794630562075021257470888670013610849769261411864170888878472112743119111866936292780606577437034888686393047230702317792644528531137912903789259514896977289694496121428686144813524925792208617152505822898772146904148040251793014346619877938621242652371167506177543529999946146604868346242228899535900519381727065668433802529448024487561200217975033022714221615026708554487144562769221009742710061052848216769227394451096010074494048191939832680280240127608685856565877365291374090366946352043785094355985382155390429614656980907120184964245814826635371352238844086273618182762281571720327520346402697287994203365430091134799733726618550868986079827788555889343763676038427734219369000418234188998358755453843171012067725738483680535516223553737262229118392225731469256327563710432352880393064727343867093892844821944150607865294200094457434190932172728007619321349188909492590035452628070430650212805335482304776204476028245351163456903570781816046114381546708582504331320621967621962337594758364024095652270409805623308038263625110811226469866429279718928970065310347746860812584082372921750918088992295655301131061447756513436221739350590910373478302312975294082654211998433684319114422975150648624143870785960942543004035693457458286274531249906379225602982531315138542630672830482902872501971777989109020892945295678649566711290147405996982183777745789771758856608189669983918514239319640467409907728176808797605338653896769159427848901706646686962530899061019847791985206439910224696380253588013892682314952814876910868298566826890193318136939516020677250547264052916482917362659026822743668385341848587675530897867181240049125367913939967308732159810996957661814384254324238900180528754899316974278249766685352920061117402836686078230020937040490366763622906328422551602115118472160655669061996316087782795717730165071976896281140431043347513876193029868433246822737118513438664463183830900218797170375009916914115041763903575562422509963635357708482353221957094971538249179134918851661264423383750611092402213842838944280037757505720115142175644905431900316079931491905905131749792062994465444499330922054847880167452248100875401889077420167803596222336691824748401845921647412186280988992459239689655169880563686086293594020715014292621707675447752849599698491230789123855641841003549878281221762872993556865868856750712538497189825683356487815932411793623384850021107631428378031885395946759778671638929016007534074189426695057303673270784086073743059411811032471225205392399516012119104152909554056100115489447977764463685073601635922484803562385935656481727043161393271684888575768897069891184457427201085430983786948077247397861172280596139235987250027524671371030886594543670970357541478951685666261890051201557616161584612109034101127352467745081969226672592854889587320940137660570563980217384962930824681431344852200100462782492601026347457725518506700480451439804837369970320895844986852760496373184544247656450865892568015478906510939334158185131048404498230551408616486183888724660069959502139228549368168130363886258952839152048749109993335759320764359601976796631060343862452921565454435468430172451503656877267420092948912387430985862261040567964458688154470375818918380740396637437335430009055473348042818220694363138968428661592037165124596720455577897163689535141271907195499340698562787028536226202216471465325483292066132491401966261483009716608510819002612145274704650153597583221193882300586251927465246562156920241283342048036959710440989716435038394518378988696298076607486124072260463243406551341494089618211558150605628447232503648316563132243442369863780926799003518074231283135421559898975102162874184004578753865908104516674494311382871557881611957146391561797462523688464949834106056647498976179801383541880520492425968288656834689099234628687122688660835664273020313535008721421430297459646901739805246418570877574259136070587906269210231582885530130847504244185618321273476153366881533495271437768043218979387430726379449324926405824576912685182755191863284612812750211165053667745481252785599467163497532821620168380529060983626213970942997908268718281656232866364135875768932193927668563136933501530091640115705234466022294268064746625357867909487920156340069262626225678052527179231943963505371595468247269432019466282494805437174299197680832648275258016022593435214055272222781511311074944752530872709054187217891928442044203982394890429967795024359362298517631110142079849397871296883583811625471558615255290375292603856188338247522132954312894562284714040882287113627338267563784042621787009451702636792513168595671802162824342369814678238800473575685685179273647589673039225134486799217675059928764874543842754713613237385490173352346889643704164386311756174626202525988756143058668620490832511869855449210533893191467990852957395169079589774794371436424181628932113379212192560606939920133422827917310863272317485302862590485457856719713907069400117218571904682801492215497169345474181521779709651861496308125114541095563650214858085373652663167840659674428674643818398280744932768762455984988186461169540341977134105422667209906872244900472180227442508175870859929209671998109772417420626509772168167773336081969727949506788992098752944796399538153074309265608979127956479563656929747058152721093495016276134427598714453785594957101048165084471352969565705339537547900847321590598128324134562699517149867416842977605582793964944498697438026080482888772804472375456915046065248915177284239600528096754886111539622003139999967942862709814677610238674171979966988094877899435590624677761038921900762783125075043049945774598964801469604853675217805968054552965350033813211107284506601996883872850887132251058679854290878564514465904934338435212668699214936380439758954927693699159453373324205276138143707572879411552748553923974994889623766419239838777202582881353912962877253447297760368380744613802277199852845825802888425187361335037086181252526257797284768621953898297938466490544221976672391066851381796135845947424172779691830045514022879080520501782409630429004504840898116905127806719163647620807508481409384585570313829178865521846390476427066946838125135139640086351776274910714326261956899039200719737949971695684963262271142406071322392093010288328726359127259252553523192668057761878838647979663345890147097247629293466671052068915130341378657924527319084141025237119446314468833809249649744211617850896431646357464940203497981902682086774474959070040789650503136610998879996237896193772830494228499580188401184214817449018279255123700825929160080430568229877299789329351281901648594819209052687120027921542335080502325350809861203363255934207722227420304648430204354204056654645145408750801694560752903141863879169637692060506972278705590485739414956911422586944932118939721601897507200269370127009876290033899809323050428808110072407481065599488850436738254041657749114873341366987011771911135721657643435253968275436155367436905886346722323887344827093621828490832999175869014518149834335858148673288745377422910858585224616870273066190145864510812683275564233534838285595527092953441074897819432569118925358171725012474275522310962890688332627473361244648931203031767877555792776471242940931901547245086263965653110230408861784742895123331414547026443362664215467675468198957653850720406821340379333456851143221088739005011352007193060775567515397057013508039284991641444910510861182084355629099778701126857165163034998165434479240385885277495692121833923941606931726310372686273418625664954524126398135627258318899360080855608338635306102819422292651359735162402363651427615280579022607335637016517906300965090316548957708143655235694817107529409312190303638487134477613113778536731977420546996212208924389578240571354720496045216655934439070261644548321187667489735623936251959570176924099916135270444278297679370165551316666106426610904936046083608039958888058878311310487406252205389138047157777350863816802663102068659556212102934332093883171999923733773844748211270405671057718122565746612409038882022107074656555581097215333722101786800875023354062349561268974348991248134215139096219765639574177926101229243502603052510868789926620063069280717328929831525166825207447482438204849944849757192987236495489485455093497407183914999208206863958700467846409014516087680746437359607361489363793759324289653824303478006931185986926125820410302040050678688036748092010804452313155051938225030963438612189466725102529999695229190075353341063754985057892249901549394230725032421880472734162957556776558494786762798062895277324546027555538973899158701653493806989676934414209874504663121717453312460901425369871084464099781208704814356442320151381409306105523203242270158354780910318298585680489849741904316272897796855867715334181255960427043593300323984783716489937712680122722798845283347292170128632029995090629207720486535253020536003567559869000377573507030989364110309629172275321138263008778095149385160331331819859799558612638679950398038089886659092182171453430185879434953143913105359654713202124425528334019541604163742439493750666564422473399834204982316772559795067885779934981905665387675685860653229432233275111019690620801871918793527367489970975665491897983809232374998623855768746913245698738980106896302994221776398409642372389032096079805506454961746544332677971710739300488221545733853123933172374978641183610473425190753958730295003780261137931564446037586292520943666751983442869908115261064814747922681145772725657586308709327261519723869064452780390666894597068901823621426845818846396291342368446789664949694943509317382342691993333275396827612431431059778537404590992082127560318134144168814885173997228897692744605163799589281309345212280747784547647355087896133193933062503864616688760616982492463888198231567201291603111452363602471125052907749944285565946988457573034410018514773002040158081539438226061597612015350741303934734868004950247603276526717867104396484776693635337375230113207079467063127938864645853103241023643758497069700671350230414564143720150238678555363404100022886978997358647071930007518066372334279533110663536794900209574221992964261104781532646090914254431329101567466502775303514018100447327090785192252715664708776833259914019143053913769352045924177322794357399165279329230426101401576779423451968004113052800162090405377282176652190810249127224060525170393282234330631894386371583583777973117941211923823499311920279433344450591365860687465205419231941830158825380554532754081888330264858946726578696572593297463924209749535698449636746276531183982377914564075300920332349824681877605946642037606670181381122259943713825331445425447650164552802849225312244307592156815085732200077119317687620427152062407711158748260664790105460456519109797368096635419823871316923193918982658940813501964375939507583614009926436148845747743546199471222053839208323546463935616381644248043859535060378653362052854147332399659790038105545381179379322546863191031339503241522236244551675531596831861976544189330375647331302798834282215588000290036543383600666028051927456752909294720976024900351782115410630939396151001004278080720616736566995506233480101860214541507237384729166548418460164558901801377291192328545877020111877599781327057409635625143008202454016462434222450848889310438407930769779058371696307268479330969612191007130080768737065668944309342044854342392788558573583829314078785424524189962573837318365346248014487870818787918699373982773380065504067287268296011124014822379948187078666057839137491505585351047641497945418244036787792110273615741793177502882536284793671491926266652063120104567075812354422286785286771174984783590634657128146324159300601857349146860449107571880608585994662052958439473915621735602592735144249295884954758742192733664837050286681976032902020703377212041877793910084903702419559604896995410568047677360589370670968190629896618141778523250682511192564086969336689705074857224623799901560753931767954063138627487189885209740149695544109177232794049813045661021789169916633557762045935621746359371377821914429701208245007834130557140591290282309484213293793781620198950513870553852654087437255684643529078967606016325952868647498503556771410195350608076438494400892544877274959802935159031303370730640060667466265032192660938694524561746340006519340132214390629666699382919795707874537178176403670477891440661449988946231010765847165702677806552606563658526609267175063896659854542014665750053846431320037272883691119358554644962857368513195765109548442943977532437089860008343321394205372733987725103283413898212764524669977090765343614665833751327863452790780168182921920803504038507892026803168458914963039408375330121516555285716188589375266608346625422287342046575538117216588585121444711080136408819323344388579545793967566857509331339864215622841599600121009730840351903644917515375225969416544131177886656301755709003531939208775783421473000904967281942105126074793593240869214647319376905486380038820817737684656393283369504910530657819330382897400018105475500308896187545435751731702352021282088485355703650361643309209662442538479960046015960755578329849395205036834356934470361856128871297250755286982844223062869643008067096386979147087904823225479816843276456763477741400871974922102997327329662925268505122198627469974252514315990393333293781722408698787354711820162735773937130505081798430265545252322459581882503745425551642870724133867054209236781296662782025024872891483178654707275222605275823004989526621098507300871027245600555342680127367959877456521969168690625857539731047446584893246686873643592376426548843468306082947613973169728258670668916035540365156544779650380708461611591400664030643121819659396931468521358162988564483040871761627391687295191333839977697531325998055917520760323602147677984854775079838164912853984947419765453681285455693333192781984690478752147508758519463396705667888239653660698387326263077521504792008292265950640144891816221510843948347711864734757862979627581296376543388687803463742092289712370290525882637693379421337822966952043397610232912675060015460711645682747362181918785250492589371662376936358336547466009216249972946480896646877401493464959178452348044548873741201198981772721244623542316797410332678855714613123764292397325143855952999127672851925270080384579668374855831216874207124683263319474251929176583853225956663845716249288404847432421603311099133614268438710717254371756107972159288427510570154205386955130223031867885637517064726960092438762483685566598481911037676579881499815932223556150034558551264903234661671404425843147379552966945109432159697231959421413003636763530736343735627851777482957400499029255663447287922909633563562727913630588255093483960891462528778190824339050358465655924433827131683056306736619368344286863876612714111298938345994461162460884505502984293335950647248081915647184352509203400002579406469978062006766293014769897466604154189242582090920124545365964014778844978067141568665782355140711583360085332711637571887907146724472282201792731653331324271294581728963994640192657592656865780594675808115062330149186824813416432698642053281626935189474027528616045224956141889015435213116653857063321535492679615018643106430769472087218052674571931767609196534893017988514181242613044948083057312613910453477866902792564496392615984833599749090458670786838680753589268471754820779589559920439533855823518611825895031850355321320286256000327579987935674824959423471543831068923407004110735897982935205207143590322270781422244498037981116239668818810489112577519048276919191969416579254814510743478394854929660124161595134167318007876252406401402242665681186774539750608139086246818750124645710998365601745909607871332174915211499623149215655137049546477443640210514225443142335387078459624009323536702091101672073293947705429622920495883261150842741606596558247443788463073981994585445240853445065484518163747939009996017683709774849708164361221898805707832136407046004766699634534677812152545106638073052006134175674939273369203184436309890170371791710986022888839052031720660873100798000269848830223801145006339190559411930022799367903378505100905180699762782141574082918607111316199374444327037436873204205937174766912399010999534465041077102050580616458209099736688811510282032681130068982097283433625643048824766999249822680733289385569034875012221682728338256957123236365690470420687566650622859756101608675847394794767545684075519230648228399779436875059080022725924605449447801901720694156110926119103500477918648080737762075239343539293055056771183475287571629354141793190136111323953921312788857983509063590188540990676598969808151642218827482367686567479407751827031996769566348685065512972613208708988909243332541975897184668529348827830085409768084632375523221666159193052289615857519823494025509340189538691624168280276954858018497025835940645622890333481882271673416562931550921334155945629975085354899850062025718446169754342613940697584002802504726310661161314780326044634519623233536384397645974016768765102962950239477708819759858500761192948231091547916576225304897869585363358189407243745745332708729603355428758350409046426352450490581082939562427151541225992840275853563911385629158344171695314259761248625460124052243014056193134639056653390236740664066304256491201444288161906289859617436162010544851008185419677850835568921375045500968360592120061198829638357977178591989088264381282293467997501475152522611643810681818601324218366574706608621192841626407563395694523959270753978488232429314519926271229469390184758824267593944643406810954195474283045746385376005856458711198562595740436105995608080780887616059647706621781062329816291723340317450221940972394648914495570893249010087419871986979722172421577046021058036228782278914135257801973519473625474145642663653543235751907763742582317337828881321520804132894253190522260675724044439329200410582785113030685620049520207303980781413153180026728038198315682763346082431525943330838725512420046274767910334810570822639582488167471416349932417463672673687922204937237526873884666945936793671798428095494318847351284628667532363857931862993130744719203196765957185778090562014046516355146617707382407240127568243585688815761271037264518822865316905181123249733502375052311540797525546825267654908750709585078801037341860983985755174141606882726915432016767703037681536752868300035957830362935040790200616597815894382901160282373478945791082993196499976216062329760640568741185828805250714173393350463220888729682464663081313450242703183461552907758545038534589803867279935972335125845208331251129914690385032788065942228771122470673737864583251938227767333802752596822103024716494075726836591312660344906219694080413387243598920927958883554090470435144870183558756824407284874169523702264947115513612759736091738850900424973671149056932034883058469867245457733120704427705798008830523572037185748493252858403888759528456163396618410775750715156071115514128889459804987823135002905588252899303590978638058876256216904880987171063314019765045239820434941175318227046780259793071657940494182663515054684066656803905649504050320275535208317644181966686375269673486621965054832435030772917412162722585571535630137441923278107732662114753079774827928877893201494086833413330936511000132828000194333886600889541841495044209683414941545167560530781946935472265891106202381424165357535026431045345842841767175393112939687672159156775880678784976049074035473304715040887444630393600015909294770587651626361235401609488324580684510838511129776800828343351440250412591005135342678678602594147179630310299084380821019025779871472553601676020554936072418864231217711111802793547278967287096475716896494937378861505644755932869224422733995212399323961594147128057847754025104338650881415427717617691651882340355683651490216147249434742911749821640012611472695001387085286806939671434926079391170997104355265851255242149434262625493515302378738581351212377076241177395587164410127397553976810265717587296025694700320445567414947946957814555854468848460497963291591691596267187364566482050139773977232127957833993004356333888423041346255446664092771652028778885698632794875050107651787238509177862201303127833146536096126975013705051205096347194832179817251070382754149228623318805281629777710455399821702420257961264936722319342231081768258748386047742695902937295382835359278115775577327954046662052651795905096513454378586364289409360602135163114404496493594639116344946160171777454878050180894510876328796209518806380337555435434957795301526637598437271099495396720576672588129104895156240751541395139407922705502321899977728390563005637481064826778519322119779311389812215164945879655659557137895904656304771834269926261141123697753219615275014917878002185504341879402847389585322950310436575777714934209573130332706263393669397876383757843388096424302453127266485965528020574189401749022719142532414767366079422758782253316313232013331776668389216012824881599280866769068900832307631299151667782113342853278104430084437559885866081544637862248096271589601170157099851885258254097425586924140107650500725132159195786059569505022891504869753083470453100187555626772049929603838610887939374314418071993198357077660041100413487570557821559188691549504319391659423018155345851501319335602904506333268114929413088109212297910620903228690359384430761402500342179660699507559494512347990304272913842978222984438594187028517650216966479218454957481048853701036514960017793132330832601347763465584197593745349424440457288500957218748837048151103289657849541301973294564108836841473038203517210173615818282112732358072410022460071660642489912631620711433915777355860737111737690113907740154173354671449869287878643839480784274746482397262502815374694142454508943537130157789856042533880250744320081967525887302940365225572425353871133599496010834804493161532004011346289877245316315006919282777973835531871457922760598966927887702777367187578927615777598285239245211321352596832699826372537690902036428029761032193569661571778358624220946955270737173204014594996778312164769047748344681170923528519851420124997676406128796617807198272041538231031819547148185203917176864303412731700974405290569578152422223111876960242324374407807811289277914376630765556910146162953926847517774407431165266126759919951630964043924954402506498602402642119556654529634140556198552896095377901947111850963997548623128416264785600117226942520709132637358775407233843494826375413364887317114309677254771206801156934074941626899859671614324445193569971652610487908045049742994676007990429501686711831815822011637738296212275595983209204143433923676006461559309443069930203677057769573852621082404352100244945111630237537077872451824276152078276230842706782546792879343780603849917176213142029164248298547273345852839702979633377581669786209438855901393803759213989138839978768987227734210598437519429337911220042736543013411864461166811448993455260112012875131347870155308926211065337388227837355080784692960348442680265310940760540504273257305609706438722258150988535980668984775507943133893270258254050890844365665332460036313886212222085497922003582617488037172993985051388456562263383726598158034753196265473049885030643421482179461656828135090570223337353835306891671254318586855048522102117521194794761214107372966895733062651647329473045203055115286246474541015134959339508423202165091388627630722401354882320778940105678378592256715319847983719217146876482260014826091486491490965181622395230377252735722821967637776133042586567451482039264814896505490409873347574979729611079119362540659048693851934168461476684210386337007531377399593702476096567095587051949232071684998918496771979007728917231289164268230431340765736374450542716045607264749024729472568292837338687753259104877484709466929069801339619215891860294722426821169737892902895729999764555866567798140726686506147372295156415822469458466824254131962923441516489100105958131782325609070094900268299431933880490842761337620681218155184451471758969064531670489116372790363788442415521996523723516784878141569727786665182707522800991062128092240676101117746715878600293963731151748266208178187287515728268681139274949582240546344867207551559728798839760603201736471822419545488092218978112362920031107614096163317871041320875963060137714055082274233510345983412206084370127619883398460513729688413298518246035417415416571721794667198067332447674427160417278974730271272804903266018471162831310850402972004472213657369694447888211423450214266503578943757835349440576173393417988779684699589777004841224618676602881597654850285663153818128215961124379636869280618417177209084389056270618726844038092277673990067841983369555434378032091987730554318597536101847758154151023397320387490882746654860834312858692006208559309455225958326849820117992591103164952347329860484614598377016649534630589846204656329010697097554753449765064101746764841323488362017107815564699618109562008460731146951160866688548561425119643305930015307134959935711899336921633986391824066117586280573171435917955292130630353197653377795836087407533125437319240552878063486171842336251298371486834775680265909731042998315730479899866328307165640980647854551045407197031803134158247794934426919206677255208274209539494938882164299640758777006749657203660427309658209848489752299042128471380186656471684819811217335744044446312605491400460711569159047132469737482933621358628981453437951314140577385998718598118220841593600246243063812211991788533784002526871127158724125186755162772496061742361805884477041779248316936238532906675333536438319966793125605848796338323632382086515691408882325460592175975824847322613308477815163730209998232826564362334402894017257463465057369243432123426341842458818295469679349379203115545011520152593035611795306224339054638320347078551510419593472791597922346630995046775159755785402456293476313760626240921616336655280710373234815674689708870983369263402302711381965984025461055575033349469813410256254127686785377392966851967565109375793654672919264434439737112177842150240109544009583772552839656746328979071391119495654944956387871497637139533275219058872902454582552056147796706532301499914540284443668402891624210140660711868271646742804102049053354366167658870364121380245743824025112387499207221218342141860946478918195846470411866592549954584742908634112094163246502945937695280302923450058067697417454235224894832487689571859634665030865821749922113159079746918552747916468080087572710328456812074751756864691423035842092887227987963507161856109208843594440328755632741221067595228144719068685692812404582492921534292794536481498638110830341820522355270650033194308838844443694315375556244152758066243191079955423985245045153253141482484539742160045896782681069806304960924801122944729868576295126118747923621652624381449641707445361895366868455087642821770714052488719914607251325470450171473527412381415832895142291825140322774496770106561746545577809789914858361972962800931107348445707765912447996990306699212435821533386140286923052314933023735265358264317750498007559989008926857040546739533679931323774549360755813376755176588891549249792443640322938951002460570194750981810354961474002540042295660394542584963913558766952529852715668315237862425065424344194714881121209433304105497806059047831489337924352013618910562748654715657759651803959587512715211976293167872382334125583540583944163256790202153487970948245104197918758493511568594171431367575303859217341764178860273540341607098455200213314981302947054376739764632497036973299426008810104699660054527709861139711674733203034603339056397249564015452540166076515840185789688528576068743911871767167164494714000066305527735196893858536484555050557296564234434392721457995600077111389772994674127088902995929781542989933346104757496724014936416376943118095358850302555408804858552874618199046800701095633584826075857939103120424824344304360281124777138246522359608365111171344825331408269206411173658964151951517673631114004802739353133160637967227867078865384514564954419381430023069711570800302969060569991036750085566622926959166198869080419301319438184339452474104630337122670571177735374687269764526793625567131881387528913655441178268341217601710508009069780481996352972513769985222347914994908168134389076065601962354328082689784522603945461339422840982569632848910906884301884955803884921052802094763032879361743113104300550437298211037120487528094417532712112288354928050640589364848693437431922229100344836331397358215159015772938552859780205800946298247570470590827930879480925717388306504682803834387899019563421460123090300911240931072116461113719119854821565662631818135635825568945396319718606053768471302773162362648945848640045723447475270902076719217947356901578727581097267116900554598428699822252546585896518538363608769562991352619903290428390646892364416111138139455440621357905701085598748011960452424200760420493155646509373558146314457790136674227777082248103283611062250871880786594784657011876522176075294541631425519907194584610106343996015599945750344036641329209068095946107175236693211072473979417394242676977667488157751459121249491298332566480984190161361748736637755893770571481724575088938137091351528512533293249468076423351435322622612278951405349282460307434923804865972149550119680841544097740122094234651524797879273441300117566830743203702932313685251255271946197388600992183700191541772734660605504170268121292090387742873477808066010426883456648121687154481145212759174958740529824098685162709501452005704440888187040421217087697178594807013198486015482428552038091912696809332882484296634190472792705234765124505054878969168171942636328997652793407508394263198613554752741528495023351205801851391676674369090404830163830614357462227351442394272188711564152824647464047866922333378122952377602982599321921408419021676097206027643652159012985999112006090059712016393587335368163701278656426464024886794763587401155243034427967397578304668099514629533165344615296962216036706791172833825230110342848561394673115024532331897739631816260915643565385962666717847017151232785827148828923981003195140605039721811241652129624070313367847092918466866502410469737093625631587847617452178226636459996299577220516541134121774221487055876484910805246376247396754987148381407310539076117633378596133664057493933378464907219033981649412800231703208632515541721263090065740186478489693138281708918220216584679014592698258643529601178347828537304502140056009541740215768312833792247276910741689962571068567890449938701492053292078732174915397565681443864366607611926516039608150786896413303499005717768857057319548752975244050457310590770951529764192331840675226449536420864167694611204542014828537400636325913561875042864103025353740968260638536448514201718650390167244241687653628299696288525982199894994085132637609688452857589903124335669529106624722913240381791425232369016128619484009547986702750385077358484917165725100599847209295127067133159653353854282254141306994706621040394592474091043312170528519967239033760983404190527166098355643451070326430177919469814804821278137576229751672334041805432307604310548053776986355184808980524943249093535011057769796182408668004791535160697333315029537777487253019955679691614862015556806806515406173819961904423561305351089984748611572603925847964237832706153709642365268346912224600646907932709189616860215760772241621545589620687682194818205572045703969493905753787806712299211263621260250976258284414926275342246598727705514907473760381688309266605097183594418132414192550830379566121735585352043011230012505924784385598283543562232777171020125656205294998881891223293248333129194317495827123441904618623999254567218737574875381538945474985208719784633954057486390085747856835399862253961168553741376132917895351492834638982167079286235234964268267862694326701753774606222271337566760336424924572405753935587281281146664326576146820740557451227712757330362725516128910567615085472535222698717688968589420286031710991982786508038788434099551095546836169976082150107631712207620569864112248238076906807722516157785638300262147251235642713387283067590268647462570062126817798962029999612517334501359401064185946954593301864469319062272111429601099574341469065594300179337105429092356923949065752032527217893325400402576999428813517520220752338437373462068866524618018909843847872059887764485379980817990424196740049519693499765691096723749163513318018495592854224410473570374172819210886692647164687555007044636840846952474268066046065427454887628529777499739114493547861459720993815651353151630130572002999780383131534575413088202329296028904312696041781995246954647850855080709568896029305261340828050108696701237655680054484867230644108004374539652118567668551990177954465944398208532901280332334361335774395465872941845822166720302514814839158981766360468032323118686590158217701730317754210794484838729311609643786977141609582048584406691890319358482860702432203319336952377635982221782037861806461037910314084480082677054772227182790328554829926109889888838101123805151816785658476551127991714809589563598312755632688788862034036840875290083139707206583179928670420732220983158716259576192772218151845613654108676443348577219179452839092766570344068068466249340505067336042429672006032944857751950071864677747773202565487128557873449159413318026875990625364142652718547535154288497403378703187814642194703520688958691448818322261288492431142515859319369955817848186826194763551681618727799496968597397691033843562834971943057434209993820241463887514584168881943728609948266511687625368770037778569837437715104427228927040284678210120215211653563094697866945706310152582129732544635767829075794615998623723203923594865838016808085286632544371504872302068834103155928344109927602342044215784841136440650177932246828616568178104521763150230751116501570937165079182149609252759947974688983027391606315907371486989550009479556791043996836413068339953855052048530579147921100455299718418453339508786293266423164709373071380056917338057112824258861244063489810473951262424236396690162722790102143256058006861621194432801645339153318998212102644408352322773879637818643342815250418341292873176711555787019407741075100449491342948932638196981139606803672729003806124652849390396083266262736946794262374425851399113804274644323749111619954859226693996914778027966368797098664790408445030986032496428244940766031905664496099065818885997252207894690451108997307372386253904177317613261698674057483000885639550362527649580178887793631115400992029076173282309395634170418151831069205481682712534078520334501939979410826698647794656182143083193755813512165177776573804350042905836257785043928343369577711943998639996573673233831263984794274081918573703305465331361386951639020638595314805230988075840360794390791020222565002487545164945695567664824689278163729185501283723385139287677922379381990988604543653339710123892715725076222226688454791181994827534855964224003054795637485018031602545989160467764781147482427434557159504563076517576668917267778481495855503952190660938908036911057592746286840037881287226071097341417992761417576749815636199130241337649260069373448955836643769191367417907674761252948943048704835908339450987067488896189204553364736109983504085442623058854872958595441399064713890893379704649100900186322071731741858089698710223586285166719413374965463478424753070361599846658807388976131815434165578249300546078674861941586072961495711074021806003583793724353003698018405453975039952356866685686067832882920496061531677756664569929030975951246998328050076780220983959658729073606749406611744610675142691361150732498767360069336801957911559764898810909498410309776150070710335905891391665197714863016403143618616247756096763170879582438761810536049349109995143108314911889716945818915190532929835905976882834172084795681750667147869500329111836697078060177902452592882898834454600621442074485382536806036813344580257077137313144138421257701489604254859089501559870840444136821783380310937295116416164919531099863413676483093812119230771898632783240375434932150685384409304301979916468329200586614674309171083714377701231523658937303460967134556286582052493225019359174937477948541110363331980145754824191458965430982717763901978335832654537038586831860240020886124927618339185856150422707052961873527104933799926069767134350765006629372484024983354236498718487759242080528155141702090372486379399759265992182425281165795755003559097611666637937506454156717106381933671123445605400394622861014182570670152486645035637451151781546250734836086989275772613821262783184944695634469616881359999969224558521052973812086539117113103917172565501257294877755544158354889516392400286093283727061077203038569280599601517699310005522068328351503478284558059683218038122419857898854218583553438491663046162117494098663626097393357795824356061763267562385341212239360289834985587484014908156344666891027525676156979066871568439164878167848223984066764229668377867575159507137999872486091482126715273198160906469539301982138529409076157119666983809237359108702431852753444855947833553328863519009860055842972960369900851956269263778383323251916172434033853341752450387735819114354970077438415426415569140627276683906663421422652093415344577729119659387686479747016362069538530748998597018038787743727635513291624960345255681690914188669973987262110632528076186554557459523776230117226357398356056851071278045382391659871434778413231373708689247502046399917900418283200184161592637599124352296877232834201818941384057603916227745650876200871137521258997496114795633962046984855933071080628543739014956071327368495151594228920318496050355568431425151262842476739778472344663377925542416919371332840291961386773318296454196383189347568495216712363868881940284226318791377473246330736241430445458102483381539850774165081995590044064226096394459230909011251759251926485938319365578094481806600375227867763965193274062307464596839458713414889474641529961551016178502999539556910614782064675348810880463079517493505824741851565659501826960283854119367374237484951571916780650831447828588759785524068156597498216490885242592106591553937271011794959245050974912369820433154182955619989820037084674319965267642006211028018542452812332813235688669711611898439732575969335960304675407373479797903768178378095109988858684631873290052717357231392276398914981148129194146009162137973049179713549997734729098447746797683269656502066090370046815118462883266475784690492295711347258749059100674749368298825073727100103155441085690462643117182229689816040578403342947856800176466835547085178654022010367276225397380371917047798192465154888942330308944763201638491623592460350570796505264545373694192022507414249361310724783195480829800933077542244359238132970431100608054631923986084077341067842380361803694913924651008536750568656555011347293858229374516100894518735452934144261408759114195775860641209720794437020457725483365180809493078510078147907484754639399951540853451476093278105227593164895314450772943856256272740231663978680902528519538001227169602160732329643964555365656085241955359721684962503847747686366794748780696109271904428870834544200728818886530917156678154279228395792609191997910015306245401124890972095323501283235904249404418276752593006742924423109208582713621041879477185388319938193073332200631341107766187237894906072290716435294519354080843237424684328470206954100016149002867958474340357518681171255088425114873985856202863453041307890486759661686536480942332678969775797956614309618420330018273795404807947815143854100375868545245148341980549420352181094823794663584102789436400222127246291168195503869985490427282726580195985560322148789698750884853640050802497638816034643697061911725572233188995027600366473479517586877485813270511716151243350612345966830927392538918435116775635957938772493840802336645321828348129310565742110406653393644563612332654982692160086901152454507572717496380326560038484031022856006681909467783856025983804950381942999529117320523296409922224399130055264807836641439765999737841641532542337891987504522275993504041114900726674718120225667656488147280667681204156745424028814741207062384144370821048501733039103925264338827333315655394560590662899131438437663409051184727578444006702570139639417674766851414665872614198059397089816864678192478398661572608236681589081824620806758273600600381510204352433181493014621046852247329445428052625267543042290187719108948684679884611075284058828331044140248338689317588343362280665610731082729904132753742691014904114097347824768462690320950744862116984546826494830126764658084606966364558583797351172286445784002502283490318395307268600108612646646896856274718861564269065346477070970848427833158896832075550458011435261700648616819498758210109476797994319296390796255522274671026169778026930733255780741882783819788647110452816562831440233009337135601181997947685957390052088219048093852342919585883865570091915034658951110366481293065666810176635556851651569867344339038097957134374664293041305130417646081110880601871216475349183787657264524103585049435923271425198776900605305430263538243897671543307528819252177770281954320827601961305534680482289700609166206491646123292787418858016918459968163494583089677384781976683127230480708183748230407573883671170793460627393578856109140303441781930449620019421239081630889154491669518188429406334356170212587104518849855800241891957703375663804223683328738624204899164709597252665057252912489057737647838093903541275386196218350783598277108014652611009171212028136389290155657914916372365919939616032090161296524299495939716701371200063419775923153719290818644488079896575885746813997391576342638808613113437799835179733862098373943591409412639395169220165273661046572242721096895094338131711305858680298683134902014955108218757984492735083202810074013175214815203286291910127952017928399224102128680372131924484993469084122997087178761640809717966636564976273495667087172262317217044652691254130576232336007912302127720833034270635924814574327719015121643588474315721239151553092266036094120003932606094197060198956056421913991828441338462447457664814176336984423593594345050682279797098900370366907377806395999029446835644298069305145320762337861865160993569859968339565109797811452997418243758317351423360734349150190798622466349589959586517173046432702300046750851287038527848205568212134649793159838367577871076385465840010631195346368043288000423134327451018929750699459589813588813500263131025226018748586937693521916947777678556489242656949320568360751184227658526536378826364479747575452303616045057231705064563356393430296400224793084421671882816302314938237294759431775643917578241029035290958220066428951243975739902155391483086357127960074698595448026820196234091501786071176685816806134058378364521940556037820952131595130756169298064321919251334841860614245936689590772479031556655098744870197415273267144708268439072700823265163720858122282747872110538007825690313919435840740770050078406781721188946467754597091627666433418806611052539206098464424385211677778036353501111521472707620351387563057826971719236655172474831185605497459683487179189468359795008752336709285559152831826156194819158022734103607285387998794581521067123449288013109399451856380794917934406300973741549059395363086943535470881844943613953071865514311859333995631787477314962263446269555483542103667871085834362448083392466271131898431735086044645705866912856191933643745979937406054369054950777842736436079528969862414185420018043740286973648145568099559840326772769467049926270552450112929780246436415731139712247309300217089845539803614289296070992209410562981696380678122167280062749500700808116042890170426085960616914005730493502393835091575118607866997125710287506404296575696776589276130691470260898365585907617073735611740125220266216802163814663775480799215866597926876434288839331007446457442989562967388381198816640795749248961700015854575401237554584770995926435131141752301640557284185832667085061566455087526984270804475996126775655868334002896453491205979099918918269551224698965034273800127537984399409164095370753404970788724309710427893234707243004246309323104841802752474424870080853426880491217548769001933715164939124193490668141529966801007972350593297430405653971019890493724413189587517638655678433437641319457402638920427152336797538991964503435469140482509162282884246439705452094077187923961432406826192047009120373924497883687561478709771079277056221810193301147164679034510551537827084307885382597766089745411786565724883265592562813913042379808769382443686023646125371339180758937848293892159526006215200185827922680800669926973338577711896004300263295252505000085832286349716673704873425377589451965981101367747871490782254356970429377915543754104173862193008599897427695861896491095621630339436272993553044775427550270836061049077875714885136466476512051148708698819381245426122855737486832833853441029413598302093936606080037253696503428640943645559992857713963558425933551811718372748434249524401622899175253882285079386625853049026868115473074006532952172457330533046243974001998829812136235225106762288396200475958312421906594631533332889265304386467578724046395194749597047557784635553753916589253634265112486961857921015511337961173596370773984867911677369465319719767673454054224448457570099302409240812875899103552229397453475040539272007598852662100303890376128508080947219297042659627927803047487751154782265185798516906019826733408180066044514306304504130293853947889186666317745650951796856749076937327876948574608197445034293636843158325873042538599418704012975175442590759756471617619708750924310008776404538135215706480628880654448823752708186952189567620089089144473772893285790256240085015908731599158957173965811253772731156092467409809962530539451268656249950234196560244680404219615475642725337130980274158471951363607112281185441885674627256385498931262782389639463504612920142155766786464128144816581327528728161772022744398724688904408739056209393352307961726023654065415766592464499471259786883089666389589535102828003806966746582411399383939882860523005836381285776138078027451973629673363174987508936277345085911337611516465593946931429219919010801504500434508999755073762007194660357704259554376230314405756146676125002347758996545320126134629720137076838042965071057272193758134461798746215197838390282344038633080272714479463887704486874814886103932842238060419675460882299913507664130127788047125248147904885594440591168223318054657370869454801374030160927791240045935581112749762168614988408414514837095383139372235013090268562217889036131217063234969455773479506640019992714871106478629450180146425749813376945614764090631404123504823904568571988372066451242048238841514403985770594933854173752790734567783069831091436546886111836757864598170797281600956214193614500508857460053083385322902345406326065231292890614743435586380068048142961347671326631373817694987833780475795637664497600289492334913861435006539248346975615660082610778559404741315635955654409725669727419784386092894052878309182613602170261416345207556911794295896364781525972419692000530563070923416742216547975520576279735665425554050459916136124803381300370730687704027640125599269510532737997094179999004751570099058510925884621450950411699648453761873596927998774571201850837602672493533284864409947366251879010462458372459886786178811320188285934120340857624368167887772182986865079831942546955143145258224762219910202396634153043249280813744177689688158924911387919289427837261619444268155286301998810886709559454988361435276421255692158929724658783654962176941201871751497793950040716714215611864694308426988199986306840221283794783378932776381359168788550104946311166889375763412991985479677096523455909265850249315537936204485395390570445077715311631452016460935531997315909767337544960533887621739808587677970429774644464571627336721762345102866751350052402819875995439418248410295597104614315465985506483905823078550504065943936760350253150270304881526973001612704499604972566912150672446683551395603657593044590887515407753482187337571459133615320111657315434803791788128806484961257111900336974092231633224021481940593097034969161239313653636494450014636349862654388521284969601719032414134314359066090037644063277551229083315559268043306955968762955397740045162993098908970536370495626806922677307715037990225478170843874596887095720422020030445459650635716626362294425162365224333170623349343995222567865946573167348770426967343302402093298800387697325858742146198666221382048835055573409588084476454781651779308935134758050046576160178648958601307078795907922136424483831969542349069293786961056708785091365665154868108010944378453657620748964968916915612712742323056603878519417227505360707758700925055452686069239767114421064526025756876674017655616669569614029760325264541135228756735662429907599653238773159496056982108557191805296748531437205300518117073449597412700183937483667454820393307700857770628425085087142462685838168486097636066319649090722727721836632452017231625463143181112947872663929882008491320095376997218379135780644910140544062410292456632129613259308643167283324061965441850603764253399897996266906214488816086993424243180436426689612101664059681078093412682322805654816820728924446968887021370825897245376663771337736957292117817963255341973426077817551954287600647642580840274657198838884630117861593202688084894726083875427087193573178092217316259058020191919513706322297424108410935158398619355403780722958491530755445919560955942060804220744496413538628532177347628163063477903392234978956327342819868448907571874344260899904526068526466103503812515603535989366933876598661558604755923427739967382742281733559860996476339419965334236201872879077295056848670922808735512557489279669689749116283995528903762000053576351882330087551020473797716301936716444523307427542654100088007763690709603099083863494144139545725777127323120350067424207150141522099228322144990790994851822760462440969563918835450689604451056386668662407117787098630570735227636227678153655970801220196383320289165167589422603012334232305149433545892268229813941164069986953034806585843588220960045666390405043664973984737995772247143002111332917627861195918152638391284396036870112167167283436415829256723912879587507927764290108150282812783862001603913182640504943226534900722703120168188166542177822563990174667274708972924349832934490612086653011434786143661149826515949925376923397550613704569600162085824091420729078019902658214780482122566401030305665201754385632997955529008557611273409605227944193018050926012288494485120132618690320027173680207762275902657144730669648806697493929203128892496455219094050525572687366018342089497239223487276757202438297884363690669401446794332386719560041668501908837238754057459817233536187403617975781616151222886107349144335154306805346178814901894358495873092271856290170427807718555378960617304193674756020523819079951687187003589162439394681005394297140151603551214257664908327773066602012732425983338305776791276960904374845362524219425837481489719297668199508546585062430259652663665336636391401699799273187836613199293210710513897802676841245712613644708873856829393495864303720655828004096387023456094312505225402431245622533522048223851414477461614725065721396531610175043408608770847387931626953799657456857495131980049855727203932368473251074067281655568894504285253051108409711825807984191768998525447946440345933818851451279676306637018313702043198750031284675886557086004251803675293088136184613373855652777824109238340786121509334020799463408211787833401048719747329613078867378372667223889884470710164273849706811758442773674017322035965942075263146535101457421505797859880181557458918742947790203384823938486068673918543029841494679146302708397983380580786587698189826656643890867036741322447429877516946717745112907850969543899368064321435432927614252259020010669073652606360123517766511250901427486112517809302584045654951089190681629869272263831012719909722385333946354320685184582824506486390264130243307349936095867209170781259796224118308254474175961123937761272357985680588420948870191130344739038215226338897645573903241658936952800575027360467299039072754339964162932941065819608554214416635100061897224069004709198119997162673915662512816137434752687720831997259397886078085450257553040944446303704639040053626864795551452098824186296898719826380117128108277008378325628589288538099167160088729901284879704016247959253288264215921617965082064924582997756936790176512351386886796463038804505541687419239274468177600153135944227772386819594868198315336151777768480856239448076780410901660049507507901943351135291893367274771956449059528872041285235475384500365445979622365497128399276410396701027900590219544665119065077216738361717951451531944106878795784046841792263076645883116236607569375202162796022383141628680906307890148235359837694854206410754356224355851626924287612518681893288436938012523225697819623651781386336590239240274160667270358908928978066257944458467154943864302963028358552283017512110597545954669226443441462325600586578583568263135649616343845417736107469702294031317074969828598973046949175007201661864160099473264065289185563988685688154468177989854195721907003874306186088263533658988953318106461259392464018364046316816884460100369219488473198511249562282821546237533716325953873944115634832801008443458010707745254368629540839397242445823213792350700017718056305088006724732770197062094770794272436077072888504103205894165158198145234958724706503116877838641100912605326879122852980965135387394276937510864239088962784970227518404098542997461481810340042793578393359512578506488402184276645474653810345177511967028421314727891499222720391883308807172458630495703555617058750203627359153428612328574510277637190052616426029676537622384119277691325574645022541668692205870278626870373268166857555724850730469318593372182265949488418990258462210758805635867853747463099592146899352826205212885720235941783942551580202756700730578990986762585590206788004960870935351513055042961072282588347939601633966580445727803370650851875323285284837748118808091459725991202646059287483190038032063825059394077987141171744916845088613152970711538668579438425091230861823046801460134672421603481446421772903365084367255057253897778704347763067185248601933333477311336296151784133312817982961937273068302674539094044332483596701647346066002042411892668204662668343264676984631879463861489038872025350891236833336347344395657106266597012028991140791260509122447430257999710124425093299568970131169491213298730957718504898262602199428944150795858970288650372214143304254779927500561741828974841919870396704234125186797000987227949051044110025317572584866597057417699780809280806603136275178859621111955759276445620913954957873615543981892130277985966110207573188949793496892374123231212397192608659685403540838269322516182253471662117259201556707406832307477905869048616000469702878309645211488940346840565127186913426354502076903856865731504954518358784197640270544240506816265251998569380085397637550087203358791605270039857013199194224929611448485334038947580254877703539492208857460799694062825789694843209930586079918873500241831261005602632339822029257275781523056240061944894596267271350077785773036875658928400545289323317903228711257164251049263514708522952431039673508047978449744568288031491472229286463994256014035543721395742136605837838558822830616726013996854020919911330555640173757152483540064445076322177434759944432175326883204924848953859679498408043175060392199199011668860464962720996423407314128987444433179660000980789275852781999832523238928371946250696741921785834768354886890925620864402924328603450567952727721317323661745389765562907501777212345176926840773565202846257846364872066691985116894029147939113979039095261950758805924690745166217666855593820175630411185562267552900438932846699268187190197032624823502034988453228244256765463138478631339983343220584059626332289760642744065202043669729402764476466635180329554367710349823971709589134507323903353050322282416649109001219022130379701798175284668738418595203624045510669414111865017692220057155398652424392091040562415797458484348395223552346002397995497228943680692808728855489171419148296121405177947426397220842301582561315385908731109858048718270657006050210918136926828857851850038693002034297968672203501405479447251023100289396821452165799357636563570748230174333669050103124184000012584686410874970731448168679818982896196073385529591048622572111222120621582481045909893656793341737434147435198046225219769953933651234138780858235762985157640116866397676489051996414927112173816588766793718359961333870583709546361797301572781012371055705280712637577444619698507724042322819543912464385871514960193080082907479949009198550721518678174518314594613012539598893945677353540133256080841333563930346757248011624265692052664218908159441921726629234306892334380993018549859939434098256739006113060688861563763358618491437831719530440581850263957164645627277016193503953218348709450746776003350396280717014199418152446062004482150045561322688657736434206807873667131362002522690407258881483596490348457684374215264315812623432132286146686114959969050355586906040124002423157218486647444902584450856167652243528422577729434501892243542659552329154905564745831665504145255775277546848781344029359778786445458963944322980368902632588952408581671692211722309836181425714915165782726891336223302344253297802373308960411760216727654492509278633738087586879559399302372748306518934671248789455810760764627241164112049077910455833970862448922379440515431909930687030242078987397903568358273990362988504363386645392329370423870564825978428046145776724750638834787847505275535824938422552364116121801291355151906895161349730173072264629323952642335355017824112170158036718955750267117916196914633536226721171428448532445766470967821668325191679621603848534576338063370289812161562133742470418126902601620574484955095736038967861449899072458962819936146845677699158427254292724424417730700390312396047084999624167712267257002983616350857127521720616178805569609021888408322304161553848075475081891490459678988740560819395618502320454175268101520072459938299498859321753882744058492082962084570889883305434929879351850114424340074772816604948576549837982526282013689512216393953819098373270530192818670841335049020170939105186541582933428018659103980369802169157880512526046614827269976466879984334374396324834383282427109762064991838857172394663767385366834856413854950411444356799725722147745898552078585714677979359815117530363443279185788773135426751306094823763365060648953720827993312983391663229584365632880068910504412229478668895441086941261169121949508909137678380080752664258750877727861027757814985656498295607697766936329180561185535959741476844094173482828447713052660047211270966426215310119052165258272639156941689152482934035529365098300666258636701324364485049283350508409675486892225276621548278048822990234093624965055552067867007734074896293275732390443930845971760099718509090428997299159658299351589416297535250632226099332533113119065361513131562505088571914463768658329886856734089786213630177552915493674552712627069332181118425990389307089078734384243489607462739294156540638574610260428692028039112327984679939118662563054324459831640655696443272639618514256876754461582507352361269115412912323503647373931692629511110722635783655467900408222420009170974051688618912514016478234551644467596502158474647058252334354966565350487371738265884746835073673876915505600461211284647060444090199409076823538884224150702269027625079140831190513392336811650333725419857193832549609841351730791773688113824425859583521784947280745843298121608308926576808156027029723654916596096490871580977782070572191027003758906563270815149741073473339931557578709621389672965706483863019215306772191085037986187587060042165615747844404213712507338073424097843394864474325029668561020331542272209117107105210966543477116713392292328660895788836404163942611884146667836539239072073157361790613204907469358025402021189464958341205079269909950493491354029254265290616596571246202843997062818900899928594210489130174492274985145014355959015412671407442583992563169445224218507113545262491201321231172620024120758478441661370206599982081359010188744914065819335770055136147136739780592878378780824862089288994212292815702510093821922506673312787847564498665045699367439513088543723536589406339451970648752951420496623334185963478928545957898518126755960146075989101936982390995000184375536342037218655156329241297456126274183913663287839632565758990046893874579647284427156168823779186040959371149318205067986498623105968150705635352172572813281762774280457502201591752451918176769772918294177280166963360144059170525496625796177814853635633392791934671637296722945765643737203388748991021144150861848966956827883701317173469712613863277777100308736257512901360852882503586343594445636060726583826845692765937348510992039002236252460527157189649867430731468781115156481771208402349034119796707797174983565353730750293752422009749660252048848633155938784028007792255611340250630959831330160505265542656228768839745882743291828581404303965762572519949562041233033003746362088291189480396710081325680020450661512715992868059009743655098217005991626860644262449089057097120730456074990991073611715823081023505166703994411261812801995098583279635405240342012458805141815187886847508110501803372255445165986870530478901955943744994998731081343788179315305931601044455775691835413266576988901253898512754600957229008866396963513825730539546992612709666397482644287842667009772757843082116058457393189515258020044285997562656312822983471930951480384849158695294129458456371722072699438809551529892781861145602243726921510873902001341063352388486875302789749002899179932501445164117839780806905327641700600298568358194192364412715030903810815404650187216494449850731004712631963553587256451199050686784226613767596634314157330305308948066088205960227982502822055494095026838424348474024003546820533929114910119265381933634833522535298912057434278289789340906190535010174247329525005364501491938694094499020772027677000869416389184198996555458262819272329534540643603966396179222528106952841458059583463036578218875460291376686366764348088753862454741866750005310910887937169786279862030179006028799455466507392030802805235140562012459266026973611220476278625226429673925011303577260960194492201932768945874794393110217423220450970648025079259915610850125591765430396870709411296332411538874173731880181417023964347407667190371527390408773489229247224688713845088947382572091057270943727916970299302513952943069957330034193932308911581068706508889398206287185961820077258696371969834728578315230942869932599088513045339697004179676847438504061532962138019127335815196958632745323630177522094416366071072536023768559805909388853718670195309725337247738849545026105939954523755323122275138987262869361975206879828192589898329074613502006402255677823601134559121423887623462881187518174161851573773022523851909182676752528822367333879396586005300630495988888715054952685540591213706026556051714080462679194295146258902768377974341835832593796397344163708533739507864832725513737644360596286069193134178642619434974662821991127550991921596168622001629802882264365455926964371462924554502669838602364000830573746736582108324661032164720818001150253527543452293664978808296396851929026860101678399481452969935520543339210642868120617056622163317534100551165876048178747752251326363109219362474053386679326782549275857846779429522763776129331143855930698649516678013882907494170457865086572564348230210512875306390059303316757283143617268418290826625465457552243651092833633990713315457953900061330715603100812678847049647223478961851587872794285981850242585257837688391131826180335536430563945406135413768476980883286334263075163949334340095588468774410815082160764886072472158213287043886712177260967529462936725476981307698491168520862768316839904478536231163567593501671636172796637457146395860356570091172449798487240890139597500738228170713533617477278947069176040122221070073011056732811709315044604597285319176692738373624666809217541219054827502399187926919079677081969612436864447051725887960719943172933148943182104942951682683257396135706791104551481740560837405087469586829897799381082405604356788724174287800859791155521276400984043175425345055291627085559921364794402439919889164448337455436267702724500703073140975829699345488755919771457887867943844853901222893625614785409073424460332545204815631355088726532614455760286191464900955762629210861925510511566070348769663160883945502135572463176845700743544856416441964225323068303854140194225009179013351018453998715068568366052049048325172395234378293419156206695679507888135112145830349506620637320455403412632709869749267275292511018627508167060739835482033422420995720727763247897295974672625481355943758719003137653448306324816124824823211132068363566027749955912506266823162466598611978188568823808319927612884489268504071705810250124535569067307518506016894300893232333671552170830385078685417955992405799620210859202464939551592871808493182446678371439086345058183884111340209098733174023460099025883321094307909317157543951843854940474995042602798075635779462546120437971796094762518859780615346069144260085426474202583140923433053828005884542734579615781861495250251791141832749781110654574567874096584846886083497481482711272685054806577500079161950147332781178838355291112303964386213720915117226446143776566730025784599118721453750947656561088857103589826069213755530382669464822160333408631126001656688094617451863922898992867153921698552664234635278246054869738528855268121227701885445905955472562338223318571247644613884308096972863976983801357386521342399543950497142639145132554709559192079302600723748340627590470658554626847124882507476283943477539159498412386468194189708993988643047959891201405392533967237512223338869467633068101969913018915541596833598212523631193486210333890925650810292529948728357569989147497850401881373411541669758519128195901648290547310841555179781599146919824854099134891069368482489740751247657536563383315054806817976361844310389250102270579592371012022610005867865694257851832403389427666737716995770928759413498762696608042506999248179970785902330100965004040042320704040070952971896774078791724217312287357063157858639991215900104895896533694955658625753638830887451856512111244961439607503737362409391750743395135452404289631658631841670141894127083145322824264679232841599331917540325265540710742372265135496392872650917763200053025363581335913491940575773964338116403818695344024864986605084443877046295669674356840286961107492658306225667630507363162699390017831936896318121836370001501995055816075339443637005380584230281364423725719284461797543188270806136364807787584230155741731880048502892192570841401580452361241316406078609246035043688232305573455112324877672197680420544819947298923525371723748050477798994442090914418158271874150331922478148870256760026615461682439991236309464897751217905779694490402062904391297178627404526989385667562799699450416015694096872146543834902122382900780501051675380085604541149915045423114425380887356770288959815757896192009023728807733135052923400048527149491119145695987172517442703721292751584996135101842252002933657208074042120265404572335395871755812636009462045672409459605226286845807251792274977949359856442622031436849924651216004923881906636950510513496644928038216237589900058611401606042951920805196924859310680177908116053006813074844195088388522518918896550942458696264198400419996328871295452284260344326430536296447103539256398011537392717178518631669938389278809368960301560151419538975378806213696875419435258091394787001889267004484271217275946234710252893300424735605804863912331994610036067029120497983692077298922032064206122377482785740107483285847512331572154544965793775074091926379365393858109206401175370029350427493132302130346869700187645916634041063175041240465464588946218668768332774428404176713211017484750488535648350163762217123468192845829539816723345058989123491434692220767403702332422034058474090838546645198922975022146143697482437847554906997558765330733242751431050688953989490391242388258369591554161192564910732151716263211665766185520644979574595851844441268459975212029759456065918472220069884538052965975386364318403730559182593581907787822738278199498827659075983248127205206133653493393470647819538481344019162026716303230643221888041175174665465029567482599626156622476205144530773693372584884479103190874629846728087818750794810120317754876416420443214875455763599998948708183721266201713171384839593670883989412443920428676427288942673142166970591820086532698534829918405413622877766957987290879925611111231293238923258123626853198219051576296047731044179114060610988211081672964335250159554383775911719590187127863696393526167211148044679705209601565917786727344789225945744577043371280165984436573552363537821733808282691067326546259801032301936142931216010318610170965330503614252101558524871515144764590887482418180644311389897764497447695056651410746666769515334804020581494441369724293498115842287918620607804317762362651713073939047676888549999787291285380872106361512538424207990579435112923498978912531559327095560169206274036189422508361488357657712660349028704199135116165161111915703993354297629164516044714566587283049002481068078114950200685408629696592680270314363801510369723667868618334882256000185930968341015778450917810500567624795678816227713318161540156399976995567175523393679523604290529224688753312336931259084416473466369958366346720596900389916194357836196648248218538382372158428849750676232401859518471614523269231542465450675960092316272493713522255865555801654334901430445229965044374251738459317440745795171763910469417817645444769233749794895055073079804172111881299840974660433544490971498021951830027037445181989528501922188322485041419823908480567474652555417169936897912236452591716160936412718431612869964074633563870008122207342559819229028866332911748307482644350149425744452972727698780576473536322801565196281934889626957327261466717918021854587622476666443755149982546861710864787528246822615128607472380192954497322099931794165460041150462905258703966161691499177246755077650633863680357010432344842978454963309791768153194763166488355687343121312975727696752191917251826146193368696333652191328737228305776484942315229927990239173627429526920472570864009181006991016365953346840771953535163293391225162925814113430241509108073588699084566158489354157808642316441620793903471997832836492870266567317249197895219890086966212160130534182277226289683245923816846353105908044566610398895434036991961675538965605632751433426791916905563519603446130594910481059458746824775726369462358333640893541163629433054059188688064642129825494093284565489842792611301384199239017583381656409025164703534166735543396584970055143992446462902767973153764967677350361426219972724328295523395030982680373470857713126239478793207138755780533375262225284623199688527027714333633172456661702530604476619688833583644273659952594446603282301689150921979694885955179429281648408735221351372021787007526075967612442373287811171997600044188053234458502555054524801320550807206891191403859531348846730153295396964699765063920585371274693823460544543090576584130841112530927855027704232227057451621221315659507986336015755703674364562016872004638435081601072872430674960014519069377425369602237026959287703540155369051793780018664263610895392191216086878282610762098018481868950753886524679186364431615386459020691780370533204771713969336443371308857327823578297682315885869369347740073707901749757079259125920712417211076446298325192375443932710887863467375743356118983117142460077789078904614267788894371197114514633107359950575794816132865859260573967751900651016384916595292554739564249021907931977437502478265045458242557617173756951915865623455160899279121317129604098238945030318317238420269745221886594461603487177067402742749373567250381391869981060962635768278871639055341190009530401282850700444884190409147492779234356783103754592938115191260124935554969023109516532457894621232429491102812256079439998082774039436064093396773650717752048009170588276915878556856673485274462639654404218054400035625355139214517264200998156122794375801507702387268743556572636767585202455491602856508006981004611758249352922688340510793853900004429693505355491363160518427316198039063779503586356571171411012935943047072868763823094161814910121021268312847985303528207803931383396425026105203900788001642450603139708634904109130068188508297470978791489158466934028578529837227941916161156646252476427176881974874536520105031783871297907678182669145072466105658773834717119495286635923687295232048334701150090519273881389829484904294940174092666811226813798223233869409901307962119455173895321496019314367711291476972101464977216813548023629996784675942434706504385777384118088702482809528581366453254645400266241173348682658844811680213165083489953180445613847238142429394612862056776033311424902692778559009016425918878290155323171885438258231145200047482005943793288711883524797355992488730747983057226243857603413618389663802410982870940617655760422839011947752516172871383461558051439845519741779108832942253776414965781526581066876342413620928104723635375465563603342291131802871732603207456910369956785578800754313758900699993373729599867846600531600349612535778871746428294330986672325076059569463714235954751117364891889505287359934755513778930353987448736524161329402090860852557628295317748072474857724128979014271308831440109701521737815144608470205334981808098575738908047513283887440946902656386340784738113371555826075970580947988809823225674536695690200345369117607573412361312624528070585635256058890754395575061378583972166874338703846932348188691278486395044016157307478534395537514990825385145054491779600395710264122882217876763816716392009102735307411798312620142311868102381782720177932740435054887575625830401228123525165278926724838802123862079098639939580710022497367077633446204526852210124466759934050086483339343305414332181596546736263690222068445424253772702221451897110927019310021771216784364347114070643421636500349728131278038238329015633166397420098236573266095151576744845027028134570145730205381684680113545073461762063674588953075473030876510045060559914288120791415368836562900418597380328706922796928773755160704816211390870662854548913094751367102010435788388906242330632925103499998411951816124185409908368095330467266217779470437845018355525702429996483300675488325149640602377682650060027884894668445730314872613261084557092693835382211481231270917489221826206299191513228521576542982657557848473313658130241958334479659021790293432325102227950586922206282068093666808506269150587021828058096055117915475567818250383186578017656154644193375028199693944833279754774575636110432067043973856966810010871030153377817284297008904272572985613063965081571805626594854683368418646745435658719440616835078606476394283393265370700162820800313928340341808685423327454963907640608887424630269944603338951253763291063388890783807341779363996518086656135009201184173208343779514450255749059398971989044760997333036331790786960102929986449813308980250430798899616820635501772821774270409639519310570824478718518828050802757913503775764328490346476607457716033343117652904429021088985474391234482613305817176841944189916385071039382733754017684928363103728337468514025798938851690855715219292574608072087236496603036204532296455786158297367649538855570936451986995240114065910377305923715688663101483828474427484243872952005426298886160101855938185110420035375835182308215412672101166344033321241505015644071795129118798381009904184352382677944833402260302091002792327626400954512831434057281110455746352783836865526137421561125943021652181665275984999449380682527246916917892522565283858125345762254982514315141590782743441943323587807578878777010507369599258215103899413603140852900282565300361047139875985053266855220456348197861759798533713671181783542880342953551616918591135644751306092986974940217804631997967938331581695276578107382828598846529881361232870441823068295089007803109813043820789739477094304016057158174544072825243472680488847960964137089269115078376668072246811139325740945494426226812926593608208280477230162915418481632379177599899865046823930880526302549272877082858169967648295393695708735479977642313079502344508544142208978962247674379397096209492115308199783678918192967016268123364734775730173376356568422472241852491526788296780995301680575384303621973419103940189748944309917357275008008942834493378991180512236437705504484918322592095464171187292806982445432567559021585832947170894484103729733467395294200244067243601932465827437871228873957485051764885924992795045088195948352000887551962019127250623170522839145000609477920758944355197569324769889735163749544961129408946205341184385852526825895091257820873047401867164065611962218041608075367318448667363149961382902392997240179259785875563258689126815714796081776887324379545611935922265413535417913437093405285349164585182303412727898365947108278959035049062420415062343137485551336954157217217644877520814615976215373496904103762671756365586043101509323629306222083563674745781812270521661764816863754618652042136270983773458169089173360627920835283770314313075478058842408503081507403379552674088181624375352765712649606082087471517043583678725445630036750648320440169542997422306204398992591735689164921565752643586836785841076458595718007310186029222209835719277694317687894403406505280620021448433427970575489861679577754418321003112155867300005749987088339743145064002425886073538063338939960971904141313623117928882017325736304479376152431934741040657506465926333356268946884136944845612868872452390878800454851747519977636394089171841743354259193443202490776705422423808619428303617990854633678342950215880783453034426803621795583953345250122271398472321629840178432978540044677166008686858096151846912104117962258195593513433998984069285863676642785628268619116577991237605327655151755964700523854197375608358792972319036662841138642660017343141674741879804414591211083734861538666266361059242528101261194167236125275648823925392864071269755930704412303785110137466081309555715367114832563210545999503354026606033663954812025131869035382803144199705998206534466986291102702041329068838628333679756351914533072115122502435585259482215180577494225466057800807659106824772893455822023677601865946199391602347577338643871890023090968206115532462042724232274577313944923733481635314776895049082830936285988242737905408205708078691591418469912323033790046593954060443435640074446447640169136415812934918779514773713964955662207021402976209992285532514763920442308548761785230793408292251251335630664608539888989622883912450625914139448280677016818902382131302120722470504075549154905623372899673780372913909487535973617407749178559662545256463628751209792897622471158491597075552683688944402947980485856930010718012496069834614420917224078426052528593312680753344903182805117764320893890370745679169747468501428366528483715119156307036377749536911924717978977501738022932593366082126979204604912781310488984826132483206395393908365572646260542637825787434770613324444037964365860788586141228779573107297762578783938128285804132070082036692215027139068332420115053399463027337457608487118686933649250256836384038332165778748287251087536123416314798574388380634507879328996189840454186715156176366081116297543576098669929569563317777688625766732474018990159995934933978717013254498268201477059263848131912088259863339602234991550236065723384312187839327427925224556835090988813619630908766746618552066244751316194764571270402846304975748001133157418264821376875851260108286182205970170806193178738723016111438916374481936477649849026593588859348570273601573251709882048567469794069512226723664773875233778914304485048334393801485464552591833698324694846501799041636140997890051487451501268963621982018465077981424996272096192415948204445702677628204157974322129678194588486375859778447422288652182317563394209265028612287221454409189333653184733923304185500663932433942030730500773019216072604994436915428994399141982393577942163735712116919187145559631868742828745377931015384455037370839183869558699136635971791411804317546049104509642518166587387047891693809013481066585984965022987418623585935110977410677770079167788856200221485653958001872843396602880160161304643256357569716172140230030131610805243347165439440968168240572140166238346330499458779477972070447855182518579439444435047989379660703083463161896265866939241652508021115958331410528123123653323085517594962525167673880266607481221497906764798242189032035736432844673878635202821241119847529007623444989532151648052330712744401567599781113916569208921231601846567715382998720384188970089384499810121670561422255939356093084540737950164022140254140555775380618413574977999502462869524933263474622078826613060782848874649509648218153006755130038012677517885984776858439651213349472987634160242532740756348743851002344616072858942464850261863363936472733254020908401293360013932961163487935209427256004248264593451964484599675320167577063629314044190565631468853492812725108195769681266015674210367949079014024504227984582763126065682375903129738559852533814457788485511136794061173524720747952454734773985420180250305879343249717181871164939493029578038923613629845876482716232302616815705804213488580718935693365482155420459381868467670339473661186816958671260352400646063607903304643679798808733832677993807423699822774372858338345579225242982259524368591395045211132236099090494129312484721430645754162340468359596308651552077838253957625690791315161834312774472950246655345527323419144457598116888029381780501667461643054967402853172590153211739935936047786830999398015768800771019483946872209454979737687832377897457042836932914852992602604638249430883472104159817943855700015876776780375073709022911273807911656349941294071735808717940976906833679173516544919829410440063292069724279084212288806280785152709340237634088006019462970824850126297786603879482885310204435005634276053224139779806507771811560596171679184950745366036534459925145598887855262183565131004655813789823973788137065732913389913592925427792468792668144012017182836647014902983343518993831908179836986045288925359659602558339813322019497531974372365370007269789313540833183783107987603318555331875397371418336160448834900603386961565910458670701120407567905843412470726664024607471874133188165868086411450541928271593508314321248344947587301870798642405417437524436413236561190387581984128754407603273967447976483808997997170479058182094189951643435339710713687758322637652585594935191359801381199482724542220392491070641921829622869102538834939545351832441600868802124624152298527001284369043819590670781538059708912456841682464060343495270719425808558781481263781914552601616531342949875653236533411488542064257859809720928922932646192467322746625428574476779050854797074843337209707611911434258914893331605040475885369009778115287791003335917367462242066698216274473013017403748563774255835808977677062080429649615377773654440665642296556501604691065412446663079649666126252868839508426826044138143570010627864098424123637040504022629913760625799512913913075298090840542404147877606814282480412633457646581222969341994173225590954610569724097080339089348597536076597470677151051595860961997814648312107335375651942874669471227697575166564880515677102768132243190949818149668710872658267284482329727291971642479029479618425622815322144088405309357891305975010758793999649739791494072356552820293268628680151910488958449012150438037840605495192251677043533160185225650276247644172181786420071211986857872107609208372154388856347828066942675073829787786028671744109956322201338982998805408232653312260514296431735974103326418569405344429361792434042251599810214488814693396745152055186531485452001170809032838864454330530922307209357140994203831690821141885368105155162237876418536689626966193074112444226994426461964674753229206999126410327147586515132822793355950182522435022401868092983702511535996645662994322546270139660970103342255959109630437850681108228403335106703319341012060553339699620732473780244783971773017895006222701971396319466817083352146886179989705714962113529195674949711299770035058207601499382127189803380354480368567912811525853177427503162920674075565517205335005894497045805739509024973869008704010279917356707557480212635249945227029905150177169327534289384469909700809236763881576215597098477952931765265307273023934818422175887458608284118120243407064251351847480166559446673768944299483838827394531488556882573263155990474928461927535594076803179969742214527087283541655845322128956054996503532342611877524253039886598635541866006696851991426261763784793948560695114205828313051549842603678451257211357170348269018780100921184324296028841591446866251700376713552135875878311551271486002311993602150860469646828649123328893988771332520174821580087246344258260961137047154878186216973510053502904736915865026333305906984721023713883455727906449824127868926759062288702620391308116071206495588875445127120957148007013873600905698495572145598030784339406294080265200259995711756135181974766362409179055171715832155028352873900802918930002923897709316640598695556904304608284519924780039571081937529378840558682814405824850294433492346007517090709628999922927645245545978569700989317534879614239571149395047398208487458751296829126662532669991953018710386677112651848367616474065108955959277768242485684646299897235030485523713037862104657801120347431233564915148318192208848074833019246316031218288289605921357938025518472629509944006421988113383948457087299537265551853110660013694710959595417393966844887304340662645025582534644270273309086615032195460453116167575651603388063197529216364421256330378458662945179442910847483041467755012130080033094286295051407247076924238369681177707437816978836240902585064480441625748311404705266229143548639639429662360383827050982776227718962267120567040430925153615833737471944065572001751409632793345206017384573651318638770461559442530180748735818404720286065528879129467833476229523654480972520354598695550323409577278262087220506333129705684049809111768298368058508218590089603254059244922768098311421903360861702371281780821747976474434634348257671335127772187618743012218412088495293551427099432488536804863088167710317115435787128288750267401561105569253013766258844523299757081308767379731957342952851003006097060969676765178010990189823092582920901388672595825998412165719087289070269975546587664653910017262964197938773137005814215064645492570906169618495958805715522654281988635228567815341133301928327024685074673971980242400381573154811410828075151552796975520696843569381341221738578084094849609763184009784928536227524434435397446946059092754027522857564727102466945815534323533457007312516609751755779409747790197488890939826871792387005378503818445690200427397605270814725688833498951522080630666096086866839529013936170921952254061331670524984547301284332657969537144062302821112908053548634249674951694477274610352052084157344290610758134159130685371077737172421019666983453892222415473464794431449019528704877836747527554730593075190722315355507372440910337803475614273532006194286587740557714005498661461453529639390202599198894295323325476205144353374806597942110011691967814153987759145896084388648056197341891957454858486918569403775811962187026804190972406752213380875900470654204556329058158205166627394276911562968256443614415674984880399532093112015284822156095234075488741894695444902277095565513938645813499914508417383967436434545486170914964427112321467185371680041740908373764048795269625881001103530334600349640340703464121358782671225960478704937635917521600082436179772342182788706630027107084403922974001317709931136869708685897563330432062865728781976352225663331832118645429414444376995334262898325361315321422864760385170721097625645862503987732894334516499666241393458019076173864309862556396708739374274655602373177499062302817207264957143025296479981706577529526347224214776004268112725659613877958169144578673394333827534862094148838864916128959720058747132581589666232837480274206289292132779958343011326077562582130358729550803489971940268825081643990549267688475180595834989626340339837999819961581123058348680040788727587237982937379351147053931119358229009809507648287264974245221616217553599057875546903497430311426323008235677619761939250823623907343222964610631581878860962184725004216971116290536276875630205844416900983241507397826539626019737946781750839639784503161543289229211609878594295923316624415317393253195526542775878615945509484624433413602014023317972850416901104145225078874001006493450926633036295684845900260749838472637703002241652132776273225941186244044100246965055437203577387012111971077407664736338237683313719486346584626723708574936183268339219528901114537728233092376079480409824065093034659390854864717632842565947911659197929269223163026686507406574395293192048409143458987232732608936521688675745123342045702012807833879255959891837487892288385165863080869025680646108228751211361514262787406520615406918100074116642480196210129571909776305785007295841388711702425426719015011016451209910792854148459539091466380445467922319016627188850175311311885449379216416723532816294033864054335334862462723477581923589542963689342605464111630451375112580082150578226877972671870838373119365401955374684543596622548816608626149769838036733333262899101319129553751585940313131437411659122443975995399879480369858145052849216214882681128680612948908107649321452648140498228131746811552918131555691877046178145580012111320507290462937490350759463898906119276068327183429065845543070352275250155163733964558675165508482805217620605110680273023922447368487437153406511424425240997353958239588966168787350324828117273685404851383318298176430285172027130980701045695957614961678098623543599590405801960160393950887000877633316630506948351527903095457186678961372871452424928653699620111799790976953558088377627214916077464767109242259050167199010484733652639714435179140307365771609714672109956254459374390892407830328289720903626901010710640403483179696715510316944717167277036859794592872681217393136004510924197347197366090829014676597072517951061532457571279845156263194467938080143719878793015433723543011616905223285168162494119542684135482700835312141929847354715697664908131663469610603166972299938778924464816083722717320416130119469201608706145676286762833610115180817604589438577778487080489642302590139512776405789080583076672524332967658933360310376055785135640150689186867854746598908844047546365870266433519701150381325943034563094667411195616657118649793328109000278377316747551643176095065976856464232533498950703905159997532676190032748899621585579031386116367037227775942316009692313311802332055253708004464081506438672422790368256356723858112192994713441722063275136229408566832641475881756662353321648031845972141315562769893011664969932387228249153869024312372293582340933943172656617646818711583566289213751743464691324522204502712598659737833012221204605972618298185840889228086731675643256718963459365701340114486128849067307202054350077685442330057527067641979096874690240045804162503743609659232248141935459002384343357016960126679239350803459188725454147509075634496218721292205754629574700339449241443013231097932569471684926488111284178895663033407294496107170858722943641111281519947706797538160651576012083259690158490747776153058454131550466448729770326570528859447884149665856152164096171793285234008209253070252783358327690593161357136829147772944766150414635118542085794307995298705134274349048340383894216301622453362357421189113310249778242170614414319571990605373810447647769047702277633492789709486958043513274523355677101821947881616606808837261584699385092663769230461175357834898268586677562629493698600168326042257067770829859538090682019729907321877493519169203490675714557896286601322228483660273992678388272559640666941506702736112051557655249891155135618549028835480519569208618753609306348276115496143420526279026877994606997761293570019091350355233701417104736913339177012354399938604575099793904085194313990244615059641452872175989648374417875367452416283809998478976729155692923746520019623483633334791738403555990534285408452837559852087712713985782946557042673899297744404575002027517010354527551415652389649002870479183579761845537767507617320208306754362692544446285355593797653747058409481813143217671977468785437885137280176196752400493965225978363004975884987242906952766883553047534180022786853536785984045533654698833104800913437060969328955513102668149961686438935584650264927710963760305302767316469656229556420826766839042647242306541062912297201115211813076430418680929998670805869049789533193428118961686182180810424599129253590394652562318029949826628389695815581009917528316941194913254712826694541506070170154251579956858097866970631357473830120931320810073303986882499550583625371959737406413657954505933520069283315637253600700060273961856525894917184392891793124098690446964238797311905971562565676918793773070643374092438022345544484028680714350251669173221740114634226310129614672330989155022049910882391331345924822113523766051984987485389888544819369457630262576372907400840666562769178433354383816213261777678641307260305749311851494909380262474111905224756975694172867606975363622063252113356169540228986422334909955607964522801802138123269846557491373671246532771273680623498094617891620383570886013992304412804562309611860668698251509520891787956468872636958185511528821386752935621937219326747807188877634631159767772839593318278861086461741517147916409118937410461101635995173609814614238018490458365555326909883626156715764439077806921090021510847639820014931345715418908524957816820012862273902734058483596310736007956292260089760517092413301729208451276498210622254061494104044225173109705362741782936583445065962303341280122953954397498017216165477504105114006451455904187325969489303190896141168700552628589767875114591507187919552423147279846098399025174537760986186721501547875597721093253712879935514431983266057766081548571089518977677817676176166126731390290259190052466855989974728461994537554502004730944902478472494750502689861392870087245936860279644957008732489859440991547080311691699394412542854879642828010189963356061039770425161862055440399219937411031276266132889176557947630248733119122884473620865177379824643093886149615121447253829713953148914474574491623889425864538897904188310346739859433951288196464989040921843460904931470552928893218935470258402687325005760121043374385823628220149932922398330845505167841829441063657750837868083561474227255066766036556660831741051105640628802290338463164520435843735342615992864156858745815590961597748910739921765775553718321652911007663767000934537199941244134238696788959694551308133567300727727083248734852565935686356790164523298314914311780896088505171741120447356405500768188093898444470630221159365914914970779888161280598790171474976339430829455116037934426794114542934416652983090918790886562000272784547908236983673591767029247765521408565498768740730410239969167354154641466501410917611597843390416543011592316688462506909033525321560408349293015489335109345683818438441160328470019229951491562748795765142013056507730157991933348705743696430193225566712181421305065935650736553764644118275603059645178466006334574552187254502351237335447120566176543059525336056507540700504244127726655396462761445233393617352526980341980814706493254093310186478790512604866374315992009908722436279062090017211473881092863047421651555440413075448269578295682004980674747485716423444895287891446327130444690451826401926760820740876229738002856826796728444758142120494550038312998391710240095968461204056411854345236388502578406044359355061176306880904203458395092031016079371729828158404170319038327507815683886489583902847229146717659970467367769809755983755852797403564047744967732077656389326675611258407131954247480989728682574158716093187063748454751631604297006431276938147640568762594032514589782138091198374884504655937694992630856466664071727066850377765769043751074142957891268733152736963828151607171532659422886558260202340200174020089062597379487606001411860332278285465576555369065849142686574980282012800675847349908242735235457507072065428768977319067592840002734284116091908399435946263934919176633657691604022411428510890387127939376870354667058727972454153111971026879617380736023763659996645580399068511379638879183598207944651748878001750147710786446112483053764151284261045439905137107005788026073172342266486657098731310232348553002359895521780196214413092480421315152278034792129677724782614181712321648258562645031590824440385846143399686858770429841378462678942054710517053866160665744437848290525116577284441511398548869700626634023286582607244119345325342401936298002323025586523317060415571931101147976692292371331966256594734294764243946837692826024346484827814485721790893355989102921896944916003008615084195961273064567131276880814981967505209390794434167399648211204429029181389782119266806517519351477880039039156217711490662586467888258325943278804287327680239266968028972520146715406343636191306090635368046772594032000238933251342856778408587587051418178192370116263174535096609885832849309631409340162801170909715430223767510194754016696576616500774186792928249884652287861006130276389000970216539855782388015814480832294697966018142422508235430006557619001373567907511599516894251878922782327908804320114531185978100965741608540281696485119410697894290022524905259499282686240456440828304900892664602924068161506179581625350945048627214353074077506328980476944233037490591340413104635960941500679900236943821041271728941348837678567737745448140819761032216320185137600501110726279495591132875373644759907393594846084840155495099874291861365934774266871689644508022272765618992763364521269243081246589578215946264560754925747113908848248499224312907102630470378594303404512936079719894529293940481998805636064892421861184726515142844881826703022227394597531587812816203657857335761067611535281661721845965810901216384560346500583956142869110770704718757502266320621155313281974393892567057118816296704427983823407255919297063461524535574658150125163835108032226641801026519107142949472143082915121753857680220569584129469222210722078008569331180575231262628078628999114045014038695216782940575410011502618984938803381878902831312051055587025992916818798919805224598370602036268369709554181974027443314137251770420134980676345654059793192327811775668764448058260385178738924135992391647939840209121011829868704334394500982365481977321566593520378293880554314962409000022423182046017371715403771488784778088097962703510613826594091605483760700956676935773646914772426091093497503763988318379986799088029793812189817744358904473451464006444209191162470802103473703899953616298214950972117716017055840235041730385419126259396374862316644538415925632240528049431898043459809123326389066300662565265038534519064676405569664832688778457386081425033569732487727731994505852997866454124238694568326395109582974298271181970869790556097639917017492913355562548309800217263639728044994515325550638919063965272704711003194231053182848133386073765840223408343884975647091404849093350105025638230725860023165836094800237499538658586312988094967146357164229968762230401245963345120804659607647358012843767244624940884595827768847907850523115545195676733975415516471727308840666454525249514003488288365369257810609578358638819280624355216732309506347631629327264767242926047441216699856355325496228690676143291097254466725028364039593521364487541534246370580563443891335511625857925528520617566667510252831555651369542301692779120007940989892112115571937923546931996828160419289530098673958994677289472700738773335480513240314934494878576616081909231789836155817435723513388824776233182307698461770108978320921722365128125311382833962616953301082290946499338703196700349121419986262069890730190079164703301977639605371870874051383736120895515330865020832512917380333406271659679801466141795561798877205481631034798109734066889926727933515034025513472449954392645018884686782570474436292223318760160817185133983416867238998238140911748488866008136938816811297375258805121468611086445605344505586126845610660191745102866090817128155424684853428711096785247984998667246971367337096465932060880245081191656855259839730903766096025134870303498833112554474017409514015658229425267827944919938839657056490045605501377060495385905618196663394798948202065056875458388673473719881040266217782376402640227265051108793159361830212222207269550946637286779000114934158579034004212024107590135708344852153801999138526677362334126924331939369686407772223478616816482497068830779597908958463373731838560134377980076562319504316841924722077595034938657147341385932985204196460190942374530978362212248492376584300314741962672897888793453281609686735258157281007977478469132670865805965561273174852629542248054921997709512000885377668364595420922036338468499093905587840639957623473200233087771476810285081638303988062600177260748559420569031570524363386566020409217622728965077665457727792707332157914344964110674708881742815673237323818279894903837631097847457904632404326873968069240304324297294125403965180280691593581328561553607321529570712428286334943198288719098087443908127804692594319267829685681422202098916361738617541075861172893599682403206774691144207385186146183915183938681359276503472620374214481640268695096681829687573328355912702863322356589492794704497423636422849746840520676880853340236595873169842164312509127982941457089752599683440058219820173368515084277713766292296121071870867757769418729979571073470810574861289663819049452205714192834630034650709366163826959722808986842651236582387505342822531396215015372640626253170983435502921794579540082822699819713712088030193626978320614007877859048730653473060000275539130517084839950917268141531548989178777612770787115575653911679247290798909726683712551473281306372853416814656095063411974162928008338365702376521563247926836563971106012248306082829124638996647590367879040697123633789733967980593946826214200029667722982234182168082953466570744430750107883280900608676806769392744508124478993948071613826157931797917831405785065949800150559995290114064092212272963080314887775220767806254262810335388962088143261882195738991455721829240448931667527672187406072440085828350477313012810845530474787754830614587329867598306650502880756218586250189158564469709899370258662709719241781680155618285469800802819010923908360574787905589769560273038222820501882132828775656040777486997377792617672420235832307059081364138265820229163113255621835290010931556149916463367847477093873614972667671702881577599186928750430805045580320924227623171391067321042842801191685448796444798538891694517747841512235834105803097185472025312262581971550101794319235699592771314672476299935717338366650221372087006213929830698559726605024043978874729265743100446640616789833784918696081367542802514302378056530530846563853338323578652256801024706215473674584640863246434195943795672048126775776385518559386139978454961498458700535718745449615910833045251545540581742406250355439278870738349514791197244527363803348722575701725061630729370046258653316558706409113488707909937499684719486049188337953621772247608261873159384417113016312346308363522193985317966008770462081187763610612099067158002101112906556977436856433547897845593201086180009738554209248291082746886774512923281826790660576234648080328796401558468240049467146480825373668507951668864404661444133508442215598094508242199729317341178429577448805130050187468861727932925502601388948110719587719087657909993545140144821877476022631856457762611352174563454533580733630938539969583769233970247718423581712906362382944776423990321074030511203866836500143625187378828436003451952648205631022420752108801879095667552598562031753431398596430419141899989827402474640849337243725689318177283564936203676031886191270978921295906603884515723597668858062711074329891459071571338456383957764667922452182143472561464589874189187291446634194338874798134838257344039792236932688626683147936164820822134783544682364033797586249110859482914571606609703340751549547684774501780833482904495172232308528190357067057951503947546810766936947922888719462427162128543677569634169577014522635605933435347797695178430763837836595119997495595729926090768201162981285328620807498558556563645982979126349876384036718470948876401244379242014119351013592963250631912585350923576050924449482815724340443309728206427120014967855004758441404461314784729029417691716122676666035299052860915605524615709053299929124421355770594247428601239559565739507156362495092142445507103598986442787032857239270414042404588497318589557502444846841674468556156499042649873961505425188140454974115036185847076883749468067621744989454506423319253234398799972404951263582475632003351603680229307585279170992917773899222396638029270916397036762238517432008823060323211183279714393215226156999863390344342130096302010839250905729483960696311594378900292817824904534112772992847742135859053460307281405665526816643063223859801429017355659748349158965751317270480235493488208143859080201680791185862258207217058222460265667175536507242247333810332714244367189170032420377907460222605929012419781511671437516456755970766696652480239706940983711237181052238803552286394049319306902186126092869270086417799729248566767576577246407015601426267603893881864450210298634192427032510656362438108724254782781968567536320813651232468755217459179723731062679975716282572293154324457406165303658609588639759183668068827851520864712266687148341043024373498323682978654518109540770067605105010824548701058400158651388792474305876213552905348901392186374858932863232294725280652737582763177733571154065360278898401182900325549509129804923184633318768598204179398199614294362252937777156679231966266505810542154845586374979755633933942911244119291359817313689162681213217276824463495272926022864635797200597951649672526151872625839434948096967822493229946914049851893353697969701954302621994171670419952123331901159338215975305017293246422416060478843028692373142294279826887572716273322909695050267044516845709135312857130185379230485750905682529008664337100476943703656079004264125882672138135616954491064846287314611833194745790523382698017154383536892712454196011498120574615193889839733100581473651890880167320765976553642524887400806559794968334027850436100738471434202090570623931912130775373862908998379437719578054030490747189456981952642855415817893209923913857585722411951561778437461778329270618397378265112781256358802394350165717004214776736077035655040896997598174487038462255938263666675287717044511857481859696973415118083009527918697454289671952168235988679297992765844197735139028284104400910581492603276465508389158909317300450237666189053224996160158863070321035084238346039351592252314202710761743021817210138829644811827132958416637883252648487275626165236605109215354608720978361688205737857271227264580394452721131863463320168662822836046313684112888833580013002578757245962587547292015694283718770214115496101868622278226098307893786674143399620555676930420984518347189616574807174232018773267119010091715938697285978337452786764190064901908598305972064567170432263307259570721367590491260509230563212032945466602695790462395692349344132880899732988981471727651692864816040368218873013657214683136763601493199479399940777256791889229540490936987464730534500963732560304918633223445869346770303782226057705509935920764132523279165702940516217307148200661426171439293693768775842908749220228698932128893573856082973410003735473052546940702534230681522914649256423226677279678420936439804548884655464860581884884985503263385787553593877248620050830071765708107750887055384140813934280220968166718748440649005082445348636892661461953769353385357730376318090152244448338468015034948427282727159949019422466558802083338007707355182168571771644903167728895076697271937650044777281252672895043547406722067636167860242458710634463498113991435308881256726365638090056747910753087829028432665954490701615255407827634500594858124792404192626820257152377091373740465654227631508128225931640783936548802964110111538983740791191124953903294455686818661983404342009595447989836426784410656138845933573439896162676304155944063801588038243308061728716723721511585590253567260601180700837978751974605894788200271466761608436142486261209358912299754207523347424636562181391896981782034872518835111405440122894767245556366036685421565703344468168023661039739971468103360077203576871040836324328620767397166013719884852317264043444153478497226449836234810993140629429064725218394702575503153244184112692527607458969479906149735104425299504138387367896425876974065778418887425279243950914249916813513486396236113769361910765623640651850046455613651123069412053569679699176616434229155214639391315473819333274914210649267567789027800909578694392005783428961514833858633672670439740209810244068607840200308143473321679853821419706100527587644555686019867616537196282209413616749543061817963923237435105607744228671552311684852823476198605803529182832578543642900849490380531733265783959529902679060293857202611108070513928591150421811885005163307456382566022454966681569236528908378159021917142664349023196193389136179329616007129391556515829940199709405938790759144027102855923887738764284441354987726598850181538186442456324978245261207436739672066462750522726817405240075399638949259096364517278748785360740103079841163479629713406428459642460015455606481277245377782660494985128354899632883496202354700446591353938718891911296113154111224354113900076540302477661919813571377464221913174697943111037178584057810812843667403180075755149124506085151338106599578986840314058802595263451213090424467005909698343814270766748718991596402287807222544341114170227838500284491749835232289103045887954324085633595968910486669862471320349502068592920037056403861494285275194490528626783609697958065044411995809435586871792293684656170053767778343160349653032417121623436769268540804495915385547698185645180142786575093141922813257841797058849846502172736762582329723829511649681490927781566031188249845822936502883989868235515335444540546980193399113010015259173203653877040028348485456320473450700915993822719083899638472741315601137516845110714649066356798534220201939202938002392558949985292377082220493111772975250250853056020238199278857223505829331371348445825540361272358145077461132918936182959826217548281338345030379538137200561442879322302442243343797047721669238885249670848691244356276757491877331296024187012746163390039910943031630179135843277499839739090950724628546140740644230008982328452689830049792071431966803671880305730325598572543600395853296438015206502892499473429439365069923351752934693928248942497169825945689150003318171857870299153429996750654448200199106301689230684829496482422959645346549217553737368241634070799299015301711123935867509941257886484821632543960447011662475296603779834273707550542607906191501740808643938931794433523165019390647237385474701376503306795666732713711271478814677012010572479367884697857720336012989100128501132173136876989821833725483198820793906363837540470290764130091158981744469168025184289727862448509560084520570190742631301374019767290271731385041647802051923504774613120966473097906822025217904783312020187033705521413038325293935589294342702834525161474019094211224488704156951401419429541050636388255583567503903843230241441311668733191150012639390574017836977097806602814355787859490650063648897740862785843577827434622219553237007184241125791071111240496615877659678028424786734628863140724606544524284253992037219398565453687507947609129374121949318349624968022745102868628197436106265986878210158922778310923066680849213308784082009463325877076899413475867091344640594409017594691900379830490591260745321379035182602744674496394372693635421640386871375812599383617791759104551243756482571616411504514753898754740340574890452411127603404479948950903461442408362988840372378814069684389014426896902922839433548413436069128783623305260239319909069792035760440629047059861372761020494526665980925949740489120892718476566223555392050596585352738387910522271875397702828810710219883601453552545363857474802522605844987440139004941646482094937453964749692082615283451120610389823744772438450894023797953508049004458443568025452130877948252453664839843425453174951658551422222616711634063036447774723868481381446886225842781131779729126728931129757626803519936666984475943089373593355060398395327100647590105780016663754542247068457945221390053056970733865858813963654952962918186324558574320980325736953463908580781726813275508994411699604698855374318700473642152574653743260498383899053657164401255568067574274802904871773150234365253869203097431067477307767334710214745123863306171495276508207596820518589169657399634534710677752337169973253029270974843801774685422636379930711400231249011948318973524641571161521788517916879475902876387179689440761567754671741183630755812503190394576573855863158206068426783759971157643273344962724465955977474630679593705991470710945013982257872082160706267369458711624514936373973560169625463309290489749403643991863380460826791305585473488118113865144684867184266880583893147414851585793763982424247850220246800720317166131323959514139403737034610553768052109454812833601865674132439247769660675290759149953744361746773736031125549728462478024342647556318714913147076627747382257545782030083625630754505270338690528774072899451942668930385519504432570524814577489396053482545507579028534613612822872026994586499450977206853285494573336921857204889261028137524098272149378779218762960145535174057222946043413140159454653662075515057212566767544317293908615960058436494439819178642258219817526521749518198855337775039532593413424265964108658349464481610882953685806025793665113998416415428786163543431768075140353545914895017452776635744469514389025356385472990575857053963845364097076860835008202776212984894351691844924616235471992061348501071480009248190082417968243010433659083888014822356410246171516981410334491581288852324715633526134156437082057589065695422655732819693850209377435681170852987255010977159755884913436009624294222256254641811472215396799363866090372712637995396487594514960700945577598553096300398142211696644437328070265146592778989601354175170546950618878232289235620303035991182637090523893807052276917419831368780028758934325382776243527625608514279817877136849728329350385162972519285913410769562822673415317973659365871939720574757014056142894463828205359407301824566922182384542780440227882783133503685151436812031579176950469592147353490111282653825989240022973951195034245149093970599256468940335497631566894849729491996117301143943029101099183785771918450519307754482775358378967164222435735538308010941627488633464375111156885649689663430334031480017673818921633559133277314731449402898802393934960926790215904383377329985464806500958665455112777183209295673846913409902299413828919860582235199234697156629325734989024838026929576867884621494227643353806424827147919411705395863958625604866356369086773745278279519830660794471037648782636728475222333096331537828739826388826223090200697264326082657876730644732189133866824884916023879191250747840382097212942069490195291934224805121711801792044399691309732491404259628072560599242881105699448090123794276160174599193615240370995500596306975994440658724336455240079772975262050266895458786694517663588981222574105071363226494260810560730561020763561201227187820146065767679951181824933957906220515462856766182452765963651138979433053086650650216059368965459866872054141527080084843139675462291123855625974103560311265428319919090117721442862656746766759415924053925662512016880992990554258733252682426889527539619813086588879748488848163666618290324781925258754196855651203830646814048893251686955614394003003786481351594875293905295983235130531856048174652390259560306530103418328857948721754390432079723211671878867034602316882133160072109265964487596547405683701046603268240810964073690601314164319357472965477865623323323595195673501600089145490447997330015456425590242594297433644146185653812336993292213863693763488146237711542580760374597514889445780001104818588714974828883536545903844652759455579254968513665626740787474320183484126568178645807213573157327688249070161648278714372778947994150302389215211824875811238373141435483151384909677320781909727420298623190613197137464631295095585765033446271522312279597786468269372301821712121898699026921033614983849022343113975767244535743910761221052387339346207373537524224691511984705960165680148982661147992769956345455938497746815677348151028877258403294811730050048663646144836296079033445154986830201961348035113291735131251095095112345303375076690794206487507237945603160542640271228723666593326330630177190119485295446219017074651639200838714103036810203509405972953899292410774663551071665344108387967359051536001654723510397825476429091028662446110997753448188811230155221686734377534416816424927428158904100840302116392186656044185153197499650527807343318477225992041136440152331182239426362834391072301854628315912357575191368053603855401232598163408320517386991928595397995069715701801757382253476536378428101302266060234702451545726823715615928724832405358090053884699388454291330432861514565734910464377081662400228830125803921928450277219142727620643384544559650829265305644881284139736926293027218436217987581945475407336528536130584252385869320190084587572845770481991776818614392758678100210107087033892678460788124829363181160234207399532973030792202559767449720888211494651268797244695737440850158450063758141292708835119134582150675506503300701996987670890643292914664245618802013103698656366768823422385602965707991339944099277888036007877550708463670646388380914889664088853648039854481046738878690597438182446760940560715103367408412822997729714813158001242869575758841650101981404162884442098874151588498902243053181512814226197777655195052741506225860371218437205540700547306019886751455459142624269114530466366005434798763039154840907900240235344102484671047951673048084023107666818259692715911134427301647490733128762496726396499793395484744412188394309622250248524458927510719980386138471276222172894805585102618717721483247206163740290235352458448648676637352036437268447161137594723797244023899054608114402695814044175536585740166112018490287583427999289638739721699107354868024769318086652436565059740080085604249409937063751661151976490582432794491254095827073184463800162391294924284766689916275085217935292991629442533122594155544423248988860371756462943119896112643003311760199778816444026906275704145502201717166516469092344898814540584593451211171350487062384796064150034050099643390301498797763014748354642427270397521364936003835884399993259941233019347275481712170118947729787331154318282680627035435568173847259771324925061881219300299403920468529434653305161966983762808685918140368437454453512687517793844587562738790428600035543551146815662923588392106191703189996863535674269614640053981959970697239475399696434273177271422077438208809494600401800329320550551612880717492526001019132951713302328669268387573350752738303573716946612686126510751679064069038335873825255166558927266348030790951892125730749254350797764073400262779149254084823919659390621628437107974604264938391028697824052220370536318600984003576323215436968815235914082116496954065056227318401707177678449982889235958313842869603022017395309411241488599242146220259182616569687224100670557491312062974212460051433108529201330900548426501929387041627638408933858951684889753302152279742317923454711514900233871699572057740973797586464165650667359555749565079857901039159584854058410435217008819784750095732822538281867017242561110737978139724488655616528198259621484656011898393131061811561284064935960043325335261808019066853749868353835394227864152361914027298417082753437162280775557033074156648655479818474514828108116950672683849108654690640685388512716602892950999486057293187856563821001754371362945549539231870596254567120324244019445957379773629314756228564785446523168507757300951653452945875959267626661961302782816012837917081953977803775982470104507992503088855849206562048065816200338782201273831230037563140063921452272655600338151382921609852795357761467966114151741864749937405947205208763426232397603589852087099281059027331932867808867172740578351074605591252568629569655741433304400428240602927986415486721468716873888045695718736618759367966383163516012980142308830630698624702726879182313001187089851524013750541903700607856832238194810475318947943979610894639280578202307484254106473615775185466370705883661745618809548459118665052724121326400104529042584235317096504431066071475147479304362015956864051429922932552891288354108916222316753401686748851968729163886122829332456261752266107336219748376154892231690056755709186612532949280715074858947596193585883937277987620170448954889924714432478028909205762542791935617140147005620140096627122824235082932800020628190200527694217687687343502585064229669471007311129536371338097766925449879897944493357172938007217369400824314488844505030758313673415765475923313048799055051422722334900067166563229997880834446969690876952026906788442537970063137130420082190196253461983221577853856445144430554872251474348386705132325758560998159405884497927761650885911566612476320196991503506287717848394525891082029185337828746032937738134840942629230856880667500769095349302126618970022074473090894841606456727026766624592076353994787818736522750729311263342748758731208428507826852399012505681408485124153328282847132681563900129357741899319631060882860383691005650204967377056282732317896942342683598068058035411082051089613285218755931823086031422643974305606200897771758090418441970970207507408728014714519107887085314008762509305843937901012419007626226222293125907566891303768852908656143729238368341015528658717466375832891944304780827560787442125533466240090832558158988105136964053561200120896794991530108636342475294298087642424732954492372328651361544216768248418291254098713321974974424796765105415753698826671719816376425908106384858029215150799754575739415120334015432936234111773221973155679662317970312488180441461763238671801016725676434509557218491036345055972102739586661576974482520065873258058449912879326344583089378742235684494354416373550545286634038212909811216932428049508926144018407129845487468126792549446196862355747215376485544988834047588684540086124685903005901450148326995399830676228276712929663434307996790879941549261454997613963148985226906883879246605839959655294833555673124164497153560206718454775924225779816004369318530624497410985923170283157082467989927034274464036516832684792739336596374993109879787246139827913869190036237567163728340680324022466953861186655431864834683920134554662830206184922218136459898441200081826968151189606529098686881216275213469938768156491272522420136094825727092607417875525955318265333680582241333939078898972510541915087630904756235144340671432965753440415240592858601180011384169162441964758558260769656059130475108088558157088573256313100677548122091420881930909987386046207607302231485562629287685985761551809808729301191686497399719860802006625215224259106614981830547180401488851253257712965730342387245316624352620809836504421324064437650432007143541722242298482979754450077297325053343539123965302374897056903304061018072405674627228637759707329021778662732224139181650749528744616604912782219898616330375086658617292804027557909026166945142843760121632629817070807453076725371381292498310448800915282425860203780292049488027046044188940377642220366805883463717346548218672503438813728811663441754994568924269556909247776460002794717817791298026306387267144335840253175266686765610662227517808712493412834531864582565604545759651031109835242595286157141875749254792837975417972187738674999621059159219867588382810774091151444957760903619732522040568339078016851991932962172397052264196415716079972983072626932686889783855081527433834634895996347547865531821460840662471962495196419503902375502975869122250882397811933057386359472259400647735181504896949936496223807611691874789673365247277148822433337189857778990127198500758112129540005945447353902034513879517180079287362717802808787773377350522659231133431338125874224757935018585696229434381095585603766772866480196394426942764608283017719230901998138761541285743878608250360550439939044108784418334588351363716142686962575411829311651868265336587798331668850022846851641575649127327169017051500887620524700822752605549045897907277830563408014208211241676120539198398791574045739337682963472757562607069879087023836099789053835376405986087081340262704138622458267947582454670398972490605462105468788357715500195628754108494048336746126044580384161269349426281794507902306843469332596660500829944475641725008864324333784626922479435942212144558831437595522670230055355784893759575379433614730506040159366814393012936496548692632767891397428152927090240403712531793853526948542906400892219503536861153650687387211353649862924727785030214011915853800770892578314572162855990807525745224367059696763828610233345051034546702216818530139587057298000361912237409443215407682347629380638745324592200673961957438863964670960936282840923563263826374925578265437654731366833531433170200109575906029720632651281599541047187068137415325780600917977416420644031902433207674858848967616800023548645554230676663665454279940541469906509868030931918549372599751758768631331511162978514361001571966879906558118835422476356989377325922801925440008786996879928589804554215934388497136546044439920595828126866456356742487435253396253711543958004321511784086240841976282106109714927627214293569365440891199308943416794429777774641286116355081614349822243279899619652563302205223214198265629839238494618384298680305647558711038188115936979951389706207172868799411924670679529701666526084237601163471696216107571841196221663423309377045134242551441899003402040082866920169854822115459139730722230091766306104129182714188419235125357902338756197863142266323474605638463228441835181817802426494920331460880080629583359620001934583748215968124627357648286139576594209261391677199233952429340184110308714000830671429182223821509072395280517860985845654379197705907982206344770801336792189942697824176189550297964267117945771512930416584427743568103964050108144154771119074901253930377845569961808497549776714540698690883791594081236482755702104720639658868109102282154741167657518337971889949454533484921838060871342358118332472742198188718880629098958377978902771420158795975194593030993665488166357305523136382491808856271782312562592510811576101566298636495693964343240066148451931490629298920084835782715101139485090269865849301230914772743939289281956879233110990865563429896251153274497276128182005724302459491890017948666820944634349532059992974125437069577628211436562511324882916608295530213132008613264112965739371296439792247679175485689851567351017714475367924963063162350509755526965709975840873146559277785236589957254871707731649140068795103608248092858602480632774043979381237992207879903331923931686719500819299211078442575592358058940553636883957430842814740428944891753504666535140996585983406761235322195324008927101165458919824791542612401542554571510117021274294789503520180134271408085885855138980058184859164676063207241363703279426231182772808329944872454893342011346047616714534508050833582864846177948867539645407366895096987172738869355128167306633102006101927767451870504853019200429787305636095296039676746483124547075589618417948355405348265782744407942458891394966262150260147807683516578033220226386642427102698422620263899627892708171095717024896404163251952450173566031048103220827215379522845296531512372679437783179358651851664816872431611423680694787757242449020917275412235121879878707407059145850994286061141287966989681819190117719671473148793935691560130292913882333397274152257596124617537933564374662227946922626477387147471055766108516221704451201734881176756950356729135567419118764373142049927142806401832692400605368340350566552794644925042753561462819714309528894643872325226527623991068817405629944496793349460270570823005076240243840880835615336888897704146679042899780111593039515871760132600424490384561790973827055719671217827433059574115742506222027900304393783956441419904848871684767031613139711688038316358641465398405109723269103628715628701339639878236368199239681562591437060328090176505835547176652923526716507767944917277889730569998416767907328602081972135653304854803198757272098159757747157537684784752088072839584337550184149752345811496104105087696500980225822799640433661165283368879304996184859497237489548106195503775171504922197865412161794634287398291408901752813944168634578253462010435413369800685571003828413895609895784807389034974621693260996765939348026239727938803167672690073292865310246809786301663822191849553454701377570608975930043757665970909614586656583646130630489804633024989656679339702375601520259307600993027951128105795731648787211989065445250510323550535322676531370674739483794334156355418082496631872113904217248163988116143003103495399668324702729818411208803356670548810885447532253408028910428422140316755408307871708058562143466081188946084943908238666297431699312765100106482663611228588915751353177054315482558930541109037484891501178306114746590813008084962895700814498912373881870635772077288060615938687472399802434655600561731510831131435070401731860439174799299150312389748325509563208703471255188939297531266929112743235091129841966114127997437481837289670825948763432803187461698840119205197894011066818077938955991084594993929009132981465914276995863464120285606149145391922085026076134472655836137310976116933953811339561249743327780420095265800178627489693228160688163534407632904036681689146735525445194950221319646537776123368173923462469141504007879437671272039573122788211925423385488447278338097139956999299768606598088362942353032724157867935453998560928175487006338186549420671049802006257206193658896231001282464730299299865648333580321866709318341617421629764487352084129513783507963449522925619187648731862461963213498348949864802550263960919097044069441234368707298534197528186379962490203649432083690841932887844167278788726110979616282456536064421654854559332235167330085429949312116865487601510720277009977516476046095006220008786262754269551293779855913657872815970304726548202470479828352153765872625016962659124122320942735181784498751640362646376327409652613781845185864521714029056414682360232722923298402702079566637884464916694644495256649067564857742408208777471032128649933257709080529719193727400689702842588250511568670062147820941525085528332152411954486386679822355170736387141310358245650814911194324015472557820718398037488692440997154325994193024648083726295010803920534803058488373520978406209355808407684401711962147130063660894510986733882551813345186530006620936790798745093576566167200808646477158912906161442360143584135239321353765503151092972806657823043641864452307813250102759590352141039492980645716553107915765183506093405897892932716924449186046651962723234278649241589148753923190965661382879516816162183238557769819420589381081934818764782243044874739916284006660180798493859609408449019862435524936419534503720669192504749172784436109639217731179292082191650072546743224345106593794360722232491543786783591007959474397339697693635079714851926232539467907703786741824863892657734087181558102276527711621552954863958455435286680572978013941664778640291694710516549604017850726712097163345678265167113366668353763400310066560295848010867596326009278539844443853394641583526469055789543609322667252848933519727211586756379595549759005929520574645797375198504591541450561455217483798893348640729753901705082179820804063307986507858700121042715973339435526740305556902833116160355519870745497081454037554840659525386734252218992494449623762875589979255477073743694497452883688311131614157334391181943548665851519115674875770539933049453007703136000229132742452526145796457029276656530095611912449409859923783747788151008919530454490361627883358235857282935092127781838293183361511711441487922494425007624376259191647558861532707533872944475579995706696479028276189574187615284488340355805797624896933490027713066753875613016241335095260987359072126019918354547642464963808294298079242405496384538980572921819279408340279627454264740884851880983214294520769428243736403916364729395039289414935551118899830397314398118338702008199419879924832760002088147329122258904152003005717328164923518598857575322422532186521389907517057869570490840233480233211580377820958752788963640091114724838743511290386240697683532221738135205761163204882981167048982414694937290140085585973380362647871105141054470874704713987721920953169001255544709578980501117844150787753469744070052618131609583290477023171900938135127673229877837293345465558446326598548626480103592755332616141740710540233382770448777941044480755250021744742083221958167624637094836629215431699965881053442935332657555913647620616276595499954383517383029039752449759207142054814350856925612552040627510392812837859035523229600757900067346505276011786393291290225012272522577762184167683191546966328947029669417388023229375922511793620769817164549153724740761871387723623097398414146532252617143126683030991854460759881357514574330161277173810741150953940294922610280642295547262109310337688660317664971589620424252087131169071625824554253747691371075821700563919701827826823082250889715542090870946822733601445962770750024335869238514643995321806585606118040928704374275056639872158160242719180753925501570338351609197462555236202440464265101874433790777737894043143615252062835935543308865881387445357727321173149911447194776792023815993365016398042344793238321387225515653000072278341121508949988539707779448468530541568662054260551569174276406769674572109007657840889589764712892576954574754255128442862581405150179486597623763218891211154946085088478689777740027207013950989531959098252724969679349258052034412527097325826560795649380170815812781326916169765647994123775746744776613479826667740151020844525828666871948789954220189391246481324466377656433547197281638868712578720183083738597550793316731500370137975847524524513932967286786917288808818924115090797251642145824479168019904648239179133895614176772767793173379292410373108596116275670483390573979171564916716483433036581722090103014467575150255032400815740684113916463337784489100230022096056691844309814768031043922955164630866965525128316213486985115565938621799340308950942103879989662259769090342844684792163589973177596829483142078611613098016685867566948160585479918309825931622346831408819557872837482517505330222689943670179764894085226064004212416656925522296231686045212299328837523238183024446236210430371492185779514544412343424524075081257261730283070824666730886237246553835908543420105626217096646152004485340832060360236208937485018609122903816182605282853969051167625322043506603443254027593976153086162417558314618358234191161075343069422836715630020022447373026991780494678985792726447116896461729893109872220433750116357117062042565520323398478593498667484746341064692679728027148332569718731580974417933545192685026331690180486804502826852420352093714732558038747300288979012715181426611324752168187853188725389473802627138760327147932438195672948336684455405762983210677942484603172434501272686380651029219792124812722298142605316225712847136858520963798850809103058174919476050529834067896600768456589501611407542026480840742945866515042333306607275186111755385304275642358833757036221090267303113708155717599619300385485065177190480632773850340748979939407814157031553303310221972336932002125601233677391608795941976613617727071489130233553140143200087896062925679156130024877185902692498459674546370161257467923691618789480744563869379318148600074895605556079330140228719072498548747811839242587237224077172418019144417656099097815545069796853249981507143115805473304148808603215338109697807832888361292326108301157030925872190606758704548034013293872467074919791085814471940187215568429710963305232954920902735653044387590773431723238972119816569832927030486347844529095374451899483590484369502194557979492247540502030637201432111146063124192590523873162706065117248755426223764966078045879613414193591245302444709161080458509826409959195770975904084038863240404717865061348877795861582146876227076873503457845426880242012077410935574498002341528694956332800581199154616991063496648177512478878717574702688172295263404675773395476535382424060508443310591263845948698337185597598363090289584856418309568999975508477050329445707460329604340100107862072115492298796901732944300295933803845827520200471546042857462778358044728549794112125927141750631707880250902856488753417873525462730667634915731100488515848266849789073665920890775444109641840226518407169028070168557824912435548879007921494605870128065919663775265169009560863829556703417132437545385127472306946818245614450324218297794591461395646007544726904384328660936701570173878350355117070542748496147232360694015951895054308965458156849743712383480270008206180973977017340441910382244584738243723020394393799951148553753499092395461955326072729426316293964951041483934386742907862440278344628801715153479667844256404631843267841298864757366035489521274191386353464757505913751296399055209813043561858785177982577000987151745821494766379987421666598479120773856805163418500225956709817831483759009048339384340641651563830239047692004002061470629678537467241627144608382821468177639661086420661411673089140311641368705303970782470688862056825653913720464806099111902693591063983321895995832948762673230896696495348195168109589764794075471784023647520086215626593644131837975282258875326746971527909476026639564382500711065463596381018055220140423640170625819518210759609155234380868714180428997190179683614298937111080177437722373072919393783910935657586096525610947976434950407608425562214713233371496424444934791727859739749328826391888652010988277372991687146423289502242778763308245586773854558734276227444757431391428993492166480899876872139364085811526167861178029042424860305650367822271014317247929887451746981670957427029954613632363777168644483897480822540642809511741249503128710095618412492390451787245126766987404435755770425783675545241282699241747049870059963556273785834799848381155932093306146617591141630482712906361582848229975072621366761516829924295382998216869452393445119872421478144385004080563898488035607077908548942736960633624331861143777383458438947356053322016942463794061699641301931510490005660425520456048421118822390064745875500881778052299962640980141429936161985351123928359261581128171421591456936141230312201990727880522702670214430276644207290843532725019762745453446285663458117990584200405943414402462267183909039993277145943185163240033133099418912934481748405806604803936164637839407339830998966857687762372678458867658502227538126504805582103854616056002500924443812259766061788768544417598370152007715001485465013147003712367141166160037213973657121864143158350666530634746988328163622944815271939652505999972646371857066143574511475566034440390114500770765933872704700703817693431781894492426884348152947990668343324479581431860718082855427253841988383071227355294155738477141732669249911786224732951769011097747869853809545088335049727643499034384535415464745371755485674717269040616383702771732537445869201450283395247195084277734280026972070534148487815044027171899898711787102729775902270404763432683969172440691523259626896892394882885532439780948877401091217882950080972206242684166333101753657233031598891788344568510662277733777974214288513465186060597238005421541043072258892278834054422488866399607314003555121589111174499634958309137422533073398367286700347587408680637201250249643218209325500064025623927497596381798461914488562026251022748835512645880278105703022286930966665471053598565140152862151574185943483518792048338809577583009457935017930933950950925227153330624252560911942567087262980453384149754584042130074943170443418786612840044896673350783465043739256250819464026252715859119644830744978912626330452076150633548770884256083102401747485392390507365815895599811668551507418313583766680801092672154409591110966755691196932839279690764428182332889893386058115814194005431856303769237456111002570453553225770609141873693190514304338285177754481483176602882416189339871158673290192222148428427628565364419890737123026331882087546779018186959812158864939564029914726733089175301009055744996263081964772776661416382637205513342031428268530787415290597759511375047595508818738200890406115245894607730900526295963773319417769485830309599548401157255623737499328726811493817558028579069607177362752693756323181839953048253245681477066484674312121902889820938890431629250411467095391717028059178297449835761468786323975732680242245672997484989980271271223623777768261750948414231965054780231577860506872003076110002360880243438135732803769898124576251107425552132106360714813301940033306123338058863802518358799085867869929822754004700239202887007701215132755970200126603479340630434209752750593018420832271625343138315540494413864912845569962319867523640509154740135141688175024324147120594539527611253296506089241324050375438189928073394896730241109329220621173588441956689702369865239656234491859575204672446824578234420339832611158748195188131768843917725738785046204611001804437785475953926539433233599670844802442884495706410647871224246010295998763052702267576420504273869900204175301495881203011044016505492797112860131383765059060079010536919476477546261270164000358055733747424042455533948413487649742857191410329797910875637125337462331925637313995049364501376851987288697438779759323318331976603547539669315319326182489260564780561043744159132157917852559459332956386418893229741863327905922027136295223463119518988426062815642432752169124644514233159165155648907748109638376606915602470535351511421129052432736177148432877544651965095748656669254534046924080498288717803377633729541801424684963831557789541632210725951215904380419280878932042001168672112966721014871048266418829859747715529739799368093709288764494566755658119909214668613927665425760187521901823482472280874015711300279579768334898212922796890012558015447010240591594127150509598005348394553539426193384802212043611906182745298046487138099728448605583593668773547204205619400124939526158985589091950700449480358026765761112433753042557212099015718329999026290866349355478317121866042300533608709505615727930103895530639475137863233763519079104052752204576566130376951094720280094306815512023176686965257156432001331074634603303982193752303564753616280587108212474482687393841614691714586814654174070678940665266038924566544289080724735784491755714354856041480246429690049354536733078899074339617293516466650977992460845023311601435450921359224719599896536046494731470157707733573585756221752258731188056356365485501337657128235444513742595376825084867357970055670095296480575925295522645066453853711008357362281668918380301928205280095384153680511989878783798764448054264713960346922287453987424121993778619193481683402856861775593258941884394970217739888751900612847366486531329063400385041267954118032169730357277722577993198530471475803753379714636696430069601472194238425215109999361916240973090661610305952205798864771012784052584020751582203793163943217260201029915829872729004736797976554285226642142583616353443777087050692062932588511853138816721404660430119765761744897078051035649505774274317701758888230136315218606409271050916003774090228890035906618070699791110949884517986123973106337561735097572665483312770556756609901507169985780379828297200803505601780282938631531315598252597636134434462073030992162828107739990309233407893015347287863306917093573047488388648805475758863464630385129112551689221153420287381372611128790216492353808453879014754574582612192444532855088867545657021778396301873981378365940671578873631045736290093435742117394516682219376016786553345511424598533606879261276800483101622496582805247636714303828199978906281637072712841767286345520666378784358555894059365230828468642280080925429169026779997768187037807546700797267993681570165191605747392947950499065199948086961003371733191277847725656933431353807065749918182196993123627263222895052276894873364457651503070569163181007637370775959870042886028916593727645342337212994026196072034394327645807825784524097790430273189976404422144837903085313505026736143888585942772725498244639455137187186266761739881890245928717170571887246448740806280060803915218670260624492549006968674845958909500350665395647396217865873999221579382822219864302382827357766718362053864461212572923006611150870275849082042867145860575953689974079753259255204889864321697736351849970977190723143350643277211869814155727606559908490241551735242557832267752558557195704061820602236129874418623502061475722986661139497179485003130021586153485962299939337085188199598757386720703430815412476405426644684943385504348732294224277219605050619812870180338950274453496631461641890784438128823435292607414156759706306049759855055487941648352518799285345236649096972353850147343240422480876525497842421251741701153155430890577821510621264140867376875613268474085442209894318086021428930204327436827582636169664791898647016720762210135436400580946263945245421260352910564895520730622456060947637643572984199193653161224622817673136549167730971799119816225107551544068506912474344478748058353541537375362543092889473111052148210735931708947208553084903123146334988011907933228106300218011366784645407659684462229001907904094379872844522096741580051341204501200102299778983325828461571638934096584740288239056737495209243466953382297049527484663413559620258226780273219734033083920314240834214213707158295738165428357986928107866760433685692588330311939384207895139691510859375731292289983666247441761693139912022966384150864002942955670924203898334709367044882336349501639279575741802493094685375215260477714674061913388386016292506462418383232838437743826785807221605941469264342276243842740038852737746367390897659405807962695971814396836243060847234264424987002280327344061516229432393111896334076093284715408596450676261982081691066081483818308250215191607499182363978650715862202404673000482328343177209845743533137757861869948683637823703777669631109246332638375343926875051637277127284985866761639063396270844533883757425061184227425240769326658795827787164965430335287137436378909706988762034559104381714973687793998828837827280397191508346373633451780949057649672368957645144490441739728013109657739523049078798278402656413928174231167208682209509290861442506026408719141185488861417334989001294422364308637175230385641367750061363060274820815908235840331600315669445937761093756733738884294938813017951699899633620359602105702067495461280585790367581828441620293882056908291207883822771480717079282903787227519508741225077642996291925029301083899070969227622864533914953378774273532798430669619451967134008419642986362277460933533615886357415710809237949234142884359314977879899235516383899479830918173996224603636033228008958905685178982869836840926777636110384372129020069199738889512444944531243818994465362527941796068383973716013028826964951756432494303777137008150189367559702539508307803325449741002281273696951597351302883878526695781459839698667080062919070779873292172063282945676390857679930039584517319077775679455743576587732017559892061946784580374990664869923381706893276183089835616861867763817866928737800991600254598802469080456195641726786920504256404532893775733967564448991701741246586375434071961321957632533383122416315262132061178880682664595638945991400742880460126025549772525810358639035212163190854545122982225481959289284770804317920070502455226471389879544637867375807120393208357603558774642616843150165508282256259847684715521023032136208065541836866533921912185288536331734781782239774488131360398482028699624957618840091980641340522655950291618955580188062960956390177055870706332462415590443840485888144879108970253669265515901285107519334371637550182372596678237285084033232872788336920449653295386308818855830124819951143282643280012092510407828874721943119313176793613224253947513051953810940691010389150925799629501529205602827013163896833721114690032613591590177670100529321014153660640386359707262923050973727018459998867137511426225502549707573022340434752070582180624404260486181915117402706428939999419932675888047072286178978630240249609073179703735522945604727782449431639498297626473586107636970584291815697067519006376062968052732235953202991666025932295512244527857541648234876457758532359170458444861980163789731288845502562832275031076277626932109489007864034989232506583427618509993669544049665879888999197534475893689759648319626394734570351418010794863702802708385022124110866508255417150611414561957587712895283023112250646117053748424911509600568419727112725016123714693334165694634768123150302595328652139866528321386610861379811858735230091511816594001978775569497071142937164562859647813786249594242409242868269543183302335277328991864384763418568109672579873136564416025570536043047645414989828276165719707813118503319061324620715410979080825643589883700893533402518891743771686465317849099978038137818013606228046328659977510702853338431134502799237987835514514620991366253210091480558481307482782197705062471210586427782662818607214621072359261159447778082923699242302115003945270354656795372390234744711704649118311288603378712915649175597371970486465048428001607995473227017441704819402519842156735406526843642242743143299357482220522527161410010744708310198595058454296097431863481901924347721580570614661532714262164722077561663668483037661013980018054451166555448417043759424025549037081702664710454715659111673305497722476991683790902487804370583523697039302811402275014262285365809883934084431864992573238037979900520668603689780593711646749762546131145560698855026477390192892274710598736825746206881175546729948576150035794632881027021091557519857887731425169133424055353629474667846546112141667626246359328439640948597016576162168925916091649959130568990628574718157297050327194892328248776171494940601997779071106238090846273582764599258632136379667250032286912802761102284012837903077827566364352173401598765887377178633839116563962457784554448781582731986955039180498945648387971426986955809749323319104458076810549757131652056928455111065563966402568912559242337244124668850849727562163696736151501699133600712122399082094685340613509484001386018382904451390990424387601192785813294393673422277521011165161819060676690984555413368084169975384579734917914338825049456451745809104555410044150741746534081896889608677813569702282675146552290566345410877196944877063089589198360840552776493578003847565156379994728598154184879228299192722002667807343558537498128301014720690250486457243144085911759143312613860433049903234736721314186822786290210065455592340659551999103250805228830795613811221951227510370555221115899424763839091639178276305728863404620776483315751910116383008718858013542461611160841450784358576445216052035000535228392127547263587082235624023044754099493852572858235485874044052113556240371809289774359597941519866008988287773675196285208354433581405013930349596650900838134954978095182900048436063141378882833582758804855566248719533967591378133639052806731315927725668069359294666694383242748346818939855478631093270257632957254558276350943818691470898639441546871849600234589666254611092756260373227824064898866356538578485849884584129546082431704428278225123441597325317557596532838473391535236291010795107656897017782464687965959598156641519945881949165599540337905213938317871087606274079154611910793921672077717157400308321658155069770851715639782044051268290909670956518486866245773321453233507190543264112575519506599836417090088606964169086009527223783241678234032696975446699525776778585837144383067510220398623566777849898599261594021983245556763806403084342983563640040792038639258806990766135210252866892215250929440623022769961975073109384118708943047877140682782129484275881423517823343084268462214986793834973079255348683947608492304998761762000315640813057602895289261165471799242802137992107180463342938580397195482745702137077060008532295444734668374147280338737588662734684056749647701180766380262726919005516161039388826960154285463644595408096401158794172883395159977693840784887081716929562170562747018638656665736586721020842689040713377901798846326058453535655598137439929596379990523562157127732843035875408068585140114513726861666546130254346387427053350181743461373068546080125654253228747863923365498563785037254566564379844232734941295119899110891703884868173106905013865668587191142845345869872670674227046028881929020543310245992421034503661093622124370945196790941519670526733163841614786411859267474405897787851437930988126457663520226861251175542840595828510402526112266900124252170445502833007943712323256546437638863728103051360618407137500882956848866053693210992345456474002676192314856312926545761265961809974001042496415136987428694704577928622846683657788732050781382699119632749805377661481332025686891198374042585059622511653632362395703384651679004766278253109741514238477738710022823659453559610652594295174148841715062114042537398408396663554094832142801534356888327094607675528974454568656119686664258090001064258313268001566919093041240623692488506588346834001635822794918073630218678041219647750443278355114297007576359582455499257570430891531057213596453639310159794068612577207565147451419837572941226497836746594980326229107638442600489970326480123190833215849889933259879004800050009811611829287906500326393677497280266871403919112200510437618392645113377152632081146639529646983175172734836013531256763951378121155511075322950975060391158276984833828962060219479136050819015642415199013274322004615724544598276562585704335585322755771348693234885866821452985045845364643531632039805547841020050262410202897218431069839273526842718498349609196631346786248823648819413838720584372830620188625567126426541060731559577434025810777137551222863749905047200129131749282822958685084893525676915261403969186367900211284653526403553109825387956715342625092848416394831729701262638486623928875410511942818228965937982884771817764152988544661171538438315719273867256855857911155069388900374365217772144394605776841085747539398130603703481554687707788897553808969232883207606656880733095011483175237008553867643874306233631920956583323308625000142217550678458688354110085402644958266579422258436622505402708450947233095150400195230404728718480800535152139312135359294602338643554400018671920579968637040747549460358243934493763923150930755594470684050864057425564995780452898614938628814341027942112323922005045488987311395540224939346796835012782395551350196902213240099431111753538462864107015581349772951654563214339259028742937701089523113311379978740463648316350321001268744467196271242207069789347424906521540316773535721001185108795738115772450481381969743661253489416418290524892374449388275393527714474370897700493228566099736750814432413913939892234854732021130926902305060529013692036441176486282121715787706055509494687343448948420529497661638909505025503806888066922863581950220431043104901245735953338214264725119164584499128874189856150746128132739203463267673929428943744369666593064429827901340659118438574926255370935347880321784163165051554283842162116687790007231680567071073264491830216226800331470309346119564196849745377548100213274161267003481095973424338393056684866774284135052407671349899075595003999973973822050749544008850721710043548850262605199045934147531471601886552360906122504100481982582526866685111855399767032740421119313140714949679968224424458553456127015498984184992186673739269101711999372954004713704459169383712101542233235786725661411120282146635429355104831977738269022793024838733026728316701316153118468787206698437784034525949277400693683064375269929063411805340802474182747306152244384129210544791142251070280929392865722876134732159863255044315471130569355444296215915717254324017622559944412902645305255203905169624363383678635660309178719827766835041019595516331641705328695325450988698156901787739919420539099101667424098737202626537579880146861661873537383032501729788941777200715060515865540055718306915959962268503121570114043284821856970372152210847318974090684273750899110422248683252333695300666569655115129661966576007622589240734589059940803256528864646050590637677259947925844461185543905471119452256055867266942151342960285632567946299253039590858596174045417627405876382673537810013159520059095241335593004903987342637911521356412936154172064786892335549171049279593652064624115883045032796708840312664580148019430198736818111232627421091080335384983831957008317334030326910842204767361062253176104652818842247054181811081066407934815401305836112795127263121749650437620364914861529131609356457894736751382351521040970595210700609011120904251476287978431471439929294830378888432169677983624173771648570609941270167841911683638739376357306422559655538729239243170672555433674848866047954104037776580876163753280677332025610825902398984032841516506983293297689011344112976566742927650077732350735103505876639877352314448968992424741512560688362982337549286767792637758893623649628411305633468837227672427463867770782465431425307272363861540708318129208324763195023537135527157968381413469176210504887839293526322996480629486296741843964217601442493087556089074362551525619946802642781456110009336120148031289658642398782269768392260799431366660820269583469913850130465575316419530813641945880947101698482674826058345786364242994566425953026290956817027233939297858412663487773025727154128838440193913615857122318203523939459867640632135742058273923682181156230000014257964762753947636887243021669532612805830434973198807426131966619862867907153559102687090791802103811930396084812770982023218494109008506710910903443943200451557659941422381783257741031425368367376077365358962270267776129392504262812711151688781269399185246726080880646423612854988218030259482515409969990999214192635730995641906708231267863512730770952021770643257148397675756540508863812502837101120028413427496727655491794536519005478011816699235216643885658551054463959335538083940348786805401383666605708606920686862797011006016801491502602051353480453653383341235826042240776746545480101730834284406929990007865175140772726222721311173765154273043248460083941220078722664671037959206443328503117597153066254661167146303276123807960564236031547018479219447983608331732778610740632242699333752020371076365843382084731481221152986516672091561438328913408920390599738755645292129014076501668791093132873513394503440031243678584208428336261377851964782455388783729078475193131755495322515951778936825998479515424735286944855369973957708910893815209944998149845512100079935510048418765332347801867610954711992920498824267378652979114671576972554367433295032545790840527197718096905871573706479970916419467538800332894445417557490481233350139393126625361252937621877801866298307628470217114187324979900682411946688686468728665304876409756413492779312454185088504037657710048973667843634947488035010247432139909617502864327294684909900041058916987252510834705938667207811264159087047900167298946389782047938511419194222687365697508978812854570227356109378094909567850598871816635800242037499337045600413370196360312402683816924026573688301635182104361778770814688328545636823542755302489166012774558327685146740154915076077605051420273817682178732440527616258225467792466043105382213748002758434844493563312275774239105722946261691142823889860401605933729884010601430423425587209721148178977976190053984873384946297666938679683025402128494790901714833009494056377423439345288091329254068895367317856397538113391084773260471868642939750034236167268579917149237380255305443717805358420341547145561251860485379945983985841684636795575585620011243043158563769821733915139918505320319659098824874011948227651926030160202553553731948196034626323819490071111609147245558247014449307036998504680928655430888719300156266557743926928168955015311731842036896120170445336320224365709942781318898263441488404593486719856452531642900968213937217045253059149884360795470778785299849493774059696011770105442918094272783102142923769668716906179305131933706226675509473381686743741976887919751006301194529432715841542404478805175408652391173154306314415903549170658170493137585705896967113422404054317936021252975641858343889947702798315039536374271013169635200577783378523527298663761095676970754585227533789206509098233235581513984072179551451245347634183541663680616733625036397368469326200126641748191290528981972156723824701496060786064273106094927785515808517347418654900965388479698115725089167029816332904361031565892353156083346508797177264142377568568925678846013185454603348901477965698329661080562217909941170443355549328614394063916274355743401705053428574554511896406234928964247447071746405387879295019022240271205122427177828347862016897246330824916689933770298361886694251958913131696249087858579243040603892574794362438285185798100528171505722432367788279623839736195738185269975966102203808571857304041835307512171615109321495926786044842923880834195868528544809420590972758233367580786767831632034454569753175909674955118369496969654059789572288621076279687780102576966487646738031434423335319284756342295976388651557717198901323314189795774274709122850990884492017652230955202433789465395811784548053577198663107577682464728042924906421689674406722929309674610820719795280846508728411420887311397793006600544172350352859089364287032407584819088198597507507689912110894727075535144992709266813068458079965271644841443291536365342536403287020107773532305175246909606564453725239844140905193539722430557069816744762200355383377679760514671459978978166859629971015755334092762157200791401859775039418776785151324542125650483010794830429964460380580402085920378746785436198218384380158680007418127738865519861950734789862855906082458808493379947335805047020500741402754992704028958790931018173340397264901545029574539535558478066526466564063014281217193633697896714062186665144602345500508495417898870773842776664466312830254250911388909273743572789481032865140839682739265438833767358972751285940163491149094481652619954038676964327241880700130893759040267686619355972536807306979788065527093480435541145298718478895615835475394644446802865563706953205610420216863049931605108046655103058008156177808267206277540332912005529463115310470507681689775165952758975551224687321864736434005307968001328397471811507393319446279308591250597552806401849351952027931362926388167524050727308787161566870217066419113663827105498287563559418696534399381736738391249391946773847771550503812672245022744784050728323142858961012718843741923069407863491444563368949732195170294426176072045047470801073944533081984905151796245313565164390931482606292626411369451825896443158524707632838091098051985018075200015052251502541687284568752514706872292843020840708661824900327394851187837758286888887947929293416809736840130116447971893989185940715179493336303269603867022840374579626053939601062372323247853284540488321452181534343675777235854426557051272902097806656007242771869928013158033784410766223493170988669984993499482697259405642195366147712566272165957551504455451590501685257442225623546847437836278997786541327710488386693222474072677842208139187769840957580987601308797000356339189934136088808540495651488068536350233010738478498064508582807579024406849823172833946004716349817391351335099078947140635049964913875944353681390284731891611145778516569780846320049120915048461506510310268241828120404827162387434134372648679213850813941711394983695270621883680204555559103853634273815505548351333834134933844311393041708054843211053588759179523280783127233697636954753493715077344974886086423725490049584739031385297422464901952493261395414822628067750632724402757357935954917844197248884700127532363146607367763301968165677623474807745633224034744232016587128253264900368924881369162529418728492024788982238897016424037051870641201029695608068302735801426881591260225801588161125475716685952604825509050258520529438516142915267843716328687701795700819332746451452737736823798767601470520762188038191208767471351479866337089641344982203802956457796747267832512247541473632094414693893478783046579525888639465861018497333740394729682843227104868353886963455319790130095951568779849506115021563806160861031187648379511418286654776117108681866973511482783801171858367169046247758693005225860313310212754112546876326181172248089480827476700955879329329112428286098945157078970552926742275780919386750324925090016184814097805550225516091889498346830027345784154688235048048174990808138053904487530467010867433238449264895648048148099909535435403109308123791312382598407924150249818145349928195998312015592203078125595596284549451074675664095434030779055438835008560640903907897630757371651815880638219101609123643059662289969280412361279276298411113163853665138366888901614576761124825905330225660235596474344148510576378864645199788812912522778948171307729749886325347760826578079457091787784899259144691018900392950156151384979823394272606450359755858961930142922125939740830053119049018407628444862732255743448553138935966746849068344798302632325123231641077789629351518168981969373891989049900952888177692421650344672334209791482895157629347015523190842075749565123423455015515665197931329144059620313041255269206912786134172352399641872043442105242319573682369434775850111860348122056923991439487420789271949195026597427004007487273432949977976018287637114949647509814865927542752293013751019290497866191564012140601232639327804875857224536948010421806520650391977279220135877189658730417723209068621130437326522071297035633961889415118950626069947761179730152718684981277547495671433970325257828150563431542052688923082185039477422496977789157008115552524035694087974237427513010434348825941091261158108367074136354177210179558700615378803481665488399715184068825381779313778032877343669649010034638456246168269002701155310978222626850009222701393403883251612439015706092731157005701274634397536338524127633425872284295280289889239979472944585853961817574230789606676492429195194092901336989753595525144374434172841606973916139094043150006437576856868246119237167094494851129928496669554815042992608217669168794103542549432051940333465201369670715736313740505090870119590162466682334251678994750071379171649528337034423090884098463553506015208163677233666526692449124782556008799838263591796925191476060635242683439395628572720757248353935350860137765324345580118593748614143908071058623955376916816636493938106261755972612426109931971489596486241411533359870404814275725684634340590725359866358285199065434661265844151706756995860367172742963930785099868589354640328645500095750775524821432690950851351499318981077226862812264422770996578457142031761064255557478245853489212916813640631591229245891530660651011572487259570639676979395628792773915216124230980843046635909079353645326765111567977328055907627485089833750109257685287900725527992418506130732717121352504499608920417181200243756843301842857197254334586369379645645913472745196945226004428484751260170615252471798835221320416501063156263857612662204108113195107279436005952075552271743319721807222067698253343311882112873189888262429973149771666764675306563628801238039050260488923520169835880410312491526435996040538738563573818323723661218037167982580018275691983034400918395458695682603478051240208781942208151511258694963334178700532137513680969864867980306150557444284816354230750274156945668875235344364363634804737856283002611295293676957499209124912075302384602406494622520189276236694002623715347855812295496420444027982052551704036597926226647299325637642430014779531554238636747874104658782572332856682682651134495803701406607986680352089457169060083779359835455080872108675963068807584822149519240225826411965481055436961104261031008991736677502899796108426077290357020729426445234942129020022303481775873005137016157128441790527042896372810600154470813196368112175394770414931629552669741492851572758543713104571033391200831461300721335793521280561987066588123964284151038777480662916803852091285473534631920737675560976204639780389783508996257061375354118531192406403912973417158204411603267077570374567247595020513027881254202207454706645398265227641580319608845670131438984355930623806331209321679118054131665142169703223244940798589387367441056946474325273019037260788830953220376375846105379821685373805318565821440025400987887855182567434582617732518800237294595111705869147460444582565391156673879506155621381840540237789049164608813906206174221884273028314486326086952007249138027724518273403545817315481322223177815262767712608315930422923009874405542181638638792281006764983155269973575236655748423283754514205360292092694221665844254051519499064251504976428852059291237383890423315892262885721724219078736403919695411463633261914242327022553655132441578691313801160779959558328373144991189978857534903938959417091126379850288213148474513941930200097276773818107356159332601829864184789476764521197493184702282569704062844336574146523205624559200412405917933794995389420522865785874296204708279420188918933696010462544583288186146512925499838831427568317746597898302496970390681765736512483856708715104979688410331710272496082191231796660291191293952947054512962412991922079877641953160393625918105174134695622807279333611256168410852354008895817697153940722508497668104833192277268965470990891425141604543732938924517411918720495146396159032754348373959478033572338310654028057333087447392485484242024391668406620450481300027146323895580780198603669673973257587048277937017029502778307314651264239573194549500923240501620286656325755725092361058072195282225703214952194396061006738368139376906663708381091817896028173549540812214979992347131460205041351612480663604655300796963756710643942032546396802161484386121713420096744612791580146758628739121239036902980185323363005367643676848381092899164879150792677529979520684984683403797235527418947618673995153421142669633197831109896365166121291194553972813756865581607376563416879267428331792365514834982361360689714819966389680105295672483295011845573684408271597268511785353762577815564932888267487004041882858886183708831321710272028321668461501577739646775001639492101478934419889097567060748897077148459281830228559655029764029057068574359481578711057813755920210619228083592592970060943702485889052068851210702167482773743467538396869602656493085975742740143646860275465916457084400250326373052972800305687990541372097834453288644753669066570431494172300452608033524221139175901808389204631517001212475608867381734000299956412381446428062179973521524081072974361029439618988778465080166510067503038986511996536139988990731671173749502105850589716642520905952720460142707389662172303140354618427449417770799187106637334991427980918982506398210854013785021310005602556797528660935014141229717273942482357674542958033615197895401814155104874337841397956811587372079344051860570848065282145337094506809982086526130606436674341576938437727013197339820948037594016836732338044199311042514456572255112200742638408865153221465941925276731042111983786335478268324555717976427815619038271038209923260687402725170333923042731715993002334040066796103521787276491423070429333974920165418271158526298083592193756371136172352470831697068543455968842382942077425017966289320621753030284852915655436834439822353706101189331550893645107391064559486346879250350150866153553619728916578206060160871487471458098470520362423020829983317920324885620074452067138376016435449422518500926476893628935051350569233782418781578964883751078222760427779305275585493557133170320292770800965487227120208899883740421151004569709073409728059519691851872894760055421683302612876163384957236539039493338985145185577946771152163683007658768293172913916498413765114414123619094490929399652596944933257936009379816732793761791962122244017921223238157303455378026922446764953643582039125088448866498234240861905336618902468535587464541046019141782193453060397302432779754628554098258160973004504073250343196543704658493604607396650581494049395469955748293455797178315317806456893513142578861393863748418609378559716603189730641894927887543503637715999249792634273269057841032793810786267876417507174514577978015978088663649517605577359064992114774918506215471203515147580438615641910550124872484863990782679153447467553934026135437589507770221071258065581573429338990513955901289695712346159992785589982380366382414023189686218147411960873910923052999793920005528171131223828906389278679516747573712423858831942481862082255023902033306170643447283357715207016510587435216745251133667612113781440302673152551278217457006306735890054983176516254775227728468333437564939957254766517782117136408214789875652256919382673571126661226171107284445588540816545778974136130529084510929406180689807291885591546027221296522967462861940480135969648412829071314396673101783731051270867155052629266165257999644163771043224610611781732855422559595402077622647103287548935054532165478334646690057578940884741237961476251786420887119535055412999941987547905175188589697629475557238504897029032282058177221039171632295093905387813127307927817684356312009759578388996051352899062512509183816552504307477256479199018457950378108008784933253022483191788110292427501991030030699257708788746090160657626946243157289988630710968029898155129763550523155594330655084168899825897551833555044284334601359880315171139127654170652419578131279722527588886350046795624685873383620089995177689179083326139902905566813352539763306524663381646956504002607341828922885413648069273871222332741260119982135945324490230115670548126020953064183033131769216939778298090758753984679026202770540080054909026059878725572645216195080703557437671150227088782593352591255692648692738909570473123418789347334718412818747438169160036344648299634898880446573808117491128618762212324114374698811978952679982865588159106100153786150799556192396132187676075437922262248176464030653528419372303711912110925932341001533942009895147995708649047000813976763092112504685226486504632936778038892781788709905051308411254750702042203275207595627828152297891511820946556526085512457308794768894481767397325516307866433619187364781831730668287303605188606225435996745147619058089462039975869729970970343164798314072227092132590463707210029357222308424565268968334882857077324858104533644118098655818013746166298911451543618738910830327961056607358209445006230712000365494972999570633343697060141108547890814967162903197374389096587199096163993247646109552854140578642254711835445455874119711475222173080842626487381010151899937731039944107608523819759054804104172887435473860245496820079271700345941402174668738182233994591730572319631995313979123534718945755306528550586166489781565791721721528523038587192214919971601372052314155955656646578960799939704534979296193717835140836739598341272100649656523101648793735713150017347854137865543739759881013278228796417511647218843485709667257937574963260787520496938094007710569702030314859378945101384275063353810346580625854973859863806402411481892118588674899298411419745519125719145627445931868543876403740800360264318160626417627526802681401166329831525652968028859838626312243065846757482768769227644433769559966096199303935918644405666749397425407252698437892775789521972338359863997266032321720063140667316575841103461682803506447448139863602797689724581734093156792704694024378345967486035394814652384366726908130686328340340217383571146678733220874073429376334713924922411046261963007018932613557445785561348522021189609193090050730121910377145523771574661008254707326599163259138561486425909492651548730294099458845624832232376286163005749328400334757567621415366408559369808446107648334712916065428477044158503926990865153854098027130280716199862070194219016777938690010169589369699683863705373621274801789922317982025744628159246088437887692685623001944138868057795940347015912070249333945931082239616147247391108248353875331371334906567279368237668961842743490144782921064233727687846739949056366691555760709152250234108534796552177549281796501133659876328431141183390344425589447294283093737810645635540924660845132491593561443133307549519950572608723422338302928785938078786161507962026028103595880952452952256736814279301027885409334521966707202409101881064117979278735865034805168591088181311032129396318022279725206226854385447006904522931984269783856497216956053278084039891025236355759757106481006048814710403241530051381527607197830110563927944813288602876187354700253324423096346149741158463905316606800039193170340094864553136444160601029115326331559803662818923521708480690702986104781733448000039089708730223667453419670666445596517670342918008223856370510686484424488578613846383193301339835911331566464576322875570179074758213107196945643151452621264765159599150696700090994565667717234864741065036302473690260489175356742111599770614364317515086706162613730322359401192861340176284205862193103736742348579231497128914414417552721250902335818060640803506065989570395512257144533969447433853567320769852924398858772972695808767181281785397164952685142740162818929248204732916876168545357179654968503304732934236066829855017600787133957143796629396110826825989171709280227013577113364673846787930915845890342305544999901050173171485796729993088481082535327262602390515393099401672441978762601311109782880133244690164831548731924881180646209639029444155673305833268917984709819670171395901068332423276655723864722463419919656614426812012702979774656352174955010123688111215700361043534529973812733965930197987760191873877575026806466636187894315968258401683505291985697015733738226164782000027777514180966499357788108276878950520752121171033980130114129652142338329328259674336572393426866849427858875238391601709477643709846843792551754157904550275576629620661686773186255365176523940444446231684807882633800256463994897127335313986965921154720630964973077244052054558912576327009778332473101283022956902200249897819070764907192480592524340034082913728133750897221757693169347582070720167553655606731851368563044192927087462976129204349169338114652316446476983823644856974534956444454117901164292612751467684349116368910640160186445651996157754317244200973772082239453344065594528177811337268196860202097937888311020875279246589273178553055689977220478743625746239393433664534423034019330956456273069541087747625527326545190425232863935530476132364413208150460434561219762090446517482523756360464166420005882247299466957492970029821703680154234282380213999107721380786282223487492035026780171862419033095245031656741961748359119598836898713324183070712854832182385105059206436448346805493661552893439237185942981876846300101235747091634659866725212256949305891282461033167681201560117027681826367490437187414508552184654327012333638048715182163979957545696879801863015023961254715386210647640643713434810999239212979447090846335735607859995980710441536742014678314174937966560117322334453660668001784536051784535309454598575902103104903361565603788576981137189171672490868624762883243780191567595189564526225849782864541568888924500943453766523611778364165809291141622999129022957291489299249328557466283642376759374262356233929334843316719299388041178647744772026536010875923397700934567589771636094183883851558682817583037407985236683103898096200237285027479527055243914920239919462680417042042475367585404991685762458716705651827330666060852986082814042470712936639458877224692398121861271612204679470030654956023669937977285321945231388456309992102043167401496751900153329165767597341131590765543574739969872753555937582887304465985785027831910091070046798190691244544267868892556153702896628864002373339228668474537422130530324270398522402053499745578130644746222692109596078672029823164600940676812711890562735399649797065779368245103435012302795353185710011959773079563401302054345998985410125406494653622888128274448504460377787362182440722141001041123795175092224532263091841186324029006655724059379424017038352665836581685747846906348440190468421192772060637634654179647668403869051603180449339600536664695483421284405627900927071915239240622557613506022239326957748836565475367497478137550754373456149541537481636822119442773212707903139499950132302121370231033438151575767787914171764153531062600900185560894924584277627152722924933607709621362166838261039190560242928691664750031857554370879985169201015420672101180666009687530185064228268972862725338306207209401874986358637511290092371390058418235970339716701482549514914872412747515222665501120787041188750165014421479671782869671822370267173414340593604544728018409268850039916426213207518467737604080048657422363902173478947178014281263364144054209410763882430928661442318531265030033378147958502845109416554005462450623044797884532210216209318032889191738010176526036480394643203388269756700743024015059700833289818365295101082168118684706815211686315264720372626444507649635874930062148720904852244750172606944161839035550523623632416429325661846434384405382779993231676295020716582812733731489418893563678515930394972089789714515631781942433011069339313274067825583443122601901289734066472410884536644036602295448923909048853834891336592358771292859781884085996672115048815970605926482482235203708450560207861798395165839811053089652667617728082720497377488978182343630431345508585233820155943926212383862339698011351800508445052893299532014982738855995961019198822565359899188386865254717690380404614854520303547895725984244714987138495472967104006174452159328059894520332070036975563360343420542244772295184198112574196069021864789610441711782350949294921980570385711653251532749537184785974742497050721881812948977431165553956266268676158319945101390186902902280801388912651688931183007664196131113877286459033747486081702141884651503726636134819592736543349851673223271007304164959991676264398165508185138697597605720501128069889609625929462459478300694994756196777769735213018457738392860389667214965951817221160899517889410301692881489462184511206262293514514925608276921486060738166166106729328999350197821263876830814279833981246991730789656111524202514635053513895091686091867877989773554987593883872883442527140486826418297658546156518092730735865601150192374722348178894222739580667496432655593688688781721559455305238913617193583997916982208862140736381363951901964062331978936176294756184398455312996822411371064144575999223365608890757946966988467598021544274821047415838382749734695550060356056717871484316990420033100485981213624114034044943875508851964576684853708620347934687182025837046437509843538507304951919202465730108005377365701050037444689512865178301497724299909131783332159205267516648902118006369691217719713353138438164055614014436807036740075667038519504382317134133121057582371640923598288741218000498393693553615112327863415222239250364376046066703431312319044498974161014030314878850851982332143641181294260792649900131676002094369662621898243600798815727882954150785223310662417974470464117531625896064145933834358368784130141348530524547869217893580495690355947361544599454915760363022625368236666384900132911267474081322198836637813889965642918126028875754548371955332852383576818667158658909259788530941788726077427632096092820393891300648926368461524215478438651339587448773401180886627389256497438419456879463984690928149603429735618309121183160746264673093858122776592500350470295323026719286515571225813215311876528601596100167667029667166895665246488727400810291291550053760953156435623032462188066499156151337405206052370071366533907222166093910738118591769032434688590787634061060657269005754904626526401030906633038398441165539561612997889610106304114745393973472324942793682657159482466249810109456062213988157995285424441693257739855033713113196870821709757566686860419108284662205840504980002048803939319215103055149208268707883362001270577901850173460620159479951218671638021352198111644800800460950842961216236288416881927851917745902059940736590741204866037248130033495923547316461283604721091481587428662927031734572782178260613289117196344374636176292155690319266635794782393484811111256144969790531435520768962765040873696919990508172415112174434815262058963252372530748971100109506055293676606473451282433975963874935246574727963285426612109940861848698643414496040940133958163450923199585287658949055006132247568506355094683326834867099703038327309113400367916935142533331510971948170268356226549665752246560386981878759938557329751185332406754325696976750746944076395576672498121836084120377013057551096138711126147466492683410927591901260275638722570958276747798205529170199846761219959900517893639505276131842601097453737083273319820690084902185913749627877625608589869260571149695304166884206027607004148397290147973344875943106109142334284794291913930001717679565229781297613725827607898851802786384660370102050658589424235942881403471607516182457025083767687062102749013725160365243418358936490068743666033172386089398038554745212640911915660625472183332512208704642026656776772156155628074580290624484729117700042540200823782611900615338422894486099585183682952915571448382766551061697545039317386433287467761226802356907476751749740651042733566119901203607208273905878068321247930828200254705134767388770257397479949886947745730070911306758985901820128861861460680941856649923916311635100299789100528307485807948499854859578427595456087081586672792604394319317401416501899865358767771183731908694748345243966412007814360029001970589214500469937850517634044216163199670956053153161105445286193436672390444367670818178193690284860228012519269137875881116259967910548029500495855745359902317020249695201914644712646450968877901256098601203115124908343023005069851546451881888839906984204391646794788852956315654761851017437156428971217594217931651701800647258778757306036386044937148695060213845833041892309360333998491632040226744261045369817015076033370899103399716890179756035658754443574163572357629811347588493816791901629584897896297646743424820873555634651207651209295735956840771364492821037916624227335638299395017342720894076201117534662356741183235177357980719078963830796464383059044768182101825887034449196655671180186221565263100135006441416965324446746429172827847496218125232911925275062423011081158288930759021971834288803543961549327186592820371746233838921520651547559588386614589911336436312741839473692085558128632913507391263890251315605138761846757768253950637365939797031362797925447051823422333880815843041725252557348310044923698254515603891981234167582015793970012506741694171173437218217127637581002443145755969492724667104402065076635269405727438347873792874396002755975928545420849796310254073677071179367555634337898832985216061955100574938653659306272153042173576790744620638933575483878411092299448725601776271806679111078056769361065533375511576658605038880307461588984468232925080488787265818787296194414195537602986852391525355081837271370216115067667534301046383039709611806653891386917050254977881260519019269433350115526518982804415302338883264703218255805707309217858777405928281025849863382740457161300692601435905160867536653002113475712180446892255756608342836150060024056490178032288337331299857502796600624563086287159712343240273345822146000553624460885027803906561684220067115422040363370498671114758425460828356873799181043613669220691164977736672521997454284832325796436360475094338936244949975504169673790081664670531904895305570195544140235400206666872154828781820745485113152149219324876425148944385496951916466217010088092650448058733724615107870770193392078462956135526235713663064544259506509170000834885370616619967980486919784395122714737937144933745680191863626541185768753075353150622886488642072115148232476367224108408582137452315051880054274332479671773261790462985484522903370699324141318210387925603349357833513237375044171096969674347242641388997003757589389911445347498926907291376423198315384452471004549623220134145096590976156155067496169724301959044632427056275831599571074149192893627733753692996009381349452657694103756439386849823020974519324696566646958013466485657477328781433345928480351483530722783530625279580078914115878942503782771453418612688820313252824238979563817341714233503456699284123715985548254198633846179446316994721080441212575891861777931140169921008393754817764710925285062732771706706250106586206970998423309146807578605198689497425887666991847613153701511001565263128463699244797539093437020827929550978590151522134114197824338181087587672936651078329623027358822467889447476957377247227544485980974242716498188594393953270840779250550180291133492593201238284250788609906002050463536782388285537689234668843959916908647979939665841679087081965588742542309882359125127384306639139305117767304845077509430570245690905080300830122683009202162457580966288184383155509425032513695287017200805836092657343325066981842242734264500939141348390016344519660077453570962862839409088337007422112608857435955293078795355578116825780704794947121070020395193842386672069813706568687379757907424633996450735930024055872539428207276821363129543866442742555259276438435787428502214048309377339682445943962822871652859302179854490316035847622796855226069386221816362127587707556740322431496792429083483194073870937442620434085618902550430581076427352175586898376673115911716909977685447189026642516965751807389284516380395023622288552801342906574004126370323431383232249966868947808308146336243516943219474252436360801551701137123081599352040204079400668566173797274172939608605400924481238591446034681535951186682907361903135395821947361803177875728925407025724776703143782719996089138773332926083941298101891144565195345546255069454598198084398106473692497597746149511648549510923516701409918667532298859086450336913190396765288808632463801256826989305614427500993556313523118128039162840376534049246579651264371664977836909439303779886252180068949868664015440828842489056901742357899649986016591344557635577613460170547669414650879946873571256867883618253757042800185101480398420350909756628495610009867678246950983911945230310650311805546348132604397848337857157518040406201327216410294329452096613716226645212494535740772344862891127320043336197526918630657903700296211814957315543765524352490412638125568872073244154386058708550446639609880868830391266187383482107574513559862960548603655628119985936293147933497170630060806551781748121219427252841824956469378218734493907253685240897765471431432920336346241077867525366945730221301378527493876409851756348264943126163199114535192296283199126025939623837209202026182123855354922842390077593213800809709616596441604608758939840930570695987528899256901990042957913213607824239941691399871028645867218951026759946211745180443216790216917688250580539148834786467038848985584174858500629614328447536758520597616040501406379249674083102696601420487598254808824654594493159711237101165354822326448407280308148347094987150483215252078856100617592960638705243756946088690991198948861369604442100584874429074243772444871680470390910085643218763771776171651314278743161037903624318545601098434610413557247188595254754052420592409301510193845580495889044417117282388576664990291781671644293821479529350364710960073452307545569750386494006963766853778707249326950519353536262970299688122686653579961475159694323562027572250936296522231373025128566507963001498399876579438197883191556970197682955943330360737818110286723694263519373419734210118692927171716897372019390178191807556618325691892587009767056676390327415693018865370605711023095188796759943333144443198552597161801657590211603455276725830434253002783116946175265704378214847978849570688282382780703279204886910948618843386685501910986674447730740777951748409065701296190925047643446271561117589829268379318784199280702097684493167692758656481043216241043499387072903312622416718668278352656884967978093621571470108756224684372037659254082066667473538700488189290911742883808997456403137064483013519420114891016323340047298838575554197282906956933847884963330195193076382549511139558311188779306460974030503459626104825580144595549393108836640916162502418612446939182837640675627863210424154041515855354953800861895846446517761286548011071833704371319592680708198227277920941633209555174979615870146196325145034631774967805032160685798976458408192709492068302728060437104017883736951711748750233510977437795836953082914072112162842853174468319118617120265573019124055716753232352054931230601632034885650711128846460026332415100129908829989629935427165331251549753204285775375306453340246795163669622290635468265774637885855214104102128764999917241272941143833313122601810591139830348792840956002496971926120069701567222951907632375736057922550895157650611158838019715595155918082609474670385930609294789379296194787610903294102474510629932469126738756925867112145040028205092754328685520360957785161527243765254752403181971867659731832571382785882884062777443665554371709106861072466500919318601751678870747415882999585361852901258616878336568836892691989484271739462300134622417754226985560111359049973452633944860633458658506167464557698157133923152212637613887541035109451705552789370288353686144380199658488348695433092113948864961865407734840278285574070911013633393607526239304008083579270718002328234235897115255228766171072568359547978978290104052778710738008505675836552545149765578005837174839237792198243583530273282266826734615985592982033369078493915539432950279765359457589974666199855723711555811944934383165870419607247092042120433187671567228518619552383632345974741994128598655498513157917438252304814189500150773222562478549728183398984770543309248475946232394373505775515249870255992731011346397839666585056072236682976884612002266099985033182962901260299919072931318237835149512712888870395053071491835006063461729269203461092195649613376789633003097718403589878333515930894934908915573782825150487841589969455311686422199268965787066186806840053854429431779680469076057673720575800315340096898834799746983799323603835102405989742646417588728300672668461650712955018041190328278470078411559490780528951331759249455881128208590318541625739966335235143397116176164842627337833544431425878586422118550756685626568566700624390540791538497814279687986757047374795865851169708943343657858323513299045725654188336552461767522670131497879211302858983720146312900201840872468347456520364691297792525304891124753516017186809594212526337041230962405868071384391338933446905697206783950445542943019357014237517284947292857185268992944128759067823590146813593591119084769159731201528600570783065208680186082592735222213626708704147521184391865606537780473926658299866159978942503863341061766837728236512259163962168202323417715029716306815025528133239372397209971514257743150742710739648080968248285267760526172816755741014467399052993747082008144237926477233083808271063754572091755075846014255788593847761999136065635616972780626361630625929997055585018345587704099531417806624281295403931830234905367864779764227679081567317257141861122182885463850651035145270139049963436050825849138635311706077611186862515683851809688768923433125988377889127924889591306665546279919839397240716360826256057853900319731065386359515926172696323546539040044062922299910487481695551886268036855071687758239133095769702449509566850111882801099036282793274338200363757746739252359320945282530469384570437642693973766709129800568497107420655701602801071111633670531603461679426325466457413738870726440497023948743208080433797507462869274551230994235608735596793009320164346658286065581569509836462673510236260915449983540108162114415059759199795007846624168729897513129692585732832117849045162068864570482477249890399821132870365928388526922017709596637275250619238997104491988576016202503921120779590809154621163671875831965632746649653632863862228480382414223388480831871356775308757379322573934211965610048816771706260866048684266485527011941209533033192537328497380119522984448894899716605373824651434304701972087044143434309748712467830922913744333133142442836730893803116862967420864104230394865259252886095014624756717053303454044493368750981816626156225042960425650136726568059631948722716797077767438452859876779501068472457253721640144743032409115036675915682340685406956087638353621607701437182710849854672895334692900810716797914409570096289339174398831571170867495828488645723556666822082378378598018431717047258463988128136166702738778616462513769002265396217951439435363580382761293151514353579496649816867672356447636675411400442260856320151597927568615776639323585283378820060731872429629227542639567649018529593908934406729214352403101884563383249530084688009627587863924931635057452291277366264688059588146336697538152840825123663450915719217255046743588236796398615965293791625204745714421604241119817948000558311246352588690235647162329663759547650791454947457251749157205943016166753583591820471786168576023732073546530426287720070150167876856883726119912929340299150091286337290556465016820218299599841980357788396401057807753070950893565179595996728893057314749629104280989618833827898577627311126587268017608680122009436013056821206832134378269921511491379073009646819337387933467723076736557719119070101458569411073221669125423813914289087884696930577347275887855721472999506184492196082594096542246346637411013959133953238773428522589441263968290970719592281750577165018066074372588743706784150686117109660389250804711000677926638790105041284603843658802885938543067033199776963865226867080633539132791375137024974734564042765986917596708434284429290037851722649364591042669044132353935859111045153607524600687007800904107514778352632477405731394835315244859280544609738815872210284209473296232775148859803618022874301539125294442003241676155932870875713237735935239279559303622780896698200705000785797121983638795647446926661828898264398223587064843487386407504611902436205824148978172118013451841285600601723363584848484943513022030563515616125175792424388912672194851628832217750149654511255004145190337036379471189093349265386931756824492900809789822923825396427360197298999538481662584762797864794310034972553138359899995692921260777581997938140866121630935747416880087771362646247405563991289334802311932919715540508151911321205928886834841827392312529128340660311801060164555033969910948270242530074829806366455107527040218224452096186893467350125326764782344146534890511466561831404581916286312180542407386287079510976985071324612757363928036167447692614095499776500507174876998114149824309241126086316532288564700050012412117725374896748673877170953971485086626713285011386681494074612617469156309351533210501652991469092306310969701181277490191640802852967381360320201792561526243625087401474119920479813171957759836607738747883430444506868864124476347115052336363655438839572956459970791944872497124396728324773400437839624271715962614051292806046972447962099228864558840210554107635611398285853410428230432930694062364478236081769933825255759618087648981629978423897469081695180062608402000264111091858953148043827271970220694768153783258999117724771477350500303449439688621423282984530596642238627050008779419995425390323954964853719202692268404957904400423784679719911418734835960384535639249961174229885355996653445030719892868118760910211845444763721133630286817633776661223069893683851967522745061782907612879653109035021803686715121531450091613706903718967402549189111133415631657057492910050379298760551560862104902245536464646721258927416488237107849556121771288740995680610467661885467085015684044592258749198217417412832800196919031979838934366867652688841404128885729232485041141473599410027121647246260587325183136401128364028254872818738659459435237242862813201576531559328216013643894724447261771550334278614812040818575107953691035843655117738372345108704188932915704772495689173031774181895752456699454221063096803424759825851772520187981364454472285322249527678335339494019065509069572706033491077432833285514995588872950627209067546682888699227089871157023337460243690258465899424929689064878518500241908241685007849315604991333288835913765284995280495865242042116299296986015757572328315050636665613103401082664135491109606287270585964290294486823772759591551100340350991857362506076329432628307736011841658037488529466212808927072846450731124723896026402098028619508549769744863242397594669242006065161868837452695335832182241904345152463397475562166390414007274440216131435777778921724361926036292861151216748778752080313334398872245787962159065813784549696698134232101768532820681284218628214575908526799567778191985235798147504955821928155365056860653849406677013191119545069458902054591414660520490891556495758044889465949883061220534282867877083695874992937572641475985862016646613938770934917781213402020401271005935029971356352431171021263725215780539678601632201638090939326316253984157340198539825715052314193513722615439935288226550592469919491527995390069710432521917958199335494047275565681629847566756195720879883459061953685171531922666249228642323985767613907306156229156489505261468650395045413199722220539537657815936824992447882985050155379707634841131062783590617399233859461673797084895918291572072206289426837048437569641163667782765731192766926842196287616973646072152070884922947959003948058698406319492540351849134190487267370962303664931544674337687058391616118992273025721609367986198425909412403409600629823566814144114798059392428212279652609093502049345205428536797998467131826259186950407065158523088724332759902698114337155267195582373279736409822770470183900959805134935747375056185709901409323200815176992521542308842107449920509348557142152934437921094019457350910305780366399195610333069076054680292119530839011583095489314259214881605135583119782360623580396998857748033822742576995913700090037660692879449291515478168607356047199285247457433947193877743024066289372657519894905475381945758934239769684167854288897439351435291074228953177481023328907393484156925627499730462184657645736442085239906851060568658940577032220233847870571000056496195810564940929918047115294955745465357761881906089410103388513917041501035198636022496852842796526351712710132566733503380936817812557266028517799800137559467297348088909406254371671821611669120729787943153085696956735410240621086279032652146249115915007868425850048255661487773042584467462989761281943912716507604994480711677600389304788711454613193063743667012639652001511208354444873102574776530525725608786404798173768437455764605153207139534311747328098301867749396881455011870317952312372871418627032792116282385326406111282728520773938895776646237770235479946438596418797211498205039692442811744385149902101172674736537751920108162943839037849726795958591261766210355535650752745769666724148848083995767505359447398368599347746229433464782140565441254712003507906181845566459323373308655966735383649311101552170099378644222224405087166227592827591921547338182990668623042558159327789162167035011685510521290764596616123346483229842455742273720864975068193357563946441028918219662558050857274599326216628768637320995468169194451276769419059559898054480149809602650276492169395528052689629612717132451659107751699953812591721059629723398990368059754333738879357803538568908167811157896851023356082389251387516577957187926208277390013358645214569968231910762098262999301162770322729292299832895035764458367410144828791383247436791178537642965399132060227242665249389895319720528871200132554292429671339335225526206830405102402626109719269942523754943508234737215762586962334395050396682286943658535636786312624975561689392462640145808426465746890730343841352044686745869530584230651715824497782474960936086216267477530200688579404086454910240342143522158277537190476393192098450053904434993110990735971824463503205646707644992990859615199876177400364889740907835302819235434757017292074918942277186286056911753374405596734448119141413953824346089365955951164250718455039633102684946466519083429924621632005144214408438527126734696268054281765076851922663963015599986331309897355117420614266411824581088664980127373345014864780202269260299890807941335150459148512758474713134535927018546921284009549154778687564745195966788837142042152166142812773802229855421371545398491262241499008157922801914818527382599787401580526043224513841298179756519187461207343966729929367448639945941257844927933245176692581710747459615941214254448253927316335691817759154241905554512790427427199436164502320656782959462503731250117572403079207603574165487336045478408923012730258943074057892732102472104556333923324230898367663640987709034807289860765135654688505249462597876116796155564301519472765595110631512975278486330020917086121827689020168064439512171187395966199506078890814494661143227836721734979748155919643179627860391029325594375038828986744045642531933594030610194237700544142291230089041176178150947555368205111798037881903257104309230572283197986343479640247764918092665925667337147430815541886698311689919177997615913499779687053629888138240518403424273077364092853310620095375927169903090752140234997252341742317745738551252514347520738102108783499902839193717127889761661954797503197523307867599989130542932983056567390607727546616236552032598916808037422215149738599200059094351495050036044306085780679217436281175041310364721565943587103100477992947869392580681514418011064968600477159357060463715929655399723699060625815697722262677480138740688440933736595606539340672656034556204964316458034361835223505095150194700020971585395957514276277671606223566378093254620040803228335259602548132332215847620293543834202946570392464775885819732174676901061532277135164816125903131297919022823622976192647028484718840825401724069935010187484523056779063166778856125794301502818653957015574979306140911381116379001760896714077903989198240377574792332591103890133593776473598290692420502545658875533257847471338443196878896694003920224032299826615797161782136555839578918788932507630924483313445832194806209578007940707557722514388844128374974175303951195635909666814302163470316184284439733956477858209406647439925261085976988012077227322080536297512813710390533074662809644423090831170866073159313626477699055685994790774132393853691561225329722312806413906359979856477883854275871434405029656432348845158978037731518694585417888100515314905957461571800128862862181813540550942859278697022141859288962296230031689940950767809142466873621489178630650850321764136301820912898635682742998644653422410205453442297334470048384203669644561288941961027515273800234956186576861847851699575475249833437735387533547483612536218509821400714597321449623915012328054265814957100359793579508724488835553777566689060905169805106084916274611083466662270611819671597755260763555520366684840620157203045346271682483793958176049390409050008521578648718195712588925735849821705772497458890012120214799141519568516060510955389543973928337310399726830844174720724142003394238135979004371641850701822282112115645944648311009945549789760322755567030009073307972069905221393268304739894176436157274435079385895181969648421843498826127111534419631964824532092881937277312291560121407168651298322795620582649302301560550430892170331822462834836319927991729695344774377089832223031170555566931152908475310301211456225127591223591027481740354093409422255404622046163412892837670969606806377337895174251177526584053723907884007647547780419912915365276530859133119761400784834489254953347725945221106891950533042059108775850620104782002111499421882138480067322936150476149548507889192091537482814080794257784654252302716053054582636540993079254012375890818890142338682234297993323990279168814823195960545693738794943354619165121204109083670300620065151167360072240987385538098029903448846423414432700656832902593632234573315371367254291005122403132323706580814764013200959469435517386205470999703470423250866100619852457471583290830091790335358283414097812693847313982217291678351983831608187724602676508171068451037009030916395308219820332508454962914373281740011109299958267442838952516651249765703729343303656021188368083510103089310542778929456715921216525401278062037892721609173461377324226943247940617958695375955788940885629908193525987611591905257593777617214009655067334068271344954204017272940056867247037235472776716436789895972090698459510870325169215400440880645763562335053010199606267122491444015739005074379797994206135813357389600790931677685193693188286615726009068138808971675143751939757257977960926525938429224899581875762080406621090145910788954145691271680125488581039860223860310100951626167741448833259479557907099246245386547122818795160165067810005200442940141623880077622897035029673044763957689655021969875858833601503912797873657399333631462572722411450654251862548951147297066544918394481246339390673222662404440867533346278360547903908798915140694934657734002089026176343192522898743629383769995146817936858898757452953075724265898928485877647554693577112942378682552149658560110131655432600758931110523997636504014585901927180644303671839922101540157541956964883885056868778303773931682087489644656729133892658449351895012848452779491273725381496988483823200579201542702894981626058363004920168464960972647810230542657295002222191414806440877673885800362366662090659306639710879746748212639402742314616913241013643961436008908298624155156958936192697721166987438921524086091542134570743685809717614848880886345026612257386298271686717938288145327805082581450994164274013114453287287327531726840687996873156202437421026268758202355165980858336214982064432631183714586620813051424163396737797924578879251060668021598441407986756239222207744645795536416000709939788308710620545176309533705819913155545606642712284626543982093476547890571086070296840821164320351456409151677982586236995064167077634589175551425393671841666181016332993735749772409000040339626672823475587525987303976192570209510236374975455717913229220739657771638190572995541388171941759958786509707019720806060920136672064833421859166697797839152420971091452982117661304972025552182485489318333122422084301799913182379681064088087736756865579464590373011615691582741282059914045042020643471236944273705002391102754243722147660333511061581169703683477351539897811152726124847589389259155530884404892717716634172875175984285545727192058806170396373958425590823284239580324629746667921315868858188007007444643677412860064121055123410240239203867430634656298472382655949463175407494408098167929061215474873522001333547601549835131479199090019991049563558789596394347151354264263088667372047560563676138207070339377444126809228421069210347273596500637927146137960613946217220889373611537087115273112566107455990859825253445342547077285836855150618145398196044097371350862896547174324451015611267532615535942858753900223655353842772701212092761452764546358711645672367135769384285404061202903440552050655546826079831202324695322070914100843810927811397531715276360347497857680606651605077979724291771184411464441037445525299530830516589249958080372347376166745291830525197852682189317340203334441233049648756914156075240475685321446900965040490172037771017035691243939091057956124409245848314659895165067782327972880234276023218325272041885987047165361467791490108819734765664605331810542468340630871679093986148222015928839009977446222880381384545736836537671124387535255512888818894761751257012034036433421484305426960424244657420309203714953918527023403911396241155583335065685086829752658205883685473672274545117516271883036388730997604286500388260018035080819869886803177985808269932285746833713474112300030786603530478379086593626132126282652397899277927665745901773262144134017064326706453225154255782772124098731129319506803808187192122079499134356088622216659204951757047585907197559577205658113511458523712949951506595151312618667598810055481141909901525910367100513378311664722495905356985789211168704643442546799227466361618872373976262090464937316301870587408324131191892443078970512787990503161572468763869046711747004539712888716553648689194168774497520429680540026767314605814484468849094420424000107575801518984002709823103870859907039842563798881464428984145755090384106947152371901517643261619496995221145005729252023023499121078425107563742192439350351993511151274129605866471138849097761432618006053311468042609035905656059068644384620789635562817600443438574151737851968512495140679540362361593985751249490722145318967019124315637902816762514888358605263051693633434211610595372881866089696084394049058308245005235535449788783024284428563376085112555016681423582348571504893252798254406086970062163208606291522266688529817340622614989747596956075116165661909602759919015990360516316854258415963338887502595963226763929407251912484815266968525657061806887802615672009224775838433602454585036797131086798593017336780809545009271023008464466353895512445220097957695488450538294663630438986024390225896262470955011816223051032329857683316396489511435205160722238441101489155349682797787899366682383469101531684779063540267238058968781170633356496605176266567223361961882896871726003367368201855365761581167770776548023328711335502921656019773085856251373805257136288914977671266874525238545747355305670066490604053889586036541103448311122275283742319300487632272146826379412614138135462365043383064748788221765769831286301509077185264149453349873873223484175749803791089551475235933892483508607888233454392762576436499583634837995990661314320455208587007942846419987435525922451797915969775921765499801907633089340214223955722996801075888410501767130241631122783650610884345824587973076381800641334793501302777321128153827400196945080056587688297634302506084138756533635841801030699071935639686330819598717139671081980645378806394740818697569522081285168130701072859999689421081863668980062152074194468430429606980143612279628581534429270027110177080001302016248152490530268848669172114058278232625297780828562128946416542725339955653791706067499893540559597424532896343839077937300578539137370483685878688620106049905758818522188727608496188010349235616746147195255075635414833076965511048830283453569022863477910210013142640485674588479754589550810516946456720341508246966184376514905045502094690929516952097738040011491751322795198428453996115036244823145812244577247144184809787893370354700190979975918370696574519879198345060485041350886058800328064816862073587925369507410034893159539367149911745627592731609615254550867427692017175655782407699736061996583117855769547351198059731209540746065451754597773375091135624694528948546765542792263654724826799241769473549686932363196446736221062877683252672868915479587525386941526310334752011725546131471480411747115024882422708176401545388302991995280614997662612642608654838777912164370645565221313356886295819081117904465132165999626445473065123953002726944555617125911610917688099780645897446233913309005955490766152460574359273705550290628033864841494162658601643116590307527510869059044397789631749320345911202703859661646441429970020383397882133330754808245022304657027278116023900317411099848033515949728760336778941030956116399088801006189370763234113799171209885047137407526822151041537166199626344338130486192370551540255027400247368221864242247965763098595998713858841760928740921580635725845149082410087850756128438180009891791976394037136008998308852896092334167156170756897167569307304418789137098760032275868299765865332031934067499900215971130876504589059832570928211583795398480882268154727421857463661544600991457223526919468701159905220115567339651702169009291376774467279056084995826587493265079055008275490397176073663767903832389974879819295025306715175606358061807146379128383940203216204502460940536561649637786061633052277882029781695420571833985340502197703281076779234155125036417453932115895757214546975038762876855500085166499615081089911252597628812702864936870748964666437769472738361813228675226398672980004244862401890851973633676192847526802079211363980514693419316417413484533088146579230273386880127126800914179359781129188733445139464840791540062732876322904786673399048076854397156892036965232333506859474611836801746485088100404293290786771317581009613115195570795599683138104566886836318890770039155581425997990863106450018315850777571638486166793859171765810000372700140065383632119207134327604988944978723640049782467674249213342342816755592230864661065989143107054991479426749776747918950240317094741705679248139684233176159569721062673606030679617664361717326428912560882144062878161587891889695882950980264449308005010940879106343589977604179433012693358861814889637959414406632373233208444953360293676516060259564680462255227970682782994276286866609843990071682945775911101646366133713984490143438263903822785862333076172600657082677746765804001769927630148279161909163414056661931481044439127494006372811373611342173455476001585246992681350725685325300701096779526301288220852038738866431832766817093837163298148751031660106907322052574718879640062711208406772492137989780546991939093987304009162799354398294824538550036248399236677567938836887313520712401121193698537671133087576711788605995646038021778936202175059174871659887480687048881809383728588210385730712078594267955545934018249184057417560565489947059723684806722372513679787619357863896801037297947390560886264861720915289538536626626306099776805102007069570452675268928367986869553420952407508668639417820813067672239562889968126282196271018765624667390527664008185324351370923714135888236690043208612056278696440949155561306986926476821163477641872739768875984576326156984965073478060295825284014945295708264578645130651294664359986114712539741647110041657971767361429316588063872040962918580878780292896473737936052020062915882473054965981029453709122188999016752296049778583927401421372070816988560342136253244189134495773050346060525048227486642267917281710203001304683399678836369479803084641230892951428815351343207586905278421604668532477427127845077809515097875860435387537191725717404377560349500378576540276400382474706074516776584112104294543695702859076471767720604429226189562435934147045885561753022578424370162913827898994326891873092399554011428790372686604657993425963150512828494565753591457487329296002385058915951623426950307933736216076195909813111259582837076737587056595595492853696980180485573883441491163624720791029433286046407560943076906413312436636704959400363376374743589520170047921837898134374007073958443920732814670368044073404477100820566679170888116064950423132375471270735430383082240241190345778398829918451583568497047447441726363823138048364725236234970875054349803487617191660730843628494862342723119301129697293990514765857285348512581250011973095702583861283989502317795511009283771698638002049062823355281489356757655610244075226292254686069657063000819285768613074293243830832862876618336207692982317303671006657281729686625134832296170354341212193804550701800938832400774863717035812166631843894513610294584189832089865212047559988938832070414221043075660995549484630559293744459254098780135387498902361283655555336966099216494023304811710592031660748472511489957222066065347126944545940277331232114275593211926263608565193456687999801552765325955767675809722445817088513463460618118076877782187603210457423391226682237187222815185332565708450220130208531040449303633733561838447357988795007998508710601164808895873596368944056314018751573649234252081578909382205386674939461604250703504236012169549638768135224802008776109231730466913544975771243152106750079403290720557836846754131599482903111885219002874924209333175796432405146996673317035406214436495531271172947034522548983217375670819378570723189786714491593946516011788468208461812372440252219807655813691774160676152340574129149396250533896650335932619365724460009118751753739800393076308520566901348807350899700386110815094357040871731390437112341301589379930138178869523901434293056852376809553087222655096658531336268323315419949600585089675404872081679924190893595131245101074439712961637183428037578232009702374380834627963982047613544179323139542057932167929278657846409201198022667604568148252687456592221187573639444526537642658035616733125434543212382614079329109942287497932178897040669097408178672091203900847366126705152842101365839601127486594287826955042399703907007028014436817815558220464470826464408814067175530609248510096636450768501107930841285062032481525140722400493184143206049517877948827092148221538448980861693353513068873372454519241229116686999375802534918631939834589489880264242980414464461443927508314789378705721148030404124280035807085423945894964159814346687902315580381890083019304272337251753386714432968309694127307602952120645285865271455536226515840499021708765889860532155764120673851374942332085091653136649222883893293253920863599108685483899672166603772600558052734465357139202602553847724898176834375924531099490251716561845843056759091501707529558282649773570920656776820563254344349837921184505810459200124127072908771495393416110721017265716204877729713002582448172666373683105836749744878029241294801952654345307176199298009946437503910624213163402791212332706901540126125867369434667635401595261463161824390511718946301665707824110841964740421477384448762006328458245808476804080428669110179318929707144912622429957544082342827440740978323390624092181216863782397401850275929471708193874166299865519114143538142284543020159245907812523971330210086337184727980797424404059777285389739624099373540014791807605602318343020026998736944639571225032350806447748094080781673313024878075736641296127357088949777168815103626662944506512682532940016489517498609055560735552126546386123737044203819251577943543076673601761536331747115016194094241298824245142437880942615921747028566886584055155910906180634776461111294720141067682050358836734894149278107589234057806679642625283755559976552697933142707117106851152524862179355731599965396733679927789883648972179403823235130205710070806772305826319350674606698359325697842971172827191643353708742940934085058238325370151618255710963825482913316002851715759809882077117023890196999384935543554360241795379994491318603512108988247728830267257872453466259471845252893474701086972032525545442078673782767596262770907525892895703335119159048758497353528584317608952986759774981114466165935678482620229116296887478884855246856857727588049423339451379403488378348105080579362831518811639705893216745466329155901415524360180947897796628511668702186593180433209490395537756059847286239304567974017436540292489038979166431830082443567061431859257325449040158733224072704061294256852211503301585991182715559175516182009452556268488452447259636371263472973505388846252373726561500579711622693912077418936181607065813180293742370208834816988280693099401564156903876498777135067008635287962390192865278215363539175659700919079069102642607069482592132597938162282649911086315000674302809354755637524334306344160642416184172340693321156517489195135008526536317194416234342551988324341265093504045584740973478629031713106026134686987928289854818416855028550504900906295203970221098284718946310493134868038103308897797268161022518017743075099296865108577639373885544729793709301227200460309561987045323817331552881576602915336754315830344871429011057751711952596482943966391538444332837820652914388103949679704152511764861803401178542727545497487241746476179537877274950348622070969941594292928056549224493315746117524253426807608956353139612504860256435351741012578137360558974708519240357543196059642907949576061898726784311186510115420649551662399210200823442313403798352608066993634893728956264922894876500870302817457411241701251798971769115722195834121192050075029770321959606413511731433797869340659937614439555461103631987375045453507349510309774541840944853705345044436636193763310954217985642264400581246646558482467435335232477970920151897406012638116680626885986492033424453883053924024057093556930754046064691174515331546447461785122822737828332593482665335256443369395402811842183881348003273369195245106734286096454709108445944951199518236060281113661048041632902994741535593197465571925386486910017118984732064231140341391193206354861180588768388347866050360216773575560469853132694937794437830558461443348407979001000683407464941481673141952774119842842561273141761334519935108514914619869946896512279288970942785273676752131549500168289930669070268481356380044416417360704301841290173204915817819516059625642778007315619972084136192487554877723748555822446058264266626746771541277404927083807764155391090000273863108913054784008010273269228323773742919446114580574223786982596941214656076910992388455683073435455106262878676999510581900274317084946656027923325891497109530196764721442754424088657239993994961534504314259550131098705576891942903099692754046901299837761569243534972172312736304662379928889879966766940244867304102621673652474495583398614148622353189796405062975462190504965409319997759925063907628933362086243393662471569058286864794725985034973383520492860489896285470716857857522573710837842164142584781814637027412063230605359305751225847361349697886157905349440950463465793551095955378871508526091584584595498662722311536872596655308786927942803416642736848440057556798420970688186334452713164813741925415386795064755212880946319368177818471976906840268817171860114426579523781961050901770022480508249273126137703981198351921453311715629139088389500629119826851711196340183569852343657733706362313014272049979636841643067011042377861852830582953741448814358550985819493566262249434700243060346668222419971962626139964252670351854694022980698782226280988087070279116267883153844545376664978875056686674350463649174541182682560761131505399353221243164306084358515578622946137234771878616136080941830403865358126010944252676874647509657480170791213494121897903621155085073380205567046815451224383732038272664563607861510018941894079618422113988370199295914474594467587526527668964229427728543759112203240396319496508021483428198938955920478468061256456230702570840551284106981664228617463326263981870725228326006920456581690448707582953296558930041110108353924225668077569669965376619557272603634494426958311663425714455325745117064686916877886372092026902760807246130358181126324356093936816937774738733957456008315746001838082701810745010420847104141946210528780099896471973884983483692057567081250535212601379560054065058731281555636828501561782771516909405293577130227891607319003523473576960508035567745678509124980733381798806205626142988211223267163347312072728987801819038441537723857768815600018163549850057703641289148608811794825410972955852991843453588907844037379870280104655716586030073799802388843179052267796874317279692645432238151507308916698408025658312351456068185614606691475279028792881565955968510058727339159763457177358318944111922121568955041188730341314534992148606875851905817238485717507409431387709739665859597375884504190818598433730445485776598440033931758764326029703881771099392685709927218368166747720585374166440268897502013386009705962080921210713975126277306138667345243733436303518241676878658600050363002218232653856239737166947039961671020424539783452169839573943166568774875769879433712602842881340689281947628396515644243454821182268100643586170345003915515497544043709306277109095213990299412126666096864059971796953744603395885261553245595579461447684554525935419107754523133173742112461366262976619033081945917897278363268116260104757908859661253416677833486366703453210928060142436539677432616967816095657089239736129510961731970614580612241442113091566589583604481391521448106457603583783686650532866146533497474069553207858206674971518712766239628553214399295722146353174671019325155138153621965570246247204900211877988746797979443033668039822710734328082044971309975902060431646513753976115094279677281358341956067329068073101477326638326594491862599409341335701858293757598138937154494727198491599181662165180369822686443718486802005772609062649092859923179697504761379611824323430976818838132394097844112617658330895376901850600515561436593955448693544988169882421071177740824769540531265830239683965782930935025059490458790312592832671122694427578878595233084741022677142361264016707328059965272343451974712975206107585982014338996300839042739634601641842056143552630856139257141187141263539014457039728319897947517258296212507912370020774652882696200076754090489187466334741107031411879693294738480688915595072806822553561540546062887688705202722848698978189881876142793766468920967455885626028772753818509580360636514987612801417783231101409728742950847001805833518002910469754588268441303732966474474246893651564435389841721052922632112542544190611231816395424683844160081022768678642639651038100232551704008064283970663266428028012448801774564981888313805816245493006114641750261704455040140248675890693775005402492699084668834163913826352582190719087670241489106104509674306586845758709877459303386352150220423557623802208432995675794814504600872568801418190484209077162273949103245031118580916388249956321536375597531247571231105053543143119989628457224615521776951818742621968855589478970628823618251824463255565568561090459555341700401001718351513249828111399148387586542212334300173779603056522814544897761333264379900354000441744559108955447208319621318576115085606520909355476715707978395134285720414342544410950526018100837286556291138970755112611625779920933136259366474242259334089287222410472055258638873740618398105801580342691517320056800607104495864852878983610840218846804464287634328117539221381846039045110017839322790810985928214515811939637282084999875783607835588162624255492259168701715901024728551091366298162393185912377979466571641844217015913096761926857014941885040177854840860853012310550571429779766084802320479926271832841531804588222808626624835397969821428381470286498938807301081090592846848328790754435281552703498513245269903094067750085769096706872528809835442087883303093967174900013629636916462614990472610015881214354186626318496347656106981865943033279163357517076686523462993146815854780819948485513477296523575379790679654651909473179598415532049938195279425693832773548862748471270633865816224252548990935713072554872428321484341216656596150736668608822850781186586882105530905002083760214824733364789592523522601036227580136304530848479335316597789665630824856319322743335127045447677905216150503272877072464341894653362323996756514456110322910052648591095665564758809110501045973829234033998458372777160524716851568993499229581160187856278647233456609121680421973802637148614183850728918338592279320226754032795716198205758613661461304529956730264545502339079671392296280029868972836668785928648194901788526212144268097204691683033135426097997524770538577179066449962959288193328605796736699786826969508729201947854508915526219021944270751861528991738504295567788022637857136053895359139272649845087905320587738710536282004217085207795136939510083530939070341184067401817370354515719317880680104167312216247352832855175054928134629924988902078292618590763811205615075574232086280863795929603388882321375092925279071468547498344848813792642875020719950349641451217404885097642456264347094943405799609372818704622391824634617145185102085179545875089258858009198748187252996173714438805045930876652587103881445910493068945863949666699611441763503918317711230245690392931360336127628890201062382644880236699286454212756103502373886930034100255865148120428811825547524262955413538707906870459161956243414262868412169307426600161094987187618934963149139465637608498233890590227444653497463143016481261435484230342928892001037934974767429177197993552903534434296205300737363848916490150163439196216330308797973864150739131057300551214466728758877669890138369365426502557239713525016142247706379307197346599587208369368939090152283583788332813342758684805261226418115029749431517901788965828410792903623993003537598470106389101752649621326559476891137926036864093993665966137077828631204358998764306232711298088405054847178484151468240920642724824242079822082215628411815744808897463639314745385245917924113085994015250433329114002947062385023130471828807908126423991668504538438685801827555154470363222258233128642813389574814770367985340735779557895747793937194241091504398985276057437358151580439974640436709805181907986222285175661723125986280525277035376713070864617888699387031725914503666580466081859158782635903831994545643645449909393188056095700734911416355707684065617981956558733234971968749355569845639044341873961204260077912766716392332984757161969872394901545777928224557337863407421071079912058585886891995429210935253014030025534550360789421601465582094676274393413246727839431828634339096309475105681544704471129927657315203602109098950993299403250109260410900151424972015980709151761828985718241542632516793935433123465838273165396109209037890932357630751113197424503702123117302923651614428418867739986716013879745056426382089663039879913344461392652034852532748874402630535368643709242438300040464972630202614335971891707949485008412144934526131224138079378906776259862060970981485442004857297325453178106593152619101402746697039719109890642393858121261833409271642673331029956314774044732330411061911572669197890459679294602099215394704918503015966390251621668270419011870683257076241781576718129737296518223207525953156251015597037392383896546085326457414531400688583155866433556013592432425945722306086368264032337208385154228197069418987588378036733461374114556066792464138222673336883764189771610942683664202576445638607094773684438182465405996210910146951609676251755672350654038545829412239268601285509497311067139762953886971514401828698809337226963117439377641348871785656675383972639296911383497910983870557348109278467291620386026130722024860443520008474637971973326441544568393144272563324958119423608624932080851282022412576523148862507787380886790553739330405329081926982570928039307796957768873746395911376413411378035822166309191348622080476774847059475407034250474231061684762649629884058848589960446118441317296098692640264828173006950113475734099083879986924766054848766914823973151301231627046483921661961497654192904624267246021413486598668856679856180835563486232762877009555511294259082119048559548734950427219713647495883043777456346710230607115754756102996592394214976835895469282928271832083530841960333282136916355113909393545650367328296564872535816816559192592724680666625287247852268470556837558036432558155678215779671803898200057500925253341993654894120894735509036685186315107201772544414900445693334608594383111093991416853181946152469161565641529368299902411238762672439598705466307370873238933192271852692079758097689367497841511445500235462864395048574245742365913153264400990850127811888020573882495982465111418876141256143672231969815723225893682423621460998863157406100229470889567981074664491131969445748212022423635148283466518432070399644609125903513460651597061016405850046185639348886418243593416807233082209595757496248206216294643281533705031437923790644143885815319890822149222014705851727281560622058627777022171579458347115730392879277547230457840852030743982759003755103240992840759057196848025613960114448622055057439319387899766809624391265557618535365911255335557337535045770921853175223738363953399236646468832370065508474691066893307689204683639952682521180811775779864955772418790821656322315574700388650435772787174445489205025671316230811589636922351528538776883602886632381094002023568305308400901855326204355465242488813953147008326186107525094940435665136782072612568729351221172747119898573246949510853418861620033468661551225207938627169735197338909143385119536372943952455473643152341528910661936255735210231293758755094461945914644666236371532865324815057566174983593677815371065261426053915258701778731948425211810069234458165002393572615803892682512147688506475150806010895971269649795382968211531991838868106545789184896306030025489150474520312674985207677420623390749708778911755137758555932245544029965950039665629363276007673935468036662512790893248061667476603856068549339287225764146999808658176535056688759350144053056784791534439198887238640606629056388754242163086321107438414187956614353771374675789410929050309515229977843419390249738430008112102863319216668514833312151291900661558870251231883579192631200396318297763845797042133221889824927197342581327104120944950353148132813209655996793917939494550688403012577222441489091823615515697617759985968729640158722398702673117661347446123762573055287873343413771041515940505299340781671132557037085432287660416721564009241087306564095510299918368239503549154139818596159464222352574323456887503527791388269889051749266475328171410438751087205716513540669953651822431960294064489965569194171365361976584070972475897601645393613347961096184161446452940715289278585615923570923352672566152059166452674800290188274219933103865627016680956486859908384826845901246381915083502643063614692190381548015441079101987093538082743288077029192806052812666939727369112389127184432264150616405225542226432230942669907963296784098485988284001761177000689957242596347814363300766408648290152055435527598711286849120157403609085931224242623735430778661569560840737330398241188954911839201894226227378292014225493166538213108332314763255152620206652293345030314826263003627270123192916439287637223253753243027189570909431357288333885030432087404338387345268211493977542203877741535447423918172747920359399138307993814722136201438604683365833754496204420069082206382434800233478598902805616666654646020757376510299549410998421129604705158403155364332200826732242783395820441955940905352069710454424783632915115879847923802211254176883332624815775435943183555377782288865832980572567012304098086311450474721723921804014756139968440010851183996197147066933251614083739442571539790892070269879305462353516901943487245568518836336706490897140051250686113873991969241514590303043151379227490394499885704292103512031716006171297954878573823840913350837456553072868909856218541539537752604920159235376901711828839729765280241435276490936517125995788506934691164189793392345807778809010950595728868303676400671103667097008797869096544013842452420484209720451301825994525583374700391077921972779697796589157892870767683577881716475579910252307366000525601021978277261537487530551791818678562834070344435380611136443668246958604642983667171596974941412476737083052277509073031165761850860648884161602743186001666467747698095179763486460110059037139176012194912402878568816522331179301765716322385984110627714137727330784503840197433745534858313805261083756595141119118227283143432598091552977836899132639042255500556362402137443175277868478104327785165214886606758898191966734443200249965993139678234903170853246671238401532626581155658535161615140914239477284158964764631448912144351976362984735979662819625199331358605482828014321679800221623139371897873303614692341211837652749170971356585750765546748653185892360322896885518618268627569102103265311642313777962533539294011205439795902337962230332607041073377459894371918954099460228105595788914500680035430669800003335574166453150054647987866860330788564623541491154924320923859226480616408273846525801101529463720092376730369066715438606297629209165829384392088995925341966824509676721056233146353390540345643017651124962218739530855749721056728035617930042272197213344738900811418324646098522194258676691951705618349267735714433827055438263755348918498775890510019663329422322338825204978507572441831419859225136774522182296694431797095240011076397705612926215132797728729907618960829087068658287297367371075036558721954204557658875998719765868944132905087562494966029226756728894403180297006526259049655187474762510956017372374299388267013162221528003349613848095831974844781006885384153173763871692543854440316873331085139278743913119993528443604891841380460778219756261759514353670978071982831418297472077006221725224649180183844963341715432709526653356729179781436497625048063258618823362561024410034809351257963569652804780259743789079034511967752323815037416148334081385642923581092672512980694928126816170642799882459237230712620293342972851326387805911768717959827511159465699199015429048517165245914947792473932594657099894537008336452464421793948564102443867504126967011631612122621536291717907324469978689643209952616754863754072614698513329388789816695167520800022898941175919191304917682843007089803496534723538910621812417253877726693207921729201211864980234552750356313065465973229017975740690310663294369787455813902161381068696847723114655897245960969188705048184332649860918669891046548739692347998572174717907434183562934855033714536833914703861595462882383911700196027639814943219346621530513466251553293837728732814974561216903549364897406310408246923426765332380348343716398318405630743269615536568831551206670987515002350667327184651522081585158562934660752716880872789208102665520496610722556346464070441259980254062593481323890416681159640907983238793742933365455247128419675850325504946307425963617923160144571828912398137639649973319451828418699009618503149403382001909594685941516623080725791918331461181687463644057044559569060765336947717645041206442846971435313034398317699834474490889608366962271987043917969994418894701597964091376365334427184647294797766528648809539050766806936543613419861797503488402790973470608523532664583245855824136723674898100121687268651802309602519278964581905774412081055405998197093733363727381792094425315202033682145948708784124447442657203286633253337171488400029302023555799183956155409284525533706566277053531389681460692963063573924856179886887013012280073441298313867980661586247429151323118483667055458798525537913240733643700643796237367362044117863004091226917161993400633237658433432426903784950213576807338660767573927050498967823960636926654943021628264658117990079084252508336928332359884376390908670712950436007873302552823790711363649928597855123388599182998526918760217383750071150494433875075632289507867110584905357234881348626336663800089424074293314824141527512460993617878474987298432386387255266345263048046152135802074423247421940796905246703897877703010835336588906358841810401123098912061048590154278597031895344334643318917648010887403758885252083254356525904054424444244333607239107461586883843353314245126867024626205093091305969618607622682162825627176224657569968925586375709710101110329205632935439242365823838533062795742032269196684471883631239074376854663463979517863322390919985575682347106564281250605788892863472479744747780936086501286721319455202557415768249647506599042487809042865922983577523696575462160774316505503231294922648189649617035057740199630601507108197096679376884194188053059331065435586038109896841339041703279812498615053343140726674095637920264215594138325845210265159582535560043956615511539843155657165268873942134762491293945353401910544039875639639972717377434794676445929263241872369490471992447152351019564188677710850863056293621373989280140135010021932663573662619549347981758960690454242697587122282609443763660001430320996046570250143120623071879846284669357735435949806823329470258519677141964962477772073140685343152386856882094872501907149914821549206622638595261944097508440476198323426892394203546911754103656784669945918994156045390929561673799988869806940561583859574719790826620109427473395225510533926733774528375644076144319695352111525068258031358323851935349623516177312298058922355206718111247550200307433565128389487926963857486975017115524904534572417903217045258245567393910524595035303241768344251318288760021598950822146161559073938488909760053820774845092662447881978372895315974244387092757369767828939099748902309566216035733457163101875282170815680747641844138190734661279809167192558471721465166303251016909253880826438416326948809279103097863954507758091767859537911672766094443024001281548501257611425466681827061750425654945424068505607903423242587820139975892598163933591978295332646967861396000857379796967504092912838107975780269823787213546069260729569725460972062770831360381863378777433125935677348664771330544718025552414550401100268568284475529272704622177372929219822054762478406691648799970592706955817759163485865322162045813323341498853067029426325567516955916946845615159802069685512938090242648364058872898842806174155622824571762712007938912073236447033428462358121348405779489512580278759938763159610179444296281103338304219503184811757667001553949183085056110262999323207171737540178557396520171591750463172283122600365366124162343712559556481203810126324078412962493527201071862662338983509263489016642339239847212826453122021162594556245548998097371550241189861960364556431313585555031090431889185004889558601072735382045945008328734461253227791199965556141288695966367647537352218049628656786218957632402436206914404121848409021224019743479908205054365620220280335871223553755521688591732240989360464372403287201121443798143642583825349603114434766848505294176320440191953975254134162245052335991074755678947618090956796659891880788848700331368301457983357380793658304219316787210282722219435046821912424352926067325679031027258016852981786973915222633991557143728031472193091101384408312527592841860848138181988833136766360872412930807792711718751400064573982380599839042641534523544091121456195901226028582146211388800897560481974044201800432568882932268412945569330345389158955662726359495073504267575934140132317387302860927488122928566059112643737500529874471980124426948734461849972546552036553821592980927123019364453622248435870306383546742788357292442409578068695001317303065489768841914207581536686685517969138940583127502823525079490210946665888278891767545625322290439153663791047279285359532225664547015510600273040892431919220875160117160482225244021170948696345845923379389985580189733103095191756960192457301758973345886693349991550031164426925363701052209962050117067882158627658138684238000215172736977199990935304456867391247092616061790626259656033775455806519798059580700865940867947921737108764860456729994325063582495779480537374904845488218248434866574248864700740998765215735246425534563978335806121481496911059299291474525026878029916621995739928063859374333817662188516077613587811253045032841632296939727917847988826873151888814903700228052342479112248046959852342617221777868492651295440880725019023937524511494144797681895587333585998337348648078691596758037244776074831052406071679181296057535828478322639745434339405737423825857897809985135818224363907936681930958056212841275676195097042205366785058302946648110463870813049833604528622498935692569227495909706047921856219957393011249301310549679597230847717840333369391104747575620816650338609941759644581142002500887124277071133535443611246146176098798732414574592430026529034431687403862958716675631119952667850065386170810357710780904658859907528657104473933005176701432606603885679851046593612306157034438214601122310041398797224095963941037272545871838515929992792515904063754817056139201335147243476758474286340643188821403959139466856376400565183439086996322050563349528935349710264154675766748351244857960591689130477470510813976357033446583095637199384140337751401147191473569809380967549758002137949950140854824863384387360394913567463257223975745992345699706317548104663030424688276786661321615393834317146377426279781826414519240007086731397236020609468558158891038915050687196485480881122905530953011132297970713968055696941433408243831755318934897892592169216674117362550351767810093191166552593433854612296512175038701523358423384842536245424787769845538495447513692334435902992111302220693437886937769479388720367657353358400668986885310104617391218207291393208762097046126986161057853272877194427771749452487508963795167255652047883264358217674492963122248593711105417288220530748800608621188050718380694474517512811778032490565737704352415576341058548190538827855687988433894337007865169964308236758680898321593637349497455981161546999453149757301816707470132053023525775996807025723749245040508217124736780373954140877611966626875467069681654401902132886622031630667867169144234034399362739127760619078631741333419683860260714113201323061400943783909079221069061488838287982775545256997703208307184202336882554011686806346415028371849099697746344506651685904867643295851669539064993318184913804307927129609985029968826288714146935766666341623027505560580529630045913410237785179562928492988567627757363455926594522351361615202033772938395034650588404564033089480752651040566647725573751292909376800525356223580575803260808449825410872999636679345906078382746568219831298314063560226925063114013678633537041633305136202634540430115417906799681670263308648130872488670919060434474807178158954293138060216164144885612663448170036630302617709767138908455683202565952497058722111133561324126259602239631243569116963871768457847524811222352966333057592502853493683635609572882850395625426802519911366871505086017443212534213140850358846520783445711480640275175795678645107256472012387412722760190268797853390796385341712055412854057834387995562165085217510145381938098234244047841304509836394992389740038947627408112067250324897153635364818086404871226209087387676334935284866260612609610760337188090392158184815039862122153073781150627554586494873332892261161875112505355832822199805442434285780865741439074417957967406385861491734222659721791738051144847298413147125700219371885270984143505254506347501341842358061535902259735594141255149205103579981014253330524687172202825387474603094827788495040127692503174301496642237974700226229032718076743550105605950225047546178199553520440934916477979620002326704350395507956518721075655513415688878472322356568023694992416715747562079966129183269930530900397739478006016399516760415390383812769990414210820046127361493948356659093199942504248046497862189918791806759576252379445966764077379167641968356295851023515065243103535188260457914878162804830733244457519799535826756510846346915129868724137198821308187038341558273377763888658762284698588041278355437263003088145095667508886023209077561890356089562616621930819775413289619681274520558922022979473724327681372118827075021136496953989705399682869287084682156490023593119207920852402446168241415338431038907855242688494237608177765867168295804756734606566871822902078829548588632613198715954944510071516432857064973961891762856748273053826157581508526356643711260146425100788858155329298131188983842184418828606525111699383031544698688306267920434280904769818444991325827644526149807854913929742158016695787396142235991973019123057200240031782578805370253349818495300542098874650856726179976595719928987954902104135892955119558150210326952486370856700215872241861257946345303769387600380472682128751685324993119175179644536941724889915140155620784145821839334318420084316761322455260671651976452729600828923028858643016165357260804855311316510840863141372041101545810976154942060560417043787607020027340182393278133054904225125864814612193829004234432334872942752219775536899565366514921884495064672412947205373472014260927870068753109121340328925324346270189945054567270353625636947282596991334849992456964955863713374782131116247398127312599366767422680834660898726412058555186417513449822279877895273394751362334760981892756247248460636180205472634699959516083024476161077394305613763987673260779615368588293469935726116022895094080962047324939953435431597008799775271405152441160523919319655711393279194578321294838529337615061393959955230853554948774346270481190228895873312631256876928705759179767241326920755775202399533314457713208947633053267774752870693282768232509402078295554284300791162210412378165485944175460667672985790541070391241187218705363119875260096757101608798412427728419764743711442318561413578482721423326308744250543971320238632354043666461882047212511322535781519999408435281826382628526339076328109030537412409180183832222565320454003438197680105439339128852023793270896982498160673882430620396885838042157822655854553000735713331704922084469435517584242330649892789480350433177867353473890602387969990615356023736475268203728269396146678155257071627383062864046009165761017253576113711147760251816974652591488869087369900914184394696344511276679812588697349227635922455381495942355689689199476710003670378204381734063688796582949017536512643503359732483604806525220726792780248786750697726803777840273858467153229592334931604814909647896599596297916707070262628727612821715927451362315315661967941085457834677150826649393108782011132982061997279936733108810056235697022029175130116018195181937708422359663478000029234126069642167909972310578349043261872328125731713269585650463679504234182406918044838411871696824685602090711372045969725871578579758594446643106574409442136691729654830501493637720036477195640747472336398005017786379477077619653625858809882485776062372771776020681024058184759020416252710627144457530814933492807106715790223055509640289163782189880807392779463068963279946774751537605203899346492583848066391208104118164225194258446357826555277748680612050554511697542713223946669146428039008894358770811496003709168381458299864902175279045682228420627356703750821312240061468412371435883993416285209604208132231670481104077759255588530311421461074288826026820992284841760080778492676909111546444090345241386080500031271841105601622887415671305342315700306408574789242904460832117089089206819934421268168383995056651934747860974093897408621909163435840523852025446294710185645379901484190788130493373818376291635269986504828171325596629182397925498321605395296594449728133549960660742850984996021656042270333974398240926662005013240404640358776869985396985157471232128847660056142060261589622453452542925462731996752414051005963444136235985512447934750356744037956768036562009615717916124436859527210045693287524061880552552935542839614453604817127244068587133014355746232673904552980172799285571367266427550998898514796905709152156416183053204859201431319669824391736748737906132004967526342949020330062298715221871096546194854351855543643171451305104279817145864843016380418753325559972266187178268027033070985574079311508531602262362439986446022095840615720440169230333391122558955648442063211984409981283764746404960512259128832674970063273440678929643382455838198718479390852659666444027289167736664988432191284595711610815634709535763238384592016244142495878320128892102241405523211418877592348066079001180199071226459195936631727885994587229339987612256896172896291422529007399484696386916577884441209562966379212824680385387438250187220642275213704892302490843726162069497144230358870805644956541262990723606719490088792428237053174788755440525684582611563129744107675471155787469922144577345371101038769491195896795659198931318956754837360595595644494345422647273055084016532560971214355507699436996128539307110055221264219743989851969234625580355040648159537293919958617862496846324868913746948551160592685218528194552960529006143745527548518033764622079733282569995727245290841644292961106996526955790098706690512569230085023346899700826920905012788526912425970790069015281311805898636638289787977389271573519834903976285677181111002151274379468071530433464618521812159760585156016345746364768068832013231471004245555867544083914416055063901156647769426760321571742254740910561601388544418884765247261126208253427954756482014101666868599116657862392658894187578612742549209400687431158887092306069554695898370889469982551578327671675471582215507679864296969019312139508971921442864632233210404079451970952392926085598076376385343265713696550213879967752214882939937744130188534507750522722018914965926648048913617007512504796293877815149625401436402031270228601535702794815185581654626055378283791137457073849015067146846516501721074555672631251179209374303607214854615447309507920158793669140862528116488103026835997550713253750179162065658288582903161574861033889891852960010701627666709470969404368715016878411757928653142788543281675356702005404990800507193027488238355207378626962953981954220564977759653760856526488133486617991954329679108994421926179024263300719895145801616455700897716953371888344202287244308950314870907986124037146114459413730876548068855522144850155812573039131492657784961455724492338153926512718721434744523194495801769492857404573536892316834395904343602010559443321733489460769701772804075102255584038736542679587272380531482945389051686583166780346710523653726356264721757495974184211531080987128544373502176827282276188309705161158454536443012949576418402795370347031935974270525375617038868873291190816781244037115483607399087423146714842064670677710246481141025919895745928105390036584710100831541026617449024535411043659597564936789214410932192288012997592011366777710321150584025350648307007919619457047074190093241824771754603538975746343028328903262189814342115446727481331227974222690590326580400812104623853565783902194098637815674539008193806278674116459918321367695065806241956416652577899612576994731005383376998316935603045135136957526847007437554109385707619295222549819646518239359522559499365098424280119651628860875606464452031236870136628666846788428085007185860842492459475242284703902305098509807733812381506061518199590769338868596353811029148293980055710010523291438183104461222128358766550762138967229791160918143384314338961228156664450332463654293178922272624839772393209882123933288844938244988804097494901508215058903049749225670104000302859788563588349403819179253492407932224757597863406264748259343616864520699637742774196013136701542785349911558914863996262522396159039135044302860483315380241338153525662958530779381401968300116125382867712876402429773962306511877339803315813481088887646619140070089767215084248094191522945248838329697563316676137979114076560021642873987117687225749609314168720002686080486988634658644690279826142355855028439322508145043840462797134643193218532334686873622925694553983347449841989180309924266568602683780231267499946418541140783069463000330809791297251554180989685569811648179659974716211911009033194031343830682367426012641658597445374468313612752419772551732895125119910615237967460451377427575267295361481125238679769429385384300978584793387562216132191761339418510680378840335670161080851911626823317398998218013039294392372853089177752171323789237511561604639313226447414087455417773341014321269135937091811038879798466019329238178187693302170106704943165426035267183205458786949674749274311609908603740804211353670709345137064845756925851144372574046862099363890907981558184335345899022618566961985987407948425750679801029340980345864865095382949267403784617797665536106581380333316994463631753157465679756246098056482736456900126885113549555542560976134701467070559539474682777973106791500599431700589921658105363274326754336727736923833981449556054743500491810968083392650016787769978692543374286165297249716229909070900775787618067508995566664492831207936982668037622634379207088453107774155917813967239137859398477837967635715692066956738751145253725897609232743664388530638178336022075479507637387312183880651637065660991407412826513006423261200205167794443586658326631445850626545997355482011762496789408932054652857096387573238451757901628283576137188797001605884532775616550127963917410893077916742946052796916422985287912720987463405646043037664964567764145639786943192448132254777945252888565325548902637548990391096077023831514415033044764981771209863352041700548664997436702949848363532878652788983117635998145129101010186753316142846181305189473542099609004563669945562115042730301440989880165609041646600812757695858918319405881180650125924362207020892391079671494660725435694399548000559274470417671455712738673649281102363712137427009908736637358296389652091342061470120614582642205211142890267463220391188954246949110892453201353131986750686081274813282062854793409571283603153111544748162618309125949231613084464256621281013920810622422211954792139768131961248064719788677928603437112643300155723417043854348051987845876091853412977272858073557080711976986321384949971405987573248678900824136442476530800206680366751823639634812303994221931023023583549465847473377963760012397163829300778724162491758934512482931636805799629860447254401068984101149659402829219338668091962094960061654969458588026443248198411649380711751181110106306021408422115111381538652079017854019249498971947686692854372904870303623260986106183033832839034895016515248075657082163591893480750996810210795544834922401311560474648842978349000517306927211349240011556729015311252164483312982592909758571849088250198345363655192066429457013387762017145345522899672899559980329904246412828817402048355503678516040606699465468370926206280148221924449565137675371255637506186457528739940963940640624296451541889352868611819833023786929003961481028790658896690389356552989060009517495745469788693230116107006232519167925999257816210942358567411118363256851193121765623111712048077513019960018904918677558682394587269306925306589335473841758893178303665457773494042106233017420706410086848534481708099176055152560912960618801874512621551680835340743428480481420494066504838084685348496366700340416308450911610721188352941803948106358120121949003651996219725818738325839471626607732271771579731690781509962031798208317745163019061704308495020610666645984166522457196656301612370605832126111927156199568659019176887472814472112853505230785341808955940540117766554379489359939609971710478859037098632779136797682163074238859413738997108246677154532467693086606330643507908942347437657899949654897367803818854211828164362491055844694186768811219342633715581699629478895411214924933313107498050902773483361858465840838800883581859474677640368087724943566579486358393149328039320264807495686566105321570498554426814566623833714529817013798442883792331889889224074401002593666154177383785292863345819228960082060056786850407847555716779586124832896965712821008971704428561831896519687917217806107952119481634539190246808068731736926399503209660318096878525326863345393881171423598879520905375943374061912542429594797413006594462612744616983592167917437552857228802396660611789828883372305425718639008038463139094459346735786543829533633381248263858747005415176843792919649674430453549818719171183147226190584801430899142027044589185731795562658242800132859967232497116658708441224764077114559394186053529464811095352343610473294384534965082908543298474744345449796688807669176270651662425376597062318165870760167209979545661658383762278561921437555860077184868683004912437061225518271293158385847045690128091224206902610513036562010293022122949936155192972484089831656144148814328235289923757203091367804051092191185750224765108646901140562872771126156875565061728468751303678976572461033423946352145691204982246760163026058130954398651096230735933577142139347184414231821186493857402547453570362234312463278314513511671412974223510592895274564014454405028565265667076277233279745989335596402075368340434950604082031473062948720594815078313081396583148072424699358323016058182656898332928384900912422514757861037672122044730621171061923035085805752376257499249022765602771005970993728040753940119353998035869270504102740381035498905000508546792761720663384421800197715744935257031729711047511009136160733637886683135686085360777535225114169118644152429994539425602477703952331696135578251911383693793192828876201896828969436288247852041791671527277454925133021466688495977275922217174321049660209335630980159587617737109280782636868351316425930778889923628400843947639884919616874977770145421461308288140029876383542891577262306623674898352085312532332061568194781533771008241843872583383102675261647280884767109693225205204492864333051267021422618379646788066967022611994141807047170135506742114385278059276721859871532196679814961645438573968381456835723078446226538698622059927801699419818239438264078247415587892062051138614487042963669496335016558867834868527489673079866895170052293191340254550608662838542521042499344896579659563990037105145281928334041795527146904538638692737332308349853230115011808848005872766779928054581552934883697578375063480588411818657481175231909281211537126108093907289595029581168924337522365045321276526389089698369320054022753328215380023392674498130973503294238103604927799607580887457980238396412235888478629503430428243317655030458119646201341622083999576568251663098953384895467354891533949229598165330062802646905361769164482802331815389567691412796808276041713568604104562531208157070793979568531666401621799005208796817829505021171028537878591226270101404071020004443358571980998673731849796035192035027990291617434229182589201466933670868305967257056170205868560416565892490950712949770671178367257827404438173755349631795442701933065013274451714021682899385519312225565160310726628760177072108810827072110078830220917240917812236764794427284245408345162936795810019941693751070652390590444520861726312951744547252775275758094226558100691763119464387378977192661591355033814968601286081921914321122467751468567833461255191474843102423114366327059210697951867241114862267060998552881855813854718026592078753833892586788040289103004006140757092649734088834663428911023208914537241174703614955563533954447869852248571506937445457435997343162648149568072157907981842673448491365587300184486217611045471892013863026122746215450032761544844308988058541625322405300974234078452272834753387481384812241784280190452953974616054763951332100846997669277281226208848497910160172752199935764233617400110639821778243325839156075550333539563653549451861989354045325899418116478555640439780412921191701138784870021725129235463910562855533080161967885525390481539710370431018213865298461287450309622449175700307327500993107029970488870470691349006480883251677246332554398295842122746580267692490967984763117975917311843314082786435585945325287104759834156548360777203903737512853250352344264267398788448570305685372301381079567272961290831444805780010698838500679730524773688604986815220906021714040703914892478306898966172374765356678752106402095531236076494905686384539566215455695568287135772243931597396597559234046079126230321165267245159377725196862330107175733029007026199939868500447375352671467762222640941925751996047501607577187770659620761506353169700394800968804759751865037357873634689368352996922462249638380934773560784035576547006667655852960223006448876355709550153794191869228382658647815974049067039254057313229185978756771032406751031746805335455592133304464972707639309269617100324924636933281069393298401810186464640373615455775649480314250181614269535074655416600192085832321715604485143271866243871366745157312576125540278654578053390887417919627870551115411052903197832555346116247037528285819341322267139388294484204089733913714048963915909793607581791261370848206673335693514227599714674483555481730177390035473495351323688693147135483362238239337692456178701809591980352231270021389226640080378720765636078554861632428882253348084032336808487249019178605753470044942831065786830654067414514924932627282152928687806977911574981211632617863382633156553227771713782780443878392916486647376587707525854264315705597323835916658440917599016031957932520070469052343997077949577906521655557159987956026565541252051714874516458894609933038766347309975242666181646606023971894077760812517467066644022491316127181427285472150051994695058947266507819919166860111775134220653636548436021648359351734346112374515216940502924129167059680787631136145398191781973645059325762063738472662190164132689280778193817705526408427684075784533552409853870795361245215052196460451098974943319330126407687797480126732259581598704579936956388717678022332365976691998104803793546116726689410415103785575575522791509675100049428169238325710464812141146469373998320392578630415926717970707572083978633465604846322486341989786196926963143661728181474716561979746304272640299144329106973911806906574057428828305239307163356214359499019807092517221587614710668329454679603353183219746263312016094218569838303817477358387308254551088075046100704595045220859590023376408404161396258460007945334041152051659396368711242455335964254568234116424884081422001893454428671727671247859448216340829285688098747100222848767315339799127793762149556796297988171531354558998185276836384567685910160711998371886470577096526211630423938516221831456025585994564463454992968522180964248578272203515119324031228374745916935109647663391319497386453948324894915102313089584884792170238049863670052623237704612077437565117395033878073783438974413227949537688255629471106039073375767708405278557202732367499188228203803213341315587703341368516504939291764516010879256248897505655742308008820653062823145481987736315495820990788312649973772016189511932496356186538064235446095528432851523056347674260036906999841841902667516030167838742699600736252903121530607621155073990246282900469314747082261832557654620931292283348178170201812690917479717649531212532091797759360932089709435427061632192591403048937135289066842012877121992387767023702327105717266368308043463851100348369267915583344404268432396732998293856475901378511663885991292650290317900111432098586595766684035112476367660970901331129994532337237460355481489753330371617719921169617354142375628529832645516113878603508213425862378035329731619292474455636666711515806705768835056518961067028418298397338565670752216266222458030855102787477063249897054177577688510180720465969880629223230897675631157903926708986598860950958787988638332512718311591899456934222309587202787869519946689408117651172986479815355513015852498196230879518928204572241903008855118720526510952453001046306727021130352243347747589732992168816387923180666062235972336997172247054349016310268994924232228589595432045191232527729293822775390280014546044516869870178454204105973707832539516270263071422259483739335282162908510539688078043917481953645275880038261368653733572653491559655184268139289563760828942047656108836752728171343063284788534995311557255874242664394158275979480448634648821252771164664049752015367131609796330187969301967013976279070602335790061001743703799961331316695556850217353573815928619033307875158824736619729497915114232631372311496769918440999073228826647061358916291686840628303559058626342631020406956013088518791885910361989213469508483804946872569535064738415737864732458522217625236562391427581297880729501379890244367803952983831934231620547542712005148233546346769733877499998989243179604296612055615371595955891943527337311410205071019404391479550768944581273604793105229494006701493765060384753111771292770467631383391871815282101059769153822156270702107419251577590016258220225120162798055792669641175847837017584787383738821000861053445137993569822913781631174818569142920846360750167311439122451298476020845342409809526801859097325585954512610535690087083032181790541594854944926281312955204939210466359103841872636560162352182219386612527663615506923748824058787918306090107460469054327417434173210684438778728846433023830791376420407669264971375829923344171950592804756290745052266203274201072766854029472921185281027138496253389313765948792902152694860627752502760676227708698900973186846295680834619087355820854139680469764919365116842083716027669633111679185479512766926679157953968137811728828374553961942255233318433987795022054432961342142869368803212613330021756292357447486781684179494127708497502998417989442887076486182743756115843407132841051966174642485306956246706044286335423795483179208025953586785176983495033263462899149364223076339212625925597536361514720479316444804686979665564880582930512095827346284928794868236333253110903426781775862190763663555502059256234561438346624432926176958731130947363050171840883819698858931843062098433447934121857605042300503103366569161787555543972190761118719606340946982039359393182079153258112411314521031559941082611651572930933220985543159849830266528631463307354587646180269314611069702752069657836093298335191914848842537060567711242493761754276975733325255417675458447564541996343955823606684868499453608519532592990593831601750539739108757637481004779091830065066706042478272214825642831979672724681573065245095364853309864295073278060198616690388248181877483862897183852521864130088403910891873298720441831834678718043915646239776127668492092931506297319767821633076899725391435895545601919877777860611250702225105122352700778106246989680049953594638128150611375098267188466002536499619068568216200884099234170297764969852356593305062510785059593821447542194300265625356509632967720745574570020265268942948415794609207612921363757572623198246993125968247423664123595220701213911642138934190167109360716680550687026822465787372762957834329987553844506332923188332797754144160118784006981117681304776025898836031094649652027711786036625712989463537427391135473545047388422488271135978498098622329521644204116459997081185151366870061675010797423548612949745405812416176374059217561983683754093800357090508852631623307018727501947143490583964867288766623028608084260310986288733327817816315353074056774110506625515941529801574425921771873749362433243424032965110694527230934050496690593656100575141296238275564528167879236096788228191193326220624064187831291929844035196619354273399912948831669866510599995720643268635256924677714645205816823923738061083160517890051884559424450808517586676887842248514569297063653413419110031505958592936276396542212375123909842624388415660501129142547632642123662886405872360755387038053453413876702486284883130165661431864918578131749768159778744790522150888808887132817133826435778110374192561841709207064395791512763430885986695165380258271002342735083791603678693863503363814916646091009142967730303385212883209580927375443930601855048530581836578028171386854866244456762387688235356226924665179173758926158659516102542729699918606458384404096788959782499465142048496182680763514061518582213000610960507263766301375602163257180478236963229760127954001146028921348144177269186288086336233816350819469281105306767678370446075373481273159898436573880641651905080468652353853204851624502400156054587374554595314592414156805572415230672688104818286128041536253725057878945982544507988084068787131700528038755865527322228797374053645480986760153557170236563201635047410203411643134346102352279942496656860947878909471554946629197810862752286285977472479511920513221082554052192447126039522636778032196905433499779927106321386725037892494999865720981104084591963417433576859816135389509628189133227746837640453633469050382933496833434074077786278837698071666489918300530781039066537627885630780664534543993441344204539453379236618163291368165987590082073677736265360821674104721684152292632521042807961125481175572066970403694406406361964414598304517250068769321197171463427379787283417203598177906470429303714962870922362396902752541799827443284140506338436782983651770074762542479788381627781779797954572739753341616723005874895039377583375433361763375006841563718753198210610226031065810663266312371957005620533060409002513203054305427333097530431547830676165342076367596821904456593834524409289892906065218373189131750558431274731342809628865533780626681901172665535400855507164157579526454082831633159933620327053806185345580257942888962862855846285034826319459822663611919437379593450748308920457430420352928544416375553587239357182863625709088046506297203253238682865219920970953604912992795411854828785110785867827844472799978086467654184053129951732186774940110715501422094439281485254971395872711117974402793788140772944820467345233515070666030385151900595724812585476923423050870993352387904362199513451428137269796172254959583903104788789489869261030536158485275779448971007877677405989769478196169158048654988612752988900177735254275961181714760387326737322468523924292333877826791310852827964578744355082858308522041189371436683674380966803196685713273465774455419691742561342849203299261966690036720934337887912206875521085127238146130280899355338572255302410640905406312631295459378773495944128426716387766788647303421778729774766760192765825863514612776939377629809890119322353703178709044402653281900990993353504789935812660622946780949785982186198254584433880630756557611988917485800605053498921816716148310529054629951516680302493187845379458243598350391683956702947208326854607950252314624900862580758456311934580606158566777528779475492474533016686090945425893867403329268512029782210878416942180157614150468485091750542360509109517122575369938312397409840806784250110146031832471853236577257918467520101642242083531302889631672265779514784102359123926253671499789889483944310274139278604529539220333588433190186978743219870784136040174192925039488489377653679569911831727355643119917113862088344339618627782276109011938809564395484650241140664317553286090352455867681608651433057483607555771935529631477350621848717591439941433685258475302350803847014268699604702914243318335406535895230688329199081523761334120412816900799224239219366696005845134742872887776004227237281650356156604712634347562764154724461587683408541525222614073032385468882352691343002983452069905372649279118198606962106659633225236783780223131601693088449496686853972278320783970973524454052665398796556549156991311333695301884362183147140590774934145831345693022417023462705757663884537649753134232154183259239660996731430707591234937421269906626869440349419505416288899352634853613943447011997663933892486845272428854854709454364627174281944295630223448419804673496576539539494244934081499708124615592855539834363022169040989768142507417874726672330307410584288360521210903495713386487074899284260255401335278214189101246342410883544717549874217526419490171453340544116394046313016091727084100535701386573256265200348291140996749640067108545613244551322344574190837866048173043279778677280151910724410426627939622177545521852785820158770348135595200650990061658297583970500136724973153552967967102603140686039762426832333380020266826737165855016511178061169592925703310409172316372229392293707811879058955639531555102680754161819910826349294272039168284612058441334617942383739124188053714010180844564593124832025128557577629992701430037241298437016421950607827961807872087902698298876702682071360270437095964709231561918124104683370334047692944646311515901396636996954290551762207790562447772035591031590754375644154121678220656965210487620581582175962846152127649273651415518911723034906238096046198720278336705683141720964532378691998393562144215105345657339747844576538411412176856058276538774205023140581256353563703360679349550711014205465417112817152463895632577249930485659061339541227658175699949207417607917616576953327675309097875221305947612153925022220735669928545238603244947795543744299114350506586587997276692337286931971831167208365506502135634119193490541242535311962516675671426955256613058993702382820895835411468525762542746562024295801298482629301341935523114074744036152760622738438546941827137131928041514294797472074646620071749858402125321151931444260597883701391776841966795752781290688533346517771475834209441428244847444117927482158437916554088651422369707495653232882791163949852037523096692558131996893793318750231469358206468804652269333417962677209296609204715942858663595115308472559447200257935780450378735931561362504768645527439018197228151253687359062840608858212700037114959936885156940620870207022741270206034830473038525564763741119062178569236884209678088694994217696848277127310817625222488579849895210470245943682979530128018626925657139574111369114524116806000342363765562645966371405103464146317078905615390882146106317797825955147310350829777512858944465692435892581035038058590783281432686132004957806739943355671333108065048356386130820128838096189865940637109031368663004858066492965024722373881165145401880695793850745279529869014206303380410849140811574664370012734997087317142458211756474762892677947750290611101199117073115179830548524255164200502239658081903419218702671470079555035766424744889426692954618628014423252353009824863170594585012303853932660925228550730272950665466173734715130979820624456036807936458143290796565518928832862487012432588042601654363746140907506622025388744930300037011841902166578768952824334124733196510186057625998261857810696912323167484269970189386656341526197534257980553138835529520010057263983056703024232595243653462688739584027390197508964416507702802828996316811106362379880732839123597434141449839708625474030686549489920003853698129905350715529288639773681064075707159949345051097761569291584688920477828270411530665844221184129564636735556868212278558463482064952827523866276549761327332822154137552379472290459490590049300925895471555456845597565646022850234574393036014102476226602700400988285702254913022950410609221932741008430505447082610568161781531194870421472889083223526217150516397598542043644373045927869130080893589490770449655543526949657320899810056091365791992387312218345763454836253746407335641704157284916998760705247524616833583758940623979996707071487415387141266635085747908995056773565718022485818809669470552132602456826840568189840814044061853748374479465406422538223029862167337130610663314457075007645826832333497192648519347207821931303878857684184691364814892786661795175454340370579223822697275543595304398221788255773815370139750690975998423830490148313311338328682136102490123947903549942282046068823026056589990633284820597509589406158062010698998393844592967325857410412278118256227913936492609606529006671179208573461441166272578843253579094576256704914299489556819090256234160952877498398794913333268218175068795512579621228247075657626207327136254754726314330908061908906133961792538603180272881249770965511200300772581727325601780084699284858838640393426753015209017960720155633281246728738656468038492735896547872710933726847237423527150974504285947108127474783792913338968106282692160200333982158862062431807509655269156847184291956896421798596280166969618245138980334785522408046255774837158495208974844866958873500840958984421666500498275437273585365877535583304909287530637030094301370635214599987886489422770122263096003572009893679647767138254626751705982811515215085233628348918193364188109540269252971727746070148728963528880018403506212399294651542547425914071550422194752913585261754194811653510997086376802865297278799983547441231638353746804717854952048081651260616361189614112274915738967233289379667765678042487495576410663207968662191686700479103322547440527566118147645179209087537177498436353537250346194070262060648479382367379172422342124488790751744693776226445613360406303617269946084572393429957812900623772032999086233441937884347181051149428376486322988836021735249026722359292366910567433438605956642963413951237949035263905219546239363038954912365007113212343620745662449137490177053040723329463910773454967449566696408799740322727233063384308067548957890360494942030525461986633826896936823051135155333583937094575090895558913017060266587886958663875051343819358988875206598110025437518848114295850791542198820193798804474613174508178347352661654931410919454461521179613476826781309963766304080709830874710929446560341135659207608186738630783862433501744989607611277493903883652408143406647142213947995694584842147660315620715584260265067127999345492704150995294390680431841911951041762218844064134047344648487022609710192456412462133014631332115981902831869252442358329925995021914038181538680446542903576081099809885410903366727803716722451773291734185684175492697815839284149429619264493948892398479436309232204798788807450052913341219034254004719523036857079329862188933180695394640081878799379427058563052564747596572764308241479516358450540861851052151882508824026028358098791411686635724340444616688447093245779930289985930724535439023628902749137223427676519416867151228938903361561830978076389632274203125374697614724009588895921467068956184986605675172329115564091801074238471997447292181464186276235067252809980547377337213836296237199033638053639792057266904235904622032000104864939768514860472648529435226251406085570410202410092798756330970203233415252425718340569467399476126539374190036586760827700413237101301313477734238266122439611083015673720367765499874128363012305358323699060962794202172933175467528910542827147434963212926622030964223896212065715240547119725634711601975341452910784151803589110698001814317518846749279119811627495415094246519153451227001160560212424809952943274105545129229396488021713464566215739040289909744282038352927451025840296182235869057910419989877091005589750572667056212584299860813735096286531427838401895162514108525147228611207732810815956973962542370565824435478933394267452891065282632812891417229642259134049526308544618544963539747300689229789168372645202537951435073374227333308358184901667290331912755081753718441612749454479953138123907360510105221282137817698009263777231476532845812406161863059880539812035214890614102039949057666967051725800250672010727783549451391451190096031545706731073550546855385714649858326553790985196359988285504465248615430722885875052802951356104030986444746526126760702286383020515765723543213803275547431868080425756346507443251721160621545798687287612570919167309404422612833859313397180055881152975557722542463658080245851927740521466598332077193330543285891526951983663429556909789409098230948246450421920484067955740599265432107326094204262762873536555349171101896224551690137659764530985443033072517526603610968788740119903442292021775849785638909674120731841520396498758793285788901273083782624667317225204536893738310053624999416304717181169683065285171080659638801052932667042730820601331113843455476822375872138203627944821618585618645040102095076084172940303348002277132065466186200476073326383986044531786303432963934109445985289645734760894444466634863853787476956009529737707551134106493585491083582642781146033724258310958883395693549017443338071762767642320323634524975812889628330130199305236661744605056756883099270464649308079674646210866363026689195859401630165696626013690330551012808131405467028465647165793345313519165930406201418051915498027876692950095114846662594692280596558877955659809238567063052281069268253147391639854029113324996278912736933986713912949843236210947961814391042031232092265642131899991789851817659160871986244075222283175696489855355526717167410556393845207420956879751910973911375886521896242563497466388401273949628862578632313282673515657804752508923796712160207348172234795818561240231550533361874625289610517989820374405695634168901265223552342926326977024202840676195091306368832123338586290480217250638744294583053224986863875630820088488483177539843911360402005872733945333310253735898384081552237602106098110850486689961371156190860379741229389439685650432939037937926159757568603020956936485559821241735066972339396085788093737838747087328223280008229371094427099427554265531948979704044522829545589185477033745914815329641213506107074759568808707578243717970346572974190252601428265234824156618038340018436439057614847890663582239991920835383409096797618979940837451106010301095211707157528055427382989921354343812566159646999183522856455882250797507258575518413472568198873278169754360778575651476442827387370046190929784229172091878705083783801471388995047561733298248091416655180548186482022102670682567715858199482477414016959512666755615474619516455998794888462037682652873666020681382065534927941303836815619001347509574085013981522716759584145758996966542250100172538168426084978395234351631403579411619725293774494191609600367053294568361203814062392911766172480795348753266967005697833376947782686649194344649018429556668321437521844345319457585707792319419656188599457421832851041354045847815657003416402476221184487124974438579786861037516263769918708346046352439851739068836670791625054939037665067522242329307561597549223378914961556961465578328181104524185503750351114191910767898791183026723846297755098529637639455273038076701711457477015121985447779475940379926405908858568528852158036090819268242254200971029010382880581855526210037406873392420086372765146880917963891991145581465269573401656709974082100955585077887166965331435437309118135617971821624132275630870305248529954977533763034403084020487448790225635210640709335620458004813923154058236760118934029757114551703318117814449166889886473094340945121342578005280413027006578203741352169788427253766191782106576322069871261027041459500680585416298516716382239724016202531377583889289937251597407649268412063329481004365357574449771379718473368141436707954276078373567986154254738291822985235261094968443946021565887764377178302220516025342598037778611844930744634024773566538162447270872439151359510867230650532786451398691729205886755218281337355730731722892006202232379647399235291813326474869383975787477850370131314139948578299158634897479071974817188550962956935608021436603371038074973070779815471241469802341162218651576223069609802930679563379173307286043909150466328221698545312431037907338139658185217752568389779148677114395192054820554460125315702634822686986698451706557627640829163125207957172363747627520436261581106438663483423408185028948980530652180890233420255182746062885480776087162402638250175749284962850022423096865161188519616788308728324199531884037508061086481406805850507106287662744632476409466165207182872330925533150218888915468004007283149121026342168525986787165781358125216200517314901105687679377038633700599157384744325928423175477822851595937314757585486992062911066947134229649158220301936134178949736284757712930028294842062493642057715894205235064843098389439935084992031535375502697537705379723440752182559426419855880977158317529825773333535319186116959086758559911873940722264435187976922276129891172592173281531934084598027613296056252097563260361631276260606827194678607467857644461129210667151240436207538593753863978085463708611625133541087507217275516967819611879238122405045216843998260725197441717903073369610010239797730364843477752670696349087059318706300466523195968444697261875302285666621716949964800272940249290796973817262068018421774052542241388677730039064709401869008715833562421443636973055425547909211968096489675589130190511877707390028027800315221336260247136163146363912849279736985110173049320906257788308835953658556059933301082000984847389897788900650325108770684191513406129442726234239424454812701963478634421952805332026108706166633913662635852026620535575444534262111976746908165024412852866917747020696683110994694473297974889609705883963824368298763174308784290028984093209675294359983920251945552712465154988463628694631764683474779622330757968611093035920398698388400181914978942408454963636910680619119945342933939423648638600624381560717855629425604700099940726831977113469639298073386569265598354518242216199093804063589558037785003852826729585690684040381465119422121898352027479979455566493452405180599353601177794642734632527730566479859794937386328285746555705457952278581039919899997782365688097080695695769413812463800395395835254025413634267956880921031892998024290115596380315133755037439746306671490876961749377399494521943021395379640559046572244866812886688900252241484730605961019698329861023273580260787258052177222044007236414487637766488185477264070121071759001037023805845292897362755181110086586377731578054029520940936345995901038290657455031369754847784199948299906958444707306270256139358603514705439430264807761184708528564166425098525553836842950022510337297719717557025090732942808782120203843415237900917636552539394521599484210652834910055298188836302469751735496762713823832141618090128651808224278725909629970507581138960217107372074539474658926705148716992893164765042841560016348179780499859965340720294357853272184652004758809004596855256328808859726683802644484850602852232928123358791708854031407642765178229058078646402952917370539521823784390746362189938572062866819065702595128578436293454605420528077454560395886262311436009880873881171636826756718030252150473090300102847788521996465040948880254206462938431714864100735643394887361613666278290231083246947281366635857785469364516152246491290624871655608560634154336751151287502684536499181031367182629041345648787917171540604898896675038494455672627461853063797799802024274595268699339672641213799063915921955066147638028658855682494211816554818538545986741567251595214417869439471485755330064673840127718157288655756244450365386126354925045004747549290897950887392222063101838331543205925338539746849025671860063105450080392134288719765527763163086678311678674783545766303609813480947911614279148693698533239197733247286252053450148030319092720270270169982106512976951441366960539675031399471154494534233744035330709901356637459862739448227308531472430663959754397682555396369008338310800141420203560651909658954279349554582814493294742480254796746420394973679049491583992433624348520063947865870855674454925753233957523946243667708143517020416971647566367041343920449441532008002518875740599281628855838378821451475413160745997433317206200081271256012718435369165940079994687744805248302959029024746847957259980721920512652355362365044493003792936251727870972030082030901831454564158951888030828063425929411742068141174308978844626127557193461612270355325622961276204166718748214479294978926281665050303463920317402641314568561567761847152060226219671466454875654599565750552094805500756878362497147094339770100533375822836796141398559323537332864711114759761956097542107802352962802042635463860298209608326025876064539167763505867838120243804779755087531800359322110365732577292021570704295735599994542290907834801294508824110932814320399352318610028120568588779870679732255016388475478963681685842770096349040827911937685821129445170911371568923676891010164403090916227675421522078226852479330748985381499137355635422845888128782201159298696349263856729159029131235106202988466403440863593725064782354366265253984690297283046346197170790206701719546272836849735677778192573369194912155817558625111808033896135846915382355763479818598087498542831584731922850206144184534106458881528489548366494591221311800077456667489805132695708274571791226404423904657182658648306487586404331097544983098123899008972790585898736720654872337895918540746125504496760602943411343570888155340332100633549826745156050136633234727273798246840780652290392764190173077933438710265813048884331282016777705820714124432878528292766071085580224959473717671427604268029988820877195198716863295150408054182267538508639768799147902997745495878446230677684101878524050856914506053682111572778027865028652811809494240009000634523644037902255280507670755869481470113570722979980620879134857781359464468662189060730053110227296888586496049412759432566934090296697207235923982411114195650910236648580297071712691052317595232621214073167938595191746381930389965461338834025602117119428877856953447941971099389308746333413420466973411827017660900126545158137730096178569277566845414870170748004850133354142360709197520541664299751591925879343652981645864561569730756134394615833657287242754619599831678957363269516781994439928019411358748908416802546800971811912401582166186553736541292695841813026972343786263396048530128196154008548423338684066111546447082879119368320345382831104360916499378495715339130318063361744791819596996537584014925338361682248022200900170618874418045589607004126548143259982893889676977144928338215813244396742192121292354239662912410348293240120511393122487286258418928201650635949731680250607987446870483247030554598658387194004180076235195115930374156769595199858386631753481177411597534460943104628486967066436739096615479436661210118247226361631390236307772814193134348658139245276907930221154401252163798933045536759249868288391893967815081697412732936807741429271147269908881565034647875351218099785517602423873478203654031096468479237756939530569409293773418710684077452266833022990793658224940144491595109443431027000071976703825517660287933899051112776169259418754271972035575257661734130567508251021192997303873611693868926746910014548838059625278203562841452167632279078052840234298323691062479420601557374410027212735687336045032902667970379746190680793051288523385784462485364673909127702487153260170205415579596189175192633682364005863265649656785865269362039348441265131791012310222967068371844520614308549684304351272800294305252271800058455327509188747998869675766987884159732523837949128287998613621252254512403761087029718618659943664124254476929371986851589995298281084428639783530861562578796015819960820030074613751193704104442683451976974271056998277446575475423700052911738068815689883396577837815333698690447171769237111077895201761210146409080680110037449119976087673073932357867265516524884794766628066689589285692745433880637609190378932373207548577909825196772022412766291572410912364470361085919967238409388415216335876568955738211141199550510458614593548899678104341892270863365887711320344037884993632242371449827830706497041580716195268685232548766021656360294577721702655658983401576155217675822539477039379532707693154330818032650981234970182128436419300184886167660617803788155945858716144524854889206235104427224731991362459278969730484530666725051703923714793873166430934152549698391790977912693957900684414709123683035200643757626242241344881887147045799486214672422918192838476513504584926448367719606827992143257088983585424963181972152014947079744780498064111183938301062437791447507783658263458942951771981202329632573682993557716987092318054474479664352654794716557393195119712711265379944993568398802003352982023860985010401240687722184183781046738461160601722660369157542583323157295932953837274446421552796776683170437248689549388509602129061450662001577228618048031175869694523358701585752961094621106912941141970049937774113554194341647228415969326672742553900521184655780368950997162217876831396055817955914219705971642247778262388032422420715509884100504780199849497784130764672386288065632167387072538914670045450522883399253288567109976094802022156384372753863043051157971846917980873050954764980124680413966895095543131636062001613725113055702746237221951180972678527520820397619487735151745857020158580022520250894290324418341001875982988555240998179593789510765730674585638902994160578124334787950205324320276425268335498711322765594504423859109172679657331430734097800870966345037142395817696552460513940903012415626988548070816487430957160125871357736990616232245569146008353218570810440544421328602918167815832075879017590749257912390080489757054796026592943610060829756727581059730494186194321313344971391008529697993483516487543873719209577306925216195044378110366212635258422096384809226978047692355664539131027652573788107759622315453577596965073762105184504232588551213987619679921913195651399353983798484449617182225396219811261117744015935913368412036693056522651612883820761844132486204809597443351506117063901117910729734303790465649855082332358144675831138847679220360497906140580394762397828196161549713922205332988131509587818504358246174707313362885500586285949015502912792528693006411743589562526998068994212204007165326903896965689708509723188147711028078317372460915040862505974763662649678421732231456356448547560884816525544471639919356759785627602840906533416020544480469263345454609050283617613406379626597874392123408613122230348418774338258616977915255177744140228567598709131865680278177487659073511308460431857455599058777983564760822734407269908001846922071361347150380957332835547850064842509556075915653691775295535756062599160966017773324405589660061039769508735721212836791383473826363000287321940959631247741918981218266892770094311843280846069179237515774543773175310459661314392138560647343596287179365283896561135272267346217138993595732714193498704756626550817172609827475980393183818427798246682279304666142715149161428287806786421936368697740429319617697331081364513323755167781893427201317809036306321675133536293487017420990609391676887981092498546690156464154249089018034123416347949805786927224418121947677512682893332384834264359051365403654854331172211332749509102277136516987302821580116219849414337406392005107210045059316693246626950648382494755358503965170235178152772876895303519643431819750197393674837240547071718272284133413625427810734028719508247405266667601157131784777449599458849203346449572608159867160311646819726858558007792236518496874125302086431148997883992382915097770459074213432044379572949995082110718928216836232976349744810430757436036294828952253788786295377569640565688616920631369357339532165260450564828450021134793945758890020722229199288525932981702577630069669955149880143933840277032705183014695000435896916803021087074407968025883289869268640672453409201138243688512042765276448134039245326609766423472370156967496095457351074728837408433090971939287180581362811908458228966995197610910283529183732587589656248279186044163966741568555307068742429929576235843832472507693855577441290945031412301249566571622560618942892005019544231745554853376752292363297017977491765096385718656174450872486290259884470934172501715295645143006932046828532337417293636374487632643931073513472322109021814321307429636643579716100629868098257578975375860651421427459636150287332648988956239758438625725281684678319211924524932446535559419581539502782641577854587705050848017237335655235783358852518137576197121898686693877890808831921809099291427921875337465582322102133803659722719921083398411742082946970489573685157737642891024697571950854815556391823619432493959588387336308303533552008344305703346404687096146656008650180834982693217906547042614807805846684875544557722850242026621184763772936217469709028806132428747449481488444379810047978179213397015428077469007552506999592949765635218078078265128986577094424867308615528880180643552626554926033412359643320084215512759183580584407738573200035301778092770575554327872694944043249585205386318347596274479972414354768923647866064382045098948379498057985708171646914340318828270583729721309009678647510411425573235889594031139230584291585855206096882498586535707453602268081352706769529517004693069288872989916758614490374211404823364759451497648265478837062653967516827659983164990579035254507332458133278069443199015690036011207079302853540503725636675599178057795933038153642126429204056226610710539507057772474167499552586866299992777859705350435148614892490728323537436229038488808656909297439142070989165106366067055017039156490824540658819943323326755704750074942723500398356515555717596315938076261335257411987331581525369234560010025168614268738824488576499022400849818167114902077825090491170769407905707414422831924143865576804484239675031805535873678231374039023844429668411035602029936597117171416767449808968620632001580843166530060261247080226886073999882062138971976104524409887729274797719907005110439914404535074507542330135266982901743648734194693184082791438144042671017170496046860926384996356161425219586696240393366439346108923133149651584578205996692661435528131096259485376714644641238705645578900962353153042940748620563551804701760991586087028050284383968334067718349491964278536674980775685862233459662116779848498118929528792659625618987745109101707972470465208359977582432925678322633003176507469241482853274075015060282200969140834002341967225078234484240714593644214238509214446654478034086636612718071439756990741256854754018798385010508424928592457648354871669673475831755753948432469375421998271198183114151655260316691751994870347481723601791032716364824443229508491597881745976465150130903842314691128331656078819544979358507035062049599933903962398591877749953249357532554443606577967715002847905338265607181098183816147376184192470599800670356743626206907713107219251976184905025117191047179460314710868545184477802012935018210946883024807506965352899685830838704211055137849134779531713132294855540410894323611146463730487304083086982024867602168979135752299544002798421270891603625380177165497245551644218751198003489333095854010285611541650362273015827739530935978854561836136369298152842388640340447531911743689655163139053227197781767631238415975272495188412741089509683819327787248220598204736721517117145630603550769279778703987576471254301315447830547363930600574750159136685828670571959555750822300229168273280535626038816902880955983204162984535977938043707452118543703473244614180724994487661414246548026834000673575746353666502941065020982778893105435980183523117656873520231694725896910984574870680348750986064304791994816857070729041411146845396456936063904987900710861934022441471201812374414215709393136842343588377430046574703615418162572935356657009326015414397608971637089508939998381480055847165912671752396748707892010691520255964198941038954807046679324678836521543771755537842235690116146178166261797583302829958080751211572715925738780508461581970003103848720664880997541259318352700982731583616009438319079713178895999904731447730490881119832359232712424174355912677551356349582588682728145746783795402723550314908460860586762707076910154038407380673739007602267379396720944232539261948326595762830686593768821763516638795412555600776124624198490587209536388742129262883770117380171442240164800239785182123675507804348768680404770671725502264708982022055833308626858712154186495373118052572125812877441108590748499149691156005292783291209802800949891623875939675014048451606566281566535863164939893312225624120967374657539098212421915208040184921885974632393648078237426680436423325059986206621219607340341853305842084548739665730036413359799535821428073293868441723455340729656694931929259229250773278033521467400100135588078544988849019072334249044831258328336959027516424852433684664262138619941933409623013524872040654285366230503799585339053151424707359438001227011884111604708832630197289757942950852158123062043695897131287211447815244673879873368731308838259856909735683487892991598565371800449397276932064218096509453985875543080074431299677663842239170757795452468277948956374675235757478594439833720901653674580127982320523629448364620656037807758114490079275933202488518713236115787822049593168381039587327599413857260638661183565215572137881809033575602095036965078219281205938913589103623085376855063380047198326895414674793146054856980464560625079551896831591148872012051893902139589695136014191819234855802830261112155169215959925364009895918563297143305573989065796172002120460466682320372937793747610755903922070328371252860353616546297644281760572539792739425952457189479133362128680434659208912653631712476598961652953073505893561716679490504802400765510117974604132236041429385226261339543608011533793046460879027586527965492067854991467053243472284860115878229234256239716888359350882231880081241503893077240394480920102943842678041659976749538161675946447991396349101370856407991212675379431610796797371130750129903529427065661224168882510196869380250568425580424628750031534866655246692709865959674862832220212480787629349163325027200602738766532960091687163037961498181906145771309976948160383151800066753139980687802876668253922224930486043347539018430109007769276110741982077039340939515701853502329613117019244097946579946574950124556126517459292093317573463920862498603498678154680717989295315347977033523190696039664331365302483731016515355115059409970938895106993031882030917290791216408976908675357172797389121867168594838493739849478555298476157724309581081321300279123723613785126810850975652330879709661756046677108521571609293850875787342993777405858331245896150019852107656854612081431280071709173066212065838435223687058205975885037338728132725588200279378300592167709623208027926808172617337937497606521583065814816686818308278207563766045158139879580582874652374883024203795158116323529846288116396453606661525121968513072954116851912638369683408858032499717687122630552628166701312943681036760462720375607929068556989288235430127252369706087509201982729502701284333119327276260121099550007832214189374895248973370012027624418802923866281876167246435663401237011043504815668595877255124790631701993111702720047648044729593675653254664390036096006206161193745628922000154912862117639348611278972703386842382055378980269907271693339971118248075745689084604226897816241933286126046935364431751624091320481870025808065027791093409744256763632328612699615570897248739226080256704564489574394916374324409069676611412873063197994162096968134617138342479809414400680788489554454824406341583370061872961980367548952906447265737680417048441925676882734008630121188308463279402901235172670975774736653153558133112044742972675127491941986809365492291472902393678780623195897732978307291580283742569585024705480345213178900072866683698200068791870091467269195987389549032986946983785183077452099861362637053772025403085983385664440469330818734967055293079808681742801523633066033465074473053169572439395492822160113477179396944374903197237194897297368805257760787463189397240483615080799271107208819811295415959858631116445059122926855036243884263411044700587170401181668684534312564740087178001361362887620672947192715786636224142201688819755515376736991025873890082061402914004860784474452322196953419086996097363262073704191718687728528753925536222473239351176877434256762729945400500632135991297086360095796974492136662101029517600085133380918292300242547709987447736730859848534666037278036752062948575675774325535088000219220205694347259610367076267013167882339728296546814990320789289934754786912787210589165565102282396362959828323003865787172074446541997181646749327270755024223657218708119264433978111313218977183886215295990877134145473901036890284785641900422579119049964989074152206792151825458444421943812878584975022773941683004364314227221156660668438281354682129372537971882128542372054520813670316255255177039701326237422690315493469015146754585322571948673034756899991517879786074958702245041716713759398352584270421976376151238569228538371417882572873300163865551569396946882809362774205699474723131883165941542203527601355390161691981585889928794274209689988505018445333244886773560294554871970682028375570993099086806032250473930792514957785205135054899415746854362796344403043012455913755166073025155349241103263025159174655713472512383038759565976746032988896673222513944249330689006089128253550468624568985537539889549604287205130230598122062837868940475947640404959098308569352940274985647222927380118865670697267001231147327003314069836368270463370897357474895524777367803037868393616359499437269560872479443972685424391818201459506133167434828083275652118856442307793098675951167713388420880290216175855740358196716872081561245914060086711348571517931162288448847677812984175474977453731785963284928485189801428968333385219228572873021844962650927953991182493619029798561318347607817969348243118850529315819309478703360086691545425590164812609273794085741339355592059233347833299362099833284676675915590411669448938541191706669060203555653126155720265074583028950426215737005086639245653894557143040124676462632351729475282592686977893408659777181333178641825325506987446788159971178522231656733294846887690760042740781790492003990467067339529233295586770504110878288138646376015881955946220199056400398311348460846426043659097916535022213897138953484650974954529314107901107112197517241276746399390596460953346724665724824011475877504946866811465303013121020572574975933311801379752901718875723934016577768007832686426788420700351718262808197163719818489523024877023617343697637148086105551850665448277226997556758926670021195883464940743019140101403708030000239950224205592524076321801031439025096051152537633275791483833762969639648269611969099861665027911725070189851298859506451741347483024653275035862693160171093928509682057158189402152767367826514433070904016467874196184964437632545781051787534250004053961819979519067762398602231691882860462462120779752369263728307596282250873112277055812773911648004002981361312847100210288374747049561460138228728630962556264453233920619690326905788211789146893767468639995685709025824763030457454216831880582009601897437895692573095225343274206484166931984568194026149279775182326770239685637951426158045534594515462468965663376125998201402633215379017276926503477862024311822524220054116455115755337118853880003528752875088656355544350203109649966194839839901400520030616551662323789337409428131655766414872771070011333110612224734103486091094860327002969680837021709863431549247161802305543054052869764739614209297909457344125088152705205188870642738579446970845256782327523128448252025625873147628785126310375965553479092084718120805422716860905347544438198040126463179327575256905598578260060048671436385081227458434660320978066869612581043672329956055923665982577351662042972530333198948748597975821026959863153728234014069891157853673358694558720060226290291079082687525959011318813683203240957184506868357998358579547368325489496762790671430613885264800916381867112213132798147135360339884518969176381203430654182275637472812995805505271507820973814154836973199283767357430240410632332345807128810412372968347994970309720969783789198878043327325113263246855363763832917096867654072884775287831886486202162796590807187529389355116940976655731273036046934764499480045980376405154433320532892047581623763876899726866545196749989688845988219001473675921502020956872141892013612811890642830644751787863714350162494743777211134636090244944987829818659535191412546203710131880962182236674629079733570771244610769969259887320604358162539233823970770760114729229184009095774911527199148085522624874340562897980969727942224372550275095734671776244782201892983017450840729278590212003567278134713815849646223272337133149817309296637941085376060287286302855181624649864055282941063532143719215795901393426221831406365792601939314906877950277388134986970041041791291246516308455917851175162541634143103263516654552993908863033632798312555241160824851589350951739190639831911070768777387816182236340049992936297876480205507652374466180376877236502595414882352510204450558989682063531082693333700439544447505957149241614056076320965269639655125503882590337781456921682219584765148902840714973407573400783030089517232307661130818710130231730489858454455353444863470118926767536616382912730812560902957886258406706600770021032683976346920608115189471090626248372276868533896881834149789960510224581304654497565996537442578209242553688830413676955246153693375127553873788534063921711259460604781869029450494788258904334060678817051337339140647249652731546008696074249153484554129491151899185359563700470565871268304622731731395880310192114994757277677238266227575565395678810984431357355221471677931214828527043329654552849836772850021102548194491811582879363162341900090865975129296763275703886799604979965397051617904238174076105553282232487217623602237328396631874689462173826501821300312482317103187724670039864733186592661394276354203107802992254829811725966124433394243879364437951040379045951229164400551573529134248228497285258272515486271908953153748249484901654218277224494919271084621884311543765979545173393013678688250619465976970288499634930182027564148288900012343825414773218397866597772703313927572709832042735693588181301713358060064752606034042382993091041424070627641882553890282234644833068442349834268051879601072427807837846714832371750988605076391343208964325494541368782182341080385166917465146341573768181269728846979405778926780463747831821692518777290228632486849046413748489111690892915992214423478998697586877908979111697481553691222216194015685742065986675678126761979318427476503957884212422444392091046704671472329219285052415341069472961173724568110539555072390844072341833935401935524121063857612987975461558095617480974469263125613997728086700928463080154869236995766133831689694552959740067172133296770656247071704954625192353463140407200288418993331264710244617565632146654050948258781860417247147085320076085323443653536666241684594731036414431355134125933989658265808098964831326774115967359592719279977070865040154623567117090187705565871851166870310639508378458362051663806142915589183877561901962296771600576594649139646755945253079863782197259863017968266188898747633688688558409081923015262485509320923415303911411489814245235820748914398525719156494284660713153831056550874560008586075629291398236036014507053514013876740441029467540707476287437217931989152930163218093839706462737417776950248265851447611814842843836785330372595631053707501585506076190540726119706822827990727149986243135535888240846243008558253913067248340976812352244393873971870012944335798533702804500724464336399576737952095727452221459398037542053638156368098598001081307131652273993863931963426981558818202261075825921874184859455222039719438444669801005242479766936700743255848074690195394461550773038385015427966694138694873463640194060110593064720874761546050862111771314143478080602309639246969383964454256316739541339546425052542886422089103492538910066035331459592097875496156270303666292057726534366266731964967900952422634864878405783788371250631235732387168258546412562879973698738929912075585123756660717133937560941562823626802018952535135565976523788114749554201106640611704551217510331613645015318288827403412778161794695932106223000087505356687469967293104350059616713304207839072109450146150203090961503570919466371434655543488686371144371257950123372821999165901389541393714208452109092226570144169225661195688584054373529729856464871935113307740638061750188809604314868867293938923587861619856098781765757200228467714916722824376544130540215255659640744595433270657709937826644308280903797055591860897794125361464296294131412321387547488042165550246992448806300888183846020983997311146915583021245402183109160282962994945576995324791695721202199596395155985943096961323047014826747490613654304728712384208975492892876915405700833132230907274321459016714606372285955382528854527939950928585426908306391747492016754300826060725751287565082220034215807617251720074415309969666737459091230620728543479391324139912591418159450571126153369377644560888956669065672328964770445728288844611778332404643870370215013935221427312665833376216835916596983380554534909719638836554149378186639567987449676785552334369179638344293837971055388339161731604672715773864289311837301708056915132492731736505496985813969350379859694793518506682326054349404582158660462783516110220528110360355252334802553669176552940876215467672904986567690766161627559358394679897903612724245150707588511790538016545480991646405486382309774940207206737791217607064783109339236970146227004939364718740570393140239608478279451288791539034291271549941534953889927356306362090260939169383475574349360498064020787007517355179579210003832100771520340902059736598169221785385629465957142502200536468416351294443453476962814651093462613302535939660023436428730416741046031304411352825974298082722775323022148141372117829947986074558975375212042250685149846740754159737955428146259946246446901175832522221957150643326426587217544674353416226943610468771461013423051968201281077199367211417525502616430176202555934379513680103976288620346205140840582543449614579946180650674879540885481755943183369140415740817002174645644228425991140980225318841337581594822410377215011021166806584405916078478945774815702869964948419834173548559243428826898049473427570229087501742829389556145404213539768509415406398236500664188391139104146806466437571076882400621367269743789375308180681964878670633403773167082795934264515079349634006204677017853443391073367334437651785707378146096345153786420047033436948577532899528582045162165829587933698170405929424916762552366415451014118464864319600146445797610182957920859815999929698433297230383721916848019630645289395911248199989473311068523347574862507948269736521997573974777230814059970432705493757311340174253129879826506596556058051667737123736350836037057003879958039781752666779270090387347477223126960273726241185184047625764342622593937605381837130400078834655510840898680742721708645560707608727973130343320243530392172758597664493248775962173519162560907472570777126566728248826454992087131502291038491049188914452687311868342335785497852867275534507301926564907761913898925211463142142787292407720672446834763985779838102227374944044378416387102437476855652326078175002873127632683670449034589010368509583859083451148267112159409092936389665831464523747509933307829272080918186490934671845020755980596015151056063645236639919365723221685303413139005507541775323677908781999714172514385032028928041823034591984978150811542714744031819734676530787447224374528839838817662418971580770885037088314393570646291303609485610975135467386676435241944888533986811781748549182266614606649505127152696908252036391005677270155254134580416431177729127606290191541992042916121362165544514204569721879480570225022199205552286082567081130706944671772507091523652227287264545628841369762226355422045931867501927326434620745115293076970921325365610696792137935181262268534563586502018952898907910803073367107761328744818281031112993212769777931406915537822876834358023351489412517914824176200036591901607058876999704909592415798615443959784962740429967246067011600040246627842169841798444624979435019925747952191420835761989081187295713039566361920203046599681117521015619642297965076959797477925990569627608423015689824702119887227917084305949419935564464349499055575112285529667613018290465884511956231654108408500593483902198086058405409711281533224077000084457926676609721896477414528105690180251692775248734517531761572334101567127763730094794610426799988076342188559031826680397067065795828596049273814709116114815808537179562080601434967113402636085621606790887830233495102303640679442745203427691262980769076865464445376525576540067231780996918336257037401314542477965415264348124193042142397946976038600414954776830342569686725627114572872543892290825439639446189539511997218150197880376974359462706008063536007313066566088752925272076727430728322025008426230142342950764812870782930043307183960792047115051936006977655923573117333103949595302834705720049691951555261885654110446689564568329154267575925241137591130277009401375490540957347566175488800715361848047004019183249774145188580333460139668683970333433405202183646793463143905365050057841418286521539616096276253682484470273091165978686541052418383665393819206746527813520311197131020827527949476268684088411577451361420726908900114432356459073510224768644228572987666405660431797634805735099057025853590814919742700168678768830567385963619891244983242971291584784438104418602411373279807762595806544991887513971393725828593372443905206879090005520478230322710984123227843832751895291400180587884557800846131343296543590712762057378483877412375517899856833181250386658415439798994271235705569915839224612300976605731318872251321768792312271003153413481579278518346672736470792506493053401347898119484036887100041701470952090175165287966918255356662444913463025457647600404681200745183108091000169993002439341071477715480051101046477229963274525134044762351631541573854221909432266334137596939298769568715569021061378988409071486598413695760559534753810677350898826878515280699969745722899138679497585150640891015234679060333938189679873140496461171337382385891011718684247219191415933061865337699118945532019942214300541254319769540393168372595896767572527294047237776414037038085940242965750246887912670003153109660519513352593414178557905237688302885562526009424998574208712614446252359992835468325068530040851479402853078898750669522365477447218445122937152150134563546710795977300721841487126298604458541266002167423999528585132061067209832300014540787686758110693782613317403415802233445498078261069527237523556731533683762616598454474975803725816614057016208485613686331776545286904932707958741548747968421397731064167187262310344035466423354015542212526236697913317024802183120578127904559994879468556821941200522126640186777864968354959974496034771471522349144623194593562835512823061922024259243611646839074323803338493631181920199083112863882820165620737636429109310210285542483109691047106432439867937753195824633255647608736524634284364098127908258419278865295010903499986969382924941328531891968157748822421845465400500067998060024937377126457603851280055811875826509389407705948351387840521600341041641968793673293219300931774946658331249491435208660838117837041717011451064647426914392008388006380805633376045770733206770816871947797110777583361528022547097619533714807583857265961589213130013935414553340476634070665151827219255151466579591847605217320016193986970812808589060954267429836744444126280066576126502038618441547078987815392455903508455740797159266674637503835139080586005187596292968284932947819451298109282143874519429794806153220562010686297895460375302740823134441456795926120836419407984146253034677246454460999644324934886295544998054717108534187032402090627740558261615258522953208000057665590417487207169287150142861221944094305181513537967493505641628973399371141433584168198680006004864455127771429280643893889077765692417602051332865185349328029943400397793077242236611115199512977167016326909930993976913277097089641384946201548665272964629240778109827838610042111246091254374453745662241651067741900899185465753867548970634790995739770818923683164215189685268803611895106598987704441904842323576824149897196011810919046393436358425201024569500791113996164953458303329750863244862498844911758650850641792526908799598389977248022978087886680551219259117863038989165916844503915192024311800298135586914965008403303167440370068433420058055956086944327851141751449195280222202464459293924586206768060941650071835715918777883685529251335919215960619950261846583547716095559364428293173199800068196579802017577838054507549455272474236674634232551632586434996581234967663645111478474405674176045137503052684992740472032903603940149298006628767852509778436623948723884243052996290994009073241577998609212791995611385111579315571169482451166483836566884842562346832710614972872217036496481219008338661054976421173316475494936231716945083365071110341820471004461723017198552113099340891939841102966791718273576572819800895572044631769254299515363464595380661644604429798087288364735716349824933207977729337214907596465807126506429049471182430864694719668785724710617231258048192315283189293000185875157718738837963366555507858031429520940494180312629222530344621162444735579184061830528466140384328183372134906523952475485085756760717792882146551683373870693015519011215429840240120062749225936947155495402939885286693610101648258105065537698413174269291475470761896190773835144437090122141187704646190694280845168184743127546865471216916492011835227972424009199270341546646345297208613995561178556807910260953569553682466544644833583243435113469373454687906754942081101913441811037059552874807868472289611507682833905642772516564391869689884386689374030027945679168985521604424758649206420221063317403426740951696633234217852314241393876002452442090546996368426467911882220785828890027038288814389359024494632325192671501030882853567364510407551025829469848758117307606195253712741435869494608485022580008296582749928972971961197260443840168172659738134024270760417607480085453895805003523033853628881187080198290206828617711969161412243595130534054831484424911421587060115817402945323177353117744903747048722868728364990022316781108205535986539755384140517639087144933280433930247790279019768522875565843629533362871933621237654902854005914844918409918220786463720953067124630781845155108634761904653345445118723458923761027410570865172875015267561804420298838820276726505172202889048457481578977181779580151803738456913105330617786339603343062673304933295660530517024583583743038655112707816493559656079937382017384670342781548387126182140776938087452142774474327781041389432357801254920482557635909387348688997416877444451445385424860007129643032486602295933999468799853180990586638004986528488438825907167115669177155157229628300580237958858804080717436254595736954660533028327860161855357103001806935774805338870984871993595349367016032525128477135431304135769413801507703898915477882198946990135881019357360592473759357524220434251624037413748802380153661148646606873280099694739724785580574347554688743811296968495021042801879556656368399268800298368388581538604400891576033169709516253746252472491162393188330703251641908640075182983355085655965785511009382069110882137233232237245834077427753805584172728537130440354463933958719648747419084021650947079898054331947142274464329158136201645335394647149623562601824646182093189650809771275574932832405243650094385002306579058817837464119357361078829736759053535398228066403670738560653805859994070104201119161833245160908397430281809062265980084814824741935106147635289104126340634678222048541704003958355401047356355354851125665366826272110371987283959160473823191167958164659945312070835117265777371075672775592427458096980897628960099289773488403839845658073958366146171631905292085570835777353901401918000375800824824645507439992732150602106782352907951808896396640789145106817830394667546106565067602881774305627771220956915775004745661222895717636377185373788006442864506218368569246085144088425252567859903837078732039134069360477764058133522769180160794500791657510712089566687686432142086244363789702300685002150103035349514144619415527006569521347580639041746368492040264899189085416281783028781607669269693196694577674487116547578683633740228268659554448659059880225999034496122841935013733738882110199833551926465747070268191342633222024610144098114201786788022447023359377367696248794079330701241135159447145516476379407849362331272165438242634366837214218912860590348932491860634422541276357452787961938457758002352514102531639642255819247529389139973172979222741973466604158267862320497383584193817524505649948072503523222518669624336896985109755755589408729900071290900302832984026825013014946601651086290271190825949274077769548052849709547073309726919502061310422579161266898849737698507319746835732913560065063352410229522171857313238448644496261556446699671717158794987374996260451820938264663516608229898680304912679958073352064336967673351657825641469707883190160153797675616423236789791431108441293984526137593084339973370873479543446226760440463995326448681248032242654488823178095437468496261721879112930733741107534919128466528447563038972335223014204138747914082935193481595049866134968275200365392327063949534694221133115849737038728273332356208545854464275492694673141849490380746130621079801196631902674831483441906619255023748040825849439503689440786341296012638615209743471147094198069293421406711893115822811795506285487472219129173652857106181771835722168478044084806811685884651915883925160386523828069932717317652183191343883775919938863098389964242258294853990115039955172479788898551540639006772114713921488890632651787058945312229836413677866532623919945106484949388620449002313137041187787367526143772419708611655519482657925071062833706018576406002881647431743906940148211001351382486369697620851426975253973881274761290310851868076428449860731167084630036929236345878515909895486319995947330309540789385446476018567096119962227441101912842592296926018159142514681649049018812063743778673512901102257618348916143187080628726390754686466151913818114518897390678605650279394058963099570225208694174587596714598074940411125690413432559689716581992620932472313375119469219892121134409472199287887369893177719152313226738346547951359214464925969857593910486061517133517335486260900601866404557726989697118162652993457666466594013354519574898653235069687015604931226969455059539560176525775178176822518841962411598787571349832924600972580308108183609517883926825109946110468259455527770843707777819647360016939646233969705290290642178254222175834390840053066417213564841548401164670049446067726746581390028983681637369905996129994798835428698244133098040121232057132587425300193343007404823464559695864233384047254044233483452667525194227226010031309766694827329741351397474035847331593052462935108739942703909009439771039671268398039835553248704806493508582085540561833298350520374502294191544559611382616334568399800555835982061932791419758329836911299538301669631620984528763499425126209694676259561656471744504498495094881306694341256307779177101126203589912134250925579716743751698240975702202972261255311957357210190826791212835022232046068904343922517286460887262570793144972894481914635259968756721820646669926829203962373250144518147522020273124900648843422855636184578302702447727444447654767877447851670823840303662484319842729665662192834798413058044389725148346370904879206571027123789672932987630535701264299853385121052567015953832349022381973798751720064492756174852277895480075818455158012269262256971591406272747440766280607685894378385212135828525179602538634053124255990870071384037345075176266938928492605083830414350631747685267735540090458215156727409997977141131749487415872001168325886339542593774028564032916504788904677479126671920955905016756307660081619028682696661832681699967134584493524280789686291342645026404866872457020621650683449365870367725428031021030558700067592434805047292125511476166280658438000004017698822615823852713920182173574689303268088380633926422084616859007347619811444564322150575240663021687818019539861810174248113597508825750722863016452839416654435799415159755305527451495037014572102386389947347534363586236935063066606971861903833971285885767729616655564601429882759725269818604081612279438724297124258569470892598825852907785568060047669308474407837581774867083089835919545287331923569426957482571693772710588802660850911665050639760486292390719368190141632765965218985227157286592208419304668503746421252244926353592152696126570861725733425940403295239615274686603481549385309172011958779871055521829886318471330110955654754468552879735793854442318744016239076162509351687028309427706898729609248376323426075297652132472103100615711390273448252082383088016573999789821468569460229650081110180095189432519814219463855341903760754413799609733388889090865998538876242367179966315561767011909114506049143938571457535310119550360373503574609304279212013954741780861202657076524323596238144526868300591263193310529858047773691503399155800857286377985522853952842161959588845763216616109522604969718745640995847802020401958186610433408953272081727795048145971374105692080521003887260738499715935640516067897953381755815856035384414339928777811166445273391010007353003110745077205838531746207481318730466231680465115288837644795239818792507765336687530678854328981090972122571410666262146886541605649728490665609861590772527528680584925139327398309063501029707443304722182254663352789468663501590285553658651631763730642488227821331172470586667929705575783634265818065697846160709221888391478884188831547416486076184821233214515163869299156003270014875298005525261125433220008748428096301878195924467591507054480368233672784436774816811207342144662553375661419931744235792903230659886644127367539772984428580773292300994836852343891521172073553923330183990751460581781631611223193687353186011167119822213332573686733812933887223684014661358994641678501461465454906332874409120005828490506092796443218450814141160387863569041589894373379542693162523964690973238238742354697758695659266423959611625360343815568973163332530727508217217149794659515803410092123344171078549438675466711677377320178383529766323119454385196677600245666843054959174867624310209022679653793295436856987652124667474300618157031233037659425833423023828214315479695865248662976770589190219056519373729124866734440846443247163329908609933831020451820073003188754755514022183830921957051908146114641474699382014255333997479026641652477397597118135071888974632635754750788958220713611065202193877551774624132746236318589982599020235053009333958568893664372334756696747624135105327937109755876541288333837905735722974711904535862613428156798849146633888734554089727479456039496922955321576339846666239159552178959770148634960968564281411934361901383338629835755697452752219074460716709483730848623517347348564352881114234875270102277233613689615271405700788319465396716805695986976995077777163601738543927806653707251989682412618457191033965899624946973530318230072225883650159550290654794314382379921869451978387832740583489233399690720802259507345197966485615157288187231277207954706890236923124467492513855229403473354072401059453268515993675609640806042068107289729056233795863560035309986368480430160174369075530249515462606369891453440728334267271765727729110365039602675432526923500994029657740093601032473206404947103125123316300985303040918609988678548181136649829624520978499511411743350926709637021199894776539718489013752179451938287150640577670931766881801811540832517372266622987375660137406959095569713156321556786068396830862634861487587524883553484306372765322500863587309700795511852419517301689749149612841940734500579619403495204919277156049233954833440514428474522926773714328720458427390160011909145731865868392507505662509454305978530998571196908476733771772278096240846200485778167891046937510873600107587502904675702831287413628549074453973385593747553407574955284372819316339410134292885246341828678632967075218630484504902108725089706504672556301822252659552539744273569719810887722475829529856406861345290306519896060229199340160639779703460533452389795313809454406164960531733186404251721904731355462093783383222756008163922284483558291450714375331203608112884259987887945864926456955179231355924267302677751228990287124263275133916154932818813251332405147949657032603102268883611795427800306752835848301303965932933902966022691645421049658890984521150956684206911497678246272844797676839579171787950850944454962995272059508433146629201561288088311050155404087959461441981901268821629984133432360713755975084973448082847049236082912376331546345595114531114228583555925242026405509693214303800330468817876232229494371565972793984644949031955682476062091781726046981393398710998388955132621230991780204729384812686356513400379850295413311522712938728043045854959700421254362774086896813287187024178820972380203299067600565355146101644232309963773710550358881573239807985175040098123793035729541678602417738749852479273464800620078524935401563740731532848002349885125745854345153925407142398311295634553840852469968574639182759975800670950796804645421966475540498770899106315573658286753409212473563332449528858582788826425117237830992410724300061866312862110845240256835043528194534916291020918583660468003682675136607839094612150526381135617088093968308467838485219787137102681187581058474746933019058806134512967451466894051319190884781279336805386746022576502321807082547404330681503276618205094739701705464159188564478959257285081433790993040877340348334466051136631031585087398043701650152428298464570125774367230495031096851281807041732190268787085681981191255821462509798573935905378508463933448530925426723028906396098414674386559896613872224701970144211159171786895758314186438291404394364446161077874989571802661854907414084016000119811967491480293940528122154795163935004980596392050254595665975165353850662113282488272128897240725889317076684285838706264559455229357597052279013065590689162364948783282563747723568758278372666511456950054089668814115125651611174248184993539093372604585846956813161792135212703064651756198198976061834534768223113780103366765336332397618936305894050242003758497659765331769190572342447109617718356183019550286484090606226508257085158669727304072481494238350143915375084752761653639566982871764314980991659280942193214785842823451440880661951988126753371140287489933582126544346575734821026670190471920211308581275312407321184789040529847103389696712210586899564233390227976674848240056871317529133302838555982702546268659365759548802609665270551451358518034671748773524568690641801619729061958450658798789613592092474871969362958042852221594808145417899216576106373125283238430449779793490518339861815273495151599980023736759947728087059253404200219224451315913854557990784475630680326170494873454839278109273845352932172781329407329120744718960536168436727711610348680014541552188231933570966339667944837455590506980650229688346587656149880153100939318273605198498513957404971408981103305113631773819902614516920253721314456037630358363493351518011097223213131531151299887617141302427196045225779771241359596516896498797366498205616070829633813761297354956752024240223198731731113456580814300045482154940916809956934912625845498510557974888046857313236247704664442411443899190629065181357214966966114404359990358275757201497742652280112231675461158994815957728468822255486115171486601215500317534533325600990649438332019484974052829320816150075668406570443356700728716439788461844975185959435451368037790793146219831260374878979302902646225474350967225369426834623033569256385562267983362604135264277293637436041903217948215644161912759861646424524992475559196312531825929680046847162688823188694211899188993992571725176755280014731057582938495189216288933893847943547340394010554620931874889480866518240331839740531210477944456674159817358427619162654963820108573936962005529803061845002588496559243732938587379317222055256841025338859304612597306617627915847859539273845170315344764019888154303339115718587644696649286752020342282698117427590719247170840759376942111832022565052132362061752623724424479643410725253921818474822345127651511742819609298079482206355024313481861403895017172323577386600081092304658174440214536063774871020130576045945829079896820247264950964651716471242829167079610773547834393721301382367490219898279162920992296290837629456016837037609817142476978808379877804212303019687186103698822136432208900809066546925703214965623123214834821577712116540637717895133194654690107803853976964258898252787905820760331657462227482611264634862825671142196061934602733810621980614578582089597762154752831029211496001265622078551963981841103025962125589929956953436592205476463850045085228468774499617690011780495616701734230032067384700365473607741251062371609180595724542340352225597076143153872235053990748118504837259176753766371994899834852202015907106642429258548134349312293924470274071763787022296045276096419520825496775100672862049490458431740961885356082099742555087329688359748739837872550930498775522714354142119268861151140893316426023774041973199552733723174352992235659674505619835849963136491700145369286318799609791908808531524699069839600286846106089759408801323416947264584946048742075928643880047492602108092797048363435841819138450149259600859170915956225544724614045595045268685696051651960355929045994009311635571553541595567014207707437081048263828631520619584788562301210477420351586452850297227116966294508765648008223501444560583791999421608222305130122377185921739202871427529586855776599571566319419834257025953975487769276723292121258530637684287649386212855364150205439482099257424628687321572206073217385854596703332795042927247793547993115099909998434566791638604628385761455744406039855102276202145949468957082021791315493883057399431565620572084600521230624909315991166561030233347264233775656823044391231538551547006653138366379506033366947970191682474714640716543019785421539540860374725188479002852100336097416855311863576156276077803963403254322065619373713763110117266731852894618289137788238103051232081425601227118330460821508270335805245714014015424835285287292617303204328602793408944644564886872021909186456899461056065670570072156305477600978040375780957162993184903621566882574416421099266168648041224482108107780325994048934128301191643574303029497074223892332929031233006007790993635647842865011492616472506815384885833979128531281730408640532640789068255498495920662474405609646524004278813148995006814900711534587738528539675243830142239729668311850836899974861172112267185332799112774817357900960303295157523273289397465976891039792520551970552923864762670651704134136101400355430274625981677050290481387449065437273873083255760930172012473908215151304257884505737800404883920469719634110704740804654261253421714497185520073876958597236190500696562447895701027285129136702150919728319026127643243001428537197266443886066871220162357392514495455847936827294605022496605941970296040063344120722907851085300777054071829947999669170114373726405078348051320401721755262290083861779067073464960688018821584254287129299969528730619658472683027478040106223381670911338166544120458557540834140779877102567311747197430982727837051021381730053149817467796956595909105178306496693258667009076331679561470575052696617782617844727291089804310298152718083074950708209008323298541865792388578855287219715118572705054081241567276464207374595003525365441119347717722558258339104403786339970804871217545841420556331112459032330983813427577723537003320003372428488984687820223387229813274841305761202280354711505659091488391607258523650061448825819601825601066806805968621586612447102100248757779848236228126810494613294791621323184488373316484266694130163398638968830110070299949690938319470662685614250185750692494112980434268605606508111657910758368959353418956302859047957850913036392063405243699114573879874762946860774071198373431686346218219685221538943872057488257320932220280264536655402311630697584157972536462833520027432945376848047138372503854801736387263423210099280346978494086186630005202180716642955959309244972367702108678839409968647590851007875673461760440840885140567768340469844172652485451234260496108921868275988142388642400834799949856241548036519997131715473272929799106105977046239585146576490936126732742730061289817303853330573125185192004310315143975862571080086393974531353809296379418319304230751438489646854099619031051941249250342769361163910947888449061004009175207485822252614100712014005855800325286485544455464180066883614817267644586731622292761338229356160370889507316692894559477407772567306223115961720326200476825358087682971021788040952844476403562764812758142626135694904418005983069531255054256640946203232285733796235582235481528031244477428519241750154337907111620077889092881952916438997171509531978634148417203533614488946601026036833156674274473639611015757653268540719277584010188785794283871736644235495106096002123042666046934200539086544633776841783847167608591016035095159400199090729923028968039563128468487271905178152566814668967294315297156871402720599374963939473232858855998423807152212395321982617102652611404961001452422710476289959685616438114249800454891896255279543349288416140079171817473936262408204149149685849462015301081730191704758024802662225967189014178757550873025207816682312588159241357518922245421244012463850738874530720528065657966142243280340212107675320274260993735179927309623910277960082831303178137084870497094529462571965706475967960742668999781343275948958321125471578220811404027889770439405475618534519905731326835077542752515064064869300888978541053684994576022292418894735550704803477183901850209386195875504467474275018719701876765084405810275567085805364640228560433037553373438304316627484674683647754171443288957924038865861784754606653008757825668556731269681028939259387256010017245901500674091342585915666203188327723754930764345503701688240676721149914194315123156494590872286199163839894683055626377610129451845708659607306514340986997245050166664998153953402663962199256440759535422661639114697096601317059591863919735345575769283535649896636257884858114126262559458612306441738434118259915895820440055309111067047688045966276279941407125157280546596713733581852341491738994991147603024324857598560303068138787896170878285375755591916327336166979455007016783774024166969364887007199586435233081168292371511237168757037193841012384804320599413928784373919338364837236501081716324711637529646410183266286954051146721925283734495899484153190966894965236719336232604817655644256837751255209399088435925672718205997439378329530131909382130741077543569113760886965186323274303827028331759373656167665244489702556395162376111649819581406669020939223937351633084652516840376466712228275751546168826351689064317313948895575221736558911945943722175828103380615018170899827727716439009919951305018344791433339489988737750144921448143130390157131323434211528061871137679754668600241218257146309227645321251552772936437594473550533168909893677013604753023957338430470182525907358305792914447632942138399912659527808496341720410887044343601215547820175848026589159261735391822554361327722353169323314233834937643029274000416453390656752968722031824160678035067409160394593670668446818970725828540672719137412328836397306762611632375233882908130338604689595762689321618883902729478545288841620035398125294761032984174953778395309709781238159991264177584059453797354637717453797093372906896865634870930411856674360882361564091679272441711400852663179889375947274561890456495411668400209448372465140787716502394805236576327579328092866870033163185991443450612900987014773166679471260086039437140842667489122356419874587107745876505456026019756979859620208857896335497889517586164950084740564977648788061557252811326642221186372025401336861350095169693143628286501095313296977425656293020494977771689210100917335633591024178806356098737986013045091002519135431213949034809478932326875771097653846223564109153181639239363862429915684047152693802488893884693400391243338634361061208696687467979109835247044491903114071590467391066583405394756468800366501681670952521581731788362044806054182938310507093889557842983159257099300999841501091890647456249620218850783314665777529964203616025549582242958729907854700067395651007912165664188686920380858723830528531633404728638830359018811084032447743913696861125804952707289137579065284418020429309079912550459074996554618964257132742933575613482359849656763229106986245111633220456606538347862278628554125749372694728593444978495980050010010313305270403030569589758962847139769690658536619976758022388274945091799313554595305371347478679231451783935739723004924399305960087180936923732919678541474208743796164326400140628200776853093197577601818969234333175896630314021100004496585610734283647718610003993271130999313558977653433787194637794413599332772547396140715100964057553156519947977743259623040410453278162402260862866281431784475628400356211274916093568560676044914604102171850695898914393075695299556531862904107887011991047220965449633590624968493497121899168886574357288706932951828292723933870636237490516085007481101781971483910772039617585838923166639123387320615206773540522028722274264495078518576768182610257815040307505984980471909520371957871838959713304302231358751948594555858640359643237384375264097624466477499780804212807613389056212474733229141034453594597510422811712981035612983312475954345958567272385996430785628021603238722676954628216228927992734505498248444939867316033727103283177572845626102428089444367486526234514335882381863287717848976722865189094590854842603680508258170742719028462225891005611301489704830090320679326080820415105371511396479664253084292245493478065923792586862070457102007638746800892822932306152698185209881114202602420774718294827307439495272778751090782928296555553255439310646955769816253409347560745697294219550799517189292583209692746686298367639031432664604790671723655738608573820742009531620227481218676770154567728881628058540682695765168868183177537448126830176354129040595009878600069578493448603669593987004166252193664086558327174939894381768412764291726976450231248616056528182639861261675844710331087049702179417120197419543080347335776859125153765364614390705410620981063014486193979849892033087886555718595968282320311504152350508923037335345149987438911736078989532125921423431225198297116670840844426128162128129008268204677892610318447770523827461931804861159350859748472018219233698566261265664498121917963606676512537254599423799906332915027989485019203729116083194632223722718970534415730879886604317972300371998372802003516033335804857545369749656438371475161847734263249012996203853678166537087397898098023891262216128092142304038452924901158181884275882007746652704246443373007258231199291712025639871807703436546434764275937744914425282457607435212538891337608603223345119774445918038630385529987693603338831156315667721487073002794796855827461750182174768621569732677277433158649930622090486030422914073020615139236110240967922143552408108548042776667536005011851330492775751453160966486052378649666474589834557832008432843537730529561527394129475486135093518201184874027802910261777461231575759472760344078942257682479266521593870616292274542406091170087709745741806140312351221480801550209202356291121666255950626063678378005156692442473548164202202086301771688480148154344407156558545942002483057257739870887963739505144181166436966389618642971306177611967980000239886964461795512374472189003478384075365713524062762359463727386227900593942570726772543120369386755961653319461761653024858266264974785330605012011571342920013859597649824721621479562170714518403363891859015125662298165761026872154275841877134807069813419648995211258161680322179786365265158279758691535615482306125492566832926226025276936367170419713676061897209493685101964875766627653369371811540600574026027876394650107350399625613616665746064043124778469750664910465476386264784766076141955478210949129285926003658574629927788663719421341190758123268933586182741641480809031733470476081799475233388669987989495481402332777167297492084191196527024104101260385938517640685967093429003382013300401264810564849283558710317583905846449721720795198538985482066924294851400379997725191929356519225014028634870923708077322042128938004514100909791685832816552440979551514201356976400472197601518442295999408229390407505076580589092761055947606366171833604085870577989681455595760172130817090026896043191783424279116015281385691721129692028735535075164422693748397925739762582152829138284142824528095171271628475185355783869296908586784512584384382938046080190842669747888291542970799218767182120857834804104585444211417197356922005597453015499317910451794045504866912653501951448492247101777298859660928234364017581677587985820739175968376962922934697534669453252264201446960274221497622097084154467424783309946452974611431494918097202897297151780653248483425338451361301530687437884268647067431815694177556921196238934426460167650580141642639911840528968585415283821883255225057833294234491635391322819359039179681808752569891795908550566247400374230756431820673305515208766306049190596123579259525689903163990596431828752969244576113883976477067609380394011226372836127473498525440201342218735921045048588728986823377408828445368747441239257532143731808968725579242115106424481441488260732631125075239782078050727777788083504489936574130438031746573499853180698254855577157656636349693137597010948266994864428008188867611943827548451879359647805388212016172295392716353705959076307355509576079124866069569624240288300256938942987503353135100841302605983570780716678515636915138235798530459368694303171398838397280998714123558217952341454199404490729230732386173315131152467468588025284732649445696729033913403979192146477722178174244901186295602536015281126734385102659363551060813940261991839798228616421797029468080171427133499009248783958219413827039667410632965096643026898796784982956385099968597957950947313577711242905539237424346148155356132900678156099530279296002513037946938004854467670923609681710910548415969252328567197239267520953981940156018766426009977439944295062169863988132061853199216974753850875217979043411403086662868897645994026836658250123526330580669926611560179518652031076269603805209389543759644002870461160586312325679052817184821139747855448946237555517387808517288540142352385252992396476079752535937318431716258350342285982906922678613418467719073547776579647664129568754748253867925892431253623220181145822905275314250056463547073433876518351210609721478781123920881522368732205547092015833982482653025650394323474009415534689733897555019736916549118970113986243634903164460892876659866068739891673029805282336773136689032090417776794598851046229083525498739305762981374645216379327472935472353905819955077155802864873166794531162266933997882201913828288711470799374168010602352128800912212690609146900501395435551281903259956612782045529429531226080215415568049966819752344733359431582208630612664031306661520812250129632186656149966472166199990489285954281873705917016081240218876567875788573681022660938882190183570490318482836684957094350654208538157143543162735502557646792193199404142737084802010545790932312045139560883719583530798273811488609509778154123701563214325918583641496002705493395089001526940035470899782383620736619486964170331160791445040034932570725489928482560143966947303866332165367538107858025928547440412033620219125938506511810100405934599686450301624037520804202620529880305070591891495967034369494862816567648080678103891165348392374350908713536673573432764952920853861740384382151355955338386523783022629616142991531693003830125008905077500354468424655199633434625361628707855220347834997737822371055724072665055204817395192992860991698702484014555973432168994247762465402115947615507487697243819205454456722458980609455796657305748948127218960314167248731007997623283625876738462959222562957034065226044825338283721160246798580571341179428277471277979869323389192447673553336192900848906745547488557770548154277637130943652477567693773297704194512418565860689108627540198401789594986090883296128809550403667111533058911667167061927091877137309998233728961431548445212837358965599726664220083545325682684876820743757475737079472105415028618498097260608891040731401638715029674023178053399748913104316851425562240505898336842399456141804219024696081366083582346242751545947914763524423191337221226223369907666630342411782677130290158851459230920765814198382917622143626343776950242530695216167035363645789629036219732465097357825460990845788940616307724521687394856904501151275435948126760527243832150810184776937783479413912433667552195749881045897689585151102164157350933945239995416472226098225451387511590838285480560236302830616676207087742918682320566587498610374495531818910733556370963629518846293407011709539698022614804289325591946773399349343788434618252296281423751213613850435527006164516999785318854187309344975738840372584287374240630208657304548306918307936924734487656246942832572121072285978708803019654931143667165023930517285224754371812110998789526277931715592934703808351310678732884689839954886499429435659816341204442934698193578208361563211662800633295276797051640162239684613834834657054509342367595525845548228483395779465287567512108365915956346381969384498135137372374315083164137500341567965709357096040129920955024605075536554152543998904926197141899591258617558975038113178996357777686313249223899559781473095081771926645746805127159866999245826667054385565717952910964023617394145954725504372085071923476614025551221720344324889938836587072196595027212494313641383606737106183469853453678601781415686369777742028719621882476506665065034396798455965382711300633889108099092585373027181803366554357347862590504809960604758609825274305673688951296045566680615570283353567397382335144097245194240762535317981737992735163445942385798606546009879099505727294424258274097601046000188076081891307594440987558792085755079445335438315871096740066558809368395744451363763648404973819581057784867956151906785141220658055362081403231640317548670121063505148096409518095365219035703696926194004013857561728109313696581156979371270161753554547768465261053222207981759582001550633839092584452682162479166402178481408563820933185892743286379310308214434754402496493345842703780848735001083359544312729005702412559402851840049196034938580593316744258615389187542104616864856803868708028464118222956205134176180522157585782307313903113256226151870515561806320521634816545194377036054578254183819270401829646945354477296985238955190462913889214492814443555629733727962789762648249100060537061031063174397511819591452591084752166753616818462568515516127053267903189217455790134183157109099970099383460196855204046906738951129805583243585897487797885396844650864354519008280110437985936156507345138536103479684405556085908834462467863912737570223174708744858598476465068935488756494267278615984394988996684356071659973621572488311087891883290221895308983021875258518236460046042589382595146330149453773155778564847801884421217538874450921730682084493420066356076081716114991090654983409936685050225902767257295827331335511727273418235856281277924183818494693642373339055849235254108927517794110304271396199130767223384825155357094444154199474347860076628395654823780972342855831597046665109532428242606952702353506050780057486570681933878640288336755435051140671544859032234362649445199429678918542978255099461732042613375567918283620701559695308519862482159111381440509388441646413821912087125149521544681779826174830322385931592957070124958910030918216389806473059536351236585506859231242982333715579103590387871482855211529329145749980328137504407223003184184231305825663320629000592958628963638281894375350993755051428231093239651881395152846063621271890589842291549427062504853394635941484731819164494380551785179712808875813427344959508569032925232159803437958806178962954738893478096519317915596942545722807721097217880441315709100749990722218758154317831307239317169504233742637805420716986943723432085969070406591644266770702315565395559691066907881626267682836714154724536904220653713662204823167971052561277337914797818728097289480654890521631291820925036139422181865392215566327587485981695831305894494130671064256852776327394748905323047767437487402089112313077108313268037655083611985997747907123045246324533299869244071700860805624790837899917180539655174566149903307959710421418200775009222607720179870133801880712567464116186143434722765778072450452250084567982220488143318203782280518707033352440129200324412064988049612530806407416439327907691795855300075182519129438963884380500121564823264472935578053745624627889157945406074092245568149275542111876854086195793007828560633565959367032418796019307228520104955641378943045545127466493580433771073704844436462790998303573850104929899350434641433420749054454880955748105160530457390439220536530884828269333494883049197815594574731870919216089054060444946979083615365976025901622541397949321225436611862020218445462634819675642276617769661244349637212033109130487825257821875610458455392314671588707874080803146970228702597190506504834623721521582174899042290198460458376107654371994375076732189567220151859926263641726406196526856177815155917598781633313048516474457954590190417525156787718052172952926694489689556731175708591409262066867385953556858317759629504025130092094227032864020425565570951935258924367633787736925694210801524473408567041577443744707413826029777455783513824282862688858188354973502244924369179627310423661698587901814572513705089465985382425375520847927410286014035818775931525271112214936800223486140638592988743645332530759724275494074051569974676419796406588494753004711357888507885021140250891429558502917888207404750111958063032420831107864498460229574739704553338513479753097106976349732333197157809231159027621718233448426562002716983455124310943003770209260305884565512230609164726725484762706089449166408534200665760631675706713310606132500682086789273828102013273947491969849877999092007343992882184399442237848347491711596691494852183332250825149294068009059473690010291260754578945664963691471642808341682255644932900262710885167258997510541542639670214014869512097543947920456257196748626251936998657067085702728413521545576035691015871375412739825377640904650609478537443185542932395146152663499250870935470838625895987854777100385186608279226811775896859852108504006551680169770186355479541446888433585309784318432113108999759445141243050913812619604581094077102182944956577725920031790795585968793381478834813941511234393952452822026142017639130011002826253784225050920865758053489670357919209482297210357067940125126731975977088761194319815024701307195819246013130392960388430665008801324708461904421445878346593873471924718732787265995683139057413398026276096344767473160215015468420573733019432780455445263929781455927561299924048354089647713630983675578237584968677786462097445913549881868477277977289087430137535883098828957611436063998977029166885973485358323894402199828003664966121344676366508579785451521778544396816337234220417974019989481397911282637244323055374010001396700503671976796799093424174143651289509313523695788237544720097968371943667203163762404338051005851768877460137354646451390741561520703683275188094967240529392780035005376412251883723960846734405339893884232468605961699996589540675849904046060317394127577859101635544468292604048758461574920464584681445226394479055384096960317405309864669184843115541382601464481258418883587959157971812821151652106909648322161125704235563715474413084870271723477914083243533983202920135998225303987805004606991169609625619229569698144993884861151440819357856361087003396729346802111256588590378957388836452801718965816721527808932487781430762703177068643275137561504087148055632655057959053512551531932407495021274850707017475012239743860146100313965510994319320686237996781904965592797679434629330227629316020871825264760163793769131681383371988030952925440128148522640424694343029489683205876702506621417283430538083283156047228741525646775698366707775353517411369491527629262950460589027225668305350167718399933450982767835071442732526180402527693665689952066784947217923147484065382066045132086505374925803686059661468949458508608994717284263303500640685090438303127844739912658994671305967020986596366566639328513539782115573119603733526516004606223106769225012938737109788355625781121983548876186038984475434552316173665058331168310433246137315340620858157146826926479624454227562928742725493520928079381861091968467251538330654458700955792497230095701838712307298409915132979576852330538815009292823544814893759130557274136773659554205980650252996864603771747282758257505074509790414508162067396011450455342725050002565743007578580060337249021949266045080906238846878637947603285404947393649502423212724391004284661116587574214738406464387073897762404867155096123497385332900805698181220849926041801808786183094405541437488625336221154285642790622750269592852686985278660146388621731465606490320782298406533189015478136935682737370455109552094374408677195815787199007426460599004367103119976828452633757081395473806336999979779884743038988663005827106525147346531158031399854833936668311847229351411336557421221954682715822118230091575068387538762122636155518221182795683622166040252704315490034199935495068452582907164133602811311881902400632189699100258144996993693758006821753489678431621248237474352737376062839393267661071067871089773125063447047524484670299742556490970049392885618768592428397213775040404573353563306247258362068896501444660994079929798712337480211482275960646973306788511964686236627886437045656415684321901236013833741089023704193369314598978180118721929467884628528778793539263203725691841726877532719723007010937085243041021232748103338615251246727189657940856223192802375600262967510794791294886838316264417974898790332121364938807761378013787805076926215034286836593717136254681663998511088137385661648849860526258410729687738632299641585083497931245860141537159065468187166603401253093444810705831297972686266903077183362440666447808870160529273504509036153658298365470799631522824608757904676083838157094582338623560154851018562942636900020768778050911657694671053937899146763520899856759156207683219795144209529528241758001778032993566815401349201247733461711375796032896497878549607190773653676171096222542270296965661941530292547231064027650314462347828830130781230413568875755733302420647081757107809367029774233748839387304250986730550880399161444619364188672057782928587839442446627365299248655447604043217904373081509042873243496391420700342639761235974013144069912579193775461362653028600644669646921974996733471338475719734317886848121314613123540655556762830204663455728628906825535022346545756993780944630127583981703211749266395675238571880380793976778805838585196808928511090528509530271161494905140638327283588821045252883361020631581679134832884715039995280588592333881778466670453278623285565451454848411038208274329604888503921002371191497048905768132637177735337960768494207375155917942774854943138520420440794360142204470900492402215280256584991116062099693209224615546053072382099578438883487309321421817761535531511777814150839665878963768229580837738470303806682083079821379201968992642002344655811721896676808412141669938703805421507107430559116976743807666980128867478089670886044420285429323349823983997881584792892213762408277066381261226403692807475616241268836034931684546922435537132780302471552761482564834194334745129064552088844831512487658293018205447981228649924779740319523767116114736761206577582441055381570016239660319445138093636826432780402917657130499836786736550068130570639329996120868610480946024317037283198377777455795611790696479537024922531084553919192707298154204776382071577898218221114152752977054553732253792837128270511680993419076046923260416674820184926770343667475728583830633237365354922629635218514989648998073212749112260209284282617850524430240330157142048643897038253260992334395520003168632490659263426732793204896423560617984087939060655607950007232926121075989298273504183382597444310285050210940368788068877856544484791987046708426067560943744798474705119347505796893394585737378710911440486043998918629982856377696104851510736888534786963240665921560841560439485242222718717145468626061724355453177061654085814786979259379425424245940822062567879540102206001058914435981930620039230475889651889306434705470819076561070067120225520839049352404481541682997570185587149305235815788458337262535934458554181944040094840774987035910163020839532934735708164612052133777354875000447332551396648274199060783078931506267547179540283892410838714729194451439311060598092369662340126778053613729528144502961151378966530545749138398650777556122125218046713984214418028204386366363520563060082255201256606368802150066562252559507599319722062188761108671581720113795936495067509975911274655670294713311837601356963310755304258155537428696188234729215217287751304153239937669198185201195276897251085598994128322252715848597955496008292482869477798884437530021965379000614781909388176405752896622085341198546787079693075264358458785114510186987133797600936246851445206081965734106960051839856091384294827380726327073336605268640387970795314255652357837488970342279078273471732469985205645746243178868310030762466424178035314376553694965905260188163510174598293038317232325346183795904452962901142489768967091586489912104314214791474084055562520126657048795613550831340351544683643691617159672416134368065002122215350090026032364184755405020541709913340670420517905990896357781953361096596655152031165792298525409783332167499551390822209446994492156443631668109279251581918387825401859851831064263021827626487485036088809716143813780013831924618525921438928707868041491953418960680540008530924579646151596830941783289023763630404149041808072968998304485824509916021970954061183968355199444783293535755670805591646143284794277215515387652012309193422600660375123147383993481369245297579376952882520519047380977590751521145057318495957757369064516970651421740914516041588079818741547498725548029947958154619500624140552530771159447604714483497624124025368791200067391368093326784229508857185781040169123377154306432552191023275712687588338797838914565809499063271035502759022744098123473742467751093100092901820189329188728767330123463091108461724108864046323572120371177138392406735818406743727881151094006035351071728740984820207930348914750554232516174161350418063754788225938694107463505020322323487027672013061989688694131333649860941103431228369606097984061412267925821320913701431973466677862085422319289847566363568910910099596687053313026974296278885654452809939681531884529090933527808629059912130814795887496247434459639164749711098345991683938576594896067831736078047934835326442392639296040103299650573802486443338995084229839202842999653837975667911566321330694582169536514531636937250685873837815092066895598866759317550548541961008738179935316201595952843814859212622786693769739340225840520573006120318829699799196883818932734996681326354192915132834537592000016946119058212580221673604828367030446057029285638277848669389503068499395622106125579778773135106412980456290618621407571469268007584582819335932914235623478037437908696125944578532623964433531487169697898831929506616439679802803479968172515076258308967879556118009607948510668323492691231941584999485530231388305480048177965336151923574069664654578899533390264575678607747181242833652646610269204395116545112025402309826313680632475309983959829088754613558520349382841230561226351138031346672977046561079186451667545517684365025538097287941900761646829168078214357314569400680219892043798528271116408637682380030921863363698250497430275141118272547671881082909186124728115031413268217344012516669997036733327706169862153341182464445893659079439354726680419888295700097162391003423628936195852193244055829985853599567415338530490361479912624887105811810434795066763548286301483187815863656597635205642396707112580432727443307848300373081663781147625828105335054850355257227770122502444525342900231849135837894436406821714917671714231633446536498108881171118163432106565006067814374416971600578568842911973982737546272233470519122070919339440400262081794894630740040910651339591625689358790954554958035357875060756180468264657064340199722634205324137631560837897664440960749336075180559285665780506552687332446526596695129069414429768036653912310057048400987134076920350339319040105249548761400690904005564788611839532413363481779549119540835152040485800406934549783214590504932358639997393592174217774240530442680372253220376406281473469395132658178710027025241146906096792712095021379019077814107219865388323815638340484805482918631275217750531243355605277805356953080876668676275103874248161340121135545045323415915496268409319713807440043020127706495964997495212397861735965629777766928138441844264880785288229250371518280972985727527270160489575027877161901604779600132354054872012655848610382344086341450375613887936831262293378398988538644666038610036165513926974882519383456791919332674580823018931653833835949359958020612721049134487225021125578825849668375526252656513567416924360729177894109462815790153452111991851072547490765933196892907125054229451716098738270840123066683746799337470769949818018536787236069513582513254562698933207884783348973230639231297626875710549913928000821924998150492119871784310596326828575370138353547649568937351959597722404319050888668592404516832094876048094714785703946211407439557601559713022036251832111100574321827315940098956227991548272151261469004728825738736410874605816032718764608597484306676326934813515714195313139883418635955001540582925244182044008423298481175421613466491049824863312995553151431529578246472585716442723762729616774193050320577087874357878532797822918756903424796094560217055510252402014831912341543678531369412070165645525500717675971681363972163176593107254373962467745459782485469295333031684426428185650576902581920448626112560494226461269620639562063964327279294415776220909529937017635136099141502378381176582009018528706393833756551674634281841088247928847317227121124144337173303902331503626324439322251747220895469386482281713090899999302941296836772135892727133594696793839942231792339931211804168943512277412766434119404143753957117348010446235823357950088672861389090891843415543246282931598543775420671488323903659920337588243577987219088457626899248181918969145609430593826090773672064133832184400376621999862788241053164471766778821229601679814838285874708826474629608311577230906652673223743569185990483893349816719613332178199617941637899002935083585941961107071011515689955256578608140828766953061011692359694386745525483190839522349242424592023342183553214327601173321952160657033944364018812814805252994471464592661216336194357693396430529225724641996719389428482285854131386767517461869561558304087493152353316947517777246054432785005706313661216583193882838516825580247605538404215797399917291748046083916146361437851234829595120497764376658681641700868625854364859507764908135071650080004436132732661062068888140744858947647302259830046362593618845855692000396199417916101333426889319652772192456193448942221460951755001174299751603088313515874177418190197468912635383404448489537496418858573089811332101743425946154633847611831301629527228479973664260243993970431437204683736551298048039980354811602720435211153447496461771693095071347898992842442617586363386364161611789993337758083774755548314427948684050063847457628300647034245735459701892190149613456568743121304759944591663130769787316206561955636499958400138072838061372379197761287662286411005011766155884666667300149379217438061598745838393390244435396226852483728204127848278757951928731652817089698542861831597476349733615736221893330203495639836387494627153987631798407991563102409915876340342102790320494189478270792594453072716315931640457517324055692647327716344826316218329566143733395964957476806802769674678637952598810279989284598489407840749654947291160628103420364199842164640253463965136550202096487943576361112855834945684305544017161413382198381329529900392299478292993041868448699441434129268219141660321795348682386660652976699281853747328662158203252653234432304167261086845608209300583764916446023645201270035339598922415504186283825570075039316054770012491407031777741252146212206480189607573081401367497906552862243895886402392524934150876596671988352070248019030121154584093435455103331766948929848441825480107797811161759709236445312250931686426243829987969551576974376702019700524367243206367792525231534117229218402245113051283695544119477329442906910976810599815818373715470250951687899977410322210935456549651605545601822011846860631305596723818250920086713730703263916869729026869617403272056429508689822293847303913625145902899565916765090110272676980546736796098796957173938842068417263957790413635872663584178819398754360971521310361307690500820433758192904155251359393447089331867650177324736567689265669501273944595001012478684518589000973035537391927760681816622128721359134246867242430850381366721000540854779737412822417785879393111478545507768451541781721673112747813248248594329759023152540092484386619275257843129997966316495281565230010134141804793586657261407432129774766336405549236073412324515016635527519898767617051152651584425558299412246265269812742672912476772038339019353436160059856422227930396461286789135774438559660569723063639160569850128715338226057255699224763379710738948332703291426371190116866424475225380948007748308468659602027073586763741130055041774486883305886241626457476347227184508137199352225543024915394959424868074121509632263624497396418069508530184901526843184986368173742455434650810138362383740569624242238278435911602691958613529554159279198442466272835190570501685223457073171788151668233881509790365724617745176811194045284876007385619820412007357780137929905007536716912376093487220761095071104306639395641563216372342210778786699640511168850122282154263956573172756979852576641390956197434663851781826169618489266481425965231975804725815304799897281216621160297594854519977320959248110360708505268504990887787844480319568634020749600317951518258599846736629984243669967806410199353252270924194491011403860535775839299676483989324806047174824445015922350236801938835725531504425341783498678158609363365805346262593325623944951883204895179675255199628192553971674828629963412981650750801837094510492004407506202707458147470814604306415778153403496911005766697837968338681956709604917867215595018522908619064514563221967330287734328204000358394379767737076117107977211106953483669616524883310100586017281671012577041856525336739599842450565925326424850091395277797546115568289871351814676418435465431631925131182672662337165208335458163803446400752192265628480830923796743778572597192304787397191636631828478067762924538068028602471391465738443232206541654893578943122673496211063737397762483032901796040758581434367015358384280495133182000549524412266406798642590907221962095743634801885307088096549108361095252251449399771732403635873634474301463273652114923222484126300326862730178631324610252269523060973801643848576644640324269934979480454603332185794981847157768446061181551293933380737030272972597938681479967977878702173150292215143551925238434090944145594327552182497167633924535683781530876276403971888048253259449076630677220636303100562880665449614348826528977360266075496041232726533353837841363725580605546244824613416911508457536891716929782798768409314513889675067254110842586921047825278263906690559787954575056752231705061735330324534852397556609556370278086020810285419872500840272484773980360062952316213071486876790736431750663844447334820193931433207227751152949475884332433684483164253515982700436441170843666519430570843779221240234173063681605956203646229608037346308194670721422157846266749427349337062463072689079912849770216121729346508964607145519916966058333271096993352192381657721609003307950667990413138407455713100837446188082046183162444205714183078930796142361164265864742488885926727232403230249233565524473556491319569940085574294946729407524929693562076436961427031568003201877338205085149724927147529731848563178279007384391288685989175629786090170527331902409363681284366257899858279187870915488990750069121840638082180957220122479148992391155906230274802649124748173548826923258950718438282633284890384982953133598656288256488773007010864975734327178501702912683800158584270205664411178016278094810628492695220874414005620757406068921837132003273632745715667984467930921547965196013330049494449684554104755257013490335333956302453469342108989933960708752402302286395307024078007124646243722808177056469566460934787209007202422406677713373371797629142683194556795684593885476623841389331845125660542995667464326264764806622700021252003999918659187372000144544599581289318332336684798426560022436558979010394459550777343142608986059576266946103691333079445468473092763633828153381792567064202672104231844540135460031807098543795312940481794535389329323299983103899250952395498493465954912204210186723814244119804811630783760304950048020496007396086985795588393257896528345196265723642476529155598221459491404129081129318800612105092822670955147982087142274908982939032951380093592395940551451903147648188354879326697660972082310835482570202270218468444670327361313405337777704974960332877458583561897550938734793090284196178141232735789491591963661717900711160373103396036887816999510198104533091584888797706312057465176304190710024520485083122437414531066202628406860249685637532158101654825357608161716278509242575265055281119588219132092171656455072207187318909828943370092858375384234662394555546722133024349678941881291097213454851450232634418517549775800915823846343387755881552411039845298726903512710533325809355315651669863116227269254995132492859693783995681178992116689494836895113735477737715633339496008801640259991180340531077330808311990488698202931561958764637329635164683693660902140517321052904925669510955686104791992243935204432130396964656371098913481044374941377893640064474888929018370310842021956086726699000363152953571639077662793478217616450198904538415974172270791976394405472510726583475928748968651533252143777030661614521342258339165323526544844066611661282609088518633255938034632494583788070052806322560427364046781257121308648637770861726254457684052577473200279304487284784747211855694546204239857725168472752541316386223506780946349917736066204977057597019048923319989756860713700101703985744487092909924624231316895169395693372099423401349734437368218759801424299364910845899463763106689127355240172417707706695268618344148254739459566875958895288759000904899998346371723255797558602929623861819432601967488617829849267048686993123564963062104395788331974154611371078707930959042747241396543224389181313261069358575204904143451931772578105075722459633653061458371387374383531659849687893883548945445209899264626815739998966830259234773242882045803953011889932975021102973499526019896473943931037912431225325892700162499325224875554900415390220570047546274377337639875772594926205094282941899548320777142127390347592676940754850431352024028604010402121564386248406126241031067856043733125423295178038159575671179957972735003283694071116490512285002490019446666992253333616562771099141490113128826626482678205955820651403019589253501564008525264783464176036703530693367258419414204208515559989982156752882797321115103864636883951506157634099142869873828011658627699682736708445755023270910742967083513483761123121963570926848232626818962834515962150931245290960683798257467109202191575537382244082442266611912402526089454385369929191462599266908963650478144999535230369786506825939857164346335765156872391191172318376370533048232971274515349968812197906376236603249817810186850251622759898932096923647644859607423199195894607640938905988365779645642820877838466467129487066755503377225908911997475799984454947631841565792871646147397591343673391625893676599128183853547864702496418945409496856540040508394461540465224428459638461171834127383313631738982000178657850907325506942088412570249931085078502587682090274581055042430414888767485720854153576084347405778477368261703693071655890448615721806402168048702664436233746365360892308713996198326147391388343578852304513126927603879639905608006747557679636708310719362374932254641157410166442668152306751307645061884788940779693469322667373658009427609377251308469727465377691867408168820972809269019429108217182873923063653907474290968307503677739492091414291295308260855208318079865519284400230208717709934507646159739181064160382437425625726447216537733448712421599847053468133715107532235327441471201188234378087213186221470926115208752414077293096742327740070163151600245633814890563477391598398872508721109320178183525772235070449155857849118532289377132459157372905088274454143648461912950767168463426514581527915732742784348408106677925815613528585984076954698629793577486446040169703221955624091111774816127246559600682860089331967203163586285118843529079135154081148410274108730971499223093901125856366377850940048791077282535131362025403796060754557370198531467483149012817373032056884133177480642787267623393307059403102934328893319037660080580946773638938406260986153904779407535479485189476431281982793246790711095909734231739963633008247169750099076972961139330590841886195253662720870165025561228237864831298827856766619327173234349166220016597073200036579640134001749601953340470133448130684424571045330346486666529246441280886706799480939432958966252500310731669046297742580124392698695915679942056594031577361683645801172034448714686699712944275334083005788144264499768390429536490615894800950128093237199797414174558680746980914291293428552334077065385989692804777449722649876976155037510522884959552898839093841323065027522226559692192075310841047250876101345706098693246169718543989258379265300105472965733398281403024372437562749627017660798390154900253891102531872649789501653097946208825269168311381291749066800474118240538442254793653731546727514126164073752348108313216348580565623976017787974557436914387362420978064672081294149443885595785088506720200417423887025532249184146175686970601874637273280188264114314435953992971470342036159880481697366779417571462695232335723931811802685659623980925785953845133072218699659452783202812793923069764720963315993841704864583532847094984975486394830602462014673088682879734652603597715887728980326842449234732991235495100451974511929013777822139011012967586509788486034083497049194286231222098640557085171520693742112362237338078732836603934471091291933509129526003455707904933707961990282983235767777190532869266672492803746093852130902039144768770262058172053609084916194977416463913898289775344784697752533846937028167068277392417297555052636520065826181909631382516770965597656852579298753523816415452386292740960061736404019563123595801907427706739895084483768957682216271520194159276457289276217468426442923001262894897630523860693338886939218603491575966344581218260398685287835894018931283538522979235103767603751925133138083775009128850527026242665713782355910709901166997953249381077894252808833723116734419938578839089311827473338519118228207286123280879407382052834639439492074692512984441198946898056998296246107791354548569676087167872687733133212414555807809736011307638312686318760404707550608490018760409935630505767360314454987269046080232422667844312304604181061002797853383893858614855455048218589122874531231623901586587409329250761583252294634442550151724200022471132827137371425755188156816712438461798765116250995238078707942136375439423475902761810583939176445807287620372171020423315202960890322130265478510867082814835755295107381569034440795360617861958397587012102394226106608003137661716408205767095377120867583533125170303580759921443708130176932653173149770053817502177354360594270558821571320337563831388036306953319220357534640516661935777438267122726004976448305770250173951664799609261886474214558200945592929959478044571288571342631269675894048469912252601973076679626601156877681051311525579345187757316588705069495525444270675046540839210227501301124077599758660363089098678411840134311786170590627984405510331153593755715287394092144158257004222407175961043087214132861422305395123435854747971302194405615250209482251782840048487045358420521963376156297672404855985924428426076448801184142418339460506317956973089403832431472940022497265144958664418668321628368267412035320509936774936376734338100896683829878472250562686251842387538508833462161322281478934210182187410930229059379186905209582424605921542191860613078845832802042279758529936056938935045688857228052471004939868046361239881161099578814199779325565427393646985607689317430082435866491265224329551667794227879244374878425483068176039697231873526691542586049190868641379944740232301905211758190317163367304993644132537841660448461236394941245262533718001132177746994499424516064439628409325881708805290065152799494680269207855745839881596691258647569688626746214125841500599003747351016914438534534796567090804492086823411400731996150726997961547966819399767666438495427507928740387570045685833558896408491580425971911693523188891043577007217705288288625382514562194723501928019995523154260764859207067008633079329109907907244712785744368880405643982661375891316646865282333054106664167439661454108551249413314135577635607575265900218686497373832873670112436163955805566632703189372355847528951237090040003341856813283009783847272943193413590211084462593193548020838019802610809273293537153711709862455934470951490557105393169668459648515550983076358493407565548781182444199984800092775159188795283210362103377177124843991514381774820100031692166501426029123883329433971264426766082984207757571905247644938041282486562972902021985410687298802756227941102389813995173011605721726897220828467143004616875454697625092194375259751811095823808372967238402194721504063682724655645244817912837646526340104643891366212834110402025915130523691780584337612820262141365473768030125050360279801266999854201501864938230556935661470700457125849474665348739764588178670282521109796977323548514319113402190573086742655414749037518015297949676688581606457399075099817692214114233509564683777887371271640239836045672893690620192598414656170255850144292275917273213417021240125257895730429237680704955133792684762774492105566021486086460633886786744104588225723444189151517156423487705224948142352437746016264461888537700045118932245534695797357384989384314635005844361312631765935990225310184251724496568251441605737934390792301603034832895854328018449816555399074619327251467874692221591748471478873910423063543131239634525091465905227812309482173838514909003340550672357085538404883293230114608199282770490125914427261399335737308489400570627348507819682665382034941863649424622344069174697523166790494326052319278572634674702396193447058016850185523342401130266344085888184666509413218685514325165632931681201696252156229500437131717744245316192780303298888656560588123736895091124728139059721907273080783998783312304591694552422573478636801315490422791895117513549765569234758260962484611856758813269595550388474127442725908599713614895416916421235105703819909302450900466983166190465876214926380811353067093173266349200051517459160667767441359566260547965373704645027322139048751724349871812394235001964950938113387801515448053228531193780315656796869568161785658789989046229700013006327762426901496625032896612348034794182162010315320291145760170199551077512712706069085065820417392377363331860759676754239561665456420641631036293025577028269547019088921639405006731804677121973974829412463523092359839415636426236387264919457574747079686625171126194124577630560106848056485069408686915438002625678099203178879068186556099880466853738447107687064997897318356076027212276783291726730036160029623261325273841953542850481358303031892297620940891200953600090901573171510012631729551296604713654057964753763874676530490835088146272769784162952558071308597288610268224092951167064479765067275780279310425622753671299005002637489300295325594209147861280645289469612382307958518056604450228882770318775977017184006909145996575623042541569781673567916279895564903170304188394262655720529721625040947219738118004699866717052503414321127979726069775762003146440177824522628438376252760355805286481668585183028942863114579475011362659809696676190242096346473964471771818621726594708330329546274633971561354500048979211064910359809764916754126562295692952066958905361141045286984666776859984857865056244390448996600828877778624200675325050631495034147730794244719808356362147361959511874061090509674603957336344588887079504224904966487481336158618588408628469936993998844679904573330015826664167560267092631980651413983210941088559654700798229988274744334526572369700730868781989767172443732135597878176396588624439923693609620287084238558091803672303068940378685487307822695110825118211535183034014816900229597087907682327636890268516214549911530947057758987962910543870544130560749778513694636186626789832358667963323311323113345317990600412093563858700994323796150903639258479939972320098109203165547712461100385760827444572714276705613442429827537800119989351638702418045702210658263537257171805135972109432922167734910599483586960654795806616738967726450575030654998840942146109016755686189721965616408428198811627296218167744587757560666657057927121482968316849366883874499059581581705447556432263725478969888302005498461708830655094031912465567826178605911325893179625654532045983913068746703976245581181115526092708685524994835173606729929837737551564597763195059661631523336929562070912275471275573247298273259134335544468359609033586006017040743016579992432782874046387888846110129827922783381385230709401669749914081307602317934916635489058013242643913688145553727928545718613432484113218482235528281454645017497418320575861051506329412602135941558851949410587018772404025308831924475021582719962162727744865795209258670513485894450493758385230997555959738822569294443621722952742337226208003800655712476295318970930845415922392258630038614905510536100004929498396632663765226624342217914201778107083019113157610086682895605945980504077539700480292354512270981497889212616748122111480503076609795407172908450894135540795899431405519210741103664966338329232301016934353264875239267236479381435087928838238899850157645041430073509704473609338895708656326670606886952709877537057019904816290026806210135163938556287033714780886261857886786319414402252698934793188138625550817790162774233859931623202659800256082524500249232937244857901233009703156547454627280661031564650407682075999737197560928923783304879702863010087231000103143770667868433925205415208497209913843385863481883138477771194495231721590351400869706255794333429269083422958130351664065300663390542354066581785199542456835909285754748772291478402875929679494961896235339130829573796862547186826385133674648289438364437484744155385600200583696401118066516786962025283924295630144244196843694632572131141117906685145186862087191423503703134554476028879986372068488424785962379237169029215970032025660941458750786681532543075676092388366450299677496708511928970475693437949530920017804067830911530021480665531791400552437957343413205808486869082724926514374254670821198786787683537208342175342399521137373486654291111673910188449937443189504665358571672035468164520084926750302359730735709314627557246884995121030896211689555868329727035699166326594161852928750501132531503845819425304629351936556152928310481949172580668534249681249793282034125012030234353375006135995753335037734073653869735746916532006528564950318518676854875892014718586872072046387420973689222965878638963447823210020874652836015661762280154383230581559690780890627656676775143995525288088483191763150847139506414687987305574564471981852734274573766601662017430942797529542229365502522250079812929507446643179533997361960380897146316979586016189331105463261044407921942250759702212838585254368644630109966999693555177198525176045526527137590195418398604913116137875061935536690900807605030474903138511285416121751188556285177581741836379355226114869787717746452129848285085439074839224478128800029351531200450864990126616825423616233555565478718577763367943832222362144412289776728784175613781421028948094288230973014996985455792531985635638322455403415947574649470015902977347266046025903069828147456046063147610746778140168180456436307180050722268952101102777185346619686071311088058020611720957175729588502589947475673206990684831108646108504572894798754642038445809453863252878022649589690202891240356890623137800293164861644116586535695119885480582424626855708107333728893143508367546113014046379142349951526084160909376125531661262136817963342556312552791761995874730196439431843694839831149903417820107039755770193833737694109599483288935218631925594778173160022499524944927936062559893924030025990350099753814521766687460277411736787916088684616003902190503671423472973570452826504232034982200211565315924810323276495295684965168760614632750362106081462584664655512134521867822395642157584554313275373334912077636944293933960065341271679674516580438448903458566690718584496318821933103842613180831006483591517133367148785053856219597539512505105944144324555279826472893925332127516188555919754712299407187616902810134267541971585574107062244530390703499767869509039712299186128150662879991422672979287717570005140091996364451938925594986099793912963957597516746500327765741555847145530369400433978402009183219600785732715879626501438271716275676968410873670111528579386922647556470810158614637956225410135140923747345981351331087360942762958848916936368689399891829338079115871010831257420532789752553609625434089907217167485915706786528157648581286760092438820605235102766806946178849726792482989974639353112490899618777313999544049629109650554923921397273511075673481519241323892366913414730722214111845166122872500862471101450229085549763890868108846876593095135556993651172825099933904959693232427559402675738332938961996388521562299776589754077088266607502853867748019668853660686278824709405322140240290615926825738754536232511368892129357182775896326717072246366358125558300143939397667117971070611479178992010226044051104396027998987157362490241912309749152176061302164812573321738499418115685528858611013324874262431376748714352500937486971106662961461868572852583305733170455868755614908277506446249916314975761458552693997953699539305094817207318902506662008974526107050401980818402348861231324936656982937924196156548982659522317838602967363481418725067017097977962679053124048359110448735969657694985820770525225346404723765744999835351844319693887201074967609491198080021353633753360783079628599033743990059344970013698110543968948519306315571418998520296283809118515604087155309123961634571794636734130265266424589562618493976485651566018072325631457958005800892472855310411983894446008696526434184449955672082679671798886998386924015457946652925020590407037137628126339828599373113450781829962918823573822199457940652729643502120572012923155842887992035844978501598344207052224814043926568409902500061511210239714570455007798652120775928335857819722032855342452188050873775114629138965642536519548468320091755928452902894880401086820615833955876878805778930654065994816429405254956416797192842415275956160944613098280842811899442222974400856581906781022487292277307148238775818883777515339748796138997627335231296953392127109647107774986398021737119720823944550432923468046429293931804219297724469899653269284207814916399769579441694070810012154212529774397547549105365253561440909285959718249908889453712216178933520335023082013753786948013303535667265056958619921470506316056418711800827517557505575496568400494350186130879541865906900037272173147098517435613527996975571993787460379967348233098713700768866660577582012031833002378134345141367736053088230677380087320040539645204752535606378743338113629938640865145046150833655748399638229410586073720526401534453741274668700032418861974217624715924423683187488019644753999239532919388761551750051569099257481110149808354850879021970753234686680222017326943469250463245824240135205423284556977051403687003050468957743795268034341619923148063164952800870754063455510360568326274846561883068244893420223292106676336961865084655143052380286655476647118057928599212978723885722235227516444033794294601105897299699870905031503892500328434689629005567789409701927783246135179474512922243042088637662793720097227791987785167699335169093116487002052231184284478881065343300599137732643162398016460879299745106726624349745098744476755728969890549657543524503755197494576923031446632398793916819636317406776832883177564473916936810344766502149325795557280000858366999498818598168283735192818643544401914520058343656444573572170342731459102162632917292053089631807615110396208405538062358447217073329116790673865216477850980966886040107465666587166946754645787605023007145332306780969051669518646950557071285732734210575725649387978717458825402557285501349542856244224919596318931176246198749799997492242682935158556013728994716866990839930809837307777989169629108251850222094471024265147519834141877973260277900916046388994628159588835794646409295007540703310446745676773158934836534732352807912788697973527798911118809421523766899150620264660657166765020888292849517656960884643183488982685276615888445009385436219976111715216270635525874776032260408238594201451550585225660809245781151630631984386651039623011228569301532484265312470257688666911586808838483224671163955456349480357922417558559634561872882351223650622734041285203103247772953602255885701719713342274191683822262848970750369190389104142366834758226439581655450436339350958132436085536029933672701497788649344239497275369905884298264488904440056877211759792866623696961502418814867725361201287436745716941380328385386502198386571217693039593715107788668506952309550968883987148059462945653479491286700812689715810953836035244133876336352386242629036544171977380713364770166045097127142130435080846983754739342551715290825867311243114385149854441781247047295848002359374907429206638558613961044662681100164767193138268866811940462201973014162226069232377989345913098695721043803781219173592305281782154404796604114563216946967819832312046838308792513861642878667925435056818406809666101313290413062352396493044617895234806322098120499514548216739114063684168535254900654982611393545242406519763115856162328781201534258574061925912968102657728925386968509735770272297316447995702806778516719853044648413976946362108523542712934314255804350151868266291241768699246188070636517620373226944502885379739228107584048249169121429463722240430631724339200826119332112322487191973558481391360486706132260070235528785892605951613750223994581839985454853799622947677945855429551551460667357614015431010691804263290466564441866794918366865810830290740676771503904112400798347075653523690580142312089110871441158649672932949047632877510774563339646410985033837483907457960343077867253479330496636274528655663085336767248984104819503324098597189528835778106987903986169837676768942965895807934116135373321544416960180786188185477938010280447737122450719315980226609988200820871785814228865526928922039331157556980436853299313666733238448967802050742646878545576287560046218272537804259601816539991636087875627377841201973555497331856317053840229109171569528750816700537714528496537228197046307778815776334216686682037782741964244018678572056700418795720565456498681838994953751292290792869941522754267607296451678677957773541510749690901161004562645502137472157409328942147905237712574946970463569258768995151912076068482212313659142770987357972278133369166109932597399515127857182521612913792795655888147359779656816550759238339431303646416024679165934983978180972438756978393826450565024641106375315936053527195217561013281251393214930110492345602376177497402496997899984928241327335525218174467394374391675200701728233024280692201595986289218167301822229430548056896579236263814154506445289517753773415572883922068491135609585658106920583919157945025594049397542810779888988393560146913377395954605907287047838626182897076711921023558990307957960474373478859912399203203581192814917751204484830297328034978388726685704191905868188068621410826515708946236825594976173049704498281590569757901367951116453364119456492920863002642149573127938423757754263433136214943642788694282764397585651669111585927515053511250206722588910451499017889221887859419616596714637780487611173276050731863285698472846369959273526839252036915871732127526439078932370230379521321575934810927007434476412880507627962497201134300881337168261089181879723401211534585659318994969456723847817434504887898531624686023544018388612678123524648933358066207830500145393253949772223196018420136571216808445676789830405606260291967214197232998461358898127848349916133776889510180476761056941900865506055634134591547872880068136093639394879306053371514623496676326181252767251319025430273383411036976649490310120786521126288224861544797367657098746090487463580922155953940534348772197417576473391163658333968267692272876930930860091409390546694784345785506046582599599187270935277029490785202466617677857660815209166100769995645722147779955926370558770346440646726073463446932993233066313986280148990712680115376446382591326509400742071989286327785194421334474316517461066575526219362551420618511694417269016744920876935663969374319115805569144960524636913914060797106639401454963074225124909368298362654004984325715518361881309677984120026283016160400824396527454523743212078802526663931372187476864950556972913333330059053688968449443442699496126368633450280255390913864980673148581076452846235785807014909760608568009230061171315989923868056776749090226034436391187078123368135463912574714255041912403194836194297294064127328232071969043002858775256608842739126939887466188230504644482354103230000774606973764875374528720567764663523537889618423425193245458172796870215820739771578081783134489766013612710468300112984418283282831377346427324091142238662548284570441214148652262897084592922840497562039153603926578980604064542253440978685534287814010069989775749306030842861623125226739662210735878392185767534983338456619346597798006264409943515672304282207648334930578714002662276301419589330790330498768347958244471068331125566598966065509226312101615802460213953563157649450278633659236184906524804195000636198273445629185147086724563677147022953575784754386734233276466511039128034526489019824742258324497979680793901001036408640296108872023896729037061147606087108065669539954833976313863220122627806275677906069225793033102790489213737101965426440927056227311669030513389047227818481345749120810983456814823101544302321144931432951720062453754070251531003620296974725285127204063428026631933513951561023231104970833321371150648834120302815705831014936630146483835843289880359721854898672012759039972856870408428861403059305886790760023117563763579838872982828873850986961820956496707871495434594476891758288235238464305833032275002852717734748983555877217645215121366154281397799098364686199594208173300531527062294360686912781944917917823174805974165774535175687576265760407707581844292716585800628234796059265964229865555583539106290757742300153568705889271439697432126311345747233438035216355091536713855911270025193428995476198531824038419810184185997612253210907465356497781350280861602165609054971205539017989723976809792755105796989568545885105093903785720362717285407795643463084691697091250058782334615086421897004158114152342737312276124813651198732918964138558036450536330687493111745133805322878504466329119958812819201344060397791101523839273048288141709019860256350561932182831587148203623890601709655923511223171892227362500512974494568747746835745190284630903232266802190259540059043154394568377689115111462107979704537404128707513447514550888767707229039432034955315692756184088699863704615843306165019057001206527752428631278720041733901064516132930124054761441826451748210102865516899194082296978644881729647652025207710170967368247063350361299069592116894990786203102353067441125408497700551846278124025818395135962582658889440989561714164934436644173373468978792581107553476127784565820633721393557490664360516483080508181918723990217121543592769893650360049032828253851787394773327150565792242362211168518363849568952306834263954634086622937428595276015680375508486397606889620955056287016749446948390258209299160090426117429289111992570789769680551834462615598557688305802660664043360133002024768837821831252988251468167841183492103360508339989647373103655129773022684122509689844670919695157331942980326103033572930108340587503299139760900204946620551387168123816030737244469133184028440622730604132515741910055710958561239971342212440724327199407772208002315703038034450658141054685610772509998363686031171204310461088672691262988164020514029875079148185874170909347353975551088965162842662535201023531564639575316281438372792013912860701233047614751200243325411333946769914545511116249511254436975510586626400512168314597713583622005653090483008094129673462210676998975602319820767862818997275008578686760914267768895511837270557171648576410586486377034881867887154695905154093138068820117113884765913193121705645443569487975890596742224132797078799382516054888535649948433716343036546247720766557649567341767793014042196043675833165296523439836816773647628176897902654486539742538016020454436544615676192240266082611875106634816764054807420698463664800406816128603215288145555155294669005861572031225249400773562533598318686496656553174634462051711619144568150591709955684277280892238797525210346427739148308211835005416938351216230495322897327719505255607430637001106015083185577908641575782369426877393131678987620626280725626322642175552943243964950092132940094124309888985116781954013593827481966527713643155390321744771361280141174229873243371276238171725335307341884246740244351384058503412118819783121795246944040424073731177021684752731746280944419654690749854565046725760068562572211476343167741445530859732428038667395003972413127663225302245674728291211206071055136398672816757621628232251355565649786391454411627643944883549185729984481388987497549367785525686331824427751833975453899408876431383358289417250022657659674951114793918109982307864224744610403947046568154946537166858174333596681688230295324923068383261888473824986458673977244123816879993007470474803799934167113557033220961383082897513943235832685548093350001711518109686790249005759693813419321188040249980226946186622015147061223558027047495076033135109525022116550528952183632877105109029198933318003457972610349809115309053483098409421933699602877528857003704478865810112483671812899236318841120780171236624092880670359397210977098559607132307367987865388406057501510082596258402220502527750948927692680835536726412306077931377792007253757285836714242056862666897078076592719375071795833112912293710231098382857917588430454813304869767002571767022816081448687352308091102823834087160941948717780158377443058227934446398793817940962350173702826218731112482621200035836801148457567061682783067492881044827286409310599142843428563221108770153643509452277626779151693714052787015311920454510649572491762669776504334255767365854611098530949031293199857154868764177150279985747077564019330536948400331203358729178632987966556045928849694360384429506653763986947465465818699190289069128129071279028801102889670890920604034208678712876159329533990776544282817167734733685689281307668264148006023486663481140093295431899987680310322670125393572334385081906167062294463017952457722129791077834383011190106158169311763913609403613328853349800655692997761154811449902258980986187408846889000753436430745734649075740393801133223284736790526316752441061531294862490261149859800458674625906606941267881271956366815498846411809631226936693896237650931338232597004982389717369280206645536575281846306727443319169462013591643008542722931288810748694158205157267774942491695675174180452002637646219389431686051849393980990162481494665728173995667511936897595901544955529437508170837764466395092836660500197905415841703538206942856454271555375145357540387530980979951501648342411943184216095101427976028129965995442249790215433091901156613161640725669226613318844841739928176353639080025613054790596043477291351361731600870285500724285450972338434513748060076464894578925604938607601317401123397083669324459654195865415799872385557771707601856703156664905451744889524835417216815942753289502159346369084059897768749247107360726512473369317050717722127466695946427101868266490301667322911864410378519363799511778375917361999025393514072572608219377893572485786134561635556449073334036964289037395959638375074971445483823850314696446439848429963655963471978964298814912428130038323940619237886477282021494933181529317616021312211191257871440173951742047962639405063055497756954372757847771699511515428558067957685930338181823123431169693562214280869909108284138647992452972849779748240105117733514183770548499386811003322952895093251430792187100820083117059732735841471456066305225571496705577851458602211679117283228869565298990501048594306191840644689705813646729925372438612460011141178229521623932405269320258953647628460764303619398413990113466524582137697974557244168788074542754390822519246091838403533089776000172799676892546547866759922196612788297976622514353848625639783709902861328661537145283577862291036628607655836879236208377251215550864894795836458528314563381177442530226375365411279870526022396275665361559862631678804487847928198750505254473186341660507354159549222345320833915157711758623356400850139837275880293370666403514174161579956483010699116900245374635417954318676107227993441020069860891885379387169048766299193062703795023785850543975264450941181869256091713474051650505232241301033650238037548134668685980382565357188607441961897143631887574899161113423952128133324116982637412156370109432441670675270124052269852421900531111613087643430349893836935689397363161764089456115575915825836388663948095436787657114797674211413558650654136387193567702046505762544171997253095955528093751316058259174988141141307527775817233053095934580737256823506612613558691464248490432712346788838456097665162799102072228602806787082416563642136598646434083926010279395718952440975414847886412706105720597713820221381993406034714930448493749030072292742348268987856074284793607530971814335544418830917605919888495685216769249695368806765371407971937457092048635255973033431506101254849601168745072100294054618372674131859454304800559836000520158461762467995398297586475518773183515939632251760169851849638638740121261687444141440203287061363851539193335005871862809861622812120368167621438228156381319988063489914022475424574541882795327791062826241348818506566475390389860143265176022598188973164382833961724241452824030155145415891337845468780880059115278175054848888781735187217522402951453024705867071552266847097846489751743248314781775409097065483738776811398685094470639453957062110904502509221142394553176337400693315042775697999191730339620767825579788189439598792324734453089713601530396504728830194422703925871559897103011506007770942563378546691083644218410817517175335329234989321546116585265209665929562810112202389146937481055061190486283238192845999555168341761419769689003846847081107375284224203264231572079833949271735889125938892254363850824944238117464188323246079559909410487095324076304695417023683301369697696105626412163941068744457324541398834782447228699007762162936660012416877500870556111915825118567264038077576844625196798600522220213698841145983485911909501753055510613627129274600964643627240468010591440800726757152107444575666400894430320055960635860575011320407680166222249823123929322530351767671973574010908499199250089803675257355812473820270934949578242293582645730737324357222753455595716210979984769253126179010010358378566533402414088002584835465456456103509534799808562984758126104501532511071969749912292979221337236902884053467446873012849374131652130089229165856592977270997506228313503674454178585527568600939093336675511651070449266165839299965527490114889791890949012344987922310024614219945421711014230756546222293201280650553063721590470574017023828949469605859999657488177525351252100853426744730240514589185703746571870751480169958400920840364066483810231221634504760809505802019096343732065497789373662151778464769853467752124800571900538900207048937099846057807734045281908513334997789750071092907849564901818956620083046890111970666948772859620374801636874664313910642570702577211613583737371182767595636850639339690942466730151143066591654393128701888378112549958552305363104922748777113290600006778530718020086036600204410330136292829513681426702854534584617729726219913705693055474315692789278981547243271518029152236215118777891376742728455802871672222295313945150075388364299226866467551126647173657202613143494463178856558558698800333144562387564921147084424753569668815382193844241624518690342669258674042031624899278163311110133581131449352238593679670724165921241260085647553979704559984178497339610246599788120051862568607741413798231255992322567402424675392413379841769395261110242948633713673049532926903873303341431395763762910037138412013185499743753977880704364142947052466451635939318223828187691702191512741153263642152543255754032067077649144780108999111007154112454949426343152798688090847029333442615309927947659656194649691963770209385963114665926734557417475190620214409345911026809287594927199751497534280153150556939901346489635177438248095344800572246847851774234980965174371966068990372446893691374868651283463135965086721354256206312550359211545271819073754242699666417857252169759970271859309060929595581468772758606176433842546760208145879510318550089883217794382181249719634169120023302231288168042176300002919865858717812685738997690973736849548763356850859522985821706698069470486499338307025746764109784388052741325177160736956166530105561802511024762317293838494745213701617863290336143501854975275770606607055024768396541143787682480501255679718218859162743583978933535171728937450831044348158118638589811133255069743453952793101139335127026727593248147305461080886285267636715694524468806164802059653238183113457090495421793510822179701513984122227069062535696123897066899936003749755205284358884752536858198648882324413398461967487593415684250783453274094586964908577368452628515453994363686806913129007844264409748793355778933071349938357892099041450120369634040548295004291997465369004743431282724779869325493856467923975114707035293686303956856706691533882785282060459551755518742272431483859893780536879123861020946607127081625902160328790448639008032333786509225205614767438473118332293325229635754901078325922790644064429651553380287538231381146172125563448021598681738313343904818283781881870966604095813100780224654458457642517614316241041569874023904571850948820114860936843434047473318935804593814382416932159151693111661303852686231030729241517288448973706900797247940152294612882200280105548623714123974697111245038712650016361889377182742294093387804061075134482639278270326317456218547747770738812806998452998531123062296761524383864790864995913510559478074561840533891553881713718100164398454955901328791762937607219301769281473738697134287010652157746288816597513464072001725265175102516608514556625602676863865313334075251681066741067541228592585304129158461763412761974461374390510019897630042067669782009194008078908404305942382183057594002566178871038318269941307295180156906774274367378538185924210801038939062554959579716921823333997426524481482477304359958014622502572975873185895972614372722165321574443183829013065508461411216182928245456030054831501724577748288105550381527614854125746108582858159689795659004028433303141620596967515813193387041445442014523424005234583734683564092880595969359513317746279947228615330828656559661301766017074514529287611730411831863713025497478007286493923237362149946348616282395010132282672714367187667464502657921495706084882694765430161878949532759561399391069309316010258562428614224127217952614704148416013131599411197983806703465163455451825175994774465794393193752021246060281110880293053590683403431727288278748882565226821187663334981582856885553072247573040640722670487066164560867305612628671760862698752878906015901900742343399549299475661694125799458508475341509996978651433116787354490703068585547811854522550799097746797659792085949704690665792063921997742432855481576009197094804285160174566690026708010858852066215166877538678597191441377257598528377440887437862486791023529426816266022154975270614003927036987730489277142429714457723134917430909519183352504760787874578955290249072725670734638185013661591901195093202543928547964790836175870455612653118806484367935550575606627732859707993256880233587111058158515290622195663235078862887295546582305232139975252302188294633831001241931801912014768408154628667253305566666321818288271264648134988745027348513970296957156953218201183279815127390695263590378030166239456331086408459901208820375609133606391493685523320415963060451526067940571769087835966699333768553186050280929775203712701913434710073315356203848166459076305688306479407051964063406935089664074199615629849016625285682127950600258017299789423085127742518425133647781143322161630527271534671697727609219447198569803202025273783199639034439980710481024762470249778493555328622991619393222977902135017718006577623041788526653315453450758403969269588308767545891690167501519927257965320113500100338409715936121886823842064268602623295126877034996813513366920541602791451583731417928541843687957964635965419838336849728553465621393646663587439190027764096788067865581769270030516077011495207069443967677739964151767684785305336824833706500414523956881887781884559214026738359927808213664330670742595808414409071897493151030842742775888175368318262924091450997866797701000470761989531837654333918685820389472121767921642218988641367222899591453415369214955259532525029128512569566663607191998586646024749149783979990057810320935197583929920113294765557684732632044479003644441595962975007443587490179568101305975467380787310893781723648257130734467695336360168464564556545950592327519392821461920259365676005869214687312252765498483303342324879610247979966513037329537316874573915640558677922237722291148759705545920996388219492858989424297189694351181339542814834512828657860289264679441832470423944566374867212914756956670457662858233776303245657183196318458869559697288724294095753927832417978640648504343109237288884589939173950561664962242374142667114725734481906145245354490894881966085716473882954024073819752064884848049005178019358741058905031571148974623270391817533516259969944581650305184629660153393380679528968266738374978168049713163799349499339143472249199957639973401897370676264403099717051098386427255449303799715779318761157079111607722422609499656681738219321067361909259865410987104472913467047546858235957406634259654603275679933888313913702510888850633843626446582062903571133165634561360905528104193668354151987607029850753362057010077041776210728537375114445750709781059572408159574536661712788127218540475343309827316064365980789897791607239151835137801609203273086365172929606127719081567882986951968783459924347189394297927068371469311050403445663662020426295985120175842368843796533293080794075489090076984205770708272882042968990523089524964913847118643441336768947175264904690618568555848575543993171704661478382029571004692313136057015255736818534271067447151504821626929970980107338539264294374319926388121052950791251221889977572002142465074745400487866430276112152839275851229566896722005110015052649050832134081174544976774189205183352846438657129376588293109723948801141668556921567813303371483760718781973447365730707360489821490547976083942091091925337166706738830354516966595674961769491994052671438012538313801677958330763156196733326930085335549394889887923590969278490741395411706825134427042615109255658122727182101885135983910191707149944634838221636152691573026052018533879197087784300345231952693301665913881499434658157759431654188256608494539191500411188207003005305580346848416860373492996771573035489169599984308903538102525398178489109442460992547002319161850897799693021716571191359006163571382996596170979301617337040406966121007467538446829726623086936936993344984875919022355145954954742130905812532715957083617004203309499515945699501451428045882869257457793535657622431198796193218182507404674607722228951716643070369775538524384467141317551664549060076502793139546215585546639145005186018000848527374662359452929713173688714621706496614934168928230072781764485560537679730453001852180699550652512501192348283599037407312007378248247986099673371432631528150125502783277975184316223880301152127713186764804428249860299790947137911414593166424022841056558520926822299681828553650827008293201568347419990907405167767417033875328985150156069090218133164668908695528409487787362995385009106926706581602025850343574808783863397891505100313347860927867414011545489691850336275498786916176439695811348561382604227353669515780582421116287619255589548622548651201958033833554992855668000680709669523385840010540285965210844619670884278222686711222348427210463779961250019596111072792933939939535393044497121705672721230227257991861024039920399588133000355253008715519623494421180464862001724813425934799502355115558835630016365806820606596721548475775925017563848097199977486466179714738470592507163768136909372809536054218712234359710360147827216859443388543023144411182001966799334455305022026675239748230812364002598904800968680763355159301583506957928883720801680979898847014343273410106058127834351731450359296384717432958709302555998400521270749449337201932012296771746933140801823713438761709421244652707066641131179878374575421570995797679492829771481534973468344744851678545616714328575788186094508933168590501204659116824340578100818931545948063994281125836413510799729264186969191962145495974632622069938744057214385853804908420012179753535094877327573103993660582665812768951488195887998261840462225621716668028769461727860367612054865084698709948450214109267634278482541991325481078126521455726837772813956620223470067402615730261875607580624976620197995516113903349391185487329931741331936959928004935529117153262216614521283274126055419995601418141763801984638216579064732963549210365839745055286794474393095411008320984613267390851190822965869091363461746145183110720244239039372363618262403630670821507399828096975311005620128225711213000029512751836920140105184928849353597671904069387900759631968087311773624832217676461256504574746285642595686379103443059354416349197655163350364169004560802133130243152237774258691036273511159789380103380169365068573986781822060104952708854353583658521362606009136470391630560290564288151334823945459980173904452209311497976782094075267688535686354249343975432320526965983074533334898408625340890383725133821523026009383955453421224142376396617856548657851199373057253678792751404520316525007574178991126350426300611198247264309034888496589431343550502536325109461947544998364525573637210926746647999478612841530490675797214853679242607355934406127974219944921978130990407147894997140456671462499069720712929552119544361312694667247122936925884440008747454597222498215398847974924770516245336596680020690601984481096340089204102929643610388902158183661154586917906480215027344928406690149089118259777706361947538171256422746507601396273402819463884878517985668231300139372817611911455009712928758076035661332526062677304763747631018032967959673011718312848438824413432643910007876266162504665461659766112125056293039236379759185736252269088760023897657789654248340035151244323825514149182789437712041018628041636076464980678926975085006428969067569139718304166683182097249508975437826631089154521632053335380277656699482901801718539378906192763621357891104796540187051719364262805299467105564603230344531923079845352805866696707864893979274117158314678270238225464793942797886852484516396977297835915072256152627886862568713628493368298616522117490112713310178846012873398564250614415273311544128794597022305685402977777598593969920791265802342666160615245718150187122966771652074455326722624354773309568964677067011495142610742328064851083169115872201664154329065255368490222161504556500127254409606142688026870388565135502280536819654062400393737863549174145042064168921956153158450454053585579161813834624903297467005659359876376036076397848514491950979245425320621404277623595367586486832878777611267312548396587159670638204778942387299568063320171891140540992624844080225279480559914121840727382672340447231853689353932130106235437836198906689774830923918127381725496154646141499354698028736833909837080313474909808197712008014119986214629573716682731960963146937269539646376941565943653687362134154827228439737396977004361136137973576194003991030569963986161875426752915078984770580840466376523360157031383822053528820925426038767093272826925976643652032542865595525126755385066945165818106053677502748164026682669598236418674387618295205457169313384457773948427862079222832977421802579667045387524052221348776359251754569918835436561039486471016198305199304362907936271211919170657227662528059691468422533799095730595553063836010198857011489455100841966710638801775640816715929727719921995456647207214619165742708505451423607507677245892386361571370894663026504903209793970820920347460505129566111599280017072314057974873936923921325461311795326340893614215440829181082392533260998747478446607432832513363239010914048372415713275009431355400074777348574234592987168667617085005159499542293449377939429611249783009051205136684804707910189036357166269378703471358849308301548308344747084276116215124329821780817909030096622485612030342232958061339832138224602542925207956927397997910600033953262120428768071537696103604647220313874222477207858713711866942177185544361898544305816710819384205372663461436727687400841400090486082975386578921374457450166068347704402222352946435142248152980213648131157615535011905507522427355566096567767813835838470316427345546976083451144812454387810594327366795127567373243372138119681089280077121194542299638870093308528783837757230943587625865150107904893637266012516933509149590013824376072855976138336231266730784176651282952105257268080495152484680839879974396907946716948733904119926635213878473224012385955784837743177204104029673111437274986505724579791052009735348578619635437602523416763823057319543108743602890472309137632051640872560245646560249471903789553766388057581843987769893887617378794426923292211970930986139275448585091575732844250393382768528880670895605552678975547377520240102244439464174390831873394915945758521539699007096449362941999046632058777062525865736820508987328257302425766216301009315882580299577940130659558480615078596634000234200102289398320527866012121916226704540329297640121237731998708468317938456964454966198811946126404361053132022180757057530764959100207319938029254522818407569949143061820958884846256376577677375162934497436936509987280603766965958733624900672753431032387017085564556658772645210336039284215445718191415114061976150572227100771731079014374542903009740012731732979905223920166903605145002331729393234575319757717303730526191162657267900619637581443551938517168091871030756988269190894685020879054446875774612715460913990256461864571248503328494747853201257028306482704482390883748188296075435774418482162872141521220451088179957250017379569934784133355782091605149886853675914206302662814771955767989097187963565190882159352192055684018577841187224152128118747792913777481288755645877968222091928262010035703346488072981827195906904052894097187199355464488280727923292053371753016358117801506956487524608555077453041364873511955168066088480984115760610864432742875779732353147874024758301278812797142026356843450895435350793326001247675438472256904984241142100641191955275453997230829983371064103950447301605508907115894943732337859736097790037969572294177604061151455825513766500002218332017164096873604359359076680465228179117130152513778211553081810024210018202090615526440351425448236545976804249603447642926624763457386113213520908643891883218828888785684594072911441385014945973060275004817318360685631619700129624803972615374679177211481896759100311330899675261817849743342901236721591631753242232572567944406501740613596776896913301900753036576538603262610402482842107754865262648955135240677633805638096871575176126383791742765499427847274866169969960186546305771347359076498643897161370519722405521252104463088646707827468067813969871626532740070851159988013104567053220355578177258896991214565039621345984749345556745227631060004215026189025004434016295998726757261992911436857340338019838310995084226506882194297435449620891435408779571612774999697730204605872456599327835319705004133056215801394343557171016728292368264401976391207815320206843756862103678437653424933271730000059414726232578215242623879067474974990209699316064582925333667556585084249597691145119497600411859618067438454217342785589614281656693787849589442211838354683853368050623891001933381927299512550324272663183702472020620059963561255522860072959549239264398120369925854841882534722712365592301473145152848135414649364430934119248107726215861257099690325331743233871326454373683706758445386774803706086473327203711176223729709807187337744283887625305009339910455221272413984381956781277976356068694724766003426994228370558524389987748190510713296237552287320474162105096835908318475817148855472876454453589245448152860486581350415983883447786357267484940986058832059639346408612096870353073055508282538509878114820809795371933620342805894852538614921710955203150343146866096376257309151401057914703377570327413831421478978085636451940408176025740097179775236725075347960141294785044955696414584290209536003495460077300557816535095750753446855186153615392031174566392154155113148238754862576856477466619654827197121567856086056140956356673901797981531112551538192405942372168020778930215446071263820282855526365176286268590701022802591739622826435303941701776154160603475324273152071713136424665305344738487223263793266106441354790397684830547482365463385615279572434108394274150989697191785086006110552052786616864744449722017255328908529427940149816287597501130495121851187837002417934884711260661503560271727236642580227351492188242765971068349500148462715666420754026423582957880627794981443035012757133587691455127704705023668306690982257609562192000877327846976596817956479859680278086302700790480289375438970954028619421624616283857625997018744759873399984651152066021155662943112953417391037433517424952041464087719408763178249472749601389368155898872227260121667683489527215863302889647723209292221474794295555693772305715540903307313364238532546145897273929269997305956014023392201588328944689211106687507381534176078690200083497667216953251047815128616540963387198464358353474154371732384816136339272425391924796166106959422948238478968170186410880859621017493812714239162817485842526541443390888994697943203958656147479678091985140025412628650742656881978653797309563560494249784091291517139635190754273383472861160448176943926571294949667521589595618925295786861428859253850585501365105179991357404869550690386349383855060153242986392193359427942388660642520076860553107901596941897848042123792109840862554179888925632788458104527447339199503780526021791028070507594252286596895835225099594492271528432714099798778033368325372273598087586995108256760879633559882394754565345603202481680158668169179862496964279690710305588455962435023711664156167589245237192413594457501834208939614095095466386470966476396825904795930005132504075626774953383522247665751888637648179983607603574004904915945909387143727708443394655759210089299380050283355022669397437517125003562035954843213186469973212485161149774761534757320007646574233045381992833408592156125899120203129352930408792528002640060895418311814147335879749145742351256415343246429124958862065844524073821602351739053441003856834871712678418221267161903050768513393158803377248166393350419836653215712570262671344588841306524730715487000072546408187090202604685148346783540420256689633464971922469678292348498101203399704444195180276966573961623141678481561395513867362440581079384088844564752025730915212602402516437091522157956802913176512595656666013639127054535588643748456180246396656467122984780767914727853587333101338730833385582822755050505359690380727172074810289396809205002642492693217577933968965115730589589889562365530856303456001277194697441783681359438710925454255963516999932171663304114582277001018850166001968296696181614626631873529607731880629822951684648324546754487615693571919911646449209235225771153394122713503162503383129500075815931071776387020076750227998276545415792205234613143647969563257110097459648860673773129764165816849601372341469288479099469810642573589896779303727239111511303611246803114146907167220771338251889043128302570687353962834849209565644860895916469411474254121521153008978868197242414861831522465696564391881703510573745767303841813027626960488527197216300593559253878254313038876821566558631084761241220197776242407862598269396021997864259667192965498284013132987476111900467582070637229777384581341312558429605867384047549629844172907585623402792305383900799534420607302748959367018257555359875097666801166335876033782484710132130826064927888913022514532935076506238540246297555443990688486037665775797886871262247962280309034569786137470504485977063052343675764682090085927296589205575201632472194204780719185115906471722600358970694923917117602152920693840154872089313158646203058676402660652531513985851567442029111386772598519852407069749629877805853489001921406289812667809119981088956531412299553430840217539157394616332928490990116204073552570134072206884935773785043622476051302621985491054898903576992597375325339620953133983977631450116073230749106497181408604295993399877503647571388047707650594773396980457590269243201755065965174890926374715338368933397364068594061096591225477601918281484721830996714431478725513125138331467992538792402148174317919957808923723519552466119941056426774647163775637038765051346365875629765476853834722226942642021534480790652286268962373909358531707698667474113118888464104574988454382449163389536100013030181601696102799257916020521581666089042362277256316291137806243694754336169663038801482139522725635913962041020499105228877750792407771864242578390693251128332728567480332992135017334790564528001245018964183469821847398656817275341096241589118686011576667040369085128677951402189661400410335844238725958148403417082914669517425945297968766365243896371195350600264441050947815754664385081498769527658552478365290004470420765594355494485048635741286710531658831746660650847450746003944177561480214119376622123310503791199887322161293041588409053632059184497285012263906325257245519603926034412557007568883797437866713204718616803087840409684924520332012813255566432048891316583560891803164729546292607697959593562270442016607207097565044051136500362560108253975134134668864681585130745335181563802885339824337463857640909506724454924616945176239923510382757177506519330556792922889418148199264473699434645308797424694816701097779839297027869837423423269262743063756664174927411352529077137843987669371180834197558898599969921217613275728073093846276531127882985723103891534475052546990993168431384112994329279815915331131017214774461954590490283812045423131791546120569398310558445638698640843025374874423881079715754775946397142800104598625377728052405914506498545440345256479555368794932918517130419986929444627774929799085164551284658448753102646314264972507522996311052389276631013449330363851925567730562842587147951312443547691039104681870649561705750311077527974684413331770902005352278320279786586333916039139080112545619691630062064862829622054557965019762526008614369863711478221067365743613124312984533256476849092911760690177705368182930949915836905724283207451829706056354457560770032329539740430355675264681095510427889674158750237082300714731081422762589416931429956154630898016223815301663770724683758559594862612018022463624069538667242611150341227851842664124443116930188028664140120640297680084723556579183136422406725570823083894400494310469475955001035040341637921242701954573868451582633311154919020492188910335605634405216642444695946423034550421130721910498363662127883524933248301395033519779190631192576553786392723298535077599817593047459979962230476083836664806923916166441926666419522082402965029386889874950575639184611729758450039729926500280693979627121058384801991217059985164687553958727174814606228814753629890812302410321009863712418741227712948260869525338576763180862993326932512543020862125805721811717034124098322530747384026689047711742180485597904006875885940782453933514587231051939176453388050819816789153509310291410214989808841211739482810937615775397181615684019649501953141221315952370557383835791375163373540930790639234982863145957984409296612138201943617227113875278537616025111886493553178521401859602378324372738371826355051655835779100487720405684017895662064121546760875494692387723134980193829457352404794506137928034269065502939930748133210567343772480811697719565655882179938629196453952290669198951711365900578878083235004272257374298067605617529319221709718012099858689158138432461470464464439252655771117796554697491990750781410435984640864111188489473814222236465586361865706887861980785648387534930605081518333050917698397305792550010014998148099471648012170444774142193897417462163236177178584398766500698305672931990039380888580515128924347196022437632697523672896815534853329312156253708672962606769262977811581283120018861632355722512304443036050958525226766764002699671569899532636647601773963581923754906034328526860849002519352916644424211259137998561129783942235501586365641074321836158681576378520700569085645275490538324396209648824941834565565152273736842752377468541982820068961440011923708694022381459416015726408015270771704753544456029648773449143977662126276232585351297272595973506850386220958382297634577155758213335891074646983193256338672670346412126181132873890681654886997246610767043591904990344859758151820951805524302050058974362543441739415993092476221491826322831129125138289710279653430133011224162874341046418179691525434523092199953947742882915514174495004173236003163337805642755478300110095718317104855853514635691950524340066142653322396640908753773440269926608955800646095773355538912218769266284832877233902053974014458960996057592657601540104293818996491385630963135777514984082894050855195764679763925107218366266404607559389067984262584142780212145187655354979737101676991011099204907378939809719697880825509089127868797818196016583608031688011379867422152352652743132980363052685318018736459530606121295009864451174830733172120048065981772967833130336659774740861962601670077928464730331858326301044649725574848108786850757541614493531790666461696881113718785556684722496198726141730136156805478954164871722614980360537698859549497528023832381222800211970177138195915669149875990484024103614530122800330263348798649218081604513092057806218542357277907186530436987856103799105587146011489839409391549750269453338385556395002213960443557293298133436743204569439516207744635841161790971210554993666771656063124832147512627678254040188076004856486637431080072023871060454307756574626331774094415380501813212980208356761573511096260267077092885056137649389680635259680270381360547978929242084634171482322244672229164994631947626456963397163862283011566520887841771773637450033384099533261572240823303048304042172680455135875780982906202506604713400996209127509498425669651053510019644548388809274437878089681920208017715079725587918088138792017351212903973202702639595284041449967771677196855046447374120358258419215327122197327059265127879231129188417741082955280522524797492312067233294176898046548295491831433956889256464613933152525601826687749216084242002957180820858728888132323602329192923377726348174609875877338314397208724119832986977523628357708151562312130889452512830923432253359211252863205883697877980073061952817125587209161542942783663142479322694606088649206127667897974960666915294594815273489076547364166918485394916350188480307434445329320131793335022706530543756738615107200020676295285775423035031854606254497983823912464116523592574020784853959308688431085140420753458210590728234003346199045448165505379757172369284467862035302279339891790181650179811348321849968173907065366351493332331336978286298419669235185373231547164510821512274493946249385118627794000076878374588520017610044076039903222180744132116040704315381298883885465072561655635649480333323993833652531673762500447392921313242014506480586882241259291866502375323682959866313296558379637687562795203617503453404530318889317596381669360724975891684765219751778546535125299239712287093131886597333961367767546984533934734439235671821170909452195503747243285133823836573604361605470673136928059193810570351482907055306157754256538907468171788880077906891367030267136035336271667067694900990232073595198445514311140546398290003908056349379050257314758422526087448576853279962734065430703312452910849034410674685375691010226651361710979091459736212348712760706717445753193183035617815164959230797902416131293575194017258176527555550644799652839649534361655753537353720109736080865372166675923539804159860517682848559194206584928125092627584595637149625869320986413859161327434501112836327316838088572359545165438682739491565808543648985053262398690642332349588964823984596606156655787601892750344921229831205175965773150150897975071793549291557102294298460110437272835554131337003126426263055124886365467105024339939255636408402960284981412882815934808079037083355005324822497411005553408882481420736736061101499126026509231609185896796441380781972099645821701165907234309307044985941019242547028363062565644289621907025054419932019804295440589178886613197499330717716130280643157735468425155759363766413847768935278449480004822180657560194434426559055603657917624873825753230834703265384842888017681787423552481246142825767451218255798772708402170669860752064433679374921669891055241394716967256127351578125307780518312158448560622105804217408659604704868974783247054761176841702093665468021159791320742007419694965683835240725016009048179514118627534024511113876465711655315147131078508567462574897910230621954011432147454930981183585645102127990000169129641569726343672692201380439881796210667538398556916795306748033666931375259309727377467201221170026395608276622766678625856144540770722094886920669909430819139400058769368680475987567832797798280351807495908019902498201899589783363941173702860063514659304143136095650250135495777259926234408552543330102370328655246788737792791101006103736764983834653799720727438399744489977014946492720173526451204685912656313858872291087027085945784776561341348585739175312179805977151512375238675656222182822008541968471572580933602307125343284927382002824508696262734276673455640331220625459918716028523891704446902121009310342736442138202851690588331455906862857522986945359046388164483747298027530498354165255036992328490557235222139115149754014757350348317979365766368026648940970450757169932267081946814097456861826875644614701694970530677948810498346767688207380453127866177531687674205881401886851053178001193025383442113603337036554563481765246188547475820354804268657509470041432613058704699032272586668714003997439658713747729120095921759010669355053360254757243382915276265757721439079716591040144235055342226985430814975742388970734233845769872003706946898107125283938982406753879788619467621828018548503070292008228767892024647906806115374377405049520547776323223697387315835987546619025744945127988141103045368030097250237604803141442438356631817335687444631132678600649388755904944288156692263816412271236795723332990546066078483469870449516458862409853998494971513927222902909733523307140486391267920736973661701168172091769091354821825182112818786838358657708474145032951518244483752856237668965366846147793019587536628659095942281025941564937507075085016920754314496829402906926251377301652341704457676134585790834567986430274380680949126160463571790662091942294170281386702953857088458068116408978972190527496790171750204222850754809435456237703737181068771381031639642894352549400666031807978694143997379191085511554728224060423055475728805732472245257588839059078777678208959332344352250563927355785470436053777265745182105200897341260049715911409808277533971647460119139095453934423706901364711350142499952995205019790704596254817810285267333962124438914988217329548145062492237108751426275031256802225542675557415505775711753431145175908415841396648794966864851032783515231889190882390013229958811346091018049308089132679513898507608337367988495023608651348619425626340506516128443223682025347511613096044988166776999796077977886172054108390213242176615708056538276056494974149510803501046580987136718160293991453271213174568447686212763993443442768870283359350766065216610477150596417140617499508590868527348410941672572429863746571750459429336023568790894111922525201666997528313362844016065713941251953320880451388400634498886736261758857705179223501250366129473347499701234672568258733341933626045424851964623358294171049814908503424076982838167975651119662004508122420828968094480016888251477899140153443735080391253138175466883173115773386808526147679397514236110078363523329618200459648858817441594385542822994487984269217583428402477127563662440802574488989534037812315163785674744489598728997467884272264451184600397284284130554186953454869683478209377155486444422981195280175166589612739930687713486945845313645894023818492440540892929993831257981826887606690846576484125330050745886355614792383908281780718370160508842559172596579810004651853610771721680560283671760087761085754919632830975678555979789509883046889760570639748152166189729936957481604495256981372287771149993466368876266020244954901189102453873869531954782724175549872807214428090873177806665357697344323438303873032483863615221674415312375344849357459606529614356290776576822009705420468053232746108137501653731618182950216218550575876905195016375066947155312874355696611452261539977693154253784391922076047891672054041858789002087074713759095832732841882523544631739888950049640003311189059768549507726111435848118210236312652362385457928733690671393604566147208339567494402772275110340351451497811315573103441129369237920080896011484338282391443137764637790610733405402003659679436351775603251752437825973949879938899314991317534431719289005801386135349766201992347786787715714178507780395518962095078251216045186738203936972148990746706542012313265866534016477458546345227499416816664196511199131283710860634225962281802541819418207043965326759580714166102452634198692459883527939792776731178982282710991154080267381461850098194127394958538637839704138419523356348375817311976768214041248726559091384139400830869330067664188000305593034436029673365190490782219303622507607679524369204897916491383421370074530191655514002283014799118719889441647617024354833942234066829707050418439044989463394371485297015482500999739587166306791887049784529765959332915487538737705435259339954756617508437935236318328571662841353419049926045882128071818424128734978465464820617644969549580369385603342998461162478294490543454668518027500921198007151974492666120807936527313732547116247957411362503353302164135192719338675501241572400569411896349307226923942433465730545290392453226460138922329403958854798107918626407958397237858135658475842835030960314324642505145604039780711268531453996971388543330951115111209620718356752389798578108668508259749983165676476652656299305557770132254024520336459172399591070709952392714311568106924311590669354299482477006171937371395653811711974801411476291996924128197410638370501487802839640115046798377660390964355519911208214219674891468891534755878242746625344787390707112123081369796820010351387731871864762416607196606495145364257918297531951663401592129939794718122799880671220620474600643077199455297005452550598514300609430909274157076735473624825816250419398999837588188540388903908958157599536873314085786948563776329055757087665499822704003312936220377663074535157721490927947137968812188047138303531511435798795070598524216257331926178000135209943774998391982055308613429407038495546515773173358300906317923673901681166139780606079390055271080314665286704956106785407484063885821849792997827170012196141403970096208352529237270497777745806017417144470999215998897991632403549472269860555250648530315042730890873195933788121563453497195430156444795281137570206570436674386343733081605066809082206290653959518398415613945005181841910753444190834010825411075731255181198853703710178077362649077150776036919756937085803429584828360073573878298913359548551797967859452155221594196835577295467210666141941172424682320958590745061686128906550553282191096439470540946612898826086287406432990923417822039755934943450871098834388313419819117693244928894892330130387266634479399032712257804883402434835805146939015566240640360439127529592219792384884632593563774543526953052603424605489673690115798869748631602902419954546612389625897204731300728419359595755769397623679338245544855967541193240953281400304927588051007182757566119828496027176532107457711387295599960754187861391977516868077182834121486181656217641609380185717673276938352620085198270685764721519527674496497564009270721476163368448221029471258076910909307684215433017157188921275925319932597263747236436177990022310624245727384378245531365796584502234186252200880339398155260215226312589067207214699985791743646318322231363477051117940872674159779610921175822556318775328679318535607298734291718296963999298190534428038111963034676322008690955258490194978473289414304655105182747370469837042792961037677401342816880714735864894481812633411635017809394045706279480668877481834895685801091419585570644447750813100346317732648304423954260975318659068968031543035316853420910231616849867508387917606970400879384469235819474799240353679459982503103872802242448016807147831376930629719769855961042187227197047147268560082837360863100258245956330498230960087796581666178791527275361698567988745514748466952644103695738764520178769713514578471399759618911085754507199489834659363850940183091617137272095281092781864538285956949593492816131467929377699257139097914886109632968754433846444714915579112861283461255981495123316038658145574839436538978703852904187106471025912984941023574244442364594723631218826979436254727233029732189389970904710730009798368741841359064470614540378284963683200529702958977445097362558832551595601029807365931504137056535549888028296254665240412641419152089266482458374667700449936837043757463679252044144864019077441937039058882814614006442750132808957987004251494945582564139713692442792050175486780099392899869720724117772287813963652841007349843315546840654403114817507269332576763628935444715024488750029885529584110821402622080416457784413917027666709893139452273660160193227846664939945847397169890114275626011173030103587801399406143570218682153596489184823986203704935056144578665660447719874702768525700160230552123196530320589268179133071394214513419191947185986450396685062584585058502876805244291132720709485853863957139884952858056020624737626648902288358848056021829095147185590703555829542729760086986629606644580910584034318360156609033816883952726159695037286352572764587131228387871794609624512266663164871308738491272499733812578271911522471256502793129496117644183379529193908766114513389340684858343254583292829780546562094661455450967590730699064812546920435365815357097374180885351020863300598604410526693111751623849598922378327248349323450216929090083354925029091653052604324747238765616574659404094969190261952088043500505574599181857149574416494247297441504598612256637234134207188465713696933212550791770255017612166751576871238899845227159994955345694991548889106581219686441347786330149832968681102193288558463839057699835892425491785107782104254754078553368207831133812928186536715155051386094251161256377802675556378213839154584581850150314684034034863516983510178882374017955815663841909846279997905799078583019693957115611127934474394968978574417374328941505180827249745008967687918544451968769377076095815927503220401060582221309628972574772247760703620452806484727132545817087267663311584563073701049789391547171116084836674680223484772956496545359858284443156848441575460604165415727792365256684527941947768778038086745465803580419818999769308464325042447806290177141011386238977831433086166273321099143682025904426129280290498691578617427289037183709890106538455365695254608931038913730193893788928902822865366265163913585281220799055703105641659555045484099828657066126921002554516639511647677626413196508273024471369678397801447151750730231775267154542799566099349323663084027034128860257260090341704308894615084787194150243806376477609004135546868035258398557855563181301350673349161127773837072816517136650010567817777756252353799221893136559130346960999695802893184897671474432489535095685758539749624447736536983264757718149578704909577408832509296057592168071946532191448623292459869893925710033312217771186379115904250618263704998604574847066384384506306825330568350994336626148033562694691049354912079200231509286199539864241023440613774146073431100499904257867544699124504350721641502321286386356203418031048177693576156321439978876171706580963048504332241370784684563885872696406811430748350751558154670608256361062077518267136488692702283359451861317714840613044216718215993928837865760484608950505151869408851394060905968931568998264854899867754484056407085742590869440971685725363628015046607264442113613911004156966410409021058710708185859138459548647280050675955389218848961164864995130578887429903414428448798555074228591356484799340394007251206488132257723787875527987075299878730397285093997516059166223989380515120058865893255583419335330763820328003338343247719633877117880395225814415473055414001742233113927516332247730870371919455702251722450899572189825542816611477421352265568251872750687637425905770510231013689430025250469450467605551194904380664037208265269171869217924102430768374047320556409950208156554686940583068047214545070090980886815091966303836449799277231877005315961298522841452119231507825496293638821677898667792859151425188331395761514253637592095253727708577048019926650636749987556766621634027676019171638876735846477587525620297515217864521181498123418642165907742805722379135611427058281279417420007550831415177551992439648266772702768480044728261202712733996727587256635710771600248829973479352150586595391440718251048597672503834360892599193792726094136348638343257009916567434385288696004015380117270928589589059446829827457791887268505975994621997494822813208177562141687861393202692181397728031938353749069457079116533665823265573026876200456860793642902432765351995393826683358068650947090361132128914615054063733071678855634427699885100425074476916280938588777860050992787980432835359962748008680759547422776265510197368183553134176716490963009023031125271366578512369198315397638556241800333861916096752139462596518842165427372842102449630506459472065790289964701724297325053169138053471894546481809811629660212966867762236211618798388372579475920605754201773040917301594445610374677074822941063680794245630312369778176868254387477951447706664458403034788748657483548190258546546456211393111697036053425403232108005685562966089641553994800005744947025534073462036029595547995081954029243981618907898166599846557868580115719489425014413433644350056706799558152206176333635607353756653019507140098844232230379288843104229895037915497499598107009261812009499601097835784486157434083336618716573034398085128880058459675102831892489754262124031224161270857470920626979940256466382550503625809673767403928781178330303838478579083486932467044458189249637185833381032577845984078693528010016324687208572753095718375621162079975752298623231615789788592929393223885113765192680841127591393343669236582338125217413083576993283973959481757701809053149292203849702225622970383322748394577403592147089930033392506569432290210374577618862798824748935761012204476113844900622892005680493080591801924619598321292642846083757750806500380507908399276824456746680245601730775534550008582829801884481061755046079677258390174612954394493816980808248340814744277702882277608333031569741228972261281864396470204223494449744907437501236791875226414672065202678125713988041460350061815851345717881232013264901629166573010445036750878320030917883093085098539666577759706331448021846926174516620292335042753233032773288639311272601778397192128773778515945994264063023891000571538389290398964534309191847377703862893580488994543110773230743643080910031590475553989012252000331991109647527082071847459402462161844025343652663076092062255279091757669876348763654131640122886325591025180101906045668975789593880247122922728260448578912537637423213320126951335402467169710184895394634875347987369914087122051163717936786095162915645998791088506400645220405839552304510409582712335663960706972403372555877469756407028304585641659578312154393028399740937925340451417599409295101690909986555706485866175928299798185631112705779156545750198428584046711355789805232137997746995221405401229821830375607333360892993336858024524467651656289577701300062026146932104649902403524292743268743141670851892286071407860110561651111494747023165720560828116867088047787023212165485025063336981587481153033042073976808647998823944135853538450747476334280901137160117060904809059650152269522343977558776242531494708584141119047038170745204893146982319667318843097766991977291679309319368183911961394266686290039769508459954586279080749487347120761070163670628970178126924100068127741638059948631447605636098321695217978902356129036949429504392905544926725866797195320394205510284011347576179409776990539387838992210328762508620297806947568572135643764642331234274482883806405050009699374500286233438206769090510416908822542974909203171727157841585230469607769646426908315298136944069982974320135400782608968642983032475037972727278094653207617800624445532024144496369157990207471537273094477796160105584368183895876579193464355872413781725819235967749155011102206353637457826117617307767041226022874545647715742224345377803494170693822066841494945418284512818934975971229672689456332905470964543938489181959168799357575595617307333493095721965962453129308932261847879342526249781596265770645342066612779908474703041640811343828177817603411243063834146752979984654980522111076528119735941071051348500960093221439565123414016389481925380501505137423374496247056073999927083466327425257797940850621299556357263753911054509336445947147983389002653972746361803432596977446139529429536617673406739073853847008466435045900007470054091772611726292198010320341122441318388254210936607405090546962183474380287172215870159263784684232021614412344343573617551785659729136594547057975374586313598881096193533669785559410409568599420371965592066026415682170386446124655331851069071057816335930663351192657896189883290524302121333558073828417502403402623990410290728620051516307231696753023091623523933346140384881608552202040241408321127376934933773086830682669646146618071682555169446901740249315685901990836697489718473713867971284185319249711287744777804772670051912039208953974376584491321706155892425639660601566956703412485949649942700521985777940092219580284792069512820568517842281143733825067324469418075068991218304405372202937534916567090392129380792220818331570429308459914183132150117123677602892995689435106690447430301906720735785454532456862538308838596491704942418127661736460851556765981969576778703398277249843486228190082598138698536401129662235605081281731596096090604169184827859642954799672758895295582319583300425798464678463941922983533663786775283530867291416906889533104972003381903866529282837718502504424129095672158118289767400326764331512920031898101510312424499187925902928132318062358682311368033883173069624972432460760194073345600168222847544491491548507380326621814445869896741746408851496281971209122968628033637567348585048551575860806906658234989048032633951250601931052000638954783356143136632635777704301765153725067354090218039565630590776057346340416232065404282926194412930938056978359988452582210181686748699617796429869011285249163889576929928451167533633990621569128813949877017448120970785397353269188830123672316125329506116118117504426710953978813937535810043657535385106205250029274989802687312934549614699585852622987964788225721026817505354670201963830989847884580107704145627880040803500964059680257055584845930070014033372092164569327767156172945916394843704084274081128443527512229112887849578267534411578900475758369932362778015771059077647462534008799870942232462463158205920701082604864310273151527728639456026016154836690802286887024634921729686118447838833472171259311004196281745133296927206880225008339904011083083054319479186313492787574274295751947332394726912034201599229750162573773229778549770870916797348258888885186427856649683091606368977733720728841081316096010348218608022794790474609778285860759874481602251342615043409350817070004860508332874342262662878406653438200504966419030894390995052307342407417297799346245039944874700328865681016822365569150688601291298787251238038963344887829419327405846911571299158946299531666653859332101881210860230989241772236533589340186190246482567232355142765837706148934156995203552030161748711382773677899875030239700256651835702680514370233726987282640551617415163871606578074128573122531076491759523656335793087861343765627618573352299406193040134641250221200672328782574329722396879211688821568874180553936277530551709101025165111392103842003610390471380198554099478798930312665571593327373128590181431013539683369286359370469959371286139095422799290275493834620670010614705044719572881900482424146051741402481540897381644473079879103356673767882155758964264674821000349209586506703751331621860788127250219973712275596417389847230274630694605124941224446252545293726857261904585485723815360856136236093730704952642913244047020567395233061177884897327209988921626115815655403788851612985920702373424800412337832309492524755490091550678537307999173484617014710213108863160720876791946595548250040086834494597775711074784176108456145432383926248263833052792101175116164201573031937755088147800255962328169741709130375330584781048451366747418759389767259093320198574222065416085711207396164639288366116188088523191325998429055581964321754446058806840410814858519418763964870782518416574621005131432400556589918067694327922729942360847346118138269598355166915135709518432238789485171647234369389585139485759583125742948503002411481890255699301999011179748755472774874265812861021692418222064467522727479563652037462219574923582192788513195542825687840952400962699746725000184934508822864653121514118708588720961038736083488792629694027458604286199355821192428956120922616281420273585221887702156551993994399465728761774197763094346611812421824493849133750064059596416523058369239268755982172195820792117917543242565098940668873273301990946624981159197713654477878928565741059239669618272086637331780205479736502309682508416031046660299798826534206756700444102436163861751491072903343827165626217118169932193099010026603860703381165292857277198923242245111360934628469205948101865099974267683114245996088732834920766086336769484187168154831335651455159926370265872360534075575365095748186271284950838441225297900253140512583075106269049312175483824558068715310685042595751277989071845911025526890972306184815807992395130432373415896260522868090803494669708647940937798612290144527279202826336095543276368328961595816736032602243985019149871245326839581993958155758713410598212544268959975172331480574492177231196764233848052244047285896038395906695759729765888464434887244724328990465942765054073318801047265217785154133102772095431110834834151644530796749829811553187789579235805779750350709856393176173404164394119097849869782742410049619389499244505881058136198277085911873902827138616158874287141008487777203240259940164782648690480406471204747276138988152362414972058449849743802418347034187937476016325141236601808973760045024439902071701396643788122011527728459785237998126332023089150161650834079260716957304046001414073095415875213232621290435532042560563251688455084100207057426645507308079522083493348276858558708042457976881645528961357373121681997409607986114067768651970465173028363133187430414034745013980417173025426236936671828942472509080655816063882007470060234258314007705242242835480227632983964005652970223713668089075041289055622204272777812256057056802122492208436903458418744499071388028208789687056278024406972923076963890969076451939119753105764627590075280976551065380063218908549113107522902730286853005075895062959799139665539028093356639276801865322633085576436742348197162080466890376126889957792803574792508966085844037568173993169697064062888917527425167463822000747004505764098679018376973623697556673393212452506576077677685192667354688636315272937009084958079524546930890657196053675554259571022137062409700669183243532355195085543382925966158121285705035549533742013788951076751860692537520629731547945964408368187569173319609192241810275246304950121522443069576236411654229477676124780667738816922209250562746306742392092764922283408510001329802889803683957391933638307825429503423932259633830209536157081496594583000195414108490690095220074420672327717838314068456746108658597837682098267372988498195832110502772826289051280656301858078327524848410411706966392912778130819707449860374982424829936935475410679646222585312579659136168242383768298074541134187763270040916066241545372879436449560514620899049944039629961271641148304520418818507770467225818636079903948257564724113820045082917670099236422239427423829998879066338024120924964591829878277434469326259838258678864266173868765448893762428942935243519355049963859351101556661351047281083278612489571101400320948484173329828663551977014185782417854350606653908819840037841380154193443198707762603874180903788848796099068417996446085111159499166270045080959286301841740699774600790361298004001515862153047329189904792430234944132065681273256738828638375986707036496452622819179787274717952279030221059451425993280349754946684269478019492602940381606626183272379329637157108205813769748101942302233022590467955770798138182340506622683176815458684469484097847152064573522078642954054876152810831326282115123857125175468712339768369727465359599173134598976881366545400781603684385797254724220923827255274640147033299728314057689767956828338519800159673337005229396025730595452993698651932636527059476460517993016018496575940503452833631174856372717434414006032467580043987658964047422735758268812976796769753757839846715498707777252630502422219970704702626902763309316094838014710404672363967404113555782538564037600912231973665283354967321496535140946795009429961768608145545604383138008828367115175747552535475993562485123784794260484345445033215333684664927181261296147832886052664519558681695247687719246126029043069910934015134597089058014950490679949460798317281793606810733767517036374352953761300523472218292770685564213109295038125586681901020662146379036769473429110240550746973405378600130452267737508036276775510335071421249271684012929249327535665694406341515366542130817305693556292601627920190175590076803610262705969010550440582378269495751173935130381540765677160961872976815655287656756631312437491458951732334035567248417595116523572615916996343618091373258710952217267941058878933764913455418944417884521643673288933407012701817075972087305292971639282236612751191180355076740550565453340915610620397230755791851740427318863079494614527134890200063987363722650282642945543581275011656445648502223893856674384781794348590215709037441296719831446581060407135097012893383137932765810251691324590736207971502616691091628553810812907325806235744338013492964830199007478359366095330414176725462818046973035087109083128241613535967689074050111256420708975549293425167429682968449528885563016449474367267167276779180931769503772329611636913132625362077238765790863966894286266688382143292121600764228930128741979735197871579658745290945510451422896909210311184507738062497649254988650709011331725434085659568881038211040270765335867267782035756680402285198337320737302766955982299019745287547994614476624990150640881137261886111136945634996195584634239997998423638710698001539163431501767942659697656324035299009899069636668478265179330800522101828512603585282897211721803300097107556219858518072255952459741571617578826454256320661038549387210511911020108306468503593935493027066360162761010073970392338321002201484388704737727819939029427328798984298552024292363605063711278581723848494439671342536280975721343645281317487941360195789464832551889051053849306166051609938960553169721788456648529935929453003323638801242758042696162699380830849998203693526210646624875697907675059180734039264835548788294130075268053071140468046076072522249652307545390712999286211466731575329038266182460092507344432639734785764699174615092714658889671143077431534983986523031136511612384904531186078469961208698855914675349450554957310187716976455795530327518627096826405057175528872241772539707623126705538578666480083841508236801448748770007176869876471783603450709620656716059320111645909855672004022393549939930031321795374418177050885177930680407849915954291609158089549394447479761391544888517668419097164089846830677369012109470474118555919204236562405120759507817861118954314404282100353379418290553673818941254616126653531391783834814833306547511607820462064540015448861628613869808362019850602478993854850305868565130938105574340820203799484443748000814633868788940515010208133474842938709580829980494885590944723143413437142887714272854468606186297718953044040737722867995552474164296939933179391381099825058232678660452453996884857173636110740121789194502149703996350787231733511223671200392109835001026645198826313442206713862913831757483953542566889233835323329491597904172629884269175429122259075684718507369836035633779804711658049038809076825666368870479950684580697620877637835711220931211863689980478863431322308348420264650179769523772233241053171225418327896111995237513481944159096577640578901228135257136465168322020759823188759957206982308396902412950878593812363169432268566020200723357166876870637906269597577009347241420931109153008711246474835232979011555688510134626336017423817681403461529978445478610547781115943389855169889756795773280364536222985072502766452576721784653490673519232463508119401101758126660945568107627147391157935393804810702357256178652196162609247921408107758051722773300047286536905559297642762732290674513595386499518849812336301291691839663751283369260013187292277999431388689323264007375300323258171129721143449347505696853801785579306856227711765610518397185753009290920110435255642302372713839270642682146933387446176998282391536385175200066526429229837105925273970798498773166079312077312750678950106314255140211244855755082007444972075951196303657461902166744074998896727951694273440419494040641051966071958441038982966350662730968467246744771590409884334971935418609820782895865962776310030683211244227951288169190070697810642653952657108503246062591392347006812302192765942642223659392408951415489923175800386352274531476379361022071927786827176221275307888720092478292419408510479102894136733154162264100541778004301329144909462788758036743090842167656416651087070799260762838320108646278395548459956763850720236773947495110998331069135447884752453992489101129045567828334446421384579876787987708137470752022033818094834680398070627466644484534114744699612175916631715940566785169002446684684438907112577984435638760764058207315533553681134476531321567366128520220948137111281918113512269857664391723744039732186760994775001362742742501216465004014290086565916476411038469274616089467433426799938565501514720764744498142519669094071876318038255773579085469035968704930283310882269616297644877430846637042297665524282834582253712703907832661586162404824614472652890730550760741568247684222261482424018702134948607645841686269660642920193259782850190297899305757911316187791336525352918641902121989588605447189183797383889830938162974322850512796327487570322908330369822669661056521903833307412241158354124662606848983410668694718126796774892450911836022301836094398395035367647952575970557896215043388979647647758505935760688240024093752342820981916890452885641829181885433473861467035578947183882482735847104997343940830279292086930504470298336142410674339134922604306967671066530161879994252152636815968427910486209355773595643169883842944455877999262294274258635706414357768291256018321547197078284187170981283064907602501125637750308548765773867200852694869637991689131948643433693971444070092975359185280463063853330780438829363671250824875894493572622148538671953319311836572780159175399321736495460607837856377066210839379573284936366351675865178893561206823765860529529010727611306772998930046894637352664486515545735866380224108899204779442315794462966969994897647056870737459450412606120837714018004068560013527087902820133574654112669998870090446632442138320074283700647555514698235194755284543578396220070178064264826106724863167196937858869866342590661921228468027784915898885897283246381546259370048872336941701912656996815797316644767849182932152274693889668124916962656911154639732033822926143247447893031201489306217900311813671777503079063892246876050125815230885345503797627172800942672063913179662528977328964429878292898239112756770751585139885117537328739642296308869496138081590813985174383001958242729278359625517109355739046962785168867889525567680351910126344778849325239393359378279622775991656396413665523464944394274856841159647623154640013447750062222464398424174234436931116628244486802160162971153531735510206475567281527901927364717380435462187926356638880982243299446506101956511575989904898115358733846365921886769092717623581807096781110538412270293964877273007212690369135297691530507918658947136306389057770468664855372648953472199113128508818407710633849936556306696627966983648907965961743939332807618811463997829619401509530140287993063880150780153020213094130542880066721789627158858370885732525751445322961548959035954685970618019790681910621068310834055648792496098381299212911722545580461682051234687123287564814025692356263448315806008356012707249313891011419567406312878959893343432593117561953740559911443946053062248356464452079076350054165162871873146824616321387663156696544246883657876606885719668161566373745350812469099342406409807494860443605665965767317625714734147499593100576848523900303887947351341697382776439364307146585654920936911545772305364692515539219401000545286262052018401916188136004385203605331996864075888541135043969745112239845099933481149065038292249092273560921306299221013405388446920028570925003012149112962062093401826035813143410244322820746060648696440810216163274089257540467030495733479613619293407985472842349339551672484610000957237529959148138258922522597241481789032465882536190867637958874833559642219810852349714363251301785653224975596254145662694114822285051790057351507335885624349992923989257391646830434917134405561993170561226813009709763908030274535915900785669731884249571218352347482365239825622742909563320124042172511694285418316585681342534555563174259274528031591717680039122898134925352472993232062696004258086950519411903480765273047849412237032465486610403496950891658118747997566682225123105868702187324064427881560938746766017171944579309093851599010844240243825663693286033740149800968511130413359490722700176799739628291041270130922674456414401547618563411255149600469350696000568998314188740829035102532617338010306242474842962379955870490550890213944889728404913866080072985465867827770145199426442579970698822805748377045329764206569230584649699795934807214378982296475502372013340370552647305278488737615699250123218583609891615414736648993312519371269888099295257555541652640422234613560196981885650831617550721366176222127409308426235570716442207424286522154377270317765167875855868850339014168334471195511173415206324159519203187448429710379449805717417267820347295705638168651131167248161093822597058413030466849567033361692524613288210957272611595490010794516332974214200749657974401664975406297146939367909964773754674739508951659209156837845606672565875503761153662264985261239579605112033592414019985551248904412784309843336674545976952219784432497095467691344993733469293582416884260522275924620361071482213412155283264737523697696106846920390530951162388012559418134999997837460634053604531535070084652143891751139422460522245639791881645552994814008378349130144309972107834094007726656899199072813745313028122350218615829757593305726984174191727279235606031875038866091059293756421865003810963258399154977241643225818380660135962414896438953546303393769810765337659248652472303299644626700174236175507217285047539847924812484320507280579322598499606045255011730005649444339076272031315745227808155205069425173545608921916619376783652949728057925975645777714011773486167611954621528026118845487378102504931591899400705444995920844473346328837562235818938666329523184981296432709798522018443337667774067966490079941690951483437340175096227397353246553653398184816285403619144252094377193847704721192925531498784126609984479632929466742384682245603875972822381927830978031059270086144868161767285109706131353244110973124648764856327866173353377732767294677642803491692105825788226766687671640123869980288517196186856488020715288285750247716505077916305935788844860628014569990714028611751271790030244510887142533450964786382951989285967373036930594050456744736636267409644892852273142623858803709290295899902934316414963876390171973733363415707506812572000062596536087008279880540416122968007782663263525421660923517253746223524576413565995429386924201925376567560624023333179105596648479145755560215924522460153683095545781113565557851971616629308806320692060129496663949393456944893115932552240851966783884768519778464421545332246563588307034258849849993159391207548089236249295031172684516420710108874492533504832646834461593918300269112441048790209087349022657594635236195100919212815845694023472374505840382407894229260765843594095882889651161189953706136354780189309367334121130082099749808928959182745056709959577137026090531623906009976942209481805260556521429371667465940857142284118184471535215123673841658687278177902003008695702297192306502966472045776854130446460107437186894705623744890816186520152588830636875457841560375730995162642498123457449177380792454583998115074878412531520508944345227805716244944669531285905049063235472388296639358429580252557604705786373254243084630981356063299138385955522857967254972098149871819089537842048888585257349616626143550889385605929597450908939477359794346873521837336475890128253740206520271492617979195083999004063710212507015289136455362337587402885575008068905704047264934610993893599249297361889182405917569400883937806660508532347172141895227666163438157408547121461128935619753455522126653438869195762111440502530527966000988089294622650181886681450447973519787949345124499365155472179573844376238327385406453336231469824420631081842189195413108439346908385923540463372724778724879326159534908474377788411438468134775550092303601629930859317175835361438702377737174805233809882282332045413278248683210524343708110394764674356662973177701630213476230173679169898869014935427723971802805778280756678432773123358296149023787561622963871730041707032692448594466000064979969587504592409294568405337180434595749441997850201298495909802354150287116193638966359596650726895100196394456182315143129907550744891993822542459894127546282521381504475777982541691907769094804875501639119734421632108023701892741584298922884193388614711749524664890403421825074766789615632446919926445251622690596339669857143255032093489448302679425206088273071580481730009399923232488338934958345664139922108788305740477337051482481731741117533334376480143286569639585963525766795656995687426564094946367138751692102806431423612083200524332044686393001777363875602227898524595440350673307765570826554843741089276155856679219997489505962876579593167316591630064916174371748822020883929922760057765055026201241547753893848396958058966967379436551703191573966262583320864574381546016098349994205047168538182427976279766472156160410906648377034661964435671857569545768183939761523520245935795470751726730724368005892397312956694530151622854497745004874977984249998899858272758017818481629229042874244707629745674773395389924295719643504983838937044165542703074132550411496196163070055059787689957705199647145571517647300245332643931330669755735861459664697529158911453382723872310567780586183003737850469043973502941427959376722609469171365988723481569071851878583066995721138939924340541610158145796096744445963649029269917877587716746910615803346784656059889031427340987929986364176936178964080431176060855325242721515526114840281870926657226514969468171682719623318655544228601022679107813637821773933898443704230180606172438272579173189511271304276750489178220885768868428348566254228360791957075665885504156462753017151677949851445520678389630435097971435182561367071701979145594497841850109908675801899975274005585388088352091550431710437321815748619793470527259835371878012248301341460607413855581476338453401760547105885856204441472113846544609634622597657014469572439131026891286161940577678975726617784514466203158812778616934121745708094342312906508998475941057164649743150924429194480543930416232565191459942261413092369375652548467879906141301844587366705450172862755483096479842474167606510353782173787963749118762072663767596102444468316960061719775920007698432021454720804661559949989000843470080093247417069609697936229910353765964488298807738870266817639522222175745004022101970869578976586763248585143538116398682445314147412775168328573060131518553671042395198552888702747072332704921156161349923908195106487978075906911544427061864954227766787479928911464904656425490355154421607952162719495191793744728635102843590013771656581792152967180360382513134853312541539285409145239646281183213076283784467396823099260591407700420122062315273424865725592292142032538768883181110628607061098103107535749122545441459174263747017855294496044238524660280502935562434490959839740961219609961535664672096287194325495752083528763017453546483350164884747388827117192604831937177320763570547948852001684676630986564140423261189017951757260135944382370013600707226511289076646373087361260790748465757333068847380979655363696284662332392527191090973571730569007332383977049080310510099986430113196637327631855247185847663833562059459933757902610543360631053172825676296024075677567859292634366763531295611943154096421553826289405426754434749039451216389440751585156230589757494341629587865533171752410387583660481717454658745196121134265490355974658876632588322226786341289663534125916943118736279931564959119088387233142645972894275658717571138301005854861988454912740551469146671044234206280351386541987220701699646441068316343194540761905661855218609494839605179412511902580441492330189994637799674160852920057197368634708663442709091270859586552481963637357202386113404258373705974108408563467595175283541171665765898824516826685315220020952747868032373871157338458007532623361763259554687203065696413483098057460506405283012517046305998786145686431859533040356819446146891442654171576841132393405580646050759226092513062358095998824704103183744342627957111055272975469957426831831810158496040673308581040666224470149721404575781395215733157076258625540595279111922443724585074656187445785173361588431741943635405425067539552288784828663827056383655929805520734716816625010048847753789817648024001115877966278405129223864977196930987383916050361993240736286096987539276123988690122739702592020374587712662163724518208539482715486272855770418761744193190095327023538723954554402744231547193142928453205745870559938964493305241347589723796246116204839644096262775623124865249214837363613051929471659026146111900152257188435730294708615635642798640788492495831735521295193662858804654847073724779107798340762692329095069303752408794802018615119243873928271254390795882592778157023132413890462485518948440592397542608823005729429319759485792769282401508936363457244236290454914194516928084673143521273492340997109448341175415376473341613845675428671982021110004350480744440816430895503573315658009609490225218976001475107912662212296814931085593175047635875487413382658968294495509377241520886871763186416811199117879296395718888564119625072432003197004905371409456369900582030928444320534070474424764328885132066566558536091558704409863423190120085991734833468984358383348327967316469398090461603926382523847116253858176886289569222350539939692399469501621018966965322675475394721452933937122404186368639433193492595437172523186445414496178248564511964690135892551490571088267853940788298394468135148507414460917168280958338951475231481769187387751187130818802508501564942399180722587325669311625078740598027298279850555703830796315603236019067370894466093173319440172154745190951656310813862680210290710266173468355505974272190600262411755332316568588971405000698718636048423882417713079549650784882804503812493766844016355318131007934208162996158198136021603408542087212763828192058804271421934596292060029392858940832780740991808765314092800309056821681102402267573630700257631404912003863072174592005683452619140149545283369810780967073779176699563960071666757037444265060869857749991154151084751862489936435770925076477625124157182341861014936092852019250218612081977216158839163151352188102333881024595854148846776157559690892306987406690687829859974012585995617257163803262066259630253271694695237671997602419443743375307049024307111216599044855963371673175278089515400499005647638343371969367543022840825652001860211184983109676233302473944472708345903773694894777920550554807257559504805747651629971685539073414660145651398165752519005229017910269728348190445383019531484299433902017185549354896951005855640113056627694888443602369248690182166234897805751690527563815042001923656989488396992464279235562733214291931657849467594659726295996724186399263592115019357856784856732832059100187181640502458031072188397363324479056372417225099368964513101290435088278504818445371625387784181649852432069967816609397052844967738646510415630697097124850733813385514048647952906053475574046084593284637501258635093668016625105965173014595651160118275715888468367398298597242074372466475875811480395329370288090373015315532040031464024576380994894081153909102548297668598781900009258068599169723774977617836487389059516447165353102812376452281624057835020810991760148958144914400744887576823387808111712650185008734238217681207076376046638671566030763542944679114438549130760470964812735250715314815632889989309134635694437635704875371386994079741281520252232134521130188086248544668956123636045767133074684141793221153630055540163578510572463882099275622823912545013494676266751812914306570646042777697472553320419006636469521277413077431560829375950235062451064615928590504777221846583973374155090806910463761126906885512246828484201702022271409933357435271879955467952915516289216929338515930684908765497421584891795274081916414098413348990033134087426358985496683419337492856112075993015092802193782474435267557726329684452743455851543459713266857567243618167409528318970690807795951817724341795901854481180106141333617000783221890945513751000732876605144941996169080856989777115819144984156265199451816413372391897739182330404111635051974748000221319192160196460004976764407222127372813593623993823201197648186622904339577171898669149009771115092137162760504280382659986557923048977882294903429316785741644379212465649575710934292990746618194766373978531564815745461997689609640815338975475251297675185456638685481422479679638089698391432781016334757345137367650238804102443925971964273241866360939809184800270403954750555566636128167633196460297093711074678519617227933090468241428138280128783879381950883126766024197567664175088511292552782425163808396970503171751831145120940320200891474926956259687927767709337009692657165255069247617964056889620477346781803759565539263315358712198964447039218856731187227334551769976069984780663119922128235934209983047247433277255879168454784711094976997118932186130738597053402992803188479935659117851282024333713251547109276312119691668608019466754557743540469724676194139279513404625628989467459233399473153151858721092033832061230629643865529690377737276340028232092335251922861595095271248501672519722431944732393680330448836186279293898114210019625210838858851414742792047775030193691409352594381260217606287416235490071435397903799311360117975012851926430016941292282380249284003720076151653561437411898771848618202757120435646033082147798884409624087060636237895975030051372209340740225387000897413702105144954825604770728152079960685107552211069217431745664844234969486836049895691144871414588961826833754971730812565766581978442730467022294223728046654032724108102016607050364409397444884446483689007582772600905856686436635327374296880990361501556910506280669067678439255746491722361159223230322938665228162228213651206277287936465767945784555577241237329597451483511603258544699038509097895249191593578454259096308060332383487755180768385322422275610264756638728392282007197235404757386934000117812306165242560797870482582579207775428639700009112742547897616712984704838299397848833080464259219599781309340728104484206968168183917731184094643999089137435398432945332718692957356511209914820642860443973980520053972830837581154798409344424488692228138775451534967860875399235332429260464001473707202045550300920954678801227343163579646449245637564840649834114988636894471273981437490789783719686856555054057203487425129067672290447714607893672666094782980204156837183881002749187689438134591763820271515537454544089271458431206672802195059699521303791559635879200874583589881949967866896692246161241583110379948649097742751685256180997923615828714870688715132006430164375783697259172940515093595285939184699640860293461545261496461158345760297447785573647679197408545445818983057932119869031480113338623280440337290208849736803186460162597250923402734122476366121539603050810633943348764866623418718632713769700205794694358773704303061113355964583295900588430516372894697246998352605595144911020037710407786614720212596497777781363441556292127875050126561329298891271258457613145785089076412209773422603253671416332914207804492175133427966401457869409923050763577591234842385645280663644004198995627125680779325466177006092191378808290470195661033081447178387176293631339473262004460086087227001673708955139670373240625206841785807539844937594437308709177983727706895580174252981124064753242592123189519080925879632324653889279963338305084039574985936201585938748041402522405079991806849286585028371820121300217766356440313882187813999931947659561123147372747250893994332573087445287478739277705148909744674360477161974288466791806570136940665647297381428017496811533166728110702689055412554484830017543494018721139156838376195929946877365746188583776897283811934840988358344301533697718464665139653986752227389842543466363877326028560985879032135486588158021555995476168110455027229029523932858215442520745585738625841148934486520252502197299132883393458269955536492923261285164368492882186154312733618638394337137549372876497077301397345136905835436691745851522218319801867948526236472674275014842998599361019310477047870550008333897051240780741567864120431893145188693312993612848570694372661904006513667357683577207857319804170712125557352282679568026494782350859903595687660198389409519970427984114699740564491253091684732677162592638611264163021831505652519516247140108586959822104104405216206777018569043534959249065655395949012044897025799474471224964761233760330296620899400224696294877446331224528556764800675951484352153737170474150012968019287783069569641097376982149607201637052333566909619437467944696918559893259103116214730568518990652917125993279857300871351388888341803503951909110425664565666431048299382694152899147601551438956620665421340018230953651004601093314464979570860375963631710543858540969240646775257442294419576485892098666593275684890927430554214745985636720920305325346021437853038352236887519625640143063842892730925321004323936820517664529530986101276966662411964989865010783990078300882800192278744451086643640462907475899117108579146149837767276771088487748950249000850379186596715056840371689592177465570108529715350938710815595998173997695291732288829427731261741662526530100503893061045190556278018385144572207024186481599182297189251486892360769204853036376172461165747444961374160891540694130863155846220521248857109429877347662018795764640372980780800892628620597142635630822049763498737745718017218988586402362669170533496696710698902559314339664822291553549845257251482531039980531046027654196261591799912169690301076267891264340631925604047481593588019314574408913061695017541023971884746940626865804370627791286592635332978899254980000631004428439245797470280401535822513621144016303226105980190310257279056194162899611198652689045394350930132051009150251387327403318547512804263307653707741145892106414874891916093172472332701202796689943915746897038255023780346144094645321886798754611493959359442810017572233912348870939983221193768419143485316431829340268619331318889975780861382182581630832748732891700906518144314544581320472829279833919112661479097757033820518493762868520201287778590969721160377041374302874534303003052032874936534280475998558343913664454718039535736391665481403734168320604773607414931010766539162776766365732051099156202606001411001672548023084512236565322440724810863286458778503221508686136206109228359676952237572164404360394191987005318169188370262373459384815842130052740154534931150385787636203519573007472258902590615190315521321725305340537737373740500454994342763333079398164357476608787840644731291262283764399874013852907761870756019287371104023617470560590737288360473210514555784663071784048683786312453718934602942973075837666418620901719686604335682287475468101410269697327328658884726926907115584780810252683463829016525377843234129034531118779172392119151250245592582117663233398377099356790388558668673694895293855006389892556734242452616184086918950447047340210699499460394622154057900753411691767746743948522906717809005044521298663560328630021960892565855455688557393312492371131904737902750760294518558068083353440340332887790593153659098020814031397558430324884874899537919695571065100674542226730852339518819635387972251286598546720610995555660185677972797349817793570549897156372832603867325260767292552759122212310817960425580500076645225876290380179951116986696064475978971042507880000192774418270055505567812708276256500102406819458997114611410164214639363263100999768681794523112012792965503303377650187290230456356162382921074726122467804028815455760164327623148078075585824139578671264661019449034935020511468336225154137447080898513679105301417899261683890792104314186526044781089385507485687761530193385993903220116561875589788233882205908696697041183536524107567029857389937778359300472646785976986725753115292453674074302620756438081995197844804000437324993248797276354365510713043734023127309989517853753840428148934932138178257512666907581367982666426184441914912060152327516251949604835356576875575983946553306737891098916605612626846556704090693357013045854015664707263002160051042933164967577272074277012113584820460512906888028235261203464009122765921881123752981717032885141950843672757806178821903129605649317312971463318003065488939185335804273294463975302563063288321114569582039936361973489275124058910650256463174796486680362946166809034194477399776961085818338342462087313078822639292712553578676396122892606417071324787451352532251476730510332200472825516558765153303023340262785194191242280747170357363583174176642332998942761872062483037251512803336417412965740120550074149843963228258677043884846306695502991859621181601318910834658689477339987386063278142300090205009308057519849817336399828436339833112088549676996255151665743119004499856459580639531556906084971221463573469155510811215417821163181697212259154891731316404238773877263495015739780406562608057002001509876132275576895486067225219354904008621195498945259428330638653634865290708834205739559293155406980180019970160896413935794691832156944254739480015286727381700456447168844861307344869598007049107875506879610247684380613466102688058842308608552644752988169209828473844683112202896457757770108842167368980338848348867689244976336887936340235291942347377285997981373307716816468955585256586677869771519464086645298870957779811657485922252155961282409965189645185234762587937703411294168082212946453027962801072409596685029885092828234819711149723139178785455838109339811181513249608278894411438912305464083250852842293442486677617773065232978548053408266545319202053640763358713075989597728451239384840850123712175110530799970111820741215655458676745718439516565392730788838103660639460018436149797351061434445973527319877449127054299123352298047628539047848537926215567798063609632999023248386395056432787183483011201876447377111520697703407510847918913724815731764815922107585946914980351317533220313796031558763575082012502534926702478872888024171259841944863204683854716384661179862557775565575598284126110494813375796143355404512793802922792649320402950163708074447013200421291742377655679403128509171820423553532744336771495972574033645721666569960451983320342468761358445382809084070738430413349196139962450891311090244819887170381141179665949324235571923693375144244328285804384860211488807564993538999443316872182810049944888739729731049544487440677845553604717274224677578737079931480102135141071429262161745495707248165040778595960211147141613005861228087743808698430405798731142550429021631333976886596323082229546218249397061360211587221324924670922480133604828107687585043273425414259713917944318966409886472889913128150351453522221813158343185571172563550143514685222790154469170523829362289719833915609623431695326189563304118670947871639762814710953662330968266010756995742119782530555510860591283610106976964856677054822890911902353555702408659959860384628012266098737468224972044762083339090598444252293589681196830860268801586075213360849223861151077907303176820587058718067609659802264750505062827911361462032088400876374452838843106140875797816710025980098992198281930575623760951174978986382402622377360956052284075114151806766255066008581751595579320223734626934450335764498844900323237400078767325995709000261852123315849459495030639269368466442177053656233431209271253964618828661587023307932443990424664366482727551662276333111957263372275162928815617810952776026442478974217469570143965022025107447031809605059668679812437681398331363221847894714669634276764604436874531355798495880829371929297583481108678116435622383206496197636585040313669673506773759466368826170269242411765991325939090703730800730736212562570567612169675345688812910505665187840468070325097136677627517624710843853857124049832854856502465051691164996074347936084564305868476374537820174237226519966060272806729295127723017220804325705595753555471130666542732920186296904495357817552030541463098126521059791232603765091193760004606938316671997256633633102502872359678020765153905093498838915350407567047680403635999376720968717260587281287909734953221234810295342207149255499251788853005693695748165952573357988948493323324380209114312498068044680720076186924058563760421943969563105070065267590545279894078201638913512878401684043707948759615832613082815274238236737022816814284662742606941702713488951181878185863682901338482798557008987246362216591347004036966024778745048251629142728311518882061706715023597870777283055180088017092072076569454199321858429196821471304420986953360926740779693922875413840699909883406193273951043066468832343127841548070497954344524505954343936345655644849972261667253381957475021008963193090598339752898741653079273221559644183880059173307632439038217937377331745060538642603660289543921386163096195213179642580933106142328855172518306401801072003363108564613089575661399832200056102543393848053081684958068799613676858666096755411823895942002370053814402970144733579759749500938057752636647690529635137207127820059657305488796866170259149547132847166382299723915136129182776368629876016122174883388748994416233119471264380477695119110569718055763967223642186854578045013084522758778118382323555188953035061639159935073191280966452471770789022945845495645677888030645264530824801552639819498249477437059000561754379754534507691951736425255793294360120055246620387006228763199692602434327900117041002430641954397976447800195437035410473475727721597693149750832433437734447969878219921092336625650853024139516800893892326659938026812458603795248544814153079206011261122217310385349025727033706887415292431021107175663645874726906075842987946820893843001564534769232617581781684875827515294212506836576595641334599361759612568044167591915532804539934330260510770466175212000036822667566670578405085229920938068577870540528105262919054127040568918921815987567740752961365704791147207930422531656040246190853411148954286308256722227714585697357213708750269282550794871664416385475761747122761132190614114619846935344157080420559565059325884649259767875887364553151122614464884971608938439194856002526554873718463950587226138207394851476895102916140282868586870664280119647977174192474445876288936154010485990176926847823066782505966052923322855730932005823202507426605632823891012127664986738926423158638407368648505589737709427900101065371576621206987043251208345907458248430526166736010358865758802821184124230121544923404514768578269949848726538796748842624152548124879681359243947223118951208145618366415184039306715544921815440675148024187351840970274483752041909503841133147443893928871403729889849737182913237122992905379682929785871371668443105682953602049666285838512957747906498754458182129532603215449742822369873935087606481417534585073966850111646279707084087085075881868960399220830341731433948376241765243443628173871732233476774868246010185793690527040762674650892771593346303588230493477398287267631456020332026679732930247074970940427618376840735504709449012116144519745498823914780826713062630910794053869724562223963009626794701772787227007188010324349954936035317331900928710165267653451693195556006528386368535523307592144293236777353326994853062957993036850154234710201000971085982627911527270862863855363890205322959799972042943548545043893354986684114445141070781709275598907512491507818149600683655362941086104232309700782424280832848949303557042698259159345238405435813207113460962362894197656956833418907413736853813909337649799644303977139280344082890712650666162566171651269292132949863658866649431852941521081620499383201411614052750614847855674024534506692309158132182726931608314744020537621892264751862362918829933655315261137926871772331768038438794655697102851505631586242893077255412239748558582672770596895395612357583934103905921072411485641423874131548307027061014463747002492041672055638444970742089172685468360008838272121585099504876704196152784632846480710090604278084199858467356298966945419286547145021997401783054836958788568464944461194203944475035864213858701706266554491601802281909561275848202839378211094315821566523676987994446696702736624579222228083989814260271443824719685140780844106187181803276284114330867372649447683128029570280296467978572665294506785405963653576227392260100457630364775791416779572570000316620672101054428614750945123092111143565469693105093939693385782526425173908489600794953309440815311786291598836641253757924181263500037405102429597754954518670938184286051438714678654699416021152325121644834684840558703071301688838536015238884062476990358622949541787923428060401872679277331103097925354788604675910700667951928861115728677412789992694363342453629139224390739878849403431878515005467219378667472026019993627675160559991730497205160648979546715438706712237196339301283793559460534806918961562456742674830394806395031379496975836138890069277549290426525602604850841246262789503639872137815831080027177490471579771308349181323140539660963616249133048619053114207435628833886294079640487649864648812529459203152687131833311408956786206429351439871916903388418695404852661407218182988690195618675952644276210406561883756550274447404104876543393398218842923219606355858386553663126933610608801252839138872481176398959974574500736110912420616376963533144255434617571152271613166901565145659903294107010353272838516142525515964609241430506700868897392996564544524255582575859802407274338888418697287425246118103751820294035629598574878393007539107111019545563695940148084125076240991532178290807127383048174334287960790763398932020625717010192575402398642059593024108702881598321195493439158403708869988031891854707606616045147236616139238309354810091939843854029157531536922244897720515785483431089965973312436094340662255173820448267499455537255829746932397013230436758755531059016377866011966167497829495839340722452663282474303489214578818121929283103870187182891683418001016383553679007014190884411350552075098997483890544298899851635611582805711421165908803556363700537669566272243061682510337535782840092798642743160003286937269888986973122826164292700433778963642638164052812690048464956944596762953733756899813930033470331834905416935963014761531384601148838293659409106282036065082066104596065517236194528217760534726564979970598491307834801851473737375894672879265452033571022214438091696890234748160787309198083717326113663520917040555827929318997289708470021742458525776720357314143251243330632276204495507638317369323355476989552667160858618380188807571609210830095601137424631140473018740170517281550669017440245843353862910563238134775136822551902598247303999404469830863423751897585395395603185341570551727257160722033485664844770573574549964362518396981990746277775446832400845770988727360246599123233093545984110741752651840289534565487484875128499549611634283079691337966961104529819563985504000815821508102424394596362437150775095409177049201762820527467764032943757380422708369279466306638884442550027428944582119263685977806954526997411191754740008508648221224161563220143784152231549571634030999612351865963682438786458524031491669870361578522364759627288693340741392030129776550421165567795607145374722824323201429506655675412906521627298510944270011513953901625784379203517689096213115071583271458430045893201745529943970100738762218484351764511101669935435695674625798816072944048192992767204529852407675729684612220694016130066323709535997837690384295262637998789543693350337200857520318555179947105365775669720321786831698991140644451309024410097030706510965192793757094349010269372749714678959020356665897938427801742431687096364794791309081562850929272415001951071627725594582635815953811280531325708939811174055743753105165240052637263735395043987327964379169735786299424120759053776297288073164548711016291010950313109194132443287738874811385074799394193004691985194749208884808949446614807188420953506918965240379755667583177976237032058330753062523172000812428164988425750225613889618562144841845341984394417139700298679131264844599237171176523434524513173208839111500012786929742231425654729808223667362882694568099787186078902883475515849684817659715550327618695995455125518439095134407042765509390854569927852989291050797478238631394290888785517031019603516277202293735674337214832892704704521862750962258023442233140038699968808265685166346338193772915681126945646656830201299180237286271227613120724101509348248756380633514474997979862787276744572169098902945858567596084862911425384622245648851487341348689399607193077584248365187052221287587645898906799943322113396963607762420367049672609809691386495034788821954873525305307378917080923997441387383467753203258799946249161949062393402456489818144665001064429157766175577446113208615230657106099364926878358704377069128288336181276390651815937165940101806693564473152418468666276602915265355454918423307273135809950050669395378865694002682196131017639684926616117640303501195707381144120454805903517668144893518837092137380496183091720710205056210973923732374244110613380543467502121044078569415184494200309285003415353843951388446927129626419455760541144234988650033147304343016674959110134702850215828454640414225386814733000175751301154563453336184128155873105822854153493830389163538092916238203699587197832351197499051463788444286987283899115151705207688049186801497416104397327387880913491019036904931518888148455253601613952637472734734378539250343472452351496340219054016472059333922237013485796354676104548719496497092723741225740092107042267970491467335162226672191919715835058556774706912685998137070301246464723920591165364216936811078823715962090928768210773436695103062325583749312153154541976258765556542427296337418534902036932497075768586812127487808670601999538829545734277011661458065405792404138058846892702958617219528853921840946223396122871713744244976183059839985138070092992005771937278355085585204607490506941446352166516497792201335078326646342250540658090419566094868712101119493242935596516383868852311800987116938489014169538641524361046637500257140210342661109562884019159871036127593172880756241935019895948220618926297733708150655034265091863114806668812912551495299124727840438334438022161092096853989095722150478552279615016910934072565033651020039622076711937884943733966250187912000268591978681687732841982828079976698665497010695951104691414536059922587645285946358820643025318102956527657413543656405323914554315926828830172109980460846175574238737834282081267697913580838118444171473300087722961840394480953214873901675371033210734738827139934478734238457453964138453487856588832740238246913586158467207080495592204147084045765782572548334755147717037512004492677359370139925088489678784822081572371946417895999541137759397805095193610289757069156842774079911106132086167306331977619472383211422523523672962933527884180715665767558466442092823715610467386311647230279838132447647816309496601446984996572931173804654043404303041214268657425745014464090699487644927119476231838867470624157710253031635083198721961231969534109359831280638173559513276105780370201024864600121515359562653084060947016083196027929758624389643399591060305566859184572113531654264238245217362602932085972975963332302420966326440732895832214096099708412169994867856873801698722846409221423281965634118371600858266727519233705350374277825760040713294628717027638316698154873777666375703739516207577285642300494958609393318993943205191029657623601594064753828128362114177247911363446486266578434597311200603012280613128577404997321926296489078743754968017217411285648882770204036761624717524628382275669337555642242359052124968569577012235229891227229081867251009380756074680039118098626184290711261287911545920171054857693375800472507499677068245366219654439672016036353362368557451315521903050021105188233685496287608824352301941471299050772004346602064634179320763582366936771323204393084746237658726941299280036032319458799333041933394852747926034630071174537589050674015627177660254495497849721522035289067858913768815232391815229847378180271286232303761942469492023234124998749450128762064557645426828018870231087429753366853343436701098958526409977915399581467035940779238640223649505624698484214700871882493296703905297319162556931775708676842522417754853164556248650640347719886802158045077483089105800308704840223009020139319041809206565284190449630658649442688042674019192402487839208110586144749247784765839382409428278178965131261513590421588788637544979833187336011904109316194250646764987797700582463822004775363339235437419884404920992761434952700524644226482505510831137677188752976367806966500130144180439924497847155219285093000497575469909618169842924572463774509815756976146937059438632498788596347156637124838490334943536437940539680397275429113824087254886373306396877614864227057802664853260330845964330196229030692564911125855311538121024472057964614871107230381100596788614840199733725085175455543746681314154666523623555349288453718644050228488206847610411997162008805471486667664418111716416173331892332239261377158200507656982788569890414443670885678323655452598080811572483840475400548781516968730204385406256829001542191490642820735282289428975328882834233909163231354602855948528550034798394131231890937950995705137011487632423328524355756175821930931213516858780058363602447152153581588772230835994733525485253157236419552481988471192327911631282118824270851465430685425468382991427385718927625311838350238666239040038103442170134472195500511667658452629658667043041042279641943320798545088129890730371245332440283207305380818813202736684628198981744321493978515023102330086126631493091298035357265173066375532154103631516988530233142835041129648029671492947933909381174162537189128204859556314105514700413557920342013725111110491771966691229139522440919498404095435496094531597263413247514345432279067838166285020955951236537216657423949773884764850432499420550793113995759747263293819398769880023924778537830803672486744357233685458676093815642038901681805798065041967304475303768340585866740784638439472219784037753303966569548292868901451992988256602027656980899156661216686543006256906218241199230337646572498151251055439739404815614177872703216918788862339610248335974159587242465716550731377431986987212033109039187593342336748257003449115113389544661419908248931127243753698614846121641401268646353994626290991197705157762492772337614832716421657555776369602015616524315186227627540843849801250813891664593308737329646064484027117635934872171579661076882634124627480798874749387800818712569968310432990177194254050238284350893828946063414398892059660007440861443560936302605098100242236206183634027628269159417701651550627379190728739581080629801593449676963548020732500121104914751260777682142929687645722722115779735945641435777447510274785298268400798355039198810637006034518893246182155842506497034324877131032279947737340782688696208817920578671781266435778374722421452462240639622075356676899871734211208704921903127930644160110374210062639188096685964401625903355030505345599808304012210389892194513289311812340927584129521071042312438807527203384489331446773726399915720920631959101260783410037493978943588731727836844398477648635593207016698984760814981915363761427064658246284628235245917630094813903999513044596635477747506563546936673453744433353588640638384019078975103290503839526831651036607241861811554473108615851869909813078197475480554357880539364090015702530176805680883569254873428360402620234662879973759265335078868553331812539293346375440741592405751499774854864339139827440149986541187881782056177503995009705372373744454185769935639167406658587253440293577402438530690921954160761925675776813163409557512002786468410494876971517856252898521284783749276947170277571888480316331272281334149434322043841866483736931654638131161764040008484930610626404493871907235742174261448270346517214979364206023585543241107473141097252106640653481686381910751722237012544208564073727457411396279489401183265113524304509725335880190646895676695045541701032626438254306180069319415337900904640923547981181151648060825452792200605919682571233766778918042979352887796255107579586261631521898947428554052954148519290027650382136290242380572956176822550412675867182605035721581526611309389949924029102582627295933858828734771819241161040730750465470968142463695213339624188357558033278443417497339674497468042989813212987505272986486793009749171330104411910664277018667990354290482646063736866722598334826668448486984900148234886289227364488405000035103514727594159666069475499961520656480230771321005402556240741702629330912841741712845428387206862189598695606062542330192392501949115609604019578385998689803868241116344179165707087835117893847743933769538919804626586802982688479513058463384375219628498175119248872871767199278791796456319598216038972949738136846731621606751201616535929091501476653136942560699835257285644901075369686441562799254701390534638104888383545013067158812687313598194108857112157333184038412069044963097963799531473543518013786074547583935153696742364804226346335795725387612764451584162986088924433697871674324755289782507813315232043126098018559424606353810148385033901238037447398498337154032902622881534726683493591552156897519011644218166603674819871085342240136475340126076215550795776046652439861623726448727733815822425704170065603045124510558882732519848243409569189061349177248409739933495082462727523321410714808956515423560965185410344746981761954319094829639935048159308190662784779997131531826592408023602993057462736972522459657493405180731029515012900924829662499278398033462525769784866524450639585377233244757103130844498215831166865471450208733125429343687716637579077870665864536557990583393244918439857369218393711262227059455332119672725035953806980928062052744315738740915681518804077423901784317631881565613088674276142460637556011609777715620943012180370297397087205999798486758626442956597798557154486298459453393827648279448068580123930364088796072659165780686466057611509416917871978184952465796152070954089738883678093358533858757384706564195196999011438808423782570810626638260902730272992747273261318640810873605692576448855615144615449361424152279740128896762308501379703110203284787140503176988260596996622127887736571558251605585549045848608670692130339378918301453208883094939729113265890791876887270858002974960618063509786125217877517861706248309373445304157936151934884762643992218721037508655188533110441396953243254351669829243452871851371849063590312703381940503719345530531225908102568701627329286667306659578724696026874971010745212660388286723941388655385620427712476200709436024174323922395172246685482820689709028299647867590650959410369036395679446463269792652283951485893446983871474348060904958442050627412335506732889116673210704921095970413488838454454310951191582174736050214298374743108105405586121547144572164530782500220327735123377125017775979852300622435093091726970363037362337467383601045337688303232012151729523125408837351316049358589871213587668170641030411997343952520380169769850211433566793873741251817634310072192460299635331804719187144983535862248000830174144405113915079716225366762083729528757298663759381608798772910007516859165036870874019895203990655306937339115241443938549621615121833088888169864274864147720290376755515055286459225055262376143008397965865587128889354658520464720737495253344847290796383750714237634559175601370789449796228840636631039900239491087694700517978085023387608392797841016231476592924338960414246936599260264531098011171910027924630995438555597124662435908998637934925049541857481927273954748726346249908450656674266638788379641107086383289807579681792937538207344517041046366101814875712934536949113556483794371581781573713447967476892896096043006233241934713975202138911708880501824241193592517442678407090932911542391416084250608763302932186543324346435801067723812695118490321836440588113809806207337681879514884959166332075337216778059798196100897796783798568143164824455823654154704858119991027999278353954946406348471901554542589024469685656431950816836455492560704930686791365651067892417127418576512286671010269193813790327920675778458408014760818078503701634962874950958906428493812893457884516897161823350678520288621014037881823105909075014294155673947954121066235998885610701755897727244221063992095564800930106299767777265791879999112640119154025974593199202375050809879931090425671993189747616576226923519198374351908028723379107779718464789819290462346361382974156260906510863119531123792050907146379010532965060280618929742586904701289711325325511247350609848146720537969367672767675318889659802807947479074329489964181884885498004647313184319862899986465576443368947127410382993164117553038542809054884476600966387037415665455661958009867161526700736655538440645275530591316196590775309323187375440796296313226763262230422235405968237302141394867208952557581403178562212312336440459627753737313947855648320068544489385054552170781471845180959065357583741247661239884463872241739647706998605875216366115944181292909766861382355921178128169409427071460792929977541450651403052090028563544931014768639912949563788285742883763199878791128415673404526025447901473343358456050957993721577802598477776623418805367850094050430282306458720613309043627336783638914465617887366031990039827376189913588326344446741293333549098537225855150456485221367318420804338215315405829121376175305610977002343895437565795971388953361319015650772805940698131962361814149035164861218187630039431122552348323698220512079051631274585577517570724823757687888533057722652101910399603567546798535498891356885078469537771270400116600200501368357856196170450230951006189789001516983278022056081725789051271907302547109248292050360088125597924983580998477055982878153076824352240978369954021595950938262694237266066571332366317779420180873444025762034042908553560903136228757308486307223110740466118541482599681626544274577764734198633005508217360456740366907207272675606495484299350005172798401265235369233447376815668799515059181754633212608699457887801097445215024941022106632632330753319572049109920420365456173695307135165513304268487566424232014513186831347934774975310103445768100435670281640159270196261838441539663906599142936773700085982892752236079143574349232960754332814466820827164406529948880056240987734118828828767826085449841871541330948904348598433481980853259156274639064369299915150303246974000566044530144233890926767451579735065045934369196174011787658350904320403422585210209968676685317439800447357671238711841156317553207083246023022372350363036442856985902305035907713541938723222029835457425021912165714495896742122252402617749585028168110515186966107118060653642977332298057130779943030486607858937104512806826851958021623829001202069229569288666768854551077637142127528268596896930394080910005939147329878345529613062171852222759924898978504930799776250145714500615041118992378447407753522450518141038182056610039058719418573526948463226829637545108282154184852830523874991050968139668857029656382645350511214712781198488040574762067151272441862740389070110646836412486693438231091362941626071869241960366124643955327828102032873924590870116675145398402305304636338374812801113210331582181158294181845662035786153453173035358346453565559902688184342009851135750106055861881637129312639362845706735141241543469218775596822569922011884168600547333267111957615790499444991585517587218763160303086594907424567446306922514279367083236719742195788184533875535298331688471348835457718062839995248449146266288701033196924299042996437374379387232715038654056382701413559780078640003545828266422145584045369833015582283301561908016999009644069580940393874509294785641806089824329638807094759925068815102078940199885534305485095497947364037598863380668275593801145228048694214477678811303923235528384275348699611398872473786642500798849928790015665399721318790916367092785156914559045902858114597104359560369371587631303583766732619249161848488375608643165761683520376316286383169613391678960934347170410012513116225650202701691686471759943638370933640593979189901630576640837024489665191388710353491624263326661033262057097041413026132009741336884170003395181140405731963195196846087274656831075310393089208025751508780791484923189289284218255959390248613162765386541567303806722820734635562432924992384555998974335124528465732848934145581013511632956763809939178669871268155202240078568998927508090115092774302468891845227857343416714466907871822248058587410836527865978126082101744683280059985106794002907633385707114948011481666609645350253279972973914305413142833004819150091163869845585116416250138993497272649638145879556614628280937368184828468543904161516353811082249571616171783066152001999753564762456200346028833170981985459655017375464034733412213826992810511802731990521471513631506047270015314493743607277408919287572295244718853458812054510890870379627151209646328532542495067476604048984006460771772793939968750017467827692353280468904506439816468433909274153425811637678642667096942081171597114751278796577171331661676248317560695583668793993460673726545368720030044524088347501763395336868644469339154028952855348364793621402013144983662142020572946558535723375707110636200598275533375443028893934724967021476120420680196961169288184855009959250065154920495367470871665986566904219637492670785655534092426986625006263226652067509281141762716519861647652326272981146093279479129054324141255896318986879369224053646791854696830764719789333956036588949863850768179288674319877954688843327412889967102939910240427768670185975878645665625967961958259158697872014988049577551188045409711810858140198777005890616030180092369546529072770572824640382457989526868745861536887251893102146445104727710694539355697671682684160330941452385061656303609139766745628076282306999463751533367054362653034574484679126109065083450582405694884033189707259469714041883850736112687988789842925366861135624078500383974088154023726786354566858208470437982751704424211173013841866661883269609984852458331701026286365759068314869163124496404621977850078773119840691898685468392070164549237549656368525965643211780175252523496650425614317937020502013617088675110607126930065518411151458878877331346592579532989844303046166868816770620152094927891494966738790564145388288004424203711420117856021920601282979887939987518991777806566667233254332520132272493177010120260713552471305311941492083705270854067535159610590341838853580762895260658760150699508152179015670465171051503434885572048224870954702966306398357959499898793868696816669864431368372477110584091570428059251612529437525928240788491489833727374707431406539374690083162994851979713508035990535594096272127308894705987125228967335780718610317578451396678916048951723214062478702472086842552588576314459163288112362763634536988177356664073047640054134644337455823058064117240564587966115511129265471994378317004989519337196904937574404157182127993176219940593305375210022878587964506766500667490397409023140423304826927460684289145061036905979153646277947588714619368492296056011848183618350825467252360957332120727480468119563283398124039348567128294938161184414858279614950695930350770812666979100747611058782898220029907933231416224348528601664320318629110171695003572533271326722157274547754142906284001928231982765406798283568188551234637414744041348951610115465517297058460052699298318614252176356667134938374164189077513497128337602785023809070136911536271160173525750456489730812020752739650230117813983877302673179287229431115987504691663620723536976702904786274010414675065788409556647264047033057848468782078009604499941339180279518502908351745440745199432048136166586647141358457502577440157676961213945700085726726545963596765246507812356458821743100862895617139985206888746007031475846063233483712383943879445997406786652565464685589060013715013386736952712227332633098365524749488765470165516199313411747927498689951162922692412745347354871138192225302737069405355714453231615896872187992934231013769071080835604212013270593868596348024832154504505360258370964353742332618308190512417872500436438973229147541531957298350604594827451732162083315305926626106039963295195793735306526657156588342375885027520311683977268382678467517609058155646863725478079965536330355726447285749223554606826452504780030946825290738005955581877092847429970835552996117588363149792794688250070985792165093513177381623688340120570443895405521074783634689493830744169207633812888890179149572963146480115976103386976888388576391648133311892983088911512102420243512217022023078643200803859921685467808832504908738808252039229388682980022996261031504365674225065804202001959164772452079848470923949943824991159300732435326938863222508935069561774113530460929231162592858214958406131166453726730526071716498797338405963381092733881436040788737489722708661103912922850712216616559192226036761542859150703614033982124441867951602327546087769849358715559281997816529600516463947632000150883091839328931220958327787662720805504201888000642738803106945796726080237885197940339372418659447689249612052964686668816399535993598161626729619424428111860286208923194205551073013310589489605153425658095207475954546043590987127554749320787555618755308283226383795431144263948673272825778903195334915706712481754013254703101220853457202133838453806875631669175668579696374917488887364328139616866232986012592774689180609129564488558712912032206254544461717373910189910282516798339053293629195731579388707813434750434402454154364494913649104054922115483008410542197257809948701270340137816928778266317743563578842411640705249139286498520864505986417978566417739054302846621872556176140386885189699539856107294072480766392897238393891520936676225106999687707527772237879071798597582175289329538233424360119541806058486807117941887928686920221878906762755034009008048870768406639441253915284384309259985985957754048746722202337814358944525063183883104042963373368164827137624974627720390544628406367348118741319702254311794652388974172609996615804051224652910798880146983696329311307635916869195201821784322504919535256536046932711650629883175440054015320730121130283697906781788919565767349111677541775586093019852604814472842133548937295401766045839462468297703039719185109878940180815523186358517340719711943905896067570370102131059769073569326697412133704020856293066922943083346750417647565130800554722590739430136045503618631671793558646186975203508682961480537357899626551463597330524618151770120802102483093252079892902150069165873472237115576349507493416137274276499144230503297611540352141834609825796790077517535212427115394610929884003281629098762126180119885842145288773331645282947336579008567030554394465312839027544556422891127598298304109456849602244612004641182666710927702193122892679315609924903989803502301087978615740271209300405447936254469405086292676165357144320951470504559433241989226624044045967670045039302160481385901075376610321059349930277708273214616555871400656495591891576866085088246005487457597568375050190284255253068998383975411384882538259714445903167134847181911288628800217125699872217816918638475484977306806401574551493308839548683822309418376199255013424558462414809361360259175603472174575940960683628668317232132633630550095548446185837651686306287256447643016647600830196393016932284188961272034725848522013378057701344108886130643706428168843327765330239645818830040511928347542626978975621486209222412215321116956420339092386331752529450214962689848490664054057295633029213368606840492038581915324963448728717018070271312104650907784516769623167411599689525097592151404995050795093956745886832060663019185081322479230146862733751617711448411509189291252371766590470558745861392793339119409855760145715359056836115212603007047216454669717195840349958808478396133387539138119177685778667758866392589544826661861801613864408963689664175803475189336640996306616392502462134794624187215563970117019627442592168287011835864164718684793136519295775347043538278883536015353020563994094606170405154366247726310161491312361476043176194285085417128131417934823619917711950773012393141920039335017857028208964401391707043375800431246393292072445504458294226187812548316342470445451158598557871072259962091771500483560675772752366617451190290445348303807460965720755262438396229262180771057798896095305045422776542293153433873161160752667535142275200007468075966471245555545332549413815886126440235945297991260342893204017783217684465927737387206786845643209639800538541025927909088147114707633559237200536126431632034758289566233473108424680371073051695916604855911522351828450688617075349892725787437005614175366079257106751667137929558758888069657845761601221571320536930310461283997381503567683911458476906930808632250464563877852334091522842593578431963677115690712437967008799358888858886658963752765375042245237868456033474198120521498090733480515865686247405380880146458403624611111452785063530282026332001221517287747285640321881672254354838884744673160545230852990829773899209778734581981200035703897864146489165806590889137868978840301980886915998052320001216204774315151871188810023563425903155908718121155426833304890331036020584716250059291847064164618300679990420988538067300295090983305603699123527941761701221846546244488444124088369150662693977066322052180706924914194583833541388439459838023339730237670304478251092380437450565442494163112177214229553864434875394526405948337308662398979908569058405263451300339686349439424559538621165388748140192136416693303919231383114603280235967520807430247801231045371919025738089549863035077185348729471695466633948677389461649050593878248271787200385625741131128874486762700423823055845790822694441122548453795916791449762374036656360123716410072207309208397043945182863344949845581064034765038683943438407903533264887275947970438178126712376348401128984588627039944506895408976477854004828448155392037133501524059521068987260825572224721270020836251683709364192153327394189513371771006283018646187459949482683953751249990252577637844051863046232428513788280445307188482633442242455501246214110050594173159592471207210194673000202112685114470725711281067827168893263038263275186072528798753255133463441183131398372090669753372124078494277856881445974540732240610457833098822574190037886388294944013183974680922646820542425559343480319426477938530949712885487830444759767853370175259343661858435001015320573210692160342913328252785178008173771307340518305447764029667539093765535740994564202464979003023919871140421851836107534613309201178200027935919439772311422557977709618022579867278559127249385389489541538618963991412617642676006875823642242121306657254064791903882625116286030245884657672484094574773877947344027721786025420097436303548062900490003244004301650111962569627025065506087759441349573240732975524621827996059612416319999271955001778618373251963259624539072957734773016877693607584066612708750225607935645037938549528997478291010613017295450095607810064133148889266510816701531125246089874570522039261815326672805787410693428520535239734077463620991406804003625594103525802101470266090874831964993718598545956390133211178164279859336203356878716962266447987853621898824710593055759516270624387415539342708128280157121301136337572485440415579521700353925660207188911155001171030474317638574451964588086687571765665874698294447757663497831421990582833385025381451413328619085587185324255341490092873830683587418369819509161485841227951160257393518404711771083311912915384558509159568156457298948245118082886273769475819113968710693320445506617382562341495380364344462353920936254783561063696332109580137861282871212659241010260772012834705262210068610885491292409282218572875757876350156481870061724857687440555498468972274470618586878241234861783757097640663893122281164772246842086493706652835185475923797037781724883135951866107182944437261163632165382649129999063212164782581000402185571689920651587326075733290586660889839216907777125645186114600661760455295729673858508560598686909032222320654163145578166312010150011175021108428353221767574539045353118281030582691176434664642134989641052191703813090456337290224209658722044454070087523533653977617299125119207639252549289223812410746645239366157940362324987990617712196024027087999930594510416718290404917485096637358727087666351596086071920870964679663161172681474182356281282599694226209812788938083513333604666836922582862823537420952358886048779647117085084149492816396869325947083736061115759874572042043605727686348338466052926809320509549885615879832888496030072095284394665439164789678380411192325557379106009588684637241748083193318444177888252343914646200720999490419339496147923398808905024301156852958590405859292307885704901425580737578448355723125948233883084376859558692645035851394860623882985493125005169245585489353993919990798124331720378129664655585524007124530811056581737152648766525271381256703762037662450868745831908554447575075283414652289597914019594048727206450796715479977717554723275014246979113672589753599430177220634528097947401018835734193727141920715140355256825947305492922281527320741452794789708179429640869833006734848093632418813088463847849859122528554746487279349413257475498487223956489135256115398548991786807772411777034396591330840030614909460911444312648049569745552999511883804623577087947453415693907764548119118388723320371424763243035516496003198260585249244678879021061590029890294194439739635654429709193288632767818656007201463461383752374835876024867868065816505038943437015150664741275603694815267601231718093108963838868274195136955355122197490651918329698912846117384357793283942002522418033780530196154697532238049624346577760539089268796045408636863118749000081599672765882223958124481064548446491661138793625519392885440582967260959550910969745229199213054680872433290952155736195110961864800487768682659956886938378610087935958338771659825953381945020980096834566410505281562490055234071275074796875743198941422599070659036073154642740493933019458692328580348754325956421920686211189918155263227951920595805969802147314638389138586141658465785512521949944956337264785450706336568623533089185160842128397177885535150892312332384408555997642696506738651550991137186735239170574692083327581228895853366639740816028410796288144273313334381043869027501550634663300099227806995269643488602694092623546433570028298811034365463057834674108240677194603204807331929030742247214752733742810100933777456060639208755806403208944006966558182236098833477898580556364823138417250615343773410995141576541963145348173642636818650655870570875724857021435361624040957566359693727019563610540802421819889104876305205864893311114760544415674291645373864870254138264238360069808389895224785504014403873654975873294268300792261649274600932217231420585523438110309003113906156480653229095932393417578086492109651089374950934915623968852847910650855141434200958840057699148828973320870243632489549487563330922552504128506580418111735204788044585165810982064528273336843205873737805613827490631395717623142116504478301402542412226403711258985636326299387211650513256031048328668751062593835442533387007241837985715250353756227658294367515576034045693619165717474064531233145692847743722622588214499768099400341682034733769566729307631507426624275119511191693789006121558654501369092576237255455876392129957973727621530013771515867530498875788173214338102156104812466805138864859191909812637754192733462181091821687817088841566028977123335439106714463097168245284506848950131872114682218552564211484830923451974299859237363294859886214593925632162627782045909043250313180868916491557572306490809179722900013809308600739825880796425506933152138210080428463886659812059244189081090778323312903891391586783034423049370965828783383292668735822451402761391789047868912282097501715156518958439789292659159379224573974415808215925285677484315133732987541705060541503115310066260092803733412937953589205632870702471724945219531549523626939286516519966960739726845665170532984690972140241007371135587912434694817692565917661330260132818641312406776377352848926624662464570013452279138738872425677285718330448656997843300199570670397220109965503909052840905044352501043346611737693411192212106541336766204057887671326022345814479159759672346514868176748850722689972208057912622531727940679654122930841375456091026487387255646645420944628087248277333414042503771030608239208723274123505370680134753418544914027702780025516751962026243615689732187170757993879856333441936817413667439305813455428022109176265639947133735089279542396557453721624748602071400760877084464653613704943662519239735198749424406422638514202531439037710663949551646766939219651007135390993691780422841206296814916571348877978405631607583403339568159916004373920787098339601825638365769539880540149002137657978981243484708190640135987652087900239490405496598157050631002198892964168769791798543131417829152460805198732257094899219890152071760399975313651388693061605150315184128965795499072510108636273831982007906969439626961203089483500677049264141176720444173820685961566634648835832956226425212472354718319671995697492598682831824208317525782678590693857542709817336948888220820976276423038008225638512610034719921296944523833372365699740831917997473392696491285276671297914503116227652864854132440334197937223194065899100471542922820050845795372137732079344562732751596941537739494198652915103538965129942019801705628405059692040570355731552929263882388527849854587950172041087080838513432750059876658822549536224750859035025050669317716070328384328012249718332265097879763034868048672546914402452269584426349196124170500133965241163740319943985304378621879923798189982972751519963906075068468717742121212820242572355598220167500239325461210394774192939534592112510814521242595133642822494895013666520364269370879677470563634244448456385889481545968611841445637234806455271735716608682825801882768548245386845056821603171559113582145805607143085768930060899858261086934537152994671069478576513959852508487014556803014187711348608241420866198805470578298640890850614627606152265110412550919754945886044884311615957201848374042585670379856757444050550901825153959290394153272634250272125082650857488436217840592164920588738983285158160958161233047418366334317073423623796829891304980336305096050768603914285408525502853815550055212685271366455949545075556677439940831571641272907244322482479103019151331887195466426289784055040516830147930754226328946621199865253277505244022803789175095311767379661037602350905921033383264433104734770707109258172946650387498484910769650695470690243220616647104375724570271027335767279698816799705591086248735313609520236104027297864133194030061100695848706184307925308134109801125696326779083523283635165228275148744436572377296030569962570392242922428592423542645495522322945936674699370901954569077259685930420626858905853876579451697067531128195882108828757231272590319142002325899101194709646805570704445934374283331908414662425095507981995043924687043262055403511552868498934924468337156278005221372691943834020759396486901778098525817272129281416581198330164913871659434126715386169541099703661951705849317338226484981043982560815704570925126437833258178273777125006564405957542742211699959671058115541886447529224942610308667206052868305803809187782947264348999291532041397280699243401223578043659430566411661170729255107678381723121806711459870215498579774668622039002205867846904479405116355882939092942186327241902102808235135533100884638149513616682050830238791933506395900974803310930616236390508309049614673729464099653814994049640683039430398904452667932424781778995977082886150851737136914820694890486177215509850334787566757758105005445997753968945526602594051225345950075766866397599349722512541156952184172052302551185389488403473280940824815176363764621191967589275708325028350733558318039817554940734241525344107007241739033280510459773522871765544574446345845845467380180446643070540413885145242265483890708999920897725120709134016787816494867005516816821289136187640566131132932539370942822827625768043117607719051765207923913114346318469210165133904631110686557582932728792928182820476018373821967229901054112865746913124552650087747370893286086836921729083211624160165421722729637712418497100893069024448131893779679583035064037848153786791133614429280012328305051246462451875593068796541042536599686394788621620798395414464640953444179409674593361518661988628937188624766619187194945708444452069735913145116661075510358567886626542209247186474266627696147538432295494035510746908649725527820507105703482173998918075229666231247016913463435007988003889495031515983236965741499080307908152294996613517693666867657724070688183793754537725117417244587729271738387708512022656112321145060234063408743667522477184465707747058839435911121600481127695569822763827645157382824023413011719266092170470715856488291132870236487346201037348900321330211158736145789896787631100896342019811990671291111631609524228435821814537134780828816385782770995915926728213798004089767438551242236376691961859049128997332512789527118541917651754633865353039403779772070102281567252253374742357647977345466046854503878387192689930078206165023768677171972216706585624270571087044810095661864834879048626430717479212670165753956989556282314441045887577450998828171311157123242658645312036642769778182083782072656084666999278865436573148431367875469394566667827317441857674819281290915345048516387093302582695871074018491946500909164329517677445924899683036603670737555397222029509729372390939120749181897164021098066201856016416096542966569271984885328698228099925575488363977077503446494680628817647825498183068174702547539410659477175358634191152583337691416043153579050031063030625040205472395999732593687571463468803293616557402548521909863149919980664720192060131347665770250082249653242798444436263185978471945111818239668876626551805978702185724707620568011842850793637874249249593001901306222089495983267210070431416836076512225371944808811022520333912838089677793423324480122817765913198453955975677157194699989073980284507519975235550523577813977770263333241764310204653676427364260175523657561488658944890812119916310081200773308616883380704984876006983665670166004642865573308117589588860013299166224979619140485614362991929334316403972498196364568989879018853928492161862532800508939068722591648403110954220080771503986020476149221506056608345621138347158955716501747451066006413151219884496816846695291034007622748822168959702030908855887010372526650550531062167761055766427005887993221043054291034297382114667834861781291305950586000006316499473349311442401724691734081473753815832909805547667031512831915479483121974178643356143739395877265229783611180660149361618113850264585945969237632261032290432695181361686354042059694408483431849499070509246696385308800012436972197643668440199929536294943271965272048546586519081126887813052709893591645515374117646035134351547329195294699920026238144084817308326523534273818030610533826906571208077034523627101982311010879107371925257617533068993640826398202425898030865111921063397024186105754907544853581035096289062962443117046508521726549039212970764662416944416900893051421569092949571084251755740846353470975770083861473988559082677331935522169538347808647071456608242798236840888614567334152883420423310397020525713687120928461759655206761013248902727517000127029176188358852448288802245158814117300511341377145821552054943100267304687765042556316802515679704270740434911219576176338472169504186335059665236727463562298003257347508212112224234538280549668039289474596324888649389755379875301717085240586877072448954062642979426495214993037004288097902953634953079092338097753052881680735106075011238715874885575482422122277821681249012627173607747606345373191361039756276069786640971746435254830965731318128042066530641880535141479892438797529325418213181738962945806373292270733124863778062727548703833263667171615993608709193698694740664086845665516764052557604756786657926993522825399550885306072104004966108961497011251591101167415983478353697162565831331749870050898577850683588467910710860340171409033011605899073440088414865004981100071569328031525499730728882749770707038873230611472218437757386809880787631197663708545200255407439788511098107394734114090103741686350670650217224802537026136240716921670329269533641726903882291491749743884618467590947133048328773733610270256090973611243715810202505487625183387969111933106106432844393523997320750073701234061446684450820748518783523357282507774538843622337659567283604038906515774088415107840056466506404107655714173252838408037691870446266782874322864695008930558671671928374171405901822292929375002804572720283448054664805142870690198618464033308897038580715016808926607679523852775566175284642606012662552691473223636040552650024300340091738905455771828235604280344393856484470077745995940981491869222616254205129810337746627190487437482237679853719210518371258698251058511424151471602987968712732328051930925698129005620888811743868301908055626669459346995126368202302563608693781708634530040193306220787424210472873902861263940439108825296067579667119416664944353397949071934721556956552166992937690527625463679814133000025659701926947709269079457194443721196220403866927021360360525421746148082066936946575235246536994722738911066273720166739730030636200857704364883941010916002172995504207081502779188226618409200174983746121825357807295338796551308257574545623634903343323641563330469475961374162769246410968801504545864310422183000329936298209657902644511495641461647192924573105938105932523272186485233285744203747208491978739259310155662310911446727871350052190607296644856681392625856740350980251405953797599473957653235240692213166996392380624124171276340742780494334244204616704751345878771867278025154619454439543524391116966842947761675770765992780477191103058045554153681469389475106601650213823831228234514225691849154692173102485608457436643113332403564548342140435479869667760204721802884145810506191803235388637378806339535634148581681216584093673035224607965209091067367467960282613003247631969305328259339153837500120520193457697533063253448981589391852788988582034726510647996104073608744216376768712181737909409637269473977515052227914331238659202489998013810762372843536576871199089935708481505872711892925496462024873002784660092280890642182253721614446473574952414430131569603117012434010075113417481638376760486820265843466869328642427659982171977596771801653921029348465708901123079012185387496454359076793266800438130572186369831682317590506448873621316087640696873452086703150985528211138835748193223736743443411199507274833010912479447924409853050385567830688032380618369882280854175774103516361858392930291914462370796599224125147896772776231368217994029469535016006301981597663897770977969216345586938318950960932216108757153135338425820211317720802691662568167719726059143262405342125065049035886301383316600588779112288176924692066372419239450492617864509174120995118025020946873655958974084849990930984633841395037502224453618421293560182357648407660488628851056644217869614261203617619890022454717448517956823195424294631075231582228975185968274448935370109394842531627576887615632153729823776674772404398313984978679477403790251036519472905199787751753566258851455137374560818611560898699092722760853393344336720735659183109832749199481546257138645345703717275349301235617033041928355556093249507487269252898973201648550263597438993100056325763010038530945561828001066824943882160639704868613598304405672401397508660783750853628850905684403301674337043190565913409228002974617100929243728073160247127030293546413644395964669079684086967781409884576950313806403229872231652350999368857786879203694253620448391152913725359541489712265494628432978210652189783750192095187259483033053094593177966376842600960851377959057804634678921998850281134460103680311833904911545108474700148301077660715328700489694335291974270544396100441712161591393523520607443090206224698422116045188552672692161143097843863659488874703639673969954641381625314750956990781172577950449809209600188094451802564840036525634006018426416449385010199910559118720966632157844011185975083375529285606650343552197567716719965922852434070327953199620214028917636466824141592147829059442515341778928040734726609470653133652726641655890983312272790283440026080566239458603992680385474893096722131763270867772637229239105330361875398749063054568389253612317439440373279169723972826835426135453284492730307015939035569896466398634885860311558293386954369527841958460827743008835274372187184510070420460545336392944716285224115011204406818617162237391790612367746951121326259666518664027848033426809048188300425580558328204045417596736281235258784613283910202277380205152538949387363720536696255611002535963058646598487420278526112570380018781103995051168758569933840868727254282329822683770443892706483833731713062708381034458685497931310128248742312426274737173197817232426679432907963663200515358576600669535162886421857307499136158460992374245217967458412291854741578144394381070761770127022819317582111556114833389894071856527669505911125299336517008795014179268267592482272097686771647855006588417097354901254253027027334127214247865002313565146811251006371714093584284178578449732420307832498233196193515284641634644088708629372282168488339364423303462204139169627317543615213987869615809515584067048597039340128236289515984703172447234702213071629607207995287955546303149065826505457830352309750979891186329604565396057018551422916549589744891124404499182423844229204200683881573324308578420542588517568790561585707165226720648728122779437138106732178995224797742935546397930568622790152588227253921093605010190543162871290613427246226112352228227235565187315065948992838490423286387609973368377290236404816522463746261582960056844316272500473372677163739581662656073293614235184795796408322289083175930053091743629468115793766980835940665464272036429525567412212150420711653090872103032885155972038312634782770570956888696995053285498373220151881354842286335160993252019013875343230775578578096346276351471415164648299190047491993355378261895109503037527709265457231314627099953143637144362386767830430999114467654383458152988981154441370477467379027537794403312871358848869740680557516534533930977502961937174605698575910942487098596208892022550339643471505012601658282312945238226385944283321893671298797481782287319379629706051072620860202159516074973717487281265744216778407089034071780145006073400195833466679178537948402442791353536390938550144637257819451495423896495080841979054944139290377283826071980564168744622550508740888815900469474444987860095972546116040804218463264879568888942833271905434044238414573805689189089894623906004073980776816143599514540729642280734833761652993566269266460563497268162467117125240543275271092716316210314396576488915594831665801208216010597953375135980615276793592784026497777603205497584104054789521176109274309800859361477819713651735548362733613284678663659935082368532855362970217875925062587338243193609835986060907113951772518241896577665453930180974670696862451871586609987743174037100223781148832216659450951661078706386326382391963718508469395848364956691843381518959380742753429385530751834403099894805797659320546240946158326009109229519457550729860786713970546337614618030889767456571777031848733762264322258914020517429376185348331925433754202859263300236555093023157394316160526128516884526312321130426577582990048630654580350728540409985645138259760018660402496510977844975595176862776869248079312693863411350726305005605848923037957639282219642542648767817265152942737285169221038062201358690710092575009948174497065329112925117199568614662649995056372151501372298704602673824794670781842228308963830073956634258047402491173232727412693093736048759612036292893286187352164912662410184144976704918578900168243037820817198332916483805320089671406650318926847111502280732431548947049940105511252912521431598931359469364471299368125894326191310700090905346180539332177311450103095789100258252371849659191302151615167739237987570762042211871556544590278782068996894396438346345188483459057102314499596564207991502660573539835579056271169163747606586786020622117971668983116014727263232701044013199440343911559089128074955339587258506694435315380590538434866370491587637552509068004706949438070368849880222595079525411100231979509774698332611558743804705777423977912752094491432488210582549235051911478132539183581000533261132701376297763100812858908598808686152101421731705665803105982201743929037250360107331122807076205107062810741796824681132636743312037917247737437407102117284422658214231180814278875391312271035605134080949436073731279039140011103756800541051055347674675910286543005389209591767912292045561403609392071605549635024793681257446657819618255668731458380135565403310888054107886100267314118502536567107594364559090150193619754143822615589388493809569352461980485919905428170783721436699855836618526573793118023345719474253243064332092019517325499251940428272216239137394852545432057286969254645964669133305602752802976710620623012623230991600781846703577592976913554659849852547292762942954104874442172923385018867696732380312766238240531572719668968402548323817019714764775034884003140036301715088545995589654866646233606253290449916121333227687876090604895896960768522772237575667424571681092404238669078591340531497960009246103256187669309637752190501711775466397198986967783847361229642492992548331889510425613448126542761648879115015225470678975463823161128370707057782700239299100676773101897027087306041961974212521001436320290739106291366953333204189897159356511946081942629940495459851006578705257645617996451311419268847500214946052067441071115089166817143043296133111854625265411631108419039279973284781611119895113751819480278732945972565352414256807628316182032837466329911022037183198413701793462698911743033016666298461306549660837950164124338360475100262249429070728546803307150701302625196789172658801693847270560386129593419659270543187384482938694123660729591912829772927221448174136999778963275880386636157300130885370015577845010174201573965508423544330063795848958259212730833994760686842209587060058626272163826217443514161379490186664643432057003219447000207880043527217144922340259807461297577226664966994314086878777560459605222586602227793805844079877084519152305062877325640874265465600047556366554936468925551356724967532471596135618923253503875911811008515992197255207062992341970817176085425239902362738941016554145677323707900340987546510703343331817566220179493825563767832492216423286846550399428489166224698484334856995108664926344329060203826065671054307461268877465464043987547045076550005705284424523580780852713961362948814831943467321716098257028021577146748535949594105559121751117023320335104740209045605889561374926084659717606884942219689481560980555910011770371174364547993470717080987534490272699898664201317068952490492421813929119892449344755336643447626193054680546876827015575398427661131306359949812725498015534760816002213623495359950867893518075430633083349650418161917459736001084482422398990399849137443117611223985057437266269161097452204205284128550182113037650833256106119270530807444251889897233440203243664474472754330245693281204633996311086916539740924568358504428972686298324705263294800331479891334680199321362834966399282356403587883811777598621275816065598678822474164912124482588192395945065175115774132075745684739186020541325408199806688388188961381220127921741788234480872517879928693624430176548398891478114862411811459812390499319989085070197573469764140143522081067216293719685699368377983486022103349972343492807613163706486259172540458582885539321867430268874556014683878516743608738620464391255154489591692778138247500822672563292599972222490050098615393872426548775797289191590092540821081411431035294459642103373376483542265385977996607687463598660206114053599391636447813520223037641661989286266253985694187918691335058121816166993175095950058510863976589656593777903111171437775851614728793874874128691854029528043299157910334481186198769858431224946785011977247729404267599446070550544727784484257443343797747380393308490390603706658948248308565592302232963230898229139006775662941061562906875692973611382985502079831336309713557699817680932795427867452490416664628220528434674521734289777545285098833302946585220589062078143530348526912476481992451681502645684243371741751636924006788159801075465384966553996492079552263467241777015202547534022334639953978279063451325267437678023651800594911575656391984797314989996991634250225026253360001875690112694931194411659455693132629462262975688802329277622143185492220121008568219409079760901919117523953082198536936859753290270013636767332760978955426660791921211037096350015300383186680312826354441458521472227502736356063164121516194820665690578357586810081514909084123822753058180860519377192878077156631677191543667917761893802836301571074043475505811784303244534133509203561355581675240177204020741316878564203260900417094471787767051893941686394090633996705237846820042340743725005557228144069229463081720072734019436207064050748213145220899892625199948811292142857788094969552765069963109870783423625659017564401952956507611702831343992811656878601855925828326941082750160017281271281102975230163589774217434195813305669057811616997701122993071065469000526144284578751529023331552138616001111327906519578667146187851249298750347844282430738961203551439662740817663834524412361009585126337165351413989571322064780432222547456924068308674323510431416402206321924281702985587873636694991595937847113468780683381884188857731325761818016480530075897389456508502629119011166518173771848157774100170997033995965472735188265276425404896395646958855934549589104497120474662688858594726578153154538014508239237072118696896550200448125685059657145787071154419837421938145369689818591165696114752047521736072673098453677128928880987152202998495881617398793724322815412693586456680517146367598331425775582544572454355895496352111944777395940141791062146630885738911785422220858951458663841235666536144221588135782702952562930605910209648149637356828210140964166685571834184082313132750198924178842426384196084885658752352658428809985328266976099712395784260133635508807091055148865613305206622546894600533050534808158958507124295251778278365176040687198994436142802991811777462499128071817292280199836639079080619957591895720755450969788321643285989091086516226687902655828215490529450149666474135070509026016845916828320883389100320683339958318591495146872445245229645418255917886365556071444890396560551579706659875565947848590488474184412129859571855618683762592087075690418267987616085032033790593992978086899868609751560516080496599098071508839535795649506599519524542136921400485715019113611920111352491154421531589758704179687349547057670951198245621274791735373222639468674921690771661379325885821507486033446712458479507052537464243017708357821207663338141916474625372073272255622853869356324566877438624534315520578851442321197598565840453492425779895631228554665510859971087941467792486887508871799335699021575250554127032691341310044868619066774308748051823617262573332807329043659559415075772641848620162244678033813702899762721494187325788242255987689747968755440972211104443803693141147221148712892507520195140566788429981522894944158027849828702628665012019521481562824592871201837781744154308719887300791308083164068913524499909921607668648225265062898812831710404366595446706087176880252219161521074018636843848801674374922997523241953266473161718144374119915506412988267896144444737785345617650904756416933603553643732621742145353358154615569095450281617177724407984739199160910733152813394382690046965759450855918107445258742125254519782126617719399993041751486248037158641777391943514184591475265596817326628580910212048380023807986467623163552102125140075801034534425049203095905854270339265331603678840032539422053074386047605996055609191500721861654333202978999119886356479667163025619981960922854415806162032920948754896038141074203302700493839102539267299043764741046119639158589074715383605763278014782354875573267517236420946255724549656382329781669109819794294680934959777118604320388241787484167293718844502240838026939201142888608536385323102936897152280722992075975065575753049210346968802594112251352134323198871253580031260099941333683251297652758306850659054730940602186251276769322731893325750694445089703408459153082918602022869381333536572444052252133530503101994628763472912493853938278883810738285156109607922255535669455975236739277955288401310075217598209963506495363458662212473586932582078975382806208912385103482577501761063678806937739103239719768607795454955023796267341196697062684183362604699291461938668723303856831561723621942758323710498252149619771014519300560008012129829259316879367338727976761155446314271112234694412536867687301602117806562765790018783505030971676870186931570732601973700570648241889139394433288596473495921912685605488964319814348788504396216472653869122284119265197987317974785238989086814514131344274481440229335484110009819144571672404584587117513782234572759698942459834869278449004322057616521875424664095147862021054683046545043003436663293664412387258274042627570667494733105183120244928837904535159701186287665344802433810914302908374562757097356356096978201262201073244505878897583943317833513904755298035504697502734112220347611141577700765335626700964840400190023840590063033704357422500715321288925877857125701487121088169842795182254328965763092166607376238196557421995174833695585519240497870755944221968256535131410589109337221704487634564885160488940022003051373953396672740821667348322106868049561361917034828266933375902787955559719855055083909625338300351876867783057836844604668451838349777907970359814873870472857599241994328930365187493203093274691033838267940622659707047276527715070044945513607527734166979097608480364340466907079953580251541493680337770996073781935576025561574794723386059664010669316944913319903713039568496263433589431200744021005060414062854622044099597220232144252171834166139451526237611000253581587694207350463655817572474106389998500836255701885270950649230019997516098190402060044734289295845705730978526661729195139040677279803669424052011264220948586667429165705959971257024523889080344803603970967638310829826968095098995385091452737918644476566744665441473730167946625306973724790696196992091772551863684377519703848887803460696910007838648374190757646701599584971710419175501953449824722779821551867885119792536704596648031234312333092013578602510484597966640439024719284563020834102749083017240651381998718923202612367756620941794627261919245008287311966962315356630999509640249317752440165174177962169357762322280900640055988964185705788098100183359538775233440551212260652761983110479256063123180743964169798293365699658788416806351774867906246689245404536767132505470220295559151801550689655986590206911102428091195894825280266719613091038243766718043468464894742267354979415020316712246979508959744099648727276332062702639724512337639117483926040135901787480767147490793058079983770726008203247674580467206185523793495848347693307983469312977715873458619196305151783730709097323849575649915023527818388766712990424691701759237971712919008003334724866282897074611502813113946192862189784282713731913365017948036476724787859728410224420101677161152080517086361635921830619922050694167638617284875738515557857210640683891123362997663324003314212506596460413914805909267100472399836950943075810005822891833907305976529364083386981791743466206109044008789677664394828740991847347317746173117508595229218575788465752116875611082286382236134648687708911050855263930553579612849353805935683630549452006243201490371840193197084923433418910079580094452217873938838046583692302446514284104459625678684098936503358219983031326076020906885258914309125016363138928112258794692245639847358352830671499499272103282284445685598364131691462445177961587852463329633578263490183266723117671981481861055595770520685853239513285428173076936500722315342610735274632091656092024145606137462371258591263721006899605274156316842327113292011446497334322053995295395835434460950666002140557789656495198490590134282772432309716564343690980736420594507070491913662989234811276673469659508711769943202719952020348688912173566779676347942745623381892251271547395490037060438346249831131655010852131028850734654726952831488183116829633092352417597344012658947586399145194028633536359972335242271203372542249404069986402332316251813434165233075159914213952258209060809852297297855596378146585128193663240252074207921170502499467852196597348885494809701896710407622296648008716286062135609532600786136718363639614430657743807738046508554783762008075929036340063031662790674596795024026946742874007767369630361786699991805625692799571247478952521864875472223334720657372201195072950577209302135554719403172172487717075459725824977478925381885878212808937605825854814470486703649705366267899119336048660326313219189071811633551499379179200248504886289844314171276055254914377636326360770436279445277631285653489180031932858021064271491993299007497930718031589357445355239984298084010200665922672487334632642238414085769763534407000320727853630775155411981916920652165741072190074643683244427551976234711791790712757435399750756149039929781925671468935660227739484487214995479260556197773652904714855085918538265051827968365698875561412097800644609052754284354364107930254049525632614792575342674940676087517751751452625964393000408483334211545985586218223298361966919376042730472240470131802737781674197878608899030394033707169513810533687721406044837603301083383721175096112160089069356370180583473043841834889811684759425434324247095769393656775363939737028154050968362815953399815719949175574522684355465763616643874312204356977577311836458373541287299348270959387164959193658055788316032410066862891248398847566891570335751135208791989232366032632438657492781075271515135999571344073239788850023576350159460090757842412928405903934248439281168049656102339598891560657223388732332777447394431160976113737372669257694143350543460582523039878255651883737984763742659245737921802477351926778617828297131492683871047525104801004394579001705436743648575534831469307341564132413273201506258068497200186468195724370395245323818684321316978345060587621107544867348593813680614922431571881825896687114936498148078457867997427983585535258556994187991657324076485263106774277183524492885410503869790932071184667015398575715327519340091105878361651706209808887955138640824728657644649471433545851241591094998823435094008429758646633882976435107514891244746675561729534914235899579451756510847799619752613215061540689417051723555713297231025415814230375389373734109467373845509134183655128463100037076771804398920773350579741940141581826369251904690464585765473368021815305836052838175297481737623452312159546836065245488237976769287541490597425153018303963487803236448786121176232695061812341791169154200144656150263215053574803277297789044480105121677258374871509552140664604188551978445395595971835808572907098159880896434371791693189623391082932309427985744295646632195667192490788403245282469091474800995441051349639819958011302779925848598772292036149177265387284450214430123620654855199840231930935203688327440847290112933606589559644180619408522071507058804392797026312517057219591135208091856782089431082799899796403531976931587640870801704812592354792121040277632833955296973168372814325227142951342008174480514657475968038038106780748426483149051444996729723865277495775721872105438624711162737520943128080683514760602879949317448300263197874668452296628833689143627355628291588774424206039341409865962246949660471995449545601857811890326991482140767633029550670952648814086619897198628521017645969637525592384534606683697680544280812677140738740612565662251889290626340044435483775395323751029997020555209082487440556107963762318564507825185116829115830060938290202021243418585032428108405146893726708082415052645339079922061391406766352081331957442664995040058180502223456599334775828366314889233333267779509223459656092700813786424343172319546744791535932743080578725417594482920269118160489755794664201613567806028412966986814158396155596684608323480508646409125083890101021886380490840813382617993604903103130423421666831960542899631029787524191953184527543693440326580719268406141407980550927121386281041894625143787453241716704919330598913543567875273790626223808817378529083522942418860578583782773293603170042473343248961023787262393589973767353033102793767037416441892452938890592174854699513220472127951619719100152219467229617868140120428165827126854319882121961885970719214801938344902897021333940068895948430610841863875311046764619513717902881124412808194908624213716844143085147450419477566888741497111487502841954107346152841612558678946981901713856380201270622030379497985205006035338800229298356795103552950921814400268210632877855920580470702645375717830238263752315011689358371788960370647014054556433893832284024179603275905105880657412967991224878614846746140874480577542757030066296608838148134256259505090022182952719031215171734099940318299741138675963707689480823639261164375723869257196637679009626832584074944016587561985955869937544845569558305476032932833077568967025998756796854082872676224640218214820862421025351023818392593696984298563417195781172175441277448087057313348028704748021523178326521125056505229772670997547081269792754490449041828363523769626597849377769782042627156945687073430752681894045033173876633336889885962607940861627780794877210539070119209266109712890782524220633266776117913109365237696679905086204743539430319158307128727986888330580477980702620518521007716033803215523270862452197982249208001104296429706079767301347743148365903905185381890835528943377676720814276731386112248854690768025170243894943862322289712181511807957114325085824751363531861126090119371102188551819154187371313767012257435472752303750648532244703039545571248105301162140684034465895873525900223493961173383256357798122796148231864467036964765523501095176477145280174986134915566979804062821699456252581767147771934107553128958706710758060046742666600471555710412535798888805825064509900829234801132453026566273396868748485370183074912847774135783541087584034135374845683508196312587154268339979774504459048054242913634013923834397555655872805916337121488295717734980396729419723776423042103803228301135867169495674880723193405376231217326825356559639894494641198920003681552333715573718740332400832478908903531200867593416039734353344800291394844862825820819620601952637271218871796242729154105834160647773864150223924741210248906591613731723204642507674508133409216869532598772505556568307686829425146794111829177985647065837061655877724777687501412039193066242622035517552309480273840073626905924060664923565807911237600042826342555723094713961573984525340112214202044224116501870792644547176635524880684945537129326678100317335194688932253853061125354660479282280818856945329174412832659824510459488187651893755878884650777221100533810392186526317229296876111105671014651283614513737439720242538068527031309779745999217565102856658620050835456537432854429561171226441165534139528136139325097430928552627508870702732491309262481663419210007507755862308275637828853887634907792339254940818893116729317363235326919139784023629753240135405125176508224282876365561914320853571292494463432451779375542946042213299393837325481067554736891576492645156664710819171751778009255794651844093062095267849514008459333725014955388300101823412045343782689381828864091090065796087310498316132755048018144827023598813136966448703131544802870473176690668012249559022732390141930704949713982437634147431101415639547552391378175375769419793800584078382040395336212374552606790843069158546953788300838697972845946023698575794472012730700392569664405949797728617875568583193064389929469500498537414280514500839847582287729145610089396243557975496962243081132263713421892077831919791161022657214000277592262965817941752132006500459984065897703510872888232487196401815691860426799162180709879882499359310858378665886006639166362610877955322153007070829523932400605879302588574671005330510586547851955863704951907563113601527310275216991686291887157399759094088570514790885685739716655140191376086164042116741925299692022569036426296525668952480022615603557992081477100749920612883061593419305270648801562194507871512325286706618394453314037055613281202933804506110785117596530726165643099975269167647827439029822316008540788099431192853351455071177536313464036732809145647691977837464833942013621173015382131346414715340441844401094986659049248553480312832498244867798128780631857606470563574753026575162229103653300916211270552084750387117674864027155958306721917383533929652930585125565355255463180830738731356189771840224157554889585035784920635054190019043717403377040487704060375670628726880881054931362932193599642638762409687578572477326826560410645840353312873449127117611263860863043450203154474409685811178780317803717832847467317677747421063993299648065224853761533885637703977213637304930809079040802501626700967299841070426677085396050927607877479063764593059364349790208585514894485619318899072662959378702532262577035122868624842140836292798843354048665399021791280576722002135697873954851206099895874880622512849465728854578812000322542887143350767133536791388877417481947807381760093946442500288153001925935183936516301014737315363415255378803569316758993834762206272955279729503167028488375627487003903313617029879800169702121915636587519184859934656805417977272386526942817820524383006567765618592306125949682071528396703589204284567192753756857100524152993465543798687191267406091016143796032481357001284892594723455960016607001429902013786632708551262951337672640377087416676456346250473673068767905119216469347182649473076769856468150792588210211804449211674578022853303453721757962769204093180294600069492264046785939410489219543318074827058578927011073011049968866159346111190450248517923559957932350471587223471987703946442863321199247870870809581843530446227034808880235897940547928265652064805240615779600970895019676849524224038560671697838035295214402538193887873136602212972350780974080146821863284388613216491813374904339858411678480970093023760511321913904488014916490101616616069793483905993748004349471850802484220696095584156696483085457861854058358909648281245086760527508452032600231555561797097037038855267780018399230681983732637238907428223315603418917374063968294838461164424359977515161753256808920382449282770278886003294827395274645914971364909150126126146220552207869431756995953932581020044194792517099530240411419172153935681578944298480825566551875059179430764054650382145845180600782159836936538652467916246939224562369543741657920631617865451762102443650470369004909608951269192495421187385711999666042251573631814998040052972709912490374796318902939985174047617190422693781993825659714283211917964106633404064126363173105101174627268537234564434983124480863694845688688143174900344674486450326527917390020338190719722508420850560312781750870208355637495081568710394776904971281293240720193034153895987806092347783767300429692383345312126583146808405887117970063906601145981381649249954755164358796533135484581314216641684724215132817855335435639372549643808318551504742574834971510379763300918017735904232462115465037937072653350590049855447048177819578130187413501367266872422633931563701146475900008537573324705593880523450595770214502044922427690322853293932274526726701638839952903214040551756025401305694490569266358280439806760078605167905361574228209522159148850785835315493225699447583744000983742520164188316673166675608252816874211838125904323302532893586718187907977155400768965048306094095665302572178768195779372756725123953632944622492376242231967707708120804266676524955305489076452151385532365086243777195687237145346794503073336762888809237214152438581443216146728039330665269428806040088803438458904181078323098070612691654575943861192257089853545344882929471669678138296490775912378401907121993995353626719454790874012240228316539094122957627817816725142946426077211444150614693966416707860145691184545230260877638325500914432526471489605661807098562159222326623516903771683224866863493432192567254190057834814655286518683040147260921517997658007707593955475880710532077015182544522769435198532536922094798310680103117888177040639561780144533452527395980429922711815895375700952592593084430489114936331512417603640784219365541093113016684328794307774859107213818024833666348517830636344760061809455708271576604961130399598680246289031517507029735262660815088887422505323848968825869956979604470767342335051632735051495918416156386004229028266748304014684787751116317078811334973200749711002246194997508428772136016407286444812252056553032873881434809502091755497293568649610390842409413070054261674499426251662353322744607852126006394563870443228828688127775559153008944510639222262595586321172108827232179008478759808257899866509526023312343739973296670793032790940125924704365214716417826020285182887280887726071898348858645696657788769118098982182370721288830489095017427692327156176061570062739257139973829632546206901307407149630937459921788835323962499421394206608885520511504808476662276819504213969164430543128956559748065525403111470698244498043866561708336449186952333282271374741162029821264427577172785220300753014145748447571852456828274402099103533784779621262533451400291705926715958893866712896776846526682812676746478636040085853283404693123812203079852617361357555735199408756573755812975126026156312713345241747253016657963671825036124879580358622768974362762184027195574235881158331851824764489829425157076488748152301887079140600827135759393123413104720203067420976727383217782435556204761573630374704789476538816236001763465958322461926424960325085404051261655393410378174386986598493260032002497059259567362176559258153490938648896362095117651085358594340145983813774408374363200753765113670810812107295902717475030439228186188261810122633366600741829467706441536273982169363747494244642046392506751155223874314448988540722649649392758097838578777409604420227863026219290970725588283762750159109916730078609885777494780855462304411533448236695522747316608623258883035384035283895631208176156850023248146485750253637801193951750009130221496818514516166121077870787234531741973464719299072886407462459417570434323311950395153640384946968568097703526977359323763847903412918376383612084950256991992304636028013160997914333895229560701030359774367275084106484443259732030536688648295141678937255731766765182327820457142062163093425360758205094641806423976966602071770884461296809401520994304441279143736786819320278426089215601108467824358885658684593089096404966267022175769863405183180255907899527720744548798172370572206686612313321893430023049798284706726174382694085140424114171116239984129345528245329157999291754962030222890814363527966973789405926984996261777587464632060728483254333464867606868066546378819734649968563979805980909311179098864528428475633625576214133635427956092815675281022563993531086478483728218459454260574686189880253573340424132340530875215796483871198593649351053919547264030698916774796136892156732187160137250834682867409125817059269112927747573732705159863407252834529254278098972298177757517957448819654956576996665232656660587739383994992283707656386708515665543669957639581726843495167301851272668336188767444670812869842412883918536696846147106734175387706664360765563463678720078149910214172046062778150433435803314070890475254376228300113287977213037579211773457977487924795922482323071142020024387036256200729417586444368117972274785376748120675830244624094359188777162242412548500856034933289070660537445219316044311330517619985326056892167360978031494823831447103968997471765130725237516266882393573535728393600789261757372373853050680496845448953819579821658687328562702718172295337551880604146881769951209731323306755458586955934898543705029369016670704346020932877201352338875476711160652310338907463646800305339310669179613285249289826608248148527776722616485443393660724935043661592363722511344454439958288459129276206537499217898775236814506912816195681746597769095427152233634011767645675622306068386788606862895730641884165004878243027835635869433211534053867466265462272955555642152083813620418123966138770559457695557897462376491073192994096677439059609404987761456430767961237031708912882635808003901792656901169667887790511138964121607967974467751075429410344117783659371488705636534531066633266649752643951404890618564589103352792378415935954543879677431880780823489141080893646971997972386136417224420624486327066905999137939110248717692091188277600141937850701468169806372569493225773578648898639641882246872489859138033058506467572211985693719832510538552973673467936983693987363049985327884851930092624282006835101088809645057718121613399624595671054389703769185993905093451681829255151722688943253254787166005166342991508041286405107607130598228836795868192280963339406895984636982847966420431750760331521317006192297171580928010017186464028336575250785385846625679262755359658651352708284381956811786060653799284840010840596451877793991772865301725747866922256522399015718878127039526213286484574449096115680056493557592645762570353038859655246177826870145347993145395852373963345099014171363181498619573749077993914927787969840738882692029136580193983926646796454715976058196117197382160974899535006187540051714669627326765085256092615842020722078452926773628551303903460339945977626306675481999231825846391071733004965799929492818808177079049905757870448828699295369382992996775910683207909263886765190081996751871649654949771456570201443087360847121352622144482376543111846535122177978233333501302384673740730084877895659656464659647657178834602684020819682171622427637874632906449051645141212673224338142968979246143771329261293198317069721305044794784631148945045953709087808061018630295896377802085736380126385732434579482932268118830031988455055032645978687375697857120106224354481040248908032638819482944354199313609972207304010610350013504116018173542831737015635182923624580494129313886590413512777887854874820718762346903318576730046054896341463073786612310186549853772737102622748810814244765094468220811527249772130563337283582315647902024473275089492741982500252482691333865608121169008566462604249224537956502300974847438999908664157507937500472840794942791262189621889796462132907666403802479120929996243602380269073020981275343745206767942726239362191449545483460261868853558638244946098733556201923866844593655722097257308561793010758667727978344899149307591283966532273731161854973293614528198942806209612087157757671956283274787670247501734922940457296058335753765528423269226540422575654280255173342951654073650795245267213734448668654455444862920792826106845579595577376614003225323923504142279307981565652804282496092751602843611689923068509320864168172321285393802740914494764224268677097506033333499663487670952548480276612136729064293783111643696866762926490082233266873147105208030666824588652756260368534725945033319881937581017570475644270222646856931154100242109366124978407344812873365276908863612751552382383770773284062069226494310610587795783450326821393689250872111836013175803119303208943292269739472311462936540052106658240190462822823111124859814230470567379262757163860908714975962032680220472992454827343819464722902341016229114435719687565967608257909751441938156205709511520141665545205771124753365528411509298172092431831669015996027006535274715570176127491098117905813321456066488581137444538840633121759521288631548673345511532518442373934989408979582036749683517552896375609962339395888538034949738409405612256196538028227418329038683945925434757326738854058243747341769459292202072308189899652265609428763032678273441277547359782794982434547922758140866613097677281410508528727701068007043729163704155843879568879653342028857557727429417276065624453026062707774205283535047291593040099730118396723653601701936303793934467701013071156825141438920412046910512803553783500183260972916869901325925627739734416337323419567601394829912779181955202720245189402799078973156190953333338484990854235369256706518387354334437991362744057499388113537410019414563193705427205746584593003392470764001468862765506964191364933167510342882119049296570524402341496241866041129679592578641983230804232047582687636534396310528552770060456337663723373589318517062134655320633519121974444579311198881318602922974603671127691131082972099993416717127313115555851527399366289104926072130270894882270988716297031612133016361165773627403220426049101485210813652391050032132052481770770966026744018925799793288878991346340115068278917947058119644452301890534708180304346727019189539727482594523751136250187222778568074450467886847899243069534720186536558479915451820953972606016147405134423887475193047878704620887377970260232280018841962606929851748116890129354536189211034862678884197228136089867215350039884203299842784490288933677171621051176728953757542679121920322643717776670332905844933118316083870502280392881932971791320874857814228848065716636465396028209575587004792242567503742538022282611613432973940410954642893468333478115880342763312947909836678428486350165364083349965038811705032578480010850031688910825932982965343392655227804120827822642331275919542270708623450402451842475185401324532685261040122973815362143598637354603431701518569634128561262576382295538919468753173102799525876876444252065255181697306571329733325047761720031317489076808388526540714748966743744211866810136228995779047311139548024227591653317490035889148374149044312120036777919150235704600059293784730747922000126020311999347082307787320541164330687350598287199990748474822256710386265855970049999372614878246416567183822646963583072379465280118385300533085462342320587618736389854502672895014304850992065021549874263554937076236127866316742718248167562969480540407969828543356081895428459856825809130339612606158224236060589415948498301246336512404399384036799142553271977101844140638586184652102762850447860694391604592685851191002722776794974314968488487360015400118965511212221338124529861033785615585345424352643804858176436170609803140585931937338519291465175546316644066337915909375438576981422200645358927725283755904487852728870020425044089025211767796524287081893010692697009697895585702297121453465217266055885664527920143562266608302890270856186490941414844654254364225382708331289837396805395982765878378395678762967065756111711940552034877228791331183333333298556811824812923567417028515483237259158143155423012038437279782694743428821738425119001262307798619875808311984802371948204679427194828641786323503513411326419402937017185753210344865905491949651245977811479320870952788557664863784532938494649259189917833536731590567650052333168587577468222311475158870394279520895550947680405337502395191990481580714298722538792400995817158962468253536187010636559964737941197223904128756654133270724219293063754954784514656882895626045323344747582177560309942755251932115310674679035477272076246801500251389125400359227051806120164611665991517901309994800741787749839680031896098348987135635222947308082665784367138713035315883503397062576001806617494321315565160660174171298175288585748700338107988134751061128436844103488284323054081362392952005105822947589052133789422613792812471916482951795482881581059785824624487729660503364306408269438357628627030267563516690589355507124486463802634289210467950510317089897745975492065240896612223701937412506550681585667527485923488631835388887543407557080052471673478317254334337713479929063644357672955883711472510378264488011976275488891092432792453549675334482910869312571511843948854573927393889764817997596948457083823040439948328811918264839954818598179456022172642147915260692476395252272486734821802366550720285063370429940239848289395250353638294059652241928984865035235241093560816175956072774309708880349742549848396824531684203678079020555384982950872485444876412699258189604262371044210526268914780753400629615613613345287570124876005702139907031435842757339351842825667567218779184320902645046826443174889224159862953490005239908878592456870732624928512672144774977158591907954706611566926391266186961283279594019426696147710849061359683496511335111625410572079587139056222329917361526230348980580623737212275354213687316483944128584572232050482424029940751600204130065652654910937029172117207641790914017330418252059141830099913346605761259918546423893024833029934581307536917078980448642719329305117886163262250736420151918664643458467750288128404904521974212113333678057949218307298428488014941010183306537247863735043471648111168198031680253318305377763677260141417544171493103668106022581553835046898970931524836427160293219452369358939725791868173352266112030078365038623847990696736720054146351243122520653781393688589281166311514591175667448769671289418949152092622366317958699747893163006533951265366174876072026866713661213030555282240864472029566130522693806658968437285440278209562986879790046567633480295624672380261089695208771494142475491465172960708111545949437111536778199788052295156452821586918383717430918289909429182974129912390560357990630853790053814712366166443672759335202857909075813835419010069712008920727530532855031972501229760954883578947188796292704436492358688654699598609093254607824625903696317423828827528346189047769331526151555795682000135173852587627607879594469555161628254969776839301010255097400894315189953591709417703108566378338983998642390076192410030562350773112255482586776269399015742988212546244243675796018834811284719234240699223668153175917383152110865462576985342542507189609991137853496562876018837778667513980894498285191183788080901059190328807881453628330500796601574691780062213822631192048886036455488649317250224770374458435663170073749416926659709573708782989423620413612337073334042713541833624892214828646101765511184484241878983844829013065222971237338984838788386395930357653643950334063604753327025947218912099287882887617666017701694166312489703067067432150858551085951875325525205072706619660483596318275442168554117166716804059230203801573441959380891823316102428136286489950836236381400308923570528971766297154186624895064607769322728665420182954504600014692623416474172776196996502764314830185849752745554143618452390927860185879068342302696754888122574924274229572430632081144718210826613347985634759857055843796296949080602564681833075404073256326276569844835696064185832918192683570144380903735586415829003566955101049301309254648393576520335756329922509100649066599210154986719086928405706828964547556775285403696432039133224503524657763403301544377777860559988634113360795881693288285445297824128441077372097538086015839907413611881926993719027073438853012811908380261407372079439903057519554604341297987595639893448986323702831378085852888840474265387738177451692722262832983886984823116963738663632887287774874207553659878701242937800799534300454119672052958378476893654650312990778574763330632868236399115249293288943627154142987268344458497027059029180582924641977721807509649673463360292008869145900097728982286156869269580773575297892766766767005889985254607554444666467460966709625787265190887708834182264411401589469050079947164131182671471274094176446196550629476839982868685977554333211876455038284290838077292347760245812932217971885651726753888850976935815355548061653785281410353311655726953531769548874327398769009327765360172722671142361433872163629984103038198375488774264125558951990176168529491246052137028198226262971882980431870749399256337760065336899297829628055538862560207202643410667450120473855540790279856127480106757288290561309614469982055031884838813586495995056198755726307533738120184708648687288735453953965890671652926025031966241005277554956879428672619549283693852322833612113272615214450407076852236557348233013806698387123784510763325199794540747471949060058752284401688150732127584124498158970390303363217690018963047395490507333335942354874253736052206246522517350849333042599339500413331609420288792998005633857590984775465644708402141627402306535653490756447944708037262297251998132812814367023090027102724963290332720249227301239447117633217735979070879780677487547060675439009819847702517374924309734698403769718960031166556358551822725536027630720041275564979813691692861415739670145081530172731276395495233475549888025860036864875899016503127508048044468306654890755474847234695983814228075771981606688636358121368713043910714396794084729601963382173922475382540616173221356211478343459613533232452011856470662571201852159922323703196412356751857417755059958546655665670670090786954126597616755146515691869195415450425335965649963700769639899206503279068198864934697915435442190370589088174008476263483990094653835312469047099593385203390814395808752335267010340361821032593426503912181740366760425361182098143293123743531025776127294563995577775988250705529895805818600828502879775674687029564747665750018271161236456331609615553574272936067387252545612900678438762737655751612226506079832377772379773480375169616505198539017962534365871227212087356583630814377546992842773552074037677758950953899936260783502926813201366633583336930278715900144532911640617836403431276632620350574284191975993321841085004888514365014968002706709784791998544644059931941901841602556003248003230059627749880619329778856483603433019133240104950840173352034006066070156590095859933476457904974193347589961434797800063899762634105488557841070331625369316954134911451561969298926118331392773054768058875134120851396226755695115128175118546747717860131497398189093137299080302293876715157349063436275304270138793990895023217069744790261461334883574814202738424003646835250052797551874820988185537921004563674188245934772699590350920439330244593944944840178399464130604231718146265229354796622247886925816194036364739468707022030655055601559149674129241233279374584555564200439298956192636705987924572937151075902459076984931300449418467772290051277392090370196868736191709603660949407306456407371219668518901467432740340729525125653663830885592075210835628659390175967778500723802236888925719071392276818926860686783114839939446284395651438784802890640305445243969234765106178104413405831566809130017528985027684792743245255118274108760117324043821099304619792705324258739325763216443034618623418157335660650058908626941447802634902286966012459717937459066017221572475469525559061178137810283346691958380864957404893081359281645603964463213485133329275045039336093747832561716579082753371654624088301706362085567137438879103840389237442043870526889533564094507473506221381033808224400932588024700695025733065903757525840724515159627448199220910815458900080150460550852513803300075673381631265352593061539910610216798354336999538095068870361534793539147087231731095837741460573623456634890617754312300326477591044274211485742040129339814561008816783968865110145436970744545719123677590612355124190796414731806871135780282074250569539418029793153517612925161653595797740261790106069833471528905889216293197181158746658934281713275348828546118362095013029571581263748631101075847266666896449255215106132618359222545955210089876363189549291997140322508767992755103155930657722364501831794545561430989111698603430445485819374420229530769682272484133781634094440616661748364595265464050163244930165656694373441366067711365107376107294534216793757581088772876961730531544091006157301634750448903355767998035898602179720654610923888829878034602566796369256915694499256358118450618803246936378520758298875096941515563022320068805354553374691444060355121062393573712988182683820561024472851040693388506531420068718870848284182520281258438443172563287998948574418622479715734804269245117662963610454241855841205663725080003654696338195830848137079549134858905751037680199575529904431561080031882920485061310971248620375602793383860374614027364242976723486131971835899379881657238662379529283940068385623430962094225929827005874374772891372633216226361453478828637329884656360591425233477549601500376858737640413266577048657275046311665952269849966205980142203925542692587838382161893777709353247118276285991914059433413984384308922346881101460100676201571085186848185371787978653404992552061024362296190036802373809695355095604866241869937566142134360892912946330501873862912147317295600694361794389873889233391724604721825312397942897377091632489427129388455852157129160033334405949111828364334170826373048143455847313385998072382855986715691951313219738765941197956546900721122471277715737052272962465678585729427119729706591091004630563439114648383357255475031038600424630566743712667577821631303528237508075221405325688192111190961560204996496341458693709277216152339169099763654791343170601306996835981672470608646672068803720906783774311989627585804339284038439133043665914855808387177402356555808061020735711041967890390884290797353861291627857874981561968721413786488206263321651346777631580698426458257450245528702052725257305779672998698293514876880415269886657794818495175251685199489283894487203054746426729473948833076347816857296604066722328515755294043338440335167439580233963542659662053759240379635687897855846790073099822956802579113296912385321169910586015127330134645269881915815363528258805871313141367476405711932657986692479685263529351078234548735175210796776059118736633685444809624500094945860301630220354875978270809678303866684563708215752277805592121306642772720983502233323792606158508536145104650787027489628861177049757284893301097427548461933351273035916689857513196612447183565955177249919610627992106639586279659886696741070003470903804285801675638612231754675006647978745919669316956317008217757182643713336727059291553107314883362639360898144897950127653193263203933704167954330904557176173754517886391860395136313890941145979440953708737479284486164911596927291702067517661134481980136274180189929838807265121780849481586251988730938845496929067805688520655607067046552895919776380221187283904172116621746207957328582482074541921149629910447296961659666754859901578465803882049453413837703552528929377101039542630823570758478263278401108855795181190302879789988578588370669584393175866693000894704535066039039860447590256035036237290671750997698796749727352202698665527072419386250118700441721137198701376885513201787814300077383269154113134586651751590364956723129174959277761256027985364081049604776449611865935890399838036249503587741122739738856459450962407532776834200606453596149209033988764614027461322789979545997310718187264967241310991315428041191414363208229587500306736636621308613141661030882535072888436405933074556403705432674104215916576336687242359302368070441328637830565283900362275690792915045980320827124255821080702861098804964689751377822275957708415546377477828191070724454915292683850764007039871248715342845710403908311564663645094581598231344506678242898427541308612111391529102712485896656914485140867233445536980928118656691190300259379329144681402850628860042746892569450579437952941516568361297876934407792428853210283324342330507265825450928614670870715578329368790103258316642798576686177988386833330473109925398238029450467449607463587731731204538939037088425879082927572072121863704764273966322285632044318370247834379922422882124730996806088491840423947707152440244071596244835275408140952378906682013927303520791453104395172460499604510287142014805846450436436554754005033628662307948759049920914270643935935991154405352430952487810730913692458455354261412875990284299316880134638664246146824414868623703567934841742516425219152307772402674727087120337944054312976611310072033174944464891258975854598676975537410637417433440577541035490317563982158282945536297267160263523430097967003783738968052586357906616375694041775656230111882188543769437545461895377201890033560516937156812272330364009219201103211051868261436420443672761942312013598577136541639538465836523919877509169360738482592636995047999721220683101765156603147170172373539308003461601087385027738236881188738570875420057089298141956323152608425349315932965677325638371632405371044054551358156463031936054189015259501089269560319034282283445259408290990931930311210120115320688774061616220180146224227210702767699691306464287494503749429359549999933955867447314550375715998103643886141774854402816860578423888458270145047818393301727165728927364783671077423437829945976158796465778046525844185315339401841809568343872286706452492308088331138455784603257718879049032195559606341897050026165538821803520664591454950194497643001790204201718686604887755233491189051929739048351771006743322417431200813863578248218456737704996794812825753140497085566649559400590027175370858573787786898948775945022098668138358072037151832483503647590321658477114050437079522081385228273692738502473721751703684783395422303885538850516874669608342518023328465941646237656571036058099553063605857206581684591299033729207450695285455227649839205899138985784238686990244111228748526017784309260799900276650620115533341447053787215138565539549587492967128930452227993350281304080000858440587638026495259575489586636039590539328076963382127654323339877289635180743297337424743338625919428478875209059823769446000671969280186204779846226202676753387802159304318906607280452421839751086617721027526642633540488243698066793892995117851792684307570586456103914565881341310288480858451411612844963548474123163635691237896617397612609061441476101518247198102849314707615524197004572980176538389954649484660079088940490290493743682705096406544029208337064475298530719662076838086811067799129526871783638276173317919428908454863103019903814518751740242024079716080602241820546894541096425066291435330459523986026423663466163433369183473160969043831637966903294391761083959541469958745366580388821714459029108293567503649358933152274942226773609476513070717457746008688298687189167700946527763321289710303874661308799622690251262066299184220137359620349061228479417395700019067990688766057888174032461887916461938436060357068644790220124940489596912216892059315262248136330090732188266533460989154866822724722438500091774312436762830488194999107679229313876975195224096637071276043618149932437571915963538884841757288952578096063734934126530324176929749748783079003531671800257393710739395600176315599627716976717958433829514951928327522994096712904156760520986182869459555461786864214925723706997778863080257569518420600562714139716166868640241811550987225108010152924474078854179858047750111067695589847321238086840683671744689040648019255965175556566355265535991218657063473574213373449338909740259149481821595813483167463288837319472153608578676577307651780335778334209063561736728489467358231006744266170372682260866872754473538805821592099094297824458300609527582733839829539119215716933602884086555358228781795267042457606983215017410712613044719698304329175492347394241561705804874778602407278852948526737804352409281807766265064968136936458179947773118906303710634668705256727312604581713325762141966246092863265232987830491409023237489688408948521247950449690480806349202522820186446957437597058778953818842993012995019889603310027851869761230262914399194525763948610755889595376546284491908452520725930111384759144520216235386869718510844975167939543793150222750607511980301342053915378563600179911262772842255109947484727314931724912269700849552988328047101279610295371764285559296574792264931039434294698598172705418275858850681750223226970402638932895166600513710408523899549879541377969220178920553401468691298959540907114576281151119964845107919592271944486466674060655715607493623001796482309358739802641174634642318089014148808157940047207478771853247127644731139971813482008165946010379021011736387363586284086961326085964430100897650752816311835929168011813520368056588859639194213325949257763796406379763967773547049658491394741507011569687572730940776406594864688165338648576062934046477176582042988194600415018728260782208829237074447744193960691369771090008558411600960102810545357310171606046931547834634250636035691883515933261364996579991112305953891697019892709680785520495044506158892718711965818203884513024496680830847478484837144567390899405885827836907307478944037513851728969384805099169513704546642518019363027773991726113716762318023445784752948120852154143465866587692247889759779765745891177475684032757661260311193783279299323566842040753335532162480564058666575090361916764195494766838855661639835911681926782813900600239654729641147819165387490592666078563810412877931747921554443517064535007499114525273760820627872422351890317679202972206000703167946395748584699808950868391298799716434171002880501910674177663665326386496383810572798464316360655636269254073094590060995208407348644836110609688063132657070751775743972581940065320169990950298721016231811530157539653986023080090385935990641429384312211228162372000101237128734023368703355122606586725632741413175895725015683256298114105440781891070601738592054380403390669780133484105630895173391910950742292092047864969510166199203628060311827934401045152692594363691184190884282193914431803473423781973441548880016319671640900353777649486379457058031717225234788133029100934172913111216489691946757662303890425850289623831379081141953439991442708965924692108286883796293496311553347259148004659974278801089794693338039272589250337186283442630924196633674474361175026820853941316593885196380943587199528397254442750194702882109163354216987105063057403792686426557112240765841866595512973682494954424738564730406936776805242143062835238573906108915879436555754816116486198725990656537233426509973249998851041558305434164345248041080581760725908705383215472615716965282106799369832512970206096169670136286926843502542871746555439713594627387991667182208957905950113691181802025205811139613532673261122169966762409584963501334841548461812656504240065753692530271712559710952880583548578914524561506106781896797624568121081866359817662322270122320089462194271815773058389112822370939048590209467583404854345499237031539123822240006089304821674864826394171894047378820575453795789457384799265650347637629983074983411428797948091248233555908446837769292796923291344111895299523067495813418019954027169991700278628815778554428950070747987235269251201490539234982068451304708716955122184564817113283347152557703830150001256335473269368180579353006413136330064889622504437499905754541823141095124394820541545165363732827533095667748059987477496841620270916485004532195534033963478581226428535622051600541539176623698880885851899418809426918799601116669929976666119985752692787624099560034953359906497154482939633459206990828157275985689644612639984093169566644315386229030035868586056475307742381365997223167091280337077011754722591321911090429329832707964918238794012476917729216338825814361465372059677037335305443674676123607503456000230354523606110948123789523579955956165617059671805614670801133635665883413544974815502039943565266572362196221827562315785478427275085617813668699443794008470942286814544283356296008664419259327213191367961765501932373147167167041721752648424845904299713140111194061642416478716082399690260154627145856279611405955119674788800570596333209220226792740597177253465556804878742721292725641713036270422964882887449724852798004592985052068397588002122870243940302440117055377644400651875934082783102811282187589864331728859230195667425175712254073090580009412655154849749523534678951566538360654131253944800957081624249145197306860625588625066328888633270760843738205818803190762686659207284567324462079748879609184584853515149622082792103003728673175304446958473022833122783348376672681899167159533386273933641882135293066516703766682989056311475136399740388555132186183468905137554383905123347467231190239304267779576027043139738748104456380371215262842321351823881625731269541296678439245446255439690740407102208414797081907420845145154821871291834105661020322177271783932369903181388566220351339491548229874194857397182229246499409220281203113545534610742451989572434484775539790694659837158466897071652593053174832592800349399172518597139168607332445600289254400967955409664114128084093115842918367713638711942452559449671540843908399868407504571912785385549954244526173205213496362535063517876382365269358606208992583981866314239080777892229278233704815598043001582406135187714659412623810207529442909555660779383665179703400940945366306928466371113031827064672400866081767634531837009057132146658478964634080224235728823325926783322981789784094506932843397623535005818457882174521158329330742322396252001199598646233120634138097841843152758254228811115041592044128073075330615899276199954605104581084255331191395694000152243095824912212087951097141637599309114617523504376660018216181939342136857206680919294005535050280965694894715578851684258761693943225902433234159924744519253653696194464841649214824338654543525907778454908640018852042909188186385749775145698143481014303892209247027637110523156149478030550774889578730212833365695706951976841290551743567165088627171681944374817924025431988964994504064202334115634765373532923072860392473667423015983203992428390582170585349233244102036360105898530924534272223622268022228106391945781068582893541447106612161715544630719755778063466138574164524404150633293215181772789925587003495909278777310248034159741260162742327079441072837176856222179941744560268270436866808184378728437841467924393988472452233699108684536345047172143333850330349428805251564150973589504454865018672223121829420592540300977350593241503758403578629658527826956763874429849543822589294880119181448686447822849918211643277605612829264285704323353796950393766561567265970337564386594983784054646331546765469416994664020250413892030478594653295429785594463815310681381466536673791050320473670261351389415433520512103815619560690809935877115236991831876442895681767431248295498998635026130607300964902138765086062062842875980639103553674091829572443533943186032862529881254581956713162658642819506398985931405232749229342506702408706201515406788260971254838739358566478709180760097169193757728501782739078840111830021222112353219667618756696200300480747448354428803853411098166706273747195820394055686617978801490235181975673535284877213241256848286938776200696144089845536357184628398322182332653196735846002325879177875873139975351107272374531176975279344167260430420514061617434146493487186410296669546842934358472335870785314948128889704495068287647177931956498549469798380289249272899753444069937960688374401379553768067493151194211215775478869394844426833657152548730859695382540687621067499074621935712579710971402622132539378743887078862418018087240090621829712133585955550034408868980156490892434946278793628467229453147678919339358907325553924193894683217064554999244968270621367782023881037427666519786896639722398573654184148802579286512501677778507523921806476118446051875504540169062609869271057024272275737589808128732133452444403832185460018444744169096255874922517100674898922378256378987250262337154608372570640845192928687260970489441408259072836441394049067827777914101506406831981562864766617834187837933212784085141706715250543722767474513139875784163833391922582440188603832184770324018460323186037916656394759792102965828637181483193040617471574199266369663693657956350833772776903517368711158606635675717472456090190868285148913854262445002118118342113319442945892791958550681894260630994334604364720102410710152180461692260667314787466868745519946031783714266944938752171621368900210616213221764984370828661109782457907284450905501534930521219611167524369169946464930924906736880314147817276596173862935623485085894347984562051897713540357464933152103163325674028388498391725460885990902491536510211609543173868836683122388737378751760348556767117940178819607828779113623864924173376717543933025016458012994631578005353791284974278755787634189760483873777755031826473821498795207632033794737235225457379593200855074359699040187788417921495703159562592667994616643888810076617424205550843682709492853367685549474569885923677489846565750915425465202851770115957193181929075472530654423125281380562665691614608376305902664444675310146402784429892720492311796824985714114967244870571310006089730796972826114689516893254667734850643135325164809780364744178696947554066910719483964899244205573494463993957408442797459578201020736482324266785726868982336909979610460650999159600007308960697181262546158282030172616258970952155082477418911236585590384422186364743313586175141041846805782705112492993508605117374344494281235413672102137661586718223810550411886329847863090447031386881293883810230903168141586711714429962964279810970502563352508543666679321213466512841852864539698040258193218843100636598431049886802645177848521205453977873368795293295321936166260250593153686123098473734351404263047967413931846037856689352791325623636946865971279378240726515707414935413585184047453368715618218029363510466730361929984278051284713651839872887048509420210610893525877773246191551192004200904287585462669015400434280318515909352663919793605336291023545214911960919546818782091716114525936976615189639506697500549590583774334934775483685625415686638878386350150845394088331304275303997695660601893454258654531536750591509610957756953774776085903456608584241049403334298005317676990921971705922572148424920971999262777295227968121347154516443474142923494223069652322989783486754825580645131408623029557946655310954534589923592598726358007853115641704478690119457518900500350554692700153917463884840144297208682572060166565033857418498712165273741028832670349601124527992666688624537097197731044290414817846045206115877832974873424521515721402686031757477257470487864583624088999793850873533575183559846355305548889914766638930375971081157475652604298225883288365018146692194509248356366285999998533665730541977385978983838102986483154610968913879093533337000418341561590166282359523525441360043835353254856895401019588457330135798109879910878040657924528934827173240284034040059105820203613039084426503721093306029035239080449577438549733160686726812550698409988522050128454876337497825741469446495761294905526159369866061852290620359763757848262692594116389321343847160253820420108470536966239436486019656116268281075185669212677473657066820692342557337827022731777549618307297048159521002835267093572580296178185423169741966340810207393567796581356594765356003078303625483965324576805949028344691066814601974759305153478825537247148799829093503297650129058208605694090854112054581233753599092385473389562723102372178445963714066688050221431490062308177167950524707626145969534240698231678773590116467988954475175660774923139939635577873638559337265032922077524690465303151577472867302703298959045078421240155183251416649797408110198172232060881977658450849993046775809066629583894574799637312074693910587266032938410981525738631355623240381045300725086277207937338261365995062755251539263480670404724108599251552391913738063803355050355463574133859879474815489332006827072591602679438193813687161363520784469953934610798080003630141291947225015980039234551443497986666256411389413079987333988605264211879911443858676589765345612678347512181413842123093952852476857879874578104469374716868088333558165771605406148193171360644261068141508045469659030861343798857909953056519591149964283616064141386429753853663950595629707565510389926220808800760279954768927553779160715113258202660920957656708273142978877561929434525207753640441158520623201516717460833464535341264658948090835705837075422840356272117317947820127141156709812811933115346669664700616860794249960622987830975189461074983590389583336636351479752741441487019147927781452790379556975878831315415863704754719918395515864397079959038629006191717977793178302100323939514456251350792083810385072288177645447657734629642954191586935764418347266686523163552485235066087590784693572523111766803312415077979585932231697438806930194697739399321677445908239117451926234831519115945431441337439938666210469031050593799063340604003645474997655604859446747565521218932331233051511477704802314731790981668828059775050894017641330241565491506948238685497162163333837189882693738476615852756560877355079847434776048332532118544662474831800487777523268749242351261136034771886395928799666048127384579195552534298449072960446964906049253460472450082954760430151633926358513920515919364142838627761692605429861408061885148778788360527561770424703095927603361903174066690091089481369550313924097463541181230610661118505003596156883476184207949114389327024275486359966571742357110791323740293110189655036453238905751319506364165929186907948828218273624495664449304507577415692191918429442496481463236536352589722854552845587931217913188085640322446902046295075921820431448507481152129688177402280761877228268874627861616785052299950055710455047160643214851809618252294701371576931393190015715400701805273163165180369154466473586057910706923413585301073931472676953456245256142889712890120448346357253839862689377715521405850712854458893135678844247937334604580026415961506838277314652149866888652497684038633360755374087114258668269766017184572486917733484812007438398881734449801805313681321496264590658934298454327276235130897641469565625108435097332884554585420447384468727227399122297992864116307543913185551353515739936263469727072821057105447377144071860647654321159385612420288281438172873854106365076510508765098032646200147808597559056134208503054059162135106831489712187217671351736496551443117687016270180916103399385553111176138762647826937094850974364643831997271382256123681334365880352971119572610819897835171686545618378102288022103608627676634570848693214439766036754000853277715705373407037782857294467617156527922351538830767391498538448670474809870375549029961298169805687372762131103182352268521445857357943277807396369020844191158860167262765692013902236615517072220876242631620333842730209164425615798920182019447531749649465266369665761437532999873409208811166477862716332172545118884217491149594744745061263382963174315332212582776999210450264927842132009690320965785240520185372444274470197515017375984439837579651740651400726466880062928672527419867910919805342387208482109396639568482813879927458584589075270632885300684638121630547202770363199447749765637139767383495640289960232280464418666183529547871623146056942608135177000882420259924790282704633573951181880999485391376285353188640006182317944456814683055284370589194112476280548573274188520619065326629144064934253497570487428111847751347282332212174065253875108705724856640497753818981017178658895464467097614035463723029447893270458414498144144605241000372490384532148065668057404345048281807909621643409724371497149763072680734518456885789696623250043093815011298149885912202253504856830424475187950702148933562086765422872182331800016368647205466930723430632096033221029487900960996429505306689949559359119480998319675823837744020349080668110213817812677122598355690523624795281362745159041528973934450665697060508665862353014703712622644848293972791257146291518359849463227341112464634922126522246140070966765737442132008131873415361900275859503206219334808530452691057249716158280447394935548733676448922968806842778208307176495456196784823608121543122310426920537479970690493051851934406155674131252844070941781281261942078811217870254709918270097050452814266833512728212546121646528206894804756873768124840670195770552570444964442111254004118063483602281882474477676872404012129634372829909628756911085610672950647835681289398287530957968444656565425328969620305787762106680838037666213991913844698364685422127584767814618234535850876228256418318384096131276617582393444962471655114579113954891148382395935500894158462883835917299601535865257618251386403277535060847581314966330216848383602671179951321251029075449831534530518315526035629226708660751100745865890412372436049305939270355763200458536631886623736209220210031612805894781811077666810659652400649999993482544383719674322432957889860638019739132119939695745080596992059684311967724470924883295782835967398533638209301283873541078691352434352020660584176255816039399342597373592087993631032124959785327420386010574826563880040567206981325828211305696440190615653216592428818188755263066808343789093197117216141543238714180497263186117732975603106750406764271973474305553617013660124755833104360254784381899774886202061454028530771083812682670709383643724736011366242451911147810196498687192294206692767284080341127977247631188730425915369564593994355401349590105171401065808578508159747708986729556623721669381889251286007052992223993545581698092934080575407276925373765680757727011089380878817182266069840194439083481778186694606715611910564138825715339858088798667190056636248625479078704694640094792705273975921251876391203359848324977260839213315183821820643707127531639562910958759762328973104267197171930050786696865499390505797088799936326531774803208951134299575664479878079596194299914558424589380745548619219403795412920207448783726013909596519303201911481446411634376812342971339013433960212834672948710485203079864988924325272189085782854202112634447013171413830212775957576325461916602371458113438956400830642317502082417775443967806883475204896230447790560214958766779706276450929135176338588178369348530474235580974974261362403627325787718605717500840613637038766890185981470134667594728297225945711254940135657327864460969400970105534244269632766274788127614069138778462284516379320647060949639995928216256253023467413472223485349574801363985203808624767966290755396963205292834788225963092472852272172763829730532865214135202521171449525879601405482524574234519617073239902860130349244965809187343345086311928068157229068822436629883345359172257964341026477794894224934624249774535680281790614031392358850758755275559961969772778178747362576979235876907238958325073561130766034465993337760451858024800586829329080521725521141534233504425446148785078784374474704022872646704948098682448794777106143202757742063652618744746461305496223025473591817008820542462659199566106893899670882559614060441633632448677653468326596646888925226975003698539151238117813059184670070263666612439770419054311372470452135920040788130548271399077551503468350464764448269320586306876945814298629339753349516607187241628491033301700595918265311249607344985414904197653191651949486952809750302725997254318737651695782304003615023067669714623851712863963826163490891864893126742635624074008438923719791971957949807933041170985450185860836533653122673083453362029552658179471561305976142166322688655695810407899479400949060767752288529407162121311579562711664940079105224761287372563029323517086381951289415863290004344531082336700096998359618668849360928753911545829842515753276648817117464443109888207398732249130375708308774054190751354555938817698315783209269838259646324638754590099109776223685547890483195714431739581570799678625393844651582493601933151164493812167552721280658221449385425122972972382785918034994461552719089874522261137050796169377950007676689579390009543667296533471369433539796422125819651220943975146082350461920266160009111293754409899659125904964318882414987564666036777609230208417423841164967250657026592034704512672992626588225597575622090733258077566872602196789739830597342955185180211324260059267800930705088378697693987460892012942585162955414879417598055397280491905260173802594776717842308888467271815094055713958745069416213054892082064180237221519006445847412342171554877868543736972400999185493165389755094316513650579655956625968911282299399781893468547036432223820015962253480993721406470110676131409070901068911188381818754902630887203755351114116197041833423786139360563789707407584979919374749663663229407644658066618623004706289291163404237133648924139940048832688488190650444559090701444834181596005573309301558234480993124690773992834610731658421663977808828365110291633191721332644229714426297475332513944697924182546720818307192170261340664409349642798708796460495608810099119766642557038632451605428898669291575779288370354950429494971921793002313952572778981086739849102176031142306411037380430383969846697380569512083390855307308197076399398658923157460502205788121412459743572808101886959257987706393859675891427187217128522527323337059566360305504843446348866385882499580480777845148872781691510315652389253330910601458840517103581607882934270790964133562667129409796845478473952848814626426423221941501954490126427097512771950484651496266016806540508977590971462621218458799609463543220335909840577535259447607466172499146300323575537524171460329859780536832995038397451615590556984043910544359121663078176804526206189120288597388770802769895159775576563185631847871889154712863247424647718492656615334099640254379689262666093970370347693094179677707609591732004853213030242194288215717838382511047713721346580585645151051423115959407516857514355155424035473807452530325390257859776130790693553345877385105959859647035145823669783430725573182245740440861274604462024028264903643850809752945925702722301882204618222560215469131906590095768560352279817321201108480798741712657391186236847075930517229991501861019219056850568990482778269305673075985872680918073748002083216303555339750154787017187202887058859944680315815904372438126117717258753940885818294883890931341798830581286233102755978228077989736672848223294488142589783080130706076161034770867954173067486075639096341957111342561370167408618377725854065423949168851200530698802090346181961226294939802572071029733017566918186691352853417976702791304945983343310455685136046365663933261407256940381811423912265554871782162421939708372671846442924686455249035345501749799280020000629991299943844537945252873719611350786656099800728760154080560877580281184970359299604801480075276356212127006479352589502951952581833913242436580306666974106107556612048276370330212886927183058330786254030449086054719369576691389002224069622990482526379584698442221503945876256731598296351941871966076305453687932866967177431305325787058122099039440130486851591866298441599730403934588110904938789807352250269977637450671890126544229163260213505475373430386687368789974424747780975021661631087502909367599143900662938636840938171911777323242885928817278096106839283124408611336514285766344118097200277284509130404816651086274540129410564103697337198642005130394889845276240055073843183860872135255459985066514661182953855856599896964896231195259851234278952374542205488203702180038248986310788553075277272287907829246050880521931638334273125029661266650562605424423497122503526206355094582591596506986846207343606409680000016804011392893793639586737008151578997863101682430031033054332627130779801045700838352373281845771241304061546399768299532777476328682896154573032704402432186237800211133273572361691979041735430983848939422832023106758377623184108466262818802706287905188259179902293308902342068659604756741707788369388701787048877016826595583108026934924674448406645967856215811408145666269254423550948249393417665640325099500373694830631613337323317592991471843962217102955092830095189408777470288014164837906279986630800900447909137542263452574303071135115672127472294316750943367750285637621129807396117888611687241074780432089522906731124076363991793728265510694778653421838978908102530191134884765701179520268955413880975495497818894801078583111445263911958117222337356272299481703684210256285452693441929855801571782147645491047547831762793079936868240301880003043590908148393771961943384753407804741871794569483101271323282377220476161597203368535080126445805424043326295660682930271547118246163506722311620096724318504805171151490706394943949169779829865586536480263289828763772670350697263017116545527577308193455043431295813808184705958494217797198645689202385330872509384733445080568632899951893963313081638203066761967230240353136495662725041742738083579628005493797150198590486872371098766854789223618885159386482690350288104461122902425188549430135504239786595982258797633007710867003428532448395291911853533151288473760477742627539583682081593644550379121854401524894280092594759168326227007822452947796925797225951214203240599016966265937358627063878772111943649729435458600238598309666543190184026252493175492240375148650911695206227607748978856541074906046718277973517186755656843511115009469684697856628000444869713464259357085185664692782301767011456911349976807911697258769234816514355349652530557237626210874333777827877059804744168428337315546159388492809396653558520310318036327030238332144051680977882973861864212073779165056975795345970281026512460339455518780062866718963442793172210773779046906166281785846065832653814331576711356153201969005582158134274826693825990519892397447122622973350619802691071392315590939832585825019662486305093818462103764832943787029777594215154272179213485292639263326821636048089849439585846656569700690456096486703868094997013869868354676087554011080832481061942982204524563650912634078780042414380483486440219222710284704646512216340482556986669591345245691148575527445026003793855107388864196075804638066291777903835511952035436325971243129379625245431947514411209968313937898330675739653272127371201617065814031551788424886417890039810897772910022960911445215887345165047365284791110817173169140913676394438630016872228335498998663672131915850631927034526296590208662364941326143131437827024420657567838174268156299982692643614565883118546374559866240693746859014523073995099074850069646359717489329766789794746552049834648741004204511838137821290500171435049056619984545441462871466403013681396180034228521871791949837794220959357108554317151454162238464855952410191567719151036288344045747666780297991919048480913288601262125760495734694340707333229681740227821484942636232334158138563386743496641448677794568261636707475398907306860059281133339588022333536964862444731376685345287947292743696506783792421478664312067073443973391167017897498992268313838051437007009485753836239143015130818883976867422164692674464965962661096265984173386193700388055358401396519940473544860910776608328716839114385596210426761594959592849691200669527461051265648139467212164328501641887388040964924267818244361721683583210086374870825247321816469997500721811809226340980749848166956553193201248755202776392255812873472404994634458791977679918308615187904850777073750816054503638852031567665220231109164831057124331881875368630602383680553171859310600532507874967859191759575064409909557159369322938792484236312085237017204940681267426375263639218370176611615460838260159850415062878965521103288016814075798111943300382588599719069278852661651579674869388972030447191282898597882952094840099281441386764713429559982505925086121155018539630166864508987198861488728341549926361455459567325908256992522002907208516698029190902899190791250575026246027015236644976345991655131575936471936162888487501425221220931613014397796522610108864637456604808602845792310379743883255003153051001602739543755890877447228632186689502795092922819465931930586391494918852934377348141778960691339198008919109919602410830117087994405968922852750858405158783598777304114512540317774670643699778245515715356640134399863682840322992828744420948720520902627115716692041766027561839878795138790530467302369345072959834343274452686168843864970427066387341460887773325641742891787519242813967412248630923073053623537914555925499498842199014933308754853454353655926948686228484319441003068791286015325143994998838040296379334648413652978893793605443998877734375774285748908450701599810128904510713800353788920163520925855668029517701958358452053000637904651239553306621021690879397601099537492555813434522844716299930699817400774875116320094319947475818543371383327895548900025249972128817338188461462560020168256854165651819274360600105944697425159881705026798524744082216989010093570649626495385001806588129967999983380855215594107890722999815888928112031375340542427541348552688043514177080595842021970010341826226371281466566702403165880106267877808552413355629534536678134494202219527183716955207427755263205686835136114702351576445488435701284994553186892278561875003146977963369038487587142947865880186757402226109053103618958792089418204029460198420556859544250538214076600141868872785765851077736930647318678517240764119409429589826320905158239098583856521603334289929732163889992615000599610387814112626996340083436310618769457384970746781516057562964039175326808205134529900233320203913599142347823090875904764540857709559895325042119433596629463033239259781509083918093969922682376687417515193673148742777585195910507220819439749266745443110796296973333099387517805396721656320747860678525130688689369470891585240551116718546156723924673954609578007697604170740358815100411174123499153581391973922264927770529064941259230284728204296821313545157609927558769869824973693040972080935194565493509771834394489782703785065848421745624570227364200013456739461416576727085075339429786702193495203653306219184783220083847696457396509242338596092740452569811185766192453915940485865967274404870706803092743703760216661197374247248336455838346167803702021498288005288918434372280009249074561684045939270214897615732383433353833728362777454908159136885909220449362616856637693947421227115661527829146718234717263530912599498941849861801624925026034060781112308861707134719536192678294613471108575989078523883083100046407072576849514796277306219873145374397311822573265861500816994015671912073121665704383077075277186002695667801849196285593418162232779401487815277482149255168202673430320604397741304739096080401945860997504539359225274273302252494736242852557723472857119389819576629410748973135507445861498988947599675813227226900483264413439985275470426608262671370501881231377647443943192386469743501525598796201735143852076849206608204331240026299366898133868607612223175674562081915968745551731610380933924566814394966164737266117910831030166133393657690916018570723707661562710644272274776962929037954504937039360379183274087331223395632326679504408978373067817754246797751283637804216546268651929472591434281617130149140061990427516091656218849774401453816285981646730980324132917885192105452466858875209028778333838270771821822435949061498937059778678388937188278578007856143529375882353705408101153016638102298209346591042395629165575145323010565151964822006512324220422854373939698925990012535537670221791989085562430447098542635179322329493385750951345863379765254769350827220002213599258604671238049176522904959471568932959099751094453618581492208847944072745604556843936452808859159037488429620831156576274749889037132264658739095543694384325678639419844398983764153449415472253773644479746394425501407003912227008430580089539069230644539601558948908749991811217875502284086535892146117013378065044568532370736630116857385564161379015568783348904311794504911376671155713009245321693112331286561541663105979068018718904907261579919763904694281340691894524564616493791623083115667758310591391698229090940002280545174041780939882425635040502436209320938809872661926641907504564654081930866393973616472841613970371413171505847520716018014098772479117509493277406602070583394384005567117932820546635448542840618345116754363721770928983944720719465737286745848575098035678937979528600114331229010810243643510819622875532859317306368367191304553715724990206386011270903694082084701782665080222650228426179334667096765936065830497492500014953462578968145795409792889771264110105227116492578503253523674306654997249747165566975324458404491301309627689467352256075668941383902251574805469483199748770236173275945570646940517907356376964357964971591880378176193985923172870874193137841506949876827483173071744901101401634504364003600770789689197852999438240498592596270440680408061367679289019276127537872627551502369862135023476501654997597966790660167703844543300877408287835798777040438043384830595395124889702880343621334959727898997632079609910233963699052625366243657167702646662077474363872225262292002815053608865814455810312193960880816266114982090279209920834822951883171666808949207049776899379294241666530877267995086593597344885710861837914380014617514244011430756257606230060126019679908619631862470324082248245953493533135457377085373250806517673722389147654276751554644845723145874018363328441002076861398564782881371771883576544586781245878239280761076192137536797942930506558734840357742997310588994713915278996635712283594116171025619965360140381803796444433291426712462020153715804698767313790114389278212924035029082699342885119176719203155382785344217733116836537210158724879940654745615731794513974306297466597052894256933771994742300598926932157774948078281344242649055321054538902785038830861730869204744810390655617645550789678832185007318760583443585573757382352165811017257002722269452840095257195540588240719501648383407711790122954630746387863635404747205625818667548163234538276422772785986218966709203329541584996771656712804738989397470434341290839335146500659960281290196578842412748126288106534462547871442394833283123892098795293644911087676198224517083876222500968977110637801296733833225511273064492609632557088069551200788115490707314093080922488911712552159282976649637650204662559982131823951596536247392074995876304208397571719719266849326618477002115018341514149778895121343094415530285622654007181662236079671830533303550649233214547703016992751515494449608122409142837078880598110696079435059250597023965231174905484753348979204771068536350155358592745436826853123509824662605028258073379739582261431801507141019959601431828547294818661279446984200704977700528279146773200794592315995939367547885134762685180252936803625672346088810217510569952805414801518662668439352024307995910423170001570924950422231559525201128989458843921616229156211003612719098506717781826733184732964203645989280759899236098047332073297014032354698606243532207362066448659092918097684730746873075165437729858128264365428799296666604176445939353133501811866792013533676570280407742981527087043789643698736592660563646499969786922597189038060747812711114019389989934997276805631805111589231605355314998564926439808913274958467823391090978124396735731219821570760612156763921926825574935957212306662373695254283325329508721559547381520905098760898732239411875273478778590862322583739649261211223636971034524688448347617435142322870878307735235011295160064350551391135194814458095913037896998179512451510985599930106575367069398388309753989422926952295181980206162283167389977585592279857153624014692514973617304348080901523471138001628673961178924732828441165045079624093078548856151015404610278266302247710535461878559135158171631955664806268736832839528134655249502331349635048810430665705993549483188814751498867680574814591289926552934944778592516145008154072883108924133910159057341563753033966382948844443146117606761392410125613411256456333361399299949428943328812922017303389643704296224245731770290268181768591750848020896572691010696682210281219246111173399127339040424981498024462208748092562376442443538267672693983294061987881386984716263923559161477430911621267230557920915120966348533976773479755199866002190257878727578269298381197254685755676437977260325819469696431352499106720889713798343103361150254560570426305488014752805258154349259691294609703105406265187801053772200963288966415261585125140842377324269363408360355907882793234515217851350138487682880499607067082487468244284792314653050390541048431844387476483079900699078917890133517560021067818346754701985169494209174987063020422387883774828544067222659167916432903259644793143994835350074136994091583528765662358387760679568234682705918957152321808935742591254031782566402349138111103854246239490208147488114322350767147935782529516605318168863257569259123745969355241861764990696496332481002046344783195854904615611832594439656788337344872284023156636224369015437639751190861125486093418842968122543673941687334511354922218149677471959703522810653726993065145372289443984785408731599752538294705015085121384567289963711639726336088478826701386662935393028780178076664906370964517298011195901234685273923674667325530961333376385448048642868521752116728726317677022155901987714289810457325011288597727261892837287146949259680951304043197633920900219144929159392810091672814763746504279796948169564217469351924985669596350685933680375815291761667101197045565920943953118936059264178230648444269252522923922899013588692365619084863264295936640639990058124352755837825286565682313066306498182341410322545979641726460669103708100730078960156898911188379266208692967749842144327056783985818689268526704574730310956066767561644689888869421574161238914682815291936943876667364689166948958961876827722352048739768694929332767368619324556958549553728847055340736234970184880558474377032448427601342641165734338154834017658148767714711733709980075721465862413083825356758954286524062694392520005801429264099762721149485438966104431060025571215322177625660104702917403459663004735573275083559791609345710727636408370641684319994860676357630813017144614920082547622116812333461648637782505081418703079602182061579103261102224440743938718909742033362848858737581872176964692523722581597260736570713476666307640639478241197991390644387232207323106391851331378702469428827260673750955504417432145517164378932105308221339064410062230899248978577677437385167107433615175257668262475173461532203901492804216845153819917273019347528876698083291985243372895893236769442274435232552947679508066414853559746224379872715089770764850835420018065023802542424148298244189836940624511589530309447186601144526569990283662778933850469099341701059987519594156364406521708423428957845086649483507981639277375698629818903516784009598473172538626542873843329510238121384837838634414549740129712041906869712402005790416682860318352383217427576207800315844430539220589554763411457288255790943615454305737843850582975019816612334244781809220360374328199610497434736290749885056879565508028443025870423426821108159192523188788690905288505968334375050916337279628877360685165519409926195943342702755236775559785797644968368662527274168636666757147159287602217380667303248370636576566982170606346919106128854152997944051608635449813534046654362907331550265709384560181303375332013767002080810651760426023675938620082944281934222575600017536408518420084649496283395103173457153306649369021508653491347003478725699460132000397361065918285341019322874479434139597587646429639388816957540250008963276078843560751664251569667145753121339258243051645792037941881676789062712124594564660190126825414627101156395159961114580242227704532148749530446698379969911062937874960057098808921116916989010802561597378606985858895800297030107882583862792108662009079829126435898351263833112279881294974183287171864783920047274402691057104467489503821703480343086969382506226103028584092178427998665751138372893563849377796119030911310529348356458399403675920534742043756214105582984712107372284400426944311289726809731723821534666352187073690472411279001630591288391055822781136341256999619125483616339348386736425716327858535254527475807600845954084660956676586517657693770283914656099289081449919495637610791364526102268938802631757589654623676199573513099542861633558650869967881009793824722222384813142649522007609320809725782411248072642199866365844681755529880469398628520552904320025926165112056531406094699520346573073966589261623401544455111911642280134685456525345559772936644067973426939513159442088853981308391149062727083113178667757036606619566057521393098162003204406470852535230746583673693213195997744279675961873254658967036762497317136704543305242321910593541244953457695760399589337341384310615660311641792744157283243539328568749711630411550339957524618805216790257215460868952260418295603697417496949857580451220431069189497698386283891076093016776175363046603249856989883768603977876145464118502310101847076578428051242072652093682891495299392373032500849135925900826186256407948165473409430883769206387822693999815288498987090328683361543398948717508868762569128467762189374221591294130370429243352947721716850026320475756307520486884039632139518096915147408247729501938791333126512336115844704562219285319232190360285581406914747460867373817071538164382772832976419577368865090467393870584494360562081237878400613770919437073024670156505622946634405755488986242292983600801725289203914740005876425168699284701328490102579730094449781431976347282838440544090248249850752112488956075574113079577776251214085394103292800172236526298454668385630855169367966837568182078149252756973175092109336310296258468040749829687248834749681368677751487560323619639912991842101985166503886725301317801032109562862208322747485348948471603871563173938351526101064580349769940430259305501664586302618761254468767861199626833528237441116045377920269866607788893994139351615637753327982155576774837261913171403331191701521186572764134528519373124983387944419128180398980797748920205591612641852395656658618469231811852464617204701401270111469077780610560716960667298881006263328775359128047996804360578860977670289548770950123472263599622134305558248819478220884970588147184207250736134403465404898976074850699951516273933701097559544823382849547803185950729025215846853709250863443862205320489221400345908867988086086557007560957217317864295013498989992947047949030282856928339079819257346357770016868038196788857534941484051766022197346817638514585030062016266195313336906563463337770170555201442456902237060312643218732673211699012521411875859536116052468374939395755377343786618411155938775675602541035769217947600121189954819871743833163895334718262223649503963784523130607909376443116185019055284553329428778918124609683437869097009342444068820220125144598455854645866909231327659722331660068792984557993131041915212498761776703812203769443167190675942650922372336452309070407156700949968959603936639192375777776744628167903420699414799829446403787154035635996869973309078784680181134919347143147371068629434897393044524310770361624091544494630329348769800238327240688313072762323918909549320681850838364324164913888954515098294933648886894022017060625587824893387419461613556099180133727266585634802230866202810568382071355627511426961953621548974074594586044200202657273765441596125069243658231350856234519856389893503791472068246729448721083482019995081691165825972925154385901855884576501856861436847309334892375260718192776654252646240525526976536534229340753089964266173613461472322790132687825839815734688933050644707046914641211756927632213560561947561250991000383689258389669400568372572031424148975271135798353091098256672827637640539874637019764918951587072648580321779302010982574415751277761481842071982252714549121899763201387145478943184385480852896775343147519623202270708344407843391869492258172495563344482348166473176476224373125051971753219511039868405975813732957474800110115721752848784339743642536454418841857408382954990418165786168924820414138433523142828449493749663681705525450877700669527640140870620644555990837685762612835139851293548202479698442966726353854470049797448991438010803241871598687919194683166486903432787281610982539939749471587552754331244420266475696072683837662319101503905672180342089180974873210201545175704000154980672807459114118584656855596683119390381101930307669136943418666868461281766746255522175801422481370675649641204352157641838310765308723133552492017383303758206082535119459939288179544505181259685621128798360483969435830592847326556005312846412839661181611496511495644823773530400781531350695352494980382282080721306585852232797221091578951685035286263064259948746839251879869347066494198666690515853276882620052595774748807954719882843907197436243394336631891150530308427161185845233037670615784240643512628436819468318637206797595372852679585677682506387567536471393861879934542835643008293289633886542845965571684109654728844455604999293495106184673545551212422804757095061382038674819530721184492579046249590473587462896511938339383393951908932177975984782410049605289878336221027896722253934981900510794946369682657380497309566932159033122678398707396190914116866342200330454026601791041375424994057407762437922588191285514312561660105080007689282309369420365020143928873217760252211755589433164149303473147953174127960135267420745177771332761391272935079060965175126877990342531040946399983739750509943822704568869805740156950149988359168469708925100965226433558143239762403563819664877393505128785428016431921489874636090287173609314948444114705718613004905542328840203387959833603781960222033022925298532244846678512208497874087465738276763844938021206150973713759300675713846072640484153882633982352640260321010099997628539452740836744339130447872789897046506769039080982427718475382050876711830059289791786883920832886283379510813185105635064306298571358124322667851432760593639928444499922693549103051811652442860049425870977733522033245960786666030654565493881689366594619755389964003313094590063539192711355481890710393416332110455440682436203521118324378765690795891703918286153253841298884124373951767541525830241337952519811955489941210767385882435295917005683068291824489050940296471473129424230055842335249972627385734042997104680556211063130339548928580651379893635189309224816442142527705501709699392935979028611674614536314532707407426639187088421015797703014273567388759251285066235664166182012736581966468734348051995878442093972916703552357059969855614810620161091287362780887996672975218278092206273689467082765911758487456432738979489271045831719414506730895204016579496591769694654203664692027931419050892950478008051494233257998477409920338069510164583879140731995625754735887805314157731009170197250672939373763560788580395472972760160829454718182315812647972629805258280504464695259124061246586472242676993136681212296855547759025715732311372924808266612604384391977510820905913007366503345383614715670991117342143925794962254419227266272758173511834325355387621951745404101558859476394117416915109288080230373387153313235149655839731237961928270967295403992701763138545463502028846115252687420991615680357170758151802861095188440560791260451796099426608325909973837664909502801719441849346609129134228924466101999787407660495749546401909235547010955958451937584707752541286295415321306564998741046340308075457959259827466692150237038722839549269085904619232265701812176172058939475716726065393684896960178303042642883271757465253504614123404322813423437614538350501052834299036309100813342550956766324940275755322670111775932981510023753483102114297815201902143196585888447028716999827682132863677396057535503983972995453617168055741741682379925648152099543615548554194707489805792284436909233816240169741589646525085055826983429084720168934901288883458974821671526815347817732253087180379565302094582018551686577771481046053056380692673973822357171063479103026472986425383487130381971136226004119223943110229198605404422808548943479416096103014644587769933641752148423292827753795414452607700086958203648528705105936855009123671728685926022627024470014600291689056326975197878898100718717909346553017829616868168066717352948942269440487491500064851638433582324064402422781534093320710587001741940550266624094421966823589467901883406324345053355268962631092909292312522819258506103354399050274860275392527604206045924440961028979711834786158948331540234664387961193519542975811076963640660409724803194837375656675416069298889521206737821302286711305295281978531020026737842366273246682600820221378011134002211761980383095869096913361128424453059319873856270705506220367848025177774189805272008199532690728248466395385136648702254495998595616003366699374304992049277064051031259553487848207669036102613147266423020580262371792838388671008488890258877714355030770255824400245602602691336746807606652801354676428841690155649359345932146154016245354727877065397785070345678091352475597050315769877771403338139642920257494636159252171043482995963468975085952763163036007890364679137610942463813864118505103828514663221708829264737329601784811742045642964618551779843471273081427113167703795695006957067259892410540367556700395592560878861637290289590848917208121678924661896990763717596222049662298187399194511465222152272959130712130920114315680994253995514417507913731329171234606407782924857944181097999525019159250608888456852266928368749356819909702626173276865771096540067677723144465408803024631564497038116359540082842927793792774726759998475900715303178131803170570842579281528307364949075994248880782674258665921909648714053499029026175432258331971407391539292812978088296931149890395109694381060229407887516125558761008508600952300400630168872769158907574632179403271254816027636372685135602549339402803981740103344535754130118446606967819290641895500562734223633366648908988419901145301831665193146890927456777868304481710038393676176864214607425708623819141174995828289014231099380346891471734900544629883475207670926961961497215881722681759899192526805127321051235432781994734399197183953438793940311092176435814760784514288903051586627944049970046445501205330989170241941285280311318076171207590259043868016181588960562237020750618067662899610814661787236624903352382686332945001962960117330149142061045727419478020126547424274908036330669158586070117353649505771794171608802165869508965843601790881921756411453053878137965409287307423178400978219672241851619813035150594775710002783054490834626635334099595145096047780839087783500568679178268177415825172820473270453718264224005330710736586359324496234324826893436104339871022584346235842521813798361199566087166603382704711971383402458306566122025523092033906386686918030490095386135529524923779313052307750316107856520434880834023828291771519571926011490262451042644122522892827013855647443900098206413103960575202586648088181132413543511332930310231812841776186115338632278829766113948437913734723693257958784741413802211026315515412551016708474313957719393101027649128069373503365791731958678821106643354501731050837961458229931117865568088310119337370789492944481057995483531504668762732496470718495905893489948446894261237517823498724852272388845905266974078479878010260939422655910489605542681869836691830454941236824525284734693646742281614671095842352066359838809830761425515310357045724961892870253530266812438485998838073612692817098934821089836117644586424175896702528240206544146302337202621616790437509789285382336177309494228112189493065094730608767709163020828795849812550991643338282005454301596790386523845629867276899623552287938528733438551362634192894181521456968913787904238281048921499023184193570443303332903953187031384895783101249904155768481432793516392655462063830457542558432941207054508164252672002578895572090247868351824707548523597182026007459956969694978376449762652408326289612009759434837276583131352667628199366694399716611716475683688801679297042686312186779490596753052398470898410264125592703403361345914819816270755841463092145990308695354040796639346917240484836259998481040182607594418392352112913240230345950211805195068645811928486176555682964033019217747395715274950257755185717014490140792769728709355644181611673921843938047218331728019395493912291329513601763886001939515754431500531018448247590621463886222606624391715221980522130828103593475450483954171618999728232182172768746701357755723837912744183916843127097673651753166763178506524927237514818023002296664369248547388099075202150740796757622019513348060787958243966767263063296561211727673354332551137297376054555373533605135157664785743488645890085282546471725127308017115299231071540088950246554599465767134438100216937477416463468437317077136922764411357247131368524489740434446307301528402143243976894611678583509930051865103983003728802353851711736552536802314693899268338165998419194827862203777979868982008879103002984642776579959910965689638162219523070997621811448026431159843260029580843369494368187066741994040058141215666915597397223444366230970106726125218442656016920605013625180986328343112912669862328344921044543925865823812593521782887772730139595733749189275705458978853600862949455037509465753612751485451524072461833013665442922667463829746656734928843405745799943011616730730891362692579353577956924985567365604476284155362552358499261147687261190961030410272935040767119260147779679751554017662817280184455134526737005352142796778459443323300958598204289957468071618164639243438038879725504674747068706091336642369565259097717305256188964147280614837113969975207013919484014884681859176615706781992610975704273488750825440776812323388840243141106486315033389965445575438342148807667002795127409498422516101829790688714072578483858331511716612012508143609018541924628240916991037177178069189337222698913347526965572753029342958974783523594920064762709593285416799589460885830724987722164404672795364131029997890379175272482475937717739755026593823586908803097773183917733098969231440956435418426984515718934959089279497629929574473450951488620433524346131930789467695744728097881952273369919256339800281578463941068320957213522572658411707860341608593235528798789156948039570379642189544646137509471365666253963687901429046515092616262499854352945072928426202098450387851136055765402251598849950784228509013196667705839078805825798763098887772926598336550158525959559660707921156941586902322960268755449961237987399523235740391624229284058885923248986009346202565139706273929214353375562762988242564769565935565781203022087454730815923376765750440088388848716273818956412447615406991689103717462649468171075916387765452357282469149714937190762175299486466399400911254203977528715474976189086660372562603089210618007805216204112186440199053731035903318847477335607194188326153139932180905590308371301432881853220817589766132165391383354782927443826422375494408302052215239531479116920089929043123371793947285446989624786620754236329998312591038638701532248223938478802019559048737733034558708652868522505006670754109659827504668497754425636037244540649621579745510366779489752791283203952371796730093617570998295164543077250487374682482457941856240959632685810485810962577336702330083488584688445716659375414901943086545458396070324190367796965281805854967891405660789620617731808077354154719586471111025743115873058057804487649377159980536445054578446267646664806161956474064020209754506103945109884767149374578184096806203689318463110703104620424027658180328888060720658757204889835905755213734155668639493932697293881184255701620081086567876692963510706251000567545753655831540119343601566163012936398765732860997446757677220538985273561364373542488942752169525227604881317019560519424779898232538874090105065847098362230313329144809938273988409760500534413321138189644198520572356160432876387143095231318842497696094304304375573173021432283319895142620344220779543462440206390092218449858570177876230011481170035604131651005515888688296674296855363113486588392639168405742390200347581712124951962641261303571182010296316425002449412725353227138200386589481207566855177863005673430486853503514800696541739894374890416618877739428713424600961393086993507317578147446445823407943770520024636334861230459431359396868637584233390382143103570699219581638159637110642124082441365974232587245990007082471751039222371245995363331420106129801796163460896982374396989983995808626169300414042790706100480013985777554770493786717033941800827033410588616354786829925763448728694166256170742154267606550255329004502275344275988300739439356859737898698723242278594741724419418706857167060457668028779648017515459391359152444585550256277714668128853786322548355992716987842527787291729085446885889964660360833199808307712133220749285222381786585446577894153076202910382560550722626264023884333750366007424332769966700714033062520725469674291158620658522197847193603498586471601060535468001574395272834550648455027252166046673679894111705857151640664034343924193120393506815497644484101038124952850125772600784600687875115699868840410096248890600815357267095205532207085252117239158264887172952407319295814354039089595672584519742868237711215126086241925024482800258685044269850295171628294618081152022763435572147749354771511139811935361590845189705751764689398691206071905227361947692981275614508253902639946398230911547010411882970435530770842237525325454397043039372478335815071707823724634997049712170459258529194678930259665216101029957345738312032703803677656556972645123921314500616568976162681080266053229891592576026465241057748409474685343059819013110651242003059511626298045535081718971250329667571978828760049541793325965416678294024605915156795151390476354740747657036414355572158564492773787147988882615072040490403192638246203852287912187492148120844041228005420039019802909031116668024998804355041932141319013916802241348195115464231805576207350685368050947835510678158808212579372406550834693819567749233387553306638284987847914326854754150130440370754772061793392207835979742961435053895995923212566190335659234538291846922882291870916715260624884020149882620953293304054263294191161840700725786005443819217678985383203271200734751236638674640325902025908348306923751299409749897157137106893471266620867377385700439489324958122866007053611329517839083058087646148091420599912009574872070839214406303069331213039879266065115638075727153000718431205147905385554887992853200407712913162129165598127610713550616480281921069965397457128798000529690766866850259696993085490449196144686906849672936162292583951901529479326076366386413804295070005203218358488796564568687569978028586476400524820354357016899986718616190771610580931217977090607235391002997334139274966382946717288164349930596543499043137509144250007775251798013509752289201527426873204208000488834997142328667924222028186671871439054554553514036905752953625229061643885786326880849337368462469894503467697807452346514017119924222483012219693061416570531852601098392983935368605668388724166305319080907246329432567685257865963744450250248596472466359655490328816435258187754651060708819537195962638357311738383116771088911774912405755811370295471599337234359476927144198238038453951141470588204972515982510490657736084965525977127392585645955996295807897498160196548939695207161185419586164528446798156397888498885628041687604421079799524636883979702936788403453087204524061709850977479471228068694300208665800476951289103410201737549876894158072855722072966585361698462030446048657790191354368558733958586814995451827731859614821209322990153954177216355861436851472571024246275943571340529013367015678816810935203466381851713939802538047841570814279918853208242722817475078246270266509387860248835124038950797528823583433480227939089606856977151917184000920936112234762767989587103837439533051047428269979260264212561955296197404752731841957781643015668796872267553614872407178887358486958179328779575426802849756422857220085527589100749298930640497114960381170267503695367810422026794277361553581347119332010353778931603927080154475917180129686896468613161161207507753787085494708523004130412184077336190077781465338352379750537275316184414799564478518619932163873013515764697883265453170950866478647942296433388535915958910398143410512805168965390099838765271647691622436734176796944558545134336082294968617798548302252634915703236290079788678134587366254877876339629824958220752346523904552726655321756785995574157996547936621136771735410453151988140188026681319527778688266835222678120147965231735394973184623776250855725505302989632740375232111155493008599181161983978215717440565883985984225154213089444415282302950229655062553338039901289896157823125792013700931701626878884304202089168444873565864232243522506305939704363670828730905709584905273069337917977338952843175768687052817804744410595547583915314584221157541862194854549372369879011762854904916640361038282682627853561024578527247097663928544369993934390134004596050987587451081653565067348611545118921613633681252994280012160493816145592363013232085785359380769836263868007669986120484497375855565924632448179886301374882148729831414911829719692001752592671917429208179026737718918767708567217033619980424335411772516414821588936947045754086598581924431381646006884927623637640957801881909228990613928827132563754183564927305962362260681979548035613927657185081895085746179854597050158350247469810825454690008692504235578848228583278096224110134985451566117900634204810505204836766272694493464223231707870189006504526481785589294562198530855583615082491951196975397766772205749571127596806469244959870730986527269514385690699833355205518687767019036196528924760537086264061324909459916752149634271277109931306953135804234405760887031841439570411592938721908731389905449466373350790930281247582610741372313839333054847511474548571800275900900961663255688324685478571179613350420337648933618305792659179461075865799220090269432658275768562328656336698684503997621513265186695107644906715354242511225365365514013696268626867981507015312618707476592955626089363124757864829193166579606985811317234370534493094300146614162512951978826715435651802955404799724346915060085722696521745290866025084558572721610577805066221654732904923986238890345065365338656664118555779868508316659342853539873711228919640844052986083439638126791048927356681689265722176695681750191364592710586176855748302444851838666586361235696514732490370521984019389874998195082662991659428737183627411639011861368033887605143290072960597294166337362049245600533892366781585836660763928113075192059362289232392512027623854643704897964354842893792983024203724145212111384750117316576691742235026904577128181438467119764267743449323525270368793207710219225029258160287582331619323846763125440502496668709245844794765971118845585190594271664033785609329692726102885516003204916245594444505298849373797926985719470015503822522439677229158405848552853057280369686189267866484578639918424441842350636453521069841323254958970479068575513632810330665362687521373347776662246816844932056561530709297745554826215827325088076888232776041282754101133478447407651701997987204352197970335235866600849614419600070183552917465848693996650090408195273088165882659172626870050039537589556076463859852177917720331119155922779782347992172079228772981728716477735713956936801462487468138098027832424294368986089320099697423191335031055937101639473137407672952210941333939860789627464381745151614401872753349854756511282040265862340614100853447119882647683692989957632258897921713297646607261231954033383503323812069738227405840033708790717154957618078048986779803176303471540138712057321170607045992782772209694733407196385378270369701393712416780346926551555252891033929786241708703368583865252369094385607231548445507530212259436009506460029701769305173752871546774412431968605977900539380844831669005184288145048895199752423727848806606851412899935951641770125657976119326403081589837618905385241586246820132507618524805195861815564497311772243393711258616267501069978931433688175466830413914490774917073582916777443512184184144002271438792558580209868337200529185664217734600567869785451233076742694902565911657897522689833847328193562110172377301849955379130450391883305737956736976168347270547927257692679060324522795250808370605147381858271442288661545129808402901253935437357502399004179114450688573287534607213873390828618508633573585821041484762940331104526542331077489223414088254901284785484762677524002965822399278749750666026390096991125512884428676009227076663546803950990918138273480797606871267363415484230149995785448018017911537438005509096564168012838297931043382591473402206021215514742392708898225753439558774587549361605004510589309476547425338763123129950046276905754326697295812123976658425518063318338096732069685013676324067951959997695660804185977040768919038074758344209540376424850789630996131181674459900000652299015447468816493600064018900030416663604018593970797469558207343647871927030628413723638175846230192144007981244750429605714028376323502158834811834985073582479035591790422467917654227600929837436626405789602326404680351016289154118462120808790045136446082486186289256549047198665112718301310718896417295339726559837027805914436676512609581379168466580708861590960384577892641855077965612632173709642515069787836622984963515920173138348114574468710811214022069832953353733062465411790272835712507061748648451037383212785412343302559009419277218105556478860299242040617571336219131803767067609396787663890593551506035799755445169385915144082469042523924624938035851530033931926835050914248445676712121084411148873756277022426836693801597759976478071803218874757182687661407884712119339569744582594618025825968868314781892035668297674860226719244192478285940813452561378866609546804352975074299375459567896784469934698758701607840567593175260875465090127524212159913588368614791268201305619410666425684881979376543082158308612453240223353970853726275732115391106599626795955475982228207778401827703535981829194870251925999611801296038211100480849470184429435099387644894513958207886258421130582753706557102159979626881600697801237724623512912095039479899602080878215670926338545737239356812505158453825498851586566188777072638603471269638447181436611935167879005790877729168039529379047216554115840012845255720026917058280039573818655326801798294067790014599063259388049458472453190689799028454575856264625814546961629626457288380847074958737897686779657242741471794997433080244348101923762550667279888431891273668422907151340352668395971265742183429701643750348715889163972332322313163404295555240749050853946693854014769852405391958097740880914559747220395138680081799322502242294453659713536813922933621831394163705114364904893064555383756078156203644427555644661237713930485763877975916592349851166270611398288749667862714968706360881338770999863661483526533866113431677551245467715472551692646630766844894407212271256690869740583535642496149510358351128372817412081652118740405941066631219423343906416904248999458558262294903702973602179031949280228058739068604359590050868351215615988971453293934548588774688596845331246971975181001031142495810316430479492485324403684857984505573662842989278346235378153590963671054606830731670670169274921406510916735372280921038694711762106976173891065271329147911598660772138185481730701821477214960793028699466526412662732554711274785786469725917243609619576240262164882883448516701926585417677593217748555159649040337417755483790997569434915224016771213163469292138432140169052906051261629208267665898723019313896903750703874611050487317646099507090986821547827721325246705509957495519637072730650238032686233646728549349238929811690103043250362418104550900936663969879578013488483033407916552579138260280229602482532443177973269121391931071136646850844818146415082668439535697052374238018950747796557901765856198630102530869477253138245452960310531377083520360812583919185232617332508793445382566938209990542218421663868154633639484044452674725951124752621424964001083421696197360283134548290257105571291278253279402085154709008671063632150616040910123145003437430134925638336792605383602041868047058533925741121441037494550165579149396348210274827899634642878849320394984997297080480085387686334736311269431488061293720689932352740220168829489057885014848168382538620132641464595667742224608685234352400741888646369177851442687808025520225924649330192831604136953423255681780436328963029291233005252757760020743731016607683714563488151090984794162237576642123933427059385001419947242309692792600717293293716729067647467292208552605186911072380998369724230072213017489206388125227420888293864410801056139459094788099796477642013681702886869389242441919430242811661710888946106008357361153604890937594127036962598707890606746874517319780470471451262354479419578864369271139629492811557759501035997535618269339623652664543838354367983007312446746102721201897666579323690581946710412515954670156524775015600545122123286516657170709476741943963483425189990770346100143337433885473177452996588159713372528219539777492289848893814465686260368516006118933038722924799577689526149664126636682881216998738181743131835521217346411037562109181374530375444357869251224633162390569292155501282569760386557137280369266500794774594676040462339680679717955041326209072094851282488819401334516736325961840384161509704553224498318420416931992735340776484672454945346887888799913851724619908752377738268834314715320453015209300267916194085626242442315828154816420948377499885798000204853980318912669167291115227974953949180093305233550582780291239061410017495445130173661587346010414590933235866652671661218274448794563200369788459111958265531308755910355027853747979183902785200615593190967536619022778227157057512611738862368399952924241426284109885465147808708632127158982132564831004034643487441948148954846275806775843354230166257952102583147474601299357661889133677478611731338885587267283986363269015717852020377807438804286346670199697656679999756537831248360903443630473245677983295177822372105179643940885410755149169021925295151511940787688633023721063031588034361049119748739436576972680589737163383439323888618883748826170158897918406445333683514510781371691033832374397706580263433203039837390022528096561187879428607660180658723177350217074205375495256017696530189294079734041689080865417328500212933747492987252592050863121396877203926971965351299274628466119939194724157807487210694867966181814768959531676172591220125615415937553124703510111096998208911521936600218408406621347026865096697025740174341405636871111030599186201477901735877677166053271268461943300099378143533117164513084698588789397254701093062511713741544751073058576353771925361126532602893731467512791119192441562887875278690472516832770534358479015517868109679968936659976734886495601932807251442014547611880005013575361839170639620965359391324818989905152785260668589176693411792096187262273355296014717898310048199166312819323550603864764312068895214303994512469633191860998205807617105413489886917367024287933392548966039694127020158793228902391744663984150069476267615247395103670667185535414647312464739516829107655012672046803647826220395974327498268898068483161511099653972046866342428487901140802240078229711167965727754637667413543779682992575724376765821982530428265266803785567548823562876650560746319340369984791734698006715537451474824802641234178386883150436936014395201641834618273157079621838304777530852658035888380636743072341230026698203623247738558244631174357873210801361077429000845819501809311540137471657439944528816100033484725913957538756587033009036842339933039655294735153510180935745664172778621354580841508301783077085831032856371911350838575322762992983495406773996363596514389706307201576848017326258094634026064516940492363092151534373531855690281653094979938411633828753195843691319414353204389415766831175217088881191396437934847487788797766624253503901009621541989209201947546653572776983562280781020927059605283529716766077835366805124456676228055554754428639329426648972341496881585073532763653717648684282209755012756985776943275010496300671378855897423463294455122545601935711606861795401684792614464471935930293680182278061736656364839434281056742524241837688349034431777902317778899229552940178408727969668658681526182835144602122961612517922312402836505177686498224461522904016939777282105019706234704335034827001958206544013411887619300186711436005925934211344559008058576284036170569073010742219782899897265337789510388987650954188149016926290232072528142801473088780607723998000537570517151211914363381591151069502489908521325269081401305232438128838445024207341455129765326354237745712764289506276755759363341061578373314829288556975392093262236961657168566434441507913017329630606993484987793018565671383729891310337038229536973091331977693963824408600015997787105244617289574047804180290966809239573956457189598132116653729688806652969168451044495915854229979556523457986880894244792508712682180743730816454289272522746675997091461229375271556968757989848394943708943221957932285820452645394940724503651924466037523630451381823288125529750968690201974448069431099305709531789429992588624953436639285123395171644110688482508066290229546517421370991730656207712486326694982900370948568586008345352973842008379875312343439193753883662016472274840666941497626500506643204221512676244907160432812290863775126290615866853443517368984808154770849438361860696126938010738491132168657938127089021469996331883233532760851055242224764101527210884476561800351531862571234364112199904667617610207132883745639835875872276544083663716608892752056297750024517665893681555753370468827305194500574693875502314780452807695557833245936475675106921502802410744133180663895739573183062659206220841521172981239661754353032253491765038895951324850115794183515657358442735301931187274605412236823374876847377380891824021042306871362499496572383002679211102662625164498074112022044184482084588765444307937648104321938237342726583148418146141130415843929087693490720587729665595136168836031822648510205404233427878163731281057644045120787189096299541324987572042583852546833998170503503222010461555579896844619186450361433967316865803488464760622581514186934239948310146887678906438672489537239997965035208032348641149859927587182117772865857961528648125322673367145485422164810381167315586452641142138731977787813372295619363351794650437079497512928061749310540568516145962505642735460126641563588171900456969516252764232323183067208073757371529387228359328346718151512498496048487691847291965399202729497486153022584553164162977033826881127947339395177410897082916647890935054389925808795921478107451419198957389931879509412149876451241729796048439399140243490766774620612741148273521362532573641005426504122257799732184073750400777127776811521425205134533358407481199221351660656256228585799448919665924727765483816642237183415828016081982471325990603783597636401107590921944892657337406792172854694217952273639584628823143054721055728215104881837823920110626145393108222906444518291269002301500465616767493145014134218462836565205484871973631228327232143787307935257356178368903695459768410954401426605179609272958407780554618690821368646137172100442950137046834468722100771736904484497408779873286662888968905145122890338498602004669810599196252227862397171995698868104407497408332794361873782533171386491229184715783795204402672702263768480252861335005097139378066128114995698498916738906489267408730958647451654488851609419092794159404246924568081483854858011310094009981041625776440085787572172099612142646046286883239681492487176963991081007796094490615535344829407845611579989385558900780647982496823270507699137298052112206306702752852442428010431797469743412234816636589340931550656110205985828139776277229582639293640462510755478666475599409719913876104452975244238107505426523095769523183240661193617561924869664675784538702380875125455318242152344330684890436397661841767865089506215703445846292118939945502919066194100315385373551083374240952852036538765985413570539805333939756380642475030661003202158005463004739839140808867456722924749113544323757487353725620758778782326131993498875997945979049190483687362913147432819439012457964847773887475778766915915234605668488641369294282572507690317192291624304077607701635438389483052854502832963260091695249511047255374081637007260962629442409384951469911651862622662135288235245036733332480547409753913044494631323281631639704927288734848578958203150031291842838311362003582187347743203194537236128878128107266864274998269204554677678447019363367737457836317857241328801260030405189094400338387098363740399886220513759961695274270661110217806816431100562858335863626426929452976983316014082372678245021427640647565020876986559183195321555386145178781026724702821566236217883945445401120947121684190052498332047406684003182042403866176182737550486855399964281664968146211041344551545758837222088422565575541851626168980991612278631428043736465434514149091093036096636457048148751011733625238254896362515516697016193436199728640538184304459376807403130273343098600396570040595563669548553637084797076605119953851790321116382709820799697738369795664193530174616165122424885847898431819336693486370862857019456985249253193253990545768248095017700995402804823398053847180883048541396588839060025902613092685157171184051976661541996468174483808860272338256284197426507930984299049014429508471009608220142467960230098348394581509321614088917284132719271639415945147103209140486393633544700895299758186911862262602351338934771541233150953296958689728210737652331554013157884512147684940813375777557549094203516519405803199387832499508960774839544171556982911392191425962569559085759651825050446837752330307240731282300476134183218179220127243193706243814684195429425049715684463311060661420962531989918578273589234508742201577653617809787348341188570444137682215226190880451320385285552303484420221358751979743879972887447214029645479972959890172855068963509327809968685587669218068128842473074031647382919063533205325719198204336558533850392341026211176983442257525420292528603571646104297436784952988812493425651758121745122421984912610839699025308988005567897210300953758999171933038676783582246295151595375431626456843947965452253711529419597858324246437324040332622162686245675790088428030872349153755309334572666300992758160374805185977458419589380508697458978086879550115577868528488139351774770884245037089354466867705474118573381378135942990586722754784379601384695229899823344874347120594457734435745295690912400782111721120585189270780878626259203200049736266561742556884692608718375692448560519936393186971629521418792573003972506660756515811649096179239392923631026471780229707737143139110719429714333848099606565172650070858645984892454493289346708161722646072489182285238479297226694747862015411528858947782542677588459514518993038857844210443298966929786303266310589015412618560587423311361910588475095732243002025962964612290027290306003767241060232021838160808196462742612233120995868561527071912842233599015238989906395667763723873439204240858577793371535423398014157217629931045434302743718430019886058718818903493894648763289283420990563453469149933773198714654827337703689600465734799305992957795026397506968563738528598241572010882894905420222835610405700075559288104359458399526031487786492841694396612555921420190219895785540190185283922882765442883938549099607755283797185179845924199945687150850598628561674342281505908836086705829714506979676016620921059956162826899481183460160062447703914824998818274212813779003647803345361229651156205473617548213889560213956529655924710675243355583222124593213740768051113898162196582751424617244057374872208658809037545640378626891400911448515930379559839001113401301533990916168441274540600080670008659048944399960481356527824957825751683426123592995360250733551088883885235397804133461091542025515429973142761973167771502175145353525291173486005584908511460983514526321791434662886656432799851953542761839430599805892078343778217419837249041606966574867859322593582093518350831134461466204427536098987681411882171022591599404053978168510271216860514209840165724546620685706467246778794226194040791336936111871080184445419449182704872475534741869132336045166109859947990955229157270993225205928339639965415936176556356467721812995152720733979550959968709824394291415430790054087916997661214561033696844037186714671799630259128982575886111130689740927330976519949181454713432722376954588275940889067718577173289988771982468913010973364984312515373482609897167982700571151719086621390671281755001862788135752451579293070057207765870764464068158762897876033524800783548569091466870688707329968444283123540739372542648665708642431852858036653745600626702384470813362826152868526092296861432071203874086224182729470989980990183577168388739612037372518226523486443507872789646291448054895496512856814856757557128608686937620006225586224157353819593875074048052697888865225470747941510212479624692251156392321722573222499904424132420918907896437042522122556019430996477834522077691496254381352909064555075499863740919531619906455552603347856541546037211514414446558687793667664718152531725630136032406652180813839499944199218317542127661240872353975299247942169023763170783318251287403217408876779339880450187744349610725020026670743093398228273666308302200619636949093304200700714468475512254487404624002160666859509325931587793427858735826939668687408307042501959127798387308101921262021811531837085847036444054093893415747210831406452136998765127165971486842366251213197784857763602671624220469546589478322261199679596547212222380646897925027412348388518332021359249974991381505175794835401958554350297245830998834390195578269957743595057191782726679420373861154281032976854752437880550015271609683609934424214768735532631380383948519584217730999292345771330683194099830813797144279678485001296952166376220756911036480292435356441083750193508920726838730835346119593880221610561093129724040394471042606902302774994330605671540194416560571682768823080516664018201037844809890418315528099642425995248266365678204187235790410465188918104816090284224123017625576278964851514714873762007753420084596872548736305911229818506414791757113998102363399831790506431087624605555285608459314533253271212493697551406663984300865907278760163522484483526554122522253389179549389348941682684950253009919447026683804240240743637132044635180874964443032409746725607448137543316935195396449644602326686594057894700144536764858780607423917812030474299432849859516525175242893058563964939595345367595850109161184673907697409386247326076993354932340924723361796686267009669895541683091404808298629501211753655730819520578041358112610784295095387891959181815252041958560236667229518753291309913997042152213104900345211619627343555863856108591532919677367268627754304178169356013780261564712050220475833139053046695498431898198478846226635029970009857935550475257068093810188476762938595921717649178309939602276170916606241554265717386858827278787339402304771748897235847044465685624565565569910989736098479568996392828379958291655875689306746297396115842520475917661249923935949057087633520365057264511504569922959853262198243746536112795486841572932710346107723240894981538328489765579265455988929470785658453789054210395747902352392975898506316399463455561911009722612194416327582626628534252141415392635815139383050918327863525888173136392567760057060402855530476251242878165526141434310675555096267528635258174875400228456364533191665005677769482281251918282883108694267677853753735877466397496404151208340026548586170232020669689585695196521258959013757726971738285791960716921444529041903502833400126869782860925507381935681766134488638999259569549495842813085985456538773706535353658456796078823543106956253193098780889531955328470369995559891015055895081628889356256875665418288243327206937407864515065196395184110422991879529209102203465716306761997589910526210131002028026819465305433999571570431412200795973328693985884152757749264358210326480053719531596155572838505064302173530877823343231801172418434007952970298519302111702117049447965141905925460069241263790264197913436889509049093852257867926203349182381156167771936063862277659772708461209531743447896862477055902294874652703153196344920896165282261930949441696345994974639369204067352365334854699138778739893524694425588206418168902644080428783459374259549280981387443753838991117302424282226244888745202652803358187474790249845401589778276859829357747389786334464083697152232221803343946742568141080065815556151757631375257880479206638963973160864009465956036421189998284632187371385018264765212393437052801470888808408972587663360117839455245414588005677245945803324210655482454310974690864967840390901763319870844889828939769475868733213037478788896491823905712348908719065643300852787306449731026078286660324810631113841699722924420776251541935006657255444998770580064122982005409058968984142930869366090150565847263103059893231181841693868491683215110398379614386409819971227954745424561229435927583706846147989818716481495523431908095777452340799718778012717322756586727218340964949549914752492115270173713724386756330758332485397978634130561467915807603164339542824209617642966508158538381877819601238159970375480589054541593259680186627982925968984069888481911352625869120498368446515134797261202790475961214622206145699002285147455097380119602115004626741867776127290482054017806879028370996855781586541999329978133557841345288075413135327623151728716805955077843838149907094114532444695417706827983797831489670537337865700140466550023678031624174527314765009139289098042719502701135176666138938037476298793659842179198729452079344155504692167761270485035518216083027152522325774773512619108238088557947091699748924278069053277385612519021843208475825868913392575491465438448316840866107372358374891298877384099209958526787512416403102387201782291089505179640389246336086080619903473445023265220684813553002564278117189675049961754988513549754725583568915535960243151063316408545298606827305391044493607834007573774682179488121329799441641798989113920952687717542461450656403878206983269885304144153152917548359771415317063254456270384075947254260583684262825168524516781578964727508046020893185398095546635905409716086611971361136630929993648841587354379129884460797246726385595418947077742154830038089533827276936700012363243934876396793529634808268772010035403118759029988581950011651160080009466006349079796965566171439950229150634998304380995871098865597074229746907213424929126134288138642308296241419036796073800545003841507352309236912970994981717774709644693242969622065506633716473701539445332587523766614366408836388330829532168780856185461827748756806628367349673748231723151460020232398599182060068896525868332902373020108982590661414970201061779724091921229298974741490885230112095006679842453604242788634112666256632867941491606447607120556679722762463510001417947629355971815044198064088371270687784412043537649661451981916345073504200297879337000431590595705428005743132548119531083194111467483119662507462795408089685140676829698985934129026497074729878106766199243713886946082908607872752928522974971981637167617914757783150380672684048586731777304587718952598333285019888544366254484449687869306333315284892540471012004588247713822574824117406908723252145562125412641745822377247527233080053306582894353307448015247245029672571827931163913295706939292084435535100713767367631883327313891891418760849353840686950990073161388776718712274458724933431681677461303584381607908223157065859146758715859973943233228070541281626369359518786727199589514202390457964081201558534701916391143421662067898108997210311106695923768896915164333034085084967654875724780203351575565914354791647088706535912970083986616037112687533906562897225783307871835835128618448546558365207234134409825850998659816978562838995171132920145025221756000356063546060558636352295398530771180909594111363247960742822027483922520743724191639753427022456352346838471638702345161443578440030952773559267270285067053126218766348696078331892789387305900245726750825985596657481460799014948170060068916829801582329054305004264791133837807749284158544835361452800965547763845871212891058135227530874478074066677716445724204650782961324665818041644062884743284003765914290903806825381820983065687187836508828777958677577711996137032051585267408970778749278413772774253843164545784887262412777809079611263453301636838845164957418378658035497869551397893882588142540215502785860069341896141144481091707810035130152398288795815341993595770639939945555299941936309661888984228682276466984715351294157587431221252427535251024605295318207921413082328205816282233819138042997834853249390258242561019855044139368901890705011550309657883903797538760829553528157930769988130242228528994273033622762404087331032523737473501732581327562792443574076865841724973727313307521367683541224370693038239059552029393599245023163807481666512530967302794808297662909294615472346693615235107074676231788104204533234442251912847943143708477011677192043949698755568669927497610251189133543297482216424255281624423657388361582776058462832686007950733817874746725092794055214063169132875087444987444968598711482867194087767805282695899892236880769324666644635769900367815323457606473845647416969268020047836919886651751254738489972121647185354496187164501725010613465453487724112362485291002016204411758494426730584837237098770289560902073516808807674364141559795231755950166257269580720580327109171645178722434546383728570036186612801058805606046199647831562857286363456075671188117239608636846079864128623630565598338269830736802674771130985599527769071313760998034246734422174314414309245978222097885829724310840585185314636338102677882437900801930222928623187596666463330131945969379838861820129454170597345509421160644877409239274318585457873927578687167870682211388990777574995518943328891389244974775707477582790891287292245040983453857831833726976354505885936701467773556922621098252270291603482942569174349940020646012336453084303085854567438561708421794525647247905655822463321970570250523659035722449985780570554344325503899905424782722186727613999121127731840332477457651313599568294397540120709891667495132388102785753276180603659481989751129694360987681965644969421046192515007273681556882609959132102012836691629405147795697711689369528732968346316976794919795221524087482300477008793239175618716209080745150176504574478936372312487630949580808419515213664925798036868056021543183976868260450521899568206136656025660241114834614866212137000523381639655221309482305730636105733541506205195751667915249603159270374487203044873304268411788686329150762887785270669664817008444544409906558494413707515792029423374707630002835122885544046581345859222521648457787043145213967585298741571343280819750943993071625955682399946301449789157298054241299061779506835089009515083138678599814406100147867456930929490978571066609531229064019472996322896126943509908355948231353557218297277482655463241288812896294302490111020108905517977356105212081166482967322743589894224820805962409297002681880034168652387450261895030215668519580132886859880983482171194704456134904363268206924231951545500295161808851818834431464750531645498087479328022850012194654148809897269202784332137145712982294133175187951990481519517301482253864772377362857431448524421201975376746917969364530888603711529017551950703661807999622984158378847213749484626158225135152574864587369968573479435657980455449513844144879256639361149101061535794801300312004599145977140796055250685949307626672453776611440051733824864664487091395607451870796794158073391555798585623792792136714652495541933259054004039825539039127966947505838172412176872390402054714735851465813474027458704018071625805298909969892542308394573236772492096885060246745624460267661465164462522653710584909237152052598628446453092123053767431511760344030902178178832681238541742332236458304577974503256185203750271698021906817797518146397830575398441185362191900741526720748986025778556705754683061391888096214824179556332523602962857400402504152149793432048342522622201895821834835998486901633908446065668288866859173334970444091298424405868164645469221460132236138734396568430508668346660699686910704567903928496292199001617900314768922702866884498035866088785391721441775295599338139975230352759272116278084462449048800182573659292118765280998677721094377492821614352605194787775097323482396192322269679940590635743702458004079916804030531496571907420635995267335470772692849441005662026406700312442579336740522952292695978940703281259100132388667258873704306421412240574962645084553906941598105705760374795429194268202239022579234452468502245985932169871239641569536461374443057479809820635862532559541253406212385573842621802087174486491090661232311343750185868206819031760282181800486896779434024631512116625160912920310500455663749268386301237223174620907265327006196851820963968650843355169397254675094028684912328072283121855043941733148841756420530659354331694425888588370937337131998956847549076356234922126718779570863640276076277288778480751336781061025913247419500614966885102741805026741842003534672645153173792830721957868630129362170585921282403044099011207705318315383511193072189601793352169534227341244371355560797608317082831068319665034593337535595404486185089565755041397576296563570073955705869237206336656606598013551065825894729937593334551640128209607962008049020679775467336343220053414712314363490108982342492782678832169326046511974844118121710472206898232797315140181720204883089158020621965110274703214289108487825453851281008270385812778008759916924499471749885031139328985436744757568575944075084787729569172599873165858403550347369092725715407421429041254703288243424485653849290257884904979444218840531974004556703728062389253892004775056583060384483152341095672325904501491076259983858363936283732113697801772843266869025076747435493001363444278391046955256380453505266782624768147541558986356794323775974980371739605788913780971067681641416587973034022021324661978205320597884203015548150393983418493334581588994816234484967301414910820069024400409898279907346074914883644360214589831241938866299498083718028764101356065881284253536303733002118438511545962823204383977454988892125083952056992085076247072713688106965964677361523295575760471925140181794636335190642305241605141683338219968298320497566800964055408923440547226836565929352334707175955170023039531959222780933737340662718580066525145848416277702246032583805409210541849713658010129241612141827474202918854903545229359146234120894477513089107970053460868947430954759391030928629722541209513242566212751073496015058204546868688054690792944395975877780282979093206432713365421420129536970205279584635206094180304173961203185748800161433539989306738086280478195913309190655538048883523660492196673948826579354339416101516427691206196237199899371525806088851814314391646431815594934340452084323606068751685659332748161549773514431911515359808358213662003162093315470163307896575641408871985303706861899205189316350203083149749283386769592116162715410671003662911697213855801109022011633238413987196903548104289266501322338827951329754225987956157680123736078463791290010692437353961305171092130479473771698009201209913376750964718678649138342317289426603260376173574368161333244006653840056301186665355650454491408171776207634895466393891685525724814210360700612084078009457690938289798348000843257742695084666715756205933454846847774206918958268620263917715141222100655953330966984586464751725757864832335175948649233202905469769745375447620285738295954060151456766168882605939929597811327967755901986739538402357213754570058015138402444914269190785990120335815434718586679193012184267609121065091164300062466211089895039220999191455498210404285447173178763055148151435390467644057366330600591914713746247684244394878152841642249028191340380399294528725899873180983302526665342227433532754569677014207149192605814197740060178690519700907511814595410421658853820706299859924124177910063667741469713874655482125048282653188002494480822358323490938742875053587124990575346383997884468190552514549755652541055193330441553652801624145109070127154468613601148356705947820782563028227181879417788899676669048604566301310288851103855252232929688346387799786703123962793551103126586596537961945638031220154603371041608035690787279302887090659982279783242516415012561640661593926950769610796219091851403636695262109167479447776441262362287664064741366455286629434366864522430464185238375198635676133564953170706465291327549925648344655836303493397449373062298933608804215057055082516650205638014478131874137878028104063754648774691668879468140873620785883840915927890141521802805429139626318283317717127498704685179572138500289281857506960194769926967948677261216490244846324744438311320287479588660907705044790137207024594566042916912254895945964371796639515630416394773937265423436962283896021760550842054004686799985029488640425759893162930854959519438446057076073398282917535158593483529142458222084627021312829358117217790081927390886243882090576171465339084725101256910296578866541134947509906064873796512896916398067726097372038786646647929805708659050919643240811582465572788828157037875557632516950725929644808353834907891949852421449274938392500923540985898060981916319599033384750435331901259173361477386218313055272036654569542379934405558636021931813691382814171318079780227312485148705695912383900825160178931145076398231235522261202277231267004845371262176626893879330188762949277707626758744572438782160540513719935463885692434886299693784967830481214743044877476085905878517576552212411104658760075663666833973679721162536606826822098710697219096196935583448827485044654766073563958044060214355293235084523427428895778130244229825397663603606083178684484924991448642709115232616553269533062560586398543842956222217409818467155716139748956531104638246463907530144593770455102086264692674411196252149344974958821446648264475621726150717284525482460245715152556658914998405219900085102790590575141639741074365343497091223536868343724463200088593258132486588622340637973324556289227824493511067543453722498089512081153430295432200799051281474121760668041677382077135021131665182074644224451843800479797525735577545047927335841947753026133937240153064997011366927340128661276351568633667316995811371838476711497223587645089056373743664012371965136135977534165019561747640911430507564632898500035954637950547533289564159378619666660802690819696944954527045739187515058886327718846450869555621619640827734353258954076464744420999474068018497678935937608209286921607395010139796172143953864936003176957087663624116039965887517456987959814752833228818942535347731119681570248940744578371104373337641955573719078509452884169751119123535603592719973734057727904027515004742138032671987001851300088472394837289248478354899047274212882085238991558768614728489331670492910505540497420560365116773697555146086351499349693595125450994354028512536350929206544517651264837189099702705714895254342781280654286668305056237533559580309314916107717980463446051870591734628714638146676499771708288296544712285999963403288635442666730116588698797133872865766476252518288959288918204432148564106535987344774890602937397020763271238976036686305358605592545787642973521744794695990888028301945309757701279584725476676060344815797227460944199014501098959893805027113719626639080167941816926648084506416598444901665503851583748533859390678913528217975750437227457297207749718710234491770012129533816808956770051240493834299606412160376389871489276556079296488463474224637106036531629210004585899065757203984597810082376238164618330963953993469878094398516600039037679895244678181486250531286300271153411998867336357788381734035832565424614574609863371512621194218542621323602627481950615298521840124169663306481801889024099498154257237677935295663683664302422389402503355649591150352226639276943286951119235270848807738686771394144412495847109675708608630789247854254721612705786452020456606510798092795210312317935336914888069705471211904421728540080653765355093899732563445402889023329177905335500509127163580116005263041526393008842286028014558804609518876123794317202264569456497855439599673213991414852913761490561472873784758001584860807667477113187327377017402386859250109256923301916790993667275156912218934044706521193394247067901480375921408906489190647910819023679785978596627279551567878353523022777275109512708679574271905653653876212972671164392898105338424574734795494880764734489109710959647199596875173750618930307541489914884049939696456039956908787691886920094407150448751473037951577327687990882461983175414048214356917869566033026020265840854533565593572622441187802366907821509564717818976915051097817979573603344118194807671138698357420571695080933813125049546068827970237618360766377016654481268483251538832865113617820343429923595115338105056130343742952551393031540601154412853280616390947942711163716152803073128319919780834331447782069653416936187898898840198679827842770862409211237397054277664879530923100145911152635533301249898356988228573292667571185421566715366640491631188297555437320150437105999829887996643134128610856065838715986216093620950880532464005640607597528428270627605779125491717953774823892320645773527494251579108884996003824495542584545869216554538429683798728065556648272151329256388949800863702873108588656985411319001615439227727447606038244819803732853243697707464392508536044577854701325945598992270187854549645776235370941473680005015999075505319911453850211046194390592489751180346454476447513990994281864292954766314352877085063700573207146453014768308848583259104650926198014593902846717135388085439861774967588623126549250354971940761931843438546312055939925370271445057668236520068909625893098878195247757952537586733135258319719212920590733818207683592056901331894723659017364141524270211322712791581318555890440557775413470914481206402597810034847621348426017211114391629090923443225111620603441099166395533499102304870358926430987402093671931461780423756550337218111923592186864016062754471818612988121818406311559989727017902436230740405560062247943962598945176550831121534880530645874314951202259128867347713737051467850594893437149401467771600916815309578956683530005175106794519862743769496461701644344368843797916630750745133707283368929517236889778064790749164157909285516547994649230197774453671669553467380576778637043164284920974408666641465876685110410303349811292435998487698695499202503472406574126823712308964591285857443834137674797981155616917699161576458940199079419096947344797442085808985757977955257199607249797231485299523143231815034347809361527130113224810099775567953791723207489466096769781084675680522726141738674717484272706780844421390426813082408461563817595634772690866154022879202900354956300862045672147463528995993965072117892530307622258226541402503603898289182174335279463210083718843877643294981654356344070333893627498008011755113328399854582182174701137509718467992522674297730019655475745841992121391702265698824808407052941064455893740539829070719599018836275434229012861868584234995218542051700447274549155257921094954542840513249429528503226207908955941077868242277601990222472839092102743277676822540189026802824798029541170964715365143731211320412600684795206965311676089754085608048858655257349793888428523917209072430326133415543295815019239499979068084129607212148428376771148626829235873769276028170570376999654997499373104265999267065180029037179988227450164894899381422313320142087539331533863196038501971653188256226432931454962383469432818291548418243733591695980741817047544544115206581559487171606488302430199625418968451675566491534157563654864517198668799891889383182122924919707208866077843230159318332388653894310409604075265143039392076336332242964516632167256134981986507712789238796687568564607621564016997466142632611892288313196459990839102407361219754088134889339584445803442789719307161080051458409739562670071845458507453346077460707898993299209977941520531481510693053896102137496584630202707689054126375534145264289952704686009201350044701777558064144997684600711071256041796094403011046144199806634138640509010846784583455709096345856353296281316264546008594339503407663420470584369872179204737382239231069327302137720218033652202112576343119517680254628206739061321375043649440998752964236769772272670559782769868929039888596150109927119642534113871593731976105462789189604501505468741379840056944839455393111651456554755993566741722740095498841801378456016939026653152409058573783490353486713763786535039119764659529693504933941659592051792163447286832182422603213741420236035837869987961672620439109441365069182944804870490405274791879720500396665543515032772156788066507695860413595541324500170979686529136683856003253751040567192198610742057389882488799841326823025691885891982915315341793354927640089023362865664905518656642217226936630712120265192791784040428825628876738706737183191780431543522073732824561845476132295460743982310815202358274359005257945927979946871576829846079208832626224952074492539488638362101854039073137956206910628469574180980433334538028709751583814006767644312356394170848045670693222850468065286653236892957233465931070465857360028881776162396464228462753877481369239085629424906229025409314194045416461870380874472630611415659357126703197414191294996107146779682846640350775883157820320656718389841309640440609785474781421199429181979490030145209546333908972111631123806100361939774298910772445701561767729333536381413728162125189758504837578056471655428888978901054602433592875520418541552185043323713111947861794198001283588834045420063880827150953506255107039989840327856249516723087831308977992226855128043896488733742262795122970235640356455797981831729654376306265311745787308364481343171689579934430802393242496500598620346481280494565927992505822564921518866320675071662044985809189451700802981569591935525889911043306784863207898250796281168059224681904094216294763719947310670613747141240401541562801146184333313171384526747724314924349439365968947594617166155275699968121564042556699479672635939629038701954393869148992220627344945531986027430434262946418030239126325825337560119299006870221136996326901160055502604520172685615419728518102623060189753738311454022753034958153985687368372884058114917443129783732960985218997615548030520837857197903649216992883169907564970999945874532396395222770224630971744017069066296379536286919864840661113580897354194803189854093468758504722874693739390830726431376065129728102409572103353845130148566384945207803989197756236071947373553612995746335509183328470566118325087834167466784674299921841988995172876402227986375837924253733491672655252355282172312047982885893957698154865520572444037914104997471427425630759640875733387790244268533764313500670921035619643669856807381942441330609378583277541158372405211716950518546480479779324565464777049551970273100173845714106648829723730793269551750354292981213953301192592699414048202892136168480638341039359211993176771107233884908871963549802408534929201533109117362939364558948225551749647760889986655170585900105137212911305780099884325961916755387137960704035472687190131581282881757838745975801404830622215272507243649636656867403590596704906237649373880005655216654638374823058601080896805186210430659885947902771816098914481151690670646372535161222740641003597534619190943464905873004455226987655555444704998560012934751232416770810824794316710593590853036517933571859175451628060210631488384203989517952932825833416034735479342454018642265422519751919250728645573052591279923392468966619655705587828936637686913459638728022141806812073357278246114036036446177858190018373051282445324427041808920679729727866806387687389423614006169947110873123161827957021243723548459939430767505988168051247641681381129455106923829118817521019295669086380519947355632431811209545477637857490128273208361074466765830009434327826745564131762187347062259791932445908919859171627774854831748056172308338873381997069107423374482464700470611541677607065332395855377268144488350251851054367913375227096056870895832419756135246577906937033114595652028637157540775446329727709211134861297332878002825911494613181370031424339105775453197188007800219229453175408625626063814082273382206316653343115116189570368357727528015074350302317968419404836896646814751728797516833498873417160736686382654570497375920405425587979694589653385184496973879200621388868376457351714914556927480255178072462361466911613226590484715114903575623844810304076739698567728631168296357897087506361470517405025721107853233617919843108987375251341063618294981600294860653589528105493995605081087437701146844449166477769171093845590815073947246647267939413046932491128660114102161476381525365205385830570626474034811460993470945567591020836725247382914055176113823968413302940930521779949361322391813888141057707549165922703759078577461168048706575142909929067021718336285473821146123167556344516608144817778816740594115088563023582858646790419436944713185528764439145453432407898516087298036336190872285241317866480351315897757364353031354989118146952302738450284250581016527921264622632573571913618587715133899637358992305091038450860013517577332232741073142835563335450003314185094035059192723545068199327698779762730027280841018832035044039047497092354040633323335417392668090919933792847728078745409684822343023520468186119532386035831097867230200279228818341717207309992680254066063434652331222237262725190188032921024923450476973431678415989103738315258294780851963578359227913968282844454468863147366577227565172795931812683586226939506032381792319263057189219685681425340343403279332739220575028223009354071041376213711953897737134076227074220626700506861314362218946489853830152131861030377651990470451096754972385800137142559395392338967552428227180963712159971192016972640600582836607194532469795858079327050480492257112376073789377606687353534170282943478183446800956711268934790010120363229141011327268505825282606161367947513352925186923626365523599011928458817108501144362909404698367836823548759526911209753655686571923553568033343335141203602554150188173283549011061203766149765116059887325601282942405209110625173272998439736964351711321308741501244672447461061171898582798573797423486030748628051210214674664333782923784803833590183255830234917535228268643206458897456138138843807086660935448953006118382678269141799682104516059847026264043451690064412332486209059330645545267566568102911467427718873129817078358677168590563111364983644025218133552419320751298066399834743330248362326348945634632976609013750569404244020609815651611544412131328592282383668124636739194580184942460995558361326166295635506109126152796865461633978863179847475034157772692040488557712445794411895369249600114528261523630021920242591555005452884299536233983197425153805932371005456886383931315148119579141187811480771937507372511187133534165420183457627755562744785928747815701256553689374434619268453954690325454054132382096174983513729641406551826992661904759539583069953411645483105294140736732343988121353072656074458041092864480243528821458988840907975278207334487405275186145712978335306670540784776123175207523939596138802126658686659678816434298879394964589854834260421469210189944867096481277794446583763712855663153979468032078143983969434528295623680853969769610009349291652234089120249808973576077640227920318798502693656021121950159079350722462349833474141518197971986418882274436872389510951905851096177092611748975090829978744585109187193523657144327314744916866971470440321492703939902138674893216408166913058014015135360734050998541308420843167332653485767999281406746263491878096261551648612828072571973323907633174818723546121300623509633672453310984482213023558063615006774711538586933274548064004968937569360350617368171497524782695757730903087116555027805836258717221708174873029054359684958144241924461277999362269237476674015541160830694508507190182981708156261678593249409159183917886985366663524297760508673699709695850585434499627646084624789927659549656093750429664986759615784609595549427355626809129692882485650024326760554612001524517986925426049741680965627130659533273353966093614752652370539304932482842808057775581438810894053053772222378671876429310953960483057945709026845892905004963179680402011205813816200773230866131480189051835537079316261033627528205181067738164962702224477529915585231470353232171031025835502857011989797111208895973017356448554349074104458143858725078297137872116146488213795369261361293158368934033557349157507872044773370952539012941211127859585170520448784334949365432158358019207145415545012908665828962223833010880543847245147894548317023754090383465098834452680861130847139878389293196318907081519522832560417973390785000652810501155784117561223581054114514980616933789568528406451867100170016947145830524523866439636793571766656759227947442829466054772085892313833568789619938638211316975197209569297374169732020666658909515753879335352796842668807464927217867428429837401004962118654341014713766390651066376159634536297907071689992121408572589142683697588208158868799094457298901417872200149903955703346566999956373714081212208174969141821637916462381303443685825278311502780250599143312289043326478808582637622629510754360216894305025848448601162268437539806253160214647262893230007986454647234589576555930608214370589677971957447994432011990062132408068168674516908181900890838765612734978781468295916028068470605274168042300399053054782920268566954502570579036131241121867575178214868429885813971107129822361241437263783843942673805132886477639820900186937357354220370153911126637598267493537693139629382996422878734345171714328146287385225627220989532614443806657172400039525863948218392595894694969813666388688272831171581775503965519817708856828886910651819362342525160072662364865019289647648643811738685706267620802547226920136730282653233225924996246966397610682137385121998547349611859503480237910033969111298581443918250601175392424345698855370267818285570212022775325274453581070416787094042026325820106224039069819023936364588250226174692105895514505037229736400328508483972889270771235113415913152416358435620440560883616633215657618414925838144844974904945990709715889026355394889860625892834447334089045149432822282237084727151850649267156809566185856900326718970388954977726117041853920857642227443780564790929470894142498940325420052332720622868178953729981371614929820311457936038390765773396599356683324597580169727642938083341112826061289925561661490007369655929809718693368005557714535937618816729991187306596382660746655438742349156109167059537188082765308318262277938109714246134514398416826245461529880416730069721939283379223398882773485688208771862403040732757455453376044254333739533738629869893142109118804150546659181421654609169137676752192897124379083751655851514767170131333139683197987587435929707945589594912668485102573742119661931113826131445152232165329913786574557631772387695190824478088016975726352858220595970267820543335038006342630665964091103833591867362729141540037345097281664968037439731321582464305539651525662145133382458694829917040776934713168077227755834996728073000374637038850668388754383164920309367862674003515435060978949493082872736163620068709853501943498838443380342203779971640370470857595089916688823730052022256257818943326666214255856921013590109939977934960970970988406691832674704621954760632333662026442257900539787809434941565995761606315383016001481221832895262274814437863959643384839375588236998727723235600772125489864097705357916989985675838501137275205370930719566594055009317681996438589711614249402667489710806367168371084677802910593764868949005816823817725591456727354611866218561125542488492156109899419935169532947000585720897387662147783528622364737594491145645840053188670242730997257663391431031485034438036547132018544782218193128704222811858112926158783514681812464944098929097314317070648032651619368704102776616873014821059764736039395336946487018573986376650602614227910926722014624175661980442677895788740007899638753754392007482475925177036411035871005506521584101625363947047663143877925431965701918964668252765729168585794866893391117261490089221546239166771138089325245933684508724440489453224209905996812950145179356834449964871127258233738027294631047371875163253482125822347117359004617061420959959516335269914800618974844172214112989613193971007931325021201741718815471724353661667704176835416416455429021476351679002204773209651717402609696615357502294572556842980778740930637886748366268264111377557455556727996020350295043428911053074596680298602848305333199051161278414639341841446362566048191863677755654263700744609334193601184635693673946367837148177347839590441318744436852511785780745039969793213665879760066602663294194381002865741959397988693563709803717361179321602551168005458612344839817663481525538019010016736415131080518987946446759255976583067276894154506745658148331370169239515334877400304130246192254661787788394140021195790705217734806585314228695374819302183866320928823743914187984329636135831965319739461334065811830990645432232541465253426643027476133288585647879884230342161468301298237231927936911193319222192161910333769557755468282035231434829379141236887359806112277175236992746197668372485221949678369812318580263963592329606818772590560490573686908600687974690391360619892933738425192187624904752504725098801894704121246189113730201213792505566152010991283414122372990611492908491050144474419907441460350890992409772235849543350677474683942505445463369612774590189060428968334970828791326781360387304178221030923428968102609074251411214181450988891850789244793188842553761968657577091406116754249518843909308456925426334866773137608233318227060623373731732523278146117064884193678770333889154164140082765564323398242869814958648776061430012069697782548812135173273704499310232225893317878453064797271637172803625412324436955303352315427986937947238026949054443295913424701127332369818317331650684368256100562236681101620141351351068940493785993991148468129851419190575750554142324390257575637474590981702821080091897922739733065357098627157145330285320380390837809364001741218429086424507038162809317004798504454572021173573837120594713120928192781421135050414182928375342842018591227306750256657061222736269762304692593278451546180651646227837392229088383962355106665237695841908788570707726064474224450981561714367994480541010220612688028760174477664981570228080671614249314910757906973956402856172956568865736005719590178290584293427768328825504672962568927331696249577639528567474643833147998423251523401459301025061970768991817810630561933951996115575403833798727490307502851578661326254987315463890858195887426102998689803876393525335723762711633683941689427012011063128680941838676551508863641972654182038744344355487832750003516208194681368225475479068407160443004422722741250507813893875395945851638369380087096276551361012457738105484162573979227602935577688697373793332454201112268446791414664860274063084369415010556801475133528143039462456133722289742564401779501477967884566946669640546572017437013657539576331699484717771260859230916228069538666306301784878958506262773746708515541411028787158353497071121386683741677335386425395626129553297392065586877481499413480436121672448825574353394413754290702195074880051433630673439395881177670780333901832912541257695556221703435849310163980194079492295159522665969883879595826730000605645089295227621301949869899148972487179734272582586489527467259961752211306922216383605274836128115701511139712900224421354629917616002647047459813750320807177341094047458157885945705122239047411865548789740791337622769970689029570117096069772720402669937733062331029319789924850504592253275388013916127166920866342541718616981972977801874245410571746347620966134648971856973612901132662270305126802778768416466494279393724713317260619373157505599153334356214585220952214164798427433860807936676334170522002800844120396828353009540644746477500054124957316527749699876438822200013076193891103098417933288353613350170528748590728067432633812829509352457983255982919246534172181103593023783948175917896132989692597614059152166362575805877840258553327964907896198562556923733521316332425256842142450014692880215365427082473166447370315012723358928079908545964489248719228160069798421852144973859153859917379480453497013163881565374303330543332353921730824154474135830098041780178685129397551436452147725143327835034777796669270535052220149554258746794251262356258502932832012285726991346869271527648254118432951834395024498574341627251955852332935073005466057551481510235550713890720214840423948603996559761976826895003525280720868587208817359863740870063417393546881116971807704647887711438715217391870732953899721484615138059311955283225009381983542631844132955484483442407383519221470448702231444402447116933453126518434795082665935198433525203398153172444497079508609185387290856367513619993124133685281851031598032127332962809997606229278443400641312642071841966619269994549252866646907998831888424614866077096460240643126505814878943102679135590495568128563164293916030635552331879575417400775028413801558412535508168947811629005077577361404126755909865427556352798688050831557826869825122103059338085827246028688711278428464580354628999214530971638895007473586900295836202216666770261500070392284186891337924121974272383628501817816854169806048624929033007953826820165063489542071182308942716624496225688480574121776117028800346573423239802945314437940570931780398758801103987386746736899210885568163931211643041996692292498973589141432784812324724315245445673440946809211722018110800341029539914118577152159760399043328172414646881138839134881989085174765538505610027464628009276609710283880747214243213773328938454365824361850321674773162942762791851075947547950551176105621076728693219114355651020195116768489700032168161226165995239817138939332514788882472254690862410300020014838834323374485065317645733981176192712546338272580899367013446096552621888098437588177246427778873918822128207613892514342537865079047320651085117937296875779813982737682532349718151554770042539939157433833457550282305333884965067949036051632985845104380111651084780204895746479103909672648313321904647808919034506704805699795760923518912062622585570362041423994685925922415863355936093014464530684088859611284497517016174858110608415631043301634116448897576820501512857099824745816283250936016717535214907555703664227366187166073710703659969451749646564007470251987931780574503663077219878579521495265374328860174607833773261494649709107238363839930828734304645343798677807194642804491538574871041512817545460825492868406134325812590454149062487251450117389488934433612328952214903049372131127711813500141044566478646827850559917515010979631571715596589993366192930541129460437845365964235216286062682270569753460474901144824581697118403094208013077190723121808531755065071684497427898515649344171740769297224993706810491811861981992208189612777461173109104818480903619911466283189724146557066817185933090446381235498726701078305037492149408636184621906241159354763693103555443795903327546296631398701418354857414250161880301813243195797776251923526610427968204085048507108663131355722847601158300676340613337588764931199555683124209186754998913567287457828705716496291198832943996486039176405887455378731550355153603409344145496405868257340160714280988734517079236891208887104491775602756178473553464378231261581466307524489814266280033029178697961958980799157615382288175554615613516561700462702494767444774362620618869206487566723911649679314711350367911238395179553030471705327095517245965194745851137275252519550077132722953781058099302401505062297712394210060645211080419152574355395842274454965097572306046098638814661991891007189402410319534263366806831222767993041553868255532426582039147652275630746657987529930852463485003665794060252500399162641369802289190180644811684567483718282739457176914789788475679289010775178194442782670872723930796977473715754161950647225712106940566386717856438148639091793592086313613295569401270290679504363983962698030052678423341223841328483876263751373786650625314320116537661299299427537063646501093771748213260670459341528134018535017818627608505402014253574186194438504724826062272222598408853425249430582379591614941021336908379304116473251606838363348637880340775738101516868175411448498798863171862388101927263918145353663015524798108104168577506709796862206432527192018883636442408233788503245996866755878225488198560648963936375112476700666770526894984847571800995948728682580471169057073175956023484031127609305558811512595352966250177907296543668530954199015872025777625663595548257396107492810994966522497556151070757081591072544893143653911557016858410744625873072517239637862396310972409324271724796813390945399900497395507213659858991626952414157547101662950460060706861425990201725844665563976642687023071290650452135120325118320400945008238404883388278253053399219310052842045349727968577788171780666846674060887586308187165749034871753686785496200730584494842580035149246488958799435112800028773483074035168973478249728764897971461456358557599464367179160384621500099432515914008873600910825220620533667181763384843563146622154464985256658288305659310204935579038563060194770352536676191027530241703877605396476159866986113757558010516926305874615019450290212800080494050616124750047149711274453605566574829159597619017348107444793238130434138050959771370650701537452283865157979576168736673443140145502237778548360547643272631188615762800319591916836728912342367745776492320539512393603054937334651942751643478524300899940914046126097360250472302488170238748228645706225717448589024907918141325609899236460146510623886489003853042392037575941051283346429604772888524375902293387539631798482749255687807030912090084568724043130806807733914975618119607036815128938136342664269683170755200099350726626537390122071550203959977519261869246700045849791747293083523122720546645015188044379036374514307774629887196457804120278214602846953156558586449743510922735545805522955054680601695512142290390423356560498822122265795035132247032197742231301293618447513521627485996235240129889622852294654520279955018628828928029531064964801425066731083985093658325284253540674538452519336524738016960387190159583238979137584933149814433011416926108453167109067014100687812629085065421976901548487023389202017279545203247186704774563749777979960317354169758466117594836939196802477650972070214278005863181342148412564315322266593539063949584232844964706945020466417234393113989404110868365786472456090347648332311503998913041227800848731799381386672311618098076241231229063071053312065921932660113160084474990078535565210569579570508362860401539169180099172586624494780134693306980134734884545391589303862956958400671337944327795702292882842898093208766420296109417567826176065609235527299387035727052285702100303861340759425710373103417200759198971668001245467359049320707068062139237142949493419285147123367925353176368474020090290962253079091585689754886490466709857215093484631855679072152687163929279996322725214953278877141658394914863897073659463632863470679585404124243738731187754048250503076984728857433511126093425634082176541439454074272674915223241582461238821310278997665643036186653613405339227314912597472558282944683335154101217399941398289355952600558934480510137733506873277885114856605740858172273452787999819952918563313114674035034648841184635048917241905393455377079990017206416745027723385755983198712719513654826442319443085736174754550136233595433088947542996939495364859312527957211602422031557582368912655711996160363885806867928963448141475204543511634366505723502271857759133406699580093089492624693536479441984167971887460269141333335370974876964770150148368959501119695979923961967099722644835958984924645154984573427738840839223067983333696700704295386490429326506021646589080788440003389801082200385974208856450848360515444168749757085411096233088010195252432626876053229860475658054413287464178687851894005187138311063372414120452029461990251369341100349361417787932342595295717817119346723519712951644781761952323923612282403410129561668353850520121737577972087370371430875946376566774926955569731124998250091466834627730292873817234761038347145709714407387561865070317002704861883907928730589498177653260090154845694207225323087774560785396821819414209279621192432751926095347070658833540248493108202355010979853832119223646778247464936964139877049969047918982613274009488429484597073957051259187047570011945949610971498050302280413347110109909940237575552431716899443829136850710157308795289534208868214945422643911439272178971678832451281751175015658331476667639963555713421832605107033023226256619140761902656752881663458008678219062718109833835744977569276150367987343683516615527410801313215245584833626142047960475481271786686270494558014109587350645933810930090073312898104326679182616962849114403281453757873371104133744855015190920343851351565378541357920219930209080234454567982084123412373796928316986556789616283584102798234672041273648257492665906598733186997191969527374721082283379589783028023757691227514986931135929901140584069155375558012001281758187520236099512204834454879881046060395884277225076927436404276571697654975666395783191073445477099747112424176038910183266429205833682387884025496292437188718146359167257000035057514580549466801806518014068135072271777752293359181505446338010087086559954503710683103210652631082795490730640673010629616445063264361411050676967987328604460499176261092194503096772246041516483526858524505960501196332963627188983311972761924603508219625257260569097977296234369917838004474531546151428077857399082000878110815350306445387091751131048463938713766882847371004721837162682691726337025551064499402684512218144500621114704252775103241096488021510735612127470009651613724286333712671480643177148448868440119180565986564066862359489345348520259513631342860284145888574628794994570541042689628160349878300559553650684600521696646075898812287452173763371427489155459464132460849391895658908693683304690285852259686639939472519333098649226093931275302071569884258839287799283554042235016966130886454926902727212068954725138534664639080038761222506620315657981148736140007814966596069918004891347049792046826669009065632221589555586665997026465858795578330421290329426820850906864382847495085019085651752098456133546408446742205497499350887205424053774826489865643934505345066202576028693705085863981478660309243041674723045232571243757343811737368837614485702492467158190104572629814530361045436779424811811775038168115123819751770996380385058770642458728567961569641099368497925288912603973150820313847805388838374134675487815904599751662432337839292891058056744058222470161409879478080734701913319888730343939666615843935116063301632643461108822127388508698573244105286280409713349513400815654898614197511607511953885568713999604259362178661929573841069184126768396081448482211673066802742551618792600903179547555594908874317647879983097876938273648205875381287877850337450693456321960114089071584492992823866343193996492326611377702390654328095812457056659400291371922210172865179806544683097670587419655429784674229817972140659469879764855073213766303029562952480111906079705030729936725507433357660682858071106343636461816358882320117323991197580105960782729927286518436130889633133641662693009895629744625688140001037988328764303675350357838610816700467203078785277130169325781152192847448654373892657508167173947102256906643888559239652936279783090287010200251412066562658189746883825325574070773070511803955242752232760798840656879370345544125862271210784434653817324014416415151620451079831486453370869423058869593065804356507303648475825159916275340885782664775690179772387472193198313535326610676747699869966887292953355285241210656988409960410753259924348642146484971401344830155770784966052551716402119946296319309610944378585336392689593850634368072475963840346725453619644045552070060736737166699089157754389205929344706965302747066648448284565851703203953757775734870811465351308208248629195010746331468682892458921001032735583534154767490191047481939365729875682534445359078279020981805215468920598002841962184070132239845783501559398636853362677088896653956732704067219361426042293102245059339429407654308361850413205414660296747381634568725134267704600403781719414499655099093178607964696303992474724041442780260218389207799054926473061148248487474613080451811202210767622210499837000541340168345351335326300784747043526478698083136724373323966144727267754076811627124046238341923459589984245092355740465926949919370039209189033708001708009653204374004136001385353362482324873191301755874821457611582551363612635884005886238398843378851627249901413700401193981849488476799415889371152229246045980694470290572408576447406919294981155770030402502835770290320448497682978826580737412543178557092266966256629194785810705693071984069571309268391170118026034509400241988454121201818292220120687910490680468504229117174114638850397840598504011258325430442758652038017455624258889954312024407590307790112580599796145378417438078362510977460178835231374804560722444500736539211293271362414855590188460532370058735923480168709022288259920229992263445371425826925265550233657781938801248591071527419915251527296680648236279136514637602173294029365516142068941238191587127131996039534812582364086411345741510882537302660468353063271952687489829619197602119982287556519137353334309541277244153961854173224121914675278937969295911191468510611339314993222598270816440700042961626154730184957412293522348800426538756999147040920109924762400801130017801079736465613178609108773603574884545077919787869605536782542850652903176063689142024578241625346443225787212542954862889657776249802409099298927991753770235496739864587866646344511546012626846627280372099014297443928716022005575540325371950570089776662070717668059646225620820524770587829639729893300594214293911571103811485390404254308206971812091801602111846158352598313329340720149027929836594790091952117286898863451377549646750347607818251590326341586544205057128218893357632810051777190121414070553449864151042346302119748087305627199168329614373199193054375106236239752145036033234620955708621328014530117381010342399561330229253565570816223073165131337754523564507591703555230831120064695503326079048217053520206789821642922839335338678716746892802170507617936391144585815410339805137843407532254705127170490195791239157451445855094167483594688822050450543775816599829196100618442066885477711767156375298480680253657728176026121520112809748312678386526353923953760275885520769218529848281974113212952825210331552579638308534343848150223208200293750082207167395777037791552795498018958213269744549144839063753979241784368192344030301900527410200551164178873414151924976560958730406606708479462837455343618626543912843974224549616437277888225509050718384813288373313068045845238203555701053914091561280779011249408228492356018567915207190249707794089239521951916731565521456424239955715812502326206417339045532570907443906209523499471947060928468269253055814383475483158610750897302297235377540352313481044075690204699951177877878094712804055169084522113852272787952278962108722458064537376233234694369120017415103632844291137366461522459256673154137929367027119356543036283811699972359804449495682972514785222078631325686820628194583697949005065371103471421401354520616954669896664561041028083216363367130937623207283408383699102887541291924722029760656909018901982337056387942022209009336943374998683665938498487174804223371114779493219925584166249507443699055455745140008957452102455292460647636962462794648249412758979999768478814835320635655119003975171341762431175180566116827177903862341126561147172027706327149684036690549722962526032385482942349869842120468224297792087902573285523995983368267994280806655368626382265676536884925240925123197245943339669367357700741169602483768858338724136474948992528479006403663814613519077641199773699913934374018808152370332757416301790078812792944842500858164620139719488054858796115445397763746051688418330498791374539376864949264044411688540601450021169368232988255772124384402571881720815075740002709810733310406117794625880091925198266509582692597424998821962655221634212065772419306665442268183296491024730070213655600804839818590325427157955270169103367355407770350282822269943828910515784110922127146299754458236370506698548009315431314300368505021929050610665753653800336848254855629706087240836005463788288330828369403746969615240060328964603979220297695237754833108003412668330371112528300902443591048732078330316333422532179663129541510864761867632345532252092977036279753220010643211619863995938282450772504219134298010709903004314064819266374988638421006596301008213193482762595004052207513816814043786467459858874524438181251793539710057928972808306795490589172164104844547332897959375424937812464434208152203989948066905452788037913026640860098752386358806906208215615401641483848327768406122559443405440356994500519935179512177345682384615087121352137888118449145387810911692585223089296079339777558809169661737147534425849744256903166104587029739962112780048396654881004569803353647443410761390136648003876188154590497245285099992552074997307169730598943435510196183447020375223482691536863668989596724325788928520901677357614872030683613776007789195089132777708244450832482388786151295961130168230198973515181424806039010480826621957653720280524170621567715394253502075675281516115576828260762912526576663509095758424640335037395977565772219237026519944620309994825291374459053867482488149464104497551040866097851245372209711236281977387966786882936528667796366759489064125904968656543872468443860225809447439574627743041160775677085820035087603214578842085382720909057889924388556167373964152672236256215818345361334545358471001747905539626678092408996479862428351036439407447247518139811412314718046955504937305270751239868772716923099309765126428211940510738114363374185380256156587589576272865466616674148365629689832764841285597493684246238642219924927401345618657650577970214358930093290512726309573782463480244184346103470819126911425943266357446067067072699680548299542440936039177540516204608910241029453460565609922141687360337667306601665533798580258623859531214211256818267836313940026532160485528718825135968355810134382883136577752680318897873388885644295406324552935274127867977267925306002889399964477287378452122770272201770944169592719588863046662937924269644217841943599896215188263340567823054079350063873678893891388791364390028601035201027165146266541818044621212234080927540160343744017641935285648628384256830637924432296004798744574522664566992264270372632791182885907758983614749273810462920846506695495016782628918072944953557652399991756026298834617632462667008148503726273859962185904994209326806616001143205858397929610197320398761888931827051594065500851232331394798027461723647552735444138198192621584953017660326589736177185830687560339443903340027954276658757919590294203742369965893247659669927696974070658116094114756905962602722725855873103296302296254227083688320715050188249914440252541495004369429295642207643074888010447042637585040803638593540042174572308097986910779259648453441198797035544687793622944270244240523617038152409778206618471877261938883608593329072276730329752361860481639016365897105862773625357741382069375168190884337369072897344698737003731135324512419003046152029676200816966758135446661397649594938625686544212501766316107632473981967924195367142640851905386121420703329817360217871991095312269308580915862881617469630217870453154027507785034798550621590272350130731718866992096895067005791173447626693241603066513663066081509721014950045162736087012917734234783128474098515799891427281163386869241901974990834336938570292139918392789237217028483980547635173312827971688870655361116174635244074085843814516135512267645258603551504963983249893155326145714893505405047216497329362595997276721176130533375479550847198129089894499006820730413214784468556179372292751748249338662877031959480605448587101391865995937888948436608376205499349078200734946744154157933245351009675377758070165912428727406292779562284355920422611304014440117878826790347572785521576072779716046914593204247024814439590987253407794122144095082458286026906294579009594430532351220421121784803390063878499362497054271214044506976004676565759594502029080746263799815177251804290090073305230190941095035286659410947301992843884952461774349716704266283690406631368258736755923532469060005029428908683852882095066763257905861731112178816809416160669329143671610735207640467993226954811921236103151925869833443278470417134747792761540256116253053525745119565136609095636022424991712295486067872773239537290462096517811310366217113868911219877699528103660572541936456160590033223454081923105674467168469624527708265024217153356120912871933266317744223722779008320592802081959747903144981925662073106921712992670005952985926089243889788145285045822853111793533002437984041876703166767889549732403528754228783415315933415257992573440775849445847301537742654145184007178256746159826445345624271576068023296404117044804596344709152086772158328720895043359360645813962925482730594715401625352862514363875981984461367779654693005044121223829016869329307655900804940313061967903047280994715039255989977878574228602299265258802082469544723214428473403005543226726268024051352979257269257758517712943267196145524964706338939388372272715787921836007878336010629422830945224292001464974250128983450588039420575138560758829557307557231885427658725595187397709604876892018769827162717897884198995006402394644155407918768842015279174973511237181289794425109580577094147788540452406709762615651370117681865873664513873522619946694071470509070515254234533122686086899399602461017933127223937897478991259084449104992845132899516931253462458691557269068533639101114430399981023908000209786260310273865050164416142127288911574596543105767490471972007615382605665848375799504003196967217739730518110367993439646218096012856804646289376390993654670497878216461905942753515914951931604445476361107318802016928093950253788732325567778827930566129023876490916458213598487101629776857760788467164553377012429789458267280564880757143541175514130757181178641806629175158382468599810888588351521781839786032467342489954792351991687081257149139879845559887856763354200609989506009501094390557600764437004048707979386350989273930560295555151949913303623274485016484650188697281097651069488015928856571331486766512814350147955957579117581743673348872919485072435039359615991230736057769230981285670595200509699576378678213306311243405084378638565018769866415183981094841190659147961582715536941886205876732974037788882181594616861981672718566590887322514150197696221433618210704017623807705341312503075386092450626769689908349226665305799491994832814793618498026097305309942857288973480065481652095989184180972631333750023757391280187380482434556511751608024989465247363271669499656300611184719957655924358772120768959793234782866734121578874796398259035818146396591607939435418767944859235151136834108679413400965794906259082839549752711435277368477067948994826300106022009544544243445175877242724369540412879421411384353450301319272413364606531227728073681692009827261112641984853244294007029279366966712860422958383591044026910578341131277916645281275847152274207645566628145203960847922696670275693275098825292553317381697830474798031151627022769856291758053121359568545560132660346180049083148825579313243996172579319527966062334198425785950832928414783307170840818383820556802804324103561188860379058414225004491017746854170111366180726919195147100020229400294886545380592503197292785165845004719781107901633175479554976894352799144962545089158856720653595257540623152722368546124273887908112366748300318298547653184371115275471135115037185897415216287315057081468915299441216616592674814280281668844065106603081203080768613447146026284523414850041585046027311337477721745130023082034007291688206374415295779581399433743437103623819416962550358275587025677323582567299303707288957751100670025284837750549307111941737671896322243858053826427936874859414127393258851719663138078117654710909538035298614883109001791942215240246082654274855635049427181303167692333404519922576954375036244825911096684399658574286318031900511432063480466606430469864947366979759630201054733155187855422024830039446767288745106703596825167937133756542022006643186849872597128586652142297388355247995218002154772995638672202921461751523543535796370250648427168442538444132109268200421219795022729250104814117572918831353059634170277452424338474864585439543370025830282543646330129721932017170130561310591813669200070156098328649784400050717770276975239074512099403731131667532434335223988319868496118449674842949859294888815116075085395998236126879648930450218275973252292531638962285446034403560012934143983415775226126225006869608738717964349622561160826086520277535243393491555684407388505021843115883317208498896432580464092181394648293135673699028488334745405882471416280728232600317444846124768836367715771809269397096395030728291141413374192231861636384485318385309210158890597950632125451646347431361143514800016480924389545492784622457772562979745946067831050185126463356065619350541613939576180277424009911455928575082811487089300439788910250838703402643277626611402626712817443259253786895349297570900876035236763823104673125066214356678583477435278820166068259017793247474271319439882503727245266113309511457270228376411737840005211559448296543360511900567059439720832964798047387117613854795595145393286706796088418840512770322699380310757770312776543381843152380129301402062954513416976978716528586272805704563924805376699626801223178356864280280413024344594952422915575243219365904135748028274891329126274120371115480471892317966074989050721529925271087643900602021751327048206504633998620402336353326680246745768178674862510530339690815517552095929629931205752764752404429372112614308910296160443537227074489983690005618121313573923869165317404163834094470872938673531386735751828091291542134212979368322807110015787284555122295744827160240207698497650718437805558627408950269326399627036091027669063902792332489816061168853282119161755169372130009024642116787703126295061542951981962418760475183870615689554622626899550956498895256442383895471844557046244572984965618167924256085003232015307565169891801264470107653366089151761606858783189586253009764713456720207239118971728682038780286539629849098113235214008408882640320602285898525673176224026531802090589050602652005947312505350932769617685191657309573287967194158086352627702421712610374185276883008992799086130268241984129542796521575069177135741161093575224190269819718328890511607464702468396442189502103128071081207122687095333481197900235095178334283703567030845368078833265124987030114617000875740197311448574098605515034842239206348668231421039681572884038040313468445981237692374195740284904683914681652061365993535710001547066379758452858431635129326799395076435870821422071974256798537228722101121646377244781098978159513044460045111936905287388188693678487974147397410695654551837539604951284541493968584305563687390153527176467367741587659259136650949750411190240011349517641864447625381733605739009064352968528285701060622628170101758505536324517506773370055138297429033194664541054288462522779899915685687243974909625047652415263301685071287347490402066866744962220186125486704360113201651820972699901468275875207384695184205695665769093888128016874035593929654807251017310655027023891522821983363364719117065026657028832118677791425297230721548197592610332576770030964039157239723189145325537022212923564822813617549131828959919066111093427078675889179513196452838436625447552047107173918097392947188755701781491631539039269063015257835729528439313699989718057796647186845264311507434464204559559598217635021692964721325178049969069148038938360755866766471899843319867524814205320598913035493460558533802160032164446520279850859848826346659801468825247179308498225993678817178232936927475950194053957355553764970222924447615373007318982478941708190772721442946670665190446923486760305606836257576022572152254972031394053052540690344758240637278156150726819097263051824315270822552759211927959928221717266059727078635857672413996167581527309948139072815835196015072374633746715926635456408492744697184698512972370928672977033269953219812565322583936964031827585860760838572229753725393018509420866296359998109631839198264887287142048291141639028720239623640087436780929474320769400379905091410201589722357517345563439352213291137310689800912220783661273689910992821159488969090966837338000548451747110439826992740828116750290039725478527333549792265246566165711948933986355676512827136456530148435762033414604403765097314835363443871337559018629184869014228693225745586051212395567291190126486096359287126208984051528224101993040716853839285562154019567642672499122018526222580294162406329252754415262709625280048801089824874189087569839653451664361079584601164963062189588914250639120150694016720434571061739261651796811561263433447515648357876331483755511413016350259846033350041551077992059747988611979148407233723385322194628267393875115170921110982204101099511654056785677499592635768650265072626466940598248830533034115627050471012297305751026768358078683030847199038220801798698295088846582963571081105503773620135123566847797954552352349759479273162019897259491461185345686906940539431571653953434065167758809345710140472276975980505646921150096271058336725014236116458222948017949606710741593905148830789691650277646612819911459672244693936359239871872880616614991954581712328149846320733047756466098457112993901286790565482626373975283608439715937644745802176337586405656510957903343240174765683340534643768146334721191769846435099641645508396593912681965660748981258232582002389088219757387055064191846568438159937318918420320476278934874907345678205067561386780993117954666481826391421770061255464621460553289585625221089322722529627041053372891912561751032034325088494474778435224190306684618416672426512002707065524697408882989182825664475687529814296450115556548763381739527243305577576533523465122155332481638536949693398506928447501872614852318643270636129865415819715803615845183988012512338228731806778747000629878744188551314412894254367373452520096033327060293367195885348694768421876163407511186507784342184808522333812120235348854010559133687212159076483597470362171115235893584661885165828224233888686636352991613813757256054999159277156988034257903780463323557163443657494107000486918187116132980816754611398894552957651642090595876215725843776506543529987190917322947831093421977241869272708602974370895456751142592718829314925662497383578133689357060510066322334342104742053477530817786553879689350520542983684130411496523790756423177807293102348161209314033217067784677621553804069187586375058240896099350121172720426575685814263187224770315065497044215106239009382629827676270581624432699152923409719334126696486516623725278598517796233602011921434255920325343124675749713399274194930114206499863336272416702523529604566258840677410283487400626878228159973445421807278111165787334954792822127626560860803357389975492413207398621261522188321645346664688393088481057960753481732803764961640555969403493105657327178850885349318950288783021885180840462298105460765449280664985833133323946198311388923337608109288516252797180892485948672471899993661866758296143144019405915882027619884516286807507011134144060902121476087440871587229822143914670765769998297962206594885132470194996968682926730147905546705200111237907498851055300810434055559839936627411784261182355096388439982546570575975468059710062354833588716217154532315632753345320501515805150717396014489060356771859004356617527727638940106691572032161484170701155552885136085399475464925511022261723521151173056057177921681558418199924706047347254289752251104034597540729949902747897256770413429141077114830413493761317434594013160662469229747689488632834913263763635718909886954562631765529995406518352054578704255245965596388608758174504660858276574877267343386991795166964432992807743653489618070319222791765550607692141996739750726999918393739496638423707321502252848061888305318307659566131458045949338563418797943924198594939285506783834080418798349134556941948545623957490090244009394846425040255098663287178127953052049481396003944311606963253902079931427779914141767976624822561989472193158394024673461525374267617350250592970368068184514920656585880504390503059200388948813372581655455448262324232984663454380907850102342015918260128096965998839311668022197848106574551046372777270440315514575930411293115058178046275788472533315997181845372831907492701391905517649296340466945496352882828799332755572877152818770748572868377078993022988538255811326047802159425802558980186620894227830065941242654088644636948271047054791642106700116700419996604893941305009183753586508326534707332488971012493485223980450756232938611888432228969534869263642936653037002344511929221114871488199692943175818009744629406933295412572794001178660585754281886692489085258204683535197082522314796567011683330115091626698485237031910388098971029357959339202937811418957497493480759924937903525048793731906386482891262062470893739951729632602740635400605845500165708943157396793500270308649573340235974721420576871583761468245184305596080854695686457474982142308134801485018034279183477316410115898658250976703885002270824637237151812944586253735351573436219069922758924173526547737084099847359178645815100642860910144692463165551830377254613171172948865870474523573709037906266512733670704324449231520980125652331969759020713142313709568427754158213640235244103507348997105795873316662111038040198080369872684643678465805245595930991613391723379670925512683981045436054122384105762728745211284387679368072487592262374048733917458162425185952469661833808985268514468438721582527321784643738407953657053612295011023232430277706138575269772327637492982943997437717390701939828526542865424946802360753610324600484193572751582597778078915743190174751410049356094852512101490693704912007277522704669126063671494894919324853775575759492527058317574959454969683300315211216832675249562663395336390325699596414960517778075824582320662800600927791129627719103549593273756312841377023171033144493299641556627666393293849158964122868736089248205744559816502015649658756166548723353542721202213289183608844442134559724996031517437341219798652417225669631309426994145056131147625021967162239729161476680936466762019107122948233118501987380286890678605890495451115512249045326987103748669355191836139882792732239114057914825658912323785871353463169599898011315180910537803068201359311613543340796705194559861250169772340751762272247910861703069137095850432992390111580801514879988988653668605772245459280161010466620133835227377714528456928045651883864799232581397409355732948892862606843769932616803655830973503648109684143392273483716543740091525426333538172590226338047573213722241131794393814616818175570760899011501270390239758227816160220082959368561670870761670623055841500853260189441087246103816449112493288085418601480030568987602351996549067475817271374286827542198634063203210325157256928103250002361967127230472015036746020139606838995168344295286874256416522982200077895567876126517417623934527442946548494293246691814262162924707438619406070315421606485960597406643328220610625251365136092446351848077730663597032423588631534644952874317806080237338559849515176509867597907387716277680914678484986699707682337413224650460287303466320763700945848633090146236127973470240629914828647417001537904038764208330204813886433609342090210791946886398483392431541146600791137332530111979697602397872675868675228229783029159986310280763976749923624822169177715813444517181554741799398037923975684849163496230846359657047931353769126041545482388797990943149732710577408869394800494265887735771426064332078123908471546354035858515828637821797866621805268282782549913811469004944402205129212630067029433776524102294009671583519731267787815321343940127813629285041518250423548089932574605851477366469211811489124107287312996412397794370245344300194221858363334746768699860528507344085820088071156208639390997867539185164530801273786231840507334105038626940784789813659184566534642797119099022855878182945434157206166215065464002709345320044563197489122588130113794287729573942834467422459894869960925154359684663839840217654004575569217040122916477926470981615521276531039966833801126968059322149779422487132011365761667694282869789226692419435997749629593745035860939966160053403838120006102166949414040658183420657780276405040464395365798225692645465831619422605915127882301753984101028885299146545691546344202452715964856594941123993697911739594775159301420257876401327273334619242658113728071647045338590450508242584533411936886121017135430406110912774659589417569789354973526806257214792375901448980853428824888577718739900457489749103178573194772967236641296253475404128399381230746366191295090333340721281861721642252237855998540055673553578119251319350023449928276952648886331393069122080693059417227135527610491595751716643569413064606320724115547359774751850984147522865984810656222339463116083788180619935867557944391947466416300280619007506904020756775436096919001838450488824456152796184675516009918132945728870490777354655306653981960477122943279880088448335582658668420395145267807899372247540517506097156621800570748819236886349654868713361720498710751677952838347117135144921747513497409239098385648360481806551322165760780424271244392519234361843390589771851748145038997365448094491186371902748774682740395224428685721118992700894422041701387514419592634915133114636598623153570064656152827703275325653741053964323192097433897229381377204123495176068656700047016461211959423608044430545702459294694101263818777471657699605572469399059593786744163307939443832998883936560151363623949308060297463318049121366222456566451790857524732735956770646296953255578351397713679564688169815731602801127455194780250549300694818974750460602360047258816620540231096235640486269972528630131595746021428879659135498574639687908007787373620113304902387390203379299130935560644673799436399333978578272534550296077445902388105528029399660552593025204141857456240602345303534086401603811834930303502449660261469612943793483251701721390255421926105696479767384757284922329637359906012906138745384832154948123114216383459039274811054717587445264585217733978502681762885161347184476841276856470534184789507414360831366052118011661161282952567750828818654720947474650558027613113118625398049366973263979242902708237586055793772237225829349679450230448377620137153068535239367086044611193396619301142211534069789418342269162700885756698801661947133087738832097691363406431156634324515080333559563773968091194784345502220623101738187864550845364768721671081033957907705673932745613158548451557696300380090820275474806663033046579218568286817528768582584029943488294237001187577247826357411358495470217823750297046509805183920382575429311672374308202816901124252192082156644309816472281048273488221145386633151648351441571093475895745843588830993864275589119806792531466574299611914706752538733669331752566895009208016697987448231486837565420779485967997388594024696203210847593097550416458450181446818696955017235489601859534593423619754511947311347582381511789097000277479233474345560154513715223793606248620976325946035910212485770198860207172869677917905149024615353836066351577857585190032339936293328239349407640226787441230549398859526715755439737335020805617160069981245959868268348861642386340319670867868671666172234290141619884742868609127910185286396266555005724927312708039413710296639493023136028815771176442879763125068614958378945523091341924583332751894875963549778241183764563125069212306976519341048898348081386770712499246587840396513650212447124358458966834993802897377241733700617953015659861921117828425187539218663459706409050423187762790084545147455750871495477931673206053311651324878924712750125135819427600874102657335258138785588060042173262511873308441371364264828150215252072188996432676922452241689428226792263288527919876667822988314798600257797910124013573446481137553056854867569582959980329037474329425491066081919348966525655142686456377403131799213583584502729041290557065983749538072633711959971251052054983727052350568506414173279298610233716691813259341329169746805991616945156145065506737804708904679745652866182142334693319613363594435436769046966328100492128311119461836975245359481019266265498280025591116599370337345773836322526466600132286138078166287813571969294346514799514585854550835054806276321843118464633095380872221210105825886890407644743587383967048907033846952228707292315177693847370544516818010055681368858899830551422605251977480288824320064096853943989272734374441663655745041970356712310779648983677872410810832433056034433396110108465802448164196408356756203952145459813650591792366097841753497943287364151842314441737075295997439167363983269163551890530080134913851810904181091004613342978073275187089593010942458835351626247897280259356354649764965901474186216462552025391378808659485291795633153022841572161531143553525261247211984203747950862803547487964001090866886916923416207564928370893808421124825597986166537988317022534590771369372249150532473336302492192142836544245172670688292810833541034544016282518544017329627433917791090693775532095806988829544390982363380619233058506760707916454022054338439570978114425357198657233171125854507760771525489803958832464574460598519128179379057117685251391048817266416431040852119255506110003573346791256639429315083181612530489024224820132266900809691158487368161324760009371716489741046488610290502105227494248511332919725935478360991414129999371505899046444354945640410864970538511675005564228679488973887331977665123906274991231944936730344582418448590369031935230401617173508357362296273880056176691712395995833579040803335550733026155867941556308731606501083817704911998948411886737919857575513074062912224021422570771828440701064286141851689804123937174719442123088839644428956916806142788218119792042372729849542647034747596443674651560550009263516755851074592992166101681797693202112633759161556826492732302215583058808588300432295399034881708296418464071003417090325552653503013924426685873236045799613343404396066443375771397319315263664678187565408318723592586833908250384334093279658080015155333552031614203047158753776714887230979073856556860693033932186361522542594066024820742346184260752061499663154619551416263276679264381058313398395812026922153573317370625199635939690746120681264148260334991235093519426054593971799124637040808136263222181573910448022116884133533549526175248775680068603990218139759301737184850278501717532338566344042116964949407260141702348049286807881782037032520770654111620243169431228400728951526704900534481262836027267358994793126161911657579946919566406606396962295684645599250219509264073671851915586636728412928141792633783759617572681989542473160939086254950215129189464122674930973161528539789092680813750743639746651057418711427334359446762319116502004583124955779276379488582595774685721130906509325687666436299077169703756166567405570488463848727839468758244991481866025839048565476248863154511979998956255784575092732957518108240630429987410621115679957169642934126050721863393647021634389501534726522987879976044147406997545802885742239844421309340596183407994671659996420908095066768464358346850770901847856003518080764761819806700501019888788488313369686074226062031096629322408492932799446538115889390697594264922750584154114282692451913714386278510015966632346876903104746317077452435945214308453270591849879931053067749070882157902159661715871717209142131640780134996177059427405925080603854726657612223552353096801142165092917893874460830675825788209041842422941151572862421969598370502997143373048099217216646251652662439197913218777056145060876213127097508079401686424966821569862453597239555365033592253797123600445082554810686800587527615427074003109567377997344038049045189691178617248556933790041066032359569979316852614455247883141655866973703857364964604193833165963775706629468869131650022336094273477739800581411903052015629860273137910321105600492454195400516690462561472931914649846284968825382273962452435995232711698435694883256405130034810573345155507536406030429981306280236730525088775534581970119956366421153293927979353821221084014765703915830901302169295890312277905407055850970461403572220642940569828377151363463537650533692895446303340189390529334743884738243696315993541558826195099897081744627165239568891285953850080194315342804155713427887534543068770590160112804053800578433879004865463481410594370697691380571583642022085029813536619085772929825704776263455571307929530464166878980481551023523387338897500750664048314779606048159798164703451724442459708799611789791380703022405762675145585877517666446235493355241209392187163243915711360094100716911082879431054932115328969124850166865294972215815981994754267787458653809865822032316580960835321390006870798205164859924590854152144653134074654279086774316360740859936776243461458326717481594992961091004274778618134939468808797274072071453035613390054426778078333328192792874128184566903350010984375200970100067041639193113273231829804142502701091077053547255883704661116804710291089014588315221469408812204672186759669983136505697076259514416432298058769432969915958962065258563379781485116510430985323424917100894136584369961268835543721773179174865672394319141517019495755402486546055624079965214036710226799576876201022509907165842500101004595262881105690147122379232541130299638828680438358350653395082827316349908237846742956678867384877822454388656531736475327345049822859072406275536407282214913468877588030120485679147669742163104607073054219769203690065175151932298427639542195899417735686064060734198425997227056666038972063502290796822666946463473544865505848001910057690619418467528210006009647922435404701277148499781965967391366379622482599930018781249056700265472596289330455452891948064418007394314201581934499370053533979909109413716468540002632623975362457603568416197518147830399527532397689210113958979803285904654565678365142444305121476899274142600103295740181319419830838853093856369722922513268968444435026737645338564152158440921819562407523969990441742354975420953995514491103621370401756413459046477135801682370165577961150694063171306790930484178741785687265284322802751135698665788315622127400464734673531478134112087200800761560403780727545075613085161118702757187685821392364578171513153942630549429276445061533476212577232404932356724877945890983034639179981191543311880830101344234884614103264176859275259829149802411896106555431522921569260400963064087372680534159917073106022136417895927505086647580439367441825694743109781585304069581982901731292926491968681053384754759758464730610793612714848438528753662487058644303763864930836160112029667811391961535736922051858097150095446199466952727225629330605205277706813059806308429544286402985874866217925975929104855098669925831682788774678591922410460963884947952763541926895832444383383965037841318209073186246465758037475137610258917273418384565396662906101502953175537723363241079741856599014181136486194699398173195301328785520514800365188714549734617014358240066506436354626733188128980218377371992560423715489339792377527949551957749283170046874704060111774481045292555467951497027576176810759625301640757822740791342361704521821682846586521221270731162193309503588180794506933121709131625117097987144214241420813434806497528045447002328060537158469458701338419590484191812957987312536251200800555949333350952040271150543388337758741489302632398176041678137166432175335913064262423409561178717580397024488017572797260695165914633320048384598807812324672924865718847993840672093108087350271597365852059050647192860435111520974184622839798331650376091753434689572768786110219842909522523736205587134502234260161532513189277973214459736278547471247911006566383845801788928310086149200917792600477284011955739176901654345421096354191148988190050168861023668361490814101653511242770270519108407125592604225854111299736170171559871843927172645788219301406614527783468945280178903057823677598134267773269726808628013300138518168162315487862677493176412475020683154808256742347953241010675079463308829661953523126712398142723246417768650322014706399796777705581775304126977217537254305406193097502137844330888700971370703258442002392224403981131076224639551882533638175956843603519767399835220124496621008967034184151929507786156345434393485617832024257926548310955625231781003885261704905104255304392651780744239473180047346904168748620366581625337604809100654928209904820727889806328664446652825843332708807351182667650781706239504965609775378398641265891146171282448852143868517813344350326645898821767010140375815328726730202739555233123429870494446632716917391638881173250702624708604704714037767521809534887596038155408639275455011886982100521870864237367719015022851429923356898429084509569403371502016519831665578867079727041598595923080077992754556023677640120677780953084060309890754472499469233695663587540076391180741172891981057595518878285286694793146775968852117297508238212356731965403409552090704381947202601521097932033320591179730960176110843291388146940305906225265986494397390732739273927591139925304296475528037811153403212731071294583836113467768702141996806775242930463311197510744907909011559884644007239495304606573544690982128193827890926175044109203263375841964016885339503721149234075144705202508348137763668465366187626621516029265375240195326830460440261875735610231888883492723734666304800838314129269622301115050342738222900718217731869614868164999990026569480161425916981090582507764571284622291075800828124892437052714298761143518354942759198917831265762810945431631736510230211163494626404318987960861618777890549507050396644184686537732731423039046635187496757934854862404850934528993468152114242920223525782250031832939103390493562318549555603861924514248848139893277254363012070152729977339893798087331897409261200020785206805591257892380264576923687531884759181712643713289895822195271831525312143049000555321723661503616821849393778565817264089698353112086776712877782500518159986392732214702574618331650846652092660748016824442825381656632634399237755069887673445060409835055952946329135314192964647147275575792425808033643533244957920878348110367013293157621631450518122693066527392300990103699598939130071439391042965938427016119701551220779584634772430176742467316705427114878881242112492647915137104547081593007339034628304490842194093715869006458158851435565104721671047711798389193156111325669951565354436306890515882233598453440519228667806318266504006972330829081592429913518191936788068794571838069931277346918507515731915319812970431606225946027602737244236936393414161248890369997150743193832715058343979923453544208714425093183763375315667763451888160573651472406924847702737594012817444985095043246305679000316278658240505754504796984160129359974022808624374397617219740881449210877928696934668299425542220137317203973738289613975681991982359520833460850791174757346222609642231778664623035150657915597963788809148816827129594705546976772531065797377860956579032003972197303531843472456366259070234670377636202850636066256659296812518290319225329963585523725701022496333915632357462030156256350723925029780495699732769625822258020370866057053761410179623087837853864047992040559953270828514149349279288925606032233801466760947866583059607370490761681689776489176775104696544082681574152464038384658691304128110039391796593963962520899874232828964147245692128126921671974772561508115087687321833679713411697609370388073093792260443947541635571571987477667853659414937911770991872005275579900909206152105726443954808485143707383664101549499292829512372989962188129163197506873732894590696801998563186766740031297200550662272586648642863696359526292117489541105019004431790679610909821175953182452560661666849213512180115653239728704707804089383646076595089962049991366770037478200426127410713190066879889937118830229552776422668456747188778940970337423576751388232654028837880597783072996766564030537552181210254445700636048192007782606985573042308030900849895013129909253047682479663029071772956632574207189108296729762832606732925277722369105274814529200715684246659878482385544029279226865215355485278314402959759434951470482656878022145020698407491502155436042468360208348603211234762651496182428683875380046605262678073930772526025060864823281680353136912963406697227611956621250747306903853203267760784998375501227027499488292577514844636622101002983380852845533386979652854259584934294564329168970715702425187230171940040045821221542370184668842178853671480037143583147897277291081603784387803417173241770568398656679370145007571002178099353483281303897051943450580614971686882565642911816170525589777902599598031999600688483398985582751500018877181906177319190806995707650332344268751759210414411598853338445261395356208051294497605993803162311658885623037191445914610240825590751740562943251841249865604891327661886247538743234071095719171553751924661011256312592810027408497417935020889137322004442496056337695063917829999480499809312782133707043756239358350794688757490491459905849042903819458633972311436289731464097731249894422794972592978756838678866071028726464356388554758494418873490222471385094158273654380657885349929126200337075802656482002093749617589975868685966923791762013482063784536569473648383969399721968335719618645096702283050945306278423141275015836268338922554160348113467722176524140105204890190778025035535788155482444858739428419108197052999700674126852510580422914901195084513877344707885811520484547774453443005465592179138900249068767567773167717504408499496729442014165194810392273317752782178299402611225838536311375314131950734265337237547607308503874561443829594318450570816273055205425972982363713011016221904992336563027114211894697800055206590600423319688160174160263612514498576105655420006197907438889822263849947324080698166787924194686201268322845735640065684843377922773299213484918026524200120059255672552678550596083617316047982709917588156847402919769012144441459161458419113464682144622724580201600716007097847303073215185826783024395253426362139401961424114311039840323648424030018087350274433135910660046873732176797571318528877933177487616044314554904521906387583746043001532647602229283702537846200392132804440951917263644585981532186310132083966513098446543333402480603709145488968816741824441067009471645924485077230617499221238091528538418349177329207775719426268083413408851109176906810679160753497166627845485562540474400746471398797031453342541497228409032847331554901474795669602440159818649857143072220211460381818101655717814584363175313753141458682205417269405694544462374517837081838600632755808702557503261562197607191817555328554850096665259469590493747180908988079496738722599132619157441939900256542559213905260216857475586455821102445235792372104332184258938897518197213355058878351974745665808869320551872718236057042635632623814514781252885098981478987032692868749599555549066785129058100923956307891621186567576314003170111478521019571775967107821102897257416143860352956397754804890845733097165651111334137948332799850492593349267265471652776704735665116524377092655862503891225518237632391045381827413884183246045579826329278061426088749687831697161744848771364167088965805719023504923482566378228602948016065002227088511376586165697798818728175020512050018674542282749590766023636328579293128720563350285998831191875407720155902505609976128226488435458925779576547771145792744156603708256640306969382275032908495021731433433821758787194862293985928052685593136037668304161110261581558772000068452579282269109074181148263830407067718269554508786532085193127380085380371845804666530273124644639975858354055988635332013233072186876601973671093688382645131102100305327073301079581764892956285746839288926137119427946531687448296158355340588657357135617057750216538787355128558184830892718597378781564230889532673120939230270386134149795681736869537144711281294631397646551535604327440039186289617777365761968797768658885132138324789126172642268704948314952508965832696786180436225220157430808281660305273592348138646666226311558392983893048953908186669986738655441683803762621575081674481576825024572031501805891424503501107265639233533665745085981908696653042872425266108454441078552995122009200436257115016261068572454889892843230690622312178216718633918937930769251291809889740486341679023498449142952024103208793060634662686446050911481318824962998976406753883930137263332452864043608677425979353123877196169074279450164619614675567284210642101770239671749264055538417872960003093486765458814763234252502639321684628334881446167825450131020169294477892696839578147097156600045823328064050367795187178726204026484209988618238328733000087792992092748891257921977794628140530702743216796622253587541791780544560940030890586332328261551912646577894234028449154870740113952484260393973115617852227751304770544488940767359183758232652067654534589812355949339104578131079578075788855386270358715566976158803519410738629883546926657165258704068722741669104320641957592664815872190147348429604352075512940493389629524121717511759863469489590741119101239620035755154441300302078129233296044980766452635794810649029598642154488153741674591242026163194939778295465190954879679281152592839764685704066344614358662083732069875588357804255890456863442452937083902587074636280872714560498220540697336573574951261561583887008945168493386090666950883781157671552182471520159727127924482295512757624135554752950365375854501316865568427471195889223180296957149582712599221453302991710534739060226348766172581899177257787709300222409146420342358807127992551676826242892141790647451605498655671899093909942938451724016257232323985291065398167094755917924540931006881232564954848563660628110781328228175765631990569951766760324285893972878432121738454118142553224737716202750669363961267017973315330742728138702976214133946470594436861151505717510248743896155003495363155215850511997065605588440759753495075374987416035559541325650142916257299508975369396180031637130108991509719124010613216650482623970286047417151600562011054943324737614862989703498816759396720038333962289805220866287087652616246194131107847269807918108047657646050546518170118030535487002756007823800302914921517788267176307500336518736516974831139382574828229396986017413738440595025094966261471418954306727342267272461215451821177127243441810815030367296464025665102202900587185278908128735211879952588303096849576054221075172694828457492300322100060806976369813116175286909601734254288783532445782426095844550654487395351987403274679121977936651718004935411622761472524647134911952708898083618687871395441478584849945695009914319497763591846164490943448504614399833050136449635456767571451360101426901629520876395334040928161535876326641286612177995460388423967171990832084821198808149603842028038122909023192019657756801842952132232215445619482969172150500319476426384255527416744849289620580879173440367467040763557055593409353023304218636806155517707946217214395022523631781464478996752859298701831898815029123521959028512238136966253305061051693700195461819582319704915245593616697857303292293217566446993035326209859750543357679994049277552345774777477428486062114645201014493872755637655351525517325679827505815589027073599209688972027410770111917347177998740585943928086447963487131304830850083038763610040608027302322650022673186862285647301323004236552323840539665470621675923919941736132794025758582338594605449424683523869562895576684792052740925916644010570655140663253846356954388014646062253541759287686985029137145171548938511091173563273549651255690291908272802235645921671588227292379432571160479094641050664003885059941188594530631364887102904226760255368611309703102800598813794896099359131518723463928582118785840409918218111527833185975733059325631757394898520987572504126250688037043377465507809993333226272168506167973470250863032763582901046436898234142137955227670409011419115445163356490374881911366596208363747139679737472894173177973894400464828472386309744988033174852469509884718638455808693485950944257209062581833464033787691012227280868729352936787079166263829299060859012479849679933856629043979035653369048277364371682135762302900978376737977600568985081772344623593706988182815398955597866801774276590500049169954701342678637471818742862663350846317744668879639415754180215099241438760372591173602032060696960402661681528582078938327827824214317514147854865424498546204738420098902617090660359364090440090081845080489360874415789703154041528785537482720043371287193884799074513727019192198347351807149605399441010847570114154440903173607050172844507288824865980393301660619197042936734717342818446419120442178708640329617124987028053114557845061425300254328212046230569223548382706058218354833740104350114718805890833135232907064604697666282904271581093580553422715716602122611167180641426924314282393176724682553149512264347331119899968094828995438424937398801594494073571836386429680184532608734710339812546619948718955631845269558147991899663246341250449603524317465614529668623142325691260094049049297880231068789190914816274215780835300154279540380605804022199747744396541164137434070109122907523800357436786127220890881010392277127182835171788282963083662990217851703600492395375218893981456022045451823668665225820131005595662475694822207560748653781100745479055701012591248817608567066319586077353421656574266445736915948680995993615338107546295424316622331631869072907495654297532805737737220425759185846967786770386795078294634112684764619349935503291054087725983803488747507697565132134242601668737001944091936951388251758735464901327631736307534208602956625695124714998054565286193098776409536926191975720255249084247642513990330614857289759048334467237074655772125107093841765940876882142924747776273244936404728257778099137509582990040130582136402130896024376083693563030394891375134393706613151558938767610109210980142928630529069343869559132246670510987574480746419353410731117891200948273166093469100648665921889487152076915073887773793813241742056555272682108934032062248439417986241539755507657040931252012584371123288257388477447193657049161464141708022198949454405906568544328802335486108339267686860487356818390442540255904098845058242917429036725256332755437245062270997888683115613686651091213604515199522148413586416636143452957117903889080093156603099478191145987052348279260143162823394302085700508591150107737882181125206253517105768544654905420540853739525658361776581075312233334100175521407942297278073104070150312939580554064510765521864948393828161020909213240457493027908656923131810868828311671627050670069475785211406780038493149220365269351654799575791878879231376072957866435563825973381247524409799500685290062256703069470231765605596708604891335109390334450844736707581612244045284916446946472664515697944725700594197235991415465298987381312932388991145562569489382832688950720215958272837021774866247169588729073940328745914966778941904494663736633709273775858546669912436621733707690821736766589629494888134052019961602992225548344081269580142712454743484795211823818947159331474361274284598612529290572210143019499670656546146232329363606957774192604830409217121518530425250656993415038922734315792988382360705884655646000747284242154956731344003535159070819138225865140616741018144394684949324090181603615638672660668496746549453011865581859657421207500317790603910056181858507155623238575013668818449647361800993273718069992728735342819148614266122703066114403329636160261463239235927559314379417685931753759075612127675636243976462701546905443899582982526701738327089981081675896555219353388279642445636253548151565770191313045169568858454519028631522005133130104518875705171921062011280042769538117592790095101534020173727499622046375262572146115207743900008306830097467474331538323172824514909387954044768891547993393010000319892246790320993457462541242959409472263572558900870340088067787147447712217812324001097344223882473504680631690363425812471839300046409240850168795560014468135544801133403906368978975413294760186186189739637405744190101428429064085071647129213893067560324441992831734912381571813522949962896744946143751326763056134397965534927219516505357529266884303503970977122116024656517350844571166940190586399092293164721022425885629727310809432871067872846471455947593550621911674906268932458033823161429403829848547393634478486852363756094616491070499612466424462341232453516756915849851486308858778623188700177757582118678856330149890545217074588406300012178311987557774729075708568452428659147194972977416375751864328022411282402315019692725986997560155708339183526481837313992704504919779473788903711869094374333820089567699714250252730002943524474710990657975613180929463516174501561337900904120088355364375710706734021075386574059927876872277374403533474775673679482861002134054660460456387543787128938405063676989300305281110325174685931512916921875731389861555620418651586097570180499620976634553416421481021736711249667526248179060185718849713191251557094242391986078147470809256927140634006073604408545085460567465782985156077593136676318748340951094507925429028304588796776961411306832090405166770660178255752364656304205175766097150350843213098899958542469627934225381110479994502220986421234523369549319737296859870240736872366077567699205368052190086121547054757446636813850094811529784183126485727724139224791674069291233933195139914661958863464931598446882761768317787696841681710335148072348328059700150703066803057031440000109323272005901975468290208596443126826581178797498654659818192582961286147813633493970884790927533120063861940888547017997604511239185006104347225875117717564500633411601894482735529074587997761172040879136260369000113229626788250107599471117300767519371394525239458421569429436539298818595735236403229308854925874044289978890693459568155248963333087377800738290123257023984412521067003002045479595514863403459199702236152797638161971775583829506825807770458907291667186784434085035807259346295669990865397008533326896132974874921199467732177132737709765483165968955543737099240033948334678565457131510932467503946435575410875005079186256692675335102779052676461639238804779386649145771482879499993486579473631522011906551056973567195122980939700402621191172068394489367255018343518631301941080816425694240169290279741040542997987864449023353583082495493295093919843365712143046733301102405197438025739580127553349290567588968693123077506844987202079750757071072882972931966072480264737575400163240430577843622815725357528288948092625512606847623097943201683029027733630719634328725054735498954933418196787514412012612958073069946706125613824917814371909256247638541649202945792579362886000134907984768431593522656950158227470664495802608361318680442174190016651936343205616030788957862113675437367842802998843241201251760504726644967853323873811256089619507647841867836753727677709504907989672361969233396055990398595461860336702543560613979748648478026181974336994735365637244998796537261977131581383791698214059168515365864168167685815704316025430190482064073880416100436602582736079690544920167887687173300904688613786954975488618644826288216302609525000107959402523307914609467705539573492397619150348786756969659873201049737223025711388519644192958408779337427502787151230526410181469460014610142508382635791376795826061291446990980944145551796770026595771556723606789384313439097688819158816884797182507054929654290593498900613311284190221953364929390831341970457971621021422346792343932352949620437673279316027337608657726724962437406468496592491316787549320971442139254614573492311794586611331649800882356103242669979528784720445704732590093571373891636688059649076361926632096257038221841056489015674085593120300729519575722744683737912740465116440021758985637518563402830707009442116258341347946681724125357649641872632518340776924581534777242491309492395322696175624086964810832628211904555309866424550162930173100491906209304901657180059339823623352069490265709728673995437643972896750640961530826655854958524919466607917499006202789150496578149047924145945653441470551961306118900152380771479159550888059785939013017637819513644548482410051956395949388158180684487841827983844652567741004339020098138303703817390887130872326843212249730288488503339294530339671390229565882247675901487152974499684474871580996202381039102042678061021629407194580987671765651548463162023579435771479512628079024844080589084613316854733629772685751556996230475127122285812932036379855029448268819728693534587799217107787360872104041258328493422442340051823821670135905951008871125783861791267554769089026083559872036042781730008162958077743248926938773729138824344056007366634104102420417286182082794205851034045214342025619546352821666644851310678086826125247522329647927568342217852380481559759001358828393469676457400335688693510333376338195117173391773781817977858898898446202953781903518819122183939858115344499962169643625304642831633328515469817690728153659109509630684138741843934866945043683846788630185877415420327574529764416812915484764643501263827845148128763095535367538501577016358210051514983802861222836026120141672848548398571155547804701431685357366715222411602116417383440206447364191717054004743622979649751076432624183089242793874714827763088034694040955704546623566959566758495140384082663785167398558270162069367859266102278177502305423974799150411851591699810501465428913117056406849274255069130438066181244599777113821850067326285171561185982237004347662551652832989787699042231943638810243015237640939615211808646291380584486139200974238814596062250588521006458113377273362495569858663286947748738025998205625314366800322880562773394164722052370038821486341163184001547039615535128965283064388867677285016522530747175087920123900757984953554855518462921455530279061079744997266516188212583067260962844733468632745880838515074797855947486834733149591334936559918807003143646208973637165490892726092962570487071954560560277174322098814971349450720678667265182731235386048053411876448042231096218835678176064258859408251217524889256349114869800693310571907798480537619191196253962170295209707657151097207488696906550913959462295993429605725100917042232388539699037618147837573735075322696208029849864203611961591798115338843635648400291337545965060777970868736961285111407241674399825066583603254042482584307782493337091218517984632587289057609631353660744224516065089994318148880297802330000163245293608438573060120971103935359585302779868045383612269695104023413430489837741217904871512308790617129441302863591555450223925589407491347498711722109180803215048904762807636467932140670560588312714075872076655704714322368375776278752232831031563662361669773523883150269875492327342581806753427489847486167663741618410885268304831699503716133557347935797184613279294035290577127759963553946446250809558010500899015415376943960891145049097120085375889986219681805178244186533351666726275062390765413716740793892109346378036236481093964470190224078188068571099783089304473840210867922209944337147575493912347902286438767635273708818500046347437477586897515118334655229881494376532099899890161832276492750847232245201088873768601376488754710997040561896502640059766384739126819594880439524608840487481182893703264283771519597146097564933882017101950250006941935027843482371950619288691002662046276108897579561148497004458184950678086666575321200930823536194406820043080236887269376714525005562988566807977589589070553930371497094320123098317493585878291740884904835034360605795461384061017503085535320191402361884064876775051668496768712843510660346020415752956054763525242285865653379540559184584721945528154031437568919538922871673978259971575101625574928414848386603735784021608980857323767342271055626765398372363611368598031118827704991754353049804181384220823722583473233122169817238016243923329967687679134455304899172313306879803771819243261411384961907164121319996114595833441308771075151558480564484817081862289041798414719458215501659448107278164803108553936401793709889153529386679578517693407697718700957972766032261663623676330095045232921820445494889588055538334313082982226687888661141850503850416925299373055146680143291949441018975286450074448291457610679608979149841444638502807940532014038002852674060448788298715636082911350242774416678955260828382657531873735336399155286242615188057671853561267502163077616451079007077471044799201398707617145343925861805710081838902871983946689100788951422725991609830493585447414149127093130692173744113812878626645256150091327707843223663258513218673526241619496995869393024649503550620097294082566037000652021728607647318247689290637097093915279467714280469670819265015757302268669940030673504232778071118035264815481397320561382045530451833354628254970906702891598258977999956436226305197311119683545847903734690432112358960589816382666841042655491419065892563458135826061696548988915054662034499656832570636198405624880261045750653017515054498808643396523589951867511093164770274056680726960140326059631751132375656376644336687177399224345313548563222479382120934307175156356266967703084014508579079261235025833849070891920339474064550793644362812076267364726117961547735646027362787815181669914837917574924930966843107876383263338167113384847212285561186171626067461741636263814814206064180675825083301531574326171125856635273280011998426538097714487450579653948661228805950874064033813900661127139688645190449324512563162239820697865192755345099801074070905049707419348502900669880712628055983409571033969690913794760708921111556513263467381539887607813279188498745710548760090503780896909370249991173634643431441914726294961000294112999821388004007154928397458447088273334471787314598535510204724268484069934232859298275665769279269831868862210445872333390754898462965293579721907552969396738656962027260926038888058281776897700052801488397767765632909098365447793403151360737748804003764719771516214412397753635727034477153487674688282083831633107987797818413823788949335131176277310769216768864656221284316717020578084795463927297807938654747653345681250223999719516243116981507902545774671255845067005841863034205647043383596298055606120792498279492805649376624736673270146634580400841667989325111205927670490905782611968258121757729515706010859524323679855593382225229153511857643416208503759272151623518140422165016200073472379848435480188727692653308440248681777714431647017933503364880696825147068133129849768830188551129290977237321890515091031529933927959201706979948108932812330894052171360694162746251753526872867359803787093785974997136511363407311142741991336714811035440637338894437985452975924231647170998454830478529985402385028934959348745252426250399983724787851688288754013157389090871953370134368095032946021232676189355267677020788332959731588152097711792639416342667033516498219702465456164705954911786904703312805659659998054801943593992245316748563314473667918323633283949035578749207868357153855844992122018507252227161821061656322784423245985323328021694837143705985388836107249774099152868608542189942268176251857774058369763997882213949132442699604225716376017956084751718474920063941742989189515024828626838690019211891304887405426908133995251380545426875955077570053199304314247553503664789750021636409748719373893652423166361445406330929475202481933252994752386928633819121540803816038744781184784519735728463303941879955958371349963392112145732689156417677627179708816015029017955467306228382022008030309137836293008842871795158247828855808410539922477359491212100329466958470985901971739270225920996214684479652445166673986271021424867152943426353263996027470885478313637418782998193176040027819132353327478732765163307879641336511476612468454470592912053130872566261659971354437691216983381442613090847202408722390230976342145380983112747460813608472195505544080576299746395469122568074568757501808459586959496312694992981387156582876877870030676163499309410315405574067708232677218836242175090667951515214858810838974574983573078344120362145751627521817587582309203456078009934670629329238716814627048498817855206439691224219882491161223384059122118132963830046724445202088433952028225690816387052579437983036835223831447468079401053877778309672900030008875711376723165670669128099751892136595647915892477187246150724975934526329642540337722755618831425808679383257918501927976517093368147852226233959386866713243884735854025428937979778872057536682341133612362585292702263892988379296636188883697646019696423882602571107017114249152649352540155918463235180973979711933074390428438835881579348161978583301501159266965722298987995536773182268113369036545587740952369255281044599782296172205586490336579761755474444694855980071508766122274695875429860077380031001423258374645771192001110311590564931036156714981445816870845314276609619280739584070287615520129118594540672673309074326712015242868117218579848827401383951820615332089996642593728088531851780860142684974505238729382667273508693624149148697450662421270667790256902457225638276661453014638210391726723362422966349971462254309048444172348892927003309261222517861369262004399025628768004197751469408927646091277647505578403941902145487907051915977989234457376355456303051988092780052118009584188346988100056349540519603932577724651730242188851349036157392717059310190014348232443174478527828237710376285591881829727692855124153744729469541217664417589329593347162854699462732041507063548345453745454600981863380615612758457619782617023589904596315830287213348407775965076510260538561259084316789769683059393830330283190295882597734065840446989633248651662931012739146485255259327059229537310861750070279236256197515591420275133562175216371743709811955725867057665532023867260090040628170184942621399492901282965035863554490836617445984129395124177159328481561076269208581709694944543334709169662336291295781307109711825683946169446479182914680206244404283439130820740120332503169714250419715912345635247875520777426144041662271468513560692980876900054256571365398750367973377930535842841697701657221014505275547721924590887527571277927988519249070827190347439122786222912398108525483393877154347009917107859413754611736814993726947870305477245690105879023165483218033628096765580995532392225800026559693473947912334468192981445829463896829048918830705416690544264084932580245008051887121622300742365395598755644169516805601586953407406472330977031240178031318358922291890973220379839118502374214876609668650210347303865458651419370683640866126099189869718264781402614384817211698925245971484802321716335069668371333338125496995458550916013812518895063794603136039428973573174454389152466191251959469446066127327710528379770258944104378152640840518053280528929813838829011933385734535687945484221109048983747389320296716381838664945987696215224151539986562213289875269994285475754082489609772924190388382149099515455771956808637776934119920754010256150419672821537881902942258776662325185771359633091684356256639618202823869622126789251379777042330645177260754921551079979379240423103542128706514910908910314696318954506465798046919891648240802337525268189365493466069156307928717769369491912427542317050893372337162222159411865547226034350193290819785329416486170768423869516212968567233982860933362630090271067655476206022046664511831261410773982430197498934869720632469299258262536073490255404296152094590312726489280422420818097550491113659907072865185192790287041728527130338746555633421143609734617342972829899528059184222182863244345793418506469623488012593019141603765224136030164969039315829400144527511290264114959581124615160452654510414411715050261506108200185893409119055616966545412872814525086050954682418274029342963886259309250156574576996758493519956550141036629543059779509553704434275937900410838776921359932627193744640593971338231887801172815009815688576520992564986812313892435009873843662750723905691237538454876487910082895052694986447192394560624112010113471754566125487263678502530698477387928838108320080949501150358049917869113079201242975865029684776665602651217823288817269887045407365860463283962886759850537389190489887090875484009004986577509845708842032557764091936882696611943525778043469896182782283841149027625913232836141572080525672558223450629795553734916035321138768458465595100394498577321462572557488816843442297466692908282518553406948907179396431447652774581766168485971791154605105547414246922574159093386111643227546298279235960157295197841815711943336134641243524964048990126010938516857533465424387244641368355153346566043443426169020040353652566477624034052661758586215523065322176045582019934260975314477284154351758291455910002486737002095261568838215909655028476974328679253354497843725350696821801082372857162967739922511080417837120272449115106617525970855815119654523276818270721416246559123445319101997750071774318707076069761139654658451070160483674962421632690047135571146435062833279322008793309107659578394335196352584071668998743903196103320261305154054891348619249813614202072999105894781981701385766388050896615228201852562653913807723088767722360527938927966767163695324209523570043386270734995951066800610935965099674050076229908831929993417465898303046257538022260171662750353014545220379201478292533154155422126665408297898905204078234409621764874954862217024856157319023644511668703237365582874518192689270433810380862059730964583597812772680989550129384774010450523922658941666886614838647994324162600421770535483586228373018326443285761619575630052430359538503087549904671886213339592739182176746501796753095686248974681073714545716721326103995579763892207021504030724771489367507301679548184569278932538195205422420443604633419421397361531325642605400473078270982851217221642320232087600767558340982580995983573971633491322868455778716840118906791262756394016294744092675005044861001661541425122344153702442857184963078390163028806108011511091367693137881646364288751997647949990092654687439894377781508300777795349781902187543739670979270701078094861320399604644497829340331900546370365338495122222421304733098252533680536941138100628567540900036963237939974207878991329254455301631457330778612731454167810596829665263707553339425049887764364776668103492778585699789196054562393645659287025116289160335363541485012290999163988209819797156013103461329507232116447265609860744707539476850349589334351620947261554943169035271063037665871689101370787171826968885125348888891801558764350395219305971703583379310049446356382735504967320755880917126229397736771172755571068480935531837633561994055187510586914100057984245215168634541331816817824653109511652727694048898183877619939950827684022927357253321446137156616415381004667065649222764106581025896985033236214503373743366176973118251361476108383761883457955694052148107131956389151336906262063483935401013083965597216504309379456224003795404269842292847147062878179584122233224472055168590325011684275619378582561923385484417482155808358927628403629585580234265166809051711083426777106060874449479660756534753194360981145435304082514375123958972301592617692947516031773943572403749013969788333402487132712540874774446735824010590948667185014359215072030634997797785326053942688732605122135581771423778262769367925703721643466870952377222977283401165193978116859272689445629408570288460695753632801162417837077014754509742874318114794028630795869478015630749055549201229348432967131856103754783618844618807975063656133858348067465120009764908431294743691815965155999754811129731364505476374252918779807081501280304705081860645171999603318166591537957145445258897640803140953631599172212138736458723296487089668479737355796164112460745749304904824825666368471213272967012058741556315225471468091325159305487414427723329609474845128082024062399842947605505751367930519361826547988629150955792935782135990277413216351530767563544516880751134449369014920787328070673640090982239876750360912055032038333621527925230678902321469256301910861381089971850690938291657463541421853701411561557680817997360375533171371737110717546807463532933340293530734721134172255596892938771595401283690934734760301501680349138798983112418912449958784741006657783206452483472745344555904976497760558022095885867402299371997563604060533335918252442650426401097984460615793479072654503822013071296946528828839791348743843581903346641693219819359141436911441729893364697679347641571116860864357414470818773768627248661093385690126744225840625594522789383420684328032733439530353113882119090353176658685885839527228125420486988038586797453708569338882770127353276591704211796884617044827307577050542766714007514704223049494516643670226937325501572507284564928712175186620161785056921691124166452150345091119848498200336844338398479579044748679791177836277641636109592499498946099118280702799613291435486680289944804303129947364376607635963300480032060406031021337341545201541669526987716620771756329528765166957152405584839001264804440050601802326651714617530907016351192809360601112052476960665269277516365327946420465407646042627096005254424154818515961984576045524935057113069025854953394603617894919190105857827565891786605945793036266663686218062369242653768879333923969420619145718806885148300443595295893692635868296019434125411749499276732697226834661090751992768165658445498557530438458094028665010305210076479293314980999425952283077054036511769521815840723071300832264357750412901118601027523424905625635334163821372208370330427378445824656943447376028236997494180744167156275647217178370876458514460081853954643910127209213823851983424019237958875355494883327203102596213022234575826302801603822950620123864434039135581907212745414531700292008182358537602069630088838128252111308832783390623335170314161823459681659766542489386467749961529262297440367259447878061319173119776977132839573357174791343249404180661420996409853948822530792053824394171287219759104778105139163117298444688071669053579593699357869713138844163074896251544686402212040314226891831560881603564070188448408356382037958146671351534886282857523372325135521077064896650774184281726102432382308914255029378014162383560973772789057233974293467195168943187702534779252209114181880402919018766365286593812939433820783656480381921446738076484085119744131966302064319272671157000944189330092722266669918342902691366925905799865081033785653954109667745273625994844280348392189568803005289802853402416522003516209131620603083912024753641058719090860764024597164640646014903430183547145080080409450968257662143841685829474364580388108556063802392577244138131500025133791903483184044886193930837351627776334143454901338674675350704644318983388303196326482478238633345463792638678582926857719523796599439438096891688545472775067631091436336090715649836485365288860665053896191031531997505439844612243449046905229127436271485026178993405770945369622394006765849967263046664580111123077955247743895644187576504832536519696182970454294036325213589281527323295549078259052531477659580496146221475113107265311278840125388903827080163907690457165926371809339179669705934824552235104057031133032597362143889748659430718375523026370549277649186906003192513864722911109231167969619055230451834903162659082864825018724476297201027193148334031609247504468442690707337371856940690555614340111630449061233961222496866328726203051081123285675479083813224173107172193436294798790198660265806889759704432511238091279983057720261269161261308098299681444273345348707691053418052003249820151876057068467360339002604254234753305539376149951872443063130266058519437198142365865811006011268211684787365447242928005720112130611860520202270331276029671655675306027150141541948077946627306561967155404665763754903920046058261899377803763024138844317989333493615896316303725983941498133050523547638619746850690241784468757942217476335873292106885085734117921617575593303030375964785041313892324169674256394716251244240377924204915350935546137411873744839555013960474011098807588462530328783054791439350608594538390149812295228957877685266334112042010273009564314074322761548884426814340411856275077198886966305165526517213857303859355554795234971929325401266152350704724762107373448159539310269093342678591756018911267359102593988024644269799943580999891589699276250744938059907568760371534846162940957497480710519570246727432956944103048409891592532818283614508835860056788296020006006916333154998402662362505843344423268825505484822761155923402399481002866535097007112781714823865078764298557332996168530514438513526654895713563257048763841737875853584747826595944204684560218784036599983193067489922472367250961472380180659669455884218447354696889714396886900211960010764418577858101879119955682424396450740810296385457051927106993547992275735894754567562407097761488823667163270130740550520067089287628482627728714853079595150919040437586511837699906236519228972699057063406766401467866058666612254022758058652740907945330815780661039040598385077881323281311944210508285878740831281087165537154822443610398824274513665638976237006981380541417397166210796836024607403012835847863078250991920926271760178052436455527855902563745131672177442804343831663712589625353288978440509799072695947312191976412886243141202098749709872307535168749747983203615819377330708633985503045436979380703413047531874349518704631146740028361592924970633252408427003011324838682360856442929537483071157629269228487712101759558285149333808588661144927074414151367553374730863777747642064062479487408149607188122316458577773311803485620423173773793311732691623605756064714071322930363902356878710455397631516157110039402941299018252231465836800798809520592320977719054719615166833872250877150232622298695726853483288268645277804753411138688675929792311498915450268840843484606147246013349686435518183878014477161882869566393902789814558542082379723935078814155262129116634431865580556110482632739474863362354944957605092926578870837650049887732080879001695962859526605990644905595846088349351929867744599522154774055322726953222197788584997623089156866929771600453345311836636919984682536374813934441553330855237518958440604346800678397410874067764818257720180949519504110178177050628027954670768270819417418241588827371551847886340782596427397544996777413975116378918640118453565121871181767365801301470275200676528580089902215015241958995782950335949247170207993342717265242620524778264445923029251264541310083695655694608996336371211022604770479832499871745890177987357745318049135228198968349363412846910969116192213954649633795868535765962758970106321208173697994849857267316040938348025719061979461664714746671778298545406563770510553377504576437325919503452369054609743813073607325051634401232577829377559476601139451196346593462444875564218123787306914484117443284184344346502838969001373595300447606729194438093905984822208246431315114834912367471097893401688323365693080420621968568674635745625089460621717393639906638742204137343343156239386024659911687856427341919169669575047480671339807406740127478016994106629278393364199283732104306127923421658500673513738371726929458932923822158663465743193032539713965795639830788931793070474507020355602643935449962518755295024318233221160267028089353610925552769535245013004349424776009992703744161753930232439231372251286271586261340468557810627965434287434011355223181159434176989990511232096761632936089803511807241452619998970450345295868778869769346607348203962482901845490979739611895994121679610928433746954857317559784999025078313040941289472950421329665052747176823233110003287395096683286206594313402299595470736227703354709398773204644360202419869936855872671341813589350134178569436655255654051693339968596260280149503454993260441197453053651355209617383142236938458984577776844099200480639224467500859474815108647196077859283861317462933751592885184040986699797360074669820960720990320164474010757051036182043931411129278994951793426231291888048750011835112705080198574812448407471201125241912272865015418363317022591440191467677752722459140533934643426824709266104085354583050039196996285039660769132829637845767381686453603872721617249793278820242729593856833596470599345673797131879963378486717724884786781771843898964003709541383361257512330311650692859297836475991601117866051026708805169056157526810913000239160734043590273952798462176912689393279540641063114503317761007671411712299534618131383447255347969558401318606206485616340058306076573038279832608762873490723554994369429598772918391454526965058786568225858517274102550645880587099779288340897122840053882309136368678132336518817657816904603382290568650689362584503213195754625744729061662344670832486683415299247582775628377462662244408761964591739175241068025595096571366631008445803999222602915533980076176305284228231243592621262288737298375725163269908387299873628772552519113898958059264961265400578617040985963863936929622243195043908478827282422336305952198547955085170771391145511397877842202097287754207093595756542306615968835229244582195959139596369605999948384475499692274257703046061789955515019691787758520653141899302709888991825754914040852144298523832313834358290676055665517708220851178676969996208984892139913307777258710390607234134024525227293802519190779960957524630238514521970385732533080730898633413752640998228053498803110218897698446346558166645718492782306120355536909422812848492047929564743466475769626626631742291048484901087141395733199196113274440724101203506482825877140871464643870623756738674902993164185605862387433899285938815773707929177916542567271065866266246629838204717128021025017514157734209166849702360621090821854545247874488201344337610423832472129426719142464093751433357436190877563540996542121795365305260015903142051330717097875425840977898963555381898554646896145001688530385035304265792671276414255451201056919947413966330445255491905064079001819421834323594857586763285076806819225508913624440611817646174026063915499287215055869186988415992570182601754837426365697283095059197949441322686772151263608939233741011609612736440322541941654503153860420524394786909023204290339655530227894433096745604354107553514706771285513004394765040790706541027736043102798423200130810915964164649273501877558127589328506606766559333237325359511019894564452601026008619631521971199760932752505565627885318730133954638869804621315535843613864380343008654543587221527470748098886447560119986726626621805100510016797209106529785624879366026656049779310467612910892234770920613698422170309978308604975484153156946838442077724560666760899038038623236727212735254195578084355162990351970547542205352909633824240697584111335433762868077506036203626693989290573157105497889281167223622011136863100275411917266770436198417079603245367370295861493253942327030209864366205641004734944678924360159515083109037324655130251658468445667810244813744546449291232353134246017516478884781297341069429192449375711121156506778689575972399253575385440843680774692102037681822459388344722703934076527454567060688663601443582721343532902476900607592541402113055245481904457665276299610115662206194257039472760673773380339029729647850823899073395889763205210010292897259486267836213564203031215242408862621409845934186074061555760114513477307438439054118853284880988422765593586493673834016953059277365444236129917855300132865831880100406868384612170214528699747344759113394454284493492145140143855526335274398498636979737822353394279667136793657727008581433249224590590196042265417700814519455954278913209512428300151848341967300096273832663218688126866919239857206804008907093025355264045684209555205834020542149164554508352373703907988857166362032585766501450843979549503929196913306506170903608397049614604088547161825524389752031136812442662352431963443759028537936062465348810847945677069124111082485231298763670329609080982353726375264280678141742441590102904117829135503560114029774721467647181979092319640730745752927872305639974166109681696725094688979807925184085421307322862020029888611650987694977290745781781788370091532950169703196978086985089397168606355651895184742541422971628167727077901649921440426668420440856003674403457713808295137033002959285270098382894150331179429050075488243958001052971975785858459986917313501685111789213167481125487079098396759542308240851236068034712132419794893369775791795444065923510670780779070014901493154965291077495492500470167713820582418232578408671607149358403857097834578967583816241704454537261086990020188713506926273147604741019626519775620168520477822866278177479381104118652784422925789436576010094324206030702080254666049960351366240053452642850053608054106266528843413055930233208134506036149169228455348808793834026801571919865485248941009833145053338960170221085435935098453512008317371209746987420391413306144290205644635183919338584316704819513685549814925948792866305514124909246419655395161348684514655855574605240789861940364546002456528831401317337341604314154703442755854234819644707450282829878257630964343807333644638452751189121576837079098374358111072055003210478865595830349754863835526992455264350056866938330817635119274858606482651380148897977310849977108037332283356639808488360303839354543742362277916349567237828007716325544100062301314346811260119920721349921513348371380862680447730154965552444446099433905970516961636974973643390860327981781388094423049813706404429687656738532917466758958609218358749287998434128024990947079837085041576108581810678022914815980303525998049968532534842115281675323038393706262844003050188336545578698938880766630368692329727639711950702166773736843558204521061356111137197865694645890432866004593293157555951232195814868751763298997596823383914561018199320531355937058560252465786489654314962937081883067897843811812463678430366056656588368221490244208838678077103486656150710216859379831543906168840032694755132078896973846159175472962187543937315939369836140878065669751222440685997779576789230778541505314695759611956701481045618952201357275305931421575086319893313569310711576295299118626450164843313662211848621437672998347473437657074371559400497079408387380834351600505345227647024123171593980614789469752774595792387660116483973431318629837985347171529788984879349294578807060364828042695909011165863498403204305542507600844574093781870700351259574166039308022012858908228413590434272360076172541316307771223263048674825921215680434168809998509945476219139399337054542078517627229224713348953367134351320295369967032335247106483238987193415563926248481550668399340138479064676996776260323953689467507649522223717155338394263217747633335848965666278510522349926089011979512814001023157280642128707694037157700037027847360968336306857487610282001920009792692159310545977524222843211432276123969088567053485796199675923597613203014678445820599520719556475719880639854587826209134720667822106215073392275933259203064205612114249948464882528428292254485921787385668790461902719149228431691229733629687343063660009978216535071414402281625048476370710343831872848998857455176249079091583707192138304905289890367860380265214622598855052194331622269539710876347823849955037125469494650214682712207964262740831003929455986613483955321724222697077207316615926818496346185320020508836317931829780938012733878655680543373812061965670566122427093381135146918540668883251011444798764144628333684202336700047609107122335256205659055271089322285958762936538491625729155470674854807774598848693677562952710172288768591528087357819053382200831841236965851678546497788626363103547184659710332896223388914888352032460219825030926042799795400168085099217374464395579491546611651731956464354239893585598168571671499765684705433020208703066521067459681425405483675400451974514543726812581844638108607282094389014768322095790041337579350734048366310510061174291924125580106594485272269521603775173599240030539496314613844703149347924380420540249352257516410845028149172129415951791832307036776118965596674678442322853445814129113118427227481562068058706111332905337070256240823528631553781069374381416185054487465097412571701767903073687423603141897826941901978726831005229815955353274072307343184429715482820829780092604216076195109337807144743108173628419873746123826335601353253628818931860556500525443483752381398546353976265587391031930628856545964341661555376604865510589593950044603275412713297392796836791725644431395201325705645149328228620489605913881959155024793684219802141083201097785963031804354200444593192307694639663222266794513088882420279880995592748465591382076316298276184266646891064802744761867870952839324501955230542194901758752704389222012410544856843405607150270786854692921415326871001121936596033740035866726492837440710524486868143753204378233386035509901161356117359327608693354547591446958817318000517721951552583908963696779015266826703779227139887470011996922380755848343098958994326163661869401653672043115534810813035244834721154955425914743989382902338534631647174922473086891033269576651710503673495357848455137624025261606602584365576581011113616588044089366601746620334620433650148172934518953229211340898874071330888307123785248396792024291489781855129361676638998526727179792210958847312068394354444568688711469920571830335440207169209281119134907991350410029472376530139199814549458914361024256571016790234647458022099652057239461589172873007260292882470575909384571416320029442884524863113445985050516633851714710618373685555944698779953115754430347789057881941390038580753472284894646013702419160572345163949811879709211556133749385311243711237980164771569438409000831089260275804707255693711100510381177567340270745124998458072398966189420368716853848455261810238257118787457651168013622916884080769817186402930221674538547736321935231301737516406145934443753929447100232753769980271014007358188483302432177971954044425508441269528579891782038121739615986512546913937837000320551719210372316776240902759280586756883974155916889494705386730437549182212814589792228566489071372083836819636260606538809804170565392725460564098179737546819244384085604128306643909595934269241956224821902754853035521635502495247605794009333719130787231282452785163713333344653026221915264033358760864689772717932394032586410451182560076697229857374699070908805534168871491846173195945976116820288977716093857872984846464472678217846040283464691007391952049775931927113442163811105123398206812427103294023728470531625673415287468885571673030899029822020189819169353403187513136778713378418741446889304405560653335653305250891684189053786468384568330442142623608238006219859462382761221363973374403251087975544415813790270266129412037147587700205964878027539570713191184263747717536218057179746867746355539963738382006054511374296177648394176121513522878773581808398856316387966995123469513388236930888139387660024237344264467348671021446921350718727112948763833076392289908913030942144223073036678883443523571100549783478855869285613451281132932402244716315352478642885189560303930080133573105234851129033098138787343963864351234339580651258956269271350917151700706573806427774905451458984537815578401382904453677954392283464940785601625346772421254403964991615360016295822914036492503015872918449045515775816152543808635821386310321800534534493546916630452554025288176633834909101483918007479822214987266611361352312145759238674096716748341346174722144683604671662312702486002394464701512721730849308590485344285457073047117595502098881861066668891405396139198310820227943191939682004852878330477043102072078332352001884870431710650678984423560723075167892293854250901903534938605872451139832187453262017377064414497672931818180399038944002938179524240977565288700339248244850664757715058373982922143054709866934619256444182525280515322905622142167910009930599084604875240663771851240315866301333807184606810791056211960769306377578680095130924750271435660594375937743732764176958253354286109274777379041027731662112768693672416165664429664181312439204998850688520960528854549042406746776092101170290165542864394560045612246888594188195900942410654853918606545972324495394012765027292431083732466956741096281119402219873004479728951672378432730879984226168920669696046599854958426186418068198012765383636308594260445622951682497377692275972054523204547289130249440784957237984959959377475790970606140763135197479276593015082189418288867897779212361729301770845783320895223318059022454105161760451889768455072013244220561401824486910421695214851210050272494412293701036123425518875717095182920139336274322533013955717482346478480061548975086611515549256875679892142188086672722951382458903468761410420851895669764873631024100396579112633521310386121688847580996137386431903662348984000457607662879611851523537933401846950013998814235243760602218575767682141327316964835752736362175434451454112615237494627517977909763429132959071062210034312216971599434299646933267408895302509659996626208020780589555055568309386113470770370799800893149475385123583306666639929154152422665895671634034177350870111377410880004102384361701660684957034431362113085705773444972578633434482832442912968210628225899767637652738414043074093741627961063732438634662622825959062131481359862080037264641397839330716288047890866802563156956778017072946589017014989666711070846927426712492463480593719762412931700889978777679952957237167552241301997520797696557864674120266412969168771681827433812886799759237526706003113524834749751410499424623360864559626657745390644963187211225551420060545258881344113067974170434468128400970770530691997562780350325652422530494368187832670712054019798913715547664537852152291808184907014317117263661676942494793246572721556850151230609754497409953109014765436592855377817210834991491431434160522853412997361471677562509445740185327415292325571088359835988772503921104636609065064838862272469390116172924183503775834401295297809249008462972217787892378910578790117152945647331862565997856759627111407609447695148772056652892019382807674740599082309597323203479083813171557653230618593363431502079084892996801957345731246457637486244387090932092339391476248657594860900320967120830171329240663402811751549092591541245456276278560669485143417954193474027470607165652554477004086011646048843385124942181909186829742232149275457214804641500910533853763252296969742881036442549548633980170429022881837067776102248681054233043463494210738645397647406034514679688665891179219727099047702612297225609827426418630477345167240949075110488571738801438534575279140304111023188383831460109837784159345388836833255740969265455742387291951516146806702440122447121619402859329232187851069304849906270145549956131462167016898973113114254490939380709356065846120681060841997265981503005868551180051683329188241943976963153079159263881245680904625840663777505865241602067383659510835852163043843558699284476811328054988380493667796979777503759609056807989179927107582345835050468600068606436176863562781470752356655487010889725523431790242538375266390601660327126531561004144613499642333817570082025432651229692299380456922117224763616749599285866586238838177521308261018004325824522796937795133170092875823095954111913886843320058230400411961854046957763355426294066438300354233905447113747777523846253916640847257385175909385557768225531044160495658884049643488460150496377142632107650271085103331696798188301286894897344961993260856971147616420185322154343545416389691092711176183117198927829516093156886325878990352370650575601786254924535167871814261269301536988020618965456776735813271904304835103429074212852986493379846804192830312210593909710313890778499187933473736103055782074582080778656358496816764230750291742131473510928565511065328030583401131661418468915170472423523589791867981612037843430507007592153610788454466541023538217262437921926236163122021964262227096215463503763226355943774462140015143678573994069022552086560040063622117431364384208618394622153806291856272352799114383451263253293497790405415738755365881928231426123315061097287440629357600935849840592056139291312910555521784195862893608612016508938662146925238746765718769731725078324902608324587549749471305413022628131321148609039911110582866767905931062679311838761611089226446367085298859320558644024849510217783519673423175989617938359690046345854364473381821931505249533646218095710120375854902973879216917390097419768209286770756156235308108357839657508676513954485905240577418375442613413353848150357533180168601639937149203896610993909161773026800142723434974039284498921101610916645800719881563379727168531685806067543393944080461704689210905065825083984821542848423030211862173512080509243553608494857204289359996112025202536062815310148430617884475424659003058729366050268808286962269108677756407831094843961342282706977885890580171728270562058717837965288814378285412811524416885851828912069726585060343493949785272714639949544877807247648034851307109764751730368868350893947103647674963256407612798911469607501627354852393891379096900929806759659532849392058905026642789105777234114860641479030890448056211375156521247419815541024345477824223234966982645768480930548234859675306103937257578213091341444870179648705202289568471356700807226114342763122762178554100321774355975625021891515758222856736838102627324771180878244331198824277726435898857032407775698943310868746064724840839169882393021737589707212828538450653912269939958962683318193069744299983352306016070234914974752096558945912217600712041309827268397149513647504575717481000626459967135401576087434745394482223949679667100240636736084757806421751962093998817908535808281505686891641262587794336982824217826030275780620470419688353388753454541842196941505636920616864929924086867506473562348376267893570957415916557476310981275120650203465141547896122610938472575965760312393831912852417432623611432984945644021546936966101918615529339201068137423187250078345175622473166299914433234059265426966006155868809497041831330837310618692504665761585538245504212098847239144514417698186052911756933907870450495894844486121995192586341820199014711287206756304941607269989754765938376634268327611927384871601886862741180757408065655466100132293913669068933226492039380896521420645406361707910636387514364585148910434145380228721908738884459881239642214467069959559583321614428576713189931184101112999103720457400855897918661254826157103208341308732048341440720001325713234814950770724996998496389771338513267868727936065551555879686331965243542182104581763433675221613190883329902353641935465758663692260016606805320313911448781030089808645928049400598772494506424512398086752183108586516098660248351590256634483468564371178842575977680344789518993545664119264396855152521166705287228138514967971679366805216660476035063200209969666059140587053854510200149534236363165780079638302243355941478037973665852286459130060900260722399411108344637470979091711237416562044724766479562125530442864285731554270853254453443514362681223731154798540625783374760747862559519083688506153695202852635528571636401736833580864286685568093714428989717712266245186328959518877811903362007986581157472255012150263450428054750037398262394948271270226402215105099580495037692628800782712736534434070994144207940525842762350528736160427735668344926270313810747716581315897822016454511883947680644837660186810099502143097830461798245146851424755158638058146851866413073654702190826148076514306721794943763427204091652073931931355662832923740455145695565530811082999044890667776022867692116153142116327023068377617220382869072277276196271864806337197453225623599258505012910340699710228255740419206654131940539198852480552769703773599925557295838564743252051662059959177575858962255820767564882518840651421564291190767940633099202484533368221228613335567058871417292689779474981640197491293474635520836495054094315603899483295243440460402720580896069574279677505702477434361073033709708309097674737155967072125879063998522051648266877706130759362910918722377936133723268203797433881985988426440189643386881437086823808306826026703372041865590346156591344938262333724132574795848448839245378444542434574789277847614351395501932017859606805963980486250327045557427942885073346776549000473485949969545650789660772162919165939550616108425980144836742732000277133773226532076167461682884368622632896047567912596205253126484338368792228310429065694534920417204983566015271277146567591005880175955733489899128786082503401579258168828976339935603358573897048924824396698832500942164663511275599913670695576921686490665145822721835708899565695006592938031904687900633925835134453182760942870731629915863833162847485712859108339196211698281881472724834922717123449048367327181551456026517772157646254997397728882702123373730799898630545958839314454373402509632828875381281429506271955904900147117625428913747836392551363669489272858623000824466749115398067787854979875204232069364825229881728009287115255706188972869981214870557312757896719722002394972471958245537366830303613036214774629453547139431447971815559112706916375085044443729714757070297050710372641925482634371145299725027428338912897958864796723472806858101255433258482628716242314284423804770151528140671663821257781240325854908901667862643486776705454989008172980636319515554406797879155553424820179068790135582943452368615167307108149040863079724514164532545718171601879504257590115796241527980007961781030263391581135217487610319583943830608946755321636756121951747985628745799056356979263339427451052397023632011199241618534085658667189131817252672956326229267888404539869389039623650159984813019041057522904405732841447421207980886271712824742635386455478249069652760007084476824292684790961359430588593941482881696487034770346577088313923054780851091199060595586782448579362858553699480439351720152057985612583028525161212261198861508794555776972293249917969989051736072231651392102260683866075060950676615067715226102987316736940769150484570408978604086595545633618006964864833149097209486911504482049220815855295320234880948038098099879844377128907652322486566175280075827557138716407211925202457697602597444805529742027636975826164536506690887915983960130488960265732105529169071761889868551577126845469222800623387237197229447560484134926992952009496933327136891315847627399770760485811735969734420786105392206049340371124177506325333084457308180272917874050524649360180745150316059973647799834474415181891684927483979390243295129843474159387311695217505376524509566761283868752145547422394296843747840939931333810494459859934725564260053205988271198187170746967728403202402003291285072805033629555051460618271355005494681028771756634522585953196666863219516367527595934802545825072718563942546809690587748069270212030519514258180036218763855270885000229426761060816738306532870636675985172506401637697301225482827763519670337207168583234305117437112283446256400438492479833812536429879465143208033197931237899157538688476726157561541301803581616384929553265983061532214731833141372711205880134401191917793557414770873981834634313129620074228303438086831164154110117564038485844088694590632534212427074234981758243129698370499482486544326121402376257213484271036397090549768899937687043367643370252145402308150147908567717205238432263618574157978022249225423929242917844309362133173856740627864598709505514525587745178395507809656124850754067601484194682245905388763212783675857250844359902101696374328899357896698390225491592823205637039708387342786822994114750397571777036174849879125209631872081728451658535407278686398650990191060735915714859769249112848483162000668897999001630108646728444719619069062437030885385454022711078414760649201560519422165709540707845032367059271540773953939116473026515591916268531792707211050320182391307367046189676678242695639157635960840675618269214746909074379471186893213202694043768631958514716273128837156033646619182838099549351870581271119785201843056190542863251794859969200559676056364571354484109217679277687470546547769860310279957328688562271891398620480652851699803596185203147026528598996370609913951981695192753168790420522782991788296877992765890626638628990199182662664860199805104187308718273982688360992456840339396036905873715430128557377654258110593474332503178286796078554013933762010850107751728979474028017777868653021222121946497285865442376385165569754258448442763911896694131832851263099234246691470659548305560345732376612684613820834231889559742401610926726182411567130631472533798407730548385849693924140844078414879888383364009700236660327375390324649418707563467086102485775711357555224809526716787877831185221063761197851642176966898718337900938139883198684643470117858778286129247217399617077674042564032043406060997223051035972570007644663133431223806971803616068826635619834615711709457929320692931362921160639461385754772954951545643780177121923179064869637023707384745531735482500061590042294677862134219302170529293461849662525263540065309981889225977848091101244173431101523299313309213715604650558816856883596102633140196144370539082527849837803183644671204188502136663021491274535402587373079021918894213129117429014728888159183079461232657449766341320701375478989392140232022929108313067610228508914270180373804559823714046124963508440475249946841446709155658416686861489930576006570658357846970416092271286370769809968520388364228888426347202873612455718054030353128644589518099542699840219219792161737149598730111646918629276952586295729535841930947299992704239901344184930530027543647661457689882404523764640254876325019697777998495108876213657046624760954255378746794015906914796373752010915549572333396409861109127403799055426294558238257031570088834639856611018421932462170320321629753190823748749060565089066673255042398824281501234890567031158791710856731168808686603997740051215689990436821246637555659843270088610750975361284189862172544382308106403224696209265138584216484442192211263814044557545296609512382411433484540374855477440009336904375909054455090956446866014645645222916745882352490774032010673340205206976187349955072539966743154848038161724788512969521787307255487520586472488414737192544647344335969684411991667193729798743306883918554695626692987914472134566908715299876779834297154236571763245318800796091847026836551533050624959142437068342376810385261653465354628333419472870360951940921187967417940533140421771828494456353723772115611145310308640971108804972706165462632593691654050529285961266252772723174721058186003190989785144532335758519681559082701712081576290542255700845423275370747646358444544752870596113744290562131157797247487728221842400159658935790017817547924097914025180766565909829143904949828195213448724103942721399039148792639575209103849154036629170906697562989584228703432650567356171503878443215260787014888502728027236765296288070484895683135230404687237167387836897486217432484212575796575287745029136064838679217063652772125218583782610400050942615464395907673797570428309507957119338041822359564484433820422307376104296309538535631675431544253772715730087254832706461913042355566328265413931318580928783440315811556109774182708540843372549461240528843547475355288831849185076494995694554633167852567946676838509570814498068786906095960244546224273988317263244293093160270925380607565449803171892672763031528987033622725336591873037083958736159317016107803100558096370896470839986273487953580774100910110464134995273281042917208328730273492558839331502911747542295615132800711561358541524280343384431394995386810508500180404985973668701127455274186710673027999165681230255671271383582400085297732515024057720828062383628791332211629556626292355370956183959994442671829199020307205765024112157106496440822973955681231581822750364005469187957150327442187516723232446475043299003823576608079701071090423197983659014491657809379327272112921626867001926174845983316619137100532894019999655121770380629950357421719120852174982823942953195258259213289488197298741594596158436173401430550391673495064977886695146425774238048291020870271299059864347733517038389232448020112968833768172726012980415583855478833972668654193279657966605576640279481565138787678068003689110258307410861711957923656174141982096616856757986795289938648026281240993543499509325450623592649335678677146786980245404480914048335710518942661600943888006821869094926560676224783962233925540851971916853962786260480570169874453793168136231895978255041251397673896141354956423083308042510230659796480091940647190092472230619183215613420872543837286774944460830664287645133312667979519678423567013142661242582374634249409276480806427050068871045996625828765513107194252302498407476895765261267520786560059607883571795511439747785439957767316258614089945748193960323141908903352511289794280421399047218469319683816686161911643585275516206367947241374393752775381336711075208763660836504051704969787571303192098697005793713384629561812424017145415795379020076063910015977981715535733065341402715804867862331816462782878842036530273539454958692337942743847081172058873514350915132454729366723321215874027404001118291972660920462735595283417856588767902184387957503183071351090976679996516081406126326347307864651477917155244692995693644582752961647650475971564998328250943943481001792767761276112406816052100901689650134335792117445199344868083799601490333923605535859890222443569626623355816294250627974976397863441376879636728034801270632047449917022276337270236178566218993078421159582719224918423538760407654913474681186754814534033428929353960202531445076310635766062605572677340280940485464388799843658710096835278224193883060121913288253298279463354003307616374071654882184402987248093552362406477957452750708683488222541012710285121296911273748068890729412112960705452527501569720234180900108510644965354258715173247500576773941364783760641750492400897723229884248403979970751952085408594371760961974194092651571952665311970286776047172119103847788172487998615396764990224749743949020791415753710413229697673417812599227381082135987703473818264731106216353408536183474518518881893316494654974485657953957420557225743771105134658789393275608649405511477654845743549463112603176843069927205639191631178250411856457227411619018535575000818369048255188711518938012623412018745227165584441817640154087589747837326543585402475766332233256617483533676399622821978737757990172470458375092525984507711098930399527707329895517138550658629091693031316249749869113285642245876953941978898109307026282968610930396986958142307635909648612608798202256908579100295525811117925311520350374828254787484318077055292854747012459742722817449191883216628519274169078127875534040657144526760127186604702131673465249787360316485551419899346613837136643216415165074546285204639831939073721002194095465591756499637273704240085310312857832230004326297104665539611075767546561665056564081749222184704768920979944265841547109124454891629409533932542100455502811314777665899305595168454064768751986456685195618565373328337755322608613688473905154097583702183957557883268827231529345355220290230292971855239122619532503145510173430550866035112977221348689643794413081222596149735718893309969330913311964486402584581760016360042525042963331063553423190245261933543852822030365268397181212852722532111500848921729606466964349540953428616998513756078554732817427177636707122109215099522094861652288121384135015626057469350970188933651877737254615004277516139331300051834428734524225527103318159086440526205998284878534346303970256932044450347384243951100093897760115887360384462035602977724547074096099379816478757275432361751063523209920949930734452264062046684929403258838570424966536979310476917716647388195384598104067891942737397993482893607057238655804336480074318416135031202404618623423184316724352082858313870655558942332032772055058447960294284616343987723357328007044279817820485114889998800116816837911114327144859997721023473266591503433083373065068627641975792778304801602761038128480553491431777057489010132833172736499596111405975598816422134707532698570362647057996549618175680296842006942727474641564773260502614624453391849403008480795641135541847543918744266641914944822323844698445451777706639755400596516504729136150582045637576868558078065639171283401353701599494388129525450254819040713565361704126190073807384447613114623638077002385180433892943307014097733164910373457117091889922854378714034989692822523144188430290442508973493026385518512525790481376240150221336014422649697747806408047271235040238254614813310121632242421945797095121576385182671209870468092169765609312375896107785080221388271793206414243659631011963588056072808443303179277670341745068192812051085397416162030162264004276237382550776740691617680585856314366887107268153076632768908542815836958027082839892906833103934984159850095287762347610827625224166004178874099534242267757539169708091877412355389613150858406267720818686372595740631887414640925577236445479720298756034074137066980156870173415504520118090633156107472877654580804661501570102783501766463531282053705538200798525944561608612653827997036640432488641554865729521141938581809640871701176658877106300027733685120862332848714060720549760014579854009601549660515234622866140868633173809868376788915221496192801015281647911432773561216103042198572053102179223782945815476442605660313704514227799192524354025233967294478773618280243776635276423702155941599491251483577285221727212079641829409157617718506354125375502144589274839240677525499600163110393962358664237385282883950548899447923307334997065490312775733881564568635913794914925210231862060089922318069773409657350057964371269828636238359333643310095979001187446724889845192012445655487067871091193991237268822417404061425858210146150053443493522099868604449578396450938414139667947628104962643831577611193875340854173522911947952058210582570913483850115756669336135771648548028747715630805000313081853535822652555123616557763905473616358187810932151214340026073393971003536759749301695954587249388835211008716079538445002109090826823172884460787935617228018312886348601171536462397695917984351555114692226933104365222127966818060827362624634506384193891078625268163412931008773246804399542719364238130882817755223170536941336490386868325611451733266228621843412469922922230043313561843836053294612747259130753074184325168544397834320442733408157656289539697666389454238489896882379792886433658130098537217816155657958914708453383916412011467153811988892103157773923497582532549046815642369687988880932887207325757692254546726800494757656634369145795447909840406343962472085655395039056564677161246697989964477022156563666121410863385039369413471487160011090933728717798989051935989345103088695413529560884559821004227989113121331669185029741933043277962424346386514744421947852983953256493338230883347531373680733596164844009715843911936400904471451698225114767238259046349103540280791511797303113530090161891799107952136595752627249411956841445095637581556168208006962912932656912426528303962238779654662507228820278349891227279578230576581896035409977271315696174451840107117722330108422836014708934509644237037312885185939895796253093509741351729902690386144705426965037129171655840212718918503882045138280168114062198032324289262204937328213242157990712701446374389117565530020112082416188068212812391356336658978712234164161451189317860303779216033336061468723832994606676335694206238307026162832546559108975268898647561715775034682795193562473465081612586258273169673894678228950545351919832722902977520941998936727242408225561099576425512688534507605852930952265114759978598184530895439806128880834377463374520880894825299591495935353944884146832192990394438997071978198605708680830215977855738277363105993293570072539590552597920916504697675633552822107884366356493768638487168158349489562174482386794864970504362575118472757343461621366213818674767974017756225179320784646519494202270635700068089531417187371500781490337346676105219245444261187663923478659672742227365155469078407292497883363512920613778732772751680409617594319157375712944670985103503570624577871218317506362575302775546251327499087099570183823815603762893379279302426599499296375438749303036932967020932999364228269414006803421655815111060893306666572799009272320049949316953509796425951307822380701774927133187598434203043723058686766865542408479564482020562720693306261342711693755022158355431759992847612558911902637213615416650709047788374396919182904793819777187019292985777179870329650400670146389594351160902412305131867964809148460375152401667067559718082232568424393618134103432238716248211331811940081956270239492553830321876002690985700435111447129922529070861873621340208707494344147441411827523124147726312157871125506121844739540681076845135910012617869482107723011433887992105381156673301604791865253867472929276409917491891597836858412845301340821568634280779797796112364895558128227478890285876304140656201512371003273999780528137125564663043783698325134196944654725885233939744977468255036556607260123690894644961150444004876482613713193058596033091928067561733309298966858872063291763246067202574897438583795822927106149655932960766979168345298455150731503525474322017894690345788604096603673005266931071456295149760012857404614369136486520131794514004472895784402901987379019214720871797147877375425749502198299420896243125624145533175213558740056771730661639123936697861750419054666544897142402347063518284844569456512562143843360429698937877935034445478692648915477689707924524379908816963882127649788853887794643918062775004376118031966390928152388426451241234665034578693592459324748485059985988456952157878025621551343389141475595527689457623387485169277440393656179138071227714381864292729810274690163975316821746247588068467179199233525660618120370013636025311608778425416077542159972247047885749792719735180235805954880641619473991476573238487436919246069726505956981982485313026352873468436506254058472694248155989698490055828681754686668243784643071702654135138633408017308003836811259711957046870214533273142672171191126237654127005765267346981324513394685857830390037971177847782535171107315917338779381627529972288255261038059641542312563893488930973522705351047369247487230073275146044706601024851816660259169073070778412867977358858476477076224325466726992955263813653391152785405857927117846732246388816634756539780584681821069847857185831392570770491441058808271845324094530759153249304027502630943605845718071102336187821485568369312916574700156835688753056055453329488706618056118196980850577450473142371369868305145591399538206911298964240601448666024863322218022359979508302713347248523066249032736789745948059045085226706185692691114362731305238136110468878998221870091653802557696864913219717314057771293676686359698728695185638181114386081289596290134460199394022855641588102942965589240903424268470160781363269082590346017857428909553403603884509539511794621785463573339530293088155391550374878220691431074543511131932806077716505681009865797734992884274137040812398987236272655383933168007388086858794079991351749626299610937022540398294923389829935544175705655294114292285319023471175405530001738177233112060866374934766118162441053518966969311215951292624310138269395002301154040167425707146124561845155221348389129682605015929559464606068485187392321628521102341377390019481732936627059125059855787809061876194602896141443289157032555878560362582214338774879285255524310850863801317269537083952946057148530716348516310584414499657163977599376299195980271919265348215608891168075984906710170778452708745217218094727113790780592436403952924634816191294872232254537508013179012183030422529315273756139309170832762195970133936417476517599950039626900320360979267130392053402939197602419735415950520776990726676977166180818067564330530238737832353815925156097227740086455294697672953026552714543302961860933705899438653437115965078940194385859997061493818635868685135529895490879242279540044662737107210694947858550678287635465113150112461512253703398555752762922250012168312502558033224296678587938671566723951543313863528505691411249672072196650004647863947646155108292681039315891995253251006298843128225139555232300057270398161278864160063785192589126774671238167564852803540474852191038112844189981056710454841748419948754651968382206711127379558615941752643619587458293067820238754521250959362661727003539931241712776561163496459648106220222567733639125866209999239727751927779539708365318959723417232462117754536497095764294021515972588689313275247484046945514045662439782938464660131594300152086990691349353738555765794004938231010220175766215871523686937926829195695676447871455286506228413021424939783801322090368248788292474567694395149496859542274878385615390323530597245087563977934469997233734297475689041484021313628477075174128992769786344418720775546064836411428811962643639401426461122900284402295385702229176789341139013957455786348665628960451085594095344017383330567287803147002231794139779549398852911662278357706861842965668538587066950961459502994429788025337534417988440678964621140352283747285933275770557967185221865531066197331456417363807540377369166128171412134682851781884265049191303515095212960157701585475895545957455230454614304879614933846428144991902097642453045658457402796960622067474038978923906763611710875226040227821903344173523564787571246989765768880220825388676208075290358810814554272863419524668488270402692024197412922650710598747638876107353022219333280237849213469773861466367717517646093776892566031514136260427758002530309890429165182784765237574795329319738048469994758039883376851811690394385917895348166228391330916065231094124420833524485734574068434304904185187409989007223425897246288369583924386148422036935746213091718617562156052276915967850184821898607275835958393558386585417434786342428139200199680055775300654669620784223186322604948626297724195918975777509092793446445975709316720154272532148952470962629841459501994215647733250706541422295008532448820192795786524869787511797097627839722341309166526870953033547717873081216145839957538611915874795540298550895008266555655884868296661361721874354785711685698571461212558782710159238770582608842545243180170057622942712494327905753725895420712883981832579192441213222247147535579664101087701646443259047190008846581180298404771675843465264262783417681839799261589068824038505490489450311453906677623002294607428477753770245389432556771322157449487092521841180911440568116900762418430918635075832606648734664726839297567963374461509288547707773392750240624445913919849948323838529875323441864417117734265189101988188082499322194069049849260359386437066921144384423380524570051771785800615924500250855099988787170809356249886283895116754769603635777502091613598468792525354050098324734028490170813488576325573866822228441049926262658002775899800866770407657869348316454514264144021624013161895671517472244113549302974382633611495294109349678463440754981514922090044826672160625102252392655905626066883340508008453096907145709241325822880674989765366051969302491838385053960474507836407099728701869403741546865851492381765108262938854308698581723726390068829955327355478180312916524489889241762001422316797580936984872528277005024103743207773520475050896111404520597956015278795153029802347721783427105716021401010264259149343908048107212723199772168706062413846456590009220643340383687150485589348313579309360949521247477880319669337793299322846108320486586138694994144995190500437539875634782975704052055945373414645505404084806141118970825726330069090659618799192250762696566707780320056275402277951946424586456478460389185271596795662747875607749801450751043846743168705627469376028416570175100513572222183149917364292430376021978926776593863039605870561045978812515746110162483813789523675884758226193714716866503350172151202727109369036054293969250758772704747731790824374552064856099830836559229967008357248171027074467970284121338741927013129385560445458192775349849184291226140979403122681777187034735084993839565019056259272237424371079259543002374197434715579330044958530819794721384386096667970873253270133440179147228214622010512755505640725221004109465070747212151230400219335902602446711280249822863137169205846301873190988005868873037043816437112343026190339164566588494253037269577253761569599456708700263996810326001918631071411657233722467235540788547417122149681331941428578872533120611514806944213382022126249265987201864981724397857802673504143127211302847469963152516869545465736940629025468340471841514618535672676160220889718290258988930519399427770029693805339100768555838227277169381342387026927139991516295176038577758293543118885176549752088595307282007589529457125458631938552365016584069060295126097062766848903727917434621574201765326743396141691587234698143974747703709625801534255849344232195418900923188283671220919438924972375900129124196267188598216540667167078607047495574972385016453256276388996764011049888521052701348484358013480403881679960081558765536523951313786052122588820241554372972832576475648123065438941246701816484179989030396742708580670299173676576621041131997015905473228641888146533402116534098944295632722523815664348853885658125850710457048033790156230025395787234281678609561290623552964566030502536636681635007625327354834125584279585362523811675783400146080593673087142234689112227027581599294660019896524988239882662017547650693792453651721631190763777539711093186698226469282717016330980637144013013047740398768913297289002765503949237447337159238123597800536897303140124530050088737676712006696098881729121958272863144073931458265379422548751185944708040699080754199233226724856103615397646424366931634857580247491980167933984910595777240601441240272576279830716154744672174892185476193744841637956316558589325509819316030754719713352325513748278257335774717879482283758090650869982362834921804030416260156051138404932785782107893593395517601221198116152897166717087040181145021612059674934825492129187635312086085493885753464562946985069399456350196956441023375632791281612898324468227697654275606713858765492929195992671597577392846063059180065496219370517148263195495002284728652378095545209979539062570701596624729230895098546270455034838162693829090032279821711461058230193821749209529405553385911924807221607622786900065938237654293125241587525602725233248662300732618733644862914071983514272682505111542743521207617217183732677012484659748397300864828022449313177722242193630789643655058409589551626777107276059208564486151634451088573722587747149357647813990386189514847088001766079275997133780279651792505810454565201371255950196465522755418015192630949603848231050934010869177310603830920801617466919669533304023978693602971607937946467507018317008368290792081238684140312434434500814193255630539231817812059087658498462312598463563530920641085971206491416387898123007309973723947043913032120819205773837354209278323505920328708171075009010819191640211660104039600742960591939002634336159785157398554252845679807026128841712530374075786433154950561985209755949126389633677843351324352384645801775645341856798127305271713030079595531423642056464339343366469265207625409872817280737750013833466893011272884577745317177994922886363702750945085804617458236011941400688165311500652768436590635392175404234608684179704090022084542131575199915002799524146920283297580806592634464253461173863127120447464235244379504487871399298370970806387747635689825084239249807471082377119099419476052981263602455441138454473769420962173847275862903430173822983382306530542566453159732582055953505802937629737401429864173997429988036498769242531268120565933782536206515536527541809115938169181041256096676052646780205384241996027342704997568324083433452006253758677620962242852737890397207746328241643070074051918751621936516929947352482629177803806662427833393463999383945018797052060614719984566073736307068558701347481729187952553457608591558771658791502130673086291515949655778554207867738531526050370502755522118212713003372110198125521925763544851870557102110992118855966212990682146463359028939027730535871281136514833360378129138939923299135203757728170006538289270957120125876979407155870711332201431327450779425707066016311170136372825119870696290608598289587429942614641975888673277813283561736364269625234517057213343919019776386070697611746373473301631807146692665354311448859123508605264377767960028060042061748355644003284812558324088515033050231322543109716475592136335832901176225057216751899432682595424663742245711185646086605636903574007728608141251381408997886631354313193026957202464047276326237954564828136110192970086561992503960725269047278715827478433609438660924896915487480357108032692903881718982648056234523152716211942867598751430361221021755592170009521279885917650320052315189579910299553973329249844604728656182438823349854013450343817785720723674965290371644851417148589424590281297375642841105108234943153273048866368683740949459111362217415144561944855680617303107714459653339642735007965425569287049894586428507832369939536113900555652269324842508108542244284162186542913361175066530639963936185789893455496635795293483900416091721025730330744892784402015695154864850919349868499741143504898599592370911004225038693920495640649446248368303150871265280201137610841885122825642963630250957831248387459124450162956875795813827496178864521279065264136830285373731847147390063105374658843687925719712633939401986796475743062733667207846929817231714303583164604960030985456632157615887617557978777992761861623746426346363878406218195012593773058148803801064958185977640446820354888411652376367937215197247889282107916132132100562889406350519117437454563968271956343572696204529613065346897812031063344904812913569114073053733117896251758261461416385293201358290615418392085465656926029053696752950453168871463332761136488474526745823226786010057300521781058251262473685154241567775579120977851559955616701057975177916903483200369938030150186708912425468485356735228201692993316254866324360389451415094078701538263965052696969107028223129272252788847240638167180578408590221699210758821397452974866166236748762879716297657473630795742208453524573603935651830873877205008469454644701362927302110303935894193119121122234036801232952074002683928740823996663344515176440456420917456779985442444013458943800706946593556651077390347912543477564712319009350807935943488973325748018505489289684835038973293850867415987756580604195677118675581755595966907220076732844725472362651055808491640809336173838011219498136531273466144780353358996458962341440850965770895884750212483447017334100843392835541178940418927169646178017673728859284625329102625701261697183663495638587414402939817237097831601577939882187463339577683190495764082551640874074931967486221094399052991495357212919763322316001231193692656360325075713375557282329391834513218926795300245029811332279019833864347530219396978617660453053069092013204349975945983934474659157850636907749335407374861981229213625287354195294872800747526059847302870028842483334238768228572683785660029819818324026662398892756406462978907040296911357863830469586610560398319021690271750997392750982006776299898305336610306237250085490444891532634601758797864676521615593850610584239758133977820823692388175359633131946941328519560313109862966920025382458191878149279938598865061349825929150323712063996777589012269942125356247577662084025944331524718880028419503213706267956409022521453903392878467333003575299322620241813994037348924738814452336179023448156984436255453403212012502231774757142184321491945421773084439795746698694278196602436601902743027726976771183089009495045716310047928064830735417209400286648445009468282524520670586539931233286183775801906369221603852712569997612515417155765526082815179865109889289759767476149460394525727185356529351796941339325417909128848780517255162657144547715542246053964378820815148124345815617164431943225540733633232034340059914913435932496895325610384722349803665303979402808715828245209038316096779851600315729668591437488699445619227637144145890853633520532916187011339323249458182312411090171787463061889720233847331977526209075170830938263697959025782843069238898584304585708434148745248663147245235505353689530033687000090878450575410668098605179303940842171904492989364107857815297614826014822526752605828359199062715734268769368048630508688978784554980319247686234617680702095140234568743619602258753351219583645873013097976364985339002713924413815030186401005414223319318416642176636935522679631880612659033014374349088359873706472479061071165808433270277232067952425850633555852373771186345427733990807243452136085946744577137162214799237463699317260965160665202553902901966230879712641828230478756510315125416943000473495495195258308671753009685374620306191467389337138474013942463933775073525716642102555622085788120318270675015571086174026095780378639242292569414221047394736667646189598014845805551579288199429955739420777994035054523269270831689403969775276605901927117916449134999858970233134904682866973250768170615054114920376144281526350099082832018412537030456701495209258692751324106668896227261780995747784497728899357745186921234273047681648375059414074716519536064814115915851530197974640103647182111696575185250214558417257497077871891988547118967031298953124736919670267112981295560700761968234641489717444987414531918516453434464288919187428842036684554573651273715951866469553197682346802592188920027185764342127150128631972760949250501383407324620570437526687543047432208748203912775835436196718790750638520966476177470018403913557787629955879074083842331162446302248966265087730911365336553325939458558326814200469960359894900381333626405363531228516942726402019987802213826666523818837086256181478404463748413025031609084496532100796813527992242626289520389923904658489071052618372273843547767962752902577374663388941604177948458749124711862863500063391295053595650532778043912158623609780960261799757770206397792516925369364665753151168997839076487319434945398619207150344418109213757961501104307052589292952057506279136110327984780152390203651465805618588446762366976301515867499040196605240352962700987516907411295371785654611433204464261660127456872834031365303163797149163892889935419504094692835170034274436048461478120372155286576090002377567745469275139298380343792403049411507190978481111354456468359244836895345408009416282106548254803661342266764902725442565501435089624246693225181726915399059468732841635569074788149960246066765392948595075829215906331066387714524799828103086221969196944110652099391377177289454538921807526573021658353884811396079899653657401261267705554264981856610522731604182774573763949617306254835642366229527977476539022099926184432117199008028866601874050750630348827074862788414048255455994874006352344909680861905177281011893160037596105657128606029109807323367857593664098496145532260736386478187623198542691402402408948173791269891644320701994596632541919749506416165711897262767042780629597645993015798831459691451000097859349609821471730453912344047654876850250663121459294095944535395820047295277479072456071204732414087994234699406708434923997328492905873358142138995957564989580317134084702069309408925636451733736008420984313425847071049476567370929910256624284013019792428530462555704196604333912735180993082247414332409270770286959083435964828702429495462711362829730320223135562307947292679612896534305583225118641170353605246248653698166276650689715401285025815088639175099093157332025026951571261280335940957457702822835741232457259691059015532572294283534178443021556082288582735002413237555316419018408714818856145381246442179887372926205312912890868251944170272612066598826124851664235204196804459748991004531391519570215098875296054164491728342385984928239550095050124417390780464239228520596564921988364356990547068105192010150194077505333877124094434954366393575558107323041824821976923382246268050539695363375846450462907057069864455748481660998747942137847139637814937401468506905465049799353272550750251659897912654372666359926335318080265856639318725916854147065592097540973735921267841069226062850799333176542641778284286318983674049614444818451772802450047174664531419627797761100854635590153662570348167088710277332790899039793405574735425418034752855654135725956255041942911517178100889652194198243114228162884546212215402098932297141511838258009383195521446796481608532679419052063042306193305927972517020076501137176276973591401915960691564686015540790831289919262569021056320121067939763128263969243288550223569332999574255975341871012411203426557678245262013388108483035242928081609992494117888682929466920021272422139079598369866684369014953252231949320041096390481124095619613240431852979791368366926728388991309218417619544530322001396713327806331125894522227205084994426115100824319471684836591933775471161021280513957657526862979780053060688266783615838021958333942404381280704482809625337989354302873974025411253674282928726570558484019034638344430511472539168134236575734867160472963827506786821054594352244280549609695434491085277677449897653880681583133723096277209765031782118726071812452600335896604258322634556011144863370601747292435847346170663665885033194178904939613643890136632267150882815437389936889665550695021800490417138718050502926278220022714851893437400201098090708133577391987213632106304883444093425173093583065181940489168457511048494314963450427921748496932563347613547025501941652009452423953050394377928388282662961843192645188678433310484176185400111580006222540702793799912675310503846446764938162682620471323499910539140750673841677913740362299501256076439040275856040830048898088239948252829729768563003520851536193182164461637852542240134538668079915356930889240194808884760683140660181661343655086319931002227843264096347434039301942683649044269656140807366407521529213980687563011497371164913935884153069863876689736989874426993077040619193132140402192265759082754125098378903607771013991217618858362487256243887603926204278289428872008568360663344361241259610895209856191575689528200505314631877503698425173061069522742276256013890592298222473322125566813827146290290810719350675607470003019840704761111431585335646373263566815036995319020075711151082951511652477386640672074845522872754326731301294862061078321600444430203251429936428735117189596814232831378702029094711043775249458617821772831645958887389599670162113409946563605599596679871092743841129904992308850196397693721362089573506331164079356092722074467847804254176832304093353869332200953476680106591588448176142798411333533841924176926779561217490623761055021882846260714605946054260693413326428276029026324248092034758181984965267054709301305099182849973835392699600991950088217348557176970721703868444764329910314060329511995603171565534533398835603151252253136065258331405918546154440708820772840723186380818638652412637724770398075066670597273507796053762722377110480731480818097385726277773088364027160983452856498095118703469368855483451094183563563722047230314366203659152574015278449026553400167938639742414076374142898759732825038969623982676106336256771877984277126582163030995849854724484253798102996706209626758740675676838583401932015091526220519691352533192636579620295171908096262916351995174380677966688943200521005276110292548465210135836608982993820607550286300352011218037115132548012700704339439769990509368133388638843661306350643888032884863493431231832588610568126544216095877783461420966996181524619859740955938487189052017295138425617988779921373505816578218768720427063559661902918629965145434042765350894457282545640960468924367915944587600507390371943033619052274076394727609081207962100446909130101419042265484004280907422880766302723986811822809830716570979512555853613678479955771109017800557573067018569261616019737493647538145739233610668184821964517263335100004812520107740583503601656671087889937985610060415881611846401267102749296892719982024193311804917482568190012326070560416067491066752350141363921583013081043687084015256494570980895201040034300271323671197700690190540353853519700819586847093710951706147952446847280688430194968262363891082340694659678107288871728769168794998836276578377678583084520435137980503865893715722348473057506044655395609455292221380138960398332195854096006835634437603588669970033767296447887800893355806542868804001194263239802413702638951145510465153391738456085740059021062934582700504441641868411389600018667018071117254760759026931800602165733766295666261750862668506685654530801105929809529210267736349516590814950129338414399137924556625860651435477771591967869799299288993903381597301374242211461219607371352205500358887855917457849238970275684240261938598516433826743364749781215030025172263783087817253126666361678788185405027853993201252268273643002340358210398534958708004935324226275163958873998525463638547827540235971068526112017248075938140488332645572853795908064152709710063191542816738566752199191233359097322212159557529868482197629578171809844535783541871287942471424570521010108240430396151820180163698568186254801427517051581483508752485019288211896447184186207359609305339199954051055633882313598209030892335981069641781390175362666045552012993653011518482144104501793236341863390412709713506696524579630705825775941012032725995321674492735643710671361890934691444222428504449974517437331168343786563516139408013549927207920547070724460522930138053063818128466223561432556957021300525553136321250477713052320292155987674005677384687779318846411035835725005357169856484827568350352538670979980713994929307206668060258595558785140937378779680956485604344253662629909843887501672579212474934985917023857827856203749513691141483656505776093265836701575151220422354477916005610056739707019927111592756294271892886511779700235948005407983910918215637006951747835466908043905764510456364123648020755251586354758704127999508143569652148478525603924740606610766421232521674378227886953604169514026074578895043219821923298168784788548441326860323722052321000427352709942774178617312673478640773753735427677041471999927703389420576690531821751333856634478574978550207767115997523665498274983201136539962930430589556600851131858827652654375034032602523073317933117723891365714197087384134026196135192983116951562613789606621832008974748863133161786875125893926325097628506806133533762519036704989176968564372268369134275594463508783976308505015222603313533934698959220418743918556707903558168732904736806475850328553024213672497651308716364464542877840459911884582707850803124855378595558217139888537728752766066284004277249941132815659328650865435585244818866168900234021707357574590766384252200301834787233548159154028133199066284538210213981460159861461887066871989749592226660516142254628441885642722920524906897654642109856167751353634746881233145768797099116039479181265264611072176514289836194823945754098635585688382184824400702637118167307120859475210388196632164500693759934160743453203523070602535155847028611598119601444846174732319507009255831214724276779659438245642988265385515468738016330643628179897312977250517630123647929406711445800693086175540233520512241760150340451163916868792315320389780307039124622286381916887718016096751333218517594771741286641660006685954427722061625200625813159304324361734632184855141018264367750027234989808050896393213003490396172021632325990033389764934249212066977889949543941810355204873413597922816303276043522968485536161772898530979903803370679320771959097809357962361283664678126543792881226483573618798143405090456474119645967348731253780958288038946658942790737972351655556529860309059713878369522839451173279256460046139028410820725345546888915579652905369795764464465857640195051095207571721074094510048083013971301045944408213579716534708958577006153603624954019388240777044142069085959613349298862662749004264241594923285011205201183997008009759690070652309406555696397110341856168634574466174906973211256020787779002346988420021235747721067385385418924683917306915026396825736837689866429169962775624065131824906064078527633953718320107328758134170258175540724485576823563521896811135971853445322266668544943778356684791686688522291446542891287295984829987501879326383041714479516215089131954158084692082161947317758939203645937351591736541666602190692139443940076278982383758617615932786525869055241761016186283428646601961894894621812165787009400007637780288767818840988112564949304096262215457393272268376541166943708093348079579286199967085685441038822270678938840174602824659566264554754506201495388045913048474173231623609680876950467566911587141257497313915229219344337820731137148721745383843219925444138117719321378501101262453729880719424617915042733535524357001439657546222708637697428921663637830351979768333797269914826700900611415233975617946053559975424626105896019585930024136302428068383116929144737512481460283321836303119344489308374050019992855943534351257485712314553453790042067999490467473525212075738160766186900390208598888384784517788173759400318416346392517509056482952461650334229496997699176462688938331455377837123792094458477854536613496312501280373361215472008818732435986245413638459557383669682077838233656890680639505632342555239132023683213929590973002929036455411076014520651451017420017226426385295589005619109802350374715383441301508712221784493203628237193823222591944561000859777807461976692906166124420527180761316194831140484412814415058384186805420971094822505952217211577267710038008371425865049021914488687148847068952913685957100233034714095787832064391601080381424608368562921531366607283024236985250503288887223646909141192506554131791849077149620135306993359071095823227436095064598948694558116803986179372560200688731975968920641613466088076843200883375836615962937444386201398333272694678862563900331912312771140217390302483318357274686583789322456101476460449463892272246945273314296498934381157909092048512982492988203570302656330327770398537839518999925485242556205616111089227435901775993590022556345236173606324797005938113438369044913516273886170672365692657258705716266299140773116266734029066911808412942456297336974819851572938404554161943032961136943944926312124577255986215699964973984172575612104070970572805407935630551279569031651142640875639237887777743139618453469921541744458332923157651959201560406803031345034867735557853428358641755293754904186766837749866870271949879399112782246139222079587377958850255510981476866338658053475266259793132451331979532151550313483357928101131522718448346372410913376090663161905025781534291408277357376840053240633598605950112842730802342631995536793503747550266093048091439764123232312921076699659916175619013584225710969181713718920906734840398356172366196567834327712468583209369535481100629671730608918900476248551816694003105255060522704160214051023210241773533705458275326270226885663194257230984354280137137213814223542229340326677878518550794133666329029140927562270332981111107827269464161194437758651208026703225313547250498531672297676889855421309068779547330459237059210119456915214810952487335592653291270164676403922240570749783880942719103148208264946390747286388539877649034632394859706107444723656457264917407962689024346457223861770404442892040486891194382072979976729832931638137964326142064938987033956573128026024360330289593170714028856700744592521160520180963901565921301437094186292505305940855913655357532575927580371661280067988825814268959330297737590837144350426946428991142026005794219020554843264357632437273341997617601693075927595941936337998604757898592355093784481718758826073909804347328669706100343246110908601240214612068218419850077702119791666596356594263897474068421308614741919933882949379895731212598813249220833095799600482607327162616870148579245246252943650510466001992209327832700786898556854214038813986857661122384979015534671109320557608204121220419412686896203584770377610663592097455210146664444016992448411656911756246836936568665588749725284557216856211992974733237859864348934131811067016278120696092708840203144931683799132679197077329519261196119471662275174592151567790971102732087342726340890906705363022262305674139207527108255368398407363049612827801134858438699267495848132851822991100263800761042898987228756961065886632348406178354295286874444797165363944358043484295485855543071267321110927625294168008483581503955704107996459070962605866808515432618554219826211556401967915528043667655199884585808371555500843392140390732984834098165606323891905816528523901754850457274134616143859365383973877840042888311304889600416914380127192560639099915235614695904425092896258906671680107358826934917251188355753383729039022489971653059313420290551752685141593876879810604542319589046469640805023534768782881842281992497737711730544771489430405042851463208464060267186781299268060762338999757091365305071791431927802188036229423220096989655589694970720953420369171279791304733392928820856058924895868969262847149906141592245708694697121998074124273073958544271737562992702493701729048060156483164708240366241885576105333671869000655582277570365594593795530306287204742268409420810426394124322046990064726878156312231257071746859640912027389615210274982499098042354980557581800993682675300534273962526438942185857123513446323438260811016798699854831648573510243060349571441060661789665870064041122544734806824035159796675176649365401221266853948144671030501322156671517974818512333786766751369803120744020175210482056245342866055641509302729251292377690426117153357630614364133875911537843680304908113651923956906029725721155187951874935065000945281301579856333185700774058398857855700380420440794900567628294744984281083410198485984358360370219235961769414387301821572242099049099485396926725116092487804058004811489158626643091827696372908870905641405329693414011013207463468454079602947687215194805595219176895945070877697418914177221972492700237216135913813431819423538638880044537797416753100019662722467341761089711699288571314228232417769380405602003041504038277839202568062181155449827897277515671748759447023859449860463397534695420183825589133438341953837622420969429873027185104361196165353378169787525440114676708611910253397000593236502958808542001492783239330524813842688888871756082241952674735138866831287920442154141411764258848536283649672278362287289148598320709200153958587167525943540513625586704002879541351575217062549867314607951031164837224074087086554729957837841944897434498464150071204975861976768665542929071964910384162499797909987366271341662217928941696689721253137814099504579518757729692333705754455447111283422629195598120957363010038560882830729410615339283858188663138799804617914871396752240534297194997046733980121537648001895451595705079546981589435573929666614758443567638433582221317947848099953911685341159256332843599594979866670182377602178813308335791072831602660285433094258228275158428853220448327320002277982961894977199229912550301753673011640142811704922371830627114620129128248279454185457126610748370527500758559480055815245124650395691039004873306365357043559320164497942431117656792391165454870717573330104016672884787927351383848163151458972511959262043643242727999196021808128238023031603830314899549704494360014982760666590833655631497244230680417701334364852210368236973883002190537363148505871859696987306558932534488187774531080388876616867140170006106121946867548799898119225443510262451903437753775311466112574254612786914289447936962822281480734706432329693147621663831083558580696156881377627988326279963387534092255989248103203463061558349768828034339430099478463325989469770560028683035472205473060785715691114030943844371388897021432929627547095514368221652002103367118898183999833909709486366343575132333235058685905109039693613711075280665812298198370786476601365157046720429112976299008202059844989692611463915315527196823035017461378024824297023526663043054120312461249515184445451506435366488212509126557924959646088415768735124443286049116406795641379101362535814048587291920151103545901736083486290720916778675648923489543948216382704056919110916489952931908847006826832780217163330607658392066528472169708795707711370531416460300167644923468603164638297548371079826809539291977982602348566776835774868120040032679194452813547987845385337624931119283932761449149310417243190241750341349789036948808200631110308067362015522424296657987287895111993210068847719951281465361328468968571247619960027001114331024797238170693249920153567518567703654753797487325884112205576576159768074677362292710316934497300682170731362550170344561580866473098017342882657555817337664612716425302730611185507764290447169618281498923058663348909461289845821523441049346959800001334369195040080652094917619714147783377885363313091277572219772998732371386408214476497794408821699409771688414122609368052240961658098812164158166969629332580236365937189967717054477352249482100549581218505977591851220885911129174949857068441139112087706413953411758798347344090584851540363950741268177865211020934339741831169621596681310634492452921463636276057620947188210237188375277511817766272947356122124949042134703901796728527101274776051781988518520946040015338269922996173914607210404775311504330076888455102918642803981799754121898134856065078635072220702740920792531013850566747807637833334475268280476842286340430164409077675905216652711772299921856778106777598769681964119409463400393745324729548650036596020125884129947495777759074062343154744072449965900316123873544683491939354739731184808586980798349720108346923823729788132431582869285322502773116504353200557442686714382469999745447672783727263229503779655799837997532149716343488832814477414004256671727916422569883969689236765095342038340929889852474938174120797975405233520817208624504907647331538606886341477851384109789785264658723308686805932458141869117164395319803901250528107079915371064130140314607204324890938438380464410284524544961039159237583656407202439398291885692094033692739770203712853701839562207236016249332982776615034610229781749964970307221066063390289420203548167603684158660244005654501590393876446907496320539578109413579614344787150616909915142555320667759381480739761824405514021694796654545684262501244063583782077549999165480194508999671325495050527745510511376852212630491703744832059039583257258816763216645595581894596865271292898886868938331376249986801676266026062741020948171741785688235162814316533593682455384944897959765546036575726079939068230841591030341340198439316595039578131512847675307004554698124215774614253234841059603443185227230542458329749492195093629525616429585128792135886373140495068073879332281059437383954739562825951412561732774010295114766405944678018559404882358940902374643074517017203281245200903458418420539432669728011740728156563319512435765193191939334276708812253005793682862259898770502874709504733784083115378801650041634204683447562776008008385426935939821814158685766057061802294684996815545126414473321214155606140110668555970603969537637038821416174853612540908183959808750073635128582853696877938906872029322168551255895507808822471242083908520511425857234576206569522150893493311228695801092794101258226653842498341826816420148416473388784831839778707991653493808070419190771925035004401530801440785086217756568132031281375837295347977915549018595117597261873807562337941903667878897267657524020429617430781425838562997899775938566058314581393190470770677419169130083859164069591430547552574509842487813365585120542322904567467705872301831197347743889318492004064139484941863698254187650084078399894484442651666643700981924186495472459623746201614309183100027105582079882673803949745126187113685275117103417712477915612159183303155047567322220410564436414674615476090203440531063188414869246655629948463377817934318679296876965770536288216081967796784090817797406633092206760459415585003196495587716781419304057723567791158973410838296747677460657799002503382021933189793927755259569017742402167626838289708555707622130810912882716524634228561810290086187574343681799930551119309254840392170368520008335659764682306814455117087965234403625535769240666351753684582148046563890744490683507524247684796467701914818598985569326115361262788731752810976463199614634555244784994482589031880685315614361571299997284679656104816581728296818009486767703970675300714632067863343984959620552482630975943904924465643359877183014545553005815245296006351726104128925976569557861947465343961347377536880820603037217667454079659181913774557479282723726488506338560965639402748319197448234025189127274525443624105767773807336800421573768848895992199017929964066719313825044042852298920172235975759961587742692755142180885459042909408073513929958548163489829203164585436238739900462754334790394695345273765857178863574919443428207647238060563106018818736495212963541221254632946597425093189534067844147059987752743040891375389158791920383609117191298907662752833104639525122824272372704613964972775265577306482908194139292217761424014451135437858795983494292935169468792425164612522865250383763660523118819853697886401380660622615418153301834626916573718136014685272698230407493339074955106899225986620986931332655710217694510290823532784529662826750312650133985591108032985946244208770867652561465171633346230774803072012361631735536956881652976394453280616750841941836137839286106767031138637949730128805949473414606965519413544633498161077924621475423970736454650180465541766142226658343778946995330879809534588951052592671228731709973639085784077863693373991636329202635137183100842453984414160273391463106336387052231110627557532771076839501932079319594971966209097234288150644514884537434713876721242906902442839660272419623790056913820931653884342553713924596096534184977394042507372413811745630765731813727478594390838555712065589913421612120797862211020485599474235422114432187961139997167351600609625224006571884952851419347755037768948383100741418356837701241695011817470671628236844689111467165202804007953130758907058998152692184390702574720412279860374210922179915212837102666088160461312059103340788284807590594318701369799394944465995129534620798774152805724552135389251475586325325973148798545829026917938378296661789549734933224947909472297993079571261015163033337900574187573901906769775019276965890796863536304331888297036984579627964082873288883583014383452412782239371417517486443966025928493432164023136944877279554173040490320624770314187045499678910846824801983475367654097298244396977528187264586293366419024001176887449271035799143254331235697179146064525719851067582513398380173119858058706363828102248943267236851696451422142077036479183318935220040953250062696303712886810437394860584577840646425025985762232586064345590550754056152135477914368889159227828195299276244275303915365858760878084131458927302082870089164811365781377424841203616029025568644664402496575058791020163383376329968156978067921013095185600248086148500720665738635436622902771326790692545557535382725894431143092156778640202757443748579796094837943465996121397593624166503751894049434747076908272665561840290653856188088265960903143895637777203711276950647312365159088149833131908509433268330488185199538921701490643577365370131461760518036506455496916724519814371543208640752786519157202672151050482727030196901634822359879885526943386516149009635945712729346526870096034277287373496272838731089657696098190028117705634874344963680845205397160822563544883631154995703576488077046184249156410857515642524691702308342798908922419710277269054893783797101451323528767112876824888859408359553166707058307622247699381901332977724646183658033451118217982311355450983323251200519003925314270042908980129317653234311915476521762750388065397683312377391506559494620256015240056893395366833454225932920725466394539608937894715552529830814544479933660333180653757872201490697321043289027114538453248908939308670757604341373741305389829419295119271286988908511763223599112263167820887321012604386083469021210338785624767150412689076114089023396369904925295844911994979210533294305535029400160042990591139117919748566292371937513360510372984828078603101280532830104402286446803606933129002828609175735595063046732510723314822481124507968078243681251818675891258459479412862782000769012860162008987150813222767658084779706265295451939049365207563425549171689295692414345993361185147988500267195060654602945376155202105689137238358911135656219846285816900890562128580485834847298177995815538271287465408713215913237372824488949878220380243561663220943412849099395488136367402237452946395031661206908821510667256760691313109325908914467584817480611802360891439863370622891869402199538470898455964773854303953729236939422286524029933526241353921057393641624558339856818832361687843346236236494869263136935824169994321320672173895833588939076022667140130113883299197044100393120390713570620110607667839333206194690577858897432828497123829705862040739152175401921413796104849594762991275528815566701027499837578489961014939044387508171847153915998146302976821028645449919604020516768116810954338222293721322928391596711132710127854000153017602684774021893492734115809263974299409876428850833104994262002335747129986519243743805132604628604723852327272105261327812421101343211481992007211838795396275019150700655779165360877975498687208842400418512066638775870839299978908195795091964786608732474591204185621463675372967036743061278990428440120295832537343768790897726765246757022843757198438514567900816808755461126505504188376899434760191202417860781241386266206091336837199600556690017183294172604105650723461169756693100240490794603621840170590678680866611696347949031411776546554665817474731648512247705361782705845515719700636817942622298998284869039217770286719164667064808554287418955200542545201075667431121162902500361449314211370923674074577140373294707857213614186845878691865890733418458927008669891364713199838292886851509009472054884158288171449697486696432747323493752103769072781923969480273105501396769812474701747028622105007657048117136989557776391927083467473393756469201150761334568508495770491007731926945091990232112529145728097606886066575006302186787437915003917038820649406944590388671981902437282947019815875235749876737465017517318730920267878602984346988842953459122350667833183293315000625664206989203586483534209937886264208246832862619601029914396751045627604729506126597263514715622106990224288061947716438128414159917288937513617456276716053619999173038263623274124989767759357653314111271829706827914200656540725928381339920894906499362880072124773217746915826864205910054363393881572223561944719021171654290603869876539979867182957840098526702618524619016826079550159506913558975461818212391852601852088914673619894480628633750393648477903886721851131929330624597798305263829814807336084581180198946156292498106632337927882986613699621281970638509439751331446280170738468398357084527154428204510904405766131487278817831505604749691921696919357724731370854595562380493751531896097595472239969906517481851420967050785956721865605491042038068838106809096799518274533193962635377445434221130366900561377973724345633372097845421228753321293808049638156710259454913171089829172958925484232975580458677674773900406862879126148269320841673899959396439066685205725161468949320382811144207911217274124085396596228582777100012417070640454749185312595965744465953521365151817669056293728497728920318017778219279509685034914063238990343349216353034455783807157702766130488514461280934461749931095276972029873970320925946365422713419250823950948911592957251147376384105367391060079123846494473209897455622601793538584393134396144012771788536585619615834248996295694642164045990937617285595642117635371396081979343091041566325249434351062744189702704803060286853205597329272971440766396393271263206641466700298650963661340186589638403340620377960883006741093118951529517238017703173502349957912576782250805031093921382064097346199639824983487332119616879500279154130517584226653239345287459016205528582092246916254862402268830823083773818129324731757575933346044501311614452308303324929241971547554116832099238329998214112590916177426803408002148770451974985763567860831417585467721610013331342080923433541203554703696127112697730086799896245521414141179325302233954069612989399371708911483931716743866718930283350912135939362158904198021144564660590119431053401884792773108789106751749613164982685414795056879690652826319847153066185263785005095718566654141664189018178878783153938307337452739653436565996575270517204910600096216348378734330260240302979570127472125314324606486703042216571823788826207772042998769278903843476184627908285404251035974764606732752522100965662135642099801183679458955895038658431738099666744284713828636989674341534104457406233853839278502831736458734971577993060201517318561619344754745409588977555576970277649078265581709286397074973826608628366934376819689536626339006572496016350239281780673190331642076358831312444272529306832494977706729423997651353710552247480664775899842843344266966937277891597527845722603919861965405190145374502186300059586765948192339515834613193781265891246479146998575239409645645506660905726642179394464158735731827470066617735957740077779145118115614037810231118155022249534233022160685323001315198070516722994243563514425877667582741345479373384780315634612414716118480484070679898645344142737032984158191770207931425613031163485204296031960578463065999888598030686457343124982359257727827624947068329873558317758803357911623075031401930540025483050462719140465664116715678865534084705304895646438462779951544218050836873217509374686087443989317905355798704219583985510131569334828136698120180898273694705799533453593588942884402786037962758697387566150821651051370126447722715006689800917848499518268881281953617585035642537343839386446090185677006010861572104893685732924072037136988684069682640500693075372487559214427991213070303734794169005413191972604977998260818872693810786485940114481272617750918484286233693310353066951351810969169172260770111252884769740173286413699890938116604301712594277255157603091300252975619127438558395298957744265555964608908324618089384282886062886651157363672898098685685221027531345216111657114064585493184646862318658426982361109553089827102606177619568283464381794264576139141515343454653820882344216397346210016087543354200240774526639394210719834423700554681263890208889638334914096810258855080984949764561284551684026187217149418357926706565964712460327435718941422424009199468509005672517241669192726891447883656222125282026852936505242353986032143015357966798713978682622126962024629814357415338459898045630203177553158138889675862536303581596402862554939367865793955571977927517651768825590676266167830109911034926463259088170244435923352115370815734514946098224393130054266864429310511481441627537791902765623000101186772121307116053228642804336762264204219047644494405231713349114700480663172802915603590764442719414869335531418055914113083132572891448119098599984344298674199467283106287712588466550452694884032236603247556855442208856386610621832328689617374449319332929627588154166638291870576711098609971184612814458559182078938943137334382685987055602594783366266152685559185144214616432238451427327016619979111851933280912999960014723497918926701205004740437280559755436176429370182913822803021539123722659509576774442834235567606917502246711321480787242432118159083697272411508825017553932170379838203936291260218118734661652283309140778775284126403549193977733262126542410334041728881366234778930019335994406383215774379739192562840950757263269185272741664219905781616110125079826368875239113727089635703595928691255839752170494252732508806128753273119050616193970250846870484014575998126658803192106844335249069102909947691432352715253851334725459086462919690628420758866120185839671795576618035409622824129163545499516314590116903909945168080385437569717647973686220384666828049886080188741491780285005013385736899613662084611737287050686939691469154613704531609439830698858193699350893599167926132220044534224900179389288909112987425710563687968753938441075986838577215894387290139942399816394410982061957250654666323830586759464064120031963667143896650009888133205007444951011286776357847821027634122583168232304831980499760879814733295038165598642820354637835437643127480121545570772781182668948411098135503248232903143661694515931213334062403017102268124826670691360870473751712419621179553782875061077869337215982214973330409988361837449712005792222607023087865190976983033416622993852568561853269396427192965921887614419725233325035903686739767454122346234802342497517619267268421651198398526479021870505945636474616578108934364824412041920523602173273291619794443309822511693163458456852492787634348315526750485559814886751508478440359956121436862052890671041213949448012791472026984159756252463184617109837003105704249267936218457744261359016836638730642076082966072248149238204099089788873420947330744862803383207554162100910741299506256022219790586065233343234729334906849124122960948630657246288760922922044713597879963671412360844605753828386730089315002780993865889920098752705756257448858117363564031970138948386263853304321648504499563140803849110417735793067111799552066919988319362673847305248153304236436798655735702642644495177324259245722991500478257269502789080217541873771460120499912787820699234055919655654648123545368925670984395033765334338403351247422674833028258140704502059638476058930583340168995695512794478417007901007612580314939429632280969795443273642257703602184241619482785562528865059560454562637146348890402652493303247348236689938999641052646794332163529378030613397340271378279788963763884752166299850006261061958744569562347269402331073980127043522631049835550094595591285148990351958815465445756262748121578096872282933712023137260590813188487267102402825139317515011605674364871781892201929089715913864526649745254597881936517766105198657832757441906767001885160638756836938902868020760181190795332779451485510738218357189624532115919319241771240834628649815075165384984913344281139847383093552062589668564108236100929061378513870289782002573180352293828069996280471666681180912466482066349061763178625023948524598648183320006346612851933431801359492973857264307279604612961817205141236948121927642449820456904949855837146083744835534133522804696849438563441684880360748772933085771629152653766750852021379741289155222215277321612655274861895641566475848595938431751403462250199311995943966145338009136341048288981799811390926850276934706985975635580349179169225216564455640986354809021864573970677799247322461901375821218628909700146359042989339736914322261916400491621262762997782075328566726547061473976462306531893704352998979888474317016946261876674784205870283481582196222750378994672584188134921317633238106461749399361137799928017610921789413708429860025834338981437077065205797275515051871530179976910451166165335498243811296882214249178871634997410757850743548643302759676156366143112314884303629178815948110356864748675739815802092646270936070158599219266075892171155727728865632972429599274005489600619721988958195118002709277738493524916916752097316355354802263514772774144391290705989520540530782631002133810551718262945896979095013711624745889595091118934926987004659282934972318045263024663519002895467819171022522372033301160446313779505124104535729455846814938365802885578699188172089264795433494148813765416786046327390392455772818977617004874653936557009611443877143298172855807176507864650471903694946029568474026699907114821926314882192119101075461095732000113665698805883237827601487379869287930937117384476844537256630574968068984222615737810667941660044047364672008681119953737054208718794681950721416352817187674577358827804618527048175015994834763255590425257385740381422749427783332794454697304781362406811330531742771286821217392644267569389163643105057453228814671487378684130176673438065457496060129352005568114435647354930072264559692826986802674874071552613348299504640580759318268282910915976537856455656572185469863532018765080831820962871178193575894027875087487138801539489672835682856592608086538531321779806135700472293937301944022436592541407634865200833113362044504384414987842417761219016968057999124728474715404155010334941641218209065365857953916947752327276772826128381866635459970066766379958789590960522763093312525833515851974754594276721438245005845538845683133007910555256952416410219666714469607133538097573553328977187449603757143631139220241217559183706436999641787158161582271100603059202748321632395523182581927300291329637146664377593899157532097176636522176086460052485528015463999567624271678782376355762745228978556091516319295704919695801022470633731256719049817757184009977599132203344385769851814016859836597278008235895240278771668438428888278275067060293815216156766095016310232580196572614364737437263431111176768826263699977600173774424539512849731361734931103604770916254939519779397917220607515991023683422502015805468650419984453886830707327426474898443550985523244478237494592812922997769217168141058348239653641258504466919373508934487534812327368178861422036035217032976072830884977735052340442379737616480387843134366659937928742098410728900063994214682102464533820637639325566820015686644317494488618687313083048965304919954743968413433247338975375245273549269705091345051166093975288617820156636449894497137301222514651559212200383151573988533999616543843270079912105102805657391330298575209573712500954941103983545159313251753103620203779009279444814467942918701618497328504452917213333060346453481936041908471416904244104163518937190879589006237219000833762079590458962419011069959844094499645779603299208306758810512833303094361239605502668248326479728859761161731990336717354248432553371967447991085049950284142328221448490247597144029053782944115906773296662376083234610273874019750089191923682072402430632585460270785882962279012130313767803714687468661989514993491297488515095002298035407283423854324508380801953717244849354178214044392348627642073941876119649746251519305011504982377457003101108570309818404058064008245950941178245697957251864252241357656242371864090334897402459255835542266410173165737555199586670927259229466269374794377356936636428931937811229185712263072596273403176681168302209096532913180923835970491959339070239956681520813366580693131629901483357946842573808456103634644762764569526755551892089328254185117881017814487049003348360118341569634980928497755520719679168539005830670469060631951763214777246353602679893706498755832659756771572657196279249231985605153538069284130468262916893388086332574214480122683353420964871093260029071308504494584302648968897528378025874933283198308115102605325819040800987726144152384610597737810659100468796154496067817890850381751376022686863097302376445109536347261946192604974152918819681824272246790912245682510031421706222942312715696079328934921880669371493047773846488526955349140503420124653041967016855503697673926027224391920437593046212422705190261684790994956531621987226195840095533716658146824783702476968001601040369090132954057041216532089125229932940972199368457355973802308064126915803963249973955576527726785764371173842766086814355702304693748845018846027105012399942633300693648097965990756792792947541926542094167716893206580555482722549551108327423831732682240677450528405590925699049499423158583840867016526636101200921974588612434201584468117264817545683301442833380561830228944880029491901169563185502531620031293590966036650123650132762274826845237781534931804847341820673385117501310721804362773107390907024617573143652583114337059431946327154194406684427911442887504452431086370041464875168210064774145080485281743999556591415232083164423058183679382594319959141345806405875219052324710600370628825910967547910648322507170585967499739744939398130183860277113435966343801918772973548814792602165565629843022883745626696364052333983006599199465899439690753033648055596833091662572933299975854584667724660463938825321695532634987976731089608046327296356373898525205338030359817091826440027416725776459071132965489370141041896315398833335084354996377570377936792076850968807043603784744246930469567275913461718190390853968728292055432085964735035128600798903986849389796833237734096986584844102175240818410971043791977808938655558424488991072053338422032014163273984842158949096346170799477972316752655857312740279546299145552865490477084429462828266388591530162421407189162786085247108611757374550837859196057367829437951975221146946721613485659977066635003895492237739752124871069553113938968962856079629590059287015622005308409598528614977165371491080291578470834718843915773182330431584163418121847938268891757736170422303688093410606542596955933855789345536426331281441680008702885545355782472629749603294529024038706589814078514796660089540467848279563498095849367819545473559710891069762332082691735277884091339355306767949611849127345858858258468189043980727425848798298875428484026337009275495385555511359757371986277619431815921226350796012731217238572079443082113600600156003104649662307197064200472655786056308089789241582662670905895434636378087191710949206518887373465095246894576126341200886916577250137703546463583370616962521318436902588927256174087691102794044478335469645528640893383350036542222097658457275759373509797501588600587945984734792546085753131524251697339868082018551430190046665633818191615490828606472425785259911220573033481401726324023195595077940619944880312676588846108361425833377489050205239251336095666210010752153620698722052630130307750630701470611467351681921246889967103803150711885096303678564328589693047263543102624726292814758420428918543778012948347325799590900559333105771182560779851383574772433656367399822280555451622137134000073786199384833225917124638200501674859443820618528057841881376731258711271428259297215341737514106166274872663723155136334632298209937990779081684283672864060811853578693328218969981215375432826609986716150818711542179700723146154315910679077828368219279645951151812010741315498261110059652985135638753873414877144550523188530493331292572435340870981237719157527506879022821596834744976376798056898199046043702944336824804850374396752140945650165045465816269621773590036565064639249961607802331718455588435629933482250223073109758949271941302723107257373828667110118624111521267043807996555777073011914681322808647264954050944110509364105086471591016419218288091773960775961064359247403935824337472143549318706273776455177976123409863849765611393940192719372906148576185881460414375155781524161752704698357948884095750488284097413922069335532642734230559277738738844759939160183429974162376589024067779445481481730841293405999720904505038783450172161145945861161130713978003794900135227536456449627540698809514091874652407913205118912346376189612782789802275269965932542702742218145811651989782010167181977352933190786184060069915489361012378906726959906783497564007311766951798068895224884664160539890741299157528313080639251795811655818745985459592912981889944080787422966120444793672888134827241098188436672101447588779567597526292045487268485569111233116529901729239857931503185692313802238766125774718099170766539570387917491533818097083009719394288121321733981364235063515779108309387466112551086811617818952918720308295614403505968736276904466335205334130796652338609156623587779972722985194199339095800747630427407600585597873094142951392400111202615169551193664269139138256315827520392566163427363691278889129492161127438581840849726691364481402509076644668754603942854065494585388075797642314958184779715902685165534639535184957110892909122024682866189899517958312286927193186836611115305548007098860720192128043394035632794053550348536796731668790094968932220516607347383792895392331019191252269981021122868824724698455402714424533425718007409330384657171484028629140061890222236367200789963030001617433367409683595647189989679987332005999964281426730042234700692362029163183378294663997618004546192348801586418658065353758145338759928646258639421155966187397361513793260705196151032899454857144077050858785772632749337760885032324886645229371495881014008623589905742946187343926656734677531506227419434523956382499195147332401377107740793117622590215755754764101965005057234437610232786838422744438911034496317954345280416459968054426102473278176448332099113073345952995029462647691197800754170448600400814615267710208224560535720292795792273066803881965564433235446560996571699891126934681024830070680285386375257646981439481574224347188184168078512055106264179776669141992569147278915032423103874030264336724419108022431864336570360552867468845944681384663867560073111675805160544674414057250105463133717158051392538964109984992190311182385288043513222222369144059435716499574111360332732984610793494312302135814514180724521476506733593145362365920061051698273434673016470697494402704881902479540315097972446093398768451197130307075792721426368446860710517994529100662594517576010700291940576660275755715533093573570224904495354233676805836951395362222520256517310931410723180751377213478253168664972430097556565400226395989990937501433471400738174778299596906013240942845938800483185903321347356694059478623291465739225722113626823310144098696797155414711661887119910334621487835213719432357694052686791588017929416970697019429284790377468139007438417559111969052968633321438757075325931427364969095829982371247488013090738965726453326441858206118584183924573388369357759997170180519091890832793346046244704150650611642457311505996801859451833377441766565983559231073833672327460765059220900004008876042178677769078759005367513238914609686526488244737071092157536882916726515069348734202321969307168320095118491200810804283039718535024266299709006766741117119379686211490263587086810393384065876581508960080949247204098773821949673745518807599807472758721296822233036733314343763132061452074185198814618567763161558497554355075151532848068518595453381416354502026342409508612980934572113982560275483862077245333951402762555247668351519191617919035911511737385319623548571359465022221451391158272246237386791224741257018877493708091977546689988546008492951226384419561072403330399529037027251762023412422861850896027308949277577553276548522775836500123939688384060877430519568827130421120308796770567713728928620529516144691143909893041324499289654437582832147267680771699417732016929196516960029676547926305695604650141551151154708504390987185797600918849487445090031324261486922872834230199316649222415045588642060716074802513390721556834618685359848934542481937119785186495005659961883380073610016223461790177816885481231425365332829178076264894693864726193894408727402277278856408871196395487857682453007772509384157560706455161072115371610575673932124788731866154278175674023763241702756409142799678423664270380913413842994997887590010034890043865224528374258485864278518513489245182316215298667871657557640358542038273318514708750819438809180899858362635858897845927216596726765591875422721113803010713301283682188375667131627158191896891521267180127823809313878917911605816040662568679742631702502710513852969961151766565255165000398236677866364176502046128792488665730621213949348535602853966782687312761370745076822477281560982231286488241189742906970369032453009717738627844583934435651528484438465687899654212480941923379547389075968400981025381033201699056549544875299097041671567676725287899134574701673289530083588683086301036076193631172562923738130891959405941740830753535183753030291362655016739735209197157754744452670579465258202276183752669652112460570992267686256436777237789383407891593151868294040472326946934241762526761520309188169214395166609677418746878229570099840645451594108300470116441301026037064234622229176669177610729973145144307372546621746752779971794981637598830500453639651387687001815002355546979578398959612972598307990191599265860370331015330314188859611436232106925145061425356017101779949853395394040668951458530330776297280944097297438498447349473904948069270113069831256721951423664334781608817814641589363460777385195281797055599210670494886441945461469013792563668151735608545620684040447831129611558955586342617151660414661256196446707799525589545915036798212272843069473663861379379547890208537579775671754440440478698668901825165559743239124819771941387635871742601432168373227220672493760467674822883932356228019245450896271697275942696936966135239193652771563199546647866113934306691569630454793995899608239341820354355870846225362261762626426292361077447040758536738403807590904839977465170165725408204743213758169186925528388460052344703320812984970003759886192903674951191719211352185038552514045656883220716385395308187130091770187285760616676242892955683973525316401557184996162469795819957975043374196189716664746340328978555820367826848958677676350614354445292579136803770380852171679852748517417588952818295878624170006430877115351774420474849475898662868404300269050285505363618116925148715454355529355798522886402630217896895002321119051490154438102120471202147662205482123126635882227596510535547374735766130990155888260196667045223603493815856249403013399809306488101536546738566844322407113455740761607882747335601065752666649747471470416805167529169754434037690535356825371745318112246020432319856819172782235404594182593708863248725682339828195582389495353432965937983127135352336663139315177537813062464726748874161016450011863649274164420671679683565716223695844080624188440977524457761885301251675316128184471724541192055360526697531202372217027442560700865967684684583760660219794561833894660405433865908403525585735964597906822731062974220186848101633389366362168613836010952299000905621962853614507631650047509974962544657949301012630010392155204328149547313577595343604106050937994181593134404520006261304624702577797208353437925687058891158575254560270955924526873217841869754144392941211850724239084425053881139851238125081977887922552931744196666212581700155268585984980448176014231180954752944728191215666795194530700508470189961106380815213308090351488244927724711745042410211727492054423647532486392190216455869994867334230207399596038476683682606102750138504763799044961725387036203420261080896772898181536172499143768340312725188744143942825778416820576094193081625291467129813055741934200590505912472719323985034285286642272847904374630862224102456776791831342116029751074731055765939878716571246658320542522780838049653519162862519902193755135382254960989080192851091508119904284114241595213059636314506408493088780472871869885755977453048738503916966079367222119554770837741412046583278605440866636286105096038316737367281123521297750864894634004284657483589539269445748168594544899224890229679134445190573664319087401352766515429731291351332923567190864628768281682908940644812771060043119927252943212697253572246264688040215980857804409000156786010609456417562075699463838370454544547207761842717823250612905170959158047661375890736645398034787921858283128932532148824686927725902214430687280681256223520145430035328258027279107770611778808230789569139461897409236531389901718346678928683177399613111262460597383945904089258747049966516150260063987711729438920057402926128813723001290655765711813286343243646888455918682894684809393346660068914840650057653465228986673282567524344176025297957472969861939332978607491893842559286716894711382886559240140896397086986033542730758091675387782098451172816210172690600797311640968830453984815069552442047536200408112162063230376831124386603639224678978467943958427728721840668252030418396608077714865604948525444450356943142427514313017237697646083826983604827770377388499859308138861367155625369168220936351239233915474813471385372826401552697424559138506536724163747037467330312859058935923746658079668872928232052415316353656564794600335467730592817960933933652807110932264369632044070261560119597514503332444019795938193813506635474812576436618282159503263785478849430121836714616073841601317158844889933775069428393711647607371312219988849269286941394286366456807790265537013193967620152825139115341231651300264861736567989687664582588596886290540557591826574558821578092667655965376033789955563862380408947266075655702250093125908942569116014235379685810195323928551590390776987578804931528281747011648404199255240523583790138197469725904757404937893547487486517773203066991872699391382127417238489499903638149045582052392905761468614226089215775482010606010109752424645883079904407233670169748502641277975892675139120033483371873178593332261890775038593821098187527547579754806429875591855014931480380235700705374328850967403875238022577756385866261581648916107547927195387598550857992822171701407135856930481333812111691362514441153420981458530185713636441442338617346602513783946428494405694254476236483169897722963904068098534679697010775372612784005628045212294171416438743918084790945747691318598757773913859414767238835509400357184106143841751471232191364144188474863697851435219484229545802464423770231175895781578130219472967226166848790526132901772433082911871336260147741542253357547964750389053790459190019542420361839267403308931628625932869432216099648916822626801250801977193092419517624264525098513562841961182101804213574843675678772978267899420603554244614796914704258534261791170320116513838677593857797534178172022888785948482997928538347843234691083205465861694186633146838544858030116957247532531537451638885185439948177088003603759691486691027109939305865828610988206815350839419327623770853463968109024166101933337766021955841140932561922103649767546141311217188492959915636260595604510006433372416861002113380827528527152742857120736263393144029464829401918443799400637808408565893842328847504900248675924684502631393941559003072091848469712603590982520712359074462802897626187959865941067300022178689738279944544499349506866074772802750769893981196297234151434934817267291850711447524363413241977080307927815584288634513387623728217971572145995323876448781241019943920861249688012538467484170797839378624995126009744019119913336871444362818103144368137017249073354000571056601260399658313573010532929821484103992675334262714411277513755694194667255930484329853818704879035055398442073595499274224958104520878780756200800491738895926750099598213313513714913951777978796220848021921739926446689098713717258325423935084850031598101199569455091964483094677353481934353101897089972652933272999483068385162732498385786382271751425596505159512435678027579439772428106457389174427305459678663068861178135780001772530806650206267049187866861483371346378623532833101310159660763335707983887792754141619233600091658092548155638808935902379426597621420197981781549129452615937923320621898902232316926516260030692943288200331656446997399363149948293834807955839088036885725218900714335527459032209615409346705334464271313570960963432723631802373235734137348124127130565258037286731276753786989916230189111320522124322014647062871856571560244242186368179406806664410385804462310621243096594920272020833911628277279905238615140717083504506060850431243690721390364349054194869266554084328285340253739666057529490899361486130693631125334086265652748753976009231416903374607990940375667040303712227125599036548271532312614255040937244672302115509523448545834410454350558433279522163133550671832299815682460734739157604538708680656724042203247048127118204054714667063663250860948117384774833673114113222545908620762008426185483556721912521731437083454936860769482449472939799013522701627840619773871559973927546963781727469620434557379671808790284217661088123300792868919611331623672697343095243130510425378705722926675485285715335541293735506915922261888010480975463708032844909759367168298375360434433343484628358948080810733224918240728638334659099448163455167935398471287279689287096958751797792394624006195443166837858511252579508743567648035834187328877288899528135034875350695194247903412386083213418097936695917082611717330301980789656032490534734101220356519576676620656866687778687856596968745152316604845657746223052619715515575511424952794384007644091461015530594523270111955845098609362019114112253361224350576984348601141911941688452276738400530440579889656135805406427510573055102524165838405743375446124690453231380296821705283794756777416836177468699194965836458701916211124229602706998299226021726725208620535779946077655436155865378290207987645876968729696091493230883505578864314663130169605591584695212175662189503863902405201378940392814266236029791669027999053679662569552337553046218352176160881383596749011200201349118026502110142812010767035944268185509728098852740222507564641188600952594118248133773799371357510036856093491924070282510904216618978771191275582400762420944403275506717241332668300748834904842981606015972080524946802263556138133700655844318185906206788153344650168507359680879851929304058856167375411058032806312497030630122489949938445250747694673481898725986492974545070102449955930859867778280453381511079263886921234320108879212306051675950420200235393171368700418355959835923881026458135539249192154149931974424473418866463366858592430386504096447137058418107813970065621201409119708325172973144724331290929922985143675696469683603995595798527626633926073150214137973597191069206363477376521897596036851020281494517634300475415933660751893393688626720177073418813273717294422162899761526540025413960010006186131748010814475724323678259185009777258876341092640679444301784212343984221659571548503375890902019168233847246723038630822832581957902305620575605189712649119838558954542365173723135477936187505556052569857999520503234327947400089874225889538016015247368977710646542384194413403997410464967366745950175885637455282947226690284864911396675781336273662946868103876444939465058835961643827272398493609560014182181108054796193233709857273295293998451821959760709972591979955975286586987955094604097187516320013443041375048290927274819493082797567402302910364655975689970245352391683085871655032613321030004500321004598636553045460175281143107119995875987635753359022193479700527402482831790126971427648102026580881483957841548120533406545394307779825221266872837185756327848814268852080183892101508527371149709905897593878650337686238648956077431403003442001080503409908377979298112743318529090419596638555162782134060998763223389866502134289462776818237145624464579200987602953536403220657862528840417819833069136590756155771786240354948099442361099922996807925842413958526214834202408308423996791834772235888288299804392115472207678357806230948063912522489833482429968201067182747924343943816337634627507051497387468676267427215464883211330514699614075592638061746839683043791563155152916858182838742299940021487483485681139161083550668415455206642024012039561275380813277820249697051237011419500538026388995475121114460465921595235069075169317403379535466122228628209142009661744938979974076772970799340066190180151990635139264286942616557220119573604902107548844032189567836606542618824125918871241740377215984892533940412279086848876751118996129414485258907142522509455717755512323139846207130201103917829017269402046406585734676869441240502270117829800457854282324637912656437822000871523330854180352126902122441404685775113946324766446574052749236691702151660240362168963883466158581642385066419284094477444119145560155250608097255121899924367626806087300415112549498557963689239175169038950761207015758247608515542895885264562005250896594260406732669339242546607376900634417792230166784223926470129211536870330954742731823334091355176915479371164504234268240723502624307520905176023081645052478866807475573398807432722075510300351353437895491655159165504721560646331418141838388143501905630082195093693734315854148554601492775200794707318661259176665064754850640744894122791475905795466553853242243434488315372877285333764254527865269770221898876940624161934596333365984905049246605249685982539146647004728934187088306640599494391659869705437703319780750037813762099983987507729428244658855699423888575933988253308257175488057805551643473441871091575547209019603171664226169565655547678055835592587748797383984689303320304302696193158009416102244734968117497012154414907906952268105547677633718007957211305307489782422289356525818858582417696556433440205507576051426939761952480197756192267530283073353834726307058467482140255977723005720545886586901017854916513824039643701591217300559813049364820351781997181290458904584741631161733810313496036166717779620313958411760182739618997773397697578282537969462775385865077198670304358747940478317745911911624268139850255985654914050380065760006743709250238065152875518502013480412791756404700049505390325864487203233422339983872764825798211051116538285986339764546707731741736973289613156573648588229113363755498158927926100008789409027451425591388421176758995108323747667109758806471235423470730475246308852466050030925785959904590675400307397757557413634814017405566198236908496034431998284863650641141504858832568574327639070398204729675644807993399219855396947318200917741040361550080642633344128629772262286671861378003346853913654916297808363434101424899231314618629603752634970618367222637949484598609110068607524123099063460443202686247654753388917240384732525314038781091932492902996875260093027512658548754398531272466989210547110836720550267947840779993878488090531228877770150851966673997342713203550304657777154189083437696263679331871725932219213403776544369595193962687354440885320929944336052625507178414284855972008603282377846093871704518878624687602106327957345434650614801579335626331955121471205268971317753025307009379620096647658716102684461195472903660853282154199085061991513198612710988519898523036948514359195241859216952091179858972591686252835967119212208481207187554202760168277306228576042899152951515894344797861609824834835517790099251406487228163597786546611626727223055171249212639526810938690592123733679452706780347082394872485000673055790887539052970662731227105258870438175128499014413963830421903765115538342644719800433079125467101162152708986056443800706723255974843447955149533428529602181408403219093403657472022319218424048384440843457157213501210881521763151256473121299138618722878017623720434434197458020368005255630331765835169742077182824427019933112830758386175713720984541927648359462146826989518970968163807013441552185260764474457170696620486359997904773108299407145105555126454072618409977592539147934372496143974513599061231805146375710460591712041511373271971430023873935309181755224725852826761156352744703985765969684375889543591455230724693780095174170464579357887082548559820629555833930933587243333144835897238836101860169014580765425923314763115573507568442661054878140691732741346056933240203731732932943064766218991728892313736080460874596747452678207912483458604505672781727534995511686737192594001769580873831188277148739728830689050601939353980335185552106977368662023103223826241881260254108054527683053511163120004416180460624788220085725120317286198382902501576242165170608742314581460653878951538431362684170686607843959991048667837367871108011524576271032229384894081161653105580048857136264532262453013520772269992995303877868882367808689379011692693458812950904742965166464196626286116679695441887274870463368489764834454912109060987087718489114897068345585283760805735540958313493600504077345539924730545982764880731406936231597569950611911694932305362559797033863992888714786393180175346884839392190356871943002349464545894093025280012899999827904380581944633351884610730151745961330941087013878290893359330234421168754868058069714735924324700217583510119886216239952118395962948199595349166189708533711013629762773102648338966580059200640695612358242247496717119680626944936357892184961410119555741974221000284072159787689595795179770322506209117314537793116189541081590526255070906819405501637725791211566287711201531651645496124382421943612132988690824835042705253464169889598015834535447119891017205225739870599973910976626773609286981506944718348230559693654807409368053689248029487044785168276027962303408743439258512220821272042969397586520643697599384830228489002174609401135497937313828405278009112744905453940463157385554274211924338737976377602387325403362344375012997150984874455306809040536537537717580596868303165322832328304280571092402389413299225940772437720886659202657932613171360638187826525572705540990098225343169343639660062771788108672335694327060945449693226033694843174626668741912803619080083968326359259375676175244621350968547015561021009705727009578796791161967725646455834922277589652626843343501152448004438688360645204120417840781577770141010259694011672787612679199937603545059963673004764881156597357716095539904103516762867479175719307901806250317772235624608325573299371300588775290913006034588602406795351627846856072545304680726624686564510650548551289926224669454831624917382770456252007681028361355478047017236120168343583974417953556997648935937227268940410988022289218256867488606890573912329381145889449962943465952930134334462063879595399701250402776159644596488340634746953729998056739443245633955436870036888456531535275983653657030742988126514284068679521887840554680824650322060379201589723879171800928726967595681405500515751129275090014311935643994014992907255753193043421789522389729143278482674344601532263467077941230594615452206631261442041674255026244480749235841136025933288330680751541450962023006460952093645321775177791076531430027224847455076108658344472838555483234238876968463462064142031247670333510500068198759600553790727687911599471000545297873492593661598844877145884374099114492452452991811961128700140102452366332321417905895352144827664067807055686475048264414413878802335510247037291437769639028085339707333477189889041488000040081222279575446720071906612216486190287877902878259712502685596740869111074344197510292718089523733547228354981931368809333177367994421639514892402462931681454055130075498921046928764697503902490696185762100132237658049307544207891284111112071810675186452135493318865341518967285983939685909017315338890770130439197756199061406786308590028901186983563827073418286415212844444072450067568097125507933646602233842404801335759032836886704771375851123125086225557745333522825670153848462761178196809179921756330270375043848486245518070665650363765423810146957365074365841622496723222895749886106729481968884809087536821059514460220393148264840684002100747860726742586324480797793758397373235649275798577655427714167489443790058267839081038751238972646398686624056861359607905778056988717537007633681843770625701330089436371906402240013467436732046180708875937195734123131929472679523261521581387154523780252875156406198726019767692413476880688425576473700116992039370446534399841457917311663882281588960214003224839907181441960326661452305234442354582054429237445515190325293568824081578697425979865935356833461260895929850997772209858271296513030698510596715691198143560596799230704053076867600647286582036700434304496686516187755150202124810115972017444518330221548858475292826757064778725769552183498742620427343118540998391084335276543199353315812789838174831610191534766587046310334313232935436149459040911981286196946597544250926890522114029219249549442416513973530283811809666746259866561293650723745718923053737589386366639621377145313345205697180867155696930981812127373040165090510450490059907923474747171342591687965483737842674363604823670360543735956974190633369142967357254607701442370519901263046279408237668827515170031212298168009614461353622593085323654713910359956174719507366190763276857838785713018546333864013669675947673555391172556330718757721361722051849229478357270762473673579955736204759948366149055677737109799035397432125334117282538342300121082250665706208294200056525498720009684910293481600712497784438262476719471103216540038854279810663340697887502932326649777207084718147732761852197768418404608823352606513137794408940653141828366154150678661504682746305188854208412390411649248666687951369006569784979556843571639769455008750082441203090321856355643154063729646086899518109770050403797354872885979525357111937653600866987987035868655636871406338439736737632162558800905590363750633602955946704656936165024833281864416340337590404751758774823650066087355447282493363885568825243943057455029241806757451056324501486723857255655194292146803440176571650572750793605772180368325253535593436357536635795733423631064641393935151074715960374768325828083765103481340932709213026108892428913370693537845114980994452513067921324438939184475779595030634311472480597202606552509851266170152258137786379170636226420269894576934283821004319271226570780322953602352822913122844930797568126228221025487198559289451035702685892860975462454933783158052473546948599995185037677365759327935751416691178693042026092011226030467844959852000133866546535534845211680058434169632379303391752675055153932499871229430747725297379091081358058724222079297304310614836245193827769032768613592560237473772186552134263943340236023285952903582187282765727689262563841948898321989931339416882022655826048796999323821603593722299517987236068955844544752013466000074850876762545193031345282488611110817946093282881555630385804916765660786925607177144361854101054467058527352600441215583485207424435610624396090527557034713951546136966109282469131984309180694471276584365874863815946877215516164275940469812358707125116456465303062738539864865584051190110691318069485350634442339859086010000006629397350307779800151540725975315834472518916571885215692811209696876298779555080212293467179441430223132983248518571293353605540441933024231629897343575191180247998367383431090432342742025160801480261964941569875915033888237061033456912360388932694694831740850794567494760697280363299004999431700822643052566254356050352582294593033998532696623222061264859391265898681135715395437644398851752838249962419924335777392631146785200743465507822172117975713915793783113960394245050586435717546523308160825292799799629497899577829147945053181192923369831588598562150157116576781885991137978812234678656369663441977533006052175862040278886535897741326813491282767075135623712364697861378383236001658289671171627040261785711291502541075674444035038535240013458781070216656918742319921778302355749556172951779793339579253873531221700687713762884987114602993665161334387561235027777980728317470916993516304229225723321941983919404591503203933697883792311665741430792884393649463521937104052066834268280488835692355129044123889395601335265370562690950690875396857695538820755550288179096568403308487071449743380489420364292006794576165286114828224367126456031437073927300895798315266787538767609710072191600616046421346684638190492475775289860354157669771425817514657226632649740235259630393721877134741607205304708987730893443820751910046186033938405955903468265157980897083137953253013596617309440244300528699424655554979448529611878421549022903352502376116120896174310644284800528802404010719228733511154748348075078222678014231116531231822871073384952645324914140319347834829438493725360158585424014552239854305807702424303048873598906996263219816799425567516814444948065706263086880047689136631385100604075442767451270474320470338048525972849167935736485507153968214917245456975404992940293899824011562414825473702367991922608746837433933831518737439201054157268735086360879614029186383338861516626790607574807280440287754074720484508363993250927481164778551707551109639628811542202487855904977541909702198629250563956439940740992192255533195711851750119393344103382161491691765133295428503448465872532137017492628793791281475624900573988306178088180209734844031507530063466582018846534659207262660628341966436920050348216730493485551033635612140725595252547586967325065626814531598951896260302939879189161092504075744856080859424672484886379365338291249638022554821420597835011195850550756715981727670237533384565605320524189862651632498557953865290457292366015089549813938185278304918017489362241940307595764958377452112634528206485455935674686744551126667031184746246526716875563573013049993283085442140592015023839048964687000717849625374907485844245201886545366514687719053913541470615461031916127104026537979952462250713250290361870392930642162625018995597136873537767549941663353580731166499043986339632919079547608528247554382988306010221488311308714811833913914572087903979209384709589462830014936307822580244105844452288505282022088397963643601851395880857980157391617529258934385375300883681010841899951589248243724565798861490539959495546051532632742989579545226547620389939494160834587438141732686839273663162161702366380302566844447112929693007544041401738909516356538422030841947700256329646188410403515688516457443121522559122228366040737582182625678183197612665284805290514226564563478951214147684337815189216157611260153360326920054910912062649283773068930145404371581403455516067955312537462415935760351224174210979522989494194672576545434306031517021742870067263348100217208268466212141216236644125444606668296558546749958643745660784899960658638785210524644799239319717276967590487559770208912465027068086537546147195435111704291966530899259914195407910566709201220003112438937804346206097726950360750620074510337705854557879578491868841214759630215053399779428653199397824327525774010522791711755717669364611667680695750766826086266985228626334577308235992920666772737597086306478097494826282759248279010448555563368181950991297291085408730674349732648387724767445677151050695164416682071426435741932445610408355769629522958253287037144136462273356758234501573706609203064517510654841478733600622265686153690868393250333553777369929856908935814427656030604861483647314122676607543329414324715842247896683357722840912412784892784332089326919833629292696758344403711972589285870911134243453128746071140822257328717628380407502136404266139738285127649406216331446832403201129738772285145150688172786739937121476091424162005996719248475422397934866540710783811565979394883336131070518104904250517846333644556088045008691871765214892594746323692909550570325383789841207222035968099501757180283127830153722894570891777887187548877071599504791798570539804976940699882384332727534820058547720087720953627390054056079891601469616764589776423053469021753146197173506543269510168411848464663029528178035544319196444634459156599678280581902679256252511141155912745977744055999151736027552208208297807077456043571205825785232960064268333355905069595066309721369786200192020296120556056604999709651072380316186581144602703063593804276455296687537702878297667064830869510207204471884838633120951015312156140930029661071834799925828295906515187290015664930328978691585454214226017375783297623052051562716738059629539868412529320193613169054505830500303110868647134979365762412132148694986505169528793638676462563630559307135370244508734440564287797782607834808044064842151482601031218893526995919481082764781832614781469107504525403169022972920366378259863807743669652579659636116316487876455212603496521199027459582616878761688759179346052770770748330321617836198086529645734722220727976906236852783024088752576120003653182361730376827731656655049257165392438591784877523103877331940344918256060889231489434709779647676469584263119567620010478975336340298829595454641748070679122832474627063889162134521423722613599274137577673669649512288808190436089203427278496919050163900602117073911046000128361778426291495148824837702372609135738763584227232179770048557754769988164835068699967709713992002488745791453850280642571436418623978992253253737363577970565886996741409435001579168620062724310695541092307138499378725593128509875872606481711704209784721106909168072575489581027261162149513221033806492550184540703387841420880755202863403644869950881333038711938938250539024433931637900613376194028395935941934426834179533979895578440616712541349245068289382312268804765598029044480139025842291673412464503135028382808442181390266947669291978164661733679040094619852109529678105429973724654918896116103309382479099338639597634832284055962204052269184106843516385807546258848254436655695702440942552981681121601195043081440351631704558687666190249522560690151027080800054300727448680241263162691289417198009405231392696471840444942501243930748701448222155087319701831607089939923293094377443083379473272580625811219586183545509221969952539641647251008946136119087514316233755827439894854510661260486651316567395253255804407528519711284246373689890387730361971048850489597844204513183043154467715194549886684472413138590329722909587638375649829796009406773169270017249250968336333730743935783285655037012726038910055465826015995465646313466568734803877028779807254177025414841954490895911428355375476601761922894382238057309320419570081542231785209429098266290486154732549564176174441523071286325462090717866631530231671899428482534388719416873733829564273783624047119511037155073911742448621700850598706437147676074160738008331319273962033323411452860137683849294616276441839923663874549089617872666798704189629869479816340577325250561960403806652019047503996277457901232886276454329738114798711724281343911188850276364948033302622617032806373418603743137404171146049807201026466019850847033471895978173483640365846291725811815498697962944980690486098614380442226647124153307398044343645087595558948275949401636173002393105544574654794191622537438601121814263796105668736210814171875787286818909021177834064415555487307395309438041816785904986557832446886756225411237852291031433162552171988899004566572832269618919333315582073909598290010291453532080258560048266623338596327352302899025573253427835324540390748754966370638588536868361670203268839910802622947141677213619148518100960629774022570696487940921132529955480542141606039428430659302082706548803139006948777707273973370690842926430533546407332555466498746127155474182770299555604834353717274964440988890875906583139634558280716948546612980071205180128777500289427942031795440486187525544759282443549545457717137640750109600584043007987871276908121256000856368013968853947102580359847600432047504542669015728464586629721481305606850899230751877853110864253799511945250820481837983061943097933724996796397881583615088444256527705239335650865334650839390307279258254637635708359944445567777756292599355804713030151624445118095613978309871622379091427982857827682382407992140533555704227523215367755053257805510859253154605963442245067440660223032660820062681124833314473243002849753878628811632215388379696090710868978141577896596614976914598901078831614888353794559742095505153875418673152549341299602559289579432764760505667664004721735054310906887249434483350886402653466510823403324363545770175371917457869920430645054097336947320202000469690148541578051037549411054983206089799667067751821166371028758259617210658540687988942963150407599504887695239295247849468422919359269477459574300536671483004025406841324614857506119011535370565629068435823973081998315003289787609547873170417572471720470055986391553108972782938709191758557177976121149192952396885254269896689274967525008864740407943460312172850604832730740019430761719755674378511874127162902934402977196740221075951370120779080893028352019035141548062520243425250762728730507960836579237802860900322231229441061976988612002695883030230697823985559099557487281710379461555280160710507267417552779460498831852249276974718384860482307728232105418606635410026027540702063170012581360257601238227265197749037181774548199195573760956650024543502271143771838202560356222976118891675524911691579105090307144910343971441613989146332899531058461964496422723076628445195849943162569029500088090523272348878976182834532890214347863239576206406883117037688454603444297328553565658017349678049471736491847955105862417510339231539296265504538120858797451549892044586444681624375935151935291645480210230309840746017050449489996234283987721067047584458436984166708286204575096186165651431912187918841985550100310901067938234487714198895143832624085650913244970857870674053822693192961387920705913169276993350748355421224352134480726663573623160691558600856020525976334870827621219468732472363125323058907805657075869020516462961568040909178072029191710958470217261781327100025998138251011238493332066611998837336218673715873104391136231428680110900917521304528757465695945695188327718950270692252090847075170581972282258656854374651866200514566953224545508355371916397857229743871799040399262770314364535708307867095508385427856249137307676316206107034670317511265535315870412203765309479931739428146506764550099284417574129569997257963963561954081862789071039798623173049862063935851163587405419131508537104842785603831521021263013259790396981210191192111746138831553558699185076843915246400060385970594935786853147630482834614075413328672710363327729224250080045858273444646565540609703751096791861007925434119527255282728670919434732704906127748036392494789693236868265479195706573588917861729296956947790801674426088260516768516583304573735085284816708152963354824697972490874950981213123698171892898614581380962885748740451705524399105657042722842471978662368334792661575619514343309500902047075362769202929898360664483644711394149074205303028925377910041748098311330738010204364179923753183274955175385528925141744578737414486010638778825286230614961899597093386072683548299046638197502559556045731569754434137632379749451335628621808017178425815976552465174407179708379636156528913696174839657804235595547299053715313617948739792079137430384033817494539399746601143311509698706401415286906037134947487490968574210302821177090259042577292796204734003095645364430196915984586846554824988891646478040918913296435983743724045862370899905748952587878453364543467723223895655291764649572757636520720168704859431347320624015883793173214610789811215865972785434296228676913427622529952851510477610594888897646381655592355172944396420316954782099195557299764654353919632386713457926976398204660381670709120400911127708201980479208215223472590854123851426426949215093562827497917611435440895563677518548558219465792232647772215906266806036346147833391841010591204005886694657245196772257029377396665344644540986913098521596886911859317743287066303080867232186168627584368367853881116328200575029352422100570313784723920295830721868659026508156833408335269073128640341532595758623462604765080972594931460446165984035862930954617473612403101921153792907891597255851028869488399173109413137728430288631129551099793548040667412822188337688090564730695947029146556990517500715395540048131592629434270102466621680212672924393258568591110614557158288694893822379728125664398606406602333009452009972773061167466012221159329271146889186699492967883699938570937841300053799342284775080378611413814910444242112419334395873312241489718793883755865535381243698603259040351687613143673788658855433124309708337498683373249319606146050021301328680436714343224629546525204340456689481687371167767540871732672312778188425988143720713896196524918147096400849430731936684352189648015508977684245458299105225358817524883150068001600280344214905005028374594192200892165701323925523176286425937188025989003363543515748704492016948021928634810675813951050659550582447644080609949395616224461551770895634042093376665939182799405891500854476863650605652351430975766012933078217645301812988034830922779890726638697378709484075122585645879584126620779170775995010144654251683755578668771786527941966724047582078907806951864148122911572137346179622073140199561993237389559082480194196098846784667996810083395217527665240833308660942898533729179644429631643182519323537828998587118501993848630856631074679840512446929778117395563639890397037534565734817553609819861926476008862118197504311697551213398684197190565754751277166678049622245773430707906830561694406795190224342143026960860858247263772103170519792365395735419494965008511240907545420162097202598201772251553878710486554482753224841029268898470676990657545573967419821293952540961455491528766658539688551998959089660431278913961491050013640408326829994334727223981794713444783792303907593270083441839738578894160143641741150413253990814551585647935748501713633655953371883084568002426518491765610458783034835675101478840155009684371950115219669599010033430725679289240764183983578571705286187708257428152471548098053145702412167548790972149996992820913260178712640179428838380407113125064095549227938363393487960773760853354013811310169195865311952364723335786782180289664796254355424683696910684845792196005297833053707654489093980162792724543053420309937813624677410011666616778304470851248330007258325781699843830926465837990038864772529313331349512688825816189704611906838848525545084906382147260560900289324123498344818595428389365838624673354339547431733294393845812143715283369056097674270270673830865031878645883527091579425416608909585522500119779953977610138372396788035631869054236583514249240248465237469752897673910299182215513039911204256063657463506346815670743945558349026593282851780490390214663352866044574443847923999718955821296213175840849306804617337528129542089574917618592348213233838630833279652801531466659744251977598268391965313690973311574178928587952530657277543345407107250852602131974020721545570310055751137135560881884483518785729226776571969335421089104050270343380710118259721246170012737432653887304495714793944848841166473210246477235547530544486207736641563415236767109854609810511745195410869947668651122278178752999528382818771767603640519419982649839068169798633159036603440590528248454429468442270569806507348040115922706213792198163406726359609122784185812353178873321480283497134627101612912646125759658386075138418107960160059205251295373383264653185571832980100835015804534597317228974484405334562434574114039922877039828792267195525272368503472932786524162548052124786317537530346179832718000593518769548848850793129515867568456602739913243873961800126272619298019114830019038221177916687244542445863388996528197460957356460448985023678086979734432436115420367331167957423919211665053661202644015575833252163565012449307412994561818338563355910420762800831180903717035028892374198530540890701014438573684061220288384723989792738306318239742465414949803093307875224031011522547492623595398105272119768343142204355728342978626454560063688201558360692954496927260183519316020343446331641942642121827361117967367184278074965952218638482280279170443150755543137379371715828920836140734123982113447515846455403869530532554369209920512237243253672442489879470646682208744835650509479535733522586377020147196128423103590386196014196504185899856305110904871157059741926391847047585443358837996262952684934925270482976501445831035821039869087507648143440925024528630195921949728896529333986377594891097522379895707422655160792355418230398155839142748740378011522117635061448514977967314549627182838574756389190742206318868142933707100421567033476359336677416762906819601259197276695733293332329010045840760453995016372370975251731114314116737429612183545479864142171599009417670187938688500475394279082489948547002029054902522621272199857049716807323908051917537116680916140880656707012573524347051970657956123987913341850455392193247370580955960217599012380762390923717813178121413139207797997445513353397508539307715964689412534014852372725183606863449809058655118668370887876508832096728534687960774918360185180022657879628274363753718025137652038053030288975062450325034983287562445918045965715780197619419306285725081889598301191792176384664061612351620619566180534755788197157049306281643204250172407519512147951901934164086258736698971600086625445268262691463969011014638848972078468157742270759893926095614921353156217628561840289363981784107742362268907987741152492806387342112648819689016785500798832020772172387430136519160151889199878817655868681866462758418426035939807605517918366671381377707698824706294782623236556659456357350541823473969414727739759054953079696716879763017423682742568224655983581054889283006780309852732281467077830808695166273886102245494462326020531780704920435670808963818160527103551811384605752940187091355079169678877423125655015600426961647594467606753340030087988447013861402381897964168257141078171783997407049030903492009801824525063867558968948503956854457385260545173489348802078285363163909326887335082366646997389258484101996574374657033902138912843398331430432754481426411474455352494475346224110451532728422419890703241103626610244693759608226713783325587037365641278277562353795483836184370770942825049503039364106562743978569637034005252380813212582159204650840376758285833073958364561022052055452270329427850992509156109318593250223289604065404802430160249760013740786362563358333266497601233325467117470327338355311842142949753077049324072849704045200235901421007819293016727551462980910119484277755789884191856615955716993501095252137245086189298260345106268244023370100802558403977731503589673565713118046488238507787261357977811729433816255697093328450721174335831981453161025864330411567676753720784681124647934121481978673325957592168615242519121490084764675483577051286279415651829489418181910824242244861172065355608907467787803866568368479871741004059774051230563367847442279178043992639368173904174436842221196644769516984101272604866524692330071583915810054539209337127667592540883663676831558668705768344423496317443930486015756508706011461674125155158779079199744484153561992773743159091559523484580576450612995305597707390464218164621855249594505738914896481509673902718628457587922445065405518491151549395066588877397550407161536583116896264080770318830484428939872867466913663180777014824635367357026389163868174185976423028628434827115792317958368691710406229974928794354414593270640760177156738577190050733526326281590462846400073460565692306236712897627834921694687588454450855254125866046999658530863570003866333509704277999858904389259984543913431333762433272311763345791616319230431630346449841562405312337216441876834787221626139909197749683031048063583848623779313868533267668392554930849220002553185498557568997720922486686364201780358113807857989493659398005984231594564852645300768653934022543772215576590943556358096289595613426435647824629417449587430247314409674088974309351618238440014589504008409387580626672878038047809344408673130884948950645756850456054642692227964737151456567773030797489052959654255489801956811805368394966192886838144868329961778986339217935956395716258663708766704179081255719358792357635650980486997279042796906078237783300990082578619850804953243717565691543462956040792638203061570509928332041885360250211693546537284944277961593353695127371913446890022812073862250187222480071207651589303808340641694856448353938335166374322506556563500485900250555025408479536411534954525874407995046556570380363968479531005403591382311142612041398142649366091070951811622604054032260888830429196413644450176942438590907512670750567353744935483950347973144209077809377450780410496138760679027952004504201496681317758308992806407366732206816147830523056857519229815350231806380141965880085498713722319600822627904537668883625743947960710946519260591113253772858629931259806272527780969094131262202153078693768421656190406118996248842951637006028096015664689366943655845934327479843355500511777812198678910830101476207694420536477770021297824762180464858251066739918250819601880365574977570813443142906988183801427927046513788954160653399789762533415743744383774272464435305437654864779116872547242118301052273451727712714125257824323824484011130079608170314860242930397625514961450764688351267233362587956019922452515416977746411941101463081843924667599672175538050955181485499072191153987083148961830617371992420789588984606105511425973116578152347072679037984831764926330538141884693388854791498740147000848023318046076332416276993891874923183090234753854718616360089839307005368320974675078395859174783335153069466449836941406455658928316849515705319650573125215779150117083858680200577298996063207748010904048450466155317446697819813839956918450690846284230178103515934304524046829289041959073896156636917151131848231618143144547976488294261574128621245697710181880778854035132971084905278156698900016024676205963891838246548053619330341392675434229121721968489336966310759154232661307220079236498576279513765318498079493437167057193178379294176731687282144400297475959922929408131954215287330761124416385542142637128875611836264769376265491486335981095958798010861642354621464840115724535642053727743233005590893379437759948022857386207604192780862291219741656985381172031534418516351731232399974130052526481266704335427669482392726466512525357296517622221711165360371707519498561137330203752584834690039031074877767582748136658411465497059361626671779755554159343059610782805734074117248779481544187356825515023857828236195125326695167207347879944575586727837105295921884287918769809501569396904674004402378053153940933203935060722831494700238000414136584973284554369183602087331898637349997218534387701403964440899483834895690952120755720955977633461105262763945200706378129033239607571852465110496561742514244419614178464943457935553971574744162530310477263097351175184418553803109470716270300641163729441045498679001954827553981359496554922393536024301310253482013207819315714522136269017940222275793148605038380444900095349010780335575779551213652041416175106599203976149022971247748911310211563133572971353031965584533933712597405557385037708590401348555259594400098218074977669079087586091950011446079043972799407035123759947378562584399332006022292867848479453190503929978645789627257057744436322531052016585708346542240530170023038123815923581416060857665917935323078314620924941457795200967929065405518031187110775744588785681355589459543673458034190464871016964923035438123410584813151862234035262350048976905622033177981586038222389029991384336885904564381998177749925617130454731351573730579625113210052655747145872011887226367592887065911878304293371048289635027622879419322073135010929897941275467644361007178506490327931481667470435888510357234442892589514963268735639289533031386574443675155096831984830649094540717382788449530959548773745275065740189136009481877703208571546081142900737194789521483167439819943652177417764836148632067838555262132411836227857756927346383861945258689484611698927608296045895349535451632277080534383678641907221003167800084961142019345588413812332182007367460332844524193816696581141063532331494901118012342509186383005518847707698025409598576421017109707593806677818205823185511228935546937401636437069185914494313898125436452467438115632821018221165454911646434751345189769441293977900179794134740877944932709294243195097839670073039364148367353035033104153916699606460308411744470935444324977068037062506375677596601341832801944356038803446369686876090965693078183759943569027596608348716067190872205267698278376029393868021497409418352159636269385649038447396434321805317036240482389638745794465876117135784549214900874303062768483985943421210423752501940394545163390000788937751900245372711854297537078217895371839651430116904389390339087574508689383932821652048020653929336813963608541541052365774104363230484787124549945766303961472035541857504811116349538176146670820729000466389925376616392637408233700411218610669100918488378074609384719134765915393371595665312459187238238704187188362771561724440249932753326165800917593005562044085709341198983612757783991407544289894514903334808284454835681182783450588070939744218616310603729423612017071257313316152339693690145461629954987693311757472991744373131955643196653461640548081804243489007891985304240974705851108020912529861201771466313124248092868810585760724352431050247293569519218008248388456781831633489412106076948491307154019571102768452146313284922356075511990893655815900542764395555431342212179471140182130649401333258090576554712368810518594434906609949915148042725486208794660541929057366288108216496807697053223529927175417050890567818903547692899486594862733461421586289657022399844673115655952162814730119891787462774796179181550119582986532404719783927077525979142447395261099497476800617401882483059989721289967675359465917290068670613187703749390742898462005957480048595219627479913950977860361092012175507931222876411393331267281993784781820033768476351913450368609377189905541255153909213377336368399644416675008918946718397514179283366659289085990788246129065219396691818696722161164216468333770944127594579214871574142300225650888883172250551865207551660329169005110659172077688417690525786406141797836643752995658796078271786928572765516521175952424827317415948922475415673770031795886798548330739082836793713187011540709917003014789835095641096901827292567671454174881531666743297255087444749706213170254845036864644926210185704189350323504584759036787183999820907342538358305244403640595528392606730669534306597083396098955422522860100237220127386904699710339677903481004817176009808151617143648294508314375992597169024539290452526094273247002766852651136029972281707842359485706500275826296980911504187602307804063793191452747976482740993222092034183149160288386111300006893880078435777525589500434091317974154955525546010652240176400830287222900382803216787366620753536173740577590937231390733766314761064806362171839804238644171215251312030365089759376481007932049211734062407082761699397612780090035146275697047267331055651838138279297689232781810935085040868910518771514246839322943295208396994429332356741246887267843832682409431109646855812626389821533679016336016937681892621384392832685741225240879370332819050212326125826234287437787745139932492341075511043809240031475818550519828570318379220922252531432563794681571698202005947758505330121652569269919588735056302988289155073421793326826201407253877212518846493828552204180128048094993065845508741386547044784883874415671635860636027566309297874124998527207678438806516465280574310958295369132018703310235845931393906528432759044192381098208594722443820111275387775561892174267394851431736678680254023935819375641714345525882985673536878128863542596754002164171189597052476181621609296933156769809656060037672103656771551277270264633410293787204046919419088443657028853311108144344882522294444972528211347040868984967557303022560366521551231566368538997025842735620889804078552915249234321420271947819768428716235738363611232742847577133721685575580611429318627669571767873699340241729595391325053700824338646315282062728876767331685084968075429414188931764385104258367430081789373930617575082466259548775494551778817063860901671280963404066436789918161795595515417312016367190309338301457210087207590191929384315486735993668321521800234779815409472162612592076863748317857524193323052883772424207749704960085711849815594107066194017571370218948526154538577633892765035023088373443624972781520187551192241959971097923500873567082242321421666908705275119553584041009222049292979911888642144503249728478608108076622239142317681290530149614633383419561863342468603360150188277478773253836897347648382028250178008072449345894111583223653832820969706910318277162762559700571224725685018751779315685487260639241944931045007925229018383316503198201693340492986976063865304049413588642539858045650783961537901595799208724899760622263049620584568151275721530693860814169797796404440399378877973791214164606257323156181310595023417189627990180488628916085914430535493250194022564062344582462587848820378366014947292826275882416355825870135716873944320567101237509429250457823419633709783985026260590695197113690449338118584989161679241852052991356188887122165362199526263839683957237328755847819712192950639384485921868000108800670757860278828822747259871660684179700553762611789603385710362203951127351516263709668247891006711458588227289215576199001765722203512869422272146756362857126105428235246481062993621723246321536755905710260712450506658580436457478186758700836071803977736803590272328445721032101167801847124715718792620664607212666227923236870707978781024737932913126820934835783907644079640395709333340531893100023567178094263386048826781293980635308099354919824935021175108024947705119202931178528387587100224323555069537937306144853585615258564356072365340415128381496191305053852374984071189347765360480736739322249315470550284359068447011535736077890780494781870803583254324764734131527121600056316792741910511056554380365899075252740092402988677613509646859401577307639213605872012930148452045187668737411033458727607616802385528338687551741045716953743166565946954498799212556433443122645687317534301970115270558112557459372841858981592799393564755593229321794851090975188639262412244791412780229746371644015374863326294941020892325677903229164802563622555238888066389393991258935542697625385558600662566364366767067616195271063675656733673170456385898869722603819606287263055641858926552015658288807469082950400697979608396350008060230304548701226477072184092603949211061678364124806668582967045044852393280829015993145352091282617588169447399467099042621432342289507806979626142110209417277587969493510298334877987208514648042301032226321501673134736537381959362337480475095516892246854523120588649735772881970359156665595717224829493568082950851959396262980563109482010988101798331857980386145176971078891524610593005015209331828750020411575143290945153616777519413315025069285340321616368426327414896754490776671355607409757206366833210443123655691927524749962228528725047084043795914064855502590149990641843024080387728167097901227674484473529779785819345770136949848107252011580489421205242816585687087536988148473843126426134787663389118630869770799364372069133651449091578566460943231482347750255835279177154554330897642301007212322586219197844586053550149624832656964669233423062124762622465302611220984386332107683341799629986789360941598869729141405802503995100999137102787534207849161836820172701417237404086503124058358087538468732835262151896653918225413637333857191741641507098822174171717871088701259422884371604841072011345929488212703910245262360917979641075178039331894126786435861740616120769384633285047235259888148170921098791432787599478177345373678846183267921751164941081203774840577007290442151007990836550641713255763892074787624886439878143776302639179658219206856273135537260050314987195224268893789665670961720647523488940672124103962572009336672311660403419755024310172878047282276889839764677616737668035320996733326917046967273268475825799364542784923638735540339515647617575306480670548340614100052294570712397463532067248212868763447505918518568725425143812057246159450927940662743208885386308674249692736703509726086101349024003482928478104544895493447674506120747884575359101770258409564243963074561685113958607846642162166186009292625083416931636944555848153147573115679162790151459599816510167536343592155044106308994622749969872945439633504651435367334303643664725713151017074154577986834751624171600763452465213990711104180272327787348372485915412403131785897101553406953074395361595879087740776914295631422588805650982209474494082497916390376170139526242133671958119432449166612525951660380116965066381280263614517200075422938802471650934483642941997382803279674680106321798499785348036792102776684569233980685229615006532531644536842949330918101182822425741792658508922849111159133982472564255347808526455504150929185134526462879572547711889015800769767377159916120946929670616209676487902467450349360367237356059378901149752107407685586066701182107395460369559957672773001015790576643133194250629026694457895357288474306426639933035216974191993874449383655989768690922910787533044925011744264342162025460876003744818836415976384265896140085614102987110632846882363046710912017718686777669685555365168813921670841807568212628039524386044394344055166390553509845484358985861224452242206954662384311981750996196950681056407846396910661551299048436494138024632434557259149761652862069396975667863664231301496012708931790861006777502672889478823043689837132170619277077794103837623212935121109279371192097739371251118036743779430678677041130165372830767863299288559552064799977309474524843527637203541111343940373411721482933779380096135519428626604096301041695854575501470586106849576725166540911039149536983034628070504433335607997160927437989049040209425176750897691370577202724233653892648747875547414622699300562605177906381132136155147079245429279477649900118224607269340267234464877737509910139317544191616156933060050981394104897640892259141525942041387251469834884298304743677030594207608250336685676818754951024732593152768215728272191827478695209600219525074449600382042434793980186504453351617394925215208593731138031398100052152952003525301693107784024418865127659090466248127070201322792561334428063645552457473727613463262051506396909136354252029726544666304134454186735051919804657251431809100753929590018098759949137375351693442289940597458909827106488332445717095511327858090338592193655170387518898068267608667827793959372039043679877924473823072983236536718857125325023896004505424641240332855473256547596688578003314582276575480753765569629708281537418287443715741760182170000554534995007786291069017736440535943299646298187380065575011753816645370103644734632626929956889112798380321867891142787030541832329882811139508835831673690872871307950767282991449023318780392884961994104915746696038883044382708330664792866334544391652346383102026771158125826183171190533138913651945050083707613184113580830588242885360700598234896963846266428523422095494405475827149165453277566040659311620684292889333256109060377010331415618678051964428622187224374303832768734711810102007316066922986452527757715449229557407292671542227667926419173752793508709438662179735781100300503344480107248591575302880217680840029941926431231433432970854725317741632087982526845761289170938268840367494956802570927076932867394328041213074220120256843465582000066591425217150949791405996705744197295063164307088234826083782254218581588351985738180513195690104852628575925389115642055927652188290227548272271700771252106239613144053764081433731863232013339685533693134525840597950707351121454700633436679043972497125152237240933372046961995455450592925457583675795150824887062331571580401131339947043569686008427011237033387475045632481685842062234232523267593537544355163579623008455976163653502496705051549708585313804646161428085650393933258751873351123610928247182544722391659998090970439237680154360101698039135786603862306289986682551963301918887152772072810461812140713688554569900755509170011006440407991438995711000267950671645925521461084954039713298922447902883617988497001190651404458972127735125439307219040556613800247845041289478419492308081604141116077805367897104591467663769020295369115553782677140126517999884433374263795024070717396202350019233546415704163077632050775774609869289194411547416547468196972571811451249538759987483112594379209888210297868756668002970155982373514345620992701124565037091288062710291299263488905336844697576301524980017774579001661060390622537105026868903359547791126523715026023364946677700438254180286581457070943159523949121520286198388821052883048395147212031313896868994938542687065917312818618415918467288352801104369548080798474454022843344036343065840234061466652125314980346549763908024411501076062370182235687220590302544447117187919256848066421448326259817352026773906292245011110457929175922892171553956769509243817575718312634967285081420672239506347192564069557073234295415526063837300996280829355057681232602217774014205135142473726187576318813066464210252220767006984948799896807137689792281931181100759608854288399359059550558904640704217533727057604228747420865426890026488995201581067246394836341472814673085628959502948572093319255240926472470138233536401438772647178137381002600662525609620183932370988934489759428539575596388591081005835381049123389425810890902048808692167847523186542461584681882533671266913111620671755656981019398545634643754544142441588568087360069819971397923931669465778639458932610539602556644773795376318048283143924397295721936988043551675427566457805790123386296496754112427665227513197109269718901208573774699555896566907728508771188648890793472781999298813196928671674025459325393052319296860400577297471422651141209563663274279489445936651840060743469197305119073890675840616877986015075788889579209032186623456877685406676248017727135344137020257757446391052776338698259652971432485173140374192414295765029121660209763527255575943422953181231844606094753014469097230367350358434880866707414381662568208442911640062150074996417094405478230707075551694039494940911844909361648449595895034005564338880135890297438575523773193876718218467081399395312317997099579461480268562616041434266458601121965747655872093894866943276136619346652037759927832271281671482445404959487253248312965412532656384429439005242261405322823534902150624660399327350173770025496161173876910856743370844363673734583155273433244339252993348164326265909645301063620805515635570843486852301240269292694448670263148935680031410496218127423769811180722849278667605919628045056173222878129568484010957919150755242110633551889381246551129196792347757770909290048777354026983622808577189151487765994963108722050676938668345925637612106468663772685546403167521266343838342709960669000008419778231836150021368313686899864359844815138948101364120098894125701295967402910096602290599403316684788449572994279129489935650985841443553270817705959244175565617559754953479851009792290476558290668391301056267875303998218066535669594028464447099230021852121376768849375487819955469711602821554969346752256712875714331569202449896743520488110173320130619325648786320919548217886437118917615369807010245285200948251273233496849763735725192447031695242563705518408184898204728459483063886952445429832250957018578424525758703133422245060090678129039388176530523974544548347288723138006442153614918880056487100987451468134752661183507306917180724845032836375721060795284459536210915001597450718629155509563506894272900652322614634799351093414953027570574874972565579722042831701309406627777216829407191872161727780409336431692786555055832261516575896550466884376212499472505461408037157014258134766923657396520337472681455835243611687017751529247040770192929926302840112829230114019208578707641379506684628908958701151278020440691177061146988307472169787823943827947549179201409330319712527764155140259211176276738760043402443205832136437655803020975919242677259040775698352706928220996549319835418160974194348257954648896662284611008994729716978244948892963290774702459330103496753696743478623960345356072784440323726835724744533589333735783876197967664344632580005637361834650515268568987376851484980110864943504632559124248529091928281252261606734955708518806628455331920735343839193069762155556007514827247476731935284812979651095958415861037313961727864769921248639712162047497049519611160413380939945191937269807312266098028838936105698656803665226611761983714778139973408885051954341248110780976966832602337346238220463059601750383496417288066460166362994884675864413668988791726880086506128489947385994572829570104338432249259676999889049691990226322716101762204079650173922834315495900033119925060459458757405293526170361846816910304763807304091081766444260407943711910970760050647957165853941704483686292560621070469895936919995062212927095292699424899510917308579797945231536477741623867111856166847115106423210450279392415979036891577492816776314390524877299706983114281152834800905027207633028452226729252488019062829529804532211866378559319777057717600008904720931578641256980798619747682551433759896891172222473350944303584636526780115628355056285160761966458455181859511257939527031736587967089673985097993642525245698275488298199605962334712938874211660925902531049011800947580065511403205130201371712319485140647620600436991931892789443072083272346914936538971757584930984621724779368430896881026884853892699559198478432909867094455564452863801647224225656484206919959826861782088019559603232690648965270563734396468537400288867904744203338506111619628064583562155084131618431614625881897025734511675474379552470931855540022112283573271521612334480260589095350857586216396471688494870859555306928442290218007852125454869062886959722132897317594345284383155967660349097374810910251511652832335637213016745169883507249711392179259961727833655929458106157888509087609288441210644756022782946234418571800736915683907030369303242847990854626955700718284607059909960622213386456206894808167985173288703318982317945340773805374071931423659475911930099223918757835359648360829449156090309986609047735046147093008226960464996345778794407408281485138518323686776855287807790152867128076351344554385041159479701682319623522463969403701889979188670370003675575607118749350385403227809751607788906145201116002694483290453291479163180221533047007044600307795196918997788886294289800485340771334898309954530847473457728372464277183770379610992705513673922765726833324939645158344342094197262240902829576732543204781162641458178643798968948874731874027976961586638752114973453655821608519735178261443131234419547541927845941002158855780750413814506397205432057716480553469521814030735400967245436966487082625700624770104587660447820954120142621142841392620670782015036479196353548294586704085749069191614638248463799073001490580119468341455509126106118072235676405451931093116093016571312712554990841996759534344630055744559484530285782032507042322921977345599597063953212926968085051382448922894063789410748886637044531384707209984515141020458821138433816405503063942118811852524850017134889551214178178079192555642509462077247625855114160861107273434296101017415169156506029253234750102788695710758036833021687352130817117699671249960307357306408650202490980828666191467033903145938655671630378294326228278542158758736824920039388925687930110182479487329931691721012353087899417552503225180424308364600431080736376463995008538335535019882268641046649301598770628031528027504504216340689167686107353814645433071316207932263225674701716580469402821133118249236192087012679822082556552870483504985122424820466615812069074563460984158609102661828682568614495079354821619430943407559893804285823024241676940102763756021783690573838484846430159799044112733563924737021471433536258944418499273983872142686507142940607194776313286890254249281706129577659219215875155479888594979873802622131280336517268225438308282805408309526202429873472298961707604827097588155371171088774710981004512260997041082831488643144897861810148200778626797232847615986888276463429865462138330429923946871176396556441428448557105313295386395222265346780724263082092846329178637423546591779371193088675620010384720698742147919642039084855996941824920164544752657496828428727692863401671197589534021173240653950453639804023981314252524379568394236783776300730663968816627061825413162623494860448719981401478904408167260697581324740658374651978502470093076303749567222440361177198306784199768793295245104395169571138706286434986457807404420265849608979868515789785192135492432577218881785232147740063335220381157878550538905465396325771181378616348373880571492183959795366538186479311762904642302133894212496290037539991171007309477880452590150718030648265021583927043769377262813152351982962122755136056710588038286020446373915787432653412280041244345183443312848575243084717886527874454672541026122074238324914667061219564018812817650251086813936519490671773765741570016048312435307873324600091130213399950707979969884914367952835149651129824020314526843821689220878165678424751340323433015832938928822660252764571002345617387163284676909842058917359509403742362654136588678078371391289557184012613318699249338489354020047606402198983843487006763464231138603970995512326968215474861159726029196749141545134388925680358482840374244389796646504875360668779360381808373529718865569326780884913951474882961836465577698428616523589897257419885657766509611933099655668902541463840042265027774464838451568783918212695373906507197177252692529601264320728837780109938941500359514477367537209250409707233158071565003986405339816395262510830405548058099364605404328481404115366625928600310890938322077948175829429849780592302428581910173955388760719528432858934002174381403850496843280738349226784724040802040753524474295501578905182908380281821916705810818549029218445261389912066886864011798066638984589077512669921452293361876814712964584274304120698306182949765778784665670394505761689494885673274578101108416781714832341346754668416104442515061914301026192615184634291724281782866774123292798388892957962763792223985945678362897669328486618001505251797304902398999411425181807975038550167541913026147237898442297080093947271641519413753621704153899916836292229101251389445032729956683711686760465393127635875092707762354176480992446565935717033160300328579562553312447009884723048416830132826584792612355175470045879939903384777564800373977055956758637573082782132345311783552690639986281518318387378086789247091768127445113919421467341673154884072585866247586098729736705182552953140736871161088309253821827432352577349991502637481003511232354273388527484184256934152336344113165843390670524165364959281991889659374720986600176080495903768887062152335426583740418794210752952713192233921978241503934239495957544408313332969322304115476672410391349837514757306282290908009739525929468990832980597713712699145391919002737859796390108158012129298652848263728959920796901459829463323649203119830915659452960408964637567563757519553659364716795148982992254061177379087208690632456914513582064545764481554578007204213973922507649386221009920049527888641514738399678816209377159046693224107344414625005782412583780222233892222189500506145523378913960402753410073564564210866160476436245997178283450058858256976775431074160407995241953900158129441788460691354421806695549526478507693894388385071400657050761203444468798212267541113648908694827608502429488790245424494705033116368888064156089135196286779894239851355113061365892150445098140076202915178569991035425299673875488361625335443179793215786875968344693532409514036141536925952257522492392568478700252423237888994963364040212756243345594014652118555184242868928119740151883289804882892885925556627199342257064542848227241214813849321372139835913575668104359645349587303630983364613663297288106450811846464844191569422560024147968003634295318105447497366133750274421762391331761296719433704203916129737990679966733196242941952275390762177519721010065103361387638272341103485818962592804721004523837078253300172477181511676327338629119044879206692199981777764612522984674298725731557387013081632127859991910863967509459784577506279505661355054734120576649577965873921950706707699749563541950312449162372020096436673720480326685652218069110286279838084431904421788073092436494878537242248116724408602624939576205848707310750291898298173903380998794939810293741720433411967490829534339789283919299176822609179096551112584940263517264038864726871592173105329642236557756088892659281405696015354257870821739696027659573469875691782192274466408318800176354691523016979560171097246481951450328686739087657023228073308196156860447630757929062831092118851545123184348486520508785843255182903332307226986879612887104779778123558654217775329236376116771759993587092844501217766365575238626274142557143897814440369000086870092221563442428126097259457070089763596873559876897163426957861364729193237539569747473099793939599832989341671548530555697823933085197845741483093614114107985106532006286538813881165602405211129205511430336656996031730152587528220323049951671240051767502364479036280378883627561057555169964009461822647592705578559609049004567062861571936408305743145278253268272812913420964393443507459708833242609422564265469883989099311494596515200987388619283043130708931255127558079304363855126239984619563381092691510775067061939682512405224329764911856005944082733386656706810461239455185206867194860076850939206940592262525970487443501224062585569820712215492709719266966556712029256703232845936356929764157189656656168924020361575041813968226703990144111380727148657441167588373614278242848661411314790099981797237699865630609583910406995994223935192721417462285637671448047628784457862427331628834688502695684309000387435828769043753554767215985855541893586165198772824783507756789547619208835108386654424870284804852870325211861309665416968317058543032938066750333382902482446360511964805031405223896160468347169941609425162311887313643797743753984355991237902838200968193408785986175341689523486958153575618867431901580268472190371506536868368571648297201083639765289260388488937841209872098292837380990361481493760032497236477080837537606353536743900873737022020633041126372099593184473848353124051337900235217563969646311219890161667524916724499013908657712012396365437735993282288803865211245912518432848463711189719913958793247169530579305214593130899515995188079957461899684469140210806145018548865095793214692992966667617609850506420950521897029149267679936856875954278693191819774823073151297864786828637735531795514875481528181629645909147152943930311543297194848914984448809841746712812102259602296633315888207986363673101384805479637675205100775627449036167797185075602535622250671807153403869610214507768452404690490858403726636708808661141958834034546389048426145565822480548566618080423270336430963292304164241778696140784521216808855884631638198920068511717938162914344618339310657878616404709170291608657337457034995801813445055994323729171539904998031255667264443043234910590713155233048110177419038452160832844888304689137904998879439711611818790783013808912243619189621167134831986020753581738848022024079911585018669194892929375670757990331909734316643789998821798301552981593301594391500154348932514465091407345538848078784497990407351012627201496642645825892596482689820995507028043653873918659994726385791043820525301299188983458176132123949549847118061599820259107708741776992548754681633340804688609978812836582290179116007158652904482179322378586689262409733758544146145171489262845617431774549343731139193670415639623703339435180758173617175525166395111840002894536698536658166035888586874655947951132284166337052201936060741816487752018217006245934786434339385127378027431612220208961508897622901272653044399035074787311722432673759963043048209431520225768286673653299282541450381308186001744343153049899469589297194419247955889494523467160184081466548389598326416506514513366532259025952712929836126502283661432724430016876346920615092724631088005803683648992948217857639567297708240842139592560792223624769587181547099190362139977761537961823280824404594643904112452649122164481108585578565024404146505148065874959746994458448720908770150403016325299955824228335132516245947334522486341986014178317833089331000858715536832585492749675473618132009516247247851059465388246949808137873592550547627445763533116620496686209815604841201842932622362504820613006800221276933822851070107065338156172130268127951342085324117783121998521584181972764701887584530771909789042882506282465105964516129192783282006989715891048938150019615209075232058095034323601607754538284818296522399035869791566429101098210761455460640828751903697234410643471749627288721615055343940353377622241391152205729757777824078844995782931910234548912811437552313488924510491487174086573055618590575560392993205433446718440563179064653961730110250430395081415490587226656610383469034707557535972316581706963211271949845264080232968544420706980396859151274648538877550393919607683554063133028298805807685608885161512643692736556485094324217922340537935611637990744531040731473315434243716003096285635442703946934930742908242165098541474256025259714916346732138821496128214454218063912330053818938167439841889464715270156911027827234501320119943203512646954128299489951352799513822734242203204256567973807251963291394988561248882089624375850091410547058793372089035677878466461682255896099555383781394849793399480669665058482696141866570288724346408210679719064795388936501658353289490709033853557837118978239314685016578217485568730856686219937414286703768968978824936041573866622020933602682577613619448498412110555217949635690827061251317403168624786660835999683369015796602656694951269717494608391179444063650829891807745388107822720326559667441788661262236303582073745132576574210021856197186542800416433293234682510948051212217638598017950604766679567946566796128887945100989894180845083505032753998156465966195052687493572758598085435947223611449115890111167881979532499776981220498810436147487277969809632548713661902894440660758726712941877120667269388044509324415269897780435511296060126695500307943935049265841606435274298376039246977902169054194524924456280424704119246273244616624369576416084692158331511616587355828633870212380935866207691281829452223394127544384495204656844128580385324303224186508512970802429969927588928670229002646232834083965876587073841496710876065032163362068170997634736298521489849919536379787437392900199075152449504527587179983266609575288286021891526450226770101465649928374633266494835678607264410859475054773213506974057903755030505550262239810577825119473447456737460070648987480432588922196149024129064862393523788947026681373004950362824402441887194391511641427855792056593812208644952970722245311186959363920227518890734282631950048455159126187013701185057988438880952146978867973723218182051877467533600556722560266741938614756828237074471123348815722685100991627424020487522866588103236871695573703568453617904132500584083571478805776257268412983577852931698110646726995665569697341666634528834234369291223699912862992231740140953858779436600707505550084035771327679995632951634574719955871893735893678072871973260946253747642596142368772037246850040796658187540175650432031926496263576993438490877099895307137883054761221071660481900499751928264945624764824758773542770858982560681520514048604728934989015678935210521702153547277417293536447701282609558948861468245045748500759158982228680503827746881159002825960630590611548901266640247246444909116434194793319514381071634602743302124086987058955879090653807021830358900875496072642801436564123575243960055538811483905678667526579737966007095749737357741255608478384860038600809789565964661409159951354100558973181357865938307866099746187283648787239891517052444811232945596712312848557826735904620029658222872047830402168013565873994782803431442411256628212568632011148351849254173857144133459719555458587464086741245376911337015893382425103182201873251536662942322768846064911908321975926199979085555965810524287900209482694410188503441718532214721073474456977254041020018915141995221020208254846608241734492144482888152053387841062576421702174732041952777541343248264349809536840383669499714481455165214438742044162645950664851875450978319894379396238022549405381498676795188002830750374530732545173201760732143809058535728965127533522885249240374777409332055547423020065440051703516044772298449952965049305736427059661404954063509345754022326811264877564732082132392749000555946964400723763407278774644044473223059389463312903924815506570526035156567173848399204870304698735123145236580185295115894905141677344397694950431865414900551018740650248466019396852828064608904195900587176780398946242108481525139061202346292438407136757351783431544316939554577261419886268785543220666369288339470532900481249963547821118488276397488439734137669417061481955654970810445576953919969001487726539924610917795396209263710691086512383328538914711736183508478498687424197991673599203018331768633886085313721970291661380791568292210380975370800644501676902099818814657232239096680206002046944437326347078665458562074392853061871017785899986664663082264538031022127675702564999810916994799443188684779802468934695328465430987308297356635727474350485679929124271306180503435965008047116302548511610828033328837377456823855490481858900642034247694705955578187562350255570373375669044521754912599417509735485159605131924994512289364791747480735417620115527508167266262462610633489358668674110435334096483245610907055677992030222194815713915252666634254896700982158417662278577470265828418704658700332353375068410499799194492295435380944962258479670903838791042962069751357263060642616181300437328142858934325680906097964806353613512593001590808022574839483920634049576233091879202170751499070783819687320860317273820519820066079181004973781035390552142092262128805089994540631353665146030396789572334925957122137412492492183664250964061663064803383903129626985956304885500863044641848227519988758109403130113535881663051874412871203939515244058437226165125655056681447107899524628498535674504875997235055118029464391509723967064956261755753143554915706651493449381488534464320301437896559719561006149521194837380282129300204892799045267450022912081566099562810625106048292892765050978399011065158503497320387037677552275610970214744106685637591236827274910211483466233477949714980281368670650573897145790942377698538662316526033858007261861320863829970751467608887339561628700113359195765563220599498928915230758618127745166175675302494014324593677551641170044208463639567934974518734174702122899327437816123940326500033035131682945830700832335709498397974305954690476171188833760315074324700720267541190679024841526210676645122665911384066392091398317953582955042708158936816823827991480313679854514288127702121645830578031827909459409186422483912496877683074820209168054472312225481078407089209634526993232196162876902716077153962518950127795126828386192519424049545602081962805727723312236845821055982813598357185500077435002123528283502955232070954105614734718857989609322025273966931652400982529936975036872070517337404190783919908794279502963945863791117358873855661619894607639351972914318130736519477436351278864043261396376174017088591091778934922877535831791533441336821846047095527109065255257427053004558147509389047137969170245583684355810716680772511523112896353902865386095162325701681987846396181669033731950066593596810968041897258631264881959522563031383828682814713341647012795259504457552519132378888423018939071060726098297162413192292488161573558718682540118024533377320537017596410779025708803619329328202405836241946512854016195349293504221271431002640839873094044124877255771169773432459017606184820751323852726071772736249678979945651079091556310172628960518679675938849729869889225264738516162285635132861660491038878848837281314825911323598959524528595712528371467742653197305341376820475792181401568583273246612053213694296026190914871907022107657541118679104930795603766863353046043435618386028303954660974740949374724639146413090318210580075881087166771930597684778085507930970088903025876653721078343471295768489654528884019158183788138493825104968981789205550253916305927497468017379655623596654208266057925521485387417130005905273316899567394327957842382032229173006657660042056531486002494928842785525069109199060399795582492642834531304445027619486680333324257528398960200932480885890547845128095198311079184784624845031826267321841770359136859423415537172856791213687776972053662128150882214310682729820064225198621163222773672307637375166891618146815723883660169279323368472639098783448043829962571204732187208052352592221256506479579086104509413052888138515492451976489136656120726415057216458607085839823076740850990034987750259015284829578124889833156642230847840430438558767103382731207014817288174617678332374565444194645756009901012325873080222614809933121669861710489875201044907032051614811911531559540683030803231405444098928216480748174936568325372778468769713966816654540231295113293685870641432265903229116679634496050395452150564508296809282637955924025770597611667888656827153189115160551875167044474757852798661088225730024882853540472313333779024607438855898416314007534991113116192335905999691944166238154089796447879653851322060197767012804011146565216165273984089159129047911527080259987184928590542249684790443505206698154155488564206303926346907476757357099860172614933186147021302507602660330839958841043504307702239507303480797248594811690992380086280532012082208830054170866582366974081965356306237915286840673835812063237043090869490127600091073352400917561216821105210709060927538097928004569461437029037424717303068322498716978989835208084685772667130183923155375622925834242969397198586734609989638934937331266735045756452892804462653257565806807869929042031518154869776192512654759490470839700740830037358782158428602485382735054810010444779786930331133454054448014335520019952218224442982874337022012970854171082824913208424585417229211385259378862720909910317683965335266209130645392307931918042107894523135503364205841690036859717898935403217540797124254254173036720070692878790191491325763998324734140196017847255258019317026852884375461129318748772609087750038382753349040013372958623830180196394277497981117723509655805084037653340848975981454265186137092249055798141156213564915219039082991631091805926745371044689522879016900496753275387913550091315015697047801429125530582717697903805916586635590345738787296969106383790404816311324467830852499363453352018616730557171363911370225226567770641520780726118525485770036080974634916406589565527948675290192549312618351751372108641196823083397047285167709743136472668804415417816700181825282214688323730046800557372386228799246115280431532798482391379063351358079103005638625433015979191325082093898615238510314632461269289398142179160780408207294657870461422675358897048651496199171015370621002759468312631706104196385854223181177802493056988298200512542853871623691025984748429086809017148820747550233970209093807042653573929093297731989738727429334829738212415996839515754121269160003841821445561913626798340207833423163249067920489546645532733789064553927830628791003083247929426162517184414777345132322227876489684652220549041636421827364330288822463759674195586588436049266717491829437396328053141380155033520120550339254094955757787612912483856590813903638693956370051338202917088845228540344823890062819981405233790787938826062133187767199624666273647808927654277511317107802036243565791377429895898064583142781127528475593974804334034016774452943973983962104615106871421744062711828006146142240780472098199272122948439923697540163893990131432010045562128961795464276273870230379404939105287175929506124845472755005696300171293565527550706654969920672003792992869948087607002970073852180448428162933424424926179117557383974738977814389333018611499297536954326011343457062445866079910849030682998582420255644937170239866744469669834188186742727490546478560565125606934900735121667419718025864261319347835480855544928099316137044924148590011561434663324084234757674893549437549670415804563717045799791789456707537201959246092068764650358293129783588530019252672848799738929422490755105710849897495808523988966100359229381195152053927936751055793455361498607901597591890104694539643357142985323608376254122449281813117168857920220232624203524173642079051697809884661294920029060385161728944823747759290502299695558670061073806041309411589148184123425252726673908743482890668152535884701607146799806298101983375358363215469533452451266405042499450263623293572673016653758146866938250415627173740258808066354218558451885518752937794613420034978333893691943057681401036509436331683901530635115572008506232353395543648066510101747290455382550073294871452023697981781440848764204742508815073608584661828693727942711374949734399324384202391889827016838852508184963585035648836257442406936259607112240962567687231314756230881128501269478511653391640252715772282766482258527271696652537660603583153711162332733219965917531877847353116902123490142212177746934869227869326075035952150409196781520844044020168334620349718468316080570569596255256164567337167721337172610668832200153422443795414757091614639032036398598732757639328637942620675862265014111253034847357581989300320441060529366632807687831020024266278629426286803431644037522217968382553040251165608808451495844746023763588506126875741450415514251567623918416110571244580433844762670804925784612155364868967241758010972324208953619075085130119025622515233542239513494349402076141557206913638115656893851028044760589857095329055989347035145218123150146373009951078258635316329160781395110704700297404325212321925768953342547085850505272914860827030166597213528797448436738098208473141395990575568854539208060919955606313626317596382264293146596443332724470217300500950085599569639871685090292849432884325000772444252918354281289234470233091789483772562820212492066202963793412563188202885342239328125475573600819838864606220674263159780803188574934175027345359071064795895870498063908990509054055612429673603083551358068453939124701325721571573390025253380915167004108079278053886210132514756786380013779189877593419364628238655442976556792401482358074045698698339753594174352825411679409752521714583481767026283656576527268725057408299889068796443428295030335175856597211986924308877020883078189946901501308975569420662337518198340199077873407738236640668490072849604416287205760532935897509064551572519035091507789575928854457129133205702718602493257533916478226305906120813560599588886772696104735053801940496431447045132148527464639360503863107576635664240316724342941563579443859882004431111851576836514677600020972282085160637784505275212111355343377244372093503423969820797058477132283421570008822853140948089248925437466444618694952368087630085830374872364005005321645242827305234323154519951230016417275759417616915984880216544419455265073580550456633028026851790755521694075692149630194966257903157953418561932759690630445146009297497562889490004627652853677509486298358124454723192493827344356913568499426322775557728493407518256372531864527919743842199998394434834051457253663013366676061142735284006730372709725598283413025851948996016119659630339669568863606545095323280422483924042917476761261414199174086641620277806221967514861510553184544534610512228142073949797599000685191849782642723019792383605960102875595335712508611912428250631826877714382689061909955226883981225355566391595164034615897082224773212187237940791563653691374502345419090945393194753961553456033342906802720932471185820924761031797779987692922977965045019225821536469773492392008326526169186601675353248031265996135467699152408621096199236026502419689975816984415052971490269972116370880275011222389858943443349746064035169855068785588711317331641872089335050510570630937649607862506573436974498187799545217586459198491047674899935177665235635295615053541150619698435177370258090911654315764638402891234856183664754428520114421029350959006045528262387387147379481214260489432857713731354642600803123784303855507854438251173057831932141800925615145829220254538258633679821662268237167951556340970689778675711274581532536790858323732669536432992253609338520484187309121280262100853101245273363843542611847164552840611941469233390295279373067723534496622049827637067309159755044067956290727312742075836747472905967959592803327719504665238545674629247579433498371592940755034093887961203641983546900554384637952502050962951196245785516467347227292628554894166909609584577319000496935089405495976211829126701184509030624897800924096678298189958196849245765295142728758922410143812292814539092015115498438587279596827242536996866470708370194320720812656793943604642418746110953400937591810990728861748452426190391245878170857382857293926137843143140199922746077391957733647858788401954141335037284221267841139438001265587236070345792716136109685628687450911943585233841769585364792196601958082944700743247409760632449022593168796899298125396159195752282984891078126087893399793620267769230012098552031642525695456706693167652720116871171816501071558616034970200054906448060729197058449569533430333161285192642229492622945726884605400705022000434227638348162957916813260971357318296312712855155370145878295548715373533680880080130544423768783713551065582248898269242736283713624330737255597501393202364871437605861671985814024726227988563273010207400478536292755903947751466392525058143060960719599301329790739247397541674457647827857846415337179974778354425298525525270469976292847884211374370666055868505520154376618667925848284993879891947298390179200453377583065273377515995532672833422619979499644472252465389090323652289146512041087517254032383162743649352508754640177810265966339532297556831722938541426228917107787020075132217409863828625607142776644921520054895102309024883121654323391310692801389953521443726430984511353590804914545433874302531515328900635224380679056542182914838587350175828570627689717993247692909114273495934913935755953223324301891031724389391936197112014095694623913089969482450703469428192270867613646797839013141161743558551182991303805057633104452615506168853826692753115992725615727417781259108646755173551259913040961498255492054204099347773286757592431492566607340031467278885307465855158481428597624576202026989189677193815694191215038508746909845208715129371110500972547319697618972341236008534321291105009399141624247834861538699271772169450562700507875714341192723362428253185882797559047942673210004146399584161090783753996596759752338560568538451033147247847516965728943777574093097608770822700877047111845634207108192625014377915886125187296501962665443338972653673745211681415718968952222585714190378403648623056979265578036961765137047758264753028030530186791260142698161401750501986692318229127009912806902517903966914536482338342452531285276930974639958217954465669285619731216696092310934362335167315059285186896031029863781098757031657379554053906466000619953952256937033856216747452105973743801998696524322215840582277185032024493016403724875247216889891931340857711741499913832678133915731121350488591867198913779093818705857036798627882991848457524973533091585659516900791733789781833765557574199360970742684955950163009366556473269423766527531425883804523094204725773157559660283884356175984209020969861083851612151896526064491398880482397263928247001106907632695024019195351126311594713677085576548377325911876140128164177418395218033701079297117380201330236424810557851025882399506343001235776196759637551746382970046948407516727647568030125273780990471062872616981569481326947332387320109298407306277851123968129194994645933229496328317642041213159508870893797144455395535185957704944225335131489618552923389426073455280974228515393117649149867685441127267686218516353751871345887363323739337500314634510066745118434898952140856688409211422398569894440431276652029969330081334714186273575088720496062242302733407313577957807825277115975972395245360863019525717101432491976991158340159687957135825886408718541965177846525748969677154852941080190608087375616983771419801279758843459145740047881149216809999869509809637956303347769640651674975169881482135226583535970851502475626578265050532486280108272321228321261039027748593829003406023228374627652296880246833772050384883796922559692252020527241951308516532266635717319678802022025712902490767663563658764162125374492228618141920839063484246312308461212213108507255870644108972522816700420874530275128384750639250596433721978880806662846991287568389601213928963982470630014524766895520494517554074122304036259997613856019224803144190817872324235945344273168327158625113061802528361679731382730883916261910321611884542905686902647953231219378923772905553233415133417465956681086977263559965308572603573783406976121862036144334529025484999739676109907916541785053774111911127389764006314990786349821419975053055194555525499238296059404321777242125620691959271493927927047273837607836573586964237238135064049925214254057076886832762763804380429630332174535380462424692061008772063793734233696910647501052293556056213449880128236282759157102679167505266524523717947492096456113283398515292105831343788406204770672336646502781182239669984863552912497445095095584430758056858473774953797484213621226553364765985569154769191226951752440493202814542855296531440858807419364008715624757512638317230439483701141766795148413805019747782449713308245862009570608496730641693945697335021530919931641947334767898502514195348436984659562244317765276938276139156578627170193924078420559756381751799449319594340899679635395545857387090119928637832560489618141875373091478829563802048483507777819973166659869710813684898924900810026977978487130833987047675984287502038885328080140986686227374650957674522734257975341873314102364996316005287559878408150614732993228914818416466144666811966935250236988250859595055224852843407194534847121165141202575144840198883319914250474914912641625423373049977045302066492631524311819447027860234403795822950416550973210373252027396337955426487325220472500845178885510127638950397223802172711984892767605964515850510787342854970735590234944350595886896132534812652668693160026698196504428733165063284271549370177688088741615918947299444765758399943410809628474197021624355094567909377366263246232264634732407112966101708513855637838948470117612253341774335185346096895995685172275957881584121114716323699130049866193747683689528432364827779658201516780006034988930381506751216059724370091227860222938219853814169663431200932410730616767811609975159776636607582799686689174084065403987749598277553855198730659607458769216462123300644833848132318680671886539423521347819412419819593555895605474802429024959668609865275174550956378699529094858704509331804872650015833693521434903379158758923403895462431227865396806520723196701513230313976373255048855461776205034342551266251387671501300966315901192637289131568624081637737449865764229304912652375261928177848522902870093194109847249322492530145408246278665185626735353734703275603377986207050916484027859158087709983141942987678355923176098667019648274363988700301894640849790085949766768822367576053904831148710481983813523088395859832634978289146549297918232938950047450695735874142928697368564433544460009007706365243578269787456121593458733270224497175594803725592882549498873979112392098294248253745482579841402264409112023489150813307743207608457384821408318569207997320011248548060148560275099670287223898568022339482956490324971222492720802970248492339757819910318310253396485992972130942775182712653465728704629967643022136984894873739808308371115021057188327381835970559772690435544795662518351502339290210215350443015582373072214768595088129070466972735661801326709639736412413841600409454572487374579138817691885722509310160980582063377531837682698995503667216732906031630111176518134461519137726787496258839749615329526777237987925492929490729811248994806844704811330215050070976628650255871797453590450343190236818723989554590135301909555746410004597395195631784569970270494348187101895967207977998846061185403869309118054738715818054788391304799070130943886224909633148391669589587716333805906069549510856952063480398059605668455363630501795497044233555118346483578887529412377254262749266614817233955340259596239004929791529028605777973041444211751650264560460730277570472513747032939286547157860325126611507789748395308676840243784178587778335449477615949858704522416413737093681454392717855500440868153255525139859822945905624833325078357504375005639353092490415044260926093593110139051824206505917368271202580378071049147427172438821367849026708046635221570010106073679991176650799791832622159122941758373831289153458346376071069982644828342335916566745737132828659554646591513987647900652102541181006726267598228658908977842235248670068623985183832629242560169253527616722327282549803202188970841710690121503999842076415156196150476710432391003026970699994626495501261553600189750310740950982768847116410964899389602263687858942625898037787006098735104836208352644365966889463125575268042712549054002238747599946489091076658031061414917060495522862292068724169159105874067771620710647090223496996471235191869582377897332139141530673793932004337887375199008987143315927687006871731975932098457834855714265411543121537843197276853053609505027436348637455085055532648549656108212749956685050973860591990550590183320958440047609247639094326361418311605999913420511728555304084204272968023220575547903323853960996206916364697663230807193719058145414293657259485160836589630812108205002674747310914218629716045020434600352130700167479542286723564992651307344341926693994965081455940930860842884754575895560482162866144878138012209448284799997335189340247725046120544617631391386687040226483805894273081257396956817567724834347700339698571407714855350760879479192601880442060816709566833523306636798369089969354602770760604006838719430811780971790089697977889242207886997926415053876702135438899995506424866177108147113036409597063577748121787968768613475814469520836673825648786028595998745619328540624356277588753503123203985637123619794648576351173170802305573974308053418140939469445991247414059313648337437958420512340057886845965085298237425733029589825719289160709783287948058194465651643982673831426404156021350611808195829892935356661974997327346913358501257232886020277989566523804854705120590127326046719585927683223617224548116293926880625005440708346028738593303919684577902111133248454565972822062947879087731872367948784425171212352776820957877106161576970242721898553516928277803783993497295176305277709017441431753300040464898710079408427471049930929228577568927739423107686819878495535632325600740432895839271340174004818413571070674696576952451860221881346365841591801385016354622569458447243467282783474709951248205624244964936355145016303128061055863703985032316304375320419800664455753252346713774315983104710746334152681569686115737645884823893803996679124711606102570225051278566904111249450443387988769974505946893537767419312899790981918151668403831427425774296668904573309089155595479052840237638258954950641802506897771981859285086158310761117984272643881940253471116134666369030109265900703155123596827472787382958774456918953100707880416115003802965751331939476016264215820042764724881297279644116463885279630454109472445687347758217042038716962239736229200274093991888012430776533935269047724319254144464468256678983479090887276810155189003883345064691650327308522110163728003718249504376897197406185795791135461188635108503967239523582788267499839464122854149395676608459739556636557937255946261784338532134631037808597614308457182351392971977492653002781757019896087663824324781063058171681911845549324051318330831250617316715608944586099942405243370314025187454382473625846777573910521473394194328470858578528623389990926669107307221593921874797409158281439018254259818755974879111420133688898224369294634804333899453436059245904698752791708439574949458727720936345622748555977336921805080929415036651226394751047821646636595384558076713592398290830492886396996274074974872161538596966107776249843219642823361756165597204720740326869422536212300968782069390240385634779668388101770812352489933153304819888692042505769430128802756243524804947300871468800176747931455083719455795901242967954556054978892610376698600506018192842497971841847116911227957991421500453760584196253235893630800901500476960096015898972983854240873487640549906936431825904426745763507021224730431088266842599756559341722747334657203955101635388568628775290093277713266912208953035374257337712238361693774247694963114744913965373121975774620167041456576089465119341433661346149442428075046903429210896733457026473669516460518882969065956280241882630779267321340834748317164466790875405423819474829666496427500081469886967034182599281660237345146793648985355615166960735759669632515550025088155119014310996483268421971019764092570696454546640554164331240078879653352307530796314754814649816334232827638116551413488712096168636518557840129532869886901281813851822149623794890915270922304668638894384684259871319005506008354245466425580181388200060175434737034239253195004421276799759027402263526887543099994312778838079192715776587744397415468903848367057975890804375113893888782239798274290902740688714296939272338608776302940193193977563799605462121420939237850449820923153913425682128195502193867565290058117603204226215403939452952834761528469441490822210473298220112232066910789007514327739937396342188156643201431541435534120494731814625563645827165323917661464555320776771701272636104026561223550819566085952814118726987180303814624185709056165282800445731658364853702979159077916644727172034452152709804503690499739394567176780518635349032261835825577607195330464829564798515787699807928448795759314560394305627558493035251331573744359575851659414557827257512313318738497171085578641403818947516621517633361984909396803280994212274251328934527984906723441476328332878495143118124458382021912392121779861341639328996952276710377630316234852877497866795293410222584966584062839879321371112603284742911359201033972607682571016194974180831881568463800732494303207671156418016423243491057150012619644469169449239754154822977000220286287933806036904041075556087464200432285502004069533888603351948098718239416084535567858565215216902660266491673085392685731486922120111344348413796982545876776908463036982547624908473088862207469306855035546499477198248721936556373832066578587678967603432135347679729695542324596306489504834143177616977172268068040976121515113062849784425833153179767918461072330581425842543622221589710750363254238046983713396442206053852561805202469398891399628178708986128369097727816301055793683599492490006157786556403066108246605017745012283426295392179321775117130436981991475962180898137029561784893007845657047001983757370255185159259983747682935573901626924512748929024135258820747867283313225392400402213653033018824579926901830599932041405094653290476562723422105078256754052507374516674114667522744473666950585228136043525746294793230906110557063245983264637912959607296441886493858304809019945705165987788128253606696383256109991129160042218573599835978742880565457663159039871165671884295489682988347551060156562756681532724135957957712196273946573052295339723956714647030743973900048662876164379108271896618806574077627029254820847421209863528880069359440416180003306326481633494979045776962505124883174890478942463643912485200157953783185797209095404453583648384092042182466487504547366144722752640541349995862373305115465380932317734618141551649967339819295493628502233925471833939265934424092364863809696966871363715224245992153801509178057548590998151290595221558213755260720974617079623971585887842448629489358684985101067322402604606899035942963792859729826623890012239610376481260699814406256465526476039517149633084514679184421504422041047468287472906572386455601877975701437884042199038876886036169659606050458281389414099949524010900403591539636129634961999735752807925693622445869807676008727389636193892626505950341754913328758406815765429228967464714467449740676809634650625149064716055057490158611212585682699185617063075778371718728480496744801468049138929699559937430230760666331430978093164258331696451492988920544264749632261932850359643140279214142037967517296712265555729008881929376569624904686126958516703655284825095069601265420347560925050846347947073997929206415149965711056064563310905651637510559905058653184454353323968220385132842363660342936679976165405290561379698110955239975088818955401753605604002100630245046222738229804185814922616100681538900057174553116074700229740106267393868710079150333260235148374188072114133312793317098754531980424905439079233743471328397761325220183950908027615533756756912308126457633939009675557829169162222416736960146229006388609110000289261809730348166913556241558660720662396619471535491964565231898936455134447273760821603421950287574512474429034683477865752475098983921268029428508454284196076517752163372526593608421127524133648608131011951243979575584636933678401376418151020727742641952495100347286963155792436821447417921300569030610717932121130728684883219920787685041739354681309397096875043431875657497707744208223171917838142563010337804575080010953691606348342803779549560074088439848298856504958107809263257283734002466086724018888312819209291706838851541274992411307107482208908007502330982775236583194735682789581439306821089458586778931689644527709793188900127545858402112034903714860791347622902020330351374955740626943914328127593441023946882092857643009189701025783943439389173593741315572190209832086225881424783886802915171603230044565400858413769458260140326658817975717016122172694104027530086451943294434075735529648483671564231012621160998680038905725281338355551483366823053547471439548804136354265332439528742165440604587680904161169238531546460021698873937723947511821888642636525442575331433570939656455540626601156362226823040525474561694619268081584677972517260866441496224789766920573148691871853899322277296294543343034012498312951172802850659407395538092694662338392626175558619888296008828191048692907097432783783677253950159427259968946830918889525312741282770093750350488932027941736597935044804951305177349479627032235680405700775441252161797133098401602722015673772657044848183988322252633356693634030385218792998665813433146252327013183651759457967956207188633162246903730164293737733476407483304508445962073474490591530576323661097661453088013176083883675129163870596930113968523685035907107640207256108367819765600936502022293888595341534710646738262760189954699159670644456529017664224222236315731407401185262810204325324503723089001751935818463115883557648751684883784777451921376426299477481801920878421422594602895217942741212982347527282886438431909414259900505601022276750170175341371628215785692287754334037863556466295388881437160226257606048512506149105885201076818747984831102104806095962118881029918328966544860666975244896957740356397617936102070308570270861483239536479499989033403424071364638819889612713282847876753369580466370713997599080207724596358053251523256748168654415878684908128121147250839213280790561595152850051643965695427954807458631666086393969646185664508124344077755448772690534080419342986574576157587883258374641999438867129194311447046640292553913025749662633750140215541442103226767218874484189851100259826795354071573391357571194865909658560693938457316236114575780699374941299242159553554911320250631281933939923989476962890556035781805343827101812487305244341265533494019534698882578283544690853516224656449198173781128162145049397374532940401921590529774812208269243779259449385770407419884343912442871850482039387948339344649373895579472621531435123558622124400639777753675517741323699768975240878305535662816510164202677420709707976123723930742365349795761562776152783070869082528678546221876525896576418773452010677802483493152807200198397632657994321225160645697926135621862541308386532408714912300195961994048314972860880179892433525877716213107252948421461910845477230308028369561054275923752048743849231850356857079761281679813540094647050588670515654112126174869901327447094754546246572780247678828378746198215721009804650912896798762099126078417884699686814139174655808505508359141530283112841921223468593081385669415824825301144676146019976239278833110811590708543282153366116268259364249009430112202589274214313647841742515347371757337055796150705270262973245714293717453218682201448776008139762108096651032756885247553192999881972922274161576034628841691918137275507564933102242226238673461420051035367814763175119158125186783813014508060837180097746681894646501117154105391843313621331587573022621223094902875368959333662659332862211959445869458651632387533605339294148015987277569875125387701407287137552861415352068601273426349912467324286089047386043489319732959403781891465426222351105551137465222237275080062309679668719549017242144720143841661826238331970022725448372148795665815204892094487364810567966776964845792922855823806541678641177849272511254437251323651052761111626759293992218278141375734584724573802370720913545859076405302225553402974501846367805248879961397611908924671456478415878894558300720208920986213437568269677196166724631141749565144428564123956968452032728094166799774801394621966279618252308917656430738553913766734482002110385051070877987381439914347284412662889632392762536743954838190245478130131122817140743845779021571748822494169429786483617240814244908813390290219761326918759304509339300799142686551601446047751714185808370638913629966127113263800693871632667418352786047029388201058204108341272077570344397481555390870045911264905381942755794125541706377867776534187825697971278315534500698952235469771338175150550996820823429628792512324907701052145825549281863452495846752172805471328420037950987072232584409729087583287661668947967418475833269923861534307570216429838233006666007668249166282287292476349234637150914515938917744371562259077452194398379499127208645620009430659867887201884080565189880498341821992890958697589389195826505063924067242108068834603321713409495800409699461238091012894695859811021019180335566164822076403454763947266947148972039584143130521153973451829414781651295232491414174793039512562838988655024565024818143982024454196833559435992263903268277612663201566861941559244696675800049520838585301678802399152443283031959563610220071536584460201167225871436360329809716330644727001615770739355460112896921973320986122720856100368618695444414219661516971396376888497456233480816625921529073039611819761565449237179660760324934117704753280973655043339462760969295978216626874310940968207225069990937246951918469017928818631664533156846909604213552159417253195397916564853114542150487683580375993029946160938243036546447180185807068233074413906143484695112901303087961523021597961514089116946393999624508608117584431468129359410079107760291419152890138361767191481949998162866742525220423985954377603987188529418673199579944097747117990556244666869646253137068482498689288059330579943972794540271711748943695678616507693969549430825284322734667000316688415526436366071277831344239936695981503743824816116828642479139133031900751314400898252839182153449135875777663831812400095497840184479759558508570827297648041963201663250438399074637836718288553235421564407679204130124547426383479604319785900260952026040283834254059965910649573574134973340905419509178117093393740257060733618308949319399194710090385579924791056742736850674916659376429809577181076793946102131109090976562267027051854181492212163496175433002287056201225168125102937306036350656450827628713561314225485225205436025592872783333624894879102030267980048217285437245582536913535751947864658379752959330482074798683779269907951795674239916312358812820770519302604441515719965936392121540984473631755325992527726071791336288779758138635692507272879269930548815117025372908210474162700588301327597865495099124504908412312829759581103802580747252067037846216655245699268209486008325424320891930223467933035577087153781600218890519643418935977787119078458952755451858709864551575502631145783450090591214809361743279183319838877545190421077699205339059136257286516424808094590154348084942934034007016717975383567037700387765664148056632935842369974859555679270701544008654555036662654246060131706587797148761965933617858858775078995142071037352038250079050382293316993943891025152301244994784031786363381340775733497802404825542020362338068060155739643119137220034779404170932353539866330907622709776889095495128348373921147217172904604248243059708341971707605137101752283771467417521619422127368761004658516078970992471105922062796210392413650505989099617639965382974283714177056917583867730924657963422469385127299269377160316698996835844572617798269310801800707980530285508288561254317843741804099039729453834750710624898845615034635697061913129400067058482822200144905735598312270695435203432778064438431093983936652042728897673843936106167819429989014832443786770409303725467104384670297367256402901576288995625853683865010641540601533955361667281650667077173706365259049949865049823888971527968908118636116928498943175103832575037943703945337780947211079412641642691202372461871902139298852660605608725935861160174190279778143443228371780867245334251120130941682893213279577735399870225740784218240690574459600935235563165661366635246802277421649236067572992726603695890456945910230774293835489573640703323913132236312570306605287374539667440658823598481589904142903336115774354709559148676202479450708394247754668985580348115250581223853639495325510746804457017164887759519331466291393148280258767104845187398148812887172492277111181501496430911353787795703227480124259771459647062649335061005655826273798623600955776099743252785589569753413567027887913984235694853375010182321557440785807208217282047039723996352437359271912439038950622059531532577074906833254258041031801592877780633927410342648287136597435504195474167235123170725621832359908927386578971720927609585240961727010119519068084767967520772066019894395844125211869574526075666279443101583815810058880290587232403789170090795050109692233992223675376873667860611896013904271064160322014442122211428419080023068933361602881511585687287399528806712416660718031691968968526631897940978533906422253344107787519119492215123148675680248583724478181031493069394043428176829903486414491161011602569966638295406259961779942788232386956953798881717934752161778703305231589786866061566689218237973711281145699516918748298425167693355878321590458229216551991730246451652147605923851912593449910303265251391456926613199353823385770589144980146894133765253393665956295762624843865369898146730870697770677826810057250816765499270860843528274883810160753455609014494465118262099239726015974092535937094445083674996742287812347337608453411958482739183796616171715736682135445428686371093019459616717411038662946866793712267039159434632945857891586653015033217459623370163132095874467214293418683371672117083608017114704441799051669207386660741008945182250357789156406472030166765346126957195401615699564641169342483747800680023077187935790142243746117880452409059062608082756327563159013670195037557264630445427581695059728079452969461275690373105860402588313112530337624303053951612986619348064800689963261097367040644663861238156360287239127499883203483539911051370143346754166420577541573861253703224554886524352950259288820347289082062946765111888875673927973516338159376201780775415863116005986796437011471049390518891283283504388414724011240464324312889794748445166196322515941744964927026855342723299105732355120427147464830193039125724163595997979747920022722558957139301963763646861989944147715628253266846105656346594125089767104637500039836600422593106447825730600718219974368474414000153908441092525834904770164746056541694816300989320782512396332672326151356079934887866880954692402532652982811102994129762788767971693280792707767931348542352780806327835109009128239886319623805046813661127680153369266911694324791400169700353005761727874965093051419620888310373913491750748278384683145166907670536707029990626702767562032018267870036561231570887864094987999448174653153444498500745086516709536331501921721865643878900461457151777886389229769675682172734750757905480607062235177498754298770067607345275220052021559259711691413715832201230405580941533098975001938314625720878459929933357246224432804325765579246936369755146862502036245187041702930401010947405900894477953520321511590376212808793646262227620619815222362099523429242872211993874378969773198917872415119830790154280968060459631457394921445407773883904197048600652388249415587918334989841969616454509586269588331380931026878506756034602852342225661339943640989164453060588076670030028183073932487190091508522628515706479262261420802548417333237703575541148707942404167099875125607153724975901357257297487344958569893010818505668784520832769563193296717896423683585089164081462363837999290247993970204997497917894767018509607370347904489889526653185377499194862241746037243841120469344627460846764572075676224497533579377952985386739861709912945198689374704032282325160510800302837119594129919542310762344949329494295164586010267782853371541742607188743636006032259435702051632184840400171125152762534986992567119262439817535921776695803685110121054301695825844065207011441417026092640335513338415807889593534606070302147336483250298827478429617156716343589210102128513842172285724141731787465178400290545923426386961307713838391090295813551160606807268015899069824328426920768714912161825185389294824131046183663844894546070258150275032885322397238439101960837560012543059170414937414846145425011585295280944706554016883112633212892455309123004908185736168413127698077791115238935479683115125534175804081096966102674075293017929483810726788481522646188869866667302849128475654336246739837277310974869641946108684872401464824560002759029089242382431671816458055241127769132010142242071291847984890552814561593041257207520989021348432003312410970232440700283993907207244793118322965081593125140601231874069033523756826099667232561896025335496816763094352447649264603131620589742920692727789074530235734091794155546892081305741883910014680448219556806108810446481212184252415557130156791082348198171038997271761963032511993176476453670468663716975489651245502590286580644810243987540190776366083111443259745454628355798989137659144608593444449785665865224277715886242917148425544411647473151154169859445653228180565329657075205231177807991729395155908411221196876771923353967913009417278798312458319810636591300092697100806460226510044454438911632997221021386018191632955819447425768955238924737067126427583869143737791502352168227330309598436821073835033099751322458702311000012257184006190912608777155343774075736783686500376659849010105793084484960055831958218819114555307276370740475029858069169191030662348229674438285382026131456976800659863466453104647096011498573614962079259982641657266761055707317531200496526563897684574616636363558222568890732216964431329791031377785372415782837826710243297183965468493949041939219486835190986437034618359270033251314928677666174244573527324703867323511964763897954149574280631767079869444043936708593467646510230841748295481296072828094674434553625764078585970961748171316753127111041650579866948547015105042784891850925936310247014123617337376980554567158650204349745340474367703363713482734639503871099194539292306058768019003622643617009496036276608482331680038168830880953556332752472245535108401392727807618217726025770267614875625074508337120949947865965118257592118475167470448398920308174204412261224398027582818827682680018994174944209671192667228384654840196163716523403296773109481130589144246814179086440839324764289834127547726274053913763313937860052435729876007079955333313888308697695164860923625915591551905618022207578048446915246264307395898372767479589250966634038939717941211872593142298255385126080550625468914512566248829156037004995565574600555186841293750343939694493520495554602720786763501254097553159247817607570436082812995392143811597851453343937352997865309911247722080524412944928119112109277281164974945621702912602964209779775569252811328487460273104015419453589440934099631703366745353996960687035443275505705169777692018705419360962730226761173088124131395804889293476738910602771872093549951154875595738951954143456112231575802479127497851330233132387285459014775640114973327386565707048850365914809603060058901129303189975361140737945586586004391838557464470074773530932569888573564149610301813561959334807005960394878672306862749286624951825804872846058874111938907702728203727739534867765721961950661736817559239586083672255414877264331275623935038875732864632166007961806313953252184046629996261590162037390231558255657862579561421682115600954023705434503459386365536381909103807684444020480334090226745164326608707622572364361666827426962129125447861297553903207082277472604435043585966372088743083046403028046029714706596283844501355774339452488254985146086028084276080002195946213990802522348413576801359307455775488119043274755472084157093504566724509975061792247412022430274182506885635785223859064722496015819408655429107229949444197530006279291232437989445721786933324496877646574453432485742098022741031352332088551264962036085152265251533825961219731431105934340166880548827563121503288927274275498629258109408683959134878891543809873282672305480164991119946502847338693552333634238576681807987062113404505264770458855832275102814998427195424430574734830951910783996798255354673627881550553683047408675805630212550585323847466455079118145123036271673743775747476530999516518788481835882588856761415800827589959744576806932838585552757298987722679143912824180027265005634117313386155424445095248443282944676986117982924992686794601778291552670352266691889428703598152305555236572019447634611380642341932391602540510279428836005518974487485763752909675131627039919672422731283509648552596929787727886634425599590436386766077355346405145319226035352935622135068295475475671166280435935459978858341086176296432894255219617880478448958269368219055042848817074383506598029090993274714887532148518967828906126111703665645257839931099023761628368349497982669611658337630913016159138434417351866571224802308220597366689896390915617815403287476722575561794593721276562627762694364755508186038510126613900501306300231028331630280605905298656566579398738732857740885495675607723188759803293557055104809445922328385436380981372461052651759753159194662241776230925044523409773724716603450352850789265772097775687644667160042651014939027544542154488600225389184560482577598461813467709074733976963516688131059483246224933840813442652878132072620159378392316131844222899973675561383131973170866800727105446384471827544924561996010381373752912251142049822445522808682558660435611536119635779084289483768422017834329264122761218545730113776203275680377193198679838010196665617108510479380965396125581722200829160625475303560293660769477273389114166305521218177302382511396290523073660897985804311722507155942765402327666822677294881006793923369997632861201866767779141186203014077231101126702833422256139282252884557973385254712364645820858326232216004363556107915529262925548090729850614364441252780583294838978349061419490311892445469708895495535151865381353282419948548831523791898643461045398372138938726331648916407631221206417569432076206149222632444007000985639080195706374345959716255499308484385477541807325174382285067700860096968222807393753070666228137690079968661134329722306235225208592810583887807431124492850544585379398392778418493029307547397561562223227971666115779009390271023774459060119292090675342232523789839637064951054837650032154866786685014209026807358336356017563670023372125027478940965250740611931895885103745250526610364926769996628106586095823686689047043330323688125971518148099931290031427206764225177843271426003620076797503477569104492531867098009209874026780535911741566232102382401932221121510547913524868575817767484167027387317213472894728066456741766342030953099855324796485900585632189976137412911541384271853483853724362808937263561610294963725630763160409748606995789289235972466294691114788471210043151327239454920111724462676994180414393837294961239501624154441358579689271836954275222209481627955038448618638593473206815420632354854100152256155023380194030481693586302350249465705083967998992524181292049836115331035337369026766887272450872458892196519080379064406833977323771068532725621165200212491029727272324111569017974147771588009351101653119950456908402313023656059818293668930366996638481576320586948471325164811115045050580395828113541502845622691525132755637194237936588427157958953094877085882080621857834475154447402261947978659818318395392473217562458573188870374006434629817198562139247612055138515211525216322367115408735814467864204872419783502225023273020305236660693259497537647228184065305962932443215836379491527474873999469132097817139785564021607221132365798002991528197861532061396909335865568553521592636488334246511152374120169939259073628693015034256319496561551219645256183575758505462457157930594598404214206963508454619880195446734492354467318438087908637782300907726245971616323066066378513299171165170652603766544010597688571068069957928027898443230211088137847416394895444262186559973389294362005482783282446050368257686952893842552967858658540317551500754146380256588629906126349792841559305250935509584382568347984230489224210942587636587557910706591995999052708423045125004700737254143802797653322133202779674704735111158121922646340041702552185316878839935814709080776000417655944247923536080596066525561030035163421722232132377135945277694548052596486621149410238357015108976777511616402907308972613341663996112360778319318525274120083713290915319269085721290391028661460911736714970842944233338996773692906027339739267801944268853804149977027178820656961603526222584148125639505571457763940918052662067665618597014059185529015908983324806691389601907897164533316263812933538602034168231561152738882101714707328430419837792173058294845039636507955216423172569414255766592958011211705861106851384517413959927636232106538138423524832441561110142517395329978857303845300082079781522279850265710871549692591093160770464109280168318354061796103070799651345894842136019941321807890579490141888985366757344335618119666044665111211682310621137357861404435672419558733726824040323637064181466149076890587687019723784619021120752210641031961595561158155785792570505629404129042053805247455234157489049805782709553690148518808674951727506798501209686466268785659015173229498489637325347609295799636552037898791978359197377612461807837978958000045147501421259522005416982988230176896554321618630663423784230319400562710206548522156711480802522708928972892745237885637957193299894958147404838214108233169179804338078459862890819174872602785747136340726884411565562156484572070696573362666441955847152538693502240129237593773151003998630537761574377844873261727557090696351233253247041832161904029304737607949127161616487733071630874951129522097152729216471269187240374810994641205831032669567014587026616816213034990198268317234423918198362803402563628473691921966231895286956674499973511340075576200510637447763009679033044474085317292042662822222575784423859622982079318918541283049892840638071023464590932061422465449182113514176400387422173499836107805693235333370938669886726305633365338848381766791877481302294323897761315419509846707499558161063197948593316093315800610767504147532478935218216839017919592509316125173549919990969435426977054763772374167086871272114697227469870848112951343616111679823971903647069374581273233736858796001951576170563570540470185353532002587891443585620924380524364952650543287812907814479695669283598461884772191288965237812334975628764240778359561258053672873248234062698624026866201636404986726741287257309841928935595952308388885511280576261313177723586995475273627839242854319625745540338118838226621180565198189439355510827896808056218641831300194266733909841416660798435314344711731500012001934654508468112868777620105015218673242711704653207899414323749216202111191774717493006342206742398469957196882086057757903566131429222078471614651969621211247744524451236919691201680104739423006592773758020098800585096871514257880298283297764664671697951625857876944750202068673661116737796377092231356268614770570544964358804076883717406241968381989068189869977965582618443279667197965128822940094691342041426389697939378472612864348839424454601416462113327332886507522412853145800976425743867637915526901277727225709504641512434539401072167942947031345733451952181869660447851922928047456476290843444277085554322322178673075728799843619934212583111400848681971621612045111998329596959378851768413485339003469526927794249866308640610653427032467786694402795384846637322220098613139050270064526395310765390623471261589762738881304837614709909317218658551191751661674742197261683826195306683848801710902107233607319521701613052707040922101528992497393033768164773562128826435773090894900716553562738903246200550132620193800718564888711739311356868242424978581267686025996214219464049831452553643016953404038936604265881672609195888038809935046673669653835241407553596397965086587002850478242561192044002627628682150958205155250451919409418945182426250866822028294527551071684719869160678190578796782775386068548256770627921306972110420148415412294358242889751578873099793566163706529739460179149577658045802971316060314161345093453961024781115552025505071595100861237744844394673438280173685902772649852220142571594305215103946853457625293717717100043084064594176331175918945584683104636591163158010368055975362358419603349500687112883019891432062499425884532584714778455528854993376421079806997953397868388558990287703905969744975753686002591554444395637864338849794059962167585425532506606964910118252589758550458669951780623241234616764325658958529986415415172107003900535842847571141048804874356000259675933181585885969095035724822268509516880788253165875806497087902341766105778664019826754686678266643655961881771642489837748280218784963645016473309613213728580519437879525348652446150932947537691360638011592552525935524845317464112133554477814174758457025475785345395823690525587949485771482864922869911312890878322140643103353733674653465084107691195982917025072340214031498519956860073748909596511423499713387460318279969681923568142873657596590145075665998096901966753569951998159104623693805380145826538080015163594133318147308670848343982787951754897850905334252447385844124214260932252693779822936390706568510337996118647033593477824517189338928042430634852344890258637323269735984852090432821817016695560920975528784491929973368692327961259331803093909038681831408948890537697980880966203528471274549117936894593667465857348818328160403752975395750986159107757613126269758565045097837570257107584809076793629099080066307953054021826710408448466967636482570576161660512439402922285022428775421822904611630769981185814969196924121539299675957934766220896611648470542766991013195198871794297465802805138877740795946111180583762038383434386843039377837667835560289880261782481153697065059246489053240607461390142912930999876504210068711640532653445166493189020356636929561850592351075112765165708422852342589738002046982940046487552381895096295186150577321286620183607193492164890894232234646091120648834944907547227324371315067014220850165381263887059271077852871497672119998836312874184872786783036039790049507045875522918274525621165902496175160921548499260407274072062651584841916066862396169104645368204318185663494843175402835204995417013626680839988306779310515297635745036405764670756411739839745832471944046771329064773566874167350663839723057012526393874307787796694942880552805492819075392991640592282189387943494723510621693608874855220523831668511701688517643548522880940077891191365761978402514196707178346357930916201784538687052950848303934373247358695643007552430562831916668923873395224458724403184903182299448861460906499271986964807681554215527800753946554375921908611161912639927040873694385114008680835844234834891501226383502223620810522748018385965842319798585267263792745645369815170113065194143525063088937932558387030908108088596739630877402864260620605583506938680317373688103729401543207705649403808097411418378103125865201465122747603313342334786910699609460899244280373226773614988782255868829933882176289338901788965876662574058204948556845059486633804439072517102432360961192580635021413576495486766974982439430413488642244749609675688362073746727277263762316216268338216628593971490791086777045368234812049005586623294035523887844799668312902851372058592142256283471831447969778933540565387822449974680833381430384172739595861960060229150917729953407788805601591175983570759785146097271632523866273291579929221738561673168067142666256248418721734684831478334979375261802354964393865550230072197436262126202492030648083867432375411329474298593839846085228681847901918038247924826062772807686147121994671928749281606574543588814917399361322081956465742249559776073892066977383280409537576328421065971990478700118580503274004993954760072217449046400890767937551945972896939629802587939864391018667559288832651811262889450710879573340341373446024237399667246297868967481308896075007815253227178772345133014231650337811125662926611148306085927822291238777530870039689333300060575697148675190420001488974337166706387045485320662094663223529569444707687574641612800190441777187160942922431350324994009556422618226381120360766723606931198986801707616184431506259411758489692592760921027031378738053874220657014434226852030217057716787868460012006341576272595431419453230403375834529428974538761151634485984612443885285540732994787365027817332600742425057195081293888582186417773079234730970436573672580266179790725055320836038997869770704274037750338148034118162107981934463671731660388939848777108198299891758060280682988064722476597296204041144989896913506304325413469839579005983340519522634863834778879290617452185749885824928433603565946326336072641206524306904797179921475533621271013407010483379322501938941333214894810387424288742624638516705777690232255364271174228445058509715121021903543733161808886297932041547419593502554260829590100530259607205703893284806599969399651370831983267196659187504635440578496769951178339546914232436974068058737320654471590347974288828645288904862550035614895338373672999691723795911899066727363505453723977448683501751848470976823686605507973143354857636185129670781224929137241826420756540088818842363987853770690100489742511246490673105352910579047238559146521784206512667599690866473277143818435686720649145163571139396462604564547654629307803466220283300633403596435400589018409393360810908579246494910837391206531431989066571336027048383082250832156222557705818953057827830835121230873026835124984059610671875334921147897903441790785747603623036228619819352907351759378737309935200131665406589280511743995631807009728708840647738755423333919825475709431531636923222956343852188226684816972551946707910055634707154476622761799522792806221576920322557111996198584435160416781709485839501527640661491456259272757794973855767393211054062363906606186962303062145069133748343672146691366726927668976725583284575722409195750014032968581958807394922788658689271497799785773887309712840651723013367987928252440597789136486697780672548301321008413569151199009084162968367385213148686113490332114577845106996213364320791421785242574297888120520156373241202278603573796481352690045666554503325121922018347474901105913348652141100909221162966340757208873550447701582107828896281554335595989271623471567933347777271084672407333653093900717847768256560982056403344775963386714928302292428133455788081932992621966171905032176765323228060171843688880907626397286753438321948599832913527139569996037749877974884811824769304303158787432858914511450075086122623706903174488999143531334761213203187904775961460852061326293970719612685371465754761482015197591142903358765804266306400192781038928967799683411586196559256694769918951974028768083574327176599047023205632727236214145920878631690100177104500701742724508682021503684276984937824362670961079373228873713434653812226048080406860559596241049584539139542285972758733730486396811243143255601486327059527774557770906764328768432730280349345888329974957822690935762875169944652877683607096040878743665358810999525148075304788386408457201720064646210548644217382190947359527473769808648755339924873212747339841507442563714049630962236943095616107844993582993753739399420677479967290984852436938575459846812828036895243817642131097854557514043919209951109659350432062913388518418177595834025342270115961923026042736463094396619086892137468106261316393298202957174718659606526336162823464083696579467476871727414003677966258220591276231108905861737636781738473665583912522479784944347208865315688036787454987456074379860131488351406787612996865406754050272781536089560991617600737047515716178225535819696531911892317045170969543324174769413529956697930926811012577995898385213255107446950413711499967841068024152498036201152158601676198445414851475026266924755049857425897296014952268676099603011083729270278682069384409674055931273907497985990459944520470650226779019297893237405510400657513047154739100577735449558677150264578773511235433833268260159406511911199311972530884319917360540112141171550014465269124175535975768334592661455408664310468285476218969569661102229489488905667539814881050319795258413332960290382295125015543377403875878194189761057740319471773377331751257181240298952206802162712952907590562810709240851058358367603375174297107809731165989083218434992612839598419922123014067652158473645623060512652282480146432177841095203369497753403839960826394403514619527262919094820564971786359951289378559637454878789075355261890026056988379774483179585321195764339614948056467608206389875356375065397692113805428494933439920116362290289880547399091202487476286965589393681269731799861098832782267388956888862593021675400538650453683889640889089607577066497780300370015301608292370386698581778296015033919647627609264087880734595252730509170381727315271890943042406485519919031524139640630340658038892964885481043457020520932219945362267142514420547484132027590571987122427691142251504119348089419611649812278651717072682174707032354726019057034415565114140876855583906528800812188234123389935085007932604375844838708437800962308287241802809145442053596363828160205968321378889735653665205927488293473987635242016455945002384619539607643274195680141302491096020363964884679797103608097358234104461593138408631136406197289385506306019728474897838177112719232194063561748143871028119661837568568037705759455236514909138469855521119235967965900002820545713853011913316642623784830101736432063589947811937054238929411452400842322782900637063176686796988170076641487955943741806461070646021706322682482799393439741812673050721159379340385334141079858431605510485870840091471949285462134428298095287860972742716577346728329232978576610442615884497518628166462481041611412817884813021304166792742381316536349535732074089220223454784258855243376938769395962429807088470361921845094135201776228350933966468608125357711849749017826170600531138705083081717273708851487282818639303703872504201031569358575089881239402474882124409541238171540435850135819517100066562683540296913401972073390562749775694145796110784029656110696606705354409954525078202700761225330810947354316518993538440539993792804666788723696149558680192831294216008206692317758152232079978630019845494256436873141269827771061605284804337345412573051861242366239000495366969026444009003592107298453664318865396084328617560441017992777804825183541759066572749945700328629029835693647711742451454282922772306778812024173698123731149174035958635044146122467051646450033056463413028357708176713610868582694576893877680161068063654075787801888568279055129061377132473000353629028544724241548545399029724380035346939244494033583508962810936012009722866552998882111732249665179598010399968934743668028062917363487594944508203753528852267071952364041705133897841278640234617569482165293998789933165728929703838908273202841115478863928984225437959244184207698540994514951854860259560725121561153209144212340156420323535165702304263782367863507951499711527994746950377154821662855781275696337422326823333712531828845422900852887432221586191030479136555695221002146782173606869711441091777318351005562935767872525603317703021219306084038484865864705283595399221712610039146772320279101905297772699619765202965791146760485883967784282913307559281622093262440918484913756743384046951108647188661336192913996925642475143281086663985207917968960130385338181423969640763151385796268950102369497965806781122750172290474792677414686673856880866107770180561387297283037192964076433914646811904711785385066304737341744230919731931697745285187227628408696958655983572287251947057963967094465959379011302130142546875624690222184627294050331086118452756648913817186434925341325035273658661994690801011210739187993380890682785271055997790668232380318282515241998077120763709485941729080363974224639913931881824304339820432706171757186325322068709562486826507322444979912810357910968288678998821680200741463555239211500446688612579856126568223822575024726745547345814211204386962983837101686306322977475799099737883446881301753648774961836871994080916149486922118798877211039376868308466173805902776110769117489176890446547454723039230553957985121249871362000376314100084477190852619192214321619520542420494083277459913647611080295229788946732364330245223510003435954851294384915105525681900660481958264898910261311959210590307062096596703687208230070987145843261882479889532071230491588726164113489694255253242688053210142718389767104617856722035363552461754414143015717363343188489095987970945912303653592777341097713381174001392733109304925411899794771740030951069820560609440903871295495935661088792782894820320203329589280893595461994651605289969031073472569919333673084316202693319336941337509495208832828847787685710932666803498266971461035539380541735502325487177480670003496243250428321310062185224424408381626137350407535413444809048793275714401439718686726591229295698393760965666565878886971150152593893880297557908431768642854920350231907149009361562929026829104730698049691885375375292362974235019110342157713279438628513415123151257575164607175920775289135096833893484029949212421443936632834506740306478199758821294385123148667740612812384990552975778074236282459182722814625898567115567618069780482402585345991062600522223866229539578335548901194575896915931070047422800179326572381812125753158269976413113389253637290410993347959366050766572345697241294622706529722121953074676367268416005386915831586456349688508999194933548328981299888672337885405837865322405023762738513387194423778348793349008970035276594786662289877070676576377931277280513255881049741707661749524306696293474579239328053436280131486717889567049157287976962342608988016171429157722935238300339113619349809831660635301098200724725837833495483703029473867955741352828371822759245816972039817441982486070422698939267011156292572804183309102611106670645606246746818592906351756965934039861414785594848258111665883566351397203402912662451634833249001047748512380632789356911973693922946487091258775991242059924993863956627204161749866525085344052456967517657509840392648110296475334161194859113860634493051061519267679548352035989565787864809610880063590795271381907905717965619019784127758834505626914150148219768863648152833673569339762269599201382895131120994251411342000430242904446405181720783430618434778232055809831232806393779052813970853311784926849437651352777502192583369663461406721936398270200488340181234501820877294134362678605729895551620890652322212574765966804151561310371965033823397937273238001618704355475454139343371222068540911828654166541322973613560845939356038900194411490119882551189452691791319342178863221570872178794878550786522864891081014991781930203496674337142802875446720764300028598854441670414093854661752725301341940822096815248696729441515347597721464378652743046688226477368245599656122627108859719635663536443667635411591812651683331718893973672270080133088801414536114665440050161253583120093250464812758725259267213559695951851604022301141306255904100900188860446569670961011071758629387410750091052324510913895611444204506746218543543155295759929825918238492977361038744120770550714477637947841216526053592659636757377816042318894470392621491263816391319756400583476809364660065415740575028225365829940391838856953982620315615681328179910195560968710596942690219277432684097671113878010787974440477401676080316319630559264857184594480542763927076010634046586745576084118030703314355130500144316018616882701203944576301915092838276070569037476497113746119243538507368418467483035221253205608692566375257710553820920001973007697079565684192009106651357433235414947863801487181461063439305647662445857267950325102967708190193043419902208745333485503412158220795725609973991442799414278534937549582528490221320561517721556802911134737216079560628711613696209018005113870225775194033588316902787367552011108492822895068285936855825267870494127361247927490629983307501860456805729491422026327213765873500657016072363468352501773537997221140842253482083082701071555084168409808717353991356951794962734162220249854394871731950079936960139451760979539333374612671249967537413257788484784821852939765165423042615929654737213741372532698746984681376402847912096309813285682402195667021300274226628210059724194301037832887721678145469440668624450643399722756292752034860343511671956959812315488528385420967283088170809910478558357314075393333068889084871050356507902922253124451922093625873979369932149523166131002446068444333813197451645572389274988114717589837884193604365483734520166080178021788568887400495987288157328296093844301966141715381161062218766167769064751169162469462312062286339921469874184177756998128172775264056772955524126754810422630609554886960825351005490341963921978732933835147435071314303689591083424588136212100552419120921715673736352704052619309462510537307011798274892757395903970886353845373599314007192626884708978014582195931022834204436653476026794460224437036857989481914483377313417688939794829433166207814976033691901249764084317819779863992617682981027634397979623721508713357248797058404260518490303495862199096613616164070174743216534262632945017378031430758385485545926722506451979384979235527527767060651556939266487945266763662921793355853337421577249635876824247879860811870542014830976800411094380560701184577335455415269387970780273002575062091454364097462500762344466937596126263678126043353573859182349596237430532453246624262034828453074710269399159438897323254023814817280766135229494187856947889093761599838126137017794911878984013422976454224112862699323627099672828199514562161448492423786405210590562591045253880424898819108777242432398223875045167665318322148775197991295281689234113430042387332340085534902026896702264235079083251497752600564463516214781690289679898618525395287242364265567700540606052634154808291524909021015761206656974006155176090996041091563500722515614687645115435400172176566940217426505428856242199744802081042771477118216453128113218695917644056021939134042105288747396611539272092716124424832473255846808357150804743304829740193735042128238513095992998283227509075523740852708973846798375044942638824559296130755928014045366860666147651385298636771006914761276462805423379375277778603050690836993776609474061265620775633908646234207758803272853476838700001676864593076135107906106070418656550291032457565256867835830974396508813525600457685405894196918629837663247452034265069685935675714931180803202939685445655179152482423526926716621138435544827839243815561904395247354447389196429215841319156409759859366996993428417867803396570606214274968549792054627596928995857868019266919722661125000717017705496406556437566177503597011985136034820020315655852111920594781978589478810216503900731469885154564942530586814867407515545314365359754867416350744074455892345619873455972232730933230530008750084677376475105676657531119984439898158481447716374595528065386687889835797662562188550581241223031923075244623905000212464449729067165626904331332145711538052551697931453406581040708651089890392748311417018729473537422307329041629559829702862480430404687311709463453256665741461849550062068854515384175719055407195085139618142793144129683825957368009361878769902568479202928364235228525183183958601382478788273780944971373437511538764163838574159208053930051735047652541845524703506265370014561443814414357381241776350836673218716248978128877563077778659874584923763072831305297868912093946431672667695688642515716323863940983920681963248468160123682519963027579006779613595864465373992809014735148041549101497602992339663329050831387136695358224828042073349519992511432481778606658142273968252087028604069977491205145657287469946524378473795463877258856023315850194577801448564792240532030729274975276473659111372175163523263589241744500433908202745186815637262765703492951747590136631341841842737229613965392421029161585509922147797610211989839191173004570401177654001897049703902326183521028576277996741981639454253300145661142991981184758585577725359817214740163686873127322978682372065332323997933040809329122918590474204760980025714922702814335715867861353122439323097983157299277715063085319747135912659464165996672570973525748370902784621160487503621717780027281911739799826146243433430080648464925990491629188775938623162106910577133131307374284306182762241568057365208927699781357752286427320996467444690458975076288055836626906602760834442607368651938079638104331627230093837283481542970009206009332139062144757165058967835038187315410839734699952271524438203311991946095470320945093387873582184565879344328110960565596142847406482838844970165285173635636353572827736841050949524545367217212198389921154362156127586181268175239745007876350270439638031644012764639882430764706064727474806345051947914451610117122410642827187688476800358088940137482360300748176187434417497636249018910877430811549121835679734114793116097425958074558209466721977333161200630674430858761919864793061695805362712548915447736918489329203184192188628280429487733902345341737915692942440908934763018599779570167291091437250946998671459531226390919540433206957239154103862348510522196005947767526854265594069185753024969536216324930792394201583132130839345085822810326931896510823671129659361024418803798213460369551458546365671368828958166381794916818738635185276849951348402400540670313515798705335581820500492296288677111286235750076277066227732203578701424225193227071179129577077226233944278377427105969216788040702421185934880687160311014806647928785767810130757544027850005444866195553403421855961595856758693109777660058043158063723074286893720830466145154496178307659551506699220610201560350264436638640949757668436816380803621309428546200380282638602313094208113395985941744371879735179169207957116268732275875891541041438598926490660544864299416803421571669158970645964756604112999239423894653740251114535029894385994220913429678533883408118246315052075127993110768123954296178767932680996374261154606208662742865848297841954247737699635994955427932451961717618044527548344496970766609681323288731328960892557658739547331582904585141273678540528962093452852623596156346917236318499241345798075744634020302622064706835914241765214631058367692291628990870807748833095075425277187983135169484547093653533022893793696200865223244602922650591654829114426703941791351185296036783365165405103663963331710711191123502989688341641991052987470112431496749293160234897143948569592104754939175592977614206343199511583107411597043442800868914393947332633774464169502954498212864031144371480168395188469537417760552621848039281921896089681732889190831242391305139669356832338933754034714494635809918549694945673485315917793463490019383634155699979439799206584601421350460445718074782917261237255499932511550113634524049773675110484982840054693642142405647860055067384579201614151238752276245486101371435672461363753621846199120268643612868066028934920905550494515883814628210404171049534431977213724942327003113013427023238501169646830332273136305184715446278421971115490664472485263103059711539601226275954813397758868584812852736245712429820386640237570018385181821897012302436975968553125912643170270629019329688396330576727993232725254807626126294537040638627936825390239397176844151776370658010205033871800504138612098874407005245606369046734209469704559713862348389754947014322033670432536631704280668204187223093479294557458235306960901938148548097548488120836876443002559434665790688975823133660375914605167740364620150312686037769338525626371391305833074748380576097566810933989883461092649700333819469011850689461297473737462423361504011926023693721644353547223014049970697585769693364320448394228512082186406114317576736305736171312393764559168735370622919139232562501995344910913416973742218909413186563552986787924581305221209266620144836780612695610672698930057703892674600877001664626291335565959416477213514795933840963425985225117261798868956277698919959291260873190254574456863397351989624421853815666534134977639758148146937380942374361674448077310666987898849138474275660024007840412174858282957217154511696996737970713236118960918711204715963669843728344963539384050936959575439403538091213871860649883229235594314137787220336020345370221266353543162394363636030898976909712126336426648368596549850952721341909383901302192717838988467490316212913826237431562564134753740022854678555074710229861614204127863868252878636075040111147490884602735664591612300053858321462219233329831782356330363757451527299463347812015552284079892561018099271304857407604434600706537639400082903347892828026895620770986829330559634332282148930590159792983380021714970397248127835296981393372343020481697139571980665572978200605385127717447536890124166456918710328218731187163307913935379328910271244415040734221858844419762400131616699030648874875036706059716793019603526282082241749518185340876212375975418177196429453682578345881937241918580293191019840958199137306201807279802067097668108291514402041851576748991723738219816511560165144869938473581349075522784644122889632133082988353276778592516591920362340831861334648704209053260241712995972638903972548436729627174268126888809887645869685688223115014511685333847499162232834535783798184018662377225955576711227995888437554450000731845622449676063731341145106448769983439843175994672909868909296659321534244250070579045971278879215915765769259422589837581263298655859974003722966934484688951541587063538455351784312714041029128170954840432781691649763908949381120772765947775367093303742019394497973208254526804950847930647443064339643968263577513926117153266444598136576443128205674787017628061683548812584855287245022906597821313931348862603367199587066108359075863292850701871046621514633319155298687645260414237019042301223797367736289650017098416475359015970789247735866118043938277226289263378620009248299212101376165916872799103631432326844116652655554268941358929328798024440440640707761696059769556489821686801991472740812123847731898928300054696374897379204577866728404563569095980561452846269621936718909711480425891984063459236642225466216637367314892981213444579509990914531898905698018784523723686961215020568643563275550060710562440510333677639038430181808728039733845258601606420988258690742496671823320754008390391785314921664744399504079344070474359410281264333418462399927830401790501638591163908616495070859327148903739432812492745151788172887473277892723757937202473923357412320043162744472034450556687451442355415621593565343224663443969215451487177026890008831719760575107046903783025990326134148327287486723275756643108462293181096029244456894188143156705639850402292934756320497796107487756891360634277738851110535067942169119791929611773812869689140785749457601898465612704123127953050367527138020213232771566332094892871301707971887107067259664335535703544945578702314654320984344660900653054312961140100045550495148914463773259386221977572031140990062759422966477619341864567662428591707160962225635893730602952455961877070970958567583194311106453306671195968021896027619019096131407671390222798178306544595344320194499123259990679457917437958336639010972934761901952800873566735503905958299409032707399461196560399166331981995142602551322610179323642470564188254649898801443669413193190548243489153631934476214319193265804649829095232339387718488233530107900275120046245402129785287049799986102821400337400435643882979607657802204807480151199051711996079900767874134714273070147423687527392096817330770126111442189433092194668907209029241444201384905826727291418601514446521983686950523099292216797045309639881370632851062921326165328088916898195700015491392568446799107865814279517824340115256308674392811897928599042905050167649547197625008707582008108615269179628964181874921088273800863538627871039832287947611062627630865721058276581627335447550635180712392435238234931825345414716314186399449361362045331738863902222463009904842020245330982216147468791918945372248774098243085695495155244988210384032686607047838634188353077385759113699956856395516838726718894537348112953984116267146038844143267226550373826341099342517590484762035477716145426647378128783849095658965544802228482876964451901347473320230821666458659938230325386483505300111426838895200793313342145891509550401931120191518415007409962859004820923798447933718533258208269207800507911203599061047011299206635016733467882066694673367126115398199407140470741801111012765376605019549534639457096843241032983331611094163879467818488491834669962403213315338005132386098594867849555310184187698054968250484724270907176962261331953722896880872548124503768052371765594561888962543724346296817918333991760191341840208977304786551770062341744120421477810892181326080251556823464249347497033833663037069168211915311253822536293786416204606685373975234455420547314167415542562629990527285697935244000139419081598336493952517216132445799078572870908636820459336690246990433885303616407978188671856758049113779343487117875911405405466173018173852303215599486292884829462998897533992738414956744155600068983114462467155232420971726712539725072896060538294548910517303402859703641150063677124753966618285485292180821494454776005588723305626409797079397087977784465645065126459569501887168388301871361061811188325321521540999930201680607946572009220792052170391202595640947501015992819829503217571265962337241638491809824362336875092345793903138466156943585906226528989934662693133832529935741624672034764762261922447689648023119985930528990079857551625463338909173077492404744856250339601867115946711663733420987062105757267001105706391200866498544865632939603009837740740985901415029683077170637005535820297956800737467127668605488310427866260424237123085424384740926694880310047765118098745099148467292338134583579542586926611290210106526803991805535341836647257149976257164892411758047936909322017603191761100416761924691421321125968349477387520725302397956508871425448132829792065739642155109860708112872478567076265373246693772084024944141965190054490382808057304577324701659175900382674314752980099511027545824604395001761158188224395161727786324815826659810765410844429153100199317576671179024589245345265675196409187936015500729041015630704395902809104102156916995443230795265162608873046736954604873295063580915176330131300219698188409138995497813119536464347336783373066208709082720377014099642714483031490076719282010607837225379602002538204311188167184688526752987154762278658025611348306578017889149986202568759996149446127091685105424100138023596922116590888756835836871193616371799383460602867376400044878704512554773690111710291770910048438896357104007494083144369417768498127670802061146712318139994617097120797652920246219603646793882553294639899052031615930884924937555759287284862633101167522462108926111232028902281463810718947873806265638043059196846471769443770268875985799273895126205146022422767150178380092437206442291337711607168349360227296692019563064257859048798675334082823112552242201767421876633953195193672017307610048029466725031562215565226129970030342234485913427889303267726512008761904817698383523552800610688589797749202152228031259996378317299632693463348465108777455685714472447307718239603707375304237925382338736845853026492591920572104753425773959926507870633545727547844867144591215940114657337985552341424378272061666096611083651526366000812353325371450423515841382449473663980937487337031428350871852365222969309115643819873435698865158109415534139809908385734492176377670566368957665126603839529483544568365482075760191349869961147909114136832945714651446803994119455566453423843942048732155601878186850646455841516007830406543721397476886758467592038448021163014063301500640302435092929526108972048155897794038823251082651889508414017342602231337662505569055383738382842410642191973319910041065900604984482886469681492359605284825866660011657111033070578718850285481067817331080488482789493973756563484070685613764972392739510306233607177780465181954113358921316131903488512830286557546511672270009574875899649437036373466045233420436620065128063098843361199079801463820806563653790837937819730824770685642207984810572458411005800683613940730930830136346089105138396596576688270648413694465679540216946149650981978286917608759180260859731926374787044028579544766597758431198605799315660103813844184319616735530791849857764017300249343573600027291994310868725034602065548991594939766734114322699805972870823595443137802305271710262891955304363624877460611972463660552047852841544856225458557419581268456166756971915050136450827714770829550637482622789877243626591414903318150371292517452559423879838722997143920193010297226933807536932088259270207119169940398826140330735010238669441724110644303550800201390893121475545804750359864967207983256820796388631081051153481383229827148922216150357360085309266225926644138317180983009704641251817613953738737510926265380060928523805521581181807127426686160504240721437114515537526331867500716214430802401583175386241418315246318298004762176598083566536586961485885356752772301622944000418866868873179595606335350878994977944114917615182382897369660471447484119737979193255673487588375665351667670915878554432698821172373945335585730155500257996714108552303138225135307881275428606750931765608620282617285541352883712047761507031776735241702816654451000414567488691718655417256244395232937754797527895993283737276462792370582821589360091415145582499263270726029053512512376790918614609692409438450557605321010241228818182586192251863663285353185898780274092781768702047166544948956139606191556880314086124234433706211150881670099136584661532463727431911457784028713642658579021026399874979402996510834880317726999312462894570453139522765145907928283527505036359705623257569998459647342114290399460839334318802636129540079072241862045680380358814342179056313771864955066981523032031288906204718696979659044670582219145189036054519840152334107320317405412575953974756716953520459601534583931685632794369105305517911897201070142489259920375540524298640879097109457261683479829188287837578842110385576292937006704965447244347605516763788979925025748745696228914166345978007543963084291421076364730578959565633378247701742135618482158810100321036663375497480185413652378546045985381050982445724146594314576394180076365559058449588006063994217341736157839743843417191811176734376054170535103653414348543745799189327303608492801122932891959837476378257734118102732547797111918476604037679874603151314239239490829211014730647041500136879425480692159127824759112321876235535813852767289936377216740976456331221140080917338309050951830932006661608464330152481089475519812991477568896201127685435068741431833656424225712130412697636809848289155094547761115265765594867696499117047829896541611787787693364680579049221024296405271940262025336642778298049164913230070393435776947999636129420438768442157895112938540980236485003134506422372875224932612408650678365028561773814881798330351253542953829147194057205211408962307667493252389841108659208643176863882081768868256049764815811918702954542022219954152434080113694430324116484468510679217353886968798540973757899128973816982081234160264196260352153025043109853383760410795202680625969252740581539121933761094560749790669735117148337938608464941427746318755343243009146795178439153232958231748815135086566543173690809714397084442293461754961059330158302180192477327062411737468134358588457339490947820027686367535276505111612191325160423551915868733268551019585362102165823035530934727964959800067667233110518223863842132299516239482559035992671401789898932472850087117637943759114902863467214340306262126736979473795231831616372285082594756814981203250270745459439905274740127340156348340319200478075138586632812926254199015338151851026325756467601490332492675481251121009589210487470584293897092433805903144033923388446433081276270013738726891536105624127874041808255832499917625147165080407768210010966400985073217194395839440849322572000311944401520333399038126898068226581649387569624083785971458030040253259069029861040491851015403626644034938599950125045028121604222619810591421996683015761143023095168977172855745466671254208981452597624766869699462702255419636344266098449352568104543150249266966884988688398938074216047180343322463438149053459478415464216146375447709039679505540763503952518277869966337343644583722426574107205920184451730445334168684748009649694248566838507573732713565558934716118615224787278283453239646192741320384516004423951100999425845604038045388289111967654963297861396653119928461931184437598235944170707267787103706575248442919583865322952816111318879680258131082800014333082809623484402325211264730256147261713952946249271048902407091607203488454086796940409681531225712720734764500040368094734102456866261281025581554641424875918075579234563128138593144363597140168973157753519374293744009345076570219198733642856380155477549229503242374248310313501730953339179242949448441172989762154834588335177171120296165316376855518439609263117487416262647806006256955784753791258360270286850329746218180731062850415518208548743112440094775711307731553209133274134686496511733010104355162495011931445159533843846055121872763614724391328321618397025781703623422940335277178603256653941736899060033436421887517593059265677830750953934861542091681317646546516146059711126198452165273412391408790443777952722676198613744948665400883567924356224345059494282007664495925666936448753955723533802107889357162354576576572917685366759755830094216904036791743802742207748311247076682879374614385229442793621861628313468699613398978259974018750723841225990575289857570334842661432085631722476398662798889871718313581124238394321033292246880705410319756819794040575449214160353330328768909104367747016205867817804959133817034578965978424517342907499230531351357791711932716307249055373649360931665282748207678720149423125263864564832812357217474245911476445242328398109058853110892980721098460405589670871783949984795216283774832818620724315703909225317747056300513070057851146536368758400494125289740193463390067585065654044269955501631840456495637778561652076125178663690428312756218192899645332640092921124326486052535288481318242114901105203490784576659315935611813294762808988089180053585864656268996898675616751752202531949326613631661207862890413146147375290398475679512258406790180262992813485258805319088118657331131388978856315725228010423723325400430124542759766951342427655898341415074204387036500931843964820450911082328474964309503352472822707179316187179484143270311243573460257307951378063971275880244127240575202447894332034513970693911179563672574196795378805917637125930186121373556515516544887207906795807148769978204851470009014538721896641256553770929394936131456739206062850133341811033880183392892500652404091168902215158683511557195752606256213826265428999858647803085687818477029360260910367225762218192531440444212269338733731859235819912920572269346170637810197193218166197840772713589418754705272777004871365349617152444623602346977284339657661799054209870781525368821807226099923351895379156633386042772254651282787030289098883471265633127958483384511971500378943014050690605009434723782768093513474955033750435714878608013966799726930494518858272738396702683170505410291067532952452879173987289861980729535121824936410371715783918034971441494787637235405534438544864003871146484697730353069454322232508115529275961091744889244803944546771190516826092266471270250575303095530968318227231057287630993185556783490074747700568507398765744239159975744915657299703530367994623762908736744188391854035421826177089962734469025261000653983921922879644405403180036897584593651670343012491479653439784487490111975258302205593216524762601642239557220746787574795147161532299721307529964662228188149755133694820372397337551737443974932266788263652563623871229868225085670457199102144470464399650399268133380000050230297787485687286785256694311160366612079234892420793098256267079639492698605614081454773786985282300477890585711935157784058087860848956891471406379058512668434975848349625054680865648859637567347697729828591826902240599737904765942111016716482363119151191058107849785663915702413561676556470659642777484568763432467448929937742873609493566166097789358646725034168560914944276027928433261388103463391174001676039063022010882433187265802894089364799612123824393573794788660072919273979640052064682954196847025161777798720652320746346326495376841500060408517663394510123257966234245961382275290170678926904874776656730570031858006419854654574926778330013079973386903862073355947835897780211132437706368269610089128791158440700450510422222939610213330033521720705652115956338117723765013012980914025203397763267334632037538811601268508259464968262033099643554524681826474811840843703349013905905572010173915358510393889488735552175608179611783260177429342456412764944854549769361728875846949976707748733144892923569281386362488154558461875360365530166937011453946302864498289493747665577482130569911980897855652184890485549628197614234491404341346939107976962095021763774019747979583893218738447662208372415170897168871426739772028610523948667455248841192848856133911449331855325522208415092951833879866568291230827814021947763345348713184981470220766608237445283278232258317217928674663300315902909919536131391684853237989404108608610099728264572155275464308651193145892245327824050718212348473788996491566104442879871668423685639447802172145492537527556698811588931630640411910168442790264563503333855301454071927232600354561863034096717161797090937459282620858984478971636372371947702123803868252817485647096999023124482557044873651249832409324596622563775387751099990881453360258497777380295860863882374764517914069709643442551378818872806951537606421693130866709448275369257638801859313464237259228386939746468410666534478761126525567992600103441044820708182087827202841135956375678523919251198215574582051736806784123827022028002118669279401297107106864019931765753780690665388785465044562802435836918191381179363866251951408632924460590296724328575199020015785022931799474030865372348349759303577202986971204108732249796974404973638571224184805592225067737853681743759368828354286411473343556662508601102107315202374979762706988726087707843715864608608859033680469149639334235391939532617896852113867668036050999438627362084026321899238290510380831857423858803048012234156056986222450166440510206003298793004974081486314321090802843430387242597631805267864626147788371416478866828714662792954361683635197684221333990184356195615689172593293596483557053505929454552458481548152314148632440473268395002552944644055944045892266491312336055441264060307784179003256283354326250592368468865734615776841267268604531186764630255393739824647075744019323303100055378498708716052592782443005379829152326148470035496152237093029893998384371354923698529867346489748889722672372496422139457313463460365362055848255357394951355155371850659303669673763827053813013545588509354177114038051660045258327243087000413028801080360842189367463242406731354529647128029817988412405518775434361323467528817063738282452700693225483303116750408444434359644306209732057481102889108027203374628002724916348700682952046716261555265903996538058506647078640469697169291963044599227388438242041182534716285070997407240416672904483084254595555151625104185291588578789492239896498017446695168916067135020844744869527715554417635308052261561814284197030234833471276270787745880276766687787743952082992377315501929942230028285846279167197123047764422274872306935624150789158580012296749960038689328830415932809200555923978019377230408341135917942592750802934654451228049824861154697576099507276917070385352551910939470623252996332245987945307464075581094675241367141769435574193176945231481873683030490873129606478910600084907775573107566686821620023759337338698274968118268294434462191368983399841581503700883037710250532022593145892531607618185018422297555620640283172037661317248248167022010075468480846220878608558219763448679737429253217748108331889855882573645357468694677575916781306462663120202695160957516675716499544278743893669047729329521213449552052220965906325100151015452810812728423029574319093133205532344262233282011879054424668351990167857877146954691478791671738007924319688903272651828944880763086249077656129327507771732882755388691191349929803781750696471131772341642386983368674591426026323639889034095400111407697242331644873871414656049131582596213939992087204002805097417910845913023814069145856035476203472210687588619698611784007543967379484919527368298213017179600427751049127045629441841576744164526386853085958824941754699802108030023825004607003334280285514783000999501208145452289144918797493605168243750821274963888603243701929670692122663235813807544695674454481079886090949600338396175487722703043226150611519851243172754342268082557476067971926310140261661664683972847865044912986601560294874248572019928541092086492152651419253225666618490669139093683288206744301112474413617940380360833670959983758400781298020846654890712930083628955891621967459832691673680657781758139590356651817728804405920231269638526633303590997060890857248590042832631322882955421376944718701754937307668244934006453277898836827234310252524209866769064030232784001595409686399029748130824144134185165451453684626500891005495350447343674206247116212575866593732190554942260171418169776677385933414813357278915796920303599319040849287163451040866711578165243910009885676448483939713276336364937345110211581868822481303621896141808647309244994305433036082217827109134302768669709849663989865668079117945404400031356929249839403208950976849049322398305632898518745336724851992303505023287682424959376916573870809854490269606401815844305080898338837121876840643121472545713245819754115332627514826806009282251248571866298420832639204283682410325818569264935666663985717846726021465161385481965288940938048172994970172286110875355562668072022624107748962268047029743984447516934465657701022598311280901352303191413269837425759608663426029159213875923408484600014022226402246841822368753410891916379148277721303419099288578047919936211370043408210707301867257649116410154711919551011098560514016406320844020630789835383957624566362788292906962225407655180667087069757619264932002471603684254846360389366042339600186163771067869911665024855256472598140449816796788257838814672261981990611532382847898288583728063936579058025364289886506303491743097698154043082340943764040065841442076139196807600090881872107037735199515611762045296464470430522167147478384354685575053652098180151153953355787749949207636686534418860844617696353748797089659826412452135655883907783087130875180867924172123338561100336347373800347074318216096767845243434064672935615407022049964232121752052492729505399630534481443779415198328719508351971156673166902332999275722681826562314533967917464961761045935804265470326876540640216017333949151914266855425837475188352620639461795179582508201773314813557256053587974765494260399492537390935677112174000364036215723921361045781606415698837230379179283738743202170844995442682941054960731941820376989990381925523422571853158741387647573227091620736126061422435114958205259724446233745977810117610894659439392720714658436902415589281128476823562548579381667249948150582810059296529482805889049496241157243899813659690739426551569545074202807306217422767696570304151257895327727721707698154135672519851138602221915099414995808185126890012233731089094035387593731693629962333764197021481130240243572133134426015132334816969225767211315222268134187466133096578190208858882773902007149817627803294651998500901612668570787747682638911199321328183967472010774689533501926395362057459719537948738709202452503068805074216499441649849386073201247821503376837326872095889664744238439811966524711320306126788627824034351870862331435962266574879037057735298556068320145465907335026948341981217430081491250522192844900301728619196881836194603736860936249516539869387227188850461802102260213193246220441603502301641202729629476742687980644331112656863802414637352665905255562360913095365910741064620134063496934458812063560505935377630942533567949897081555299360837502897181315902640667749269436272547895372418690469093476951065703905388479094899988786341656050002159221160560903876280362214843260272872956281023044707302216867510063552132316290373579999610390950281997119371052181220018110052606290386759356695737290647436028183354168109423144356090571792159807076789382921757548752692127186699184344400225429338373955012846697565711826797589352875275453054165660721555326368692086420327860626817636187648372738304515562319870294357409288574320396264320814251169940410855774546694006737838080867997214473390208986260539031902746627351502652223810453259689238152836629796758306107064355525641780173827640695153379204655143113149704493236423030956923880141635903960570497779624942252149259549557666410872905083966071386087203091806296543971438185901921310761004486413132506014492302105405447272031361215260124079744142348091535010431424969875119525850480873506216289382586890714839811014906256613357075984743864686179296167906446232675343723826463380081347725208707051297693049274759901384928692915376728748016042022125140127262091558641175118167127180966571847945720936687616395482116874233826698570638107982668875339452234796466440384744614310276867208837739475380562874514417433053904074098239890153690087665014293000241971103957529508142823853285738074313812091222652754808390032728314422381502863872604150134817869483628053692538120941282605406642767148862939784348604210197459006658709838399627409727120741099756733371271242387418924463709258177953303551061174633733466831181857065726725461334945604520728578496219684410895068192848668145874234559139169327844445599790589378811276130520549902076309742228190337217701735702134656722113338336834388739655472167864179840832187321968659585785369036931598397610932824993999429554383833469463764882538164161038111563295973998722079893971281254765875614052123149306602712164610126431475605987013108618714124311612518776211667859109466136907860696210250047076041248456349530951671543098064963703849625236804366598670404086741794945773035379441059843405677849376692104154721190816121367806454877151581126773765754683893988296760499464516741420347929749829396579637830323041304609267321514197290530449040474726880743190594311746923705545504407743985907837637935124619738959132002867188714870039636853166661897136446045106103174987593412382273290674474165652289782450088398671134938592570277372492233685639240099970333700673066923324452013930594598261783183093966062576698724759591612753377794258986639413192552257009600442240856524947872722001385748205080159341969334109839228958140024578529360269400610090302311102854445862853339684166537584812972981233957408504731116578625989810569268695147953606779840820943044241282839442521929636114156981749910040032518732882249984436777876358409291450198844348010815565381233193400276617926354464233964875814732831294801339597884277150865944356423955740934479799481968653517203095208380333312970351966119962644284054192951360193240830775164982284585335715649544593597943337657426971044267431040237297553254498390775078146190479896524377228235136211056985204145423695445499587126782589996118333318246125459204177543848838308299790260790733313434693944593958848809323870268903743830769405601737310508703705262832986595404403219582074661927162777423403085324666408206556324475089256522717329149277803978090111829193089656723191569890545242166960678225754168642556204926022682964155200732635511728500161081955097371281216619286898347592776942241153101091741346822713327713759744766589792679429133550275960930436473654825342412733991145604521374986899964347976883024440419795873623098783360553285395024593331502132763312473095896146411858186359609027255825544832544689787547804931359906840170424925506572084943882719102290923274499236073793989604795693402407816025103538833499138132147750769665775464645174091368986120090538922057834002440607803553945378104226566545406024600191567386174037246839264894892149124774652465032073193625575025800805559275741019936019585335442338015082795167373671288406684542889855980732277399803696255525425997622569860668850838537005395959454619228816070001705154614744958696621054002881730460400912812412894323122238514956375509241317099606590755398281654647980151334104772736143893255369363124201504894901276384135004818603757024490585426397468900904616175950669082004133528739942323621318472518249525228457679202656187718925353702394726369910293867077419091259867494196924936330845520755463792840678281889642474180834551154699303657650061824502137293882590976370212412259274026618842820685300712130764089887611429249860096897491929096490900438269552460065116565743816949593235011999481116459248261359251588435969008903735331937229564230204130306427087150353127448184399591568339477294510635900477315773988335928620302596691615937453645679781095317300434165704968302884153463211569940281820709205048225396037489058620596562622115230412315517217356985901641969390237635405413794552768557187422234056015054281305216505277524652405754582119843299387317659378331611885981101740295112307774836556748747023885332344788477879562151202604050358073793241542366611945880596824234851572864334838079717878870678797138600630511017310560791268156643840696784322236121209123331316076025934947801132481524349830443320843555437376812036715886350939509783155674871240063260163180903184602359490642289622004696586111055216691952058421446245551927378003029156641504914207477853043202811669926268056377607211802627136703353538881877375595535566615924595366991974471107506290804152443163501433568283833117315887560599823631028060707091913156330500401689508025902082194746889214597607851974178880755589935229396089129155554029594266787064417355869002604853922409394579365573116154488740077552496478462499423764509024294329693773111074895372275348707266434055021647596429328280804319493107216371743786948413045168705890954641576954757037433914614142040019481041230113363788629458849324465815257063315255031270047333285604821251180299737175583510382535988311448090398933266621870505091181950886261306705799647001206420989580061204820491301168496734685508410618146347078596473193421451929437650406726708127854507081610457921561165930789624698541741956422015765581754279719080091527409987786723105680476157429005573110845305204361809006677036876917314240243267609900351488447731204151586451120055820279687760998557633440674571162551736181537648633258265696654634432030137001413652967250748815276631230075553160649662505935575616542087137604711954208019902175168598010636034602408942348366786588804769285552835102283693641068368206222645469436367717641852863846625590505216339528478888850367891449922094386117013957487194116776759898198059323871113735255118675206357122986374371611331319433230877456883519267093353530729180120796179983781598352928325227897604863864113782276733279894455676538534108765709360808486636284340369828775449983365691850338897673287342102820998033116937635126688613261371224312199737813311260945374783273023615819254102894425468533986903419857872327087902497339525648064097460887991576111855751989786198354948907974267359837833470228694307028730184122575724457082123263651690918953779790044227752030880450133533651902395124348883184118475123005572466871232848452818030608666656097676908643110571346202616198800653898212202863819311724479753634293152586805388229598029972012149593229369591481142545367866066283783742569422845090958368218127401698126353964594542075761509934765441774121595587985830647438194723693780140114553889626828136137798597389409090339239736228122125680656572709245348497364071943953142748719471663348957250766968922354234747514434585466749502514460523301680046220077970758392350860695710220925021921866455934869928471152864040825741727441016224934117621041818112634529625677768770824512869744959879305687479983323474192835722726418767748384847746381583136219448148436963386155913042383434506891074446991127842841514788738281147323727151808938691705247630646914871045375610619919828015705056732324817399926258183261641665690906146477733415878466275104265895086720692068069189454352617121122145829307774393922866328171112151700440640445377333997843521776153474461974704412268997560790723811143211394824450974712215620107988015912982901728374145877893322496857285870513984422996666136525396131746459821785449796063208514419848396410924867270254450331713633023336191359278111732906024697185598949694373577615994456367264013989507589784787839874765429845599642858923639123115748065164582430675371494577807929485966914134502136570014893371391941029634144586775595973192081737296241225658371669799826677322931451505105092663112048107103879929868604985545078277964113485431513616080332181043064560549014654580310058479698029487594047118333118286059546776975261836457719931521826245301132732592664410454754561796492587105010762421306242940087271942650621705970366830486472502920758372405176619558765709678091558820431153004513504252132924670559069009013939613756700827445749904434512116614092308539984395672932513113622446594033597743821603816138259985760748701664710918078030907283602864674036374036748707590732475467906058942599167916855180529000021028830622484095719574120154631068129373540110459745756363936282714696584810835707469861527765791097399989914273366123517278236688591825439793375846896476178408564533455798600194433724080429616225785820060355860764774891857472123985147416115950500893853155990601129720340657470805077892261680366125511748589561055663817461793170301566761847073765263694486350638221997942039122282859135218741059793874177346802115034950287186524115938941082101971759854660839121906384769708340474887098620661128773423446435187707088356604243893959655600570899336495809585197829162702681803430573290445837821624348413986522689042165732182647390517692613568818441590734353419275537590273131462895270967260902310284269278548614791224670644939447723042683286590891621966103160530935117275543261122998509078135888961513933616119917420819526449792924479553674520296067745219327299898129375947478437512241480115617757787891828649829969761281469494290700944127161321360422171781583556924494932823381363670678419328049593979919916641943182331910975907981343276993532537520297063977015317582011437444901561115999814834477127224835524227534317107693637472318754316836368819682834971252140087819294868127211615521295861214798718390487172082196486299433868534612316189460713038914557037761615397733369657267551740541038857390576967498318060502774118496473356785278264748194606170776544995708310695606127228270034314778389077484777747748553294681717191040033659092121200128701626460082960240982498863103312841790614368347012657208493462995919431359178714561964617186789521567383892523573102447766853732243655441901746998831484703926637607902016951718544353807296663375610488644668071409035791379306887960670231310950941972848814996672239645570135032039195128787030641428762454779735208727252026274152979120749124000703875376201308599924252213910253724077084830926353854580051318989557658558974479135739992736195951395226615343846526539928361696708806100034086775616576579676654282415801411895263374731853447661278614809823375740512905124315518881527870400761290204444113388154988827009348439992394594428288395403598051629092944359122680187827980223825543373437936678386023199370224923103938510962769792744493396354244959582927338036121834828154830283955159865228799084469277119332349365115670141567778524098661465400411375193490951144518400711732589539381661739106859397029862030237078262401396054304753507954092137994944663615426251383331816106421490115828880601273879324191553557995652752992005616939354060095564009340189854925846939919777603228639567416998420153552820944893083579549480152278875964131079773299923975285737203106160816024788907329225557998305237867392241231005678305982719197450666667881297696956279552155484656640065677390481874667975447242168611879940510805472430599161477137654271575824228755787105334404427547028003303470388546508737056389500813597712073461851071416468908279515813322358759784545330049486937637294553470153864803894982328278162576188713085008107515508901515729000011017427667195322690871153526304075456376469398057906109685258362903127381293510680587848152971937858332060999360072243260854454350115754468401110497924299391069634928803097544208192704650217226574213103215043308142430897739918278621814689047366950330276869828309058598394753009170492207989523904539072273103891083762056522524566277235987804302087724842597887517478907447445086313241601152700038105228420481277506209033358808464402492665810210209368006775902331602113685774585473292971198180449737708900620453246522265856219058702331665809823179163698597732324139562591422552493253324265813567015255904777455946311481967241170322025245188997557887376713746468504280157127092649115240576472070941997617777923066461996154219666525858894989239062252043665604384012460358522668791817710814310842049285490576374030976248547148057063902398294547932786377312717009050625603958700164825037880827653953061276201466925096739235786888470652089523666742436455747164081898462228760422308365665704901594893500136155423304972291761521523135834825931269503147720104137661425394214594299532264795463538003121794619053566895254812268860204891505055900098367066960433273289467966820811683450306476508290125080756161929389196661707357361082903154417743339615057720198357764867754925593041569917323993908044595939682176868832952553210267555168062590614229527039876262775957799888864270381449418780269475762001260050327528196834684052499810137863910321352874855015049164481020486553059461344709186914259524432264880099266153116447842639930299698323502838084248511123933705890175771356619021665769509849807716274326041559070683409925030887511881355379011184931798090550872612963787164408164397171724415860247247529158712619582400130202332592868991881645893630511371987930603958162435412036049093168758075107949503861682958136147722051720967380122319555811251899328782162216423422357561895055139328606599890079802844400574979531262246622468225404202470687835888668106484373276176918410986995354942590304582309187729585160046246545604446368055091472545503201073203620502611705153007443787686715880534052278380103270916669729090247966130569249253045029712181208133453326050401477288859318286517833416256995307732437615019234118529551719808233338207046222281585889919379295004353681192034719169760437326297128882423767218654518319532468526402815160514295134946038006801164343729647498093984221938611419528453506539610831833511229365201488551578496528527216544723153779528108750897614030486794612255419581901357699120077395913599170472511369868766004194906179817332465583800705762353106710692090301896806734310498520348548450182878813399582452454401792163029137375583782319025603710459735884090050418075754113547526904710222523098492254975257033665188407799718472569276966031312644816937669323169006385445357865372431659098596526325571462201049627008144407946868075190591384011105679141263668106302744734260175090220806123765591266017644889855945782743089670419437766325409093177353476981160444178887248500851925332809768770942615255425962149538816644399071957579970815565226620311797094000792867600017075268196034371305680444117643233960824134078448249170448038033201957839015214640100648246457357868331467140914446621848482588197624181454520513008424953159089945206015815070916126680875244170661055101372899972528299159415334268543572774755509084174356346433567049674104250269238396265259732155723387379471582783009935457067951240972004063602038745732894929069383402807599151441904388296800538846135012450532241016516640435599319665342165529540948251353298407894634524860848097498000413231561727645020843596101964022536687748135303442581434309839286325608985711230210775810756718426960584197799058966240456464065556217045340864247737817136432249915229846323531650250829949163522342085671029306732767619566336718228788604516252692632778751058512392474891673799401701968580512203563673395479933934775521594343386704232746244422443372920064595257145498642028375101379468754049474887263229384117274625701647177539004135538379460647926449387562589889219444555716584058294922284338660245345135827968099499476653428336287987180623278167975713635342547944409432723169810688345575017894128603254037946490764448217268441956848285360625981970404927399987341985233172809324639238697596586260547282488741258104782801224645381299947679461058220436435593263236318738013132635943821876139322374023365496104889912104372294729370607922766020646304396147606965208697627891570861144131417855092114580539427524485399437974077963922952435200595759527070686602378413917009161928033703327046125347377697739510194217761068897951803812288291631480243867697492726009137883089864922513607115784643205028383278697261864405954700137861168370385623433170517078084363198087361827816559974455364484430553374001332363010984551631812938276399851119336106583439971232272126504499893560545987438940914286715509709300254118502178727365552455631987222547344208871556253706615236857955310466504775307515750810180513912984876481011736633913217043447889796751453456372130245057123242727941689312841106131596174450907234657721299483407224708723822109412703159874858591128857299965067174502387899498406345422658352069653603773816940529443395930836150193495987406596883390915558733696413651068341061601076990406483626253953056530372993218461742592089890964874548443043786465583989322304285820022922318921704615237044198480944672309765874491296280179734065389288136055933652588478126718296371440974514661171708623191513922136710632437233467822145653616946082049612491243018358794142361951758848453577848318276123769089808535682450946428236330712373532050717100191033241429360067155536623183394727601539165356062366373856822104005395620256503940662929604221564402659326330964152583661397018859313968706880582105784339229138309614411125546073645008078113181421812897372947940722802557721982603649837313857027237300501525882338866677594600135213729612454302015968217040336146073242231119879020325910417717193559607655213961303149606649381255056915448413619672639842263992432227628567236081539212042383123943459097866452880084019017397169226146180338087884544024574247564630348627839535372018689271599558099853845525512774062460682945970142747058258548604872290165769250171201346342924857023088881472389563678365436265781798219910537094757491335962668276983314381999794560790073015648831086145474137516650700061587570588635820931808764754695858596189250167095541699593101527315013064178462922464757993218118012589705134466893732913217353094098755327789492189502124924100491201296097774712094113210005852819332036500042158556728772494087119942317892753768049366306177248756105944690294782427244117763673720988740145681567806749488516075152656643524215224887212063964319961532973774180183537434644662863199863404493275027079998122608238971303534473891547886687337899714565541226823706005192061724371339872813996287999213706933797670005260245351006262363365283026988220121435085113943237757493591742877389329604660040892700310919802398151956156094858158479779506405244860459254403241006921487723676941375539289370866129367266633471714974970517439559933570506700217663511581689265113795512657562756682621437449482861627379256362592114640151619062643381653199945773888550017552583590373789356836630416689699061354028704193330337063183756221770586145355679672365875163433458329914802755133325336788987774979850476577725350502902651658354403582880136932189690072963367854674301163578345118080827691805216877021160559093164539128402167546139989717419633129692230481806698007159190014601540006841634673786308087987829253086302006587024286153652348379269602794664854759569839073597610260660097050223290230791239790601145967494746107698361844763007035486850375489160462218574007201706831969103610262162247052389902564830522961601771699112225078136836605620698712326984438666445309665232475600093502506814584544128259205297640412748785781453355176157543499777407520253885572863570085123571727091395913047533698319936541649810323507235729732961385267797848389649040773318466539951066660629405254722581630085282318978339150804172994492934349050957765954939474261922157992922925031496831492275654190340964514356913221549795583224582806070957181821290953577777589197473247624867663699405396761050357102495843719914638009909340116806259917950926435808375169921670856827610765025742972404317309799648054505108544532059093824273790705399029801840155308082148991753923791049884723185717723667511164086402210048514669254479339632723703289718254338845311825974595073449611975702769273273879049809519631639255494331982492542268612217907799764369248304756481529768063236505170689566543362246695453204767169818402969392429397316823616931346794646898408528759985225955535806185911152858416230695067775402256873996734179854296854460126321261935742837143445187532957458788362538024197986163995285356510308453646062525714898557264480337496054239263054722581215286169724259455581478408553276777423812758925894043836538900908372007558311777912781010981567389447590596127919001581384244546797257245223960600340420589807563870965491325914836630227239768368877472421746437006095487155906093146511734394091806819448166271278387245635431450335186202699061112492359226337606827001128179491320401430007706140303657946412727087849887762363812596686357370955621389833022249858960786392045052822864331215167035316006692292418005692170703468143782742325453563717013906536480879000640381533935609894710755148782259755457691520137662740332993815694892154265422503097762970165121330176173836222036440752898377647345236487064458979738887256866211801720359002872226647265913779253275588436931451210274040680539172903370648899419213501657148538680399317451744915325469351580703892867446285693153466130109099647169465425983072145449951902369484694618375383992910949012935696119791245320255718127013342641994483514975548583725988586145054902501257452116789180424767625493200623597195819946833713545728715300737561626695472895166006740987990044289151563510156961159294548838598124560550104231117981230029997484135843339632070019866685001905661557793172518537890555961289347023399719161652555814429576732273983358412761127738663463834971321077994411587123006528200106978729030967537476535401469813236132336252028936531129152219670007695448117059227964434421631192381051249175834464524563079862626229289632103711326373714611144179531222771363189486090381995750576562897958499162522577802820748496195308587575184062540067199517953605362213691984311072222008035212536104983249607529224683222534008941057005923813522669422518191124923921575649315557216824924418668847420651378669498868448425329251340249707622948953367704169118640933219324160857710651319141293147913382728698899945050369418233757870289592122440363399555405572496570863063435306246556137965566541887247295041796030949784087871293502105789632181172758966089966698290161523712795997570254705521242559701021668067053861711250978447319005825808773464838736329644446416348764294384282658239155701402698224029155014321199145619467628310055129127965328951619164650403916630795743622697668233601308589397852976172785647058919068789461622799175097955591881565610110440927883648321924176352125930760704829447450395267378828744093365063726376814487714180669595843816628725652582052988298547579401882249383858994958791297493489925374991340922643501021948095459043728318477368647248707988808361542744240973644315622774558629803447649134732154821596467720134874027134574587857271925345249616692854665732895759963533812444750976101509529364243664722656709332364257184593133419598429213092325557264800460572641914994106938731792526881024850265223866348320872350665269512810962811043116761025746991787542838027873364396420236396745459006356622162940036036644580725993412541843296091298666674084081770850618684855285845652467430187678745605909254453958652105063387398198810309778897437922900254271676967466769504630732410850030367046606842523966141997695035303815517275304883849329520657271983764496819742684811345173318485631612598964020816297528007659831938125216433885102692728456973757601219762477453217260280965221208376296245118321164563171184399336289555826622472969330632773282013683442918120030553237139238667308201082976313448736982589670796241972819464848700640238063556121538063583788996608412235177461085919762612375473448616475003255360027410419576849646859025535630620178594545377694471915940010778426540610467957447492909175164013384781387803365225469680082916976390696985236641017351870802657656378700763894682431365355485918672426296821385998369627250358374028907069128889582667498732626564168978363853500309131118957105206271720245622168204925684596561966801531859979226608514151795519240243453900015373770816614195939811410399273524924946608469504530394147858973879696013042162858958454873431319383578247062360684706814862514542527693456091126051495446147364644116088602377576348256082236247673233725287948091801645547241798984767866374822553631083987283918629950235786600648124669639447886157329610093976661153460186862174328715103989733442296600692771210791874605930930917223527164899150243227252846717749917564064668387976666211407013103197826439183941715584019559707464919992205746030450193795746446964898746696236475766707984710852332382933877196033134302112251308769656622687426897939482540338717389360837623348743305163496415641576704395273833241058746701957145058173746733191441180999622534199209392189980624824208574501861124241142205337502592262952850480508900673785033925033323836044700558496607180598502248697211435314740656554185899568668701368363839547587865151367456156244253833129329055519731166826491216536572194556518778009207805713166261469716735608437491512743683591740899664856458346306292303828623625693167972658543902036035138398752486054743256741659721713683023272339686707867019655075008815229032798809498999514995837736085502976585126350594853067297988459240183219974691734158356488356735393839772142084274553977865539741668428059909035176600520974978116381661487997831054122510545680715206564656625940713015567784118770620255325014194482805813692897641676271898644784011328175371645543377433773579062861472885550652859688995266307264216964784029409956768689256898827785570788655150326104176537374697251494976552139849157500051832489004233989294645685020800849454752680073290506544014655216453018286459891855938296639713505073793337881651020606911559838987854702976563144735407782981935866591217742791635236128263250614821436165185889966957498247251887927057751700175828075060656947877575055057658621310254574626868275411398617750295360484394370527252607233049219093970695892534709698037509246644365295794557166625705210105761583241653326668157425832243880576834467709491274502041499449424473963851591945274952045127382478916355075748607468764952884885345113230383227137324729917596000048777414784406453118926756771518080682329556756131668651501799612254295388684661455108285485603950295067207681675522978961735003152989737609028421968985659905443508638539944861965572969251149463826964219773599320600959772816944429764688127681273468210895540635290790561439865575291001747028003658122757424109776144467081620945689371252908389482243660104120423752575446990879279941470760829089037954018554859297031657116749979380403440913952301960353328142389772633378323012774641011696986053188086351107542970789225573096957360153910919690851555816385366448485165278095026594026366328506840698166765883417668323620641836989639813410875704982539736991998587386680323016481554119159420842254738831459294846846521738271196252794261178437574728363917759467379936083955793337523217539793848003565502147218879144626344374284270387330648602153321010148675233444814795126983577112768323763381043811143527339045331579684482543743756740837538594368818163412210331666196796080375726597301965580769151076926107088335099247207566270786986012743359767156115534365568834991825876755958777966367389795980702983866261819526320770753397258507437940147013853429750335623189132450426704970443364864902925010222694477570302152299304701987742918964800714385719164269817368158216593743802396002627984854137332517262887934753143906436696860606014943449098427906725041304373384477307727698066115355266765643111483923738850176889052693166086634854316060618041576443014540861074154753204081665466723688973680874001280727637645995690132188045341801465907998864182159444793313822658866377514148430777325134514311372808121522981270706727407157594995888132016959945989606490321235232109398407444181130225800132501931777553816885030466836236990205592367571588095627191476693215968409204352259223425300480117093531656515761406178986717214852677135418248869077827385215897807549019298148092257432951060560200371870502927491054437751606024484372478432051581603371688642545023388484741854639018320996413315916407015287948927825436992392535329183701920157921684050398585548864532112121786564395147613523922543129340731439944306005208343564347980180164433003274268080597261033293329231803459410428323704214105285173031400941766601877088739744976654827776082202588687610284007760804963705547348130161571234588667936745524078124158539087139729107898120541986452495126153623235834146458850452972725124082190982879902127485235643475257971617016027145124402122679063151831270925225167505297160962826457213816892943617307857359382533979659287631126178560491969324647596813633965486071576319541343039940587518064729909706215498324585547941955822002386795405126637412183261311395293855636304681377147528852664107438628781098925073254395397367011564312730359103373647093283772587664305908280919808019853030345386193914123912772851258747957244903710104873741082671914971249081070865814211491513615841190588615748017288166843989444535056437586376081554882664869827906587088534144084555302122765670702052311726941471518274956618583450172963142882713869205795283560137069608787859900604434703396619004380649874370639392227342084848358774210243262593656857657641933840139182593545626270474043249099475179426801692991299251798291958065073017185195081417173351045947672375430079912815522261648643361029553412792580364524974242910893525839444477024448014924095279244151010920455889554839365958299676254230844773637950092908312704351322840066660038358510811130127611564194662588771612855371502611323831483622857891695073120353099319085272052909449903573392091115500732615353172580917550632493338278657871952518012484559066679858187339967186378886171613774030590006538316120510508322254725423217635437770811266093582582939598271204462747748898527387758915659153454859316050507835869006761360990008632355590452279299430699660471483562512428673763927553126688732935353636570187236112396379835461799609778800348645371727951565535423250303555200629204793016612295737676205186951540698176807414592810811135827783458280742595903860283731436198996582772137234883022095705989172853356997826799803005511501959656187615675275727981300912467056366368614129208364198739794876039415997484302896560821788193782057789004974230507889194969921453217000801827682040644689453663748066200629086427616535781310819989612173823366247101815832041102860593964381761399952835662697657634048167652130499072196420667452047252589127216193813837957648121970350588398654877139283256511322448889517130345616951515682446188406877667227967419441922894779171648555954440282663288884004511688789525784512688543078737811123002893313221107554667910964462398218395550147818797832725846984013743190965416628534161545519830664962332065744691114734165519049103135088137086538104145621363793801866415119144525386269898318464115845829175445568521037926043356205461401517896697444060692232526363557469814833691215855701672605479632647051708627011063300389488048129959467246105635425997522094899833349802420775736868843249117368745410861062266848277696594325243140373914401294626579602438576569433963861716883737171669455078302564251818925276536879680761973870919170284806050152943824372832543641176085712372319917482332979783362706977986745765990669876141613695136643306038652810313476904667403200494060126713577791223217529398382179104352916970047062541618500684810403589122325485141689923572544610475665174312496856526208289913302090265961571278802695071765531746422145139976182953461506845597602580070093057293838306424090570478516118859577872082178325318855001151761161111997900646329414080201706652484966771980780752670890375659234459253524116086255125540823539054606515316488634358851661758460694857417691299272351144043289999440007427837251026340613072834455094034930356100582303765882384394447213871382169719275048704825995852622309039916577571823407326267586842765485050850141523287422113334982245506748396839684967970435328125781792917059833360345324746511889764668713840633533790324785078387610030214338485144027598289741028084679596829690554855811920913297897780238673610107701196028819630870940337535892721697825424172125139066180182152939403632393810929433684914674605036114512605580436937720390780622987156309885320319967403568533890334939243251724656319822806848670999136371499360375319618193125151195501847615668593613855882433604806164203334191162647880101186207626299358256472206259207776537855083367696675411344997904525603965520351921894984474900617471131757444789806600881555024818360634208485602531150492651367104727888392698449638252969608237540249568027226937640160822161622851185358351978057307818915251187407140586446570955392686377091604940894504874276091686555127043744175106350278704106939340963482788778862759761735768444114442039563901954593220821442424410877338069173684739617846101585495667105423322359944224312452448426334264801759133216378823940259974978114207587912969667402335425759290242265303978750379253410581391816729481467264628953226988660047508979764890966395361752508802168143071948022019051092920675381683094792961669513472791756529329788072333705550406130766267945811466264112672212070498316813487393288192837555979104684127537306579727418007473300104222924202249662766126983621237157442994122026979688051285367094815568224043902460759698558217399946792570890955621901725757128876010786266806129182489545866109436074933882578418888402340164501546858756123044867913401745318589865801623760550799534992573948742920785014054945156760214506606432188958362663484566141794906184436431696182413935563628522122264465627572432875004688984775278329651011824104276396674595566807961937746130286599023657091443352602489754571306684749299756501044191562524140157728863659848298048924447479800236065230997316677300899018999238828099394773602742664367257312212167318565317007916573429916086974722652276727649755704919860855504589801714235484128796352126660858019042642278035024883585787570948186256486291558852020616638258829999999410432144733194557006094885851720204034115350145092095676236247263603402479419322024001942877217043400830462463246106135220316188705896677328652641387593926812293591534382821693735659712861785466525341628508704855328532087377243755245836438563879809561985949632177616372867370456883449888273241016027824131867831579724512496459471014467440534470104572763123537354695516793131788293375806462470716226525269824041931695570026709104076486622986755228993559199506814748187499595629126809333984197736894470341535270607836158243693263414256309489249738269446521378650322905349148305306925045323690973997111985614374173767197761974899430992691803443779074981111401553112672025112052591834227144910976606811627161843162718045413375899510017413620123744512558968605705394325838088909139636479017918225950946817001269670727527198366866650111023844812984578803887392824562875570245318623449811196010943891243446114441806881605169857856987296257010595168035489117847205678929981783253263908978747234865650712957889041565262947945136399357680865793189340887425661485688445544573806434562775584337269709078330655818419884248481843993505003389367493808309156858279450289271603455227119845446660884794598190283603825906480922609867342697359545296894913569253237834835582270266971085814357636452240952401373896415219172316225831441750905286691743131610455117930634997403255503892735306419339522906845104898644811027628637513957403687821720523238967552050944209374337001080846020534070418272536806326552863221646248785599182519924788176812488551997563354584092888896915146180744103997898610566295358964600701524237770233495832453341330000748400860707352833452863892580917102270238824678590949142304022516142212723471617125830764790903521881101457983348023968750420085922350736427362834087325498556723705290401616033012172505452405802247154439761243437778770929195575712603503796559478478529451432412328410245308549330166835274198567095513624533558297505211217864172089852805627131958098490107093692089255920741588314493383339941099522005559924857782060991774617541034795460160858513080976531518825580098227165091336184747692310854819265926662359588451206290149378944189277725027185573677041254691787963044735267607559144092331934290308714187242906779641157450007634472463188281890034206368088184357336277964779829659258857776629042404898185345812638488611000120167975416603364795661001111529764979820296158800567153520153794750923015650040327345339031231118406032643094431838215568291236163082623531096384714854894053171639866818830718160461461299624936150091118009195657037616404332513720538219812428228465898213172188554971693127943498142646170676270046264967792533698457730613185876556389535258930968842747968020513058801321898561913630393343038610629282909825163279877502137387668848958382766163748480807532690710406399337561607848634823703498011975264218843686527412050001748997114785734997762731205557661991937239658090657788092166148366458271684080445941977629278089716475404026437019470317937602100925210367103083363210551980653834675235970461203006461974344301257124827143641881011065328341409285147398961420235752027169343234432020146092172643384281938474761929673234620736632645319205070874510978113424488499570036617097859358331910774663789761558147295816860985313603739239145274593970592076805602628487475509290725351513248892079459162177927362118178476505704050153534913533927747507985055415141151800464918656615409787713979757216947255631427367858429363971168720408372969966323765940870493237934334769348962042724685098278164703118855306261536552604455274444122578231372945847021069539416527745950730188256065251339218813490521943383503168323700343057154194735671234300799793547805011660073383002888774013320098197908751935971864016045760560287324225706026976243316777557202087211577154819789518217020425209934359384863307601332246091064271705671312711107260687160026761369996635047371410781980178003002933375148857188646113448665796792846164365030815480742244496447713384650115535724498413312101020128383492630044668028149475365057686389393328028643319883003857806737134666328788852550274414481652060133317060969002821386877481547484715716085020817634018825985111637506358184885735955629156630162292611826226859387690265661557983990151005485530032023866593628056393304443326188824140422200574836396014636041886739176951984850470439378312504223337662702237913696066964275109061524044756473139513634010795948622148648324721097104399476359585816869120609678162528775362196475039767658684066683136945388563480106901399390657498942727344375128313638237485279911473084736487470747443752521716705872940541934437724122995363281390011399187980100985966454563946781926052695055287884674115054161226717140663355634294053602043321448085508078772069583304889584419353961941232810446583186515943945687309012261008180237965802513420865966510960910667220394440889136911224128983568452564797555380102855206421472982196567565795623259394860389945425495441009666655081945480593761878689324550074946947466787654927237798231574412418000371867116831542008137677078090016099089134032000152860074328383955702909311711903368998446573122816711857171935625177656774058392306855002823216342473797248970276522617227246651455101298095558839976700366615693465831352594311353920469695108542199569873053163345166198913578599423135605648044976135440454509203555988092375144313349046280101561971939231965282993251424692913659869883809186787103881615981612897638530684248235863180413918430488514827975820687541084088135451702248733425077700307663930763831183309561852952876009322986999150461656214143420683747607690975467652270449795137646760352052606803907006705012362010792785428996185797950042616170592102284822053181629091461091166423283153638114653502600872176963516582824336380791380042345619240279769680235878109738926520072107817112024749619734293179857677549802825979218683217348674843999893198281712257344618395720590132187242365728402313074990285188751792106937537823199778491240257501912845570370595104292244046922477531570542086778099869357573424555241680848676061492137881563660136227391236253049602364632002591224645164042605068113139358219279864094818473241045937312643159162131012417715396104616740123718485775293445997153930952057330060424728028394822084582155135736386379731934109357886095096129547853377966497227887629185426837078289044848443539809183255740998311662782581279939532236403361780545426900720491640132862218003155407771528337662792668432500560504109384382821726070774897686777607817075707128888211922303665906992977088893530207391890908115291177860865308437227816264479444630384093192116982000401724574024537521404682714648906290456371481028797435372429835438841650641733269400406795447730311319535805357564007161473339063525596999918158571076716768311211011568293338901385910931980026813293063143548976083163990171812493012267777398374296140618007905443068906364876480715823353681904783276414090577680986388355739392905947120684907686304155636599292884506898809288802247445873491054470797121726335561078399284026987022606365064157722125589054747388442255973463809875872660069349435648757257302823829610295353314742470075757363518925368485582605120973226598973151757089826079222827980393801561004620828554367531515080129048321359078720364264459260031464280646621200100139179229645108758032935180570677374165143007483424869608161815738393093327635998841870066530678038034295049551421781404743636180088653734795260357189159071727018311892168043196759374600763665113866311877575313878452509318726738375025700202736394809405250939939039053703106002102613136585840063404404960872697356579318874893515201018983417794609229689221605258122317818017451506794291767830106578019118392869183482385599269861657430734692680215488042057962576950639437384477949693589122956679443060122721497523732617781532561809993863226826911643046753758146608665037404137440973956958852728770204349898203404455156865106348424516710190805381904587979350592791475282093677338640675505207000977633688600136022441715997218818710880694896681457714258432910699724333754950801617179956402154440167794088714853592658819468618584056363070527355710189251948909932788631603202573833393566760726512657653306465492295108331689535652243224946402663787454173244798350606925180099626373935728405383681390504996120223514848137390734853844465571661953368674496194835459830724141884516586907303788648088086090387474522045601735382185146014753451251230709010396907893518483299935743598724737615256891619293268599273135849154805720861139561182300879309648342501851447671540226871441501195004150516360987369559579603966040565510568536337889924492154713778876978250008833868293132878614115642392155616052995674428935854915227241207043179721736047096975483610082373123046948835297000558382059976768824255258199547236005276444652624810573622390274377791346237928387028417826002679506804244394186604506035909752195073978745280289209902569679805676925394249578866408319418358380549704296649162432561563145177450771045265182194883260899669052380812628085553934247559692749051952443000458661214564394435442463837268434513891009605100171330539192444868044949232976214785089282400780140005092099915096386154324767126804410055033635248379508025147315334683566699970263630948440447369647800008951463889006432933256762358102647497871148688479342639532569771033864511456880274491190826875821805460971258946423085547052940060124782134114572866419862424921011659875662293962214798164372758581740751472497383509287840099989479034993231794481186805856890694537511056290766348819341373129596989802300673842576948072540806556666267897848070396863952439598375863910568117863034526204211866425650241410731368386638287288539059401366576309901502328781846349829319027874901336522525817339626923280778075195160675846617665440939697275405812776981943468022070145494081265158348158244179308143938968938368700347766595849551104966331130458559144963192941305217795468092229749495678000746937450591205969112764111986351027022991661623776256108740665061975302244480423033085242526735012823839156522937396046929119639941262799446746879674402342143671302900390337197225828842238741102789189166854369017124809211853558591511637163134428837097114322485553358688382902781254411922050014124041595827170048708133501383596425514404713159913895787841906637341080571376660827315584669980396545864508903142426454754188152719989612138573728664378754015021466322222570145935287621319606589603511423654615822473099297545978015936023006788207898542314598973509691221499565616047477489850620645070976261685210745246208017521934143625618650078474504399189591225134965767934438137927285904619361022151978121941802675603948711546845435406804897218118362226813199009849186563302566359112075922726284019186054619248540972013569927619126780022387882236761844205790836982847693667862687573547852623674928147862586404180799826401278327038528062810294848527115846072838769725536574277020307893552826736410487764276785402637264727388698706881520874853479066899165258415777489312327705844767229615283426552603310189565924707976044861440994204709767579242342978775932830830216551697606794387009767013143263659966860410092724263454567786676175877912440999318076529644384095935351843031681693333770186404528457986761941511992151013572054249828213136757071941716172313096056894608124924971775380143808126220019339343527706396544273319565635304398162996077534939872110510395054689972018782252827670102414282961740305559141506750882431475413527654193059363183096562033398630562235410690823133043628791768321616392194033828614909184658086331334714470257650811750476416583422238249115121232870077915613945339760698697504853467144422243456208060939487793328386186449063076316871640175678528891998965037190620431766692483357747668917121058963169671617479257500861410510144807184493516114734932203108462903153907075601973490936170322614649008477023486769915810481529136170326547160723221054397036329741129419057843391615401474545659759967579575604623087860102848250043927410811965812100602368506306377141267581393081910903305221370191974010281463811394888130467594047907377623877017292160143131927350351819236783800803798321250050684241316491715797348454109236888302498911562686741529515215068069843126558648017099518484825694126847257025336222330655902672841173506259659186872394583886594958197751087618950061458987632206175881299579112195885065465558590698979015054803781883140591884865980229388524463310025645841132953621017322477297936098087745163472825407426388296053001890511710054461895630676700110413444881275572759793190684522392889594867958841362645424397239739857031342490950885245903527787227703454937302619369425399025565864368289942468283237450837065134809176875758240061283680997647507930712938082627203954721053798200398071520864180224766569197471418021468232363186261215172562970180479024620107096006851052152527094824517268196219912282788275549848611933632411951451731245960207906913544606318434187821882141968979424661279379304403528415731842121058887330008202506200215353283656665133672538469561226335271922382987823723824424545189134277663303500481389294458665675497301345339991539641953697265168518263015200970864386768566828649540893463276327562306659640056697144795756945731559851515954213334005808840500979961709848690430239679300592503254952136980288790205494861348540075813414343428450062740084534201455337417560827316136273618670108816893227160319101188626096624718097442757611038287660227220455588585575490015050961538889268354951713069416089891764379578153367956799059768500150023072240146584272199552052474732169880861997772625948269268345413366115795716838486758647631421428779707823977667406635322518325089906134996729766162582649575055932296041899938683976911696306446967906793960191624605689525980315090264935043079888364793813463508880882046474139480996756756173633925101389441294382316131805903986934786406249861558791646286795932947114103675108385634947354450312312012884262325238048806388721431287496522503979516813749846237644453409930608038591239459722837405624787253978484955259452280588611811964977624986789053939358662683587502081497939469203825478643553266826074027043793421170192129285763288353373037177902415100235887094755249616028929031492659017532050205763672853487874795534450718288942224143481732853861136408160266582904170599222710638102572476337333316137594075797456334435154034353421419118110715409840602338585258281883208534222658781436767031650813569780672756804104560327001404378185682691329294864382234822821542987807532886856699477121807202534938503970824439299351744860890867246406355192315012320669557031658579613728642458654798064900411047469807670319160295679847840093071244044787970325639444525351575710008871343428077501000755579450841353180494465662104930710773225048601465426713290595234678695127199111618468384252084161789992972581288738374407282925195342256101778297558835717620949129742670072141508904158210421140755862810441305345374277944322061128618895633774823651194106131693984089807092953504589657234999104386143115182891241211218735751313529544449260404281743940334957598364513727489530007520958363984523166457945522251691369887181762263301127704887230772534106495053507861292768414169402712491171923689996535066308044051648407733706382730483127406999809340706869720725679724679883098713556047770040440662119528078850385609822673194713432225740099070169635203172789417012328119767562236993656959362505848635147048679928723772769564124748108176267462836537348893402080519617581651099144602347234069837364400065714621048267630769840780762559164168917499896867706399846892294225074817801697659379209743339726984436711124554115516061621505505597290174863803724183215401318377756246526541960744317003382403812189247035661950344155308472857868688275237378893234326294423324469451183464027753460793973706770604985566248101214979039714699088942510356239302690904049476866617301358707259779119183646308102017299198232010691286749773389615073591370724730778937921409812605885265735800681325409645308008033962473743173776134991193271389069289772623053582339556360963570661613945822676930911590104502425630528815632080788914574938804028889216164561721869357772239390171367324302655467687372285712863392301562297046384251673887148668773295546033190441612139425831724643509268061235584720007388175194904105079482324457829638541511513859572881967155328381916996617663448440801983424656582955607489799549375052660563293716531524742772595718338483567624901715915530429551340074638583164261538036793094397517030458986646765465424098003651633588221118247066072517036605677990515928341189808813730822912896048036269253920455372130000711793171127592219917464863404079689411618532371283070925734438573035307181364394451475083405043355537035247021054503162722814287181537347901352333511327497186105715660604060302227073703698567198244608316795801219538879471563965214545101590543506211721754750175834299619768756629258900254956486450844416549330593081057538500164558972432971496990513432399229743915978330272596819325389784460475730580292539049727299106929340981228703843709332559500252339261857574145339563271505180150205816861611076444032388412070383618145895201853924490925218859703306809040722366717805057085024266619574515829585050566562493708896153566276934471915572300719423181519704611464684535703294145022904713088925954867780913117029587416924215682788818748579120232540900507845835711583328129067694013348143619234535495228874798269795823056710707262881800525018521556006575945948154041935264183649089300036460024029756339144541954502213884284346761576433457207438379808165861874896694575293217516773728001014022365479547340261645981132716790904363840369715137648316408726897077445073136112649235487164086339277006639700232530253775489903832954486880971663438702971839942849022191700661192555396688272420345785850077730475345527922449590166553996479469206136765279510139209082581521830060966439830242971517763179148239420129025195726625482875950119658609002874595080444248769455270116850778275570626706784113845818042038795843226670240051306211016135245740952824034783769741724223623855981723752185097776328680356932474820186688402356382441291184675163659185864273696097905886695562878274948577140963684082097487150539245494479378019109033317703022670295063779411444930808112048453943402759735498737301608631613110492684296480699283768789874835369156428215017432652157143272529250159819115851194674251410503847744235226961722813639079605438030365223581295517258236152083753194785498980032192462296345546927511050517372560440167032572933049671786363093721039371709920318846873215291409191236337889757478186501743784395754558546513241182981852812447578528558903233468664873449286705606182695771771672946481900627724299944279044436444703974074026638985237359779932261256121322107801523892750357677596029370357450688364492988361448122876244651795836969288789305511434146046428839673893304920392806043054728263445441144595086497644012611691384076207169684608478384032955547555449439101200947969627761667221339823720278189747924512283235963826369936274916590568909563031495702640028282127182476794990171013410974501874969900068949521553293345272209803889261195185110015167707881913355768878175083291477828137475869695477371902343927409216734625513710811055371790084584274940770360419750823175654063229460921185182956550662817818740121620591951630314510762001588008131984515873030801023111680756833881375057819374878712849495087427484554442220327198840283144564970711018669806849159779094650910503582832489330529979924397443366346056031710852761161909631033618077796112964628314830092302917633822573216016656405603709926809855064651236979065639525525320202874416517838693301092569100136042089380451817945840511153795002425559673354528038237950058274844969612391035745316398882567631518228617275590540362642036074297694060837184265943566054238312954919833380420215080630823484049426270682765477629634271826531117484370770896014388782809263891140688028684277772205988735627063712753324898553662759234934545187347465661293802684736939621854544958654462000613298512588844206895915563292079196568294109286559082209238247981839388759948886327067189543908357888344654178849954221921706287901882769845897537343719692998893226035939914230722237376680223760263977129513218024004038294417352458548776125580611034720142148891765493592066415603751772931059515835575388259355425075095173082553619034438127752615626778258748682597368709091358081072940856724865944197460492984438250949359593671055235105196712272581552248799467616215582738452402014778506156392702038710253981704772271911084642019832201960797279149566816522096391194236030365852166075277429357494151538486474010140447792933903174047723024701856698601449952717644450489119282252231711423751788251041893918480250206442873441326289377549025101244795539271806929380195711726283132069525100459084868400660261839743454457112588492929001357490040173963796253222728440288979179509223096442550496198168815614876571395441253898744713352462119132037136950774832396555937066249475875819700313474138753953626032692052126335035172248734284450714676373449673468675335467011756740394753315405811734621977269332633441003788197349966736906839777601635238222468680910001835645243084159625905741252328760528331878060088570860659853900478805919193894431953378523972595757895840609026248926066576738439569651107961055995051130834622472743211668808902520248445885552851706835698368435818244995824260625299766563429036287332887233896167628376436468163908544126125764062738531118719397063344651239802532231002515861645078718728825894303285543144899701556034801002839971938990035737446320484225870827229122176104816735186795384990209564212841924366351805919700806715426477216927589124713788571607525090012196213537119634384388896248194883467193955808085729578243140219039864646757012188783588127140926489360809998913039546680592574106765208166256382622122556085726238853207707226249104321345658715699858473397970780018271394191093942677606799790016954606398634688054422705148744239882101926809656032899036367634875439828104975115841921996552699481586293414960595875983956311099870872582446510088808933307304084851965900272104603092884749571883560102309954891925860610150735582646476525560709728162764346899776124002889187252795386158583913335536617690330284846270243864269970400778781835720486861597080482347770103459031046082318925600326711640413367676971470187099986415723937434396146645904578947087490837772280826175502907318945696956785410390008435221961825986287013749495269043708335961198825134915249695288890858923328268192410054672357713514778626077029813995381048834982831466088808990642223658403619416239519896032841464880488998061820197695600651277394737346864706467244801988099128865648228461169640318386217120392299046111805663173496857285845199047887959312935793506999892467634002024609647630762225612335381517493103955090577992055812242715515070628708101348163527609169444128079713139056356728288799836852933318289430971218134508181235406268843496719341833220243676503758488859362697212363620167906138294429051906225271314473700154299518028828904349071708893940978644812815960054181431751858484217034481780436710381719297495080968604474812829030734367236539941415029244811749353604143508445940621093378132156041254469748469814018115145309730236099483503606928767536020189348698514174212640990610663005142612203121918724618613731845694003713617338621816636142244801185686354082326310279599081767204722372432920650315826505718505785340210987214243571415059294534919296962820451571229018491630686753869918183015754587742534065735350475922460372233946714736788799280099224099046475214107585330431745405781746166511594073526036550256485001668462199853214726020238505591426228851979718334132415246114431876136752086728468279181649377545479065212217949018928948314099487367815169707118395959721950082177269532810933070427949678054515747678273504087812817586397159472146294318336512254166636039881841685754050064350617600120157166597144139565595049992782222236158863639522320265225993875440562557532882821531938583726041787054447050829591244962235555988458145544928657428600359282495442878932399929609045268458768208250513992852029372971790502466889629017030452267570333881782416928984719319020452315899938516280017921597122700493456013848003881325995496081529555890037939995443997793703659369406707865757837974092800027258445588761024307948509801205032035273508651304525878698929463348412362583871692369151253450039868599553166455919446526799745345531983528776364841763176685927386457577524016907783438743561649824161837932786757130095233390663400129805124947914763740050635560266464108646430494951443801477918873670013487168865351265195217334761930812976796107380875229702681961110671589001856500146173843872425291826157067801910382569270371894791128550930346402055656001805657699492445503625332298959684243493305656194147013583085910250840724919768300455927295326952442673762415609226057506912584458566917442385173169790359298141112150880705535246544921068887122717592206056186439324135979152701915834544005698038434967051380637171947946371039211075637607787806993452181235758455665609196549120754517323457919746573378316027303238009458342833796898610669316037923345850050592903315587841078395006927006999651872245267723834840513018443396456699054244418476438636447421781179993566404217174944055164209881802545656650499803944451124395285933827230443069019235917083740585076916347374944377008270406044040785118861821852511475300176869415416158949821560451419301345462053207754933357273395615222076725957582882218397428919200127499275772263605384919522852942587205207629095867112637311473525164696127747529026418281555903605011597948420787741583606416019437577284155396064897694884995621895930308843868375113352333459406865461594904330554163804226164381949355779311175810535706290768669788818062899039460716772832912385330253078675991236158792194584736076883436313638402460428841012171527968657237533387515913388181927225072794892196667696638449721990544264394172897844704530852515738988557300165051970149688853942215419954079955080299888635419608387155494774932027068823338747956078046354767713422882850477715873055724476210512074410027204332607084518003593090353067161321969522493235547420814303517458938547416266862427867666543911096374184299185536280879490515441977573413690622030126321024729360507406342796382625008521860584313804720657854030283817658850727485599190264286301044128135860368158273493352493786904293957882604417010689450433938996596940624864546576423668377568647603275997554709447944635663226135235797431433137136256031868337325412040177221126956057335329021412542764142475909149871869329785358003317196645049340463973404858419245771624397902565019170051749201497741723259222062045497922610969367544718110216397758302980608711886981104277502568687373078943729283503163886281561702192946151174610540707951279415420928879699261631277765882750168365408597563575919487419577217732334126071743471128130406797915283696392173765635297469058613240677671091236067501876032073157795667570367024712383988803442097765893762609779675009685632692943442090946943176628716482541758307673938039679325086192357799150908968282589549380546145726479723160591841146335427370256819704590213294505876835301354503899880360215552713091492405249371221955843985522405161057186637265653710818026384302465068700981815206214042479398426483487287525454897259350726162864192830848955194570666859495936334923048305328732586547693374662954066375628636022124422347211882980082360138529505213778527033184721124794019611617296641502963304857614250937048548247024575986030752518300673477548387729830112225252771185174660837743205177727820811336989592283305121229004792053811610051569503521558435737668407061368517899709223346086119019920006122545617511931498612480690752269546724529604494268119182402330216681023422245327976041037307966593787149247512469017195089098097393601121437089414847700422767185336577976122936986410623605137668738848834884017174725705531759299977567033563022044597036990916803616261250479503542417144813465437704041157107883719076995967604413577483734657359044459366238884016523374650033499806617895587848815287143935988121046437114512847578959429645361170365664466516657561765793629393844865840154707950024777947275468410194252325962738237329583987426205067461199662595460410636108606041790981347823581398509284530093429854493537684452703718971892928282499424518171778129699236592296608472231765601983874936935319902166008358921134668368833142154544379151172877300215087711196239244808493034476626726769361050352903151507198870266797145880017809739546625334975060638174828486548360389043352602916377915915216846443176020802638066603200516482648551368564144075776894802811890391128425819930833682431111046357749064888425579842169568157287946861360565415622134011381703556928142446296601596471732566498763476070937136498272121710916341599482785981976917760409517026790592252986137515828431312216004565688796969239703940607527396526199442085716809062677291914112809486901944149847153768542239226901652005194949800742341432717724475822237690287960959767646017662989955259891428158414187036747215662838441327205855028342856333157294938487097202836608965035623423186412692097782052542484437030115973960017712684405092482833935428091334735640090546141793933730130200064157054827851218418431730374361848120336412267348204910525809217166497938934113524580776983303852412242976058812865145791505281457773086412643449875651603194686680130331896818980698312630321538613420146113616206013603791556111652003274183676355590610019637978885337962262311886677664235500736856176921453325698225384551699050947758150005300708413530333088911015508662423106463309074559409471341023519817164755021715981552560291692166671383952492082392490296256587170943397664102824097798905618714710698668969926741845750511358976095848111290751332450477808731651603799912632041483379640526930173638531688410572219880250599290887790537301189752589055647830899770764886033702633240884842824675422335834378846630492240136221045447740000534032466553970344229514282284905979972650457413862753305169525891569821048435982577894107186323542612918083265557063631601556502411668205279677629137301578295351573291140898780723133981462624753264964465960919844064803317963886693181459189697627702910766153498000285706514913693046265695859476866219664517026281104449238324895740781006213410447291295394294097115374360756435455393499539703814287638610672359491097224757326761686477276100841932157161357939883066133532315948422257872673491861303577967541391964465769598719601181022296337537958470077514449621238600356049561753380576387057084407494762255348962208547276415775613714848808514568570658547948119995247087961680692039351547571074073376372810604110939001426701242838496535751698872946788334524501221470352503525546345883114515979506805061539650766100448522232117609312039719295596569164026316850030956510918604390995410777646634218615575472483959854886298799127383873833715921571147157372204520958359289749022719988468970288906553635114534534753608371721280656309590645147244388034826769530373795768506064065718824453162734536651711782860862482442445806397653114013307436827413389463812526353345483329802667246213332030466141351963172929183873008427655077529803815821090815778818618509851258653982066008769933687969329413603320732227894332169518295171133020504882103485906905951770593473145902427789229367979140062269417145540025771979170907011504011857862673289957962238277337977582025119584737991008692620035404850573096184534745441774779668439643752991132053279093550418433559238466165662562262919342443878767768376561127457789177370652582906796544424336053403335092938618816067271106416822725757554538424685153426479412922773408804236954904100835651453975314040486200651248379045417262054945032319693484560132999622568081229154566833515886616418069138072527874302101875649966387204711738069638277326434222392269775577291254049791675734427784595333936973842603417487422426070225444828476737633448620644240600322295492436385745994628264559525419626208070523025423102040057859670736332469688008745838953389500374442298080653194389426719899822857184822388892538462889568475507360365453271036015628455149770328918024500069726907508977700295043921433054106090140345937456263642326506547129636492056772741967349930462471725685705510799402809695551009468364834271694477794101483228699019703125913463389813533289278417319236172270574683740616563142197448199877333849560721826704900269229846072615832638086140210879611169613348063186995589296738132405245342057849858391005156192104846185291146348448965449777001508085787205435480775178764333065359526010429807992429744614644346855434705900583507771385980304824645005165151144024420236396177509987617622274345617080790025888295357688486471887134016066744389254939693285130361992512012605303862037625418474621735091967168214877704105176645976149818906248311427585213179386968983067527924975415377315511544118728190707701275546392792544384729584289259923194026185787896409903340023468294305358603413384489121662166220884965003504368970696227947817261958325598529956760623273847838785142941148707212346008096357919276370108312351501879458841443883869584067378338938547167255554674903391000986724585129676041407669893967235636859349290968738783638950807459417633467036088969765745967931844013180018454620062634518468074893364104371922083757994830868065371157877897777103677857211420514197531145795987259806970646983920987661978079755848529761230431369016442774343086607233424625119889516534743047405988829136881671326935238816875083303344468935316524719125267294151662390750356604473113842949195109937912447357876385941788913805308887512810597007734559788925797061907555376839456374901120977589151395893766212987526798157932708222848898700222108141899994778062025058885836675326421625282269106753631575569184700168684951534156400188820032292518807682461513833002456065405337181206082623018565880486832321349029864987926918675060392712568427730952744935142405313883596288279529825320267907367200025039540335571431709573537406952004599260148365653047018509624899541717586391283104053403836354710826609612170842797935358693135240230418123880665358692539979931993959843831400085780861995154537930911120935795681708856889101384115482778129144977245053118303683909389993420541439357494090632537244267552941590396727858815906887012599926619666765554978973603271372177906233553444182294666217942927683396202084826926892881275184318618361135504223609757121161121709361271408429085955340357456784558987032450859634584913897867407033966010510288047974984696190947629592381880430387335811263826250256623499609807623347358901725957721433871486370506609781137274320747885048833788567698107554785730606790328494237480334626889776771720231011112769502192659980563095967773839913503256416188748405793283927412908985072116964803230755568354523852303991620494614594421992596551093315371308209740268481517837842618256299179021358418020603117664640855040723169813961166103817676038227236832161067582194540782735144881523641313755697036357423971364910864974625279910050444369451612397956429081839169843539516527360767862455929274966722060964808204729653099306854294284024145500568231428658363342724966321558054314702103862779174157377780538139685959788199903661282648908657011835064784764406197583713885758825141246765256380254862409761559600807136597077943351111294858943046261772038087480242685494005180306773266797731202482644998653395839522151711573878756276390661515293035692321764736195975034773395681090215343040240751541530948954091441637272704095621104768218334215116669573812516228205691519706876318062118107045178277956596564910739242168526136281269764419239325036035151975372743839932153491857640895253366149194189000441417767757466142369851969271229786091614121370330072611996121417059572494710216902818306228532266974261853374767804285658795702122792354612961049115952285985080934355955063485223359262462587882996886776711756089493716940859988991468486124304001967031011826650480559853247704323998237583225200588932385072674914794428741480621365963390957220417731251498476247432055054596882837206725104603863559137986532774189935708642526356819321942576791656176102391929175356559279755942904482556063368023719711199400537770594819131591647540184173075884086392513310005874564884981368713996656242203789870620177831498355560960739182485981457692352525485174011530018175133194977736460386663805730808687529524323767067740925474515820748040233645388928376480270146715359313079077599153467145172336131413713951772971255669338202078279777886243511598103971484617333844254989895426082089032852254653570111958221225337004774932702383334559836080738859028706644916427340265022525394334580147066947775089202438148778475602173771133520745513009300235476999078962060972610666086040142691295828076227623139660433305177959271299285996817722036055896467836405239293174982481827717954445570965702121930655080161652692733436697170977484130147005817673510270924069137312728074335221726743908442386734557101940049555208014438649066669590300426488156734571324917567934035153289588055231670069217743624430479436698544082812492360094059012542168630219489324200277795742214807839511725407779639694440853692806365444493502220202281500994974575124272171147987831708618688245136802516067164209887437444217901318459722047472658892849549297794892469149146114865006529657629468174479996005635755177124204100475092269122781372055369184269240899397036390208286742205977322259229126800129341050739392727846339616767479337117595853237278825682306449330888649291724506438071437038164177158961659883484114754439723180346254057402921789076650937892279370014948978280444706064500980006688486572908754787058445815145390244423723331445658156497734240276490656048944753288859832803442598814174763488134893597345091791884795608467413881677557850409447347952850694274490261700924274015179058829788134263411891454923331672158372565330436460591444975700734110816301463761992896108650105671607920765304479405408284494513213306683043981190764926287412773853360369847450807985701002756742680677531042238947492356381176388746333848478123993457350102855860852690795976137507663884864355255459252232852516672282759713578109772542667408958747412138457438769831980043444980918192252792540080311763738690619620640380356415412667255174344201230389346537990625691779353000201922345864618041938021658719644122709363970461960502641728138309708278324925021870683047520089738449445493499668833551567044095057306418292287060947559311810521932255003288207268411762280957220747587274040805953523687570644272697566442773783122534676530347938256566666037305983829925665952847479224563718751314256986868552532574524758434971525846919596183229146530478900374274075905526522966547192788411922076793824095775469311662012835760642961459431931238694759421740370494905258774525132112849441007666521376097493411752966694335233503910810740325175313058506291372875199635438233955363136868071466310302989926524891604361800241057405920904133902598658689620315008531216515787282941571241081180825012047994847787502250789472588933599363804490169480238114958621072355671744107686064200215254940966206937127290180757426788003074188124490494788429264360643240785163767138638648202451081412334267490121133149364186185789523897955652538548779884804495149544425510427873045376987687609514983558342644934102842364876821248002914583481990832738158499935326919989425269703366430258700533012550275295829810640760723208504085790261270023147438750906988384387215700506043426964900607044566005615576681654007419792075396391122215573656342522742740240616280044044037162383371641749309442485552469994903562535982740696986542208506855002588721337368091665324759793674545498528010097859647427985789442520620172986907381789423950613576749529298400216932096887665186845924379011983646005834691359896081315285795186937347586104880985485609650053787862623816911140741511106088467952791601569015304284905517155592884898488736088054473728428769556573805490321261613747688766911464999030703438226144107230564567964167334712994221018483125300211098257214480264447614771645891643962311800002283152721659916069451871867606713138602954806699628594966378320651316862855725829840762776091117131133763379716481936287063242269585470028013288554183740256184070687855683142116756684327840532236089372672947767732118479682787745041808047483615958326159925944159259156649552355450327240636291442133408414882082134516665984185234556096901961114918766411127803711193754315150016551294201495087461068642733724333013718365755982440777574977384013277713366359198307582543963130189297554069411759219408683894964408691764809952775647345034041731003005551117386451401613061266363321215488344748022436753650761159825221155526249470518067130675513592579669410110654052640542343662641319647917102998670994830805729250731592760502909918811663885251191350858096251151820357183715018438396303297047810367798014288337551647509834013209121493614117863872692458081709301478048210881741878211783909804252562096206605623214732827772694386406113194061647172460754176802753925506318270320310114659186572461808703742118889053059756107013162521118674179750754250393887583259685005679049725704479223154892145994252538353704436090693293797004947797059482253417514831983826337016912364854793626550171536114800310195622524381620173870527405449671246756378790052582943089604500367210311607697793456424510307746107545857444793940538540593642942155879906800028648033030877235889047768888093992232611496354815416798772336622774444488332918115710249563323267126999492083930511507850879466621091874633036529788030241681765310479915157957727768778539582500113162646420399062493335038395499030197270835763221765382428980685312516942427178882170803583287735375763579187833647842007938443143717709608739076317623154789082927706277946161159272241315851895284298582665996015845568511814381628331967823222862615637433582557127678180779686847875192765669431714780716214835996292503445261713373004865981760907794820271086896118260514274559284588759652195762679154979666963941339926009081989686348795376226243274606012303324919918084264172214080308869723351827420916735460219364630893142878784408240229623950981602946657619555652591764961725468584266111933823486585014999216881104904559354695498654369040468799730635720310163190463370038333228865508040003204498513344934780961816654333669027282605383184950717981416007148081010506972463991096145435703783486492386445070433317716007760663880214758951866066060623028118815645191785708005776203172141719346267706285028197348414168057783564071352780441465804257143004247758577371844196984987182837271842214762164123672234268915719891558624562372026320012795782460018362651142336634957304754167539229016087849756625495495433609740000334837688812780011266229387091855318360844757311396573186106466647362824678364129374815947785204387380624407337966091808727337018986328277288144347713347257169880683148288470795833981543183696921231508210507198010906454493670722358090815517621830289889495268683085356182271272529201253222597511302081277797396952274126622831756483106142704240822711066857580007373402655128271836509102651826999184381029307709142374747309100296912300953390678006741563322445799233427436370675961030196217620187203175610944670995768512337452549205657708583087939687818323029086993304228460947047843948243050700639381056507424564532891679004312022870549349645851192338397799808549345696814408682688086178985998184537361380846106725370313383014997130803931301520261627675445526342172973643396092028723536743096760058798972478326224762960206923093634201174264863013248702514742271790695367361414508347456616973287317527899976429755054698993090521991878581970410777125715706225862794781118698836844012676097886486858702616368292373558765362383479970066372879101627819633120695181894898323915504524614535977822596872177222232410997596452325999432535636319166775474623224645640513071981986605555746919672728930916679528611888738001144666281232306962623223002404430024099107901229259699350132195191328207323414282856793600635423597320386374282938079361199360542955648568046022751433548479509333340579248939884283210478650727699039547999002025502032536715610232759525407294273302480735364510508847833453152902968019909460233912756844304463539871779503056933868847716564839942899614708019301000506829961969676915535002923362034819181900021996259737233303428009414634658851236716437635741269628023063939817153301227850947750088392379943648271049921086103633255179989390868808748909890673115802036291128448468010789575127781169292637783379859335769160778476279445541516346161779599395668995496089464020192932097222825830283153770064887066654785395969033639675775494606056440471072780381672323736165813901850241597890091234066085256826844040271208582964202619108729149224574054494201594138277635425512126179962044281128235216192653862625474119956178265798426469377325282587008517822741787531600140470681712734532744547294474431807779559524967745437265516665685109887173424101079679047868652074216178498846918718111846049451058706984342625787019276702259261463474497518495825656817408551637222418797619477195549087428523219330723267176831467388696157495919775022723424062610440044980264488624336748295290310941280489290000155741990872815313559857685813039841923810187702331746179991225887723657040895378868321517738366425825000783338947964684603380868620250808473855641265706888241911923270425347161275284124709974230662550833409420083284251266741412088299869025924833652040752256542129664976782888243704508916563906762990372829396474211146202432163870509348775982596286311328982658125194546316430590705256498228682326895560725010856162426589470891961800367445640153564465728019196472222131307569510666003087093953604376555775179996424500462152704280742883080826512621785203368040639256784623621012627672421020878636662418099750661265779859650059557597421337947155939215179306908768328842828866972727126709458394760536743777511048246338389675429049684923886583901727882596610896526517398465861797148355780828794050534272013765475488061999383059516922822300821727871890077004150036747796210468756149753964952997808650677892031197860479160633300994089650252916265518221715144696626737732435178550775283219050742197156756690274876219924984697163303030861609446621936562278855474654885811794609144967994663290142957544181431964290417800126431221192026209508282480193992924787061070509846737010526656690911393563037373140062621415149979870503097502363530037634595162162216351886532399706209158605950327617326320173932661396271847261483131179915831734942934859862754533804305934808409028570336676849172161843643566373957417572451772359941954511065818469518474857456656099334381921663930148862775410172518070288195498307340540971788702729828421335397049909344599639042446753865194154370887285472402421487375668816768723140171141172757202459129588296017584769757006495811878956817307026821688807811600105754761297483567433386660400507333329909094786871476962562562061833115614894023608445710749526825659430232207619841287326133638108437172457833219011704252900079223555016753549524762658999414447805566103446870596935733729263260938223735916420649311144091253423240682581023597715066450065091280902813998854781087729355975426506021046803480066511845373526286046169543109295250711526500944139650430321897386877267990904347231649045789048151746329856362652424760498139005432202460046940253972135209358513161829002383194669878641114105058271215056346592354594014409186612794144451287739371868873086695633078625406530724572741053824011189183241807236305558227897091688331371682247780232886557633213817989073368924419485518532922279999159697921038930127588812680002985330798196478576793173259530245669059543914337200815473821329203410226088376427709508856932653576388448692011479134317566887502900428058674495650498812180145775478990609958539765974860800533958202158123321592905486338950720509685319195339792981434352285029576034349087699734666279994663960952186640696583267446087936128520427303461516316327552174811181982781776722008786478407726453590625515328291111229757030082640727699132200605913988993913860850225093936782784222898265961779082656320282721655147377731968177562662080368337287943168643204777516079993162784919952646121332542186544128026965506405890519432562264465278466012692588046934710947693682929819688393854612346083572869741457692319008800228873843237217618717995264997699182843172019794659260455040915251040230188622241954998171096814134972089186565658610989878425336635181717488340384843057638049964100533885708172933608565781254146738066935910362457380350053977646710666273147924996709624009684308059413117212716256506788640215995440030709530380019403399391939582958862682683684419857388650157314884354224574111928537072480443805013179214401147591020223789685003907530322306295668262352326772360363172673988538462159071013948053918039581895444063547028917013273251165650064464349720069538463041306612713425760347026252565265977160205799500553054673241170671303119565673765050948226196275641310855504329493679608339690332987219999557140897596596690602917813761065504270576396635069670048031682587065042946601386135907333138961267628611827156040775465686400065313575622778473247015151417657073784380413808977758240044066735761317087413058147172553373986855808852030347746852211453315931140469237677139285696010508690728918787872114235279594705257265174405875692308496534595353551025931556406401288275073231146523133302348425141167900363648977460264206807735553923752350769516675716470798076476172298807602546040357376885947395378637456128629766843412748910984477132189262971953602697430005724283849926912480590624883516439360614964307094699376935160660920795506585921722103863323912761707449709711154624194959120795747497048881753065590853207275258823559106920032172742600869168011361775646507258584219370047569146831316790530792087876521411315063072834734827698606856464656852941855239486832487476329487729643558199030096834356023230643578080493002700983881007499910989537612589152553688158577274687599837439700964011147629805557818378406836195145816926324327112062633203062955076778104805151263521044218275677013732927968801248340707677148589386661079231306476306724824516678992746953320307791733000025482018784726484109378216731956985885187265831420425902368201857979888537723403411336982885773097987840798096068266199358148230667923305101419635272950109461193143491143677698513858153335244261176237117116927354921395881870585622635896408776711424974496531148929399001514591088859695901652091295338768029881030825381435251042094009599536994939355596445137763922436201645798129304710811217836212481533334931004246667445422221458377867142242554920557464219319341519184964300769384141902060818684599008201559012519746353244908546506875706919400782932688502498433371969118196163879858338029041898674234709140517747233162621494483986238562847449768453326740956114937232224923064176100770705778267842480845976608676715288213481801258868555072312103348753522029562763233812542232546823363253382391372331811830574713621557263144979857268507510493685360470493842059120781091912413266530662582226334939655324073163835389815762695481770375298337710947468134543053948266176277362545851382474918278071099899458848493044825811034758163951589037880180692923602674172201403000063778919013390476148987732176746650623322088438034661761731675366888577377113651386005250495656650924995314946613839262771127502357497467699406602075310864355880299447108517530515896344274009529188466274122271892361172962407479249465377575611114880374983696262046558751689338941333446650959195700299194139087642266068721884387634095118224028158172355011862916436271938996593195496293840607260675908290807716444772760251596032523910651036445363479230162022735984183162982158271856008107186333021305656405951888582188839705414199736428654827005273946638551969334011871134850360963001883536302980707145057881496767866544934865284739343244709169488603049371545397595586293538667649553260221952794570695201299536431797580890915167326694246899500276711190957864935726223489081843793734806982697496733981245747455797474658469781280112130189713195167608391558436652532731462331247007569693110570476612880642038519377971688518276857668053222932243345191202049642405940254111584003371389087015070830291237392853267269995308409670682481919434215548307001167431584070974589624161097466936740180138776819332622734844157224481677950197428605513015523211231859838471256455674446428106810380660777898604912074578594632767928934254098156925317683197668588275095389429969403716650211003045890748321770159571195206840749489893099930802765170713224069904222752211124627991656890654598342358231683947046559792412235222972572218712740621837913222498423972318718919113732325257932711534275617662857955295596038337196712260563486251617421547510621382458703320189291094563267203855172795318410309495614284154297054188774867715371570453430488190220628252330740368941274250738026833271635298427403331787229573731308015783818063799812453872842087157013171576046265022825193995698864382611274958109168703062567267706656464139940392908154894941104515286854451109706242378599723923780073633413757431858797096873218470430891031118685089601342011622627629421199591372087210494266550207026939018349545806617093241399652504031588283688004968191852880092308044433380850850308120144312404127062032362640082452070445502937064328913724990861609472909653011764977405205323794805523556143137709374776072109767136413770268229980132027783212993553298133450573552983353457429352477518002862261714486769826455114754627269558059697542058504760592592092563893895485011423388315378489419559218567478246970246630959747151175739246182115743019345259275353957193311342170955542772953141780467411668981698662982595092321864080221545638627746730697092535588423724893629600875285291734146697766617877391334586011428416950897729167466499901655131548072212641921995261193148966739833648157431177907443958147190093633336039012461114380889647550696629985026169916838078954726791451776321305769876339958970365274744109068570328412038717748536252460548720155785933151906435196805522107426627265170365290563210333898100397572146169581655613743313553612467876392345368122062880337065248989091600885255803540233577376410837215185277634329219708690107016129097326918566811146027790244510434246509503811419004387029331267726506919883313371692116801085309104701959229552269200153872599820866417488915121329118587294292030721212549290143443479268048416392714989939227525309910262140936076493410160365029035012701437702969422636900824619903445047760000134552249033655223346410723092952949283313582989642841034681760711056005024135466407839388959217820010444176967496445901842488321104217687157154893375602849351721079664093628432842167475118692698672401053274157395237681080296962854844229218305724702978064228959874890605100544829905441304560550344679330454199338561701833300985996390821999428485038319906663003012488042270340376747764619545215503381598943882593433773596198141146840616328015733656557578443507641032372374315187869280651286509326349660223506832674767576455479069146879103263457333272845177306862258643080679316030877990438012018122355658034859912396422808224514508657724149005737570652909141874366336498157356660180800576062295283344604907911565680777070064159672937805925750579491141079498509229233002271386980565879264628418213110704124447081677055631240391806171403017109474162074428061460725171098418974356069998940601608808035345461656344135929456928236711077604214900413656202570575040898939749047042760403159198206425492180547813094863997116382701958377636668210936935523150623906800457166867912778341015452985342557092484972296952488567936318488681852823437884222934656896402928450052762922055891651223016371714025492909057009577756814186219365752465888905543490216104719218070839765303667815330196199561423466824031504959291045627459706596699351542843499452913554343191055173125592885270623477680852152015499621744991611377902370235627006330825602999974731325053216424258267858904548409192396458377762512306269630684486170528937596173174056704384715608313652943783126774445684191553550068419331639743445623484040251962279737598479754508719214093183101985656777817926627836903060613899900101062011726899703337105059297369372983319318518959060737625886762973403898801680021800475055173188824674762862653950217624069166170961700902572134435037711796070184811111367271034104551443795218110924715916174559531289124540277381939562287657033891062140229985151621979777363633242733986578043416443112351131129970266632744738217240059103515392663658088625574610665645465628056741711453681766335938042550604312864945361601496483860725515968152521946201801104392119807034602062302122584219236288174340787218938876974784720188630051733343544294312855838931508560372736278121787963495666673748067328038888593570688319901277704120335637733265915761760842288052589658306682955774673173314113285861337430838313411155498882648382538747341666704346563185799049190152785692065209846573059104228325555272696083696682426986089998480846133915929736027255651079162976254135796501919343877103846380664213098363055485046545925961807199233364989180854513010667676550720188591129707892600674828336520753810427384891319907370777718169839769815466832723948758443144356725998010011644740319383184508222576209112567783923530989133908047736476158710994731050837020768747461033459760945765437996979617535199276090060541354174580935898010560899471469377803384412784761803809276936871181202308290086503914520889817963073614855028222806929465358153945799459868066698393662252680570304747717280413904262491705655068799224446774824374757014822033419267367782433118114497009375475558132596798120212515364882656066744353766534332573406398304672581693129907687105987739320026245929017575883433238276122746464311055718480157588586906158338962389261305558214644561044232618202028476685446806897580567666839398091617248247803124166549049296389830969910397749962857976763649491647626337792960290495126246929825537287533624724044218886632972836659562325479635656038056723297572354444982752003246004966705643809187940789258319535161635085366036668616496394331251349261086910240602938752018857489379476631651164230244828848115677904086995936188543704930508362434355393825684102930933672598655979897929455997364219214979454732502701197813469227159585875646084172596639632611830838444289979915793960172556166449863610213679155187969145973338989596252213295108427728518486610779753338744175995064617340527200669015151796750325307455958077285575923164200140266835185919117236537472402811114411993256159716561653515732954138633979512516547339196778710280870207779307550556627832756416654657004296746594476392637349267897380154592154210725390510648489813593586251619463464795785422114079669154872703228251325064757501832791560114668701448745866385297596553066249492269988822666616779747041328020390581803885400140233550433110094004540253485351151574394716254556778412732810172620044341523855745380624816616748786968267123608396245780070356276043495042319658861609303311657236867491596545073294364961139412722793874483645995588259334274413764430872590243619019675103029544348722224954843507575634872422541750395920773255590914213881928247742173661641550350358695720888139177810007693831959640066208351474605425507512156130312691322354144236120913155254550050540842183995715323457835272408545809480921512895049923004892191341137381669155410695123716383787759541280676090581720682001826212382678953488609955697253770442057351048133214866753586230654088086303187217456198428231823662935407506387139227781744839755258536568885389413100192722480288077867273204265372575780950705876760634670063990162390529000211154225219410265512586820771184553825558947487017003081909541582883424990307473168533210812749756979843182046099840865586932750693538608062472209350185865121536393891491888184221056145690795521973074159934381886077879637074572094354734883414084538613318395152883198648807497350663392277266787701618944293691733523788884476318606931267624022389421764556773795001864172878688031580733262749152957744386465323869307599324790748493660904108923600652810595903760253923250870351041843383211263690208222837631722714673732882231896606140278957403726081306082390367086529296295142024145921789274920149930331838709045652290547443233583050663608384400309382473796079795996843022547616756814742552098563030146081588861126189186421299443166030064545389373128316967620499513879592106817865403607703876901628022004534378014499142662680974777887324200131730080767904347332086599919040426318737210953531106143072240966606956068753720666205191648974835118765891523364723458888601600772042628358015751775387818478941843646069502489145662429469329112545725370386100052381043731156044719969222681696883798065990440574297602942640408926797327401212380537240299909331571141437184142627989495915031541465040028109894721050160589735923291957933956436373254271047537146500955476507206728201777183577996112026863159591519083944908979125416004018058982636405803969000161475717762682559189111923279958254614958527421954381404451730604733725396684673661614596899994397632155607864883763171431235263007865771345498011810459072967296476891273026318485733414831481075535929391777460981465802714985730645572976726366702049429751563885995609686064332434783592976606023825241764747778023471549955833923304928668842314324119230019252597776979650238019431796180088804457935741945704189139481958348556082646305030273647115622685430260144236397212275511281933789781340704422823247883073057224069860145361590371386524957710854331503394182484988467711569389426820529856102326118626202426757228200957742931265808475436665400416979517140038037936202699506528999550991087539725132767146968228500000816445416249376669077347717237885912628369818312448082978439298601068232056319262393130937315876608897740972372974351438934849919626363905960286335480173073127268605338225247866412582559892997236265888733220060939986162097280429517984996375618577884772395026672213727332729540543358566308717130356162632237769245124291486175491112784507490371805439198420524457833885814366229513847697037147553509413213702751140575662154741036565582040255241534183330899077162192592652369737366177195428458490884497419457406387552046353398908405786490552216033863716475262720921852417031961742122198490722323383005299545502858919545792867752481701224427977840912888693818039435538507755712909604044285672295778598494400084522573532383648979630762867127255919746299053603668869511920874144071429751080580961578599503583409212026562165958617438820784410997574706910332274498740631324398382231742410536966148992835300948595573318734875775927604131875579386547725257311215512398092636877162245981483782572472924007457443222250418737498041293221292170278668867790880980279294856842017547248377474968307140847620442709565888451303640136188178381907929319483683896795707650643532273302325660019126542914337554409262997802120555022867843402322849127947762852326441540936499814379723088248809464846512876620760723668979439774622869545730489132551742893127280692974207593667178169009546644350516308852499165985101097283200039978994937145150138497252105368265241425894866525729973964774317580007799843724861449975452075468104604954417487525670143299094205707345682681328659065432149472208824913614542898478177744150261847265828745044171442923771296074076198900710454207449155663556987484128465893273247924948973931618689801404892369142087317408467050936148664931625230197145768933630285237251667116344054769913388470385745009911830486920664673137663165086738357029750059881408534991311049600817604043793254610477586679695171954145954575654214657512353744541502882144494355293455301177665603567761398758269946371588313870751855583510909718837965068217376816643292285620218183844144055822512708379044420352709145327480014284671234890183939480419453753412946378976274557579067233534644652195364643716649677418431614032535718347080363269446507975518534459088544376477442710086308353419756662128532893647416258878245031987105846321648913102666042536033745303079703017179593457485389382184819316798299348605718213984610097869965139218053111177204297585803646567512891051307521957344349021658293779073962564885775824116608111916834793837835860390548627600745915461220845907642171402235941017545107345147510726715371045897214000275566260051425801248742273771179958303767199797780458069422839333234096176505947379759153284096529003377982388976802894031339568730423312639044038238006876449865425978505714816944081425745716677851369773341851774294874796253716292858981544381955296402529900247604505220058846252859501827726780422075927905705269250668710066491346061632857476352680383638919207483767109718824788184527363050848651378736885808981240305575050195857038974942624904714568655318970356762174504198589595937362533497529876415504559404361325313298066760789111852376267378046058736744716209936548281423246767501193200075746105559455395806921134425446326542333200505999704595149547830924765033971089924207939516231771804243334808274540442335766943619696816353799172965353091593543228416911783069850636236062853449820633113859073066339072355875038189373461441933027597718814363359885286081372018752312285866865138839378291879392461621924095932201929721509002487175168245099191288128591290920140145681690648526222675360192276636663447555466091652526006217764215559855838514092713012844283818783321922775052303786434069092729557563532427740265239980624380495443560989758008608863773518424493128488089172350882529243515558641716742939168662548724030267367272939725020087599813711907758689493202693462615742374668920082171199647444924445678758693511824016658548967320287930047551194882568768123696333416421958455433727823353576396557740413003017705650338000078384919911420669969656087497845921322591557657861564367309299770256396839870014215983500429174344798412061737071575534893756259327545337692547591246030715676665971152165219081461803888377359615477442501403306299095713840173086491507985800495846682993624700297222781254662270098421806431589495909190437631264260640506336632884224909684744786843807664961430446640431281321492964898141386326777095458338336732709337372318231886012253357769822709673028931430748588994792503553948228893685707635757734995363596950971614995578485129664891196281377832329519222269894373467704028975010178929856638728453531695142357294870143496080835955068060496101591247701363159193373837944563058539531861216621085212631861524549707814481123131122386631380345307484863330116107465170313410792635268371063476521777442649768036088525565962764870938748178673271033551355731820439031953220930352255119561400911693640215078562179917851285732213364614537265427640943263220065108633085216752658953818419095224124988153795866395134576440105344356525232711542640374901546569358139903532855006619429415521991465867181253971943095141300513320761815895645887377310619557122361312140934790859416056786099578153262660394232550712577553681515520788316355371026956856079873412590451312758041780585632726865566923101805065275172556465856753282015648493352485315812542757415486390757746413245925282040458906084888988378794323802502253029783785667529874409806473008010199768442300713443641159679287085566472269824376893294105799961356922461482742330813226569754495288286697680857738481510457296203940691345679541809034839356942341617304879961205206623716979397891607466790739073086506183564510584601331824320410748568123286613172732756350003224135977426760164085975142648595341848267020765313463004107330875061979764799864879706619117488271830734178564512559933388303643022582125034551785017150615496871473042803031692186567789211083973674005237440235087740362502770697723493822843726522785285834275240385044331560315073959528401558527531009215956636514985720042646950500145787792329641305515126140743094310879381817208067510512137568726683651281120227021742954824598045679554692381536446093307607470897115201817600188998917444511661213464879068412807458903127034611776266984247124765002173594454753369164389608697601781926342196967911305551123200711039345164320507969463077249304888597187477105233946677857733400948408343744716834927721286250783128885087809244870754063267848354962321063073359351658087153816246070481549705076384111085519033133963487567308418991178540181233772223892013733313670617961252905627941948865121134335488488493521376022347827103198406674050032895873733759304256347426437120967742740313158761469217251922244491088697094794812755842019542077155801704841393253008469480389810654119297019299676435398241156384784974003371474192594827193861911696728043170331025721123392036437543021140347347810870143357239205939849384233316515801143105628628452095899085640686847091696242162653226681813719797903812445961936260878506460674605215911536197163747383769010106343108071761670358544517944274493272483023715484299902632713741464878909348146170630056637767959787504757914929443627049978909802225577111181044636820761852835514943200843522344152842058574728443448415304431344583016011187171484460351604582149748383551305694470944689915738396460501074984818762564729135311775560848365224318723770372939613178570638164822086836376030466718587196147891010649000242893755637463076203708318377902741085006773984749952262568048414504251425727549407551023417844682431129466878379514997395827969526054779530201860202344754501327480125803518475003011788325687816709304180526412255392737638687861139601828479273163855491789839978220387744288586594383429931155064286956745088542805093742446670362630775784308200362929187289161222150909872147526217850734737203838071876422611457707509241714425148446415771713639431611525113852216159652444381749574445178935169275574738600247111422463658139136044252676019590776236205367538008012604335779577771599778200725418852691433459068220559480343143135804237543813252214670148482731893590502466474781707581203672468144443599864058305317761152913453241260174278924287014673782568157098587443290455473755929442719401958422779674360584442486720041993361292644334360535460312598757862459016400738632612187574707199135688072812878118990466371517556059466991456116174638001482819303308200396322134752783445984139821613599737528871665115260038790369686356522700158782108802694401195443053580555718041945393856410863070560893654601472250615082462305306612048348525579141702652241467810176102969669681580351162660926636997860077670374903794636470319812670479349929951043119594275774439514843085906075309236443472724728819049364893791879819470225942628913895715491977943013401557503402213626041749522994162613697481760064585065736282881133795243723220279949559944785330984027728095156668387929705719429419395095584969537442928681970030499237645902490884584692092478861077794995739619042542935817113371792919151242789385530900377055262464965823290261595723050286972107388778730476794223439287977551022008933730424125222951154260472907354931095596438904713702009768471870713871103366711273434251741670764060471070796056283413501758011307433320243179913668968674953593503765807816139146486400062467701983733805154578671156846475135604930785064691904879456703966106780151560372196418112949159974752564868357036648847484097579791351127133930951821946224009397686492087206788312891812276993210047477501453560756385350043386026734269539028104758890131491341741458280828048681680972435530008674709982147174449741095701357323764425819789434911791479668011319632293878147542898072934899624538343962427743644047208467576464504529811290534884452167248700943715330169447446436619931047645969606616305363733281502407808372554866499104229947227912674455486467028208333354405522062880878500986401750404932735568094988188523501304694149981749416951916533658061907168442030333720895591049823008305781191224232169214037326850586541377309854701731473891349128725010011330472723553101259298104142781794790836265896071296996060402369347298626860319354223773594716142680583829186189832602817637022311827406360953068946525864537944250248217646732849591433564780043365207858791377773169351569643110167353684146309237173356268813966253747410583196342642670759149290496249791435015120182596184355522535216361081687090528879961036790688514499487284361546904811358402329090375181025577725189581324063561980518594068674255872420525492928841506983832902516240659951535144803915170260189295260160680333191012709695916799132102808109894681861337337140814839307710062704674645111791361543045207811222552756160716186788891316873030840404994693290845099049233515028739031736968659000126552772515210905798175753348443438245097431057451547651469513263918558966892483540253849183032786382722515933384666680778176734520807149572669711724684482999594117620267911236297647498366428834789022068843415077768187832436409335034002242823731275014464016159734900899333823806484106848824768159362216627008742880405593093664425067697636328364950941990226671415309093508163226210434656351575063691392716435672290787964744812495617119227837631117357452669069521175300561644069691686381195760208542706835556993470136249939766604009451695966192946060713779761900005953304409936762459665166505729872784460841321337580887474243472947631219080013925266747719827362019270594834411609137441371483914946461902929866719725740092240060619271400812515975862180319399683090690780654071450715056128726131573971179949000600207066282645129738966026253069267305327551850997493392182140301556767951016235295261653387066641025564811334940666212194582938276244013536294270894459878051842945237821181605925337244103785298818845608008854509359689181254214729258368633305096178222573250555548063553459882493892183762411694764387745873092221792154519791563726246291685066733528823778739819557297294600115906909687769342069483789845575881933984845919687204904016060442332682729627919850088358118122798328974627987793254283269253921517351773009538286437945397415024285816582948464516380185523833297960033621281555410262582252418483105234360241826344510329617444034163479912038366863144709874988095050033920639602651056054729656061655043541068635073716457456702052051569915635383864155447360912336045813058974890369481912344195702048998117046538572207411686950548598113277332659274300417434321241878983159666872405477332016882514773033739950732252532110334170713773570824910994200394515314594808531633638951625514149290217102967457306226894040601212918262214713432627046702638679748108063159166945837246428136851446287149592368650487699689127766270902711574204652028711839842326870081713036732821689403958041784174030874616853019693242063803352333206094271921351038885289819438776472017820760493277761019877467373199883648006874437285272410190990122818122884780290083323624179993295672120541467295327975058368880794413118268256496499676393241213157365742596843097814097329677358834960760568365982166693619432315303908342215489401955451174634302866105174098263843223975716123128051995241445663348518960980907686640504109703871811267267764790655860809343069361501014025215704332714746642788706987464086757312116007066239410539582295429106504706668976368885398916083661425497263411093288613353640412343164179240200530749451834835699662572041939340108047717208248704548246685115190633800499316368693232597565286763292636790194953184522779387424501326320855908248687786307163596301743123592692412604475408240792602881983043543190773050286652380243768643741740126471178831154454414951038179206909545534379400983787293717361062708826306609166005638279019987551337770813551109527582433774821693494994630803629055156461606676613281639251823843708026145706026509425105365949251409699536778189031622862154577775832560549959727136774129303672793970449651464462009611052961446253233425354819757384540189228447341445855262068664462332898648983053970831956667721541459933108018826016001679518708787886031835457829911058109382747687742092812527854278814296998161750282271703861367392120696220277300558937561015494769289045541356268390738080665017574070878126456206625047628533030635422675871058600719109481585525002664442025389488570939072127625662656647466941142005189764193710908378266858299034036257082024764421301297679132857661331367501452715494456923363297180037772368827877008871317738612383478571531631228286787610987736726653019654722645703905978348979178996998499456911288397584460874476005610368325145298409798534787690592812728881436705292311392629763646709103308973788156463186111377087309977526776198283949051334773140048888997219895658724441747204831422092676917654236370026285192285366879177383089184227294093457155928891915838376248750058016663542489125545055052251007461859429418876735284193380982062754677437585632167062252783204545056855176917690827736351877873163945878001846746393359856412322939519476996935876991610895899935548738847367704728137719889224030807669398093768975230717457671232523479895137004758392070623735517335724621741592480421353776477961772224695800852752634290202481904460023897252710524248179080443551062217852992312415722753718794277806098916690093505751193692206553185660328469630398509291392403233240297844686208393017693562894357406340877120218895274149661322718097031286236115801343198813040231191822449939456910891371920803849822418203467610829126006740041694481213649529340040581319291233170653368137996080687218824954232687193911738274116658221132145065977715086914859265849888826043667625883651052007782072250722813179029321756005185519846654048127600951125962705767915148999380091137827044983860738618400071318288346636531963058695016606135662390836752357263579536382427298820959270676970655413799363286978885753348040752374785571706944821073671212314356619352721610575038822398807096064283125802651956704857005296724196497633547526596878798727540842575717119291676201181356613705594267808539797287324160440993800361089298178248170465327988180485443711852744742696190130741781185860398897132315762488907784132886470358816128364198948701862050205347487208386898704711687940423674195893846621696415427045832129487756353605207466978343261879390446856835160514380692459798762577209813552686024441625609061319025430525464968521717549741842653657625510127718790574133639752830723368381874311055457137435539321367508763198917412321254292440804447126884438774066789496354473864195523921414827127735258332698525680466757585756448308682020115422747161862045816642685493710462562395177527685274853492757578231378890762386725663261496654873830131590314514355685691454971603900816527490138710649567340073602529990467709564540307662448493697393940993673251184501117374242090781614859864632911651826736115910711572401340579488021878853192558704320800025472354375561175159193772004749788621216186075539269769200470697740516311675142974220420404983225686938623480843366394900641460093922785881049343413831067431580990156699583228965348140205607818375177231323285894363756495752789371410926229514582605444526102821387990248723263837005871209854044006319834929684833645410692416088671814404125473846814244932172908425087277614641737561455342897352617818999417279009006351017654602604092572208638803108455570713517817450869091922202051908079616829829848888904529273888225628621828979367570600637001414167887450455127616686722791967907805702414018365932048533578460075025439311598440713036449250657637597651300374015762909433017857708225219759805880045837227671586306580366307914992626427993127559536347672702461083659347873169644037524004624418014623651402470738173498244849464234039550465659057839865633093886091860498195065979642572289310493920245451452491789849338162619681177151123744646076551241680749361561267230442112253640589554182124462782379171972751172496828028219716303411823631525075941300125928413034065061473954252680481182969790744436639448691485898120348339478663425591232465687651311991516864293843196510795900266049904601297195436144884688235651716774252575196313699013314491017669917751649885165086254827973471091962910961730284862866814404388828310087567662999892884041685683092071182242507681685596555362866956932197037231157360420078877470950819991881001545582291726290083832712948853387703716099444086119629768101030848148274677865643297411198039884640304196352599431594327530562909669469137813621662096824826134093916128515762702814051304141772464202990353423269050789972390002180589739241079250427555218122701192850099141429952277753578592704847829662148190382551574008893428237053687305806405208327531455339583247036808943031222780284580418514037019751238181650759843475360667732502474341734024519513504802243358783183373999457143489945209087134747788859359310691537276428381976415643004982979497463635575373105129837305117030909028247537403872394962456635239665026199938554006966811224717161962733815729726074550368941755640704043190263822166017306844318648198182963711273866169126503356069272081979953586250279937419486744675137381893903860496215886154727216849120934355767222012739953048895647909329149751011466117160003609920205759325324745440020467545936388119022993088934700362949650263108263484621446913824124126934074553048179748014774815898244193041618209311641389466406615416399349895076065552791654023157906828587071815243752721703881212566116835405658763091584200066300263548858256697694668449778049252952047258539400069617874822722580197259382347604986387872577063705200577798230596881009508889329040189529212853294930598236651359313978216274246102513509360126427915185501564587915876869745381400932350243803185112571742831727436362801062017125528218531506309406166789735782429003418306492026352637015278081731735338053341983292020732858925017790248099161795139893156837363241178534398692173182876590326761808850265538810942377546451855824615693759709108213855928890806922245120876860022675043441625286636508378571513095109386697753321868494132948056043968095087446573205950518874394540242606239213486879697258000745512687152509171155951289815856797065189039970223993796305881344697449985831626252325375760307647215955407618371929281145061982289785272272017873076130828965780917823006892357861838091203647715314538585896579491667046729402785325595065808390334315166981027624340133808510026691120620708525842469855999597817280359680546974854014815492112290979399969004274090023873665212486542183222655439982671805565220706667277980875403041912337415703085117927744846203590794898893989456982719487294665016877380637460636336407025340232110244442722383554823603213189260150150225680745076627965488556561002094021888801938875129124344795359785976099341742968529103255600234269100466370414327611519897058506755023779218232543261591219185401227379241283622318128803667753106980143082839912112962657256955577545292825588865233325890398631302057338953415509395579894277469575185169133189907770134855805205914823150975656076146124877209497939264444632611717405542456442735649812976214573892091273605375370881827498750455731943132810394298359411504370071375917950173166529293917650771529342306521308245767253175851591035866714791159204853528561904453621468571195213669790946877549119431642413530820062502070565782689573673390153689437635918063044976795219640046849288414677810734039554353739638684999157029107538863894985494650757833398422971990958556890657102356939288497110492694272998545653553514852740266060499375642950891349748033762553912257713078186946089334812251925086565554721459075933852798920347827674105073562612369565008106679487604650353744433818690221543327952566134403121917393671966201596610773957697387920451660906257124467578007919726371698244719549695506784489112638690365791041978517258290591324336725117564751654414090014416075163902428782379932777547874438187181433939918456650889246587494856129428420006154212305958349231620401408113426627614426993227730391296871018707572471755683863103428682003679132631260575011432284133394950919678401347622461454108323271175332993181206818158194448127967869482761908239302354147252554676882754703720591165036141659604115058211342531552310972897229049078352658392075336500241002534278153970768903116984452918988406271503944506701897832272086703172212979354291701182791016236828858702258719896624899789062030911876142623260553529561855179093358942179898945807132791770004129167690295100194782687770652526193120022569438834345048152788967186137490561990690079203579054972023503111577389350077494188667227817125520865559910968881839035468346424430125019739986135479672038528870808930467904546525887820356254857446335209339503957105882509102927086084287980811589403660283873490040458959911793082566301452528679958921261700457966183178693322276206821280360310978518593346000509424771001646479674815479677155708512917383041203339984127563799448945055126956897530206219814094212140690494750319413807140274490693437439109652892981408293308489946192618304823162486911952608204243365491959879175910688088965420906779641062400526796117101504929417220595669240115888340018626861946026995418376299123925651318336248320981265988148174874916262538250769443961310993911456804557245642741530003854761159322451445661926877192836426225135052067554049334088260469851483476099478770159370080233805370246518834619251287119224932145156471399261590923463008892735594726484047607828007420197366113793365921958361762684897086039971074732592641175433610061817203271130156615976842933587381592621512053367549270725286195801664509697082459059693946656861093840360076466466106627425092930245624459558003004335488591222688712148158922406411163123503901940029985131588946012821143102289360058958243471692544068938166410554959492549473735935407652597086335731658445279870701327704366139494777849551669814163665510192707273813279201274075799336623196008185318256858102721288335114773864535823318899554312253320216688140611610950582800780617950874214400478851902374372986300723050525961062885275508881880621746666031974306184390977579433779577109348571314245261668771866136070668434605179838414919122268580487471123570394850479887051412906896900503256146785443973274765786786102169648619102636361213535177740584002619723288243439022626167157815521767158776039037524081183881183001074503148447177311278793919315661673022644804547294924699586419942210471796085843521844541485603151823234125696194454974947876405430645465726752063970558332944135172125358215806996510786707699731902039498412547521556410362590010627790899870342624699766692149831485621327922835240514619305776960432871147727973217970686036528419495173639875458449433163122348207030025986546712471745593890233326799419938970312254899370382896803466781315868067124360726092328164814102309924003591403215981792864375062499221836160205952541128074543151534271720512354675869866895603001413322958242526734231035177242182544477072927257859314139904264892638428106628627654177895921836039725846741527486793016363953372009060333102574018257549011871047134252866540257658006537951996442939117687977248760402580213231157824869461521840999548069488668245896651626814742296021652451111466634961015815599075460797667092627222064220461633019211856781637192126119880650204576202616315169723631388476582607857263261037379903726598244966000311065046159930516934844289699521633397761405343594681450232258695354712973288571059213447161635177109547021485942932157595576217728237719668644984039676949847466382652786875319644971748315485877808229839364612953106266856806414046406586096255774137436373890435698543182974435928545582806235711009569086885387366226271757612696920041625260719225352326429189574482027346858081303200623758477325378094184544039130711597583543680373678883939894343213043240446344398836586512123696461193440226315437677844160602633138437702027529654496287311662439838436000342967036226780556371331819261332930357705776416433228257741816665162705444542269163179737674443790003163131795550425402040594830175866332478720998543796975179014781192195657866640708732562171441120342225472227659252688428828970240476698014037049754682067529475977498876449710373089750285729431996169546233667570371890262662454703078006450636145816318494092582009382991348713752765446427504128498259382195885413209890887522789039630140247969462530704548853266484426307948988026185205690738589905232598389656494321195164372509502267647112488874299455199423320242423349395465096976927970077745142656025580969045263102930515902678176858168927459139758990798215419892764744993786004800815396044000926670313364559633437659982927509062437459893121266773288421658997212736283658521817289143317377877419121442414388996864063000130762798302934236819027503432170286603758147534621731597464258140239764535917268021021748381098252609126222458652736452173737028380882291095172132840566264676245360319199309400231274323135700611279012069884045726721979770685839890542538246552179023239432729671019193808923261010456153753091830797714477665744241824285092487685671314336659753828278177427134004266050122881290439290658408011846971649574956594187639391154124573806684504332676917316210812320400774979948724434997320873465393627492099210732042090450794050801144235151693702798106470407893730399938625758340851160810884149899536252996838010490571408205244937052887203530972144295260909749605963895329610431826566989181494205358545850585607353330349488931497020111278663599949048609364630343137723364201311823603963475469620231216134693947424008234417377608881283304675525580969091470109020691496115858400316211711043597661905781615460995407625386729966418131696245558125046007937332104092694184822145171814681657861068176364755157740195571475932193397438534885252500623007066969545699524010833778231068357358196656393444886686039913164600255852921271338390909364988248611354139508503730615049081281439426158684432877332391915326019131812476101759161859090442213890012411839725979471984609571625087677606195404196087802113291891785868541743344519924768956556729845220687533486122004126392265307701522218919662825295103370866307045128976373534342445476446153336693439349028865941840489088928536539477457654326609970310916984132191858973881608549052377383821289991594433690251464101939983452364854841297472491015573878656629865222153523632030607985321911407710202467687748388221329149190044516972179786929151714983420514924720379282741945961568996863298248810590601108358465662844947751660615160368965920952296193853103614895806344179717964696610324442920672266479618762300222134809360823511940706110289233715855342246441065315655763920225644390000862485190114752762513012951264454311382837659210695067740512450649227960485718759091571733198696625083453379428754185418474642107933484826788046334723599540749950555635885459302477708874095722332991718480845528052484299488885913310787108615520586713477921619626345073185386189940002113867499536948664367804538241270742592611220312209293715599428988283889789763704717731183161353765007966452688646863748952306476103463587489550803200287037136725050816733565093178841720030775995707210963196757975721980147635038589050058314432526793465966124978471387769966348915319134875085732536688545073648277643711032235602973393487734751345109714098835458867301672774739260952244939891858953021770667050798826779683362605428783673404572612363734627120842930307916782481546160856863379359388596179032925435819521994905320039683869490202917210309046767000177783837402912224062251998347978928768146976978101727667188660021965672279585588262624027650147933402297848074461998295277365369732627661547913371189085257489192404113866597112770918492134479107889731417172779036134862684010914867580491501575312747869457634898560109293045825511771893238314038899619149639871546006857089746270292440583075566161337544081390190989599341243830937950887690153834719165976083954425592273583322132632968618746593878504061192459495873872782770015123046105002356045820074553585318429225864531337122386160892140427486798446533133995925836911277855143158119975182673989329426100852312130831980466421929851157455454059680718169235083909006527667862289191941831292042906176853369538984692935120116660160680183302913058216816015679225143293108032772905405541404988630450731870884992832468272764755347501227430439070815780226466616845380806006583611893661988295590848600558129157705968425429541788155536597032218982922805442526509953757466758558985044390344309353446260749168615126664684352871476030440102398796143621116497755360490819397633004851292867636013863788052519463292003317672124356834702150055021402898565151558806285830466020524114896674934503311018223089598423697765713654996021207981989830459905302943013768382119464012405535660838547081278568711346046381611174439902252901980701434549674783237569894169682358674921438726061343535866591540470385855480486988798973125398140816820724453467121326730791686483608167755789141560023655458234462619263154048773503669705598009942474434317773722012928742590661715238457961638706187180069857521050434023069214214643764820442488169418483399919014807685269321418433890769339549669786901336577808154806849375735050229097901036577246924980970162192985527684214631201399021256921855846296246176676310475810950683996813494885678165019922936384691605094955547221254864645026169317183202763888526598709788455492388737407417320810337436327502921580003868070535587346849367443868573487030669194132108682986308389531276261119645713704314715239257462802468326754786631386821395348335957394024315551264599559910871827157656243319542031680085816005537399819772754277185519810655914331995271689922973992171866744575129293050248873839197384711844501467878948288496798726174946883416109091370877964778195734502767668873543488809339327458063012096470291863054604945837967355786478687992095937975781390892592281853914436983767940573234668738455658534347249359992870380677232083554332517247514306115728515639169425893092443065400401414774378338412528934084099969213887635222082314155474544174273278077745450471275412229349151050525571648429885918293882412843309963353716396648202542406985034123313103546047238946236981854087066847187693785010906030754789100511252320152426895889537868470961009374904075707744081313710077392526619280801448424643714194711920708934487655378644552835646350117788931235179249175994788784500821293210373806244028955057863417540949589336003620331774904544351524800425824138483853611171277530337902333218526660048874979721933643055346365961633003890059992131317245299995899429798491675183485257263208839899783799075805328154439556391661118839796634796304881647705940418454750201059311405782966854926917801196493889879165153945254697737273204618459140559280927592079679571050148292787397293523078416690852076618374468112352810548526850576681119194795674997137695214236163388794365195302691856984728798687929850746620911457907783723106415910369676774723806552407964758308489624656208500794681224121027030625194791627109666356332948253356232416576185285312650506997993876939700856762817642596394405964313530007722913478129177156809823569097440807289596084022206051069323706195618722311170783063733304345481207463566724670135250452261705613522321922643845649903375865171867915083094707359206548467200121559994172729954073927640722390975114630764605353591744134953791963377772494847227907493262257232434338704771190394764532110296364151912558124995121359426352323531430625612801285110893038239224471010235882026825968139024523677605141999628227905997886900457612697397308796092355047484440930239116308854532343848680867665040369130547788581882590946795090221683062470443967566998309788156913032695272470482001798630159841838069111760564489838986569940408935471562008934035087734880286855617292269760665508723383697064217684665552921194810412273390894943931495081689270310624425444837352232371443501028101278216469422484238657184955867494270789698820567084531781177749513305937957001261600837760066066991153153396345502026277825353393157036717576033952999869649115377441368850049359522620180024913646363020053780311186249105649771897462655652102771406198388715351598911929418509070404011802714865736863927109816578068624116703302206948214704190906231280607540256849215353502423825878370142553630719766443751835083375260785813184317718949990122183650910420017088425116868495085389337220443090294398467583317155933478646324031256014657880044532274565370440237138181567745321189497123708827854988183150104697393834352991667269974887025271288213312779795375110470742021682163450928677366565732538445518069614223229618895956030692656808737108597044779280865474475693731453782546835523817536648039198037139327639692336638132027803894606101882686002837641499218382067558959247139924615415814375666617903539163107077036940822388770030611344751160728501674235047125695283630946466339717848640021491957380111050187996447571338532083513117317939927463014641537076000433336359420994354285629364377466284060174292854367165047943027911375239381958752607768082758767200629475847419197047498498032907630519731350344215079800692588480475889698078601641343316152436173402039760350203399249241858766224081452934768976268364492970828102160018224816368894836055245710371684963739138626791553485946456365699997408344252818770732653069678436531333821903482012400852228008781722052408480607616093409403770830158203745892935014440915652193158066457880749719743290772724206924069979732317228511353133488840459248400851970960494460949085561319250797307461921894112723848391135987748104334384931408226961243035796287210165526111761495247079822553400992715736336910299281483670788517325824822033851149284434140160729459765090269477521630105408992969585332142991995531003695442658226621422232685257495707440334762367868686374143997006751411073133602398474401691928014810110709223044615967496863030761713458844655456369696419394260532495993987142307563734549132561618017301710000522440786446518067749655973266116234042558305785267772961321567494628451614088688829430326414450400472064835084018453562386599237048795610871085668656549815378663164571361211627229482668294553411832949392698374858106784623470435726930009154436870121734317041921094193151803756915714275028035297058453515754724524475053651518444825251731832186017886965581005280988495125767770035516708668530074301369189512382410772392663933575131704181819135593221386436764801796747226957621442193320880079127849575687065934592469812152346653602390710167549060947053571964845210158670204230064533866200992908332176169846286841024219869414987356029242229922371278146895382497154362069971479217559280873435609592118466568822859403354224906969235432067682755083361483358760134499265801134247370854955798966571583983394876058399536676316350850245084826163733562980885952030561779176884733682481275623058197159681854967937512797219046599757130588969785151114840892155243202866219935920558588509789538846715247688259176912614850767590269068714694079284763775911409792885752442219186746806644511876331585630141701139964704330133871226416933915155593817542576212144105164188505042727222723100391290347648850262735967457042404823837587544915429819616404217237584995186882352264015268613910631474528446214376454800319593480809195784041311071598288162297649456822524123129265024939980930106397300778974260999681322549348780085087593341560587836081410995879141731781867759080648573062573767371640859448784273554581057277411967566416338183678178685941467025661013289162453741855994336288777348077892624465810982738300243348056182711353688265941382724679806378800443705838902739168556918278925609236930227828610355464787973280557167708893758471001961663136807644252330131228395429557874527143468204996227121033457177393237758664451634113824797734982381881472214689172957406865536688691333341271371939256532605884051802844603117120128838250863343292743848407890289738893203448329419020594708734825744526872222113619127548798308949755325198169846930664145210686329200306988325164836094091421508503478714231534684521394418220740068521285025152102779263560911827094662506422986523152176129787335417537965845626026908167571872752225124483698042176781111807269410942640042556532363503753687436056862027337611677360581861480813223753239521490777245667767495681998683410166139646545377493439507084505407743814622109492009965429409718039020742637268175329311324458924203338003232564315472535622862735444615124230390281824837135046833331293679577083197487446441272069423223731385482209680443834716083759279474454310598626402936490810678808904638195787834754312752037243335120049589568932003247388695527581080768905567919243869195892914933419799181567767164918833664015523538345873096537920095861802658244368745830277404322215362620319158214029058040351723789726488085795893534328296626955644014129870243940294064932943508167304307289920527762078909801107681732547831737396491137509271049463808088199230672650233607016777196814036723838877644582144777729554713294806838221217396605409144141760241584895691750081499030044965864562938753263910555461281230842060482866208272037973318805215684386606307880602752963312090345473179076470915763587673815899731190022435322167674507133185078948277234469645384564104495706096189933953460249275423241155661142562156757527276557191608235483922627739971176104395535930766916852341644935150476496770903776600945738705716547587254156781709422769010760483814206895934513467407289113320628200029820454094486013213146159602211367131710049010923923200850771972664500105744573957509672182136515124092781211831315295196056774343936150120315226717480308286332397201628342830756184011155091794825905035340154762179316837508440997759018441973684910493859317226753847637444743475559273848115783814079849493936150034479660940742454921362508385425154140635862523390574817943429833442477858015508095500789745134318610646171642032868786309963268950605644446707233636991010645538682330747398183712038294611143127279513566022738245639134084537141702087342429440358113533655499410655233801400564764705905788693700379512876238170536831783043554792822155561171349455970944474955617604877438348993983143841034886159410583371650385669730502563982933039716318439969696363954176076706900842931402675564826528466814275439916917787722224462334051228413592203740049932742232353976931089112824931244147154291988537076341258952930308940141433561190284384710676840445388047297475987174653539171117195675770735178028677786448635844311564169381140017672781107620997010864964292250365420528238803239221728747310880120083271153789109370374208483040965405428697619421328250797319728342125486909446896609553740937711374795494610943221699893224099570985623095483850169138672844817571660437623648645408336281717976380984910346800510888654945956394785481045628669123200742933748613630108799016271830773757596064195676833791062704256376799114898869063060549956719501370620020984002477047115214501434824837159160260906571010640795199507841373173728173253312607746309192144902274782699951824352059273187490395576021863268872949979539751209812423140466207148227182211195134247832388228040213620623289705308131511569636535602511555547483899384288645113543283631490973145891056327668099070090360081810723486271760607636584432271247588707835744991189189937686059273290731506971513124487028154452544916155838084092927961299395599517273376017263798241898148862380898671032865242563137293258469704844042043452330082326081141574323130876369896693771300873290358304427774486343385207149795375888156651903985728350168452195727385329273050885740851653776697530844156279061404271728699874740079117444236902794759484242388859345765857748903025367455354988823080105578005984775755743547469968282669516667144355506800391015356389730757488575954961384848459198454882410587671729548398979106728153642002227916532328991551595008299921950751458455548678318482522953618321866406730320107065473144126245517484424875175513171561224020038949337475270049984414874630851621916944550185908988506072716553209886583555098413347703227479910481348070413715583969791752918724498390284379659877986404453541877647039323903529503063145144280784845154956723005934789080246756570508454616940627862053597151239328122990295732179797955514488681602956262077233104129712496560193448531420097237277599071870263121341098624567009917848902799425558597903822694686227459783827206473153242306867286846617903149024247180635981749750082963611712339085376612834593116477761814975306367882697104939922234044622527870930345795238610754009836858133719000137427463417570773263178625354710660235238441269912712717656483625984063239968205267439538355421308192918879703561761058016823305021237805439876997791157489901439036583840138817166791339506925232257415622112999099115869217934529381169974555921541084008522476846012735527289034054678208988637342922152203884191809311272963640128467310730198981667263358545886725250007666732765302628741043867260707396644402468172396115002697663163915881540022975023839249258937948724197845191668468962696561422516076156323442750084050485532877265033156774708495037784557644923587856159986072977592920027708327971705649130743246039205477207193699272920580087355666727700923894663769934131329845432152576045752905937224922082627499864742883324246974825725229333834634842736218897969823396666909745947790209463916097425630217571476955744527791700544462169760516827905809136648738648638632505571001867055085951898838943142029816962689263810785451915258078276344660252152819228033832706709890672835384203032279524919955618249587416564994577803691738456792019424262904215338073982335054625954008329485240613551374405906839078188617992130582807165070579650213129279150774994582583571322626186453391655525119246873564999378996286002696138338330232590916511950782765921990364437481683618015208795292254329774339424368317440011875699174630984712303284460748286119590173169680353803657400246946958953397544645727671093586085585738632582676959311409798261552895038171448072684819915886555969423535771822483345542271671119799047842478007096460758862286565062157358406415962979016151556137804920860493227956167837846312565305829676359240446822912048876692946373085555234994769119139375318093207798265008270935465917479566248428097396855152971365435234093998198088892424309796232023297644704018004562917990019909311596355177752722888072339955276271119036871835130057385167652623407058207487999642613988529017159702450321762086754886296630762433918080862708899309950030299077256062544301735330210678490690391076831592572197223712628481717220100131609107477513814911151240561201138121693760827794568739562936224585994032483401465820926941016436766787053543959164012376836087578521852544314961166937663555975143209314526341171028766664237756900924970742609890728677009608494877041016816068195130001539909312416676800561644617869091369803759086787868151025974054728925951945591634940204957887902079136359750299969594867698499230579414280279774920840807879902907464008447040332541312294782579023744901290833827062735682848619182394002844224127951740112485141131232819948220338079504465146621864429650750174743445127283033457400527801666788074544756345473229068267149247447491902507663444087396646869192936694774577324661748818910530039840083669172688543325668547569309695884313059081622403467862980477318365683262116440604285414794632035007279995033932510562031361056055499603776785039254898386419965917727903934643834771282007355860595290152761337798586507662448491490154559163222337879907524597647265112413652677831194771405241573648876369939013877081834621705846036676812886976634868688588422976509384841164010350876201742484312406835050963199038116761478418833409049054952251464773080391446151284101823316228181561690652086207982657651752604768117500067547515145040115807997569346488649402705113527327923771455001971687309251009519421397164885829272148263990910453160468718910766681677384482560421706241707930393845057171092778624373259130993495322474408954305526918864266185154389497086836728991309458685182897902146918364722314655720359160245316492249127713940386789196674540881605586717824272709022683529344560162479429044776627210013030264174015063586604863140734114673998242915380336168878856444963075154954129250256766953947157944615517507224682044991470025564819358117306688839271866862026183786745082496731060565532371240869682074520432835245496840009123851329248737144813673168881085352672954817642353739707561976428004845779661153995885444884830134988672178568769072242865108824498423506636297593668074575829357144412696021541071401511501880963688357882047367003520812679045474547875789446625493195190706690399536747511743519057798507057975739298454761722134273285625088933301288321413446615427476036762448689355641738318274735279671406657541536001322186228580547735119893940324367899575252376458919815560854347648843271942382104438798362259627378486149994889382224033704098166013314681007796186194716582077357489536361326437682680954958589179385002145655743193087019527105040943205890039460049482116449383305078448104166581025936206530751262569292350776994272027660571125061937454986429686674390080493250362711062349353619350715766968145253522827771916868234908396096300541551343821712585774010209924126256226710391601069609803100799486543312088670862530079533821720934415884244942581004318463504079425275633570124961109215920417592897113350530528276268489864246358726866997158881800943328504995742938460951049819520134532678673181804760311557070657423792775413637223486649318863210663289578137146001654498838085447129075881694581422842224171477208031027634978649203656259147088381702268392226453691828565886040863135489541474736781486136376666179251322156430201269019398176256051320098870025623151537462979991483743094341854240529965030760651544242758767593085086427586588698716416369054229267346822995499726078926801411228812224297329889826957821279025614535677670764015203633106658036624693258209037407065198026021010765492907674891030221338445373027119147076306464710212314823530463770107603024817038726296566063102993215710904187560439950460992429204649375479610890986571133868347120655436514946634617502740035569507718199837918373053615293911435136464574339082047319725453317604452329001490699370380429703481509675749274646446631399371251501773646672519220741973145862471255129438103378780324404585660138891391371930559368452218999792915285354144420032848208653420180505952004126763323280027363828607319075996467679266546817559267929679084759827111447666431910431555131379506425047022244730190457455679375534463615499704041214945993900883707817047345748610227209811458466866669123262552452584417394443072739550772523741531373905550303994285723365266826325964792799296827788915657284347053091612319230718555543669378815107648606711019781328668161156000222095203407058965287780674043171413980923310905554136846334330787051706068501724059241765845501912715991623914458492929486211995133645776109873694658616323642426062577030458683318923636820461220956796086626583501858377421094485325616662920921090972869935460216996240026688162449577175348093882462509932190471285331404406243714421784875776305125921852914217348187309764585371178678733744173808271854685247126082847250096700076443521284356108313571741290501301395544000303036480496745040014355454810166497831430245308669903069976071275572639912875075223924505456441283015937211201810130207002922595693978948649690067817112524676253384166638651817187409132478546921860190861672618384229204904850614201817474667050333727038143290999251767917683175365664130004771419501022274637221006630154562481121619740248389533836279125748613366899386008360469093568725736215271350440811439378559420948705723769663160784506650448669106239217010556922685435290570701236611809995163243940623691067411274330708989546979748882087238619855509154221700668321058750430370632286653788929930065310260906135327296131288320530793967213161309801461080945464839955589168329835504424085638962871761494802966966563501877564237811803642114287151898310158140862043693518257644954315259015408722832538421992742288633878368017316390661405338731149746854896568070449867116063874438670053648830496131794118691520827178743004714936269765991080325892463708017864140155642820425579042127780234029663013003822849625753735602800167188567681701353443331341289281775268325726813784768673973677156497638160880700006101604313261884007067447495831786270707105054871080416982931985551926930955828788007291378291159379940600158859247057142169307088494407879034869370844860241108393844638997204317380122202926900219207418242213835665826246448763301615484980951250732243128200637247605188254682040042379982316993690274086923524834385496717285444213095531298118398963506432735082025606297041473555150546133575333375950651469189229172637920514023590254901904484557825680713984617078532308077635793634386907295396212332491983201768292428677017619249800062021474937129648874107329467770701147147792908234715482404032993609595903567631949697274525874674410058618004512512668285999127127755569466245878996111280517602989949524892320995049434127384469507407356864403328683242015602979681637198760506112201059131696634812076430067573588186830868166414510088037010105225966634586412873452976012280398613298474187889749725442054457053962495759547758411426285728208701233329834068624538095383781997918718746765900763744758676754749942619443453418527584410826786049775578882228638716814313356147871857956466853979838061721596722384517899400894169402234386430128334516455146412723176545414563860657630118846049047206016487735104380259054109583819088718466189248973871903167002578443404396118492154019099080136763633910451759635805817257826712961652854162631150016915998681597995602948615618844250196953744514543042193659690957287390338776400787013138371615508898995824891194232081146582997521449901657561615097782120593343391909265044857663398469318547649514237081874916580108718959146718769698967688655169772634830320164362715889696788772272337103358750634821753626123121949826168916786827967998323028629221342352453662187469018212836962232880399509705878859563796448730827686094350886752057000362216705621700533273104356185336565187302047531783456472382980468551029429248793213818741199429458339959237442569015706792312246296213600364516624810586915424954674664003464636402435178860197647697319335280464492544690608070999859469749273739189029731799821656041448858191770501700176154032515273164395864272904133138322238821566071446423000429803347008810132082842357517985154056652389578167226360062773923716906570851030424871372812097276892003281943197658980555088101298437085790152513119356142826000655897887949323741182374518208343383478329974907103175688336868190550492189747307464863223641035267686214805049973576040448050655989560572255112002999277385899200724416479999145432582679230063212914650877833789487909640141401452798963271369214574177371224268841331725358643365882911876063508491932686978638747214477458835645872432173837262844006650166289832358236185924139881600641726470796235605191781031479426651755853972592434675236253507971864263396079547214306348601813721823998325680395793068005787478600711780652653064569573331367583278577811493703760604146605570584346595506369084791386557312334031330954225670759494289779810936616530911317148331791872588430953914049296632330027574805965637475668652615753743303260912475871086341805522062969641926613117571623601749829810910518529411001246221548288498095115967785580603175774791359814754921630271200112558082933068388971775570371810245233278462406314525665912343732622673239834425298935925502855308886103125627923044292461526408919987010301482737672660777170503170991848326815585007439346700541994163524352805338254242454711990654176877436182855287519591811131639976759019532863321329136391332631054969480443338787482329582406961474203966390591678675229486206713834070402282035457373583172889025450029704466125053654005939102578008065648634839323893943266283305311633743154011896904150165478458714643452364032830226782693263525091957834727533170009703691710972365056425261156025953624245815383471662584829151297725534362035876801225701837652694050615876786101014604320801402828876563188483194361873993292071952647849965449373593499207532640177384150693638605197440374607775566548466051443011040402752042533267991849437925600868443082051271250516438566520759464282825082868459334273860069958095378660636846960155997608870186481696029379169055024190536601545251186520257686282764938795833610225143039732665290150111503975778181935571917854906206864298885684808719290888397299382470247947335253101972102146930265772404204487769534067349266412894884341159229137438691324428287000848475182622320837766134646733877502726912209946446990899713245794667479708443136566614294769549464571237499524443247193823526687656641764485064184577557316492118140472146488079093470338183430489603427722398116482073989667691658001649560364307514772513932713316797081631206708828226397044921299578444205336998942122112379062191621990009928066958305694447661854674317919631850679911964470146337717089220545364037065555105459768573627129047222859343269963711882501339445820498081272630227943683323508517082409307805891406608515525239067797363268796338250250737805115632511390263381241886411355426308029937039971298384071629647171203625072976455537983333370885441772283687407380968896447095325239593203568661655863713342081116298205123794332787660863052450078148218192581680150556433615980162483098228770673308590177545166988852435241907584844473807328378872259229655975717248460638654118228935676998755771570372639074964694370686485684721027869177315912568240431650258351623756861497549806390929480961283313121974584446770545038375843805212003914766354180720424160179391251322664063946740647517692837658224581463676750016610206910291800312850139099856809466388455822832007461021611584288141249432190422544147410969570269231500552311736455602640075961336858277841672573006952761151736046905139453120679030884083483918632680038353815982994497383837814458020781193676676723773129668290473550209286555352587846278141454807242360806946865662169922781690478140707075029529318912052293717250705918287274506186603882818714777985458416227442214294356108456690506656777374989364666734620580357098858521209383095707612253835094787102848634800715574764455672937597375357186044996396451790856290935539120546152070212975686882052852077806594306077286185436462271772981148735157455630039696902795736622445411807351608045410318894550003980524413074629468833013730096228965290938735633741904058050410647168426287984037722576226500564332751920972178466765173196107301467957314916044666369104807637250198135436422237952751931658971780397535137623807756706001924733549182798533807502592211283293840214928602526933585690040056686264360519939604183035897906166301460900861013120937384212072520089671410688294433052731589377614471056753842116796167877507767487715940434733872914960311320106700440921306123325355057154537783130286294663293501041119449738227931253600387480113092512544703701735036984382551878312309648983068131362331920358279194414352088101817274365678894773049525746411136420849780063178866572389217607564763408005961334069731013319357964672556492560118688192119280713079629734014325824864256262219415452793611400928141440767150787824501694024571769758278131234318726813900840484237649856526840344371441022399126481415304956188638231968665377441359822628115108700404590305903931744731153378669212011109332602481701261037899046706267827454105139320053958743922543511403362901040901522449632930651516791730049782654243743706125848347506124702584315444476069107758306213995207922099368668716568625614172572120953720099467337948710556335060950679695553611415639342171859043989008341396100855114651725765338690447697369683657737148758478378077567097558253485268573855353356012029731821980269635799816051717258020084799990696602668533135784793409962720112283037873269985223148017737506080195662839913774247940936625830634915894629967076496097772503018271649388992978758148178051160140334623300290075292085312273160582264944621234745977269233756366861232824488381857950941730906325546894517820267475866203735083738264020654593658624184566303663467169882046990566240781622462626966980432632774076577277146199553507725727117462954462637858356735721117820602817641142679967167752342858832113014327501915192710103521265522485225360604029286442994870564624583255669306557695642854413452738702770439859366783954454686227018277820052110690626156799503328654948555067308344971116036486637517828150136638343931368472449614437378253944981992981252006711276435385398297121519824613415604591532176283113555652930381023662170525105565913934537231929025009213305388516308103015036749291057705857798885477385162181813536997329731429511088981772892873251011279972859488203761576214607961797229830838403519855081375460841696528611380090245545230305162200769043144545207796149046672738310724679347441829468950135952254028574213538972166432776296120737698750732975843808342349936912270585089124777022818711308248716064401733661755249232803748453921492721000621179762720822288445332714669619104056774820576892671600748448053997688087046576599777009759283318015197617580955335207867507285405752812929053268648237455219540994460691137961422974553614687392705648855744225383832955700820526787500475039770708770684396432721339278470011217007155693503898219971113151394247801962629408860031379924777776777333460340655956826566116297320334038376531123276228495421926875279503738440295451201764796733988849216729311215495034046492742511256922396715104697878449617068093205182574105601212030588689072160559677781300596235988246918141047612777330238066869781393570866067476031786899554975091915751078702119567140746725607519944950932675254336865212242450009205182546087291818480987663445662481508989488497204349169370516178218788959137366410472754622705599542187540439193556521684436061355842096557265503242528588028329205304666505866262975583210259622933338817533637400282283471241112616976190050403526893533863701865990291135735109361552815102207393273464162965165764496991191274809995567072732425031821448261310529569522656889745654404244487859895984587452503609655735756812109741788017704870336582369124310685889462379050867150257996029985694558537700616223989945644959380789258252385097253252388222507096387960174799729067324335207745805003648198883996241533691580525455853387573306532272771630544018431089339848229756151129031861345538300965155123190218686540611795046450734577456913392152665566658773488479197676518874660530054524657078203339132782849672977615924623813528604276629222925938664382364707994958295157262653589859256582919186638773605902913688611862824177488862245043030602823053156574153810092517220101044950994186389782741177516440435301860860121222195283489394753558579904782420915641759242392972930913712665129676507951385634255673092012075949146731380788695931221980293389708648970786828602790792923430727307176250510385097358812415314687139928996825417301156484991040344780505265170554218127196239656279654093077931019729309220583002556582470751631980043943366455152541952582395135365480412314898845480865176868873240447520653941670995944105144864774653371687961276288114296907928857700060252849354267076211241794286944928788640922853975314861019538863773144241930079751532660082672553354998820741951348191636092752469431095607370984199957633877730309265927063127618165129623635566266038070582243815609123219963735806492073824518674736849085815691570562549769409089915284869565260361194210768050655743132781265411209900383156233851807470944315560475392093335725714959162606821732007282217816930142361461325887957950434700297754862068548586585656739549879787248926295029758614205728585309085494708444092728469702404392138588969398366836409867738667573312558054201532016954602136549515402803435246062574917075893226134153884751698866644888283318166602916193087331110298474201844765676969193910726944795101565394870955910356481772880401284897922126734108417522153059000120644320332652029090129403036035354020988719834981740998067414250066551976678184516880478391728718512403970929374832547814636839305995355313509363152371211582430557339979609677194554019317119963508169395559051979828036495517560807082506458773688515730945146297314837439091397433183824280356341508597927860533168876435481438381802315239602053867139214655947883017640169681268526795595206401492345691772320149641212961971101257001220480751424364222785035532767104326482975694372581299843827359103313282220381587696180733161648562668363171737294896992040650351214233260004650785552293437562028555789804890459119483547619845029416433993999933614554230352737394054769524096055715276504471899946617332754955042509933063750502985943894269105734272723517445427715345718495148121906234992753658025003119540069688042283233452233072284007043919810346862991928308681936957760046459556804555003778608690505426427261389537752163356767791602105562590362296651356238153553287382266806010399389439879688393478931764057416008306468103893591290011113383649901774622032557156230428626680581944191147193052787477966190825268180533086408683733781667643790417796416521586642378167708814495193917364102161165571323047344156880804692432925930141283840241869977023875485395120123729310783868146707774145103519325063082958868945310017971439542358005468313222446473667177292319612504567326111450363784402491080675732992822998569910838838502313531877404758637668070754310728575306441937152341894789047429531834342248979544388892535895656263115824996377498367766660532304432270147681352842249983676100646801374074171442470116337447018491656598039025876926360575388575865656244618432743964177170314513205147720511792493067959746974533170863207531332790425679506839030343145252392541149450927658009671612218996624978001654558565248893633893889605208433063442164036261539609481650537494438436567197645660158471874548575167920559369357507049333054251780195831070386972318900394960458723590338163698295303868420120318290772287334161028570719210273723390907582460400368883987358842624779678467768337196049976687739992159486904278545854224203620073702455710406609271675489879015553079902952311458005715192303087191790670642475493160961909825964057820754784365830607891327507176602490158684112395740653569133606680314910730867966811911176136280139092338966006990530740684788248502089511431390164321890474775672515448205072748252905896570762482252908922033829728937287318499518465082767586559069754805280512223216753521251489260272060470814743101407498048756681291140623467485563131005869217646741409187130948581614307446483848791558234782168692472740556507733930153062144554081804144965582128785657387423654773600403791786336810502869498760990464429650268140570778756635361251399419146059300691107928154042153353648353613289093399574343000680570163797984629731221237121520330094475237019835447813517927402872706857984532494897042948848314815576003102029950950837993813174754980246355674349711608904207698818727767359684412215921289317905125169303732618637365865077428222431192550750620989213862534960339690215971922550169033552297799118856482742197020472741649323808823817110348283310851223603489523306388350985837684758581156686579189142634638214047719389579489994578785704239515557014108212587710546515310261856017694286833050274625010007581923157112453001053388390014355715045310397321360244983488865420524354109524455024126897806539291803457498754614265211443640383474478056545051510109726394118860607291168593527146634424736604120381613123265437364579218280780696192283664975935620931544844816082291452565996260325842693019329866608158286958351100927094175836521171427359100943763422627424515711297203884508344994994629400934161351013243415104529063746663402796636878929520682975507279925160428817348574704960022451673199289357796681894527313405643556745071752681356592899997328203205963708345481641909256247744641676021546469739898301421261278823656370435022161475714999874973003055235140858468494364006435069695704610437282702269117405286424523068180755353150925841392640746374051747499690880736719345748438450525707579796503228094781014672177306133389471325186580165831166310948566576199584787089206917251562553482441913078218306795129403024588161150290042010482573840231554858844123901957533889559388329306969810000846729037108360337128819393354604877058817994672472271845209131954361214487666218370712551811695775229499888048638504554981430455726423365294976806603290841794513849041714249247025545827642676846461108852940613885695106231301655498710659173684863505055618911953768525126885529412191215374865877169721123422231044992679027713638034409254966353030250120483795265089719170771149837091707678892044421823216972722994189116071710237297475465946268846644612662568718495120274707961775376911296797014376670176672019065957040695375057483935287981859188953384906834178372358166485817201739676831226141704372411554040727304027521331290963696775675701031813468148897649295697572024354101819104407721198144517047498659903211890714658523805314370872429433430568556022175308360949792236619500638194117744568244982522233441115938387126652825194570971873016449711017600385384957941230575519200886629807872329840065099395463976883116704945859063044567467182583197635699586337196599056312371084630918392372631697097856442414337400824241239281229955028184412070115658413268326956421437704756561263646093685163694442301289621700145957634184235796381282418334704308408491496321935727930782536659217137230571769282997896345632976954095019402035275140634595822643587387063667253592370892960655047024425089748210026016220046865558487174715385580854379181336922152663471385497397237564351347252588357211777843014125039303826742619097894720772614120214367271798605175972053100505751071613068834287369431890447339541394293473534978267383046238518590045092324363025397154921146180842674940170709436409428885561427826309718197733258666663538738333954349048309721703667412606559964579518502770325135481572975177886665262744880445654983793612194969106075014605989576593884705856904411640754412207380073373568166431622728332842595118834028552867023056844719261207292121926929127739691608392776909815920147441776248991230343030329086775919710623194556258591520661753300264784538288300083196171456970907410543492641399454500820246902109624482943577472664115144440009558326730381378430904027561634503307190005007147101122760570891159318256858636782375176431051410488783603836601697755907461438884604319679014601096978737046799796759428138523471735336565176110839580724838535798441276656300810033056915605950759440828829541691400176324785175773495053576420160252383278487159378748007415207476066142038726416951158125361218322340223828573879464953553596522343246391778253221643386468624815375071257814254401648351950527473177743180954525675511113574604411051309542031077204546548453108027902651692250892235223713646328372548805190154811995215013435136917011204900517858530933633673981970076024993914369883598244084962937380278418639306163533314050703807407988083084052454146277219017359133668522119450549959025616904761224687385378614374958999545259320127083047196539966302939423522594199838315496664882545074043270928735002667524816164434022984001908933777850372541119146434862032842024125880787862468641260647197321315753967650768373597996532413905550668618522014685228326523219169594489451278466908084981907892254203511564327529769611688079695020436646028108238169418120399726292652361163886355927454969593897456471471861327998842383873661271114234706192447347457731002602572124238118480970421515961646634623541340525186041163202420506691325629564326058614735836869619126588228261557830573408765856024239731653486362174038363720454914501136431170323224175829529363993999283494545138293409447645909551583078067743907931554651323578953560055459548576236728564484167515725275856161716401492777558455364705245519867996526673962291209973575032528293838611053143964319699581700647051682828431584581622086937491447418611876984294117261056395628429595848933101516941137598832239157994960327908577830249460768741186946953838134472200684326488188579040567194086614427949799844892735297410444022168229629289388926616904584581102523323049456093437021591889122695535069130510060228134612402602057914825427972224457188332596799874253406421493091305287812176852376803189193987574253148536560405591049595071663713566432520704022108015026251169405431351807908795008992545398482256070371779360950915831601834199434460904851403210330562089302135534199220184449629191643612374975213195961825511126810241933268389331586096643939274439633060687927503389545968831914959637158539050463253043921690792164690649389624630693550829552956760482591470758435476104772527401245685516212996166941918055882463020625977880711558963921629370081302382239946073573935829717802473816299066895916765501440751296945174823364253262050033024723538388193429414179091701806838758975716319952010510201109638727107099494284302990530661939521229175881125736655110889002820073557449595733961171869554670693813321443268389748346706343401681252919811303258855953169196890637954118511518843259914130100762034702708886576089341438850755398211972949398816071496391249772444382834007939039314314499095766168821425758137758625091266361035816435103205497023574782603711778407467055922502227021608016285149326051855544305654876035387769848815274789857109833351684044033383452847392646739403443231620560566159865012433895560245362203946294582741913471715436915382147342717190492419477162693885575237900979910889954089157532780805134848829997667553437352172936589225576086503494940833767860130372804501091511015354858224129425422354574823869024838186528482389458024766180697853747859626564690302385866534150537953070668362219771462995404564395363066128741764999839551911880787808704749099650827222433333838666859903610378965828282579141258595578402814352293993356602706352428249660132484895464511181884507410201318351055084599496655158778719641474576063255896981662655777277178794383201927685165499616156728642719559522701360983724214440962353820159300082739720474161977594569549849878808780279835030260725459038072858011246892245170698851465919192213943775288768515269063917949470749841152702342792409259802937038755736934410890290845645747533466318496493271466142577913823383532469797767072709942900680602038555028138962092919289362870785526750537716359256934980478070678939303347824848997607260339310239265597840834807005815257756670259224061883096411432848444290841588272327001537521783571898590232571013307601755491147294066549166250757449899603977388840719113793911083066339339569077943821220265244145204309531453797719484279567747187792084478222483454354965153856079366396935419738595723212323006298458886732143476082089908723981445325626902160633897244707606001379461154482186273473764069665034351236229359747531530112406026697027745745049289375403975333390534538573961362352688700904052701371179692049803338037040742104331988883195447189784536240914925979324744541945269959866864889340643508799997870867863088269030975458506189913529562376059221163087637310839844786182126246086961232809808681009198147433868128160185321441566631851437335615685472755356194176727206312219886087232030659531973209813112259722217914107356642718026869214919669150068267279786471085129223573089074030108799375351097303020347484676235908015236069055599461328711046463599791865211062543982748640177894207164339706387973330748283100974992218258294316409886116040740358720639934632068522224450779692192574604253969654888522198550230903702213669938675872934145842360244499564745301249035168682884097472599573047846993879843436351809267010011762547098509594983850734202037942673663403148584699570954344165033762710288675758732241364668733373669163608666000849242151740799624721782455255667055466779208039427676225370984367908725689250281585319410995799936004214590608171939000861555258088000668046632257429376702698062473312975620327535114718121570118755408928629736646728985125227488571041370534220775879348201804180078821185834954103425456057422066181342734199202399566346534313459351741819263624796345215718704592745719068643691536524185708179932032056912597727626131526864492861597501283328763279893203669871955872719019749830427800589779213990908556850093194162219840183449578801453284524250526902576323055710096505267259031445386794274979448585176593919176028258498901930524770570946787027117346891610030461003097119338419685923657902402522808991374487125702434975222238205781353156956839266633488278444970015242761665569926978713360049917865250712513200345586355535963227443368469173839240689747675386269574259799937789835406826932004220494735631278256057951180273335728327420331988238993075839016918622292985797149779488016394764264515411151168448479504941888565852025079824381574683819960449854443620609763962810894120989164477263703179510916286866378102948755245650033064264285577821887191108699195225840979024433168020935303300188779316337449548702434029279421820562794886086775323402989848568758512951389441966955391274989224584370843338874690338498750531028674260838892837541123783560717187616864472740525388393730089627484831316618446392986456128119327937935122501319722786711152478322340650475886520588363432772781180178392180487933781246410986527514999608841104226947344752984551516399119887243093373067508355333480183802688045800098857166275918095136560234864179967536339389886167565909029865739447795656658248503222751876609436317683113077841315967135600974564958629840310665203658699533309884969938208018793898352564594320255429222252401365217665962223632504301845033708189247059682818922033891016281550879202098189451328784204540581704963186819147164915312630579078979505319259984592584132180281726551900313799612689656895381061326108062099124771412620984744378709166519196528187804808491375663385795715739707249707273497380212909622187382087749478559260955445273256263853545769932846245136483994705847895113072199950787034910358506682617963192079478844994879313164157437428587978548156224083878104689600167479124336716568884419362509625169545822493406331227144768705407872262739501111588182946806384753386728634966499126356593336385495413801777153627951647883794784050484926721737400427311437165996315856888476509269983420611675385070783576928822871776018882613868381896663259629272446888304710405539814465195653275568216758997749481623842101755512869821365751325331141116763928941085182885551133380454894781085660739419264539357904745440011303272055880474705177398273851424993064279737516354435606875075143260852672137893955687663874280855780738710006219640374766788360115574505235805028198058494315516416934135267277393625187521325755963694116281248612876834156333018044607847776859144234312399510544270376310322204269707251384100241749938246331657796571015865793372301244731076816187569431971687733922740739326491650531517526381647237458826629226178203500093344477413619991521600786566235125932701501838553391456983574320309487492124853354655285980978371172809444286756181185007159704125676468961066103950756541562075189146148586065571418938469722709525647802875473422660187602670002048109174687189243877259115992143863574814929906368720192814921111924620197814669352583038498414818265193933318714536350518452082440778158632350466995127718032537196237075528001267911025573189274767155993720178796985428165726703173294913480326418543035988644182111487038935476732496983392084659278645313419405611478102460639337486826737108653270035261338080707225423399464977612456428621180807562874166973080361923083982641645851530548928501322422549357195613147364335089405059336592428355067684279912651777889607205155346618189683401689842802456759480421688662161296940430347747558059887289033471512316104624290405483600185838700476132278424149854477609476435989727122955101846960152862578663712738457998037353587967049043818275862077548199955860778615475952926370779157647656053780975810017805792848160912280235448129691364163819158534445107126889145261910020652894931913163982098209578737613696089689772463882138381677259553861167401502020853666238491962039004131741027411664559426284756805505095599776950508143267468923713572395679725206921997997678970975442893459614478259317257021013496835617463719687671910555396597507608347635029424165193076937448142818963673666819803929206145804689272307236022710112012225407514757395120116247286590382666441096545312536685856037777581725424591169556950778648024700610388473402667600982508690619505637074301003716386581110739246621600898165716748068336151229113961958127558558188461506340310881630304109740083776425447769167788286761736546765594925873956106955831851130951982188096828310296798110020599074055357739296799322610643671078267463698579833234123137824942039340308476768778546058368161281922725158354891449964180536357883487136821040330565299108402175244887286595668780797655180012704110993667902091582528361116964108679149074434438749148005598498406779576324828951554881657541895676864576547361620988977274121338774760708019696642892849905224067654979958647393655119815482103263003405162142065531250336005963855979463549607297060008564137203215406601749387739685344908372891402368868229169944307574066331961482241452122902721648902332970421313570545091972660814182443578041947966299284459538952587270558767573521121454925293438115540376187511291226052253361244180923746044510727149536503034475376423955835803047907326964955480625803448348977276606570692657698372973514451290757715757279170523459283404094147547507040829572844092015474887670459283534830169957669775910373080236847970022286808255646510899333233037964831132793568235159364898545443887736319825226238958631265605422618752187854643267670152640159846156572941389954716292674824234149458720803985009017178659987710365787622028051567412089033283916058105552752749623216634540810280928014826727544037974128619709935379128844241924314951260966076870523387564693659459828962642406471137047971956401314131092840387495144475511236627537272905721961632581346284136390546299909226004461647521586606239299075346092246291931201176318154021354617222927438825385777847394188116542726032768014829180975815605776501650048275000697823457257208207424433700544640846143167845354513932050390635580894139877570204457820207006841139964587624319809760554428604712859062333612598597429237037785184564195959071863487884801920617410912142460902155829895399574112202915119863084590876253092673494731417400460035916645392184170702008579916565280787196102715821771774422403536799636265785818809903054270372944682699574843192749622151239927435430187169109400649825699082576615816501687105279160997246070887944740617186666889942388478336835087910120872279581784722053907045650006277754285084089979068892764630350353180067738656040984651526206556394665200865141022364294324654869748895642516313427495581633712451698514564583188310641579085755710652617480895122157021196374493559481543420685538073380052607301048563405292963057036695342869367187928604834918397428148745091115388091134785233051327141539531518950518561613362086768261129809858384782001853024950760594224636113683095554819138940762581580617392720136481475183995963795140089551140726930141334562232278270105086852336218101797159686704262871086184709084663342391155964318326314434013704850659040242716313759731999980241153554979712224138503873339052717085384715721635184815046131881156922591209055866220728603445690784285002098416619597053887068261647434792856675098783911776204294885791492486378947977545916808931831768873888220842765090794008111786719201539325754801985132652894089626965044203702152779582504706601125481512248001320789669143533822391883871785455805962660893251305058804758882491157730146845061413541314842315852202812856843442959315840748005472358406045758849317572453017039348573201927306202906375122194879589158847908536563311674876840441266790273541772125541389587863899622972391831070082626207803568824282935227706602365057855831410788606662008016190879096525080744005921107449570717407337338523146079376734356286360448853452221133489509050737122455579870135325313406923869224811825203695191508218510201910901195935408283081017818940639128048791245044711492916720436439393250435866832485211955390635432881779357887097059532402432522242443623014235281144209013240899267836841130327648940893032489130548868599520729784333927781153404696711000454134794289609260091982287867076866797439227131864447802075024584457698296939396305824381606405104395108819852251276782963329429012859140017840291168993377539507047672153459392286981625759648151756214694304925305375933283508592395185547658707765246398405809887746329862482055245730358717443456970330620502653664596374622091380467794596470153907115675849685054855752595618527992665421065616478681216838637324416115743143919056128309126414323396652509567556594675804116694298529724813070949909379793863099810727737848043118579289942622098132978697354106465747342000910226263326311428417630580500133086727081709494416310918709840387351450917792507999145841969669213520249335768255254327873730985027088568800032904051052913885486048232458381103808664859772594019287398769434417364623471296951545360971115318600959275787854191343073606224697716149519564874029066145558327844767852178371661817062111090351567042714894748491298831155838749419606834342075650547722584213321986591307685664266021237087123083359016410843948964314439167863160897031739704876982435860755723510931330390796777589003848381197149364365021882189768338070886487894384279206873615398835775588706997375139880078284254319721103815975258093735962668863443236809992326120574629870612027187447009368481572677181090879327528616653970183320726074201766947534449943654995530574334794910828787035369649818586186325047220933449777426170777491543040610323209142419511850524578023672383626827855222290291680567655927900961896254537070241994829851830692221036554974668645267648016840667637458559638502891113819165074496973889475561624178805984757588584577937625131665958327393522330415846950291398101409019634076625535791291191155561976975958741584934372345470420526903653036673169155157189571540744431692137258754987877750936657167904337941312868379717011787415698069299716924251529435258468927775122466906277971840696425080098287668659272400065002043948986683839139176773695302999395622218437529654834024398473513852603217087340578618241101343029653038891881169919021163243311613724537282945841866100645775207997682037874179586055478661826856316561341222264156533520504148632579237317246222951419160597749575966552101380933303858134648266465957066873648100859879618861994994314127453897174577229655379208402500798546681215329714998145252500405932581513156483191054820649262187962722224816733789814768924983329040996246056956388248871541330393011361488202533242007825882912047231841658549223707224456937551163165526621111891972408178270395458923665334523478382337382794708214131515419621641959812709907503179927984965485909625977427647603280862194453661749547910354600764881419854612129539262135640819021815821955615389995861115105333618805532232216117402806041729022259013504967831590966568430183130020606148849937480807958750931189852408094572828156895576119734979419078471301211808152077791360449630710323445004546672317241909236988972597632347929177399240540741355603616159939162883259966137925715679920856471120601497847605712382447517635518373600437151098443663561544816524127805237303794390178599716142092465933284287896710156078309327178276054659208114072757292640569693683828782626313970673821833744191519796601816239207283902398897933006521004007322356924998649692065314790925315416817086774000202087017409137256742503862746464348171888386107587533169572921866477062874987595289138756357683952269476337895491522103085961469107024229474046567311490105580284874155744059067434403764250551406460578604843423152724280966066605204523991784616185381160486614971995716171353479434301638465668352979060800991021069319738991233741843644843970304972019087482771969747381439498463452515931124614542059068698920946865813820778556633439322174575050335791071038590779447902014762062820675277492784138887005537710241260078097717534831914990337704707296666035807780986082040082343409884265857363581628892148663276986963588827897199864171192710134545059169512188994789116529805375365164324943438299298551781577370550193217045543325256970775673705382197312467157154765284541337193047294478635117468290312210810529072165291907610798562671674363606122341339716100367132218634353251200256539769561881165574050479882688643656837906175886896788373704247590831208900743350117777185514516504503179671785050692162100920052891764795360092591738278958648805931584555716311699109878957727650726678402260927975036922478108072388507487457780243032011311166563495459386251356178620832956203643483328184571067389368078422593543626275679647855767949467508151899113186596791368049426691728824561811246546303185779703251321373879135815392880441335164148380619098992824509567144234089435686873155486881820686752317939870869822473333178998927210792571679729168329534907682948031568488754937236172011734671072079065162109023962442270957779425683664234607936350213909491951874769375327482425334281518466146275822721751499483170088288165243489964990934032217302915765624966719696296586858764697037707672750825350319272415207783750458200967108521122870574999789707578968843390289733349079286406946709677932341116424309393384856782582679751707038308625838990423249343601738205295554185229521451410216042926212869307822413785824300634772114944033793936805713387422236887888040447157499241862617749824124438621623707700341520154069668253385469795043317057758263165842903018818018220194757169864835151636274882562329334283476975351918657703321608737644102273669164365644385685561363706836929381137796950620263931911481483209562225410090496972570796337967990032147501643941709890376109944729975094585160037241179446056665878300017998938778056992020777316289799053871827779698266602295203961478564690491532901206422884786277906572909315033485812698663859953505785306205106754981914505291243495558832077586647953114675631970076126010328333862138947250336547843923838839099459391402802468988125082174642037660377291730549677262587871890959113180761986144569319795694670197085329447050018168077246746589745445114316065704166553985145614995009377103835409743521592663294009428616245096645888524089403121353246272148595140421277641198354557322812928059717434241309576986254522107923435646735953713083268406067692780662999803795635906278672371786747942022114462882460285127817697994976519182421808376389041686236892391573944833927500431176542032556831874947802524380562481337030245082172676217804127218249570541043129970549159662669402612658216842864351212039126328820526542573626895234733018929966988056134430465277442233384362919809183466380210617973023225308192135777487398292962038348096087596255644117907282942211905946031846504708578008142750491652862295462100785188331833488718103367172434500058152287496033390666943958913903969500442587402999778488301067291148183782828480100571031577069382506726190829997804239063365191253515078083362065729330679921304160544651570301143393336661433635332089162790364644029849260676026057777442267567219872242418951937030728498186625115552210983262752999715194396556883619383085959263889412312662841581784253925079321108963578794708244433297211450232927551198790011165124280044829057266108853177375330380702053554350052928217935955419312101124174289247860857579746713304683435488598751328139498289548825791194453548493319562141744946728078300568365801387282816069478920240116686224439599574747161047648738473177436441042002946126538532974432871242196761909978183853508229498089651428175836627887418894151041280625018563743913510238377221711409304158856878717009472422516340951482991490322053642341864633873217453691432513370174872189231834869214130241284570706788588421115536981258731079084257946601961909268623963845487779320973672563461594344322304105629173735333883997751013637630469519779145829410598629491051500852560847348204869163818971007883717298792285126188250295793732977162494207904605493136231943914420594651291793432290582371041541045976262749814042489402691006998876012236226637806063394720303404153984148172452428865246516032037446016775369894358876973571779843794211586879956777076921418615424388444305403998804136941682287927549298020437944158866153082950164820204913714313065987697728336755964403414946033004306656439235510099692919807709542617449455194387703611291897753847730381351222159275153634636561755205809953171320187628168520222720735083159954255270371012355082973464258657795091769758606978685607905123573487416023796039289631116002601737832760079716227437530488163133672597007802466670990591012539753207834902514165183039207700896040095062169127949083169029515026413029610275903846913454907188597587906469282430018665969576262759482828340105284471698285671971498489631542373907235683062196540841594940160304551215943258303464159419066833561187728975194848175273438543971227622658811908408587213860980413740355904483157939430201447382449058532945722213559474089776306802530298233432341561142365150994217493115473597878304621982793437174306523510794556839749556179078565190587391239935430866422760273032823726170708803969545671106314041009911821136059993340302498141023763237931384145765845054465349766963010853876661578598549936373725885331084804539114199477078502349926776130476986441213927045184842769293370928588908128141193361498797356216426585828836835941878160677690661787636385335040177783504644411257641142716147787248143970805100265934433958786412910459784205606641248653569505812872446303134539274992180748909289865987302539171423237241011239564239404956452749354668988160482241920040478158140203452352151072201905806518323884009290054200686576455109709118556971492085055752423603557456377035032187317813698338582193681713377656677766040658349454182501460619108390344340225500676408472695696581083644099325857072838332765447354489778612610096511393834263997372307259139594651387509248848408941188959683329352097115864566632183332845104350326390786517863540448121890055241173866597715626589316180579045107660906123776616641118775986290032914884491619753037526127775558509288192287337476634648336196000553477574457824911062324956846482316356230188096441989657238349641138205230417392936683357090731856417141679119284653769900536880387562187989496196514987232283657392524066817510019024160716340672938365089731551718152976855880947841574816287732131441526657877150469518208601970613753761996001551994041528183278556260343722275538721875821803417580294348733735536268188246968554549884661253166039676975430685878118691561361627964874523065039289215047801179971142963885830406428996324020086640106638124924179202300275368058693990111820662754209245776840552655575608433192646373527016737843362288994493628895935592141024723463670399415861535330642357264952773677261951477632877283661154440653169861945860513935719169763693809883517914193443457036306319525069469771985139694704333615961813171731449834798140866110571476277343397355948274862482197161654810998587567880974826601117773026955652972390401776808017437336345310993178815793688034978366295636673266218433357606988636051348218180208886343563241468282596463452798695870403271766428191138148933369558115280818227228320622066277216469308166853149677942236403194879458758231035338166896700611427485618452003146883596570157395132753971133440269282595835683228028955297909753013759715366510021881624875615175147144554952936375037835050566017143386781048543707245693191226509777413004900265622111031504040551210397652847258741193518625050908592448163568109884936881660799002881522546270878111780524018469465757969867438940155269570194543220848648999865046658820380186787792925316279528234119055274280075873744162797376757559778656762000176216594255381386055824436377363009181788294638923507112316503158180826171356211648388605490893388625284499125507803647896869808916489329484093458991188030419383529135778156515585596486534283884419754452223598491202040473367807041557105268610012985400464051938707281927716902926012267133936429407988074116789170271392552720599097661688052000138181783682093660984505992557999604010998813513368661527417227264834489385532127413398210989680196317877831383776812776473967232692814173794757479146560508855421764007946316977811843129704032954620188311664696745677923667607721910408609838561433267917310613880291761592767289806128956739243521507117353412538615684668699491657815802437554849276763635606594546661699809982416289824498330600810220601145663576652094881218392134675190921200329567009402416741267499384249366538587574481444401441976880263778302943514129587991651562460948302191844513322395307440377119364070375701381882011955982413569504165481064046523752632687720499206995349348546592390797409399278842940970203642546200473547377897799625722274337622753405773312152841266879094525559911393593895648053996733859178752400111965754978762389063073805216979934585782187029588223987087382728192971262992813769714383772371694775178147008946271847548122436255588686750280879770225244406660089202677777040320088320934533295609158125239902242804919831206945836075928632915657269761574046523943263511353702588678422072142779388551746154273525959448134248863299835159563353881244691097424672869882002726195253253558111275506140399918214914265725514926738866813308649977956338689932924151550574175664888640248446189553072074714300960799021693299581330474890527858567564890213488428298381216969530258750515375265050099912337165514503037163561281838964969036368408467332460748015849717188536558825051787715311329020877713970444614321373997614901878949113812213122688379104633020103343235353290226095160678914016989664046994858754831731005778279198729430627005903929973674454781679445841495640420476602675321951290905096571500612786850930742482235068347129046421469171059663876618325366217491295362737027131198254518436081953620940602407264111188651075210735842400901770544611653074555986593921519762588000073691052365397523675730810264072010850191649681708072883627630590893774860994586077469278538689163840283410506632567885371005943002257966531524328515491356618255635569702511618802969474038163638112658472447840261005748169463496686150818462534319283346065387241748973804321307730012323492463210273593933651769275991382042580710430631051477719094092360845723412990968058761654032310873225509667941064179015695093140211421780700722632751157275248729387263004676599804643717835612910529034383042116575961021077977566292258819003621625776356507473639625355787513606439639950695900902514087748069382326856188798380185927465285171998530574171711452559595054546014723887646365773491006246943237560098624502370421125709224047586220879389408192814898192382964346366661652911779893600334179103461246508014625350571526310587609105824254301821499008688755680583995213107893050681416200736704473879691325627286583965445761129157136746463823173575055365958681415684494999140688903218208236458724831680847377423639434984638368886591737246935247704173805077933480342910950153243974449560056494418746911223088118258020200939098618344131093406612381264851804706556867133093947642579439830124731306974010923138684350163626932679331007807519940218904823797999805556506167077726199989874421557992677592058976099765731627533168335287457103805961048686468437138881289484496630443957940165830783989156670670457980010953746585167184228848256098616355513528901274683776936172936958149506055667163023667004391631571908501806891989897591845026200681343276370259213045126387505258881975504353587889863982479641374087983764951211896247340135283191897513654532814106381654672833676712531086078763267352357026292836729741728017384265871469926406374152055461593813884247944031649291512411910949703668465534465028015843228600142360518094724069050161503257570339017306553606592765159934017544921495232724727601662541146403766589744490858492628944422514374108581150732850628437102005092204219324879431668674112101649370409611941136591926645492342982505779137325035580542932140970630798127684578453990716967557459754757150642256162303190542897716527214817378580310268593711674612429937877877072349952231972016509662652768276256074016782307890153734714862675040382268993253715948351254416974283824375960778452019172059447322216129643840581391399892186021777113289049241773291781962437602309856512644222081467126639897069474774613427229231560297993584257606612318229823547889395097725696669894388333524254069824624383452926520792565874903909448927642092070914580903507414405975767158241692959873372069675142458823946704182066825173504780860295546049001731454425843877180623921058561222172731822649761640153500639519868876074022899476664010533918363742166380373279734020784776330521962096324988634571515892425696199278135766661595539587005816272164436918942324210844236417527027946454546263388457826463481974931314263079571615757883495689763398802735321108657074745483798932532464301381821895666491582738231562266535435245336307937810712718467449853880500349192088457870667201083868628610482646030854761976752618141703970184568420927877387995822014062228673130538467778740480411759588669368506685827857218956338691026586852988643585853114641741770180068803250596725398165068348700563643945817181499989707697075743479998383239399069252367824954371367207525786449310205634120972525779201731404347665929857649739541979339733236030737052533237572795761119756953362878662556381669853400508888330126054449891823370585321266956299574542211775998404940415822629714996540640685076903770843183445494989040665218823365457782182106867462560143070026216282647528773735697460660945106773172724421140869134932468362305324561388742531558526961617410263070021678816706310375444784757188487652355095954650124586101732349608492777155330365097451227976471691898152556385879721934362448918396396357294717455190757987669225548551661474980377699845132501672954621044070479459602983667297396302313863312279859530152640225520067174620920629720692205973903690169377651382032842976758007250473515759706948563886776349973481430389204270092112666741051500885217876856289852405317059071949944136245820011457693979217940968916628092879856251710272063567708514511187118771220840017300363667608324486721651584997319980164242743345870431609925210923137764811574204175170590681907648866525373583650146322837153783603909114152505658850633460801260336991818089278057446959103181114827941979171229992063685530124540872178538952048428817511888774796711805842004557424871998643548480652888790860429174630769167993593525450701822892926359122469188461243980760900256603319544075964897056017260645162772146564311826859819534471699336956513137069304308051662472566441606450621165439860538675545757568879137210109125866907802052106408582221093851133225758488023703924194806320679057848168574660476175216424018316718685619211795100765290708296190039092226876878182920060615794577389597735698786303258127050953827269805199312289308756952626604613462229442661332402226534647805478109331587975368119982629645545579740397362862774582879709484387683660257305109918887656855721182458901782637499631840764874379713878250592234080783828201506839291906206066532206549889507807332206725166575610794724575845776637119105082921500341093054236962729024114535141545277635562234554604910585084179094710327832131015673495942728304061382882722048139710678228275737392518976333240045336851071914591015723515834585690709179159257475683122313343069253264413513458450600646153542333231473427709498258579229001585983238384097149847021328493651751181583076883299474674239185181919138588385289568803903780060156566260034740973206525269374992517046832812131755679095265451217765512148193192663308491642688536130112783063284073564420333465339239084869459004392829237348546184879608533736239964696316710806413406242495723445918073928312534529754457416720255028393642622618912264226412970962151001203220561183568270372100645560609756029439879600971507929254209165960442725026615105954304297020900459388692034214931496260784285684627691651290560082484705478107362738619730103041062762259790277094869956002633142874604832431860525654196367221847151878141766890195088690878463237916258220928015543256894414739187869202925598593093592080873001121648837895046201344974584255651212935486786544566069131333617143837504040581374335513713300079060731725057504516905559325911105347047733295821080058584322554378355122504224524334956009113149074563783056311277683049039676607717491666529377845328865314520394141882551505505906876496982947288817837030382051079266548156550444533232721700311325850592434916144298968105956322630687155288384226250603909082081055622143978380223320259985734167339795792318379835958217032834012497464610265159496852121965426924724166427958113816753592896611241050566592986046817168594582238294423284876891095317629576299900491211391014059891751451935394201166992491707162888119125702977561895481690560161440758669398386191109546748912103279278260564609233155377631278701770501932285476725484306563028747079110493107975822851123921609406790024898035096558687037687913331963578198353252872418133466434228420335500341138305833275941775917178631900105626721824869633533646743623736166678120483934945256577270026386653185729561014704086203532754856711747058246928632000644570001979791242349591254629222159852730006176753789897338835693962877592078624815878149164106143858159055845978266781621040295968252670249569456536291468093636021628342018752000844904515473547466917871600845337614146996924322852697565396939176940417918163815226027689722856673235848514902062379277079043161306362303221028776472457735400329829289697551914812675367559009281761795774609877629701847805049876216932096596973722859760570917163102166740684341384368713319016221375963941079182549412117924075248947826155195305891871020089282043845710639468939446788792553236441321821279735983722273772398159837143728972906623694410321762067746209819940300720611058907497712258582243508529752682274360583616522666912177164250771886760552774616397625419410922246165774230462059793342535629769398084814044049945429859933249401700729929133268203939922485779454665330546759696059777801457946687062689559640023150611928565912540913890646018743809580815615502997416178514811591183314362206634445636801577843025428707272309436378889642426125442231425272439975131876337636415250727355819386672523406734956029956641621228064581416729820842141894744602419204212722193943388688794188979577462007976887011198822995110226654745779801264128366018398715413592607003222322954564870578017342354306463992728057161875673822337362118668650794664451927301860262226745338189187812751339854103979541332842865022214829447312537398731833650910116304430845250729668176459762836061908378032582742174364536754658430096965374414789218461597831048645067069938491129877393596774400925652095094031169134842764176022652536742150715233785083408799376709590127015738326668812324348114420750713786598980618589488450290406793530780816266217100072887252470438825419697851864883960374742342731831002080039179488887554204456930604608515440978740554985829894515576482168661941911303456840191699858358692187281745366023202340222375049876949706509869831788116652385236142225595485346904527057504262320393434447327713887281329240607688624410196128541202442876451174619868013869116951505347605357757610229176512365475845633465859689325227809278792972289831905172582660691962216396909320048827162576005644945115211965656624570601803671173385834221245463819169458471939521939996667659354291847372523466363482030514169960347286310637470090227955401888723530676648474592320818967283365515125592040729590454267391895703624760008336537809550195947630324829628510581826936875329151302861801146678207577486158992480831907252571462422795051816652453790276629118805105628275145439567127312397034538988901125890348588608557428674546562623650728657912864957174425256599427953435703960812687736946687714577525304001570788249114329431188013416484935316581279990946592536206393975866237771375852681192456360476938414138619728709929515890219367294707120142864377808799249735867676138803994474488633814917154085112137487797936584924728154152744987581018652833383871317172682539421574364089591061827667725531305947391838361764772255179701408343525549181551147237563138010958164996552046971746545161541121275340527774459335016137719001364191046325871153060534073728919994852094538283163315391380410435760712927583465927213912810679555881238562986564733509891745305095044439467901942370658746562671211469022156242866672340625659739597545824838413755137429255254361976208694072661013504743080124602192127685102148084293789879605080600410760830776624328088368554741372493940375704890024651653263472895308945542329701347518376129303894229991633351514134393856696823586595139719843236788516422295593535448927480967868211214497314816740162841930606324490392413020048978859161509070722975513030535916494975066627739248476319417661112271702533187126827978506250347368350036951198735471338839178176559806704952962747634401320775318650318130122311441821773944885901145328862610555703051752965707059525932272686782151620267080477247098244649508610866224736337537465101846166113597336619712497546662544679593682328533113279510746883332552800928505652550707839672713873988745925803015971688500501620468793631561757942413422411891169047442199033675611204477792707170536104781156085441105298637217965058697846574897979928569010781258648019212148195400193994107067421983745674111850648106896149350290102438069546356253273988339675413603449955480913721453599164829853701378472453117732689443240838503997377072599027558419622864987749455883829527587618671802393735387474456909157234695221944688324283501120245317913901495584226244335824884160136023339457754583959999185757087327927195960031200724369563685547665945877175931281562120288298765031690145108611559874528281936292377760140444819913524107386353918078244179170493270577743532963565978757499629622621939749372160952172155855581007950412430866435580363127851362056395976600062659731378683068796947348309808029140518735421273771439403238872480055882888910671654013904378773404760546594492837401504254475749656030571193640660554885010570984281163476148866542665499013955460742801656791522061905670825256477120179797635655338585806763906282656715827490110927491430154810381336485455461223051614724860286951973028002886204841593241087350333422746802576914082523363565654111463579162696978767843592120902285878657941663767679887905907189530633122182893139065539112349329630906220809554470804979916163353084626774564641613927020984959426184016470441617404835889089062416902481703789482555980521213535608565690994657389492167576628978910141519829641137148495006495400900275956301198312977643075194288928467443676286106183264545002841081799818716787740826320425152028575228954675243984549904475234503259769166855009556952040570731639730047789500921788189393775741900707801499219152400842675063750435167960027113554634116562849267433749052925533597634712332058370044226118699211411920267590152569515991044316919514040224906874588381035469757359132732144984636485793368559766971716317306130681921189351881754991945314549765443676987359567970111347955313207292835177907526607542660086692155409468967980778899785245600521979572936738435071847818220579590205699665723928483035880483289314855830419112132421327475134487669743284754090082545690214891382445794985327062566939709233846568513562039488544627323243055827549532738079301830484346769876351196065720252060506917807952391834865336815210332726716632649265105916611308390781752834559309753701495331273435998652648979298798865365234837610252131833364225338990410295087522925148839831018333207042979934642034018021172555098826127355276700362468409011630968301124412032551447553146169484288303778169826606757096426026805735178910752758555048334966800359321358593331706557549387312080446532284387186598326595272050440675795036548267431473336745597650874280719445144389855884978059998068763558360913117578811303815283063047401030095038449632361675841955535475795040718418516474849437729010027653735177112621672642987409963872848664474460273938595101025246449622886090228527091485142377440568263875665665270141390635989013506168410014221019620899071026064300899770963720139571418475052331924131750950775556833963012777533060478232561300404613018761474461424096623823896209652725989799252752090166141960373349066160505800260492273224329676896091776564013563034925403621220641023649760234590676346410732653477582313154576132507590353062352775036048209608481697485538318176920506916856505381679005937331675378969551253025124723662345686547249350809798351267150752632943418790746646083160521864440954034978666562020395975513845913272007094549273778086472448211615960861095296635848026830015536965701939724377534957571649133028130389203422640985473704050580316726999416012853049052834729436195719773690430398640441370115460195390794995385558322734460548287582986065045445378137368143572576043927762334555956895380176600827270796632238980241410864655241648306216346097478083743514288334528149895175731256197550238204517786768725566136018461606794002692940112164469288464060144744415393522329150269717139081616472999013717807042310747955426466803384474629820362347840070259589187961562858471252269640881552849330581570762255320927654551061414463252050050723940955329584472141125942716119450991905725477882685337752120940923863800001270594705778971746233099733243291780387823990129431395614210056832882962777177146039970141392388449721531155895368970557853770447315487212080365478225281065369718765826291315972755032276082259416023615960766868141760976340393997977587525018991138921685539921929915389510798975836786470792987055989084644192976548884120932740458043316643794873527683093342447912862213775998770527602895887703726994117293425167683892045384504835624545285675481864643669809662718362598645394096749135034463930975969016697054593680977478932121683264122433625131000908549699646753093363648094357067628043139910968260288686844377677481889776478689732455484579513015190183932690830716358369178039925982887035282932999248614941414290758716056360058286016266890380812839610114218838520000288528195941691189136383401209751735829577173830561628038448729260544083482991462774701706417322635765969185693703016570530828790616509456511653971507661321887081480914153141684541817203052508570376290031811342640360977702587239479637105837278871368707432508702390888713460879342476449889540749078643289909653567553924911566099524932953267592627417352046115118018169307019311954551471647415164475513430537144326411542289390939136687253816130356140431385246520078598975335917932913735594805649625691801993673767914433077817089628686583641661438294165085672238149920716628176082649861836191183912968250939946271744691114497704451066843154154175467349378820893585172707986160237321872046505045828069247271999858880554753577885632275415886089501816328059344325596996753587414802901304666305719928532657838341379557484313467010376957273636105170117638306962662857013649125312842937855930240134710730977768872794501056578523765347751950435729187342109979327901672480701083965756257727897559795018182585836630164980714303660102987568848533428023799163282224601956869838049260481602195917302009753502328137212179071504468955735082263696371890133620182112496985572051863243274233579118720723770430944790875777732776921092348907818308042438581127109660427025827530947881593682613107280158720981309103857698305074728125590334204116627429481847978518199350104921023250441505287634745815115160269379109704828276975588407567354734501187896387570106370480522238054887935925337650685429305456230320559518511533436142124043602834650065529450616399903108521599943192176497949786094101941619966788615729230685367907578893164538661574739058328268213018779017296747278128992690338211062362118934727578554770746535419481889455545588540588470842947945724766102352905314915422985040628338078364377347590123307128776291911532078724101307834073544902183584164544326324432138503398799419306439308160980046088714197162246325246302741200383780296923108464138961206328888584609058868669584153643677291304253385529653279283940343409558914537627475031299052749773706760967235069787456297817273710099910806884608957559728895947442111051472832851178857530134372307605614430598296703843478049940146120243128866645692121791761160981439966746184979064814365437667784588966998499265990155285296454889176067349630189016332661097321753664561220306905778082775501433088968296736740539814353826520244141878592732833424017178776714489356295826082898014343263395865700148563461219162427026895170067263633756238454551012716146934625513073076532177298227935992231192587424696151469438603084733031062722465020539458639673620414231307892756738475096916025789038395784642960009280700830354154777340026431762362400580221577998340455406108310014541346503661299862417068187148267107619097890213950640364341328331833113414637000361285063094980526330354212743702507590554317440128097185416176569734282101474221500092745249309183659852712354043190393397395588592206906547820806041191091543882404712486473875631118805452239737606289124708982198624695406572773346346962737435963866686798079325372500355084723175697863078926876843616261693430840331927730283854679070674981244793328721623268338135993511858557873103234978994167507318295770957809817625807251742560494416457234455373198140977713732753019150112266110507913092683070335318867842990957735324820889695170731846330390492321374887616443685014095150092962323144306332982614761570320162240110030180902294586867493776540756735701683908242432360145574595619098021997348517322235846173827358001269945444351450167828133800800357372794128821638339554067614654149870688170423345764112626418287166838355906402313629873539509158979378494633076834128383065416865061148066663555719309399076938617134099987464054395522551763787822958133894498881684291536022419283335527703477854505763792973387223327716155532807792331663551473311316376477735534647846936733538315966518928565097400431099776563098166843442850585926039883108665266518081295185612407677546552718657722582011372867101118298811692829685251364544529002931403281124089774960265070170112453914102236100217055731871847559256102388754999370404954888033911635545094784907786253641715481727320608314547864537135086257014018653484192673571002010677301414677793103225643180105793413812244701305272876572176090380888224876259622637728991021707502113088325040606329986067802331995237605767056395354311301209297866239214871825371338164754853594708316461879272712423052021501418861081723540056871207634074807802598103022321371252921706841499571311488112507400501355244384965350892849203403120361610214519494427176706737908027771370247222825524528534997090639193064478967259834477067885949316794161849849480148087378804340726003399211933270898762181241023707558011416946552714366608510467581344020792401559559538598440963344549808532983966264491936127233561507170398609784346549377990452072766870155887036251494719818362784235309891226775666552849579988074759013031431930885437877298165837128756641272778372343026657866923927591451507241641727597703343462274607019756242508636225556871427337827219911801962731268357387488392789349551687041206828405988443778015490936894396770550804822578512956911304386562410572102297566525480640215734447173831789218461515460081354734226491061840400873182178188218649796911481250192726344037965285919148521839592935157667378724534337605941921001585399176044020750196601243625472901706852599764014459305719598084655438346982191955862581452507355376195937141618899465223804386552295825276265971509964085452332875342424984823299650758711110768280272489698680790060643994012334865511753463661986571873803235982890663834092452861483103272233820156140921302862349656582707258908694162034899741510215233534598089125788929989502052831515149757176650988246867932491535648354367700872399884022861657140834229315967359704966209890772019721513888835413986795851375553957198427107162453792922271595632024248131750800596929722476555135250940626019418581967370610928765547907193234735534393022926271358713839721783859400645009279068416512762749202662895016418138556524426307044720327149262757246936827484266478338116004923807777798556052901441507957776308390970370790202550341118058355800363838392355021670955604909191591791656084575239224193202213556196924697125422443339140265634390019749376884490633806883227544448355853315987263158571000216382875184443310426337794336297166294719101872895005921534041493870943574212524869794811508846631604980375925122768920146363413960108727399690482317269701266379417625053065486397258665076690961292232621475647709323861944193896026039203208132607810532288849205363332452350630239507895041148188978221216476798042272871856472622639335512475013747185232601155104827326250285834345085806618249709026874671607733552998971939654929208362007675020150489152452314799350431976310746326419507685418363468216818297489905505088452380062938746610502548563354034233308687481771306366346183784352925559811027014109957870475338517528295958687033298643000676175978877237799699415627335464843944303423114244574518638444361740127593388108891433296682489845466095882410164161262548957576429643228757132045007113195826708055263819809461405598324192974899114448239440383285248114594913478838746922523340197760200592111149928731207828606936697245202906983894471607602807244242709153085196930958230217981741585156964584790361463613233112970070223452115458338313244425239190397824955782450388933895617688630903096634241369917010506381545275337602712613184832779553978790405762615793721326082236387549484523321725694673853066968950938660979733525551418333319985489908505830888589169302389969063672092659114124252901520464404671474943199220500960952933088974440528897825786109757474715589797510667729197734429734098002400198689129649533633679425477554930965704872160390413862511546626064465302830629996028979568789887836942849793665799539236112300194669829200584552309057025537821956862716801628158637873486136475742577662918713702420617286132875771849915693523573421500665043601925178974749136843809358797267371929822362841239487917653313866553743912797777462476303998893994508169335181204009746843864447550921704620620195476150984427222180573874286685014585844055118895280090144557787328290758793930427516180248080121708968403134058289430204286306182326529013843327511925500729430365640189047578657187035473961341583298375454321285045752701552675398279452773161544610982106597208319313503468079224737227824006730349748260174320876849463927149892962105152805997208631439964244713272717796426043922227067127444012627944273986155615348630520587545407523866802142696373920969985004324543429262209147866188865972215481414082472121889442094047738417608266555849118786632273116092119318830330003795936238224605772614345418076012581505110344029159728931588994585263912635116492424347627071720870280365162807266371419332417374300966905630412514284117944475419530998131658033647886766166910709248911982912400188149483878391443877433493785083739608527779439066989715029765607541738243997541444639736935940578767460879315008878134686658897073525705672791596140873840670757221489730970757845597800287483567917383045617065258329548916150864449948439627240698761282269443001291896951800876164438038622597896919040014330950966947881761579566457313634757050297772141751583635545003994907317924472663671487497438130575445287262075788583652297286686355353857594324742476118955169088402529614442949055624467531203020736980796878058400107336861372559580200348522961877040359920356001838745343731135693473661279995819769595598338478966880656511634486204006169354489788455854467504073922093165754135647643002403161846535357362103653623491173365106682893909023574056961469250673370931167755241487115784219334022154778705711869785056227079092392540764725712063295239261479121187626545858968993090873973254621229006651056823005931379519136347701268775514338077513021876731251869997365768851806598346794636236285884805212326064980993678677872256496508569002169583291172322643394795529721733789476382391583810944569900951021475927133995882725362694637688911037875519965708248117234735700633215246328950022238520096760632607519693742632146772858338898088914314081252006686227847109908425547724254681325554196309536237094748491216518160332222560243605543875941553584361346109855113076123079933642855531479025747876379778036298935411010269068591133998989524334491051249904511696631854233858261572096032766565944324802238989319163036045530386691909306447542861657042684740564012723223689916377728481574349864225682064586409065074957315116821200760594108386333337543426385005773971820960090656824334563459346610599793601584442005188662952762693488116020716027639091932550988650323847090822630745913721018196897357279325669497641615611634211318835115848303666725980844241048495955314002805538142419039647190563175109586175109624218291259525762654209559126831433900704236620780870023475895498017813110155739947642017175455935865406729563203353246917654130675076083938316971321221335227152348800111052914031534859019937610619401978853667224039993974005871690797303994757741873360330708268289563082015163146339115856709698403881080461799692170442987467813083493906145362618707381524946972845342116511826376506544818987615917501099614368573189535078216912015064276716553887885696059148235433549816548486163848316796905581783851749601670987564397973314277970526143834487674452867706561114655216142101396227636698778426030100133188341719182763451135578949367150483584034282376590687596832282107860959424910139358114671365837460147259336146196093346058720517779600720616613946791168222670607080702761538503767371804000813125614671698117896794725455198941413801293442293663244612277760242857367745572445078567984997372246133906675220553122416979886149288580450095976203038052896584206318685748007313965237655907594032620640501328936143089028076767392902065016205403268321684730287436520890553472534306326010036269001825746379271013014205059429086648210125032611759267555030031658911290290962295763047092269951429251947375531384328353264990009244014369999434664483361721299835728522066267007817343002724299064433208111480390504999946086952522701875169777756997634963825392978559733846524146922533736346805239967845052103865965618092158362219713751663793495386494864761939099838909374669607511818229540615657470132758528244053964492906610396967904003643591730538863529737592225070412413706765145358377955820854168913338022117425817227822505193327858398509061487144735854555642775357990223201842119398985825998322423835968964760730014137038104680369811403617866421922479403614961767524040302986945259866193846060739095860151089148003113364514030658035387601590277729488463124667341331965877120057687319662667325677674238335754177245014012935480713340346982304242489315381192169053603949617828353978834121319372867063429329636465978297013050376176178156376577395259022728833269117504986872174647177969696522484916489693797116250302318733567798306049311990848838543365439936375929525982775091279157355082308857648324573603748361707758080657835403651571256768348309481839553666863328670304156689554021676897746158850069784346764732240603582801326705594130615140793960687376179750630102599055337278919538492055177652747311708020827442282785393680846389668405739297008997142747988895214396831570754695731068019496317321707952890166608345769490705654219368060217490274545310252742659281792544082674965759377497962475621450416119937600880954081777169665620991368229436971969782802208755151850555583001388420023072869575616262560993325790761608819535385370253711965002977131072269855588980958556650929894071364825724926215949407345002312886891390596755871669786928560845961373002805196751954720401549560064595664839943633555767331488736874031269562807301687709901477117568352596095773925925709606188540029490219792090794805242966788141506748979913873486246307756496699577560750006126532915213348280010311164800628055397332005828462120054752603391083315701292733939284508633082242067193519855572690393216407301240441102956722588209095952870063727048742614966755459082222631684143761348438853827849937071887371891403887533498487706706442293849668260700952467668644025626306725578998360388946076044772870438738718873028529746482836662631381527218609780135911086879736854455279676093235176647972814722767448109442171031617912852200614024044260235420633517872925732352917769730283831833908616450636069539168454497957217960616284318798716741241921809915235042629144670531719315782371072213604568230694623649341180360035788948407438231910669803804777695235216697655333566603080435059717809587073145906427560481571676554421498674966085655256005824330744145694649662146551077760725305111605979522597863448151503050205515488916732343854430175362695308328162843728917412816459681799629226590525491086171192898988930048532317379199699002771265650920317178922471238959880022723981416717542576643128593261102199592682492843982932562566107912481700714562012818895395901990291729808626618058156254461323491223083332817411554495278080926220625081710708122472355053622891765586540757008648456757552353631987911616076113372672829929983116368921096308388026258418951278957374254778974182691051967585370942573086517095527629929257391251662704296391094394673738229036572308528477366333749004707819456208520921870360331112024427232405245126588711703548752411343845545384808346722351429808640573278612625990685349633737425137528904648305302331410403935573132050731957225896594438986090881991674976434261713999881913716836553615094204027974364245111531303412460420234383152628386535688150769251593120890458537839661470610067284121904785402221129961299826907188701118005697245277091934068536083390182249349732378818931485745219185952738884210772887370278222233433465661529760436710743252814512053408176365501674993689375033541115411110677681762995475222721915308602247590146342093254613418851121867324829398054049892351656145559500989786349849679739259004260273860338428523047832273970254564847551398271886304089420319621325276212875796876539372541186269909115416966668638113848370190521959403550333791894466576462296586845479070693600120956926528408384662308227621279012750943261538313976139824782372386895468221696143366957601051815403029435690165437107472502193149347594986329794539255858176685879665716859256404155806694449242141265921142190981280093739725356175726927271891809577207423928200725088298416846970192687598690537681974284661049572531227115915776299778339731233276055731983437477216360874532258447567285739490993953610404442054107688386295723411389685487444249126048386195595349565634772447915885683295594817755504149761879100846580878765258794616701101673142347690292897106791025804419630687732119750185562481353065528266718301420896818886405971640320198904859622506455331438268601700399409026033067930625397121816740770433855301415000989083627034229002116856626468012488813618700727527594703967302355737928549354973375463554528087985780617654474576340861201690107768525263835201443121487267406357504053984642780720239397201147804468264628696155059312639487659712499328620001763249943493061649465630181200774935924680620048902972715199602504768365930853973557409784690631594637704316941365984589333095638027055230504524145520482377923979255339500682051605549128890231936042445347359662101656304646892728789417040151918928209125723321350671266293275216180151356365561105463880228999592315956844000162914012391299249590971802091658518225014220962920556810058508889237126327433717468895687458087301471695854834739764154325449294185492149326291386528328694002618764880567577059254999717129215265721439156406522245970059407445535471448608835030233208462346559883790211979289618142012858960128377701814245978474100799150434149786332988011157912509568471465645838083509135526946376818553535133075093036673086513217495540741096746060144893676630041951766336551026180461290198658302225434847213366278390819788297441929370635957268712919632825019091880278142153783523463804907935957219196543409950709737126341807942564989401878252064976010348653614079206358624162917227090935151358790389751724862591852983257295585137837970111495671060404858651290263775181550356457320349023192089915475005758090216128198569904288783341500007154791480922674815788095135955177785666214921871116856774058136851680924325624928192725480574911180869048394865481428495485444652825236622584986573071474600358503061803162656174256084585860853003654653777895651048112338601618496739422237818049649495619884652371421286980764841410175774596042202257900214704065432867041770156603131442138421396513052015323179925748036863566139286582892392349674679647554188195667453080038306740579222255539894896768372294514493687793605049570142584365184809536722278118954388975646517676336669784669231546828991005122877039386734704090715081438380354013282447879955878140692605544485060739033696419493054242030470515120569571587970120298411904729817771795677630746635855622253256435368563081720168008500889270496754428953590361644706839686388914722594497257126015801168754793638611491965812557497466523815140319453270749023505724282454644118717857249041298268876477956708749864369609944172067610811255847903112418536182680690055442204020771415068378374803458257338718254571814137312928628256670636907317966285593750856362238761983316437225642568071376940993273745041413367931290011051490016700657116520485728381394430992318169983142086497476935363017219022169444757167780917639243186747773989438729271798703038327250701601536675748947315531014399794130052411941709702042934440718169284130071506369550517106400253038154299995138815789365098413010816397210495657653114917663880101430968695253519562030044696405163410929750645220509539680026233993865508450839698380735644375775640179770478734235619677203261106629614955615514026654030216938924670175792964137544605913221273154411591955277695380390801783494496883347527890993634959838128274825501458509538310535160651570424235825755161051246317073609200020332289945631961884786554262499911318225892846200734765237597267724962168582609203836828840174727961693993684950044976279534010861704051422215531219175671473174092205194245905721519655267061591357975418631613638789065158684183634017252392876865256576287151294249813862597180369556697674275360720979901061174874986738737162283003435673167621991714697649341767035048597860278308715956304633732128502989160904696063913000563243913010762063544749825050153891254634046285844988124135843750648900810133582239101799665495197545862445154225445347148375864148358403744716203947098382760419360773733998814939059861324061323993610305396117755247173086533325279280028928101203344550046863725088975854485546750993243969400620665591433206581568507848733349380740364392709106542029482678567837201577843482228168834930905505047662535752602929187221561230750432084999360537932114931963686148798531835703573125407482522664072355562588586857395933786080684796254917482711061399532727806158156048319590491591796060795713069739223505101117880565446337069965070467196686717218901313092283053952197652987475302563055655626341344229569475404941366783264460971709046758462797043221802405990009388670334750698058726856550081423513213751119732866539290120779731773343665097329258129008051335811754077979966415730811876305780906252682209281151440155976783158465456518285878568593288925839126590791567906364547125024095735259363121589155567849759754152546867303375075075551669294866990034052109304078082342840583782883719213659997192052627324774230746903594493569716635182053753496356852601396808216555996667137935257864336315828986491543725779877141327687161070914761333875374377457183382216387485261806809177824766261408081547412193046890548729913829249363378026491944816482033408134165609526482323554542674828092419010614616647865583970053607232190100089209199374628402715622176365555246476093409661836011032328171263351959734686930327846927896973397343201044933937373066636410555976184801276307942769880602452462432255581324871980412500968276521008180985850385876941353765311211172003397088144602628078816689480416679276992314761920715544997632087364284338589097949704995845777012634298691623479935322452341157236449079250246807705640938312555429849634846974847147517216764654763130309431044112996890143966112747624396033352023302021160425268130819598065342732121861366172993821915899636258414385377107901904429411051912476245077401177750670622736587444800144119721459882182729204945870110154494948875981205120824229589552287683070549671044733759434586364269511379896040002437103437770749902270649874604447469639882495315342673887040826611784869337819005492295139518791629357446512651886303426833231828186955000973670402548122393583687336069870377725509655568016677745077320715102557596597720307638083394178152378496714073783259103683570939105116971405780531366958295677462709977985325240453410493205154976384441617654287618005070231357191526833995531531719853141489254227266724883590789505835867857394267150906218747052427244724237720554614029447113227115855373281274309500453742428420225235511011553580936353103879334440901311002101890385851557603475568023069329001148532104190230614930357366159091661321129422163325921291589570034494725274212893719759830941146632937851869605311639211034880532498648611028993636114178962325500582654918037979287101978289302623376776236320631178784035831130964098165869429121075646099537401397074570890812849924270161125550384176313282863230376565018722240045197992813950896458192381245263653723887956152874252592584973212362574995417224151491257413550801534687429510781466378071023104470572657692387003568599656790027569048726387096509631629232337060855600119373244806141089968069527122185617983067101158389364215888188192926288072435818614515614252692953707161102829235269397516162368761787443452751189861693892568289254875842199859189995209790582044223791877116021423129436303672155016238531064561132713301125241229674230657986670885198115441621781648919348342638576857855062604471624766029994981691402327356485438277914929865210136891075044892406724384212739644428612529914522155936606817404507625584845238683058026552248296023772010231465810325757601749763701330701405105018337316295555314440409052633814203797257964639241992159914385095702521082193887111004421067223956361188077770032396505305889986143010011426539068224347428433281216548773342848004122785670366233041615597046444144508508046174032579208019817545922592270588839853839992345186867180622394511999001977766317753521031779647430847881051293363035947923656605042367463893235915537474818829523461753126874562787205327231253233134964632896718882380260877392176256946933988201528552015394105982466220962133475873266977240999521602327914989842748121176640386285612992699206508896356920774221786389847817535262545681266139490174239921504264477292202140197028119866016592144114544494058733271463800704970899889062499887628172260893120286328145054290485824883785644628496207651281316939256028127720067309788518320787816768600435723266823955497299324857473709471152212555378358560726493343174993929209143534956510686065216404112280376728469043545651621086030715046346340538200487795876390725982364430726775239731939772248579630189674094481906306457697298783185276075091100016782988542452385521204670486527925604492463612438745430929503442741262196207458393807538822572034936583629941798160693372731775219990897501243772139008062537760027148168189860087393512868381470278998519605913084092458362106482470236135016262670399775482329195724001376611502828198650926041867146031040983709355879561475057715089977256663034823491234050320035594821849682116351432834595937060832203725139459826953376035340956735848572524848201005876412695740886997881435856016997142586405329772198231421647786808557044993650234215715644258266374576869241363009147396789179736664451078442654845934372747214612027811302705728619606681971654953933596892802553413678209295209732789945279557630644516082715940835866581442035566488684675056336912020942901536812261073770895568074306640484165144041755294437997292033837041674586694967803612632955697882996718578917025420219945002430223778602831605819541550275395970599716739495464720825884214576992216093131534130067172198865636666856474511944872165291390399349615215083354634535213117544499554040062602566272017132588223120831342443509648754301839525892404408142824643734142281439068856406728900904771852280241024681935110584203903110975201864686548118677247509748229803152136100785637726194796807372864745406883472174666315253892023793963382735797091643324924416891904396831510379874224519270459248565955612862927252114870906858881946411550544980213943333090956778112737404855510955522004606437926871568057828718549728980084662530339537678911544016401122083615508532362780657123228414453091302347681757181103356498264631735358700580661271962583108512752284998991640181256890828387016252490024415687410563496644675601027073557054410305769608523217735348435184518296101640718060725259033177905777278597041259607838640049629980654146799926846314815018401918563359322578433530243393018642963505868357247745006319936971005091875993032064362474283915627533052533649010584666263272579322771094255006587451612836512062970986132213374499384514957090191500596346796695074537787159268884062556406884222909795356913051242707274680813625386925212273132710383320978554946160914833193644745252376361144076803392149387509861341195354536897500971409962827552905265313712718717108125651179982995633328380356710745549004439961713927439605334243485505200987182997984362660860103288201567479095553083288722732042939744820452452075848509313328777952162804004544788051429185705916537173884854061191078717136676246211793068997808559170961025032168983732808371356736903227571032749087722794602430015103009050307022823149664090025610097580948397544698985641865996833300580659357550840197505058752540757462522728742883917363242214984434522293256819220014434274037950068398197985924406534833535452348085494468784079466819431636737367003566027403012127341416058164297554757169973270779881700825116857084158659807764896002047646667442719355340172374728867618916655428805216735963287385432654991550888020853879182291433907104259571608486098261687137222123957842531824377573058243194237036906713436969065686918719750454043401650474556190630435141884226891859238135760568684514274199223521668877247825125034626609520248983997338387340143547000338907976564258568853827767661015550572012597467717187357045787049752566225579541644139033032345941444397281981183595101267868703829668990407756692214635285124126148632553857625780711578548689972469340086464660417939936412893946408965290744181403086341629522153412309395529849221677194321953185006062053885597736489663496083128326154932765059452346692968730816658657393130198027425243029981359910603481738582923488978037767826641162500451217552019912859905351966947771112981534957881917827313694654719731756600100970589131855452335428142534204762279474881889369960170252228319882160157107559268856376763506504943716451102450610673089424906190990223208602521984168941458571289125826741082497627445487303402952904843204691887994655470100316446387680681715615839641813401398869153876652504298935610075489090408550750186272251209296322820330781013801180953118967155339063415931919027078095083663864649141246649536900606482338924001157066624201772691048548914094662987151110898714172713701038812885902143406383801172770080112204097396679106846177770771038077037198246749571688025836087330791346836791964200077600832161678291245256738570270325967638072111976634720898331542223794553144500253529731141205632341395211628968053480014077442596656033504736515745987819068718424890574393122556082870765109309041360735887264219307667046389331094980668377153709245207120299297293619899831771348274461808317888146521205848170906564315329310577139902898451364973962366974304942194165696319178427760358526021484971175689809487745850133940614295977539093938368632905297376405729547521865448087907334748617597883546530243395503932653114623078683783448112703501038708668719863080174838043755008199495822410808484972867634157277205436387893404365576625930346855503201507715547798589483879392749196873619670747079348101713632215203096986248059859642707707206054623455780113345628170029776057756390988110486149684967920332028634471406964581475162711311665998865020970512118480077335488904786001965366846294990658845540750406514596648643677967123194819899308645049045412915230283279911226077266961056438301176082559597997886131558650738844941447728933587804534035805899614787078322964937494283283058990033684360013008353610411396775646914329834540285875778615507128228305694228784351209031177647561616804912718010556616892499258636555383526624875469900570077361441096114083991275352241436901006373079035248421569378740589491119955529810883146624081076909467045187947192078523981584562848782321457491528841823634247603398343875144265370235182200799730822373519995952176543408622845977293640767439584374168245660145453661106455939693196270082557473347674656787203113994042108261309975661451471833854140017382510472321286656707192526068045306942143046333151652063599471538479255586777588800950134003728105651778456728092962516918894696247937987486816946766576738700655843206284476851806080113014374466869764806651173027325708094989580424726958310587661361197780361911726939597165763928424413577763900935714018534888720387124477904224370737783721904568543342961289804252809639096268013963065284586606961000965924298266661231379495618902985243945851922006177307696421541278762020153050035723360385502359094091261711839761166643144108364484533898928520492692886854291680860337986161510395969422203982258552896774377225034165357287787803803491569498618560203509013034048636475365122683929014816983238963438264598993180007293768472007461707575197658802274069106622396877438238564141819334309949579039152342392614357321698887262307311567263556242760355831594860436471069339890563647325995049488249349740274262413675998986425566338159705059312614717585214124115302278832560259299026580752155882591132704749691734596961911064517081338313792707822845852586568059503190885955132521573672642142654067124830475604487940541382409209676132328488895746882464745723802012706500279882041583973149533194884286568041576215110027398124314184416198439493558860701279516008738681489784897391421122009160509656564847980647609572847765938373072220491529016608829628109992592686847862323895587988520822869994971208984260753607364394066392262428202781013373772779278498622864886410824534642824416324315274491528378356691471959993532976576728562393916660102718396837317976269183031679941525932219858299167210713339397310467737684803838776171500704273403022824227014391349413078799625772045043124651062656812261000501325706872851112738982940771284519849529656198555829752140074857886772570221847116520844749226938178593066072448067820262441681467675527607560258134912104319575029436019587077757376803622563646876915531318496041165865999425922510033957617219377019575094878066654878491737979023605034087213255814493077171782210916718312814835406640588614622883199667633564801686003723117724796232503228632305453320683737030204890660793921395279755626918711885578330666103814139411080036806907889040431873197555782538727580129374026480417421131302375360708529416539937090338956343503778311138304880126719785779734999600951482468765286646054890206333941516916343313426355921789749259832236423476478309562260438065526032706243093735701531478114964674416598822396474118649995516609782075989601497359702921728872888473590451323957350186535542649030018672239134995808756786581235945866206587788566050226352938286547585478689498293495567677650490562268945542896232771994732929159023441059183793801152881390020968790460730982583293968330312003359252505300805457952844285919585903276496168762878017400229425591591104466520280608653056801874778670847756560810615677469495747740347234534060650662784943266526361571517256661736823992619586887732727657487395913813668172552627393374248410416964844985495751847395406112873337031047540143312936792142518669647884723861631563460602489386364864224961589585473979911085269614653782055073427490323274573740216335354020018708985892069343749950941037885321365507115849043830821398065709299573186733949196417206582066757973026879182572655977615332022914948419199253489881288802458572071330725815257997025648197596951235265811477697655417115793966097694449867752970382214952056461857093417676630271457521566339289153858380086877594941155989396426909792083471886926712236879650632070694694055412203977133045736075492596727063193685498190315765420187216012935419214263157533256952946228374281983839269511023677615794657761006453726534145965172307329291541451419738821386166479101968353178950531950292242050439387004268793369137937802284286061083887030900985108347141081852524954158102364921277291350817035764558653185037457323508958932579757514568550667161654138771774929546682396870294973603971417060665645799322149554477159765100337228701011613706584444625876185032256184057043945299546463161659271895186539080267598145720825151299491768895907243469217481524727800972283323632380601819452954635479683752636220494001369471002231611948938527170337736801336739547502083162913501224980369275003504348201861655914065822817695355478355791181921260894202440632196964359250327825531939424479062605337889848623456634889211693245688528867240113137065631802924503014184966139343756157364462989066410240814218173004705263328341835492525379057352159804042596376450482305786917778363265959718129482270213263380039795390512059492355176846102908300941442709054171341280744381346355507249207575737405661933419655572485731177989466436004690792570305593227603383362538070782004818915162563332571114057302723830525098967942085995283285870841087148914186373785498369086593731740397295423830414490341896609412824247765998600893053288548576143442086664870594211530732426778390932298218653811555652865813966296923050667195382288645865191255200313891645044277989023829425250464150541911057693468343405464167744977141143887682785677425584812962755558415828475269205062171695615630475599253509915241787146685836001756997830487488744841319444103327166192899919746686132527580845734627956907245241156530899585525765521187480160104559129804654428727009687103830945028816359066055600743155808652968174757320555924477820258146504272809430993459201601382055595114617209117836757427465695717405961337909491475382922110060199166222085236230481324941258605595258597001651482686749123483255676801998248643345818715870589972451120515374313358462732901577854095965131985899111195373698605741519616123046361960114959201086423557066130825228974429168172866137713542064716836103938218786279177476141575306968135737079940115095962473150877302846725674357115373515671558265867785353515056834185813404693132074639400822150446984903911943039809988892068420337360262985370379598665876664087232298909601924815200264968698068539854759453878739227100156495017082079816663749502746009136810676245867127685929159251315529872725296676102458219489712400550901421608042761022146433907327244692071424062396165644942298081820857580646682423915751851106706133262116266137280774092480424000202829195097984332109930761711096890489399181208964327397242924930770731373023614850844005705572491500685550880134189244686901330613295864701129806713878290129876231061996351441145231004712244639572516821145590765143561728141534617163648675555392401023397905511847531041103733148810281615340914846595721001013692273610202692642263343675260356947363162055676833857906703957606832151180674115387786429869903750627073250259690348147085198082005307562411811865011648956890499679045269200553544968390669516793142704419130608404016824970410253937953116611599580194695459130285164132339744606362038426742415288888287619674804746915249154518090644799508066041100268778382514043826224341634440488502924630135599689930917585882683234145753149959414931650633635363646172350378804822771224278546012042214851369887198457766560037285235075166898452962353948475038111788539646043451895622112142481631273605673395463677420892986528954854825395505054748331352991750941964374102990269235523608675018034757752913905625124195225476819970218578417718442663236465743649142413573706931156211450738370684054547893512913643800996361156738115352639548384911367394985278411528134445651290272762501467824065877480618785400061219835792443198209183272555444055057705358836108494308347595891998036971070250981226856405735131631851717894339598865567402364590236658151460472399485007627452706511458840658333659298926419869313136838492333483255476368384814016088251012848450561769345998653741245106220619231651378685759077129124064742938047825463669109841982754027872414751929838633256474508637641058902398194226686519176261948774130327921768238323658302331567816482203218078032286433115018757179902623200427039761763795798460225359751911339132263091793775884265855233613130448024829036256977394530241856240262803532683505337866689153514274714438567941339653411995168776239381726549374891510850729509826861062599804477699152088829831593305331915341325282892789398433262913783190184648852089146114096039326446696598424965183016761416190543668384846739883572296846463768334495834156176667638778101742058709482659392782775269904748051224712478584456559992281010381445619254638873814158023215671272471139720869906772712441431308916145945245643577842526612269146619592809227697434013229177447108239362045032119549842117100846623940731108409062906328145741659128197973609025248987780315470282649163113838749347918736045490125581861258835568341889622343587659378565428590975380560917128525721213098512540947015331689410718943934842107378719176850438774615430584434944484487518573441494159349370311102239537784358918820897357798749383023333031907202338037566511795212208581961726053137392893618095179189594745849100669205864968813310291629928171836375558461326571481544049681811237433017292935013268755100726537909123401579039868692793395227956047077921649656485858983897578628152142417069513855665697157933716129112960631579156132727876212091551466380009884196568861030431911414753172130133172521659095190544018852833791334237616610171397711470554357974250719829065371393611097925856528491109236567189801152413714113402290971602120410341074601032971431606824958464160115354650153906130797025485671101204726781939660856645161961703440521720758322818326698297733882902340602691602825178215786328253544790044634736511471174205305046699712240768763790392448491832648957363500199717794513743439470577632320270388345915552968254004309194226813267201342738782345473124935932669215021204807866931412389318530516186583352266719725287426372561693609092716523277852503707725938865209036052918269270574185414353743456411570239808720526417843008415798898260547785108068771475737867019347123178272025879018095717748466601373490764695545373247499836543617680083332811782604222621006969291529009001273323654337252822310151128651004194367238006066584815360244973613441596694767486606426712886886383683056509984476039429351829134328979675397735714992135450642305355088231695214237122367522267669152305540622318808595551174528745752157231776031941002468473988675209672845891856257625427718034329326134880709549312993083560364296936927390736094551766047111624975053672073886817141724488448169881829765244780517971026424551641206995441138664296313534011221418327438249696287563741399389481427996656864707668490732454371466605718957059638348881687378429887020381753763421381635026464504135342625971872812171595250720176165453431770018363437418417346521503655174877002033582399847744043734124730835436669848043531773228080226147358684632412437088664996866848238356273023595041095357188428294993518969051068369343389695231477031818990728230087097201063092075338991415135853348778930129397131829917565317636404020132846735812207222533165832384252800635908228800391472534499818513357333659119048775758425132102461099146261652706754797011472461547349558543178342446878633383689225408424510242936203860184371631429839122153973150070435388074015032024426422769251583127980942285807958540575835716860737874806863096650889789737941166723198340047499024139320863724367971822009994036609086506201696014018835935226581315366485546343443134879426865019182750558294395727769158861435887412221584746057757224680279571901346824590500218531316278495946030552516805567312108568518714659924319048347702412094388254623214056765971426373302009433767240336936404366248516037020428750228927708669469000318824745821958466260715042310741260849787245263390395217589658064754691012905310445465869670469669041901308269698377209588347563857230824634026169926902414802626867334832880113544022081982903404104902461059775965161399616816418364124376948880767402753006063661108523263320407358452870028411668957548080820158721539029076476170621754948820336496202222025710182572608931796379900588262615858338670225264767101760316888412803099850262786963060490603881450966712239111775574643143981378408177645307359681574408039709732051804331643571341987777223612921470863704434172793234907806991730519017005471898132570423301623800011220230415818565023975935407589576920520835043698425662992273389075462115262428426442664726471700737985531185098260946871847560772608018075302652127218342609149383405920445706149717868023893785607851406624600261649887615840879523525031945258530487646278195859703427747773870592136206957965447699363470012888672850263859599176913756770013451279698567500809740752715852339576928834837734574055837367866072040462111674833307416066527241406895608555395890722776541398804112175648846955817062344417103555701567405561721728882231503274689357886960677159851882839792408667174990482814276144438134438727809174029902594488971355736081129872044074771965324009043732201019126541944913399724806207921834148738468380239036514150017640543096261380594716205190085925110573213884857869031134551769648795344016954828032646095787060750890942811396059769962552785242980046491661864216793964113200597581001535959702253789195641357475198754885265796965842426258254373895656358574746166594600183987256202455723387844787227341911192869184817852721180401954544757604045720968650492988646046635314891483726253404683773379783887079936725701634650912787356813832894235414831104483649456095271668926222136529072050645696049743010012674337874335430553477995298441554728872762359957125871952510767569432220014370877003921204558040463727518988043487625068902285077327901914163820170009597583836117745579769369416648498662858830385695389079363844452046653080932177665905466176510124013189588185658311526628862216096347025383173035753704982971492394545565952828902378915515041614905674736444190192969457189190458153802352540239073203079579356674824560993414003826302800853248435650587454344049289219199375818980932331940239556493582724052775784127168800491329512970897864310522139129740754962327192341913991447932992431272016435140558278992409730855504100255143045213118483247470457464175605311271821164599306876442377129347782997851432314699096913145736505526192061427855371458357260850104198443584300172677915975616569210598038073047249649017283520539425438477690520714056835767470697325599602639237004966621228000709789061278808346253435574183400100308249112036455303403632131884190473123401065007284371755546964069039222633099298837389522017827978865254867404927342529427667224140652998341384703901774005621789262460088285153310526961427067058497378533074357641897361081485354685097102130632941238072381438912371721269754307479366906801266162521412036230301084462841143222646415332635784263908376514718391047173846987168383400525325621913204053674177513957361595696027887808098382510800922788276330678710417642076756647615274267578110113229560841227002094524891416655890527449697322355608037369403271517013352084730126358747237018577367686799159225962000825703158710258744403909139300094634209816427241096822557980452313504222617910370792380856710487847732784869958260459171582692731897578539847300425513731376732402710507428028971034812288367576749663219958273433037955344140763229125381692958181488958795656587194613569694136906047535538613797600070627202114564763041629033031759235664339860932310162053029221791047946627613623728155301552509379859344405562455925764737190479230386256401461800017717782781589082577148001598064760278439823414429993866013105735873013752460869560233571070746312002754884940564838816195063877023458186425193975799822644472018194701701719814205521362954314952347383668706735249976021344545606233087022925513360651829242654787454128431873884463772776493766844966157371863063375222605973624630619325936442702506567860674436818043532742098761284554533873827613097732467235628000745005892995299169123451163301006668970477744179415354652052267536848814305273184101546293076360760043803784318466911547454042895944104580964967423259529458661492979127891802951179524861139844726190685792295796547672800816506118578038622532014599493492645430397297975087756968875969268517946308032064297178057397498290312810096766523880552614188593449637659544403158060718498238328880734812622981837311006763877588916796019391999450820454647940435002695482289381791702039957911732033969534032712175397991392960427331028617174634276782959415332304525069494727385212083743173551586729080173171379619339033155762364300442198170624203613643367027177594192851138731957735392393467841606729072777558213231173739894583045569217271726790982131851997611622755433963264994477196009547912301754817876476103632699272736878867804997145134624677347133288453281961765987617439728922215128807391028932552318720398820889621959994173173744746045876325183850031681116349151574981832203741658957428337196983132562676552489891690780700309899266325460302318692963044456234089882346440022231363124038770878757497419048924953263319032216983698303761302283675811732657913283125037499025566579760642268881944715415737790087476889785257924250970234352732751020166308181033960678404224165913107309089279235552495551666656964327947316505277696429893821518950107097187447678886169105183054210398313051670352663949056197637910463453219233906659113509034643311114860327633404663075893623868973760476070442451941110004096867271616198866566568392088708735746123931675982418851863758063845247762620483988591194498767448249804240849129632837051637773220496482492707721033185415662154258132775422367646293322574115663365164698475265934560670584119303624762668952254493922514283058870794257115780933690435011907380020840090576459124091488940972668315797521701388958578973366049280041546065087684758156077043345701190540162646152592279450271351664855987466680166578248298835926195217219224886003746837533386849376613206193593250308203820811697748483143832072976238267550524958234944626921062248806978308434638654956007773890579595006535978621245722305319167759120609649511994430043883501133463624202059355677653229460648980753515045254882850564256999400484522334756210840519647070831836333216715368769312066028104971037242786960193205501186675549065315435767628078610581389161981155699252430243219162443191383657525359694699525338624642711954100448857326576070538284143624210522376678273247605766311340099642768751003449896029609821801279302818383325441482056172991949684019967639708457860683909089068241040271362380551227210788349834406712933610703751147908433513759328448451015804516011365046122390250391810881988255410486666678489054422448124337950408309670919804158932838532780270957685056349540782861692579648634657563028028602773090953430496667500123994560718302279551803643599685466084796635321352789872549217685702334028251951821799122755161721884944999194664697776279254978151452288789592778461982992125748338856829401096318771746034737225599113255062639183075105545229032445734374943464714769045565865302762587933530017724295874924321508920371904175180886405985764901698439741304196137184794689093926037061346006818578937279240436736659785213782549891397385426378751177744406899677035115864464681868324196178760479764832622219721376410632532789616567984735351135190587669610316777928317680530497404156337850890066953010733285381231023804184516596517123320155876843038537603968890033407544649362220644413874552906456666479305297851457532187478232694331490543320816664683305444668120834741150918145461670176770576935195644843684116514420587706461250904923533004178353877116145889125139356595063975344163782269040111632473540784475430828115527537786470415936897069848975653320681692041061261477360634017464449391174749517539362076424318173744332127857273603867938947740651086833362989163734724497174307510286453856498262516317329068642267731758911201485165480600597285555496510815866474181560316292880928151946624771630671571676971888240581820803387276415678136867820942785536684691002247326665208582680514662213608718107218579319755706785012023656014854461590751061271076485325135571908257837721845381807590332463432648432061601533374747863081025454787877381314696005121533710448440206694095325217933464870426020011830680442705041707444123026793646081517727485846422256561756065105878140715666075217503322492698285260569387614524332180400637168379785921435276253271715113931226517514740387568659579950884640267454797911862410336976223428110250849365234678538584257830485226074406262294353539699813485485159977314779439725697568771707146668986356767280007757636328320541652158817170006007976079797078598551894383612289108870328902989963781345762981854112501389496072197941413514261510022955148646003486367098051727686861754273017212447113418264649517683496143379759218260207160545130345592203591129111105567170919353920671806165982442881974165232749037237714062409646786746852448408847104882677168137616783850190555788739616898611499093866935866305549420070140131299539518063442781866538447912837789267070416835944258699784242894324066145050270475960091715468862541843111927591916680019833978578931487561273635724811005823116206487370667664840530849325444357148005498648606068569464024708550147129164491503594404209101450131264176359315200489571821867093906317040235717469150215236329204968756094658629687309738847639946278684730114729534392751322890395126363572427772876680419632271296203632435396079301072734906616110354301006473846033737537161887302345640107550665308885615015392664881239148858873243134294315090605689946147028637850469021335348021788273712003314067967048778631452522389099621752732702601166685111204246061768226757517514737923370904404623231845552508256621545571106409787062113425031892086027365628298156607876201372722899896492642952728357285413901697611730554708228190972309377262818596431284296072580874827190548222863006354653235222433012040982713376986624497627227015308204892756131369545304110724324474484362278544721910655139505464414030276793795014797234394022958553265394542232633159024520370609412661503693322349329927891498618794572941627985200682680617885871534722845472461452534924149759920078444771266624582619550541262153628560929156050047252166477262839821141875535083981204776500146849609090990451059963450215647249145917072426005330066521399055605155835979888495368552904255322544474020580795877644714724507582822331342941208303760180151540571343055887592450848740681933503097937691038050262881406348106127883916164834028134787894265487222106944489695509006481864527749469583306872375386963101959329045170526255054102613849599914528432165224444237273399080184559908494136035163854902124478635516786001772264481954714592835066451212829089612192956744058146982958663581667042737819598335844309726355663455975588985917098799665363785191616213613522619100289483509821227036122167876185858050787473455090489671555079269076251091171409792047502042949404650594516377214596671266759249475729184157949209364462736119948822354234795962354244106900718105902993538657203514644417028816180034224291937593640685082966542880550991041010345014712126198265094216035066581923894608401454055860232677937109548454624386396030416919908217323110234881172208587506281089340798699398766196294941508046383614532286542904700015854298003008285556224896054514521727935674584158261108417638253487547507245418512956840504969203601910861764175358457185884530652572095365805219425974686375168417521229252829137308542521555187023084490941817398698520132442357269591113933971781825428835304464990773867158432604855255830448786213112658540393982990045593777753752990441272346805786244319025119370656967651290241019738442246811888147162514158880164630785055662205321180909230445085623359060648259693814040960905390969774514940818528453965636648417152580565299703450071470408138041897453412552542877587240258650162900406700346473126820122384175113508703232788436345485129619173900308704588080617555635642436233324871553087658576536929045997150930528157346707342647735571834583603102842974100693839283427952798805312966548115664360114228067892753075540999994656877622385078942508170605761432563877357455167748630745514911159237966735315736753612949781383111072766997819371063106054777690041720535122190909842144977576065616234026905555945210582751168147434595455308522591532179412610995560208647865339507417621384469218383059868139289355240551246647513127187588724671318164456833916539844611561985624029055437580955229087798697951220410691431064994317350148719940805599577202628205355597564701470048906361102595174553884046014585403472110395968921070073281601000177953658076323305345934189341844630596578643615874610897100633596325166121779673346559500332540855051797683965976394589039313954611968677284920863460553894292008734361466008449364238945392994492087932549444403017985632506474462721127224406316823721926504704348399305317631706433622932963503563640990011548794929363380332080494384627543371323459454919722485884031064096276293703225038799965358507604824903069493469550194007606567129235513424675069716652414058660323822693459077954600979822299805459304227300636914544812246893947182061233548389202235672856009165781441312566276017186038658114495712514444696848494403143059833845366476889109220147835962852177614764182678380481311602333227414457927818919517828500624206535228103582536428239002015201633915270950342038821346993170511422525576192487794150174154553667479661267426214491903638057476165471373512187204362522333746032480478332111729751955879000636596283272386825361686544883663708616010170025773931703894456009011907504659517028642419778042615569645000100496235387275316587809291274423488870175958980685499746419972971895510995316061911698642852911763624891716602695417657612228634184152280066651191083141072009486507371515249115040962429217353119336948592636629687125706293884610421078040020919434587188878335126498513558144447942831256542145510587734012221551378399080754143084807845560072173367809483838019780885285939180300471097023320268837366654253413879179352169080691527639939417268997911134479853891799151452150184215589679918396235645452205342055392981378012915174532371306629495728508889894524018424971483660914660846063259637510155778042068002285225052597980687612177385057597515434781354407711906696872095996142951526461036309245292156770460252613919758810758545069775359606501254363458494326270235061755601770834575650609280006260076995873341000308301129993103973127504657363630118908602428827917971717772283222259716718766712585757723832919957502538778743827720069132544129089119435784913977950287785968032334659960857584502677217315442696581773033900058014187994203512869251858987192403702236213870098070347670726817927111675475388986798100854417117658974820344778468004587338101024272803737072053259873886593280496068334648090944695726428259819898500649393544635906948041026634468467058864896667783032888109225761782829135355517950753232876068834246032403439026306327249327638342627627170314485419235897471909255714669622932218236353397116999583283466823254972968270274996420419988941142778395703276007069765332429404432716577333010049447892233992020508520131465458119073501562455895798977663451631014348935132477582009993985665157900651828442130984117833044363826877589093692737275259576306433620518811350804539777202491630771669514539768337307170301355721982181943945689036408671632551695524714012338457925122087863229546020225087802475414020548084885866591442749364331837111925178357934838576543588139490627599445484412973736978443452444264757929355377337349778431932057400723390086698426629531239162834031621946161290642969917274617823088783232663993793866588581621236307303247225362844303901800572922269765742173508409490915691287683943026257292690066628133408698809159982621938972924961278551447658529628743119134495845215002922560921451588102390704822899095571572436897427457041789645812010785449202629042827442193008578294437103078619557671483401519510774060108240795434233008095867382801982732398103771540593430895782056086139278426616109094369284843046945151361502010206824282150246942924717704564613913822221149243570884295977325830452013840687198522342564869886155411794534014534615638482444346088579758415934538359519139122187113147096161810172177783698625012457537952433069512621894315829079725733986988540426340439872453812446021848068608553143243637653003108113064983671673081772640161751212466935217946233534390650065325012068551460378938103751243492197679489744864326479848894306852403890011766487120691188935853764323651087718767085903731195965327067408373974050175988054405543621858242831825757265466467742633657902650078929707139088526576631367188543080114248161671556237798136520908875794470824186511181049434386013916935513708236720656384163617170925605010531785340563526189145692209931519159749706839628644511537664228821928767843347871428340983108167050211237693682639476316132753897254953263111246012472885449386863511797780853749915472142372418092795971802005063741078077619612942409015693539867039610092017520572349271098046411192734092217594726753877982560480076492490407570124697774672705364021799980087790677475498393562645011943967671823565223455024130749934174852803164715324432140926430220441816842853036386733267684926898331524496086466110932821265074418435155948084990305432401109497061095772454723300635217946888527754673028490371972946329041757340617352785240718231623149220064083731700526951347566169443201339116696003823102173354415666058581705014721962778100794849577208290100125035382481023147046071972128073744154643051129925313054547660968415291798374391029880294040305579011998595581504742346364258918050853179295814419748561135048579703201949955015891795695665050347264525902711959887645768471561432767052514556803758011251849567629577584551187111034490761153203410338656726728406583503973115563686956133838504473982389694454060356438572834886167238409360991463086727511957379400316662729107890663174946037397657352925373524151565443075637105199639131455786418621938117289148013706618996029192527585535548392309426799796332495184487755912005717720503322999317963328252051065501584308283533623754860584191566764347744741921766188287689707094765855773319105832802730587031029949043913970662277396785676953309195539628936454677442702820641593434791662801013109519016069656917318177538962703112158525183515187603337055090848092995216900168066505692704446646256634344547652158435454761418202560454267840966524439429120347372224124054074368893726572266092356389545598816436460755212684924166210066815234837167623790687175268484382402701250815054729289926304791025723522811999595297420416435956295915150503007526127857129281339301990374755034105459656665122384038338293463517089753840776536731572360379346860547796067558588108751657987450175332364021336723048045585806025134352467098525299395094591360615117523307531439711838414533925864686722141808601553288357213166539587047183652606189409228571685907481825844932443828610343648842728351287734883719007133551182971736915063894725200522290974279682093201711601973858203318266932326602983885248580501859504332142605569547679472540939684671770561280415671504834286307692862485847148095881405942106676715440037706976185172863912415656092010137162343077455821863489533507524697137217678052314287114958445197144860278617603762885836926407003220028033409920644933979825078615246019274750899202635455293497836567947893322315435968387147470953699621943232151110348141193999624115492530315167444879286743399787368546924308856368502159012705065364753828728928726505678147339447387634878410342486983928478538508409156353411028861916726756645918989612334576246709077208150577715793947955957113534697948470904182740078234209662748884812366269808111378400984903585800123189601749479868194373934737958796423793177426003850236015505421799069448202560398077217647827650153243452263615275430119297758267670260366162990978521454202029183421297946269339116361607507806586982941608364606704792154095409154425370545104578798788759160517606054838866845758988208021734548445814138066961642113749432937485454907199702103463913512874910420690899614364048285082090021568703182336413936120521504064868174131889015632981617526817590476492114524796315091277110219798255574907212458232453892621470134689410979666853153143809597877020282313559601098080940245858842617198889961144460747756791196788552574610682837114672214142627357766343894766419846450274736943860440146414139835252845625741091525087578239608185848903719024132769323255528424296856852255435225326901570764992943546755175081521012703781392138858848331297686997636132148054779939936836247287879773557222446530321755287443510303514780489369389550284092545839754402993603633348380765062566769153347546802058274467785896470526228158654715272437173564316566574510803556995969791399496652656581727989479937173501646604996165176432676690118005896943618726427554750938296031108469201355032413409184515236848994877421853879983185226454420125118827412640655862834009021073149859064647361186450717047490832050664418060618580368596668128261548575235230927561829561653449848452092153535326827757423262101639443441174431578764272294820394659501674116668332186701115699055165406712972558970916115680139465801805428011802886046305116368935102089440136386524581359366307212272799183477754918658740375374024148311516675051378899056467897198024342580878662563862102700887824929886440545850014341430206619083121361802404748617822338597235960184927345228001689664858531102297022286488092913661627948166012743376904677084235793925836389868999973485430149794444574489692936174122154887447795774277853884638971346265007792474917743563916987464390760815816200467005664179107027968976140285776223746187742528744081249522947565624741921296166848424047901050872472662236550626402236420103602228962533807170616131545951390801575375682204940124207734400871188604801546833913065834787096667133229381045691190405977546578015904949427608976523709572582124910196968928090052180887906715328006080186242012157456523503966388908726196350853565471580497868629725731552578428381014646562505375097825084516140041891320229568321169060825385150443709433959478446719949066299623191225212765402154803494848219387988025731159334749785177068467960068735771216825547752649797869372528439120132371050149186770650393737732459085768757989624926443770166698761013349455736031792450499410681038739869952841016712110575259042397990584082132005777377761981953432795461929312126830435310839739406579780485868670450599942137372688110027438942909639480813332960087166609348718057138835736753213347200050360266875185932872996286068015933320076238989900925818235927786410098955509237637775352206093755080022284112043513896967552864608870041648375800615902228423251235747093116035330595105940363191795329360729380047618240947502275609203506631172563606575288220681926023048067718596869632789248742385392530491573384332464277891856586416242891261077261135131881343387318926604941489512070843840260265493995102683537830676315015665219347495631414273259613725066410202755525519619840985878430042904398963832308840577265911379337293189094686356908700593983357068074844286960500038096017182879015028611748719722384595009127146915573708306525240812726412289031715403360823969833876515156633281179143240052613646362664318294597757980025911915542625358061382833824137688448703131691634941049188509151502449714801828286745114923661049859841168606212795636180966961110781006175996309984185733289592142800243806893704932875334494640727646651309961534021693073186433662398424499735546925191583716817536586589320810720376296301530939144066026803550049458200679691122470500178704089006461124060764574458897493851129587949499210918079860273831910065846411776294085948063609576672229298068118395949522773711783968743802197634442640063896218566486488038810284330854188881971013544000971260762867625130184230058986430879982403293209701666912374033938759054591998490103526196172578782892750139872502331751194506281668502860951946126182527992373103148303404406233074003644420381199163325258404978543467183584875201646943316945245513721024662936116253016328547434429562456007120133754694579648043243412342369853036000061453759742545556515159604654248085325490189797106575804407526348028766855820530662747027709566084180248059416512192149166313105520965184789804748906832956988065137455001523557757297974734522929521711952274643320744211338377892944675622342452064327904485888486366818771128575884900452278715093646791478607441448671720415912258526308664340394802409371356650299151665593862642493359714346529084970056817617801488005269760135427567072504991690055430257566104518844017293000222153922067404161552134132400273939468958940590362720801009036469310885127036119570706457938580900261839637152327325360278102984707511605244358238120533792599066669711740246117238934958509798477349446461666281883583217888248273589596191129590778897491458813956430683336730058164698721300663122173977800684327712974332489175790806649773478169790308641553824657397221593549910360845659520106227900131625640789937685436972452651106536062867386119260688993229557282278156640665523597368198355873213500400825671354276366964735263028856081628753116397940597065399772872101741425703548554349659201315671843514914754722388577912093529749573275538950299642359031344869325858768562074091947156280464439961728599981585463985640661214295188501477109465136999594317470643385050125984267605932961391612273254630528627763712961490827567569067275783890992464292645036885151053964546827118282285126554899868767051608792049655209875646072691065582017003762611356872959019320571702060898702697265397200373239104914717015009342514273963848026890191807390195810864796462383421084199208363213158153166272780776574751126114087457924341939009382488538004169858609547268904197603647733415420609825281734032832570069834876872113109522151929025055048647890831831561337568137443426980698159238970307299713825250888735519586009607971582598632805873767488108161271772498031659762571307249375091354855581757809297050382296846333175766149608032156616787627582965997651977453568005999636766630622654322233591767997088620129007461792285300258479919050546634722090639825698823988824441032136188182550520847495167139128728135972135096531629512650330345958944698158151645422458673638019139051414124022971172889340282433917886981883317575246360264114380453592729146651609959676999557054079193358376931300868652991533366691583934491303839412748854817873932714849675827866674618546826890239993971555169870581496850516409712886220322211134222715452845189422471435767169551555728998296332111577794456401246798070542365302721942804587304421981237014074943428017692861138568273219614390106748924969764401832867750237366804913328642060345195052815148165377150885956415833870799499884810691516171076833218886048669053113161767019853580339830961091421861481269148166240890235669614731637677389624223050859299914865930065193964250122290164777726893310552933131982607864990240008810339886860922634019486922047747481402271078864815200558420593276578592675452555516852545007058981400279669539869011726327972247640240575496217808537539372217173374594343698233174463250035838578407708110669927119749703502157245295100142004083741480449794887996473025943329908035582734241655919433066735470560379966783009731460773000251489360887038775652250565434395475849914675506951548944400140126671588770843651283077700106416810150037242608560443036385017760474148314243772132432176829066000579656275569152476475036884689660130421922380097301202951322773250767135604364544402219752334423589416480033313963407309951947374393072816531332959587251768681081814559190596303884170062185705684126242688935661006999403330498977761635851818057888481492861013963205882953176871243097428104524598692400112815670340799750325554315335600298047240966569903729905035920392013509839069817858612525210939284920605193019880826832404557851703500042628916393272575542657020432852519083324605584394201148388722749251283858223709398020495370874774603390961001581511372883504012881286973179783872610179005383944233980501569045319243592607842107017200266105512721958245715185324243727413635542951429272210803527748318418602302927224603022115927447882629086924774571094175424280816923862008644998461950924544074878858493220202890715530602247498395639554399064274324712318339084691890839461811389592848315699685791780832252720529413338082074571401862613331840276147268871474009558613927764068801286283581588090550138300051038929144203348558282140038063430660751137938145402073311156423685641043518065978013191356985061338696956729349957902246039845864263920149921109275018494902717040419904884431688549037042495037268189020029145896790014508042159152769722196853022596520530738074004746328544632782970659825872952577746206963228806573576345889544463385221701687620190928050173379206225013915655914268656752938883885918938734307286307883772448200248564710537574404824826278597033460415282779473102954209598612946847905011184867818933662852372343707166435151871893193969126651952197398777476208968250857546564251385967277625693003236218078949043891914744987228325199296425936557200140881034583626587613804378873684281191405654531137118232494454840175858556057824884096565991898194956776663505624217655731125441224368327712576970916683956210680439320192146385448062063631259073505135842021543536085189668600305191394058730541958974214428421136691886625275535093221776449520044390417134272967865645079321376030803039465674280276988534340857612069535425564159111500448454944748107935166230437813201417517656828628260327162056726545546315413026536843623625995113303824147550322621313169291031272751407766635676780893986228373856462258231610769768142812139912879521495426933886570568699671236714691745439694872662048553032213168710112551856422498842105739894359491124089546622621555919307004122807479599204943039948037181874320994892841641009345034063011977569971318177424542554927181355037819632530597280275034527024276553467244886222204210088890373787808063440945331622902338898308714832653713873145358536973622418479428520576610067048014697032372201704002779213649582409453152362996788099228728487122937826909549194952876392352513972530633358683670324212073432443058314667848508811587032435214398961339509383619376261992500025035401650730361849382075194746637586937830801779652099829010481272642572093995375179764868198547458777596490220529972452255353503386943128541354695320144768264990291646142953811312945110029139168101430365487101419560950395233932489138220176731285829277163860002897749576210047751104520378245448409837478146713606756412184253689455181954801848027751774665413351865354408603745835266315829347019888914201352946662850709641840438839006094368448121642588282194256022508426288542157003063039744027087961558943934497444432579630003069704998543633738684955270290135241927981475300499187102560047914112158532179076663973786755199898144483900571167036560510337006305409210684129107085123889970337911417936124523914668872795621684215395251578924028928435499069696322343717676555533550706801493175107564375754838804884066982695317782066965508048431219735256951179220312744013824012276039343316351703388347659786060968999868402141721865786764186845506275197523948871480800486269783710825302239349927715940356454355053284294640507822052868537889517765836240679927377982890293899384050844354532577222470037592626595540773972356152457390668126447176045437748493008273000816301520112743898963983755247658221366635790788548877249349139367443495875562243537937025882531454157408698657110958576443286209336014002130610859092363137109549503834209679250487854442268108910120838600082634201173018883184930411435985593255747934824435680979160418566460121288701996042864015890728075751779303720061157399930551298412475190548899662690041129150070123793494947736195848918420803730006019540117406093564996387647787458298548143165550620728509838837696697757286701644954434524093817529644134855057896501767789686925003804183113431582119696693469342073574547413333901215401571014267506943042045610755189733977820937596031270446830062553991199620000496155194973202421071652419384104762148838623544704272687236340180524451066065795268620835367457075002863192989040862414961956120922437893834474837911377089852635227865058995130646771082626480694755347537573828991623835990635621047649914180008475596275441966929853110508747250678088921528403142647421551294657230373234418523307155116382283703047097038966080662755470374003649494881769640602324667863862994828066279000656516526463367252295795367534185383402072039433417268435250577248271962635665948456017550978706031776557363372491550482810771123051254435829564357776087863317449358396084910583615683650385159619518227983776681076453501530585235867710116788376672758381305034436773233321845003631127680123671789799381087599438831106462601255861161456905866037885913983439219342507925209776685015514660237564245338110165650540810360468387019529195224611091685479423762322885621817345631945226546814601679926978780838610289641667161148184765382199028810647723497695747518720115532489278759626028990296088152095687771821061993613714192842957001906624575754273804473969541940715350550128334926402937014442847034585443326609772086824317107529395450419559830181658298594929431182149988826693365335693126354444632168748907730407066377740885830624596948160525138133145022187839553568853873034627606104941071094039669518733253274926865883321466809463907188254202480706981175978550165493092419173714887648229821486239450545880376088913685003255897413862582809479498834429417919879627504994023519472004864022625294298864856346889263547690547305689270083737137896736273507479439392080715663487031701142521660375683229487564921650752564410229976172636354373912266422687120944980683522959261967189840444748912704587410580563431752355875383797550662054023118529086766221503892544682702654102572237659899357231576438513024763228331943239041678219629301167937382903980662599214941683701849379935948815497992086762370247891507361762241601223896045902166173379001623543923339376026826928226452504741240349981221221086011082814753745447096968557373344336191976970539263454375777900792034812141585471366930440094902424349480121126034303170514189414977274441309317052045386570554127521248758000085846626324068933644557351705064595108455079817523350407529731494776188933987545392552301155320643579418970690060703416045340043524603481616440426981692940638491892518945352672789377615975317812063903962888606081673934321021599837364959259305211555137232643522826838145252949195584674932274389452625007461304129654656345717689214614773278550044122640733975615813574919249599302336635279952216262914013779368101392146606865538635083317810840325840056953428812101272080726098904034886558431569795244864280972652614375462087507085991884355363117124688668432982188919209165999209282463000435316026583217325581264612025275946836419505744018830662474935480352721795538701720498766324928840979862499571998435227986108633042355581366487359357812508614540391133366935410470258064582933462627186789287159374482167963810898298436459435425757183349018291334651312873311579534321568629049837466461545487193375209643477003590294409353443694020247744122975956545955637415115081084003193204046191929225032188409044441554072293299841830236053732506912107897039131719948074921359741244036362232335593320502167533854056342456203089296181419881613350409020602023098469181777147390345831081510681855279088703878453313397285520852578953734486033477694157766102644368028967458880806782379448926484712553128991014945732367775945091187087924498615804723593435484830028725886334045801405908441047956180438225791483546242848305829423179041747125139742672104286221186794548434856013040412944464636269998498784445754154479503447404262617010990776813989894333195934355601583623169334089374105487283495350283920695584429837905486169803530761423080759836053899698051718613675788373480383931279648736293749168236660592634282897511771748791841878408174993933873817431861664797949595931138091649302100269669882561351433955458590664288677089275400117573119852766968805737035064175555942390975817418494171817892637272058232057737577798881894536948979318135648368522759559008462084966930059868554659391040505692432144385903276138992013288611946480218106960030403774381459110413871128687413809154604604242660979689903185242913440131869204698196098461817129384911769153228888153248951519482098615897425922603476713945539266785700825730116206265722245095405689152573202186351776388967394444251494664201833823262449151586774547942099079413334859892609112276631597685375303240838478413392615361094998827444575322170149870322698059883421860458463915669916309546042110155780707254202586425598725919926848732830639528822043544576118762312229558597422285652480623051995741465255435669485969986334346161064771038607902436534318957919718137304635421966603121689771805002188745160096849898100573244136606884087591360299749453413894923247204421074142196867920591321330081798182597076750000366257795921047033621149316891957962632776157949650849569911411187205329699052665659859703609703361016238843312782608872474516628915341693214905144881476933275610328304801593369781358293028956160104614502259663719237211401803443275703954731990262016801731838234763678433011340514476676807647049517320252413436783958451614852120917097529381170306379595243808132393605776307547171034538509595960770255194210359260110374896318301450256472604765976336517752828476062043548374621437504479040683804590601404428774651746276846737840812757822994990613900059356706209891312050369768122600677223157532331608702552491953660968452996473396763676829892727388315273089331133151704402781533606952079530915960191803414683460182277876279928511027298192766037339615880765068660462931077430696369756616720580090557510523953809987962314595382339363084516545413078490703893448068752429771965465616926989223718129044496341553717800406273474682181625429608589227684978898707469846676302362549110106768480195739570271288574232355120238196752805499340809631226691646286303480412324255597116572956833731386036770044685193440045223705718126417265433078317784115242496156809230565978736420369430641701558431191172344808311409065838610191837309238389518271303822669395596595932534607650354439860354072710873356482357469830029613453105393795232647719566816120108024774927637399097839370571474013131708903792409999656490882769381781899720746858470382876847220910265122879209967492691301253960375840161068182829010368015925551121343111178678965904217257770746325691953142302009672435234076685086164697778191408347669144528863092344700198282632592969911305268380515057627953523417774467700913274698630039533405226897837588216720739487238614706358101114628863556292709533985253890717720647943865409197205712039828137513484698685155078244668326399925519362694421688178899572881124749201628511145118501810876649071712316684557002210891562284019298579207269036145288634235807561699863984911603631607273534164549074711089116946764942210630023682080548183608178684054137231823152873526328842065610891071336477680099958046341813731644117603247206350161051636222858262712871100904651533098259402115833417863854772344057309150040728147378464965647551370646755030619052191376908271989384744232150663338596789346398003294335570136786239836279412025538326837066489424995198504093546402328486840733745625260319682764450510174426172450066671915426942727272617041995458818938236682667717560066472780381709626088279330041237362271550825229920202271770713621785119788397249744589244643538658028666763106108187108796964439281538232573454637249830149050755665934827965366327397237038426716496607088501559773665511754380014985182492561347577592449823656903218708794302649541552565668153666849398796691984142054871803721525658566045217172611847308611158201502254702254581038247016003207728520904769553901801540791005255569235351899116292772286364502680309409492951876185149037531337134140745758125447035776123779669358583294423268332483698701620969880289105736389224328717729253893485280259699973644230000748431831255959557114457132504685566098201798466367312330389358577529822816846509491804169441369006249962635003582867241092833603230602516558231542141046915504212645105511613338502271655635077580482718367939011706119761660131575525734149905433838278924387279382182813733963654507559069955573129922627672200750377727712974162459460814834729370840996000962431846499009284912276892857416950422707935386652562400141051520634181378195590426166369716753971222712942332373113100032371545262750355726657436996481853470239186555416311497287642613768547271626972428219093248348033796744141436370998184295110297670742967045262464533787769113758182350487604836584426461291021086722815029811149634495246062526190569345462030219181125860483403893334784523149153937930809092565508058166481745598743301474461853694187758914486644378768128750161809935500009824884167907818765888841871657887910928376868800077248738221542458188539702535209864517766781494695769151939401214891662279052986795554158927573961068727220369654802219663042129642441000579348410252673661544822357130505008642637887240792475244478216985485428727991064614096354964902183413353219882925907155449018431922730822169055640473443140635093272448009493889734066603342392385068574898446430171167236478501520080410119637406917502614433903448410784480571087095571920018639282086033302249243919017595444219765664342040968774431382011498785786284781597332844876578849344883388842397884450456087265865124725077570728903208144473527297406090953525496348223569663153124792256031699949137231311497083854699711491785706172230081142332294579668231694739602988711690007316720835532845921262866459504017136817243600956857084527497446569417105777686175358925343153059079273796607583256282398461399263553195630859770663390604001870182443442498143788273354400981161638873626635201259483638482185866796839829438610468782352974069344804295012644910147517099941055103517819520588031289929605719298351050349413832503112112702210486186804014501772422282319139407534773396701627960139959757249369996649531644593485364575591150976450465877269724331538738418929833070106103757820187656580115021514206165188846273124528781453811205037195431668989283991875721965045507842816386619317351284092161379719141535317381825068225318179783407503740119220622041207545748151271738947774612734611459865092452624361748217310387895300564291099624707734338815028630879039911046390144427738051586448982925585538205901933263614363130546644191174082766782223328424832802488490068115237426397395169881496534574585419368854911431034520238880129570519543657301438708218535853973827159019503924906101101531255434069471834277987277354562688716651143100808462696913251184438498595225453821445999270569281173194813011636569211336618395547985507568334457029736081717982267197346494095495277968616741938609513564304814923231045534771946243931766419114130568533999079616276250063463605327690483171695321089481038771463311202118506243873675057643738624988894371917699492583694526628094325783923645366216695736060016478137593604511639421805256812998110393812793504151001862432111641480786712258232942976204996373773111833370183030778117314273387913016230992493122982131249560115366751994697464172384680953359073771582998641316515338678798507042577931019531247270818648058533127638257420868643875800955793008353145376047284695566915743675477758817419433323821813754544916612466525336460129027969147163352446348992788937380350849352611919717423141583076246840658508276214757113260182081410842659164541644070290119054352922692281662032617731373397346132761233748526515254978443268862446952239033166561633076517038950873748939654582937037702797965718913895440643709632394701269248890242221283960277439836373465502182264938047314192256882552113404643234616246466774594870063663918756709660565381882382355052762464594043886645464258587841120110430035019020137324181314192009341966622910516891007502966709441637614455016682128796047922211656208735162264208780050399901601704441348065256377796579254253816415847754649697897969604554847809752380119075356428858871332749179951979253188184407836234454905999743671654882159296137082782753132108935198238604372305050750688651882296498977978191613434632065090016421686430572129167801133871487400907216660386519539485728161936421770674677247324817438354916070276716574648130026041580441789098608646436928703454793891643203132939479807256162549643126936386147832084181299126971631965744079487865756473277469473352293947704905350439345182561583173127751247899156435959085133915937525166960802300070989111363528358067828007547392423701655932074607914731966018413140756109118273888347664436475369886664990464296890931521565742469235527771792056190263049642810264636493985633569858450409793259751907371863756656178639638322913100743962260179624437315602627156994818131186489892419518047435971565685155347015759668789971277467569773176273141979154604489613372424926130677612858526975597374011409003031465977831871973445883709235021414588249438314020914092353545451766150182544203890032064918791001008715428538386096629724353754290987412717372846053723543646912613880064412822317467049102877873539341234599816948648949819292866383125185389824048814258311539588962730099314916199202721810521272819957119243121505061861369418956409369343719994721718617339350310918893364528476649058785876075714055359516370778825373797722170943486465064332036663910149278626084769937156536551741558658253022292321704867772210564787833870151225757415764430770484417459194485424904151900024833765691289102005695719820089729682168262203412923257532053043768857019555343884863611782991529017981362419478529439436494852375730880136167395092584621483102070920132316382328895393921281791790587323217602347572197520843322444507148024504155005488944122153942496826329912862326299009525701785020293485396307654661806806466361075529049341135902492448444013558919628175897844407840072177918484164692324541165365394252381699910383967526024998466960456064551802123704126717393001890379114934729829345149736686079704765245347578750480874525280539368923775082542033964687804852875786167794216321426626268964264356078399440826138993946021822015494049784316845176163431539858181904170247736986271492054549086053355851003400093311485202457618126195723875709281047885131469648154717029717674828315583556886288969907842225532760254091922894837590759655853776366753818974700749990728336715680356348123845758965658924750373358087952400101034954365720532394197001247371806109314090645086635870917952577505831643057684621828434762230075050100734633001391239628515390535751060614035245930879476516306587852834739726759712903313396562492265411230533728528224445541595003850838312095081821473141147676026154127307838735472940006497918242111061694004517499715746656893099068947255879351272462801393752100829784146752881638190180168324726388503438893313464316609639473452395218503301906737188910678188934669092423292435302660353106945030249401361911491762300047669243851161963725816486100255716891624063686227561853481182939603901201509359890778907295929885463138773828932057923595791480755426049435053797245284843859220293060280376889878617206229347294292900221062525494093875573977589836118993550447479392444665501997166496603759114109647842526224114552324556749416865607132804075752305265764941783831826849384788380337613332594813459831151888872251348550013229905929064763044724591579193178037797086028262311980030854023255071385296347577556352841611627626209140094812573480945247331446360313727989115292701907535058424201102172204907281256889974064070480506505163021170481842651276864336507514747408983078304733630709621108430658712784858184382871264720305871232208353494246669338812942363633842128621888153951139432468973057994046536858191539741286485448701629307438962822667107454345389915591104887167884725914185854171125613069815573626381468067254645829336414052764846116326208746935232397318175947716580518682931642799414258120392226831008750241581318096037668620666881162615141320541118277122105716230536103153697235282763342187168616763572764185355180499474107637576201926147172686269900771726959802312652705337843417743227844146480862332115273791842872936677313880494432165742822392625502742951793978438709312442633935403318981748501568543498132045430322799443420555263250222407609244766035897925408188804454629704161008855116366601566301054944629718739889985231580343178631074981648891529837933365886706053307869733856492303611943733863858907346441209550064921860588113838280992257758440899319146600846953521632869403736942532226572049493152602549226162705629244401530412655242021098163968462515860386506506596075403828264836495398835393208572092710922072501817779933058502323771623389321151766980662577904596836523858351806645538130243051760363269251933262508544497202682914824756341508561279680523165026077522121324407303382177908526556089404126917658315904522847495018604970916842207874183852007498302028092755403021232222382578270939072249917886878294124972059702851436075079350366134532038901339841453104505064268114668130815796106888985530780974672499462143525538998779546216513500002549533792825487997677833088106558192334603845133879568762234600169092198119864661994478917209709052175970659125337767563730206619751697957706504753530177076559105849599010570111210986996631679350871299094544885422726839589381519274385975725741764409493087846321615356886711192031980415581237027166647017223327113861775208532027227469967825155074887928642227989402254103997579907540275505673295415720416009352844566450522636526773126824707390819496904003347103876590953169768096694659536196719482743100200669769225410655307317708588304587394908384593014530346922869790988392453629276507779854625942615472160514148130748904571285492652247933580501009903333194812843751443254468855706778365494691693989658853019568072633014851936142903348144417954495195425800258123100751382106704491377074468679893086797050735418761026334444656888424708116590432980577229461848554951641631896612214023424624677443510032231414524369553232208666438665372396339076565727571442701281662005807587767745625701850077196860953796219126203130549020369078351998731423608440020389664549898695166937922560629700725949511245782860402757779261473809310371450779420767820989005453291356525468729137522067719886793907214786899216668881145913283983643242768629160956137782070548349583885025299717689883496764083650248468634429293994522411609894869653712790332230610634429605179487821843266302081745130874129321411531690287247394082726535887472533226871682353350564386913842041402282290914276708273101783086962796221659139002980639116494821730629470513704848867593525904898994717615618975195324265403241604173211111358622521803959770056379392913564957477196763514979212202838235924994721305433227517571164614279337453438531724131618989746164729697422652509686398182588338886051709129839898431132422421170254100519819853292644846733935903999101503151756717424207428630366067679432023357055341351059453523521289631385400757829008066083294659190631778270077592980498757654928393143981176985023813747117845216274469657848213866151452211914278134955492159508468678774083328624133254328450293753082578176969549071567427501916402651105557490874453587245407147224214854695477169603442374939633751153590474442545676452062527533314841497244501116124748853508707662382328421396638579850142789236370838871489899332504113009809906492242437235160929280206503179795259559483605532226466230904028174742338670983608975245020603359766199065830943628077146475395207729921338356547934299466237784879713552063505442793524801430817330998529757322278267465082444036772937284109801479591591638295410676154060836691191460576703834372565746880878013017654172590708052271991499489799845816434188127353104467475516936649385656083148522376213228783662696242041023650664627721027964612136590994650628728778054410797074193379010296500182512883213042101832625342908732249672051394591778248844282121753797275317792796719551722039930609637175485113366160761663251261078892636671984157092591584889280040087957430971628514804226331865100569545649409906761127972769165109892432591286646917816132390947339347538611421880231533328847855790828280940127210963986961455721820549691187850705751608436440725360501123457485907985496511002026369785259130871244157928382458414792795111311353433000265446512175437954742801945524487953136285649300065067728450458242428645947471854500833106544451418885233396373693228341692694138197007282370948500842568617717133562540510564562955538880052380450336959359952191748746539415215665122543115946062766165186121011485392606568088596494477440964238348839223445217626953450252106092728603718590706886803061223819783896666988371379036846860875879563112572376912942604319691019019347399007826329860459429889089548599575347116955888918952347586964937686683640548877708860137804587154647833839761937936007620557934975552231467112700600674195289479230741399663836889511895251822000697198766456227082293459752083320315658389197618705307791854984860951191024177499652131768649909958345768135311951198796189318552645553287694582295284405795682605820622841686168724447803892403725851087140566217041122256505639555005423450090309274896519796365797027915356840276393121259063475896550533393232835709792996257969453074590413814203337566479011064396375662345236959046917214395181174885430092220018150084771498908364578101847051680865166647028270964848390303885867836650602259828851751131434482451453876682339718657245327694595509436488608888095109515940844876123133013658219224381644846484669826028320617173646014327353903244459430464605902753329531568874267525774429088412858662776243738154677175883952905143496031039182927577684591507536326640841460053794739315200699917164604257668321911144750710367025014236738723083928973521253742206105443250842476627861091969321076227287786394339399117972703868974823829201331699772546443748383441600921663960874171878082899752640446434643901918063403209553965752283671288596476153497147667318632874790964887587183332129203348435038823832059441298690933527494130916848382921986470921031613294997093166678999152755054491909665331724864784910562638306505071824691551618860211436199626913618264535701119480422157439353645046757176833651701187797275929904149281533360152056528393736959139773334450639787490563305180521584425744018729487504838530976694333627127234954032659892188861270715417174855844330210038476397344652546832128455548183856881443860372562676823708339840506370112676308206707845758284321578578497829705248245137922459007575094174015160471821884741056199886060414567461335915497102221110281403288881500625947451876392728835666839908177231887007035863309490493913267776477455868363018273893796887744799722907955790141454657795094798985607666746964908720197178466965671425217959464961407269148067406797002665909016811451126751874867160835217607553814419174496049028500066462406923886914375576276711863838391694139886579160077098576560707014488202167581550599017205211265348453745995732283858059425692619176656102639635948330091338612913518730912234159742783511813972306498336901751479269874231916900429702269312787791198821294541335083708992135154728998498541982219596159861229862333187686698325523421891483130600451924540924752332315915958118508007433677179146156596953785558326395871264114640595345108326882127709108763342995110048234157819580369976913185766177135693024095775910269094077200627630088393463471609788046177496430699834319358047745910187655954239204592399247061978630167030245491208560345993835540615323684479217522878053809613443722984757184281662402693976748692467205984748716804623882644001225786116013955697570225662117238280959337643409033048237980155164567274609397740571023208988926613224337754664089642320134824323074461895648446595084611688548668438323437949028519356327402595089001902868291302494342265942997146787924263080824994092972374630916591106823259476385478326264613032958452545453945690398706791198466844983426946774900117518519594163051379339331619172488401644504313960093182528565042871758088148282472801747352493022040317075749545829699138752969286101560468763993123477265297351223246206695641168960679961829209572354655023476096617972688696682303369789364016227835338877268719844419021310606850194096447146682855222690567314744363533855697262447125291782420664290389950215571359248368749293245088531908344023527895975112824774932677317949384753500697263478168238522603015075042587944338515229234142012364160903171938663776552095199363013809875873021416543283602126518136464877542281342213156162650592121239709311018445979527128695586314118770003295358939329107639603959447188797166924706174663353143557830588493735108061567629864673960659710589734238787539112549955657897287784687459304333318457287821123405391769513566557327412812811142456758166865395739565433263628714931032703804794253465446805019280270384884476889720329750730051882423177784673355547241746234754890156655291249209754355696050850069040438699328412071964083682990175650526848660880501943712008076554325444362565008656369891098191695452624710585862209118211078416545625141019498702701148860518274552896898659958232416069400300260487487432398054683778548810392240306451428442254913326239044501013774399389937103850356762234153172041766169272276256237997470660987884403408553293349714493236463550762668942022244261920999093181713111037425092745566798166262147544463399377174702020786407374208661241211295474037096979043712231207307190757135726700022662237280222954355197726676472578888180681853633107089507468258211827978157495568584233009991836577159780705016925833077986022956773225126356329500952462520271144856486794143578454445944499105632488431018114148520849354173020669689628632024723136457680834249174928912257575077191457933283637742414360478145748598608018935702239264141450809275305390646049418377598130680288298006581393524105479760592889089889127221750035670146795228499063188396684597213627927415899750968583398338769749681695621279963676766474790141594160605267171733889167742402047698694456279914550368911232027938439872284465163051498469827943792730720186442005191959712650646739844372493864498984157461672731851222431876821819472256394939387556250739746923212427187960333468651180055548052926379647465476314339295145778978390620745806896834933343953243322979618444618341781523010293224787184725293100169353025546371556234122470771210111775877117285236357428865449463483529801875306383727843962098055491095327811877361890244674355678075524302577755192142075381774209184014106737125907210349145374960534738138789453294138435547921736196842054055687875492487359175083268092221112517700817334972721946977074838279670524713996787351818745854697995302828320133544605513290853178728464697703398335915946350769916721616762999771228836870041722578757594761787143375461075945603673441446864790934961886122401970286002342596189639056951773332681566107286693142128334747882276484601769738772493466215180673518559350476931453896978399100379521189579751118927160897197864198069778305808876349086930306991170086259307007830603037156582978459212371582815500314887509651879727337508475560625422487342293891271628762973617378258754513798126376401200499034154128430169529305703917760265436490277664131036284616734291647987459835843656528280900390339485195175739973804019483886053641655950564454968556318221568407313071782634912531054434198200194977888559913280848354411571884596627909522340655448971449166276515533623784370794354743512605247856207603694827393019798738349176236236336927737119339638304602563715932862815356140935291653928262057927296705217484235326664754221918771798304904478179385959829077244398196034550803428832255393046700982530569415805113217484745495328084332430457313901070949119340486846176243976014246574561705362594779902963817508374832921138024247887240054766638722631385969074907937765959228104076032641334645470044547657105491382829195417906801423285561832360195233915293658871802217834103267068481188076163651206087648041420699413749713118024915384957357878939657313776805985201169717855835398576143579117307550830388274961701206880491499906191662695354453170186343068805524969317568808660600556634934554556895638011705502820149421093798593066066628843420793123164632941975821467110592590829328182780301762215748455878457712984654017407478821715140757139020853069044943019025149891673382008087113945720620875293675632752779374329413294200342230312604317487598108416057929309709611498571826027917603751746052445971821918273406125796079025639485107916691031887264355586455026607620791973908961827956114929629113109240068008793287471522691874378138594644046222835311888578741838335667866553240187642445498580975443834313487739954585050519433741608223084090711299805028735265962818515017100240657325074972243406108437330352239558998488205259433889001975643092285524646568538321599334266772269669335996817200503873761445736423792609252885323487499253476608410956750788658233445106980966384673405347209403490151809279550752008652589713018137019118802153143937173292615353994763874632024971166907495255478128340156160692086242314371244884791763722496791396719301297852026254967344122924918467261874105957245580844587390258242718131416141536232179522568476733506579568182398051147886266967628313934961013837249217529841618625006884044251257628608014562355916114418535517075176645423802184840255909288862173885501635492043645767761963323632360292297585690763706760657422929447213534209278028932832289993090551835774586307501696679983946198610895222071491467882167199770823596620785986816551586758050225806234477786765944589183167739563060854328662767988523350347981171225888626859582361606162673261231003420708424284023875485740875116407369999515527346406097260355949974819161063329649854028560644990259719520010830931239874368453436913235812867773907559645598229444585405326230913356480077537875602873142338320200045102927968447161221607862010649448430825650500088663293281297166142043649076917124788782661464587680872386263285463595336408913675322998764490367696744648842201050562540145181959708663591655363773668622732058496463536376996886231871494796851601289325762319011940953987914071987042146445126839837670894641130540791201119155771695687721949866089131194515351866646680675821527493412913614321767444019888663716278731175075216091296587261926461140109762552402471938026268237678202979939369936754245264981578777777516336877171252556970165385028879879548259820073972551898984157121436482746297965503230843238039289427245789835153070653462288672817750500211265550342034425737579823740177714187512627806589504561827105219011015409268828649734802241533655601192969632893030603254321896766981449061136356899638493638611632717939795165475240905776449785334609120097682841247191214915448805593155306767935091176355952086956343405080297259750881373109772965697484434545274463648492376540624333797477037693275804160460333967100107868887752232312013620569759909015950664342043179052718778954292251614204885700733658095261919588193332158687947115589096261751996388107859921439101707627948868862942241150552629906431171175272713752902308091358913838119270842808888840850782968178731724348408686253605073564442071520804114721387865707632401709754450903746798020891514141846315935225994710942939186415296685780880878417614365784082412487817248958034707164649935349270926967043573760049113483260102847540843644801908333216493393669702626836709072540860615550746472685581150889091442427142366667446386582844325942075237473032288415125301374344697294970182842418283074599989313890737693151721653690266356438623965462409939088476261106427364488064984072828822844113167824544264596378077740017519638387985055275612163791486608905730200787158071724056878655243905971287535010853849706617037265015345520705522242376798964270749763170439267605339194723585253612699631321349393939582545153180669062870389159155356334720606330213617088728427524756858911255470283389087209165060912480190160971868360647704130540811142912637552393860237482726752520144537710215003278417983795450917329063875356146052026105185759447441175222090875017018368740535098372034861665292022632737152308590534630680810698383693766142973467709267293635038544618027780965236227792841448867606106132242926966600387699495700486564448098793031853254526756037079118074263133071563080693621516048243797055016551949424901443004773235199406488160347889644561017222673254076486751590901059069917552608833233582565913027524636207326698262920032824408983462938016912677848154786128859520010754718322060376915789917528168427124530033603293623257896536575260689290850167687365029141313190423196596472980898428121590752490082295371962641101473384710812111438248486879151988269680489667395790733952527581099300697064234141814889790833109105381998983101347910046844752231904701704822971413305910313594111196651252776840376217228313459942869947835966182350815223823425664957653206130975251593345927053077240604092067307864212754466971473330958729490770424672679353358168052681018287777868082766450745185152070728107562099861514089335572180902716548144772008231354354565927425303972254917384435248650874780187541366775080020587175703050201375624460647025720988994287709234301264494020135208035361897361435361033957271748205950404141280968498535724131838560172459483783700012467778225171802509225412573556396016326537931832065556169713005178800680631730676202045785811328098475544953856528277904799311379528440258688522863245821827269897501312641516808788268562660454555605773687682136662541314026124908587373473608634223526991055838001701994310498221778033093837938396122178216190079468666041796457055402188887214395720960682708305807594074263767482652786849224293704384246292589506403676197496163645430780421932869558705417539171272395594311621493574698229365737244823932236384596318828315680416368398309303291999003817997251269768012113435602505939946369377072758862038870765592359304507565396316808477941568148284326555544841668092706213719469420708754095911369285529035704557786953692414962799359533904209798041740751613128561688327369134660864478766131145863751377158915358954439413596875742357080872129525414517136997168463556625413305199496162635345317182045607171896390326923020281403502696896518047307637696468182269725403199180857732350254006119383855566596127022012354923370636609494319451843106102298240864484646822563894722925228680679534663203996227673320759635826368206743768625320972625070961068110147291775106495685821723218861794760002677204482601774575152834045628127282090914930133532030645252152242249587634594378980039886643675891979406951571634875647595645116326665941801181835591173241952180259738848535908775832645533228842659578863540518247979356275558502427962753381416371160980638316767115578590462506180069240489484855545658406998319460384647432913099958551373134988195987128334687420596111605832636401756254767723155261738436544052011248237307119201353228502272741739234308415475144505450694015767382812940013479254306008644320079251506520458608229384579425228779923681728467083737363186099640127312519691069739172832681372852318538837041685221812466183599931340093517031761067502415818540250335390314518842876914186856417605396814014851330791134656630393897701811058919570220032797166495096528987039308642550755217487906866138863511046900875110895987551672540033167696531298581515209821672083793263645619736763657351759306345630779546807863001687186691036254581116645140405590080409473716029413508064523436995528281906593818373371432303547880181172970116706674160944034491683699064023268999051122130586841194445256012576030890965029418618545171266853607009691828059338393863153091269253197507285971365566103359071704824150091415411783399848490368267705631211105219723465207887573995703707135264793567187232434579942321974473451581631360049541276921310445473052873310749927867878071389578030602421525508180190376392215973837875257470205380196162810641385691004766842293254316353114996331042867360779491106756584110812864853251686246263930133494773206168498683667934704571848504667326131480749173972205530766025772348229064648956835267405947833414448873394549405190596036132066016950259697867630728916230870556705540544174538530179820083509457853159735370637664041133735936750949303755369706728104261077919740480379922443312536707636862445666545873317916066878173039418736234736553709008318980896322020588520221614691142023588012390878280064741117998036108572556494246128220873478436048810884153857198473039039595760516439839051562930535807220482542088474211299420027417208130856551266093194338606169762018422229063585392233160203683492400575078421701806567311650175440884600812250369725487101471075494248126048981731196693622380164196620470168282998593875292941041935316019414472284089859176403388554263405233753469215918310523194259031197030344921642093891286893465057382712924382357993607959151461081206752349504899084591245735631697963499935168375329690282512767941593195845091005562298412758421388161175335914930285724377641209212517081048781165467451921499425221733553155120117757458584803575503281051207266270778875023640181708952529893791672143621922531160100940056873887461553574764737165479435589555921280764929449825863429205461309876123127335631808152316099087649783989284423191606319999906458220433688387584351493072495767525716854402258852001901361688454272739993511294381564288085780141001223219514632189949388569011131806580841720105989094086543953798752067404648561602076310701127472548757719929411102776643390820078037250261283050089527838530701525379705479546851042417160019789599497295250039864827590016181841663799091597238498899530055063537358577519767273149376793809750788331497166796660185131789341991879446160199729192462789691763482248763591615116178925335027353488351891083679767843269356424107719221214281244474124074892941632941321463078892981647344863611668400749004980143558012017362770842072317128578837187839256820750383159636306170232456147968487326768726881274034123877168290322958666206658024759961516609459857011952031805138728591559116490722748997163914990233175249121562138174255923207058827541306334633780391036912037427085634546906903859557630638792447183708593415148758419760454885936948524545385339128612288277607403629196428494587532764016016710789070254102293284906563734101459783140886597284353906772602119395418559190515490800973128531070778841222445014707863895613408104227728998803651812315711998892107827129083120792768493927178976781625104643240593718309810683042684639147211472307875635376805305245197983358729691927635357699171306976972399119419611792105509798770105829662724876725223843147853873814941823843149662957159769266370425514426948511731670977454133363287402059993480971883792091678588689808949779062889282100646198377545345858288750991951512893849563041320182082414891381393351481593837296860550558165910048508963505477373066128290799311850911872557056481317462032929638557161091054368630877975751176351438976032122996190554665173771277558421699934655764448814614817827247356387143868521609789127923007781011283336302679161088412831001532916964899491139998967593807581414688335859560135159157258201608441146283099199070884834388539448408622266014310803930516502074954705620621651039005475504470445583460812870159621452575832189586662144868184393063173214291659584802092700777450764982294918726808858297418404602704125528964931998570341233397292190720885953498605326318761522954245767060631999762326195359775784719776374926594725698828023368178376606143277342641609143943329217725889408064311781102095347281115092607537149378643820244819316655897357059220039808732972793198636021862772987810264692970852281170890335984639554612368381039591513399320681987287330630451428209057490090816867916195336516168296224262803066190082709206207798103603900250976070563892247401685694940613940874056837763636299959873823801297720897559898422302557443913474844157015100808937585149172267800329049524325772953208968638466796454750607734913863138589755066971663552118437284927004370698324215594389643712474676797477792236771059545139795232194773767125665193152855264877077326116345521261503272334464511595991556188738422899252575349436002163838395337604420844021126488732362731856290761314544014251215219204423468463861740858257314243080220985423610802500879490299459078675952331055878757370443817157315516403330741774281554141440210616079873554119157226304883038084451490099319987498241835201616709312018567151563909869561986716409316958012008211360538225665105255140910798716582484730173688135447855749895558979770831030829642348160678877735870049794558752218801209691615196117048024711564279399736540507108927248901925098483797801044063604927185131903691702803775313270155977171621026545708763398884970028115325596275671529110882649133631140333032919041055220629358561750463950654532317774996636461394736184662421753849718682656127863464014890774118123632562237843417916694493906436666042591637141849370492992367689238783820751937955947440501109245345515574390789095077600305364739541201255887789099476666682609712676037748310039781252644851204649402036763080335199356047904101808642946730264134104457173858449323704843472822342360304174607014191687343435974301125927597848230984525364544064750935017391706780437806715236633623670005753734606865271052875931872742513730733425034805334979657978944280207880815175225349652808279441497482664952270371222224251355298788034293195676094678166653191032795934010318050537716702826307771444431921638302409274673154177983561760118942380314718670516206783863412862511642589936244313482793023438848297660535063113572649127998677988947826915483543601267604768425224961259802284644205713796724269181676655547990145366361335753744672879430605491084910708840913865155864453214563637520440829023308240948014123977680397300151879658732818584045541231828830324542483415461196030369625698440045181530158813929117536315302848687542693125063246389412643552893254074991061880646023453730540807016523561730931446475935440441172241801149389024695037455790541670578078348310612386575663860665988031563718412278294437040698572695681640459905117214808295003218747946589913652531536774849258048675254881025979415805575000714092575750945586605010655648227922065982201467765217178205495745508195801990140497678839407478012434874102756583606781251849942119899026693605030026319793412429678312788111699859265432167504062562500781474124416706366783950028026183443612482142016499201529315107054096321728198998591776037314110320550669622798356146579790535524577487604920129542502825010847043715520488239807999751055309323927446319649508452104344197705620734666922909212865194456663648810075504204524582043448965626860232888648977696144749072855898461595808671116323857413332815369142596031006396113184066900558619051236242029015102937005759353123439450422074566683386709698672617405280460364034551734872452821632663963944720271353136161730109889047023085301217526639590751511723600834216197782446254995201072564853149156291125415273323121122445180022320174376573701090048185047641570056186648825005198324909264617832437640166192928379781487801104952028482186396579788726415156205187678084534942953586405515493011833845749834302660784618324915273514127923172399137855292739805984738150296216184217280681248354636238960628697434099978962090703940081357914184964191054587967437111565012449492862113302055350500497355219824459941448012905110117785155807772860019007040952809503300844466907465179381114638628386504941079327298682870171678693897856366117061618158692474959022060723827183175781715775463764957699747724141899872489519251446614614437660350848438364061670912372858870170415584422044571091082548575683378455014397651450722237422436396710417433618983096900072570259515766784122440140699516075813653846426653567250234048780426291843516499963930194992762856552223281121883871899236400885756696411758110223137733841438876491521110110496085315172954650672743341159903021727113448255576015102001365136573679137321416807990484305818704090292114086313119929744951470510262160528006736628834376041502089000557646268804326684362116372566523704780661799035803060046076790734697035865892776684640301576460327368808791128642119560951352940742424650424557612093874999132097764726348578314524491434267501289390133825537227647213587026290645234563228101615808902208998512052181666928405617871583987192637827808411624429802719328957462586985012223695805149328516536702334740607516654449939336519950108296979988192897997947827763777680459235229342743428567355171341030120208736868508828462718364019111998440258126952535190043171232193218215371992639688356884536695368502381882538611921848542623223371670427995745151181266993542476922925253590614888480025619954825116003394587616633877145217426520562516875257000874806297288206941229843157916902931368215791203254977862982518158694911070284138464111452182209721589118814833801923780300193266218955040784087638088230688972026286146105348459825257831316446140946061023731847705397588713725286510968144909145670064009217203828959026138244087741360712420182805845048151856790857349594803248367515123885990363118041902964845102533092408603649302317950923996972839161747756360717156394719113086826150491858203094176824788810311907964748761822267406516515922827396373869322685932823185851576621646131239440823202154212261065850028727147938858118172057946404130742351754949398133301820489107630633506252228582123759486946815274061809432506515725162376118538184027860678904792500800636836149969892452285327402196611101411103366676918199542179129754785487286835881868605257826932119766757038339162136054794348099328274672031210311275174452313036793771269780141694902758645108773237832248106412088722472803242668073451574193429168190845945795646361998849589577962949786989599152941818753386634907986918002868842648710149595220570613525667082968295680270993333861931880350328114210058290055098748943461475307768602890294034083197806070554536645945037164346378256827652343810352793763696389251142169132839913861895814655168512778136323677480240898850909991649610297634118557309794968323788050115571764369954357102103590051808048551896450564719164536845686046644090508563962034137227659343317408549490224841183004790224733413604629312615374408053918209314986156158579306717488065498806332945867174401910580976343909339643917652498141452280218080206008604333593184112066952550167537094702271645412413868492315107607027601492510845566508377952158145201619224591909693694082939188028931131769368354280496729885056178314099162987881590841611436643907892391092160243345323306504967175313717372750588969227284880784490216749551303455549354451205591324549609574541864091616987020690998615351649093834034934869192912303365194431451852284184667382464273293721033309011181302763936733350004587842054271719498290849628260809716057452067816724501440960676425334610518581191254812022237565967261519606162899606643730568830527360398071413187532995269447516233199326904928401082907774120342422821889775097384019371905698556569429042733912743266761087481138926867830070066910959515485916363420663888483193202135223259460679124814963043485594707322904374495684011892682358679378915954659647343442397239789204242714850350104020936963282264820894664231974170246845660594613040801133111888426946271457925373280105944917481802578220000719343280885746955302640352850476844601384419437738687365845570151278669143609373515946315396527778858595660919916380833260812392973967872952318218838702971732343357615164278751559050964382024552331860779064261811843068191299037867029297825561223272341404681426729515060325174326836710799837386294838892583256113685544400405117704027435334473519763555334143717687487100346927689559635192147718271543568814690815697006487688296634806430991130767467464288431237697097838592139867269722085201971316062071562807743892020067613134771980337756216675593077788840416880847527353495408813189529113088425242775219204470437648941876714886542642397305294542891719273627130868440236229175140519781493844522461340599492468435900117741690351902675739244880716391526371548163955937719580213639676809841990422059778091283252760932948625932029261478230503692511716275846383700177896140444458838452046479070513426044245626355768200725786616580683752071271572022595333029693460273788260086836257412294869679739605775473674010223838909301356873682684918488685546243592326528009336377121234832980384228206960741060397762084270263852380070603408979448710447451683592894711091390658450148090706571189282900457800011716483152127409582844564521058621613397777806711838489798197374306854954692528316913911704138678712211938007197924245711876534755301006747762751367624350450652679691858976961681116771167577131612877598950939602537675391349312639962056042261982726979372319288617631443530261904725919655094863588447101687793579146344379869356057489436812812724936439603990091394880703295001321876629961115549879531211780048087151322233768364611648620420487086471420080223414929404357883627526412141540958157190627235610899856948643266841110419548729562807191981898066547477661561498823400887901589529875817772698441687562185865988405060356790382601271776169727543278728576338672029459636150567753609260616012356019466939566960844586493732108504920640244273722105786823504051491603710014465770016046244740173268770165074895589174641281909236109852405654945227350121889318185499831119804925924690241742407917605071093575034662616094234283640609666772757862778996899779408370766005354248157792709122654907556210394593733481894385896188378234287067856902512689968395645504390658854613504871057458861547132191862273550193238944935773015577469310407932305203562504490467035348547094912354903192594569237551898131810593984748506675081496552202258605053678776673684278201618038660029747540293042555654986437023617429743661944059442643665747037130728976801091828580922848093669881030788356466829444905922211089804774489523304554482304800921989751491947920277788659742079155197097040588130815177410265456678342099369668145097175205390663923089979834099166257920832508714300232128072667645052098317183917572350608856469694141818252677383673357836596781910310074316945504798838282074648935448232834408412847862944393978718574649840359358987378754759842114251290121251382833123792937040419765045155350875425788185237245536469055364268595851829017219313197887038810676289482496423047389616353217485639584933372173848828997269482405942641151933126842633156321995294775360023991581779290610834202519058270149094546109603950997771680202537859641746478967250648205841730429302920502175045575743705075161470988063058412979374131079023312555332982982155649977134747015068459263453751996204766517643575912322085080220481163399478683792121997461803321123056501040811199204264267401241156337400243431317649836140348463290746380509572258242303388935069012221645058192373071736618005900625772019356370203583584249525643432517812650129006981446489669177238558062652526145121832486929061178449396383222694893141513397252046769792421177189097625113089758442261895363584718174198522401711604631456131647063632781844276547594586872074615537172382298798166349172178784339375859516752620290588909732620157428694178810830484970341897587930364599954666362853228857244176090719759724020894373779543094999539545996921396496318881275326649451411237192676549719019254669741341509010844526105709333666216546743284592941595442938337337965795461672664579116581187478719817054526842982555528689313818375850037617374570476775710861043893104492773368596906830185273773223866349747626400482922110733664132177817062230484679294672296545553898113508808435627926802839321724931860070899077950195238341430406491025484751478530796257956007710690866955232158938619600375785746809750213039171758891541557225548456713795565147637716337999363135136632730617301218127467670857090297112822264440306052567016044314158464569487493568043958892890430997077170218818042513256611754563162638492046681833179688886463197147996212292781764659943272106315703193633207417251577726555601372969029134446881237207541717108789354488574075781170026618572067756609101182227733045179924610185943258138755327636153370644704850915969448433119129396183989472402775191065130622063421378626780032257492345036672159256977119999340121352638753324412303980086092451459255683638133846617581044958245275117851990635674821930989820205095110740569102384364401579052449253688142891745846076259877324932489448360126221786370629581317305501514461992735337193828712648930890237968657524226338867163961465299145746492843651884918754759470028827581707948467387280765997450021089965502464870644367393355085786910547458044111022364769909637900812068499084809914244441772654888491708704021166885041499982595785540699883495872070696033855083654254273142561359821527324627359018040984317838762778772198961437042463862887479932939836968377814906764754477862166980693016249816629679888466504340350939794465623590708957457100320158761966533478004524681903654704786518530061236682039082278968630975521613170160182131981006916182425373029999413260580820146571792463034958888127329858604302050042546856163149704763220487742313834294475841625796281657913191160225145428683698958341752256530491280900235302107328519867091359368684890249633819341930001404917066655515771729625953026508733341817562370134315891875057242992579434422944086805892137157397679656023880894725992800108034128367678031096369882732278363410832891474740908383476318236287017186422548072597567939641226372180253174063756366569910032086943793295436597111543433484984808394420088983747322428344726761269868001587724633939092935626168691874922516060135005938397356594125515741065263775416816603163720872039500373410309728125126849450605851537254873159859708098903552445624488603020802045554357245748858464482688923799120028051228019271759666793989761616950283856249908610282964827146562225830175098371375673781215337972865077622750081132788251159076288537941416835711396439020033080169897737316362571889705731362878867952805205402124065743897110921729166214705115351871259682776369045027227525470826326081094105612135783578550240116281877180797741625148294827898263080918897706138967651405366983977251286471546057855138362363163984032802021469321264794701418528931474450460245887790712195224854914376243831474269650553355951838002595729338879457302837771410332053783235295697341146667269056873352870901994888384218480213272247972285812932696026678761478867954880637709819751789087130575064378777112898324111845986878637115543570375023942532515821749907631716236327567610864628625568150911731279630600926615958083867078215151310325991925449650932322487921401042067974724956377619115737746458782560562227125605168030229010195828809102090526383670217820324050982993368896716411175835271651659760106015159335943284348273700800452226465150978762833028954737676841416736418435188362973522487819332283482288038763850553846052893737433547084003033842378255724394928803137480584911984989528849685646331091049523867925827770553546920068269045400019327472802752001355672051194966957001863142778929308292551048729932955526848771962801753412875204896407619293932434313430515342795548372989221677178459817709416626519531790000857586129943972158968258241668637539897374973978490507288340679665329366333623179849994124751053129308767629747531487779803917180924086063606767266865537725430582444579901889107994539239443384821582487563954219027414158046240438218166069521741952659597672706195858300968445801182514253959251073917559797312823374613689737703891046948930975890339125181611467628964514010879253888894228288181573029877126796159875676081823373361006618286312908216867604725198089927477279058631439522170188001319543143488595556310468775215910725395198656408729476403327016703591663921350651833465984758353972564736170101136421352239951398444531379125024703120600414068779316579818168482286300469858447517194258252382828737342431091146745199895812132321950263573836742200445255039402898288287611290247861476244076308167363838379039417207816873662957018799704278824413850874124239265356797312930757909033400647796460897920386332642756017776638251677362315646236254417255115048788031703258740378469379185832000308121868410856344161009094333143438581470862434847868880447947689909512084645428961621695300542459535195970889385231617829432811129894351752862858855615923348921687741377160145521052075227863270311100092871586979512603142233028422958576936321942767861829909600029985795753658871468549012645305449139249793540906993767415998215085643385187535797671914089138907665882571756416969293158879621892863714581096742549435234692945113950349015965453934369591238013487993863961010375416072552104626956197270910185575075786549834416043189992476435304644809814103066903962879184523072343908021813327646416521733656318507739872034159389849428853888409375314562653028143667937993832390459943297654690746157343733998284511784775471402257178742169859180258335744908734209713687056739814831590085627809912431713736766232434607466098201500059752427192375932166445006506244054541614442391660433857652713746294863139392036614704324067677260399814253953858848962840767578122378324148888358690371492024165035815802279076049680695258976353774890994675276413859222148702465109672416982588497189159622626184355096796031045563743609882035569581592493733495023621913458047667203488176270431999036403796617128012485469211393410314457574043287102241031111463976483753758104048719350868749633456861347296527552477352609283068774338594025065402799828168388764326065495867627804212586300997929840534592195570319104410306026061158976296744092129234029264017934577231997374091307396474553327353465099189226160555359947577763471079736020177743464860471178117121792021190537149416848787169402175565937472085151358586899789082556387799772442418779479099282365092825047163534440433917935752532996133073304143914060109676970967219550334010540803832691355186777306514472067721266286085115159909417495100420229910700193758586601018773239975784491987295854132285456922696550785907701760423458775827871074001683973323459178134043528763031782561114412077880983502617119450448783024571575419143143846645676960436882799560188837790779639783570424934919770695078334784983166056484708323122507604334545772228339223748596195297327131405045228517007314804227676614178713181052938510586040217975304492158396966979003779509801510826128244154889343403118180453715412803739196210847554409642978425369554359371421482691692298136354000719469327292544988829188670019773708921759122354726765944033135285412992558783353431801400906727037007315122759906567514596866874666055627316738799766723786573828409965476806675399283112224814876705209326527630244540720937609832099608415063037773760553523968584980342256948697479085844845964568688965806570324916835306482121640644416871165315413815650448237746584019126046283512913166872472354696931364073896245017469902154545042677179333557056995161950577958967832763827622721956971994820645239683457102466741988233788339680237853880455410273047607099605580858563269092206695217142801927847743506292162805562950036786856472164358438606787999073029881860594579978884628882662504494906958282124858859596241218681905293028541213570795005879974870703310554195449460475634812939776113687294683501259623204547549056290267306081340428152628224959650001850038114017177907571408379003702888895842658333950859946871513688226426591955710071207281158075986898105502371997248431728928510779592213375641692109977120180739923849367284888138366155717204638790094702610026024818053829801723001550470553017965073926111775732881420249321181002999046423480198889820538330096413312613735247620953108094559244569185980674495905529159477575252188189495331721203638436400595855331759400393389522811816072603386153527074880293253350076559039274253578521199100025176549680948210236155963949313784806217768280057485710976773186372187131053252393283053323336606063039290008451744224235613948723062315502579580020856050071213913821036075020432761556110176920188286598433293620647290302320535158278128484329572189527370688501256689586315848778877436769266467526874688423564330514570617247220608735998182979441841033433738376062093168970664854265221800077592002819022480812943182000576071596999190443693101855214973100485445750993433467930127813930421066743651163608073238894818568407902110727290471112785477870727330637213236534706211580975799951431422510433271282569126713265360949872255467943475121751103622986308257301883370779631285301338407562267907514083457482872560055584762115524080819498993380689263669287988252637552649373345713120725483632813663348575099045329509865858306572291057250011433604614902834072124299988628917135957210746715501842304466336729158084193491290413487903888566473990847579774303231006618212615538938030740158832432095971895719965549067101665276447897875592428426920577313165290728038918843217846581543056401539786968603209381482360202717575628865399245221728990865523680948721454223707601293040279430613245437656186081957810627273380207736152309836114183025501558739002886052345990253364296849299584323077237098271379104949504637917396047423056575319331673449316033410436702372980827635338079808237435949455035156095068520490838696495975741664046355568770138572549007046581984299177402261708046041002634520335029462274453378115800045454024640002551404324816383474419065906868099819040185053860664582860424665645383654133926377161251575044937724709249795063386468940253305280642263526247310181694713894594947878763622778281635091169700855979109427804079655733776000043553360046583825610878812769967805734822640951829176537762708191987622221307077498664807660907526474504384188624095809506546598507240767624331794409858664918897692765167517481486226278786159385741845056353758032330118319057892923852575910157964204032287651104662116266707746161745731063881444177809700548429730374699216158161522000101798954332955094465093440708954094043956934955244776575374843682743599843882335760901940379176982932792763676148590240956356116186484359655919516089451410905765331976206249839497314505839850315165199325509564734678855509169697553329884621061329679422094210912626207020430543693057189764854340647776218353460061124582931443533715198338635582423926718068000692298733537749785402345985763981638495738181484452510789188951975606579919243872888207621749306615584322380364975664691225129469595714226296636945802007594474707099888602189690668479424705181304136755625346999699506158099662352413672785549085771027994007527284971315854425436925426901254811188177247830532677297131667584737257371044431025669545978188887150288306325300795201696525428139752652154993264063909864245541745279481406259369418342651204986839675818579328556103442783256625945841274201727737355483583123286751474555095263110030585822548456547498004498808102367607895114807609577006239755499526527940848180822243901583311818816830345915135174754813977876360622125943842772126717653450195048471731255656454453009530169374048159497204809674006073519563325442488089569738673305493567305196645246016596303481439757654734425278221869248063935456882289184195520280894162555393670523741338043974363789719363126714217170137748279346351030489833290778125010531649461261413532329531189052468832749183632942873616134669555402932682774604183551990422279457671112500717251032790090555242455563723780778739002458534960993962940900444557132429605863641348093438722723713787913963669267819804704416336554319447052852118843881867982685748510124403100235638654316572821354506237042179649883695657945078111562048548993151762474697654333137266013636115445659505395515202958282676839494369104089778233290478333129401829928269002424358004586199476299922806979443141995398480065469056786578890749566417553405471187343148228827230810670081444104755556254829337069201275761230885790276662921505962919629774485770816003677659794047141743317942415201306117641613781300334264408338131091850049563696714557223326179311272266001346863311767621239241331466090909582738864513728125567650093734240625299266881430585902309130348103761936634492178834262592140645245980071645363098449317788137854786069868303061241230030507425325076362820746829192114663532860927899908621272921116025461363856293006413988156820420540088156984966107453641853480858642358076256339246809495301936739646088513266813651875188482277512427159872280989087357902904904582113723003558603302168674721012747849952714654232712668167853829242319773648425720226049481748272848969017948353997897828911881262870849347565090426620405067820262527198674782414565518942702648585149770693636567978616861872385035560940069929673346723473705939495664172641478574643918740599392040729261734160961051049529112047203600704495442185969371400094634513720049373002969563876617136328079502096853703501452667032540328099406315919038073277717496258909408553321431405160001231870435590144564646414747360641818887630277652960670845659368643200899423635547150606187094462448359768811554507095860474045604459717456227143350849270630963167444018447607781557197488632330446465993909330027941321158428842079730507687112924696042192332523467095847006802368413122816320538180040917148655465466972637467680794733755015559393849857690046217112048650426889833211824040556133584973819406943019650224780708742042282670658456276569577468913011461163499199929258409780570505791932501502739612387840968393329528636352288450854945548406210380838472254068463969609114686696733215889409715907785906592900669993554858015600839557654419237504359577767980865504458439679000638868657399911754610984276047035610118051457578472708307030356983379726423859270185150443577361334143580475259209331080013021084169778413921968081248415268917782982777540993428379860947011782137099450420666463213069184107223288302517358101741369157876024851450556053561637880765197193319948669930292198063487034053421365068519508210127467315768987840472155672919475798945107695183711725986959085969404544676352782726244138285568705489027700516722769442241064062222244730338757716401537909758276928608780331145123970834697885750047661646968730672312727856003002428690639040438527218413189644962656709195034842382246075798368914136826482011901038930132402959458450272311109865108988345900286655711869754200611969160185638685663430169937980901468612040882496782511849156471355043780630115194510442422718661597767187855116559627238393779326449991317159399499228187702927182715546038066170861141492806555192146734914904813930842518611696746382064765328938756499388534195342773906369586027030263032661000952323995245059749731420722226874537211976420543010546723252166671606509141314409054563375293592675600878508966314412526250608317656337994616078048517557261538097626611670364196303000206602766984535821304547230415825015149011457839977898413703668695702649746242457109547725737976052030626845333573539166662631696994259325264190684287475190339952243352010511947682124822785326413797930298078476707829932413593968866948089532482346985948153565617353237515920445928329138081586093653680346460859693651690613449044216065620876160245815662082271356717406551099752490806468177424859428153085564687115142309780928942342779774704341931882097071508754693947383397462061604638781948588271461765394239425827772566129415538112737703590987132699286368711350580899474216629049133421419492979020884454731893769697931260574629659715966045067143057643418865287799510151076766895911660308104872774156328150118263710915146968860774135318698689118079330013584220596897481444291108090680269453702193640441725657694820231231436715222991510650081142583847906542559207915698285639046259577420827870764893382758918625745058434562027298388357781660847855507241697676015161373350330853646129665112125186163365597493110176648199203468079880854888806895153828400248404522099622515126930888600851733753643308229517413820740982552236854571826998347987250723336960770798623796918889005483604997711036558814326104645877299652799179628626950437604482679356370437684943016897584152390048093034820569741756130409130261337970284587446436165399722168671636438441133499723444134636182479847900636727469257001865484760702637192131323390560745731396776716346477445646472917737877270570500563341040111823180637073808451625287444546416015584372252465239262137139318453633123211807192828247159338876596630305452928181057917503099057362199556360744226239405411991932408167655070110384734005916561837973588902135854219629580438366016807428338789946225557495051298487684828210932539127123909183102139589798947517997782184893221869806386309455533693274827967376282165352616339912693635257466743886951993989679924530758614796192450374600958426467944086760375776523108785406699980252617792575705115331341685299704106043835290346472623073678516751688263992766379130164345251024641911992079294954778386592929420583393923895544587394595442266470598959328154863595496830042882030468446203793062459882196090607412862215215068702986717533112291050732071978729422599525170537678776305544915440359404293592377059607533053297639864118002711986009575252657776907885029913429829599445286605842212523233624806853246076235882200135418417716027380894181967410547629851604356869628592713319538245497460176403919659883573105989062952701641720612239364057359408958721872969990426159216575807782462053594573444246918902233242601493480269025416845436067077918071644489444914934596736747072044656195609446982636401685924432540916379900031114607427374597994459293010033766335477289995263564121785236490217141459050220878748947069289178392908173868467920333335571457948696828826046321548161027415441149804539455719687672151762298207157581524100186585742038840045205775382383965724771363930964318001568418463286906760675500870139571444781415343679640780484453663629786578024689228030934908384543540994287616238824650348185323985223966070263286716719939784403861229135539129536380532379286519348598113477292508523819570820757666078932203390274165260884253502817698519090728400620482258083667231837569525044577279319294292314492945183088753538238777758527585545767756565066234006340391852418657845838604074844236780581433098623419114851122190256162822808581620229756987951623201393397569451919231792179964058352652157328244713719540479185672013744920610284627206833255730859263873036079933514381777747581621096835695722521325566457537818875326167614224418935514100382199658558573018354491057976620310655138328275275155008142178197708018411934600370705457280500368703417852944131546763293510197623866605539207730978390676480911247515219554487975273801387090125094591636681874021208384215501209044652014449202517616222667358927242451319126367359609092697737555874377637200715888337513508440636950195043389889972810031119270130239291700341413551398395081998083459045003033114549822333879021724739541290849588931811887754405163363886042639065492480121440479837519939896385722956165405267962273128998305890596664020466231941709135384178552884969825036174116487217283551193772413647214634392138929585834130751453207017666486294993011292001071832871941319790550286843305421246232080448577143476884992927753214274220857804945250518243894239563194394682602821259644814825223225492213720430830467722447377334823878022010747716366419212741931929217374262544655973047840559806042301501130214298787341183177815119023739745437528350661335492085084915179963176985920822310065943834855540575264883474314117812633776784891095684948839839743594203127901755165477610856724907931962630972637644876791663378654509651434699841556952380458187462626303692916223621855497781830522702742640225618971408748666757244116329947963179416756583225563530296954550608141414223318023064042952213310871299695049073435914766942480153248733383732303721344082991587361789790872393111567399577194541629293083027962983596288683389989839228341699899624846747994023742176664522711648052197585715976261810085500474741800233170600954124212044824063486463685985664285511022656482573170813257121988479797841729641128316772106704355263691539891239791137134129202042172159194478432285169055965693637320976929027802148036688932680648105454122357610196659881809681570812800128330553951119243040597806553043611158932761420433259290737974515357358034069766960456620610238109857901820475101959060930059833568439171383200048675111596994278498891140070415248183141193140044724916225857190815677066262085982286773676324101765719873102773837197050315751195361803516662203727218917556762949450175168031446420875386756938115663018574953328218138877139863151856095791949968663801921304469807828859390821557708123603368514112132062229885180286762779994532030425359693956364940140686068308113645199457034334392988189753479792126454453916897154910675529939532176448873730267393010315746792372673060033390658265225758085457700863264601417763373132217613423162486835039099824792044132948717731177483663356285829790909829107517037717862602235813999052065294900897884784391963551311561936377690092247794609030097714573330375888170002842909669303364409490222683475046939890797893103459943794389596262992240081212092513226109848917571323666580992064547684599508282277279024099855549505425268842866929818490629562088511467779289725775182075460508497322023332211399221021462050957281752272707978797973787617104283455363644062293622059547166234616444159676623370666401195209648523925725053760929339382035211243086583721969942851794848920228706787655205942351290905311888092960807731319334489997797886668863014170601257186619690773704016921666917866527480722833467263895028445448086607505497814627397835283933288409450386869640238638709568661751954126894676012366052301798408903049781241266928341727775619394995336978492685483506183065211388463692379827013393559235851835124271906226566303579766828951220289158486315603107594126646188560369961305193332878425124919505069995909392604934739746758661047605033888963766196117123420254714601525437763700566773730011816835394853590764848754734854152992327849354605051629293356174388140358039876111236113824059700058504164465587517438706603959590827010690086035360908109901127977555007851604200794001516042737037622298442778677387246495704995925449241802493352656849169183286195070884277211152167344514387878319433026290147049774423454558242704829413258273476961145942239243895119754064685560514679222227124140491549208850983321235558581817375933639106122626486886833145661888264956279325311198169012362845237431297426681669176505937160762102140123958107119670857079366210449934374104253228423248213416361692967698797413725943997443022940356607199306734387156074589982826921668370781223830656093525548014736900001110827749547146659402847140777949510239481502456594099083127731860615183653771024757179828378325045386998565556023472763797812238311680977953523650408301865103639745217591143871707406638218795779804329987149376930947689971031942271709130569220477042702055664480897645804015375723999359541915471207632107790470682078900605944486631499396178734394551871528201862262410982355037917801410864071922264215185217200703427930314096647468290085978718444097669335049565017973265846567363199039489915658312572540433989283921452953201485266130972477872140161029414881910039572179865246050263535375491000482020393026509953928723470759922631474432752601190977940226014248948831245232313090389083718075390447110852420457766360831149476498214491214828765190802934489091992977357490107944404494628334973842148965711704413476100822423242478882485983054394525700199302328443236572274129143238548408546209338133338892417101753325448179517251081728255796691176055338402698878277711494843532151977364250922668066667271237107260951310553816068528392850808292693247174177457220936610990309971791148471083996493552310318206175084653462652503756049300757662899163495173943087584488041229572324212367357760921664262284809744010210025539677928070964202915946029674008489877685322696076762716228726277058897459243708601069780734657972848448171833178888491705835783490003077174240055427558080083372699610205636772072837071631771328530723630730038767877110990060288476469854074105277068839797319974043187196557897740122654518594660400022768587655355893753227816103687008146074680596263610182684442381087227083810330562763152157242793867730681153398410256291412491264414679644474979268548136245317492407062508998306913602061577290478547947730432938100002578839709350365127528758491269692566396339407787057306583228354457137316636135145850603492093862429474741817567130919592860376720569229492390105643951517188778921156564511541105613534738160801322441779474044311880554141140771916204455729126649566912652516154330676969185926430171797877223821521869322193290302201616691182828340674899518303069656596443655346976190013133603955434357200368593255179933718334774436765053008117404094525156752752012838299945354068439112699636988374331557105012514450822661503108946842710686169617241365488268797394158038701614129150614211089096744582725511441516027588079012548957660297175435359850073653891247756863413044508377736524333178525002898393530054787590190941901332510808917135827349643410592062143225648653740790752140610224141825563651175090849966023233499147091366983837899277220554306286303883540550380605160780650701090234627617147088001854101315681993575161826250970722472240946086730492451955055227774358044815613009895308279377128669024405704390174428151292812711290210264698004804767686294280721609841925384835315541686187950127583365457286333740903377105505506096566121530010474211954422480179291680178806791578704398539833946548328720035677284084889730257023644839964381107188311668795641092747269746495600746318524404886758935268968112083652296031413314220301281590485957175497886004345178755330697534601065606252215647123955850984215086756379559808034737085227515500970255941626477470973250896880346222689681575286277956490623437832091221558527979182063989094185997242013834294332846845848109912910823891679055377796988774602633520300052808951654714475528300594446184718551016130806179748552674370420430531389640580032473768499709664316818147619445335523536621126686936464501968056055262365234466879308010663671926324113424373687698343081145018930013767429283771846328087073789504115344996207396919905067208010613243085285022519240116495352032366181033055756830729851820529487755819382567110428184019347033076131365408791801923750909261456909008938254015622176876975076086493365745815710103406545605497171925028995034090424510799535971754129233808740920926367591685602939701779350745883431046118431873284570724339527730319625515587031081740974177021780133688893674202103455011263799989453534916035123167458822973263114830487200243422605485469451719382738319163101062179100740203793497509256610638224554341839602634286890097122103099040414867272789281036269626731510054622288341768225452286028624067984945951831910517018425572851065071065163820353393323315790093020600400648965192872958796322617758516433007990483229091893726543985247559946523878522549846586218035808489435633480143031817805825676685514174597490566271928212773003871453083965378771217418042814073705662511458631607611328098611424947962925931331359905100549138048970377153067093347653765703306264815625318486065683338234853168765618152818384359670598488438660294863646319644618571754795982426596774048687385373997296379714818715618640265120492440492284504891390788726698029880163670571000928825340869927584295461658642403767968767037123227284917212220943721828922018227630567590413986473705840466074987357409923755489760533892876822859817684102930538220803038317618567034444174658668747071395601268159747168166071147494317744495466553665586886056934965652785291976274107482057689310027141556351512200568044308707386689157079039383720555535919253371546953682838758520943219888892348517123723477670738992972837029579345501484297133308546375950223182439386999451161950429296781812311009227772677293797007569269609544957407566249575754106048255679081451424982717194536667480086920585253559570772584122540788796716643664740191013129409443791114795456153375092793305429494442704574042589581315579723278576129598953326620076468489364886518099748473268865936905762004266891559754982814604870558110580305315367504036785559351208864901966104110051690259344565904792686582618876421510127376257436902218750968327532805382731521902077807474601411143745243264584299859158333636711337439960138789092361113516865027937942595570427720541944390314263810904575868460205146070821965989264349686829567919853440964248759363632752006973775961116154361075546049427059934355246681218515391650765348982245536176335860976049034900455643384437050696145799681303065989128484372364082985348953223476837654042546985826748159254695080072760414125412905332318380327954190902815552762918333051992087028520249083105561952438035124058557541382589950550493939435673437901416170593050591940941175746203441190095493262122917190585815136317611567220590295693978283242910847840075223120716570602428122355579113181203828359041457888638853211653351629893778637355222215516240678285229208928586528824880226527299730694952872908705975129240148534310748434658927754596505341951125941209259485817727228011911507572898895337442053731999050007378089883462542375067922866500282339626155685258345908028522677643724100829604497171012740771399820217805850439199277076367693191576072422434184865664405886570256989142267153178911141681014787618988345053469294535752754732613356229593284336916197466167724336729946700697888755843428220451323901343140400091270042482272687352262181147544385394202461347038894363817587620750413339913212342923320465288154887093441192144765812691794971092676387792526390397501489797096472185942923266007138169097688489559700076680900875563661236510633903663774986567421819419508781111269555853599549525676311307410758893054870587209716481962854374712091554414617068503844909770329146253142754754363113457721762180348467163080601000648248374449246791366999658606139283902846120651351337224990696519178869801712442650305327433625490066432874568404742947850415425051840735680644888718738168785564620341168540828158130456262625168281456921177571279700478921761132941609762655485863063805521299360000539776312404939718742406311991239699158666704617421023704624678160463484361838717488848332658771580707082845493013105723816700754784468689717533419577666916742702793566720253844277295193375484873191632401412205285299917032881010282273014849167303467622733503928129658304027027742358060370825666598000901141563961943916928144133893293404743411611321749001142195737456167870951356072567732544589046643651452393831982743037261736679425259024108632652609392967651653105864359837758301475462234631746746658227888563241437946004489470222367541314526766411148773148790819808204180168474923873503839806189887804511220134272132538277249486683236908721829175258338685526507878003563564305492482476691764475028063671510136826368575859363703924775577411817909763828867271880698281354374456361835618214560030026795966121243208685447394350482538348379125466609947423078958874243668829074464427975592002572480679118618541748834663228120276004748193923142074279958090026127771481848821910709777278191644029010431775220219863442783433291637868270944374235850507429736176428937159411768764737998713979283397717732188062989549870803222313855432723397826471977454271880737662481838700773063884786080114637083827385150677606392538031304034003142167280900969027999465061571909635111641939589538964957423565630546882638311236417411689004684343821613968616075903729271942666259739810441742818002166366889805008327282116763666992448229089286617813440603423208087557611941022040176220998480173897139055875101398953537646235241093130686105290368479168191781648974071907005547755242157778517676712491348603636811617984369663769854723895257445568794650460261633445895151701638748535888081074245059226024111709782576274654328771419694615920012397678440970126877148838612805450160134708889390792182980815375749891595243974338504357211681978568328687592580171043364690782710814487804359874745591128931820422855155783953177522486876170682894507145717538436463749153498656556643538639735835587323829369086874194147080958671315835037548365922185165901205572033932240155701285499510778297635717236847476745692475319068017369446846057695337286015257505577160914556509711230407986457495231034248471746164223347727905866759672710045359617086334975750724506904423305001347895400008885912854646002283456767547751843016878790695589535765078898370916981888615570114418381039158658311780135645755853857808866852868754289880841266960486121078866289753517343392523002246392811797588063764240159851182013970889190274479944066842013228907663718991628611067369862545315002498628928790415655000932550352758755928753444770024735870453062804432038633405718437909433251091237500837854394385418027060779602893519769981490942879910418719710731084807195693493878853356153250019613519737318934186420570155381392872416036347318191050666658400204853149790910965428784084229547089661770772822836112070047717464666234499593820405058355938178905565664172554815701422798483167646844597702975771349808221037997159262086139379967950575655473021505979460188997222685522608496109194368168451943283434582298394790232648638167847293823545842963081906328645905270691832233306137359648267943774658670351882321345692778950304039018276844862006735750830939439603204041724765723666968351516904279034125387400881395838339951626278420514419734867398837030610336804053062002532200988666724019270530548777197312107631412068995485194479297141645999589059806242035756572420953272134631345638632215649826012091554687761044227450762818272583430836325858696779483937130204778499936280485308681512121501935212904840213249565277213596317267354651596901991054816764933048075714498930591106741494717163944150925437851287779850064299806957550319768364824797557511570680690399575336568325315195701183189722316857386914308530246425341785202870716344604479228816808039422849644207418369812242574389275530181990947080029526628849226453338641512469444904759034070143119281022787785066990706928357775045527798311359830190891014218253332137924246781530048636127459520476956835952131959496089734320671319249298268284996175908009472546630614342960499730031646262005893171499046638734056964924888760405640534799376140631683488437698573533477005438555088529437592757182582822037498720539618433173082718990653459372769834148625237178011778369275167128858283854021278295498273671919877004410159608014491118436592537471960014239783740929062771867576044880381306501989323063208074444962501008777803427550642703569400720163094096687824100366085515549671835565252227603252218694965637609938938065183051811317019072341416363220516455643929931714243572968219411277459582314562542887797551625282998632643958978387693513698602324458531980775589189090797119519673530235901011033191396892845053532336582609243106822002619805574913966812982220725437837243433964544236298012755063004288953788610796581993084895288531867169028565687431278323297190064565149579287026271629273584033552606593401137478934662891527560220550849941766093111583357400369484846223215191436737483014200357047945313724689414777451271614199462602366171631687661091741442960720814966411242233957960417406673764436422946800093745465952557747788240268327324182292177242740760115755733053439280086951636345219212807312587549187067889588705049675634831423376390457771562058269361666470088032542329793028346301140628252938333314112104339393607797828873200298541866918283149776218447989124557354634136394476889269401824584138357179910300058627803615546414967254470758413842376964417229388370689262552233773364409719242428285209590311096109752068148088127055316196526888804966802195894615306159214545364250940640516134031622358004978751809131513837687044061864894152540428612378261789327552744772884537799420397275821496730953821328372738408474836912927042303231748868728561382923528096536722010431460189036791061337523130435657301508792996817334403275097425765809208069500013595581879139406201224959641302572933768114481288712911105986622685201923457244531682985584262241100847760077416032989544519067860363625975773343049231578881982468427683636874280651289888418156866879954554697875660951101099803882373750147602932750225260170544108695155703742035021471413615394751049600956720829221610707579857644222257586829467387031392156879291307552277250883369989898307106873664595360014399807903955584012953251355561649964974258747220978096567689814725746725134189041333733598905897801392556061914848813775727261916284362962080416905525810460628486637792680697898657955213894265804406291592972456918055962246837520459261665536213553205252908783800312372354479470702001273421897113023908301613677862561734212171227506706142287073119918813133437802494385909656972086427223384590832413762714449595899431372305154746805394734573532863573729568171676247697450723509718468293873336216649196840502531294357058021269457820776840215618138800527903577600684609671791974334514690347924625210607561973107626658045417294976685176567135433882661183000513814003736066980819209743631818499139033617827896159470134375605023428442554272303389707911191172414355478056240857241936448456912624944768823651784812068246920230584100582462640476383582648246658614829500282908047608330619299226767514374550742733008603239716374982994946024768625137547021151397501367381579466730533847483597151437622202106529008996067449769081018239779095003450384440458838635160831476394919365540388875441489656460567583811625639500005430582395074579786051362359750128096740803638682430768834726095232149584644185478539012559860874814299305198223494368931598325252841731829233531104920827392782591712062132980017348353988317823680076252866912439384443336385025206723900050004667064064177268135892100347150413518577952129932971319515524226032211037058630679326740625127210411634278659464752796170152830281911223686134338080851514604308189054105764619175525151743096893468805626882258638297884823526552440144387113880391138670203107338707379579381957730068483827309712829959787760577983450479412431667580742619288643563480582528732686308901893760596247436617758483906020547133404057426555658654086347426654443341542190389942776133512117938622024381480855066195380364669014415657932001407047191570854967903813349467653845370463091471726590180621385747412278627249660353458742813541303661532473473343807260297320446043816627107066075075506396960238433792978257371738386014972687614751555677735106395795093689792283366188621541135239325613503589331455456074097802749217145406418624348048156415662644018153136109278561331593677749306043622433421398928881786553641197291991337588491287212639563288380412240189175673884622521508299675279292334563053624949236766171495065540934174727367718401378793568994911697838426247361825782406962576937008457855265652528186262222879315910192811136169079252656661110798376293923881091097107704876382456897785615381151911069688198299281709363262416386453922259825404113632384945348655987086805949266946655912799402170149801666874191185185547314636785024611160619829523953771377742802930173843140357210034485156214840589604443491651103039306302385113176221602083020974201571500761281999890101416806377293525225229782910558556040578439137377039657460120290253488360762014265118683513831802629111321743372349186835085011770616241648395273614560926595655820068104377205932695490791456088668882960635970965399843936268275751078721093325018023746089961715280145306312796980658493250288420598731422459726783561133266528987036538089533688086601011638762493434351911140613610935661184102498867540937059141817013630198732229497642920148002526884724397173063345648936998445741143787960620910437392715993214048357164553951682020018449851955544532580607530768269623643057082083275378357786512231582569319169178067872283022221028702707559571444141595822345071509553696100084227631162838790734061958676620871407230717260504146405973209875022454783606384117995953744380984134822862172628599829944988203544556602984166209042071461616475821238857066531560410392336354904142105906572961519625989166141453485880378729981840338509241707184910396040122448302641836193671227171457037795012016837664662868546950799280837063260042884263580647788539008204816807024907368779168229925983775413777056995513886197055501485236375060713175922240556903581947293814427898601419340582423003895376096207245367321547083580216385422363693190573329216179803541795424668916745139113585083287076944739046451975755680915682100620123032975667243856736205292788811841690044495733284992321060282694013620340325819602292563585630693014108375833047313288553161168128208796525786547278161754951464448301743399911361302152505624862279737625145288973035028317929138585702494694907053689247655109745943807804480357528322876476624462895198764220874898856502429637537617185786843747982635403861573410042500122897798192945699374138765581289000119989411892787164166404732057934687268359697233854706892402765659291096373307161674405315311164291148331791913910163546611697810235307841460008071259846327369914112552814617571103357159763265796432344643175698185240482303788191166036925086810836317203372584289248968163205931948649670813799704794185204855017064734926581064754431967784148535418232004506881800685905006846193639640954120775918520752156975315138504692305453591920054963480047590885469483827953929746588405804674637321596512972444156588831355276421971390031534723758073362377657314379687338545290841918723581750170377929030137796831571273155875926612156081743690995509030404239038051334653561890742744672876357476425170197922987013298297470135927551424936759305748738054170113193599356889307374644472587617958097124442580123289582633958103524995969252158519981577560700697297168019140560705099822082552667864466174202606858627914499008250665211639061357059729536744991519640583832526843332937583117839838722728805137660187662528673817143346705263205588091123641142628230345560933152480864614529551843621666596101635915158285318530603663879417491779737758812981873036289169065422367144189468485966602165426025639886198120054730517660568582311120735400474974505000013027482771439607985293920846292641942479108099251870561627638825379061139218073747693198688587679483249877101747186479698671643959902028308254265279660372333631926754277606862287418445041085165732078633727075047835415915731257697072361962629652119707698327731010180835752690640464542356180950476026294978005201292154244587971362039974963371080146781400873040262772339320938705172580732453608460609517091421203662432494567060962686621649971625013577691101260956189276748255744491274009644142270989245782996230354586865965319565547700366576696080996702250485452806250565740885953147947636236340042253064464622314933639075286568297391279093119341466421988033648784411475474720203309878731771442128208966082241556139037455267499845153711088081360238380657158802245888738230313084795816892746341918575242720029009701606475433440759915131323520912410386451387040292293699561131028950825536884140501318534663150950393975788477891702963035224622775921910200600441758242107572999886890860771257896581738528433856171420103508654769082257475325925825537518084342307921224901401727028217460098325336538424921125391318075962461193587957207847782261892842182901874998442618350382890980362631826001888842387001046839238029973283776750250736008096104767984505392598915462709357702276852908407140538615093541997356680016877011994710711616941814737408729360628042417290739045041295837924138625508317902042934318988760047468146654243257248178344176104880351037902761883977059211190525452435496051198568867356640706605327347751988870360040890415735423843402867606130757407565045740994815368597500828250606192040904401310079887549321267522315208749412417109716038759001698774337280639081525339455024094172647328872923352596315649231157519749247953140103573660118260848250392890470538880506405912737265804820708361374053338670285288009372093486645153994417138051875523369745384236035787183864137602460032618321898146190322305069779260206858619763652944715488091598307643891810320869472146395018382145541282608954045773006635689244432388027611826533259550669302248079262467663684272560818997912386702971113234245633269704643873894886869898844312549513958864521235105595103697118825517852749459040684898422341654125377275341379224361429384643583024699374461575543881767174880645231281891455540634378919859493935338042360415894239190601605131022586173651195481870299727632694940066897548903695467490540017585312192373935288342650776501846989899703736746659019749580587279172557062693331966495079501660014855414583152895673044968484041696729295226270654781471715225635848861696198933608101569843976631309936781815201475924001490018104689577808006463826393915082900358917280806182699411988119383234094523458898519743002728650726261505545200405539378270345548642775137887425184483677217417338001255927815937340030898329359142647074294588717659082756734028092315780753433337306148984202693913954130391251308677164863273774152889132083861043681978493956290202108275499068296943550043222714301158622200021934642351521789970390767055208709742682040582733720537940148296209901228393481533577430565897990156614787495712531498479569690517889458294485105677567069077119074568672019283774576253671324901881516681900561361768210402610120121942712005967464042988344885365085567039201992459522109583386191654098985711647930760137719300650839201147412057573569488868691588279847161473980832358257047749957430640374869864698608282125750995560197329019686387947920409872774804738979155151912316730014814738975401892978980015219138831498278020898136013602106201012609366525703592153397217178403901845364134223167015560549607594554142335297177794798186978886992792478412860567114956878070316366756671336912376724006543922928060373959791162028718797780682046754481566404167536038126903482883081299187655318882878234056417356058220986875340963043406611753872855083002723256643088407886673071645588505394604676724178762326292897977332579331113619324701108488989678817490622416267919604440259619463184682176747269015237533753839692159815928236438235285072859654773149933808913735676378596029305651782906942986852255682223522546041628923474450230285269654283257182078959080227437316890296538531058691022213736436257046512744002743255200539721157086196149154379161799405709764915619202735130336800266771920118871012271773618216750259842537987828187545033987518447797486375695523357793971487928570642857039698739686824366220093154283231478810311365506605194518050383668393876443007752429273876181317214624038475033492124418470018619824792710487317586393594846769352942150154794775287602603544760665134390142832882053792739787507793100942674608573517412808740127210400198741154562044151781809807495398052104463711193565487103684514919402702901747940977691332267629485151972835537153215528900578146080706018621696150991193230858426754299078287500198006241388634318481563216657497509025374765980443791482726146399913403942837335019818483715146943181295659549835733927531172314261549285421976356435908569510137530177279732384183718744026071948562449190762755158686895409376412109099951734350511695373881532682437231386667240217910508117253983214196739299096848495323787933716203287416895348804929316280143219623089103902985330351970608746771688650318490598518128413225717134131131559892353827599264743215195714083905429551409546776080151935153260013490788615601579322340798957359516640011421043255242989922856766337030358012327319744127816469489558839574410803674521461975825735842422851756123910670131604664627379603954155650599643039661653357314310565186477586598969948135354533625311370702188635760270143120365176186041720238667003168472876653094858259927584769229008152984227437686726736757151630914393047471047992498231534705259288857505083609572986731912386560619865192242483157235443976315436590988348109348602701961684810135113477248784057587560903001160651384692623088825338483575168881214267193291025245596434218948421699788752902968433425999088192325860727673860465507365221349766898427754061317070627703270471743967177285852059471021116510604673711887663050238733971040900907054543326124451376017407689497004655700097989090087196613154086767429802763459402591997313042674681775880261568850893455911753467969613476312100469722553118076286586558004065646029161022333323226694456576133743628920771968046857537898707081395007393604500448195685624785184294748170183247607962370188694873664316533847408054608475278661264019232610409346938332921414208988130461495154812842268879402957408444164752706306103439171060004185993073299800226952760648616822426098434151244298127911148354716615772675383378680321821379734889994025272815612700036262160534049084591523259749465945139013083965609462392423638568016698691109015859531721725333155427384634583087285065295493663299011841172293000783531553335898536429385249451445609996258851965151089587219089360740734331722797608301079670809492969704202771274064364117288580091580466687325018227814888621044960328068898302681990856424077368423033154764232145259232760963802874362090625862597024647311870909722190182804445457716819448037531712384844561198121726843776191728805795601225488674848597687160678728775324484653488465028877330309128670387697938787969161295274999491334664003606741788534744362053550931351738250744027706036475366781796598347447248420134883314596023021776966920661867783995746382580383352221337227003798446799285488066868267490489187665487059152759707871152273761149192052739146297649710573693336993032361536302072702818471706059528364005999269136272897004274437880547306422749124663219652343050841784175063171396505964750616992140648492198493151113815809704877931505309635410539286381468125660591996854050263033807793843750645711713620825316302582610102954234086717756875113621245736639768014072364264071540888004338598178828701947896630280615579508207068426410299965879412008434938836039464855707135995619767998253239427301209724721627772120925123429483952232196042922422533107673275363851815566010926645754310398848072959978365466829710277917282440480655513125088070756518774089183755173980401208791719626230601522132258052880827482429690773532628620979462446968804748962783007169117959938091882037344464975562125269261280737405423382596609925997269999481683056515793560495856993006168738979889718711620074403912091265323673023440475092548518075772940028845696331097636531374180522764898459295383030391118901702608419464824404824279926686255833646164844265685607803874012205295864639218964176493003157421998999302334340835451216985317540295607157203296512807655985928108883820721708188418334932479884458048008901243862850801636562757126670999713513120644566894595200869736156785805993303058903731399200425311748364333520181683404737890601577383188034353320385162614347828263919823439360581709638964206428323126066636483176104136164108219391129087881461029465017708022019739855254994285419018901671457593821202976795603474928511303685794670067754709871288710979142217709482916510532749393509765872258403909578681476091468904855142027896923160150026605165998981167270632461109655958519600294082384418749386489579562000220279935239016118232126965858296186124755754529478127500390418735076384412322697615967245808003759666313053581944725647129890405373299954673549319180017905899502042282260406105187202540082822107584466174871701152675771907427425051952253901937190372221499219542157652332035298367226489436500443976178605035078387289070414188613628547710683322792548657258127031416718287504918062816397115127402258990483345014924159452797034122798876661625359710318193713371972680036810053851326924013035481173291081670836431622226453202790530844528171349276530617930280461774649655600732659766519619749058861301287630774321437967162368923464995089272933358321788708198383629213438801407826518036810694971670582309916159301381368791956791741892899244103511081494828375563265625881101605059983375246666007771191848047741162181394604094078762651201456322990227171674870129544715177508493617042388060726012179181980224524015283790894729598750892747086014673238230822795150597421716254677383347554245990442053807930385686124101167634269935081940938911532271428684394637366505270619724568097616021812947945602953307076785967965749334411877160241420177095301930591209510539837401694064140453429582377595803347489669598378181265002615845142906119310866527216473822214349216917817141273385400987692157773443421283252455978402385540889068504324928014700059317327613495695480531453531880279181246151145233314848233262154678655589302667001573259388792927461627552391251421270863781107614941115978380187286794828502537379827079868414723232185124203697603681843965648793094457919369868013939232848317305143468329483027475228614550331106870841162874070877302172723554444431454066417624562714789463166723465353482310850857831932104120914742155152140608208741090227012284956531781231758787830449662374413721495112366339353298541683601451598904110048580316169232232485390179179232265201242071489993575815370890878562134708037272141387195605839158262126524995428579118026488234927487136439276251849634994559828018376363401462675672838707111945347742453308358269106723629593521248943343988598890183199454241882885380333537601483498293267034668465541855972070603893180170847067626345880521981045499003283636953285747262544383575901070182272317399887394836018305453415000290960916108388883126005617292932190796932516188539455362193463038635401519290568124394288836439467996280108479435634755535370352375210277339101688379282599855206766067651582297169842500555144575324005265874770714373253564980448586887170727241071166141470247917202611528372737701943250084010119168140483515351009845259932569515625951783221790952753695219835473960377808409910446439960540661502877098912103911953205605274901742498626766120370500610565147578517035331349462915999138344733458911041868297489231512145232366537664630954749254758781446179390708312407022262504218921069769873825532298193136633871425555100760677017927071855955235007471531398900480521533763938279644969232612407189820395321827670176389539622353893658749916361765876168010447618163405542347520811211108977153808682368186926693227032701708875888955573491203962167406188990189167316449691314533981461899721700267822786089594375799283428317487551233752294570346814628325986931981301361000634868236253793760238017429610906213989743033715646863291599867314698114773215947852808739118430711247157792363249777972869307597139405436667024822076251102928368873646746489032645672659360936945279570409565224667896076085432571870062904054239728445136974648912582801591102120405077200549334397019662958762694871089497987853039997231432160096338777985843228925803105567618304694785414937458210549983920612085111782649667175600003304612146504027707291485159278163117810190738127591502174041308309765978516983907069449593214618622596542161560212805480037357632480997899738561901473123358868583371516521367954872423435275632030470234231726506094134145375009415200045777847241727664784915808902367209667883100082756894135991312241408042392656926322528451562766027410411210101028726781918025398118284166528474941423202688854632706528149133368689702819391187140449445801623732162522918478227201399700622811725561933705223706694689029639957345431599242377767615056530542577141143160685434898671189196658955781799287492418527419861923607895410098523273159921838788910271237886777894197479972076654121569865416634199173527520591358589774707296466398112885448029252764924197951000997858386492842173279877801753617033464863982858689705070207026737523985209278193625328930180866663417193416235685962619182660364685563486339058445433742637262561746443559310129929274202174248703754797701166115178125634926333913667897393226655195204294143602146379635245940169890054205736116262491069632812908174376080765413835092598233895900681679121908174835272791113543626402135095980744340535636097968578843626715062048641702913382357653015278003522720565472192846202817164918034669615855325382561896468890618511769045068126482089112307719696557169814996061280326004453632038723484605481850260515759921140923707113114642090761746307442025824150080643587235045711019814699028225324001789626837809466777579112091553223541062294545422250768746878318087432551621260633408278881257800961215169983557624790409252970190192399086929625082534816627951603632863848276226750622321130464964211541246824219082820995352377806026958710908965484644169519273098310249785918799699946544606857444077047251722221304525927808905164019130628998980868730402427302217771002595070017120642105368615946231738053804115724958276229525121806335312590403276291189227643079287656194422204841752566255777863809684659534615863874487700033947714246048540789579853124481539563508740516268458637771835005330800621788831262600058574794190254765383645258906513153864536815276397917511672748499238883860127938502993740729021222615085498264917214653670353492350868452616510796254569053391070778521076198909706977897604011749803299555244736622066369278272278448593019595870445427184479462200431759728401462428853096628868881226873559795112351695846678018664622619028039600005361178715196787961996667611342200134943342668909910451461092595780847116844137549567931084523632071948491858417471452279349435301837828214139373129159174740103452988648664923798816820213299867889079180180066348007140622370597548966049517278557803702741970449459330433266835391124312312298224494934892121656650285121553013465234712296233660415325694911090821246170106432719230048842621926105377684750556263373885412456891013918746459415596728383352472034197759058299965918964191103724529443669250280282895397004190982422038056573220112358775518338863424742400056893877841021911218871622859861064038470847240881289605429606287942362168591393831854154077415954986527171928253771087221279934513488956191310941577216525415845985547765700785774916117915334034372249131096003860896868787007892039909287763404312146989881169722561294001011923393232905329349100933212907607271744711037852926487355694459279311163290101316939379308801952785476837433484964741288403359131717079869897187712861139067635020702710406731873970644624772706035332128875641923996184428762444748590482591916175334447061080186043724930083783683485908918649421017611141287027434663293078312939778766261239571605252254619334653359514912998035406456724862022928979234814883202035882617560698096423107929712165752609794564927325555214214375717881178816596210544333765264403066699957656075738081857515003611787116096191577093412920711839931301128995876812676434180190092538646307025594502147176740493005135263900046252324539677103060694142165789986113123986849665582595538106871130774524589018184635080099786443571818392517275726189200576035814077272990609576804607148032297613541259742870092090514588791710757260506702271102880987569136421458866317549643037001041212716805433301797207420373897033934638837431487359888288031638533895599940436824090077520638203602763160492140744226459506721513323004344129142721718129645286797746983379049525295103236714180233204124136298278404155838077769277486214468788725120086610169947862622884046848132563215089060525677353786755201566802928460852976365547156678888248967127096639441296075164093564167521073699079425490412033335031469523128775466892914069437402647723344899689432844761595448264483722910539361670877191390855719103214826519436846487486863295532816613027487263536639309917575877442015964541124289324306542260426378357218281585120884046994942469774833201652302353029318767008304405130550849972017723824778409699526168203425315414002480819690575978259787196038664555216874559062107439673538880451263207059936750546430150138489047300463833915057149428704530014859801249522667433450194730221347016004912331694064161849107353690316467234610392724936725395777657421291610719225450574990390804926425008729998330505249363845027477920016617227031889678485810661280755342090541208380082034011689468245954675642205442290594829827839012810501816481207328412630799204315097866390724587087429077575901680636328593851400121204163028332408154858393599098103561189532646658933342464534799234973317933820465809612427761368570036454869997124325312882206323532307596186651032922482270919109090489077497331208625138952479351777029555551146683165876681513468724923233739417556918477706354025323530692093318500205585974998069161991071491986802122066869578613227260611716585814018943022620489733705317770812952130076306525632527917852480717337417975387021720100144216781424159421429972778735163692932969142604885404506134636177261883644368748642560321080873314978219745725491040758059501987733657661979116350722135896070002300368935527837566357685207721417869190991060273700423331035254832193045435847460786671674010925342677125151481910365052827193064151175616091149010577892738298383507480555700206110601095804344056537655229606580187782042651231785611403759128121010962398591554423938774626685712033477249891302349571851546726923744808615357400249103451008036971522850122771931131713721331699933350327401648830445715452206752137616928312373766557241662535773423642435544520075692919158672092210086518119038068858366339790878067473343988768444944095251683576895596553720230682944448504574193461010613988137580217054971354609884631482832681643904562560365356971203783908394626503911565621275333241710259090633952412915712751943418963706607078515798700962359800752222431912811495378673426257626974260232670092300691207331005209294794984757075400326094177359863301811940434052812704204384278904808802586981767032331103356329836411950753228913169072779872699687326785527577492679404080761781168473753873473762803202694806608523584528123263965322193863637823694209659124218814789468522198212891576113127439761102044044240804098588720336227030138692409008701164233733184071621468242452484919396573637389940432106712092889319202507042358108044329398257944690132154149298364670483431855505856038369594818255795238643678247663849658877582814804173899804974443613319769135722430972262564551668736842123355125804159754223650196243021397745162767975258967491817070125574313905703416044286954032840233753849623314733453889300061519911618263508737902683797529797562632701221014396465909813348783595796357456271359543866303610752648895037685318720849039654709795942857114093325568226265732110972967756128932164792308660328110292035923655445821988885795742466910875694123171094888492113738580159815137432953541157051665496447966429538982428276035412340599193515919804409674757263712853651456153509730516439055540050991637705886125590987007066547600053798168627871677426596642779571791454207115778168240436762719560775813990695141627712125425733361897868713524559131830618564049290789421859963524156638630473811309714383667761855830357989306915056941147299496993743067895562032082496707711312722309628953429974862537583600235266437085719484239820166502409281448673678181999805266813080624668512971716613399459711033992158339844534305764455472267953650354373843569579114625775160453940270052584064995757973377230018078510914867835082170248708103500425823161728122409007984259104707691094882490438888173760110521054568434681563352642367291813503873882320268494842649454314834259307069485494176524201584347482415326093036188215928720043459290298935599063823916744085809884948307409239275100202971206035700534689842456830550956074698914870014024575801920355698661173965369572962202389173918233009764720121226079319613999935179791838833878180926404937105032692518152990474190013751995829251581487646378859124686602749221460883021089118971269269125598909788004096286382741124563231805872571843538112906415052764358146510053164309090193258745424604268978640219198556898664625384792583097266466731413238402932535001714988962530118717078728764764350126448089231236590223873868862302205444227566986584000466358013407242467517618752442832228540450969146297205947975733905867713421163476298635691217968582816988118842638069033884195643893233455042161049237670810277135968831748285864819995986161197860331446995317781352720345819416075059423314191648449001579885597513272156907061744698919344225287906438844594065221824175127664278434772419790990416634673846714824376826738336408733019054244041182615259987723133544361949695124905995283994622565616997163239508559517366956810806108661140235368621909579217031982944532827207215456921119283671115520875973447717320900783716342477564289328020632649833162181709023058918898648147586358649552136198345868123051866538729059242209440377598106645926600537668557854850952229397663101442609398528291811193409359567834232148092910908473991201230607389462646090800571776988927411031412535234611989022287685996191011198873301116169349455402078017196177540618123803898460697192779190897721246248244425944844566664556049600808984532378001899441742753490413496506702628322446096434928694667167134961617626599899558593439592575159330239369482863768158536336462982769077240633325815791000582445221602198415803990552723800450308625112547289137591766553743322609324499159041199427435008952223086791961203913758436518011702131961074095922138826405076195528533741013292174450750904924430096629902683812638135268576486896947525391383754900308179498237666012194759661417623258520289262568239173917049538863065024393844522666648070333801910854805986353885734888353283243702758999866025415142490353723196734457199951422441086085295350312650002144067399855325433260771886177700011902978564676251486922393701582584684279650156476431145693685851464762361950426528570454728176972760925422542319460675275034465791275914170912107829433584135532249083165822217067895657049658341848819209079469601623826384292241288578076042179716950311915825556176797944881933095221327790838916363438197911250301436410995956410630698459644505350667664349706806922625558460558097647252469012062079244491798109804974488144738043873420187956885664118178433097659326760031394211898666187231291815732984698599944975565410957830206855394214142411499365466641476140918867567660130722104783949712346123526016465549525895837564051639879652927699502239798798618843383407477040700096989639980507012999231985864561196714902793079861792491982395847158358852112804035628041487149253298001976094252725771734360492106951786158029234095635405245819352105934293631416943278152604814044477409290921542897763981098678661246265948891064536158708877492771627077607229715664157780224828872790173225226688545523899107600468024243782809296219438485521196876706529315137811189008307678603993195678676167039948197990178188512850721842818850325383552871001099085233446737640258998539953790916239390787957835062176961707000154127121389900950442474968208446950308317365511319834053484876670020538770187056713449238733815408321180775383389641499882105556022889115423295142957768560363693607414357319060292342930008661352838801791374144135602872829590388516343391584164220500600431315404911120107129296077615682783332343765882435052027356721817161865692789563327010018670855557508248489755465782444168616470087659796995468131189102249927292062676305787901254382182539826780786581870725127477458285269654496806936539381964717291570455354581859105215474394857921358381711872529929278722710247862916671452891655665974312263532190839166716766162348149585425379986178591315472163696678603041656819308293126670962739949749225899011394938425611034868719382349149531725912217180402072039302524667974535135142316085049270351879939696993453328732630440190286462243955046893534146043130616942803446330949956387221060919031322119989291030924397687254726001607937709050561457569611193040460965598885804724761459976243134206057354586785950528283285137804621727064134653579464287669943484629353524053893438570169415190411773222458146437747487850930936968421152752712934900710539272957511553771584342505378875563447125821494795359254171302220669823495469676115752822360603059118164958209561484545408278056558728636385224498996083140870883738449884832812622250752035723441820999291173160879755293183701629957629661934860756153813272772852181417976725290561074952031692055078999226968090154725149355919578823976035456461313920039689681888589556900920030022202781273600356168179083760869939226348939401788812273925069852793625031944538132248819873906700783878119229796599150910463821933150870959909115131891478266877494972077639520498333206842383763317858315301593441105613680550417276313186742071804291333255501855897941026624759282552648588235550154980054357787697189967030855078652989042352553266141255400183092430912622408865674641107965117588272160039765911910568731680939682014444298327176332148012850286502895676899490071861996920413629972549946682563994082994279301401501667191174300913864467058678613970502159891582131092228943241517341482982145981119243896871527715673782781214108659104674075269368036757667449659901838155392691200626095232104414360546079820381459031269146202276254353878524989887912324989946128047299547713486234716742190002553559303217594530429762984042264216678415282999518231404720666826772704728219282225206999887573825226827727425604083601878726697090799265375860606108517871151417447492781799190170199236607488800236029541646079530459332890713661058224869372348377993973524542118143656561774279301504213126960462911742787386948648514552441944264351194853003631133246610433077541187724963313654215819786940380600950496522928662038383602595754682060217083879820365369789172383776643731379747761343350959659827143400710079157991079701023228847372652624359480539796534931827850496767521078357564690060729260415313234744571721942500841107909210446467845379153463796359753160971027083660795299916648661815665385499103339080372091657791228213686333011289902895119301695725215150534713938888266592496192768301740968940675090894143150763424471479284713925021083960000187506795815661250157063214360121118097039865475258608174904668714260425760681100323015620504460324894026488248329232580275046706932327948306804751106020073111768471020037204541633149657816668488882015992640341999294074234289563432186628795369788520347918427151570711827703836418601836423978047034517756861356680192847358943384522471931244834581601800742135947175140908027826601904594117469392996426476917357274678428288267327943107119319638507290020909942961108313767779489539773265517686149595843649922101968930100787180607587673418123180036790940783329078234878427006011935474569449831505337648832184251428386542326089968063229999519264490375603369060030703490944038276760347950425331649448339896523325916549039228329291977517753672322132391265754774470972733483738400251203113694698265136773132123851206219735906310571877556621813889444567039803838347813203909152423318391206938889934336575460241403294263894023520165040888972072176274088729613803893506378567686857242478773279700017275464594258009148448508422689212669942059879604891343671881920424232074963158052127268373861109896539758697330288276076270986182282257548358083423714617193822061523107793535783388469747278192041148702580902723739591860548568160254502076234957077877750141800073562924432732426313156358299518039791351013338424376836246789026983048931888782883905472105590713556668733906835189107528962378688225200189452130628493816025117212774138926143852080400290733389100439929139007125352375033138116591077653975301942920524863219141540950388900837385805052094922952891760008397463315456412554792349548312162270986713103820759659725229196818201962414894747033265807855407736070263509278275555204706529223637760549445259454426848271289763740070080355292696017156037707934988366714962092886939645716775562272809367888593740629257512919765586714566633551086370666018194084155932693049719351307440016516934671786553903311283926834660322792959118425190652402515972003458506816797735825626062659027923466867027448439165250348650327654930575319348606556023065932514347885144314829642325803925001243027417945748529214383072114790279713650634822531504164992263467217216204288773771595344199577625093688805990844185467485966355488781215728462596121102562132035418149898542691331786771037867067790733819147379140346754629762555820802719432835123089639277907964501736406045738177044663494826333621760194804529238557669257481610769235278402489121404334210429849229914990606056300151105196513955276763928915537281079044533711752407512608374671100289799714115960961946489344947802884082995535532256042276279551419534866613301392409161723803734367076909600958406533479181546554330214288789437635615630190183810132953839206595973229710674537667902712358467826041970857648328761347569639101608418552826311832022171302601765531529825240733907390564334405784421489589504044427638439270036744387348420329448289227038958303884570512212489119591854383414063225528197665016191174648539972258170904092463284333604008065398588118748623616864227664813971068168710625640167041887792025985664625972388026993147978127834598152288472368592693083818804825684192311954223250126879535549295895268019149997699716811092449565556659030510055148761540927666938404185620690801352480789703634375857506346336699994047840782714565178730841059381462080939227012594989474481756365619231357058975346752566504893406469250999241751837791196688815637233267523465338935196759888077340394561858413799766050283666195098669653727626138071110403514526155290161158942979556178943253708875981332293899455675011554785227112846326110078729890102022734877387074897368314947593551365248595751448095084972882851303544369552212427700087116990879037248170406033331012640656935428654434458018488695602841791051284073699200865661981271918228272641732965748864624001800625252437621904362380098061410795164523703863785925563886312808130142330611185761161685007415354441489313481335911165427437021711964771868749743763258854081145403189972818119117967035562850080479963347387778504849029090668059746352076492526682273029704718978368028989501750429573480019182377493951390611448315457658608074247857400090975550274567803819468025855859111725458106828985864412005331761025257368236715040016021607428821923548707035945832629858748138967285640620106081821319100511352255358394159651822121101034684699896092230978646185764229089463871397845209412786124177553720214209613226547625900619775071447160926869448045233178408247833190798315095592027179776612897751472946973233770723887090606127163619635445782142298019643773409955063253707325758403102517592905549713434236201614639836032601003635397304681818780597746438536143227958207303082411239915817427921961330005155390995268231715779319487595207457664890076029543758800631320467099749951436707290581043654660027570305981210625217244537019075780151279951962089635627536442749642577464618639638436250064783044105599764910066123909851577184534184657924767084883870476244142587371064329245597599127489649781687708178636376650831470500697664583665345500027978227895013699074527896950280723711161102389655448521470895731881481648953731452102243670187717277860119627777236495427119223315707523800879577892483601506949920588668676092548725841265664710185200630153892542106906188353976688688764890909253600272640021356128916138041611066132044984174223735702035122146294670340186680198620300343114265682576026187435615262209170477725514151211211835232661146338043261370749463714445988919395257100950664804330887540975638764669777803077949456435211499542317602584716738971087814987980320426843102445559678756307014823183086920342704995239475865532528026234697819142425537232402296118592063852794225373745525349581733383314040976440367521949371555027414116574504756626202655584269118675700887141116452671640255202463762905252885974646320575077117838372049015228077760966014894015635252105569747886847793267611005949800688716077816857410589851262733375230456136987025777832280856666504388128058446888032693956158055806394968609620851434687498066552763385814404400576363839401022424194348991171547404461652994993856987338950935265420938757133141446498277897571475649718774151862803281809986572382822610120229413113981726741647067253906620633662532648739179293147379082088204399158623406841505640427366632523880538833218076415302613784538131404650228745349238164261071503628646365424560769987987928454922536301271897661566025603197920603554528686234496366561354527576987404675060443366164067573581848700804000444967559530715594073876231279154257772684451422982781168019136316292060926724530284879173359525246829325919804236533379734912246311107903739553215232744944070336605079877756490984059311430925516120702986451694595467037917155230886489875539720181960053601160723485592537847698353304286880306625438820462011783402757721549168087188339454027957460503671058841802609112631176862721560344995359512071738730913550772660108578259340455423822186978838316628155539107543302430840624037620450267787716880765964600888845881726487981725703152840602397226062798828012033348923613722621067601065955005318112858236123827143039716330188538190608278778740580386197008579319052057974336578311433518407691591562692708808632169660366253235278750346209192154628795375039039465753072458808876084911724929878256761704027829078712949616411735527756305274097929433206428982305570269227266084286967866771710481438455693186451328506178797020478555685044645802289304489046301977064582308221615559859983633170267369384861693981168122125973406876329808464545037667140084960630971483252409933290430098554756621169261084758629642728172574681876184360237306420356889340635776302596938170753943173657409977320179117707771756006534729888056105471467203830361702594562572475505695606535837036683896986387258452716134528653052813592278465211467175631991205926259089004517638340349169074928527776876452579925904885678680296743750061368334701325585385888129028354900809200797547550070637054035295767106489593705930251627881422431340226348648880303751026319953251090006473551157824075075411602018717736441475396207056024201632963958261499894770239543397316692706022055660162036339713733922354911173890763462983545653438830791907113141175523166129433510040431556049477921605978992445845258891909437090256034163875740638052124104733043298269834608454437340401622161955592279496633606250718194433677559640589225053809349686501622739702140069692600114626519106524442498942027979867986390556740722441279294574779653548557743074523160081660038680417173884147332805555050264838266400725303227840217766951911350889616298677288768712617650129800250077758139484134587502338212228454732235693911388109839906452482469116828235875347628177244037634369763346965817419849455099434855467786638578264651045588846618352087908857022251847676215182419088302753092260324860883698703913246743349398317918626792483589593713329643274341791383546261154464054143965543697693459635000615331450491962498573974556078647186874290034397799246094414306498065904203374620676742910427874335159001975053947774892710462808128015803674776119576383698908452994472385274313476207959122098563879575373765115768120780673957856808858445057054121054323742526903025372321276663263113315992557736543501016098132197532674083712448436039419809581771375280741499430434028881676863297127600592194602536382360450267630604340548674806907057035857277143703615146391721597004689792020202355990888130202173787546711531762605547240322054282751162181891197742617763036031206875868036867401083534796142724217787410604086445813515971323399916353217784520561875864866149332182406661083151444759683621045666557697437110130653763386282696022740960809747022934261588623729716733585663390515052411319309917398822126070936439984000908817826211159120709811616467561083638620414575516639088225816210598790704558315322151832008470668780970190528475742831177800126110911033619895893902696747134426309172025063180359680833111176326710058817028319150266858330504415182529834287804498463087765461269449122930909834124155875457922941297500778405451686919908244205376596070962597556036134993168269433162669428376053548449400912791033512613766033885648940912632090823511348340509137846758711698663405476489763592970598169214532924171388386571769752765858306808447030256844398630210041714109256100519020111565568977324598257560734278689117527834536208559377174143972941961408511070586091922259851508476332751825191721725855603875406847716568069513337320618500291004192452988918634283494465474525644737564452971484312812583080662654917997412374604911810192573565612342534765009868257529472760746268118648683717127592483436807004300140264131668965275546532484100134807745814838799460806581009018497700857514982643556996892071809277898336115596910209943231370629145038540099097032479343549219535640771841789960012383910826515378364614394896064827737506423513489973983563402396769308613714656838972744427475591394566247032024882530610393348561031511863286705443884930755621264394430782793333823330835749655162408422383552430234724945275279249979124784514840217595209168135723846713777522346578262762542936437314579879770849376959000306165650413096145088225041177116724860445655678167802459784875559412759875750268942262407598905830612133750026476665281669366591036365279379346573201557880134528508240247176879394396983846944923618790793267739506977148743847782412734656392375296072521265606125252301840554112838133080642276838852616377382286573210574923419147252972816089696385362317043075130199851906461360163349676345969693842283821805595684630480975138678414750071034479058559295338655944770775652867339167895193818754648174300124969788032843636977060948823192461965903557922879429112309902239923149008534765171112579602189806739490114997395288331786795596974567774437156581290873068322991788117034172753004861910990323171774762214106813234399619494676903339296493448134658210130637362416624277762648581285781470687365171701293775285175965617935703525887236200661603391101720191470164356892546088610703552924286995882275193484881682545824721283350413329560218088518662906829660721759311109690316950266623321832958076527546179148142876017986489812593427586638451199779120623345540343476485300350365206619252411413932354977850387294728098049974053358881218966048673407092465784894488065521757248798273990077919805252246254777737463064163641510035843152410172427585458885792258059450587920804251253979679707444465387139017681334577526738729515907304424896278359106567316776763643509734669597612014910782972587945299381991892919499150432471919722045214759472864815320664473604454122781725873350123036096111419124423633812697751873119722057162820612171827871395722420694200082691023874380150709071854122650767993904668210793217005328729422758685858219364360843036094084401414636479044742846518591215578216269303963290191817194890240083825912162030568891459046265645054111745452554904086824747860744013424281558771875710523965930076602596562842819224334863371201126561186352396124257755056367747633101209095990533768365934171890683012392523121437449506624324695002188348867709168977277409228823244462334988969822032951951087647994893345035418894666508538286757902154778759087116881593081602830399973797366399567773436956079688652987224846113553300942821716319175337968036216420148288418839796554157218368216122912095621155725140081954807690148738223275339878624622198007700574138266864837487932171006657387971394461494359594126818184892739352138004462545766668517017329826821091216698953307129766098517828209931816765149518656766622771959171271546236296195110288225680594295228580647422986841551082513304415047573116400907187822788171985890436665681057321291308408844294751943497378747224907124509889603847014720406864678466954482754394207599519647346937699473301486097627676632338542216529701052610157401416192233416548923409007481169674455349676197998142966816300970811153564971378301405042842483314813016891322268080375772526388534250096111885278261580244690238807313158986767165815134145460362821458878587806790152767225435931779398687418481043406602376697951858949825024938029000854690749093801389840310670238435719444144057044068942303944153388614612510165942415433797502059557294389687120815116209078599992559402946424127269748748742524746059647310604624807012791679479142588665119995295965033148763097901482066425012476604191507567558903053044980867245846314927943895876931750082167122205740180051093726210659210164103130823743227042988977570223056259901526643381876208380353714337936098801516267157855862332111400874167212497309220242557960915551304622274943008083412535593143415736421625432046643120645261065825661378567895099776203555930989190268580979813265228016541657650406316895106446429518983923430612814175163154448867489203019474855993269235203324895198076907727238432690083957852520464418101940507061151032762825240647060852510900627330361139650033178757697489006887339289757343354791351592154608514900135916514266665535111664054209042914639126015671006614076817099316641216612620225384975770017146319191886894861576222784914863423336705838211374110719479579366279844038149420078369168395534139691175332724720222263796223537276752687055325421660281687239496567440313327338899643266945242244929590643775893992627688861314930814878026164675967699852167327297564426903141333789891519139591344901904700866795164240772312143474925768605373985916061263565219109581494479233501151823237877183044025631881061641244925184339420568438683742067361429238882683632534599483389157777606946749171012788740274309676176078754829397874711517411394115004839041603816654729881453081386712313910083681234307282162681880736266118778409154436211953752787497945160692259408880164040616234897386286141554593916946552776333916223106380462764642408114526088588449953763558094937460373656544750118469928934394803586371104235013332076704070438368665336632894916047931508835425589633065761589224654868406511052381408808878804853839465410328442379774744606717664483002484330338921208866566358630965079344947387417944717479139667881188924036371027101711409998043363417279017724410008451849374882268803619158943111099236389955906427756379842982762761569984072375654545576256211443716170036248024501258031100881893021173028236877834466244536941734743154528565150076146226240727404075250642659765290822086888624391109823217262290303538706625921987708207113928130087043506916310696558986702288014158479034061430945388823553591385760599551103391136831586140541694951851309276445922535089969675431808300322402536429299976196086078520567914925313499970341510957263808413490902805561642936835172343951743999323063952190926334340024347961081721800507786992498219549813699500498687366414156258887675009976791600028082822696416168712881475121402130321868938973283411575932193127213617700647306102967418875570002672720670879903957941362964979885086700079431701957858189402179742576571989705385093525391402424239120862393960636237613705769701860689743928422274787003175144289843913706410770212474517943406353638539819803639162641496498732426981966833141163259749144977313091944330600277289461579473285378028287658669011515024916267310905013346878141802294127552118483808235714144170353412126122158860564841084105012514673419510275767190461173579467348756260103759444411653496119577277748242910827894340453695827666349385778332834896108027607757160717220583698619641604487949301558125409261092202563056425606501248799863127775322794062944976168112839399905370773473621974115155732003844452588556488511034863477447126997449281001861861864519631436507145251959088667742784197170871610829421729826748455072965714607345433194761642133773416293434985285238944702734160890351820344646414632583637771516428457168643899857024362847475264912838664053222095347447365028437508330078043553640925415672072984672523325649925450965241125346211359383911297784665265457168993354471527681169371772937497984126001160711415766555897368153104215575668254393215408530289814695468789675921131655421351882278653627215662955757689760478571709431372947004119167431283809901997885786160344466488623478031548880101877956489560785870400289811151671941535477971130800168410264226519555034573285681054909651118021958072873083634881655128669317815167150798933950257278628046298290577929019585623702363613678582709431148738482874820578332525313967587700950412187158193827343766300077149450400794681787061256724548588735338378927412315124509427823470737665625056034235846939005096803128543022468983668406732754592631617671915551500451111138893976373184035246730242019507252474590928069483874340010541354952292242501025720002910032899226261009641462657407280241265760891086875715090956338579176528068824832130876120576205365654945461643517917094007560937404101316611836649671772774089156910725870630349569337614033054570329228334803314559054653647237434198022133260560049696949908971862729418133418445752271818397061322548485909739815203279072807851757724725999660141935176292723823659344805649655182938070287438161869983987949230456995742744217408935903524274502089257951870549432914605304436652394580385730633796614923830692643541875039158545712964291200837805959289641025622085406212170041393110599402728616020928925934315094066067672392035765889095840161390977425958940488534263998998873299497561198595219705525224805523140006090276635861423096661987294316367795234109892935438169541175856855165611889306895867216608487653929028294991136179539137325498240053320296199166503502644263619668270775395709119204874419876557796867315616946406709968808742469201129767279589465684234255268116196276901106319181291906141541535183705592691465624098988127114931165430100811271090150554667941704813672330015094392491804135696763431514960280657301532486091320375566732115544879048045184731625484188367303328414088551862280411303709282835288331972559076670442338964035777661155954277782830766290936241286580067803774619272033894977939902083485926244273938888750993256944052353604699045213706970747390726560861795277436002632684577582905571567026774942930013072509134925978926427169286226191388843627095273462474959339187395811027420096234430206701065308312028257166469028252156873372324427904411266411227979481951535981847530686761079807156863411613792929160201878914894030937593957257629214575915919117594512855538668190134362510262357007403339888063479233686867617915997737619362508998117619300532382494747521975671621443440489901799990843473982631433011206838961595125696025128122013994299788211216525595406482074202851435693956618216956632903382057054536159284751008899456141780203360304120433308818641560996020661750042374843921279539272094841851566117343333005560074876135046471441591218954600615406589079387820369398343555686222160596384552519527974787558885665451214623866214624442727545667005280606795864257220979520380489195468150555208703284078400684040885565298738450605862299799975791117616519488824774324868125058568388180581076389840635892576554850760048165383852868247730716292554776852222792082783328509044109772330216512194472804538328254400025233868678875148656839873747170365557739447967929683967783760119853941758274086509205014037973083852474052945360159485661835275590454492563824390285561243293741299314593058579242493631117077827446937651986705280571460167926761313968671331201525871494525084636324660387342281937764517581120616974636665972510390352998369560431804700756461292709590919345139230877548004352087187829776055100730144868699338361004889606815751127163930263439081642978378576964476087668528649851761201734937045799209351666643294896068901619590904528599641059126366338229262826906775284490308968471310374442313464862887219633458254633986971759254596274733900174968470143840632192521910477790357649571418061310941907372408178905261226760597268430010917673925664863458944196090957718035487443508539436533928233413300032701274005233838763893520098571555086028563189642272794930690257168002079610973713753489659896923983335075282812799746824143250843103280132779853658882451780057635719915793004506484472828526445961389200012599083399013595558853289776746734415796555984584702393752553868177217813655312437246767051126073176936495776080253209493877766103578858460376631522235242672002555164115544668365658495186086428053913977116675803323325337256434616904600390887875025553489560139696617475934691189018967240148656594770943069990295204926983423404224907162975503880844618810106743339390752840217285588154445449481536955879058986347306909463276542760018751204785735540825394808325269495163974271836392430439543515802304751624929856749005785737185609459934208639811286391566528883876321389348816925833716557630078499968120797665441809792056246679315333926766552191022882982669071375178314375799776197047871464519271566735969275488296351799709267228517434675155499725537596166441677573676364854293556096540380232457659333847394498679137679765690360646335419025390675027195464206451361209658731035371937819052938985947232736993946881853639430163765563163953210874724583461084963630364970979121067131922860223354516334358562501423979392527911697290043298488196939584238337580839527902610587457565490551531395592071293905300119005296750266059984139110725049468972121807432107506510321187969544651610424614553024371420286868429183056555659580608192545164942293565982259205797465978563952098184316575300216857740151455257767609344378852321721571956429905477066411630893829065429344360827488494252331742814318367408186809692458983557777386777093382450345915557692913103107102728881211282523094359006722330579115547093738709983996520303983085147469219817841969800562806056193147994502528023905385561350247266245282865861655145749969952900640644402196029206606301598940985327502779487917626627855987665772401740202423429872458104817420620078218409507633802246302871692257160885689692940595777967545373870644838294196890369319093196130039197883174433661525990943236701519491686682777639451263149953355718493701026349995806018942051130648716932119626451325150878539281316099133750333385808073567451005595708310383866515747774955572120865147323885122398498887518231502749345069253552219929219621028260530499631075355330705722955162116627706892728869165053336616336842370973970398411350125137207636313788610154844216023270706781402627388619133995218451357800641035805092771337019293851706397315138361824499259088367708514438473384454041760143084324881812932791757221244749457959119723482057739138575622108649934206066345536230819519967316408207750290658713446338255551433337701350027685022423987480789793323077416338361298717760113198795352679261920593418131136484782581335121797580122185714929584023877679346416187686149228170788286724827744036267026539155724337819952580243755170124784008912202191772992174361615582010473588982649886477644496013272869675457913134345779248532022592858582759527076065866066522318252413135417850346466018607377988083880536583779722102511617674941686905159509434889770625035750427829571113848588753861460814878044414831198090505207190915876841407916170877088960085383426183666435034835043116205594819305371441904674334574722245975025162085975900502536066646835517749430900037769106210725285836103676099385274584230549384816170844021811209618228984736472801907482405739543247583138808352860800719618339859244582044468206891736456189832315863541106253674632172916010810804185896546825993050293781539888153634005675251529497357328605388959552057762449898637058971714868269599107842235416429915955510980990082570974952332192402668254023317087016716284934277607644259453820774113788318667989303329916424092106637911393909634241212722275794364271521527144087454177995020265840491157417252832254621393778931228824354753624405563591735729117424544111613326815530413743646929053987829772959815751081676967911673856915941132812405685124588856663468862133681417111547288492223340111427172252511306730095806778500907961564914361514853978973162712960402242672665733310287548936062537315661038988078927531070040329407644432208859586808567459554320689319007685025291975239594227943054323467446280248855243093033195571462000583519617418414301234798814792764535654893443783701416062281841133064741382523633421712323097225233443024852377840443334387284720130429515163536869977153778791824038122953143445733743620365970235866861464756613541379520606826176344682577717879123837036222480198634228482478697494820402248933735656041346380894573535816260105196181185279024000311522625484778213585348103841680268378296097735751843241407563461200875570024086463444246059950612613590175353848018039380890203210474808735784887046108839864619365209481780780608600378211207636365850670511271768410015951581567707345358754823461707135613022126649049384389256004026378540097145153589806325292572435742731034405871869129078968573327704880711939942989340283421961557556970218987691692862287896178813017368636066818000037533722583391506407547108568540671889934805064317470186284360011537285944657351113129852755654529392372989572713691346995447256847557760889459412159683734344239471187269939031022735389534752474990151013121337837983569029013495047737551922434288219614502705765872663037102737827574657660266597707656251370204123064481816614274575115916534518956609782023057910224955921111159518852931033253392658286263672288837329256438286238805010656896148343071629020589019592405580734353716827810507501110144975784126693079592333027143485809343092337964660155263296360505348204401150844063913809247765089685403625612327638729253106929189348772217651334522580869642058277373198095907315235331990842223356229517884141882360863074902534290428476240298240142463658421574771771436803196423405620958888290440200954749275839908438760301563879745297749277633486679610194823714161378661012263087870128589972358287465834104165505418139841825484010286534573783059533644263373725380537734885388845373690376978071931458938852618505656746395659903498455154430838500944974988075117236891889153701155918347793958006948694039362173065149842243331186010195754332630110378707520655330954999233096837437692515727059503482391327466448097648806022675257928285841565598201758113134705030894693496280680401230845210392280771501856875940462646114628092178971464752479723741356856796933583252153442133383198972946510492669164381584771262791937724334286053903829739533652624447281754896841450352693231567119152595047139691153492053795120216369910386760417192717627660304948718499146726888808724113191757529995349520323201814238911827529747084761234555396251568521960621975771620262520377014111674358766347180735535240309783771050264079824639780427294638272379816947482349601015616941494198384237153538181499628391309769661440772273519524884695749057225874783285197454015315179246280739866695751427324816544264062313921917215803890745764793844251386494213907127936278884013972034745467750950091064605352737837495341068683798777461442742477004382181459377136934215752032641695381299521870172411405742734966508802019369771625288306445491442475572610824920690860907408538891866374169774133895768886688526176586146030854822387013800596967198904966239271064146827870685943558581862134873010210390754380644028259068267935777330735427882393073439673385863263020937978860409124955703131488744149401877430689565261132653546330453885327960694496773594103646087524400484912259988005686591159738504654422108514309210850201687803517035220070909202236297999506104813542132443169201666822692765400774000760075682138956678511827015535692161177481488161690543742843712620855587101176668688525133981845050282022971851269589544212020164929515334146662775006112772058031004277056025604930360766038911965000138570612912914380862800113839866434302221013785095522808586252639106069940270911648014801672384782892185329402072167150773058856641089571457964182500931749163054407800837093819735044740512482175243893064239815497911011082874435244695855347675326331091114402504669667247843624827296426276357684982819565218545878583777279720185271903127129127654089726141360332442664439070682322153764157738668067342261165977530524564748691463364558197246181668269435296187905060596809565401289538779869980694849824263322479601302326010093406892669066959013144094233913545205312270593666200650230215289453666487929577857600987406569829883173712714095746271577247305156835388717998628988021340886807240228443178559187501675168519957995368293606285787314995666717026967905204959026102136585466525382859641765971093083599615420887167937567916987281823234896650829825929531888401888918647830869822704139022887167140272259086246280251708559372768585042642347201772154769397524219269956181953837617239490485053022641917529621333140006258502042137093693140897022603600226790632865604679854747551452431014988365395989146058345307691730029824299534877412461657777128796645540819557622924620921800418606373024535682538340619988420687926331162485692328406007944144775647964649824590023737307222759385683605324816496471097090420034147019976907563234992122681516937049947713992644398432746748145301515445871257843689160852101707148923476313625447880578658599809616590774966302698220627260422408493416212681206020103655403213267690451940646515756320383338042948333217793963035010149074016207582275996808576604518102729012592525196800638862961916037917053522182132215559341223698759001940505798875556778550086605518135794451414151038116310411773114913891296757263299309283877633374399876773954493742026726413472049187015119474561449484461258580326453224694727547886046483257661209735936458916870397324202552865649937769125458854059777423329309436792170884608827899022439568706745906792129967437965187353160077064911373650680439171197996537854736704765719314149381628247910452769909794351362516603640309955106246580469115427204678336644410188540118728004935152147418169452554614098915508195835577197892454542163019509369105143372842192602978579640542668082961284286113544459587519694427140263286999331464067974562238272939883896908433393082941561966294190693575753727060398965957042387879500773833994551794494224893736646692229425289525328288119645469098866042487344756457031102167794170925460651954963693049949242428173749561841879937597611537010757448763121181029317657739898116663840200485593057259618134228374458342420880507862109299812225117253216227683658756073240638139147657852869162991222763238778993913716425017635265609440997874419683230514243755135212110735991087852820370952878116067110890469842815490118395671810069006632269002493166486199257641344479455045359303360147086676736738001542417842103146627881871185253374575997810675849790650870635367563133915363054415895166229961860828002310850200945101721159146037210643809177136491035503924073528183359263797474229704905286313405772282321981984207696862827141370600216312207177780011622859870140072987489768723365170831803039501581993946205529214328067141414933568347204139026122628588176185296038878691503612765926991390464911338388351845844713664069583419464564730680031963186660850537961444376270947271098946380739757114607603844426801820938693194958197896427613798721991786722283485983218544024133251073090062091889452120834192707779823172836999402029035620042140745516339696995017256571378252083565216609917223512863530225502618495220175294968690841971893582537456654142968608947857649227090900525615846569636483831601565169240915647095188487342680190001536987704556895533132549829239221685062913202315528691676261022388968378395800143819325374349343360349610964192252891686303945552710858035469378538058722461654702094369425981722348651645610207734593570535928917303967872648424771993044488902210800391144074769919505104809091020458866225679311729989727219825863752482817928211050239670075403351322539298128214353277654463894689983087294793974146048641881074214962326875565072710509233316009507690165541600537419805605639385767319279780329644606325316236986266334949466914816486390000753968578018125036413281812522983494079688155045672844874936907266728667902005134377515998156219957344785465076439684445018300618647826769139019864110364309491507518729711543418543017924199480790059754919920392782333280234439125704373226707287023170851832962640837897310469649210942349061174958433508604385430507989344804027463017765397361089268468898175280820053783538015705093053805297982109877870089371738608338737415785227900977889246911396315063212350221744544088017087242193188628574938770478150951140383700855410442276100413553866611650119455140475222987860199687252913470323448757044443025913012423424909634878360888813417891237055599168877633958633047440747187982683232347806215426787642065800981237564671768484252544612767795967192565062712567734568931361107586064701022574906824590329959918070524280893405081740116396642591941596959814814666013881226628233455035443657765016199892667557011844161925945285514429541142374236258810697893644418862122519880809872587472573823740220543402333221695545503160465555260912103598327798026136600359756632681818528361729792904330315783051368748209160450799579920573250983830683514989921733385498803768464637378687143404262407620070016630392763532445779707247408618124970659418628385128414467234872947756276853889796456112221880247133455862874357386432191000312348402432839939013966322756664919025330877753343651764423742457717320179204742583415690208444002840766972770490238780136591764222911094888780760867131666121814808623364023538746615677765669412578220106351921756495876513827716563127556395698541584287282589794273512529964225252767683550743219101299694365785989990291193563614211614852402188404891085975932909479393218644946522217760239601562776812109621328831620484729062258580549844467500592864162558521802042568364230697144811445558587365344558736155649405575779499133165716630309622910184416332128400410610751124125557277705536030206098837258656959476810278477087915840383387389875749107499888714880723120449256874362816973982118113249809086938187801321367203759169462624024749818648952782465047571226893365158234918230491006000458560607117490226104531961040940437194293995086233174777578776269564327650738792044008404502930590907200001664092326579811524082881037567632765448724183717570061751506577206350537738786871058593317625208961488869342094382976489975882328105367442464423924508561662345699496492558371910522338646095550948582715777825925564080314378757981388659960339963001332617397903006316405069389582456890339916930625467457971934042560126554979491374303545987580526570434950455222536523824082165638863800266478244941917092403322854339959926508088258836931292510559071821380149213690794804365067060942922236120861860700828300440540887327888687101123473165077901026636938149947040110580282633957048117507028298499436391039569426187395055081531772949467534488948355772179278732262309022544447381246639927436613840360096849286953777345730456511683711942046429188933749282969555732120556250036520167626966860897355279909640040446639754290354984769780952932362315735337142375568243126324803372291648673509213793531788863490901321685147880652724916267807070360624450755566419599361039246636883025701837906094287597203073934056900749303960917687832857829358663632480167970758012565812276853869030616816991091900768457217540898387851959309857926029216294540708966102214095472796854572630050551461694539436037680908851527304269735802787940732660923293635190498055865328173427244917929159849197042033611889480458947938012568360489477415816346699901775608680972041440494528031935239008713175779813043333409126002411564116733329731154509120059397746470458258866147917288286493970910542793513739947529103131537719699209366724191428826929711215122084948713540182489965921760949393736430396114227782053135595291266602253337171934237175837053494116634908938111758579479491387473568348910733245766059552460523333277412606279841437339081794095497995850221638083155227532857715724725873538269755048424371930059157037853596516644380306685003065258548053123333568843752484432151639381149721669764631376138006135349307541531458468943795204172172202498502819702559737711467741087121230737019137457647456697347511562792795337606522426872053452156190459063505166177446061910049533122236022499720647257435346100989186260149955036875316576203454742769308471225491856188332725679981546580005988699983094267375034891890549174072065351715945961016926974611049051645741986702382412622914227195974278919422524314434605723132280246175502543251140427165669635435628513972771992132773130812610476870943742429651389525503276827013884060447217415449174110350251322742580053838661984951347057470097078613447286115809628792828982585552708111195358373689721470450409629196211951516875677411161210530776999860336931147662179195318222173196686325064222063028165940350406766835629429300640343489208421191533262765154068327144077914058396151011328502100063446169496908139354010839699852815947930127800827658884695422050308108702778638385409431148796792103076678464823049412775860499705410726688315058249871504341626442418254478212161927900314168235435527366492843787455117192771264957952937899958793140857537279917981064335865498325828333731785768189044751432651105613486218124364764141822121301171187284071149479270579733339687266800345828936766814729029861555850380099986792624844979427913159577029573844559017839554988869622040326122589802538668905093677376224027336521910769008186180877960708145139590725863277719648979605865141830203152868848125136284414433924195480441874442873687294436203768847892401457364752058684075581953183618922263301770428029850986693626809183708667833413744712534808282138669591420869013613703685628831639204611488807820214986471257546263196027434250686378780114528660841746939682282487752758648043760109612442100960405596634191905939441291169726903591746374888153063131592471358664627461327179518955986074466047265417709001521388497230953362232405509037226146681740296882847614500986351146247117589287972624426794683057064377065952596603312386067311172850943440720334158810984336090688004782216543611064275537542801338409843683750934539950182981847733627234754625481473855021839837891612535347511774932884345427843697379713967763065381181260734766774601556887408337939064013282678799778865406156570887024291404982764795871545057529724850812225661023082814367250748123964974719253939530327702282385446149300104551824237051088683305052413017333531761966701237705959740548596206760544642786728587664889086221330941781210799013108225005002841642913758779052186339173618567603108527590392549820593988821223353953343063874312748814121843462243202529202832360341607031056424735685331155810617172601110637269357682377988498286838036090108835718258774919225616916344302304230570602900360869035998844327471091151585974562134140416626301854740687943590100687415984424626311811116054366527596871079474648150439617547360279216758611785216520157637583438653032272825089400012036009224468074684058485864135619537190310071740008903637697058924977026952924887907131397008130956544605891705455732577050786429658628665554916846423515082059821165889233071904453457491421807686683329051180721505197273234509364392049076142652195399390037392963690553016232822819111605906531502979404989883989428363731225262400275467372151560608686122685644752639273305027139078382484450408046672086037993224452568276379036325153991095552146065820863025876376638202511271822684463246317726869990100395077776750041894324239521035137975284704410833752584974564496895794488521294644247003396885365352943858194681859674499126537084578560945732705344314137914985073694695606817823654001864973818274724604810292694031979973881111157771933133347197910878971891641339273686522581587655168505964719799160170233051659940166156848825285654925808772382209019062573662733845592513052418877787166973472478507397355175205562152758108408914422539300367606537148019791199730252245129768758412454967203297710399416584872295594337124679104007363564444431945517377669651489853183791244820388485696030696678355756682323109566376765137113803033842530975441145781759083321010978726628140751417341319065020477506974746671691145343529203218488455777409893294793213046282666840688380615845393916920693173624487135862789966975595442649709902306728657794127065701665272735849124722408678385290028662943507636747452773948363919922223524609289995254017862436054354744138636586202536643748729307910965402995797301678640539361238361212616582435244636914564240890377389061690198529917026622757272691763704119569747208276340270525976434645969028756717505102882382987213450260103250383166220795630568119530160898553845482736932130697622421610629116720224348807700575662400931212601784105817070428939388062271450070410346084575333490973299039509802300284443537072566344508924976765663407336488973928548128813324712160011918909082602146945282303177010051316888448044035364769441844970890130911555641930297552613879382504584766364612460340876646697184149038352862624267744759050944024069234366501507837121581018090830505563651298201001625097516392828218816704343241130335921000878428154240192521543476513762657077161553290888386570891291841647284282948395854408658488135260527623575036939747897364047825941299544083884103361604735614935542906882241035357969048101414095980684002254353437528561665050883483845390144672780164257587709843245739110190642011598787000483227426681036227078792568990762752943336410702591250718901423702785472841085398944302381746962161141160665903164320850126202907677746013929208195276626094027914856919657864621841386770384474486889813574607261994640694965125401388549246498880411700715838606372369076037345562485018052687904496552145722793880044123574199692109977828303195143314712250655045206032558708508258941015891100687743428616072752318490521920373990726021685032971928742942140951665874979262845028747130436110394183912156173797088682669402553870146326288156144684391054916897941047285686316220467736399012525332051073862039911065946836379618026598932913370714053507587076750249114056026131660608706078906719523739850111808893872505727845742637574963705233259358663850116469082025012783049515353214561649149948486315845402694371015058492097461668344373694840426606723922070089732170434825638386424284921707844122055581044829141579663193494335796346035121293687522925866356648203468649455928938878808063434336227234417078248443615683732439052072739138089996640498305222771184136075492631342651875272087159821813851172523036663827739658618151765736056742791888819264871689776193921832234983040333627636639540944127288372627440462277754743954568043552393517514573245107051802139190827726685800752163163435008592155383627979120175748954943852078941915242076048455810472981434916558904611926469207011149992772440204486054198074675785777700831562890474463123666463529745732968721622704245601319571985737786938113954650993701579020670178136371840865763652729441586802865755709235773033811061057540033765954812216456696258789241053893612624544433311869853050603921007167633299398067299202276000903672290711949239148465267960343865145177097172341197831047569624942277014535603401673733146662041390048876033793406543548550824755695538706304640528005034864931922633192354641518293906388906648759763930764638619253904687484998409251940060332257237744436861715776408327807067895102642222199827368080238404277705327034803449694588568727224828814085121080128805464688270915663324671492929736368083785372926396942847794529149758316976517096859828546431739566998798905032951294500150361404686180146025460409387042906120405727776526737068923561584323585695432941699010197139166734814814829706804147450904728129137316724171062151837031241452204216364449336473930850661364297900257809670810554759882076042742228237376932317641322138487392099715786203445316390528585305576051711858411922471286580838016093711618804531913877518782041224514390035587821626552289313010471688556259749637279536535311917295649633344259271206574569815928610119641755829603337288441793492431158964383078705867197386166333331545705869755870294527801353108320033628807753120129336364884986899127798944710309414568691102323613956664825657973276778285523644519703607544527313279186067983787525843025294998958673730057539537019141750789320863717598208159336345902943121730441751212036357884142176024727370036903392867678661186687682475425428642775774415310603336357577268339699855099834347853603918781590433739894205567805803528077899282685524559988138195893727968925827141957673674081904022008757875930455152745114228300235077014150350639010971838660765373337646487592760468727371404134563210384098044459369712327566392682408745379861270857395634563359883382407654870962099821828981398184826284395542887739801130930486447671799141961901938965316227524100073125364665413358645254347564271341320354674905284966940300891542785759052244106937062833443298843582789589281204002423260053041963931106454425134071974417202931731019438203776572610421663143096837914975173212782787979486049308863793825629329854068826301196766978647175395459078920838833936923417019066145260060425594786284891788398890601424711335449551854189149547826138299741716332598945374305730890272750069417552421378246513349033663886777414475224142730036247618465829502282280193734690068870211759845967653642905741940168470130425273306916195970242452098726763796273072347398729787186653698776289990786828295660021161828483080905060188880586863852819300233279996959145221390086650421939347039092176350680212341726706629065882481372239017403609145664535927045889323553657481556265223854242938684143170642937236972918020338664896277439292700439752323550154007942037277385606695681157072958653879707420740815792076924444294676732015163830864478573380720820221860458917048625186162362200069797843949341035137958654630687700666478366136696580202778681006062463240243030388105770223765002808886703367596967644452625460758485931558251235076331269214503096484083498318732821827915786709865820497712684109762269211065922892559965791062480800326248378152517503656447319810011428231395899609431073392760846688043262236908893265626375923341975614677137233919652528889673692141489777809534122905055415766165907675216087488847751546989119898914736468861616545877225646954401290559022456750204654879890063590073968216288000897465455954272826604448147565363890228485152819126277424263153054459448188453003923554287923550104013428837907298116079733200094883631761458772717958007530917064577065620730713601027217944878807729536277456735831185732543742122547768927935668397810786695328115265584049172514803705588167857489972796165763120708899428364851861593276177767554597666100954999237291401053282005090452703967678185788293208848317902811142005428285781866132452446680105994248496871040228721610701385853923751464112166637009208301897442914969948369360429281536332974474404132211362610265160647542101935025139475912163384489634381041301589357514452504461059534757617515186881524445570551342289225608761375803495613600507862541963470143007608871115361258305219851731240528946292908126860472690015574070003127617899566183412955794586965244533793641193711782042416612232851822773866834090238709383520153153530082135641979278613933018317395447924723529020385248237239837263400366190893383882175092190842636356506497641385989859878659289358493024405982448712274312657569378495779804626321612083716917936166650515682505742953637686455427060708344938141998237991961477734307225769143170237696604474744542411126776009141361026736506376078860730742120828388987210763401236014041334407913789655028246094381283798413141517688076538236154664527179660913472794904516010496310344896168504180340043104799244992882003186605756685225206215532390740128046197303344522080717719341967936850986718643096017603848491342188749913191097667696425442535918764355576692299584506137019243955336281833363514349629815692557621453656050697966377029035895010472944990933541823290762515224063008434280565322930987429992516605916508390170835151564907549747400757882687336446661391860306900109614693472650410231520450635757994755379127497520481961167167571545616207602580661931696347907587214413491774806620530457815097473293870050776557509722462516881755197435615313032563420336463204436242452236681791956368266187631849780420146393214814111103524843860592792381157672486924530249244789241604033051348831328837135367080187282808017354602920920281276078118335984591318247940706279702230912820285810430399517997841784119936427916445920250416630178562489750195322089984718648393281517966616106170279861847331510263190863252539750881881087101853081012615724161311706778781662845551494015429539963293491096117366497637492513905182521300076979515774696705030573677574638864736223634251897320607576276557809085497258314953808929855289448532740484068558167600247381324636435183702814396734459416533237818645256121082774546649293026107464052549430720609113460642540233522034585199653900988204767970692589044365624423897701899006801396671295353109864724740762072304635788049935888784684279402753254653784392709797980054699224047062033021569494769342551354223606225241175255505294406410133281175985182113494339741785758118780902232266994531872718072471658986528836979745952450802273417315813186274029198961952881166036356951775742964691361801409052814482524286903429476047958480217382096670046424614620897675183777107542201694763284604512966960981980836602700718978792443538511239694914481529564281168143178215162691435014017595164106705863799698858359134899098134833947245173934490326193912130685341609404804372337792970652550815424660730816522983278263360958755970564235185215830870637128493744938655493194813948743990875730888770243960599958874048703018936820959362043184155930659399201517837790464433573219377938613646591147397383973917552741502564801397663395771737399306317557983142463279727338760266845492743198341875895163962350532670838370930973094239018379933881691110685539742167411311024907662253126146105458029696849072197556212595219268259652826626524986722933145016835835590352062332401593998688823959921152777200019757362420027168129354135036908296106910451862451990917345064404100930874567819348056745663601837617314976393673720015330298367331780898139088838773269579949429872204239896184532761640484452154621372544312377691760932702850014353948405826770322854710552639745756617076098236357057474063058381197073427702602082649626881211771624673337654497814839167806290141213645001492467250128225930377952546368117914512493252116627605353161869063516349210832204679738266683861321975816651936928759007032361584782896903805108727581986292730939539170933839648106285728878013317219939675337629796187592886856509341948730333140757472058872144735618906518433636383866297225247261057508396223347196748677134120620335319561589389595232608500510464669501504096290850898551959141999522374879743308779418952104221764441048104062587705832786861663656129506428139678949450748796977645613426785306013831154155764864764568583390739723171659137915941039794140525023817464692297282220640132011468847894618098868228682087343375189198508325494460863239830202921564213667865510321412620604648106457917191137124430707632489293339912493801187823145295802835400641299480450692276062087262541595252631905907802463348322665557573396514609284384900225861715382789655279156159494537607706734965440114093944885299606368018876814167097232625453195042825855117963563685451600274907305078712296845828208681068936267163073952327878792587694498997225780488682562182785286496123739653682808695112247423986317460421004154360273432995873233129682528279022605556998155539473840703580614753129364092720555530155614875575501613809943281862646428514430948750619476637054342922939770017509265067694748214534431247935776793649825997898323137898274765918804024692173894939196846420149042556572798924675268334966568007302556322664754541202451477076336274972122790264812208984143075167616550812084591677048698027314069180622201837301916443446594790913224376333064143445396636008474378943687601360129613278613421498317745711083828146720920369680961318437326098110516635610383594394595941163106811554178659601754967287152686037100702169229078121274186431997248116518536940477815641768516596080804425410577498091646335731308591186606264424854233537820390493578492124541436045105372048991128886631012624460857845677067764272826582433131107523090845968182668736956322138007524578338241073249914090483586846029492857822979961641955687549077717991549104148542417491957980965410295440252680917160152152193432891789804833129772306488225519249857174909485111180835160988575265020513504017402205821103667767957404684664905835487992931012630827075003389023598523177564382012771490356175093149584705510241395371992018181682724241812077449077609357963145357419156041023683842503451603684736707478992594331939266362188181192627844172097684292866910676182153110767339784070274863268744977573761959300022875541565395557867847999847812566215880771476836791499027983475648673456661868242926095161441657685301183381891724327520607597399578857289913119571622714835202379699572032448853467936121893069645123614629632284796728567935861041038859863416190282193285291275582114836633349407614387555820732117137265189824572025218830417955778392898937044040054131020843527838107615405318228896771530546294875427873758249851970268966985621031570805851723773481777828054825711150456692030994414814965225298205759176789912479493579761218914327095500037922241769132480030907513028446542615004881790950445319282499410751604051583157675010585649298992100627693136170737966993162557961498709355837207506387115006532830618105675219269757862198992208960488575958593110425200220304441289959092644615244957102782436415263626812255628618823991859164608487920132331755273975208369725630194115210081606949420335942629040800931598283198124791824892529933921054439946548549392102620040072067814781816490229801737492604031585735173736256951120122565616758208170076280051524725558721792277694164722131323057091561239206921760927450413608206447004069066073029256761402322099200319344145132000775007584236171375873266819793658631924448953220229089274443543761114169026433138986178676282932750906674267052040368276408662876401590197464907635575909813625274601527853573750387438678537040893725774292785389828607109270162565265445273979826585635957251113275978228672610016982407581166129332895633928369655169687198307876625844434242469774070588837148207770977267964261154218057204707202300006360369355164707789650563712631508763974676265785768712219339843416854382556924945586690318098054737375193818478036635015351918791320020104011902926318568346548638962034112498363772031633694756124404238193506868535537864586525982064134773634175089090805728351756502819385315907819882697582853985953947197265433140959268994746375694218200804444814232178455023063693345408942740951079739613500275403244927009212713065837168795928646674546523321280448252262144636966564637811621357174979614787744282780122770918156011510189547409083994718140553974372837300919712344674968431645189789826761695082076802597953533483663258887907279205045741031348652242020876572888747442771603330880538455180768087817778892437113269238737124198184807404434990369629051453166779860180961133454800348174884603842401540028733224257106914901619439135467624630384588052564106352102498668190285700777534827687016347254560102756920803478162112879839305902013632794557988038370809305012452597688663692876830105534726839523635305344280404276102365458127259116779483242605238144018873328938376409030610774938888519574509667795837385683037497733231803817609990181479537799604665152186692935769111753390428518131702979909728919220404840854972548912373020616302733125579754450093240206730524117988731554960727397123905441483087842666058715378800498928751844215405998120366326229803477700650872422568187482088584125163012846205219380121192765512941669109828158827056116853246455346513893925149536969004899207108294624734759685055128764612148602720783341469527443082578728072278828450877162594341789120849263787503705989001994668781451225352448316906388654634150311442235509941331558166139090752559838897433093816371174248010103629609479441443643356154291737098749832485352590698879372043896644615981245683825244420530474993976622912895010325021297661578307270867199107891423905600628788843479683462711690292890045757486813796676126982700668722718170719263953250745072778365841545532246812987964144583139353451503243091144281108979238911563144902614037230860151341235414598786540473642486334086843663982159736099325355897393407623697366774734915662313217447349838853380867612937736471671574982524404678501434444489757272387456157237488454506868680089587074447851022955062895380200294299012468706864901253010150494361432055748400264611382747541167285414222137820854499044961272331901288116718272278397119770406930065350038076900721967813642985051832309028844330005488590090800589685027781893424917518749698044289754248252393022963140404065096640788593240173607622968715122476084958785393442259867149808654463930409928613432833561486118614619882994615374158161018732854036393532139242241649103064015014264897175152503441638170616644073940665197099046801824393757771212796576300133931041986276808416356359380248484693779749594923433590649913411221206579962017843830082004522604893359196304753375792905958974504813364516105348441044059997042906134428153397224109503073650075549163714778619979481960555588806772881900239431815970926199382460951623345431151667455433658420862287438580434449642786542166058238847140576135533891270373763100327394791155053720445212202190905368049378588803717835973708896025290639567989515776755354689618688429837437757026827907669806522441822732945571861502218951727388968194620343092302276456525065740239473690284685778828135192988058959785644056340275247289396941992649510586888291529057483549959545889290614751796442596331627160649650472778831001738152438411695412467789057142596110855617987977981533497704279567424027991742955679654368008084965105252074785025011973999360126553650284483433477264095656372963349503485874962026795078693978557610013365449513852723224161275303574285988873630730031626291348170951385614718548583840800295877629810863687017680037532085645052444946961181207468137212964238088417416506605060738144600344261612466063571030591177631041370841197703230131209084531771605054182539709044814098776208352857205634141543886030961754549424799818305242712315665565872789804202275020732297991925671068382708745965892228087245260127796127646693193642394566030415425747754561128962890765609452920834878286820561316909522370469199937049154398794529290153812603644868732383567039556333203796586309104409705180958499518938999586143258622026749299644899740670000961375126061075771421206072706932473290231894523105821367239431352686270611805506172308916674849002150207359966961328486062599788668109518951805571323524637863396232872646721523818735266007402618011440643585486550655855217118847881169084505107393522007486628034156305119768967953529928419147490422992173182025956791128464533480357306554799206213227986907391039945788664675458810471026056000121970873812140077894828902654291807638793343000657754866504163034068125020526941989724977517325977459077073820789407841425913446320372882272876347799087237055428664359597952962868729982539717441766272802027350401805977383500265714233903990333412467350996715900322840213636868217001246425811417278031227274910536431990320508379707038471426430141150186606061783958747439521358188438416598470919575515853691294843219116556949195551902049615352065024183763593362431277233362202266116482319187837315335566054068261124710352999596105352906912430993720787166402066759615285856382269752870081279537770182945753832715439291573189956470572852448631419542638426758335872386081608875286683854275972852388690258316446159890719807023674265440557190305775603783866179036030447036152235238018643846077112431928129109019512352198904730331751306226845208995961854983443024411034453279374987893801459671541684309276693451755609911396138116583611409179326076897442685325847213900500561313652908727151786743701500060791612625728269230595240145545060703265338838973118700956638362506122686787129521111340833048167959580260565180185216660124985149714187636962663304768826076134010669997144882777428400317617704824473761236972443713157836655680977438213101642547245509712755619882283038038548985062867727022776467277662071193691168741164079576801968462948407278010539475456287587934576013986327218494311303754461952546304179444549453318207404016816971664674368778569351970831937796769852305692579985946484563375664564318583696395095309428585918174836675968308949362212067794786465354269447079682545514220473870473414341990287638995207588129522806880816620292438235806408831248281168131675939187602757603906764122164516121174701308339324686820752801639008471337055777117275723267543356070401628093879564876709009116195355474073042717066564272792132131635553722935784830109775927526615485239951094564623040400552537040189801331116101195716992946535551549623718100622265014169187525364486521817495133182013461091888676057897004281937579800513575733496840226390358934740575955009110627876834315983533644288528707388549495653110797878273689469402768071240409807885876678570245388943011238058373145539359296373862970053735889818616164123611528957822631295606571356821277693694783274496327566200583674689112383881311413895341585765424904232803760250079966218733599998697023388475844091449103587260024031393215855205874948712728956223557167586562931259318883801106899630855306153717916333408934102024591240198685211693125209726217853147044225882676534435645945922247496209025894061292735545889159663998451762707366153581881941753197518690551344025131513059774435724410325908555495674292880611665350855571869534020725846814962989376711615982535910236628801450254919452538197512035141445403087111342121231414145255645226483891932178758742217215855080087051822082881294258318792297186756381002707888531418612580014329809658125378415601159163746906666251621841132397437084608275934583098291295845580686972247964285088207635557239849940451865992066951778032914793816057195413955570197860642388651420687324079032757382769839951695285328765697953154337035847492694037773689935505531915214086008207246525527211280626536947392966695746515701877185232034458050363639319888399850823655016463559921382110727326638258542503731584078119254185907315663369063577095052994711974876900670997202115833263840096110966140933427274218832080104451074845415192501705793495460640754489016103155501654693183616600438940862329665627541604795407572489559664775716796687554912157352906926504187858629309919231744775822238223232268747518124764016994508462276005986566247235842408978469418034486445710913565641835667437209818424158613418872118185480255229089393269867942658805468926984395547238477257642021650447196612486111455646213377875170848410121764704755843605040564695453710038789785460768014610287861887044366458517388201493037619452296213663927263804109453436066768088555291724201534473621954608378682106215531096709241819627421919315035935614126566716122731765462862708478912255992398653742200242338034758556857811837482232117054848891491519736432091384379388142237707893388562461526827021739501340386603817346361810025962705988176803597114229203485336591629716915106791958719609794560843757622517035314877456635796448315810772711010201225051831697611780627648398643504848900276490966493345792301244204805415908148437991644794556868392269957155254045071085955099450760650707663532046207290996651979933616751777281622711542869239400619062626191244260241868108060329081664423976869552541053992423099624275986235208157153713874272771156319910494934474002516246933116664950489652486723877267250106673632621517144277613057282988475400896036893011783455285507429943517882467657626072688724996780668343708558551382834661876927471905337322137036724598646619853503661961228407093543275140234362107497002129702571946630923971372387097003929201416520422047867789193420191583903943436352882803763484271327218072494867210762991984082103929663341650372600726502945759661375222238339276794945449261190612622626119527146872701437510541229835453047000657292395084729941286399950514094936092353036798492231631586975749967687776884945355363520968661940101015628400978526464442675431699700312452782913828461668288997354882727232524204100381572253672766714634716266740864314282683261501911089702620082642519392087265050677790996550652379069070819116201018199796760005056997743756299365127063341259785682414931851242781372843065615816218109600577828181697806386260699980750912019890541796303920412744810714377139230637918330704392377706118483293225505212516615619297000878524555745137120985596190684259385189537718569035388570363320165815303924459336979066057804254883007619357600602199388513625150655682810990147274335513455723366952078972230763402532468471062624109270150558876724953884852577094328917136885315808974672586989003474964773059600394374454427651252828375737980871368470481306416470560303970490044477940052632179992053164836024989475888091487413137163781152341658558975167439047993373142533100737537099539467923156920012186051427269143935678303865827937576245093563736643764267587026784892864807957218796728256070088942829508836093140647120181777639830116924597088201343545313960848747806110751354057973848899777609670844403239981209261691244520708985102745037486953028867553325477094822029443357733937441067368330638861954278793713853736580269325273961959438303335822571942179841531781284435193323687236253997343580120834128142234015327904625842253902948842992173930678473471987226683471957855073016245334935807631385379232327374488369963891585459179049688822569222980087754408056510875440346682969595984373423186373802312315455073881358696317642359924206268654438500273517220953823549617825154217918389948606542185325286039987057994414611732679624529143485597594596774352460177236112063595773292268723593119389059273883865073203039766311629674119229136524566967490849209291069567484082468264594655108720743270302271208637929061679844874296660570413337277469881576479525638910897424932512896877245033202619809391567201983551534748804554572386643005082937298159155710735992576898777569104297116189862683802418579045774533499287384304487146245714819755402351206359969199061709906912142219064708899145148156084103822787222264879635240240788473920392885639690240229227861425552053217628045337773091735835134202469385579391820110551560350207154757993749969667564347941508519198514388390660557612078428485673839164504386200595594180526315002856836223621767235343507882123167286069776981604992899782062178428499061240685867159402624667123596621583963987298508213230641017656659814642087862914931948941771013087332360511192059505125369151890060011940754944373635696377008741076072241065533112493246928690362909769197527809759402248573326371609559543067253732950872958541472021943733066304500479936420696685893341543464134803527742190821454347290247650780623942980185447742897036711165998805832781926330499523851022737788151761188246901161116934676581952854622839732117880278473147891117491488772396555032851709842912731956462077564645817809364117558415865544376252411753021348104385531052021156148717724100103969871158078014453987665170451551978538022113557510526008011238872380311946695845377310124263228072974921088001056792016211899269409408223680872878922211114572295894179787451436791350995246870636805345893466808265341763566196698723380551856447367918585270053629254104393207952428071755707400463838013953358961904543181656782739224230108752211750907149378451980377055756322386679522817723385338287975652730485662802636614565545198231983338323397161453860158634575566248321087824454944726393577040502214593858108691143575975452594380597374394523560714580113645871237350812313838398806202745500038818346489759774956104375740912850212535733045122452124833087507626337796872347065745290369330769707230978229407802833703816510869707805101593606129966116958885553908153727710445532678609516109638177591417721233401441065444754404675158382511643489808399829809865848253776450806329705649635689990344294592747026861816027803271458140905426216970117196992664360858472842104505732887946267098324638681235895098051520343755518976946817750120751697005313686262990150508184739873691475033601806786052663616098713576747167106568899515995342069929051955222731244780285281673806439960609150055602478209219246429009280587937624243500306515541515094759158187081652175142261080261982878512071378182748229119532132549942664414704369815323221429407548677488668294291880685421705387407270590958180501830248512165021712696809458287779714777273938794248419130079631791687145909468958681467621324838720898038392787490031220500579312678609931746942377840263066349440615674503962291099694202653881770399803562841114210165458209492199454782845919937241168333216162976563553614786973358168859094719556242926626379889715117839216169119366912281459661742550691557944875548448352106960547964324557174230965128764789337460355931371484822015143230970866638220510967214500395197578063996484996887673650061072811693266227330791161307936471312781830633626395639733816236292538990379855278405786146911755834013829665289714973197601432353866191846561873406748180920089133160015214795964483153547051879463303066271638515653386253276562680914135935642341441912324726048845868166118000952651917547464134172617466735675633078457745299730547734822196610654530351705354496900418684339486229536177936608565510054642189114083570604098125757690945713220439547554024524096840538453905884400038949700538881758105842505074338089035532432496570663013234105413906650144970499176203264694274634347356505510007065561859520482648736915253784018528397252040638135196439147796386956156870782862810772028016754800646874877044439369498813717908807153015225604807079120969835420289863740319924534658515953752651187557911862376167115661581118939683909951161114742490737984151542365260357014683238335450723875963256987924736733431687312735557442914693648811536425862051941775295914369286147138890489927937455729774620068532676797880523854830650056960370671463082611935921573711684304363888899456949067310232355965732645412808628962047069107142994188359647157484088515847511423482154609626352220235668321061553101614026601634487250058987504872407094459846764122729741322639061143621762219747239101442715748057551766611589237104590280121702471565690765053421606268272799781445536724017281360883326960582499402945052408638945698704107860702914566507668850764742784827615410488042904855212296168729670364981668350929027693349708600539274467992110511739173831671377242542080019174294967566878828563577577191818301261730412958215284720446237855790838464221411465864508256859601968738053718612763597731575220917492995855466251004511850946969603495753950581964804969975850107594467596581878078572026610410824165963414884073437619492877724845951750016785916782450190173675085039239675448984448810033063344778002660667781474996289759827346723746210967378988322762521923234646821566186283583531110147208136581854190958697798289840644320004864527414922265242273305946599897454423444322662632889789054756169034027368549609376416340470657909001512963428110862645582722667892799717916119427289561379516126094637974732794941028518713160061226134420947796289385630635566774086646432466374917276217559119169242056066205953040706076129562553357981616475794090703423946774012193130405570918471606634154698826275152693943907959681387392985913876653951384970588697382256054497211384971289045988258935506436668816657218779466710740076269641101106186065339087173252809205905987790326223794704954980663074322948822967598167139735377855815320908581149720847135471630630171026325335458525058347044993928468049388291078621014961924338311379618370581781591189536778849931893995075566053351978611328956879540917966546824542607480020320117194134117194955492782451734605274049425328606700436431834543897308256304314719776572391311334243859357735670886137583739521869331075411094106139843258275908360116982904751325644741719179835228488593364267041035902636653339611796231050620790420260331726719379870115118503610228532953142836220378559939742237270226663133502343651965199620481017680945451345862704417871619585962665880485455367730257268275902909688544371470626255641779005526817654000508588977721112382553332882132227997294213774613072599580800021593240468149930635225969342708936801732780188907720951680748061535340846707439439464252723916574807751566564473384220269911859804430193535726467689483578012250691663212804049578216669986167785637296655647247903634121840575775252261881656583114040512240434399854588492593956000848280340969540398841083137625418131502724543159308091731944961094306502479560917074293633836841946633543182579892142948834909359605609069236761515375949687155458661276647636654680177910902130909698297371653905336876112494787173587521022018745595807359285090489849291210605631127875983125493634958626788101938049069216414960917233050132819828820170073511652580130382165500105802981529080980399558695631802682930785903590690829269483722686697572601360878681019594420866573080632020745650105286821326241406961242067715427260953940269645365847362908042514097042647258700363545002219932998991680993513850229449035946901430833075789523751720843396549977886326048593360761841909796361842091757933673558367000279162082267710426276676790500784922262471318510698876855797541915635410599759236179297100859797703216862856925016456568224869851775052952171147205659060571904030595508235921267245685697967209906989203341822671099419263497298673848266541999662776865353859076861224287174702385907842764653843815616309911400702360071391125697357120961145937104825806309503232807658043568278822765463967377700567534224740138058243660256222529459150648059840969839830969214019657647450243541644028424742411447837706790920611986864834435941791870721346639194507055248056315852415075627133210240312884699400626546039501993336813613651419517495401268590084067312695576881653974912422593716614188493805339370672661475441868916529310072042403696650572107442178618767469833912584476515198259227653587177812567741366125360872250096211274647432860631442575410089102892989662972664847430443434012289156487758961850202303530228223306786479854777791983601608855066015602273123968069075925826343071163189039423032110788350710082005801611591667021251075055872160373985758510568275151590915070269851106144340648978857019357639125995872549866430569902382897212281689213896538495966870236383587949879950770433267426450435964099788614011641634184517865250223743426706157476227930785190029901026889938891643408061146449407358757827767053489322209738267375018845275752060327205581365548332583225394921393443262784864881142481133253028668706529116823830061326330006800981098053938577631181965447999681582943630762788130081438317478597571320241603650309869245332278475338153731289394489044974405696102141519292503158366693650637925770881853214384867047424334072480210829914159207236034863973254888284730186533576715712633159131364475895444631503502020482251253274634570203718426499641257207554502843538846058680459822790177750094900115741082563391187934686640258733490778805995556445742861030526757594673649266766750299800510435460865623625521300594301694783969074716130370752816517383665004755413317739509172444081278102530130187888668415465381147334338897655517871386127236806577115204195905113563443956501378599424124108577334205401421209261757096179750706679034900253259528964860894109505728804076630260031243882428806676765373598154846874296938615414752177153404562842484352347058937483108654565594150375422365845049405558955683363644367525781582477515334939625569784386078186964548316169205459315364304432544926666065491528642550516403092771034416191424454068358839624841957384615413916896062103982154299481507127334191636962643201202531324495885670070580369619915285862190875015266334612398776060110307418133269259257254063247384657970562808973671989510736995987388013191585215384515987600439510700513971360398074784682153513703590256828334002191423557427731806769595777797433126117367823760822705087966097736055938613437213869926095356273645141943500944559527302607568650114464019578383852198249594052512981642730154241416771794751722550135164045180478373845014795221690971688857081799883762143284609937356148546751133746160760222359080491625247085132517005942498698661920001080937197910117145064003743772408243942568382121324099336471958575537549857711148080681343387785916795121187391033937768218831073483284943010060701184344342060395952358135397424783908522375837129444102838460826388495871406728969849940312509355137065731158271165652599885365257324883167206416334809815222296118622117131454276457558053428939129985536865247353678912670418543143801969976904413782749653259460072539976289602279804808639923834028315897590378140866613457368548787090959549854141554897982770714412022118578760509343875772544918311243429857433363062421969613460738452261177995614643661736749129328418165686552871880269208443518990552145382664918253345473831240218970588633265895783376435270702477328648103179870301366650455458730277250049462019901254341658773904212242223149093294660338488935604733655474495311698575775602338480625972224060981225179605905854908503936723324785507083622123817510149457773749922531624632139536174311822719350533167810518040852851962607291756400281833253158525771411521605013965383190853437720295399832329696151006308313303357897760595416516816096485173582198656789316546616115955389505532852987755446226045739988668413950424664536887039535014824758743616054077887294359133666010230083416055883113049569691350527157623335322681658635453543324211521210791058897691758149330515573571201972541100466796651193169018212943558133991632751804581282168057061146680569935404980300962081619730255123827093848448828333421216121616186431336009306539868412182039849733589327657264480494245139822929563656931805782941241591040106571526434603988794594619890014328464258884619181771680989845126939516496703652694889174300143084602686021832554360170583482430555455279854148492074464261856375965952326386339412906116689457071866523698482043058779441962586424081036892062791728064729395704234213196542975757699180031398209620295762590426506000006189128662031994512234268331074015425968204491407204764116907851620754536037144222501343765792071325046872164990926147936821383773230563945543266774418512929291646603059282958928212824706900890221383277273298939140684406417048292470436676412530854922072401311994089502094624166548587094918269666398290643133696313610800756589949175665182230399120299143822944581896294534860741410039735200696049427888629847984326000670438010304034861026707338067451844599681867152990919473761889376979086770476945185421944895360351276952818878096073871651908963825324420976030610067112069142710468495303039141046906371156252466151738278053657485960009304828025908676427590384155809987348779034428643680424876679343514916424837892603538918917585766162370861887037200310120184744256856034606247498615404435951212097175073103888427944261665825378323452512111212102485628811912041478983588481451771980019428535292554199034748629274192307007911209391496416281982480385050724987283018596300602526109335954917064350798303098802844949441521709925720293313241748592630101240707516939296826708506801090894380056689611103509284664434708632382252044239870158573213841968375731934044009212119433664946190511812516410657093069386714133831100128016761865425235573876056716551111499929904734530651415230520281123040774117308716542376618682152852423850200492880463018770494160952857737260960186987654754224697220063589410322420084684701195433679399651624212045977392078277532959880160505799151187853552482117893606337018670681615568479189958755997768174520752883025241821826280612798199470046614916662300159595407068145281481211798841940814796644256925526911519852990636947878122514842041617658674393097274484156499726400055374610639559080779517964737040819192032403303412241151308702806101022313265222279844051262709010637520018358747539924427049941751325660267573413654694240907086174705099411501997478112311541209322405331311765751337677588934068569126467580010795280213414847825612310451941217366318101278860251856695227321743094528501973191521375025437242674456296926221412045130732235664219853174449695754517160912369525928240154978780642458498119898688890848816532107320779407829350110762660628615000943738627707963284756175120088529718568957501654887241335876496223965102685074903705672511848982222359081131526968313176193792079603841090030236746052351649183820330923637066328821822936901291809947858165193215167875400209850341606860707124998379254755121486124298847706349986698560519595653964955097921845134515934720553905764321282396668318551058665677479345314078114153651234597814587862399714220714559257323153696317730973011917374908274656024929575582247582063550414680520237610925932099566618785702483760696637453980816310053526463382778118185215008874906687334335032322350048415962230498303853220507997904566686517325245223661109185128943899920660253813823017443960091890329271577854503153688319117012306620158577622329086072997862393470005015352879277277763586155830363889270317948625765193438193102323237952504800650329881508302415122946841221421920452071263479457287580442520683126568614403112040805988798224657491198444444414576019535068504024792015310673754193968944032440545383259854103120596983575030047477815958688036437494089003284309708191177344579522665219979599718034836874735041343680340983310674555404169702281646516167533696354223615893179113532097807193662648705234045939018217439606103554888202651236226966077823572244769421695001001109926143817954518565308578784328617421439850579132842663035332802854983805876435268080788232830398970268995799783421098226117951546846501470708586799472241794929407553935558255613513327430817674180406398570034351294549477002981129615033827094405464607030158281668379437967978341114972995905531816238836627539632389429705847421205943177583589210500524982147862064024396860822727926885092747575904452063520815559119700914629127707782826189957094812341817239091811749539881366800241920807566342037031621737416020785757177815979017708871366878456967036246281270281108574040340232374612824970941011422123864199907618421044899958787231885740715923875693071072508879620050009412763014690709737225615594780531884874352015115931137352531878997630723761755567166008789407676853509772618494424173827316120434851727351032556751346035688523314458842871969202527576878816018283610822130826651067759360434955833544075858898333410111526651104937512003011472234762836026070450487867033069329016783464278318830020722804640867785348423742320170236048303715773507789619481403210341659453041630594912332643563446877721526562116649403188635876474947013546259394644675300834646987506654798832263201957722580766766884005192068304273131473456021879467734343148539722942054545142434470183381728954497572467369047665279388251532522627163341004302680513413980550063868963242829685235061288422707616230044050504907637998738550885383267380066207120683576978827205990333858188323522550263913407835074632424202618526707279856847708836566365244383825790203488678775133862621917826281376670359020572171255500387036326694466109196659450170672118501995380811936362935735492964590458974916904603864862865745685596245722931765607265357217963242121382967779920545279076313284648818760762456934562259380899513190520982700313607153580442780071442960564081084144924254870478175788083536452101582227653918722375235375882272595212926611245566717282298931455269610285547277521980942306825869779820787424919620417882760777473650351067366840345424472440103680373542944767296056772455317715190447515091255770020672527225680462369546217882591841173232932242681521611835861000903637361939937536241339773385376898647511145122306815463089608476255412137145536652159218329846409908952060220761736535280971632970637257442177901470012052337029648780874516577306872504448589269068329716681090227555433474800422819799153546570960147762875665161439490055513891868042979168527887305746580040732253974771415538648871447599564267589045558206616462370238633938220742558976380841439491407982740309249945056148664573841084394276204779947680218124386741913909495263668098774162773151023337618479788492699846612436410349707435461524270458805154009835294316102864399378506266817466960714432563092191786253707340249151393612210709986523135995062451193502244156449386246883392462152994879341942427688107266590968547245119279790630796901554132439663817368702245880443892876904813914782621309477535714729920955492678387827020103687075375376003249581082241477912358570478109845501160514287362177361318801466529912345039874796846139343222280800545556213070296474322806152469420140118903850346545187718365146841157965057516136806090456954561318416613843067817194267572655983757689480238019213159765563967401019259741075955378672606388901013403127112144670511957148627808855012534320569023034393237828096371518817101986721965997628922648568459902988429296732506001144838624026183801872153555124375210845410935246151362685297477624722392552731297091243533487895796249421391821015860469478330655168483202536031701758129679714512216985819904678208955489697204109665698968303559109446336280159725155843784537375283133903950295480716216417741826800425938623707819757195980649705771491574049789344975048180914649984900076489547960126202942478096423635840634577943587932209134649200041229054833440150011744017453004042939654193030555241910063234898842489611936577568798622759860339774156653678143127701479486140313459492437302034188676571355470539132784948382594138944837618146939756480133826306766433574289769613247076361462552653440422162230623184744676460672707709680675465401162884129625086386849899725809513487763836918728773731927549748030659782791968004105882105561767427737589460624673448348813830407269421851004666424633050342140101102928919931905942444885243035680381616740588035124240973775189031676340846426731752848709946102383963419244583281860938329786930265998130384777388150633729015669503340869586929657770277039146502911755552274651851431264950393536981376060790617176856880561351659594419922505956913933143495243402111894500555273038877748897171314454835849876818373784736387628753518272924508813844970234055846616891572966518853068611148485631792116749967309326636329498143119415447138357941954720685448560443698800546244101943842691786663091047516210645724879102782841761205192821125541679936670612137290859310376759898980516132160766232168488716115852100980532647321194155241423608765300935607551306159157094286450487886425167193306874946458866019124025910152083128014990513695536574537426227719980078109714732429152504606951374186381852022087448106895720859163129057466889891496181603753926285329081724778045010631824100761160786758755149664976403373926660251985366461222022640438680841063114064366690992230359416498953725367205229155601320246559846073200157666918205138163894452015499948983711673392926278287066040904363756443255873723295538352805243535795547645465325802280533868302185007006314893412379303780954004187285377641343931363756816573445189546124421065122378210554431962761337089176305356937966291853386950948157673315724490801391020636818271873003178896700600273929028479637701798769835693136975909040909186432366285797877692110392071767690533824531998783285302364462748726585057289374316590136006762921116549052106192247366996715015560081991857885114641602535153289144516237645968074336093629942868140482149707406434301992536221925774154119466954495593068030981646986009692799860299542985351420916231661415394229084759006898535094403310159779721777346041790949388753200081494207826679631990533133272069387790319837977521424671315831649036873659144128035623721949682928275089855206547991949581262510497168650024154248895889368435185023207051989826931007232795030983521403142089292879921147589420614786278857892958600795469228560188867881575741879753795888133563203192503062051789784799950165875401282878143705061488045482845925064431604349798871314789514880884811503947835152520411643734260281116721598470081935206732075659857187649230055926833481483105787641777115099675001545484002120271117688250003408603200070529218866924654180097301115528407161241414083166229136325618049455655312526988506092946826026666087154158994944140374780593682821409494032883461416300607190366637823967051748828233072061731409654347853222698849892047001658109887798922601728470561792240031932956653620887318159190953588465011167592348706157186653533864403272322400766632973105447913318425740076954360733220385963796641458296301758402401880851255998066660059250060971285430568955031376794407809762186262600760418271984830970726490434234717792690908384727184225314074872444062621415633830132841984742192346371459002809411067556559598576354386387750491937254848505372497801083851787319388479587781935547521284888305335965565533012053626542008945836702296875080324331674324612859653703711617323352418234863151287993152505076614239102205607277182858568894209409459470557440011370960690987921121878191751757640333576911309581731896598116330235970623193573955981461887118000042753077642226191699234621893996753453505260214126342432283724222364868610909635506975365306786397184014682286332464963593921132689748320810662060357974059866347765036608304764505310412045342669280341346472719464825148845515930535223775767206466366044929104787826814763225917641244886487854770345243058626755574908318503331315775108001122022880450254384518451446765554566023237770763446121199020485444308248658119586923166372389870932702662409837240808097669379902289900533324861388007394999900942962887195154242368235623254450714390528604933710292917646573593061413051092918580008408943913567876176243472167976258339480928629700494559635747065375357104129950050762755073335005506832844762141074497339167310780122205049638399395525320143628737933109930792403592495274266628863080149921010323567422786192127990913161233653485773878824674891578639693223351737347276743508476115664983354539656004223902687663351936984227808740644930574761998138461105057631021084828462293897692251160454431731824622265712935872241564030292948560411890453715194039247712925430933284366762220132797441638814292303261030174974389264373987736358356620688423257388283818377626652855633691870412260286755568763146931922510519495942792266072043482344865946747737875379501440051135762736829158640996911883980050558718067416386504858502939561102269810002201450873810321276496668869160078921137243188989039310679070791671307856566929762310377491925101704501720227199748041262030600030221741018100291641155719903230953831199410073653969208488690113695198594785464905783884503197498748174190800106727466582059726839569681527036487032665060669849943734030325721033281323856066624344812046018093233994625146131194034841840579741306552178427253314007669051105483621291737784984201313143701734230933013628359640653287530888036984921023617801572677970940920560448740097247470054642145204818638051124275564799746743169526358124052078853073397278668547013785933537748307167350290631788367362237440278899763616698999599381136751100698355422205066066449530479512703454352565109323497193987420321968373548838777419433581663603999631643669956310689648611324203023040716293705435502631217354063581066521147729682176803798679297319166475769153258336941100368936530970128748588278992219959319747364941935137223613421616981417254045026998097090404822763350886243774556816461130768131395431663989081877445531253850848416647717010850973669069989233853178553034629931920499306154758545930313663477178204739899912931317527731695017250352428665400434521467327033360425429635833760072010444536264071165128629265210531083205867806524983301630942853304078104830977399850223315787722861912081453102674914701105481229974194567700547153377842395518738096840217232124760037022788661840294729505013032896080531595283924416952461874029954854370010738114738797979465079297018243852478810897675567906654209225434460337116723612850367063606823132271350613537731507191429067686479027030177782227022133647443586868640345573863242873406249233659880667163558968082059141344876321168975417845713970855631461162120913681453467460462439564259219742449295328110995475924957378416399315211345170078968271542669781834259917223134089047317970781109550096799535215084384415463546878731054584570511034743284224933125962015113415784620399068629640336348052454681236911538291670410950179387830281031522289158950669017394866103593070502008681111018052294314313663706868844430722788890932218326321183284894961416969161663560621593936345391618846756473718795915763853400101610846889414990073835088462157565850725088089123739519117653356406091544120075695633203706574075762264981624787958640911417870686255018771336955029149007180859008358127926847318799598866088631730322270837419583085522716042195803222126037259473715105524846947791942750235032719394834426137877946057062441781271125269633377826655385755501619358173852585981703798626395262467610147192981314831347428193676616915719905931655302661132629598866080356904661823781437070122172665545782134378476393152256725131685006311342705469758697763977115966878569796962917021108234593838618587052979033176233264316761919477979490552604310205019421064035804003273197374169886060595025180242826881164315540605633328898856999397825023225748244879680100739592554122751694347874026019231050182947739460815427534735454025949241982083904783727462313909839128269177725480437118797327309734253756557016158029331725363858533387970049726617303123821622386480423639214963826831887674313886767652963155818563005117040743250156484428532558779098991824160092156979845897705544759017941858822453812850990801207755877870654828691072972263549335834644683147897811532542071750409789290113188654997665642770988835910211642141019163882000772134624888399121489850678705730370499968480185547644953291781373519500341953325723044361091701994999398348959410471794003456337417844087374913077793031892620845805928740817824465645285485246600434062436017366909909792836261418815955373108873948981824478558036322666148011487662094620869901286069053101195752218163224090377580951483283515206057112819153186824681910526336361940993491508905657815627956577363676734100764725506681289025123619657614289415784052914994401981525697638473323660859514055834672197490725384357416127020664049180923525768938233473001007266063159541998196967366040989116439045446198188902466787701818625646474592721552968320388916019949506596037886273374298235610756959277440769414790240126269336226784802101346259371788916418789021535556652750151776852464697156756697021871602539289886016595624829233563732497461976207141553868901937875704009120881181817605996960409280444445851808081332429100491064067858341172313614394676989002289354903985080645361186526934284024937387693302135148146606604793260037369703214403925990591652214395767193428756336771943469112108841882477864303263904026212827844156303614364853909308762362361507734766513194596237541460041944842725043573292233195724558850205867630596460362961283226555995022390620415652906303082409449809532952686543371368204816666960397868971882218864355709013802444842732833282811826798861769815654961305007538526926938217967820784889626943214727807806858471619309303194541024420667072369099387665504221203449942746670581859932489948695297605742392763202788200691074046508149127764714616434515410398385895929920613962296949523649112026892099427305378582051192975794589431252351056001781357972201167766172612444685161974334292714724668947337914625912270477189248873763001956077227794685189337741783996354993342429891018277390539261090157019328656502209461637780207858568705302528016670357705481547498119621245569713950420491381718364011440088972286994808768046249484934813644174981531737604098401032382265193171116110019204645413435349136641480823723693275424704257527850194224065271653345183803304801327407946789621295873584400138434161333144590426061266981179540023105867288498284295048320038901564686650717547664938389640051576946242077021564801548767550684608873576433057357461832029061453173335604836113905653283547789265957966833448083218303597141460498101495915824003516619293329861787922167490393517431351909359192373476945574806301587810991045325385840354952567761170335400230429734685278699643228797588331079867704499864569505474215934851163281888928016181121395434075042387056184593391747162149274258005605139324376214699676978296540289462508826110743888730242809635881944989081519888912104543593351422310619096164311542100985653527406065313990661828346445437539269896257993177333231921735452689756272286599502929864255229196721377113244716644985991326310978477988791191046973475812051452441332817070804492839776051046449921044571926799426354949828803274737768798081338803201233944386424260843838924547077328531640501780155158696517293632152069846488497473576896340196286007613522921765080390687156816136718801856210408287060322590497878933101567621874990725542963471917168606192952482326745940880038300633719341710804277135082595272531507259859212047704191719755153572270941964263413438758118632591395147611195782089838996486301913055573157519261713099910679906027649687140399320984382365358624082065760036800442433010636772316285293061230134513435114986357237368689528546409345440253009548698738112101011065141955396839655091334138891652250447497272051798636069716725205935922869419382102688606914362376448571363537415975337200427731468299828327851381187642794697566824452503513005431203312079235584931438619024883323901987303853261666483297437188629598795287202470744640700982576745337532329202761717382120626423439149825194909847100062560484874556907506549503074440009754358371226449041805973740975052612573221159255655127428615203233919199018679838294148694888605063919121312341872766977554602834708523351690371750604029323836737663156542975047409264940120448023262298655715811308576161757222804597694013741350520857123201668521246196782077133834646593273872748802641998784807606731208835998285606442784426122365699201638068080932407030933528390495310532571827130785126128309572746824572166158676386732794998626410593270964706138413703746925972470971405803198441045642117867077676917831522672326792815997345723746895236610087201101879042153307851338838940787415278262295213487924225727037453609986855961983322008186738352092473619571915987845904502447907332484251904990956166706929808105150678826167382276990158180709829837385528447564302856559384051155692846528529502332169305939519732645898196021487770843582534270428586281213131381746844107358743079767541030549955258321610435925070631300620585788576614049974086892490270068204113467884495308458011501188617348010164128346829535128590290917585455547060979139677083936254975868316321282860069259111255625840407074415868046884969767139268377919669177805673148061753811515712609237616875868903472278847512124277811621687058886196530143894094001344117589323810692958573609210990905682420319922663834130687484472163160074653091670926206361205413829564340970652104375646129995936369306996643450764211199476159352237906146231900474778634229323505204158177481976298721012789636497008568147889548708940821651017523644023885854505720309908377911983113827228532132999691873689758227585773905094904050789740538875889758282646237284233590184835094384655148419455828423077334681380106362385491808784582130829878218866344236985808239416079566057122251508193653027076513790990248799061712187429054681013471817698346509674574642092850145438908871512213973991197150798291806477595848563897516313522230901771066162939697750419441333081152466477578489011977005144619333027366793427814359018034050551708545908195000003706193068522644379777737912515260120412622788139492111460987660527571214007556786900671767117084226240638949400595156017919138523933401743960612432685482608388667432100832794083755102353994671290633724266739439687832888414190204119001837554963498129674970489466313719323842259349997325543593861985843033077738138509812061384262784147456290267684636241840740492302075206881703850912055708093632716643059395731527981333307861893750835193901527255777879091038959776861406294794708454300758784191661542094983087023784761581647174736210413524903977789413675335619856574373383748453024341618818745332243429966484035370041443172894109069367471325273231420690397513010787444995927278653307120723019320173048547643491238637937915679646495089058000430072017704864457373819283388217349687044513965644319324547175651880775514732911194035875314702018119315933703048107795216578626359948540721804744072388930981180935975063703346860437615598930869609980706979766067962373658002775631564913626823835462331822461930497738003262692019636807084925421367028065300528302982458513626797665146384288203085198006191893978554689591977395430371226444195828618881694763500176876346676178698899051438325559066660411095950357101959042676456462312455231989349507200566220474719042842787571427032276451452402830681548890563001254947393171733271360277142700711621845386410125080161031528814831283242740622264335003659666174112288895664056050074206895408925614602215928873621832422981977995961181138585989339610419376317697771415585816142815216743727426637744352969270896064839038324013450848911021769270378788632598495101543733859592485378220982248785300621001084174010607492086240969944261560136149531378122257988229076302855764375912994243424496243558505352327400148819098518759406018998782994249222435841841735270486731535743685665099253125618530050231331391314194487922794735296169903238226643490356182312820898400844569047813328972632414754911729668263872029914540254177003149865205950041663704888783536658881569721256930815818701791396925278498539566765331422903964255834555740147211957128579690995641911673521397994403094787888704558753257439878447699964619786598540421094958088430768683255599550076556922491236777061586591841170926394225427839832575618408890712871955699013279015987473141617014559310382100665805618873570968304172128798229017552552706199627621214351979293053285576782003690271384618916122189355906001190371057319325844742382967593625720423858496475674703930229866425223311823764290252511824621349250059781405085900940024466598653411540006974769948618674354720094011533960396024837923172771030034494242675799255871258546399229113142804740838437239965713460952930529802514669735128063986894687700145109530666649888128506993588538276505541224894969200598458393103384333766835910347420573557325531366750357398959234351860819344962539994451300258420170781145783375956400261636047753637056735883461531466287335808983501857332629362146679696004145308486230217636085093526308639204461978394869035560445253352271800460394041090249998765537786643554652661534952733095426825045878040216018875575247572000215448293166555546714785352247941051441774231370826244855621512259979456887335343929209829666846547773284618000214807740942166130890770476056343931608295954867007299657384239886469876531070506367872127612113972853010754497979527213196780689488433412777124820010938348301565275004278590094208644875050692828218357210180475392294514097209541591473129725155569461442758249241112924638071568796190450582189688272240303025495945887555773781699288428586936566508178271250720026444691961099354060704416852259816685482726558906024444524353782485410842121593584892519390626462017094245379107161903792702107903888769667592890779129713081672429646532794978881286875633286464346555368646133156672540227549874064025177407985662178954564480921373951571819315090793805084232391237256743099108291762766350213034291580117078299239130305276022238221530651601983456344716711053785773402599590216593238589526077621448035905180769956313339002135393958884312434680687015963466709648055212703625935471201054865349627806263569494244010467419133419715850804053924242259100883025666841229953702799895648442453146229254868145919332877856055802285151308824787423934780544862757527433203346896519985108296971189302314618549119486465977948506150589811754014587994480706553963972613034318995022264131579816269235226482434673969728470897232584935147584807849913731053504077309702870210559720123152667716180655791381173003152728879681230561384150753626192880341459670526635140449887630204037941968616873054703393683145648185328305421386814575324083493360097605784736713889936652385195200183617459165625400249508381318633731057062685171038365505169444947827187812946566518970039085580754401720280840647233945623882557750727717196956382696578159266104289627327580175833162624746142678741986190943491097858889210548294596933330886581710833715768110055457660335588161593116769680160899850861094773632156959524728350287038752468049193524095388006219661912618876846114894347000422752320702908280112781391525777551122308131319412346908787783900411151379892622621684991417329071320211209925807140999840020824011408671098367504646590896781786798785827370586956679479711325460431159226146947704640318776512290491115150755117278609026925660579327442234978661215817670504805847081177603511609284686473862532810478525485864522340441222683430817841372807880935836967623909318942800613534511169910357608798796140169648371651334918720316622280228168335990938391888007162079336945727082425627336772907947065433772334836739283339770728974643199121548733047254178112956673707356717343194667213567614024614466061359921239960056462403355067509802322730856691410646835110388782881637089043027345589996362073269946823445376424618810158311198522361869304186023318211851526810173772323233283638072401998893197865504477787807008592775819824676154319508690898164947493401075645083642044640595409347533576023044342857734863884083118571889075933669962017604736800442438130758718689693778641863716203925465064391901052592861456482111497936620561112775754299408634241918083265430118528704911864773627196120785146652339579747126413928053551874252139139679285159804261107589183782455211566660849845320488667088282585378801113761696723980305870441851047540374123325264245519252265219975404341348385670362014968419197530160820809485632903956021757074416322809689318452897467235430038616445052436666832679891521355392911898322634549957950974806740183750148744152604959537784654949229172089154066953995992741794413461237922073501869451390497977631826520221930411447322202443401454873620066689948296508363121310092503879882607086319993572535044935781848963171668759157407720583458828701724505694570029005874944360953858201814164649736217257169906568424809032043778095087301235815079343289858431692940108970643541256760385401778666032997333204175067844843531209354412272490561160076980375334800539943668113745005767397633297156121702385844735473185200053130352511331092387444612474643297263665285740107258225679552477675582565319475804975314053814866763090105693121343319346574092901373475862506891981417292766535701676310578831307830678289493099271160193634509148550246012474857629899444739596178057682279165881265298617882303418492287737194346431166833563254601649985371680466048450774962823144306622427737374262502372892809613875132253529024171250505435704465791757057667586598058265769653312303842504558143084058048822063805482566675462520164389399942656208774835962318636515756435519695122024704417845193035469885152730620720019753309718601304007766564487310869612449644005790011603407252164213044678903340945376491697062165397196459665723769082313107652128589704492220687318885019090916349493934064555371228089455985926116531058280869880448177484204804326028276943086667981888251837396793156096263776748223076064271981087748305290220248299852394662357014122569468867353788311261584893083285779351929904402128720773918553259203097359834504976184384963290047653789556028953939682032083813660217963602024902006807240911197697153516697801780844721369572026639156789671195219400403828379978820944871165400759654576836285572038338459070123914954296618105993312654003533079033675234933971446991343032664963451502791756951237702221566145686194576353242344857095646937393810724445610509188535951909204658915043223296314330226838232985331627234070077193707683440647922152975006034935489693155082802618549131182770433993006507523662021054230845363653267174667425011381897624837036593999608534027748814597928398252237440278670804423611938735561611970154744192190688024611649932438714116633171840542234347153819168837075286078363980385880092266858987214011075114138410587051691400758105325986783357193796022031551432437989454008358300081971962405836067160688635319888470416166650434321351362843485769355764981359307713076439542638575386893231439341110782283737403238897909886847507364217054097755957764169792987161529356764145925183336152534236141198243986152749439093138683532899404766010284085765373039134153834725423813815292513928840323652005738479995567602560660933189992071060371599433461186646682253760539364322668473065349481161144945780652013463035755020536123642297992925297437030273297712361772211402821719129320071730064295560805862622733394408861185427209095950917244402785206170355604991327221296672651365688622919058496330097391033692083475893811536529041467858938360332049881241167613471996133740532536359778123089027393605761634986276946881811061435978056562028477111910665269550549941274118860722622974522171704345257011042021018640091435948162227498675874117457347565359379702764724764957366332809194655848529928144167408822371205987798371227641919439741926076743027840381552760327673052523060064677491734400961605779241843299748301501053355431413721388352987310663887220150378131029146936649534973785571881117355066987071971215322904131411664595595116955980692893425567883715861149087730254268572642850728333880237303148514849036460567992287129853126981405846440520304112010170028249304614243243579590289246265469254089327200355929379074812699705923683130352219320651336047058017340771971893189191991108998412072641419025913534410268336082187538053386994947822073286037341354127548522734458592486607401787613512458669850962260468963286126619085292626587042307785180424511724014923825420320304097315977367408728971181009814135750518452766772770002435734533029648348318893297748761074664706534994659982904776385192833166639322229765465962306949777704323437155545284295016125817297143435350205822896732014621943166477712836942846825282103010430120560983763367517676270830972339121844189884147760562145381601330565579538982502103957024688232867780374109888034611442076329142540168956941590053425052087488883956909737397466859357355340785983117935310008378874333252518617579741999941898269057614218534092101271023380133233341835137588954383851037067914509482723729369945922685026492708335835716130095707074094279276514611977701130807215011517902437836607831870643653066988067317246819706701893281956619967910148417166265644967695372933294252862769159825523821924630637346835579422755492054049308595836598507888476978686882966725514276710943847808059978144856298135872968538219233285884443693826200620262579534114708175684789099466571528027732208596871557522926150032062421231007821378742343165711907785318158801373398268498006979746913276908425256570399953332826830469097439940158787425268702863845386051028423723065284775659159303043981689515406225320404627359414974747888203680800581766863592701589571901190741590274556669586800937227397374741284548275185461335361210483802668866779801538684244300221286578194553527984711348234124254362364150907702077421347729098230952748677224505156799554325115354912435985208014226849317540112015488750300847234345333093753119513904976328281926727129976481083699677893441983148575645401041298129586923128528434763807688760649788183280481871395514645759424958874236676510777041675589652505116161606512290430786972957898120312234490944277104472821926184415576515930037647351152893032847656715620182366961903740123045007950306407889554530026885859530256548433354017443315702372329929794124117630620916771879098228263870604976824200997154260074999254957703080472302585340939631601226930861903144916797332041192716721162552203864948495865225667555452186370852589792308999473866662502368927234322678792454364412639258873392320699708011917998669654360211749790635854876675465070061148362287628420014825071742691445638545434396232703374637353032130119038025973219477438930104190777041456674100990936275805009629357716929408908973779654792363459278407167069755903142107267895339242696994142342531057575341548924321899396231802536293447569182632503369158277121636552333651109780448050065606539653448515577578459301147597112389787854735449436447177543704080020185952622052173745965229164737135362154952224474846335207147834929869127035458850098529918999008550862088133894554080111282169593497349777325917141365230694834158085982946014793473302542919760999417398711773362254242131663652390367666364617582752483161723904916225203148268733091296924265741764908935728436796772593034583282780865289672604863298663872167328719807506647496415178606713103041895158114364921974326459318385207147801518431458095997949351333556599292803640833935208502185304031834280090084588447864310288449484479500378940378968432122753291807781765440427229219398855388709380892465554794118081017145766394319586585632629996069900024584487530751705693474650329723275321205050390599497447182257512930749402395865475399612431497232586851896780965888554064761625262034541910458118795675288453432527797233480878825002293920146601360312760260576750193515032534220382955559459542021768869967466256202622292126251562359767649421094846669076847907893520202364797425534114172518045950825050002538456049536491487302536547778784667882963711964954516034784445237094262965254734771362277083059120310165099237237099655961391173879864979277146703460830519956888195793924993943669091239759379218735880313301312595280224813264985115948069119843670717899404158931757300183505116237966867776854544745915126178693040265578300534298768530650265789217313407384461285324745877062271482342088026550688397242548055169077658069969950348586000006349269680790146693254950712357018334312756474686109651138531779653393505477624749842381279863166279664405588276034301991009774494564940106563172418579803558023319920161026865715718998814362188234116894519132251601938863531022830779545921750385907345712401650520569300289135149296407756360596710551605942493869915504490587689170812785973270087998421140543924396615970084001469409317562840617450732492623989383502311277612779356380020034058047474662226364070157518057738475967570433940002219248987916579407439731960109173479270092182042125534363709504377753481932513839073794020820376655935968537891717370271548201378698608222634090308264921661007720614911209348377209244537789787378772689232693779874209525591935310528467403136661507987014281270256089938368111340390551258025675791108255209853235465647238940670026781499577495964117562952560040063686821726629882982725454615741653253406269362639808784661276719172332140661746938670206203033757944147666239829759246312702070641290459285572045290573140748020324213289020385343114177724397471266378846866622234424765631302996993102746392373806368576821213304945320574390652161697299964698140781010267277690422780369016513442932058386120196678137320580853354021647375862831022643568502652366690855290126783856074872081514746620598930517006569759167288790015449876064624588273160007512342014376897060592407697054601586239835208700925787462863889295219416892698094992992954930858384731234441420845094211169563308400318203002943442613327456308034348349219077583992331599579624526024263547699678984638908818897578620735545524117326373690743930508079788435261146672085865773552401483158939790959916329245041087074504637091591840278058295127600131960680466352397693677191998181103711923522948709998107969756688158052278511047357466987609958636593495410256121991484456803526457169488559597081410503950130562054723984437599371308884718759517542617064488133278157973955112898925599785081017237069357208765025444514630726756100174633661525294052879361057581858728547811291095826382323119426698032358819628436457117189946094454531480532394857423701352322034941098591945749188461521376912268648413232352958887398178033546922142739365228321061807113537673436479707382610203152850514124151321769198219082670481938955505693706986851230078317485663847422727143570553350563906583599920314854329594401023906831118367691826561815811813513502236139608887644263743079756657726004193094843309872610413553438878766521320816600835798075424765593966051045504905999576206642211364560881435253518709351909508905055607813008744601505673234820613296510296363209395363562079933171223685134193607400035237799186383686125866574186237131580479010173106794088302358938481400392693863695387408929464803084968188248555175916225135090123563750233203531803876741450744611353017298632855623606217961847375408423430281352829930890950081106255811513422842525947174662971633988379638235165028129785592815202443187405097656151038417178636948502360400541986541677908276342957430977531970911625483736354865575120985391763350616526874908748363463192488033462613800772251807434211278605526605020874487134678534143058569709374422004875357339566771357056358255425655221485933846336803613881819211624976749168667344272886313909432519027562889783763055658258557720911414560471822155842206234831648614475145878468137449627619028860510739055528062469715194564286625879715340530131104375250275250751392223966587723059037142497453151864231310978057395330031854192046895723233314353363569256647148059806601634623641348598411616560812022735176266379308947111042712905429493120640324052356594831019381627359930963541815223466680424734707630737550635245792595305549026199751412618429210073680634401265367939600138979984085411073094971861483089963049771323513986329431736916685262563849927120360833396662555607038753316405697049544623597467804284530675439984536536868830303499544216944312185538505834879179378601009899487840809188647727619131570941281340861939963594474957749709877279893920894787928159347235738651246460621923558662040589347998947355408971042333570245095024044268848557864850099779319038707579251389869659753847776181778805130113289297960706313782708528614574557920382165789872222021151454153904737954083257138263654749522552363344729214892604116576212470591724599693737114565248992025207603839137718015514958813854699789653210519957715821911421658433705154955351417439258084652775590150259804662946992128059353960989008723290728389981942843111315933916463002008317756820292016662075379200360447008185909153596576837061287413344130148611323026924132855254712558456419631378047477622007471702915041450860169985866886890085831906667580529345323686229826789223360537923950019117898126082675863113223110580054796686961047719111755608575196135815418162991522528607971279242405941786650826695904093535392869698663833022009411096835296725393402216038032786912516135382566207714781734509373022545664152822163665812324343701645210514576768300800750656718911077887903305415198788842375555726058939377340748077870674126251452392513826991033792094732562919659858902070393393524520496439278411675189732019653065059907992846124844635995882898123631096141834694531047347087425852675300491964331539653081820453323319891358649771006174417821641838547292468059552239832780134199580072796458300725878655890668031563082409833792357589667356673718100851031859349534724929540451699833471239872118245182799336478424803492874666858028224973787918704711217976223908603777309393627204053678353341496655117660195968746424890810366833362910620203840422770581216818237148993756831302267692145962650520452587368848964732484080513246861305738246449560929423846304898538666381146871262013860505576158857277056508542294583703085665496681644005069669586537805528390334356760397231679460110237760159011089722252971681441861658956033362757908254600054139361856753887538596755225917931739264425148668728845526359091163713818372765095876838988669189407082831732183681537986233512340094471357335365680459082182454583992517710605847440473436162311823071512118238344847923925693581173099632890299125778383362458565356081153948290109301286834259347279727872951415747966770778714126479084389939347600703767364768382252480088337550680088756941959621444177526040985564804713268097066025581257506922799861341143750993840781087239558391886810634812474832845293124819002371963070655217515455098608194466738840321128631601763279887989791332026948833855026264968411609483065445625087431037802851903025680234051002691590500994137392800705713001127988213862241792598353659371598675163336745301561677542696950474501553687388222465886127513898222238706512076732732807458004489996926956022759693666412354501931854431621645793345653267684675411841411099998815053379440591526065496146203839381051607070866793530023953614634615069355065235351937419743116084296885749614531063414435408655527413187817531003145242936459015442918590167718935536734692999441468264830020677303859896985551996834516521166657038217305576767727322593208385432592781768003881542753825240824632859605372344102504548015968817977091939320619342384015770998910208270051657857332454992760341978775270523396070782562592786197908590998380259873477505854726583329911969719619046150227440830631097489377345398303268963227971736843554879892907401344470182629048448081965343613601758541278056557274093169887690372802277870840320029350031552628057247690721025593003318934466261880750894496196341222878447893388798081504369548059433382337715141326050746122741759047578334657005300566437503294965284938029142509373086219789838791880828755911859320810355949550926551632016090845861503492710505372738214339929509439652089494651147153589066588049380764854037932404137884624517511273308083383262049786329014319913190678650214261541099820844368999674988773958147934388719909077224846453606184776441049655338522665587118149022013723556591899687581143862863440532518071780596088199902629688247770767668561289061815220434519074417944188152733132687683230439656581800090489733303433993652210529949906744543581341395352168754195846722038321681326555216406473113170967925989023621104448937861466922234935878111034790793992280081392683058171180582900067867462167468310945318667285347830482220039441180242389631643542936595374377240814938630159973088956418578286844022218997466282311235874886310127538700453060048483347938828643625767450043423371441053825104656471329300568967567526255896239404984950333072595543692953189006149483683193596014142561016431692145238562759820275784432806320669467639714750670410592010960396557990402222963284620640902721800677339650156351611131917090354654177583702612741067478444240066147232226037016321598418011843293839718159174974903988588539008595156866621886196904673178854595240152748137956304537152257180075438577936717474200449724783400058900385878813470632081864013620960493528452162215064820844339771972607800182458619947722885066075451090446703904755915133242252473327184084623613306794341469850647565899045729110174886150983204010722287778503439971252286191803938434692167738898968870356398400926229846437233583014515134905523977557813151798033933810468062089605176429233021860698657315163240619336936137557101928974074268644826762619729553794926632626616001262251595314279338209171551784797110251197031628329938915796919487650029941690923891256436871574817584221451251469337085117802041583116070937867663687231813059434436469111604525639574583615949033429539542168769783508353114883147436014718277833517222275190402978759868882634761660348554117777297437229938251326469423927412986596930404194563384435268893021744473329307007058728879993373542942717625075691282121352871447093634233914652790395901711886783344136623060760671909095821248743200130222547801583420623263364949053300905466587185468498648953991743061165273476259468200995408314817647838496807732316763710706603733847057481183914268559511146305850030326074241069061501778343686553557299431313435407840763737647972786283810421771614961603582931878486300093333355622783180968453661834579876773382235158356211142093949295166157531342811851156034706396972765094723275699812567162269688549862375642965880626040312693063507107762357628756646323618026001192184757729450074161999774352306663020417151139102779573589364044007378697461217599899979222695990686720649527915628444624216621515954556152125992908493217844363361159533144001218038163270535439411589181604983197347254546832008511304925176061225606271816781454231147121932741120943865192655175888917806758010081692149356437158404977272913577979311885570139295832428309571295614873797016775068186352837371945328996872642952728036929488432405421446242604984532934947034233586717226401801429790649615778091706948990374623619890094020371982418356048657385118113177971456365262899432227828107907481415419706463140698082665973506422102777429791979731034126884544768891133716530137617450333953236427162427503921101408672736612912411165367740455070449369290380521141813004895188124140742948377243942748264488486331150729478986060875822909287627771555372317661914298658474333240746570172353269777414635769983279414307987031122448169587335863361012151587527369280196473198304531008080895450871507836832953654657171939148457437924571930421497976240076687351725645079734598346152486124042114675048562392918282222862535658890280500218129067560976145642740603793351580945161073900028186312422520181354269289548258959704447243108984677756069622330034043011026631936093522440765416504964806765109071598487248387426509127190031632337645733605926848895326601160865501167396210106908894615855912715634269309555424788453034285812734845357263040829492799152625775308211489334928290215790483989370787993397430217276180812861949987510194773628660240990748004319770866765614408401918421368302872020538714953320380168425489838840588275542728808110356545994176377683992930594589006689687409171687113588798876443886396558587714719753273060057048277838681918269436429935540120134734223209453731739666504491102867323690064150724981769434670521744000461640372424471781793392625790752819892762204651396042785070730149847349410349614971569358305595440200091412126710887064637726664758093625530172011899002093803491155746526727348281712980453034377671166996341079093523566349365727752986886767261334348218018847946381852530106963659266961022703902988434859370143817260169356396607654192430517001352945849623086551915813998243577598833162971393764362108400804234136961702395594978792609235551933111291117171869155064082793861484059840487808928194697029396520666511363899820736304435011164105929415460987124715055001575852347645372878137290665687855136858299270075087986011837852852609570064902612835086470190174784011053624464490814693127703649282069177546368072597317615875040386976469308845113772978451592484075324415370440243882695583613452006121706436747410809286886602631486398222643038485622572877374286082690713614033258869400961382965211740889341960627513603526440553252718525364953314718512529411811624692383472646013813926525082592573153080094909728890257209077092392643018612241283846642441339247993509373793087124898765930524841861093105750066351019406217609259205545078406779673311151511784911433917496132135869220651166898981784914801842518831434652101681596581586924843158846272072260935915395778812965523547955285429985014953912047018457358056273968640589727478830430797209855843047533359463023085516069084093079805972988425530053838860198126418550267606453230295586066472444048142368471631840187533691206679018938290171731983401710743070095756078114151533550492332925256381472579951176239523426794443805580865272316242468307953961766114607666945444629428885272592912245336171463558011863865153874425989733114483547401167270537379213849292578890489047933951588600398811356054643151704425717461233179433409621806527081161966654658596163575085581071537038226390575993452355400604213167008175168636040272820515176981641882302174893786025126043019265230365855190854114247526622573520779923427694668375089799443022185029778312309837354793505998487856205339121845282668463097226838602400444590216182702757103618552727208236519311009556108200166485804591373580200480739005378364579416755933378258036279908803984288501184075312388953596619960469200400801499104834346730403860221065881704736054298085889019107644157795832133627605350705918082990011351294735286987367798893785694795070925248196935743029603181203147483755233205172847654990619231426666959501473178043553769380039950978038331447406919011294317271429486246701153913096080486383843347091437676552456492403751171128904207978602477388505858512719276199959384168930361278626218881719602269369515229203478476769412883490703616400867531641629155316319458032798643059359043609504926874066113757542641527566915301879564629767157916639427099642069132260712934542313444555630592133344544145497812545388690847536096352038418747731170728300803488713023614775991080335288686142506974780769201325983084800577490035396641660051710419935880314595591499894831118605029386444222577420654349712276775858161009937942276439094929557375452391913604523993684934569912522935175635383343351973265460790570783951737961819620880964693765186769752296302506980200022034995902317269825524457144390074947844518920127040095466233463215851007177666844993379637860284961341542118961494609857507728543310823033802767606174729320067888663637059704265966216561753383949450059752907098477455080682333517429912252693270719225600041263757413289329045896716817066899534010061656079672863357732474737126561304841657313478927660663350177455371036373300471052218792069995150043504847510683751107725972082027410773692550442072267610644039207439784964388878178564215799532345832689728459738887186840077176705087153386882982467913925579619291015617965375302469467602598526268458962683519642692439666354126556712445544345335138780608526054781110946154928240240456679355833194738262780478387604649971506022867547734989600289635025011096116028605836032706550557712529712242114427979841513629240256214277534371431138827246582892574044924520209047615959684589120983463387183063715344883747804151562260585521741432485170337952871965203890219828949179939034887330353307142086313530885653265165532343997329217924183514159312516509747343461645584812967210777705095946758908132732569196068496955770884454915132450928480706011582546050533437693748246322100993760008910714078760660215753967212703968943662515071274289425723238059259609775923473441452095847762299697712815720411629843226220066718916548556874124754864621373506669744340372446886665816893166107579560078541472944400849075217606538592290789620072769431376119839294034950466070333141545925399716191340368232835408887912548684510134530615910518884612316874176968167698594206880264813160517498441433221720012548869455407394281048901062628361379826616509353062665881063497053674807528302056531193661543035464618503190090397674141338818946464229971198005442617345054654562760800271508525061779870449914607287412031072547135914241248652678123494189566977736477742041792895002530617916826183481612585469322415923219073583368983814039066514043525710759722262434838778367658473221613919292186704150447846515956148035593327109167117615077044501631705044966037014027636242554454585584344001800907429704877420926795336812991141188517981448946833776151096613539071806039088527102284696301301755684117910700824277346339876621605622310634340500933955040695937327256037864502273638789325602506530513918926599860386756695273933807597296472757502903690581288882880327076802205657252063939910998017373518722909930469412734051560678497565966931819843683111660640660915171976282125381604392057854233024111929090952660651671889720777968305768418880427578746165378502053541613622626455459014382834930623483951417975809170762931528473303029436285707350294491856071705004303542613279299512499608533730206711170713443322013822612913344419826374358035022435989369860119211435761133682884133284024135134610915791711621788793878444695859715671507244995987265819235559997076161328963398381578084272010420886104158641993369632554363215437444192278224328693440583285298504893007915295905906774348066622780441703803409912782970907118582514278765284942511702272792188300170946034400052914267480815803549368098606781855206050894243832184881278720819075961434426754031968977718107570252569891736813455603032615121600612564071025732293175610681781965275006533487879532431770782289575016175116729878296280821314213573990355612296949824343975074660137700708338290418149227213682240681452516987451323524382615981870779470795265527417636763627676746922146362669144760219505564191120527364460190729678448953210021148952708899010032797411075017582416190765306530924636981612632779661387219690166483544217025436282060312797547323149050919842535176774945848165462997471966975691736799738640260451333164879605985753614997825260771761911155236508854174087828527026975426172112905433779048436075977130905953517132923237643842571455248695750019447297684759841990405297600060787767657016849980941444381056362884272990981793000793774472290549951063245083066518823545084584256434090098381056113177836746137423176962647392794809057755387080983547276683488596113979706679868042147264602598272797548520236586445242390863876034679667438246089810152847348954178745091618757116270290965591919636736433373540095330698248610525874246694791778210252905386302039753789929078873914036385392611877951083074494634986825767534381435269036388724322770315064554794378110545828954971495586301149291288426713182944590923966060837397866988303485713988990083182730071226698269068805192406769376428100599271419485229628917147902275138548419439564148978965553287602018228826331444497307475107091368656903199663096618070762093240462369386750881393491866337448887315162848825080317213589656576666579365788724036240622518608075686943887639862432859959383254522025274482040871684930679948745353192993533254269172962491133377134874527584145516194733583849483929874323949567464394182289173966192654846761399529881104233974604433437580334996988717139429611233237886530260052330401980024635473876257791335646288830422386255530802819183809692957023429587086850800720209767641687773042220864732438798009870638957654492840364371771970655465154993138992073987617440741673347517318895055681193792996468113937705107869983452081763140135698925101112890199862965647675309618663271288794105012320269833492405618480751886243413412756038002905712744746898816978819097600281079613474958178337437265213923159645397424248772377292572949085787815602777772322278804971655797129475922896804205696154064354216111698384272800855595973832144153961204498638773966535508691192501705540669841015336669484637951096788551995695291166748265047883073165900348129683623702637484981654384656549019841833995535742492562528341015918830788973147939798963168499577865799613706533244718366367328927044294141719513845122102291856368666320897217054838938195397316080658493922304195795747000210247792287579310427692499529145107257105926059669371200477575681397237008350041272386291262027683277896249800531423477862312805702893482792003846196698876653798507256699537988800910342666423270347507641455864396804739738508947235914287285296699493767963118128890627624192624365483784505039057199573407884547671782482844627854006602907691279617166027815413553875963869118337644748566516547840294603335818789945572663802459129500236990503518307535325509190897137969645030922157691950223254853033096267173312058659183553979909518173143428292663608014333316973340809070674976167738743816949653159934829185318532122139343166030736525150353238165576000365297960534654136171745213495622903928496564166452575583020100672189708038758870236344354926086999726602359793812322784752714372657191564501212432437431167160159018555931043399996169744680725533504574501497451496992477832534595041922092113684781677990061631975176551354196284474710936618608280768851382485692361418077937461174716409249488860733299310730772388443282491663633202736554234616888390379444164595676899164035404130821675915491282228343149736187692201077623387519201085069128857403311820262388247519116621557048761275767872734950070854541801074609214399212136160257294032443344730806127928894988617158279338275047709550831938389472658295611876954033444816481954343284300591845985518607905008551665030695759139309388749379292036847535585208275856526772418960508341683370933977206297351425121381644990003548667379856696988711270288571617985214547935361055945898034483558172125728476516580347550693594525506067429389261312337526474111957832335491337812051975484751590276787724151408403300073071430302175052947499805830684562349952532713153072294073150999845922816565448271121371958217069040208768902566440982653399417374909105160428770213238256479379584097598603022022707385226544412848961342642649489452592369069835710552113210224754320202000807738203562382654841695677995691861935622460363754489835432043911873160284904421799791329349102370785121328142988738608313546209648305289698199945469992434952621737630443104760542313814858471936984496694104015340723761928052410896496625397131409860814787029569771154221578392878305930855003004350317485485997543508294673325397060097126691771531356093677306576731691638198855980016607406880602391386661527885403441885966078202906537849353747295914150719210526167639056461766421056146319661809525298212221309724346032750350342748284724569618782095335060280402536889675097579872384231842988244246319894132305202931291476760906104804462040085180182159935689709731675258230415539803472158237654919163260791462300787744911119301908870783069489141887710427188080989023683356658147092051845418934477996686310426846237218191400131546826826809985558112715258663676650426620427054970646074378289441177359325527458940032379581688417970926183840962670990227714567899850709533742740065635620516077020283016954085685845025424589929132478825601376361695749858377295075251284643816104231999750376776712939643042149932620370911718876066447731826971258827014552777684297604641331838137157443983565931387973432665983047835352865863449506433212937632478126811779449461989688877626451722736285863129214876540583838689106486324637364153222936350467851262888303040268049134698501514731759783964232813852771191838897352681568841683725124093548363096852482088199457606379662527589893474349451752354684139353439529265903634925452624439952098435773972703179191032792016531818325990714270321278436616711192229095092828652320445328052831056567897454981506235821908084437496388805836965509534263940696765689674472703230025946681668629670068360966142793234034709108319997303163765111086077408868508644239107385097608805929545817400770845137876111850165426884179683192837854311507053888284389336580953818724849218798662391945966779394489033403456959880202246903713183646081269678601599306271114474134186109140668152405100510506313573545031487767909246985090632371460535426467557690802938033959268533370824090562808472886644982472869064847850360605890023852143853611771141862335445272518969040486162698469549175027276627127722891151161920668644493053741937796666539064333302399327505940303047077879109519839451391226047456362577783908783302538486985930306438201636635558175091686236455521628984996315144790276488259440305445721265056729674598428776089057421476401608767575071704492445350744852133228970304261556493367124649988892928304745899463266947883365714068091755044130804130421363364958235395405698866183167241815194323483896774186316352335586898762658147092692685257030884772466943649833105300206022110425052867520423110284641806037400490676901089153266613350327177054509831177646830625606723431738087430399416389765174341588506910100140570775917968551689160499826199043439758399957294392291003187041990277248047829495025911468486516298326193513718023410079727659080877435490188020246992426487234450421090997984807853772714816827439231640937503433792789979373498876606187366580671725205683946927131439767908761799216904188126541540768367526504910600054707830348615736818397427824760767713126037646356210666994892147515865960442582282028234179693374712468593800861246123712218875230309005462769351555995036122699383241767400578028063890941172136250170858896138924170079992531890534588888224128434370779097965436829129970495813325250219570761273537137490019462037630801065319142756758862561575632443921419649717399297177153135675534708306205600928714623736804027467164391099514547101842317316842970613741668736042651642439955282438551789237579177593553380889623375086990521433616195056133352513263103728196384317733422839402103729404485338139438002737252194031297711438098237479409638002132147287507388391838125525122715446813406439582440713082802666659245052697540896304363594790265593621334471521053060301382979274259513761360422082525774991653875622246701479105664130840784801359961920936033098844037831010203263980562793100686652793472593386050917522867000395959484113737572122258384085347707342793061840487062489378501670610680268368310403094358572803228410314977057204442104142004477118170647323201859452231626259724162273261967697602172038489697929461050712259805607695581617988174134913291625034205229348547437506605049738518256712485776731437595128970238156997805421657253964757501176004583419149433176677314295766203204093994291009479239718688703845459694159962745994251852225492854043248657238482755916490458983989450492288714721686206865378447985406736704766918074783634211368044400927829184874516558305402666253991682687818059704587689267485839208646004876148743717826424194187833507077683548401737588086371094141838349341198266609248711568667669431318207634379151136522682402590688717791652378691450682038488293540663010120554189093940332687778293697986548574539793428316674997218795243222865182822020355094537132854753549478204275997783648569509580692626257179920791334041321526937492891020544250443397357451807010731467418654901208768695288153969264619556935547522819061621016504248711725841542825443215320615587058628341207848404081088112419444751231619355304285552316152759877493821773020455928427661045749199791883823179504702884882563650078340417668886743058961748242429995435244219432420660091786740412189954937060974498190681788013669437744209899677435831507802595639587569038601798772590075195381493603939028548820793702565353524781485626807233612191767706779066602838438499323020454522763766732266287484019740952941701575113612024426619921847469329626358588563411159690230612892588441854067999332735841510578801287295168342727024526763523981987469170740891768764717703125740689240144143727946798028011591169861991692077511228713493363267452571921323040119960990626742177158663426145844111947085011713227634517015995832307158204896736326589020609112689408782686292389741557712965078145750498848518124970824115420542900152015201669029903439822111919357275913062071622232284572084024815428574289736239816222415140340422182474526427253776776411641737740360985626562377029650552316391037412278684439961266465365391360984778236805985123222580250252505699236831937832545167429656706357675781154637738161018756053445578148223316637826444020746069782457992171622341347451192512862456143206464601273116686776166247234048008874750059401860791958176286266450592887515682247970572370975006988266777961822609516020197458873487795581183023360127919932479617327327134870624731784257600421107884758184152194881209593259566119580717845112686015737215576413382223808999223533895198195364717197631566651778589307654451558381143058239123060838240551063768084557195371333527439927585989687159895674195878693316547457994770574837403371959571593527085196212019180365885114060899856294201920946471028805296829772678996400779287641675715659724695752863375319770635347356222794905969550636184484428940789039922303075744219434463271502780100001989182181190507797156628659212828576560167332117909393687808108050783848832618682040801185330119328216873396776659728300410145228352259992752875906063335333780228325909559756594241257250989125771195726274103870095855626141996525516220260704875594959458158078342706131669733987442153940889576271015422320125438415896544313403530881918606697436458589730285496761717382143085005993644532080533706141141422837876546409980361149751445757049990669519269246729442603793946327828702704058270766450361721656649593265873881793712895829305207692167623957092725897746807865506794334754792762578158165047647853936462775950840253165639630678429491114701279563298994958675536773499182712388166482781045894332589151203038534924876166981920351726377851731766923182390703044302917192354769770629273095799346163354800028432857477812604545806057171912779869747820374335081761328355463537626990906230519260040097858902367273924898525936824629625505871672229076325711382247472912015542797181914276932765488539645542774745050236156323637840623526585394965140256465937989984074310787219658382965941931162238238365282300170231712982912375587411356039656493285429521488025189359022900914278508273763717548361384567578770624122257110548104306288926727867431627751543588691099502667032735324059079501541078283681304394986935101569162204265367817807291014785047182158504609019170698442204118892892671378016707140370076899022289534130660354190785243292016014131763301898793962848760300101347687348646830304442922058028601779460494535813878083751430654766424286928835014584382046493916354452554517147645614921949640905477276333416038487511003291615777926769681095491669860394443600945250743431857883717863353561377066980732334108952244181777766197233930599872727920401937851209495640374265986507226558890260079032186577020298712939790276564655156384471427574318529058052449526674528176829574597338371528810459296215694389566915924746416739347739463050426677243987160211483993640126250383139515670881546622521689699368872926088337706552758506616185009454106009405224367279899623020671635891198171077559843133437607020592567437228864945814044418747435865556758938407848788857505002859250218153346806286992795537460385652376064463932148647245789515366514287543970112034293280458281749997545580598104358822828424075339889377693738478296245710764234176697360395627549575772417016073673607055956440415206879103199115162653744531427893691857857275238140984470041886796383764664460798496268167369542371548281215616721364490729938669083244722987506792822305143428653437227803086834753452340568745816245521227529722405189211428541833334134820053599591979594454112974392019806015405260829491590786251675189427659302196251372983187539195500729047042124154158939500786148070959510349661571496171454954856692848184023645288646511358750836332432314973924620654247738138814645184957743242112605475827311753716997762223379950138593310403128443238332196297821525476597699755132645333349047396338601089124855358196805234451291556876353513844665709642085741393240972957875095878023882658781820815387508562081978261029996923361614027073533915611492318779107382200927606928365034494383849384266274495839502765391605054761367986818396513057860939470677327098689850411924751519673511224822195263377149319128144484636683791591758167452059573161057227904477618296162722746089119201327765377840325823192734472672789268464081538314463215645214263582513448035902960647737927994056845899333248732343954486636486684149655446507755547446055527057332588451342881440900928033344424571614217569310371459058554750837914901477990334563712489267089159488753726449173119541929248442497011275839458693152683264608945814705661885977593770450031567342073294886235476532177515754336690661073134679263590756185514022092228300595849210370337215477662422123517924818939134572240199330930683007587578412938324331025374642769415661128685700850764300035289940945531129653568010153789555227212686744947611093989928777595616669838234524837592560689588517203469254707111150593195049136056179424807052993635421477589016115824344215932252501180041037193841399083981093834582242848884467107414163612478943876688417940741124135542009638218204917684374099348822645568496030783435102344765204739728670978525847703736976089195533398921094117061227509317600548249705050760471745683091004159292521740287521675637711357060607404046364355591845769659947120204088526422399192257222462310753213940067334662654530407650973233562524138087695911731543716928192059010506540379624584546282262004823099653873168585834524113188542986462118119071599937843696900038722095152373378040089018894083120283331711118813631387168809645403940247311675619319185711817716987788616479628319264863164889615586331132871819617828709403468475404708110374497748973341069486342863999423422236640546163806218903117094290362593403694015731798231475015725631236278525427419802081223698598519247762361326992808991863666850227181343961324331903798381961412925330334092831622064604612911458319702838020806422313967028385140577591207933045263973259360188494167002934097114582572910912085998353524306200436788383114382961307317168303908739565534090985702017026574496669693305262451862478727636630286594216996341113557201928639200173074899066427545736903486498084041150053523870569503792188673973319713731330956872944043257536718912950665551159959133685369294455348777693523155584367496038676287018258506619086903356796659958743148599313155849000359307253527273297844436941099070422887408624724902082973977299990116818547636075921294316740474279934964358411885861192934810599550559450024782955573744339711652583782513708269929101649677048666974078746066647348828218509942644275799589448218217649058274065992337257475799826771559648750684289408306655353437997844706680916356761125624556224479717967202300246751811976001062738354843821435586854246907995293355864841386611601360297552370137793067002830645170265511271561806732698975048748238331724002806264460789661435035900753061172865268761966681931981648640298587889973222534150461195948977013367476898663444452259788870480084281569825973638385581635272751935288798811174751477182911175955627225914776549898047647974615025850814527075218265106709992220837676939432492071759651060210285295519575005503080891662639400975117994202734286200621257187942626060102934664419596917356980089147971685555775329086851909870260479995659582847381981894474556482872817123903083036651830223368839080847206388760056105158150179141169334435799642190024411497392150115977967951809261224877770172880633887052646538060741913304195901472870673064643380278218394261420989697080131508065716990909342235326198441918006191886987789155324868539765233922581878885224033087353469229159606253312339020896668307474760369367899590230090365698993443846456620360127412342785632315736036573535205481539974399106441989006378107069565315066197829790163528784924175587319665638785147866812073499727605288125212213437135267389232900837594635778051724793769876598054656915450338194750000414473588373172194394857551915380775223331806196344278256270629344191675870442139962134563281477701261871741295500571504595623662162787749661310519626582594589646977433957791066192095132145786549307487861968043787696769903126740070613634376014804674597737151673173525055317331869202427719832767640982131671318110086967341568280905928834061937660051205672083197482882940212765285799320256322500757498061168570543783620673701429680219796290848597182436356053752759128862837298520077516880349919885022550705023812159294137123352653307099778372487579803203717853624583180656768480434110434530790419948893122161317517155166301018558870642835012901231586255137572711980681567801891015067624847984030826868274898344860932774630249529995575692479831795545772632133965454399693783651924380503572703022982558853175252293166708272643449447322330951663808738230770354148451221792040612870785039007757452887616133013694870147547205752915856908996500344774951736528286693338594389163623323438977734887230483736451859099771797991832328513069786775570264353803242024998477090276790990274845256069796869634972619525818117100445799288408012609810239420325402405438920825078636966284572001237917947540961784974621043302087494790609068600600097297790375953108557807442544926948911520350038457413580086376774856872284324823978523741884879822176789471995229193257788579036478027385478373166959964379038125066625176087062690462408908252417484989158075420561523897493368521694274430439594632034531075865685715865033829997991045910503824602478198063447482832701812767806370724201572395630162568904443683731706663008485768439219868255463733645815923924898530638665593552295177253868273881760096982356175293790519954274851150294603131530585750973969338295613274757485987058808586349506130537424091751565039246775752772280012195410538259105480021320844894613882761533178103904489105946283438326551310559024071617621158555333686394787716814846329859092568552430460771055325132705584819592346604623822847902223027003367965891998980734307136199244971987285475251033188104034091423208019350914185249015208353996451369722909302190045885155911185107625073397360898088744960183475312602777710265573693889959884745838777103738225628060734069118129980976140947159958932622192467233959777714495920035639286515456257814805071359397708712141100205945874454059974365433402146232744400012914447675385666553885477692761390766606102890014852053179234353047125629420443565014285147901722431222610641055210426173897286747955496142352884181867357801595673531340362428548987673358194024841937219165511827882848675692191011977724082806689445709536001453312076359578606299122252058698016214989623230730337964451183012486095971777195986648158518993050034286506666396827459340751380134581528134053393852745516736670974804879946243228910770612931655973820553343462043292369626854602423580160643236983913067603480839042440704435911390303453243853943560208428175048480786449739659194113000306521988610260569015917032833132675769573381405184720193618585239256187086899685400907929744954778387393420279167263354623030609045475100106058852810100466122305236851819839814047230720767984858611355640585347680679000952407957214224098574156603354459704227162451823068612727618679209201889283647229235321917508247621065418539851264075321259106393134909767537479361872356755094217235304862418224865666824746831652709717877222103995207105853382410864767136708437816372828054173265895180183293836264631734382355821457702576789522899158723515499583536781280020874026498676835413538929663087869069533576380868236972054926224783224182337392381958501275273620501348836585338619111096358508162327096819786046422980013009478786266280847885765604058501437302182144181287839225226646910832042043313496237546863395853234141123096849112116325057478991436457716349669119919450598314582248420174603559043700243107349181865277341946627060481588738249768365591374086379563750978584103126157373590426418456185362531882108769806747818369160134959583473606268804172496140720359079212975758153257727194553901559414490280250361015951370023362023820162034694871401322510163747286694729834540159363338655998571003775953646214692383504140010821095451771610758432178438259553844729551300694706871348846108041435013857901998185842504113906614333998506575107556441335382702771977903454114483251452380550908919742797012590319420373553460851637931404056894990534469427753818388039264705733547802276692304993853094542388861248890652644657150568883064108418480538908499532696557101168865314895094982811728628875072679942072953849024786944149914991694429163042521541074323318573640574983811638030903081637417181195826136386437981884870499099240999145246193313946797499385408701449509533139312923227801702936906044236063602140653387767814273927537574806600490750251181233929902897720291747964198923837611969759770947781525831550578107705644857189967287816889581768133229762058826546457738955155483787014524408928955272574725641971280942384915382768353339116549211186928190099015998504502070009094252420829058464490963552004816549924277315145931439505782247065441723369933603171947774185096323455235093121347144000005001941299340626583042462222440996250269245545531316551146035853748156003749344023492586471848060472091478382924382371071949629172477876487173504484946069982631771579840404436641410491665067106921493796817514112412941263176568402153786078712985265321342161907638685577830873133692305314243946170782596488558122874657218075814402605615700311512551561752523252970532753003735926316822525232709122014170121726536359847429607527235540452657007765733019672929116873631933236528391930171154281103891924444762192323859533094406133115085033970838133606676912522764696143909369320865535732134944587538677957009024827772405406936021098396609499080498132861469598237315532066319787581550320230622779051579661683805873733397440168012268841579276874211535818961760723304528454247403983265871650301648647379098592504151658625126454724114602432830539680930775004542173873543622449644785412048289999862701747354935528912213394779500895474183429138447078441218017531267179217284759760554181067674240385307636442054353070545676305885539518774819959665039693585007735818511241163749883492843665924680736914997614331624141904284304934330028643771483135721867688477734944214755571450165875308687667735750069850057904508206866253173315588955690076749097094092404220704651357876156004837273009821358256115963299497598216002986425197974871220953634881158772052739802036628358230884660730934571592280854401232263483718587133277997133307697969915115555771817626486122619275226554828650089446334769330194842241239929449286581873578181260582716253569618039346322279435842592378065954555245964566805439538918632292856011194359985217365493557467915094963752322384419523924535211122214885539776827979110625032205698406252070202923602480570508490296818006623433032918090138355273424961540753643756569227822844566884853031451105940078788261417499075291173434821688593199389945529397009897803522217542861440335946004237505216946460684014098064035036587535355983468750056613357536021012168367971468999755613735780074233290544695114184923484390033124129172584343486090596894260512266110624340222758680486478623035026122723605407123480560180190368503069673634847296980538752950766155130154711334494657727579600068352093976288610092365337462482358760647582327073008153010082399364026703725948252454672810085614469131174023316686297532004992299450082564854878426248611007701089422162408938632466725756942295915549076451110195368693027968698266553481133246933525274386410720753972221236540062229474262654237097955534848339657956431259673658050526990780066224740976612576925039377313344135907670751797545409071738841514559102881553514562340634420382118505789291292072747532731476521455928423144463033346293875256062006536252827192585935947379505497608073268879842431717235718230868496584418987040522430475516249116336577603912167867901552339477211081128612994177362707489549034460321213825757717935333331757082416446276457479743137313611873258041458894205472582841610314788415424174464868922409528260306781671030031210605855501037817154494650467617010048847102046052113924020010779406533062139213357039229445018962403780034847123733436467442670206639489744322068188792188503734379609919296982958429373370148319688703904087312230117749252858468136051779913993237920161113561275991136309851329926292478409752125783705149872757161097111264459670186845196913862068583237319233724077516509951641530328042615867321971788555397998927522016694644940158056843407581268117349990189742872720574989767597454335207850412138982425201488538133811888595637992750302358498150118701753082255181434760290786356371025246557808205818042307329372273043723060295224841602903265222509165776332178205452585964055903652079335668065637289809572119531587720985584441527281846809311804028470380181952771713359212722290966185977101919543830375319436581998321113823819347023273124556611573696872579329594054853334935883323247577747905559267845729015178096155776172667649339791439123356505491188055834970520814918465566570038022253909979277590375110970979661914532085946572481140280846574475379330921850681230127520434980688373582467924605575610672150581918402620262480466858197989141550777962889418245603115146450958172509528748437397936930863056998644180608376147599124425317749744610894449743072667018552186915583750151439810605287909488830960460956375149567556150794498583821443798975431152431174177724264790264953282721970433847539681423840344594275435609411597865857569603024702874324567006332553362284267609646848297516053647703552302322560983969135556859899463937329305294043649744327938219824496159331594441020744415944768930806772267615143981938354595970345485686582024800544182470826567958429208770342814899140692430640403920062382754495161696412513281193345946126192486008047329407161935668328034752076262221710170297820356317948774548120333001900678106336236541471665440301824784046443910321994867816758050766103900568199018865894194959302467666061634804826178770211050113271632046955586392418944875669285066206516368555109150589533728811925104419923847339180809435530445307304396143587770176544696495173019748775947338808144070232833505117675907777070831216515844978192398642885097128750933109958086001893531339003673699710106763716098247156236464279456841987885883530659709686215871489919322542000369551850647879256944673296745818629317743676576258904553526931939325867785461862248793740005407470789187494721211920029920093360294033894160455959575160386432922198374536235663990336928439669402372192365593038503926872765689257317760362940980300654534720543168070176904158619607648027819524982675768683022035115663547234233767223342266599209148874857412828706598912267966699014902668828399261829287690753939663235683378109539194955143678853743841691504218071894679001171272155618294838287481635229843774605981937243565909938634407306482476336408192955554527210567664406816334208186622695850304816463199213260328218992947331005723151595858379933402113129286434967664046250040712970017128381163035318813741145505886223993706213765158313885567207171140332778199012614320532512224755622410430203008824924885402026338330162184324070070097668004117649304415715004454102179378588160365045612198558433025624785095268165143457985588789029587343765335329455012155332004914012590473861420413672872701002757371083134328802028743594533308000806455304565587739785621091482427828496062214685017253274758971745414706012627902613794946181278677358009504986823069629220671150443405547317046456565454865338722144615744208569358312757604132998421321198291179429141489694138691198177903969285415483811843491088775705261085045729235311004197847147000423101044786775166363959655771676814412148071276746222414674221316206005602269265242527888728121667135944645751467974685415962211812339501989287348125735372787473469690645004349117942050072291659465063841551547411826474109042700664164940591099091441481287542044507611536306140817098738806353493779281952557321132641537567376043821510066727661128289907401889223251485427444745511803020326049794446612105569231290481711565934178260838758904927867785700203984779055290751121273541614236579589009263944360123181101934594202146469870574947368788168783454923836008763946583968419240357835417560219134864687896257062743233082020917875179150960416020604864280710465866940714278358403217428434221538789568317899010610219626650991065183346473290884985441125465665709202191752096918395281778416881080774123963582285240495681104068943120983304321772692956158412124242923790397929233870746420769088630184859891754934473662073524352178665013708299177010361351332303432139899448404133270826268778137203555986963238656548609800127795439745570777960890048954911141662543990901831605960837158486527134213065163828686178466053266343268430726290776875338384400281339403501759323522147509843978291954748830746397559580259446764509295962995017209107759666876191240621414700199132231673406132946875688252193432848484097941359684187216465526389698261357267978107238682972279653875283797365928689223286641041937210434790316452188092979649581423247792008268916394069621878197632887345196782159339211364936460201973906792731547512499616719027386273692410753397543664043429145893664372723721986676614663610999555136166121345760780025918982474938433858277076127725709510604143195031378451836866443054687400584457468041912397116708997570091881549203113824970669251107381158174345122828135654157534888682118785939484998801117044604700722524057452645114570148596266775440447391733545394937498945893659884082061470813665018053786665831755143174610970213792087725026361422552086922403992217865660345113684351056715058118289964997867130628650165254491429150802527936717260127299513437681647633710946780121542066839623591725025826380925941792622666607253889893962025533876282033184290164917879930290865862424377320414558280744782363791491724939887242076695131177276505712756226906817862728138639652751808419364183698784898377697868524917232884104300928558495355434417925161302871654766138352674284044877392183713506230790312480305844057065883063191064564005382542035576030399774185095851633635780221261715308354742908880597123526310202405887297514421197168511106545255991180350729212898800344249767970462517790538396287767422908201707804651662241393586617977699383119074022634827840588670015028172785473140832112959708934752065919062458545925187135058090038970188223874215544313607350258658621486075752468381431628561347116769454829878992467734849859234614241715864655438946771314681509203423719923390249271975030359037354814281065995539489290720495584212186438314149437739513551886325795668972884205130102334810863371776362930574703681058286991296586969714229074704139220949360148302071298848526829751544374042438609646496040331838229806918246452192049795657833825096799594879435445315324087243227827491157579066462301236330262550472837856506222836646176139779898155428440743069930076512625204756743898014544490855913256240929447512615867823128957755188515658771508234384096263348600990405905740077801678113970192707206239439007906956010574869237052454760466409808571437247866873496304223249079065620519146399468118868529074423716237329762367937962883556668255916744346038204354083286891003163784316937195639812802867587639305681354727615156436796744966266416465921258294283024262710029584344972731496091701381153345072972169923082974018782921116968844583636689510879639343491264890143536668029186197944734724866481280021953816028968957997732791197391581334103862542580778159607737705973310518017933519014999594814441425711107764553286974672380836348813062397418269883534130601058222899021805237070877419040174188794376335459239115121398968286958945021128813478732198730374594057144563526671354944560456760627380664865317398518184450972933896935195356546331917665793210460979933765156351753779738548354512613092495238649502415317224695691921307755731724845982751954904733256483477180054387949420453241424337061439830228288011850251591087009104885751046107437585877038219394371650664267456369819658222919114772955161954061519427376981094596222223108378206432547319157628522566265943929352529876647528193661025835563870628585916807092352813763880676272675788404413551622010384412600691502443156779146149771324908179974745806734903410044694945803600289388477394388017806271571952550093328186272543289076179493202154089910477962370785170156267671952028753474201022893080690385599236752363407103857516113817914464094850227501162636710275749228879125093944435665257751528132004878413024732100025385362516434589511220436740813836259953336373609153524359303976351448622153096040901250805572296142017279068437371238666373696783389890159076851099655470976226180769233560528539669162756956044433986215618655729395706595177890999770516927047383897278618202916304172469128410301374849828581331779953534648503035052093142686263407343471303471328278954586656668059979999662166679901495529947562525104459053083464680843129612771203839669542660467719977704132601539523219519752923459243879044580526802049625950337468286079613434400216639079374173805014517759315194020566463181907010776512590025799569222081126828747850278986887034123622308884590300954392731672670695619504128908659032520136676917396199949701561834387309861449832460592654689028198000605930189703470147507122984270767707363479078386480828236284179211554944898757344349772675011788139912791577080315876617620925313299138305232589230546955029854422523922191418165657911439049558622494951448770236891232527430446798503167474422311072366743313345528553958406371663959826841369315748668346560585187821043232964058340974047721464293054689174920354697740312171213031855821011202949320422682009284258346954962856113344533546318829888405182820619345694257978385130926120364485787007984290966329042799356306645189616774342873083314744876650377011154887700298683617946543512884971895476253074276797830180861832773414768097715561577169839251203553302623531790985695587566750518363634605116841308930942138027087586999063856208638524161705860976848655441833358453093246437145295744307237235708843319083872285873327816117018450717608306199756508245368211249705226023935598090565971158364900823932258294531312894343429413662421119139898599923423497934010172949571209984338561927221530042827946317313211939585925974376609880237291944601005296296702493183539673826799353976694565960860623768089682116404818352208491956463196905088894962800954023267239063669957674091586723436582629455783141244211337013145646382274519031232646022059848433107966723394628839317677350914568770820068364544644625603178263644591503524800152500478820095025421066415463454847215559526401856932614428615675755033174955031076480493918781221000689027529233751535994908081636627494831040528787013315705771538515769229728247340763815755522990214807309290488441766055492306901698663862930305237384068371077185301151382914972855753572403546274282953777217322336859030717934028241395399071172061897377094892127372272885862667419988532805591463034596843414839331269692359196408845510867732792641095061517111679102442285412078990824242050810587621120279264949527936006386903771181843286801012300356394619150244998110599030550700316509392124804894539874418248670468963310489387515236557599476325422058305526140015644313663471002460242349193270424456385138294332027440359148859014733120136696878106345579501719545760902403098229879427466500174840622641679213053747397647736498612584167224742105904894592527894876143460186909572408331227887008699693648977699914811222285923018795183245365852289486821997713159163820568035286997770213921729095240170195559538886071016921437516614000979303198078065860627017086319767112231931967441585003584609815019150278056746661468599559507356503634438074837180800090306175750210815276252852885953350211495628093690972394101841693916770041972523655398790951357895812619657312535521534302838329845927923712849358503548368874343426994439652328144034340467214635582907772197731567407127862556717633707231983531844219177095982188488272022737551132692782416009806843238500143003179656257090114185859103559397408495432751614057033036856832953442530772709383477898841023281646904898335572997863860587361699415293886471925103019341434074041134253127226444251070372435801096653972522847466860899362886100648895366988700792020675142334022465958344915401554547273517282392445293948781035920943676900297292315604992475363294773760813443227651528349777506313632716161265297094395646778523261598807341474744491993318123584786025067423313164677823519155801351940488562203318763442087157962126966611326844139110383883915159248226356213980577056261705130727479296460206722866936122811220560402863495079328421859617353933619022792187472703536042270317210950320619140135975292511013495142198856957182640189906715626920589429433571414716212289868778986467964386925415870954889493364026829071714968269311771007941936751648021600445318536117320224725023899831535554954389840107960785144014364948977368904149435491040850892709963703587567609904106758616027638361626509765161471194096705885425368467432980317653849516967468146284869176778103672480509176626888848798029805703848469415165376969671426257816885237588027119084088551665208733901743759443660819007347333445321544003818472890525515788948082346863545496007293675547306535133576858120853183056254719498387737797459506276545965853175409879019905695104105680067836654932861585686349982853215983872783472708628337193431834387971605863778348304218939306904138206167419908355000876578322799001758870913104589060788492657105481505055111086410434615590099322666679586616827296685213329572751544513774195513913611008357747088100343222132622527428700339958395798683254345175329477429267847472611550398964775514948939397619165953845928373860672938762902887309993636146322533615552769534598179940942457500777960123641581034649991808546652646654190804233278564649784328438633332024052047539962570830166934264835487738994138482772123722942361642459750153456065252690179606279366753808181299472275980136519641722687375314246365832028356322438179055521303178933643014115776897623397383702525815164533071692989343019330559985939507037976386771803624507496953078081649111576916296966012895338083882954011758152008855821850517359635172194073938629363025460098979923808033065769985185488073515504951189800928429418226746397610157102922362417060713227457621604878199284633653772043133579927581787927835862836071559857658278177910882584751641011976517423688419675848609388959197822376246398976978056684392668187243091397377097984926066528885559895379191493327288537653635184486536700213393090783139299327960697346487523187833423425105423167823844707346063927802397965862946239125270464450033477300228360713987073659968198681812508877178645554861113985648331340196316104628537426998003964359152323090247214816246515806707502307465316459121609918228207021847154734841719065791862217365061209849572940841451742661227478252770470770235750852384297261153646361495946220722321989274734178533478593645709708680331452702461452411313126991385233075166431041421899584304585330455520532511209103314585432453951568359482254487563205853778079619484006508607204326868069166451874212839032429845152571974900652608795295721419088666243123031560407634153571714219286717483212179399134510352186783416854648265111720305859655427394090975743060677338850690728452331792044215725016776121081935636631795021163289339412924198183380554022424292969125099997393090596506501474790296877116460669618002818154368791130958709095936939921796050103022125846600004846385736306809130334685315213448002740172090974138507888220936308030925370537654636964750304078173767785395840459141522303204667525258641704233554566217312721526269351725392591654602377956896105007016728807108109339140946881062206807210675850004075118563789843136719721330949776285762689421444413815208820978564389749812656073881973454284141150901382381601828969449565732101537195831467362775321838282248300041206440521524999852738157323778561412222305845443188425290095108673653546461976001267693006549337042991670203903329027026655571212981198265583761313933273457798556395792594599566863978681832433109930323661153318350506232395699303953680510350830376196185561351427846517991275549815160808234161987676378870776490925635573300255322698179655870137155041700133031298778572225715068333031958823482730294261267880443046483173736847548929261176263619163802552477911057131509441328096292726403465453214092863491619770419395429147890947693801398760693929002870214184388252787599606710160950052607154690201472052814230111274083950758899271118615269593637684983185109452297696418887157381164546130792135898696147594830742503706686654772535008751790252369286154170282428310381619809956451284996136698348725798323081913709235975584058355225258311146072130880380562229587646047584450117562551182667626676346945143518482343717069293683561442825447285481567818899839731945917192927828082006133465063442234465906592671912746119546422107200516332390685953110048316888903426227546284186969343492870682432625020462955963593869105794128798677810721686590179302609817466125059780672802164371167027967717932940867570920013960290900323644931092229982606671258947141181719593890481431144674055239438131916392104371982157667951430190587619713093028407714191818095087566918395292150916080896419184156627823693664504990840520282913345857542552379738659655049047774227632046356928647198978676965086508987778526178551186258630560110749368448603960835560133529101266292619383587356757321567893930411439586072662701759932980764174581910523059493162632428194567894082802934676206705688297466774717981369324668370127491545295272821551725230446095530626692889157169829020682999097787410455972084931352966120128007658644001658590217639924224185896930472048233660433965913530937335778311521316857452402990321603012311595553979921312094384336789985980531971280876994281655504726904613794128835765600360058568289795210450562158439090850805887128350941379593053367961132789157764119765517735467696428907433709232246698303244774298899934474236883806873609289009869435207005689957530102099212065785390302001909376291952325389944988762169584569634548107221703214823886801266791500857209555729162428544098328750248178231671816965081112328109392057454246867425960298704283112764522005095622677145156211582067145588791521578444752439057674351289231162207586801711991804786633270883997698891121089573695268682912177618111393170738237715066318447776908295734585991728044239665290248132677660543102009378869086628474203546721722324547864955849002613994876545001883792205571308207539138999151446070474256916927418747092250648636973619558900622307221385688085689577136445746452454484805709245868459304459998651970649992398316337895693127260577282232527761673084317660798590466573888209284176518004132158970925270212400688814012107129205682796123354475071692359494389208867473071544690271383423119063189350609760425003211923663534795463158070490880673387746615785603907330982954896929287291537259746126521872067428299171786891223164188019970521935723538343018301043134355646202844375457677101562870806164197744044236494713824256747882643188573240540209740041623867383109110357083826782778783170662184018592402326978991809359601595320207571614421104920308309022734788974531537223338423084997224176704049942367379202522987513087497958606122025900424655741527368775817977798840415854455900914990812656481730839653186731039772402383831657552314912268893372026738828643183048936899687856361544983966092810006074604866102838531796823886812671105343694892329714817746186457829985528285869507611036600786455418955912472368105671448968761793873676265263271542211545839878382614932927710338588394293835718580163936470919151415725502081126930361300794841620893329652690775570174994605976655229430644689390117676710093033695466946406196955742544909749075740992807261107815796920595763533705308419679410733303305261195599920936728063017019060757296706405958077920716058208459178252362381706746651211458972423076427439771348703147580933093674846138927848185270728656727484514358774333873902979466938792357822211200572609529399042006877243197954195916649176773027929205296660728777043217045344695068656421027631292770605811531631780726683678587769445599686620594857807679747634001863455859817221940045184449759499693061774999973025736260019721575551160682110848514473101797788734494989265548547348623017532542133191510032910032014370102645044630129727916171259539622648592621279617239720787514760654586404203572269758239539658750944381065502513865081073816541445631856226060906128918772470191511424498169675969734550821358905821658685138252233939546019171853584517206118255884598592171390075611723927970013497802900507979507145330295099172071119925185115200280552906133616182327092882160532878795536530039348112685048949580011695116147970727647831860755887481455531556043548307087873561123794612514644271592094529961490343095867278481204915005167607210551432609263244438326068052860449089844741978259662469413664875612679743284861508205654231720319948774751899909766337375475000882386656674599979127257410540828480788450886270260165200208075531034175368711835878407043440901982414112599483946184624867201108267618607728533740003927676428709224521153605522816237226170262437103923802295856106285322954877903860712418597597365530366313423754713423560142464182314214363224742363830346791968495323275168698898575601469537534582765388330875250473684048710445160596621598126229420682304008110990956552962100170443935320689230517611096879091196842203132080318463698431906622485109111152032535195987700170665700578596752730710573412848292462435725576963634421237684309987086138116566836300283541205691593015579559216385581164169452948880572131189489055558480242635036733914475250060855810399920448397275099856973455479944878875305977498300925920998554116760987307298695807228606726806877210554182485021934061538771147660270127680147110378071487793687959136855650062130934987576311675149601662813868187342483496454658294723958699992456165025787240997777327365452688771729527872738214117004103200978735054215361776748996708643473004414810146070291514705380266867663246174358450712114676732354715206516296891659234198200381916913781396515433374140112373945186221929347025370284663255455276091309693322790294949134287508853882793925960836264211164544827521308948728599201002812840201592170827236404918545136338159187199657094542828539570272354897154457847025025800841578837579847514239498566742212586796528519685099864657835328508656220200583339559192237024304656315951491484706394148567450868517032854429720868434075216209893285697553052341024149677461151788341839689242949131791180489618840802410698636719718134738723658676706257315239405422296406316249794204024319465817779142758493429190340225864542675464446109810424666114421421401408434090710652414019607310418259774225030512803831166774308504727988158683686393710173436415110149247580318636623849529803513599912081315540053056769553173118873121453018506967612506841814001178172744424925510192982044676963959554241790073411155883945630928394986951507482639958527034094368896338290259427954629992223147865629799369124896881262699821946014677174537289908767728712840513070463084276090404770518195579256412065728495312407168097745489502301530718528846599901671831065188799015499061702434448134961279362535605343324504191015433737921760128915351773018058512196054952323249689747839685163005093130106628210946258819261388935437256351570781024286195871773906944336085778760876326821204010646985024685536177956032386639695337643499041294757736566991368252095037012299466654811200337327166177052154811995908701392763961069148164751160753872773287791270184334926307522501209791237837823894202172267421845662473981520147922928360538370641780543816382431945384751228964734228905962288644777544313154116727915479950175410164129492874077370235739743084934165195329394398044833095852476983822397074263113014020851922252077380703521060804018136190615193800444644702239323703677767919773087739637894038166605223754619700746211556044533305030288572935922778456191918674627082861068601808176346945708462339432353319557947767353676048381906667476366299851326590544501265629228710303329007110464552117396668358352887946546517824660676574184937367770759177124982525766744137521908342247508400470127328550330870963552168500522449589495200633403378307876034232809245948401297281950341677270547440389791496303996764227208065157143477215221348500417382996198333426977453045532384283767119059062055118297141829135473672737983476755065208665362083405991944017385396873834707882584705709940211498057117932591762915262447617507456308984956168057823248135446565917305270935148192543719024509484978394221923940799153004739984418363392174430623812488852256557534628749550150130336130684002200536883852840836147013569280747213138222390777291624006850772950803334639778094619768836266295811886532373943984462080391898801961418103772840342403786908177900463622374048749606268723036325444029847987067912745226286668394254281252902873768539570191978250176406753083949060343621105979517793096522552045944641972987635325060279881743946748203311268663252949674239515620177753656535331614787771973474848101380732039061011309716216727817120767192743971489995582589405617941739185331789432126417052947384607663393468436471625412240349887702584085734738766225323887065204781368805494613437482069574842191343687788268591265450945351589896601543116819008006929576557414153201166749943301823114817808056914660309343586251832064420214089085654477114132062148042126468333349510172852041779259426291496423907173699687373122113847975795271378332836209643006865716393832861014138668703343838460242438968891657259824207907604082705939104915836042067324859068971171316994701578924130074687788402804674402463251473179610625299632298534314673089838780446621465890000781706511630510411709939326415374872657944378640053894297768789967750689548091214722978908623414954039602439818294676471618194379646884235419698100378101899527747065420497522967655253879684531325047397656561743508431537527924678505053490354416935668840049338559366074513920911119303965588060513063665769718742075081856650216814168567600872954961266587831000735918626243318045646534190039667489936361833153209393139141049535264952454734338329360400214297820559958649175349730442330062979407771924381059981343169129414131685561015546493894472556355331597049562400776419942368700941457152598088258256387770811035535154959497080585487834165298018488089440222333412136107823362149988131851647600564422815091971629871306560217276768315816636593611277081226719512554383108347381489771706017424922399124093197866428855452055394196298521685128571230657440416859130548374381391821276706337524052273416545078346134141606874373099369059095583195792934689687988098447052090337725423030947084555800876824434114338847652087000649806268135756206558018157005179053099077997632623848587680936718148022766468389982482220713495122759548464103518458211245388179110683489744932191703268976546095767573960816682009729725968577730802032286898926769084628783963843271446655952173396976874903164015758753739750874018910710841029620112620011249342487937510481841803069646814859045424177603227461238513038845591647212956416348551004852282980084144574699259188512297372351524750884967504967338463575570708840364726157018819524162231302437306487637713004030078328405613338544151693020961158012909685732104193014829446032580894316048988605513183765124096170123387531416257798303522461638468276734946037396876524622675595447542841103262653144879755195776566408727753672204240588376819343724093227079451523554420435344176467187306419645127298117926344152787825610470468721368108961427808649444167393308522252852281553847249577408069854742141464695209910042242592089528561423475450261353425164649663831663157223226155640822809892442220381230533018875154789988032498542798733816297940151189709215632905991514499267389368881848725235252686100844287947580777985077177176672969877464324064906468572624553327188301363147442297809789187027750680231626419170766253905239833042561508628371816080249020539181497532008937764582811080238518577653840244914916747378386026019969733282164172100733295704551002284423147954328021257964326503778567691808846811695008124800626930204155466251456030770537938746543790397976854294750030943505876232165206695718590138772477419627756589665179286393898578485296633826936272151574810507581133762977842139942890535333036293169443394464563472023988852417345047532053851163586146370293523103506716740101583731579069715880938794427139929992372604542740037456271262727015972897110795756715013344623012094008647001328424986412414250527182391213883344399487629238238765664461816326121240976985526124372216554205902759555388782688975765582695575414617522486888014046454366041412203519270551548183061711241094261515080149616007205181149068507597652821401456498100769021273551149592828965618133002011498999770549078484961804701324164217570074416555569129120153392508567316160163972772753132322730837202472859085337729776121147772487882562702649210969261714250697428924963106727568215190160473422950999441303765394403761640985502288072948980492386537682270215211952873151553054175029676288778194259408489154579747905141438146552120225815484638387645221585182997220984162610482069550639685946849061377888041143193852227137499398368662966977743330947628612474516926139209456388817201418252896418935082759221080613824347354991625266252496290971984150618841488699539287313793753751590796287307856195404350676823475113832622770141179806168277444328332376131486760443277110184446424855878532269501055206801102602985340405192433820148172338804060209320151929873802238439752937249766107899433574843852140230433288911266085471225004017149373802367975513665546902913932791444150869334173200998815976126579468459782382286058318095635546283622011119256227955013344926373210293768838548643632959017997386280075126148346617811554775301817201505852529686524547794831789153460217123769345285686822918056253265220395929002698184270808152730959129517089083868019361639655578374212750955662229589253784221132076329082337071946262041506818197909714109180693779399453513905160541422826805151675705149038886930677442328355491539464811719721763774258804060602462649636772774222925775106340850322392435811443404454743513450119191095880369328717989520410756193200253445336905199771505449302473482117296914733578801882579037858685707932001194421452067589876669249708814315782127636025642353436512419759498301302807066448546467717921867181488014469313803222282788587333857825805965748570558457244007940110726757044475247210968666112675719210269573405544944746093272727641748916901746965426902792239156518741786497784137766526066146453926599060367317776921002510530932190093650525695259184168232596385772973635150911946382985371819663661650940309926018881436338942859724582121409117594500591374842336544555982582459129794392122662212098052834041269873209917627122981740431990390332037072458555485360740240714286347277907258072122559931038983525820268936461941358846212661447783505452931300056362048542602615081561060736429880209666400002194855792531915284854487270678034969495030063033655257434119054044103972184915050662892195683248628377712759487260605532197818085802670752575718492895142819747491655929724345426588699312008387152059877895683928934174344300530439648600133474476497450892668285471212272003420598633147939536428867953212548083689012513040330323758174077828052715508617924621244073564829326555426180917123971208921455898840325073398867422779372477094662753461155102999473497467041336560981175159839714089255611427830779129522566971978229700581367207799338271068966189207913911775854369914074693795242706892132997445587922702029887784409024821078757999071172225267092194937839245294902297250283275298623798053116125287943423981443023645868772119393212561892799020740581562397148101860262991046710639070762805429726753580297880819757465676013464190113042679763461922909663411620164353087866152100602295910921012405785285645984424763600806980111502280101495788052393625952084243835988606967058768306694735279629818708661472254242487474781141283140635238472209232996880741434328331406275171805074649470818307019631223448818230010907668635383326084478569821320501882036997406117341158515721482391559359061606951590537076939701616162459654483718450882549417950791717776966926795917686616884700738742080396224546598542822157080869816667675767398799797907861662404234521208599536471194221843211127004658263425807163031087098599349960861811344336365728018816932185633049377572141618860324064656880179005808556518825061574205422796525902730954481163152277694594736048017905023354885772785595050001523619934536947567379012507998442346966471437028127672515759648609834091261098612897491795069994775873563225837954967935916035872829127359888514008301493478691384987897567758356932604895919367546958597283600697108492486434312154336175188767283686962165726585879986780699520469930884386508289228684263003033472249097585705094600533793162465700408899780579611194536235806837038544187332470451092306557117546850011313663545441249474140001098000016395480551104185982192187378310420612474548081190749550430519033768957061807662072327575380652901205740360148230370711510115427681268245363282506069732200619422607416947400058941402889890916854632511332834960901718755196760458608168636673505619915645661066827950774118212739719595243186260694535432352333786155430836516268581147488723173674335676669924254180386430368373959119303756574351072146502561327710107937789181613171371813767551864965101310573409433749326691417372641900695829143325035519800150763414242497013975131322173889999679048691804523628950248534671018905037365349207070768846157189462723008488400764800447321173229440706483442250987831326435647584091684427464446084816124641271190037876174350806123370103371324131291712829680907967124964810189066914030931272785510886607406874419388402563127507466335223208675091662288273109071320496301937059027729658643409984119328359598193589033558011077917886144470896247959663488330930477336521620023355712916939678983291250116769222772948694752986028714255638770790576833352923244384518569043130354751761621207644029905087867179245782361560252077297324950950931390674554239557702945353845566143939167390891035504281264229846135678641955832521456651891338497553442042496375429611942113579361857317921331809186736421142862080403210105757741123740924189861518541641732753627645123070824699948947337622636133599113720968783189425751619549922659765814409580438294467791949434684024370154663017987622087680063111351765908257509407710454033284855091846994290574186882723833073251610623188450620492372662557713213706327786761947478899367173283992339696245172666415348789684043374164865949662268365337282664946615309618710368241963706612025632002533847928243296880552236219096140853814761591409406155648065867439416074143823931941821949724643182257448758277225598017852099809084600684213021783017627673716399260845245202653765020847993519234547145525256720121736756435967680097803692909632418961498402605097517244301348405550276770768060222233974625230261026692114836502724605494853449165020619623888842309213226481590382641460504174160731797624129881852157326694983495234927916290196848232133130356429692036491874577282483703412072871828954200944310298545850408593042991468982679912149072030433782094976617882758544711882639391227732704670054818063961350173859035550582431716842752150651555222277972194866015054908645179784686928345840908398872392299281847193266263623431588130465816053373665192559377426949033821007712314610859166319109598812954592039139013347015040017723245867867522337765761229370052688756299458639281215761081381544681777829674908068339230104116789668933800260033637280583626223389855958126191725477946541122921246430349993715450426670485060431237769330933450232033619489107281044820206226163994799790775317976859577412825294576632871831204201938537633455362681431218783649917041805106062253979278097700361871297937196119380849206170386996532827582098203793847440948969235679358059626665938564850094637389714245488326526052928551509530275422382880602608810405704115392756002003698762078835366710925245285809762015570992661682508944315567628800487088122404570202054395836791098216392468863809016153286407532982318150149933023935527508428297060151652295689328013255293657633271383772829895966531332994341005209100333995790102678635366198026492739261737036867504999801219651268159308247403934413405606449078420619691866333970588029756500961173543404694391287349814161513241429124662290701624637735684984956380700098607983548757084563570149587090778731272789934859459583192820765707102939688801761319904225068058258378510045477379443732869296124086795878587181155477709251598741022644223853143028555481072456479439032556463543641189749373275567006424936521765407828190347740564129308462666535579397988888199376112557333730462893797656887448912230830643669703040892404926955801778674643660430963828254890945683444608695900254534236309520754215717429480422094946113073647547842920238683618420679972985583051054312853848472044539648885887698350889165088502768493960048543296946232381879650339485482779378655569581587657840194938418718918307200749791584935587999676123072954255162383319653586539421187122153834681269539335762201026631233965319421761789367488225362525856291412800224292089698347058941546600386063505579774233651610428467404701999444272691595067791756137988433270703787492653670590266913667797129727013499057715952829956876654619766141239458370292750107960166212285423974325944134636748969652388528130665742648692227731916723141799966052358939129634409434762304857684123485697913516360395370171826555720677026028763837554679142640032628302399432336639027771207650956555515410158734296874626341570388659027669512717311057948920105120814026397920644107694853981931445389327129925281525480402235778766831234265223800107863102583711523283029840813334750272057684220240899132935844448389647810351799160681022903933035853380678758359667099908485879081454651486723214117422596341008418846540708751619587824986721369629130571670767453659052449733662934257180676522219191104331512409142882539938122700216996331427476368914383428512522971580181907823797977190653271496114332665200712288359600431801220941067785450289149065862444369796250288794357519537820667853497218256448824024028106197596086586830541340807881512271712719098689505485795153622238422308698220202738567317136011202387187994375923174863365412623811028935886727307219706163783497700418430824939590955614207232530362954428949513739236392335948916821136286117470817606580682436008453542266128921990427933496808489944956505074296736319189384495229871730581796916697554412172029829578045903742670419359738583197581992398653768742839642845688576250133667532123760842901135103753628706846269875201343628228276065071646502812495713382414956252155145707593875159120917432318244426147184113552441303410075893676258889377459718724307352583370495865533374546171475804359264094654133576481745081415883607269248491720297943202609602316686653405644985086611852436215619891332655986446111562280963669005171433564120377301622150304569615626819659820250273707654361151918857369912856171579120133036749642889544530302955296448040240363246275431516906971335257115120667507273930554727637662146823475802039723067153419133565214366476901481940425050676243424786314966449465101496382324656447881824695299213928412690440194314273135841025843338932555632946315337056690144824785985421810138422684814877770461130561321765997128225660408650085070835723911754006640489739984844323882911480415573864581162683323799996017412158020421851788768446568222597796153315587352995563765494661340710543856469240894933158280406346633904267882780636716829046905555492708177397384113424300917561218231951164656603371428606765485271013451386322604891886682835759131869686267043798231698809976089780152927907265836254613854910767488228357602551719272390740527065294949178218141663026708630457921267759771803306914201749359842184992459838459584774967766422792898024614214245266509306904817767614946702848323042996585039271081381123625285271799353508834915377441142247512447265892132873339695079336537314853032560252238662292163294416812798145458460007440576069218563162498381827272115140658373447907135356788617400584396468935224942198525103893536979312175468233665791076913762049986357064795147721592900204063382835057833574580714913502431986519186457957227866968695094417273088752687621947422329070589492668349019384790367276435429630496394132545104207378670800272934392592723834825363606703705956999023682214950937015401625952308258137453930350502350043696882061737329536388436781684557670798840423824860690061099211805665591544725186012279345187097400220181645510098082141377196200226622520022553681523929655575480523835699140145197741705448641482682755529113664719256364207918603762742973840893550744966986996296313375729665467258011644129050853867378465684501167599814403904473016200804070546451094105006086106339223424320777190007306123966596613735209178182198623624754273441371522080284187538016484455624969616823478380714517741105897242113432884842304933351056682934003071332096699111230064904869726211993660636568124663025840751449702618416906898921082009059698029425449472845627476733743176964793071641487347280475394491225614984038526751998883681839128983552540665747298813257623402861748005773298184027375116555767904115324001894372283251592309304139023550844547061490294474150425013175738292818423908416655397811989027731407487561921476821964253628523775139759832992513406774705558355385969942992035391588979605017649590632392990119623163868251350392253917533815839765756930536823372200748810957109951394882085312953308124652170378000771323283682778508434637539603259962098624659090155159249030117311873293554880403328112440341863153403128803636769943805566497026557392657671871907936911817967857981475114143297537192647620839602674102921367118623233943570289033453541577945605432362648802572724271770399543632485064400301209681112726199415966819249517468695745264680930827135565025742353418698300059481132101744911989710761371931218480653763989615449318583758988017643732690884371830373822035857255714069023992556260388791409366451936168632547209286357869743208324771150147565466434601440767240382406605204492723284684349250947460292019832332632396682029875158130016819271654451464340679533974924459197559761593571903203719803734723706896507630083757443971071651260125867462905334325408108799040474095173841499455691967362145029715998580322222115709415594406783490618175231629321574320551295455527542790200844003507061897842258962114776539323961986687546576155706109535766565657285218533264180963447089122726420508183381668889618102620158291450994566035777053331750669418020535918543138086053479873431021646842773187516668351749306615077994427955607666580800640881095449428789979260384425690620395555512807479031417382056415630781055025551435597267977689357954484530725023909242971206651153539587070496380109418315531206790448250936421227699182934878257481229679824741587040469564757122824204874687821007181636235537377097664750056935953944717887832934770037323571214820804338769901283121996784767259340055941815141208066482837609582395469535864410821016644132438784568184644794616588607595359267112032142925931943094603996590442153764445005616366159404030479264161234096594038614885762790925207036362469990876475843701201839456041961569360828522627236436824102235448822148416107143459749292549061620156308971385995345348865713552848796022301968434680070371553906829090532206698361913858640460257282888732642216012821783109163193031810573933414744879115895494503848793072881296699938995493372494008040208890436845509817715959507767949106956058922880204762767545431514603369637030300944462162513985338522376127507430498797617162359381396835086324817859965412514175819293856883849060918126219117414739577782784825212014902723579757833059553235986673102195732786365849884435059554891904793284485692215192423046380814802255921342592161633798440753373722245960097702586646684294544023552516713581578178931241216974333507897050016881307200216338108253986319505371064537562051018331135815216831467731268104424406761432815596392894088258588764813074254570783004877927052358128037986215273183987918339863460802778871131884412563797198532042443617658711060886277448303072874596724408263719385555623559661432463584026664765940020182037913215604369828880602689969507449024273980694863399666722023904886381990185689052999849013505580973130426360689735658209407674620310638014717219840075532320916251834827645116035340338106258417595884639683532194967280363342839568528425044742611715169469373748627563004929289737169502369346503087294047959250457669327354554463145375261636703030538046663939771240073839678993716864579225117742611632573184929005943961614658885015497209158022469023720686508838517520438630388029576328706270172440368206435746048460407022799022180307487896223499066344592708366346427654019539408003891520493457413486224657664973508852730238689157278503634770768941722225171608074119029366614482088568982908948477056158692154111587176773691350044833740762682662306413248480281152984634594804123661523153581885578583671879934093691808728158752502381068121823526011975321210816786889867699930562091642160701621545949519304038709703601552292596719450911590955574304910370855692965966250781047640540321743740573810006355087913246081252011516734710537309965946825206258095529720147435830104768986403556627600524497249762256027872788475292051120273499959692002597255722119358437810972264183562126944757177826465759442166763039139725560292613961881839076595029650598662681732208906298026605987370458559268061344393649792650926733836185941533435985397759201047142805637324847789462142831053969192186395469608586202628277984290996673705835243970216450889406541048521247242894297348370209369357156451544499993308517859755031508011761653713290248549887785039028615304087050033875345796383738847334313160803071740557129717900862620618456868269590576517202681763412286248062970728609581985945860029097933455822020348067000820248448386012201707274968759102199808164353534579283765489557262554851465820600008935196775475894100764589505305312320088637883681533747122350133620088458499946911720685660907909036294229790523893432293072419946112321766668968258069703283366974117468503601737014586699908041355906709116771779696371058879867352839214283613969964287050788010289791761674476407571712125810885214506511558901245798490014427603326071675034758475124589067042182448670074587239812034539077146814617143257104749021813881985443989653689647699767815170590465996453303660070376330619578649248380894402133604150195069936754334167088159147590870411944744522232205031276180735077493055179524297481687705116590181012618078702876216709354740368303984329552885614895309834640592041913238587467138478651673287583186016137726037069308611124132403969201073526609780441164658470988715007578888885107950001641814035415998710033364069586846412281337469732299228460677292034868300749613855928318175767338430626063482569992217058234537858699838112665179086293267865444426768782878883686526392013208681230546051903708704214696849802980812108362748297541650209612438685061779457458892042664475104130426783513637719274540183662495253065585395332012569618578304449334125713818900131667829153015029632095770897257385639222876330887385970972704443666162133351398551993457082316587825290180366476072394436979471538370425873621014715343254051281603304980887476948368967553754755011000024016451237942369071503020706844876765265395881146706370657377892521154340149444928793316136143814984322951132408662774763767601099860042690640789882678773441317798045146139626763879535906688981173155731861778152153056734380255433776667075215274971104590117425712630615602754772588139354791601289279643588928749366497154561442883809135832118950640843994785303739640006053919034351779188312486465559673363751673447457446693509086831516321350428443326115946845840107999306515382610949443056224596139070903617067961985769307619841886292256683826894290869480350944037151632918233728484280920573742212672569961644266275412155419004756425554523135429758881307000559169909531928046714407236882921476753808615619622371084879829738993501263698199763443708503286554416432541240856830158452116860095935546861575322396355488827401183330830163900375211770377356730745278994708200756669021281487850286607785953536150406234957608652587478719847255497853727065551716088852275849879582111704296675879477902049404903532753734692823527606553885643334186083595918818867237215422144833068472706935504186418112831821405992316041465279605796433182853193694265666035507478556379027899626425216861946698908058267439093913542693682454266313615355232210019108777488445846736144994505552404126846764019927229948616423829355179763423510098155938762793406648278886005088585910978147635508395626180649582558784669767892829153813675901758733082733297205945236158748424951391229763303486582808078537854561115236328650863204056484239569216404963202057700782564781888761575801708567721001027550384143170922217855465411610226260999997575312538621958720564961108662143579241053986097941735095233951396886413241348271693643240329835756189146180861925236208093942138935195003165283191357820288444542576797448785282277019777367982027420550796964136826313457581329953063404855543131912342724239110382704759501273655366578948981215333254352451543071525480343739131986997353630153923031292811274016401242962988651305318686267060958761285189505207818178194426056826802927655602444847313732164924045406024573647554663694581688072838875056428109674887978617557675988237817705837427152749765847996978458567383884004611300866688841589353956401954515129985088887456545187339811903284533235057900270409520422160969623951098244717083457402398278383096204575426588783983452897392679897148248524491020265898266643108768928501984395028573487286240843328016580457930561234169146540240476308595646814103029984947842671480405267043879672313469853703179869207222356115532987622868730115552459683319028356070562314047501268244217835064780761441997211543396122167046216500858753620811242702194289120996005456777413503710221210998038251467011634880765669440611362283252904765860791397761707312481802569383098190316405586151491809228915665388222192448528995103868519496311120219147449582512543072688599021203245743172063827214362304118642687233859685024603861713913609003197272271138749965067403161464569652939364710070863349565353493450120840287667812464824758523703427674228043832041840250557992185084122826117984257505834874821296456209261493561228931097146288722321712553411983395933002850546736921755506420001530501993493078220242938171072250680658313486047640422958088206182764123153864217524188921956859519435815162473422918219583021926086607544835951203621842340303766498132568254259132266584471652119071627289922697117586053094155950216686321889751717725359249882110847230330529009588000356401299220820328599084109453688466036214823448783906339910999768631379501703884302458018769738631368896663612122113388010503629733625142922313097685052484897512335871772662500090297864124914300971747179320926638370285044030342117997743377846684044538125885540381896099618878740275441249036803187983228287353960466067732118350903067289276744656867159838181844888361488913549479778388086361443395211283593712815478824118874894696130608532623834259028278457698221460264021983397408260398137527236877304584702523158557819111437238523962592516831866502339149859382305697197938168079505800024729977961110298197570213635696270156511006788892534313303499165221386572872886621355508867792708424917845746261421952898687140113686305594605475322503120952169388430589265188174184406194052949077166270515750068888793076704576547615209381345533546671940656095981360122434426590420649972188128349007097275671822661119672294282829034302009654128640941974353739396051510491609177266347985071493593205222902185285768057862439566788625482609312719605972524514503816475661107242424771224885964206458866211739390538739600667034742086607307444032649178462756653362605566238332517230025785564756187522938555913381929791241185510365903072916695771515190719854182445491832355104866148185166759602375979907266268953800913025602967124119408795331164421313746595859283559676817725420086170007738082256326597291783087658730655678411608478747358815071984007380127616035320609732805428187493971845819158691161660151582579539720966568414551390125190840997977398156618196398760965355854823550291962393850299666577991894125573594182150376972922736435673898769988085641851110741726381734740365868223713255775777178711097004818592430745646828935931707699447714848401826634130725184018597592328031662148648602059561769979103389113266317866095589866337803399597593089119165406007331147634418511124225358664070204919229655834139458871799255016490521642120152504164381290646821517963110271808115637339166708912846624393263300083350051627291530988322571830626303257865109349213478379367361515898920295558031859055736237288242470064853426438015720357628312189253635227452095842892753626297589716881614452033232869411978596831057253842250405727833018010825038339300976102987447969051558215412153772657524681170399975931188606368348148265090799922233723592072944005486054206244154468966082718902729259200100584006396366019256399329393416938794896476101802192943936789684569564767839549325446261387878091864860435356876943791501636281237601533691624589822050060441261030113383724715228589537940684842319829871893951762172160000956965660939979263732383760666489744348317079438442405830228888444383321789957226076300009372509815235353777942629242851614216012422034902730364515237842634559501166859785227938269808044412777298993152135309425903257597150843774851175190618448463495156168529163788852478772479463767145837269943254265187924430781507996420565135882651095236518808531029086168260020384821320072332633698396895190023312586679353692943329134602436050215306322256988258334346113547353955055200660228076721440161767278343688831418964621719218417622111984112055753315774638541215820522809419506493989192715370819392301957285286774834792246473804669621560021499262868500341502827565918899367568331574927231827223187758957606312505520492483208957897525555219064050933351286593498297582519242570291099580752864473163851284317380521192298718502124177988495324918017511872177126503803223639166963613131577141291288319710941392385565011007833473499998192070353840295881320549599868314150695175673629783855187594369921770390277227694962026565413694027865432711748324504828118917638375340064817889807476444840467981108599760585296076065824012360691883262002005844420699120760230367920885674515405418850053681892249117163822305229724501747072524846690733927447882755965394340292313664389582117481359708324193757509132783026462942093261978721318274034600192980523093858782224011080997062301635490653871732012113676857938396965275737439032939280179310395177145722633229353947079340065309515479432479653733122132882425628545840021021402809575200399704385678873219609194072914260525053818512679375220849512848132493616041085134740777953603141371914489709501808464550722225113944369426629074677613873563808439861288834750528610269012781801198096595563591033692594932579931672854814379729376999806689424729103260683836327102472336396059252273787994972628307162849693332640732904257981039301895917908670480984444231684517438790999142102582536523264106144251303819882155105752456145893493338809955476276174791171578075116949031324353416058627241281901508574326831668275477946686332226029042114855706748170714118844319285227048399722192160763535536457638681012805613380436994482176406783721329584678502921207581189971380648206693448711660256784436990859562361669837295886916045813288683174527375892998600940958092778142810424181743229404615307926984893040356217964084097072607892845465512831389381772949698382389469929391345094076228087096149338940493227529133353434481983692658942055954182438328331773284886407415059526162106215942808643920328360276747418252817042170959300241775043221850272187058373986618626992238296037038776013608654703481363040799295396695000097847507056146923426081450828537097673833053384970435230851245826187829682950944298360526018911950879421041613686316581866088151546283491541324253764576234955878803513666224311887167838531412486389065094622931804071810771255247307065833418812125370923343483243351659364350843481632254431888799165512618207285400682196928243940528394483126938756895687004001936183268510370394433432338670170399059305427504885434746137846720061610150087297665643035102007646101013129739847314689018042535929003638944206560769828399485666683781303196384924497335652549271417012038403150662410289832696663544210085415412406022955103615460449441038875989891452159657504930969699500633054779250286625179873990024258388059637646876227298310670001396038733270611055602902457406144907884977633896004164490641283863339719420802074798381627335494710933364249640151461014739474714988244467430932745995740678873343286853779691978990300494016018369704487148752738323207589555287464683709165017781079799844254310190848847698424729239597407095913343733038361586859915302259430697433178413765746764501829237567155303126720833198865232409718480251286205849164717119781666652021188409455454478265704501195650669456154527356130264255155286856274126210649041566355725464150266935900878290704996838575021641968713290047952723740619240302312949106681765191739205261659858273940336993842389474109509222678085552708746229247989999054328939945489500206418656445560120262331208211664928041356832246892768653705752428438445672949358821096184962261431902128849905851327795514519585789276436184161645818128421252682855399638215796142152546120451518039210693870051524056665277801183210164715115626619458414753396847590956748917080115228913023718080304325013875277637008988773510471930304218460180308350078146141092798040235083017232400929927203131127071161065061415412628867994874446632016594281968328480307476810120514696273271624766325493273816825999332789201760817656720857123244515257104230982592469829049338467770837010819378552852879892097067198713016313462734133159550238284613561863679559772438151106031430463503966319173429329515099500044654560333068864151000133350583145333639463248393986063096183125010429744180800508949022858019631571742283801181391120113667386307125612906102477481494456088986382646564870888515399139710103335895261875816536002267477509362692759540500677024383801581022752910801463645978307621794548068528261496179355258356763090746591123622581684759735062154445012857571758023210954030484588719553434141608970510606397863975330041177793410128606817364204250734804914273592078676023716488124415839569589891226462023647284701635820069169696173692221179438675767012155471767487106021180283786272497987852212775826445360036115642074020822040683546670722263757692387005319141036604239228274285723492734048259116400546207373820693396820777882094660996944786873293547377628073751086411663257262459870928530221066386892378758725458133677153997333482411344189946559831428498969447496029282716781123537491461971922415325547337368440023699880587600317973722014772330301410951030330168102210404920345623760608467614208815168364469877923147641742434878780049882567555911287033753245746713120786656129979575961088485734108297196464027842190642168493646783067523490653559298005405321619879738635940974538913017295344053543448491158399024291054389889107779749093456980310251738813588553656253288985967710038176632115583798456416268577421584105544475819162680582769331368837898924801448394685434977084384275831698212326610962981982195667481395604111786003942849694883224072762664181412795554180345024452111408518175466413155944414840902988026895614571713295385687937377633083622362708191042092161938577586911458716034163548547895493043850455846568389196645407810673101558632526854336757490645677673970068171411221782957262556070669934001924088299982404405302957093730164674202505174776099345716086242280037995118206468128193607690460153463635839622120412072415819961684549879077320081099916058582712678698888238595671689052673140256942586773084428379880205608196903722310520529456886690612465507326464566840619601098807003629077482671273492048992931606378950202675027796969884082083263441644249118493610973967452434453100924676834378476941999325236224349645922651596358025627625678696092413524963970246472534759920365600258904648581356355224148650614887153567307456296816875608014420953457330884470745886615660881433887710615725284325378444753654223605517173957939725834333710793350997300209014187271764823287095127916013726443305014020137656755964834452237009508637644201644384130742216106490576354788890238180538618747202315525734551261338028896549933134797571349036983521146228868040876097991007803421235659880225468035188592143764156269760812458050147739615247970523704688290851630374589887046688998449340783978756845807691985712076450052932061575138785611845752372703127544042515491571039885802517785253878218001086806877007023350892244796085728701159722644252118201171118955269549862228350163947241449388124006120451215432311328780467656022960709276229908526467987828754592408011938516443789621578552312118034790933289561459580306551670308009835183595499782751621608690232011676470706375948602608497431690228121936874782874109801131961624255235292505044722390402099194817109075780505205559176964487566000802701981984749255829348869700826998902693377409588114481358247590175608500609220214310173709535494701800061648039985437376437057976375164465940286800484937497015889327912140181014917315896316219344246979136299828643862869479534064883401985935310690716343319526825186174687364340855990018223388362291471488510717935750258467620702705276814061251358586962102054105659199894389653349287397734621486625464572313221736891642421604206201169403716522803843361511404999170794084355159402073697860772192256913012595287754127324635246434373619570890567833575815677534980325504706275136285529747949874643466445616399049925032702609344140284336184740363986631811076049418685063094963912426656604095058941211412641513910458533274889543471025939344597845905157578840952254364869845259960735374875139825121172810389227012678567385663594989031761364691008605517916215816176402531584677013819229216106429102812582220723910379619877651217151992794089618771237688097614513932080528314602229552220398564352639947788455981113301628238043352333752902945788380063564534677278474643183673048142324728319779594070519296194654108251557181260659055895653215699063391351362965085948192282173457415258090919316120447435565688278505922408260880797593741027677954299669078514888921602264828518316394788883219494632525982069072964980221158045578328705149912773624140964190355674023998879072321200165729370318995364121849139152782199672656589069074080531487159268558488060705649639634671089878788171471838801516982559326720550156388398347845910785142404860363937129905244889271263825250143967427668587069275397012045824600802653111752016380433276195496053211094941038857644223705585958141859106901361814134660082908405176929862255943510517077508396464627954480030887731918626356765066905628828642868393484265592179017066073279004026436579052870138695808615863944501471017043727802507967521176931376360031315551690855860183217013556757881872684012151429219735177185090856254534521737262476720801428312179007793207560213726639497015294645448313547499310864666990243684542230971629899659883511389668489307119638016046374802746834936829275242414802403149751399450867471635663326579405946120233489570935342505637554961030548009535867961479325355349110049279919793703435656183746460873325398140087303314187959795250983094198349170392281422805474138395307211480120880540710043781803763499296202864247827676353928749231429306487789774989339244428652866897379398608107049598638349305426467105245024312658438683693403525538802252901601306478895497214575875601169247986831580730910078119005950522793509977561281538794666984851504906145586058943642102025328531363245342406790138355090322282773739764617828117391474594287151408083820674695216311664768598260783867913068160338964915296791892376152813941591070030120125140218494025471273409409194117503008210229148335497374769527357660647596290319809701837273301369988823712352986857164117860816777557401450407964468673974106923115107321226986030624328203804917466562563706407292176011868109504949817570771931557475178651347722587072898088650729784866385178939327423718692279870103683189632970835012595172793661455046073668126781931823794519124968775615303485631218555107464576186773851238957251492188798156707593984661333963375678406548553179147304192482649998521125403774906185268645971357437378555672918296355278603935387403779391160674671845413553168111256468851870309651377705845521474262805839406402104090964017249373622745822550760471751790245292348737656930659074096289666100909429287524795913881962046303386165774942116307958501326008035408743570986740084073485695496841714456076651021746553343868758322611982933402953152675229270020313013654527476196478793851799744192702383681872770499733916388998284102073281083147692820759964808706714986418653711722276344047135320771691689841404188114119532382138235117544793757423905964629868923840855769527184021727652480406631407239263974629576649232719520953802068686765006342280050120467040057587156594551045719864398464277138364231915228109720774511817421046754170544366682223258599161347066668850085128042615316987343308044236871670779405796736993608981809599423192960427758776050764310551249692339424554440076357277168521400543174559895782346145456154314030106874179913495269643916572076957599159839041396964635313484431654072914322358626502171127183439611616070865488645658569572632536123538438641270750328648325859859266483697840174849529514989469930872095198093662451183719991790510533243492946899044925941079857815607644639753247041422343626257169111403788578624259296030961691888157175725102433831528739344707600673038559971218285740566130803887692259284026405594856066030568732338458193865122195533829872034309912721645275541800087855488532860264791198402271342939638282561169358463969167114373300328024705856652863178014354152385973928476255049055760281703253641979351713046251638750265568814068087354774334250140736656080699941822954729485119241703197595438228181637078971513595503632413725348887903625149074907860110664270496443518955542261864459129471707536825288423577794454759166730397678311232069093846306036405316075588313316706467419615877131613375731717292971569465054380847745164808573353434369235644885209120862120233821131031651501767159653272900382741061601940397361955389085928779605168511142372371633748261398444365448174085461459101146907101230074075633842870089565941432838194208084512346739044512570629502872433211612800501988541792978488367859963105535907294604972642970942900854631317146334436590928269773159317492377523072531056449379510339483189348548892588730279737725212846024220871196624977670093270570250768871171352196200310635785676626404108424433893854338198655891816186212776867802963388824436766552245365106952267970472680310295310910997077779793225398294440283034717597218829252065999522742440837745771969911486525378287989294773154185053578578921277413193119570792408103652868675137034736856810996915590548157386706088631319212514410705192483051273293983374770880693782116307267361570964098043086406907665503034264910129421496961844812804482125568948569950244685135141295125575504097790003505403105177191354424623416796889329710506514181022338238656479234623700292379003069995372907608242893118487796749284673017166028088558489088683731072175832926468063847053216969530795311248992070138806750412000119273920092845219121342651759489477343003867371233125023216370909851816894879576582776429723350100960471870960636009369254995892054048206249034209103098309440061592746212755647740763303139675725498635582707366134107465239361689026644336108193459420324539459880969806643761287498006920388971240941131093481972352533565498215440675244462461425553520396400357338559255055785050190668444201441017704470397408834375618620031569157601370709758053918311730725838113153395279951509331590545943802498090612761011366758497788770067084750038529019757705859702071364669979687462894978274245752828859712323252138436037417763245193168812661380282171961318274906255312644270195508728526373292890115185260885370073399537621134913534496614299321674019954022130726813274095454399266462862148462081646599831367780410514983172136768717552812640375800714610058546973739473353848419438550341061792605582158348862866652019986148251012263235960822228227356833726214556713393663077440053982334137544720501226284135261883889890643428596294467748617142950261385704151271460072117109499509714440257007107716146288514012891534572247085031648548933864275836881395859830335975130515431673341431814701670049080234165412873051921961874841308406902961678918237839731996906534494019221580950283355985875580992996978424537658464736085029496750232464016227225804483040553213225399431337530386843232095302553119115732703212305692602118422888428590916765659156198080526834649792038354219963859736859111926867903183926757914487531406520973078170032686567367998494122153649999652186274315446242001862347363398068315983198216014917095795627636265517304238258125205234995067855592407940465318522004935708415142919460396854532932471801656698100906284041636577778736839793115774137031495469329832255554326311952285257036691047241772708684546468361014323326484350821410174668296100230946669076421088300424146419285277395344316228917409334427026525141760983788756394756133588335760258291872756647845559899503137163503892757375917447043159792803139298557955880822317436482743425791223141388131758160893808701906909293380266190286804005737530362238068451628169229846395644079444557092766796062416858669935322489894306476242707335745786896949774443808319118253732987978060956017921997580637513758222250115763860618889110669408170595373340064846109435825996168365448658476072837030664731706254449038387194265368900648898957833211678131668240885748561327245985963871608151027391905273078876604995604839726994354976679901354846716286491524032190885491626558072276083036504525225629773042012137446414318461574013678913932877945203722682163683550748420428942694264654446397653236477053871544722689571909004864645752586973404472097927195260816491388558708666826310466005437301137721992967544944782311875962683916362375732772235106896790427113478643732490086212297810086638770476202921379321851505806814672511589536723748043281685635381272120417090869551407219361670570635797991024240379463695127159194821698539424431423467293229365237324833805085647399927755030308515991473278251562693327104556242967429235474993008672544105923939981469087821803575565204519646456489509401937934162119355066614290553187295049841978049727266592857523160522951497118466862240939860342999298977082039081298403327694205106237809088181002867253565076812311778442616370220985947963365332042594210508603113695711540247689591152239312750140204699957804458113021681040573536705148588215047551381426255175642378076602742936878586009102508017066351499706945433187376074841013516741335307731729009535190800879148297172607792048090282747903682725996040321996981511855091117130669418261825254901032142292345158973032719698655332702030080140244435358978314127355264206782590558575993501155192749399313689812551556355966998035688316288245847395380766546198331474261786063071317454883901385012956924442488702472870635223684628451552660114801685023212821051090874475348889228510429642353600685132222417307232545846253223778652365117360634793385261965999380251722864844913844020330776397929384450245860020004535389067505000250992543326318086722782261964488676863226737596154061909028286033405671981625490737532558076243911800422886438027304915970979248279892167367934627159559364073428409251972134476678474438284866617370167056289405807352735009446928610779228317405828273427934297368951149578645298701940361583998142607106220926298221377379151371691553264292151694664284039431589792067649346990617839210948844177856980986396453798847125690047576143080815885962518541043773110408153449842790166430626707665132484655176407221119914492254769353369291372454546374804022401491538630144145836392568680568823041486144342839172115434262971020096914301281315723744401128071818680809742269009715878086854311355135843211830077393416920158363536722719705139770813410493503818714721838025353563608336080345559410323828198935598016477441738284590041992905697290874610330682907760616776504870978374828013717280712485658860255764927404402209616480048911360686779583526384877224328167316891716677288132967316239460224341231084675201868571975605705758044892263256873984108147926215388758466665337699896325344450021248750210409190859716194567135177217582219879351117856461930806504201759632027945114366340091413253052065935847936011883795884543641146949263314478549921665736829198630277531929073486834418303173301162162719240052157392356049326695197834926070576596264423189427701698299922250039540847148784384852579336920564650310163760027870474220159863764402866273897943497826951450740427954448353582238481224809837666537478471838677495854025831712032541019801618331924540325255759018466716884155387317774779965629689797480560674796272897356154704121459593082069945124443692072576865039220896918898462815730106330550814683367104233334707855208168408798943533166955514543321473508718665516617839325514654143477872061195932190952072776373424712051730272856107106084304265085464986422855632489468340555318782896846016439276828125013470304397510231816835671944432118178550014676496760100869207264304082701219009469945862823030761692566655950176550176490079753469671763600138229314677410708409440520829429863546726043080606500746689604951957441925404862000501359454462706839164405983695645686709095411381446792002880565952553199713138178278915724525606661804819044061477590202842836584167797366378608176687350031076755083616486292998800830148319943896577878874962714534538137200043311905305625129756002666995475603696449075195974897138675565486739877441405762703760287206170983278176195108526405187796091820482772949254634427714572525234380128395280395718782806323479734267404053854457268038078851256231875481242666535659307475038462614090859833590937402123907163517902586872124650552555445782919920915744902072827569143661974937467140415854421637304840644979994676152393738941969756298160505972177331976964603208911067553759731685644828827260001831271900296126385540745979514584388076139080540425624799659275301507005036369647657451009003860927271155672825462295572457746738580277033656373664354827730524315393844585326845855374240275540743154732996140430671226466935642330036149895621695086407358034318725221684863620367564227471128992108610484625835634755907481209885846677803226839723317940751199623877173040251879752894805348276576989040145550665197696715420077788675295728126813800732507578020635658779560177191956923971390576369274283826161575727208607634905492328284641782507855808793447246318002336833313326930357567242268344378420199016246617366546774676622364621875001150780127597282381392378376719274279353203644146994181152456939337493262445497545488385191049780406532368182249860427711591572200762438231471934789386352936306819256485242391406160407251052179165377207488716053683953374028045559235389478414805151057658082598202967868098970710045114306099284520979611522402014808562124350779161674477327381001291781271851179062440164384312551600262434980317859933842446256010403700886724966577881575096362392533865056547329122504670871350287392391030429278288850134754519668964278882791416880066325546385706252260644227112656991516590201518194339319143296261757650723879892612078810847987380245499982050795537308819974282492150654273966424440714350693826089877135198930879618565793598542661704687828086213064711182407738260562792618385834482636317262802969158564078018350145110600977858547475643751645545498659882131625338966263695978927365316715925732611279271769197460587815660914722149843201544945988936851952119220411144485439112142942862401126400867646687407492131164954486888781168225010440217425390346057155990498203843703762839116080744591728980549087785806427979296863428212792670461298803777512846496738064759585895583944124990786487852275116131898777759126523911263196873905529199243835018781443532228359188626515158241594639084312016549371676057835637982205285484090953481095441362403388196954933944930977013425296536200575438877314872496203609712408778485210511430611796866121102585901056649003286182151466301981306161170644018880898976511174618996749329136656390446661549381934727614560944206354015025152887515128051850098082502881143786214734781588741663939034661883132049715285675930984932601023867110327865476991623486546562940693347028559239499261998915740525013444866050828686578357030640937956990526078407789088557143897663175609096621096549453108288769390166176082770962622198982541610303124116296074345867943851653817582118828283374638557817139847987321017836617863641300949066929248272600484494315656584876992347090116422568977054626385197514056348808183685776301261411699821244724548172707719113722704553105832730644863561823707337363450758464174679474157969390925926652719645005610980296474872935461166289887244658819337174341218764539827153771631640720740335056826724125789476916898646113337452742600354757354128948223216595999461608191531336870857571409219738408661564550298409592560385266476447828121259152103551014329737497120471320985859203551442870924603391601899123780046543860144149660687598531406746225278653101690798543831136554930895307514451349765003300554582536957050814431309828713750957354987356050797441139879617690869252283969012544745109980394002934158254312107769553631575187819547627233828097847881026957192388710311209241136687535824393998226687642711157484266721010713916812385995594453766778451277377504096959244615279292534133720829546813294118895248536535987226567044370597953250858030121001852118734267596583264732268410753553691525445012014516608414646253116018273223338245123910088061804973479564487138696095587478179674591533144166445911998072278099775616648743314075468481882197157588851413921907178400777723032429690081083327987169681566032458418822166770006108164830516726184145080191417353718589443745952049733858287138832372184841147447823215550025563317861628030974890386726027931604301806089606836010242003668645412807020235194521663253879143021647234644451685449447162018034935761991722951067684597626033233107177053968494347878105243251048696901478378662547642261656019556081652448197188969274526159493938578968614326741569437552190208039712195031002913736095898327804025171331282636727185691660633264340139253188168399291729964767015074728213910844198743233393016198032037895338712222513478974619993790348348481329407840889383710254926614467879456453213429015336419944755590364141964351238908999695586792598943311064173683251303921051603126530431980580922359738490129340792922005062644602570121681172588226322640227059818118146993015383792461439348070674802866371090369489389182750592608852662993074080640128922756453585362378506305123040512548241590804351179708256703376734069855634074828731469429601847561183850230834603327338982057388826471501605859663623032632665493599777735317905782241431703652796534631016787894016701668984658202871892902614203694448005712205708244302771060644767323643082058448919787821769925861195404628502500544183115264355405775168601163905881453754909387979052783327588082769724506750573436231431672319222318942661882809681558964720896925926807494618907926037253845099840912867008909390973454401121384420629900887866653096402130641585134944143170569989370968049000822036760369409449605454366075544199045230356478494623655703608818000921143830554793056482522528480990482012889363607237255265901618677890131641087309367328697474716480912219024635905852129713567136054440457005428164966779090058592363382151674032581927316590645925335837860141200614360843506591975188070161757819552657747912702593050893508221265645907774051304483404251271735829172661777571898126016665098401274363115648158607046765826560120952248408352265905845140787082096708473352718679184392412521073707474834469031523811903196785593836533203782957265628568882158781037482349297359133357835362042199801666045484925024687700410482242284588219336024295133817594759418160413215640790436260295779198447307739467077496824882251068178690682120290665867411070710081382518548091326736819603205766292925386398111457965255598346349818216822228806589226347416612955686937917921274570331947287189800124437931345037044530145755982776778935874160576901566728786363856459074398771642107359232522388066765409959326369704697071496653651281877899298132345444267516529498451855347702182751186024677386315451888487121132974036674153247369349246213598226031804602374754142275711482318861618764116933949121167768504764599363069458233575140481557537426722742043786445187077818583385410757937800247895705899148686367574240552106793256514697243935129472336041067444986304755228300040346240953437809096827544651666082021923448649692369659773004397907474722005537095474418936684929482692845586712705206583577003917095323168855537948936108297673448860218932370917480601492765938451933050686071174749931682565822500114393281849491549572089345841975581251423964632602330716835652092114431336900679544190894124544787934211891310281211773085993109264479508288377157209564674614543327248528613877473813549260398894533630344508468916614255280262659729109234682520277976732062352772220570030021731551006989256031862810335881366401079842757935315482870470512268578938088941975866695569870737939013721408536528155711251490602911326582305940877056797966018285206367623564881715429245337097308474968295008799998979521706085133272521436233424141447024821311489476420055692850149989575074026907284559770801069417653983402615951657355033258889370458819157419529330025770856334264096319239467780633981593602254782820653886796672454482460049548561683059510454010846518179774166942433316366262373620577816499799544056548762732149518253103688875220633567852029777666150846280270530710467076145490396360532228088574800046482364205132192535364370454583671397667968854374317274653638772846060854364867902984034783275145189506301372892528509757412284501045341140009568785960312814155984029403509182005386367342476691881094342447659395716928849797375250706727755325086694588347720933882009790110532772337648079821931867763952444319181833756357437744238899487958815543179052817729464884013366238441188591612676174491188184131608512709221314593712457629639833133268947314948220217752090296317981860763212968484376375612109962319954289318579080353261920518231299142755128700799709510220313246897704124542164004496868871143600755306751008126170816404404300546325811289149283811328682431357260046038640869286544553393526211655776028135367152489476666263013446314304482864085941844234734902788724398450724072656977146309286964440315272512567440956105574549068313778330075068889338543741372165031193305680543693527341563452529803039959704002373645929136231584680904229309207947328701252964450938094548457871254307497805986586176167771291094062726244939328035100366742595175183487934793922537891860379591356670957112938241746376809013890492180056644069158747429730196831133582526694572906076566847059374159323079370075627368195986246172807896859362246915356645482518131511837405103255131901808919971464731611949134811330410550701930294126076122674475394471340163748774351804377380142865487420570474997415364609590050874943522749948594211788729370974323149745864494275200266132640723266682586520545533689724211640406941521734108036047157769738366453439043084242615648664126614017033336453629473275261378815476257892303544170300044232457197590137388824954552262733538714345823273539709528352882605277364952103202714391821718171404788094216459496553880456542617106839746685722784473422644507750343389072173850914335877657684645579933774444389906944450651979075256844134415840121987361364528376328784072487034072956729377838162914036314294748559605341715805778091303388944614422558500720957575186016081163971997004329805117540408702522476845559805414260611911886516220424958887681445499634926579538166245052707295988117081283587895181309384293195491935759581808134194433109302962758123572458774429033421977064404132608851544723683446722531113896235342022275671719077521328875131352761402392058629772413383666676677496028320790146337946365515943136776148935058954310029131828256893355695618565030646094771248083752446690004751827933831820600965981078525608026564339863415081919340018436482112256038510606184748177106732148783880062931068124520360061774600465881780320088186229136692374086594363097038268141560476100733729578534515608689389797194157037833480683096045799962555309905079435495759033310084720114042941185814344903679456085951485224761246943951070158857765455163163948756252261135249389466050467545726311201925898908657255997996788063557922122894376563702648199125932937468904969898805942576019248241470148933237229494696691916202083405197583519018236664124384223919399006641168785513099357114198945039653084717926983242295038477578581400062849609179496382979656505432156105797094819468320593460807963338136246919762398272105931721388191222040926028575227297196173770123779172700743569482119747644234548239244669312158142442581560182251971619236174089481484962968507661425227367146580281099332923408150673612124803442545897246169647608671643643575722710951274753396327327310467874241441471564675971835252072821666831183693223157000207209517170769044679983862637726781801595293746480912670994158920504317721998757225057597533100970358658563400963693538341996981052108817057257979300630540659435356995556792586817559843996264721359268355439175187497064574766232375487061229740333021578102690947611875675827347292203067923575704601660146710486196850762539842121106973778445185517217234860629548108372894667969963494780462653726336057362510947690518591710089686279475506278716499379781757350737635274075703760814602147908323345816064969206433183805287781139385324627652831794110184712050230778435078905647527596259176322709635169636204634207057443808129293967822486467230084186239688178681046741191206049213373296825716169416129580919977956478426796698952149392619906142572419687127255150840969005417030626283798432287019167536816882941650832707134367425124318774078626766486866670495566428898758993218094736643515819940279193495701126925613980925429079424521584728292246386268407077779819347926325833712717183885239775226114359379800807137048817114354358853269471850816455717237495520878057147075538910064934566946573686775985729808830066648649480869952860726077704428735412055842525390373503319180626311534387751204707568945799709617950369115642942479658540141130447102590951845498302808248041967554759799472830775326666112594563398314933263311689505349957874125069115978493081064898797862800259140087119129206286026288264657132657369525953054031742363692823602956577554162738676173254439694760840885801790552082118149291373153328528290509533316108357219315129503524994512480907032858787616883331865906055442092707924992604959512241341392728002752582065025047309509931203956420210929267664310785995301976025485537231291276550877179158768753500877628145465759783252054076645491325909288070093714014000275608468350472055224161707323576501522452539164540600916727103114545504615080602752896697811456823904559477238620222472901682213311721258927039601677737492854382936189251352582389713762673506762693159832567769548884742421307720398360747208689083177649580610572959440687601791371768851394119612666991947341764661519756906337966339339457180543005778613058519936053986356952409010407726324138674336215888714845563559733116077524800488264638216678527315817744216936547586596115407137034809277818517262501194349827496215688387676658727903976066813093453319840851130381145181461575775368358855220087295787048244117644842135300244537680662813375683150449008793757710457051030338487205577931447701779134227432844323460466986394247022023004755710471804702972132751164335717664969778941473804050198295496577614546435642525651395305636438651113091728467980875908344927975176897640634155717491345966505425854228409956165189365675592323378292383372896357399962046865724345205735707079578320729994282473564045688374357362119901312136797249340047332843506811346993490372874864072255760257033829736708667606763514799721364982983902239975422229438223878130329851457099809732983365222670367923536114356048775886857239961487856021305395303698830866166775228856200209517782241533353576998736792006212703754351435954645646219798884324312358095939982498863074379652241144581063604611155972348312831490066101787152134915841569471696375289176037210073027549326586374311164190839156956142552854001757294421502715682147924790185200604062045114836450001599930088406174321429435651933596255412993037124169825480856774466777467325398404471703026152168152494620967410582740813385829435290430649213297404679609880474667567717882631075308094103182189420490108237191961841103534851824900870818371954370855930031731366595756367157349242793846916470829846797293732121302572981632744166864348397271220580199317269872489248214743911544383715406477704684013722099334886997089742390365012872731773354088169681464597388155664451984572066360981905987642182254768762330288704569129635236841591196616396249239217639447863143834603197804977933586226149710004532564190011306232989697054933654301207282751186974747862226697967063058893688408164255580106235707991683772314325933187709126003129495218304843438507945796687143635193848664214092310542872957537508267077717695501690733722590818486270641323409183993729897326399581677576236759951993038606467356469560683351431302238500536032485830232044716832054521499643972733703519408976940618304437595926091238553319837440608220878026927313042825633868263209748917709646442867082380884103606700365910794682873129418300462351958770770804428771149627054977716541895376763880545711925126700465544724685153216053007350103135215560242648737345426079444438099806265843934986484684106684719980148770857554950498394005720565609329521197877589904015509012125442349783036464413658751011307320505471825605880033973164295535774436875815055057348055778843732588899618072388586956325514456998364416120202927514137324638520552436477884067108814291689223532624213866911268279153353162737345193922849095607591851251789097462529070755872318594027511784527438541503290508960180060440004999478037689306983564349277371557004161191775242128119639509748896063313818557468234578410145582768178032286439873802430791371752114398149309861635574769237105700738382492602002147182127329812538648697731109620081885530229886247783131355571712285145562018075847995700455808618276625037018934464144902660793478564058472328007207676227573647002602129839523946202843287992693042891715295025888257815657651453090072675706255336173079258628623500339768612852286236765792651527562377526621942120443984442383971903726277398682236140317494260443098540926387056025825749603529839804321007493576393351378246113606840651527586217947236152629588001796615159908543524953864260885582949324712633528323444493566522798602344113898028056339341958674017199126048371049998090396059107188275545142997784489941162850416005162537771032257976731582558996520057480657705137937642995058245694571020167448597293414949324967013674702150868213086723371910918652017883445060796811225728408167490575224235064089129650533683167022262394012325022248432011639753466823360674118780297123623528963606557934636169237764780822389853817909711157773110783241120786734673726898690863421474335841219193213833696945942662610473199934931157460205226713727928704789898989760209593931525714143002417769199831689346259911140681832885295777519683685608416539708073685654101766588018118569496804761939501659650627370649614874831741027111190180098007586379387183712666818875315042245990172885487936928323834145741298666139100130161542773773700388479003454669950842419307320807189737115216063713084985208786638202439386404127462638304435792178237711163125267662653107522436165653183788902796215077831982308712765814073174343310959960139533322064375966133534741617559989454800221553280402417298770542652954806956946484515008056747656865877488595765618556747151532857082130615502111876319601632464911408779003413994199966232141147263286395846985765668503345304134865154245708992700890900803858384513010574712840616870130556926393152912349263386936292105682150098762266961851247900858686111456929197055496875968508268828743301263314469026374654807573876534798376644405333545005063728404266742148895185461311625974067758211138630609206404458446184437198239724440994646471295358030971184959718286731118079441927688270019988913342840907999484348957545011935758783889836120189696392477515043068873250261459217015035105196456773795930226171264665448764392375852534877745875196303896107041448044352562676911423324964685680537962632991145021549111695668736066086925599201703058894972089411202353723663536086729740182999281497567995010993170242388539019692753710307457324947221579242021919552919990840722047062825910598915884633842716223600374619344193388048280296637670827316345855796178004146185992349567912154640093857781533301058819713375215565369231000749264711039266343922276886175233576890676729294538478702673588188193099349066315517686534679735133458029142342763856188464134094783291646613854223977632206157830565099028727362018742636497820397637356748361352572995220386606907641125706748854897647960197851030568626231078882947314999747747739882731115820725256847555647926973696075179353227147341734031870983370940946952019894551021806983590312487746216683296185306831891037296372146717879351260572384649015726239026385426202059481489097244912361326858604985784142156293808709895663541895249432265629551828592205918041294618578567998288885585040038882529439631013888751508773049372006136026803797015430594275637090549947157686455148457943255898740961233698212524091365949507226753159089023971182022444073699944217939033629803084597448313492882720330213401468726132956035147675332711580854354220742805767279448744749930329825487159375610605279985168583107940584397185712669294960937610790757810922616638342977076378996531588726586520173578624849500961918521432779536476017739522788927692561269209837464879260191922720907536699879284438688168486452494038306047254823169373568351722011252739881899794638499864399836066848638708476599988535730574295514940737979173033121625280672488856478154772838683596944400119829835659385468235191993551693340067191936652013912318493273989764252940926935752325462644984970164383045089647757802064213461528609870147654961554970753887658609326475462038705614263034042944972984088226189567849271800633846878694837515948659917175286455202054453872770377978907977683590684233143681688998069586566156727768856995216992795133294824822308791950488649742795905261021270797503402677897898333325732118009097136606068721413077568327995192711197200772823673514236411721697517735796842362138226637463999022669355931226471812367866346533097457624214803728369498372527275536033796553198780629109940652831954030347844708883007888491925065658513211261912930429764653520362908250644396219988014768622097004262189649555454379279549778997176199426611338604325635634238659738075201846589375886366757721578072531585532781897979646910574152254568777440656153471332197077357291322624856284473831456721402936426019347148756314841477896652233629530769051846073903628770106606513715683867881352024480161518890515929441361015596089626145578947312748902495982670676475259232681785812434977393127877885441881062944438475043082180432535840377016250756936929207594648779529712591089832229685096786027111332337156754837297287049619798589060509745888686653871571195347783287782121950162679323184254694151706227265043734017813563895924531327030269818786443168141845110873219078322646036495852935622218785275972841755397492142288756736905943200005149248181065824276651453220910678958892371179821809004446046694348327726302204340196625020752401673679475552132741505886399744488842393244961292895444015788476464373047450230511536661129630672886683988563088036925725225078601202513205339277655222626935790810904228751497592236079665970836324937378973646143586130299662989204281929349133090739235907610763954473590959183320691468758793094358025368671702667664192590660865043534185267849099450319511817572181054796053606708036399323735026493625923287427710679155274930346945134643365622753493008184727779924390739796883811739231632103238566403978516891323849868761828570677319848171125419147102353365259937504510068714426653425293922453408231390400330015983930487882798474649811031938609144135478457828338491357170218549548052317138658483970196572842078672377770322979837888363069074198536788299213226040538832870912740219221155096776611502124290495322511179432253027802216526530382547659447282536841337411345464405950814205722088580131625155670371628780839706829753305351416461628558073729427443943842199296068194089281358322830032105547056881794716358961010484533687225279071041292676265507347101026530331261877422765535045137407382902142673249377238050557149140329915104056167012763982048991362393868853933722626016464986933804427794127183535112280044659614844919785653211211019387863030268488322272250478037578835732473937515665186344225612748545821718708863566941399436947885167529814224318850821270111996789647955094427718759108918515700076410910506552707591088605531715306269178147518608564249976526789512959441756370801378028292533503546116869642982658892074213594644341840598906955947429755167528364477977068805338705194577262927581434456464978846690154378083015750180538324445723683900041394532459041550300634364251765468087130481646236093952888583260627715875774975447281017695714668090911394940275244244819956288955379765987583037964750815949322560211897945073696760985455365207974130153623459912490075649663883606643963099045426138570251319518594789849863389624563990034603908517494634668648387652369001325325172791708404266953773412489753250885412137822442411672101041600380486152236522298199812132417247772598767985988048693011615691625403263357648070018615367837362980489434317353513793903167728340060259661048852035265891533699172357230170162727572590505511328962114729157908894750680523085223288470672221990872540948925970737516669860199718823789084275010117721509075891832019606147774862376792052078865611018773003241606065136115475638183973635158469578209816756863584554504948871307716543502449665529855491237275341398476002263508379739808058683277510890233703563594356655335505307911088819091294524940284368357824303201277122295781081543053804196343791343700976697020886315240599199016360374941912600217128944572351724005107051134989858240945849588994394988939415659208936262272232405285276501195709120169198616517053817621219212718659101496343792003257845473603855165908724033538307795236007344801422695221750086390462114700750032125134218345251788712503257748152900291714815092169611296388204720512558296701201250632901149240361676381189801283839352474178592495233789015007027578077427888756935518099894569482042441165539148786028232327045285848475353306110315060591546846683859559267205471413341855381751760769408312969202147153375548508452526466215523084531193693156971719494354425944779226214628463906187940902614431793734705607231451675153059547847679758685644066681787725646496563818088224150611381044375990857723560907412596693729073466547351857879716089227547209620164940484893341108330126199377271675171886118846293670187251336900587200188195697015471438988495466918187094645856260529044498012301410434073149079746717124057686864217789813574088553446198072076711119706013551393867528922871242239476397253913575946814571098067478629478409091555105024779024147503370090053286405810460115933404799952261507859965231140272720410257728897538000068225993034617210712986047760490631641963748951871036339539337996118912955466858844522748498624962037276661845981688902216168415272095880712524256323793859467031899930188914372984244962642105539502894690965972014196067867943096168394301021859216046921114057362262057516961926126976454268750082625818396580145514308826974372708754642026226971897768879330460372690049577394018361394557841869833409583771386937721365317107710168291039398224144274457151014217641495728548028011968750392804921913437169518863176977896596040023465471713339812165858942943833582248958705780236351018984903504034374008428259572640617484006481370117677484741392678125698232449504887812046376458175395986158739963054164924885494523718692523468645400896072050165076880351854675889708584820165655044804688378381096621299481303809097371887242665178918604729620628542445144749587443591020148371155450306837826338235549267152782747564418791230951718887471221732472556897976294970506642781872830923785529335384529034215830306026260081644906655361515764748468667100746891928812470765928755174183877786512893920875514588949024349630772585766557181660009610745392117499609827089743440666477913549674548346742289834726896179334536895051922186971497870132066545179518246034847237204441296965708815291013051729401130027709050021968986181377516874516339193557963720755382479105695552581520114219770154017938555550959329208677616731384621802376197125237901370917227346792964963370004633006656613412333138493012469222735888003487609789648841615909673109111521903409328910189881965289462016476106236170914110177992651676460751638392968705668371395500004955454333458114746708781752564933470087913937002889853899174155342489010733796327045332736732157552719787911914338114998279297791490253805366249093417135068382558899164717345683534432560401642558669825001413569581575564497756658537243611574084096011197442514170872481729889404196554502961162704313293351144715768289185372629499910226095812113153170145529276053634852800060780898014621112699633082505832841262279891084830519335868737208543707078622993104872197435065843638869331533189376278954865548424762896850512845426606016268408745029374521885500730691323135431017843579552944642443566170465935216093876872685418350139613668652538775355144382913506330761093408287773273807375003340461644812262579389674418455333355584335352507269727267061171831172998796728029238889953780998813335797910970096735865199974324165172446683869704793801065800948484299685766475191677312226014120480780166755533317070847826190709796730490829486979559134332448914056442887602822430451030030421189525644033924048332208318861852685555231684957718779734091499062443883958645213072696555823274509779249659446819464041791982686543037307057317042069968982255693759056495509589430247177693360216449203627711287240810258759285797329529898997947046430441853990990669585434860035789483180682063287142157208138367152513500065929881081619044676339412373139290492932439938785020558433605869724611384549243330985455397250337348141976733107452141464710602671293867566031513516789340982816048124391350753410835991504855582956809394111855061276625006883992587087678723012652279737550078919379083458318439613679050381046184026855812061103366852095010661882565375092007130439390219510333466530840962545422501507491798665734114545552045471402031695593074912979295376219842813551151462555321028653115698145964398190794970374576796330898454226396521730531036862143308689635282130181119432708052164783942257768769083809544766546022059693888147553793301935822919382966389934183537476719038433667065485150696808425817128681300387427693582618562450450710668785179455634218398237147124544320235477515077578911348822185753603273033037674678901027712709254407634246515655775727725212760901288307315786565156423734186475753690852126186816422705098146748541803545820384094888104433612840901617118528815358105532972501177455097933716260500314948558767146010907115207048866200001751876644452896735107567922312013638377661658091602029892820758461768899705024536373985909246443682457425674596854466666635053914677614852576757114005020263605150966068116343761690525186319346164188276317475275632872039837187165985899877159633469045992027610005963514016142569317305759792920387394725011422265705972209268588050731426609930374107681175930633968298990528577350813415365379246069776719055408432079764565855753610055279961331769747010828458097621701490306813161807331888121399294434609556047752385372331507505180862865192367402869362076205667957819921208344485346159380250344026275048590778118211893847043999097310084403704514895288477311959886206272366756219487968182143065503302754847191407032618408386545019934960254070177177114024746168806641511689105724509302300633066929416808968672885390265812442128812644523841190383598961159302726454363848244278841257590964886261734788383436570360132291997484479316006327259803765164287940241102456037434978135485375083221755992943276067126598413400915254462469654877302302741977579774195148875543445741956845229353975378968596160929405903907658652801643866711201143711405418924093301610523130766297943993512878114886117685490864046788787281943396734469336747923676830471234236482129264101362804469213434801624889170851124538696595668115124106543476945928384661093387280225503588559793809909916973936122326696803143037949320854976451160350285224800380289516710033496189797201510394553284479236170322062925370396213486564498340910597023052312033446623427891214912787665133658819684513181164562356432807840036671616407748216712738333914530098033004545927796257006025580943864082658900280725442605306573494577006820362796714403230874651495004923757660331922064224172235569637320914495334078106042429460549632024985450328533952002358671002626664373195369368039804357513713969522925369054503525936333790700713238502247285739533177573983162842927892713756878663865595148076857153058848035385312765468902015976798064738594560492502345092997794098787341691152795021763522590718556844929148513571608294357621180940934381048798695851280655044927283007495506045650442076120220607235782637162248430543688163872192566384796360479664847420629279571196565013250269687149229267246666747554698338518426289692096501344079873216677487490030475609613769797681717316967549468653198015125379339963684580280764429081748102786991858024145815973808926048079042577381069422235187133350463227636063745750840069932695419795867630586237159973887077225049107485932694681393981082739467009496268345694047086724169338155821886046803553087793755244020846139970359371188699686312636568213531582165514904767517382680390920012728860358611345090196450766365011392565343532319381554502832853909107365807085477939112601777157967400329103857733923980270693630457411571969558367256261143087440694462192679562749918625763066501074895929620230853634290155917155404624045291104672688301444231234167835671486052708922311053884531907713829292229207564279615635111579454273923388120301826545736724264599775072853091527630093048966670761382729979326566054407244557442770056557511989190932936360223630583965879894384343997435837015657927491696128797338462896676944820575722412122173834192887163363365641768312388270795052512354100589472352129379706652873505370241848541665904710286079980686995378573551096291241205240840497960854542331995374147733822901217601720524130667289963134785471021263246525628930863992498044352403383139055397608865437913844209499363273485312747677681292304612694168373512687706424581142318845922473441804440978148881196374210150439058031892973014533703059937446615936770856477732482810331059803103750104309549834133404507675738164828808985255496184998299373173126845568115960440126355025365356883176112037896110285311000117600117711678882076320833473943878308335888651124517188245011756857857092061467055389463885174051776333070352322498055301917981447064301958146618167712144105481645293031250028983195745449252392952114848177055940855477130543680325268140626720057495662392628461430091002816876241101015164991113605411600442314731150227770271240218807945837763346242419425661214563855893836045396885745431941642281446290985307963518661938676855313845510777387415521910972180077475351145463846458593839430018511911487675407649551202180214103951576091914709707265075617074224870742371752973861813253499712990767996227983309558851596048790317991723867053472070348234968111488905138356907778898574330463035265118101871028941697173044397376104981203080771714040936024002032751295649981183672391668759973168353340911499614504587918057459640925720217446900904059145446780083994659829933229036461097654560207369181644375253273231294606917708398870546411948962219535109231144503055600745955858293178339847869630063540593503717578464697277942104251521042784599608946698931114046226593074609296970699077652623837953224644911573553986063760454239071405399176990002267275519912236738994386029711026913547574031676856227773483384613258341913443899255564167670540428281856548989932522772710106888855471404979408498386813928285191373995596609055689143809275730065763998453910571963517636629304970172469331191524680174307543240836079671923144349094779852449854652104339128435560111806479585175561214634715478848721143070166374599662147084298783438810861542572197516451233369259930237389346482590685033171691480208125290982192860224957428253429980225881811006418099780346767932660438404612071699302832999192074961562690167946307709931596575001329030305152288948921050232814566119020746999203815608671988855381846724235865175670250158154117920068087613085347604607069011348760539988661584269335720100128812599103862140363905841876412664900655636051084036763018260161821119635986171759410317772267514791641764796973021785972229553598737642128067579121996541645791353284392906310458078624405838060803970120616919129892638565618791380096731675246301053139203374746302449217999205326863538582476702619626356491393790184685855176809558977820121773778505003312858623460573464763769064442181969139667441472915444073535476317906615576348701297957884555557876337843994015152730315858598770783617740118066000650339424350255273611385305142459102826255048431501053490727935815204573117088862880754809938526396126393587235932178221489694504700918476467326394309859509827335170415609892149965900188332046532437674921410457394971666310209136868246337928789584471377727524960377740301864962083199579331517594577516054285424410230600503639670886692548058715203568786366027188699947380859984007040414996409494598758848531732355740956049198413211857630051223700891445706770190309427191326088524844262132376596965796700174723711629112474677299953701015036535979802773116328031660883469554035072198159460839021193200729870969616227684498806537729798553170415319088173687912826742286305413124178039921147359846446407815196215422828515024277749339370164811199369637759200037019755451093014919208710527128248368461160999057299118119209219387730819316155059501135195461456867537292376469440457449575917482899155296206797817874455636636813477347118552242179946395703066660650939758432511194860588489959820270650665939740370346316755075626912980518386615126744006873045148620368770877755867350102565612943352421110576346097888127338094544894814933166292125442207554479004660868963981518223901682433710000407330903149836664480544787536565570377143244518222057579785568517867796887739191482098399583556498804619013440883058673865623401916377782154559452352505194857743498927036229329613729971580168583832375375197462035823977388096891336963488490644749420109039503994872544317192750063545351682388164808300297430874923717270416023287861901195530921758898227882465878953431422354980231232977494444713267880238572822211073492856296452386065711813364022030232226924539776767846524940637711102410981999907983981541302709440499814861072979375162997530601720675036289711291702019235721589384426407924636640539555311547551005979857014514407013814822708927126894679180950383091617350987544075626345895381678141849398472722121145782458554156671672782096146369499769437755066064098177019588603415338397533464198775041926673178405130808774032130295221277991543819004123477187149301046570504416159649629401409080137543946741579717646394565749341972107705327324657312915439981928290058075062746214594453602598153115084886608552501103727906024248191620809779138568993153953462171869473905683146117851056695341267986917270928656462821265358121984513186219657951558958371213270334459831595913416619360668928307589046697409031029811457050279566809131250960149700080139257034762789424810033561960935792699463816001543649552224213371654677973302484146124726978101049459736660957280403097943098828686420438228407809604522841242930800531109321103189302959360214321356630469241529280889031589295538300938455377823243682559064804633539054360565136750881977546821486224402953748135801609587380357497674276094958268428797698389092357835679912747976100905684842742893256039143628910191871282958470446245646067793408990217752106874727924320774712996924383076144344219462293369574376243489169873697149498068839332326375735804856923148076376246109253732482406060752699498590514538923327821780997131679398238843469607008313390033708347813829556500719290967859623182808606933382815095293960171617393764617478854276396207536111315276103984319874949858816182055434877886909334503886340552096110206570158468406386946383367249761123165593658223568439503515768563962824033335757443288656312317844572787215747693660315913319171506231141317925624334507575899131780772944220674935172107527043874508012873190326431597444753746471360326547488427772312329998633702568092609258696578465644880829758838447127086854421487993125647563527640044544782415765496730247888125466656974850972805613686148748747247530245413832174937620605024939971665642877603656755653967013904518097715424179951539986987938969337608581797614192563856666913776337332064428667997770491630450080093833665387401481144796594079853667271667654212599173248992508326047342849695790731808213555623766367841750537753889040128611396896650541676729961828388201758081387823537855848626016640904434102373253778706221717052305485521244297087179145358248955301154866932103307244658853265393775945528674010435961467599521852142290429414096379478022865844691191655138681984042874718074266872799835075336825956400115288626672860287535234727575507743842921098834238577738788627219065692776939021256910441080861175850304341653113524000779206512864267383185850927967078326161780299549386844072002327669449291049188578810681840479958607980210561720430181992405170793847679169465635687114386924462690119246595772849503748951945933798227966505719008281221970906841819681066257450464130545517877229886298615323186531766107218822667237416662700219978717258067390480667369299982890110683055087389693698626251907079893567544208845604142139678305257241206296769547510437356674569482089728763398449126372197152139193819373594919486872317093410818776453905455042720608092737848440809178824649437049769322142146538804353580969665345050053180301681392212306790968235915258919802266420880053242809797824204560026568131721580992408593105303860217800248149651163582639266792426796630724363585043135094310761606624176056477667162110145115031577216175603602628123894654306087183212736744662895703605565138885518243843249585934273669563078202445079194266610913227316318464776977894648353120938607554489739272832998513464961614303291390070908066424835386653426992212840046455192914267632164573032778274226710367038175559430777463928910537811351819475193820637121181264974391250751065134847436556442512324734991986364711545302615546642081137364481566773771236648344466990161463109711987730856208255270945470993324782095620348014363413534074483671255554229342169511931259357290580426796784870325650019054007593931169822202243461792764260233417611137204446223632969812165407602087524729015163886210137065117223402433170207669333678692572168785913056722918704503015334072429235654402691538745522318789613930024081315150325315395909530038299484647298967037908005873492003109196386572495082731491310889340918374138763999106180062488917278328799205052159295741590340269028992766360100614162603022052757454922693372162193797277722871038128512228050108357220309772243035439740040168354305572452318132817211547819088180881484840571944531138882548067463684281154306400903167852458332170986484858486565679645579899986101076085574292891898114177223074967292480539034132921149436322053974372757738086564227915409798903377015695046413137664907588277786070246134606142029611112866653742843951133269789309890665945040571214279664686152927387154793146471051683616045502453653329690563771228866597082525617076557011620899404390516207889841944191700848624158212652156758504575736294643248766097616912455494242478821838364242186989785788594464089756047338219391398071728824811887517723442761431620991636402098575223767394148603266789144752079892934270068211918282047324516260384653389260130482630031548555345079637831542031336939625057811267960581292934725637705514756918453457701984525141415204162469948441304825023057092178703248431388452881247289635801360935865480190812713708736193253754171530509916369047929145752639749795895382032122564574548318466365675087114570844897800430926957264064602427409710282665161857201582771524207197018670473086061508299640158089578997641322358597486092291634822530807842046380983769737849591496845955386139097568755664094171139447810714546848499355962526630118842466783372092124804490826139841150643500421594694955625365209994793228686521990108611607830176831361919080524815808547660617130894783699886144447970467153959893830092799442150805093437223672002167231676418255446131878734493918750713518134397592773220372077101425280394552687840202672784648338803918128220435806895660871206598418396936464365867986127669362548232279066276006847114081261355541382276207266427334555674187061946097704165761635777285436520726505236445394075759129595075800832399032550868252128573757376961751307634808998150483941931388143793603928314078252218062407044404003960334626529589465950849003981443182237785993665253969209637555658079868708982996284410885673820056316318899007547373081116332138911891884426281414429095488001808310291531533214686691145486444288198359115181812678759860813071062651136832043755010453441753940742969359892889978583095179946791982260976390752088033163901044963655904473754622726102501256879908280010152138445162206344234223079566509134543636935913932376998082303488425240124427031907682459674853981081912902291132280111557348545700605959529239500343058395814129895904738382701901004592043147224851162160976991726893306259756181773022645191776697269268153322584843810172292534038820594917382691978291324629679076149368498720983180746984300461965881360029429943448769840637469106760955507540374700879699805520229884772791377280239257706097844038739586930605637396491039643733723754253297227722189018638909191665476294739047220500871765635691910065706877344104370902494941468522690583895248881464764137415222206033248450815067209428281127840392878465811470325442670271232537822020265774946986084900057995082073286090442855473391233253580139582933424547193785685653343754053231860266634274968635716539511146245435381865352375256459721454731821956106845994902084773079739343108896511608065169980152796055355953104689707752994720379911966709402402283907117895629377731886235733470036116203740601999694723865751880069069624710764910705267073931007907506978832009599629329231631334948614423473637582481185534671292878010896263808188103676880874252292997235938395359889256326898604333679363941267962370383956709712540387911861323995709810962505155051618268207043914619005446087696262404254798410032628468349282424401997576024298079835298522882119946960147165576284571364828608369943109116437036280195412278019083016719179967633174387300381646234593724818750491796753648642049832259725208814528636351605850662320887064771616596995604975766438310509226997345690016004412167721952297036727884342812129092743109679762830251908662233280507434094835098078603055543827368780554455305558413660696950257033396578872483944738831201747835098059501024025040961343357970803895575875543229908499144399242474319631528366802543782764688258912620640851938270778895669763407460767535921413970308109963338677921679504013344653238689443808592237975598161597271500940534318451639130858471670989552198553716997165192938573112721585834094651801859185516577233082720234756190526843935722656697054877376582327484754886609486929845336569157481614832640731988552334951269942186844249012444899060884219620682105918405347283872278237291377476544701697438678135774265232557260632408967737497846731756115238964213679761384646943776669008122918767816961864250569914936721191450417855281122820985352612861712866043154394389513604724870971893427225603759281276540015732640251078459425939059638347211409653407240621055059948532000067673757426179069812867337299528198628684376812683340138526145937968272904027301769669435081200848732143983265323556825718137985528020654716705542667089358478828877025087193947587393990945684910037389294731825997522300239615646027583743070875889765470434868911054110768903990640840851172705814364613554749280672765213483883491275004079173789126793685059012270435027669051396528528394523982161714401883950717582701380421032226664971737027469429336343344157159653194751500914025760442844446724215807628849221077923330411994048245086870590518680512585199376175211453378585171970603480277769823523086879274344205270782206098812294435990849882083674522549145064223552754266231969663922614619725235932921480598201573596147548401172423299212884137464128213419719758015948486823214148134463684244511639367926497423155136185487658210949694261566588804243595040722955221768038538761182369820770329086506273077078003885310239442780510295061387059543803486537395916430869027232902636307281039635469456469391300218280440845807909740856785261569986068812191835598567147718901608879895965611285791494415430429434939838829577157595878011943563915511039926117319944492178262448574731627819239675082725859387848756459274434226120517811569945974073209665946107166635082288028888949187338648160842776492025673322623201970143997156390545175289202138295718478719896614948411783146535848826074126542231817204667008645079421293521502101040019728874253210528695338501942389145101251787147090637087928849061860252032444731052307854258251301573001341488826890682057405915049349492439335053613065084673235150969712109755901505074435577611191027097902637856069733135026764248671256546463699498942533805870961561642832119388419942588297006860131849689220584613154266363780860001509907815122046863883046166627453532013391501223549158233440528670956187203087667518562801701576014350266619695880907260133830777269840220468505355361971090575175083482549716040209990541788722803642807193372432774358186437789938861452532926997134605303540254026831299833987349109997112740946211010074749216140964668305209874061224809984173839999123340126377835412760306040380101018200671272462663300031295038506232933707694397238515884680778250421344507186099983078662826283348369591771401735053922547821968779574180770472092687258228647354877085353601966335358768263940991588931712384056624861612438425959988283007993227964453795495514471500714653389537402836217382343141042679090167992430575827381162311557142298331047790758584465854617268131959954116656234646045983998426154982634477139295132513499885545662653188537357585550358458526827987462965628918908966523025728609489277202626470904078482000755171897739172022633750202860147154972805138548012041343757844641340463455167260569509680308658209336192358347894230950249541955256484259526093912284235584240553276779248497349576911515328816781225835152288187191543445420040699170892003895882426965112589966245121479466296771766833848177698990552201765401925781578033371674152849913617836270126670606380439645696576108967457784592524503033130586371278009846525113939137671576897203112876713867361370334656135308645782270261072214145715681182890849311293015035570640590465985685449561951119316757440722687429030909284084270582971729442770597620377193260867760104660247792742050419689458886543455718691573831829047549414499850520784787487985439283114755226100759823845796077610913134449637618437085957030200720369040923498267914511722300004914033432705823218252115677379867216717556446778350654604434870692804703247939724935241772527863199779842201627843120414887033002603573531814908622235278522054831455668090644201485237050794209781352860472840127463786275342251212473471945437797769275263450017456274585720484183347375807643349749246353837491220650627209681032520180289785373686356235968170221626685600968037572519644763465775515315406300306379208639508458795801944008923846025283862873955298523464959569116290209683602761412123619020002405428924092082144736104313388176991669841640764613014763445554420002678309479312004933647036324436793345643394572973764433258126752808563007313822528184713085607082702512522129475510789133887793674105139464402754027502232624739127514033415177313587249594167796621117973439589097249781992514674117233206662690443519400587578445239134619795879088136549670027200068263962072810326704788391089718373856561308650463667558405633444304660018740379513453559088493837316440173578283396223828986375710158692969576267947418767999449046877403689888286629228070261983842482029387890594308611407161821524928670647596088420585983129349272863783600822853257880420953361138979839031262834108038215289635227298553889114496434781411698221055462873643585030403968040718859919143972589993325997382152479358923932726294730752317555775919952427474680575852705156376902604411930733669601441285109506923321125593316357148003623976309184473673792005328837434295504440412805467507758885717362357491747761262926575451251340827193450743440935136323179337918982356448292584561197410283982340386549904100510552756089503927770175943564103154064218236341784542613521224450114692027022494754348825565697413345616121121758618821898710632062892538938450071674997167688387439273813436063202801449274721459362110034741460672770599684644834426086805446623909874183754924732340829977386112355104829387646635821923114439352616500411386043539961487197013163825811808218897290558191858118427019574411434906966621781462903977241884373075607183424756895910185718150804875982730185946209974943926501578476569173020382499165267947457250664615924031617864806694060160923547792379183472036565227632491568389253453202212599066189106421600345368408603040184304817228929695074693931069063309321772280612282621645877156801933893642543603037736129767535428206570117866822516396579072019435848843749888779289085405468680327831925830018658633639739934922434175242248153696152681607968028338584496244730636465178876212171483758631876310434178463025175521432315860021681205420134744539202326242507713010213749553031354311999497732008583480020278790552207735762469657194683436020528761885662235891127425597451750905055049455624660951921822333390260621779164586534241301556927612907942534651235668507360698608627841969978266751693303283060309414247075495155973875916215225368264072427331624039262518848405310695660867891714861977757715397862653599530312755673550873120000777486546066481612014568099206003300744457612133785522534033865308381844048016515095953269752399143261818563981264080813697797544791438671090106684374617410769578761956098860261926964280122151061180578888369482987443419045853135436575692933600901277835359527840739699834229454512231084459865167334685083379002985293728580375201345609627202474796327316691356743357273278934873598192945720743871317486294050954008739569810154306389601372103173968714656973482527558064237175724778203114295071402926941287448717958337608898907006093480176533560573265667209959783914164179695050973740986107278144623281949925908313719187242567858482509589899379443260473140437181757536072586841578251313574428255121204977097036794198657713050009459592803505985860869057293925587246465548489907239793902955718261429010098860414022713230639471797837393173969721387614854524926857730737659847029238462953968385861756535232194218933302378429738921887569524112867498627398616914995620232463352251361617844120441557919874598863961494781794764444878012737791115283678739656896727565569926799886020301533255878474787278200936310639091395462486276051024762638813205325975349361442177566058055825161150128331461160000187428210194367473450937958356094490836823223806602059095026640610019419890024037226697070412478002663002609019711880892270792874099502530908760195936374846598230715106374529977239267355344701068265711473282004790821441827112661950195368574608590895228809199668607204228714037185734020061350054286251501469212640612607906903603883536688430332795873435109334921904099357508679268802760407071423702142693604874722743670588179789206838144825639230368122182962560490102255807217001427861126570516729244915115097634146720090098032304223365241924574916347632704665692897469268244524768305986391839022356876737563661245356678053626871656902400970363479268061011185985792808336895212617915796812648277096320625914841836237992466664146113979891001285122056789883525366363757348652228955128459047954209645027515866207197921478682255225560602535088697952614342288802440684601671483198636521505672058851310180184368805181456785535505345674761492944196840743647853333168737816174049112828075007453781249587168259396253543233686342392485280377187236025105331102313414521921462255583972372617217607686584024454807319629562432361777748131684487652276996457601058353353119888441920446865229666754407783330738532747686321141449314130797791878384110788647963716775577789668036452871278363731492854779432656738725592608291407386448688288034635839063723274580525941254483129152353031754691048333042584230823079073236947085173307683264581247036695891233126125894514219632088092227274893303456530393762938714217330059437835895656219951766581132826466602853528268901305378416303949442214627818775127192508764779803608921225154282110987519091599942243482010412315470074281510043459019195762072340218883670856704608181382950941731886118148734811639332816917629991860729044618854540296723303778759592152347467994758606849419985878791404735662809287729409151675279384309396638857713288636151334891546971230760095898368912089890452611996615117625056630692625812588335587986229121691914753678167547171919798001910398696615917874295465490152113665871147919949126598982358546440033303174860770311667580222965631528888871261333717596721884354452152416721039127683837866209770310580365071406816359176796408675406865287001431481064126244714926301943867563984642084214600606602042759914512474784875838557247038597175540220219239598258916985357389791453048879870272003648352463300794088200900150523041186575432507492237272207423048387768701873190485853617374553288507741451459198072723129605227508785903951776889793202498780201117933073632628837296045695619606804888929181467039489097567373992764701349628768012734715774989398574888230299862008109999139682417355109357341238415209030861446169314864372962663649409415700219530106109248553263180481272884707998616116598166015365951163910005374392312695234577408000210003374442679736988641104189609297242407185468712783955462101558118353146046916658892258230860680508202921056646962920655384454056503707659170270784405780556737638346166649646402188082486174771291241418694623413290218500994670921698114595749336124080849691774588305207985543170842899834614802687190943793123871108772519023512759366901225416977608720196343897727398813930322542485667724328629724994786238139512619104557115016680345822073871411133344687697286801828958732364651144783089793945470195542948213902784741803581875263805110163719537729284349233005573917037633691822202075559389959343428531051650374292731326012113241753027194002651714401238599300863956188016181335943496691424167753663524771491309690137080343299932712959585123257973371649716511451177179859284782030812778127149277410146979981570297881833784079517400938104001830152785567879010785528961184459666131384214639505600173070118759494407287866057113702734833684909415830792713444652156991144111432123990116416131623125811756227207565713965316788703940420734681638598429121654958096515605527334510543865641670906721664947560622574851526369970189017261072708585418973334980199826044981712772522377547966339170556671536484177546540007046070282098418115616193891974829219757568939515686595104904385517299414721797573583992711208305884144276845321862551008570200734250658413545841126252719447801258667193964105105175910557569589553420131557961972765098284872575996345348925894797937480806101688902702910881485723519274209054138751289440296954776034420279219481510339173034077955292458323856016154805234199995222476569995969126970553440193247685773314418186722920559681164817333481056941856088989155615258225386339673884403865986018871625172541303797761745810539309831049461969652171739726830923475044705847543860495303648173166960461128254996707829109270153188955864208353409517520987346707709583379583270258410257201051956877236818850158611081343272127708128735702200770397450757461034924528426994806302723640731643045371389064015699705978712160876422435655559836453648069318661047701927322777485144241879534291540528604673317646558325876034372983278837888456129808696768614193225154184405979778210136465533746598565624793487925338396923269839888808586423361099410846165132915319496021927837979026820006109794272747166484201262774878473202397672402386909843606985904800939898328882087261971062157162926134311695071263111446660142929215675749905051437495171898576576796068969880504062218219104381227344973796474731780916195590309862249823588532451608822581322234599771676394739453538992090164914144048335766225562200023172613571864426449595158823687191828779523661423822663951976336184572492783079955984712397693159450572601849258108382685699923276170647120036133869022217613436842184309255864073385946900712036487610949454041963535501132676885128148066122972421315462280636365326732963461529028479246298385327394732436942220453379431333463346465906625906643151835718857102996170496648729808223026480662533334562259107619752110667087218578263036997614489828791284107757347110295916555485874674891750858459260155684818351946252492589640946837450584896175294162426777347655032135971163576455696543959516050540590970913624566666439300675015480660449048194570890402137057580150223117707702748087492744456473384055526084798066024486262911586572706008766164547484540875825460365123902126376736781498794143128332231560525898908200185612800550171083498421309873106236486232045544155475379882374846953539169138097138312053588377409802479829073201104797866481009742218353566446677731744778742653998734111209988667704486221620641832179477320649204971686533664880253361432528936314586338172003998202800494791700168956733255063212928516452340600237172211614668435325849778491786171695841844637066684995673953093871544462403308153301882870012401046208110106683409547997734454735191308001887095867890873201274598865072674660772680655961824409488241329593378466275319447338563416730668477245271293843139692885535057389918968318804413246345626279615635684910037554870337157736930882111448668964673527115327643937644290144420291953605378128836260844773480359310839523344850249908595835176382227180147653514180357491521111852887312363513632115869560512883760386980429927964600263902639621165193020946565995202597755590174154913902167769124068456795253427817783452728241644659823204249959979014482169679885865077352009566274497942427672073911430907374178312285980402006266342475712205072799964229988907141248162876936092544576598985816670347182280304410737630806650268751470969032157974229416333456514117954243197731935882426041279503021028339347451389369578529743719998139707162606219342701601639973860548199861254907059805456577885313171125162539333186796083207321338544300127467891064718470745782427894971661671712261048055334638918284432962082292566682895347034268238550239762263514301441464722696992205449906471924542393584051108040443151801293154231106212108474232746355352430386355957123042951499541858619274318591681439173204013289435200580873075429776293393349482551402250579292289859267546941577195259933449549215727298979080643312179845633159921084975748688183987027217567585617012154774020728512159431466926606720201532514182836581499091061492061375962199957626011771328040687797320910325618572970882975445238879227550119683969676967302637765897447411938893817343821463327894318916349745824338942366030929874835715043294913729770871056853326032778692865299459289225681973028913375093118403205615631608615533159036371663194151599245747641904772137738068193457864103639459349690771277452009222525492265374529591191038704078439287895615912124322251497981718976230030222496460842553721143413327442048305979612021161997174392205526674494516025922304739152283180628302221213203505599532956056455535573685006184751976571529609985815077030515269150788332123082735103759832478070135620143358520348213724149526178714294947341617750674284611206427316686329468729023576325270965721787975965230426041938780507591058298685489309252428733627996313113056287294154187600124772457279144983830901934774658767838138686010344999777049848781926118944255133383539475150505124715209041343185182142111020760165496883946907297840451556718077615418972637069387551913860302613859275737157757575276993441100563588179844954867185373717611008358166433616039452156266362139183533920566700023195580920909434400680708212853089558240334995024526863715929306911854148159815632229719710338047327277317181409000993127277425747290060178694813828243783281008691880339499867017100913153532839622151286045904036317723678841132319942066193740681251343928537169684162115474305577244134252527968859291600743653288266475894847121384646796662509439560288164195026007533787699234692068481636408585144361184540123415811074845146585281369842598108462505060802926070124477540781788682281970382669165718850814842625868879826794826514712466999282358002929303835842697595058796673723987081235817639840592912752386050381186683927035954182339487253184725013292104179095564596776656743009693515481486193079847781098048627275192311238259866276961983944841720872799495606354199963087108420499396584700188739078844831065633648798612679363593251864535051052882175556123198143916840255176590743809550624892251655740668964089876146680516383055548839872051237764358579678256576778148331341896422225862658381128903664492372884786266605808548893257060616863334345996874196974642211229314260501603368715005156959378255904056355939021945099355418955384776289682110117887052344383218153490792634682741282396721789335255539797674959425955146165003181512948128172073381507843365492764423871368000699508480090616781611753906780608659293760743367674695036774498463012155225870995197856732498470215408314285831397964892844981177531495007543784441002411703172201078307943348976062502152817104126387161134406459399713464038986962202296877509053047116231821633584569908524980364427077212722553765999832382004755043933122057391347891720949359170040330724777472461071222538279876420265800816038572088915599535334994081883305359217799297838925580011909692155571543350601057390508925939605023665700997830670525158826314139606192049334632520477947309024855547268687336169286266673194642697196198168917360863952235600892083913665999151075231419051298637730951220546904224823774315697615642614742973382318725589818960568846108663538362525107980163859940835003981953850117836756960584863518993545934481322619869651237862305407297930332418466542662712176090347756971914395123922830155580512522895498101635648008069261626260482077920672838821627778610158626600311838334185440572364945031257621625536691007935675716041507486862032352868287163284498181531268009346765008492217803422124203075595182404462245582826567323131924093501334491686904530256148871311107803374041359550479961997906926230082093124103822310230518401980344683290714502544863005483072185604479735294170719218520897801906974658938793040707441850952420441371045823143499260152147506412790932573687818336860954730154909771613707326212514473348094191014704525993792439593349045453203188128851341888059247774903904533872072839872658534711967940020558249242359210352621744873173056770070068959946745731265658122356838187312939613713140632442784084508456978645339927424633562840767198252343198011511906117185454910053401566339872804751227862413341054516847682084480162053907713431763870885913269914509077318285303352461576156016972918896242335002623713694830209116142401370418134674212725348720062810957236297988318382550026065808051324403450290472050505133983041033830408033086125429730203986206165356635409482095125543688985358607429629513834127402753866682466528188380600706251460801880045469431334642515634419286903045989217885250487143490591161707044091383460697859817486344722529540151449308061622784117015058590148666878722561810919897289630892468295268898249661091189755884968202764549362504569876947055949223659140682168835074123286581669513386050064069467251071132432619669412867121235633168203283022202703074819812748507351652380059467271443509424264304768431099304835931302343027631315818507951702549964646126480456198735094516358641186773433671196732913629372736608385709311477002365724518822618994017590861859662223088043686850458203476094897253599527650583021578581769046311865444511777908316794824892549681817766532909588639360373223886518047141017745563318635934624747663255265514594798022186942109760526741739512797899260849759861939328710729996022631826555022943742917576220780093500125918878678328295569132296553252418191744580991414159311552860552371668502335725375825837190872370318288322859772036283019281743925790321336812993516622129541943782590372916297419302484717234693184266209995839004807456667151538550287136556793495706328619148542872061958878116171922294357297238104549835262826423023197895620273215852565773697737669391562423682876271940592636645855812215898878261404595470043218782728456910829704766539718777342959045660768108054911135788746542442599379414853887741153993526448066910741400031132088355863427482949941047136796689173495011160128490125185346021458883068611846815494377884487646928655058976447214068896252978753818679852795335985878555768175144723503516181039164421829321566600106150035602507517459251147867384718058448235349631220705200932562077473104975062827423607201064291087071119085404067436420052079997748498308440870738543673270332219934602378514573930750714802070479065330226664124900552536138230899719718379595523361618455753061287227312141004034322417774425965149638330356693585708966033689669322844050134122435415487943251311189854391327314290156924299527796965747974855684273360443128245391673789176020582815893047837634584838193775190328859112003691251436283266239204406993660697934366823809511643044678252096625856353132652056484825682072387339746373906835367037388202413006016434470262892609119744561770539541709045349645720596393773884809148662484681598143884732188331315828434724801675111585455726733341335198591969263324107053710812315157201163035467799489777611729142491769811757632826767266056344599854044950370108919132724684992791099911303690085503398675169007199214330688696258381462913826900919767478987233689586836645243214259434794512122422777307209277563468884614793489914067847564506208051052373344164667925405289378273676957018699280540237133716459477693639558772989604556094516725455843536295936969471307419341433918271114142033715280845144672524653594692745103642252899561035185832041040495487432966960005642232666471253467934150286296683741199693465978379794175823417278789856937561751293463762274812313541413348761468874944897939031670136338830638317529473872297275209862579721415433142806275169936645943863857421571690831816019874710716641164956644536074082208350828996389367869395124051211674733073300180724737860304679803672472609509053734142206984550431420928120693593504468048227998633886510234304756555158315112240023885888470183026977211231635365993044844550305884105540545270363294978232742927330196261670463474590175386237726691478776141749467862164535829594184432981063854999911646266342827523315766716400669475661847998089138697255498104033233667468448960264676629626963186312858181313507208630485917131452028443639344159297265000635638542902824081690180107914210942000408290889945263869747727502650072355031407186300706628886852306323348699236925020801032079577117237712893846723016036402281764976796157944805698863403421067931102944846221466140260447208392593496851998433620937594938985845233499848246667005906617339740265180752091913496499141622167051027990085933704883362249211437516993392617919292928720016295160992733970366659491068059197669308746734067133717764799582823316144822985185734511589484556507045327608414939550947737459325707578301323981918159179583060689683181859621671156995027430751061923951168928442430340121659446751472644021658055375498989068749344496612102171099577697629698995451449019258380098261596408186246061030950926526159199548542058475040209306124166191025981917476024867005313420886347998210660528925223760525186033855513887345982561002122236961323889426099319342827941469880785002712601694991627284854414655799885193848268262768675468708780959110141353068934753799367158436019880882762364253518298240160161089895661000864021323486544316469653967429840503192246616342037182785036205115919921562826555340395319997551327008911597441412919656806655472752807254582001252070372204882712951846905720031650867402241212272753528185623288675848526495109839833491785533510430796792433015472563262899832357517267658000671097664385094983228376493898501107347214008501101063318939279237952222943221611539250319775969747349751148285600731360023432179621125214093021569152354650806224833621361793201769869546303993870799752793185472217074713473510223217077276370334841768344596674065003747120072466211114472501592665183284190565297373122531838512880443809136569400977109309104775334431081282806298094895054175199882659323619650381220448002816175781741251649217364955447938193545632016602746906744051605981164719982379305532706361335460308169735666630755166474764087743536283791255369412940840829115735374807068006582710544862580617975803865671946193939676660280649254792644012459411120168225400443871380232175290339094643652462623772191532995190510705100418016701688162030001103562646176241885588338641110035886195808926341509130792301713394752463896095216840170779779819485998600608595008635666737941610529328917566911959107745285821313428730601044596007651294188769063452201750585033574711138027142642896240269994069287058032375213846603745120545984283367798161985288183072609527337965433216751195513366170893641867773647913769963615736376781903701572767197530067372626064997353159661841112339614337616131256618138616647789596772512584978705472329520526319646784142980443901591231625435819566235383623240546234537627959668495860117719869722651801138188062060759486613761580194411526256202236325906378303691317967331726980588936035573075020387734411312421870166685338432904024318825285393562692361066725295048168343169974614098764490339487944334909277479458796362330135095634774727815966498807527727824682891706706919918966677166059404900054775147947913852661307096910906410372165944113987957674654309580436083137491052366107636270615464969550677395299464015766026188254505335509853079951711107105166673332074027319201591054420756652679081479765274650617242737172153471522968702924456834899558112593290165713709784133017757680562218077537495764384095669053327132009739007652720788997858100465741934905623168996618102970938056034250626813587576321192372633099738654234093816673285524441931922755556502938524441382215666419544334139110419363537319467860639234182083166248825378139652416864157110968331577128442121983494666068307585906071905926576712882201029593925058851158448505634380930213476627338825922244407724722089848746709955159525302226080799803457806195038974864869242049499611497740415302321126824121071705462707918840655647653436954609709922273644535366655648630461896197294819252397712175439891761946424329365238730509278154391419118969371901875173073519955384791038321569551763750421194778249533649996375331658977619855040627479129946209053158226159463213114548231468514747051778707955483906889590436427261085366426437073729781606074603975668864515627146847852665590676566722499058786742019298602280513824671697169893854219539650855579666968360303962386103603072714012087618478652657343652130851473594422607769825973538280269905972972371052955245359016145804051471842536951455826806874776691360108427251525986351308105707185257488082451836172170884826468917016324386056632067465302646133907695823615853694913538811042192975836648090293917562429876698591492964204013854384661386423073558709891055579808648369068826928718323816569676570926116927496371622979280768797117910993844983500081301168756899995675178961103887859446035777511843929001793366129674392631520996733079563773409549244803927264483456941945975742666716049802689413262302186140042765977006929912659860075914379859429453834642281382990830097067715455353222213058529029984486112070097793442372650570599895600855904462733513076293679677660022148416156107621057528329608979439641049604663364974104186247452812720596960169964612743332085782428298955235451640151971790730655439126009634782549410132836171543096460531383394877376401631637441994266748795598113309127916174521015124892605742157533361399061267756220695689351599048560180058888139457138414987032570488245536352800250730707496096552230917128687518213740859827705454430271494985065477710075563543970686448274994701260630245987622507054843261992355507045763595334790908195943475695279965620826013579850706466915561496596438076907679739568312033325957744134488658621670315326202779258708500635258373243684642906886053186154526264148853346272824015740543591868498528112090359683667545367200206362421160970847908755724137916685760593328945648799594803018301076166282500189209967618463711020337021295625182223244846633843444798842467031572562434286631969798587222918215396589134469351780097562225490252531069749630030862420777552578206818128549099460062348321736083926195896666237489429139258717032655702851769757927489493880844379281557157810765768622598428299850619236804936862952925068608585354908775540356907832673426944808034529294246366664570776038002748334027556400645054125132205437483872456000841394087665813133611585026708081778501746621426348668650738128678904225931396636407997851946533664469044339002362110472023774762246505856661819621759022135140796751959126414867697569375285659704175507965933668174169745143124601097346291813254021485854521527320256891873058148376723431180508023015618916164221660164046125409075193570689932313768738140688836992501443839167742859071625473158410245795543018019127981670277860206991343595612639354461749948283681767380278304593367281054449476602301266187390527525896364056635846065660846821785837489849936058058197035111810496549375403118950679393137779845951179192647649299758591037290502524296168264790517451961385439293916451491125782839662857960731148759303851839776641238865039196515971274877835971015935787231842205050729278720272550774829347791958267316097312769019247270147513675361565954215876804898060486622946959065990944266056619658013841327331370141182366389727456076578773505623094983752463869140317065259788225091678971213679729208311600822348441236550500351854003326079034824429935917069683563780914395681882850132350599653213088161205346045243114821142162937760895394693999936448843684529889467652625806603251720075072618206785506256818007385609245983624319154567242729486708888534124676935335066342308092622603916865261190293454310906353630080852977249137063713411180784662500038645541432849348957616686636907392235885164287766324355473026300283796405743675735115483732642792701144111527898060823989680994668199193882277259224760212286627859332352015820695373629143002308961113108688730055694313337276356933312958535757587991687834443421315507701188066094448843804649582074260922037596180410149700157641084599845150214284118997467136396895295869121684789102222267982687997515480502578152860839019724421812654948223138775953980774537155243634111306224190335020915724974596681431342461303630570771789807453009916508299873565476726200025682769113103472090553251368644318490849312579783298047955621730990436854609856115685658696997718791499416580049995829499473841129063698327026513576907316364965816359091435343940725329952762420564688100017800438712903982038702674828844848632786740899298645523713120058336866225712501763069455310755082811760016309097906919330592042179828730137429469355917564417139352067588758185025767702383693058516846880213105314655674176198674112769228924893619617618510899465092145705763886787630233676635755855419207241336535860779264443346889979820195963536865108278980351017026153928306960480644373597868233568174928111672897668229915494355248427372998047004544614020702075109064556534554480758977689632851723267685988280131431422238858612801918863548184405069054068384433623913463095172277543464926467653956803036390521272867118503897234034115067784687154227968077750236047111292260936352165391969370076575251542022540434924128874731490972002493192687895530301155593787746043669769625069436379404814403091078703058890104537338393491729679434314610868618567023272626802527965350251491314177436716930907085631172982991893030160691695424761289039474826233198462022479639454266191400931868391349459703268494338116126022279574010549962881734101522129687002768837905615527758967582354972030656231753250680941735378696914701343408515398967736084398520637181300316534447435082993757023237360521859161217937708133428922829789695560271131728366660665093873147253680991208064478557202580895199220731575076641767165289969170043228300601171426595232032031939794243890050379755635565093615285641253758618434660622621870801999473729565252988173698034120557325608236838713634404582606378486558799841702214388855288109860169605164766668632545298380502209231984558346945810461594213953874990996146710841510427543564331321348565282855249737993181940901556875363989395480015846350320317647494937350757876069337435175963421782336479630830516506082647206764250613879178408237687923426103711504178028517146180612737686167359764449626197009862844838207864647483858400135272566952341094522330887725276141682390204428865956327293962031906853598009565742936589859375063334726061986635492266946370511010030934644631745221504442478985915025503879009831513056217243986413763634303932447288585880039630331801225336267599198245011637247299461386650519133145699961630812720121655059805203605777608171123602674757981027218245443762362705032390551095545506808022112364538353685450495689148299416022274166832540023453416734809245680785322501787285903664571044665071046870302284388462794189603976385788740906743116207692169519524744079305227970068822627800830050447934623913860660497031566945548985725631416636184456009506224112414708256286782014017895191233863651720752544553008756084286711183910778979864868858627487744645615315804924408086648014291777944718272205211834089773038359129073288520363864644867199944039124763479117629220299736180337315528808507366261010318753378711103823954249928287645695547215473749176831536619179669894637010374273297289077877303274706491144568132622552852471087153305696244753895920331060904825086778385779857777879564103152638087137885871686068107381093161982815350526512803525402998286558700736809928544357398258287800874782893911761331819980119874324122156100721707254208681000307030871479542252662040744059151866936504776958444801311390110519719031262957210733026114002270559405231131912789311573494749771595406921012755297480135999436090916104532906208552251431983823086573443418928274088507258215097832213813110391044757938192576419136994186440586066924226375096514558730978158298239078667198555987958997737640766292451639721899026115625806488641442569624213788412385045672978103235150824988471237077424590032631717530651105539607602517711918019465251124592037628842228040623868460648252535492880168901928209848972837531559558086420793292527284022131815283128616705259846648604877823939133872942973304197310084570956926675563104377013922168276027993880738501136228107342448795168882134116182066619184260565428086790354997216776892818278348224516148195776918605175409285831872994630925864711321606186704335977720677515818904596026918999333002505741082500551165589075243828325824203939707532644254260451413565979899113145953183932704785749725240395237908281468138721679997903003484005239360549000589024972823335113875787571378513187779310171046660587156409461605834171840945062635900038688502968253555935527626281676239156408486446677419416371329592572527730197237845795597127221515940722325335286011342946401076956276564613852441129040566315799502008585246059183156793230204534897317807819127244428398245437550617906579764621930178353549616299520745864701255625675075432409324983349271345082637021008866052837150707969216192295949899187480431615495886219361289514072181065204381577559052872585484728578362929452305268063594056113653069762409417055682329389483928422372962239366174190816662159293266553676529238794337287592903263466111135293263581586261492295639306538767923883230083706493697603216297616134388924567584233425515211283059846009276745819989606758900445418891024939211192650476428234223875678594251480725304641844154589343351032731008371195586552384492639366205466350838379723626883626380667778562348095460858227163434541883624581518099679795664263538702974952352127506350257451793836195160796690563676336158532675386442497985068831608334016422459048676143683329087592659318242375434519498302852161436792031255914074621084903477559022378538763483718434718716637295535995442856636136663452911036053984949124329031949932310672983606380379922663207735029024485221153120412526636974334519729088566924586708898232124946697880564828352971469402496776509794083814854474469667993349558476422363405081128968696610458361610955373077225270846030843489286381500264105447528120623714378654074516230942121012968916266946262168716636742902636508228319752389068736185258524602949977649814371499416722424764726384157320530316770658404794928798008701999012256560775533073272738726151554312413225752175985837670963526059349822248478533425526428101937063262291066201691165907556867086445197576117050831044365927803648344748690926532613650706127497775737857967712870354959050008429573995774283891280397370323138407068995126005508003927871355787880363235892809145474050763556490393594146556621910617017604873623782474650833163238261523252425276029144428501050108367051259809090742842303396593725189609033121766869542034436493203009332199356870729452067391702702652579482205898479743493518354712181004986300350967829743865307005462131552428089236241614071571273326126920251899319737066848333175302999462464335156317775842767370707863115831921885248608441680149580467278463852856683014809294499818618649201827958938150593330792233620659751267297533494013473960438722455904812044114168303227770101264312026425164608587122635153784189099394193401327447081120303466568211063713474187462380697834535128234736799367425072111809285158896625773338960185571231459785571157556800053414728176663726436472785156888438755309168088851725537496033738725909524962293494432154377405203703718430762572482095925118072587624784541853889885302908737994130591326612245314059328247522532897990663646061755262024370702847884301519185446998519970710031802924502405673607144668997227726461318309644717519554457345912685654977916745935946002377051344552152243614347619159522389171503110595796384418401514432533256245066836718495917028246052579929651204283606449271944159698735026749427975327190211046833009211883403384995971346195150444884750331051006663631256850567839445217672393136504410284705976743188570913082705437637599399811264296163670674255290774555334922380473316888585161748454428687955764876207480772834222169593100788147358148309346362176704456859910498940122813950157250774533475933005160678217100841751681229399506657637170217563201215942309773847236743422716949512958922673278207918453227177994005096805233771929614182808824668523543976687095333221517374667385547566302094638788136284640299186424790195255541228046615191850974039592407299214613739904242252210310012880028696573128281201149948109546396328027136309815182169355005298585177794050314640460620264640829390207594099773249345880803377869939505142587399153097221796633240786649884148147306341139143631990612837272961749131827867577679400537924574047131352059675529159766700169709588087187065800061122055717495755817735811332877752954267408383052419059347446572865725689056877812527336522377300685207760765478163146354185932148683626094693579256050605335741689192468342833497216229085683029545427462138044952358643564549614025488817151320597622797028760809371354802608694596838036361517342108322817229276815163317472754037772396209791287759787467826962076075095367918030563897908795929448779303629462983887052866018046778945103943323190731097438829463796623671383084648124474141267966293155762261688257037120501489316738171431020352192051668700360846928844366386220793154723259169919226765871461620669958877988583535444573358905078619477106175639683555472003500140104137403656853636795698834974819544326810258808783785485487236033527151053475044706835331068520225268221904214406035115138438956520166460994113248960859294460160398886371585585761212738508596968807548506440644861157845399370341722091937837648850660188499294965188345822720732469754074794154961979512719680889205090774467057545321461079617263226711490988526961836057220261802878470275639158304082633654381855007498212278218492807769234385136797114519845412735073464704805758374814612363588464752084323039918654527388621772583970149479622230144063029287408795603581920483058174105492097742797659801193945373331242063098504681618458221557252372213405659478280773574941373602017835311599643077699699446835465752976157805850358362561918704785423761829672770668308312987636457109662814750299772094167845949858379869756676487398490158671595979482570869212666509572449592190906645699297837312796040141128945211691596282639015286910574290938015661232217490852790480886231650311087601751381443504155901260360362696295106099069717688835608771023391652847903178787382145374216249883312958286748139446851129180459708443630607061559433770265430086239626702582277324097602156213207798646355569697606191801290295444069209140140576996882522310711595599885010333971950204342306905707016293383463653568192330469940482821506208750005990619848756573396273624286791639441450633019851456566941108648114794176753979716677008982093879701319642990265533729059270924827624605264949782013538768216940631901857867308517951946309790050669621478854289118833925804333890693096466838866907450926694474594464727036271366272633972711428088463680799117562319468971408653432053418871840099476010820062480930433423200288124211831396667858906470871741203727590626710797377102711930924111134784280364285470037790241328936569075828422295451488014577482740838795147181276520989763199767841074962571333228119290241724075057451052636796515295869853438515091785357212850619916043125987245247488481964899598671280280703111840116057329040089918528677516640456074359474060238048986680792506403979263466861849597422782214806248986421315464960382710620362747283393697538879484208513767528173880500726632594806209846132558345173622151828407875736055744128841021689990281853037785957244146186367451136233962568165890009810633501217913438398141960768596979093231444011461176779145270827536037753837820053816870675823572838019332434626106220362801360609669503018022904401604800384184808722497204342909599159965179830194117334806542034348028245600235777424633983939290226052398297099680757379369955414846612430778748144651670668106044878989217956648901899485404590156356202582920544863965198551009521422885665597423315555352271619945382566090827104302355276101300874305413054717367072107557578182878252448421670425457488406130125967687857583784303426402867023768669456089244938072044441984481483682993303310837397489141972411018737436485557201518028533564251709834172970310034262982316544880224285104384538829786762787036720678281831168658755076488752848723752446242680817150367315411976167490035292026199965375507144313236900803458893940426680872127982398220178194577021708291770214165396082318373492327286914785083807352274018117658396381897370279742358996506085055945091673421254699108558111949130995116961027169364503141251375546089955015382481164222061351242014631716511297538115398870280145048831098176414989378656872347281480649084954893709705829007778340922521242257490133687645643275917646230243802489787076879345144749993916584164296129978083818922093376403677562100266294822503745813772025900738507397867011471552975299308165921267836147278233979034313535904453231127998142296171407875337905280033072049457088277400464465650714350708418022770793624247932684095942230419384106760014094649380591947898533585302077149949214395817659603744350545864564514283121155664689263598687683710260916753752995267922925359240072659403800584407510386239741684462798751352441828634788758529631418400901738936450908366524455313447013255562849714130691968835892415869087596395437161397257448958553037199018089226455866898757218635989401056487549401849246112769858858614419335986703145648040231381381655533928110651653683876704344677570502023985938909005478307492902210099068039540072387686718120902974507529597665514881792987028576310135956786278901445175590815850232393954222465601729091402352860390346140835061879602465091426154833611937895965624911711218387720747679892395205199733689525515057575338315871279270916594695354102132627442503192458457437468810751896662919190564839439816701425822381284522781015199432545358728895159267283778402523284487291095002223582273003875278976837193219769489997338947899077298317481516553921910552805842947667263502929058736440967007288027662203974649284488856471253042008175892075695188059489029168451669309089916344920699577422331119795852962179705276292418070449059582923971631883537971479872689203495021389030101409078293249384227703323296704425544690248534236840019803733124658804799910666170731561710395934126810115727850689268979804909726436549514522753598837380246447276021438584360584029340104023134389070602123161656902672227748973775989604841853200645234459303743307079577077409661534727781632622745182521647303025514626674850473346334743927863123814149155942922483051425975340746178046236013076407808556375014943510588435359060386013787485713322145182318779841446343772055255030235767579171579386442066412286833571210636471368974240708558916039258286626348348729043936295779767284427857552527773273494207804687678572776441151173065381136384477476734496158919058091956810289553387178488164644869458039268059664605452289656362553989920905329169110716138971052310831200090972635077283097287698084239345804148386192065986862735086560199913977613774466773615435447427818030832300218744214428501569339034755191775799281856446620371177204607972308885975172799249488875641688305473376916791655289025944050048135911084827471194902362625887423530511467448120334359703201771673000842422014951006138049693611473172801219193870723769349472846358664534732765536372670657406189604144894522921561103185613877900989990938328269447803527588374796397638413877921735892481702182610862104021536549730395297047392944888921316788108246385927170361994703399256361807346244609599927880094123784179328271589701616633232336775906700400939111955511069973833591655822337409166983069690127180887564823718968078691531545091542421217666360549053859224732014506664253225189321957020006812592452530505472779524477536769038538276811062092664490978738500681928937907212654747895816892266876012094458093783337050937469029097978344212924334607609057690137733693674534307720597331730354273665535131988257786590846107736434874922583326994800268364658705074147301749440636743188347560339287674753952652193145627914771245558338354093562219657924590087341445700657294656291882534969898639754071706006652004769364055023428093893900527684730800260745204027474943292620051052088987221032229263420358679510140214511536969697090211883938722851895578262041006116258864059234477199526067297059146654454115930360235947583742067031262255489791322845204706982577491260425932260006906741700899304047503964081111879099790300212001641759095048426929068710758735343646581436630608285744304036729468979412099886838471143720691806827931555703056166981715622594146823840007980106268119324685010753449026222429593113883255825930631966996343009119115584324927683231107948811284473485966546472684822662426123742682715062719468121811799509239965757395789117203598991714157571044135274141884047634205345822454426533022889120752925475871609443845380988035254768127099731935461383929220345884229529044070308565244233161196907749972279567984415706544256656844051340157996416929850305650653339114018857851166033378110220278656153863228631116238376489107995071990135018195666087170501246813906005306892760529023888976234307242734240130053338069133894235636656697099620720718720904633206384372118176821332481457426985661334262186918213383230975505313565959420710392804153292951391789363442319019950767802520178517531831962500986153788431725227546135223932798894209145540401991582979543772666531583616996680151598551645610067421296138135201896985467407492923638645383934867331842896573622793012125944688142316700714586536724052861427677953686658934680694559306148565813214986674846140324484899612888176380880773511584871849540062414908486193578108243088857123370559407959854537255431033954616423777845819305226080924729996622770933712087115543654608129227174445611081627713362273732731972498983827299325351302151796846869446650440491354663118762480221030662723730686223081003775008583572007185786569706841824742395364650997404691809396426778593385404559679157398577633614278582913641466816607014225561215576288217893422517815979714636936191694462534763795164482846722208693066832879190719517443145610497904883174954192944289481043889503746259620462255121942906788239397075365153116819257345994763641893796737177697082446323711415884417434072774757867406967688626204114092715573351408187929030833813317697304683949037734966471025649077266706046891683140027184908840852089566256165809166972743387172366430755971580666545263727025269826672056779429411868205801978673576123359533964491281303812086853009935952731397234097410492062820392759617871130232460369000463204217343953400066742956995966679113827093647978810205096751355585180871665843718477689124612200351514199676537814657018852837419649644539794108621038428077037552716913078701141789780930963094668915037980898768481393680869966746819676415896843862408110178614001810235279218368454924829181310113932446622014832434647521855079987753174722968731908987891527047886787239350623328045867661799718313472066988929573816880684885725424879923342296412084676359527399497712468958913754288403628019520431578070566255362314603372001644521190882013382858806380341346379076423778988623234282789985609000354168201467227515037490780020224040442666374702869868865129510227251489179360602205259624837547958435905755245707666588332462369315854222120127801946040430386745245013351885737777518473427980112158318088250527726479445025606081159880152421081605902511650634815268505856553616011552204547894127293655969772547594076138771934417658478895921792795186085804795246545538423559467774713952201164307645213254592309709859919480249376145871835800109870171583476694177339103259217607790110134408773846593673368900710357449256081178781140482255436378033133661244295179118222208773958013872688061200868572481874374819456865127802418226073603521691865702942937299634578251068443687187320873584468986864385880329575918388543353739100506617668591273602767802172396054072519494499151243741723309792169006651845358098960273683148421621602842776549823566215791933436877629498259665827614217221514245767678284479456602076613160722713484622441619285011073552891981269444139091856867049806215520112592476277546751258519954435862441252413538776158219372873428999426707496201714772321107839066168448824709320311435708384904428926085614758739181354503118571489444054686213138716072393164512105723481410718477102607363686032619815644094957396970072891365213474144067148843459162659621657790393711275532214572150314895124083482026452870705075472383419767372870054632643460743254217760516373987904780259160583689455947402539409919005147165141259275054925028517740561668565337756931290093756256955771550302318743301268866256747418359553358786155179765256511378105253096030033760753826503286680596387727696252169037439970708698074881563282171910423487884439648448153438853265839505559943366491626158897739683249586763491564179159990248915403093661976156512781711486304862803357950186749907119674822755412185612090511453411366511451550896702698507509499427451692431580251007642310784554432198341961928770170347148587976603820722292896804003709418561084885741035588441424175895077078793577881542183330966722025895859668638637088481540829302119697839685908368665914874322367777584858522451974487944315031450858427836654698374714359810113867721908156655040171535799384183699990269265532897475584171130904960717854498269351303143546583955783762744634428451329964140258630002778335616190056115834368635403520910189947732941591639538299328546905020538908276318651485975882934198748603452145992916227181922924524520826355885472907666461701575076044971373231355283799840134959368377302855504523740868474706911674288052186585279274651941688996528573540918196619235215217094466089296802756103341628508652024941630503581059636723451332976910366813391180491614972741759723638211990186243568596570815186296062932859853571470803174644586803318497686370968810296585235100596159662070515585948168422203329062358658087262755565041395867719080096219230990869800523719665049427716474669728873199285738253442286281705011706493121657951136821522667558438020293971821245282845627008989019422312761942738824245812570056318578799625270681172298049548406665568858434585187690241905143684218301939481815215918974333542558044398304052980400049695430978030328741280365373024188794697750215807007977738695652881523272368123787517053500357093515846390569955848741819037658974758536053482985588990012082579920456339975516638220063908341639827864844016307688528465930921994390735145106661142566817303300973797931662195360444054761485955607547678507916084420949190552344228758449366867150892630067791074298372695402623168837140392168150542575432024997308319178041752099052992883170886473939238889101948842830128501572870138249026320537513458135395842555277128650626287077317601124946065354297546847936268358861679994525697049072989028308931858651421508773865057717315014180037769792866360201309118471635031164289619155425772023454149620868010263086555992475257267749169698222215683473564426665316302097799754150638763214367807432190851228080071753573367686939651357714717961642838475675640986073572429572412804215485723751857530514731551367961493040485632716148568019989080519200877490178331534418962723903059874400318366874331021389189490695066094043133215353101076711526541304189060912277589081912383590910929550211288351508333061509561753126953963103756329893218145871531404117657128263847431527187445469532270335727829794487317753584767407996095375338080339589142039632837200899992325635595031215350462466956880696173241609383310614335287580026280896531856418175193422104845564318199093454537885367776379576764044909957048797943695210835465653746314077733280938190233953288598473609376481264247618924557674376148931992185037307078572357299003875148790466161015524285156040314542578762060915984710596443785083306981624004765979885784638683503354422028800524506397938083624621895109266286698511203070625082659542462927001983708344776651452197457145917131149110546400100149607476628031427611468863113134231113819590632564214642708607202217876934635827060991521516324052349008714678216368804856451723591853992628491409766105842637137856345891659334232743565432118908763231694967673571128894659814439842499432613855104001165169442004130746448490320737537135429868584623632386918632000904160785054724122516615188219078791029865415739905738009631190721318699554405248900773497597531706519023571184946637069451865488734366673776187647483219173260755992456340859499917024686436990572120441895785364083060357517306965289388714327584125712283859892148961065289339838493194868832494913341029434410813444898559042753003106305811542313195439251862159605258170499531979160283215416238831498499234756019832232775366737028061839927793123604124322172102148467516023372028440382194345408271399270315390200325788807327803643273512363845021619356093379425205658498460920056034508468716808760634472853084780722292194176277230383900894282957353698720073501990828633183293149443182268390339817157076470271212465807737663820258833394305261305631597978240839909665921060616358893580654784766538204418817200611469185212975321405144761881439061781191201393060829546127656566582084765358618660599429032620770006327783503415436563655072433484713477883059159334913073948701583451008241233050785736346150836969597219507090590335946623916358028110290800591799172992456057776388820985188761005307150985899129412931432223276086723901954952798204417583359729026290073823434050645070183202208711969672918833218555745036166568526261797770100957578739334126071613732598428179918505719594143124685669598834371881568987904901844887725941646445193331824799490354014475561849620438993304352602027544736214429094865481379686377527644997759532473977716131101737031431192812362963605944325025306612929603331328162224690809060458858473674618412351263764948516364898171119423360268156993532677461613708754360858198305320472841043813614745199609146097854647442683512168415581636801870274516451747928598206981105135849953171561042228182427064537404941016372284875390233689221083202968416594889882728503671549477188185087353704918886077037889553012574287053308115932590403892054705981969296456943148027565801880107117185893996380265432208757884639809148407148832063914148579331362422522714180889652810525626303419200220500820217864473517515441687001420696303310965828859786917354682583294532064219979939801225512952776432804381964119816551045191485617426817784833996271069234359154291911986920801147851358327724266847459553578900148531203248144848990369226714425551839940614923445697851015460018050638873562969639936988658211009356918181207383432039509207748302547799265394167950939325002188085384858321564160053516475876363225190489427306604653788898195168637348366624569895117639543744062500985616456238403149880828511952817114642645401435417469312092634002393381368326893811827629377996320231194296290605113793358178727965931482347022372835055934800088400742588580131338868086099204163268806999603658599944152269353775197055767326125720604685327168948944534714281260533429165078117771456013988593443897142773474482383429745651004699939526191503794377252378670644949071741203562268060236558726484124180504209802474737277677577819339697715964352646732092691182186566452334739587327048914176390746781824795983006553960894441630227745204979657612137416001605510583665773224455414949538708801794295837121619194605451677641137254486463212854574440375567681331973118020348282347854531311875517280260140850851516422038411858599188292074158507955117281095910324632830747167528911526153362545831543796271270743073157250844023915261556749805290596010639226939417629853015418206384652073157909323960794512510696084372871537117538379946249860302086346887469133945215339608209310972046626267309166327515087079721914514100214151167273015679773333001570634765410557825604728516313111306115262113941593854960470267930683720081641807026293363823100790328879517903335157284227563276260704777736357633125559171458310372498849511539012314755807865350333302017497283623630893659283959964053247117158810245570209020039562714279855390702238264011061022122929074241935426709943716596044189094579572914218803739195870985452268688024742507486015820783926051690229192498769368125769236212321222456303624335751386066472705304240517003847971491150095210337835054027056370108139365693135525923840140599991134861766013680165585036397829111642696128221764606932740028016297289837845858597733126496947238845424358345480571235770781674147924355279759509466238304992167293170614004503016901597054417710475855918625495224707899508508350354447706734529131551811345762593509006406901069160743005922830357971841294437808925439204282121742628233630828595705857648755064524302981379900254074929852950094589175407563426291337451105373758454634853592495226315681981538129584931008309115671105671749001565883567646096085277573442461697191200172194147715933693923004516760578936621097956252140490579697217871092756091596410297643625214445469758472745400542594728206178511265315461335612985315409758585858181889647478641658572716861365878410081006211020326455807057947996865659478338689965731844509323786852375668099254744100507739250398378199629443552455489092230039726300415346778732190179365618253973505100009261416208402512539227618222902622277732382316999022494953486909137394466309612833920952758797709511929556796799902991668464862614680682482859743279703521766958200143099608511075932334531348714290348694034618203853250873146970177022315747154356314313286624764025818551597687683790704048683118690766918402272439171021292014590350860727103385516061102790257025056232077959419673638812348725453175244081952756703506767353222652886791504576420190188520986894440708593145181555527812973324110565920483874118404333592050333387206790650024734656657184076668041124072418231897488445521753723045173003171084954028907254737842837071174971337753154247119198962966991929975161381258064036737221178287908113319222266599319125511575228985686760622520252821778324288469596615805638601235378232039614797438694812036898438431924193190723596112620184413738252345987422297264408971960590252917973937604080553191873122590151638292638690443174155630032878588247243279155635302294955880574966520980650030769236866324354188774095544837053223549271450557383237104307282352774040540592149688503316673351988438125205954023904634212413428438215954729307907432909778864086502078887019836798809951446242737780851418775579285013681033930960497955413611830434578042378933530906579180605669561839907037515951171753310269916507383301786722260774394198513550777148249924353699730825393596336095223696875418083711405394268667693077119142173909485265262892168561831920472327122925238354143184540662451730154770756628572690750604710643612445575583749749870437401243935057616408481729176917877761890055901953179290983995197881839856881251880002878489440444164092406826365405859894856681212607743197213072873142540518401714142741902551482926535770744871807673301892492038711915404004563848625996484758270448420577071641948587258541070481682602232268811546864548861823783036258515670930816783647278972894383421475355063489351149442396682823728526501071166114456159152567956951754924256439626795586207883912694839779683678709953449082928638657082841552163922098261730194386200571188855348231496349912193696292367067531977007394380007643983461093237372259387907741796531221007720194934730385032643366601536478505530045269356779866170799884189293570746046078441562552773653167496353497930550944000380746364279826630654703997170000868196587777448833595133839335180249860362485319990378280789672415675547308342844980813420073120300561235831707934625632128777977533702618282184786159954138279222333666120933955831370301127369431549262927187360823969760851894960616286183043407716637806915696390727033175772057149414241985523394654839531561040990969681008276965960938325477098960184853678990650914146337626086003517314952475359720439202599913169013286798903407665026013204859023176619993752164535848763174192069649777926873652503898694254465368855578964231514244092112552195509878970657519776980373850305991815303880996872748350469968812384023820786494993393701944794134191130670488216601510674864923599448913613321372839212183370008222547637603875065309000295525230194040252544013552212127586245624608629946542980647057417477267085174905839330351496998454949007938730478969760160578420722045676013990413061562672024432504432040084326202897300546093097826662766085591722207146787435234811234022133752640221151862946427888551216375483597422343214261656177347559821778584525249520867864238836000162132699595308484278386391981004232795647573781409266315649598079531056602899089629793878413463982467172832785392407351344458820181934019943809959396281854441644243484226853412289680387195071212583128684049843725226738364493127095546812962863025078279398780502533142234347751646401639702220915817304807512728962365059320349808406409702338375330623122882285901707152079610987660965598219401816500412755756533758607857456671795799636736166348820617555885383285727748532059328278668394854347511287478463499631088944433649597367886730796216030913743694353931851129553784392081291693854602690332552943002278143903843787922006246758276942452362808725884866414044321143400075734874509227089643474024074648177727598756356427430975131773832041497422371637152993110644740739064260614371811849165028949567330258193117822823234514641168308856416413347525729205597644215605590137300906293246375284794276099069791861678756384560035868247425584555261457680907079288468693714636221448170696180989902081517592624461253054726273222527020637881896093656488748640140611792929503158298640229629009140070993670273534792455222403401744574111239850239321952053185470837739415468906279910864491505567275915783672439731680483677421905919763344105808150062816077673699624107250525132927387660796089934294100228435943362828598955295933726255311281255999548629837711869128130198491811941333338904529764999867768318989800254440656176762890560988313955822158969793269674874760965086783197682805469368630149196761296242551782856328473278386056578779402299859714607784470750425198167989811723530984294200398113227682692929762618712111521080803838561855228868097002284151337304428353993979201755887493449369289410788184543931646149327933685244009740362282487400370554438242308341069578370171783745631275549517646257104731088297316518149591587643170317603006453495431432519490864433624895126822791649117251240146528241491929254026969956570020105742276426621273893109721092437800076818909979804569704011976314680210983788764925066189486699396425124416588712111044937716915177500450352262737245909531315290859128846663352014165911743749999396230798353807342354868497424705882063375225275854551387671416155936285448643254916936706614999904270046102211214764270352757136447124222743524998272423816510391713645270615905556933601202542843420778229549098873162879519070114837115272371668521291839123648716280629325482090247053413859533196045963886519618768871203318270991258858407018431585805185638831306149003222508062086149630643456012480746662956955374023552750353528832729825275525995767154990168466380398664319857331831646600636397329597637476427348748090815873840550494144107821425366739052657195295020311539919543674638105072888003239383550942011473864333722128763051283726311388427139977017837036739609681950215556219110170364510673978001472877614602049438621421552997623280108725018624283191358612250616565646533146854859691306732503756114510787099899177525940898460952779603316026617353851146112238106083596414433958528166010260142298744029319122920210998883841125863628770260093336650386374320279884879657778290689050494392100788175685844487352550003709587226696116797581880917745288437794678204553716743414831583007454203201103246401332023533400578405624200932228251103741138275661142534805934113252459890844353786241148152171900202357115215553853361521769222632183251965660135158308888268437932836489118454548171211330843215296209785056552556588860642875461701065867960686506071621838628052402456724893474260993027922778309715367873258567905861757896941544229371075663653563733231381786596315435849456413848233569407739791865838188004064109515414842910659080869511069645028910523060402158932121418966701374505539321875438254842187379233570163591468481957432991863277370083669861965633174367509026272802778603787810676843465069030441369027161053311016813207685202781607334705261260480836279308132472553865766825542128120769309588625528071804672740867631552500768331235255003445834217466234734559320181070193655606333433176773409405450118074414123704548587941445931707956604603626846801938645294047382047659744816280202627388348822727085049944018022193549906968718463627045384278411500265944274381393835185297794621999796319876794902218621682406377163407660047854589954483008838603813896857093784133007454061378109344866048349463263946681031051610005340543017869538651322923924312477529558493291120117516125618449874809048046901990351791453673786367013466777660141678640369565742530182967493786121787332233013500699694849389858873284784822742345770504385364159285578659299602665033121474202236695610976883939958012572154936236255931276756962085655426601533020806759069149351500713940544559435884395597566758672013761744047709564743723695329058557176116292818778045324150533553468493348006599042776679162429697953506742581040245339033082583259542813545897653525383387873219940746053253102957923236898439159020285884621130395666502807552018872752390454352354472140336549016194481184586787066267725336077418346083755412206523017023538246935563751087470604440254447465605874067933893715815392926010460846546926302228651410711837788493109795998783965025729257655145883288080741685586070877012729314816353530477250810993967395146148459501198728789604587802435306817445838021713948308908666325886129633335189435728448510185919346956078584967124221257671180204520405294992374317927546319541565348842300426985523896179512672758264091818035654816428465975670418199696267192323697069485389079713749076126630880530137223190206792323123396798081570974131892724699547929404556717456228131262822762623442063267130542701118601580212791516936980095410116037776055610361724062858502937510242922348329630716929022009012343193646345583675320534711545968677114223655107197149291112981319867475960471408173489718781004140772858762839028499000381835905301136105549468459094243139666871154448109376941610896597911292194947820122536174094913442241697802716779383716786326554196481487183253344387753723765261119289136400288121543129709753356366833581584036596622783405438227739471175639204841579045047041086428763054517174580307857665450096014500219238752287776222359825985230720984314133089884815931279924766935447945440769579952414897592296916419619122334649578752486534584565430403564677647567058891571049246968844569160308468004447414908714135274084094425728523083450686718922410373201919410119608263936040454795766165874205020201331001738576431773712616061861176922050481287504594242564950712807945121636846457607579478560213471234816766946520437241506954433338941117399409643238200442620064494091148428987641133296166060947324782273623294986974592582778002820430903180670095331236826728879982831774940466956243310232153956738103542024166414649773272413667796543354746995358399136685289018103176223070236056432009241109924407865186547848959993114247721449870913909454204510357894453086226078032717860930713990510830720672567069692171881840896701957349142451462520367107895026294059820952155548980695896676048106435362608465255225372526580119822419197159883630576226671156745439337623346076889989670761660519393465231501976789488251391565746825771157087047092660432486313936205098502099534127110859984590892529775808065015173397476207734188269083277365635097296284365161792362278724001017330605548837305962387469545745368418541173935361753665468702381437136835542879705231194084853388002142270761378489370883183000624408221100104363418085967287199824286197340822351396394705575472828091535198849224024587671016462787486384896091875801645299803848723341747799696211984546746365131329693422177539549798471720214356373046434482213029782280474227339302772799541923536343691624508235300248827499075453787502719472590787145141658220704213816416841649338026406765830307116197433056107893586885451472981317121049845314684738893738818935694557186880821011634191057191012869728966120877810031688016922194760349845357063680371809859457246182978950664395079339429978536853877243606819711570874869428280944223610583556631550278258700699785567175564275118745516174660397471609151923061957112499051449103885931791559992655545310890822557616698805902304956188350783340806559831745500433041569144183360389141403509947684168398610102972417199282455853632803090745093007504490747772781298963420654010786695349527333338728321618365998183316263695093175674956976470174920188392427146182622653435157194834741418697940919965660060210248112696960086002364743762513896114413445201193112223196341386622576372145813255268683455981381823150377427004553916168745037101939775951600350315700227847037133142530682391248137967266280875535792332032327640504818785316670798516254015059028860148413586076428999034372019425640233236143232957081395785722391517544239778368056352989605947475962153301525676087105127060671610370102517843726583726037906475555451601752591257760920249687210111853475396047276144546053063769888127095950461835118451146309825376270078164606224834899166479731280101830828007986249399707359494189570148486623327158686474513354667794299834209424756210827817584879747696226969760263760402629601538623755977027962416695471118501798626785382684875644157383484824412610676686692007372530698546504371494335565111849226681569162029482428538103865941401551255252712937782352686017902672041059213480676146196906745265988887603768900183847293639572172122761455397118476582575347551700419652137312683358522053928670563359413582187964887395371531934503865476183899657727542281530681246663034861879329164052068413720073505817380058715524332679248958793708350297446918588330234655814251072620408063863643450911403843720112813448798674113094202912609676181013132765755444620987939688219305328081887175014374336233047809621397944703214143616582000926889700449457718621709589406611361841134739785351604584639004224577704436437109231403036696858173847348695150115427965028694383489018372213810862184149392359964277268813976018432866606310293667895902459560664918369870224366430289077415981232211902387776349573459101912258258679242233575143056798616892965674309898872145483940117810407949692836647376566618817721459361424672668517228021493052532419960040377550055755368628409663591260919924360633344620359717669502011713598106673954047589587554017737212124033888392872864741876885763655563052300887346476373576243299847300779971136548489383738417019443740674381699383373316324714815030400103400422614494784258779857771584257334082610576214185627049444548023587459730087327585384531949596901668877416214125496041463231843623012758493968273965191833354239260436212836447823650534380896818705832422952836583104030247068212662839253188858219743522391090944988235624379383044847791302181405199414174280484621495680211607131574878530988037938293781257471636884255742723046858135065507711082754017828022812459963689990065057629209502136537424876399180065295646571541361863687219431260471304249702173218262991725138915365648626832262248652528977858271526225289492826293908542340458243513726630315256549599811745175300728926701408983584038163750617351864858262009913439563323242283869560986004113198996707766620380058384840386675026116626222547716793817782373736304373139978315541623911702328152245867595217964968452405143490360939172981868599174995102786630500484684051222651997434319117995117616836549879734280428534271643123413778814849287364069139218402201301638078034390789552871998254737817990965027673303228741348379958951769897748734886976332323842751731240990340426355687913414203925456611500679615594055777759276232860541592341093849718740629914839572116652943879605819775839636471744178285150044829045525431433846734524165710640189969354573721912798065689234793466631160642494327762036756645262155090354665572715155225102290729925058335492624019146117778598702638158533919428313891785017043976499106730335789100159389607577847692151123691123536201601109146380093462001584284546830416536593893383985497191184141332226568013599228435408706720571541641752146013353665661943727250684436398422819063601120916823075021477395082532551214596482540139269174948974582384362083651481586228353374080817353153207358493187379608452162646765692519855062152889220820275800235573491962988062155860869902993594079188165959176538913775559501662755182404209480181007354414140267482682130955179846801652272735234636992297798871931186596828430882779738842091398301537319077841281361449541427468026419859112856830535451126424647836015959950778815484649268545039251182103145322911492359046258937056687228322593813438469504115829149495300699677577884445469616112028636917759644992695852180249515535228574376613849377980762053196414635646864808334367073467896368261622192814975745275829899937975182684707062894515432419902179491447057868746834591115196351138647701076863489958814722347604000013073119855378586915381734688316313888455855622877464272835732364114363563553955298592025165590648641206810031856297178834488295221455976649830676064869633401074648827725312025234901019424860340383268868131346770603219349782039927997792565303918052283063918357925798801866994285475401146623377997159922900551674488737613751164448649537365910913128636211437718099708472193687517481054775644466856589589212569077901231046861502523968874123805691139199458058521620678702086182797657176440279272491405193360973298186446868343060190944844007555175360802551977423341991790400938837302737904722475086295323913378421005490192825490270219399251041588638775417732155596946724269552697032198588514480107000999919656512953117340846703129493088076824484824945166364212398833618088231799601469366640963374128753107650328581806834585538166107048743983296584294886492517737160993345359376512570801842806815398313118789369858600399705394072197069888026141734882139164363854376889589567122025134671782412466535761432350838636981535189344864569736506350354322725464733257035354345790556758266350759203190266424199397365160244481385077991392498736154958327208129171560890663328400123838983830586451059209466889845129713247662753157149341434764766894627607325635458116069347904171739794509958851177464867562911666156488049616556269082500623249339320675509336069566127760304466626961172600041067307311858385710914241126258736904964090803466628550933053202279691109997807183028529592683483919570893845369878389781012872829037399376460127962903575873418467676924748841442927830140608021865691108647499733651118679143639551287537768441712566643442500245155674351134988206113658035291911370206679662832751149890206108290301712991077990505737589446316576872248215272261651609678918309712014950211038800185467582681753781536591198134983971012144376963897026173224622708169852693651482940546044027949308365890701323262861175854288362548282668964045787209462968227834882337294290433236613549006050899994883227863071820930886938390720521394584371051664246228739022637821449303456527052208630181167911536392777457565881116982741238675308550007513680768930443005170691774511136357553719712545820494385932717097389951219194378865410112463297032302488883823142336380543131236615438305033210488666518998623526952596169939584922352588149149603499084023932181391460420923061505433234136546973111309214088575018975343762450734178677998331879344854665897030746885843549970511738639189737987323514629293834169453718980163251142834394790382432628581230898116425849546469840087889082800088281264982424044641408743083598041826054484030373941136959441710372458723022728313618133325345454916532466472938853421466903743650882017095271336137870810476268249332371696190045346242155229937210004603480797893141643014003365357224597065402471772115090132991740817467340481063755675817739813232508193474543933607677193010988682317655202396169918994982244447690577668027176576386808180160531860287446520510664839898209253293317361557560101583887083624613213319265698610041907872455538404281677562319880757260034602601335243636578794148627207315901317797592883191467542615939743599651294734259737092619808426627275335195106543874198556746889806318311660894470817015767327096140815817791233864621014225268589764953867474431033756976005951394050428965955535804382882495730579199794674932685284004634321500267526964845060049054173865618173410844226687271444580570257378010261842189516896125837623578631032056582060961710351186477906120174086945037849876075144634577174984397870149989439999688905432705491229794701775516974135138587865179302184658658738833549894071368391177871821411270922045101120324782363595437320710026378762968016229487639585372287609566648817548640898872491527699163095414122412943986427497455725055016428183901665859042743832957829700530166541421340455574355866569710775179398446858707248301838264674151554593961214974901556743796739685161062231441699740273179507936108565684333787314723818916556085650601086124797203558612443584616723273479015369468419704809033987551375009142757707050367393949083476418190124118523286325279727400253186658790234612726269329905146103038085350265300354542971978838281503615080817123373980961576398048839194206576304580806769725835341184126587094429188974738653951325725969414910210005485783110945829523942419977430351939310367454592665822074634430995141099945637148796529780427345921590681547714742246132213604536855528199360260599321989760600508236908194287290971053267487080673556311369102435097599686129494626265487318358384433597191377230969910137185345191353645009029490974568499581759554424526171236454984209376003504476038216172761187571586927837221221328641225989359369982874872845191291524392059356539735786513214367487893208953204508224824359266242756196757953572512690495443422221576690876858671773530091740470677856706451612219961545028023498852664519862182188515079124063237855764929936761593380771008191318558527418133580816065573826666695147425397664943585054017806298484336292080823386987627741551301214187072297753012554573850656431648843697149697707945032953053338535142061063965642773898871922222789094744722997214844751190103692374220322574649415556429079955980940954141139411828469945205867390114305411712815586847664889863143484540307990211212727567821855968660137213118630619161657665057472752542592014843697790510671530947491453765641030465731380485126053827810101780205588799532621854421711446733169716411976794436130324749892418655366449178596566466982289819481311028758310405591180466622804484283402963990506985898161291770469123028722044062503003536048406173623506349943546750150449451190355098992426964729734073608050262211220645154055754779314143550167886957153902394984252400196192672162159973856542171552832301518443616701145639407103816774741437935255978435210074597061578072078330651322364116564194496938413180245103036099782212664575986421763270874273248639582959935664039105244150011526696809127164971281826612173771537388574789047826745880316109609665195479428004088576018116036887936300058104469866759813219225235657215620220995567404358521553269630830926515960005216188319228215436827443450741685000689991953224475817804073775044891783901423172129066815509930273018373628020800202876625416955098298629042868663938691951683818722132396282505586103372470993549530183902577895894529460463458422250193176337741536507864840836307632674184281282365935944609083678327256220228234836792306864017274803833746179880713218800986715300339953844434778231080425488571796938970426764762839190296297431987732822429128920232718530551837127282215130869913424601964365040942427420797427567903971717593708282193087080688100527243915649333503044855843655918057782936158136621379614664560824540103900636927848963285564797862251270196069704581819506624454878823489111838841045182135593798850955832497984258406758847687547028207345685078341434072169081158190179393923152887655813274198805969254401977189087503527455974573804695756406546906457119518376826584942907551350521577279771470333115705159194046197223525040727200659304401214396156123483520045409494638140714371857928975513828799886381490325332131089469162617230440142708930805019425362564191052645240178321978936169446081777168945438159985204119271677203105556182020825655477953937382012535522486507404655500341630740311449244767641645993100964539969258058807590831197909896041996853893741666980256577084938047828874881785669035340067400242107419530119132173190996435962509448677133023295421615501223541461576086394688891553962017698754110952341902280680870119189007206811091374682799797865424841961080542764821498139432066404354674754487469490291426223104992400280017358440082080451976148423833025531144371841534368940994434237893011002319815913501761285989008183562703552136716227550085751815816540546220482359790120425207349201463183304867322065236347124962316015637083149203545060835984848162515018639523166626338358626711370595521003171828308243065308308230789917264713324625366673208246101868975990958055373861477623834955438115624017604983625221721249325690713130451172667079288098096316372255335700196799479628389334538588494875657561644151390623161295019272031575532242157847920152036186952772912583540718527599801586733264243987361901475432436047747834766819591572702901610566929310389379337622840217704830063413862430626013194234920810672448452731759124173627327226117138849180533485966722572544560881677583864538053779780339743171564786888289943384600808333715169583727866156528031068279152228280623874414533251153928583451266548608937260656876774926223112943111238871961536354904914138885809182247013438514493755166600699538744030508912269683459420831584704572975727664371346778431126568988164346514592338155819923212252473345660232068730166539496201397445514146674406413837707796805244280859661498867386825085672605120624769991121051239913658633366373831199059811277529749412319549941191322389649529827604184040197666701725841692487149447815577825065872986725106112271919562055847454338450930835554610507301591208955643832275284079813552644115841756316193444475351613481507229765906790088802900408297634112399963317731938578371535937977474366620931489586292649751338092168440335662514361659484359500487063954361005903911974493366674516087823058379193795395890797393979679220526966652978402019959050390013896444415045882626760273348828777611014778194741133649572439845253892856626793567775440698950328248493226766536518117808973027860197314808443132462095743672770177275295155720304981457531577124267348286495860971347157364078304484804331213863102782926479669625520035589771142781329208372764972698817393809869933383039211533592545698185495589953636184297236705378479586013473064905680761398299717179924461506320894192716397242738421079542524691318526981464659679499423595890387292942785267176871519696714437937781577913650920296483414973123117256875578795294851582014853306036701195089523315193566147933514850947941942449717455556689431727799822606176645003090018866881716688372307404236082279102968083901523866199090132743663305612866076002268637620280944174656644163325847694508492775960704009580926125213161212564025942180795476443232695997120255190796744360897590604240731809968221165079522460349480920117157183722466796538398460085559825764711340612254760477155255102149125876721231164732919310155445695233842161317901517386696127462801045027674480538251760231413529943504332779449145367700349642632269375855697272594949773251978272035992021403642193268965906422398497280512592589121110204531161752627919432767647271196329751721436775240374889833434323988809008739705599950426723348111265212059515222263631916353977329392134436679623576739504871170569384040813624857912854102294131137168637169883064006830838041766006974346342973350368628646168362645554159704959612940102277418867734351960925080680425506097462458245776659989602683336817048590509032316579591330677300522506038537153543721863235015539189832083601811633892095438795252351244551867978322544078860287712059049129793570806721007554495201876971052993950849246333221338597092845568141533219362912723783460356176085878481433612559219631012554150531586619632514528071513026579280085635115887663355477346647363277902593942829574310628580471578855927709575457405427422029388710711359829351734781197277266164821343602488148777723727253773071195966830047236268002353066197664225354883330111987822089885524510972904787354128462026112702042641508396048553217585232621998056266149517772061260202233676658053578614665367989602575336951232373750829958832735312963541690843446598653095368087199927962629084696952884357474176503938411434784863769006611243237079073617537333698777861125919881434427024561246474432994595255938589209387979048185096356682736822988911290134420629252131479638896709042939217968082649610499374774367625077962456284047336917515986655678131566549625711370158160576646717896848226620815242750648653408063901044689558089303190032250794555213862011457280874816055653823856855987255354822712273457836753370471414902195101831464621696156823761662613524345197936870175165490856809857492989522981226755607980505017611751675847712304757846143862151986271344012674795123074380068945451924282624186399219596985207699597573189123585386437320217245568955122357527701859557368199594364672400698907699039843714410345042419546349987647885221272724448800004603371732770183271743044588720170448751634710009239845556876954288703182179789503723555221642292140529040112846167942454581169226229392668032969604653580934230712369214041015535169943830785618963079337524342433068711403774921300752994333008511599357283127371549937308489050743129667152003632157782067398897365006884880603340762900576555315895652959923571985860256612479901156036971002923278876346232476562887087853241079231593552559557926545596950578860504559702623860597903624136400380170952647361184271134446901879111163213434724829268538477712727916310366107690999890628854896281410412693151340818164548573552912698476165864860045433914861078514206632969302564938935669291994012879224484661142010369677030936819632513365088257494647486737478902780638390413730765788499997790276555692683612510558388337892628750942756276654925293600243810282494954797641778359236439386204639809571402484150831155724036522116234215793235559706834171593445202732292738222410234255434807870235225524003949598978042896941177795214122768318969329156062899078201009664123920571089370539732333147292927597143828400455562455371476854630949323203692841779620022153273665011647882810988547926992176215692933907500418850897606829327648791146833731023136912311687969523276464264902806479778435306158540711550081379864161138934702425993908567369727067678732589094610983662958616884653282235347982518083103988631958787945754760901979485528535743743611101057042425588536812650251830097795095831691391424763308268328133511368157765115421611568307564620810167936098682658953473200742340666980233016413021869020456575399851694920067751923002487921408938371670861364324472190814237488147754622695925159018768287578485594820707991559559389774144169003875137400251475501227993964849120874986748133210825691420361884977800473868694631510705668244162530941598372530729576622032005047616177820801097608103196239431171692538916685535777823727078834637658637427206476871098371665557570000692375163531840051366866929587828634919521149507459651710288131128428323057046072668297134335566669551591252127033549206919091775200171973438110311769810825172116815831323083330406974721383481339848789654582020395699809803394882413470561160841719653738036831968107095374383420681048438618514279086511361621389394988604807054840287032581195668404991159291182371502454806049054352025040798155131276216818338108371643885487531407105499394608975489365483766022126222625972530058483034915971928270920676128330502947599089438706593793434197590978420512168894719119758270329706892883338007408011990815312336518971787020151579784480921070806272690034229807946537441469538994692469011044709794823715186660317360122676592128400666460388055929248420590542754619448012004255403423334650511269122454966261314313367836718802066451259778614823587785784265396209347428761749003789735660366507870094645292152070926896180203936865002940781712389763758950387150841221268291601487481901374652509525401168872942954982409616784740951539599189069624217304619289095789828630468223829242272950559629688630745641078583059270937806199703775100335202211073719124177252991789622912907194339886374228517318784887915475869065499841268730278811097475639330011045246843760582180523358999210251944409851051201211914986753951299015603974226708109057934572809343218822236890092723369155579441636079915627182650253305617512956708312488268804261210096455382004539961559746081939237771269412754434602662271444294032234177647050639430917514686380125921748572954961432704852348907990665221793367741647604377737153217702518083825748004780398323834582844332896341674549031790928021364363934220489850792152996849556798288723746687102422917265510182321994602529338479296224803062203900153498248466414380810098907728004396567861103777444747972465016175395109187249611589496671312900323199457101500034948925885021061684002291606119907869279040936734967839509037107535908296419194639730562682312184375018717169095531470709712856014322227316409445851261623092983295175406480857374254211829774472153066151946830182567512351244201371195586184215602154269921915081860971282364126404117904295258502184609078546205272468547872047378892463421283482361524651092477263296549408378024406380479549280935924019862758919797707866051976620071227071733179838383175994336392137455019167496242342725429331408472049869746850428590347720477399544591697964786462022905232229673163465385955673020964699144190927749958656759680357452510811725169139438442380152738872496873859359254136024170110496431105554971349010033035159708777427268559642234199948236107805376737402166445563825418516523202774941569669646155752929872869041212285575365928520982161857337646798614793183230162810878154387123531546005463865387188789391878954586153705075437043093664749428783548238432847138494224924000484748621893450353104903693720489526981040448713798761803010743658728729519696110861751980176448977526917693549578881077570207274753574703174399508804256046868366698307450681699764997351506722649574960518179895156013523117148918092434259316342036770435750902432142717093191218951736770533276501359614069532930075304008865293724026896070288154926505966330096003416289002927790191720618082528421534056279754019756906027967107108707187377989429846172770761603845013113728361931776224889188211271389308459010163489147245613088344679747663405096974603718826435161855787589070003962625702817141392837660266708436946170250125757285080819242839912079521010911508152046161070505263971806003385060257260482692111266739325557102914110959899777216947978683207284438241680929981064063409697551551079644221208289955865612411278474119660423316861783258024325744470360788250933527108628137247945391411326194283797229017946830694870391054266556019837021624875565855228004901887909720887708790842219943460154386964488166163173998476239043350567326823355225349905227155724726474722239914907345070427493686998364587909534151564921561131367018306921550102216167857649672907838349376652753364594943104229496620427802562059752239827904916705013988924293380694374674175997929903711383250550004732741804910481913629136553064608626215874733738113932471968921063917346519479927875849200997898093987663268574767879569555818203166230931224846639226384599890908615218224655631707496662466582881865630499651563158023893271829141551486166442459130024318139131544765780495392291296499388483563572745861709431339502722701490242319508138642271203563102031061847706120534813666245829023081767219646500831009582287122779028349026021925315083179022675742300575876014598196641331552094431601189184569823014004277859962612787431807517299637348692615682444167296467209638728448644170848168094696124228400395047839933979463945947840394673039139017370860013427962289414668372545658954371926320796182179494588886995006463238742713084848141985709331544928380779280641516216484989489236805770315242291429133821405688369821015542320390521134758060282366890679173123539883732141144299883459862196869175080166390241824902971954732078832706585139450575788758597688915361583241311385919694598208759811241636873784009777772784610975730386295316203964542259177052571892928157264452791419935790563527897042297351635002083914386269929809963094236442700046713707033190905348673374166469289483879167588802165497446547487336008327874856081551351443779274604662983694809989579715675446895450951608565625404883991563852370419430102216600693522786290944747843071001161648549099735835161858125320505341269633751262994115383096822330447046909515951159518752168529250244238447846689256493405044561629004819911794948395556869495609965779532346437055153106146043702868975831006808757908182655950819907249384162295474222367905810714275606517285552928273140173524908541978115938813310037271357821042664327510433656724588858609792633583654204211502134167886230304463106287537295118815074358448500896297321557085079094908491984357886488045294433286004848718135662452749472619456622128165869351774220280376142414105647537012445696404465370434985981088032407849958583691633182568450318212687745785580357735821882018320202940068200526284309857537701456665724033358438477170395422587658401213294857308859888928681163918108945093501682639184947947935015667211981429677190549690551969179580441644066766646460839151248032919246213276166578805333998390235571899684961591038028567219864925171494695172519931380260692199043219141675744552945379110110334339495449210948535962853576604538746877278125311101246143528420740651980716223220561383497150804960904357182869863559437107360876419823373813803551563295170721071607331221767950101879282583442308335695164084552144980981877092752041881247599559429647348853191591958702195492492310559934331381021621084366355573287970261922632658780397847013952761955053745433102977649886353690518027084432679067684025877725315608811209902655049917961981381380579878846758647385089735643720359734120358218672381434194573984227599008358009605795095797453448252166766242053398262068623400593401699391820437455967765596985471455592875580198510841234738333327251712710252742694677992263186351383361201329900310875292005334590915095436076402880526377193849752316608398616903599345844747123660978280993466471896825279096047265508582931113914878380054900396837861116324028100686810194591736889857208904298394554642529442337501046399178027880646056456472767845128569846165949205064016443092552956077788391622577533519452698439899291540771879017088213941544903209993785428170194759908644608243835217814804842763510877147897634451006367225091443973505000820163561738538339797597094443417248815481399459041794191942412818552870515368060359992818723215622093928210533703891660955957318839769986611974043927265806008652086241275579444759241599059806206352422112527880994242048816031093383102337824949666150320061293337759879634545375917459223017703416241140981993063804371911682540934536458138328341231289785082294214392283292183902818307704554294598775199843414331527786428506376537888709520061928652386122835827490354791547060336229554209370578093144927031334960350086428958192298608774487492891166677804601206182962271695866051453386568576550611448863169076679985172783489929324625536131889369220812558243714288757336410793261286486184398072307447604944083777290630786809046480230146242038350969606880017901949346721390899569650674983099779340195526056508085262784678942324092707912841331476267081802276726042130897777223752694563040682929381842621735204042693916356019231267832997229757859871839551765712826319525163048197753817273037118047880101439310886284027456780786623551151725999006546692319652372585764504488047617587930851123767692976032857529453149583974826807284725009804619860140128231307952774771221102644940412153460160427405197822722202768272402400277302630358825011867490845395093883011230125363324346712858627919258084938391773546884429219235423808453413605713824634907438871130953257288248970603686776106691432079500215564928857544387587219249236825880901911177620701003272899217565584931379136636303661699566617510779785367486785643178036273400444968133186266881348979141266244489738399580186714537241535372861244007626791212206179652108788813066417204307158355146336295519520763608082038736520003741033102814244942328866585422810233083372399988809708332160871492282509242451186044283600754387208414991879456019948502547512912185679972598006945279808863281779848029809191988729904155580189739683235750195802505459851481677569290637312928298096377142927792123172369996978354330221155306523491291904826249915597377595201448684391874380260237967795225756936899877483765153000509725062143796311392562330451382182646826679877215054237501805471242111144344415751102272964107744203464640031586628602924709475334323198274976173201947327002991040116585462624468149360828675295806450041246668885410835334777167241430862995798269747381036818774760197168286517221183819267183420808938797423999982353143008564974576306221826058812939420849232163701118680845636493307871664268583837495960966507847816217783995761549063182878598753583482466203431014868335581307618798586044544994084266720368074431909076174691708765403932561961863574909448194518392005622400412836192379539882742245022382313743188363978492811825077040625288032458324244949888940954798657269781844772127009832322548974581556357571142666176719690248788057409989917612745833860280813819286017618925072054775043970897089375521183063692421157186270527811588980720260546940313338844026530539587096603282247377445593366820077875341391044189428742861057211692136014486985020719129470579419637750332383541567007956210035121001568954086953109513751057861811933165925012851644282604477135310259003948298385075995907351577108515077663028067364978576949798458200049597587494848897529663867237519892072474187935493163856132322609816416466661147082419745748618232651823647513081168266026040641943864302008293907142742653268517604920600195926625748894331505274732587420025832424957851773421271223345546286552998732975547768019096158993827641164989940734160081443029843511580543360083364596897046912222748879203158000707009272123791338899567216051012248993096743297472695746731616515305869141263488849211283202918809448556854845514747270145068450366707581223487999210960340066349262973156453458239004897385532213236631024390561953626888516382320023353568739302887756012143259104099894709140558889813176097994129504589292854896383762489000523864985639700623002909337236005365754121111331025598277963119008015121980575879139369034267756476575341565602769087724553285062808863474461291000255596228312589572129845728650327704801893163581384940516592423211399592660226134790651615672724296864724320828154626632340862379073914459404543323127703291798666245962009676787788359978662505473805807194002973752996236798817748095579729795068893489120831032003847999277505828030438312733644243902226303703820996968775099137126572777278040427368096461831084824285822931873863492766284841311191018719512248580883523876757304393376688235172227818427542497259681738001678552790193827692889519423101251274565818670597017363684887119135186616489706608613457834193426672420404696033761010823131537427087665003165292792492782840818188977044599308311429609906929314755418531798798141780211078205854551392677648941158078652782510960613950320864837580731761858758928224302152866981006863068001231526123389370226522810518634540591062282108877810988707997863381463887478993697695329850617044989666316223555808781574605329464945935021234036271311840864283104390802100379666020154931798362383229086625124790892135520645596168913358292919261771938248467900259062339944678966162413789095900781591514357418021311126687648734710656933133042592336249840959164000560946886102374420509701498748225608614576201500096500557982370317442938002162929775772655765706154008596467179901288772080347420289783662605578836592572209911667015131824497094855958468762902368403361464347217784256842777382551086583043018727285621718449345350275162821584642001760360753786223805700449640141603098475233536704711138297153635432386528733225824898952776414639938726431464858706573294837530203654254524929873976766288908574200291315359528271196649784045360106090622971158505507418207191460929338468567382706900635743556625059831114571061585280166441045899133220364890209339152865260942732000342113968569621409001428826116121999164220957944227370421951705718202763388393924789029940968980618245082100658475734757193042166933623948800093233477986391115831567469885590623300370742080201541752902382034284744345170462046353091698916113781267311717465982668243401553560812185764248891248927790654205643150978107715816349632650399802942064189220339176888744909997679728697841079403350463976546346361486844629928612312906123671021885183825133728174924862814221453195103796571721553507998752163122047181623849551132125684749611668944173622666987728570013344362027570817855629814483767359009438099106552455587450904619083239372218097690702473309223746458795848846530547736757349376579650472606148351893520179365703116010224271046680861220664472916675846769790491913040165242274446765179270709383054220214861461531846190715626430228393064643063854811541965474794218759965213059543826317108140261874570002268086933055796930119075280202643140418825748612433804541632719115784702864512584466668079273761627309127209267999023633213887907510776885329913125564317174666068131565381686363933013501328654395121042558222620640509897352503362477397427100552693677611686969387153784227566169324966285594767384644247367294972538804116288493850159293543693963685755219680302790982042021389157506361952049640656041040146388404128572218200435855065056268913259821042528750034886310201376220461006112638542963733095206861414423352379511674128479500486214352788681445583193150201029082158593434936747505831606965642288567188136455603340764038440325600768089929188033196462097693927742868446786405481748505343498885392886888880123567957715592161325560740681275715662979146693439352569832900043010459706465473993674406625640907090735521538168204676584933901781850713076996273406757269880394099290753107337108246699941927387715172006941622320939825444783563931542614218997459623531609617793373689592405699241291307257507875413908732678010919793318364402045395164541132847452326898627096961628886899061963619364119736410554613014570365163161417202178604132104700852087391656000035980886156985294919388431210931350313703340556419727696858611188913667379186354234408736025214573710654810522416466494314083417577268782538016645436770125207217124724947274847106520414118480797347354845598702557604652626194605019249729880734552289815346245799802544336846306377750009775235430937344096068482225104651728328215527158155969864291028344225936601353848092180800438621282729560527141841918780300040465595305379238196342815148209090748439423681033455602167229085482394873677584300741571667024655401949818676020966212570070251513741799570807538944670332097329262065333122722949608020165646200070811442037754306120759519752809981392312142962947525702433298068233070992786735823017179289987739457965169047191407047589318289878562526214776456251680602593736525976331258039045009907496197439424512319728957114200533778291600268605053250735005026376236929837923298871997340723265306461999660539130449016474178649817532493133690177031133194821645590415420632714180154852767751201188534992574242653802809579095459541628718274418907440107406676358778065933123784567991231802701107479261443301090465912299958594504713855736453398993128942666155731000160249148096776716825255572594047274896402344486121180810192390115407037139289278615582766377209817472396694152156860766217786676417593445742725740307010758404325044834361157618993022384029022032021770853252131444581830579099909151529454059593315962820183315787916431618846916280272359579627805492007510600680431553495299693472081163358145726822806032109215780561422850070238429968007536183893591674627553307655079083667620497868767912836097626301722732234717072567173935551896372702437796434848138455088480057350336764729331771327269514169653105790451828872540895246886835695084273417387378013419166804086656751448688607114461166258159867630008379370454713185499082565889466736840285914451673911061628135247391323971700634680314452556704331114783065783811354492359087175248362153923061844402135448849810529339373555149029424180386394884184154520033128031890663569129601268701412953466660163990130239931275101421839582243851222854513411791488104043858321441738248830280125771108921433882426048525892390024367100927914071800432149963136988932670722732961651706162145079091725950238558407347294438377380477070833892523930245320554004848301676818923990476993451455772872222607705962725175129973217955467028260411097450793332591594027164066858696259059063044270147938373067782333941595749813176789380279723114891375022054991461265865224273441033471607949620403779438645123246912148625500420073841230108231263435246118394949264141767632707735098882146286306163735459561044179732590869868074450394252279982032551559213120691022778902666353832505980133351483365444674753360104586501182682904354798125456473373560238212969715892930993585942390193918344572699717747252990832059298498987755712025877147752161546946559104360034478642285979923665728859220526356346537905310432109621487129405689115798694958835631756383619954250710877087673267011964154237610739428070883406526709854964828089983763895561711905195961992890433217568920484975704564072246152787874810936249453646821369325543580466712228079420029879039672016945675773026164642155806316453116096351504157431003285875242163482473864689672926501734340952183257910108607756038236640648501878259398003153141218413083796660160433061500109681167740370934691922298297231200505351427354739062363386413862433389231420093122489083990861408113066506176396314230148123363935370386622966193037943299972279040019831616312787996325941712823049793812747367822838948689728597493342475088129257638212324808346724506801625930246430295850338876901001011955633197943730305675541056235354057839578992898756979476343627723057211504083320227902787493777891500744298051909553878596756164314374680217141066672029882665872616171147753045202310550329017420764137638993450679658027518838359629613190878304894132048633866737256753831865102783406041770348775122680520151264971080998641370417638827734852447247409915779354919015593780990575027302432007410019577148960265217236355508943551939005305328436238764053423117544683659719720838442523373262185980029218055027302921083978462353625925892380523684660401508793220198170036690353036543620547457552496580056843746032616586864725392753140567758057939456049285709243201446267932718240748222449358553148441423300688895318412610257710388673286673045657071450136328764359894408699052280705031408851834313138716698402070005050463203131144079107829308957669446641794860642196925172933510648863825097475497023611306828180033209954258222804800926669382420006209565770187660853462496737396631909723728404380686368219227285033646199981734271330328732417645240064417610363514098052647230991375735083735118600621915592152314673047667943086903076935495237150194122418073930650737615755905845693675857260816890927138837990142095859641232807502433100911505825859880078657962510000542660778819727775962142088669843081243110187434441698781522651417148021456145860607519077347241972976806273328658350439527694766528657291435035604033735478723895116780748039085547639911816777862489845852493914622006858112844192394613981771774640908545873479952686059034004304967971124577444385297797680393713047968232956262916804374331341730597105623961732995997506284550053167199711273182589201393175700339362409556166612865622837881422612706409163421932921878082118622265540535327513492520104267631113607504392282561282969459121906364327399344917470697028082064203726128132808766135527463670321249822436392145384369867025226656694478342300486035638929006771362635216502749353699859766308995072881914379789382474104330065962169772624328028466764278489482200829480377805535090701466994951680152424681098180158381333572925602101903882742735971908426544678704189545027259034622125891045521526262674300092246563283229169818462461375557810882678063695631112743223130290289514924351480120414039291093714310027039867428729751124909916728946040489821306051999880366816177715622355667306972756669142556221385782487120214765250553229835284896181657758164282966757973732754642891010951380398893510710412779317366050297370735881042376954558405849402562910038182406254102492179570334491190034642770941920359812501220343305841414813742872386714521178255955722842151036854888551282191573879351793836086175508055612966635579085535524369841788876838011059175027713186389084730930652975526220226144756378430927047110262798388167604080154172416917931090004820719651607526463236292639998845210690084838469807397622304464546393652450344950808692342228883090657662167710454175250304812882147167001216954735444725960457244150335808809772615147890045374039734790400801150171536007545077919230178927743043824076486279924940320925151955015481099373242472483559080670948569621057589416316256707614217019895312938053749648035329129668234419381684384977799373423600586090449752436071601171617434550549123391403013599282069909457862442244159157478190849190975190792899905708181366208241918117756978144489044565282005559193726335448214066917444401754591460143147862399322070444319699142775930601130022122224126874512290507528917058994077916529188766471909927150512942235402760050956913948958056809648166665409760172271526912061531552938029224952430801686048078903949764738579809120369884225820114422550990403360780734728181256934990011556460831280816649340057737424630547525483479545324245098673470837772563667851079167689656506874141062287237964747778505503197838902969121798211785999313536389273705751647454198427496954053784285075892716570835691942689224159785264866065842019291683678797164711190362721089752027381034166933168323188381161378991567953442143025218035265712574972144614996976961996593069747753673597788454470161017519878177124230070614612653917655897970660013075580888990939944953394507087239261965083613347359652172383995260597305629738868587024273556170266868000981632211361035023150340920072583497726559765664006827191421332168222271914577853674174781978939303877030620434411894428054530059687008115350749006035266815128937691092318746049860337028901498609299120536224932028987129397501659093241600606277066839091442407149129049609301367680415148637426849029770416240454761469593573532751673813584932033184910364900148108287147347945248825028287226492395207084271838204166903140049564476950263380629702052958249409661625027532132182547377224083783909159696716785127329928210802657570826029027244382734833414162619185221566668761476560927764325948620264147439908847485273837345765573428206224864847444459059297967812989659689128128995168667231952989211874867530298709785837581839632977956553456414824605309973014517310052745805399838906961453592110277530551957237745078264585925730582633230650922940144572824678154014648354694854969065869987423574491905869710663492980678176815229810454570193453504287639084733677272602921193488899221058239125466237350266252703376303499338477328693312104843294705913947159202093657830084380412381515650398116280448309248239999502561253990492538670698222800086464947498289922726266948235054204222467379233212973511962868258937338268824813377859698269113787015274939765217552874979372873045889000423151898009341125729381414154588086608349459510219088255439866581971141869000467894550001215422806494270006852043310224990887901027686883993120567624711166700664779978842933175426607004554474633154860352094293743464931067389319161065841562820071096389333524145660116211791405609784565015293730840186851617632988181160827561193844560662796919867915593999564682512755947436192495494791938047464973154523423134566732711295860710725175375291841022385257920000651433307355753661148882837696987873318449041530548285454675469632956250496609282640861349224099250562951822178935648042932105286644316622753031815288046047013715727779473041223998227557727442216328258577094249564866079224304895758926886669996338583651272269923075146565679344055277970813422272965531167301991336058319899529805452160516372425501068625593473621023980467273626282464668905785340564880480073572210801312832520344505851502108728586864921973479069232064853168672512713438350707160563074718977536766947074536568794677384975816848624956838224483925921964809842913350507330344299533197131822810101817756301550749522188179979126798621052888668495232404128476738843059953091066341291839991249725170303769763389620303603254788299614025194366365626818700501064615235479406721231412802724681759227922783742741567677520957345021150686643581700558509437747922246648816020996144438105025457771028780682514680348751746774484435217192251049542957580253924756488118925501141821379531263545779440458847284513691974490722243565700733130325436260909417057485991602480723266464171649918957224387124609333088780358938904796254859367562273277093394824417338150624800752334622894774230211353298188796891872160920525121741616383559624918238047755298484290330869691108341558292036294640275644810315152759239605158476342355889146534757144968343649017821504460221004885637025411535476636447276382365434871179159487263972728597026804957821577805876498478575502637669054163180916961209181147926237431835535950031620213460584059500998376628895063691363389234914533942455023130533549747278262061389019737669452688752362421217739026163571632290882880158841711816922591397846057799714161561712203781183076376628173174909506632248299343188141164843120975786114178443503106364702344405007352580148341867320048313110187530942237378904958371684409922753091262238491106246538379589518083834425976062247821960616446562177349440709420435104899075135612857148878076673276403673346005790412420510393070878375513565269046393216276752346441720781746351624704148577434112000914150346099920034437589556314071320055183951588163395042287454259424123186957486546221479938517857271402155472625548099956706974734568071237436283370562018765495149204523724848780179760406781295033003226033207068793639574462713175546765646869084870907058736777264396364470831009183068182975153320159662530810774393673239694947021311029711727721647035987797903426739778360280189156365234483098124648646499777670305718421962995610927821643182886102307592084624151142801296009636175323466110713812813506289442083734839067323161303506365806673985572534196377762495276755451350978047384816372704122999534265744331434463950473204308712918277424320262833200085224961408705619709390798767462232931511591555054453502909812548982794196323087752580897296673573436618604459016042909462421136349200583824314264488703501380046376740659554521369226054719458204564372234039655793308187034233574905107128751816940241822787192335940896706284252202010478711414246979027745549110455546236882395309054230945979548196387588456976732229430380769829755813274228268415023529972188466569360535466078076096886737250818654163469976510652903471119109257267197830098614233837768349730166376774367667219544074715992194388491473929853357179501184465549770591494267464083984318577434196277288639400684926132625954866075018063196736626255200851649082802759359769980896704181926328177410794247208060475705356122033948688433613049296784256848344165342764866527652948042189729386413622549828145041775963632255550408511130169522901595967035337316230292230746470073944053760326365304895154460031581112506525079412381400343011471327590766642545049521584338683832089539047713664706664635863527713345084854345418286670323408043387447115809133744964922567107714311013260657157277022993054555061756680821457248433015176843385524470269252946428162262437043129576776077710761719387250346261024820850747808063710362877640529442738254296235517426833649838583648273938804859623630661708621565480203211845532034907930280181429557782491518474062362888104720813972654106443182957034537068890078504800435009539515460010155137433855847972358354201634497499990388893072434833846914216035457786740213911263375972594385849794937277531043027276143604742081297880060481598890888789238702567708307210624389800814849486885931600206762790853654223615870418143776231758398449025360391172009670194291920894306078314232391486200333648965360271230280018908007868780331231474353054374094925985901581271679600572801246734474782094245166590340228129960361571602650542672957841732525043291312888889477133382276908448572099971015276475397483220794777945214951840262781340050992629962493406315784153989898075412514257729929339809814173094738326048532536019823988924919168377502865945314353569885214114093045969155570482855235340187418036510989940157182603992197871518421961103368756346313462056374834679835506220898083259721157791652043986711846406881487689410566831864172089349401699306581971079640292039330284627374192999838895934452160925073081116671757514462382588587216464268015648509008691975860798121039712549505149873833943608899060795893555243141426319001509814225552768584365059188774904615867142393167109587332105054304333845347555706679571288181214604314301019056950210296397154866001296898518949858985546934220015421427637286714646707632941483400624729959482014215235178915870902422934200631278143796060599098471332079089134740106113074716339488570808899610618305471106571803281209601012648546484003000808188047601687741564502491442536539849192653566053122680636308843873393683057866222853873687659028893396012367101325276374367457280152118740597481989171979689499357677812789085310999421689542386596007771418450232722993922235318743784139697288524644125344146880980327071693872913930273351313295561474038417964114155994272519120207925917589111869403657781694354009427272685054035340981560058463807233746375836088769134271448538284666651249368384965766253137352904230296221858978534780344172194994828753619380034524624581435456558812113055859332367803066424760992832719479020728069752859767685502388032177293117622911731388526076878032017081604311888733366114836316786764094308446167666841366725279488442064922721321026207314584222789846240001385658722961766496516196805383728888448014362902428295303619017136052738612731949838423124674323487008012569870775159399243661937736192290480049773271955481379584253292455988211909732796504421964092600364729666057399222421644873103580502366322742094980838589980704415458726483596625407437970254245164805789390561259646447733680026180617570083640584878235605595211024707481902602235164670722025315018292889669778129204610935613018854384416899986816116105253437169391857614744066584153904012080362781252411061893156510637423922377354567902220008880736254888583867420887843013221413146218028414865176063478675491810021831187461859073597693548495788294184827571631131744900268965313682924933735137951513420548036351492226001098250256026921172705038357456734359055914432634549562590608047174772986209776021091308488474053428588570069384516206676283524060843191942968843898004539205834982558774405603592673304543748675266399539072868982867476627161635540045729231279237221929614710623452134413806276574377620537198333916366930483810849552907374894472489720801972088621636440080847577766077924992045907263527265880815377273658830421517762631357891975602210925697717892925533074675471102108128777673026089021944701310316448387455612712050008518340262483433071517339811679647659281661465750740840739873238425299826100934185036151567656455924046074637753265276082097830928036019367447333466238735813696962273988960700775525105813849679859403554152080850305340440686807940476541868711108517519698263057705364586128744322279870433667770207025342518944065996839021170236574747276959102466729987154853384077503374001239325135790241030928839199668701988545190191922487026264253719409916662270664676394413701420588948451481473656586919293910687432592375447187255614660461679857381197137640186104099384170605641174813620833519491368913280318890530350090277262785713211444680640642833658077165995529140531620425322092136102029348677840732068757244231037270713422070785858276472228033698019983327001952869254209209255579314746925388841402467399765580047045840032974574714524054881377758559803121706619713092814780010764474493210945057364001330031249762593421192295193716401232508726998093574321189184377254291585258650836532486216582647699958894407182781892360672670944270385873569814939856952435894623219048715035239806056533786744982344788875733217217021628469287456958154599824559055471181264384965230534893169254470957483182013578603675314518382742761316727911695632440447621679064389895942360773914044471669678194867680480723099890980039882047294005610719457546137340010414104614349232442347782576837627695660539245420737316447461086057798069930157935693537306677753538220881368795324849591175730216742254933862650877615687046695037828519362962850547167628348917340090519636110850452060247965463417537163676643694019385689028680018257837402137387745133246540979452476720766720164538896567273726349307952345327961441731462471337172063245429535439679057068159513971472721871284071508138765911921547832798826776971955506501493009169564940305007612100560559383271809235615613301518758911546775429380718684282700549424460553058065859999471828956158823434045830349823400393337574034105472514954507935832699169317977503743609406468653825504461327545727254847631894156043951140114371417975240373985224659253801348174465222829880275176661994548095326227897791292502902742843646551240406833804346446631032889891830790170646402193353082698577247734209775079946646210838900088659701439487009475564073296381606275425707398960615765411925866269587827156512044898523956014627077727915974457730949367001797867156648397933778729648254244860182480763578494999369110501683290928761820922791659209922447191136816476110621165187090456288550981828619838454156877623657415914959698832195510032235980162675429228122171222019117045403302050824957797522894126686166358216160744974351849864416055626480640250313868229242753491614127832184945959539075067674096233833721037211278698228035421405399292801751726597868718870015438610647478434765616187713968796457257064029096539976828711016842616865527516121560841335417943679400005984674385869437743807772983631259764505700219112096744551506900813231999188117747270185740540495902724405085091321636586203146222131782211378039104847740667004215348457666271719807714502450621425917336457743014043013479627329031417896448392132554679136908696805716464947773082005077046121248867003188810821615841162297300848189716650030471855571206827277142638513421104638556940009967535431972090648563862883695025987886081355480173120332349568486525838268487622548893308432529073386810557124026192233148349869798121388802283400473492728282354764984388198403962727338360504148254910291306520129147744447023623823465246360624870368264179671213792837380373420487850385160135799550402594539185297411218678373617301958036082391542521169653013946386430614666626999098110308482946596920314893328467289619066645407646748884272099194100860468228373078623717412867091157125369097338923968897575120817513132118001465758612980859200813604135802712164173680237888206341615287691710382226681239379360011224519924717919411241420894629260712621106679167658039179094363775061547131655307530287827264428534282089620304052048929770711350623550939969234948850307844602335511273211585437629428804488188324215790229453710995230153218096465837958167153117808825321349241429550110317907830056028386281752272791471480270361058296765148875830303790898585249772677207373752841305046066415956884078348496083353701700318178381494886703231093089679379157269606687504298687048842084427603949434334905387644498164602460292399619024674110927950231124059496126765556608186508211822780221352902898450248898457140592017431289891030611105450818900952074041676250492069242466120678751191115836584058733616110582150100999764864579181096294418015591555815897161250415285614032750779819323422823402071799842445799912510943194235582433086380019063730223783912472937380850420373222398360730291491135711482188034317686889344175431300748729656949768956819743316391397025697090273314063597458687727773831847629215838238295642892479539268676577583815710289256903446246281753614138676420429212576014225434154905258518020636003328190164123248376399488734308378422973322946933113035997792429923687104175989470505999129684282735595925483803898330021058006709882297437049109246284605656140267503722016640949312370662872409518714835956903853604483681182255123140679312572421872535700939000969856655911871955276893324564102642338357729703740107438294571823541408454101859706405379612734591855603555028750425566263156548666298173948218349197944607267374773662508190831789737920774445360050861506973758414059261482210788698631824099283007630709022307395628638233295323549334718297769715804505292859922807462647577716391145762090643982101039701768695284516666308739206889207082604163742158393365663532586704026532297827429068013630797391331466638672919148722521951926246823041603241925995235071383933957931180766830496960263990611214798253919617333462451086400221807708267022317753614202099651271306126141435829003832498198812149232147616239954128817680283370922320668259366222266707899500201048654743572525543788488367357331507332826146424014564569874524928285235305231985671291551558936940076461843222676271876084120258220884461687595059729775502022979281772376792744698559162872362320628802504629093423119261251406200081090963692417241673938959172080689091737559286529540768318603101731869765155781745840230897162003752266338627500906177085864219776254106734112755834464976363509124564641685915757631367076842025453393972989121993444565793548559647004810905749582423734013530706405797423834662446019420808319527285583992710005748654832204413973946949383912145262394739351296992315497437110240701531006367956306078326419268969173035613281523113119297240964245079904375424564279068367520522347577297160248316296455021156100519660791983092525376244418331522877600052366922649811722718094663515048146465063067599551833076842266780641815338154393473951774909923125457414572804381977128707991094446546604850172212168484709689039190500226845540726819102772220058770419840020947360229686631208690552824986949591669697518554794896973587662250642157119232499595380062063066611662939763099046018896841298962939922198143409151622583343490060587930073220309896839742124932145946366917736845526767460338014252446175337851625673688513865947351419236952349640345572426335926263393274708817515276007481709655834498289622805784531996180888423686423752775355718673709836563273456181764420432666552035203502625041454100974839593005344263169708168464709394573481400711318186405497708986313818699875974213924079363692620372037183602259908585179235329234364772636710847929518800311547685339931647071272765467609147808853285074030718941129958002143734414816689640119489536170538879911681346627880319244142441298721950376141108909340792290326581091417486012520215682663181268713454500273067134256887944337652824733847284482544495699695629018511019252744260192463920341837900190235112978440742368609671008405613946160528218597295925827117625564298651414743786164812710510546602113231676609022341597390404323225305884742695453532820851966011461659480323334159772065111871601014563506162158823562409420468375188987269716458648102416937024848165861848781866612914481893738715936410896913259127380123953740872184147112507267589998270717018282415728372285143891122861185794706801391439594196504940614187752874994084188016015029224784152016051756905375530171701689926767272104496577484729852622026063280599159310244959127310404655589460902327104291407138664264343354608570017129022341205392280980999345807540182511381663292788223202774130414585601641083439680992589475755729596768037601735409400466338539128628527146156337982479857791999034295421399454085573816505902724947053640721421782176932949141078284012536849011535962448446615260515889051034226141104717784913988579647835229645114467295849182131176980813395017985833939045036120516791872295982032575743880634090908816381981799148893771113932891733768151690782002937470217829351195034901819501110009355391465181702496978236569771421444357560819195739561705736189582294347385734701037525207612087797751116282428430452078658655642449093597160205276423536105123231454393038868385518875670470050773910289691330395399134055912313546524879039599552437901937885851873911334269071109189638728690136924669445513340956698001147885866874653577367386632403742618231867290200001713103231155663645703873254541617456914943630750912889844660345020340261979772530939726533667928568530452942608380535682539404921282275500891360511537248313469649660345414638731412949183830325928970793382886251460025026715148462977918225118668933894451458227264226925530582584596672183823262529858076891038808568154511935906042082867499980218699158617959336701521341165443137140865433652474761468656887976964786456336641400932284988939294685236389541133183125237234071778121250176351294225233408065317375916400106560213292180629575840089101209370490224674426076347552834205647877598148764566835925513620554529837317031978245373441225233404433789344561573596934772335095672881418322311125415582405547011463750542788484583235284759274545172313449465028401135152770201395164056116963856951115821330618498424257266807207212190621495599873847240905988234532730778774093926923318511581052576123709638758447815833516180541410662951347063041911657881220889071391651002400114838582678966941042985984125601077534404057506892268562480041414848313320254625755202398906770898994040438673951286335471784604627391539692315448540195287660507537379793665660202683843105599951472069599933093434015265504162120166951858911387668035724647075518358829928667647030041009065856348992706924813334754447029013225553489844082225458235676786799414473227665492526780672069685794652312258907085557909674788942956494033303436598557795452035843089642560192620282993010424947821303333471874845401679727418348662841291110629561700601278765036618727331358491806041893136327749597569193161128152587326640154824550609885921700174807144498449872998585658954587440288208158537326058380049163016715239999476387468515846448337143183825780743057974461021494439224931017356823768526509278934701295208479436128119986612512617615510708654780373580909000972631207813197532015127049725001795640658970781173124516505841352317730945867768074480923767102499317420359679753766864499632833714826435117551275529726148819594203723793294049296983141376110642032507122035888078608790041162887978175822897112479796870096806117969119978875945903301072800994493203396791868382027859914568565814463734466149139978212774849439988503155929918372151827402612866812069153555265671748822994675453326383133219539515959009885434166877449373146751898680175065090696856106230183677677812585545967981880303137943600330118677788314601868508095580869691650231298720185705430535278654942094881410019717506919784617206266777321224712341473274870517248800288270385248219129444041762219830027858814395847584617799067876222532291534766536285701174847578213115042749157335616954339004051860097883170511564596410608351845047067023256805527414319054760965129215922150856036312809471316036582186371675084589909423460244864321590511219212480532516762626936378503919752295049892637893540329614339818258327946728201466257998978676570538117898104608310073674130922497282243049068682094754986970354184735327789263699160681232192740093301585251452153949163030336545382734436134463014143143097828818450778794106079374922624303214822998065543275938284601938031785077500733337765043135772350266893253155674192972680232450689159445903420053208499735264524812175623629390302068798997699556904795378769345287981366161072677297325189558381854057031162155958881256965566382120846731440640593569917345108462989967417849989901544511809612373792059336497821201940194552403322393384778089081402334329538229426174398861755371642846779639732347411514145087375432562113256496098088931892571834979898527151029797353479155567410733439651670181047172280144062918676753779268540860925318176952220339579513757623294482387860716024316658965149944978614751827144549322696546515285157861205099565877793044670615790250835370642016208141162787180333078329762264012304299905994973268955818782781280619327366115490107079035325941997202963800705772671979956833391540143782643389149113429862416951291657376373636110158131765767631409665737163809465754841066213400006479485133875019046400465102767413225166092851574159480784022580061373208566089573013535404664937779897779888643119924274033717511926803258828424623928971719654823413762677442384124553417960802912362930161110531018897219939025282320455929295204727281778595459526900122984044155273940315398464102751924878801770633893173637881324705787702451405813526608620686484063996047136426227285120940619643456926362185899113428368050452739229581520619277584238617382391770710287923684772212830652872024352794547373770390875231124809261512231053032625127347022125667169454778027111966072275062937956248501310459032335260419301600171551041049614586903875782606253500834174738725100048488894317461826486859920489266289496869254266215971562355894044221872662651184172741125582977332795192233463434720305906589022810083065968172730520931915785533692867724701263390433558991181094009852441082925088736650606316480839514073482969501413435689498236275737824756838804389103838865440960299488156879411525644582700536519070367334464870491362099827451916400248911664472842294294534495687467339787845573546643893242432162095350612863796524877591221670684588490216951228508590776461939857560741546910327574223036586814107768878243709672450091977728840890578264036089122647014440361759523643821830228404841106812878269924186398980329709292473797102137434715263165289830078591747526113405730934067247555914501578104775783098099188584268650732578188615412444094476914711642891976140990959208840905076468829925817816617698897074312157494413142286940863579717171118327224833581779267909019229191664453788426622997378772220365938210153030007286139859428572969688495857731523104854022630814664310591884168452068371521824219881218686588302406323975387385032022953478986759327936827669320128724820400464436202187806893712440698058007152016987966946200257520650917194835149271569872186389356533739358879905956566532532746137364595963338706785407108221952409690689067944373296946271315449192452905232703083734752538657090213535402300363413126475450447223077806623389310034031622179561276034931788829511845367036498949433015315007273039951077169499574787719864912356629659315537627047187745020026109119783467835825225962893768626636145713126181219669356813471762614659299268683079850118456701906730571771151925349935936934344405061805050297756217149402445598344336930664104745978644179399845310922253914006253052256211780442518458799586292589660768795538998696847223999081099670811346403951954336677256377690060052032596264559160139092704602048512762266654866441891100083241978660335944644064467641021196498558027045938211767714131242101076108483348431140806681918796404813900595270383383936472242509831648447527446621335711995779722234973288875993301316922523055651481887070791280581124283111466327330557707692498168936334948462097062396354231124386277470348269039849107586383602954001827267600568805890921700396940179189137213295843630089895143275499335800297512073519256582011631810901136474255865027875167876452773593841140963079116624629290881525979743049953689868576162431956642267411685635736420195997578014408953309430019098893108156436369319223354667235165514024819236856156628694936936260510194911703473636213818937982965801028299898919207277106930742534178720318762870658193599293412784533423190443902281658984235170309947891853086633521345008854139126979828812039929666048769195888711008100476685742758689978973361473904883833174586683425406394518157465055250489306539158066743153505363491865932701621778805584844424550662832978113171104161809250930926537031968587927769971586695380857279378934798277832839092701859459612199418722246072770319688141567082087196930941049482314123573717771363558992981270421423382042310682812568280814014214826664264138693247052831145389157157651197022210533012765726356208463629150834076899545593193583435193754191192491015020553962871504925376769158031777660586006489483480783818710217103442235923899917712165460884055049520272307106070769912489098276096489416150590724596975791537186619880154147611144662832526326390506268082497970816501161779084116157216783045365435754856295219906264889756110227848847495498207054282354480241462427273307069702432796222457173761000643892469495133999806676272863696034784641959929846739401854259178183126257804658345677708522199266895891128722034952120979245377001280460183382270279131104774307317703370365921050162527181979396614527529943766348646414038035938346364584255280463640650674186937722065186808801625717017957922540981311749526220791344568512018377514861479315905962417145394696675398861178090648545237736930222099486828638044915663443913481105473681959673456123949146190939977935879871828264164261913394883259930140203527500332056329056112816280408945148117700677862330843144583041886302507867852031576642963998439489563941137154145479208366838972484791392136976475069710497598856186737335041970655849672302531381025306572417760880889041496592133415209996051868873457891079683865946807955656296651909389115006957910108048212528688418443573692941122563486237383414504198364741283699469006077774793283702832950075266783063279840657481878625094394005320092293320272597200619406079441771965350004770227316389784106251852930370614641440763066330842141481903407943578419159111858559190669562603934933904466062448769885167448959857054497467236886749992999507277613735956503933407387464629891524202128079596975373860088243949131688923641680827796468203551808300183805665606540484458876202474328840199619130099787597778148822721046373539982217772936556507967785868864197075033452104642861887196717521360513962607693953814441212516082244062252807196390963161526242274927043955183260540468381077709762170250423097777898842641887455514547628764310348244912061854689760632404682162837307685694827956487025414997091034308724338929716527256786494859834171972387714124071719449719906888671845492951229366202237400850750978061774042056594085719953335422422143322493040202434960673834847227843132876810985934115558575673718590386453920896013548049810352833082634146905532758449269673930018364609078732212284054310430965907730712197998601444178474493381097200709216569121459524448454751654891558615353792998730745062612525345348289499115270012569597998468882986013158416216219872900882715260623487642133035846620769627089828296338807646382389647560236745809052994672261745570331799550239609491951206903590657184698835704560532103854434035505148237371300455632718751190246308896846867373270390399978582340411062889468236342651833172178798707927487736545979798301535663677493156210639555085343307408170431609764141419560245886243206166542725497985153508533461382583376076970222206696401952482424745811818783115036871574509970806509504495844126044259907847127362851620989117696028527365297112213897273256518355032537489362477085187243539841277876741621225697702468491945574670005653687955272457327250616510185988674119284398154878871152153238270840311235001330349337749869540920233952573216745144139194728813944936990745914900681268096817015451777918380936188240831093851341449244014490513088605267574364150849366198662262463790735669101091232566965998775734020642162543646038861114165734830590747006279457312439298448971147291265050148110936460615140199733372281056179024470147440641738405290621795716141884432145034866887770061836800274092981506968869323613155377003790307487205209273567839811888900283963736060918867726420206647447913637539529409962904867644347622871593969116843875325651349847380649142606627143353516622696459535813025583546418275718434483792990686853137027143253431672828380826479337145018238721910310375887345859250194038393292624851951565297041014823889335153821054190502287204939425900849252033991476134177518841122065065217677776909185893653218959772417201234439207036049889791882414794542382367480332619209423552287459278381335663292322549169705432782687070121222594314527726046979419922402797635764832495981547959052438771893690715294029576087227892264098025248378567101059953860671822583762720204033990839873944938752853158126175387168211815178416743588137341644976458435184642363478705195132292153805538458959901690620799397793784686052822366056842247621191060888771447873308688625092881686929402071757885381700139394342808776450275050460321358282304046738014704925751075350981735928735615641571791037608915670203555793231558535344628082082837038821425440589720816651080182261139747348505510061569746703007936878995386230342072264933403566033950160718964481195675920578996736989731005237356834387415052737628534200455024098828883306218033242148616994738754926294478266263813178009354614640119526791452935732714232339164845246879526036104285303673708236961926429550106859832551445368163256598810631955523081142571744368073020062726653913759521609469843310935289386510989336280044711891469006717192362299858435401909380877775026507788427868233075151695080409392592949406092761921648451894057628521765801951560675545207493019824901741426616428321708791073858048326677219671262441120554030156371724931759825474039158716317306643827436200355790088297642410663941628511916298776686532160760777545793390532447578923749716437255152668517007229944991348007520971139529902619583915033061110809408944599379223433743102664341876926950997405749590449879059609121424704232157634821307825891896406381429268146872932379921896692550356945367759830184135215747933835273255024904840448062314099822367133343083914037131456974286296479774929784073939663422329097137357929987117656220257608909388159623355836474690765236098861269538819050473350463864080342292866093322134438924740002241504002807599306800172640053425138307254283799816317487021593901305319609043171484387226976633799071416654922481294415607634294217211194040940629841995156599666373538965403882111712043391179626119643055592050395990015484637225568105280204723348344566170106186259238149340562005791295503265024330388577519811538057520010403732970398889971343763297843549492989571456716891101888104036124527301878799759068601047265355804291792772463776048273623687181437083270008440975097469206088012031463115824160820291169942273544440268418484191811632437829570599503458558073600804642231717509474978960762233730043094805179189731550249725594803356939905082250710026686420948245774150394820726555724751070390707339353359253666222923302059549377846372456780641465354934905614971025488288528332907478401560922938157641799965412969390797360776475273629768541381970857316302064828200742105885673139872261855934632559565288511008761656409302619634089392119683707000678663183648034620536387866060967652081954946839493085540568844796590940412117482245550333495460983290867269379559012662484665563882982360817363760302648418130808669163817730123310305625628397849009367286873693628539481198717076887934849708423090108291319086375588978809607999375669191790532401792745548848313328003445188315053497693351340731212406677577120483504124133329163822974037081154919520207802098451345525811137204525480089283948567977631152309190304448199457681145742212912657219022380007177023616479031457068159601297487727744260686928195079551323800250422363725994428492492760672442137730599977604016404325008359071782458424084086442791218075418448787643779916510908016205157570030296243898884325701716468275073961560044144395216074080179758379659315207109642488529766211839403229107592032203498577550896872995756559931442562484174525788582986919005116083473516943729963454227385789808902026178113996347815475880230860094173395685955952639214805279723158861584476641764682520694490850496521281333664437277843699215818661962253198731240108328427213699119836488071693808632298380275788611014727590551012873321369746440717422094623466573074221919690097155400885180644687508482867750408492302965528585748244915708011346035819137059466201044837312639234051635134166670997175258217952371944034285841792940578128648501535736751231171908015266933021831600654273841429199890990327482423003834621905951197976484687689845033363025863493130015737464949938831032066635555251027855598778956305223119757187066216282017795195498928462758865179005541697988801126294901686048340245192707243952333706525024588244417545450474628392809818554142576885064336341247253874843597856789874213849192903244544632263827489892674097692440190212478222519143010104818592247907788318617869009834211605876741633655079913860707749891130799695664036906920947899920932398083177890228883410515511263223662168365530255178797893452316180066084581196432371608093289643479638184739557766171674160313135079816985582780237954381671078823447721796721248439770771592029767594628408766539777891492617385811665731101926919367666998730471493722494562946879175219985939337993732986347527910915501266377683052883965414841373052636695628814395861372758133260932967862804473549724047046458428538709728154815186666080931303814117018018149001285487099548566355189386737280046710635587913965299590923597302349591299398307656259988933130754884156857564319079458364493952040160390656770861835404238758407238775732668484205516358669941432463797005338409908254872263034318090869511317941266228965754485199810273297860767952464722965551644743948699714598733520113341599956973653437061104731435727706190212520096071841711279071218807528652707905870795736635856072035354439430917263757563693976670492453195187265215374276052107161683834039186725520775448840608449900391464741387425616432396206026891155773646140658958652259164116060758742457148967524132390335557049586338973930699669661637831220062422515337417485630999710406072276360150434596929637666643274344391479105099788880726892223776878550050132392053267274747291705498230732688339068274916843747946313695528413249965788604652730017652273574068826617844624189235138817467588492961064133875786950507629399809120993831584128678922299147285523677980739919266647171714819970915798724250111468154480061541361020818543029067625412391637303299088980827453144227972690645437919595189115536595928272411726511739868547009110773046461870311010151741952349996512712508043434920430383017862269118062076578004076821474460725866344293058975000793910979842271052325865975118123796787530413234418830877808972391063648613030165157484708062172987719593416402817174565602491938363557391630997955648597820501116730423289201997044436346928427821893588645858587576905641144038448518019543217298687477874013425666339148299765623342912620467304440488478024678873273527309906837352656050129117118861399110821989585855102428180339769743377652755222018359673706051847393500379834040335080526669358338865410486702850392392702946815583219578619411424585919679746782918038002837111913151612038601797007921895740467510815752310450959131125711061292818951850581169532282770150171117911379419489824865404938230765991611898799649731737121340019022219494039415075614675586711900372214448536796847343957456525975844936521306606086812751583660306103906664053306668902006214079296132996509654066751518537705413165918813284632294755256995205664711520109064364758645601273480682642748293195543633276081134333319582880109731644191171534634583517341938081193652088810661288095479775185814765419026303571069016427701974871424270392588832286041976435605175969356547055263007265546318558839177571319538898315445399296186058091778489521464017457945694354479076065081690113482654450235832586748071377070918028578782216622857123450635149087746121229140083973097650667065909964305108563899998151178204186240401843382545242726046589321012522466923871682961175474290251980308810367488828846132453647438146272187269041399251219857780137882004514071252097697069501384219582879717755289687226005687855114566475507998760983706409249991116551768301684858055400765326858995639369197921246989351546219824415080300564563242748216956974738138499183142491413137874009011990001824055887127604354678534604581895812296463142509053656225351270513906571873705905044411829850228395235380143807880011256241661539923567071907302110430568641298836296431559263330482344961510915061713880781380222670915180969177068244715192738100826062523780572252632892894011866123261892595209181869154636393188348605538644331331411823161729681641362016415419510886130968251504134840771529671574990862333724861976299534855260574620872669445607981654011017550794606878675872064047014148021835441132932825741743563739157013581814783252257594694125743179907930273133635533309205416532010625866554886305297819126531721701661241936915961321761531469363238286563023154222747678734577789944889270107769165152800980532807833373200121958521817597286147233810623206849462830284407278032205548339412527450853124018474842293782387377293177320968619901609768265930404793770988445572671892026428344727176123344105952230609313856470922515773405685501567917480993038937161457169043375368273575072098238232184323544644863081532084910370841660957664795048658993968269269160489036274632188582119754170571610728123123097214137286226446397941462052840965310389464738033027562312838084307862390248130256221591988348523849807083708466291609176098534530080027497148850647597446067035719377329468384892877233958168283879652272320189041853252887713495497475505028176898192482979270170228055627428640264782688064495159211204474102112175112570231591768286107296476245246247697951152812870960135062071189976142846125997561399423617095984723044699018046072983255123792671558178151342896049263407483463530695996231690212244631781518269996259517789380924321363931595039182074929883221132774584695760091999498284240625560912979491787875126583834538003475614443008637990854130178030906556358542677536413963350481886113201592661225733199395119619561069042296054038517129553209860123216759141038488512747865089539872162685824696472988406825529893439135160513350451044521882894739457364475107684051185500664060523179664440992558814080389148682579151189490106084455201700916062457874346294080337161353813580723816510868735143056758380572411063854268674822930323606722737574174358301151527278735493811363447723918113897991372733342694373206515157592208566906750984179463065369632814627537931202772146667336447846623149869451862365463768464951533958344344941667115949546452744558742206162677610062395534182280978683225079643195584035990961876126579639684705155142489096140397578036090897418246436431842181265499355624790442313856410854934221351096795292655899158680639777504024255054014450531749336539866886236399768864340296432707659580411486468795857250732032358920759017509620819322799715381805580521310648525201273142601126246748464886535669964939625622313608338133591393084520637433036538286145640131351460593961666469749423646218403602062632655013381992621251589881135403616017154829450073831624819061748326850098082348574753914938113578790125055868566936883842533615391167857350126954613215345280385029283272991827982168789823496444741761189645834600509306826282664428456453652863896569864033074544609304624813637229947811053128940989310830536107657651583780862220968458621090053831199253375846893643806023928565429080281006492774374936189393538877001391840648092676278368829662344238036462671036490756713535187426655712624405689546397891492017888779526654883631364258190428817065929747558751458939935069069066812030375118573986289698823721245874180067214879309591027016654891061822049217526196477643944736785358730307558905769331403360330060455518907867275419442791168217878283838347420372142463993069820537921239261763124416544239739263420673084074592831458221792975668739731702686659581908060843379158577616902718698430321672605205444843856458925311406074381543468786161832614660830531867673686688626835753605839787368337829242943932808131294559727831467032470192488373738356060143591863636861487902385074768910745560648134207058087238649374445991938774216189643138660642049896420714141056084220664938218550198452067630835879603259879700236080870772257603721418525334322115335289519952367513241292385414346718100329132624123792441410377388837090719203210392539224635570241125425248482211545481572483920528172441640868768382209114630282399680350903292597097569269475386392612957478024915468106760908412293649352358889981923869222623228538772780311970401602673929494105259666646231131512517234756927176671780263316190726439085800512976557515713618755396994818073792875281414977451045848322694213784119792209904660381568850075888149413891210944839128420958865693615061318420245364173492361344415873720411574022875369047254367246371021575894677422077514912911627298615553433613487576706495739284678245374413374892784553712229646507797236957131893859573846268564307196317494872783607777941718348038519572374938841183822786756982379247966262547778837092835641269508495363018201225694388719266562529045295094427728592612387373378961896010526635100823521018225192363304022710725660073004633327014813504589387535605171560079260757979973072447163405296686588846401553720375833011730267792335690226060077049807105166717948485267711893666322883880701948070780218816222180583120863304828944047911584166703601918463259120655315983996711952444489791181510278128523517341497116314950241604544050064874301688954393901239587255404894545618773384364675214986350485992639885803756768948541129868947319077017715781052068590754631835201357378883912409926750648343901568663025295537283267856346747770678075096624035056195512607677211626331316962251571950444634132301619835213417084816795877261804726043128281437028928842043270766672105742963823929741217733978518033056993655619969344488215881017049807251076053552732112038947377699327039668552297170615976173183974132096728115039238324971478889286642158597473332562504114187121115459905712871441719478806051274208386012407571529386205629649845274240327195612472270184924096373231069182127103984941961493636372281499593981509389556926252353510372288806453691658008934831888729463885613876941140001315902548511817289453096491615950999791887366578089827539532399415075562038529051496325486818175003164050045938658194960814579862730033442158393257576543143983428903310341702120130169792550165438473505819647989158284365730054629796822119809278864998518474762886320397016749984683330368120744358541563492459783464184862734653034837187462452918667706263665308647843245856097889323828033223147255819820349486939383081459272120873167200729555879644260241555130444859566869314871762378949108674559410413823626119883409259409050357755561487702720132599785988462979233438919664054570209060902512607295849175322776441631395005673922184358703517409290743465795599400602072727504379847027587098429073504565146041807515013594665148842338079245479915601205296606543227717451987046084374700327975196554475943328750742000679955916511153750541283933790869938624396614527471709024725974086981259855940386517802859274051461239263756142017326396170990397560210510444789996378983176350316997918275614911557866006983569927245077517886789645512391575242875253494084054060936019271211693755458267043437736120244060328288047468072876766645088806883154629994163504195088702149751588048537663120342634117040527168554791231589848380621090271780111217181086242386119906713826308116034840766445959781781222966325718995734952992633171310162993751937939529591961596133572382853476992708202309894114918178549807820094617185270034575479031291762596138960832332602800249340068075630495074078768461341346943226529351138269293625554875460246955995787985599519032683000485374442040879203334110269921760895162859180930133482446030899219000822843069683038687928950859280776377671970365452769781707165439550901139414260200491159038331134323573124854062140470947824864128697783510965447241080626475758307584709916872485236597089820837301395184010819586674907786968715000897104946421874250492363918701438869390681105128754917518201520070649665813558686618643751610176188559214759523499670707053554092887613568491141360982804443100381694030664893388444833808101436346921866350626245718518905481516663444605078326912236057263308221779859285901622549385885573122947327649529685142364287957070212730903934506469117613628517286393926153424324007352451014348528421982090406186536420490789833811893378693361145995685366417384126824305040575739128060437531147391022963308001229822564518108702880966283088659939778200546045056479320418634473760861275808601936101358007616979415774264490549407368633196020799111501495164914243758137881479675041572539547484618821333354188081869947196772636615688181590773442320355407200690930731867403392108125739470751207147238927945583770646021594046397670066544901065583077708215360700128117856245302326654517740196397991231949157348201866927823793638136385679032251834183611730857967280138380982994074648076265157658903706308082775204182776176719758038864280485121888829844331071346138455834843890720400093754900252864690274175250359265454409798787411472701053990578570293068312898905735660957451205087849579027233003331102266867891558214460712780928975845454761578799722019922641577317200732207891193545201581341750018790882028093471698043915603443064303306964426719537127488271810649825665339507272994420387077038732615467191779779568990277292255426628153085786441864718608324872011936099814563800568054194036177201415254349184999464217912846729247850882749988444768036779729545066203299377669306887124499089088001319883108019780689630124280261694329193591442156526437801615640008881277031782189986949426478891355456939850345538047786610445027659394847290951093082216204842806409643916353160079462737930933415202223689690200254144936338869063668862609554185550217693054169127109219899973356363474844852167972726963806634836533098638648671814144145417814019869811008090092797442750774791960780283130803536018520875306384454087577403898099355461823128646849356112690077415115767767999194197974362426597221449624315954137033957146250146518418008189676586612700707752764099770259526967435942087561102439298644369332209017504479266058388994530729540858504092001464746008952414160306764985070448361167145704483290681115554936644200628278786495125124348487224212927137588626725023867616032616317490920201985603090877393897425383728283208269844326171909310410348601736324944309243942364528018886926344750593603747104524151893842064422144180004181210818761295719683448655060323417477924057294765027584543672712078807221191036849360059627784276187485229673977844294320087391269412792882285810337781058550650012331759095273889412088743377880921790864964493670280571723026331561594627554700453234334779952134625546790399852303627200639969166141618138285092312331432528139871530605620874167939449396231093522553041255941336567743919095040565895796886267288468421203986110118539755696926895276011602221502505175245601003876949718399504065880552976769129217533357119277973785176575809697368677309259158996992813408373971273359198315121131648532522152113182388198351280235821618899143806325702704428334345384270375491188588804230587074155984554020715153968728369469628764785332144097524824777523923581867316695338515035164782777838313909469955626657657415208183669018653696817133210949357863180705012497584296636741325578709442712268710784989280844812887282859077783007730323132135587784828969417892092915598198581300417563688276615627289127129379803381328398872795617752218156377663904586797376328517297973627829962799779611333681634029662941155904463129121747410254646467153124468624140370314261684721286059056382940895277215241151705736978873915864280152082141545862005403237256391935893068203771670191218634198861404736644486601334731216027370917628503191888884638842883706763758868731116019487117066302845331136876335968539077415970417443194032521747657825532436390372566794146723037545097698679143375368798539417428056477795494294926863301615202307086994981460229649474527040707302133718465540649182206211613218663802982029362020712762984829027638474437260439810327556000656210922834914902792347375470796026409252838151710615579730085112929930249115511506817216240174203241716198518247623459125877661047063501075303702613513923949363460482644812743499903223717954702205135629087516943178795582175767841236446194353765683100044961301973407737740721177878855689591271279603443475027834502319007315916004276853659625666427853414441471966691588109391808105579790748066386678144798668139613476573074656424081381376924643971931285564857632812836879683916124469063355797392333496024893969083474873807529093505418326376614336700859943787615244293932421006218759421343631418580493526969948385555442651249912971190794312885312321287760587361199847389139397067425836305302329874945163562367249484490614868690539244294967103838267845102658311871387307894458675365370775991061986278195261519490672684521130714170398686456497087767655058390955287028303948471314664232962985352181993964767762698669124478110397172204788792921574594812860303447642877157357465459177065441327655380199412848909655503271823789449325344140161036159801096353015262895251268101618595133396904020109562124842082051582702826504731803162650179699920721660106360880990829077425332379571452389085505997114243273747107505277829958605584477094067859180347548540167059421395354436254911050833443873801448061922746576985189889828810852092602515442356373333422473427985244323047243044283950877877530745263315239171659477156646294788323137774811706035795409010128830033568516115453786195514595728092920817403361330814201027262422942012019226868462433886205618434525668963370046497487323441439111217472618212483746903730696793005425695334783384529891933052037411558010110543490664348493908183409203805278824320138392250299389518703431989293365037333289060495239680038099645208537409556224153215272395739944595775809541818630344961969877522504450349842428514433905241600350247711074718504271567394600014354359398253930198348879696263763087275333695746931985552583045079197853816407309863816132586135758003025216629183416394866323736796892098424696241857173306207461507820277321927587284159040328513166116755575541884953459495132203248212597071949986247647474369949858929840145731521322452434750845821374120231005749710276217664201714104820249746478919339424051390166784823994279090216322728023563960160080335917571763401618142223815450431646755685784178213842405239957719124781558988133803420446399555398715473399189961135877008820343663876766936551033065339075424132809824569451574087170522052421794466008437813983307654923675057229858195340068414589712628539703227214023901136348840011615114095732991202296785056859792471540575393392789339772984876808435886458519011773127656566823138625172864209063388077004223187637051479894206575013074521167819630256462494215136209837764702644192127145960991961382622384877153847720964368767380734269077188114765852497899294247036772193920061314021674901049508876131863237621427939014545140896167535789014063186989705727556823540822769292226271172275777585047030123933258009498720614793166700535919369552346967713871040411699016804795763023793515446058946062580836588813555364681066546900072181892082840823680820925189421050701833289727094128300560056397080157007381928626012908553657597795133441348122616998442464514915412773939493196635569368007822399504322200404433673458387971775336837422440480076098258539583987614628316327777526532586607131858865014427193519949905610334582849233561953339856412287384894775843070271524730863951762589154841970785901745229800736329414564695506606813122884205780315310731407909454196334689501685545678468864545114163085990646506824660071210819979544617528619529565547631194778824328179513546148315593561832678553555961588358576802873996336895148596387325972560449009825590878857445030076340138381448200006038125457255878656255123695694846936208846967818257772893267600023134445078654016648881986348657392542363168467243541961057918246797361948108938816421831954213375709246101876651136142498316648383625443808850041955399333053483808064792533041703517983261519132263136723406544249561254352458386555852422267014771649960123944369675090117440326880213956100102626723903873343281048193851355856226917710359856302924744352141176542587743372675360948747506669859381472769978664649782393993663249576633050359272669708021681905740636896091818977681711107523993205936398950496121625408564339924683565486800457159109040996260471765357058795767097024473708414910104413973076851337717493818933958963085957404366599891395032770151639960321645749579873279559700250428947167719015179406310854200539243451506737326176660576250923039849469821873792940626031156952112855149994187932371581615284331249825256639482318703358493504532900069333688272814361071181639766200668472128919351331654760867356998122796970885958173699975113012279484592020187989099890994066375023141154036918081497921793806731686264317396460710031368198306801016114096428885979635217443553302664208600111462563595498229485896301046208245080474206217716834514188293343679018577403314144934969676174857976968375949142706248517424262560492602718859060658930505238217192638375610291421867574482814782530464845264881468916183659030923816717391029392894419980298560498530479512366985750209969681852835542028703341505468621354692843644331164120716348813971311675533064982356704596605420662143801148994891635876926030806132625889963158961039847778203632183572800801068442888197907227170590765267404769189358734548823385449003833653498045391163951226088967141614255183170960273433694649379089208173063814138113079770638142899407450368529674908021212241642662640808238586751006128802326161206911225630886220048087381865944088586304844112200667485106513270418167579124361660201427482664210832784021135329051063316726755248294733550862289319324385483621182264105329169509150883479222136522301623998450025445383098709453473652295243452548472707868973966909887019177306384697776727585929425471112339425695353389302864691846204604266804515392545898877466221938219543348492253801435642353946529610488254984479332548664691059031562750451516012977850112927753749336727840127537837724804736279968750601874110926277311291861679530637551376865550682659729974885896321080826822969966635647024884103695404250301352886128458414591011285831675029812985550582059524122200063381757540221856099959403158058375715409620670801497360981189247677633668692945455106734783669904750221141115646757642375829129223128221156149815824825617749739566625516880367487161378009036070697170892244784258180535044586754150269513159165917127941390954736974081219070754060047012440204024315248018559619522949115222722526920020602499679952886002497698522905848902828425836346725685506628369756410115240702633928048296995014012167354106531222136511991088853566735712845664200357349927450319361840600535457075157297170121435531340416917465710873230609165012579935484338042274722159116995396798681415610098871366100964522759272023657224555783340310107551696303373959476943343656587734759987124891287068307913902535102819969246948438484768092402753047893088264100867337821445432774442036104927053498251949368215168988316407318664812293609356294777249957522676253646207351388830172352852826318500065142887625382058607903008377223048399818052324364743379195640624233893675232903383579779853167008505559438934185556731276525940303310179081708451417900303982975549803705664857959247518148324247009319759509781176153894736097067938093693960184432803291743112658167894764912713872838332001594050426427548335815282824527564019873224817742365130133195186167520633729207355249721574194413634913211376877991214362309660549344167148163072321691641046116476267878583136933320395148086324581990587136780906531448775238154801854186459978076137521888254696553301282440134039406744118474793354883696367066500941209076218083759086002266604791956345130719392333970240845040701744537259510320401738465291553203696879540403875651502929300002860370375427131642039397021594526458580824804352229289528268556721775240147999649233963322072126339040505084058842711473437896511916083140384816299612794183170742875981907429758955245076276452810657475908316293827225675687218712093115713395719535665723393464011039199378953087023961691997751036294370593809491769775378526278021925245152447174018094793051020115583658824754208167247151011735762233825209176617905207455522094578828896365681160545421945421459684753723852330050211498403987446450708523110383896204814867168744747818952811819675908546956339261737004012834896896429372846755246781012700756483103289313304653551679200855313641420410748967215045130856403128134660670988163708960807841384924625764651946035561071371374546595696971626760236582687198159256194899528697034094222814099122748742992614490320730374259910153841517775312798944534510842096315168765859389801514011305542181519635370973888955438519141004583158815218316157766898916785238902350881176712281834490182822696237804314354605928707807523251035359399111511711599146894883664717661278296200292312383494898665269003689742544336300049722372985367948759919234657804425614510025370771053180492351714132205182364827765412903835357520110350542523315910242701998622901806087599067658999634725259423168348564361329250488712528491219047264068535216122635986593432610619386998529995353698739806442980696431403148836902237806291461860433398773171690984723161174449424275527859465966221802718583056119033114853061249819442837312863305701057215212785930395553514558053429347847384116030977726414608152378481286490627752465069974780346379581286230467025453200791745462807250361541941293115595990607453225191333767045470180558879031575541129742302511573566960021803505239203484149234295842951167073791745358193105552147632380207592154228576204058674459923060818929727719455956970045556203832393720172211042726986031276909477068377850807191576074546816347560481984289690256472657914498262878761631306104670833366949871287790333636002374033973875232903054902449633816343211277037278505265600111399400480757980008255665899468346148615198122641252065778557273403991031496597581305106016987256048297415126862922272241527649564815804273871413573534408052521236508599377657846579993945900789306467483206366109609965369955979496143421808857080127455930971813504995068129961386118726741002569266833043745764491663783389837227213101008440428561957115326329011194980241996239518226897141845546632994285125077687238466545463054518559654425728423337108503230758819530752180617944558983248345989785638949542342810978481537191228974146223834569546898132601016752286655441102084387197705305294334005988049381893253746691111499554443085163891225607123597268413476620806888726149215009947156188012176925175088642194437699092428592527832341301789868477075531506777558590665391132201021992844422048877369473273131884900320260243049430653965593077646915101008943326849584261041762575053005007779803588716499927504800085861489822698114713804919376911250301694095441801706490245079539009296850751660202078021479470090583463036533914053578355108260610652532410357084644518367609655122709134388756890559786373630688206406404459629417904306605638092694486640975951141072758606170963867103312307397474651373334248656418745115802169304189894543281894866057747768005166847827772710742266751289322352081560936513635175427642305418428090148668412591527536867044690443645847824537875782758976135459769356159277630960581734997058712995480868277400275872461558319429705202993541804156587271186662608226022413727168139897231013932918471918621587729763810808868317969448927007890689657775122804027179922711172493352663051617370163604939590324152701835951018936443673134219615367648758721673323001268766430109070016508489415015262064717900127220126382059034444135639632889726628627300219677139790502647485155031830197355926313836852928892147141795663057330488329638195294900773689283426557242514804870250481310842896218936355416742046869391193346900198864583760383722693400481297492802324405692927162960731365466485752595308827242343214111153541989382437916449746128918532583917568412053926899906952388063334014624856473692569078578718802457164560567822019410185733159160520267408433160589115868969342209647052978149952900505713655433407093206475186089775986247109850410661606888090004872800405634387115751284755398262814368287558786009924061642441573027714731124752018114221111669703754630223908035815786745024702216691884124921502143261744082822202362217457919949395309493042594630862061368987679843924192646787913330320171817380552271909320660246574497156727391400592257606599923370250026018940015023571228495251966930451910478098375501419171421601405115563767272742152246979747193389059838476332473727978482122195114606459456294290340506842079060861017416124481990915692321278161441621206836912504581679985707161098543463246038320230220001410560561577057722897674187185493891490322631578617358126884089151937719956107608121173989604441357099227507174400152158887563690755260196294641380484678068555218285032633947634197060950212041775828782498552726335893526921235293571696211246460296782254495061687782355351452105006295132509052657543055969429821054932575793126788162833555141085829698190028566067171501223683253014084659552228297066336674668548518983054005400162146250009893703568422873712673214499745350104053441062480778301353696841436527102672153981616090036959670394358411420102320751829936994554409021428565759467921915251573334825909143395757311103810194656840022943354577886242787501308861589290028969929641753834810323176737072942418966144672556678725053956651067840725633712883340761187425039827574996673199969951009509348013293119734705924306989169877580112247940397947302185159074815087886951852825099974726375646794307465639297478152213678781148401388720155149385495121893443489967261325317463703978399247052287374744981982908843417518264210304061953155484942014516208222039644100562725609631851557899589253417944441749108349834536878263735581194384422711804548918949470907184154172908830698580651963694191467897043343540008680283403179528340698841299686934292036511313308994357553689431281184325121895677921081160742681471628952684733342508723673499439504308815236737723659699231533000840730117291840628968148525334196605946726959587590519936950323803296234074332887089714394209207676476324864697586393963081959341089672971571346966345365278176016713316046450082603342198955539770717721004985003466897696050776167441138700947126483294622453257451410561438190921277881031968470803046781258656876020983232762821149776262857898670500012638128013655390307829421100212536191314811591910896111804209685720133351258664498887765833293418174657163762408952502284632970984141927411176693501293276827720288570632212894734657863927867692655390997214346045732087955424571900762173042129097948319634975471339268691509950133289208480577065260646398579190869336236480340988229402084160747894707284675455878389541704183091890645936672288038860078794315603653538766697154553468382351125291285748245018287766211056044966193256547898052501819620259078514036783117062651640633470634159958648314360325835181286664586322922306768373381493137511104131926732019745567488334463334396834144280081617649480476802804687823294464793660038298298515175860844109983276594815270607626194093985799508110909741984670320160099511209634909524105363684821233803858798130677057755949351461192488216502372670121781816037018509986002300948466009763072040637937584871871314721708135761115842690925312994309877852347783527551602652143425739865995532810473503539500747160687095456277925389880691671995178422018843700290160933824106507211202358670346337431916025346459582882705398761681468153810883224355883322663759341868623859903374142080703460934515835659659023962413672203035206128336737133274488565404575592760180046307928256693807093500015935305871474622188939405666120937569294809286211589017607834945966179417771613663570295692745205909491802878059664851043087782089106126829896296878373745284435452679650528905070263286692189866273805969593797190283681516628198212463022949706668706708763683950910916793573359108836220964971210272838963088960169760760217752638377951371777068952242819722414315857878219875825997753544819826334605296693117086623563937284826101372239013121988041783953343753769647873247220993839477177875394682100874559678323071111360638652986168291972075235928401286015657633490292770707706395602311632158267608444902144424295345339129264962804813345782166436892583804930545603252309887426016408560291713210668421986525077522226092686128410856728373691438681158473812025330918529519228760834557041200249963079351146277572195790809858902467139141593699878896750162286136121407244977904833705413775476860585565587556448262661089236439474946320333805943485038353121753372379890691185582908758797539262283635706756052581423689815337022057319737533086877005704959165267588003941384978167259500902544958132940684370464015716063108362699934577506094840894097880254652098124536610504370360482384247111522874505958995335371013643530189180075065682579768821757482692725094429538554613592148167925429564628731161140946491363456705527384057737324619976269130655279348615747261564682265110876849749764493527196183796735339194581400149350491842578910890210240814614340276803604574284095315169815012558565487253059628802368181385242177658716303274052019037696021573798413563406644321255395542065199206477188238557954223565811752611595628532413785184067600889401563822242298927502319169683793781190549909914869395825173421806892755659691768411127073666190925362394741790547377242604647092253380472506784855515680270179982397718927709300767177063893626340779317951390549802282118025662989793509764563753945876746021629159523926009120702552452322355673534678909509457945731630681259108200258564530384566116010353320964095918546053310654228941874978036795193018770854891240978188634151377316257335662958256294142976827334792886136973703732101697815265370212919442304208775367565134093092704794474922251865177892477718611627655467282515898704065074848146622670326161615947850238497139898867315393690496612827084604853069521884428527606342233521191633161694240734068661509981943500533042684729475024361353335613061667181783190129246028688028019978524390070942512391982751295291162008228786321345243663003686144865351858233799063202126775287763777298443083224655023641484222836927989707090076493609004701658183414263578023760372337320661430070508985413274198616403516065364426613103949853680602343314533189079182513586598920942053482334458884666117062266840732291103819152785888536296538769158572011469070118093221652852122482178137449783769000053140947809333722726953170280926877981518485604524062787270127645075801626746227515266642725399669930896719113828182219689144284920495420946089330188455327069573065513436322886416449861270484263441314195404334422775380864456916936937997130260590281488625981674013669563817871033735113654433844289739944069971855909544432378115473047674358335980262154249408989916076894404983395656897849702707126776078736558631139477206830498042388897960000414337720582440916641489730129950532053377672522279592933994140135847570824067847804408042954695934311714752409043225285527100100028289629304603847864460348476514801747633227878462549982785618218842685987426835566133483404155553269282774728953972119511591294284188035494065702193014474636730035771918446799624307786017117293025036704103374054539209628991104578389099966101843641849328352134942212336774583596934661827654388398881657882130659088485612285016143366200317906943705289707801943869780851656597817725642245763505475010373215820995326906881650661688454246977886772625311319967200032772006858216471390369554726649050682346591379578681691890187487919656317896122998640665029238276915846182284810198053836007236314744587002531822452511791547547172646808587400975234601816598074221619348327318305023509305989456249627346548943293115391546287986135764320632660329195223866528211875562752199401602491786942761300792927469479573397037599480859122803460054460874181238524403708818268903360762123893727302018535644439170815450222752873181893542156228702431004543029830943774714684387382626007819329122991806735949614671081475151664215665241769460082000510912570510579006615420083934930108813431332912456747814944703063348661018372901318709770343889019594134824535318462101314563746934148550838361713647617068176629124997648535108688136273686634217822103064823228779837676986333128806465457728586678051132867039252955654787964611141653401968332267128638507677926937324774798252980160266173152908701102866966466859940645677489582787801930534900006585895844186213823912524765227755745775356503703534226338636669911778961901385434091059817884923466678514018106481111271413590911303590666505615056439050070259628788891699803019535521591285911510214685421019588939834552552818186830547945492420368816368678560102120152754614640031061311707203579241977999464208042789534471040920741881676341186081526538924333101653428590359478028234077052484128715031702393802336718827077168600019686642227973534780433195090428355812673613215092364813651003071293330472594151909872798818983320717462894419932443408734389427975410017122682626816945283333480953285626779560750571762153565787270347681545433012000978028043325911031739869561155667331845910355944102437905729450452037465479152675008978211218809203936877898482925127698049107798220143979993971588407773177851611696818468124169995599026254049263107914437930353707308959000065944187470019073101789016116185515955737607360633627200044666106356902767475562417705632099741924351385952199800997342881166747673331405740678032448081155258820626084783952994603231357954031185616373966765008581578886817395185824322298675560721582248840317370028533634350187019470825707667133195468424493122522497315090647590773227604086491003113586830666283860039377604526248490861213861356027814027612169622046290813945639429462982168200640560906405657681085546528651307927811888074987224354377475871428789449248516477422939029654638208669489475599987095291435520167100229075109383843209817137011282431209158303978073866465346942240792819593299616205470727498127324535136470032732473825227572867337994919934385534405016439639293855170185729355018648346157817473157362889739630689295082437018216021701881866926406917123778542295812026873124373230683797670400638228666440299969631707232061829397942345836068515274106587698974846575928883167177724458463724052231593256679054096105478606273702250546126014778951293871872599161730745180840361439484304050513983485076882061656144120080256432103659372729178130913454732143283751294672620800967456470435353335301813594874090717371850864733523125596904650645245391611385720690936715115790049918292981790455397014036235513103282442700516477253097207232864231966334120587153330660952571773934817406751568343790443570298201890228445544936667100823427417192618077208326854505270707390282002953415999202291211046214767986492288478174439682147896640113845009064555103283685399232880558440510104213256261851115569254684808359709349171693389466466320954305876708048291349259332024379413029245499136888011144334330411526220003576708897075623900573430126513531721745160623695970916963496781357191214426868255141741353253065475831190840100110649884904133231892385435499846026302056820285347676470326141607778670509478196396028330872015403455790805881033480454495200449720609712856310202018089652801485298670716541694106525237922888657289327230312127760495081265291213793265743587264668297851868571257610083002691735089429840134687175316923390321053946377871871930398731088340456084496295782062012143841040179380381859844900817801531637529322075903868096242854739167242671291977997733432267820365192697573978909011054192021039563764998468447379754157160247369952620879898049396310385219611346368611385770049964457350417504281417120957366535324521444273580388165130971078180437835448909990087192942146371862463160109992639880828264762126593900117181374744207632030953557578195629791161565837011993895557957601252412533782817203731258516121201571774796162193173732259134679955606632399169731309994714443522467989715263779046089368977286508498158770815326356112607326381722304915033094252875527722936135433123279718589968585154567560699666623110610043125393432258267270766895211342726729605483626007832955183612838602748164107618358271912900125131332908904887676450704364680865200772322352633146098214567304889996387846682382624193124402919368530506109224964118083443919218010448986753320495346900581654895761995445830960579376629638160711434588834381118348523948563336369586497474736036290177551127721480238223544947830792666745974309712270797510890265565672100806741677837835525329485636935966831012330727106869466746054102921707202434436802830927115187211881365773981454776360412194993230166262613722684376260257145768844132158568048299231515510379539983830970169069031992591178835785861228959395714754985080475542982558445093449323622976644746842459552751178891450766173883385736236863931643390060070642652432918098793299796631911047569661638472561357020375541025944917314974860381067361401015000470065362773207395271397039138380527557925857562451743515336750617725819282031672005220915968165716212822789629421276729625911377540675030336267509891395821284257786086807444841610022031786092307378016208575043870950819550106883111179982747203859874550263398763571022778471176859196645860698838985785266839599524802060418130408728397992611950653621431423205369547222553060830388884725128993785485371792561315774553828104578787333443268590313959233973049663136716955623081914485934970987340195257202612773770110881883555150607601129946161401229145869284055325491638401848275246194047116715011111676921266054457787979612189219527527038105670660526158391690289184309186726016976170087341167537935738047610414607430397386612857971307500417364127229901575717053261141783823982131303399899807030137269407016760338290641203561034806904840528836990966446360074826465223818003210393361773619908423378000098946882841625481649726190015694206317774322036355645617318458190848339492073645476722105966522089354431463110631488736797341419366497831669962789272512651167758985037991861094280382201739870911854708651140181020345920989078080414540733286816544013283975981617914295267728423371262310901997119376594494347920911789800138216484276350651036302836896294392849877165807190751859167909586830983622490468879738729927213477010773960453113022495314618332623676458218309628152294275752711835247433644405808160577038931521840290492702800608444399640535151230066947199708916607930128100823308241354924404956997238146457303792587736385596261502763886247128741475879365113042331456842980284422750075422074618370053534426727755969697689230809841616632831803541610175366507363917670723148466039474918742285781125584086353397079223509819482159538502695393465995485638594013270838917365471387724571711646189936165571682652962051152851191479687496781613571047393920721584733663596807881140946771174985856122291035214620918673433068638538215925519465616286600172955313980852209960375779959439176068364320958005179964143590834176885424235330369610703861416242625067190371361389723339344390520643775493387667779567538673123674731483468590094304335157150903137281109755644808489370587539877229225096243732183965493740511927713356992570433800786158339521548239734662698069598881763442734584372738178821733271597937613349573496484639844338654762731240622869685057095916532361434132889033374774088431154739385695416613152840274193623772347162055390030671215041960631055109840237645220226679574611902766886839021448796684790962754334347255602043756986004074253379665566228791381761380736933092775314469209378531857386361181443620360867593394505482123871776160845818924776435672393736233149151015372602796440207243259371503724911745508758640564450508145866403162911262178027139877455203444380041012448556395924479540552634423870673045437494456027270047181685199910666471580872212231751750559160098880536415601700516560194586214874856437783080696173376023461672874927781996672499016905099725236859404510580097241055685208167786843548884846516004607483737575362783121994069342270300679522363538370195221998765954215928365962345702464914147091361572379310843043513133940010284183296833363352557653280662787655751072045660788309224942310651995712693169607158586762051314866264004956869954452829759903586425776813945368894580683169967907449809919692147279886006945525994375129874038486499873908143310345396207832728682255903538151153231568591944572949579781854526818147666798477445362117662282842206092741398466274489563792245797653404088557585221488010566309436452300440083058594421640281054396850428124913250187000784859528106439339725642123639414266768005601727921213156904304067072495724359941852546762173477809788049574651002966750054542846480050767034033789292879755710488424253546348115107489582725772245824666237201125677672362528998896062487266741592543946368988637911184282092943104423105102392139170775631791046508180036801510304762001178448905912077693823988791761699184762639057885733865773994701582900460154206291134161551905330613322375019682966986883147548170249179432469345721196441726305177272917421303153596089901996141575310403945057296488623162988273610748380723660314329297245044837531565291346727285579271263479524388268030109514800259901036661333948798533046209642336752961320234464863264563666589129830342712243785020368208464251485217052854661136232484601320599373726894341335121903596694568521085407774154973103607682333574541377693246859409358100453396969612223244493578819776914999562812418370138827949708872680909513232033821170180091290821158966571463797829118679039414932795258135246339755686390369929142767760273076579413039905753523721696058155216653238116360784737649222828367355971250899600164081882410275572609561398812038367578430170441169767860506743202979943599999507272642226658053516255251186439854137938321557649597488816363211036589151744800166970122349517091816652289518998605647229952986787017657024756017734271177861411002893130796218860958728951677288043447926606803803675719778867586931005608690363140330649135711690859884600782328196302633736366809140228011433306793667984340505856486694307655508774494637984134084279364738942409861191654010908302391412292463717858223906207337073004938814383997803085558472728907553347245519024471519582644311431367888474243521413110578873639448833363287967400698773487143633817008867137062673791630013622861484503513772610445232034296943448551990805142784905612278910914696216083527980768803689086478106744121766107764075360459282593120506877265285293432404156707475887118657847060551707942962399599603922031604738556812359890987293888898023350946122966340133675430623208973893062992469605539109888221229207217798798785540999669637649617213790247135378675395310324131362417895459424199147174975425312445472367564526786147197995037626016057157298490974729652954396879028030668783058143114746403828631106270412606809075396648137893780855397374539870983347307215102735817188415890970269618289956596053523593545519246417717149092398569830714260398065595130388972304437805903792093047865331333486058333233896894341991833089026321860479164055430837514187889204642166346149499542547646012749038686460806410136199809639959784472013659226482050367754031713896767131739956911769655581356600433064881996919249675670817117669821205214749188893970725622765021999963978074029465580758872570673291522485868621160914447629562709771904505205167909779363626998600608360707315560263770030504425480032027961068951357220331537156696341959662254416895364253402294359585149415413705225712882686850811689735576655479380804114072184286795448526091969298834802869589153294348592393115008891471976542696118633007661368909494902530712027028850646226041403561096115839928353537672519348853708426559753765715645697080638093876826568815977492626619189126249377442246076343426649458070523904658913588004135146267770093563653573046603608567002603042616601676789449694093911055731694317032080225060484988164330604682614942529634031206156114057743052773828842854873623201462259775471158639489966450442389814614592904778842992126280546666144174111367993310913964212867107607792074920831863149393095593278895947100959670330626052938947168589127253074458450134234998821137128313025322016250770369856714581325472160076555830476516972962873017288174621112925101105364536542471028022688537749058967097652451281835417733859551535582754400595798263182443625928557909313212970157210835894635409822457920611355212651010956651348479589975878913232562792637809392327769480782649540740644634477056211073751241535558857098642794335494489403662934596949881889660822492984917215328052780449035194207863785527604627963257049883561912405330089903301354225066470431473534565599830860000451527773533583593165878156967505991251698266404430056033267212825862006702832327442736243035920521585062007014625501595200382157779413746768023440695194064969744109031523375053333646602395387426208983945516277739253664101379127947708437662834959734994281737150525016557170266447591773991405228190916562150296846584137556534854856821049487121292572168483929915941829075901016011489236634762788080962762182995487655221048839412821028195831599450626854278348171818406595131467384291625811973059569275677925490445592909152296327244156364090572165423455035822193413025329663777903272333659218632501254827496186229688979813027869455149642744499142583696240537960840512845121074083681510757946368673515424774792362450271600295408230693630184100963287879751958267994605471222237596481976997088398239564125242821667229131271391045695439678998989531780625318955320313969846175862526055457273248403191107840737144684677263640869367142869382067832160047295514045186005763356681117729560069972451768222336281657171152280095949598622958654432905803731314079153479362857770369351949988021604886657713910403965337080622325482792165907171631198425608130223201804743683804290532290256671115972442117949305434345951321287515736549128137383079551079330512342444275725117135084531665559746584865763881890011901119861143948556997220928693862596870695585645166277367756159663493909354771761570434407424408761660178140027737783905796330271532970868175782639780622421708142468089685188514763503669477999707388894188497761381214145318119964546114071029989651491267955629353648889468936918701590771543241478627033095569536378900551971078667641859141472011560020105233873433505398304913241439144862562651539497293699739916767720875854445982351554571892416163848100065331838971589122192824449021543700600812432610949694074659205302315376027570304241842685496762577219413551816032713317492775513589343666696542208702855457415266050907508889512834696113417478724998450370228607044322338393324149558579884707898626446265091055057984326045145779599739933345698094661665619777217036009422610615921160151287664821030072408459803139290882672743804301989918951589558788083779729547625663999269438076598073861712500564087559952830820455736361266947011086975094579841117083301183111945494215106157593100707840213822240314429383813808948905331111523585284760636807345285865126605543439461132342393895126934459756695027468083734625821794816335227151428739470794913541418466745275918938588271987151755818924283067165395362470393349052261266866524610736146166200738149006542052643544042927792165401400505404945292250370597781602496568481843437077836178932407971468338628610984728644121111876817300088676071104369940280745271448700787653096393415404590240525158119666995982491325583673247313591474134211254018440540271858211517257514016056713656452370855319411047826514459943100105920952866346340233498687679231947535685434858937957912981406333508148694380874710208261853764776229436250064104162056705813873796107797507339433152946546931119829563128339251253163456182743413415705759044147931924836101185741349495102328511300699826900493341727631001194109024633432842318073838008544448593429121858242366502206582280120813838780441999716598569992608971445224600076432498837320402041974011954034094604332167256136717711231778809134378754962146243050260378954716358244609235044041494965359453819400515199365888790217344412402023130123898500081989336879226944774755719683899590921690390935984613921023193613698185420083809079017645954271198580516323126354522333378510448921746693269061079230208768843471107815403222047782815101614382405425901240637400385849089783993765959658060693358455139405473592352788019124999375662035257563309087501461515882953392214951282566322133101455999435174372708604214790593616956111217239661630013588393862969282668867628925060064544449801746448256120119756263607211479908509443317540421538136121418095385234265751144208650562074750489116394025268898508185845056529898079587472323675061948166942343939968747454149074381780737391398937509995700654741228469795430194557312448959507979584108140419235055570183797462857034391737312260593672748595969208165509000968627759762617818233605151109447290077681638677906270032483943968410694054097767556514438731403706386605920302476871165047627793487895439991977176616768901787953670337371352929987970764397856129594180034642625437356355900283345700916519302001686036436508988047550859608433235363220030449263988800354082006018217804033198412328758124194909520240702801421019289570176296070911158234646510404528426931950137806491932372180052365161381082491353272311229994881119422350509606042026753166930524347969290956419280058637461229651940121048348058109609955669875221679234043996142491440979566274791447619829855787464720368474845888588621792806031607544360627825061339337773640475683588684089392448404383201047037266320009772648470657048588695097155299780591783157427036269896054371002913016208939059852464171502329835053316067145051936650349584759539788953023941325474249577190634041734354810547696730481636754466017276188647979185114461751817895304139696952230052270891871154751128774456899649244592469502117622989386054428159539926106108468760150710200838167645350805543119155380138710254280743802031468466678196539205031144294701503761035577783031382272795440691708820675262933585864336152800420591947222219922155013443502573167654266456036756871499345972725859755303512524946703441416798923904299022008337631421255652333567161276101908998120657875134880843844096504996091581735511094280802946782172899735944786193669199502209514636320858581814394550658800707467320985574626248125344812915436363924359722233999309742423754764565192558856372043886527799991826920769457440205221220498198728052221287576862278954445531900063613183461569104790332467611737662580918949470192532886745392675383374899938962502171374537663672671671282865433483475084340925971916428256299974941600077519685726812396990468271614366855558701525270212918450571320099964957509500463558148002780365541247890839785732784575489816377432603451288551461205420809556758476352748511624917737690798345680745019860473049869390810340559677906454537669889062779837817598422038566581164810398724598861458724165623710931600344022794809651692613087394940759221841319341687368780411285171099407670266412079685221122216052675423221332069881002417171180397206823488199530035096770941377975540302409903397739911650638475303310911470894522666139555268186586315933834517358184797595048174216248199368146646610109611516211687735531509550863425538223268599302894870624033725144930332416704168419828294289422174683080603993351524610750802154268514629910552673992546445324631774087637614780347189872823689667618917483711492207391186666122903780014049475330771343997020028598438544804270346266974328380957431345335136775139207229457351915293008466598270347114515403796522666664989613562114805599775685367060799909059849139087613055541039773903186116851460460732576063808433963546576202981126929218474977083153772004753553446111679054090879755833633517659700628592829782375325607479067208993416140062503442454897149237770079345040854984698864488508594473961136857104184459198418298683032727999718512199956399647449940356544463293190374873163955934802784315779189700424613152489890478459884448008674680480658790414920323801060472364497988791868100983533771471759817490511284916534509141950356711458173982190560447856933387427191946958790841085692812379198928757132009193863979887903794901033883175485005954224381289884616870352964430637496574822894400131055033266114283161531545267809458410848223987706959740146687534027745459842578095426482239003505157592812150165807779658277159627776164503396707787841738819360165990853054349906310278772632795314928302882609339780360053672081572133867457515291457442176897633321704655279058533516100878744091548069868418385494286218361675916963400480136595651731512239040114076576314605940503832174668819047539703424404887511921990634344985695836385286097031828565388277103248591393791338350772397225859833508087570489276845894803536318164066745806115545148803841610831129549926353369532140263258715423034428486366719117189289151691960621077721611167315813105228851828322762676522972964448866645667793462256228456753511181142427621244354554711276314958270893353742956112118121034427133800710399086781798177926504539349738070895924471421038465782150500858890266697255491175634292510919544453529297153753870256208380299571162225588466184025712823479156915728907588929855894352327084811030788624204189071887205843933636016237123145425008314527844995460856415232221034266858197600778863448325960543433546982840890750046274709506277293920200872552149597622173145407267621186299235457433931850528038170932049053895062769320030314173772155640422586130863149152706387387765826580081661266053174233899279357057267329423051371816405222503629107378974121057043928332621193507810067649980656297375235628931423116059248961194502182869721010317753195877964793348773370619424499070288275422909438764401579341294452986006735575004414231748348774742709089812959285056447906310213390741569400526072867894612612321191800268041857517459002885326155625530746120072353670660192238751345732055006664346507316637978313024555977476534867175811464791572883301549259621501115466136434761196017504353283533911755531260622349256906190384993829349010865450919147370286436305054038191304151822763238198905462553171526269116894315045847911119590578109294981590348536743112757580561854014089372099253519710631346829870204525943146742216687546483458793958871796762675780122126529539845601900647388714085543529172361410611912100577376981754618581242162253613037272272640221827768795779314330046220476114336287888120932779302067973294366987291869061775932013173886054513965032918979605100230606172151765521550021945724172680721523127951761055152740402433262639513641940542461223516831700761976511298463314155469169137254933412318036770985708107616602131802478446172685000292084319170293303664202424884403835176436623444604170767161838360660158571661099199397258052764650632952632942095770836345993025146545991936330315564264069685585066443153318723577260549334410518279798114201908602207400908309736403052305579916191243532557803264580254001325540601086261473878246999319239494758564217165974057197056638261068206598437036842320493577310585200539937533902287234985145953673384174448626380773124954662913714689120874469803796326868659056067505013117666618874935413386850593379969011053795859349912370458749544917094630887611657266991634406476352358904146797315174752823365156236776061731520783899595169372203192935294924116609413332700063243190067094619849040744788716971604225731735853621410858819459556255359279345107448518070134523768072916591502750724689724923725410007592912109674789516192921782402293724002749393400764742207303616141599690707509885129907265136439572886450880257336776932959367824841618931170631842654485459746096242450988484675914857832345433394202607515503495592546497945259897300084312462788141867050879777802610006928521889145142928504447830255021420330701468318817976247575599715511190101946121771652572774985971857232642504073025110698917651323012019237014938312140906149375954322866533209144956536779465235365622934200642090106212871791607673228474997841588503584929782437244681036358620065484635533018697841721374379939920622307333331899114700091346772544984162473417754742957908552176786528253183752155934230910352231577464753112350230217631438635795440524516203269055088665803621776534444778480704652710910600412650587108727899308501315174104168092772555671237714024003232055192864927822485570117036129675719084608985386095201159279133473239705780412034945226853699905439894892280518324531492294541488995776235861607815274370737205730406798947679898621895629841273965205980179849556673663061075932928846683113611111284599878771959002560989158845315978764953918753807182188962269528961836270982665568494659549201148800343983091979675021557048147150475784304438456175398615050341752118818292566279788884585618783677195330547109265036954324301483510332009907688337041634969185859481157125026220136363663864143990660421615795589101348694835354948827656719639016320611019220579368716014487186216910815244073666074298240077594352584135554651410478935844474823909929210478615766735748005473800692406119352852733009896905508078003426825192349886369974879851952556843016161284751627418332547808434540876622892481158013051813675785166667874166058006886040731516194900973260159802672643620370569970411415652736503154743265980599173886334594755854581259907626533089268660748501384285691673592531223943341672139081793467162236501536938023314393819222819622682736115415281625026225532391974606113687972737897778349793195864417785853190476845947477692939316168405773036049959782504713442102787550731955470321872476932853545136463849180619999692126102565030004884288943166265043576963971939509608087749158570436016507291896283657843052693822512944207774997428328968002874704347993136741543136842736594224167598699404871640652828567217742038637036573391509322730876509089791021771005409050402031771946547469427828624855581992552112562514349583992272645621062606873448257025909513754183754920309136631374962273231643913266882147410140787043011596930913057320537509615796654431657255690053174299075359373873769982887601045262346488209601283402327994350305574941985360218552299772096610252723776443151297637704882403742184251397096297330028460431764037113912266580734211703528262770796899547430211363940778143996080909242212170760327011125915959576817492577149830343493031936326939676149946266018457745135274788786434841343034083528726162803376700586363683527695989405413871112271418703554170038628204477007902077475589233020934455716196193963822242997882512044479474543584300549969718160162942490604153734686211001084374919065185270320828728478676918526841568319256023089376621388913458743522706618351734346127814859088004156154811308230381899793962283212440674219489766545568101232398630365463312662574397615843356636502972979416466575731675074429046239450729735147293868187480347808014800938899441531037597504249629703999461086341372301242348940105647262711104447959766507858797641468104444532426719595594898552646096650299670924184438366681633801943840495683426843428391408997723863984677928420759546570210586160162340918331642640720208581376253652364206395629531919209179242600514280519736156105011260457713284193532002765501903233821909328803010120370582730781240712945904101120795414895254385506082935764536536840566746989274773996673266360972002934473294730971642874176634796535330096240107249121347066304765572037897253835541645276135654385692051764951309650224761999883479001212447784287758004904279184537830888816974368623273601681844668328264126201317813942907542103860804745428849475705415014539243250191826636913672334082182023423541959703904678477074556371552164145227032723389553798871822344157688622948644254881083750579154842474851614137310186023727094663332564764953284175621470749105249295242731959669305277488615145636561645704829280584520368281966472757384812021817596395979164654474383227669878170592158797702917228477645078180281133504462166414220752326975296509170681157588072536819481158789499500665503616642772161693094548593832130482476865926767540254667393588629237255177316190099741889727169621540765264420120621545617583641419132535956514216555214388931519542389906761721488387538508028164303147945898247056707721006192782793963158519359471609863753886728676460216100568836976692503797635106672135380131740597534129194755927065253588096501422041701352380092889396016633519590160372071611281326260257831927228891747204892324541223283935215514936156145229510260896490069771463611492414627147540509196692379555911262975088580162384949986720635452997831453740772985912926938512429386144964549629228259014435289883886184570660496086580458608945341562625754557434674016854185419274318925672840942216423997334606435516960962941975072407832010323084691134831485755338419403568394053358655540566042941798763760024207808798127391947239265698615606703107068654983561777887159856965093999026128441416345705501934631776899140721911044047538336868763991297981261838683965476838315325370774582823423833288250300368422444750951902728798755472033854762111030213106562069743782800080627231737624465846806849125176072136009488032054518515050085480649076135285275279276188161201838518282219471256443796067131393395481714487400275230422414110320536939343661457191465139936620619435396807748224933686613876816582796948069416100325504414278872898573600618572749392283763927676257493308909558292379435299959348875455346852432238849536599435834822757611306807787938847055668211047139572190832377422320168175382314830815455152781813728179583054696980549930026412246135633868689841057329120359146250977612077402625442547623524624127082042074072649880365221151822661070396996936527593361903911090759132130075818734351258769231249774625200904490428618894058830007620891204085316062209168318432913448728032428083124062870922060295991919846405306783918220895998608779537279584025998999142975788356767569607352513182891565826147437751544307193480367376585814013734977543958580703287886333088780458080962352997929850572978769476552030373312260416856479160642166622486350432200013934620290158139735961673437037366637465093367803681346059040031863348883557449434859931723058378454571876527545611095022982051008104351126754776406628967810045484444084146777761394553277971740089980164124608408798233274710691959418120734609725445852711097151592760101468515152420573243340742734888081190991833370815614698864289076529764469998267517911805352500395990822947147110173314463224321387715844261718247320694125438225939012651810586058840775626866946367160707884840119735248206585677632187211294514199811464768339700393097334628290579371633227386928301312709889527261642979504199641763190403836007888100145973947552219783538113375362660696645696004220350108175913842138302519842905013800553979234295548738674991613463893450524611089605950474436225875823185485758356888841738399150509235717283895766530041238909002303425330467020929795018299080215160561070040175986619860544658253803861200839937289746776728455382796321459429559465790157579178168199621398109654470365995612225922174085848907589557763289350925242461070413464724838571411741177539584403768644178872414489252993011878881273487064478155247224945688142381805580651632006865448457445905171886244133025129490861556797545721685044335533041355082348002995564480849829806918063923756181547488058520700057985099862991709281826700257870592917366478406781850782094113635942968483401985210003588641060539468933392854964347328713627473480208587587230559314000615876624862471668197903771093011721663495461407061172619194441543217606352469674627873131614790031561039045208045029704270770413879557665149531246033975498300088642405515539081275927942817783599569876793558949069177014921163464423982533229483752288541703723416889299911324433727590784478199656842874834712265659619626150472628578903366166372817395505147071255116208871696501089897321268919948524444290810063259199597624186172739770739053543231322897684691497371722378133668841657040434951015404693179034712428296957805467707869859355121877626791986807582844248840835283646832252124527662728279629140674527237004243173365540973580609647912723557686386799963333506028477844691522378685795671382480032817871624785482939488703816608965399274831233217257363670157519952833681795277774742878514388443514313951557793757869114551662146702538087305432611164244248123373652800728033263996855751026531268700488866140562721397255241790102864314129960407408213033689889319201702835861561634170646646637431612091418616425144729059218510074573172737745714332615157549241932281000411594687628138712223082032207296524065454845347265240169752014120412102782988302654852571266906750260617798083103325948073397873140774250353195947419362779344531446417269356304779621501569091604817712778039720509775813232862249351589753565655258496426051327540200225999209924247558271178580999078896453083943305871691524108906559731604299628988896384170978692793125975051968710232166929654113940783392539733060444593067985555387434825070654372384527808319613428555433224862952702845705459156417509912382628576854926895442991265056454510742086576634191884367084791095009782073509374954655724445715644824250721070099665087178907856615771414905321395989437626639591474537155015037136786153635349078048642560529219673062118745512939473221443539021436975912840127205572938878556889030564918417568230977213808161947597662582691948058788065056817762283995839259075962357328747476213837923792699910473619756599682209395085863889483920970932886049032334538045549370799513864164898706286436845948333454324355667897031131944494637514023621438384477769300229985332897690561425780452535142146605573197637958403174457524917049892517481995413783322272365585177533519909726276839108841819441753670355852190823835820831507016620945702882001444829117763066814303932883247001117357475505228869718173209130181105306060219210444803853272437408891167683961814152355883190661082753461969122858612417256662130412990619886209668348929733124211636673878531088813102775511647012673172573387513081215614827664960735228892232094598847184154000070856812381666526402633475461302335675745052601815944766337606473068337720451409275886294230626412857066673189432761033469968540621671710712197722115906005762571690178469391848092035242666591834741113496837039114731883487695162289777214592224907596316286259334408150696251793848979667515037383968376128130509110296518585548920758108777056471777411587273554722569281865413436015292704376287422471517646272984128028598745493911982822725212401972322966093292146422598734581659450772357584912982641274931118415970056960372751730640238128231899444033347033965948245576459838419202321564642199614009299623424453508777823453197436786274642328903642065702095376059811216441069796339194609346032784725030018015126922348055801577471712652118553899555333661006914204945102181019720789733073382325923377577738946575299796632609709988468782984243776888082810805642514792964084522575679495291610066327611783498453126542111490910738118641026112441709464619747712669301368458955966916288402471235020238602662790928873002713214819267151952876308192066280499602776988249140486878126263165831277909616602548862567204677269380018120523408053598358148721580725963920856647619684045255484143988728175709902711023519580222362101869536907888204797926351397896505099621916900105993384058073173927328606510297414357189867223099332675333491244093802313605872107818405806549547867386613722138516064761174301795012075311626880549183373635783103196179681209791984688841315181553809250532193161019870314376131392599641382163056804965469462180700305042746797268183428385075593487897887165475716056102712233303644464270415028804912116651733074395666777319692936241511115527872968043832735578624126480168831705139991308316704820958626247846976046299183672028978753903326779020390428366211494824892804812140361660093180285112951812668194048563138150840376314236159810053497860165009166966038041697475184138736221624986152702929387984881148660920688468882573861540697361316030995296971314432806407898503881012400863136195467578861091790435295965194425479172035558535550183666357259946809568388607760343701584961215546469890339628097094768388552548344436783619283827725294375742112535555091182707960632848911199737073479843207019380376615993155983792293914531109829939395618901737828305004457269757789437109818081562916258666369786687421010396562269708423068681369259953314300657485809081034839556129570101181048817908478042596053711517541622348073385657626086073513561468612268480023783552153579722038842360412187938148874652256769872031141226338875819722033398052635292987151651610811608710475139975686354751410569164660235776696291573959067601709989916016599471276058366094503805586727689363698781162618031767958766878560608344097642065950228064191858833180073499328618862417776117039233566399617316466684592409512457632317977378591190653107149666846416479766698027151879106583920086072445799593730441122869074215027952217031987918015638168321365608340617988684901394825210200047410874955318827992306661262030589765205518909464987654855213806217738660659079947014416889128770606889861342026822937200702453236022425720204277106723688577415532554084432506114971769038674826187310060948573373358253249038728822524197960777220169310479428739355373945112888950666040334929951249672450953964414113096217446345189709921149721004394490031401516902721454358890930158107998162925603781796265631995160444880594683534836125671434372387089865902124779021446120425640471828638641005561170520656361894327723945487882608140663328025772307858200418764628969698243610002130523484151586421059443813207906369652586179700995411503816654931707388863082462456460081536368670106279543785165643490535847641425448035698073099816867676346064268878878582867863905520495549893728451927730356716935722834785871770898131967025364326517035612728542973613823864322278110994841681193340576735017586472717737188987945700056919167785480390707509548825884261734087007813255898283950204012986304221956356896995738803447205855714039482676179892238624966722205650268773093688314732569436581431570409373632627815665325661371892280567160770686624371517820130784985118448024953394801014107521400727235877886624752573592742219337904877240367471991289921794389841597962968356794676510041767541453757647199497147049628409991984307930547490430618139040337469676257629280408728210118907427568025901497217143994981102422455575992112783694034196452886599903768121717441874217783585855348938340101081639193491946955784735341946324810820212323651294137269644600274152486367033010354098609912302504788959091878754082865926290442327118596458506374618361998730117559455679972388864640332817376326252102364315107384944471226114593816535346767275415414778156549045797342857982304131282600734615542022480346889701622339251395336801533613940599867061181063643002680058136666604977439276430068458531912774488238901064457947427548638131892231006073391552851137238548791872988990937913172033928964432944338845168514825847754011913459435331871879213662022128827808530999137067041725351798309251941347822392324932267109813679797450260582504304893153350345429514661324432595258770223325264986702051462530692200412866924122046854915425747773908814544812595397408666083562989373432529237046040720852939632995537008462198100539366798116499999772353529068713650401489837365267562454400607651275008490430928266298638562834251328198682539136169981432028423312208947203413883485423025334146075751819448376274182112688099594436259282291543427325319211799975418923134466923240927967769336110682293695495637931655486999810224508291623544332605400988680964883208387940059303640973840205265809306714334895321827267943531582370696021244382365864708074533074155066873283897890263911050579582770802899633828192217523499882812814289358187096532309702384878916246848715524733464108567404195931276682979443862506392836058310275841027829818074108460801276727870692183309021972446971065181388331508967465421956223843621778087600849500405171217726660876331925040505106451623887537254804240658122290738265213380715423905041098159903192628935770267654877922660826627357788001803835945022649565028255130303915160557497612523379992314588593918908230268572482667343628829790694592437910429477689351277820320895230055269252525294270301301576265629339216928286609507508189583054615652653005116282594601022267033559091025214857689357125170655099489636494937085992044770363681536199970202920897434105256361676569314026753260056180797628713538718339279505141820606660208665481626177506953126480316525931432650136602977017007657662667704759756992254693060421811520312410975364383057693480494701116299717282031880791464151617166316987526943112317677150109694426652775241047519047754986732998212036810616716338246834017284434670738085273458241503994226282990771916809808969861314722901144802142247718644143788764798346189799826906175387139220113167418687125553975095148812671656671662144755220689106239473481695652824559229008034121161265088567044412477072061588613507190223814928821044720744311827049400010353368654944185671202940559084515671684572755126463146476022234058210866121210186011780819116828716261432612344527438488081704245924399505564004895022131905120974235449050288032833403213439237523284223702710317056196823950193703651325852846952305508305837108474670047666923707454170869909087350306946591226786910994270534571184180119012583746110611049703344280764877257853123961384263949412154341354898825658492069071136259672525148302315167535171544484623796497443077365304856489562244726896839635993918676933020050445779609053097236654811905501880751693357987106772074475893677526139614968487539144754786330128739458700814897278113791057216499992152388592499331262617278205798561504372653420198984529248194384608203264567758124903720365203326339333811218713318144279423402382492271017792163402714563008186041650186021875142532166678389627547481609588294687806754778883021785755225626326564395549334882280171044968471539607243017368305729159899282789086271623910467545734905130269945665013270198026169834236228934317492720286346311283982739244174433266166828200919445713503384106932924619586278797320399408325409068520332913716567090032494174085720907247512671424383743306955556262534696092615293141132500157536147858033088418079883038126583767277492538498482924064897695052533705833513526180529664184229274736570680117998382715743782225517215443884652098698096288637967774228370308062349166553213293023986786135438900032102625996172124191807443547063395005101227176566257524192260090093938966157676012577243141694153234095654541507458953676843958314428094996373487136317035838680774984885589748331067853404409052301535241044865746411280432560577133871180113114125953832150858551467664374463672551094104569040394625467486203253310480014791739307597708261798529235422894804945852486898897876163111913796549893635633146782757545227362238644108127695904800072088209208028025283540433432363510281155067657777524578619454652949379371389667827029063957317905225821549532652986861162274351574370194622476546104547472545545206421679594082521887997984374307349432633357385821480523545253477282170202742850814937707926375063601874595505265338176450106274321199692664385188122702996725391909781923573664242624195607974087726538389883737893177452069946002075678755372701227311922921065328423322002557058903062697463141717081940681001292542142904794620939723568268520561744925370659089554133900262109668822987454703402120344953878933223001280837896896175789359927697654746387570034716362102871887084808987908479520236002049758217633268242699797202367485686623311578388983886511416383019624156090548099678191358757235830685720353876852396646591960110618907224031143035668883373320647778270166274752702269307592556138127055505740648350143926016328739522337485613558250033897965725715468810433219673857506033852597916499719856270177071169555112093932104483964179473943507664123959901859720220568951006479134249704291969300556769918615791044934551995391033991201600353403072601028088643338395552125342212970719818188272810104502256584093192773610854125545436961705451919005039982042956084490146759213280823339902344452535761678888712219165200118137932179505970169912770077204503153453574560635639974343387107083848853465504136845081909665665310870776764179565284198335007679466137900068315590655592410780584607260469312744023285773473356050736867035278626093196332555639182952578815981995907946107565052329945737674292607592224988030074454077957628623871046195554865678336639483310048339380685412384677003432965490357672048214606880128162973173027353022712731954720070077127001420253818859107590423099744760129929400178836109487903695802750919555668207758440779860023552640178813744202676168727603278862595721729170894857145236658345890481044486672442838875201097795259253049770137167786264176876895816103246342425929705617009678621014589168948018173683449809189760845440731467136028596512532571588781917462711563464339593838390020302953513659671097302596793294233057309013114453310413410214406425222518075722219706304533539256234634691239722154792683211947727263931507649590823440952525881491617130333595919549635618023017849732191580966252878924854084118185156790528792382539205668977939453379260727502265692902432655282416006081332211481253231155133308544993157463189096764849349132511312059851940252665072030301800011986348871722979659319862375910114101780964248590779114024280262010768371609416496241127684022830689236919799762900435246897446364864040962084359491261098943718621598001992882826744998976063515331219972693279867262275341907654161429335465777394948826651126582165189954977903224249359295153627586904763006720230225626607962950784016138869054555246268163574620296219360976519439105874220969238900519469885605252135631448507136004378734801531625730214763896795496741622508259692567243775266325242312308039856507618577744629385938118252591835751792425143005078296769133973620523893395833769081260935675692964393559971091814796529609736091289471208838917607572923792973725389207230489612228282702206900030613251777706175398415250531843154707980484163004363115053660778978563248138547845465223596451522189744113210678120517684776660400456373910947311936090745789710690421608959249154024638246132435423916875594850501525938679264469200498135553150865440168410692317901596312048711431333886042128438406579399755591132913083160916757109380475387897369230909291937604897463231196837020805857892825826824143976043269168405707749676205875815461704327222794011379680970314322583717562101309320894992903478225011901824855086786114670721820410399774617570214189888149583412317550656095564435065436434355826946920201161518118260674658855625097617679025578763211593429250502545148382992544246201320994143349750971716172946589334521117502968754646199871970768032407901095672690107547623731782275934621249999354652919358170793395438637520878027796948511834618810744996507711159992617613411276311107491689262983779488757732684685894825563756358812792856694403631817858526605695433518844978613433120344135665691323293805689846511330011348253373203514941988691424506653371901479138005049870689051312718254145509781617712497043353452920136565337691378129758542098589068910893411712883719424590362822044309975810295018141819851577873293379590345396070312391116905021107424045241805399509746135622734661815947352417847685867177937824924059286325722258411752235986325037750350390600909362133673034909312864053476640467215804912733501038105147595038621682041933819395634828051168461362517025407488959403194118197665602827481739594835265093692725840307904209466873301183829564027296650754878836203558878142796452763484013633582300320602382851027808329045345187985155452831489583055023291537004892253991224790553424255477750631843076144664742509511063645702905046457532457228921586539855492324323884792531658495831981779760142618620176636017028552285255012353054143709371506772572179117816714458053267190578862532241974542638364161265926125351559196376673999393056032624499480081754031893930908029096900189114253772286439264785304977252286335557556858743715522587494175018935115758985646010790933877899588400158640180862095531112485012227742784712690648071655544544004878458005419272391198661589423297490106375396428860674825398431902198714042560211537082791116760226718993228070885163115099369936425835595751261916097937184124013193755804513758130236718513330078975357499016465367951332090726897784696095123916127615504596115196477257123414551143045319269369994926248425525118637754005742421145680650247611271646395542082013732638946209581920524992120745314619186503363310219443336170540616273599686896035579497540874938741290309550206852775472114681664484726604931053284190989924891187046369441320353504493717808919535573234265277561364599628953926331935201974511215341111645194501862536919954439567698417307733021027483294430234628268983511775581368138194362110220298379610748823596342174800532812687620443456093615405844737075452759617712232059633729936286567187648614652555088205716165805386475020983520652255715888337685460839537862227329582261259382213531831814877289078002109366073812960538695191783444521383317731568218932302539232114016547106846816133645677882325059869233693808890055482707320200423509477397859336423955176085831791182071660410352797859316981433679768185554681162193026622861723788208057591886144865639152083851508472375412939662355549766822546468506750559618537045411487204630464431766159061482257017094480178425559518786055921280923941259610989821108835035821622015616912593181365355678302882290942716459453239442242350924594313286142787150379503023695205057281766625023599281630029426570768944843848829695364236314682629753345880424121975941634248704388048971559595189794414478558618254108847452713932504177289611415073009633802633740203965445313357438432534286956735877710129953788450221562619610458959939351248642161716185755861600329659730618498774848466007017561737279802857413018804831910208061141996030198179880169587349175916546212767587818747946447948281860720500129895158107563413922905984769732606401413410175145198919008265663225043990048765678780573696859746115121097262083384866332714135360222273758777034872269962553346159318959884929569061016374868795329691162658189109613262502641597130680738378701487407382617894346765947898480998427343367964463064306842423734079847371601822604423758547940970170412531431062118316509948125080097833454671420216229106103909022855356589008653241621387823781561602513288510826762808862605430910511024436855631651823113294406713220527316114606976147432480176821753438259983508391948436079966707250587109468371050000149371598046505910739871543482341126379006768091280283218541406756120526750411220247259072205286972438146582089988046521691112597989740398606038634514705801924780028686441059928423156629462219613863511273792490253460530866840425753741985647909686836631682254786524236940116696991537304573772151121232311319426333498777036695134532596244455643768455178869710208654325639518707572834161967158654325579140280296700218446177894243699345374999368669651241613021832044803156536186207345660837455888300941480378187454150272851106517139561186487606034377344048720243898395959330116839728118951600702352168100781867925762758749533734614180733418853159274719681013953030934908190724406297169298791921045052015795718422721041491108847856446217024301093052449383815145564256730000199553552598277534099963968799167339572835344820351400981221198783132977198459101986748520936969990320138396569484424558419142181859648992560741637642168687509661487474552672887259302646617707017741838163820181006521448386121898797950233363817487641379434383180848670251149809065676997924736517893186490661449922669889900138958020653335223613489538862226396191783935664013582158889196590782522460898897634679114226524805087038020189111962923090272962647150457222085208457101463025757989625369016680582022649578332635071551648421523234502624773737238182811695206969186574636168950357016534279938293118387556264304702591494660967696259765253852709234838492781655136062020831693312464844661929876189002029508073621624516852202636355763323686939631357785649830800652068076432711101297345777582869941014991212615584370235640230005874697118644717346001960148144866704654860589059840567156238783688076811769841711153045884078828842929956802094062484718383997938213701833124479496685193733597281421127738942841577949253870119418788416447642546398593368514848680322052870481483905699180356315279097060213296300184231290111009722559897496914552306312202819846304403539264093588872703634840826359903689455857935164789154260767431792884372358181524656867281895615461836396712630457300676018347408192549038518734234727466856684130970019715048312642747729610229427830986791810925347514471086246901268854123847739952798590126770545638081677071251171508333725775329407900158124156170388941560194991867639316954326139220893957826537057159516547678120270066849158017985720563618624258517884736490056262582811631808456373564292049337096811110354277114996467271443300031453679800475694423523106129985494236426584078867744685628310999167008233532215034953848656479811874421104859614748453958552373030657190810943594515350439028043701968853256568147687031359556619385558091838062751770144644182974645031625282355886736738767977118249160981173142152008844348619865102934237784725176878924216811488624716636143683122206930322365542256108637554781054939628711282784532196680276171779395465508585564813897312110816219287486746493473584862359189337051131789525485417366093641211826097808668857442475764068670377459920015212677844263293292358233393068091792191207087854705588087140958102652326449447136910855550800687010325488300952623710007801354372155079186682292301993414551925523808601136278750991990974509291389254800221675535585029012011362213342650068899749629331957242165855165835855687346416631842752114737564614274223533664808718016675274970091411800560662909861738303511226942656436106570361630715152814669065011990090265388533348084909985462093304074519181406481181555616563158612507393348253833947627565593565289895757684725898411056606641978210464933141277515587445110289102821939972462360274445010096236994281285086723474624031299481254458392480877020373154741352174061698958904178970865929189062016857575485617713786409131802892969844442022483104362778275905266377048950523387784305222419073439497726363664105327155454046463119940485399635977741360246915697265267242575245119984842370117727962758118296086989750634346084452948219833879698163976835585624168835462937548755922715097552312136003510478686679383508437564451614612041440486471223068871533567489979460754015437556988372126147601602640041371338824775761155425175332794953852804590426733532035575106702116439222122694487672350402295055673111911635558650871537837542727485223705289566750719777575145863295551878562354994599141466084137155662013238053369440510720232876999120223680372214259319206881454287364119020554672074702648586995674726811370084368535952844292437224040285444741975938874343044270335179467120184095530491136256064279137825398001743512810092753579958595771680385491641813413272939754357344356858097404411761750030300905965216318529747641473244969037893146584472949757700858968933481269716039846766143542248602383159143346594727984070113209589700435368463817254508319908415631731015045243481563074648775741483101799223100554173581636715064332113304369598707399824046390015960835549829709955602637950215047402385530734006965643820161293266497139215117071803909641422576612154715978902453018032835525487419704519966138588328293328921224988474955287731005884246779012142523766718245352514348006691690691671004003089911649637464597020623175563850287045267738631490222520877234042784558304907882371334877271879157304633825606033890037878309369834357968257612697704774178200453873969988051267234045475437218559559305988052723133148836037501959610118025458685548151711851972937871161996472145812137682234462146618625784375843413608720049177729629438254898715859589396096074647166380265072259010445988342882701017832781712050059105769213034968416613959977477152450320041712660399178484294554330539482808446205905173383953096637188204969024230767241719311003365821102827220895125322587238177293606225298356486186683226380227253321516461005053566400243631345109663793428900451973600620773872384835687995079192225130978982497775377645243144096288954822737106182282025909190100851308018454504868680729916081480326814584413463458457790574490470603116843220742761682769636483279730803673363705346155856033826368509179846256900808491477225360025450640836680614266926937800011616011737500412191693468178951934349688697015447402028969114843815291253141809992011599390996322978628325948226197918455798467171021037892591368890299051352742265163780943633179595158956448417546293456093003493403152311059908523337264360863794309966643094451463199400301426673127506767371985777275236267436554183594152649214861013375898552438805065601325516176611528735351442095396471562011533990772171548860388821305831873229327643350553321815128117884431049676037206376916233882354326450142866092069348743742281821888648298989877658212615539306821587530367615344750386442682224529820291111156656446139223793041610077427992802351941976965724967739042258857839032153610512532357947571320007817781157246732836226442199547440187137091058863686410423158581175578041448985761566010020816016278473508795018619927788152573816202420451435290879620280470091234160786247973950903753401001518107330962211642031684702953948172040884218508856046652602443024047953039331102196536563166464349411122336584718378069429287851010561676004808358659182506841110922068816577309530052630433191618387057456300898461572352470439015724163283545177263352682455687255082491778580256347250254136434371564267853126631560479011013079858987543077354193304990218601962284591791027240483360051034364844878586089364162495269251030811432118114563576562859697132049694972365670550357326580052357840144281439283885748247345071214731075319271667412665625343874698711200064756994416155575810732024263812978948977943200085298903502472703785288941353620058539667082267151761960206657966709704380565541145643345571461214646410778643245575874129721263995361823771096799446524473833036680979985341232695460483366654805242429138994876342113595363204608347913912812823854198845724268499733020539003973676201904838850854948286509459954078312582155876566751665145111037294231296713781148351110519137991161137874328894780806941947021193808497833198561271525432541369444933814326591334445535145276388872774874196712759704946838387846838331279954411750749004669433242650816897808170419447169664192319543619051301583155366867386835111875109170525512033121086964493392292862566677839998436283011879307636949601247537997341236255270521074639254786171675151563673102545445785072490251833335632524335438850126622545844198010289851547972632408136860768420690690335781012088542501908413523629541356784636387105387895747520733145946090866455877439868603093873551323269905368638212816968429729592044403102587353398631548124633788109079204164273739328594666502116139871083086097356225936106922088526889093043106169583685776340813012534244191224056428576410727697788399395838267571362773892835816651734207293615405231686986554838918163860759509245396780356213235468089047352666989209043416721066209764938580988161148143553312813463146697479917185600039226515789675131441596727800570297872584720586951893314842277259040794606140130515838161061958083237703782712560282976162405150322736562571594215530429912638444253525195589657896132506820469576677387515455876554925288436943971009603694000504631285935320665871143979225866861677945048269112844845186431923387270305920024899132468456827802015547502864248506431841874898664745111540425435362304198064678718661080351443799070203487805260153723865297956367302541696323614136087146774474212288169560243246546532293160129919421410973609832448299276046095482980224226479248322702980659779058778741746104257857499439493429553417072492473820325318264429085868374775100241542364995537500576552446104474137834396726511320775324377310921050750944032399372104770755727112672074216736916227212324903523366381714781168521860329691057769272375108273909358214040220118651993957401469443023292568746212002658853581620884557655131528061831120364657089981003779587863260896659035111322475300696474592062863866171549525136362184116473759721588019039628818596342962186502560256655039133606801972251162343803645041598201812877251769047171981771327904923286813931055308223394690557894304213245241231987331680336018424869014615986389072627514997415937226430038737011772878467395247134154616011128249075401857651481662282067153278791655484604177136220605403079395767247466947783017396411088554910202018054092792206783892944640992062592933749220429350871131159095017398264348504958310713255055912181865735531339846961861428893426866107905680648934179060659078258501486496471257617374376692895609559358834752784883722291763112165986578411025382265568299512655836295987021965505732281988878846682575544869211403314798548274313604440826810605752399345777897790815084695875705512988097645602146059293973033957970532298905124712046142830360973513158927254004401162733682062902265130697447085228153882654033828796251877516391119211940886212722542907498755617831247121291256757278213677599828462365255140008219103808414750407455311107996392644546902495754451702288839641762082700489672079395860596024579742431217983318760273539054699739704808233513345632085034876353718225208698481311688082923738034516619479168502554534874033656650309859801748820406607034681550815832897024498706457025996568230232708713559954350706255367020955602214109394018696175662128730229022905233170289032274499275188652377977006698872606247431339796465047177827642154762141271416880333074545496754874009551348520666243390851738019268074923019090400684574393689400816025603056134433842688193559413288998666172595070268231228561409251224310460022528119952635427897972725931518689982772385732394441365357902061138000366343892010615275511943055052435129197945256758909276497893175968171716541508724596569679057291973678410490688565445912327153695611876303010407195509693251397567427126907490320849558437360288739691017848734877766802572005311274545677947683022887847251346094690941500247483774895801966573536978690395765851143968897188515108354891523083717716312892721422378348235705791536911078728789541803485812081577528214331411954992322993979027504663601434766600944517870935857881690981625682141358813074966023679927344850447858427236020051126874008951871529831861506729109713235676395532548279709590669179214134496368803039271099717425250252947734634867543845983765761636121367808259750878944391989364035659484488667108204966165752121837009082970479701816699337201226383768728560835701739526765437437190966554899077246571076488601828698704705800823047339541574897334724731630432856436308797131215775275559362569220049158214582004401477255443531840852470195241065828601865766603388870230132386621584673155866288621510379115984390812971613389649164959850008550334890162665079599944833945308805925096462561781475109789772484547415790130630313206786004548794569830321986365272068859668212259565162315016126836713141793272669615150067419713803700160647737264244319607927494292213258479166620853494945247161550814264247324253926708202797579337800607214939280088424513793787235537434796532937594445690451389295946698427104890155827380441453189236346113436116856469882616295758839839264117580764145023371707535309309995208432593598146452678831283717042007642794347551232521133810288418762358804960852320485345863018534199677159291577776482552981147218986412209936229079176445205756007495814382314073140762170192693849009427059682605194561169149127405067519202440236528146538267277564355020040563841334182455362139888096742213760164961684579385771344447527296440121673232849998052161701502381363106952872565388624597103096848440474272928833212744008599856721935509834778018789982372076868001931588728381373997404430785981741919809610370556611974550061297233938224404947457314422350299796063636763397570685072526768761737855369628779362219817192235933467543082792418242761214321911400347683910697206978652811182169516355276691941075775294739557802942528557493056060367863923426234200073391822546872194226961801394053166082919987823312806312772768985886467087428963489406861290518675237145566781273409784341091077734808829654372643970715010223545379647180719952573158427708651008767162029782863558886690687610265903170296181816305164088858548022878337906821514311293095914915066419636644038442569269841629096337181399724834003902198810817854216130250827662045723064466522681570313271052075300301649271606814250568543398369755235242471443825696856622392553069379186534776546509920413614997711561705015703718140805796906195743868317984612402214912009420915485664017686083447972113630422192684550111118477924816427683083370891143681194025079654743828589409200938477119115910432219293194363914627759771275441449644356610874151913181309571720936105895241614102279011262877483574601943863040254711647396362152125271614585523255969850924658194293858327898924940121880994672705293507182652847257468050298917322805011887455907703946026485886455447204024718461622690577482903030701530783868238077338083803648678820318910441178960601309689232450508019663783505100967967073683967413754887414156109873028015473157726359102438173307588353948489608256924384368137387127473497187691046193851036825461114315852454830457637543646726632276667793877644908874103462060103058360944130973816577202744155803659416195022619459730879004404573436759634416538893889320651863769808241045717312611734653947758990822581798563415805417535350566397725345273926829245005317633930233058532656225354738572304961871618155008860436589420866555031125329064780712696176655414912691712376475846570238673357202233807215689754692636148939436035495431577457974397558544496255354727097314903789525583009955137438649711300600154375484942705113246892928447010521551880479749396483591105306191732879213441577278271689415183516030927014342176774311447647396054925257412971742977859155976014174964751286176983520254620819839020545156959981437022321481135816291275117909159788828956806183782868362402248221525413060909761455815209216539407132486031306950109508336161741022998495534774135564455450651822745525898040051126712596333647364211232117085097745065996303453721926389715694998733060833670233622520562019738593159628489972540834920254333763869580261908947688943484154514554829898734225574933135175695683714251335496091414257098206575526080442732373999176304591405109565720064796055413036703495831718122259230438034853477946195447961842908145222102083123672105647069148775237462979551616897777788293821123795368020136103929775940385725952474116412364467925247122285556465577258446647171054991652955662735372237987845441098452172767878889160141642653060237439365720412567986027082087389751911932118339047167774221898015195486562688683035779999693666760663642587066074527247048328873127432353625367488226297183249001319065469483952506717641509773354493309326687551625391494786461323490359113010988391341281426032657378907486888633722787390465509199467680845271964263952580112905158133386055847657084738764539367268762565935400916579311306849426649702101626490284333900928956254743137267275011935616495875476444378114073886348267494989413779605861015937197105855217572983484464231690552702709140019993203104507992071352475834790111909449731636173443545356818816370346080749145613123209079574049824794171874458998703197260360299614102198497900724189044454655409483965060685244922514621759477294162599037957220977538785885484821629837852702959567153369408921487423597468458462695641949143548773449322842607445903648536853186153352789063976760961643489238697275095420023831264215350604611919360575380041891748670632161219026091849292548194128290576488532015655463225920184932691688110091156549590917714038824662719493194696325426115107410727198629982516725649745430078411946376201308753159916901114798241434638121582470339888011163536953569104696405730654920543385589704600157889277454193116511528508735286106142320817950821696901063785299595323280645846417248084087212625721933202954220431551989346323894408858780973314880960362713814578462326096970767841669395853020825459564545909227443545389147297774418811298824822560427709816870364698053251858446081446644099896023357424087756393406883247486223969430369557060187017165007380027803717903986457439865321984446008475966300818549221463565828063104194055297082900934913646570824842497982415808560354481551350930796599427508675824836636178356456012846964567294786472567468155083140895500806995420320864326843419651450005942653127722222168028422121795292446392734136929297402151491336311574868331687712741465151387747386032361944050855151526290371501495076444939042218133396543466414300153162326299401759683003122094541150285091229427594695516586400783667318407591562666472432319804938122339011064497724499278424197347947799309233142611712960937801431821685064303581385007189064317276380532331265201692624098796435945439799995861271356210634067632144844527659044895339076043172854853779593187761879623598660413625773030509636912425139170991114833849638340606597038080827857382312448013362532195981712522554399059100332284369775651187924221237773234639594846741748871196902383663394147132463241678302054521613372619419482925046173426040148332470459841247890922620252986772153505435905125228010962137332093140559915023358403990869078995661358302307472859901179476985349013450181414941586147784305969201940066782878368793985975992865222877780264698526141994338667898241703657855590994373091446728720519713035407404104073249128576151459383309523848534586851291038309695499757281386634999188441092948735769186109328023390478575730057177258025961976341814988111230052059760918408427061057522313246255668267235891578332190955273104561965977265951658744113242631202960312479786096250226464701943788738267920002639011649992805698435726501549043704439017013256673346919984860464497662768291961695738216221908555970059218934172711218698942196709857717188776268115942550724106514803022498775279596786954509781206373071992907347591081165651507203455339064168008469966312058617487423183076965684799866575052536590322458800026206190108923181919024483829980257452876092181034094932737952601258306673475796421414879585706321628195366067843156496800333161193485827057854902796785755220532378534734141145814145709448371592686358579162979071019507444932171734397460327721741096806543781628615545754683134002919449779974109757999733820057430867946063321058398670211540804337509754036609090737069107294030850673913873646168409923938823878615212223936066113004302314302575216725392970649253907565678319895188890996029278351904349482938063888020395200176070671370704886105763815979724313744708652372905440458476018767860830236886822298626802768620490520123851955804542628497184126546652117625311984864985501369073739097713218025839772975705337562067742390746541350897884238035247553576987160334581045577122781656822141879754080066999404081765124510907405286784560582730418712706971432466812184238824909456354494331588704645776321496524253564425926645754826571043291902792504590220899733157373800989321211765395490472054660436662060753848421118584778172601941907803629169974827913511941198350972061999420471649056256007150575196211727233653914207755858007770282428010653305649492157211631484591527528269975172415423574908110102047541443910716180783575628588711736794515259607196973440746702882967974411959516173938025373407823785258713157152297142233078871405841072450528510265318394071802120058985219491572140388846187931239538649262798697161754497436247568042962363314264182343391673446246078332341188980273735851282415122999228977571617113395296512638317021311970477890233847300187793456344693239230574037159191215679104155041935593654904162320823863361157911490672327892251739018094853615512885312571732294846114687537883927995944516345279192531959405973833869011023835045238115867447511991062370087940683410240961924289600763995861144025413792446070819760537848328943022369394686501016838719703251134665508001519538076080518222918833240762516481303574815474603164972459260170288618859397411677483446637953225541606451232855500630881005341982468556786782960083897782865174747350260277360759945691307205350992372687991211239633282297978763342982947093343524509300957741650320630466740496100505593788046284530976961876413143680846864177383096974509159839517538802722648084701751604019867425045163779383790510401998097637413316072967860026785064127636982651059157801347206529772055476238291203133709980201266897637625895621544948468814795281503069948673188542746203356979943049625009452365826904786472534430418464396560882465355455393297430910785195488638003990441096606448717912423215854629853875073653459669538308269988743810880887363294873968894807149143369284257206173924922494457858750247368326217356626494828487621380138762260518091932701748862653337376638806842369578043093091081377203208793163806310360933351838842083960995090477108798424757555616288095845661734589395091897963374390836150216459805112891922802019581243895566627048275179222142321566953046042262606412772093241871748788352725759639516649586348804962855985298739849714287785119374744753067488113171400087481559160890038902876019444257974392022452991144835208506913228593303607074835375977106571729563909985772687518989139438469926391015165449657367055103620777215723310077734095891064979016311345046021323784096598841318322255159382674961561210635352438252631910138862126003185612882327702487821214167553029974067560608343824005507150400056148417050435719535877289713255024791511525668231583353746994726599208941806253812839908615037817391298405216252880508303458323309347942787888271760901390936565960338728253446158829001758157028332753415795850030870571357552240949429036272131237698250058151467377404669714233744102343973437860683405168520081344710005567827950484554206166424156815964645521242388191015745496257573093346196226609289859119682372581197187134980553105012784561222685761380831409629093297757787059561054519472923131317054132125458747944298043443333104195170197725241827102068164307383986216398804651462760658386335664303421583318666553145074684947064936115199671829654152292142300770874159638134347258589182289190170689977208604980479732725502452866134042597736501164832295067476467456470242558694690160831598574229199700769220337654834869068319780063137512827262166456148225062322827445602099588207718229486170581915252591390152848626774885801664430313754803251069424045660789024925402538944423643199536241319749573972351841786074674143100367954431811748369734705808422500034735645831187241181591555726262284262249802488969080074892069586805751561758360251372219478234446111161658941223183135631125347210051786139833359974303097344341558772928717238363268102007013371083212104565643843742863190013842597512999471261147487277499073857682807058913545767484211275169746349216124647949299568511499869648741137668558344442692303698156913966997520926271583049388083827796854735426381869866250597218752552116881480666604826811430236922760679392961892009860543621603383637325616900453139864264453797977640735885705880957740540518277951251644603155773339856871991701664747792947537336511441126628912212569701910169795475363279551988297548347636482224559621308793226925713464962606073476011502400598691819785395311187822465374494610490780090051023409275093006536390685266767087298706456040169020097009145762165743333294179612314105423819685099327061700280916609074389019587675821976037215128474262016565839499808400905404845428235048657736016659034154704440670613427765246793061173535671349558369030688815885909170201288705196669830046706061143877880800044598612220136252025298036062394951214542875342506342552809876669458106208017315414564307348722392046042185993725187376946980784914835311556237667052796301577043097624524190090489719785180553351601322760895061352308464492742888260187491448645859704604094077378447585956646372327012726169729786051960868216090477212032393184070526844583217734325184090645780166051698739929050904269272035657514012564387327485281566953496478620916052686013728399288244152576888336522566877616916214579209131848052873297773139115061732464169870232861310342970247166735212683580712152725386332833179946516232054655900506452514148389187263477418848226569715098519011258055011482794441585465246595694219247060372047453161350710181606710585411716182716684267617236102655687875580701160126055951839966092985050092876505918079665917704744926387059630763029620379122388764850707983770350420900260142491907281842929905916156589489620459774892834497121561388238731394338867664579735306178302353337282423190280577504527705511067821229766426498680568869404764338772709875699476478094638171286759173194475641929108725717271615560763553872528759839625948237326954950274191123849751205136433035365004877666485903004865143334850792926317608563188782897379604556737834363886961700655405922574442718237287467261795277617288212937301733192942601643293544000142796403856479675541080903200986834430927607358518756809226467487317901307676239902962078818892071419213160565570950873047150927083963912880837699520898223892411465294627200565835317152965185356015855276008595359735332925094143570812514020638150550692558314701553657988772057144752100873901754834736963959590577230064160545568953225220822393898240908182742576724600942706666304748145253992856313253053238416457168578743734229689780153002172538409920942463486546731664579621958635472580179589502091821618478929706182118728807097966427442214048100228392338282804950321459908087892205964830859612256290702215445821889485275225760854039291848594734099367245986693036832184881783313392209899466831128334916528768969603474437328974734323783455099419998581689895630648580036676373248149894973610239844345374597188393592147669476489701058761677793621171276963316965239678628094699773684193228566101089535308531405596496135090143136014778528408129020686127447060162055588548826304590625866891469219136167738925278294931836030121303040342692677231507525219734211773368136945739308006054684503275243369219630287240452678527360146026575580074699012832254278277013925694707623919791526420017286874107801600779337638274745842422653273158253063664521786476647083545777262290203760170086209978931892370510888552632157787215970386294070944200613786384450596527601737228081564485870288408427067838185108274902173027661347841031547597759619365468281207603307542997394959120460978112105146199328813842095887685668129560772363427967056169772843364589811245553859182594173991306240359822783828906105210637538069924442587185568861289478432036450117361209303446559472512907088663144557095708614653597724902787558702372139711736029453384014888623415896241241627712192943545394120358800038486646542635382725439098899012664941811503736670295577295034908350644148550829362282507273866267495059434292740035838573215881860887791681646729228047966304804926473016153826895998179513157056865265630625423139027941668220158944238565747606060596145929321178520867923034835452017845756531780130717658903593318412847941674968377576768195990248447836667490763716699406739267904656332130638171658552633763510804359706300334920970427427492858450369575671860877819545136854992291048071597407181816233273780448165468349704912610973636115082074947291375795568866146949004792082450526078468795657728823848235920187926960395987242576329593687925635062460541133640622985283959560156245132694620233653721198234270166429461909130275079898513894284590429684770670372958550731465830290242295342548739356478311106468834715911421523144427470535211475215229622381907438519739593284261074715072557499776256789399441526465476057042655037534358951486392294546751386429169145990897813876329396665387345086992647711850707589477683368740783786425091617350864659501503201996563407413597284942070419576789838652982000714397132047335114630237599750231519026621922078102530960240451705623814296374875219680566192349725133745596349038860786892951264278250639665345243765850674084579133554615306249034729531614826274291457617954491283283629279357554632100297298969150406663663098022933685961376106162172481461151267189742111709082486458127082134708242629435095322015034118321496180849204603394449027514088780822089875787578745360064480487986443940031163737712492296823601752325269361596249864209166611499439518405880520976078559253750427560402070743970823196071974939105166094232274138991605961775584208057952775373730924081959203082256078256254144718627168213656334620955000138216688371894864914363104901182010316995667253712409919106397790279431533316812442467666489118576798130426256694096623445480959185916389378104856431730810823126184531881362186132260772999712605883616828172241141781732505718646362961554251277701061988810615238829867143159455120409001681797469404331238622279867296058234187520535721037901728903829434029457204567279503054703735217380888890269530742416076383411435980984411971987635693811080747957187793114451079208959225450176872818243062699876209043219854366669096930640110914652289213972108765288387670812188892666201182430882185825336858209136730628353500559314020893322154154296552806071726474232213995085263160325236857794296359941479380737768129918480412852194336653935213243811055911210272649269392387575310543474594296029085453795852453806113710074342692806705068386306276680969481933106747555316189994371057625805051281250759763575844113080875473723278430449536012068368700587156509659673563110532367168975568448377163179228219794748945844263251624894723690424010515769982591275700217421954360533115489937692744831860729512136506388382123144552352617746293326536394548550363846826069746332574462621201280742218112129863965134207702147362044350180415618337609546441933648584827228627640012466973800292984280409120612641554292840144223142517092998291802329223404526920888390628182945776852876105435313110213496164458404086794842279793738127729034039861743193738025647886543090876337570602199131978728382007895789820786916976521656233268459517485999153985861192732948246004427452581304580796769215431056224805361074976245730844442625661745201727816168438260162850113297833591850461164213918007309996824502854381481602274265085659022298258639537039640746386981007934626568634525159565534192409380495966790664080259441572922553592646068848865502610081693215888757507388248065143846461613061115259088044660811729131536699332880158081935134317905404769363055764942845283202419210912901293831184395313606765337913089633219955699621876591476727198791807695082021262590644943249978523702328563466887208676086361321600312687404787576533377939049678381457608331438718795940291208194926509556399720354462736500091842171440033015482625129562775550232769596267729397125081425910633937170685810138237508291314640101133099409790559770886061883193986365436090562205087382023575526576104997895663762973152211179531059366055977720314427994496946622304143282350653731593694166403557621191089374620659491668062070239460352686694328898308646988777140196034639269202237788779584783030261984321064329268588175729530310965218315976458541952623353709171634134936157206912806288790807268260172623492978377286382159344190536459372791572959603072381281738285435300350723028108418157234490783962745347198952708430723782278610814008058546995791409100444164687266090361215982192810328548526173382705077688703724724820323021207312140396859624009035027116743436787675533851161431898239707373930833181535175049030938935232195896454875237823053709404287831497629723750087304475898428868336909063581852461689444879212924402556676608941857420602147195767723781396589193997730130928294289749879357093791830417754908317714616450306833006315221421257731187356554208793377246824415690081344223743799321425007113786824212700066833209930737094998635374489960785582557989538540521610093637255940397317782082310814115701057137049076145415172497599014234783169653527076394710974770920505340296170608171132698345038856036515393447334105661489323112498830885715266001504986393268404845333215981921002958777355648171118409339355598517670904857628187016377417614767431115265107967026665406891568538630793008136575873448347627480336290700125227993918846887476789329597569089768279894007270605015729368461903800197788597485678777137339900947256549654502271712676620372905692942002696537774147184696275577965290891839044818660538336091727784388668442143163260358731248649596026502239298309984848561064239954997274879118927151375645755225525190818807236957833283275655433447204149668859517420790226715917197472937968138182715199194757935228303555368941077814418575790085816473294089595670557764229197607295715582265699051871870674958826083439158215369611054536778141172391041094596070486417343679633382898131750639538880173244941044515523301475086787063358361951138181018112025032427085082535114064467621439680221292249055136530429152303602459946443906580472580441156631780517924120688120826000076454870405665821019605535823168126908725672708905524989178036335964084026268107433286017060980704012134704722870392697812884184040515317048835958306609642203465094549457462374924769106388640055237957086173728928904681508611062671261599273606464131587061936188098349042524715445721894865879718566910413861893690035466747525580122040815010008431853625529748419658073610492757763142074043916671712444892448782211195013862456375588117799277174170025115392641641618147155489493797944535478403533462336414615095160374028512097459243483748405346883167955933339778559537245026066518051059341494516683795366582798559119708346669830603858908265857741594100012898323145507278355887205683111261502760956772958193779928939551868031894952506377746766487188735554821601295547352950912015709378191536744507607333645939795044471499977998575911898846447081479291634596995820037579132345702673414505314263522346544117463878374663847081126570352962108269241019622314341006531161056105982580161511106585109980612898946781131366113952031604222873436693094293158002781240439465032225147715850661272150368451191427897718260462179713613918430366935090887071086220788545094118365552485852662795849824846569129298716828919531707626240688451235605008680884338171749001704155041089406806439661312104344556234789965337550982965603297632635279338704664634546187044794770796313090246829268625017090609147080480338156615858134840358630058850958962729270295459917493721070793327082604768733782865233612280914426561899012381327080937922876374038490913555851288811931132008751006931474165937870468266262748576553112095511038558661417106821901976551155567227971609756812112266975799803195869636883641552986771578510607954554303042805416748875584000365675225318283463380336409194189729680610633307632537272944151257605167099837976766627002362944846006568752901089502201121271709021074103441042905764664217044515199336689421941298425638104347438621948741985448708660528536382500118984441459249443108713549946884875019734101132441435237804769416471780519724582832705365523464101814841485599868936023505418023709846693615542067487743068283680921468343899187690937432892000552540208793617862066802694728840277450130108010711366046572977177415633098111196461312181236207465439186298141036543856971688631241820488990280292610824720454376424449393935051427651580418121114103922421077085661917981634823153725755358770431909974449440365491160339138668827974570335415846234861724883487418591956825765876025045924624134241774878271610533475364268077710281473851118574372979436851730159207035756140618029390253367683696539719073744528497956660942074658976871179820281740935424821524969131061486009837020134870668339881004686200299967959960959856625375964382012908998145887755625050919274474358177450700815467687926516384340933472681839295815827182141461990724228512971807765839592383742441379427674909473000176434452878416506051893938296916371235973955123525998380910921314507978173539742350103746854612389180457511504097303781226768759542648357454184790299442403372150650706587524151176246543573589866306358620205062951163005655211347080561521264391314827164276850164464329192290735682461899640985686243683460911665855681442464659352528305975821400901397286013859495502413669994645771312970781630202852700586334622723886467492158698781863212933089231469739762886864975509582419808737802961840414158576058863596821456381797600006264230671487661668208815205717065241481610234632779062812636140836340558307396573531272350324771339733394454048246049708792593319080031394695017976592938043605922206719766168790359714798178768278332542847385823288491523285928942805838459787786141765825410716794851231118979971251628444569548128136667676067778708445606366007426085707661903684848018044311689043181095171554453646233322296257405621074303843079379638271032610277157761177239525766189479869227615822603169693471109736993698461858284060153037835184150721938465723109742959198734384914921279459538273993187268838730384422221875904964112570533946888917884161068097748815745391720389333630265515295329162168857574163782470296578193971146232484091086927114256414427794230352012490695041761825469866535755215960618826062372795640191849477485298340287873408023399546576525378018683917729478070144547391643685171317385753552541101172189959758658129826145177984127806380275693743914501381647325822372062659168141165910772744938035882221597834389753005779828617992087131335698085530967066622654587197230341329612963768527111643908840802784457397416691355548612559056948891675244788533926320871340206286333325541902796179360215745254876688498263805490470726048177071057348371603552471230936512424454089427900486008939270672095497731586207233459840757266313294578216055914233147797171396157328537815541873524949356924193671482924510485925581017271318721849561155175919164593352933546508317213269618975070529092615674198847519033217923879610048386983676598126074625129113607068602670844069029261191431988739810090182534167668408333114682838781734015853191969560462618283607067958301708413544693923830538325480165325966362720838464802467285821362361336018970865419452311630429206018792205227650112934809025750909000056358003723011156989003879146927522018103941477886389458203375802751097559505744152937049155256104812521782332970607231337713605135957800403250240078977287264699480535030469045151123427808594138795406321034975003154764832282821998965535750016041605069489316437756724773099530607360536512396288692662456693717377592044086326729928047554364135655807748808088372230412370593619834357446267570220281203666908515493794419791328456944593205741140087511248662942239826822214867871843915911152725344844969710255464656881457635836522400538722271645864479851294138698324166407897332067180215468730404452521039174916198735708913879703133280488285150697788794802864433359380104560580396281096221453075256172478738153842903717979112919043682267647832735497866832777566756372603355917128875671114465407559049491911545872779565982738418685792361236342915193196925935618875728564735180963368101092714062433688189788769994181844494330391119560140051713308974965733885115998149057674636766883197489503346777723020207095208441342149377870234359396272215144391167610659867751336047799241747115342022633432950269741549408608423572304644596165435186045912648216493915177910920038051094801864739312619410254402893569640554572182667740901395729915456007299315418842418014833179311129609179360053265271831162090098287796798914537280917324032325157077756230297502419974633542744540043632017037221811794325173567434533151566638919155762793160440307338226942737975443663847121918772541615172213946003576196540810801433029088185772875417943528152065527694740379603646851929375742549655483406396466960999906534941856488649165333151676380616152507487483038218393513930780468902825998277332816679367087941162964911728810513521862677646221212887941342663044281231216865614953000601958688906865561517167597150919418681455468804242296507553798049105525600617777831328046203095479956923656061365470790288359969316681959604580355610240565271299325521131067455083738946068846125762133911141114835082031499622721662791124450128288703396455748672940830523513713654935982181914637498213008014679502371928404812957514307068582858221402719743071394581737620663997762737213538233622423477055998081277822028359019802346851738075676507425889063903919796382283457588002517668981949271185462127544432147039819827636620146135619254065731730674463587759166471148389323108701546152283614430455814914490526020424715439366544609804262927097233495519051521887188936930081996748408347126722543716240881200773041720381598292121079502463453470848719821616412989169798920885209164144191121208824866768915080969740175853221225435662170517814885697016626115236407324811354341459114888525587974103151359833080459656955993577252410244170577673234365048905956383444541481706019704787185606268022081274497428655989836812338618638624863573096233863697974049055618425302157605802401001851529346504220793723015532290611258164350288905373646833725414537668250418065035917051983552811397101252980447688334189791062721848652484730048313134628307900176071916260268248838925975040608669308439564655808776083367743380017482320908103575475173034097244005108456930653210718796720132779807453958951978956635419127235111989060524528552046182819314342376189815163764558310743153991097112566097265339314351576997549834192782122704242718127769634669590610823512498454053882581462627320150202356386848265977028064822583920646005186328090470100531864573311358139352183873450009026292376379374278030181279040665158624827358055828806591891476443417653276112787377422533071039897471099393324384144787878196105287656872632759610895202366171274756075589501473210788722617837440546962161272265560325300830159169979107188162575280246161836461280015185068831900182593239051461855876128399162694308258773932291646873470515461303813658389743450034620794212548018836898277702954178120609295282044781945848314055499063833206015659163583861006373869384009163366481410052485729699219146297687320808028474164336184430721829511058439791467559741763823217131517762117667449676351534771113665273712439709350252241797382424105009257519628936507619243967265399314277137665361186395258768275149094065455227889274004916667247413169715138751926123459104149273228557925570981668645334740922047252185201724673154851564438377930476209992012395116018541907121967398225594677943812900165563579284795163464965996697552420298896125851914871501527155336435753544154354414869400655297079287204516019301567660063282987510175102052355547936581507881946777350043248826518140859774031603318420952702031952238979690691293470785882453200470482054290984676503986248890077165922949335159810083733215424027557724343668603179687999186092448542490066759045280126822012341249836414526063484120918895494978089214548879702449649430545285502801792590532702677001515327303081155537460690355524457046485774079239134404052192248374126045456227119983831224761216334027418368179429579269505362144466590312834901625130559644705445644877659761561658125631510531634918154820232629456840068406730836927578341315925719024005002486756672717783282803806208282425878126092898224933861411809710890763002339243845149547515530940955026331574697036444040464058948479902003015424365216596976967609273682899632075019357669202649803135432748728507112955826042334870757132682964930177518801646958333311914031179211051190881079451741188240126803640297277381867919025657549117142730177077137305379496126252510045759389714271106765216653203843144472240068619171680324035587327957390520308973403895021216665729941786108433907594463160640257814947273798992854539255324779400876564089419620537824963086182692779626960188482571274643696667910184074547513414883811669906529303071346192749501251993199216904011416401156251500777152627557565910175608796118655025476645374846033052919821143558098486238581390164742407917292724763256906268355183103907187851760586040601835238949485047228723805246137197787797144043462999381924887116608738771768579951491514908768052962139832475393910643641263458963826477592639984682600763944141222012895806363382651823921887350370758520362576523222253966173526448159497816182981571172573083862451832443589147758786165088647953553500901551929935134200317955917232063284737485273992379183893713520035938185901010925021795064776060043392222790808408532899257182623819341201612564789140128407234471257476492582096486688027050452174132644166111123521619300979368195980559921733111062179547725052164880512099423501773081222610073446405993346281016499149585064125547603783824516411102124548171090833724928036435638533704770139075540473014514388727200387520334895315390890414649559757461066618550768034638940966540082079741896106887913180686424694609862301371628447470480251683988493872505891646923603149161642063219937101384249343033313045522908786897731523166236545301343832218773936453701793329464018116304594257423237247889006376957242038519307988260878779157449658030501583767045004112921504759620240869231099524569561979151942297415260094787174103287546837115249321319121375346801795254830168361186601430528472910132875640429227975028170659363068128812812419014350626502521211291388166359986004592043265456151523489838018359530058422827844086842659828117058941305874729586836597053055239641860516347018622071452519009007250507301580077428073773120616360955111815266801513683925878725597364757578709526195627886793465621600108860695668160903732883344568533769128223779434606129867184275802020748610651538979981068108136203708690773618891708878826579574456021827874952370383452163058118905462573721329194402859748877040476279947488520876890889660626723014054941045776064314966834981166982367143484517413196930851819104664380841703602921551626841644418686084113756621475764719343944123598672230884554681456416768722361078639080464336988432719256590386362097270308892117142616717531910466019230587365989007594555193705215881546357374747383253234938552255677806210661571696423430187487259195236261345470107631918210252621385460352183429375670496720966083770765638283168340524803107368358018032001843324612373157975795922041147230693968575280825166423482073250087771573148127173899281210551322678121798192017503440863458440894076122435395112110754962250491926102784196592819369490518929505597640416991869671836488805500492629422791250703730940518454764014771251860715074575748488799390736999002674772567074086024403737759087264690241432951998838686402334527085878037841557080096027433115257432046330641059091031608558140549862134822607856181170142156996398254001914602078208681289969763662766443293692727071931157966535248289730156958554076548385143570849197879773890773815132664823778533823029527667149092227795358939951046119381617540456467132555089865854496808165325175877742495167272865332034356724530884931511783221982703285376565248825376864613852643539519107228196691482049850793324111028108798390048764627149080976342604497083694552662313917633386331495061231110794247657251391699907198258163066706866539714068631846884604246200401344024784128105206914560458576118337132933176026188485080179076932569999082663388840803216391465209625715887890430791081367999216117250647795920526684657863047582169896484145816511393500425212386865932566016223224940052774088494166739217459842956691149362995601781423803414616394853886345321335935518768996166451418627138099502368803698184281034279377050290841871445170046611712423309704833094205794797176770058171186152388655268410758590828039023119239138917256492250054952156986909951174580782051806248968171629996208464198559463644219080351590342518748561701183333128427021179325058706311700125955548355387185474254467603293139464271298442969729901628571714761491074414982706371178604256333483593512431154806966851197157432824918306471311177388873577421942658178710948201396910584099155384751795214833864696419545674468593015434292024502643574989069559401446707195172219632151089783288018697612254756457407816564957484714277833971574050280603197373793794118066550658044019092774363698420843359063900846591494905941938833877484703892351301965358368308646875683205872701290589253177088283296859370908156075019726218495987299926473537938945938072209949819149643356599234619845344890698468782679622124929084164468616806149157702921696849426798154589255994907797817420357837940990033273503657080021254503337448383688286714498485352508469615827971557720146739438952226298693374543390134046017498038599422625049948779682088465141951606685406062503356063810503250990918987279065432553707628566937537237226649207133415960684334060417519844101958187953264762755090627093456589214297278453402263331249850906877383398990119772012583991904079755694324200035675663249808935724855051174944833753456637770611694791977895452889278930131838913645539555633619695867734863318059044883629520940870467565681235155135620769416389607377686652681134112902886262535735020972964072153885725094023466804695695180717963355530939044314238003891247846794714691872300016306275886562845150297201001846566403855641728634432706242848417410990400112047167440631818117082807053285811224816512145011203474381701242471262778238075571895310512973992339547023197243893947755109813838501999787962563972629813610161244564899038138875721472916484355887469647977244128483908935288552611463404257393822016742409679310889900310896880886322524760614756905483038903068130005819287010254811516510067497825084221409016213105879684658853126692035477144229026110588458584877535773541918512865858221360326306920687086505778056531093595295860558341879487869268725662861921784310922173978160374727653620750171479330312025951839789661875757770336559643775515366248101963061061930097324348691647219277063818713706789550723517646646595887412090452234278575913488234577913189479813798695647812130741852611617289772193615286304866840020603598247362153805698211136210209387139563130998167146814156631674537348946640933415751531225303184729020946276603284743993681538652822004934389647392542138747947935612831789672762480138926438572918780540528108723061093252309490365123284557518051127957678818125419846452265127822639481192303396719981098155929952936447026739616073175496943557144447279390151884211021449849679289838513779618129033907441157592421013412653520893968718514798064096027224514917344405794093554400872080527545957751955360794236084017242978239210543386596513613142332615880564925128845208412681030651011841341322562723665555593433767657349252031108177360252650159762975282236688638225630092680522649233266633788908006496234454797445010744197685106101259703997421118089701622609478319467356711651516979328974886038628580429352081453607752441419491583157861711329388840247928951262947338352495024921625615600305327778076855957585693580205842740191970037051025033945086995058366989898802676609633491928254128422848224634919062517206326602434054066220268597348169581129080116475152253714988920143587632296888362789781105639110965264822188841058507139956561166716600905721605944808422992265469212497338714231100693675899571250616546869793485301938740896953489956637179228339447640814822451668602544885016460883263429163972697024310036735811257950596956151722212393576329981309435180207762583384584018608458803426933065316019423466934458512207526236906713380983633706023891800696817425888207274379881584620678643616037422846490122070204339560639636475734471566624256008865429003235733917014443786904619228333079424372360955358516437721303349141788319687207182566044196367518880335545226592685598084427652933013095170654873868903137536855861990329760557925194574890990094223540063083030582979707735986871710724516377541536978957788274360316600607724712861804263169363387029565053833526612609880500858299369397293378542674458841337690018954826159890422194784533192143961956733867200415373685654850329189143820538497599221776027070965628397663160703238380903834394659134903052035383503713252355561332775679972858035798194659230841808129387727377741615747606278001690843718475471354313391982171715706375457256163262326305761104216146560421760660283158131383477063809036379293582461868654638252619355910790427175018778768224443627520093644821177073928703502623832961686799636074204139205478745263383219159595884950364537041971723477744450737953511912725204586105877375490425481182096107379655257888787728463206225335330474500296955693802361851951602004759889275431321156771896946970271320162284596002916474860330460966766044894996224998673202916839626891751221759163590769300264301848912186729690796256551249594235045415114963430153702247898302736139744378305678554762707512752356628281746983980020147714820909633186101351258483968317065099555775025164454535378214936382197415639462651131884228919839389465518481349726534213922074173958513008752398445694849391246301762323671205426538479761542266156124664564393830322897031158085986717986815060449863873020227751125804429963309811991877396394699371307403149037829794866011184687516901848332263751260561873945018644717425054180861007617082409291500642681620546365619417606138184203789099410453504220734612094936291973120391162212008538421745934413060703565301102786093106245931326442830934295601760230439955919093031501429368399525571095494954741035091507544602979821712124281364290449857452771619295876895023936321919748613131987416098425566879865597174217376243123188309806026486241951637965048470924171248919263650845717778906628656097666613709688180168533692588257827104411656009925366851739142393008908488863211334989267115818425712303454400517519143364748204264972214784646693596155140701778622283896492651229606043753918458990542580881524639325019484886779967697143694508701515643932253629348588789129497547463787884675176252003864309773316012962531315987527815567715291253519513172557370882545030404557165937652210098826601372549027447816383036219897860251997777657111513111459725584415185236763685657013968541034599670032658223329403200161015565011363322646473487491644059907396015912592444032278752349561947593789289829937280106859737902720824598621078880797163804815441993159538040091981087970891499402713005682076799415488948567044688392056668301620820561202603080749193496226230799240813057621764668001479674864436236240745205096839933468453240106103677027804566105541489758241938991642649099939382856835506147562511234208709150582767179561211757557087584971066495552547696696498786214113121373511764016902745252357249572952083480392458284589373964590584081936038469324260600792873069078020273409445224118823238178054783571962301007274673441132416642758589059656579577906385573806164065951645840272915600351082911068843367246804008639405448978550851914919650249409068773226674955518595680586312650718022134901920940448474692601783814565946744119355105692916075607525023192340895579534198928246156881274613616881981872338415536414952561619001892779566176640652111764050168428390710776430673436270827250563081039654469920879630506458987768342843277026273894683873111587164293832325149065888410417041294588562156989888789869353812524687717900037055913561464820641126093253782022084131649012159650051254651541328279114781054566100277210002965827805743454203465830173061106754042320000490363984833733715788409316428108094996060406700718337744841080346416072437380627137361535002270667687741817603662524812319667881456705812815722227245532245848065261461670878240421642904856892113954239507674850247551180785128958828459501960668995580583759992683435209174179778446114547739935592170730909824210820909287789672179148604966987664347176625898734366109121469443031303623731171836540616989632224705997892579636238438815616026456340783824657782025769503587821656232003344334222386649861732337691023790428592372558394136309452370661074497264986188061368590902249809365740618757763292899186923050554822703746518162568185498685646250862830760005303942937575588000494950877332910176563798565118248605054755007117735813377151211703342630705047973343457135002280236893663674452059245779953012836761625248173485848976041268670809485722998659255431215518350226865044388083203110788037148659664501557671295911998012347472652665192758148214054674593640728477643117711867502110019659650191336522279686658683708150139352592431409024783328840240867434280017328622437122034753971733562977983173578699666465040677709193625454281304902329437336466923033169693887361760519724372873766590413546174860875866484459783498806023208926058538191128699080750899186251776946894643556376958329579809904072121768783121065715619434477970757212124537990488324299844560929982945830212394265304899984350399804817493646205810004784137952502574258324768769944653850844963274017626772762544265153851366677835118758184903611007283716167834176014231724583934074141313365121821582014531032558183360431682266227883483868732650850843446310443804680509833992213790335433121807626018529939671361829842988597793734988634577206424669671377207482628419552253828561947384792930070577724901760822845058770424474834551843773639543284458295086158457859346157035429912508014133816130378915406210718489901748248704412495123932002367979333803695063510978413777770686575053159187213501163647252881333940684698342384582177577978823800769593382514619908102074692589204297060188984415288045255303146158881734363738970273801281852685554822044458603587250601540929636689300154137753271307164497490711042466698443786413034664190523636186274601941525712274934702881705943448030363672973744258708646879766732356432517047500403038307331789077732536416927978973902257975935483843713109674341210698105311129186426267388673704793779108902430175529388669394929508818664857319931364602883448844285230494990235868675935054191162951037800445493364331958932791976273744394719914905082950937496895481969126778682792651390971363561132189200299685103697864287813254042437634098328009822913287896444286441153073693581597256311372655185380832841869227138062259982294889906192980856619146490163112793982502896462154430495115835162510765148591889079318570321757004656134277284747788325444049414465923633132225234101971714238052145054021746050239106788493084205126172467143447562654321138462697424126625594060631630051384874278402785163300728029327476034313445928608285053021503023390446486905127686490901217603952040132407490515055160271296219089006999258021883721962054954491699162663985345518727105923620890352304546666358926662565947363769195359654820692440954306581832691752778521354648798449081215626305307591363707685677099783342618975858782023023848644248581867621900767695823502052266151495210227595209449680349748809724054444829534174151139477889527700913131595605000561544032128316068059186900671020776756564061504093734831820940794372626627351059618007484366875186330100482156092753101523177889795275699185311335679482630961351032093014429414748165288453601787602624785107290321258276168638186013529840615181014649960802786605293623417077179146763386161321066561507180864789115523003844491909817154805949323001078973398385067250463143467168667806531397179181451915839400504684223781614764711002408983561210538240960798046326466599539762494231715823781950325075537994182615362799823850122472652580878275892219178618125031480607958124157726347176542895404026742816077179848765499027951162654665622449867290868205982847918063241036506645898213016110162748867315178928516077396982937088404752067331900302457464688151813108402913256235576417513747787546038590658727792106749313514655880684417113861217895772877827504418637006808977190766341956789412352784235656241794321002379970371161889415690635258494625492580564790644949928924206645797898288204136542214833775475602823482534450930464224985012890349646421042894959136461628535743174047803644970961420601436175444635196100441589391676278227315993636805630452660839671622110633722716774082002155490999479466346104657981551541524868464245832836503683829961525630539079360349040267097135843545000384861097824690136760147818947245872295012505691571453600575312570100426881699791174742402717270616347804419474884529025659021015211813065931568058594108827610809752783077166954627680948699795900746659105370769099955943815794661346113469799705147926977847232028496438560920946534285323266494856865125341709825421091340019047052600345971151803344070290744361885802987605766912369495539619672929356842006108658338494657658345903087861398655488434434770141218871698283628281583305516944839915248663540115388834178461961597230395689042665700656443398136896049316099158416520975072571154309227301085523124051220407931175595382141610330932715257163644046150821005173004747510089987170693630328279042129649915228430700455590686884396229804248285519981802554582458028729811536757385962369225374791755475379214188487420746763268462913000254949342208542032572779215943417203543477485975149032316300841363701110144859240341788209900521393788375624262893335061602770524561805851828899027073079123264777784460466535792514320320764001085218362590555882475402584300273031945497828591991306383910625270110077471931156904758502339415741072553639201808783257411040865247572255368526153150356205895284888198580237636762199974094754283515127941539153984509252763344520370739668099201237624351708318588803145885639394176155271893796947375535834749740395706823343612512146571881708716079225394884934478503522599656056329789208329328049709920093876658989590992110883003853545461914355844467577912035370902789868231533502562481943562049089790659955519130410195450224117871263767945797563871515639863186561733513262383441060135745010275214880713225325484098166681095482626918143104260401710015096474805270577756062511977168425101106611358829003288966637120960397744532137645332983275415996556492503276398725112795615318574306014517773939123829644380714556853888232267901952975163711213574149747733722167632044483979108969581749148523334415304056770873515344260296534927216993083665113081186444643983286429712133810520802336935311775983980892136096229827265634465916626027159981452897217301858815482635962716270155379580948503267918451935400973795277759381590793649964303631210148855194590308297528679793752192557616145835564341103060369680325201383584113554948775574813567585614030857949168406548442196363597600613145056890349985479750674290954851469728782323718413261733162420383198514882996465235450813143657603098874743802966422410436731349185676283349417640791095771558813744528309164432587240200322699864378217355829620798816751981861349399627716106322457671415285165258217550869243537909325031478627013472149194245206444948671811321940327719231558163364343471068887863174126105064937506614691447461126117531357352975448029654321118842137204835051270114571779341430519522410133120000607718830495804165664639727272300056569874234133304528485652952640037502796798665380932298873744714929954244930983258954186122675800057678299430321289865707421116640631857448731445592212931553880377236203796972464645267994630662082436932090076867213821413084372688356467027209236934047558482369933468207980130426149640088522990504793549612607289324937301444185599392426340619819214407867548471588993702483884204099776059260125639107727944460812669165713041396004609762532121175954263775747763862877657069106720644582138635020621277295869659882287610288094051446354009147577666756699202553561558133505655345874468884401693736318271558025514679285687470357761916519357727226699358101333734642119619096412369678858426533333534150726313412724608106110699787777449726449852245021276989781207549822908019632181957709026798920265864395816462950390107592626987060463471631339346161148402740881617061242105465566626516007465574223736573776698783488784924403669423947635891937688578857281461372760618627939567074653201666700419403235245939020844220387925201723475051421791960105882809174068301636408833011461313871223280488445607969249283784857292996317733161308186277723253166838329094831941842952972677599364843487468959872352449472510507133539733565550659254717075449741860599613451936373400917594782739918690219452324430416847504674986640824336369803114011213581120723521266292279258502128078763565014819252396065141639151883699144183210652505272803659139001773669493375582126177589713712363979425035183076734941596649620269565628845157578233037634626654449415161989194722365283488784246151933852005797428212809875633560752428683320180954585757068986179519738906344720355956470975545923601414508412309293586150203767555879678498724593426014522422789143608264634884488095029724469315625616781157702775966956097585762971729002750575191410588485423193319237607438306675774888447215014641796909461544228286883593638246112138999645926364229751789865146431672731353738136594374024049689373549463160375796213506131889536057452659789716705576716171487043697524869632261008425285731104777916249418250556926266012238835457831093952055493627740419156798738242345425873221923307505033289015751773402283592764235278267741070533595494459491508750863462337284971296915351607413025495980087955601549206735899222486194155470797399938040792488273424984729666474304182294937456676446944802873191703994816985374521776151131343778774041051212626382670118470799729368726611279530788351204502885761823696280663202533433428629321732695801014083011949194675321171969361459904119251765868617148343282839159139238860323162084919728072497465270977104766890127190600450537702510876795641933062644279849285560340806543947940449592889859256549778485780581575611025013547977873315555138659507030360949142137804901411140348991016764092964328060133284739323000300360278435077849589555408721627793526947063425973981471076401777733143424330120111180002861400959662064077608054375226305196553805882570104132452013545898154345187522467745102022185666232229331692317395469071913890731304196978748309649105608324534072544999172145268535810212748946599316540333102931394455190403134384602174505331724237858344470695394323240032460122140763925973728516594907271085311257357110479659494748955257641066708488976548481567803596230218188540751330366001795565649996701410684440155607115925177109502216008729770274502530795983805134196324378277897424423738795948190409698733185189149456979927558882014543487939810748485693684573899151222945593402057954332909858199372473937623560725706457284199794060706423557292570833338283345876080741998276624082353813163013393310788107914738679938824173761076056326126189004721094260254887196710856518949605132372728819568960832077805079558810058240114728565220730204452139573133643650861527545218145190896524684049245756286103457442668218634842652283571222159764070683387013237798281377577498727812433930207557474453093980259079012375248742593363959933731909631697786299722730366208641740588193564509866705604825067637392456320417644118999099592575734581382549582593471278482369242684304300120278447477836781623205841990376989908502482210383961237292033545254896987435051125455507727333292803124838446271995562630556233772195702465673789977845066411061519149688676721129778057660716018735635158831315523758094031551503993464090382519800574015891406185437389320812175076968951788648906178697633776271549806794491264884470618922626889251748846274109293116068726617544210076289422713995905403664997057776819024917138329023828346733214763708494299396128708353976845566212570314499436648890675683743789884439162836366309917515775172669677671247719648616535715419659133374519353632900794188911519530843474216887835929159272603144380129620739547773864663850303224831418161774945534908141578190633169874851286592143886213161660025128278556681689493042319781454963972357194003161271331983580855977899534048106450347404141011908667510822462390859393083473024378933954532524296352933583921115287238041332272443785889569961473916248295484175975156687925633475405579030141388045543355013006718458117400841423917146516402830688376177949740460324492932543088495392833215968756032037645526952752646979070539604782950615703370746260157836002315867698834734028272057885226689672136175856170511966281087137206943087923811067587604154450207834661036838266666461899811190892566520954355108224649980138492846355819726803371386723748891054660070224828160661618817997901714073089933769592293461407982585847339601859126000598926167061135094166656981485390843183681912626307824568228663776483689591730469376664987549299414275507053717633060126396933791456282009766046454688981563099487163744315020641339681738953212778573266335549405746292765078026818957152758125788298136721950362595220718346055965838930687373755255898878130249034668913058767118561512715097767798975221190871426954330600117402321467077653149881960885751214959398423618392428181432103023380069482206867859166989780004975406733475289464647370867147197029610010944177582575222636316406156455335164862849978645763988490041467849553243531432036686847005327846049617302019758300191565260858928587593600588848885546326090851310022536378859551578917317294826126578057674497033449912202632699806946161592591973896346910980614545768262227798852086711271831111433571022876513409603610571942489210381466380522113797544881815378506556019217616915684367960616431561807002690973454086356545418569365582698553617775190367720656772397991088981925024561937285551248507126954661180961413133905974344263494431009788331025020202685702369633025710531768561750090463700364080623663503567823714945366917964200570992966731823572423389898761347399596746793105185820202766904177646966848581443229209840198239985345052924984685860448328260077730241093289213965710630224925362684114022940158784386675074115756014306926604034105293723817762083992941503897366041246605324317645290719386619655662328647618284886207098850846285877293166142334750452059288344012694098776673575550733838854217623695935262020777265933038167065796244948280380364731630547968580427253479856350417757571468847976572044405089409380892414608280712518157351786643783282690535518277814894469951749367770676207411939667445417489953407442418163465048530974679850373162336000131146804095482441029928773221991792851746760790401294311451445811492061528859871407260454997929083747262977530025902149668003920845153303737830687535174519721524803738420144630397281458983771050845697424471639284572124037277672137838990175410887661033205763903156416326567048659660520140739149105657341816286310280852555410394617862429224367762558398063613080471727573751824694670062085937005971163225686223983937900785455210470376076546372739211987368346817968662234797976336869568106286788492613707536473496352000227206549254099784643730822417965411036709310635450064975859897371417800174125793713921047578511329989771424386962458261036455998998113751491629262703670556796328518803758220215883974619638074886727732148388215632032236052102159215046828503850204206321396464805734100240039065251137410537795110585288880389664383534970412134205852773181631723090993266235360973393589775801634991928604906327035823960580964451455284285520066486057574882937560665097348436348635491602703493236427628141106375138838946853241029272375142398166719699906588887300013962492927074923397090186773070632577989013022431829197664331102790254687971015212491298299787411038924264186948948689874450233057846631220094890790031922505241962196981922141070133940319353430718094027056611925732532387260880132567685832062914322589307370735962757284728452636315850041611481268393535760124211735361617064098432912242239620679823007238598683818523387188038238194460154913147077763344242461289425787045080281054860635950871246444549124261905300534763115261323154393988457537971621620503025826147677806619156569028054605241467910569148114686414483421785263936281507712504850984921803624739759816549103822078670046669346152495405210446349303781282192597817205859938609034873152541703665619349460476582945625602809005251017585908015265481261074305397385537034653570790875511337759466205999187347952557350090234363676368923339311363233238177406912378842658287466609448400343698680447094121124450600283286641969778907176944151586510823089966430546531922749372540097524056206274114208129472780234540869049480036334961147046102015268533664357303085053922095715266282186862890555376361568275021423526304793862833194460682497399711926797040085627405204892014745310066546587482574123561023853354261766805011994138172771365657259410376248192460454011009840028022158983034315086394631637073030404418603123237411361785139518598502345997026642129101173345983974713669049484995838949385671375043157991635519675492352010948812924927138357176480111504726382762020565575122908478037089280820899021593772838783232535133600553889674352088200948834003703368880160998206756836552036889426871337994475892299390206140717160974363255549428421525227960166065441128584635000111267055836498263579609225707555854224997777461106627547811750358775388899138049131819102336976788337587267969225957399983529374758267304579373380301376920146736480844784460191294849970033543566335796769943838104914122271202715682480100963650401294320308883086104107220939313265239774577009709759910120664338710999558369032753171108617589086062595986645768908393248352994810100505552643693503971972459036977972762223481808091785465810412934156205720442077695142999383846037735101547071949702772859547328506947939356592244298292623301068273801145734249525164059563986231695122210226480555681813941058600989845214964831190506669511982959453249575362617805041256189793964573944888885525958166919601583899608776025361155754031765525987228067992165236364291941542747540431072115468917415518482828539862289981842399727241765479609005152567858713411105358077201796079956870652867742837465750913407978635959611180081495384056192148341699026465669273885664094285596348259898731658228039620431929857021936699244453991299911775336296102720697413883906493222447670971898706887388264034088923987411555793887119503977737436889343212031058455886025810754326960272744299500358999847080653379850440789607946216517747832451546710299416290818532868639014470011594882795243064975313847201963506632104147483479040171002363599291547080597772133034990000636201193413589939094219361645431702639810292182777243744994744064320910866734388553392663032401822097069830684023348730748211286583557245406386635856383528809423432612412841058435746275805951325093992732189439215908211113843755414176149490449834207678038148158424700842335159305878903830771923729309734263306680150501290578690221395028492058368804877767065646647871952262566177625192006592979858883708416153867005831088685063263187099657896854976220090095485881553137117491610119573497980835601331662066885337609906634377142401421597433095384096034645656405738078640451548847146816541869808835052636756054077300355760891430079714832546185878483351067235477492219285493705577825020332812875920602231348530864072340626585971419018345156697623441022589548884069842936146260316994104417126899702106170938703621305527216396176444780100748671278521700207737159971365911101155489609893952285791263379273073720138230320592282645494760338578595983463058511632151091582517961621737875958771444243837490485517831793821919324321094452504986534297875403244512338647181813789051161514508541615029049672245777586093975693609316842220414715140879370768890480479734172322450570818010467918118014717166650694397034166372307357199542862746523029884260174596549728070500451136739736385111089901673907354786407339166720314399344296184304608882991967252040494564530387937639775381902296857378475145753580013383541299964770194154280176172082677951061167176332897407330019181423163965236381107971820061597540999566937583967088529778036266894270088060604504565923891031349893325147181514176643862558154005515451961983238211171647602139014718266308774145484399254465915791452286816231278502107265130918752970476683294257109252262234179405102748674907088054086443224975215600486624728484260650261360726091841120375922462875255691049589594959275659607707890850489153636530868862559226749191104876602904365459641926609245776223434600813208455898612899312457092303105188742138173364149734684419579330584194523171718470761305989946111124095029169451347140139682344342061341790063951020277835727268120030719677714284393434894695159464324414541320623056942436672662283349820237314947603698390665125017723423822608417396267561251972634346842203097879571385753013946319475466663238548939334169324801366925158890468694614330526247194706849815704207081209083726079130440805228841386084281465947162050001480344054529082097529828403267226246620060154828895803596783797310493938332053902830016955692130892207995147267518092527966321250439896499950156942011428634483691652468367693026944857760206315393225319501666834516660674339666725588748164741287916941486602466817963555002605355310708062265929615539867363108603090302550330263100251584824796408628871232550006038745157496865218489944592259986821371857563935003292964818554952026453147512383629349175136839615127644764805636755224081375890216991877475539647581199788012845968195253223935277379777812631290809602403015028072047557021645888858481616043081889140453048167419471403265364606420987491846294003092330013603994110504714326634834927130569101423207309820158873495425697842205368243917435415372657670728564232643425998646189679807165682870967682988967891176543450894681348854275052200754317589155548362315391580579937547612156692608558056788835871879961003875502814268364897649181965608568916343645132585363574206743230938258199837739677451864731778670458404236424801043512145428498324642979369559762924824466726119029859333787478562012699186983791776184828470843872236328343006150251282497321632592812135132872592162632336223818092261602650207142873533733473263597811455335789393140748175208088659573045071469307965258678873954442250492636042022594370904381607262193167992238205498271325912848166425044236644765815029444756832881643113816307069612657773477963537824476527483997261692599076515138150589590968775661519063560405577924317786580288280740757428045478626612788607467901449893844399756399063387840058912057034309154026974406935083344011227106467566043607396857305940060158421483430531777911711604898656143620057033688835822930190426113249905942649967579979177205130437385460507077155859697663150881502533622523866864140256120042237727731724035473673918362139036528528509220815753728287398834291588698134604048809441637171803639742196758678992332767324275172259566762712020030110832179178474344099258718596509075182967701126588981205875724412863345317896009568897607161989723425720440425828432472639657038903292392157276458199821154847608264271816669188182009260251229467870591294441761551339858027623020353618162646274691641646822593318695559052524205309783828774612931060305077611856476947547646944926133926265622750556563169023113553669869021325898591624959659703547908906572948779501110543555183968462034913485127042270686927426554006867777741089720993308440277931715770129676094168650077390706232429582704567450905326407185028876274054886404170419728038658379983742170020129595893382977781622118153890608307264973174630952015515574806224582765292882015878715504817627110008075470719577731440496310750406504645991880075039231031376269828528814982873612154282759274333467246123266462131810925401515010405287285308355689854102895708154131398396789001147428555475724600407370132993052002406601264294220576746926390362404870209518098535888328562429291722693166999098052753382157443898926868932509048937451926130644010136601211638589372379505397207066529909712994659485957479605060444927452745498803925836349350454173067147530356412878504879711350218718069883253638864393179027660275975630400917048320410412872521061991568336306235397922874373372177101798790011017849706788082069743176621616401028046277292134281039545922035755390175823882220116444413904407537154028520315996700104847904802245703933269797848757218631179697970757415718955812249010175000976609295215334588218433092204553141078587331577028735171596525200569116334011820739565987595889021720527262355935453250135346306791608774598818242525252703298694991686594695520394023219273874724129684209280294708091936196182826681967431631763500746501363705175457560375852727549480504603873033721330516733195575364578336770331944829161058884588046934795618635386855834767811850654585451819663818633250024428867947136253633791596216478289263616176121150332700920934828578460846539650447676784610200106374027424014282675701556616801757462878560694173182036280877671214192297304675115086555064760283912765230383940852062943265332214333744298015326906866518891959700520494672448020428207812005406163659148724229164363573167749151384290632551962485500666250528041692173897671584221003063809337883970869607988040532654463977813480402226407065964897908042023087711770925945701154355904535554466559668550210583247218987811667743672260781153723674183192325022092674041916618020451846264517108378520134942368907892535478213908188287143006101052981394214647275897801035948566821319565482822930293136225007715604525037024206068298319467869505733989028751515398950092246405803822140820297548551346898569448115900639357120142103742315009881644726425437547645490896288668881105295514130629519456827364107748082787167549046749177440748843433743001477746942046314427135513972680265885443962689055202817532976346097874373599099056832374273714646095637682658660193918685922494133806121220562717594075743860305617772638408188666871808508666317317441792930910587722092159648553530248089603690202083614235232053154084095455630265826858164543902964204407969674788352133511016621927314744924335701498495414897883665028214450456982406478981773775655140976173081155441096445570138791419249985656731783207037351343481441038281257068142929665697910947382652042001996427987797457831940518228160359613492648355530701625104891711159577341348570539590839923288711679420742609432794797972380423835005606830695480155423914059781064300652521700293088911865235164839811467876991175709442503215240761002427793669610052291466321304749538165582367259922697742977485331527682843009445766341631250806900731247657492138089436816137753356640406445988861565059117840574884231001324299602471915955018974895476458330569056332898637134914717128246211421880138971497569730727237725119615160945958106259632358916947436507214279841005345375723192329315170057362333902021789182837949815506014203921066226343576371770915376421955309959404497986368786053286117222564785419797317042880938748976106959555482805696292084771089608043346943348570790394152771939748884878271173488410887317528079724504713032505796526286090389704714233773954188435829677516656482879627775231705506807795946894423807956500248090921329457871000574962314767923858888991329401834726497710918339136344424259738720335100569318769994394137719681144988604889945646314334432474808619853774459017494208034094460939116211003533368275732340885849431445000291505971824957296420300806618579897149685130406011074224281097011302707755491037691342857799842821819830601912467006396636504693954713989882055651715084625058580265414964346123240331917189393117310790616006376760543158302320356992466398994690219824944154091823640097464029136317490885257701523135897368791246849980557192897512924811643830852747103473255329772119267800662746485315193282712647693659615360417491843169057018031838605309335699338513850028888794576446289063963263830406987829283954166054307466672060234788455649577744982233363799816709618929178738954230763523577404070433742728843860948630471533383965378126016298285848880989541384552466962327029179921364794540291144285702325102498394487183393463575352665088104521768476014336928605224662230706307207998065542691195991289230793696526881086578196742138330664752085878332016397314088189335518651723446274257102083656087995481834528012732638927860524358541582329777196521761099354428840474635038849614920025178842273837330622063506608812755180410566402362914879698807088428260531168298894002956320389082649964701924720447129474467201350815009599120042665262765795292427934194658886367916295075902635319380745477618248572776075211698812012487776351456569875520365580579685067242780396946647094905354778695118147448302346040139763854077606916516025563704317085343857772441979433094337083781624360605015728447239562015246324147620181059942101082818289905366354288272847070520416908080759693057519794749160633302951110988642021065592228801901528867992412200320539149517327729531387580404571317752981617423770638345565238836025521178735446010949728899081832409394546488824252482005243909165001486653571597840364190553000583108139419704603095410026997191748412274702382570130903936641320000625722675254541963764239818889514720763916160448063425863460575899259142311606444321586049456742505352029077279969306237181780656460739252057071965420937729061933863833417919590578889033750083032237491024254544037028862184534277684203283663391772587364696603483205365146739191727040638736472864503888268523675611241131638851068537248292394079653176377507076595807791198420098943065626657332106827884320469448801903642186849113424488002533158477317045613052732099989698870516165102012074705502754271837950469351484663729605555652156482851221684381917576566782189005827118363157117512921201277840126029555591503623531607582816634983079365670785084484514892241130533498175582076773934752010992876735374571975237761079025018274083035876715832162328364019061839498462133782368959220658673595524631947786646082414537500000692673404356332712195285982056251148427509484246394467689131848986645419830609367114859693305487071546601224088739694214137246046808762591727173364270112130912331992413001508497860592176072696329959112078156920260835915385554367736742646950682249843021702728465495172326300409606373886453833093338441884664727065412000369440188371091578746759035481503997101169253032598091822051449166077616778383320210510368375373111124147793591373276831825169349054225774834222815200983270999306856489261522819194690933137196192074697331595567334752061265212667726372947362195376379382185175482981139444907155501794761867862805770739904293380658906523626131618641120601984874831941540871557887810198148427989238386127948602939094606065597364504736826221539497679263154759909316289628300931116896927229473855057913589778418212688688135571747153564170281547017219637771974248558270994700766592661415476588786843534206359418672884702235568310031892228406348802827054246239749594463274730933845014155516699040122963939338475345735199381453324580073345665007794496860686198773146086846068517545728289456630945970339032576705913549379756744572781604396504193063216204931227872784022580209503870621319449299616254675458982683576699517655875271350378676803240326203246797386718811744216330143611714398604069555202809104304175999572331748109557452713938512610024883078777548753735937009053268897413189637738328430344520002719052888509953436426881837234891879661527681842415873347742009876909849620015843335678233048165202326509584981602207124556678795952555746444286905955754308367159405607087267789138765559847550243464236477223260253979260455279286693143673757698969448868048404401834197076261080884076284818472466510495333178434141152504135607295419736072615295449357855046756407787590239082820911555634477724358087879963676457239084141820160647837448070376923841749622958510242655710846907419981769661217250985399520617305213053051494097364285852786578769067759715643241220936047861419760305010534946861668535612871986600080071804612783442727776733383224544118786975039791360780573566708076877017772212092997103227426000465180983525336257165924034523234443386692501558167136057660155019103503059998026420678859959877681996274210975245683150544382863453640273463967183987802472437970327706014877396060927097636275124885212963449581624057087403436734898307524879740792899076347590204595042327312922198219997803797173405799624282249715399935941469245903374082388462298368832714552428481814662986907043995980023448062908087924969819508413495956965277236778465350158652600118731319707060463002921688607372979857489472444900640125265196900459719963015551997576975776275796533037118141294225891512058116305403919114306665323148440392151295663480669020960686836291294426301235184492502203819635727408563427967262224554142606461373302147842127685538718469792833892548982059192884329447750812388008197597182188552795634628096536654943868878017797222095704408005126639133647115292111500894560341675593686804384042129879796510697492961885197863867253210904131929155458959500089116488778475383725704430038365433052023080554138477229249045832680196671421073069731919804915089367474541832664245224281017576558448199741186700870328644817711760596631717977553959645596550004102827528316289736386869990812592794898258974011968712278317270107646614158862966201957917749745181971682518085184178664660204908396412204431381959104578123746295484013174148379434349348289833451698050757385521365696582031277388526610866336375392631614194212355607860939169355839602853238736432344394431498131121555718567396746818068988035838898609745645138968544168766936447847301466139990649015975692413002644950002898984610052122508262664077328886486795537320631115979864556223323898216760611265492516629922201403807912308458385914426031964325995912837390283000757299345234141008796725648814635222605177370296636759156928743535077236525068305236014040152018544238094829179471675276509469281575954623559239177723505325671170497458475151776128130224319193556749868918602248408532305205887784414674630604974389950499127529225711951161544206362556291127209880871592245457287471415399423306702152052441675887796663201302938170267041184896013729421868159018834475819048819287788448672366455878322327241458599931468863618184048566479214653622759643565483464283646124066867720854429585074618196833886818271010884259423423426306111264002650262066704055948008802262068312672921340771433910912645011018317506251491045548026903117800571571781944079269470754078479705223904049025550231628009200913976841483090800098788207183971983627792719031524957529933973729283523678574184196058165732741942815421578732070093937154875098076484865508021001983932708333702357679126225467156262510402260824689231520542852702401985821641162681297090301278507749010616174703681072670359321477754759083681028499793656239099541819137129703368203623793030035605118742392863362593679173859231695237396311493264607635002988264903455620677212068591953641673341332000139252810744814900819553257229026141391677578054667142836868066055470212554780779671899854470508138312248835431746972863431683362270349505106019537210181657189451717097437541296922818589271084531096020837978378783861038270322622994203472627602888742937709019789470302623241945458355355495161714224170050174556245439120979511103275633803969017435147636351851510598513403423667328330528247275668401238407013063620242965218154622601675107312518424824497193200595233793528591265902661021458683197993754367751679539033657210276849377407302589726303695871479259162162913681170283492282787407684003759699571444648500840015019842045903397526248539520306297970197495364934102775585020411545749525503854712529629543294759987052713244489752066442085193327101249774013008743421857418433395914800051459526792877329007316825139884166879255774283369965067882360120637946353678985947351892626631894012851072973650178919444178786652232025951011820818771742419957053958616823922233935658585952150743449103894540672666156719691968770345736652337557048542690572505119801573067253658189219588093575165909182125463986236205747531241794017732385294687425194631316966162856337234312992094784112694624127328161437015603723874876303804203524393809376509447528389891413963000601725411718157734026704197834238859122294105253915509103759740686494709564129844461138758010453755203649143515719550848764880133166321659517464710089743018194960727153308122569906853335088087530697190315310602770021424210137109344992648954579958743384792835780507448651313214709770818458392954055202164427122740839292280530777485210541286990035803273522635087284264780505524633502781033603765846916687024838674162734765953372502180313792697000386786913800887455327221093467770471345981660881888951970067184271350756961997792684139435304510414570493789249500959598422059176041474141547695931320052454232455166056861106345253398295936697093900860531520195596791359272809938669748263922850280806204999287942691022976284614409779697202269861139153976164405299296817226947155474199871930855626525866148453730889275333928686307127853661648333673560324552480106693403258155174423207507043128943970129069060770386141988069907279901411081941882817010213053453093233806213833115058279197940958363443909391981158469279690033278359511453544614801749771498924171753574355425761015316710075858031323953886610901780278734703879415204040758380740314450333738448621118661334419802400131540957074802851137527526478194361108942892681515310682863793099709965656371788429884156024996843676677058595578454780417503676916141574411522589853045267927638257271592360985346339170561340432957916090251424766636136677818957512647578142270254030273372653434091790289367237488105112443294532530558270072901218868977278812069303485788581919475299613926999081919874580018990156176453689634455938806038788337079807388760958968105094531921274010348005054156739912958908634574995258193398663899946730009650342148532961186339051488970275122624046791587245680594769337114005746400382207763911499309471719608879082672586666985510214360913723479087413446995554124448251737727174079958150006267355846088321302685610924243579701236923160299833960254893945895748563382406414913669760146921577315658461768612985077108471467710332328233474746000489455223663215037706228078892783381768801605363569785330791015250454498596386650426914352366182282424043157708449552629404799601725534805183026922143827569151046428871972037531333332821619448155209497575287550477214059705721574879486823195024855382126065731091339997429953781716094226250101018037851099184527684021409114453621568669994443038815251009812645145717467391604035879598416759014168959834502012768089930819626073319472382649682292811347136175537025559362697155405212235865867676098605093351472481086347090583424718193415398628407816778619676964733213000441362224183729015692894590760036876713732259904515315896238816657105310676318391137858134120796868476572911532334324000214859917500186443892353950016143795177605379225559042216931687268755744762178323309891219665877667766770161008141961643042989665371707923146650298746750614994857185303652443198813119936551904326881857951591214540992220078912959719407464861662496119963060717662648677568593029769061490931200830652140089642758854142144807998255486997812451361770198478212915471402306789336664152226883297436191288170925784508956673972408139103172359323279113813480889542713721746214684426309389795887373374881937840848281368654188418684264174050140131686134164970042856949011319100470047866889206425720277232432090880432322054149024027205547288593921952587680475130044038553881591862944953959583722541052872431225911593955599678101884519534519273852777021269858814136992357027452335447859942017672299904680387786643371314013632740497363907046211148871116059828289897972127780085624012060459983363273577533494371092395688892125934737373582676280512141416471152818400924744220706761773383347327725298524692539349596481700958539039673573171159059536433379085861599692528398197606781772111314625567969314801063671504019570876797128381163500427181611397196850429161950960796797905141949574597448941908161687357670243825302377873642718836364954578767619355063346266259197883649237391431435720917349771799097204679314457089500999193518368645000923319584451883204198195327472972844258748886643666125982388671092151570816992913634136734901953813418797999088634211451260673135160680889629786780276061105758524707609973487345496043654526355275944905030684448556266569450056294771335559376633299569533934503197097263331580903091435488533289446176183296327097080986450537685103411923351940312674175500370783941859386146802809474106208545676135189528845208113309148561567961399624457503308237678584544407947790779940688951209837385454440955916620774985467824875173663685018892423303064288123426997100363591178182189951173632136999010950542283300025951219031178466189208644710040768843526273785746452709903889238294069620338125950381841834724524756044549427333981201234019787162524628769816840835841790453732021973021158300150510795265079499436773203041476463034621981340160155511392895343116524966886407059711748496736421866575619333456570317636734474782884297265540211501964269680258860716622051444673087413981418886671729701394673138522291010913931306160386441380640531960170798078860716017860803829404642952026778556662682890856695827712068159757534352500577574400496098845643835582020518160550425297712356399300649456219051206948633924130623345388454467311650695206087816302443421757456560259383383739975760955612145403873410072846200293892822223248451051334727166877353913408477104064922277577774134799432478568719944331976491275922185303163000038768862774407293330430112190782757085103160452402252180415785610594003726399192450480407518633195429415098026538643734041245096682675184696198096676303757666453068753816788938279335680780593717186302885736736393740198785526872418566183283606255171429500743535775798301422055223855549141235250030196303686414033162827323038321513275108390202196306620604636003621040599079087489778233184067629999313158597477915324503851258713139587791826206242744797087544316602937836522227182092267300437788144257163355504452219834274767554984793568452375521287812695657429732894124894031628857120267948184928764747296779836241395804418831348853741624933456133099566998792208696564464069699260212104468389032526280334383050070720942684368151026558317583558908118872036780621908303609715197833681717250684510906294162033632884213199658119718550048149018544679304763990344385103667045145511885394439253857962012168898935965759824226289223344215977051589120876184542408672059340607699339547579532538608677989582217937015901770887151118239981077637433895444420550718454418598312556592541998210218437915871830408278742371626107336643152805475834934562808004660407988914867372164048593316614643180238901670218757913664624939043037054657318244983575832207247652972490667128457977122274271605144727042980291205436199842379365329630269307977585808151953948113317832300065546101772212653317812173566340412384655699981198023688652840181448181312783224408311776973818848497269531674684894876408011827907905830114509315983600879101044605394552813539725106808888218188557708068646776028175356900992000180460550631051381884510585987427874532766170988267192283165928524748401810794952982898794792688591185871823223026555734865002577295887989022789703883278897076604095856999419981241558560926402390171783359341278698357681723806882724683434137841121412145522818073535781465577104850709630706695267044476196463945665670959129861884157563354993792287045121340371208050488386018867773775900652975432646968833909704066930332163645838515788178314060601850991728107034688120956706103453388367619764939797957148443482907591062693001115314787278896751710376828327587300135656067651885122775379816017942423753211024562937935515246526930159435151824106805632625548112676071796312643760662981876421558160356681994735136221935861462196620837338139899140947270631009570722335375655015960595896642714660403552240311634022162571701500054117970579915129807233431840226550774869721052582163115414907104417555267259914018531585569286354044039974758394040629728853081198541078642652096643196569868153707394628453055036666789582625437915719471151032395530264585715098306864526356471634976991910254906622389210245738047780977856308590074081220625861560417856945351049611157550691093055443431991807790999219652321924912896405684347078456630398996995707009511991374162205366851088591422849889405162706757493544093883074801575060467946402957329202407877029526690319399600261374091938712841056547654383563234195248294311781291729203890762219300394328844933662863715199028964714605272615815729241853609287089800867992137601875765494126117641885764799793152970797574108147893406765655002967068320789476978952928865506157764475298376639641536682418997064327377261952215519755997223545268660708797592707763419149099561741335292031730647827767503834667780286083215431794171036797928656575087252092971016679844772297436464457224356327324903585973803250710410062366530757077313475260051766048532592268609407838844579073831619415076229964985293677548338926081427347112672455001653832122964380339356265162704642943096076227999385428002118029206472236446325287288051469256445240473992362264119636320901382696947917561998866324685732110050267280637148645339861518074122277360458386210279816066955625919160227534814068787706133017126723242382341321352064030766003559157372667344738053061308269085548645485684369644885928146220018661176843621025993940958839772254393793824647619315734564599189781732613415614776261638289428736252568152287325181611858355375608672667705289107069437301911271178456924889715082471336347624149980862956631708492039324195305533356296455535610754100849906850370329361156044041742148222892449539197517374627798213822988626426547390786222015155524610521657716399005427201643309493564060293914017113997992540598799533420361694394416522388222785699811440708655757497213211973323910037228609521293889084503039967773386092489967249208788804163488679955846074148961899519682704539614513648378109844246929426862637969677175100339251187693413392569175624217880056715931953228342741928708835976134086921715758900733094887983333692933506338763560316837293885652086585508978074621041493119041874954200834360039608066357705411991490537582097071629914644930182446156322948558427542246186371992608094815726619105858847596017753661982142552562048364550952713467420346191859310654028410427701734555577854041175398911025328609537297231533746933284607070662534120399203141719559363059213464784335413048366178913181093075628181789765255023790729604871172940783141579542804733046263705488064556093838231595720961291100230192912962632677463083252968683826834726057877444569137573681802665050181471763256802983335007625431914955229665998572890094702982204997235537805811819460309345849012334503045832901289581288595808913131076279843774617496628877802066464306108607055480965923293312390301497640564624018192218039937375745416298758539091307067417499093159488783650864064893206775002208223514236844977415632309881537522998948927437570880381672796646254660405098709016051507134770296702073508130994957847400185363518101964202822555401942047091165033364673399817317743630204276112368257346832477902464361736376920495427845312104229232102200365157948897018294882339949583691330796790185965886992766448841094485017501730156019373114125746054949874217735873722601227585417079245049412296865245949324612703344550131108683875786260014256645130965945496492127058817756882124058165569143758284763763435262472571939516272824200805569555198377939383893670766338570538427660847838141390727299242177421019330025748813123657795070793742143355913057489060265533214276023149379240269999460913669433906204408564971286480666609554811254685947954014040000947433049908312134438895961393596933390983204896323768580365868720236802819641413848179852561197616713643568207227655659840458012508102637740296949273284227336942421204292579070217777474406890684856208171621439896023075407865392048433389629874974769105394236978544283877700744273429652956737819608928115636152346800417032637743062436960805669845932985281024192532955670045675732002423925007010548153363572506324059716183012778392481470674404380217758550121992018362251864732983660853108722003398208412133988876640666273398156378578614045345305917001911780347854849159181542585314028508743821338783935543530731023991074139243129397186025863762172693255297879552331137761319479120879854528474558451625850727990445324811649575044023860886835947070681323346671888041974550037973577604226488540341278139002456809906681960879975254525989850519376049752166131392177128651746217931850380805072098917442953861990722796771503785736075724137993144516403589161523128740241131009930489238079346950716994977931719790455675699429816847961384273568601160297016116825576116650083818101730850321762098151335589508129988515029085002001599278775738755935336372359685304473355084003261572828571990381878477037653351975518811753346046049108567117279161456300164475914957742182748328246098169651365204903040227688631876975432909991919636886042137221803822424508549599123088602068716977434105862559885714037065448688564002355254011817660775871617973771778608525143040719388311327434085861137141904568965965101023453147160155390679046707849790298407912073655284336869455175937996230284317252373058002304830578257494831079327948207399958691913855573025375516085151381865982621557485832007344443339185799492133410872256479927414251747836877737494215854930363155163016546552374038939560437021726036597597029278531762229471267607417472521234131596642805679736354883443182338561259104945737023887210432367442611953148103194953545492693143110329750336836688517471585568249802634695350708948402740429183784678240036762205459257521768366998990218633624083069599256557164514640989111445485677866423058499748971501582543315421625992572146581317314895032176429675898561918366839969786588145401511670236293363593688591445318532898607037363357855672207107077573894302292045800615469846590847515641940769314345630417080106837678992942696377909707330294130266745260317585506337394607481081938162582476147882663144239719117443779382003349401847683957805340006470138438838410484463953313510244653450636879872801080428379031792021224899063930578967848645442796606629517573137873038859882974769922075938912935692691497870428907953394669953374502482602015049359954952041714285201007300841240498176121256190272428609252630502413957110270060130964209971746477037893076044421148125217077577583893949462864292911672994535802234396391200017637902138356038018274528991492879617853631268562678393638397080956495869347527723216981135358810536158642128406292980141646292268371476451053823380405351926060690893374867378909455212595564868943041931980477390310266490234282296380074350919363362358187252865792809863162395386040874560289145044893547046168301529204141248205555001209451683695740425187875932668962384801927270484685296584713105576817429612589584667826499620698808882711669954584059239303555451825510974304289745935965131861229960488749213979146468966158262557428728121923473967924797127521474522991960784845834440850615709661228899235803986905850542558950723578055686108411818060643925379043550988252604712286794055354033671413700948808279379719108016867474153491000397602631415494495436581253700963908748184399071204149293159840211406058128593393535173774306385255606900210567781822324344742296717151221574735683306574741403745026593307035281988105926365884180691961424721561190678117792256730741524330062262323426934979230559414893537902720036731872079985011994824632654199888456863962718004113367194696382988489511728619626262352076199932107595809366474229487063538714354162532903452801629178564890955080588233387742217810907740468655773840028504440196908509252663815557392294036102530788850795995692042752008728914335656596952389180449288336394634769366140968651402962752494984655146788591677042037420084858151059012442512736475071035765748223323965026331598062991521760642467355081609428924103973696115950866809004903956689386038228396835874469892720544137189994069589996970872256664254035315853594821534649585944215734494592128809401891886589391532569747937067339057989399065340051894579947142454154835862222874021323905596382194874310920922417173153132177815365873706216551268665232896582171439243543760548372068095559600166388431093601159577594394831765356131876962164013783713950610392555290430971412965990371704845822682922753551030407208553638022893934461138429431335908326722795690950885937287302980975258722363444650711308920995242995108866831980129020877517376840700465533591771497584178912053751327354178455551326923896068397257863176590458439845602532178889664121700647903467248416505003145913184087720243715929015892525926958506219344976059193468973325778661625109638546102167965469694577043381904430583015069780579256912873439304374791690177947389103659201990477893449917810951906158903061269699908613241386954676134696213743740090718767911645580700007380827609895253162600204844297124868191083212701992910185166003286802195994356934260756186350488417215692934366143085426454847997892981386379487344562634038086182606883104408112771369942924689356399052513110527876253549077557418670901552698499519894597631850676487617050304064463213871022723457610100497083289411347981251898037207261719601216297272196378173815782302335306584014125164727133028459965314731059596357617241267577362575289701770066291440642630134585145795623394345001915216350150338813728097426281903080953357551963370728171270129379685928378577607006784698630420234204856122886012916101445893810604523269627344236995125718788648909417894305309987166050635876341792180721427922231168038270415656855471735980696258847671305244332406271160725136560129999159858577593651971296057819033898361601129478625113559019720170823830523822293845050066225610968525510695718339889393900596939696052999992146562216025799838959727239650793032336843422496065762414468283784960171936420152196416112639404476558236049545331962220177128190561969695829582363251928145650004126502655009780217407544998929358525613548381171414284963967080120120583804316986155702322346972912085870178918861080900162836807085047825686377915123660507685080955753504041826545975080016394929951564889671262534475018076621333348957746951520389230717511438648351248926039921786777306300703948494079921343524962247445917695473734248376620468959808016788618151333822092806826148449319302901342005363203681645718083939610698917661804364990481122359957284651099589882026603033276135717542245279845332182005998066336753063204687390423892612002172105704215238201001766811152838341250832550550954230835793594095729791152686424564411936368597548562340545412732075028554360818163267944401310523867420942944857606879226987325471070593952886043026413889914019863258362645702148493652492992403730530682795504005600833422759653208764108646861037321037450600612488377562060514587773817108910864148074906848658843459312624017924868673172746531693693728508565298969403584776542703758733270047523767024695499278181153312355296869730216203063144882944187232859978109006534709726961410378332587340001793099917683148197479362755674748901128446513247616674178280913189643828085133444045731460685922827817898608174312091813403070179085180889784532832207371527666890811708389717116513454531479316945388560621167644660892384126077686311512034107704045461440019428292681260924270921264145762279595801627260887701969000069154469323656948141690839983452683880338843397239897632473271191242783856822977673205812005854081773374494915951572885754610781321606714461266417955065792059449639780530445294249989459772256041901913086340107818631198059517677197016782429634494886700358869418474861422723155428570347731946409859386478375372977483069966229514477076092049012532613951464225281715251865444294667101526960762738602953527511885528250768292243223156404749949626707489103190204047002463871684150936573425253680720498959538423900198402688929073847909694422694673889972392377237834778869845475662152299870380002400641489512751878695905616484561808517251391438097373371913398592576465356414233875362012891536090033165961662570633789597837058860834179905160021149372486549349739815128498954408475810263547912926506015700029070498912560484118234148746537101105731131956332899085754075766270051581542177105090272045863287871141000953789924801124638415481036110062427801528020562560743822763351560286994761978037810210978231385352490942578999966191214741921955171581380213972152956121874814143089996220460342424405188426361272137340740922532680108397849086049833299223907549921106119853662321266885791981042551069148073007173156881796165633169292931567339375243270938776873886275474609778190358699813889579508925963444049580697713443399371053151194504650229531823801323201477189158341661463245368882349948881077998916207621626490712645753166265306914332167539115544964547335577253966957666697751057362686986290317414632284263511895655681228665223648105495957880258288296341697224358010459831273135815159222800300808717083974157956282523793888560363138476102685424069251315062214730185952733505794185237556870040345103787090738760495758702077546616317497740619201202114575917599030502871940709932419755531476796210874516315233893607692816753408589367568936616234491962464179126876468079826589970717139904534539969294689997019702743654788159045936951558432558327718041252527290917627674428278305838868769992507339872623206674122945638942913427438575258615058566470715185796838773187457524232504028560904798967867471999520218389869987328070073100670534112320637548016432636609601432969274866883349911779120091627764719524673854906230994443703277870348678242396894121777173627826035041549699004913506165487006120339103179035599605615198382308249175256030150005733198132499289928220980876610143461853207256258794409329851845058189927213099198936291078883779446183211104132368364299814700900907603142361778088948809617578613045001332265124779912353048211427239003948787815558755764759392605414364896970512617306771214407939347309318233375230921013673464891768216574543453498072796014908800655219668948653307716885899318590772129018963156601006471700858850141734039572500033974210423184310898173832479150747124326486591306883776298507183776229353015503046339790566563100660107831605578427616399691514736030570961261836524835189473360803651617787963932308889559958824779747832689363195467014267625298054714526059824548289657707535886498719342126549270416625227222707424046688182445846309988737081613178680794884392800382036743586930792681543609615502242679327353668010919739413024564268786325355184841477228368567252780243709302829534780669172844798345296617851026138783398092668783761551476847457930649860824396370136043780942271221338947885301098706318733028102411353255102863586949639860871068979483371721597604177614566622487799096465209854912660795388348036053349368742004118421223816601932070481348203743522152090909030970354215602210693224801847647001402724563736892328795688872722879610530145399716341568716822741622966798474156995801695805948306158616348907759953923209862133491583023203788367847831533934455795208137515875597755328336746898151308008981906539502178832299571379668809106143285223063467508350698506565520855916692242062790607831000762977822858830662681916969296811877383909358707717101267869722482532191492269076658527504930034442731413001274264475842924342155884731955901380398922756723166549523586416175427750812334970100490894234484913691227045006132865879097588344399928468627791764381112662256946653065749872766690943733654728552714276796027826317963523128592390946841040666265880055190905045572545468744536219829249252341963408114416263771212153281718381468040297530782437366564156455709131250491410292705954307044843222434671348985418451654271941507548755236854141845649694376023326549157916136899370509383675418407136216962636611256933121369114809667869705623093552865012275674194538633509291357285664280626833976698752748436739936000936788877469537211041837890754027961794746226569509503587889353045629065119409850724883451784632961331501360556960617049994606978665941288007707212539903618245245249322615346515255299290519889282113046623195886024632532350032953183699976006101037517599379039922910471433210848399676185864294275206664731760548783124885687894675713458207963636032090337786077824312628184076513139265584896401219841101712190673901568355140077763767455580871296093233143495072591087478910929717719170918081109763349256318378949208239726797519178657151206506840067758658997907422577267407669581281370514263831310393264145549063277791735818012463644559619893464179620541323068655764387038888027364180758352824693837398633963926898511236458376609386372368556296517465265703212536317030033264866361512763344998319045919539665793112847339391782571641714654292692817729257872227036872197166808993240275063549387228980330985274070076847063131536838437851973778163798174406658992572388621370768393273129053530147013563540439491678659591422726292770664096462931433992729215309090545324147529044495245761545200252312516887094114762077643750031417436309708967675211629276849262907193172915891799930498498138169178595369364098533272963611231963265047703484027118998419742585619074293155626430514782355794124380109305902159620732627425182826129849655064708631713301644629260581271172792438323076096328655417542661170212691139382421665228786995028429136826281176807738926427984969311809963685492849514719416334313286611373910245189658344756859621059908385777995420355807578673678718938623573634287019852619734330701764252895035013856734146778373811122225710030915079940505994860620828575349612323219192562285451421903576568342302516383261350997115354569528922921392234713829309843193192957520174259484867604483802667205548427694995331474836048604329926737422912796976154015441781355899668113961635238043421079564167391100260485303444692177432059147163125135412110047374338285661021931345416057670914915503462495232826470875231951446003507886985504383022232800591973311183563619155927148867437019725460264274855061205362289163291426895877240881831025944478382321899661585161584305267239083185508253161591581617933192457248750691817919088880329799481103394594890616449960912856149589584216150826297834723512115958788587372190741670380773388321471493071977210375187344356884350526346152778123731044588289362484914428998828672435496788123278373706173456853360246905074323850029388367837003911916007062183871739447395007992465329228301206618988448813834675892308127464027278082093982238040144848980239475505534994183869378699942417019431712243636858948164894570658173775297298621638219415553117556497971681590999163667158433561715576855153484863668095462858254888576850080044475651170264948640692277035204368444490477702228256503612573683655844898602284499902938501482268983251225289131680379436416243835059993083437709209495218383664298921282173734766122064586023900422035685058209000305908658989996828673257928296170759139538567876576777403743335106930107710904110775107084134832701714753944200604600071729918301222651569154722689264869621111930696924966102054062854898602256306441985324741163696415819583278350649483890267036961103928662273245398847767615030005829258716992765212292429666377784680319580991996567543243212796436491199577677631355637006939790518427691661759952285173520065770316619127008077944161313996248346474397743742269390592231153851327956790234431178429733299861689939775110036595646152012515670136636227091523543640698412322172105947916494662388609197811821611374211866179341848451004192363381273917448102246846949372122762027972195630832814385113919983722777171965153434558411541213294112833767738498503435727601723648935844454358962620277614336716578240825590158561480954221562691842226237091572050309230687700909883800376488168659619202867118148362340581393386277259990418650589879179475960816655692010395011750448266553436896738986985863356619845144905334723749236652991652278726786229808986574615352372873506358094712464996889401012107330357053146565410418332164801763445686140305294598920860026206757779857881823133376516841136831987479734855937826332624125010835078773940452898882977399979374342741203080277072884867384170989721079653107199382538706621425400822636932327639250020658110099436616675972692021983491006675909472500842640399455589910664437822035685130321816406764560432542943714652070231270023618948834180751908736190128593385530824916193553093108266660896783254131638364610063439215832855593849559839281736689826299396513606146170031389295755591708422670806423198164648422616852755315050996198072223735549747243914248402448359968998443134127305984492188926662465509654996757182303807029818446820609486090563905136836228586337943686577706204207951953475240898120924795753401882999028894724129068940350963126760372520643992606021106129135438817296266568038055995156852167466317237577099259282419008776670305177137704410700274273270135350187211890286113624418686387267596071663838777268008225762472165879485048746625433543110961595734478114315650760443973213728970238343791439088068333606926491195782474760432712739704273185666258389725526767612621297958501865703321424513206304757139928322210353171698922293148080275804778693633297092430823309120965906052961298964555495746818995352514282904267643179293535783220793626983235846103097035246982963400113789189959320214963412864965336187563482815287513578929129113437756744412399636383771656996732009054040517286141083373773441528419788521441278689144200931282607580593644699896030327204770605031048715858294287966237776860903830624182568209436301030250284138316529088774817454646471359361445472961797056041831193059765535155650306503341469634999933695692016678566328321251072585730401447136213962128944924865886107063052359105310823084764455393160660521039518823891757903075680607018078847700133970673004441179591425375482401561026783992973593976404567294382253258001392812540520434157459992465106164037547699864553826136029717186733851685102032102162065992276114948252628762460889446663873194172822510723871570551372736391136118895240969107156435398218543786457645122228853107598209014499623923458500542856056754052635465785284685999436805115992514779132618007554905949386843996743341362573819206386284436341606913436326719436271665495652788711700110354761374832744933659125883500555214875509170701939374745834306990750192958805321279025118823587860318572671141089734676001699570416475228082676199443310872040068536184565443951009852388419917289702686071665472752782108602440083268917437740781640405896366686665399434009573702121992663233662205818795784442449221481276365931293806686959667396204706292666614457765019023379171378631418400558840844804878962889244393856362376995605551047652096951814305496867541232508570420802884274773134577449509469794416425933865311232249261702175078399813710571571621766618639287887202088450865492033672852903667599486962490481850772625469195784317765031717779069966098344767103294567715704367100261027615883017048346498745145977497128958272461461451435702816528513768462807141010254993170583424242057795173546109031131270481684201115345010374583446888045354224202951501340127171936115500584002701467866209387686313465523604306267847991418455556274403647319401858692099754951451919582344764603580551431105561573980944464156053314059496175157167638942484535533448777255579584021201116338576433657555918483252196307087713932184141674932792683788023183245950556898164061965293032817010768583676590923760750305219728020026958065002953395473745063558550775512920126241250870827156059929930704607286730075021635601337209978124451211759658001787918524999781249592057714862617018451762590538041247496247776708404032161864515651548669081074320691653440260360222834502625175479902126139047537707438607059130890916595063865891565849670421952411642106450244397707800395375225614864605978004451953461136908431420425747198379593853063499201238370640512523475212180092907027155591190182676576705535406737209225726803308541751582282484188856192920136808798087580429091429501466584471237153566146430823470818565870711141060255401257788224263802633157523416180053566536057805118598943876806840778847234637012831101807509944468837773140069741018708468144729698047998462179152130108377270304345505756397040211789650283917869363917111114799479728751569138928288827808627530977989273939516606927254390284450761288466434790742839798181102528298529542648508034614622698365231429455188978904432186631002759945532184203714990688195902985695218083566371230629249954625539302627114793056663637338097253845811573727633146503675792920928008304445454187220778950203458916242347636799789285587266493578325849317554347810323890532468888365461772964778068120810446080344554143303600966146951756922487049296562413275351998947440286820521385921524554098373099729907758642369483651056189309610724075673936008081758820293792321010211013558647039913298897084020797470872979987422631606148760869012931283880547945200578122246074824930557310090913479239282264896926702346885445506474949105225454505576297373595418702230015536636659023011006247034673695540587152117040078540362715114217225661156318507961650334039840918247109530075782377256680199766825785929769884514144834605769552038669976858820902587824733741679020371580776189904275682346563168460829792792041914197035184769304452440653327770197262910939591327716315936309340996283874576242257050861254512021899648286234139672014109374497209168557177303199407872200671789096209777490154435524301150003205392573213151723215434422993035224848435648211722217558871505276743634959534160083339912919369234507188944310032088297523416020102740935840625219285546764963779350138966380228400221107872843599051378884148977483304723825207056752814821321283262863769711928122111063538275960166955831990431677855630191450576333458102608886792072171021506735647052811682521607698923723060209004037681933168189890888128955151892936329403561877610474874907593957965613625393428605738198243501521516480505443884712480608674095777123734338271795092929715406211943496249579418907383415628974557505012636117876046233835935551585008408846356786313386047154259437719358969951450088980436853725772451552963118756205192902107433488280625804504831224745447518484578998988280168901870829726305959368652618864917492723641656375304993173393794698030658603790461411840582121566809409816271297476832748601962568940138954355544277790548728173111453852436039856727794754792995351647271638155634847929517238500222232000997328281346977281098380706921433693176994375285745390635675451698627727290262888191508664000321825138388286496694728095030868229200081932636718661358519374572275802946897204244690977574177403518560992672101068237563348417839913723226188657202114141177302725547169140034823721785405954397689180873925919092328473228362607252845921054699326154507817559317472941540115999417018754815819495464470327529204873833568430943467424602680642596629620627404452822922520157875702352989494487235664149968811940281623755764786105776343995319489867561971295948929468010549762377669620278613627555431902141986768076090539010148334288350612339401918043717211844331484663385470698731511193976076591709905496040144305269369138011022848863194839609951202173605679737835224472358475464344221341393507317682276209116408513744282997335658764589904092436016151897410878578529124378718491977975084693067055654139022140576560742612600430440706186876841196783991536771278694329572819466088760689999743256141300370712044586493694391247269931947951621234803101008297995387172617576839957881989287344032375979853519757795757117962992282556027029972070193168501150411296891132669191117272636334241902683788211752685702828429305374663854143227569448769893958372140719217877019988007808352110074326319550670549490917961958460802937281833012698724324201225088048160853073015160507832136503750482981408315683170779865815453346065192042125229773038351507951837535497866583216570564139613151013062411558956106351127742960949107554651865158890035377524505001402859434032219508587616476282196242234684007182928489300701734497936190107489098777874602211240363352667210932671846091110805420443521186556259557275332410930316224899260404928173521340314969407858838410492455981495534315445648391568678770871341148534270631630553011838226076899199807619765804836023853081567228175813698403588224750836378455485460229257373306130205915294346941815334646393646252722928085624347890677739886316695325283482510767568232162795708541350947262072249406279582016204069191034560979897379686611634297924759810287156468644027726155895432031117127667293152239966850581565134237355533550567641603949510509773955398622579883438442727087272199103024060990643609945613803048856345936541170365256795149530095802099465488612081870049177763035812712843742368517885194281774295480455630905952941340770441504983427602529583313746598399142546935143398639114620636258462543457278337360626959621634953054295981495826172179163523062701021486573997549614695561176092044409918996054099377837017990410282526982039227092676753091462732304085462482242999819683024288727491176256366133182720944651160507936383105791304253089556384812571619889722560645623841801140760359174997780045931698337743614296868032324653008384529719957832592356299922633406134095650910443719045041181311029714639433904776003999469087003852800640570905751453644636991386561224757200019502231794731136713596915645335846436259197663216109248546114268281398690051563199209691935912231854631433496487638958513958794855404725268254507746034227762926415627327538904923230351372283001555738554408702216765441217683449110688500089458059781396781462282170188618930856274221435843923852908195581749670794768404856869204305566380128334863612883750399568688171868387319602133409518296512790973404121729273365217917772139200731561177886073162388069477493689849088414064746971789558674260920761294403259549813037601263543934057958948360017497595689076188147222070900047763246534523817456646829685686101305931400387424741269527200321196110583228577326271997396766515243584684487710328379018998499063436486900128472671637015558461042235405975897036421331629923563989677215564174325460204907020546999508304025135007643265696278210740660372697601722034933031815340463243502295747495465786340710888577700547919989418203190877827072364954212391235387845599376403523895310672239709322127639208819693907239541905518526950049759675007751411512740159409344973474344145234406289926203988503829541207690326917411727199706953116909123295499069199225971145171024970838962025429407923341687911980314840373020707286575455642433876766113548345533352513059000010464266024173207552494317980333273242195564994617833061605479650682425760814108291119253278193035424647352792187728984529462885160034706898941979670869382487246925632652882321424841339044889325122918878533187282790250927938306657329452932178445285857840014104972936552117076294103793736406577259271321706412712202942020039368926939193613465386059390612546572512044386218306108232737439528790541376633145113357079634940488210099902708434766242278317293452772460472983054465764885485996064210473889148902878488968209871147757444439211173107012496578399158486263844895427897512262972623166704099457118301738320782245365845255626495229849534355173047860494182980735936923790912600065330987593439716704592463039496584711488944645466421489560808518436852590873720436814784355276498591300710042280792419733801440637878857829303186958541356331222521303818139435800122648842002176816422453072216466202661442638099951036848417737706651303924850226631196373756782783538878097396571045581545502768490495452456666213607673272595502889912037992157127439874132408544712500897723895622084964115291179850443122027757224700160094461823773734215797142085896364783023445316885825071715670148905514954473099854412590303116292802115924466848329580563158759096969375251712004275129992621550539842833146223411923845726824532884496996038383615377811802701928553180561738402796248852132056525752480597792427846548127586382911362362912849077911700957078076305636373902898861211953138848229863276969564070573464119476979223417931470481464516068349092398302053412586338070490662559047793932526851903839226906435427517693503327966621910927783330713118006253113406973409001000205944227174707837974982645740602039515489310697865674653549946818080995150556887955236837801999473121101313626917111123863534636790138807415066375548000034379457004710223860163231337294457861495220207973666870441252432624452548112547993911017555201304598741593113194280087126136459157586590777858469361977901165244972547038040752038691075689981059858801962108223945153347348180169758223739179927517737623991365801828239398579960779668633301755017822057758537756125166155697539191180601944772219669449504516873890636660521109641193949883606482278945201288539781695961553742632254868218030660435997014247646448762193262299205855249719519169319492748190345046894703588063398959264468741677650027703601865994121815830269427951677629192092050988034565303611544378373113206837265705459147995868009947796331276870216492041525968178764635217019814042952575321789696867384267783397711672107920248359310905267771774614473597260264016136520552804606784273163527502506831998995448245054064364709508382727402703967930091344481417676263113334354824680050927803854152452698031080408183855457753920596634240557182134328845503811697587317491268239500323364934349667254603560402373571872039376528021694646331267821623889125227388349386230874664496997123352064970385490739334000354762943480754453588416254754492189714525526746768835619167869661209774690665351786672774196818756763435477451363732528919901376652246491841863440725829031376483749314213264755781406604293413314117580505281530087747517939192815587395164046740199738004726190102361085063851783094335017594910344775908338306446931250888837718232742994000392376257356401943938987445070482914059276166167617506082796771611670378393930134327985646882508692403934405219857438287902013963318065078972513082770998707309981902599221076822756336162903398511097086735442679380739331191585394392265398522660600057477531852472885220470820523568920471180604521048692028360627096331809143241506559608010737281615462446596771207386360418522441585517758117229030805013087983292447747881880300651558029323066332560306041998276905969594643962855290563689525154224116180474589530847202684767698821070071459447011734216895276918640526484817631924181871498521648946609318425184346745622105073866892448764467719185048743170053668018432222600126940137637163771386689297036513193917756341795088472684771093750119784065433142853807726793185934754416160017975912451054770311928250342536157710341966424825862066923261419001538113728138768263934462122333576883908482417650997279048207361062648702888545073534060307160934507094703269611217656065715230006279345935844449597499791389166708505534266494279039428802713035613488521283604508713333536049569374360441461494714164883606663860608433867826818046099702081568899385349635357620804514673302131850501123282321132501585378038243600569153484957671548408962943757272807480085829873958947970763395144907383627125550557680979254783940876624786261055137934815007930865644621879531556552488958028351136775229749259715071442626983920470204730967580734078056679191850286397152430237187207719954295468974207993041064327407042037509023353185305318528075852744035678470700540592605285996659263383036071342660559899954785679007769828922347805363608287297097958058654189599933433487616770734839281037941308641650186444597648338603168060652759131220797228498371210696632559947160524205461724855329414128263082160321435343396572831199754354605937197611202227765628990684301196895228732764487203357460495668593967491602850295671588774835775382885355590856332120329945420172034512204398288380932571047624242470144341429121655825345083332007243537304649643800168368966837392266428680666476247816218276259183620598641696745639691697601605779095852697185007170929619958762070742871301651924101595949444484683397930791640677934694248919938740034794230107180587209743361518406312544430037789892889838398407755881170072044073565882519464612516839902594374182991599758980956005878635954018562251326517749651176484538309749675985387497840944190093851978482487283713794710449236740154431605393300781080583596615182211784967472171207061640366159000775979176888282289954610100277955769159066148052977879292463221738909742478841484090810109108389128692472558150426226460300875005586941457218919250791743470174531925337699110026786647850567337873969630873118998031890345582456027799229512989976325150737952428330769808791116303346975039884010204788829871074694649964799446009238670624522014448922324153034698199540999793037601574604608421096424023248887153668761157232048124298506680759932190569531243529496972130897967575579922273306327882366879279008060566020180468988534411527870114295531670713821826606431812274809528811608647782589345211299729351893014374084964999960964071167260580201813166609277538948721930618347660910273763106703313582604390501757280751175574502656596938792405854951253402680933353901713496264737492590159809454744492884321292224117984266784821299328682606322163219750505989260367649686922839533967188450631201249320107949622561038435467090622300766852117670114951907278311265207424543522854667033820901405288272090517397722484858296140823531292343266903156847772720699231955097075507258844786030046479313063771957561417751233615055719690475991635137429264505529148869522063749994780649773870561796675296886133508740460868531711945000177383937358945874413263071090504508751928110053306252120526434718897011971045019135197334170387269763209751444199877504909427945543356051371573021047390445693811493326870007938959551884249015444380308153305798478987973511537850534568247485258835067607843660712228787893559354666064882720115247436689565502566918783852538175246086215208521582465717146197546409525142402967172686538077940231866146912553772568068109914442319170162696499334695803296021162974654461540442572195083172654061621752806647918819244434899226307997470059432024505130072057985691831143585042559577601920472478769247407582228353952014995602146199027410370132095189502835854454031192734302052314366312040942180301575788748882277130435304217705695829692050335582178501524037450225960670539194203541133212193635062483288850194756006972003901405477501897158062938911075835312321187262854805909904982808910315907240179169588554828715863944879964322027437417774953851613739341340166612798380605993300899030760435504170567364428438276493078420647791214040315796431057862420043256907256732385079529250761164214995375656517214663016672374681273539752384984854437296483384723929101102754280936244519769800389363732378609244288267496165746786218841609112338392106730785203383833562534716050766243348722175825978897548527799664403442804670226640713717258837854823832703568256051563671129873721978003914904419677514635337321844465015823259380558377928368326044190355210999431252482030099142743869147286882923252141031093286131082245514127536277669271758719385990136468750396361136728634469487448511331080048964590493087281694972346216975475830012341876506901958423792655814565933280254440471784964828690159911230427279301470288381571988710305061313682854643857109588518451852310142161963506342563292887345797719251075597401521899835815043372962828989504198491476903309379441930905518030504181314611753204501891578811123474986081757869698545799518724313058715797055045092807753002953258562572180110244574955547988952424017461725754951758044682324426129101017301789278102394040362849101076109295344194457643405847185708058893616115858161796115346523476491068371465199280500245490059529661022307573041637454371669787803776886993323550945437240617425048673583672840484220745179851019405029281792140731920050636226399074220882310388786416764678470898091897780756109002289353486243355804672813517919065521081053841415405725602125114236787433055980067826199675491869451852548501997749345762139173495789823105066878355886560408364279200058314286048518342677573389284500592718051819389408014285361409375242458807633720097258225741413012052928855686968556196893511193303535946697570537560609615146481246030792566037247985982317301986815735648423493302815606909234538626555187655721729332735408171471803400339686610742407934946663747321419407112859642211455770987422366800300638315240049138502479927742612659822366885877243800485258186508484577217143998236674928215333565414212397145847364325927172748514348963509981743791994008339633967728672898324893070556658413324402898947075100731626009502827768969632132426356202117898479839480064574608734916083728256629762091730082442542759100683291257328297987134678586839522828570810211332075917778245849757009235396579680759799867276589417643815672675627524243984251193215421437298838392635627115522313323959030993700761561030398493519740652623388353068660812374128926536553823565621693345683427887922047007932002316946875173292893773408606904198872048954589610992196563322443854847120770508168050937359614209870785971352678660163903298783438739552754328233281148244407321133709030439330925544663225233583829605276874425844268005742873972577318520460584252371025416566669198304284637841787844279996335268147558560287250824215644826177573318412865627216993913140474295528412347074243396382095877764735655860376944595714497721799775612794399291878751808619547331370286832710618523804537984322887590511625754879531029958726567289688975507977131810849404865088478871260182437642335921028195749532836160844910272685606456690152898738209898444281463437643227157425788151280522377383680763297263325119596658399315805440410915394026814897441829997973096169620267457137758253866563241954130635442768009771613687057738409619697355457051389608628571897280673578776121956495606335763026354120670447384200299367779691117836754251604865770295459475025009402263391926988404463583859746221034671714938194904452137443575825544974012587863279353593464865630202969699006382974152977119652619856354729741172879864140358405274308398162488554474745272251853239879289258015760624433670163478929481861061653877916676793542322727039687918582622606466679005740026297724380688423864046090211571101555184408299869340356901761045590682658156433378154555745910287712418620157976479158983136484562053532324055575862531026220487992544444718781088004795098210298169572087757632549814819020819113947978008664663732729195293479979480550034843401001785131441782402418149617046320664952258025365526493609599793587769318249842909159153872071508519463617066498376544159235457168385593862689725293924751331363252675412268605115837933726983704757131799396665744730153556917580319628182308879173118655408594931145753724213626585980004629526832975732750437559159512175346846160020493453552516968229159270179433634530541040443405346857903333014607967281709898491669023296610025638600153038115291947718123633829275816760069182659352445468442252525581053161194105693936023167192590424746691292208252603490407340301553392744855340897944614415292774276180154474971224391311827307949554100630501494987148549238588533719501778550322118438554415621355584527654967580477892528312087666295704848372104970231001493916818182641283336184433268280511606117312649173715711241812299074960296486500471285086558358699771573019497152380821673485607378436606845375787379767936751787547094710015499219752828364245424634550331969425616598159432766092099335319150801348368903336703503991941700597685063736149133591843927737547880960777396372787717948020942141769319258509828544083519336833784986177232400711861814146001630404875641977751126690488859982845737552609202281546563742338002945462092197542698910679458742674793376913850850191874357237148727457454617823445581219897630642483654551345658952899198875404588722652585163368713919070997938018114679491298377510242628590644937752261857908606259876430655369614013557062738716725987920998326693226757088124998994651473391273683350757033438701661975695170295574509785993413919264591257151759269755943346837844460947815052817518002474920160358803352715160628413512942286406739221770156755044631268305817411286784551652989645964277186727651581386138753342753303367687891716902878419277652292484494509341625405030541595327187607371659150302529023317775440090365550251077825319008328503608240156683704100068598131481265887026077102326804143200588291579293453461141927180989541609557565928408656338797577845800813577626886151234236628780385363234066921910727237201571758293020538249855183657730575460956596089335221050942184403423138767607367261273494681953570762447348196559099727141129997894082017484910139018653318779147660304972738933642302278715929775562190974340538171352746559521460687272835752595387304267314806733761659553778263071667630909510668620186093494792518359691122894251654114234744722740542769174855573366076883506052992129711846021489789931750498845712664607119964512777569100480467875014518166761375418251683783143600421860745637179865630275039969770936246462939585686038804410986981761713380038775274855850798537695849267072239785622567350738116069074772242866482662770627687325095363107896808685173694734383495285740055192846571886885309711451136383589915908300226442512571391349502083354481158822908216798386787538703256356187826685102044958961973748870040146109613590690436156397920319967104125523448207352978089375576152833935121446148713078939415675123870154821071477522068071999721268635203091241175737633773780783661160202078322367596721700471796455322080572928099225132731982617497235614825709567392735020890067973646899627538915688909373456262665936995064275702457162744361828322421879791895677285156908311187462276629521303680489933646599109140834332703763598488819073937917794143766601045150118192508976752548642792232737150684600506175262213542346381921957544238697442531814388179455407637270973464757016035223970803683298266720584034738552658463677234150819241080679377572412499106975522699089151115651508012008662723029344781666905974310003963723774349252609890587440016670808674789993783771891531353251267785869924716134141152327662378919809163990024160589115372703955718309618256592612479098756281479614619761037187300671694347098891228253339234441003934716696000684202607777301484311455391526322478057039301397813550592369102221796735885644461745049711902673657720350179941285054905571340433295551810163380900496235801975067946055342571435907509952856032279927759254156984789098583539602848482674176925892426428657937449469766564890477895915181112688318402562910159891611856059270174596199509744305311255301543487276568652883477950109853352927401010799594952485472918913895295901533643383423061560982771529701106646126775066125028494801085997015592597296371243480933943096026894397489945818382939767077171061294215105125371581899174184623744320045439291972943959425314556167571888306506378644505686348971329435599535422934664106699608177359663961553263326718777860040134242102852182261663640913099493571735177375797798590942815683700723490218991613104540888516201265215413689152072915822549767310991932527245850161306380094639400569732350540692079730673693178848244842187276341570966131169300504849885934441341089413595383495181554882072996060856620736610654912568895205355658875125303930922662302874980604990998671185312784958297431215358218134405435707818019668072699409915722388542665563583226714498918215039186604845687202775708025261939062329524379683690427215840912215749140223873418804310686107564822108952195461205071718087183861760117996827305047436525827799338294877688444489847141724059872238045201230915741073260045187421228634722664282133065288428547703491449409122117570520344934689176465723391925752474456031086555930204084458108428066267616728685171632333257483863639436849411320852436585465072703063964009114774375344442576931807334951441905249939439792383313510631559285313161701282712006705262604389008148404118169896587795769463488886799942563164445447685979408639756087419655185100237498861494171889356992805871063498583137287036436903081782738025551103564135349962843517410674409405268979980808227934118810295614798523013396979278857835415465827409678877251243490835394195075496243028930888890475014333734659024892978266329077740858461866880338283727892641188313678060299262470028380517327471186490985775835694712096904990282998166106037317526081297051166088986437222393152971505854080184560224201485394709858909572205354538263551678721498138614264312941881420755039304139360477807275597401754320067350203875591276647726016896487140547519528599490311863156778529741591546946203298041463734863292629421205918434022807399752821716639802804577048636700476041152091795939727838406055661820055509453791465789231761074794652948931229737709170156632669925895578570174796564417660328635206442730579383951616906390334489736179970796823251562241394539502588388459815383974880177660779508237469908059756068878388994459355611210321677378759473998103178865709854716150287840470996729350722534500076312464729770544693856039976114734064020775177354884180087169685414194172713803063273259687313439667252929842788120137971954953714038315374248452902621545336910235221591798334115621823132964076404844831127667732999344029224185575928288077004980029359278151001266569202927832323257674697104860131948111867692304187873325831640549720716265833439867715579195981362707763891266186862274950261246062785044300191791922118111491394636772749496734836312382496138136317582370145136314120426972250579160310242671046290065397914221155993546512824857446023776224514561288959842868831279879381870599733980094015340182753531820993036282960908709212883837323859187095758169875327481274684169690837889842994044423257408413551908051402966155627037051000005179454140318688940018005148311206832602190187914755570867848298926557585216885185045018684094763854800880709932172378936283168032013425870118275604218692823271194888254517659890493099203975257311106761270809735729834150284014997340758080525193218666437225644724147479064769143951151968590447014954240862568985675807891008784063767002657639252029923619308202613997704303199150796329488161956346079084490364165514638450754090838932031546907931427457114327655772161725333283286991976989320863742233950635915577253072370889727060683135505207279487933023533504238316439563321107900292550473443960649744861229211178042333077568809922859384319655639079162438828392379785173500825099541737393716687353385162920208307854465097801454810629406966667849476916572269506886649720358387189195807139016909211447752923803931565503871886030659242593161479256150294519930134367618479912721213579040934111548203067132122554701754723961837767999067025924799119409085693913756662778670248153947767216926936113911369382468108061872577935107862635646203929277422319271893602920878931763617822675913673597087806210393001107250854358726218100566294286468927332361782042444691324994091818944006287156063275875213647237518444789835943798007784173535629632437435996777748830651130298328681055115217501761144717368699709238484451888914293115521366163277139492239905209235262457095639863280192201330825363675792142752717645105212562371751469670436103487724788328745048699068875288105660062411690820426564563681601419861398321846026327824633169786075968005355752716107201484393173445279283240656445817042746718003498940866462919587828989123431850123115065416849109645197000549302914468010946076733967436093860957933179513401457780244553681252990100212496355764478385871643814657340119100248116908924895265643410816927037807778587351444715823239392170330237839295040772120583822139105660639150194720900234715577695442927122389539672278216058421901433859306538581049426547375026063870497318528132221337608366314593526826391340847375386500615614844285586594572101325797265555306344178653029416043216830143795953615653305380406442530120726206341697475188975420679186591181181952595704490131382682642964193431690896005988041423171948427585402881543190543812303257678024122077942436639378253480391103874866620402457144446706826771968143104026882662134079555808274886930104789351475124364553349794554258525092996934358406187158318514458220956934873576516698836600439171187028432692752973294486061330625974397846867854117360734786957661917626487804153449351368059115026092747462326975010901827001059937453019778236579658838069714935761193441125956155576368279512839355174173445224226472826471557981543822179512597281448686258290132188570376956255533943893293991671548486029958998490239708842606296380903923716261394256371023128872593515287533047828717363342723076429287441703866281666379300397772173003554044069689030692518240639158328590655228719723115213536240942855771583285415363959460061706922471156175369007587489510187536014606273530458092356901160386141018120167568970243236919884682736449882621083172572417211620359212512295113660950418375741050396867083335054478680405697739331593834245240412484120861027680805678514887197355246898071253669438477330708666987079693224705637625222844162399350037407827969956395112484144411856934183252427426248355767902079339723919789002499067227708360311928037381825811834177642265246993209799812989231318555193540246205019537660226902069607326010358374436921816146520508806709587646573154202314203452058669349131626187900649973787757039243626411867116089017348243805350708961477398895813829893694816856487754341300036832374962788261660341258465480661842263423176241547412968937241038722178339536432730424164312543525236799466783531936198339308799909573775762362576481580335165367380797909513985143685876640839352309426839878197634458669799613620625142987240736724113845176794225904507075544088371169596270351237699530655680281631873939171156816803826755096132311317027943839535994996381810929723459880344041560679426036832912762625901676999469741638923397487045523989698742636801257366154952077819097236212562921391851056779693288415459059998448801148504334499714603466373029098348551230440594460511855540736065298353772029095727553248981434445850926509237100885947203580526720699051736453426845515468680214476774365623139279861885965554532551644216824136586278872798530021764665779856099986222333798443233478853649340691742422993748930288760036366454867390636165279553196361954297088510691693777015792071380828222025175332374722349258750745291602653252848569516667616764371913880514772991162118433390047604352643114954683648885784434837734795016072166850079888467900494958404303265558743049951807544909989584984669316111397942635461249163954092353409433095191434831600384345287375895991254889433470951461496884460507792379998374269275074915024658472090137357974117329459890903440908189722627830046310153528696989349667344389484248303190848702010412227163761493702068373183772561536957693085031936616225405056690292614725468327238936339087450199271309512676000837982652844401918494467291503441096507116802528827670511010516853443542363050479830712922709138660152369459295000920206211559504083282788129417787823373804393526025993809315784504654377544686363560192529243408868380111965241456992995793782892313368661914694482966992803289187876373204432837543028517227522676953277796862962818002798715343601387420832476183360013623004193806874361649992434430288775039504360115741572346943245604287050827002306983377843422397419971426266441595125515692293730295449495168948070118276469429653154325148418755199930231663916711857986905855958448872184973507130483896430186478115835808005035138406311371398541889896829730922606967238812458702080260055278201784940009495747738556858896951596443648839025072688420156211004692259652208093454666132325336353342336394810504241794314094460758864760383185557944002915696118965902748600379411674814076562787532556508526715123837239016176720531883073705851298938076325233252772901376547068193201059975091946128853685417113955911292397745003967223633003599865099366279528277503029370000502817528612481817388230228395280554917203163294345563575778670981776395487033719775476153261372240682490039882208104692067062287881109611675011120118484834142432394432762558130477468224405628500063177876109136627582395069940048880056560627036036100944088489797361733674225165964337517844870834421803296282550415119511745066981811121590326648616254260020908092170204649823623744312158259140120239676473506919864144607391939037987347024983111169559398598901236317063465779506704581866843783252186455236442549412937561603694776396345005423059215302548541209640519297199977864193316596312859331388114071853612598504480936741483119587552750202833693080354269041207576620147719167215790910927530230233337607639477507295598685929604756664404650292089689756513839418349743867995031201242790426862144600322238183720692882630066839008293773079987351612022739685263612277529555953432894527740617545742047790382603593613921822153698631495658922747206435981522538048158190024851608101390019144864224407025162296921113025547657489667804679345001525235742644096891532495831327184201415206096729047978414534388621032682591875388036861640173453842192746219665166221331176808685818091723923178621527654202778131332742175100936882917530016782221071784928410767771833756013471524137212662404714476251730599312722209079762500675682949921416801220225621637173290005072275624971123044849617075234650786604418693431251097431419769954161879216212944509820698333003288954257259933948240920682899904930856881357434796263149603677397092528750739861407328300786410533819744835368898906443897647749571748111091468470758294547363961859303758202896959362750516929232416468535899996597134412652808448622882653448835636087898363594103964681240361657512133710977101415341462494713484997435345754933871629624448748296666071767765201654548563741445801100890696309476889200847970984442364795962973046975344691532220343453906968697212228132749190315358406936297168024071892610702683975907225902025618633400623692036888071322124640689974414437536759514766086568630010807767235137759072175923873607160927585737978984942330947041242807904038755534322526598077109271734266888480565283857054836591976196921230353371782615409276430220253151428275642006669822479791972093681091680732459348478031760581503767456452188489761707873531642127403568157209177812421693551499704251868125782567605242983211607728265442991509562188689638954248890506462135267045008968419331118980376664388132059565633517360977512133293151924727656880155837756880516101037631765308626791307034108831511930223425089043449072828148276344526536806198598144222368102799547470808503961929722746628482142740392699377410789510875661779800719463841226242513470852307295488644456998218467589298962926490724650989660881017769018551933211598323888548629601085881748222436785737598165688369436457256646713137806013882890320766413822921232230334962254119924491799561517493720870962720767111930135111250697769702060172314146901019708442143897445297388778305791436936114287079056218493025617991437440428472616341605021920135900680232799386195392334677826408754930855195475391873603540325403028572442258993372767102310296287611599004281913526287881774708766744816579159135072693931821817579438994464851242401380226902872377250776120990632430513598666185153011054943636144444115894381946271425493728955063628615391130574485094583846271136354031076445361169311916544206427642669897943147228022395876859355420865422668714867796843690481585965694656394240859371904400854827505060017178574348407211492596378004017481031657411934301662761339638144064813206022737368328864013249006092479733257123044952247363571775048427367286399927484872665042323440742605157065437636146120565276671707401909748215283516346747381675122716211898629491852653267986405320595299514551448875252049757858349710416530412349238352272817699678004204476263120769833341284825774772717777021596495246740781205933204460744235405019081721486863917639292896007301313856575291925018597404028523242592813515814739847507830831887567906734118999779774191187330743838746057048633838090694087960080940107340444446665741521592695510293750109556646299978286266818779755145099676430965259019449221852280808412928470783312426592408861824869834195549633081305514225810266317859860996807661057302564799429110125763470706974608897896286824308074548713957341459986077362942611827144765794324365887178371689039143225027295113889221703449300994789658261567578093407457992193617571538941377315179822481122037177471000827075806505204991490902262422737272226889039289574226023046916791227633919849498857826216431068920788895924404522424579332197140728466180187535080951302345922150619741922922008179077325361413133161831805728832595954569966529983029047861830810986525794832923353135194900304556156109403645434225605360871507960744029242749773012272852669095811750311020071214422569683811770904527989695842256583357129813584648239752000764327766867975243008482531967849815466626338737894288964892123277297084237902043291479090498975299900353876046033945942023996809695627976926406205267833353354005295088021220998764949235345190922883592304100945595355339614582320226776723936569535086997444747316266274416630671113253779881049507570810494405363038092817417627033670392737229545166302160346571108238622844824757181730805185098645060920706289121843522370394326443904206602502903013110693177757206339658387805650393716468373290308781174167256392359667221938010911583014926758997981629706511585844435379766055504279101957226489701287157690273832902265448329454192772613979056510830071434058291731900313962675177164777658112630128050449679354353226291505013877128413485958687891899131488359017665093989176814558970358516333636222627367617763473412823554628465888488930580353805960775927619875558718204889052319695106042224977978914228164970598460464222773013154556489972081797659212061871592342256135462640639845986361192397181300673699090827029835378986077085380091968185609514463434399154955319567265220235178512370680997529260067705495636250321482772491805389696521425525635835750536057647831110014370008758700222426747123136264772405453412756733447905352119395784310890974009010553342943831417362737976075401524611148685006766022787952013202345318829412842275949981214159468958901200576248854721212490536736590191776000547894303496596028433436157027732145649789135398412310375603763827590392708095988370959263071662785665976787075838547368938205333281784713493011128015231196129322411695091065645393134938530357972744650235016315839299120664776942271732142499987598266640757859562288529814469142093433429450453927645612098250619845657831434029243121899593392796589748568139585658406742584631366189269403653526034012976767167232031453315129119005312414731178023807315491679071446878850460315091153591392242447717505350585625222803107318663148425498013515858221088993606708799539109542489021747083000040380186208844934091949294673159243430075646978851424849600879254946475877247443204910957723084799854922137201257961621074275280819167676370972179610163918160963046531406720870559650926148859485375355994691536461823875348565669173933597809089107346362254287331765365723027908112325256292106819330861800323591775669602896259095325113573440814389495144184637693385544652297355121210434520093328776143282592371162497627997746356897639539112452505982394665438836050206742745165587398019669371259930873302514028741737280506838142497550007374765208240162492110914564391550265731170370150689311351957711963236325573862951511833478094744374607193593262874790901590329521919131151602281598146083464837911165809067977657564017571011444832845365631699493086674437519907761443341006931782736729265288541389556129372797728731972996306294525724394377426241761468489638700364193873698120471155029207436555507449975277502496638923423009707518456516117277978143403254548023558570630482417280000520871849939459583115645165804823753452307750182106136053864809976839668667723399590749202005415689950581251085739142649896522269260121272402850503226260529030855576399702321491114975820060291348832831533507814867462339361238208283237763437573328570060345521600300214631226054759446060562854317347644221283296087574823975318890585588391326959056492469540069894892110799164833672565071002030528033135862415826033194416659305878303457878570500286804290041348580072157612307526378484284708640718206349241001098884074654679967966732246740192687058666776206374030074373061726520093637013591346800712554038970732387329590963853297465295886321956490637889363501561410984092033819236810836038711598834975020921185314377674362220768362746769392938238559180606821295383169120551584655854870376834283294619069122538296804437374370249401349125309996775080368794467780094721366536917554792184335380740813564179017138456849053551896773629103865147468898095056706753199041592468403148634908809727857368601357935878504237184733460936002163298749950741901527447663424300852138814993635175766947503261540643882906311671677045065641828766018817898812538792456281525664978168777066579162009825286994858560021566103445028905348515635278507635034419535776650357995842095766761002143881999644914746611645292772795573826697144992602067484502480363658988120829660061302667412837274048299482218865691618371489706668050565218825718323156514915598436435001553713217501026237283453758701248628123059328098067032843474294317153068418529452356724022712995088529851166332052751739077550864075024397156743398762861151395947162178880510850494250671280140256047120252754860541295199976254512667930083671201701635796435929022217599151132862293485715111628025635741017715734639656561567506002704626777689101243845500724019564446884365391146688544121318516770027864236502619876637423183103001966302094451404387717540907231712075576254502652580237138543946643980427168924512997484859089682628716241848386218458421319861299390378959874142973593546051829012845697575288746526040151940321079763308150591092391779242955801923156450438620773235785350827657792389208861346648660160634375880374390183685701057104598540339435573967585689261282185640441567215093918463516057756440771185501867785582762080095185822016591443455083489789216202623020832059476076242955273719596143187175792986212851847243861961000708281356001095382733503325295438600470399638499910911076547833905410819467976238277110676564199030419542697644194126137441615027228478287364008070945467651662450652450126572549102402705120758954142838653053803467933422654407618465105561131564221057345734802704973037984991398355231001537199309416087492676659234674736212081150211584371315598949562625835809332456611878774937811400061836937171141022542590387019267696520992901278199784963257662816698312457837185743204112087720056734225023830342068820413746073470359639367955072125633415499949200299877438951957792664484790269767988575312189623942143222589494205686636060723390470287242090951810904558535264063653544708181118993518707988185449252156333054382323379756053393417140689044308319278283150492553451004144933162071018575345352222175402345401676153511985698926260957289579172782164772925070812231136827659585892206829348035272401496803519111807291922510678107709487326690228289977753459488508398425888565067668263602953172850279147255233454452772654115301066163744873715537173376096826336072295728854295358258697819894199575783862088936429323760758172010134884408659886545190407221813226701470528983011584169104439384749966411977835153012462904695091210704487150956939189433147642377112850742554557204418531930573435879438647515553674586967268529057033136974966028510565255588637802626707141424710422021136101293538065295838630374537666246078965915620866537284455715840120013497500145135889490066079786466552075337785152914244743604030290504491788885555070890878682637369881486910053511715597956864887016530570690474985075384317195819538744891065412640087585773570211535925384001218426873754046121305563385621760636523807803088600460044558607316671192722717782456635529396526039263421582217763246705886402535204757597524108361815683120568458829129113530219517051169179314837166966888682011235175867590053434540467096129626451067166638942813319419845944260318278735311326121848457485833287178818917642062798908564823108215244708738586108496259396333396010113716171082771879068270215331661074262297588264898105283038543279698988170423459610662557392135703031666385612536615942827798741767461847582906738214648220783597961196792322681891287996727950740848908477131655726222087211331739980728584410549781818283219104997477136485733643141117775917530990725572991873877878166092448551188543815334625058371025749776554978592684602807925472590071165427269451240621020205129227790286620132372048411665082722963848986423906816930291967629804031406448623246347171171025275382039142166365577021615002788351996585729629144147822271060295613540205607295639915396857743419192729592459044142175470724910203958753634456185102724025938418089973518604230060286064337462252280659161366542989604384195569238312765345601329815103195606717787548774517129782872303331182446101643372784130732909226008825580656405529022755191454239445395147465362527910180893779159526816551661384749217495435319736950250603391220300170266379893618386561809362475595869758091150503461909945542497409028519002181097592194136047068417321170864447826018932000437247990874186108060425647000713136439910872979140160030311147191717651201686926030808704040271282698601196822894913867377997594424599328009582796214575005136643772284263743248925683684529965594760573722325972209042607417300648327878751570293506064882628332658991892703982751932988006206054219928762225096862271272314677098862885823929560677147837415800314571265808687924510387903738709143307035569982718018248684395233115647203679622193362268467523371452878552836431102190921530795623455541518832997996348017638337117755005304535824396399032544797808193195091389137253003583264126732789883408354060156313815090948043495221942582256940848884646231091177134997848481197430875206737252959686286000879488227504228981394633867114619111100841825947702673744356506761098003724145393971982761977379214738339373445780000897531191855785258642820852027675944547975971782691241999519008608689664528839791203748006776232977108537317397962327368173401832522395660717946851221351464185993306682134760728810734262134681202337009141983875214197523145678346383268710068428481062943493462715018342218420557744135558417011240072901442279966561954832740525542870790288758282391165135227537432347582830492341354838610374353965446022556728186013317999448916624691041433846181130013510604882989933124460119383021727987447948739671732594559402804908351832291534333591320005421172408820647253280886580239120392293342756502222522169698220679495687523681235532110839166967779631395238267255037073140851937491930688701239015146518776010189568018778685298408372087724111096196064192929509302565877227186923051094624007041966721584885895147634257588938466920850154563889249335927004844428326477175152709732074180365967948060983146438051024247437099812863128687509330183200003557578918515627451913009632076845568840161879370945823009484980623012952543136972890949316917131527432674685950097125741423584060480848455392128686339969632133937415826457067227424016964170431977352050842677158285714071168214982391711428276349483737867886384572896602014999859726960153984599409391998537296285966067955669167406794914316107236535076562646937027154066222674923705252422926978067722608880609762813727818541399116835850648376181160031122780995020211879541497669627930537426092337924699263720863923024905815460494702437595099903634076354727984419601376388220245268852408878051509189818442972320843285858671265679157528190130873938405637244759800637669275421089641107527664679443226464429110020602651511418319171767428585430027720921672254225900245718508998093503455175053266027494711148292311437178708396873287667525603082623659518226483430147622083830540746448159155705329528547688782131238802902376713261052844288829236905356085221167787139386967249046712194948897759374608995613320915075324311890921713879417996695971896391249800801697101710184177731125570047167068768045120027279356688942713367449267591825884124033326018190718119577882662235965360282094802613666739397706353985042322594058135741185726711974028021742878220430806502837214535295732858957507257422141811454104163683624735390103586102262703895031697364134383119560477991812900689523600956623577569500765117840819968405360596762463620406226012299315590118404514404299121841101675322595371939875511895048233013384318587350952202881672975336534602501032557353257817865183695725833102064958492129768795701486915304693053475307256754113982875353588536513811519872856525596254136546191622365529894438842231003233004844793459651001338268791483763365250827028678314421719420905954017957755957242550002724051314395080122284032664907787575464923614080379877736144038323087921993688936015549435076835331733192641581563613930390962736036073828452559026867145517435157129903842860161722443838418048160761454568310552607060144221984266853101061363088907625003497564823191502322197392755690454088952367711598287242823134007346130499958633100559774473256281840100433030384383743511765631767864647242903910285658916635123852679464353413714985068967230156621863671895502634380437064648362376500954090937845498045858165249908034244360143341421411420017891089524095533588728779268013141107287523797754629619241578383291148604613206341485795856229119170648337589659957732303231794821515487954137963778273936052810474189626812727190387844779898449553991464858277587873431941796982047947840429041704288296719897136086209437944723285310910722373723245037999794467134566199646101471333612002091038069909564242499854902887653996792777668911483237650704506868012683835201156720118237473582142685417456465015356896395694356791463682035202435368268555312548706998630561789143173918752058779764214431042498953327886529740604703493681038719099831390349436495942825180717247296750694654175943280965486406164099701643013234720908685203679629880086405615790687644599150295746033703527864400216048745084371017664997965546788989451904122556589729895156294325271227088254859527105312957043326141939745754876314236268019607907439750321873964146554640351353222556581501037847116296123637544600426957933488797352297222093733632895071245296513873309439560407041038796988392239661538636295773489777412906830639195063005231197052826138110728746498870817884908934989146344919580549834756252675653440588668127337514037876876766330033503431145857041000034303059539700269239416171693881839494623817212371261281358819452681249827570377604443504273211420838848990452054090231509184093714299847145199275146694772132190822986282714781401978133414189872866554454026793021356302459516072604653891652433252408068246660246685905978322930657723382997644093525350524959778494645355880431146391539961436109498284164072206023550387584007795136697437825186436303817553792463578459349791694931048243426110865380550127761676160350540265781991574838403873133133470691113429153539306971724418750461973345531918798000506451478476702357780418369637259546783274452519686496860946026064988739678217421244208669076575366707350455131724545974379827285174698961474432578571988077926176128411424183934856501384183539229345504563129457679733376327488562646198875028622809694765416254818717860301613699086442584920554502699108320918669428205466000629884494076030527304682222635150781030315629256891555898501551745270973666255066220564867274586139681089913084887363141520155707020363954879928634572594884442304904495083027778772382601629498875803097978736020162938402927166478313470902778606039468615748516332920318620825573461772069632233695375325724421986087955407688527182916586499272072415103547394533949246961102790364181995849853409288423822934109116908150351348033007379730018191840788075443833900039689644382028236446259088884970011029695086796890211821315994032362036655099039789774631635143793954559607415873570765762591109908144564462016622528259558325426387748806996053870212443474264694591870374803443832032808750153615988332340714637405527661343040864398080401702915854259737517183734477896539496415916251589311699396410901333322248579185613460875002980453178290190300742800732833892946937536061728625498221952669530635819943786959505632708052477908679715188047791611759747354136387232216260630616294872031339170667247500863778510031243748035316096843833657517038562385701051952518124060176632407452161128748002131929891951257848758078616917375295806885197642529956346409867156726276999832507131279196437437283462478189140169471400517658961578173680904795360520894548039713561050755887887196075465833871258429983438857292312856305999676536885558594159093441548540675994912798067508524943555422439809523834929851339783760984731174609893774597204448144476369260045297376142492419033556388873090134238306335082703301760600231549455104948518614690359890603087428841739122970348025692809823771049127636717659783020970440368050302337491348341277744337456668015971555972279900619960893679565260270912691302894120871286317495658114001458099731910649197820183628868571788185410928333699321814777811414939909776064057271673504548722767400985069530028782451842871116072613066196426101227278349698233064535988671632658001114985378598735452272932172197886164835327986326955577439073105693750961853181086778767647182625109141682779094994740656636098913392335507006789941504792882419716955232801651873190450922764051826516589891917821360662725400446359357269083218599481507978062968639261077449889617897657177023515971806400497360560651166367966548582367352348009960018817498975922342164573096448546698360622011566902368155604072653473212720486605207831089065615108346463413416381135784196509703941676230430816295706028831031444184470637471192336782422176775745035392423756849703653108622730515936658482604625397412922061443637998661126123138722453686335989954272087724678840991782096175823752125154367543056745555306576154716107295892294634966770102552881940127603523140408272450886815861359007991596225039738484882916329803461451539545726093179459921783550723178264022916477166688056657864199867290856914738869524176586432408417603990709132569240635378784784257343758128799839326322824160577686623225687968275116525119738664831323928063692423787723173952216641336115474316695151313528105273640010915639638415802666569020140896181793637843978267307200292950531216335917713886051955137249972675273043141508521187563870564183193465192738890923948224358829601830825330643501712508130204630973768399212369894234974855234514696570196399717433792544375024941807543819969778155408885548873043308350089184104041032612673913789461637647586845889235653691335338586352380687953075910793254616224179082228546807253571669619966171918777489293516527058026582382110297986444100282069236566720320808874789907297206655837970331319716775622846199349199609259966201786442011282941823325684850218359439513851491985280295163309063801591194779835490379611491717796556452137994877451305500620704848632223372996979852198029172283497366463497660920986985078856729533485902293158249712968795501024520748139985515327266224360341695484275760965877746510466283713279052398895086084016843788199775091916319258361227195826395316463140764094330683504229369667639191770665249041815133327599331155656984394409607438579755417113077027473744178673840489777463025816139857473816628236342702710310717768620244515804681539862680205586505400340004179796744364576843204209423140364468651157754559236195716398204632594114454450915742222916131295234384603410283853594360814816647944074504769344114546561104871599634473592312960796372327814009250269566975969071413910118676550890151776240992520941316380681302602700794530375418740956455813324206091890125173869103351888389404036927670548243018165917767405766938677941534847344538910911866387676881440147444274058564457321587940459521571267022362380237791180381808381952522051134068627094409642306731413988593869158435708687836363548662953824253613598905839380665598030427896371104050402470972996147547304204469218830204594651469661958919502744366636988367083503396263381066310917612948287477817538607773539701233337065124156386015252530620367882608478870828263402010923230941735659367232628551621710557681059901380163613305141927999620277008280884721867776968989765830899807537477997132541973986221002551089102832054015325605099495323653547163973305894877660181509137838730332767932066738778554420665718469436585413634809955644382697559895202901136069399649487134140093950343220805214323298833906421755358281908295827916743218664579512450786859843488507811300218699598570058164049616888989843130721137351362632197880184895224356156287062936428906503335804184710733330447769524980977512819775613401059833132372814393794555645793218934643714219796942143557224972865369541630570343816874738638932236482040686136416258545870528853775431700578932701376740872291285355197229939364821466716702965778869154930961489160005058123919576736980724581177747762516493603149562514607488657216375137871243056151559414434550528739947998318222584858478722135027010832351781219864427470666973156596770839360734875915290886766396975810083362833936701682416525352025254043519507540480959677072778589483545970798251506318805540898896044855648163991539346174851543546630559112238196276881391362370500054182603301522409775841012724463422522724268475377962666595722833645524676192115641657949632743650265560106856797951205158483710995833025298675785859437750222273719333433593018358683906198722119313707725959302054255388910359793836427377400914308809155631235140751434766880895968084704860979772184185868065898254931871295908297506608247889488464081148469265292083899460329081411592482141793218379617540868618738083376765904086702868166885393288170398412383809481061843607615345160261429289105058247669515249813373937020215988240566655144357057710311274081732872792758788645890126529864759252929173274493978737926483330581664657530070752222306929758348237978563146397770280132626542429737335439038770384372040931561332283726737344800393492609208438860691053965538806756337601427600239743930474320080939584071256956923157133524208207838790570464162810434916580544276905845969339121727822497943151527306161023277601788896326079885993826842867940465842573257777286842923181636498122519111365587693011659088495452180062832581521434442357789005267116300778407490834522269740756409430142566532584216673363266485834281215451945181180335535833815399877421767310457611604241140905800431516405046145889138847323093119407702281283767469539919852237992276271538648311676897504641013077647627441656555021838520650591132089092352524079164264821136220619199069849244156889239024299370812219361764699184454631222827401246410094701530177495063645216027856969256646043282605202067568762681127723148770099242653778705364933471546836152526546585243366554049590576589367462459455473346613690711103033074568575105527301043903174703754833092204696275792281750631071202287239508578385212246749127328769465604095257338668848123788819726384896871167544093487922223860794888662134999509624577229276708562673406336231094092506246972045754857411179492654609880994592128685312052010929712426717206792896275085657093277384288596604053765541689589340120908930378374927689875555799928474077165009007889715280020781585213025682452201414958439467724333915552849848997249988711113665914720566312929081256854066786258209397121575158683132013430987173324884336845326066014002936587492793752631688532653428648120592709589267509768897080300722998501293064698408280114119745808664074774272494339611232040462872765043183902482471643266378410834875535692331813486411667800579840819198444950071884104068452228595601936642984801350652434951872785413326995153701941858804254618485101337289121733024866904684974822090272944291600356555789519179206412207986057893730005304971283245061223402515711256281062291671056720365051758109738518162655963421545991552345068419053476629460547747607677442513322249231240635688301455805307510751466266566251973253884230874279373695972875373931094739348105178788510566512071276420005741246681840556539588032947202559266220141594042405391018448464923330830195294567770647655052912786394327886204192480194793069817831687710932121119570562455412757396553255615573824893797599334895808260795565430858514831948327652048455624755169887399603435948856005142038380630101423159087323640149139041724166795022596315231284704279925284372340925808214486299295114453328496224266158466667444502737705427434881381805372902173929994425816924864026672705563874515962015301512575650386497030222120802479375109605785898868704870811345067272711263917603544008412993939341671916366442576125639188838045241371386926703259025671151957756045376672510376653630014587321785002483871121055842347627467732868590850224028704736240093810857547694934992462307522822442416477897719990777958327622969184661689061473511468668985305207643922382086672872738199203691012795815634124050742723372952858640349990237529501199531774936703997779483506372754658364361064532317117446435691359127023126346768159258876030777642804212765520509147103915780845850012186661551485130990545405282991539556376724274211013228394233887044967887466400763909500688111477974157640632916984586591193345935728902838639198162059677252449790601348796587122317324951619108163851003346460337625035747897738697424101722814629624896473471628864945509092704558026311035153095807809049758442094171433458909759537695873411037705541777862264987375501488425926500887813685752821204645192688985355853232977210230466275663501732288340695450745161481529121485909873968195311017642272320819368523019259893415747934975984101494983780119398538260644866575550724872756380443864250555986122559783610943946709066540244320549954281883264454567272547906437180778572173939919540675576535855876494532900049018451589326267858180853550025185125714449963241916648212990000274331186276052695442459149957345154763712937264031700080842437609849540616953429748059511533581770556627327661657301566326934137436013972359365747881164668448091989341340739730032108904470537578545944842393990503639058171243997624361305060151148750301755023509066823574179995213025163363614032315234385340403981533375950113131504497057733681822599742621633266798242008818068776678027192154723618979613762394161410507058294348050692446321789747259984103885429209214203378217818697254783118165414156487034449564929811830143590978327359344681320114726938472501441633922695446883599493969127029128283941262130596767407352671104205186637650888766686649687393679146231705778431296398162340597033271691517914245003382723296131540342977306238916415427410079591014304281806137502862058480969763017616485397230596666751730500945431534500444699979171815906019289984723342197535192828223379730638820521518617057656593914535470534352706401372819420057438957813173039242485877833279021181838983115147335418634261644656696510703591565593042792680452216724711168037504124581649474473659475676738313250440994819401401245697533324920461271810914299033604582402297199053196071665997815838756796035418010454319146303571524987241210085456049243063199980103141563327798755430602050872671442057558888425870038757840362131289782120516358906948031714925406721334012843248125305804741583923159553571989688714233226179350633144088191229456833204883771249708498369086602686527821315114452816333539686723640183601124326463331739824985140718134014426489565344180011554569237596205207933774018308053690837530762381012354047399570685494108002700526977678802295101039145713938980603735528751935156014384669290665116427522322794959412961960916501067049599540481786859466483885483829775923687737164084416710397878282863180021359156530383482889186516549871412452449865616360710580452628807920437023426730021028685008259969082903062755210338614407603493262693510031272189202714127894827670778428231558281925880430550197104644721594516985363037369564915910432219668130174306667182529568588281900274315580393432593796436130741847138440672936524752727824290313408407235016717366275530207319895887231077551550267381777644851012575215905721143594157123138425124991626749645593953318359592067067850989986056613953885198329720251415712564033208576829982888003602207881093790000919870855193819560427439475445488521133146042445630521239278630344241887262095455465103034016172203804916768995449356462047376764475165512123655431227218061088993244945248783931338013604879602892658350536381064082331473689406779562508062426961317747769657183352052070442927498655192899982285351391396662009509086129058787302987671826765804314742866480253259935916100370910707657639488195057898300864089352758313109849007937845877484199436021535129752659671611532578231105288820253782928771024766389723735313126335567460714893069564185755160196833875440555024925171929120976354131271155272336942300470948908990853450786817367226019130104373698917406278355588576037325725206433521718223434985399986911835536235773473642042875487197987314594955261931240672774128174658697253564561426572702263132412039833783001244054172925115144293086270288134393769010974602108293136429054502529167935428357193956506188573125529967199263749006633813571507280587565778926387823555729111399185163860545080243369768737090883185262347958657993745150901405935425606021729524999469594035445725547213259254877709181919214598220630532382637111096925662606848365618080784901635516214924409220798837047284841996515936791165388667404999738534068868829686518076447448893608362372336430807208027756956924702294171397202651476101624180265235716843004279748960632996317148041474085196310109189495794582358807940975384748169394946107024899810875301360266571485434608650823451106108917615376704076745158277846173489940014280994024269489217821433434084887515558346043313328177518006645135814863135982728171526095980716947597944687828416412759574363757809071227509258416456953304930916813641409134418169160941390329046298698188571496193167351279803529483034200020267253942121876219653738705455243409670845368906984097031235842096100676973823805393721435388742604557334605720873787408673153004718288233680375563463034407152576107000359261065734421763911554846241038304051257222420757622968044129382445905952944154969052161575418891483597195949540962581283743128899818284987144881961731120983070510305106980360423716903649273574730714844345485513293053431400076580372264149799653273688550327751249818499189030295423165825665036825665971360225971791709386541228273308663683233114938876968688577983010203327258390155218128168935918832439835769113065464816651915525519899367001648411133734394172864765752017899843258630390484908825305671120044229783931585720364957504490971643909893358453781282571676167528639148403591478552468379224100094839017178800303118933555139156470009584643458824992992038855046792757955859867432827809727423756486835340563132253032100618241339779197863144831545704161637598107041793578640430673069241549370517368939563741286556266533111380335297730006192703385763691757093545925852500777757740944271848638531493211714143333328253201341684203028434762972776468509746331313370875192136804019676316739811869079589153848198648759002140080503819632498531903660287540648008352229563191530913809619134754499339906012680275987199995896939455623521093122909151401988417953639380878450233478799786386157824828690942628327382370744396387033577861014955043851172347386894730695167402213448173550011294354976041589383412470864117520500187258275937645107239113096068226276756190799811927753766569666743066172203558087017882408966425079457613352569893132507744658783256141944075533687598185863960924766864914370739042719484692240955241263395280210055652492348317222099156323979330899961099027081943556067831970025824287871944967091425454677467892041375441153364040343946452846548146708437543040748773086208679972038090270448252260599985180707486460373398278976241854089263020620639917001743738126924238423944562772508474902278797463508928972897459979235510117264192945714502515582344360839992960123410007350636498414072902877450623196194718638875429195867603761106603032424228265399691278271934113479926416522079308308193189041038374861665751773711621040796191719797373388023733580963204292675987390656334515106635925732181391233521919130761869697965813241536115150459596328540759631933306443995639941906515586728408697356817443209158857731906913977884484309890061508558574562568236704668102775215171292210367230911592722607951783558062758117480770758847921911588213427801990982563922253651161505046746727067659298085221707866596460796993871173668641177022595672995882330723245753211674627108032003841314685592036087566102525630156579762284552993542652370340981742437740079339012464286369501375644178845253352048654711392899038134839447258277093073214720012026084401695294578866547314865493733555558876233715983285841609864555272985258045972248922936139361876722940792487243201269666771792712241285805819831079230614918481437913458033367085796329058820648560017988042323585129567724427399151844294640122024887107902346639467082056402875615878824459740919089433429416768071386910010649740509395804358878333900324722076806987883716761759268251188561847737913893080207047970513297126515255366627993446122409542736970063712796821137778340375478893020434076478045450209184628731164074073721726168232551550918689027580158181611050022264010128059746326077957855517556127454646686652631324190145342505183776965162578224045864382568330182664139725594135511005500212580030573859717778936714083100659207154837651433919645327514276817702888553441094262864814034445744397508519990637985267933303829927575035608609004481588864707561297473755233753825256249202327386382910582873460422107659534189504009622462456609257316777253759658054706757767941493745632530993800446736174508908708495551359766817228555705664006267201300626523316243505327504022026224442109960734894667698776341789648466540892107760344055880100238327017761112104942432920153716208616923250739558253325958629215051236310547355961400309759201636756541918549723830445502881099573479880210330590385843521916669519404518334802094301651987354550687486445770452716981274631663288029676858415016131417160155371345838810952752601959467645403088068047645764030744759003779572644957912756849419847749304048210515791205529523667181457382162053752028615203820935227486616631551290799566022691570120192458642219264281509253426227578817486944499226342689443915005444402976978933027609481524850597397983317202469054119988941274395080051871898923573867204955762706645437049833429089979966849099273751889265646703625743033340669155846616213159379259430152830363186783180157280233536889063504843858395101478262300639444268980777495814455745389718899785232830509725343324158821103442783201538230123333794144153298306286762093296871713795563513866460026990699420247484396787348314549147625362737134333749657651375249335549465770582138103583894849288457426047196898754620392061012597812203772032486272888577275607666032948248201054661306759886541221306974876413972471690730383803220763319221008631829432085932069333324909228897102496014777682959252946593679738722892239586887247372065747868586925385173100737614805379541426534551460293136583153296776970958478333820450555519864866083255704935474840253967667724058309418267140536921323749025825568804112581549882209004135213127951989626699903923080385297961296485631357350632943585162511026258656812995533070429588075336893071714038342799206600672291482483727267202523124156469178584465974457212636427509475226007883235242072880399729413045636017744979247286482001198574806759801183182984748357721397822687113244619690071313952497423560641048895316787331368708497777723200711781099786763792338367153250637120227804091023984901435509379984283291818222453745938438770796359649901795520615050892533322810345308045075280514729864675074851916954099042335548288007730693387635989056699920994464659569325039484055118154049708235523708839021527462757130296307632996902460303549182982938734342034173152730093467583517539270534749785681138320529085842841139584898678247642532324960725632996402964705505530130968491506443508872189327001161367417168326217421796589401504173339289080483479422565286877448830281811583620745758839253341080135522526730898544109332134173856167535425341736556065341395668550826638072374545811446362403370186292489382301476084308818691023196532588404103159870684118898839522441507030907328220496367003454159114312054781346135406462503921010546849436204278253032191938809772126829537445841941925580699129834771646581431877175283684273276083194138406525498801067511616529826519277410281855046620341843694926616402204743750306437056990374706233757580638099644112680240734044951336193348945994647495226112589814261459110758619873495899457016412218909268356969128471103584099122819366918331338816986345300030784053007110854106173013592167664506850353906041523272098529533819215223697360961912027922724294567645377274487554039205336988387033434162854996246716766183653811036006794962328935027859088249956041958806183685225963117523918504781612188386893882276176606892836899031588736696725479631658443263668196842050780973361694658911826843797050053408773573894150556059457147893868697047252857662877110680118071070729119274939267349256186255606442558733284868859734476915104904494213500135264303392129254760038757826268168082595058989712946274016120778010837638632761844917606132640733686204974876616985441330352867762210305292463272587051805526764355841142439427915996500999666896474211302663329945245530619432405635256384810118393409366437318466795047624986298642173407987679964319828076084143268862183376979706003514780090253298578554850132416945666880101994028238170111940426660155439200420378810183754959053828617085764776724621902045975423633527103760985536952279130213857434619764405410353249430215195287793037321791255877955877654091504615051788776191091229969353931748369409285234739096421494106767259036496697079590994546538586274880350947531707737904988924122086381514547732808955005749951547690850283295777932712901582357232691106296528294998034690544245160988632698447482475556539658954358901170647707761519189381227676486613211633386199207456044692877701717538490053030811704408783804117306241041041802774880364152871097304683195446841352788853837363393252093627110554200056242306260282298717150234318470940267831641063617485864509286587789602681973378592814467022982725277227442169333590653457505802383670806755872585405720493859438464214629270324624471328487538095037819880456661552093055900463145215694283506846664466015221195261404986969157474496575049714739903229270601789900592818665747314599107211350114533389602402854236788182486762553065944462203106841118315096475647130362638346345974467410528115322335704796178430925994579919835019137334959385803742721613934868766584135532167962330098869436518989702227602826091491683160659302666091886281154112003366881392686452462309625797893773743935040074029403451018874865704369457494990783029672038171943918257847531215391155331351594162170138992195517985094579673473170634442737139642937929542940446175200747625580595432570219128690190018564043984747027166344080769160485252683998019665294803353158733480031247020205375632072971000072473845323734306430236619342031654568844096914287819819215046045153974521409696278832776908426770511248985257546343894568740260884509230402924345745179781258586634081645576511462147686710548661559182597327368450927875888034629307404704969402172532191308947163989316010907178787696937053777936454080032544760816428591410417316868315796525188817249657243636306700232183300125150230616113115450215809046435452177733723369457456385596524996256897518079399575994657964639267707336491899038931962129782083012749462189486857071985111950847424405709404867868539109460546878411487264705564136118325802376982177337250234689607327125902287370425756923804164358722611695430506283295816895223870857342430335113458083199993050938678796835431677858994124015498505193494857325671972751631772629486108165494025633025353254063747929130470887484183087312771157751631643254039216717229053372762002476333307575598756255453365381529794216222851434582707775772528480869745772183345641939538034666784800303258224494467250939509660187948796831706857009913346358588699527105075017725165431669377992026509296429907239469425706031709674264005682234311065283234924250660335714213493865173457635940579291336886037675342335272364427851429155098382074133117506994667837080629925967626009294096957989407865180761383024196895990511423948331275815717644360388659421445695264376199032602188823898630855746219315337432028369007828345888948377767957980587260216472374259777435939265076738378426152296190129776502884270234711254708423267258933331718346550561726162920884372811093321348602571465009895296563479130433124307202010067285434634867398814113603540406621050440663448910278598275030579866965947653954456543979027470199411578112549304610755237374876436062857363420006057300783073001213763693297141903424332752810106114786949491929995901330763220724121287822860134191728518013992103396392475975559947928661392576811326506827645569002027451413048323339437290283604183852074365680656134192389527247770078960176122599761548231839268112190216689833954511988827727094499517677923864837080622326021318868603147464809391610098576510619630182214369808090164914083666687134330648698586432687930100048680233684394885558654563814038743725458189599963049651853183809824686307574770324946314811566009711587271822742803112534598689254573822220211374053841696998803716521391795493281361469444887167797667627654880121863650249741422708149398273548834901957363247236684548183968113124148551436547505471250981822779589080037076614562925975764927881892712243861366986808009704695614640499504047996553764694237508843974957888457429530844091731111938340355567374814385973763855803149251526997512529965464440288706221169452136268541746494755093834623350144726673875538410257619256567720673879103581442736084444468666984056129244476755638293726776310412793686179044289749589160584665001582102630847333827882543575765601078841620184176730264128910878403608584210720470817786529869230439817745864005849395642667976159362813390968415132377412625136133723574986399942431850406313764617563523712029752654934009123247004604243603282389598808274073258020516084281230597776487745721235545767814157855698015311926135746917200518813755358288433240901420169907827256762413857355854500154848331105079537105951014149144252745683593485109068320914117018809594701269434571540109185388219775501285192676514828847131799843479653773558699673010118128292582516782654408475671711976659010280531389309237383690345074852099996352494396725879976153813646103968674836623603222845020639740072638811199308869016567894692470368767024468853684775473857352005326115727840711472502081648635604526919693602420127157871760257190549151873673761266293562560972445046027001222015024582701465146831347594641607735588429920228289457427569276569450888774519175493922099166429007670070522103363154527702800009251834775002801624875341140419611028899827554816030566403773461040816297642222201382266739136657952708952715489054925017688885418066261949398250357609842447138821843663952632949612602133153311119808473692460583205443364543162940186650589769252277885341743939005557012235226107287978951600036326665818519457182143881715572548138613461059891070306001028843327701175604075541625195257072290797317403946892369149731773438809752720429856798749756313041013238631061345423925814807724596135680707384780352955422086169964710627631206276680737194047619330739138244517229539737812264482200239185847410716011570958613759219094160267954873642498487148340400611127175581959390410356840054917092215884738833098905539319617004917987051570205211166731371678709948115189551817553997761409899829610256343774531595906278969576211373943511773410667683540502383943841504032511028787913529760642902915854126211946581615077546341246806421171551719753628342970450868364318263434179203278816756813621083737499781161748596329114065829272670679822999448123756811384621396799514944227007269160330078230218486410690551762451841385101535451079190574384373684581377569826349818483788451136879851145973691453316739773145016904233632527044583872108758140991624997480415521356915349804125629344482855227228596972808997713580525131690350023660260153844902951685744857605411604286489866836600549093087493199540560144368097944499618518421247611270407714340532974798589395379443567159473729959052101855427257937111164889554772324810507806240886729228224623311929227999928538814443655852589386940478778402185051668478529265642792875638311849523805644375488457268736191734060820511727724879984585560861910597000577001726420987048294732671130712439098916209252568269144059332848331130458582357977571445639614991334067375902148518586053343778978869860963282044868047982727384612147354035190538434243084326003024321451090968072418505927293486080120526190490205885101231490024360471253039303247236133921920535950287590650526361489860909721171479688963210906248091197438074504759104286659363711617057424104092844904753526267143760793812088852458514852359181654026572099397931390044540459242770680021987621812749601432130592811148101283444657710244713878750954624749896800373793380725350683123379335325601891418863740815857803230034073247644693913243350736416509913155201673841912731935834789589429815441831907294158084254737161585400612182477404866775729233025528086555591815656835254989477730842520165181538747647022862519750260698804244195266703001004297937813740836134476430514439648067960449425718902279855219724878729730573531652708183685391792298565334099579585989838076510466745032475836731355990775707119030832761941906800265753903553490261207292045834959183101347293766641652798514440927199082615898868307118665890631548344876240817224202471286358834704205354835992434221658571741016596618956502444882027458983195709239169333728981332297178625928326334933100055048477571782008356145824921086989966904918587881991719547408741101628144664160559820517103315760864007020419361213948920755456596540462342210090064718554475000959263376373780923410811649093686680998660357252939802346155134166547707572368072393433333216876220469703661434236240328254616629109392644732036149651538807788652790671702277188403668849876183491255148062690382914292829964545808492890556101237464880177396860537919775315016189892650602296929441415974770764670005489500380578161387302971335902205660698670305662611101131870373096007517490679120102099047899053461312364090002871102319844725488149543722213068087511474920264062133030601544116601813917679780451030041747646090410964158435504453126414382509434036661123142777415977613756488280308143518678582718921633980369904598000432005810979599259948179484501434021330785881168122013955716406652629993817300307609620890183534067855356310084080795826257141406372985753423836644131077145228312301245344692490951780860168455466842926977069249175188212020432295930961472634513280631923331320711446171717165408454674373672129968642068870485592569485134757183671163616301366579102304546030124689847867178216024484987721680772483023623865312913796743425916130905804958952902511159075413041388819312743305211720165814028508444599990804603839628030914993614383787230877694354619662821050655597446373542768193582149002531747442698037874430623904339429928262019629784715613379505597624083696973386670741218439957607366954698176905566648357993030328299897797513216817496754436604202552377818949663156947347399208539784632790309204650635239658110722789208601401697251952594665509737771186756135149892975502856220981023935187280586382921134001067310960671676320051974060758781132559141555951270791939254915667147468099629058727819503572432577213747957781857815828043601872999950403646053566882691844204129555317803310581937165825677335763570300303226574666796713868044886062518850866747908220453175312685870452795228114379008859765745029053204332716973206393086478142450713696657057122334571531726978288898871271995160313053492000740226674874769342978577988967882937054199120404879216831536243867879943552458555621322322867803470441822261621429409923532714707312158419991597188922219791264244468867911859616342201837752864075733609779869527258251483858931038423407519406386768912375621274899170827446846980475998035901940589745553508150197467867939049270787505174570630267856771391473948765927927609787672739521781053293254895714947915720553519879814759164412550173736356357467272859049440964783948398672915231796727680642491463435362140259290859861398294735064431891391107662885104182852246620360093304077122634022777229151501356902147131880241365670416125650842343186044090700005777366145910479915661814687804893117100469986101766230961218555395707141944973325884010920700761134622488785892657866152669245590438411612342819231230866360390992119259726549960268287989649631081810936885643152744747491395524451882138591123338915909651910107072317989549338245293400112128907045713275395086691331459383034478927690109537044592373781125901786607581621755006183271190057023589283568087414208742967458702363412706196024387936179251312948049863716248162885679389334030206881866886410636854586179039200829369748956898313148077427654597122587716648288167822780298928159762933231154243570922508817132583894106997867613703433320443418839185807901086903346530970174244714644923664170625896351032458504469449767031791735790280044518652099275535435075308787786344428145744399220124181123883750131910462805046869721015690239526892605109210107853852248018537293572234525025488191311717236618289407377932283230384203095789117457684222647570317413262548189541270010612178221194118453771580147041231657502576752743777806253905761705527109908091535869337051180883573652466348525608325745380522850365321929870157048654720077380616614040536017586026360511673592039955787952604980937018084694645578081108946222298774527952108575374967607629623451962605265602229028024195304579096331636042902855303700497132531654735120962714219225310410333610829261717602520890311267215686897749996774535083637381697124495041428991949628196643890438541679708977396622492639501803637517289770605694235028734070474723289794996040117971634603693949861404378837534646604089269844702451324815426419514291763591799646085511513343455263085417242324899155585291855235139795158401685075018916053986409507851511761646577882855861039273263292292357837351414249701575279872033952043562204019719926622418234358203149699222464962391802088037975378663794068732188811672663554437540425043565389855939772859312626231043339637262707427248076016874541413104824455246014906942907484004620859984321278542747749405993885358625575975924158519076466189479123564902163562823076731324737519751266447352049352601138718113790749457495660899428444730611566256569913172768964488067119257199128450375243769536476766411798992574976483252008687430706066711378931762282468408748557193797898605138652043436838343058445956393048099183585571108763797462713926204661773563263013668272326289951106540191559550483475035428251891532883915888721745344120218109489433078310493322526779524849736546950076684491080698153149104963011542391495432445766153169460943020038425001549688796131005130580502113111198001292895046028491375566824904790872124901357768543314918799957933206458450676360815699480093351111827267704042726104154550557349370385772098573652488164304545779258954067122783377479122296671608392006172950275900863307667404985355569573111798614059089106994863253668123607109172822932126057456012750718074259786251606456051683103033874353791562908861549745586389952421527506232552501256315777416205486325530768602820198623461424679125763195634098471030539772964863756111040517706269277992809843256290136052406913812344840358462649135810664812221210155655352778638198107667657283303474659495111440491815919197332444180491973236353704744514750764352244620018347649400185261369181967303350488515256713231147427124126930405408838859046941066503269301109681767108461955605957240619972375389881956790172441621382204437501335275016966772009775418570139654355268491499612481320128982826337727413563617317779701956591894725302821679363335715065217556656008704821411832098199490010674895728940568865207614284007992768458435744939425977651780907093951836176760956687219840043321717153766735116485822582341175658658447696899750806949096165911700333913681268670568142400120022513149756802437440657367363900796173082316126192825333426804469719733939514731512868876816603902106016133788773900890613125685395180572486879048563033098566719656150085977491653028896512314114963322347765215208576046643197499119491883855840495732484591946321882447035636019600178751107194250536756458612385886542797254647409862368123242834826647851352141721527074673965894756195674340260291630588809935821641243991443744846308735560112512097053398464112247460662660224458411485960858341697476615081424920593674436910548166941985752473948925312325128557433604360165822970951081353513222915505653674928759479689372799170720454575699809972212043190275524804827572189804930699855323126150631929644101347283718322736856008080776503945867112994971947918564344468685492974005147620764873171484157315068898015723881160480132672390222511269240723668401279185967408017842863490094591152884573415799058234826546221486014591532180103385891802935522397098800480143625288125151412503962968076735942010065819824001717471275676454511257385836075985841892830606947429112314851592004890310399883602934043390973834056507181463348892706728848108394194988194145981444726693276243070902472258357177662442027051030414482952389867440990252985511944623937598584438255432375278851672055122601455394845415350242697384401298587989086552855767253162691063349355279009427111105003967411399194530346426017670203781609681258224587659252791186853106042142763123897468598817542016501446894246422575183909663095756475902305192184676033324458091651506098694527498972678007177944302606136547617107994498474095618545870098596613604194696805850583818587277663856889642170235835130469646537799469943242290149674164344216984645088288520575188519461994453527119187909952356687158677089792612006412489669588186046306317788071686782603593950274400043175464665434014709194599594057647406912669425234939714593904665920581837163263878227308638509165557376161296426065275440806634045705463565019230785061507160871200902849063201648497434515319876709943207399840551055335581429949405741059678539344843864212369432576008827857458842197057418554669914435829473593672748561017363164080577768663377890466189381005151357019470521498325880938760983247501906203362252299795021529001721939234625774929857758874152297800115234125580088436350993968401735343242690281472018208644870692363500410164410289550850670432014819922479147156352843453421204060228677138414311787140052420050801332014127808397854407328515840596866966304896049178938744270774338420302249498074885728502003863257144454566341674518110471510107721842618765444877431798617963947950988714538655716336040600617057836350299606380225556224187703594282348062853667750726462689207411169952913927879021312648053140757631239846091205904128119569605986236875959788608931392095713950087040523008472082592738031998661126027646273852279082824856175416197016151105684342801851803605049706931713743818451836637028608066775832931235078675770894234421035808176248340890506529670759877097101847930180558834354068882952591249480074017080704567816651708524704309113972386472768038884355068169365073269796848267471774244572201697050152038107710855695440997770350956415507582142863034914548542238190066633959193599611674287125550270250928386710709180184870243331178246642525609338406921615305269739288837528988673784300896370883385306803450424609675499183385833878063625859698161739379006685634559309796420741848569208591694479223816884482044017390103807572085933979038717776794364320001598705276103316757320596286718583692092109729299493682276735762662924210740856775364775726649826761088365966352779648809759026834901564898016984839370718252240393735072291315816028781956804963678513544162852416503799858887814989895075240638068462366744764294171452524331892058511050936848154712044297541690923312059173572766349775633296183431143354830875004245397929316952831418798393760422844314693381204645679038079533945845118798853733638084210087671446425097658801953468369102796719087615341302187307449375155343513244465213674904276077505195311191569829989744676347355221171810109427172113717468805306447091898112814032671961638523881672872762401969874275194003511094400610779482119270567394626511279759289001108746147454759866393051099688041121357170313800176416845481941269648971548663202475706891641766507991594595170359292827461839358014419349428912192003833931085804462584394566010354591542011994756975143283856687241771597512041494133650738403166830915520504059112893659656552923719707557295960800042886041461516236604532098421835503521909116076462260416238761283081439858985567669729143424342480765279052611856848696840537078627366073775778927578379872972661535422730555495550642876760297927510899026669592319221294670629996230864403820728747458507475438091804309517806472385615563792503048182666527836481913863816633521640979496166202267004633118977458459513459832815034578747802734090189826880683157014056933882387882416553419023211920377846015143349543579520637469144208155940329699527564564451996588114714322553999753175912151076769211956647530135264001140920844972774416049946934946611311400702417701865766066601512049221203767410170295458294755410639724171324119048406914579541973812826001852228210762734741554767173958063890935283439935851781070453489446072731009005735129204768103425275684327334300108625078812943806603756395674670447138360225015178647735244008196486847884352711009217419579782373555322096942472364112114442419725000540153223490958095303693404323117543245569868474575609213902400358221768286850951331220288626553412474824191382483899740661586717640051469492084606992376721822623723756252901355479923771621033038436067904458312976319342524048758680377203190559638572697675903428996299122530917873701811025599178387413545701393465192131517610155559906370656488740346181086744972955785011972110168389753239046344000299037145108301647875785216815685081638299440486920920305383599164723287166383420860044252936877912941021573072583735339193532631831556562168161524696029585519366381877142017267887905777439855272837753944635035190010819674798208544680809109680285098873556615235128432765702820664730632034978401599533509287485449258405141666696445367876650349698132602884652800303484280059113814954812642045011729737664483748343362381872316843539420654433772719170986720961397515302998628560148591684283474188721864932320123703926697416284406388882793890618242660587584973572652807307067749059770796401746074536159901892591044423031194840419155497838859987499179351057391761281801856686499497358472877512597662400171244940279323168556789092621524420432414864533461203312642972362647459871943079566165246948583325694328544292812630117347922181111921032412789388145162679465032382725510159880110953286421713832478679934558191291761627787080093471999514888743756347910185664632577945498884069789307011472782736312017894535927006761761956828280192345109953452737463809504810536545711930828276552920415574247949545544349558086738944281771132725255792039802537055897966544051357774746126955019413864189600353616160569396860621492228189716561291913294518249270819253329726764226564078774783090486813127452868180063027986327435994792380088405344474936988443942910021444246611075317396388220127904762819807921918663386592154055512745936821838688405955850362785964802347839036405822621238127496658369512659520662070531531195687423903858057156675603778269602998407132009479345854183100615981579811329199463347120875911089505282171778617638858462162173337336170909471475913829354461181354481063370824837676233431045434556446276296874554318342854552400593854522071962510825795436994752248751891748635260506583083006108085415839111502349631917150852575144663683937686144791814322492742457036668112664070696779124634939362499349978052375624264208328629258145826549107877146560614362661651627968069008822161284112153247292972405295764096648341974549796335287474856756281280705622810344078881683696269951895158900515289066907680045956645054152164554253963446804917915981184282234247116811417191955477611160135927874119745176808061529574314777450181301462315863940523362565160013201279268961196747298381503734297859495670711353409890462922214217441293906872161000462705264805164648866716014373650078954103146636096156586797467644166741058555727926171832141442731682247571337260044338254571626055408373607105664646880406360791381213223400895202300406840701859803081050512866115406616155760993139497554054979983314125439925534755110273874546818973873431987245774308489075543694986765236134891911702611243383163467954576236514303671732233884917474681496181743110191305793618713844981280696836762545033541647621325635443294846315829348886456758263492997872872744242338279223082542295778474303418315266665914180197830454524617541849197015580025564412075998459236632097091171755206980505684499396101036927964084053748486104361508254796432803729271819031688828880440452342276682341972958926818705263517274650239975636352665727365201295326333970695220708061570687000255157017995030465918620786433533101907320484358559694489332676680732398256890978739395660348283553081889559955377727667432584968874523702774369582089064475634117372497516762789443981345463749841829330035435629664969911976533990442618394406714532442103546315628621523078007181463303883788514330403865789388641435858863104164182567251605627193556748210377759483057247428641680236618828439892298947548072505032749822544957064253390381544669231811729620021020129566130642590475880303051652078877445345130339410425142066290786766695531239343390388192534761554724262999714640388875329991592905807814040919927121676458613615331588573255137613863531242282531289796821070104235037350459855231666815998568778523428719807119897569873474153722340565553741004852130869205029840983358737136188810030928281829938051874632499367145783382470970872118327408204081271906396546071816382956408965115707436740101831606729098146689497124810000207078925749299286791712213172274108900772517472734530435776439355004220047769102992684471544559224311846660117835550667562387255010572353950655672853999121869288798400877950369334968626951295016754923040401520208240869368362266776035934707620921037133407359787397073015578108517574103649555097697606746878495148875351123849124479265718095650241789773947640894846790586006789404872101201679685729185232824767632222144912387279019604104160133728342133540579368914200379079176414576782262111105501821685533406673086746069949661713695551632658290933605997400595948495420678337761914380799832651018817376729378684874074959008497750132842939489696166607725186016238141276806969913499759874407676490653771673788022941654872347373540033936474540866883232476097006912716502453796600846874980768896170420539623753501949553446448093463951180453722332350221639269874951786145581371005880141447681425932442554200214349055566217406495272468795774629602952693517188723138254669423831744670087994555985115052752632594616334517117079527073508416020068287468869998644740335046967150958628557538835248625007031965493104039873145514010423191996357002459737377185381799881450938951308808843377701459327256869883676404309718062109641513099696099235614185095316626336432059139992692592579318486958622446408547405896436686852980406604023038503438049916935760709548505839682069401219045754083646188079321688576721562889902791860603359881660158879776021272429282970008303936469861640721009618738050926666933130765204625381241561295888640895710161882669806985218282120957163919205826118740494623962088319998687802040253976528425552675745191093095914375509171894670435997209582452988935949725007605387924478730957694252856674773923889518034806876974374849108878240665015122828196918631851657684371169461670198210097705521722373452001631730989135224847729734179919581698436824053018110422520472705968897606181463660206046424515594276359476637760094349218563337779862038798463053245029018975565360440121478992136576582107867957059002150885901362090893233850741455791183946582191174498839962203165739997246864094257167380459522131983708895165623633477760825323681200879816079352597014356889231196470768046265406928063956956074364803364813123619392444784727278716228247605163250557445702182659281738465451343175758577426371269400056305216878114402352468372416246854142245051670241508333868259205539095416147645509691845364235953956970319826343898120040091273422282796080818742043888483309096286531914173284322390382720479124574462058996792633871287899144479791088782778109392707749027528924889541149586798731292357226261661937810741003656011245201067556771470508833701012771773536630592720818946738108810624366187748524105536267457529018373971420127030044423565128292536086642931288088825420415430206929560593156441634135506911486867639334762847010848940903403306313105039089292416255741312194255843314895903560461861754923013857548039021230339600356989217314524747448468205264165229485970970665759098801116744542928387723263579303366639116585133034842417034152644971123267156644174002908973633633976372542329597798362864599319944344554521076607662787497012744882272477401126009900712485174605684596046316594532400344803827144532225724447441909829627788368977384688554480643743198095089804429905214951334338602621361015190761099835340468973857918866851609219533601439943655095797094157878896015959657215491108792311337200851639418185446668955661749667532501752019217645643277875149350848082633270844965293253953777128319448525281710675941497404043150049470380074990869405388329060239579483041881371655151840100628534200550029059052307403938927373102058234023023305178489215484416523831305821212983275929815314415904721958496336634628699787682208036714959794486721269299599241062909184077408321291861128136386278874273200238396474366305472714387515599425336700588410816678695407574979764941423802331915161504312627287643977555328196804618909017549625948208540951512834454889277388218610672923986095386456450314162349883377999332048364218579497799484220085448034626707933725965158138336845198057908906305900012332722792262859019656964233826093602112127422838027742107711088345421573950574833237524809118299185318424198951310046105415346784108521000869865654435349718665445557922185024845968966142555439737730035702621988873429188224424628654068804734791436256496145452110170326329648003701189768620248954681037756179846416574137138797144825373582823717837975151148222969158770627413402092011026694062234782853999538619053168733963779435062854617357176952636043878049976665223088304486577240722278356263399006572408921464183582441067914066401347748308193425906279572410308151205015605068815095550825852615427027018282894226185466132130685026697178562190484182409473154891024229568058848813802196875854009752864058995570169111154391742431602273973082425917102331018234453420444266339868980584801931524431875021834237628793268895998769817391495836872207050087682030392381106664578942472547317358251726665056526753761298172100389728629441569453683401856511333802203872150947818723745868149334828931591692322913231984586876539659273069763520892592527312698076875247043367831978179265178546624603315887673596384680446830849688562869536560949216072666203835575522193646452444110580215565290399897139462865408080224092814101451899247860241173712100076367745344979389768628579653901617791145636716656529555337816568079669578576125091004710129288467382089615509576747405603292459965069746753728635826506733797565618358440135534551396747354733943239637942742552331502381248498216105483299945152295305506477078691026741671005020005548288046186449195637557088429938106879361576836443626491167443098794908808109940512954233215622400173629221837992364829219929302782504249082125220338918595984075423994161055546216517646973959661321775718790409236439934908977545181153162493089647207937106944435890886115008685058532543627935416464639277219221599151272570926146551739438077057895695144209848335314963441617493042097198698411959791311290652866596819413769176177537780392534871997465080746438663150897176020548403973077545635927418836197998746863667867740035296321981438567068915948696555213866881737311279232994627215061926575656156914431189341810221464957034277312766429712057841351861068594240570370142920025029259042804346784966145259946204348550266515402034407917332106168449581941135502440788264358148767558721378918948627090277563560693789785584458835586044810331077742305763521011522758190421260796385959404631068677873350236616950518699359747352147046776969214391754533174894223889539767306573995934279135323168972679696203426810879910939855078396609743960570807772798784671747034225838945008112013101731122401236544013636486752513282505436564851909981438458788735471543122534480273089368204622318652950434067209293311260764436785618239219659923687606733917941929726120297673610206410104889198682628030964207883366161127656792412772243989986630856747411706212450824528793974272914182285208055269314602605431686994073490900674146908993393175910475310142555895754912674074616978696924009109552539061016477773301254155487278113468142094184699096127810266406106896919953691487032288133922159770762608903247635913506501574231270655227488830582006670126945284109080555364279441438112217030032400332195612414813543226854419949533969748235366011995987012904793460378123905324012649706677005587174878358585861692958318466036457616141198471182130904735420019330102789695990528517443784708288458261150854746627359248558152111199196700506457276360322589566558829824925764828147791760947045337444692235501656937685293593933445101268604004561133400942046025094596990205383677933396516839188426786851771415250295270229423238795838324310804871911673748777747766829990981923633352190647939271327220776987860019840283849752168135376211952813699751569694236079009634785171311048938645284547019551192162753927121138751793951367366141605849436791362865081714199060481927160332315206528330142551950134041218183944637389696299481259672669746263293895390050327268054081003908390333221539900094296915420121939880116521929201792065064963233268978024774801271144072659419285053446399428623645195420780232764276830063655379069175744207794398782381875103579445788269220203143836241577670464246322083674518288627815382239926153085981663462891100833726692516893642531296147248947641419015806189820708418248643178299328060714400039954661173428474998053887638203282201985478049944093565235507020594531618504997978869815087785818507954636431968488581855711809943887221608567360330108337116486255037688938797668467094431551668507340827545227294489667634113062702443199980983744491363551712967870796839908692930505075693278681733645153576679942364662922334435584963660361966993663761186029615768746787907164287581537036845485670471275321482903878721185259430272126221995695558632482681967845756114109720185188346520929951307085900810395292008810675805903760140375281081956298861610146175676461642439390668728941789804906920881551328831046351317793506520265958338268076903909836996815838073920946889730863127622068092754904060066771553290378238011191074859881516057756041175540288432419965055597163091485045956059893679845111435433296474148216515019339263712581436510826227279019144238025992492028189294784987263403245193073056841625513005251022287472254994918967011459957925393758924226251720493374799603459578725067736630903332980637270969071725826467119390308710232897844154350728993111680824915673969428137064510644995024263178382152356470653258234309307769415790670149851873207141374252198913233282317380578853818978357292485420085481786789407737163861598837750424350521520948018518023756749044637254244090496602012466012369228992724729878020040748160518423221998886379077828926301516091139952359366009800025520965187122918872644965535016588463981838102609368715409326022089868720028015230510573558854634766426200425221289834141043808215089234033015872993883595917152053955625330605450780055806611438047464530030792494569355378316032767153920871611218162275527915013988677250865490154282521298955154246843192752316199252571643842352383974640026424501761378860685436491935734917745455949444030919570822206088681706422621944775039584755378692832690011853134605135056462327990013890952647468830992705189810765206858838081483938265902537761178581079374243101627367623582972159291079180570915193914550937978877131900332698047420248239344208407846920244783165879017600087414156653867097963341675330964049622328134498825648409007214975225255537312354397406756103694090995980072932322263960092647492096319915638494328954384026468678222782259553507243637320175939214983289452254524076785643416149168226100072326697533072151910875516994018539400676358845885989812025283590180203461802900428072521690662335735924694967330031519115983138157500952144040837352435357983376662457812588117275775949985628701552165361119061404544154653306700317456217466815473471344449383652125798181653453870886223458498013846450059026000020795066297205172255672711843032398767604711905843112504601888276233154661851190664101397197826158377657429995911624558651272895968045646798875514250756590174628576284120889471870039315718049181587630096716831126911936334587419032962631977357226996497771932104200133875445094594774116883911840621984347288911912877342059620690409580761484472067354409090127218139845219328212740777695165433234873863611589410259945396011548998458194675662683955015995823593938407249071854948310680875744170347141709293284532262056234376078733854053159376185148596665050080742886997382066559527568249708616655258442144276191621850184821701559871306236711681234552569811036365689810250996595253335238275219460404213505724284362983118549643348101880028056537073321696992319694390972080469435991477141535162431943549272634689782727050983823421739688506013089621775428010727644213451264066197825256304515217958442914741786269026484558549717029329919916215554726441350213704213668605256542578922002330999771505233337933484621113961185982816086657642713815583852146094852142414035832630880317735287848835963265702697598227099675087539661636586494182265647271601312176478638745859068296854896730284439167565912549739918608316730509182119133760075903383484377024550011724319187253603091692268155954316123114912909407859531693429963854328203174309107810311576939663453334176586344073628833758425867378646995044321647666181560324624972986396072282702276295403944921224425136103289905592380904671367286369125873651828733093394234984083352624896852325848454739466953483698957764292244854692959273509698560925692392184960309373357250622069091598541486353300521451520736054666182018497894013965821078413083774656079038552395983443252072359807044141109927459461810097445595102981993279552532599942413860735896697925328647479520568844271527660147679914417093171244433021018507639869256711923023453924375418608208141217341804906407407423396387676991087213163718596977031558226795042473849751264746720076172849443437900217475558946367717814296727234898602574195722007943720583851985083347457968787380213797447921972501581743198640610200885821949325154534266225041894955293592663301509477569289257604480784261326927110357340268629560589276611693498852032049840757715513838117005496430824547622683932927472154605283373072845759008692372055769885894245980696340978760251526843719787249337961620687199253979072812796186840179529497640321788554899164965956638388104145873533425869628138122004606045289331785250930803042806117493190462507669712873994987552338049151549896597351148235219140111639238414501066918180385802131954751369387688714360572636296183156529045052533031701570813508159712530430155285644703884839918959205805584888864014671660967380290523820279743373476204868994718721172200266221089735001283175431232030390278817939884063522695412807441247412808402949372230402696521161431932973366552466723405351723212623532438338715742528718951492451301757807221228766141630967768568884425663825024528447436241800340321384455860903026751178355572824221600330585759317816581407712085648799377525604654864131824586659073004930211724060840143184279764063965341047716064250985080976395445145394504100896218878764867165347037935748090951586783147547868322407535532819349960946141311292144635145043120406537008260886248674668793640244595315062830854935937101093235918989512241963147497837185695689479141444118483988841280755846493189473043875555512844563598743825742124220388073630238498406401510886112100479395620949585277556172316304572579924920328207537280583227507535617163159944248367691319219091465567507828086089327269191036872624704229142442959232433317141973178806475093042282824366008920215752045229188480101183835418438790013503763438775667529530075210392339557642162313040534350824890950768422295440693807073114370619370158323285848962098928676458726080250664893371329059537479595732471472651457752499728986119174725588528021651344174366787436065193797711206491521648353223608246827043955595195396794828252826412319584414051256760709285828150054719932211735934448640955201997537230556681858601781750221463759895492410246214867341449815922440327267334272623059627632100969999338983372498619245237361809767812450065739468645635721909367749185445216709477263078331869979173954406882663329896735238680949399072542821154719202569523336585389501148962198616262889051652977237357008602151732110627452785101398002302341892468373300217135173015879663590025694413915919904440952714387142990523517711845419383493049649235108411711762463855441144185853165221724643949722090752325818291112617904089228118113978087026578985852339383168489864530671479480977273266703444241337082041023530560053722920124651424804556374144046128597402011621485963386992861423374901039979358973336549960738410973609979727086654424834785489580149976884621104578001802987581566353125019684835712689140603073350432647421732918415473911828310207646260912111921902802948024634461236919651514774041159371907299958718563676638649452580282199881625841397894912986733441528462789987398110869137054080391640133058568982115399840801605379738821580183298104804980012795175149166673878606845256123868913752307499915827290554441192270375973037968333459036482245681856763594420520088006337051759659470210866948743559792524968272693396285090740930143125845529572767101924150053551454767545512912311214372597454994957254245854256118383748653376277848827073492104479136503806141159859881815488440935007498508641408009521477255844630203636752897611939647573815594286399268411939060298868492321799524999772064320174357043737053667055221639167737411362994287979331506317023425521377094943550178117063405268590346612041878114936268947017581629642630981292476179061446640635539080744040847393260774802591062781610935828194754309786551912223285884587359217138839363381419689740447023177769822145599675014018626469946549535454697196445398444308497667331913821407782198276441279804472232220737085864431554281534119730727956777622394939659641300586522584391001368333572122654030599328093093899537482460758267594377975325607726279848054590849180397574981903172720616746267489844703957716469872717265349554095166304089731556182069302729781707994678901166195679798877612436293192185656882859930801980905381168609520904938363023730579662757570464889620542024009312519619058455060616482333071027213894685678328570099313992037513779393011662989556970677486527597009797879435335322108398886479207418736490563566031373044515231590187131054727687234802472653361559687350770579070941678596359003340636719167628296910736699280673922971013079887880381635792324792717181292131962273056590370737642811964904671604928901660020262804545367230579114725894476204728798891900644241690593539787533028186217149811836928562679173715620877023022844184066065639612552030852887759389463834677679969964074984137772683247805047287980972545958365075231217101329698598921273562024763107942539092633267253121881649683242892094698620334047971311042827863427102875751791254369819416242124607995794722286914600715226406261517659433051070147267927550377078971016296661986347356346203702999985770351667206472187775815294453854358163399870949423363900669561952315561770256485783063881487435913918111536796187288216020354349905672843198764343401120046973783274203974968972461999393525255034067346814074493789359590454238459459464618050853025451989071189033400799456072475318145238756343590806529636255120933190787203613603918657774253322038540132193731952790197182326129869202006189403636816455700660844253371953512709059704776531423825465735054974343878949240926047578300569511711203162864534179520474074541731179241016176664177634887407414442532749926649802672208269411036341826181370624018186549709526389249400580910195838604547376687038877315599916321190376075015790785302279547704238628266165333276547755738740416228073519042574965636590143864588533659597815915951509539732731761586272255026324112858517053150491112708116683053547967652960370704499680813744344082838671063040904355430790746007763312363288296224183341944919368614159664821549197968230486110696076591354092780320436613494043553690010519552349230982447545197071583408166660618369603546446003229692977237074738034362808254718946908575019567518690195486413951913942639576679337170280790130092710376107173788829248598398306019430863071062367644202531239358760826418770463749061958132312337606360826859400653040003833329730342290324537334689799558911105254244744045296320309172073033930543768220255589780468696517160492027537454816106945102686925821615852506024472082099409788853298508053468908594313304059704471035392837949834229918638973215016700088809926830272853761507770008971942083953307508534741556618721192191007716512710959921350793811927390198952710691778009914801389004667086837948008086490936570104176772510227968190725602486198666219022040522723129532981759032559616959696614933057999986837402858035097779447265884734638529362070956897759246071706557106659416951474199015418851696889259483839520631443071214450119389394704852691961934900756335447433667724115417439577895423859548592547444948518684603051947575497619041233637183480004364710894336500635362282984106591169191094076538697580130516699334837474472489512433024395161065649479805471011054879767411993827208633998644828108862998831117422220982844917154307076751509328873825956125995960886884256016767297883542107894108282725483233538932414223721327873236460206897607194961381977894061872916762926916088171465947432894186051872900362074353658449671829464272404209682758180430162891967601224699697974832389154812793106198012996578423101902627102419712150136464162893740666125316066098335229442154900718561954227636263632737896610464403925269978854745835847622550536129230003641878888723407076991273973584449598558711952342819831058136443146773753717837006420161579604050883295854414793758985424150950910507880148698439608417539600712119607991046648272787116611304511223466184367676631906692081358154813411282871306150120918992271150782269153299453487199456239023257363524879395313813119125894558413838597416986912071853307343479074219979639125925213757515785180000163044886897989080057710634725605888076497685732930500605197925442091645318674098354707493272893778690570209475327964813146587774809840194164590305503899281717255859753530029985756688186985435798508946286483318795019875076713455626795224183883025827449057792547776982449295604713484387628815921635153807958863297031866252811657208060021849921677396117312125346770861318088784523237912998258609775778218604365492720919344888478892380650148199484609174593910619341548613125151797861207460410484296092649246735341936930132026338804083348203527487931423097020700121752184401616426808186141083009309816840594655930555430099397428142156319492104364954076666102546603047157021886348902427430021239772943172905395465183658870655030130610064182743910685960785663187075196477399367331276067704584918372452999175754359243844152534686392960778306529666293624688220030942599043922534342611127564862234771650809450753146822194684804990508265789140038669781573893546070256128286724659393706979143159842689773776923927674129698627598312062199669370280534198710677615368554530872761684691218867793539035207762528470537009808264864196288038959946033608397106790765660756602479829208105914992529051543221556974349169142612828309651837599689444625565082726787138062829387565341644723652651409572210373157094337866697686101720676202613001434294626966619656215060743601406374769198667228518580607011033721008284077570433816088909362959591514980304853049466768031115854180762544499266238454227622611906919049262375278009526708400708643356336678290996095458759206235297470248722749528682724998144764666176820613606915458308862577522596255088728774240909854881159419453483828612512493630912799258904563891976278158889100206140914499727298850006043553734259605022845874969556144406661243046510506909247589306164472398244019295040475072933297635222888399497013953789361493092894978535955670626895864286692485607885502318335124729708665360254672706193548947772055267191218071020797711387768268075196903748766461262611061167751341736767449789430650462092698350512110749264094875530005968988390087016809675417122560819106488407202700701423393482674158768726501296508300380924861430704541328200186872471692644028660984137113845066644902415543048008611209205248265108176836224649904540006694058396361508332369498526793170381224345026440617583387062860770035593914917539388688533393253751045457541611065561565134107608475042145231711116038517663446299445835395844106855371458510273267142170372958788443056396058173304542858395805049834782019616610443498986061328882503071017889438479166426327621096753164026232902505711563399476672781201561393272032390760327906995194549166932656808688654632763945169867655321152435057951444599896118059052603507633545074729465962468648789822852952715224416298924874664206331941982829781864112593792075260434216116310871803528052204557274056963849292710270314475079030569046144025165274451741902375670140575778947240866073149624401817675213203919166504833726395153409420798396266743664388445921232864533143141990174822869953552866235839662129388381037613849271643637845900328394415368766762273051820989362549725707968466227771922281835012569959061795438535209654346474026382371627395914474420351862871335714874360264060487667449964478685527943648783041013940904650958805662127642142614125340279492253885361469311690915314100180823207386904792605160422523483000607596519683648514899836659330045329200055177148367217770291301828836137652765884894720241840221889951881813199065826246137340720107064396155903271635077807526251998932360086072970821164069305486286126087897020667653708448087334122509469168911153377448853754086692628438774867233035106941266617449413349738523941245478548141874288751695595055442340920632136671978044346611744624404871260066866850806822687760714973794498207763824067311423061663335280880226010622171819912042449788504998957416248688392360092247443960628566672186946215817767599870328809476756659941015990606537873805549224379513842587237892999030937892552089869883674162826777969439968369634455703527499674178312874586479319854631855563661929521311610933006334247781724699544124626138482893142446715435325776730431670789315364978467709768736292307860270361832016950167683113351255937783835724023151039454191646740971229229963465587314720087661140497332192141555820728543491381229608020259363768942677914102941251294987201998212839559340551963753804233797119943705933036027426681296633207557980924877705995257215286083957334918516703440545355670460472605806212640444300232826281275394439878837565164007082066277744241065981063419013314156611465984893631395158263728737330611679284412027006407924077202516429990949966573025605113107724639619969957680821394784546245439543053463019859946635892301103105115155190361735565833507635554531019562255416947902183866593710987992938673531584037036912533100670639555085812499095091493471163821684880152135407440896246520744306651932145244759334948750018081047856194142790169670588977560443661124889558014745909829835745066086564089262723119116106236713571638615541481300454408063028385006008893551346978011992532119893647570368240850470653547295196765672548914681641597624790888216123572937162519308105968438141535771053881528698261424878407430101568070304428199500329350200151835174023265699730149756110681331994376174800537443458555605867303074704121412039432046603504876427536681290207620551853766350759676062733280069529866121492097151728647301330291937935975696990954349365094216206984669015073122338426755482768693740466241069188877946632171033447927866006370157491289227516517234497850926350590001268751497626788374724323650858108690459751387714427985879325684484868968606342114140665380356567584619271474082915711318767767169481577810305566650550065812508189715854817920885508255235084565379641965320915870985282896837385353253065340208643988099150713934272971495727676115304436079876490495868190559169745186478372120169267496904424324507710495742285499407969914697999861597103761648466437510414105062567423444112338368607973035463870024544966777580028423865378070649992251661147733473595130116548901522200164517151612389062174657389282046365964112052484503356996623587443202217191469265321028694880422213939527784102350211221758711193751630929029967334586839984750067857514386269357493098851113063072105067018706920136649062328024464927098434900010340864468678921347358547326308472902336678125392200596116553277223495077297967200517730339383183687928920754534259143037386450863143807105286308895422135165679967278606090972715834867654114387045871115907201544046489248957291161846476599739168968065512841373563951047493375118542445052139900740459829623410496120460490008320542328002547953503933880402723744360562340998951260489869060920412276757313327852020453444331430800839350598600792757976561890709259301104629422982860743910893865001488837435296668760848063412871317027753635107539983680803790016864108385282035688659420514453218157941718182687467535798619857587338325823146147049966005856893938626687960685715225495824300652615624622066504914177048774947773717087138609967210048852109316990543245647404071287633025530513639571337194498012073000610933640227673345644147518167608221449144230612825838546843170026990596421283982136087103112202830881020681651541478176551034332337574940966414805693651620247269450507113041114181904638322297104322631865759349527495036724321363566699609826590433983450997153628084864965183017220125443528187181283646555569519387868957419647610838591473678345064889686357826473931615782248845153652719236490931310442276642114505854786852660107994215199425566145126650457593566100399796531931504878521319101282465690479687350423247617831501451344298196673169207675480826931096728839072575243101217826069903359720258110300236327597404461245683220583565592708126325646417379173555854424659843237321070374234974161982178349331341777201495968269875927360544355835594254660730865163681727735539574161100177606792951498958783025378873349081751242904771667292857612317602338742233627441479967874132335014456940292970873588666455672046002882695022636263954651709752909323484183686080019263055895259041840297758770315599301394154173735395400732055385455106463418592604520482531730651988386314768613252247962969730201340794223140444653554080466692721517013501392391422199292099546453425391772350177774137717086481791695371844348517044965669517193298017568946196010681022142640192685215443391097017263380501890826919748178423604292612397979203229466963438219801532011877417662052703499456139711252425021110654881704341336569861144951092445200418762105927290873056217345974243025837971081360689550233950235750613472976702247533060777807174762835169473506937897111245351390182682391405819548864916484218943498987672867196942447702102966620710832382763184137238311961105435900938994040851513623406594933229968487435863730631958147993020615868760741485937319991155242963900347446347798712120071639981069577115047656616673007638123004667005332614596169417745601079048305956490270435743339685355998489094719764228853541163470640299639242012065603835839159924784777850416760442496484428326644280098266034794045587234793306464208612091357363974291374447134776104336288921422457030867400045900612126287971032897178729121018700937127651714762550159048491732699159675020458626548921055817940314278213599234115893299523262332103565179710416373841472380063640353843661851750138087519953009956285122195156267463446272261980502500225732476450241619425865632477189170522205835577973465079291156147099969466277497132288218279083949443099693605098906876464659604050985651832431725934951501774418054768823685729377125885798478398569725636709069993824086496293968165576413925750987857338462748869550718094014248157246308118134069058507762427430587430193551046602172694659338343382209939781036329312786108409903260714213377353701462529655122826563424552511579291697757258947532738436251912890603638473334684229949116193853867018434075874519554084891419565374921326965251736759409576802764691409166743401196656366219681506934885803174568294969253067186637440544983967642053263373600628190897558015267360091137296626669166694317981289970309808807239877147941282076290328239077378630951550078560357453668457627192157243348773885375717126693016258382763219595240580626456078380647194009420923539076248813910873382607747492417539157232443938234850006135470067023636640282672683026658206818859599973968090137385459382358764022032844583580823350832150146803164336245094042909943168132782834618616974886579718345160038935520987683816372423085556151944024028068400578482395555665536936567816194480838406571552588754918937245363136854471877306710124931167853154883617898935520964323497933835873852458888808720132150524676670073392940517427175741687207454732589414754366513348927644884254871455066495849717182624217075165873974882969058301197672598329050611145626992852776018915973871008874928412737433306655192841304412716113196423072895984601112196694059790660243678054105195408775910643194583574718906297384033103053189910228336818386118365673436986536374548994601857100208788336893752895002699507932767586789872110204798989498753930130639337807233988516962238159924889384182537284511142944083518251636110295883024935865903671630536144210385611285996590504177033992410750774610068154724745143074024360946180082682826008924272084899911734818761310566174438730073073773019501668004295495719427212311646661204844917223418737439062023238799717888252534496168753278487707842995927887587722321430430450265258205095389052957313876269549320145212271256238876859419816145361943885168580396220068795629617577914448504026596183908043214632272464338661398381075350572543095827274618746527111942715578213330651600805127813086278859463864440728097317930954648205902064511449798678339697820636229142086793441593522848061405126747249351620933369821795606316410589695767697590614051391001914244632372987959431801678619388004243672446935375135237743386931347965036199194630408263339224142880143074611250265599775930900076634533801232031461082055835084221021781455362066871992523410917863044008145076618203347157126750534887349478194668672840961866516234267072218859680158798895063264854083336850627264270582785696903782019712842551230046905764572219856305683710021592985844235333849498616727517139826417197977442512746229742199355835524895483688679698348239130706052465359888999810151331066119053882122969556923240767473995666481755437358305795781672422180505242160515937344812080443976046975956210588439748203651847856498464609368168875514626170418776834645398663087755230326542703717602563313195325886024119718472765022490792462543339723072781318367897812018230921044334444502607277798409854066864982054395232358810067669215686251123316413022522416274747318571579701570567361821023669386663833230445237494028246411617711903440253526979031659121436618894431148497674527586258022788551227811705592422703872078154256529203431675518518969726138025953038589887728595755140485810642629572499587333071068670192579722707904358026729987813055670363476510621744963620918732920919583579771342049419545264616251255273267913308666175185017515985126518059172898786123241572911936750538985046342378218810929751976155943512767004874050512274140082567735196267618134027051886007069511735394348342894364037169271598124748035438715573356596171202655627866679776577230575081787068176824044180744385604023254800856390669601053941596187770474653605098902376112896110933620857152444831687693991175688138072939738200291295726798974760824569344192794694764407713475251774127372504190083779668920041055912834563199909982641728609505033421692549776245070476621025530218727055617896251022815319578886208991783655036533268080770339863255265117894021981267519049546446578007345341478830655335824969108130566155568979835632279784477549371517866386538996719251015978825557665969200667973488269142277930010477168247457349969236978895253439100563770877634696238738180047072608143222115559054877019437445385503562144101177156382880679568949733079033117516734032197342692039528569415357284120383338742125873141728550440418532240123105880127464376647796216807057572488642705552418668967741417777713931440063908839332708848266881731265373237585267549115588123680630761455450597265227989885509814976079714231074580831669413871934350644762096343063194786335160991010891811165124893933377959771690993508388466968250707624134526259239599062053714198500596529036592498130522220686544182620926681920765992910904118553686093869403463441423577065865821910892334175058206234594457131039366632066802411485155138646650099468345266620805382416407268437584134909604605743255716927285726544728357156179723957865057825865514088140465045852847341516586114926813532386786853943108425771803134574570755588846422867394792133747311889514511347068199370698896415190511040970311921552348744827378868143121801171838782493546579854584973703726795640254090577300816711425769067733968894389821931095943184248837962664434369707344191031703025268246162104911670031346647645038285989868404363270604941002169900713078707894176996375726001558890286608763822360332784392572751783266040267272576212799674767481501067410003094322585127644100231890580065075451409886047561801545558507952635483982771285255280136008192282444996130095545418077868485508487460355840738935556669788603773725514656089590233633413380910047006645035377330803994919869148903958426680317732306299501208909759297667382883627536831440485617199626975667155001744848671685131555697628237043458467085848813669105179717950776771716459506893025352161189315390750188717140633980533337133029429569255590466250057104053945953156140601989604334597892736817390306527387371878352134473030405958868870665333094463119668217008564256258476684198969633273515557837028436605984374193705895824801489802944932010605274918723057736875448074941082840231737151572362543102395954537826456715263811059421605735855298090624835202482813005593437227125079852920229133863655368476596844565533739955844055041277465768159385964253037037643318712897829725182855438647542768794776960903167787514136025782691402143265712900443229510166217526546493666277450516911604756873728538157999260977447035784453047288067443832392976215356102979798005558752349269585400624412865448357017174416294759772488851320497647599749790089607038774316113264388826524489605124176659451487056059838520919700554896942162298712703143553392983947392068524641352254879978222070172883567396040770513560576199175591648522212897871382744393814260923612607304877085630024267159634303058611241708582164055081773345592729399741183864910619847830245360142590555713973492587612890903099229554326795716160331073653134265458926040815395500840697420227117124500972520053901913430012195265017336438246578047869684465488835244694352918922864822172335183191580708747116905871069519746620101943217766759090873928054883454778908913193455885436375168187091699721366315453403503194448262922725735821444636250036904825774310587216479638089882294075571537884127109570317095907612785891160774675822165940105987490015938607807902813102467443340766373729030747297067959355080039926850935585517729073641578100894874163435462186347793123092514452588208088992027148269400517610804472296541755884803106311716030680580905944927888435319871950002306214312297395910997218757952809767912579887289560037526960045014133828045244287327963932769228929958395356346459701573263096167043257228518948139044695095969797393996388307379098501879850860955928026799545581165208224299718798537035160850712532696298907583064533022719850161749065634263334337722978500228631869131576377336304001829916969408916268688692192837408097185415696083223126955092601968781918590814252120808877496205952569322111078536902395156656943643375826815147465581783639237498222976099032707723255271266888091588685595818298474826512540439711132928947065991053299248068700378514287864847340842640344464595183022526471417163181094466354811790022933022795674160684454515590620909536639176584462111032969160983054947872778016944908627327724507926900022014010374142503169294246524668873730462612802517481533512280969039792796388197440935598856441780269887213516205613095628876309249620161095318168931571398989403095038915829414140457234313650218497603386594978661266539405957501041502983859724353972313643341257097119206960398063133213169623017035621485991556820313813289587265509386299727172666041509639013337627462767787590639860160553082916601783385430698568121061951203621785160723192686547760039056607945036390037765345759392677786941545809369872401222674984812584239443553417731846860369872721915421115425496758921376812873832723590473546165796538023376571522170072567856133137673796164002290743364162313383260299144161526079965957114155939207492478475795934894021243870611570469383412053187193412921189944798471255541010736024703172356921327251167645424005486831835207360505563359590014859859462534629975894655260333654801648199122061580104354220068653328844849007047546372243937187414672661106511712657934645235691055774018590806420214141888113019182786148342475945257993864758639460608005498232578150829065618959050574522369197783383832226231938758573511814887448932179557139766856766531322835978737738291458627669127664474468630201024405588416033395723713645187188739523820251518583012442767633936792354528599638734233237557228522312374520097679097019904529572499397970735300297063440323829529385400623147519654248902502896506758164021418859899830445492257831008149111630358933915486721990006464042124361711392163009513051600564717625820233228325941616159684925162776151917211730055674791805077970381925346096599571037285549051844272243089718646605472438077100069082597913122446388563429522846201191192224938708447640239416600671436705284670115431613981774514876350502219961720942205550441825520561308718543335575953918920895923647677671303433735573315292353882195979534383636686064592924398847741115574774002327741993591527692731639272140020645899411999894151259210367561175513040932995673257619230453093588419917808572869253850997796126815970966985283744838963331358512861807413008799408098929839762549711870133013604853309991991742870858761167704341328850781053394366681184632617291434301471038736576348646376847941530807210273621816860330912981172210469586183590640538240090419649023228104440254593498501534073681725020778635519436964630568921956970541721533119977688144752074353831238885104528438798632624094707991250215921628725183705116405364883823255446957954875480485916071075191514423950502845734386356531256123499717578662807716088813719253751328974516966772324017931856722459704303475303857809102582317644119088013773890357942057850081183963153393952880308036976705783975475171330852033447317787857854859210331809639748711661841433597814538915188901858008614030901454054515816984248170055575707654140745217792195818714049430595597273844627000331049588267441004663172667477695102741689498177407848709174022510096736742274003587968237617737260230706056959033636987347689962325420254596730933839544829925657334222848708657148451482049995231675013245912131016315080082104859616117445487544013170036207518711296675513790335549397246438767473952922342263768359024622103264634708648116989026829348016896657299287701442727409514109915601424351991116874324128661761458253560974122708622107177125462113599577441087252634573968412752451818181239942910524589487902742395589471441652645547586500301299073542758307406733577757439676294174751190302499746137911103355847473095166241571712770087559944460129383736131378268530296695988615900534443354412611302145529900380051035868625457601671426292294499922378751569619791651015677235667082182728962962298891057521206737980705246057801927736286972795091063929557948351903003931914415284869187341009351241763819666560324978724054914397526545412029861891654991440940823902743095013081240137803918315157600486990141779371107261662382247974507214032706427551532052289551656345126880532360026279274254329225117139071123557823156980699555858485425090587955840727112395565549888459717171337466641441957632554548075818977908601796116240057492252541116871723968802629043524358556236790229465695108466825141898848831647934125691198757033556514800474452271234050702765716860570043309772313180631936408507133878831687993870821011678859099962257274278086342842483441735273770810486401124175891677144173954698274978867517268229093080142608624266817430515311611846790162168802907079810751644693388641741595455403063113984649079668237946915742809428279744222045600557656869007938153146669850263594886170305030322772343811098562834754838593915194121090530611115233228583534877788895289132045249439988252500910697043567482090499249995419862369914925441750431400653394458512013644918336569508435385545592498400627750784350703519138319921262301509344888746498076960293928246241208315450665651437825808069347438041642994261720575901636369510289100673066846525668963412263203341519386773136649873085470345988582639732656018173648074803369515511079765766270822970492748368280426422480612304565732216556576464733986448425927355685218614863672516635340068340123052938129448574795907179767644140876140908842198475917793660178966904748077623313131138235338476450197900383578760585199266502347940489796981047291494230264249198177869047389330372479565261921550323544321376352000775017948714414147063460893172583445896464092909456480860818032328899059286403758336376197701922495160316714369226551641746811081237688520291582515171332759100839779151458040193145318858127860562021407004928808022124547373821360499599478626477138668775996301817689586265465351694834975972372465564905102028958519790974234067882607340101050118282426250675877082253035297719152419158046008521426219030679340776324430943911560932136335873774016901209324733716964861116979752577709264965284931275318522646651357224412974577909981980916887076542865849671167155438293792256745982615455612827259012826125309495941800938467055641964422447616010180195735881368202427609492116448707215010434084348202113459181722448174258197096002138327667613459049328797788416054945527428333931076484323417908025478033819020062894016790243611379677219424842775349768265231458623432413082628591089576597036889658865358814786263528490396936081403163894644108035869162806820440751025759078965726471858258395823280576760383272043450278766700145297213683767478354749212538236917125039040869096431842217298955058248875076404854813518036035700780746665160036287438865620994477888872657368349026993083956781184675228695139612970677745447077693263456259048429356137877256826365449799420418497157701335286049551160909320760945156660378543119776921191726463665429945506850481143216887100960240251844777327976196601233146869979534101505619475354241222313113193451065211918421199708149577730068336906869331584301188653466741720287033598120299409567777099303603802732325420737580634131074533120142989917861276187039182694058010461478958291159119685091833265369683512068898842463408309373490942642569967985263179130751275069241014751233658697047786507867186101510504778963190579860695057421650295327955244063345751251604498617716600779970701887925018723307191747567172892318850693360150853133760828502190620260002878731312032575456749014490443826298455109787896125396761086650997754655231640923909801437949091599130442172827090903411719151219101482534517477137772305273103300927990951126391390604919769113259293651215760601008436215718981535636808362653087595757416749964876169715237691680194763541719380262525273202702274508126903745647127183360863566629849548291249588313738199588134686188328693312905189811836537921439458162720311465443357644744663974260680170005475133684830601315399323051945117676797739169955860009328578014817477556400148255020974050278967268299761745939663938031743094468559742418112430041670532640398051002394858689152990111802214881760295374925796773333358808316535003365391221965729087601248225300256751327707879573554927470157547795152618934918964053188436332807262767978938644009240160176186114107068640727331619798860843393076123587490601496032238304972321932819873283081648360657606446736084459726252773968462418445813906335587094775699464163592281935824444476657940598372972006129371267338686127837485117687472269802581227968925835641031659192796298713049680594306486970702539822668798322578727520932582027323790068157417381928182039514545616398553412036644645040067186067658474904558308456177848802601238140646660642149465844165093561831870346030160293385716537684833722920855873601638278491643085530114453547845698566085970666164596298937391587765116887439495291685308484367663810286201885635292115017343548031277879412437148507336352126279838099495552750908342957269610578921746272190564609108586093612779715465971781972017218592543049167673590504141370580116973160640903270274047174825078159656215665328892883802898385349223109119306186004272756266257053250673679928962848526711494666358394055463443967298581691726160685772200659776586873932461217351587172823342987684436355551065080709119488363658479810841541918401653613960703657957575737789278057761674840500087732960042098304213332526147755331524154230316214240511721079027786765544307966080890849777008179294464670938476269202787414654891307098845523356210035962029861626251190280635715477188778697921125444250208504995399488971155322482718518515517107151439436498614480956871554433427029572707006584122738971340647948008660616574358520160639725383692849681773339056250223789583501077466957150749218117087692604425932685899889038540962509769801950190249807726614774092739434288867107826971140123475421091377697275540875406688451745241979351947708035702401819318145531377084720560129638670367743461942027800971486230725448883879988532952290388960964577609393835709762366875093265477944981592047609709914286364409717636015202017302257161228675013660251140302080131890446816437400744917139663845149170127436612695749362559006112549848204660115690464975591500981815979716871427190983777162666929357810421425294323402279641164353387085607240138828755034176080635719735021574520587379541015794974214697103747766104733367684864435047981674863765356275119742483800063816195988234223975567626360311955020535565816826939272773997996383010648232106857250562408981509143543964963088041161818527331588681354140275818135849981886005011795802986650437694423896132178586775624218466967560956965613839685599603396676055534025965842766400107471117655263409654073353980233441961231997284244058584207124889351615587065953740714714676408828239728717437463227829813010976959467384129358247414424876684008089262542284106025078702231758567486122921327980758090237019866239303075099963909713771938325964989049416599482652467513182624134513719283684002488144382463618838009353311017984441628633991133734309148454295207325134746526600228145244690380282006842703264730034388997973918069594185101814310099675774946396803139394779645591427239108564659082213411529948681354837348041725602063112727764264229946451642310340869539889300036936496909891494388712780612224392221839247813412194859792760637182030419686156096219824930330056618325569718130259643358325063432077036043709404083483894909987603729248259917867499736572902997949119456360408566478253515093189364749329456181655702202447486146174186431135604158975895686685747150410079248686434570434885323025668169778532022668249499933351290700761368768715442248400165886337310927597102262032222946333977829398480887008104545459010447327154120179730969148283490257832620317215601474134528287875063557716043879153240310183318111611492717176037097578689054733739334015593313121926876000372878353816153482881347877800106034926793809168145337693047915932211039169850787058795633869127577306826162507702262719086618275531560325550602063025710095983651879879266541004297634225797526438014003494580313470468369645662758763483825049803098044769958613280013268861976520413570254377868627743073722419187549159521385298982032391664574123224507517046767228993742997723716738868648077629736799247902957653945619068670100247547608492080883222009045091438973301306735216913708933487885735832637165635260991915585950242151778739613068771310152748690529079534803641843179707285815114077758530596159043855993015109870348297317579078525294658830378143964285727966270716900418931691435658244016414576368423372141048384112516527211471245145104184119406980152390138568154405553932001826665008963326150606641544050785439311786986664263526701658967330984068632324979551474840784992905689474648380901234744668724312098601199356151202217691101853825360860418952815501756197020256754269286703748274208876428705525600566615385960128268032684593228895458840476799471125185020423297382787357248773206845992913780845714916302549170746346435827072879989689066322010046107267501528262719591479439307595609171126903251615030261705421285405857483143741844967230456759741257640743704893283539826526457085107811356065534238233641239617385312755456293934987421546481796732323489089513332883427655964975321775552283795527485339058122827360566723036495955900930418171319960269603265366202721618894650354531231384470739375857918037961732749267463240829702554511437052141312038233508718680883906239371027857123356452256446875980681786672616865717097767594167856803833944985267114087839013894696747787183072527870415969433490817053764664252536763684158240521975011621998138242720142269545546111097633657747125946732307575985819072167778043576325349753801189921296128096830022109441711869388699368825029851721484288338342604309003797358699335164999239580171266574518077325365673651598520539274572255744803592008606761401018672817998027776345279765576432156441539851418665751793014363933123750881650269010847027453406869549205613921528412929802436002959337221007415470844138905700054702385335557039544287317235373256878886463618856817101868970467956617427216363255098503549006604995252361805569394404204534662757582492044116244433218937461719501283130782907731225391687498581222573194722373921976249586880944479735655782536139688927521820930322419145391867301084851247970167121113876747065044798568230540236565252152207444499551691996716760954425128907013978177652877124681849024774000914368365844054521065398166303997016969369038780906060113950075324018008894072945105249518580371957323418622049177778197341149743556785941363064316134923677222096293948000878022939371690955969731056092515628457483365019733721772082526942281659691872459730749218868028422288061171413268785254374205908898561008182814246352582742125864517200900978434831364992211280682594783163261335741628756577439775395121501349145916132395360706954586641415673537521937983216322389387794121198202220657281636649684065114523810430332141857947491284472966489410727194871842025074702891161327430237172697058480195000090144281561538624264102396037860893412316980004720057571644368340815052170649364977772466043339323379496855725531298017576751073732064755408520927577808912419400854984260683294104320695786175556188772852554822177881955241824148034185474328175578717960283044801307323395015906073173203090180182685122966499250471104187742126459181197985792257031529929750341750836187784998227683584813016700056455866303041142669644180575887646884957026728135518934477084387737636338252047806191491800018285917615863333544098388691835515852736947043359355937131566772854345857027402960729349012543776937923421615725711597308732108623726347386901672181853326379971649581569378707703578072311385498733768880352984838534461688931151576168507557217984707314107158714162822228545761973004630900280685775177908214516366944182760539376810616445333287075254673976383646788097015245655857250010057150075701363067024109545574338687490412839042335007349089330812589624540395888816906315622916735072032905828134190125286617675704710591187022096316281133826328598069748817722673145105285731276716396302039054991930107014668639627490700657316851748107179258105379218040936941392235107423460538828440376171120605455393304212949054239117790354366270501910608695587946920580197147713554744747596888204248159412616235476066212537801232672663024663670671746766757046446474317754679643396252779587603032786413594363733721249569310416209463139181327555305600956346553221225742059930810284353339930089529669494551746947728648935636012811904964948714115315783821770438341613565463596455100560286713729103729240314156853506084010595835847492627217167617106317853783288354117422164947565015399792251960218869535740334653072272160593873457817691718252739866597907899432533358084986840879982588932602067923198683880823892528027591672302665999573225114357969328941528607550748895230049843093187097788237691099239617413771967980908220212711485461625882122099006139323136425910669013294828782530797146141127519528592374472833832136107208890733959289366242055554570891935834187557098600829465360213492906922475632902968733386181785829978928257768705348217600202020806148553467052597867488484098010238127098004977869177244078830732511148522714751928244786321661688537183153548181123409069455611508783738750747716216834465537345109911995188477195943783318978957519694707159078650725628938452417837512893342994742715309561797490255355498297691759107858645093911102289087847984697167374245664520549427640607782796122500369058240794928973286086528247025576374528261396651156291575056907941897281370177163652632637172408248549431591081997388779374806220645166100009407497688787268019276509665090473452915606557120397396737345731373674182012084443150594120126033297362095198076438706832023254978661985337319263328647197794893782729864691132026627138940124693610019743707926406976024079756391704250918228105483437954787509292491157741976881362632959926912437094012192765382036202058423360202075366288065711163201913016219217074040716060251660681578766551403982637279523102949234347393962784913293301041140786078680148612908735650370947071278883203153890394107105264330734092172998922970497447518090008007941674543786799364209137892291468569039121333742833812153525709239358801985135254566717986747093874214372385919322536746617202064714826236952946972832985451072155303421744529972905142864890516160073263563339249870964062641819191417449334620569236785677315689282749294828655324339004176989241716178851354536928526720519288679315371173159545869084381474140723097683097584400496167123125667145998765273534013834878024842521229515536953976865691172915954936268133053297950747856573224445692913340879039369078584966663573214091465390352335592795748939956592605953495468452912987502470899046745407596956747061592984359267874323212647961000437705512405781478882596571918544957795899105526690684844901907812334924356539622694311066003764613969811406333482609818830736177380789704062795754635887594558275770904379469347563139238091705170271214044966848823315062313004763584220607088477674173133778421473486025021122319111367127381882673286265640069591215155254138963198933906505386431572843924260810248774980342230958663434519209185172841352696989229401388942478840977476322079680621021406217093237422575310363132740073958708226284069732204997314814880096868861389265205515419235851662158305473915846201279105837533750369896154947884327286296191044532492184740944381536234988216978436455866552215049991068668984492686015870859546550939460409904102458317378907575556716653106839056941092200946996348562196791880951880604985520812279138028682254003119098190273273739797330123785519878352937499916540860781845413082135571205987888416965651304152444051011585621709350731695306544970347545303674007407922973976638490310873557460438757810185201534353173520390505050203654292402934061260050551811614163915157477843778024208859948441767106742831869130315425701271277641342440278529621743968072693201893673135990800392931729479291281769529091240593990122954476020074265126380804555423651847069733921773728334464529471623898978661421845862170372178523405392938837368465817843928670204723376369521955025805969606654349613890523583759678067297834170816455165107096623836599517011166064455828644915332667465609391917701425429186346185249184375534709577833088890023258210682414436056975692577144194614015848193896274288152937750716949228384640945793530060554605249397966996342190351050490107144292649141858048643451269300898874514611053872985387128898731231613770525768203599039183187375252946090053437014346378534448360008552851640595649207593791033831184036545300245674553074830547099518798205123888143708591099419233664347575755741371051687415907162101097295098422816609834931157449119501726791277316705891902963834005104054370785213298516099015725790950454856153404259585565085516326323747975500473937925175339748281523108384148935765185010662644413539766934002130908951206017997903533512852051167914038232204041443771381708333397603448928315195098759433536123527164922762613417569456923321613110767701857101881214154683954840750284030288267035697283981352513097941997747448816707394782076358898700455796273601654906873611399006395838041876308157821122243156516003045773132150943447721643508737696257919578946609816824259129214785753525104704733671017339497011340542154042565430756119940871124286478946775284525614881993677487384592083917842564071102635902916998691268788547308111371989984874402903063477203024324658869217266589890494281585984359121195833607919719433710736603054489492588446505912041813015012282161405637508979029355995119286086628373960840648309237684309735026555104029005545371713214962523641255225369740704291693076900752194637548303529471855744487891425839978292060211597857451034590090672189396023781631778484869077894731247774516150666778423258204701128239386841925210195274968999424144947885010248117417539147181798644666884196927763233895421351355626366801321434101444022862449718068160313606780285315275364518714492652604235938784251931299455666582856519093956517607004904063041911249746701639491280309709619804522174594889969303782363392901587161713421721307485958836107795810100282514977570006553434785877669900964628023930074369067635150831885292761853976743055385055549640612718248464633624604472102435368932850130668097628526384272313488164198797801171076435600857265156815236281998194351897251683778958960625951776870755075600798107983485536570650184684272658783800364784581609467247979570738722902712502469354561012078327218090239832446477698653115077899348552658066520935375973730002482705694709922938407375928000303788161551700334454494091795060804062485036423896791608829960642442583824520587422762379256216405788217764884374437150669833946850678684964670994138076824500846293077855562196177511707638176115422928404628103709638181079107537576866770259311672139292321852988286883383770144026226751216123716390265168661231146484437651732305514286090238362641198260592214958995596314993198405008634285261235039238822087824850573812729282710338763420712273004797072115526954448167135395720906749192476740027575069856159113238531087768967083610166530114917557188747725943523816623497892810036767634867545671294977680459933150345532660461778542989566366505481026756916727627675053026072086632271334679917935949440212521499826220915767132065947382385951630221724997776991393935436425593772878517615822814612578015745721109312857515339074049982069385686421324458141279107353456326467607364608283547601179553690697747915573732808915222149344758488216488527457526182628069144652701137158221961270086873428605713502747198740549687073784857929924051589245250727399352928447287188404142223717447987455141608848935863266301030377226693636790669756491048026979346361033752966162068903299461385628929098712923715472704686725834253531117562703527532709148621605032315179217326321802790354699752436332998796906723204145412425533774692576961062322660185173799418911058342348209794054395276038481121930209558504141409089824196860346411350222090919176295616544331175853868373858498525085105253762311911381740170336839886157785577000396389594953548345384160639382121940019442742000614205048924462148370973517524207143408546964718698763004778008592845880915350125848535192867231569950502563346838824568698014711698969015244441963377171723214313598655436106651851557029323142242621624047761382919293404481903576657367537952944985852888102031530031442061395855743728896431479018250335186997408266094833504829366230930813739724173798016041344079055895212633863591988433514371114663468126209090156780515335676977606563173338165528485029263868309645590799820340780205545440222393531007446760087366672382958077530986780501942283265317611114984699529858203888251146041324242801698403701621819492452829077258101103276881330754081678225875156099239071138832154637475373173480019361590868568435376992134462969224966065922599240267520707204333482506684664346359749729647271775237808379226235703089618209639179991871370415154058474973682414258650231171772458911807073620084413887023946217678525554101755486277648729467834741337441663779970178940367136912342144782199693041294406369385517207531138435223321253114548635329617954953657383094240120194230189901781747075200386961451399292126496911553053827633300076942080534203200426218747389617856323408658048991161178233760073956132857902031827118357771309368990444815446381324887960625746016453412160703097865939117103564892256663883605029886481323353092964845172108711756769629581560655603891328916485202423075658886445535147401581436787608354998479136243363041046766203068524338412010259766745447744459498420426945007083850311588158453715872977461656040905336131775645105155416713447781847375067802201486316540196791791607545908786211136236375803620128858423073045165241954446458218011159878264077884472015458643215630844029313083882819927450267769887266534063085192032352882299895091403482937281520912040497559189189156643183424932122131379811261143617210097866845914721335709576240682441194791770277647650322805654367067599455281768510119658808607811543207099246857241350666668155195196035073223110187662669693421176750218314346897837387249149313196704001573467032584824053904032990741546067040955232853325188188738166848514493959585318364393375948523131089101682056224842548853714046530447838716303684077567524487461263452111811342518598114642825525100028956693302137504325979143904146363820206432922857466892740507281245898973766464812245457406305010877539354235878247397007274271243049476379267964256545474667496122220339191703234565358826976649095751575461922520657507551871521475513884841292406727223686832884072753900151481822858132948637831063558350130393000469609962322244467121730302913158268933270851240436864987310175485052004201950284923709210621547273143212805244479668157019664898744579316426587462924062526666721146451082478357045417203801784904835782822370615469417578468918829070498497093612625110501510825682789418081462537112473352989626963117424781159074525794798274957177768008847319634555808634963183493909314779744893877977728262701652181397365897156079050121529199750226486902797050051750067545051453765761773145620587281678319494757423767505760234971551990525459749296142064060114305990073485079233864392843568030818691464793336010894701799472965409100234116420143714582911340809681195898754211230334404266841710866410711857340134456043328956202670919823267547381977505360468264926032817210237783151815507298773809057833494081276214806116578458865865893029900159579123247011943326840250647158637055547602988758231227756507125317267171998124193917177205007560025699674510228572176208041145526639820769499526207527800426944426139561062580100781821140772957829997513882010716921740667010989339367832508008095249092957910504377249822211329399898004450324335602681393800542579309928425909071714315166942533095244930382907720329132513417619926692830472689590148954213339839344399335709047532521858321799258929466464885195034310818504884767648468879473798555865442377574257694993391253007108976160087444837622162452078127589935699583216747906130834078968487549329729322839748584072867342039113867670264350107515043227331938596915536026485963423445788175511541278148406433086013487126436979525273291982279169022981501821397391204753363072486602047284187088680736932564124177039575809575493658227129775532500102918706968381512699457485145705738253252014839760037001165045666388181987325411421473060446867356045608066492993424780596011909294093195411216224792058599334721057552891838650797953631129274660115311653027943692076140193452005615200658999941179086734013435589168355736358892390162850493968296657284439893801735684310060864312859596155732493651677098146773748820553971946568061113064746145054701783966486057127984904609248800649701312040051420976172190094234954442333908681867243545615751234791870668632435810994917246928587877776156374863467821710309146364785976564097194572246663083524632558847535970540908862895181298335839260843306462742389433441496666234310289727655787696273109690778070313394959775546495773821286413992473454975334689958852564404299185784584612354026260896835851168807944122473661840055824720725344675298115254716963797284462404571347826435489166970597248439578676841490647141251740178284593809930071593090701381511051495949963127632775855934087320562982775714936912874391822908440856874249778842295853758259201110657765876374548211247172506693747995983352551474845382392306183513913049920026778187255738980412011791178054505496774684131127308493055914232251464304097653259571433435900194396984632253235502339458316612347367220069838909195621489841922778271285008843493074173560090936830566772477504618986132321678247106011380185621326468516556917173989072730816798298349222560254056283833785465672909632210741258936128268611369475250972146665723084047872134323862815239971284766138994091514580292961512540803907597616008870185081430633460055793479570496969897714093496654825396514479052255067601538723886414858730412154625238639391234931173782125008735449958615215726414269885214644937435194029241662511547680874763361725610473419475773715774665169520903014807162895242433983939378306031987488946881819272007178569903491309250405939341257274335354902662130298231729241418138569363787090599608900055436990952914064315447435335167299003158090516046750849585366568722969511667966997551665794392343772782998891597405322171064217547388663612427962877055524891753835001168178550770977586598212628785748261036724315565549392086299672229419699276805756063559534786343163656937387274547599704225896434796331050745351130932610089646160112040035165938773748689735108440016147139407035570297094961542295779931466432934125514929735071904756995150613150677586972958283021340586713189015952587742523109806111057892746263823102298152606000203345074305177696399295867037866391084468289440390308610116116818175580822997870141026415754829717535396683724368935821303820762660113416436904019453414706249785161968081636925069499449308176128328056105976102762837955368723199367459079935953454847269534212196477838383520271567559759874651238530941968798546921986903278930219022046457499178821458590066092747028130194766395888268638399148731468504316217017369724838480476046675847884907186311420292724894816654194796329367075624566919047156546123675347578916179832355034728577763564194580019967033816768405593072724083910735390766959927415462745610278779183487123540267097498257827610145786102076682364262003603205921487538356244087282365335891634084146075674050516600266661625846252549907397020653763142840699290746015164270829223174802664704072856604919685618553230573048440886598470070477504848815655363470906505217218469152843024206137091510287897160849422650370567982697721989539708261010606709567321016536418726331561687928378718508644437342237965328485104206522536448966849313474319269899806930564759057099494314861957510154912946436993606637290181344523704325222342048093763981945508941556959818060721275565727918427949757873546506270213898013095106803788254114120289474660928173004231621512235712351507060633987184928405532112795966537797023193243640056667736503329909489820797128587423176177887654560492522233022890691176488320200369321515316505891378357726889395093190371322105305065050469247371226005069375094861387927465015910645699091156079569199532985476227979775472347671789206562147657665863645439005846515481745440786117671598792188605235137077563144596768445145801010738894309981465135093352294851168548414434960010948444504944982481634175758717329395132963407204559996577611584532405269206268589907728675458350027238561559573290166236650633825433030889875236461191747533123262947834764826603879750908550969771964164825891360081703589091048322132140331893446149368156253381727191200971391624464086372465625083373882177859272989127918368413865097804717748397798288974685703860329434639482102089868719923240934013630047074941223987506504065703453200312159852232511019216738101015427761349350088047968155129453173600792985694123834619259226827975680949484161279387642580620944638678322945378326066389904474534513800650405358845578625285699366867079626966514418492436713738436433323022292396338483258472246194297418487219889259950707500289749666544976909148589600800507944393551854196428521801040547919765544602397089967091500182586189113851769226287074196363809370014794897206158090297756989472886221511330334447773889216604250053247877770184161160337407909527245651026654552346203586807609337569210280113364395640838991322276790379486938707754801173701025444187455959840403049444594127520396538938422274514676282708284967594404585995421295844409136045021471110103111812764479584715227900874455371105836295970281394568779127602138035052336766603411867407417784586839994977251124622958422338630407445445431236573580691393246471283892951183057148043204821581341545796761541335499221922067387477391544241996550962880998896981756001769375254772875676975366459214165456432034922040995813663609590035341117024072830550240563637234367555348291314046778024490624786816648777536464316107138502652992488018498565623215217506665225958465843052996753624172364715575703392251096579884479344805322974796345678479151360004711646435567010009142647929593004128829629774180306534486598502404391776035774194491986979882184357513719245037896566161252230708267004527912935766115070458977156823635358883411140139191364332729689364032625206659230622922282053100050523871604097863130114508000931876257782636200732435519465630542624193349799298812728007524856832759652799608801845948356045672629430876846605562876375538514005025856734401881882840133857544054242156497860958325092715497657037020563129856353176515059126102610997946650544082332733003575593963663355177316594000053254547991892890239836580500917852652888605756124876406734765790504130305730339630513301699781374316376054834189830108158449853215357275972109914053113052192179928604181139772207029491215358312836297058080924046422979706055037165922308582062444434877174387434812068377641829594878953795210124243351030060564894558734201669638316106550665062485815373695134650538643839130135226293441855418916055376748951157786905378567169012472517905486619712223671538923193251398596696814323905360613176620260226652054184764603024985970404248815934632659179775184189822607817146442316734357649875346973874083798440853295769975859709122869683148447400044552740601434858534377571706627098481499852946783059854891685688598447562392650786315850693771618310376479288954273090193410724262607567834876350314032853671122170198911879100488477058711913185093783493120814224334745622177865154463915271746447530669222196689934892327909189001721546265514981818226179714443013257773477829000104700013178122098535803711602217244082065513933370446803069396613611179756343394384568404862281278591268004569530666767062387950562007152679070419430963678425660217340049741175699629486212109469762357525591084428286962217171497979664202942747848516427426199751977908868985861576106788410570500621122580830037143475234026787826983069901643134194786920790634784047980782770364069956621240506967426918338313546342578368851901737092776359770687504853727546527595080277652010963110082400888277855011696187428754170398296351605638859909808941704486700208362443976874846474942730586068444028165435372317890469669104283034933444401600149793808478036845035607889668768697073785452995958008623495289940595887345426358765318056928041292254464945973549198362993101914498834193106023457182868058012075175356644106796809357708841539782349381068901745090678946028893400234621468379230534574591797601624157942226420576640343419803952571834088367186572715956625812189277812054913820265547848202506849113716542110568644943931837058300895687070746421331919287888466909500438668501356476715243135914302156031221871039138106894426128497268331022465123990733438278271711363177355668067916062190026944610702977906782228516651857546224623559357598481509269435028144309265549670059458985424823491000737266526400928659790962294974289300343516164221584706741887697499912882196356057442778865210761060884089540227439474283636327377934263226756402091619104991059643640153637887012818698881972609482381731002977170515036251585064443570370800884274851584812626106354990450304204598192066022558361594995821796261270920750791931072119393670886422861742012520718879011759031591250087020278887110073850178777237052327352011660809847690215135377311949190971144342604378365975115012707123851431427838859169326159734044178644088918613673064155908608184589614784427137771095686162312345339697792148794503204360495619043204424985874515231649103972717157946775447370811049802028214349131668554873334252557153778543943647372909056009023887414187175395809398255117079975835164774968278508230015435973710282673214124018895399141390408049625838314447902264657895014079012760874642690713252159417848165096653452003586589025866283238273160443239174163942988424681822569318491825758339739282605882398997874295793055329362724473122456892465284928092368267201713037801983106373563754970604659477815407846778679221204321891304963481618185124988843125931906795717178988546184333447093039818695518885731331032145559842085694009279333798096437965483309085498978518494695746772396033261493087487327872680510641408749715150124299249618616829011303243934794559791379636402531262117926766104186046604036522598817284175219993094624517818399949473833150053205191729317447965253457877844994008397390862799390739895226198847493866662126046831491547677051034656321620599738194495838960430026943164102506309641885889471653455743630944181806761244189792435727537688185956601374042694302399805681716952048328157790694884543662539247603654156880095638023853720373859367763682255164842841237889176424912722156537084475492820027880959526229892426078525188289016094691658948761532198691718643472125800752232723739905221011582995331983832894982414501575249927435106923459746670531206963301823661818859055398923848320391346698023031107230171052048074654709814615994455458428148416567552364853808316912189694801911786780923136975657402503163763435392777755326412089312123973539632239478287420968264207082248926810284741081487111675447183654901771627183169159439549878347156803179104391096327169732668181011024454978552126262269940791648556248732813076798047203994259790438015604353793113658164885247396015220424222853476691524610483019938131049681547174515178014801009710252489563781617255656352351673390863922434872690925015107472594868362441380550459057074019453400815861012022701195052776122185785854626789490743889487845397610353917339290996433513472284320173176411897422916983770431494260778045815064556461553201870189249814100506190189465743618597499635540426796233582330297157920115487071109096471580526422664749800618557153687908554696356222387052378652846301003987508928043145898146889298406897659358641516932009752364278256334007982122561340642268556138741560985181339404999741185978871335570450311499535711844103705482184400442317163917935289267103582910029824465832373503823428401777320108082843283434275921723711954468452598028054274205165837255702586023636299885318165498033589650322821760110369481094967160806394835093223110685074665713598906097827481492452715373714564247056899163961157917791006107208027260274459786826633017667478374676365990850745383093515136170132177953412297515058487518931109121593528088333817781794796399432861003626849802774951427957689514266110728560400618970571555309285991057456985250052434376623402843090219534301058920548817992376532547181011902047531871537233874122942604052395911436377748393573184464928291538049835951956908862856281606646474225841019340710968253321066578856813079630036775557846413290542961788865501790050667415951117858796589431922505216918798628859401010753205693162374606188856107678833008929434566800612578568154888918440044805260715756865794412467059634933049054800963768502492149358249069649875159724093891757926202280759271709774470292494566194187066339151045454410261098085069378452469286465833858399227337386293155185820688601186929088225153534781971456301574353719367277380949250065946618349053882509213697319213730049780772401725568023472743443392380221193870079688184386321656609142946191201547583938867332515190062921871905508612115192153896278422088890247735334510180221075806674842385663846749017957221715427529344096654540608206955904192185963455786711988529294580344548127812990914517831533811677157544797931151744792766693316611119655070859613189805640164034966226960366339209286300816645128663027891712896687403596250189773831639406476280531249280033168854203926304540748782181129504048826646657927496408558001122117114252301358915954033735229433429526524503946844852409596575384208625108727716097900300275455295736438188500123407890143041312375743658965275898657612259026176728081011697328580224050490419659481257685144627264127097926655790188795911119710003030861120418919007819144571411783311866548403729435093994232462672370860403403501045891040397788516913941109995166025345195876427818556254042303146650586993783674256545572512646928518845284872699482111409174047152168298163329547515744911197783970574099362092590806510044995754818779383346326036774684753331937596787275903762568163064717590111369953740173250811276179142888445252407281383707105872665442422566516011124975476639121719044728475307151285426299469284492713409831471135762805405018503407852230710064412486055686275500561691891276806847279227348522628173503980262860186931676181400933313792721699914813659767262429812226289491553810922971677760503388888503927900207438294517310807109528990742176621364380786454133045597946674071023866645952652406073408554709515669894595419443055693631921255531597702165199574538522187441875746707039476672269831938998978792689606902987314215158935038784292854772644652910744289403750570968310781061627093211083414993744276444840029152298497939395953793215599681507467976216732081551818856254208968282678345597899327490356731115495078875032679673421983244432245139521637417358171922055600799169299954579383879604450213532061612792343942691442572534587780435803602801489850827772243456595026337456978551276303446800006205025420386876486295508966063633396878122221735179696750606421849643116620551849212970305680275887702157251759483823323147327095158155618856151407406351289488426245028450242914665905119398353998753486504686861804363606844673647015369085918384471126168711891127097565146539591013511778409382273834069325373679615359714804598433522324256088915394578944946866068512417136605033183717583374257554002933818694975559874416159942320535652439542982143891472564365536539445302539996334662250482197993402700044582811428664135924180918396744641316438436526973679687671372974353053418504223230848697607211066904049421688381672705678116446689143530546664992483503765949768289095225381858175262137825384995637879378142573638121163626600608155646141216855655454971772938792892690120616480179302797231868179567586216831481307746092340075081109152609569626491052082890697145676637936907585332385157225891876532807219772958526522741477760319241098758439966460589856194172728406202508435387883292752000755875529818024552327173021116084311818169167796231609886363174347117515358649295581149028514192787283535446238685890184241684901641368824103188040681425496174420488992738112407292423953667302323298239692645793403338851272679544089168098511343291296328114473068944658616248645988703987143485837429039885599784839358559271940538656532547264122333257222807608189790328184263648751902596348625042152215778415191563899605366319830162636904629736561421319176098683279220183044903842824362316716285639941094082945377568736585642928480307319011742059878962874019591805585967817159177338697766256721019911481665313305965515150416716477126872770060010515841679272719334215286873918841449335585509703797529462835126041833690310573812112130495368909850771985444762999996043206947784530237863753528821203837715436231655880865537537178199399550025279715375850472214365350817631207412557632261636526681168616645651573355842921817197860691855628978543948083874038337778353604680521902895678017575144782598614520891069680132786100450058748973595959623340273280398464504232397636989995270140998075086974848284975312399536708320399110013117607659665847942150946091348257041251241749283934789139037370690651342269631265297481807099175906983769202266540498907653119780917930668925570122328638778298316374480426511135237851792833258461861884803633831757361830265332488040327507302892590110912001573623195627367887492100739348920123433245741182047618250649647365917350207738754553232899618618792743606374476205612555707460578465688549288764511183826026775720559745520506777605000655884720324927113715556810846162896121332121349722201876122515388239243405352164731659235859714679658650420939300783981930678048385246739131129146906232289308983608628796993971609038442971034133961489682160233574503148096673854776411624211630734617533330039893894912713234567680909256003737714280211032912374655394039452308069539645434357953906072497601645772814095515461776558089880665320030679000257912688017512764331729353724595963561458282573017394634494673233943040114904931874919521376873292379465909949117041260249937272950202519191306397737015320355171517269468002395243271148436986983056915614514038298616171962659255585174455706966242511476435190500512224488128014472812712870812521254318566178066495012043670944874616665355820858010124596251614218903578169765039341894836480044441475260117883941085298794010859635163862082747593349897313764891683899386169664038878310555033722045970611707956817546852078727100034991913210957101018305922429650954967899257844963087702385405869351103496506599668210350853977169728139516158555926680580535135086961112199939008945981695321710642350419619768184846936084433227896320844270947561207073020437885495309177396648018867281062322197109312065914026681876536852707230677478024899173993916002322024974475374009417118739632434638450030360835115364997579088906660592061126601837748042022092037861167424846394329694369520565216984301177382142390611582519296560440027793974193273980566085214093425847730389565307141889178202711388267491761317189373184684120496832468318026201843383417845771482456058299418716676199150299793250111576305011337716938201088664864628993096601593116891048395499657555965661167561133223973106911197391719223310656906051053889972708814017207292401100572240505360899583396535490176073823146662935691525785074640904491903587481251668435537442541853562152712263511152877035850275123865155105900666388554219076297012561535527948299726078451642815889158313141670923547647118980014888214084081835960382796045479490525275088568569307424583032489592628599017576286534556224509744041048115625918112687157019213055018295692090562359908584246410054905831551746778720637075621441770548625306463864077850001663278407004052258031579214544869913945037670768933829529579326047328032001534018341151982291540390774634650545282238007111512380108557035148888285055326260728986379350352263806296829314198072771139356853507233499180990872776028184619035386931538321203245791319836938046267339771162983888329266957998435872704024641698694095871748227668313388782203965730544499097126020047654724339225420717775663632175762156304985894344854091032166771209865383359196374511144156650866889924218956623945092195248296306932101807118655101578448427637463066630998014471146362711796559744846314379045960605793227217083128505131464651721302133579226697412291147580950457314697909062457669745191060843730195487838238173982796525855246755887312187245596361709369969601269719373040922618583106019470683139785963124910362738814641094945247638207892204316940971177502481922098148424554753282669980183748654686214899076535425377080588018001305639575004542597990549688442681847706067437877282033634539770785122717090209907147353512281602508877182588557734563334744998320552580819693194381292423879422558893858962025099848995690963803483428719555247266779646420054355520567300374984216394519956349281329841716371961418630891612043505991858297931899130109182176893537142815639374288302549399021138283891247129169305975399719975626847539678129027443639700137597062727558170247231755724330663022953210056737882571096690651328694152221410547811503245192944162820571147698950581111152879681649737742217100316690011948565855033410837462857939207854737702586793061735965514818074240120774818721707398399583283719879134213790968389774296477848708428146809653919443358048485798629268733422829775455379039634487663363477921967040955186103779530537679105188543280470982288375881355390832315006109504570832440558464495887482309279954967869115777353220856254605174317830956304665497647965056557026746769735109386949660617169850796810876501419792544065344652137648266704093923711933350311417549361897680040282185911403717569569407604102911427106853648374770614445886694745418634582068790736549586424696068271256587762561633086075294773650812400217628562831436250745136502917350124928377819839437882874042205934743709810215066039136251582442172650951721202504215695805719460522436845151132031975693111293058071024945524163025838652458531464003064898267756613654359622768133359130076137369099145396417409140781047354927956310255809445969783036317755828094019043183684665400022039568080620205328821966330744348756172791664398775814313124556130797809102000605642887252167160184204444318439193872599793525230911634134808819223820095747673404015285033166859215769517569072114017315303061198225802341864448867059900428576102093458724772048730771375738710735540029673365177508674845013873517360325543067278739524990327762691634990740052249302346677536380762411037932240729012374865943460337122230853752229330680366745551453591732233468390425001832425956447805443096620621855957043677053521931397541777855823668982536433784664134657539037967350180712410088741417499100741911959864701171593127188689507657986238423736422612857183582499140899154849945649280049829440136287868780255845917092834972170773588309987212570443149007823042122227712759616463998741993950451417808138027454514822158115718653232211863977841128432203097458398677506353493445208539290545166544245319346663907641614054110309624945749106452679076971347282011760128432999021307340892956889020825180306856627583386522909156828297444242794590124139205535294632653806994734836141924886230201266512436429725426819590474860897361088458646216804126980772781976690044262299104115943909848337356964726659673057077130512814556414883432006546758293723037615921015356116343709640975948442112263285088596564908328607958909162629166026092060722299383064785103846442900487021887349863083289685397312349022491399066969333578764615678134078297876307460587228905020498250666327001808889681946058136013105818716853785091998585275141245088389844291124451332974399445192110882409210489636479133529535006563695226105419473762182280652305899752294484118581333468822935280111877913405218393504037469862419118818564807128935806971996056781230999214023436843539204034270541155501936110404278229166007101286793977946641142940809076758756275037426016300920401005770784402593148009635337324443003758885627402516524064590119825060146724264123306729552514113928426382049900506133088301217052414010660669784361440982476114163676667448689372445719596434182678825574979768999426482714994633859805423799880840762921472361060683737844987144409491647534860084424311211464494252006304701894270522532262689115069399308063064744418830835435064770208088059522934323631752880166461506858415714360583323606902334113350115535529035704440682394305020034790615601218006300642792775686511205680496320888610363592228756833749479513214676402718936770085535993677836322903061545470283902580060839107736606380694017796911037413429658901735768921248442628224769409504846070594499833547374749003889613900421961651421656183363671450089407539244598022545744686761535264765955432816468582095953101503222678777279688220796288834660503737526569428771015283732390264460890380645336384460244434130154910256253168419922543154571210702925237551373735555676808495981295544641798081887977317047214000682233301596095669524698997932509255417351311419751742869411881559140764816379016711969769632501666349080899301110385784405751424331080825168338772041056912411005199699089415533854156662281790837524269584029422566012724047619817541790578488999844171673775035575562525673661689591753394285605007791282214508017212219372244332257415520233882229219874152465086771496756823768144729510526735617054411249633978278381566373876397181727027435908581766181952035069493265372373258143589788717618447869119218275254162260520509791865104550310228571642501459275183316759909659143339176486489965033569520589501516413691714033974057799247683223087789068331097168221910783920490579099485995059122259562379292901978243532426157962814607214427466374889124064813871686134272807253656245286598523219496867610949687092364049153537011245131170060478011248422364829304919395128730863490457726588272843053291621755662877898613606824575624223250311185141288629562462971423254942167982686682644837060281974488458945556993805263355424706631303868536410307848017973349382300530106843328966084469428375304880128807263427442894612956273488583876520675981741569031420835510102361837934377358549088052881244356453923252113553930547682068212074805479005383571270159689126081377709379161274631088557405957573107983315665266633067628421705354056879493867943740764067527446154348548151520222987155104651621390877441015885241306549974767821689263490087411670480622871799721342552271134495590153285698437027416981950140734828221215581561070089906591160787400755849769738325548201947610047041070081196693597118683107077691557594123444622999934093792866420375876519624890826886709336172301506893633554116951970647275126432803115684782274407196926471812321811628485009646430364063135915296752778175159660584553739012627410527427385581923078719361297928591255315728453413938488954805172225831892766694663601348115496897748430600769546532941868239110445665588365807123685718019503464707254711305984367153035545601769289343828133954598909351815478425015351923150298483530102167036033735191837596669958872728607892420629981426000200319508186845231224947490930075164092548286035281615203881219281957459798691357555448366990371417685423995252756485218811497398419647160360708033283908536623256636601784655610645207755867910342860554995741396780537898454103571068913247268577479793105078097881792266382070127538537994429621375644272199798593638380572069850493469954282878449428742691973513015163279774960208284675093160951500113007813138770261607392496777963248204055717255976995523114661757372009074032101657576615096999171627239755515480295517866250824650260158438178288699002839368019442041833969999092307533080376958446896520682900945883748642464506829715754724297995321366971511433022869770592611378678942768587241680990557525569884638977825579701661670614429424211131152686056274412841032892014038690850283924846644887624311491286219214331881426135550369126928820299756129973134825293031661094333291665938947861156541360223373113670884710485046848214686178349582844091823293538290192249512651172561027017226857999818630633169591918902271862740072080887758275334607245187983095643891873240036212499920311949225790816312367633841193146419133853996357912782393528390579739194607937716758085052623678914541937147855332921228318470649010183048855971402932610327364694539508346507641524342963942516527965909145529437037497399089500330043970169623664942189494324709287347337511858398890108221618315057160343797081035955486364394879809275478543950587379578563900729740657363342025320078540475135945422335630853104148428233046887026343468110604365985856096896074664360070902747602630664965001970352597173167088095511225713319606687314121462915881765564450861886113123794510200405539289725909798721945190754511665356369737078270512775552843596070243015636229762501352608259699692046332881587648979362068867981052541724819824781795175906078165527483205307610860626239853287396816394735588003228621411035977819431224672892469963500641395148579856240787822863989135074404310103483836339581321727382391336729480678965947926710197637585444404872656871170758054925379477036421811528342363086305930367499698419188396906338197231812460961369769190385386743219340512787468226984620421389646871405724956399833018142904742181341441090168235337765461024088702764701473925265930299457945771825508090545245471847072471669530489091325849824204366181353512034060899655948281863418346255864911710637646609679844537674677711908918113354443755386900343894423488371394007016727760048456425038568016698348100195718891365382970576616976181915571506183217261026767004282519649539225832014974946240662849249137285019527320138864829901242625608202799120283660270633564392290422684682077191090661419635521958725740448885072722754307285201657725408950247965372019632419618740646536995293947929922625972121060057720379941453248152571759267571449192805824635155078214339123241357526186838683983024303232227416538423890810847282924087221257707739640195665260442800264052017061681748455631539695034303638891410275991012702103696236479854961161435590376483777793256696177844754988171261419105150416817608268584914284158867046608851426781641112444588343235947996052638859958387900522013199907824677444860534450910158814785705723015173244150114176540185016434105263321021137002231528822911239572227199435328004860997268919560755047671222872904329100539621021506106628821992631758125467690238961552009132562885611842892421553906017380553867254157712583418383713478379877604994457206560069901749619443306284697212223132789661762707094011338664039615239370475079006298025778980155037691084380442275814958708222746012515561729471218690608770417983332906578865131722321460104452440762692515640482377902166261497552280082116035055703764251722956585440478971767173701975580331551638006095807722915963998693548594881443260198600805785995530388948457756316368236109595036398847045445981511577863547015560007832478627823718128767944263988644930612978069086040378337731604108989606028717369930000767096486322875477613158937241920822248625425492633858109764870937224413675703485581469543267429660003015844938057643338514776761994637825077119731411436081743283812133531004838879220852961390568978343140089988841553460338505759331139745915026525196120547395754962341089029234676755108720703710171730803144991243653881158827992407704256552191572386627126504158809475311132554196282388599747989563245713158956922006370465997535652230665625237788137723784236924183302447294889744339686472193337650098454614409027013780540228283394559913912667986676788186849940271966190250455198742753001825410832882405068059330236053366235713414085755186094496243541969123626516571469195866757594428268062497230605027222615605118085027811208438413637755832737755505719669173328741971962600429655054087444512320842226632868225512648331423302279434062230811848878673256058460977057711699384954602332045841954688831684830251740472198887009173521937021021686094781647789232874371805447323973276095949021962935960162728255559832333449923770271424823425151921573416416698845068840770643318084142148747803169103848822548765240645726340681664175653729349754705361943064813740755131542988595689862259629920628103258960730816726866032171070198976947662207422620390526970669218364255326192931421136023684624828534064082096982106173883722539360580121249297094079980290390131357077358216447756448385833227309518394854552152993206570291925694872976112806598211046096316420572956178458354486186779002847669743808376569763971225417712894538885657767113776921060963710211176398634340921260011808628069537090940075121640904797953059253021701926682370216683133301185190028987937856037492615662432796639262861321183307313040291129206812586353547027760044937026697794429623389382998395024964513449482744613726511558126061483487502469817003993823381210777677096436494394571661190340052950753434615832393771127939575052734303946512221192858893371166550966533612105468691162800786441702498576018855536159200645612523238870746126192701817222200613257142019848278437128862986989692870813638741200228401404890360198918354451096290248414224064040674337101211410551284044347365594755122188098082577180425304497962169480612180163524478996434734974979784149239681609634319431031011013625878252296654263353195868972063647233736740112453489559435888106622707445962447650484862124712480126236314389178164402721429025008080035213228070159893097806049748288658624912352842610229733980103900157281125096049961106475104912008266062832565963001893753747989941657123373468315003569760047648699911550848730316320843091673930982614259705512506255045771057077775071058487096313200488493001500335277814914806309407045105967688920932567096823201909784297363717991312664464111133582279210595678266100030742709669922613889871426811820830430956514480095587064413551140414245180230200857571431877891537202250622182868804789630991926704498812917758143020683129659423681163871879364497752043025168752651369804672667790471672217223753393544798223739366937926353741539274689343516400547695437945197342613947411367483700755873216777102687807774868113489336319232059132132267291666267419953722756759988283548834417062750662666338106159640786675039695871247578931894838017993220660070937238566456359367526533049631020957448888427653085322985831159489070255583660481767932594336682899835683592946680543433870871856998295609656907282935087640043757875720576014663390296836302719116646217712386804553765792921360669011367235136860977393500876980122527082824003170850120041357532735092586223218067519134385568903976036870720652872828510057708784523714886940459435918408080292582968747491543764890561655463572778248906115719307161217862109516845261313944482895104828526720877183385414195272540628159614572158160633603486712806746749257916831767098544922809593566114020841744354862419921248232669322758773104779656957342480993472118196036285285818338343596568151583285266230610322219406868771446596376776849954892119954948354717182688875343948506191345545484780871764659576454827700759937512972432545472401208313033608509214731673427304698075029212738083729170035315046096747433593029040082615968270977408928077558338522921968389840266853864623021488701963003763358058082112931697044870407851470309121112711360950303085442566916583165479236625873790724882810930551826875954202023642457541219255711390097343409237217401477244401057334092584583710781302877985001966805359081751493586114404869147490740752396681077917235843818623881772068104303344294715533865460980035471480106590309789192588370139862015000559636483837216832014624474251759022777445077289011392563137760655895787906124064790062346061121175733580791341088357305246377526740606500081114728795169033709948914418193265990066453098210926398445257209986458057957254614758950065467401307254245333373962426521744174966055332001879578447842630293652773072319454217052912870209911944260082315913831903886301325625377608474753913860358757392534270571588373444913544039156831358350391721401111811049599768020746505585965566861716208806922775405627364961581288091143158513024792597117163207485320334744914017556913553149710707263394601867857177978451399599945904056936534507405050260666212855407854845007715788802753972261412101282017877922226803906717805240240517130308882080319116078846219361591309764793031636072063834289242824092852508596329245311811604210675246637038253449737221604722085154527699328210823934361918736445309712163097577422773163793052854782785603677312878823585856841407075549809083847631565733859404310734331243250603370497360077360147736838235165515574049462434146279769100744735818067388011744460766328011279855882174487195140901202299778066721678642596618216353505257860094859433935137406829595918627908062338790354726843695952264551574451773646072285760222716830825228867327650551471145021895822015983644931967159950572616800892699246209384553159213106910298471431541759415172835978472851098700409560792483753163930566023034426276703552043700242867358848719506940915748588205607604450490831824829292599333765815847267046824991144522018396832020514463121730597920970733765084299711474195933700448727253167772961299135215550839401924573862551793571606160553650972468969538702712334664460457154908473885384888517633318831380831132223715682522332903172427094812613974892718232650040616107357320062835793441483556003946892591986888039488212032762164340016748728091554279331538056223981531036652303143380879192873926697462661249812311172881471274867833797385355507427646475417282633212549734335184688207465988834030689479424955823830753499486136084392954689800002234614907767975823084900784477486948832129495275652852582825954401324573828437365631799707851774860987426142824436982789134430902966654697412165393882822551994191762345448097048129373408834313038330472649365716227325027787036077445451919897322889108402749328425662572467448585781268101152207942503392795906609566993607623813582823975793611267609142441199305500753964803141919478141881791471404496959850465424088713347710903526221390091150071611856924993314543708413028046410602600738086126643006647799562989848447487758022011155121773680985446430810386961912835214783461352308380184587220305018865181656772370454782451636682461506701013234830135624707692666415908476798108490598355229973126538535704637253449467967030773675027413220371422388005008579732332481158401665570918163400006374305246725942356180052503464490519748210815898546160326484039903583992089692210131737825433668529775441864061382450879385476974575808472528273291812823132494157507083074857924144292725200940899940246008018603255848866550485634413873325680065207930912420671888955210035502531944545403057587839042584597628403068611922499909340247966443831821560117861005972592668574401434685305128830911131295573019754272751115712665678358645437623123545552035506662739891358281826131004554237492114988018384875561637444038369492899895610925411806011399834092025207934030458066658815816990498482807422729527012097836060059048780899058035120391068708608926905246910940668274128244060485360625601223268810239407526843033232098967704913144605944056254801433074168558538378831371365606018069161839165404428601064261132581337152218375083885137255516497936287352435318729057852742077608815701407928927282006381161216004982885732461775474186620356057951964538739859464606780436812034685276293672590906509177723985445037077261049399126013554893535050160658104932609207330111367261717970225207180867028301460617653269906128399334360415449392781424846511166089243790378840698581118276032053625982127109587258293799724622521737561330714657224054060520710845138740028544858372092871336012691129262011557749621246302649305508220395846242590255583728120070474753335158965764288527528866400740803227257546387124199530093424476132150971646535728965684134799673193779421573608283695265708081564081139293022901332477453016380185788035658494243307641150194378742104680387766752364211461327854809083195999098809956407850676006087308979162619510920567496755122310596259542311968366946270806501915063302723721385781431560591668072086864713857593871553138034862135008072326099980903628490258309315317039187282468445606690781391628447625773629022946509940508069132987018967429054982970874593031151933508539262608115018286604282101638804211876325002573755165746537915673356133152354585904687855748815111535230806391419490921964395826537911944155073812033908759731634423255035703419484982070497211884119708660608434403146805017461783372855762276689969706882474174294769316222926300247417715564315946589212920512978732932155060959430378329798642409598087692103751061491148552922285281692876143138305920013749685609505592261797061787991981846902846541285276966896552968121074007120393439244541948663773150271198229092508712073863590988570136252832111000861703979399427587851536678080794668546570942865711199606344969281660780479504735891422044367359068952258501291860374142664824230013684220297928424823988122488535874250593121372632004577430238217685333778286369357252509638071766027615782118040921546546558996282014417290578954091590919952169612953509726666469716506935142073801035302879931535314475285208529357688135742269973902576619823875119282627350894282892779102093484501465793188552372007406030396846296460528896399389932089716764364852066322036408215145683680136575628258058797479916754520240722313968984299298148265454210166809914429990952496802698872933706938109772578271491824360629481804443543255008480838940635723074973088423916564112719025674428207747867232988819400485725293576476727699918832898022235120737426508412497988588124078872900817510548270139184611344517138356436450175758204052697296470999296752497159387838762137166406005510905231524656758459309963212091573309881204803093770040572470862755637772387881943371111828346441960961763997971888092877259093006415276928893623585773565831393947341526157147365075682444122189486613799167453529899173691035135870862501426748365525051494188331730418202472490732360343076975995522314173942965378013256182367700368857153544481746668778393063297166502067902806511796885418389268719028007533399471306216405959736787070588266938628999290664907628046802473369250768912808836959967606781232675625908533026266962662256293373813506607212539557888638393852308898499180226056936880701737877172481694448357113301744195394322871070073337695778256708669588691028398462307300917725402467018841682139834533567361571717796579362306693732554934995975912554504078137607717884324814103278163273636025259704285628716654967996720421413818936108828680018663626224796972052387928936074075252645019774754302630790311395314377245623298950542652071759616339151375921168344486023478452015361569253534819779811577802376464446297836696184403786801121590770670645195869921071670758641904601078316216926626839433221654518046112940689381154124649461539610814628176969217964850073581102974031565753017296511250637981984067722713188849389393567120597817425494292465499956527898843475011203465676680044975262906116695497309336935768549206520282466869910135386560624652096356289097358070438620271348605347618657100286426815766718820383252041451449012886618616645462425735363785883438520036618997646063483485968481043688727367685974546881583589189563965635612719321393880506593989331488576456670597854780629389829279273418161078865407758949548491760092653834971658004928834204062882682752924783691212660650889891379200846805454889394282574045083857948356850550875978073207926822259183411235588027856484740661349623155527922712097873378743156296673292616657718694607620287243962956474999061998463716749566301204192174906319445017988451240373300642386752269279718881998960303660852862936184493101589585346871863048055080808337707201427589444629946331853608444915606782116006519092435272383390305011436302780590801530008713185741503274849000644358821016820902579896680018193495948201974665844722382632487405821159727238785864199368167042507727652067142948450065654274299147501683761197304440299569577741134629596520494645713107756541584036222982876270554393039085951323624311931011482512641863647008366515908888564599465212806772263523730930889260020944786875703416871244424596476386445205872295250280602813722027131412041028745049010776141453169546482612706393823741162907405658204050665770986045812284998372330636682031282850362086288296121543998181482274387809921437939236452966024301184742589817562656601278798680492810460172100908551986250567601935693010004758856044141722737890168232088038821461250402518343438423210933867301024613147788659368603733506414561101279300407449616531915023132839064134343384627673404549283392901890679763385176174545337900185111680636703997361615228494551662799754974161226435840863876427406405673390739204778592045031669961597780986257158639480658116951253825170589600663657628448390890027318930646357319816333033830288543848012848507395591115292716091669837794276040717786658660183360977061584798128654019606144078348579249023826957941297498366512285884368638041063886620848001675678661279992787481015112837670873023827546788279841704445282734200322254328220598045714480691723243939445879080545199587842640170795799740815883954835875935129036078521346395297413988841666000956124210975050540953896226953177045587824434057706534956890717744748680779488768261075050557756680936255682560496814464273818033534163259371599130974418445191610292932031034577918240395608012820708224156470820536193872685001085342888647038258528437782196473343676489246794349658142870503659732618985865806179552214214570408062699368807227797112067001703310966080776405313499094063062361715216650203827589834101215253029558357089566722658747755971625543019567032494061761714364493164735702762496324948776631249994401538406728376990820920520640057678406945715565838547849900706263826330339770863548769278493410661928174787999907890821948990596169816943670743520598496482551842583811112856837500867670439474501659298146252195960036689084463077038597313601927483615378485131826796426240662852405986255994707732696241893549096206138449995319975777533880092538300744840414510008760600644445313448802630667130554503392645460638030783712429407973561249950078057627789368733719058255360494160916840365801697139995456002250199164140806745599333471635114240870153587654763668410590883701340279482392961501646491347267388899340437733833534488636057809672269594767771074928729833782537595855010001289535196601631885885255018308860914317826233525882721376586663664084133590162442815943581359250967399949152716610049488963003016443736097728272326126146543779738120786945309847174241317876309476465369573987651861957649899641789330373439986678359706054214323795967079970737154220794091504832999019766407617303040413719603300954776073023743448587740937502822459495600140092433106556203786875991062907104993863817356372429986353887361657654199209136671048714384198318488353080524253616586433566600817802358541340163572157655059411750796962981767682702067119317771929170685597666485618790561163201808533293064231919187952816784163764297918255040859806791000075102132604672084418092999641745770250530858544291208534215124684716005359453588295243102404104364988742364895775107106734538702490926244984755690389031090940773092430851892616837089496004377741520370579811635070313989637574503322735434523352635609384657370246553546614925394103703373643631126695129729014696714904228700543868518551856927592029811433887623006679347611151993522032391602071722699681925275126638061069692802071011792324971125710282082420934118081781516737694745113534726368773242956051773983179325992633368222633761318976480549709145723459759408478546881295348129055561726314596176551068116758957863016440907124832302525228905139740896039401016894413343964274632701521830653242989935484018637529172634912785972354435800002759695227684201947637371814844238778842178544986967515704719949836756393229310895778810839032839322351197483463189609163010688659359127306206591876399299027716977802774818741511594039739273432089254240549786027075489095372769481232809503551942052108606380196725798907827740105119278508186638179442958593993283176955620985875241833138080871349714472067885027144406277507335735520095271703977790111254317486778666699139954834375197123785381222808755319705341684247666056123834141518941880342086244194569407180758934360961748023739522502738269124701979462477066989517857598830189489733435058853459113024770285542603519239254349055499781944838581729918779145712882890273756827774370092973369639003786137339613078613346086703242100428635873659570803687508243486711343771388453049651385519021176484339144155764117697748615811660266670252164763429048043358840261536760957144442419390252037569236859336655585876673159475310548814888471934350345626391304966902531842019279342678249193045763306677202749643533746531511320808013464437018586105649894735985040806917490987083216718957563368763376255510433783252699841978442374508913150018912185522993184906768191055857928595622101107723749117234115522087370841213723568187085296181667472512577071278733834161396331689779886651346816893188364687538440209807161810138588664018901353966531674081269365556477410781096200926060806982572591541323048249487162813427201417700820423142079046328418691701917036976738211375112699237979231630928915106761372422244702146445474360738012329978101421166040287073030699334731533913513144419221511731354828222295576716130431609303361952097491033839330699295430670253547830035977462153432190278835500554454236369124865309157441502473862365318467571473249346343493894249924651722928115640127377312392780164480752352821827262074301114731538709424308840993128506081415558590756887769472616039555552130095725015262952011331200052245442888871535810297263684939088604791174210657532633319132185465778914136932104109229663317904723256484625522942931657486127686509751712367113129098195316939907460212128064468256119416997013177535444207817536927923259692478516051561333785158293955650441316886546044327544245426439022563100013879160777985232048008603994430840926218184984667599192652390707720747602645092273965060675006238636677261966300028873810588699143548731771391851219666917838223298920600619850106089759755109732137811855846393360834150723410923167424169077749011771036434015894378896301497067860853515566130436983513885363749613403076118837093757145142664066841436466875802433273504680913981241593035963454134829152430814044344752636151675141757205028829120456063754308280322019851030578286834336690539393692268291384724802386630113901730726425235316066606447143233304725757408996468275807313967266241377769916211534219801363699746404213356893747111305147418911685817570474452060814410152885082206608806040065718360344135199908128289573621815379416580749055504632159621790100026993231276353092329265631180440787364063652056114919056388674270514352615952702451538752048078287391897680480127388689095036561062272413424153829014501774227607492910748634931385534423787525355890993070980016880004539516168229792798738898850681974062607311623149745334906863184081393131962941331657940918819666138884206386071339625262196560514151147324282776073610249796473342355029192448933567549966823946307399430816807590096611713290501238979242817845444964179329210938611429924488076269792051509633904527103038806684401266200346985265975800573135277602731525835958860939051043277218440449240762502449285414468217179185379447899951322732246704594854108877356642584188507344690985266491600134658813493544114302091230031073305535387617098125248274188287298029570887135895474542091148626308127937446574000086713429821084345656495245008032645378599626605044734552995590644608165391755736342371624317564441868599011207912008308415554119276065665403074159025160013913211067148698396546180637876237900622756408286977768028023964411042707092043496499892639413710562595497454576923843825644339191742114603589521201643959894083008567133610111811300804629773909089530460961139320210196174938121735037290074703720115555165971564892630963667407130637763963378668651530650514494739738901192932757906973873606670510443740294762022606150104399210200527754824892996148754592018780184205923203059905833842491779798497733794096041191175743977585527978209110281429472234340386114459494319492897292074834687210222770330020107391427540618971498377405486669106563131538467559121853881580011467223598576489390849439037099348197399008705453102947982268152119142345775865884870694316897951623739309217225636850327075223389751313283313132778003295872138694803744896680925995353268173375562258539300054086208671198378437895814827710710851249595262579687165331988769130429156811896365043341284452313441480731112078321509922223410002776473563112197158308800057021110330078798407637805978968247737327235330336505163556294673161167033892311066023416311515833170932312147178125757766878909139385003931521018091366934346787120636081255687660335739341493877532484998342075746432180611137802549578040554850450470945014943037479605845274746911393653205251783795804677451467474217155651792136250133596104691480703020660668179092427764369012309058924931179646289511954114119061591354240662220095863557425466375922299561242189693665661031386199083442138031565887816116412242446370220034409498782197549899543384157978995813872419980193910638268479913967007314628763398234434138860389584259150883614646609931327098998636649640103254373949028601838876161091883096438096581843075181454772392122135922639325756684681792813155033045903230817976764046476593247537845734242193094553592242924804634528758041524279404613553681138385353895849418529236004801542768536712343886795977515526659917276149809297943056878229033772748423126159967019559325027402059407765652439827785600132556464764484439954192426757533876357159613881401413477581259875198302557905636081371193226980476489461091747951948764835533746909971791901009831380344831775983626463287227645716242218152319037852698655066750261874100327962563102766040458876243617678016982704927628120166494203651134404328603077323645715926561462169216342529862622974214702808703439418799330177316540282433902086573221954748298621621599277459248737610203803234513941891739548056197411211749477382008478021500740243675214363067204995377950558685387985918328030623534151775885425754361688782743628072635214882753023285152630495262278981719187018080249725522074948194371996331557188324616127340147625314269707500697347144753008743337271327705819598764994997880830932353114361908361136668565908029457416086212330509421292064060909551648863317186463930883687804248276365978267790808166982675016217077794044458611916002835122502076820634158242697544938631141780259549600158176140220132636018819051863287776848980341080988881843629384451162961566331476146132112592064008694328713246823747772274340476675926346553215400221346380348906754965503577512452967413014438964244715589548149666057197698707393694028722983802650963384631834533625113462133498129883692984540169177106036817314732989003895925225173523374331573238046127628379647986336666536370257606036932693188237614184134487407958445356247347041591239774194015385098751059179887507951957188243836479565859394544066280818973229623758081732218840477011810853695274876742775420987031356708037174906710821473193159776503963076017881418986803239859484841960540701211572491923733349511661602079521033626275526601415578519962484460896312158814108181195362174413395130873108138241483545391228401389664279785733112250128455132229422775316937179502248622313504469827233814131805449251627721091662863856870589034968179222772477573900063801260758352820353688755406201719052245538106495246498352174458338999320773203565746680504264352215966038073960201371949912855108909439441630823021106592201184870889449945638511351906817335727101040352961584823028200417093383571941574385312233625095043427196724892456130123221276743295348865673692938917834091807208294511151103451116567176186912950851092487264008119364963771197928039952867225560487020257619479173762581491625275296699584087392740461462321110472449660686245090938036347794144334584968124636741011278454299778290441572746029343152795404525665348141270055471050437750548423343925676679700883261691514397359306132630312400096423378064460596220846033066165780328488418038470840844412873138009123367306607529514191487829310792919431951307316730749325725712988700982714901541650373715483476541692231207927551563153286140546435741470327038128847597715625980753977597863574112533501859268686468289618762844568726529760008743036583152760434074246560533808036303186729263305210684001970637691864979301367650419747727837174322702533520204024259522730745807942991503856500161033230132712526522470909118787951035405703583851710577448032966104646962805278505526744336327083870235952192652899731719086365986704867100780064628678045975606842212602221724885829654100842663429637799614357779319872823016499133085717289417530417629460239226100313327494330118669908044334946400273002316981786997806053694105518664371776665113255074876714189071045072663865757853750074124552535030216961092608049586369896136870148401544182154110960314393574696973479754535709114020510681842085530808309664472521874005136620221018679641384474884874824827723985805246306588538915921817578917992908517261569296579130446606383059686220833226501814042515246910422920046824031318435245356686952546431211986204425649898813819193267050027605716337144797210675842958026193956836517444066351485855095768271930386879375257092206339122059203458760156967997045173538985299634182287169336245002988660906666646771347636293734118641514672592069719489189369916432803709868304757259091693877265288675026211683062913629279846277322366729922970582637199441892047967589643988600479882092704946577028114838168510060659585238424136800560413337884839766593005998659000106398249684670575015270224855653778897829827762680337967937342512177908579614197900972232626935528631367717179296012075302938466116082059975210399632869840440335647524792767893358347859095662496339659647114938636019465982344342570679280345676250665070697377087257848432152785829673862454147237250889477349749867569426441040262457302760893925859362824533446324755317251401962942752817398379348137487754162776149355525246113954425319690871636035387929154088720342874106361625046951686536511128260153842274054278260358846328682003238573816177867900813466944560223359304284987611860276451907736581232172148848991691340175555636521925380560038277396284620137978020337169457342957398842764304403725579548088466231534619592148196199471455452627549560269768141633564010589003222848337397973542810947959115793834583306822764951670278776329738342928116100730217001098918390027867792043219702729014801485076528017306450985216318004529117904458311608997835231873222951814879894482808363236131035385220836264796528498322279210983981848323341528757488719789077955025495550365418040843185925547137289916290638075512229489495638417425380884780566842044596668107247879713462289384305080126870686765133904290975149772346149821051056074639206793924265807834220583674434349932614010067857615859480287975754994056287255402199677927078654078562252093575710061772325004102665481886354605438323286521542944507166114754044603797038425175694744137782907841002306903967270202738067123730961403241113911598144747416314217299433822519584756355452213760825408408482071678814524459613279001337078976317548934256658690375728173962321513384801209945097838513393293610332401587598087247404139573603759877654662461696835904211625438409698647265955906195421290845081352346074032328106441525141322702477159233282215690863641655899086661890647649271359566613619854837410282207927957314847439456286263340760890930585590402148318753599780038361550316544626300666780019332186286171908742555635756919557312284163585918052176786452422660412228398957573702632564836072954510049182966022093409334906204192502731765249187707735678306484609043024159185333914833289588575563396889638500301504227892128520541603084359450699975475586574881842395567873655698121823984502657473288742300286800987825248087429761089905994798055026638391041915586131219214953496716324549423978524423955740535234208218972164793053530749778284095161444405934274497466820936431663512116992712932597175451053585170069108472488579971133034084002687327814321434000086987505656249590670674959156924217580746437127588932882654682716759178761784431121031523566819085478656056224699714387051554011476239902202558768105048419899382715783319787110900529157929350346540119966350693831599446013349245057198753025276524594665990213974274945648145119376850846893047201343321225033428976032828557986283609948165333607845221450585807095205289783863299243182583658949574380145230107099705964067960755666993436986583332001489542621669868860023727867585627116500288317192729504698603990357577315570071961355782019636988811324408955923450894565436965321076995502506274548388279923907851995790316844370656352298357754575100206758506842229641500767730100995808702103692063485447970679786813758850416181776790673350809348045379816368906589588865875232776475227153833158164599239114137964142164463872499259324322507553431462331256500941537673870189058995972981249393173819761989159704895969221752944820074230564487149648827499439972332025724901195915591876007929605809546814726742724169660658471175903772468538985945879087188300889435330295669558434313345905276068485091195600112682407884020746575582567803309449209868413309183880608103607901693868433834875411816949210610623751957548941927201698638750908929386693008362022000548324266230546621488972484944074476508861118561736048395417915493271557966318257490770633393381720332868452299231790325884977274390490628954838895933745050170539443071298837888155334143193858353439885054620996848146275387947551823282803289996936768023779210619786325935759124569709814823055623031282822503526411727073347687863886230448841359958444321834950979210740655906489828466688509938132205045843978770260007947299879974057198783276873432669373859376670591346915201866630003214969747993918004452141791861853339030230154297675552558318358299233787217906560753436720078578711680369178209027952862419638110916939671775734653820420046207193087979273565218165869975259476534128401992317883221517990996596857054714335962654218193421808475268658251183433731966854301057723580771117164191924811838424969088219606361397639671388928220074910786520543837173211066811884088057696916789503192047547723863761916015211421075539028413900587145641198098518726306225135405914555798062483150534781859556454502599106543077621159158690937822433588330300528467238863250560941792339648255705530154832018525784735957531507902938208934918991864545307107237879160488396209961648351245293950353242530816806651544716858967377656771033297039881289750190326264427858397440921192648305216566968841973368062729040923737284995186124001812857487325487620152912761990345730158836955368852296040214499296090468600475714285401724195037766969283933186382318653571484278277227945487772935833705383842588888155868708799381954267171471802717187167804895279958926424768193877617354079952672984759236623014735547909813520942098974276264518605119131158572320708472128583708495577423147935238233359477086220022477534773250738458955417541904052795870201772986429360289113091693069292902339875797744630583925294146330198057709875942779551439249173150396580078092893170376050739795842607589982742286680273817676204343600203048321872232454676379985321090102424811963463722406382665113185686274576108166117067585912530177136490566952837722502543113416399361838802253730291950364335598044368026601356925196494956984700868408744042256814129680136943194049657808939042627709916798897125279854455233240840866122069046641258146704813345132115325402893555751564220365201091088380061631087583395409906434741694066388651313299676949151687322384089282132887047271267292107999673013698060567059528899159616596032935722754120327448509744666937340951093648663678747708172188027642090778219918717889870858851214793900273815091753256958682441877350166605613816547910295395618350614429219685925118522656779509216126234418248984585682070893683053793717146956906558381035728395954164954338952780213907575645280336494889084212254678953051189990961547695263024714207551506842984612590496939041155783006454319344123614729509882129107790143646550647452648129874780330309401202571026271261341373752321820935385420845125128807980378299219520236909393174037737738907745195011230149988121477625764056321842086629161135535058103736828480491938524995747596609886082429346807460778583931494681225564869835553430696722431201055328195740389354908312291206826180116422188841267547174242210186833839184158845532844166014985868952666389994629731471467979888488133347639815399923696478410063540262771272499197419120980813055949820639026583709677558772023182731864298028009497034621874210902239759837867318871352337836057273696074063941324172644022536023859340353797278409245008071983128016852113762080747649490332606776543891150345432487850435223992475640155997908443584141707592229433266030426986105923410824703073647028254577744307512009310729199455153170712299614726837710266279999180289661261732972376587176533191938131318562669266333142109108596256415920546978473552148275268214053952427751739886879128646237626838164014241748653228564378260780235526413549804500316485567954904414043448223899977174319620199938698278939751708841786122266068394727436658647928332398860383739634526848341729667884338370656333268845722247580599307768571708988792767458480868513249299209169875180607171831988421484902352790783090224463061433106763045256683957274325378757144096317753816580491035856136428073072787462653574121746508340508608212601032549217692842569189044732166089826969376708615404136565699583464706859227047062561402033336229892222903945192918642626243837489624334171335774651420343553188075312362872466448846025741995276726187252692067643430623158878564802055126614503874032155489122255867248482226235522683387923784701961463271437695364447947728036213682158288590602754321600360282537928814117096235951175631174241137480277630946107154703151343017369578441321465362392175936447715809742169003473346731785112372542396111862299618172822687909452575251306442606558737923664574623449059771549739192894918795578521272832959194073438502521977521193840114315816939616477822959439837159816924161476685626697065044484031626755419249843158018547356043508752346708329403972140880879083758900180011875259469123584324976620803177573713604833046726678907239652457843733117150196651842366087232218514046635981372294595910899367698682299635581031468688261441991141501410562664942550269398449696137399248885047489448588244292219179881246728825029269713313743791300498404844134440100860959759069996240175259124830536703580980581730293479987411259599961462033992659781328506370873016635040238403600783451440593555286377439339730167245606522728030803839698512649764049368432674936791633787263386810462315631060882169902929890985608003245587211891983366312803327111563099278469604790726046709409545155584205921440338499581147632617592010183274694116839668963465637921383867254763968328708342387936906820145113965888871415543349575067660850664680460662411914971648802565702199745302027265177671324431505066207091312722598743142802075173978180729871137686493336850907540496036358048399890260396815265910520278224945182949097817438987850127491672764323723431033825772653226545324570191376090949555548276867841018987171734166862492249370758812113556284535887301070220308200610017975741747821766682596645160754345738338821803658097159954993372135037731078298331446558698182343799586997031465387481259351538616667687606259653611452955408685082390179364909187529451600784101407571185543693091863023873433507923844558464563712230367042880415973985857324148725618861207173760857253288905539442821513299592997567170068894157754859715608751706351430910393059885449886862260317827825735782637450438129473184641833300764973134993242714531799237453240642327570133671000446977317937311117546981102810809950888546809200157542446768200000377607352958351197158205191777048579001573215597882726172441011869640261006504630307930616920478594995957855548964237062706750040274294909285110063820448040167259104050767718570333449006951578362713841785702416921605967209938530920058651333389068287375312333358942694139728724602510716451654017804953236293124525617149783285858126092783814631219108279586230752941134808042983745182605119778756206844428930938422309650261895600486415157331955645765629475943200552524472334189850151036633402838763457445555792059464782969583339078692731074111083749233561032299778787380763445556579442442340593677878088051367304645423728985584076661749353099442116771347318317729713958170706391002871166370226465048043517363099973536996543359711980181433097357963364082008424717194333338725366158573729465439393735770587411155257099843036921940683673077643247003738569207833266270389532033039118662466984374333810445756308181220300900236515171999451960107767254779312305404022809170588124833286129246106498134496659330643007624832683391821257102873977207202286411502558724493044445648774955938245121419182342911889593853381736913411352717188236228684181987727199908378672667553609855283372869328837421290889892636161014031070032309124506281503615329893314466988871921715625538734889384393837238134116067532798327412669826198565269559053771800749990640633556569113165719933469197226432978393131259571710757557251232674485699825540800615864971878693580233739550551326672578839370432693110782411340581778460568129228902464680434773040280427938772888142142218442819710948733522807044827351850088861980612040299938178930468273332455001274130257279642813898689645072337627281819182373537488074358945754863508377082114791542361548153686324692848548655942793686381529431240060275861442491007156929993788273326462611496696545323440774438504526125555237007190568592596479867140728033686458521929345432546822998245032933685164804677202217645102984818220674730180971719078996922590963387074493874483011429491929802104296424797334230964832477576768900779657906597100106814160230696095701202161793966282618493101271479467874486576681903151299899008962525945255477363197156043831945302001972808964981663517079463681008429950394586370065065240913530777022765374458356680532054854188396540252831263860471649130554776222326813712696019954392135889727443883682895886760419640486985628266542749530590793636962799274807896645575259946497030115740267882842917808171140390891735276189458586078667900052020221017252874661534995003807982895026372118789360282325683143420434331423206826432879277081479537071072070367625456264099643235655033463698933119843348461820177916621397711501175746116724914648992832937542939927939461772829603384270424526121238414888134154311669437315333597441050937341788512098755149702199985122452595583402423219786328876422194615181445971466508884766702463966377565776851876792102652890544274636083648837936237213611242143080717138937572870667588332119188700362846801961447532744783310260778395655736760953067353081219869709325920983153449004912802385492494610950579098392873119014540512688969384787935136172842398895917292382405409333813242214230058054118917911515564103184869018682006981753511745947335340739729468582433237958318652922972059971804741489269087852529570544901436901187651937215210500770886790015312381733010994456142688555639864250138043520554031671513879153696364352647597582776372642380229268247089062480931897534073142333168124934090575720956367512267835802486170483248402486712809580593426338802905373107738751172945804378200246166157572915422587126556465666879578571621415046380106926393997014081723061971144706425567636965665877857385753950282432616666430336206889691397807101866982349734913410583103377477809112776211210175744168068550111993970234483441807136503321867841697639780633926933202563129718581881045648965127225565995279859355725104589822284056410678486329700463290708626104545403699990514387645715293525786262917775640343788540732523602149960175602843767139445581443339554628705554441818929084930889001467948139702857216451726530802915775511724683519184005409261024336549225777339892180030958484398289514308892723777760357928588808429175274282448747176154592888242360736378237568215176669078631079719176028525495566555239351981754896090481110115178279657796170593570221751501468750311230709136093983451448477396115269060036118488066216089467557669662206015944744661867824356626537664230662040054387383983860163847153905881505434018481012768592464128195754037654595666750608147517760465167702712519313385037236891388271077556116939422364320699305530612719573700641159607124117603471541090409296495766896807249369045759422074014719599436465758920306486829629669632341954991080314733576494239249745235566693533533469326974015746394584004488017287380999798541188003353163031176513300853591318761931590227156411157848738616449337339828242546752515028276468997586674740366884304335921075926498175788802297124216476304777885844600434348242465499424230820552509326215899034779475159525117229161951901154136775471276981348591494276409856839486412049985846123078514525703320762855378921759380675160243894074611183091121672764198913788242633024155490457630082123416166695642289537195882930926238184076055715845781986044186615704687454302068468281584672578684653070850669479264831813576059426409156251269193662632454142446148463864180149110042716786114462094422373878519495692116470436113589972144076757957962415520370620454175553154352126773723014434431785431371459970507401194344278387741059549688586667850483796514301743437659921162303812293236013286830818102302926018788241285034093729422469100751608575845513560508543129494719341638250192737336494993798667183566831060850860699912260578999273807856396741794167608363223065212782341499132039053924400354843347882698125150460772348008051676677684697883150022486412167319753750685059173889679360231282046709328437436217699292094273459139842718199465534897240414019482509070256547516092840347920405971783507812778410899432239920971734174500068371388821068689981963901948966085832112819962492706546308876960768183473931302074143693363305374639553852709289620076043909549660394692067017794616926737343687280209261117471133154748575670612301359529983823025512163219638738137310806219652724333191520724121539525501766671914741753669229089620873973908820794111291412343484526298563833054647375439314531842898278551025339794537023280716258513984079182288006028784296048603929792202529639275965466761118103196791552143781874436981880183569170896913304721577633537619563660741035424963053605328400702546410117050893883847708040970230404137272442955542345940223855843836180544975541764971016832805050328714197106009631316735976736400530075969955192658920494997542460593165465790328652739214189193658655368924471216094420897923302306359365013061992742032713042418374722690706751670078444614501833302523693671419955969574681348270492363922471515768570014797581662784107204484946291731352641747466183001857196885914079510592040798817402348728183666428043625888798187714062461124903552433565412869886403496839542400798002621512061297297089844777842612519107042127906147070392749537451922675061640549847121482507945540706359961779829559533565348294091385325023410688066243683273480820895796689884096564930604643797981970854819960573043197551590394786664173559796597924217427034873290747590150972459591798522016269552317869278239217173911531765205769819382163384371973340926130910797696175906821718349065088714247488749801494570861332708443604352750967540408137341678422324459151484823726872549383054277944162256654685756478093376941893197195692639194212925975746931965025405756110535333544195326348670419075788029928636380529455543897266120556726854957439545742711121995334082190842973984725114904733527483835667411506346680343887292424119608461262555279264639201094872001767891192515758571563863631006614819610809103294058199290232857069383325871830852298759485425462984189863900817167052049602822067997510087875681653001572578916324989909089985969764426538074022999934679281538537641568510632525756307261498073454291966849713646100504878337666868947682684155338901735443341354225823468873220245967825009998761564494093073649521763932809301267736941884382415287064489419047981770608337440690899925249687204361737065609457593035761056516431172041916398940732205787097500142335008998633041586061773850245208979406108263166763819891151706711133360007333042544957859584925042043276826131466863233092412414222572422510763732332339091957983184783880690697576019543237917897685314292222263331531951934425157476470042768987707395443234115890371481529904962215334803942183936986589325689788972433025494383269637245633193089492296521684979179887500741138708275056256534668500643459161864572446777728298178520358620372567318656504277671610693067047935557866715912020808253267919970561617693723406867533130065047970771131172482925762583565832412727630661911682093513563876808451154541018957342608104282124732204775764762992357937748625143656276459930302625094816038454173992424825590821238324809912055044843306268161365244643820168648104722337471553220767945019745035950654681500360467571696844813418030451011350088537797307354097873847889779369050473759443048079963118197200896288239874650583762728557918084598826480392442821463227127019626085251781993962564456385986340106398326946337903477787165739774498138916988130042748210699253967767691227942576727474869740673661806042626902021852906547139917867751647266710539405970779619608464836756607021200110005815564363940995636865094765533916584805960333396629402036282046798774901609884881363376064578195000000926919824388990506009540576993712093108957997107065449010170394281997246949500879041389252973758837866755353257314943258791837064896505983487879475773260757474026582562469091224745359227939990764048216868950734981156214506879822584967021966836249150257947652434327151160217043658264673817481145311192826180786916128882870972372361389644578709847486563185081969564106551310688806787730125538412599206739759675913796636772297365863568419233813505090354450430805302541160002456478905190312852030497652254588573272124974742926461647913668266801211950040763607743297246275281689758221487670888778037796720536203592487426755854035468129568457787691305327553162827403007457485043393378374721223192319389796989758043714724362592758405829387592856781392200122242204634981784437568027455142088649033009780222131551680011131845795609173248740746883737442379220921074835837832162117390428194814025076808275932089928265410128749099445254951032555982395464393140018716488529002698150160770748914788912915227532855778586941654040910731184697668945049873843103278835796197322678244943137242141592549036805125657780872359216966957905306860366839927834350473466322456916365910905175694459764420752742415730420861842024301317547212972947817522791470390355939551682313781380741012600417301925057912938647649881368294524056717428119755453183246428775635278067359648583186506389420574612012134479233600965793092879301002527239526876674410747094538825210370913004080921409735921826672135931791192609361078779757100816059471800836998463378433292433628512503018384113334015762171551586374071863969529022403550681634771697176427032835751210387759102321308012034931840114315974209074999084705902964861075097393843676572134961369404432232130440709017784237626978115763018149722791766722779111743281863796298457136858567880462296623240262942018530569470264373762907856102517199777677301590943901236894743695830041785971193317430451494178181107881755867241287808508760946776285126330802569009983858202511533933564418500925002271504780109563154082526684871174517699974879967949126215049854878390280199383135426477672086165154228824658488852175313128751522954445345042323359918547532580670984824999156352145433612557950511503052543081161621034412121546887303890473231785988722461952848180206665657045084948660677458500907953898804804843636191086458307799682651608485527553198272150786190932985003036033644720385566289613858767352566001646579828943321205419646392548759695162675402793412589027427024830111477137546575236317904021990342417849301842168736560212170201212558140137030850470132911676987903408126722356072314832076018654765526223006488104831818759731505999155239675207057764259015870959453261507203679509045298481410780683389368277171577600613748678881543316615314287515044421037071307163789227833339494971891811039516806617979589832567454528739697220785970499134904720393512146682061298353435026079485630500166878270096844665637262271825241397532132663054291630618787030618806124152443383512317645942033615914774157072687182099777998889504335895241031394922109817875197283743510241707672729420220537814828446767857403939546101217868302249058904166044809765096990774752625269417608736800967220670166796903672704952954782664542127379506986388489531419417181855575005978226528743347106839620555435162777634802480540151110679870725339087586549110665316420381705989946647027580632980574814421615202202115222085021038894315459330955723812014272419734954043561145728511198292585282318595905582113553514907816492995968010298087950026882075513416105916191229869001289032790130600210014923787705316962593523220814044339248145129965940844361423027946547542975051632878397066323964502172256779554927197150837065807726921867737948592404801912243803366060641471595533971404019073700346830558789330456108891303113634058537321007959510922375715420410058616177726254617270220757922866283549609045852257565847645383405160757903571910645113470483690751541147907912478889992159088523863754380333340805244112730315779550630906066262683899635301401493418049300209103025897619870044752415835819556141519049558480809247721248215405465104946227974913639746612567860616105682411623333483672979124292529119133225601254291382564007578953146913615482765788539327302612238783200209372158791267694656339767763928934374627430502848494237951037339608126417398190964374784335927587174497825210022535744944221896165065063561055185452198808895245531022976432966274867057169689508547298386047406283195582530042825399832924124089717474733998043229849150685491421642913120536808050207602074129695221078833779291310767855995439235911722039228096929475501094998998323105709475770844827284009871148343168706417884848746378439293282025374061608018100048115086219000301994282839345199011638833975297832001011129285980791073063954836997306858469935437440944512851277864999268330578450662639820831717738438615694985397340147451599151197811028553229498523604233865007929090413272493436163008715197286777281679868585073512286558251148439122115938970634133671955180863873829534867807687716905071747654155125460704172562106633257610900741148644618479204298947939050538275370589325284024070624616201108041450839482603541396428541152523034718034832335378905678690607935149337653650770676322370902378579736282647871558960002555207357343755194735046735834503850638432301434639800235938451777708540025532054546175484319531455781670823322657364106588033933691221099805607907628552378468194591179183194212036920501815601267484352742358979690899098756734944068759802894888587415644555869136401794368442144353616251575198903708691088170816841712770398636216120281287431053155880458241608314418876953968226043996293833678123492982688906150094972583249543693108410158250032545733322728310444514255168782607136685356068622993918366521356774444784796927912412149505124157045288034766398863729965740599509491910658647990790240584715391524850864016399989852605729299894312251667028877994371638986796813117317687568182819249281508555503605382136022661692845564231325961591930546175880675819210761579208295557524480321397703480831813510784631474867907571484374526436558144876628398301582207558570035226369807731342300069820894936878950871600536053773008479571962968815022862663195067857595889099599047435043080329239454876407544451470675716900267554047001097819433553580738300009474028146284240716172937272095728712356217034410821784154309897041726888437738588737281533554597646554088420634319476793436319394591798932341751562790542547834351256325733637243643848594422688471774399483442878923911550750958533016515941502738572442724216154222521109014367337511763342009913234423023504121241388550545087948459774592852426066526930533127913359733467692840358384889592264617537664593366390362715975975714695965325723481775827178583007654042900497477664201884478641660483474509137169828847156793156883717406602499900500069759378027338981744110170521866199582250879582433356472537886973756688210096947167968192120875233613254671270581793025444073936633332346458324865411017383248486956047217481552888810605705928331636662389109367793759705401735386132345470102225269824434669925486587267476152786812301346484630810738866876539155112719100027117662356887381521798219484911522266746752722849601353509277921463111313537496876776056196373741660915225658075805586433137143552598159868617450457008527838925422142222759336346648921256110587468287997070448582447936001741753592766140441162842526554625491912954871964277531502143867696596318644899069368506357165284745046268663567904890479624901714242237842536954254803689463159090897058529717377160668860181517374240238441061880353725486187692666255562191181284919556115073697273014331389938300961398708779210261893275952485781001351759370390168133580493905027490490638609107300257209710626097630170209539339770829245630618042098592419804036664678978993927426496553580690444141254688056908553838348437743863867296013498991058960701998724953570927787604967047898307733014233647028341297392031665093299135427413659517512823220135238671789886611866784692352047656902159557793098078275825900084918188262548572841238013536766146054016770808652710297220258537482745058151609415921268891801464996724983309481895048619487996533410991786575272264393376753498728850268835897092896431719736398084307288783731614797110698295142380481364823748117405571251006730513233471256797694350271393278141677107999568767605443814492004601159389267025168532964290942648065416769834644703240333433937133905470374060297473634121612761652060781687154005440696267068108817938346418731214067225541338784140985989444337529613616674288485621024616478497026792453252162763672916598125908529782670010435327652099654573632544326110062543303116592805420428679890838679529445804108594080574220717330728337375294322275350655446240937131380382476069185752315782528572111717946901523029917405074066619164412186375753398350938083567212698598678843338827693641544061617353179688434361952914251425815795732517891281582759966362869388053243554807215937734963309855346444053861109005142861165488823952307864547447100848139188097887535318158405646240096817102494386948156538551420816292403452998489141290280989257810731728811563375059728023149571213148412843931202724382200176230992349909391343979494871257254446810069380871102207711209980449877908004446712125291101561322066374491876708614068552184405929185959337407392183080661072705026922576179032938813172816358065693521348745143396202547792006571318562851793722838378834725222644617110950638645188822041083473785297177136370090150810764605442740181877271658314594474709771605016552721005122110614243625114151603282142589963898731372296237756259669812008888081220425653509166335966117474358872204968618318744293758994630835053382130292688146049150411288851103920418278402523575209984353819464579444544101269794929118761303387114115181427779977438027475202295149079106246331035934410678812738566617530413528891615002408660268224562569768332530777345715000784732107104912306145654162713343921090944632239840727253934297519729979669375487112755385092729560601172847683651369522433355840924155196280592243508195211766422253941696013284029422571065475115513844514771201273190366631279240906228995395642527130201039844345265487344947290684650148691951282067171240218221524150431152768437292109042657841693951005223932310772153005677506231964577836497420013021618007064368498575436337553780501635427313552827274964103213087927112932129747828429666733138733754732229976652136232474640064665846477556408484605105005603943584690590701024302802721621331036602597550836285760887567910247497125037000492751924640160081756000296487827965935966362703113181885981021289868213042514543504537538514041575509179503406746263835808383224910854268531499687604470660263673464845380489687627896334780433412936826885653187179930041576423690288744604405049485690751185684617648788318689929367380036194434648793798094241374633767401975797067504246442294964156344368119665528488958498411188259608528045417067078181553407798510891672453669860333569195109970723092509796322958280978271052955858979899832301102839972309704290679968016385725378067649586155743912617425598566802376725548342744759555865671695231054371794741973010734802486245601634402394809433664881944618085502161545005013309754025770864629620453969789789973835928810610060938140993286469808207269399233540159818390957348601640296877827938439435135452976929912081358880469327870864349201032797893400252922766761127762373143080753989954538214747906328405791300650061586344144881801523021148004702877960066550431182877564829043984679826772472272072958131467054114026809080127842989329875584671236674601697757629730521386860603726304604280055315485139024392315909979902316608130355659003317547194562655023615768891853359657817251099737758062514130195431735248371835456288626244340088529369050215184072586439297900710170517587351456208120301850405626612394773108560101970518457973332604958842345208670895486265434146942591748784356791870504075826616816583907344488997480008479366935778098341577702095170619653005856309667085281744299785671620177709790767334619861553091716131905880139374514374420564658634437754716486962501298401295548507345923421754300016750424386277024694996017849398551768965278304166444694561834357925694999206957328832264264666043042168219336289636492492474358120896517134334592907852246827031802773365047297100331668069852547352253506319823350933670496976729017580790861657535258309769779580401809044013894028031500174037222093529410392128487766817335082080010221463966224461570719996228091197391451920370453124568853078434141086981676501784189589405002824238691915473693402496928390871080925172089487926995282719598747134182854350593467032160082116629434991867359238006491661083122062832193064053558743014576735061640413023874681168574912034726759354704488626515816833626005879287652619059541183261611012857316168982180266703127098212810693375201624804735889173944307723484297832287788040191608486712659285469899865126494519306503663366123440521546723552481824832749548679537958673227211689479243336643555210625548889780600522583397415966439112094476593481401438456803120246827186665798934275159483844271307516381194981966171836888176333928702874785877579038793220054189359906442450780133270996188899254522345835758336475677680387488560271352489285413469420820965785956025385324537899429146385390585231148410042351104467273264614657692704959016820426541856557435103485579618851060870967290741786799850889013466731481515092857119722344124251624107006409492539016567060378544482574910483685555946720683113284149651982971375853644314260007987295433441739995457938143826727996557039459481654324907059464564929463664091187539403762135880280444479015535588711079825286391493015054988823901576850432467877292335265494617888517402243981283823049545925814292484454580046774369060599558787162357231228302983964857757352180007634556186040649450316548266732359493696669581607171035937534014715985748258151899552808296299286633137067301860205275106922839701590503479400249089314960103926336696466485341933490435252857446753249151165028469223276866024017376796555726816085595549026438378154888324382315641456045665821209725289110234151372961637185885112519046549032849109325386232617857690934727107537132244346331340119792433676831622431701465647245215103673040192283206457237557100067226272201540319017830797365704975648090308371441219383466347579691129803137632146688802553749131328733587048499888583906943030278605914992505872958028588631673896868631444153636395888864267230434078613440452923130859088620971188386622586547360200601664388226474263026857073843693855822697299309592549632873415405873104450021627774143167266007403098342403479916229535376315023950918121128442745879696613173135132766716160257710174020192010224440163426392651163811563711922392041224828269653261788545654345935978888142198596561610295356460379125333288950127964427987368049722946508805187883753731526581064482214088645056085674588818050962413961050923704916253805203490267252099680180692553114295102151210363476245844971214580157516862587460256358205276960321005547717812803411676857758045128794627559068929406528628031814556423039142306959281253003073349403762311682386660134152568634666650295139213295913869549980522120662010933680812131173319510159282612676487504837876735756165715401382498774748741702312827215215863113119333964368057628224054776709212623874947081869911350972241751357323929303214737640305904026971421429299857156069218155360348274410121669377778449399467961378552229263641922371250663056265587289465316078785340389635076374571551779297400996110706282106243074875827758445082685964102668101077153789281533521349603458284857539843041160589753623050632223152063188565513578198328169160024987691230556330455492708262401611634521090668089844114434400356644263094114413184801078457289917048693942593628591051960965699998450472437104040633219178792442560254652872947437858040086398783609603146647167332661171188748540450859605761589555943787282662833900715058439910673104815352460263117938690143230553586415641528353601373466990089193952086139974864047960642501031709886547817394591196164100022071753668118410452224508590723972900953924749341311934660477490443560900063845417137557013301857592643207874072950134271974124023452278459443861414593781153231182277600455156680646996280814404203523011399281545218260003845493292609741043936700911104999065532201835077538174421023362231200459913882481764836385492178428961952781250562370803553004124416651366861303450147544211399459719669462007340907615480125911910930852345943191866753569854206975768369539706279570389901126424576087424084865702265690450708771118592775408389527863481317847824911713391708383480353418571535155568817336137348735652733700532849412954871375719270928984554991720810831541131207903651600385635778778882106406749140447224610037216699654087294372088100922428776017155554492853585171118635849517946039654913243882242805282184715553174173670579869459755793796994030769030809787600551605616761528671558426642885039337159398419180175176992242734049684702493531304378449680802078519865868543866013193439204996037843241972692656875659365735728065042470789051906331389395288369209485926277927718451669050796363035583686522131053124819402319046141046127897019876926633193716987232374184478663909873292764053116450775882551968071603599556284380868295629221217037376989312963563681783043159852726070409647491941477190382570474161027582604875909555846122279944139438341625597620938641529771833273113872119139837549029236513521863103571215594342890411409036124403765866679215357726574432789005655983162254791618074414155049204240742558571718601810251957431243272327896046633468462060040996592050752300497685295700107457724514813997779530133519047701765432638781626704431152060122404715932183730932482651463445497568101739573822715824252069055470301772581223797473442823124702343018551274719609059299710546592657007138597616157888711579925050007499070253674930912431267823632014631328445964702916795535975786038274176845486401267921690763388609193894647580930523803186877609051949640147086707281699928756758476368684766498461690190101558170033512350573362134113329119459932299406651998456125362252937708696195347412331541057227004201170115959297707910975571936548231102649240429785346052447803873536176620677852454302272420633124400863116035868621377042790487538934588081603776834324332256040802803304866126496559621622588389483618118453741460861165171489293064869709925804323675193132207888484285540843245830220922891652943656819089019855740970588578047642677378072038639748492424372259055994171861418678152828371625617471415771581846404077870191112440285287641442524020487042771935438360344999411686603277972796664839028003930670151226991055756689070865765793859416268955210702459582542276724576860885713563742332441552079835527944425437814140757066113852320296332252974324656721017743076782836973222561011162583608967573301733499356813219669104236560177391271836132441183023302691691871324740089616912133309061803473222971787444794533630689931124867949652760567491786776727723643647384746455251070072099199533415990434460133167042719784574202266271512641552078995446588133276758520349850138247240589118798040791254642554877342997666224184123506692796016999900621495960765247691708103323280357217007268266871639598103854248831844605688654649975792209444403014724760658648385799685023032661124734774354832196094076513943960745913079827472554823041706821283848408587268869547681047003106204551324423604717418331310672011523033817034250356806614133711164847589172774817932588800443469730129762831050773308113319649495442045662885928350610084482317782650125669238563057670180882732756543316470880240848831385323595850199450385868899253560467594983683505206315264727261129349979639871426356635626396417882890180962512782170152622783606154249375919925895432585942626250038954744924347748713474445247167151127402025312400805513741907282533974335530656166189091964431848537804064610843161754692768838095935202606781988481566624779112366632348510564716900434264089209428322016980956808951919259307304568725282686637831233966522910565297530542284332561398463601975174585086328065721351839262982653533922244520392562219320890890955734002196249791821292778094979294247293559937675654340822270912220696524448019444773562034646965631579955387509496027139320090528466335436700288361645720996415305856164160134202836971715704901525823590115537428264216656782552823361292406725115246427580614077865888452651921186454641946043153063175299579664542745335278704522409659562121330680062711165275806405760390148874698630492309495781501163679239892841973601527425292154098923341834648213757726532850732917172123529875748616426470855634731459658359738619144770932626637672117150430308513609819689995992131865023333581269673331636318668531633595904235575292905006749488794749808768366782640730053744024150423896133555947746891969409883995089222949934580628424215636886462514759982266534833104455436605202152821898107988445271932205894926464420816367459925074261359287214190417027341375873890713273953314413241018854695385935146511753113040039312851557007764208498531265662594862818362838481655489797641598037654835685287625847901962991137469924415605511894160311154780971467410281301086282392759052747221451317895382585053355768699307640562184963658869322391108520225840309360789830461428916226045335454641542494597254595387280079811351997342428663523149531088822425195799146430448018959419764495270675797513389900565056697866633459031354093978181651270510095122427306235789375410130039722375084309732239579976667939460467797038537088841799221782873430387584940101389607780295174001608350783135723196021825652037156328890482799278934497115641724080613363990351991700848524396297140106011543638734717500601672117846589061393102814829401051130654521951220494780355147493446665433705044121377099432969357969787794674654047952495083967067801029438812562751202231943538969538699699621576991571243077901547694497296391807935768764602005846521809282052452724525701265013264279862505742555793684444243338086334584644535906433992839472205058776336586346611988108028548422504932364624996160615125331669828146711285981752461343281978618373730097553388014760309277670470502693869025557383543206494407954590723399899990856479704706749693052527042516847642648170988724108960257498854780440291100006967296383956684241364611666574397320294335984843560159161723942962545697398612717476251019283798438065262526397339670770025733614904462440928384308076941135958861558719590740684385608512909820642754064684248729352915162896780298558815112800891037313493936480700016420819702445034959336208026414394652488248216672421346611503725789751090183171152986343286690805462425978808074492297979106032120824207664909484399462776974852037979815149659870814336564807102830528723422121321330041776878500340675946531366390583380377808646758540643660790927443418120235111950754020456881288675143485573796133467616438025602785798861118963229770898345059503560216493516005544172510044310785492462385374071770503768048157466443006224228992808355295266169692797414333746476895577568528216786957867557551206412133926064471391999586432708090830080390528410889508818169217489355640984002952417316222108238858796945041363472584637513491898042438498548336921496809471948615081625718820900552704871893876670042024913116615345645250883946598954600782081510349141637819198927048427449656149094075479221051187051728781049235475358987540754378684234396947144610310390727177239976268104733626284260279122260781319883247492434401802328306670539713310834511442917440832732203322680510905534935511447497865459607140021444068728192547696575712519656874297913115063596818865257354627663872823030583328268205583567445024113716315174525836345571872132133889564724766572177821442998242951166265795200359776417370459712486879175474326185458622105824108509762215321827756550367306518281439166168133634861849259666853518587263161245973688014714397389254206796770542611791721888354882943863233773604859789078180988746217821140006925959405607999065137868242500644701067387960875665539262770350573378091450185135864230896438632649440260732068850556446274695134931562760585871883739246795114061401819573015764965205933759706860576655688598445286321049728722668307517190101485921046930832389782820867562031525617314591069227023380180761071812214954390358205459248403347803018966375657203408222063622551097913359501010988614160957801099599595619457084166410269107999619127663560117681133106727556949109045906225464014595922402328952870889632817017543813747803320245640202170697819141193331702501869732027631273701869894438072904877391320232768304676819811785645839466245155065105558740480398657113952411047314649522796728267445032605123361566042281211131309713088301049062179724135366972933029614951189622715626548854945804587210275147868981814467760497745412091347479103227333369608115216393230498586726907817574836315457285578538798958626828334691279780997423933120567700849495899599181494084840725051302669666676265007979708965783154116113376138725282800146845015527500914892578510290192201061533404898030188139587786295779221410941701817850324999597168618454515695499121579302080221261532224333698372914488036793353617352263119877721836671470150856886159859480600401888315326654456960677334074173034229671169390917077973128075889594585644184116691114846783346765430575272449918444744060111094816617578623831543739497068179688174665700688222585644604044394980594780662870645881280740503500790322544337100651652098191705534835811028356730306140954163371997280617709381058223062054093603809228844406425957318834820888343222505588777810790636881314450379619194432182251574670425426860561658922577015092573423097928388244281417926735262933592559249923731866556357446669568767485539893598685998697222974874721901312289114933154617559381784282796548467529929063755347154689648260984884461769176705708553020815267473027113015241606863480790554670995301481269564856816216753837676550699610227079594600447106310623493268466890678018413094442367233246901973874906076376595097554326179250800231714756494413345952895893961605877627397710875891672227570543124950749439108732242949899491989792471520818850727594038312242924458447263116696541297523145068323271120788605168533465829044621121667855398767913060708056174784721922806401422370902518002013284938910289896136558972819895215986415744773086048453179592016218782959999913509884363375763515480377606940889448011223625902987507519371924218389877355391460375533742553336494878283710921197117234242142046643529710666759867647974102472251465503772792787316534300041735081714987980026578195934299901283275436604681256257018600249479762853910359632212713102131416736012717576437867756716752319464703505361130866455358063410034864205562180371859854337193175753988324182669808461817011635314113894914219036164713709443173189949370438090252667272788618756916138640568637888157122524147912476697286356895016832470528796381583586982000924838146946407549970859309013872633929438679042604479874614636700865849356751293368636769035674575131118103537161909078507944327785343139157094000768977211958023033567213926652220991545631996051439964471472804411047122970943870791670143202044018278294817105442568150714776745337171488670989579056351006785101702833805101164780196223970715251416393133448411396316558683799806489546114200444004003798489157956227485868511264948272556211661144057577171686751539540094695666518307622295497960856457578970561243890733558278558668755689758712133398560022507632811279077234353108430902238161902332655337857591083509179789748528957527033806556368443965008811229524981787656083007080784694973642613657082495479927631153322052843525406940703878332308124595940401411098643866697332795386782184902601788903480172178765296818844651114115681736924589069391574685011182566310029282430629347502718270077789363656228391210626581571943767105955809205027419943234034318826617777191779187673393445882822380199953239185111486511563040992925734986884917941577349054441277219817327506916839830675474784209914592648797410490627290565461133668585612253290774939031420241885264436662734907176191728602952799357309133109014744538608979465098122480264339052727614834211784020261058962804099103016415504018150052240751315579264237027564562153240539711305712740230069316483280119177252738125201042546058316920893861183530217683417326412074835009084839970240797081086250808228625199343202080662363880674733360600525973149671579975870097208865722602238380849026115445451423690338886053640740008325483580820648443455702322743839566587449753617610827129139478139835495307644083137750041937047354536019557621832587821000037967009341245636049626697474000536615639562927469597758940638872757191896664603891974586513489828886254755370650611617168026203614074552219878453673939521603538118320441298169533450677182865474332180887075427791598370521348726237364354858031843026859383516066030857220313108994278175785051422127638677991724050629872633911948723124429580462303065258638815421384059605572031679542179648415052470909729685120338767840114975661808494647758168633630807119452610046903607509267466844960340176931459622843166936680679813704929252855720090045053182515911691383777378852108356671217621914958181602635576797058042075533724614371487030643605315173476238041150351240654466244076849218568519091511625275012157165490698559331199168352103075619007141207036119340942843125694342878297319709165782149323864097431012924174639855917701179099807400296625315181214249297646483385508288779800330157710143803376606763453328141132752942891808040519696488303446856655890309593104186057292419309734986122964859865273199420254984990484778920059700453019030814868504318072951090671406979068290669439349607624369979986014718682549397174018666575619256968352123506220947905048974581279326091728262085107803903766120839882697318789262079283273702676055738642571358461214055500446025371980712640438624352534112015134112430647201024820209643387176965755773525364168733827391735264761362341247188376037541473945798414365638415069102954066718669516228295084871737267180720619350804478238044129925515221919430456560186707520702345274515937545573878836440166803929618378196079194117579150119388071404128308959261990623408265090613035751695628988488900674123246077091674893533363023059568993664261150267244089638681121925886182826683437698188074901317979956907227918685790522533242447614048237297322003502956575269872958033498413112416834789634255623117394437585412216924038976840071683031052183860566530108461451526399697349328541961933919730410800372541374770095693584248062211214346881538556420563852286145293300692328419276400505740768394721719955881532897361997989138416576808541117815488892282349573542306507557919556874665139059938983392198048566132391163074464194202647152029410547717663701406284253642480037652258929142013684928742559665473803113856959593149607335630019764407560459839996786900954877247814257213591789270017840579874316883360473319113086007449252818472075294955915760321862168714177745456436185785340446936331736815589205262270751125187451971483767838070195003014662607292511438273809501569139103486149863393377787114466750370924703347806449824107430280303522738033801506867856371299841698814104477229050258873188173699286303786670076819725506570952970345810438456002993074362595763537488511536236430273013823102658425314300930619369844865744219548048882856146162291211579600520821128550255734255354040865756714714574302607945709090621751232874648470734403264157837780753110162406065619744177230934087165207319675614329758155687906134972381651850796418264140146789413857560097592606001526971781761756626336537050513096659884219918459005048162148371775073810789739146477829602661635538400268652841891524933504120000433152646030182866884498037038609111900178963432000738365688930870434728014050586787232032268224728925279478118107760153364223192312870582217677553334201945193913348232295067128769640864881327423218051662966798318306427998374133805785377881360671202891580236863709092815670062479660216803841936884078005539914270550794665135621169328409379414206531871707619229012644335313156540268046792722303017064070543635982868917289073613265007559048443774037875778365703939671006004920518323551687586446060979233015154474099478451315901757522207400830283244263193468023954088169827573226725783469761143360514937792433448251620697281774354944704720373553199427583728204062214525204816803092303667995007805370957339529249651137522372749545916501207487495848633703688092882841366048576363931301190473399400283405926263679036119300766079279983884891636355342095372324822266073254594885842007430794613516507366789418025245505623315104795370932554450175291449141654532454490505199415094425523748693284156776774751576930043221321988547941657318262013907455989039981027569059853282597675341899321320091105697334895997158824090135738240572671868841098594070266381699118372988244136693147639195048651787839016965810591633754859065281857473512679209860590803009905071481894736742939033915438791555108895733442776217405758733793739125067617688897478449759120709773724612004395263451076780336059546929293146076599645211707143395308143573106673235466895347633516006656762693795534000716857964484343226564814985656984037365177758333445706702639270312245769440822538208491879177380279517066380364543951473918797660686598593310182663862850992889959245232460751226922769767711388219811692642650872871554529138993881869214320472861005368430035969019131767315776992629423825529983379034448373509855415627171709758620430094740207581213823302598337773551947007845929786979022172411436410984933038735854194169661117921666659116231918582960391773879768375074576851863894211621083359445364380727635645624601265845846746707592170809382304594200282957475508554899842738497196337910939231119070933662054576358204747627370003693169608481915796083167585614696951731254446955384231024278765831726122429713326463878092071095353288046679129103855361801064451212955261938558208020578474579086634281370467688288796448715374721315248302769549284135503927459407093814676630793377708822354285607000955092495116633288189679886296376429777970023265639567209668182599004513882941825530025212869699839886395398367354146037456224696603225385405439211565731340973077502566917145851197737820846637900982810817492618973272168536041233531466008033039845800397335622385556714550157135565320549395132760400898433938438168561258915391042810358703846629360631349019923490402292277659423655790976774375201486744316549951258935799831176460504978103745147930909092661519440335769799581963833323388870523054025804244415661918381710639191453025962887014905606054145464657562188851148171746792381582745742953948791059248721685921818352615223781610594389613022980302329414586548822610675228278044777691635117763412031897943284141369336073652944165325827871013043519188766356154262150485360777598135163522420125594379708174190868082598250509310375334682353962383707915728045786675865853892681597842431666260354665979148689692011713440461317745511744062680832097864150882690012367642929639097532771894217804547011241562373304891248877676133305684835525328420211488525235015196062650506458855827510698720729474683197339580125185220956131085929960685720408927498830641656888656159219427754355188907974978829708070721805249853369252693620392171835374008564197498520922456609608198953779275280275707357670095098821261723917661663155970406882452530544112281696926533089654262273973194731383775894898222552890184139269219511421165195696237094762966261710372062209687387297582090344341039603205409069347018647765923409015899119891376379810715308743589751555413079661105640143988554044173520745982565853865897826004304001891636719218500836809073285039597166906478951649732836691782860695285559059945938321627493260369356126927673244349631723157418803690453053749712756837605077960230586059015984860891800875741426190110339783487079018242519210213455152922394425125142851958432273768325273302491172885102207636372361155788788705323139032266029468983876987816821363379486038531756649310055122408229675275113081784551137496323036146331417110887612577511752706263087020126536688460558992546587093606262517281892129117501696282776089757956754166000054698445135008228773971533387326067458135718493232918371630625099990315195438371904885385384023152736538089987705650111535465789947574842124321080939960839809351315387864654283192470045625418209026647467584066320816248554972760727237844688495356652565721078944093661573024015925539882163292368911467608750817441098825020783516226602864453914432433491163262567348196433512146559942386615515896086510133942530966340557028677508956619862722837902179483895525418651107651188851691727307735236377222283924660678001486025446829161312787643507848243382402438231983795631761781223450034603300153341040665005536314340988244551341957757886458772305005804428029992048348240676078826727488656545419815859969414571031570739017209446300200607847322735704110862445629383696517314951321634265377221179463426164050777624491842424511867357523142535316026026794466123104320589236442857939931227947659125336100795424676704180710370860218642304451795349916883956673411923994497962633148545511477422972394434403059066465026864843325148188661585585381969947323309332520529034263213760649582639670928250620105572285352291163888442316007329817012774909867709559480058454619737872706467011874077622473791920885449877080347460908378858397956246769160710450337580332746831073068620726007223034403990324588808273761223963858220068256112602480414528451883974099057006392540516858553360421656297169133314828018826399127398173722175901239197100709204677462419091942669190564201399168027296114026769073862761914369212098217738221048539154216435733523000710420248020087406707344803343950949175661917314532863162899016315716918064533913965745039614093161688022287077938402377519988262398497317359683250969625804862167832501495062719317237638757552182081295266219615474364995014325678656378163425926673239904622995163375023162388799597355642680878750843699392036955394872858053525920173845463536401831789685196323402163087052029641503497950870240087611394730488749048124686673224465819902504231036704609331405493114392157664396745447074614622296995529955413834937491390591016900162271591625308376081530686430842897072832552726135754803088849515173325953089787512127692533009061726816319923278690412085985557737247719140537926902289331684405025682258872016189070207417979917985379954501791778317282219415975127052337072775942536069239333483702633018397992425345241822653063753254642964340159353060693945236724537903482681128579919371295090873311059773832647932601613637228185945754467156915785761359122072250579083087519348544438889474805246976114848123427848089372286264393897061776212306978921103373510940069819012598803957981602773583163048771497959845006852704587163014357618040591285472728277590101405799248224509115568838598081876292568580739853175615560791476055662929951927571953990333672976323392065630353037168405013196016138532820520855292821999525383297605647133246613525364336864599438557641950515511469297981036872132252601834075546836234739015327151835553841694165974464503035005815582158208087813163508639090492968223842780667031276237682496678480554656779508698879984581433186971477138154736069278980136137266268327049849296415610211633833960384023191833057718092260384336217646109510458391240873146552048733999951670492056632884756354056899470055579387042516644388279637726533763163736418746441774061413097374824236639603912297264042251579054099309174034493822351328097276403386226652642168888126658904874442738306269296744906998489211558186141685817343509652200143278055177038298607417593004608469990584872865460223878488509324145481690192851078099182083943205698314711602497057897123169422245367967793590320763148147919145611507138483878513081452494713395661631746310184238644592864404294166020967357301619840527956978092555196623040418351811169498724928324471100866461883056930360406001523266922008192371991837999083215577704928986825475386338597990717450230630512538354630581505197883679713392481963661956203405764794409322038884266034645618960997023108265919805294006287335941559422811969169214149882861620792439760896797462870986093936462217441001059538371228734098865897010158561178463527017966799946801582623451433216772761230030156174955750703049683159501640512039567846728526431498281312759959915234322116067386542152378914014863590692080622870823501252793834416487442649434774647626188196559354165409467329164767302137712738679786330290580687955725777390092519103006868800941208506183228666829603749335808178959961193461623374779903308932130200954876049054847284998682551634027009670682804083251093156091925033407125939466016690839663271746755976421766813889875383314398505732664284426834734293966784025032540960512166983124199942267218134163721424065014592608935419710626596487891729772194902915013249595547541961992406995603292473967541298807839588299944268574198695387457684649286770024745907928103019406597652177155006835952407425225072796004361966418167054952620261923049275123579780663634123691082709947416067338946415832189071487720911304893323611573302464808401451908687736208781709884441564546661583240193896919602703137869351886770039839079716015221515430362655905672305474522186474843088349493641632279345545256202209421438738307542153629586369502774663514893506635695529984731348719492440216941424476215303917236895249198233185458107169795681387883096022891851480957874684704838650427211801105336432155457408780602808953863961870480391828514231293892430160438758675824246794309618510360817012708899119380076105877115841763942039028239779822611127626525894969119494849628508673308678844699937203350761476001864338909608986769740960978529036543113448774077715687940427259508534938023708586407691119411461584139435617448547091836291438731268887081162412115630139112568058903234471160365442163711566280519655806937662995203045661983207653609907986453365996876086935526769633622416613595343188777411011209075899093641434938905773465533702173636723415913477114872010714869264610913477172164184126025546546241707155437522242144328427173525432556595996222207766426293555292173590117296119303678792295427094795072252024922477317087335043940130815469918837002869357689031719522484164143710010655121320983417793031953003652585207676027218264932960954667398690302414408974797839718242794559504739500866954801655573217299699536341029837975616550410573440207678026498085716328869240386910878206337999044780071554491877254656499461559725214925732798160749318836578245790927734020013062792102961167089581274051994370324319072597049837804830466036008804827819578821330033504428604346731983739668005327042898926700099879586941301336675048535799053170448389653607958164997345708476285475036207472118903693428887723392732454076539220828418122510856904191297348920447053128532803303832847238652298007565453113696963608284189024899836388130243266579900088146973575134496266413582068362842132217305403533185409920815698608644065643232285962134370621902497796726401864021596149115085180161421531946847175527266503245869302949875340429678017322458948148149657711287818482798573666560000998070186979049129717639600777548432885853424625080774209176192123845370660145013292841247278566026561022396713943708665109661473165708650877070078315283072362163830231117591888626348694869335481767387059094051235152705545482076544025548282873933105842634126072445848325883993424954421326875952304314046633587589264138268835255213273096505387201509096234669153435699923080480887883677221504034148280370988183922399001113298922543411233463857807612592743024488734738644531637022567400588064517246475807693331954671272173115539571592145136777685274522614760950112527956709445056117732344760316624838456994482628861576809663223003640449803446359802962585821829574704437629233355589131522726835655830175538621208477550967409583821713028315052112707194161562339351662169301298785791433222075012098307678327716397947142075707018464327194707080454958643607557289849752756375574202836351453320444653924445257208177180024785144984685553611660375466121625162008617642043149838390109456210038310996712542250139020191254939300193197459422544438808560986833395761628544041983633106199914697440874118826335395734678580129822641799371293271543753916470573360515667495130534300891450018907382566548918243374499937152390636349263665411420694206651952331436730104074655746940290394294264381320070744441030420448754493026750559212935297935345822659758576653400044485176047327688778990202953976055168078825455094963567297931661887917545529245903073019670738660529582456411527849726064006057402860397415278685462158707256942061240857919643187191446126419408735920012706521715747274266030728949090497227820267883174860648925388321604383389756687663524545606760038319524554677666162737372782009821523243190309616992041281952607834998990333996684263519181010467076893851475015076516581254702438949633502994316459778309928820820161249894369219030681094238624853860436310084749117465302597942201162034349093560723547626866733025214141994481457126254727556279043643635206796903899888677470508088851889690495395643938555833461800406370922633848665678212204548637788763218775773757571625279647032290647178120200339851417951425724512436473243914625390851098725407067850716518550558074672088253262934700573814682309100820838635387271440964467847640000400736460515106053864911886505967810777874087673789357370655972174482740825012686541876293061264808638123036661239268904302963207188541747856184679855596176872049245136207941034276059957099831066533546277327786082506917480146279548140617617529397300758905579195639957216522075550826225990689883431649683198977013872884264744540401437246030746473096365318859768807620100395165778156776327446272192009607026553736763926847995715355111870841215696036225322797127124847030599915719787834531877022938935756432965269839022309870181236709439263455297552180889380502143929855519364934551972311220100697861817235030663081680780866461842917022736692205367144915811302922356223040885290999122879224320490536925457815924686187510778695554609735943034465252684770363980734026717987315544945323149979174514181024708514274428365502148079335744085272273803778237304392341624899489138600744253786756304318791998883938586902936674677660319525368297727499243411842112246508617448096962734384727569214365500643636871112580944690716376128009490620735119418273924362480157540122957785119284995007212879288602728277453330538951795971046433255219993510213658016965843858722790862810454939645288697220030535540039258827664365980440610239995146055343189850189132557680601224096863660347635970394780674154521065849035139646330028860727171100044288349582323908823438763618767717765295736235925969760162730095946677432929318450530240366946720842971600790314885880450799444337400372001586671803124506850242321918980510357706750609689027763161110458191460227963171152780497056020514343752670575004783037315868519372381864733621026308280172782809762118050303807724293026512337084475732594794527082180788585264851825402426601317461889134989159701209567196595886671536327931748877431147985554518776712233576838120861102263132746365403529043275596854993351118309318199242533340951190334208750784745192747567059510243106546623102589135813476596731522073911198535624959288860091114732235748900304410773162607918275361547347036380890457490567741057711569587248995844888852746078999234280554786003073792562073785013562609592790429541614252130812382717952611207734277112364983316880846196468749869020790963593378995346327061889603595991238097453994202699421476236802108641412918361088381774240015013687290497618214188791760700088679049818456604443020402323730127525435202676107726958620663780178886330249399779878239277783489313425546265123715516735409240581073134767889625322837419380640270613263181252160565062730147224138581869268269038712224587547749759461232924423608554722052114612260943063150252808350178123493560792582649228110290704013633172514088896436614784825451657555288891153462905435306288848934416036915269572258546495615992675431270685607337270426664437328420184511206043803044252787890696833363028195911216090696857580980576471802816648545367327009722194997569770340367204378740856214088336311027889527648339240155248829898278356078964858491035650274675693896908577412779857335033540623841849757984795250561105990310492590346261821670119292145999301977012414028709585392724351407006551325981897101954155426723470946621680001665203644464954021001565831594820314734586827671475403424653739256064445577751754221493308774414410444341806144864877587797087502503259335022768538623120838197033963521342720095817390759709506318737515504317923887738066707139012674634090778406857172308768252419416998417207490910963283297319250581114197879800797351661077986495446323279484940177619675717110082977033245192771407283598605488811409912295967048322720183476479904065733005216548342690839026051539358471219047511642911391897664421203634751819611255040615638577208792291038139375067004363725722975989291312554277103049807675969256323752032895885395263114577453444348088572747607261781862785811940795662478109607068704243984909508092100900389824422405885747440015752272077093683526581507230858818042131569352278833916795748474583463008527236530659372590321177087465250100116052642594135335219889597046132057181509954673067136254384224277128610971210893556373185564929980500015361656873233283013475906555737471693098144701214737388365410156454773931072127635755310709016289789163547712650489186194112663912377326481109643649780558762185003704504986191203398690814579217521061070713760591033288229845362127518950605938323049900411556035981620754526931635064065171109053040736839369781300477708113997981756239975591352186418316515301922421451458142937442735633385737667421095109413743513755014747191313824222906009863653017061792098226886609677002493184716940092914026576220590348022191024063636030254725661575441991871732983513330955049659171654061610457795483529352915091632564206437376131498131336129845383447790764151495824236398567283701340661560303423144755704517311243412798888031626934712958369553113554633986104881475014788725992002964814876581787211251603751528059935403393907193319805221254018854994987689790581693573227638113525278006002207989417648525035708978355793863987327453337052713871988232393552253043150274508746284327799233982753768756045760294585781059045696685683364896333787109713692813317524355118256057255202077402061785584477544786010714709696920039313227673134335268939530617893802234247354923037214793667344513826262123622349679995441689137125758155176952956271058498956764740190379980684629421269176771170938475260741050899321359329649744404607792033058398134378584560482302121444653063063824849830826417531928507261105629899689997101678954263662935652641264936063109066953030295014907290846627707754181152349257982200953273077296658757568320049379591523043743642675724559959126104328247909605597009276620783415029198341120253596367995915402865030170682711310980319650447175268333498876069931534126850570365473869123426710396322098023264145304441923333961785008205669248642425047291106638808765432105762763574833029875719628736406421596653018812699164892026954179980395469528149518392423520032715512685103355806613787396299122605525602156863454058914375945256319850982924239322990484724357455428795711439037661029568214241768068262740732767201441319893351271281371190368269591790037762300806709086693579399149849394360580324710083406535373843822505319144472631864504595150381824276992963338420108024024526384232650991968140944044659309795937803396967570641714080625667227801690111934114910966495480496200944940533598894405288329501783170138056742035856824185428537816955155013187117660740102479839206087893440773207322179352257998034613794999255764628189655311843398367070040030211238480635254586780584057973552504784207645109782744022495223565088055299271498335594236730122562753238046663902822981843422623957830971951458986004520007023653260511276377146627899635750327599576379431315607887592986620349685045578460159033336430944955367776324539492257120162870190894837596090158097028373419525444855981378283901875450631080669500833224689796078175118055739626455259468085229387169465189005176745266207365356033120649818120428189408847259807597376741397097600467064288872276859534187397430544851290051863262239059345772205482881167235423195093944134993037531858428432289532980134806910794219484909052189294358657523886589565375539394799339439829116901155744511079038517741686985351265380016994388083832573144544421256804906847593217846637380976808378377230893196393830267218872192756388495795116621501871298738870411119799948705380502251515293322459286037891726783857544142175358118008100959635784113638605764965150379902659335253829944501652192853731832098210834030346032491647143612735377508225372126372977670427159035011929046912955215716415392984251702411869518056929855403860569252813398407344105855226944302460713834563970090052531641730408858031822986165908754144328307533239017537157193000511553588262941973339346408427509892820450972387640908929687901485127478220619289548589214935572786481915825984998404175890895157035983430972971086071927306591653089139766046723850586395351889144240313007041656038021467841147714109254637985269573648987130424568222233308708873741111102141381804202547823628656827449248727542173782917142778308556898352155142087152220415226468550305278665660796947775662505524918388356535235077506161134522137930836027000581762725342607956489270321181608257862012197244423572448026111416429444995456840415017690433108319848319351826001172115299595123898028964146914527760634231071914898304742148224249858756643666995919186690488447666319857874176904457971236801762668215276887394428234774184979640348993242076096677538023580021584676070495336097386537105638616402555509961701463307088629968507352839027207060431167446729143954787660245846029314593769775460866170507674434434203406052849008319391946572552797528982573599396272855781589702838083273335014867806708117116469930275332720880838814576525416624876271766718967155994765917741338409388885097984832295881116658084520911994461982797588999037948078128649121696072261812906416565774113780570433575028324716948356676935955053093717109149315521131760562168744430901922187081616604166800434322450233229887465518571228577014021462042936310292184108474315761470068542217478671816968247959826101378888980096146286278693538731243816257596266571012260962872918428592425870765163899589472727670492306000027254223951265095504013282074650993710359026862497051348735976479325247739278095329548114602289345991117285340924787511696338667972830716553404845156358002964041461667521838830137067672895069485959414745640854074126372200688040713766421631126830865067427325783981502137417144266658315577428026478946001302151201167454824313296429633255303091549810241534758117914638874328724895595530355126174322636701271044037745413122476544562408527706569504404914429377827564242296833016402753771622880658444484819616157688940110848632907347008545159733309195222385369743565294008340573405591096308598209214228821958163848533089638612186097084212627938346630674372767175100963963219843082873127573223671106764493330891737739067629066598000277374941017697270594947427155416723522435726312478781723664796884842293082527622792073860614767070889036194852164526579640742825863859488027772913299899458847824982120128916042316375003895811739334849097606916744659161954033032397846351847881937275290941279434969965778856628273450119648342113944534738186194901841327215806038229307727206038764931894514139256852407298365598000374348619604744313307804030510045371729542836314089350492606581158128784176411860630641652796632728271229581062909134368205890591436903107104162377786134484146442386092751465164859906059711956086983338425652475058867464090239036571202142327812782080773267728291553800662382478794665676611881956946544482998692776813573414141863921375957865130994953859484342763780860322223415922223510524729182288976137894806950759504627493766413721711886589994136046803440182521196355419775751581574675931779065943746899806223111695797357428381758416819393705226662955105060630213913455992763983312470389388160532767612991985468939588767867016832231022648282824106777876635432379705462475338307822645005356540293806594830904925786656922045125824310666038930204951257323557792691263288170595016525836859423489025521843445232613790755155924133469464308871848897524757738582810975380649795097590751026850081503415198924202597388929314133424989328582423199026039720034887283370871435316638454945710021543525026944785630598631200916423410783106403930114262168340671491205400231090012927479326824088715266649482102872637892619198269967432766959787687179578247565959596524438323703052954673549727494758673187995573999455941400908480795231770749637607793708845309497551083332383452003447063633634399982783124837575686525083236452496024375462127542208596068989057026570418161811064771614506822137286744675853698544629813548836343483222360318560455463959324704412478924834164398996592636860139746461804089012656262393859959846577219950763920187437332536584857682197132042833731399182332856394641082157281574717205061131159406355742719159697860870680278371974564998238788319756517726022490198860716918199930973822727502005525595029421755329436614574544801520886666122330598686360472566372939657898841517261331501263020612264719835907362087581889895295996649436645317631823214670086434059514984535405521747672274189099194576564573572692945998998123873838919089209820861322049735387435086929648272463786932693329456648526426159512925106343126532207728835702138183520247926107500363460767193388524651396355605034515954778911092684649485014714612622313917212026197910801929668244344265716117955175923916795031707992785257081411197947506138780324877583370509799486723608104238279516522630443872827709345576682784671628650597121594106862450724709740034913588112936806633653563213462145483993015793556728643455402070953235219812504329656828301452163272568208537439466722240732981277371169236021681967492770117388305262507442917446537637364659583998483645242704580588040195302783780195356872954612041081002698429493109003667819791977083592659371547277835946873626088120452432474637515187614536642782372988322134540992587891197705416584199231028006159294658309448586295677653520050211990028093140241192031659985926661713910336586983788122453458285142575085576914382331095035714992896454046064506393508868563905360762697892240136979681415474717581665908716748586138053177407874452544683857803883612314645489916781771294085812353046608702925111917157291513887752957077729792422053978382874699300856668901680698072059378475595588554665641385721692808903968930783728324835042442529278290232195782485198916534285863447647141796944467239806099179776628168160490504226427865436161507609910067589366749428185531976964514808710067415250272251811582763635426810827168753128739641290261701140281925317418386844998758566067903884772129580361696171145893066770354565968392248858580513446325623094889998315661231252397843150750054213958572374960280319072246144512714698878858783659902016239489183371819859106519030008037617107847953438103779681088970778243171733750756218479104450980774831399907317575519556297226374197236912355645616585059705093671598232156176749685639831801130824277542506904550140453690317205429780303587773442493549259848509381668288983622688041367645250784649386418382316996091924322623830791804599251072232793364249457718111279085867687744033319282197727691105292089130152076295635884894045354418766379325732655348318744560790404654738533483187164727924968834871932801124236121946057747201813551407457207780649807813632722873344961074455992299928667834156960676696454989144158229579196717307411424967670585810182852665373058712188047490914869000725984035772915743638058899511736875033260270902713238217716650212916724834723120947566649072060585356446669507817839605732984245584332693341783956340375515901683194828169092993522076820283853305263525506795727987917233860383080912916969655764232523415192329875737069221397357079168581226342667764468191773818212726888473579093801700540182802498566852334194731587583195363901398909985755771818135021176131540982800912277177165376688639386255155695032051663989509488587415286599781822673110141802937743972598959715201275321413733742228452517372252577268417748442806643467440786233913774518385777141104217769022302811718577672504443551893471780684973018624228149605661775880526250712294909846316455497583975511845013540233649719889771512474958698685567295307328252243607492602149078400875268311728891377816110255359381944772759241057100819810901778667483134358296358820450897570581458454884701917466418619286039392501220619364023599477763398480306009639993852504558921286249591157585113841452111488660655279186640157175940460959363520365757389916512689796946622715710843367549243429157547146591042273529218849831674458377482143941339543475745254062923806965257679716169712580686928267590761312709024215668441659815605022998454563455000744908126909953750330171652119413743412090461366924878092677004200498406576575211767826179157355758641631390751973339106854800722204544586772757306219389130059784261870278796968496195987604447669563623764267500757209893342401847985463120417580399926092531843660876429910929178259452002748708932070398240670777273003063260542480674380024119698353692423696586373350583879510371616201269003644721964839403733715984577033398288757441311117356674378816272369683608407909121899959585280998715027996489036546566818080178182616106644129649379725843938985298841234483035417627641949602460235458545972471567864714605895722258064672135295203191461844922767606549829562051331278928503332444873624138939600611029052949355063542498572096471483248595818155113250959845382958305741286251424500041233437549092920254236211722654210037094532429435192392826196371727254030449433532583374515785062274127179432669723586339767563045265430064279004486173356293040042207480432165214332668485802335903201889603244652636220390588189124057775915717239853147294147701002262668981996999963666251895279265638247146647977462104928450860408303866679450344063829902153015350986793382102616377661178853288023916468410307614382239190450727876301519855075231123539883384330639800706894801028009288673912105315151587037154640451783770074778076665809565856615816405567682885294043239861725311937091149968638198225195269082541328702486822855378654695383543684843084642508779742690274426358446330284006796438232354798018883571670115118123576339463137577733051190439656325863623248454831710446112444854814433115628481670939166286789043710463928182331634045827434958376763773794912881303136929212638696762259825424361754010127505408171263445631397121151999389307804500657147896274250741654714212571766575703666979323739658059668278148916595342152378205497752023338838485193464449789240408979174736683222389645097762221082903616421879234977244178038865614946285298637526247585093938018696802061023746102993044394574976137237211490731671398815590448816227163314947686630465525620199726219477733899556983900186221230399739774315633604501944667675730389613001797287157452874758921122989466930452712081640008815906050400572774332009071976258296333139436733818660709344995841580735626323295527493815564380771713111523590815129329035422984035905357995108824281676302481908650964597684771337823887614373202275884517503799961429193397265416543889426834081964042484684405965600861732414516337521395496854865970010550956375382442442411738091361368491859974727624688424670000985435813416186849229351153928071503006463547838713511404976796306115173291978817742821232707857547382220197380587522402795162170280143216573035925559705774833223783123007686098011730785422059166550379519485610829254980970060069935675037492622085195998877391309132300140185045388625484972695692529402633970353883537070028358469964388979038468756954114501983632494401545359398441540245103771468404736670495404563905923119019480824129090384871443292427883197625170916948059709334497706135079580128112654791744684197622002205984889377646297089220884286618321016110548539180892237082829898453438924591979216508207574124390778332365943840357055111594123723555632759523074897254696754492696937598623751315869568455954674689975832290646168299230938185544747542264047506699135152252699453959835898699004719205623221709998329143388208457075448249645570264530486456337131135281695466139375651160062189375183225936290150618592909222936450320370827468675561132559202479089053577119698583448579507926033409100866546653535015583869226142165517449021532408040612316627030689949653186403533385886604739996968042009225841000381462461644023404374908813950411947920526571445667250687853369243863468687257340967968787600733965830541242340046887001155639073998389553699982335408956183629191834390898465375023834948689642450714248605660249769567602633154862361304051588354915506461414386839970431708225879612766337441905315138502089265975012677546143556900677126152451380553676999725911384442522403258880285289787715475374067775882258889953121574347746954963995183633377300199811473819318921457932888280339075488698834153930191579674594186898640871176151834725700451200421566376103995734746464024063169921181339974327121844837471919052870594394955296713238315281781874934905832042235588629918033512638222040904467845259306323197341381880529217036172985831425225723267767453794427708364752780768704542259776007935964979071518133124079245195853809899594082837350276087262566777924333007294553500331915172007359582851942922934014096088537588247885082752706588388457145167175703674214156393978560114723046823519782876141406499216733660025396806549931119529352421623703863044293450480515084172078391692867277308046317033000198573404530079340033425932205066018078893240510263188670163566119515561931599665341608477279094218529335349712895976508977955757827920919238875972001005188180173822625547579734189350571546034113758362879479633153339698445669036860579172918841497049160872132381154823079884274478329484815380715398044636092990214299468294098524534918618258896871107461191051143232241774347890635299341081856460716300183381418958697784406869783907409387285840272140295760762313868202192074116353316783105675971641318458087838783019672416964853977603938066103575015150486681485680221922310532262991259149762556634553078625295862592587495874061440016279400579843161126539418528489883542779526177343735729760598085435307955749571148291145405107953061604480391331528223536928045788815728700980900144573623611266100082170745320575514062211202773328145688295603646093773238085705345141449015767162986213995667056685462492632558857734045390121088440526062845540280884549025333136986730653929286672442798388158899689560025206895653720739967545939621456395196478356724156582819922116339982234170579270483665235523053293254928998808323875849458774682106927015624740881937122327111258008951509135103704460360957160439400930247242684458099674225075834322101570817387325575207099444574547549977645105844614587487131306134414038858050218293487480653190550756329222635211784918438034420034795893858560306844640683482555979456749043992823694578358285180262575904562536026549344957181121919189253594103570505436832645030372094382835858063112050037523846713463603231913343773107137207691284584822623882310146397206789234341183420214732635710204148925403733340879591431795775372680043410476195632797290296092835793374419221856270941853257532648980974585421093630409582923765663160356313302902694312166000374807362858230718087693945996074128424833858909298743598944866003434064777223146344452088340006914550444513382187091763189544891718134776412193124389204801073981982529738361428609559578249845258261335213520960244941354651435776273902745575662346804702217500449959647316739999523493187626062478106448631542315722281448107382091524794741346993789562812458200288624174605153252544797859535944367299686758010455018690525195722351521829590229930233364028626084997549129351107568002791535568267237628332280007569842184299830408835751362409469484346685888967013696666453536816718401886541911806234317867991738009299514983225345444940520601202801258769226788871116417101226374012941864040277461376248865455315281006961368570661615209927064946824674664871520621606923059256949906823934283415100366717347439496270857737269098642596984963686264879783627482964874830538877819645718482129211301163960481949968066818974320451631595841624901950664244922938491949534408329986259889704080244100927809071737860988315262814279133282135305645335535238986261589490378818702497370545295995514119226517147772270412661446875939639058778722226915948816150079401606409637127723792425729552860002413268601685323211736859191729833463169837990598396268649612069637488651701937897265409570381857503971591567885579763102069317332074932171211569000899488483795224903032047676898001523082251021816325306617538298087666889474111482717198921481930804647389810178771537158688323459881445677888886374205040287147944236692724846404621322693742364342753182960961412358122414650528371672454103041159153039239597398711377005530878186829815514593099465024643542149099947673711892102849177233092506971361322287145149041337198841425530180213139685335486935917794272692696117413043406422029787016636042391271774597061617418364112370130332657368530219949066829353956411150294416648750355425979301270154349612562795605118162107497403010305243956307517222816054087067908345028850224888533198842327558540517298225731872425760048223401653131401437904838083253934379141979256738647674905186915903907213397967286545899412097762022882729954379235596877733017678596933206394380863479043288489821213834837268014730555084653865152435944200961594142999414022568241743524279110631776050636012546829666060931104350090430709947971334958690135441814479782752931477879097875619409885225719072454338797954579467808739609176416309604160892400097753613409765511205537204223350261599933688293163573098292949086297022960285618054255099583146960071093839160643073573238263708167300488415129919404143014285207992279645383118658870793231313370521262773105266278965911197730760404767093460119952440357843519841510739714716526732210527324631941307265837700906837989201945356928326638093545975668657900279697759863349611241515724758698535032878478777776364195400490158069938324961009718394664388689472409332352212398877433200067561278053204936129818662838862906666310549245568807237548360224530196509231269050765179326442738748299361813844234881794900659470825602664812626741584547545028674647709433000052399699268689514055297989337115268853303979221699526894795521450634392730893344127352036404052774993641077138563047424865662898115872589493871784067189914764737053788918523282528358069236904381286939603703070873130289949031651207915128623419287848776788825704331068681776750177361004288404052089269621895770635289540162503077829260481829037499210409424684424529880252936929989467663034618569245403826859833770528137997488711102032246413286225047335169388584684050892353911217056918216559211493550506340609111072540924069906901437302852319539899040989851997775172648294963984557357742825370134069875550586757384258694919132817396886077041667375524237100269566808288998521418554791785406933043226140304134303774534452086546828712905707681748169349907018449189583971988784887308719970386901222008039956634656565033093845076525133924337024048774147473370487479999716329184169880028256467332164498056983908904949641408937076150864495148286970394650395689149473683637253854328189981114625276760579546464329610291817689149790415752721529485462064582986090689835546034699890718838241429251631406914175606891872814507729873028285143566316773788307162909343082826336728744141091937896551983747283490537291465062154416821972576401807549489450939800974928452498543384174196170997193733653058068394631993024821055652041478349569110000702381760256270096366556451439926259025556628665709297676717004050019794420234245987364083988233861989306475743879957628475467814304900582820895880811631135208204902221000590479722633388396503298241551564444561319115143523061369524198117427789104696477788256741260558598057382383394200031638410498850363480131525071548386401296975379909490012900806068021501013172090310116678239066650914956667117186926842689690145891971391589526559477935203119724229051337830021930924447719469433053998055127876018055316195040202610356877605680135141837807205725024439644503123164967896264467994002181963561069121037151012029631820926066851320966571840910277421309820929480407970967505177802541068247323388089931075271993346521022900998716840349783066081458383789569652657077734908755214187322018935853170979066736888194629822403148657760641076549652090553997802656465339564312804247211890876888016858924641103033631275799664715329005825209217440962521498357323472900755239423825831938792936981538200472870359145182225866698386157635793585710288724296742705581599808438735057821503884625671145164037738911006612426632258433269363658242433457124051791556090806222854463274156247098243475196856693345563461935941420825355309192311872368013438706202662231270941508201629973072165276130109924646908297086477495403042098232909423330074235671068455080720761414637594500782913512634262590739182483857738010322064224793025758580110953362681796303939939830403389197304482240415726957583177298116657556889324363312506072549197072636973606819252441961968330051836038918503700265219189917901969776035990500067274889698867026073099794600111096551167597861731239793375216195145250830433845017014792725169946386622494943761917240708629545306359563342063316236473179247333150479805237245661733139566442988474176207007165662334334955657933400996318575650264310741663025984988784295592417325638958426886461766208466795860293002772903113853983643012350583958194711780750192058188157580490685730653081646384625053532186896001489116582982567508958361396515304884650707028365944535414305107923426860849462056236489084120929274901435427179112458764101110578529636186895103635574020211188771052698572758100044515518267300841964158026465868673889137212488487600257382815007790667066915243995873358854882205208845609946762935834923564292899915096295580270818193905697466424946932804713335074960518299648184979007325694594477184252277473045340194347651494196882461553447319115491717809052552554899049073009154985069094100154168838226267883508640176665884281002712205604425781874456682544868674257480245058417807996350229215786975844887024844320729692180087207322961906592588105945978241256496232449074101147526107522038250955977487639603522540448053461528031276880699766069098038383676331924077009776873341154131514393600894999103461098066006683583889773401930459377038106167199031754866770138036934785763534737461084801933062937506126640610111700039346379536452801619730978056783403250428814736946375748125166432039066843001158437968722631100388694039256579882972254872137137777788788314297508435027418760699061170153038893843093159873563588988362021108088393604977277019402636239326215907821601093031219800190387036864289101422278872730621398563825054619227147350263208537032094764179761034872284422145627413072016953007482463606778816358214849814815528742666961831179738169652383326539875817471407143927089021302806977627652924191625994183383298986577275326277338089519742029980743476995041342004841567963014584348165004173881938401190499975258462497040138601187511864818654262838142675391468643311643940403960815581878530792566810972707821537695635843164011754565271921202995395197130040069024859817059078290370682000234100319636746158349309724632119408453656698090285910789817714224004402640621388450993227882031741832051597046896137179189822510117504396304909429440876989166705720586378901098397144274124633567127307230205188727628131057877988160701700625373082254169835100658143441674577002156331512987059729164830002628500302108449977860326589291528581988417993994721784065310328107736755914261118962013259517200236133743086193268213139003780593567101759127441515620908799284617070143393757396448475801815507426886800344603753369489493736207181505897137374256639447635031476235850260979970292986570519703183751370368616643045055374556817030220162505940668983312286986580765045291993091825663645341448939645127926540142831920095690145336979019781904971194559785905593548370307323162151411008999163179134354993823901016556966015977172556518076362267806708607758321374071248611177128459783699700971261835291489522733499434702719337534975731166637068024700011536078371399521353111021145961560877736665177626283796737759974334769787917836679622271747060722691355675260900187443980435268238742881881240742837114699297146017216472488621403527062438429582601738567632268280824144637059940284046840535470496700122578468861318101747293837051718212571448922599586564899069627588649146272221814885492835042902396225194953017460922958649359300915056889326590799691839214874715349165975725635372597044454221137398085903546667602163553614940220559335671368532500757980318263836976181766055576671833230784751726176168320733487845884382687192895098976712478643277392618705688085103235035351687172595606235191442503399998279607735427561653195956655602185220133102064394726903300272815541456103676732428756671228954500884605845968530798417038927715978839383728240880997233126813037386185001918523486689455519398959189835727827505416319163872130097557796315709648910642560760894629350933354550062547925151704285760266953256715820409010057233403370301192425646981815017216071043698031792555608489659200780413528341231981326083410105855439256351721188775482063614845322384442035952000978120196432590447884071235486599352776640065126456842059983854681984402761099294888164820859207949258004911659613722315044044948724250391151413412023771788552725864281987960065301278887244771734729282318994168438583682921242162609483944054866479680488667088594614161187563919608868027344747161498470472367609552177714973594918911942041855090475223037654891102238304094444766862065357234560391444868234049081110367246096364715266119082345378552025997415040532070511292134316627337793192369545383361335682752916876605494622048018105342476192576773928867950707565278610840289038231372565025029540427688274267481406053553715910616517448832194136897957549629810362776149937642328288941484250271978508797625550511060832984778244413002177466103513419303460444870779362899593922075947824395220007011292063926905083036690192650917080396542431090954229556528018875469941876530085730970936569579628973675104626947999287984078739164472293886939296834113920403169243356685693731463891403180339350822079074118191125518474950281175018947027396502814015226877262073893071311312153929732894943529125452664247573364048570441016112834830001974765924254364946338996583679504105223416704586748219763548743231995061502164997980431872755809854713015653478631640720720107548637308001418699435743683491495475128413101983325679769140101002826068092320826629791566796781716868800057631969409319086193409740750847124580639696668992698353734200765051561988363935747915206338878669248511057009292517379378306432445838586247961428939247256763952963977683078898940742240702620545596597909137954951912340077453177609380334098049020479695495542307118247577068186986002712884744078704190478645296027142436009200622337765420724335228395586442030619026666860652594539780825270017444041008360612115337558460425933573768542791647739216541686775711639880781856211380881903897081452311056092435245977761660196391750686771862903572625898573440389321696999357082757499734485886181726529843401702822786303420775083968024051721766773887404451220908195456830915284717476549671467610586804711446189522214731759937150571535006329324447432310017225779599323555982131637813672087895162305920736298312567595135577885104595663410687000807255263919179225803703953637559034170201589716379548066641677766167905597795414797153033059172148672779198527128760121058915672540662804381630945407368497201704151841619413572981151411267525736062355401174679292333365149184535475662373876291217299213985560085910054531631916884196943305074007258993656236210775929890255691267300022112284012943569324804223452466650571149956022604688386529348888240998098137602540495098035261237338888463554464484899117455736662916897927055609394205917017157707252838515256415938623713118308623916388936218769474118462565349653749082773614952814357294650963973963263419549576071937711818732852202260544701221452411086472609948274180012552497690843059079970107927490136960010617210841492621097546307979652403278311411458502551839474156414951662894037231960057466456504716879619687985196305624426100346456275921905988995959961784785062610539035788100442591990866855013412858078029539652505967014401320448489006461531019077545003879934871718518480167623975015404405483748552037927692694008745653874206040464165206684385380806740764714850145672783603360925320947742904401889428938954746437274255589673467225461678130565272103882427753214376032041304275460456430315136993229496336444906382454750440888282611960879190533126311377608128995729652138095874569450135491127896305689743121067328918210644668885955624920517414646760861182205970435079166294135767880628155606783870802145783932040246839250027073528582020246016298470077804412230772394029986567503033059308610476682127701399244069917087899028299810545522935531497780934603905007364840685633535634143245539545244219009054039850815384456891838964051846651983514083979411704035907742271286730527245897024350972556249980780253040298405334452200426836644867306673466678795177168447819870520802873465106202200903391185320599429984987348096970449445848898206905093801262322548240804819660417170290988930697313206038446482745534809161169895020361796249227693654009621601171117878009500391685903353297453665289437157877466898445938478704236400890976206002668941815265883976790344398125777577319542672479271070757161338033491248342073060666989478171193020785972286585602911192835469191432939406159892638003931579044412553117042848326147861000668172686862287145545523082527521995855447162416810690980280942500307872773920005015584685972005384428113106718776555103281215775029223199468224629110305202152758341802504958694129684366414070170184473907311835047334715827049055641984353098796403876851851926211960921326671677824973428209820560125957416494156585733538902558954120488692709702156957902258544384962668305223394229472283899349201256381736569953607195063999287225243227216332259037304444953806487234030877550990241723671537658311504887996007169172204561322283864958400176443500449004339449269378232947173540823194816181244196936513186407026604707890408697384338118227617250026225031674588177463715558526081591841436051748538934711818899623546770156067287823191789375855600062549671032322894044196374171892068931187212768703114324479207163429189598837389971993718815125544331261630464688504678811276852558576850671780685991815995867858768367784924890269798390111417625192530009332710329677898104465050956266894830352495882148863412251310182214256347523370118605452609508261233114120445532785834809788718230864912117491231756661223225003143489752320678626225157968745465058327376883550385187795843680641740672902265871394167198960009079491432959422816932823072893489376725899404792014110049878359469638327558356259060610058175914636364259837658755685137274556732771686174829507905057936167586653679086804999175004665741135839898109394356308589416716240378674623714480912981107528109932844502302044475064543985205898044220424476476883191670533779516362843114249235670512132477522005736852879040843170771335325877407411338554325024487848702240736958016455236984985047646024458178456606253556805084484102353294094912685844824518396072736902816156333150433420646084160397422070011746869627845813220381445403787883019323043718701227680453968628243011424178080784060602249389590663594983509606197911534383000924812130060318329565511842140578208939880099037588772325731425584173734206633089296684728557117954611025773592543076206064298726033663366620675688833344963734722563100315990182354924493542386973790725018529225442443532279876727732436771299304379503592108305804927696666773625455096721541352214630742695109225539098242897045914896494714658137623055087356247822307797545855730369198838445557566694691267306706031981370883479914957046932375113502775123810804883794754849861218951364594624943739883895028036803919530593024023377086338558164865547567487252582234021577283504261392136479060150409509660852760793546356321934853156886105691570794904037759539395303514412740605245865899386336968731722802671710268939982482215493984692347003254485417862688206493589734453944149617926210102236418141911879209522960117147451765013503327389924898341356863994599100121286298970609323146783316191432988851230059461146574044404603771805010717487360083362197738165885611805520986051455596645130321198933205762185959531701344162992199006123798803533766577327039462410200407851929280701417538156617338473607882266275293697735304076116879593931851929486616476863682940684709950605668626829047785695281750047064654239522654604569548837757467241431954600261681185835138209953891384245701792289512904944763702525926078923314693084633279419388429941673429659239127406977155799254232391382189614089234637425078228128691070142710015802510090210805967527193755936697246197716734221107927926491540500883318683903476891480687948979598025038682133083985508709723062034158514710276194948502533984193949236977028620375912666946466496996685009157480382914161251570589585026696324253465018425227942720483325231442508637965770449664510966153932726608438973536135497882943197997438130866686683902858918334250881164463201804655855998994309796850207872788314843284290087004832371627929662020722063039760549180127177608020248908002269996441190537789432952013462401539042678827959525526999803479979739738231148236794174211967616435899756777238278083467430814241524561498312243361461554330868917632520772962186280872397927926240268764130221055131477023762298173607733628335942960397293793119187635528844932758617106401188644795803877398310889498642415165628487957978867993095925010742950741912938259699823275550520790167498674692899666442286781855924860573365614968232662121914655718193132687612309903678621487415675448598697000159945694613223338709676826275935542869058569814503947595576740650545562643989212193682102192496143179622749046859396225614711169267590663848238279705694372143513120717240255211572524788919141491382636226364927704464964995202057537648411399797172867712075804416966513364372067465518195105110905514007141292009742708465450694795928061154154969220595911434467907254968979017056763645686584622346186829996464521306620478722931206349232181112408009773754033029472391679970851494542159424364426327402467249343942670578270135098083099791886618841348639019474311876593786693209254864279402380756688552222796512283415947488632005389332718899571747421610098132508338399033810819352719894181305696605138783480922074888355639056815871359011587761677145934193649488977883295942255160254559424581369460309624077141207335607790552230420311679706389916469122757524473284015249697911132684596987747439845150985047199846719281687914120593257118610632786181066094067520144560939952359883233399371841430637046649844380157993288346326885600630973046130686905480418432876328990353223843656331886474509377857647839353839280425929307397980877392069332155915013544942217894668702105122981390587033188175225795830409919753126715119495000752893465032457653957310069144822256836767441744777674809277036757696653931437531549161999444660597357807136729986244796945693881483380238410981026092945977551303441987822506018549404790605343387541720274788646318587150373652810057654900851435640237404510012448041549431562443236533949711143847783671064527469490868852575780497281081664636628675091014088632009815295449200307122577302614779873205248025095328672868066824682719455109597170050892364443106395516898920030267101339499095504661815598304991988241443592281108968273470686834056048317895379770207815341721330144292040924703069543258671450468881742244276233504153165188628568330172798145763847404482620012910562106331531968071587552690987436541122607473522570484232546034169568748697454500163722817011539770261119058183690235929507202104198472958486314475044286131389504232898383365885536554813539213584441953100975539775754057242516405880157087220273952940963409261461175517393314956878066143570012947358656746756444142315533261107999457127479091079248004869865818880268806322145217696578657976401566547294873722096792972130174740233105128650152030835542996586902310588390622920133740497482621189612376150945357368051462217034909430332313693241396968389968977750603259514801247003379893520180998464841513041426601223601082957353986280295892490902491969311044937057900934661052973131036302682587412409867253023302127874674696364438299434629914341994004325674253205887139077667445599351351267012547880368478102579211562771305158162384205952399347533990410098297820842305863856379384116546769990958755310608655142088192060909157864953587607743313935253866985884118402729136418415838379561781677114853789216900028858138373489365457945467636975614250415171504697723932420299300841655201633151780580627125453153018315373604566621886814574186000460356368143616916423274716078199770966481683227702466881446720897237457819092727994764425803195547475092289720558793280549960071712760287308334827053185668801401160904974674240261265925184406713860946425363536391544438596601750410613768270754530337516633028941292401079531540535541974554443342529610217180053635233020395642422290304548294946619018858883891551969236052518066303967577351944217409696812306515971615888370981691814980890671826668811271578161005143076698907537050167861261380068102607004232240043052781339737047056050488301110828032836330791739771783913544151240540150992540189973447962325739337057105213775011694677943087403783268945844738726853589194644352642861074227466745119475205538388653717227225252837890803793499775374962232746451307387932016188747764158113557459517099647874590977310017786961127425672903520992101694915156526287704454271882011286001429512178023821042807560661405712870760213731293885235304561154100131214977385926589305163134225753839215686202081415724272770023004035555425485717592105408200116953349365864079909524697348265428270494448583219084760768317895264141108427091397360973854834822215291014207812083829357108099492672245632582495218968445570120957921668103420707814490610750223694611011338177114182049314485755554211100383437693284071568088353904453035819190782392084274785614371995130261578387426729483925449114705249401551356760733727023355527064233643264002970648085247943939883388329525246352553750052726332818494799394383619763183244136632914958274328907467878095791715704596504820551386421148924255683718998039518488915142389918001480602206397073945231362164212291800458634950863744145924787808757635825168494933796564350789033592945184149727391442475750680509226450123339099014230709952062694291095854772754115885036337848073748673403757160546785930811079712715322167246042676411348795330930932005201131893725298481807844580673372432874696375612879736560193633983922359594358315910150768457327513586412918120764201419498116162167069281686384759930629514149843663559090870659121097788633305632624522498727762068458766772583513092732223021174602704553760229178016684815151833520656573148953672259904020167465784461603849545657429599412475050297916408835183867754253055696054184551198756727103076437789571988227448051974187263178330523909801728806974230830832004540992791944030985892432990273123480242281788488353503241911119333450053080357821647962439976386356487325389696921760639984649243021258888335907704994574904116818722102284395023947929314906690441805231541300431399676437018023501012424973990516286845745866772624960019197021676806394151438370651269276515938768717842731824451839025432756277404547886113234766659573454293262990589412536143118734902685478266384280574085290797226255532866199663749526118692495647668472050703770934835971738237006864980249927047605619663367713595447139072476032960881528456894053785905755836184468129284966755524542270946622738488063912767558659751368191528483690813187797428252913580928346704131459130407819374373696667896435688293056346789508964965664629648360477854390740147929301689042870035507909702963331394959584212732867285689367318571456150585109268682144891920682472105282298087532858538793835039485467511142320207871448770384028942992775754924268250411962931943919370942860223223999863065801338973479981980185868694546143280069185790076440699504865115773540017944725810447063910687457447513842011760631556889334175079036676706878710808935435108989831749195101905947093541671303421124377324284478026065418351407603872170763632502787411512517661005853755165335152952886104144655442427487653391829935487328013999949524766530932915428999411850924478242566945452831308068065285865999661355009515549552752686600934030114722582287661340104020378457036415072281102680437673645473460363478976719634056578896749593286910674347705071479096596111183129902553345762667894756965666712783093217252126585503808434535014582149133821711225674701646610189692389716640503941409373789763251578714544853750281887208505866291473598806108973367175628229312252967027604752328337084939425472556947508461891514452680180020783126527930272840644104114284300117928117117728345445753957059363579309246562059082709533567435399769716703700938271406512137882665132897812476814494420853911186095475273646002314834913689762089797600703144926236604167518804979972639846894595563910409273980982870676118301594922922908984026574506712932699082515018552814640664660507338220780159663219043699529391394243155078813582464794143203404780345227270616410156170986946244644905881736048079486257396511007761452971631888925489516026506882666685185447147218295911506687021045580575846584983095919858756652850217547170469062114728279337539241663568839306737464496591280253369742003901904478709095226263338933772820268128920499875437432696850941096696878052714410773490695341980758235883869523047614317370499422421899673728723716884484036107567018314315522395811059672028914082867653959405221411890301921436830415980053951624855689171044062966144688938160562838032680884026240448184201719268195346977854779941531352170671500222655912050783644495469506145074779144313841057599808158986621324005344154313326568765098551392322646359037188349124512980879041681348115138876086890562957336758913438930595252699480911040525004214896667225910744932333808028016613349373286559163256124849534564207092233386262071203687857035706989847221097242714408599318056809829261837369942365650386022926175456354062163055293276965717084871579028575246080193685186519467229103314741129319535380352869938718169639223513634943525660274501671766751897736910245062110639894812425716135674755666118016868612869510493649028949280554731673018915978636012931634435094119295156250324051726462582830847252459412549835469002956105032914902048505799199307062500500986081935860817350995898955794392664694268717367987089050547542663882364465527298985785121462342817292233562126872932228392739525820135131392421835405888083175860024477582586032552045373088778837024492907787438492264612085623996052462642953081299953661264512052540084278980094276455337057691963984285026189939298928027347120222163572005749487455736436110763586635068635315025969489505197633740161807896588882430817717602724322819863895590124043681446999080085969408565495355601073135191971128612828212112357298344030162717666978849854818162515457493534420505614508476925652476118807397451492871762962136894091497121548321071164462946131216861803488567707026310135378848009030106176149029718193138156317637030365492906764278408098320431594578892318350865508343830505020583010019241786624513600449780031389050101852072281343970997804145186384176618571292257340147443332083714480798560547449975567450139585697653267972011536741441378931280763789539746869171639377513158205407897283984855130972455125776749922248374989440251780948489760293466964806739267763438717917768271915092196116647812563710414569210153879942438421973253280348145257180415332987983782169322804794709479733051800457905787954276477679745794501164383481570909532538644605280633354250011517820226755496591035211227951525657727978839893805480478483106452023255296539190321033038817414988779510447865053233148875791048196202312199675191598139971345830277433155633852989918542396974898059741829731303562582490472845551974443378295816036944535297226251013963968435591743857013463041152413416520524357415799179603457702463609770232575768925735630850305461440824124016412053567088317930256075096137265183100843259980606948433670286405562894885167022593418667638301279657163893026928486726190047275506974021039595903043831242738847118738160495107950780072571521054919462095164417695496406168719176716683401555823399615271823966156019115595882193738068279821153786362783516500645706221434229385690763457867369129813601137686375065873919915505672106225733583028677941437844846510587494146401578031346800546944463427976994014171505994938183620917600586315381603551027342916332697018146089690473317268984037530250594027796725532017948014569448287636050543296410774598032177257604615958704080099892897180984837924092185969072071040662396272576929313679531487310685631573178887539483883443165220957472785505821237692486436881729991136225268268154910217730487227620175490221532392543768413920364876692946063757758529928869882140626924212282715119750128392390260235576135716911095117387494441655137696696133738044583660773674446083194658209456057975672320647444811236049278046387260869803456089649260623618024437314398142239065908680719681910444425800130320271571520485784666000798770606705732037209382087394844863209490865588337109121685477093395248082717871849665204159879958581020019084833247662338322495777617303878695823870085167840913540958226500882579902366183178138294401310633123780324694029000531083252494316232311991622652406861359321088069812715972444485105747330841920518557640862310961756057449568463033256586588047742655635634757309628944189467914158386089285383603438963449431685856384843757970191829582300528709478388216790771919731100322758985309761137304426384082460540599378643694243689193334960010209209358458789929840968587471747646317272632794081738344980995597976372272440288499030364791240976631772012063121402556818501410028514713474890817942133710936785454329914133333313501781377294833660195820621845446402433596524287549925646145288791942339935738912182530311307368464128146456009374738414826732627182139199142019000345637749165109658832298548689603747042680040720049546606285964145679116205257272810542251268248277199539367456266236938236957261967720428291341813489818892564112777843327382556123048643294868422754676268404726713118074643433904742167106858190056925987446131316813615605740698592810996358727512264558817874131576555317874799464646853908421681621170636241461267044466170672600775619656243881545851222418542751217997057018697956478192345036269132550088813428390006427080890988446407669534243758653982562750537666793127351489469845958571945061195434872767536317464113928821838568787371346932440541526835508285614630990979237051798317964765718188980154855219476301177248388979352362315133990485748932419558740397707403929191642648670428660671814435649961174009580018075149687014959111435274638728430713277131183711951638707776913964815616622518703727408537790279237000317488829251491017563948890050483026164459679581610874042507211786879395970958132698033203411470087327695262915695466700505173543123511689398521512610515413408921143308733915301826242482097365802778282541947339335895329134881460074628378949407399289193591379385152982875728006972003631705273256628716862130456187480602298526614124305874654769008607386427645362632807289244939557924430640949868615248684117017605327359534568301364630275244133890322804068587546275881092969429973294925661854884627343803911394245191209885490373953027539198445090495482848653846617905398922134269206539527326766198746851572201069888146482440028744084696049595614680472472602400562380363563380368559814347013897854620934684841871490181396503419210179660129161800254483501250622693167264291494513593795103621209050988330266981693658223015474594125576783232779686816017126652436994205451603347595382450365650159133627660784516795019251937897648393487603330411656945863968179074612810496884017319080944493832407877188706755295060829305931027747443990410724658920573025036796253865179005168903497970108843076487470496983861662672057940366275586065234274280821874204298938201482990642214582801184600520619231068337115678088733537328562110207729773352978864466735551109091122947069826109695484667307921508853408980293469422705341316956405973407204618250462825272423857261214666734687442228065832162439793783274528119617242989772363261887657334465508662243455189679286618617392250738817476134972969284301832036799467957717726459935497647528171450301335139877206749452037120330119718255879361485118698925907619333806541750418669076698775806428023532860183650605139278781872869060278006401373572442607001833190948858799957067187258430137412682177242534811145003727105004372655354647214130057827903621564919818495363222331936735343322109917964646158004281180313010275917580726808203306284876284401950398994895297266025223371734026711545741679460237660759131614484787827164991478624068138926060214210957196901356350631765976776121809059074571996690550908542449943118892916275722401283368055979615143879860620236942756522397861128286294225775042401811643397802153110175781287129737783915551441968502409667597976568604135787021560467717286812041019176366474466066030992099661191086594830979055325729658164674819607486665108189880347060413965096767021414622940019474787383979469668349844355739542828354273825320210888973295135251185163447970896101072223050065422611900258434129740300499233498373247371396446812225766887845570036203384113508914195238659713979026262397323525699511823030927670219864765860859325785317971742856653472735054443223303307884862101231248039512606864668916747776826287466293644364757559800408654780717233251050449628324513188932099231095993105500987706489307068427231886854695677961744250832871514732449552406303569259489403446366688401040752626751369589596075399670171734079483988207745456370227190004066003577136852215139637207573832810883520776881564204399238234486920987511265631272992489571300813168808890563287502715481011226424790029573523258025971021505538246225423499354262842497417614237953748960125313326578879049950534642181738164617535824337188360106446291835172230307668425533077301503590799154680764127363146649956371546211051878231180530709633047383694259928543917101386347088790144908430506850726891183775379010887399871283186311507387795983047867417755255016756119171842711109627768880255492129454876265676923243963156988933573111961449920907977675585999209031369005579760518388715203996706124982673856533575908391056967026460338673403610949748331071430899383516121021878598716694291975312525206885237151361682298115985622675011978490106035293434647604075528590279976159473807340477859718446177208060703161538623570066928706642063392817912726458130873964783889439496875579185168086754237228065759048083415892165587467888147715444240486718206240759326534395625003240122436991918683838577920003969525547350436118112192591218988439022097670666604773294704370806704378838620599761942675551265916752494588149855253093445167729624190009290495527894321147067028759991079368952361741041887925408733104116537768972387367156944638035770770492549017659603035733059151228511916855466885264952145516387424298461698920945659471266961486188264432056955329396341786607440126221896483267673076380234652104286299425054300703133064260011485770373169452767636705028918699292513227135658477862819106756515428089417586402269113576713523944286202909783690486007630281518842026692967595037976947793100550202715591128119379666202821696916754300757942592408357645708797353366900888142845518441316478078521032601905969002858724240260821171486093854622187611324964228021196585512733252554120597677324998975666255937562925292976758776690668545025963554557831436892970904765127860708109077837605931802476456321280519199089860316600499525586117519706516468965326513397083259828704934263583807572110052512818654502702573241442996679286540097132944094154963836108424946129770369873655336300558878267388943235848673912715676659330641157416608626249431226567009334114904326113161343851675785342576726832515632380631562066829576184149818431512894896659301196362026882255267366336987684039135053203499721518058216796771935763969060348669889099269135809419914122879180339168494296327033954376398162092858905123381078314271130519515170528756398351755651774863663942310360802901049837478928209047485266739856123554793893187338764265392754764172361254982849320952386600418371915273713400482344244017141748009126944585157025072048920102247923087378089391458562725668187271264673219874974896678806546932014824524615886442977193237032949367931302382953292065770195181673398380011388562901214864587923082991430358933524601385162533335144601951456040103975394576976352643853225039404521144037504848656397353538369643061705396540107521358818664678211952509435594887364303934703961028775182218223464310066549839490940390288603224196215024235199040224530898016897769799581658046914733404430527740247946661224345323614419136700760605486705960790219738611000734019347476877343636193719650793216535298768360687794739177974218391534880118380120576102269366271252152833198830489197205156271327268208516147634690448501437230326462732971703165987215610471125487279578272866816814992447782497525921480493162926887477289957221569460768871140932401716814364655572672749376853792188993685926586442016134154780258045321941750120177037746675459936924720681119145422396956951221818203154992053303843797380574264959272542270879428455384194328134491380287385565578143672598719267320887216628816118280001674018228951955126909460474241855829213510797032766215856062473878500643579530397335660724957652757023495599604493192219466186600360004298498177752150002544135840867958369350092739095590167885534111694995880094791423238590149713377505359336333520806929562178538249519990552738438835027394931239172255965857019965477912654177789125348015150189844523272460370232503711574398249404319866788290316187186314206601439432682072690747510685112313662675290485021847683489493929331071749187687242073672945319374623530089159854976349334945541445360735516038730174396059181053524523064686792082043802042839170841260544219496648494344942526731021746752319567201604655337199332659465759148041478162883906630812277184908492635214417078533194425253675287321439789730099253741337011456292584798393484698624276174831146540892689782372884176601302839399670764644657821844343827495826443512711427220443241105838535871697544578050705065499096440718484479548326321425824936905170176461982640807766220136701419944476176867557663989507092830153657204409199993776692856784071521912638612186174054389696043550775482090066517828928874405152647382127058954578248565131737261109048314153369699361857773926716494631275686496899081004549200950989971835640451937024675336510984107225447618042205775621402624094750584784806096981884261704224025978588824701572897546883675869250787363154966139826976168671002324588268444141952395134431940610192963179663212659328139454474227466528732856024071795807990276645972949660346984470481577068074734215269450964109891203395667721474722350767478087871565554016899552314148300227279714634505734493283258260877993225139125455874252192881928309488580361899746014538255152471090747280989537673803967290530270525843451538371731626360423950892253588451044413715343207752526686234060315933526423522637523917688600204397339762865438338895986107745067369614586100677128084274246816381109752220714819198872952028083104549359858394828997123654614970221289257232086716338377777067087203068900209941701867088982029922129641860913961192201260907291193802105680107504325026022741882531627080950673739028127135284731588336094351204583864732651124556211443388613815594957006570016636960154561675760630773252314104716823918072551704333073794477349568076966389849791798897596811807547691921503865901491867557528402709696377592436299000873920845220451803148788260192935401428784636971804343263843345840594576727631123663899179040866737829660163779913355925634547840690090398417771875138519500567300845666864573659114620338375573242076387997245824089186777169016198569523192209306918142924353595176601298156771240577016304772316884949634299759855883967109283212536640556733143985216969128207688860685586657534559034439420899161232095851077114218266899814303538624545760930277433006991693377199849320298636374607041206463454689598159858476947674207184587338320381447052151873981125439229076225854601181034346083465903008563114424023282608246142528447939662743594790854631663438407506536147489686706315439062026360048882003554441994752565959539888661386414709379467800581850086029912193531578356982428647576891581513405890770570671366407355092578617252775235401191161057094740916865438160220532026430133197348631010242755266951437774595898325702088802828954133981908117396427674998044943175285611470424893116560592808940398425143512769644721619752567681204285577644482520718151847583163261816652007294404078414863617035429234957760569388969084301607394314967370262592385241380249189525780953691641862927031524601129833931014624920744094315215906554263604782319914678688121473477166452251084099650159946089390581828338358356242832541936820524364217620415717239851816946614634930826662374679503210648048005000324853061283088550196192115129911103666419885206360763023946117551732934409807044396514022844697334239443415271038658537332508942585429505011319342265931734770581220122445935803912387333386556766388918170779987290521510601263374149106218868875370467770724326645997472402963758503014598886608952965890695155458036766196887956689696218989345962829729707647816688887487496687792690430617221183951449673643744490980110372898968065942412832795123539476417850333610609004536818078867247886824111917761176483140630801695793670343618767325134035957083870272432481889725199825389053456310803218565627099256256680827216812185531436193840069670315685083259726942881800588471074066193698716479739945868637961284957848705508700427179467222980094006736995733099716724171916709803603655199735234963187220007178716058878068726034965173120817106659897450400015992470357286113427008798993703988476727134624718863133903239305813507158985771148681269193236043016110364386329504354900011672449661201585784397300212230488254405529104503030351534272130293621284980261022478294883607341070984463741989606461321298994604583158224481031966808687220733961891384386094282422575060119109425215394988453367639301909887874987657767146551866485601759998286485591317997946736827009188298062603510153159338643048645797245567349200506089841415064022222488563671618638101019212825909683631220645378416817024744243482667047298122875384071727960148784143882313567713697931471449943838008255010022900853711200068024589888056251258685409640241300668891925038940650120546490835123953732012628874786352649045674828862680130369330521848523188861762231148394805558631573810483917675490044171422657556113416171949494464321047829109208162706714859974729774168066690793177918227421794253804124898542690511917381724773954393035369148918824857933612695944010191972405286332116861005638341625897354780774300148119339835586014224440241324514720035858217331845421052529745932567721859930448400150777005600401794726741819551741308976286714911934857634540490567435948414721495581669071360229234429238672891509438588321881789761870901814457033780945733681359379247729229840764607950254427278382150060217523577765131814252807956090663706272485263143489336724296181496208801852099449958559598092013391127412177198453275899695108908168821997081811168582006850231005278562953547089507261900233842625865498816980892084325745537478723916006197761802672933093273963993739688740283230896425287772722735748257798598304578283191246628566070675862717701699890299256890483390444217682768281717765328512960765347695462225856032428777293246508626060877445930206010552471536903921889379072610524438213572221085647455439909272495826722907995659316661346374434082866620809399528690507551692392908177655207815317137544708372486821349776775419692835905657477675698201114080123778737093563303411016052824964449435162154017693977445128337915383164170178708693340727247248678844309940703273474517358513762568140632321002412447504933218993043120542751045833125437465868624188274885075199666170823761682440861005543648975641437717745037942877321146041880072399246018660665435433390044577222376726142530922304383458000720123549970376075387868333323743087148754595809963650820643910703120864775950618868270333616575716045340238570020761691342458623584674781298300627672199173231018106265956407718518911786099205662394418602696865602302696679062627782779446517552115380116260822599103693573567565873594971516729842733217373359434362053110807079079375680323447657100616358849069775795606437778268629467282299906226138733076780750180840797765290371850497283946887365463293721075254763938119459586084974238567683354623918038062437498830743836392695197332217237377274777726888250307304388342063815614349874050667646779081881480156321826174873466482651189644970440655878733272337375759211193086287663512388318501195663762332567760802451946191675513933245618985588678879459608498938186558784864598413137038330910568740121178024770075186875935343360318528837949475508042608367523344440714139348822281435129687717103390145302408889822169091545670728342989553888738775757577303663460681227585677976889686876393696284059548840303668035869543397745296303133597209570128033568814521965128432955261552640386136996163118748657156669314499207739158650966283311720917354636895114332898375908002194099066178054411643765493649062626546317678628971735510741190492594395791171122308045482974819449300449579571055715901771337201242645415915299030010339616270956897043211663589944960533791021619245510192919112530048068775637244979528754075812515449618394477481644678079569602361894758369594282081312599176192927068132484114199391118133503678699141681414381358497884294009677033449733243161908823263854655772184839107861469323589802751734003723295667675662924340075742574566710404049732342015785375995939580431036663752752761189761624080434464660602857626622214429784023838161940526995528857807829343263628427605633588385841842036511632691809524877296231365623856975283662005997960775425907086053864669229685883054767234032479306460515485368480515277174720441332402862642297490608554425512391408827559772524630724586439927679938747273296665457346944461948399194860995269873884127479434123087473248453339049490801406585448223119964450608528113424290513068928271289435473682356211162858012924417415237408978802907791774981990643906728688028522577814534637645595249840417217396380681587972569704112448493119081272993254647280753878345459903837588358284892048735709974830184624360568366413079009245423988913767245803280381132426296647916593505089283433732065766292956096949402156143575586139626700900797321569108624658197049559413394863575002327806781294160565307632295641094491099962229431592355789260993659257473837865917058411549204853947575039944753620509120883300054748295998655780722905702542337370581631370833094433353518354669434082278928608633102299938178477122108066509602215150124439159855040613651264002585464727288431529578099856057163024946974888453387854172675412081593882912645963354836883632548071313817508192837886430551172149189047113765147004368870319292969973971027944547492925563273495567098471095455411094700990815176458477841900009979230668772816051702832301583596723394269092189494640445760926021712153020359973326958894117850282915954935275832582954623355191166237784398801130520297851531077017834989071565968224538431069247171527966891318345082065222804066988086126322095093421736581170378310637109045850087814962142385274017670514472927412275889661375545562421271088885484723904543550558106120834411405957433119183377451547906751674263361817206347865595011528511542541635102599595549701024866860970570754512544018457338303039765996920533984660355947485475583643639577443663711672857326140009460054130093715814678810075355223890584414248922064705787377283223085026840553497685492866745298075146605639040868458065759399814549869011099087269691701146596985276487516769670181402584382422559622491049537147452634264295159155945608753035498417185724938503035635447142502401127315882241804894547631270242108514813637895169708296061024803190886987129693138684036753728281324182675614039846519484642671859618802067693113033443421133344733976214738467263754111351302400918837902724408425910422778422340395376398246488400992438396438076833660829287822446149047690851971238062450682985396757256492117990773596315979116094753220175616910827625883527364438190104411148801651877478852230795376181586478383551847436754384891914449067872128360671739295467953755765457295493347673531037658042531068983787370991375727324135113486157207616606867404961151953577557984930323715700931673538901097127442588551796399988294565412504300063438240920287874965998277196191843701606250259986557462135403318104734052237101973130706550869395534406373250275345091100329983907479866828434524824940699356569943509553625049879494680135776489247375821631653062737818683077888343847759865110715210870162450213225636511597785208883858702588994780756654281127073797600657279542510773319656039739757633877246210012244728225504544442650585733007048368873632555403750433434160402711162403610938929288638800377170467420924870772346145594672827123801234898375783796603490730417555694550255543287078789800191425780906189459124758320423121477104489525045634028884259381599005916913627650007838761553692269757927045113616069499973143045710396969716846555560377909784870563423500977417578153037568513507235676327318452070065192841383617034626919465965117920037648739293408814180358985546064590106942443515595700069368873077546040467528441199311365035180083591452138024072838942319944020815587402963807496615991609433146220949065076215731633599652090903619270833896308842079177260419912325520383372344643469912481598886031209136381056864134619862629832744452266223647904411337581016839584187360610186238259417511845581271010383313801491053970285144023299331136499634450508383282839053724515377323531380272152757797036282990007232430853506878966540245236615196645339221464232277397667825682680495224510584672459703835073727808394007301319329770143438317741801747467529459160447895560813510727553925912888637911850436895655783598379094448787150334460172789505435188646035143817406213070922420848278117676791867835453085473682448800396217812182325269417922480538229540999104106365408763564402742929064663617709621709351661166146562433515938068302844298601692104674964289487372597780514082367501729862752306837242890862996800205387736893757709245331281156154487926992388450207883230238321862382481332291516813959349606347230365921964126355966133494230856573529277139605394631472276064711253460277452740244572177068373463872285724702473970324662615262163859681144760729352006612317124822816796931974574901295837534232317974038703566328705084871440164613419756063352196920604212444541917903997153311610380136788678631975737045300798777330588638124981845711866073411457150249097147391493566855297509097807780687953712526675199542384167648342597811974871795812243090641975335870234414531639820023761211922326167063391994250948633950639449628175744242565278325365943262374126121807828124516750005061116621004818988785405966958869548968335718090604807445356978453617183507294753863699555324690352210822497743417460896768932147372597252535594393998174502176920202669060914880104608891119977057053745816294413619457714747178606159612526479134693673886653762015047769672576709326155413083823801629913057733526957365769977090061471604952609783318364719146622751539465293667521547364101531190666199569104850318293344124616028526397133237136567883338706534280293360762113886607884011944094714962032436229254329827721421117442177453171231745958645152124237575615492702776672600313542804873248555720090481929951630096688167913693290682024749825440541546103656765826649568802173873619174497928297149109770180839923129061530954339073662690915526806597022309025489659701651665667601010847318704844304030699781027461727263280061039631253195519149436001896047776592571971306114004165300108327015903636998951441787231011120909206144909307468310883497671315284367346795553224169335316405042370039790737425106213026296195138342740102723673099249086130004172226046920872937027835636163959020266629064366405137713118447956008121216564504795153310122988856755450435812092907815890942875997675240344563948122553504073778498366109266433082784571470797405099231551448531165453436275674289915507937076940426061750895221667103608988076387246860194203639234789945702502041331042064668617571347682927212847578525468514029331173510443427362854099591799758204961202241531375107893486045744383686108097918875151596371606340870564314982856068491480752254413072235271013090858105605408843382464738408163425495291263651329350190810711302125199392386747790510882076070872229068429139849466382502414503335690163668233983778602154942960102496016024257628484443283410331459736890176582928113194248265838550242390824213793246787567560503655281556283871230793803245236753566584372547221105501091784608138387701768551403267043856142931893756714578525089742043422040440397078508512493568994099597133819048895279076677623655112407873633055321633102234005308516357844689627283823279948217339013976495159512788889662960121231943223803909303326977473151749821291521050381715692370540185445916460771260951247156571649869278133173806712546575883558333069857926435804666457730654384303438684435088796861593010767565614994665604023272038506526776250743816684572935384092493963620825996063352187384183803261879676959028136511159571365592433792467402334316175780000740542651396638440049937809841160468913251397927844180441060083704288664385202508155801138349849732942753356541910382695627384755738494222512569428399453291382082915886883629423012095648874662162135780107562510734065045808471795656782929027716530653464149559267634153201856992605982557128240644595603439294477740427901718590132751857081468705442378284587017318738182711251079736892098134014361561185707489695498064661956580537776441745494419757412208266547539207595540384370012895867778132101231248150248278755819132200695528351320330527410988270029452641680200024569234372553188528857845126238216882358828425567382783559420550890378990130758785088227444743996521695508346004770724719679992782872061219086456716881726656113094058132965763058459151106111648819199979723407021924600758112906202445925905618805697080642037872296200948957187043923437594914090605234359568318465738389316525972006158895599205586491837562308648106927600550736270610585977138576474423592067679450637576095883393460513797352283045929494958191158620673613100441854624633097667393025766302214525555970372572608777969252060397271959931681617310738691480577230610674372872647362364580498649568581797702132493754692994785747235467270929825304850120898022047201902997514868363083387120953200487042323818601588804451543597911056744073303428886582144579947015803076147763129700310049979345004865681343242734525468608778574437714119689480759919458376017866436526160100286470818334242718437064863598636267071040286932437295992375789730273184194822225461530464326053451395056297612943982478737826169949626386175159095373311384449664703806638143946287424034518244712856400019641347976852344011502926294069741862412691706072111631467450196412180101067913497501761754639345073646216144132658720949712521020025291575115032176558498950063912195435130980698940595152401725597018158107780586700541312730360422224288057559081582087806247465969750261290016871303069048033546631430401706386797927517322368860959046635052933518447101401106531354503928207220207678904675693068564585464507031223501234879753927789389947418537652986933735463149942614354397380492269453990150373699108699439492502469264651711901249544720322993925591491463646957441837190138173735688537189993779357361778846429329095080645853958966059508800122687931091783872419790451301972060351236349518990509687097504988035472206946141581059137932674029255058292029935723250623189440995274379253439034850136381825213996826742709218723374367001798782366046854361006089161287194541971242079267571132922499818781695321504417300892641499092793721548974645456560426582465483197214742336570529096398565099994621214420716225532563383399264061435443307287428897569035902329309875870391911625445556677831844526260868070133692874400134122388343279067086019266440349844476045709351837149554313607164644710670450545376736011434282902658045429385528262616846033057814532921210335852313674119012239441422069227245906058091011655648506496805062450788131473177284837134550940844791337250644735034968795890012745802822131558537249130315761496975082223758104780339129333214060375195754550692806908975320062562646887167087798771166015361845465853166874964562562711332483329031307620848761848676036732349779696796740106728824935885645974751344392935862191205408428677808201809367776634281865767601468401560801399819069136176908035166069371228264533193367954167621695123333087580647656740224065972104122930985055348879650988300297234262046642353133690000346608087721273371730260885765255913504307231347685469726864060070028808145451580114910455350811566050421309136697538743652764196618552524898059161639465472947902047736474690270537237739263227623748158165606650654796289440714761672859430110911321788461870420839792222740567130631468679707457679093244068877135992251306810543975537112091000945463375500760171333779509538253529906672677782998245527936330115192210627623324472730954813335510706973253005837288999953675342914029738020208326327500879928110028990761958922324491692747748755739422730156261791879264195551359618081684300984410927921495309318540961854146645577430250345905975816223593570551393365278799424978184883553481918021363747153358076808762520711934972030573390637661621678627224169180362179467741678190310287834179179005515604311806212140394535371903552967554113432424996242086786875750692249148446085982544753545565348153650894552513347996618094860849278910271488686960380396608189580986930035082447782566146820921418980188455676148783142666993006451273030747014918613278411938700545057557932699323830114923745596304587752207554148930783087031024851903550224068150709206236599201895427927465598218003580518550447916556679528499329707532292026278941893057451094733730047959586740936026626455012262520936404550419260078132788108934820196092077646872918379632097266035965930067074428020164636996984843947231020879166795323433596163794858259694445106494046445237522700319643823745269638173935601950549864813251004967795463555235846136793869421065025553690349502628799606557244243362212137356363050619481838201670738221197643446986531274199174579944398094947546322059883627108210607164425366115086222912818613369651939860038569325042256679297835858404477424805003027289204746036312600561332376787982877642971324899454207326582874180333778782791742705096704258667068636340574175281777861713666045495178661260633304808797754509444122082876879153311409113213618895817182379588744517941032114881801447788297869962256165624787505153875667124600783400017702435226871413671643693907930601394667825217377811027274939832018134229662139097013335060321407700402596635719722241493671421683018416862612196768462114757780325048784616363956546036001193114249659685747276966660943991409327724122076135786499589150145229659576479856129018722274933732106433687957878780610339823817182605770421275015537945439801215564527728319576267290317194783570901904751309717417665158948720691286760309169959576377924546418289102776612463014757596739949546504167393574619587075581362581170342060055483879502566482821785221746455092072541860552849022028313815066471426971892218161252157305541314435388868904340912906968369545855963384452911837116855737997543377530148674473416917601565510903113514960675722775631209280135828043723030833936490181976393696153906642479654362283224123774470839302413990074030504484646286215418567000319934178272332453639647280188654442327405212904513005910482058730167771227960879894392042250068002631062475141176593240784613875555559698215424128507355803641317201747155397266044865616302276628105422885224507082642689594376464895085377929043760176456865598736609225146698275234045100763952397558251774016141116645078263630503474299772567903046581431539046189767509524871596353186217485543878948255901905405127778088580495013257077945992540595049920129306737632544866623579165288402990972261647291979786404413943729480851761349867197345713238151775122971649356761220763935553582603041777897052887907097222240334410514373704198176747480110350236181894260845969778871098583357560298549570314261085101850267827987841335169738265538486412866959724269797451049187952568392439487263912835332795251209116294288568905502897520880115213581844136975816326038242893611103863856631907461604940949102133564292742994641262712711895426929372397250119325377776851490632973605697397102468983232354968018126079123575317404895922969714251049384750244272609114621658927220031036178121775145146723026476823361837226834095024697452937108498342098856547451708101807528010110489923447607625064649425892456443626077717044911315506926754296787616986215408405133524738391039212637401173671592573232553481051814480627069551726006343452474970537846778801445827411181524216504118827464941462124226927830046508381922798988922885205277131208663718770866845341386954422835941358413634297196980438907715543289231652876805337947006697080447256722184477257615207497879180729908467302274462725636565180298387742330852880151033673550389545817419036112411689579518995946908046022780820476921499307083498590163702941488784357864218824019465748138045356311939674967999955346714998207999267438463502500715739215953681440211720385178522330175070654055981954136735325377679062872630814446996676615142307407474250227690485987919709716184239769935397308596184697752866746797830808399139837283480836306359151629338399003684211111792151145378596600839421466123449990330334409684189942219218682391949993102935477139557603209686332110047413095908006193310586070642292185933639992166063913387560852639064060769684144594959156314547659345081687374533830291839743259049527210659855980517184118434294022496933109374616497379035736320617099293727297297262188277197815702039221951596027544172667510740007027077468303793175801732310565628210809958693892766355194811477896035842857544399792268066152533109786470041979434962292448631100635394731495177219864268986287532492956771205758883731512609858273528422097701260508756126812384287689537924854347193429532155732086885202291940894841726698542977235317147417697161680015057456529285784877441599513164895677828863326000401025561384976755162121222340230892782234133465378428270303579853107312151025172074706206730983872339002689309078795102564314191891945600184037384665443333493662651994685171710884677323039278250009649885190938469614689454060847983963578727208642387481994993820811646348623075007256170164331333908864629837829540725933731785139258685421668900645421084268149850709899816975756327565598417985362362007813483460397164045651330886755133003967499353008637087254140557024887750392153380792960112448571595819474344734047726709648766368386995671304036145210850070863042316129401742480329696576604237076830270690155944202341770498015568649519826530744018520810800607479864496613762657573608717476515048240259173317041585077905221445742185010552665969143788563721808915232113294795568451286366288443066075390893044854927043595336125375852161059659770181919645861399855521306280019799541561193522013155594563686885811369448300949925515110131136591158425343202317511779570764103141794113674272867521210193329784466232769727550472992714836917532702125598607487256972349494954251650985451942974024368356710392192112969468845718280819348527237766957238684068703606154281490738922305861197181262822533709521590562581234111171661032540183877360442037701568327921229401218906998286998133834960534125836134495665258786832303640540619086876056612050306968343458589388737010135915499367622085247882896994909559065982275456083194000506900477257245146819787221542335577959497861597050933294039610114396001706821332467300964983695324649599256640496853163697015526772839076152660459721440399780668010102185587391944485821890928431718579538639654321212113384163494440172688071782169178031760049210631534962851803110824238036745032347932063793856224276276879649517363744218838818781277908614585789886483002169967494403906679553653536777688270712089734087006832351759169613596413630985159716076880034899011385304291317008375560748928034923304799737336094407094835085646356676875303608150661592547704965276130972953135866371043824581217930473737712696292205574346830998736034937528929216726868223816902571531667656911640128779266411971728409877334204313703993821734922957023887881369137877277448923674902424731787110066348762431335241105382651675016747253196996912241023110773046203085032897853618102753684726179376424860341482455969815050951202600536837702294094760225070502562219077664174647039570767683368308386476205692301696083161397923329636110628468642760430901276555090251078150089654832309284221367497550157510427264991230709388980201075520436532025036646354438208259097892567989637628507589926213148329266370128983848275531961444834577578601855862381014965537207716960343650097665687197939256756109867941420868650470865447498380331573837368457318842512358509032599605023179731696032499534081191174267358769976067330115484901387428955892226079792388121266411443952093755065609321678816899929708193725176326235950474348416669959593624193006174262091970297082470368949694013000333837701311948382587769442844925272758911278952876343622551518388319201465114599042019940530263487887488068328514553834003427641064936745452238005369293896014434068482783931503862964665672039532811551845026971411650047899018556466516820755111611153320161910271145151435416653858195323741742760896571534700379652767748310710757924398375300455199911869515390314706262635302341258428694620472212794418828927116092354232925602990626617042995847742000379911135674581385273609620644315883719418109164430253691800631395594437534162794602322626611042989737738579262446905858539770282492006959533767366949137282730213472995751207383840115894362541135693124166144633207453306137154117567800788872297515783603803772495412564015862730066629679468489517085274299567348447629018669373683341100909564915208214555958788621055182832830563315611461324231105098442270517452531108203145110693299236656990211724274241902304702912131399974715030054242204288714061422321177663647624754382364496610949388440548891418270258661807974175416681069930895045554058811270802054624723516568645595348559962096362545561584320267661938826802232381274979634962719294448412347550494674324802296154694989698011393989609409542300832707452639152686472729025934237252804619250598146719961872330085919696089194892277486402827191368030735476767453200915517599083576271862264503049213854384008438333705396647026038261961536710202499182080427936428792234820665367433994176522863775115191103925688520720035952269374020004080213792897744672122496460819662012165273340835218038334658403459126012281610076062835594131347892235043160449547190928833290518320750819906372045154198697808180534984055200987495864257587033312030689731389189352657347787680875351915589574019929264051982341791264877792490250090364269695755303194863661083946634906058262906937993926353401629423720621290550830479244175628680711306520827606030178636540430035518120441557391156394742139408277738166152144019804201274859341763415175194667632035319225471997440667098189236518030610109621322888224207654863897821568281772084947029926895810055140324053732895745020252473681754902529893355621302800875189416932323956889268160026944240057710155170662391805160126140186094614906665369271479515727090498312178811645857279800208853928378992560639856886522163730287622578231179653954492281539509223762220526060123155063068535591119748896542804348494355700361417653700440933444816122335916404641793505511305756539305103233020846285898842174601219538381633860410153692228918244893013429977851134905172136467952998520517760929528264379183762026880584529044773519458901039402192058639572141014824483354091404838302462392207158630269725724381081476570412430683535175985699855989753372054041454076616492502560907457932335068996558655588491313190662728389022034550335729954403213329029576728482520304427415918979231975632221279698546938182750283187738694997975467623541071841827429410791466480355380853230642716475027214953627289650700841223152991535295990141712930904458746406709039315677655039942859096929537169099796595533362484247476858533473588263477071888157422492860102621755777117896915497885848771715037489525828954767275291813355962553170716549815462802625469277148767042682946006519434703600912331139934188446793110547542485498318693113259681007149731841134719451732534444487905406457317279005882516970007176845016791456033905244707716385375218043833903155776528884563168765024497833459183808691622848475381084406821114217518200660185529787758480005826893012804344415131350727393841211465552561186255489173979821811496285237827586333926929898377293243016516952001748695149942998617538211741099763062092887271235248303503170533030941671296208768099535491321565222849137710766798923716213664337915675441002648660754615098360194061683696607568822345903064715036493198392579390455596881535437247414021307250618957810785235432098562271040255692318321317116682405584341161578681830559163018810853376710416198025948117882711450192466283114510779728316941758783192103196823457410592368536995413955463943325301424432489424993350448102054562134381730022496298012233030272493397753098864189533205632559190384772909415314198604006484534886444526479981724666373734425427540453127402233605747101614470988180295906037663421600940988459661224368965523394957498292614156355542576314070949607696724521867622002065192000387696557489595851756317133724354768764054187001490205352451751499908566779126957513590759026509284065927156868731127326832842248238557876918019578626111039243306036489749414541424571817171708988363000554844401831287734899737785785689403827045708625035877483081699328305911046706581197056957676303693969769156155756297905256975077410262292862087195709351595940377799545579377236343586694852762394064735371754480840059571647576587678890479895074684351540809040009552667053598644729703020136265682518486119910719434222709743835021500294540039111063053052577099250355088821004006912628889281272912588439064702838565454482670422936567268131106340963932705734102967280726314043625515096108352883298790926941324674985360745816437046013311153545923042291176958578139580605253690711828194950493289391756639914399786355625265172975952083421391892503773732669075478232869685511858542907093850476935460007072474552600041933294699542764799489465748503691668963199709681297211508644486197947278223598052531435561353384383747849141952211376387440493685798217457773551880320109625931816974441224408112014474343868803437351476311442531522796707386791295229159622913242856522740680557476214038231963482554185974525800505510154478943808978873248646756124932364332455133662796453460706772398821351002661115057126783174288514909718073202740468645213262206340104812532862407355388478390300484397470793055298542126739224089520297454103176192933927760889422389350963657013655611396684823726228211971022898203070175387694505421825591588325820310345247230340538293245918909482173172838215977109139172097258328650907900016591822824454231202264894142981745277044384077657447241957620058143931715570985354125404215260765117855927955402174922810034061229046371171152815213173162072943912581932720622010136435938840333680119595711191699500738894480941635250666924580658242010268232880815322415029118396618242791772625886153258064828854316033211470634108081169144542204802158942406755766699776711602031277015589100586815282183448685430060209781157315530877839286478341866041402247412052030531813875565076563527785124374337564906829609240074061706952252576458608305309799284263770621793312757431058395050401568169247901215926249604820068940510375758136023389605893171156376461157390979657586484594920874661830866546581205739937238415080884755684759646735245441311281981118335531002029572194983538046580872999056130222620466267186059999765344268214323395813347392460912914708283741191620761487405451932642023935309189571872607210791782657813663350984331205729141230955828969991370250202983605489025421722192790095663123122142833797556391894683596110260598298825382794670889251072755647215924118725719642354619620516712268799661803432172404144875985263982405785710428754869802012955164841230032509593398679981736988400198160872414585080989448371856895647793586755710985855169394503803487783463746999057639739356255693206364015192000092407275788841109602718805629843376102071093856558092774396314086348819229858022209174026548518368492509654584445162812288019846828030442173854029265192098758648841368118771921353932571597140410656719403750810941506062240640978204276564918357810166916760695629412034414345251796949093099949913276265517891407894929755634718949669812270436767892571598323133130345962048808605227929970904131566785795487055458887143543941221521441266553274718013442051691587613875950434305673188308718504803260181282536955086247409905771535869096433952856047929023525938035150892804909140480041159052198797709635031364178914042741897056837963166984211937320579495672415154842091918204806004410440445980171081957707989554478673625030036750844410851361598800584539442580509145980863804334831179615264582932275969165046684489127183431392034116948924576170091794843389720849609583389612618863124698840567986827397776679131235820709224136514677169276671080337980285424194218881407265811467510514474824542367322698158381888677476385278928133124351894116432208294398730353848530989095541908022485437605001043599782571353070598248046578399838250530005908435861921973713043092454531959810725763733411932402456766819042340598017218015853415493501318382429223266376789134258733092053053690281980961375647415329698237601167845180466316958877599972183058783675065774820073863056491215874019223345211413073316192035427869623582887148071142844926385166195376756761392011414780906990257031831715568347117956963965340933510099475861083838028371457294020721068102880731910429558030981135781273175835333723320353794647414947889545088121457480920506759464453996649160006318690428350657086090627582156697956591557213329288299850392564709119728076333531829471809932115917594745518766107987673189380025500064506123562218932346669413429330056726267172336165511652609042953242230427693194080974437586332124417561073891091187422490476025913421233978693259303285145754028324688872140902048975535261453696973585601353986546547857616616509846079901202379592994271965204402882970798494396306034716108417824927056358513667048807736382757404897057458164903824810511580873287946955870078357460596284918441960420964613866458680599450067956415639525600826358221797238477041383829910490698824658953708360009888568921757360654697527637714056749738067813291192967811532338230057693520192319107653114616553360761517114150183791188142023720340024406573407746052393641294138377825320936393296895182124309511069830689828858608445736929034723410588150540652165050131399257996403223986525406901809049242563660777427245750871470859767638455275471635218453024959302227147454912200957356311556120354341608131556871618810597514759583924726314243118753791483306167221685589028180440518616053436041310240928604266311118315973788345034691444735360721750362811549330892657855909129293950718523067791973864436073427686975435762315488446416482045424966939936622749346885647617750322450247854683562398487763238827916466224612479765509601119736142152552854543035283520831540140499252480049515897070435689466614730159252249001020291780216515316096088641931817567938049419933326896533583481410202606310919892392984442816988837583853540126188494077008347961967458908801946478090190992669733724895504012189538847311644223820848441079267532419137101457462510174731913804566097717604793569287127085020426578489998683196199644573764216673105739681192012246524191047816451915803724274608627331433998946143149263104606508206535791562516827076223823803781361244975990409361353312220773320597355806372119660057396967007832044736098930054514609863386760621314804721323594273418845072474467330669330575790189578591283814523939830623673815391680858005243808490376810626119925244625985826347542241557593172514535520398992286747611117109116360875189175247975968404267602753021538508895758041351403023399437779908295403050425091098081769431185763785730025147564506325487797154000243792564777987477411110999802634012310355860459906414836528390793224157318212330035756353050419866791592047512658914282210497807707319813982224499500834945378725787178121481333904173149160327029026047585029137031655302945506459160482416108081694532611903712732068158802232421051338322159831102997030444822316773085304495105972788732981539622526775755797360303468911268631460279064603863273027163212250137429906295583105915249017168136310960945942137945098017512053707270170657823509255276375617495716935490211492010434221880301335759496020156718055179814534100671704188782019064134909434468719072914317714884236686367452672406726304452190755951889055964510970711642169390148468607411341043841510053196282818987328738802536648186317631785612023008155327514586990867444621041218459174093676822525639839021063150230943319227093767757776516068550568079205573026398323905659980444192213182257708440038837093130362678679818643025535685660114506778870951034153416112689077909737910325874171779806346596175618886958775717375170941261075573987617153470640255152895718237331921821022118922428203783403545717083811324305932546204112219427942836262373113714797598296984642496473501639121398320813367516860582024590020692689163143034322831235512215586777919495239732910711701250192721019411631202636903848588268778272245102682997124315409549971803620630642535677971453369183374152998864301313694887458633550191267831459023085570895942821607030409766931542506316242758645426491713936333993352995672458365310130216586137680468791693873525489554108922870893050989967540152481644325005163388452344841178569738742711775761207464214810343619398387717888017193224851588656002084602281209857413689272395112982395182593881068215591850923832720828080983270508222971512576537097243071110110796752787066648070061565820745774089597053461823207446731113970626365892925945552209994842180422807794231258507914545173926687820960921739426880850293744062740955022983060459086489236189135202728274371555894826643220997223653921862883603261190353037966542971442830280685930227416361684590007374302278064497441735919046672828779492575382772452824134084718032381074455252221279312003918158437211271578387978494327240701524894755023340155331691798532875177026969331163008599557888123094384513372381922790493953970390855182380633023625485044935150324741559681814482822284111614444754788122906636154128512782751884272918641390792100072695884440255058610655250469328882256509693000580390342482823201371497612095085412097584972247984428090628058175348952451464594018829189740536594817457439823096068659890484905223543005929285566617069455491578705554714717873789100354097291596206059157348218095457584864184293301749734528202709791728237902564168815407696808735745434705472779609285505280335956575205572354946695444824826542116613721597432071799587739015445176807899999180317032478324481309299425803495931932719641860929511030200477770461402799957954447694188568724497676645241976304768619662286642211437930274063875497332370721958143976043353320936085179187999612957820989990126731963004190237994844186634220763051014660886332788301178117702870559993477873962218508661167338742366917115971179745019641895314334940458394516193346345264968102194554948627465991707267644221783857050320331456312689443669376846606486671697365646898833653070861118260571548741147652004812852696192606542071914217671790145410874247286013569936653524445949633015064019754346652204421182634940319079842638293456257445321042706931273876619848150032477491464466134422426072817871971343107401074512113498617367051118789408632852711981353373655952848029547331648473534720737605248220841493720973873652517501444889582208666741419456686826784071551860849758212025490934231441871282520768474237361013330658707424616894905461094427537218587530504333560228462685707224331759519088566699339453868389391366540418547310324118822985685269174536734040450649956620482247997073417244947938069026589203002646189071113151486336637983290713013134407480641861543563324729423488886852662711589203062623200725085965075063217381877335156902127724448761416922753011469261592968459985683090193164477907036069024722142747206741833358433929109690212653429304059705475484724014190828360575216271124866756946211709188654966675347471909361845299254758873151660479118342741923789896786376621124373219271636999420167734762743099464300785950796399052763501623181425658336854709410345987936906153045418696428383595913442809491779087763989772290782577762062704198858597936502293438175331388804971277270609940615036247261454844522868012500924933204125680619445329142313920444526415358116416740114422708370458125888469828331585326441765494004075999027276543028220557396737564661170235268497197847347069943683231267507438041436521408093922543303786468020496166936725445554808390253506233993544198131412322716244718358185131318747243906439013695982815702893238379734547567139576940021799579245729985630472450299730661249416430830696129252147365489500644839449386335688532876421006829440365525762585017123863428548406216209029481130513786797542609678753560800866228213869195929116762942186651174049814440206070028532316388609424679438662614027185439715624672829213400487406195452722718038532723908973544926337566527405432323225531097609368426411559787445481157905677285467856275495595396465745635875788185270981628191462287477389871615834153581426822464147049995337480558982512643440190242639992538617285690062129567163242668007498125739403023239350107391637209154484450592749109516766649711954126415483633423928491322573516746420590953311241839963934928493023486076547535313882901609499339237145966560787411631912271216404706982489256052172269947960513223352297954000246761797462256624486830193236224373958781466770597592594484891462731745260039636865554068703552647486632227297471951464768993949488247872293468878004086549887518561484964751885489851486319892164528435710704549394402364027024512264650574379120816477772082129063124746439842982206395138376181916479002589896373106738577377177196517196210233999367459847374758182256604884236319447524352414641858113663217399445860771351356062655131508075075718523275096691843964950466624695679066662092323777713251955912984522444255094706683203306360503500758780168287970153128325099218761958877021532881486099007178889037630427611174324564431032556015916109468512807706094254896776097042129690387989441959962612117725548796302306964965399182370228529242857215860416887372762079540142769328909430582617561058159360661958012995997188182661508277161864828855450753617239575974838372634057587927145035041893239964832722649479989405677065577482168133133484407359430872323265841344933330641898092603937479443887400789759503166670040140906481384033744112269704474232345184108773859738591300397570288530618338292542442672940109527548932809827459407283809336246269381708861181953476341741281908856357091779139234040770704291633567218772417666061757105101836062293817467554631604271893252925596623747657011877227895490419750831160788547621906397361373617644579877106424313179077902537320766837602886664142095964415222033786570130348524564858998261037535434836488176879487957628133856195107386259319870719794813974438079216672579399341948754610157572147186604757665018450327110849174938532511974285042509617191715685863383230077863699973089230928113161539994965928266366874165578530525104718511079770439597588962320739413522445690657445885672229524253367354784389631125152135097618891170016851632900556359478974391671216376927860990265128682969747218673491764596658492496245579042162120713120730877826604500841255485955125610989422143822901110076018528450136038568104256820065869914802594325752825706087608789967919126492426483274958023602554862502109960740775309765809297846199395602952786221579141460200632914795879870574556024428570891265578853033956524120861775722383767833561688594711604968720452500281493337137993150662980938733818848491583400568803548353581088266510352158647742112142720778065656995126903680325437203204803733818672193467118349654166587594593573479604235018026754995686524438187648185253331661364538196589113712194416064392684538066549333226018827738662897565203165289184271193778876176119100944216702817901312081282083962967701710514454764482606399095956517367932376900485151115601661665373512983283709770334834951378888087103791746469436018316509413895348678929316166316022345058334362561448149524617681997643368939560165005222738248631630373672969674660728977828718804677312780187725788350080523906201336116562736751747360784385044255006658363316202997679288011382687986844114837665121579983260968523318060483866885627447410321419473462179552475982570475220358643803675354794443525346034195563436916970144808757026092640567198305200150842609775511581402965499307972141521494022325918512398659930472360014890119139846603830854305897394997329741912300527263716282678529835501111663958111292190618064790910996942534617388129901903448773154954008390016933617068861730063276876552699872038893470062187690074117903214150324464953399103303371722424195143394871675299598547129132765450079617156645787523454174938096465982691724913221907406256450753130984456026585457629621297205888073315111082342146017429599472850674280779275345202357641132104638671263826045821707378013000857496758397925665799797622341377542027204501555174154679472342463035366228283637867865783329667929988185601482299692399425795085650795578872313269771135909800607301021279188160214477784637701538866434674678382732799824066622254173221814645527172672099929410828162204967201227066786150103563498105441836867720991845122788979730700139832568551168088667701612644955467167436137033503836869529671940535683108206453540161130361108547175017997798301107445416229920684994332974576557364728324091594909695981575534982497067906071637396818847086584972609127618206527080949904983270021070316856075209233021325988577857337913552952515926194883110085249501128969178699755995769430273574603226921273773241936793524801355909918012435570876573932228734395032338723189034552058642547063813866703719707648357026991491539017652916865692530847011244977179660427904559694755500170445911040085962600522931104912380464213387820748960346972235048560676178200520195975548734474420124034330013822021298329422879433121932174075173873739144092869899966020182488571071791524855622903085653827163311457169112790356224260327770000882125861911164617842376412840429947423179777853336018937151534757769555776079147422999320328496336693498238761877650726284248359269942461493942526360899140761389182883393100711973394939696144394389138026244606697384128492969287885123684842363580772855440397846173419569593930061543828950234323617572466570184899835541943782326412174840908517236178229601320926913742008695919762468698654679026598246824874718471306301130790736528823132888305598446228016086973386794242227543469041434904895735676276249873398695707843153344148327394195167309944293850536865403739996788493365066454509684303841620497806140077191648960531492649604698029551982267273404347583053394880540808379961630498803306256719138615445103943852290748579035342846755599255628735978205848704277170717658344794183447982989943323813950101380632678077452847989738139502081240189641042560254348728507099215302677110963932347383819147397032528328475934789083080637732620737232932430370718036844807178492494593547079864914488075433737955436432479817247916255005055725047257981682190290887804016385560621920623459359488981540187464786303897399556180400033948534837882731735754506984058898577621055472964597121196092953059202600038207777122989637966007303563003269154299545274244628305747021720301835924628028255727050721294531100277753427216822469302259256520086467963379950668790583929228127610424806341439286411383509615048328250712306489344665372450745725514221149983444664836471548778824495633803723482911316338868811055877287336373649643636952392241174593774526703473296563098690942789136861030803575498449776268893409525459884790475443039117416935412985414259048871410729822718207093106594142480877190463884127836283083125985656021102500349689714504274426236512079989095469190293128398764271780267174417264676583286613469376970630279020106809377597977552957086459511769112319553609235958209723233707927333143424747666678695906588709292282412181195912431313731390451456869129860661913814092951128179264921234535766934152718697172047250213715198554430331460337225548446224224544102863995012130576616097003975724157025675276458831232845438205255061755708451737039070125872077893931434036352727595333661307881086338608977246944052196870191405195613613866637192574843789533851616994615212799285073106065419963631881235552669727452450059753615261127645688057467283997453671973559616465638280217395120368896176028136669839288237115026195937423593664877137741489323578782331087048067079093994113390903446243077859696529557926415134820946101204947881237120864845870789120163183093211277666155376916020786659768785862720084906578455624266506255085169466430901268082773943340999477975227808402347197410903521332731889473266914332940371356004931945797520740477348143507219285510950966818773697627106131425715582876033936477734890240237509253199925100403873178779702145459683987498455363803942825762246558702800584540459686468482959242411694807032873276559597742237485774556189273424901482794700691077887584928842651558497649468732942713894154975285885762843788493841845399465227887405707704794784130620568246762877745572624982986045936304247622163735205044547980620128123538723217521787267200035885822509678706038213636795785278305885398543739051541023873140977278602362929159448539869852344666115035774480243319195367222665334270556067068754279691997130144683805019413005968188903908764270632354987183352298719853704148730633500847544687933789155377026329218120956846479916649560178554119662579053552637578504780820781784024779938991298059599105194575283522533608950079104109789447520040586269452589871347125510497011532696601740183550788889758129892973258358328686042053715460121374068193531700043581856927696668178853554799137349784890699092864162060827367144218356728618650172998024163717589377315229327556460463611388423776709421404268036904550700394162853968145104243231366355504141047448592965704788327434490181035347845553547483985469672359534696876681949634348731494673252411731005286744531690071728830253011561514079006617499239267358669331885225147887262921856075275698996488035486525024594834785441570510722818671396402647459019584069755908669614454265241644792932711811504225612074885667373373632895522577963940833393175277890531042163421368337797392041100366392644283135169021689414075415752169489882721067007224188782049655912521152715324310134403218798197834847569545076981674737466464617707875639181879678782927830897875668078014187827099595716925858609593481256765980949530666479852211831176111261425113318040011324767891412218863411861481027911115123069084779562919617147276497262230790061665975902013899322115088903394345840415110050843073785776693128621429762564513344891742436220803200971100052976486197467840661472478477832591139040084366871040241712391120365538521670012723048211690335263899292926218827139244350316031503243331671975047922973936802408599200640524668148605667535376168477213612530658902485720956010143596044490640456816308762178408858571848556331460398689011634007351529934240300174065849763750681695118200197315578607963638143557572394280229998465579146861396621634038623147116358895196273165177142837703848341848257830194274958783139459564672063365066132907575459996587831326459969139227598851152552015257535576097576405314303472021469575528478839414705377689591655677030851735644952773151738190159712924960407418286114178429142405275625657727445380417055362353431601055901977342776978595690914036273459817056694004284705924398849497051526428595594436333595922153167974516664051457132204503412846195959772801100589746399627552846752837574770351783441201397031223216444350423888726228592012768528463693996269472858502383223768451603203862513713447798981621613581675323580074582238065826069698536524475003790195919503478202313867044506684946990344236146616024637978828187908636482141447868290057113828838017237304553332388843359770603105677382059760756500057606065913339124487772404496041363006073060271728900972281408013023581312258479607742845470575464238967875286902101171075499245729890018696548955135474826654052135713556790515076637422450408808754698062222676328114237210294930058275869130091323817391561222811873585581303468782911594760441219993815030059634694486643216407496863453787580731218216812232673088365879769376707253161874507441220946835549153004052638712788264130434818981441962899152609667107987736382815309626929869816520179255419293657008880176312858754715624722091853188966914142326851484833580500735165593703105160011960033056217599850718371590311321244114533201252435917603548953353703377813079731192968589024606409546573192316507562863624403485023182464847726616712027874884535383616416383760380631210198475297045355741770296652069730625073786085285470252397392027065467021074487170194509420311870397067851165414065536362421356700075140562282749884072911032416585014679814683189944497680638577056379114919484160655252804177168197140838459193563082666175426821108434953844239949303942819790729972425481210016370365221172628979617328124411505737768077749402053028231245926523290356945286620932453561694136443273241602577966082651108876209112890860872222150754773034678363914631260058272363613041261002916810372282601915139044810929715101548721256279545972133175495703770242137457787720304969213940786540075552959480547071942510178423907836034542317829473172046091622818279993056908568891700204110063343798920972608268974090786900554867494587073047506909681248223716304502314211971042306273910857277612368436275509357378988937517138181453316601238829837646397694031940442703214951936737909471292763618992912841058855835481484801271651433980235996696824360227945148761384266476091142915358287508373442421724221048006885181051071700713658381380992182406769721699660550906532545886428384786421468578994385851829142639992062123467922522740314312462630370475410276619846614667569348530733441686117958475296015406026079533466728289086011975438532994430496623457882491691877638474345423538793839820524128473796525715167795117092797271974016111529020325280631645289313169472477192894433983533905112591302845969573888379355944671225079464458640906673877808056897170602268619763257186338737882618207634173309793265668632704200272853519664508276928314985837756030096195369806026792647467187325537782433850629449416014930400505331945469421272063855256493486166528637466196056744806502267077136973122938508685326720116899542931162090788772604182287316053599752922533178482393935648056221029354600844568570770049555544646161536741071360591299027530003282816857227270413124102286488194120808436112147208485630241339411800448638535629826436063837293217484998735496496442701922717252599364490670432325095663819905220280046179092936694522733285027214934985075927415100274601233539036257682873270726706611313686648977112717534350358317220232801582511814567973363143728469949822818114726004120514663775879746000486431290806354832092971379384076002867708619257566736434405027464570446734108340795824502707028138101007765545217011845200333619843958382497870276864459754708523607990457446685035859369662489072393585366202646705467188644357907059789282682507964808101118406153131271987190081261202814442000739588306330960910560460532010362177001407667095522073406169546740028077527197967987831237562686512563447848941319477380992611299136507627705024070091411071936166147864095839717641942046630257355489129620373271466545647217430963790652421362632664235933500514598911487950581200442216838166020955969663592270971012472460966685935897711079253304212182556746803038053050913918647516245111449336720675539507875576467048872523568756126068218790629428048461925848907303991172426681277508259572777102535944119368556807873362286348898180884342425181698023667711506674112419781127212572846721285708872017816018001483426728233466784439197281274669318602194480781472077830260839920319000953603947511825315118293549844939683841066476639412732611615203749846704340113041923709871855386305035423872672170014687490609612954127335637269926290806804420423833986728934196767119520477051512759786507435590414879854136696163332193837220272508926434243090468478033560752180086150319878459300222279954294795608378200940606321381653058388970502335885485837463436888909551141625095810172251044951392518019618985386048711178612035452975995356723757465046435000587420106169928340454303008731957847267540608227920227492626485158367125379620488062514735369436810414918801317484949794062700655977263564837598329991733086008730310226963927680095452356056499755483089143684656480548396429999502927857160735048736754973180905650351399303048796230728142379474975318542361877366294264477223894877541356359888473958999107751680065778972989566310975794000302303396986476949983232035775301807811805245234314387179128182977630307126681527811963497981683980169006375014948388511067734936189607947539346326256685906650436349359700426091862158301444050858587041881491991170343683520495279861348693016065861987583925735617168194132819228014513588876725488087048232280053773226912366632622105228338576033541389113478116331153345538861061997729347506957400887108357986653778680822244401338746176833697403982468367317828114377044105506462522501021879617690401700778999422962239564185948621018251096936843313931599882365454948654184599333306414217246242688092877415779236634321477624625783835645294698718374019167162916979376604620946257685287065765480148183068783971470178190056821056151906991908857910784231557153587262224734628726835638045099667214488795307318601624674203154049787347378519965475213221434195128476831549126115923795308164586338710771299243876419510682282599557390524995302558777551973092031362559707702851764304379201474003801191615600895340226929356738792711974321343753277447524143948884812515303641284635997064960229998164145693611776233239184510178841580953746660121139076024929982096195321512508401832652118112344833442625284924469009462891074424038696101191971090405300093057727844492697033383074626622960336577675179380363197647908516572796485581120439928071541496310959954119904257119413637258514202273167055716148025499463034677578077156742974836541250542597872554952182626575086358457340139341101853473914858590861410863309549971671844894968400593009354862401073058653497715491469200902079295736707740625206647741954858077796321716050904355589347755349210197893828851582530613041562710218209989979329705895751940869245641147092035369525964493839503244741930237274632922255427338749970886705343856636517662706710578832391403584422984543558410631368573348049069783292714467061335833456802282090908763786527659053983479329593347993329007516232471159776173577664677087016458623562694837545085009747923757096686492041907516067315861721043096433481900513454503894931018139787078452141501543588716343538287271297631895651891873288944171659416445966560910364695587253843139715996597365625950402124707744672525421384721275231780992069415031076516141125949841440223024778919347064956130020418641496531428341195062490035527907307502082489073276138528902814811351438975022137460799327780443067292229271137922562374625545297292523038807926841805388554810900221864069778333123669510072018698466050758012563177743712202125277702843566554309957051894352471125637027724760630899540535373158489297356717081103801472472291566757197650947897561094452913314697138186704076883225264414974570547503924061138726532873085861911448689196934500648225457890961501408991185466242790954254193998311613590696214206489515184718713918873678540473895273627493060278564898220158618981982064229243104893004027198250922453924506104695691134414544974193754892665524104703662050177276060613072544575329393445827547534042137806503773350363485051798705254910816216500677383836295097063344670691366616295925967271718523600857096624476485572568251966988465337431834018121747811912478307236778320883700176907849350471660673882652653092953145525980396501797755808437041659212903895752853555770070573628702123143986287424280547020706343353566556200761852252269942883530722195667270428254879560126953983485137831422557618955294958441090595719075322810919390979474440107305984147178864903930064393533957166425593080875519111343924056019168107065343727762614204500476631616115906873352323233526285756325955503590402026551103131655491449604514252436662540061118625221363702693414858639857599901546578024573162933733407604896457646874734857482017658759547151540106741287737878515287121895871141051684657026437310964883354599979295244404850298946738535176902517997684695046589140979727624311183729121105374720423311097250686704097318831039093778899667860265347723554894775966435499466334782593748013512359691909862005386128635252263202601891895447630851432401431549186541257207325152538343192774803516763357165151988769446279825696103371919957860320909441910259852740863135386891065523403979747151340020096792342668338517272212589273956033570297588574759821029498097638674949196504889325658875287885211791880221764127524424829228622553836695060313988498017368197768079687791053410761185108801411144565836224405316682798896494557558830204800557418762809398437349863593600430901872156472536551137019798096641398843309588684718863793246097013096181903058715020660747161983301890049826022915858857078018102476030539600273596724353082500776234354120389666778247035499118150956379648138171914716325993699880957353590395669346004282823331388250802409030979091949553192816847873319723400010447082475783798006596925987285387829473146250494141051406074704921386983225611680622688538218850020870059700373185956851919782211080896439961038573575353044811901656186578685000235789526517607154618560803653860985631463387063524555252618143145449572795189296197579356228094979737323131460921635802076604868133626709118076606315647990447242260488525052425388895503763535207358236215896194632918025908575757443582917458640595587622754043505616396095811981614503086084651957303463409701166530146960594082314843231260707616584569388347890225379250297721178604281937882072880019974600239948244181754125107420831931864472349430345238077803355184455886451055513100287198310598896640522504878334076518580796225960695535472864628049534716453014162737662457236841233878645321700622107539821990574804508851921610665280034175064157673633259775050038182133389595173717489562407412234610270561329365733667594508534497653151906626628249430692931780939504569758828785801860310530245338222014229946587706385432114459559211021771852269028825970475039579327353437063805983285076361125309835105992637743075939028239120254022079801259438298625867301410689460837861213745800303157305874712128199101344318242245652960189959569751003343930528189752512535695688982933927883861082096904600824162753771408325529105829390506682019992646327106728814485394987093040084598917456267911101083681409589875528470793673882796749801601243424016681462371190352301846288243325151181422075656978857408212642964201720283731926055377463797922739959278965089638602658598401115389290121543221605540430488703032533794610713201531012364339563888519063719999420325318304886628444446352136329104722870965659744766744640663202436864417817123067836928201023098394249770355812300126313625072737737106263775027997260312067015770831582527056519492371566329089021549156959385497881621446765283660792512426820411789186293501630148666336427129313427999495424417706919732730107749076532331476928528045305581633523633977285555919269567444880042008762821617309191021398769327098601707713381789572808951638366734177635267489465478961813681392541253374046088918780116649089179236419716210387061345199719245133993077721685933228235462525424210473521342962403772202929406676498016348293058487614378729084683915667059780867339040609918098312120038968120207755651541225449504101168718263721169861014604564033698051879957752392338976905489922898189749015669942410869370861771077448951073396018216145976825465929698656576681714511139037358350615311828670502331846816311494133194302086071906162806246998743775776073858569110597766012278308323447117100361170523870281663742265654509397423450453649350627995570492451116792390243963519924826805584058109818889605406062487410556421991798020385108628700806455761174567846452240843162413255257654649718965944301085947764423755869305953179088677613566337006278616290276445609657136204484055507501411886573612391381928995359718011145880408499733657692140395519692261496548047634412732494097090781378713070174850724457561816578227136135883795157564773966085030826419968186209827144726327760919937662672422142262415856721881527160253466489878464982882793675526976370902124803150099540988533686060686897327605794255114999106749736991420549844596193833065823332150860807395386540742628262925901451548766048740708872464001887023618426580166962827503927563445030644944795464513081599215061520700429248647351448754090767578071516584186576650197625085704406714766296393332046304465361678104522009485052523664712082615865605574475024077413399937431080908002502204472383766397542372043274778984181539443434408406162725095224961963024432831336350628716628455025021656377532418509891743040327267396487088464021941897170509911341202948666967184164977281491393041152441646232755515812242909732038484277799887161738601929088581153304825420654915220885057501475000089067575734593009994208016040650579532032067621984461159703202594361774794340057382144678068919782001460066356610466538601947130163527585039935589982723864565079257419796440167314132751600881623699145172320287207393157011790866253809028979939412760185279677024974625316935645579147295096984078047777428648330129634320639386690859339651460159998805371991856013940415934946205056754524323327673404013303226534675480614133907852084312249102386085274890140880037170119788406304059512345703702726009359988338524780339783979088409541903868199548268070820489810529213101161123398298854489614764146449365005979546786003932332606041888441114595844549002010980303084796577942650434168624906538573684090773144276562684035576375663875300718024053032518554127673780894813236531805704510465421132938335105573774322477065005592882181874860708097713075743252223064299736443667868685760332582713802129806146795542769090275762783062066472852915860093419045301144142239753143401744429824130243550179400693896627353638853619043248691689809258976367657525126087407689664290042942307791631886335561831032452309163288067292141455245586005110386051761767521340092241517208277471077785621636226742186576786105525660528427100157249295510844827725768440748110659224821900061947281897408256385614677595101639686583309711526315704165467066306287822608500662307486661556145033619506955668017475479784981886855766791206719402968749296547623960557230305052497546533572511706338205521007143481573362330547646345304583931031169690934802842344009750923438551604919926292958088259198448587046521115579617335414009224559522125438959215844037708303703607892939965086337682356678828070544900898807246864375180793370460421727621321665623502863145327339192842236044555896605859112458525610162054981881002054951746536538374133492762474019349161534384589356826364596475167330806248287856180728824609877242175940894442576560960629720778767457995042290396050100270489627085899152147293931127198304038038182957909058714963203464687227920486469394001020770760343820329307700470714161664523246813316807944710517077159747137843187250411837577603630734608526991664394556470367551373679799523875911783181084173435928669085812200507908455068157764491471031444050866991817746146929992452737501534251108487342938363986027214708816562492327883567865918273513254701717587436829168167722802265744029209354470082116135298251446145568089407137335373832609587586464334162786102298451138149164102202495750349868633215056491700769186953978393826085773376177804446255155400696157557516638685516061478642596690497231967323271900658894797427989672935187870848279069791068974161022507772302876361461704105363929207977241503612470111896241903870411929471931472856499426933279692701224559811441404662375345515956454106105789169357242448591314460850348065940002571036955397492433747596852913940630604182352897527096065522499807880810589581076965542856713675056921409449502301753824678228293615185097449198117474285701944136114436723595811752537076066194116750214672252996108315187442461285286140815378339935139808416702050816323782619022644883507477015811576758419876568020184896004751664562452252146835948398528875272478906258510959273240832486411383299755522941039320935439687219836540731125244151950331763603498157442530834996474629223254453973324996587830856003683485202033593214257909710806023831152518283024149700679611599667274091828850373473704563031926932180470812656294905715372856827075797849873054331910977938329618621982640236102741256940263274410789124332177405690856685075628542629276258535883065046058198938521050187319906967424315628390412985669939553146913259929425568053863119071047378424419251575611706640095174284692672635009675434380846444530309166227199171678095985476405279967228730104952095763033476465902509677964819552783940906084754178837025373374367140566426328291166994059976142739249915664199835709399578455057465061500575323572009440399778153246785244857565106920993779224920753520462002269240901153350521858210419949309641074263314798026263160048949270552245092822006408705146541254660833901505087488426205166278433693875925247545222631836875528408304536781637146839102247607910691822594817482688083386249686061868550264886008386255856477085089202300907795602149320282023850480063362259104045443383772335196164275557327930695069988664114761358328229035201600551444560757619930424278243001931985548813781855852611338829742142239602782990290892932732733165554124259852714947885742429436548978434664948455595151776909850693006934538434641778950601969782013989188381682289894445063479520124774488452211715353335365643567675136249566410501516973826438448128380988303568071582303515381909759688193937951351065868173307457558141306243699836591442797323646454771726563917239757548967899756258245055244753964667010731947077139880823035667506227293017546004185910577902074062882134288150625627495523766228473051978309938799317224139711743608988127839609702674011213056400529693780928526670453986427468954860648253546969748778085404534318482713896939336971584434272542782599356572037063919082519872558368171379252782760379849378686773559404571280182753445914987118412049938373575011866098704468827481812904431369580270298376275605539958436242384075610850613582685684081524884113544228530872171510849482382073976742520554898683065304711603908193428928959953262931736903112000911753023283650333622224478715078307691192407654202360704679291906545806269550042278376661674285692369014789598448975475081830157456398819894460473116425124960819301436181018669733302836601178245211449674591296627563334720850976253031117459243354081507469591489754962640867332662666957677971737530574247695610855820325273002752125733215869737001850825983431457477790474794326260633718063210598900056040628397233784459415010138188115172645193117828355104587589293483602337250377915414368183151191574450919326824356617543422156380884333065432079398757979600374341767838438134334768853331310699548105922536736446103951847788281134254868653375994663289486346377667821753625105081906343933309737173014080029419920397006224898325639248070075885687045623173393741760431277358752478893580349197186881043550858695435275518110640275222907697869524890599423486795510958657776172282098411174090266119076535426800162681773968632372233924584437003345233211050743451656025930802206504891528937709240510532066647434971287152628864211511759894695235988550324075804913011958164234259958148420499987527109596665034773624725632161285257835516858315745584728100722212165158142018916553729694412322111532326526473879951652974800657871246917816435746461597780440343991813709634980078982538101233725731695781885405803828748947922107481398853087439664662694090832535365796128725857806898277867807467757663482746313394275511903847263818340833062304161555212882946874123688663100938247624907230083496150009585216864200681265157983133210536905815210082974009428376418024755197859966196256283749749103360430487088924616618494475050650655446978916950794195057690068124898410819096086485965545990213768963207461128202219925702106334720914049705947105238005162198573708323422394590228704533200841405202843570613214804460817127859484085159282884200645755836239222578064332140805880329864505949878088313271268869779177091542524935200824284217595709466634855163330248153309567981217777960704180628306427282752038758117100085118439577160613038282935241695089555437216435919420711172170393973141194911853489971990109623018090188344466101021315720095132661839860974992198522081655791167051815165077852036168029054982782202720109399695680902903758946944001708453250405317040544999072516875886671047650240551016821108593419207540399526168991843507598942694288597708457445490172105144117064323598010176234675969955426124559374694316240572720515986426970730328359891539176759675793845409158821161119720525898326572320502372181265055290172241397746309853174338655804097722327703755409859960448181231213674848172101070232876695354320361268926572265421010366436267131296054410133042272926029445962719218165149009138181390614877127680257356004189800366100614864279345438793350575105084114153129184649011986425771899008578949590805898586269697793719065873140710029965937988165682181402946411373536829060292521586548361001881571979298533035809623179018573226924149735560822763698168246251824487915044393035706120803459433386425992270770419108070432504827370348402538375322897548957966682399756617243750823999359965584255702109803047478393238057588181194927174553502806046187499504954673107334580799401025319355694738755971219680034186035690803606068898404660749247464240132746051522889723404781199909397804494837495384805311354797602569827253910143274012598159310789410566898482364092364530787891351646596158892872318603841166929453756149108102165666708670144763790461792655416940213184612323961839642629211338885287524502386351033678991369144442211583363128347010167771078179042396152184701579173342203336985418017176641466861154270165610582105894305561291337754907324762761264527779210242854353313268420260294285188661513349773691837500381245553004198216203162883129714872573822624086449183518813445029282554464482781598177385269933918017047122217458679952419387826152634475162232584904386916217034404908844172332112504116077002389862965104634560170954572007004727698656170705393644091165568144379654446056531560807220698919068778106527781064543742739806354249015511749013463334410900705262689974131451339930356603518697509612137708756396613110317124018542692784775753610412835279817049194582204165052703765124502657720397657898053175974687521758481165352256657378688512353556745061530302868512953410579185210210154703323109836418494874335319789870294327015525508877113287317540039407616933619994743083965051342890922954497249277372302091728044307709844588602652327522731784181163613559031223594922269134165805113221833333698228775000926597191304655835294809663174124630059770667870757047379772498582395332361103101623562426419379635178819715069128101613531645385489452377841483819096451909363558170773439042405399946010505151077592293227648698457752826314832064610091529715014867586991756286772460952891979759309057562993862921440648959970528176757785223527740574299461251138862411050741166084399449091296331308864704455719499095934752541980508865722791901813401956797009490494301466278678559895199852911585554266186321067807000815541091523064078485421260945261474045384320090194644776105876423997364948222723613770957472173015891089886108885818042895116216339303490334218937029917183314445441042379522383056255290867889200975079053059780234321725239025482221935112787131654101602949074679052981904246323581397462023499734156667822919020513596388325464381626812542187859419573632976836884268005812364808743854218596420997961407373986382651201387903157309218742090760368736917390764012367219600182114929455621344581028784876235766843102086439838438308224001927245495713479955239035853558561380419200713844047558272289128587143772066372186013680763757541232363330888912429180423663861629555569028157911165688776757582358518212849784975886331884694047228733760485267819306725040081196185211663710938342328376996822269335622601787789770183417291985822481943117160992096868602060166629934059703666798113663665410618358987289452544752592424789656244964540641756789386602412762579834433700132006126575922672016976556407142206867057636974780199182412916169380048635726602074637299472745303185967365380565586161254012781302536351561752857094930285103044749638820466876546679692899484599817235247080589445892458751210818035513189467641484297921243213831446780525075590859267558276882093592500204863446014282038888345585112791311253482261942610910777160560487829654058270912152516287698361395060080581389247890552462726162796895893660501498951026209764856516857423047970825014855389559974539700176558721510161888145945397482489195017936895388375564552701851766525912289991782592244561114482363592829266816567044376667908247801341346132316149938637511515343785882497975423424970755794410406674119471448924633720930406742079908697291752780130635612179890703523740436560863860985011098896562115206871011165237900993461741675084918128585747442468584941467380179253945081610939094023133213963076313216801928473566149528960722846590929386855756803915682174145856253775106892824054552104017844075305102898676245813092547194760332258742937331758609192622384131519597675431373293768590139874529045024425321511520077609933633112096498549188434695397276874442115745551203748616235226736179077696159851167426352139727439623583348482693545078611396260681023423625760431043917836321686845753287957234448046609257182903516771838008963483134695329991756368552016355331258053797046285359135201694303306571786164579656155579021443340981626854288680114741233378256922649729244859072818708191647682159782076013781324525379262366142877010029142442656697519580449937447328813994611541305555686930633369287716644778915037250697464749874458861084749062414078128842642793672611628840797326792464761225685183057208137192820375060985704044987127870867147499787991026632616280565039859799703376162383375321798565379448020562808021860603066968527732260413531540359034511561862604658334926865447771532051306074222753478690664530501027186131348307872109467120998725039495813354202960191378287387904747346234130993037970296232074551856650760987123491637683417624029117306680260178629296329260970644705785404378099388888485597806665750712089213192064596125521143134130215614109588553902761732048719473409645723892723819382308100141726462456421795422823468549959106331840459677450428174325969562987781341980000836882623786393458381375397807838993738903934100644525277602020992974104937157639204655118826452695684736787740037967128282321932507735779212418252344300318523348644431784509362736719571054974095743713688543705682782316512601318626212440964851299351869706352297434048241219875874181159590651745731972280032126908692406661102626599132855003796425663722015111760999055519209464434807097821040083982136194931826500372787861689301574832972283671276718954690321695930979401019384906541091143257803872244960036660864208207707055459511318245315484623070608198617458652059099176366637680753752947116892434648727409186476379073247280433570815551210993974661887266430926589814237871764544581649189558268749537051396089104112914884565118970988730210923207097208553282577438369344363337907463066072685553298909752794906591345815680938841261255491896106283771596418585021380082184304451681451866088145354170789674938010996682472359583475473278579262440469769030048994902134535731056873385879973632698331685107308747196023103357022368826643836349327125694860792679266808384201606930539142566613555072759319340128195422071462830899001147787940075111683428991728474034097702148415244032551083193681494241411624003637720545132041902760654584350002224293511513516275525280239446507176736376206796217998957808138700064240813280069099573120144727872639984791323189007143999114266748411263534084952001178099851385795716287056580965862322770758271324639026331683598680105755261087394437765615488525949657223686778119076282256565148405383485923639867340548671733844901694023357567354996511344285060032524405544135432518405609495554609459108014573639660437334239897523170765352829166655005214378484213058904928759848843369891208018155637467483060035414969100813624970471474891029286718772795262038360873388354991371779352208269921035808443218841550534169587981841898154283931053603749766175566114286044355087116800666465917998602227188450021779809261667374523165296890729508124003504814338082206987517966195758581135609991774497113980713011744349505257322964161233792873562420451285448018873223507919323097471450238275725271821113294486473261073951116444650594972813744041725802659661297550107559053066059580915163839545534515712819043870677024550340696091355995585996201395636503564270593416927283336800207658972381888077651293089901926804475068281699792917514243929749422040193283166593092351721614163068727261958831575426299410867220235970256658304290612683315504777355517814474243589231805127896162120260827031859700292367689079210186819555228076185823412860520149607474202823668575046953682979567234983548081401412484354281109943344363970018610937029402868448194767058094252926247342952650238007754673782038600348377045577769621159135846449233483909812178890915225202870022289758363495264749667759322490766973427345079074420525312966006213886500543046639839214894087022955499162618261714684837846556318120541391877692506187336612233834424119869284055788957188894726492385253005990633455022071212786469060126470373849921933514877714057833756070703992640075471992958199743537094431541743518035190950288090147163901712014982613930973399723620117834397300507994671914216778845450348033850604691994842230593231815465197532275801501693804931954836369431474978466338158979225312652574981643091363143317926200021200940798064328274096796015826654778354226993190582666997812033953363094116258703150197728843882683288406007442531276358838055469962140946526189531277929162885132707211851805039881059486507515043590977669863432539496402732460405061305532799403368175316215817353087170524273381425524423766805706845017560759067439019325753135897158229628044845118708056236612235470293661641501418072443688098651775720606391730195535982340245490091148166738540452592116763632530041271160832885601060371106986552146373222078042280979026815798941368041597285868120090250890652529992347338356197200744115092838173354828720902755052952966544758693437508652650356330156433616499423188626020867577287771318338981970015475519971001560103380630690534363142479233114146386883877741702347607228099742992929845190316793396481743421584497340504123817354594010810718840981835314883208284263671296257372893443060057068313349478599615936311797788072116457683866729095744448601553386192980969688808009668193612731666655345883778020950391766574745587105500154908236510189434240634016607577428518689205906272257432817599106593527139411967052192610596337211077682473552692102688349663395840345355870692366443240929405933559102093650625911302520779278323574522229720807253161868346843445274336606469759587735160004191912274748146486363600221087088968045091754636081312327803184002302466143300167806955680829726859741427336648187458624489040886937333752581677234466996288846700148716212457449078701816361844382622643193590980853591215512272433337337940541068474227073718780755119422444343003765763444431179574056838868584411771001690287028043027810872051456368855364814271289180100086362241062998750357799828020003566000769752753221687047929250625664515917851062927540457008677910310791591509705048271914076122123818327110763522609075216119253333617990862891976371612000210028921614026299103354217460572338575365235201182548900644205303206018144560886687535235961085184937485800905947490311080617263539453280326092985313329831707545480003121924728858733008862422671986515080230454603404511524234141216524864900322804127432637943716285035568253659243819137144006982070094804269348969137996764909087767648743227368561588290801108779682614443695902183876830115250750733403211958997350898902571331578999453000139200624571695017106178003730500102923609425055720201374879595178951759853570090568082704724777799985667768927191196212707662813926130639381409997113634569752818958039170207217877949063416498814065503128673272701211429056548978698708657110235514497147902762589411547239169651102611463387603223261354941780205068680578512365008572942078149258788942224659521476331756265028470199397328203081208235634496250891094998686405228670113552910142060288764698657031556081055920291684834565396878284095261303111168397287349385211478931168215292966415196583259138313281227753187265872295783014288114154087998007690991318205051868037530430560472055527555132376940900708109005048797800806071412700569049287265916819037097819164977572077111612115510142752836491976759941161111694754717053682885496005862083002733176168659165970840341032730344844147636190277566060323764221585088142576347948522589892623154146454792433818312989528988818336355123477113670678062828836650505851171843394782548918384922713731843777357321682408596606348907999129221209237994534921292890992672557176986318514424867163683087030391174412219116507119846646499699849697116505690172418969088133011458681331505126262483306500480108026592875318263464553092865433861244260341093765607952535685614445078355289141140839697590074604078702608553685992810668174737371106782864580118504458183561554991996754998872186877354385785319124297594894171157347412306823445308916048318749358083757106885569457199574162187094569740898409857227187465753010659225559044520943905045733543856191222522702169228297309749317082137117991690465766297490881552451517785146182887224612160089021063688288982736942488207699099637043581402294967703147375959574957023301424859851944607593230031859752637956657533427125434845679685012839025959471785277344452487532067218151772717742283683164043145701453961842662217583783679365597104124686025766981027264594464740419506850958293470705638742089122711286732446090328588580747645649282462748426060519209015103678060284058689396818418852524149885300810952849553994663166441862137851846380621762856371296541823095845015442348634218231985587143332083969826006801317572759805654405956964509372703887888787027263064593814677966119163095387613336457856749043432670188968613970641345596455003573620304792958107249800290385496482238835553537227682901320801322918516420609299581033807602886832012375157453097684335714430551531240001321224257897282574826447339539376238453517224852389237720377941463407725743198371290622604383046329955373127711799081821579857592103362123627918540584901214565010080876005274448994347131280104897587260537746964633698734336455546942989876467871707323552330551801314883404544891233747974925474107333876917907659900762842538599945590595707460936172147730189079966273982332219843510415963621408024567638883903341306605251131034680184990208645969314998325709284829635703844628103071156556200375717686416328715036248970042635029501662460247782689068361467577081674712973369298681221529260259957700116392185057298510830198042948200054225454838142180615378565815500553224718569512556221392723628566013760542366320122274284392747397865908889783886886274008380168417439083136756677929934941027418355299687394991262120094665460806182421159567136201416416714734375770442649784653504984089543532971452492432470167959899529201215679321646756822997834288504628334354277672284206861902422476025451646646674985569888521105076726540204057799976987997287241802808450425702544377197788393412060464563943761329927353169788003296135204196496223998433116019972554101331877041647080328057775583042359414825074596707226102661029834916656487314886789679679525285922510207638501303968282432604852019410792084517569278354044083075106647448360379192926504240080119115512901597945451222620464504066151463110438919471885526374207227683719036970195822369492050490663517447895045600762776771670023583023766096906336086720774753131873617784991955168104567359765878556375293546282496746707425899610410764611930928991062763257339710755448175514734003456181156195167466844884628327133459197935527789753823395415092824722956527285453839650971242011557734654424548255490335421868157148080192857839217403024071662005445324336984906748618248982125691661447863256530232228453456391662182751250924067067472681353247548067017667138990104439349078426835954131822509486715381949684915722886792387752736838955531849315367507490629797642602932335638269930929232922982507646244707933290293365413920696039425868984720450563973724341251275657410702606258950053032428103327691495176861368416813108148697072568121121386466726067409747684220443035145767066392643015672768321568062320606484674846565960585709581456275910584743340881610053309872560199085968060372991896568662986642711614236431040498960270208658269117974557914268733889108827543059423416733689118381493176404573494039098615830422578016320771746004809727515021074660673587439574987750405669662299813201707489993762360061782163331636303912872360798307547546900783340278145128862240736795795702115705301140667713322026171641569059822683571015867975470823934863955724357527951287634968854393769544235076903250248605602747845238305215581181163908286242526859096481179310094287122646051255526567040373512132809249678788813964919534915835397777913605642740568215416104239537348737294011332774829128061076070693948366730254544735276006018220248522715813226167894070846291589371755829745632168073565469495769640810278722434368563540256643039765168203848294271291314396668130464284453616063777972688243795015628860484275442099320684036670666574089533042516501831007614245894237515759258632740146207617297261603738793379051024218735215835866220143760053547450203589789292782126508163156950766672327579971281175461925044610458802175763110340230145922633697923937647503465365490788004680200390993648491816912146804413367024253225033138824319170633178087817031359530695091891453935970667426608481705164160696454788319840765866828109067337372316467944441277940617827844465962088964629404648762386495248551033943630272406999087701989285732387410301234066425282926668433133244529149883647804739448159055546238040297968762692133529541412530101745553648175047483104639396634083225950835593838483304515991760196153433849040366663237046624636881128648241811697768642241917398201913880593968262551058891446248138365491030269108613772163044255932963697681556085998901561672934512015114750909777443027799400144540750526171982657167827879526161238803983485304542569790474735324984766708632193699125483768280020086194780781451950240045895683036686771038974427159204351590416869348412277430424292440996322362368087414770578715018049450706406853817511220958551594532899141837314685729092658286848716393947046647706024735074288797672726441321330559338597296033081584030392681837592586272598058136012060529069994707008728639617428581328039683481798429585776508860664754869298940920066354214322940944229898109567350689291794570553917386325014873224733397837141174686902012437216221632180279259591361584030816190149565126996250195300138052077944581695026742464990961059485649635539630295605847116655201424464887922426120292563598061643842410695306075703871610236703321596386415121538306399059587609230837570146272765198193431837187737107200921392601254229699324068169099936706245636859385706507423771030793966873509420238603439266692549920009558012344183881944942854294481790101928000658992022919389653012608108350769152949999417727162894817841978473449236059340967173912748697383616977441046579206554222693010201737435538202677256130267821153944339667260509071517326275778542937636969398973487480522407870136681446198683594360391745591062591865336562199636092622264826727555793870457624967118145452381799445940314674952693651821937080058009637595449023527003138051328545506138544539783553736371908838154356325450357641992349728107660149832013526850663123434786769814351097459919924839377136443912374441272701074903920309467861670631274134337096848898204440158585599810777310516033999876228125098131440446526505995750271705079119004135263542089617615540983005460116450722667302066585457961553180696947811942590982568154973540098623153567874404464149218119978329609657198940417861286847358680349048788282066713246389927346745742793328497711635486763663740844113337002317235794696006736360288780241823319232052265823128743038977981195417508061158594654731594622491066853426700619853095178085569680659569147838186990804371743301422111180573519475885045972249687818642719291293896209391802984583912514531983491716835986726925726395320412567554025918245504598333422004718819567227292914825288996124384836180819165693816126845056474949794236909151479555682951707939978331349295206315327223642688057626958282510069848900773093972334671869294278057545479932076178924999684138704615367722610708200522908566219213293025319046150951219172629143004366988808169017340987635399442374591087904542883010458231425700144395556901696893373413764284712285142000534885384307230701679430384030754450540157325919220522519799702156034911527472345638710275097256280581272166877448307700794679668868111446175729166361319197327400135254900506412478759141567632175759963859820031526070735381519244676248414757048672281566296781057458915426392057039426051796189623768898681290386471315734586613546554333943653243738843395673846531147416703643790226369358034636842093593275042870466436089042453418081101250433698369287923043671309682167765573947954558511553244597081253792079787242314162607743077082925343690138819903954105931546750251298129527345716134792093698193620417620620931427245383390152165208052381866807716716917354883577635288700781644320552654455401481143573061609271679801018203507537046490557174476060811484738335801173533531952500046957444942755070985931142501287313731348004209509644412706873681191480548231966759947665669226818782084959470464625669407341379561372143039578640809114970568148451221602762054460558136686103318100920426195912149082197708096728133675929690308124948594989819577279502876976553439873055927475411972848755515610688187637837559767466001159137610257268113309463457975377002273017197018467217754008146639715547492537886673421492608144212932038487476613184270986820188907830657699448944346977141220426120331507984402312565019310594073536295278837125827821102490508152603488386419042732089826017818653550752832320608916848986214365801730980297895289212261494562594879016505406573156499238055687473307766402084510142292452421066388872804913761326510359668073174751158623323621746708012716120765439707904482683939593900534800308138366524810965460158360085796661107231208508395883035764010661852512265703863275717067077121594519609532590561473388855207431264339968609622084560929466417180413989050495261998219431891446801153372515472718166703796129677953148384983013389494474523265999129009358685871192998316232343618350318276968581288759692587631147499018067832907694303465965180857526200447315575294095879549833994037306002537977170672326897901534225192709120959595482825496213769968095540268216034964241625212158085746020573283840823430063718434931791396914293936782547269711164124863984168018562971059324698874023850100140434511209329555571474610949401383874300061683770674323924113527047836165974371036506136906951375592700196289943650399540406981481034100698910310091273221862758272962743844265192673390428529877503014187852793438896721453811982503827868847808265997382057714756231189112336237470571489303452966163997657650740856548417303751792171895370687155271249812042365223832499921305145588157032867777341701487433781289370160809651823005124662690850745001278030408401039508240124280257064971083379938035903595179770194816345385313325072848087221356046391485472025253234188288386752254578437202451497697346958966287017845379980713850157165059915095302553763509860010363544028530668372974544578514787081363395029434864745422303223384686097581062252995043091175263189930641103442750684078512401532631605273070919121962809607577601239666742701105168856463882991203299299881043017698134096882169250953088139370685561173014247956786836121169098099984795916124270677861232202128647907553305249657706708807816123664734720949191907640547720864577835703799063610783141760957913925301127913325249143370611776320808091990386116007396956393086491046669822542213337013888435420360075522036134692357499103935129503601044601608334400730609899069457560366824087667090419526288667755995200866499100898380472590833836002833868877088217442113300470851172248288055341329823680370293926781748107789242488923205511300461838574788719944275662465727614852165565422761695343857887494313315941301359370372945241513269013579257854864669235340823385445253119202635567151712159125149583560560038751071271300484383751055761813443066956084973547990573356204431875803019026766558662240007609417538413612540030510297369676846986036173312063256257746196530781512064526538600226953535292509988725068236819038234495553732672977493801846376712040522543620869425306598968203602712642195696751473469026024058307048698894690648771786977588035605740600928270507131828443725157335083479334443261026483904991854774099562553303115921250117785587859253207456594783992922420689661127294088356702836898285656116143492899363221226617965467991665923864214253792797143562287108272271371327748960084409255009996733435521319368341397737698918614323138695129499973696188826717153317315086676337523819856510011907339677686102129287349434376842196441873123512505443356775482447579783366830804581362629722636179059246524428766249890914273184097013871273392374175693984968595032109503457136896404472742941840836039515202374897885802226633272938981044077757914477002723103986946585519020688452230306680626263478981932028391138323062878140866652033983954824210198949247651665228220843871798981583698317984243873331991647280879741288239933932024678374519564369612939355539447781152825505188724665341191182131307364322400467385718044035522494679886230733433660190829841404401408096902138172096425387512639858984034237312729175953349562024031724066317493289740035884058070474681016751052446571026989835673525920677614514010986934400978106569899196666535963823883183168160795738956090575410692516542902743559639682328203573835882048499514140027334984305201231386147196776262289215586252590172556364026271338381879190863443163473963715183553373201998553454834194642468155873205979101318251507383696385765269614403862164878963351408473273815226284843432704775262172506200679337119750614033005236523576925398868008969286730143798051027081785318716312747623827395239241733621409715161665002343132691936594253507698384749786382411849237528655085099071995651389236796503775824853198648445778282131235812843905015545851704178800580258122243062272861093887328680478038487228747611753212155716623277640811544679411202634784104163712677087061037772014896375391895508875266166290360343682169462229119794900257040715351897868004325768245671400661021559384008787577751851709496269397044059935126881036583853742588431740866358913930554970150565288390263103486981974209026164348243503226429226258810302394469539911714552076063546021026227216959626703549514483527395068128497527821749948754618465791268352990555124953992576719699175668746723871120167065193679196614600896398604237173434331178193873528619220692326846794699980159090644218713817938207832110211563167710145061765392813669334929387203669649183300727320810901017461202600136874779900007779569657379423296394801177821176008532521884013998267807243569249355768483013237325434783834318988227936672319284290250103039779872487425786953291301262194718350251361714478866325240167228331070679326649725074004032716581280218221781078423504002835581913581111814799772117167226458392898868026306213672830504365154324303568968250694900543151689904812032532834365713195407717028187716432309279503690321969857047638911365399352126985988900889099685554603538619790299556809492228550441069085912917063479856303655217623862686860840558721202418481129392177427286604195337936808522046549746277199873738204561356443496500049314442738106339577761144794857992122990857805485986463147641847313374877958739405652198173154488530599613110326034468603929208590573884625108222581860307329097791811571940792605020921398486355292683328286447176516960319967938250737833536128198393957366165933294612691782709518498798165346749954336295889989330825205562131155361687533308051840616924273282061166866735088172142942737909583503423317139662483520126916783182557429720166734686715615218770572402300803829318278066472528246269774169364889872496810952851755557482753173925916735426891177414517030528328910848071226599853052676304196198849336315008713034799389790500746734495848523962237529280000598135907415877979305653398154398892864344839623862810373418537211902980233171918758543324905990820686943794562240536937151491299962553556737502060071342677976306586060580041698803868121758959415523669744987908118399371265109190178358937795108417338355013010184624519331564591380596352296562945873683006172020083599972995374753164496153890034314530115949671671523857893952607168124621715660934684131145759379556500077935077292765928250213270757182608970763010486981121880537851480164300645675672733506705752367588108582125852873074782549446284490861534052834904110470135112181514856826207760762210278831163452869483527537720774789575026830504086639880717608325628665268221873446812776671824054017863769933734357907024897648091022258242701282754637762611543029777858556277857518287283541513808360031820786662694895086183651251777848093493289450343769294393834294922896814002968147304604618993009593465277085014002395753788509287902151836909643825084065204890259147948527669941316232647637585918075402255553674558567849497854523130526717779893903142340132325167692001675997302432707103577186118528304960885943233841253994200903181773478298463968549268423275488816911239770783882926870552218379129534029830785718791613677181141625571190462896135999367957529804650019131771687813197079190163144422937931185837823286659300212374712577396771622310189534113449600529340490764842093775500254659051123553433658687221976469318724209417260636125172299618441371352067599336116556679635385897179173712529560390548134727219777248448554119838764146082523817962389462779588024236379483490754208267990823607507793110708285667971881434325530666321896353261467080951103022990793637867051977456905429904361978868110905623153726912640260390339674822859776121037575389621892653894919023354231588492895279646913050175414448279660625358350530153302755041185960926710601233865226551144463575984143148676118601713902347684383589912722470533161242600327849010562517995454309392876471016920517477271914685014113805072747798895538275173831294606728401986369914647360287384954385953214973810388423050995359854852845419366267567795735915394046099045993275777664201199660641713897560194135170412541535107296012636361263276945091055072838470988383814859793431982406692024122387090151907435668078118451355013428008024093782806545965216122647083519427625951714215400629366984165672963655747660155501898023818385777441821403684853812843506601208716550868082527443695600149063261194393156151158861026480970422343392507127128610397124439796943358246914449468240189998210996270508330711416533435351479577196879399389811268808548279714612715018351759055451834430670002181367014119251423762257297994806041963160167277006766982592100866128393526189872149611672545193591169238206207841951673735568998416654686435927603539861642406106126504556370726948761882912137153067211886885782299040125992118423712458076735145035325714049314225085831046793054630525058073736199755973343967807868631456643753930922240870323687203059650909758521613698366733429664926879962282751509233256018530799254297707549454827395765813976758157085937164977848243348492325226648448283029839226209862022701642433249657361249605941904105580929140379251800123875477348680644968804360200811633449380040902167606999933392218166431694078489162127725013796022461806944460534189389357631945308442020543408863545622818031472137780405919593498956798006389041905938926332534347455701722224391329875173939901848837260392633432325546250350670472380097701152969846821553720640994790622166602040443946376131551327027448469946051511154517674633312642601342429993634018497470509583165135627851874466328786829210209989318059599725655141480878070633451345479548771042060731246247095421303689975314506262424055300565213576577407726299545782178663517349332817064742043415055752087426756631044998719979376114525309303282824698001395431779200153198671879510624292806506373033507263168172164059346792318651019754451229487354160808292710172636300683385938928182415531675257053188290737239247633194190897203796306149391122776618176873427915933998254893108836241660242372307871503921711623099859847166129148356053725086906167928282963339466067156263402647463835010690204818684650945245609452836315995325476659458381292955447919952664842425377383425332079565560998420707680926162900754894513774893276144170390258338488703402532136797796935409650682843666403313443109968716484646836445008038815675346481445422994589765666942160442840110287877157049386105941972425067765095944984562679009292656463531225454782664535739882215312363127432031009816142982718809724677471437395297280789805214154348649915107169680211171083887635420546540496775145019671045322475382516573950262819748133998445005097993655072697951583445871813110973191716128827186531382122951410382352336517790910132411837087691639760240303237125799172652881990364330706556599133461394629250054933936991433661823346910269905450120237373198034721146542224231146989871646086576658679483677898593598246306289078458330514655532676928054608753334962227795619979808036142128835310500090367572224132224233849604518903195716180534161867073526008017221192558672273677599186757954220557584101985801021278139578396050835929165790220998404360816680455428372421835908617222690599184547691212264982867491774603692269870770330115030499530879105733318402373070488523817579792726572388244009721574500186622199830341385210410254154983628695886341933075234191327059401541131696821665443465819992315253996643447791676576887923844462606334246153378765337901622227636250380576978758155571807897143699026480245520675392029907088026135041621618095985437292543747161174209033291384423909299415435089804910033689232688192486463603930583109764139709318421814120570891707153222507478211821063488597034870636325996260655468302528397324267582201017461517358023954458898119802856846080423201379844207847331707537742858204547513341318766204368024195882556137616150571007928277367275504235617286331750077578514890587790102598711311306497681238373972594931582992554882713974407301004454915161293182692189012266651098786433387630633613425997800269844460326232091251575365536872746455631470298980214543995490856021645257495365253606268885116364741957390787971247997304648438118925649185238050350613579228553748142279113920674589420419397095764972751213746130512832902664344873230039932195708483496998502780592095522526609784531535214202400970665451995227420503403832053546799067103936731115031704227614280436441253739967792384762571654604274890637664574525293318634333044284614234640162439121417672430901764102501148079635951934583169490206834086916624882360512080124686539723613752426016085099429646874573235241057998489095764547076696570850877417742870087116349921087188073069757257466950086774808356293992451431907487739577971740854607432491691614501656798389404383708860051324810801860222199345058692377404871725727682564258568014574696734466684411530537574135032041318472110730688590161682373209947136393598731846522205453524037270298663922165872201346450554543528919093313713650267270361094276458770772987748489042220345736058420406196155875463771939241049998453129068315793336120922714257846049692410762758800025452167279152063642037296601747908113576001577708035739487235534053878745111042311059801776151242129048979565873630946357573446451794249253238073366544617982265708988435508756993245763962750676676383568909484098456177837502066619261573212660113470408767095048328472507826709085858612745851484298172990602362583785811038531113789484797380935519039221980937043436849865700406029423037755096988411879229599387433482197970962477972906820483314457383291434718645039993290416564299645933696035670842383822107307015253840181526565808280096892950002335851556061412417641930373841325132888461064851598990896560062086679860467113245916738817382503219426174847324151707409104855961071148145691676231802167181077100974143461906058186829028826008838000714535897830136961403105357439677068588573811107172389578992293478603588687005359297765965228248698101864510080935636611071903664932357389340719484679445132789458261007894529260565956595932211582068303908646421301116892688880996477487187435473198362344525097555843466520241640524206395512580751384931710856594841159506079696048121917340402934911643792579589864827379211591344347251394241504051550555438912186571550997536766603060886749509373860358746734450004241417024338525789979947631969440896947052290917399855349934847439775293156706424342125674115382881819000870521360354900682926051868243106086917524455161568579794661417198188952538876724906371773370043915013321718836527344950582815433413393006226797314999374760611040381549837305707177843539041071299465277807292767945902679155460014590287518236713147778083303021918362486057447403488927870829028873110327069875311060355701927045057570515876643893756156885001807001712974597033128591064423112220401833021729480368989955541516212373092816208883234096341416821469198173997328471036941115725247884737571087466906792937722345692783455951184489260030641332198158492112870896045978639917473290579335059124933785067402266824256291343329830524510142387075101466187514991185441369716865900378408076740289001886820593729452787109594499184687288872386998750051876867593819206760497012595430957619953720133641344817473322958114948479502201764549049786910941468283990380080006649456566269730061308506375229448100298005921899546481391107918913940487208022842943339494483440958662284583052930010122143009301843575013480776438518626272226755067721006297048704274794816963079127281963913950839097979783019582138591752243605497228023324545110820014613248761808396151990391917717290122851832659950424000358991437122138707400271619840272126637728732192100039338984208723033749667449704918110901539186237868836462315484919102081281671184640010415899010533594332357223144192491200867406461175011586728493000008559832944947685429078712086148383824072274681918343032385323875336552093672096288672283051511407341174801699779021154837364813354598898088659292842584129322410036901194986335999768425217900758477966437614958309381293802851386809100370203271695009316909015629959520999229748630720382561050312306259622176797330713327709205524684385576454161779298562759521365257264906312959307315274553550528633838641777173544658795943402008021658420396694578367468633869398874349727238986186977352775882736341099495770963833606840123661587209493902490415396977478151637397362042502514192328899778264437813830071487646345904329451442327653554771663072728900513239877961553810054196176128227060430954393139491869463076115039468321774885062267166528209422264099493108643950967908286187104093360724034370044601292416349992278577401123193831291565313028981942428673922432620613129925615178339930363514604983216317478634572243575735829158015927787069384185596662733095781918753266959533505285190471723429133238189955748514988631233160415385009662035488738007412086232422453936373079570920541274756568675581013655848087423798740519165225128020931040354610225077054760742943789794131016960386699028461061343497369437404532683065358033474139743244848557821919936976681432203481446463779173250873489954941010485402676505397990958436406651975953338862185762956871968981262995793191940642025610921109477706058508344149302409898882375670565745096132900499980342572263018985506428699522176211529453604876192015403189944286082313623946270052905772881437366540176071382733934592343778882740554737248095829435691252874875062398653983700002166461728815461516967224189280251646423054407468757098669846073525845470632570415051342959296706392610604787619063725377833125778999219527184311801978449949117870355174090510545113928655446206473036219249065539774409834768411171004531173138593755710348143466060122153860339671873609637370161992618307065061388762030176697405376116138074930572020746168146580535410362387453056542637558483848243918993634305334763346113286839700703141689226425289799734506303168548912602414154590122926103371570788182949140720331144472442062088558414872882451438001660482663952039249554755549229219479215472140925046134204290274548903912307753068784603974611107696455379752045474066290950018343531286997108253498386244335675686129267822250969356951421181009294359797072342697779953407284066031782836564061425900423908368096958805800825565554611760467998965884410964715878267316727189965976228985207346362354246822658936869344451842309734167138617147304951602978113696036095551374630577474809638545358504077095465836746473581211406291064101770034304557305289078286810228620068523996673044260966133085316748772717885273211567423918419466012864763246065734741406899241829543539387466668252147068263113544608849980899897729471924096248870337953472850748708474730427638923294299574347793518596195976867770926630745772444452644227522630236740688333069490121985699242068430264331946323255937053182090963779040177534538945596063447073264619688816320851406960397284464659833496578768518519973386256413563476757114472113023114651436712807655540737411971293020584163122365612517445510238555253316305796287830647266181221154389425719705044942245428657547259536489471035842882636037288546680107651570443522518973592934092540784015696544840439963777885553298331860409738986304054746840302946200152459214390430145212059423820606697776275854038573779028990678669330273065511012101923504269490820267233446622625774025461202543833942210161396339612669732283587834381368239925327442651961610969000386517589801685094580053684748775695595154289018936859586210686379923143328155208961264088092946991908298487467832731682638206381593698612959945432049713715347295897027688442681056377120216072378419157957081104489950317113455073447588975855503781730922794498442226395116722279425310542794771510780230305181044868578335500358006413402438622834729056094391419999008822648461113628229008084508284075436192065605524023085476919944524368214615790351986703292615022108262315204356987869585168693617968615060273678528107558975362259451704934987151904463457769501785957346440864215040459220302871761975404549777472829868345408191481944609421682462348164205472217899302360170616471169938022301382640356174929896127729434841822834171855293743647437236731810628149379857733982267786957592514081210405127536118306407967434396089901768946473648707264021189293283302198229191908216626007868264455990597966303962872091962707485112336196621930702253985321129367253564218497504581856852406166960417349092458405447817451369104824335155580106991465210911596585290952136589155127854236796400828959010189356259164297476605691162782252197020709219247083479605280608762314125242685392421893466079282831162309991444838504456554102954660465608848077686311679321832407728422720224698207369154873041678284066304469278643210214800681244737453641137324066119489922933500954174507563265788118338139159929712740881125528900086197277193614084734242518983370149253279740773425995510384090942416563083719219685901693753180157072884380019379697427019310246594369683034004867638482182860676924802713511181590979885908213505377037667952433819945325828917969153578072292612812485225536114814958040005604448294028145490383760031254330624407206875211894658168044946185102029070408385981523395698694821524850931719561752528777951512622817504928163619762451518505847594367709846900872998551935900600847058711599029727123792489862561981499722736479715393577137814966980276486788885526540948852683892063113100116289132621047599390391287898142828919528100391331316347372872488559642325104355573100509298459934203724964920699927072033131674432140432690180681018952241485576826052644186530009361432919595442162821446967935409309117368124807469575077400467163511381635166443827718162167217809981798052183150976255955905906949563792380568459025214456700823977102462976386607654007709534016321169047462817256292479065893084162378138328671604271331498968676961319219863886935391289044248580406383461661227147335585326334132358731451403457957165500674159485251821645614992210053604277741052665314498780698702760158917097342010900636816421106831130800449884743834720556593741066796793357700551371781754550096283778472138546102528627378826441005638733753815945850514115347921448503718949452462920661597694938484432866946244904131962078036941619464341580624825611723848520628576792381614151733105564805441832561317986611006788399252344239527489110108599349545770069762452800095914114620366511942832878557038802989276326344151363240482287659667597635643091214837762705219372695473755527060225150224208177345151083792559918638396678549149425697883290147183880546815967775934450042812142606105232646300276516787591078214903708692004592968190111524355762347456092187773068265203736958671833222689259448858130970936696166906867697741558982718343967228822394197038287413161997558125112897523958783271979336408865959427089724466579748906125709155374722792504016517591216928004187769814062096868286150025903588883538373974293796465064580303483972588797814699212250821193117090912501809461323144949117836710958240245193685265004316681695067741135293987985780122404534304436808787081186569756940379875223155709620216791347611049621051793724606558381125323738965906288637957701079518440485430735246478088702522578865243167798552902237693703136782337996014438902471355074659272820993486358356743448509641674764058215393972186923735477696301772494458979461746082931872731054235774184935359762210743968667651558848600567140502216909512474055351642665263472531293266507646322131810727342498831197396337529649905855606956695538724713995530360922794323414662928307335989060345348307529900520195807531067397544057317721321622251679356606804817146088285034074112993541053403799388843170735933213494782483575564747799899421853188325260999004847410452345873248307873205520326097075959576575380568180071478483243057536275931244816625314052528890751084140193540325017705891642215750712593770091066572411475443072607411890225478789938208239349205395008112526300792330928822698419616789904069624251827114342850662339489892961893823623947079177373367815429652763940479166218942368676015127605063942701012115182417535368811989673762459959623322613028126115626212498436000239854535770465928850072773711825657533096654923579940215165300535238370748843682226156993567939902113411545749043234312946973258477218427109313195193448952783462622362377143139734751742889944495036046283320593975805174393294846384941478382428510062597179727798288593080245589550582954293853332156810663280393129767449922464715332108171836935690908622636883801481044822408547084693244695412111831120097547214530946698929188001579992497728173152729837841472326845010695147430550955237978603419384989767555811092858011019794541950344542869854610580068827926010544340088990137778980240783748761890705288104627509168737915225583992726496418314990637663162393412110424421439472052912360800062955068152846916577750195941588017277683656153258672913932159471111403758680788967083303376237794649749253936743202298362934005026212157647214497709452705994048646924797534012198951774362966264560828073695131385343961347762587367053727151605686840801396046336091868901542029961962971133954335280957865909109167025497733767958830324128870964497473886864137572734471700695489942156655271673643407121554462618611185296251188966978796760969471634132197201221919258710592374748273753900951222794538234520233860109139487572432355405351815680032025253714738325611248077763628215315900031097827618307068564590513769872925481134075259473794400182205076805101008600675411016316884419956755161289464118188441388039873166536492698145240465191546886787127375527956220387528175701363007014012521054153308959636584054236509509965791309835152082119140478845990063130621795434900497481883597862145758003050675716296464529007168176459512037819127302024855108371607553891922036096888465502928828141475207609356562669655383796451804060589755488416922516110443874940692231743576592509952942928114255302263541424798390367850428219588760562816998946112168428293422958444454606988332608293588929486212152572459543307812141658406937764145036471295336961727864883242525896727152939492804220564706755062760346329610216979882165652187494143222906516404372143285374840186450829884884724755570573509364570394258198139197014321226343798130164799923550616846786143277013664403327072083418060533784788475739386349989948180847080212427004253655179024080449427609801791557129104711348831007216857870089451686612865343210802184525900819488781830705573456846645429168991449772171725962921539005322910456528192241711746988600932690356495434340344277157634565200786859571833826319516033820387156943458754826815963827902877795306167272159297049109248640871756836914008878403074029827888708645565341688890651188485312581734706319999610004407462356572199584057721057855650517820665973377674331745002155791731861029994844343025794470970022276753425041836520651302956266231340036081963926129060331692771586099854412246255407676464782572343457730937832866530169830118367291481437912746840463401748850088105039405724285750082214134217408987913264093321003982318524045225212096549993195559642976237825423876452423446273086086373204575190546642975408205455594381879716186249034267629151647167796447549522449692022257012788532460863005636309241057223787354205834554998966823619516513960553982281986357714802928773155692274049295936527930719033036588260439215029605620249954655837835698809563478670251354001012689403575909075069773818712859877501851740296718345508337755324368302988049006531398369933129857439564122838941755162084385041039201827307831595024548960911320981034367415379884242827570415838333050346714639987864081218098110661764777089278630999211826023491460798713403386245674256435985601184269971645843212759935779242418875603854194593370582480811225774013689764024048442310595203701274153579158882192223155157623580724758813684487399910921279949526615697873962138420723641350943642808517890799399674500092908216066416659937969239371240078003396332091172388702433770045740462991803798311729648190367475892210941429925120048911595504864044311759035711147322884505617722776276914929245521790259464254317813234937604953048939134782439718271257934245722798156576726133971302290588567601788289079989521953686653008035909000165212348051891797406738297119936881502930869493069735134866797573168667271106754934744156881280600236317606420738636372677904211250887852878863335897145401652039998108173820166789787190083481730914151104515805639608472128710106423026868325483412155704032658031688568288275340703035286262745025467770019362078299874426486404891422592112125223783550741971462575010230782694060220839881809456159553363716003913702639369772505107229598437747238490241477254024773348660455432253841987255360259827815334516197896156233886505225034718449245557534343463939846045103235078257088072919289873092933939505733989668049791186115012433256429064727184506163110333539924701673893911089358073574468014689166721642619494845687063126687933149922414402932717666272510622194818476572617430539099001571020068058018224115594666926770608119377744370309082455791220875154155611471532832776092191812025684250420884110802769209251181699007841508807383684052985582336091147225616613079813989225768900498390808856986910726423974939773131273255467287269402872370920763716855527374477715632456537437990595771749396726243662558376390330852722473068430763542267444761002425499145998092913345853478317688721101372230518968772361287885933731175895328865077233153911479628427625918290915553182573169416420771883840787245117505451859171120608966413790756342560407811474623424764845238818373549544026674937439256165157688319013800556140428624769616800954272236537680087398774929150627475560852561810119469446640335021850174856237858008331320389153754568893515390841838378140382558834943264253682733596820783361629053803180558351533294601844485447576388099755708250719906990516933865424865886016387518083858803774131555118558760534405676895922659341198235663349379434192061712001856599570056489056525947248721383606577655960437424427803746834512783466290786351593161984405205035515115193741238075237011196743821873400856119701576431684182017499800630861759828556604718892184717799203741157912042404319704473282249666182157494682010477597503639657835630846850072857203003597110662278443618807969975641810274174698565748067365950909362961574178108997161388484073299112198265254337001222789805374633843768199024078295604506028311418726311806683800979470673515986041722625960515316889712725018944979874993853849185703188238869901915289617684991254215639997953476885150818921913799260088854097535311818231031833756480541687001718921774064236226889279053369534378470377133163481134007501482221798391143944267770222851255675182435490428758154317010531080479325416512452239021980323523627105705108277117344762993280572379913513918889572039962686190103292840110176138562444720244315587178506950963169988236489777499276822209160799822828083344012668194401989215887886589248264397638990164135078951757406619483257488590089226182115861151703693872218663524880420102531987224299705479245659449809650825258340599611082910739619142533926606466176409578611399552190822241447466127479030401807625945524486246472945061934904750592408443327421888210486942136802770166933826186880196920227142235571453550842767292260148054935511250335502629770226669625718789423412219225036124447093026110794610265150901016162708349028284576758033097000589616126077159312330647699508217768725915506306398677444314691996491116526261453402652573579962768846396881564304013247835132531318473399643198669125655047895648502553505211216168551847949213023647696470170674109551254771782236421576391187988419097044012336168065003230347359390360882665572205520084263071781268952502918404950892480563994713402975187997581772889550602886722041910107299441088847832530338477433262904619394708336741030225167430119826758611417256303019093637480127528297511403349813470236048034269178303340083252901700684742711543668867858856522062895117537107287720747665710829572289220771859740689625316651090765168506310486364534754919891603298474474247966160539304594345062569924206182529795994331240409198708670621519878027454485283577463350175124580113114525977014894861660364919558904920543061195219862485996702585739110524679739802978394962186348178946349964729463657145866240610711025854740190215005183334090242429915511017000471321746162039327015387775341778825606201354145022785617234186125530291190884866793085810799856647134349211394137101953126137520578208482640997213321020781748566363473910048036979435751024214110864700348927005975154338656958464078465909468844300775621127990447346348634926318711007968186112074127775998472731245173663450583534615301122827416068408320914241972292427919925791856107775348859191972025523704252735211071654120500931010563984188605444994626461517407923331851392324380842772739874955504525678171170333596796768225933125921999493981698723255165968430388457034517465304471441832825227378252367095957862983804732357781357097294982626490946004871416641008121761489782097299213302710189530531501034765824902564135139630545823445774606668295052051948933471569676100094526917126962247376883022423150696019263277855832533835484104719692556382170858023790569303092009662571611467423983865838239330680159383007875437015859462996719525496104133581764003988331436565869396101272176668811300243612855879385103415715954568633439548442850396574972798293900421243403567344173939662347157738177271321027239656146686947982040651530401382062601452829567631315114105676885001145074768382513082401471868926592799236092216847574731385177540269453210646949029286516173852594150860588300975593827822822675487944032950369134953010948588923445801005628862894564928627207043075276693305851269138180067682907452016968437507252371199307708539706957404215640400387710037040339780234588932498531278051924359687462802966270695830956223780747486059318273820557213812739238136653841180829004941655071437993047534657115858310494415595726007443875977073280739789407642142533908558951381606445794161982956443907632884319404338240329381932822627040964114534001010681780998690593306666350200897109373634265441413479991882460094609647777071735940337570753413340246080898000450852531866294072299559274093450132856081561826266331374445568714992310439053914510634112145352844686195882597145046077100699323222136664172448703592935239065084594944235498130178063228307545770550174202969409798851015735492693292945290836790813017356846274938794090067575222342731479637101317288621253105950674057750624131482428168453541111340852564066238171468149347937056958547221484379232709970030210757836017877398837292567259180111478329113108815715461810830090890979735827347629598888024712247011891386943700487856562403968692693200249324137144049942700910266804497477281898698446543219673571738642974348384018427653990916435320010674634203402849920420686504072655534706826050544375508081128558223122181630207952891571605183089857281420812134622341717566073286308158290487746795874955427157742741933209280552727603940349216212430735736184905273676370544278807859624413481260741595639418744860772044173127330360279371604687737799337516634273535963907781131216422539273119031450199246972985437491100449445276345548744728526737180126510405758945362011643860815911955877783073503159440764742602487818802828750699555022336330411110291773463902321156079459900432878306019543831671579941303710972842183208639839745383469361734206389764269652545876404343163883645192133898728741405513735212630314321047815931563350418643219791434064922162909967393658114368448615610781809983365825135116221507794723704876368862416158297995103396101331540671901807408857129591134565203977198707542435879103743370625580091180105617094823626650741469630379877303690468164767157690540012913722388741295210512736583590422554267380291893446056479657340424953439823819140966674432915477950380401624466626460882238922390098475656268583033539877190492488116364122430457918983674221471568051110307154633673990030327428996797591812065995650232800295998908953945596371326937203843355488881243239092716485018614912618267108219826307545758345979325245938228651378181488498410322605718600202399434844006824146879530076069438708550397541650871509259862615486197065155494631115857869511549295948091225551496743196570167058484231566907773032860789343172188678190032842225932458263536202782489020179536182161752927661605837760221469252577551355533679768529229444024476946867728150067877189952800318890768959291240780512052340007584653419490743464545480228496683825035814203651474966429837969716161873017933661186050633187557982436537811339010694736778687287149713664078461361978349464869866431803640663386965437970340727771859686060489437102636776787307646618740049538041329193088669978500053718705474327659824730367317175887319730054381470231565755823796307821395106132791515355065814375563179485789752062457219726236729352222346333713064212150295947197075343111685204487366595575043588041845910330718385172679605393988339406926266556303946058670508820379203412491081000086251578592152943665973691398065959026960430236941016898894336534446432803696403812903017869067199693373872600442265213583793635458538575614751498998692588399773477671555410126313932039764914582631103357080058925455915085321746102462831039244101460533219510301526477755619783027586240834920393560558273721333012813996620390587771577343810552250821323596732048651352257378079553081507701794366153185366981875577431424190277389239418827542584619071741972541030302016928492145909863340019029237513868974547257018713570965737478986465505832931727641280987017882589707652704008977270439404419161542308835815105881568571879948019138992997281380273785149508769419758865316948319473677520728476625023683205824360053790566217336164749747286123016548526156309241204438889590357066936800108428270473943935168347571921055168879990095132225395368482879484626649386097949385579356746247836920966199951504582052133540853260650296836668008289575677366965824280752866409779177886521319559107892355605393202691136444507909741682780722409998635912067280823135985132029249462369535406938877260312783848135297394533105737102279363908487683573092312241239509438206546992705280714958001413874115759213060058406514405113084078693812776985361925077031545308918275787553788963634770296086824089896740461837553966746199707040782041476706595914659289304975837619641214046867823291191131101965786945359763603372743458106063144879609380160040985841454323386921046805993540831392891049081903204270970626072589954220551882356386798072301885764550575335150981300902568465600280865063559145912693390430810195647251218044704551498806987163400948871700653217316341173683850003043010011624463460674281246921457581890824424796620944250407967027099618720168762431644400670821951984376065957133582261197811711400250066518588626175282567142044606773046757182494651511435549740619446082117206233236276090117609065422341013501912094538864403761026920421457892244221489744920824649606505150748888206104249690834443056636822907242074095274554269796367119391856910611147529017187886053104941464533556010813698388006229757464285005367494487431477056284223262778096568533959839757197465573453462173727214289843379034848258667386433389207154808545483528637769392165406964049832999281233239705768465499386263724673041392522931450564988709795898733894369410058451570690769584237352911240261481208740393931596749070472537869746858635737385331887732438969945879999769600964730733156677898746143546631268499019610999346337408760227994998156041447109721394689769306035956848820848665212019708217285540216484048454191911473261211735765727219481913693126009702503658730324651359748293863851530181562143608196371285036271264969544233287485713779527640270569721482854658908274532065517614295871479318411421789162035891087992118108194329573941650415972441313828061965995146812558400842942587140190742958894057283488825419954776012547793751223657275756549411766121531807877995410199663317368354645564902652733816685249052680694308472727473463562410260184592041447860412520017180471817740364180699574877099540788142200409201411719713653828406603183273879687970487328971191135083738165586103641989221360228589564372037748842618749766757184488353915283560963928749091904438554326246241278479720120851041110106752688582468925313584221133290932424647751174353344577609758129417796252687256511618597647676290980026458682244916537730220376123846402636479797685987213348920694760321248207370923953148876134030823575143274696786795317994319108865423507717684166517548237434744439378715000913430466553125806113126269318827457138647088971946119464324321175034889737276860660518578008633439136370829234491859475520623196236862094447595935752550524697756076736863390991249859543501011916637069567844781183259951716722957795411233604539534295188601517171967100567915354731480243549392900093745521389604852245482698201691656323419420067292354075274686712608454544985573879829335185060402580486772214265018964237997216312005375097020302707613441648082405918753997937790260734688188382933805889730157884509697226087809380008360492836179787240884205748672231799534087849261587017343528743964568450913725192447127331990590513169948587434879399134186830700607766005274877408380728013300509087172921178597294916155379038728130609947075270533046085775746187117984936827713508179648558816458246670223046575902201431482543743740815467997779639049544570981765054673666369565122119489880991722517526060600462381954138029289394426977542597612276623846199817132884179807301539538406021157157802412533998267455921196488659742751664450901567494463815818163421938850950077389547530768980983258885291311867514646643993382143470246391724346651019507123306969366936353215338359081477151095763158304303995240844451182986675934535831341178617033325720308786451919465288632032382605458968412444651625645345720464718004652734590100813570896127567293782579254243627000147761291492245665130759726946340727361580571466399460610007345383806303506550195396986231207580068533410101156389098659546403756739858504525207945659758188476214037104231772412650379650574521500511011479313586372401905851563531870792436142066306047724993596835739697573355300693402285436421645480168244449979342988047780186846246881231699867487897801545840505655033554627097518891099590420796246177453795248889807286637406475773078501897966013617003098385383670716333321725832903877493041404039119072297224480487863407383865398316959957723653304284894047743753481381463872842534076820059284425361300889086360318084440969601248313167582227381153094814151719573034301292191820949108029865648408754316301987693736652359480632685376488403872301318541221513003988145055661272617512135501551621448517956747915911909245509563893560726182281131902740395911791285641482301767107944333176531816478117056036656744649448608647315973994691830390164573631994636890167266960520603834939109296641693275342337497784508449988651067213607320285316788803709620465138692844689104604300691576109717749404536889407328945284241243330421696526562715261612752552084474452172988462189117315508615472211997639998773260135492281959932446463219085730234249281343677455399362961486110881390151805758474238336313340036476373974608585337603164268968470124851602024088388857764239784669761572246991968895044219914439190894625286904339364855140253977231553227698844017115642015192695376338767420533168831328030332922712684952265891264093280534234206304717799957580537264772455924763829683047208909704674105241448561245312051009390821444155173030551217232690765808768946572156314813365518253979733089481140600818527077790326366633234440201877377219824959340903736452539680183202760332519940620938770680380122696242266545940418301362896395251420458023369414669390114292491281301215142959792389456009206656366808217534485566819720155543378533334356349308445353825636896033931334800552239032082887747506432382189938534738754504194863316358183369423488581916836709627415746548661063262201256957678743299010403835878834554507258873641645252011990052189844570589350323842203517851099876416124001577697367228218204793006910344481782431044559717321625819639329152772228233672618012624392477013823784776843818432708111168954773063678031389944718385461933599373010789708243372360716012328434865345889978310749986867295578856985065761591900830400382802500547325660594835912312681106858276466351164836482096000964583703576097934908126410434912491572882053575045512927612954485168132889014956054377409940022020674512677836211847925955386228952868155671670339935855990887329355723613590874873442868825770953094096211661741976775450831557345230819303154477871062719590326572856354121463054056888992603878944899496897867911271589738615729584241817766202360281737153772722343454005158975357110929300091902604667557806470827699851556190002761978657035420885256154710624790526485199706779029896244859118114640102952234135925724793481637609564530570423248887330510762951631534391261201313509377905869306184751431570091040316905209828307846963578050652691814790127396200900386660147843413597574416709062378260607132927536790359293019881892237737850718924209524973369299342489851954602447360575901376965696183084075142840164234632205918114872913003371172782265709413556230993418306216244585010654070396805980980319162853167293163809275873064044518097291581489240150051622337066588462800943016235015090480528518964308487943182910219988755230231667921829455362205247442874862616997270996512739734837750034362997865518052725936797261678218830322521647054491250582030821440920520445982944390272569011854290315266851877373411223122550380607865493042619142212007661868084721271636205118609928122327760211578459521041765637746820011833975995731196771740660457351454913575661847140933845168169204692286778024278605168794817239045088167915182544642175692651924952190057974430234441950650796038131858884449035699307954434989462442200974814817815656494956010380186514384195644265453460068022873266546620841705504125295781307371997646975062731805632204374186743163277402777437142087094827026484935363835617916539961161311202161585281873010817412610388468522863149031097557481485482713264348034565140351887933276542177883874723957677517378369769734576714357364196288981115968008195948384855593701506891293057330523913642861385879900307521854855901266446224932256681651704101450665777346724934872339426636776047613098898981455435790758986861431625078516364149649219249676930062735792525260018510773708237083817206932392027576731468793673701526100005240622744080846441764093485744992515144300642870276203866581957630636375516867905522533669146684326034590190569440478272390847364077395397900199021989958550668393879898783874976854891865640031197284032509926989144357961333405037404078364970966875296697854101491444754617289583996716008682984686308646537141098414130733822471032812606133111909115202360381863968624679287710448085078494512311086966168544191112739215789267856206822832864851958067186995341080145385913363501207878818142113735917276682933660938983536944846228205661094539725066320472138578827548148276442581533522968862168915570387920906534957516328610505819376762028430876954342499769509342604572168421820306258204537041361811084816382078808774560084623887669926102235203964364778057741121391398887646553421878194494371455330240076350229268574524096873081498016454822535277022396952480029787561901490416820454908905449533322807740007281236704365126652979951974747970222969416481082589418145764727020369793943438117306521480348406317275657251150891154826372136915323208029044452552299579400403664333457924238056457743031605808754750913259146512605656235886461996261216452048118006780745458563136534804805007471771341543509820833343444437589041659117527695401938807070630547566080074741180841160739171171338682129920916588398955256973811507621225329510958753671895326812363076135196302906267814287170418574032644996497035377624117377664179718502311967493689904979092270311859727857536227325334088328995881605755222976405073177729660152215447094117508231418783086276344121368367137358094462569645591083795056596514640762326521760840392445041718776845600208091684506319181804514130930415996007259431111660934495712755011103486666815747060736158172227257276263056528635554626343331360605034552647378944476443792619477534095217217771827136581130884579184816243679218530929379942215109804696147192713135860386213158951055321913822434797336869417894826807575224590236179035347689310108611498162274229431352328830219839419470952353735689346170640611489086496520336825623547902084794339182061848042262568338834729440007860301906860873928414702888862780244779461904482149010803902746332427039822039778376503276023839242043891299560997649262166564833171183379569266604220540262175178103913485510767464340486076257947210738435155257392195137548207297169424780284456557146968154254075780421455360415172187334135346892567017745621286534147882927995416602536528380933092130645690649072211454025521165904337580303344105312513439606876345418092083437481641226468917637833912365345048709114460338158823919992234192966059205866719704341502376818201625097593488236861600014328986171492953317644745184485201849195367366011058100331851509646701431003145634812050678721214701602724017900876769950102142176829703452245498745371070181797055252734987164891873501107086885310638331868987066073236719538924911112416384741283213727180982641581273598667921899261336903571222589494013711578059098353522129651497308241707031167420387218421138631812805153960712032330040091263344857350413677196852905706935322343898581091587145140503605993850378918798721354082720040304051183668219311799282370797714240975331241791850299560970172074742097341964630845647496152500320868639168463960848809029362235537013252561413464534619567712252329342161223017180356418166918635464069682536127648274402270487488077602690350956496716776037345554963579685714858720245470160609296623415008018472623480061547683759414369855050273814874364292338814624852620768169437366475308143695038403320238031085328279445169832075149734422348165449789633152031951235984196275945138265916912538490563598199348879400348793856651895139210493986862936530060671791204570347679575153619394258957790836140954130742251763623256458943203088538669787424379018057198655835223275567171361764310612745351801497250991092484215602394438412056163448274983482682956071019260465825746877535713721025683923645306174402252206460017391012860535624643229304875583110868036993386589697384753920564028764752042547750374867233776594188235848784728049772655875199183058779129238333007868102760242193489347468659008095722665576940737416472793262527549695048255059045639929653619984644456672530329283054650939732444059890153182773100513848741529608946485227327138517403382592179674543197750067622507297561631328465482592743210639425598890188860016402741302683071228960172135862109919551585715282367064991150543676562634429506370047314229379950604202425272749030864725067179266064933156479846958216951962380479464339580149308107938600502228491781564289426864935943231044832292062271658222283580868175745964837844248825233275808470416431670758234731109535404656223145650414640503339581079668164424032237534318543742579676376649356476897618828169547992535650170294797902954238001096733438575070627230863511784724085629819769577860368364747836409358032119020223565309499055848132298921654757572048631968931961208212876829933964755146986828455460087017073848049373997572874857589902579860724017470292899912748836695017520293617758035617476141255005235703196753822438922293195178953716322108827015650862798416421684229537766983803353618466291996012143188702126370707232315581009682016160645182220116933143615424477234945614773081335126694554746743284733439151277727131856208318141040595738175074286230108692665898589873348389643835415870952639056300426587466015713708257996726594979164652554083780971547552534691135541895732480154402571928769008146404624044724830191895135791485593112707461188907204322783433635922650474857599859382053715338598645397054162365348829731620649781219195997392252058140776591221226471865993865313880677267401167046686602704646165408840533021290178909410172704132428658532069417346601316370033015412753936152418227338225755462992970595262458249665820608415460046697300661425358736435110657599991256686889343234074636034082019433190788354044890869144346088551819107511896846946847014729750518114886729343814292331030066749124087825385262977083881051149596470698602784946105789781196421444456834559963558376210344368186455561905562268314962440443416521657050747129527290505809914581402119313068594291486495959670868621331130728747635217755103618647501550437315895513058178294427705924531657413825067795164757207692668064363641190489619477482632012541756648953788115792994853367850919985356567639796300685423423521648733759953464244045767166562859720698577649140965403403982540928912926730369643667765697053388991588685124999905282110984820395973493627431916259901135290925530079027010211468506690156478875254721221215505415635158390661042961096044562257745492504008653809452134742135833975446348738111253773897439977604457123050324573495113106871977207316432616830079052302204990058385840121612954898304290578650841986610629317582564232729058802773576356385394301650453022033309442677525442908268769315345835178476410420527719800777143113956388093268114820776594535282527074307374169430995035820442001369090774097375879773372854081763498518708840925280314908909240604891100961068686649988212439456682307795455080749367774744923752004484581839353586556727096758134588657692722069079616969168753118971052056118350526464191120670894394964429518132180389822810827444969724750383790416264829552694954152659318452599513537575898283277409399898350772863484604202654177112212487399918858811708642360487410278313052228595580776924333536845657894716583377664214807520216839149465285239211347147288274222757914244082828174538461286550939429886635238117715418346621352609374835413554029076176272583005169651078989896409918140088138388812439202718949956402150539559798888523711662851032582736394406962213147135765570942841901789628448230903891764139482946027483682222429638541842417383223504341289059095051370403849620630453292111640906286301300659507410344694661632118431599641770730443928043403911164893495300828144180438472024263355099156941448610100075290592334385144704567669481187963196004588147957857996931720082550854199571928109973983272440541798578257195230324065091733054034799914758108464859321596146137667982674191410062424023091858729658053666357510293528294639666619565444368067793089064070734013246322330330553289858141839414025473388214349197796169524065789583327187829044936365672104767165552623195372649705401081742108839850341202606394018025598493019244537252367145391835118760635354557330459327603788264783114089943086663203800373892591431000431085228437381256521646770749113774320347754747414930354091008828707348309277140694179434893633345659243380338783246851350608380625368043549199863508671426066858879227506283092969600489011772955759983045240937955522120493808177347163156813884304335488793592976441695639571469278977614366037837673188279009838414500449289229860472176493512289373609984150292519175323225521746660189925360803039045451193364764544106729468425068079712952471746478290162345479078772934742958377842677864825065177606235121925399636037467865771585891961154862519881552707355778620273637166593103283502913115693936332929853047549935051487073800945424352750247112244333388022829757748071436830644304926589473946223183641405732489981857493664437052788830004101785936376109314956623378834184648912913041430656356002090963263231380790836516951263124895843921838963926060821205634272174275667152094530571072632069748568884507384388479162500997930674011431878723509652524302558010347138506005423267011378481045080218598179316440460706489660368893828218954223850257217563203664270695196285903334093366579137118425555357010391399317697448666505475107942731679340920394170400930215915748388194877774960198796653269366450001833650042030847026689266420091419226975511365517905895149377311822049368514821141649715739765153345287937464864475933277051058583267209525338740163870344773205324436543036609918299749133078580446806204055864214085788797135895519156071043944155964350036974735639927266957075815628962380069857166189373597362320465616165742979164697728926932059929596034502113077879278073007562090289806311183790588222044137536065656181248340355266027528554459410384243839310002881009861659229366548339821803571859172733794737614559301183412362914423968063818897671107681909316981532375663647617530910575165586008754401149946515961208754746410516538787575999928112268944682336452978058305477081335301001418550914973838880904728361009162533113385917049650355725450240425502216022594937026473791283344789464427200747542577083098732487576444599298343138247435234677070032887107617676556980515243050126673846832600496666191014776521432691720289564793928682360614041874181328256968898710601399586849478791898011007463824657668376873555011998757887981919174382171704746373337466375486431719103548146166790476839447565431931234665290233637884512537960132761749255655724487897568045070036390253398153531711284604943250939459794610042107475442033603895873626712245292488330466088756117656682040287421816556384453426983380948968943660164195711898296775449996512941652378172338891118624298745927783544106468543012597480173437353659113309418707787035701899902581942048234839345825773916422078356375837764502793876840388319468797296393869001372058578027848908059734941291282430090115424048884584456135270428796728201697227602740707113561630538553953121379421408051914746278799713966319860614749403356365079392629059946565244510174594641998950145962662586182419820809660834699340154039853678184449002529010235520996244157866837451231486437799041577205002731285918597256334828857678433576076238668367423231757226820736911446569450424628532260848741798045391693270118854658781688424187252671099958480548548790199297926718315626852245654145026541543195315342426294106574061062300377015651562475318416338549346755696442583672901135329598446140429770098711273878599786089846757110952701765161074048714870279492608461967941562674873407146065713975650938989669891878532837288561060146125491892171953727713741835670495852101697165504169735359925960630473227340630660638227347956264086270883818945639686331208373004132545249682456868934531942671606218593323988094520847546657593593327521491807720777452194549222243693453996091055793024117921845054856221359691021047761006015750074574341884767431359251517621664685701736899714054892439372239516084185537717726985753816345294406763818556565184355053430769138702696484444161532098445135896630500661331398853788650446637903350767848367438463942441933385505430982798966755254658355308895929032918406029553160803529339901637301414820011041232141370054661977890618216600950530352287124840241821429164712484413758496246127383858620749260564711877303183423398603165328607487657167359692016168337488735224084047091332561578017484248268811201954432375903781053445678394783751572236573873266425840342045461888250604938872337068638901110179381471414323223856176312460963316634328139356292528535480560450070208615058785933160434592171195873288288267336220729325453435431405660557633120896266076234358751488632402105359139801267629186284734071457086236394656469826126252087638521561605274810792294879994271894239183760626259362139243142084083122685720507797158796451225511360076606857885705239315175026849524475827283281445344232171531735077110393839623477827742975114035212312743126201366308926560371102829358143713718851155870943835167857008960824246129017790222316770623314321953532925154179448080605332988280319544843590105472834671736093313820638753881049500075808578473878365677149200825553767851120769190360957118869244225060190313690800691992811615646669078418472258764262073832393973616202798129787903304261312365041258638791047412409978640927826130668561078965384796803954548460096531794599463631241615091733055845366188104923392314596334613560897711211399821339265832664141596364188611940796133497633244664558010780861825205133608509401578632590885531221085725980838582750454628084650710839380691565136184801809255761691346843127455063412411652469095132504965915509763856391414722681154491307859832374631866949540615148566762653817469184880713972222160494957407242451247462045116678863096461622996648540332082981720713438847470510338457625334231693403141329790750937119868141934548144561798669383544548455514239988117455906054067128355988274817900677882603329612329261030930447945028260491876523371659121929822197071276030939249625041146445920185605203894579188045697124537166826787892915708963489018316038421369905770048970732889532065567847578530133617263999959445012611156225219825054641604510655428184778499659885271979804756566137973343819468829311439508158282786203545527556633211438596573192795448174756581160699144264594352802421521353392621317284630979321094995691558915591185261049581969769727684912415500668250211438518075027353229009780521366452431735358347295061126995883109319747248021616225908276682316108472182918784022929671788109538327156654552431344414214789423195369708149500516287383247969080959274093105660475341284658823214903632604313002313019222165358292213992353404351941526202963270222664730785840294465046681040802454736929722048270802614799599587574635651426893408796693033757826676709508855054932695012329225073461809091872749524104708246301743423902202169798801102847026477502895389176369716471403225879617989929668201374839554859508691889268336325064442748161820967942123799469143631064162566758352517078950342971156869972636225726129471668428619471188940388672450313588970360712876228013308777288235525333929264708512066974587657004829337050275226110321257381502426685079374295241164146898289218432364837495646184415015761755738344561859027166857945321474017595901941891853555946284809759938769138222433296003916802202320914843547610991798145565411584962142654704864416734341686281729189110045666200672807236569720880458248219002935054070979812457016671985582747910852915310225337710931043386284565485967843242377565617186992795398216984370329960029994606391742913907488811177943652006723132259148869872566861313065211162368003550015527366704730499576028768128641010700377869737790984033640280666858342460389997387034231450740487096541812585829954517217568962213947832386131593468504578021305262865927622875547634220495301155421710058032403642400986575865317837427049533106520032755294858458673137329061361491053387676524281828647419116538302742063801624726484779171377463496127518595863748132735040356487274574109702391969301190685819708028786130838991452996758502873561846954816801609651900797963119285735565801971689386513125662661683334015364236388592580233387801917174898546123583316860974863472187512141186647938935264463367156735697453623656079550254628277295625230869326487118708825135663318467914836431260625505518428998793349804070179314805104404227443944539661012781944732177807196066405114409703205346514594289122208396725139204033907970887697361069315914790581805996039899216230031074996254299649018385561830823586512552812956325471278551488622749613439785917945414401296673875853389613675608344017815107365899554009432119615762889154702231502013034424539220186710754068433130145382197457834186520949796511396448301985780879752845618175207346316181426937508655779922974754530808831341952515275699637356941580315384755153761453063954776127885755306798418740951240577908135331061479343256277655962595701203384511855450064450946263497095588092719355759071714665735123592679159288215026344861661035169484411127250313849318183336877852843951144162183616716536407518454503948946176388521476550098509666192411165377674723838317824399741253188389379395891180873000087276475171599150385509595567398396302337120822689033956429485960854032003084438483005678808604436485317173982306359290062169447603040853911438280374988006053650253150180069315193356651068964301980756810085213213219664727560687548060368842842787589919732520056854245413930040955577711865748840396040701048902245412865836497952957970763933733622100839426271043141786896948269861674002905691187242663691963010401048090202618310426978792391051927603165580557725414462085162204384624637901101570378187653040759273372823804657424348490998408599902450265575752389211546825129998529235026418113110633482884748763905975999058218927063315062186071379342243200653853521561853097772216958437676065539078655738591141373731508257511757240252544352475199569370424076644504114930256023965571797845677142908028840819411971597966482173256946564359965085949168283454462626684701513403854747097990143060177559146774184453643604311558037621946933623153367357322529723953023762592878749612985205057740102806498136686793983759283134362085852920340355999219932398868062184512470924749230021386179355157277039062729479804701028361380008897961973654649619804057082990002923418374859567303500375517219153012321229529684216196442739741563204181444231421961552855810361857088529478480749650309851122659351817933934719203406541252650496557367165564256417531095150976339546222278493880241993347111624272238087103102169326264604163685336055203895714589463598926409697342211620448895340999444672118718040550751002261139927928987424541906575652007077525741513072012928881146056127217102953989738276986576977190225742762905013394487207823260731502533390361280806338101513143354135446107177238242939961333942690455125936492705004459481037148833593534480246585671272282687080580786861599666913268218634461982153773786638381934932717209109209227653687029715531865771739418065911355959130627385850502960833479712358995095628482044442675075311135694795128484290167558502943074267749342625654086862183700423959119770285706633368418187066946430901655331552742025040227998801534183248169177375878187027266426791391544829680339216715911227019451572734378781512667610928048974655844053097393532737310454357407763349067700843745262317340679306005339744612825927474185120675657992190602579171639552435991531188760587245733486212654955062123109494367700490514851281725199706828067115203148260993308618914202656109751138498554521953940827951536536493163787700185477848702701655180531065766176843627337306782104926091559764242119085134884682060293863805965983615470506851941727294726281814010005750447142797689735511392551914750106277220804674102193545949660499805566515487233895118403037552081893457073784674577325198395345184397596542749206181238680381248454902623092687423192755511656614068253139457428876321637163304460639366693662964134340525917747927810934523865780575497169270914268137982055238042420938073356851202311961046595365054795859444247573247898584506098639183222210048530377677364764468284944029553655447057953555771083187491891912543562574107504631296306804481503539078225151280454548873335235661002418679504573461219816597203443266596080104532051361725036659572527107871861012315848211476656191589999408869564090481271096819321339082309685672943538506956539147984727917633054263811068377541867783978821969688032375146974672678684268019906474937686858778642611686652196439845771380820033113652143496530612667899017356505732123997089495993001906172725352563610502248676102446614867882733316094026169468887744172482798064148452893501726264460880992466248394002819447938668922653805410029739964955215854459961588849865145097950905813742620945697475418129626260477884324613476086358465152110471304709671276927889994626971321662897209373806705011209549908673453433973855581369928870454968902751435871971520274259036152316758701524629015317854727711499828704697922847349643588429088127156528135748803205894608330561376527091048338358880980589372975739507904740581688339879611750305097583945175177709684052949971330341573875107461085990034068917775411333169168278737857195714180910139244480794996848985036523227963717865610633676864525776701189247336010135563201900076128436192015299161129286857742974744469244262589070060746820534102184586045698360153341004111014378251035603653293692386615855717996170315831342339450744415472570439071922242903043423139558373830314274315165888290601579744028923823650261953568433649964913496837527894261831686508498188144017800922819059657029209270983495633084925525462285181527212618005812393335088521976184928776888429857406207618848147038311526369102093998186734777280977893648542456142833713689455184402073975909380508733632959466481926493980878201039494118269039757050088293842604835731795761022848486067023711258858202197158373047865259225660883725116615151690300198021651271803142527735864185979667332980802195522166189934440469268003327071149530018804404095423122391086806705612311014558946207343593146057858662136719857563912999373044328408342456304441906075135715993910628994392558474614298591665938611402033749353309382422794650642895738319928476024502760669218383961843415563173553033135854576489100748766636188053726794051941999420178687169557728872044014813184841296501096932286251366401676987934960580150066682785331511014192208364655653288586421159210120275051439479850707411004725300908791340282611587315889805642636622027409710108206109492915642481291082178166992695740413225540523173627955530985588575286193889990939042000521002947380953023286408893820970479396675455435550573178686253445709444036053747990083042101871048690671678022580434660154669582654619760179095132041572654395227301691407687082944158961087981301668209903196113429731403979632326616537727551194375074994436767099177814543610982327772433273663273155106573072053036875658462492903161198305066491025333589100684084240183249137689503441098413687503777782332575810835173855785586306091843038759385016812893996826686207936209425683614616147869012402540861284021668062918200455699051236860031849287816115019795802108934512341578971130139880870715930516220887705351288264063731997483293571779642431179015731476669925748953889729115003450440238618038789939531298814144026665473337481218326394675531322474670457520243775634071691143816395515176678957391658967400144328978464739974014912357916852620536759608696045306343520958161939053593713027605998352413199755080371327104557856314639261914168071618728167350468495855993883804888998439770039850371881395903212436150661498361661005881629874384182974490262488284835341307224464872967143251304400323466552167380988398311588164015383239611789365360947742889815074915517526011791324825379669871835801865646029845883699536460960457723442240851778701939175619724534423917030284410727763507430773509403883370021733641222541071267324347627455215514429202626847242914099145718624496441182838454576682235834200936709924617572921348450455052968244327145963623550395210140937149919819194714844550257745904711168989517915867934088388412549288499365837537633399909839188569812081172908759219076116981533527422296579201426038352993437427057771769550955664902400707879856011309661854957109426107923490968973172086129448171420981776166813123938382769540842710788301489811015273524201207019590040072547657723084036942523898410504710995276295327305811051349333469384464882538217420880141776660735326890476141862790783555552177261984348007570349587487176893786659904180053460505701457920045124944929579340905380378394152438612375388418207813970155022543050902584754463841283370358312027525452643408246731531183989507105362548965844866456109901773163048356730767718362759344735620145464521722191905591865656803810610331494216154831868153793210688571386726046614657091895610380004736806083944538176827284601159867873838145039569120605709268704126783879672966782665508865532936334191944561303098241934332136511687020477407306633591838722864332709980269189356571995073666425117878210607941523601861751743467032097166397990227394501918025531375878007740168949885888044466473281871065836880893029606632497807257663376939034070457222158924183723543523749223713605755313426920210139488915132936264701775690637317134401756614297477400801837548708083369859913956577013202760815273925664108983123026581654560944610379589415754111432423212499112938121863941609199200837820298856328573940166955441718479542644247883922918594425052809889111345796422439196625280242895039680067479093521127856644846027805289602262143036963422832726861254166859057897714342605644585476362573953483435749315858682576478901632807470118753733100128120421270977950776350363346211736761857978176086998576510759419494070196041851157765706084501247229701666506298890102749751920873372734184250566725960566010594948489800754082226766492931209550783633028365384472353353581893455665032544540719562379552889079908540613352846136120174687202819643175026548473217902300567511950306458768017190335477402166817488708556857580924659535164100321207806106418106291700670328035944498302233777348084853060093864211669523223814023754837828727817672155181059741127028084970467441773715950340107995348314832878351423612104723963745269497849100408632234735786484928058450722224615524593139059016770474286625607033842376984338279301361599105321060678485344635960908901043374093517787537885948592056796640604016456090138165430240393477652472920707418226013107938596722264994427266122869290484567461938915425052992643329820605370949928482436499585993410985040887672036161625402565666326042054614246580262895617578057022826605062529598021439431613037318271080839119364617492872698962465318469563543489827954310943854887471561400179438303754094291676192664823726310964625857106562281020805757655188277761430681892151372071046251355705685549856342818947758285587510284296494678258372304742784951457390739888765292440921766371103565995496719566785969147261199416979959805376470201052980130967260427378939987129837342236059242371595917311186893746117452802979356162301964572350503735532610090103293276983611303394572350461396474653036905804466277951970729536245629924922675931231697692120661219802588431536615822558100790611052829038660165532938174704610444015840678848985926243192690463958968912461830016912418653457186357226190408968660725449112466996479131396663575716086105695645189908754739705984239442457271569774095894999212228536764759748296431258627579762439336328245871242525757231611345025824809067989673560613887307867509003765910044420433739854464277250640390499571946597404696284939423412788083171593178392161847062832336700978332773806733987995357388760362078456766134318749749193175802453884882126713104052306005976820665966264030028666282232761680847763926461349406359056340436590371197287754080070966884960911832079854950618565908482144421729220963543807452310657389459023069839730992167474505236446700344480731795594169924466453846390648699512665818041751310048528109439270944078419549254956388903183059271100484637131634657584735437408429870047793479909370968065890576540138170277390112724057851589251712475967252480336134035786852898558500150912234098170811759724979080630391139213395637001252458515676258927905764343808192724371284016883802240543735513327251314221288018800068504258987797782588833101302049892988726056490909656120172087633044149036082287715394821337108946168263224931494525709604833735946873127593371791350412473743516147362545733809356433821580182308599104399948806625188539290521281845594887705965734535556947654179523280778906484916212749090098796290882001517268771174908101182518821156755966166222611168343250022245434154928364999593508692684379181739771766663609201367272663073795286095710113613053244887158852840006220776260867733451600493617736518202902587150510705248408225938902718642740375717806584168444584128271771815994134431132988224329127618334322422927955475939166310128095274395364107430254571771556404357908753967889717513422930758747724972270481837423830317106802285025442643732179403703092465032915092987083026183833322789406601566237992458057731264109162997012633698814400553635685323879470203327974730574196537127306113353461343022193747790437669494115095816202913360696419493303217917333293219002931060717786569508676094339833595251061210675486543978737617364333751047452602251406189959644241051705237063912010680546488749049471704758971619320273351214512659378464181944774134785346789417563962212809829551086233837949966444114607671200081534071826622051764507381879551787458274786224533396838358694153955477525475143424857684438480621180683334461298552494441871035731821416479579187877500640323509674216764944875275446469197569999657238758321811426795892825757520135249500392135429374669098008990231581792892323138249013886155045232717823996969977017133834716593920929665459768528994360775756517915298894986990329562566826377675486162735457371014941749098650460436835581002900195000275305503762752662134701749040952630663419685039823081972192311162269875192204127711167753822133302075597743027667220768417210250041592400196160533595703812669347311066680963768443140699064392819028809440889714340623760467067970130961494435134524054882681355546473930825966431976672253332497506123929374957635296844547350806841054804854862382011201985254461047359246619800404046606782276771398168521588823022084687925910187670325215488041152918446359728543408934091333738773476022525379754709761470875222893968570221722784382443329804141892718057900458819556625171398514809225485254861838049240546457442259358832714358662136919317789592322406496952648343468558313569071943136151719879040399696225706559898560235669854073394946720548623252793429190282618319346617396118466378546461219988510787883635974318756479151282303401184364817773257788780324260138668147951796731971831682746944475091118574407922842746710441523275825839591378936320341263598487061498101499937237076721645626595955180414132909812313842061977981711527029457223732992614892565812174045942894164853535494839823121218021038860843031682807385083158939858484098758539039578817605127495150049752625840731524942987526329025408863148415837772622493008189684855393411500469455488679137500796794391200898029115082796305530394930651726305429431243128851599529910671737789309085403978940663232640511481610135951286136892081057758674601379885706770068959288155964959847808524669817991343277698193728540184203467257870272806911323372860745513190615058384487074386336469890796894178537809178110102439968155636133756133034199872652913176364029177198539004757448210078877049914289996894359998544296839922624661664957466909719993222956037024585409781349309478877699346437575976921791700272643714394782041213831314020284057429347892741818025947785791847789508415394396338325471105270585278284647273982844717655931621480177694744529421065603961453722791931202012415144647450559349396578310000211296751731945252683976344825118088579476021967352377557587692341666671622110377111981024660541916825604472288450881880925475334494454767159253293042920816724423982557788012158855494153758371142379145773585851319829059960615059432822447394940306551888800382898202052176352766014124099274623847487163197431590336402157123236666283592526839496808411370321332088432953636607006852621773864162300579429543843890899587282937653832793403919408497296376547517046376469711928574347584175521288741055741855380864901741771338965606972550434536062558320942983930709876340087012087167511614148409482383636770563888621904396247664800628460549816022434572791749232632219414636116039249560095732553962441356201587740014375551647621069458996892753284070872091557424955309923851195282808106689117661051161444187107212213984243905182813548119627904166012723863629298885873177643087453492394343226705868351092774075040601008977798471685275059113854420689280012910867643768307302061013082835466322614958550998303970879212560932079154711235178564775503529691842769222669997471206227062344255766253989618949850473864520046734020573821849336186014934326022800214823546913866727399029387450158237080605624051250243291769404623043450608088845949021773381972687284509249282297947421627562634692732336884234545942003596205514896587369672325947623807433141527486413184986710945774407595956603494429784122512805778237579503730591604977318736971623115156613678918465589774889396156078684149068887324425973583171895301485041202599094718552942767678459481637230133329919601055454650369853036965819718171233402462231136263707070529066164925230132492176557408604289584873041821372129627986583200711149925415718419216051588480105938131472126440909530758098088356800558064691140161961645514730456596583366430882935924914751183403510709177449491479107581193425533919739627888842886818984516724764048439973952214745745298949104366370229177111929786071396658101699779503150828521103352624062471374581986558270126175991797485384094167229725200019237685761796225568488590590352604370246081358894811985732767403016258557033795635817159847532839962391492921337558588067943255808608507563354027992796056394522549424652002611335634959866206345995436240552371153385565591820555488622176841681990794853796173945101950689272116936658139448446668078609458719767838343827526200566623071497855344201336480562171154119204803633124272395865854759991724133961854423254359329314725414892034503493252970224227552737378161558012876536643395877666366682650593450165596773778686970289846648844582619052172123596435616044030416831094687081184790038700350199596519634975600354221124047449368518700551650508820589720090941885458053617789846304827730376014720085780212940101389127236730941040430445727035608522316134772714537749981528854541892594126014589999499514237875591325974722053804216920805217348128410471820181557530049157256248908975752775065850569297016848065102817444858872392004255745471943024487072463733262023119445163981542589793504342695456825057369483775601810195941145346229756072075281743174740522525748345860970115315850911439917263179326275183281377417355361752336567621577984279115236838221286213362586982742384486027499852978791637165413376675415513853613662315391207269768078964168077750210739293849679840567146665791424838567262218490768017973932455314227986711973809074737573652493689753268599302953276046213672652363679523437831424549314047855313585523614690022557938146291342266659632872921769166097426998473533957304515512638851874990721088497254258847164014294923297879226562523454132973970864459925082718445740364699466882652754166101869452230663957825529969925427452149941427436029131297200075900769637515420515609338706164936038115641605478032199152325925897223556567123148663817324009999132091565721022454730702031323900779817284721145964859649963632310866277668652553596326819702610810325855063181741939266882681582596110422998144334778396817161878780079299727451990913183056757551883718946752381850511811872501382882374719860965135338585293779686979831686467524455124821968374401643024630388620106875516758419503628144939589530405910691392644800605907692395909558190944827052862300750324434874895639863481568906260499607453412179471608651668193284543505882371727439266057440432643041362130196377032411096250539672437270614845351964143106588221242288813623437305419424614480156583293280021113706586340855891480695776774372337051234117922260721484769805024123783195548922279900197746068539523299132606208368655447072016622979842558137474215067436765894453393850099680142301329774107985590044552080497503251495606035568198665991570402348629227282325287767894878511786194315750678886452502010329742454534697086469076314224090241767525446183141099076122938423594147272297011498668767472941134465186637445685346166015891267273989671215210611984481998164147357911005215910165879387652093889034307998898266686692555017662990412994088141970333907584723492852657288926263639415732650637844003295090153375863806747899303858342927236224101972048150172926494037382543386349729768107595604220199935925138694348700614919292683442055896266643050690495554899278977087210161756932343169080534895558002230904200998681654960943183183569547100849190066601421242171780431852899051761805601167657737015237316542716093280147183293690889923187961390184736254019544084002556087286725209799128956711395946892820341583253776737179994237981991660970299635981551169196510234590181878905098685732010997138810072805323079949385210137479743541075242701721157361832461530973403652198991506782203265202898481879245625434764281111868504081524747482924284247433616396708944655994226541904754063162294673767841384547983405997441161787264285097228674688793664409039085262656967125456085249035641844983697057986282637736936075293861176182296219956147737992172163552876088173076015837666267925517208807871153535597157683462764272292405512694084519891019447494869914449368400564055937981066068814873764260996291188294914222963792925819335092760995707828210201407236091953097120641430484201404136720722060917918879199279704901304493338820992248549196894143103395903614249943613116716640180238704983955749439625015664400242471322899302737785752583756263793295235447805412584690562656834702575329163906575492640372562258271470155909163205013370317437529101197142580210677837544146574315064408361686528153623644893963733650435533492771671133865859807496836778587141678311002574358825526074084905687976709340763939970747236497068025788513100632353428372751490746755469035385140240198569166684150947151169111620118888908321125917709902026265978736121513959934581722125301520011569429879005933168462173601133768051187772304505014673937514919437186977215871244801082202748886819348450202659529717819426257956793346742511136083592460354690004536762196002964484917213198369688770663370362646480745225529538793137153226868012853395106496613905001466838697797951416890391487270937030357963791444495722823554631901454373845346317493051024078230043135354843813657454879385602430923057176902224576981407228638999220054893303422807075166747332364394322746431339328176880020731039110255764470166467614490761754929152373161866084702720140037997831672355625068012084556028672166820453817579617573384972695988837091608377605526270551512077722656922970548170096424387002087836477089123220837429551546853387450478171354263579201564029408770972679777220344750737591711514791554054004011939108437008077764158193404814298848830264601111617145875703412909782904292959130987994480595183007891337150118974484562646133941775348297359576805861155592080526273352692992851428478773944423319568948067677070038435624694647331247779276161288811461755710981277318985901359286885246196673833084075566107489946666572456021479479420729518950535723439729628349501569572788804291042782491896632029168692233226747738621917766071619776744490741061042227468578593084323060677535273151009660764912903878415770071694189384303545424176743473534539706337624032685429586266703504864580827040711708140498173953338102914856796746180764718063287330647735925435268111813166752916831229814087224211643483755379540060207090463646561186889447366278056888367807295907280576348481780178226615371978773433555025015655594880196279697834324884099395514032789085748824928529678634476833144132918720926322462426121235155198754491639181832617105178874699051622366646152691666954816673834621491615283968021826752683911258203369441274546210851362311426875089605388941188881695136324614171506241641559671450961552968524227030603626547522929016225495392350063869990613703115333359929195876966738424809841462044985905081674312673571720815684775800555587328595803763932503482188690750392081049298558466695137166695663299592669461292399970396370803700549680968517309601966425736736368294321747336955685452888074915870055591831093529624328208952822341425627123074426173434395964930286714801774434580438199766682963275045937666010797284882069813921056439971539973987725841104300018191447056105348995780534510256637777206254165985670718785437462528305789449184201190048739628719582188406660775154495802696680695411495378088336575031546119175189019938917653255558372504331004520003315684187165304880275808107329743719048841051292310577800379428831031737850659718562495771688190960039690763799215379408552360866438309229660660337597690012806544829558802465802148480621980492706156168813539388109491829888693997384534245724269877372823015902304647701667555537107573042339257550272768509497072398216062296836420227406921662083132461880166183230432345857000240699166502175710383243070763771951912308159771412541435803441923755299923293117864387193052980316726842703953952935596380847117288704295010609048276983930167367601862805822967825543490256713863000824555221963982494049824804695949257829403236054572721843742641403961229131906646456593041210300923416873419537473308439153953698851276878008697018212917513273618023972738462268350798930060986086172142598223069519894231363598592118790571425963079573194033736778033655678354605581514175092928734887187062503210800098382398673598601562258057933676728314855424488141292705605390008272303688468751211017036522325493909660470557246373149375097709087372931007610159138464737956335108492408836006611862668997899237751458198540819377410080393000514621626671910317177395969859238641159614876850163022920083356619526907375655611212095867786259193195544157502973797812617861909355410383833618021381235215423606003326403600159485165280386266249211815303419705147920853227503153069977646494981656020065089828204214090857915146026381383166877032904764750600207839990250860899711406497776164508887046357622282764772379655444483053725042286650601635650268555905130873288927327220153104523467842728932509270726443269924983502544670988084657786033156429616064472468014104509462997711129814387165121965147238149003953364738102022328725760383543653563708758650213633963872057907872503998725884099321701447963486948370326320925267177861361738163423026987452337250224967200585981106584143469599539398649974185293620719852684403035880161312311931496722193651637535964429245489244629018135238008242939187933921056276153619661709633051550435430547337208785932022760450361128735319256010875455293660326684049846288695846271213080851251986398103036647335246848856053120264101693528314886992289297561755883381631385895800639734516128481172196758201788379735763938635048551704320600804847181618595909841644452781557028453346817576123435795989097902662549004935288249476379974424646978904884355089784047899884993531387731538723518844175627639940269328850546241540001422768944019134329957409455916542939054033944280206399795138979324657531929128943289329325580269028669662511332352948933582051742090325706420459706437493954848751102111703860847393666981045164808741350795989902239490726601003937794220410800490540990460799795595301340306228033877999481857316652151972254768370544011201346357921537233525903065737254779453757122151366279694184036749882227311142665153082999695708571848999156912464841995435768618930034617317710217764527235537075866385208453573663110062226445741036980445982813490936740914487253831739013367146552152336405669198145305429060648293684072642560849188225734137357548625565085368550875490702205160730402746154316859527751685516351042464090282434202735544737244720576712270111061478346618307363701839289448274706386119111944421303939284437495214948055853870372361387626022155833529560168264241114352594548022071693611048990082098644312842205332263197954348996335516798902606236430750525486657017622515279932542841526563212324974684279822322177916480548811746492286643754938197624868557098458026121416298217496621825060321606987385982799359265931241282909184379699496177158220254480459119338017611319532178735881974600454191143152016649034921827790546028280146373189631893540569068403190358694483424079747295237661854120152741415828578793753633707515168486958043806181209002926354850592449490512591394525391788727474843729009375784052175072334495150494942526879649798759929273499537790730572811752883440166484868440708500361930328777666531243507894482637746833979983145707543397093019086233785953344788899207006455978039553900307931867932162024258564783568942468703258305382831480408101557581192506450153055151250187665430072280059740567058170333040530657695706498271784886884783631059716618616465120438481318244247605549541133642045795234819901687330257186703520417001197196866302120420833184529381105019356362360980255809362089126188997342116181061070391112445650487801543730844453511619906018398304203318872227095024628000426649011592358988739765457856798871534800118509144442966662995332582879318988321266790655926658352635057463330594274291904345462609683557047401810953147375286934649749992607942120725272486972402866864083602865242664971859864264516633179139372423656613389753538127664433213523607582744283335410712801519933542186897482477048311547910480009161109209348721296055269707483689606862843980104362451553224679409389261511450877968917839662379740211365274374610274269265713903781073624496925252013601988047367601657683936897619763994552960913348835063596025737623628269358517053516831881459899870760426183920407939727401585143465035919931100944546233216651571637845489704728253510733626486163847164883157799443055795440387666927127329553607350780935612611335956739123513025362542839893913830083907307322512300919878061914852920821743439324562315473261573528395428637696374534979545491433571002826084428704412014303703660753812354693070038205787905979715738802420448588669901931716234160804505521868813044780060712647231284404815744769303866413774677924101703512241375882507645367309611167147215462705656591777864909103810874229335749244228385795574145689292032199156905293039452086415970434489265025315847373991738932577939195255534211580109797066838450592945601182846168042801566901035931314767870520843609879462505991998470574831397644958043002768457440061207648508258431791180480721503038112838851032655573698030364415587938022146161280752122656727539170629627141337621954369717920977439723501308655599364776816634511504833667375673483970768750079364606410094554846973554481363013734871371676376974324534548024829464066360739875542208294919506841927740691638141464578817011357674683461093486307008641500332676893450191585757701446419642055466513222746601346207061341122786762714164030550682084673119118054460255616705533211380255367203051362848594129860529513152027619652362529687178977024748219987694243251483695325086127285914493186787265269561519639216150191782068237524083439830696405030046534899331537450998887524526089833889448180677755286979779080087768909301953239223787852119537546283842554564197696263418865322632828130892246031936585288737659461987472759325573262840734713724036003356550110229945436261891510500013906523769839220332113878358308081093379334345247302840611871336868508055330655184558329532820790428304707186144049454133575630838106190830823830701893542096583526241220303536047163835511554739158280098590736815072171220355271632018734402471860506316346797306329101624925222469631658607687844662972722136584625662530572020839062050492706635826073383473305155731756489204655621405031551748280012027343694804795627425772578766125833810400280798321590284615610236567558600343618209678852800204757162767299163724198808453157490168592065301012919621336447834587699420481216480568064723961499085572477024950724425042059925506924400000098505887047986263548750697506720607701371052699362168262901628671509041646046608413710936619271252520910300392410734471768147280340308339026071298387859542571401764104176062234747227241887113120953661017932441137650862507468063495717831115276209110723313690818704615087671036717162408310205067527068656081381226360030267286637782800548695419915583822175175329380303548166994937629335834262522715124853836052369961171698009999130182174898742427654004764339453520513662986655599850095177441264834450374316890768025703256347696270221646790366872220379000888855475612531804397628507589141159358775891255235630348393214167591336710329181720019750140972318546394679544859782122064018888007781784517803529607141422892362274680389827917538301410428973403786458152779107790191460569107495651852632594537808466860925121427724823173525061885558274735293938322080065422953965785412798502472141792510471289180957457680158864052637310377687515283175724617717056596588231989508505264452630225021438287212509962264003140770407775714804934891709314521330678607960385963102100929651235207876109383432284133951237641002070678845726596809945617570539922301000355807291375433051539330393796573060955325473553374638272574764959417363755016984590267361267956703192014968335837861574838628821087208966667263789130870318648306644632937754133417553679933464048418493932975016042688842635968144426290460145473080009543846308360606018497690451759339260584765310014564375252937639966491945618104748548076879386939629054656474453643957013156414336576094697971187220757126462731994202292112072410760398417295983070721731710280994644432403044654044104568773216597564747550487175392034499636854265075381204003974723922575285528091711312274831943511717580846844480316562379634378139605949105370744458907534038864262347965717733227191261784852392318016999991867304015688439167300682888997008223707013231113208793470056871742821451965894836250564434118758126275829414407550878387253697057599700828154998076795400459472647196016125665669134306975280610810175693003286237813942475503278032939734466000676849127713186110660439392273426268066317143230924088138996393725347204045711896893255240609094110849891772380512784810022948473780855420163791165573304842789756027576952890103183419752623847919229871251043218941578168538452701104138076839442242696464280115421725336617675779021659222598269149729675964419904329772929162708431365929494720999739403504949027222827103088900745131845783846250469940721701361070328790474209826682463858519398569746158591391757760593891060844524256197004449903010243069471161370382737903373842002829866738696092233888807871186201006433725242944586951154264336417018849577741897940196096597769493096662745584128332293290347970596384590434017162906052666915453748811701345300267785203574176566650609647747403533780546811495865244534257775627516051615230941991308993313395343936417653201313538806572852518833199165927187395853590374847247208268095637418506946994280571996016530421532450366000245433696850821621070513672137946315001534561527876089722111255124552151607242240750410971772171971220659939300424165313858852182473795107594607753989987926353983070989270005930372389728756714397162323955812602570364703785788622337248256603252819309545476224289665457519851356134801253591340014504056383783561459514403143323005127746263939180174945695929851501119207729452860947072209979014918278207551571247831022357739598815489713551877769028580979680904843754001549628646857647006599039380586612447721250680453212712029990562508140116259109818995781196224170863077617194387713408040303527616426619842034215702047241694741881081190411710773036820068373743774583752271922689084215117617333139579568608572048456951108193168470952728985435306552017607262976932292022217024787514064116387490609478516775006128732069652597731831002280628294332378318061922011381637404266577534809690386618684358567341739064920217256886641533493245110598287937531646915380458518059985478436251487229606156137495799180153423454131159936701861264180609456112316740129825796419476713849320212377604450466385972173819224821971260466280726784651053211606329118332853320555131575606668295992891910815446661601657747714745038872151158552278183340118931074000867003277637454820374704872905104428195216919670516726695912283458042289164104610519292062808576619721779067393277654935189502248739685427683846133301525408512015557850729980143362907635789041805563163504932881261946816219763149054615419564612716917464919598936393346599592700102464547314505637414332335691718456261578130604683943332655848508489469086530570646752690046246577518784253442132041534134848111150491757974053666399819628529074442503348202413532756556559548089511374511880457052068935808102055485707323681116394036216505135679171406942794110095478817267093063685871594717783151532331559775180548742821026536341851077954408216477092225576283624702843446676420626149333991842338330866538347573431745721383955664123027774175493521017895296361214465130987905992905228012716359249328354678930159924790788829845044009074495178649635637719918570044022299869947226882367516433841334260693566335484314780442707618784690483839045497883539849115846131375715855789801469374801992138246855388080427553342159108740896633902874768849532672728514187105930680579895005337626061956715679654340101602168754101748686307832590622437573591086939320365386331529150031852486065788721571200084487277696655372302933096924442457075635166810468791030662836914196507066289998194232937782100193641874772912518897156212165743224556030735344885751593206511329676780019157370922320818252408191606585949546607747905593704980820331534228673435288254813248625247655312752779517902517264735889097307982074486290565932086418683194440256036947557501142663226867632556020601819027902682638398669482589598607078969539833916230522832405919443736583179053845142815185793803534216642840730510776496045259085821974842784124172415481288793785409643332235975873199166708789040260682882133489782287234789927111095535127233267186122052478946038575955823358617565028128552885257409582958421018090826788198234256893299714365945541925813793844042566536769226538145431970874862592018342282227223553920087979774333116632193117055135509549622747286214489664125169982098029975175730184430357633618092974465738412557475594569707676543228705836098011835006411485629408522489305437385100324472049068657888025472276688632493630107536005909356488873097901715560211950010090567403884866368016590089358184003476608060374236185133699200909407184005266401110786740287287738654276195521423704086714236189257616199488579148824136983396126809012604723763902350397658947331935682085212671083624054917160456380680929705243658172862855920758986896543510773058240653372346416082960460144362371090644448574794948451074934168430855223940998954687082714702448470671808061661223152353394544561386922525657326860432621012544386029536043094707497351502607106901868908790976242276516500928067443243655494423118565532544511511683922629059956168187760166996429450471187143586949245928063318479558860074115308025000608610747803432474787127573611263834477302243382286167952857234254972047227357051020392155747056323125577763601708028613823038520099017671000541954180243335275777639266283780955728727078178664721402306654498256898452398176499320819461402854863460441349952606694576438878788496964670770989835052538173555716622823461492027255022742225231953778600176927919160275155343002497667432253698608661614679125666798709072360031783371193741309679115209479376675727582785901459757444016891308050512199721958582962112993540740164433125723662860731194397546749713047900961538907947927028257554526058502843504859219528142488980154369486864420542023813714162538848865696139804119508372531390694720444972492721758311183207376478087257631777190612328379444479219359758582488013821169299939755141617634658383865775082583016073492168376798041406156271274606685531590593381699499488880964228247461315797083737370041424441713904293362857998762285329818053017899121513175854383992703967437849780027819980224654863170405315685611521221785432433578658418281555747427876513087389489988286013269436031201124330444238109682803370868739220299728265469554131260019453524169116579444369071829180316583072854468046355132640730714049490759300623515464538904203588141566464873144736424178999981741983377418249152515850638191299146154590277193772841408935629342785567277645798616159711829341953955443149487337766012657900130205486730427342174800034738266209638532735330307924652193789771798385298009248091396090630500659729851592220543069299682056300830869607595834492963625869274796024655583611897764142665415302327843669726119528407015909824478308109043980183538723918361661561802218332239334102265587300194543507426364886745795611938010805942693515251882558533026311135019140706379473807990976460641484871970574971178561042041281735162411093537473119879973031071128399804924478364794636056234174896736673995017772135951485229068792619368716268819062581053918860846254478503577663327405460911823744380178170082587581862878197302358591031440143881411742830549903706207633407898278555642822235482352598445715760556588627995249502659152159111800378443283194905231970090689287142694531612053205547865379981496263344571176187555574026051008139509187494973991951442224256414875434999593294264337580660289522065418656980389493950378016389996837259583942828475716861263501939163802995935143840589343915641725001988083230068476385006985054654620552444845136904991271581473699515836950243475792851057964196652054627948630067514480883447477358418222680259908222382092873322879247841974088077474377840702466775825598241524641787485562703666757406910700427605608621012618731922801043910677100159259576190649718026581946540984039981792495009364552055320218535560647123335586695818067390432286753656133898410631407010010996286880968711995461947364187412817704812887669129607176969489341233589632939729330819545119028148096700574413950556126322643475094240183437542952522752227944072433854081877897464080091538408198098059698849222010318183520753919869813499395710012855507955678797019311314662680773998495638888736137256829073450176229245085367031716227668047314985643813095995046866120684694258360313181635283455066788672663962440600864339341070860077945639351279536329320910778435946027695006971909971166923218983353663608214371925554187982172109846570792345819312963022252563857935710193560195209215398908928924363407259652962596676161243220396542055978878149441904099184064712769798482187705174191742043115183311809706673617452664821072078029531835318697315256085011570510876390025912996595491204422914059125428785951281515431338015793134573992363824104640657253851386559816316236138984376718631001744051448549485929714206892411888052090956426447468057160770778511110405476149274538832053023241475874318699002366045666981564841361279216162676777188716898436319411148543227124062306792800152123365588817830406139640973814070300645684940053675229796321710805979037109315945191917083168047324155774398938983580507336221073804224072676506624193769787397436876163914686515153553942337131520843424469045213649930105372211747355003639887341704920859133032252874259179280381660931391623685127899879055381548372124833988216240705574821013365909840871430503926048390697883278781703820079090436775348674081953673407427466021701937064879959222752075409252014095762951535618708128265860158887432211390888977960766616869089972760479230250488192514258672963245827024236114547230065326760629513359016145136582962492512337060568008432352938268392277725562790629140550247751311828532337911487257975628535678520353172644149079355881917348044104476392153816570663883843399623862290565618451315120873461872177731278572329604559949901558459821918938629122599417149962728340944871322102610127357031196446539261027092474946779305135614166833112251556886948999597664405627864242595972239432224376761959232898737844506819564558378610850799509574139673012260177899204800899583245906013629059175753603974395801001009501766077505238271942235238378257119278930484787160184355399712301622137344618750465713816932590774789290609147021292596762134275760056826173159802656140345824461339460268772873996092349926025307088782807933986885036375761929996505429438315021935667861951641970984630101749570567654659568051005846803874257030419903831776203365327937176049588438256303710146210402082979678974218918657341971308411665067458290733074867968226094336439555901697951450575926288767296854862161594782060775629769503935622714396883954697236269750186917505548850235690655799140677074608342344159097062927645024326463370055002359610081094655216948027099427244635607104865755550266097625119963134480237117234818385517490957099636483987699693290039299928143828182196034022409051870134133204942236355450344050545852957286211081047339920148866825165230371228337721816012379750836726732237571222529899927137055245739055134099002175918267517706563617933620918541610884282080585526503540418007246948755457764561541833270699463328663810196990323969270504982758745542033649733788191583980383841852335146383506597134616023222583734298102594001177736758143713341462879503309726063538929023534943933725784591551196356609932996547009330508055649141434604451396308433045859967174911683729541215188129127566561010498761096578690160927827600434105290459800405750158591935406212625142182899247057942567829395196415912761562310004778960447773081163531109467991114948659780424449001203146954932665965183236744798843929681701818583820830405110973649975642951865174359054475747052218181584486553613325960673859772538499901832627493226374075517588889172818076358234172972534526936349146827058541106986810324029353467498398662601575661470075874630525410310149252922819017583685301476099605149708467878713666902366927537942252025201232648446571079817410204170656476279555948347828526775882216923718280046812791131323976597987296223802857347411388942164472755379688080234245666227615985325335057891386377337938508900167101631822159617390463946019713238087454213569188233517840645364764926096767566895665514054648703256366491768505431691923477053231496334539836697953971139322740670339709682399586739467798581415169090977858339683904051350132439632477791350553513503051280934482669190161408458462150119195907229133091934450157849826319572740468303290736511784859192673819231734200881229834965854633811335622624458616406911687716769699404058954719451188116673044680196951837244623609339495524589550295334106653896579861894622972653832827235541686548877973249297233910277421692872588085332255953974223139611591475810454241925344538338864168270063270607401417551912891211508183544342123343030692306185579892914177812447419079247379252121282681407912521703492988772973132793842305762541284933837333227547012439441442238473561317176895558878463906248032754248768505589565800009860519750455290281181646131493215725824575772541829675234479790489671500207389301802812344051555447641483515600190202004792458560392587606854904285857918367367732317196166980766643563605982939517755868174059675079348073423553599878520738688946990606480506448550335181598514125390743334115552946350290518852458178882864815912590675095602547009386366788681741202534484505101846256576307797963246085686990237586718708280367652541846854633220816798314479938628342766426664049829902036264602464704944388727887015763170107339372032105672872206455433479291917233956590662997825434827710028077199546300451444436016802769715624144947117202560165690563832141340753543901267937972998958952843820782635745720508391373244778410002930295259990995773978024829350218462638570860807868704428165889641477943406729128642301336708140024514067113097483153170247535676868772929603651268493390709438220904779640422846307146879773746685275578761898728945159551157653900321688445904936638667402967042929926388154235469937025798957768597176241554955611142080829578704481379116861800875092774220811477116796771878599527117851630044851042514595003606478891505021726421430413861847640714527010407331854463438722855847347971244481788197125508617353875608744461301889783230208443994997726338919523504216597838433595588157529431354389658622821968442717715355863865809156095197468662717556334414893453979653267125499600426428236219530143971631801176196343006748263251977721729521451146910672573124449379609672653245765592537852198138912763333401031107751083647981785796666584920574368522246234950926363430571239004307167697913794033472334270227168065892861697007769289422414418236698822180588117991896991932960974468233314855962031885638857670141394939545359724959616899490254533410934143628510327263739149452063365259888146716957907556505910606319665577584680662222242782570219898470130942525647366399605165803331234259154257800237593203478398563062692392638628032843906497325613061624307569294928292949640058137358370623081092701283673153525244545382424129712498807671394393238571701739270424719071043100651979818159887100419115183917264998641456720568268328095637638701139120537296904803665292478445819619801561257554624515544772313376790139871955724899450318300906791243771199289274027674624840946490324298732853833361380963685094152680363738999966130579932411136780431495403552793876999552897305693547697020549522097521130771081253009934999561070631380785889795951113505821730415695862881400019122502903201188844621903828902266503591521144124000471074259652038231348471265535426591072773817427815537008959589210110312487333635133437224178396306551405973190314709280024651662296403959722847502563332045488136174343030680593404825680859322626405142380263202554565246346286778394585542429827348612891430436954304413930035319312077649735727115689179094724086321334263149528656721451931788861922934634438800432441639980932230532441562154804829857001850226793512277598607013027160550635694078286540148041562360994365379274210878778596684240676412200710788253139385532952113303659972804134025769057508596993362022365590887245585594753134737652524220385523533788468906934750238901110119735190196798063178564830824715284043443349297191189734631268749060349748693483856611528945049913053360621267425606663016223198205374269346578690035908753788663239853680271037963666391515230179314178484923695393359650765157713138779829846406256559200529446327845682358321562932140647366068820760955814143409878941910599265760987264076436307572493480345091107086541116646057576636349128606767381028766083697684570941776539788833048809060457458087114529582861441792676449493090283156586037150683084406157319573288251609640410223187193722568378687181385794224799204586202837357575068425206458167896671973807411617805108359807534642882163503104675607186492258164507989172364784850759850321066183393085760879794785071143241519973588204825801551639829670699416836963229199256687066378036905382021784711232972970917431478697859998646393134351986111253006659616651731508238789121161585276490664943483498817870915641940078079189813966160633763345574216851791478004086891381044181167127027869136936085089886398129067008609802433966998660233663547110428963383204086912174844293835138290316054209870113516178888742948611853422793030832908776661058611593906617774700805998928894111790068503561906946151505670373511475676585448965941140485547701140926843358080114339154506389309218454033417106490149152332727446363000893928906333614363852694358971443721597309699521201771807413738798033116679812718343424347229595902642294899812178444265022383628663207502763397153972738741312685965054765579187621901187661949263337637170391570684221952278033793123293682760315174957194184180682797663374950672157715213614975582035824914450061757506745242146607665511961543095640174312938320408887398186586751426649120561230593595424418459309868678672971466066947723364718474234097068225834276453717028497830996392707835405407933385051412579559836351904995238973650440996392632513459655698899638154995805405221946855765440198414826748470860359664433457687399787853797324851932195595270351003714577079183197159728377566321742314806289628043669069707872110479913491110825799985524642781338515422498358431998653775003560490440702397334352456957600814843350670760037526520943298544641937860244299791235569984646884855922596430450726440177096254929205469477521104683711910927718498706305263517168359502586268196057406341991306315965452115503759918366886084568274898470608525359140262405655233002386557869388576921279054783550919583425950361684270694862604544613319290456080338328029602697346091539610075480954829102306982133461323049239844734575051136269724083149568479951812605757137168378973927195575104786659467839783641417139329282954533038070397536872792273999966752825404160207118668377145102783105414946565455930353239441682579736752044914915130929481816849123459563656702799969527044127079893018996199370838868621114699933587365624130751474539732244700918265295040659688190861924652529255517543713961570940917440080615437199756350518978653301204688494832665806608983139091095018922465728237566490167337540132278462019865355526960546478676232408396699659490107066824126688491666458829136012515308288542927519610258296444952959935511462094741472765026293325092231757813244608624098296060308415737482229220251625496120581783136158932311821749533619040652615774467308190229813793721480675917286126805367530966152609948814439247514563646397335566192066049718239280051234840066604409515303341344528264283604393960186632847708285019418480628464205059181622688210501812924402938982532759021196754362695893135493855280430080043154526558045446469689753469128377720242824099860438213932039875631989901720732271702485761771678134993196631777100101891539348112582048742109139507820883596998867122350406229958722653294057807354939380337047381993060677023263743628374121540736914374495252470884211265609718171342848933288963466576525286916406607691979992093980703323418683358250890895076289459805838583017517528922468805692810874298170417646675478409808329362954232941392080023469429012496672288588877681044886596755040264803647006566166570533391948805166214240266835463364646817915111662633875076308044474861216756322666228898188319839936033362083270077977462292288701428744737974408591583850519324182462253216645403895807742289184427303859151579442545587244260635930836224085902108787840147573465018461122720781763822805688179583077978871790368114238138292568424153320220730194455758811191101284368825248667037285213374116224945234673740859641558088821656942811561713225487689714103391346223374807042447419336426415207382865744930985740276938133185449421861288636471615181763541181703032899483574573839936143707855605185914631461166311984548748880402584260101399972240499291914328229391488772233279956811052082382743167566669441778919443865466441062348787635989463270132441942521205175011501867994205329086068963686567269550502619695546206945280567065742193750750463435990666505759606185469557388391919497774473141898313701233882198576373707808256839085808120080588274594991696451724848973307906364032128991088206676095325937373368123754587397711235249047638060094607666984670019792594995608445861897433892922696408110922690730028267317004111203358183968025751724813585729712944888333336033457419140995536689199199447247238977234226756085210238175711245428519780950519016248890037769833239418367598818421233693565847854862179873512294159868273014586322135341503240353015023552136175997024029804550134193914286753469582347140887363351461833283107764632483695156724032342720467351803028986200188691777738478908072660069730645691207116468592375289423150235016426087456982055533148178864144930340814331214024092562000884775707806590688377361311015853860742578614092142939236619271417181332202274930408388657453369584823427292558236301083835374974705497857903596848998978198276501089667248790709583649970271159849570030509057283394021332856331400544072625110538095681986830411167871175287721555003819627966303216198240884875892979382696325292581385152584554210787039955264050110856427965897998949588811061932844459128153844807693432457459705852094163624320865134423029859879960144819745041533459687155449963827012411634240253632098828302578095165453262288161182712739527222975210496523143181114355922150160872139691878662976016948463044318819551609510071717427416309206892125859306356047172378215939781908791884894690652946786426187987151787692793018607201115665128393101834125762517696567161099065745960432167499568798978305638171138443803844446436521491805108627719915270882135263604481853675537138346247217679305994353736285909472287478303634648218839059047218144688035762807199910456075657501360242888324821880866941807767295181374742056522122239123664197249203128144755408834992914523481270107132652259148014531012327658045591238548744817973176859549384124079230366018064456132401643930968744498343394687236589740334895345097834745865462732247980607706945162349535226662747007801699600737650662455218612965866776071630247789076025330248884149392222135636590944289803338984138674551617132150602113055747919456979990380431741858581857629299635501977604278975757087639843584616015410017038682021686239058669465195468694993892613543467903839640631122263176561963520214517345558692008116970944876357717201808027052598895873598267308960602203381074008527784295007972026755659280891449834028707093890340949607694018925623903148029754796569436069559388693317554659836572761057782575806874112278627143955997911870751973672269016750399401120080150869320246092917479420255326882935362184121045024730072252681462062128623563476813791399465844021582663464633285949992459534698219620383916978957012658282890515007865353488921933777933192526159118003612029030854758316989345939744690107589619076638535611993193690193268260300903699505518715280637631475984278905123280728546235374031786211821130783622706230272563428090371634577552125663023209249781638540173693711028864134959974532248797255586555434415943252960711116040400796049728898194632792980131813708739156697179186212547040116185994654427314038847647516367553578396655130582075339290856041325631004112412143192291132057662874209850955658468271277354163850801097489642438838780231334351744499050358257944066807587500271166905390043688965782759726495934631964982896786550537946608213449860229947041161275812624444880733784316614951974530375495330100436507124511814404488509326092330291702327930953902038475777196231035601969476027176859010672129213508574584884222053264018919347869402281835424281709736850679185480160749331001656600926213425356569220794713662162912124282111689203050544971344223951181838055420202483497646521634428239172092663147748875427985932537642401433080255216076850768020259729706788321679427695410616178302897988982851356382204596981091571767092374898445357335743254521698493443120849001725131238900922053264786627820391619431421417025273824695967998846823357423184399851772485291752504084997796700705583794326232598505319566585537967434118253502958883539500200719834349779561745790488995259999913351990126744237164962319448958978133235916838114270046929938966255641990817074621825088815563747527031651845379739346613478239689069076075671721668258992401121624577225793735653954421917812677135181737360064995406642682122805315479667712148741465563193787149723825503943502846517289406172030726484356237273625347492894906845541975853444598333431425926325444517866321304327293682950659692781943692979686302527553547626146357609184667491460676744606484044729522172573867732484495145822002845702132851007289522359686140217747372988972126833839515906212084410410311321825580482094035327318017684122068317799548689303127043762538922500021218739369557517254009251503681857173609773336416534363327104051574268244090288674889332299563001146616962832526244386655245609881412661449404454474719732014984302514439409248434527767145532544518620480980452434975980604182386627987957033305303854157882187354125624002917952271596872709461833795905230768564841803629026728122290182869317727285934898844177720361532350349609250786595826245061468575759427575916305486387186899687573363787284440393390199468250999363857528955928485960026953975893180204347974487350516737669963239620178118059278278644339583604457776545462939707138241818123334889008577069961400852009108838231953973826255789054928530424918172906231997107439119147831070245420328932376483119428108787974294261803880303629038219756272821772968119542836555813269067243158547645992148711515278733214039750524820239223326143767294874493540893956407223600632343414929424847009829691131220541831942828211171567591972303690258147999339171348155930278448611403907967767639864969387031840651903199199501808990424461591553789041556278456988662755880740722134071150568523509315590116904075312377427772388056391302107111848704289948087945666225624632291178919591730203880350451688653172266895704692333779321450360792318033380941368717405152043357321466466190479854761748078561645155449019531879779956451611954658687625358076665792038100237053656718325881614881573726303464149562908288004930065791496156215101830244109031452474520886296000267868001583987578145825967241640258006101829465417963252395022487847494191943667445523563395592148670193986080069355921783892322286439308214762622499373058923092766207521593880796315729601795631196878464534579314281890751954267422453265749217345885493612456205044446192920094915770231572807084350465947514959578259671779510728626414399006354814088763059372137499055233462802538957476917297251481714015324922866122303914690242393285822033495677322740304824698498635670652288240523749079552475885142495075607671941913878811898043728740839512079723486964946372572329358047889757523460540634929821760701912479767802543126815532683831352738859353416295857993011138480298320175145503600019706276887172507159832317710129917846322779430886521937102731524648952349632345346725837977398354179527958469728790907805940564649828673067350034132192192392479220342567124710557237112415298229412032600013668196372513836127777767368606820108469810092122890470919552822324447272888214288882563520724351002929309576224394626364445912121850259496744055042499122706765119418321824356404902294897621820250506783893747400251476207628342869207318157581351508835674237154152667681322507936879731699367202385217558260250627329773669410009527972261236713083630636131919614262515194133226947990233810615610701363106996336871063590258222261171840698094765549610119938446741312185305285029125850430007073175610315569593333644469947819325960502833123242141495038295277295294030279289046497705204451768346542154723272502262510517038870064809926925720389127124373553826571261857313195248002001663273643285839648915844610212930767223369192593274574920159476700783172492580703988085239022274646295059936677153568781494376384212504838402651739865633311968938334912110304363554353511602686854960088041466953855471987162722392210634635494894802998629937046690101938755793738395089557617791253062211630038856511284960861759366655930328369994022510945159140713503455315929056133764632515718615450075344654738547913790342707879511615694211108278962610071337619432005659623285752659684883826502396027224366035029556617988691947951392383111532409101546302207911943399320944923986937729163239315153017513121367882742206711807390906311853291529833578648706871526458028902985124883666009340220126863936876614010454230722423584237503832146833315546667209316408849944298090742729237827197465707695367504718007377116404276714211459708819241437794741507368417706272298687229550230571665001191818947490730837558327835981750406712089541214781872580144045298900698600984232012975859998766687363575148784185082367630284037623273674872092207752403223428939611277624548473719447839515488641639271097957772892225384543854636958370195721717903009217920135009134043976815691105407490449589531339115710321817724524514307329463733495487351933136741798777477301485226291841070603829961475564535187020955908495813159091809499668516243447289198847910677033512036251243743765690716108736342445139547713324061552599919126935033833529430861399742290276776681792127647293156042407052496263442990949433333456036354554218473200932115623680396022205906970152747014247224398132800075085089385798309245112688092068046185785672318238169478138831212856437638011163453922992375433699402593274985833432301016902948746952705690956687858703432853346771661679905709430174654393260879864544408501580927979045516138824982018871582139428386985995983553745582448206794169536509708186576507247885524181583409605697395461155929190106338657920032971980807295966123982900169199463752968304061862418413475353043760678375870339504553870454538448576907929060957726749292740927668206847213260422288260947535350746531015693627143613700583185931032486642128523315472043151013531179661079406403194986112306671318744771273387583138743894454390496793172291247758123432354378406494808559673763578208811296164258300549177127514434722282805361942429363909749346048026074460536521244755754409436825017622108254310901414616029485502894085859275958270374783256584933066537154958464388002728740424385861523921844227770428447080646502963456760003204931303237922069233006330498030902053320721532828586378439052786985497784076916123146853295780909393301934504591284383592746687156307284277308067133510855133188786257743187454959199244824249767981481420282551231993522410116746416887485445898017453242047279254819656311282857353821552701423699698012642630820011809388750354780785362895988728328944391482569707177246853058244416440245178729915135085059773559824805992885209268094284266734101597360043633690071182865258071341662189503502208828512763630412511250431415842207336374828084738033255152833416583655378166128598975352302998064959503880679809762288707777641044901456410426828506141217493816845438487023484147350822249671713699273109573890314204947917772763210074276988601370484530233351420162483192527545945125003369737794063033396870743171409880947035312990594470733019276863394525931212329526403738411377016876235207971551250538702839152098701031482635842725415742030158148440564740558280709017334531937856544421442091161631282799495118250259544013849342810562559627371679610617581938177696535649306831139563984495037820524595265832021722561297623828674879296690157535657841605665789883934784254407701557877728780696203871418707100381880011153185329783167634939494583929687003153986164732511289655764134445092414618025863035464457765689585069924152503711237215180815873184619542598676835798149878663903497009118619426566389241034862540503636756631305532346920969347705732059537544706584697475953209147381189558372910041558569723902976690028474212736219520059655525942032330662291905106810864004923851944517877346399224645143421192691818259740627041386722866944123959826537901447839435345775696382537392615569574018702679802676143987802240526262520692911609967310251694109756090153665487458939568603780323149593539523838027012348342089291211342652974601143560192107719665445307568666657207126501507998591229720843341283141508185088945530382245846175798007394149346952174874179934721570396950746428594804752003950439144274540220852086328276939773557734623225438413497848460224854310167296554727298588930065894728167843467588499151058235230618683616644718926340625180556668962947542109194193902668399323629136763597961811486510583401875517819603599702326628159108593799829060638213244047191082640223385437773595530131764171763688305801747575619020109355257059884996505093974546792198479659224814934040860419968053440329615613363268555857107240589067760714072525455921071119898029136341982238803711167876336313885050206627351363355402055669155673935574086367124238729347042786581923797836990190552665049438806721321681901994577442226928949138446001324576896685803373323350466606602377064924533092616263910356966520637716846018910975014587633861213715630448783670484594499230281526605858909518101435846599708623145006255013711888814344810788759635300060987862974817524117417526031359187335245846107681218627932950907830205976710822873228482069336722767055874899944577526793062822934769015338882176821601105876798749539074005530613360844600795139169230869736790519153759316942383248438124662707493202275532848042593195819069993310967937685952525525336626909682478780491217209454448193562390885697984896317968690322329026086414521328856706313197902513803348123310602955114201728585264484056012512350032513780034144057313715738567210636598249565491362059163905827029109004924088591620305956169678612900483801749403120891949344040839512249519699269679578818420485710864329024659664887039295950680540903153248223047090525866980423941356318439334179026900539564114969410021397965524290629838117048901420495031511637483079726679955766705087539836210169763650365973208260674225658958409631683792822105848844732196766194881082626649399682181537623469842487172850941305040060743975933701157982418482697627137569767635381114110603424470695990961464790511878763221932250123674308993956654514780023880976431068108047397540817050609828403258950078221226949739535818791271158494044163003932310831292447938313911061502391400632492959744338673814537017574327096745819844451677790634534689563399845770949450575944938117445036976315910782361047075271681546955991603637531561226527476061331268598504188323345627149649189438813185074380439419082681736389444306146211484700170507393560740631120146765666111092242472917983777901112056725063227768605521662617796034713010052440608461461550743276612813172224411650385930207430241300860907317741753006562934150933691264741455801131529045448703207045829835908285782273579815225990297854649092188938740572213237528630852197896329981984908448075986357072383933595759863282482401247908605451116262647400948136021652100501703274355314713460802335407048470555975727264322616605510829173936002927185971488908741596542229932309895797040819886002669717815590874069673394469032549754880874170426226171819098477832269031970457748490194191507254148473987471706379200523078220000083491808685421770898226904624581593450539487366059596786558637718376644873927135403890922801071038005843484750335298888318338351570806777373310337012558491799006235237491884565645009354773662603066951222755540383269968154697370657638819533003774368240916762241883911429005874889423604960556760211270942363785609372243901901979725758664346936404727281102048174273401254636587822376204841381442059334087398757751316441184123046288671399177998275589846335536388915624360070766236233712985213454665042876572115454414151398206526629340825423398251093768286152375256299161905057842000255445439430011532677282502524566820943169261849088418563669233054917673399144694695327588643052326060768407731463231288713705201387567161636811928714216247193394799109885289957120087827892173453952048177888203452072801342792705378465363454484531928803376342260800391528178623353538333991761305611836547805700570840478352609941171146174352445567335668738901609890036313175764987153296831919411482097382961136838198558782238738484862177809443943017658332923962512093925354668684409362080997598756934253240535473230061262241900477817235837910809150669645989713229022646656120842126341162988156293006078805816103970521603377934152546731507448944445008281872032557673989455489422120578114090403522459801218060040011134168306436973701597092451662166816800015417036943186917027723453011582056813896727692170891010158035110828591129434495088328566449230834493725164290150390294654104984715774582781383691624149780821658639108544460980042835643639258059271400657220958066819658616368061806427850166058826768408346939575440121371558874084550996127245663317283573655797808776006491934193910999619780353575847390172555438830317577009209552799817770066625204532709102044038579215412790884524455126020926914768948449507193441369809207350901052341389422409576447666347119248851835049878861979834939739984513484936812557313630228160508042279354624130501816727363093484904494969965155709405519947939973206851070023211453263020377202791977666830489017546780123664893465920582477517974176600507096083448155631581399202663176985984189980715794158010373329955178240500013819927592008761529320915684786627451003206181397241792180160907170130312393404696846409367917640122070611258544738401973154229480361154208718283083597522637922185059693945591905493224668756747152985950336602795965575053632923161186244093088529588722009788452910412856261279727011290356950118533807894303575558755379510257796567277835718030253834155082624260893648751403494143314731633576245564169277598727090571877289720062456361863702480909801993163875662799021964363461432928129247064933695059982295678981161971063258537227523790149404319282577889578997475489296377841873732402225052976054233142936609959291963471414890804501525872667813243630601455788700591046484058047544878412039402616774005342914056629644467441790236664587567967734485299238948510308683049708086776836681655679156096655723560714677090471960714366151891220283607833325044213000680674428257530627214982248848501534800170120970955113089019437579035675415346924172685054027449408128835886731405484352671920703012285671523754498711789818476159028515602076134140793918419979731267854000126507706292506605991735546192783001264990039651222979762705063508213034573907611315553959703690516942146452342512541169474651250218218896749657629075209815071454368104184112140131439366442635902268977681164199324554904396666053557100019573800878569504298828589060482310537616536371036169260286787977454862245216748341959939126426487234874035449241950023104972977858020190037760405135564327424237754933532171670258243679103959993713927422789330060481045657545353711011674548649790061119608356041705545517518759642706814526211457562904332485734670258643791602739635290144011966093912875098678210180174481346880457390198960674643250457806594133504382984491733585486697056177434040263617805112273228577161492852844680217686828680407656503771944690921740391657909599051382193009843268307488897262781640841894320921505766250218146019367291001505684921048520287601411316142522925323213965889060278185531698493104814395755909716825260015958060117129461038050723111692319205486964874945659380698217337249225640613135411091272328345013368619924977769517159683453120818216351275786465009421039102023869981771584436019234840109782477919123143345559375582457636270033726012790959554222788553022937859439774950819814620906983333167020315091696369714338908558844965214312267927566979490228818733524173983943595976035011393977816518182580738149455677287482403302721048444374311134781851192472511040880037738544050332323892014477561089008687764614122049544326518535039101960315679285732155310400931434626903074532646935483135360642685875490451645844827104506149258613624108615268764129984855415876055915658293677259939438876173088331460547807928671602473479874543271853786294773014290665187891980449799056071272829252450869749611556310234418136707761308501150208032726683346386537646527897190545016302187642511283841600959172424973603259383582400350356363008313360353779336710113086546622822510424393895601149850789276479636664379964556486961241833768060493152183448612535762941942598966459293866601108909450676252922128729105262437576818085266535596010478761195237322509681965238604359069883238960269452892556121931083146723784910846412901911545980222641314989301249295334968771240108112378155992919696324010619695644035918391988238276567837709142382575942939593330085187550825302102280469477629574532709008634701544870776205934022031523004082828551129534014893738912518663396303678425253920990706939622840899179747969377372973052412191660532602018191380972190548726708148667090491304099172689288569893941909553680992989189016820011632506321882307727073874916828820176235644854140698187168419824673963661937351436374708904281916319252268374076704472057404824012573418677935940504308768941339729058435875551972743422504949218239659722401378995884054290788604653363341179908023357232221388999375420781773583506652494587111135951873757845760537015823670571742581194375930030320457566057742502939737665433785100487851723156735277659923862172450663218456049629051881162334108198224275487421333592893847808684127892768813339433902106464862475455224498804208805717195443449736428584814489226690188201256045765153748812601592954033363694291488547102932556601091979353839496925608507898657225110624775979849739587284178714842238413812417797440793827366656853256339274740218150157645693632600794271633628263262029006210518336544497491604717676377789796343200198847128134837415338057474282106241309377738661739301304415616003688438902791782588896354403925595324050551857144933574950254209222232322779454591741864307248226411746532309445684140891352911352060150496128797449044536240399907705221488627284974416265316734362071791048035986671494465376761486611867802151740083118336188416627245264155741119856637430593983294615118256889935321427656677379820392091494230625180458995093871257173922837452862359638739855460782414221483996176590862617596727069437973076904136765579351255968124600610069329693801673048945059609632866939676005500823686321309754919499441746050019218348167535770033539275809555064118261585656436818278813071489562702303605690749074516730436639697632467480347961739889482150484543069388602984212278042227147584044378556699573875938490167211760333046709744282076318668585667677593078578432181161454120587193018691681904963991347253479339521800953716562061644129679861187969986015200251576724470271949503397396139904267403691653376294535093400461848098362156111538897737927606230960879050727314988678423999544712915695458401975920034085589392162350005919765411825723872817904750294643743024421254414389611623210766130103348767663958954337748491272427252603744169507717388050045708305153028165421793790112380344451808691198730257392881609467811861709657273184422942707935710461631849892062816612665170092691063628146601748179819536878109046059799858286195536581526842498434737844920780052659653126945133460195403759519830519124620019960522656109905888773922268737099753394906161224907696334982069075624139455175732613079726972254410412639915669279737681513163403412937804980549939747256352071191002287492533107672993078753464955666905394505532368301300367699882084654215995174087583386554369937296061163329496642738902245635839133017610585312194461248263801031196101630439154813765114742628739620369344400419036057476479959675872833914312001722550214267002107042280409980939163387950472029282600791509416319555529719915606412436263130445652661645215184031198902993428154902349011792905480095241497105107286993095833116625737131824742431946566280886852911366542260046383558058718600899583196428560265507789039992248377321811910450601418424778426990951107847223519182149139613961003430079474885271465525474246870918341876061075085288082721655873340003972858979727901619572054906183889795916004949233173187447316792902270491838895533862024234875703644896318597985803953373995032724124782566187867832131604808855777529524556814070574446310065137878334482996230707989860326839450825405968770882957708283448629569680893092142788663624358542881685029249091042389193457183565368531337755918654441194357351944097218270905852798150754962723516638680045049629955713139959322138170488652456718698205493717032485022158227548511139285897047133463925381617879960108162082394034141355193781061867051817843756628506959318431797182832323505754147385752991380999986806901532104821105210859098975324561290644128516757742303800235865441066189799045500092164088887628693185857672262127287684103170311983639756457840496191506723564573571044768749309727124321959101514530317708233026054333054379187194494281029829211367846023942769351796214732709382254425844189687006604727306212190613630453592325468298119186236163633711067406742780423549531532387545078934021993247480621372159996611441933687018279211706491811134483560050129608816785351778377395686697580699984446654872587409072041284488715933849021028594883008866959192799957023526097150128684159785772345581088279832663518740378641194134571421147282477524762530669789555596539057595279736155436037718586305609936232665671666153463427650194289590518028725925837112577993685900041615324102915037537573621465166833840913565800167124896453753557173487547106792464790433209333402661055886658050252310743580690625761812322542859612864520928316176953933636840200923739555610324637118507296193435441914480590760599964578987969835691029482111993332126808019748399303163449495254757890780177315716354269897276557720206827239098133598884213905913044761564401971369995506998864142018562226744002057196029371655480857976065674240810662541061622180838357268450262038151283292420895953235297841904086639014175831004076974150473904568713650436076559499684434567805281380731051837645929346706366852798406016307791784422511167106292734893322094685268352632043204871045202255277934101225880298560342282939657549298235965127317770367018365679837563527608097787254560345420340069795798557984511274945172921804480299562369731619116572091725483308373296509032340663983544720649288944474705479668824357835751118677922078490150711091079463178952608920847654921053603022478319967706289729534622310705280407195894086277515628284526633893285917507771809603592714631125348578216942757338426466569796742151502874820230201323103277910141344052413249482041231017289970298607426397264361402069709849430711123868145869943897281697767389501031561666245007775941594831759620121527075869930401294372172054357791621467858108926679122569060835037075435535472883752907192075148854876725084339831857078152797077541773614699252434981932198559020447831976888854659973211503148254150419922483203012754351613729997174684913169822439704238193194758407915990683745100524311485286427800167620823230960712060064338560408546769455768540304943939096743312413818557076609856051366350584957547105593312715683191655626400764826870091804165157877267838692199374136435834568040770934089762355210860291590703650486698862729939959064343053282727256264359888165344319935005531479065161789890717459907240657444877319200583584295618487095849934022313183157704892154659160224330571095958130811724101634752587466080136131325322937697352198457731529600500540165269199566647655792055465229413934435334652103967850637642099443109016297863473715376980740465600833751884843683787189944199683589746254768069381997493883125712955878770736103998211485461597847833617653220931681557803465207917066186420148718037194922273710844370566786673737606311299175152336722588791215328620964592029104821022220823105396795971446797632003376265039134071970782524838314618933158400503108602969683259735690300660212965912460366304147782040021064136230526973241762854483630547491082336398308544040211283274943694873991534601634544038473226856053517641414216589617320835866923433776316579725401470734750483331242454266864733712137708340121739615153665290017183725732104495176687105399951932084400911071883351904767389068736809921896808592247531457657694928877628718601820335516117587492239272420394948328510849331803114181298215821675394500193415495467599105922196691726093504890804279627190971470803565201139761897309749944480180015796796209930281017330920142323002720330315008383053938670822067904146660329725333610021215411562393104508245227044711729797863972930098859622147732545919225620571513256745483101714391457123334718879791147358729553792778480676693657640772296396252524391806721204226129780541297713333436915209251201918588297538066037049403264506927413214637908699432322580674888575107762016419323301546062920803191378822430210586161620902775740743223385599622429717328591130003091401527106150256489067793986262390361089335114940067510453251795913852112155488796568614262154894171007130288783832216121983001009373941262606776100272707673802773412838747225646772053655051578642165134059664893879282361249100945421100236921783111872456614048120522452030464094558073132143138676675718680384098619384193186131825778941541614444104286839524625500883013449743142341879800963121994830011644880594290410209175335182833559446283761528151102161139575252138183411754197406922911308336529779797345052031799707719016482193763947958022357888812007692889019475553050139769753417559536415317242136999085110791161664136816272552978755744564380173723464614542962790552729478910638741905389961318066923070236436621385847950616651417390466189492835704319515258463319699720809905207935321113460434686160014224239090056108282818920711412581549461438621153245765472411534609795328620880899199937106183314734789077459018063949864425162800553075072544393103581241096429032322635869930723538671223669953719404541688437436867412309668723729296999537603498957991602726398734508920389784752577520992824042850698679271203797449081861177918900193676615630342264118732976426680216393534360178257847731897793789937250671719492912460049916628794309842833227362057264522260092135194241522639180145061765503522947679307055016738055235819434263081235827434670216956856074678529741425742753325029845462858146846775511991292516606550420841417126069530596569496527931537416377174365914898157067908828828274538244810030553246815926331335615700216905185326999558139672264229625321236928160589695619463069923748664844237460226721549920535258069926380712359342509634322426602646595917143409331830791374221267273752612355905685468134898023462299342823620366068745420152287916367983226957299301023888443511638747886487127007071031645571453390174148060808395732442433332308426189976659586165973915826519757181860701730029286052628936326286128778038206845687344837084232217695009480423551045864961692658056304872776949188926547375603275917305326462559098246409276886953342578221991905314450302412684584301968800909644138417543736705308506616050626679833555303349071306766379000435438041329157953146261914623033970063916792608336113368413710394960459083462530358881993036509821294433380715737931652768937295182407220254110017923663539365078825584032551347027645194430320042637181657685777447204725845840146558985455209118562241917477155064324337291830175544130229461630985667191660923794806217778711327468738373716396249757363356821083919083794019793322000214520869220572680533004976993381896947662446338678558490313318887179176636082481808714529833157105610541453995117985732241634397014647374806848231143757115239336085929602135421726807803613026541263401900372431833430159048469336454482837332479923524940240500568289590197841468336919561712499989820530994290903925450697235305718438450559417906487705626741660270615463442674550735188996138610905638466982782050188859582250564703537749178392077604176814433493880474552151549608449682629187096627345831115119767672751876224245309056496905911906825044950190699877420241603655459225720295982011767245795278543517026785019883243056153701701652374685548503154614014655715007929043823854468740482334431333755639712125125693713683736924772210444444356988875671379518722067989567403656366401042705192740076757207312576303837727225893891635932307594178328816240689023316424571273685322613465676986804757612444201759440829646392204177125298169295994553149630768282101568857107098226987502045739954379859493354432526541451559329629838334322706029775020552101634114015483378872118401894106940297127856446352031003339975055046274324231445739215347515607886889291986376216363039605939532734831422555003202756420787033753725027172254844356568128974203640116434824395088748274048747091208540519862199903115324178453728040714329983372267923046806964886507197227300572091153376186176015653256711090517135509912928113466303089883684807212640413070456819909094289173954156685157561787458571498720659678209826755236571208262488579136277672150213156919822899679576115930353682973074918371962233972233112945736153064159655843602608406853622887011189204492872793668428060524509567513910355165162987122773569711342098670848367681905488374504766288078869672568815142044980692715344509666698084850701902347976909024015613379969981125121906148685554258717411840999402713980468193998281057178054003679545341792822784128275961293562928343429400799615467625250236171805739902961110201732333779402306879853090240181279642809659821709393391564190438448557422006473852051360148325996507484813457564313205167300784499804896635490666018253236221509859081209954982852130928381176479897915298766179575214794863180500096753867568723013057407101209547409986697548642926153414228300559870669359136340443436772731713952103474405834785919152703129706542720916787600844553769593465844510010086596153880730828874025318324648211879537028185198230981164261863104906927369514660155327645189347626630461203958974436302976833466774224935988953337995788518788143227666126560013604659339533503812544613448822927253190711567434261776140515566123256302530004236525246726348686290418994202496777663230997836310346664449038498004637538982582020060067961605521584216138291086437559941264661661104185583896654360462412035170005226892032568287050376088637997126267506669427198754222717405061374817738530303719915948219679517691191502957026767449450206412739299974342424207051435652399750969561822397643234958763609022203440520759984102916960871461232061984430952375086952181917450460049321374695556504152336749588890927423463980640891356982299250129692084722122987559779083911603458512477764874144146680205359447363940028592448784277181667153464032005737020295771895477788738090992459078600283779888788073910473087987745240547885041490689017321444442200693012057936464990984791833328410576477287194278994800538739458670312432578015147547383223824711120438593989569388380910467680828115018224452876266739855031395047666916904949058474329303515832973793367311077310893719121718654412017196182045638495916020136048707584574128899013362248219185795711015100130585512165000344572688701120818266464448721910101892031716973319190858659329238000165243504526095234110305123280774440872888568320417060820515337673720259754853583671326455440598460472753047755865822651313322900634741219703310538673233251543117728299866001857736276941426084408329731034397580699464953287041130657823243591377767311722400954131227551116305001640033075024447729027565105898885698287789128931086762093701638866394946054316450206689218255793533177391911815085730052455116280500664444795457861190324726416758595350203720696382404197815077712935331666540475177884738741661017932937783262984655746441334133660025682363050646552005494779571086447453658268679452308936914337490763186282582645745473511781460670788518896414955995233528401574789716031684603281963281056481427446448236368328517881678777434768918992134053975293875505720664108678573196451732878312303981791930960156502918928790581658325257844023732766822041853683273094105846367485660652440660412348570097891091744532351065271784233539047768919303367756133220210122498056309085168805065783407410741579437039894529581515615283589266412677558991530756310941443873036586292023979594006403544935663072035763470673369410370255931052033117950958890563218689472096559399393541423781762771204154071326292387809365728752772155488182706690060808863444481821601133952490089608593814525198154838766637818671210347502596089922083012667701679209752236678751383485631241431098341246566903260355006038896393529024309300590344462048402914020969366291958809005002510879661814144622762223274924881972318634845415280379368090564099717498373609823184643373914354134025522901064021694092594793590062985875815620453879617605351692320134993597625989581937114854377122386111423743175563173209893193150200542951076982027753159938252721698230313542500413350556621311781341375818370137441674788348227713484239587522316822489447074901905605135855781749609951599994371104341113053424986852903256498824040028579378512976661786571240195818755518654538486126249478239880083654906178017796267217524914764357173527897466382734205388411648764551035746632742299724724316402429070211627217080595729714383493033706483137717284707451290238029790662791331915982030370635971252698174578413778853682086864693656401447949986091757551207081722474385061536752722028144461276556642384886407361410185957068664960188137039242536829051496864824566158585233753652039652211327543228014800641116369436722185676743211525674414201421534829968060576620214743566846730823128210150754003998401915371108900020097046768446953583144661341160784814592761843334461624877958734660999860505971929155528659117506885891254819798230813241844096730003370124998817513998006865401989647355325158999051428647253502825910463480115793313137482547288045225093645083627854904926941003549408269663655972141101892327575340460882982241595843520370720155032272797551717601493327349360319284664115090691808252780488232883691403839852340291059285946388783931483861215161501361571309496834198882983555981035534610181703736723167940461098003443208409303658096974758667936282132890778218299654263797930092183108126868670204621087163276840056127035473195459252690948723057944466698620200390371741281989581328655297357417590894549630206904544301478465921634116355011615210174037028154850099530632816219042082188285703237476162603449822603901863835529773981581091496594084039711321398770893014930396853772496089432095774061945861703489950332958462055372283633228146973306855413126756062779677267762593225655677560890307403062167311256571357371017329523980785410615135490276896035818886632340463870917019393475075254789868703473654989346558123207756758914960708220919402045116938264720838878653951819691250601019552251369545063953845179190873269580367307221759931819652141206496600761117373189312568251108872449047457437231054149550591864873308203570871711064185442866949281454875226894085493353234834015598311268977323727725584105145577788822379730994600450313596895800885869171991226935019892991691366735280206494868402942526046661053277314965127254100241972868046083572915520345778484554144244619580536553905516041355295535264082053600849658545938390042057850820655691271397251170271216541769214827405905528196893475883379853795819622333786198171881773753627541924418868131331192300965542725346738629164481398542553186659707287206404794648162295453703884164172860100262087878599775812124139638079046502876039472615684562997643019166962080340171447050093473979426459216592098662458238510214904461202329323273905445388965572023182489465141942660702375422330024274371531244835510073614040749380041437616428602884675005335291185165067773100641447377482701324724043316388460211703099737261043483187203633813324797671216968246286720563134733494154009613726113091283919094830870624988222155786509820372820435720706468040327499149180462532085706921647885527384357041398288113950104038999640430678893998991302922538037569580340057904502148755384961389992488723922739147407273495385426287109773451164780557608014705497811143577713646788519653298010455012771755311308375209340743235519923926963165941069649428307667643864515055163996978308209811238775978404677941148165774210628175812560637576519489952663878575406643787053442133223399287310555158683997020449458942556021261263333333433562778248214266371950825016420066148906715886689174644951588193627058746221248885928354160811765244261057400037239598108227555411304733030275378271866742596437318063350193428095912745164852192217268628693359176919749337985938127734658884607872614685800349846061254326027505886902777364888821186093196767352047769979459944697216826983143589832765026059203729648894362117118808305606513140095217581522237159858939058078517911024289243182263625235905992342131868041271707206175789186979223425364749703525348204823101648622690425234252774227373641476711196451535644296001648339255078624894277946375059822657885660397831618003690674380697657143770027280722011327891169885783298278991084811914738959588681627322939600316876186705138171085090333354126296194780671100586354803968363139706317174272504708883796307236363544130424603276274443621087973074435881196142044062495824444386731774199456040283826794950537103276623433755546055351058817862548256832900835492679603533312922981170281347027630085502966508553661182561339662964720575363753257383549819318798544019827189749905253850268857118735602112737921064488880928220520616283276267649073501565060903648145120689674665776217300528383484597768327684640377778175622620153966125390962954555839043311649325669048751883396134385894165501136519268973502759869486131003349357982360404385684250248557546005669343619979758951235868107691104657675959682806341880694675187231896034113474875890083227950219104064092213188434391430492817976452280579470536598173189351841753538657585288982965595296594769733158620096413875589466594188951080854870188517730120648338335129204455833443692019031718401247070908844599156962876504084279948016518128521072155370946961474195512577170314314354662708567705918314867514811616125572918995524004441560530426372052568794891242853283405952983873620959562270273957022489325725361561186945751043728757037144169727616208989282380936998344603172887668766155042599498269703454207702914314698534521314516974013908570287480744062410034730731012171937282209318068073559028252307576195853964354460666776623049547772113555811906186089155451942907421693393552744468427820451934840624611751217911647641832605296505633579527546749909239934446158146999710203202992883697999939726830076030725934460897896232504293096327612539701465930957378486652369286329534006984354673825647345937472480776501240883631417028546447759142347512002931451775503433817402680208188069107264886565926261763796058606259115197189844087084359164237263501955561163890642910526323677567551057498951307568027672979576893294896403377167048809825362254458442469179908945739035637106089081219462090732687687801807807038886267635922908486205040167975054315234704143916282530305562835526663771768948483738337003891906617561822001926485957173710940317060226845377871430171956824064631463751614638623347556581584157806062096968957852349055221730984786339764263039544779404176815006366162526726813263854467695071732806729260408250945796274564177810816931066099463594752757387045659419126500698093139459185293129697180579626030629908810789649036313358804351897275906130521777202825448190793224720582622085624309382882473924479972557973079922800548273141719298643340674758264685303166638091256570216903329659617689970539594712593920150102170340538384235410411054814320066567139770319631372890674861293153428846101966037267522991812614789035343585060542926190163760423892103156721106276152999880812597803731990477863581509224371506950994654772818101957472561139179146864523837748493939678641988720124222438096926105023754802120759280343066119362249826367016040764031443307816660894335219590314315889325770644762443784600302275925992532333451815103820575462039386269417637176021927732030302483167697739560660804868576171855185937719447881865363419281499295990269851588036968601423704683159908358129717503005978188187492899888227473341456403726454446612684238655089307678661679169674194553987762918398880367108193326119193078328239163670977737729929972138651083446740596627108625359189403341124696069108756650706975949532314078191718746392076227427455676386083727627099119779128964134868034969093279780973778817141230048549911311749586985671028544675337675059134963065171792744411008255356804177294318970288111805586867648657112808840207886898363411753652401857341217584288220945874810484217553907097367225380455617885361089006836696843209003321572988103144005445153437922862333988867828871671957162612447234120121234065197434049790256443846940990754392635022580893862981774525112083062399902861100001524076752321279671332503759533173562225863580699628207149954735834439784849186463363581494172057610777784230563329269731282247503867254144480030655472249530323873360057739785149637250195891684548247287426620968832897126376798092819180567077660940758434564701734932007381971750225828851291349773163702999268845124225124891027450620941769836655098507315669987418570613642687641254652802062119210386217497486831496389555758396206610831625725910169280421879724375879075725349745687679040907959899800252931991267209142258866685436499940797620398500657283769430180158208657471585403460304835055056173079033506970250947393311226862969395582909006819822184904203867681119196071270237057304703000387929121465705712774894929175696662216814542423092639639065377269282636732229553906168378854930845061665242527797948405767869141222760965158399706053972487298651585778876904388460173951374626225999532174153847889353874407526197572837806769277510743233032665140849077676948688576032146493300356914166390900625442371600463436234935381448161394054859300092238595372692891525834239923612588152921925198793050622073019602357462173626914376681782326901185260608726030845774709081078125458638727213008893036045318555844330655659403368995490242373171287739514060596156167895480594857172176565096737030678574911248084737976597502051043371866810416823250856220297867260893700122282371695570736646325522257294605507507938082003326021176118511310864416112014111510924042250830120185526098927702634490101311625679702671116648226760125167961088126497753288967395667785142865155986607780424984268229202753221578950797188172573201784654499935208243512292017474119230724750918383614267618810593624690221133077202419530044538071393049189879201580487240699099009047441991013534307043782057946158992459328499512125293390391233278130416011584114760505498763752421413417181104285888396730308869360152733349875971490230723099666769050989874576655987826912608146861408098940729124711329744395247809045236905565868100993881560592595162653950600805456814744300447507309350457759363033122273469625091749622624002317253437694341341370892626254353933957934921040036152008467274314628636645727560717484816920684499312190759412664286997220004334990911000475590578122347591166320880601238036990027062400194486349634105481766917081428899567118039873549960566801680774200550552083939752336433910091183726131569457560484348978881632343790662358415053241892956027502388542282885448058665770144106283051113182721732223118161263254019606975912780448586269151756551621924997652867342795233278940253211782111338710659406878993979057497304192138796394481621114560493453049573622836557791129707583179584594461739313019618011433554259561606954122703710171115852766973522690509461472004725109225725404083381632689956145928108659311667784071695279259436865302325304265839714799823243503710095656129808425052866364790712515752642879202623254793715903028304877796475283702440324789557740731239223829144774650062232831158903414684359723770362723494210755834632907198331007053218178122295919784060583358969544231776134478313971592926235730543991266701628841846705047976721832576974904769875183854498296793176494926090650272401199095979282548121727029117970793297013509627563027545983544281666526613917322855249128655383109854770380311212838630493260537886982389886889531204047459478364568011590749179356643407176535226998476159629650763150326709658740305868451466316589014549363266873030780534539840773630194505560530564672549749739266350589183318840793140464951658814459385621671654489789708729255375166212950182655117367967493416768288033704919680929195571510892392724486187552593829546596864136341809926780854713055065822160542828010159558797682798589800723971495230545252819339221790093441134102810176450448552267919931174158171408976199891160480581773140631013539000874203930280665531842439335334336551663328804142114283814427395057832271686567772243156381558794582151143403362996423635708069539318648665967126838110838909120232759669527870624722551913354862767490071887393856352033383930086745502390334309914045526307494968222507486557829759527916582466735843891580548606105509750048975309501792616348743682413352652875860657234667444016620025657884288655841823711586938889417823136179226207335341521910394556193479666798880381997696423623472051924715815749648468343635517968036889638119624353815931222170080347351519278117993532615185573913348407691027446615196693265594650642049447135239135182004334268457738830345827194455409064639612236200704762692101870304557819750569541498703659871946459973780165239794628702233990173252363698503691775023258171226800310325260404101334664489578608745253245927031403136889997465880886252884735314415329091396393190441248656972727467196076832436451013476922748785786513781767854520726521986087770598591729966879210701958775205370837878574984910001659914924235028966093421038254951761470381970652893046659774276573594588944823205132451548360143838098260074827410913032785148125093192797741871957168164417403401000910385739114636075369206464478227273888911399921706154900205881112846094179675302338986855792490271501529947418023134237700788048508868502061528118589022946767350474724295159491096590286587411616914444445304149899480419447727203051929870439014475968535601789950741704418426372543815370562271144531240312075546726096897982725075649998354999944774827931263767238561649674647077473316344550645962745010064143568607109277003939631898641818353676647924031459444063296524871782987940038897976686042892221036996958071643700012763359591277586586977351040156149400224204031041238180551518340962176635723647882460493605129934268485711396591432762695793420596548702675525260749431867465930203590698696252999289508992163361040178510907341883923828783757984459419134977110271529046254924558040221916983360491050132024721502654904720951656823544994371953472805439127588348471846851683995578837307818817939659874896455007265026954486000693471328649916038305480028139812989792270874637529044655136508754214695518096989174924397143811120432923413852878661185449777254602194315517401691207001592270800733709705073583698362657560569981454093601277175823134677805589102015198182160140505619123040833344879745991915651088231440741057936582780335437516139195227643271285423830301272291394749313284621262716301813209094040364271587911451074105402890088772994469188050655805317082586616423309786842629655050697712547561764494033676429457217228337278460849404131380081005187640677084028298421352931103357516660451200565401708678750756271414206351467056725217004744236283382312692050490811594364852787717538403373246667406779624252179697371997939735043135270754410244553686665464549945676434673262163725069707375789771266981577091441425689280716801239169177533995252876685316071919942173868314465662046618869605025403420610999183765896138680209704796956171214311723841880299102588516753993180468588306562654449427322590651035407821883618376847664896260106138496795793400990900020953243016988648095806058961090477470827061665683435351098818609308894552656933646491893102767087819837451929669226155011581868299418027991608081742325736313409956248593768263246457787867777002864880433518705312105946608171288563969695857303524216175830255636012175027773141429442186637367566959690552216761991119632308893288802332670054001050216640677570074867189430680872792697159142024603986522279106654138584725739341861598711192020570291321036575114506824947995713570576767885376594586471885437639902880159391711993958167118241211275228953892820830273645691266153727196332333809074087761846620575353982244105859524597432279758185066104712509280151379636541279563820461189584049298483282886950280652950713478785320621875934041805936362994318880251718844179044496262051740105338207431220281507356864927617374727413279718409927558426711582510914988648540822104026744041918255204008426265985050057456633489902801089616558442044055203451316861295238886353366703829622960000933282175158142915749234740823148436433846107125863876774703336204378520739108519373296864240179831387464914162004195913187711560363107887647211879581020566134476037853269191726544668253983827143171996349932787242343179655452589298774516823315923102383077444291304968216640049171209050271590413782442866245641723253292103555881613204223711635783366837257627810161142554769614824362861406503108193669842127207668222789688401335327067066389205922300254257498350601359641863568067471807715490384148233785829525105979555056517726843015961767672590446557720525965205606940075061727949825570158276536583882382928174772415901879894825455122624490360949972856786070940273327202684798570549589939102179007557274723794553887767693623931598219100961675847389301068547029562993599926520840259487487292247018526469051233109040442356068694148385465782293321089739900042948132775527308639555280831209627463630827730551541971493757299296273048475108654899434354427160428969353205471820670137131683253753305529970227709333226901195734154016508774161077303009093302454475356913376573312040216800106578845358253410239600371735813879607955195864774500490305768665831355634507187884250114929915685239463390755628764471320179999170475582716013259346633358735320105330727532168466844070183732097783689676858669998562396084923516795898490515962547313933296289738483299352460199110085930284179639905839118451657574856697022729418518934183659694953268864431897089139009536997792986678792578914897896406994614632569484140255856484288182054177561131154680389107083982657698447816990833335361419471138439889546130805574520821675708690335327204794721246487018378962681947415844231729361268414302993259821500421280264095255083496895328133190079099971250622296708475033978610175505115223509795266399844991891651845231496135995295616651332076850121134602489211582162172696925613354492843382051401485227579055299639986042267065063811352483293912560970769450397202758008032751406585685747246171105155285813193442446924278078235347155883682294566158963254486543268716990209128243357866665572413762166774421530177268591545431211357609678924380795790104072361497898096587915014861782964281527081423608765071788993594180093275781825612755393554591006583167789401538372078897485353917821150652243111017680541241633953648293056689386715495481277856114630192022866500950010677221066321790432492084715943558158885138148454089454749598514735218380164153159122121129454092830925357806331886098454147347696701860604062157798683009782515420124763821598837270050748656553804410488793777656834438133679001847130538209344965819856961986520922174880963895592260940065939052551412283924413534612083733629870225576268422342076957426645102730882795641523155427789205310689483948147830311378056965138941570964239846011463446006357246424796633165009057614366020132753657482743250547051074246028974417062153470026307584051658863452329291906793774830096981884356768455583434192059997673924568361673656704273280338335136386092985565474810475335257963917749304522492459328905933217985153034424544603282676929491156242416836025951025176179644109233204427253684305835107814669203095193160419511079733477572709386384460474359253629146170477895372048000789182175327360207014000125075349620551408092238879975495818412213532030233170127410984745277585432799186404489520334156094743894796888187265383176098511590417544922770659665874346869913927311258322773534548409238012628594508747672144871806776219476226868294575592126793810315405681574938151321631835988420444969337350566059707017016031456958311895161960991874704061197425265386610282871293802286257055635184652764250129977031777762184055015425727160618181405054797669283115019833502247132912982192598923342470974623967312662002053384875407724174131342369796541688104814096858560518055178262973517233762639674597613272152426784457644148076736320515036315590736388275374991930646068163663414823134008003179750475120467762829979909067416842590334165246440056781883155047313681286290489293826581516991553797548831424862788082574244865509030505329172353135699994447060125644959751322623803812438950698114210549099023571289367755700888391519970685163354653425351910230115047013835479878980365449561934079310447407973637057354726795718238254500385359823749564864024205213169905769266690713561571388503940283227132231049652901541219495323717222501392315687757475761950762416006045864060783742649019101673815133065537708504910505326272550094986937283480404201240210164123572507572305754918318120004719801906387401735754653516390015655890723431390591713596904189790858614491573696206275768991545524273810095760879051932330604270456913704128184229466786393638699020206600359225803551850514385834173867257266113483382650854762347113558682240292423739694975536184758341639398854011092663595626382612900988491030850416823978820087475801276503833182549110670614197090970190121793253300644393299489310701495846282212742177380531081677650184652870259817699420037711226087378874267983732307874504611908084462957119158919449442539749846077618975594160051214070748915217661386002457757718390407953915911274089948188757046322078217128144831849190002001274584430385273636686995008648221755152408671122519352797336896558548618129508137353439266910355657494109911625273235088039560924260150868578173439354416691648659177091346024999714802557316240317878771406046062206819528761476740562405498602080584111219586657813015896924515410459166061159381932703953105022153952392030351986590793459361027164036310896972597999505958929140289008287221827152449648015382319074372308384239442531005509155094842916675637625414215596027274638260798219634591670466899156762755398460746776774211466058580248997789014027175412096780007498308513227218473152148742000856451279743776904770070219988640344181363140855735939700171564206834913325741344723577908671817378430124572265304237142483067246540640310378155148759715321542491812120527872430461538630046789224267385516647013229681521597605953785185308386690350166043378418161639508054745789688209159084204829175510390417839503461019162620323786056060233632176380434035352280800388272115337250692734879167059645831347313435138576799385516716219126399059221070529848285470663323627222896731915555077553464026136828061590115071207544982682607596749858994752631814317008387413562252316061415945564035576791698617494090951974940083399914007639837691354199802724848780138411781374015840619538022596391484012001636977042583510114649157714210225497867444958150242023667599579612344040217885281924198514026953633373846960029075439683820941774200426274655258534300357002191470875526917942885539352536002664041253833566259466625124505278994615039253849981178745793237666897178826133533389640926607355932103782587028598827100264028893910975719180414029764631713143292778982312276865995015792540969923598865881940308160711518191098869352398235024197442613921892319166898595655525479561240858267508685212638698511260061709538049929243540274681062108338576415365360673277648423614684999825120314946993079763472202692866053154031167925920612054824373139677012169177005232116057650021842812590300785710146069932246064563709747061521603722619636853871202234960243825612953897499420390905590332955465045190621875917742385219157151311841330152745440707401880379865647620994399040689978599341195597903616878940041508513377272835199599594816156847468752384013819821290523979674113620319870575978094443389936098350166298530451312519537669408866969964886202390554274984565343556153989504554045275253669978406393509642239853568702752731934033181476299481353558091593661755402515398367198935410380932077679214450035749764444537708074691948363753842056665448306652991818079098733289621914698708326035024436005518760483366236235789105532719286532230958839758456930578878850891824728110224152941722777691723640719913076670783343788358219868132924556970721165568249339769733375188197421822868702218614325189128174079947350536374891078213730857560642147064961586046720187501984195382735085462037983716499247845264043495795999678680059045320136613347593174362142203129929603599256944737109669593283231351156294899453017393010807315330567868786669356163581848614500599456617192058754931440519902937664547778384712743298325258596668065542982049825200155385784416310305476866338905956478116715895951282622512363105959058708135103085641481862462503113268847095161782777354506689572310132600480784025844255044411699992839395771461811577435551518200942510473223470544759934391732724777693448949124418020504355062897677062136982239695810038331033748818968542213735760011680203040432437478255282435803969187651944125623856504461308919968224031350342436037438863371972536814382013120006867059104237526776376092852218172109388551604275938856770160625389090277535311693492088953383686473459948850826313669145220925350617548888245009349058210835409233588712231012840957366980379518174144821831885201093868139807536880689208889807383752369938247228096738077956907490539270486339880703864595132551922223796010145332501334762515692052896761032382111212187107401187932200495017135506122751151725695640750146349400189010614647392562429696173413808841785293945493607283112015867351318129740637329443992598467600125406222071196060018316000727212221314837096116699911758807245190307768567365406971632029781486687396133693662670139991198479655577202397081763345934964535463878453878470312344254733232779474260198989828640163734446955042318876192197295670491414649175986636604990494066878050497797322071716402341441208947108412166249019715819094660376772706141189621387612834589827055179349722880707616081760391797412223671564704298709774271638190709175505832400923760018068131234607905603673634693810431360812408055826142112560325590954172434911555759344677877319339086115395780108946434631455507274902155162820200441790151426053977557975609771418666317251403242172380979525092442522322655102644351842954922540891390157574178130995572836794329323225116548629621727461220049194487246423552512132680805703654565676602558346265436732941219728366893703840605985771658319272059974216394445304998511536009938008438202362598138108736558312133136228520075229776590204440128878540808747004832027925507509924076002095734502299467648865090171556249747698580401978855320882077236267870233036300175718197426667989901037426997073528808177347089841704640908482147715847316612086537447805441562576700819088857085468307535681355992435166940249180987502835383480837781828053623724623205478465336000741279293981373500344618906220308318341714720322698407565747747385869496746746986523550734531100819412809588744150472145267681212942656508030436856721948624161452207759123137324463544650738501661860417769381349372194778646134699801601261461013795613225832225218851702653306551350297561876678324415318774849370772606285310375771503314104735375171300448304613531338685665933108889947041933327771351969374805454309404149958193329526664600913391589664083433433194705311256112908818378591525425606418993147556030988779335630527247882404339072267690958432234259895030169924178259303104131400345141386683049529420576445190280751159987398702811113665474342589813153352584161081477325076891315422984802389475112874982023998580612068810303511513481864781355242107147966079144212136476468672461412421341001822852551135158224702097382595356303819002660508112149502770572986047367079740389984363820417301041714931909823952883673731226851092367065254175535850983910098184370175953410402999673884356408599287452974427649826774488474123765581941286109038241899858213982261986762305553399342635256865424527599415690018677505487896173519051572077496563223665518280876028742032008945967004602663388572558309759618867598568516977014049479852350720891426749070433349785816927069946570177295816739447757373037950364725780549029588050639977650314578985335540374918705893590173527054577369849536811576020356003996316774017156516036280158700884359528077353676221299771392904848830354751090041702691757938787841953675203147073726588879334714047281649228205631869510143050826693827808871872437845465353634076267545958257183010260790901952664091035206546995723004185740686841499317039203140642266101745010290131704572820429091689959639987387306336863393486193036458017608573451515172016700785535101480111512936765644134088183926544465913934033516298063472305667955550546039495532311162601122397836877763828600507928681140319209014089340844107344036709044745186992875741352817115909764475647503190655143309768951154134792847235858156414799649160850758275960335700850368177338895710198801455794669715708605981917402792765623140723086017093723289654885101464370773813799039541919654016007719522355009243732589983164827881224073693376007123949478386495542865929789806043537575546709996025158908097229213259298096546029581235436084922966221442801019333551424581177065082641977828266931450107297972655968085146885777955109422557489014120446284173726444606603238910604676437719434846893857624928969070674385537129115340066676637052050543988123082424382346408268764092015165854843032761197308059831923888180569777939956208280729285583606440688091151443520514110056321052351927925967440703503880491105548742913410924579582596751554062899161242950123612851354531917824731406005780579448365239951536431429129581855665771053008903452237617465943701884790332099263292093507439810328033753726351039824314217087123360208507068206141007473916057014630126393474463016472843212071069402011385119046674190314775464554160554899834787581299763138013085523549138303680387052421729895971226779604814769168276184165523393602219600797831838268755059164513874942207006378389990894561938537533207315480633195319236991257579267608849467063961522053430921697131013697265444058078476783852160947985359617071357067494519331448091624433073121967036027409036533452519259327304458413461699501675237696781514144253083432053463655995188795430092645702509977329041940453933109068835218128235497352808276672750657786619540234018988836971949987084456796979306677196117120876431797207755965545257240909596702177587097272000588751257644939499784529604750668371170726181196574637084145393015388320696444416607231678073114593677955664699011665103792934160043462698314491894209731034027595803501141504224649871237788603054894941421347780080370709290929583196489750277357073926299153796756610373557250196355324267773373514098302751740533454867311020457188904688190930144046203712143215744085593670917460305822646060744266337187374925393232291541874972256984363296772594143482856750509579231723391107752587662830049699623565402211225019228689339161330432733884197724581321934127482375009242027661708956193751332974726518871754385940338732965355091831575783998581187631406058398710047422498979415187117786799050242564316084709872269803377163092488909815059561905850633532663664224552215476082019199252990865576607662710797849646832328099553119988984117388425368056127419470255436008195073360093721620451045633271355931121858538255077994936421314940955715374699392605375266181665351175178294093358998835406792133307479083601622616730185391344640673186764455898357759583888918458460034832837966610536988680593137552598583014350601172280407575050175014901580221119103462391554944957878518887609288565201239245135531288777555016376971853187526513656821506434077300099111532666581765212040918688041911671160961043430459243878425701766224628367184940280257448701623850178271166233501059457504869357393561393232104210008635699348536733027641693873227955201914457852911703134740367265673013032742408372373179433672160951243220863225284293301177033854784792730923177275757697060601780024313688491596830632950327614187839036462478576596158243257146971308157365878061641508922096234569849858019546861994403892793169717283525642859227130153418447041180047905463772062018031568292501176461418535146615087606050688256260200716088402738211877735524986814021379370474335685653815513379286929583070919710955109011703270757105472172138344906123308857680548579198749685077560364338725233836177529524181392008710914191388045574172207448334654802621886763145053423715258930020741176034480261331175461253545474638878645483374002390921571547243731359224359986060595673350166347176858925211206309362481179520439125514840418534979278277625332929873400436477761416692762038206371255539241968318905529688427453200761515378561977527929407789760211592982087067259071630509468442875008393016204795825618832575958524738354569655755154588915337266929351789684493398805197991262021982965457153083379604454229688545524269268582353834801807471030321844240253515663999945339127372690643995142504638360155827289256304322704249092109539506457419448366530813026048979059910569361248090014703224200890713736452167121029495974604391201565284043393162669105765596194774999774454970896213833351165564508740356373013775512093505043058715257372085294797410589723433224003994907104646866623103123631157659654103038254373867037331513987936515298179978506953689530785562100508195858389633711333739710495132278576330498366256248566200299977470562232440862065930951533907234710493825482712961106728598917579138142965451684033993853844759573378593966894856685474454038743081882370789626647871044266908476959514248954051433392939181437121226441244031885962562349948135942701849777444564534320781885671617523771354710731333930098620217791508493628780282462124849463915639743449671600207376204327298603739166145882189741029807628380606621963321216091082651015592491762541886289249639894352132364841998519151557713234628215183003675070189424919232377104689170668400462279199951731313836261647707265006818266014627826250588922753946537514730888493275438075727988007424900490947855014042192163615285160153886784323552901242620415917666789397948827033230186851684837860304621349221578583524798580132102363479473821114174521808769631752384750501862776193687197460652937756015905052324941560996156360077258674453634139431486900793623549877850854633214535248919296907667153803482892998752103155020490916789648927685726601842879816056639556249807967167851152139357807814188047972879077587946173987339969518051723480839065164314956292137808760606563454114725063692466211280727273354957270053776261261642425646382042182819565212497862858849193548804349691337715856329502143624081634899744439045307121460211881291770927480283599164809266660440422881109588806315616035662754687086019298185756950195217349354870975870725921286689907623117569557215393096618340715714201581534821245069830912125982228469415338551514639978624266411545931723168974049654847733772707210431695578452362850298262020095838148918937611183214980721973792882776103183068421567171289530801500686095539151050205489024775629550433889908015955617660521261232974345748879783324872505307186873116715799851271735665736816271501010363185315322057048050977679589978656951159711273725608632180708715644948331445194050299539304923279514628552314954315320621036476594095879691554989236789845367004188396095032640831251678298207233986145683951244291775804640977323850386752690794749771090097757334042437697864585098759973908552728583911840051045310674057388222495993280044383088605568904328874038492618107064505340246170355343626318339028190811902404679429563980889107387676751599694946093941823630533920020069700590519708426176426974403359196805956402838551355077105980967955360447143248674619829354928129143198643868300414667633268256831197938404224017991751683722764673335618109899262666358324259947963607959349809966572533749269830441908090459054288235590231245478468061246559847272262738928032729154613342327199935440577900801119030806222612152032144327349490989291344428592936083476553465694251039707905234718010647507147164140529115531187576284248183385862322973352503741135565399046666309417245466238067485791426831408164939858729618025865950293511123985407372967789231575107495521595406549436526098329329821982963691326042848901929821054325459066635389543477353894793451586188536488434130312917818198456859908400529358201540525704077482022343719675717477824483705144639220871102571003167405623487532812888100670205950381946039797206212675594662950158875848361311685154724315638035983486156522078111261321345331068200597087775162483538453874710900002070119325061844988248916306022478332826441463476387090001385031683733040728039842585312463286518588406461896022946594524732048392085401000039738687297621037650781978908616005180111420701620840333416387837730912871815306073276801106635842867156421739051283761866915005863966929537828710138063364877177878870730098022387262776836391679618458371606995948796449615595691434096500998223946037312193981094098132653641955491899548049127891390209797538110594644381805096704458028781080782236256288553023295834002931368476778512580205626391220378134850893296154572695297800101520625397131731626328151527292979220874758053649640584472873683861995937302176175513437820150131013757615201658501694111048104542804790274285355429331437675447372279097089338559849136955730351482060535744188308838501608274117433953702923259078791182196010055287462964737304249118014014503413348141029077090660385868410391799929595410204349541244301354985423254937513621512019946613504652482849053637948601032296343713505012690474092863235866606775767837556417250942943158327331544454109478124653331823641290666808098539371045517031766954729005089668094748585334636931940655027277987037697410659792761003853446884545847081253460712637241361631755731199398110098960812501898671739245683940405544312880957632557334652460613457231646365480574784211685453395516487216063326765904224453999839065117764477839004012462454025842219557082839076769742691975950492620749639244475253028927814471425137983772017710818860709053347984015514920766122538753400548750465844038148474566632888331872821562770265647195707660246133233937389348735344023963457919461510467151933249824005356193993846435347898730925107065196098737607960659017544576046310315880536829072417308058273370813821149051961329498964779714309958817512806276312249863537516767409940829319442662086148216028026148922724491786940631120599965699052034544846497441590471395455751390760528020592268209206662550294141078624120549164164237989959119370118870080027586383255811073126117815207870429585277531728688886523153874546469468925877348362062570489583635535135524069806831000939418524101906463133364793362896434912848555883327916741305688048964455273807411597832282214053474724677237116399495722376055763096561301514768427824943898901197006678594344279199675185004703749642594135371384835158248588744536597092147274764165117711441386700807937895321790109610646368901329661934624066981242437631962461649104791004563154630902171409815269236363168169860750657264681756898387539478994482645031409130225363466856099755539339383012040484526287899432231298773427009892839295633073136032435615019912631659181102204088315673290213760017577967837362921074446370866537088784127659663863138246405689804280434699087925315091968177472155506353308619031950958062885412793584828735286610126229401851358443088398498613444115183321597624738117444758301925101562444553335360951111516778235499668027649121183256378430226997895022239416941587407561069941000350247104323699069407966759181985537991178473193432467624247367572774957655035583254723032168465215679689893650365922732827745442572195824124952430855094395838503951328608353696746439766659530498090218404462959195899678572534314972811673566268103625518096557046224492995738368393027248697258492270106281785475393915834837217656426800119159247558813883203028386823420003338372656476789580695914595007057150675756281269258861568391837896609864146228804131770959526811596345650683472733190699298597357496715774960680199943640686170063532659496145652835626007809086919538011008642205442193372507365641668080825017114471364487862330376835079505979375892836893736613492071502078671261459250847242404021566838910934866460250745943491899598664278581079950755982697421218894090967486232673444275027114853921071238375202632755625659566114690953693149692991097555059022737923539492651459259658940060883948471919559105049510122073465191106845021166317878111966544671282177275378105813749217867228740467131867469201889947012482020186265830941677193742121404964674085549988800829310646433638244260546833032651887202942923348314670443913895054697499719897548226384600167633916138473833148955376750915413670509538824589568879256231000804986669202040480529105507265273151510558996759102431307336275814199308001387715146011377491207524422586567716945844973540842954554989183008152305525409200381494375983736793421662174683041143397935608187921631717706586891927855510294133252194642790205726207739117729793672889740874756212626564653223692694239951879018271286918463788412608304916311216981006403302850314368358702358315049694587828753464112379737064203951369672743603558849961781345885283496162120603748989003029631580608505743133796775359236557878696486097118375601927690056218963656819738730252506974227980920081167379405765745590261004978723195091865910720003844170785620003333270294959548424281608066029969765042299132798808080205766719359745060827640977672233933991453747547873501523870711241163769677359291591164069766987618182786230811089746185289925831079311837337518595597095206912640580789948031705116680575798796092305447783114622851137851578106785092253186579876170334453424692528843408970374760190922274042563418902838129861721239203412207816352055015520524163737151369487295777923296200642621868284386562429175923731053936197100603660354399221513014286382819272691684905188838751152498430276782733072510201818077836401007272003888410227572117633055194877244139713190359071206056418556828187973538711321636944539450501797122048534691614539013269334458024103499870192576333184869545697197358807432341720167638108390493738377365351989838022630824398029092528890874122723418709690142233692694122347045061662628080110798223936920688401056206620687041101338840584378014752587451786278557568081929529464727077622859346484549119536856854141832651917879099030230787723257614752646996926741473185399135045843410835988819060040721507140407966123940051702550852929053721506936770967605369904666628831083061349244019096858128154891784747221225115610338367514869735926715865574826650669137252728014829804917665107808170079929648856302504000788904844366838833430882305582204407501882432813106271301301168537151066564872443431402327721159942356602120559118215750866566760784871747283049725813122020181426967146768181277082437024706282948871524761385166613025721660092669206942780521216660450565687599707339460943378198986258752043726525063358634935527139308303614519153384890794461908949661952305471451092784192876355571936928088599405795753078347463139882347370184897715223545643224045563914320767121458250138371718682070840324691641893806912688673841426087130564215424675743713203152225864272646904287839564501800994457728216006210476274634232690228428011117708119845368600837505832896860408504115666356675179309680743412617705251504198796855579452949008679753489410415925426161115849648312315624627108408456656961491401253860988684448616676700152426528847853740566517887581429771130877051850901123713235361585487539894173026061549973752950729969028095964873351507655092506011120956068725077673169143796178186122037474159583689683236621864682928003921172332086885743843565274269892081574090587515131138340368494566728773162474519715241552662889200676991387780713750158294830861822063801950389269954452463358557078562315794445176789334063015697132895195530657408487123553517413241667669125364515841416779781919970150118881444666983166331044972895309130373066170448648784373904024782372938475561830770577674714049843546920102086030552589806902113294428516521383036792761635314055108545238777972230356759521534196845471614369020686809291310020428204665623978414302829064762677665581476361701528013781276336605230539517418625770602313648789794670855329678243201473030311297532134110369706618194381621657488324592820223050818816141495290660953267436596101071064487521518336202070933945519161861505896056518563498947093761952354738077301898827855680838493404216862480623515950181623265242510734515217047348565684808174265751159108755845785077353860052517201437716343230933543220621366074166756049889788944293706468421305977994099185733578819687443057403464439758799610459372996062830745361845519840334539627173659672897124638887257659198984766894904588137396872923596166707030905734030802901127527254816772522327792087875633237991383298495251465844058091016742688531786528955722850920711900630011465399954982026293395738488728580868538022690163195518662884839637435101509551791393579274117027346054370127339954840255293288529981104021026075425019962352025659380619368959371076988113950493617308616812468055781317513462863953915260564786584418534943777305602205274520226585197845078775776356091555490502320941353743317901449627242576050438858405483990573729844353736493979344761075427520018813779843384901622353208854016024971612125400065422656076947156411926557712183357959976224144455164580389856242263171869812072723207642527888323830375527535028663032367368144444289442921893505617099835420560728371704728260760682216497370626903556380753163701006200706733449753234356411625059508397352467155578587129997691105653215411618395818588753838619669952545280419368396472202206855338235020315060554272535618853458511095028495464226483961187506921787583749359336903070923220234854719877974126047421521584804098793652254938665902895891081653129425446651116760564792654466261044118429753774071964133368819899765623373509052094565789438657161933821717387853349661137462966597993435031668679587026350833311708133050797864397850062286271195592063558007204126759357868150150572465430744063608087225702778598124783664497283749403864633805971033202727421431723331500648256756839422913670898464221226500834471552158683479546152382365079823334569221208620260427628972357907990396929569361123185105869225752024713442364491476296954969424284600399404598519966801137904484322212582945032404031726442020443842315803048907418477575282963855889966396870639696752057898047732065127045269182344027847837618199973179417184746498190517466350258906946231461568267723707771844581804339183982781320213702485675635179899234231596665288466166907055138528033604111176149098834232359864138258847850866675753951055968126170162829323597473120151697639354393735282271768478937766737659521503360548992792511897030322870098669508418599320450931612088048347082342727919363041618919035125318073841580076922891833502516689972374437110082878241995907560916245196394394508621503637443620185635469568189779871925992074326277068835335401413780995038975843850122488684021411244500824789666734587978161457272209330171876712882371973393156447514376728235680901634778791906583162549460148991899830063917386929581857933530652538783628285943746400994643710040346232983947544522287997785173144510202734124860761422145209159356846224581727491318776097018800476348576055226216807239990183854688044428708525403761539636166372833860870441473766659616875193386804664382001187079915276646607466815619308183409926015948497745730172736598395794942195651801915515081174298066578103235517180261541551699950954327529675245665644141533635072186325027803235655792979966389523311369809635223886163170185346261239698204174394012423016796001506418838145551221419697595905691167768781090684100718176219124478849018473076103025558383163755885484323207080029856572912394021394448096228166541483849916040756680657616028075227762461873120088117352572385929523089033018280887873051235179166630478682712132081806001909728116520989617006734484652368402055279112417590607331549435823443842692742394093644720472378016350035482929914191208581066803455037458530128025557277664175641037257927848257574978868216207839907443995044975753860839190574893673873394374642146569972208301309386797437929550970970213685466889907777685549582819172905505248745828448386853388144406362619132043590678033987143476983172032911782231326471547011357179925227485209476734717363740638225808002173735151163609406110334146175648793226363283637453107049335420926871569840648981224577295863719473895199329330999401237416850779301688956091783513823287332884800046976476531311873238903107458570428967608121227212155869079480258392684539309445030891849862939265813300863348715446850775873033844823811037076563430506327962191471337189604600957912146610761436174707312684734219738041980929834785786589456305502811317250063018412693107226312752322201688235536107423701447302187630308492133416011264631116684960502105827785435890642745197170498895425520648453887662466685427154273663612676582564998621996253193704551647483874354348141531050980677064325844423362453333273855585191636931466555889619852275595402445003029592443112636851832649971948072596510596353275872283915642987698757717256118509699998068281358161301868018844641125282672761491583980838590238066520947134062302064644174752691987138635847910369377376348493509118206170311293115802463718388693665396322829266205980553748900407102208602232811580948893013556404763633813116244326511645015092269195798088561794622536517741343858853898861263996204086328715785649671830001823680294026392387262661354171002877089866235294523989968029896581673486369603837486943555000029950039355795752325308833351102497907870810367833348218220462498897481857875463104243886229360219249715135875363533804629120069772957515712359690837913728478972552744688450271204688251061129040749181152356455804606901004675020196202988885463146910949545834804830060506689279958741404720410155669976496417208519030186493932551032380666490040670310956571509912808294810376387517282306822421644463244545744944322245031554682355548555893208552595410815786202437446063264132307778426299882669692312671192613076091079136632501233754741298825973915989730739231450043026677802115610928913511183658413838948980200781437983359282816262108469470090033294935563636606791856858764440278163421364062881670033068930190556494711176247039595212606434744381115699581496371758212337819531796695981908203381810429093010731412241006098103618976516241036158156895110886742923108137176172579621130187286101184895289851737028169898608248028858690992994682089495548450197231389039698183866640934958936687166137779475841044143649293642891659661926028138849339673575804098112155967740154485333931972086345980772308580114255589624072024468372010577718935826881250035103763298458342518330103731904793296662926992886787925077847046967042033410223917830329607479180561543613834207392144498378371531194960840599011621309956590236124858749268607569169193377559491809731961837683582085223072769505402371777468544322168296493408507226154044062930966669759411661621134624627331912438533122359854597683044751616712281430762002768318002854809422322618334550793505086664114479910232210577600177229393751788223586573532534015635487768859873052821631591307983417582160491091728178828080620824354593656678060901190917030934978838352194226641570233086317350929810685146743165784081923055619168358526582927451109448462233465269601064825552969904993552762636709352904100831863715157353340920567594019583065563146359808430989786604275887887447522318387675988422995494761981116910265909696001279988089695884889544250840463641758908538519081484906112444741754302349577976312729736180097433777398683503357290366107155846707366026294160424829623090511430036027706459719579174578401618092707013594167178905738107011769328708363921359083484219356428981191317845989004182946969117523048224227505084590901175207091462727676440949470637785149248386622922229461921024097057415050853460845901598364598599601618623305262520224856505731655695332263814939771727487083669657685677276297961629737877568950194779131016347622287513265449207210583127116155348906771818914335066636314887211432882033280500891529234187990138052566541378325941298515567175040891151899742502535798463519318333013369861162828907710524602768196120201717562253679171625541285058669814289856589619266084592756466135588685667033518425658086631166155835592260306343572052297366364111533657025147670182909479340412043149411041767387835986201976786312400674053671255075200331991330022664361860546353368695540184398196234665404267653357966913140454441824302663128714864218422471205195741103868366912591822780511504371311922104618037130378755965470264258308893233595254893962832189087065856055341892311666567770381388916624492778231280576338423548597190980260509184316425536732501142263793997370697665517046501135718734524611324828563996001282908946916892243383145452087272186908577142348125011635232302802749164735496057583095719051830075441283256931170032671668528045966115477719017105785204966469441809051245337363671255211522192345441204710757675618620270814458701564009769981313045550428293221062725200379541919649501155653648292367766358943277030866755676054048882475665964009203769885939270781592524136567058054997109822139265456528057524884183901594843028736618161049471864864882653663358345064256105803714594917147690891259908858975037669675925889715898827120973561443620485463741117426298608331432142077518839774209265131899103249574282919424794228758141174115297636384537162915146650943399972598842893123872219929086143130565420601214468829057485704596501883659462693422323953946416654340792009430411375799237414322346374116420199309500626674193550883660275752786015302908168109253540534448503764859039124444841751797381713571826834229011602474816479840802477818656880784017299883199782618758706400661258405373962834242000815640028981560934771443307668453773765341622307134670719408134502851363503090008294318299722623864730305568348741113651003319649626082025638874190159421432347425700094942911674208853622260943743193157775525579803548755901153499832065490370401139684441687682442726478745349569431297620272881120566582916319890683057679785049066079180739945343519454371131889130754911618963468361790795259424125587269907416207960797801728588945402213572152363681071143395086717866217595856255566155711642717168616164928114274471106074495658054822352402179739484735175247861706893564736108049517608112864511553707429938113942088909946790815552436643121649970184848016474954497362638628970472865266427894984670214566264831560792974544417751292757113939363914006151537086641622766188295337658481858820482162117830306963360707814513775954696945015453491483129380229782810675213660420487213222430987812549011739436574778440063873629150447215029091272777081772841068492696101845041538591574789027923781205180257487508514283626985432728230469003834120929583220663658494438604827002367636729930856173233251316625683495490238842409380551413910279429001036106382706192512418527382486449202656706265251859449445558221515649899166609373450516487609214498653894647360585648345493390052501438250952301728679728352114415345099964403388945991805985956958863697456903357139764857468281365792232771663057282031891645128448636712618112272809095659217443556225498681051148858840123597944698972091380318118001659670303689268818577156164155587051839833341115289067497149735905198538098868266412855960217437557389206197885974153905050705378891866833047499203231910214660385269081225032219382909410466308534001033446212576623643952860883820259919836842486507304391738299489925059419253961048344585357883289729278668305576677049387879829547677355556292000637590184135971998286908832780515884560601571336991765854981892759770320329424005910771194754484258587113470541517783241239603431832713386602396246530090427740890308796132682568770277364820380771815645231690525698626395156812139316750686792134258801133544323766372366010683374264015398235683018786026043282118638428258630210391499919070137113556417377690855528750924227341056454919931555497974127080366361690664291502785438115480500942588320471398077372522295532383257612415397444968314838105855136524057245293137611818037226792008079603419164212449940379226733201954949666936819752160568043470561223141975264438866234510921052057278226199959173254036657788296009390328895651491753646508835829478209398108161766459029791548890444285469429707435477956165787944233695399189054350238524412233587822340634557695030537868473160438372333650767198442280030370358590801980442962457266165791699631675301862193474718467888565164595956815380739191138510825322309209522320835386164406600220140920684564364838363578735945363273541781066832179074858762645752195084300137563458410282357859520383476802757757768177843483014478994289420808145454805915135728837198457470178920872472145102266473756333603476189896071970761747318192134081966374126997854767960852010134377608370932126156074499742182065040910611123215438669206925773636518744762235146560358524363585972404103325346393916572645445351695035359509052590128487730744511412269754327701590065229714491783449025338338222710623124488683150111722630702258028615893214687111732236731539628895477284471817622206939137362198059420740694248384872531854931928552550924522560765996695368413153179954783527561104603264428326300525645890297426401001138785471421252438261187715256614584539071433768295992150173089817149651542992037171569222723069385033511832257875885774431086615457623071585410171913156577903151596626676613468780414958382573474450940363373247922598075322795347180860437937178731082626648488224326590349412245002956202511346550977387509723460529339175285937624853827859633158533126415458034451791425424757535274835604106397733384543529581620862089215679343057806059544728805009024403568698861308351398659794152025652969610437026499431152643183759539604199410239760779307447313584275752009221289566479267814879834403122799178998169473322385244257878526176256622741226883427702518226034986039026181563878916188941568625460856511445855629372701532978621898847670397332274907917032836244471735968432539632890936397990312039033128031965412974524725491831364785301317854794047403641105315162252567687258860590256628077197874702762817011066795054052716502155725042986116522266005213427760273962348561593782581540644497403024078446631613405891632282699043888929604538224040804396261516935795622343720200680205428244706811070943907673486892270749762915558661640474736953395315685703489186958835738350577743829349794982213286848704751961947406844412942228531392381837271203250983399201390205305779277904901736039833180719486067617550647141890163577143479481741445132370950892124060204886022306206015554386967839033957758511078447443658207541685465029307844415959056652959324022658794214945443468833550254916903204859263969364851358372498690571644174599402855013638294295265222755547918638754504092102817686822867045701612745278361365407656896155750106044252237160946957342191468065580695311912345199397820651328318289614172368718304164061140223698111455350984889007069076942543423740192770196210847647836049631054845125490185526236008804837795016224737756564715251868927802445874008044774329714538657751984658708608955626853944735953770724413158368183952411491707856195336670909632072422253741672550002767130498907752903848708731399578427251047452295341977456751368438091688560325371409890498759390408568345977354339102946236944433834867332713376000681678772129850198863452441516932857171994873341540574096271236461116235798948076570167985606889009610567199756982943209681483918338869796833547313348966179516268959730135242421606570640068864334088937886447628959293872990682652470301421450473091764228688847110266139431861184289222368175632001838131507495562810995199814288062904291684739401677803932648790808962833960227910201148232890350417265446632403376302158721889514970950886293018925681996273070171272648928600433535020915620229864020626888845613824540767368168960990899051874507994605761442876433495943434833443023155681381643613526197447359263746537004830794809895518861880435221859988800968365332544384833401389055457359927713084192298748272919376196438944471748843639881340444889495041378520716551948585333543896335043031477632325315015148995001219394926680198910093173542763527087108036970551132474518843290853256662469611386908470315054949811416613162134290187635368693251906811891916524698111911463788558134707914776468213838216545458778486433098308067445596554492570963046402876767791303315527591534466403878850242127004358545800812555287850559170467716185850987145000153861335477244460209863439713486172776272816099866654997010381037204643205092983714429401921785667131386325241373644146108310824707412327115602316457178736598678845775762418950846868592304497016816043135759611789172923448629990099306189032599860635651678398585936496677119208210226405878481663626260440117871438559245564041058304288961023270458570967341099858852254431904463625241895180555212121110054489069936855693324388826590856380294072421622218246507214023885980764059448950517361471019251399772798344529721050927038377884886121296653087150081685905850246689128246423357250377449581065822229682258194400843054649163682223886862162757308812761726611715893739851358272783960402568200039795035212139396464467717783304177143462366118261731337455214696004570986751876905799944289333265559261919931228817334338225440967456660381931227084444342211590985267863877739857487334966346471748224446813483114638722145144652165484902671781294086435308173921111279971425304926875246616601823027192218160285227425376616277882259337640331315213655131013321464861706677847191618674520551341004000352131661847341991268091576802496043814851464988179654221213264547188551305301053349825030599438599243370306122372860600509262894621051867262515084673256318777453722380453261436949846722510024565510131572036616442546247830155153124257706191395427726907108569343517386432319862618711717742176517007600009087167629559614702648244817376369010034593054122653913487606024733525164807856159169713460341408865858329291714400624299176520245773618599808148290639750455938064526808510980832339378146389883313371403815039098172991639053175123232680604011368908521846707946878546731154924763805022068046934026616592689644208664390650151358250064157997425390139649811715101105564067986440345969288153712319053084227788442928302464540633594627464231534734220636731257683748054632001248724100725165572856685497823617645464501845128954179861242774348683630808796816182154736814246476036058660137154391815752873997813518038930625829031727600637281875133876529188809300296590892214533832566311281322973685833853226346052861037911904886056661301814910427366202425693363406419005455159238709772140578629862445345420563928954789720685289585995116955280947265730338495791550516848055906142283581792653170472081399478720521423748509889172554205933652383365615574343292251242476131943917140511782090858831882074275603786276957102901916351393411604250865671710973427356446773578905020010841230724735490774203118419542612321971209857535868984801544310950948420445504849460784041811449610039681204225103218317762712921168860690536502077745283207054435143552491221822045306225437081050051719848016885877195762001719434958340613800147802970523315452804731501440219621824231975009634018460205630787470405355472782750730198976385074975441979429348214082049142281258970441522046882452520387357833535948795787515500050051358077945200674000509588029200509131492216404281571927922349159499322675913422810414247430604388649972213620707670737491630960756491947068283090496201781376309084338990038247937676585990468929812765304487116753880635551831707310223763851168580220078332345607108072147666755935399279425220664569165312825190292514535548522506244562309035641070597920319676924394692415969888682281008244011730316485079379314587103953500117684330272969781899434097606629117488075194531848452160732094978704857821044269767651939378880675656852505532710214542957673990866386015260005496615862724406571178309671209160151092013713977554301976855928344270190078524693534606166137036725236655858676359990171341136523139602753198529838857528091527521293184536348124871970659948925627900803448897382000551933385074576341858026114439342606620153041443677479359156920636747052649037406127768604206694633207928078649063532019966768401795905480207714958112085223363389409258518851962239879496044518255681241169501887611540885199509308919204304317085851170279860731047463682380104923491834973915980528800699827980688318582455141844818256398907515393114329591551385778197398287725232163686345933491756194818866541608781387133914238795928760201597058742196740629385362866228542855091750132336232122667908098620773566506965169158383066872427287485146860893203689727288265564872372415240787219741138825983186019279990136718615575634438623383816880336527722392640345853632119865605609079762680308446111551246305116854694649273067610672848996370454088826105246966015175171317923491230631147172191809110231195079008586574874341938479253615495606621128595494164398686789380907333256430031121257939958252511204943916178815856486691732941462831693556786606827728367922560738172175199872579049703142242417503922440957653282775587053755585577039819083441277826831320536353443941924988833370306196758296973916535507038477554965311365837976453958392497936434661354258092372124557299072484496505820733063965433395062096797234397224648313639534505817188138901871104796913215138724002778008141747930417556621456025408650094666088469529472277792443413890352402767134126382432720592085589659340318631007263014924929307595589828145929175275905820335091679635003742360623969580934490607754150415717613340237622858436058352169146271289223367937596645728831641807824996057480777771251900861080569978652190675881314281237309923219799609412923660831634118522697472631163337030678264322902169226361689843524001867457426673977649442079088472140795881348483169377967722232776207025185612862346140118273032114613900460981087059371644244830003431426590634201724447071179471029017739399920402431826192796913753720299186487118339760249130654208802867074465209160778760297985566627403083680549180068846920019375118910165321763641855376268200448305341394502507334076338641375206885845121452529967878735966518440988023303886439291083671075539451509225528452697646418615457645239371414444978058149643489922488804616250707207059746931869366503895371059557010536433548003263080747211051891818818930486140235357532672196086537244509167539817420296572215108048643612362828411219256650088731226942667113320703109163490881819472456844285422798547924042310026958116261630514770705184382744137512129737215138438160241129231754187592857302724364186839611470456492188866392823643807478993468129273993132954966371356754833549299876569517332514103975726557823616943891813857906190236532419513131425186268838471179020724525898055578233240099341163743881356451188415284986176296266165768392871082784011435612265963882303593193522391092798920373855330937222559683472453740411222330721941999485973935941636945669101963932959615546825728283112617528096684195786642351281229825695834336965943397583541799735075089890785939974606767080019276018367799873085871397570819731256462939600737724248557829789295266253943807688815048028635353713197721740165139092013816452953493598019099551862792435089163182472807463241341011694420543206287182679832378160140342510354064568896886325609599650319562896872424434031526131675898111905002222034255314115930125336319344980532846391259922883791419215225301099371993076298675768655694549459508025396389417429084098060510415216401235773681343136388055330417101454775556482901987595922209689135797242353480863505623193851830670294984716073434853566913404207671337209444939056919593019404959039634831219706479797671519659558375469260968867203515704018421966048929778778634744433853556249889022847719604202212081171018265840320735524472458116081361666555523688169327731581180825513282417976338898980795338370575122946267554285918542753788888400513376776622056697083833966667382219178444609361005812955850681693647566045228898011357302847970336599383940814609728313104195450258406587903221161970826865127060286384633102438479093144672751505376687757337219455954176043446719835567778905295874502173066814175540612346679083957026366982210366805959502127122164961984682139501102402454638827911921657016743260828793840638556039920537049462502473551735167617984016845739488277473375732616026151960248511577765783190398763851437392081109578724716236692879064258720283525073531185930088166879108192689423023752372462979362246748106664839722802327215050492009409037143142305618970745109910044670085611786964329485612568171508499800207408182682702440020133685314935155727224265056947103402078443623971519563779297532254872942725982401883242034450266902778562223491599701636917483544928261414025295375024177330968426772050134289122095418526741466760378819271735682561868814272881612399438072471782956501920218868280517775984220912178529269247386926224714978636400136881171967766981318423764826629782711820610396788978576778550259501731694234383347476103751107689036587314283307711685051635641518551746539978842431259877154726422920850553556831998794945804707768715890599544800290951892022387879853879515360745176543629545935807729685082738434862711581721472028997943130679652743641204744137837931990974072097156589943496104219969334932588246417903418467205967073879337490979930819435222216159944576370460291775990891218280314344406617743719308031806516146464170211559872306376810734871233100256045185453243134542067447551753674336562637862311471109380088610215372504185029996116658117588559201281938568800123105058612927935298412864090168895154082088628651314342893130536583639926192785020487580816454940225025761503094267439282800479568424756022977347477937436479158194633815203614588618306807382016205174176081341399762523305401321153454119603948457478046649769208631803434706892656719291733339530011808855712215045324273313458792691115667549535076201465353907343354876069539554045055139922176245719930528821825061239180928856126305868111487611042583531576166072698639535743767209168305763296579514107362239482480165359057433981173691743726723795924790950951599510103051720305660166633188659891496500377825105390908539513748737919486469533289066090180500745389845475157067608204891303530447792395074849352758938869346889787047036378207249440750778565138390303888461358562607351278170874885716008316908939572774263509538690438600335622515796911633488391794458316441913458248148968925433374444734084186955106866347645364694239802720478809696361571933878165379217113959100129733336873063694008132766910890577816456805475169384089975006926398392637985448682214887644562190562344855259006627073196441593937423902311727424904074147810431177080129017572463186630722333986357875341351352450031817962001874243370326691809433125895307380376378647024794638176652323884254182897611692426342029416723282027140814657964819216423851452958886337848194942822236064292076502087047519756210041093404106045928480383733781859258257609527376355965313459209534385151926265937823884690819087567195150449200253098697444299529369659760644096013058185112574394217354053735697468624984361131943247905755760269420481708267817423038832524481410786207068680063048055626161577680972842254129355021196036572123476439157609786481266424834820828514647749248689104414656261939959637685791968444470941766425155675461543303572240142949232534523776095474904183207387798634306093358805063159053544130326385169286638865437491357428023119918700314625981350957466159778169553766456965486922657585339651560057729127614537343378294283925155044436495978309795893265308965753160361667009431873159805012892973136949079417983847124285494247298332555874358815429163327418060498826064193457381601079656718300829476349744352348911703192816614709279224659355126591434981930912759072726617197971386268362849020987864705585411801868957415578460321628922503356737311727733480939017586498980812984861777998574358324016540211916671759104762063501557942307216292377378621712465257706950653525597075620659595312462122709529309594388459639490240760082654076288661774452545795885286326200929063589727380712534353971575309843195122250479430982388097112469791439253150520938036854945384686845875394824037598766622004860188151506206397377942629147838535496549687445178644646170500497288947524418197970285415322462880797529948666664279525758492694130934277113684471594682985225791839922448181323972209200092586985674360412361044022341841197273558653174609833725368829626994390070375580940659671726998991210805872349542969765557161677250931657619007562776897542927448989508372587338377606273367880693235358618638141734405647346825777405185317456344783875420554230669645231143600003602339040102573405264246095143514410473426577066540257215262070897128192631480939493677685155413473512633337650596267130423714797546782006806238769677297644570856228709947153100790132606026279962419991034658828778117096044752753097293422884938600286817033868795030859906862869761043717189911804291275227184354615220070183799189472858502470295962682843987541218158487148846267343334676059800609867277354105502004824058928495969636448870396073753691817479970370692931883317472012750102069659389002798205109304030971650879028070302170213030904839812501387179202863275095004517710523971952634814669433671651294583239271458624428136383908140981255667612105205196723698445768142042280632730437545178262443539209461805078227150330041616038915259744623371742660289146669023997330709956154201785056561569831823543299872872047647628028926231324772593755986141440996465709820864904823074021956612677501382166863632020321793044080432988609073617448844687205933501839808669906872089694376128209797998727633880294653493593273674714762985671785969051746020998755297493415561038392419737824799490846653204219421099589518328289808211301556671061664397694616414733199167532163465587995313231819920033328133631785972000929031454199982076068560387929154922086789673295713282494105945863933023351362935844917808399780427631898100076372734072408559284592619232479095210441385166730062133570307026761548389584893195089375330058844790274021211636932158626058854078591427366256939063193090117836378327899069432944421249190096914928245943134859364800999503326322694311315886133837444756390125452493583133031953819484008274149866391039323531718661855071549024290527581827719315470555595391826940438059355765831043052416550369496272203110061238948650385530987101353240689305756601903677584163941377596802355518954802149214884318828605562801975739228155457397683808870848642513207709438908408466238321468458742003205341570888080569454436182930781434217069198190544411351373002772392961152201645638757238023683556121397647430887514658150389928226665733717691976817873703746221562787125419639399347145353000202031411503490998906032263569684241378270954660123842345238952041566682773559791877979324492699365365165348392632985168189444201038540455781270430641012063521212117279241562946075845051264260741907322600298976235624560270369754913429182217973149277228826757189807930955397778185711486095012659295458604637972112285436084888692342698632186063968435763528614309678757806224206300265535881202669683233303849915346311936647318599302724325594182825358497183546956647610572094486121746085672991018855927070448519164711933612401172865327785124417812147059521385533472827750104937784157965185936089640731366605029359393469864963384351151625143077751933723914323101413606725266172337946648841192971381010929583949442672594419119838964344533064774958043968781794675180790215646625762953536863557433732715943257786654240872588644538152683151872539209337278734154816053358010339581482122065301800329547509276567019194115824665380504973619624994857909846348684351220879802982737833265152432989940291413655039018398576419959450224445914892353612505413854547508218208257988139958274678458645574956798907610598271521900210459117109658744587941308820823745688619452028719409117218236881509497032665032410357813941164780755907131822441565623827079609027823491968244932106512169004493246815969169902493639846370162337333021989099057670716575802647957170421175586865637951237731438087523090007867966595075003274699029820813723462904344247071062415550946518031691628825742027588818956715620614671048648518611112809363698654765543145953185813327159718209026079868057180140918893494277207611961656034258893846142753366837418248582195183198409725748567297051751403972478525569946448902156803815113817311774315809944996604132919288686999053024317876475782010570600824337049107205260432543774467572377157159705233153958740622814014079498848643547595529244500839307242455054486484645127695689701325479629697190779574032528155936197866459547020463011521516655826586286086891887142096047031843431860465047902845045094558670013350774989875100574437764575392852423073906162479434431941136714950476533424164382480845126219909961325209726545989976627395434471700745616473625285834734580176693840932609914600421298145397847667793546857788288478056821827899146003969442029868367525034753469115980324439658480520637244923417711538257737255046687098060089628475674718533373083238472273926262730754292167424592438034026511440888161598274970597641105957835756056444098370892927396943637688661086648297707598108211891128827738800031984010546331172126716398581153392019892756623118900408888126981716083910021368675623575727490231797356218709129730688239965436976209187060554546989166476081144543409336466782430255759373589349367824968973578689470646318996244597202475115504096888713795302960690840345049199613276688224328057143645570932019709060829202232403059763539795511759394628442500231863989145874821854952841791392046050226380937832818943970376230600536512739179534900813026433023242653141898459385490262972812836731570978498207082144705629980285151626250722209777621332695904150652166538701626453724681533084559541077737990118676624782549026028988952718740388576225377688674536964431081613608698939530579886934679602986219775997441886880565022331682076122866304730703682922972628862517537259519984592664283743935232345597578348658859402201605902054994114001023741107040895765982509095112289470150634146029122085623685193448056442464000096578526172805464655879172720240903346927731989201183577170084099873081029266616290416267866194620113280288892027232781703422794389290023835884781160342153066018589237145860578370818503414044019834798017164476524942778432377960022884316457371930081119942872776038081189614861688443378965367338028148213906921979881668749453564844266400711118771841820260997832626162872538345605054598324297918397259600321169649375104771044606121853227744193022711471865587535911104639361519192462599596113255828930302851273496871896866445092610733818088313047390379703573407692641018099492720823045478838343907681100313835655086356850619202661758906285369143154842100503017222663139950910185683537080191363986732337393343547680058630225323575035263169575653637722337286078124328520091605566412874999190807149425679767919520594552184345165308371033785502674938424936926076714352942651738977865120295674355159179528221617360248385428236569739730168762573933116231071392433870012392839553176053257968965549367415311575964867941836931181276093401549453505862937921087217578861093811938380625316902890958991046169345801119972676961584688823378357087441176249512987059491633624980912727391220088310691057277466896089157883289601520244597771522465932512356081914454907830512235287460638944974187905884293316688980507571748637652868985191668155427483292776898106787270446278623962672064600970383288654304494528686276910687554823621892597727699185007907843657820205283718925133893560730706791194722159495301539448336518202340964498968503006161621279765669564767818162066292770460892475446794004848573095644777257263799577078093294795664160377958070431094441870145687663565078021500196741168960070255457820001196459286615543445105647219152908177773878142229560948460632914382069843303702813423003540966218157618691591895046670524499957503910766002971744363359251767468845284961890240153714283953138868394343368627458312303953667562691954398823547815776305948899665266711248078585040257984612392251181149135157775298776575141166964843520696434267119900715857233820725273315930972520801856600394142371984251200543928657581422564329555671864615651477563318867016118002158749347215688645146456789673226456087200965271139722662427251935119386212760049670209378701461775882560259797800308818701142594071538189006286372943408407089672014130728212691988740009604355500025253620764379283547814439123947780327107650243717436550705372323430640472512229525328259998172744938413194869931147226469236267139069035726125414836088462526076025145777553365017698966919343493886046779601259584382892896127747736221267779961392693346512760015000168705629446161685378118036453597486269015812433996392501767182482164899543201135220828937449338710244235601562417347126771820961455615502112935842696801717252523445937743118675218553565624148855796046706756139557365789939943476225306872708910253302889922659070731448232260166772268815068939964271157494764753800183881079557921422516887949949761098975647367875209507201745580310476928632621539880156621250444650280276871543705737768274542909843248607551937656919034509625876414430550151463280330707762346342908350334965228018483511738351667168442733513535862878590713038388759745082235601615578418149779833705677530644446371849978877367085862733393492779379631507456125665735518737941782266186145598608921617714457135442005950938846952692507936010271484409404629330313442964163027827148893676196220215741378766074242403824505592509205762138249282623155500226693591647346052506036125829982046673059381126643671292598246039420124974701341936293098990986794924955036444402208230470750024593652687561861798329451278963648015681113824555065306333064187656395095579346132056210957456927548842858604244057224112636571087152999797034690329383441924290689446508057462145478567569886191969697159927734604418221122686083665599722713009673013614573799150705307191614389210205665319214142255516443766004823088729193433774125327540935105857099448540065334976425624435668660012893065439083234193420729168211640725268902549983288227805802161134310595936554851194950938411048831707994660503003534347304878158692653068371098836437353006003294713062049067297731936665556779959881252153447097360523684629011975045166351368064803662864377081669037438345366002431415333706981414658585977454530705124760902666390359588626467095718959494370629012207955515371258211845985498072846701896291152015169895296601711774145366867266089669662271346183650701638353070011703198130566374532307440916664745633699194324847182334086089799274910055429151757231407848399519647405739008405438553158879919905915546647422949772392035250235030254315383040980281592960651883226222626790210599513715855504811466312708851898528873512277064465459817215509431359374545251684055880110485049656697618679615197913074513957700026083982103579843776970832723606024991972767230390927152198061298739604557218038582249342220444145900423883249305835607135963547105117590351269620450222128103102226935607696909107627229285717928406499880399278603922976521192295760265722940218984155862230057257586706007483713487902440802562767744222494399882282333060605577529920253787730734619782478120066222533893835218767442610126925019705179889316365128738076277481409433277129318135654433396817655304331869066102523601284780492527674153660439966295794190988701273241430278103575609037023746867808910215292693779013550989623200062507773235507949576247519319510954393658277206706364349236915465304507791657738782777030911653890548835769371989837848911809165309273489983866592282283079921482740979580018783842160505268165526985269560054122337355863419428206875650947099042121804744667188082484154791525858098525982063249115967468163296111966408012576162343455885344170277254776986581474213828157376728529399270314785920133430455513184928512316327713086554282395096667024056128790169725781585762241530486314180566721710466163030152905850830063552150325869051226274059878691877896259077625609973128287238487171549078934544542563702688681193526667739758462315849921187197975507153940770804711608258932917155518889124838743870651867557082222938148375894661096899173009427066114581226783476668633756083465542790302074508056062281357307546870592299610622633992915783628317255277618151074492586698248397695752539775050040624285362160403238596100061714081145414645124936136680694147951783522566823434048340650517886397853255576580097452101469384515451149988116762328310060486144727784114731371966817417730843944696918931136139591769453576241905512070775035568722247624036982529035670361201220472387552923615956498903379242303634412943552173423528241811301783822180855708180538867313877294851022975738276073997287692617987948557108310952201395117935996745697400459620310709910177064253838801260150940122571513077772816076186867800460860333740560260898525221527444297886357971079730809015991513302495720472816738402344438286420572051221402848517697297073090894237635500788748870943627659820519449920817150169489093562485610658045110971625347593048992601776058973114025634729311718396476351423433438620554175968968158385044821606486436067521666967208237968685313208173257110932664361218442260952704525062924138984511922419123017551810225154602475151615347924414162957552174368459866635950883407787287720036966891910846494905725402041420383518175835468569910521879822859648641772447425572775288602355021867399438920722916151059589267605757171205361644731447118636647330726183569612134686334589427796421962440503971831235976080722283766107859114659727110503188593763455173983723483860075101226635733001221355963893491213631818799479991861073954648356158243124958388157286466803261186718413109697834797992070257028007615929390486231977310960059833846478509966010772242185585866433916397736226796079714023120512635325908525373065730846986185746970466512030259389785923830562786439875557751188578159204589766961439672631602355760088834924380425510636015613182432013208133671629935607985079899682975950497108176629017102498701416859573996162178917659495334794472285210365401800270493116367257477686820788358619132244712788299876647657603872633176257652477938207196613081090694281242608623829300419048518083547428367911690604180763505957432311635823679108009046985759689043805906565388706925257627064442223174679057049415999539483336113307953623317082920253656011680379072358141528031739324135230188680168377470138672749644156269816361221277155148194152701923819534407596281895108632576478712342232570622924176369770362649933179188453754555985731553912665397582013485437506784932012029001416804887654432910367889717248460483664474324727895935344034215762948144243132242410448084334250729795924976673277211169554522516198476406432852262637463229692606560052959170616302859223580038442667018460128013010177960624343390853815637666539226545530963623853911002622417997482858467628519734709769049892973318603581126254201940284718222039812813891597533256891854739875415292550646019520507007345542595138994602110468152957843937871072632023347781421838973689050987752876254405112080115309347235659751136595483526904987076890682270288843903434043276203440277581555804170743404479622369935885985226621178037124786807532692017626964498939039890121061252655573186223255996080340900984959813441595775839240323084271042082450682121038815407453436358358582525645657028481078924109900574424263820133503976752054807563297823985715545747245703927941187708379379580219019166690553369757448877627387633529055999842682878567245332886464119439200706971950607262604163446231912138780833131857401316369635392523683361646746052263844957383369888432693813018744328651888347626225110901491275286686376293911647909695604442995208144391674387314416747275899733669908452834106844375923955893671866709465981072350297789543135893067079610792502824225359904244592413008187823364212902576282547937972677268320353588611433032991564401110217248691229674528971475891909337288296500898929500728858306958045885093168773727359284642680186997518506945368769342548110994763255677369913451834394053654694249896440999486966191902851206692707574287380238287339845724981872809252179942489478873721582716172802469502285532343421462568876519579832088421632527280938811424001787388227310363614444066688880717255958176913669415140862049434907570363685245380648975032707652553079589342021246408150256785814550369976432431654904249955437446739024487339454656138439243487905142616280467053582866475146915532473871515017323441734803766719198715768113939967935942083329066825970845082683619897911367648278421333425452233189893059300080263711787291110664622094944712272873856416330930796045781299253048444573682592410054776260373471223481333663917657666233937177221060903434004765587440652357921856792000987025030851535900997092100948863352317983262188648809361932086170930657973384967427439678565576721085822771400554067617257312953822009799793951474495751003551950351496779139580164266460544361425045750924952484212461246172195160180555042531425901978213994423797309449909477244402092758446414374593219569340817122523536025114677958406913102680716857082575841217764932962327323260000158056360179573541056690241106062635343645497072925225645294088738538614424817943000951276780504125100729383642647126069850001885301454507001806640340706009342062094052252429399674081903058365119296395648107165304921047216479707228872283681571801466360620342150239998529192384178520982510227655619174234705099085526431666552783231664591866444761012343868297665037939533672039126435993994961126279992215710315612838801413214311598940195684415257855638227128391858676584747804677973887525972949275614052370946456166278563877239325807780830344692489585703634378023060641219428631533204588266005017963647397330421174804034973873588535903055659020687839824243732652282144707119454169955917514352099785802128672663391476195205151234948844781915096984696514590914148915982567307022820669623613822090453705335102008421746773115953515511905366066735990650422087308504772117632556761120317432276158195735170451212605450840976436712280008225322468242834289384405645650857432019638556545719057938106959004696384621874503311071933365726748025151489334075975469982969692649177410210289759350178128698539725721365615782127910554886917317538986569428251832962911414547034919590334455703882092647150388805706682114929973149398453261501432342931925728843805938126037213377878300128907103952998729274997228185920297125677554062573924801793838332038247253303314561451912722276460555846358381110474984122326914304374078350792411376120220647920505953742667802942179632601622308347202286526732259505784717783771199037374827715828077420157985462399335138083955383794761838435445452846216118454370139972768204819814798920812963427487854873732381890225985887490847123299471193398861250034751049695518618799192717418637469804665085965784127006529873973301401250075227172811021134202804435723411746367684893284220160243251398480328487669275361303403821468346111572961130530154536576952983041185576608176731182604375477338482063787852734009539218102110992247318836092365973090338519522332849322566076495197812156555953321225630009519712762349260729316780346103412765720846802654634304235310169037701441379038309542829843513777122753178834185499943106163180836772270613051006488075633546568830110828544184567872882513455052611295660466568999021164759212462779729819787253209353813066648710511295657591146984430318756667982804657833765757966122387234492813603207571255828383577222982692615758915012150812264578823537935766081264942835028623314190227654862233469673765793889827198042054142134026441621393482112527493106626326873939549550868613441934381092419348603619719272763688125330339225896767771685785528670385943425645379757269044006194547567668116514308290350597349786051084890133167529275652569908046510759184092937181763011534926518058571241247744660667265767845026461305455820396750482275735636820762521839239122243388500448336669784890353112165735627039989928862264126692288598723402626867958997393343345383660898869778662040745612286828078264722487129890314343938484897268262712155934712631759189605889454320274263405421570911123213357176492150261182457247690000068155495469187833129193103998145445130520829036479672708358825300159436752611810574123909125095586344005190744512633992243903723454102096735107540957871895005756966659868200862571999908382188642012551328035002076932743147376834048349429153290805234439925603591505904554335652350812403875474126414325113059882196728514920286550319440380936029093643000273789332871451782142370988317900503931493028349021413198961198723222893691076611052625993304799823733622198337378772384378470941238751951726487871618139664261191702703203371245123994310013479272337735763132485383487263520843772179826453250118728268299387674881410996059331499039271298623766710097345078555120779106915242290820064880057674635620997316108293791069935833728433085932859987787759977332812983600526487134528926116233391900573103915921713285392199184511870935000279775143101081485456501199897762447297981743021859281294035089007208426690642424523579790444464637785280250264858377977238927124549660779161714912696981231987615389366086892461646668183065917393317912500529457298728332822210668484114893783120948361366838613258760940405789578774479324638822359723212009770557632831293029988820840890932556568110202779791898273287898877820611489264825946385322658085890630187853359870860986325464156205828299644849584857159681191917247283964601672485591098244860017206551109377828934634702284653681049779302562211544638011474433082213722519203144392962159483868006049969001341044821984172013326028645106119597857150486799046724580823771200210455846268395068687215342019201903653873376893487751507825624087601705117050992458284914342850174368203540589755150623781140572822530387461248286695827389086231805338485274868422716160357969508779888499046832210488356049480576332188204700098864083268531168190428379399994801380950489764517839647721098548431102698047250187320245262912906406043515421653248700702440210204568525230096178385344349840347326357579562944361012414826352498686076443678355125431593946383865134445483200015688051102883360156324993955117332195950665064201623002632093138654911637156332059996291454727653423237358080274310172184686784337808319506493964592675176168943624847979493710732557286178860183854229384938219806564497038966999141589888525093667959839962164864435728534962059521179654727348092235154208934215676501134908335341779164892252833416158024901803821094118310678511856076983604245247802481093295824752726906914306189212745725868414832268063453213444134151646235441282596687542114164425804877904893546050542733808124998297912897090215659796112696064976256892775118173373746991864057055104861475436452955468275883432851308212225684711915838700319224260531089470669523700330108967780662554827808920330609438685513889773820605047066092840574900513050541656863760476290167832255011085295801312683409860315827964613717629471942750468536931798367247332561249727776090002586278571966423866610607967333329268900637561325073768130801008613691388497385224568872798950406658088490426198747813047954252947013433589338570652602280206824013309999197808702781280372468964025558665916673581909094738897076895024819286433206734105080886600189377074837042175019262721188600739924645487820285481779716126379870996092745500044001648749655246602661460905142750748489225513198552320377771347122505205204098190475253220476693164169879089329453592752667781599939040605175286989713913798632509644833039180668335156197474273452609913600042676307320771946805563376637393729262844915888090257391154338909802804188418724773147069502790154051577087412894615532025337421612543551271517502666257521387542261518456862438677694504593042449855731637585596775192609859231224855561902892324972435520223473497562020040676108948917993415936921370444905947840206622482629278353462151799563451284784748309521269613443032454238006125000123631993044019018147388933813177912412512975664010442652384598165568989915707984489174789870369869424074153608454204671787937754173863913914503601442673957315123714239894118619357834037013560401992325526404410599796622979032522814343397944069786615173827010989904147261634700462119781193337785819837818123834203794756426517620200634851669170795035844618407073213147410145407890285882886298517959495741515518876352564425781564241893945036762402941298400049936750793112637147105517774006446687085979042551659058361798193714731904226670010255592569572249966353509611547552851147579592609776582744620334783115917514452033162459791232813229398072891234866712650430713707922127691331386388750679340322190353362277610491423883433934367516613810934809631910069155956322154185322316805473235477207151087022088828330802275861224891669024971128611267955300785633313402446307199192301722735377475409427379068875860455717896982752275397827151605676387146077045566087803286478450329493849492977606315781633929877790734454937149934928873633501700986208395238807591398205859066303587412789637908062327850067228725576464227213903053109608860966415810193196845240273757599814153107725841922564000172539160691934274821896366109850130548462144627059218168888676198548403710945835148172806530221630520247050327524675548995425502508152673331973413484109971709119107135136747244044805820525120236382881868393595672855927854263201254878057557422972705159067828178564670286727164782532387787891515718615815720819851264623618688591720237617002161979259280127467633784319217239305662205221802871663213041281208073457879778265686362666910764356563224208877437436450180700478854021097853337819356492273458036477850443803114927431617153909403540103433193658134245984249932157579639353069581275510840903264433530713751711347458655596889506475028704085141295036878866393046029544601217462211734856957734891965228345585692087268442475715956851872826958170825172992070644800809401142047571158615039071441594936611032465690014661654631147131337200570855322504612621883392070288755217854466432281755302182808117049699754041579130040272091369849085842944357764050674257739964048723683812435810085063262533073748700320910331718138020382143546081441042359581754340745220202606238443636521851439056967139277660254177404175395330745202261254838088250926144358560934113149572178093708778385001221624409885145235290464940368590563145376167170875390647668249494536610985326382516567394168163958100819318795850279571601507692731458321286834431089979684426996175695029463063066832169588285451196830209035322604259256870736693876079842447841466395598705019754030785410470797693647173944473581664061916974867753405970635295894971752311296287425554063631494826960368709474201377833233447434274359261689189054620761359477107701574771212135802972264744455549180374085059132995767439769257823365214422749193671539658470218714751632967836985801802084595140415980074395807482270137463163217158534353565081409593677470224393627693125373014826087532616306758144488784653348593539945487407533153146139976448620449396307664145931982358120760231141924841197613263267513346073936265631316052518432651770131685311205474630698413246011251318309964389176177501488055987198049611768418168137111473199908186876338385166471773439924343004242748950795042264551910311982338494711888047912448247919117367313991062011406317945130126728194193798501100512538597777366108078142250481680357602998037232848279445563479771034789568110731389726130913052109003136501101664155642064383146721064846498552923325636977277564883100265783599381040356163230303009480237158247173705932557716826122753014727677525551365071111242370087168817716847910853445439886769956216083799055279861181563216983419486243757399657362523829346686185957771658919104569226352575200576654396207870833150951737668306454165201833305595373071220957563010089948576143085876316745302094320645060473166468572146950123721647869099081844918876165904815363227120419288018773399590276697424995750879456459226215166465611599103127544847028268710431967832906782551666655298899415036496103489420766010506396016956752467021692192999210066632007057371786839016581786015136050056368331264596675492910221510928467693029273038463008157845720136315805762105545860421991424367941541527145619394165753571310863994838693647930097530735976495366021379685422324708453835869146090414299590187682356070545647997472175520058185355961000082734803707818089775637992156429180603932475389293318504892947557381644919019203473521908583986404397928589206413842878344357253904600778456441564580573463106139755567228489972298070989442406987102692463858186125810402922378181527943842971004014303966027832578777816394635940877019292175303234010172303302044568443548715852398127667739842179794853568933506526643723061598283812331748232633203393133772093700668023425647683245464806953122347916919568176725033052613116807827026948846617028468494384252599856901639192051337962933143084702410527645611783282445662345971684220260872483349753244219393178352777490603641503598780513311622639151247762628981294310959332911158898095485572326965688933549591001036860609639396256052169429362219185886667832118391546574387055518503270611118886536410558379346324497506932523977986239248360977024535825292312941166173703556033513395922424341272296825523893967996040073532818002523914420305385903424882681386374831857064495144287464239718597712321342557109049009402613397935583733894897379105514086198007316585472735337223084817116901333193463346580943560518070073858825558121614953305576091598943230292991835278138724526727935453499884151875422032421100314726508507481775988985237910162087112303576396903635707426819329263261989333677515234542998209515230547621345015782137410148104889704282321491812653448280048319135564871586852414215006402578789722051232630205650098006628189206461879211945306422793751529610792626080296606929203038359617526950008166273243055328529802989076294956896489537833875979361043726155996161432168529568969895343454257670454254081019029204669379258926163899584650267326428066350165483673966731940912825639857693241891778204397780908849673178461510715250898064490367477224184088419743376212906411663837385794791814877350458382094213722577525622863276574812125269155722343182367488371832870274832393535743594584802215551199671178697253075558477196403684577868703463573561429861410715523070010891981653365190757581085907609799906818770389595579848608889554997022377364969042638034371701510143426408025437574417402345660830150848438319212723581502010689315197821000590001151439077926179781114161671011736426838796170733802815006687188136272021272038346076285698260756830124075956344021873893276790261477856199499409417152478605856938238111321714478551780544182179212555923801663150410812489224963011551027012919166645203253674089789171102545437957498792631809655998264597526311329197298993175530312169920918080583358996309470749532573450245862110038778526200600810002888864029662722324929140034129762806122064810629065874970391950644951817921014119392693471489711185665791604036505797226877419177534088674769515489704430099948053025115313758036516280077024087067368276551035412390312499831874012623104989157641570899542720561172058948734159282974448986956414960909306423424459227556220439541245237487704807152419539275427518641522315405374977590230926208914404719851104813777674866177351749967107385903498085538721498523733227466495709874579686001164315062893690103949427386521042013949326339647321999116307441482382302949888132839925017516743247779079115253641562077102942989820953031366184659645690727856762437213074657867164272986064849985517104774525445558704715003561953325830679482218870370767927498498398040485329577707388284029862770004875233415645130078415486034057505297024846607117527144768557202891063891654845078114111010936532974923257556363240163870371961476605540838089282933504130364119131121384367426018438178758736581549169603095911690715347781886450079485309905409203689199955376744957599888366115003491623812833438511501816509415706086176121949502048365139794330920525446555831949290769423227429727444989452733304317411688394998689780542720603387723209610929487821076210966618062012619881314700426129227427019028591827035552737794678333933230242961909777027474514803564754893417624814361018001119819016221036956417790453104937184606184920583771822246558947803130084819516850219006744804351475717939217014485705383429995828329857853998897207477533474280176950810903203097651937197703632918426078481589550614593056835078226187255556000049851164030420622583392139213257581708172467676331815729309042545091663297473125979304966201147148565206386324539817772410796370382312172226215622466362920897399819967813121118935977486155699331148322077783959360707960172947519567660589338592323379972313993759316947290991783526521628283447394957138003415004032967926093871178130409219188609190167481974363668697290156437993696652334493635682533641487042922613711077919295205410979477989328928379754412452394787539280577314979373200009348933214174702698292271326923764629813957534896285824694989734475926381986556317497982245749910338262357908398393448190390501043515991801476018239720962489887551807227395383302269321093456341656155329691632947380213429531532547548875422709772169968765778870436377423592525646142934938438324794369097753226232851425271517334474369117453772132631622641371440266891215204369985699368802885033339090577369239883827164383106384123601323139818554270761821961521408375479497582354392532348575282018596477098033052040683330080560862926124975266186883342377044903257578568366454820256079120879262734271534493078857060135876515931040051477205033058191209496031239580980599760359791736509330419443312125966621433342750565104635855273916883795704351999601073714550223069406603408798565074338453553491366615867306862331376448147773418852126327373934338141216678030662593940550093187470561079315151918194954801092402671578175580486534633844796980479923721105156035862508535601248594683474946407543466073885361073211781109322896274173100895814293676454779700136779215127945631627255513282343479538108972931278519694432522709189026268619443010187259918860741232219907159052253135058792861287906914343665279761151064242346825553851941609140572543696701896138979134039550294704984820699689401515878367757472891284225439795136552584461918012494346624205747761486863893625119843688201377380194687823412844791041838336359922723822372812792241768049514354981375634334131128207663653047180779568409898914839693147964686649739885238568675304895098801293873843504449224656895942606575607929744820946783333770691619397264827863972131948833927812354770805697535595182540423710480758689216395601671985889624579795905068347801572532907967179289495014343479836734272977010406061612665087566945497022415054644960182483298019478774361502092170469527721302533423870927629254513318194836169840822727644883553276983423009712853289637316576976856658651216781754979905568827897439707681766899157633400793955164035647180399608434812763002983659503899925394093418868513401359521641313972609392709322789116951392696984732947030903960210360799049863036590637158188746861953277806413188373798267591261948069105167052230428008546133278397520796917027897120393774616467693424124159842432906001010099161259448804180985721887469090980596934692671016269324228151471610470007177493108164435368712821666592303203797768973444714729010981309147032750269943801913612357328277639310283296607051190817662661496290527994965989750541343927991924595519138230716806055986182028349355438280038572523455138241405372223201466491693243589522939698622855042715481360384144608656411072960014466460850612797033680106221214734205059191446439936277736753678509810208381087536820976078024189235559540090127693110316298992139984405910802786438005133404277790108323261415982363450803894156345757795696033540262553213864642484610087637177435758712371269784144208566916013829468967298475454918299340464926408652923208947532139129893779952865296273543985725423628427921257591346528806918741190538811330202968660244390821098293725792235449112901217071578940584438789141955085227514194761941178922209628094703590691640645589342779900311310541791395099348109980463811372845476229223663449179803139812944702091165733869426496037911227874724234617506478344704663034595360168510157239379130326333848881035212326336516156466406111225345037693250441544472609083291648260988955056618533918587181491633658250605846062784568458072049604940505853306373802656154076286351350705814882188415293776289350453901440242296742990374020190970653058884394973707317763058482092379956967485593072540640002481668652640135347388707232504170921336919921030862637340067304164011536663689362211015000424230639930140712213404127254379920342346987927191307169860270653241102987588829326918394607540225130326469320049519310414590480209935310988654267714739163631098716466449676849546893625012475799628656459185773635538082769002928853845962421413840126653285697027502654871035579882127371587074021289659548003515558057271546418831373664832578241145111363765861375047305220773472877892710130402129110458449046321529004258745621567548001184560311945867083147411456940523770080302352527222123463603374094125275347681479649839222382201118790833848552580562940530076060853306736593700002251871965782228094641770052422857703317823769615359550943027819545336027858650391260514188222605784922890926839290901090633309099532674439714390910140142986417126204248372642074861302522884779209221561106115945604948334801098644398082893629089620469878650474741111822805171947100667561587833022887249967241641234998415511238198676080443472998109851617086439736208285092971520382288421321764452772618584233492476141240543903317738692746092787241307141387931977851940438875352101847394219358938744609904636517670383623677992011397450460027704736388345279067785758229189392850845939422081111915321099020145154804806220689126997519936829510969070137640617373253425972373328564767617849875495410360834492494035144390534032720856239952154815516292994092509015611984743105657907607594649001376960987631659349003202273255886876375031120438207604204260778125766897604772397675632894870456862585623649293457281026273040869520439348814979515393769179587778630543310819865731308994515707085689707888053785230758460802335616228958497551718010843498336981874735227096111553341832247357084307350517244699072443467510207327007186715761826237872760103188065355512740114846561452958379329853826862126770597513971277387437645370269994023246566435123166270820664029238518008393369072491111539869998474606353709480829562140061832986718374285917694304100514744227450261070536849906304385683544927288841543434935429066523911018699881135697400369235937920387735318052372315742009426673969296060157966995662628174906493266729758800693992308856972018795651280100735693191666166742594546818424448570118293452694009535191315166255829253479297087394333947932092215833615415253518156431604496093843471697204271335914461358951857590524683135067261304910002255085868542424934269423144417181007036535669353975587197615728695987039103797014578966209931211696007923023120596507609066108526211176934911735022541074501862982084352620978948163796460008275787016150804727707161819437267436816399468819583076947650011450093521475379273014939067819845007909314307622549533279138679190486324955594477068558024241162521362408403966765360738119487309939979057397351334346065535528806684432089688636908257788429857889800266913361802785376839446288864474876995210089816605658672137880649029556586543447156929358746955625069268988457392992816867217071519027478758650249044342677256302925169050838062909288430465669307795237141637575013012190755893129351028680560829435126565896927593785700436768984079652484444627590228827998753911606401977392114122469756953567251819718763581692649109149848523918724838263668669352738059937767145019247283034103717399226030996902404077429595998547555058655898259019371583367176570868395729981242755351971845291508439006375602566440780049691173338514257422772833301047374018871769552779229597471988176381455442730815476412121560499883004197581034344563654987986513589406703643097861540777952811674257250086639256842021952379149035895625058208825837740398557195649142852528999390727258804739797399265491607692252036691310946291238175768810640551098138350528175791720640509452509546591160057971109713482280129542610490247611370792113713599875631193276931838767350973971902029395512079981735533543729076979768185093513774594595605901402698636119094062708185825288866736350752900064986056036849798849842134040601648783550954756579358642322647238399920786190696333529406140125313684017307729998660136110307835562314797013008803292105976801885618803473041735959002647776610603525756514077687938262030764849582009168603060686085380786632895870607508650184752981369893244510484355505764599051926844710170210031764359392049834662495526738413764747086792889780681610729781867982016931521250122451855252222715298939095448290858263190950205608125219900396130058710408401502501067041650569492218756922512506308847246171693103958293788610943703079654335372160442878170523945755829940078268812927878958192792984195469521735879031068128006178870130312028484073650108638330862348823769376149850326981718703662655888206283733473511272091803996798675246289481756165693625386801452121333272203377358499708416347355576988907477837534127748029993155949252615717999792704070558415596267549813428949240807420796097039104595250937209651069438621644682229109772782434589818011663666706554420243300910651685479762642373900004877285795587015054063172661476438089614928361756067045357740346577665459863283360813753840542453058438207250173308269896023075040496847810304745399474164714819258102354450595895534946606709390988134202758660811816257099170491344454454455144167598240054911332565959779399950701319479545653207467046054889595405180085544274375119335928968761809069417559673530284270700310818682552131535958278818085325742632638137391915432236904100286876293383696371802653701125750900990558395013461514956255626791712265057846658148079482132246611911998816155523008978600699120982363106039440155203597817668241121764480173323274144198930585850384027781351113373889463044860067587868414390871752704587182526036546320058920133605608634327008388513919759489065642770451696255605212470664533818464668427211186021821406294533314600391484150139489820843963667626012258733877342135785968605490427708986553732942529939662521249958905274549825375146169931502130830942393616893399650302220359136273692655758970239552400511755010918592902695094194994993487590306333148869594561112043139176482479925207229669684338708689993098850799307298256434283477561344762932240919183048847721065689296697748684383532078253494711682759990196245690320446888626089099824378375884812041147567978137836671745196430541671344496683155943610981970446263073858325431877228253197020227513833933346937022426304119593543642175364042609539167580144443071436093454025173475477587741846518698614906749101418174803483721618693417442418199163025127260300340252353566506462838250839414040419664483087458682549734190914765939823228534764237906233169864198125904046022031084274515807127781582775014793640342517958731521583208575722047446914207738298902180866201280232907883518251359007489402264200320867018866958347355838442206866331842527445412065769348759973956858607823348018751399213963917066798385407349721492903888117601569019482641596787165852617190840510772998289891217265622086912818661022370621260043045866048272798164237873414193553530927944419087634012274131512418163615491551530186272946092579695124298898969738828933412935533274725737984451619899925799441658242537219647666450166511718389769896436629808727157395685725057401966685115793822801245505189903687368274175682594738461450590329710688788697867242549972308933670278236211541065850710552904340204703107077705153890052960561198512015731735337137741517286247474130546103971105577952147176815429588702730941914893166076362535722036467745198705672910084122744410905081904702058136741965261867466752395630149900655240745241586239272521773992205492640189996093408280512511429316813253246025995414387879092018688391341357413469900043331384729776757057412855569870312218922600044988346036651936228233744346094606611823779732937672391182442170532294946519271743314384042190714231253200728467572984017051619279438811935937858553157115028214682503428292478316881132762755749743852259694053703176824339327741665878235385713935715220224682051698048901692348328960531477579322235844385174024383156642939668225311994906394154935160984338504007572996230513360437344036718930807842584857386733807539014033744305367813690571790992835545498932961582077614214375429016459954778876455104648743880030295241917116568906226469413950146088366181971990753941130407048700487058019615726059415571589613254102090943526805478313846962852878127851370079453165845337432435362849765231742904920938379909072666498684509283201465676093455684989086486580478617493357864279880498582217859485476793011283395049208749034738949397171665110475841229502070846529768388039272547815854072383812284875510151290471391740368374971410709700171507667082681673196016390445319535388154082734826956492389127778704874338824029920893900004831227530515058385758933844927254305480824981013798137527763279558437332648902114841352944258149095613733721080244223114276122420688702407075816240864310731303853037102851464333780385302828284440017385084787612501482936130764864556143411150690351157912751580436667793454303222315105777486880603369734160965915594533013931794621975878379647501098549787577925842385014574064857154738069764754787208476371549806193528042515099662958831889846755846653112797745180420660556863299556607854524894575822488515324772873767459892370227327306401802372934407069967006890870508165155956280091004079850756543730171180689611204606349451839227716260609800105832121203140963733959921562265409815890698529808044014797535021502750462199793838638334261346667476430708896194970522596840077542125180728976481166827994650344083746160625214263924018150278997313263451682578701684493210098872635308272287183901086368806924102812304264966847448120204037685410920249523774956918652350672522708733398733593038307272072649014080278301665821510547815112122384122004943820421734575120590083057342169823076851210420922592652484610002666265360034498685665160037499393725419247911562146405582146910952741546986651845735138866578013823947966280665082047413283771800841894323713157690836955419461776784323184912327146743448899060268490972286677604807809514387806134533561425472126550389231472004767859701436172432152438531808044052119520264046041791768446181983733406328509171362715656591082956205859093739638986010130036204547271606516919380111546162936159100191177180268009333484512342475104786570267078923878134108044181265412008640841981726883709030990410124757966088338565180744921053822846078267814828657579139229064026019704773587847854884436884766895934307653690727072829334615203465990384662836026941018145916433937593909219703735442635750549192856141786776142026357637220977899818245992141071091599021769811300202171304885503744242055219360580536158270394208085418622395599509361049023745907903867989731744546162859236398046006241338100396503287627457721916965274076525138515750870121614405054679564497613171331707848707375645594282563411877032851754823690153871242063553658044631339108598057866660469303151994434210278751612294959468846129591261960322771242110600638838455805089408322805037604190154910689153490456123617089117492278845889941806736856804996671150359850594131055725595333655942464914464298143787138602176189545940666512451188720483861805684301488859219578585933297462374627880030477401254036849946510331787433109243079358391971069947521981754528015274543336691760907145953558427808262773158287991923146402817132351049279063536033581265269298647240404478405609611448575467418074422252226319948051243079409786994922343818958221744604734264635598737697205419673346163088197204815869254244353677497698657240601588649187300061138529449603781329403665014376370383199929987981228884256936511207595999030561989296546275253728038884764507123752645570154969755617447188485661822833553502802590019944697908868593347316311770426123667701214459782541460324079965122473988943193637272544020677589847526554721142416757932176220657793318079657856166226350998001826264164239714026356990573397298533412056367518494736184035608555884714833927135823512072911421995686276893444162431345137525405194667302030605625957411123813033528160007963081820207631519134572225371173813725830372765386031345923497816360033575708379703764137179447740761603639336852407491820928227215325696405423289336526986067791860612950431496981299781290530543729835364308538508652513675287768216686288071563797107019958138257093184716473476196773928504192472508898130747137839858121893045251869582827195735283753859332353882770100729974222537414052656628280959738069890713323333078444510081116435021205674129756410747680886824677450254138105977119286984839381505427719258610653266323786668160582068361968100852040427922633422548159384920255118384560887364320665956766377522691590707957309749025480103744940634771252617274557897845879408323377592554682817454244669550112446047858422382670173582342522854721690651380087757415872296317305370699025687865250010001917112378096159453902454587487132787774816200997877446249646327949344109402983003768439732434003837076941148048945974623648556441154599013436760749985023453520178657131628192072953086165111774687841656804587981383274295493137802925572230111174647579626528610317359681481449755885984513107276306721997010836270129066439083587756305564762676066082756220787723176358663861707804642756504543563503252372171598309641054700112306600137946777820224293510642840660654294161891008288806476356679564519165639020013622340649013779471214103014008170414235864480005632905416363663097662920581046109613782631295827854985673717179568289327191524036850973079484346717001039483990156865014522908819792018057979938864804054242540289575712750589013099224656440732601915870351596794194832327580144414574857805313549456949458539933431385651143831445301753966428963925455082506093143756187959844588434782892138434811175999257996444156275615537861707531217198842121826643337032192951653407251282630970843801876147539447686602172518753831234656854702836133830347167805690977949303728916010933142570657793894759049864653063870653130738612530161347655710548281995209691450340445466457979305402771583910226990332031310471804629113143011082368509286987924557445899226013903494076313332081885786926866689214692939563517703318536256487993366055141183591768949231201412414642201348191055585749365349907714659023827021029275029890612751118864904843579769203270426846660009479565545480945093291633861492666111077916582068102397032517772859689322438132388482570314688731595224212853738436991438804102641364996131886684485228771171602701498277445074885936759456094459316050728533172266282010740349164607537866874907174537977935720716701108305802228115895714417236892696033608524491686305645628457055996179254635244634185226299999570113714220713046561332803294075116831661726136827966589493246880113507238713078984441831313047891532741841742739013126608385481855132001908638066551130680576560472437388361705284682247222709741721155242899116256057278150306306996011356753597691517720348066197160852412357602286775710971760269365215121487677840875005117216375616260112655511446118580168385767716468269717629205700554221869063004069149625486196150067334881530531891999754456425468791337519596193378665061620538463050084232840904177768348848357445325221846744150363980258316868963533625096408500986357192680283405446898478168729130802127864115872221761982331790695343246978268066862853747747426155302239010280581231319653776511565024221940505561827479645091662068375286194995333195277870407368842712159976645053488612534108838176158787520126175799801061727019682746321468300900851094523892097805440886257537903743965726562093202945150831563722513529008096039038695428579623255006984491380535571676683420034547560631256349736440871468889751509306020048494981402315215892407974254459645498344394496459623770242522501669169866430083292089040762923329979628421312972017473690206729539558689049961401179508979688509759193991155414862452369227046476045990598133275941720984574712954753002886254693626590536609877415019308595532659030799893742555655753793168064852166440644674844885535325446216266934532050683265902169695241607630485520705784891436025162794147004350375649240678711855388909650532370428733943668852651860427639264634301333598820684368911384220945401268950624539329836107454127308410443987567728221628886629093838251283164983736712172502867759381695489843634656584017252761744417313860912315448047617702645238173698462009133073654545240425704154553074056403913470917447588270766111636853354183800126662260635262230230275113898333360952694258157726718419877010532027595428619533508232148967545717099267788235319049490476712263066966183057201163806813558297773871271166159625647366313234114838443279102654713715654542660626690116089328796968911641633343632807523189764682389365500782574487710686402910494445012723732484849297321046565050210528583430215300397478225898589001043039025568334937799994041723993458716521217108053473447417468506197116752476815701605031126885797729197350399102671853525702977781734785368029925360387760680324547391678437878555701068305143154887118028811103559535773871284538290026491588067392343431881350334718975168560726236156915178033224946731341416819633726356508188210277831457998636501312559725070153856393900667257243024074876697199935761247752090396391706375002226628941856871047860452779856668607102525513277054329637517794590828728137162397517442269647362015021188886975122220474560922500757290751505796570889847535028158671022019778572283411659132986263715496757797161672206588571569573825999759699124274976552394597367402791634680243628840454165107990921576899947231874926432303230678352400494054687601576851083487896821009286285558003452608494044525606198639244215852819991743713808025628326859524569459992747569248410739753524628214080386331914141457218730556605085627612430069072623848221092572483554272899935025297875173094916506636509241742820959088507579625251201822327010357656462074432313864256982865880315156378981196180928139865187131610251890817499772203477102503730196617637231896722211717645667999890507637362797579197137146899776626974875497037295650881033705196843928021834950842429744740399597495190218667879264482869886259199929357301802519246017516422680380677162554960091734452981205784803749205963182816548808473408944926429046793761384785790810448976921755206003433551076091255310417648718502799281081298014258597935314977455097287655502465435904121668099843303763970619442507565136474524721595539398648832740245701226074026958391751292742615159331976000803567698996000855680843045679082191608671359150208699589268559120240549882770995731112272715720625470689955468004383675694924186287486362850326455005238456714709109220200439143612877174260110721731667193356465862412308828935566916521379770214178776306485284826046081991916060162997926130022998752985090083114158541685327662062512617393363826314224614308691206137784594207125105321513432990308782219742100653462880835965405992711809194476798209456092977492408123719774094751688148452736122995685180683536238433048643829652546572909331660908849434574701082646108590659980530859563727982407216592420346318392785725323823896805366347589933316057970758229315473796484527551674138612580839676798866704980874215125277269935536897776734131986705834835957672152374896609179163418886994183508531703054530673516702929899178126561909968509749851589391333884187024263426222685754624985566294503662454305647049922069906067464442952076015473723869398325783401750789497544935673276387966854257334686696988690014149467000465886383681404193210850987975303287180951720543065510753427429399522308509424747409714572508759809548187363955468808843229929830640738929044973044206280695651746048248282403445367398016878360989357295141449033865030695977341098717090726536230213525753203642825778044055822221139695649575086793898013721814888073426452217227387903729055748511602461061707551897312790911117541947497653649650508393345176734974928295388227840050704017842392420132907382372272412022899039557788459599665417110686129239882810343486477283230333469049117693920821777545331698724618685849243219025983027228022778544570618307227017744437382068289776494032324000006541002252121974543292002530301473682114865476269652112023813283196042240676822201472353070736417919759779053536258756439703866939611252325839847600716065479390171672331197243923259479686103227590004041360914364661902489940623141477270686551718120797870145403702959521806233823989348582125398753318031276336293556175634660579707213282883451384625853501643369482554580063758877469071517559921553919343568023212249966685991250874320801851151263285645135728999779935860077995601194194330469297811427801553938776650181845961067088670067100427462824600717305231352050705773418730281352048798391836833324139288643921578352977080978588123532836147691616142157135402599072869956857281627993492519432226918481351004258166384768299078101372337489270626065745785548659431209258056677093883975695165261157393048544040537547442477423792357966516804855408388213899126263505953686422127917560375982311165543434500362557501790672222319538080912469287152887826018998936044996502427095575469247968438404776218392483837980986757649439091321991518812111744642798911651457585840603416828890699877671079414815906748580715199383535223030135533353084566695242921695191679552824604667466398060141024408314577815851310802264800924246026589586198996806696193614138860387248693425021958236815663432202988605986736166943116951127287789633880742479660809886917995080611186124458033705330706712807453367688881333337526570677582192213020508239172845516895925492732373026767400350586751801611010990909511481614598817132696258684533489074903040246902700195329819696057540671717493461864623516406017894537951605262670881167709823330418237008325247649643776475906409223344207208109835411458059132459993484843958482879270096736166304770122922160657046118638610827871656277717409822351905350993478941469470117849533904765315748106090438731348536719437842916768650086800832498358009017107536242728375943874039693756787189900746808400574755253653079114345487915530790591479825976751797949624747414302769281636275953987567046654695065585921447636493658725090192802184797117008049791790821290241274137585212873404637759495677278459252204185929168889528861656489293102605944132905475568493814354160173346451490980938687213102702968184536530805137299046008980839509482210710481597001112275532897458246065410617804154385646169312184180575459435965561102516133358661886137847324819909557322926938625177949107086013734379611943883802565334287924621589105701904980652098622866179237787521597984966282991069692390565264065823050773365532716574293854768742107007018418727375443522616106467823864924199012254072695394268852528317311808186044030094194287122650917986842450545649484633667118301088506684493806247047743899668566555339605126330489900487977600912683733262167538434808873242723791952986171595993836637682957262449288417611153453324138855960255007565976971332382863560126012091819923838440064032258067802878142346647199289123723503662639593906801137682038900836075463882520665855639359049906930661117030150609788349004964805622536605703956397996755722651356236940923675488421338958880410793072365925496328827749361028499278915744878288302697807679293907912508715782099435011655324040351335611228377882505208499661667217500827810556903639715163404232058547569244870198775952475276802072805029529485210859351177677011342979754814084879839522901369129557096534552640743926301262159101345943002209297318796812280382036095689422902056520812963009984820232630811115747838701802169852251744229370254536441513253031680813964684067106038336356755376900190810569520294958472723003023791079610228681058321745781419661729238497643588591364506035576670167940697076511181438878396454219541665151488491046072627456948072040038871744232156272023488758876493017309789137829799710342340185648303122248760034653461678571423479296912849550495295757422842427720084520549880054755000804084660824877892928157364076530296334017640106552281051817209989060642626745068943048300882411018514304531961771339630048480224356919774204769295532903841367724964960427862860946190755413520688761869914002283247593480567826765437660961969250220866912872836707594348465231763370252715809632011412853331406250437724671450487919954983602000502379467106956655295501392662573238616651472032868984175130598440090276989606764596035384457818429374524054299178590314387125280891959385440054525092314800616217270354304376351910091019502904279379765124052087286973833684604646485788029910862630272924726667824037980887829375280689972995428555910484124200451435873817667323706694868511648270744905566135630094166207198583215694266314234735839147396636769005009765631601271960463749136165335621056841984597651843826397055505665567646679132429688392436858955760121644265032651965938913666034444342100874878076077409976168912494634472015323995014691609543117039896794124183993782380307381805963941577136507718862439970233623210613848415714801015806665391832718400583374262063994534631707542784588183726910329275817161291283017233051045459144712351867825379365026780742578099290061402693794912203537163549657091612298338916024410065736785570408708882783282597784379292086981166401387193753182266156071941388054993257348033094324863242736438267403835982569276336820116985361582337261186732324705475667380571737879152343745895109113332696531385288129773829911509707758639564733462468854081767665307295574240337801852805733544013499335019879093147884933973896149568515360678955816483689517933345676934111711485393600839388815115996897297346287704291590844595130241787769667040242984072281568011550368632843815609400057652177789787056382361516542233996289499556409366246581277905226365793807587252399601570628826731394682780696404142190769804907386475481741391676957578702459060328365163871925416633219454206200153909567468839806666335509329388016509284528358227931347359212876365213642448924743611447766009761833505174247161395623549206600321423418564432960886973712446826441508261547189368499624871362705245707867566726182378682716286094615875254497041170514935009164327146777808398862128480720651815434552190522755808511643552539645327975836459053279046462140719824311363198166104790383503449798570931628938808715299295598452387179497875912596487523547457573334218120369359020180455103463007285717724091364412712885909170573166900613286247553052937488608960764849811421346423761980438301711283607933472106964645852916461674231214415157709621898858696008440260779585013053757274400320417392265197063854596703345866037857365597374285768223247438068547574200251533359372709722595177287235832856559195090388172408595372759150202581416092750325380966249744565605454147437421980180240832206278920331156647433014130083566178089912275622493831562217039361486914519204674003598248421836745206980437310088698900770814537458593985327609510229169981409178558960533130863392531703851195267360577129590428925417571599713559259668451504308245738128682332570278887728647289107552577759447995065859552756772505036598173108753728527556990857124039022442634998175242382732999978490442548608603654759433354170369006169619696911163642512519617721976818193022922928822071198851515466482017362469261699193284768188886479203485352543482531076581617800015454062178210599943679027068748694048932056591304798563278617940383366982274692130871190019467714771489184459515735981920541888540320943828459491985262800693400635157160369596053089527923226486606013563188917347013256510570084853476945363107663851389682088166121623578871149060346678932050168145163826049110027220743266180678523207711854111592347451009937044039739545534757229740306161131573268437265049011511596049673755037576741798989610376064652960702260482535937073224790005310586733009986310691101964858820271767436039098010472175282802801745234178428662014848968425218447014580309839996932404645873183355478800940042210360102066676797954700786655817909359357752507809651028003601539140440574528973568587124648200164947663671691932044114269849585385790061222367476783056418054713239410693185588246455963172795313510011762908881736928001212768876002287490143503442933378356222898541519619903902338102093559997328346621558353825320368318989678220483123412771200584180289632194417873125365516600508022086911333190449787031883148023412566191198557554466229010558941434905867298821739642246626968242950043159058492838976212161457640052686513874302564972120047936398002924842669904326905540400927750478043129691911096082426333750025417881394005645710142646144690438440717855815264127229283768893670436037045256464448789960443227771879078740374399298479724436693885039640409750860049426754635563560332898605860233817653875791783818698028805072926432210061413433331999320999079762077614776647653413249952228659500139268291351974251365165646324090295805988879701123414580329113017013862197590766687500930323694312083413840723713060376625645827524431105857976107895086065898916615308618941055254252436256461982720249029994835749838158758387427023319401717627122132802433096947630572510487852735271835214342396772643104203844770230503350152751702546854833259770476336234122696894170452530826874465237790187718785144205450789873982570614525328576920167693239901104385370888762241576130164152087540047482841154858162641342204202774576486091517657527217619774338164605374913403250632176237260379252871513984897489266609032746629421055937812878522321587076898603589493477648416235631186175069854439422707064319259216408333534750630743694169720155992793645940390260974397094015416473109982451113141948127456740555329441972913603497068015080436779066160779839210126387393752485280787046219825643974964236861889296121950761761977678920123814166824700591383517590713470098038914076521567486488548080215762896799149109222316582803044443001428404828805684109399151259075092172180550052783573349787056114755062653596858387144428345932873140065789194490773247978823980422339752813531552591651175748832415461808794419935638176733968226147669332107387958330912564699463468297903482440264771391898590325354549830289171473549606956762228692680914627677740352431573531593605895479258105399509787843634549773486924682737540336953124228502315619892080002368360087462867026428331337023146440111377895659640525683548060509723001056480587117016054360068807604695438983960547029291494948425766995300486310575306737915384287527319742888053860864385064998306111708582139315903057538419523514020070039982170652622580155861752146978511441412638851728722660705721653973579739955360181242823496258804205075875650800982729858557992677491207426261399018463472971857543264123004988299916693275252576325436531317641585609423378384744842877576364322410690336648313842906936735238179378719758985201772163346919527082775881531919717635358307996698895235659329281833332281886921590601693786103937756608784879888682527630609928063036911311718159770269584395344222981940805632487634694314812672983742084894124963286678110479616900943611052315459368015892126650014456723392316461670175166829979640760785024517930891080880304014118210959854604778032495040724710701895042409161093058036217432797931877106979713754183400362433647296627427750670356819257202613527696054137370915058706636878055594543526657253234372679545120119152341995850612042371823295891245453036839964346492776832982026244730417611939872332199412517337008400998912636747358700883044055311207143377572782077431257785610104346292148923073626087417986342241645272318119762529754018411908084477278336089475211473420027388681366222629708476145917927491753592812090876424164926507877224937194386581658085707839813222349451721864669630037373888681052848694733401094295255213686078905682734769889159679328732672682191556797721328292629677517333406280932517563337249395979897271128817209792574671030003880619469767877816272288202645104747990921474522485290990721495192696702135153389623585083829138742546729500856318255035802110790907801962355540021407741864654973854143662369593629460420690059531076082415393706411406640867150176311674496717994886367533714032880106362901664866475019363035979518744026990729138897882748224852791538095470873213943885673804187607054394076064961119712487571215271554885575164770386555691449096377125825231814406830233683682434884513292501452423410428764117185894398005608902731481654058722894352357251614839401591366916076535392197410745063728331694461351776510160642378285126152964653659656790947570695699131314507012499589151030971842064799084509220602424168039920185608875372277484436561597578715044826788558796588070016739061746180961072662750560525909299745221131349188028026520032206214115709774065770698770149068871978905766191827846193734999045057003022045775910583149759801285269440694286438151644244469811622200875396556773188923477646826955040038876084624987198226909177363988164615669728315208187141282264947144089465286177772427548154323992488037740287756710505497995982267107506023905604124719765304838166562599209325609090287931493970599414935929158685290146921135568515072048709422002039834655355754565666759471501522314395363486632374127171352510408999834329025541727062140666100013854597225796636603541089073189177470724681341532942667364279191082724351773176878976649263048933916607551898315791069318912110572039039471472648601878316019417824944231282093051341988518715229716054514242648804731735634542229453972074519762047793954424809327395179170797076375044578701542715124510066846250731884116609606900389592379110986249269556383359814148046181284800488800959174682948666233633954594224795218516515724585696725059894294760781126440357149255431774447405605454890160389424163044835926348574126826604614180830039268413338575177410225252151276826869843910670292519661233071028793404488629373936743512207066137674853054273716301872442086096878221242848509771815968893896326769937547356702752055215890825142074626060596183670798068754347290703803300916587525411065867610972398347336254957559561882786926174880351849452175962561461957131053366526223976573302886278452500555761466293340291452609681650441589452413163298576083166394867517839157657405255637466035607990518886989510300772804581410043273217106164323481549863461506730201722970303801862987738851333939667261178604740914401628542342982300017231228056675933019668789093351820457673592839624164682029090290184810697510864449474917698324134708454618315356744626778806457705782617050770242616568826818095974763877677605158401299199773721628582732612948322237841445092875349488707932964745970085966558916383257664723830013308753832718635173322939155944966759182255818614097774893193809405883242819061771356613929566257810461156077993070832422675036076783399330768937504578586762750955896552322341292383305901117587896869276753739462012683871390333018311379372651435063392993103491166950116201445264350784122563729721423501038838398562921656027597882043722146925974091748002320554742457842636819278534230162663542694023319804103152069093195336127782248690798151019033247054754063150945164561674159112342781616315920543533899541577018498645271642328110866129875093521751695780301538649643349675368099800015149322418038392455818045330992319562118561470989340784890231270409880124033920826054330653178092910581086282112796066810354916304429737894239885390149509468166673212184162290680871139079232118430105359036781324666394287164135753588923556057059404814858345848921600725234756951810421402382710588264847344280326497968651357798055782412686613998052990244080028553974504841087956270471748538560727643525690545068999973015237886726984754845787811066419651614592030874073313770505798610240873487572046765187534993419515837410759924188948742937532831682821696328482885824092192844858887781593555139631422493145326982322409056809745742606665323038871163415818944617248031738415989614592568864261642079592167910069760343768210905049154364484111605769661807887258647792645912713890844248344095413610153276294309090039945673729925468511757242753468425256551345635602350628424919716664633364748737905047409189405817744519296011890693162194806484076002834561881589332366825366219651467925427876508262121840069586824666482563393887610650515244680345276310232320469147590790153948417893764183194625125500390191572203481012831194315340474536423580901095129060180608300580526220809790599818232061967100496826865018608266114667957522524459885764449832547657980899369077997346106588355645324114749235666291392845162900053217159176461355429501851849532119475979993585783926718070316160859688843174788881342849120672546651501309966597676978303797856810132425238275811775675704012121244668854907854988726111868773914274454487428666192141971137433444305400280861712238877619339134692280911053665481023046661916883541429070799562836387599548330154029159118481551467697209788554442664473267676059011183259408548662241614859364948318277526722807517117950540163627338218827546393119525802055892631606791838593819534753616781303928829419897662204090711401304911220061194580548018317786919828234099167321121008671929605979114113417093283962740735168260289841626293403232188273158450219593286326739371446511969430918859390785422221583910889662174341652316138010604435791377720446888246430679257825824433884913274160507535180287107731464624427302143738311786327732682624540250945231982954748808225143832620500641527692580642974902140224690618928151845567944996895995671964247576023001251975534681959379728349023654872415034912885444998012722630829099173707579009993579961575647334697075269265843833577701967556091860151558823311312161562612789631527334047069331947181509156197615299539725432468357058657281653218856207119510368729325694814668140752278160919230975692247097565697819977147154237060676359693670424890222275769020680375599914007314742317157590586734475287554066235857920369770288547441278948779421283573787495959706498582246605397230839193770338454589235214910363829507720910114030054157961764681916935500760894750699855415084288300065036057335525302503886725385057857664250280880315233852412724926807455637042556076150783626364965336543647502737389654248419458193073094598167364932876152681662596461217103910032764787472410869835296084814701383895256188978275129834288998687811649258943104942070951424378925196386132370359773380195934976575235302324602377638738910683627563472885507964909328079548243767564112460869394002413698767978295986840717764763199037699338087943864431559801624469948566939098917748130890621133629166424893076902637236895153570864278832227523579973523262001705367589500432187471125492777431864877558156784621140449090799821507911956689471890532572985883630598790045024465904271778769480150324178907811882803586802482369785653419233723333785886853311933488848508002634345200564250570451344755670767529080817659117933813717398657005903650998126642814330680828130437174922364216947847953229598300403755368791904429810349270246102229546802834542744249637040849042633890760698109587438217276563410239332963219079652088718729655788594295610637954893272048818316599707264672038948707270331899139962100433536285903395256974261437252172696285993835203562748058298092797445067394652319961061866910496064099383812390294407465090835945908073187481139003649236542400016760040137835921596999757601693769042003040716308419822922743225667960140675539544716480011354343429486009264505418505207274966007311010573587171929266812269596316104133449824673016087244058793751523098084613370811362202584006782720245352544044458640024988717653265390947166473431370173875543393475169007148785122827253779796922481305018519374916282382608796661783425256618444139377036871685895267982332015895448660167863035513993236354702280418226977772382743395829440258147881539993899927901655568991078553541083218351350045462962869578596109458339422948603931409454233135635759203771051802934478830425709457494903383191176820904048906059881911040046369109960980106037584848249050192022123635324576679406208199086394864204580541898981543092434774362191328103381396104760533589432906492508623811010127539448450978083139672850365632714077430130551669173133933355309744538195151489560965604252474928210784932989819703874215907465261309597620366175722042585877993465792007720707184327337614450008609818399330171924187066967497113728834356893843605603788390764998611424012913797975819077153713295462942437684166800581386368699126224856350405672445934725897255587612517126852613689467091180287349327901901893456431958337180918079457430736620753401837372385215900102157549325166698886942638581326176224446467734171704253519033154524258298738609936554171927891918443241041869135525343122807578698006004049298578559323965288746459111993957017765200354453197421731699317770964973457329900204552268466402766973870868469294529320010244114820679229779840014658448596403972895066355909439595659241955953168654747273223032793891750251674065649180598277016302995243528189152425789299709649523299623183346183313869850928837585664321565874924207331167478971549207098523591251182972635326817271414951650042895093789405197078245666880768526634914164955733136555691745766433632255060419405731168039247802223017405650250719017190866602322117916719717667696941170138371521757268914843678988052632136689770241926673672692861034274658569399505527017721436177489261029254913660968774230935728555780071113066774750968304140428750928001901774828696823133423816226936827296394926890837211940040299212372535857771691159153350748533712479234325424437669885698722898615403849772174077371284025614522608427371095906109649115409685284036953809016844175254298522489521121202213464201187625829364861504949502751414685209287090049655478567308673208866840942098264629582281285761480894149701580204188621300340636052367426184698991342357081115761975956229851375213686631657014697491358972793116797992057684117209910122657211110182931743093870615306680340653286244240499629805757636873143822697143330196609493148605010905716472708727869955229929617455379099843865870734938980502323836635509777313928735800768918116010039832778877470442663457248119259006069572974422716306752346684262368026286501012742742086276845128959769187217397611471621278870427855224703749018950688560601291763386078568714754418695721034987439830333388157825885671718944846496497006874853507771383493705943207569697249230073342812430586494071589644831712462839318992469925683824030780105840944713496128309431774705149527750795807703828861364769998373537088660912570584336846147222441581457962386618328563358106195509740304147828762663475772246305890557208233235560182516590613317608741118977795901014219910639892514162048453143805984803885244168891677798514279791311286735009924308609855035472308505957133468164080376295052274150605671162060421630654458729785159716877817038531684229196040999252161022600962198217716421599591518151258168463254786372664830425701623382490541485937244671985130306427126282029499090798125805459833744778303945277789742882121720087983342978486195069678323762153617016204368987082103988075068216985524686252468305504715682800166016629053064983342414329447137965097386103487203627763197622575201814237939044227804275691159764539222134213422289526815320867990632844261697295210305117093161246081606656380307478984629402031837615191260266056677707214319082977219968352508115643954462542321383070748732289091165427356028061058954515113764561737417070346050419156552293710127410213025260743811307858219427293807090109286818437596982002648567633116961420731846096582706945906586120434223579957623606181922547927366486836474801473515502320335990867620981809569296505043872074966830700833473117071846652068771087962215150580763904212547279163714253179717774972680042766927902384292394195915885660055113541306416406835121352593042805686615364078024431603902169015881755585572271166783566406765175377090092548286664978154087374233889308297940567834256242876405784595071356170071665744618777761940151221518186371820546259414491179824360616999940990622096499716167071901317079080441522765109497655953822982073617776974826934226785926250032270418984491688086305210238153969715784568051103373930646499806749350792334679072060754913764373273342686292774015956313243360974418233020196698696957876765155186656642191510282868823330984125714174883104764299893023847893643879273883524155104309394724306179162186165869887417019646904334093826325447931361414536721497342514904322455128922214765026825686602752761973115718261803041605577071112752831168580269021274793357374019385744214633160272795871167695382884113113444801225663191937816791596702482311454588064295868094994765757682218701102529475857427753474242766999529488600339502211542360542603250826732329202539035551652405931830729046259533312949100233187228505122759323143663111254458562264660273885950505389863010742930208772761298963827207746551919797402510134239859715681235543334086900213993130424988914318977891974180620323547956016991199205675676857321991417604661621263689135545557636848568819800669458233866574546530734945519323990815741429280906248753654745400910587064913901294699301562313596345883808387988835639752306898154541941188863762340390323042196105686466438694337093708902134753925913422758453204087108212511799163954711359411569729123711454995498068836034708540544160653282633899747779238462895706284630263875716172803420652696135405252449635109618588251293893982829326955339714585067684212916304934191011914637128220665799733754363730923039107734871983483147704825314554257187818132750728781781959122789524592878011514567102239543078362523749447306863743675426786606701330641054446862586682315785185763788987698233594811627310768576174457506307028065460027870661801808013207274144343373731966323824894731850639635388764967165545112102517977799553711614330495563435391331441688206878541220066598609912540509878907027468558904078609743331814875386259433672342345589023887237993142520036874669272962635525639486908497554752777566608061820539692824539208091412225093154402567991036281813943764323843599102567327365892493634482590338500978573417670895608834681876973798241195153363207396535119971412344907204953992106185852138558540047241707200214337938293616696048555153017087489656526407466761273471939756650825944371337378643557176663970173433193527612685924685965594777477387099533153421153180575005309366076172642955138746838906675510323505507010007667786911256022603202830217443433994576497691253796128462922615817892974873843821242115385685242952893536232301826231156445563037313636978253082060248911368237115749949061939429885904725680465792178203857885901208486886691208093983962957569648260552541727047757068905356930532741219155419928047525408225876114381831473136170780320870494221592243090804596946883463872918644074581852911395449874620507872552828026832163082368226280273018195086011504941105942681766640716644655318665175810641303634572315038558788068897877254285037214832691038005058358879747483003016588417964698030127316886586255676764709812924523043312647364727848955870376015351794974386450875244150428447198516750605501155883630637002466105195707880386262403790123159088369346263686780275277208286872721325073853201840846217269844145628497834797035876029884890474388865601338009356659603752161574879500539871420499779611868934791713138012772966129748871617800484396259051443865008848406430385461895939506238845703503240687148583051748649331172418158427209250496244843320988691429043904722406490259095224577702798021560528252024473685784104966946948545976767268438185173619391805709016941079776083983666998475596088533022851296341492100654364064536787090833288751213084390115630447786601507511398694546677192714978230324877774661187425971747585882262916346681085702687066193570797085659343303817492919599176595824364533019598626098926164050527114837257006606146586675417055372453447709689554768873603796808350263130993285126654082951454815221413692064802328644575798934009395607644649853003598446557092283065910872516947864986810560362074266796775920234670815319549232879121922520778008154188125601258094254358654197372279193091145364068478561765423213595550380492526085913437976142646603025317241149537353602483252816775812677131637661710921297433465739343062666328975557742391810458710696734339757836240235213956638253458490041256140216097698223151351363449144159728868555992026801982608229666122125592544355453207006865521609914005993228727069958472371296233343039725450854866436812386999242629359944217564998758027625554206251390907714724419281982883917558005736754193770616244919823878344414388071528852503610682529447113532729671908577070836399609323450851599783963201581503249280764646185237704996017152065809435520281529403813110092202802712265283714759421320034291595529440667321429196385877941550708434317047093507172588398071483929530069465080000933685975155063743778651752738750174812682636374368233806276274087332077398978042655707379089648687452329675479756290186743947413699999796078216874549538355961550887540453221638365988548035102234255014976117387203733213609452940459352080441923277635848797117474214042088560797211851041777171257544786952350426874887833600529005613759556501939631187381959784354654117619561996923415301337120493321492718751007557790213819425947598217731739007846380970805157750109671431441666636538179780931823113892318694022898734563553361222731347789927836361200217816505731433947394569097441529860595188812215480487042080066416823294287964525778397098620996722089155311803806339283151800623008351549184019496652095126247141986244492367778993719932739766728662297203327018427371236147500350635710352368092756203611658000667368030792258926502284710511705632875987145331195502024186839116385262076385444889085727048911754471960795708852536503267265986858192975319131911897695043484627216506005934016072497310492662797689877421663805731374760670579348108678098273016178398657101530188985616461141906977342584167869631172601150490360638607899375130641193038969942965653730284304782541022338177943824302119003093247442479298953428302733327368558347611331853831452638695770400755034460170974289399909651451485148825458084503081715891509051256459411701457416457948607385984169179911330782599646177067672608252616879625188293932547366936367004796897515367798313420316716665850729053477112894295494366742584198886708584680295641356515524821141212850538808240376744299882454519271084529028801620848364401533890364877703802717117310213297907257473951129347136089731883297965588146395667734756284226295233356069100186499907296249007380196216941808895842489067891554511964090639034435946421558120405990057895128442976778862744073179386628516848544421062969109985663234567736020960857142720262027226895236505304929280364157265713592114855853291187678341595123507060259413942695698163323233622805840324586160551713369796017752319543186169697705510895957920863759646518279335760117731066647248290436670315882304638456305864779210280826841042842837717145345153587926644954071420052594460859457985479939365823109671091621193429092604810692593842161772404421158783870771285264050679423397208307283722243411256958840927875821295043741538249838817457994049214933951383414408762271908055236459081244595125207452210725161597432263390226960342950542064770661756298882318254382284470770251498014558771224362646710810538914087783765796391395871684366796807312058315055957331600571657676839661556277914152748126626476073436964831586669650443249541643082499574667384882363980036842360432064292310464207857319214675546213785354962209312110507095415397611143160942443384708102559228411488335310480022339753053442087199324054483748697451958741207711077716979212478553569873880495097156207048289226294312191473571956849618550782290184536471358945599967322583545044208148588064142329508484449380091829911247579328978625874374803137431220782537846558694310462264353101231472549645646091868359710281147905458834796723416088710391499469415182282869117550923517294696421881916215915984066075198572327998586194871172307262905167151905481607426852974643918031964431299118937525527194057175227823569641474828584556345998955311300484941143832915018771977228033556125548200134652909709795435523499085166161692510221900453007497045319562382130203683800843817712171246169467468158387936457331608672765262463548500645364565384538959200839569843005441594143479166382751324935768922587019486105311737661166992438179784832264698450690416144297179060397468853660118523938600773280869914061199983505543858905754927836179451531925011452463891582012411212380670361843805283476916103346936499149592996224917772994861439544631435704678138555427734932770305301410610150383069546090544170776397028561436685378434558618209633928320642309585011156065543650316914767047956750873418443270677456540102769698581864353413229759945301376305008867907918407541784310936938004323349327690672303827742351293291858351587242945023387366519892597586314387808831034032038995090422722586154556512553169213713332185644384174900619860847395500427888016319311239348190904788722713428375097955082007341257103575331419915420792407438732788487293952524602155773120991397062956514470611039572031943969514405066799925041182979645429032843307428961033336167605066635305238780103457379314510251355625492831092356728980468517614323169816033210678551917950210698021249428475714006772841686624570737174431690374367078536844718640171745922888507375100859304325141548978762723284064598246682829878670168357043738976520667683106077281107917637425480140815751352610614543879801197614124904873447997347887840188646165315033408282865680491037234373971701958068419502057655179600966990396001127062102261263328411886917555000980570185470368189497917433126191387534407417257635305906699797888649830091853246523230715358457147116742575784112108401161752068126896472952156948079053043858355843751328681747841458404286103216755808249216690125197643116687529339436602968811656866937123631192922030774274090677291754778598184203961766779695643587835252289208815650968887730219886363918790900531226161515650404245789538619039827830427484570669233047490036945971564487128273808188968421158938944113842246630655263637879728133782030493396207995032414713845776495428842182934842226550567747026934387347549547495536285939680815370503399705666462092455936838860868258199770002773214900528196191429025102502209249198535745057853738978081010668316605814140653650119443622273597159056530811220609214364067034699075735461485199279239916373938716171853666184494824976192484595729518861840287219834122378104289005730023115727607305369627716488299553667989643454053460154771576081006743385951089391171760334990908728693372506835952328436789708828636439477752041378367236314201273833614123729254139072640314126768543872088498829566533742618663381222081894058028200145236300326244129677337319474056138710273677892950433246153770052821967837562577931253139803578531641681798155034072239039731705082386095545950984733337162595716810159142795205891952546600580198551049604485637478179953235280924270593092362313998857571269916017304440455399294580872260387485016110556074452827297576857388236600119304049673923274909531761044179737783564473866377134712136007364731699548208400161813268524400174053811233554557951985329305530134979316929017184923638210473501056905677758721791127888019531139597382681701255538720381726957455732598547292823436063819120409512637559062591817909611482750897936486334667367178236490504299285625027463221972905707936196195703051157729368026026591809814452752271080432317618691952855582644842573035480978392795610800634501769966284304634908705952810613014437111695244338999207732281088923190081732310263400014211402122418151904909342924092496566361975391489892613995403985209173597623670588989536590605546364888812067170557309314310261937676877472349120623957038309748683695744456380642540409695499360482561594260943573255297115367362504151549635945329526726425970034940269720492212288213640773348707995812695629928886540785272933251254213906858885920050732556844183042231413036495913130195087586346166363579582072619792878429379435989536141012608516447244752209385318919544083238105380858113284248724218023342443284092390769129877036498471902955934736624875547016282626767888456065098664590911366635630463384723928002604737709630456467720346691353852170213794876508837356023357395779297190324307056213820333995517305720948657325010592748416542559059095298528472491578434576183692875475025576910803204376301248029677327582343515761232055852250866216984655017538602683457081993015314826342908828938974898862064264637791822595620146355662426055083756926532589052698790104174726147839316283801866164911290447573447470891264827827794492390054438654195201634903636207489863583359072614757800318915997890267087957622056422543326702253960975117387400211879052532108317949341916645467349184822828359550088051298293791238899388658649579180750275974585162238504540329848749949325793366500591825627981516881689547631608389849886624279090749632628359504593537781798306941212801172827871978547770411826606700512028199682600582534443713384693689063885633673587643653683390420617245664454330680147947467412153842011498677435280259160214874869118157476204028408637778404281386423476968849446287925544995323040527817061710683284246776306886332407983400108078507687634661876967818028260297251585813803652372290692445124921590008557114227804265217690502128296102855945445032358694703659046544239415515291561339803305030137835768127123404138097471264676466928444458980115366720698345202943846306321468299823772016530719287650154607296643246220277431744304382722923446512789938092384027117632058685938852917630911999780286234335795552209177088233211479768965371479518400924756130426979271731243843258660257049046156759930019792057163732112673736665265177741474029815658275009452642283984020638768228384792344424986880167387962931321297724454359770329367807959798605249905549237412681970801192323368397090988722516213834727544053864682959690397901764577384085982858067359656014390618747395603452139481382412679652243770693923422210528266926526713037223213906011126234578673733723548183620171467725333911473867895356725232522505273530737832169653654816600376606905820377559319218638376667598634059714056378872416756822020666596126993241797115603808663951751897887156840075311559273559371408159132472517729579969678743217773292194093375099376994020820270905649795500240459308776618059434108690639527164546696096876296943893930158616285307448475817360381294551916827741709662974682661735088779995135297025831473474184915919237181781374384035543939215844631934965417347921328352609925526563798446260518868616852412679583586244996455946214261912130839577856104684148149616380528678282702798554988471436732451307613254782939654294933037912087195633768755771998771483910850297383420864773977341933535106477567964358531122628003060098212292595994834260074716663597957089801931049751398581392021257234568339754861563662200840506647524659617616807580502394870689762330854894696968475631933443545269542182091554568726271780534414878472601741481833341316445585773821733750512110197219048194577289600266932972180253413613985577695202706765426341449350098388152267149078115850859853899742800399217747414916877446462595647066715307108436574629439672976681379304681594033450652343160268988051424721556039776096230923562638906012020100023033711238724570920296747515616182130764554830876120711113951056601012204726417807271378970312858341513814475294607458684272066213797588515001950077776670847782759222780890503764512948825919070895560672194417011648800819409578708219274014318506412371628305034427986320367025535208778720929901626265167220476446144322240614301653075374481258140803488039445647768790324484910573946970116617106686487484431143448321310446986711029847077644633076147530987513516751761741898461158743622214843151057070726095382569352574975116702613738211400494896824959671441244118511813400566768686565007562797090717522472633874937007025285827084655213825429443367100528900520199691243665512363022727513060447865240662327148162952242459423800452817274538799478270170561810700172397627994139606160002205689620839657623170614210857239597819278672669182944948257300873490540063388619056239897455930557793378840614032923536339962035259510885064341185101619719581586644859744617705089916381481634547468272356578257125401188807305433409286973911209322004730932418766377094201991420686004615664843335787863979056680979655685410423299600096936861975832219691316360974807408747774102094279769468293114689131430269196341696065049973835066329235844287876925921977918000138937604786019144254062314621185818535893827331531825955256678680380555242979207313703682708717660226671309250086173791519648409345779205474801870601562321560293359623971340372296354750140235462547284075769456404753619734540237611726170161403715304076722387840003972888884979506188461184486087659759102017052322918159091739067618501089144971813536514798425912937898334956361642894597607492276961696338115057208681866877772844298834964714968695249999696372338413719190425833249741866485353373718362932365606622400539878293998623953003156398785748870991835201768506670118893085941379359122755154374347651864235786494461744582230796318327813549759447519421844156495382763410516164538562998061917544910384828295518581470650224746721180832485679088969509646996181939058761157541331973875264184856460055579766573803547365999669439814849984442799477348208614648766358590933078719669763848286205928998715205081467510701873631308620232172939068253831790691294447480483436520284514679604247129759189178353490162421940302827721603548466623486685519013752067907498907348231307065006842125464466694260957960041073650526011542241077656931456010585223202178305218682703044149231130390663797509064114412285813157110064538369535199035862121883308778553523569116228087802282311754204748031861736431561089077308023832958500269277837457616192086974387890987940670555857331729155371846922554995129410418875653399472204075718180243382138831081170770018093439234887423894559234391950823281356075146691822424830238774308002607771426778883386966529353491218426376470372685582644576780747652094709819542035336117245037365197649625434158557195770965262947210794919247678239446123499992809074026598667303949651052882061744142711518782546739416975941690173806233621524384300166046131029441110311578541777906330604469640765797406117506289463972739699933174356064108451050686048769869031909013386553775181266020510383605887987517209245855672109228494475221515579814865588068854615752597318878609673896304440455808140495500009065904186106493984017974436774820010426419521946739891012176261962649600980269225872668119679279753794621590682258567057529075858649154195394215662820453829026262418592970133200441662375531165749230304894131595964803655950069188067509746417005580129753968611148604301045476463927669358306645690983412026065163215449356593026751484515448174332475657695088329136494136691772687718072075081773686805004287780050618877707915844389634114007463217710128538987866421370901893407025497463047442481398934893463125234559037527977547900366339133055095401283980433830273231034084860357434828956035453219605697559394652277830582150165286754957902487572235348138603123205343640968062167605262274594811762611163114892378375332562641665818930358970801369571317999555913261137297910886966287227308526698436156513282208475241487198100496174234998835300831755523838132044210768891612490691542569132197725331434744069903880034074230695955141743471118423122473786833020287574144612982112438995762003282848061077379208845364813237828865295578500278455897328746749847431943557718983166591593446813989695053667153217541118167584292129377226117327271312635090166304880992447997848408396256084335481333713111969506063079462584680636570629416966897844001530962974038613708045499559024256849169926598871558825483248241784059529701458232737161653511275183635948228223999602380571052745493701614364519300553857613871356414600951585913700538101780978567579675451960023900783454269692267344263868772938038030720573025340165862079377295773709029629898062784233444821012242414342853330772355441859664201042448149284518647427409927231568143874567210587512861111132905196583713004829415792291508708470465360443227019312175815422005711233739062387140428037168861772244954777422637328281395731692749493775666489030826976205641731551486467724197064546001933807220719998777148441657669785189548422199223888324187847828517723840775599606465304007376994351688895833452135158587845881820412283645178492196061132482159381379441214814134159421488881033345332914372898400786789783167536130083773374061668702101828598258115511508066128743017341449952597973608341832283109874878688168991615318507237512563811492970490751855056455068741212827883238892821270993996879196416351967208740200881734404945468995378445663796914386469699517991339891367089082890405026943961361035066737992239247834661199108569098223338724555777568966248929557452114385136783306720484529201861149327818131106166237768377432127884268505849704016321253057838509171774058685189316246885271822053090376983828236399311876397954399099287925911238240737171210113324268657574493035264329892386056858980659812476358269479781491687115323336406513074000599012354666296020265511070215156036643192330310738540578111224950959350510631562856470367768221074747964568555533472699044057579394222968000144540174438906141603737016829358545488085544843480824360668445928065778429793036728259855892412709036767069712654219408436415063357427262457840369123497904623383867917886290969598969367961429413201539135072926449440036692195611635605224435140644210208684102299921575294794051110655221037006742964396848202725063437700603321548229102220413727176961890448534592176418144397545367837621154173489963308907964420987079531655866648313774432380487829737799330645849131639334796255397014615837946793636412643959221700510869812973811173361139529631252016640688651183364497238819264815940099875379729307482465511449778163854754803675197661403838779308816125493230284559762759559224728851441366318722624515372163431218762118626654466164061019405927515507454130356991945722096218615703417158152715418274666643922359695689170711278815366424009587178134321206769238009693677056899628461670620105263526749639097988054248034065812559823153696567144170753123206827145604173890931023005606424485107941596852442822732566796720715212884540883919854449662668890102772955686282385846935964332106448589107312471992364001765443090390188508765839713189228814138026711558355309277892287270223024540746070045650287841458170397646754468622273879795027543982684283184858197443489359576437270324622522652559655117707333724087316851198750877226546941205524319891327639865763018312960588858634742445868191980920318203605141033100239930567079166425319133360832820466604468479928690955101275423879149263539588678978272600658601941590804126609017393994377457776463351464265070065005706314416056674923848651130345089520060967194492278834385978801243700098865654600575605016908795463649674280782464699515977783630243732511247159217409865859633738720221228691356561318737557416270015624360466583888955702887772820387032095032313287410499462082716177303797570238638626135867513097031169257158295487453069449665994930632550224171386987090668382858321692059716459969588665551830120205267296397623316736686344611815511362129966624819024896731532587894388103112861927141583725215741771359112777615814922060861016092729184399094416467264661206009894940730098198655314602124392602637591805733436862859926927925189296638100861431619670194557886653900966756715413442893663477345512523969750911066086296243721155209059156132218918829381421813799438169652871274366423270229870846913275289643717922085683076834620495780950965685978635338769342489426006980658116133474974325582249556569682917291034269673799640118134652111357649054283693640365937416269697371827224365299646068180961768081176421374919613596409670449019091601161744914188142014095608816932440333241156197820235671650660803277248089903792932259184580329364781684580073757611258084744763822865769672726183978648596556038607580556414515392919846591872914568080588762195324247262081756797361970312013658477418819537808723842046023576478628679658718509711143617923250975095776950345766378088647399592318675499601360061036491765105836850874125863557352789615637069313681698632865567935110989175727263183531597288207875908382537293425491446373552641907469443172097982730483262166168547535513846624335582791580853572958187063132788300492599382744506418889466116385121558040404287331600792332390525148790321901747341975010850344658781993190212213097650475852860497600765086364835579591173935318868625486707631406072733565128486379626926422239415675199098011249037929212607381024502806375094115657317657858075030330565176675068822367520640787797717579625388274348156586318428079947090187996681157528353381980732855079746592847448619725641887391557516196860328212131498604453441916926240669707133426999184334895114950062317548007570281063679119719244396859884902295271031833511686546507179340191316566204377857445523787328224202986197530773004690359926801872537085218819829907748049131930253652702628050881505997008360467143838111100891127627649796053591783891791499108339580503779894093448414422829337443625977373840986818626685024952654049771709178713555736269937943098172356358499326457928666102182267935485715695170190994975583784761875619178675832344439627533539599332674377716579755301445578611977764302255066487106643853559620867215792685489481535295980275521863460789512671445779192358127352829280826479656626394310563862788332625040648292506024516551230966685421064903404646422577397173997501720733642289825575491280057599030590314486413774983333493453880288245485882562724968353722263542245057407420636059164403869873303383152174443821379804448522347036802542380325854283043999704986607014538389913424244468874165584390509490822007713314619681851254666710769710246284007756080290189474833694575255000668772321389668057378531640137728352103571986959302400716963013912191758968750458505048404718076112518230965316920827056054970334138232916057080458743387464309799396829322752571457123049786206881021834867672247684578503246955660339888706048497799500650025595314528898758533013013721122209229908152226709018089994759328673807957207532152452815766367962925252905487982933284127819079937780565073844676590913939155832941195253145703474462764599364881332377769012120860752025334558364047336460810742972066752386423110613216829884414176573868046678606074320937010369899857038273576089247720966572796640230163411355210182767514784347838756141707100335926442625337505636423705106350000214215293536905203530282023789208730033420960030618183738630620250350426679817883602758913902980163458347630844683242164130916064171402456397552509276306612515103918530209017287228676720732028822162997932586259097817726091297878161302652902034298805231633609805114191787471776993326451372904145241061160524550583818640072399624470440280523432468127681912915918874180521822765954927886750478994013842120680447056493046866787934894429857431096595260178400921588690764893167431577172116710109714677665919637259399728841718010365290874416141249781660846919162459169626621803522589419464732791629590343354574937482357466757091527024577527979372678896348436340492466586275449849562234475797675273012248860859135525911745223938632224951978313163928700910238270577548252126437341270314551932399415874165592377145887294809223334335369425780779524063572071680685312167706460359957089439853608220877055413300217609592470057899783830617295357132886924952936512995055872453524890454020198763414135955403898942923445332097999196514604145686323642715692444667998857532350618127895694091829678691359308542451160486710515013986228635883923467937665156058280734731395805321196590791872072391238214035580924468627169402106658214255786639021629545215580466138784457401634555414355889865918011209710027716400370343908973049614187330375772667848987651707530325425857347353040759281645891318631440011467351252884746983476515174661021302921319843693937404885306832802435187687717716212391730137110241131862516466431315660976652225068246685343696400714060209912593805485167903989765345713021250578876538142708098149824070137185242279439286041776165629591750328113669050460877561932417111176690441801398639817561694382635104754340324803046634541669321320954537138873235235200204769653459964593690555101328111123845435763492142088272215792382140249175408814996200619442374358672525864178371582082185654515291956086253638254140162123086305316701214946269526434403293694245441245019176190627761996407172521605549169968296969207802664132229646280937875268779690845323123524918489113313203992644447452070769542970264697443296054242923006513568429901568187107431139165371680260810339499016021830641024257002763928144663129690434500181680579432510156744952401797233215979594214090262772718086443601927946696787107583056509256952977461262433857194176719448800397346945875086736200567895272273264880285389398297184249063108874744697339685957681444491632797297669163110994503726374538948180524555532446099613680883329824580472630505969774372113656050971846840654226972252446865236282927793134475670254600452270757259644216111125931895589128816244984074761674559371518688584000609636882201349737615693562275663421768924054213196524792257890670443057698597630612909729520383461167058987536065150451951308009567882986391507760497214490725295777187410843524073853771208068287773369725977398862729366302849868972817708681660423773049992847037679888271192695557452000405936918791833989157696436653813814931946786269552975272352129549513090397450425220657205668576371040250494525972005907839632527100329712311746354607807750606756812128297005853855594381011783256475494033549776592576231302626823930259636122819550468961305410781430680146916874699208056131780446758908921921525013418524190460991058685407074723809707851232394201431271322907469032884370728527920730954784204141883401546264007683269400631953938301671566960735321577342306980294815309325536077256785120842298955485614097696144524307229510593753803434619717620526537601049850236301923173111719241790385252080405141722900281488547862970216462413355108494115128352118802993203423329738548700058486480567788409336762930814337355581510008099809141640994600440590471212427629478837278878176375822098058790590630486370655512500904306942675672302289868265631066058690770828074279848256320190119692387766716352089455693597773922654432150096526557600442086624557326565995209432987400302916156399499493275700762097723402364374713565171157414506784910448672149757780591576009216781271810065203577775917623927398763370934301557709842015669359894280396683352398778708796524583331564435052391303684846091688054375311822082128222819906841353779974165919830743534772590385415646234198812117389807263000687739768727277948639241173663833849225883392643870668716815660201867211557990457383668563965176883594081226273389727102661666651134846997736816307264342814946398667210530745537362861269447682951426102650320392273603200296973131751245404519083231975901864631976390809959529417034115731957022436470085641421554811442787584936974615466435465044262291014034550923725828493479764098348646438339782723873387342916399018413112944444478436630420165144413284320855577167550801636707381825075134299123597654115674839067145041034370910971635045453507183603137950707190110347740906108555050734398013053406255922878344781703073612240506086914414242295120709921692077965996758015040213449583885526270039150863315805323848700436624049793022371905087820968789866050145671283327992984224574375989722510819823129812394670720921829735246707756144117513418172170210706295116541040113419004578895752544997706676960148298193930398085619293175280749885119054325076195134292186639928674505444654894253689955718299788210509347647098826748581269547320954820877943244514759517383594787423457085878990948844246494845185125775193346853072321333720761539312388060540774792148618999177102118667577142707374192555715720631693043697834149365153251546757290622248132181246544845868919579661316959219113491414933048446694877281726181774442529340052879695154779633049199031597627963440531341959106083180677912503965584281138075679483104173999149239838156953040195278170761395104466943251509280782695320428505165639822594812792989415517211159953329223932508299103749990411933529805448674022097629728224076122265924129525095398144276460806213637734312713963079690567860203321951910448990553443469157973495510467754519031797592688520939936517075350133271076469094075135505445014235404431018712652305447462880714788425583257487866825997917800312484534012612441526483745290562250003158012646978453956821273255010607066973249959100331801956364719360761587244598180447403055769720842385471192635884400737103344068314561557700103255950461413687085536443862636464843110445445558250298497325600277049837456760089723212778436969670856038953578601338938789714676154850136070491113392879472307754985569772584896397071878760182728460191934160143561970631391529437467125175981916692064754347011553877796579504818743904913689225653618597796238186703369734888920488462395113734638695760252055380756856019751278538804914560652449358485627043407593295645103067446037903772924264246120720211768789662283808851366827698251625177633816295367030870746554565864556521580033543322957747517209993278773082127042000953622322008866262899944809996974703130533503312951997228268145337564173662756706366948763473889757390518429384083486790201615386671283675192153242371755101535847984087292780488730954966183988157160892507926193451630921297814950737823132334650615127846851247173077745431845447363692126096037543442586999942622562733388394570408376932430166117966118678348347803562529299534922929151387439555363985950762189121058509830024807140037053987668049720107111570179469352859772738955965166496392128173605383693353268447246608590143892129358309926598481783140344263364259769405760982685452299007562283540181823840443140115773464725979106762337756431894324964168755489774913139241022523511389100101100744099792478534229604210386593134198472378926400728913024464764009161233656525471438451096564567446309934456041220382151424277248689296682555712739794958497219196677530318003612358380318209482985410663628148887496120564889641728397478157412670294916385533646348686193689260695692303019649115019397719824394107937589945962035469859965648593892386561251350773600010067728867629767866284032653480860839826116774872180239935784162345858449469777679221490951055399731191597646116666357334719918046207772341846915401979222741215626678640686972736696343013662397079280302280465043349288956094923940937390466543024527719961971463543949962410123684758234707299546952009224383568092604333199364677344600164827125182564663169824901201292076343339214065860164709895202372115913887202396469247410180077283036489721251917534426253450347370758802534408869556466128194383940745197695627286287210778753583363709169134109420548502114755159222401970804111564252718535774048414295801153066429838914275381536153203049031510097791552630297512967123206199175232080314470493514107241820406074612993074889248945461497750890439406050486833386507124434434905496950623436056162776870921421197110085781627170700852818438047799001418551780484407738336424632493053168357439117679733765134127795361239509690101373610436998726449486485679957272809076788018133145788455498793347761401900200025192989567614043263408831444459810277080386486963903715348127174164755803486964168334933319448482910352823206927038395234704625875712967814403750217993809305113919318097845106753688512689381604789626535202878400878976210874514820961407270058557774261540253403305489525114253201256294174672601592333989192179698112436890217181266338449236957478211318809464391503395085687387839301233430764306578213816998266207980107408123746949438603620928226626572985914261894418371178392837676724083090029916173617638796357298633119580955559879500743062399508492821529786618915077409325858827654373316744373686095390201125969616356514110357837828469918478449770020183151708940536205277309902806085088474967006620194532265953745258346790614011363854189534270085665735009547086679223409281201594501756561019553855344504390413814733266348801290971535769309792057739759567197830454352831502541798541683883894133442921642246376976807680954126141784850400348155737224616499299394729295356585482126757460112952288281133818712977903395554053210680626503656115317710211642140651949748798404792256487538010158738566727226954318599171053975270929347655476640105637507132871737288807528305742537000615902646109493267448599600254291166760613995860129100607159677708713970794590057546966967312478492418075707510443711148381252253742136166027996237588034154526310478042657700769320111294660594295214604537277647851407535083534053009971553433631887699271973230532790731079557266068831484320281049646986654979475010939707458724307664126255143477504342259847540220157227215469306135743612938223409150947556109766715406941825541932214017306370768366410127157116749011155032858316287838144962348076911235440701160436879187181895490221730829095885946384849305799970989672465573064264241559172525890445346614498454210896144066752085446323913735280688867282548684448407108679278652560686314713491347485797444908328136041369765862698527369820340476142187921295437440531718686639184508749698986316011437643346714636025475360287914964850850308588812707625324263712105516476158121982289481771493398805725065051460041671417439619654601419805141083595543529816171699912147297760466202172527410036453422901963481515425138956921100800288748480768883711543019557073216505278501997164813291544064003834059709591635257364040714138286535743905620453937161168504762871485230529583888993157178014296019702843507310879526926747777695635938931888571350645042506438986658346717510558077412142856519488835132697713537366361992570653939956084933689567386452490187001127125138927301738533881657136156800778790208524391455969926916085632875621723443514640717185722498359084826741788619834046732728672511884103368149017028006976669020561690960902082941067572707945539805806797156956865279524509692455412770140505634360276330011876558606843059829950861859241321032572443317050892204509527938165031038959880558378159848920148062009321542812213259258884768837269675184936305310824359645911894190784419122843433414954912861598381246046919662806124943543180693350927796824874074101561445196010865518046060381158937653051956468201184029824148905335860451054383161674455255861044323391155145757401343048115510548688263806249493821201621061521522901269138140917176672870522137738248491603464058350403015751614161360305879733615313293519592143109729633551768675228961381510653078144714596403787478312902444690917208676524477958577793552577163270289123749972414253224475864446150575043438836080119635864430207414289726377313371680450066932073173380860572172302988550607641334997669947281147025492718046000918565217674565340929311571493697558202605816882300330730548692511738472887733169951488289173220693695893408458307274438776961219442024376527308424562355578337142661559820282281485577608718810440039482339343297105868078722460662407868622722244385979660134292432362376832262787705959299904188241859349796162526308171846754441429408481434400530876053779418617366517720556795453105140183622948167367313273039743686270201968847566877941220909622031928830513247967950295566406538771461337854159511820883632415847285389166820552302104067669208970202836586376029558978618709453535042248319858125530000529523714750253811738350728941168881660838589973206515388528037322611009626832598055359164871726059920419805711631187724467687677680241082799321404760253645552766024337853915227014985552456589468931668326123793921059085293385041568798507612993962709768867549836965334283638551992906286230062761886729652540993916329565736691300209664259348291917927275171862982452882023387407851272232568258552902343855983715629190525865683480742028113552312310732691241313086049116553097509115952728061023943555514501323482572269987023251445022922719193280600994321304069586125307012322986913224001454332412117842044678425089435009889088904217496555423575164823562852445059385460576482229303920101767389272998691119617833914202129065451654828200695496649489907007450548481567255614899334922988169495343715797743879519525709392221701531028167916145942307918235254675360165033904108526479165674854726743720793870436380042894381559076706256518470950221446006904643935922539657728456653818865461482508233655375820938974372066487792602769013552889178808412372474782880845972296937512984076059444474642577373835485319068569294968521222559217301995593327853950710644455670736317966086496854455045068233381160240923625345321686793170854426014366220925488745657636929437120712700865349928685685448806832834930589424787370609756915680887654364348876563755454189683937690330417267207932255048989727623531430589265822243168548291830793397311816111713420505793205179478874871745505278016661636192876433395426091310911088040682197714013729873022635861595458911061874652434999384988484717037698596659904383867649824479016900433731122526720597258241889363141796363628334950596608238844882698909124567534568709388303709428298044841775381429726381921532818676133625461234127069153615752495473242570849790486356101944373825596445717364438038170490945575885504426969978549522300380645802374908009796964369434928160696493787231665805766842124192936127040204730062894281335143625835321844837118947391704481173984295881697566887563620102813915035248702276994412808069996202454854340073102851188791538726172585114561049244727007825723467650031396780804328718249776550398196930306721882823034444942330190717476370438910107475168224578767668075399792577488651577835695256479227257453956405151110220518979614898794402519303475336533714447467379046512546477939400953341437834311314386141474506634048910792913412577809402117282247277579854273563051920445435765888319422344441557098010363716216798316304478228435621301746753116379964891338642422247656710818634273687391951343223216060358348227354681249742298774310791812059590171811449502950945160811124719354523977792404477733047103861282143527108384568120564776424910475127016856560107002101602635287434750986768849010668730425782848992624960156838980534479764306568942116655550689558715452658019422681058162938428099261009528557237157757802975668538238484377332775172493628130370349746293620135155235483277607394599482952394414075775977262215216945463805688586877137558477234570641676019402758270388292177325409086204270035552438740066658083703188820411062393268159621800587971280186327798671650630499684593283965712405011243273162237024921166138946423526143287673158893981368839935568841014947170656299815234654496609918599160348923369637198292282569486315705108458320673680784165437387405722521636914002472713768406401481448267278268748830713968566512970272677272548092064087572837372712697178008244937332414413428881681685951084405020711764376626744506539491582803976329406952900043744792035698240425929959805059274323561447332135559124097297887320577829836685096393945117190047947568015565849751725633768452093395101982826060637623674692608937312794245533762170831780721666889110954084831805165748872773317623109600318408862415404464795013584353677835091701514222099949841728349662134151630737775779955618495232775339358928657119884240716088933017041942967442552085855546869371736923278114814064359559276787048392442296773582572088188459380394009303419288199033359937357083242490164537938834047670488038658462917355313736691238447873339878599374460807999258766085559180916973347000875671168116562137777454165845920029340713782327197268585503636696150119369840709763750270895339125402443305726447673104743992886341816334514179218664482202616801809595498396126143485763130605035949536157910086488898083494297276334914357520104768922190466771074754301514087881015501448322076341631011644429077443394153677771975962821400878571471586959210239907354512371298741802493724016947176564597713490585131829933959616689808600365589402383197487597996007333127348551632186115122961614838791327937769043341699993934225030489639766832494921325792126932417418538133206583300909313210154966406277533574049328849767388339887658486188992921717725994350247691199222545993824804220931067054059783686962750665722689112883902867097771126962654564519400479963841504116442719555232996609991850506953037481432763000835228160366013179939068608398620523801972691850644306410038871144154851235726524779534835743441084726438191113932199786355555934053596110216067840485686695128343287521675219612879463845090660183974933502224596313841452662967917630437178791328622978229897082889717604383291906617690157976215912277296691138908781624947706439983878852565280204431862748945327572271338424475671947709372048781373384790561312245954381695991242471112355035144435383213005479473794089530536360492860762049970102896967776013665396787790509251952712820517531293663330092496819651420816917667924441945379794128146866125938872885697043383619332409062322629795602087298427133370893528947031305819606766819588380065362869927764894313128221239696552440491206948814225579470286828147490627594608156812076779764896337937696297008799211838367560765919551877327279425183201968777099913477153525604265013659773993158301637285982187737944683414565699707451771376989601085656127673804770632164507978176190070500071668614570726546598701568488066362919792971844444811508282131071870737841176097527142255734410534358477043882909041646914368735895109282365338479563037452122196152943865056052119692199332584945116744608014540888329247775067738010577666378512450478874315809680133077818160394623748030240768362885283918021213807944054973061629598584442282811138105885031207040594681517029433918845253751271246177976438413134899877422874220201756013094633530199375392814200609639812365488662082077982102921362835374532858882644099986745611666464324338404428025499058760211909039827007284606659862100115055359511401543430001332729993730237527558158990770387078100374131496222487708170713836714919322514917992377945955093392094463118379627294778923531588385190291087644124105116909811580068730844074958590544772075660987699472772165963087663605536610731731275395549876397389823159724227073048737575826308788452671785619691921430035753842451128019343249738486545585667811418920953358705923225581717093380216211057954193569805661381149795688580097494241843442783866863196142183350740733888195103151419848143633103314073487208724737694973335925813022173733863136672893053910358724054632798986807363641674048196967183821456299583107255791766895526914763132949428014367457699534241307394228688212786140663952009571946981818546061718256063334165161306952875277933278106329614193348031270291722924457266371951556316135979142144017894412996076063836216202792052627657604456543548147201895127331460940585825650003981435479380217914978983391684344633498262689399145993030074580492428992630639188627424089915468237759648702800764076903592768406348276438189216757515475269034226222947418887216183715666020111195888999032021075637169813975111227671564788174343321524263795552137927871909287053278963110904987486659310024728687083889080885947778910413983142541205629938191403367920953110340550638753305969000120616506223085387042370199512905684251599157436478330257993112481433245730500593971658159715392247714881020104810231825883964079624832120062141779816124664966209489579741973721294462975387697748543222067673370240646823375382800613608664368399385277385491429636620737865112570880839102433932738435598628893109537306878321565658027010432142804242614579948830690516291386266238166066653858471057677368149454373461331639339657857250777398921819255602753800978911230600293172027704113762458585774851898913708987794917415630583394126186292275677085847232677262764297533062774947002077578639077157203843809522320046226948040608878086665847193669004067895680851521731310865343806910261078585975812770108428647137160410687437977082590022450548286798169192218308153132179630019611380654153017496794174988928174793724675341608514159309882875744514696632824884638760964517588109821048595005218982357711246636153081884969705612934158988787115318041895904834153867070712240912350615178597161595160642065720856946763661388672368829614149832515254653283095006055860954295617340727183956384381708760212615855601318438547965202337249624305025235039097101384760788457026767302628228726111741291724988265120646485498381214623357922030588654332172075320949164161476202445117223423005627982991509012252580437859739783682394700377119309559256239608907174622938127641517384412590568691002577873485027711948675663451073904434195348711167123750708611061178386009383069212145174755925699818724207276647170207789457862327545832234892180920904013355007801670858531336823938494177939692609049265428049093152683300899790062898721873379117239240032241978147702470449958213520036672464449589909542340501625720233546944195728944289672244804915653267919298787225859917139557323786486059734906866170862198031865402271863626863982637603781639338223880029049102256734447373683231858782475103189166161434655200226309667868303757633960173485016294992856764563066058947353901533635381297705163737751671817350453237354945015661124913721899303666306175614254911404785200131158030749004489243532980056916961387283778379135888493078117248303263377008351216588856946319786093126806612247145931894868778484953689373053971705366829207690518536497240635235693262294435729858232787484317701214283238798692528402713021119662916815009597742676350159401620456011721537859589258244647785726296014566888325671010204940273860482155387237440407743294313534192776139422067486870447762515189198845029774137320229890558005211763254916678733873421346746818690321009262018573047745678813874528825280860830917178874243654583065690723707768821916283393112044922284189308617252027115718628549978664302097004388525279636980757039927984107148539782287285817970914984079333565313978470838523662892037603119184428247983758740523793770414380227979842052714400179250311564976962375909353739379998378473159473440892723465496182050499517881268810643783481805412305328956495279460533356558614873034555052370100346554801263144365039626891296464669755162247101947493152610238582999774270613992864744816696028512729039554709208654804280781100868037961626381861991952290009559840571961624607882598861685612250014191114920643981502471845488820801324027455310979713554808352134951316858285592932431818208952097170452435306292830601867555600617741475283742556155995090267506445341613920847926889076966769672426756691418050315793359542239371212836181710161125743418069461992859443094564636387159054587228117363749762389796126227338879839835549889140728881009188718566576259398121524192163200237301761260800331753647877431587090284298696023500229831793560322392095666023575031318775315507882249601943085421374142339850111682242204478999846872530330581431596086761593954288986609482895687161143622115871996646146578290153893714651152582147897999821775776944087008822625408249132072911597892445526352959885811508619353568908500751773273926001748772122318736951631059994063428967874440679248268530473758666273591423552747981149544643834543764530109272632416201817299257445550302215352273411108846704235985074385228956750865298759585499574456251762019953303681335714032610538855963080022275797726054018939712199909156453249616021287555310133106264075434526296419865049737860603083492375797998394748268127512773780669389979611028421850030602290778411837325200612167916889700616939072669853518482511964413033939249265714025845962606879724709950006346587827720713846492938899399008321915318878217279513455627967162444077226885202233630998682737718096020041231624395645989273345218626988997838774126361829255718604261989733771939587160491496564703167108965318080021276812235452372152927469047224374870981743105935586919024035012075859906848790067042252184351536777059583738435858596139961047214048843324067896427392951886060216287420351359894596304119921084119094441375410588461197267737602103951791688041348510855903642076271135669669121957688347695703420175713949948506225849835901656180361153721395538631803611254808084374922686372632330542204118305300603752571882741031858055498738478399348214635317504089111668716451055127103376878624309301982831207701421755706408680819005336899137245869042536400500916361340603289059009801551583729850901668917429669677325307155415126074984779912475480754654962315561797134674307506758704940579603928067539518443355072036627469275954391300799916474994953711043508935770172942765249775770973768872451728234983978453648841418557721863411283121495516374190795773769915045351328216333025664600548191443409341751677386676788392124971655583263235085871318587289586594846480879211013121524704967165760363422401707270973527390921217712507737953685874133861570975899899079932221576556180357206702205092798015103066279096771576035870779786929172890650001853822679410365981528327359075065286304442650193640048413831953320105613373556758950659655250652954396858790148522059570663163997372559324727314614813058963258596868677464664738176914227531345023984465140485518635856614700805712147110017230969688296829103489871672647019897567896484962023434914774717408608771058338020479190705159930502015974257813138477067983089401150848206827363489764196774792367596408045818581287284096596212506778318290407076237271390409815707763087262544110034249353800049322269288434695938736727423332784235669408484909224188831238500329722499890662511567083750431284626098221820160112037521485791365118893082204586821112283811061902958780065421168321561712955166962924029903415876369299658114900139847643945490314817987547322339227083546810275871498347702159120515904078208250968645705058774432515314901907888920663242512627553898287066716575215892612213551214007478029675307121788180832213826452184025394228876514566288491990078300930965892778230841126870260554293113945414166991777834721672972729770125708125238844861083822108239888608584829553500932235245154425987059360891649928684710839347406870194479206783058613333263613193883068383831647978361320089626001364208159719287450632212309471071106986176099538273417518879973930468465257677392349668750844856926517369830812264883381630146120165704733459059234445610914746308170118931036389291428396349214973142764603917215705636199506353658614929088893736189472725462665308807231001034787519401337811949074719400167050394632110569598198506824523307652356718828412334963192030869667888895651550411998664995581485589114273515145214517724038842301246795297493472697850174738366504862768397995411607609283270438162432568476951124078521394141836343219858828321114925242214663558374213838600081882517077434320986810085540775504379348996708769170342000438080288246956791590785448459851043063399014587361854106193983387021404073751341541354516563540860543129473796422603718561625960264224926833511391411474489191241498910925947885548328952753834635517034462435056610213593624538711974253170830045337580624423210255417611620820211589165667786401861056640777374199507643644206461744383961424519861910176899624220553528125524688300188931301239977732386281795726781364073418791091179335969167961779541846000459550259433815288609325084220851593450211221235993606645120194648669412246868979854817892135759564921185293418284687853056798900153665698009142755353102479330017202817727600891801428256121090427590933324397740216854761463391491464586330558781276288293556746052418021873660687477955627718577012627525510377105519395461401144917397294882903799534980612079865594273115604557830134844535311455302003090461941289360736296158517366306171448713994957861986521565084506226935684433683051747736302818080916393309752293982752647411100328333767853163248953691016148834005467238173703244154968044804719216342399183488684170686116015700847463322099124498163962243658757752696317633415122695039528340765191810530158715081133686238523388884626604651850227350238711345431764177130669027025633698884037346623940107814772182864242800119858418356683461028115323048957611834583313378843266627964623111190399288013130217070547648186570234955179591747592253924186849452612603540269920774139735362177633199340002270790737300817376450290609841068282540484465814256751373690561383689276836549193878505857373421679744108010281282959805307104533430492442698461698070996418392220305338615175909694705550917372002165944815509633379598867118718916927064542655963685291350642991179651965414757434809193739458538069187171040229626780925191515586408718385643160812450026938278918454440528307495467000014375785159772541413654100868713658772647068863265512661860154145272289202516248717893051397009375936777357958017683623357871733310599515517391436127667207204253726968579933806317372468950971808745670831408322236421991559839748987620692755991523345955751305039333348400972477418422631407310312252456440771246186972393068861879916792490834320951862934334293870574083262476892572791505031094321379751811504872408906126403492011052720432411911747898630741824974423726100888153774416630792068551316141196912143129813474724020887417037700156531119623515969988464037368492627715114871088693297181164576594554749950822731767556892660374591771745509335759707350345027135581561727087634968868666045489721908082571495377154792700938952055509364723844458651577550588709756613501481647515868008046227107868726130216963723615705475925817473946191301541621778652993923001744326971980845637845396541735593521584866710867826021225188030477840423963260310160550060956663849913635306586143088239289708567485358070655945048284995431424367641070627665760638983152677454818160824624954384664544695096580707210713626478823329342282724685712435588484082903384093990896218616400531204025078398419050261989963223429588155012075779740329589775023968861223709334228181905388059245445259261748604229793099311885516826392630149897581687944631288405054962497369476609920536200314538452752123180091719216987720887271195476739001296300896767972522763132919473758967483428903089196035742459906367859330773791022732717727950500525522318324925437764313921816007600125037107384642320199858273026298220990332846512158320011170501976914551050163813644416119907874253651056831246296936641976455450741488653726869595053474246555755120704161397057253800554492450356324232496812352590692866098407509356881105736488095341775968918344307373601095041481996377567341152982561477993001258174614498516941440520760895267493932899557295842302561247228620925561248576096775361595235853980199185648024690871741526399364169341193068103656987672977223838730130330212554141985146142880206801188675386315293848444862313962733855469127807148311343496959134906320683883732274449469254688595829468023642706989290599000029979561896109807104688078037800640948953327313586047492583976254329820024473106027056444460427087862286884714733239068515367068504246735742170643961961350857294672440895617728909886347383378315713744856500204382071299275473650379944627243284139379704702553243924361576440309133164716767501562996569486310326030917183315830303492437003554913395151318499452824068197411036009301744030406963327990892036146395570950998357463767045382985460932100635568682951952781746712888815386530568430993448988880546637048466107418941205186742627346914888811340988461241948626438649522764290668117021151645591698710890738512467271399261092586719374024123691750349296119522630402909524930957981419781328063884049013897826575703477521874376951866588259549123241034193038955561920987701758537781758138212233371001218458987984935836932387015917847931089211215134472860964854899479079806434464278587290808566919636184613328721354527623745298615481111693954499884569389169017737571428078669033538242560169455793272588721044360324714187982461920099479272992387550914526094847188339329649617678141047411499364281861203237866672447859164549411093621711359488431227308922024363849237665821274998942883951925092546072617724146469217982349050645068945965358517687012927700213466522902258883684211291609261818386003792680831246267617634524604896227810799214729364884267500497069493462314021901835538047221595807083619926577568600046557569502754982585652298058771118374376285347654893798697393498305295867395853405542249829376355344935651683026601007427052285744073162567255683720470793533596302015663984163722319152908238331330449294643957732026042127882370159499300379239825374334146237445592765268346315132446865555690587457020957087288543792797047760187872482994324450792164237175235399871686867664953569436665767624743754901899696112824731482340965034789129222339924255183538130398583778759822306586740505125421064137896584084165272109785529119892267579100504559199370197569329450328730051794250388605323892527455080315093198442230507270475210135446720230279957009899666223335697125266700761562079581788913524655994209847835126950119523825815840345111086187536207375585117774859731828581997437934945018973826625891318797957330627645832065987146856368106702086057545850983940180287923713312329191632428912213910994090978544563447161545290535458693385475011550810200349295026621231053144476419015800725976096839176093486318432429124785006746906459105115381297323100674303521899709137816420021386156645906069588389871609783512678421040967356284986901758929747665311425686233005581345790452846121136562231346498785481731299386961225199020153582882248190562235158152382006277201868679029061783923944011538771311398823879884557484661510434776672644219891541988244245668949787170452809374719279323039808298192986595541274833714062218173609236928847259657128989016737760638016702592349553523719543841993398478040578371330688332738625889379036542138046724416448576600598323403475681258917318171891615855293810168439125929299029176191296947918587403354327556319240598381420314366417189919157687049565863386348034722188871348724674360432588501351637877836147548363028371110243703492195725738723467143882244346420548920939189823443031918989662735212665287926200358313793935477127058504045741735987839192166885728593927294134539540428238496394114945691426779644894900733041046156146670073671156949590987574929931988767369405549015905367090808375611698024001057856662390156305340211967079254904528238156058827050235611727420494611996335403631919540093583536811106189333142129152360442241526099244433890972880149476316820098140882621133679112397652590263506019063485097743218212889108296680026922029979739360193242857692457259103910178878045652159555587994287680225783425722611458693942964709486775617660326681734984090833760326865852089793204210713196258770752787315927232815961011608853972958229519311946578614164042764610932005236538756475476795925431515034957379412903571504157181740149457091460855501044715219965887546349675291691002439240737784935330433374679277847911712385600798437359724899542779664884418091669488219628579326623497978317915402745489149128244236331479186549337651142564459889467802806974155109269512922892640597803817383982743671947490479571273096094320518107684196070834563399128693034560105215001441780279559271862400802524782964676778422258034356322585552238837578413885430254819730449141097989802124143044580793321111118155553519165379181971359412166535017339315109202156014444266010122515381334433285411107626306682626129910441682866454360311133458778724414300441234674482459684482037886441243054435255118699130371446727442681208918539499756144623762552541742036991491864496314817622597186834392437036510625004288766397878681415825089417087091207422840596525567147793826966458957273228346238347034575128725474509457154954918805456443647154199280275112681601809470964714886206740963758407231426743942447279136709210491207570504447571540922336614653508475406803088506689451033001110473820713121681304616282295608961611846784914387764601066039100999406449216169958938091883501345762295339702997997955018662281886329223711276287076104969470072433264789543295977646833071664767602594936319490381503774847045910298429229350819311276922824098603754427595988858539867017118294248195395607490065245910268768336787966644829269481502401916986505159046087117726294780855684917234764175689005199208502064567797820162800245524012553129947208968228251091224934969732398332587166591617722668921643592374225547966516529791554098283407699653055652432540758790763605292520584602263535612372531557017407301812282997226721082096616143806260621156243968793699982212668620560508379162914400258943109755911926830576514894767767530225531344586279928536748122858479469908416592873330196365207543238200029957000412410479753174885310841860642015306854859809115829863151978767793667036146360807955898940647737452127275961147625255123094946808175864089212563001596348987397435555822679363145572271318409879321680770786472791882318198402160847659389961301455565121987177568968587430928230444189215321952760305168825603750688288419334639083683608986271941881225497562975403605132934668064107486088511326941594721109652146536239310832052236836143492602426176093793448976532865678264627754023993849612660119838670050814535919220308429722726158281399077363886988177595818797689568908291712260201088175679370200633629619511616300051964734583441003687335552965830649751243360639268538117432100753926088296214383305078582994075485141082935305771858057707829181747538269764468740701822351855022235292811537580018611440380960325988730557187177427634274859092528539463186151021190014893531173000277770039224120991622164435164191312544420466428806462489993011762834381691483494931580515114968822511912701245333824666166203888367355132395529679715852553055473484091518956302256211185905180440136731117475630871408465507833717413296513662401251610989069628428290426829694421453338473153136885867729147707855013406580999382124271142215278686531766578652472985351733747288859430220266227073592311898312812660785906931004708563259497280488903996083620606609454618683572519144371151963190975653654535494881898150194546386064126458340765167166283178203065672735999035359948993966505986440408189329285910739623666196823017852465182013070808835205416932061067765072713314416741892819322293847156753837364645694637772444226424888163749971937700843893683966930134962880630598450940192505498489995670773549385499516727450639913301563873138381806902505149097680009054229612578666388515369174542209415214455415396893372495628042484954355765221980474225640488552546274494462837189037086966315249113633987459401259130475297601788153101358002996306579431582056836816088183510623434887000085782109096997196552505053835308207354271569367100639672133816154731736016118232769101525356016234082266536229287184654843870185696182019689930143995321355014338971112841079904490314005540065312101892902866430807636716330481918283695542599726432061874770852627063342786134537572155146018783147548072887971111915617648109217479185754477561175233804789456027647660179415658335924406889818822523121527442222679763488400615577006489811811620333077068544034032671704698565679214357315288273053078956342545071508123154636526052379939965354328572316387922029938970214933631031412917615320004080404207446471787484208398427097155684690149561554477936572820025687855114204181200663076969047303480620601459195621755311610251269085268369319445809212305412529732402147802169314009663880219766406472575660109241508299532275837064850561903037092818660827575444555590634168094840731376934819290759396553932211192889783955149413218027719040295864350707998898808592289761954500868407270887015277290267941827468165623448202252068471322809679985303891929121862395304245017905353995677814245572067841683789685488705190931192916441844868953233397869977052843320851765172468284366106648107818646769096756981777066306491536964217720091873527146014227395890670293951102332749565404280779760649304880432743146350806608730555348362493426402205255210230967942221994163702188883536399136034218285719190202574032688832960365646673007417298014248715113740676230912511467134427426456337651828107079001239777094795153632210946181152348788057110813600627854734111076903513662299248188926693605649090530038773562074727319893114135234056611508006834136266209932197733057503426413168349685628428070440530724121175883128078164679278826253364894017172924451239502821218296556554668206859313627564546398568467634815466318053425154629879296912227242881001863479845995873474222533685871682961285862694476030076579713533643575118731678161248527794770228159833186434291250029192098928081421812062641322192052848882804336603665153989530631764662748942649888746262805073207794845698386915888432109606453574175890491161775291945204010473840175697195387457758414249794656032068397239855511804486236007141466757423037768888468357581724031544313508698592710344582396537058138675648882862116041688641511822584915849121998051906046812390467953070901936989461879404906783704451697534576841260718607543727583027168557962192596037758354140963835613306374383363199902163017570855376634131693777816074389029155049613911821131606173155806969210430551100005974170523398778254680953324255539210615060216993052083294318078443328136822182468400793725577950380416770794673108589891423801693863950707658864056829960003801249343197438008553921950457145199996763348820962546822567193935193770083147210015046203373768489861417812698189856753042419976034469253430171548941237915677670855277573482840185492230100469549669350972042328742895537270794635987932632387946509052557750295203486099931432136476380988696585465346703697512141335501133428839503646654159322756048327589848971715373389049139797347562272877301457081763609489347513308133255313351163223512276375384954618081812534020864903303956519344756630595599354415580622760244944739850653246411854850159496220206092913975630707265330131485279550679820968166133989169396278425474443998965751696769943467812086395543001509665649249141786396570001522537593600791280380860165353645731361444781388744565094324833035675810120747841293885307003061556228994835209432923219370601013371472712884560396532652220215797996161810070193578092061778013801630780447868612966546117359102728897604299039754891708847451316178014890596993374336906740037001409411601588094889267004722339992657577749791154030981791177555284292134874291015906058118303546443015445409417116456560611510443148130900635693666112657758486164434900662128221274611733148669662590514214098996176022417651086932351091582509803964422543545297256163984610730733469288980956790408500026166500532705075920059695061011564117776689732890681053789890469375781789839002919355975651028010288350310760716313691665606709552193771138824954259809408336247995573854585071864370140710726859186298901115672271692596189541343036519846205506560370290100188613375648241018989133238722604087477550699765402665074192581019302617626299066756969821416273242940131255105056082937571334306340520499383173378783727849860437796868008888168590793588443336632011689392555641818600881990519617467290124468874013545239505014621293285539902439528770329750831185014585488509016030708223762536605357842663720849847212757752732485541740681437558300546247705004090064882741211831139338239182073355503209477625307275712689524290761629122879447812871175115827729898855589828635442007495053954691401111082411921586579076684739498465820470622185347019198898256543008402645591203022445524436809823004838297167970734730925118700839834304851136106445452256647914232687874491878293823379290155344199749328189547272998532755268319338558397517356905489064083548795250508268838354695356711746115518051864519592521564446170433250765624052054179109227871034096736831063362491358496576473809975677724052697392213596781489301994906743392358911312304002511674611418730557296554713495875891980340672958417547200842281390006677826625113956183291639134825382924804263669123977194644295495733510382774700791268087844861616190216026242945758144576213866711634392489477071566262436874837319536476078554199357317873067605008496709396971124375658001898684994335517199142035738671274340951501885955999981607390764056458743665423852542047117081692968062903895359982049548905466877774162919747526317605896865886370915784283902124568913680336433081589794718172219942231246562751886196482045190789997597361253425730599734144555805133431377707882894841437413291833176532856155752231167056401095254556923358034352173499684463838966253637167432406631833588849242671073225061369048618500635758211687149424481164533556102029462165838278944051049079500045687885240957319614389637958237876080486596503749051229410828145791395543097599285139372402007717581681498785159152957498543554978745822195152424632812945170455176768401379917963877899185458993205993251089707089655736687175971892028902348481985931881535532152322743860492686731934459683163219492866181709334004944127001776189625622915288942841711378788094332810033558744534484071923419451200879996953436717529682035947115895477849370532020474186879349314269554054542240490076669076474218495966940153257225499261877754724796866113048935989499647963447696770910181486398759616278806255414992813578756434899362846896719581749804304352487388717404790314989181073553333824495728806474862465486843747441998651211698971601249845259682658244170798017048574426019266983677670307111166676113188966233648242019079629894729421182007496804895805484954425525502669463684729803741639099343614833957913210091713805244148855900333560668178880736998992088873076864454696343399795886536258672772297969705182586590282364658322620171141605888688938652056737515481236866535031267021701027977073419092820184219264168659008526782980831310304431621331911041123654493974402807721912133475255410164005721347989249377038270040450580355761244759586243240502701892586020729365964339366182008832551445522272923051206898027422730415962250085096833240897917225517048418106005580903861191833947593811789180854481947025697098385983871060893378464807218120161103499248721310787968623935259630245512037549492560645415289693253572455918599614925598265591611342058705032986010201397376509736926039786116299091131393547950849427063576092037790112446724730483993316954293851449179794221403556272626426897884877942485447715026517787917686180720544377970286457982141780309460614124603575851785148355253660747309670024154975540752933095071374489609239736757397694769149595082394537293139394038400315175513588568636972652001345031923692866218509788875811626831400225507423225081245448325192290721238252418000064698554939087875308134505311850269297968406824567821124660845670175010839540511233241836861221145789771240974951148528807284448503553646576137093204638775358443973233091081290915264185585626687724833178188370465653156462286389846943429330165676949679581561410439634132894786335760278924273253811344022013628241982987376322993756952741687333142688099428479685495014629274058284180080208758628315741226833810458991127759860465608169303955596263750982465572800523094520421462681395345234935347166187710090900962901188126552425881981471305338632669351981085913383654501420198928183610682568823030839382882197153239249144900960476788141875612631362010863789080551630828409695448580812710681365951387311669112828811308805108727708530964140219508876987444214430629919515897681526696128630367943358440280131328913155983210249029952835957778582026305291829872733980334594742180976908524104359991356078616210731814718646825741076187813469601745921575982309098506898694566918972925685177810392000727567409921739816695195954631820986555746454199498106646728147473118464771108710670474642768049299828157063105219937470709599826400175410854001692157014898280610203383035714929043209193441445719982331408801332304146051062168718146222468831412221012693918530689297993968427264641166710523172550345382550493850755546743862610047105352600068648261338184811163699916063461446063368793650387103674860453034828651634006176731104244620275373497620058076526062416457311698675795185396648622258576580169771054484396944038657516784122917368592695720705571596895421601763992631678858783698885906619385981605549264503054034097445469559814035791981912652822247355560801562690101130963660441775660949248755229108062960190049606840468975872913393798032718281681780328933224340403609651451009372619663662784469262493644238752744273910157346677162732786612526564500312822178867285778687697462979334058941794991474011555651103787736065101916367565699774095371328742678596548801845114900973172945166334650557198563912539809740111553821246890099089338265314042308686858346232474889514953990435883605868172250515323109937581517010780439432433589960073061524358953207619099362256193495978967734225118453083589033954678447054873008582236355074085849799501840087400387375805096435697939198261942959361307974587660905219255102614303687737805746170574853441079363528463809911552517282489765957648857217918428562625942393992416622990066671089464173106106384771292014825038982746843797748723222322899847642409233539618840878511083894851840049289848238015690495541600317583404666779086772939067964526603040567542570561472380877022914653200371523837980008202271659489980585874566709728125191772378746102227757273311941655447829161961756811570400333535808840207772173204283047180860323496647229529879258915847692661430117028027222044824410015687621856183538995477337556588573107412865702814891490283110896900824949070865837754817969070581392097356645834268094811798261223299644936128511966851199829916325136871871504978401184759829126570122148903438637431169737931377994188252057143626106075479827050017357724053007511640824902510018489020049133156124063335686815878940372352348414421045078388588038734532237239989946606202359280192821680068302167638169313585515317580657008480809009594923067516020276119724779581969056862002913873059274590496993266037152286434737978692820820366166858539896489107173777515716506386334693113562038944394209785257968599448588035437623431783979092847030811964624267959004844196648107221301918976498337456233619605511653926546248986881758810601425281889460299895382369486425760098569015192486645512845465470632353268138340350156715459783730892968379724762840903251027667895102743306291527797757016625647184424187154842368442435121442499949821256236044745744055020471306270484756403532464776929437634772386269733622162719366482852636034218949417022435742396218641602227836646345953863189567180665033576219420230384243562469552015524572774224008561554529899105253912292550071497232889508853350745077044904449118124230858226717665769577737539270472883351718822874425282257081762619458645720552889143078728636519549189128810961142033058460362490597078848796831903384996495970357330812318175448245716374709554633793240840496161738934119846220989391730553660032484204794360781792383709528429446305202503259287157038395448562798283463070184702187242771894178277861922677001069170455020311103010984274259982129658185758640605164442928174302379633203706243171592067597434708110933481059922435116860029115836954932653903225040189870346483345137149020083619464024168728271402986411172535483877502742875774734822718184649645663001391363668052594796251237811619565853264483740803215819240280338944665379615867503187081514384383473211273613456835158599504451900549748077477783358266807937114271777169829357846363438085244462941992041839017412347071895593763656301746861597400515233228486294607000241246546842486426404067156582184257443708788321297042095507665846963843676554947742281635458536721451286981154407341453905797560746652525121578487338304979224433944003122728268393436776633115767481794869049760703137215570765659830710941271748863881967847827200517285917560286442681014967183162875297875379924015081314611307149165557106473590972975756017210015994972053012455370014087679945716272751368014399304618616609164128198910167235679825463254604261749969756772293629039427132286556284851400702269028991200009677112511888707412368863306113747754200760531045343803301044017806538296266523122650987677940046887995181587439673030535416689534558852468472511277154166574486879734783028748758018705356069764012360755327476648073120633897724236362554635696920911935352320155051556699199655906736132373837408480903064700094819916324261928227038441044057960872830619060498485071809193431178850449609549177071640243756235674875831731274146749179991072464135010376284687604462790713945260385873444047471556527279634038011683500577058515575943576120705426512535274431417458098236987862923253193249828271782338177577300289684998909502341635032334744401258942998653318576885663859087641977907702572456825931497105324224757968526429058977725877392596036290110927175165410110886467908285540900158297677653189109184080076837736751527844586414890108643200265674634295874320240899324820239636957028982037213251972874338174852374563710787498933108187602396652045682888202129766230210226425343503937060819619683293101745060508190568579336248093731957785805522917641106234533944221075522972891613003424559326143057548715594887842288717366298910608950080397427802236017488767226302730347594108236918965142953750430548385032335775010538326282872264921755676874981564012501458267103811253801709040567615681099341100975566420640883412716114032619415298134383180472071723151903931120382452238588098967280053378197151804752143167348771654854507271156286559197450532609970826955610343712265277997120352817828572215669919897270110202699511598945083200741517264900525272685900123128458634168093801619283092969516747010164897493652008235415652086753733426785578346351352338456207804435513639298041882321951451601883264936378684208543895307269428807874202476460360074109182419399917825337288369350133673947898250224274087956405152298003234522260583738190700260870278099255678574717425161710057074286923665136405283575905350566619369880271792481832893143930280828934890162551494507087704098708432217926598225329700131790817512867046616562079068314364730151005083011025313774557633804660560483602849497894480953043200556753976708195151657495705811069378055501473971572006352691892927921224552200155353161391050082462177796086210058757560036905539683909590792178996130761745495771397020247484667203662263380909192393739232179166828883554349091746017387813522907172942398080390448684482538655380563318557997278344152027451417176105714045576991753496242741832350110635006037981809588837698716117511514687231949114065323710035539858460694910176208371916997237552818559358671221268224327887916248914628360873813871768490937648986333997916040040205032918067936373926017485179158246478188565591670745251193006782913695517381887427549237105999782012963810181624685359045261364626351948225326557206652366516655506692380218013058648135176927416167999053943016931542488315231239309318007842308973184036758687974294748088400641846272651535595192948784231806767657073727108953772272692888186246916872651914854117440961818181468170270798489350884452641322777476295334591746246125402268588432927832117016723264406514524858433142605281193578425166556208655044946867828170867856421887557736765106707151345240655199945089646101159429461067381583277900646122519364443828483204171913560431164421954129146812454122642786121856384402758445774018571287547951247353864869536135478341610117114152357066749602271136496771398669767719990934831505509806180900711577959609987041337929669114033661043269886145898736290801448603575417727181770864454973993782104084737726824354983992397797140040987358418555575883611955046939744036554464040760935959330299714385613805932346520497869502849791797080801411033831751130211509528153177717913300990134496665384024277309552015163114957062063079945271840805489762068816908008207748872300338419447413059409528764301223029889503106860367379177828927153610538185035631391233208633600646022437901543169235742598863964791003146182772656293074692460761751022488428023024426596692846695454199830694647683155692754573125595577321695502824840845037410900178722708410997651335708625543756439408157691445150974357226416623116212884519257807423954928287973674581801261422151238075102202550176829940839192096084849460783191166830773266439440734013459040698407929371667786198795051061149066548241050699251736788310740772823072117846344727696092804641607817311654114799932622178430805906223680115556239741696825411175093231427521993445794927938935351614533553368511968822519963116820065271250942828037913956971755705093540676472640220495220451263773668440221988891077675074528519168004367535512228263831691980595617863146004702642748965024062497345353273041430024917407803232620655365294518223445493302177563323880736288131312002408188550347171238088896748196236139026545303184936332638440102637194828289630996534490581057780809242707080901397893671213238329291638810917467823043978826805913475609790735710223730109619864308571993579537898478377160746176806065181682737871606033321596848960068855539931453407968889893949192940904247261768234264345256762839744216836597472168341585055259351605032893656583743036952496815187955922630212152350431945962051500195870589044834386650921932329863024490561909686700369532866930135439669384870803627073690795143390897709387536605425923285461789693125775171806292102516595809341908758521829435556084155009988924331506534364565021449175797231404604160039948618947544032003145644868453073404485740971784175813016689997401299648406735787809932993569459442397265564765574414806434541866867481580149671858524865786959960177343095429594325661902705615845128617240304968522115247428861376660617450827976193433154497153739816820651207830326972880164235268239321043287983132206261068651213321880248170861281039640112898815332922646653188922187433000802973444717095545372375190694327651980257746605857296364630396375344823899853552814326329848670135444601730374412117796241271465930149856396409284017953557723651667360561047357880477202122024670197732071760845958325231357517453892585965840143507044800751974806172735524975981051258653202788223861199426066030266320679594041210032649474638356661477559745570082163645834634909986407442884433535247823833165402877442333333268519799496098137032404068607614052912521760736778524506294467679588067398007306298018726030361802120923355927098680257250681739986014030656914476901350239069909445412081656726149038396982699869287311943280353195654055297441490382031953678549922168415535969788607318046329982998012777065512814639802252977004257623201226827631783441096977522232673318234351511188555465451901249569849701198725206338190465274513510013255994956066692119142627793539853248236766150614107253872043044602051719620608823271271362287298782257478494301738280432824720322291885693203370778498952720596350973945050499306298564869496175138026345793483450222121458500994264452852537965218684698640812285333656850481154866087490351497279401317905068044249861353413001747522539998564732858751747127884933318050621294130304123286403236689804647865733004952543964202031338605223922128860102868314629252997580210160443053802646516407023436473175882972830965351382605721985421972688633179281360155940139735175259384699580624215256073786679856738579177629493920139094938137144563421038242236141435827519305337364904553727358691560873815844369092331269148564521177875192680308886519601592269680907392784697830173888595427533294288984357779169402959968754646531914014051090271559234031180584650209014981782824160645701289863626706928144702195556180190911354515865852568965837449841945725309382728161802623447936615526325189349349783011614148175939375834281523287512906030420297973639678011659929741138430851460071055158996596657226753874902464592022005947039039294526197795508376485454051257188595933768060916293132420626460782256477984807925617659779679895888512505952714844295309856114926900519213426622887770144309353640790920165732073926973671321232101687064339433264756799273831220483731340681147852417011764849696710593894646108576869162003994811990245222668166790195423710410430845533153314595347455852191362883891353929436302238199739959406664948176596236922830960944598015333031344628311000598036903326054706240340490663025461125220162090711280416552447106241037620649631275169052619543602496141740016476858417398080535476284837687678320457748442419156937057526357689536977863393959504017737028448154439108086189039867895413585731823291467118925390997336426312354809294665188810904083009360277756014534157198290497319563885888357319199028398589682113655724008149910488040016210648178427094126245944938102432007247441756698655288636446389335162819498151822043930942850208756635997972368817257327797669794470331997381296713527893105982383157251470312058370140569921733200984949770077906413797233454908614268393891178429008628783606273667651442807786208527913302421761500400078675436672516717724309324843442164748151395649902234833206696983264392567367891262457909176820013378295989356573858924762553613096025338696155036683412016407042180782623776658539393063922043281617973397074777949038407282614651763952256946142267991083436558186100214996864412226031199237591775871929530433109672570319152076813521816025840916728320965899025931314219629681460015816405438369859191093575879500418983806951078391372902327739188150401321975319861446005745776992290876658933979029419644054053068045696653810147607903794001413471056062887302720917768524333663843992462493442432149496115774727606953061566764013069772637951904125876974315558908725754181770057195634779618080368735712798556482443156880271152118048598288161028743371602333841593440281371027675838597848435040274484908062236165639945917736332360786152106945012298644207864311983757601171039584680417255821441543442920306486900165451539240754158082838005138161709124068299920569224736813200232718439911392640167162207709069491604229196769382252281706691991538124899705550844613855491659794733565815120908585500046022550015840732577678580556930045587506963171193003795325672677566279623153666232553907890997634152978527154942054065869143804917952584445722483614063231564019301459233102987185443156491484855344120175017574485674025874373347933134015542165185019856700062617829712988329772109556984608737692594215696382247803892426777313812345761896702525277253395968392034518500730313801126639324073932748946145666876840860234884523329159224074130666305452181282083011436788167137956516996404085995964945837793157360512265404854687413444380760712898184785895673682629242256276755252124689885217025599539400536116411649073046978834166588320030936089156197508964591513877562812446600986575698213353227280676910889352864324195335015519209755125235981303455713249216948328999818096519026712982953521317490505143938200738738659569447366767121772229450997254732693191431678500504549400501390666232120861672201325304553821991478603056172947431467914443845103214731132457761572003903830340263250012916062986572862239285736084539376951083821184152023021060368560137784019960591031110935890521731308156000174576886417180965064258245113352332307503508730431846862099179646692136082795540382161651811266112983436707028279265788842137597697875546584997794837193426561144096133682726691057465827583134015782528045548603215024943216496478671740257520361512002299782264273529484716276404096535226642683304365167883295911744905067686009226731257472169351779843788967519590204387277653290031849277082981279650399901009237558727906452596719906964796802015065457435129355805505971139628578950190218243389645143220915622191431996999041206859469878335110147894972925460367652950496131182769799077575660749721178334553227938180863588886170147498614479851563164353792857687003080026968700665791486411262665159934431227728303086420244304290274776388364386901581333841486752172988913349394608263041948450133281381218971970188790291946716419572608149755665542336227739359627426490581680223463460966651166902363228496272912971763840756076232254959413027076435765551596127548344949526437024105034131245571539381246750697383633922489516353922161510623531485978102837459346992599675057874786231362341569083166771462288000370061001013345453504513506175589819677654521908755477667841925621731860445807636521601354061489386361376582369264110320814305752408881894567203481808370297660977878209961875126010445977456713909100891331087920957991680995833643440660263301911498070479487371784882121215671239773252620348819918597124167246527764522934690409697528713890017750134612088658056003937366864417459282799276892925630641943201931343070087935825643353698786650893983929686622441878469917471618955567582648093255270614321776712602836011430105751950027378745187443028787593554255335577798262231452095898275324601762729873115321624103473853829909521902530436243309945340255736668138323967796939144534200237656540776652602706367422801190524950604932786603476118570633275455515594536314756876904984863199697894628440071046364500779586901827557674726222000126497494873469914473162432208462150614259073747189901150820259714872945020772233739102312143518618613102928055961014129116584223576827867536699079454712032711584231147825772661864095112821277461421193845345536704715415654137212959937816533222469513714401001640914136830285990002448954732767106448650803934711588427519336767763537074007251464599599839433677548561801967855918952865421878010732616821573220992111170496114512239257823931941389991631917441306376645778649365152369890779952883595189351522172519981892852750050333736591287640118443218777180340987136651985212660006289516593353764095425946311017852880090475453970762327284546480951598714269847477884113234811005807980735045206923078262513140184171210623666274857248395609750464607250500505079395573445875083788245674366721750971003624956847257281023511081565921559093661439617616140878521708469409065296874668855625874275034247105223762092948096176592150148602698319843961521387975659607679484361442234769124572163160441336404861810154751065681520934288706333044272969376557335951760633169882284391079538809654770012447940784422878270993212475039562842202730707003654438754279556800597854707138690097155913401526894223655714596108973577276952989887724744680131762899383700919436124364988806303449453712251880467889463440588021443817906977335438062584759566331737285651084557135190522074140318291736983540984710514834994157388169195372400683866780236614735036636265284737342890522992797353834540014924909931023372358672087798173432054014739605598388781795609622143750490786974369763771746921547353716532744585898831263805053357417059392103891063315391287347502258378826241734903783737592070889169766657389889193521947035649443429956878161833089866992135296808027784959772929679851143537757152790262603918669908840000659425116202462843989276531176803634371842340180610866168246952059815107214483347803394736048252734978442788777112665159048884042832393830466661467948835705539375299977119437729248648952816181319696507192045465658909531243794780329450838994720754947629100388450488055307908353323540901958106579616864463255267848899738597631185379563755258873562854271350262302233975784812701681220822455643372604582320801679790421871330647540822656293560548478617143778636859776458232602810883430199275403853351127760332048649877703858734442736577326133062675779511662025962549890387194251094525062466980062734561512235983219470140635752596348827362786981590558064680397546004392470609134478016575060805775416432832611664991263087600564031700003361608911693598118567872867618837754418271354425447340568017129995511747516481574858707443813570290858652182775532488591786682014829747733666355198685796579907628313972741753749966091815197868723787064106982484274598735441035890846004188866089900300644193397543546087432201410842001890527476124915602658555019482710294311318416234587922560372846189011123744126250378161932402514486592078347720204656887920388557438730621336195609638392291018369821941348302727692538318190846207767478370708418595663507331013686806035021301886949038063463664667208613094634902074259496739900335731422484267927394620126518025585925355524802753062705332377613690832158837989383770041088036191181497473619642652508141421163241270633794541299654888578757109469981784691573646887246983574813872871969017731851893697552604664288801079512642547506970142221507391717029925190603903162933056369945195790566207983351558737988708696183871795497542140848054840724382416774921029111266236976138323042036759389061664088682815623255753221711342294950168384799624688212738237898318038603800495759526948967395931270557024993258042312427342547030744488677892329934359358003189938000455017328341230175649759524143510523206594238516821009458931175063663104958549933085482369500889446359669746852241050835687296049739970598084871008469563302920510772517706098538472419996861530556450776100234082920123734431640100643406411671686226806116012771407025288564045348358123424997946798817185627469270129931378328875577073228197612492327794346495531790611936483859080079788389890928640293996685156127336299010202868303500333707685549460456656272227503622775234796799479315636775602635948565207445840270507367250275979139439060260751793651775443983276817891929919177630632311924288336314199830058558012625878791717660518668498367393804436717055090663877045451970503594627191926034367143355636368491643771281254547565694636485035925944116259806034303087990047998450627562758419954784094320144952650102512821227739549645274973830950158093465449553058869320832443151751089222304488692801631804165210013123243528734261111357882121090910763594534219718529373433889332593392162569126435934913696270188495460740593487482912221320380932553900506722630433952752406077298333017757520168831772569104651523961457040061790944885622196231333990635178267153460049921949357705608267532008187316579311579996200789280126558960352884081775387445956469041160012224895479009570578073037922991783357825136408301207598289893442939938169432410631510983555391350779050050907787923997068928911744508759230483923867355339111608308476892309507292801435774707392913843128626402628476860797485076561011774580682028665482980759137848831372958463571801348226831064206124221243610296400102064958028746837106388941131814332544665264232198655771972393590904326892752415740258860217327547931911491100421280032132680280485281941131185944485595569293259734023073191037781225071550537492317738445245190464729422328408118114229931686626938223319888858008609970327142248083363146621267104412693572343123861775252288962191690137066612356215976805079043373107145567999996034562080875710599500952433612802145550152016829297119897759212746384939170533081648338541178412343653197457755620695352062020832548205908869400845420537625211436384572192807956196687768796076433355662041839291051052438162076486098284563897669172712661562870680356617356356795855834999455574892820428561814236445317650579278369682794594615072589575008576077097059196941493362187047548231092180231575649274037122922195394979474433103625026361227154583970350903977989435769262954936177094720267990371571263233461004705959113371888552598144593836320224634377278842517518370699220774179090710292110689370673217910976389215948477706063737666623664855106134632084144242863121667929839961874755825829635641355310168236887024083370924736508969350531334468402007370429886947971354957797429971834159380414940869187691268545985764599087855368624732776354596431594928645943196370806293328072980652383477386888083523646450706888580729077449316697519449398860578403044774317303153482406532497347385408824694379579676251862948738781342824846450144783224967252782611512759620197688971034695219415287954806935393710131200187315604258450354847206087577219368641516073429552898524888928444123435669485419678765558709157009628615362529016682614664908088057281553022168234346795135990436354367948026673306045491453401053660773818376370154371110111929267063428190702298459635610455067549908421189937280882389683301597419467674923836062549094377495568191961494577907963750856291520746700842030006365833547354318600373992082895787561061867043299019375447668751359121584751460302873981724973458528160044771687725705660807757403684350259124338055150420666535800321998042305228923675519763236484293155823954115273716262581573163872275420577633010578664019024906146095338662506251616469393620701226767629994403985106020457861728587282116691511323021629884115841552920796768055999822999301776024331420846632988300078449153729868900975996770241816394235948073196796243715410860136821753080220836069100001388175925701451710237863180291684644873855605763491330183520338686919727639668772014989135802141109826815835503780504157337757760755317920861909273551278056524901658500709790490816047877894105838555438897407064934678858692961379124967016002720616681954514948732084005510840712689679326821619649932558666518817333348941258896331617723613781805706537026351888000082555119111800854587120831399105418306489982677718395480038807745981380233213463688776411809572293032003326292740152520357784788629482216134547691490085685731016735366059741121333120664227755076934545730294977834300405300552981192111888543004281213282350307332081569508756660544937386456877751515800880704312511300560387202398498168623894932934412610500709413929662933471364810368084741015746900882146161907984076482270488075799130619240060952962109907548851864463782712155924834302360161420673510043652791797652143918348034754670523636515963360970048209269056028005330676419256009905175027654172613688740299945855540284604041034950788098947721898636945612903138532960565669721369171389350276770620313548772232283235025166519228987115019034627613920814627011995707960115558639938543795750848883594180833276263088807094143869708692938984022936195220871308338209013173010333714655806258310270122063136189130800615815800791886224208907518131264759500028997900645068346143198949236176737211305222886347518669165336913479789052517592033712545657150220894365733232882886489527164820319602120954446599938219567199407235398769949037451104342890468483306430265589890755985970202582303165050161166296418372406346059558109452834909355070493726900014818081812764640440388264861052237869186216987981055587440939578108342182362905514256873231462559308624715685044333808839967698165476973457620883947202505011422668895699178896906498681155970739376924906575204453092114464077585408431921005397127807053833954145215280033086200157744350819862074371596061901129759008413576253277779759345557814122472081845979604345494246707843444614060758288640977698286864574930932449935411661434468200193460222260422435415318503581553904446843065162221836592080793105857968984855828020600976268222027884187371079205592180147557009881105784724946136726549117788620188662886821553067125110009057491122863430514287889140087589785411248242068544579269442997145571234744100226028568349259542316371206623089704525566334908878227122313728026475089328030197737588487178202756238894519299359760524582087531862627734326713536358947523051448464500046437347512081094928322176481075172656971672660908215109031792070208333488678775784357707343487221276347374577023224617708993751096503473692822432478695168904312736010247390352299577201192431381746899758344038748168835655456173978372140157186714668978845704701360661047990791414341270650657500416473162876982023946948643632115937280857784822887778121314963385507946561393432447044701393102823784319383581571250242643901091128707386643922086884312350512310961711633225919029061982866283678640179776656926999767385839746373505585190214284888633861893362923979565186483113224899807864304037428417702989160162258593505099980003311956750454916127417996397967077313559474246469371864985234900143508605266291237155560022823388377431423780279610880793632143556546130558158494573129315519368882252197876366553187542659229840804242432705230256820750055878024570607388065672223679426258643143427705629629182409437685186572491168668263893783464774169301613816195044294310589719291093640610120539111920905279429841292731025966671732011971330827291320192633218367689443420682386117765381360981362722194049093125437014292130030615065343545185254516560233759138204645714696815518402637554222673818400110018884932021564468066495744245010060088096056851811900482709398547399813696867999610788267161882140089977901049183704035921413891579345688234054150844296360914442180990695127724222924689571994612188240663283539106570100283072731579611902395711701431914587363438173157641150638049313978988621529155430854639217907258148943081663780563317986936978493248707845303499842522871714736185229112261574773110382191182323735075511970568016365884592560801399257604181725821183171842177983314965412703135767644636282794262792888799055270213671547309573900691028116421945449798601634724144234870406628541968175144045229202848721913703633500156413534308686657476502765458358992132958156388164623582581313523930685315623434473302548894570473916057517222417956758932118236748673963324657493487287357064494572592834370690428574011139176356878063615079527580220079693676420413283355312507288182399876194549559953999292592568998679933058840556600976200162821338632726791310626148701495343176610606591579861649069469654247921542423427079146738115744801047848392783371544580031288222799262722749524455116602260816267541274051871492548095655181530260606826226908295976780295466044623709844302173364958426914600342388167002693316628373920053398575642067987835475856029894960654586245422181919817451989524140007363345890801438303976016427686321823706422083609189402878948690642836544496312946596148865786434625365739624806359525174292486937510570530899328513771611088489169575091247148895671674788828577313686360739616623417345453211546972053111758208583887548602692569810047048765143953177281668083142462289294835559553583489335564212665981599852433911493342746257829194741041458549917634129971404737872434614876910863706469975693353203188945339579514705779382019533026664737497438481362442462814698812333912698862949274973796286069041615440085969147744933057492936696341171208180034366941133716146267201184787453684747325254589333672219413228338134011262467863991158075575623094415471723506113773508490568085748491173834834751255356286967264794049318989654990371284226815320931386712876581294121840551958817748978329325374144914870663670091366186025400145864071311382755828482809100855143879342053121397378834999847609735413448170829768206489626010922634072550622169078580749960737174349646095470242785282949269499663899702820333637728935476371123445212999877536056532469234535774997417194545029967853598034837288371253038077989685431823365790206555261771530772624815566829985015857209131399049690140108589596112710003491356689571953029461906777516159739621998671457524831482936126196934566209300758355833921757853670274206246056560504696200835886741147987809922536756936800236684912831528408190157887650976388256133712112113544113458546340384315899343942953111145190322281988449285038861117221206513966816363108158500096824384717399591512660435594923929221709058144679401928444160248170668829911550882844983610762270377437686073476465402942140483149310534034454986320193555860613295613080953073101570750785019276183151554013843564525154273259759111850771685814419977395105354737143410015802843345100574977747706877096463642718266784548724745499218217558915345965693741136914332701541953010030247518522638834848199369304887168024147502449427337003362765894776692572530526566857685872176218955018532318730020828017350655631025922021398492766714321839565949085260898856965302275542602055169966315319770242592262738866307212944608757859851090664136749635984571646255273813490945618955580780028041693159384972785246896308495457869731489337218444420083174028888621596809600679354819383520729671815436296806704435152886852243898947005000089552798985851934833920049980236153263392593701487392672567287661388232096590990142466118025844964372779830676571537204321439580995554862867188878509434949505856970258158331048169356282775242185129851513147356327886950212964143524240975811501991509610003022082371180456902032422303718043791466543764082018939810707335289176733184199340023464034014625104398882529422878050303537285918819753043635688289853769492594181023375648933181292409228423823651553930546081377699270147223976373477548767014389668310130541992988614726698993821670537544765047713731135325832460683223861662478533058459631019078412842848937227926793045736029901651523196304594254046756724062400781269485074205421251709898322228160013695226418500126909783612779469153235281835125228129561759231273656562154692708230771537260370756867009751490452983130042056426007278860600800922280291811593296532479175537931672993696648371432210981525711343513995083642485972007659660692793416240590823320220478377415083848085571449274238857424438713476795811090778048512247671474917434180336799498004721400545122854498934865184969671055640242313754886995073261859674035443525412533595203056898749214134371617096298897647587233020800414476185391496778455118471676841744115446822493955585716213174994272392359134497943393066727286987608065984195144908262370699614721591543288143008990598608612811028701887672356107999200850208935380971279014208627652880325743830887199442743706018660477475922807407795447357624875961531726639303186549730902396393010716761251036636408236805264770977364124910218673005607029719895038572756944392369784504757224785826044077155032125724463402294974566042489173038305438729449963540037335840859316845554835325770470480111068354509471426400530830197111169930857751800701552976767767024211395384306683030091430258975325942755037168383875500100473739634957146338421832453233364121047147789818600396654330862749578803483881168637238153113185662057351886353200194814530268073731634771821459564065863493049601480374510747278465850679645848125762003396483988002096450574437660602436165072369937454686365989111208648750983713585653634399170809926804057021485011115022596670908897954215640513049725331012876534937650904892744918487761658115481467786020762676586953968162898051135082670688666938570129893695519964097796198784900309294129121679040977935958835281820157520569810014970618065560073849088659545156761119748292750931948853964976650095539767919673375724442823551922834013444690419959708413291584862729631573044651263303053090721995851104775017419456773147222040242776409021956813619275430213564912796015662965599424056888189338838435505164765310431694748259268381243299430894489714324888899225356664997495407934535950506229991805996549035982317591736799745136611212677603111997158816462670918013346193010377466680857030211486436660576111316825117554902944394716412667825406584057752924260734685220742228013856748346443188817413513437606636268394807870878430571789733538901261646363152270355164249960660819185187995267826952688021237239536013761983393382188227602703197706370873230987140508759194922547232858329535533797964849661314073109015026627868159846412904378025650173755357107390641307036642189472636215397148238417389786069979245394969839489100870428019181172525683893520676758295059144676964428875651377357947413661049594647073840481792851163785088359510395855228284871377185078972064823111831949131835302287191078847598620695747626054978397257770482879619996700698159072588763799476389347349926334392784414265760961324209957421621262646594240161091499012340731043220715270036144878944895664321660943644771246296857431822136257561402784454876356642640801491414295837106484315677521146731370874190274059622034719247441859228190209078713022527486963403697456659152318804018549076946791585717943896858315018605131492370844307721564643873667791220830762030543393587942597010256489554615307810377026794732922575234399594184232001286480035662545015358223689309755925966093409519856759116630145088403962375836059413422967096753798720195892699866465451731206196356855017434264195509678320493561655914780430895205789408183938916732849054638646680588928881812925313114968916026416370903772996115357571653174015422883782597100125390269347665560292200547666920041187307498793715798224205499648832482765866147916942526871611348815756825123957777481317538538074034196691835329643073291811103660929368548696332751770803560603863486375922773718017732417086078841536871965051496204471507910681686432449991455376242689362528782517789930910510428817077832651763180173695230787472952988252480790485979362644665035968393394941744574569635192711610117618643601072846722456196369630951729768746513665488762927659516864924766277180220962239514715760616748771230413814278800204224568087421474520615398396377765550414917944643019602164329656104448818848783220714776739406037967478501424637781167810149139077004856542926616333942937328541668445122724069992401382070384885471255111532486803036526136705825498583851691157791417225451962422661030201725124974861153795651841327458517142993464904197814996286639445815929572114506374723615839500915552316171071416211797594310968094554097223975354538940389992705180081980276158501496508805717353145483273519619780799585371453969342520942330920115132792746998324515134023370835811644803414011999674242731005920946243316096403939626914215103351834186138000251018248596228278512258447962190539186489078027224732618580744335447038933666136759384424480088898743945799276442813713524609852456558112216463819981368952617969549881214938703339547623894710040059058598876747472930719571076172701322475145607763262977651558272214581328723937396967568592897153001701922783733473790328724770333099526463172530923828778890110888134842523279532993732145268931964863881602851501003849067814388149181836458481032143541575852377643814730264200545141475226980757942892962024136792924307038617262943819001402725394995737016606751357251561086970772447949571970788859220085891333874045151442461400434119253724074180028751692907480084256218494419977993938514151776496617322475096799901657946666696941634949816495856634636029046560112987808022773248728509850690465832893287912045952007621827030788655069709620661218663719305359997300336391620616434581396399790097557582358842038299240378658264308955362590320979223417830193013072889825741256752285560809471946068196899873079029635773869484615666153301858093344387665035942744916279294097799309750749348044791802181199515417919956141670280073599896736781817109416829007460909927987878214575913731169081547324871259884105893292255028922582407166053153847940161371692166922740238644460835978282260006288432711057904959093384416585172842919755784109359434195820263901842330181602761775583661777190760104876745899200233896825523969618395757552407171044282650470940470312002541259916004914780157431357872337044849374489723888548435649348167232597424596459126535986251519145856331425521886955211283961496490021529315329406767126129100281569022933115997141895898699767050514416468245545712745197268899513960015941587388468008680555559446628845037846296518166857667068283460188195187544866050383946230027692280963791868051715401030842109104800934200484470720157837630225188734734413582819220236290941786562642993049875053328913794066210506092650892602556056878232089529347369150081568005676829169950484895722354467974443426991209125105297457846573918603225404487595067231137659419295669654082400638359097698527336735528946017005121463148430193080805853591215368185764324105999187505628331734523362986523636976470264530715231133069073052030509028058158842729191880157722002080591863337866741349706985118615376510512281209332938667021415490206669207400306655720527705698644023962791343074880930110348679053848258340078437790267233571647635764397204528018310674272721299683686557562369157168142736305261459895108942333668028447595495927398191495948095185272674559080100151776312665943147289699916943709159774249089009401278481432468156913339344916310712726232365598095350017175971953291091183356636446239192873980359192124591702845694316790786241006878968982318257577623986996179748468311894070975805319404923408161726055203134325545572875742039176322359131368096203584212209816139966634357410280545147702873611328928541180861564459199892856359134565738269915841710421524138017063445646759328826840279528238174379317637171980995622075763616451861980934236020539134389897181858482672626810605639428047983463459773984508476474252914960331318496631536755023061062889348398808358172765461324967362322743590922747689981485944376438387849443931297584971136119406575185586472923702690713581871763940357683897499586036543273725004850908373659156319063772543291103113960819993749173060275041315506819146296148154166607575692958494777773068543630525894295482932800766902462262650672229333456612915462909556695621376374457618050403882321481891492777715843314886196433095881589247624280274753913647911212744096239843103950854723362722580923052016697344345190517762785318558019166857264315873578533282316485094013968907281811235809024890614832898227885067961148371878790643811523466781238249370989391813679806912305848135506252341930822588917396428620535204191283900395391484107266455242916478842467068995163652797459001079722488968521404225222451945815803590443458743905353147503643004912694167189806780684734111307064944968318489900021468707047068241376440282371175397245761103108098543873355588110590060329904335113562760614037238440401485065742433259499820694805083260070614597214040395612363965477475490578573830700692566083128731490016309421475917700146375700557252528453772807982178880368941249692619323275735490564790631442784576426380635535885285350894314051474421239448495408855817922707394728825229897414131832517478651679478044098021360912064346659685424119224043972721830756635093322550074996606048334301879593978254652441561923302142734354689746016907970158544763469564504471357769937722970105917551054921002214047458817219014394801250679910969070995871144846618820572699785574221282640385775043062629503581956313675949899140307551370507327063393779195564523369135630383170144843723655248465074501133931241126892822781610407383006048954242650506131321611862513286685237135427096930702100384920502962220220796158337882622148708951343195496800096521346624262243228373249323459695706824397924500870170540958135976349232669730226733421612761225890990282357893154587246697076575159664762960739770243529435444248983991014453226460660716782741280569842952586126717631755777967759578745117152280086961547670493830321370961470471221511947167029929155715571045806278308089087013734678752661467105937514021409621828011295201478014602974151085082378578818217364078693299240724358345320772521068008760631057344200819015949253596926779082645343621532614776360003755804972390182506085779464640787329102400476297588426910242393384092179463755955564666865408851910595631746093185315752699695891368873593383868542415377451350814640136660226445526423875750452198982622006672014578353043752996544440630290987476665645890412591908229968453336490872070316082614400317978199044441345949033927059399749260915032003472829087841310537767447893471668766277233079742645539540641800948231451007569012826731740471019131007751097505335197435186796866375392350476111124251260436192703310000349526783266970585256373125052644867411704896545080715589663007145671679752534357292645548731169873858438586018054276101243763407290939769177749466102987122560189261430634465172186354981221045272782046519349914221536894340538508031116191478250079045695246056833510253418531817668999538741620037729751452567390481400486355819424270625043901396724309898563463983615616715180403487035588726264089715283321516767780713247541131090159098099543339394599994042518876037962836255627129624495749458450722711584967914267321990862540574812603419019605786809977008155395675294112610502831790674577044157863285899230065092187253994877297417741708629724502758645007194565507547322362585859076452522208374563532151332346233920515051441524548108801385170609661981663840904833123867796332144180412388145368981183879245735371341875661217977141772753659014089807445794517445452168634656848028152898807991264864519474154257926010506850016793468878587022673945389944921351926597555602010479159266805044867109938840086861464062851829945457243476229783721486971176706066206633238299052050409729902043803337420550643760798600333501123505441337321654648981651032261760000490094009714582500777716982530118854517899034708737080146679365593276470275749958232204377567270940430657282867464325985164068966876912335429917834830825070380226125741005921500556420346639715688994347699493806638569543345643604835697926013400139419278510186337514716839035556396226518027363408631184798210594605483167720025335565988991432921961033657548564633251188804863762111580041352610002084282150802903765805252612192636656404878909082272847354156915693060205003441445540295850323443370934803660474837038292092595015622620231468214033352893878755137332385246239090726970219637366669784789630107183413393498279153899594678486231968180972944573103760229976515123763819563246704951356962751479513855202775439392388677822538480328532964841573289128019608963384141573032283642080891694278678917111672936108393064083034091092546022120465831660753196292608619741998147448869164674568873876220960799462193365326703659969842052687616606227346157359485250132800049046406825080384169226685028484373535631590318358318376537346981038792669184515698713775988936081464780152038202538121920911053571174370948100480937715875618857484810029545651313940261262108556667968587867422632350533568421105494833162807051620482456681353213619316270595179287013253638001170489977214865154645177837250955728234517467894550746178381098586910628709456294353553998508761112197746255150462418524796443236157378070762762874225009857491028841623664909700204647393911863369817994049409110381073955615063355043285743850761510171402094054294706124560699697909968137483745692120459898032194382273089267315918409552326230570009266274986393493940711658150564481010433992790380030753543097517017494915348072246259600058059072639210507338439703685982423081093639075077584517838818722556380190135155594691843630929454001095741373155831391064283527832807882279860216972727610146137790848752762953109892746201617335763719765428865495837402071502049344424367224908116863053717612554994426831331030418363510160561346150392431034845065633329538711355724501815577080717198853756083911690083247212325311695246935089134025850261377449597493946223408973336183914926184633795462695352905662199097277532111311749064636347688900492515573404071821687488879387268623054480061139246756146838596535328710705955660570805951379028828826089854222993644327964333847435245830452472019898366193584048757216308451339095645861120455886466746472200573155284331813861699286176192861229729502923863217995878940576052518616781418587995344347602559454961952305232500599372260295187127602629078646609520122416648143460189603480612146237913691370116273679942720486849109885673735682995813182556040720002701831712326722183601193033752420884434520022021960941668341985182447716558944769214749115300167901030976856647166979730545343921848046655961114341419038794677483564787873616524374748700647212264012976105111217429680695936338609198999792130208601460162971657698887014464777550732870858786301166493402184399255656577255793056768828567500722150104114292579972443102249928448418613972007333929857587467703828689820618924410284487655696912162232368187807723359650497595440333773274387321469483966055600056627009609022962128160498622838565017458763808152277666518230147842312668911125504095867886714816010796884841695183986836913618374043423081780925416787446660640348971145559601009563648737509843600068649765212227891326345435355712224265678571603441174934651249146710762134898599695765917046112261908793885962872577926738721497193174401347584818697381361772106525868807192643358569408855574510406775521594855295219000606298493848971930417519351877363562533377905627897021956142721236449571669676186407794074825722018453985765841326928877611544704785077990494512478075290782596167287338458685915466627246885054069385866964937197630928285754222914551199718542087676777809345572480463243617011663276779297974725945492524745939546812392747855953750991745573981893118906413315801288795198971677591722286590074209907375458278991140883865426674644008520663679799699762078861323917493188164815738843604131843586072166935736792754030221496351587439551282770699958807663618904941287517459591995619505688203200503501747178722151304095423109838261935936115467795606294083632248850818439829053921471483462804032034960532478425820340244244188427654146387046829104165078041654541653670286275195085329593584146975173977704884647729389082841245758045796809998510163706441964792664065174347682954918061018903229783850778138677120593732162458399653809288543186939067807573528069670170950916170788594742189517038109593547778296354378788075073479415499894673307280651906661844236969461995015277812228980889898184527782628605454085666249814290457710581041894292793649183567285101394450517570760673117654620643947908061631274359507071099467348542683471515186329298595804485830573488003967509896376039371781453274786744027540310447528149226335642197137069761909120925974062299476200662288505820487448857095614034960277370803324740850894168050340756543399008409675155713424139930081216855704804123032411786548948078050702612884460376519985039480700850514557071278688018185235293928937758619548896874525225495162474394232201255655624460893053662960626769163893225131303505354643081110315178350090981916992819899209741470053834863384460228587847651686339929402023663479436973135526470765743185531204397189976970306637991339443447696767910455073957511953615742627802218699511928943896370183722284832955232982091014042989895748216540863610779339721959145488985680245415774960922716319738174280898249973554426724869742516629009210070975666545793079530463518879798744247245922038702073473744709193055957112384350446509897309027656007798445898906956313251743963985810673707475925841869941198595686534570407681708416887163004521913145255656867305214527048695337301142952328038336531563796188313805289629766794623001904565623747907082027464853489910034493874810517880150140489268581734152185770506391967180488501926906707339350511360705107426148311380557504151841160935011837438284617457793003407595268754785999909533549216973908334167985213189021208248773409740006468541147593019295735352614938960477445644684234889452821774678821858275015640377729118376110126683513460223285056786376681658822901218761201669258262157124946974462802557437922349444422229991966919467261860043931394409963128563584966521950912118314329949277294228521674753168212218409006832435651605865557295680340548634277154531325128802678123561253179719408084204833988592118831634829111480796684824236898372582537607881316334172885181927104831421565969800447028338035583104507692771699461462296313967250800435797605397429726632678586232574206605760476934147456905010813542552276928545652688880578825397121243473087487891162877343156333774139422214161944080498661410629425768095903589343674857887937182020967164426958549331726355246764374130989602660297186916182969189845202482305427401520416194527563771874581056075578329072052091664015621660865709594363365747266396287553011863101998783731757921428473918114805088011657279574993145476349483621072456618502700686649256207938968750099030088080272272562823085652644800389745602897566493490491049232404824057019164834430355062199503442156394165025099220220748348047081052911601110548492054061004268820494231245547419443324534123260441267206180383554839474351514390860911790603452818972451797308236327929343211039600276379892507182733594442825469317510332872529362397997343799129835451962998266884836803577469289779369164555509169594517785589094748669869065801799962824373270350976788953154766119237104230271919857973855147581560336859185363637134884060940964778928090424417857566488046968323345936429416963745427578770505891458230033777022507567838524115437425939394492357113570474424120019020582353724862786055923462230609550070832865590931490202847282522752341195746009211580547848669880727958746338388874997164516534528075633229654723493169789799125004022017679716474425692654004405465039235784437784687936126329458709462927631327164075373315125305223836137501694381185342914620957812539439215588630926014249196368229891720936574765917883331201899250722417753279050967322982456748613170503285056112614841062746477006550429554023912160410988311403631205903949013637416606543596587202870591525461494129050752657311298492819583501081382175089660627316150786011552394232639721292986032618666254655513413983704850349386151579069551378492989785262115517048025872448435330949182071249356037578224222814032877427153536089790284402770215847437932143962508422362778458168964352931269604723338450840715778284343454374936175909016675741634640619252720877802336479260331448978339926109615815940396936696767435983246274704367066827877600163299786844533214868239009926739388258394891605572623490812852401116016783242387903220985013993878165652128811216274003632469240040746203994266240146691931422489726972838358207408677841258096326827172569042318391939088774074607637250469231656715924541472289381167549995523295791803169490257993583842904921289256978723694722930125770975082369480646954139763091900597759755047842583671532202511651803871570553629822715487231964503447078866067022924515364471819982690859637477359213137868435618493260488173062518069776192709882897503583411491258647665443166747428873761663378151010400275648102923705955629220195126344785565211505665785374163253780599270179843364268238018030638409843161958487417565026556470196105196473039803605190636314295917551067956282809146853961350160921487692076870940115275903929430126520226890594605705856358152985330233644319097485853665778442486303570627184407238228291466740154279455002404859998346027473159710915124429729386413550221413434530359508282876820293852768591695112517422416051347224645600499950876160535552086482474950664761298109302217373029996874527440912431412997009922657661362672497097579976859801868840758063338851617357917156195425153760461693008185564670424471235465961433039660429881100809624255987934858520763609534282542174953198691774180817753630428512478232463080323397845872860995771743024071301432005845581099039385139224626701179210708598438505565301052389914774486639252028553566804939890798828703866932701800533227116978661294303804997226433166250659737129328667713884036893059126565899987858109879123504901487588792647567481757213918121370277847707861328855804973935531124739809745419511748125955806162959632499481925486225806319567190949341921734812372445322862125789809596919631006216513665056390380091952429055270082833757488255620366207940386529446845845635897581919543732214092651155736899038065983273257854598470258465284929724072889962316887698057864983881577870132739965828161220941026460510400307005503420012666747657717072858440515896496885205131050566846040930987991011841736716868133501234736252449800069163283817685456061872494057278925945993269569033449435120907442207938285709762492815559734274574323945430908692591249571184538367852004778864561676108640480080985791413774245224454463425221386834237973736064356300070798279550013311713890042000730159331948575254813194302640975779321597381863448368401897348230428944884646938666197253764864101087166304381303180535829722823168996280065423393443876073670018567220812111545239437239986456580070821131422798601566959611245513816656412730617507562372930761801899454928747649307291468282862854055532178647993215683817879313174447178170446350683831462898316479606587194636770596274721597392392522028975069578572732451865725708269231455242723967002688606461922013196386740925482315571598591128503523008297698135875162477363357069371759754540855449743248031732872985029395444495406672254086873717876001363956223706126668542665000435663646548995300211276633067964580214452686475328362799880309607941356816048493034293115068831253240915106133681820397828333704827214685998724349718695840605255005889242044630472154998360642665051155496496209097260570330190392149869796726625849716688086749927380079997863239564814834774566501569419675896940585543354131993262801665340003505585743408152237041886806802252642303257772442064209637222821556786787333883039320612867581890202908313885112290058589415848885738736554655580293626147766007142248438844618423736393481735931548264583917510848227353184034178498645556248713795787476803437844798931734523400855928980166418444151120870962568945320778925761349846245154903575451214907123271929294962018440011108500134126003988275406466873349323646537815565302848797638715215376394531911727344322937487670198613824575373400271510633359431449818987789218379958541019449585347534566181112870319153122878615714064897059358447195525639794343375087600898554039220336682419885197319034163219044106492920274345451897221505513422369823173141591180405633016564327804948922249278690051703599277509163050338512576192232079524896526585869328360990559322879455308399253853936854829274668645022289400858141818067895932237470548634543143254743049055145862030074567754399253020615111338273378373469841942886973285739901739026076686952636670606643733368701757644107362124959690112326307075383973920108812181814534872677582416176428270958107447028582450643512728546026946726063128445457711929459015228503015151462152335373295023639562719860025998648796138432290531698884330227613616142593671002072577189833769370093150424118886181054687640366006264687343945372956650192089183137762338606440685110978353697020143364408303437427353291957336609497799220014277348087890978758129586102608910407772341189961679591360511552572992448024685990599686042591794866092031925132253578614543541264203696942499882028618990991833799406374014073238798644194885377917756807859300084532090471465804991995796522104548238889773307085536003310401059689104796432610601433865785990865798102287462095565237768207342568999847753797002402740414084627629996119118151719864719384870686941233488438043939809998747335542250459537550696534076587471388317589727435903814571086809612864396497654879899297366551922270564739661571042641578107897052655597424697384117525309225540252254893088492062312002853902445778675679617161567534407609569652798377738419969452396456873499444610948585248389320603110328251352287468067262887139515966074308047422348205211402627406593293352099851850916336033518457227526925501904519405480264440243835083867984545049778807430640562971334003147982695569181370340202398859452207138125906084769616177110159711587343684529747796992009079520779806613132522965861650670332647929533868041759424029757269330260040978590481651453665285102897195029671945940382015958123001575845142812208830222247604617502770653230105983477953126535750375057536810348172582993652182619171734155592645832304831900793821458741023172922371223413807061631155003911285519200934092646470285714973436639970276667316292306156410008576523887176130516872183072164698794984596409344295517521315174362906135704043703793946489677583517908392896799545449405466141076973888163773578065357326727063083282835990291227347818354408104932567541523350757419458119725507845036798583068804253702694532913666340815078351626886291687354164377153325266485542036899221412091450692435073589419345971181402545597366416796909064040667265104023800244432549470454352722731553141805092197896470528050027752189550139121451035020156032779116725560273904629180646019932204081493636202236501584571862561285400767394281062848299474813103847491862682966224841637513968952626216672345012835027693481712112207295784754597136999199177200400833349960175309285977835928823765161492873460650016324693822396311365661870499107857927223624249997511434699514240145603968725138508133305164419917420399258909276397560550041848936956948144723614064890581530156175598888870178616052044961851078665151611863947893199158177197851100397351619392467792704742129698527347612594336676377163345811344414224075506778003554372839602402976104698522616530600465438544582385198325081799509364751391397723156736116821320971613293980519422615552611100713567289658127648058392863469095200099177305472542720323350894712042525309500365340807893985442514953577937788085022836776419742429347782252229658037697003008699534344347206470114244921385323017525623684295083590155450599569410879848746666610843767667530038293144540018984837120468834564120805373499596694737660735100931140188698216101374545378591009752429896869358504746229620893083351661499185452747850269794180990666584030818594296039401948398320156203426142004902164061968359706090952224272341472054351876525364617547550150999867822078468951215378289172556662173179212450775552309890164315095362251125949433170761826282437030479475832740776980906253913687027702476962907113397521942719414100398287956110045036729682207632781984600656930983681104154543390628432227449254567120308079064726896121151706601159814248001328171091596645591958914149843531479328132612038611306293439043533841348746898014247944631465727006235542829221021522118293826618284892339533193591557229223453590541661367888589905757219744756178901612253897699517457661734880387413686739804547848768336814070417796802638768575585873214102638452654321609130262469484975729908586378548752240760358992747282837912693757900719472095683683901849872178897868309101325561741091004062244034047053777451503764358651017152090597480007410352956901559559881657200078556876605401214435358738026967619923379665370207579998880187047244198765450881754843209211672753723867973571627530664260915496642145889874002216857435648036745669625562708911596621795302122597880944339367457637380958022006397343620248948955245036684544495219251674032058535189879141252378214438717600195857848767475700385206165682417353720039754463591807824723729308297914941039848029064989641554560622827975726400929688486697602865251124382267926247750281451350356973055255416265416679386375233165030183532830981259275964689671946134767947505379726418063127874831521703676636929092406844499489700612768596141315326113280314265828763371965187178331918848653051808691230153355891623434082986398444386523402479954479558621807804899924250042963137748985872818841766322669865963977735413771116083109750156151380181804970529818047244206477236752756469885621761501907252064644756663148494065310588607180912275951953434512800107372345625417302542465458377402979115670268352542099695931716542015802226102746257704848794028770976095932692062136602999186762282110007343553036652834659310704828797280408995560636155996029927518891063524494634375785873349872049317053621339366161866766251873057205723510312524115485172216997489305818273305135329466758057457708389985672856255257998925746389630152152903728991417794362318563289058312732300276912347530149892666611231663196505824485778037405282739789283480169228932982699209302463187166342980028284023552644313653738450294154366464800917854882247436975647360062318146073722880956142515095317932831051976703127832346994115819598476932547777460682650595897139281097378164623711325663198078839688648890109482885080273587587476004765719409230768933398965079321538256165553965298614154957295089768591970711904357929386346282661716125041556685056698215964817471054698053821033383343916988645841196554689325684416500860441149549013624861433133748258100617153770008305404595930059130192905298615779236809360155747760710276767082780411607380025049000665848841880874932353824040476821855596997807546981187355265223729002609054828561772821016239993478282426774800610258843787062227449583884410267805351617064104741571089986084251962610638589267571508636727553049151806062351154232008572037150460542051535583057689082894471005437693322087675797319210221168445796371923907604670358857973819275445239176644359643782071775956074146406775087648679514617697775236638628929191842017136133874945168473244626849409628037434672934996662046460378279934246430915439383268498732725104476389496986861474189478428191068200093967397174318579723825706721050943497673246249706164192898563367556126901655661298558947527313164206067154101146706800176073236860494250363324473841685818972154030597478814338051689655372574114145525661221725557909514122635847077622120404730683699579183819034243185729787120281599848659068509413566748887492649941070094711979278394980861447516050275930249145266691148816556445072156002342135830985727704347179656755661660330802688099028209227300913872886168667148891149039832932218134315694164645963026593633975919239415987911722316236462140561610742444986667798187194827911404028243655291756311913551557064441561504534817611469172919902294252418002222198994713232765336191337690550991603978181791036468248068967992143715452319614600688123376020058127467548504483879745446788099610392661326937740915671093137697225495732918604643541612025442856726902247288748917579653332338982364843132511470511978537832532586617923256189465477628735476912920322523702774830797831380175924650259524877089848872634571074038877880832968247126678227347883359226253096806018891023763739765768075008864436596131604920367760498730695242053491145369137647538955322197474311268053226654631372203591403578108103803996111612200597456576480204825645582620752029160310112286066014410889802334648759368240404171986574799373898854569985608444655543973572751617458537329442518824821575267179715523004918218079791619631393120960919722012984495688219315126451755857041716084644126637386285790495188162947358553517486288786885837616913235908371923609514852916201772797148812527216134745779422899903365106453732083432674847957814209283917381743584061182374397994549670302063862696716498042610760896761723645995297908343746840919969348858038019599886171039668881376748576060968801232383702421626654106881866448489062167576109039467528631959766035482507674946675950260914390458375280289384518024076681418545452524837266480571315723258328427638477315977214081070069685853194327461508437484318519806774986595344173265572269829036898424242364611352156659128280995703399272198018309167395150284653175385028695880176257177231268250623594351077961544503552616848031745673274330899177242860522736996450865247977671712196754437149873091856794117621430956451027381329333613804657567508529836473659025997951760292723524244914194990561328176713050666258104093803831262446177613199891624341559682340900741593765831669534692308060246288618359085822325282254839432643916143258787362668549074180220621024870896414477479924039939158822131430662287866236240664951934801022192103117187537694260029069530519980845103715067772801575980020573578527663154111584853093982335855627965694230684751556689988368943131125903202590824079658430648996159945507234505958176871326275330212454842728901757394795697232160115434412942410469098320000455835138857456543544262415766068542252774877800644743130299986811735528262895856847620229320869582183866772456356269043366909075998993090130921039598796876396678425643617455305251921606795532925521450745247871418099228949552898362116774954841897421154866914873874236186267904009046705941325631325126908903157410432122010747478855471584129442736339640945849564236150800826276817951358732034877459921074577062862502642904588779765351578991928995057744463017142623802986250696744853842090045910986666454989458523474020342535418610626461213597637809511889898486498714224270389717038828870622880336929277752475448448123431880364839698482418325525425316353856371175357875489766133821920393149582908561593349496758128389301892533839192082732491222641255013737466613905758769863962091114168490187250487940362563654359664311070912947592293535907574511001940046707865702209492134778760931234012437120823036812643041586896883090577197159672605656015110957434025949544330853951903098599129535639709651739048672123642572579527825505386679160905758576305937523276289244056569414704094925782198258467065788349792534568705896782209356379694198210417788293038926414580842470376842831705943914047101683088530578967712962570668075617415855024934081488301999744223967892451555966706177208262238493182373047449723432563514498867580898617218984094721607397043416391963326240909864291391806174993755962928502348675643158503614324042846016959426289368303228583026704869815143951796747826154059608923262388022921049354965632719602125780467440447313253630307252634975803015934904978472118910692235644208419685272314770187171542957201761430284058842780518425584987671175755438895233746473091814054322037753672811786600454993893813456941972085191516419666631947608985143322583337087931810997154457935570236064000671560388817219331146155351743816348384692150937247002336258130405164035434566394570446190603612380711741763939490934969343746009375016066050891979365300390113643580870829494340127099815427703990922147893512840923484479034253192578704580576595999712901592447953399648973487194068370350020105814030859514814732308087217938418522089909546833016798687436852462077961679387430749594255656185694269401631328434135608354808139026003909177013452961637597339341799966574355167696297967283644804075429546655276289268902469585456309433803481163952287265514710004113971369151600835491129127952612919905873445332103297765168953985876706666540315175931628717584184391017474350410207298996979322468323759901032107550506684374637118799800798594629549829388213071917001302625164167976851056915475699658686418450256147013497650769895063292694315190402676666130024547399120289025492768346458460193770249196227881575962467176416032703523069987280733096822927648506596577120817450372972201090303343838172551834620021136759984104974216688758402135699948256359527255019914348022770811007889445508517547405375559083055663514539820983200713231521641409828663060081727196812336150653922622652987687076495148409999402747753633230297576594489082401898146640091262289628869945594585976279331324833273049562132110416207913515152402643638054596809580081283419092499776864039747571597976034172184984767324167914219247219833333515547902046072675107023240719244751741338539352237690061887489773886167395671602275340653396883798221395027326172332007737770206292474018336962340355840057260728425785141520559151978688461386570635735634925290644864246007493569231072403996793710258589628673344952257927620468063499429766474516409691539746896513804058039540318156123265060898363868446415585039119302764636356700394868372222254259129038809251106182831933770369042597229657327527341127510488389510695709845224030200700839862520370572543507166933392730971969338408857865486270202764232045641757093550904006081579573887353220830979733883439436933153507945263945052080307638694941627878232953835807621927432042252258063744094007887014261037838773502414596230055407574538426098904152932118276172847888449739727643819085820335084980213957384597832103396406298386505634074087748300861177578236464119651621735676845704041218825729692098561546676469024139377206729562094497357149414500252819612279750283940126314334098373408104450688354362215096971302015580996965875194680028272579263285616972617213355997228519661590024469182486962961693250619901824649272904881049377067970311025091571046010328473133971206657699385408826677534207101866563208508998019215538449328999466405804148816292615592027132539386602509543943160235856150886850338220259023211115613315992807051731930165528647268148442944147752944491368608806643851762668830443646164447622189077888683952302349516160570227360320374580815617608507371781061747273392917911042779231378058421669046946456523345765021774314006164804543132241558333640139594349718412983037318623651275838037524430263925077738749114377945610340030709180453346065592392488771576626327704167814434269967840265681302585520748385898337560619079295145382907925065765683442553771594986618467496159045772773301343655258044211744143372559905723273707502224578343887213530791178746535443440220148424795293276759860788087486976698471985018840031169863559198912995546963910330928124304878913106283122519270008339311954307137296406872261686444547006392851908232899655732917642321056488505700299433432213260060255630132456624802479686064226171653617666489200457931876161169095007711986393046933106509091772834443678167515679335339050301097184349221616298936166971311719819016820066242950943699988836357829709042600304661172407146469392961985463827981272317000641675956270588821747464678951748997054498725319304246559092793297055055722240680657764103931926068868677098810388756194917276709849246923030108655715148653949253114670344189948573953117708890221177419470874523900459258748423574402332385815869782528290709315159555210735874105601169723485639581833220250521001907641735297992310035827736647377647451189157362496471731220397826307077767961174567035256011929881668167862069989928648930677486391669460506952498358649058663751323080725345922395102337073846779425858397479483930701127270239856251499360808379605934366783225284423212478007471853482165340753125038964850102921526557574706228295090629465814829616899173147533999445371960438281838361769969714925156779384410603322379523074398735736224100041445230664952687028316283129052398701352674912811877173783863947424968352240542757275663070649376317930899455503108028872508271489689361655635351861025021492627345886937887696501564921151860081408976564928766081583409012421635409012671949463224217314562210857603592769962828444766215396908856875986186734016725186999059288590944354282200492292111786707663205463084812517509223339696941220136248057924949984658791321201347273722333586008641453158148964076880859186792783104635277225339758844352036136592130140674299198648888876094844541774239552849929059279984107141078049706529431925828423510560470449681272807420317668657162006510619008978628836390488243956286767463862407138957953946625598923614693040109934996075337768381851739149118388189560484006836196453885422990565831723921249055058827069769045787127092139331642215394811706340911312727142294061626241730440456545498753639254631653838785750004295595030939197301492533729643619014114994818708741475676076699548052305093572110464235399333270360566816083686794893454333661878315959214113015174717377617625073688282565582486143276656537950566783576013574977692342491913801375427770464254104288364012009379307182040632787116549155797847106037267998958244140868497747345321246475463996644574000214190296109210902430284998097339876849275584778848473801987002158418890524529613232054613085472262897982340911966093184382566612165759349145615887092189320547601217547488765461076919275246923160835624228442279725143115683503033995651294476538052872174557105179090660172364683427704102458890572483354494219193358079503447872177422622256032437288103868409756562805569661611616464675549615670092373076445493074120001160311708562317951584472395189621008754441451676346998765055684739302213070610702483720119047027211989122200543997966130775521611465987064233080940191713519149951459094191141155556530592945734739482515579701430850695622746633746250392287884497930827576234652762222330625465017062519289075715690475474930107233826563305619778688879692815250061633987137243005770818345663758282850623794431934888819009922231576640108143970042543536352928141929379597833538553073322351320207296897027983052656077329312439570999947141973829488631936540908657512782792043924130639999314598848611589685465912457549052708557195592242669117312202625059104930357844031913033983523074373870711555953765268132292052755355882211275053253091695152522825450047210556422860952973525142812001818663993749156562361705446034912469061125784088306455632353406809454059405001777517115646888696141960802490790633239449819769604983859666383585655897130980913625903126444220811221856781613448947812314783803374213905561153562543381780449753598126648856461263713712105419370868061241594785104954022864516514296871301854532700821917328458029356176148131036830864590552849990010027016504603793821145823187213842312121402765124139452327980087410481419110349051086533886478810747977391248245707700345565374533258958638057859140593270849334152203750392062087081660824391466621986418135575630997799463945763672596110147544791309656513490668501466027663785335626383009879240181197275568524505070141102852398365858312908764018782298411637814908787421078053807154773843630487554249974628743602584524519891816716633394931429249718616354789098067618858659543771772589044955371746329109082914690343623055422393823848524480439260739494479084107213452531784135607066388462397460035320899020444415670858771762649860792833757093948863939898908905060338509557036436490247893158650296779297985939607943726679753648270232207557753580480637734882156763025934455937445071906661932536167762543388383611181391375658290469043282535084198351265502107209363230783563198173105619374150958539305435098569970761426958652159026154955056263243906601618069130662625835902637618214617975026665472157335459162123518556953432448993245383719028319540490237911782799686839704239758776463970092379301030200028413695828372616843748504270137882050314277549733072611052293828795453713496106917051526862371830871240170837533465991864354473429366837685083597907370345818533279188946903359473489478351506570454120430251104141806805653646844144850114589602939498368368100230372275900923592959168453195566665045707340789319256279930459755547984119997027933183615262484162562938841661407800356051590906779772397468432904643011163399553945900332149574682535424992841128549704571759185051713982821664190090776730749552813536792128970963319527107744362119718151115247492451335311781437136587280573872032815649949039053527419894439307640463579215306596314992007216981008777083958198381908482146984983266915582424707963536476070051359744050774454638546592589555200811287044591476198605061781181561780526208596358692102806099032780593080642621096361443350613051575256041585824501212664609621650930235601042441311590615142450764645097180860344108506982824391112072335962395936442538896046463155218849202128227135857775174313326526925714411233539544593246154856893114958316311411791529319259212141669913120562889228704909446197199505373730464177665762863088121101687699382985569752079368903453347314720408193767241328147464727718998629955516817285298446134652151843438195390550357525031899168583707988451336600601016937824333312212890308850438992496664770279583882284917266646797914560976085970680432270940183628965401355990334731396100842953279150646918060843289891083246664757538609527223274332396478910406177274680725888156770043191609920211459695076083798096944066888437350007345457722518298276459994098681958718400122079930908174695389052964897704227960829533206057816148101553586141076668937336562609819604257239353977138933883940817533234184945043326697447869292117368868883911964340093983109364117771657253134504551406942075334521467838750051865010414456397557656941769395905986096419199311345622787220513217160780044694984560203229159344454554680092680092811738696294523134861195886677931863285924583876533714138765949942241069260872394414447472912254420016878318836684177599401238135928655142561672457776163033496151704565174768337869057978030542665510615313906496278730881145395788815314553415749670579550136796878400203503618881795156894969932313202252819196853834472827616355680266994187268389825392455138875441518700020577787349441046915487414975906703811528789256833403523062832374794569295059271457851151216426662282825171028435109803109888374439174580824373562394071358736014411605003095222778344147458788893510726927988877472896746494181194054492376828695188132941153961544230018747892050350088303446713595185291826018317686004597538442363510676203372481625114547294828932771571871928073178656501765481748165161527815248690353601789820712908681187705791582263011938224901814774852138980162203713240061541337564677983329679443157566036524471238943121301129454298732715446718826170335623768805938835782370130715574219341103851402615061521784611151196076297175366269897893553874539923212805581622512259339513330307208875837736548155876525353105167958162926937071906881843748778368439856447311920331877723588894335038251932135381547707591259221508788055075506094921787368637162125365617341769175409007028670600501059200697337380274569999410823641769791531280408320891228404127311911057630470261248374122404550629169801103067746085459141727530333797768088537563099253745767191341541517493853042325696003571826230684805661859412514271596409527091105534507197937611110286564832497170821977979934181648373835549431494545748131946956367072042870385061689842974414159036370106433583470326400349180255008600676467780400855820999700963820509524346538677200724242961429757247613214864571926150796420806404959989546116611222595044302162558789261708239970443686592482639994351390225270826530485243987027194093276331358294427142101819832185922921523888159809219930491153218962846058489731403192378157297685171519427464934078576554610338850803262884041443313714562507141796596498252577527819325307778462340512441651891540568541906308596134085924163516970999823462455773059320262560052253398934830436932172602456253380713002825887162434776444344468118507947115403558168298015621219603270138295072465814643986240912121723670155545573742233612115669913294541359179615274167612574112200911026223197937718745289171498307030258573483216615687589984768681735203601321362481248308046081569081958648995882588500787862279442910770012494303372798800400573483135402851018925319149555076205319241185496803495596725331485314210996148307310959717156478484449146073966172720724040937194786226217694946407392266941418063772459164029088686337978064786755746176633645174314833866960076642700960096658329059076822653762252402914409215616614558440956596658716919087986526049336396696893527128904790580733830947430756893714700397798229615641095171269649829352631308110823109763979019069822620865538598735621557570249937897307652643221137239834852645282522366008469267040278682403470946034484620305233802846332004691525536243923891372366127086995736797653802271703422701331289015307939548399675337378075938659463901059447215429816656128439873086195229148317651184453823428945208900572065273943945688714919936963716685163645544256748751834681050919725722985601186693915791368697204332235305169526291964327278960672632776148800523025989501202397087868136406675453588750628645897971310673279284072873890851951106391651586652059234886556134152139748883173665886975942503962327521682536763628950868467697342386589699256098890926663246143458036311329225455296220001234435197246017837414613332555690398558918704151358333540364790114562492261894908426538883823017064976097730078134403641148964193948912525391479918310299987508780639353387314049328381435474323433289145682144791163768421200674564580909810174390330487072840211365459372811469514194044259280425912006403167105574546836491732263267375453010286363334158431937007965296484492228209352242603470403458249758495159388807686611621932798441914014237117237962334011175269350900654907718211045329955095297072644650488721918881140499253414333444074763920263103509697244481156648356702797119006185513922252738779530673085542404959177922085419690654927459638701148214246379669509222456228737727381196648086897816768615833290559529167071761957216470657934375011405660618293120084323637940493485583473176270149137601610503838060718891582454976181369184597619905932463720351234413299209327243675391777847041477737818946901754609487827756111257170878726355058739757261791689331633992981375287875232778810146980097310931900023115499570443924349623522476977997538635266800283642074375340439467545873906289688511615445824425482913177974531283409383013678393447873757946140355871484158494003379327361126525996206869992015961849761192655112236254093902423016084109710091701722217268546598996888547369257724245863398704620693322865043896733473006306726677421616129869382376025279792542419062984055086924423785747646414890375949798866453173991240223255901284471930525693606671709287889356185104789316001653290181173724886165449504178178858584652691210503564042080180629086700940199618920938740689376580423435440983667467000045919569446620158701281254565042590279717052314004316809536842378025610998352689316455063357431084224197978632820028951969802918529406658545364481863354835329039602577134368675631361243826686040482949137939687375139397424945405366747191533297870676761003128840224068016811972050047249176850957692030421988444671790867140435652553035399104304350877991009309474251162427554366808024953879868637529681877132255779843555560170471445737765202837369624752399403066434121966142581690761145388611007241921568981552704630934342117930720282162369168214174807255691855686884874499265200111801620417483685572345891527441778443911831367622559987549363520023947805660687190070135848115492841521739015668671160432155255865387054997824153440531967533215827683036208099122452655568000897852482322542290797781686178957479670987347776019515590756395838667019363017639075705835726675279373494027300203155598030257087412441107361553846065551430452061765465740440866415282007374450147700497683343786976036279288600043336856183508797653495016794211612005776002991616751754801075222925738704214420146509198287836086473500995446772702753051352450349509770040033749465394279643936587616018963114422848477707255933337977767584613397064757832840071884604662006165538192630999220266455558501670752270088019391102197646497307040694848728583704353547454560228682360449520604032761698730751007452459869303502704586147066058724348303792403775098707992098040955292053213293944832505493662187480577738265423510721729649668878528486171613879823204338293712490279249832506511989605923847665067568645335187609691829078247676345421938543249791080250418063146294801066233191780580751887442428294261139628928307927187316202724959175942385389569087240072732827756567107372114034079685400564409199977507421144146457902723961026072960794617188682802052131776651701184530828592636214680716397471096094396185671886898885729668728640997475940686253099192526584002880023259580918456735053392122477029790512650105662246372351771239553775681200278875511755643959616052962721374848003715961505159356843351209908536271932127196455500137841247756604935235528510227326705979758075767456000638883411023580493864035329139116725415680705907413766218065255048245216784798701456038472570612057731401639171575294649531236922347953588570522887199456110867305504241690910475591801195247479305124138999372586967949031141433875832811444346918567754077488136218650498642573542749202872298778601737143435168196411188174254834898611402387709667582858020834886845355614460005848842370120630692810053572854195942257279755047523824414433556734502219587748279321570935633526131355645625604186634486104302293007154045691973034576754268074432653706963545163034491884366457006200474705071678477644118759639207325766200923505505964367216834469416749016858983591316154967398741389898191574654564940179103494794849732067178823652255008472169072130024798170494068908253992297514140552439688029683618261317077921974275528332736305941297240892238982961649116043258995414752073153017842867937111672648901947173442411211310055611877790482885845860310487359316949213792765291401952776205808999273075504265505941653706096138097237572195828149976119279589074278851761099237663596154095486147014428215834268376279946215235679106722228969179755286511950716454519038296681831122144639030982085926767139971693762729196217248858273307524528214393884113768322341226390070637894912958338115502648811356636239907867468325211577328571081797430648079583301063026310331161645660491863316221055688982497263676222779578435482932769611359817015378662936463643880521003619017326497603974056138704644289252618014401329408791165180661314222147284702290798104126292300371347544285390703169886149941938401105579155831529753198573035760940144464012705832571935187185123670345439639030003183777857768667807484366639948239420633923700187966598748468144411905373117975491646151778492748657254297962315281647341152759058641074602482774008748502011742520096096328823327312017104140438241298947902801221949637973291348299724211559253433660867854812626139224391466330716880141403205402066788552025623602859410282666060478031419492574553053227398816076719857419479947569104974435126187771583536193364367080143686840078503859267391361096835556998171375246868163763398433264640470608008246895873855061031865515578289042871087454442596783308108599315313681453304011318914357626262502699565475124459398181458059425526902552983749388896580790840954057532399520177519900094561947738935477033649735080168587517989258404676955204388591996823697106242534315535987897517271757000102001057382570995862211973805575080073976826986981315963065102512732087984575841264533213244258986978695034341013650849889789337950026867707692264824720568466413115648440081975633315922558992972693889199709635498738567019140440186095354998194921692896479103816076415463687824145046808267713971397916545789835956549573639737277437170946257878794664431590049809559051716552380516879431568800028769742400125472230428164216801778249654046322090595945876148280849683869304162351802371785956639950289249065044453325302406593684710112862116485395113679618948329541487889078831273858023134921260119266921688534964999616772895397432407120651064528318055312132116929888646313977374932990274466847671520474197678923624223956302303475406021946002595390498132420710922347723423896200853689763709023522853977274153593466831587945994069942290888631247456874341437843029541095489966006175800270784227901495312831546182426394403919745377304304816428954486786338459170330708689385813305522054569388984662982047407029005611021849364737518713233931263654632260740104814835933516898639573161034218494535408417643699001637355772708476279124760248012427276921873100341503877936712008778878513280369662637302553818322725872435506140470932049261280286654353660118357790629431982868560213716630035941428711545314648227228290324388301377566402157128191925702566496832399638954651638363707966746714699090496406406081089888036519740850216914405523061958774688355874976683030684815953572399373300786344228957019406149828893656996053552682349438325434837570786036550625981621382847524475070556197040733511998121109840891359949364108222493572405199010720842447228459761012968973387565146372594539029794617756126733726880252433748129428081205830822678184653287263892748399462006348310963437929941250275730089213567937896465589335058488122815883306401756143178397097299709759635855168957423529390327642553247497975353525647931393197856671309459607169951092961978208957259047227294575170160075819178920450756135984041282468273175560725033952841279889112376009293498820204286490205969218737687071281206411713243728504212399250539124469311826450030709273662816264349208494237122346344826318083459904235067067439302132853106726666451324952450359676218248871629990338716133584077642350046496542674850883684681487830798629420885170357393039293316225838455951670548382586097206142646329893356626801931326270243151883592763814529556429046511490504700655733379719512232695913024886246223077245576786787721416666165221802204753123244616194300029148921831899544759775845323638763360211905201513855185970585252482273863941139561498191474850703772022176708048664267088530112840849343707177771358159318614260090211785231887758095859097763992698568945661305782432937603960062894727203089489031721953718959705861717075105801551873617842214554823674378695841357694986422868062559032651481830615103633436847929966085219322014269400506855026155760633741641770556655449994843392463249285560869970047766087011550426476328759584885171661343226317051311506822323477877626062611474108261849711498548863538151075226722484052706940753722972572964577090035613119341546950809123964408891033876501220185929865576683787991240367024437991011176101371397882450920837738295853814377437334642772815477896772286064551419018955278950024231196085228989417807586336780395518378955285434397282042606190626134489456785361480860489454031336362887891955153648326456803264718914904952879807896625334199078222361926338521753246895503244925761796947752798516327650956094257212466218738315590901535258512102720202144505112537671626630499457063829824019827091934796707557389883051534384317016309804612025603904822388243686709381506939913370972207416398246927644981486574427334729356205941597554684202562727200307932297237033677217899383065694890733255682900467264746691676938538735579065407382313290377977964101677038069893850088122868543628871262293204567505261262445813754669952799706139323655603377778032314811861091081806498949995743018605314077083862152470000583219213935813812682515080896467343134617204728547712553235421039432051535721708931515594831943303655912113274037899770571918990288469209133545645334722403049034026155195534056833943313886134809911738413995820728318260661192663768840244139557098425447419406109919167945996533839866353932242226263674694598816394959600079654871090965307446713953856632846306153450270619178848931131165805628381600883262528507301670051911152148710354265340432427579641064280685548501629525283968824518225328386550118547644404522368207787551635155013831411827937241351276258118259279847156164526903708720569871383563764407824783378951461978878412741011940024751857767646367486806289690313889995597597022093939216594782091948655379935355117323292747918646356460764407422421831524313113233014404637459559243058375581153040043745712124881662439794831682921111189248041303283761554843747287982276909591644924585380015002082949220705236393752584466627181726758578673396264774440329705737869594642919906306424545798042495551445268606613821456902850739213765921824764107912760043633466341732688938474004829658739263885371680059327577487649171282567112498250456592679531138484150624829939557205423391752932995341082108869176804222481644107639994492670568896355790977176763201024569820866144266971907740377675938088609063494379451172625689400770718950481338588502206584594785322754721817519747014183301833420025016005330084950170493348020404522539231785854011273002988585736738915027159648178029255432502235875140166187097405930119320208971223478100789044557784821341504708315151201875604650235533529285966863489620317050091766366400957270972050012047144413574798140885859353364727099358931820448906099699876712907947095707517705019006606434738314519149236668179869986546035467609491028057857814904618227289314834418798741959762308995942298823624497348719191991431825449372989329049859839956200618244897296618188189626172644997519721295911989299574451378443643589841324655662433580695743276133673665072309274661014656747683223306268873608931517892350390720255540304733569228925617553418653228859401707537358638041505897527603980504392145769238071272179576458652541552492432949378697151417674305587006276072637721483321096972158827434155591874600791034827551176258926740671960650442759213460076340559748094981791376848627070105353953151709499835346794833222902731443857202507283549343943428675179646856480688049871908396423321154984115528805562955457768864666840660084288634887037127413915651566469741792886027144987668000325501688490753013197360809606620120287666495092228695489537502683477352304226789511727835619393254200707716756300884853808099319537225609117641433879398540144827304490151604843151601135101189418395479081787832616975836438320006349390325946878658566397738947153214720167624539416753272405266413848858900685561578193139258448321272257486285584950915953393670907924879183374152875752879365789014658501651228589810615340008571362297108883260704330170504607430578490524333323073276473772001276246187223630716058545500687968187931357389135717507457709601347774099969137415506265302847836320779402841348987760559721912959704785867368696537561824460586544866113239633002674044257845211451063617275482602067701009522925968752208299955292051380925471524073564311757486337641338633126520058251377418518988487107510190829722146913348240312976330359086694751152199981001184549923734142470695521597699941195976225210860045836444257479580394434188923234869798369732135410137848838684869745106504342682693673522548001218078473700769065502123417143964793164041861949079991410866941291281058830468847361561237756049162381569195739227133101062881093995691604778191740393533944379686269954950089642213519678000920743418578432219374644147054821369261926762551322353475584933544876611763076302130012875123305066515956384305059013414558775528109142536303865177597285788598150754814380049789907015483790359058429407873737747820910491800713563031713025536532558608297724547735835880766381774044419045757108579916618910463191120660535187546209682438806992648655986414143278791584780182592172289836953981244554942937266856429117822488909006124042555702357299591395518188995464558148729558936138448723793856640447063332988018739696322570968337352560464714370085924291171264273313157192362736145117094940063359126368410640962332694664452691107970234489801738798865781354862506198557069632346509064737761639393345819498515432170694356920074494376090752353161661629705740964494299662535704789248783554101013604003075341487806620170902987714391716858239763031962914125813550734157421388833525083210515686519517402237287836143028784056238428072003632677163638146857264067465507690241867184395668985664304651947990338312262964769702653152963620413933237938857439768587904023923667955987564386133263235458556926744849659606718640192993502307766678259235761415474905362810240325597249484959477021941174967985985504461278277405840804002755672842416537803351143072215708576234507132369812015719970735789427728907019564043453053500402792654730208563893320644716902837289278013088320775578455038358580349334914538691844533659713406962818177369076381800907852033990117895180750842020296136744592902490366464981327687953115644871833765951238703711572504036869864544089159081480985689573354272413150338277775353470695669599838448938687115466802541938524057937688681608276699558334693436036072307858623163641129152413559611460868157695170872762664308937130778851777195460114730767002032757138031482979342283810211817187602003352772223678082081332762455262397726766191402098607486955558454373168576203414518945791264817826509181587867687138019922873284560384436531367783589129538923290950447202281401776841184158697219536163972554469574656560303621953544359095075954415869075109461999376982013987070121717431584935188344703824650765174688535325663521712709639867415800384153692321364472398503134268124449455522043645843320373111273451083683904831355111502210023551833633051598224696608995884936416040928419343621181160838484526738810994754537584718854076940032182440495402120447861724366396751701157808192435918708962738740569734672395741651211657016602116482879420571283075389474473367873414983721948783328975171538782394695941890106501037855609455824348252480089745760917659770292403706776108629673866862800647337926743802413395245665103371714791612898264999895631304357883259203262813051905152134589593524402744554192833183536277364452820601863650523853624728805804796315167323682552923503861103178998020414575923894589638608735696514613543875966935643430260110660054261124549848769116476474785399479776954397882160263369712029060391714754196193679004777683670034221711623433052045645338218389664355503758681320087495141100927917650848546381652645344918999998259166655413289881517583276944867189703668685744116352681069300072424003117035866833452697538939114475810055006350370035970621258704326200717041276523547738115125579450907691149192218521064616619230564851857252105554708852025569010140669474848708414565764058194286000923243515161377660707191807676801896353715152823472874406421827684733678420325775509074557715983202691333107839815960863118011711744320764780845278235123847428372109817176074024886901167255408542438802166110985626990083948849287215091921006511261548720940140477646376113646459465531165379321503935703116764583147899581485110124214236925666516027121221081438251945283105722716197266504556689384466044874769253513432556870823502356984031047779915723627260531448087486074881557742357714344968743264953076339254578410536092072970952793422987777832640512295271364589361705284527888937984389216693532534142473986740738185723320702219703198790191202696674435303336664126233443672683628961195221175280451889759823583320192033923686870500732867072221309308633793710148558747373897738140532188293080521463510722201149162830361782918343632406188884733196799206577417647650751790638801727158394214166819297536839555229783601154224915031298641097343560927189141373512947569782956039396038426618790571102311908710554064499914532348293237103791511329281408567427840812273895899078107791344386941363214279202031736618222878818527051551745540491171372813719364190488978993465688016947846117535206452941035808319162428429367100106683053174045462244800896295077004752316220027450167150062621067586917320192746770971712544084429278767679300025474402614864946431917280706524003004171107386928323753352600127734882981783688082920208582262634443718307280455621799346536484613533064178463728047053032836023893381871962664062499950349354490754092953936257258432176519640561028219588488650709550809111987146415375700448198823451102921613977333787972863122045077027027312969452171137690690690987565295510163695287793151992798532011464068583718453918073089005442432244787352966611615786550314516763296223305347766661143849865147993188373919747531261997228031536947017112257548384520368243790401102015558514296543802366275562698498161864055579307682782677664369637495206926286279441270846790631667495502051004210634479662970343207375925189123136518773527792641302684859093610868146739156065693350882272588985371288813385119764262150576718468231181275112108553091697662491532609525748550203710789452527646735101703252121680818560028427914144856228710708803737703399744113707032699064839076828295468959301188385610195932940859234038554466814662300771986008954272221730247169440723251353924327164417778036774591843830412622424321468141806796973208649422457667180789243294607342283945976909626457466706015713574381653056495821535626534381804741648118049283871564115068108729398484742404229745755691335333157169172682033874340358557354910436110785296000931183469508023326879200168705947233562020246343877124536777462400816846148388741637013430760695257521851072209354919103480169883338844970099462026970923669967724622158882331576422461397785804217980610026142997351072080881120313903616105921497725372954041829732221717874303703967962173047435532104612308028966904252930678973285065899782164499474893747131888673804800269876694888725538256689564372186125372159217828945205269034304608429623543381172343081463476678193752848126851922173829892034097694611562306041026290493963205313912693158097117504211609070931925517403898879286292968801889352020831988444552740273184905327214784724160720498813653133655761583600055127110838687405250846983139472903666941097643134411127797441779474094209166502296331551633910778390594392079074866365578317539361159772870928631367169464080236277195766678810121404805484441167646986641662005882403816222999122681763022786733204101350649921420195215484312826893204533374636428713636321849293553254090200201307136433033815657557521911381046158821538232206671910160665259656832208059081565049786912996167637390654829944526883762963785387206797987408487821646386333148249265582843882857105232983165550997602724257217796254639940604038470928314908987591505254827153112588735403779630744921404204298518370377863163963213253258809519095817406932862872766679103679625475137673388903034516168509868369910176366877552371794039328697188038331301294205878341254269581501069997001404474493584532735764234998007271218293670737018187843702856099883592191087499972352365270382869261389974897790377319684091746379588217395568274791854768565534157598778648713565392886463897216746175656352741002584454952729908611329968289134884441672256025574181106640916282764871997200800739796903458953819227973656220983530324212956893175999649077556195272401879191843886860034674301097066266800716017857260523042895984549355556130551176783492006420522532119764457288488835108748588011237976102510940826446309825469510832716840092609121687411679096859580099460084226445305016058627355808468278008926506503652824220648864815606500034231946589376817812936695074873037043420480808961134814133351842254443601169177924954230221554949242140103138412146178078283162412276318997875035716540544560476206213417368872438127969051215186065260448245630863263976151934472111867404750935650095750397258368486927249371040420137895617895993287764348448537863078781463697080414626945465541047601578180559606707438778117069642964374242089837699108479784122661418379392048260048517296093706021185442738521760901007098687656381561963252470365489913314151896759085646434677034863415847003403238279770458812729506621836629289540863658311174888368562001017994546257329281529528392232772850068004486271523232836736353833703339476685276124138089726940816151270399780741180395335280929706885624050006739204181602460606684073272331824396416448000304405348394865317341844927120898943763892039492956872026466262662213378805093666202562085374523106808619884726252010759948106573084870517439052809124671900741133584228009154961095842222237091226139931402257400237343698257545827656407000930645511717668706656552652837145252164861765259203440884507978479213162878315756181960440057069492690154339653306358742869072936279707795851586348729390892270695694902995768020277770017716560387940208003277694856503001453234119170436403585709753989326690847991121613206027058242896377339892441011195030024289262579732324844378479582481211233036143378243217794696948458619753405762814641525298523478409688574428889814803804138761130385922325691696571244527515822151874552535753664847898589142003496648458437155497031785740209993877951335410349510679695266862552487265219434541898850139110349809530309373843051545675919049264166249313262740765910754607854653439261677877610938183553469851692873407908844938251082351301730110208585926861286811668952486778443172421818785098639032678766380646521028942195863857972636388648881367274241769248009570061858565721493960940552949095419427168441356087849804494511834899185632519010783282361831332339198788197916058219819530520956443679665821547085648204631153361885326124774446431364817865619408426398034012351775969964315444044697336738545548430212105421554890515399616177435865055956888845471518085542979396423383161128728347881099011922955709329788368608102268537524459756362999542786611084310948044241793132916956238402419869157595737695470935048992142707853860555551320647607559248368924213226813387244132159291434238649479016485282234219584897396400267439015246883615288180074608090640478147799803105661683545513634222614085160532809765681780796058935226251950992053196049244862330861285394849431781362497948555899011265738826397084910059359572216884916687913474575454656620224067009032620589876967087730239579532035627192342812349901088899785580883854947091084580129402690517875564136040724877077329650847622209844676284983624467052957202025742751892360018644609123831240314368792799931505911421277525789348058521715681916862657142943989577984275526544800135762973084445686309206844243369334208092215461550230230114933100257066634541476813439562047598549676899157147184064125755758000841923154874094932916699780294432305483623945241811142553903919746483617469621765008965743570137884754040182476827429115233233783706161639109919124582270101110292346747434194839704723319703894280148123095120605620806522921083015957654490755525933819641230891425932401157676304349894132237100037093328417799261874087433833973796512103018471239512855605013052739034151747151432199219497858329432600447454480103808770953862032636537373733133427213510329778153391499389555477139135172431698596491917278450360647756090484328898016151406093842663605266864562569467541525180984745114157929903119404994203490527823725294757835295373096070710898939530560528979847835115736751122178608960450739438481364189788755318796495647957550919657308828908652413441999884810569694620315357723752098850185076410158273554810938838936313320690604017599870087697596405571480693070464481132195718885149377114523622036962168587818052267725831239093820320956011286614338507448624573603245439416611527796245103554017376884793361591654535611161462306394471066133789067134742632145165927854398567637698625404758155743539177889940480910859418364848419789199995217037315731948644792521213842467212169409936905360946955777492294147384695451594869861080701874696691388665418769877287491973088767135228025839881019077096837471683808258277602215533692558913382329221398172593744890744854241484688287426266187897771201834892261887622222959319595996173179257866714396086954987219216606310154515200329991538058205167447338839091047589418773698335046820388563024557846909406167370141166615595386576575494130945281471836104339272523715336354886517492598957997679280220054305368154489693320681502983123827341655298357276629579508960342854337158191649788838025120885853784046874118637139916754745548034225984801604589614638566496986243906235532961043584817587660537985764241261961880347690220208539864841333138481355718574647790607253214314089578176871357729105809002475416132763234221990795681786268062316016842178919828324824347219941884171818825670125976784847244958378383429879494531731948067830711039090848482300022270093762766724419423654179743861209426844467092898721148351543911577432142188374481152270492207173893387279287663144258745898149406518111657558725595231594678929808295714134225940853712282797550173357439982226565026176867267265651028838472236942776456018009703982706545253075810216464099129197763108423182558590213038140333420507058206524728685568492461670274144918502877285002274469056657597471868643761857476639520645756323601147443181390475294382060621552873111214305959458198775609884405045981018869891536521116997348638502693759274735559439703638724406965483892844111545400609522607646244465366235248843842015230311776639275377061887201286726096913902528924443292871082011944730030108243263704105844296405275542464771415115046363666351126193603021242749049672325362866006999903297904872802043815391037327196371659140023932678516373669818441257640275373749099853243002089502510631304732360983780164964993011352808068164386412660347143852129553174134539357435641402988523424728709072852414735094733076896037888818634732522719379120371657040066658680981589170579216621569201564656709825601952389235855278186526247660668857076235586965201060688000398888356674582733326444432115478328671236514416897930396929624499873854547068159278295488109603231443802721887622426685449471418827145819472517360279080155997362926001473429846791826025858852052577752013940966707649316093046234159317006474971434605370813893561636715327195708122199668954371418075381034615534235410778160238053996518850624091052087326737898591918526122330401783474529912927620829123807408950828114367979654132347182819300295770508606418985708069653426754635653279272157740719663502609379349934908135349368103667982659478098982102752877207966647023738674290948736137055167475670916501417233240118473705159723062834552622048652554237292179116585828447500798666457161504553087869402268999181550865640826856290546438786754697606476771590675468873573274415459925348691605647062511030622197719537698101952461537278871639359170267184318186194772963035688880423634668941228315496491703013839732134394214303294898436928064648003768412975879953774430775371791640239808495795632498439251925212581655744528062752702961513245491061635790965713724995320961054760254003665600834393724127802968106621978838929514331144975986608064496701880735196090258344167308959761079605754378135282540639691378333398072123209302602802774017632922077279588191262509067930042861341941644361278291821394401416170980109039400823090375509376127910432307711151393664846696568789859536057064975287185592989108703912388041749789002665715533330055469571579826867052336019205851188116817165908692652103762365150576327031159362332874464792730703502254343136880173514744428586498440236094091473229052303386421726858055683435274287696432564696905357635765961248321327798113413656482575246121523489946834346649935628730791181290238150477752542365886636975788313393397186393986243601986991146643174783955179371494802406071620768730405671743576419560235636213760218125470154335113514123446961899522571949542358915898078480420523869678812339150764191970133921152717940085412517241000164525546313282424416957748028043027017684496386679854218007224479644467125277840798499264713068282888717478216525564930905687048431191627949447284292435449169926086296725767052986394029477003405229030814683550997344495686317588154898112414484611144994769127936198680585332492825877938637965568811014494166462625331329895636941530242149958287566415560414552572408823255851476014180494712004565252733277741771934211558952855142132615587941311026439922452516625633725017125832312862652718568626039390910880235411698538566594990110532241385594085819271788174927248124813909635461404520455226125661820475442692060181567703408223727367126336453559917681980713117819350060000740431287552224747372470674978344229224060566433150271539610109714256706964317991019450782777102799367149302498174786874240453162184523155735587484333048512739884200571138190586237842187538588099778070672395521248154565966940722047635178326385583208025769978232856962146108549294133173058427208855179043257013855715361064907854293109134597870322544450131473976890499300170198565823783094144609294590263788493562273293307119557238593256432033665432306809579353748934653941743497456316728507441711763126101570041855738987946721644974294051753517872476220719404943156695633118564808102999051899206430083387969537710077017286952770917999628517702864853006518220287879074644953582947580838024927848896746200434493922039469995896435597359880331845941603833911026906020347660946862201537604728624265506666219324891583866612189225342855996278930047083992493292408613956334707898973733703364763455444107819416866569872715109515938643576941734192220919653155947301689691845268377573978861843082193468186275740368118878224180779965455392708074992390624339182488648301083103534021313737622119130918733337600164214963048857748684699904517113051506141714671105663949022750876096245022313568119330523516460089493613711602292360044206127895628125062018262051184736674390693043046227788475545656016946277376509950664845911674651982712089714559919981784281983635129618541394422099210627845894230722307080820442987540317813939863021825258393743377533108228353251985592364954003518919924851250682691867393241326900885811004122979447665941174919102704066851764882151658650384913506742343996838908970269026885655402312147062988256064697309535709162177490333230749328796151284955898386853239427009063019131414546176387184238974778157752035062249273768827845761137814193555822786552672105762502779589464247477669049479864336623554145962176689395208707221730047179561538453201868975437392680991507139067955867046421752091171727806153384756426206021818841855747276541132877421213612399748830524372840995445293458125822196901178507900914093402433060570743601299735202481700095388646483934397844912225726461242396273047566663577426282112301881840607334933646129801508042860183178232214586761580071002839682170636959108585746376675543518063296606269339784767038646272268261202946585291202283790167057986802687692748155801900005273101270683863775827438774043453159089117121439203448154628428675527701074136329018125645992559003141526362197037297174834138258237662122112464263536338362730266542614129850056023820016610349385149566665079400186086369716638600679567735102020569154163990012059127136360251001459446010463347342642998171062189552259488193538089471130716590907889338481764208698129243047416709709414812795153134895963333889409597346106163197994868430373294814350087405735822080201294997315224159786748121233237738906537263343153423492596759187626477108404887559686294267493983120189578625334569103117585308970527558725582890407888903029544096656542391806322423258188338830430120407657059193949856976969273687205243155889110398463049692463756296288400329394395159408157825612352236863412011864434949679893792272993793926110520705704528285829318960328911454416731777740124674485812425442958125148280541683136781355218151757648375392952014415686466508355226839737107094545454120576258943649933099335864854578381933573309133620291847849973121001867847473674117550828824297378012067907428099533135748150072707524218309898793243087676650702800921449742223756628291951362463028018732682165174582430440957340240195243248228636845717589856175152395938622139543591559028689855764058535648337523004619600288309568639396578113133415076634098662266417153097110643739112084213587489578120949260171009095643233328087403995470870646556783295599247650313936786974068993279005707579605182594937467087231913333641537695875213551699207159155144448983837698329165813899711533128687191327528041771393506963381854602055561907820609127224969741053943124322744057986235731266365115673486674112343357372718858727591490870310450025855263901092408310099505648403138030653065180584484623481253109722252050957132702404166409267848836923123232688331309508886470955381128864456030287183286176944332135849095116251169361493628738188052243850208463412109262204223880014975138629991058877949085957612584416165333774630529785099178520833158092820179834395496291813738164788301303121696668321204226624374172043748160105953227521354930051568677160488999766054906722698355664188907170268392601491316725924738642532696588112537949096925523801785919188874139914551887329883015049628841682857149257436319304159363622788970623977042990184637481247279176891063261236603652246484155124827532597161294552334762379744216006599696449753921068261320191983815431020793032983466738767369891743232145279301935736002397721753212916053658770019969720574598082040854049087238223592676001688643630957539511826095598305325378416906454676842427075243533675835282864374008693305587645583597432887252911990869408211528385760243591203675136793994325278310048793117564897465898136440492420809305068624488242450374780537178024566249699342380672880285562244540285077687058066770462691595173878481069714640810669172001285509871086579686482063555093648851577523322657497935095362802699106062493046629231788226191764102959977358831430657654058675788497315534139615365787157985924278164447647835752482759097870451697912780598925825363637262230960722706899166377849488599175843263499135968647250251397363659072820048374883023233706154502985129913416962946317069631163810267821255277806239153301731248392867609280816469653343140074134777956297069012894905493608049758222824393524405250442260063479523393019291519649702906027876396118806087069192156893971592914663957382439365863983967993274854429931410028749305326993820683700309877415809436130822998937838710283981490562078834040608908572019182691811266260732808557375226018133549966566407260972971948587618935934629107736496922658229330047473579143917919869948560052907436674430037675926778790287382759242087389487736444525354418453653045944350673127932726971376459904538710571916342586643268158078935950742614424833375658132130752534093239306106650468814703603517400953039910641372542809998063894678449087239006036362517723478897005896378445870310469028032695487573531561798857100348737471791024965767896746936268325797584275713744519249142061925312994001018548054975909906658670473982295802716062812477948445806500748656133764216640284807186538214908483548736838148446788628382933017229602726518653554522940671327456345576088408128500135545334359875430101890861661072172986538413562654565073836159087018856374694333833273630678033556304190124628148786415141792541783398240823939549936861731123698616214218960743616367265309428129759660639418926045878991757902461624825601901790708543397858452743238591615356079047544072461515001903577766977816706202057603011478216871818813974193089847927779130990558049731206453536305658897565758333856445813924555616519503324006170464341946558102806065417092365490421152805087154943986731153649983102122003483753767250299480104045961812907797704506407471243666162477413758436568245429164766480103246618714658656007292441645391554501410309522470319274489670322639752321546426288524086079758637222923154394688225489363248363507563314745375029681775094312724753918973586591648078602594457970069461175232157657635330570848636121699003321725947111707360973625704880288281934355170726353308421232657752960966543218397896956507091929434887044641072831991914867787644175782433850674270291734896588795389533166364930486561036751997400255583837735866900820723200785717392304655987209914780952957669672552952055783324289173729810282103777954859274879980620347722385276196353436911081337864420096126630945546364269024949122177054689925994583410575388217604555318848876995684293176415856839541085107544285562385568207302721302409552643865203241554981744491989609211756814876008892298433292303914653911449018676687275415204536261980445418363975957361951746638203400807210225204299054788056721447546119710715784851906921744129344705836522861450263818108055929258574266711079120514529735067030806301209743995670052680686643834486212781069119336107686601937047105245901356092901790117779064528495001198199534998246851604393380311718957108022577394203194213749233405661954052181425813799479908920963042053383110412058650190454109995873873446010565725293927851311254649845940808651750466560965948558678313609667539276913639247731203326418095302031205126742909906773084208860545448256968307921883901333533784867303524443038172620246925541463456141072114212166964762268455581116578537592670836667248083885879148856334723946707678349698393220579241956158831168702121638883263206425632442987343713841223519548341881430419259186058166342959442228427228972937822676539126124190562011101712521092334454421334766431971254249998305347710187817342595399744224479569263134794658286567182279903210895527476648578523969108196561601590117864253630946018206443632204758943341572100553489948389879806800584497939089824307513885765286455648267940125404798142249331230434683097654749553827608211068301044131979635447363921878879922895407756920334029050015709961716141378719229750101581432998559657778704552247884269236333368447004900645257745156367020360072957439514612457256870767272794774369151357141459979319196566694507063829687554495503624594528607024567276234869720495100427915796034066500882248336354962359358648424428051276848809331089900197261103381424812824214394457888495299168654298709440482465403437288293723913181956396768555947971918749044420859206907159937434951580535713558524937272448992723563378432132717940289077572289693996006816042179794580966700283950338941003740370334499674643616045602210354686967790204703436755283076275323153169982676344966499254579287314744112578711044713690845163986695451358693032046553225711377563803425821840694008848776789644050428839638105499112766505844913541572382238325992776627747436992565701545657806040996348735314908033765584382972636854530570353534510909055946903774689403818288997776961044259875908818209670601284533777978874831999552523494526998382790760186983754637123886854474476359446869102661330678578208161644027940582997487470680949911677142551599381131378362125169564279254370121342284432175788458447157823887440432044989666893978428500392685533924259533239858957220661745359886754778689978544737352744905944002548849345015499003882837380087622802932765548619495341087236942555702080122374209178195294180451247602346423243234306408632241410330689831330716787265205475154970047661303712357962659584817495471076163630445732174085819782858774379550547450248772603140456067917017837724592246162977038747385196549200843054780499860724176481536828942978900593618437481786197481953105866080488335811781411143698858910375523998286242032020273038263142963890132184787720785865783099833265122781315424461502411720519832168493719455705761379063728324744580121262206246329275651902503548130843168987117026692805123910955480985521208123656665552171987447494972893430616730790633906406864490003563377487768108529117865734569450676560428400780930786575115660321407420801895463765971577188075119125483345650177923540829555324037082828180840630556006052988249578158042245967559729397574182737631264662750303251508487405308623462874627246752409931299874575907210390606785369474329985894523010907135045519882250061714997560716654011008955231503971333581405439380410725049015639762188843200246912826702843254142555697292032022870585640513186188395139134963794105053495209134981260780185914437481378449502189606894524011090253728379509476341336643832347472017280905519414545976062484474919069542679728205447932662805863734505317364038942992664381557363195821888663514446577942129249211870036936873586210030151268421238312426982556743300678037455480629002966322254573386782703953809809291827919985617243017042659789931570994719236848873389711855310521546212643810354004751981069403991931555735593737758868616079801927913081534529296539014115442232541465275070277468524927349498007032194455139538813500578347048819499424311639016643964429119057856866281802783796794111544247081805505872109855521145580694095589374730940119802940811511780095119124323761729244052420456232291515066896997663378195877437959230277312963240573346827742473627474719286047390128322718558354392350527235510768653619895338550574830310206791705353384280495592682522973771414626582800909296885088677172860153409915176799468304970738993909585864738068268532166059810774067890572346052051639787435133128598664161755442329841635315652656689305624252554348695562491864877102780015983192847577208958048158317663269352485457236548441713533807293527453198963289552755410108394424074985247982957697999123731336269310058836630584054581750837180265966919203381679772861100384537281505212550088980134598675643579870220642388459825791804811908104138440184277592549088438864802671803947190090097070674130012269545682579064465113390172325198264432356286222981180289182507481374393653084667784714288535310654539897803111384275587380670013621202714267622245193093748597352100921269806744061510780981465533110516737932831465214701066233084423568435593809383008275650880296934481227662578712984809821232682749359149578183117337535284365613378089665771988567126789249093800245901791538611314973078780337313889309256792642398647254251424151343683904392647636968236710794894381371040555470938694099008282237630572434165363269076468992678739921565522184644337092250627010720834828530134438010965015390962787480449765354327387554000982977337060310307661570889787721717576349165618266925407944516985030809167476625386471415338648799360116127544370955306756413373384120503025955082966229174399665354183760716304345190267296169227096828872736343385195209397691817036466961108130813400713395915136205092586750810201567459635490084535921209861680545468202932453419681269101175274993153150831310724385380031755801663475025432144853585027944846761759301375734872252570613423426671832837326614183778969949389994018589570888854943048041976860948095687417183880404993966944860265617465249249585935799484632506346120992521380408741704523153762963552077459055144594008769890739368230950961837418596726777273546905663764776367992951504532849559990324219194314359094341055669572511253909698345096710915771444982841886446250129388903242576327458087141004025163417225436738445627540856827221322448013801867015371867234434983789273873677460490071688791458562894266349257790629388380995034628035791525529337026745723650146342413615749479785391585683812243889244876463473932342985230098110746020460027842105465361442265634023235652443986169087994322218940048504549013243102647374247005094149634793318506259342946244333769798519083243031960921291866998206872215866312880678313463942062911215203437035402749060737667316292271122840752113814594052372036365939997949068543815533995735452079489817053487672130909831003860043494458271249479259061646074775857494550897744639462091181355678000666965834237141616466204129593355471517164402040039066648742155532826943061659977727362910472143429349292017655484297540498719391067469809583277402282733064578368293144454398549402838181034180838423787655680165137091721081918611934207090533612980208669652804891473164110765012399280237255029113583244277784171734587626442453051962896488184842357028685323730662359448096780827665767548220477260810326143872625948534412336818021781800796893175182369079960803631908303074422677892938341527541648508710753399647671297948732546088356481249212734547131690562714213653741890745495839733803812567771649926026777536786543518432951570189188135103149698904906538889979701271303148902595733698639488781937244279026826243624413206421188076144800748896573714184009861904478946122003789361270034777532609791357189171200489694177360739045202504355907866937167640376640662093348103305348542965681684266558393017142327174946847845107990968781483111164313753552126449961717920038137624480644466355725439116861480550217570700161170466953609916088462113692836469559544442793833780923094261386817446309796529707294054783628148043546841504371369081191473935194314889388064173601094366634341657560683567155516031673327689541044636376279072920809117997123770219949979769324527364151787758218826336751692672826456141497141427801762827991666671734872749443112027475102881508439667924067813871428532044330734962749058028718453162697546525685616632660940509738369720252645824487013336169206328339160992617133965972690730258124694559346521990789350393239250254548565575249834222868900515355286676056632728283092037121497722953980045781407101964454499408084435384906156299854467300941564262160494998852289268600765312036203245257548745255715570538893386989673822344093653427814354519817520018159113601189318638669757120056401034501895465271701527570589996146669589597940136557948372561057764137627035226770405354596720851516989824198898680805328466494066996192375062099223961912127820535948344223291379331657580851200728626819234460573413207712738949010426649445509675439184735260563963190689444505124997620625992456011525767796432825446442810546399010873230260790671189774625090468555765779416979108166547137953224108324183306714799771209836493653884134341670798346212056515742332080315167389702728706236803182283278300552789746372315231881614352410172351152861181061892252851323401968175624829592657821652327151840448760531920555280119399338996424288882037064601048755361346941418568608214447167353199735367001786692272906000689781425303687422923432388581117343950631946547377946793944643759462598050810856808088806022140508606238797363447612759210520749394872626676292102903060964642794155287490863368022216171532866755913981542448164489355253319297087034977798313571961488649819390076011964271457049598924271738520135946715927624620006460554440563564302239790834159536830485171900625020768445526561098744991233200587891970256758869253661978442400801127032863480594971087864966468906263930293412590098345096976639242465005363293997683870909703114880047650408196184335645949808740262591936160782646328840385977561376810009471618125671086851279761500355800013890445793120209197052646640728461422781767541974129810841086506912567387151023366837796993850414114395013599358302108953108949896298249771151548262787424381052405131169539296923860986071710434103571437665088609423167667999827780502940366745385571092205696084494779151618826624060391704764719452484784471555827289693431864106595758276011388509122179633575709495959160168241388810201146387215042378555222010188449038573879511086566679858448090120733643130262713632885757967290792005479929700558076136601666339067594207877470440434440312047785674726715776812188197547608537963258767200081916020175533506806918235938082829276718911510186615955804896596750912135123415314185010273337902253414034165371991785296679711514742521099401730767095341060037693084715950675656264065427464219702223398153178418108178263020661523392624885137052622961466336317749411074072553304788171370349434413456876037653928390881945584999967864813597950280421784255674090007994605539386729321572062753318364052572357518984057964645705418362019623311348742702624289552126967754694962816552158460531088969689571419858769650613129754700206978922477576585778237407906156252166756956374922791392122005121072893312585435118889606566772122308429434561060439069852348928374506981441713130317980812559203201944843763441466650652693528785193828829818744029478686405918762630508308600355711829308033642715556219887360456201675831325504307244405857318512526026751915654996594300603862770784325306831479948748017974721888173146205999221812400940347421975488267031374353489365833789251841798391413059525485204505957357849306896643881281038666391307170596334272653578350042104835151822994700738109149304462703519475061022996579093662981849507114695794555519582383199725698021938498448936020887347985808709951106185611020893161199321079296002471494067823594348135483840051308985671626596232002127970917653812530049338779595135971519216766130195079714702214985724977547656670155942937304817416172480687902300255224031320476119080726562519175612313294389156515699158717278057353571612616863956265838175272675684883363420554601075377753518752863803562841828140494020225072561051983645987450961219818596233041196531478309103647532077547063890604142763027136493348210067093556077938694557894601063537479746125077308544678646116300818658536686907395609832546220050265791720524905466947227730236132218163634236899200160820762990829080798845114906805830841510069541777211858444821924104477135905890942252574424756083818412006905485215585568304796711891844686316657727340475622057467523516716528861017573130876265301215297987930850335341755021070688060418643927793934431328301073887551787254916466676861466876408929883371770352802993297150569602607786044091538254378969027418403690325074810631346493049773484374603822246808966963593877702217144151366768180392711128554664422740895639177314898715839950002576406542228279570471683777962726338494893624181471271549497252779173881034538624324464757452854138612406932521482554895404794649271268104043324059827087797449759739161113792458321312336675894334598656110128596375911154464712427426613224122230859274675525527041047721709849979470688692297636125698992402825995353635186873944446142473231159960363466939801088203201527780819374011567643642716468795946691140408332054782303683769945742105368069343882804425750638395074638715404856043723215111568437207017907564289538924499279290403918498593961694618800949303782474223197894818706940620293609002692871677734502608508299404396581188035883968094943742538314133995100787675286063773331722514882542576865315108548280714491343863481369371649458298594451232431632535640914851051236131288612731242729196771705699151568021083451486573073517686206200413518876697001454095815434361911001319207164591248497238067388762178756354138276693733836027982780020412940185762324321620209580075486693994738962518519244282691498100110829425892525082336652257281610601779280267874987276110704724062436291972363196026522191021333247336371007347547548391823863787163539878521838863586496392729544718388353007187450716662071536672080883216166257971031170020750395318353139811843755059543593013740195130830606171386906785977379795451846297163755335451027338849742903514867240220740142944583514876861127746487498592704710800107350768937385414128572013125439491541103679479827077358334734051290463848940020348575855918074988488265106801476251106362450053896593317313394142035584535649502404396088113962970355888109697321701293013741576532773703620359132045369132461886158505514296700053536140323800431028176020239812464887788830178381111273742657664145176109737555549031574379789167929686542699237249028584911863004634052916378492391359511008553287879412044362965544847626534762327463448816733497776085945362080722912607900809443087773807635848383193673679528577345496107171640705033821918612445525960443288720302251773982741419344902925776742738802459884882730935542237348398981649471908814908272963826181204263763978226630560706676629506102835754662874322207277514084443589209958549403741776340290821862283380851787681173235137038768930752180340482643016028249320858817446346916130578504792892803066894866037072330907480619293252005869682204091154163341202103505994471675389793642721944112443610757023716070825846621273248432553429671728755460611878408435607543333020296560164946377480943234048022284205767362731272046131858581485374971442654016464252440500421762810919757901716508491511271513888625567438879050776202749711466543118262124571427600730354972398982508989301071031437061946338686592064259511699734631735407007657265345802041254834965864478063251125046822593310902042549623578241972103632981517219310505118201967531153163203661344823144397100635015550605569784239920177191727206384899552922623518939600273257758272323728638655370801602557178807192184009436003808672551345093866210316571125039955057349931926731034744242817769747261502229489681145517100617871971287572497960996886621814567877514689236624208321679728658328736354668404317238442452136529724397827379634392705580572017016587831364048067565904589946282796245687102667055818804890672087930036386657701491087970894998010726428696726932836126553790165073720989585999249789961203206503404245208562376435431594915444693221387630376425268251261446202327870651406877093866725735252906865527297337078883487207604377731395696494869151398644151251426673530453486892174694360123015875693732408725748640082356318150736672903971700075301663861091629703972541454398686991339517942022181934775914196041542758714557125588062608260325347723812508975890941623676308098664009855893176347756709442272712415881747734666888068217129308148742108269671910396549476585460489571520803177894334730364328661339525923560913933228994794234605077266654501175896205191794020685751430718968502349008842352626143149521355946727416362954722021796469426042729424381061292028367567589226162401620549792564977791484933779437785924771875405195039382393044139131423671503599792855013355633117826361914133320111518699989338781002028834762226605918196729596358493680402785528116947739514333041632313498517763295853643944376479321726073917825436414441812488172019521595886801482398426692478557836558814503334073806398834371618910579089997215131716109651085105056125420572823392257094917914425481983913160120796718770471150882235166071348490018121916339447179311109582786664066789767159521266719126752028340148668375821407431949293380519702255588022537384151416616329686764535783631074492339518252211054020377291230112753944124707599334076096122617524296981872507110886549485679957265912808962938871586338843119985539843867907857099175533517039033379934041224090995534163819479882133291471303783533066960578184220382169441181898485106719915135093842407780878224328746858157364028636743147680232990937315353085586694794928820468455307253270968249260980862354792829679612107624453741693770976879019075609318543006852500560356978031919220546780429249613940629100371982239645359684071348236367636455934053338987510842559940654980405858649036858967420390964257124525529375361193780768532566859808741775807333815679050971826213747064275483629891242035186203497448295162700605431063265326628910983553432455223282162398568332323524279741443027739199913050034808175885791430406558869907649811940540883622849929403731759803828779752525444373027337005439877388750424748100836110892239990065200127132094226651729373287106610860583728816327597593421258280698801788603263496250960752477378776351726806068887608775679020161067357747490682419912488800451395259040095698978961684864133424951557776806397106720955159116878710561839291214027664850001240927433990779139292949945485405882872855837549162720023197630012810332069709402714049672237208060352843345211019980047979233584716177488994230151520714827877868087426082487310963119721755080769901522193203509746836245356489478947578804443725363495488008811805981036878073929643056493012397003846139638957236632345823158712554861280298741621981465899431247163661064327322127270742499975433442960790403673732114401429865442684260704567617069613998028627547433725846640593693240232120767767652017929092034763742548046782165835354832457283377898008483917736104653728693857314382798074472523280131230873552431764897556510322001568797840558278820132198463962566311464349501448697103380943280652861750054327380795364360819068607728569195999685899198924780273980974486411791997470478023983615700896693185944189700046175206417895015513067137210663908841468235795782576176651336388250337546881294655185013717043873102455586670967677724415415586301775774252481804380793230213201221561789720286575509040501515338729433121795609552602710262385074366396726412193160982108531453129625818662229945814181277026243910625018136496679976336908443581382774701941588602280062158668539279004890464651563080378962545189156273677431029966634099797264900095910421114056836057703402283315858912270454855477331578667892771972695627297997352284583220760604412269360120887511268928532738029043875060961043173558321096652600308556275986846368380969317045851133061043967929696915338636118329154436141518344615371500513229715747808912491575206199374880474698993678710455382013118451710791925711025553724347475058011511547868447867418028632770225358460810495950130021840931518550945651882011378897770711331856926049963291634211842044378420030348840810288664431090383473205752562257742206039240505257165377995957519743329723264445780584598048933783004512422415373237572975182707089268991506706829166493870130229317122436217946570252372202756748277092081214682180033974732164549890767201426051238130035491118683612938146366269811685336992815184515746031538725851608904397360891340429703836747056460459350605712145857105831600707499845570965291120703298194899837759898663253009396567038906285579186827291047724427405092636475814903791126394725759259163485345633088577844989378763582461129021596123514036182028634353179186208577099576690016932997331795899185384329330740262168083075598545302812049254254504625736947773889851077292484009575418651749898255110311733157646004320099908521392631500147973179885231215895065675305180124057748130608835604862962006370769239530309566358339928651537056086300745497005743121276934172029533156939039606880577174617536798070698532765194645652703693560354476226444465528388353746045938920330426896662808576875609345821654641565898240701449232152428086287154465764402000887894223904503364816685086961659097980385214912340568619098800328017964641963039386049183494889679807461361204321744259858667702306926858159624061961792593445123992289382055660127579016702038513647204963523498321448814955907253278667530706771222256930800014716172064345645888900536675396031488365106641329577261468588031869816025693714062842851481670725570234973191281152162204484676377184709523737894546021625215533648585707740643978380129327694198529944013633210350619896349973225089923912892637923670684628466521054018606491148866074026709825528185500137061422651946052652708137328348676270023302512243433715616024874428284743247669897216698642447125340730774206384502609325607570201507717163774644278015037032033942108047654724593690707208224674030930691998030510582522274837995562918231626012775748394051736333509818001416330623547602712252746868224992889300440514751007389803822741090761330549515185870077095297349557268436464528036538377568058878479242875369795189366905599855144532802211420765283668346383380953674201439675415888944166151498124251820017651643297528578824691312332959918891747151948943179644807169659586672072291155055835306024451961265396888754358066676729121542820244100497969533047468516445748880504797778970004020405048228192283278145384856591182762760949042685827963496059456815415048789069013796381010246486650897616286180490456991070816840099260456871655159535826202636880072769919429267462401997026729914733069290526146002073676936752343814191352577527498339590362978971579460333780920972892542036062809873228934523349093437364456124665352279090659139728760742762617196414494740806636366578224340398270197261264995004643978352821609481005616472518531732045428656511377405347151588837396381623947419799294022246292224399601464910036985293232567113149578850828643919498372878347260731569226573190232327021795870045574037159041248995809437286255354211122394238072945106580752005851522460510180627372332844355266323550245681135971474091053278408996724564882475213248308284206110109722323752345089347938979578690859250347184494864582004038841191628757115849359676436030984378131820725117842740835761594259240887987129911573347334346791447130747925361276186256769149061260611336224527819184833181770212380497276072838065402289734466090720970431400730440179546811660842388668375822593181462758510086574768989623682636372787511335623511158104111136629144635141847063493071644799125567421936284391006937925448409338701865596017642889264544376746619261906349881959311881273915761806023949156338945950991225468784702027660370991607419885232620629104991076825880299446144884083219375334300200811000412151396878120736030535186490923659870717478432831274613054311496049648506891333797286011145684493183985983349814638573572300277520971298349053403942303647017143309287389697342596144298237132374017903139631402292554296770361143915054720356480258233393691976902754395765439963883112961762091669279822714435757900806748434481328215890884733610816862173070323994831014849345121662027479076778983069453487138159027275814570430071870110363330678354435226711776722978784082608880441790948077534605768139145856953559613315770572271255998825957714993689695191853413169773854278656409901877104645096039926798309831364834252481064928365244020393591443854036554359750356245630576058886478336976685137090640483917186051995231511581465270386051164846893681344123035009771134318855560713815383234775456862844109495286151215256250529477088287273324039810041912919770634767722971348888773805771065978133081297219316010531177716108220922983778014549774669130307682757139431489773733483800031396601745175712277504826784642636292667215622239280543217489093926525008709893620455014151552426381778175517455229250223546129633875247385132307689891097554847515216205088597865619008661516450978618026175686656418752344921106953212980138444360798896300292549959786485934089572042595235505644970028360409131185004827190360562211029228113891678232105366094384782610138897591229908264059037733969621084976786738160161110360725391241698544424386357597033926297616157881374062583493113924182576572683352711797041049952997605273944587460030025240011723532733770133318180455734223032053591084770834641469007152635201407701817048687902682607831195211537152086500279863503042948445681562103421419442806621552892478077166149166203739986654764090271448147319720041682060752311177642633605767418384310107044058359762915865121002694002963569059180408734579026713217055880542160405124594789524872170174386899717598356713791659812214621459858140502015572502449030494285292924800845000414008489287816733113427555155482713594006945588612643933069018267467866154615981596459713215287212306292399680949465398128916036782527091120453859293451840971496153379804411227007631587904632722204286549676921337878308905438431821550146321498978132733351021261936669517530340800359604506153090257748359956651979917904431630068542994348219964139043830354425599048744897362000288424957653064289118954692919008042602824224521097702425902012793593437338732930268373306947187101714636074833339056695588296519318819781401527817514227712645560305007439479128882840798736336192418709662073512281220548510471463220193778106273911432510570284777987586787554506634559305684016063066029062417056144023257706737895788102391456067081234142543179470972424578663378747002751981413032367197626275325454337679152445879926912244574920792426701156907257618914939524616471888260041108264490868243115751334886946363655949817046192404772730721003905033658886753524122387768944328562957364819941421437746160906878053171775002217076500309255671971761748064650878481712199267136045895999221626941041934783452688564182141769267446571199386758195216134545298871578657985209293300200956710034568948776834173912342930483675082440418035320255241787458449006890121526383403585513755103359625429126510493161093093710771153839452645346919968692318808819186947182399949906508370708810481218852191436104145699199160550823915225518447349837805191449540906408366545226931326654669098132950408155269656177087728934945537062465189804476436751866714186930373684658840024400134111542192103307521755335841913041101244612024038504963952797894035546395192984237835703612586915849988968351044975375256886161553060851806267605336035239622815676980875855650441346642775599263950516378067997432995259127156219406852226991016861918395160301242571376120312043201988339817995738747794048189520712600751297149258791121884225294019039900650119275897151510720339739546597749875747580389766322923907106598977774367360891931726820702519685190829983056294509635844607884077511000255248449349217746982663732931352461757751480941353603137565773029833067719606470098055708538179306914389645493857185493827826898134086098717311407405139997635021411675524105875527277011836020917612500587586694750385024695142663939713133020318242236433543671451888463501883958908607901914893061828954414745251620622348874282136074462259783406280131366977330731680806824894815704146863142750921094922950091956631339428450627154200798324826966873431394687986219743822261869114353378814839484287039880678330650090712521626113609881382707178726207275556767691745724527592222726453072110106444453713384247738384672142643423695866189739101705528669173042807000759569483715981049571895767762228244918436791159657217629040538699273382210547771502479315416548646873462988925507160782301848679211358306095104910901149955679493239447524827102722298734869577300530856376463253107773035944964600530276398255621221262806407020615031930120477940257003535429330691727675020733763439611891411967100226745854690961447383052322646469400507635483487333689710121975390881616652488873355596859942167166949038916993667557507907678652071461195858335132334823049325211837849306583956157675126029525769388160127702367271891297299850854045591411507329603865420486709639303995289596260854957713682404051259532572314088945137698729478240036357395055142083432883289262427323007415956301520788863025893247520668107588080122397454043538950355870042405725666750975450480046774081276440788417421673806895139831018278606273246142822535207556579836798703916909979534780772305212755326661115779121836487763471529842643998317556816187975259842614348624182219096521600482412951737649658716093970879400953168846086599513192502158308639296269132047334087016542853435043564919935212535621179168174026775850694938377164782203951833643191595242413060031711632601853178630159257396841394936551093535162429089510820883885286114500447983367310098835366830077494251779470895459796735058732240946064798921980675620587696364680290485043904446296473976215390507189031258160173163720880806073406232712497489903681880555293520685536522675901350561781793244144991975339192339467384327321162721509335064469363422342054445608346715034824175368795828669603447505583996022273044948294297553918163740487161994031031306040631230700174116683080836765986166285757986422500777363937430879888062936329889274211443886883278722302019396639031336313284603258377192364242643652609838889848021143223479583665130628197276914318448918583603410510770566575567121152833138824075974777285148391431571381069102943521458399540421407447407368870611055304131794584377355608416869845171237188783280038886809412291600926020071523627565463406602540206606051997811593621144688146761944065298033696496281860096508737591037067668293055608438689151106476008102596748418681271589814800538861334459570763252601171909941215484841486199929427410377307814058122692932981925600566276006823246037359840332455759720703518504131748536151984480121936991569498696847062151193354675286051533618481340443652655894559596838024889663933387441498212985427424127677261225068213774064942444700170129406658362756696460272918611308650192585303537145384374197887138905507444262035543282142719537615927225618939492121597794560815666751545112063188577907756265385674232861856796598129976567204574972160098242102221406221716967588953958912689142560815253650390780534554581137563961414998039665495709365303060204210865217762885640478251940699726160376217655006184711582956432300581683509161261371234006710968940968267140424977409857805608695065817906729205578292443050468589920767840240783802553312989699716437923550607550681303402219912466352673773718444449117920737553957427388282789052759842620826225312362191392155459948162167691213132754912586362882693121396732068333057150860157645719316317969385208972541892702343101993161277260477215814696791292373686774852507380750972398418369014398799350773654903952349373859940795507682155976351561481622560958159068766717941917896183696285563879384843773598981216514944538762432458844183867182409556362199764453818744422381062306017960496763287834248845360845000136225676524219251599260022640394602746505853882042248001661323454980503325347571639818448922864845186141424312777236676607846697676194672733947947584437238115805817131663660781542812622656986430570579863246496774278879391023168003397577881736580724790395082978329078337652460244025423065293988484604583134039818394199826773268816842904481031000742235528019032270084611712432748282699338368810609392128631000559706658489536038066536101867338077876336515021208222778588355480793620366130994285079543982947949795063301888087109231709407617735781527648875303375738002486241924091372981530629541505463746864820045547518317410127139899036250687449318022897852939869847540527655624434171278485590508205547015142736263572182332254370797303487000245558011204291999986860242584455786378724147526639814607031048511082440215635886531800622896706206854157695332148095473552089340230632138292110880564948296336386136129330485609687710840506985616399858782893512634851594272339196921185376353746216880420549891537056213016730883092070699641176111124691652761485090392973464682326554585287922201956239597528298193328934980848707739766837727696882659869398696244470374758095154404553543569388429512194905873173656429243595086078333210023409176909086892917374640993371831840466346614639210797039024146942597765003077984482432952386972621794602137755263227243098119946135838732420465846544055127717622535620684931088696168954180387656977334009378694335337622911710051807413004190544963023450066528540314671939051846771048295666854836741232078500144627362566030084728446405018950338255408992828950205929982302057941653203793405386548039469186326004067780441177425613264985872305624046196205089029176680724560302013071806996492161409819217662162949261027385144254239099855894367955671656392299167361148331186685771305598224297791316998667944890392287653924585237511710040814004574435148772635090954906494394427205301212173185721783270941780529125936893179990210557482341112645903799006268611446979093900991158366101673793227558394890685012121650677227544024822683169799576809415013175297899943050463210185637669028728823546235822306955120967330452365424555687148847064964801767869988265985979777464239753521392055145624229156604911486553003613155548733033548511490753749957088021312252865586802240094588815396811381275028169460853318395083466765847241085386257227811455356685814053782785862085335534333642525455780216624324855388422876062567925760672884407872195581314691752089681360111089426069586576579568387318471057926760022372519328879432999274704598121329362289563675334038726183352338495210282838579924242671487954368946446212142278042815693863261304796645444134494377986300504121338108218774023279295688290223970508435866235402656783053817521223575680199779317031118995048947567022706758123958675727379882398255309960794635795769630333921757082681709948605337536563933612749921049861919330460514274930030218715358377348440606502431614056779952824589232588245672151192527175415308770888822887042135065229633715275768098327218563494540838993785889015716033330870697841169253666398132695212636172926407636231785002853125458640823151037963923438684118871374302269797126013000480858116122582069109741382620907038976091247425361890398818009677462863061578698654126272875541875663496236631931037407163990998662682455536578694051088904169543184076135435895016996819890371296705552152934967116733165843004445451332738276309003422346577362450468029971773742320422244648301795025656312484013394422656138746260817187734825844756559374548712581221140441956908346888765781128510033423508622453788981698731495071802049432120732199409557566479265051419961307200888360657564072542147251125211457175859759217125606494199460492383154602534297664250547096743799171492911955615902008287810419037261010279157933035457391090975228022203896554039096783370350070762198505891862034060656338155600221512711185223945671869632170220386419247602300356782356857140264661805824870451604435049164500773302231218153667513901937157801858783440357116314411852587557839350236865105492398975435648685104131615423825324022239597492302241010491988192559096091484631019905043815321338232112011193793821849822831284243288223598506589113329425129869578271370902746108295900655387934214761825346433241037881126555591478186506990858591863127893642040830236889395259648035087214434187588218631262332491342843623056682607233690047291346377816113880761230405178929116659809678636904201530760310789509506224291259736440848798716703142747667378954939637402026765565283756569481414780795722850194004827102052094943651619689285653364696419870815498429740238965617339701368420201404712435176296898097534029618108926639629858714443086511146496504622183579962278181749402572058903306118511244468111558724519182934364662054256659572875049041034277435976734427171857092183284866473482055244644477241565177817398459638090196687762997037140637455071561068065012397347894027339356815977728862808297832755030913987173949885591345394885467812918081816557727541757933660260692021080313028225877027693688043682617516337491335049654506628857589973043101875515735551461218820462708067928818475321198846351544502111466577600834708869261541255857347120227424661028252512110879495390750418497878074242017418141795832768868618923933629353927339333068361894025484033297593778791609253219062666209782837175337338868894241819904002039755851605814244021402749913028517027021346911323334893937486349760517527721005595104056148969890488869769603105425246508400084664920861267666033815208310715000865024448236924825097380522474769255065315583552660579208448944987563352783279060001708502419271124827205366947606773841533335777486099146758178568165991871850141162986840662578344555280419314973136701942012029679940843977365408192803539012210418103666543771017668924211837128060254851199445326438431928423485688170518781276750286510643147024261066763730957794876630719217664023720855580352038964670157747606077795757093131289951104474513207912729850189709202367643190365550551680383600734779589858379285730115448922017496411513649376867525615235430310593237249601585823728380896592982988641063888746845334996910912673330708278241520511343089886073163096937793755979830109967317617928148417687432641099465987617472497311645336575751573561405403437490737397937515470266127193198985138749144343230986974038068793266564213660804215574641850170399873578538032097931295952724602983565515434371301222708250943644454927630457862449264132002345906584791894959337021599518443157588714176267350323420615087247016883118795719191123049346037629654549869760838426515909453730433489364317008494829328107959174370284151721049166022838181025661845278891099108341809720132530353267239025673215423886522932236697393351388450510352550309226051012255798101639528110373429179663564595870144691491339640345872619836044519466551740346540381192514360393250301998065321743029375386664081542018107217366436967678893161981763140748110001788362866500090205269030635030075355945224104128283809101946015624778797857959157995144381250061531791996315508271269712885988845150094815640589149574580113779818281778850886999130202737510693184815632069644387855171362356598284069391564020117435580168099152648443269659193327659518972539824681198505298112634364094400439201405009584471824906607285236593037541805782795143812987007961954439216760270768759465181159928156710768884872504845221012066922995532333125353241990461775574536130733069324063654702979969858030632235940434794438318084386984956591701290540779599162702374533362742226872627217881638548832193601949913714201041294886241596779585119620719943081590673983247894628805661026972809620479230685605399600833622055257098567806155860132380143563454498431722221694705663945056415427917976473572261987575702569325126121709543385026969752380804663535008981192802712250797517632860788109459180274612841730010777617595714263062478233877016235471505478958424976925326243229989733090403542501932516340258171365109835684766571374767762036365684534087266649351297132529187297553447885644845967015521166365687086647035897910314596913569247652441557233441433927010120867041019163086337482124621859262448746960949928164781888483097662874851524690386843702649911267812493985272653259848255844056965960803432314401382652167460087484146531575399500696530367339990928179751857550317813171277718446010999691760177156437705523849015522466486494166559683252210109516508931184525023671734711584793589756114198568127123899734674842438611435226267141809988185920146082425483146720018071405984801686417147209279551923601351707834322344703331068927313288862908269329940762843447892988254885742135581648937320450946644314340058550142876148771794561942281472364071295282757441855344804637388493957615526047592378889119761445976440714856047775589224806346013167207368804552611635567049239519121944580332210214542784658432653712717109883933091955160677004755295338130144889054461677714637827484493895116360124614395325534360813969997105616879369112028029585557566069168230017623164819843440179897131151632342216131911725130196081598729023026771035843728396256546633623789258551083248569428366937140788992062851645391816922638850925520479692294930105478955351406037850593290264148773823964416718701480400531211108627679850163842961222574629671166328699020666986035545665766111078876925394538428060330342897237952766519453582748469494871089033433158638989109536449149111490888668119363819667192400569358651138675449788185166773123853162472114557033891127680657616888344003965260626861919032544298868323942631172509697404045059517345097630185208499530538228749229694801899266758100674203260698429700660037935385810429015641112491048701149100475625180285037690442578941695311106301248352393323893284302765030738836740425611652938547038267501346066658828544258584780300219763828573144388913098143775091520324626566573161969493093490552623135333922228586885074706967400945349388183408272731953235595546742219177728133808487775036103803584831385728473136634820127602311786646779961743761470540731118931086914304018272964027982547295327286941623391436197739175590960484642035100660365354553462121284136395776016737400984095011893267056938377980523046176195719453150404995286577903252597086684021170101545752050671785082991221860375946938082045835754456930069701492305964814315464665802483974437258709375734570468285708290784272113296740974833274992651500943101238832769847609329054995666362820613097009564136139628581923890910793225116508301634306736529917562904051387834191914695216633264505291375168762932017882422348026631932612188471266832006459477147364422956380869324023868987269443211137776593912081247556007418217069240565986055320122964461262089864658352634304706841025998480381456630751499736937218357461851932327702431791559709194357107514134648950871140200641038636560082936430639363804404260611511096164093642091799333732032830700874116156218690405555614451488481378234088546725988013720771830176179614012304194622117850521070282813251528727003091984444407832246605165393745827020401059650295718714175286287019308818260466347585133406710697052693328593561253999371032304664026542400912022911197457298161010305705646744635967001821251364696635999997211529357676977893275841347286360730765514830283697883282811702826375204229654956989047648819453260143698934144537257288480643573948438199872216319670145859923445453419386525276439005981554963365287991727766748084042859837787922932288833791050735918805915405971791826847094825329314940159263726343433590036740743294164507444772902334172036614515167977549269139088054233580961448641248300870711938869642136191379879269777432945052886735036796756221445066926697993408801434426381022300837664218651129473629825225169723696991471135848041272815225306206179828448093938670913741098189700374555062296320855879437586266875716154788330972381992032075975723055421530651485081495398372757746542727620950786122202137490585201595444199283980130971203103029704448997048826911380059853495261774782837067513994069054605050376270995315714484878318193883996217622798873628305997971319198867493147094827459907058362807710794761956752044561145271721114785040605345575927253111103035591087357056620736507203781826205967403945550971312078014287852140255756577726152453829259513310510224869195793611504308525223234597585832531315727138952427000794144742284193299849142681394365153094730086890709698876359807131547009531707636811786081932162873618133105260379860961305288208235945861431444232729184125727670059701998674983676794330103256780162103042805872374247294667325802175551399912796833924297749900751329324538923156460355184734732185999071220789889684048691129059484183818508316871460430181722964276952012124449276142175080647971002530110488190425734891005942593267116735890761147160683369036838302684451043094627821739230114235448690784921741677029490832873978774152560025515547691162145479828717349682895264590896312126464353603495038758632443000538074121942559466884586400174239865711161136591183859611310456013153620341429017359649069282379301785837818430809944883118779027842901641254862397380529005516797381604660377570494347148368021274584746494711385670864616731548413699961799456857179939457975794539684402846449233655266057498838094073499515753527930705081394525806556927025645052301537806386048125676097352862509123776046732185565308802078092166892828478215251241404443358205287506755422304513373353435684228696238531609499289376854805514096901424495686688432957154303229592390522244738963709531068345383368665634108077243280168935148212428609562238424409739046786059346843298057050053406306526659365337120949817125897608286082263421600412398594733022047771656446353644313355684666701953487707173140033925120427765428370844056482274136617490389735717796698461857077798492805577213933122331912000539661027492336304238277774112761483887042226172822489521168196318839198003436280863935826879169666703199687352409739803511987116642728983833216659607793837617423891545159045050221023233913796079115742649006518575993508847120923275467975327764400222238313779759689515053275572169099428010706045428330133017925334181375662235352917967875837490970757886010549891458181804638339827178489953466114858301673448973173528916024957443875415192314886574065539894483990882545157355352450891664647559069637864471017472562124695256910815542015213013050240292284644832393973903613754981185292166688707330142561105621980302220288680382609581114028572429769751880813421345244862995508316621049720566496361205199279340659808751051559862754877877944929780777884470458239149244486946679840330234989365802443317720884121952673282282969688683053570908606134222936123860590347509432437504359650869418763622036732777478077040423448572147194334361372706656614631884263675650956830993025846097944383716335152992410264206837717231425113750527741810169745050861201515257724111850826297922610435423167370805030452930844933987449985989030764457633368360102069695984341487103259795103900337696898536463837240688097113481396010431131176427953408957156916471446847625403826985906435271541273570798342049362516857615237337793047641448213737965652260181907187977115030654040664593031982917762889462450715505398162634521018746354979809687813066857666060539686322213249175117123176659933091825042201604281782577566809212224547957005998832131995617555956100118776985685783897740246490192105186262361575831240071606877058962386823993750962882005818915743009547841747938631860404511530466373109550511599138763573690597974175095065811856399814710485542778634546869742014793380011777184844956411014947763900687762947167924154566621652904249187713913936230522974092197448934475570415488853394308474923001354133552358823841481545472811494082650508205687218225676756860799808185225482562916352980259357760141255866403512240209482362207685994533757084383042584066709225690444985906756835080261147049878242798170155861502606045488594566055152952707112408896808205530583438779232504083640315313137061414757786160069644918413152379733963293789099194303848600821171886589716950953443657640001256033054347631587504988083335888282238206808869534159310431408965808324509442624557987253334783729612387064313414696457629659332495391947777022348728284286265176893666978839580998455023101922797420514822025779401717967029793097573507074524523140237705119384311572828697496274722610297549591173802185342024779354718223679646865620716433007343651909370035064156399606059869250726564105329990067013463593341708917164411732779536566073896687081517857510559591619136995773961319702612220339059371333733897906473618396488585595608376841851962070893870611834053486707955057649114917882077117800460662015235799740726473605251034231787401721329824665810934231165550319124762220187167579191690952223154415255024504441870937861305744423277838880404100246836289632379968492045681789741095195876311812377650436981915125204392494658410704776202972820141707428381818439845952632082065436568700818212981936654806084427814589950608860429644568471215950496795095639092954025979179198644035442313428741306930298406993218163678775235754125570606995887128609046678856336841791258749127944992991184080470187308905387515676488158646424194999365194200029294589683647205372694157605449226114894995677611073808051413996874901865059276857567352708536723669594175903220985539559570771179522731167786810818680453524986925463700214502930944874780190029906006374623568030044709296729149934117350708873552076671347672158481103435955683977891682374405862472854618772700240376290192799362980543365557280829753540960736075543390146393260475625294393072152460890566064895609467077595998057529567277825786563108085019924549589542027361091396664173584452110946527129102540648830286429751718976147124085272208101788972104805467602146385080741286973169315843677152479833877541828582436859355986096253007799846149425283962409643191628947492936972116492727550018668842485870849078849973653586660131352464977666120017059341886785849485376557975800693564425721112252302802404693433751509300323735177577917416037997664422821698159237361006310447498619987135090098053820465165312728153535514047651715816893538418928206575341161895433263997873247626705601940038450619951363794353517003782760637922827646422567578717845826650028149376643681693566451022827593765576510943993994844028514012450308824421976756186113326198549291433488859897123961276274863948617374031430994039343180763305412573066911670681472725607353630614366087963233657238806498610145591961402305859406465709936306693718558426387307253565881759455029380526788512076440965440895021276252328526800494371287450181422438971266675752084622765132419570755956848369941573452531266008341579067549897358591333219508903826739903409473801780667218382449026563347570349835210386189826400158698553079477566288352687420625673440664438042962802211292897980508120546640342013174090679327471156479625939182677188931742837590689954532907394489638090376481512601756817096990327929223473689872321538874675677205768847715252566857681743003025065832369080333101495362312949515410745338976914996363548617771836097702910597919004169031607285113882984923182168049950103120094032490616559060582620520031719416600298927277045511733228729048975170165477751065239547307024836014753639548876039867062810243428462818601240213596464615983554561379171213989728700509704288666953777230947628620042732249979198930995607054145763618476799596268863004429432755914706806736145626821327612558982822923079798595648917964185680080131433358807509586502578542622063143692475871625822459491406578501467524436645366096952779931975908630495463124391099530945829098318178279154079743079629880581363351224358483505859415839094878280159650563329209902554659214464837097852074157656453683561392770058877712625426637838070715926495652780116895798701691006184559292349985472905284841722402132343157208225026514070549764823568647907539863224238333291181458319521978028597527079560270839196052709563037441215267602536554707404767401720650552511685512694942333444497475284722639412123276880240774079220127258586381479192846908608517215453405527074510361919850705081256125220435656356271548371969720939486339529901983059225959637109705131755603102895794852859697272045704766902711112408096497106605950975652270341842301191480935441649217513720736947660995532162064371030921196449261860914797442573620939584306120946139670162159562787314686140187489604095484963892645176128308567675920442530005716312337348158203278761609814792444175837560639783358740157633525799226092956937447821768833548477809811126829984699104746406097342036134885551693692753360269078606520999850274248627856064442867693124689062913668858090486551050353458665933600840952863507317114496017832261242094349375298203071076546427313086052040393666290356403421725949278358006558699561825546967764187381011407069490588008662132958555883464667165343126086996515657788167823086165573522855657946689314784173086264532228840044583552821899341874524407141057991942238477135317810723183655692697606623250214647922266136318894693636995352267480890435062059034527968572719421804791865630502399728074332902711355115152330314778842673405241976566512346421568100014852025331812687802016441058079955594269433231465592631842352368226342412695322163993701541734170304987906830922319823525854303658651230622074645109165212486948555766397861383577704670520159560153371429148907552714144377147144738114219609194419405425811531533050653382420011193574096640439406195019297861137140079681519488506384983096840357115486084595183010638115193469341637419359870050909296664266306783224494430694252062989715731593808963163651606266558386409686546014856706350758673163088446596465958473035285446126502558595249320572367328270778882865742093927618278937721686099959486309073098668360165209311736673633096504933906779025794025995638013729117152160340860883946624686806280613773588126672446696765369321290237415135360994060156966939973158543932803720985619284737444073642430755905447300261504447390286702204793589341239253158136977328818624101637996897227694716918246137933842424424008960178417000584112538369135741217638459490460495026305865851167856794298331820445057737555001112278449870907358452111432378054248687165587047286822604070156814159369334030820906909674403386137244905885892623131914448288019901172408016830726450606160293145341729043615674705928081353714616355003415143473522038658103244243864747880888908645031433949489560039362443824951247243900350769265659402681684949536975261777541428175402704276606599183423427412213578181699527782111081993596447639225465221422350464006628164425959699878639661867717397481472260479610285376416081634668537250072759419040209938073926448700698566869068386165929271075911819626810925172647978097009697823760998686298953778430012463502322301334047169097864525538582478930535558222241361321159761238532423183542249762491135498610685515585188016853904832285635304018439598757698935751846636916593664011535121314186690815694598703554453815999491439645372942246588203154142641633835966446630084588138109622442273249498023692624216294111168510990866478394601555185039600579073817160075213338129453626304397502046833247014835571586116809221055177142440988524225246396596548244916897068499340934390615451216785301859981771733276496012506721587286692840612995163833393653380263200880266977991276235845549042501045814293924690055228523379203800729036263626674681310174043240927703427677148627014418026348557371580978121673864496839340780836910057449404926429319019484895687724518586218092659483106990844755656322851682502328757956190537084965182603681096087906513891257754425984289755483623023838174594748539815119405044077036965075259764376290354861000710112050759535620065301475103630087840852897867857224547930056927495399100989870747526289052790200889245067439691128831317203158482894234322012168286502821634276738572624509699501379028686660268754168125762337961397124914189190544550147798170351848907608084683948390628661220374238797304669358949377838611424428199826584199973874623138103700159471311703020558559252837998614399390540308341893192175006822694559360194486990224106497884624009578232658577541759335029492720193867483192202426289494968620088598897219168592633378276633038731370634515865198292899532594714382726814663210958851861574050773928882232652450925941381636509828045981538298553000376480982269847123340784674949199787828182869006930139352512393544015344184520703226271599023038182284303975601569215889089143368938355876259612880399893246231345836918176533923301357652781194739485518958549559206461921021042554369545747456854624141306704310345228722805798315007446595026520850427018285944697290911202842991060141038838116038270143238907521422093171224591594610337951517205701177943132052711627768802894450440120987151641242665430516868851118577565751299987746457630704964505607581443937396955655615460466346547505275371250496714414185201477806417705366443893032547216776779070665071803159900993476832056496012310678038277022384346573809786937242021933557362891572310010032815572292603707979300364448133297410596725560212349584435725419638690306543444300562317307456224314589404557760268697086818919621690564329264067066400443145920712238043063949249838879345611675468765004005452041090140205663245620576154350763239868215162928832149527955107712037043025390979279360164441076172850066001142185145596592975553838069806822197368567714457860517662700888588532370019513065552559853462729699099223956901775286727440592173571542836033683894211667522983988802683766389790112769662038171658728383016092376040328627259016759582646770772005945488682130416404991521047280966518235564266886994406295558251572571238720980232076391047949500544565892079147030759362210387580636154125883007864618930069748273235805526802608896087542220195887664998604219849203925703861360128912548159385843577096128183559305516196767402869144870317467892366059822992358478275618831450351326339105583700585598410160578016281788771164752551584878121204657462932105370731917770690176849931739901800783167956794420163251607134101031878070120553383177099721059729862197750007091699191084044948944319086867903087836462291702926807608598934648280838828386187590079884122605833697526795266881764428905396851154727326689022608368861110579513596081283196580064925575392440788986202936655636402232697315952894866219714116810301123040331237826171641576412742915152344558827979244346544718776310042276673055591976190342093132063752619554573828741805702794387636678543056737885280171218791998241850304299890300528123175829490363850412304396226272677073556162055986225370849265633512550402697142946908529448253903758667220875188904682166769723777034909963561647616053357576537987799488775904314237693215652703259177722852206143518720838961269332593109021461204968412414565457094205687037341487142878011527328229551188687464091972881887781900003996184459162089747436695565699141613458779586428478114680420724686622347938069579707328131070170817558833990996076998838112046554036925720769135617553878090581859177355909794348244971940235119437525609105469374901637999974652156162326918847364474153901858906818493146372822503889117174145981194124939732597305044416916645226497453617585418517801114499339664380723901097292906835238892497158937183978633065205312202919691497370145085338856599285124074714288052300409036864678976859403826599971142222258680260173691687762785949585413492785806940634517901772537794702321376224076907577695207853451539118464062562521652785711752049198629995490617576148435331807462304778049667312861265350102450863581179865162813559019985834525520569564776798941338320554970776566653872296979472750002687711365765969296160596018828956230154666432328399267182024691674933398755413789671349233207487294491146740034531283894464657886009573501709354411249086558284362213862628540944165534287193666471367137367620591146415428021092699767679045800591348956519688099945142152180792731983847058004873748924097867826033335433126432103290250668151548984291408230453917354638984757625382527894736928262850622207182491787274067420874000660106663486543960348933931084627642252200062263770608755423030145426475250203299180316847202782573244608735125609409781999103917687174531525633976362172016149141402674694084819933895790394105650973170361584356463157977829523963841332519575410464827538764243147237472927755478446688184835382686757244066111486067958025509222155945238376099017587433943572420522557240647503352879301764436381028379565707356303518291063604216085382249459559200640024713168095582627250485283699326547372484565550367887221293306651370564455483215053451755773490863009247072223971143225655545687398526186142314092333032926698072377195836662310983987413829478458345087586524254845860570400441580870674968182732490569956291464354008657350620226569755330042327658372207067778630145465612912156333550256889395144962820445211591163845677527106621491111132427738952828175294327920702109008448636336938735254247719214635261176988776304956046410779012325565718566116395700718682835321493615516233389680502275717568070988788802149496341452358639765096612794669697548094831185923342472518122647447462897678754583408877399635746746585200028011798079462860100260016304753019536555196676909593417345427548402806230260148878891185315064483115925899921879843014024705244864552343895144588654036709861937417272360233809514006396582647156608221163728791659219399355018814235969752918413142037224938287314565447406615625771713365115150645855449439913806106193177691571654520525510109105254491289188354656151216765992493256033450201047151155923911140037597078141818799296119216666440441692640991729559687548997855156721745502313167452244553714724842951645028054143715868476000100668304016696079925904738395241903640015648453649936870006114708565283977971382916262239483764858610682636403422143458312695209562954190288049498669578514576663605940342997431635224262256631900789861658500094437076939823544392210141412026136614670996756797837247341596794551637688467842195254465437235163644563979578404721539850323665121870060023862789002783031154745258541931950312492651682994272878817357222212752309870151942116876162064349174331705858531271276628507118300633117611800382149209785513922432771991717521230075024625882195607762260374796838818125106845909477214914757384573400132125996952133393034100051152820297979270701592724316712943730433477027780128294884921030662374701288955966087125557895839851284260451696616919879774022332976910609575299489310928232015574507182452472424041008056099739066956792396856119010404718647996343456278270735724011678838833600637324266443792872462110121675809754827660006290143827465091546693203764313384678062014745053398804584888497755573975730762026731842006828082538076388294710393609384995447182816076972285409319451645674957886952909192237505665172290488906412696848112545178745077911793217469223773190025572481410663853554927752252476255569600610953847120122878754678469265452986766961495920104838181528147579713550479446711930763630537110826215024469512090744462363921703759194930248805104778694931188700166904076099103949119231509480550748477918214943528332367366547466715118191816716006666698399031793292855528106383825783646940819148494607823384981475427920487036961391226585202997492260014454261811016124845980252711304936215648262464638526162419397988514923676984110190289995948774843722449451008655091331187571112901212006173506882137654632429995410776253868377022909395292431417432610354052409816021593720981896411611988583518484872118233426313607374013444019258853687929421190210492555610279632378550598028591809585718840333472695344117438566592486002317586104466473035278350403242837898910519854531147202750877317197103217701956870339198359487896453782819150093529946561788593429134452234011929327194733779545633589258579486962635764961339918168503962109805721297181272825230687510404058813594500721042110706983559273857387242600319115251486658899701850394476420140653675915357664455821677192903080546788595599478114883679565744378461136224807960718803787638564652824674772037787592483363972796073913084413165485481150946138040077907901535382044574840823874034087533762908585753527060936746664453032535539106866325581635563890237642803865233290787405587685603212540437060630080687384858209491211349227894510616269894912274774689293317401552809177041847640624245481154479666625753299584104341253880274911428963616676931192785015360121028090632422018268296390855917901316430496727278813903855007719675600193086864872117720537805581220706572705646505472688851108714724161603049294850854695186884405668449825778637451877607634542605036230389070200882255853648831049031670230708872160403182591374834916367014803724806231553337791172455683698707520001570697759684024967508181306396610549104500978975827904573439673272770974577373779830964388408861015029447115477301265341308812426074485725891834981939806645474934197203343162082765428534448559299192749410759584162418030531447221223256506526474807013144486575080039156010455417374528817655851302567517345121673548020652275008556787374751600442852184146787676768852542298070633527254115599315453077070487331779290669023646922932026168302814029778473057367116327573210771813967544631414167326493882025966903074212669534176080419475512034758946190460208678304157779138335061132784334386020770652177661290785972187367831319333973677132427585090495328593004647337460410845172231779615546969579826700402660091974380224021469595577387805305086962288674018316245596649181967330843909201435378833815851098768135220530747596774525231458329136985783146692604305671158530459720782496919943949536899356393827715096241947652976663649421227940658959766617725341476927917315823977898144840636779486217502390780791682484668135274488915466933006267752897174300963543730331931434337478183516499568719406570008146152738501118606503143052298929813020668410458834979866877957759215681196397477085085427091924142484817715999242808718835175143534397313594335861079332510642104929127885494897674691229958909925217258689997300527827354894372006358506402767869300387952791618543384590747745033161642765639771507347599772699897815228604102336969534999573695467609757475479357531170227512880938980479146608274766698867369359827058447287191123798378208701788063267048705513389685746718963676262956640933989481535864227001391546488488109199338394447809168492908037478213923165496254389669590688776354355478646373906950642316326454607031489263926459526424854219467408532667183672340295266939905474441092353436818144224336420986631584404948420355785511187721852746247873578429641635356953510266924436166596667932580131875791348420068623423942063958844699688610958178256417699697395677634063330682388725798016458003922539903404560792497449339997063881770577677382435190658385665603156827659992432389051857099461130986799327736719960866468194300662903819805344631608289575963474721806838957062185009217550145683976829790596783174130759875022426512800400169832835501975664214733288864192299239270131980591532496493022653119485055109205750534786064865013855500696767912088073779753599524084175676749359890037390843125799770169685442051485187971258958971072419490538563486085666351087450719675350874556164316928792931706351517137579129272207828123000573481991221788244748882443687902365779932098157954081238827647225803143937264666310039974937267012024653389798873865081920591229555024293445842436187197702279256919435190510196938413359917800501894287773690775978223669759500550830788087803513664236266790841415038117197899750079413342796824800063748382151610453143408882007542321874751711661670874722765898174626311822931860216675680776981947329133117834895266382864869065688175529683651122918621170609526422420669271666702406396202236565541777496930801115140921292759936642287178030563794671830797540112669754042179860124296743777372118111278324964614767801690693852378492262574182585828883768403102717102448011039856750800683301251574507854291351590962428527229700668526632504457171868346385073640405686722369060490286599965561954121279316900473821012789864959683329959184724758739677099704746575344083816242673268817397414246372636104125627117204436801810728184034252810911831075275728619913533422713348837924525137647117420986505086041466392687574478526910655289845513432058876873351905682823957823878263724965302995727721701777271106740071768840880387091876762304779286230047301862077516458221171125306141131224237468688871472154181533377857457362525355655985198403106079486604266615694227493450256596505452903085822278635712023706239158872422817282592063861961296374392363451276572929931216482221841713688211477349408238635254408674582050666946717117771760877442512565235390525561192789786100611810618239885136148774356685731056108372793383056496006510906911198726828968055690592441909193952757843253266996732685288053860082564765328568405970461815210354764543054209422265273784197478912574106374906500935743181685097779708748524101978426518416719279585532037206224128895326695241491940976900308679937966171466732388948826955753404828598445558789045875785840926077197670374609956586390469846115846546987358276333857781742062636635572818787514223810077996345031968423895834191830826833274809830176151924777863156183838884074465732553598195033051373272499202987589070464680433183500376876042560524166595502776031412745360813515881797286656906229538741907325232373014963796913198629543510774802747804434265637892714703461927392570161343876457578801963252131042767942795821802079275720577304718425618205007165009022541522105297751117792825166697244683409871089782265016548434409374612371883885629459762001460842276437172960610231105590925871670188787065109235514362448432134762431183447720687620918919843169156958131402601984022868784295776623257234707200010382421016186255120320592858564000759154322566120994153615907058772967223768562397449976973324891355265484975414291361355830384340633192011186283439420043018716974535906437104179018472531544872957335219456775531524565166623909089439043232682801439692561366909635805488675148115805255854607090149608511989327808409100744790907473553833296592105012359656167564168902063314586734570326733855787911625148093580885887376862851864422639420367766288761652371544126295790978931362978515680902138944748992445660206677663504045468889255432613821099104774714997655414188065160586543932610249067677975387084336758499163704229386280709933400922888233330992640898083470398767780873487315344604730630361036112245010110790340959832311177154695161670444994356648002380682391377664687586605534237138574450408993475610972215608026396211137463972245782633757377514752206230355487954236031563612430067913746791927838920907682693553177441086317499838586849300856081964157375934096750294113860197086038335469674500436293649588162997274329594699009515880035802986856018720560850179688811397829190166229995777615169926278868701136243146407453499461994601075380657230118527190369166750239283188832753781820213973299713589202559177887644396780750679299504972711335099483635605402513902772991026540947276405325579502493948440862901088259212401287911555456004872555379019607294138840184573012855838553874045417963275323863774270424570853904248171921110556734262978070392946801939014394901449486600580434607699085312633428148501042661012922969471092939812022486757098201967519004989834337169868865883377392012231975153997687034701646920539511946063216264292984287056742742984312553149915181550136886590004546293195050992663494060535746022653002372742356533130275968521979989959455698506464663216941389272500827493193516465824791418122751201310637292681750882884143894067844038661504543002584901780403531347239970299910968904013289301445044594712681549850630162821486954039155461665623668344889947744330274861651924201820981461496467414437170879274006872544803030904545353619444336424246768893875937965276368017514665421659287888367035540497677794072539947358440804594364096283014808209349260547285386745720703371579017773319014307212442645484205682068065112488495722099772396723021854413623008188124412975611575434403852631846401232506233157771919314107913833524918007432762253512281395943652775700958368882804667600476085247355905809125969221630113741728279967334516473531946626613070820036380286977100696109446140427917845617431012788425736479090996441854938663508440229530096347493385007126928029464360893721677022354079031600651929300668043160725259857046907220184352502275887801354516219439956095790462278725769682884267592741450059647707783133218485942092508978237618126738578083239036307427197310535453308971650730558780921925732202191029153210070595363705327037655325365364207220177960706163197675257402611142789904584903370896315048258449554291897572623674405176091162522358681437402783864279153600735735347330856315826300411911888099852524177757992391816498082874282612432379998744994873425124828876946240080272844762052557047065286011107924156357165104745106700328817932911032846091721568471632968438564995065384285818703668605998450040488164179392333240078059682355474404480457711223422057463135269857310946988259330729353427359321347166889162261330936486968734288912820799476625434051347149033588230846302181158375247252354428082153583399349204540702710345569057280718883014557439842320923354259913150788695092451895240525843798425952375572647686049266379760595486520086007501517916900032847779621516175593076039429325789981802456863647924834157747134465521196819335367481704733907883068729086490466985652610991188401452146240536726104518045923029476525417267176929579786833608548407497208122462432813798161832081703488219856458506216046226075177340265153248690862697527133954601924271424612753462299142579223682656429593592854265162847373845917395547042351163687168362623856058805390976646007331432387873405459900175439838356288378825123489843392569124083068060077937901737787610900447694092278597375749127610757420665086380870339632203711519640602384883047354223077819707465758955539324449097050787726200530650968511985540182284806976537719366113166777799528589097220909514865908692559203587850145900206944040056333686103178187152874010264537331612156037279907531545537035154797767521632957767490088587178718850683763089619962752550792442265953265490208168295110733927635004688301653893749100845980780288460555755298623094711326341487028128968928264088961961726425791251420391502691304015891755796220562285698380412755852483901789960833950138622617537628324941508297308271759536456699818154002517342490916869347374303300302496870601734550864804478821815818002274858193260128628554684751403696276082188420328966993034780899865576683143491304820301968164284331969153899267508621638770700373023874330483899382602254195864652510417173659982861294318071780603526852216585379172923638394299733171603964567473037129496625338777801297150625755476037568338450158957501190098798924801367292399846155887193331998488311611390341890889120132956693792944882706735098113418619140340175233882269275234980280785032416096761364528886782366233139348843126494058356182982054280442347451398107229251439978655700084299546844401898420702801105478882856482344817530854135293377305882416916417400897012604312102506911042515314510872929740158501534328226179192825385430018581090533791873003122634872663311039925596694573032649755028781219714251321933167909075508145618180885611233304477022324471629606097985746768536240611694148683540052238645056431598226548048041328990557708047682342922461070302652935489320499607465003644419215290791508372713586733815719699241214511969465417327800489892206257016730659370430432915906740884429059407665582694769224631638439835425867054179433577936330170754216526242007327920098691593743529744010263402092362174655891556479179348138707855211320861304720265149414183656693868808028110434917976216537211370795993656823755259942254954654266433586042828060392617215905682319647000262181881037860834726129556309734162928734535991647980495825201707709800535462140012799686823779009856236313803864427850702303776155084564503782767042125419511676089171496690385830525454576076350913478977776511388504824610983805008626252157500349410281047728411798523419153377018760897876042933514767253482956630678598718921625650307625243579556891626607814409534266171279933189736492249336691120180896055688729535133257055980509784188834117146653922564399117864038911220306211895880451828159579150255397160659324517130323756631934761133803634096647904833754081343970362990339057942016814779396819111152584034065066416838663686920771000075358197663665332500127077008955840943130288255544667587485883052981770857481202060048468353145833009070493727982146838592447484000989324751288692869196162664958699247484151155525510688520138675038390166878487751853278036391477545135546223376135623096182819591137836608655092011345774439503790413941589043312093896426635436822893237825812278605890503985130937651848886038551581228535009852753072650678638641913876928124386913199199226626556726407167332673533123718239989436539979479299809142674551032504056243516266419844707529262170076045146881946987696625743496136683758975072363669071664090245774681384595286482184733876480386300411250391797591678087104814245339763022507536481405046579870827369063440757187976417198575132358112464770229388234152633602094630035303250763591578520890544247134439551169834679658932773051229620683881964571539211532692135723477439095887669592116283325699151396162883023772335183556042308336623446522568492595269417643194073550085378909941711380658848057400223428424947819451597848735784004736068812634866062454941647468196359462216191103402956021416823869149728737491689769921197459827022335531309305743026272921738228873437736890141740888190495695089747228985291692588953463852954070147127559399554010632453655916955504559924262735831708003505332571858580823239807591441334707284753250117365180245711798711131633425515205342222397001936310722645199307703613284472970440273577254832057183078809108209629226967080277091661872163070520742267322649133301303795416025234368588362331597198033179801136258617796995805715207920517340998241926923124672059376938790533544110997093247052940272477264619609124141764564020011291825774829280778421441481646905207060456664822120772281798921460753474768117185639729706714554995536413606604481618995022908719944686703600606083045063384541799915198930003482665934089625931334119542276211593163258836134349568996097454070557561419242516113426247012081305974419502884034842129701484011909262904851634006787540273377424825310609845831923435317662895867389110149713595222777617367214433762437451778528158419100764158019909085275161232167099438271700180270647333900549152442399341564559906220597347229720032310606232667718891614754037569295466067952686345344629404435720422675541904279979821233765879569811092532829802239717804514894334174994543468464124894042981529799211220227191080880584307229233249260966604175120592739763522465310135411609583514753761718752160362677714311261924580768156154539529387971141912836275488798466654862612822309292268251498850607476646204802654776422462065081496099922731069948870296458530392831467925801050146779244705740788593601492319690412559715085161145828529940842753899731926962795480769361950880270893259514756707477729223275451990425882619679294811279628199912688985598718609420764124281176654092479647227742987799074984889563522693018228455531292715709154715866195095720829079164644972166936015590946804193684333897204861412676380417748607212530522890439690539085801012460405834589314012467264388925659646652928468113155250748197544778869044932023154299211427041651651347405227022355655172713583665167611712024780108360880986711744601920266579923853884877762048617519043759995721949392792632748888316439022872099201025011467438301370774881284227365918757786373429735612641488644368487782875861323065015467798248049757149332402984054401487585877462741846878773066274955786966765360149992385342855225951154057103863500043397160500806973984079533408667207525044767279931807528171707388730649948839563889437539516392428693086601597583661256752600241038397698800143628166287272945335820322904257508786471662939897366655504483025973819259728870640217408163826548324299322932443313925210834135088449022289874202109134944886464943499896037488587632021442965815004246273069352634698737545200103293192558466860542303219412507825661586197404599011062371688616294517096265866557076629809223499486212611185676290319470473287595465263777295734734711139084219639568584081185118993106489066179146476467561943813247352366056014732950948396096093118286173215765297032500116749622604263125956145045063444584549245415932975095401530764450432531085264540143917818983056808073706432004386117518190699292937700893112008535492871054179153875620296362809670691512024013040919792733287685203156103876478378267641680790738794952476498935566793943926638977569906343415887799083737466305901500382460048702162481828577841012703088761776546149473403164232540681567356877308451980228549357635840654548519122863947775038738356918214040978070128388203116180446595388920462485980472121799614043263985443566859000627298490873617159003737466710256892610563650779706795740606303551714790528357677470359256986292221305622176707902527843733267744712133609051668169182984697943958747815604979809311958440115798262702160805064761702469252681627780447829215434402176978319614000029293657478225508844937631478124794935665111235149151129962296176401767215746639137495925504387058013400184179273643101952416091919271530657686752216482132925679996232921509131515364956912619424969576215357084260598809096708466833969368814227998281360262254915694353681811219714022614996056439197478739103300826115637479705456877566506738429806616712755414257419764673235657810709338719716393894254473803977739825579661171836466819801882124806232156406717779556802204677061295208390666192650219405967679094076197486375075026295144659876651833990356981760907139799858138373601054452226164454976380259142925058638080493043729153757226830732756444921935366826852927025131468227600520926795980973370026982412779566987297214712415914589670837093306395688970081510595656523186918360116330966477854741154115785393905074173659391143227971788381675898890442582820736906348473170558986503335073541776641946041833535273739878905777245951270406400702997324229540136258769173355485827922871264361610662280996453260188010059198637469948806738503128260172343571867885675338344968320131310911983736888050574002996888043468349064591241741415225434646541832197033613697729065842312133395455168884548437913834835159282665568398724584645472070783630037885682951804958700843302723916484763186457394608466184473830449683352501365961548797723882450140209209826134127329800631449966530399553285997881001532250454248656188858266460052948726273417665242533169195000118500935314405090068015243291171722540025442245663647692718673183839821753292170855035330222433697440022140463416100175055979845526850580392209735277655276323769391507541283172703512467186373300580992239197932405964009375897664139799149649723957328617389603007429445729662559811444066361395509501477909499412355088173595706236947389299987288319712522116290697988828466472005842174608080499266839906015413306814282275818783973560296643615883115732280317900301154299396871040863576146548417560289640835806361587260409238610294229471661419051553645474420546425446962236800658988846492285169958091235137820553775230827964645475410598416510361371764379325047353696780681681535881530670126165706917005761139507911363029194658115521751470754788141900794045845378319328575162389731357142482363503127019462177797330527987883551799793160947523791534010672362158770949866043833630121211446392341885705509349395133093742009458984685595062768641244055536508847313790818838802012800886220992921620697393585146504508195452050567494874641164067888046200780533826390540727361796586076336808431461476597086048848058788255562064945617035975269043132872986445179258841730008411139970223629941852468397984712182924266784097246168750761392047725763505061399788712740529719821503418257270254794576681240871409769576047138029276344246090622976288451156384819549278163898382125625953771041547020659651841338626164722594119831814621048101565384885278235086429639279536388281430326901877966656801184994456613836090029286047333397811275276518925490756612566573004231946283221978037694694650984159579832785843259029681200410443752639953125719360962625490272561532390769587829956745309042285438200063060016338487144832735549154085900645795322567297487860805812383135484289827389730239792092204493674569579383020703599806447408089713791633389499383549221564811425852689381805259534582886239088997633835819875119739157967473432840255626746566604214204325000396983370765952199704627844916846668758845718114424504502457381303544306172933070184530671337204490749789659787744802940932126655998242262992216464217474212863048306467992738523164276337538570341235345439002019929166060374662156780146446907867091935825150432142279375088774935365121950953538777505195166662334926935815039870677924016354457057266757820727754819720807563449958658449322185543571646493205149387987227276242414219222333172394864734125413264134476755332656419376441189673767340529983272646486901902900464505012675837492891793798259198339792915228906873061564725141187772312500366499416382742153742679531697582452348144027553220198627577378021397185490413244722176995606875499487654661733509989707067293405140540021329808857824413501347347858988065277106065616118350224635723013207556640423830710019713428493637022674611093983227861863353297304011709472298949993918570974561513185441079872070887817462321579116283789834634319589868626956942063586365854532544094521915419900916878940301890720660282447700273612831120583531147610169414827886098277755661858914240807041027023241780582701971513898852814344164151260875775145496015576986090544443619703522723055693494896243589918177073081938563379107663486169791039933882102915972406749981814982070136738011498316053192918612029802033250967091216882216756552840739464938087964720491613903477386705976878981129097879766454022875424832174590455620993358316913390598305927423540062933570073370889624725186667972408361564214062238696497036626273947870665226907793980588132081105663690304909931533081363927891378103582097979024586485908378948306258565137419660216180512983237699698371284136906561029932474372211845210515464528520391976941138274689762494689370274732062486348208024774097251234246371880174112550847639934410164411792622015989772483282817482694575775637971967696574277867104858869602994543925639822352268094193962134272310151305030524318418856496509398307825640781467530578262514239457485425037023565680168273281135355313845644964896533984941629911438898734591567886775444761554109539694729145430904026546001797689869456482208473009395484008719416266321636940954050749582451543272764256604694812007341036072760228174597486432584540547215125407103801186654902288976517478163272138598662570477634077294646839294274515396933189263140691725983021384561767453884518204440004770661276780604314648312406829921127131830487519168200405879123016994081556348162034290246445731151122143020717594099371391258250279804152633813510437551233585989054552604257171086161349199576071251344530649141992852944089910737102278026918095363172800635509271039096939254807561323731274137466936357065372779893849171257995839775018786316173051610887361383695036384912482520253315904893353982264952004502623855360566885983243241274790980721375789683778843284321373997823619352204512055211946323955278137305175199083443110601677396927537300350643237871008816531422905983175761807024100483043140265839153572460016264379854840529962659077378034530616346594280754131812042996519474803788213244114257136115039120095433642789620861910401608108911903116211344993451672900460605594571911232325388655633430865432629062175275420644312632921669103544249630589419989043865367846779673630453316299443654649852718522899587252106138209174023161438816021679830166607861835939675774894339608802678898806793038819975143227445134639998536070203964557886055637466651030592143452812210203649688258404445741828514855826751879877235944289946897285358520793089157263751419972946733629111958894888046230223343270365767194409889340106843989773867218023881179768267893085661602529943083965227018098338383896959157226505294413995730063795237969104208228677622296968504288802521652469834340016765089306098880286366500424510553536033225091404301033803250453446359592199977002453694267320167141422159610001051189360981560893737207056619328683830372289104514499106016114888368152359433607190338245957565522223679706424862154311353554830015591332576713779033665495594385360746164441124412298740576971729291745575962185204243467514385983193856958385797978676226034359043497696973978212743008733043635970345191820274696743764840862416259989026018177872022701114368072074038520387476329522649757716510055761657626977908085930586656376111283740965736616437232337366079103249911230573536439521446812850106473903268831541915898906183682214051175114761369659833712945250965598980257645070742840184658889769344390202260863385132030825445619400551659044576033734331435871385973224369130468677553853250449370007595793496380288901911966625523556398233304255761658087640628797116483990069887777022580243870858068496675147385281814097261484375392151947183569530259717788522435926650022277166311573401634968896291350849217925551965716191897216569770514863274700564771104308027844603720237289385139226148833881474100425571271762588320327696384760920918210774462205016378100316800462017132450562179405150782107456951513917268011714626755013093297876112359710029526522933563067812453744751826252880152347843923391336974872743822921927952339827111810348785082669667206279277367143424217585986490342897525810881085809609950885182861621416012013067752079695660962211228231738472469987677408325699102764214781004289139223833459733631316053665109218820868916829300034139497382755091504718083137519899296310305098778082508613522241323134588877480167352820210923817784082433316230112269220187582750354824390527658701954236382140744513160269547638004747460419388316290014890871326214809222514785759033028000195593226463913348813545027571813917942930877356808354409792220330701332540026360137826653521181323508254132687455979063275908123605582985794349219599240196447106698915813219919588861098273364246663583368041774181107687287142476786418708247767646492349574917034977966665957031158527182611067235211970839930482357113192622275531307074873459264141554037934021847762142026361362544557548152572324103699463788592055942486465918250347893024333029441540671185938820476770063698148792967232379261441522213342577169640611702914687162083066822548362971497847770353948203940929453230054554872125864881454236375981508735878969313808317432975692329092441323709848778047522865302868659500278590378852625744894078040137538520384434261823856682808926551479238672568630899401779950749093521285885709568011575913246463713841483808393774823332980607311111545909873520400057875070996928643595610683656435995953201242095664596651286632922372117554589622824970946733825998109477216678992600065701083154441843270961777757487064859921127830134496429048541785800303438539396656597267610376137965229451677278902554578451676284664535254172151255091862999543681490987740452378530653843482070854998508197668262721552237235232754939943223929057061529816850549160079980371210859731023402806686027094464587685434362139967398431846329503577304714206151928404340143066934653903143202131464988085808649740914032175348490098569588982741626740501370668731960332754466800008979127962130164037898939892344045985128195694951547544490662676910564938551039189281107217095836522393352502872028542987956274151396422118309608050074313973465466298376404023279356972659026161047198064353242819143724241368629984983432128624989745378518661462103274543289098183613832630243152106438860680482523944612184827819615397503436735710490135454493637073616096279939229759213332409194962451505194158502201805909105346191413711972430201511320350839720918306811628204579286305350642765228519293411200609796045669457323062467410658500631444858609313220389439159165425856560924024490884133948957571084147979366926023402848103624563524355900275745470932386226358546835424287891946294883692326412518987838634517968526383483492753333081816695143740353233032851603683101287854877892135776317274564772661007845847843704425489810425629851322140515412182625354814447861907238064400707462953332052933971600966146965039700270108092627132039849713188602396763850615623762424882462795972661736644543645628469859423824397277956011910934354498209235241746363827889352657452513300576539201589711553450080753747405475858949649005694116091802776894716809647066918935677088217033567312186270803868508317463120410856093590287879001645334013272276806272671520897926413489474292870213936582327596843010968942046305845274829571792269066029444602855233983767474398204297628588164443048704974732432583570658098048204408255071544480089788453854265302115578570945537591578624462092182166690575392803708287910027961703696616324248798212617058465785650031253554630471103413418919730999874985121724506833132871126631415787542977837622072916739886138311632636827324064938154842510117457767902085201151949301318760090456864434685466526891183380080885212899699216897817483667441714204176147704715495255319198644975012316321178702643735110141154739543575254269353948213241930959495105345292359029712371062480510749235361973311298969628172584547199508321424871467320329667212255232464892757221504352668227910017084310663430870964439980592342642900655923032916141003151174655558639988807748104830697885194710973655912287092587752491326733655909281767946161466982366205201204252553523328911771403249427668159705197590541483496789227486920032286651226841536463652135324896794391651970710412359824462611945906438604692906782087566760272194794882992548541269791111739316358095244543456980698630804316932881417242384096694294109062464781872835622424217299990767808176052812543903855192557441137172019877284475474424184977430005815699201300024604072153250933350536871557659904654946057553024831999477719941182623915376105928711986818475295060843323406069954322266486700344573756268389063468669043238286946433753305743763119090142037108147068936229905417886017816354523835001897001573962537131499814593378334074892791103070480142562834038061365446998408733297880679255983226645208788225250755761107710298393160495714113419133758080970349394317702373159871078773578060322548338719931157112867541013633255452873365834344442956425176827897985045356893962481536686112887887778042794552030218776659709611437225292615088885495183691595841513380010473149795897353261348422401522992358771190977700572559450062514926745365244518621778779859063690655366003269611988425674126483836951690701733393476424290882989648994051232518393326524047448994454900442147881202925426590968055101396443373985820992215173075350035827039088408456927362243663259568549091830381464274201259242737159358610116934766897462490154950882528930589445901626388630381980759439935153256985683840245771217476205943886059327967622534923177611399128487657859672931885031523315812039469393677674138331388814512467781364627772918456641264102918220406535170894008186323399198704838500007088612913541660445453352139676019637661608070634499497606998192043587417385532748753183668971022462329275892729193104980058982588493928920305927401242718203543532430038582058116166540429696677890664765992820664557107097245757820117687390732792461607025780657724674488857876416944620487212388467935202016125206265810621756556497290561671001546016107770022716608611715239219819049806291888688037661315713835843419268174447691166251655615818309996802483169088425683647596654298567171782755676480598262700773738168264370848866690902181938414359255569136518864620479975687462747242469685857941545075370770291592995042876527776768666206374492135782429682963428604946191840166676497128774221298466551779101499138173232954803254560833351350087859065170227006555669333652802004076729701138328098002076130949106086553347606511560401876351503467776549114554015544997449205994368189416177912798326602490557427190862827550101108151902052416636032603014271586761969460791070745464168945500464698971401227001634461589128706932981346078439510435266519718711515729936853823242995568942523025485208389147087703745774296060524130825436070289119201717493429764023279956125706119795107183535028131366296085661445180437211873189371141321684475675608536453480466803711468863889122330148925418621573548538895695780932842229681374445588898712940474988883961861759278059266177445172631779619064137327614111830375084828932722081991486769397434948104092346506130577892349397053895781815504987637022837875565744355165321833151414992618129848059839293848618573465261153258829494364079474746610964079389958599545925271533145403359476217084115490851409566368341503280043992604753833397722964917015413183748713499650083975350196488281185379870776591318860493081468596304871184498165783454260622675675464828287718711905592166871949296061999878744228604086876811849327248481171509460477577746155238647818896477426535151514824190725234697885996085380879753384361563464502728476756005127209087967156982217962013380355819607587317363865988715569713992753128537302363097780004652426109452952250462846717893885879983438137193694762844448612978355713642947939160794985301342747501806420318973313284965805659474413609365773436332117857403247671596486455279081874505757975513812486833117289436464121033022171579420811179823412020169230993427098357485310191165555568998447568555554067683288297893058444116530256998450798290363206412737229724209612297793545874631303791559702059451537183177075230781439946745323644892583973125302159901456048619673100662379438901761207987415072607722925890505092551058785246625996367603041139273126558364721487514983083281381015531878531007395285698441385192901728481291302309885428121144289456234339024611460987980286055078091968171581586116304216369382730384187516927878799068657138130673007956075642377825898229820810171960773643181247968423103428402393493026199196205310449011758417471131239582473920811697275812371456240663102621434568030480866014362902434944254577415926312810712518254118327533124179582814208983120086432421171285693629282969814932940576187277275997032908109159208638536608666294888550899165527981682327802272481047362332211368795445475893322329497670971479246039829011131824331283501803005150260665643663135469948867494088508121221656420071070050719331352071824051317568497463423418807246069858477232421215212402066683823342839503437154340224830924773442603456242967386806648264782820013263369597341123321793506336248235362130137467269275937260160047899489351659318049253207960877048844215866212313522432787755206681146909013102569229831347508663809131687680479514553805097051227988401746672465134299283882142780248747878228584503374094657370242934325748180743095669766552340068257363890410823237065771939253366591618442226540294460591671451830583354891994861689404575249396003984575483698404863623851877094560758712104761961559324494373000109321343513593411314683890916568122327468440225197331424274783946638417921441943536380490364624618081955131676834964909929275129954084656294603404513426375084370226867922777405548394995120646904503063641525095806990248013549348531594775729813582705567415014835954111572421902470465324422000390367135657770942780577434737646363084611724017903940254488531431502968759562515084903999430332976320161081657755563937793566240575476261560267133764693780276025984692496023872172161390748466086517748783888428239956044689838594966498951593702172873019761571936647914998818231906252700783423475236561353914730172369136116739469276542974435346465673135609719514271166126586274904714304273834597923959955227915599642224447988219276653161430249679860850218843220979566933415599980930017087962247490762257772238752184797358541318658074272057959881620192850968172552972515300487263448371238550144241486410630632102412890320985809917774921402282996132185657688152270646323787406871583844901460845620881239927039200007686805563032772927043473264780369508042919642149107502617153615236055676573054779802458539734157215947592708204317269001664037265641426747643547557569323638208605393660900174338666300264459439149669125717436285340726125881678353465936047549038158293586147303463039732388867184518142235562582188514236358651707919197976155802056118732618856326572037264475737570814488608899425125837127987770951886421745118754402972003274040126461635946518085359514717737925676991750304487813905612352354293480503839890222480115789584964148746526452980337657440322905784109831545294895418645303005559168269137450034226068668651466514037431991118706381507227357649924931640310069882459400081020215706508256602871571821530914035773874665595733679195312610516918952281521405477782640870917771392744758692048359058127520756132661763175828381696450523181676536347885378791829794005589822833138913100583590545329863889363690602849753303582158695669691920266641278025032232830074511586928095943321561354802044519834950512034282535919906980308754551037567846980641295844825276353016324960319245928529468084269257354359353604607064333905544599220853691302665079531641260163621986238586052226913896945001164848916647193066157907359073160590912840939651540583673602326878498976850691318709499494864295716135851335061559347119047879516579316453283933631170503717077157550195759854255277515998493347948981131220413392131565676329379427329666954417152378813912623826750069805476207085992016789771807202513984200036094303853290457311872341780069249081450143552960858137735456328087493802829752277185419252035308904443401410372915862330255791388490428164807128552051658866357454555336059092308793514543165596700453020773862807775847060762369580682918402828220823974547716477778641300666747734432448061826616891169505601898527884566643785383174647765416349370609364707228017661838015849712851869721080547007088484622058968301302137777148088403316348739614983945788126456143617117515571852714193510697898054929451684666702876666665741453251282839755424655949564126380994854895978466704982021238596943962208799582574586614153415501077271161152459944046859692597489309436328336259941270540014754771670445891720855623980526599810571722414658981322758727645691912316116896099546115064208743728224915265451020511996989173317180818408595842543007668242214592324278399850924036867123949506870097484827540707213180115475473867035881788891411764978439497393476959685145707493710154441312452933549783422168936050356745822500421145652734123717333932543626333695108904188742480189855242805778331663055943740354483719423791206389565075918652905989564980089404314199920991970128946647433806561541652969531208437417735579675013945508395198726411269198073074883769535520134176747374473415133922869553486264289030258961896187531624653701236308391748082823789371453942268255275944334916452227672755504168501511228296159219101777126007477983700686950887701071179295676956042434721317360919949616312620515763468723694631524720288041067112688419314880869156597664311623490831285860548846760588079951762753098586016407720882411976507081485674712851692697656907816946157894436832548401151180740960939329782997265672651142850386487619641106637746147847516356211742688692122866389307262143890962122387723432092469751295287550306059403678020662209043584727234286283158221534823246680213580996010312442007575389718550919439540204603291973149874652476312060195153210789005243510859193527294019813604710138363182085751030646371089154915545101350241033999115295489205175793350484106165173553066028514289445367147109900422600383976544687730428239036228769844594511722023400515741989210531223449206227936327868743198685030059020505081384271736209901705386453417472097565476064022345342045429069444506322940207469334109941096891244453037841054795941771089083722882420785608380518579868588668147848281392593435316993598675588048436704482949036183294733496889406519414030956016895528373761446929892748607584063435624217363019658455380352781948067360922106299945434945768660802463009227583151987499496619417809051116081423647669405311922392800062814321264252939556877148046566547057745752950681138596308374969803661570149164605248197297733839043696133349448778000218908246241906483061529042338990067273090709727287496389287466927541366537523745861165540037976246109767398582088810094924112316460732336445875245240847284413563412962683593301707067114749099800950851089644772490880524654885723882232314539115087711256573427935161340431441998465625361366826906930059556208588026279587042419560487440411039875974378291973802455497071002400924231977136942139640012076816986127714471452725157880871810013344548991438743944535350920659441486883647108284241503397497407801238930874318430311033861464965291943508982042286576822415064714706971747984050692695892557182609805556814911363498511292273094677243006972438639348665617227444865196688743831532231167434576859894318302626179116423096859775743099873826885001835079567155838068021276557445178318401488259560740630849627818682440071476896565140228055746784388535089659189653787641421983834082612396598337174894816100003526822502327680036624135997170974123052292651706798976541003133307359517525084003480905184078374302142871713606345483841669387467480495064695831548818543074971649675375226650300752648977141514613557374607612208302930873593048789933491458921093503093748210616757121596840932633359939459442718566594091818486258008722423165798292264569372471339704688845142223398084468120587290128894171942907049602653631501900474361411086450395870652511114060322369447685817085828895611375236641874634018692473538732582144110551251818853912311917139915019969975943301998638394147199875552834656333146149370541259832239547041055237464072001691487161522670416434887110335635937255092455417151514363024358853227072991759070518079688600266003296554395095973954727900895442227617921949788569385104673366897552229700014707949101638389896691171517050498737904900090577706186280913881073347469965294051600634757093517539563040763174655891597362378914566423230640819572207619406320409871187091106124078298133533611654306279647670877305826640388490344407882602597663881795482519333594545998392572389343908513430426838526253098926830368287064086939769367847745136678494508502378418625730907896354236929035007932545694893115293567466898496246291909888094380111608418491007153740338135337224452427335078371838996878821076816901078245411951263121517798519003242194703967936580508623315553641456307967464304601789417691848763413604592821122633897475356703018673784238629148068114173498972864107986498349374130024175834349444013483976566006019197802267863184019464242980947887508120179146284677690960583547540358462722052677778097173920048392373045784006357471757127200178770104009459959638332929279642611647377969162545046582422793961045933713010668378883136563096817186557025757881422215122979261967014942204893547548136817424736301979880082915740135808701063420674413113477378535349756142890698730616548105188843918775144412265546929654520543498196636004970169979599912955196889182680796254055593549571379636228056890739829845742973134963088961838344212955144933458843263387627401612642909461883303430357111102022141373266378360405228641318964428238039934686224398434139389429454537942802279611193724048553131257220563233988462152394963500341356545243389724819591702730512163490578440326855443815245413835396033347131780186375058690781461121876394957467713985412767191043910429665791487466945529833065388964760444762899616168268574496718330262367681600760073790051491107511363149863032918139125292646092167435338847842552980105259550277486813618838024570362561362975171359047649906082709326765035527862759780584147374408955724674980396250089651940863469037383960951663451630536293754325941424013570382159875717353117561594641876467094083729245159872432535413386322869987704173183035198405586614857542761720221293644487305945270390036110239768163126564910927928691487248254558557306015840178096821906239198411163594996690242675626027351719238368070149639691946915180701239590130873907204448094478211429322448832416660760130665974599791745013186472499255227898045786824369819562127123580469964271143921688746000112666519845029945540419581739828067845903674202829819634079937002225828526548823159146993378826898032925666410592139459339303301876174834619061029806293437932383782543526389491512387701859412160321699325427449789613504028468001603984676249579233190766630622569775626485112924319726302085482103365988930601321017510056589224121553100939558305169393469732152795986944229033343013636643930409275349758062453178079548514003086178249571985277556179597745140314841183223316149985824744921157487294087289314165553906583146256589212492378751578226876161056785404410859676420802814386296485855663589346108145098385636951921510179561061170223767278264221236365693810648922299791085997113153737337202908519745304765195238591929633390618872920943086014566179672882349197868236529934938381898382342144084821061742090149819432101205392476468474092771460381805395144090174312118104454114485352614490235750262682713162334994014825261357950378184969333884323448375859661949498478125326453809864763052881217048260456422921652285586503254590431701808589177859737619455940038161720478538013953675604984145702410078875340013648429381239185611988281113993714905719407851751022254608657013385860346718608333287050734101196972479413943013961709077617003989939266048004961445020151450469882438940797869057482113044043211023865306369193987756102097440966327520876989065291133945035033394104225156835680259320710697293183628028740201963158651659208746235003657538504443946379056245196989533200565883265029227186437571985795709891421749178335026740034329268730125762359764678724651111739180507879536022929487117780789442697150467293291355059635688409312831732747373713814608450531860412461377219387871615595512977864888066504650796335222710354068084390252386499879619396955315803892711785547721881786454715747584858340228706417634227022642042281625659699097685517156506923471102899473339092268074735850598205725942537653638919613512615154190984842999019449481199709936942392424001722034830492736389657800408177624871487511697220408360015639129225100496762423950916617056960318647967625005555310848779501537663444899852603441210375860394547581560776491401249389534960555086192379480242070841483192461449653975816491804164722173393817874602901350160230730875571582927711111738353902678027040442581073259738723833220756684698105793197071433732195494693649287421938747149720303580371556268269641826993211761562168175439212904200087866166783636938894066322124287033228387754998464368831665861089277631950596588650452601532024166465068558421447480210793561730470314224939671263491339887130690074574760529630528341144186342689872660516474966641953670173029820280487568719646970782859392936360587771153068601104209678245956699313827672107943294096113791395542950638197038096834053703285016627620781284451261780298092692472908875344467850335137575989623453915423674863432808552430171088602541471733874619529471037078578367314348696692966886519820377490620431137049261144551108920011994036646889509967008149664555073638769193103192425702109951310446182837733421158427825897950144709391067347717043930062163594109511282916021594635337325463576898147257809740911535978119211725790227402631552032431015391550406220532876858666981738574083297422361281080358584898646471087189521775157265679211903652962056522071790673219986042235168719416451610662052041896596298732998578256472710143711269137282918655503837837255276604243813242051743689769221991474381458196069731954942724642777452601037792688956250294442390871077628521167628080119961036524592581704109930233963399870244878098025529205776848789833198054563410645842120044004171148257086972552889328064624262543777923384945572537810092746315859044862149750809003384692975957162392383590779085385274511548127312581181466613525724103133032878150770259499504960554193458007875719331221639257124083922569389060761282981297173234188328369383499108164953788876687937925626955460669659349933747959286094850079928392112019117536206839325869016976980309651157027960041393818109864120431867801188519585496774869878483541705406735198515784185503474152448588470641580479326666638412029820381913492516817417587324779338657303145234338647787422023171578069705735635124139995780417104581485950057126811693741433597357470772205401809777471658534067938077156160497873364544935606138363462344517057936449542047032993690172216881760848728571889518920603958957292580231887988950901223551670926412449667640178048991582339404732717376917939162442142209534338109697221087173406429541090367048864037922465237565640113694838726382414731265468531830973178768618034796202295325043951926021635771927663712264899267166615553073226982153094078076883014178351188993797084524326288232384597337971751862984109044113813940822561492646316919117646577644510464041220921680214803754754108354552490795035643857107010681284715126889756151860336808966298493738073742911079047242033053901620778485172967433923583066010472062257472095537352643121345931377253276636381547740400131488876436604966097594732153753490321656068512209697402193758804453969697299815660013527259192455170124372556472265329280925230076495974262688618510547337237163194617789710016643741221023108811862778576554300629594900037378907359980168977601429813465021052890094113858217898412865557637001741694345442881900217788268888135431905725590771822199435992640524839437741071135465156015193585894908289780762154729397717005611690681443969331956399163668582215251838734180818861839831189444616857834394271409438087718944239264137085880650197244609222159228521630489053442484624645580603904905366203737103822841525850263551961948899086946896906718726428314332314410397620918407399423581235345707283893841050599447875008067065500934962523585974635284316297276229791696262709919931121806637625255971501733195415927716129217374604277112641817849037855243601709739565562997354132374829186262682889441260793232212603429465380114540309674171904537287456846834089233511731765532492251393219310017217870943493588177129359882871659733136654679951843761954313615849347628332514697680398553646982154698281202247328615562547050046799322694838080763599468146456946580585712922130835370499381153846667112492206400515942710973004013553028529554725174255552332231565617179371941137807143320309316294039711109992658185551897349336647653130702121517365314766210314851153265560418852189906133730416712201044865683919855708372187180506383755853271551244070257204497592280544394868882584557488435775808975910753265828688322910688330805116986014778999881060072833930631898890264511251498512760052647713743516682165859585424525488346901243168909500479325756293609060448033661282114863390983859787320826325080323398425244962152693157632660916720239616185445089238492957121999382373821779513861221877285230006643297748695084544879997220279310531690313071965169406608472751028498510925874438686435778258158256422917089254587513049600962792195941072782371149552092894300914842580846883283087247568030470241304907552640850249508978118960856669292163061247985258928162675512037396520369092987095994035539590320273789789151891752611862065860708403873122264710374180019367887527645670725277117849281702043926478479723388277374003701832883955382797153874286403356766352138982608323932765593361718402606439494478027598603765222624418876905636498298823372209385162115919151827099238118025375445311753743205698275912251755638530078916259976851396392127921677290729221108140433164141101571327713851434640920893806613434944298911335392006380168791273360941317864534256377429458353137594942027855285124591009685518130142419501637388398170867450749204926051079672828507405867256022611334413181885455633081290431596616075857388514418654740617615224520083224830772712623787161821847880480842867591369711821578645561463799839512034286219386542242754660573053447394355109100674032017600585807661044841622155527641930093012181704492171563829730596729537854535502977911653810150869326581005126556538240214458665345331509308169698416033294878217842198514777059025528962505246570132513701905809816926872029479829214247472226949984103717532048677504264899806885195476181760181230567951081416396463860794415298271326941490842244201921692051732546213059602665994943330245317160699497477445926472844316230739712492426614909433647400001435860198683429033855236953224686487367135022762421763179303408274139987413063955593820374419054821188933589432853028131492700019427302527687534108431385802151327818481274142713150357722078335100355247822837514957426004701003556597780157341549181869899180203808748402245692444803462570591521124569225802579169959398267186817318468567734454487599648647292822788963161669418077361918283952290661801859854858086094581969983727579347616380201411050451086201258986518385308779443864663067740178226390761736543952669054828067715184824076379511404590650344342222039668439554408398216180550780248141472160362337105950413556128623892032935435911082933078152688140271488984793458941595873384999362623548939137557489839242640690371867187921338543031941247699089218553768207094654954789487994552717617049569730497299298447435279209929133946793558940137133974152868387216478841061376013206904365819804206700915443243085399667476001117150780754136636891524683804394383607664707561722220438176607856872819537587099480738536747625758313243456764871184243992540328513141039355390888005315907513324691668597520637457395809902913286849855920516253414678928378108995997377855883197631000225049523258035063908009302559057513588352045035502864901198609651683658548744031432102409494964752518222210302030136967726038366179622375287200961728111390540420259215488572480131427263477424485752971320954717008763751192705059440252546691892909705331704838087028834157979456776062079268073288514367324164595801659668905815476659794450703206827449528465088461809569427641493524442046322826450728489486045569476193439337238836963762421034077806404452270232336274517632402930457756460517215794814470599934430869227132736200511963441097515918348600547362527644850227550996619947987994803329461969812009832402103454672191488644518719930170840619270237207102092552188749141720839449400561301240702567849702049017500823407175830269816656801659945456463468505176316557357335975020121208032546864960294992158016024231256184137793592484714928762441519896742242249778995460364381838414247414315258794189698387664157442187605342134801044437579841850847161467741069573595164508414510598970222267926406472975092547483736477586602644792687760357985478657859250278592511081108338513306078727548848540466140726334470389012497126728541668057989503732178954633748621044189813892697735406233017816372606923002520077308208801974209942458627471979481500054011356481012410059961786942899116563153485015371401971148460380872552655781775774029602011368158922288505159584558467517673051124161618144010283318702567428387693555069450147360223710085014492987276549381835430361832210491148747922940225583232097600442751289036410615422210209630163292517999340006559816967672811807795105644015035414754193318686360207930832402883687026286916723425808589875744571435651221547149359129033878024224311200308939544540207470795864705247739881507481660059353259370190930073685125932863744156030265737386256365595653772646309410290352757201737224572217793363693786239899426991421755321381570166278991392504312267650100136275546266192263733057981472617115297718419690564271810642375713809974798634661668622282100183173361694739445900583705179473035573951245271081358557291331149775064730107127754873502562222580157117557879035389203117010341114037257556039217667446088749292621986273006380754001699898994089744858777668851522632015059884047325405401620966462885359829485518960913792658598927098035752669034509193233931900744529041226825855800542054394501041392320788850321320292343456633293733157483682875186417290734980823743799295787302930510782405880093194165639532715428113661982287063748835900662834442237683948495626118405643803164107145089001390716502541171869830656775250264175925160040016241645181860010612989721447846021791494008763937462152544700932028702784660794757969834181514291423721028876779241719663090926839175663635516047869888026233864771321372148867452794949576718275148170859574454468873449052112842400897236118260759947319615208609775493065968451828526696409940743918456577676231889207140421058448595131089569466242277993256566860424138937341599732127104027280938368312589859718005171676252650498849336949281444443637031577131358947111292197717153294459246435867284934527250856322084549318626732803066794431950208077142430024138615239770083301049954380844559109015236618989333184814471838556938580286812561580166145016986289235458172003792741603906484056406280661079451238789638731687827248693320761367710107796595076735292967855569894638258464112379061036384061261142316591058290415127666132763847440580631137948579927146096769222466859328628924800925927360816414081971204138951437327737358213477597203336190717862759659094159194641101388182537196542620819704686429560137657186464591648750051843301218118022885490142614953350328665327750146013476832361283148795545017056647732900636691081175608655312852667772821097279976571623778491561518012427363674608619273699700995507853048138601311732550154828790264953733724095554648401422130706162238950822244872080990382223305324360576632531038852827345410281329726164945473886844713449321288320793155479048127672837908274004220695298406741768377723257689625258343605980750793773411178301481960490396021165755936292308817452776675310108580048497425092970699021223986123510784272248634637753411885597365945259646341274149180321858291434559284461832754613005748119397876910324577884754018999612727765984721286348804536831937205438661636100726995715282043858062727234126187446579976555581796894846376837395905886604678838391530270998598128041136641369235380946373232739472608784124123904782405686598042656430920711693748846156762974247252457966346897865616318466050750887843381009887519276507595375835188854049709521395690083241186574154059874486268233984143417699558818428638232532594812761506122267782734531062460359706541103995187008219999751047215138964585452309886263696958444955106175615066136607483558641612888548679172462587417506030254508887281447479968916833708643997304927133402230526707046552876312079543762397991547750386416312764503745736845860501403976425751200835249283097226220382893902918526458752499061556757867373973570800893973556771143092324952779094550182176915022129803735275685402674203970097600757573318801433133521787582064980110556629955488318117592979908804633202797489799394729526084961419610283531316646972770681881016292655128709107727736638935984415359725529265076940722325922972293283750757774816695471832483326541719029623196181682438773786280203876046890922654850521233270949337225067487600025396839941092134785019891136117839519627106497568783410411283761274481390410629459998451339301262197336805193199306687442847175488956136856131609326858961260609994936415635367825962019793946504504221347101103234194457488365505844240674283481013230137234478279229917163597435684697164994795179911296428489694371302359010466988789975061860091514886677911524089297256010399950056532713406253107561296972255332296428895532348615212829597346808437428874653953874450320782773845913395392389329538320400756130614986020461784050760565510009351436644359974658860259253764308179591897159317471162781383421149812488692332449974887486626100053146496947942041756512388019957463488415341197642910398380535226184373540987702674638293786196652878664348215468875213916152712050765811638717919222613371763929190290192666455408723987449326496775752037170191622009075868156555269559789901409455828092188479795719562829448466527768878276211630541257956010805926714549279837044718608710278646305333263651863085508857073232248872045216944693496523262109572343452217192411805762441614844954484205971542513912378080149633941536045418898336349092975513766591843560933292463319576155585209532759839556641553959764245382419474931515360043683813157101971818981411244043964494407147589857332924497374940511696987464856485792547986870609126225395441357682622131819882007852905431012113341538484244374127989934591159693364833564438747040997155935508065181252480290872867038372325909505529389739451976112681120649643811282798840926103090188100547426488003962856175824325938831215478026239066027721043114254429628476861854311021721113032189714894222030620652438203196866260047323099163120826950778919270626788554088889332553970850862598833786381297970457989950982086855281560299907693524311900836073302355262486969589647841224103963265772350083368817116994911978560659025915359549437035976557724679051127888853077071364964189508352311365601099717575152318238370750731391904361785327150468350513612526091308868175569842894035574349022333011579470895386026316904248374248294427016131200280173341612778121419275731731387317292567494042753094514837790647227004090776883156722107574210730129976676746545105019508133890397107649123718340845962299383849986529213944928719209566246951189726020717180058512203868230700357677207615926382155652142367139943678117577308690623803344994790501099802046145082634828624460040582841130276936408295227646388977591775400453792544730530473004552878848401811705934219560275276834837092444578546350317573348590896784278894404248660407152295370740617478457559576328043342586645364952549554075750730444969495210604108900501855357455948321225661151441523315444649200155884303233815372665099878740391327563716597794447334073038476557954282588724572100061938283171034025554833200555293123439671514196331562527910233085074350080625505646498643125313810058683175860687832130357831187835221138623958396339138847279686430187125577387176665801361200463887640005776340414136561881249046860337972574274378532679732492319481493503076717094123596149858599107810296978431776838078047497802590440271254859992465369750601752533085422234082800277279449295736000694627043644599177695327214087416390324509784076122678166925047294013592498363307605105214437414633209360664928410898550965952641435220858917602038784954743247892539867505210764840073433290708939311271219618172724801823283450892332192147858881494636669175429069997404285715704546327930696787249859218499978223966294304725262677833512103309371558923706087677534502377926431339295990638133762432208738202618288017780954201083114592180175572404974730349871273665743876777300112493716407211884752411748154443326132469458286287086351166753968916450103847193514737033291223165295037005241703160034291708823321171487773213682102053884934092689778946742789050947450499924870861002130250941650359703976070352577083694805031331272809467165731543164559081672615260342143736441353605360864226452119648281379960706869005353033471602701085677629947758249513922329799376589188392421226567018158504384229927788356048729348506328386756768428592520045318403465012577582862724900594566407036616640245489352111793520532764401932542300920537990458993108962956564155887059778509279613425477210442883991733934647560551111149446436200223099242138582862069830318757161547863485608157798256978562703894534881257709149378928749018939272020042489292662126850665423084442970440023769207805338349958980478450231842191932829478606056737154828494942892321763824106138807333457674343204677987333890844060266329192184562593286711445765020929639103144818034492048371626191391571547400000559059143093529151058007384050626115886422426108296722964010924330707567101294146245732170595233705259889582562161235679913264886468539422242314263442036790304038571655523691719317572090706674408968736726841687174595273925661383996112155884012129939621109070325116336976669772569464457271537605364822184938615253629825643742446661510732147281368952546868226131627606777424784014036300796731483148432753222280112647372807133747788538531263687070313335036672062831616195066652158012985956745295302721573813465149283161663758276385885220224782973272240405434041829886304181300395556558504772306340833653946360658880609248666168274378828749315470932007059333820938378538258074002847414283612855047840462897564098199785551262944725870934455797081653205114092562993849234267070066687263714440372864084278037642690965921085561005404461901010952352279211109704765693290874359069388075489127238901934300489910610646096894339424631440447399792240070232222259026092776638775094833644488751236989442050260435844708292298286684820875743783493033951662411311478570093693950790418138892602805889831227777409098765807511136651312264293255021753126936888455867213292277816650487576679791330540999778114680666758486200893593985802692263438644796719884427067296360844700242632141057462982060739932469031297468234213653562569223640393685297106049671845862449906170471514809692838290036773443264288735504738817120633413661262187933052838699029213166610998674162534510354747997116591007254001286544824017289700766211658395415215834906845024518386846409026266790624446566602943654289707006830950163509045721071957699405289016624931531465217714986677823645945551600466480778329249982583024523911180721115441242232041299669030497625727643665907958393044635396310134001138918106332970387958334770443016144574901417514476985950136232245235666165329166660413297283932860396466870596092793614086624641982415510397552424149961591490008028455764364712022987061254548498950620038992573711355902235068393605814051058558513499873833284072979123658189696439850097769022664914790937949256187976498113662546045889169333305074215732326051868585509590024071291674710890767742418920206821828403650983430820007214349285586997411869527652374858496685481513190864152749788367806814377060358252524944545419868706297200227965611842553708614413025223011618813049133558106317599840807349077771344885080526203952546441609969893779708142189446068017363874131369904382558236684553407780785433850940531964309663486561669363114029931862848029291471385662111338509917900181188936994130715441648498084753682162969435800782448172272464170287944225956793714876927497749082722010908429232117909609837320270244084885297916439027285455412996639509223751098628345134023609645835829589497605736808738307139839199712628243579040676304498984538957344131796917920291592189246351721087224865891830744117019659548645174920961574867543360006468237971341427068172078064121338461079581994851128630479736074495235433771613526684043073835292333739190223787385881494219548319605200942160891750342362254295182778234463527681756448524315105872217397216257374482223668149523073922795198223951056188169627082709205787077543570211662877279889758167636989635236473306711085243113270099418447732305729944519841234337559307039602358346571867116391116786569796086634862185851605821361216424583456449684322955722919324725425711739840446937153804007247534877119871756096756777026137289096611561796271507030520781122348543381436525454655189256134238112717789770771284580918894510777743456720064668683668400810592781325736174970133482740139851290635563555524376238431712930277288824761718337439470691458911503430486529890108485876162688746785908261885982903500327111782036435483116374351358483549485966866233621661501721563706210396003139354890450026368596639324196282481638678379902140383383791283744279021330518883112841210900627800278392289179144666288272443465034507080075861676778021994807820953848135202103544076639576144481896954969408816525868822472215974630397812479941008141059437769334889569689906143947975505747104176071850222957640934894017015069983845250107592574835553686433632225856911023090632912929290956588769188120691592994865173275904555494765769133641615605153004908394293007155770764204727294820708426312984578892291693805179301133469606458588115113000680801402643691149256178588589015682122039098042776065753341162250411551183200273969632188180565297128446833306070169082857641962220357331322382215586764769977920015895833604523500368719213402053401043188826095747484883426016158840869326265989225177092175174377363855760077391487116992802968074339582831482369118235385749094270813438606667936759345375600056938497718480604284257370766156061117420317644855296279978096447778785176217182662005298789029582819105530506317585784123893149994613877944635152396530886787476270123054974095388995481226514257155481681869734285991800495725011584429188191342712262845785321829371071459309756338618407681525358170846905602856367198854719424324255572891388426905179135297537729201555616205913744720235084286350278379919054858260587721457021133618322000602818875563759494271959178997572103324638659245399889352505956715278890093109199049775698845944669602107122774233121117626111247605742939919630031898922955332791827112873482112095222753399760124869397110556125095448484242999689414546189571191749364093889372442795476220717480721797432444869412034821715660093695015950086394935982556123328287189292086814199074466598808896927618913849156250047397143480093670173794428476115751453154699463678218944717189532536717049321959433602626023862133928102519857377530263846032619719568082303433905057400923773435800443767061688647007526386381053458953495683106437845611360520982644347040224067384877912190864464986377956550360149058953893044179348509296202858013916461309809394839799014052005657419667143108333081611514542437091881783578563668026731490998498611502275004427743537187194780771679698117702320653430726425674415125617551186931217669263799451731132548085785805029305148152746809834672003358576324256835403436413493964731228274481595811360287041645859373784071783603684487873894681019872841416446383520907680725129662359487900712888383545575659816761996662987118399412517641054546581825611636038038075580989862322926375821431991592744426662918046681187144851212987645359725984309876887036010116361958123736608501005499055427038967292648493509534871986035001970602188373308514741418681139295953942559057925370263828694549086108418241853593720862755321216052382962740217772470461516822429000856811549579239637023143287469039022242663259059493043345948962743821527436844563140828587200439817503197282776369851190656189234965201671891662299585222053457124272880451393543309899303790792044751191326433462159100652527891659343453329602907224112009432914633518954696698289662361809733490019828565811915205374904977879670831881860689723363921595781394377974890757582419157330079162937913778400479552577339756480464741818123140303289802858330900705429544907831604033904544173583801451611858486811540431378595950854058839121157873050898093078101657767504655860416969890038746055942938357289635621125409424399873665136935252787725797708260520475659899859430408502346652523140566662255203525883358157252713427085874471466990942697684889119216533684778714496147347713316851018842218563148513618522883064509026044330738523537369045652419214583917923064646059014670589176554043183692559754843646157496869444950891856550601801083753607022374372721793286871637483245913472607939464628169460596490823003709194397190911315418912404445545028499220108740852624681055009117653330355985181540440280195060160840884926101337919248582319668711793701329684180320319212793661300679527181607998842398503174243245823876245705994619834079299507831044252569939904362006385582892430718983902810113118209942343423171743796409328421202608507892163456970283238121647727466254973850040615207513557317684750844269070093270571997075394603403511570527886273825604598103191645704116952048734203647492967306885188906416259895600622081488700715750582614018477407864425356398544986379945927426872630628388857006855313128592484517850041084847769556013472685368349635684054924792490935962711574488216177028014648502020146678851496678582410729024692944199058765849495550767656884920105092669879499126676773828987413634031627065503256461783082646985920152090872591705739511110234487094436186245882133951075725041030635525615939984923310238483059957542614523435509418720040965156547565586820478639365276340626495222260302449467301835709916331812047174952669840227861045489749565825089051404347891849194790002574800252599992724562227461920241847023456844656908843293969395328194084702748469606313999552180448745048248309405662374427700460610946484846269635629754547292602196142449968770019842487781291432517147728132387002809538209701006661549414844258904225482395784584526061319599937491042019724023782777549147895573092417224259126821485528090960924943571006341759105384151390254398951863569913111042471462772252854578868522910851588275476682295841241814578818591172113912209429442155846800023649358648089878155382064063151824379416588344065271682817137957114977566928103781764112574948516532531126558956276264354567813190196100673578750537528671178200221505955660355835806384616345569067962806177575485051480049587564505129256792054314301006102884217757375810411237880319577800205637602257525370986066431078015631151585620567375102163297366795026768152849549163729363690462711945645690583865728265841325945475402349823506060993874269462422155120499949545219516407236136124684972420541685174918958010552823953812848603758958010237715347831160374320877780618590991721132033849881953735193544070425745528212861291513816810791563792946058083503123525107650289236247133651551636196347073607793663664738501633939515816801976747998718536056962424272663402891157668001272492764637581649241245032128983512380658255018111070824386381447957414847188268904247212251746856843478809102085757253249877023224871248586570057753503762842821997089103733540571373832204008278621182725978433662889663938552696766175551185156388799323562212147642696107920261256485802581545549610605216409842245355113804350145352685942624820378984240601316469380080438857273022312140115680440606534211242491341266625274336688860291157863964539815264931015659579864036752370123379921153919744454335854672771401538960625701949220940284325182409411454521573196588904483707369693082324890001858561631219509368379961123292728130054749520241187024981331856407690041983421975478453710877151894519334385322874336096731615430961467714926980445508147351885323750518269770278417930654983893373240682896988488968936114122022754501070876477114623488798683025323606439734387456986704470311356127670753629043287571396006678952052311705688074549822440506845241391117227962511247393922789240273469405957396924051748238324880557119533154121350096431409531300068206738256533403682722129574674288620911130924738610568346092713267837411500909495522853991468629219078993766004424554929627085361346452691946992674423120688031581936062048791910813092990899593737881921593645352346955397617961281390174170254259800227254805511683184062624429227433988173364785376576919137629948085710910589006764155814199223214392102267528372954430226135446669354670137348178909157503215548806889151935558874519313784876644039749690374177514271927800681421275804846933176179323506824261533188358784027674570925214553231679835845386685769992858365787566429774165324525957706400965767412579874741663663573445484863034724822384196725518742415066536263874447765782947766796484733929707556108616157200981193288173865743019721328151789111877101931160741139070742162248089341153299203632014755808441829802103559837020674251133565213569270134649935509427161076493674563663329827776558076856204980855104600583623102383204923341881850154379353737708685904403958046545209794907475528953877580055304212317031489361649680374102014589282191626032532431853348827323659716624134378717580842222917653363112279762559257394078054187349969470398227034414412137079045622617376567087254939130845959024693250389743829402682516579002952693410494283037411522653741089269764509237691925369498221764556684106667952989301934471655864230545063152738994293940101603142454645111198399492801007219465258736517337309320012892208179083413271820938605876311546557927445305501868973256534575869984986732095965236810565673040900649638713551785033707219165731704178498528212270617272947183215562137826891530468153080713746900023947686040555768483191815726207280065522356310055143454325226747593084788073574425754230518862275037396760027564946890303879007289113900881668725673721010360120263150586566893137686801098626306777932357783654289582072068183259465378582058648011673391212098333306346495271355776936156837719867975484299851853933759621113680394477280811671190769905965887307661297804060289743021691343343357380559768621626324559143585841981808067678411208534829050148800427366513732583824872434167612332281345096239244209442025999413822881836379158547069288929688412499104498261141450091403921275972757989247716776491565685319540136615648811637279093655325594745291133432440738031419070378948664104333160417030747689148447161076269113094501690904083568965617944967920579628734811114814386193531016484284987767672702445389781274197628619018994183456125731619643636108225109612747855298592582828794393106480032373677552143538637165480656152732789296643406438996076186965715442299274508275198407509678419013111262804647035057461788570771809823192416701904261581214863177844934682528868058425337595022084623981417223782204697042209247692309052697879038757432887488467807994398179678232865707417113750634489499317562083797441245327932943958541334683732979890367645119833483709069766979890133296362018991461215443201644853616711097047779270639346015234267528697447154373559605142570112746029232446210478877768988221543367396827665154387482280932690837644540850264455495155546623532081553424270235195197826658545715328312519437200469305508319808837321650341566342559324248423682254946306675338802838253934817730207469948645520712095820894553244486144311868200592543883026593652625981386799615024188447345290468267137142343194375335956116050865514274353347664038579325310556869568892041970136675787465934269578761196620420477124160044737574777384486710946042796286834192042747904085199265182527464700643964581981995645349005005270964764630490010277761290726485357336751651583963140747108894139533368324308902212955719184995484518930372908958527046876510696466896992052436674544149128318224492517773805761742186705183378090276007277364688602954733404219166918750928441319620433099766612228508414386097292627190882577478594015076150227422662179749173895607192945055433657304142175842763074437722068295353282844239356467760328063438501157725717355613978105262280282707141553175110571414958130944987110392368958569820676638777258688785463136610661561681183579549481101998931705412119966119949334544021879517645922004539953009117723221500580790947233925293094770260445650566511893579872750142984228141536820758000857956272199754406922858362877508037161721926228639303291443959609351983616896882381511014429279923497303376952203462960125935997022496384979421984138027392259870773679307002072140718339971011154402690424220454393468617710526743186654807560513439749784510011008849021576048933040770445552061277108685294193519656365864576806994284912539669525363362671282246998869104528089918262324115679446548214322243047363226562387050399589809330542782940779035732561225973795204777310590446505270592564124034816220031469725106572568733303444706037607267474513255078886591963166344965469299948608999731187271984774979729280428141748227713877930796428072304677602148152474370262191980189205728297293002749134471354918287717598938898137743211481509517597354855823548511516296362434594009402714155782927328328262517217534352958893083274155854056736378896464657322150614902693262411362461559985854939730771316818716801709254706699032365007525274640415039855500367597544599030037173404820914545153324290831281325561226024021751280475237085765243818793293933829731142472565535805309371298708587159885548386834533661537888214310416945761245556102551778260419346701489858250490226977836082503036255998935223124004250711488037465603120224128494690166212717430610415437548366207485765442087752237120483485438485598681052589841484117744370709587184088294192654995925939149593560217244489574743746249058872719414245098987690249028190038332012209446901755691393384361851880036548169535552322675884659746382920512090444223982599919529813123122778631705437116400272737418810487725452618068015174718506336983855877768298423798527020154265432871828654330236998419864658461469589779398960266506665816487087184549756979032218232040438206924203587950767531510473171890757056714741551667546887350832172188584857076894030630046603303493001016447437751730998905217023483741381978989310765412779408685148766546854191947761015586141109816951705468905522266162199688672191392607732273208321438297500295464546755519287362414673303179945703842551647143019853288317677493389874957437987315506833484831989226061761088520748045476402230467560375997305140291625156309825903539795827841797986152474254338599003777361507581351564326401827871390904842940899236061394901715303284763584428588610415843432712037580689195973622893181087530488779798158612619484246916861948804092025019098079409138805322134388057675503407754962033218472686024058300162640066169026498851148311851877007530286664894042113880952023367521429207528805773728191062703493161466889357244228703418501681025567901285124730518579686447316412075943473206680919062384625935955326355704704183705942408242787886501662981983851325907290340581575821613509414398111803832250584036254038353740354315377591017413419001092834961655190516938119963428633914774481891973821850920968901545579038014558801647695949671319331143724072600996454499762501180725452103096596208567709546844437279498716774425964677448779977109920793674386426905919620155539102153687202251321131753094908913488785687521231245062536622326775090898448841371193649459620245259668982883394405164672418147161130477636790338935637918703741725995084861658891086833532791004985834633271230219175468450289433847257547858639460752231086555174817518968932824190218452468259993634984889808412540829334078464373202453559451391788430722511401389406540556551118250310476121018328269488732384866282518078847768721066483223323314727778655561941829773476360397755106710895422919179851338724415601372696883850955893917801167987461405323127904907484160149638613802854103222369341848809798729246119039745831569123332738827837237481953179459426575896807274933453062048525269955390799011541692717644519669033752656202236217944829301374099047805360658338947591497986412425182867977970136887512347530073697097884644611371212096488275218092622377154539270691023379082066904365615715694352877976143203628921359402372805024539042636430802185702881197962522700883148305896188145859342646759394291791577656592774120557685274965023943746958679460996471668943938795126822934538186705082804620308096906958028476633306829395136633413009949518854414024402879423079020067301710101259607968935107807905755798291462231181559964880711201820962153940550188622263329650387953909732571877311502684318328453283030321889648655117772903050365371533638305823894181442682058470581014669619022248975630299680152818038399173154321289745594051823622442384326173638449234892939826860112447560189717721300653581570901492779261434279202285612287397937624630635370410169157198682529781728339939467965344795824121391742807969863105220189915194691374699988611015467447025676528710260484269640263322034307869606227941501626671363681788941900462401043192504039231030998039762963279882720848762349981019635940337488778475587007200758719193446504870829862914667579178128017511040670963085265954342171844315496311973802591953109231748648684517996702204491877918463955685233181249053286408997429563434182298829988195794087896191749652577152233529081801734661109955710625620419871324773345886770212185394137003555762571246060870505174081586203964629880193084709547400376065324323884691803238049456974225698105875902138748143699085158575459417991428483358709530681314827011022298549380835527784103644529103437394069507638766093727569869498292479416310542539685219530530428618774426171308960800959437220972555166113762136781710459004424408003063146671442334544328017273757450534808403277230420500454375483826368597853993139967044211819921281788129479357958954783818228140720056435496558453047045895770685952979637601543900621246142103999636313783769627665609359488862360090340812844020249646067652457343761929868055544456593337690418708990233510307765158127861414203063330149957426385885251830398899292779136717951172880583146043887643455706862089269884087808827764537960230609712087591176748874941688420637864526964615612681657764789597776366111984179747358099845374770158537057618081114740224388744317587268165308337795051607891886998190385337530008911627597108736404164268026172784378994572213164425810508214742043040810553100291748902931456557774983649360757740743965723024858574514422971356373287101630288012450389637895163549957934008038732767969368676331845704626447769046644676978161940305868125427089360316752617002094855319768655683717939099739416998508435058981129403298321166604562499406323779137016272225386837386488582666582696667513768081590070419525931350623815521950362195063552209587854032704099544642735409577607959446338566021278293259382726646985996079812157752800402289397474190012254587024749801147233754459210455075096455736414649840519797892535377846361648365082463728909479797616583169786373906173763740519463901798768160684528356251208037519204005565991560842745819977843263074596528979343189511232448678803079727989580702229858105381199985745114035193486954907972089470609441809101771807304546751028724067222059281084054366183125934275413978781910067504256955530724139315631125944002397589839049538612760421746920269003432402130503425361773247582262175050391766579483219969052773931634465671670223545936479892404204398406066177729553875639814145508136858245482936820434865453065389415854159517303295363330854657508733939581131396937310085666557184179331027122712087739847618179408622672405534991696678080531390358146571028135020589581649778873339928359854126326995047844786693764072773218479149389141771285093329472057866355244263921459430307362397644537277113125408215620552410658746966522281940896766636931852255895730266764131603884341338900250946069773020297398432050138986620515143028664964663655097904936066694448173795589749043538797795419735618039020534612425331849121228653742663172028925461497914669343320300792633969540919066067553775592762089246975135537946700324613739084279074430648266984240371085049047007848187426143679607656774498592768778446520950863529775459433164690288031947930268852018705572968850122099346912312087406207217720709987061934387404974743485770682197166600514517481829509181009767461286072803496480014500002867873933517210483246279648563482359694062621932039424541126130128219228642363439802591381899839927920902001851582348119949587232045018668243878734910274072222947961807364663820293058208718079237997952520093451411023638691496659116691388626475274781023774289940973178719675454541988833329196739317593406791956423947059164501060951619547254682627199203299904178206540135289814901525735341208303297940304234953211000605668793264654784094334479888961197141856275053356913709768840804526207917334364064789973514266770925559382125009037098823145419276884818663079896978451725947535479975461545448586625466384621463944879873172313014117976488369398374233093805246007978319475764631497613713324449597557785432307594195880392617448616653817452443743186881562338198117557021433636788670729899320791473761878167930075439211179647281690593088173763805770640659472538250844096248512666931808164807116268352233946448652183717485323972698656972582620697390455696085766641779866031189002585998561002055653960667230411518986043550269377054563383630160414609884614035873172608715728221591479190427739670919899283093975391093553022471934446615808942690974361941605128476674853128399176428791868030962852323490093417237990823888398659293651128694695820663748360521774703347140632288515296204859400251166641258849380490806175209844828382690753817754911251915047648015897774554396810890977462233333447423341682098626349870668505939561652515131733291313838423689814021992011477108211674794480678253571460146874904550698106830681080571621185778852406666856174170803780850340577567554027339122925747970005155346174604425641585978506891927691147908688626797955874113261843712131512182703003420987182954904063735761460533593783450982802005364571412524723728685089415553611729718015188826698381084636890134384707849399721691432941707507805888946399259794040002947541334391756040215133250395817488664497324431305415160508545243418718057316335548238607530290359723032755853637862452088429258834491063433024917796067746412201115182118223376510721957866192524079787878043158099087587413430318338959225234881191767242768535685951980468310624022745144093931704316766335120017406395397641057448402071165883242417686946131167151364143461699656987428158255659111898032208543415677073808149884675090109918675750317537556972470924689295987343089103678686183886730504579760276945083815224627106675144103123320241630852482830112207893044517855926196866547892989573307730272416485732029290804122622668955368169508357751427115197520451052245639794999189823253722014797096339473965099611883281174224534182304761321380824853666857924622809935970397896890145439343363901887109218783818001717930411258402296309659781186906596025629746109973894847287769132797691876591603701158436495977622896135792692757247005224953453455921496282511382066329852380972895482092141471179470781860871948318147697144195999639220477057272326119847629646017547163997732010040663826481351322866995366206831583987729443951110391995497665963730700248200951933861819076993285127937231494292279279962102709871833402454826186593258268422005529463621818425635591828695563243592740297357375675966602063450445736686644546676867977468332733333681016990048750580359505410901407453300822636980052437108231061766284063023898130985297669857246111950978240158054070575194179362169162392744735341250317865327184293799117285862524042332960080944139179862188369519954752804465458595278661371296945186630602576090386908247076168140318768313679043242262595255272375166946895508249701498848467869420816130162965009546249262816962403632611669772764743634597213438140992289988633395388667200862536373504920585750716581811791186835749360430171303689650636409003124965170794060274866118933260825334876055686460443852297460505915373637908641182315473460252276401195049573026143556437567465815219864341536253959909239282995544589618372312881666834001151786459044464259903995385855009403293491337214280320542727639937852292933543502878047784599081771922445683177364324871616614527160702818812349224653903718412169308094595450029383019740335320897093304944350247153491504217779534020154407696251156487076792519496494380366548403834375799683530417248584170159657642753262090681924962020526806674557676713469641820794061567542462189082322154701372338005453692737327473194726337999438484744965988171625449083543924090217918123432434958117864210152114299547780187630584315208218957421823890325648065072597971308666778015293721055009242276952458031553716329981985598759816763984931904638270698283586851104270733556482372982755179347361143104040627030485315561535100710192806944600178663214043239173171624166206202438663982819748640013307280571151133572791714021152127834784576604122050243641488591997199398098727567168918597170359354175682392920649148694200243878498085636392774431205527223588822732723355751835536186062963232847139975375670267610095687072548275132925715612060998511777741672125287619106512403469144839582467141762898031630355125385959449086634435356706017950952251138971330168118634600546499785725566602421578452859414319264215943084825268457828376973989370048053857139911949476018502466817954941282904808576826112436759970302665385361431377410507074165763379645280008890336121808651489178953964995144735463460268279965079743469326678998638829438549941651109468641470244000870039372045239782667416994269676661514847305997363038720157951864711099022575461236058895858458325770387438285123032223635657097531329632716859469076457230566263170186762773612749651643175587864696557816217975458397842172106713136151143221905958837740087364821216351972970438699963616288561649417700206292323945057891545228754111573185699657566935903663716935331926862854495261512102719492902726016729615569987584615153884745338463581154729044084918258886085651863998668498983004173457207292688291015167137491918578491506751219558100919931667094491079241811915535688458057886435633322846076302293755371909517198071007566213253459072521764836245355954495014728068536420581050452465049504076286973098751360422879296233524567195685505797068120688881177449584250806289833286970483827673072401982643329918881573727380430950230807700689991080630292235386729540360650611507629654397414636895222036863624187809413269005034257776698937637282064413975603479439544681637147332940861357548924514005011307497962156975481381477362519661878569260032307908582734801478796964293035954257987563570558374749816168690822615563797934943591733477084444692581095051145304436135787046090105368499723337792029573340064695980236800877191839245058536105327767506263513790347446157927056383300242100724653339701719123049969863838666964443938247137387444133282830890141488360339703248673159772018248316498345109780299427785315226661158267825069022224537594238134981118839887613327748030257059467596654583575060405106658696731563662552373041031913910483045099799101452888206547720124441098260756708394906456226356409952791792114376470246113859715354607175506913812625208938160815879414663562783688006584945357167813472954302804903198770939374017248014389157779425807931377002310450107983933186662308171578296213606212707306587884332254301642355998090515950032364999667313712323411442228299714487486368341498359825465309099056641596350888274477317493317514270157914403409873971968210419351467663411016583285067154667074380630659328961063876827991504306108157759094270358527803540579334429371478259627721957765411910174299484471136219985240771925593757931129506211301084512592495478444809232325153389678678328681830846000065604247376424572063763403794236540125234384232148364549955001048368957676402668182529299022455603398437638953615456530073397216159136238618020507435200084915695182730207193779727929643964553768041311547262634594713124361047183263582479436175474059084998971795828293683622877270365034268241490227801595075797554757905861269490750551733769327679313289238581863095730745964703015702378551608792118031506865159824075999363620736269674856929048627569728134974315910125107843385089725719593227175126309722997597282826392981994363022464300592819291374500627100337203569777770748627028289262363426065947544652309064055545571855470801800119036665059704249738835670994606432825972656613952064423409403627201119856768012567620893933978645069137090217733089168696069594679098441005091592889667369480922141839653513108637999086417527746808745460354552836383826878615828002740847151708860742093940023233260208667112435704779754969292560672616188461127100647873224883582939246582394758017115167017001169745223275307153739036314891779984436775697165453904045328109307233863200444432142634627261693695157939682988400445911626310023184609462794667847578421907980602633040390197217242371091997829553601843418596959128913806556769901944726769503163991193980735150738089751169069080662126783603125387585231534082106252301182569939509632073664826444656302732878590850683405113135928481378887122571932051469939794931050025281823444817657814100157708740634230627039675077411913984982585269523519971846159640718709018430697516003313000980362176180805977061019829981312921584467685668567988556012647352220833572532944762595300223007074120527987033609750954719636324068574236638856058454115878479139333372409965085307263437614393709931826599649133533143672277841826480264391861586677838598437424332638805273590282264793232652888386677598673253581699060389056232486106815802994157648197289280366326825371651058788180495764515939374442402299239664447201188976665721750395366767621233097763912938738187445068632164937473540046642096638235031225573304279312249256126204413825032416514578653606465091848672761144496900499508681356222269168527640521036925863161148654455816669438216332424469608521987222638799637994914603648155333497203792511629217431325952594836214758803204582967172175552401322781906461636506357476297680473981638103286563653641354605001568329898391089184053045210469403018262120906519585821407899469778993069568306495330923456301266866038239218911387008216356057741058139526206135614549497316189841695977127138129075490038549382740533448059632632382155232177354994226841945848449667922446285427958669987495685947293044411073532275289666017790333364569005730369358267061577615147482806881043788157105283530005405678744163686748383159959209947250175974225392147915874740896904428003777095400875320458954793014154383423951276691066471428696510455726538037487784655041472355474631810163715989373403965997111724872941881891864799729452269900105501723850166265021750277930743303080649554660678238178493302476862535126663534470775347009341309807717693342238228283156346869031660603187430064188432473269947080279521775715035920258585748077994283946241594801877705351339112140843688997510176051192016133928580204122524202612361520639245919188234062335424512402588196880087686354363341811662185437964088052439260330513345898987727304112783397549895647300328011793173148769393646145989824110890309888305810054392715898749657187962909484920765915712591050215550139466950285671337447934266682442128100046006304929989467294951850795257209176226008755373415822900014068362243691635284493798519015715642994178414910757169541980628200598566762372311755933691647328193116644437657680508867625044783663283412368810461902113798611592652210639772930904312384059576903429676220357617099750346645249469772622246182512305622153792122504843096238898983203329326343311807755349010254297605240220682870289091149706344984208386270555106503232024458799860092711274823558883056610530733375491337217819325323891841987550358397939984649913810366854949007203199726408757857922037156012093058646375303804651227629977611761836211711184941661715962394703107125765269275938088954491476170890041091400825353728725880861978746364377058420739665853908337769344952358837904891790578940983132049204685445976816059005692029179572866456739772580721448292877995989578753587898604479463450996774608501244955512860232182830145594158825691867117189865705962166950947261540031412747241344224909688199812198660347858727675837632266228904130091435140377051960216352097505693192997403261442627376686764975220895132528880769752437779483951505646245405764181601439017046693658800605739829103755922381055522475318288467148780040914713112719681294369599062166181253374471365509855107075005614643921207344248256519553069446140689328240583323758568497271629533131678492678287174612302747778422787991599255813645307697505880323340433522663527533487572164772279720672161076735450420351802643727078658328431427211964905505641024770103360600521595925457365280287085466191575664585460011292192317613310285645258167493273392602144438129022157022068976381113332682256503586603282006349999557062814049007933668075634098039626370654610728490020820631560242581627016256207618094949065476329729551380299956465515649665371233543550448039577339302248772952872346070457982346900764230359490185470631574806550173569254527396696093546511877456224015026620312028147000123294295525092454784934147087548669611762323970529371628059196576550354638414970795803390837875326843413574965879638542834673743718031568750241188711442627705562647756943939449008555979521669313826411475858164458578363462180722932059439038172044008944236163390259591093007287581062476494821314262274480471028710134993031439206678067796154363361143660728358935684766507174285752576512333849738977167420714589233133166555592161195360811685465963151125395503387523312076215904085553473031363431702246484104318170802737848200564001325618831672232264257110198738296868835962760270600514581010609669510742427599446277952218132639716256034747721543181218912622535030277417261164282887835950783360776787229703638809089202529633968654981607850756544618988122450723343679022050288290405515684973796405892862156470250282973413370955354221977884150258948172727231999015186546488667513667971367582854881132596326808048847588641422929033553608417067464173033233199222593699264344500651346148618518972149323095415587725345154348737905810502027857049098343522229663937086302701731959710266939389327386656165441302758506191513380202409035549366125201277298493771476979935168877073212747415777527398924091847213254437745009090918842062619213246801371896058821104011016191264795287189924034853242206564056015807329932926205990016196854654004767176757106946883590118313718784230062836332815792449258382679951455110731949564449506172566531611805771188900732654128158944930274864750962821173641926171368040962769173928723416091263073427466299066260516464541956684233211074065672421907957754597879587256009470804930385192608351242454342407477448815240124941845632409500842139866769551438651501858444123333271977966861058611347543308997273648892121558760278331583750752265579341094917946131508458459573095195763796650950488224164960777595458334953698596827051708823851594958736503505318355060559926046327910944830977178614253220357675653579105771782985011396528388846015510593225893492294524957277734881425437141843521287975195760316656167563316208233379204170529610529805872097454405291539635850004842534104384387707294890671838503598860940994943889724856465022289299125397253143507496608130357155413187340539160723130134511612226813376302645094593493731069747554272922442243187580046405490580779948774443571850320018605326391533116175544700223948698475476767437872252229262022636678161670267150185532232525034799043407300835679023546992331452652388421367219585221439492953595388070119648620924732066389066541097592886617137124285122855197793516345083694861397903842785145007872618388353865082389446306165721569773352813942597423325515333795106153140680367825332406305069544077936383067430163707449432041250832529559823921182785094342532130505053677571318112798571630560019535787713625674921664579087399395330460960872396145659670546664285166656607551507008822034328112827690734865017794607958914704508566829003611578918621870233467590909339134514811073057248916272941206452216821020185194200063716734028465469632164637431656461603033043642722913516711755086704870663712559399925766954404473254987478119199484918687885842963470919232276154917210757628956940947506852278215756377664124755823229807318791080194385270860133843552778569251158538083572687396716255165306479775162556659373561119232364827278063007371076969588713376825386651135944743637821477212442867143153706966578372586661923032984980625827724248576617759217776437257476542299057163394954561207195970143290314911710720241414063695264562991961834156291450623192289678857400406896481203044710988801823392043142193309173930346448865484285137894674584257492087005165003266437758717489171626868303268297726765324359746460143538721726861695499305801838419897050623140317828275559223102473018133481570030277408110855694212035349538030996676742804855085789618014233775633348062237682193686102728002132280837635848141760997075199899404968376930840509719680862127823187927768838543989109573324139305536150783011658090536355927371334625874098022242890440842615937244325118912882553246017646590348228408037965922323097524713256263024935713466889457880355479169019873441262341040881055502698229904781146403285555137401870699975648108277363778099786698172884497608872767252609424991371635588063243247680450669091407269045727876086231971630636794532213184548908512166989735746019375911866366271049802145863716109137794135577792406603668134111445028054863619450238265204225468986064689454941624937944130615157805181229349998651143097215613146184004578229001116775455999790722416259112778198815906584097151772761866179872758992280916401660605764694021136394806757879153419396530929435754945386177431304408126101078865448311856118489656316949211352400837948145529393389738537092372424348026454695776725474683470510485278993459646742694125308648043047775882494022084679500087305842656474293699772943005716974604926925568505577436669548152880195482561399350447499155179929035447249160088830761938695869358720361089601772573784284627720776270256544564575834674510954634709833950987375843605524053615587816784597062366754117712193948314176957107408975107694886618759402946850476618829367633480070487290754770922989014622938992484801976709219128750075198080662426561840178663438208376739335075702511193421809640953780624643814639252128619764008914339958687564408805296212519826889437474740979832590541133876851057707574930305473681095658076820077234949193591046294902950410599221527305810179159579633275145558977035841061512994040037430355887276828070038571732544609244481239637419380194137286940250435640092267990702471404577964233651591003724704259704151118648189384001608258102524386675628557007518416530052805973242270785145794211089971356377201715541012828924395932411270307121926825039456920670895163580477368850200748930836438143705663037357095352609106041859659425664312830398983536616786037914020855639543053854646504305459820831458452098782124127180719732792119495687942131042315122592575321901775470328236018392134499364754883032806532300233234656463972040658010596367673205155258651928720420447066604754300627589466507919467710914753624830563933393423583859795656850559440515786848376150690835266838114044485779775829750385359458620341446790980366622748102351270673595558189679884392224833293727171927987480968598268176174368102499130161509379431249361502545787923789599659552540947822278293395317089669798961473449517879869164920879875029931293577910118183912415176838369032332233689551528740110536215324542131025076356666572785527926511853305853681058491887739635818656972416590240952440447498909974693537437152509155070533629107399107223318463724097052187774514021274549716711236423789328500749009706000718517259863013165446353506190471385507697008238493052356468746201388552970246835575470631016606280936825738349527299559901127157342762941633077534021121118212660868373893079929334250733338942302406738049838153875394668203126023645035138185331263521944873057887768958308614341766837081580624255586519519823401234833675556754642335766385798267787833225694662734029228422147732625880104603582037062943515026595148161054970517808367264351860979478590320893785369307947434484991773764592134408343609979499010556693504720780517132008122960800335541926970021510149860644149820012410894534771924773887960733753104210606353378393790237314255470148378382167536930557499443395233948527906492672854504758992550760289775993896294081129364796856011812899072906074571782230592320133594158441345967511090023030669311735686341890152488193155370012256349316445383448481358293551911763818119504357995453231509512202420835211359612564156645792956971359353046383924964047246962913869818581558168545049089440074555648125418211088716699751714501695733270231847165868420089235240217355715259518719862352605431134393790605563083638852969620988207624543600631061720992798989157352514379591834804721715817392716552414715019404925491951545583088960832609195954554942225712627516171587890521334125853216748970264338521220955907428305207473140829080778333828748516593143547291624385816149018757409812962860762822235181327272404496998747097967295046332847461853742893959552655060846247794334910761092192812899395740642003728083714197703427355331207239261085397269846033957721337405573391277667310066435717822075340615596701400778752346678863605055697768661094007804207491467711044093980558499145201595513372432510353791946576173107332189299931790800979100340993620820094380352619666393411212785881971848937409413349602313583831821128353201018542474040024329052413172596536736591605411188443053769956508382403583048233952808876192095947037354441599913782197428848966829195145796403297306839948932948135844584468524556856105430721375610146374344863670115818659984182514795329311777105911089415540793353461390283998462517186386074051934583871112390299000531369171710935618633372545832959854460459039367777790491410920962319668757632224010977635454505546958316441972478057631494676678482682799314027661862484244621572887596397013148247026479761933342993842470930700873913393236614289917260373936854942151881017943703012098234486061193430816274766204393171191483250777942541159604116147089801496207198498248046967030867565198406177187511632483805985105538544710407936192741645471421390250196280548485315088252208458650823235564467429840906931747422770208221946622532769071236390785393565576165980480268221403491504309140200014710849023807759180231864835788070108503602852340489415537521400418374428865748734310089739376341281873869401198487369699050768657048110094292267221854782330283342610649592204752865295603937733365280285115034154804695400687901665177854984078030787023836785895508061254142483238361882080096232942418374413456872646719074413120866127763008256250988653679086606416144445124950073928174587171468021775375551074779137579490784705306580420794716586592700892080807052993215327866832074164451249821465202090673535971235828334931401016167070853900121262776948082496753498569006319092738829860716088986735860826677783617579423067616862688490870453232014268487298902629726817441080973536682975794345906741938879944977706276233798977791389011833679928762087971438345354367125085291129220849741419471846692511838947017121685135916545031625398357350013433337215606577541008368399050969970342086512610352504848798107890257314699834896729165745411087121156453848394334991967358624360456991461405963763862831359895613230287477761229293525727650986417460226212949522263592119047243928032564081916389888087687829122392121440860497026433460801953583780360552888482531280777565954603868843950451582072191206241865692663777471604485497311618886914662170388909365927723597282046221866751286012317264240130497924093434827952629757460239866526332415889370089126070141157835423476239028901639115742794824889572013269961053691486374437555867139996000042107447810368792420050785047344530533179387087971423923212167385619488567349783918702457139130371241073537605959112430760320622242073232373023648400523706385120388951353126301098344942907335133325032425550319951415067758057890744716813397583419987336990849277309930229640907165139835500884168411672524529118900097167706250149001231586914682706282946648838872098486058898960644131226782006757695755507795636861451860850657027378167242127454599860654824624085563620075613208252324514010298339544033660273888323042763360511989364056214541012320014425348618417477743316749705288493855026796278744385595511807364830830502267270987740002169096814085612537997149113607480579557964764906074232084901902582761412835181688280857514524194461869245125126369029734232954269883957859297688385227840622670231687651380904646048188560427545674508842128365346160898048943500184087289071540196494584663121408936773293959598652494763093171676534664585375157900680146551325903390571343793148848878504144455741320758928379587142998106875563141164005773885475758986546504906507298265285225289621586674212478580157745059669754438668292920752028364567985705757619425466628416707135756548987823822392951176377965853176390483846962439031416256270357047293607262979717652984518725295025986047565075310824093065344574398694672938725972155748894417287968876144311435715691105794691138433967624679700688659449030477545096789897912405303898514180236254357652893115717827067232366652905067018061892796406467073585537133032357219383899646804239263832168558795770100913677788552120427076995875764294379841841201310143154578288818502488736429627068533679974275161393099045118079957066375649000753803599525477071012741352474200220659944813854534058680484801083444252516556858286863659146515228035426058954513966182709186227655523299523310260332733890216856008073405224671346224260544243981249657699293813810924323246693401780101080665081053752703869996987386560491956690088760489686498499859972251101334491579533579431898340899516532769077043739618886099802269097651988484587167247399012898049156207811475967457331878638841813878469929122356424760945159332197480586950373302321277924462713550806128595958156241335895645758846185793546788813630319586898968336185086846320552311390059773475421902888675333872682100498812263075429793703396846100121724370603565447381090467688040991720103096468850031093766577954216370285054012201174599367150781364751966098744772777520178066887194450848135327501804816212872732654169425072939799292783434200437552403465231383459234612550103157569460519654340016406652122968328139517921546889339574861933605165686107568488764620710304349717064088035065197506000940194502051631518884396691192849559403867897790125438316425356461312844062825788194835603922722209341789821377820748162371706198038967027446337144727755043585066863827753581566932007667238794263857540654485694637584122225444667717824144485233217635586840967651582213168114632861940159635503227894024346462394360023965841232982406352715430960749880852352802879176145425982401844978282102858639751472347869385005670580436403888232838969129385798913669042212581958909669963523896673097557764945024653422454683202024292181074641297697398889861147629409534261302079806616167983159097175397277669866596875662752618186682843056283998020951311623951245314852729082136727371554666884800968098563208779130164584070223247904072386815431647938551840691835442990746478216793227822236109135850949288180309519149899574217233081678316012301371003819312337831412267521262624495444107911524072422141266577484295297679214260979859572896502474362677167699957591113045677313768869255555403949947970501385593288899688467029233504160626168393428307099339352193452937803231313745147264985630253401539570476097373929624212605071668503511967304459598205596123196999754112808529175607658799807448201812996021606897261249035795435703744320146050395603317827446929253068712026551612201896832934468383014851673019931516349026773549480036913064566989453139130016446986610026975554955959315223662566867089582379109817031162177402449745871484592531038214674457405568490105879988171093109500498342622924383309742060320077805220652750867978583417986705340571324414069465334081737830017262761788535705663465153094767744472265540474699233784353572503617801674121822566585383697554099134349115514768457083057099819990956476488627610316490707153484920735337285631515961882389024904623297683573687689051077058680288912313102789376031565099248699139501006854740434799282172431286834149293950408525051055813235853859860643181498982079797227433991526465689570455964551040074466254701776686290173982841597942645035237581466995021646397716816491961544006822453223335069811764397315034291653311558305205171650484876058018021582765511027021475360878727656047442212403418228427693491750623246278485270569785311836629654691885528492064895751942516550534764950394372609084534034714832100993594130494115283165946797003708800626989812460219989602129559803287431922859727094257428330103103997604908110436086278844239313647929036829086721329168800147136416970187256566568349997732800051449953900782931379163916522682234323615879581400682367734297105963196147355299799459321152569283381528729020584364969631279112226463038236193505627523350765591117355978817920776096059036702820775779859914220783273658429324043502547640201142817453885054156770327502409469754475301739128497667649063398361157909555802619963347154704023806988478085669026489513166771932802581452059487736093125885524865594998333533100051270846941652860022971511322386258044926949339462668389537545646468843337543477027348664035157133237951475059942225757119964615913221360312732825342613654935635031976720801553537687265945575989132784187260383044874187227711236085639220358001404019034291841896917913801925589424396147230631297055308276722551830282674535208059039974077359662097736507721223096986308168069005953410887156639096358416672677760706302103124619306846545875922948865390911371121613625160690157834118539552077836071302141284860956662128664713395490283234335068177313707214503702341305506356714417077828846539732861436442916138489021009407444986555996480172128974625340397040311459672219233300468173958273065136221909994822565867497137795450217090906965796233851863334213507013763659379793209752208070361799674979731636730815305811950627682606842474764650664648680109293646153879045631918881463098761462505220744320306501208211354838151453583915342975665002965675031781068621961655429460415594184025645671412365259947899456739026654103642963461414814662650993984564232560439854507082410374199212743024929696226825329825597506291125796601934683997246953836581141126435399453203039889897391917149629414284792900877941035711721798128926396425513492738399614158260971418177207213149817464040009700529711365946394433675596714938967729886489043171069519257567348817955018483799971241828429541795648462019003639453036420511469327790292258301987013462965052145103452446408967512972075954544110668746860762909202847716192700773606494440542785220403909166212720817706098954455596868589751521052410377744048004619013714322181917347619035065982930975344421910365183093683996255049092720256688070094547328212783679428076847957082972193915783061506620819282264840466947942890127619388464255457539934411756624758020375078167652440303871407378394006664783662370639916429037719859958662234282944459237725960590684967733034178109605262960494026375608951180736335704989364511488560429785452229967794598131854324954216791377748987314646725677214836507231605312938643832650497892417999845130869629563728844213201262166420422525173360926987945219749647951839798598581100724726351407745947616925200048907894040441444812287184248298063659794204671240361756838386904254562459889614828530601563776012855897955525242338084542315689933375123412236842512695395432258383708048944236771678894725762793032578991139211048279137704228836547970665257654645660992085042213457496342051741632536411609830111466791668573796297913514800664279696788482839456233655695078423634307842324536807651936933706522036858018918786579392922248524898545850698445445847663160464922110459583268263547681240088032909413059923341993528921632067578431387091087158344970241085723780056213790064222749873605092316460245301536924724727830796043867179983900800609441383543816659734392759447909831003595197756800365267122831945208519057900630199046243702799592620613613371490894292823387799413709821675374649847876229056101581519568614345209904400374631754327641153888847029142548696301326688769345437016520050952714553965960123845388328299598762704372141384873284533772578059157343824663408957243573391391555862563985488260587035998458840549548047483918955549128031326700647400757317645844536627453356790395191417981572849565031520033262953930232123524387561006993212270207665249268781001534731647096587181364608112089324700939042916876997815343417540294603012122746751171811147581949524995888821674054880477323740375714689379369022741819289226188334710168042913781458519964201976929178770668567667554595335094574190473467651775328559730090278834372110278714606544661988951327901701504747777425988675567654933466422505724897636336851821953103142736658916912813388153590477051441207563631066020299389637151982522201321296638410137100537304734058817490252476669558683785392863343828611372371387893053212134211388292904176187675562672206750257421885849670922921138493821769967255757274243610516222042071262789317727103576150844210188533288815327140866084952838510178258960451325044151058299655425070557512759290326500188960260246908133121318049717329357789769948712106724672184452155779582006598874634829117082909704793807109539916380152661566162381535151396131448817003154016825550769643075439130987480064626386398041605490829698289493273121762585982563889653341706345748486121333334404994248875195264334773618860559290359166913968105835880391281121481341746136971063566500443028051231311954825682318088043585633192687480407923469497663309468972357549841797990839271801824940118055380981007280512759902720134330679907434052514771832532191423135627802361661476997506105704462448467183727860550554433534556733057950241262741211540116687524566230243337887483014944625037507547220324106588304088867262466964727873691936735392569574682494472907688762875098203290479339735932919089338434953631848867676291315731049633496615899589795173400297842328888003934315451838359514999864288725029464042972618919186759132461705238197230142301301219721993546369495189487718482840264224938396062299018923363122100393571006236527022610244927333746105786385017349747689137663541051222333682992903576357588603564695514533616382179112775284313168230908893812692236614871434981372509438639134849441973724392303428825253182301419247918018624186471795444211026781237555242803505206006766327766625216253560470084036113307249940856753283846952565060134167912490503135562894324064093035029779513745223143806690346896455916181264807377299745626498426164786555150072570975218110720416797087391798933363077921981444060402206758510561349460263844344882210504406291674249154581483637421074971842050908381076555722696061415737776753555033144734204578535373093281957894408739587049251716247081335266934506880167374142454721522925464463774819327937007324916322217331175814560450261874961696916203445024276043668465539795926886245947320270685796092332526560870970773350976222169714822676863216464287030953746500754362781294733420626510972681544172147407068551692037339359732339105463159758803384934275161094217874917471936836936482910178798788647361594815469006009507151132156871546712336891796385594436945523596766322709832722082181426448765183232175160832939735022982737912013959943904445355519135751949681895900856378281944884645547874340700103295609176219813057532916862070749009641735321872268648551440974146084214382209214910391556784455249257278150069161527496265472489179526794905140985545127039829485749323343058955487223090330936273323273745245058431058788907382191497184668290549278089623806596985515776430248415435531375746773473526632288347819925870339781568008873042354608885832970999667619092098570150490588678441007690631358740119108363507658309150104707066690636368718894774619417585889493320600096831198630154367349568728693083622178877541434299070213043304612050249937789014351058858139626566001780136861061728547495711990585310996962286965905392903683451985542656425844773945791319622531693748589303640377512932834477209904211166938842772026314732842409625795186581421175741509540293631847497349956175608619722225013527510631751037709785137997214584671138163884836273615722391848925251975511401422183668595520873326688302787542437082135362655772144649966854488706920963207908344029004227739752474179114205747022700458925007824202748997754419999532101043184408270620105854479190001942562015549282460644478159611241234094631566561832323080714052781382366127468658394525334729264888516584750516742361359821608603367653813897795682138625220558971204615567047496576856398946504247233413693822759533822318390398995094864756385697700213910494479692779799958211110623109841381515718029111979781604482759783913436554754119010283123452666874684287532572880534360824984598126910757630474910690855970711995152225530370092482269284681396559019936375960058135392265724624650067251459512792736057933343058238065501643579480754139236932670203605294277172782093862941219415473824011070030157989569582525487939546167794679024700601608245527309965676172735964571028310046619319441999314387656085885734892841839189933306067856376515550210222041225730676815605550008203321564726912346634590809649758672307840936816319967105064532878409669861391767185336722378846411603170838265940225018103067073750528802214854749288448463643832307338848621125598597147834062566253727909884874790329840238183742371254428172753549151213635465656946586347825382441241599267108915825048893083477906631660066227641970398427489111762249445354650131500978508764634201362266292317119699284380857704430555705849746342771601274968939916588825871501394193024427730733146281536289846247343106957795092566013158622258468312589980435128527292960395929859164982462112980168466460805991158923713779030186621550172186384877377573760589121183306761730001444738397289783076069658382543143149080208952037584586302202217244651117589158097393952091635980399817604008727708506686973702369408315930257999266388315106733913504912947483718007350190668498536626323429678370692022524593218313925161205914174844384151224466536700594631837332818111011069912484258806394950796884370467879482246264311955767190118153431625619287855674521202851360213463282520503438319981284510142009235313516014338400010068985900047977111714696594068059174320886831768263628843371617317519033592177428386592788640346270753403428257863617492693357191004232710385499663503610644872864084429521046626410990434200392368967884676673832746436262781450285256687195684928959567993305278112466571669637051267833535540251168999759041225496245365059939322573528778687732520866378692804130109558827829205274797975491098675832066509505255922991188669486968464705198443206000564608270597458515275131383954042268516533572223978496978534478438761937509421339168437742767461445562652860526272803819017251815624921712107864155756960684985121279542062060117247157423028034357000338950905709548113651953838737622025596975269350482135734003479838072023440167087497520510738999415868878567251945963614185375334879217822741550006329586405090972281504953015119122100365935161519900930721449002866118901685467465595012259399701354110362794199028474016002018583262488803937227978312744659615445817237930694352710805613995852718554147644799244551866813993126841350634934366246816566018193611507828666651913256387589982041072051064754205937208532528360478329994830049804022727448141405985025140570902712830469205428028049850219690003086333910941426348683650208092687704399062000610930516266306553498809366118601841357839880232463005064054011303888380785243204279696535245952898320520517754683099672451309907253174768664744830774995379445706621576520052475640389641606945663253191147279980198832874674419038194256610922567534098956766111882252231887445077254964030819513610615687772572971164800261621591190114021029785799987038120636543019738609892431971977059414968678967534556368474851712883771802363379548299549190660450814152335620973921534054387527781242381621635590722486675453309921664836311706852799462151052820482979796951326408607115829812547105261534583133935565977426686276048793307331322055095661297250900678835701538630416018824663966785518369786238933408824304912029142982400231042749331016598354860294524626153907617477939233237409985719185437014655028377270521268609125686528648200937284100911185749815668007926473235374010487653848247978710898973528566012443813789663772442571631097814006869205757297468844186176925571981390634037391161650382751267477728826000732939653532198002367559537044917168748644793505134441027607264925861632189847159177651088660385350153029846153759134172744890263352535157981402529249263983409770262902437125396449766482304291470215245129669125824755556773906620197207745952708950730818457333691012648184589454144086076079781839858776653482117671906948332505620644342811549557239221902367310962611455277806635204309340298963405536290550257630820642416139269007627519671648563841526004146510288525804754981025481621167520877423279716979614233846785589437156135488804072925662315791522707959699759274070315772247229141031523730876397536152880169810970329635645441943773309724937539750023592836578339546485494865791357294189111866417182488418680760102828653948239628101118947787722886698616971113804735099333165298058911427190159265340068843504519049508624385639384689350415112070404002555732018685264438487727363833959921838052788149546614158842758892481410834557496883573807301697080293132163832740128825778566516649516949062174795842426323436900555853791250827776002060965289014388066588287296086802977259065209209972862780931872459098544620543170980382167999184168651816577126154207071162784249174826134385588454594331700922278770942395393944485337729145033319018297767399027281219776046502980477083504084776155412239968636434379887837488010827103718446150388688005070511690534526480432107132216246516123763705241920654523433197016839362257186560315616187915241210305694493933254513297332989515664238983438371285798815013182913426335397847622681777169085472798193034114708393326557203157424217033688658246444230875604285479997004459066700799594120909096791503740885959249963760354998436969310493703705606104842040603351109873292955721688398200467056792686370793900268413449432006481392710605779080661189895629391490318769384550529265448093632288566416274803264531072524200879498667690885802397786394240264615125463204746266270871999872800282649643542624309120891178623343397099135484621418291175738936420281122205073352301136865289768212148006840874217578901396138017747018558010062906512287132344454358802461784783522595344365131170365414696777457579678140354524354656528999289068454090776348748607879219184685190075115135308233160597086893091734271203895306427267364086842677285977179452092197369005223968598394287823845239460394434250624076062808450831359418938780858205208114182281679965301472740522067157113864840803737754053068268534006508811334122001328436956620500533246193340213591663483856931597460424105523225628166691173983593364573082213231018333821793146436503773505130434427670295878672010107039289017600222671041569399659506453384358376122112093436430359629240910330747345410031540244040959893866174850383842037245758499089928984130612049989765406936890876768703245546751427411936060900577503992717784183907285836828903508076377609520895060093400429952925297292637636561685567035343481211214729012069285748558444226393635518708282556486259324750414563986139361339866700730055337084256994485226110830857195286721283216905833442075549020259723481366457991412292517853665156857533190281980201327354478469979514872578864718305142698503607533241240639236126680269784906865750480695594184871174727773796416423333941777850206095360689207282513699052819461287679375851316596044413978726297837383100115848813142502815512308958520256578907484273862348913386155220967134555557328717694057768521480890131482890010271970965109911870024963729343046898245096214460715320605448340687956150688644052827305958415019724108557602249758166555527805852659839782894792816831958192516356916705677104722221002096708957571701972829795439705393130897121507311739594101126129086825424877301869763122141988484396984103114871855175433611544319563863323731067592459636103429152155315094919573943247300817086007201475404213529583418415118233242886222686918896848615814706639449509445873499042826272588281374612875652294367394439672425712205586912698497742068023941206398999843488498857194346110589797251056053767708761015884587706150362825568045991594049211169592157395878262322134618082893085980626888844877378856416973332509184374944888335134797084028709342979944987754317649484481501822288494169450715326082267771425758997278938913691599325724155594436348432535317197111229177085777261937957700917208694511786784266926035667907059937759137117627885081790406273077776461422552616837109928608013215030689484411914947987741134155364500291421950158895681496215124062649283998473662971955174327361469420916759430809104221199626331648963891411670016728772604709902808447151457555399965144606529885185965592111726800520472495705501282318550193693407860945997859782008823286040286911748424782169056816007594632723600459334115007163909394951186975877246505658534826389879266096476651429803296488050590462408036666718988423370884203875849158133691310402480436751284351527001150349808579232452442207798929242708257587164160803827018680798958426237368637782980519205451984944925733501466851403564380439709833821762422206955824968560380563116231450389769662176880797592135178250223161345394700969442521444151854271635833635277762766534836749388028188441458445536500000783601176705728324705905411295491191392171735766115720490061314916993387868223748718353097545780678919431411945295333305543284472953374283967965402281593662746384605650777506157542274853823415891010800911100150347930501090526018688184332669798680925470163882193174376090074115270843784189993419059801086619385437548597008383889407457739927653700509457657909295606920347200208331066687249943166729007709026102561162989505088557368951476213453156071958035382598615943320003676068241062623449776699084971900905422005046151944098695310034910166761738234490168459808565534971212247113041720098106662689352249940937446417105613031802110090768640421673275455586372942504047660940596656775532893020539724298656065163064653115914162359543684848985222423373223830700531140988748133534956851522846112917290488269519522960648639912596463585549676803834325469972584441728516888412631959103164175170482409662593624947881504961000481299859709394462378179682126375259635795811411860620534201069185624839484770956564555189310654574509126266405810397663099461064947379440431164390927342063648673455468187428069855943780729351800896890119015975014984149297525322848632564170022371898510265156547878035362320638945475499483031664235582443506235202002749110351550481720125439574648414865887540407833589814795017305027946863230836334972779336603544522913505068029737138544082940001946115896283393035758494871302716196192095045111272592159190623927824350118244053046570836613238994351005690352009741775133142936340370090032175848282436992552257099177352587098770938399781056339294540614208217494860423052362378945173144016520866688375316256158514870680440250509147745570767191003537781435919875840188958603506698320931772275164458318867731909657125809698066441876067026455172882430927944211226429048831689243890808526078700207077239725173620002622423943762504849508775141194380278603764764014528018686477161009560458453272597647232169066799525204500116133402872743291018814384543546748419830238523976300676158990718065860739462676090860579302046126685333404242283816539349009316163881317230909420388917198564304260909093816410978491863571312831209495827148589576283209627203291318879444950431935056204119904530331713462712388493871843093728791305474885836363610158207655409552575782879760966042108437891798617582967250563059584005819565772442613574861654057063640098915727604860752832321543625843548065007699005886926194469491491576507057360647452559394527913774341754641410279765828148189939305696215221787085373029481707635795613541602082923750292279426509484315346230827747359206160129848346006828999700951363553690643299574819630173192037810975607755409446339140691157305153565912488905756117194018125781535668141137329270688739587056155412555360875224713803927865994584285267416386451495176365218658174152173052196054347364359067450288188809515212901383592335564891437178264343836186625958957107583789172590421048812796675881047952007820689986617562843267130098890162753419698930469722315901515962030301544769169107945289039795907888768234036778079193132756359085633536218629292871103231322209606434066347094019038250064620931304970537512130430002553277199272552766363634511578486309745359296481570648394109215137245302280197402861497646420549943620911515637674029775990305637750270068098137417819039774732895502907353102077567538756740091484508489989518964172414140690970951715322791460463744545845341705119355975201601768900669065162321101583924063323187308790965610132655092442429019667062748639355179397427966534686725620934221524461229277704436742576880705825148338001334671303082933300253523677057166833101175981260775595056103576456565424877445639228473430613825575243093460447031156379941096748627693944316073307269625760279335432497352028821797375826399258732545896824475110513113751188272267643322760595591004183600046985011926594256220726182667939085316958284933038089571210462165146869812043617034608681463752531296200104342415750557957529192443211516194543111828060972486118336750132866331288679810127537895972064203646148344784073895773090408729163920894007986419447811301387511770706221572140125870596641427150845186738296605102567843537201105395704947331943034060529299761814585677567820185895859630206881924749184587909143585550188104606509617983583171755777501938144157617783061890524051400177455226675439152340616353099304974743754916841213832628449755328668631827830920062334870516609462602521298713226120114510486121535953084589121837685484551027607342501849170000488707221170006594031848071910469101645491621332128774393848223421931327179612811131589701376818890106827205423853803519065609648182589474985668770764818406302955535999934608603917568481184369775405192581616064654348910134321147792071861378954901821306892983520692418657244169776897949027986470429846420348216533606769001943235028810636845279222230378837143364911798633454065253241722728710221476620956502663471149245031152728407781917744775481511319281025861657469027475350761789821441045366439295799240804418933996012205789549584992835424482835044335142952778511943706269788062769419538923335980827916137382356547075142665117055253581870471007604362152254717084921160865148100503022222475726375580347897666266572201663453815269717663922518328142498874221387852058721164907086426066090634019053240804399804586690808447375916638140126367006459914696427412811825230115827068842062570303606038658985131063730867714331822179084368815058381364997951723341891363823874991018026097456490041175019874091221174944022880110553588140234375480568129991616064292448064857723770539231420603818038421561627406861380775326061627022711104886324676393170178105167344775038892757452297846817785041928854069620931572647562786669222966616303900463444280136449262294739689626033981301531205731175043344847855201235407949230068547317814952975531923248978694710057387581268011964103654169010789976409333314632958211640437437209189281272589555386310517061643998176319868163301648305696806192908013501492478711952138359580475220884598789440804184345960283468887539600826025329359695953386379497729089360158367960431073350214914739035543890164366352505913098357876099456042082921483550293814256451977926429485469549950857208857546285353543298896040327679887513030549833102538021045098114114999745010981386533464180195795408925841813521818875958303252816438910990659711066370203458467623305875598174764890483658737978706677342578868727779585150626036324011809685624379534738148702354175959919191461716685331149900172701433960303614354285047303698577713650148432787837400431828766651937817276010701709785656251188385869611228835826913334291356489218451497350875126071284472818864614282956526031803907366299755747296814757148791914507092990701346001697407795656388211121107329733525377161880864295993817156373355095006103215794856570857234358276056119773628660959134324701244841436581463263867142273909068842789581847889066226799860209014974760371448636309441048534624104842067848036049203949809012041097127152747905165972951065062695168694077087590046590732943480740197910446604751765107750857815216195194708812556881898909194170644186497459069628024555371881846808461919523441944556351078246249525890641079227278656809943765855998206093527594355152747614132933714432136157574299081783119216226862172706132901489728952542458664529597455969507274001571410174533551460365094609769390363029872303794553315728575095623956914893651369480296306986937808330598645433665153853777369336673839584142774502305780118579048766962418975184929638657610458611022464323430412287557549998031438038634481677315764885409342546292857000941810485625019259842242742558528743151429014697798158623959666056605790711633487919430374065610236339488415191887741527179940824823379523571455002671581294453951433286363421739903184610936817912574366992901748017110638799519933141641773807814773506899623217978209724169732084777278046958668362300238840908069842736475069438240233359602600308114985137686121503413019314433778270409722371404034528172315091201434202320321290930278970529185078745097252033267770064981053601428362830952034458525059445539941265861301566187814378834745703681286175682198883806292832536061766737042626971915999326518253374540525191557579432223985889182236770911610229829925901901160235435291424940482671013592051201415859107020925318629344417762802539353019361219941941001425582958715444324006298387984617713842486436266802172274357381788626202492968782560871439366044186350202957079341977565282644664488009731908429312039490453330415066035983922088673756195665989657568963573334976243934695825710069304262579461132022351589074301415419407076518233786245242215544917136800280687268296222664578103001054250657486760374245768219339753696054045527955733592303960551518079257295990580923688867202888502396182415294017488645441699564900962667329533117048323465276752169520059973876497061590717908331250539351789278409017907344094738440356066544022395985211202166657875364973168718104645836746606783532775682667215738017486918930879296408274579600207542229461363838712368183429331775250323929001450640567867832835506131825416082547262064012304056036872620157876275187443434138408139263814252357854262056450668653737761186179775297202044545858511512607808207343839369140007768231101128881927206118621659980066248127994651954123551428933499565920446462413784146123235240215413587423104429140127393001696788537588147113859406421017061862436276217885345827272746687905586114644727938894702244596242448587694333356201381913468425910252644264067785351640056161767396475860055320930388239250919619701512260785238368961900265721126194827121035127795312546713077914734613509754712981527197045314295914228370526779423811238591042535620262674234965156427896936162279770634262917242110657725018278208771381128262363953109982010099039195618807692665305203441330710520016751527619380453970942092768236325931652621312570325571620276294380329604547785508217052337695782090960420789144525599834110941545421861642681866061225764103112115378796112919388148116460302246786871380353670891329657930288686561405665306343477795658076950583875236884893587355495161289613395647823226610225024041039768376105547953426439400116879823934459036671162353108927829126312014311375435056123992677280202598061082435041787354522064822482239328978344587671365588826976646053240278195832455200853019692148352732240616640861880031727549028278621822073364359297823331596437874182705574327740122892624856906638729527920128917646373309479707537676319381481685659439397794610090943595962932181836208512670368814853165614861106177275278689748950175048978749485037430306398155177200517937959903216241616736293195005608151868542211550895435371972460644853850287392023954311572635102645786615534299559844655366455208673726070403768958347592777568635831404329039274980071467351736346471313098276297821093290593992148484426000672208196339756779532048039603819494625674163799947022796773279641609682713509847216308686524071128509149681391492171069569800658889984935739740150945848521818643010169946622489067228857474141377268588122001358599800006968747140138747894168829334904169230105728357709097673099962321478373510755914287538192391281834215432599658038406919232610722746280706370916478410515426951028641702949221920931637660765588402337685122946813825579843546917760094668265258964159698462649589246645974419337409266434703630112164350980892163059637022100080598667638444828812585773918013946045623180258619827540790274896173126699302111967297555426574699894090469767831304050737406288583863653490056059133923846952360932687404061304630208374094059945945092469713398050761904737108559184627815614033774518541092367367583466089317586807187775383429941467911810189368192410084454613260682850634711123723892557515978277410509062926985878890526535234996246135083758343040640582989474298017926933575994664403740960861744717564666117385319129994764349234122060480658536967134844337024658533040423844662857447063118981495798912372307372844393959612348268465605050391218636075062404116957402334370110087468295610104920166411109604361853309552072872050628102062152854212464502239968000226084813767013259848308731914738777971622503787778246408917812774766909967404503935813158608509098518413723654502585376749007872292333042704724070415411720613968118852799685205975072257463232022310070855199540825093699673942456197988180014235397694554390432838842379887392842497109329340072390505005886880889136726284036996772832321493103419110930302014780300108615304650541770266541366492282146869291404213936213018270469445515046349247229184166737997734432688121139139378431481306670811963441448021026896915731597548363455738160070661105709109979171902602934006584595729153284290975217973058980886421924063608748114010523592726657179468836344797369873601309518397921615426032259610309640841665370991706397151909676956794269537557579520895608640048599606940093929936167518702789066070882161597829668531103036109779194878100846986058829268045257242763643553585862001693327027784711847589523903684087735584920569683958157607564775265256335645525109249599440882921529430553623478829091321111053693904927209610447702776063546805292267696035869077495504518161864101297893104778091722518587111609044786501371341407852596596235515002013477218268977053164410410171587571742845082379554309776927317705318449730786534270302491766580502694017065227323470082697721081626900188583659777011382633174475539014086876363054255728748372482421420425408048399239731450539279846133604524890316000178084481716003831627844665486300043783850751529959436882210609741630642933908086535795191400893880314509857397509998804435044298069957661778003145784888378197239860740540965825396261051662375727977031863236082231389845209655527402304152052509712192894589249342156319434140652159564467294805193416194520912947151787555070336369313249592589638264842979984609212470863245508047962498709069812925120167090081324607992723558093398917292617681476890610993653211806419924737924830765855294960266464232530076081265100683406401732429233084054547481415899142990968986888671834901158761759068471260991933858730935527641150570779114866272620417312096793211165248669612984124934543280277673980784895023151325302872254951076475871614270636707046570066731177624920425639286715821463617851361852540136903704930606487659617602884751558215490017011947635478069271424971154166130990676650131700602492653506831274403687022383416441256501120940287755119112950991785951447092370315238066448985244077214381176752890191191960814021791290944046062817491062180502670354938402435447513854382776094403339553657942744363623874754175053741767927573678842249995683709930294186868630211403244891709611726737756236427093261567117582524986087796042392533761191134801552429592640241626410489430329431619390543244494173179321676646936831174370819737477485075274735704562985500286676850661570996207241297406239912546644669158706072822539857719900242760940506684438002846936637461112122593626939625167586976086585503980735962916613901104755317314630380535731466240284632721557227527402224280442133010899608800191027983881647132737591449425768494877264663880613729598498780896241406853739732802634563861543610221595073244597058355109188631836011801920830208362111277257384137634024156437506688482810766340766685791673815277677050034793005704609954998733989109933974274053609303239554049543073069701757652182411380897515828574710666146392441181794668316749495943336058493587184623021466621548648773416645885120664866514981293194304696829984476236882592728919498854021424997466521999179609160452704928536145836746813511310411870692710346003107012088266674673923553125885477177977190844808670801684355952398442233820106701628804339748997061223125610606307315831415014168919503326710489869169171138497155983863361213370381066296819604135439125853160201849692914144007867092420327145050109645560184835374804937652229665845852603596640770459478544926711602167301639336285473456911904107304077515095789577373012837057352967615165671355383046590167234789895121526065698887352294622297097681141790049185379688237105824656494320637512622821352691176539622882428869274928715893658500762109947601618078109770195321289218935748242512364202211166435438662353873017841594441099025462170492973473036683484990317319032856241461809917112563873345133847184308895967601212603404300561148889622220610279522644658111475229426935609095291338942115386153345022849034267591724534668059947729940969250997566255626740318997549939651524418179560837589978002130565463114938868703172613814529634399039693834316619720407053504280486249088050128229033071073156104994351805293227725221522165493527854438998274989712645759024575406022580874853377924830236975136392200031238685803670878630816084556906531398855839720088460457606433705767871415221489061410663407835664655671791883200162531735599632740723457435363672819566249568140416703553493659158228466703049196930478258635869794961314570751186165470902602333694602906336891620724748040048081722561591102666010936886598267872803027146011165476986116383064924594333685837836576076563042171852561464243281290710082381863356455527726194546119136457199448704854600977522381053050764329406165860233737383598267635766702169734302786599311247391617459594249076049193907424366167770280427903758633425984485656812133597079530932898049595855732855523123039108852236347087577043570189233697212213428392773623585362286124248362491073762268860836638691304079109045876592861527258274960886680068886319880059356951986244769827648384581564849146874356088761182743400583425289698859341375406667291540312630836276600523849730580607080859037558323748097688182683511089139580347549325279065917348629931625148992390120538245810584563904061035174088927554554198483453292274650720323709839583128113306701886548989072939187360441643480672363194844842536752570363429300559896130784464745860567421910372663101573759772598222541599136747991221491690130397429354389378765721863635644039187107643820753981239654829842304311330117852174605921576642371775273925406156662045209795217064822261058526569419088327287425921752416658608021979882570880053383352578691324022896473247291738667170250219727877358608710003339997659177273889431956638334782409842853460768792746082484018605360611121698501967069574962645783183316819256943676225419308377361599699190457855361106024012081944380017375338570391830783206301153467776883945036135311220389665015641844479585498385502200090729468514669551465117020303822711044470510901971081955955843507366256758477950764335474291398975966958555169075898061837757388531731671632405701219139483193534981564459349262239497418086343150522568669904792804027161733004144443121240354885216533651844779277865756183479982075791476415464569464203367325888045388613446986273769131948101281366209442889378139459370680634470691455330990148588344227921242735796092535749743292551721115571274121298403249913496391723671259001324739055714299535084452948042254310600335916626124657017144921458872756997571875769015107610069561515781069080181896457270519250759697147920248540327830554238189511417278769756286978741571031634540195056280078682645341384038582168834303735659578536583868301655468720183582774424706631084797394384846634451809381453477963125029748339554603227267177634691565840273207204052085601755592356105209334108431041398510348331674577004328931981930363274919115648906758414839575627698571137427655809568517279642086072536210019974792356260255107019515361690085929387843065519810426313605147750306767727469043860280655130598975553894159326156666251574523815484667476425861318041240409447986494856097336064904285558663899004960963923628968707941510279800342705468244601194321753886184786689710516189876150253311648038661380328386175332667068117482209648767266076180783692847705840131392261898015554503252318105455432447761464298084712551934245960303930576141648473323644589892492645839372536938497703124828349003836555854636487605096031917052626694766567714085670046291769696922300147375730306054925376879120666083736685599381631779908363503867935321107554805046810160128905720111895822988014844450129359727475523451056243880341591059188511364328088413838314101235843960565253448850686542849571819490729724639843975644220225812324125342586012452354127624410381324245584126949174676640699928749531380226883345127566418315059258384294757347100761169201247442704058338120136610506557112936148759638087832967787678193371018094830817392455219445465274391128982643315633069945133427924691257563657348412729977020154864414697043682215354669010496961218048649897339909990186408685027771986839707526802361561223454286229719586152063278618324676439569212802514211955027875803016122525541134834498442932188733471100571626853509350347323302750100981803762209565856033057187459551678306327521031704926706754233443926431950719192797007202535032156165657759128843114595742825382477861415763953178227172323573106131214601654220205678164652527736547072095299034383733081066078745785726282722105893080344323048598647412208782888147587057866418301396562132140689112044029343214424774649921785850016953547685452477331735464473602076154982488681019409537781835011679157432268029990957973905176103379622711690918429398183957164641863093637587654361834794028729650229672797328024964541399275144915118839547239569851306663214098939806929524474884696467851314750770930134604196512379228367916159744668830132478252618331332075068955467501229025161836573796324192106035325499241491427567046734007235250493645072112287727799106676579817142999626776876403798877616753946827103027541284845348186405352841442568388593899353856087069640792556815064570615259294024006660239127634882534564353424905800058984664774736899089584731505078506717163770274849212461447768873790493293149026402774894720815596252592451752820385148053044680921930047952944791704755697308484960994306192285385789940212164179644476157633946964385973385691647249425336718193271959041887096908288271305172156716472243265340748049545935386888096099294803629766831039663720981134357726257882813422862663519410922215635590087912253672035351397281545507466514906011603601836379830482828609133815683617968555594179531416612495278032356673910842801344964449565600214216279896151422554042977441909458003654418384463617452293950736786659697740581532915587820923322195644637912290458825752376250877886441038063675462003054427522174704507660441085433009311177088795168965305120673855974703441167239845251877246814526713243720041484474619788714258232132104060845770844653734557476685035350029108770756102037404757986742488564926907479967805337790640266019419232582060318829679385216997124005573691248818420380557396390077565271807605943168478913004506058540280656682051998490438559566954478122059602027693059503139220523755311797108081204073886241743925012511354276371747937025550215379256125338000629957788667459351912618248025277099097263716355652170688539380784255879749540145042627039572967000050376782778346324467094343042964176012606867665418345903917509372434335646263584839864589304655675537301163241175266072158300757313853546993974966956412803949521890072782882004111760591138676754511847940548894445962054781120048452820236670355573577047807643251262597914297828210969398183532227815159293267513628368080682886710600574874476596458959150924534519101866528402279576389948845554684489155162086401259432574259549673943703666998316253893767882018960377937628971745355395517915497136941555538615575955251139647337079430629418626917375167296626998780058963913945287225316138789514914809168437100723264953077411289792689888915326181035673119743162746714338626026583933555796981584314322893104675492057874064064836789803598157644791034492159930875627020772260988728230339980354088072198605157688866325867347347598002601909053047149169941520161974598149086333323386424280440234102652539071483576341988702136904251775943459352074754465033292414410162431239650110598311711658071069336578851603008845439929932420964340941516554691174370816493007287664548561129473679417901798723599388115305578490471210177119498811226777796314194764292459973739267096932129833769635414970227895894005002775546852097248179821677982954552901711117663278571237290542128261921089933511972388254533044512932713799579066102931328661485277200162862527372022954668309874392877451656702699364478289431045294958927075588179318915410326601093896319329435081279056423358638108083914148022927433325555833309075388535797285084150453688544842204315915060400220232183063560106879836346497537943676800696219163377718469978569379638090705941517766789693780604893838715726058106756681092688012337250976082033898470804816893785621325567805600964377770566744727726911679963411097424823305053982592884523054725550807473906082466409766514560515776636225686403465735965489594135477935591546140569324289493026184367204893193890678090501359054465864983958981432529289625580301589841777499272887307305582052944135417890602224070509514956462842887816616615607752080343309439467318710480555755752541278402848947622878590964283161126124657168178641129329057868338970706588806446534601387413591544991123942851736821920932765474310610660765560591571428532726129476798132046059275902864096110023374496232615732992121190612482384058715894144783445900962273005625062979155258722659028321435630873477083968180301858849345337646500357487848888930911116460607829452847097768992214180013025467284182837592356320880986379460745533570934030318920697505764365927374280562398316584697581758108121799906009107189586243794767482759802777691849862366570684357183087625933241720914531084310813846111531545305245417278559072733883671543079293789810469686874023959881643833149607486855555113617749925037695850232144673693011420424863611270382736314778538114361743725848617016773317471027523543313015137899418249318898699772412691639792948632261169504456518825505849457746422794718349806617197162343273534961054898988492629523695483271532605911355311491695805798502519498223533060719020014374062232159633269799754676719977970594114108354369043914350757218109613078103255303407550237987593294982661239812704737644114322512809935106117153443955464411270237004571892689088695573015390870610988935125414528016439467019746386736656957493823886624467957847199258302236610330258618867158040941935010176141281222064014805094244209017786489857466089278693042632283014408453874928135966080326621081257470930075799952864732238878159679887418618685233917979608187234340212393614989562801573856813649877176031666861510592844625174160904176788416127007150007840328144356198549138816970943743333687296580444506713221809178546893001185485163299540445950261431537795024880913878234728046778634676103768299161486534123737233633921481683308494914382220412566794208332396437607779587747879456781308383444068083984797774708587786765130953095006152631812178734248252604720466918123036232155836746232625955788446036358719251503825753489300025598318030156046767061762951854574508375792152760550826392069511492609122956020279910961898833047944606555310167121537832269772770548341497181245154322607032485571115660773993618163453409750570910571304709297176708919446402476369025125644307519278700977116587727753040124278339579954288904049780396805873263940893785286074452372864641663880646469733104490881477963145496392032315210830170825594043012448463632238382363486041923386689731008500356151058616159357983027280214207945285119802178717665507240212388653468313171628005825759754485373831164229107277558850635079528965654371753122762869596912499524777565562749049881788918933838480614699178943602160119304061497011595558944182933120891170112255751355313275791386716710663303306188678064814528746805437930572109936359585497356660390995958418881552176700837850720426203070384353586211782723437395405274795742250042369677666677924594419908205494497360520054770640639844722649385929564576848654645191131639535517479939233569364342133140735195573066087267749918068495014813448796333335050912338009852661549420796151411800424469058625656604754046209007327285673689353099719397283463029792087537332549435941407100497799514718306879518426970743830036018806591807633222680409593355084326291883797228695229549312009959498061339488722207411273360672913023615790312429470932923955289333111338547051920243594754876239278484143713571673595604121307642817641929030452922174834405804576906586065500531668194811360631479512933351953533028586151330249875767475762373949984337195521677280116339973719402760765729318894797365168677239163666162556703938708176153644842010183367974535486349754518315881706118436669960741542539328809331254312320792924456197602264929649270470234488208329989810689756187186845638401831915314470135041052764651218617050846606962458847378142862685870706002830122079987214035797644908805071897105216721076043363038653984234955722617306295515210600542380964370699678663721118045782632424160134743824298565543860630317582018395252100243950232510161450996512159811640230495068025170997309753364838409480961827572456437683155495763168849591655613993254311364370238640502711435160819837437513374026971776318368804629262700567173359388342342894688196310481836535533709848231464557471004974357107611612295079048802205453897077370469368652860430380171033760330214992058917533867477414932820011423100151803315781820105610203049629689064125795939458626900430012533540754338638651056800698503354581877554083597688920628239356716617259892090967673861073753028687283569611134524878104103343232622906764376809971868770171425384331587178732916299782154440872535215688021118436295140985319298932193005354786679835675777662355773715269486306169812421717977759567091113008225190434677119125381542071417069349468938683682163039967974524117061687816116094404768895794587009064943542372535345434668713893211165244017648392306798709581146784764273459952412577582003018960546453853965446293110549360234582085936410431685179900913967139791239589304326767872856442554313242794321890179067104034051273649075648856289991879219010880081386668797503933184863153090439477940941774464961339439486328724007800444021080386478828400636881174645828883607324822693915388255695609910150858641368183209937916097164838950212099942096826136099426681121222297801014251456263076899049942076356239078931767135617700742943767693019202419568521072411354784953491033231598619410691158844236632151361793829108776823843536364335340279669264404126400155400366716676722497340285315029178650362995643153007016728837378679851833007149349719467153916461529464784879455967485901254526616041499667492879334192758280309585025165811880936103488596867790962462372815230119074576325759660633761717328418100149126417085454807303385066463677484039311343998298123560098982274024527456230933780637957618049562863429088427293004290771568238207735272217228114004526917992924342785547526315564783785271850266712003833750597580437104307992134633005314614535102730611465738842751401438424425065714887202884519735303190188165620778965322486249790040673020659897930805160207005683165690184940971642034285771211362778041137702352512921745063542223744422393440398979601724789634596361740448497542238071094928422807331392184302037308632359878790606804535604828034762568145867115802182188335384609552397385301793650121720619843622628632909248899857461294750585052535560252971234185918707164318394592134039286912670111255743883895525359888912974305117565854574342383289696681369753197664700236843329572027963762222690834655931577771382690799214594661378063150433804666183278867586262159352313786272977581397503318799462143550584824893276722543845170027365204324034017500719356069578622398775433283042562508314904197002013591613107023461280228881269467918466170859595056554302073009842241887746450453066044972142745672259466597783575934587938588452779814066536385369222657593570941920675602972331809446051547014417334566011803519570266133542804579511543809469308671258826646020502714673743706312891754187601907719344459501386946415993725847626178002363102133184654970022740572554043667766120685665604714588664202509108212608842624000751991476134651622111670541913972058295749982443399717250410820924520921226821814673008494607431055747631275225406038399208603679803872019134482276095356845933950119553517975702151117625255268049754551561098766201509231233213970649957535368121789250764541262937564787689660371013686901314084597289671373753539542890418810357861614201481866866106394410557776144209695577386686723253191771691523161281724199327260844893774769338557861983507939678036559137171029134858138585411957857114840298917855284354736999660228149293746808947578118813525579134933769518307590548658122517764420135471568431699791916760083684120344452461808582846770000094947803252658265595112039401364841024688832787497573493546832051856131644765374064273141108235725016116115389547926771423000722045513093637944747139632589988228319812320179973673548473825732999745990251575802945872632020617013496776809065009268558187744387838949153487167129465404062664808227575432599380479146072892418958483337141297449636989047946057619453316967444655127210986773728128420805949685627438090885304265252846341545247491288623067437440680045993528339518601782962359138024144317086067669610529732308008905576294714932708656081986714000835639688298510895666223692326008842628000835301233548969404544318265389515673351439590317663104060299360799182452405903884940934732666609468673151693630065481657656709862206507265955305486368872947038235706514525995157360502958068363860708242604151905469671162622843967318547156630234833627883403973651006444997767196061675438060684139573070454257568743766476542671466661823349658845763214605254695709291134748968181376216781269101151847276985952567989376070296923859341408512544709039063387208931374651339015299716065982011166139254660212363019699279391486755096942687387227964990889705859355651529320503812195833243036602772436993767279332444744280146540439252074523611373264579315943026917410407486022901483768063200305964230368207755602458495665294938349933667899035182241091207393104893137916563336555129849766319887834908688706654562987747334712566837644461707055017752042895693874226241618044887304070548579796681035258444586873424120933398632978521792632909693286850724784152861131720207215312056087552855032176285028611493747674638567749134306130131684791932179470043536141591538507197871828646095916821414891079040834664721783106960826470493899857329958052846148131359697646786761169434118163493929320827567774926836033982898146719146202493833818800084178235681208978632515987684097696151788068326205930226426341314905401627494102575882688726396461041846780241427947221298783679321385124748078895867375809187716368702016459709411049992044788906356222138011124802669046928613230793117317883879093596344469700004711195255203061396643612869549674522455233013558523957603588431126289407213368337525127118810935909477511576244931657973214589938814607791801991947678517133134866514965285905830393073778633746733887958322018384753353655365913367375348814991485434248126274257733857432303708431306842056358203529662609099787233092854333727101540621394196945504405623252053783982515571548990475310244564939375441958448934167199361545817838247663429879870300176039472307877837101953079001680828217371665218739526597477297022925154067673182074121605287860488570373394779103888435974397125153500428667183822702135170964873386610429172284803239681136246968012346773895210919487515860662622587708108470959621521951389284710242403824334012842333536215259445158617830612557908444036991028067350292664717737186335162576402101405088103995095319825427225777447315234056662614868598717262259648552656329403773517625648397946567578131440832105080325468180392852663621721559490115615384695039279322599724528303317857199695491650962334934354285611522257980509109080215304402862961223067423715093176577349796351686883094629075456067759055554247282462222348747606268067734664242703499423517346135649111243801456892462768021640737524776209467579146222948742023557533021200186173534239873194358942856849785193391780452974457116939437642145445099838289297527523676469650173127962662130714224884906431961698919520587934576691932446808645947841787325267152558260028232998360166872124966912492528860856843074872511842438356932433932803743455774944897096548578421941809697236980017787703790859038390573068539278775313070908899585484434953437355971030231909141411006296844207647145700685093598350442620858470214158527417396150538381253624912307568950725723306095184284062709887737616686697250747851990008754418944692595453540997429377219757698645716022803033493428676216167015284517833417952911772750341699744043658394276868690538152969253738042829721115151412813154032833911001206855034493079836407707283801301223527034676198399204345019130023513758706814858814668741858394027413860830425564265433267159180943883005287445823555088865232196971326143179440423578116490562721381493743397866762010283535531743547561736126915097397099965425432918625573313159505070305948447333536821552006613076490256780334049006534274962050609417882003895578058536056250747849978726513159780810899697964179960697626726093157215459544445270339127533163373868303917632608063070173005830090301294137978991516038444950882395616094627037813588575613703442513352710363271310917601890713464132781669382664517249049930378805663365251657611966407883417976533691056478476798374708995269400755093281971508149205725674058745575340496551519687052374520335961400758664948529354977124032101358871573954919402880560249166444735683437425872036911102836614995309839411008207591656335341285932307861286875155851666022810940886380949023010156046488301319274812201095828188483565946113470836960285191719182034288875434752597597459863421881394109670481248739182406456795022643579590054399487529449100231637229897096013797190563491652554587622714986051734943577730526939765269818671787544837753139030656485562644779621229638973664293841491620677511764325123971809049578362600433808378442593286653565733971775508050114684132988292693234792428306704461291006230510385944875243287510048724868907401855527888483857808042043855979651888534668295875612829771239735520322137296470084513939620069013115255680269755710009290999866072909024193894402220627885642878293593928382583035084315793157579047545585680797575254254992548199436278638204665709551453787231821855991410685342324498389954104792925086591765644964632525198579964326308946902026947706093155033764956493973769517740870015745020377507592795100655485632656865760332397171228517654561991483803401224862638437553887171335455644388398147817015513438585033932435662332360326767003159525190852919575555045607548790238167837934583369480359748575033633860342724199896103063210692666689964646394940820988838624853239104954762950064116986492917363959707571786558088719151622305846727989196846934935573225437730095781006087379973441273155637204366682757505401103915486322594393251169004092905337440559414689332502298639681200382482691826417719466761004028700676461150344906466335294173135193768252668608622093996847273508414039220392600884598844023911891994878556492497003968477146447561478364991077161521187894782808592336608546021693436943832589048072516506419018473126372983452688633789078487460677181615005720631624606403005551186588783928548454926298646444147073127314523464093157993250590602509884077219183248805560585489031347770450426574798797170121804334883565813693968149408737390586599963734273237557102938088329922216571331044457250829281750787340963657016358586452804273247077416272044513424186554692484645967584893392581270463090862623511747277802507814809250644309903989808002596335423333071013507119567687754341989930479013872567644957465349523026131675857484118654652953691923270776786101181807655949524136848733245128770596801819045732984517453801458492692430331965300218869762812906717508354033539039283984290045741463307592337063955597693663457780051639236356884969634120919904222530960710022060251910483253125996434775705196041188251721786564952174373133054003322266375190441717876704516613823106292714899632796904724878076063628123304605710558310506097535672154955922612000693741593322000318918904114521496243764496086539397592356075137995610877914283657932429885824518278024315824768327583747473247247207912760840126074892051750850312391782354600468585593765235457614359895729436605342470744162357200599559243071322694836881396791097307113848026730841303037477425055854399254194920423714505004500471778882670271696855040570068006843016994334875453883387580223253001745976647441039398812242026444038319435884623957052041470093208919589892741604887966149062224168296089349198391978878678955855855438930553408915959307183198179119427890879685385846179648484924223177403968011397242229731445309089299810694560348446225222969498991685533440434309624044432299256087120477241242449562259922828672435129133012349411712721906533612063758456857625285570688420252310389158029563209767233580185157253449506477080251166073376787006075430482076487741615015349568461521692103661552465055545700084275040947816473691141149876469794942551860784846844103250647138351526932456017098156422401367194061577933003177412380874752491658521782601922157795885458478898786157221507084838614447936224622290757664558125876787053443115494223829348708445354902608588044548928456983761786616660735364103294757594011950219553813202133775294921566905699682012576500423690723982338342332039622308426808812487476253190633947273163248742836135824570736990535699384461820620553707429936528514177893803442652907243839399149870875906821965116798086967500240560075461935759264061679967860756307085733780144518672279219699986152428254930220776320870782004329309801115651099136445065776434147046124378089484635264032482908579144479344106289989552936667222418684868987768782285843618189766255373274340408737048764156913180221433093968807906504090690882218077659028280559390894406799794551264127832464162773017574774014250943197436459349424247673127607951159823983167153299019936022476560769104759657133343516085752675240694195663898817275390441997434634298956164816257236934884467685203848673058309637613172852715665270664954684523248743469135594431374297390607745397260414113055488042650795761656331600424647106229613288901698663108567010161469105609580175900915540654061712598493612831379839820937638173289587083409716771871648720823928207710580434262794934826573916872971446205633901657628205308724826133917928397839356347902160858898022551395850190116220076885734776022224838474681414561272496927984809391161350700677101080844001067123236661137887914976976098013208949274262203975762169960018148645709991812327565116992315254152197025614814019818998240490684324641382189315503983186749501818132950866377867371347515767106460397129746284937848913882589763661459479672387354976512249562300453303333963777040219924546661608852683487232249563250109411541718975258733297407397713808630332084360693727073479368146356789215758289447182044618225908543777551487805119784223400693995496658112072971550064184697466931914672650860603883479941385999590635401846452260131983244379222286932692335389527246298724498248331790906297048196058471739963489811660910630947883456801694334708250183975199240286950597944665275426477157628781367795555745425987722716980061309505143521179132803399567219834910928072811589304207397550972521757200750486641266471961683381030799712330745860554608072826035659755007547484731274616203383583197407553157263172061704300312642357975059095591144378145695317279552514439275390103246598984541563227737434676011218157100727863528574561406908657902927059234672990429260479582117643812014259247321647237148673336621264581915897289380128753055698297195181819583533096869172633463791786557199934428913058462836933349300240829883963358983213378770806106604316747289368828916558944453151619304023414501943026463192510467205864066562246987521885178052954750830095344376946973405917624910098116079982501238297824538691837388458803034492678269225485433800627711783158931139181171999227397078955724013416809016637410218373393301503072143495056247973494260757445659086197698520708490118252517170997066479222334729573069151055461072079890483759699856322366882236951737482812901181877113124358935061205768143316873815679512427395381126190241922610668892961821011932284966237777979741687082697850556141275911128111991085161666598486870630008893527937132812774374298473811025225262731313848247321078743412314378501429350680548597633195232564158825901749973277793910629579343417047649437613819121725818125257341196801177521704904458419819445163410440812956760898997241056122107041602053825457094278139771530693162336617623001868118271514500564839407751334938557403391045866315407170297650942338219533981988001517170239871148933091788990490325334970456236758512673772420570697077332274341221839130541294097589378207533520344051929540463288297645046020878056426492216403122051688000872049659105883055910583425243701549150685711529249733052779954316577267646797477007957944066969317006074400485911730880807781172040310355650028070273791498700956456855202272070366422087833117737353047822076402118114143319823086847929433806998766081820858004847556069915939594256653831519180257820313826363480943565289526302185033559249947233234882490161344983837400393945337427798568520164191396029955090723565611132312619183055243216494673699187545647148662989659235323100138572009970420516752349912442710827866616317698281296280081912244199646749478435959660232330166655038014753771895187699452935753018623961628124358013112920768830598629240542483300210999636497534935433219575959657612226151742472714829190642757488438704679467681668498912279445539786762909482748149712050530655856232721162976095114808263018308151203862256223865975387947205195395049504257238177908248963731919670122559465440566316163636903148165146092042282388672036927396118270231747829876223134296773500219349069226173616974847663452255005457356555509323464285435663944868266539225315957751217094205725523848598614395557078400619178755920032127189412483819510957223523208245865512373423679657926024341992737557957560410624746803419350683750251305776468169720670684074082482524375091034152111405191751522236735691856069774570199211336097530277515839002857760806875607351578884434670635527398692676935688307270229510446501920759038203814892038954461428138057177022659523943679237670014601303274947833349739856281810889596298237994401338428981182758317923777903865401088992479502508992603905040565282989160590486949346297774651827799318638803827427006056781805895705996492448144240790499010745035792872200752656705945527904028004482373308586241239887820536983489754494929251643405606481112640718301664959183545343847194356923538148470657055635656561672313501802602462582695772854305190978312943123027364320540332024225352809616249972860652201033787197838633503601800653022249340917155426990064737763637049559490030536228859093581327058224368568837759777975080158017255964875117767191993300354992065390567434955807256684275400807668221809937134451711387693074640225158131578272131806683127269539021889401709126115436870100169273866428456610389824626594578325275156477398655130721922080772965692199440314438374151957444529076029945416673602342232128194622471023544547729129023260517922509872878783428235612087594683698423787066561081616771278968982865654576679588918299270816165042236579326907254031261835226994978597229480835334564719542348538271556323031997885115208673831351318870359915448151685255833335336269335161173759560322387246090343609039891771263580704652064832698466238562550047342895761561086141422981436126146871456676098409309332252600626935222081672817423875910231113206564240692458678253245190466666604161283363887402877990976087846046529923496178903002280658807159301643703340536633931510677375899614422284730025116051686320519171581716516224149202106874265958873955552713871783764487996467812249474721974043165983029636981033054167128519192133112741610297982797395967616247465516196830363744710016709584096302793771624481903264104361577369104772428465378779642268480031648802774506520189095487849284703110188556289044104657717482524001988595105108746948345718098734918890874867884879154201647174105053969435905262986103161848366569212844459866761786011172119063230271264922533748892902420580921163147978411511418199771590891400642068915564543102879878605623422100616205003346318169886728112135901447124977622638890314770493554322295938799195132701011256432295548487041997785691325304694875728770296100679485727963280979468040177062476193462045208339954618537293146701271778026753366796367006018036391229105784142707051304186236728278390356633548262509737935164155614770314593175697410832752020134908008429633841926531304427071076004430239796795552870224151591848395384592672201001612409016979351206281696569875513075100615916726813284918605873841241512141396395154691255128518137346998273698962028124434858321284809208643625910584232101858842422226866674898501725026359160536765674751374834597506382904067278529328154435044218505463296091348781587251349943928229708080121515852019826847255795115140893314057972354357085287881588338905909239830537747328984526797099277148123292446763541995698590247526957888160301411850711345585729402085833025310844742308799216562805430727256085545542568171116096285064540380514447550051559929536772455376409762863035751390011707583296724893845499395669518562767786628357791825719701959431328116663857415797547668276968232095950274623096098656941299324392931751911156264021365760110615013112022545023125831919605431044597692059385461921647278853187536538393742338466317741269377783591724433141940377852954337388188101449419140738619511802677634266831483712403601391715259314813270510204738204917393618320094198767154793201906428322664275347452275840649272402308381351368826303348318297384014836237665252730730387392243691064736588613586147086218182866873960182947505008253854990715528925223742843540193125300569479604586477759916592967396229963982535816616212517682944289899490729108001544779914678087362314059889706507091108085503333370005976781951534274411961596135305858898818351023551486085047331685971663149783181422994611580849943469892361816710922151628157730485949467313232695065521388795083382037415740780626871695171973939999955187826783075516859097259670869814585112502347891638241474578522324097247921882720726232771619584851238673877750367400011696967958411674026905871659132869069256561114919034117337397624409895627726913874228720453481957526123679773970538571900675912142048776069668760986939802724826865971876210599588814648246868476286493706323696659197837825028146652445783025524902483047862890252323167615655368058022704069604373136709242074734758070641629124726165632390985120301400750664543374499289866618977602423724788582371738176813215739967047280644358221488953737042026675860268265681900096384932712930924220487980606455952219107170691120178659461167125421347202022919938791161079456685586274860522668297468514365981721299018795589211144673157964031411059217306785944033011240416590529063784740263650856521262408758333288424176635940102717844899732075472384636027355986219979655881848289412585515115111661405838647713120993586795357904876666420408572804583206700498224711819103296160651052440593942034907032273265469012599890533803514821540573605962334859500138852278033141330061756486798042827824970169252218826361301485899970776142233620069922297904364391117847238406399090593408003346303507630015937038126692716303079346784354581573425980125625775248780794630377289492364867591346296658846143393034382275903148316012301230474169524124110579853757194499420348598402292962439563350059072779986036490858048872796123725249907918390599309430490130952994053764406184356478425070338741617077613550266725929508994136935058816641942031905883818880462109932145940333562560984923510333192522113555519135576744522217299191337296183021188185841469740674796911585531356742479715333161767319827246102104443902271680011172081621324875520200911298777429732088813103993553004816607962717992341365893661854054754347139559667073611797291089720612313599195567975906572256877846157165815027096330374594407740788437995919311886735833811105342965103619905397252340501487594284392625791045948199475642664699341048132125574354464774787496760433326506894030347666249326534067675709731834493988974965893308670353323018186130541879035218225355864515235702676024555576456980182531488473983607996308893746666091383364510449084513939311162887579061488694249754294618265698163853407939252972549846211523616849348319817132711681801809138531791711100061493290060601543517585209684662592906117377661731033324053538496382428921975440781631293735096701016232839922053679931154716289346940117056609170343756408022389538759889525545271013039330221985409143882757886166414530893807222906191453056013461897490178684182702470271915244659330021166575577635808211979408701419130659774970417885863554250038734866120595603676338558934388112396027855004775745312212955207577983594506148981518448926749573452787412201397614084447515772440208723576272031310585882837365193946607768497370166730838724668800459929173487695764365549239088862572857035099639837553783332578719577622942882905377992051530110621790540508491573975614611896886771341556412814726669442169589280037146142983720382201022819281461629786010300957961815041116918003321005118126719526806972543103014217566419220707864130454009434295411234043565312799803724809672691410658851292591987545864567414700340314923183231378304870094929338462772530661386323752078424298891570775620823503255155908995964408757651430754735534762954262192348800473719799483364845284156810084789000050536560021988747935155557410213837723448597492315511543920331462933689172986063933265390934027214235490723469808289914246707521059984589963479602575094659206317854376277885658081709310350003480858855751263874751141362029118087454014764323481649857820306641185427425259393737992239007696251640052671985663922131154996436239693764929199104656104826922384446095259585983541550262031698657725970981974186045570456752672333881406822365952585206940238303256477925988725708905213124541883049487599151985981186065935273359452376305877565612397160419588231123468544231817331777412215013156621754894063736930096117839055584966781759380262879102048340099464033065305739432174342306076743529866958313517515801815148773794241438252194260879294358506918518572456731734615647347521771882342694313512908283179534893880382096896212717063535666541656236523217556708496525659836609040157867896817239504142609384693362612171521949646070641498277209409074777987293170557384533511728486950333313690485693116372309168974491284605855107293866406231033931688993753090947234356921108043963916029321636613669581474925966141142909560960328512821798895590432677683796359171708716787687371520835140254278747326055105506166123492506146416556625202224072287565348960410651185714120081919721155611259384205255624644042098871478400519789225480418911422852954174293390884102175118567219398952405741683077191769808324587794727578591710987480984539066610351893673041624477220230181673249453397099317233838822024819864976539871518302597826940751007606754875369977263248450955323005693074721709765821726797038710050346941361462548385601806330197665745158952344198501447687849706402926476278959559177442284942943452952638960171572437342594144827059669570073512575796690437089114292474548745881678034929207291120697888389995228981186836104860531363031523084506017166234336056438323838171419395760328274411545145658436564378119958461728552275187061463665754009925175758281540099920177294370049336448464974908276702271029862243159198284611316178850750565371106700444187984758865199554907486954260679757039019644029799702653349194441455758124221986475040576119846542401315489185071512366396643350789324349174739927862835387232930737368325542172499228900694833798536228387811240204791626588413068390495850694652172428906856113032445104766581209593836928384845652804260783592179673945425220054975631633581983466419474014695795850644820785874593316719319779538594555819147829907372181429256254153641531157359736618855710773406383924979835572031792439873743658255731157709515209967380134525571858265463395807394363077981328093387689907363950325958689080509782149487773202316522765788482850567549920084257303972970464230146320002582977855631363426258481184021600127330807843212756117787997237681671279635911610853491418941419976851290246138554626619963397692340186392590192393790427995624020770017896670096329659516212571286092070102600909014569608863044506464082456725506700020318821163417420304511361635849736222776025809142207049907692041241486082612419472356011185083783809601773490608519137187177772425087911639750520113479977689387297498600944833949404429288774389369841048451747716851930585525469612945903359778891382904247032199866183053747683086122053315380996060723918064761718357954100418794779344092604270575896458970435874675819619361605437132063974376870655907493483982240371754609711435057291332206271433135657470008600329811825667263508127172894234058092266209390383393177347333001731893884878642565054891136131290464708589931417806195045162579805262586372134804387043542160665784368586331757074083837362074111509741089365966764280317984764793346177156562456801465471714424014691690960621565818556289946696630058104065002563674788103401116918273019801337322111373886353233029944666592001388010726975114077815443135439275959634467754295786764311044731585211724066016598310370481928107988894187604610541953513913691213387314101227819308983168986547162760097058746826908778917452553539252362286504940978091394945525348990489175487166423224512159641706576678215441174034671009124202086248728907862275635254098613181724443360968454716292724780533385627015603128703978846763952894999706258796731043466272362189454586248428882498088355493911641608247055566045852905111297515753588179063751115251216252482722438733023035098447653785259310859117356948516066079037404829523247948772227837974357355838154371266944445759889139667781844424212718213074316893253196745940460894204450718374635842609532799764808474674801298031855234203137262879070235954968066820346075040177800674527938138146109028639044877626833802351873470011576048191455195389909217917233078442983012749895065728130658641921196566316115253719733456340215144465832095602391346324098126637242490639753594543588562704863604135144158978074998120858723221508211154537668951983354273497847050290501244537593676437704885761288358363814837119695370342444011367466574967262800379865458969911327052752892377081512377231720951731994343914884024093415466072137570498268151256431016761309994667240848669680013470312170141325807025220600360498014463015168792782670312010193144484077999047183540336875112649442888700605277861741338839761891722830019191654243765590727745680699813105448457194035363515890695964432333729014407701326958065907344676076720195576983398215017447816199208305734616546776622477578811050773755794766993387797203747300942777986573590598371110082153034756516820043449198283921841885657632441400230097729412399669080900863141729576890694545881832149353335929812888473814208649893864597920467454461463646316861323976832897165829832723348845582765029725681417070091739783219393451986050657781346999650279815992309121877678657418101413997142485785062898783167493467794190027294433946935276812367504416471621875502721812692932563058505582842611253141344923603918427271503665451422758146471616294785519231138518192034803989730084466013672707338517932865660505377821540208411831488749284509909707196228150504609457258551528898241848058127178948005472574643193224492610378140387170793270487106287490109108983140917340209039543931737372484522864329849487278902081913057562338052269612892173330852349893510250236759220889174969124706173236038626505010427595007064933725281527325006519500189448914089926381850084609418887375612399402440071976974393696502826542842680814773728821561211149656548434862897252025867602877943828254812645785447830363610445597860917198205049456258256735161918095725287363088453950723964675305478632315174150530694261875272065315507342113029119868330061690789142781565121508362275358992466881851017002845940700390040959329584903808988094905679435036919945793135961210606748332209204170671545446116860486413955812292854826992945410475453719753515246227270617288439426508701743824703945610741942773975056917687656691270111663490205356976608339818371326149164976126364697883083492945138415568543931789375637811920009957615269457980110513746231523789638190904015978978272077472507026186486846256251407569876637473197232553617356848856879053436111256276554450552223451702255078414580549457230841785189916324335272325624620257201583986133150310233597497989210465993578625328250387754422501856820706474887927980120087405491394488535626863970174399238981838730942569091808686646643675559653907165796150928399329827672914667513106839215897660383699689005841816791288683071616060931444144650407764219614087714911819575620126468882851434659287947945453527315403677429138170862781353018832905276228292955375606911132682904134788400157559236450165648804201138494501620716411188980820682818446209102310093447769032702974727017271001039756651723920184434777066239337063371385394509095494457588898497538972380639795985148293439743561725556938933662256258909427726565324658702337461018323731104730554772306129170976899087008145091543612280926585564289886413602970297359977406725776356625231817338096501967270744204047985426298487348031867732082253589996600242977414053161669983048272938237405162930867999727405988933975613830952743587514329078991258974202824300666706678270726386017309070299959099658517060129835536547815609571384867316887479879098441174427816665060134245785161114375282359534019974712805659612011624037619272921665346177733688298662693335452754551625612266578819174386154888616805966575608787075243148507501346158622717973849199016687516280598231981462443660359833364811143703566309593669683567807055914625696387147402914679451643514505032264868259829466798182171991278673347920479509916611219412638499016354155557406358079038516865976624648099139957786163680895834733442203081064932492392895678945479675890306170945416877162919145951016001167303544625361146735262451826105176631390157497472711249522498801535088156436683461829533921551927295673769317603204975874840074095441469540297722473949616270958134214530638481401597850036607225823946690517685129644035379482708481807343826464318597445237931081278694751852310388313154814071570378630137210903481985518999589279766838092902312522695634148038044279988990812384885706322707156112262294206116713429256555952985303868831231829475082478668762301410628601468398950517070562729261277642037068924562222126799441054132974883138315322510492237004974070541453028479927116529355825338639828353238606701511310603774698981818707993852188235766520118199270123155174396211958701681893658051671648303149867128418609000013852093023207770284177374902017337637321504161308246110336722850480493821744804964803847983791166742683655260444873902477714604658246154128488514026546987075950862032145543391632301089642925674975590957647588296979603880773948994918848418271546631516441620406805440257249868939065802917096959326709577535089656548727642302580166552626617161871777413655534289319567299903191639439902201468467298063021167853345995768546904892618371624450540016577069756689677397078774031423619248257099169571753091931015094848596379101763004048990222514515443978594989275055266974270581890706321061623904227377200520877567588679191060723777286755844924304098329074753627011336061412243444035279333882106265751242377824940367720219785129499345031006842816584278827766257678028500802022400762616354572526996777667672137362429877038150001753468961442220313225330946737933872584077499565477678255609539560160118590308788083110688414926932391664871171620825342889830992810443436832532122440588367522001180532820808549294240211406188278578640418823655360343591131970955150472851994179140269752093291872934700121033625158966819846291275477423506198846222782725423162192150821955877794998390482349251330667121440067450207300076805936963605681353392855209463020924895796458460025093313949166879587569492464050576820102880290900651237574482241038274258167717905359101939452329690957064876689011503405923105898140918916576951936231519858056822559510842987882187482485173076408912405550581492138160440777455598272817718929646204745203955414931291234391338601720556276698636772138045747608715692329796467016681444032219836865046721896618940379024773231361605001579432249617709367448114630729405738473991109731571148322585797211227808905344080657070381929762555880428780541758325530627177716133005883675646102872952579263236783400299866960477991927921371725959060463997356266456662673938120457166542369004618239872538755375472196590407033659536986583695404869304461463068475007413547062481367376323036123579832251550359547563855554274954266072833024714910104012877169898679288814631788643180583472654771170942631211398285712490881466823231224546680301890463693868618130518607700500405926479404448565588763149196567187863178624065621412469667242751329823543503533258901665842762061112287823978400603511710471459216644002597542058829148285453898644696846222581963201872285796265151945855143608341144326860746902715590639178147011669349947013214790327111154647328979498417403208073050658810627520166963007661753332142608717771913969813026852517214972265464584122600242959971898636283996231903149571042097451317179009879781558785309590323229219707938664384549589636029530684183733617844271521409296945105866743285478284596596305447601334235292691802617298435701073125674336281256099516577738852002660505927483472112499839895311958857479088712855073769105465934751507880954676713031881282379958458357031330983013011004327182864477562464700238638427487351158111561612877944386985917939807981987146138079438409967158366398040912938189243559225291356648490564744368561726406839134171099227714026005491872217282671581907740649390564524971659796331117555018394915573331603677249619053778877671790811672591609837709394418280221703671237166404552412515494897151962710653866736863200722213165608735158648607253331380455528524814622849875384156248693478542088338571661895480846215284087589913122241431120954301222346998873919782804633600527654534202407753431734313944221685049331814468150643162378816725256675193670075038735351291435940648294839524216106842649679875889633774859330890555500031085632473921046110479374506709936059247906122654072707492256127712622140478999418881734198105348004438603176605430087914124343045767355925700158061989525426448415201045425245060445499474997544759337557289456467778261550912843917340765408986653718835242533068833765387101189643387837151541701306202254526140130124128163026741182401923096531154768944393384304161413883804710691475321552851601260786243302131089406109871739408088947744473768858613413729874013762015049412034498400959013455202050168744215063297909780223020432996412660206745836696439423079125666227769012344916624021673249688136432717223288442330021812607850768479720885194255802334101553197354209633038231405587746609167651598869102828501124319431948836681997641753941381429107202942675957667228682944277239070923137521153400005557506527436091279375405812532148116024231934354214761225161355979621854374065960380662403440470314786130135366635347471799471617426829207901813482724616266614519313242484688545512037966818056174486121599732807179943565402028107184116976310748776062412488815513200404562717408485104426631627392207833956495825352994668404395191853490910520448695123282281029747938280677493838344905017729325451391027558372087780271178569015286167953243523635956275162969186384565034554735417170958156718338625700980400925164418138664453195234222304654008887208437529432292083881969454715270356224347503084720155729682346022565030969300717665851848095260220198698432599785848599765628100200410938991977504174818852388639062322271219122664238825881973446639047392859264105775211106706911673871138800837244935751411249752914956172568191543962627301361953717272664752527161916674585862007172740462987025025078399531583345729037229931132095320563684423674156263672206465842218417935692043720665723561369323485544970890746569051934893683447434619521274192094737489726763161879162921028224197827785237906509045877448454123629597069887819273130419731312458332319227643092620998314771523042562566103060649996192883939467404770139223339817272020118052426263683656955175284364453092121423808480769117266821253382750322903151594099623584889244269582153198274501336886225547269969944651950193428917958604898624766421036018125002779061852387138802984204169148626951655591257846220398014326390602638067045718221106584562247323374342831000436511418154531174019183266524554681823048931327857374078124441348296155281472944708630043213727693949591154739814123285281696744529654818878166007342305173497009783165997402546913876043751889438138613908944752693254649740598685830167653544836027015185259248550038853410937138570294871323894953253086697158343205359256798919629650339457024906815685439080559866966226718142132835729347213948327390634845587806467419649581478543241948885798841900018351088301821506379013386158385643229290766335044340975216713167932319256058840901642882150119676967154646502847770419620137823441912674598421583188308996957112982741078744601857465967910149505280261386958433723085725188878687685140650979493083311971536792959554732105739282054122013476613447685675478122546275344069554078742743522993341027216243871924816871610845713375524470835916600383125678479572736166492451447581141579326809786855070882634002286513399010084201637134395119111001951695326574359631111459437972314410658771457151872192201489301841433020294353086810878701116618707497386705770500502951921695455907712188737455248296307215773587414366687340283131352300923010190478046878232826136210918443740971157554618118431784717893703092849990800187201363011304079408499914078817935126103644246499726353668166550209078482535157128239692054359750432574421317432171838446821577881785812573403036369380618032293899971294384974558491964463857539219456187808137927544941831638521876881528397101200817466547070146656081066842846488649428088129773848867568240430925146149369584079401429652339954996310344243886229398864139315099987284411627147616204523766451731324737734002303203018599185905474694164552525260876247776450348653717504825480215561396211957203299941391086253011521776601464465691578929242454270669593896235074802431281926372274321623657081972548811531838426827555003443445996216897338922795297574076467448430546256640644123394942193581100263424940841053877911472225232384732805217331866834396210256950616235685610412789807786241502568941446298352695458733803461885644672921289403699163514608319423991190963685275343630044232988083025103586579019909110616041457927066508958837109778071948547981262677498304723438450121012015618413550992140371618629740867758870803899713811803337456973346858582896279816624127851148759577102887872187359977294060833977162822341035298881322907606774494882379458490533342553043856731623181128310250783362585373518007690121570222809884912876981929981266405879120248615292289483992753102627602034755789002939875004139215289889548032242755393055666912472766807521609442945074824191128293322455466912507043534869766198047061893537891215809005080122354705792544111448507485337154909028900067435792120728972431517083889885377609499376997614928370709673065567294412555182111951618551716508578271817927757814435738911419994127367375262034371020791278372040733519963890557766828762872577934184313075679674159267672879868910527778251806071460691603791990532348836409457288612974002579808321840042404240569131273906969712581327898670072247613434083826588319070394085629718017467564976569777127923184797269434728175539078393446793850438190841604404610552378916590618851778194750912901772875814065979926002936933909437647686419010802413262621291220315939395099059453036335162754614983562510768145665060926439487721645594165901509333752618929154495158074031534752232985979277823413728160974181431765377064216534244294981832394031458319321016821755502939868358490579166672117605995717856230070447473891488126647421986996748921555929033029587795919957331289078158931403443330681021577613456849930806262890823234972931633283031477759288043270555991602530781308870429144503236003459522722884169090615032620124578242078274017714450730624490213964294213795472998850525222865332196142878229814688851412188652977765375786906886880033076772245081456113237707874337634666419582506080771993088584919027209335127754199818207819252476410002566729120075974845984573927991449736825426469373720853879413746064244266768490410313459629227859361628059997056497240544775647239667170922007839107409589418893774764913489674267608215193042805895117637528805554550088336196000034438270130319442413377071572120512831885946263566009403718046716868058247641050368821639975911914638424867425782141116203783462618224680823172365778072948358910625309232808787210745936805348601178531285932336351033394855986960229308732226171640521966740215728394494772358627938784622641498042733652928062818025601485222727177054614556167010357154478383865727342524511196069430246535193438067951108854994625169255034451470367267035720392661014026187254211915730674740652808568774243154310092522912356374482053630032345963141768104875532225982635639174250256428020469238930799860228250501879421317079147784179669727836212933592845515901331905247993037744592662988283361787304039367319705627507691055910701972403549583621742817151567507846454886418310797546643061788199765835427425463725778321836034518505851285078742775030632985501287210448400047886043084010618954718209141101053300471396817530662619467159534576278773156264076971563395472220960729151926721622075906974771519353146357993715218224396772648078129736032039547137063188429848973996396312374182070447525441994465127092168964107134681620175823288563925909948986607928924904428404158350623177847652981837003748407206310842186072468362639483975546723231295370320999584526906614192401063289023116245593351304621426627641181855773175484812322986862092286879066220457274129994116595245810351328465681561795117867834680979222449768473172670551987271920707320866442737197824250395648073227721760221058193340239261689297694601414042122124662786754295306146729427715211536393933991193082121584665048659247926443121266319110796559352139228756654647423256093504607432348096198828787472493587677967389679535696948885508583868903639033919856863246810446739521771478362049688317323119708465090358964021015973490092209443157629321209654469273065699103595731862147114942814389984243504881749124222966460865814093677288066298614370656820226300061124344525811907545279788226888151001043016013612698193263970234823625114457948073920699442518736969493647374172507574828105162541066913347753334335062098537911054429575598160299076791005214766996252775115930956122706603722725435630002403091582893565376703203580655299026628047581603291145119757646958100825945498095237171340915987612405653335197642053548841707054973993888799971635622362232277737033614069224029415072153245897842835919689267756053642335074267683275853616648932125626962858879153718560528708229470146263625307446589583083025039113803640561490770502721942997289880206920062151214709738676057670646185914323591119567259578141235402383514058247665306131613439143237415976194366774848878663787765889762500452376161844128142737235597106626844505335913752783046679504872954427961282867213459287207611940043892918712096773640224511872525485036229405511085988858157781268525651552039905621495300791171612815744889872467001644983012672345707868668539851719707391911635804809407133022473315385024666559554124070753108271588263820220285190279887198414529585291229614027465785309555964754477347866257918036972387496763950261817019888601241419761070997730305528298348422575952980098655023073502259575844316379738311865699131279236909711811854210720956352208592628164014216738381667804550777848768787819428782322195442055440134457407302319106808134045084906567077793043563504087984536326873717211161881614140511750461075375378727080038750387263426615830735984706628935598966953615166171556622905332342938673159978122171409760547895896994301536955597200258485303576028211799859009981646015209321541993602975040060414818102832818931989500968954312396896819979060284128239741089396458365143346009369947754374924959973690358381020346789255122009441917715238469324474356903810347667420621655717247106260228369847896801931913589901045799793309628426068125906067591928163760151061522019589571952743739338128486968544807110663627419556229653639595890980826231778990541064179883099357672321687724668626654855839520053410309759401550880274603738373466611154588704207020776409386953320819511858363506383770569749484925738115768947875880361890511561240955011210944499130809622167368938542929224502713882499052843423393132410609038994066699463294543571513252485867665513045048331140791342405712502548917860904567714947635614089744113781610627748595996317948891242336746491912873674160793164566654083435623598599836872854834104053303045476171223220427161910672650669888680382434556967373152643681748224404240024678057758693253598000559660526561941432876326962883782152283963215441879880199325897622957886326812572358863562589811415710433145293558651678903113868268624532446783711284136651497697633382669479830256745467069523155741632470287501032646586749772086438158644138985229996739330538223287352455202881075200516749562311502005160350934800712753528935246553154526734492038056873402286253273268794634621468631352926018590669839700148414291193063789500430218752436208393776649637216971610993917908938497487573186099545045228279200413969789384907364444961795854075899265436484862668327989784698980940120175591242021090352505944745568511207786807773954402021930127100474279409622340705081144650201058000028598034795947189560875791602087965208890605486407041384529904835669917860354382417752980597839263311696473900815007524944913249316173614096431297691811723639925724976914415813000527593484317562554770230338996853298204761786537525239809088037644719676267212892208162897311403767563259533053982003133139116077954921294690840795105749446592104296644181417860852642086320225442101353876708973316743225692872467861915040921797108464730936946485038007600545954866026985704151776988694024758070264037217219652521689976343451291109489102686821930361771539687953188744939948069629217287929334455379916487550091191634919807334947382013375021744502726735274275561012793427897704322467228131896943053974925951026339773913183661386203012367581941168836974085068469337986922112481279997304497975433261165404915861251442115373305247655590397199328558638234058854282040586638040702907278015251242409618324326024684352661305036566340937139541557880804113740441455953787542334100276167773585243289413266526711838397691517348597627633728861995550564419736857336604387304118908625671478442389141796425911604687517757425115670469009303055331714971092137293583565414359476174951441933071257593658852940907038612303964940614993124116292725993135139425924672995952932735883472627615827167183946244163665401555466742745586123493559743922099689775932952396022077046162316600578990301536750400932846932554634704545886553202971894762577899737517154300704571349625572738281410761065929014945906074134084489329620734056711493833718339268371844394027941791456837635633413914935274286836894608403952851941708925277209380147645438830070152014773694713048892893610579624681592202938801357555582784957112126856476567152864175381718931447191720186422429275182106228742665062853377027058980411479141841605341598318504149173559052005775302241633018281896406758215243540764643744973433455093339042299826548978337333414922059847584412623816083356822557076457697519493766430985733279586985917228835000707939420092221858704553947345245265115741416537458149800519283747459150352934101860094143512644757378774917066122026908750726617589068317647554298500727250104533523869174860389252740139607921926146070730956194722025561753373029307959167215261806574500711682612691642314434180922507530102675524065539986882051728207681040205631176424817488466026827291864032727135926966133298294527142225283810743265426310200487273667101806055781679167466046190962938955197590989771322313357731646950527806020552528328820917658963498304426439896809737026839542078154573932786090577991521765687673311708926649864633303720072034356061417520183738763835957305515878849914364825170633734720855589516212873552971051406277475723966466051556126084058121943085702217725512486956891200804468198797502195925749940118233077368026518419714396126424638594091746188877455826316416897791224072295117758688024889626473998063284641591699588388483693769166679600515581689744180612300318022328583026622142072921177270704115233797694800948487378406932278376153295219395914028888266642635418816803753090620660182848618969351669053674854278046703832262244701156291738555745746817979811399654296936842990016821868455291953841537435037982719815777429521425424197834907712583656694207449792417895108923825397520055699939093445262039535314500844388105160263189966451040616166585673793111952846918530658483878632812353654427332415140405509261208511653506482957475515248530731049868491194595764873938842116252839378644113551136890793046752417975403979726982439073178923145463345212470541858074421177421821960751803204367940532749505939362796185896069029408079796503941937849074305591417046113049935049734578749289774377851106172400877301775627332801418107478519625761944691616317322723102475085831934338204281619852303681942107109585291264126624284414959885290318979270147134036818944339326199004533633799146445150385039650112366725889720287549674150897473740657265819199029154013228890360278864529340522287720760226630834970006120277040857261829185927168661520188072154588505994636093200366445768291897616268574045247405543201001994920444638816549367135978562489828696892665736795003474651084276062529517606536114792797141244937820330273428729291559608204039133939430466615715388507347775727793069272013090000144793258152056266542944673968838921678592419328597881520933388380023363346411215643920992471974840694821958010055178240765130731308948683208780784143996052179321547770914458762542598217571625146159911513353331972236836295772624672808560643593351602037953497410612799638003052000477129353342199072933868484472180370765699713670582371143671876185477743050351723324337266369366009822794236054792394776886909831659981531193226254765574304096382109959611596523092187814228143343115339424994621200995361984953254863583354683557826895980892933349876593610860879483053201886631719661512934376229570921142280823480134372356111329397838047884467795885336110892797340725391137698784070254771862018902879824713256059230349630368722600435720489536764333455816429731980217497106744257971350778747591870706975068967409838767588731589939979180902447212792058290614530478477238845758500561520865338343895804807012130600450917713188121302749233526784042615288521168534715704964648001180317258864625482571712645192012928348131376497169077277387167682169542531220452389333297400340235733949486603568733341092566053137213469006603476443855173755340927121332681980659573191344983714943771995509312581426128313200550735861388774340173797038009488558003694612069603679413398719872423608102764399833043203139489469093527553566387998341948350277712626308662580931863478749595531643545534170379747200641869647245894724614194145843827320342525377445741094169274247845151529296665168656308646668714957240774697834112027266075382351328110407045563940587503598738013915196941137170690186070675154436193743743639437684941311053207847638885661284440495971236530634361638551187229874657877419186026974161448895127127714786514399908865041529109384155038462011192323808698277888185519807586100838527636312174802000297567313880895204287871752650727603355829106534386030535661717858160167005128466230066565446299135340432815469354632103594552933825165254501679530377809605043597213041974060915297463271598012592643194622860710569237347418538009120355660622360205631339477528003962689934481742166184837081491333269094327094834998436954716922898410181376006906076525832506244869171063231792280024111838101299536834594468620410191654966334624249302474154058500207642687224612759056065378679784186060224828309498189506030120753783849004649246540131487317805465091510949983262461717109272391556358009410058105036424920407773287911949327035365362153280994558945544696865981359015452404498919683288713603568385405007044895127091807746483202760592966483599780095291885647950948524190861015901368144591960166780741570540003448126806212237207776248413920410966319428368619302982316965982200218680316516738195875358639795875311944051757434846286468003353762550517617862749732148598052735712122238205015145528877657939362077371395731630984566665779473981372202162412431520766744691182092985702088269496865410382100959546249833299512352915729384808293155838088676422794929044483107166623872163272344861353780121133102386894026437668628134958314633240377027332392299303254102168760766117302661186466005328878563200584435854733341618826066199978638881170769045886331813105747673731944615429850862410682803308631160598834151037681775086265841872821590135048526355868362480383538674241853285722982798889535713295380562281234544232537731934641077267269652422224020629403678712307796167171818430870159780271085137580299781751004655795823252814889425713130516068593082472360061467366697662139338402241046799091726978137860378337431239122054107721475387852717052684749592986008992514796633197214065720114909136329429324369980754364461114083724339827024220565181347478197568776850829621005293801915393811945333643575313880566976622666226071330685284547884161551045208230544298562371620527030821992821700458635672902665733150870894591713135523581149608022480357835353933050128647092278799059542414597488021220624743539568989475076977723407905284974011703106627862871930029855162292005487682936558351745791457200873952342878677781995553982250518916736593020064650777118334913728674441304290972283054533896156928540024797491456187914851406263565153856640002535182690106627819487936251928448031312002985098245523411318410296328283960266501825280271671135443056600507369283014397029337949879023767044892793296874907839060118236356532003998285040645857083365829092495417398653518764256303167600730701120338249885727160816515769060697455230953503347344730549831497866196466873716443858371387896323899249089900099486121004113244530907673414256475832621540598326016921025405007933042368202761940535193313059712175561695054702020073522718985391247199978720211572901340055148646875325905934657012045439576543696013729472501298462170902610225623796649099599530577229729662026631155464338282458203189697879026716950009871881746752329000345511218978856129359551315892407068412667272225296084494909343485531735893983113030168324760247238525132217062066866522057745597334811953169312375275428314268815450749769677248808078053744849485960534044338249135456656255865158523483749939855634421209740687968936747673254419705218026222710986431681781590225178542516461124257935695693027252671495057063173947116976063159381196899782823401853197959093262492465438824441067806479689239107286301552566139812124832171189266143241638027567554767819885687707838127191325100918225787454490918488505187799226231547890718510073886260144729826230776949977350471483470392507189199314943211146835989380468570172239476270915522546610884954769252023832516078336125446294714877861920976753017279998413003472954739353855469934085021013985907753134965281855859863930010342320633750300608968921566531580167727730145829011041801269513642808843546873689126327024189251203855223595649576738231192317286806136279812167382947780242751609518939673785664677863062160925663644153325658201728342135621820828222108029676415917820773583069372033698893780166023083660913041642621503047318882733397059090004310597816505321025761336184560941539524551427618808503780235577232970731486456407761547128701475934328010160202978354281727492482911157150796108377166481469597401598632904806033197137629766123533069833141732527353679383962750078090397219497099991541683077134246757051424373498148220918184842273436508260990971627554204772340177701234700502345606824319022199788824244799840402302040595963398776349554196492888567653423680109471986214901504521810270850597672541379308429789702219904571085415111575167237323124204696485435240549280554946590902279395159288952578485643569757333658879502904498725641209715954528196105784942865461671913018658083768822078839949205972761900443115718841265605469786957878154125229390478062999755972314348201593117091695269399065288921408330029589459434270373988409152903678654278306825177825740932293362446156895078852774954775076602814917954269377517505062767754211209859178744235285250134833325647518060772195685056328553924074224810840360318962360332685062938831779223473450404281196672133194380308332765026695757591660794722775913329419212916827418880821521222524614407007792858958234511312658239421691138598304909613485360313766136387177341252745936374065724490489204374582113025721768586003390133904004180630853435655794805383393069719544308744325788577906878304732369840572217967393992310120447530413595955691108871118242003383319186799236654498379693762913999132795886791793029970429244526985769978584877625939508237773118288940133065469994192671297706641804653499058348135607127868978894529608164502881689675816427668729036151112269753147536611207528571816544431616699717345681859243258820403081789973419813565734465527689795279778758186971506794880858353170296195432942215924206938170212585750526184031273706080826971594643170505767434780977950965748595821424067496113956007163918998980555387848568041907636529654134902329152560388590091829716978327959441764330526358515067211140707932851146354895792639483234922587311539742803267724966449397070359537501920565038716161845656617424218083925687555848600802271088681276198118717243810584998340660591769651831614215446761281742777526907236155148322837831284659907371765513941518876919382935298195101700922653330961178988201478950719023602420362094960605325820286370140349215698973556816223883100917776273447037596546771836922372944263972730612080974004488173390173411419181481979965360710585686891327457709130305005075878105800042086737059833233654655365060461849138286104036684773092556851073279923773755614812844770592469094907581886996461203557851638774170592912764328897131934348108420147156571718196766900581427970633537161422871479525802491805992095013197334240138779562193792650480563935212419294297056694181296887895526712109258941843845538668309135901470632751140175926472456085824587064454829204228367815004964153341520148579698086036021716093755878797767225805394279434199621970344689291965635492553367634644791060747395477534082777582782480468470569038515181805341451833980661425636117617817713779959123822330071756462814168120113185909176464555314779430633557626570359309643917986297466736264045824960947719517439848609683160706957380092344546378191768571536728607900778912290133361757649342590980413934057093518712822655814823904306489295053619498486074377437975618297470052992263545738708283293112093897431523640439472648220543796137144344583316767772222930597103822195980949043636144333769713459200283528812511012916111785392913235723850822334058196959548529648307767803798329222942790027618890405259162956710636203518015341083450311503677834306564299473472450683318260456859870396154662599465823901661913422170098132700370714098757075538816480837646549503500714649970845207328679076926000049859670063166136197042990962450488875729651065776561748928134143162010792672075486077737945618735279972554400681258808630359878375042772067496104526785521906250245870118047507315120688671822584565051668894702843690654020445995219893736330348538773314811655690614505217830690658917189552895172199786528349343605324568257136768635752442725934590094479773660550559700172316501815704594169479441313608596017835072028960702359457275615786593977573562533536446367103805762058012326129717003126195129363642333710263626907711383198426760403450620397217823918134266206556851169604651513846587949631635144578482042679155262161181948110121010649103630255266020913381641104711229206620427856924190154038038887081271389112220886248173140171922839075073405058029903835773298716352821959923297013116979555991945082269119556443716502591375497181986498615228576272615400848472628447223648842545397402099727619837986689005985787555242072408405438427870070055863646939570862307449330052625811970903745554847043879660048287329703343112494459804423165412853156465289681794282911750407693808652202796537125226312973588483981380092708208361391329387334393143060116872397284592110736834845235095704831407904897134792035736924103422268533446709363632398608712923650354231929890352420596864157281649245615884015344240069824073370410541353733100502464877414970547722326078341161656110552087897702820566258969923212607798055630114129662471598471651967313176727130803087323696934799242759091943482653107457775475924604275988408156590982713068943452267151586858016897680697721440022885776091617810192877613292503065946311064165240313919862936350076136225771391409088804680271536324319089386487489106739230065439862589902009323997138154760494522718376822368911689445630589673455060867909131042342988507963026983193373639815882205045095366527039292463178711686860626223195198628954847226282512568569234996004410512192775996682422513864838078838674594277755485903473211173113834661428257194220649273524457311545313149206717041801883867178149332330759622215791391196842418121134629319393365085277405232885865342978107871499542780814508678016502074825698358319526470470541532721882686419919177258391350771212211224495225035259289734085553385026943597507545409835758193318311896746818771022779895813240522517669385222202660799505038732880112052708097253806806048308097287181978743133883564401338921608768915106950232822931743006775215294827000624750885056937840570839983367301000492807106032550722887912518066093296898874343202003609744997231454931149829043529916817837250622673422523052675148987682721866459288870976719646312962470437022974704421393595565238292439635617587588151753744362537706014105264662447663912383256765197713155945094222337498003251882985139775966568449061274378197406551602730712932435686419046356212811271795119345196510378771383443899980246912233824566217489747188313104057150965049656801087493516775561992510490547927106115910377597857745623269064034483646418702862632107505848718602068792589037653969627410036160679384324953195712184136842992993383337827226985913980628401508559347557239195175575282045043936573761845194149149034942595604412418843762694453122740176749283323926132804864713343436974950739837085834955902580079795370483392197633686110190830447201290702300686245929267498249249138838738342708203936517668186655518340991386305502998697018527694173158980435979073618329780091111863556804685922628017740645939337514123893208065620473642273473683820420880239945952192629982054060747677670582828080232746683902212137237544229255240341412965463827301312208669625032612959970295621431491069459317641636439750433607535444185358993056496410782499805895170627097713992889572109762748057485502704637807175809201995025030008757092141469697644272606152339601745378713472458859182585507489334274732851116353767637215453207528198575224532905392757190223529459805046298238730948950063917531750387310852689652165387595399359199850040414216898924408544455503955986990422931659148478564445013111664522130318343340907041670459860764642680717007953819223059099124488478758254389362365109867866601441248645243079256180232126293687849327279426877777798585758481075461656439582365599043696130875808692048531837928701312134418306449035119267239191357749368459912454457290902188535890528554569550959689735749152428977078664985537375419297000393334282795630673128837069733494953232809757288091229431851834530380940242408875173300973587364068631829402433959730323698619427273758874476384434839914651176232506532590544945996934282357178587231928895068503963798204210881230747440357594748704549420603867936375284659770380888387008563293232336078520776115901901579884896721340716361268924243436022851882837800254819987173066272910931198321928201101474564028520409917399972468660116663908949589428613700310391916348166374897529856846763765552424486474772905526199822582384915952939076791610426077433879388184928347801731701138721825913373992937047146266718058474207102263314446213466336768632819708111039967383717738140476702659588144105658341790670211306154772955892346805900227134343107389802709893851113552807987089272663421821595076708649067126600496179352633916270722766095142451569499430187316087472164408987743804297760520034782794199909161818116202349965791355218584128949035098108369728179538716677834749962179258437883410800431813611148406019386545886307010204783732775746682320738485101641138932613874120866664024824170971149394971084916912933403595498266853456978879339101473899970396780642129632115949432813876351884044778393921013500303111693489887995954462278750930262224948021075689159754498313832571168795052514635091797032055310982894971132297313068146365619267812409806759510920888759483998392110437166619946716686587681416132219890867765803021796747511060325765776761179004229197208502133639870611404281199936206096502178147524797012958548548269043617968402894628384926927679918734739619935341874089874561586475898201849986025603202251567876714811222988684217671931789527528978426644308510540413594416715049055362354841025769860227687922070478638992746704728543971487222084005552710637281838555583587894809651307365297589216359603796207634717306789455343438549261881250918114938047400506208152438246534848114945138188905927027323437280469360520441901922801041984104918897614240397101767140285358137767901277133225476361763025685679235364430313281311742097304562565804029984221981431521182336021921325617502640622115088557740584324680482671279941203456367050113310404978332134874867698045613352215184363734655626289971725423076196417766460164612068759953211183323959448115694267681156295906199068179765354244814999746634037945590866983749422557154680623415822022709442649274227220712229159159104745111445490412480053844587555160533130240132823236833261902786487227635956356705165297061835121565111102712057709647217068072019464682822651571758200234564397745260757544234372327497827571570910700150446173172460561000014650174151260780506261098510981383325777416960337000789242284264323402582559739562139270223741124787454891459159846675644300484740290699852473147651109788016049484073329895448867706372434575974128137786331702203761339913494264715615173420251839469203707562192758558163770268699951212097709237941075022192147405387232986352519245963723317869130627083510808360138833650274643859772931280393992337161304066039643124252766425468672383060861523513613372901040713464722625623463189252014451000658376393420599478623596819262776257940847746219927561752700956956315962871120565740137273083494160346000075086535212958499829956943106370863799659791961867693868746181077572084866521332271701381398008369023754096074412200997988863250695798236678299877748383965226244870359891871266878813026746013375378481738231140224843198030587111565558588956590893988502396293830789229791616317794536449619858129136262599516171115744998886525535945231948287829896613566223656444409505370976203758363259669401926097617321345308141367417942263672492752190478191222502739930038198237549124086031207402099546395548987566561799934562840143587238743955091600839152552239674136079819375025747363504590094892779439279275060009652116540065889129318287208643488520549379819164025987008310767195786904724010340296707058994536491593171077257706597605058616550731149255540280927632158692400533613044138918389685275816700487548562619513671369568109818197972772898094835743930147469036729473977451337372113242327975961370784963224888705166248420744517728535393054268533069112499596645115237329724892567452688886887562717192899847722306104148714207088052357390976268506498084062793080372747738879312180007445112237873360593976197028303770760321978289762576957756444910731818851292949669881652708688187091012701114214593682497867209511467421234141973006196117206308493223627152494681816100366642758936109412348903872172166811808222855429830146469317816654008030117196146096874515809497259922182725304316421215657964043612813747148568276389426010832972101448177537251393749163368703838068798160832889216064623605911616545006181346192757489099636308680116307791439940458713466177856559630686252002593029397140602233420341676465540638362759325447847913380855854449260601311479604777094849074973826393571201953687427291367501864615713621737735504659264885840675751058012170750132671287636044752479271805896330834019457832213144206013661998211170554214442720302899016459471042873270508529154936268244416500736028469766488316854888482717447253525345194127993638806163297503732972783049680347899058893994524166319276541255698295238819641348222563132893876723714852353942269295930275776375055168769137666005459786034235551432490757780100705369939334164351956616839706210365676773174235366142549909026662049139440389008799854676913076676261281791071881974981112981994251478932480199737736358611060380178027867215474374606344620594110596292047285848827856191303564311116348391628497875844783808564541198177697226037921375950186659972465702070376327443586647794145441345432281918768025263148615724130134966580378445371119150816796702209964178756452822056762570348389197509178709748187064610437965919365174755179919865850166656364573034005975011887644281367580173041730002769880447717789099762180973804121758690368540530427505396674291515282300056217742147942096569455492047634610158419324705582748366362861621332090853533838313417490261556908736068369351097141882292531509253297468722558792054367849621375904788778437905960022255714735269698690684536739333065359597579997239155785338704166183930193411268638194980950507726712998286147361730605636321895337257678181619000679219941210824004528139134397338192268258980300817251325814423018464298853878878129780774214329360491248825481789447348550001104506391691981317981323778790899206452641744543698613750123499893894677671442584294886283362576315839913808528765341154532202949331924948863246184640446493997079464117018846269143849634698280585646231466781544593505443000722670345562039498050601166805129765173981046980840913297023194520402335580630113085145812220555650573206473882595972585033999513257450748865917005732777983492100448252296286508530884965518373812354349369259076309240531571825597664956949359760366128306114907138408101105566895882743550286655713848853479835234963225859443429182773761490463674518974477920047553121958514169877575891784470781344836418686531933372351710657579896249406794695567028531667615376443597812997668940759844280115396266813143461407047629250575689011258938615109188304570416584462476725067039722546967262522276940007000609665722377003799549399694133962956922164269349201962989589210678427287305487282705468384746847896196347465756833915931847420336705789653976794263481337348294506303803180505238192430332101723722634954363622297395015299098215784030448381989720809629594022049140469930062933213157881089142979033263948813466259565498782066361715490827537746698770706734157696288584910263708782655725468012925108931125961391979025747940637516989886411478761078636155547052921801693480262677487968766376177790647716761371000145615410042959833070405572741315374064854182080464413845310013523263258614878680265867831514005171291983954464308133607159406089481241365620976120307852058626148945899402659177379868262794084839899697324604885880795563250060199940569870737165200068348572001595638209624318410067518064956282262191136669725272763397818225781420029330825572244191063808539251013757698129227256813811148443448509561905189091970820961416297282790331545823242297486951369409864445390637420804137936744845836061270345676311165728744306056751952323554356243067644213928552571119164128334381295022121162159971254477412273035568531008803268111463302422673989674106337446560956604770167984183369121696716174668796151647597654887753049660771275854931226795789544600143296797635440080821402255200714273919630128079112320185958413841649646658098584217143781062258739491839133677319702271834988340510105258694248760687004245564604517562476016025960379968453844766295186694002646104498346168075070356671309856598924202128038868415351750101086992585375997893322261939630986219446015861545433663403882515436788848721967489343791870344813693176052433458474252694381667402561041638923090813435400061105247852913012507201064956963891655755379579369789089838223350317970705889685226214197504822155766638631729074240430880721172544860911915698777968392995103821092707722455147981328398383613261807898855184721563843388685303939490634924719660081866771512325465069592822132088416430035978263821686420488946448339396358262987817467662960183215192958185205740063499835563308552294546530334078217475698085894448339523081655216847678398022206858752964740396244091421738507153264317802533892494118549501615123160873302614054861145229533603355168408175154545790343042024246777817857287828937970510075342263729422423932226817132682103525161616719727243661219700916888297841929341626993036837247624748925822210600071602301165968488534773168392183886906571095144930194882871346837524967653714677143828118063809553706332117186605513112289105894024417357396227774721292341667327553930758252815361988149884752168122096938519467735249559980705434404199606765002304426823901344176132592714303603493403880758199514457623464030209774731816409450471479391180558634775258362058566988857848250477010650347266212465015882986747038500434928515870580143905320697333287578869136853339742281581836910501247934767927881140745248928435420579941642911156550368485302440830488219892851491230233062472592431937527955329440152439365132534411202484275840094229836473501248456008022780425907088121156900329634687333178030180300966508336161597071759515545310640801842530495973976139042946320961080895782893753496728402529786255192996045894263243395772156475613804295356749307528870422861628198469664447894830860155596062719251556727586112273529062487612162080090275817421302620097654085697018209610458042762947061097917835491446807281870513706656101652080956269602020245385689204339309854974194315691700198364574595301872377985545907411516407080087979508425342213163214865007321520166819328198998958448712292371532436111850894252929535326513041067286312395372877127520718479789250746905458067499760827597471007277231473012496207917307454998644607534963106075960700420645756027784507400974419233785186184049014303278277227607936094896501627514090533805381245284419206729921737672925287852598141504214452571400090125508879253088140659967174565286416086376338272484210654225455121872198978599342176156122814507032343595513527707311969376231983539388705070715693906862278002560353939528247866906752559032718516140437298032851376043394602965928890794453241892769891257329141685337302596729628326386581229604171329183289297401130179563218157980705882819841589754724195033315687431506515048154749036822442714394891000048211494045147349026261037529304367010185333754836553156062187332416582193590256279265593258743194380001227563677656795780435985691142145213333041693823154563500655214760507212449940423107754764169365004102511402572074432684242649760170235543844570679078420361672922332378682141360945240586453326386042707325418259048372246027998614280572548799096170572129311728326319125749302461289129216374710315399017982946209010973147999257129662847156837470515181280552654089741967408369049295328241003932136503322305083244641643918478468391989460048314875957749389079720609204324366358798374805449144448022256938896144374022064742616332134012959742256357024816877744806302360191723255842939451478473820871292218659716860289173454457671640798602431073245480240169350233711446538630311182217556309858891234266702392799673370449222155997158054496312486740316510718934603431732432520630685849415785641646664915571848452963698614242466798104072618916245718710043978634484753900401868204941336245848824095964152081414012134111314055017618835917689282929167136118563692702021061485386942422339281735363979967320446460325785732722602962018461818694217200523953078261040876658968641272053265163556292348440355852939559305778194162493565593064567520374323440453016357431349876390714920786636146519428313112885281240774106750394951230501370389372250035259355036588395147691014743256511140504806041452336174947731218990375770170767351849907454947417021138171147870430508743044624983967099932865954761715951074974114594922235274037052215275674919949519316576463409216542102606579252778604012469606799579049312963912127105092406099047614334870310025638244287798385884103997557840444012650238553862450192551266938426264534120250784228029521890906317183451017290555696990409330849404403613629723273498277028763385456375103893590118064919178470951236434457247008417469012343263122764593325763752274546220892242797298095491086985368805736466414627261595656248635288900697024402339276090024363922511087143313259128011713628042159304213006461667527354173564032889740083680485180697570286816941526075093485128607286702890807854878701945329781068329102764412932059577086567270300479295877940511508442958378427932306856780761708900121322637131234966971346893026271072579722317861691321198147323184838480617699005836725631304656503724844979324948329169621586590341957016561344432234754636923017255407223113730722106412270606243043695170362900618911309439776480757658505772594306961440390787778937723385740563437326754666011240304015769988209029707296393374801807452086962295792945330662842754294547341349675753237089322500018561169615763127455040042549966382022869299000781031894566085688024326433931806865740549072529873735797263808540399980893687907158694247388590983012103090504466005347293189726654083920813512157693895602197389605323139683398685742955075233874675042126809737349055777226394500298971825356090269844085118286311205313035212580607210347367900832801957478629784785326792223672214844987682749530701231143926657055558251796498442060500885049507547176799714650888805844314884274707591190256035340292197088858236410284394486940598482518625037901520957290333863747977969849013562398733391843153826860195183874995502999178319336161389182023472099736051225001662034507696176461796945474559511391268827132456425348855951960910650838813892333382021164245138616157042980978210065700054109027697052009199342210185949250738805286264446498504904442728157646588288010809638857927009067441541172506543973094945705185032879738184132581897154591035092157662599465035086204270377054233470024944962867743000330863518063541508460277690018496184374792409721891242729715932671013225718209783079706823692058271230733949332837429989469218617191602770350804905745405480895094330023144271144114251970805553343571248279935088712507565821522718823521815924741671933173482386839446786311709910471576488097711232367117881959315161770431071353990844460005872743247688180577920857713031059600725625508281454611810147352000209449432474207301314953046296872322886458120058147583934608307914467354193365384850590802911481762003783355940765378947845633418536906492139186048453635315579764802442178955286101483446856817989703342873056696549034038596994173045325549790670235833540207062218994265521221767815960756663602719883339627980759372180501388330268801362552139752742441471828060733421426953256024361961883686415128384883679599174762703407122297225876277816489538331198401813767258936253162574909854574626210891652129764838231052299162917355870187792233713867199404411639375001777724541311648064646371307725567053688942681890842041569883632840547363609831682002342340428095663505594223646728682552623526116531080401476968774881422620738112212683846123502271980393346750894786095605005923101267573097829452800222373739747959960729696018606938992904251176397352594889421254072632946740597028239542201631833398986265780569674277039046198176527970153542015300648810354212915381586374405437799035388292607857464020719999589449357886262911113492378204617694072721910657736100515272758207289601365152821720645979975721544139630437399568666275524601414043671226435852515158104973048838551235313109320087572146525636773135211340663467624466903764198687909572217319033191748497593654736184602579690593062864323086231354172799917715356284834519467631966764547403506631458208002166604757562228299934884033847211080078519974048589624462573637224419234942805383462539571902483397379021665970690268857409480295697229663171428507753698309401241143352042919671276652484525569710328681713243899076352326834333247250852491493658610242015334268946355696370995439540057280015560182023057462975065758385091611044423491956176119214767953969697255572472550690050957656560088872837523869285107543538095870163867045737194940847709973638104311361503584701992927546848855204747673740138632513104501017881825813477592505552374194728989705712770677379365354455304509063852530483222451780335581569231619711325406254836603861751049987855401402599644048453370081919558356259101649432444472691582398427513741534379096772580149051257752912553834885370214076622941661096917089761245830985006122063962305535503604460782857885852201639689918439696102981074879826599208823363559245654795482016928320423640013796070160680174167525418047645341906767723861571917234140045662902114488225421568122356178209770445169104644997186554881148807927917995662565715164662240086224204841400014844079200020611746716172818902522261898782838220400967993651943707242846691668183481683837616532845312905123059546319579373703534556751704708687153462383180367622457856435749351419772168929452036248195774731335279844420627170751315639255361527544669195289673730276988444408366082102525437127668975864360910082985589979519201147300870660933855229120359854147710737559973159805177925183828074614200891333941577060454612048728036474759469526430862711963211924455277026565783670631876516605129958230987830951778399219624965151192558122234984491272387400228786676503310428595688356427305636016823272816579175110587251981486274946822557951639142970541070851174203253776240652016796762610980092100051896356406862858504596348385550864132181911926970371086334672910687490153686080696482457809035363140413643586718712522741542454456654478932005700589291337159683634976134610146464460580336289341529448892749801254844576436267891590859837978618202442685717102167324699466427733545426365414360434919246245247771427919353477008156826607581323813623465566408425305972609229629287330650251314467658800356359724915201774661096111877114147315430833374636020180370589771104519227651929450268103707187876023614615241104292653699514706053230396831330441682501276636309519243161284869203086677849588029460326036518351330176201994395044894200825398652167708572232284528046153055758449372582614589075606601897724137016882028300381352157504870825145150544841253259828084635457246922112312103501313857724122139550263573014802300906611685263745042183883129686851137184455731840122541583832100473681526812065540138316676187974230196425622588721206363834096147333919920220418868575496302407944767900359713315899436176213942642566656245849791701455953700985603531630126063803117444030091710002859045165671927235965900144979869121887196530190265575987382889602496456768413941003515367399265413528767158579047494741140402209141003376078837438210500792380929159657920262146794041985884441639825729792747480001318553151359192680149741538849481047230175903352545344381979463038325165063106707967467376192818452268690355933587266727566623409541798306921951721666506062017566879936502931317798504873639284111046246328884067705177593336214807253860917679472916296291516921806035779567058359129412070112683889908028190283899136863619035278330385811179560547828798537393509033039910043775583318277462933213261940732677456969021929741506285496914862634214976645286548947386058942673583913381656591708675051755219021806122898521455062620642867933037966278194574111109572838095133217656391562882933727045066864879283749165644784116313944420938346245734397861984136966651219617582575152254602800329848444603166705596669890821406947367684860454968662485331877622408940137825548080617225471925186594229361465145306150995047436658655236597046974891999737036875969024622158073712497228602830526540422129194698455923067812860122379824691136312302647762007536906158756548449895557505525572661016714333731147421704636764652871827517822173115648893149152143462050089578946572307162426737467344102571577296656745013063102098635087814163549617672130326165121204067414214798039747126195986329291389367156238811500907138906906029460098565881627811793574176714964457810645860860765725219787829352437379261218662601354575077480716661807707947956785293175575994755585185902925210274721048096491065748908914257208085219759999837937165275823352636344207426122735006828379696542718870342857380252819577407026641831417934113353502735306815343154414146132996628593642194314594529937451150951196591257639000394585201932670829418283380707861578003202481383990532158832012590225718106718883631516228753959417607951810396942880803115781432274450946134152046366979441225674630775346443234624082803474897042859995771898796946747507239373348515211019682557917277852448926174415301963009676086966989206980837982614647028714135280082287664580553932957503930170708635307505902749942544183424565573129506620002008024841212518583150275517042198961050300933897739065215767310721117431096977632069441718028043301373363165081637620601815580106280946166687639037825993244253608765179587769597025194810434592010590828805456490474660292655970065166521926582393531761610801679664629989140702789142919127542894816111592197432849256055172677879323824005698517589580739743099078941603189488420236934221265610178155763783359224732737541006873917188676857673092371911780352019132822578166598128442424552073378836771561772319444358260244647996682073640770531714278513601252698298197293897222834002838504694393018128449896989020459811231600662221782088787621625747927994118321999117411127463900441355602921594757500707587505402254569255926428254598271213264827572642818564451740354565394803977712276775625337241777297499300216058551518629531511266641151675454730446330464648626289898241438280078386512596869157641295897779686063087003657577265795614920082653016623902225534646087383940799493453768872812530357901421464286094691878175973219428032736732528734782235711008785646214275651158227832572261972990105104364553624284511814013918370706862359255146494027013728573960903877111545674545259051739852837060417107086004526249982762625509509937507284048483513473300633975884810860740340111108887541487299498709762928653757141715832659808851633340941532307222147848342055522396544638738998583905396028066371169520827471182161149327246293428325770063948160586394222031456247754964363175334852923374815968624466404856357849592616111640660522035994790627507275293631915775663588492491673417299833439746006940473882454297655226817875110720949445349938314624924261603235570420970299221968695429063007603953438806836037710865169509314471617094956265489333753297917918064603875201969473072705275021350915659124561572229445859077470447296164973859107239067650400548863107555761273576831510849465049066471626880103259814276110086487360862014112728295835396172982604614641978846347652594803897531539379060885228413900755560457895561653236695436706645988739150429960038673496532703450778190081894218521373848999878001966294338815395971078605626062217952544143494964984406932629320826891507119446421940011056304479991599476445429948274905633415287890126342246765288564233842154110632355167429625205450121580760195440120978855245028202213728443640288511498384013267763593802520958529986111363278699886220639717328234201299593321303981673008217494092582604862604006167774465175269830127546640857311393826590006991864800754428790466960204671887119582527392957964848123991759242811770778325634166558142384907926524541629385983512686281703034474774889735133979694728527075361381221803132373467695706449534586336053662448456892605140576377732678103719433359899177721574872603086478474391592957402665872308381781511814367462654086726727056957113472234240938500792696879660116555660400464152646228627453312067754716543000782164032294586730490261224818755874955735633522251601832790524355213347100174852193985156942095065163143346901736685869280166976779894757911481372317401982167231860301896298679656131517365498151652539578360055221992389747566333931966652266445048963049851992981087623903672213800380572328623385829928317215642896037170525468446406577137972733828035105441640903064570451152964479029779468035611879141954297288369407178752100227845951806597745447428796804651046693414617678352158536575235719404757163887132076309742608162012387598791540085400415738435597495683785528437468356164837014943098218072970142742602474636730930198296538191353365902109364916694816558809480929928452283905651746593294854553301346854449095437922737293584046246473183626937306922753172744015961450451471135891475710439009165982577772369774265619888963703242295713776596328682314465894751593730666158204534140791493430211442589855624827243468342065427361985422756019189794147246637963410886693387601329502116172740556624472458041330149975604262044461752405525408385965273397675468400299922343766771954162489166309661630662548475217482516123156573902585418213066501374514771744041367017516057390122013283131924938809282671101029488046484721291108458280415633232562235388835547450519440956410262116262479182420619265612989796060193424128822924806546353971920374343968088743384117573253311196648787891180685076784601618736107779210922610955529115979456718137111137910682822780928313433081666474219079938433858857055910050493330689418524585633617534225349422573741527324641352190534880070708292931985039669637746743870559859519228904608801586959276633763591200538209374476654826559420126650336629205150424136258967191878855838622880516400007092318873245377769829960158965237202332857923742330990169080037157931036120065260381568899013726829611305258385332707865650193169374485063760496294528012825930946300983005222692205848057568461066503868437401450981398119794712888330753994979905080050797085414647658922792628331223798694739988850494256949655578115850008466495003764720442352860162838667430929935107524979483224038773623600181995994813411027582162527775811001325106133362896957625255529940137980665918315537951882245966419419798313805985994733813692131411301499014171371718280944304284761315838796241632397298061286299698421004125919698971896281374187770115235573552459336157691177809592644512481505798238486537000498706005543933592919360509758656169927015763408080626290407219640083038028948959563654473055054900532500440105930465976002483499855978293596530990760535045166483983458981513409233956122931541996410375428840953509482131031877348291604399995266708690323985169372351029708398846510779776984352521401582121106627799045410970511938078130890280800069249666648541850868640828212369584964966053395550163567083931964468577310127923720768743060087250474824155862043680618998687456764995708578870360232144577773816757203554319807414602155461189715278513982366803490558754641363045208204933311317608762295489992547782555051172035280976970467563466665264359662255522036673167658987398373080926835643760417169774528209521026469461411846228901771403776558108783052964229639486537173092613322923006324487938395323763292079081661281003857561021042599578051968854615809465897266669890939900278152053371838251332230382828445270560888772650873744602615275614327331120130348500752392192377610883056145053164213129418689940064419139135406405851793217359438309552835703527103709121984951124974208085889613644650447410892408694695153023666072351381186923872423671773986547535634219688158637296846008469371004126120700987393182512800280425022529352815563181989817833148979888513721016884928730768697942447422601278136196720222140599295813185347853046223262417633466552572665485465533814324814722282397762875716885268890371193184058775213364062516870468493954987424162526027079894196985521915903405711541597616204625052272910270896507463628450578354891183032307355880886924635398255784617850726965749136303760110232302467160848575078984418050086179539170646226853193094137152514962209692445772202089211091361483788638212325988717399948758935242200241852763577894562389814415514655520756928727731755165255543914222507774419350902552951725744885132551739539002213080384933978341973817750009505177494412742591302319007165700485919153801065654127762652895464910782378128644650120030717292321806124643718305156609959245520401991887807871250497372370791391770500054344792030861403965639990113730335062174257314387723694694033598147415977199658151744527390426216812415613072978509129137850719986651753112019731398911426567828413192491122566273472635963443520842143233132297996930372432894179354758141436511017885391454636402985542976505200939606105175875987516836178309675334921347500810060653885130742339032163887267295379134335487125839745095289758743383806858762351725378099310991737878234453976310663341629278075039976608837510524827044681036223408533412787950314927237676573850038944409419951163358550011412866813518837645987789161169332087045112345653197104104821002954234359176630646249794127137515706043718117028995296477373333976142874632966700682909757438298738345985436986148865866174832541491796788266094871263136342358636864069520218059139453250845486639374621042688260375169328398771476568277550281530580940309315996472696381871304804615672834628905915397106417140308523636475914443234776551217286130220162544765735075887258360594962652126156068103677078287420916765383853992925777864452314749310968435136962716895285608854404139371884793028895057479444015122679499367394806588775309749459692651014451742872399451773980344477185867366741627886495075504566014499655589983292903266200354124053511126506333159670091296227911323799742061612490868457567308251479143142819668212949001183626856942350372968010767739982312817695649029650864207600604580058297035238205621398437811290191712729647533880071600773365754165612861855134336023404146360818752021605104059510934700283473665322095406705596038161884332165218291451551873568478389051092448968721059614126828207732728820748833039803378333928295333172003549210330919770809849168932364563863005837352872241582350793911117024753395382491464247764397095838845348993627730677170139732713152122726186412489514550742975229470530882581209949865506738588199095111104515334956421503546202613494870097589028925266538766102241165032653442797819045781544354216590026721487610942823098119581437595170938246984277071508689296937353569785197151348037399291272371131469795894180926289289009572972682477635156070723371107236063050189793485818909552138732145115553536944298600051322801491285559972209203254551363711078242022029571648162384516467628922162619951335322064424764698471644969380947626189798176213188960308922543189201827586796667255376037039133143077851835052544429459787289442511798430825845423359259537824804092555691864628604217435490588882539920032649382253737938185553396330942078409373250850719674942562326412407221662650720439592643181322062923134662691516219996501263807207764416220701192660048842921984574819334533995074734239273925585414464329877830134481787912272671488532038049564056778735862601872992392266218406285527610284542982836093808220165544606526207449053943192613198267535068272692131411439804465090115773275323951732461546841415384863368098303786709550447277570398055806341411069971391029091649280205547522072263417455235997852383301577968501412738059052847025557318936275940884780522571184087398773960809114264705476217832859002986796770690808143455773215042249207872242111448930143263485643456036123661168533668753756769131783375451253738684304419131962478515401626882820636441173456756191316027614093243327711230676566866249714412347515523682367679853357316820016782623123109303539673387426962194848778669638690206172635854287351659560391302581493444531847671789974943611118227579157408272385707319624266364738707121284081320751742794754034135102030929878746241361472846747098058022718649572090357114059065480936437406184201125981035912421953543564170123895192796830477183767068311977195602697112146586289986403256755852201215578774720865355064829871760539777001472428165036851933891707866537730826795120407143228109102776956925059630567787444586272513283190185385745792354060838707578139843823553955791155686313508045594236721748045469265991211111219440255782800257411735182643813776680166832802542298372782721378606900127499776384325140417852226236323765404468788856966433586683360373454314986898024224009196103317510877228923501197817388370220032085463581685696449504850018050756850036730691618920921643710478669656133216988611270447081483095073744141828592231034542065211250548887034423435659821638771681784845538604735700872617011865573715273311938368462989459030348821083615011471867934294908569848996141952427257850950572306582651959644369704467781568302802924631491494490354575279047404706591467511084669488259677041323755288376267375670618517929192114766939929667073878537488455039065790105828204720722273910066963232757931149072809220586442935082523223145379437254276789913928425860074022970310981951120108367498455146638178180308722126045158959554705948789401700441305290324920970006970170594778811897273897303518633514832092324781103223953995246186310189545867660302535115981727164126001500689189075967707548895302031196201356033395230813522965104373519629963371875455015592888897383860072659996617723502367608990716694081605090165573276151514672708614191312200693112595933761732377217883877881905910283505603248381000777271977837603659493331392657673557226631653611275291635373674644880974415776475393847567671160178542470604594935179450277204252568011040861869297279906763539746342725737032050306098182264044268436362559659023414761333965217839468441179530879656262465519816074641734099214976249253547660247735318850181717601042241002425203064090886925342776958122246397335348807273075437094334846270502000731545171569036699076172450853125684404324619455559478655345213169503848932392806004191373887266572172956287025422965233797203076288153583649492357648820467708508945238124570758990833483262988881635623721849520399027613588419567775567782390386213823346239792813575653894837673063664974769050842970955031484124765738816812679708812266151824947621575111647029330083295362318762693775099658589744508044744128619146442459140297882205387060876450058723512620028602070266782285334607365637300638098476587343797003422554034918368882378623270054677798711785662537313245141950467478292736129396494115506715937865549620227631701205120160051706670900732569617670821223577255021554223012014266034195193431660060253977593954541148649958314773365394626727484063844617378191157035027334929758708579228411877865615565133415451694324029467363037150909411718199416318375499110843423683386815035524229293449765349101696284835570594190769931794209071674036618211400034985416009519094480063015264605345111818799192677600793563716902344601362833989009335097577366031969950871199117134170579906911986582241009009680136641048970628957775655028194577468530244089234987392160570976437249845976500397936231637213326817981259198884805348333435885033050944262637313530865287546617477076775811255989711242314248194113229563655332589923806901822423805192639725490656680709778186789266595173383872812185266671559433154231337317661663363452570064282309693567960304547477702088385637792793421057995618188951576388248100596401276631114829949966254778596916960633221528178224067020786833394783891926322750979761797658129236235819532336519031460941277244362078514298597508178296403058619296163128057431709177609020384125471052496612258343933427610761137144152343345720922741626559465091331950557758252202302633479454071940992018896117399418980806462342477386167569235216932655878437648674134344981238868701238852631925078297887901693017434479611061081770909339977401687503934392612133153713716800972520312338586882063069369817730477895215828213385573136207338960237591033416034425911861986812857611623393616520097865895802315692401456061611489887703575879628133564730344906773727283308372163328289295747043549174636673091409494641602374061940922625259226431002709021044252200707895119217847944185765374237431493128575509152224845484749096887993935496323420540788583591063913524691729045482686954882870365690418731670555036965296728569418316556293149739703947296277402966372122202966298860422916664154543590247108424331552125812074172619261185192955239413797846802359799120972763433510528418958593464355013781473459786951345235667577756497002565803896414082948502911826851680617090825451122352510808870068361597235479521462247684450220262022063242101580066373714511148554363019846648455769490295808399192807134916793387247916365483846039013482746498010836161293637207650468021188730263591906115630722413024432548654753548225806181374607907575040465689327126261708130229066336611026089301262101000080108659819325619527881869281970965899230073091317800261534931814920861628875522049396458035774914029721283036185469659398178604786585801727050885292047828156607071083223836637907483599970951843272388781084230431786477787943301125511275170382957353354725666777602028061471720703930127446542250493847043076216680745804698556865413588230323172406152910050874245522973558998344351181220719522076738732501478685183063043979331123872045418566332445506370814600634351001705083449477611327528998469498230544012063028691564915149972630853907639476327464346885106853190696705958370265747192804746483908362429019135993233353005100426575504653023510405399307609396179875482848157111480230834814630227171306558556778574833185885770407200947378404674431485409180753563445072026168065797050439166276200214324344499766704595805109492085859815737611087005068192583412027730871028638044616769662198127222943023459790785425035207770357258753268513824999530561039244011982052941691828496083469525585984367944696923651795964537684989782602433260797449454512299965894267136499406636683149565350438601664250029917453973321515439533966255904069069852449987131116848956719953829562332244367605193343509912792744117978885872726081168851673831228834252490782067852730824655540339739617258787448768647246014719571118451991836501607522385369564824399602825890932675931030444479418171458410351288200187870180648822695033835516910042376741871528605104301565670039682470262158722527554242837296299614015531558647191065084866521403060342255169339780281421242882119217039614523319584040580715202854029982475206386732740799958419504683395298157397617416916334195564225802507322253683511331826719228637595286727439778757574699287765308600362532165650303179999248127529504889901180264849298485064365322393552625798579912144276602824010206710457106035629475808442723590177930435286274717960406201849294954574283138138748902990069270649418860804899361642755542755932440058196847194374919935410526736264048105305053377201312088815846459340415343538556550903967150033912236243521357852607811514961454022445742334114249947341730899519595391681251018363176890953224961512610214322680914492296468438323105097872473699150090299351691873290083663358005483738899293971661936675698996980714615721927586064625965975294691474608929140278756592416912730046890592467419121410537256591374400767141993388581797251578457091099763704933879348858503912691807117781085282238489414093714093176835310845388568306206254484848836133472000926455163803232289776854076257557331967198667744812141247447670842539207154763878002844014999612335791019475825672850804952908063668825033792552732393703846358660528085222614574465357182476396844115210885927144615110421491527912341737889571350726942056001519807181226303850860360893552343677235696852017421698191224665914214626119432427762420257337572891653249365164798271948954643161060373803313150069554966783529633884116250238704629495977042144905455382142523748779608344256346268887383023893579865917996643161412484636146090188247157481327908230097975336794727015059865899528036343792660272297904129525102117955850463570330526996506340213646505803679187464201102269608148211436700945097826086920378289311331987079707673019210654409850243978708667792646732472268717290335878697465239770839497479085585585919325794521742776980966858279741675142109058458911212591897821074232123616910274416718304855848405598752122263729109396948023958506228990470616181613647754048450044299571801559515605945433898170761595228030946413842374713774546801208843895763453415276332748363476613818381580522789502243124981562949484439578222534547915147873260458471142731271011449178733293476133844729077444599510621874302768716308052340384882155244586777554092944558101473325125732331520068550432971953658919158018360100964562060588054868550913094794074828656000967588371790659456372817050365523035812432936195643076398179774607769055799225748849826389650061369000997638976180333611852111745424315398639208138573673330139052533982771962546069593452320989790828877042268413018969481820651477413427907096089758913486045436689427922419396054680085748740043709431085387203367358838690981177179259326919906918693039101463451793333954562141404208788749625493010291435651044487944946296304872680336252347132139639956418927329433135853519112387404222066326494237930974048915797010300797049366725271583554568108070271042764277867766780886531410520087641654562216391092992379680698810025920880718463848745786095802681981936001390952262961270918381072637629461040797074112751199700055361083251688525066850842291285128148701686789915561053865457991089324866557523248109571153150698719681446922522104471773384339892625675170780022250434961411569459245937453710291831544591839634160781261954121246239294093356395990394714167485091967424111109363530570047798287786230382874465270662075878596053443702738980191462087476303395922125710453775449420728117993048881730408559269923559129373037189410303670969133490786222410375983488945812780840296690562336881149972694785657746509736565488669910496944169550251932684740999511674046891177094223664859321527889254113197701263127229139723944014468097876695656424687754921844906870330617934695097362842636464904876089606752412061767108325766840640077583396844022808244266048118222760511162007227138306327280694923369971170362350362270704866288618978011569378822634082452674543612397736522016985235706586294327314552927060832769278470200925280845726482766812840094730631569576957924189941183795352553497341958470625311260189706630443555847724104166771221530684230442716497683505794739442603100712961932929836950819398537110699028351480003006396841406683935612194321040732431389204108442609032509662505524760835537882339139927245828244250498676793285097973433106775793257164705704676438016331118000695885691263214673519255210992852812223679865720225342336343008175917633349035918507850131712686342627134961018129060615863461717528478987008911198353573966856003991149269438830161896988601041198145109534989047005540218088567130143314170038415934555314444508870867906768115440541111033427585373722127855248185634223353843500630414650412579700418102162398514015558196855881851415145121188177386382491713492140824806574657142820597429086694951446748364296882920340569702507162069220798940535859840131486243513009995268853229366180417522565654609326461977495161594520093074427374118916532976283299389044048233896195189599474011519978532260513526738510016855162719575648347633973304253230622468672793379397322130389982942417046759900497938027405127190004406336043222713164063874461349624177838526590656545111198691931046295389426532502566938703962012849573586663804902971124797843301883184307465042394973578039232493807628850057710180223702297480783982145312169876186306096236500347138723905658993008372469563661428416956961166742138319984625605014830263547980431867141100668068951559550962726210917849799379447595947221728004702594507216376940526283360250416135120890851248713512520524932300052583063802355992131946465002725529044670362481057042157453585072814703071716359266921605032736450699303235523234166677052327206675783698366066432240315772003130228943346562305939770821186143993360744631229503291739619313400857195186802626924901460560959078015172443006750847284023853901822322092485890043521693015032375486231057939621575590919997601337133459823417310517365171795436022969582557210196856207710003770999972044602885436096767241361694264622098333576510500096971506522085050390893105746495376656176127550726974463459084700010916947864910334456887386387724831163607803400166529521200117319918296337396766831315689539437021922083335649853696748687016730528546693463714786806871176757901559180338083591804399209102394612932397751060854461977563654159279685170244154581451279244515808706860085311027349658368806172583688098538052260949909749218251587569092223435086604038919530413353947267925796532636696613430809954538144442961724699077239601778281562248512002808137709534312821835215960790554650911769317540400079719308539883411980750528508110333131730711621539812734980605864710621635586436990052469361313468688707774235738075488653985111036949749957016486991819591848885983726328604216831741459365765720633185320593230543036387539074175020763400614209989183025444922701809220400677677111305665657326659953817670110862823810251265875900379153412015842219324109356711026810058100295227209170434441533262888847664887803546044197543955664869473051129403791298075376871230030881504676624247458638905758444108178664102645002002934440250084180063831870093707554779393740942092114785456807071479554330916417824101460072228168857550293099306311893173314635340958781425284452056340155523793350175372260156269247660321404194429097820368702304781837892503093182197581953326412080143022061226579090931213351144264454209575676167265082205407946398217622983009875650282470676390050942381775020832457656736988928452213362456730065688944086917289965971791114078964577938538582087323771455570878431864640806752638254143465449976861923188083747131934869537734518837902611298527012835452809847326807443971213220456861118263043862387358557073676742121176073301250744440225709900033483282591798719872216547507415344852042639399280627663182420638673995356039708603981387156835895911547068263267914994596514953125689498087104696928723111824372155322689793491283311782167122939101370926757394792196031893109496967274801644019870021156561059443658145552020346290517495866807975816792035769513920539195584255482815416063267600066648255789579242059093388841909072521811485893422065532911141558203685630559633523233244311215042186902120791083212506205822264681440616100368758680499482926730937621776280945419202700505186071604364133770185600999303256443208525388544390389518691038334180978174574409503458068386634616959448606043246623450383631855303626507947034634664388192616304920751042282286668488738571412370505166147399529906636360783959463228552507811418497392092037623164821019719820637918996785421737789847786777157548092970331589509712675298624271344437524363804852249354642865669200959177253981452365611510182822489377091183771112128375456513913533961285277498942476954862411845199105546899281716655825029972302432858764715900836525790822389688155131235067678184481049446516776118617761787408403047844426348871928302601312407401725838998774422167021202443206010965614377690034548980032266695853379867968349939406459704982648328571457567973124151028847215900085824070895850632694994888102477777344073605619626608443863231682004655095777383810816991996557519358063531358914866937284444923571279026643164241634763971585204243835930975956551155936997201198993109080927743154593961717386665818233735825123367038610470551404703542320108290246538701651896823401323366216148113507342295011509640614681953955388528418222688510981035157684669542296791427432735181475789155976609838791608723519751166659363626132652267817455232292650432917571429521459608471545704169900719653167373166020880063498918579645148226794138278086452913471722347159440461260421249298049873564518196329455542790292266232817477933073353399183972102897703919079145465803489801002411243338592878525621420283330179775148014046397010071449775369541468009298674657181360190051381267348628551198098321550970515838360161832464788837685418977878008668703420294339095530760804697764158431161911736564274110686132830126871504182814873210721160063257194673945407566350710618961356105329717080537649697695203527527171679146511893062833206916116454217416771125453071648373096986951757826439363356985065209285331500269565668495540110134759819585779290325238055809200731641428739009965303111157973772600791017010074192335191608057083386894985705501022592346993039647811738460090357051564439734424409677176727686897764507217358762424172026096198611140914457674205760499063713583154819194286236870423217154664148237589239054939385978130041081040524381801738978922196146681896839828072507049308317137439444171464020953529107040538305298875095072301779635981123018170179855728138604510184839079115816773337889931894873448821719609350397633485211915183822036733098973432243136440995901909940188438607513999368101260989029115578007031848149406601914795944195734575391683494290698471674433294682477850959623048650397494003875168767568259296243125223645579273311191319763465054246884419401829004545486308869938531763170196944008105027901887591990573936605328985636196940413975063420397844095444119893169033646988002545841928534407900137036120459116942205044474032446870185841546959155980253092724195179659250522105326276326747508144671528098313074860940685876590548607102474536438704435588300474812065300974033057551110210302580296801422984599153103362067766976605690862924701026107126761773732240217288014926853823739273824755201195434337193797517718189706112715223907446754822136207244223377865395378148753961260409887355593481281712299031268664310761980977111384640241988082275847446791867939626775277215403103277658658148241622710524498260529763869242003033673289863439087767425096019081220435979578453102815303723873627754645337720490172610785978373802275502249979913551703049301643435933059447368605123613635830099512425535837126843693475050203131610571432305980063046714401035921040194837802214522207183740148411484277947374849000104040523044333900797536253913344789101276310282579113110255611032066281866056571047909037515464924268363274769289199224621470261766619877433837920309580709297695317734077983197800401714302991855440856085699067091444449985983647208172698844897509558569243787613039255889183215929964499049621582374254369231892832912088258381209159573246650193883376643552811545699789838457238255345501657644090562225542083373988681589233954720609332442904055094012488443748138379797220244784835238131766676062950487098249962861913603818132118558538970202281947237544217574244458831073726645195646794433995487953842157599938216893864462127730707081492699270247042633552613508291925964106942948930972361717647479793971863451621414320081970001593009987292651991109150008853133785654446090950965785256457194237679430480602584694357958683769755464431886788725503358281966650777444609876383480033611905907577537160594839735050538687589094683091596747162767965367206134146487285508069706881320437305961454413667309608531173118490480072078719899541344630300221650695358888558418013878900800497154740825065673149101911392621795104450011922446029110838695963302227962029633091547632956715314942762392128970083542684461322615738089315345509663219958332624443268928623530252508962606846133718975424731824244869510366013336754898376959865755035408895345686748915803329766633663443836078952190028414025333995167445531666784494964075480235898562444983893368761761386639577685696069470597593692967803450329527106093740219141131659181645849929048720933046671122167568030950501844370396543955379629681152818046893669282022371695390513869739825847119829529665942188893879007575239737252378243091571386738289979156927739181056856611098907696632954688205342022166870177270145410843221073547003997100059120109487309984879609441714532242621148872065327173938477479794196566506093772217528115567438425086097238980474393851609144294705942163723954165680308915041137019226921608613562644578084337821892080610725384344118666867462154560911818030922245215568919517177308765430293838221929559071806578777540559435349255112864071189284976562024358059289341315017573218263284307661373884706126068506220986660214817422215393889410217919879052081977132324087711588929283266884344137087674906357909214435257239994931837287819444163469612258040255705384914273845425926936986673780113968541422834067492117856087693412488197186242243640117420722196704607415096098223633382686338953783212732382370753988163153980611227944037616264887841554657791172623360818897538309447180653344518976413524819860541293713100721554777555665881702404170648633467672101426452909937060959246504501030832878384099191620917541874485103877261357856170458987867136293426160060106385385815654553310366595040205824230848682972083985855586163212222881932338398128084923726627312356782676219785362442750475711116279098344648099311698518385042616851501954837461155294948166891518373908416451839456127185440666622064739430190092628899033034410540906586613016619734429426287335340594350316206944421632538083444806168981816428424294800201445435984646772147087427165643989420026998943719968587064809843757032607362636118469777513018013622259472509387829400876454013230586001054794810119195645396462744579026375287180026862680649852811419044731411477453267987678434548713162155632011411353565837893127907275173335970386775741894917279760987470264241809118999527620319047822984188079970634720217382455237370883782746402874083393613574079573071859075050380170851754876609341438658627248206102838267641669117794714496214704744096233871281386403977926433946472133321210795912534561139362877726560523855559260869822296757467104226767130835848856722826532131203812935795258935106540988888439006731700792244812067778678829671156279458940850425285682105313196039839311899175855607054393876063584038708792028008285812952764303047057558185953563017359710724270139947116855366660624711271941378301489130229058008389517564743963519495186986120662982095232652143004524964624642458916671318160545645302990506059166860379487220383824730156841603082597571434321818910719758024393910140618762454480465179755999595397113472293179091543806987117122001766342511803721550065455245620741369617532414154680621536016592765023319287470508603655399167920740453871240221268821308504320718669319972203811014574964433508216122239419146745813439346900162431035838106353724530820926634589011664492445431191324748830378362828265429714741882624704065663572253805543971069665006969205285098610990034239793720711449791257449285543394757235263235721357872162598714876758534036962452261054582025847586786940046305031631451741437095292747010257595515805014016309262062275559614321203145159205260892070570897062161850780867826188771043124917691533043643035911661367544114083524686983510293718039987570399049658364083005309531724280616795878033937481148526608284854230911254199263790351874372765564657355232280711390339627050201111496225407494381420558681286587206916594518316221498512843451759433905795407942928373276596215017089493143951956453832054996898800838219900308066484981507862523597915148451839451135807777316839136377007716526005333719499932356553057908464324323582881021784294094278869056379729067541435146128751607622407838922077644341645574873957428544106248151167188100119281735867739358973003594935543697017380029865524863645034887588891846777450719698237022520984408027037514554525953050117746277601663709933926969840316601926438482423282340150529783734095533685346087158248181653095543399749722813837424207779022945395730783838627593923635908781351980552205952010586850229453198876808543058860095356097639754941165191480267149012266239863458848008870083138678899128810353425274084898609773411207465037130649446419663312591413711756460484918581169211539485816929062350114368578579748607985291730534262300563581645983018689469848394650819284661762849262154853764357571242788758219791033840133036696199612604587243662609879304782766881002342728310847052644135565183956742992119916106282629128268554699278727100201925472388110447520539452695720369253813192132819393203449400602552507475902405277172259442952402208031544595860626577385915148081879965230759384659711262412449237111121974581305731661783019628948157770871162942675001248957890910813220890187943460504675209806946028120405465081285083131741119355202348508377109047129520209500840214501271762660212441236361435838934896790863135624960554763154814551268507457778088378030806713633562558313843080273687429908374228710165637281380156945954179527234394153680479733224520248875884233391652805586656429984706107723206910418564712355348048474555063979176202260491847147970476458534512402134272281882032202456653954855518132039254721501617127888130761907370988441663614159693783597077467717827713006142124081627075050700114348385901749311841403296644997279218015667866195497670921322611332135691229535789926907204754345697119964236417254233615739896346214246087950806779523042719874209168115097639240198544693829093589843892763741143949737993861698831471400292944762113229695729637130453354950587171351207263428311533742795668557173463251852254919251106829131371946153528040314794444222749037792438414613171712924127968156633089650688248959118692744928554616988570988957356128931842767294598792926241542987773868963521559022568700065321835423758395663483374765349259045987251201581860930866839501277825009748687320088611483956519104927884308758674340040357078692584119447199826841458069047399423489793050591351507102305583657693230286320749097917095949205753584782422691390274610533191581956586476993206905953063556966590134920500788667674512454740842286810228901156174946238247119231588742991052653883319655206568517246903855376905626254374810423092419239918113324929761887698927154104283380487825689393704873122662126063492379135164261823463473672952431662234557538394929542289634426894813547923752854284748294701948319453805042256290925805796689814896392877299851708289411179503452700077068865119158063750941616224662068183669015949342399610597792895200421254487767265648077733517848534274989294466007718206232299958751738648787967873333454057738686297843458629921668729756535379571260898525910742323297840198086653059026722124179533423888003646379681943513460113364028112047404700553410199459548868624209615271040046447548701952659419506099827917680903648958817803564893014482990907745550829259841311086525391680999051043988497820759607351217721912370077779927694744159318855712545698008716489635012725170405232221811102829337289587093143275707719305558731709853881366017910037702086347546866250090516137080698304157101226890157719243053855093701947233446421838001084232929229492880209198704735400804001624612637845816370729641491252477822000035837356036749427241953876517564091190984286752627694229857159244580085574105995236146809782757975822433846097115241559448030888209679176612160927221583854040251705451165007488701401044370784733041146132993693508812734923523162752131021204433508711243420842838031549374724959269247316393393655206540023639720109932767025954431972112144535154176820740019755472490577016022082944099876799138400592424719677096804971853558084288569983284473599305476505489827293701268079661554658452488538642906535994504206402216489077238385210680881013346611307708149648632720996669633732238914039280237672844944646772136999371266053862779903875809698240067422658314908676911922857864589565544234770826217653149545210406770357539651611211235170733557948372282501291091820977515637558958917161942853987081023828095391302648631468908895801872180815619784256773577766753235196304871641129828611678317816210908419517269550031479526745349139604460099878351309558919220560050303291244829234085164599953288405754303968865247543807200855951966388394129173172640809554500780260087966035066015028839274871085188829222850063279773057854894054099055397071967313561149542128909009254175316431375082668128503312502053619765791104517003771682420166831578915743675891516690101416099858525969143262005420896664959235632789183668031288932579192932923255731579035902253621687829465418737526358721431934666625341171722387924566023110139321759253764011497234706983602749449161794195074849161860291446965294003086105553112332049969648747039201203608070495720553920685526262388551907900459200287455401743987729415968999017594946410508766649181194502755735218366170311895952592106721494424342831706301571976028963330641007609841642593880757384287669414281238748184558864084515436461779184498062497841583506650239566164630732356355127016461130166374584522005561895546167253624856253181781506227551669803582449735226886018449121273935729500506891333171349926824364948288486957471629642914514793741726334102437462613985884447380197383324753279288416789933616154041493544590174445389891995714802365015760116818691527518248783675137911450739348568906900670952704641897696819785137117130995115638838601313098217304222284600121669224960065959201208095640837091059119546742106477661790650020868547519600793626022201960640880246625441183287673726638570683766372035066876036065223357087886659876931571528964924060469939124990944740757954098559713661664789256461020891294879761063281916688145716948359978486743918805608974887727942952774351836265564626498587064759431897852635768687251171902344428872520660103924723696960463988271583861037609295658574500225336761964219283593357170614012927820446492853227098576067940379750027719856179863444073133716040076785752265256067918638476026595020647568163289125768105407054849353640984503984013969630172900126575241166304465035602657354021540531165222350433425525158076969582923211188470957739311503627241795474866668255887500238403463793943771393266234162099648573959818752102438703874935181895927707567378310328054521414189905966097672434318957591743802951061370084160779726522581766157669122583943700394739553923387593810326515998186312518844127024224078483356270440586680873811905191813043997137122201315499705778415267657702356386885769330117571899232074154652782694566944590734958343304511473956743266478352319160184638169845753677755074879864778539752016757408876971412386266652462161264523157879574808571099621675604888089537470197049410536821291039508816613335489780238037729018146282964747777309559714897831736827033970662947603732127944613386029744505771205754502617532731163488766231690569199717359466323418233205984135067081350698543944833892131949372243439653955728376217299349351780168676104812912957414379329213370415876528621440012589657340975193573154873192384751209007425116725881256495741033832964888894594716987431271650517835468201295104887659822460819225872994315371922797451986891648809016044992866128519129055544382417392641590896628401225375226770555728667222368845199755610027239999921605116293696328687142292112028201533392134318129183611446418062565465674441936361133649387166469837721357638313528934673189027395306008955470339055653541140278725935277549387639085260317403255645066589351820617003076413029985092505875819822155104189727687994871837237317193589954215429172481981106215232030070506377913982325940632052044856300265271516947868488787976470416298178059022525601723376380771813611231372994366994789898470933189232354600267875630453826254778679865846973202753896173286661426635518980407732976585948871602299509051640376311368147535210094541724748088781007875330392792100853580110046328511475837738417959750027797477396881985566453457191686710952312343399262915053414999487541439996465374611600763503002293928365554010648875809001693036240203965342588989810248625615660432462735932091161293721064399106584417925497315259416853631579522376280300744693728866141856910313748181545167295382720648247618925552571013922177803616722683628328861090365534566802298247632145933542094344102183405451663171653041976716923103614604188409007438619531137461503733254279934645643764776794328508374453424895227401045136384705516020813056209362421764348803998722213947910137342058153355334253418937306197321335759747409330829667042349069861901350720312816695961160308528182878283265851849839114395613811201688160696345040873769074854203871877944715776075298659652644377896491164889328551009670548209424002628598843157731179303924975609563767791360598349762098170804875921546144557563793145403165841223383073658339524403316892317273090012325292850620804514453735728107507541556671684878355654908320611285854437150686195452034059404803277158896613914552702973486489670369435155002951604501648912563125332804835942372048155734802536692698947689512997843159655954584421628944737563065457325653817513286735835166136036899849587750586551930024845525836866928142933457831132929925577639169222163491933388500253457639989932987211413839078063897615586101121946183440728732464822304309718014297055286701952971533957622626980287408024781235010315258421549127673065037569060409236906334776256809088587707498179444780215522484965334342342615019753095281874121784976724903897345703482071751983371840656361544491275793150594371119766610641771168670983590168666969105963449572421795005057462081368336205899640483560631100207580963060274609092444449025169342356691672610648491952923514801798710249460461963736823821498142924096144923523206265770067112105884109563708770253245866596795575165184264936003722621367785793831739659081837831983606920914462904290316291335377235007706232318836333032125197595235926907839832890222881806146238747643775022120560091577795650309019198534569142351742646173038783137823252862610126250326863970788053576496596039302761605657102058406810742805585684703868111268751529879246941947568419964202372845200483784754031493497099014393811533862080549868228448733685845718416436051855193335793603326299059034750318222327177324212213334585295551116085160565582573907504717192124848601290303886815677622315601076911232253802510789782594455765723979014623551462863258894410162961821295097495643227830305325486917203345671910536146887861152111913726280985661214209631213806622903440324274348691211419122890117275402688524719943799424380337126922544075442550111093692541255020707519764256716346616672151193368262445530942200887033553667701142034319711026272861192935496134605893903472138819612097357578030251756469188910356574793974951382250666512588977709546691006831696504414182328177999607068200949129973715734491353347179732473104762842197684936752232369275573954148333127381578726726243987323168989361079355621522887601601008692791929945012653368864838159827685404721828962534514304080526102249323542701225518680804575469008058692735475359114292201511811823287022204971325957141217649950498845783130336304090940941628817348577584605746845076328105459104534014783998565405609922564624207474388296330461810957251829038909475379357581205319471342778547551172047371672578620664016324282852080668076116672338208955953424552622244174456822756442223427956019549026166590758116275584164471298956351919139553841378808398874759470466522399292781493532966936911784427450492876745999098536888892262691886463976702285567524170184975598629475835732404543212019168869521489014209310974159711417017270899432413648561658092807132663046609923651334372344211471071472057614162752441893119568851241052974737061855914132000222099248202191510881865558959154600641401193857518244514534910655881440881708665495545211406693802692484855087682745640042804761959347209955621226567528288714004908973918799616739018417941969443425049282226988357996254630396820869277057099438580451661017328296236573835971825908933940086855578659333065772867746321878779862492363252167004231167197891383858242564127980802184720995366333424028879802032923295104845027540508945926444418615655425552994086746286544349133187797331343754004635712862801177367645610871813540283076380015195260823843999590301741434571001263964729925229527950015198105013906124131303393622895487342964055966123235558743845753920967421356104425194631510346684696929828364110231486393662921497803868210943763160886396905275049123448295181893070401205499148128620407784249183348751487352067924384517338893817646459303946950869552310565552323712509085901724861413792113726638952461201770468669269188440720208693467959431407286593797613990964363572260342162456016209419791694036774833529275853461902218651355052138763810405307274419126634897841757074743355363520676764777036337717832777633118486853111685299996614143971079981485020307426349844319539281224124334456460623806292675197904281460098955745259969731371389536022992729995762485204764444389324982194042903796392980272918261389364240383950237955721963141833112868111017660060076322482374880579612096309710316613742336374707529236983620978093738984093814676739301450346228404858709539634211067551080084281283761887777654835864773287735844732731356197082559124895154800057820527979793274037103919623780051350264278127330014749339885259289023219771230430994443099035386273611427679273781039050986179093140727169063295859855479293248323678623040720196646266563607279298220449963010086211955601639877329884636632355719298236995913506284011418685211141995140748968531443383417105716129302807377263356482483760108633218377385694817195445252245866212706786554828315953425408358521090042988909123147221541431736385509874078171460387769630681534415797639890576084051317418539252658200265010362288630582713651011768878775921579164597465561316735365922537759152157259468112034432915080541188844311313714085627229579492189008302548923813779603272186857749156942874211383611487290834242295718491336915680711641208937382411156047183370850538720477570600387325041656323009784579472903277660122770247306966725397146691276911306253106667554557317674816954638963119233643593442087295407135054287402612059971779991323184806058518002724597929813603785852415189872647396430258611772462801099531596021262491565707808919847656518068773943135832056856127503036872473653962746596708162599625161236784548867773222365191646414399022313594371764647956077350041261123067576223292116524420083240197867184486082100934012077801307035156472595316190911987583819996209391253264603446893658764230009382458518848807468871166478013104152166402267569030095440829282594385435337097368156574739838778743822864951381438083662472077281847926760016626264913470852425435131363980189730956821650203589220966864868425631842655665512745310283701602560086751246050469722620488846856557630629059739269044982539470987595272567230051413954230078240555476529081774476100747374827824886210180494629070827026837927794010424393558562129678699200188263400073400306473724597674092639979786008960805128397529536891997494133905792276980968114333129378570074569920272329579324336285864466379835769704704066062555519614160243416880804171826315040513740177060602866933047113532083691873626313838017009418229833377521754702038356339960085682614629839829665944502991488799154636452389265440362186086971611440172340057691279515882490979824295120176786584579529957418063573718520017825517589923518566587048351088664920727157345212880597944881699981276958546147842370465808988057390285650634256030856714155546293942628879643716354339481423950222670734707683502787244874585278224994998151703910219377663403796250243265680500945649848660123328785468838527059525343913862448157926654997727089568491114784435801960786856338401501857552037549957830501041665236659034397236081682944865272374576693775938055141325495505844769022196051660920244693478763601793104139309378787550090402570557941291862224181057394418822416765440957319084495289916618015048080466390150139629408938653162049817950219888117009333122652557085241149695449949418645349654473570741931243731738901535659798256223057454116273494500303996609129616232556097553706852072186214205658248855492194268629919823910016610070898618536457994918851245211090796094169398778138158545552717788218264127946905951312861488329331427569544685922285049624118847916101941837461454470041043530430914584797776022794122507755502733373876533100973011768145676216951189687658647396973761503194538426150587203898331244757069051758568439306724144987743469045532623821841945425859343562917707098522106227100896813858739975434673710227931786405571511533491512359025035669612817270095990600671729174585134824081125838865263458195348395809238593264466847493074319800711983569011444714903658956865713860205274920562363958083693826389637985005470052891559775656595690960126532509936879434002272779920098350058090928011239375080914215533536607201204514865502061171314043315001771827025574760413364836114068719964984027278787363637217158863421579893129849999845276912884525776477938676464955531417375145932594581997767943653866169065326985613312932172421299864221171853615590835026988820713308573658114529522805267096729554329288827157785729892278054120756768729485854048311218359014459056008150526069806544957360055464541745083650196191036681364029904890904590003328527202185725011028718940570088386140429860007286771437042116256742442464644455826199222760622086123547692529726762172047139671885923452111988725262152527894234080838201592851520587571648832275943641368166899318803336806415618019643123439862333931266670333885421771437027856332158614167511611154267560522765052602210747928036436228270152295361067898520491946184975784303909652041421194972149602269928381608774983649663239958657721652503271591795199342819808719437094597916851110032651621698282150218395282493262187882527340462856506588067322833570467261077905273977685357173579583674635655606033367156780690384154890601714811425904186914824340129654441921405443020010476811555585321546533368017495037613783393031174256460854960902584328348548413295674005490114790844124766102553706751344253182277850470515115792317149289639893773420651483186557040816883856902632901782196231799933093215420242868907337986916883880896093624096676456230965939412265643600356464494175682231238891172247515827861731650370235718650612385572344734309347140229416301337443517401427688121295705872365991836032207981174386590196079170888134379028047979123349748666263793689230354440222105089373788829133236365048377771001944850393464296417661860322245507749147844057009716779154887182543136110775510706209705643229490950640307155550361071681493874883396765599144181782305668799860717470248572390963506235845425429841807885547177439027137963793757145755502840879302144827586629830632984984302389388988695798642865868825616615252649833248598166383973478476757521232145677836817742126813891716284768212932166660743136302035641131656034938330309415940352749467744831018806423301797940806898647416604850745059355893873538758684748755172089861164091213735530711221583842679422085716098338892414636285607607715723830578097485789472200022831523570574013074375420707815294759593526417216385439648069688793451251674518483920775311902862637524578609339421588340312454559854559495540389166664656121678612942784122125664585802988679998076522647691085958687455119187483779123995126910528447743374452133498378143283402789247465275647571591661270341628683169328681676344550584105977487108777358804036990718047697467014947247201644789941792142704805795185889374107803359008055136938225843718337411017165734138276076848714183390474376928711881509264679864208155843859268381431528090949425453205872368221701392638278590439069203161205725424293361471217932886830241278642724285310241900210829214554041508041119134985017552991954553168187425185085858574521494717590241643838383552200969638475078902400506882913577078743006753063044704759492063718262804156754212073395849414557315162524874815957540493282800438511575040072413241707932875718599437441833906126417454757136488464155408593760252139507510016409998755357249475844296981117569750323801045652006911530148954128610301019665703869879130282689776817062740943996783514031861924799500749909054056872022962766658603525464951359989576875613730877047217233914164953495026779235171647592147822340856103785585543994508000292958324864396196409383316705890217570064199462709318051748366896977442468205067895523667247860610558861929006872342281878871455688653335974459474059212885133622427723095475450774874338635114244207453274023724569599218466892556701722344995430581361986701366717384239120352670982759987340538811097829787639283079174622065625989731285991031014142437501704387925762233672662943956947387611585346815928879681102786267941302538047458378957448632360694755965924881279709139500005009285788405342865620071865894382280641155907362573374621561047891446331323003326566727926371409999792234375041909844190394518034327420135553646005340958158289911825896162392708501814293479738730236532671711229125040427677724720026335390393303924518773914017514902039971728962487501885276151359207099383169856952612192858374692939097287730573410835684842698184746624759822033467864992666627792426150981338716605523300764623032719525061044642279322242000089843271493055807063464898801998529465665076294358061573285418216996520922319348646013268797251547309297706381664385577808573318775601679041037960937112491204931991338819032145996345841251616603498456154374687790409185221205729776351362223585844655321608532409239239707492828137655761187564385958950658317355796625501996238247421001711712047801234497974183138027176504211165825888398220439454464818542144496845850259898378114797986096866957465136789560223377767019150232821780499985546294702088500878412626018184659994961728392652978516680472192022136583132282861808452650732618619284717931398813287809088010115795513454950029636230717341727416920500704873338705745672464275465819041065880776875462086311995268110186758111997040783804788200872555159813536735716595622723203103436432236104142058447777398239167962316836008613315709144243573654759802700200520923187987613200607858796144542596290966036807586359529280078377187548700204770362981068602721614416691343687073082359859130073197110817049538654725655593982482904744384152908902992722432757935715900183155852715929451922534362455758773429449289532979737750321212860808669973166340531218783400183564301736710095648632279122383697179480301193199499474964154319627319659438997136324020832553545076334925133085133986015895864279151419125124368872679138976129137678747680250380241297658219464627672370026245234928724010211165131750706782168849480148830647825192683085526332821950724270015448188323176166951518335318987466723321069995244795058209469891983311841700136222605658681343997258053682246804010435525107316387799976129675179605846472492511409749817448833602147565727239101638387098035208539514236159328012475101028665335788326326906559827868356047159172516133312660908287795184003601685246641137635966036412998762644139769237980974318496359262890628610631446725204097634987123240264630386193319039993070180826887958316609009358815200370403322926418482573149675980362146954973873381252127369559278164897058365462693678825448921862362518763555064817509128226940054438673420869787005488768378175408394644412684103102793189556105145651378315102939582770692090820078603538421801106314404758230609377841433339961656238189118210939078527232627110134202359516038837884099412741846781642313727143549614844901920743850335755209918064080535812049501751111042274179055525147047993859458179110982537134751745753786872414382308083638891518630335619562179752761016843320988062958794386827357961800118446589000709570804081907650752613081027255400173308418683011525722497035381023761619901379125098476597048709161542665636381991642993034974941185265369396085093759553948974764589154300464853353479604466552380257087333178427377940050820338999976247554745318626754333709194620881432293924623700453369566081281045433795801922507743445844354713748350801749925648006654748636222742505608938460737291231988523716633675197672632532913637635528514303631656615178881428262336355290786550125909723873157601551403284839952456414961713586066264572713512862439726520639822422239173489968321615701631202592049047284590457020262153480807579330110610101927410654358197207259509441696509723555506091393893529701398372535739427587221648188378952879453908862846716592586099893403552160813740452524456827834218959129997064688046136008060007796586625380013630983513409881799141512643648299240808294167646931646174219307783394308346532506095333671269573166855577239428621767763069708100425507669086548931003010910409420813689741590012539694231095995544163120434303633315943572910053221259325157814255506865246516388187744902671809794025767215910561957236935163143386149712916495254441787137045808360656374525749466403335747570182589927577264163073617162866535241010174916436779367076147111557251297647904033909489805137923529477263897408441072028342871353971811983593032773277470001418354849537970108130143942440148770616647116862186188797394273063855969792023386841317011885177363582653447946412396045375516056536417042459073390526486425339513077330687283132207031159060223083533988420574102270567792314733590635821079134060042045312225062257960338661826942277767560658507102255926525644483424395579962228534970875203115521170174375561878391792892063779796575046074688646316079528304675794554337300437560181780253756160121273030202173825481827544473949202600589726254081178330741694699365827776496088671399641715064690823695582310432092929875442256063151384356804694694025853230863066377365178417351666777300260374481387075778510645660097612343312603623739491896892956722044257456520934192955252737940348008964986210581054458033360245773888589314542669454646536040805819365766564079650669133637238385724040053590301571313580637123524215001816835866351312689742354473766222936385488390748032937788700222978946823360029222462299237536044641171977266361611343552400952269656461754467010341464818551890494468477352589573990352439831330841230372442883626140417584658601936072597505825051506336872071115822891498153549764085475801028074497795441490206816301102643923820760759804480834619840919458428085928445926105176418154594235312619391356906203133425489543731179562352814472159256256849588145925009617009786825834695629445580522908497323124425405039028269817569637231026262726301549493390658838522982835107157023532933762691849128823418762666613378022018700543757074055782344672176895991112526303355886062626549711163863322568329136731057840105495833865532270490376128143537785108663527682892578543008575722534151438853425502754099514808362676256485541099021851567124078914254865425249727752664173920761216272923978117355180588920782905076075085527466237769041548576902384318530083748132926385664284185056587607138773600569780179536937216071407912441580568762090117012233337277670266502600605791109973339674697077587603757300623154225443467091562678217871583502684602036063962021915104454686633183040832802623819424734293715521736016784676749241734212507986431805660490200063101661881341766387372517927622083362414580086653419403594196223357090958516151920989464675809097943114781472718846468155153473001021623020463132843010590512199456932397178366058385335897014297045802817789801023317840170896637757212160380234001139777128314901409027209301533441439073006377490637490872566224207409962634312629894718623689635038426076280371684094500230301889193091854373776203779369918494734699913480571956071463434384711308127347229019462575687182217617516648158958401060345116583097303295593323774662041395136028672949510405373576155588648869530669977892281308848183813192529924504195656238015578421890459443611691281875996437296618866019891429028581467056499492522677788572274192269852309382189082317646157287897890786485085872062001799050244644918776800906741187874693981543048160343131458090427549811981805589587443102127880583826638498037985996939532688489702379321129159788158041671330712915159175970253788214325428913321277171816011598552929992190999312842129806614004564082752032646828244289761551938875099662267536287595750408419183295558843130603864410767747667308339208325504828463451878690050182232885761584145731139687897969373113023197977969293561099038046194272292732853538053705189928638962463351165460581864426949269232106790480213380797041922339082449465235431766101761326039518962448251323921743880938300272741481084835938651680657663910308671269935719966530132543236552696601634545933923808922854284742543317425353539396741248001238095487933036171759225829301542226322222916550985913353113980702717790483800363314812211366735336251162218326265370709910603666701447385398858228285361535957518436603815695288683971082633656980339705877627896352687834512585257868969902825576431546953695141778372846783627066986527223436912503729195887144748277662994321690366005930442223131348178211999062331242198129358881955517070990967689540941493834343522668676263795917954448713135658922342918443722834228279778057436886643515252302057036852031131148682803964441343825917308373147592479553310861566224217218846754954029364732589640018519949046771322050232046178932868107971724299674820958883895756670442385928454318747577663064554011663761853755791796251882946850173343654622602756123991717526662520778217455742040023402018316209982312645713610360911235788007118565377751759342217421885221696232678264982841064828561876782124184393768995135996453596632326645687755247680576904816857189044454157044163318878368377596868680274379440269633901599343914023747143309293804831744607226448458665495879460704803076642058172852820348980965056657513011247023351435652445112190429004393660894868590796322728375606325958760792328680189765897198238425958781799738694425052361045108228717439860374510820952209611641453502947814473356970630895635782700313987839059978149697296065778922525014937517243352110298638281160553746358765273675443743559832690558924509581055729135414434011706178708686426942820705429841374170533520471241577880323948997251565495243204000099903913977136694261221074861287516045708539766983380077785584508409653384706422452203853148327137929659576535253075877051111103678064169681051746610294764110548460771846178742012839703616868382740374912377518271237074868039816391215075191694483937049304935677468655814220688327950860061993515586132599733309512687938055526954629371213650448942621529572427037765977595960519501766174730577474436057517362632281190900785191336932414070702574345792815561960476589073628562033128958555831608893669125969323293322537218183943158668862743582594952871475225361159297331288985818178342183778249815480246001272107267554838220896821826472553214761413499517554484551788588214441109553208692502212716051726527596991395663100247842688587970129920220712626334611889266876868591945035410802859952958724655380366716124941865116980873982394324698321568738738851217966998782543583981011330149159638445099906581148182769032145639360400628938428740472224105545945474114144616881420991198481413872128637713700329851597652042719637195307495397774450446671665655164802843328438008016415496466227826060418618941735048822670150937636954577685158116210005899614008767660630465154092176258091952028464514012715270847341056632093698948208760677744723608976499366386588866363654129194063229412249750482525565601434336833329172707583004364794617154965545602936482177159184426551421900214371318570428002232811582573911278973989976831721735022996410901708762468245459936455759588748711831208706904553801703851806166241086956093169755985535252231357113148859360270857166911349350099539482041175890723550543156380635775234681556472291128057979660346506850466877866776600537355654910771315485931075548681350100134530361125467230435471626692500913061539444970799027212660345193107713557777102741054824456293419775468905433288177959069573762586596828374465581688456917942699349799490983137669704747892440381508490706608727750152889730889906988144418672664848632801896244079659517441910202529315400672926943095553123333626982817312872121352938117156528233394381537325644207406205624076625366586108325442280784347759584203231090391787145226744791144578372572513472127594869271342948837229464816658192232678279322143744798056118656784028258005020902174173403629669940866122580089045409199207630332530232290898338050636179352718701644832923155234163966031388219091078096779499910628105846712623981156646176638495631742877660957555842191634831067363338282599673048383764024671812027691505862551125045779306011570346879948625853954789041605777222947330427874179514310509598810927350247041956921911527374725931653995038815414299408088479988753750510107440891204461328085034910517158731281777672563204159132798514922747355451411950286230859302781709430342653951791235172326773509452320894032375716951225205706030580248241462732915789881190517373134716317778391601251273888330273696860556109142991983769369486179006628368856096835347844864424938834269771562351918338341772901873348914963819803836156314874697660659348032545555426794149188834950002235511640289786921828201985514195079446255803508355319430162364218428566195880142123868874182336329591611575556992842725560219276901920676116284765380037016173824058504277104171428054795999882429766415717187103117913806762461438815392994212453979560603602120778873441310463664705809499198857459717828197530319811507100754486454906743631257519294443794154377773866751011854449275830919969004781434665630301034826147701480069177880776592703416776787126773611519078001274060776410585603522126689186724737642780728840791021355339960785568800093670825011520291097896704208882492306216806649625558146127211305346002067125793529305211602801923112059962392355102243278559488370569030857410725389941588653829720453225247477394096998147817597149700616316545586527980451492205969082790652824023649933462680647146913115833249209385170311613108327990637659824990175745150092652633111304453897934633895196691845124036881960847855588532038631762896825107340729016132721444101394978982429657830207682084877202444658842954097695759755079566820512404279623142443849736385003651727514041818528453143696261148864782900969151484808856001191114006001454088094253448223588643495820848519607150166690449937369488744905680059558729047812459486146670125239345672069328307435174703655052172904061020097751605872964466790499579255858409297877611669625695643732371308709779745112196420908372220323506355088348693024111512856854640102421074480237545607331371312924015321865200559025102271097653960476115025540464372430364698990438225357527542120858790921497339094576422502907759670389262987742661531197474937206367894201525576922122451860188118914794262400964891600523286879070330343771542495381475431849511547087375606780472952550003162909533246794618503470031218002302995471787200761044869773954985578248992543241492893402702440295363243486690855463676469060391477248134756124931140717287703334888688505336947423844306719678407823748784546204998064253259348607991560808033890905600367110195309967735186972484068752463715331324074753453812215918830374180963119046860188561053762145645429295915553766285699486030322712212701023469611880133362264200023486368328805897521937634228788920860601437909338262745923360276872191650002087782822720811854184270191025074198863680977435068764799171831294054221505333076248973486376012999384232908484316231512388873717252586565831482098245014727795066793865121888631355211061458757173850626834376580941713145850883379835211854325884051058928137495796982246102191846963517630591152430063942700204196303006448980375375893046116115253202794504862952109063052027402325992802906531991670274876697616831647538433198193092257313762162428532142175486386680036524268369711360584912186111790583098980275856382658954746901539257641803019916077262711844150300858674765036341025986248247795239915886071732924968333018436939404733772330179384306774812869754668628464360654453349616750702015507881722155108042241773336675056433930079997908757679159462997575680610989665127910719183267924087186879034047304984979517920999309102542819600689829743901721136393811001958679139501590482962204888212402218046601327783117052704931460816755594914032326703595097728209782468058917430262530997646223027482939273234479082785285883814549160048171061382501121097900000620274891019261037243427912611148963336185901991879018403991907292443956129665866967672168545201102611327160425742218929515421114961854137917291543862585514775233388295326258423076544053367209347994440443713090710181149097046071410328034194517111421584299589187017306477218487317381697690530772181203404231479293726256527493605110315088684932061972633475601481498146665756147175983215648690282512185740876352434598367372119479129755451416190724267287436338533027875663702275808838277486590333256052338929001414654926446513976448499958664387829582943234518949804135160941428103637392178749924000921490999880101236810201772043830421660371226097131131914506997482171291544105088086716086579197276782043723586862270207848661788817061561060087126034823040943312300892601194966358721992628797398137352530074323392958048231029513216341104786409996546005088880283895757081405924184138596256901609164982040158810568338555286994611325259637323855826751992921566469250969473641993362606921386724565468949504704385141039534747207519331091528353536041426979260431371091241210841835212553292714166236339657388947541237160225638384724991247648762174434621813208176504901970462369753563323376791660435481391975296737907914679110070754870474629133833636173140191344109067133180893321986274046158972523485498717230398545741252328012754733378402493540238210680381364925744021887875307516246203019125833154714200234893708324399904361111460397965144613833961639834615520000420565000811418206842842270197836314396550313863606066945525072896944310409307650285050232436270418940590668282894645917188649880401987376674612419392812614001543072512096678259985670491354746188025827337917596550015858321211999694529007165603796940904115741847546617138837684326251009946518822186084290842374032539486035368456302566273407022267571714104826112418977026321112064048101454812205675944171882268696690084594295420826616459875394406733870319521360060449392729953188696204038007221478459677629352032483490771229255825145682691230207170845105045319416685330396502014391667770047670095135087561132581922718538303147950569708172301196262194165538320495561731747371832605235356450952824083025267927414884172237665705054809023470146906959576273597240802446969554434242299238305527857668042632300289512142963066642112231997936087256551934941616617866598001870707232823257714878553184139257938636655351518392847502419889053362830656216363736821257013688912878942472191356788447121388908397753586172752490460271642448716610798910735996011456739913214252592922637848106973151332512078473375746203149072170089083940483687338952682415600052582149173082002938799315636636441770763772125303509209790732403845604074571040909145606074924143023136588709110788740733735499269046205832278861191618425949257850298396752596612288074813398959880827588292037107674047093101897848897347009719968937826840764880324361694601072556318716532116487321632581708773927177719738012125187449649321036161644452751696754258261460049674195881586804404055115835938026256578919799840031135546448929554685281450316088219436328218455253675021226326248072750656884737377924709374471960149315445562871873992348139951215040016532437157661125194378898254846252571610086013237017433445338207639781256096551891409291183491786774634597191019719408040683720907208617204290158925797196120813537256669593909370968736354627074703863445395520663916242199276095678985145668687407820434279970508298317664087451814627173420691793678474574354404438252103907082681675154251263543131905906226224116461620112363472743563814767514091142185039408084650818946038421027360389139793724534494796972676592148657840698601698292569291623438708945874970699136400220406648563050107009314290425508773203230486873256823034672012383374684647560424263722720385218503774868489234104881198908717584980324804883638628312332487773637379991228201729990006165885062548937317510100857380499498916270246717262009737289638798394414758437361519544932983683991212683140228083817383743557256496971594476946914253939977433649244079150166772315139319111496662284663301855452185115991463265331072281615408848916431596052446149452702143595793423651216455711892495282463389817199817378780159509504300682415586929210597605401340287070766085971731766708013913706565024917955241652136273068549421108695850064745958843843936037854138792535869932748771752299106378954794559884426887333880404345951499818347223654501684692180385304451242372501755017929301919243549762216125619484835829586404649299017367725319713650897634783135684539617615350249896035489445474043348769753647517152705508762078539658402791401477476676274582870410817542356964287452057100120858855758925937485137774223667017991931623090094951789303676770402731418388681700426467433808367245877867147319497378449603465603216242367110174643768703741848443658526563454555120999690395590704312527575997644756490064142987007907699589290487151252873649817391737915763719811158577059546852138612762192221299046383886352252188284250302664378934005964261701233115464613960599294343737795182888626713196839067388484784976018676669996363017143612703510839053721511240842856509304791891283668428935979550278987619552264443630972700433222152694498813294909410220984890822581682719829752022323566969137217834030598246094032789851247213491568284352491026353479311699153749010382082312609661789102370922068876232443731433764330086030983233515864955314816802271095253818342346821163704853857538184887363909432070082855788594111920783401742692168236974026714177774316567199604827773985922145741935914497141636156471127174721611697639302505291113903299111613269426062267275079570624964501947916296509186801279781540167775125460202375022626568459646816165261302566161677015890570109986686138598021830918531819995317803960478317460590448842420384274619189584397656101898995212135191591063437564562028102228131861438407107248654993712050923539049192764557546932753643996805226672548711664480591398524894658846415647427448720044209474792187148703963663109718062163475938688710994750961244887587868322305899801408184276622345263972317249453699845788782059363160175585486450221517742121517697541642176885883790808244706952795273873103660027823545037051228299536887100674813190875507653392147723152106829077718524935359958559970787639697625500305286048176330547209652651965401707592903109418730140529862310932357600532323937098449036828318612336121452488167278682926623909719053145639207675842159465114213842697600332936828559849726353536073670276551356970741724976430240144818259819328543468508041294695964442146607193071834848852862216500662563133251612629780727591560151089485372678876009360689119233436470499315055241631270676323402999335027164249578545668413562114749199235653967603292669959038917571479518216451421733886720988339506855905526560413278089939283493170866477867613334724132249958727757900021329845423594619228729949915171845930219727740953062555275725073658708915416589130804949708798689286996611116417050298068029445165232459525197053338005488205299670740720236477454364211679092221296213074283440656748396619390616102505245021352441363871451581418689721589388654425398802113250144017770903870827081659581672535058150455409772201224919090307006571501023693798097345444078740309565325673801139689035739780670191059609513542520463489425949845446474597001025680698757640861932496674449930252900176485712051856372403450355811155495715615390509949818316397047978674723177180257489565986546448842607894401911092314913520667198635928194902350421079180714840445140183410337420841113774521104963456449823762252644090368960286418653082857630986219853023968494605326895715838372940724161115889809208797121213672807855927890268253547355809667548618745293568682976194420162682865855352052864038704127731800336778031997289869560945936626404652595413224474227295210630815311707161859674089003278018629024192093824857099941625218939595526774636907418875619553228653660419691284770569683436842807784503983581984937356119539399029339560374735375257456471265499303750798052264039462812826619828631932630332641905470246434962679063408031052946082634734252735918574520144618403855702473726164107639008552445962321236638109207044536697707072780328269093976052140512891052827991498104487138731687596922366602073214022004704421027990490532500405718809673144699288327918977910495966754142726039353624710385143813691528165471285544453572042532319250531306793542379205297054533810166962363687252887819922956089222644982012517372001967555824089404219277607176914185818444644955732773866508708622048418326069487040937820435549089343889218292287292452648710811134753431014344801401588275022475872250779053385180054059129779637937496903749627845059220250079532317122136401382460662551281729686616084513775888166097025727767807108800369896650978078501307722598202268464926179240812357846069172421093698219470024605533986458823201018078537021930314024737208355648349230282400722561792173354322333044556231357126422373728659616241634262309796718201343451563173141565485527227681867001841426610828628184611687905628059649023734468504902840847438915133063785650403703389326961143744439754903906393130795081959640498324795906327440735729878390708886365579993483440346912748872269027217942482102195913958126586118880421092711307141926698311327487380230260394943189625949255885185691729048293793682607791176020751154114482398316764654333589185952414448054328624330218438139463550796826273785538931360351966706363658953469587355219034194115798975372278801255982841078152518265064946848738567622570918766277212039968987293171417679373016660339060303550321707403702049468546282367344623292539967848732554679294551782604814820488364554578929926945048891444632167043998807487246597108297750889692527154032836103702083112684515995229914211999301316664288649174134044196291598149485166028687083920458252797779141938899799547103551762807103366404683518318059379852586443788167878538481291199828514709042598131708159220407937524665439058711183956654809676230586758889902130592251802040263449753330871160493436227273143575472782289091508202488075756784021350439896598499836690704185496130297296886663884314202752724311836893786163721286918997569066841115697579705898583083299323107033880498620232727405578069458390934805596043399362646580119477947812094445691740100094980199384152729198051577761338762262689532875178833165692803045222571382850483415765648742176402034658508918451467354999867612859166292800001280390900510626311644914242131579931269309385339594325317269556750071873693716403075466187582249673911263730403862141953833563766785986973390769060546782106367588544780001351910239062368156274526733330390228924460649954735920405901894101959908289565407021131320578225435908438392439236522964183642108137445349839881280501331900746008069348091340525420827764788701975814271914228800664800815391847052943948065076477301375680185949329117195201334236918786373118031617196466987339801500011345856385749536955329835660099238436366354433833092519286387213944710115168107372679718707034634400988267261465114062170751953728396097697287530072125766396594527878543891717676585636678670175203447535628116989086726420729178553514432969529703133032500248938294631752346664342878123036279732878950938386880109511277513162264608535509090248499480438136881937641647519252750883918759816539397343842593339763418322790209943963903251379359528742232641928348751766956799089816727595562121234620127933539557955612086580265449694885178914350412244522045543750345965582005425844231370804943593712914250975540604078305160973471773306875284144633818775654402460949111380875504463243473804733097970585782425578925565060222622807743767321258345319041494610284026487869988523178103804793145842066638209401643005490356705069255865398215219702830966753233453148331331507999596694858676506780317541239353354577702120411243336091232981870312767818475929584816894957721257343694334332627578777543231025178914579694822277202563583358544809755045783641750921531047559687128646758592240765313115688077796182973757452759613907725126901123286841147547254633265984148939051935435715906480913360734517018542877380432483624649849045725564200268201069004814711189657073409800653203162730285012012144052114461016639361220290652333537854535379139363823815911640185042851722009450525923173518041334496830929991928223713517532781111451954214920835535689247510541063626351062681362018036779572727675226400094478710740472148975638455175107328548672574609564335359234457174930935635402289573512455731858597228717671208294081076664017196274632054629500618968822471495561481670716348202771112867705992722441979425420195218917243373455205573201679238042446960960389422138810972625455048844719994444549236183222635184876745935050795322208610382897773336513234923466673327786340080702046563601425646649170729705724218009262788771328893357672225460514439408522936072449935034731527509801860987151517051791261080123349378753417147782958364689105273293236403452458759270277082149623887880667726010379970418790272712280425628182223952686069380706229935789172811330243840383362688201629792152567299493797500415332148185873101001751771335689588477664562537426066906120209761895723443836578102472393586768063132916573291853941613066241017235404431329612084899901104055126717045993654073412606733109604414193191803337228446733419174810203123163537258831341385662212431980608844063267472491279706119007674480079483347673154021293226603925065144208631796423534408659088310094034250275238471681458670384265853681238042590346166773789618508285236945065211670583413897560307707235949213464211457716692447696855152141847691853126262642046496434295259979791441751300218845866755876781483312832019329157000703247339279009296049556753492621842521286231259034935198188188993220883605985511420439577808620446863315945417412599931515442690290485020152892914285551827052523961069308449948219168555152743604036443506021179643467598298490335571636812165670137596580988087163241323723702347915992239320092097337410581916782961569402630404332197932580184684551067172560922438600111003313277556015458703946094309185827291848231173963836139542702500043804998299629116764633841522233205459841960328914110553926145592273556620916792577510852803518680578086493482872858855403963150031158492855527095679777678135314278210244899277982354167141989380500418817833268212554291220009755316283470606441605561832098895314502343475838964899775311623973067799493618797064210495034542477102672588289549596534559258433911561927684458345891728974504647981901407538643059809952992377652986284439305859354492133366055317741351049283182883578956674882087863520171266856651480347910664260217447797334853223753423940674848746830719002377786698845339753894727198558485761364177170271315827844760560056455454690692137531124341559936749986899056692350120645346195284011167945332772870331349831888114739773573709370488268923937341698064313884265707683329867255030159993169773811903042801526416112651961942517912016806539689172600980497533399772921118809601627968056577342598236216518339384103679531965424703295530503310408425455986675877697177383138689103881977007232673965235114562222417397614588748296003010168603488125170143135077786466468280334546554567503902146576842953445016158977897473291713628113668049184615833757028804033159731446154268377515456417049838613648848072447637512472983984584499475011129206382949724206027399297739751760542211183491132929761129703440557978472019078894595256759624920282952905313044564838071754262335266419103120875300946634869907512821612866434572087964837183162919463565471816051468448379867876618576871120871302675670961103952907497302933721807815737638473539874615527762978762272615024275403773221719878518864039689065430387713445121653347478354407919459045239353805112585813318751900514127062709778681917335573344784814971179027514514489749875764907319465760380085846900049866666548499560213790948817893403201837332293838363559598573124840971365298115355645830709464653295103563111745425666277971191095416408354696800270511942409884840957630741747395568178173741166359468450702818201918929446044124780966914966221446985200168799563211366881745141450118613486095227373299926980851048129582449760126941817914865986220831109670030909174019377903219876780106032120136457598176675850471036945373319761335653764710992868083242609066799654856225369941490104156900614440873795648190356835960769420681782792825995525160680606850094597413521426981899528679550262485007372341967435143742352120071684774209114624628672986409360847938315310292429176101264546879248808599120156201504834314638691918204738418843133695491142003576673915730780606740458953833205388827916962253172312675028903453076240018046491152852555250103284529159843326425239895747133402724874603665332026371645570101284508020395891705079778801746966411851701674236438481316732737763989124989944375151575363932289910572560067764611789565881598876774887646129209772099532749393107147996568800035785903517074564652512806069602152777362468267501685356145577117731566835337226148414130011883084135671160807389879092034020853576738697873819651453772711245903668203906657836542122865926199060798431475568152258317684766629124827761824078810421363829368254678550412580387632630740323142449943250211393370041898467573794175790120376861287346253696693730512153847059980831607533907552607347412341174507026583454598090886482708342001278973659470794919855116993125812647775985894963342501716298765628209970475500381563952465752836134829631762009317506757910647956995833867575174566062906783433125253748532471377258140431282258406322672648269393058698247719975565426870708570012020651837554986342992003683333077684104178667744357889174009013108115419252980976332118386355311766299125695607525204142626759113052658269867877297313916152502010692178247369933190755457322307145885293865561656315185516538686853897129847236942416912909858391500146814485835969144075852652445090122547965760728905202028167473145991678144407083885044508453996138845857022891005812701570233197043552608993564255592610668223116266885137776161834135081089424355483349829595198799451180135771541670394253143580240797044019767227792779358819418331858987412559659679055707014811137194099761895311631647223547380136594759481731371134572999268846282951991195978153178304226101234751300120876442926644119081227777967747291632284669564082259053131835399857186144939651892377478399118957748294281463890778456993047180476335596678247089542242819938993719007509390001949904441138128591412177803156168836350971178531246763708081150619746474788414977610052179441189153487275591681298597034973027731021306155047645240330047867689282943077897948994255958522438538360820495800978001075197249709703209203934181271095368199618356128389728763877486275385257902769021670604859578421382933402636676896966331501149704693248320234208102734970274896500981851746391774459652023306308827894771162061123941117423882604827300507158844569849086195864573362168863602970209164163577594595245347911509645294146044178478749963043604009296521026376916282124168341528449786892216090744662075494481887425325072462974970629614355538978689478105755746272681218618769265591000518880740531039958067502650931182934995274559086760382574187108793974594982472968312343132252929457971119068284828181835100318311729261380400079249743642840844542164289398374696308138712018431480020032027346735935049765307732388725116022293475856600703837815521628469279331065310669606436128780857582794157978151436474620379148615160146306368227734717652830203158723475904313634639309963071256154642363390524796097602127237530967137255436516451360594335878276374678786800732068480601984611414291124093022704690919210467811550828215449882337721508285153265480126388516336019206286166732930537441308927552543309890696567655719345534438267007991435845764851870714437584527268454544632327609413624548131181251875271626527566361826272084502363998534559586279258484345943459980667888610760257954680121623344496321022025982663282722010666145938031585611473750420856721178432422332420389881566311137383860818142301331763497551322257303762426589101485377844131761525421528339306257713626484217587001199385386807275826401822884189706246731247271384013686291454181568210905134961822119921653098708857950997625410610486152210547897772450107071332563772740050345142172751767969087905079732119345114198131708837686646583686689788689020089036153573003339001484173236946716898467744893282659464221821204080443233921444241970216439158448823604276058687564423424219166771357225706952396798463716906089718443722911893873984983794497244233341181707253877643338535275211198593341344677043395813719471424243509478529110865433867463002892512797234631538053560804063470180514495469318154422636881013254621710337992489503128394375898381628035040345386661436485640478226015145574634031794948390685430645176914605265678466810655012238120838118970531504053918033667415023125329113591251331913765078668347042560427739041581806115452821263105583205801283598426396848919106914391349092480589298589195004726085681234180001600594894058791025576426498175285445433138542960886920909898906789344114346162127069524203291469258285823896359355188326541800993023817792416196709653212661313935320663249504330003982028167061038497001220655832605517730418909453806959890931227646029489277694368494616431666619091913587695624353077449141004643262769887189847698798243090404644457850573881715080939953246421461268793270821728316871736633662292120163264722538352849709004658613788860340291766861813575444893899149484247470143957364494588630448664902042575384167373165774604206612815127676525944003230563743311027718419413605649215294189068828499475443809815083480317903310469735598278352937708024898053717235878170332211517687186110307797714153547339736379790106188496474489112588048068622388955448563347659613382964745647398146539345575868285293334138796771887426175929957721936392767446727456260879810982144452279831191490544210226751749555633963238243568400202658713986741829875826427415174580500737756622912349527214573496544662705201392445131680501507424595098365965081386679150557097895899040675220578314870301810442139545097851044849579113337350484656981837935601306613372305726519413765432705111289343048417993998049458850159202645230821026982586275871313755528404759399485124438661063782977771200941939778392286596307342640457943686923142296867962306483339874284528975330556369226052046919188023425732421110050576458341099051494900243315753779719925504922927076085953027333108120945722817960745992509546208051110085608301219831444997559117837201162928624069499889717829638990006864482639684289701188011820414777860763818200201517095519674023074865068454528670412367252459725784100919068961173816954756632769626539354852941196423781765670938266065761574945607864167530812581972657853987959446787768061412916141923556579191731991066937720903775395792761928801379930306089927298651823638295498621450635179568637199612604412285955909288306773699670925078364290464981594784375939401591206484774180236388416952594803875276679393402364660362056771982409448851286153422319400441875286156337836514281371566740882722968244522863997911608471094054561498407627151395784340555692983445589712645310465984209749480916019619099590952615535655638764066947085141356109480386098912566111201544263804816223322804142148679090267099241245299695495579129103204606101550931955116057379491453004138048177734279385215683250991556604432333608743123118698771051495526425500730277253119322423232159622342509148828776202358492203980373799753896706871941336038260180993461421688560948925159879553326840389464169265508320134689011158474753829232098488444428662463956897927501068013515519200697839100020274921456860765089816636006788439418822513662405010427152275237107219111868765958663972562988235703257967090733698448079093019711899684260898088331030217346866830952444476492222352670218549171426361785200308632757506366607715493728616082757185028261311291897033892653850614700558313175812264856384220166237802436755091729399598157790761832817818533695402840357495503790042871495314776232430098098558647046236502447424352821777267662970947951424765892135390792415929434994611124395123006534153947461826766516537920975662237373804461978190243825461927706809040062118458528657460366732650454327909636300278432518253654111164973590102600707882668831164191969935309145103860221119105142586518271932374918951505141977802047971831633767368052808010632314504592789739239487128115073877809390242667944580023487252754905048372500831350639257707914463029666685635437763985144426326520350378569650728412637979481257029657992769227943826724395004067127912032309540465532390486172600781682279319908366383453354895750682019720695869484740672325201665236875679941553254036596611093647857202469081253609888935710021411963713727346603598486471303895565196916675282739581340943491556721402024700859311631783094424156438190696824730168442003369295698209645504763817302428276629363042831221021864796715906418381726020288665997356828934572020204267193893649270928830225478351969601216103510552897839876928799536599898261255135375266957206256274676600477991046151301903874463455505622063325751101764791552859595811271408200174761313151284711194710038289819882597727486090212811708269435011466593336809926959523870029173352592701303423537967146548760490987771511467935265946731382803199909090675846323036478809583061936516751908813887530183897240154368187364894807870789981953717800505284782038988731010019667701499942880784217743462550270466665244779150366664311667033875626133989653148368772660120628878307320542523992840087252435767253536176981115077219271243446490325418404172920514723577566237929733326744432641240307076982386567547408423090995969751948469471259542675060297767746688183369313250481351701479393213711771860665968100533513693312306237001076382605671459518125437921336760781302506264166179268083603386572817084202913395523810483587774482403159932232906905432599228210178364357734142194298794945483923065273196393856217180665284774643829631208783244418798270793411583085866812694365812349135212343702742022868505379373231979360409736441783936571666341137299259786680681067653603325259520263571037132485001725757587863208001064554586371568543860245399616205406254353640152827770429493217743095752184568692373350478310226360488564225705111431840769714166233763052187128076429706711636213403270143357321533861516884469715496051502631569454728098870311160725824005928179555235737770529572743928952934895581397865209843452517787889236105453312284687269009681152756742239348318033698438564517870751983997715631698064242896309817423179100565521796643168036503618182282122882133706790889032707002294547598418092559558006955293000652070270954632978082817774268666341351198127761357481457325424939156928879779968936751078522634093457344260141127755637457074784858881375167787295219232387120467846128060387259341480779415596536491745708978096335964356187257892910091273063563787736986979827593351382251125125100599145852530146603744512378840255474297756926826324897474028126724706816425479355198085797216655305502347727349748773322014886321074458266057266400681908656879122227929523206049708811405501867101021213043122849749691795253011611153897916730137105898365327821730226494871088649382659205630049894961779489639246194280220616896540373439900771229438066508487109468180441198099259635532053098580014171461451485146871042248855252870038755181999552471576992129318821350480763145577820626602102608668060002809663216477135577687258352295651883632045558872077696146375828967794771393557572310162161440088320929128004784282864208929652616950959681499551081538990566455856328821032763248543899195518320533187413413649485153563226800901657669871165662950544410206391546024603270778580077791277720399138874941332883162851845590763621066947315497203407238548418283262849007998790391579349266192251241704154302271674249662573503459703716998367486372558168481243708272616593953911778512693854821741645574058598173586478633989540953698487327191912310387942963034668471199008633337274752532621471468451185903748456693633418029341852265998405914577715797548158698421906186367026726355776522466779194181583294881837169208037751918169877006464905781185878574043727840413446842945174245135858704592716225953458895146577055031766397745516039731434133017796929698040911379439798193405815060117811498289545762139146159963199929963831981983813621309230911036619825512270844629780114415811263638262356689578187327318783393673307612669786050293957175139366483131822189443895821967913004563311442092338772948257568119299287417193013930379405370340934002894956221457748752110062421291131841513800817370189279702984779949471351520104570125972133251224338520650080102370416602259716921489234363077143939718951445884578682960246365231241433524610294156206046810167737399405212549349723356342493013874990656801390293591192736955890660863627170236673994429089615097914906732101592384702169542144816865614065614142991656949214948970929570200204578852325451544176646363960331267280020224874140558689001304729828310845102524025726307787776909721505080374586562174674335212708658177605078273039992789024598802790478621806526004924259221766689068663962133910286896332823938325086600649696528598992431619753208250547396423683124754546729206318082277597893515075434248156445384130713178820995563695513889664928432918488564648353712480885629653148254440412129463580487670720634923884156302382033559349117209619442594418898797912502953950486476497806327625959157310070034007714110352763583359270587725419370672369753275610009570147289210412510178836884658145027361001358298216149951398031650542688030549432554993280372428759630748929644037820529402728651141385760963389550153768060877569917780794965214517117940698511825622865493051089577714005291048839610088888415749851178201720007161067845444275798588469496876997392465963846064546448390761337474634940346279221877110492320430522706685819639797124362835725407027798619382171810453147590291066343350673808004100338035922493219315130188987695585129702852275158821318292474519029068908402660933022427242509212364840694704924580984512866780722882042739516859480296146700722521914566583477290693627933894131531819656896077373662713846769777497314856360971953045595312353917217241408368605924052535264158418376614844031892831873584379252821442698408298747110171029795110854243916218297832619446492746042616175795999789942379871896834979351554466567914154627156056603068776507137057779891143709370081897527771169899837367551011931352496963986738007438887138922709595652974387928285394437423145869292762457523218419652603845839503392927458166796144111658596117769614552703467982737718301726126690702774741442696181292544948209913499200332230987799723034887318783150695370074858917782272131349423472840487606292797177938043340173883595500216129172830590407873517697879726099586113021145322966301049760492869652370662073764467888168225208248624571540666374742890409720438315513231262915924257956495651586113126362243942687076529826838030321429151857649620694444307575726790957437526006331542216140367493210947634502116673732170681348624410717124024979504155529308154705883542921173388243362548065756785361154609652016344454832918815528603932690823439518512256938005015932636098633919369826429311154469762107003646074122342854695523242180542159444813670789102127637212767879193371353185957064854446659494561217976761165892810702440980883872970429124017690714729734959915274257931533723409114612617267810602266952635657707841985262677738068266244334359169278451061452365659929920816173209546008387766145087275672064511747383610782297740697497573830868225494734469654875090734232284000410456196469098735609365075022842815574161145833056100018828026041678503621814349003908748980419886401510734584625030464513836018437276858648513779591220927883496288794986326803615091704221722817250819714486512154664299931712969326852164571024528756973126658817621822267022164784505332894213059231536284194939650958188425905131371320181442431871461198476102727299615363439997549416853505548566726852650200661189935917958695834627005504824507242594472520286679379316581726356345097190623627288134954977429337226838721898653826590614499882191564608294897407329031542640554043318400672758340859437192852341040861787833913808491666313226487581307321509955303887217755616687301441897832367135989639737569189398400828636268459613987349811474991372105404174053717596377581001855388959187916727284973046950799940562032321966717269512855543368311997385338299666067854843090400327880768140778257842088731482036918349518148520306133138134094023253339519968447790408151096671884737675540198985852900212611501475570346900294593731337642550772623381498536582873475273380254696945521924790771093790516750189928105779619942801451822040505303539664282621253394931714670677118381038707952537666293358876745054424568460462976358774862407617161010400722027516129548326771868308691226247627404551699592943184045583747988772361133775848607513126231695419523867069824173649217657118588585385095622878877711413057472267477133435861938305696030999138096883810904663685242790160440301131088483063531228201888418800090040103197099437653698162505174201668134042124628095042281808868863908963397738947053978104034147696302519047538402466056955761784083747236865375886064235971773135452427807644657063310372255573340923187319535173655426310685363726036172607365362872347686308528189997788159147655832438663273449818882744946626347540709756274133438824177476772466475602653300300583825852563272884921219887157246537429668542027132977348335571099879670318603637872004879950209777718979018289822273703153784215139900127448321238514661087962412843358864689166692850820840747473160466593393656786026456157734949712004767620829132266323265309936166574564394191812192182833956245707041861046458723716334193859161146722135434129839413325777228799509925344449130250299542763329156476091499568977497854917452581495603362806913325400884892231508364049026764027780262037322335515243284017424961864871079546287742297956417450967956849280318929744766424499271278308650549091626252910665490458264194926036992801602529185517613355834528799689192942510324537387288777273641117614808602174036399823273559737762916995458089597617048393497477441474045352226175957824661264314231703921990517356241279035722338285250519372195109342764471778428473936160533949510230842153869369426670983337510831928939605606610705544222281156872491970887727823272097325385193476126354178610446938388341631932501566496182291227454899902947993638137971775785358215099669250818474777349302141344728891551729574207003686578812880833001701380493586453014103923499428312735986344726574529191000314551936002740103731320321126154957562998090032506532972172213287788295920571905479408013722361598459382108741494515374796595552824568010493667072233078376619093733711711922069421653869575175409539370316104001694835573271166323409367216351515439325980338588260048220119906187462164598423327966670549494516834580226853942830242289386946479436516556121862862004082222265738673366784293383102065860737805308903566382004995382246159524714162592400908743771328367118317219823006502655607897153586249490482173057703923524894071656382350857054011214015014702969893591806257971267616360436308389243536463775504500607584447702696676688807047680641994406342733897621714390231176798706627556362387372297954900403437249450277089926370174252633102227244411869436843312629141517897393610769777291285065815175301189723127574743350936243828153887493877174906601499415506521737611701354496942549724720938233053107735518387796282625923549057078206077794832160195815349227279538400776338003141676375806836173372482451323719260787122338106754503957769973725886765129469345728031941024544185003927593987385382790621035368068574735437033191644080193034574621328001681445813087565879125304141936043412142878730239147178996521116587503943066172363057861342789863740677550585076004117544786776219146101200393121432609710310587872570306495360599908358926964157484144767169981964107909502137817392083428823625063513233572059528934803191415831431441834878814174220313408265147532651423501334219400341079699257495796729592317446442682228831393809214185786203564930669053689523387919948077346583535209326386545688975282557516794411987532495964673829367853981670003908640965987684067357566075912723646088675039049273176419740173683356470599582979943990899270751665695506649080658631890240182953702575921329303487071796957048690661808294068949277460964885892730412212806661174346715504939870179358510246710283539598045135762860917807176730766431366795422722065585925359892817914722319133583574270521508445253648747678931144416351290519462384467303991513518600246092932627765815921278353218587111353117699088547294463602444788098178657675234821475258702261326188479585504362777902063464056970955556974962037670416346808585011167142817422134781972997934611478779126076207432225168684912858716732484995205297050324778377543353930915806024827136954000290930987317517492510964166421989019029593504063533025182075301305225938700767909696369478236052035675315932934649644717935879389454801973480676870470094713468385601202049246950169930144022204262092234948562491064441777580827181022591178576413210143745781750836181599700853191845174490600311206450741978358327457793317725730780302728528150605946430920088105162148929538349433499095087910411029289377354241665265505483522921724911071976057094149886967376198615919708578530781057380991724238819403988651866937133426019237857639640031164314278626662818479944173311596002045184170534338672841307693832592269172432289599931170390388690408229019044156472514799562204106289330564919039285836117271196486249073890075855429548466827133863859270656143392353920190496136085803035629032529474655415550656873615551576532778046652053900317795938196100632050010907107378257213916884807090966947610785866543794617926791705963902169282389777719344767902680132243612650771280493854485327183818830545864461232238994268513398788915491390132194492906471972299772269174599507022261231960305414893412361155119752567244437225637896324014854945787222020178023728164980651634735844528108026654182733083632902020607189156211750072048870613868825497643401853584680405570110091799757366306508816208519542645456714466177457112891348338609456574900857367527013509368184574395030698564036444723223401940781774010349515807632143462041662344366608430042730343810964517366752311324552134121252114514163396731137788657275626710693777289223815025858377610063812484813909593689433866627361111777304464735232331025235473038181413486484192549981365584387191087679155957856086148407519069020725437067355725214246672519173597054933516321256386478504957687499009884714906818848969606214482580465008478120652668088778592313742154267910475188234590135904856410913093408560298849864609912527688163851147769323383948416583243367928839808755335218086231393977267870888955279806517503143974524128913921709008232720838889391585346597498181400062337421442133762187148731361667502465538428539240872982884892429445727210792322709397236894306993316212780141932058838113429203309377966988771819811492723751709587610620686769330032414570954969311606009118289446508765308135742333290766952337551989793363016192628818947080604762552385697393462460737064843494136166937696751512169439865831936429108723545460554228538609259212233776904179993527850949959338684808643612130727674623508508182968904033596795479152822173063382072404702008812868296366806459453422474143068647429904029463818096752887872077739467721060488012934252627571404069090674427981501904555555539514343887530442173127349809398438173278891285326178238086350861614809285117741139680756729896036664410622365937379867687674703070060201030159686800776167957930914164916012115146159746536738678389485730792846743136050875623051891036485755523429181814833247152521067941000495075605923077089879726682267093118501175363660236423759870687936730743409906788997580063418760635288743266950695907803370437664655964707288931783908203658680699187885026212853104450080446631942821034439080067388379755801627987203968156723696680523189284042931517486276211792132878431162312241942983245398714830951909396048041909292392020326189175280587122426735612902363237909384116155232535801290314369064332033672218754331905952867070801006557862679366491643034172314839743206920749267866130103183895589597049873035393362054232494394159297872559213728913869099218631665251193367058945058247588278857773758062383887672477248403947427643150206014370870344293543591303018615655300103071442854485523191923379950437930374893604257322024849028488400656651523619018242965565576846320054795035052696930551216260984314096789585509816631868954067655930202252291249833248157380014062968427936911009852622828676072466994470766686435553002572204016075667117010529935632555350542163537805371742512293165413192023442509306733356262609255508795172924452067096283088932832671193001367413526169916503535863900895126436657128210982897368119340222354687084191521885129452857179153413610722976887472290990778654373528196250100680706252413400191224410191941735177033793543661174193004375247316865597248901043639551787352834937893626506003117998091221209678506221348062535357863004192365450836660558208819718973757098411320192740254152452327731911637417108177525213067811958187286187101388096633784100093294271410707105351102237732063153586136880593420150666883454707712268636426802683466926379121832014491324486129641057585257317816440644466381291478243799113801826479845120628088637688129196685697780832364432805607372545386931257782453053012741898106272273725203141154201605107633709388803031846575426793932166294293335283809555059126443042086633795266785727466077814493247509194662035509860277746842271099589319402014518111054595030782360051680625863579278779059601117597923027499715668605388011306077761206197128916386472614939333208431916085871533467097620240375666129948944507021669051848134736114703745928715148784572480709642790373331752284070618574910834154984700636114041545785254371819311830236698975072968876582981545343784886947881274172374014273067203473224317466975652167458991383421300949647459035072227303839375796482522249927598376801999169789171367984652574421575652420735405212385734851863877961830575055659152621795765636351399774635751980763008598046944660609428707356519356097272771826525364841103605879921175756725491514570349770214510469767369098999498045170316076678450364720222735636711522467978912022142510396679509108251353355350171399298215328322387736290300834330089365500544310127152101403261194209136908207083276546629571601204916548414816754561988705181774132712293884285565678737017728012963745145595962443168326894950817525740649432789860873128801977211753747676371657184846207916046441763031810140539887603649476416150635601045394359418930772176323653645221597818786096660177804222163918811813695396258819000802255917528099373290016796749398082384165774183257788622715841352749897162421474920326257173371683099589275215986264835301811629433642438623797672968162262656412653189046803449410722060903399624557762023810428462781615729999649822909273348691468216691308200489497157403391764860621761612092513688124195227915353492456386035741334344141434320101432783128075285516939655784049409208028648841934178766754695913610390835385718298674794113174318760953999669069597598630461304911237019372540611360439902314507204430309426438944421973823715892285715228952479988490040450400185819176104355630177386541969995640595793230208714456773125002081139166533990086341506596940232744781758477446214720824910436566505378278888715765877519256076729503152684279208717487779780934222246448235830313807534271545388716294482208742253872933345774099251412558484147197065900403901829418434209070161455212861358702215299185075823931754493922128377688031311985477285865701020921070962922325326159046579929176939494823041027944671370561593795734991438732083987407029620797893553546125730439193490679100730623993801221697381351346770226374644742763046639509912475685893633479799602181753118553999366810350815794596400144292478652124508887737817504527123143204251096500987506188862547144437162413330117100311969864587077541586901012169772863195317591884545879274516597313734089365710128418736648135404806624833460805854957070242608221118101314629489117047273457757959714911675089234355897368371723339839561665830845511742958287996855566880434939708527295455962621747076573975255185027269213636588525812065783246993145439552363470903710231208092203743306793251532667063519013586324066203528119384086448174918295551799540826067410900990420039845348362784629204084646872485083247792540407752464717202122900070943147225544935217010993600247531008017997535013506457561274118408057195237311965039489379616055991991405385353228117557007236136935828460260880301046336543975915768427871221623279559557635078008337747282564939523621323829269369835121281408729378502751956578895192314273331753386871369428694652025039779531775335744745513591641261120687731471285168260228176436759390785366807948840349098474247544070902766993705144058754721386350484602939633291878079331241276730944420342950631003678119990503193407812435511037118121709254209399147046801325073619663780323083529915790935417822553459521477393212278951153045907607281906178763513009461819219096655082431387641250601782870657041647354093740635897888901532176096233215557322174116393035686651675846171263831354779491863840433446225790513093735918450022524432468162564580492414031894955476958313880830613800423807621973247257930844772211790201025980782971185158075620453360812827623622468351196669762265016209022534619392384317351324503489827171158664593683082875566266854253303278784207069208045196505418381254532094791184938002804485876217662526966399183652855496283939620290902271822130561580244790105079466379180138751942749164276690874470573555105250093921955664879920923744609268829954072360876488204389103848779171598674327216768645818830374539306015575152833516324370628407104835144728618092828936183139712918192724182044537699765423924380902160544520241598295150709100873192799180646652351947516711004135146308512322609706398082798722962047344520203585684773712758280798363904424633764213615698903790476569781840176494267168741754421728119120910294097577455397338550751732496053671262128632055981937534070958427492592850588057788381295791314674455067475098459439954375544291221840209046133001974023825659595191804271322930147453519782288140888069169046144594828765609857122851419766239639206252231911474473979297954711662404245179519618800306782176942756762452090565316535002218853893223328916939444973938001893322478208193538022251028061448105279519691087467562318416128025867428323760092273802226146051211420727445910895296137671380851205872183107967341513411693833809958220989669441263510187898661938688433073376959678425583653073179544379755709960765504437834808717376298013810328622053614814657007712744466920009044626726109656412406736995714913654188997653549335820972510562236762820761600914619474810808833768757647933818462643481009874133423940755719601717767534607531397541990246275500139085076601844250316060496787909640455743627410897441269155181492384555117438551805168447688845183439969726202977578651229386704378000175816934901384416235836237031330709687669441695713470814970291867742357463433245997869697654010113400860832677942606718879409262393030249899473502685194648068248707711110153593903313281523340466355585602421031532346897413309460273719957276864090614092528275094551777066635945184183052826952822683360566230619603673073666152688775250959279787104750818509391593989756420953725021113280321426621939466456471516936772929163214033230592013480542019747147298292783906548785391360121323400627829598614777531394045716742032512604894849782697807311790237388374747831180903389992492287403467083073343885657097355040946652831757667779084366614766460161823777279320520711426400595415727933412436615220245599277347035439215554418531302201544951322866315754843359302186020202263868699471073966130500007158029305500183402677202020595631201134529074810340328785706164959216509959499981175246562541048711855817402677671113102227494788847070475768677325882684968150780819694784725885162025493968577001537012116951596762594860465825181932949643924915941262080153406596653711929228227831621505653777398412711206949077698917160870818354024076578381242674915230305439140437352860097821385883190848004808919566780635837093609967886416422867468332136054355753099446690642468845392626684215278415675872326390153476994098838690017955784528030781567993689233685473445527899314217568683142713808789808745579518757741941083141658766139996363751447149866313371373380059768263585266065515602830398847338697553645409037786047723521292262010986965480513176942940558500784550726526172815464506720464361116754777076574190811744179037768185001463436040329046884010688048871663603412636198950279348469691743602045567491592150484035753370034137677410282086304803964382474329545980946973362775864447324702312415778756318533249461357643402824261478117382835443149524591884351935511946148161034601584461187099556250356005539733126000650879872268369667016171238679816640768434038148630669896895561488306271788994887335202330227281092819274346897503392948135016083236416959579885877403257618927451616989964544261134543553971202487322545414859441281470192332533700972555463379742587971012488917542978460703480375684413038070442717985771053581566351742057540867087408578874398628953219733524211001174137843255122924304195824423745797693388925071229553721561583863079871641170058008201481731536287074692740874327962070974204281169376332475823668198414229728531746057853999725053455779621695695830654951734325271114070164417722293177946855332544091553093841599719993035937417971272931414704934540353074436278292465394919203493953716682554496047308295635011421040126770169609746399434767606017178278594833445045682170291898607270951965570921013237164938219490969899872895516304496262189914365395776308319540440565559959856481619977868279189238331921398811619080219870176066311550299163978164981341851956353950203424028604931253511383730947176805517625205960727072015511233982098373008728669237168081170695195116742311212342456799742754242554309198270746743714350202067979507637809346110806216217815807272889824732443627181050961795313708530009664742981031152279888458177310051556674028695724389205118799738512565156564703389877222181142739381220207660906236852953610414377716182035423008061190846632625094317972836993700612560096922004347054679780987000231576188234221895988344809433789458421008766535126742190737016456019602662047963083052357926360241531277424380379816465102254340577449406992679785695486988256444312604461792894708175321718136889440042908699926526175524131024572878502151120894113544971629269189148556307457185034734100319896153160552262112681028935071836288384770899776507280884856416623113579518520858585095536742210036066647005963291279858870461776057268598933303234959059745831493364684402217143833328619146928931858284276988725665075057072637915103568677350471927670953252581608909335595624173979550610844868401333453565506083788431118397753216067389168102081798041374885873638710959435121724082702471693517284856959487904851523424917375754474875510425959671509862029271028247824543012874574824910016234364013230915256575452939650302033195521354308278111256997978376079549754869580464268010510709651864326673563402600199993994204232982882755063835168635083086095201699801369712225997040442303154581412705983262396222948557802872009022666616871609102539844464158893561876842088794613423352092176973994118131892797997738369666184996137531722378135177888615909017022319244416636367340730117251885342559045917336248184677353378304868663950415892284587422701928967944016399101724022723733035651355075120579779379293817922817414875368393663657843572328050034002356015869399991982460979902387153029998195662923384109068542597426715453506243874863359073985827736643674478579438744559072136303907034617158055621710642386118714360742386225881788746883390298683632038888994047397469681367528814495317130804575279900881908785607212009105651901333926931278012642491932888466208383857650413991089228279090242548715244536377610340505703547541778587744185211815042021566293548727783145017465227813721258782550482645060637475635344713977992648637724702067871655583643442370351301638378508080628284865667297778996372007028657350646806001486022120443500257994019772135201459622994939137605548448509794935581130730000374383172605178847326254569623666963170749913691940893329293691902429959869194726374863739569531514530295788254678919300232607393513194702639913116455035293329287959801993202853498964271894645982578958878396117757300032776204407634316767959241935628267146410222953557884241059501235706728254442100561746160416707932017026510332021189478741191179296577563247026544634161992778471764211417256161995900414792604039329280360933694341989835359570284682723802564313212134670412352909251107743922454505595344255286294958921080798713361661805820806897795078678753323413139914532168859642874448929693782237074645667886880590209997917547098950960387045612818325620200679516639932245066493311723715431561060935411417809116309928575358646678534117949687901109924805613571652481368208202306124687786424225477520387455527905408376300033261322393885909997796640356179052764658079174006781599662046227459824179868789464366318015344026855598690755370189361371757193213321775221039410295920477533624131229889155424530350180883951858968925693801041616177356756795726473027380826257910008875596243961132112024927681708517592653891471140423597267736706212380340809239457762706761599633846919228245012145528860381744326201597340947591145851745176166559197668252092382911254337799407834652999337308565861094917216343831127717079717527057612496190659574879684372725891458298654014827825271944239036850106466829944062519317462002967482558312471761271164490279626420870897876129025571677624821746973827745442915114300549597102026019736538175289061837264758380192632467274703497585859769037284674768368836666000279738771761491162602893720472622609219184075698096375873769560290069307518315564598079332117230133283820460304255967249092400189566310675118699810674974829784018047599834101023300396453052043745227050938185786932929990379078791769501848061439510979419934801862851629204921791573986879741903966077764687697224860822711788227491218468236896119745203865333262450090532536241367931856302128587165034116838398671251016756899888803737112934140602457085232516341441374984021678836219368568799177698802373499635619639816295463709152046548156940882425899466432047442906617687954834407640597285460655770031777092132243423276228693595739796906751789198028322128637634868783463635912547065039653918932756102646831726964848305497924425317702466038507321184417783544405619597852889707225565127865188864206824547900775474510302195723305741178349523572666930545952591814040458843449696255592942272967618180900970348047472452197133837987215898468616408212814140977362105965402643327265262631567421585799116461447624031779908459424157684111524544360495293045241051005336465866718563017151459225008745510147954302295277181592932333976958961806447310926219389764346301588868669186007527018374706838741676386391159124329162824431756058082929334194496376117582533568924411787263046834602145704675455910694312059404521280977653032704230438651886550119194831087076184335902873461457137398325637981255446221355072553694558666031295892314789617366627650069928425380326342057391225894510453067966056065669257958204290247672420836697495094800704502159164491529127475341482736519602523248386739653315921013873996915575213045170315654590701557332857968052617108446023178880461910657094583451164312159804810977195249070813502404785191026241937019498341872054293492066011087497437334074918681679642025901052022396321758060101975217173676723312690626299440470816629412096271707740307552364137306817646308461733549113009720389457575443450793154613519707893027702820514383901939186415696990406401055567545855382895451897549526582438617026294771223285734045580211500324870166739991785201040860881809676046522299566106505686574100930106823784336004509797634364119110513210917646874942316363340208319890031999416371037974782663403427125885513705903681530827650033179334818142935894128066756889870442804890875190494174956860114198881473481075338255207437121013294334741683483538888525379166504563630092679784450616752324625290309903825250505612199221786434759025681508612583160903800532951322008021461260977751929310877955647559609473560677351678904772701664462726828110051016193589592676911200724516878997757591984044956114233237730712877715161334380968100368001131985101930303117061294692309738031643588548682501578076994241884165478134636832981980386461211000582431815353149333802127007114374327877122073692509963691437096458764447955286210233376814427174355888332311567659944520443565399971935308702689691522818060997551443942778782306561200648401500594920082509359609832291625483464416892703591911242848348632900901115661847717048898335776736242302469706031658088193419659085571541589834213906058668285154326916121582984945602478760110158676374376771119665792617260872833123334201030349179717023861444472684126951778107750535883418978136257302905255273815958228229454272652783780352776277074130727920971509016535050427630740776279646882968820190617166804798362138562938903238440180589986482086302496547414826263260180028920107124403078009651170537722106455571223869983260885028080473497412266918352303808461323727338301192470525066025767570663624668002098292659348765961553371286774333376267775546511875751165028899138688656835780728227530865288453750571516945963918996045007074144583936917626844114233675609559352890527219002927781827377911334592143486741510290752676955332437919782656314602104274412641186652879792351173120904791832789868931492510800290295456523259151809993331025963046575034264668355794398153837709850097716929391526977253470503265925897553002979403689378643925457875552609120681354362874825702303241330639275393330029871390024905886217027642062650197163107787320938674100572812237087552974024131169470345857935208466825110370232745339829688047888743300687333715995277245463059369523897079195787161662052945974983370821188602049305648584225698351063240913593750850252899207396986749295352214935446370398494406438237501781781251216461092121810904203367970653443291544471412605639370163040779863832861502492077477855140220059679865449904481774196261290970968853075714689679682038732875730674973932309613987719887203864110641563950848947766406250820275564004835826264952461260876545439459494290428256819567591546532002943075454374409164427024468924699719832796902332009419185693634994262725511318440661714515625280499585112189412107211093622530652827932985468769780136193760168362445454705061637385705385278824849511831403520565427661311658120221236691942613167970121182395820585653641499646897237419879128059315019500684979307762104554444937537692753547018869984532780537370751068785690647072325148692405960102002200214144392832022477145161063397854065330533619276250855413022995153084499210722707836313296604620942985128645071467912788630842000116928964260833552501552476901833609720484616364117825067886804023287549578176089145784136805708953504610811266803916407067904682870370503474401257985099070093519211208152935854529887290810470170420700924517567875980974433752199627690630048405656743663167570193638277974700026192319466837812860228080113359964872848854832562310516051096641836533277393951109272845121258148500173605994357617149954225100879133422267596153022034520483579452058462443890673490948022893446132251599387365368202813382664206518997451940177167742013681977333212783818000651112154676046526029841948852537989305563659355940133692701622129730083168048385543063681840828431811744361119393773488976533357206374014876926263819779105521465126135082569620789258921503851018391972518663984774361943357023623394297011851657496224548687263622069068233464332632681259751547623419174084080421219659646532173612810156323488465363849035764942801311482312212114065344204617333272309958663003070525978162506058414002691117376666725079082438197024131029623327291741404246657517183452143870696882442090111993802460863327080960626002780311234847343903034288568665915410541500232021152046698657083544372964985360261388304800166735798937234699238791049835704533275643755962558279530037688478543847925390954307012939297846839461824886905338576258150065121691936552523196509873543903991828282798816806686046169077049814745759662336738752070561532061223651640948016521637863840100403302242977102116022288039684392688247506313334873216478744137583782841639522682219196313180268911123571685220539370113869926816802887496610347925313708988762387472281673922921284189509364378473489736796115396622519613502719225607219901403126386976917867222701383421238034146475833513850812452611793819955358557346622730043725015342859004196305487022749140736810406450399653280640664067436788328933889107287850160475737898912322726857561341584028399541501686833219104487316240764974466152375933314692613804298426479972694151316972489313531052263732223297100201391921574645713100484316627112333088827892495655288267040546906622749700765104005552394983258864641978671229705187932363012792591957572768222351656638896503316402832634196168603066887639591639170811596772881872821490606394551826179418040161354044810842275288083660716333946858781460136076825756111116162838556759551603185826857883183076595018066547286286895184378812900793724058054156172858583970274168759671705737443332681537594299698448480164675910219648805484643290256173693299244953362930933430811171863242777889091948924560534719442326498224716991160192937017387644286616078276111492420215385835015549686639303136966860358717334491360323529907886569967103712598734845066793077985975883226359436294634075638556588779112733751939212080236337352997947443637545321603339711895719024736049805293065998805331368085240473549362624983323069561477161371689264583774878863084054520847144873824860936661602166267847898293040117531420427745209633210589024230975737964872664325424716493714621581583524290862277640231262056904363711783168134627785282143251357188247103379712848810990963630589170581145352216790450527554787793561772908891245863065448721080713404337203617110024403058718692927241366583948705202988549108591076060788755424558468514679483200385663450145891256175844132516951684563269458382933824530895067374815416080029790928093803309089877881315812976149503766993538669646651169783599782680651189432647520295822770546293543477804242733490134739720276932856732784530961501097991097558405308234318639079941467280616484592174873851579226614895740355145380727915005132964784028990418180928986368243604876178924453719900405321082104549077827156655392517308677888977529935662245007940430120233787451501709012553759891197687233117269763276715503797595322538885010233680471131304552352318570108172723794701658077552946606308841279512077118420667808617723542069216183346819333255931769128562583408998928159936369325315289775054130768498278557646709138225483588300041083656379981652063439965828376631483670379040166411126402890445845186724032432943620042931564833532698685758675576822313138159020080411969120239324760501043018095117989373686493759912008325624516894226214283415200968839911903577036472686336316975389365726190413844879045863681571018359698980517725310098901253052660628024843936090195854216353605776658487104886906171787744452390181405046223833884000798066954193930142124268045227325679802384590783163661751877657559693105822247083965448709674741218266903826153956416464473062765567513477841972114240141534217059604540303528444861928077375238731794737796594317555074459453320652528070189067292194982477997852646667154102957298144905253314040404016092776051241375085181115680242721206628589183732193756796683619350448623166429507664821908289380428552186667599360891822234557273559143461081491126869195557135945585338740449094747374996453489993966039172684684679063948929981443941581590482891736133838474193693743542664649735419725585854838175169085485020504006919093029758650548409138087523813834437324531934952330168105542115760415174057942179198801047133486039940754731099054890118089677521818554028549409546917451418154718703712465214341224466448207042673622218371965228562806513309679516643826471099107721830596757759607720507749499390581695459915909382101731945705173462708396009593512178108249744973035293487022868441700548440194578028051762982857314176701589629239408947012542431772540454833073062899550002004199640184586691995630013414136402807946450151680621970174000422951584330508706098186966908431334787448295354396236383478082866890016661599091888836914914006263990053141018821348600071243265462873318177179644710020457672743871946975882700914192604622173081273400015522931756725543414873362813757071903566526956334088233977099717184324238000536227275105108149423518920405939841361285819555044119320643616723999222043519245203200845906491659157325729231434205880695991336818734317699065068513681446022133110925238949224743554123787004404693864717281348940159803731081828988757504181236228815790865909228947670546149636136704864211224213075655509562250626946479677663541506757763731295118143320720247272911043728487975248628916352826164066924227425555555594975555179865293448920858224101223102708503589387800336729733607138058929032465623581989995479789808425023420507285977841021923534057752321900925514255970828602763116258214973993976664463352323823582732916056690616086128833849875276839759550842665863351307495716307714636461771725043825812552451295275327605080368521262702469125246738494664364755675891237975469319073423052845375881629920693614088684720750880293057384003784961439614572018645284469627511466551511431615395230022675238013343726828299090852836908582991737007885912569505659530134816970549184319869635386907639452262795080739491157000449650383387944788185913635224001722054528673775032958138932208982559389341152112207946297036274767478292236424864790282775254580042661246532628478850993866867525061914609919461114267560067061914183830622729868749697773425345953008107906612480636461924754103214230463969251320092810084743984648258664736227429292522739838179098054231745862372195351671309586271017799222297689840239662311146974180187758138029306794719349214396121194194402874506582461030682619420470427636203571767241087024705085187413687295802856563948274380502195490578001143692309935593500654251903818189827563079283848688051808860337371986153520257097542035113242792623344122084427589939308371460175790909777399496336118456233860817840620494399972593347012073760464996765700876162941166043713386746582031898981166134452146859405192989931787366984326926398526145457533723902298120442334940176313124269379395669783771117432109199769724114020466629832637213591157937410035104820736629685762663665871150119067697611726635652824837232799711827420897922404338316349515920110736036265364555333277040973370536071189429899472239630537111094892324446198296398859512562088781017613528309807404162383306850159956534726815440142280138676845601226152746969540679863944542953624101711672316583838533812482250362698960223653823038215922788187191733714721088731378287852186206483135239977418455801127287345599967450973766033800258020400798482864126865947254192837545550511765829593279259712252240003586341000015075661387834277627290286229698753503989453855421387592054716934675795661565930861242761786258123421922232758936212774594273675350860680195424724510655569411261311782868555048969286031503469368659190157634529052051929634978145314775366681309671804101394483470486065242161048754767367682574325709631754186146405666919127843465627074333266711518440333022611547301706266651719269488398579982871156443146394527933713897199647584778234806110241987241169842241714726985974184859163672703975055138958861918297859517948784907018788258528926566315919366102112752977770126517820402487449595354613556224423473556791260335431798181535974466205038818208559336133008016431243162092071710138833453827171838655193416695786764930965367960155413378193797291364362266634104981693203254557182147109955091264195040243542602235003663313707347976633823722403611789107751768061453517735818309052800536197437891366317162448283860279977117897524257724686382277263545412915533578400984991171594992163282898243458268626594836994226947311671470265297182792874593481330329258900818128445648769296236692713479583860569732765216331044782735101691711422614364014065598858770007569811576277015805001982500005051589913892533524881524221837710536126201973649695060325363442561986765541354712012836366404755330255476666088838353349664859248808443815075543446505291593119361962165256190578298431954152170500243091936610933272605159388521533844230488822961001523724296963040202382680814454000683471032669025557921047320471299242206652517132781868992069070376656272132543623560252953921138545231708042029112292279251637203266288700878130251288431115546611467225389451123938367290299762386083664162226992576807097172338067385150181635856820122972692674813632111290711003934431324625670594720674267320282552897615197391251582251997239814323607251117882066941768614045964101320681685322706167681748557155627953620627727698720119941551382784012358915726072225994990291100039374311070652923869848529992173337124908660299275906637935701452181407738622274839306829305576852150402555310549566285274932246387151692037965636177158932929999769834892781741452423091677505084601929699435233418415514554127428249834163525012922126803249988050239259513337916138967892930618113770998912272205057080362180892931149975620093766330159851223684639581244407569260367948591273335280307694545669125450085396589044890560421938876890932034728475277525061120301731491193097895769081056453480018087048989560977197217235713790806550451155120584992737347405352002254322673695704049008570916098569749465706163232233522591509775400212383568061799112447257522320167135420667652127706825237876054585252561552354441440336438576788228170473869861413836636731245270498154806785664359112079490582291774816019461196020224356908502001084850160235740906269790969777031280633969150462386861843638847058783097809407942956280279196041665835403738934268630869172567219536269940514752695862029687129667977251119402015328177170112377829872432359004569488114334846474167853557702387883503277009843652624976923728606829730880294347425184389721459418823965885724700606561404743897316215223449514763466564004807491241954564767226576534131867997438849304920269440649543440047807636287653267619329048528261758714639768344497483247891172992872112663959769493308953375879249299061774137507500197288024416592704465579510102351046472196916689248359017798460991247654901216406473281939980627274410750770307082750977740781122887096335923119739226186191150432026062338906420451928808433347892254255638713512608731681057219206850867127692966762713996223192144412998243298810525721395582426023181949636797466019071258359621747210985010985989749191384973723253680710727454025037472557846234849254425514481143896962270253967576054882714276748748120933916017316156704939807731292595515670468640697242787219669356374234198553283041260619831266610273912423462530101366191091046758978543730212014432542858319152569506257543785941405030577677413455753820896887888227744370836851041053462405470344146303906762077106873922079603030149532659126260385848679297420282127050258096510580643362581251727479319968126962056485143056947808660619211294569061004919581100321506491606097040605378239374553987829858247619271347503265868509366896347503199147971216162655041928335175836855030702477688498368847396081881074985947150844254316916980878431815677183439262642018151148045862863690327195385780978114643795958978984944596764872015805984792513830767922408077759366971918823810662040971713693832972686881397540619879799346940822780034303759209156863091669566534072580246669507567205759105927434591387937407248997446173739162112613558489796043688123968353474650371275537924855494359783105856521226168671962137096926279590219218527085670254227265104322677759627195248074645367066008989233557620410589264238850906156077006731843816529341963839285636989198567441363236111515840867379902633015821122624728271289988342957853219834709798968265051662620160909492948075633546155612443080652021069065040789818610359844722267199385326155171708158501993843161665543897852954876559155463990330593068667058842476863541075551062607035093632409669717432104688136392893112606974523705184681610905545453428152238167540109279310494619234995777626592679122897997256650976089957001491029633390106545416136083569736129489817213333099724626054978511574969886287187965207337982632824500426882169353622137730244918114103395413938818027065085852440243361245533137736366717245366222293518270354042297759932539113148626163715421541297474518059805266080440013281743247190409023899425333335368880416670062269646741726306074607724131379550669231209354438289650913335378837494117919326658113624673845522839638711816206473602543416361073797287318308361838182859919744952324055309789136752667620624976022742071867460566152033226442318303054626589278828818235277436499889364584629941493743525724582554632587684922557317236615289987815419690371123261394454057209628929400618956798181677293618548108120213718647705736837927605070044548005305804834451719829530579035002387217277262603160854283460526503561115790902954283243512935540258867746891257520098874852455907449112587333342873658346152075891511910214499064031673454946994014119277482539754961320016485558849841171456905471069070636437314686876620215176700933620023313741246458507517110283446769463899783258156249118853281560342354458002547585077513363171835967473118778683077595952590531534423146488803710184862371291901636023700292044773544575376654890506650665290966152761433653763406156478092333048268102934348675656209914768451047692248937903993261884905109626290745264814894631979163501403275023842747028356081530632398292556679988599213392962935744436575726545166509463468571002484170355911265023753274466814641108330750461603565362970783307764420508817097314857336806054436789450551171785759639204855775767792131909525677327841768999352714785973830928621127727727291001649792671955685410524592437816042542094245202971767306125805554834787090542079793311363636370521080569547731646507521187749712618565730354664285840602458702008960516363160167261792521958509134806588537177857640580146204205342514738976349451648973136900429515286865544385812132870763366864506213500759182309552571374619935464276600449572337030294533160729315375394347337020038674873534071542215546474450218717508396750247041260952655789364002544848510500839602227576223087323282708294184484854934866327182912362246321783014870084352826347694924484667535735157182071919374466668574753889026383849790362125532503861211812308104046484745674893340749616124648686268990625622561080435021505372406444464615712639547875246469919228504988703567918541252447279315109415787394203144545235423038661788663901771706845981091119317186612418968314851979959095019313671459180865435026627352978500320180711989285848495117106634183782800001222096905507172943173123745733295828355353837357979589698048241654330035161563758501131342623373751035427688272064356149695647612033209903140343993479692088074546885015721856860527604128933791019635697373011675682802112789821914220329128544976544278723879964847792843047970948010965121219644732848309801307721154605255354760650338491754625945763789916546713460409344465441173231315428833626198031300313178028449482193144393053118537237387458255371102474180931864238980413095812428863581288344585326578168352958839969766567743059545145392113295406320009520029329822155187439351013663219109141627816008122926135137464691667769400665196099103048598792396622272641171075070906759409525314374103913848481953647985409872194465249468793792359575509311218962640037931962686149506055653154400251692938730165425545037910255847547655221485556038371573023069753952220525805624101678713198292099614805023598818068997114233005418513918622467047976662666383423704716262858112568011702564257481230221762822914807451044484187934084730185093246419863572603345687828558598591615183149613428432588249973787209584735342261667055318872162590892047894942351377640120903610217571907979751110985324985019808974033258754677860916762506743708380852708101621900484197365280145630880636083551469847859982214193766192057104872235863382569012675588068734195740984600170949896553896818068102048629937040472956463903220587642760577163219781149178659093364116395302808879104468486565253183317428233215066096864066495885662299156377986438001390029995974854506949905413796405516707725948216041351003277425822586138042761872264789101794398705104126893108361003919861561714394219613645785047342601518603911188406361498805491253157538630271840399567637158545393073029903555200955717718582278448570079577559746598905160492682552982137939083307952347775907932964989184754064300551336238054325131742558901721603587418466081147627614328962994304125423867615731636920416548884555709576425149232339699096109162035113578197962621836674112170415543706344643413665683613280877246238586670349941622183371122544879143134384461679103983815095499687429933699173896295018008869629502296478774830937271605317410624207946178692751114091958800487470040808159437954901484897257073451342329371950489200951600954955465178026637589570456360029498920263602633779243394125579722862410774614681440292148632412312453806431197577699267076895269161527613141215684689522314469212208924204509988899340914405370613400734620707739491469047416901232143673767875995660142004967857306230183187742979162133985028251224599977087717552078011304184225814578592132237662124787861213126184363124918088047814136789482797410447297809949243568505769571242080953824069481537498206561713485481518187718190574135594291380879080210138288904108887895688405266275935138245321596094587069830367942522995338973222771548949960789244659569637264610206010794395243736675134617902228795811459674646860924331397632558961846169820337037846383472756210723373518274534310872072168845115853448543492954776227180348570828169684463463058065775516059892362389373210708254801443569951776101413901092516102737816904405669471916755068804886855344469109034204041889816015296635871267628105755946862494014154210102196170546438934919669194468416404560723044875470816589624206812376269466631910966179246669278028976508041671129732696515513879893465847229953203000701505692611495654478529374316160818522911850489876361682156759574374532205396746327825129173705261207973086716074274196334722697261502888765604669574596540507473123132592577634401196819125010274460637080283791109435845338487609988063403255754411579281517826638994307226310891142829704174081535950535936758346767538754616258400425221162923636149206773834768552105429901850699340659563208286709766683433763409702455263231579098415812926032356533359094717522511377967495482552086870554159749231172873072606256353496550417286477495885103818706497284769934070491424715309988939605796929571860073860505044088240234603270313550499289972893393461634352949160359432581722340661191866820309562457777764155668162458824529823974104606927540673718882982591034500270718137488978519061577878078020703247874893268621620518256939280981290631603210384508725356078122824201018123537279114659611747880825875774057706017774752715974160026711591097569483792095926195405047962342298938465628973865814675336224977025366195883027421293323678993068018148958131995681178556303343233485142176264862859328106905803868622179731539862826331697968918484690919502099883580262265550772803025763744987352721576196806457229614165841870581939173284225648730220533079566943586007652863965232767457063393179379275950743848194798866594878167692251916239466241710811560307531421671189889069137446482764822557455115378989099092117786938461291940959998980647597936927348759664134299745870126629527386170737029681671678682623782751751397766658762558569461661615869959792578446877645689366321894356739769544715549105779365063312811066515681366588773194729300496730417020344501640955647986327220218772478719346788673948753044478816150181089116656074115524108277568087586688854567735497466579406159032215781039379987538857849173070137865815969600502612350351177370510563539718659708517477701058529066286901867835406135131356760597867834387012154291947472594855074217634963590439376621870807565447382346894641526047001992909169593413906424278134689273262015339023939577148351562745358032241234099028121593086043994270556425586907145804158935562672711054541930823469779884977072621598999344573724466475614001007289501595238694390834014384784500594345096930149711709809516985490066825555702812130647903484837962357172099529389204310598690266555159769840249705369376713352797127207700914736844511542594609268633847010891093393065014158222731417552132004582254086614961409472522262360400872420842321843078245289030442263303195988185151655430645010871018989594566091817691432486390875075401019961662114289884785288766806110659316559382510847105417503577499582651250600149576045029585652365941713812675469222169680654295316859169446173060528604043142105983787987806694324764405209564328951019050846354694838567907950413951568650334502358455497902725321172010626669550296962000539076806372781428588679477633290656875195781248589383196824265011225987851162627403573461974049559174681614047577554489902824159279932863866888024869663632203576184814930152897977587574371626579250346794367352728853707101324117416028743567191277304730704483803162911461854890660234613849978120357111952393650270502478217453037214839616864843380263668514171608520537628439212990346352487315916184922564315745533457532761421820220479757936835470933291449362239210967191354846009641614966459017396154142132903465984380628156347511145515257769584577519545384559905350333552065249856529427603985244894258427486792062579804168430131001467672119736290039890564264978355510019023631391248555261968907865944728889602988595348476067277087073270574101776262149418088715867295297124461418806536194342103367613119869154541148801303798093455293268771356592769301341320254663756502261156883200180808321631336891542702621341975534620307819685702799562851808293682308254948500898728036783124201572846068244244972471021960672104609371845058942197177550304028245947899250243115168881529371042382320046350266658512751768822342077057283526693293749942943430648981312674097282199323123833675702716904275622463010375898854335965773241394695910016838238549799101584915230781112521422535298795597262400723304282797547842981825325629245003324136991970292461049520465260027382688749749545779672705943388844091692843084857289125036804792582186798621123792688336659850631601200780027212305564855996995824137814439397655266647361480435412889408166058994368127210509487002877555730081399535613430565366623009051457941915807564651956485920591928979429698539917749273550186383998052417265320136499696023079047007124304293373218058380016290476538113665022823331909363795687648519255169421284916379194471681360028109098878737841907532523088667268736009356549598719298551254443377060550212441977444503006576393025236662256966837930275221583771680705315257493776990229951156851862295950504532129540049445377126220820883755535504975619622082150268429718708998062619126332257069630738521561451997220569515296496916541728915627978617076659307211499528361183942659835227824746920984705283522390009769356407228868519474300395020553569432782759133626547464238351325747368392748462531684134312757298130333171066118971367647617682722985011106202133725633151541561380051645736830910479330634794190656854612965451070279150961186185187976931100039209934059888705677406991247669819785069525200636495602771525618789967386794514997752942718212704065465410971289664858221208747348737784840536830596187152574578538017459197275474834254670582668375665499585285600113669043507488631068211336555004031492480312210579502810910417012620137106468960243880274394264488022967714716895567916832027256331515672258437779974561879734173752913421897956447523196133749891530304568138441919527785575391592602275988910949743973597778457332123704774076664380581747466955730387402475744494656887391534806700014925822195822790573507414037231608928030966146618893348144360053006460650918110176702137830450186815436234681120625619626570976595641240560628261398240501177283038431651728804876857632420654051341544946454403257776741681316600694514698414408280604956660460909899205939425619893662209302006984390360106671688479265463457012452040829682686626375967402407363376824905866386041204575355335167445650462535676018644610824983380638033576557727371605172677709182068375513958564622553899780669632781960561003459651461041120041022974341777812377769002701193695289889937550627301103250641690546097820647747067741890810754777059971367833539668628396379836209792412332314021881713994623700094796153406342398632022374445558978863062388381606704467155511191791735766839168972486920186429740416667346263833984925267457938404935553541403353269939302413990970361283656746239996530719750336850494127329678077854409964160192008072945820308912516545600162700705588496443721935628219931743062096763349488853047352361925909921948675247644209405751637819752553279372684513863864405565361837359354451731042518860080068358675209102300348400361954190201353868965149774603042985358538561916875582919766761981591299835901608999744587370213970037266081112016026446993035431014952586960689427495245327790721855522114703997111549621581624249290609626330311657609558070020588519391950672623028251209583834235769009379638150067148632687946834725949545837915112800981603871718262280282234173159050735249938473875958653585188081928927783955006086226309666213079631131887768938403029404457445109326828539487493389924527826870753608940326626681363806724847918470760657016313971180595508049718009810239573038350469761119588396080338161605847941949021850512624886811038064122069264496125652655695898364875233387335353331333979168076969737435715206145647206119133581572296599236765133825310096233397696673422352899755414892008576970753141904390428600229292904169107060925870873840812218371470562865310698195808569535212206054735000851480920850360008253723023540186633733512664383142568115824768428592484975368047031198116908579113260686888978567978867862323607089729327099355459134925860006933993645781344628439376637777203836703014119715702824581823637755276116615848878068940621343354260346483632320986692403960536777802309516886361845420465856199574587018478857909467642883575821128948532508851336645915215271430518632137747343199185663866489437267774797118304672954038298366067839141485030255041446154373827957379710487250457660599244622273115638473910194457792669522827535860279192260345972033593546920221250669773087138558485107093138815515995403224407124896325924955162752587148049402249182438022038653660587400273209694002790267963471576605924401699460076626863662996503424100717190458266504554077201558758543553219492410490937451164579866457038381757188098775728993157940914288634998130694214010963385203926205765050234757173134706689137255131097699254357003942576579885288170531414417512884408387685101311423728309876037569340249078913555198486039937063032420313645273318454277126995379104059950107105972085183630458551876984609857920372964217384040993842855072095456634838515646915922853273860049837198049666480536872403967610703542030852040842715401360420793544116387354288265450892853861833797370561452842884369555826157808910630701709912989781482819211451579053660831121820918444804817421543436862935315394147480814933414571212009126304082831087814064123061278733550273697113091141570488461927793666792017196092792730501845798133224619307587239834700757524873075202447867307323527546755840495775253221144583032337164636654643889988250250081748324108633165228354514426559308821196509649677851248191061468054832387919494505302087638397632620512977838074998533164359499319890872843427256655738906849445551751776474967328205366993151346022579835746765958825393682120902374504536637897875403599594427671317865278463298609792961804419456199629321293184867603406603512162418371803750111264720656073137248086706448829848892595460939393883242767599738338508417507630913111765621940317852790813682778457406495808103456152570485483147868143863744358864261587800107629647387214814019145651578938148766305234476035714213159976000172669529494815652804686828089224452551783501021175406241072068614503894422673299859829259928590737567754563679779854430256155019678280656270350820857973379573179641364015040747663934365135114612748820180620344747776113802372219543052400297319905883916118003526420758480346558438069278505206823500906249514575011395199158363144925865118037332920149810076561148541398878858577221517964506073346823030734189659964972924788484478390555882914379816283894066931809261457274876681936580489107730858762546807116179265290870213324586586868784480770847741959210908828064552925151588371625402550377060053781688811079346829408196281220826394115980105736851476219616843456827590400711215697449935074173198269657171108948617935619556046585489385959561004313144150493666836812866904283124791566849098806266751044885644841382234396366764640078051753170674436727534115844168068551815492988727011680335087482919653660025788170442889598222509217869680208339930948340251085616581763768531687616115083475925124588323962988095526130396419632071685023393414705844848552557176399861201753829373989558580331907016787069309756605311475279589015750544162776477903007071521052288158808674377017135534109183818059964421566022231934613537887685395430827955869941292614473654043746578882651397715585817866195566874994631346408247087847519258770986173706548471093210142472479746401480715495871628801259443675477339247047698230832491969783994056956543253894310425631850492290066266939803612898303072924671577841552423703741819061738267511276123719190569269254408571961486257398232323369634214572980055720873497919284017921826941430003505318121074177746066578258129116401183349076087050292681688105073043502501827897321022438415704893219283356693019589230350850904681941748983432232176192730920235780144547450629399311284958099941536744840448643103701539552328045883801255938408043676939924257995603494670452412644280477846416686229065321168017060719640687781858975298331814478875210014246724666722309094018226291581288293040285985515195331508552062762046355106589908723764528099767651730517839277295128770558083060742429356305715774981791213113332527511683350090988596985620936796163362296906508160527092895749509538407708922658847896785092668960945436928066365279851305442640490064150617314614174960567729696765849683087118907739824938344304483069899638837648235399755520058962769583156470523660407754531677068116281007434152416550339679452333333890271249041462428988277838806694791340535036036022434585084750695911646523217369152929764166858490237038155739664949005516958649280288472537168964360892190776729057396478455375229243512346401826743128147152088272050906030530925938212415264120005909038825549490638381110319508740525307085055559575333226859649123194037632191093318064466717965696248409606727461138011831292066579944023758278637090366719043666404723692516568188126257118241861933975925648264294884755368639737723057188525368219664659704900529438274934910814511845193858187149822453280252594182670918461605998779174009550120774087085255883901187720377878538585028366084205690582821499975956574341972452726132905196964521167622950943889422059172068567266858894777405042966896522409602999656233446865439435086291932131157590454942674348078248596575866516930926773431561599231397726445982553802503412355477779937848250947610429872771583730324121842700411617874846280767552889985534970314983669085752018025499100850015484321722023321682569442068938421678779740503570619178890046330916098215563439937877601011169023391066994602162627699144101957422548449210753969074965201563162144733171900230799062741708961238428934723483714551514478975379045531098223702761880315170893411840633705815976526424457848043176993518224941698619546832611329483612973238721266283106305147998970626294764049162015765061717470367437084729917917667313025691459521289674856467718240093699724458935089500990364315724246488424995535699471908276832718908705461269823479489379416714747654908891706039155727267824069462926617215298525112602053992464536036722628131911342897553973937975730375475644378957558079565814854749628738424004569932815782819531747907092777784766489686302637259841029357497463975534613389827383465895161815151996297424861007836099039800343445134162378852902548923807043050509690991031289370448187554889306056088120373153823565480089802896677139151301432119440752327542023330694674599883910737398199297677704642180201402039453963984919981745716703333024515117866893074012092800451358923716645974442021440888576514990606346645960398397493641640304516943674473141048649981832674873877777853856507735743264517607609271921999863087013692434137546300103617188362023608488609830538920062552028494666829901633868530434124403163314500693587720419766008727236505600197639097537463850772225365095754213517022139077470595164659704261884552276682727338453550106282084611601151588831906483276268064511560838356729817182327712362595857169510110909355957668756836237201014928620512025131589238748484627478146922437636670762404474418017147044657590621301876248320645340378623967323042125801707908623913020865122899860099536494824078161279925787183007687750196855773786457965783449409972161567965216290985661347435680471357177025897348519635293407180035257141300999966633381974278545763566237318965505521527192021155896786984289648589550673709260979733651951820207559170814471674423385826901181170682516231745695486970539285121148864648497321092861279058240274426308883781038807974763677180170658688407504141664746140278219189600110621547726388947352563328837837312993882549842727625076846120020873128285467351906616102759420718192253884320250829558428676178391147806408887127924369754514626090540279248897768554210764564545837766179273079341560950842715562641532691273097330091312258768467802288488378345634356961951099400418313864078909290111978914227701161518121664228403518690872070298955093001653163238991100565528287292420868287185740862212242397837512838348895722973030855853862983937088074700910039532452145527714123662082541199360843453541795628794004715854251654171379199556389219229744715285084309248648007924788250968502804062493661271322391076406181998129716413896722812143887860377367532390237574521261188346330985106387374330204995762414713529020115549346936503183956035696009174237094246992996453969755215038385032778874782368860888115950285056953692847905307773548868159105716401818935792477304780713615963951489619928839854816347632854843211509780749331819450568654837959742094464054332254651008725227521525141547814703876377461489514353419740907947170330406047836100819931664364703765752702611227966709837558581768286424465571414261065422438676639427433978503931029230767166584669356442352008285281335029800043966499519594767338735776524453307321073609494992137146361949472502870492075795080400746564683882045485504376984183755413647556698302599813474794776736069364560876587967952680172283824694461706684809940525034180295951746407112387222475017186003967856473974368704267572694273839916427841476775065966396909670034358352241188828631743614856686777631626101507337470629378299514616714126637827717512979149791149875938009295297850279056439610613245610298338253796362777235903127904964999057795316906584125098247313984555719306347851657252099572461182618594830991795804196934207401597704635841507536805857252907756353998254897569697470657208246021679293525409164304183626173169749979251661573817594172870577074976948909908925651340912195950618332193980932972044984876092894045341610771621135105815497825192126268918893412465289185127369356567966863394552105701203743609320482775039470321528663186854362325401891143446919827095065730842389030730984462852082155118888305465951241438875148801829925889844415717580303326501666062768751528161758243509865234926156197292365166195340382417553244080532875779150921298897206059803040812940338057821061496584026123342413776652499334428090132980573249926126392847576806607177696627299413418848238788885376946812167472215764975139579405950107207762139870739848089946267563768345122691613138044544501427113054832050935634491933394855074511429149035861892966970640289130100933371367697850095798337762643981902711089241830193390174593619593763933964008574932307828998064348842381979526380741732251253818968565519387070040065308961728122856032266328598359422196856266158585102669718162503591935549764677218907084655991484063264944485321438311458553385822992119373991436760791929150597358072878339690869364153695260563571961561893744297800382424988584470143840287878306311355223857160716772864521653487736544384173839861517939876631761052284063901535464985008841529495664593433268437013862531041115912671740595112999118627347131296539570046352177446179423061655320795494736465862216681800947365635527118231072450399038663081636537006819456598785301106288493218428363683980745646828111742223029419269587520287886128669395738474141383219954326464967013281862799663296398729887352028547322020531913581213846154310877696737413641192090789125019119874870709207098954145783819996875959889241682047666333230817875415450962459834562624697526214592758431935825635949630544974072567094350307182729959267224896831269622751478203732423360090225840905836477803172037869249025020927439312555326224607302125141096308773322523354917880557058607206640724292151719374634428541866736186459967236819150026498818536459308923673250085106243408887431693179511779353162543639858030099352154646790238011115637214885764310170965925926824268134305487266656136396115362982993396818084412382716291563606583951798653096033109666553400618098002444782305706170684524027020603428189714256167876461727476453811064474332233288017697599700024094359851657948558271386008292333273828023455763535053902820302286943357403098917724456811779928882783249520812288539750621870160209393090419122575108836862283083384011580094546159833507131223252428306589865742942351353177138527533244825010818745765745372346784450866031558463532771353618138263324209977425250292906843666879029425573205642790055856109898369229484541606785215014374334701398749427613746095306365098009414793629172202997521835593099345224500453191335625496827688567165007164123366077556939344321810368892786324612577514666429559425897104267443491287984157173139688358058450464118853990401938919635715456061586610888793946149687955788662670444930536958007140453262859686076101255901501186438192278518897439000186522474168041660304859760479451649606487221126010676147835810759517840335883213824769245664861946450201510102218532193805679517250588123051332636693914897482016824920818116182186042851691465175355629645635187244651914939247040942510507451200453296373848463954748972962649723157657189707610230167598692874136735534980566247147899356682811531428090824803687527779239298941623121594146218546082147006962305306516202423220496242907330763986752398348762217838306001467197576527377396279334329897087435726575759540386655468749363062512923691494136554574303856789086921497275441707356316790226630796549100177936059166111184805965380850844151011443020078131826941613673717175344560725389442205544752019815154199949341603793698831479288912578087513284199432313488841775201676098448119570689316721271250402746823806267652453758229381913243504359375592341758200399080314378060293298415861555296751743469855409441542538333142009732806991787962239252751311474334660615447322532563180333656233939914850827697350972628691658230839615356081545168958905240483816056133125094922470491429938592270703367826363225687561539042002994963400374261456037224077465232672937649769426584035972323687221099989861710527858927431577219409496715829230934628877844054942630942640674036992169822727176217231782681080588433618342382455934673706050198338089662914698603374955605008528926352753309881374985394802747442189638021068615001477669646310972835106608245821068283224548869841934071624694478407154938284286413602228790151679087681842521039477469600693422858470387334014956391771140530405364930337916842045124313544523219479508746678091257206309331113739427819512650310171792137753365881423576007168797972139030396887037136388215397891231116869220896996394829384385674274310595090477077916939911634490670511361037531376042812547765272141837637352703522575014973071308119103742459486361236171918376022848977102453890646167295148099545503004042898672669501789260049061546299256361315208664524663555729788422048171974957222264952705854513957956925443278628274505736726791880256877247014194159733141480043385969333182112470697261556355431882304260404496627753317419237998091857551630820472089740319969601855977312988642599287618843585864116654978798258133584718712086153804620027008955249297058111224428609528576058408697056630532706141287548783797118255089140542362555406762989184106745683868857301323266018124585212196948536079919093074016596272300316035026667871138709086422458578285632389567687847147225011897191717958027258356519779556184219996786847890516768510869434103537323542807037265275927747991667958729849012137173713072711262266299964432628841599943753142130801501710642167665575867877006600159695685680298338345657722416655490512979160906614623323386513278795732982451898940349036176552917171246290894630006542286607502454871297947283426921919792507331216497759234316501703722753853849820027071977403671419425911362097391035910796238674340453542607276613557367139258529753122149436374003000599513078957059510168379222597088206242876660234047027692035986664558829157420534294139199389112344725404628019704489879325435808672100243019820785703332856340847822438918856064911869117530309118560678589734878444344857997948815258659190157916420912393592446201502446103895609379774575531095671198390114901063025580096010018844768845142060996866104373146229748430490561001227355034682902720705286527297498644280101597639312035016994501399671265472683595334592553151318706881151541205291964327432808643543831701624474027392481102025797862540045267385472493705022446164647415037427464786617339415770057955351711865051613656625073673364968698648054512638069361733482912338027447903674846241453249646025630282607809652760263926909862446673213297604014966650683771391487846404332130930284128227031639278358356978468952105529595224941100649544723721157173066207448921822075260596173276951637143726882404240417825284834016487030420156034881205527856062015724345728678265491155701334338590408755784737708860603249278581255182982744178137568363625079493687556458201065171620557619162171479220927131386442337962229582390720401337664928201070084285566981029121781449427822352114872406162247679015517283051318471059667589074224374451288323875530312009107219179718603578410342951272931039612133660987765063674512145324706206427699942135112225635507031472170512134990369091803601654298565488396855499298863869781460019951489418202827496386355751868499328944163032014924896863241939733902030015169855625560761631394352967604838940918764293009436414748653572649951109738042507023944996465441807187714441595972314473689251051685394770943203643433242603351281015771461793850951454435630230482228589902371797752478624438984793019867417927713822773338882516990911824971444068964910964548330724230442373515270305106678552105105219957181979249615436696346095376569611573756535775660633490801825060612718723268813317136682236783571035180093019680935434282039288376180585874418727741470230224425697385936531248310372759045363488930362544152765804705855165175543029544524642677707869157536497688917795649338550488534781356159690717500069235401874878164161513555115839105719583968091899416959882898363845756456006953269214441547802402632439520169968503178363105432790432260565047448185974122175875814744974082585681328685513335442203762941426275145831952634687477493824184433209676057738790763527209664598758457755571328690522662848861085341076803249886787538726306934360029005920958108916104745631809258119877878916671010441278177656376545964254786910597666072784236791911303375469030786131758663419715263733835616845951999289140565694816997581960973234232401497477052078633421222646745082300214560623117883194673356983493999817515585044954370721248008464220034518710126644704542390089764674936986017884329764717613160977030311338555153626626020549873321598772026854735647623683188131582729441296637402124841577615230394383516516759344676538022705601140405524255399698443900011205023518423472184991774155883804198136536626795009670720790337240741644740730205579950182528560386995562594970927879327069749412850375956107351158666992957247375789567181831355662113117055874378395301796827850259571760294366226885545895670326036675015250146030783443319535353852970417136626989597248607893862276365981244747349510965058843082954750016602666053697568451696636214475477300496999149313028564295887340887026338784290014904636420419700677975961169561152566705668019573027917896920415187924901210463976700732011952595564518037844671766044095837200150456376116812573785230101954397293175503268525189764130930016453158824143885603641171597036892848605906056633011024760021938055100721300663948206318919619926024161786370582962778312224089700866439762022066934112116437041421594398680644291388953805891478012872136730269597544030946983249122981183172423241089270704737255315229457433374157714668935634131850701119195560351343059918668541002300988416932274423732333088460610732758846166931281952691736306353021831414987856162919429259579795672730726476897467076537256853047686583284735951132398872880284903096983119008971943208682608009934312221094877996160579574943377204269822029648659414009725886560500856887649369708595570901263008752924263219104792033471894481630192862056992017302067667381657051629017262516010570600903550045658406160092080572898842679492487496621753153391510212915785312277448205994669675631652325103719593137510108084547266098726589624054187955904499381553756312191830086274096256328224036989577206439644635474812996347521338351877445352165521780877536596013930056716839554546167242933147324880733391271401804896104919008568447934851450828636167731894529336087437399239644025208565995269879720527905690646989429484923444582949989934080537184885387328406713164131102829566880132631952891915129439823165972898104885832781388674896177375372857252139063692226370774963504407894051098242546079828178731641189537858501011538496870590648393173940118633815141744532632824731427480236904099524493108585730680830079448790175243210418869919554645776195127333881796882245874544713593923917601114451911013054118526448384975027810848189913854644008960409176431032088109141600310433529136679506305893776396099546051523690204557770787266146224743906787911729887780642450584514608385401234646177638628263334372013089142818606233724097999925017150186126416971284723850897931770728423520132180957695380054758164402168884197105124815494944195150053093369454179594977038835534924752335293499743170356015247796681206473700226514619937977314534110243349143815951422233036973969894029530933548996011964579231073388776263740472023742363920769660879160022487717796763248247292308511890743217563833398829042074573271140493940028047671443532969923864011979666185326244686666524213173977272261230978490806908840442617285028710712973361056569434410529447972039711173842498898462267429869324929926207921676666206123404294902659135161218919889333756344210990832118257162793489055181744918281958217610500643294056887855276805245012293095513471344972921589222989401441171248105955702772117989408287337310759155122143659132501027778852879878621197528894164103001494216291329094665379048004008959914476861330522796025048313047053217232536068931833017056456709359915051877203496667965879588425648992517614607258854081629817071371709984544851558057196100119391095865519100833569375904555943618265456857559661568139158157789336010348605436831894149836297354802837645178798643762865916319909984167326332066792335848773559602906765580522356364144413778569306626679278245506660359479055824531420719264950081969275705076092937115977533414799963832184824636276436824242063735105091542808983463959794443935305508367084543659664022832934146046849792465718898042151289128481929408278095038366013644261499658658280679994366132986380132673477845713680030756064455957117366390981002283701411439880678682755886528337032343960962799010356236133199622730958759734215262081243401272931437544641576606901770837544320635014841033536006929018178796621929065962131408494243485145694015497890803226359329712652503818761676778809753066958790555331651420390348904800878547091694619978053182503467302568885326501771010723720282472795593313329224132336328411657644077646127821217664830770593664917566791223568533918995043845863847612386467516881846195009333098335979958960862168720041669923703583014440436052919334937391815166581682711918382813209662594258065325302644959638049683980390134746897304102635082530391314151309762246219483567982777607351272303002165409004918167528182126840523578422123359606903607986555108997393143336704290316141292792086180456674505520839587100879445020562713483994101722377340315849084590370718000349084023667237797282288156526392414640357159621404032065742017028346791535405636587196223380630423083827266230571998865482745578041504538006048398858628781011886833039636771858553932647871802356814256942235755419303223752557951846005214234028993103679618771945749505935315029480552250414343525179531390713960584176539677698087244376414063704902470861911280023314519261951899128049235103698930793789455455427982444713652566560819315498057439212896100514345681429571170124994281871041036971300044254209299939546887470247912167881253152025874183379060649206841699279995651552214252621180614886601711563574771835207404907882952419053987251819909568640480857338711433820659412226437248803891893827156521836043086415698390838597242915967806840716725654738634899796993586560437563560050396902376811474612889166843519904608643153494594138746386015879983410552539454291935518277264235924325312250937145935634756241268465137855283744708192074651571992238493415551202028381555117222243026772890529006858698376322124277970896232000466157015801000109699511921011935036192840058144870737781417180517402941355545921613955829393070010250351126929545344638439432842992689362928118442469000800463741732388831999953429749647473457823763083005317151874390178875890740529960628620131307635653990108504955190645055497713619828454308405055251568878279294373274084848283119098492285714624897564400985609551018325160757925128754350261500375419888278078619300386654862081501972055151842243975464159365995179653601327890338524503152307340537318589771628510942272413570280522531176984888951992901786859473820512267613176835242483612032820907090617347933684704737754888492255068919993097520719456127744430398108957649839828304591450137929840983346369029441049120734256560634483752575071530174528469625398002334812454255157508012321471439569321703431232505762921818143572414583067174926438478568821210586304753141711303859673537490821110329765537869958872972369412997438465280194275357740529995297926288635475630904679017838685434685087994242853457552786465177386208039330700455919565079773951639767194467138419945219429782043770718152494708115613196438359405738410695930723343546874240099875866774593004474601301353453675902156641412026638878702642628970083021040643363520593038567302320365511504730572450984299497435387161083307735499606750249020206962510627435729419718142350564206387877521014967807106322574331379411033752682270335636920053698357553134121033607320668877398381787039966197443437829355045776586528249926806155149308082395452135901624433804083503424573756986519673082173778729686571533301875796114612965542677791455818063574716986979083638360646393041870299387689235601403923798220872007945082514352976991369535805321274793008296576004241257528014842182361007081340097580737636952564857364936072241975391873417087541573882384176846026637719422041623116571130102851261421321803679322311721321244918144751269541539423799415772108715533421257288950049240285884595872933339989699932693012939443479944698550380998440402889726702902081949616175198952646535012134105748330735122808278350147987396854427832986759134358977709763708091874724316631976901100468550603953815210717535916316993353823691133885613395114712410497541622079890906851033157966095151421970058730707945118108104976826402519169329321738067355775452492338209839759845263368739962229078347073321154468721302556585850916819017196449673432358634157906228858412066892912417425981426926806880951749421540696868934646423869348084551845799318866798776527599176852146395443680293914167243125361953483771134018121163996034859940021014905394724225846483161652475546655582941840046893858127914918991635193786345108273525028029286043119017908444648176283185867861032343096993790105695600155416156427628537526566555942618069115493805500748950936617153399439631825002635486839619955960199659226689362681231284637026562521201126004436694711436119764472898139574305074830803537719218616144728025174117864684755767927126658283837684941466543553856305168222824437196544375452129144791321639560869522427662231172977231995926450026894020707794168985171967537120046918805208847588801353963262762528984721831184359885413368155118209036291758920267720577146653052520690790721594760959337419129972197536841554708430798034902022661552197015648968163396904560668650093595135280436782923700268837789639287331148500577148444177291915731497562971043956744726367586810545640897733880322539357285495412267436191445108432649418475408537882841006557535058942736516550456492041171613613607032196600296853253355620533521311961323190608968111927403300039220825748272156676164829682962746865895780764801646821154901701083351342647660580925767951866407267004539782569711183989820586247443262113712353660697434031296512334395470710884631634781630730622454129826298431549508927143523674155806740443289870919461712927513521074922599232776307412704416010513384061181813282293978329018414403944642602276596526987556237560530491456901655479004369017167702768477356018703359318735606813201147744520511168298248031062866455644471757542378143239027042914569676187635125265517595014119923787797802691075840977064508167222369040945100065331729952410803580439062066081268493260972681683498234390237477590742888720220300439658401754598322665290399654116741121187605640461587448993636781546933757867313969523284208212555168261532151542858482195915645545024671026082845145504921433661787116469051277828289875771018673881029027490482240728032864088163021072478786813921110566522915260189233316791050888033688422528608548341364237069608361384257777530011698834758070963839824578996017652394759905979260243541712126660287346837873312240869063592258798803453366512815796565092137069072726956726413854851452927522564305420219871108285068085679231093980306691629704387382435623855975296051764719425375628400025230781542715019092632980162849686565396153463079210087025124672573533354309450169351975449496005478073218230127019771414669258100446856568292573538367141821882969318892792193220685243575202529752749157379888854143810265760310807674459820782942289587872179780589933299800115600558003221942165830235346395425533774712829000374647410835637591409344570593826646836780878808942644468437327295719923306418805979939753701405480325364361902009001080918551888693712750584772195754273512412755793528186308235208199929802501519283721228326475406278378541298521326182740199844300301863555665022882695305499448708731192690925674311681315217827727626664054246855351276216811528947314579769893634029877667818342671711347887925451666472182750544398225221850850519199244551371384600945970755709072125842873764826763680227387847671284394877847907827151705107174379271251297430207994178418461833557984898202234417381942371745889477243744079155670450265145804459633866780890269444868324516269078582659884814733415410821411086560314456517957897821112317038232355665293295404786296548584266426567433483936568113631378236380560281069258904619379514095593503951502777631739307970250726763200318056212237742567709759356267473633823497892136210515705681254097773699955355707930331242510515464651351346683644177165738579604311630392935863792992204150453629404724120840766906197469090453916654267551994667015167939873862031736608046455051768002693744850252128093554315293807677920724857913855739524723155925344331504809363828915509800730161618967345028577135371650376453965899902475461576924899159204701447375212315187516365498818677359256873678411909189111108865547028070101655064435668146710301751750879115627636114366104975737306268589084599380818208331588072707837934622879809215441587988727526539426724569631265363589649516367990596601554728002987662518671310849034524500122856598068159091380604901251180404228952694405136651250592474499140961306748200844930719657189710770323014966908422681425633918255962837820185704812485993013806004662176797187660054726774979732465017014161150775512129233669266789322238799187908225430224905885896383877675411366821388056669657530511587136125166518885860883034582559445907335763694032915497227066786786773983566733722303397131625795459040720263959618022890529984780535633076719088521295172831262006240994818667418224401713858667419083184417407288904387967474628945813704219219836211925251426051955234294261395213795650786848527185529068051761847250079460124917293482942349449521173230858415924053833836815494883624660929647957867336712579101501784923773876665045024582667849242513207917156520617405917174068353783474506684122733318357581944310468811317152978973251850881127718882679998267837593538101646908683577977872104773397537594169736301197123870960616941968819693366144878096579089679032555628711186678276976814518846945495826727111267567340518035893568758814951567844355285632435314434332983200772165081683952754354259908218634091431208177907418176064607872107436841410871278925445389731486790446134642061479468675904211449070973470524459906521632766264816037316316338429070265470123311015234672840089686391118679784365048262169032753695325565617093389074622798074299177529744712597764509882113326562849717884954310473599748750894858887222324082891481534770813461093083649772165394353686469115141163832901574584849601738649565516253015934277185299693934761566307738745863324551884088074814687294371318059301529349489759511172129138869769584434466305229156947664120607482739457634120607347084797330650861887058978910761425893184412699620548826974644156445618330865190556283217719215999510034744126671385350742745166644924046162103180712029496114684212917263644722943057530186712043254597509492046817824357364331002653139497127664124566673216104407604488392991267001312088509831530547912190556587991554791301016765875838456049724610781371062968190682328141597567601166746021921465183612505453520643460269133580578816507173369081560612264876157892222403505514181254928744214198335301164793115519285963224698339691825661064025315981843125277213218797359320394562234972740839636759265804737580004233703843728999963517236658573699493535600840994839768810466903448368199648596803314846337962395158243101191625950800941374641396978880796192483713602795819306814708277719937133659446798290399165874954252573303814208474949073703628547273889158320480755592025594935408004951590760452505387234090806568101560993163984074643504874658469753016453140587131217179472563432322246887247498622140433209938226783780990322422135932057168055719659942619662115642612644290112784839320507407204079202447176199990112233510429703626337553888701961567593939169018764434421533895422215302407898994932201227012346605315310714252137597640797842038265416748590720769672332041069040547539646027086565860836580336046767602558550208462977046289488397849897289712080400202926696021637382598227924613877097602393385081883642233371523106509651620302591644365661165176126463569810635939551807704228662480192053941552824171303100931611321830868368848958504306824192118821755969248125535159981155332019351526307611566673841419588566191245001707481690063248565024684099861338511300506736986559743363876708704724262731023023025261266449193974553458032439627222446832411566609630479727355585519048136200715405204400255843217193137960930152745951764562174950214821732099220317200031742541821762289469920074233684028670645712561927286982451740210038086289816294272016725398762069970558083931849289534960775351931663231920841377861710137143194108151332895418683975861083083909049490855034495771190164594141354400006022344065586777421155870186274870447817192975761881746156580838047449660082282332390332731805604223752868261057490002624144820796351129356712886954980471374699081896414238578625104489307354959214016237001435374052371105527503543367430829404687393676580031263685516972146165513195026691011188267887001672975595747471702905943649303250533768750387173930511709123733452949832955437965780907772128437114300562993431473311614416021184131857183137417469659764953408721519605546512843990656827056858630174390327671097358278404364045844048209450409949060937445645450573611508311761760986918650149201665437411126061654572637935002431809007750156056365515267511925843983247512843544054682188965473019590375700308063812588834767446608082832540149674595818597198073687648540460710191717343074138359738408459356949999000196938685607050248050876329208006663792499599029812661045736774507685779167156359009120341607223170568150527876357772762998486769035199122792454023706543303663411145356377025828165429999290067495204786234123441017212729849329187549233402961494535658375444374821691924129456634765184861319501386398398225383471909870493180376494166973679045749730302146591104010282076675736128073072833938033980800438915982103990021674569663570565240779541386316358461238465823338040555993590389212887098462405893781763884097775274282963189354739183311129577577623869850340198630152829692381456268501904267481011938405449962501821150837630421825010823265114264774254324748157697869695873206870462071629217688867345858114240955365864987760357337665983023048535955868783658450802840996319368591020978791466310058229612947139900918691591757382080666867153724640554625698281519745745133994280893755312410952853245316493995428735554781799885072442589161969529344849644027139514890448843174382658974478894545315444563050580085182637080790375428857343349817554750484714193063963005978030144608299639454577816300645889511766899636678896970351459816507845621630885573458592791063880614005733581716014286086374594165342630932602849211511459564368685681395148225477341348573840478979754560377191369404289263290906651448810278327024625509900916693474979597333290413510874594867658219427785215334417197015511033941659808898109343826368234953660751870968068112554181211320835986675720789649127887225083731893683010682995976840423057071306888628683729725244696652358482263552678531996788053648850265258521373030195234348200995910129667679075121073244049016585923956747003738918641507367426355263782353809269807968412344320302413949163188880803997237959852606510402007866974135318596591105558276486358798911775503724062285888158600934939421736356861858026451202708178279578041162792608750341943785375261476921053032852695051032847452664248806983145440122515262851359341298511303343568150476982196510572784100153834832310587711934781434295813161084679812677697701994454639416416592620636166998603798667833389081026260488776000886809269401295403527872015098129234192023059152885809284527467578635567321911526708761461734514295653859253540946720454419754020575094393609229060911117818747092048158769629917540123587922026443809767358749278770747522935419768722168861510195606449881434002371464557954233991172641227336833871857958236762779167273795476311192536552262299649896798490989457642638490899929219800737026217525360444422988482467818819037902494402332106758695363227630852796623231566407037105786329720013315265940105421491349230706559860774703619273120765607655302446467266645559878204806335392998299805701036169683794121074448045551263379837751014896896000231743270896445289256903317028709318464566311435827184833795412858539727115329534777439553472519746396247998457348227088686063476731481698572358101912351327346680153903372445210513758326427636627297000791248762425289026801089086974587146671020915600068170293236778700608149774393999133452081452437162589296271683911516935817875343114125980457098472638414493476368036311202183714027952665027791766342721915544687017433393381262819919129156552126292152583220309724274797061975124578717251038435432448737173716796656973476808950285184090667096487630448505291847773419030219260214486667406125654657748622610277333424360031365131540733472553528345505404095277088359319391091961116280952118166410958545798848539187358198059507968142562389534227457808280667662886757147169727879415705546162536194357650184819239190397635962955776875370737014864077745779193282725449658374660667294699778947159791685746438181154831443842499009345997521695485598867302907396565668523107940645760110700111905407709568313738357501098183729712805142975960872570946320500554630109630236512583639897795605756141578759252286663777112793037261256336495619510452229310454703598704277351683867874641543387856573117432299120923850184558448527654000642863280404023357439337451262826056435549649465320803690434167272702589176276233353772213087575590808773654826485778551138360367532070902481125091628223206337234312284000074785057144903380129682761977740635530983534867706581964238860217363076834567696185554134493761433711302004359078365024899528425307145215332482840538055789035076483713835856230833027404377705418207838902589451023702875260828814632053744805326817349719898851640356796462341125841621870834964623255340477494835525051498863549324822144735417564068580043164724444624140123964760095748983641497957440357159018056489289172524968604205830830555627134251760334520860276742859261097567721617391635152716967087100821147681826870675331009682113566566090776133383122930696527948382857865105390079985376809918695633643098008399592096503211552445908428828460157044710895964807659232457461249463929251681697945954367960384755424158982682125800627584542569756327357507451659610513652791300015916664992656374637396263394737033464162220967563811207612547646197632737674777614407517939057247997501079008088387113713138157246359831062556491286116827866873592762314236400736396482018356969549915952570019777014205201561960107673174068697803935070754003237998042422700655788530476030149248941179326078264287311391322277071778925605226765603386008268049843734667924138281172815134226642941489404297276438131557483368747275684202656749100411641664170318610001759519866398277263770386003548541499108053091701609256058283876163221460378014365326413869994791970086646092325570947356843504500235868129486362024139398541180616931436294121380853503607276234913911733470786472145043588962969550084937545862753934853419290156747648775642410223637014951693742373303364190847929686726056514878596553835273456768342861479536715208902693004566981705259856358069717276968449063143806833953436152258055403892764603375394370715648982411162758413820386236283456137736562580506697228199762019886746417477078634932419056822146966767808387111576303424179565104722761574314503450522505965003614356668679203050992551721795752325718138122637856327202214183197044697689254518283597413138174127332613119328691568703008723290198451412093676125312800318826366199960558469828278755701139500362498499865288636528377453944269279540453735993077751280738129951456869179373573959721601894415497171129079632510238211693010739205262503870784527215340105346331082582528134794824787788226648448910334253464418347389785173429379538578918399670703801923712983946168635266359282828035983011218878902820587104364803173913428398969446718566509429551163184637026188607743143849071817852395768921470896447104476804188255457962596544829686363182969009474304369276521843765185412228023333310764345207396438212626740233730788320665505266421575372589240365283210136609853061831379711018415359475255432408506330077261478631089444926405410934114675823644919303985186714364442618859246643857162309385008249986992550824442739577793453396994894638869117181084221248121219973507646112785763782550920698545255210275051076657052306013088553085467313562776202562904451664249049370088370884397140605673752550988637916335565551732205215607119189519554106914502294265386915655303582254837731170452576054184550084267869499991347267248518622666294382578336851847915072649181555623550009928502331240150466581828205185127729053466317927025893344014049567207646400220047661774574355647138269304804884204827595536101417216284238502410283352083695047567305740950423938443497833889592930449008749242059367061450336939258752002142638161719821516782650827406191710061711407863974569115982934752840052623803980786020593287778127414043036694144812267105829854037342210528370679185519752158533877076421993181562490850519910335014885686973106245987977779593852130728882961601381022557921266330765673290177462667229438482612884385700358098596696584644438318272873719887238263538141282649105627074484189775764036943031179455306403139605452207578647971446842890080376036189206542384400377898377245036996855701821623183372366852562648188337262698738524240539472664933529278097220756262013168015777327369508128571738820820108240492434745690227366396090845217767954641950674396731228477924741085979735538787417222308572971324827645338118627983842088392474034767196430146653462071998946245957267549869222339770984234513216723817547886355722743501345820084694548555739985487850190313559809948615875931743221823570099237848539788401769523712269936915608059872505531393986519188167398824720961174618587736572784530792458170781023194167266591419701680965939864069436626290174138097833539229789215794278648122405574334950637905576325490353367534381973777301864656939047262248354963710417569853751407589908018178549796323808167225343587428424171305178231257244284073685763118863480517407050861714216102564681302685202385864194754970019578505127273437272588646155199254185710819301867670717864440159183268044722575724450788764097083801549887835002583368730957628556125506840341488240854791628614075551008105038610429545199983642786788297832549265409318406079787871708800140672408733945174265381751647814852024623055571036624803241852347334928768527772087565327206445649246538187884456885489222259847687768141587111091048139615678730706192503856786309638047779049438115142595016231407009396617209364812240436238738017397442886089127342649699566654251443546542037706904695734858431042124173111972295130535368824905220851852075651681320674126048545756898973373174937437430439596064740255486118727112317147105953961372502726540573522190849277585987998880543614957862051830302761810295314227423052582324028904514497404995386850984767825651029293958289977997223929469921611288679176476149401951469540465889372571168435418480464452129228105894970869841319690829592712991486842830102380458339515544030003707104340219605467144826391157874823166267825001857878552359214371199659032298976977688385059282277321495577192448592663441908918587769620184860053177861005269028832408618376937812797420777943167649830690662799382381495298816926457720331309160883408786116156026170624739757927105670391939896562085381225289845682428760713071661658388914568490413413847024813369351483244529145763214003267140642756220103990281548259245293235771640588632229491894255712503543674913757967629977753139427966936370694054912638568445032878560621374628639908459011352360994454066298267050857978377814196845277862140896425624822606067009266557648575827614708772299606641062325900946844116193994576270091622490625684625271669285271138277990467083932109532418649117599707851913331832645670158802941120315545116382485440731861832807364911970654792272777494118613037408032401478133261649279489093095402910460379131409559507341136590051829308898380665890229787146867201852235038747797826581962688657662074348197080220276872035793028341082521020718196585788847879145039932434403750938409041564350799675574285466441354910474242116734584357124207305030132341303033772695558621889671235593940030672931289939591447685625317386255045675249859127604020771878764294404929847465240507962812478790848286516588406870599243784676490834554681257331006038331342483925259257820686626110807296602387364726796206126859222095693504826307127856362316357309758688670884982855769026023771275207668816278518783219284920303930494034329707616296354076644083996912168783365653642538791308492939626078396613400095442177528674182818990805827119458577988983101421245777433583148994898968969380372196614935779758392408231546468725013700798647097630496505744907278563860074699392971772628980757316409888469714310122215509574621435374768990384918453750477426682259703675532960772707206987749015928412735372841149615737953128717446634546504428328123333852145883403682500104369582073510731248918754287761424150140047642433977496545603004452022843490359543847940756141905573508314405335499394976827712644039615697980877016132466184636723294409564026367550526827291896530892066989859072735398161241593025255269996591207665146350923707168315983709582944031204775172505713226034116524198032218692269949230494995579446194163123229933412804768670643575522704349576877912373314877808445368893958345944137369975163341702885915526846393593839142941609332490235880623242238222809783549505168367592048384292296676608960424047693415938025269026915908792259850600309087752796953121836769450109902511736362289358536765543040819376464967272803477144889926981322863137754697674709330309489430449503657327484548423568453025822170746125022718078089874784512589323433308427585776026361791488431804204975680429851624405276824344062508599089046787096672214622872243418843135121688225194298354509234660248564072017037110657611722787433548258890219332773336009782591027915116585729945513929988181472208286859641775014337617677072260673184589915373633517117056750438079839141163478569269465653062817455753763428062700820017903103448707896428792179607652657832598410501197531343201517961959503696139689801383826599630314711819182109040825421363153246614990321060897105586172911148476630499185023345417956418703171331874914577556472285733252390430880394641796974093201545103021362089713483556693594550697979559733791725263035908405824054152236016002429900965106577099771113922284095821802807775404413997170459851400457079154113093132143495413122820120998679159169917086116471369628466101610942047100956611589265600456939713381185226847901694519845483489165424119565927958005388907265929597357649409543245211902386617514930653899299417071461050693564929165050914084044597577115577923100863238542844323215283826652685015232126813622480915214256790383879941751195939159227088188759908631895984076688655782152592480327708377074781567276549141164853251638866563937859475967352650468965683998189145228445579363109877589189462961123167295548380471309040891431869676777087493689871526221667830410287579886592351255473355172592831382297269969583477491434946643425235913852413776131654442569886542968406726050202753191127203917294990588463238332390741929235018320517604882364215760874306656928035444099249176755635006111158079399279896956519710803318362361453107823008154799720878149029295965795228183134134618966824313283945605617536000658110090372778969799658239670976520142955035450762761954797157854653603728972394469947643203768521858444877067287649250781745036222287036971307041438080858856670975520020673821868127844447815731482051765786649417769248460223665405106948473615970059847048069310997777866375519498366535947189092923106978286921400075157381788980975497465922656080355710959398894270563952619800693696604235648094660397874712635498311380940890800169158695490684953998417700889006621868877196694747492168139547972405670290568563962665940141837118559431714642494344966771470161184525445159750568970917658409983450677792107225781954558528009326966356397375090485627320031729413134694201401748203835740604430901001652441379918148283226586968940001725637136148339463854378451779753589562255563130513515870439482548888489998766245349798303905390652680123226025143868063002442407241122237938663603330702780790927644528806233815605710893980399570490609978344608441009817486877736391708968079091622988863995778428965459698994434126083228096535890538582821826089035290670207095631139216248418819144985507461857884631629843633371540371508653250120524320702986627402219033559066355903089499424461406487934619087844633384292438780433992732980256577277177492621833463316963571962214646290579455269061689097763319512845283495411927899467364504836862304483911386134209153953860687122795120166993240180275803237003160914266994089181683967868431996325383635222884571408968204141657331109510296693218148383729998764170544852821951543213922724720404411099534626965209802010071560522639091580401497908126599371701004528944037034947407035606724541669155136294847494525045078552451872805647071364348433468565138058910697125655942783330192977903301883137460140522003821949012338385219846379426432799637598060708690253154699480267550934534828590819034726128533703230896679168904557462426391446260635362728070814380020267898986814400601101655054439840611167435623454328536430748116891608043544367002891263757764021279333421579303913993195301510574578414370940496789817600159525705336994529413541020615930587250630320079540525003566489163824043757284382956502727408283273391414126947826907951953204578116406368864914195731896553756972415377167259278063750497618399144725225385735080919501998999037567990192759978881213751978706397280052170687671412111722252545252337143174037005439076278927605770253940517153664050246527932752959837953833230587871353445629956618300945543638743506689573220626553921072518766978025565870875608770897808031888030298866096833330014134072912621802204374853877317150241410441865868725698525285873876750871621104168197474737122848280988819766330865631365956880624066673957887095910058434777325031580034798429468205804634571748937382930589634015006866114082035450755804973570096003479473017245650493340224789645294485354738259784411262331257600295764314354208815871149078372969462460604069059947846854476196311390352696812777637706673458313297037154335333733745172798333816404455971123771038773077697217675950387585234279497650228169347818421523680169649878760081901211288612647769641858244167198455554012330567213551267254788289889459182969995387012961922366185521118826860696375295803371799033203657523037567290216268413203119118980105980998680364912552723015778054015264831036722289119387492044761184037914601622503730380887791725485467514862630295345407628534881029751786474934321821043682343259305629925058026267779884004825729524797498678828316204036799700937885101454374427338835669500242012736912809663103426269047105989580678406764222220398332532461401365197656427666540790964099285383246417907332077693554790096422789129667237699118983416840996933778485513416307485299013954980100152893147925736512393774738062764240141398611275860961934510325861326198467237869420735278911585862796598222572032170849581561105086850127413240030295280994317265551331224792688446567187790741895390974893343806421594956954944440430347869834458875307059993079098028884717273683858358248484073742912449599970160968512897722357089322100884255357993392453609457650219829937188257477259855884832975520127397979456232084452160717450295388040747204434827103214979370743100657100087112616823028535634235071483373303266192357247817224651711648241545732745625309718984142550224031603175311166990521397964513423804215829168277509190332157225564389273963710061679594881481973424704294342806706144638079517892164120228606339942360337337575026488598274344863670986988527948966384706173154047948575317428242554721975488570725558728357738574942061938654566727011844135211889109015550405170905961972879767421592865801275730430109398389658418585763791121397150103476577713267733099897480071250553649619874254411170465293587830443397014883046291641750971211625784167606718841274716338418881491111513244471194865410327825700623772027975701169024445629197418879585944658382301037501855017774018337217845195310798902607849226126332602285211725779150576478210671557038645226038127402820071974280352978081416186376429578678504138070611754804173178698033722855337505891929340971373691527025833498842065514290991618420036815861178908355783356090005992627501913902447308048346607712766773840213538985371530550702674220302806700621561656034687139686079727777798131008053202175802243545079150438118780212809168485515512121256829974988393200709055351241275464192231800132278102010228801303469851550278076642083391913247853440489319504424170245178182944337144328200951205716497456479167843873695850243318417354915311893401167751427353099565123419461988215533885679498699933648981620909907412808393955777578508405600915812250727653056682488137679218512108765829414285967310175256137743622792565791284020708256186130420397754652648184057039356492088694862698607351241848754911398247713082017275626945614434995270574962847746248515207283658975246004934092121453751565089881572958147795988023673927047228804319325875629595997358153018978405536557042303078790226580179759958491688067869016811711003145296476015387199847446372802372423228954352721317311938548559966724337570487112464369175668338368558109220483736018137086841222267949912273310298544117246230460426283412650064608077468705054353813376443536420251926086100683378658348398642893791568814723186053707387683646193681840111281771512773611300098939583851077558746351699273374978069675825384931266089556293916306622991077116893287546851744678671379862191320398946225007643462778472622571340850163194007710005332342690253589149149571732398451141219756187281838173216583505136054846203825593569792980670257712475738573615728041468291687329485755639637921218384855830467398587475060225953077581282081169984636202859657708889773457639618514183450565213496699258904034263344130817463589419037878643723475586643318949090182434889212693549264898891103283829034804245037318216515078032308811557309095610573799056890050105826423368296912208697298904101247506379609021197439445099898553936771629420095101322979449939887838328587785710407731707981311203506890385435447478515876319978821462805517068147511480003748795620236085065047578228163675792948930481050190832390826814073152331770399077276855503844930527877612293159321626566048057603933612811069013427412078771993968468984677829782727772885632345273487362119065422435825874334959398161997796590020640139961993726593113454562116321245920983406394585405927327405177734373865454402459081250850863718290724603118160322955085860015355575945530365459257843632789037310959391632866399693496985529740714631686919011630955069446339592190601445019792375506529828414037226007157773225968496376290981395103625841493759579636594058257907542120274779969987590465668730689791713684125361316856857005308006297551400697074186795166258033719468006233400243680917915281102918761487043477143342362786266468207301972900441663727984578463221855294934703963073539356536940364471165266030208773728650322015637059721997405100913471752778345207236006123064505128748450915586408008930310715630126742741515512686626581692426524263419356127882605068049055060015208662341030394837809695741214755335375924890416015791313685673049260464290864004923187010110570418499626904614027801444040601908915325929120394332100299705746901449438292743305714802283069225955786762535901640098567995357106219190985878164185653817119889466702878563092569090227819184212014648534384413227209714702227830053073204371542454936767615782943548595810421608165461563713394787459263103974725780894440021295114670515285307815241694961285037970468098383756860184050269991426389933787326211482596847986739017486684116268333158873822268856223701978502180350351462830967836856550968291773597242872635870248743380338083919917156777726964745662801527192879326595948707358907234362747236119693945815070133902327088004769959925776973523768299296849143136393871762034011010457929990454733545700477145170047698185389753855434427799683931503778072651282306466963589679807362613657362691008352169150392528540897089521343294863311555239230977842561382529660350051115711333958378673168952790342972515888296182413866866232776959882507906616263018970303605758445985204097112964688702365497940035788301991131164799870341667224893058961164585075137549908399198801489804778346963143467789910738019972244641163069921381382749516863258289090148887591417113945027549074327378632047566555196594000884832113873655112172920094396138835581799040007454032162367887676742818459694431612568390222815459778125035488599287040172266068962246958087009356363179995858532098073497573478856887537383739482420190694651659055421610893122253879033155333663104830331694462676836516829244349155439681424776297488755850484011739529876174776121243112309191681367507070916671502359414366888552633452480733418714069138472440511496109031123345527713022471907004361382786195224919717759493659377040487967343587395283939673596110420799688495933135232104933806498495905064300532247914946390829764681792907545061781878608704342313437126982009029810005346097381732452884147686176509247549344957024065345396622201981622074849446985028744022922360192503031677185021680962167788898408994891801908554995155838035176025364802843594017768694182089330539066343018928553486016467075809652938141207392932703726599185831079922569722829114252999816512406434792279489401956784165685217005318736287053299987870958481885468712364417622679117769155071884700700727630051510145097031641355565649156641495113564644944527918633836475553582225999173135685166012632420506921007729632605875211911104465053168356469389730261138895848337271987571473824277682709558111481854697092945036793456990986529681299543972590426151757481534808016812245706710629598730707291683551356045756285098071287670711537434020441821180081394026840361958267375391821916935655645687625987532793363962981330817746580634950889302184376906219305047606489983869952033048831375493973393666744066953859088095062139620745869343414702803139385109911602876791891113389579040596700867726285829044020322087210983489146712769332173956039954755176540504583801052586872073542795524175436729951803535583516169801685111825184185939942223026155298263178979780674059675760065955962303888077709356090709610296692281875312038531394279336768227103887909352230194738057573788759869840394489134402268594659415597080524886196968167392124574155555447829655012448281631807592830940760264717056208590648805284304735956706713709311884759699155124583629407277431146271292519598916723204113024227365535886198792229670813736927428342826429328571045566718229156335604203819857662917595993586022908456970492183110872817918400318624032242389707369304833296475484986526826350298401187958445812409917245402427373460751695895203773300209722724507510591899511748788134190081564402748021539502534597629918348975382799903084646688923326859544230807397580561896232036633232245864840110297729677638964480862119767772369856815812440110946498422224446760987786944861388847541273733966934984906145512627564522365982120120469437050812128150310821424342133708561877757800495466294855021128084519922548239716470900807787081172431074806148427101204127318222718569500861691962705131527342772132534407055859866087061003548608861433264031560996086041697652382266852478091108880088666301409554373081992068719320503477747233385304279949130140276374358703716442197671763039220450704782758357468055587717107234733208242857536924023282399745405300452578066537448224687631133898179056664584870817962160888066427215666380683287138894539217424633542111282063416991502555225779394916902845290264491437104277134636032127520622446562162411218882631192609486506341990900450744581067531692583959091005475282022489985931297387290154291946241988253243895632648988840075847660173312159166937398770598314078548303362186848778150714963691811054293892816235422915887955038652203829502868421717326467916218697985651468833243799162057123030801017283051728239962395470522681146617667499061713218599269052151521481092298774972965814222119373693799034614582463867142810738081538042958742368196010541331900941518654594485691619948243939180323873228146075233096069922716833084696858270692378894716885058348637082789960455177697374187336865317886231676473186057406929037957114784440536775665470882766541322339957128459909167268496595587352927896611236526798485395282070275218350233803179993969197807928410933145536510718198742946807517568705436158017722297748778698648532677255890180061861414142657415949287636436106432187015520373829044535751827868563190600735571295878615063182475253971385220057130231677024522381588659197050283352647384080152991241751682894133843191904206376020050212927993459243694302044459922392382940106150926464251227089010611203593715082493690943977725089250989210703713842471415739256535785702986548194036099989178439854725930749425549768049947320977833758277527265421283825865735041703323003046897131458863678488007049360941134034841843588250157994804598330876365915975051875083195297096589229552720378527184506014479384176551280505664075372396760517298612888159754896041740627348729381653224273695594209165790791574423083521159422539756480258676382626334644910945195091269681872410413388914638939956314533975740732743157958957320200297218702745426274986486655340684015785956307879432130946007467112145159511754346172786002296282764080674589957716391681275972783134082541528543805536816271544400337070672052235173336091679497027042982359824542887906530461906680316081124666287618423741442040611741781436215045390921129957789764314588310901769182847645183812697433707365117994973631002490640499094145852038787684638235008601007679913963097270786156134973815792389217703926582749596969624997926890146625407726182272977669019749218049377735939525232176502431316228950915397597451505810713149398574683350389771214377166301757441502223652109307592170078701996799523824552090217471910067069101308586139292835252591757687512821182444038815720642925578794503774824742134585057023767074413687298885527297884096175295215140752432022225090584402722046060033031660631173461586193667156668982255241309084503297953506349720116113915613386156545267402288662933474822530899055078650185663066123215093146374110999952858461251844647166821444588200547101653516945038482320724052621656053175738496265597936404959511524162449188616339535951696348391546379213365741122103943165456512095007445519257606779200010321964776774770250565289375264792736124744957855504495742579898166834250165145762488833338021948797639584342841072186130244837772708343537991668571258020129104707176996172888768730955024683254761295758568167288902065719136814677969028264317178947876722237835869013897960086863268734976959990851152238096702151401618911949626801985533989977967605739669873883414797583069092247530677925604458454471136211317010840264887771494287587292010872575720795852718621064184866366402757364091756976879351432627231716009581988365570788833573668423516689488309459363036272047632543867584894490633538335506459777248735998321750494283919242909932697545987192062047400490012415310326379992123223152124460974297007846225438411402993158297804846866659235264427159809874365387287661578216143080139746471344289151774898088258203704624412949036637960152043156626087742383733822473521700382600257130322284934470660242104111138566859607872608489068526663180691012368750717293133280045616061625784144058271326958145701409193370637933721279687110000505024522580783203537340907698390102097394131124726404906610573507936761139274865755871912459627671434722502137289323461616735872468858493268442732478137492555366233866943914513303401579510653176006060168623536472914346558724244914045298404865350368357399310940398092552241680811299535853607812499012560616026369763043115728835589477111107896745293292585736088665889457824476816693350083350695881418929769638615922455925895573400391038067455399240588186058046771595098056412946886331482758694308002553771338420367053983372663095944911428871973724344217267345161799617999705602452048489555480271294126554883203596245402391389557786122619693971587585810116700734949995179703531964190172337060773113061119207249367627992953873117987814293005989561113168072091602919775126856536777257071696637394925296002877764403749265239523277052750127360797201337658812380853277365801219273253160012421161319595185493668979857963980262450735299259458811955893592139663999292151805953656395501165893761765210747307263438010682677843776338757266274560714060323676938190712341777984710259894795586499635618100516767553426632167417767739691815112200259452938632405706023489903538821264415317385319266392645980470255414577921638694688840423077515398362233604668856449072569894170307486248830834304924789507151242973133177246753022585340495057691322035120022076743951966031396505927744010543739568319454795348676586642631500299702266355096296341984452298466683488954343717209467629071415177616156427735772805827840652321923124408447004565068275705688071354081427316186043801167480183876659094117019421171790764604949836234951335258667581730028051238745663407545129690946627028214678363060970297745568283243018854969957107118139258699388053201716954587923986498337422432234027715887761637831857838236032795492594826484676247022705448099791101213509004445402574455066579153625422689278126468486613304771054602727164490166829271694897112466537806916907475495655245114779078280906920777147838253855274037119852898086900774537441065787878290471246887512537685589264539721882062619101378320266263029558548709662195107587993006774517394422008676238751425022090522579482549691097772237182497890911278443715528654102540193421177040373874297163773985878434554924824229099615859562585390684751698176225829579836912072825293828632134823055723322019270819362709706298636182327198037579399425645184389238175856122878707144713528640303043055911892165124157350183376730569715267155907525884494005930111205184216700890872425037015035375864864517138928165646671417369960392680932818883074792895432562537672556072172469850291920791111582487357962065943672461171294391691563422999979782966480940182187143669964497867174441436819908457365512498026230471639121170553282987385573874914610894698417252120790417332978117753349592170688579706351606921875706330959171366872871318334657860328714880408518478656466666818390970210716422828504311236404753169209759416001508435006898845148435515836253610865185632255060568369559327447194488025064468489766184449114067536920900976506035384977970054843661566446229573104773735214674782044413281399683121509536237308757250539170190551146928827919551819990737056136939529314934421883871013871743926767536646677776660144480962173578519292854180853203948396005774002280278598772408095218619920503095972966411795050924262876714679739161409143070612317896091393772304170936156519464024147107136277411054335388333735006804836214963666324749266817646401104266722228483972043377598486345798380510487514590544146008494068298749808703907340649761276315402283656215331912604451839600386233260729298055873167264490374355062362533563166195255201315906835858870391461600861011722185703005660360476703658300543076539051079838079767152731262257285134490541959222540136730193820210335443268119505387288942545920167287427082775236120289203297917032927709972806432349402151920099571404175645023766684989797228507506687075077512991798152405491158225444839315694477389287144222388960503129675820827907481871304325903342287666100384824609785137142708586630611168612930418981800508200399578786748043869445770938632925261455032153972480328438499721049624445487471986722795211146082922442506422577878916827625732426856039923221399161044692861608207446078219848890774648908984932852367817615626319699972691018286955089470493407386628859572478915148692629478127562638904869256897188540994778321783236143398084792798450390274142848076479773790639521844613548831329846299071079266448971054549283963543745213057116355613725991064442339349727560733673585364306612890375280463941135831463184184838914502228146402172982234634226398138195575166027507177644974859485162268577182728326822203700240906521997725593548804597333607779593488685002585351773510578451511675077401045698310825273304253379498250789631974287579571551179917765271909827012579026483038156032930352771487567168263865065434624858066908009285301060593603508479370016177819766397518700531360702866918772992720431656229555607105539892472905864280981635288469198381315589776920666679130426796855175151314565571936306839304262845840931093047209972496642726890986567423811190307286599254175632856840155141085389577866426172768934450410473385070268524567774092995908595884668698917439037773645620546141508255027437037099748286381569211203796727812027576625357571639480761613908609170476164975660417252061170621497901128716074575856280165080713795727018311601153960014022715303487460746094242316826574145240542060865154948650352632577109857108871977489436327096767361014113676237609416218763495733813461947148207693688847234540072986543645586953891507079771323775218298153027724041488675467093180459095246444215535079979661510030698769509650406581961871469085461181150809434501756102737680410029407045049261817113138718754396036446453251270585404758914002143576014210900206976873077802691551563654679465566944511493565171377171236243003343749487495204041020765197976947133702044714644741278666942707117070655877849627600943089729489809548637036291235008002612017086541591314781384137842845393512891318424472194913164830742170138889244694704251767324596492350273511824592340102850460034899519648070855910119151713012067138312254400846905341674198148725099420733948284935684195882306932587242895124816969151992397922252112925958876911663515127884833745032381787414663087268965864217829278838624901850593367340866864446985341847011843805682828555354619890968531132144490794029070697462458941984522095120544597647154212282030085580728340426866316366869130862156510187402947315873292947313059071214581663664575318949573349052796916397401869513785398696595613247301245411882845981835259060845144140762645075954146919840209484076432584178643612155934431294871693497361034525560270586539594542335385131244611281488327257753989703074647785671202381213212090182213567330200431026345725309194236665699829045414882286856763320186456129477858056277522883421794846741435612627089456153778513984564983071364381258947078142449552275588412746661148665327751190690798446303159694222265178708505130873031426465384059494253146061153789100938304660844555106925983710709144243680593812686100902343313040275339443347541171389784947852107304643721937141743146012720940795626490698130978661067369721064245248035636936406960511574208652357213781335310489941962356574553170811068096367928519637086554364141038964005450294141272336241771846184247845828180500946368806117771411416708850374170326375270701573974660362652720749115779202489132570608876170424388381520347255361633394270611919615684564603351019821533331662053461509280880382625598942204395808416358985706408824751168548467910549460507647792087560333610602877515929453597491750643492038346546013176355063929713650602656528964419773909421297291710175618880848600555536475460904531874055405396567805953842730583169019219849379653157030431656191650380146727353138797455779984288900754767232977109582309652070551796631944459450640240162050820730710056651863933448000958618991449889657836918692169332643892129399659202107263530108259115715818315876283495948637455024450031505840903657313323989837415037622054027969937023423080572296970116029729669421211767566880429487320374294410640441295338500320250678914080956469389446699486194108252975027877432698762582614604237632513483473998934231856454390680876361675311535568824716662849093640291277983907941249535312207123136747748576301964796118106242214645583351067672055207383844853366182057972754516948423793394311370906737423714751640712862192104457777264982325015857234298574006749560177532604535937419196533226972368015289301061327398875916475056736862058256157350886495428869931291214342589412436467579782052928687363780557580808498388891312746404616247539985149738123359319875153137027823308029263241293101514061033523948295523627411100284462788314211979964989961183488415829726714960426311240970754860967524909202157709915500407877082475220125048744904799634886720132539344652603206816695052634514225879522453330490815897029734567217572200699415679980185760896151489311719464988359446722941416096567190727304251399189233382587010924844456207070692609376094902682384299813466262924350868126480411165177114447364161750232465258822277231858564722708527549779037387230651610043479633630422169106774244363619282766130966652730489793600838889762783188011328024920367609626878463690013586942596783885792041427253163913058171239797378855598778286186940460371984891459514242960390872150434265547850026912959394868101086194122760856378571463655833710257345276917844776026254756533552028915350225522595060998740742577186076194979789913431279970681101180619571858268597225772993952170667598959919641742644818840419832899596887349858607205674807379079432832390941444379920227825544761415358166764137940352769759582697726697794389665731150567101588236966905767951774928809400081076579109855134680677137457217777718837264209481512198724923034585279400020805063696517878856863069860343657143463531452459560187920481729072393875168151251991097397860558663349827030114521021722395393894359828547043242927639144611082332377286172566076795499311210549022300115084967212273961648308149304812060093548514787481679958760891627030846320652681481072284499273560718726804103214973795193123575184406066951335063917518026255264836363588614747651622349975997169150495709675913640363805946937417819800762568886353664046466489495095112439493925084976597687187853527544682657316269139699958110633183797422112242145998281070457560314222643885099970316592882157701364331938863107827048836031061359229817089371542015889391883809037314057172423055399658337363611315195107195158617588563920240758605531469521436377944973409324613072738490728146254976949854993266877358892744504711743398535698928484583067908333888326065436853375615175320719888098722433257984398433038278558964759898316253044575223759729883520643360314843242592842467973879547640515505508562843112651557623750009608770399105729233608890903415261631103492926135223749511526106357225066567458837524150856774189546596314655188725525814095751668223584087459948566656766862594804243902433121371831857954830064391471835260191945757681609114530947294897205852692896818632431041606004016864920464383494024578640069615443379224829791987371314322898231594245352910147034309706620677412792277532303928879051380384607518192066071362304083761102452979682746830635870795671088061961252523776902905197014655273852749276069211884299832314080380358743653275304699683883502947966692861356486833529980479026378537033977264842700352786986642436207676955417459554818657531686095951537128374963463015076126817089010654328458384036953439583795871381304143464511990556393288828563088397169673363880191053540865209288437485060138404964783479485497375644286362804609613425809328066951235136194809606871279967951360809274273310464653719612352469460639378312077759776568767307262334857754018024463237777873360170928620235005548811155757207248816153559042761116443467361181450542486805519088740834350476506250766504384611599134375773709809681146603436540184903161422217820956728883705476371138639083022679833813223797577094083866505439773695226396563995709472738398070155106190021207404886566171109792394970137923964971821542954682844621198690238917609119445388679704271357743416058010463108924456212768144968995802022066474785545584474760569086880391696309989714275975244190759219999077673689252211946596556514092853994948235551594189588044105130134698052479077322960444401602320283962649274572757710093080224514962243066045025378887943958095103782566957916957056006344196960861825820044825760976517355080878630152011706122949901333795401273721741169950368664515179244958033236765664413325809093391689265656840352285447557862261695863843636565085224830982934765321742713485184484208474414102878061795384029803576292812596043940693804057660661298805692044784229003162128086801754554088513736277908105923825943353912955290383398454857844897092008580666438094847251794417732135858542494443047100028972013297145935742935259976209547670118902902421436059903852287657325017537188742383981112600430711689605303652454204132407868157606816329909704286334720036397541933541143320071015194201078481277559615666115717199914371996588688564512125714587267934919056810815648353429252874011544185163073657290821759491533614551435128333004472641202756302690676812146156751683114911651416312485714408574689142318413845035663898559518264110307399267611537049748939846295693730682590661540685714629696859207390200696877689597846162272359959044350888911039258872173583453869541442834378153340761115231394894014284099388404753216736001612799685305947328407728589014612745099248446810458945408569177017347671166045325973120002589516186407067827806393646061668137916635966147193426105046317133480122834520082047946246593350793475096044061009443608722320260741265311086886321385124713604908211723641733270287900974602957690868812506607231591269699504173256334072175822814468097406006946596785207422909957398716700919366800531269898310362657365658878469909960247121347230230739205432751050076891504380510409485388846328128643187837081908432823171829071607988992606456383031249908473380869861747689142907673586997876326105928162736195218007008534225433852053199852376392569433474557734689409311251913250105738944350685845216831880514354051533521140791366076924258295172319879922212149516019407050240619410711203340874182774081830309291256864770886099016749613844134509973657268507848634151663264092809653881949379751527255445554710769442382295062922727851960464592971553869863958536943558947886232719348403022827206344554639945081723380361072180225111794259300328867744505437683711883095277826030438689627554881772734136308484031663385642690250000443256739092596393420304987594949936641989085667082518262943183254693628327958105193365744995026787807585132587533546766166780719965720309644222998661062251380946696381723681055006041231060639764102406441072351183439342918877813158719567529822798132342620043164653405106270018350582719587283487922712175728537459566263693118995036049347596446713978258108188484136917258438290932568184362510220397900156512373312242520098522520346343843605437470755918053466614912401643711687649686476121201206870717738354761127844384990633551667187411042808299773034828236232632272611809802445559140704403096372210013885984850600952282292237064879511385196196785291180056954294771714541432599200535702862145406405023512179213070196195500472667260819571240086944357595441826550013291792515223854772949216420927000886054916443135105159307383073480394179610290715292081931032761711128407739537863211925826778663525320170572528950829251011941286836828330683248341944238082843019623965615434294948883242209890353524816723192832388322586113695282392093398703021090264662474668429109863116563633825569694744151199794885083762933837317929569405313405363042167649886746544279108314545545759557889592549645516387422665476660716569894168531125093050171806268357370388147756549058249483039648445235057271919791279525188734792625025663225860220065077232476191493943268811759966119071331926673493159064490294946813334367805832259140136404810129643706195937350499169376994600519178673477590787078444225838568894783781397118441336490654846508340156176547047040241084453001182880439046874708970347710223154976065774955854921768916548888819489673560648870812147685497031261823404351286966661050586894750576853108219024209300863057836761605194036692992811437894623435184684115438011805327587408459509834124146623523982877231819069549439985031932119224125753385670808981788630106563846786736378049112916930107760756882154258765198177123559701483881360918547373020563513486295796007885070012669287071134538892800534058963991550677342425797860669023007479889097989091123081804274969158151615329179315013163667000948652674767599906882195801231292567969110929665493970220209369506856582017330357452494035991009511683933040075494092628284803494591807571111284568735132157634397429178641246280816618482000113597128013525058783514761872442991985164677422162150119155516190817032739934386790820412315137016555223257970438073977998605738495469576222304363668224120563674322372596644878798188190003405676254334726974655503047215812409042677559879795543747733657012837022309866039156888467086931695166411892975688156032457639546109155025163498141841136521826163229711593242827327518033355898498319256755347281709576647454709923100833488686101125881065063068697455111687154339622786157444243605645974143879039561640557351457946210218877749180192118829592324640073555106265172387866465252932824191448221913716543065371388761345691106767342648687131321150833157995873036246729226333387169348940157368212497344900372213442567347911173480435323971369151222095925500186958517074008386906086836479811875286062212157112842324786521083352438557596543320883923281534709194425081382364860217648664745876004794275641661382107313307869312745053344245394536976373070318519544470465908280510816219460113294497389138195527792706711754936457491477364152882672869328999312738107387917877875380595867471643981238752847012785494968916551156760387670318022119664900686633321785736524307724108786504505116413296960978847899925611296546815516340124131993317977921617735194177910884923648406367764641595990597373856642148037482802025625429018425024634463838482444734237929031608485414806150049577781889764088922890173649764847942836645269081940680554752251727624304226017704461016798346441921782355544797625138563386781293286031102671190497000389853741147279627170211553000873154816184314387771622611520017473699182746662151159671354217357245166169623675935728338465707771730011011603642682597230652001271531733548301073069072830125133480029054239016535735402237586492158172525795087391497584939380860092866373218929674403210619995083053726332146598634264544221470759829207843920381297352275007468475047381237687419716683008285098558126026713534064478382579814980595580671832392453799401147643816853330645049941738324916126206365146651590945089226621278867347905174862823645994631119918132203688490096204881480248744593633586951774727870098886319526693002428504933751513530376445888087729420162607761548193607370903580540083357299423969785628660823537971690438259542195972398354843090959616020791343325438946062292528709703722127554483021506544719197878543545857943962498529947624213796267996890880176492266681782753415765464558117980549350705207148800461532329383436455498209547480314715374919198996863724954502742027974147446988180494791296724843807995064634131055812451589962013197790298180235678337596458286672661471053068394939973198381146285299393237461666864226295610351049490407692622601174329111315121615111154872526033403621284140764731076109387066090683396871004535151481344843072393911274467455306622420934878116923187275678526340404428852766446822258377905129876101641166633365941065080312946600665732778185281286100320834542659133493224274378807031837024166553488378833691828220494904885920449126475718790815219075092729262338623363610864205052283756169480186057598640542186651860551165320935415579866529983527738414699691485391271746146911189104149816536822356059889427994389985319701445873653683774295285019927015688540402740691133515573223970716346604587516356946091596434415988114544081931378903739321667037994297009906553644570075843830485427939550765945993604548549163472382903268126947973072897532697500422736471283451727776801065081308303567052663718247354552676029227065353578542943827834778935204095831125922319185497998645134853605691103365198750691651374683866352311035138543407826135350253207817407962228051386794310138010339986272671204909531871733404125279290257858392946841470484928114803201715503382762743298698167196650271068398804667052979160832758735275737172370039326766926304899266426125961219033715128415054015191106055453465609191635188453344645671823948087884239639747441915615243980862227240045526667290062669568013049093384777986187176843321197193012465048322591676132244434961154540950606553903655035716543392433454938614231382859901961606202679269071936885277050036133247540198934004815326559310692846206418686266545801432924975132969271721102807466563207603498888119328156658722385737704025468192933561574792292512538546656113957876005300724643291276251204573149246208881433489285026002324009670310294584707040198507514196873608432479554221103190703472638002843190131786133644939747371018902213388135830937032674098665701447774107175147367079768310750130121196764985529775724100144424547789909260891503641248846453194515914842139013452826319525250364880389040112655199022788076762689773111004167158031147559370593933754101500310523950464977326969434577575931682876850161973232659118910305699748112080273297010466625206052939513556440881610428108167066299692043517697518943849543250073129269407900230232870124584345618049628940960037562800652350196882065739484157769970789538427619103764244249586934527388530037203995393754923122632679315657831540029041418016723999224742653780087051453841669654804727226089018456166066825859175921757529591963065322352822519976309890444917801211107926210370697251797542223289791907914374359486254628335310009160157150983926195916972924905872996819987391454852243023509167456109914445247986987307389244977293544484210197488152616402598677505540797213288584778007229374247670438131952520684014760495155975485731411839658833124394772193933464136488750178377771378291695421816984593445142215308735853394403234683296642854829709457548826128887368188753375096961515403643537027941724562279398298295992407409277250498997005216201349503849365568533244066486695790528485042296691274434612231911922039948023279872309248963970066910416187403638123608979670152954095399502934839222875632786952673444282965813360302053486531589417696118063634788526426089455874636839407730120865970685345891724678378825233326383298518249379466257593759424777226660727079063617410469828067829035627085759919069265710342043348306831080775408350140983423511168287815550771119134001496127628059551888518437268537871815995856786173945070526002255491300001914581806204532312869234300333008776470554133783705221544863648675378133910978484590749385230347335784158768616174417006379809341883888456747777233297752357282820020817316840971635897117384205356264372708432116715858243065616807164558402609940638731855032146153973040254608543181425172309532280478375099251263971196898137453684781106563805732373747225956689402100114546440704641942211007022878669016893662398411042849627044051445154898822818443804685343011854738918742394003436345412189278833410235579462159866957049366754445885398010240985206796890862911692269444587659309761263346662678809153810920549511706252223877307975823722588484210261220648784892654240930272052356390766331348325320135287570738671041898970740734305564114952778279362711830632814312920661841269124683936456470489692750869255026910621582689441263627386741051701511974159717458474858434602894957523300635749890408256676000972029807940956334541938146965203300187247887233474049122396854980619121137935213507298530593460705738157513194642556713049424989489753645555140275715390723132826789326340155379576864168595628586875961375867360474802954802109704509152574696263283878892761501857134210360792848666980228027485012794605619482997420724350925212861632228659167490178195975423940475010274284891040040516504566883396090059297547777979098158684903875971005339392614971446443967232539593783477718638479836855072259941353511581331182347594027306685004394460178821507020911286422436228809700697776554524001285579050829395428380562864512782386494520076159561329677237934278982064478654237331370414264348456283764628138792979980756268967898763004592673293815741465478181522696583908918024388766842058144862295393382371356855428735298104578354560439751311500323281378925088788141304708123141858243078359138323897637487956225486630767042482229838446498286202441967356482621418849752735472463681748977450680496701308295367765701999519782675210159337156268574460324816737859416165754246954591609693021271131496929757288137680396034566003392691726564132213357297799889273130896460381922920300264554373768806529528714704036164879261966148165171222975581637126650396969903254498853983510059273852920623156882905507844153919590634535005227983047216565249420622645175908586175695491939778256871320952718348807185980437910664721141425265202745990240202047866368785691629181227862098693238279441053663118909764117096320503251204263719621071772872449760471417442456865971792255749470649383838184039306966521049655523049882089190180064311262430942766170125563227756666340085150157351267068345607333728640597753286866674259398164808585884301043667511234533152569955498542015245726156295278415629243849685070846833116234111525892014920884896215165255312824789292358412299257792420931499785013256765927926691425860571014775232410857632956556227509308542901964119903597649955794127293396007335057996932182776525717212797481476385897448881299942695186240257454048236705549117955117893528061044195509214970569676263927860309552524951235276585070880402302614338611395431502291471864047766237415718379310743110831233837492418726016265014845692716210133413508620344158783663586338394824515405630430501609638489471418050568903398383257875718462167518166035354324425743748064497578444021692255283253168662756862344155103002269955642917767588533399235973178759642131264811735578708782117301656924247308963018647798604903001689212813034670755593107770875575194291972316433874624310204771317964716814463036118573569541592128276719978610170679075166957075357027569615748003523792874606157381369867220656660819035336030963982720930400088327164536598075182264174709374705656770830325933937132359075937995749191594614719833686280613915012552282511953167795105084831356893887665584767583642422551438789171221178273464825035926947467863365138556843333070477696997665037772315571730138147940406173474005188762646633051345739928426219544123953440480757851422307728496277706249552287588477667601144034276433987478005019879156427589413135821856957456372433439123126881835735828397471335821124093078221469600266161126935800525152055752504602523654692590497028272402192571845835534195683468968202875770577767976629587133047521424028642062653455220941958479025373250005789716444604297556624838570122441938142012272973765305291783909637094306158009746638028417234493663402771810964916222452289880618495770347013875572900725789195434539814821001910651287578749743555954494611311310029047339927037464982276930760080774271282878476242182533843948884829493627738546363349882761845979382951893761034426518329491063687229673302169394881366648295155591212837724166029488606747321270444097246097550500128651492616301335163804278076064653979185897289315402939926349374108087192444488626100288176085655304326929807999514196610343257731885747129058839908152771780607933005991772050203454361356369080768226207465268592647565922816057284669167243810418705184708850140430199269807664901562602328687629154555562242792142969446066263190755692424940117737855888612185411352435951477761814355595975111576723795579128715806716917363871240529282339491820463337968895011880432528826402926203439357642777507402570028725690708287814835147434632756315465915965148358014816948826545884488434627628176863405998536552017547539618150461574890239240954254551384572929618856164473450283836302348290424541841152610789103641469693203993876347190747568878285807473996869383402087492612961433625584217579593883377464560331433813412961911255520823016675283866733214978937328307543417850340130451185906671597253122154512696156512475420051076814056131950480390021638465704181183376748849890601738839308598576479742605200761197156591750407638115304511397514714579113847224721957441031633467749329913533613778340655034818892222103933059996829621794370193583364353255032867363616256546718057583483865625466455472139809188306389388265517335741741248228153864569711686616982429977323358005974660383473601802418090057102068307979116088930002190578783102370519084896989930935303643067418257530788210707605280156035488737114636607773379194478369905459458463932434519834797653014229460586768588640027053932479431443196865391236077006650760848992858284594068942438263463795060555410055645343092966618795913594647747796570618441787093062572400196397747636830693064683283903764681338261912860351941265225331930772498202120110964145885717731216712792957228395505292741681885413668713183619238303748812243574982980490385447961341237249035242248964365610191862651468901345947360246234370889498731656410100033439239357783306227535639627497291033333967456233341977499644995950748305385349579985089803322407742173071850502238368649686009381237843587220186018138683524967340825045867351593573233907448485595627618074123157343300150291938364608693059432714729593981583131019117233164415081367056213246285114501201123356523049851904499913084711254873679722309241797466638798187953828726461528496469751928130500652541628190587856359305441908562445847653435921127380640471212139956680952433588237071723252475897484687331255131015148804799842416462659642871882264491734042952305462757224263077699759291585639611254648145693199765827340216171777989261720101870626449636379144866108907722220278953240171974071382596429461675303485362845752272794781899449707452059048534397440185517035966360355089081924164527284831525107458389214846484751011748633119883082749947275543312183981272979981964591357803737272662960583580426218139650586312295592906317908245032960757641062851530643860878621124195741951360036538328020394844516350462659406433258668057573402475826851522571166113301173573378953987492219346175728783676713915359788641656149044231027264287077949413954916066974311271143643743149702707903714719864269452152491840989808555193347371901121712580411669159641549189344821923434205435120054294562336064124772916514575771540935693820777847811915927154797144019751396824037745588825776912426881996386243557492111441654096317276936930609073877907426383627688203074228150135825718446027141191052300217240513274754613149900282380264747700192086524564587958866806692389220982246077022303738501220388669765695343178569382157759402563683701092308885778196081442867725614088551887547257374119884314854296751173937737109663024937842453943671397396890483301000019474999099907464359065488973749463225331834084481738901837555879279680323981903004463130738277804944247239722252407464814388299803012884969398013588162868780281324683630876397473534863033756260921093354723885980583746123370152264769067648893900754220638733530656599546560511347288391068648405263545639609883786473615321233919370289930621016489262484509797211591993418237731826437820097869544391200137352381880089556439198198649209328164183775359813884111374943024536813703506166030986406262622569979676720706096803033471706696887372241057622337032534164580139767533036457819718985016583580734929301056044288051468464500796515907391657147705490603818017557891424157149737131092915920593128586077752786690731098332852810510649087004623623218897830481383387656410091362836216392474574672438411961260031054565919185187576401488723966776060295186346863017962217973505804218649129146375899005051098424002106210650729408899311571315816605596251715719216657768842850586130140366747996481047459003131962039940716785187475764125075174358510683420685520629447008504558428102367030244378662925705799793333559195145810311798500512942071533388129837304982796597864837797185339841966957360200961767926071064162488685207771308993439358688292343158885049917947796073740792838681812680984303799219382371626870943892070014725630059670982066997457309226041545971270131933572233370871984705224299578239311253299485499957057461871585380712419894925453571070896660656747075634296795956296792381449445939653550068872445273266297984914350990641029348786408174386046996407675789754139075082603628883316980955637365350555744383112399732823078010871015876423267051725042861062047677613264684690523416627259611885018190931062363136376924764587859454719862271739623843368423364070062667319084649400436601906782888862774946026757027324043556708413531727608418432851333348378939527963259778749456268685986281265693952674564962233186885153182993625724969527717019795029819834129849543037206262482712654615094086366003227843297770325485008479598788662638370986934137624987926708844861400672665137596255916624551953476458811381666028344929970941564238243629763369711273395084058273690401495330218401271211410501646213511085016554591814377950483598479288166229078691021328704018688193448649787688623836565384457097370095287594882945973937274216737476313029948022779082310957136656287429859100549578086150627533556327292296634426819071810991469983068449124556856085222146186433864858360427543152361946426113329915253858612188819408725616069778838331201849450557952050716460041716477408813966732833983178848947378183144284133151063197117612719294368959308963272563611312461189743118044386198629121059414391362442712779380830036803805241041588203510847392433527290771955804400642224212677635125023803370014208015793992886208796626693743928668275064311358258270589911553070008653689734067068432619849889438487686548337497760501485970769637672623721997996350910210034931934989802006690557422821605518035226272259617152424662085751013571612560765743539739740349332594086113168729075024498661679604605506050604229087463751190496583017301113820531139338645099376060978615466953655704509590331475369518741969286336060199284900619174577902630093089749860706271739075361361705718163701829829224453604711036203455369701844531481067831204422414629075196527738089158519087530938069842655150568425380558690985548095699215560009866691894853563733472287072735392825051363619164542661357195515510661352283903983167201332165322536455676210665106056743426338819380384558086419185007075150818503917036563915145875959892215342167472628419132053779286999487806486227495934620589618122535803093218431877446140606835282111568415543612171512205854236105463871871446338921292787191083261068830966464182161171842137397131790061149337687470055172931037520860659045115999836239129353091481896141638673902347148426988294105744873462287079566885853103460611285783105834572458382262461433292412147238684398673501965995133962071280707069479294144586408795729296344950133138929330604284600650669775193448077926974719983822904847907511104193184260196962731293180974422034742377138345579642136769755378572383866135388051280220349480396835088637810871285862782602836065877852314503320993317790769510332898949049177729868475756834867234651420988256592424533522645915263522831501904246766633484219779059131734379643523960688937543301265491036791100327601505154865923689399801033253976396955615554802568394655189922947972122150025425279997522810408580503346346693372461079552826797360175739520611148150233285931796442370630811873952754973305185863635385011941418096217433965428461908276904471519412023586585241431243745770574187988145921326015065700788200974640658088004644965109126500416436243606949706104745950588326595030426193543071793809615017810916137729784421944922001782585746113587895236819485076000305827703375893606446104376122177852938525481072741691221981330427723678406664791070419574088223055224809365277891952182383443626868014087127865195835966489518665910581462334389001511488801802642795951576616308232206260615152738199591529987765382824300437186039094354316263795095410914206239780116177852390239437455142658970576284166589902079513663320552315852308601940039652195098276970451078987998940780459693629838114663300292336800910879817335856707208120934694341665680051252247551688651300643523425318049869280019145511968973285345248528179799617165162436516644501836657877115277684377281090798698592506748437319956990601389354518806113619182517006122273076745858377269263286974435195431512550606873066627438368400981645396447369848283829364416865003326792500803071115684622571855693061578655817379054357351368634020212210108275004196663900691123760291770268475353026573837799486695417763957107577662622148903461423711226134938731996693744889754907215394747745270074110339023310292013762884111804049576853225255163613247625706575283192666499730535377800525214613866807067827029351201982308638551286945211718246952980651299127807691995004137896248590782060187305064577386993598388018823289550639627703084454902087356407198455190503931296075174528849426400097527976930716713718766958809773192601385562765241509957993619660760235540697402790960996917639214428173338471290302730000469477571888370587462272685575985879287493609723986252505962631606794073772696793433547083327823977901398870393717772448213530340130762306318684466735936905073340058353658838951356569958012535069674102171681012344118284720587891651664134374358866361308583108483948248756101785789433922076015942992343630106327925571121284963262761995814799844212241285449940709725361726099032787053463877386005927060210014496377371139387915603787236585864506037065794413378248103169375860853792038070062552679579240470493830765388816579100980873547952323185516476845012420232559621905235212743475550850290980238530062348338301340428507929621774419684199109841038458432012748805063163032795532748400193972069721070605026406655285737901537211820510806455667236366440732594589625480963197241788316298865320362102893625205611749628308069084097873059346022124586347057410609170284956040357652143628990994032170662978481057467054222561834024918286442943306345699883387970719014962477118286310421251931080191982933618172071458731937105030935155682330093557664235968983866028010376465370606390521490153725757527639912082844007312753916818003468848940003411725658077115302611356699396971743577530919810382169969254897494039712630714207507393554143413678992143606642603021543329386738661618575880878153845657866578688030086781612749427330765810970040146667192593822852802241803748059251743101157156198648556891831479338303319027216736827951989711571312828479976114890350770810108257365345987440272388301232870761124232393901501747837657257689776918258450189544042488039527019880227373853607091646740025530480530333375671115285578780943598257867925682677492127148138203547517201985549165299049652219005920427783175293033326946989177287959856100635261743216767962674866110524756879560032354076662138179590354755154354737384404879246113275046221529540744575614447219583332245887992071023606499967838477602425319679535921208529297799845404702265784272642431394704743791123093084158135275867083495535240425773719306488156894641142704920296499313479936945744215993407335144054641767336443262192380254217238354365992939686312354418362866609488688430252485309465782991461996036333989531488387788022090764334674829311657813685672972568060571423125690488706945327492113613702913254440768719374018470370761995385153215357560856566023115382318625911358954447375517461365760844910813299535421974872790050436713659552311383648049932142177211187962326867572254789447261815733135862606439901813898898436138577636197030184062783149233061566682236677777171615856675195629628361227276944455778020350104249549401859748277680924081848045210468938448339383068555640708892999549541953748189020806192704757536408362858715225150457422702946241111433201229528560013333104537498885701390996309782813667147674110544324164974527183243788274969203083980556545660142257195414640341261804922240524488963425397931824530257034574169470024274530540642361989815937338283412070157679779970506702114970971381768672376531824567881721788407589240832441273629915498460352661212130936439332005000460460585427045732473322460949199743223330253020955537359384021147348814435562400975781500780498880285885340938841958730059772395726017318166931765619067734899252168149127201842769556716366261769195787555513893460495455091103816949413995710463448070875800231391081386061651293968360132391983306813525951079881383191134563886206809332567579505769053669441121573213052313555277048139158932177887003179247261082526723298888427005018419307911153073639182462143207674870707883759844274886693789062745707570595398766703683226481338877935481754027107060229364780292937648120770369722155512134695330222920269416313895225437896045906446318935844223072189248988798437475912229249745315914072171544563749494598016062702793398562326563804433339938054253185001899445781388491154132491856890631097381353424630011077085847125782223979635461114604577762808518731635546741493343527730535493704501559585830363307223098510295628391212097660977491159459046962610233768420335300907832747340561277488595299334706168764258789654016645594598683609202467699388073285457413985865908245896855515347517055407212676202465974894360011365681733849722824010476658913858383819281184043134357509726613323957643640534577326661802070432485790834339302197536341846590054211272056609803157590237113568970002036064868066481789061396058108876002706278316528127810134326567973929586885965200102069601946307875815502867889822747059335242637278762286012443550599712632725985095072556022721452021772902197123100950302002543839674754458227062172721703122379246557309678631973989930367663852161769843488833879891046623100366342507487263761603727933765146316567849358887559451010013522108596930250401030905299614180749772411336581689629781097893621515274431344888580667328160640399644054081248363759947439344786896038218750064221603585409451151597926727835071579293909591289696363114844402502241420628258765390862590411918828424268672582971498777688012316341929641730230801349292581499783685831266392766161521838482818304123954664690496073873148711952643029057096566520139765517181916327978154342071123260176824818883622310830636710479800864247254137286954473955107476359005930008544866025662249158709126254712949343927969175494706008735336131908412499618911654230113697379059190341320969828855960504552854410876385016117238871313445477578339388194290550843482358553243323859830395314653770559714412081203047544489734420410836680324540431818307039540366162570666376080300047634580139964242368535375415540815119576060580481286234243441753514585987296507974972362285364457359496643282363758616662949051788005554285061951907960232598070017162645458333252416112574278530956169920148719936322504039995538405671043251209053418309761546702502597443917195445009622022654536739369193656409766267804047701320930981204592782641677153991527920686594684337900638311769880747948531661160037901719425422405055922715827513233901398161910623128511181432340694059955367333534402004871791656032964024907022338877387390119753123209952793590813717119363466070541313954640204505632656521530376331412688451298771090996602633988877127031535030554100700747139774808616343814944590035367572982927816641771579660625162335446610443842038286684027818086154276340193073565912060500714794981539743228383962992810259431563384972592521285664121080900125385103630832411257909533474512901216773933730709205413493271003295683575506813937101082538358332075473035932575470606929845608369634458269375302716473096869643776070600823074462117543049469333162511759183336046017697648814161495089549458928819192698089274541368905133256296832554658301293598311693570876704738109656140284599314287885032485516778363585024343593853268023403187547015134596932208205907435442021649006210032594198584723132233205390937905682315599052121758639811969214375997804752893608665852891371653595538482772695752980372518078092156170082712109667591821524042347382687430161634064217547466053576869734149003985520625453014754680417451196599650374009521063230679836823520959228779588557179391401380412547342198190184454333595097033065325361058384185598498185249007036673511003805483748371073464690264055522877928345723819228706111553329143788743255386233480838146810336951080966176107068187121013346322936765178719969692174370300743144477644884256153338941231468948910682246991845746716732898116571891415124392311272511100232375067766166098725830167810309341199010233513876981158409821617247644827042605264579613609424016155986380395981455917517749377760101117615131576435451948429689254737953410433729634487830882189435894758573925689391030137525070708272149937877960089312337676901768950413253701046314202950334021640653080430505629025233014824611733776704375492297472261566004437539239593033234396257609016599237154485985373012351458847031825477123065163471106943785980267956719607797437223099990680368892767711993393968373375434325182959527856791350512617093008233759907450079449559024185855651495819813490749228373079948173991065053907843388283949903328248262457497227858278862730308509781322278077609881274945558812587715105441634584609321532646036553279672841308991741104224518362382959680615701436466267831915446211377232256263663131717044291253762816799126117398660671757978787057277460899159103240018339582972852847117943341419916229859812969242648512825867092385179401590506498495716440569469921389663126166805057623566125789250694417880746073956723741418379645137680992708177238108162747532618366731337224950590937026297800367466838288014546513750331206851735225798685557100833400007224077478183022334429992627134740734215165987188370799262821828374411352622592871341121853165997514565759752892845929858812877330113420318521878761851449556069639600250850679154358707390314510121480093003286341116593729914250413515961912522836051327322819116788548660445917263611237955364381882094092816353899200755837417024388353299784899132801599764823564439474917171205844832443529040976827221030065313372607577594156341114594143259535844450271387506474782311511472614695100149934258757849125651215072539390523974023713357243122625673208967091186034465761372012328826800723408553082442122167156568171108105563075002472845922717923119808158760209807734403982685892894890779446775761294593144050627241018714977644495789647142519153306825749136195418942134862300201758147607565389693618808552476861541881225206901797240150883380054019258900814651148418555298409430591681597240520450709430304978117688812360657385288660839177201200319071375614118350141589058189716811728654829492237699168530529974507781815632247852054360083412247463933530612566657570494999383043615381020676872456710620261889745369595239951439374591527393424212429232046146615212655898071778851249582551123311813884284523542938635127113942012587272922451232810205343919786314986586394760563301064324247722763045479658124683890970750424711846770393999484480453721331172707427847328222334666769048832563540696671574353791913113786870416498591380628653268764518790127788839719926291306993150447011222708541255565018185195868781046043544477516052405414686528915899248402404437905321466319354176466722890807821601199108595485455543861242744075097439932429684690951014529513591512053822730073204871520367395104510079079789002166558596356758725051896082440926675560468143030355623507534220900879144828687424551306197156774802026253099436772904106975463283546847479701670642113793115263792767296668686437229410585054684888352187021483887040341757374996744182941974117295239806762657052163056622822459108256084625244240073067667912555186813927736417965528019044535347748107841208292210816998187505440345897493342488504052607281906422474957848775072306650783310570013917218804408905128210044549960986640952000194000221365038198456448340847144367068422009525614512762958263154734041430385362257731389093042887824110927992065095841468165723653515601734177179238516075090694839554996439895319140934659333972253436399079719993827846802549214099415592135172764749877943700467716508437878435663937148258194628321627449785378700157155203245384460869786262790143932283920631737771883660049513201964505514777003825289313218021275251423177453670465226085661134906904144497903518221431158092018701987088121478565618700628250555311058702563889775484108701713262194467921994839616837180750708929632068108305988935803701352654533612892446824549324289172522996661200587896895111806591515245017438697458311350040247058625766304963948123476599171154079547277631732360228184585542551717148813563666674151526975858722634452744291186293892784252252588447399496504145040907428890809630604499986802184312030090019795820996593930795750447612471337606606837332545471015462951571672358596760102467631703103043290645859317771586343951185293691378575283587892490749468825436692327049467262502980239669238264889665696272996163569252655195724081474562623205738343054811545249335603275174777528629752391394010350394580223728308997831933222914158525678025681054616497494225699226101358254243816144734020681645992328988572989244253812139563159957378527177782158631937268139140720964188830686393037075479455618557496338919212647992778521278234562613180293817101221614792378728186675477921266497417724300670892288758825615930434292988293142708952983069088946085998321363187313463793492200091936282980684793202247808373687873344938980431653511612872569941288855781376702496450678327736834185489089144592898335889436367083178856062568539381339106398254748031787147122380843480584560685962492412626386738092456384719357460143687834914373709393781831917633887902132187943460531516294867940591574023439295964453411676052668821129523323380067291129804060911612101194583100705671903145700704644007145235247750833929954947144607633960514941866118437488825292385843001639114418403746840621552619880951104944772549058591649434309174150796827970704180002525864564112350587822768889008064978129230652238000414363739848786123618851199037997295001747481501204469494661123662068444491476180411711466107319570273252672261611608777955743179419659864401050242510574023575549323850711949763136957465624248110580442492974766916067873996495822046962374223538281433699566289372146396467439447111106048512851853666081112892786163004627037637656227540759592410582045100936654061803968716088368991729746840930087427833314398659238076044511050291817262002293261427585767985829011881102546338248073819902858629975977618055622676460904405232686719192809151095430250742280245992085655039363024217791816069171155551226990564859759533534743871251854930095640851575583853787927917165187855975910604751318796787337226400962473240324044393663307561953068493461952715303273868407400749748074869893612427556537455546518904250197440166621741984674026106716785907373871637385972479690932707289714949048766410391007219375880840621307959882969805958535787165444810295314378115810323709879721996736206220749664548998199451112674532672639330305314998561498474505897546000013316776127603311558083845859290034082801015282763963689089120421583385745353582706212666900870712363632362961280988013907273537009313260280929201703729373186265351701740806011603280004027419347403698229529766105817905276833417570562688973574613087388652237338629752328466596627047673193493137169906879991236098087893656826067293274868073654913508327560964806706031293197918307091173509495949201881480094636049629277749673656713855661506942369081826906217847696816292094067549276216631494034515224749340517071439905662843811147708667869626410585447223177632770047585852836889776582564524619357795142747039851395602755459813445432216577930239810678330767346365450185993761657280398352355498002957942521583088919765693962606898194730709075456688275647481539634992719980432574299557194450422794893209313632360610287595891579791126858706678851981372839591089431750438318607681036128550815659998471058134841069399955062112346010842426121379504073894384613636075710033864796588001286259096519063218199392047746710482230347746379022849701501402038311132634185820860349787164435432819275629399413739334959792703747817475510389068068635844578235495843816496167540560122943174368261697513509888407336434501416432714255321032278959283872402924190035841770234201744545859787233956411990315277362858732539600258766928918988874168981938084913410958303490232349546139690316713265597420460638798712798082973001012192435274807149701601176325593616571480076982602243338666029106094514463324324211487483865765989086652766455108724852119879409879908627082512730110961722362323286847915215413502175078158861473315851309475870043726850064430060617879405695146646062092555682202667822737048793998616686136520389370803615849565671623359982118955539252702499176158673698187893610443016523618066939335759232661515228869806205037855297648225188669174953497860601974123377445127604927110059882793594900201328884769467152947390351599866838488785526341764668900758124017055503834812791136880462066626234847962115420312029931807959984982773887497581980507993955021858817761411355168372049647594374856270291504342135485524646019644947581834186068191611107820517436823570234521413055379908616086019311972584017858266454051808723996372444872835897478066881224099629845016840119744132596593298950887601303005130396890858457905746861315618609949161486542046371860568411449615685976101076754415028036511880225768484425554451859594176004543640008085668009135712860155493723552705549580925328419633815295722794083994860055088163208148320020197574937801344440094977384349877095785218186631578770160643269114356535314378954861522516799866777730026236125280145058751360806613195111388863587429403592008980125561426962974283112299972599486690376606873185334493114028598734871454141524904924988419544701835409050618182406427039577561807857872612116314305200724539026910038967459050354126590036435928591898953295143965153678673348161670977932880765964893238153084781402065417229209010949659129110782463030206273933000344629888043861658140184733137705418631236108234176422405667826043483007345841601677070417607771145732469507567088770211834294111312201749357886054363934270425985591616510682240556621866145470761069710138321325786206299880375677356138947371223210010641622448942862494999184687195536086587215219797853185500067380152483922281435605191497082463661051397416233369574332801176814693199882027495521066898030995727805308407381188787110059063261723456492359171645677819536049480384796377585802608193589834822633216108970062839123038633128898349878620294483389558847695250810556060325057253667765359033083069666502369304293339317543135343086951350491749645664407459867207866746780748195365345251692521133210426303349503649362150697977273877728279827415611524107818888233862133268543466711173406420452479520524336487369946038931247860567726721903559202974247320640286547949511484988515734080836116077286548339240468915369586785087723248488021047052107445041773936297763244296818587689675404575995079121040089085509101597112969524272057299160730062070040749468764347097880951783270299258660153323840051004354816800816860689031819827275410707680186599141063438851095277250156622516059868243082749790996402112546913464008562314961342560308525248344468083781629652939924972667671651282735940872744788225857336451041063026483368915190689354167571527162730413577874321678345898919397171665317344537316562452347292728735240775076688152841621598205139111923084642251115055293103983336294533338046714256842244158992037461377816394725037631752236032271447386047558437977335761115471544136033229005912710517789526662838390280782848223444937800767523074736521655136494938232899598651098176686410394553218614671600188168556952080809120095387413089113326807984463474494560993527112786426130352027574075698676862441153134775705354828242424056578321441707157880886694754610924973801379741844166964309292227485054393555426999935970451366989371051926364468887084114741565496433404580580862138642885916253845088963034557520151670360790891451218332306047779334924417190014357629633052859713132182536726337383925476634615750172160166545462969878045461354044878494994793865024570249192047426336177964394411545049558477607356587336731508163733319066146639398106486864453348364555260460546124598826623311758192179382952122858372784358127192155518277716441321893586295400843812670331022120618403467179158510556012417250638096798094116328421443541259152353787642513689290014250396865735653668710886498824557141337193636998815170086457626350764887178123327931291218355328789227536428648719574764922871912498901694942837780742408048543807193177215906229831954345405244418077920411980273657469197113496726010395917008217547774096221643863938756502739607817170272723571406593688321820378575291562270193406336369776400458282949583527343239885711221041063229340233933892021932261763815517482166661252896193411585928483339347922625228826238195827844061647100921693198704045611150262181477465344155397855541952067300854039063168936808976250134052974226746035308024778025879832726745949401065303325942190571563991032646687968928499801880207810281804642821311018627752174612178727813130696218018819065670236602553659278980922517947110388325464518112232143319893318146505194514577063192764810701860055435285769704193598679888967406814946096298888379913031192591307823358179179608087949877308480790117510329689014404598318072341958448714352491413412825569947976345607406578639572523941467350779013435553695578442496893173317451097281748774236664007549565009221103831426239037039706053195668213450611110801677781378311713646988583013415575219094187651467002724550112045847570364728918230506689562412915385781956977875877442986136479906395462530446982647560780720253481272063195393183787315524439824080580513978086540593633634260408961837772278637069457948472577246331956841163759516560085474184152858448042657636693722481543300695870282731460909930975151850520562037295564215480218098280000493392087986255820854278484159634663652236709217266125820928971807597501158613594246255180286075771164648312064494125276309803910946667596236050867838414304003474115628105972347247813638128787292734871778915317343349232964727805707900564568009953321838493872518671176683115780568881703760318321358437520230146728349114891161822636578490628978669647244031227229289451335139527413355665225256768378364234970923871122577746129964193891354249404851417737040323207706231533333710872896416189599620744060740910535391126589739090621356694059104863066999440510611638042280828520671736184881349153784896521095779548401890263764721763150772247373165019635750934471743294486259779271594174401170130223419302939842092344438187220772726050616535594892605428802272435867787893338299701251782526849302630495197971004093383831008745747596006965995673582413715103546985765586070840609033375373479104048751606602069027347525047378195469499380363139639770142505377969740687584012012231385012769417542128262208163882880962676835839713012548543501066120394342695182761169469612401594651196582345244228769194376974267336630714197471094898343922312203289862123145706478349392268692622662927916740650359393762376248586009315777558613485970171731275783293235375938273118340191868941737125689990597172755596291695126446866765643339932761529186108504206519091579880797851936184599251764474591875505748050597178210122210261118129270559974943454428135379447810149321549603275457567095402683469350809099116297891005202338886738146589476219217919179920919181696547586739376470215046112773033759082269050226423553145167774614885298348087661255341752915504538011757807275125211636698387990685299355173525953203127600482216691200151169689094651479957567789582808683056287372773786230870045923707579857563217680877976889652416355062434849449695582352403029280533020614876123389381503668752970651170693635940029269624432153975578534470798154916376638141081490268397165678795527296201522105694594150833112798569774212879441819231549349739996529868708582161274390938181488665654055351825931569260282620614995984843715854577563914347466034207009642660938943510494887424974773731512143389038167560406192320817184340557437413197435390587234150283231484338352176326474888729655417557869514723526200853061180174746665047119742370533493979367926875150051040441917678616776896938820156359732434462369495091441949456903654283942238059887581181811787496390150331770871469873731380765856587512770298754440458716635807025609918864625190685964648721244896052784537952041543733777061970435735293709287269623248070426768185978712754848830281038677285713839912650821659332000071757796643263127795516154482214510677977585712866136494683476578439976003457559452323323437279049823013888672037616087611988360933703593863274058887509472731826372605524683596476317468880280164116911442157179375220828383846911123585486002159917765726039913219819168834133319668370085034473015159063787724855984516052581288921761481346398977011126108943242181118805334776435651972760908265412581903544516613056614478332696233437918083540468103273825570155714346610164869914098782615394007518074597652151273486329547563384468148924661187066177829434810710255747005560409616736201874193308087703778640209934347957337530395802375679242650128545441713466799723318943434742119192388461463858430396136669210343997517389426236084330519571757957799743354083546981226846041477390819304410979071156025415556306586050671371807432017584233096868410834125649379661833161150439414341965118133237576222712907198367113964050037276992543349963859857887623796905632643969778844961061282920072879969109410515909901488118938120197067987765824823024765392850655118094103972894649857378823013233121683450309826083564294328746733213066236625550359154564943830629820998887033813037377222631503646208939628806901760089330998971651915393925312950392138071238589845770672041866316634866042537913787675893850140757950817056583721358785101651068831055778924696924464899654464458247478152624394901338651366894935839205304396681523941446110859908979826464792599612992986423299188474875934080570700071420907193636982760504219178840871287257324831905628977818191976217947997517494981612803726466902240590577944422752982408895300802096040134330260686615066359995299050027316936701461176043201557360237670770919156526237848341385938384923416591171866254854477830421503631371643787331025571966298371486583352498930351236931151395961622164676698010103563176739111901563050230596706977876272861926757583707367002149564386540156465960123073687721595217573039971053302404536055275273261488632687357483959408236864801074252858100347390056506936130000901462544676287274656726128053695399219547634028226093103510383433503026245102825070239299566631758177429816705738860241569401333784692006349111810807896255300782001139052660892197724304258040612494275396585285200365804047974485616517727450370855506344171527915194939770706268885581109497661398736864755449690555540296778153457510916494046592631232648590768435496260091571809192917944108764851451050277069257427971187874316302032704178788117642536477184817285992835293644726723707822769666216678214560398106503674298259686142287696859050267817847798332281598166848844653685354113495239579799134970978753034402319007359915791596878272428406137301624546470323858379897113372420818649206142489825534727663937694363146291902193674693046713748567936158599792167908563449936289104686401837353605594868818336475959860336133275141518533570563911254790023518835298081562837353307688182201163784337352282389867467036533246953553504867233104401502109188385071243338489848488924425169565627032645353670456804884640906054436996456300906886917065564191625632999631219617124215101470424140947829445602864276464323844730224978420047061412217599320186917762201666790868057132821442916140252546241331771862286498593210601566555820872385147368417905495575046238574341890374061321067945276534755075832545187158790507113493306715204672459902084237047134061924814240900521685419110487778136617549066700859178957547932218623643364179809750359176942865048047711669185601619718207334079220071907195688384275641546022141592125437590087946328384230640290048404721230819599691649308636276617627809341651771216890976237610592470899135556465202838979958871295489995676263149257297931466621472976507711774873358491478041129665231484810699152580395644205372616262375432330634517909255458260110369516123118685864838605927972681180896234468629510725497788910717133841085062222928463496657901912379077057758924365633504001648867363097034950930235642044481640895683415090814592008357595060388676996889867107287306574829011332516972387109370301093392869787120963406830225035536593729412262947210039702367099347365449534444548383761548841256794552827585414183822457146078338834334331268970580074530764530088745138387740324215073922219899641946852748329897611573527177722656456591641107556648536883715663590034618286127984797215786322651536186042451008905593491108060093967486196453853750935835921086956399895201086705184934481824626954734670390009526604015690133782195383834036607686295859257611562771005224536781424708817258743846053325528852381346350040374594946784722596592387398342811490896029344101058874985544964954103000360467281299124718524528247408545100640797474249143308480187396081270316546629026126495993007604111652296470087907287606671610203229557804426895225530270014842566225863649811720258616995197858789570711642222122762706329837194583637802478826291499268766689857896645016408321041345242716214833054798752303559219060103238623295766014605469396074929203467616868611883608069620979932573867326098734585546873920510651072673311718189934989351713123562762469095630903236884768561330941770416291617838589501589908720965895955271372539922793398440936947070965820082306692337995101223227909897129269432298477282795119280854866205426439724389038014818797453161851957220383517821935003467012749948358318645888545321616172330903199241155883361005356787366790551716903114728325180062772536554598099580067666445399689270236613685383566450129811794668142660757046220787651212247733799757452539329275404787138427368530778575893816061909944504185827414991971356556517944795964411806492757871331921356336016940306105914504827979715750237561721186562786433989053057016895555037361074025952124482791620229714409391202221118794719563651187465778453672050053052976970058264772770365610936775675147658748764973481952081131445057375295724909865746319983975742399202504672162618855069874525631566377005081753704958019331920263260240596093080539651267098713683122730585777707830570879636309021360173346935692960550018546212336410374754954531652046055168679482973732234535306312052105647056826773655387350464321975884346872754991145171247113057337875233721950395262199148027967515323869477403662183180472022963920330619551516064076086435195061312226174151747723410014887265419991285306765197830877780669357366823178866429604427739471617676426579924385843272876202604088096383418117570440770331432540540509390260979616888237538563346331075481595613186297406782816406818412057695542448102606185508402862772386970779436004361668577341969703785222647520145188036379180513072971587274676189872423148144913393900490753182109547585164576713409938865481734956091759237573886727376196835318270341716579297423830609216956819296520045136808618036156209673661269296778102842139510175617377737666178338236516819211024529466706492860657817252585332161105795823457446024726101095883048856304298348654495547563580277858700289524684389195753928298462363188501361919255237486400940461175650524297071698632126716343458156756722537175047557442110252748423456661106447996690813124642835436597624053855010629375113594735580580458533830194992128528263341554704795565197231571278759982944684356133157572556937365204019856792943201404639963223264293696562307848000024107823187057782163741619649092708889104546215309512891617379365529905584481007575993346445679287182611075829755769595532553198382520771533371724336332045053442312981385167678899385065545513836034788842150523167401849060984256021188411266741704341362834683553315617421379725750687350682846034671238892564485023055502745037575143955246127757960612317900110274155429362499502562204816371685307223710076696407836882433405622008595951445481676333555421463440497926598508915825952663963995951066279005635738811134528419689035712927726116752266374709725440845953177412022562384705716790356133774669469277264082206242003475553048290803512728976272811752023073948756925209180820403223045971760399166164350682213806886405592298171019188006150974354169039344940512084757706805756845934750049363955795704550531322783470413722554363664448217132202205590774088699061159807676189625674570543012845276061879842842941966249685083884368600817308892643822051347750120147350207931388911539954283296633267882422969576262820049702191048729499161315233365798260764038210770200618237767413677518754714768371867779230419710022757897442559519767849231058779155953390117338141731672045949283696858476105231326208499120158023723581352593095244955543380192610954274101059709845948382255074411230739962888766860101507286677953863423297718173107401215362933241923665648936130851098487703267439670876228626320750575627607145780306936308394804556650994482544665500911436235188200591575731689507166235940669090967089457393033182818357351887236095428661332289184771250177720661382256661119977036013421309317964598502207019276955118930173459804688424794162447170424211125532334031750188975517705465496570117498387937520209041041040110127913216115519920981467982580479169954807884840921842618710748805957077204200009250030164787542377084494826912734693557829808665056799003183877974100268246952981346796725821603371850752658377904307307206085308304484306799113349815312151570152793596482887715769906454292817543549365519848060912213525856147095135695161236837316709500152821407879548515219859802432835599415399144887032771444155422270558468316033450850734141177382922948534564058377747426677429481034564415452700184209172117548904200985296272193311814896611540292417762766458723351249984950870898185971391248896721857642915702927180359367101331524815763384273336742278594471002745988965702489402219284935696831548011935874948662329706613478049313401618366299021158580867851064464471871732589725883722990118321027907918837737759654564319565829989949883432811500262447211349944329842091217181403455274845840948806602693070226099194151462634452279345482649992880671728872995254044845820834802286187252568280834126952578499466827331912307903828380605788450480322567113118743657901920571344626291923071120717075545147850506850657234677172913596432642314587730896415641961690719880089798651912190034289769344472636005182363015392843057679443745333297662513163142015585234561055397122667072078232847602420543358176484683940011785339963530963710981997172939087508954853053019970678379528475947786786401929563895945870906850520288913303773052626087474110233632932617835383423354052388464035220263187403535488900063481549056592726764069938880765728779654269206289046273367960838454011169610345427762011960811391523263327445936488731151364345282201173919031635435712170177181685771087879839452444031616822460516373894549396702530177322810700050760046758591087306338081600849851651512788603131355363009871811043695819845660389322191788691306943033226366190486113558739427927804701656442442463086617703480026818727306866832458823072198077530163064065360201536224732257568398514829241359388801855011121383007828087828420546161403539874807803148599268021252178881710748426730349549610275157234881497237943505202223852818769920816951479641389944303750511633382342282994142514047840134648130601152640819089544977678062282993365035207581370223022946980175792082491319479250605134677353962793766119243326332851011827231441110915883412814887889755260642388356693926811120182604637741843441070728851069465290566436575650694778360037466618636123601919117925477800414296890649087583977912148666793469438118876577357575604930963369805019030602439018548880938695834187261351756888892320888332219698862397172628955393089125651019670925188983000305258590805440840936092389738157457787255389780026639781441184698468793569607787750417055197740945637349166578860486170047069198244029531698232965853012633554285024088992192437521158071180004481806551106168958056796823680046575106995961881555769895059421957087383582444134494186840078869817363818688343583817262695473370493376751530953444554118264706240770024380653213345716340614743637782817621102736509961631306263165843351827671430153898229697362293799014078143448750688390872568140154421458908494404742589075613814623319297099616572648420871173091260147010646438007683112059240004335037096140688394786161463622811163676575925455393427449823111279259069958813858361560283131909256556812801179242866122929427332176536073161636300317354702230346867062066135917269434258272467491400741937110349693340976496108165769686366749630298697740264150691586331467426416025621139240963546812498786269813137942155215042134381021984203722591432294302429934377473383021641178680004701689127695805266607560608732268623141174392776899936183503983384320169427491910228441739694335967851571375999145414365099946614765461676155340771268877253727762580327706955344464975250212742790298770181541382393491083978381704178518535169808638356457506683660958196560293418171077820929154602628457237325559041258886983123956085596252634924294553926254750209642170760906785835462323229777771742816353369760229151926126251853648967248829875427103486895163527140786225088853770048393702787837709654532302845701083463219660161349862323835635658525559230718827822563900822619963164086147886010945486938119499920126591724481911176056825584641894037542673328542996026600116335868150098815284436934023315095577216735530414469620846099423164257157314072685306287163769083317949265307133198696396871633166851104139835303652711689301928431174311599855280022000007618275969086848996643524984243270434529175137008504040559623637854852546156061402941660900037433048991286113412712711066920043649158123076613461459230724139086838528807814221649051154552202959719576961169291485029757654054469063557150704200449069107159227690278050747571991570564540440816941618370116789662293555971035849534597315502046702463184269590564677607547036076259875065346698530226642002789139979330616964707965162174969545399712921348381131425067225417045165982860395106125315656134373092452364949919512208182909843085536880184140578715397583581485310567649316643005758971618603201596163829101769210536047723140074862458625852758729012139341043528244447396590217199152783063059074980534603646910346426971366619623255116134792982831419742789932898050783874399882964256363728665242444995191198317918855858709310803552662684081305963384813904995445207376875063518014466704099289034882381716610605179686369706288079465002711609264169772169826114152532245483243842028454956937232791148273990021648389291703133121526035626098206696027581396525445771233589418317327052014401614748328102719246912652085474002318824730667619058959298222345326580899689424451883501475510461830377127313452657891137940638710432726091902340418586961266543480243516669419398398038312999657593985415179735171374982677291588398311856137127146604629492281613048121931105624101355819233926946788804937242271233956080687356966942546608699115591117122798622816850195667110848570463951498266262456937816690376143693935367139639715545147652480047325634606465509676443171827899919254027652567602605570471519418023484982148370717696349905234541870613321911972480628082651211970831044345247105428649028760529548593731941541834350834034135540120738238519357904808047582948844198425785488823823301409568091637232802182236690218484732066249286956195353802951752671498423975377064621000427803123892607350561154064498775135597673500493188361392034711712587836569062859624362659464072807339470608858388324129583265302103301225420869586190026571025906557227581338967930209118112750763342424897553006386746224505693309097970470681136620407722780582602387790776340426245392078236229537564453034014937526407846330998360616223397247178593408558516820031035228126674527048894268935308825737101578720793170738357027146894825693750915548295999428521971320339788043166974353225365350721244163230798269277953643768293528437238000382174911706419681261539790689003315254672547546331387243616391785037448484731889355985700646945408309970547492098309559398397247918636551326244163126871712934054474317505647292316948507525497080018919307790807447303196834678349929227328608916432074068893543155753244410319914219306340081722556667845510581581640005680536983180015848410799364797553667142228968133862694470883492774351055431433590277673842468040936749948422193088339750495261309730646126617370056737908624367423510416358618880355626962055641072117270259951861319117812852208268157197395223504353879293067533190430921369807019353550420638236545527524178063002106980268796619761951606997813041745801803596406051726918139284253683012039824726131779056891917055099913671897063621167157750563464714658380298133261614377768609668247698900519880766599333272006450036979996369934681692553218325241196369816005082316763911202831073455038577859267229915620494915430645485189984660933402459223744534415041633121558185224449942401444599747479213574147475128712246723842177908112327167275106419533672505937968376802006491951770729976132951615985605234865291380421360241612297974617786660485304299177688388484640059238080773361166470485236898616985075410871934307411069213204772142008527824502853627115937735934518964520895684380308869733109985838167780619948907197660329737817677064194619635941601667846855250974021180653670866279511375827440484296557806716618669812917981791639068486435714121417450844864244621964192580447034460049488993073649101748349662461924323855210126595414791635813426243457891335395971085855112090563162913286917323812547351109952899156149000118317949743942474470609894798754789147452148725770569730534711586543654171850691289365907611669794921643059992913575509141520389799998735545211836612173542157637856534585972526114981547648286527793040743760588426995814549188838330190186734743584306026004865313404660774523967310285804330755849240503576241170703801207217617784099616939846277467832328054580343740527902191812469858967885205911718360421789009100984893352036109379238991813500430902387665183056828404866545950481716866955296527617916256179387265983459323319681036541189199135080821113834508812430584299454033662719084340168596846642257851256451734254622940347654714682357332365176135780933613511431531969267226502105628266321313510249093996122930268434248504474701977876124211277064668356657218129898974699927112065338078644736309903495387565892396653493561832788465386233576425233373103640393631371405891244938822682531688368713436158996799605944147179036652573803458974891999964220420804110182980808270486882067599278402633967275671534627680473408303654109172669209581364883719671921641660398301893425717774134614821743846579580966629403787188975812487912905119924065471565128643859299545109177487068224267550169101669244757234357947095196556541744482633131216898516129420421534964304664740395486839788635487525569522279582937552963823461243177048426093284915127600704968701603711596032971619861677474968625515795443215973435889889887424506665787491544730510089322803512198286905344065588985263841018465844854923761751214593896398187861407400452823949740572112983094874660082131255849279291373553657628867328378154434458572285332362599302277048605210764169238914067401646410596886426398007199280116111076044628830170449807694057311722179028459208282129649864014677566610232282809492031701208663349579381138208757634727864697507943038392611735779622877554842666288731195956568357834122327329891786331869448726924260895460277405281713348176466669932699865673839679725078258046173487614893235107048709891018878663297015397894321926747694171181194718685408880537217979435335955741944727693857492714497027325872332641950659713350415731711027545645878276993062476929451674183346590296695520389459622774132930013216097259900078164807648448502221504572804756444137435065099883952750910925890833172473743757885697500811840730612221899102156127037394099302049267382868859103770742731880744356562443999492472223999082941011177653770885589711085100785341668308924985771174114421166879612490814844989471970817024962127283658430945665022310166928547659856866534341554196429833663901127223465257744543539578272647443639460728374876808863666493707162845674433861309477043162508813920400829649282127240566882209519874209596860275634194044785544208868147939987982815720414932357776269187613697445953204069730699408839133405069599611522910541198338184184583633196320107580539157731277993990166888084159848978024253803677269786106991175416159245605213999558236884791666407240166047644255987324833763741296614383562583377088595122486917591295687431393188189432531864721432316856066055700034026933791670254464131050341397866956771037496884463044595839286686341965435841553789577242637497857954366711004524695995131434981560374479766023132695545942078490656662003551213100126307931878569460497242174141601285285433454552081637548160261592598718983862791003257070471774094806032506467764155597416494525664788205726428380218217172356226832566118044424837471332775070701519882874033717612822367224810256439905143939262523239329372721339143874954810766733824116078214806034769295564718785599667202187381321073211553023705116857659494182005590338776211044670319226212669689211000399605289293114189612471122228445955918654241859243933636735072617228187889893783699319542261544779450774945122306347022181909870827769893757052470634308656872550941594697458611934845431708425097579063250319059599154953252993433583400858155113567179933433301645166630327986790197751537794253929964514607361429349103654785769789210092026515982035690134677582125231560016513984884452855884914998326001919977006841443830366525179709681193667842082653132796478105568761044010279415278447410930923201832647343913590194137326012907840134976811845280221728901702870742613214821543559895560523201298065047261917092005687543546153244416968558647058018386522823037489202127197388507868566455214993639932386012722417182165998382421893935141330917705804535120393434678113316487404236632069431945023713651339020420073650472259843515500750739233120615137906028933253231810279727976112042606940959290219381071102813827125777985951765061928999801572348534167975897830898333989552655082906862813529841810530424135908881492836825164701324376342630598223822029666477523366838800176964619703835483179126693356003269796777150917191185790424445967396835388191880472730974767488669839160682160347244764769901220413519673448596028952124405448327601680384601940677470955074929835712605816504051203960073162596010469436548067192712979095490041353352514425849251352688839371560444130621023601421677340684420533056729276925997999673080847955617372872857399237827244713045084006371628440348370772553797577624013873492860695077296324070242340834446406452813584891653061833025108531692315844779888785431122461190061329966860510018628965738811400948648032659499036882191468118490786176848315592706069229192270786197243815594994883945401098535611006998026280625080167090303111425069095620577117766469171266344705976884435939775086029194847181713165381764017021506605699435969113204713365915999661085193247445614228752902946569312695319967345927892485874972135153145711930740690580727361185630522613376459794297173997391072343333139879440065051436572159620414151787438895908676018994426694615662918058527600925724671009093250911547302017289727245136356957482729869942204588243865697426817243217604138867071620650084067173072180558987517976765262026462412321060427293078518440190617230593222866132701363436970954803138974196266081026747642188497899789164325976834479609258328511899267407161975363905970846405706593435518886625822403529407999995695804662413514469034900653444887076969726547642127757095349582837686885521741273569457239741581636694342760353194425196911699836220464069837555157059027351902318875216240488981068327388507238790223281167728453853003630630015114556240217708860878980619910901729532003470884281597855327240197378490148029409808109373687366095141564028531584826071069875076174816282319372578995649104529509901998542967817094299120347784664047630389733022113682834105057145637678037590603196941920258546724858619028955611287751317479279896048449870568007598791933838607291000654756070901182572517926412017689088293888253626577194125170127420325676586504718466730892907849620873992382010751673075294515804237263671042110693128311798077855755095473771686954890349947454157581256430964663146413295309300774794201877341037179516999710808533715769564614652804742041771329465791071452415908545714610731132981531062844954930632085873103993419312506103338933444243017865010958686202546525299560908348649955741602591446767758815071644722889958001500503562321328334799735787618551091517974497743802395172988744911717743197069286946694003454484716920100702233783935932490553801039080505711621505094584153583601964222100680869724015698173951100621922499388952360352697034946974523029025279684896602287083258133360728696833129108951496999108147589195830211451112359302739794081229856660168495700575903841629159927626810402791480603586170833232618604503245256787738988233064917169682454731717323612890973286125131356751849439204420185658355595536313475958788563516567807287870448956781718837757681848313237105557945658265488415626386098109468308799845134542116767190789702515834389435984825509773733557067440501380066190115990972704491002262619913339155626337312903455989519536277096060704013131995026300898940880827636350530027840415342536282681868111056218054607637242601429113124390172806304297068952202731740681045883120766863613694350934745735843862357386175955458304410216531878571360370095978915985889639796162019216859460226468115943695400706787134749899814730772606424719494228828195672586168684252564551636262425367546787023322540054144718442229161189778070120944768295427629028571050791293278562282691882289542129323098834144443615356319938280293534803270861577590844014976665803757411526995635012528365641527789460171454409118712971740842671363198566099720873661092752083304518125577069891635126849618538763682050994233643762232625067443284787369532554162599920217830899976771023381585383459027245826741025821050660009361544687863644509512146315557338788085129704230833964984104434764677182814091982259708323842493481262238789292175442189768517486853106245198158905797611920628640337240554817579446236040622735456474475132005996780634843450617272537605627915055272652609420433133188060134459572866293448139725544177525604646697898260932345360528918590955768432765769471368980798088769382914900658085854370955091015104715931411028368469572351474548843504093678755281216924591526885090738859028779560798927057025981357189376885807921042931143043324260549897840995846251325562680789845262981754662409238935760807067228629845909747665329279921941441367955343097213365899691491947801292635355654197069286033764677212509163471918051770314140434271286426731459777177420943871447702079801385853533768049971360315108586449849839833171757468554835189017666497895520042435547693792275090945107397689219663231003657944175033778383652400378946506285135971921858346814805590592396386022449447801301514605208459549919661478319604279709383550209482538085298323433946811241326338839765193766901865856464443463485686691945885875444579089390759988906016987341719557185651017083489058214524129520298565620528015463966466493910747703046854256208268810815030529682126879882418142125399658822836279556580778623293441170949690612084239312932004150476348588583122362544448666364563233924146464268221483678660258391789274931213380754902650521217609766851025106512622442884288719218364274603075831436262010686474548342846979665172454039746466204726582627698885338197383471877084021767549492416159647358442602736946423079471444058666956659290097464981098075998713511111840641176712207860505521888363840506133215847276226375369604531943068226694093826195575534298634661641715592970458050097419828377310412693968935086142570646592118940907446823284404714850231367230534950568284510679189919100936080020145811896414274137774649575521242378314742097788807729618419634872523748181103110181318701835070696869715720566062064984282975711973470698269758932384959304023366748735313315906496925337118319912753952985812924486103783634284874811924616708398454086279207882857089887190554956792125089180989272149254878452732363234106533706424868833481830842548202928868293665555408856135673801160413596658750562743560070408224170361102514028965643248936604817051960842802511584760285116349756734768453955512843913518233243164705598411754839337620595947456727496507501510941338607209108451164713222296412703931220930084420531211109754585128822749819046510723487200457918717745343078329111314762511245111169249743082731951449892360493173202406026346203007007673741382886820341593655523152078866442754627189318371836046508908207980230511584085843822544503661106623953812589862155591513170231479256024425002459356022616702395889162499175389033595389582073700132517104578862593077291435404040864232547608287933651353906452866799393241449480416629846284976124781002330337892562107580341326291774844255679503685899865095049472216735903919728219085868986964717530034245612156578288503376389595996489246241255640560905015724861523395595294249466582834956669407736315014989838209637676926329749012938463047428247507692060559852098129016848757765461171971606239078537270440439897444649212870853235592334580211506674459225666751554823080556135150176489514695581373710119800044008095078048369313261463281823699661026599212133740577986107823689419846588723608490740334964061897303596110190460774126383895043996412928420224379533532541942719500514516773597496449973936469500144510188143119227672305916236675782009349818020581249453794279044611984446472557489948299374529839917088766707647567485954105203528857198654853235975520544795691396152877268235253199422864949098180734685769624525483271415753702738250985778341638926742975520988684051833529971720217390698784966993271100799292258221948941219237888831603182459546783499738082275918043584247122433128991362164850142605358281226004790424380065768159635820696068820752840577173231984454288390989063311240759769326052395737915702589487753363264745919256080094474864339267383534022441738267377505580543432496534323795577233763270599749499037805271257747045517502707409340946864699078460276573262534536860404665625762936675185941601033009360694912324029215215957656766685983377397484583261449778072435201050893895531795318942937028836804280459127948289789776434774305497302610177309937861699486323492004773377940264787717051596915898707471886694942505309115532947465106531646576152282655784520077473460107532323028791077797435507598300869741287458429073750046079207191701644947439838238274127567288008405551621434509633131262830847135956495565750705457102763950363418610048093329984075948890846155523172806277419618701652462190698452558939188956919215971073999465607232049875258373800404153556793893603097130151709994955781682827472589461359415099057316156010557394545610229727324815210577351932201022605003753709196171223713967485021261942841566807668591485753182912718242656688136647747118650412071860850293747653581761768547145720697414096147070140392362720894192581234068723454131941688310806810067782757126166781790450969555665670158415849047117979226639826827084755923176284725091336695502112352121515867324609810222655439830424348545456700886626724125029871478838841433073539858581009984728941762346970959045544190555062063316558089621508797470486389088635344532252161106001378666985155901736253591663386716197115276622336533572923701807048304544676510035533394130396717557159129609776421439469555984422571709907749875894322172917174217289274052423081092804247425288797861911099110880659175385622075168818855791009801452145264844824346979635033183945517786266767105685309506236788511977718058279732742232796560661261160977541931228427317924032185946673798568074022384059754536732295997101024431028459059008625265971236914032092531758108003652880839620475646093886999681968315236524080069554176801277257784343908410271733694279373259258566129084304645294422791358612399077887073459498989646882279497517376325820261213660010540838670426683903809896724991967476808051168935284956362337445129069203873141810604167697540411192698745531169699558803993263552131574891327645739419274438621397451354201344112988397293204352827484583450399607999928476247660286607866173090563261444172356918173258261071085354487880715548820259337645016694702811659192365382886401767891017729828037703880831999265106855863375558399041209209328136882147661157367023319086379003395709354235940811750053090335765803355069435554543486149206783243693504968629236689707829694030407360918400428725685765106819681052552451911475615829944261654101701488458553902760026951795694214697671394635871549383992193297909017814356807686140524471175273675032884346810055960419869463922761595538874801282711797048896532206935111115682437708540277318942151034541970980804930588304826069016794530680976972076852655934251758602514383793801209625723078213345977635593560756077681791004285799578758919343098149240060568934115823329729082710298407706325674056159262806658623685202371000415180196921608723484820260494935078662397789436019639307280491978708263888099084849685455147949174242145626276334917603650339645030693027482026806446762980898107776432718058224949676899633499372873610686537995146565979735577508173897007177736825370319710599048585680424006538089205199212559343443381885724698784659574588537575884325621965172338615934648079354694319172470540386943912914898253290165884162450381126371701410505389226601489577339319248577884357672857332300435940731282127805351189255458409692036333312435965587317033121577702623933703240063084790897237224168498907405831595652513098340371443153394825957524452756685221735824773092358516644905842578606879199556226410504628450426117668452732635353332147030388421854647974130190617253315135176583840701453345688648267262762636626145790687452694205698465923460506224227421843697650927414107234715532299357620416957488262706431234633745588404812836012251486067984491238148971424076454171781356336827631184463083778025937984550239689010196819166357011585725215786806693949101494587906938379829485629459333114910852117319117791554807876190229632390250398810812214361356522141010503418125494215821370571335006077329944915537505472916734088857165359737865019573012515401032892386343923928406150631903769391810273482273936883819050394843939092544482735695490427669223869601918627434816784552769963253957329247158528212007855855312934500659053718180892137319729112714924673369366644675204560495394704773878754122332033041486621872727623360600593564097566592267560103273935560367859331212938832814279085576839379442721835889816816325382378435820313496884733494174223448840205155516535107918206222454251763956082711729722119752723266608062952381071127453750439578535668429055773726404901131896480449920109234845530231893441169508495637488218512032620373863326074939980488052915140712960112040741759360069686474907219537957117397544599574109909578102501370376732307712362218717555572922221531063938647497513168594653831417139156162459221902446688896564244815644341626878862992048948568624361388570632007370426480723553050549484477878986581851401522557759505050272736849544048673901629108302202840680611119264446438405140513738012456412918357869389118359528689492146917696862134369454026349304197741744247362085080697112967467805284037734064479970061783919947485095244059145507257340855676947712415133752229862826765294231321233886594764925750033763751471964394004561187899669740979608208511368265105291998138613088526512339304273259131808866690897834419504320270732988872958694651153398770551070667986013682868777018454631129959903654120350516265165267485801903478516915732124475998052422801686942484249790762118623337001425008398029513143605358215459206522847252765118584112700466195008804719543481699512850467264287515120679740819416864633528985050269800684218597584655887403558946813156986060721199548587169185916799703238268176185927699483391877851865304731079069294569279296992576862739709462137581191047644209220357566468873742043227541720162866442982917803704159892457282019142097603746166691688138722747345601922847611648929605759356060480943132991580256737581145700675863408881454941441091286306034566786740424264829306456752865092933263236163340904004694878146588107142338901993723991468631412992981746320680159013665315562076236137762116887270046857338449661812247598764197163561767602170010734355429919354835567304662419810027354574158354071534576948245498096388553845431973133636507611471272473788208067466908443207057585755718933509299231568240242869085172091487443639154333134307033835414181665582260913114019025123510419453373566133548027456108861585407557007914001713393116354437730761179495180315580441480927768024547066265543338723027736117366799503050770238747311420283703436454090425377376773271161566324244065488900214012667453622086882156805630741139758898051867179753386269250781097223856647169190566612051928707399192018720333723122665761912625180631128121662684671990429369414857122651482492955739053150622429961023246943651573801541827329525019954563161852129344531587864672322494372808098946052609256252975370530191229919776763477273358942704184678248877288702493297134685831425486037738088440429896698279841006558463222103613939820687219252408076141271249386551840341552733640162452937602382437316546752106557509527956131544913825936049095457061912736932350241585935297298606372822798004862046007765957286274318011304866985222653045142072999615126788707365777142965426608970623436984198594949280066384394181075897794057711043695438807653838262859680608730082853888796511664668711338956629305499698099514740452763121818583784358803947921988929991913069616231875386042586929414697137987949264856086191368944406644869676126622829117004049522049572742871951716080543920206615277373846000488578123394144852289277159462776978054406102899570118335813638374580309830101982471415631588283748241880786344428557814245384749205517292914154414947173829421839403030516107786862064465268916369455552779345625345123733546108738915905474071070156682320752065196138902359897317778018611439558619075272120828895005254092590589299733914149915243893226359879240241141442123696940181608365982762685412928203353804676474237859212376872574277112143501099960732975091994222085370939079538681979228619059150509179793564887383739675030887874118827732040219440295579692790914610077347404909353202489705126120029090480446671346589863519785796237456369917788025735887315135960326707324277958055030399488263275527842623995626732789418374827513473567223939121742089641025331294659631839615356423015502211835078917925920156098131934834015098770999620160760293363917821971684054697623497951455567013568070957892646491707566846221160667137326821985919184947996455801247431046598524290446747590548328835129364650237098281664115731775353997595243952627418650210204836040682417968477074769541457460290760305603632108768549582421500657699884915303434331157923284633412158821520916495700584357896234917461911133059366201774895088899986782938372704594551316576571746248255441457073516500340283186566098610382774610102057740135431418851710165424772322762907645703625564220828716944011412196585832799207748488020699330421872543459885137339380547309949130704624898656974237653708745413738582490406956450791572484247744670874372019025231625857646191724810487761689185572725484697777622864957789701244870255035462184285546813479754947955262895055306901552254794160917131246106358123735409982180618408464489899411894937144662450736544018837172543915648181011680000124964730899024469670783431908246080280259290410122828873030748015431506589317405362802668060838557439224269132650656685464420908453508472021671114355811263493240144558716156108602824034557804896482964032277643816626126131938820692433402374370145781375116130552865078128747653855282332174826245927159382825784996950271238941015830649922993413901032810629114175732298508555547534176082186065420774654355958894734086801776840554043696184951378108401602795417713134662414909979913675555359601852932233241640088434788318300804995355056125170964848444578995862017499207042309727871876584414782125557577828947173880210296749572838643647435310260375918678791712625332934019700481514965646649278600439445814041794400726381602836406104597776871138336308478813706073679085660693804697890060856626516074767685352066606842447907738417078722822013860118630190193769895234238239417631334857408673256398809932565322792997512257319732763446997853858490886125287403718046363432935913776324747418375040617034743110643666057180544949150682301299877382537431453233056423438004260740400760856422347228492196155692411978596974135422803386005174733386401286265540944825102988432823240502845806504848956017831520023133972810376161663208293858976938172109280631796435014200461705208408017881414760273855231776601511866477833356002017773528546193261629575628624791004230619859786410129491858940696413239217482320903279215217616810303034785504943150837970780689608684680657575202770185229780696513450718681759964028688426775676972547885092779030322404259186997215620766157619654643657492302967691756689410635883670605853872805074641282896175201031069730685748055263424654553089273869075449595983145923715005121028269750579153401736265106612789766469398338563823138316436598993837526156662874920086270661255587276703083136991513140167852770492593993573055036518343619741899305314375638862057884303134194971109141035705448897336630671534451667878174324003724003112013839371850775999769525856894385306351667193262587139673493958510383043266178208966114777169277930866057053068941824443989646443973526466445258085043712420407450935030985401617862093179366355047927000169027326310819004603006063160800858515315698420525417344708572560694668997299871737932026708519027688658397299511791808902733279927878446964649183442302288440368691729540342552347182674451656259984722642078133530142952850966314605653997838384568512004442852408798710387388069961747509026475050486166991115601050314119059100325557747693103897298005677762446966783363344787370390344159064146096058084391351970389116740298681972492256694741024000873328631620029318113300408471378646824426276992296114857607899401687298080042076275634171947033764290588456066659387282473638162339823905632848188267564232905556860224096717701248623043428943918775428692144878056302198365328573853010558358521845574424121768411338289112024727773440886387876971427266036069203532301286382045445379101021519845718856337436767277963069543914278478923383234268727425070763120917409100002513487100999654811388938414454017922557624910693517251706052147006613260663887659912101462490562965835750763540749160131510741523765430765324562276540658774739422223364490220295999387169102177173945587070359795906533863018280108936859096761109335182206503106827588716084405143466822075322616753458055386192907822100257230800874697968063581510711643899882981683316543991213371289598305384057074495664488814151224161154012736270302522222613557608120419150547407191679719672554357416957724113206457001400406282464539687974088151138889923784576856988724975954600278395740624326207077049337000537468713846023140353613369200849062364111532121719172239679801126200869325222319033216867989745063373533477197874077427448891556009095709737746074933736891626322219864334633485320884170120907780337582039206041958538003995815436370165665767931254599079326730073192687846161621801140342718558937394166223168945271465720515896809235866606311674043857033873111345100305734874297515778007258331344467298291982610706558792665339120762165461848718437045262792002603837557280669471001894988899243720436599793577893306044893860620509424428189645909017007390039834060528128261752374820831217768621643113327316041699928325576439298565504641367313119842248762106040176120345264383770208826183009078038271578329814212835683011390096622208837483996577319104715915529453099699628970244192419724990831963312288151904493463090492679270976889825409297443052556141396194346641463728948234870456154223161906199748083075301399309722464421877111235752323680926598339011960972357596520164728539487325661982001196305355105703185625891803820387783941469052968306151554540953318855125849127801825015079433340820322401753716791959292444400570222174634670711205583555774830049026157997546142318554948867703726955935901108468694306116562663040724161343480577595766029943086518180808867184202660473452785193412596350299793411789143029614016047817357788629102009543569623717342860952704585474467911239166257774571206913270002888379551917619311085432083230022792094569304495680992323832081937744838578207561562819540543740146163737714129748553562816679241121163727373909183414626496038467561848514066380182814976299171155422733081186247827829173508085033100967812140210577542448301359335048483267583009669582785968457661333287721909676868923284346026104661928051705901680129030359132799837947648599397550607209540728356543531329902941028916741867228888631239313492089596636615119710769983014408722601499782932034605847205514392860792710898459221661201741788436803107520516650700789603956148240853097170294065026742955889333688245750729181446789055078249349016366267750147130006541285370470304144988439186693203535775638398364364835313767772822818477937629728855131887358654140746935110813525620123328756544419483911391133157729045861924356822028148406864733976090049863022575662864900209268802504454658484919930275826332444038057326690607187294322389383786523403847298798556682009878502589401638412251491637812181773936668522903161101280592705929666203718996449304316147261203106777351905920514375959009390714829497945909413058415925957376325689641641342997138402788683668920036539673773880792673654129444737172330784272252770419144182898914292971018314380704364199820241535827040074988348691119607078747181945482111180586473981711465373782525655434746510243306829304687724961411704502023335801147418995643848489981566642643698530292777299049511305552494608500105418252099472458989537779260155332815030132946287425829118754821184883664306929810890119793252392788731569575293726864071176202433401786460719249544787995764244039653124821199806294320379811207356960934399250029341047456062957326857016616808629966728481269487700578333432998087318807221795262100854187261559040702457583289295858254702621625032106402829516156614438586586258716664433401274555554164645344685897042062737575327676299449047937534321541312168787211422046549653807565603330359698684693919799219259454094796838385871182451306543118212843651959653685667708488377467677002522084608673669185455999294951145399524566786052952998158824239745849937292551073126692501978527189433263157705856000151457804859366236616272584684845593899432327508571781372795680627299964809815295270359589996783150786718512224434362590077878345132608280011147929310380036126450467806959071872016083873403681053285572628650512264406583391626145599019882619559560680947815609017970682276054466161035867277515972227204320560616836538771375341436072289164641642332979874033896239104806966560282889045053110400523316935071635872674153317527961715521765475481901073409288145186880726160297801301262084636265415532111585051847595418377411393917602340514224331619128817532173226420957067531775538101495042669018944937389541226134198722106996539184035592024281565075163597934596831130752406158657221901744614457992788120827432433342764805402601225786425674277242345779151949136880946966737781563172264563197203798507001827535314798855363596095906880042659825984171567348526979646211051629793596057149797983542858494425770234601756265572256650180739696273595054681582972138657794227781088018013744685720890352779670838189281872011111998219673760725123387530007780766459645919157306701553615561906220835254553154469297516643452684982479963780116777797672690551986966310479015808609898316994058166891487985207004642106517624754218658761867930464495012982130402547059358272267493938241214757553384599184603122823366119089523177639929886629098636351116399523009284607402918623427253214148084674918767677207406473741104420497902205458803604327267755099060706433666789856081445369442392189615500832804177390784944759048970778002236197508479149550549292569397203919012833740558159609924351956644008796604595501865732304031368468950587977400497100318189486735258349479555958255477951785293678983887828107342893013605749439283097923911843272795609055780955107951474527212364964715950814462155100193599460940242753893703962970694170879942252400759722686604943531257403475787246585318878972002629247650260140976422891754254801771335058211837296065488287386807771074046968559937347409983063876488188745242594281557070502783383549361226096162078340678712173134575884384177972649854642477514450238396862502844417746222995661571155652181449215958743004253171510517085670371014642519198436790665388548775692886732278620458487259780302938190040302845909338804593041066089482904572939325240005901079189387827663545827100529949469551265973849670212793927768829625171701177783038518094038843470368794770109504338385639155073659728345187884520349386380357768295968037519089031629330137538133664216074446322008499753439176252389172773281609223146053790742465633480351492619623295739163923518966835394802837195704421292327101066590563154781626709619902013105066888186728577291351732040091267471595469543797318197720434624706735483898022846586125513176266151998026979863584215858770777260608537529520957957239341272135227540522487027525624686924258616568539674936001340110623516438306927933939811626368253684711053966651607048967331518678008440615155542328037637904283318661615815390857488375944618178265558819744779863289989015480474414988944769030962399373371734764009669957560983053248094970379069562696282972980377966814944012801667341043238581178666867709944074464853138998718795809164628845720214713574785535243583538867014206725797553500658860501456529432597505995045980525480195155928031563905482876024168338004906077943443329803477654410047933787198448108123692717108759804183964540341759256619303097268304090846617454118008192615970716301381137180508342477130185285110306898750928804643580822482322183066350739988867701548019989055891771293848656498602555444295336109836344273180144853012543197243629820493596977952555134948771013747547546606770305610694212461382595544405534522825418595776656060951068405911409973100938930594052037971622655931341780806623295235808201060476125156974225473794567174012568913012500532771801871570967934756082461837065456223709256159481313093528830405751724890363465566565773168744892847799134054588750878108044909992167989752738322960601236763318593997030698382816182621690189896871438877662466770849449723273509022526035757532665206096212510287739135904386634321017108339969980236967689036662321023849018700203282584334774850132606160790087552127439811067012244957100669311959595724914719987830656246936988587150366866907300921409545707829439895661115065726105286752332671894239560465871615548693896932058645330163582882442439529291849288833348153745696269876022909632260721266193112797613553606489103447077664026144498848893332666654015160221811300333950997767769346143056675436729546981673057976264959230456909297313467708877431838547617559908211837013286494649740437544501073992786733860775007428504281295616988172996538718950387678392664957913109717336899164793495950658865271730071308439388374360537825511708870847124119744974169005454947901951681703741866499465967934098549184516571766662644742663544290091798652218946136152178778889507845497180543308278333931307981825156476465564126065506061540287283840760077047423196587644286365652047632772128748074301335983763699602085440465997919005042075077539104509673343432021208650365452857896543366893413264189180763600971109912134197020115359804806624439585872222620010915954749214050220028271106172435785573687532043714923147475910449405614465593196255380602673674307871719109760407003292775842889608216656861383007059187111468721159815282138533087028258659868230754096921454352519013753268080956099472971787562163548893522651284418487482197436853101858951852625627999643194376334875269556428915139186705540324097672692626741358578788203005095350854484726750499582744728333280998140475784996975917670276281044151081677978052856582611136577271427024890491387325265423640479752456115481947981562323512631446467153019843278674380833854954815747689932705509317941120750146059529520478389631027841209456643416616287266815080315265302286258347262569040596558063062192610705636599461368030841920313306511897864396741014565713468380887308775375691981890858968474759433411969030042754660186818801796293460498878479915517776127006145263678893444662777348211987707029341982638363737193323825807343708845363175565877557323726147518749778778083435585469374505786337336136888994833521654412795303155487270542788407171156178056775895824439380189835541042080975466285661272271358655029657884361366752529825284042304939135669242101650023749627353488866565085246168907670702387841786451075780385625025133088850465863887283887046981438937255868371701256475550902654844403540209280179197817737250046580276223093954840308055910659715770796457480402384329375048044552272743887495268781800860211539427015813429717460397380294332664735940265607857739429588296453977750102836289185419962579213453987343579842864013430662461750325092756805128311215088893852421660477894335380417046667082509243299790352474403937829496941369352578369257265798518726187183005786455558794155819379881220689565788332932553999359901725802770947041449176612907356529982129868619565561893752009020515334705539555993004812302196050488338433875805783917403777973610486099018538364990335780341892713458321265517828617973102528099518243821035007075151194859498147162124946648917262850176129630873474731314452361550336667043901826684532446104041274814805051883852866597978127733440752963242050221864142589951268140890741447009628366513906212476181632069613731853445349800483838032335449472139896497866304911361084527887076536332261217419387501507694905994291600245766202053231757808143431397059935722024960649706944869046558105946887082046237590500769827154985547759716110704850355325306364164925901590624763868169519305416246964994760571770484286924241503902577091533205662914023838455278894668090436402247722602135472079296915384973167340344318735099047300839428493502320681878809220401963791536567448247107626280605222114936080371459677557001590350223995623844772734338055100849347177811980891726567131033577774785374700794045153562874090203824169808830360753947649288326942110258689444055597168331503668900595947515648461481226163154184862999877075092483285040622814668345702448493638136263203046853456709211109194322885680277561529979221786822318039972188936679690328357596454998534035487926388341030253136042422745743081974829737396074436400594988972008788993335028924129407451685332467263012054494395954237068364711792170614778817572530937283904276450121873575608537844040713947142503655489528835846834351947337392671724417667681766456282827665594471232422752470192547429721709827219505325502941404500797363780436499080116787213683944953550901682514751304369147434049641888835551941402281572044012207186159686028243254349866923309930585194451763104062699119093741268723383506784465983000761582916730304220128523634652318226056065240424042378556243868869916262794539754238309004191489941826410081307617280327314887136761406727316434795371196265948155897350900802790971062880767384117594486349737895504010116962671421037141890307957390357931054494330578658275126655608482497435688221313135501608759186210293133261228119782563655993296620208237854447644186099683039261890196037428312194192195323262789080075086604469941164529306733102029956491494866792297082192249731559943151708187021466370086417731767095969145905899892667677446285150806304704415027735971730706498094160396373531478525819517926925760174576514326326264164560411014455381944710931938793268092292003275490356352508170513423147640729208974251636873971365892026778005022126464539507234419820353696052530597193751502505749297861643878100671656296333885395574939053394651488413270427837919902690970694376159632477470048769474179334192025554141143295500118410672123168587431752043563546314165695361380218694210422670527137925110559571832857637328470692799398172324105455537999376290695771507715606001434353349781306114064722882305457477454524499773804028930019457943493175923643748028840247449308179221958664304298997908832065423181884094144294233105105656815476633125360905795832143821644226350467480244075810926797735302141475633793052237922156207754915960767042204583855882057330630966631692224209448514579031372055027579696988060242489759110070519150436857573325622801145707874914485468787805629813861953713665094278454255989553021829953104509081467371945086721855424692884190449997565873082888391833099609385248910610582329353678474588054695138082517871653384413617998283069285842632229157125584573840902844871444985314998770229357259608006294588125462779389081455404351480118743763512100179323845581305470868726514705795029461079190957905146896458255560631827622459813385412164720392123628333421833083738318998293365775181481995890542849326477992213901844553106176537445560320423063789316896498018305210711435550429336535544302439593713893824391098303651571985429583022860341825534179302155346900500451400889540742001657561361922010989610339267395441583726957353353264490527756628005354854621713689486210588956924430161585336683713222161179342945411328009347157975445394490623551530880389780970306744923034001551755962721354292458449453244551677786567149632370942606535093849123755789935175639284418641739746173782563861815449903900923565469207232809394807032397708916801258898563743016571986437880645962618063406550268872155862537517180569167879676335610630786720366073309614514326459405184561613375692416681786327394516875440602023872116899514129428720562953002378941642893520117487389692726053430056300288453099845365005460699373464722615236118125202864110865929988485849144037237134286730380760360026796245035568461872778842476680638015353004514448473441378924019842158697214312687151851663416545258867594557928301425549861488132446959678531596479191929209387808543122910493000985617633037057603881721874227021569433107557750045278590315493980872703893588266631576695770931812246527763051923166875983866227864278365860990521883210042922687453274353776552623568430084910777061485897590997690146102892310005923012538009849311410310081323271138786604781854836101549994134720280883769613119211589744131300441886952838275923035379114955463903295378301240285108754941435342455610369991685925514767695423545345789090094824719693323289421031001410794294533633755998650747161403445793575148341750145504340111366810008646283744909517476964892546425770386598308730653933753613650880027197667883344039285403575846277477430938840124460338525442448428685331434294386598428778983900958232063246609195265739186532507057161428127738760822278184982630241020892516306757863138257515033242567439669882711376022740594506980619086424231535473536246995924711680572584282765770904447795265915074440546278226533146674504001760359227997945087638765625645862598542089446779437938100592095594323140214826196605275695189100370740645374024323935613711279772649549620089635455709450770238071080147315605579281273368666402079113023414837512023485123120554632439685141220202558423260888467351880864084204306952658092837511707158183488459073755857154484575281532253921733601767819393676200850343962888106918598769765502748903525174714114618251285660269320943756655888311170308872525595414482348111766450960762487198276689741742743612374697165040390743603881665054511036551788486873732279741751205836275238577861503641529184368620672990548844876055486663313509569219838451964764503903497074569265887481063668377814503112726087546290731841060394495911802261972711110381800959464907337571621604431508923809584678600759288222945228405060670400301912482833896683824613480760268785409779248582255142304251618892598397937336948069352944102940348943912474824276627953001165849817824439505163519264789557950461473710176068983019050990365074828860725923779910305814280713374074176927272671215176938840975231673484034391773935001195444150793580112341928636315552267410095047226619930921436596731982704540236257590415276946877220386040538402297793400172216939415736014393203143282513376007262026079405556239162345516321359187778763513389715684062806257745624978547328777713883239159028537328877436479599527275386633863503242609323140145252925256464184112515071825908884509716190646747757677369482774614966151786708845746333901740500721197830606925477812284214431475685177329469184170248404994657800376698929780094292706845717477920087328845314649709775696373563498823636323125128109872259324474691306024226547288168481642785468800594046904330480402917114862500113945779782192182493884819681922895700806444654644260665075161939502734735222088716604153817299414380475846045893229439715548299935132937071302815074168430203187795287712702293052886618392981707839806005980730003146253187377775424920800774592013244284000040748369541584493895955276587142786514353805556959944562956780684873139408865073441922662147387504253708362152854729419478001523134195240170636793110401972338214960244996648857322632694743963463793011318945401655841279785664461658493367089269289093323598918839213490129482119199824327787926517467055669359391806396640571501307663172742116632922578746783729052114654418470894782331314083179347543517561556123539858640143259134835097431112155991421698869779915020846200562001254294815522204690885516356237083903210263472982924717863842953407493067520827001192863934250691296182830707515033131255535508278278284674794572782036823450532150117904173562464703155435839935776394392576115570403496759318326880724708766913970290992463426351219106997971137820300248821657530574920589580705994082684245636731290864016277910291153915919758707294777624139548828738848756907558112664065442310147629042446484671072260651524197353064475952182403371227639496511856226096590933666042234064883266206164024030757535968326954099221780339553778963692619614396651428332992026412950604963076077086030589445115760152473713148766026594551806186236352083866627906907526146342452057857628697178516106657612617596555245314596676961097830149863724793657903358326571743994055132662250864981816316503192274697990211583627024730911787076801527688118282010241276546996843392510613591614655604701017723813977717005683761764609938109734145384030749574155047387872180900556401031266748413036407894428737458386407183750154885636764101119578041939965773456915898752837942315695606628597398003363304008853635245818566616733065481664902455382009093754151554077676643253764156304284008996157961442205061500834927643953757465175610363947454502799523210473544351401775046119204574697851853616112860899820158191329133928059851719367458093117539158284260986183267821015242852986325983199899119701562760687738419626794910754093994786951913264395036636716523599988590737860436849523681000666861420590815203529586575086424429930782146294076755675701270717655321749822362082215697532779809215546264192658190957943017058469890088416751681885404716528475892391978206709680532110965549022446582450179451358263935949657500007761316011538832584527405403650327072588016088597722691649202280759817566438095636114115992084891038124119860628166206090352752134949105151277277421800963883769216895964095831126449931919680668483400416072639175137373729985227214965361472583586244049510203530799733984758618490802271281505009979446080771986539193562777288632818346951290127617132512130959972234983041148939442064608286627546630430664481290268289648895937148340680467930010175778552988617621926805167244985299274424499066150806778184564893112592444156344531942661536603853112189201541509273572443634015295654747240027515485819380373865815301723363013105097733009788012923161075169306043970718033324885197775576221385610011946010899464610824034573031256816748662654052634699657665476093361246301577420229374800765271205299184153017634902355848741570496152234360790426847675303699619724412184104046067036100788902813212342627627971804040420209003949462376272525257182210846242718976896906201091632017355792644157955893457315979231451772352068090348623853421980044619540351200570042904819890711681592212921451348346728939312737920227997236070516386430862348000614008542542087054036394105606022839595825881341407234392699084688002500201210290482290030554551899316531022376066643383147796898294335934445058567348756355949462129189715097541307298076701127717560454192414629404556209657572826755714541434011372461422014406271512561514878521790690151055146565332747592517372929243171813474809993380982258890855367393314386037856762331980550137018301000978171794658617906840915341899927645674763509950277921531188183469230453755928885952890864227583197893315699298946727355034822504514623612444198727486457855042188910658217140540515468291228062411667093925798047229666791846334872516116286705479648612443378814408568600850005756768504607810483328459107981708021100685188532226402077378696541614631968324048445871656867639544619708129202392111912683176841647710964263557474943426451630974844047398611851549196135427661981284867263928499047047031346583921413993376463011525308409695839734549033898241159868160269354355640395354040622494456495804191312347219766479967050819551800623134558520925033809215122271320368201998862888540910503246953782385610079371120117812963100794633425185451435083333368566932786029854021339162847967917295664958530274997215967275835437091736186932146414585330514237207944810035753263807524868064592582756903201340096939484588249953131381764097711445260267755707736183839438388469758348024073380115980308321999495743760024181553679757205376872137965004895949572658034832133564851007705754077106019653460014067819269430913373199629554718192477925036915870777514230857178345239017255790187564183230023986831155948131961893232312377902296436487197133077419583939391063230102978065242429705148572456832152279504807071911676658532495805578184243369166061100174787935026761233965387079092792894030310603939670958215657272271416537948773341224730560076467526539058617722485477220895070581560444121287564551709194289920423484507523821057671819492285881988871801976949317022109776693583283650188956325027311922015419174458526058543240697558851345234898948002857669711653344849392697184431637414230827087919757175455282560563670432494664733902614104385259936056652791330818781120431910284922793292455340196484247044034553995393399674273167464311819120352295112661502682121186047104771119585630805800424833729819107091435853665960800363915798557616684811438217404069342288339624972272335163848576287183447298413438183215468512821718892328771961417235303367632056181054508150216703234754724667769929298711350392854342515765789447522350637159096817625834625706659069876036134167099978113119029881538581940989416181336551455918161602452341131280743059473340007224095540616310713798173972218152527907221817826933345443279860145510709791875632880262941903426216844794681113211948590986213077713339584717747197271390383223506935319216711853240488992003395985317572926716837594773128592780552325719824778107809491872996209597315287267151255496156075255100602558417579270703338183844219833174547480723351373369226174553685443750441482963742947892385317235283913565788809935629162913671257111535801977139516039484352839854734825041831829623874621278290808078692051380650107447559410182133213695346077783916381221914445858442185810131244640222178186012258894719760746247733292352136358794238339576786959496951855674368778839990116821635877125966490261370472456389798771526793708786449966991271050538586858131198252287533742993781567990589258159582779206734179377399489667092032741275043131912279094896037841331812039947562204445166735061407561693790100628476789482019485390600111260698204777597952146224045231283031322651314773362551533322715036296009816481002267024841783512455292822944075844194585716628237085182249567687633371239541671997456797705799024805533180304917192932839007485706430766158229416023112589241744076069070789971610072576972463858770091926040439406179088166257728764828376482842206675719260991050219005905872441090110132474935577009209471437031020237635257848869219101499026493566663855235398832250836033466132910179952264305914030885030357875868280867964175063565109050599686430278543818430300326692385257582122748604892080792947921055855787344034012639253798423396084932861147132416628194378347974120413763054398318771808967488012118092129387430340768156231139975656051616917317853972336431031749730584993967405160789355398850586826071050989321969710217685028024025970943315919801232263090821180808483180986189745008425991433278851685955179306572767266679783021999048665653679848648418353634129592625059882340898162066072363755983772757371057101920533455777579006370902466960639465555172271518392198139723024513112990775142637355604114460180304296732750804198671873873154167716449794386453398163831562344866176937558489526863415208405690004151569137416631643722058798219700765471092630795649774943142017179584592619428551418199817962893094655764540764616420770490352530689180677790667764280514766477665255916081845509004796708626037475462989683533554098995422057212148296892931463834271177063001020738073100467825856775086161757973241337082511812187688698081435634610445818264403738151898351038225104439067843855257234840741092650395595437725285021148357685600991861507118016452042682317619835253951401071360758359350108718522262092943576185957396809613231783928815787956172872989219966748797368598975918815561012873289763886122658715480186970886748861115860965070805461614517909988507374474815330535507201659362296346451554985920345137781668007403098303852552217279021680685444135532242705575729287134009626104322959824255984741371071013792577464188651227157532873745718528848252283938817558375917210610962849834675746363136467814013268836367212447491898711454037892851146656949450101286794992002521798905432261270450106988786141542134905192686242616982697155672407832344460236654243552791555427074355065471993110143609829839263025211312261513593393405814863147905075494388375693560003125002929208870089946959713515117006467044110413015252745293386677063572185880592287545441232936816560544362144053622248383431737278896669602365277748510462907222235966742952164302759466987687227327440569155868353307072372982759081475299507942765448569070923427997388384581308115234148706214127181877766574046730427276637717159895561766348359851885865612870924247390715808464907022404833131716100624161407956444059208760815935471467585503512939734398835558831056042912761246121044183950028396651727860946532211220883602572062527799957001700970309793920115607442557737781318016386566208634875211086870242324741765518283174305427291667675032856218080655792050352342435101777110445936254907229165943500076673865514980504483013537885856395858820094533842196141718882075120489170971487035455045889606055089697402868855511613917146262586209210865293932299182837711096469343669283536561037683625776282095764203654051818333821368405696003925620817256699157826112973065538899592313317987420576664476231447631037987008965335107305644327701897511590094116818615124551092081784820825204213092330449872484108709822319574457379535625959004343708507426696674382782251108645321736396011520142136031172913073416273822740328037775414636000020700977417634967313495177290281857016962931857070071752428581587168050868281782201936435791090621979034861373430455373685821767511556647114896046551702793550490518080083933458748537002368335094186083713957821254678040736595771886514236817821529471546906090192424183155388266198260891933044459579340127431057597431654018609676277709236392013239689012587965750199069307627157181203605296951070637135531768621718356863889317391047929053959922453670660858461313695753900977929065532618777465228497849768965229982264742102724442041371297216857876257277728914492763197616369112015780207233769457974494113331459664606316325956317115930392619890123499300154940534562048357422857975642151590531169076216719042022764579278454361174969101374112419642292120275774871203361627309175204630920286153009832087210054900080583791564927209470885023634112556588892673716647887385318591627237124658811772050029033550525586102257406511996489003158562003674211319790894887522740090521184201287221586938088930748519751511839587335024123501384875354195829051835530093145564348851345080029868587406696305601389207647305881230426243981024938501576502365567110144052445371199453901673235401423519864883059774329316581885638490821421915204004172596888191937362413274555471423503213373380191036335130740067210551471411701937354394945169301946339065218928374300479543606909544735237073265230206940128249857221091177111264787642582298190021782069965307521569556442816953418187648361309852622147728450793796616942531588522135471765819503069482782401823703120077604687087089797519465585660320209730860336073300257183693938302356780853904935510343309728564517604872833669189204290915390865245997625813702661550120060437421537231095609994297495335552727706432427014063307165925229710730424871262853259434175465775868903899249091329131641508507699753045467097268633539113517703034567780918577516968999711312671857193813914568910181050788498759130270493859214118307173075254169661203039345823701267608809747985847137643520862887686830222603266191501719925953823183781383362683618972656531724063414687691340418696596334423028193955057491317127295015528960909633891643538739174607332408212863434123628012088830988975108411786540790906814900672458602516814365539010764226947117671399469995186884173424973323403446879674512322345663466999135274039900975022666108097069825475173038583350300283943187972207749863862961751346605461929671415588835262505215931634192757305550667369512279639743758917587080085283618969698123981011508031450631398921781743147368830200892679242468617019765833222656552609794436726140652964868462140780963770763527080113912722879550202895910157826894475369889737570717021787647116241314325089400722718013387529425444064389561757905730547366107273351006371081591930977554883556421948713283253489945336813120491536314146438278584112939635875393435303706930757481354540676363273535502639050089399890468467657339274417063115679964643256230842920795578666857959548776816293083999052975813805324980148029840748167838051569304581562162874013283021532370264038103453079875388143246185385402770336613337681909563570902839743468092976409945109969288195422082501534526955161584988417120782309139189431336352453248813641275117554817320065303008129106724632822093622457043903310885115564770262633663985545633551215423174712788602086498851717467493404259512016358010548697634079725035886316331770028059374561580523627713616736977306696771792300161426380084349522427836125991924198801360908428328741336063018462059215257312563782200169535158106621003447992871519002913026310052285363927232619690282110829046646388370230339681796260200781241898011993262947232296033804557794104631002121694952643529237528584923928958134761104508075832852426874845713399132586168515210167977879259251298000302124977548881509937705232689110481249130006838425023898400142641933567279734850037885586124044835776535490265913876958633903586398547375610915687106661509961403057548638939153759511909941812329566467717694604731871114013324760085008145834629229737535651298423334846708836086436201341526833176546223863763210723562462026277557385375541362962493394901584092317039062166582385849580456366292051399765537415253947439353569518941816145139217988131187169438115285754800605182780522050939213320773218089940959342099540700074241286576912903051200004440423581857812546146946834509556532694997851173428828912209779332798517013559141030493222464557081530570695343851937262241701410665185058272153223274475250312700903615858653422816629131637513275743615795153803034910106210490354270104821047713849974772960666361711767537065681211399382945484634519065281823593216106178323539365375832128853485348074412619451395658279062707504969522459648005784688017332123800756243880419067551580012862152770408742257427521691125813293113112404244361041958019623305005253462488034890310794890202674261450931945956331222764475376521613413181921230970715240114057290457712848726554781404857460805133763662590746130722625747341557744055332692712613895213740511975700604712869584791080348214082661113406288723994736157521841332378298494430933390235530633592629653374024065087149200564302622110923349596296535321244872564438074758647347010706549336379198406140089396529124688923641334977520774361079324128575119775353642951370109392214954199660143119504089378767273779281310778980339234023373429509670813696535834251091354903413042096060642528655927017322089544172408492456198509478658479842738363239856533780563049725706612532232986498493958010486200753500584981626834626095009581264576575725402727368285322600795443105905261427792830654976713502418789950323874584319043848139624745050554818242660628287837652784323178637172349689519199859206826421351761955840243796265650021273730198374262107572830813034865443294376672785154046540954204979723936520823359722649024810655234414591388349264969150793268910056191057401282298163192382279755007975038180575558837253766856172179318093256600784595494239141779257108699440471768190352583813850254286847849082247038804287981563791073438520867784698562720638298229032518198518538340241547370994068187528614677333999471645337662050788189730453047219791060361101763624232604795647102943436995025485246183192275918177727508124710331020002363333740796959410492910690458376000936764130664688838373474300537949130714449294418761466690222129370207889581825832085333451890266881773197018603463165880881859999375255875854061838072120367503477894889945791268709167235056565124603453639169697576264920257902708429008975990833830445777017879747981695960620859675332850664488207705214732726186193960473934446852358694819826527238156721538150311637279187677643821593589502306588444541402705181645905220537102210967669745621144810862960646948055967175039450586755918432562637463221705874189023246861740478591791355352093863753307485689724912023906348242280939263144759989858722091029266398422496487380679049280514699863735388364318509728900096250994910358156050669905062147241373495314069212014603755825968551638127330422550039787884337059879634249548457109634167056730527455786437654737120596027784950355127124386673657141633677049045390062929738051073874998962970970773663411075017666518732583949407731192550529502155188663459477590096850471614507125312147154078183319319448347662419750627628483157852660604067826837443274512144324043349964158385522825027466168915791898084336438238923523399359405889570007986129225507268581165740577787949074745047542822979502866137359411697384221254206055070011968953832507162377973937194005541951838100794868494283748612537070670168292361502892799286323554896675732997025356652322568242365552915692782086788852454190011522979176219112806176922309361381786254056332251680278693971976729098292692100400199524230275895471284558266252763645390210462777240571308370693184319359298610104478492109526704833507206526952644406793857709801637630200260375393628722124054337024647859447868219184104366936359648477347715680239923848501488124495799841043836754946941424102704281701373025926921138776400578826011013213247458778700601262943237036961479114408546940410355208420144718860088396784767575453346239466814090007064102477968303339872967963519799542382464953199560842179173670495518462156581976943598800850584191211726181691607467845839443017067459638572804589698543575750708806543588192945324090368354404902342855317242491319718966762455975463432643268278469712567891515252416926746569948799635657587396273832823181892483516561209096297393031751548886709252872893084102662880915748223306794536616451127819941254333722760490332682559996447940050314629926827071891932681776323751457396768538802401974064254691804890678550108689776638554998745016997782622853226442768474823377398400415802578391896992225239698764918266448184698920381365331124695773634956299176090777081420281393267344622975793645216144188538501000862165619650200881709071012677527826576219511547030701727824385224285798708545797590223298234959639899235088250980974649537319906226055010374533321168130290821745853253214919436300150887747746191104121087667404919819550047768323679562180978733064321579883885122283471091205666690107880009669282975000076530104687803074615054650189868121067599845404327365861845429149719235028348473906403592680594422372840095636041242875690630828593349020846711324501519044801528318502788687011669192601684866867067892672045725743045243512741665344473214570836860483369604385408816872990362652185432131784468364286519712136741768589526217637001059771349284779638155639843166454105188802738642331852612848147949422268091164227314393246846711953533791046036887811193766624587950346061011601916888746148010343391731833639997740541042607966607889764693462244923623751924618607067937836329928312293744917053465881586717242132859670330484496025049303179844413261013921017433397366781564900698216204639602701306731985055979747192322101483984178522120164392463510042405998153677742315043149261278128735131003142115016504683468470445352668301116632281494764394972537982549254982756348451232582032173020504301294658717073782496075446192939599275590846985577598619868132297794188455108543250055045450593379071019426272467298762708434655376628518994242966595954450427180478304288428551413357193751195234326694002363180346027576504588931020357298781046785100186158389325729716288210005503997632404156376822964147775592935296777259007779900707464157200885211290385099483508157816010190170407964165370100336335116864121266017975873690179160521847347325471917935940069937436623077790886005573228353573623590205195809378140883354658876016946764619608882137595846470008272115793386735636051885746675526835925351628210243474378543064475593087348017059749871910019431680573013279692072165638284233359003095957883056768200288762552433644713184043532627918870086158089679778377605687282122853882808333814677281944803262980436487853799569759934693419537106829398517614169348401979658799847584839221988574290209726307686506216742217406420435116867932731486520801723253442998962428902977816160355588242963685812453512568340979347223250748415404130050882050735299542257450300264247782665370155284164834655012256903460945606885717496858459737714179690154672776644085113433261996665409007377237779471041440519914031689156617401232521410123126822263961458599712965033967445437214833777529837625933824711561295863038126709560687067373854551559748298702855982491783943129949954038275588446458055987907537765537139270125838528633005438957230589381248097815968052685253582887636985849810860083387476690556734941516303489155258462185813627081550350777702590864159976178057856169634816853446240853625356743238586557984607265572856444318354829328262362137413495589484159352260569210665839806733774318730605619406759087431102876628910379171774371392059214590093922525268961536715064253950858780438857568909882097202151660678284130296186009800751414104600421335409276700757949540979774555168888067444730966254958146780549172885774834074885721219817383807562181807334477192302479790458939135918981944674402524680257290755627562069370337093441031991615574933562558284416694741511255889728826658123637004848085815666508391934478331265532087356212769576462780871125677092040887870702295572701302756926039689598475605532779381145536564578934163542000183355509272643052484776759242508666820611608920657591068867096271681395263738621496903907507749346827873212268033925322941676064979354321760700516671795203233097296082789753857398301975376075774574045337335879541686127616300014885090219846379607139054150333425027290437647281495984831930611220609687098519459550627573201181936743959793786256204215232300109697041765121854125742848179141135635769922541788543246242729965201417314929743312225477947666293080089510553365828252221457158832027154387429635333624692389373786489362713420531449375789898386134516535119495764792617744820294540744812908570813944447139823325748636225127343412584533650568546537047199114875177385786516730818490250614523511711835713721239518167660417005798904429660763903920482891576731886498639165992912320543681889585368357734219919428065380617669591560119151180242223864681200282114667090322587481982797155455866629415741455241610998439221143196145204438877002841473904115369169610606320871546398995826285534015669160656748470743012557722872918061317423643306115979915394947376439662733607212597383529832999533934668773281094952316221356659030817604710153893352554502740872550042813861179188046534116931923946417108010807161154556865633683103275432374334515652073924099742917355915651491953750717582065094721768947093361286949579011479825283947302692438061464018485017087558448407367418596740399506184889085773003019931773285829208173580471396070333595530474475471712247173229309991189575978193949107378463647037890251026812991464326408382798094730021910405183408962751820422981254960583415843744477159488213140484368375745547240623041338989862366579813285023205140483266544551329466554216058872576323755298720897405333471759327854468914314082281841400482898826717877251777800186399092206502937796129729685283151943459137533993389624974980222522924851037684565244491448078093556922399731482861261983369368927900125146680760368432745097825172416687708836452952548898633311377732620224228557474926569295669726525878064179691778740399583653545819521161851315086318240099968726721505368745886182444973752414168974425172469138853707552754393249313112286126042035729828014576368511220234725105451097157729306892997999280230656960184317239605155853465591324964617996055796769449901948134741685691101975910167494105454008013518521133865425887970563095938563995374829051703741881916191007305712321905750642020468081610319101504189482297000098570843291367668365505087788822108673059150536206179026424591912617997255398767569181111368209948906257880849090722497634429541804483556667800326558863690134016253254680032570513078647490113897655698121861204134187954102606496432150053314711040186792323776467273132307696969164743691224526097533238675674014880014556750225770830234573208480434684661042460540272311829365021844109470425012228816488720925139285936687830304715066883393563321027747100987736413411100283509705735254934403790704191213806497492729901961566225710820906292496531991449768203721271545387262248986796785756924102409401677589723193855133764834641297842515731964648259039358299721970458327670795940645386475214006801322814667311342819597986344747629914187613473442568470059249319593958813152201134508510639957238137112599117717913407958427197360509492511590870769636441804859284120936205101341835323137845993325493381368499787542642054080385392779657994097076730188531425428577070947630893499520180130377045314665061338109861675736505491109371904333676108746528233005900879390158732407738817376573989259846328185716237041994134253576221202293774121939651738642540774476793779305212897341405415738248759520312965849639985975239790499273241845699419686251000431390850498671123556365562290453606921393341752276968861390205897075544731685099177309875265057393312552364484280032154999004421126333843027882081214618525546025176133957602763628312677871430480352575298302916777657657674004210916829455418705903735163362874892248864916329268883151531835024728281239490972478694297074709936884641737522902941340836870897714188630413167816760548920864469289333632912339135175754689430804058858326683171728789328868032726586900457824179176484688411776708201938589453399464299479013641339380581877130296349088436020783561921955019791338434158510010073208138781329979454043655497680059985336630216117279534144447766963542118728597983470035412726097646682794295328967687605536790689794330555497933811724261849391916193114178307457766800299858648228499339988517786325196213705775828157622615158014857000067502048099503669100254790628969440329037215497039087407509162995176855637490429147094092611901330459043742515160204521466688823554545619163290780282374052899647823358247799639853383372384150063699474690311259736189650330696552354992706463986153923704829457653310526655174306717482801618439299214165356564163953521992793698790111989052335908212502927842991532661303983169138729512006154588546681145715574896933429758848596788475122553503280612037256509495731868960392545442732378872741749881380474636771733200562822818784859816132703175068967935604469431035899211742607818212133210822303863062764428296640072348049765800673953495829037198724664622501394123562845665051296690522647414162936072182050166646249176181875143948747867906163409339302315242872630915606546486010741848276323744700246163371265332173022207700317622396325647194117014022902199864334245129768886053826034566324451476770518843442758558800834550998743770152792490570538046557531362521826697885507233581327679311004330842419922610449060236715799566239280191004146973445726353040136038021096887835006701207839420262868471036468445115855698741767785948820551349445732104057951428633946484054202974676802772268106100031908457073567364141640195850229904062012077701836509795208276679924808439917634805972011774872036766736873412836735494819117799054932428878743560777061952054076176033361182560726485860308166138212508677358838732824541727523042907936291992873373351701413793798660180741774009120899307462379881404034443860640120330423300780103393526874085300830148257944817088492403007563248949802504755234867795649144509517056141901481910114855961792855686820527921724891491467467312386821456763054095498395117004099153310540431875475107431758053431592033742845156021143005311688037250759024392886755789375970328335982469349306388226287092550172937377421662441851487233367232639959688907337866341794110876216564785819149927349325441283968019273335565980638430432732992128529904920339403553792126768649098260077062868374995808504298490801348016738519822057366168790326890157566331999219911397282493627467977541777437082182019192082855068939790660585463834851015153954547072606634997993921543679371303410312895985031316274546381998079232389411322281022260484214922799885608432284605848335795909764357387363072518483037288544965218506589427521071994542346292884304121641305981974611403440605463911268804368109072450788204973475617231385860058432940789621059221502700828238271941199332228326585679799951674333875015733659826391954173137556449449475005904242855617433583574958577787695076491542748902069012137385827197169391515311917019128120416596816104116864739238812720493128190875984355782302706367804627697812980511222597456630744256500785944203755812141719500922171385786227957435326128066645135282289625040577183753554924538410544319488726289443760712208905735230460799336347632167438946033474729909980789397041209955167399395563808485472016371682582092756826652416828391784858733027624666228633171055458841671045945383357001990944579859491982202435488171363909245526124228367713424042384259781018090773490937963187307672770431321282882123247489412680835930888982461400028447388758062419294134815184378527639689488356551027492157746384246534733077471676137848935540574457795041068419264470923388474024813189152610969682265708344141662699437039830647439829545987063190394211675932161522472437992483248410485761234324356266280761386350754814518475772359461609182242982545173133401720827306929283560445863631979681054961249597569253267624057106495484971054284117720703504485460665047577888633279228316221282269250349187650890080910155568375653411021781749300523065685023611228958632656261541027635570914396730759689878597403362960449679065646978650171899906484578197768268270654282225172845933250305026584379429006021071869966494075542591771916841065866985758030255610451116032583897936028283437453529791101485495864363076421958911647999259884510346634478572053781806734912457254082863350512365144733142697349882836704460319056765271752714772080422735080620425848107459429596190825453572950437290816301383312682597012597845191244292189637415031392242744906567280492053090614043289536298383696029803645060320892131928387570973953197235305558831353782384559941591025904803496091649844862818952679971267729156659805910508675948413684806034059995868728848936504777478739348458944234223189252322166830122249411923062474471818347623325392560103267316141155060142304048519622378379301739625121547973112709754182933772976859189318964058617452183421395845098486515897269643201547928545913747298755689923608987956071192611389885630938831590858211663480734485465760818563536607654715318482370876906914911496616361923217093149710783697747203615285225467828199873735755297092468900239448894384224052354101421907881460136474220043116012255794020538458717333879748482312440376176462066235780223619377616680004428351753544472201316700346559598442213770737315187469569258044211393009667085142162810117354351341264109174126914570042136015636807742668001742765303327351457843931260154834681859114130047443440582326024375798447276521229602735818336567578694277328364616592691238579890763264942756393098441387866478757979637781171534873866591998894955993926861087997188701284808540118153181557245037450293079054999481951955489795682461733462483013300554428641086437234607272896201363425453964997296602594031274785107019987079794155547186762232690148914934553543150541180804797349278251386120114949346078800329632251853412320447574030970470086876154286774685049718063375097123804328673316525196886712283831497165239383046318796236539697364733194054592718332679947754610666223426344756490307174009113364044514110871642863328951724564749305769607726721781417248230998784567876165892507904591581333704217124020571258060528395132213850422375442743949189620766001831665521139409050207751001475019519846074066801330131716644935026171320956415972718374143300174533552204470331249928553461732399934159030251051457156428253458372239098391750847610955873573606102175064652714776190683292878696538837137591001432026642023663344259864412739215999896286208269420815053448043731969873265848233747526710810174515947451866241955471252470327754178207177990522014882811527851730633969042184854153090236101730624320503599441222409551939572069714552662675850656057829604390471306579147665150362815671718170550482241027132422127437770142053060360674338526453170963897389973542317416931644923710066546846540125582647629881102762951151805219294471081250911563604079083452717060443475702483159431476948106209599733816418404034831554548790460056060904224481958031817617601871732432902869391548300559943056878603796716214367167163688789384635692078841258432914682140074387958492446371973132538291715743117668998907757912183325569473792325309256830740780195133908100909110512735847229531055903733019575451881262237919592672340141187653843913532306475055805733492699222854499922474980117389072994342449460096138193632488926194426771077484726042118805210727635136772105351963161373425052038538174071497909619701150301538706311917333668112820616465172566722391003298517142070269269865436931765908110644133099028537138892699502552138134376119164786745122671642067241112684182494820861930562775321738299725554802356771979987566585110991925419767544868547087489163149473504648246185751615119228248347288814106444885836273994311702592483251063699135854165255742691700215040555013303759483800647160173970627947631571643092316667203328083671612363140541878231860094636731092186870759783516810757787402338950944656672375684160040521542116362472532095248171204135782072281508218425477531139456047329563262850354426294706700561002171329017669130303435376996430358597080759624624698155498728426962889398614166768640892005123972525085904019877892269323779261208960196354803680712445631881745912310511238781976941409602517617193891193035899668713720790422545604228145785707857430039966365199572102411009874042767528598433875568940007756459293856369518427501806524572975753086283041809033952454651327869990969914055940622026457406782441580153963332009598667681144886139320692931629340485644320586605697957241952773131317269707270353931277151740262857998598414829925585836763168502222886887584903920404673356271167054275147742170934580486689972156576970607323005469471528513197328198487086526258516855275848901040319887312763219864326481130955173917857705747381667218076260320397562281757204123281612645957633318574130871963592490450657280496595706266789268829231285947132054680223281740235382729712468213474996908022590702115581981551291065146194701115483834145159256670304550172271182549570943070302382315952446568496231946416371835267104264496582407009092865472684107985860679984889358606401212128591359994415410136920223808831747927636277394949769102264175178035467802083897733409376277319519084851164600532683975559147785368190867780711416892963456606706796314156808967168121251764739540097212665250240212578995688755324421652469247349239379855057406796171169029113079905787587889409111586619411631878477923653337078480685867264977306475205291312364742887984391089593012050375215446930898020961735644579375806972745274225789789239731271742206941366915012137201424603094757278936838878053321332165788507500890892449867916979334829050423238972084725164122988376380434478217566536514191138165256182422268925526336060017749863758826302026449387572519644305675757913428144621521619740295405628601573345673914809791885047651456338717495943084438655965559728642175342077248651564939346322375640846684793748977763275504139398006020091899092506924442010061650242424594942976469067517005086374223894290859447058540080121471398182253872022199358513668744416296125574902996709005857138924592935576505276194977552542446054465060725860456027728697347109435411132353415928405421772933767241212734021387977948947857400402720891934033781063698637829949020985323544865830008062682279905611531572371838945354129171479024203646266542977137409954250659916871104363371550932765136413749989700949720833031195793539444732345473188884265739252390386637934734507853116035251105039019420586286774725668226017791821957723722732132664037136395899649149620168506709267383217286706202600991999701439652653815763832100704400945371734142508688686018963065363305061278829383388999428330975479110509633095946834640570280161124617885838315369082127789860642480394744896223365909190849928174573767691460959308048987899945562122085027492845172931826139313232339417203314515214815966230182129802469414453785773413789664159065500087942879412254864172953713480527605321720929054977364723998219831876925796223914461197209248542008746085749395698520424697588934118340597966146632397897220200900726400844889139021818868110288778529246710035445178997736001180098653622500673162848959927616860260686318376865299439000241097642567603804243551875982820110903792434389493459656761828221703893725517868070169709497722911466346857619629620995660244476965050959221441692928016941608994702744609074719845173838079490768310978543248932259913233529524556386989423562475766537062927001026782254507606508548888422822233701956372440143401899522379029152676714837875547981886925196938500799431498757776759534093968543531362831916309064309446361881876679413864107652548498725130263762848042231541623380817093418315984008459834992802172976073200279898685625611400050666535671092268036138695578910889738992058308302004115317763865393303822671248712171709213330835107964143683616406683389219675442226599865185624906261348536554585115465467497594966178025719556541777282644760200087133526540980783082789050985750087304267079821556317843658240541299900428914443285210867914293976737086804572865464688182253784833861208104300570998357748582457873291818903081813088537433470424387847398344518511912559668230050260741417346894826630624463970617928124521796954806937913099257155494557061403021419957280152041215854947003291669462711164454554493993224203954599780271916871469212394784636643420485230564493762721482159545837541115180242857831761814274903151173078653673131432296617041527150693956582181579110578697170710668552658723645671362524121068467336806891776957582069805016441995832667484330683656168040542217876392040087338655283873371876987375199390594342739937446188454246720424877206933097304004340052506369885542818526554800413555249598118873499104618280245514161238325353701855082382740815549627064145877362746592008962689134323544603177154509094433748424368548936051877819362526201246717887840711305274558841407201527966735013417563095739870204513554967985477995008361632821516161732570396853685592322731158603432934329247328483714487595241828900532293017439105066206122904933797525117068261873683546716818016863275041319162842850499517177492031893924371244281660650100009812012700182974536616639501205654424823060208776472894192272399242198411470265048138455246331998803114535532300311238665852163241932016762820628664493764160414682799195836723664097407701613018004249378865840362972714154425903306667358003854794834257997963626514481716457892743608821563580462030698594796472445263076264243072651891372772448516036936278868899974404410905508380997633988195804823467302169953409039451537292000456124141332669178086286740181541313030101740064388920166763678776404818419413092789889220845067102043878108221581042457350681655142294791162026916001384288532721128204436558801498120046694513148779900669751372176405042256818561201358050963454160498125249292407127027566650405539512280626056182542999366085940308851606573217262195198260832473666094669486974662247760984866658420684416137675734242285093969662570108313776619155271703573135072819439988328435050580777398890805526856501211492919292694324629121881926765666356105537598977801858062765855135059231247361488498118412693923698199263592656826253386050601733027322226460961041763466877248425590825061889097444586630880044537839510292872862708333097231333168682765989566266128861200336240168140435199035667785232538609546617665728478901403820573402459514081475875747559146895762588495191755659353612129154095600989837908512857659320484924389372128773450831549703950442235708835818050043137430623110341043523801341364629266273508329089623665396555739549915423345627081006227237715493200319030319271095201546161758949600619633357654214498280169089561996320275465923044944410884560381211116000957837531156034816573737733161349797213448745832260361932236355828010410664514301179508811831896581464019360480266000005621741019461547034432581189718073319839835504748860073370998827708369718651198011932566554507357908416710499548166664053608205420669694001869059405746336250779623980609901486839495594078997875738732272988490809522142311998739628833589474923513381731255086051330278697939603225993250534922571626088199289988854408639798844827198708149474482615204984075176167100063295507313099326282146890000993521362682960600999381702374183762972060258491934815241220992596706079262643010403668400018474196454483453428839141960069031384431990250916026420198889236801795719455888047990850024094785674438227499453895040685733535446619961227402255091661860365962538190431419119223254513103229484374491051571873015750522261345565852473043965705524149720260875579117637767891558772471405230727627086954205324950211350636847770709500713406959314512442546338154946925351269766408563827606752978116605912135893419648794502058623260278301424442613154755959487595858511977189116141596737550060087169726658487864174069391684430102307066720234199041957178482253367378471879226303278164099679628340389560795418863392771448712684265556246824809521248150276133532924100050299902696868344291661492552376180127103288171491858157221180395146128889465277441928645763147643433375868738816125890369402224068557115011138516020528187134418380955130225536140603098343064065025684637504834647028316496103520418866251907404004315250276278929378817261250619528143641610819531316266707873665958278901854914135766441167580851577287183231864256656859890152040150899342852132028432617717589357902527645799340172035892742067812084419381472505810873020426979295952996181895246469204469501884179637952013996494718561126228878556905057395952299647063897517660641620509614112509182526928313420165305288917886867204620134522085625307410047731525517549022572122083747192264645283676513962878943072892852275895255301513485224648024695700247213479757238165474466586647427909648065791047967528933045026688414927882275101944891406084488716322966581198826476136929854083300600564556134317335876144952200569406391614978361092796355856867447600680079714645593804788998926448605818530454360585144559959496541264269157806214681044334651374146207472238091243078094112752785707186766788630686619865121681156904521434620031154983285547299228129675107607948757238364701198756099280160147153885830549394575110517657182811294892859977978462319562664777223032479331600361139410369360424671880036150888983600259713244547932213451013616845777847131925119520750869826804448502682836699009957887770926661384198058291647222105818719168220629946658682478109674561109478772614344339067053310952617652847168459196647102258696585045229164987943355566809625704503433675656208715801924377150524416748297369446400431359291948759399464076045065473340841718208600795646162198352547056722102080533427327815805859989478492754585745872770003897208030326757362288297704667885914431793794505703225338537131329086313687229598735432875970034503816328688253406022308285899168121768371093943619585968047803486998415503281389433887275314674505848380931399799323037076439028542536431028142060762609916258465084244983961875981379051073694052736843681062455704769690092681704719188785925203045425736672614949428474070333613516522249237658926996080333846971839281418402620850559219062063943265014093351589087708197904099270487267681357352831142986931891165116737294595657947174505831428906784531621667906075415342331548200143912204344245465950408729739130575160590701182719877542977790611335465483640612637653031925352979998003879591512800080497958032218546707266426165177203121124845704949399344119594832992258771299291727307039146802500810081680056483415994010926788060818843019256670497932184531705240814724339961043032834970621203496440628682018263194874416810615960792606875929637608694738259773946558648528271445157823644112878299542416392115687204218509363374251378963032659924022898982737708772645173011105370053769612964434377781915890354419906365935541027641921262801966191680772441864039510794087915868269593994485690022865706421988829504720303910803035826632574624664989664733465802259489844447410798616050446270927695102410405102622375871156561198025167180832908137892393300688092994923053135743334183591312219678208550004530544110231207723329060614395714886558021529627352668562617452451320377288442479034756909287463428638586355106569682370454315703656706184326324632582808425746582485143412765601112865476841307625809423663008621816274268979944720556430408460463564003166328244563908211002863438999704396602350521105094193198597501074869510877719935874575117531193157675884576764174349542023571714706011184856196341481634314463231546609948538563668548969087800628882521194542166973269748394150400979063123995107636422055507020246299905283496087644359525543041437374715483909928551592741190128481445609902384685961536005950983514290114182905613668309553808212729841059036810672278452762830285619727811468046593444346246734783174812144632822618029134565543458516086618460655824704157180700049849787193227150813779442519689027233974764905336687147180688044642813245230322525198638399070004137340222307646794030054781271125776808481257842081654092057909200770263248700885460392895370985620107780031540237150159034421963479286062490865942789264558838118467140215815393615541526907474801096536432455652095765216519926539016363770220764213015842565989526207749081325708397079187792202249882640743689199742801516059455814937406754366554381229389530093170441743769345280157937159776886120538659921724019162465273504461883473276384788042325026889241225156413186073162666653593098127206452162848884272152640892650402208030986139537459149416701812309575264497167452405309533897072341266764674341851383502672632984962963342560691690068682146289960641555572046061713746157613884637948967418044124431143209233745999245006692977251339106434132535444956188024395966832867365480651412006550077060161511814556909601084277795976254239799289109551896188883036733178816856706092163157948353279965163554112204740681592742765759608514857540549372959758363115124765400799857599012700208796690489801118677743008046486562081986062446901447190129171122829840932951330420180095842537192180532797240719131939816670707163622224203363494984336419340038065164708538676470185196241916190684687859668539027840208745827386677303739569062145508717287624468011801386940306185604711425578883397585130871563323277828885842174033864062522627470549073959583817988852959527437978518470645166852700936844546717732892844922048915669160068374101167564360451920345447228746562639168721025358191092786471127370124754013355162129998775076543797145335510129065959251275699539314572147526443945854804366918463922054057512145939417191269508309137448260775463298608043160570976356741896535690313187320429298335577785999653097186751450020556040142731404990367279230507069441985795178073998443819429538148806305560770195178509369164752153350163206898951460266024962987067843930660536035805662144580905129751412103852863594726360647102582626323912814410402390072100641366132669454096696838655708575995664611877548558796157311298339319451084132521791398114830418673210952952290870772443907072666958153305751323571585486445012180313728275858390681328373060787166885604096624977363462524283520494104216888700385992799253840862059730651787752943101540252453467880044456486980063383076974593675195292540097512541800320517308507614632213927582229952764481111764407600228064891598401031473547523015184209138922111366182863186635284360140440019401268412753811050897978727007984719731208808024471715481771874384057486951065166868806438934251568914955557464689508810153008961253763890248492951571749426457810920338868718506564918312733379234417062386929178771011491311655081612122658853532541459545354364416566461965031546608442295346671323743268241179560271922418396191597870109615472982652075470565395384075005419238859103146293433699109285355772993619451594229313144033557208623165812755379263118467828072654751978120093306071256988652201093915142636246263786569187333487967536180577899767663580898696852831987490216688630704171121083008700511306797479918138262385319839353353213773990251764402342568096498349173313320678013144910970540161077152507437195194366775736689631551927111181045655918062742074935123984985048428123954914189951547927051217481039895328459331481966896183873360330332683200234695449484969913177078546178257830209227229726696685300336215108759317669828558310932713634856778315446294459855813580541363087209754167271625705337550993729318298693423065879533789580625477433185631176049631705169118081895823723447618750882108614945785537889960152459324521764103301845800648478870840701274602204414978769048606286822122029819280404889017388800183105003605511953329490057301358270559775810155408030610670705021650037135114665670199945441518849124781145265389586461957056440256407699884042984413331449498071811070687985830982175004905475190454339744737903700519332542327778961440495304882512519254910571729764934756124498179994230725564725082640069339979159068253870811321486339432523028117927076766196539233765237666591099593148607688499904928859103122162540783571534810988764097666357046315665331595358373768646817109474278398665985661087577392731868566944683277310716957375122185326843290795860100129289129606801834207256751076678515370333062634417571434395746873539855648198363962237150670549764926477477136941425701883467701032900835205729857607827816323585822093842480845165843511107878810416296123531997837287813858859941963034609010934506154485702403064458137852083529191527715703779506370859923896261819013061839997601789374865893075088565276889583297048912490500232963755717860417425445229644642939233112212290428102585374552335663892459181377637018054117973002374001225656382110078672524435102920475623169602758429905632323586838048161710563325175711548069569135398758797590369376740621773104948260654269862606973139497307395601774589313646541530541601102807456789869118300172085545304204031082055661201246609828385871518918127966554572771311358653250172279282789682396592280458323170449862477315526191896977709489849850358915910987744380187345362529643176534278227542608860864043920194962920034514657766925425650227216792731238677247647684708679065147032058489542557645494226229277314106705962235150601182188721568043674472094054945119261767426002160115020967153571519713377620250555433328928647984831762406615478586679087149999616568533963073549755574770987231095151418859013307507737670815452132396944721074585381167738871075900999682518147203687213883045374456083344797558865924262271569905907400346993488562844663180437229434473019493778150533028038041367331859126566353223392148740285726094963660086233480537698008163100657412570421983441099151661570204039947638769464435307277640514012507004615147463792480907973195920942336330419191662025732135307317083778628676601405389808753500431493288034259856448490463629296801671451437240514664311093562806387353178383875463408486641014672636771961012813449417841992548288745922226536345189266716363589302419748362710531567619665331224984798698668681131877657849129785395020031415895763332943771021053423671665545725668091022277104669815281503947124853132986738015447565271944271652733614295441226263930816884537293691322797794386208061543045271073499493209045628821152108594635924088717154248909258802285016159100899312710400937077313147964932746066534814629004286061943256023995237666759798482757652069407038405432625698781758968082267033031817721199143469415605321005023852555696718066992471599272371255896165397490314304968906208194221216007355372882581317311624691521859033356465922686293560721248445983952221422583110429512603318831028836330519700836823700009187401916155899451059783612014429255239820553438131609463813705245178750344783956521953653185395456638810155052476859100707371160298079665800025386896244331058095861331184666358198219458023538998858582702401483437306825450988509919980332569274565984543058274024491185295093450216826057017673460466574705579071373433492906176125110893410092411562818794370728173050470855682427959632054605079769035311508019939773666258545736591411602126697802148427023561359563392767671168638070620163142891501230407319890270523776798338702458709263132811448222781416713769637192549899390920133101758961936823923691690308422011564999582162926863094936556920560508346724631882038801537768613916993614697997151758434700050260664313360532077017769120475337085330977958232566227070442266819356763167621304102474318959525639605733734401792490169785202688036203142574744574564967033990141972120506051275110557800072903865256820709896013731955298186936743855948737326644260696223540074176409558170156631330304325607232505552321207061069364405196338153363311158768870417048181952973964633713001943188677463415357855527037877196549230076405646459976015799415897453616394458494341892735629827538085666529675252075539263643699257635957959641997656956221684807527360571390813438449099279515965598811360577591484063840878413455904793311000778320696849468784699877478738357230442737512771529864862028309534892902489892870804890438482566405316193414765898192530275944163559622267097756767928659502306245906850781028223182378565417391250208019062913970398709968628763283614201494674829952695785478586129194645709506149152737594390007852871787006584115699570560503753899756421140125598833962243414246781814969577716167139421367503162888125631650487891374102928263914467776844345996322180885295239231860046841140351762333216173787976548075138351525199146111567092104294626898484103696745324449255866991592260823971619560047548770254630753200830217504900511126698849893085395731839096494547939478705835060151407758014583109789749375134190643368101104682557476321129321900608440652521641137980471306705592308117132794966851063551656075555975655274080896401815599771156798892964935540151508874922729127529100359164220674546858871466824385492996637782386826296743748673246998538732657737158805176591316746225646316464159871979360743477543725723642775068524349128156185953802876401322391133324757138873405618603747465559998460659531443418557933635784012214040110449052449288183468105097860820471800173996818325255052654182026946962903359692554459156085398831781820524306625138013695289736331527259673738271680819177450777950570504587343242437851774129956635783159084702129656627574070426585260314892193243455181618211245640675801785563308118625387707225384290893808277264521590738713907407644843666824900379409503836435900728242661646176685800691112134664372975410362538714257425524290656296463101540469839318758573913474506057858892920280217963812838478771302514519279472393749419658677299405681701018428359720978954586309851673964380215142842517813250439611609006384420576975425282665987997421518783857250327140295035300523460881394223210412451679099339342707060583430442643628907999447325422463049316983052545884446341912969170166065078365149536406334852037707235397487811236668524085077440176633979101019924384485750516130694765114363183875680188398436641984328961100352030156413165056069688914634552249800997256368787092730650399938819014365650349219391138304469186375855046877279377535700212728377517118088190168728749725227957627454749309635552531489553331387751983045670148348429081568459146524780203817682697654391846212566897948596021109165693756290691105806465104003289467892794588525385569979540847769061105112182776314497149883653819604686774341715954273647595981813543247012452118015302995269932954888209013243941063267102526034334683348849143829947581677961457312717600165658929961030414543097586881520649169229474027390386478034473512712035458102040181025917419986262740598317393683630456130366522103921915164363572207474291084829065805422542188480362404032955626661325883025086696995820242518501283864528680142453275191933670601350129923011912953132363748459521397856771527135116181835732241419404977362239368863344500415543097302867360977148672166414739301359760485301916646023356620148884083448740872036751291722950787912477866072108228361032264352495701240205698816728230305849103283017621200219801584072887915360792862669189709766883800441503275385210960009398589840724434582542075795325788986351874835448543782406712848935113018292525463874390822024896785044958751555183929352599115547621455625183206033776360914213067071939932707625325967613931858709768598474261582577314396888770369329563859456101230241211737599376366113044694553667052128507969290822907209034756002604928078487419079778589757395933936364293344476887052050821548535424877120734113404155103905368627589710344301378798622241017458925885206513947978782951422711529073253434605375479270818942166385859020101345072918341760055961965136506144324883049376462753317821950352988604813090801678992469304859997147313172842234147285073041473773326140104606309780540126814694749427816848454828508673493763038233157192500005936579410814235445025201438349000418233060927052262921044452391149049001330562928059554234569292946262654476953310859710300887559852052247639742861240075533893401223319901716820463719613627793549098732132843952877088089603257065105424716525913281011135067265745205835689676198739357590179840831549952909283478661952166486657730148736690294536664433848406268392118599956757233370102368646953312098883045696481702170178670879276693911722730326912803314925262054915779666011004121072416521907318419150252037735217474835359205221616028843775459029509399342024768319667561987196545138004248094238813981966402515119202677157203819859180954851199350388704275295960844940558293279953460135816573566350527084712290987861199406576217781413261561883266733284300177046910150199413849295896936833558648439451122812195253792372149733825559169607301030189100137449752065200913200145261348552411352394540584126139905791312657194272325422241492760004106223358807978204147834128417853912177104148526336047931930128016043191930805592283279112097791706319073542113334123930799234710314621708797372763840862802135742913674251670129930038024092335025845376478857950293548437868563240618869941154314171636386147415802242419614975566350426124957582898563125575504669389936152719859807626517666111183241817630344487495585772557151698799175765050950282113197757290155634736967719967668745952658632348962141541612402991264348284403717218685028591297763330503877696856479066815295376305568560747076677227917452385156928855082231399800528295126936293461614977413431470220384544212574032701143106412549458813413922494088882801067569440570540321600814534720166932934007670642666871103750161396170259317688115610352960585823193570484036595759652392788174526737270648978200711742232736068001581519382422398518198538944121933457075049011779463511892124866941391310372247566724047418019899514035400327809193885816121512791586005614724999039282606156198847441374656574429950538862461953354393916306011026121804973137182313872600652175536767281570354807919150899293388214593215177256887888804720655776130411289057608154856899535946726443748687258630005576080520625169799736728441605511994003311573485402546320208166479417605826804872350035567199966887787306532049244831271662360990786078675151848738040180626445567648168847179362622345325826218169303989775173385727707436476243142749827778347863676251205516497055394427702611366681373509916300275288460029857645126258569525041167970450739265557122076472265722961478173382339272525837864033899483659290651345971019208622499236478996516325078418669588527639917652912237758751071999932860630994915413916846054383714204484166348209515023614424234327973413095547510945030059551586400777279921955860863044941589225093800146680450338109287963987502552488892616509173698875366926386246949936746872741961147081880682266565160563652634177956013910384861463983259902712902729585973526621646640714744034164020822991211743133359839861814362862155846838108962579998755477821242586449612254556259093660616188154716264541682594936488154751566679583765278464911987591730761461552274726661044625603222309051993929156163757913855933611930699269840196730760144865985717089358557058539837645894726068486159460119661346038246748677938614662582796223750326619702493743594483693878359968603291854774958846075779355543538108051068432817930630056890695648947202880753558435380380416013784950974439139525386480875491984251395778053302806090018268355358509646751564305925484694242670521567080047027786816326414764719864684949418099302773355466991521299884490763923162605289070204043739913348116863457599621380163637537591471434493392618708448652668666021439713929316761864593843979956940419615025187192282979649589619397795276507419936843838348580343516422253513209300928941974308946392105088858698871706070609684263824989183325387263161595623492776057377088720013172173134349614486917415921076166520135150540738594583587719661964710423526198591659009008857318872866170305483121761979033842506288979396952399606079017908390116157056277755240388063633804170519765164590087743384238030579410602292210614886245543748612353327124962928821134613849593387348116450018597178135746416023313337922455294892514154710972448221015949770048253779030781641114398920366234580897174036781421749299699703191769202121231853873861582534317552679825363115619767694384319406423331239894766558156882458336401484787663085823533325230126973100777817730576132980050761482913753400558466284942508642064515235697389509287677697788680945455835581808550676676198486372493157119356319267502798706367415785693334470871119526824684286493040433349262514702958270982726594153836632987856895919928436376300673246267775233764421642255252062232058427838816292594881891634936035514218736871282446721344052876789520378172659494814598758754250359011004967268640693211354000875109578935966556444160964146712963477889682586606829317845399433531586285176855467203938068755266032572691318309194784950637764380941823087130043079665960522523976443374271092805790128765175330777004337889823660679396670165458497861560284905705341213169677386857430214003461233112616374227395283003877594365383232479363297020333422381938463867049959475026923768594246496000914515731452581226313651450184189435730583357912924131167863344141321601237348262094594872399087096489705393022935170738469590412345168340142515574876327273666967188322111486805076603513918729826508576955618087960848750403398442843589734164224832653251194694186771274752323428367112524082512184178938311427080777352241774306764510911307910313784283901922892157777588984292420365181410649494615156484348279562483725593883205674274881844197593137548574738553413799583243547450436733848733230940519787888562271934777723667656366338711739190744567360422921225914220293359359179527390111423826825848481427370682455402196680193818796919688953554355324045481467690882469005750028967914711276270758511091913264529440094861079547376779445498172327210827266091348425247168157060745205744227350303055364467976089931172719363198177883152582678091786906011239291393906203891310667661915031544552761019049738633936381189959042386857993559965529993193431250194268429086861757856931794468103244875150446784857033932658063022506938709059867631792872982082964893590284831563498447353143813856688925338336686531045894622683733165767120731258398437726055679888693418215096279337347984458826314926769804699386834134919695449685299454270321087410604538001011956016860058635070984424217995721539678901030433191602636654454877708487360590674726342177454471135221731286655417022182544379342980928718841667040270784286908614871347612155326180524890704480515382915605889981891428254311470884955037749792067467827631776974971960751311603792371601811127623847025282619204942203588125723430277202516182678354846458520204047658715799468967055965606105285718532939040308176981464591648892125623977405033380357670063613930354690634089013017315860559165917810962190924182100566975275931209097969002551320583527218416673497279157642599171006269458257709862573660670462088408785129034848385678010851803560861046636210306983736902450984879017441799895808408019396827396894370300399678631231350428233381832865128355104547614450625397230002195766441147383225407971320880581595053939614092988150820856592751708681914220504841983094511249658345183852122991535656038377194920959198878644134323969114587571887497172750312758923034737265766717060327714956430179395411654052246506152119418702657497057044996993405893383788030192412155888151347528773293853485914173648591746767294012390476988675034658746800551775615880421647842230222895009384437586138884837711577222588903682311280193692436327726031112251743719031319932095451056526651387894012433977063843742524397399872917476083352954083727297138634701712173570737869504797209888477745138794041058040182311152141914884368688299337622134109553700486823881359940753941985088679396319515195698134718355082371456716153255639507172848512105593182073243937100602852293638384187662515051596354350827734564709953609104218892319092379542382377662997816933464991933237410212732002019713978640720414320354724627891041383796375872513248010198322641404796807441021121618117186612510179696274359750747288662175135211583489101202166062290300718517090997395808350999996014935027698828484622295770520299672170249430398513472939058627363276079026008375766744649066934440510369425808319396469998134963292481420597995264680803905694695955051007578149796678723740846037939324608324049116567515932356779386392893646679100501066818789121417739436315930262095971451912128127712380383008186348106735845295286229987573354151376601513289472225259504341765514092520130383022219293063857068154511215007267089566873741967307038067563485682263436759678884039799800297949909504366297063940751311714720982769236728547312382059079336157383823334982128346386575067297785785774954084962090677199012527594842424894184452619815946208759523498806594590108134766796042714486274533834411003968697957795366027061519189579916003481960195622693138787252660296575561707626131278157843059736142167367218425885929921202374331955137668525548527995959911128413607593902310474795624027836002739020229924691099176334375131165223038450069288456601161852298540354678013491944754239352829894403667062324119726971365512655406783865240512775677166552074542199785008405607524638668533472050890460016130858487021807013591008524494735211177017747105105470798898148955947717054033271599635440102434932202505495700853742737882413057129224215046704536574589432733798866204227044658766105666982272174564485031896978622582264886609683244387261574513228659851374221761469283679409319503137416325295409107292933549712271095710425205329858698796395059307986912766129701694532123376519852052634440174518977818200756503809696145221877963264429647679626444148127137689502124770049142810632818212605418126775382560703844812939138582033598431087268857042260398213312367489461441395259766255560871934136792526431365389244276286746847123831001306024707715908381095363709161027331674128465481444959069910541100965086640775132218242936507686101579313680715306650194881272828993276963864688614194073847503045692619408098071568100888551447176853426102828741756131905194334941911000860633167318085055879150953594143892376126635066355992225120861001923676690418798396929999343754897930332723917624655310645042170205110078893396621242262248597352738667903309166569599321962637993359098678595070256964780515101193755916021894314601684732822090795386721417910433454117705871247952721298224384544815550978323196604096746070185861068813296184230929599561940244941588201523975426972639858578549442112530954973360077860616064911066609127799544393267267511873250825372660203946830516008180722245009913629096353625544841706022828686580880144543117591361477954329334805545875124093096278544497717832750086979518971230353799573534522838154098472829372425247651702681932752499395114479621272525496405606355692053709577034888050708189842016823052377680054476400017790968366800868162444716781181299346164150027151443102531392727373964788636369513378732250216600139482773019231725221366557802315480907381573806345190774660942440878643498109053599331763437231727919573048392875324729872308120874403063097033557329569684395415742619555705687456974314457321642491957495559353102940362160597712402813851572354355060430580401879955413058851232367510260342132325883829418527300598285288194067945228318364172681203056203424964076558546031161479032355818497181082912645375153206910055813889816650794757804105132391392479075428713891344774931866533818364028188366666446997396079635504157686571501762070096157620009818392986002060366501658207298448523053203327380558784454180688154718200298085718563172206615849728463404413647688296023201360588239359240287846325558041926763596326585761522133653886699285122430708770734981817037393585330244158365572832608733516171496626325123116950178339639652951472871716912246861985443295079490896852724831522629129259226721591446587342497300799047928773765022410310425065560084282544634306760744665438490590657516637879624693217429662046158492014702234973460451428874860657551721465629447942718314640701666758012800505785789959673689438124465521619888679208794363016692824952654640800463564681487599924638412568877507868574038794571857623511159935800198346701164809644509378569477165476260658185636723501446075822411546576299475712311037159231167027882953242372491557215936539108586840945304277413478201255002856474988927953256629472260013460034672057757189098360766810591931411683818825380830401422008397614703564857780405596346639304267749799492087530173645304366217302871705619369790180869185258630056235892261099980263223470993871737503615309929418648950886493372152737142660943568592323201271602707153703231269354470138030304428504495893733386435541128950688660563094377010147858351090160464550896869051074181456365219698841973184571474364191655815808496241355774578811892913512375295906333915173785007872664315583949153160566742528799943243803173235398479779031496783928323601569473855298380190318532995771966376908481256532946916879252963268588200418357526714233029883667053987621115704115397236494079526893835820680137388696252471092117751575318615457772189031257312236210219244469419056473277747787984910255363608511524510848214732043181166501981211613978408460903778304231115015836803165138242153442239473934573291142530280891979163677494734449655382031190613842555162033656501266033629578412080035774258150828044263802084744998289678988798319558451776600270414132217886814491402127608950077839442982445220163045394184736564402261208243611532619787031074637488128353779282745383545889498577897398856614353492530562025093662995013188289028661658042494267535067302745872603896107661713768914087604854659954916624786417418755243057939917790143263820927492860035819437223902660843066298815464309084738594461051649290826817772380195157064898095128872033123355735080284162983930945576718371473851144260662285539043655618033890000014342509988529674142009350081641395028865384467404618465631864563087801286579276690893920505025263618945550189090803734345602570663935686926942482033127121367143882234970697309820600871712071441642517391918609058815804738377503267065689839415423321808919419260843904231937704162526577322040682942339328970137974609798972727619365925171627786971078157669313329195480255652353548587300043007191418021465621418963266988100214975154989415773679472828538921826768389931138896329312633392519222257212763084962075101612422788955061467800786738403108631375331933752104314476832021605071589522066055587988832677303421619609838989159303652684339167859470078335647780989325910903062256447378076569789560219847754297847465076997893843261275939313870282882366802844281952454940185793925887261318554248820035079285226457532586778642965705891730083197768505147450944802190616721388108604669282197936684216073506246111032220672317359092316648792261686092887164551987351527429888324137350884392319339084216742839230398445170492118763665676502158232961261571475630421457105900929710707167789037239482658918906730324596471331647088388728011664715325477050724097514350322546446643553512561246813392373863292172833902031335876785425321221170507871908692903557721087232544368397835487624622476559650548206355732956684415090897261184169333783459970533911596266557275128038751743255418827500304755742814216309829120847399185410957703367424786086628030364039599782845406824470728534947392470043826091492940510647017864021316290806791027200266206196983458927770676916054602901319022656466539015779331171375435055724646603495783314711510930776322226290455957722429150578368702933793470714218535002885643827857471378501412598615049942139821786638088979860253619541991917498367810594311995184706914428032001142567987885653609747341103547351788036781971993098206118498883795054563769247427714526046530600163218378365874314064446763213544928337974983705905324468398585674841988011227257038498717046043682815567540437320566189107196043290492076113059709251214823017072349484934755388600624908113935460100545468380717926967395559403320038473750961660821926114192118011811543608642123600085855577043775409341702730724344804408405287203933054792576340712866503374864473856790688010980133030285258038657962884571673619912141372241899510195553204702538623180610574473877760523770455251175647506006323501553172429180827769652217623047285489178760685514524111977160864915888385534822867514273662731672046943337572890285000589114596467768821124568254721183355713018675658330273917037974451245962875536736065998605588589037941084238714571123623604151055104073189009245793024713370298315714672640328583595384731683755353181432106119748506630825757835745422418289499389085318625830062702207515075549059879519286859612226764688927093367487028768093803713720937071651363171143662152792892809834868207932530255656883071338738353522192193670216124303821135321055940375305229501848604167197431029873792450273331823978573195407657799838374887623183425622711699741692771625090061884133383352247607013209847698297217329251829597224903230468826684791597054288567310474805793493259545502835370557856304721606319611152103807156924336541953279321771225634606509883037202744671829943981334981235300253092681445701818574474142887976546777259237617693071780048074670051402372140093268461065438506904083510663837261519817389650775515093019994637574238908598501854543278416631795741893238312674608012620497037948235432291945893309700798133716991939418194736723623433799817345837550453175598181917801592793463976352527170101848940316573466794700547866097526117137187696068946785904995409300411869806492697929292178039916945648095387275566799195100363821161422404532657378999980767907332735136412113218008349969498561046760918266603670849383905214709447849387396282026243949760484104781924540223893948299463721115649307599858540652437696764651232006523085563262248176933023216664404353317414734916098912612384581259642774339120710384540019369633663892638688428180974333004445121447739240448192454102855931908269776531812207232515246684515260823271907366476638054961103214779587187449883915270589855759115419723843362641877279542257418942792037340031283977281223882327691047514844514340962087326632444627940762310980988095875628087411899955613027017082000628916993458220661721133875486511220453836885055604110862280147885790303595839853292132101843372758402880899172456297329774021002916503694066668023508233817486015535247659095995005428124792188007010085104329556023965436720454753450660693370651143173648567153496030206449563851729529009286017279389508521156198110722703072061819697749732137798765869067419438260638436053514308102037532839131988804789645200167563289410214906773642392659027568266067326619509829646988035569901732255837909701535814464104676485978151813795823077838522107148659968420648041939883958343940752875203635317098502784632263001693667909473451437442939828480285165383156048319296081242017248400455609002462556793895588565125013263381663392557766501399937228629360379349867349062827347849743058478561509542864829588113430013372106652081411628211789519490376994278017974001220798846758878696986782151645417340321550968115372509789679453508761563797791071798232294381568936898659102370987794427910306248795604489466348930954563748808233800476890271637404588386256742884523749423813296444030170047023714103586665517304278676635750400838519510141913405613276261309347348082325386713835676618821775167840752871558120314824447070305251798662102747614621284143752482022907421529588069102863686844823119933748380109099006673268342524044208493073614617709298325121419044696231385685536004740872344048896668575227334305499985295667073045422856861405786746350150756185720814861985854022653246423297687819517778005363594370983788320515512644672983841059330825620124290504004847737335235904898374671111482768121360412560560844586093797222971700714014661688984876241390131887150604008653378415463539697796511994935511562174096024833850670792332425485978672543379722306551965251800545865699027732152533681301775572322431744278612392336548650746076352723465386101515753599785771588215846191408994575997643455765475375245442327183468616149052567773697771940231421516832068349431425864724725041593596170847082794391775704576797854709429317699731326263817850545014142207937372410197855309375554626789614511786884324590246922353385803624197436247743872339086896697120010067903664006241660660249241304863122078924067084700310825963744497924158513056066718484742162608990957814202763481571377459950336702306790352034153627335105984827222547377625993857669342878558758103766176400979857528270668309908460439101324400114682198388168058729077300424525744006427475120777833479048264683866153643201602071630124046414251634687902338572278059035622269858051873072881940438703083266317725264376567747175747700977187783744961810149902585140399518961361552359228591864095861772206409344465033380335797485870861134204158215981824964642770629956988097636878691188914645838566302384902113877766735187348415706699228584220267329162901975603697402995508683879963557874659047761627456459103092790456652824568192567433541735056335823262059887088064622187870626282812411098883446133574676987800719104047787385820230074837090698856168202429215318943199605180202780622150388754372534941275669438618952813882049073453708085622296648242416107393647058258414102141191834322621923605983379098107509470779424025130871532644733303835433879125144596189513583853324521236422526679328574058939834491823410546245832874563312763100197797344540335097862231283970941174136110863196828977653820542344568336633130868939028333389168452537019846567643747509237776664170394410696243350963521730622091476053316338463148589223862530470522666874673303508739128654330981780445701777387243232658739416404044699666692034030052652043574840302686286963800542678988453855369650155045884230661098673722792968008379974005082089023856420711681924249019815665092255550479112040230291300621794043396105539646054617803739167334741035065354754099504836431116866661006711785669243272976897503057979558662617291486140361822299510563662041578805278086207563675583611445287080568201040539437553080338145287697896303913343228143137724330621738846600317975298524066267811405349270390864653331203808899544926456048993358805421788370912328449932720573689629592220991834576729699459121130892542060374438262811581498979341216535657424560812737564340825155462471668919885485282428687165754246567313574065256037970400494248304850720615710760094963119661538115142640071636045982019717857643854253037632310472704370118695085171283147199973301158217564420775384228345894044079079066464535643949233492655219696731893377081477353326411686895986278597666757978190690414481026066584364928530787690762322629528642238272746993591376365348511679079529334128733906261768061549776266010054943890260589781326101575998621943286504874271894222142450163448880433414758095342786786832555364020853745745382470079158499332533072627384722784032204300579256137350174290525600287372432254709751665929401426387675368897979696946482524485015644214194251571270914684405302840147030660088201625549224848432322233702390959289140952697221552048385693660155441047763956574649620175213019590602742945700424301859337360888530945878022240344147115927866881910771258241226355183695802423834417773312489708854184341194159040147407535032065872247663924490807280488600042417784714736271843527014896846560980447355868093288696271415366966012228538588358548397068251557718709774326629564896928453124126937579906279075800368934542562957962417378387353196884868025965993348042150584229762356424000578873044180698365194854198244860084976138808384507565573558177978255110849837870271137389690176183813327928539138259604978837706389224980960538348339231452521901403594833146554562676048944948716398234655463036246646936939382353205961533068322001923330041965458051461830336600868110592104035507276802634853970703304735277854017830577650728727586668284148922788052763743891601642138968263469467346696116771727121537050072136413941982964373261212627975718330934483803506240582375380938227832826971599883842125410056404784684571784587617529996010948194922023567473285807619137534888075752281448465496294691098965910533044576653565433719659188523912294042799413022622984359251397805525103251861154566669963277721937948881287090604641645673127005513293518976672414445621729181393995911054032859267577557626245330327270907693824300345576650394573238460240660164059213799838409382585522594367760712658943315055539059344080825356591807764259166115996335746255767299920295763553933925306645503894286135598593294106575058416277657038922372759081029155302477608269404212178698165548840702190957028927634946905420836072215979927248249596061295969739972549035287515265746583723976349109405474844374504407839581427191830308766222366664239828197268196712288549790347753940746050427315304716589271055116971440686799036694524855714471644401584621907006493963420393439517674823705564569365905741344708766088326754567378160649585766016974668049308959145930627843106883992516052257589184663123545220202478262804492143409733344598124144947867215338141555387450892271522387711227210973322480030188457895588427149137860867428525126656465628766910750431979183752900095042083393061744897284030691917776529063567290377207117561066623304206239614028278455883877900422302900589301570825512944915098558617739128605258492969851074277754678686001544812131621330709152331243377666315039531629591448021211407726622682933842762186073471827724892438255715454257281815946752536128232112634448140312650635245017545292912727777172467935074313489875741365222546862881087236032514717891226678489014336474221243924912193052873011236877859970718100061073894023220167367306098688045175502979309083989226262672149572294580044588622142300019357817789665969930661284354434810525408150021457878444966869245245016112659147628623538390532739338974001771974632353121866594197088047855366243879753792941602268251981864009245797555310548320491054344523396723815538568129448953924311492947000394822832533281372398665160874820549908111902085330586743977693815794220744969378186103317159648221159362086093894557943773056263003635825963302530424030272738981024964374819906539070147943254088223477000031667865759163859098620766594142567991545576325895138372503559104612248051419975650241840058314246430203569966983283191935225920442896752281420019528877355131070699351580949418406559151875831518178633701185755258734403478036966181117178720311354354525494815673008474256947317646499467507164810997771831008109416132829852359201533482549727968150658621697823323810669764484688749338714476907457666293478863745465212850286638714926075313366193138246933382915600462194936945875483859278962013706307877421986080180661110991650834859590381305522962387250068203102647810337900455964393417835854123268582838790064960426591192112576046592915234037966162224309973892121695496008466238370981607533425555146296414336840308559740055256121423750022132553253842443248545762872234042820207314109648067484399826015510784306819371034897802611181825733287018231718467192984469240716032405297597722677830512889418054510617511235798794458606316674134091121436029369581022613302823627376599323259324297513875747464183805300178776345259565738828974179282092453186340811173134017045630585688041186462944062581916074313425407305708447699359130451866678992655502858264756680885358206262606861371138295678093555031745413106700437747327938267635140570281225156887618149769569567369964094387362934352244110600038723808742355070429732087404744802825063316579440340169279512134631988485159669999272619112873835594401961372920019291206732575552347527042026701843965995886714343978162927539047513932300435814831298885641653581850673192269708136574633777052778045887959580947276564960981890650551453297354426136722646123627914161484138025938822460529644296324398864794469918590946034398568295023660267950328382206612494285135380535547948570698821612446152704416831405472274859144871961666025963060442087840748939290440565851999037012399318112159368033095610734518117320242589992276668969416142578576542056868600497485572771905518344798546596861902389330526658372585260484140380559459244958171012484031306161574956064748988871769607627759767602636253449861124558164954332207358717865100439067147178878801286656354284243962955070253468573734754652462868173984566643016223555121979062122429246027458932863413674798747585066434388569192602773542765235778624567506732441054893440057364600928955963727136531766692830336536102839071753258065083238207143584684080399629718591340567922457370487270010561384029183482598384731083056186393691565595963698137028146011061126883254380339962471533953883087677858616357186897161830357595921574674644263860589081904594844644921542282997698546027209083314110470722933453217776975073993406527695703027999939566639366755502066900075081423858564125805302130544477400387304135097901089521564366408350259656151520532020500318069619112769993411132706922995571448882539245121074480062104667770063654331538248879654811606624425056294224983077923743730818836569533437498289138935430958811446813088661300971700923484317824740829331514251473797480982117745317897473939797266563585599159238706347747039508508901232005775687983717968964825233483240211864846149007795126019397574061314838187049447617100164393539657757205096060068085047750588705489986663761674866115832414009101628635164475932574964317517659901369483635528083206889536721506847537962817638274524686758184144766183060212255942464772495777570350183991516686574023328272910290987633423292700765350940063104838868793115306892235215906473150989114603745838983186715416626089091072133533639259688454130448622962321167911232521139708718893579377007153017406505034065498685613837121189039824394240669664860135262475043218296257534707168815605680968742294395039480417448273981310579110960959170675543513656808924926937852593908154061431283056441307429947920769205550299849363643143189800337940901776402327305296555826062912567413577446492948884336609312975594853491496902899921184343223217062908325118107666439904896572140504066502168435860495252120412513393995074524126817863724372910197800693460600951911316307880159056833054942177704238269534327015691952642347777849404439326576567548193468264313251678076023909139654710874381078537687519978404266682086832747201456269410756299126428275607578265928406553264450708105094128502057284552997481069931702505209249103012726020016823545898953267644539490656812118557599602463328670916614290789779524600569459482619309313176764851304210399305464678018273035462402538982539944483586009080922044846616171004307605093336212351596064403663481997132419384688739650794247384523201707547313461035309886399452026377888388402445060414796310733441725441840508134680387120605890358175732982621548020121937243881149144374475630584719196562604306887066651094599509531983024895816997657840133312190247256522039441438216017423357991829255947633543249219589033037183712912611511800079400041696863176485548723410243359054112244312048226306819641103790265690180777334528765794413835579703117724909302542382534037835223207976325636823322226418886980964127024721982576028769615765738242426116368676594758872399759993806475057661918086326669451641243540291927239854732571430857263049406785583415265017237776349018913564151224855230547640200238465796911032871970217469041079016493544192201162316521357726854723173319371201118818173416753949299810097983643758400176377114681601229462534532017449933696906200055696689075600951125552358852772939421474402353159193742116006818109971911533899924520660235183708669359350589412070257809039175139733904266232923654631921175995182906267393310225179535632641366303469333125988874798990920360937776497209408055361185466389881352251420058892097756764460765100585428334372629513354503703649191579160424458512399021094257805652601059985641019938112390312848553739364316831863183252280992628536854816969671670204831859339541559072449608730912279610830272369186669408206292762646814594249982834546018179409757648319474221507276794569653333301415079166442411892961603943293169599365786931098963597441715062250320052267276450684214036808774770717867534689080153816179955296889077501579580482776464991601813596502244166339215541603253074210350776620414235895753185958551318907389168160266130117046694057492155363224255246087608235956931285445197788124412531594432603734083499666648134566600534133415578414470135006259730021438451883561296877987061902620491737404980541400514341699439185117407165641924726753787713116334637110805768624224203183889639661334415243346665994352849023770222460481056055553679498239155306535369303134201146838637249033198950736360584812648360207304299372683547520097373883017762657110997573069238490383217846861646231122230216453529644644701612696842656416682206126019504376141530320812519268273530500751296884530378934074156753421254920597904513502825321214275835382710532804974464187891518689638945160381722284420686335260768101568994220161144328465497638933067801599060126792194847165544308056660013816733691923148242408777715180266958527624186567005667559149106360805544330232782675636618865845553309239824701609449094795843252118180881788790482473164470191959975587030019013660859762885403687989003560035891549523301818792283552862617137495969442158310483363457647754824148280980330726266035772795135110696961639740381483087138054816455866771610814277794019401329650728318481954525250829331404279200270411468638099711354266107500030074375347769223175817894835775874745922505222856811122479094122311025560087052599344324150774361031059237026304393182102330939474014938524334425421651246200762897571851850325892392093932596707480110212137299402804380677007662283741470231932693936682917225496308763089935906541639045204743702057208374727382987903983166511148411826361360439266197389184181063437312888570049009113986373457842930436975102320675063450400542882198371533838592045900318957960565114976444661713945682295627235462776489974806620044084942175659796490509270698049312824936516135768932530770790364128745922233850637105262009910801720941847677059503441763030424578840438431890703915544093909569618488396855737694042447645050562780155207432960082818911625222811737833499324438802988693047793944550573063071342959398089666435295395504801400516338935323033669855269794686191450760927198699947339565646260146690855598029971690414381562831052666766114853665165232064941383200127640160842041318219784899197458419933121510939870272532980460389882627096881834911329880107309024085364313019564000533527612930210603704069114452081039948228897850563518390682470693112798814536570465456703526496748057726683776326049898515913800215965022638780431081309347275661010066647011352983635599773253549742283351191155697198754889033453259141842677139744943507972266356340999801283051148437988656536808521014196103214523089155779556845859577726576901197704768183647893844101229882554047589201111020947908200793375595155444799054374093494332388624949337929521996018691248407027806983348714240787378546950706853741134142719705507599418926180543683413805767639860062483051944443855510248382853576589194012027347713889362906864398920307804147004948255288073540909334848319960979682229063593643408501553081079020828375825520432051384941313259005119801861536841504396459712466222956694002640095527443646046224877826632100893599188514007354367452176561020316369059612599049542676930186976490429931196264202048762108794930781563300696182446929507399322714480764914178443273203385371463814236521409162378771158744317470303618990660005524781402849679278312849678269480223904883670653096173440003394679225015579842675711600769076445077246848130547837782633604217706709560837948221768999428317538328014686106546517510567742862503006977908668767893315478994157921022239803026738786099646679502886555259684283178444973073720603019954862656976007229991660051872960399525133389146746847463670564805562338585202709777953466260086606296580121877854907792846769809472405721129661880778231189035428134419311992245965243460863183675638026716906342268620299930083347683040341550894737842103425597380234137460389544990797557003464207356354716501687715971869216474632372125655678266113437322130032440352250800551514004335514743683498688668093823880466381115522209604483646691005593579914086430429478522034234302785312799884539568064208168809469996308191069942239104816031113061060161974640205162633707947430330984305747117888023132146141841079986034518329673227755500628721048781278407601575850622458763187440756769603115681737247328402133045119446469286968979867242679461753352080458003843011212484478961676845957194174003402994596776583972440876420901181381863320662445259878205514873384908903347992692532550532361875258838513505539640550079144092721693666399533097937320830350421779582964745687222615977159939761714182975563098573050096375491790616889556713548954288104700336745359184733373311011477063167565141361932709331547590367185779242113871219018106393800356513801934676512011808048806471434670064134484784624502729046001749434315620050861563129839814541657270679039149360174178364612401444160135470588937534926018937504988700407289303189260176150089264870885191275454320522498645964530322381109850254239116524964652269597014246891388517071852330393641052584353664527296998603172354921584108407825153399536411484590996216419285001715252354132318776597066953571294026217296588677518186879981206610909195955915775445173573648939302349039696786038772141596288182509646713122933131423293161585836223626807495644462215139450990789328202152031276610433017746074449660903340081344351800843499604867263186541706742229777517107146770826614622207366378059741559718164156047407950460762725688651558251161009570763816168847735961173407517017001842056791022279874160834915468154636295153955334647077680597902556685108827432982060552830869230295004971723212643548142389350487866602789684059301388360491013112803452356628058852059610925725051672873030608842240091084986338977994505260981253307349695849328614233926670997626821077771081941650487244374963996861017625462452128252929475575130056152337578755057283230866987490892052617566428111338901000153655153801801161385019964180380998629672118109835127684180227841307445612799219609785161366798495723381107603168099195199754236538054596458307361938322796037143381127647327855766385896376154259484405635514999711964194018378107186128460117721968272245076661003568574692530043743732199516057263349458791483030020960600016115281588817327763647745891716798721414886775739184692334586077903866212802036692314639368001758209971947197019619501939411371444528589391478525823179120868106123549884513249378903208845795904774478116326905163917425478893165200215699605243419765116387992724596360828268252759509778130663820677300352962619611120778642946958372449683120439086235756012704089922715810519165702388786604150760955819842689886802043295606533239822157887406914264489676753350096720117291081181381432926517676641439135381862223127347578505525626387308505678992658391274561468259417249455636513640635392603018442119439478637578056538533730107488313469417950885092352503739982666313631929539990020853745015269723213528360222392857007405193448167370002105321039682516616659368269993790373683583288263674207326731307248316482366194924497124541401692845444160970657192707218590574808560439058420068170353899640390316555947096869912956786913614685061340324058429505261925997880027203344626913318938917684811631832458056222782627609846847775835903003366443262395443133856491811368326411121221845591546050876323197476127967778646879403232071477801871468059772776005722606477546311453182647883910714793418353161525608252444439610552811793678940014638231228105138180630957576859790440530503530336427810970133899066505627416732362483377023854450810950431236905295667109713656628755506130746391716386817902138560747695846054119071704945673970736330966980128456407515059243837465193986104974563357097983850809603606041090642276137590274937610984860172271082937300133762001216195155054490828355445855148796579387601901315562892112753726466212748847972702638682873014156291236490200463308217948470712636256573745475760172722445009521942191259967519842916938280474369806015208517604326194793388895533394482585969987444968313436294438634017752294385828218096427999965933592079357308663400721973724700750670924645042082663149748513876460192490401659845364857672848423628198874202499692239930618464541681394465313584919870124141597225391007636852391919634142010542358745487558340518611220530529026557585972187660023465509889309609927670222973033280323550487616012049245275717741993203001160461840525819107043260428220948439242442652229684618701690866084939310667025047325652215259681176499778173666146876060126730686863686019466411013232674684093371312817618094693062360560379404031380253102963226681365363077938484685070046098504265167113028780373864921801360931506554250107400934238011518935086423103166142374775232639937349186369191653917032635260738899138445706268669044934727135203468376606322109045182122613709458337809041514783632448392193283667776048558335232034409960804087020094364894302768862869216612447367921355232702911760959521911712325280528402952083505211960141744940258520679512539653209567544916013699778142639378358201482854798345162496190190112132739469432147779676610099367130350422339983977517575451440687170014704120167477018306411482503277595419878858128001878378471258753039922932292657944242543232730823151211745365269784126455804294072683569873420309039891073408085956632364780512855601876103976589276716165587235427056047530586684469703318617834813160137173846107553363460175118300824883443925127211847555926893574241242538813282360226364439677332164319473991750092133736833474597692811785837407380644382652815511930496803583192093911910772870534896337810952713375523253705292575571058588100427096423701806015521865223574178405047551696033514341980367094362186966993794106834323195087899105323958413535971700498335933001212899655675724177350458258074219063211465676790387440173875861272525644361207236875030221628468599824576656393779323593141944761611617613777884433207801587655513348995121602715073131337579631947476516298163365557175370712900574190007569043886910687071924635634361124434225107079931658441496789979331682505073509923514607523290216498553256918167829429604984835244685459006713950510579831099171954093772444174209034871144538428621156603254764933694525983127630413045362962177423142189061646850579217447032657546960364243015598405958956693701802777839212546160663763759559070733017825506796352772951088522305699435402538659966816285602805310815937454908015288047148470388335660106913858380771084197070736003685198915502018468685716387327202711166875209066377770489616420254433495467062361876890215633581083788154143964571659166384100039300486925288888886552994405313697959588413198479311244427391997596085745407549732174487681660534845969692291400506506808700815687862176404556862177418830470702481271849834239289120655284182033110168050728355511895035165696783030816039634193963356093735311114925547666864712639361653883021261369361147992236952440582565654308756780090449968314722148960555605718614375212488136927661549294620782591867771357345753521844608740454538724254114859394983064544405645891111766112074712216613949546990764543168227861014803450190868214433375038248322550514273624348436005504840685475992267003854303939201518547177563061925597381958640556327080738864116407903187861607833887593011764220356989913295008694312227549773782058820480485058904936640837618842751815096696586165503698902298819294556756315837200459081796985228337431237581221572226197549825885210019243607148096306611272009771651613267249424663819848614486108778825911875355165061878072054504468219517763479740744502976306881973324802399536623729363563694046420766630294361860495222691804721364365519658234300581952850448109495556273965960954916712786558841405350531577663493886870024423103827876532375842766090141166027303654648748855523875950154869149846999354706945052571565762568734336253002629233135796671570897642985024062431131050846601572066294986662545508526064957977689468439783913496366786070030752058291589275291789453846128442779006888919489013903380722649820747852155212951753158486990974348147020786344761737849140318638780361817019637414467829410776943746214391906180002882544389401334124414843769819866812655770268328010164506210853969019453662396803150304840977003901260965689910557392537745432568624514985301867834295129216856559810650112365973977095139910758556228283578791254751303563033712520248839868044212405640587046681660871082966103908696805134452224876701295799148438536486095801011267018460748816645658956194579832013035439275743933509534444589366102585479259667894777742603380106110980736344915283711676218498332384540109880129254721203068920154912579015023656983619381834668364166509817729031448281125187041708855991371655161965444535298143240821689940219492742772488483814716972567507493256215017248341343600088925695672312868227354788287121186603643644085287036148678367309490094418873127776603630028652013455684138385878664763569551696589839623959908540975773884998402485929622116344691640167503592844859929976157632491456414114371789422217873096736452343623851906136797176772566055946630010877408781930182793956337860157674427398550207351634038029424777917785009739089072811236996504113860690670761675128538586033560144689656144571720086532312394062824921260450256847218306971275137851682902388488210257693875978056478066177340874972893782740843654304104821381504922808206568066488079282039494316619972762422487324226643866399442864915684852373356867211045397197271603321360968215096072441772544000440965044148822117440058314359803224591565357711373959569934951759593109455131177900575999786395852231653828903739914957585366754640332017904171204373922810886478307040829784038080137705210778865791921554459262396279995192639212317319414270405028037634764339536138840195288809159174794761293942242605830008022096044520635496946322583835644989589137269288504296052273389123496021130430126974529632049291028151809912885346241713337320053962848545227353316798443346691338747508433585372465283193917270093715636016455126526548755632570729098776620490981591750181527756955362238737236573706954092114964503079614042875791542525717897189173618280573565612514433598507213717588342869638368403783410712795582085910565573784163235658118498405339432478303863051622828845934713971540330226933780316607509637777752606046463253748648775520607214323483305201750469981396614912782925907330966441233288837197340017988314044375833674323500964323354001400339975831842052423320715871372881061703711431560452505554588441175905924054609041351019309526596098658772136938843517916847613969364789593552139931425973219148160263157888063210561451855415926340663798483274956489571096058297419837379927983223027290797204724888876291717624390341970057777243274945993636632030919034512860459262974867820774791543826240266529112294758179162775608564176820796391466032753826841349263763828548109332216835069697819553647960419219942792306068683126315746532577405081873961104265045029754842665320875904587106418476920883428372048164229378729067096327523799097085567933605137218325297424465352552286370069015378209851984547383402666061577444912464766995063625319423269720126181438687934331886334776824083935155976116301639813546685323356755949914894524138078890664182849190984485640939801974288087511914382550610670387644884120005792384159493713976339772568999447690564287355230942539679216712542249410619734240115184515696197363285697357181092762407194189332106490824386523581092448617855822237937712395818918730210544046126653812798264773587924157407183831800251954871555430645482517570045242985295777956598684223257824116562209175849167296453947063158441877487101669660267963696421638787413723113168513723761786056255410995666789972065531217214697851475536792414274455213596371757870474118066199379081008647678498516380869552607136707686373166065113941566383403667065598165545071946469913771560793197767644865646041527228164218589398181089068819975150170371716812671181725077166690274275532725540468491325248789239467964607299843323607828100912721415849120110440226396630793053632507297923355458018258772864761674587777872166319096314943888773656198489302303792164126369398305808373593867540882330229353993102080374931511541954675044729606216499489995869016253272460536829954735081416180861812292109178376833298804986304178335874160215618147942424406597586087598275265938478986902496160462975076017721868367695988456556757891885405423360448538559807085159462743399713384025164932350512471428036100547266577918586995064237258014382442021431589914449049727552810558200615362002981466208101839932896890557819707782503341934371776805171675393157273870385223412064516412945390402800888581943396512992964806032617374338185398725189510185086470648290584582561926960663922618106628237527360832112223598059293141850101859083573332205045873386757063997897220020938976944629089933495537473817011401895870458945059029912222075412892022563045539220109253429901571076628965751673498167437814965738994463604158560976640475024367497712420061215872136522674868270822702384124858716735184107280319708957351576257534878078550088283354200153175766036742793650479324074531055962914741263016538403805097710788091130650481415897064755505532551907614016640042646511210953423913707116489899988104844341515262726973481306332591992629549977425450654935071345618471167614490085576092976516571161799576083184520476328284473033687042404689906107608564106353117106996712098202735338013402037309770670390419832811261803395220474213879980075768773916668004913325817923207159374525141327836733448312435469408763913278519206345135398962490428249250949606942478471210784287977738463302237356237109954326365440520757479047050144542304298948413437434878455760808127644621167936167544097166137249511298173924589384840389101465923577359663189875397764262378044599536576959285226205302092158905773448385403899791882143372776770455962288948307933884784030084788272941310417474012715532316813092795550686900447520399470683113744161053199273514148926146333313639748866489810388196178841970355615090790908251613852126942609000490151357551566285134113903856823110319134308498260164639352948754973427041122586473174039609045065071247075391228996678169707524300136165252848432081087078164130386787881915119072831060546300557694601761558685421865859249572403026500955732459138489032214123069800795979416146632273335601970679481045653669824294576599026449333339435236881854201925568965265673213026100657351230780751901763843289563069364612098603326171862959374438714854364478529464548085419803008249566163256152144413922495067297025854847373825874667818320206244777349400247694869991164254357523464149046424778912308061262558153219256029036012796884370367527739736580649544180958769173145679257345193810109435164944428949648666865387284226181657222117737855059197788872233791303769178745046639800654067545690541419741964005012731921115417129126469236906824840916755836052088742096290625742962085228691673859824571055976874091818485925585144869314369923139197904004147985648184658393371445632999317239488021899259366244697421942893144069713005275150841973466756398890857759731250175297992973513065746170215941818337010143479786996994797102061613397177434549985734775215174416100011827776033315256844635589992818944149493770187397214319787579410968362824864524359868222348565498694497300274420175421197550202516822252280631303107552111408016782862615012154627048445116658049705271869201407972933965759932532913463557604942042506735926605294212027338361504747760073090627569267918394955169332707842672838694375621902615372176903447518195593152551740805209758696094658438228221903339385208989648253449157592833464216916569375547635318179713419331385721052766883869542611835243287445123646040330157435593955290908833980662470510677784184064127429532711201716166505297430112180493805924272488309197110296137207824818627100563097462212936634247102955260281009637528900636295411381840838653762333977252984815811068583055177359803019864920095484735938829877728730381301974724740174852006699411601956466021921262976385805471812621634476098912165634714558300441653760300117282880864255860448551612284802470595939305584468098590670433376776248131564117940889635263181563126854171525052187434741994807041729032399404502420927219601601641908833785846900094110461746231654353189356035043661314512905691213754904622909529918880822393838919848890979824084952985003609726296934786354669448908849139567541428695841108386692795109524182362687635776464945673623383172210150758165902401568985960660172568311990705850800846613782576661407920178127299022191822368057062382955270257890449054009935303347343949688606497455066865503411875029159323487627203400892238632109199892262816112284608053096327409233408387259756655790411561885312440344260360265116142322928863837796898471691710871338222728760645536263325710857504194561995310859214306350366571624773438659832168480383987430947305612153831743551444415774979630049325787126542970924693730626089021266802066379962362159537203874367530323684466528793154823159665802576282008059602634027926303812771641523965684666969060449327204185543616535952207574154129906675834550988949670151951390563039904491832514180868181470119090309170398823392135252576951262961292277014223329454997752732308096335927275061410103397796887024066776556731565710091881201513150731399993807981250868501416109850331693513753872539461864276732477011841386233882548270827320784664092248154849790164359194373431154940147903481028623311850642661884398222846853189266033405498550437187600787345403615284427598792318617959015248337739652185299655292761981346240650669279481218340380286677321495922172518608380661379720668651091962057071645134386219545513449261506784707170105237698241096243252952479629539777176057879390746134453046707088632332601434121824394529846027404141967452063987766629602801599818405487032765752594550832170220856661223547609379569903679741666217814432426483673045314236186196970680705085655890365161464598371717843408214585940434861466262014833470929784335286031263216207629163796888818965360012298478928944224143439427639457194250997955891534669351367184832387076425764701526718298640378014913612884015595420887626836486555127550402937112668747132071108951965400111099521169263598431196155328559822487610217507053883009702110978487531029816947124231879472867006694037090458304756962301245924360858984035914868512974440625837726291989870038187673886017875006727293400278446479688895603206840823244573394180429290939937250992901819843052322332413912361004802232147145551692338435776502975864382145232942902138746673818859910957743999516592367301485148069908881365860947404515542606644355758323687230970669992349259802162081097367662445485842379483286549153263870128218043973927475191791508718506771296740068719113000822760432018160688239208569469425026381450428651885681115529865042449991029570044717823435345405548767179906793684745447847248494653079076157888116018144612952698540210179572119189976121083487120036241195686592570370176545547269347870428959663719830960768661878116554168806959506816692841783026299486142511282167355376898028081639601601975053563806371487459058286248592343128338269151230017371877984546937677020629937438688825006779057080291544783280117467647012912480793544062059933572519043919203828900674706573373529669311390791655090358842163816849744878817646907304685592497723258369861441840589522383353775729196246016204435465954967916353299283455320797189223245114951537860267389634866564317815344853716208478400384304393562267174855285368928180178587402519472761667521062852490362576697001807035376205930864931906909221503235298255349541940213627303363269671212229882586279053998034055535146023036893979156046212715407038749417335940445631799693094666687587489899678808280886529362054215270159515423287503336819887488666437750631875186086857676661499285499284272140394452234115754338140583747493878139443657346640348905309114887060948809807007995115924963899407993988681476936418652574504808715746218850460963787468895222771041979515121247829904007263854549181995672797778200636476140876974399020853163415481714820359117981643624238630319524912691838424993437667381512801837501481441464592027832042713862232882988971478131760555932861415608843632539631568334685369173432018521373160014802193574057759980311445268231403658358913706694256352254729031469151152991660943897426934712592620693637704834876487555789276301931770826448139495287134456547891717729723299235730682579800299174645412090469025740215726845717743447039802945591891321655339466411023094955381873573586064975311034148346587199944665627954881614130144889519498518938897307370184865807162645976400128654027650877153276229343964365696214272377974751187793238211812912505024959513717347669356825215412833802766623852914269700358746014895902928099674150223927829999327592307869690003154820529697359105630339565695897752842409254561799357637990056299298520162171687406259639214933893190790101737030584310457172384715662427079495690517823627259004243440219435114420916174170064791161898419371607860320230976185799369750668221218265184705179920763148080628168797811854677120395319977647485811160165854357168987924003240214851926937875463772732248334185554897932627882712284056433624677978323541007556788182994473146218068583161894672045556612033988142747289499248195122873667882725203431718761453189830151501283828296690561484779171591132593755248969107548613007829992897776035691557001120949957804460883926326122118321208577012492313121510752301581943411286066516796214542261677483508598188496322523956952827517902310437329024925774549010883822268333168206296779782536315055795735869705845069161117068736937003872827071378050928868987863119579050262349740437831275528141680148201914617602825461633442854776423933217351963490748372435823542365955300343107758334993682197673315183531947808127428547031691035599682929132173439379612161697354164169465079177495434130770897682172321863587866212625416892622589291347425020064749956338959320253299028141479281115614942159325336633861806948713675436413375787166172121184724930094311455367991509995005003403503728536185128931983421644516192138277398205764759826614942200395056387705126396336325602743306136719263122050514600521556369400037938526781478824401408281397380057130988307348104195015894325394704476020547247591313047794848250499191646907224774455458956392752522175740814230912103083032943484262110115266089768583247134433473490631589369416228605061692822451601745735759880679303027572834147568230346971469471967705530153540075475704168753088730551527369952433028070463210296364072216841186695824929408970103834246364120326728934380584441503277707191511288584488252653765882558215810633510552340988037624985992415550385374907969221713770945944252293563925321362083098089690530055627285653827453900912465457291013173894224782827212018117101700034957788187315949144462282526314642102892474316127971562323102742866736139976008525047407233875869616243618845791317631047591968096808365461573196618650509348275820253480800998390955377646274254459172762025505255063627018585751036676750404364386426175397227065020967526635856289998086795929547406082993818075191116921419027872277562112657931450794316097209556510263327630526951598053329667523336586037149841952218947011101837776545544274899571201552917746649012195237421391932640119905497645821034961526686229116615334636300518490881221859455121310148854879274408204442175846567247500629931499450767218165540805788217753686692482746582651152659780977237830043881136219253103956192859899681965776484068985344296560438727410638253528115676021514194007659564506284882233361372056313258202334913690883244851580092238061997737419882908012456051844132312096265762502714754218360723348836064192847486729600508506013744882523658554639368757577060000936256435287538778537774125651400995209033843324361279389217601572266797926880215587936068556759625291511837451638086676378175145884085244684338380013735040047794236164731788785733868791381095880757099462352323473928662543641242619199745614299538993610871079740512042056805134648427596807868955815218894409250566004542078478051965810274035871149798560286154635738654249060370562747427657855668761049987669994198403178473520269212718269526853040845123223934187021259179040632054253190270488502183403272765457622601530978168422405758841482891248955915356588582960009717307438835426008406963171205708622257832013471358304501653702010444520763416460912372330660860124950073531606828119867931587208904595154351184400567972500276469627541243237098164090962210458454087089537509074916858065296549745035207374481684664992864799775367052072097111778238857802458493278076432982702771506950573759231908807272488885843668729112698999198237877186769982735661237896790704794000375122844568848168796171553183495910175540819719613723782054978769497006707512876470015867525217137871703406240004139221754649309912731417993060255962742096980818448117072355250733268770459058995202816191331238960195215776063809885096460983783384420892960835734783701929601518381464128961827254183219604878119253019139166698001261529301526427111595028567486433080805136211379830763587315988146666420222320518812626097633267232459113208659875335840880424127474084018966353309181695422067356858634119555847768541077245699421200956495055927713340343258887968126063374940628405199757341261792790908964274930811975285891071197414627807941571292468345144372527275837504626059652938617125138593015541311674292222994280877016449245380496191818966777885440765948422646831726854092971777854938860950268136071884579292935603123743561250205254216668754352367591714678191989202262768883684106089854818813990721529894685962512583944668700777452804280682966884767405772331775729736542174931706688719379144173065206861447811722917411729950171191987522903726459283440342363500696678913217624938180188666950395964449852837636598120173884500629247092374525867424407325761939043471948457729643499218160522066451667439807767295292649146507256436316070929469167543119105736395557412625609437313924743492597970796544200565427581339037230975107756113389719173637721487471034496384166966165348480507497678606527699628332052001097900524722923650554042558732768073107647289665516739303334539614428436827381865305825354594222691579782812061791025022252096129938301065651388474368217871557555558717219126573621846735744912645641735161639013697121014569097943851022587385344063610473413859396170735084186873433976646765988526346815804982048026075216335039790797084712776141923067422496897381815120765927628703572338654817598946745770786097397729706710322401237873653050063768651315177585210288368477561942063579354217200712620926862982859342474340601310871838460705323327359862002504295991272614317077685847852535328825145262722288739966124636517050893385572280747838197289110171976891827050896074811004965833705968446248256537996008614519636182411889507741431828429773903317322756515383715430290767930609328656008762456585257864766998300848163328215545958785359323152157120515003721622818436297519780977020215254934184042420535784930278897532688530807372046640839800025504913956312715618586335310144811397820385857467642821873538774438642251227544826713476687800026461470275218572951051658215712907288466998726846856692401430651581738185626505595184434821663974665863169211475368638726613270904467363826568846494183494795743186682804453567477421645553418150783003802342872747018167055714891766860610143699364911093103416166416434507175432012158606841491888215223585826467077053665136842711644605978528714751747131076296352771918573136209178634163538249144039361445503668975091240046053579781053681590206277221991078491518612680384580559720894422246535959067614423441836538946573040798242229555948561183077373430963175483178201338257734292373867372764686964476902759517572064330404420857949214616157458818282281662799595482962071281502261405120424497875228228177708197872221540441082089072267085662468984001183007133830127572115499918490221203446353679714958852531133380818487617417685766799294222219118199588846914791933312684095368487754472190005031353013158585354612621383753509672017212124812643994278102614032289709045505795749494749790402485390378422118710392803279687563867618602872580432206331738921707917736970608481810421978521634296394769294082135392291361379644014152076107471536537578044908612239547990573913453094521937767338933820298078446588251989506639616624300205064802928262167754406896687191261868211448211606808562080571596335847909294750582845809691280855840782620113588828525712215461357047042166574999966405377032161180671859700800817645309291012354245886152282065721381951746854293143735559184167068490299368383022207353383126956222881638681881582678265372555768572458075716247885596156615335765324077964354143617282245626110741409416822038421952471995448861596641407534683749312554033622032898427871769029925565308243929575545964552416875881981597460746630982897283601826280232579463374356823884351424655913572492944556098186411458992603941100158657309030033642244743973474245074873617451410563343726248286614943359188538571259481628735403616881617653472198279583099270819041116191657449708709773859384640147275649729837209253269973513569688221839497371158645195925685441955474402309631032259577484548318933756501093427818792486071033093385247991415266317846635990220084963550362399281195675420079746853944373536151139827426311499676324704948672642360183907628443511470350707543374788618960023253020640703354923049748920293075260362061472289948329903585629963654964575705829828242996551813359727909358025597212526615307519548010201240689720878109380185145886435166061403877704171233732528772332330132316880659158194809077578780702525224585835357604785218527169848566660705002121782903070460219818517419422029247671042599837584201877610509793567568088087991111202379094951984901982232545825784786130203152408063952297980538253936060133306733387961469989465893076412994895727232179977867366553185565323918916877908475248311354185190454511619951156121255515639820208213677904637188334760492411780676532202833743626621985331271224092984452888264827481404299596917345451423763986170293263144033046867026657059580600467208775418977060539051485881894950185537971901976337901266548255463305515178671402202798998714569371146044926110818565408339172437027549340500444619828086257316694036646019948815067396139000516037835235448852667055272821107243761532852955322631768704237723594078741012544482643125055250030736162771099867510113051027736020323438278122815781435191337573066031473385378009941571581640126647102804556356661092126505489376157484923415381783009788269282887188048346484564594457446513848621171130975354934210924441302384122467677819181256201816512331595026750926276699557239126255131552993659666919049230426886780111924543488196931304348749890742317753790725697962788669334123985963413736220814861540380230893499600471801433251868494119272916224793473854858676108931656790417640709863135533695522712846274057962322625568956016307013939271739521217585868298572819479491465055373240616336322884798957531911676750302702431591889296853167777872868023401880002904803214929329086508615578900487328299623835266717823282694261850268253053665867297399349707147823350833788030123214520045734476183765254207883333688500627339342247952279249816651994027766107487150105727416934903645860234075721607703596497649108082804877505234936553287306432623116749610448471119777451317549260042518267142939416245100490093252417101844780168084010939038271219595906779321136454848292312248564528017749551137589570092962199506472477712577362884385522644687424983230148872331504045382217307054090239141667576709360099237404780571226009441340389311776300296291921084829790532176221029097846049377029149228540606328221944019650928057542208351258437018564496419323779518479733346867263945631926484969731877639877803446631619725068479426975140284860076316376227985568735171129108758714566378423160036167605557687993727999789450287857263411502580164226318611901076445963089031511164579710352733862854843001813802898055137616612116171591547171602974270122587482254045216719921402230753468994815580303391253599216672933180931726228896833609997326522665716912260943728021928092838866443117348336720967572048898083808347774487226130952250136494086614728871076325344178498282165777580076683873870743969146945248070622316919077721785402409608471018678139774679372267190349068028490310591759843528909318922754337008744838054827071804017048093982806163979014630050889752423240607256619684441831225331326106750220604227897672508956575754056836385748435328403115408716887136919419423319061164136367746292276822082294770098456784451010141206943363965809236277572101140709349062303869239095404296838827976247258567206973090920927497448936337465515590582741004387084228156344541213462454991083096539346519313394160079197537566961844711856994667445390369439997847430034559613719235064063572826603359267117677914335035389592998433082013595425824323676158151693108507967482481381787007544712706189027229737043867499391663304569382009602091251418937471855170380381730694884227017915810695276247396796909817004883757864561885524167229499496745661522648743990274398441472933160034376765106821737240767990252275322107172175985162317908939033895216686189556795840975628827409531661912177007334972011634779088509758063083755338711003251589641559512955870876554702374924905842944368840282394222022020635389107618138912771168309272006626478160826071709683261384399961603242073004784109443981399104345468083999480865473590262410471160146974447096292425206602614635674069814186965352569667564824201153798893095025736440206581245124125712653456346841183197860852355549222274996505159155825379863292889500940782559192317141656271483332873857985854357661906988750063870853986661910177122503162446054689430867152243165634465167764292501229381360731090228001453980892796801879393297006292592494267249202146299195223598958722154314526853562270356199397657097694549191865348219440196980665167017157711902515614197521735954826895834012787995739878658811177965484154251563164605698983308454829138849978988396053576242219493866396989676007379937017156812190469589951098100693574541890119206151538494360356438037350783222936096962442808492615943252139267031407141032880229225146650305104869788547960340435107219643960419979398437881684055549915026790597998609721192767421896666940288069001510498492448817681285237320859074880847490371238803762616644150043592333616882208311841623730250018115305282548635311690193782687733850171302587384333449957654462045273361204448611627935145435668075934919416064978307831648361366553590145852324612725463120575491191881152498867330087940677317034955989077641790403731935497505887516986048268768888450838915093781324865010788363939415152494523237010145620624533634557965286674499152698591338658916033147090627116081859417146668591341325631170487385502149390473392186318284658710191595938569675536227738747545301121218302436221840555969127970265106702327094340610557279490945237485703687922093771517018203024808694317484652902868075655013551830309534210438707820819301397474456344435539716457767805210503040534462062890870468244586216825212995855815006383995563899018230513431958834979681323724694070833027791760509888338152580532082609087313631101028471424781531196130635587212424761124828180621688444991093644125332026478442275144856933620461150083587139726952950450289873127097109339106801542548074871406729220989020939607298065543906563437521338545156579002959419997885805469335169823933590616487530682922514045883980057774340444136393984235279138006524412580252742978264998690813003113933302447318273948014525306031993118846947719507872419443924530028745284927580184974121043372018606191186595289822318661148351171632380570255748164155457283787250861156930337888140559072637880515766476395767532286016540258605990617149556171594736872231719119809616518317999693468153403975436480254792175993340839014784206784172735018468731629352107590317578575364717349633762962220093789280145822101503262707011207710202891590292543978629408330762888534747363262115068884863607105671989829498810757907281044544246396701701102015984823626261272401556086085794905180096816283890864719403255180130600852069637034611740450286794608086700099862651440013746987823242866946873859316998599428793588466391323205269515709014348968163473114740479099605371965341144718461123827837870496913169667776206237114216741741978417103525580720276897061277009488796810982482245997296335010403408365952581530220563553127552369055073142769436819843130888570488259525746568510513377447628184097084371444958502329146534131620552128567453424908943247030145192267319404476878130637210611891269545034577018034393978304153332257543776080341152637057913603825449593542073369030374563236275744925765966706829764779773635142265033927928448386822151929085331793400997707607777288143767770686283919752745610963626849546783962660267486374608810255033327681718514761649925909365917063420198507360196572672734501001140156098320057462997533391801476274053643590251483212721279322248049554225263989417123592725624586725864990538201365909615894068102426933260082519589823615035115432186222736966740306894936334435233386831069161538787580106523318394497024061859323004052976281124325699396170714697704736125991552724523483519299672505824386389486165097977066344815409954094743847041658546685319501564774442847348035018020504208966484353491729541219422115335037974146074820627556928979354157476618659666195049871700525856958212122953058978261838863444096081019980354510811669904133246974289797766713005508109081578527154101237106361638966777835095267546875277052783822815281752829757469168665594246489066568975919344299971724180405608003466758777824392669725529163377228784732409000471658244199321359076369347019080664329281132558501462919841284852681104020665616964312090612112942483414326441005522470672112691707495737609200658542254988594637802302402787585923904208588038258605145592456719991563984554915470447305284514438326257785152209075610997841153343437701671269969625490828615554705776018393953622694218100623610786492213864120027228547792609572621064727800060157082386348446784874159992459253213776167082344264768337795784130340928758688425682472711729019258970587341369775508910479204216879227736713014651035017680186042375279348698042519567956563690205372638043930606966116809760201884147628186131729335069389168187540985705451934420591009740476064619970132243793481912563199383369494185529036425553259640848988512655678590207087981410746526974543512096048554551056250479304001988886181761013343813709652491511675625479393401333153369791870881584093228760396632707176044082767145626261050630206843051337775801809922884944430869506043845955874537081785226598426115056728158436932039905068268123895025549432286839120674770106704978048638767083181245723575401584018802502753192033229926952601465647163990165729294075329884444876112909843008941752369704637239715000011596250991308272526591497501331547619625221125253955985955321915133934786666542059362820076646803144163763999003209485371895231530921966545280029209542488262766740856423517489155689684930212613060620365502722911410553885109144847558453174197252360673814630810447776295534070046971826367808305311283610546316010296624952589620059246579525386676082200950881376648400479329350723782975881447494227973780170793800242789813179233959740120110118230891068462157917733738208611578044605780660111901466228597987214944493439128510803615966017827136032438246101656246081095458710454530423257543321950156659211559678624052467147718607821323747527310279285433621910297498821988525243001671589485809178058611172870798456880043868611570505055384793831610826640267582095913878641762102189740562650837343146332268995340905023086225181479887125604484409385613977125038272183082301815431573686279811197902879821379657021561680547348835652781461889074529516463941368853917563207625965930915056594072413367573220389711183483125348965263267641611639040493191066366842301533082477092771018993355070369943538720471209023178759074048181688792925842457656181117248853925958037027074157335687810440023126863357145695021576547650512927871119719264158097749604284320994699613010964690698654633167104778812937694339809439012300816546513164576219560041570536800847902449369263192715503152512927079881694648096601981372375433917406162176091444312226716778419676293181680755246796925949208466182794063473849791376813043599605960299862020734106876442774913929190688076250663592728846940203652457242125260501298515081054129905627741639557225491306656168009286978433629452652720829805685097996657891058137900445821309913195691420891462155460044982724838741340192021803017283895300723449298004020397044881079567189615836661632867103743264856276058088232503943015651826936674046259776629273395861949592154786463428091857297299964921118767788918039522751904384165180879029614805813208726330842039346514942434793389118682503052425901583038106865382633170580736447075421696549399010036645590114074568382548520050458614737807915613143648948828623081739369027682846927152658112105297333714372900910833489196108873273596700369848928835218840579542677933777998802686491779675868508150947497459143543871779235428961250172900386679738928609774361390980442600241012097109932210826315363828967499420003694995220928835171079960407813291509371409182098326403155352617983501619602025216248219443058380436031814654154942292551596493723424047116100897787117564732367009828804372616384563516887602515861783358973206589032111972209354563295306403438839613618594620141160174170140089969667053083982671998684049872553327707023824831481262785660187398102493223527249106552071280960005382383755438767950572671998814291529972282804369778424999754708543115321224968653991274002138621332132881854267167109898110255126987753492546666638392326556148892812417242595304754657230693270419379410576871184600009436316307412095201912734834140008706781568514473204969732382979344771144582975150356444969744415711859878949694811580348146738066187695652933789634780090424350500379159266912681698487706410391702965883873467047022454933958947458015476762120103550063956602063709535489811977188081680875575254205091435496238129775132063844128208993518371893585191701214350211782655671818031198977703132073098005314310163247398996800931855312475888340744379859429713694265850088484962246512579212956981983037180846430803288165399526377303699112956531643957528494775705247235821525191531523007869714744942277237453197978272614356399000660499119868118982844345713642589510901987801237554460457793485168647710029083542494794434387634751009650215873929501118370467435105931352833587997945213287677055043105562581843925758913404258556697972412675240579398220162940968224115242768671116466753961511788660720782561695069066570206045035947663088847136932826014782348838845989159940163694009645683204434755571270622583221526548123454726163454623079348140466204718367455024213105011645093815229501986287617360677032319767617467109603920685775154562777809446047634092179934649479106696510938361099460458562496955456419536349493719060831870845068259515531719580881700864201686360525437922754368273561590510733761587102270220160648467467258767712436693931065876892174577940660076996061460129803594772131176753801328393857373359383148937125189440492888342654501415224439002497730594300229009443645597092743005343666217131959481967041566992200494221498004262748828309299554816587582370811533725594196582733755341917319622585594831261094845905962818442626948122956807345172877793303979074176347145887265206013899535972435349467426500001969799677452471413791195219183559902593684717872460315929187581229500371001795122496122835758227240460701086541415256588765500930470279439528749583873555570024775836371829211663165622748627483469481802008536992051825054295873715413234118536007123204187134407315680820491426840390197074608623287937262701371504817536493342587624577506691385928547301891892634499172463752393797576312020892523612361740294804757702673314031471363002479735744282055602314113082270030970619904242404825232396226427626072853369269441173261701653599439979110353157169165718741148296263762637081309137745469908833286123504484737720449876879465108263390626364807841547102446890694548967179713315846206609192776492807502426533845609657574130359800051870007310226781359165987245764780312949867255412171278302391964658590970421128499980641217773632264236858189359908600326307314003957489656187567027972028222639441584443960969392124896002282644479862816999581971508933820575348658983493495467378018518906930628388521379751861792800595642307285818976317063683208566865725970512183028321533763497829577639866872344181822680155824334269763504545336999442469584598623180971116096407778332605142533017727689481696254898916638909016572246801125653156333839342437332994840410724310105177700924219129137154664022886460988477320827981768818406679540279294780660758919411133140206732714840993429770006706131601848239333532773491107111233340002872988553988810116844699986418557230486780692899623740056694824062129020688750461993488069606659186716038673690838766611726210630435587990143106890720706111655664706837927342821287781712640656604688069701566967920969107888536496852877878643531631694300180994462993585348737808085952994238414814000675930586713591426875501087110597471502682750893942603133661779411054193860577930138908571167257066733077832584946483611775387982117412932696235711151604945337815353607881993791381226475459214897805032845643040802988976678518111913692022473541114040991839939338613021919168592360495667734259140216085089315226985295846474770403513346899467227509554264410664909983983010915207805455025390954770815980948581072193922509029676691702046853318511890167669202595478626508738227383235220988534017186329798608377512641803578706065613936350574619508411630815295109822632750332025753981242390598196854956182682510964776106205953353939702007749603810629418363641456270261667239027464068485247036338463889160384259865490609454315869983829221393154330034520689226629427018861355425236983654637295635205632192920992433255755652821543498858044160391994389427913101354199487349365144909356846107045979441798148338464634213823756984370904339201088069769097641809526379365559214312304364284775919989995526505731526586989659384324775497597557832187201886823308199208910957090115753899990175628109248999484613172096721306090986971986110668712667906294618342081400197285402258825057336682558794052136588298390826636266725178598148438287387070156790691423870324068725218086879083456048981090515657616094018329502203659512303647706156700846427240925754298335514405559260588241099287814377036924139969944701751432351068555327116147117097887792463866622729709006672243067807577670835925254927507802528497393001394676963880745105367424809296445435653353143112210351609322831067279074790924704917402204928525957000645659658837530810259580619296790585242522640893161854535127956814430479795533135046601758577418366844661531359360634287877827842758707427522136567234193689833201804368594361486338932727261946995063558959728205524527322523306287799852881999257555536918904121808048367762931964531580948896819089288207913037776904851456140944547296808400506808538208124597242851709402988704748239517033845489253144702423167984200352949332834522910121758471709138038575414490917585378546682549973167293382078346119968954898394173366554071899551423178737524298403812576060366891739565222888776506768265515274359738265628099334535933723587355227840684530705493066821601447728306053373531415977609170887734306984125207567435550527542379283783773609462381203898684433800625683008824780191000397307257204983792557559354258180186837131358050345865038937628970930615172124567472110358120263864916778072972233991011393178127217762907100348989896082528071693848280653829516321161975607050224100671403866059920907314096758989933085222472850944345346408673243677674846883010201752542217306060449722538662698365428704526197683091986563292637464690260994276272940452188490746268191540749102697869933798573495033753675684634405003118969351294072122564277912812105354560321718430890664483677069566380029880981651113940927480277475094143170279163599392439516466665639789445423378163771208160799369229350554777739191098781109129076037079271827425867404453586083193053508655974356246181997620379497599188292879354098046508201459035189228383235436303501498757201463025489077160071653174604165243658384358411712045464813343319688755420213660727519026649465649104919876336030508014782233514190956022346843301969382688594677026646739455062375723497716666995499321051896865457614725053518310594606813071530556193591314358792749881591687759420915138984932555183016141005103075839424309366583754619056158208251729730697887663561997440830952308539379699036497002059555707786909174789441211747707759890962877560092861032914281697146415881299468194805434781059193044098431361173095681011778344309827318389845913422094117619696952107750654545955100465148362547101114168196734408567013215977384909760828205237668980332361359444458454228193592016987922965127361594455644097827462928535821437118962516959365677795005356314754378114277518151592410624564549885205521562666344137433806913029095215576067952919737016760762539200541972560196646063731788946020694844622333060767700657300570614952606545256415306275527186074401488139528670001691862068042875845707165972706525883314238896417792934463907506846391441612629186103315411542412724852949901148393153270718680211156919897142421559440617461566184236517003304765951173271109086566537250005039498383941673313162222648586403643867978744883218813736395367813419937519152623642519966948621231940813317987470969596487156476282282980654918068628231761784680090884794193492956275816006983762355607321413477099338061791154861351997137386090120113522334370574075159475089749824939495385705830550896403050924525276705485514513016724565007177311451582464888486703958623592836820384444197909018227568805040098515260603247584352853967634865042052140541265505312977882018256856991273817722008100581905490690713186778357195812196654427651105217459308468895670473517809411121329283533487480207045562257996306757042984806077185409041037139761547472720211608442069803471094429989386143436064164253205984519610974627773798133356371790417150366354121792838107262750938139355808142556587925704995992087622780509874139003857260935687679869813653164624404457550408515194631423817795261630005801348072007404756911781892874583493050055065986581315947013701726584801945535836718150870895792281769620919406056810638834058650285504046344319548031514690121166948829538721270711672048284501873191826504048071752775621389871691510849700193444151926640465741696132518859832480100549700388297642626463426068306352790152630268616644543064231844012708892761961177006572808121467157641703265778365466148366524184819902118509481353585813130123411484706746600889680080422698878302185897784756187857227767369562504612942609943258556692212571498414650265142878570994339792313529200016048340405677458625463139170121400477850243425613219647275365584994883699321618120069007638558629446004546996962578480843563685480256602983145746174963433848585286361399652858720797719898869771861999926746123718454581489808395677628652428108532361965007539325993634345929405736585823737107766685986556161416613959989340242284170970293182586237848866952550587693983174645757619570059183274162504461358767128910282599466980711263088586591561391143707021478932811912788235031033108223555580861604666584339305078771662959636162972129264575313147689755303426798168318061195935862395001925139232114810744087543696085628217152267146053423421179885170203214956473277458845797498544043257917980380252787977540759853071389763494375068933098229713922393116685057887498466034070753935062154799679182056087482239016078148583914876555835979140012361332766766921150586875999522322826940208701873857582884198349572028522726000206557867464338541364424222322712273457650543133305102810525690972310430688084865116500721083156523228901281018744048167060638136907930450801517527329064635155777921818734548692043148400557168924711700297727275492645622741879831336253391646423318881469744325450308027155964040912489448863811371043108567970972738009264169044064042887129356665665376466457619888063233735115055167481027336674274823614654665771210707552396372023003753958978064347861628324632694232210552527712530296711038325341876247614684968364927851108241870646539052887047765729672536089148625131785472979702685731394374507873642040283975359317101280952210021563326063023153974745435495237707140253405096269442379837499527350244888314436414982286626782537799296194010952187093648122532193268043055602424102029899998467225294612081574579424331220332809901499685140377340645521720390535173144872663676669249886552313888091066185126237135470759630478905268026210433195686312236897500751700843451574518826667177486891494037793995629411609719084625177498390085221435747329131121665351691703969778102826034986057532223575227864722661442581892836824464438687361284133426230037154061188492478862515254462524901553345904969199288799090961869192053632727844966891544711690042611951159033948318545279655461905439978739155427320662430985937598700663120422154767135313010763544478616499046685417441523719596998644643145687945436103568846990953647348755990428568393958618563926725219484451374446279285570877938097022673538888782138867326656268630429833737638836899918021187432920664318257965049845600263195351373271784360522708546615068033666568890917010911009269790648039148375271557264814164073668192491122755921373882147519155705772141468390065319350347552591719739093049846626062257560622834613820828827455762968140414142421287998612624373494745585261385950518167555417915671831656681175790175386171502382981801091840378806577571970759048554459891041727391579237085664452382665597731992990246504308720962128828732282431365967070725809078054513489059573258874727345752876981271130663630540523528279604196336425445658991550648117210335564046296303493036288324402379418262945770183185995377565320722958969241418019279600075482994591100212146131864609215432874945768482733482282810508949406444436530391833507775578733454429904340973653616728640186158468985386535542693004315223685028888537481374727364237058205047138312794318905169179157649485492307176763269189785898767205276207871552245910473301814428253808112118724247327185958834906637540728395519294366069954219613723530915451379222140545426820064472818121327317543328131017114637038273681502629714088034478798897159868169676050211194593075628126671017414899732857544728000822369193243550292536396270341146626464597501758270491242335862259478977686500961683709614430619597895753153570757633189566216195117558425961082469731669230437653529829226057341342703310448831263098068659966521153471504855923164789357736380764847099824767437521319342599644100374681630352587977739581671814294623239681424642496988034105881625649464183740698691249859460894800188138589026313240511022282438831140879448333083234388042436004395975295885208832111028447526406009791517022534848401357723481327359122734079933920215469130472077418138097610290875562356250844929241361686988141686130965364053999349879162066264784990543378125206226343847554062271505440741788986459843407756101906593256015082314271269629240217466796184748682445348856862659864942833516476855121968862546638650325138099793555498772226379870362667287281603559358955909053738200524073976527405340095844674162833269256717426783762671904617758984554785736166484064849350939018227203333796464964967973421814548335058854195418911094553943876738113261442870838963022557176674815814330071127379168285572858935303549913354344167393683392020572678481830656634172527860977813336196855881032150760556629590075545271233957364577260542925850710513769138183509035773744095728169447607097512812805142355727846042237205877517019003342822267444578276416883758619917930280606293138989770432924050154872389490163857864454307962439682819279939809477825543911638751356260402931774704002487717157135435826160751169283797422239970872770861869841820727945214709576307368253362441421908939012229304598927471939246411602942491077157558064583372963364147521742853177191649995209438732694895716586395544963808049154677228725478541392607137562224095658419598516502137792631140038196013053827473152849983268727217064680008534097248621310164049220981827073258415720737288184291201265927423138797585150230184289814140014923088916370118967686050148384587923841807765452885056204923126864333636303019968427365292059113096115833861549069962832452231381944900800439945104143584789357362416282327220010889120559217512560869520293810823930008094135801971366770696486002430043410409689322663783954436270205831893799727485108350962706216881919238908244409122019187272910059448064005983192799331309747895087812551193119619772917416003153092213980659364894521175300623987188073991361718464592046483116854259001989544308541624178340621653705095378639817629125061834125307619290403401701591530629746607096219965389704895853862295898414630011719785163192340475635326372214650030593726455489680946857093761234024397263775019000389921636749806662468977196597202573633738224550901633634279485606927199130386146616649831988825956012620297098344326319957722105736742127613396216143649282814817363180089831557363604685099771880345979017367475664904802941329049100939135141743451570347171314959939685609446608684866515700542217157307005150726384548398600058805041110220397323398538768219258303944252133206317861548922815901838967332096433419659986980793787469331695078176679057125986043695794747405093122407745702306341948854070790394754923908229582587764005031781751959503276063808193351095282952544279679961558359932391180186992194830838946500320768284117643939883833221508629848271394734121694264039500008434488271199355776527439700253745708924955596732908011129952927718806593149107791547924258988573374248385760984400296108066248352940341014981932975048321730781690869027202165689133407247202220204778424675453137753167728417144850238920100071181988803166984853616735783059274544815406305623145981016197334706252152255731769522392488942987988809164155759305470867651724329242585740497526447225522405901968022529500816456771961685247589120755952625472643072827475743511823714316854556100046816352521105003825402016389415413834077277806981364643016281081934080214550612900605755967920199424697261484612980075587594893714187989102313357155262981884545438085011227707624618150267869793759863008097234088980647367708491827859995580015242474653864667729721402824697290223008649151933650145251412014373089918677419162836124311460643318230611963020236419802992933387824073445195022898437501935988170858855397714130701808354422365533536875588275393130609555799496462874674038547110345092692043795631076263035738133970562753053102590918889570078653579868033668800398282858870149358357554262285874717516065104248400804312778777053882606943966607398117223379567502804565453048252382873757034615076217570433430025922218195438872745110427623196633626905837457098619743088252491487444337346876540879405564643851082157125839867881707466102983478000313137932997606371183727988758589820942564036055039062326127438615222221292620700063936765741229645107288712697786072994354982528802565454294701401435786563411007269099447650483905838396719265132300022755273940649643516604176895393596148345779537892532241319465385824381062165120299684239116362741614796654403905426203146448506475709100930234871065158005215447200936779599514811550371387536503353338160129223370992947238917469737820535023141833092248269139254221019452107300224298214930747625585783869402299731955701574973689024066862228019153354183393357471680311255802700695694670559870278085501399641360328458700404153745808252775533848915939958125679838388083343020310845228746143600549281527113094225700361055445322634788500811531277899554678308249846502506354837507111939313425986482273787415691056696689388874244764984564033402162160577068959408678756817711522282696581948366253939599262672368603407434794302414751334262982034527328805422349135953647012424495208192689140187958943508746116173373378688009439359660929045670114155048010969119372902625474110965693041857970613270716130256626959973562265752137510565851588569564625804313653963425107629172786815741039171652641523154011380014642358832625476199248388496769762882823864439252330540170862139084751906499575682504041422551754555589184056071800938795605147848892732380711509254790328615390888001004889730364931523236108173479754318334022739338443213528680166696433271591561735235635262812914396810319564662513767556772141907364214597716677679477887444768000926458040315214512841680798876053026940183678174054150640332918709407502889336969642353021161775307224908196783048198176489424212604437527212556669344243577871344768871110000725378810392551931982828711042882450096846038222100430895425135555835470798257504399345452742752698575869449468152255724677406382237939893652198813381727836300650227398793370827235267101955824176195715834879266153085771708436092707934389090391176597948048175306960250376713378473836983993673125835981600116868829853415883417212242669845234946261806179713798454526861359047847990593791324048782412347143709934936065327495099776694147822063239477466883188757300371361350446972103256462277277085455620650042638064355345910084904148402112843028705366119914881321550777957966933352539691410706253029381810106866954233386384703289412417173060445339722580515228259694833644295543543385075124264352526232045517463780216825012028180232446804923888395442992882347523199107570671149390632129740589825281655094894229439177758391304638747152312547808365594767019018915211936153973612267720780280325448078045742038587856781405482205541605309864160121932850046257010986087156251659233272740384676900697390281592458959308722133984117520557269865964449721082276026000505110905328220635078363223638480853636673659789427868225244094545800239824435129975260770242854437467167391340525593077792867554395833857567307310526950057518571802809467160865138610848654533005457806889932512111685669626777760160230988770821143867952603205047416794999097109730885629480837565871238487996584993935649409381243259738213757318535304833115640362273699420534874912785851931773376657606131093734666775016913281806981995073245432039115044947783327904667046675991419426174671692803712427355816400974684018615457549881267240623619913573117257072143288302823867438102436507215658004151704761255793538648314429223712342839149570843028961433122267059220214086486470905674752751240827107260871667838328225477493483187988461494331434751152390256970434334963936613110041331185560817100372543728307692092567383643833744407849825346147548375620389970537174967483569319504579564227356708785176395219454416887538489805265693042162958211762790107054409768216005630249074430817208898257030552366035623875054749834850410993543333888658385740620723742960050210279621276340446199820128198723805637609129033242981315873118694231465056198275400357134676946112740377376417681205511708224140963592536749720380371996626653190632213244391268959818797018391257392041153693899015567459874254806665654716513337231795566779432771511438020212140844962538089329136796512768854181466119198511914529510203816267898883182700374129877817934418853694141796635717437515245892251056624951721433161745923283991443353198461523289237944702001017585805180266785497589839253287657119542852139419551688200155745861825257640652135687451532279094243218274936164970828775710334160769374692937952758140970079452875391242009051635931863292483276259271161090030400852196673458833778381915057418929162283838241501944204595675724902215771903156797556087392511013521463644216071604308578607981546291721956439418531992063258293094561691895030466881652293211582680511368460211506881096618301868171771212860178252912742043870816831076030505754595535223790357293262512536317426363252077022068940495992789598264731218797383877350380569052034509689431598321318311159556209956786563149891344377864781458208378636075238445976467761493437347669650264478392318075880939524074525725976004416388803533144896996915418613764531065665356760504035842864044381251930680235129104371761086128096996054358010070204954035729581966890579285865665529935311917406661727103584439298963327565455399934219099783369389212063296555413019859852024873053167770752232131961705153365374915338888088044360519648810995976139516212878140846933117821105862876683433138547971031897918020496817329859915684904497422771790375973223003625089500853266939080037620957297516047247037159516279295215932921037342237173946670687103170574734205295552139983138131118424330795277062621978936945270944035658183535614766827680464570416767111955856062635425312515793133762170153442121708221971020754361581208176392546012392863500496334920795347132104346262838641846758433070224987074528303957555180109162078522944064707478492189596951244808407630415607152043366469521477056459596047803405721380868614815717210405926424255800662362724163700055782423473771569255530020745988503575151716979315865822393213863170950621078355451969746044288197368439151700204890924419927572678105097955732428893910259571539602792506097356872438533572784382252501120649499710497287718718708533081579237011510195694071697557729239573278357090109799049809458500914943629550619909900295945492791443808276574475664128478750758483518868036497447788543983441766401296253467100521176144252539874519730719593552417164875658552256843294998059046477836766588358714777872787050132263056817954561847407578622826915464248301868451977182526863536389512327891641112184375758475500554713427462833012949136698310058986894495719681479272591032982956411371884673699899210698627635929692550150191880549490961604061889796801062719037201512641933627296062522057641295587751827273014675796207751517293557526813652003990511844802386487528071694065153128676097414457146983491328961652260290154883172131308295181305242021573354080907407266121799655073163113031546096623809493822220673051238654067909794534169931777159934861969872407890148068271357040357320152256433951333516307389439689056298201113662875507116821938509781578220410579084227914809003737671532704934258166324787028570546110135539494358411282441672641403959485470966193388300280514738729605869412720779692118323088042346786683493526219912194960259321783795786686142494666362752306147007048072724910712713487156165794356257127678431062403240684766202599475979824697990063397263591425078084163449590014584963795768002301714741661431404832669677517010919942448964808990367409175073359857156861223127197658853947226301546354635439708810222312325394806785878509460015416132275759708074931041044220336620804312648406800890252668088785321667612428658873505731573703689052352311582262432633423161374123460937461889235810719234917423780812503640384937878786592717114970693628248143698393146859120743971960405195102397220300876312431367066535901656768997444696756688382265153869354111314250840664884898376224397378473312170097408462235097064422986294745361148597754936407984055859666124755387680439462126350179692600502207022907294397781392378922595255182281541769822406858774290311767504834798986933259218990229856791069679586116758033178799873965476317477849989495494185823424805887002249621469628097969429098641420877802652448042166157504451971940849711642041124907756624731202294412213285333587385590393740761764043066557539595654562246564536557357106371383957828873934032118567616598352305179902574677592366522608179657780427120274655092883098117732655752541177180979525548687811076889570694405750313686893236241317613237584151885553417915036893437460668336389692316961686260095167278855427717680309179033400660047859337980967203150136573150225016900130264186608628311253217859323523917374632133369926050695500554305990271149060898933239255574776975314979058503325638623085279875329125680667069937716182735880979692078979147420164526920195186834231418054179197223474730836466553666532856945475095859549781833757506757373737883819615088096595812180814225391600569465514451954690664302109226474173074110620359647373379263788303965863426404350726680002223423858479676432311696227475584231173650127405011221372407716761795594717110233316307254480602626314844462201242796258736011037347706186463290902625162556651846977303470249704597233792083828521642779627010110354818474610355383493106165286762391475228440947009799291422522960915090055824017681783179283376323748548164589586675588064973391472038405572421691802598289539141632049010958693085249544579764222240454884436662850275298092974145035261446773478673916379620257952349524601509693178644433592324626047826254796052359998894507873170303044691318157483389698837775163847345609203482509661145708339818115381047111655627508508686314569727835720579916761310426914545933678450834823129524990141347286367885936767089509286721261098054963656115592894153295189343452908224093927692728861259149899719904472569316024971770325765829764805039152372402927992931392742915491251543405381573525691594829366553201726070895638059117768924477290045112710809635722392791832851916736396592146290201115429894603864110840806439551770797511433904439631210901294728606076573285134591876622498126673635028118838136395012916489859875135898566319335740457909023918552500937668808838495861338697634548843548522185885227962895734501914280897808435360568509361160308155168263520427939958941159387818130341129121646330475671996607607621675505422756164487446111902039079398745379427367223426288616930037058017080402548478710399839367277915961968363421301506809822169024299854261442386932331121820343262393009532420273627349232918452908699859375240836260043933029620928663300455857970893895612014528431548975919201393449025158247393127271097740041512194587974873005267172568718467782743866138231382971746059145991139704891075464871861671151744012845264940057580436888429448125240071844624368607269550073370530469671320692881521331119792864113710143720551731497265559470257684333279424421814693922256270636359753194627232135471521513683940156076491072779038119094282440760622808069528516175856725111336163614467280396095771049729668065646277477793143777181394628392941373575693544659119212399365010721186768377580330574467607004703879016426091137604474772099289259716644000315622903490178211067637335955123041917705802847122169416702160042810169987204932439144347746760533787764905033245368006678768729457730609304962449334529639435783655450978619522393290153632036644207698525711342904972612330589419565965182398530853793846227828340552577042208445008429455548894550961609971509873470068873349004074531330002045989548059761977958318297214722949674994017497799926792050480724475669061787653148355745801388057962140666920688459367583311771340081199172745318742365160252967689054925358981921884239431562784082565945593776593609356096045073843207662627135674966993626427329101837627846476815433950347245306238463415523121178001795576021038625954113247953266985086206957322414370970829131859139042585074707758539749797782040991588968054701349289967799236618450854642450177186682241745378709468771683978571473879098078032075832865368025354867852129918534524270174649084328401659167739297556078080290236951062304404650392760328226148846669101077746662934111189125830410044312077980759365819075241845849435610079548013874072212572180319963314804631322077483544901496099842297554144593591465138903495914928764034316471176909317361691525278493355083324939859531081648014765561085299583156291158589930789902514047357155567450071946824295480764280877569790742794280222644154858187353658697680799922883792576147194803377008401281235462108288237640174051628073318598378058459380561331223999971897648404315128523714837484164456635745689832352377023627760317546073878463896342749691201922942164235420778584839126491246545693318816112529359433672343013281493187535018130091844542729175563701458213967131914686997824795704510902858670556881160901450439359021994745390183297838616057309733676033319449543933664343650612286906624355910562937658312119629502670639423288569115102694492138074828915968557096533056456518180531521043506312219710809092769727855846415912404091899150149541069123625648295053913559818938797235878767686752350294365974149281356810618319977677537071010304955309754142690718252412467723112129127547165513854191760797378536487203539815754230043022804829800903769632030084105840407554847158343507744759395205272198005420283270528252066582311786785652319370737120448116203431935822328777435797062585721867321834050740607894234664064771531517982684735547092607086751558239553400230246802599643049901841623110561853266125677915465495345433419641012253301707616811473297600664773163473760731368082297757449536755448647521616418299685272994540970993719708878709931418817702990359176702736774026863079551455800814649011194181922140221166509064515613426269412586814941049449592605417883084539582071139802848769692608430175331629232214799145349576224185322460828910915156226899132638240792527625228502377001560657735177643944042880778609298930888230246864564881967724019635446673208838346309927873278717934727668467702819009753601108356589546478841407641024807150176399503642093637863746848467601452217324295272480101490875260146373522334276769956677035175404196081604019862871988376456817964135570409013673879269168531448559293349419422839822173578246944563284355822036583617280921583114526292579852223475317234660476385989755612315317883953121513256039895591812791578109822707889042704455890189014729726254225698389322310611644998727236978041138705838941572645490882141636513180997300115286275646566082318212224567910728426271034926289445972478671953157582758065546212555515602838802658068543073997838611424698949228673977385586527786739878549596211178713539785268310842333460570465623547267670960668559047010398117891908824624464995669062645326319352897502623398751102979995030306328430519904537915868049421136322452959002762854260735868131453440861080724454429873926137605221317925461173169945407527754897554957939854646198119428398949971478541278407435024484096323788144242628474314517926742325895486712631300147364243021952479986768422858421132194703455034619183462500639797934808064415566813640097621598739814319749391113911580800483550383403366368946365437871805122099912705523900942078966422657372125430017249678862831800701477326449067194175163588992608488173428171066792599265222451157037651945681717054274741165204417063926826079924197639127402109398100034061220037482216394617138586201832822887281577290468287217950626843633095928171044807362993337701230317330910676978246702066843417730337245057615738320871080603671506698777437280889057598109340177510995818448486107301287789180536413739294844044084990396659670742106655443733908104036435939451546628535342969279875271620646258302521750504465432958050958176093605103633450948712695193474617252079725481815129609746257282116458353420315559336444157296794540974916812565879669873560368024653419918459373928654312130427877420580147334029046853553162857592208766760879066334456200046977136173193063510304821145845793966255744612501627833576842099892537273615368178063709883422172875294924399160809522172513542456650634361661185126890538699910958006450917868905780320087327191083628096614175335965495125511853736648176607296709099527795890074235652599059791367097097207419938905569328020072225378706908356290428263959978959921677977459773575655800303112832653288787746846462945018326029925526430526041073968062521551749302048332875207990114617503917600395275723202799147098551084924464912134276088610185415802603801921913156691375638611528290998712189198208652665674415640800981541689649935329055632272049003626754509658227368376136142903792962066964580653386857683416813161046631534740476706534637435014365697599444889946137498319964443708160047873089386555528829485751901062258495642878504560954284834147910615376882706404548830756870120830733562788405825864402684625175751572066325081273085342989368458089494629402623357338140967091354940638687113000595326587473775654021852257985359732983908833550150081948293665682520892223246015305143331840572565158479250912183896026153603246424462169446269325747741748643837940616512675905067068930264438196424327031777128271812994244427847576971535563980423608784114173604354544771095489613179195296422145505217280531493430922377694574845264889593258022042929857301104486479101343474111823564541654809216864084930103129593833201201102419032561904134099729220801365005180456380528922972339712342789098728845772367948905378744564401724585025193592107076444820796253289137539093377269415278670601696175333851228241432712512094498956969335148574248829384034464945819298275526834249632867870556576296787741803117581266985703536628819943415148607732397254482161919352627188304519884249999001081542168837261170519665079773629761139057899350672829279129958727524813623058691224068020043481548710623515317282403762379198914686951742295898014569375527470265712539546579590380701457962240282870715233034054711491447842297341118367622828542410470743059858319987624501418391023375089928261800649407101424156815793978665612349460042888373134810243688229213148778825529920148228654224983019893551469209848573824690854842936608565656724634078038375807124757234314370745943164634774288356128748652468691856954199294216354755867144582917708080108733258381425327592245160587464512526138506534849373022853822105403428169231176620245355736452500277366855309319473214213275654636149905681711584267244418175834419454844696284387942413668567994501817363704280413992716211760316161257587010098316145016045662534175157955367450641132380427829726647370257386435783083635616088630999773954957791619888054940709385331807177298091622268706345491175886088118730610850537596344605845736144137690693386933569444625949751620745316815296056423785222081526903005250458135445549218793695688792477532497002929189274384231524689246859003759398390774071767403041710979650966342882224722160570436183392573341566253857186025286404144332843086369031497891602824701057028887631482596405105899284916802506077530160194379372196773015130936513368371381039442136054254303324678371274923358363916512988233448900487604854551938965765518476207998144505341981051846414360035918771824183300886456451302564274710741771811251457257671792130485167348656304451752566057060836777871562960416136292608446106305845055102923870874553378829254070654273549859046080379142405287986766566474609230319305265376420188229059993344768424451153699750089182610603231662713402146556785737699203516100011665704118255201351564568654326537915197180492264644407439824294927205413041009546477929625890770449483300723462367942599180472647573426925942270779940300495625981291461699897631318007478986533470753607394098377785350282722704456239385988622436627367474683513297493072686504707358166390122531312190711825880579503500405385985814355436076145144926931945573985098607516948857734951602556441796662418658729213039999150118741620199637314822507915887776561949233153318086259248863059128404181213260685711403678210378053411303724994712490010981223599315264721420676535508523101522307592740521773885706636035461546277347790108092475825891864861565575077683840244166741690287566034638902052982548034974117462864818729514104082614171965497635720337986672598064538796531827699902920747488430541066193379587191746330604341483105369326707159326972572275334653111084551210815316506878388953870346141391975890130724614142290487238053271715782205492309717445851062713140589169275015238035166998199973205995418780881679242819624893123881107468127086061757046679504942961610297159289037171577719008794931756089103839078804539153444536195731382798095252442260077989306207851983643367128950471359927786234336154983728616753624380506998903931268492118674614689861202753649092134320516392043673864562344320238382718602801145159685922750944117665507971312132659181984531098258317584464243132970337857332976891238446764018039270717974402052784923379444953495150661448315869281725304716541720347507168412342883953155115146335160442629187907208929430494148425574759020948913672229725749377442941936702134550346254303823874577546378273549470875452745789553380813571096702053643558391075815874772325517668443155744697997733985099002877014526993262209744797812395816562120310567854376123844344408121557492234960763995939592027920854812049665577779988307928888101357124240816108862470767136855881608489704094452981742225772418754132471202494676124483579601183825542390629652878755134641990313507393828617394672406961357860112134033155162209083303964250620050239690943492506951804041982320966155006641675891437616386906099098841628967132310934696110131142538994909649836744230134048687079324524133134976211698462830454078565496563907249226445230793837237815271485124589663207895319030853971326136396802236152680040817937017870753769565281164173868499218303993569882583814673062824920909082984286319302824622136438998584691598291984312207319668851105089273514067481827135784671817580419339839516560949506384694506033601181160068799444583368758028616255360795075717869450254514732069721051532172726108097329996812435854066265337397890952423759818111505942561690357429322927187331839205236997185499480877463419854744849910650740121315047095623911834606804017207593402790681571775954358396733433742776653766815740067410408172292631909937921502863945423124156017640421414511792317710268825474114140223239756033043321497183422669666605900317385977057409112175227109049098150181362999654797350399666543447731534521167671864961664572929113350454689510077727902820565714376550722877684843889667407767310070232700968205016857602398498358901124669217397213245350499418835279616170748245610218382588909536968767937501125467398175495250575594268756990151384604716501291507875427496950152616841932043891030788976748729206493629650888306087049916318099334537237332969961008718120826011189094803034547236845555372365105916056272214048740567973527588808796887293778232868671689061660304800951682645005101746767241479491988366319194435625929609414379839744736260450495810642903091260425113272414887983045523102017882693801976355176493545287524958623876250500668428530659365528341231967265232282909756287743736167401800361227701167736017905710519750805974395674117754347053215675804162163300845808151401167138217317736443850975461598358862910742809051401823390683145781063554811954205424354041798547715003235114305762123754516461003115801339090804519266312595538643616497648294700058318832035273643451049622334809698332629128095005639921864053306964707108218142935090662200271985079925658213289477038544539877236168710736355393892215061551058903101107077913987568190989534682785004837003536728464033964135114201455442173343596392066303508938532475171630096447335078662812589570786547561941928283698675555073083844420812634703246522364046164142707985854529192886786702418716923457879577488808105977729053035704277635290466868807089278308264135051732404896972807139709956131384512484748205480459607498223300080937855471219004246197846728871658361121132388730587913478484962758656811940314791739646044175724932730859084194754684132869768336369942571190195576485493630675200142920327380812871279059650802773946865583498851356114730177919449256971730405220636114339696704233958191008108803550561222705669240891504095506258431427952964353080511173049199300658144641409301084689626008870269641561346803790152954517141420092608235360603863766892172672708223053244899620515277822590687559913007082601029169464068924110818755910863796539640325265318923202133706447348202295779520920756971788801280871933740447284845497151071724275922234470312472257547980671413439463522050905988552241047811929449184057110486899903174320531427407343140657815486872135672001580106765723063698642204072645864473486244377082067187087502414467835406126472659179939878440873292610016499518822576007904854939626796790209635096315686433244815979776269112885885082484462034458531167485812852906777051066496886218336522104572290346049947129713401258952145567940736218094874116052695764717913017900582199460175982439242193513173729212165168733810968875410866388381593050146401985248128300476568787996663433055292056152025580420404665452788029509429645000802083951626016520545478531212754725485396951322225679728656743275087971217060746381229292385980301310532179047103579762957438413677301703314206256869207269322468531594607533173764025477536722766300295345301820297279716636247750717803700460008380660009248519270217255303828138513031321502202944824048301124952152405592880165070279463937142955846196346290615108811024538455028638288914192034049218706423624514767590148723988769899366843684598410154986656899992846785921952626467057261452727426117278210579570782741684754356754503746812546704521393073143487904556665412834014572472223009972691004870424905074541026836704346481192125640872640507888185589484581043849703603344804850711654702853912778074049770471654784478247806974211591954724107123966044204568213608497528364163736297315230054350006237409151052559507141219739811053178655348274279518228356475815451339904599696694736368139988233449483097436564010222761760939775979326861464686654656060480615658552463530672733622830393239250958508625548247037422018104827104203701303418494779060440738928251508387030882860590808914510157465383786187622863854156794312250620021055456413694823118394215462070225069663742878518373482409758016690486824846231085945016318819793136387301152916360062082620189947551429220375485799204465306555719062514326950568797560858448682054783864275711343028563744688698380544166934355647935398729697031174585135107034691432938375653416187288487343549656753039137892474702038319690391640531975056929307566429423556130429164114290224564575278369166734162379663307180352541257441684148720806546571620082158325829662046499017652250749418808731088171837894234908250511431724137729119697394499230862887462792628103465607524051585737894288003634653206582420754214092144467192644055672693277805832251081670713597878187145401300240747266810615580568760703105596948811526646076944178178800380790852526190698108308902299151892076547221809335004952381291467289073877485563566980321816251389068928546870696696023669260737511200752723811255126020878694691631479956982539368992903848746791104755126295459741190002910952132942203760184174749455871948474704431459323847224370745099125124269710830731724185039894121767951233179194367689346093560039012405711788624759272163570694429900078072895712841068471294209414150828061221057080244697346058880957881005419815482531947841236518003378315855514210093393705550209138594879430116791635155123038674999901703868889043170858609772090249986066027172609201040105262687179274508315758506014743697553443893546942398929814624949768748029620362194326482950764362422032182595073605902115270609335679515106725308507040518664817456027050985386108192184449697797452690312198815367021741688609789403016624333725736538124631810781174951553158632061442730131488698859831558354592242209867626533845987561784584750402737051057548289761729458580870708886892025906975975390968176995782533721362481601496992700278973965439090306863841451809302456439901271963563170925523204310785625727230669151800314659390966003492025941560228140353727475660563857863323500640364088847417427389572558301341607355553826421398703542176622037908652678858643396579768245953651358035093473707194943354473743720933925646473138974170655311057997313379342617492525980389418086630490234425533955956257259894362316828734322049719048052090842865832347905804986726138011904656398198475109892047764209886904064264647738509534933736849434132785030039020337607667982954445806484779814713689582828467821484091995963458053613916334448982954699930482158858253880203901622380684260424223180148239744913176944356640440538849051189532873610319918805677088561915039200452209579389511967507218910941086326485540645603694292747714149808263933960293256656435224148072748120446166312415654157471544999974713686929446945234680550597826622971965245166016269512888892543422773542140528739632388934718214994747036998972504885862461525890273455297334500797116908788173783046940788431953135446171836487437284974643186484496520345724640271769513263786711396762217989826587331684561857530619163712799147897488126783053917510503994486066499139295625680938797672166312565255430557502841685983375418064004725209744552638387995448418908545862185525794866183251040812482538823145769551485399969096992358445314990939844254561533682084367906476325856976376239689454303637802443773698025370811663271303994600995339050289588356971472511354595372533771935375916637851077967518200611715769639659373508392321465397213231212568219020867653819518589121246161714734383950472205403274031935588251561315311293134559324449328836986719406270770872072600294898139766056111024559695653139343485763104925018478971474077335297635520592965063318817229269156873009157563824141010915846545986842312073229171370450142930387845101966110818184631352319092289849636393532560649030712918717951650610398089019377444717297385129326886230457323876089261174853485307844173584860323921005030750821583655401862647134732027597734712221121187867555375439373432763766604450225576451094870713850933175829662842663003752731188449445196961650667001374255002640355359738692424601407489162700044529307475187741289453706201862236256233478348477574984640986584435788663629400958374583384403093420519907991786424381258800780109053055676369657097521977627969266305742712276985179453390048212088865642895392367720161510043190179606331158522668574152509671129650950581486189539055649263141462183068256683053864833543992371202496825574298089899683791446923107347210311139915616315490918541284466792633901335287899605124014875411955392744906047811140825035006254438074631421117423899056412962225857511229922258928931248996901415432895122493877925344289474319749875826148035110675021181120912462630172001102706692893946661109003053160723080811609722757452413999546712399021165771667284410483908682203541706657239444946787551881726076324476314103784235784606471108987623615729266858552481970213086760914179374531072930893783393317998925506704212342886241317026276931608624198219769022744446699733032795385868341347966284814448753215179445100487603749417209168284143185504260552669227906737878789924469476309883147592807663349575811752338029115060600627178825736209928546145845440357824102340840898679418921239537126841756498545394260484010993558482830374831494888292921065499128062023479713339526525740127716258027321666341360415923012119671180715174857364365879816259782142617903816335993020230729260113113697085156955096840973593362962178376849574413547094139602491976334700805151224272313606347304452160220492967571626152926115211237482052832463601697355434245720669861298966997370920715939241978315642502406642535596251431108538777547258804039478351374920215301004122983843381202247215948589172672225948367240582986441486457792249183240249246100836053875160039758927887378132356277251776693433579854281404878085660239076591037097860519762717685545211458960874698064513048674703709562416402229469543856467840094092962876488330741651594053535805460460446823645440263951610138653478895690972455938915538301975916304078094890078017867366860128113555932250447071581648639987229268530582098060771483659211651724788661709310785152712378838958196097105475054716208617855882241144273548074478114610463082793767991515383682351148519688122249728553255142022807274224497265265311591597204330029664098521632692405346504523997296331937864369633780820099610037488987675543894137580625621517470482789906786034972944421354573345428890688730323016856909191239820719245556599661633301389250604694624036928280466040000686067124342202411270352075284495301519951540099588379816614487091592006395210143245673693146042712423593592674876489562358078741494853941754709444590228582461761312149676470816138775826992100382383346786357289605277612663952603944197271129655729030063504430400727929481187761436497989552386857294066032699732497931979381147643479955536758883606526593054124317916818929953012420421384325101211861592199835915408152165905475824613270728523636544763990437276681164817080688230158177362135839377325118167697317551627080166807401787054809100072455196049380349912373393475723101610668320574035231144674073445543058542701521361629516371100504471126294452102382257490212671029506264733134083782961152907457300118950801538506560046579494545727009629814463521798010720578986671198425694359939473642855330531996417164725987944753320077417894415130401762884833477068680216227675921389268147058389162518607515549871698235624621501351212950490776508392160594287174404230594110603462220103682854921238785177788809049832936776401100080612495867854285650601799743917119998999013593247590647221459380888607475191265050124746908419895359363790879263523747631975533085528022179356812169276679362649201013734588320390172674807475830074141326043233281267755264991635574311641722468323234378081705791601191123340908099477741781748787843614264197944092560704393840852431999627426819956992909722024063190972860104473190962622888174426949971545060203491447634706369599191643606745433520610091610933403116402454061912637072276457733097043771646587219489987182677260930170571524074834275679191377757214997581744096667099746222365076439286884234774113026884849596653494349658981457854354881663907434851262593076220694421313521313925820803972973716888016810741069021290431600118034857455279111365175876852533095738053611168802413814022670475222604968525302709150695700470865230843195118855127644192633383033931061872393827541986798028153209959466969689324739065546533434849885844504603067714954051336490124937568464917930696378275994751543868986012121294319897460787114870752408724657158427163683623576037322316217912999195289027297328086858245041801939312921241468146317800392311775927158314780168593145911046943920102364189509920010489580133962091075334800522152461982043177023115357635896822835970296552779470329616478782664431131542805587726354377315191473682057988656734017109860484683696459523257329489805473531289647604387246999108215336861236468867366464940161259800682862889383487415194575138933197414068249120408718870230132176920521789657778080344932898466806035482134350286482694238567305200742530541218398363298794693229816987402788501650801982745503841262140183239317721012663503222050966392642153998996980964715813057391132506058639715083441915652806561560446447678344529219503957833082720278253139093059333907329683209644826089727128981070208470139923247403612221741431253826170844510695301041266299762204173882685109371111191530652090496130260165208882632604893635430000870211691248118499568934360081067620726081853095201647698811546693242828942750793206520631195041310591593386858308794876020208957045362973298306185823013350208756778619369680050452164944069650312093031438168567400460275658652939630728370845806479705817151681191702624780140350486343909486400531104279618602853984838392664539934257222713333965224290925448342974621139286402636191490738937826534072675530640966643714597363819225332616636392569557086905583129649657383985759985102666341326603338650728320285293258875711675357409375870802674751666795691717934265470702747539186505513927204965560746693780850561470127036855386283119013013556830274622136432129317507240283111920112056549243788506874900177699065045797888891061229677955776468025391260477355455320576036571010666758112458133154204771095603927549223499231319491874875976913252201185341008933037819921395240226076729270656840203937334626706059776897441699155061635975327949995162977531564685455036449412304130903031667012107638857978106393683655326862644775850275088885659644602264089602245646341234501884027334722325658670073389475833899871857068449642811112027139720672847733469860318520012586629849004118197163020760614264653816431407491431025436139772985985284524018305136726979371686512786299271475752374918311701533074017270747079758139602948467712502893447905386589579187363830658182421164168821502726625971337522490370499919173430440038796388392174957130970376038163998675617593608979190417591402125232857186402779231979804407658499339251748261517722488811511155307624691382175313259881028911437824755548914141416730882534733444035051321670939981053191070123744002525928771072184969174370789052132235146679269607730082058873844669376614881341406885742822243714416793466649756381392404204612177044248013419301606905807131880276584585525598531782282073093924618825327436869543765451716119245425862058465510545115907570011545328440088664545707592413876879188888726667067353943643460402252270566401171217291292022015078482991124468228253805603897820928662460433380934115935283097024621067549530400281173874572761756469558958949503470016755309992806084775991526201839110003352628476788816717873175619002537430824184168604838556529705449817794182892110836299977599220628740580035501857886655586016414554807613469360041197136458118945827080892565092177767676966969371356502089118413264908687369884414494328777562491773027702594060521370501052842126802959449247605773344374549943042128006734206590130666127843637912594179961677238921034807039980634920096381694434590609472859768758063169604816985401662182617049726696894040539427363548238118340779975696786336291635833970008238644888050174954026911160254076621000634760956790509849617394527915093361983854492711831985156126841874047810695393295175766224643733751583645170857517072107579205556528003015594021584739450108630691320181426509333111178273115857473147438177539513366291497001023764374068095102692764724216062825748722438338661146119596418986955660464802889807278548017241699525839092413800354919186425603541970380515251580622720122824650714627170638178706025280058567463207514176890671302366004202572797082437040224930055925849426846535254775867979990474312198857117288741605087459726582968195372093183247663448960514163004530390803960674468723122927650813151149351248211045773965379490899956064767390315443139002989339505323124918689540006293189773996155557397852612346287558062159134578027303520163574135043407813473753333249949448081296814365505393228318393593949924877358976757533633269798830721465528415684194546360083148927125529105474630892376788913432739920835407586310535693733543728618903912344562480523877498153417411160428237601131598837171464171291621431882506116307632371534695898127300087824330435194694601097167827452436530027619410915588211823964073773204417710773803301282859368808506945364742093639914691146410780033366819400926211362737233509126390282586532009981053907689824365768687555258536329551985380711004080032385304281663572498324241211888995571691328263690619187635234841657040606463190233332299055468460600675629826001635341250933582651689281958493116085188115098675739630956958632955022112815629506252549009784790284376135736090034750155629178965223363013135125197460411347345996853121894636366113198458900624469900801967837691494956752588250511990103371918284890235914060907869192772942728205037295188973099729210044247794336900958278621483858704876088494756352397421096542832299163619602019016891636684559288652342553390223760537582622603378922257734916380781905797205078166295615170011605923954616613030421701116502651302921523410319839399134329790036335063826452881224421622240620371805992519467150732174036704850254631413963924926846290693634105467605550516972460186188128779029776760634685111558761742735244439055709239728086035724640984082337259843067308624824023998665866518234695147266351513376933779277900750342700724488544143815612006187001751189780385603779467631947853062660607728597222678485601628246043173287997685935653154199301300641739893940772708169318195157085229976906714118859744874816835882268902518764580889331630746184472600096126770428183678590345756807612713010750719093356482788755283441510856980361360693005503904075148852270606442509498311982606111744647459714043158582782309060386397895244704184837911669974407646148285200439871378168690128706302186077181998341861221654126196929691963539417679697186601114324920335857212014703139763076058368018457212512726871164902816443549595325098651214243407040719378213771500448919984945557736582620770705058177702456801538771646701577432294779199770262897450472837448666575593028659353343521011328865134564123066672617194035939260279129559033375267752480337847661121271345847228237558432567566367387042015212151361718941952733858726136890758839127128057036115755621458115116472695334980116288860551929721212114278646274782258781317723249013857711597764253359859417223453726002012440498222826702460824406155585148294862426518788614065733426554556710152463599008480725273720914767791091478854448525857086686848210316679794086975476467716989802707612780642552402740734465742849275142572379171834074948331697142587656666508103464983954987062697486971329759885870668060572352172616299693313754118568101606780163747163741695289053667498203262689071403824428727583014732187289691651602734724381170250002087113611601582040074738372754181150231930140999125996360717467970120991960000115823526889449839463238322732677970137703417294679593067502449693223070099812243317220684755529486696453859300688835919763648670620435434685167815616729000588268620649432913628787053655669097576931414695746234339013343349761666170814999954533279004040544920630808457996807850446239681636408692307845014630160391372191322882900080059977184204046941473619102058742811468754364155888859622131288566407760187745523115467462188338241544271392955735311786059119164039650575385370134295964710765126081720044280243433617309776314641593893001370063526753032450955602843342302285817264930900240748689922138021481720173255579465218774349699214296404075936693644961598075674029267506465081363557572251428496863367937311019649043567664908997606450970232257862859374548475306936327050153812617289084189271920755320861041127939125643466288669781742597898342499489009753403096671202669953748667474166666628052459028102953576387396522014906771702090532603873768738468437531023679718250279673720841348943042850011474847059720053173054426544528225005370928419636036810463585462428452709641113240812976184237214414592394766709737873038729511098925333324850985025459338317468029721748175210495673436764168292135606025262802618133133361663277628276485549220399953455034168852701917341151714608374693021196477138983907467171069067918701906708059127450796883193634761452512075950213430907204707211876532967715238830265282082975490663593468629130001070691211839506394051091717343636880049917489184559335649142471336051695207236831792926926205694155963823003723187693541764447720027206214810908886644368674250975338726180965055954368187766058007527781477304754899657358781053743816119604302834742666171825299452784739006728996765152720718282246029691027964014824224862599949419772844162906207118464708715494914342045776121057134966754706721480634639405850846293055910899449357968875812895429576333661130468483589016220952384531758424099742919714201919743961387800201950647834618978242913791137910173310823462493534832880313096950737002588288428552921711991393206912988956993374592001130621026468331623289355266828913844504381463777037486873568929233152862503410589601919075972461829433266488383501851989222932583451147405127769283042037016184659724124493487599655943000265661889078266240787815601782388920757269117519620080375170215377098840246861802082459209767111064355776937237434321791877133869597411709675865206382889090692547019785176709212063037127606529813806191588261735368156996813359907558236129474439039041196053810833391611321512162584049687159021518485102424058194834228618311042725624233180432171780293926147855153349774431735868906862624157158267853568235717542024000572074372411888110845642177179891649294352944228522318793362223829343674187133670100178786436521287945203129744357597069086536183059016986133343275145547346438070263663857935864861109778555232687362725654725769429552505961540927194265018637337844209662368822800064230953502197589641008298791829422512546870313985347237408894743167451891053658639018093754708184461906856553175411331976433179301048226006287211027740677683343401889918222188503290186816673578212251394892226664826030491609245558579289482138337025085763198241778157436912602692209459149701281406941952864359946068150192513653035760363623480095597832503106422987424897143325343172392183705609951448930266882199954624779806616085426887130803992327795288604150163036716758964723372757809655310206316509430895835246636743044434464542694140093147003561805823098067492569461008847511697053450625972547093780917430381259048744681953397335382821826058824651398090550985832188876341276289836840308660720585615874144270003867953451168995367251037934554214510559227485177236340697695973896163390383726471922134550114706483242222682150668375179790812349804791113138050399108401691177552809178451810197920197135354337829065565656918631899033191836257999763230479949439156959976300094962415095289586628021384836494440037017495503927009989511894700490991947578650545773843523930441207147095478165590458993657855115620797495216702043884498068000084644001867783168908599415092087911922087916310861765486998541099704942394425296091971101186905498888566753696449288947062031397249188753380357041749759462665855948620987613744949240091208666900366468574773212249173580360799821622417877880177379612562130464632591291702057659227549877572504888311500999057348079713636169313437024532760796428904271529562501111078577117762748781227982231797063077555586490256813477547356013998664821017456059220844006577408712174135569042427461313109846252733283188713655667687436666851217253775261141007334405011123069850802086874742617028545472795370179356689660700317345578812638939361798371787120244373290607401629859191134232605688596378038958959302310664640787627117356930990575136224868399284095251656894071655524522263957229697994143075116198624167515158119326273549973082820422665814367296619944300685771092385809792902574865827493249091787548858481664204186017438973643991537477780323963905838729516905345815861229393194270012652784410685611945066620831631126188316659722817643850623325913180921460627139684720860590249840405017574890552024746381184458461552557407969552163271537191039542216984027796944692265966081105970160218877838884762925462916286568801850740258326041671699532367941690563992997212340765489077728219771267423706625954553719391733466444775849423005237611833854137718675400208987703189317996026931336676762280433379914014614017958297128271398512081430007916001176389492674624740045972514591883000972841903460308085460765086355971375628613250141612281028537914960687736140657596268585862595015114432497313680909288679254329584103722354426210799198876043282219229555969459114857264160355032212761187004848758942958709196003298657840291712691188203511333838543057637042404119369658537295812672143385813856138946116134599110902801584695191996589719587966355510778963963158887530405802940690926176806565812937055723420991540672332533034980547028844237712671930555399320417730152270795520496524372635266805934398911180707776284768473836457046849972452098191889384295638704440833880438751837239608500238225059176750309400427501732197237691660212061654609308899831522879719336503297417977944198842485591401754692426609698077076893347094367153462070131147118882362035610530558316902814986465768988940404730550089283821440088516085563191053442187766291817967335083155213479219531980469199495090947097950689974954018622374875007675633551684075539031292015575306854990460978222159628210136659526889729718971204123007554543366923811400765627855768575049980008084130629849991027139979745168870559188474520077525604745953189794031580925706788767554476452823648922631155876992266236838522180151389723728325540281634405249413204005798847488031241350451631091716915373772582027274421631928928567952544779350055760932528406359830241333306220495635755300837771436417650607769222423321156202905952676263627721933375909609452237145011405358836429943458903384267430130093226491994933851016797679472870935126735511467073121897017157210189541375195890018405133167682583121448027298397611155108082715471723529250948727540104609607819175360821571962339568333909687375422755868427537962298675794024112644616912911359290827123058792493479563583186311023150263138373262389414127525990747403445815108719571611296284169315585917897377809014999354810806598066328421135434578519829776970126298930380294008693596707364872448772865958318213982892871890036024849294423205582989436177903240699432283214628672022546021510596159374681338504598784634719066578265507401275912550045901949308998123320370299652074918298001904343471421149888594823511499697111296466410515091165783441565677803903495214877567231581789408206187458800568776587935606686464057832660091392623940324764119797958320228259647635447844890559560156924293603476460910187502525114671242135685707658989735215745453040482914977319823014607715464800501232096740111379367372649654617291406971659625225184255475953472413122411025211316462643340372641640470711259596603196854423571151036411110455153729119876039026284905826437037050968743490801601245935176001498871115570087609867353313005870556034852691128993253599231367558126826847258723990308340371345580309068577542922055022371117030539921436626983852605601782061552405880718832504471623885091008464688530789714422287489500525573963229433686476938761668485857713818992365285665301998180857102392408681329263198481539052734143685332058137541647993038137034488036222783983138470267676372371721812808932429774097484702767343647296555369855901619572933431164588610830047091823739972953583085662511410807124722638600144463210218827782577906977615218451178754019273523734282920856084633606356981690989014439943889227930468040971495721819756607531459264307533453197683910895182936693513028063475833452578428464011369371787162104301294755022952897586042894501005128355807045882327020821691522018533652727705831788750412140872048140201813443509803223329385975753508065152491833728144184112832121497699871292611126069284621835821516052231997906439024899341331470879409838386982082872013198615101630247321716542374938012626676207866771355732395547213400788530075137373390533405987291301356767966142154946610254806800256637036163684675630300527285616391283496808972628061122463735598421452899112443055412124084241207294015648405210725787959075102035546712621593581828638597623301013914985688630746696271680275719602948778050553549058929752649159954347552242053161424268263288146198402198394265036496102667069284343633349640276367406460112942373438137456969217255525887093930909065912121597706447073908393596116219600842367066117850225345214959546866815567431786288811994660755084658174066766336365902346620425046638784552606782203905202455221275896141165437991990331207883054072144892849995009602517388856723898813757149523079432417741255595649802938200920358808410785782559218660935290977792947292339382766043957285439092292411084400231936287992490057853465474232661229202415252152594910446686333196162552150177482190411574945126001259191858740927994817904169772826943103525165199455448939833389498219720881041665167755487614749845814860574408182547949467775558419807133478612881956488192245213996770117692034574210209644010188503531702972714192565058810687766421340073787914547227114345097507654724993644686508073463768162114856687151327070698441857796476531804084828754904220546737436384094121076386862619295390031715754416378543202570940953313002931206346511602513574005526395525055308908551065984264707119510224664059240483025150209259742461144013979182255459374439213899753090396259343733439707037716227038467459576707106030767776671191529935408267541092449970547173994847941347830598682807907415009866954123601695586081142700605025100202303922457443493891644301896477358474812662261235772075830413198616645794546807627727050038936263442808704593229867476997308956592198130651877993201797015592634498478869854757599224375308420638503774555763986426111830415699003460531410937807334079112979819641081211594958136825440316110470476593991756879398902503432235959208492740496241944911340286221148244432691314355992500737715078121539952327657061032029909770241185882183315696290434781502333161782809506457783605467042868786427948357526102411811120933795782252993926560339527840010760031895246564798561767832396993222184664712600612312797498839910666686336341194476051812943022338101596443424163798578227317031698026276481372531870110893204165739009370214832320558934256754184538279967952477289260553295468767966894721761951726615097735392373090091775391283855275225325078314206611513192406015826713005476163349500482942713590193505110443884098228623728125258357412691176597052423989021970440021818198642810631366906774485077259606509172046210919859751605627415967705224292907840320052309580387816650162797761957853298982361699837824721878658220798193937015860253258653709194717523347859640249221079235769638484787991437033051108033314722147529531163530116400863077032258117089306110400556103414723688206721851866195508184074260326987212078933228176354759628936723195725866492691817636203675363637434914040263496871443757067985576821221024166814376685560574008063775485400263511171577296145573914781910503634793614874236455176150921920838621659510347887412726056152071426877434649471155840781669347052034962595812101783273353374084315434214942534328498611110523821938562184315108124659279961971801243460447021023150398227848114604145372759591463213401599445491523602350840415329601926157374911374344518743516677185251633813958311700921481160821161397796541857977924469497812971664044139800745109490576275259391866923405684963642820904528957895964891098150000461539643389873376802998039834636915629024439445969037256935284593328725156498196661010378875196507826789724729589447261052031521300892701131935687748095766632594440627839205111511240361927374615580551640828369567811398387346351897181925946010866153903462952667682934118510491843349509386185451968684092867349517967037498463434299849330973451454560799247304165678389717578657320532545542184188215930011502261885415482272483601115309515327360060265742986491200402604067723010648911002144045979869885665695136931273811054325115292868737614129935050222007323264579889596647770619830145575339174139353484812988455679632646287253735452425130102573230104777747987963586953851646345355639057225208342175988207509464700537649655897522403700459595508778647034800126985148007139561910027855149342361263036504294968731582246982544746752745556756544419415996696248364604959456484161657389368334844938788665394890842033909560667232270507633025204657827988737912298049010998981386089821054430205431178240071006149633234504989353284100856364597308281087525942644301281781243992745358366230989823214810929759207851823459630753523873069469551804061950179001787748841016650106670665497054696800826478231841656987730565001027634270650346011342173542617431886046190440549489396199117860231715306986517949146229566570298904689442344658097445248333980019717750808211648768468642069401401917846637105022240672269443529479870382559751706927236325803410018369358889716015510953419396893583229476120844911240449335921889984905955114902401844636901020501083409039018646178723325986532535081518254807188175050940357598969142268963850741072334700068228766637487268814090017315124087786200884288037006900826392781120829310841831435191693356046194871994622718985254158295853969645067967888189830278280060064654458953376710741319826511164782031030578286758586752729659102844582599370997780435164384765052101738293542058873496269205303716358202623338063250674503526125955942862961459254758485954132088244334649558053391052513139322179774355620648723992293844455354448556534241216630623016947557431556123602373110600372483908309812010996663563325522337751532486083722638322850426476517586232161485113870528898856593023007635423411673282398823933961385718363580709287158706387245893863467101661727132189661590660673424435685062144739586619467702060797719248995368105082135950790851108956264649358539390293185816336118724907473577122731583533061990183602694076444595897301549912570838524585420852882948608823332809461750111718205642137351146811367325469755405367390628552120928309162127129406446653250925767372320209284872803013555605041733201661763406622193901647650499656674730797802939179212956991820167615028155672805667903405827772582835080964659924438990545554790659195569781840021601060357402786786136868660945616694798750642194218285350642220977667587705504261830980637024823405078172478000757748005702532060395297823081325103044660219249687795694295423060495353416053500266306907289722368920549270475051021562845226881590733663339721410374043886343290257579045174565319149440393135985308346653809870510839621484217462901328956030509010320982002068481273031655967756359021581339250830428963799262186663480243464824600155331397824628092991014726749350509870478881970309531355556955040606207411001254632708368731270592218560167787923294430886196734090141760819158559222850797293912213169638108691130994561060664282163573168292388851293761411514340888288526675576927000263018340254919065598699269234345094580952851481349698985199054483201036168681319323863913613983858103396525262120666761931399260833695436108346568265905999442838656408310531553234436202999690853283574927360731854890243595441722357534200297164067078361418584908669745640027415909456729392613155463156825054318868735010451177675360856145134890319372040652810585325396995305250066679009205305280359818810295551565820556773354485958626882160457597866427715116467069828414091727687912713627789872517158980454990022237456258757699942633970099852999427945846463293387282605251272431515981488501264745112584011166281744282497588718660505481340541099035870671797268039912694084408709349897150298999812580300911147699244911390769662789553467126219458724659800259431985693365526628720369239107898268210759559638472763908784614695903221815850695444042502097872233567370395946139199227540482364249986489753830036879008489712509110097905858653781123571610068912518613640547290039417638668384378120636304717112332708648454653475692103822182509541300480497588671679973502326831809958434935364055382717982244913359137602480253589501861731614615245653150699341990065715436442317750649819524620309664824109029426713732823180690764390338301514488228374650964696011187597006078425897497546200755635383057946517605508163609999551622884000008013529589432992582220316033527180216047425736092628467724588287947121124545916176439336191663948418079865092768137515808709851353883794965398129079930115467849541597690697279814721239808321484884801382367480719118113110069483160327420034976529644395241517247159603623236157882927758991103895770379566612126162059408635362807820937679505027904964575347556607421904680039010722063501875056574304378475540377055255088001114447587972068536098026519953501295352124671291915378755490601656295130557652998915677013145789738507321697263745179281814055159302043250621066623657050830730052773085449864426440724610119171782973035075624609040535470041693101527426227033960287394369068793698037330242342380936484715266124504032322719088239406303667467151694141136701371020228275638231296251990069704161288056939210507124910520971694383906223178505627862572286443016883983320006554934498434396780710713088120503246418624044449490087090250661953842875919524293758215250552413676634564739439882982233971247193914133440013957285229776556378400674622332187675837948145105836399755228665032629832872773086179947905829658133238211690031817497600059202720489019031159045753428467627711509929179446663268333969708026081038672325644709461614537664299277943293949290127850224170346540948126482383529232853999689804285075283798455131830269930930345723967842846322969379925632552830077900719144637884055746860580947467522813414650956520443273782542971233865603153120299876901912176589662356738902813436859099378390140306627464086362404044342298014855866372850471196287102566188912291199914337280828521059699271727408912619735850791017774413371100856426748582911013211235451576493208196810805187349019450682910728155340718431206046137785353750005478918373816026577739237138567883090960741209570025605405021634584825089578985746753219468207346167095104248320931499559710273182079419904914327269923090114146262571737261671688292622702901849293427500360104929270399488792207905381067461618364906153997679406217108776567208896231778548050940307101194578202371201462788999577932221618687953775386985271707617216285548642731567319702877677516922377125207295513391999271787004831271797699124144891766274433370178115921683333408875333558281463325477373444168272123467385270960068546245030056564994364745599589019322014368579511195962400252526047534860822953777139029475632710636213392144047704813557032169859716925095550458385630402800011405171942828851029607236478015818110386841379997205952256453944695824301532527798235892305824961349255221448188408708334736444722769149730123757046166826114541091857210531459798863787477682797464701977387890863575338724702199609120184218120093855723785990702869392976899594363658504773602841461742745503512230021643193310370241631630842584477160035333371637384288491109426000667543599057964454577216979265699397704730159370067974058268129822767574650355975210636409113421710327905548826264376946772296899716484549140846172278358202293112740936371426206357090325957587216522994630989688097912198446706182346246435530894859526818826262877925286168855528704470567689647804453432335382548001533303240213502327679935288890937974838772717820738538752548985649090739244374309948029874427602856143129219853313754401500050283871546908424296982378044994900423235301031297790598258503119638951504261237410064246803668181478774878548478818492486388501551374342604516686638762862959920551737384770435770204378316020131070104222821078425493784219027184841098413325364002035070647637246683930785700729887905865367766256885342101811636649696747760473120770064972780184742392222464407554925161750942317955624648670878736894496514920778677364722677588457520291297464205355556541620391832039194617494068791589402350549865259043013783732045075497344391897069816840568388106810660686724632820245191818350180488718641556365696556669424711433056306369650641203843749176881208153237060021435367814963715783152350820382143778158019441174795748783751154775199732567885191434938945199705360588854386171488362354850559450911887802583126227868183176929719846172944625910231134879935850912404118804157561609604616079414951944435734092551263304598430945496918986072766021395977179203429350010002943741643633887879299981540327598032779886185995084993077915816411056856635677663298817037156066317768745150252352143561865344917465354686329553953973011990205465653718731003708824629584645206323408306883158849376612020891815731806199262313253063462521819426515262185206227975994727984927979836832764624699211862058689542760892035452604256958890733392966591010859866891422323278447549072551139242306078186582823758815594599831806885744413487852612334369212844679603173648144437045528945809454171764981665786904506457695285991382996360528096741486615901746526108021027253119350626548273758641168941737410430139096841641234614439275965490608175454738548870800677022695502164740643375686629922932630308961016367246982826707495276174583745657281485009689505575808800989592303629018792224455311180938914646358539580831269211208694796297201273578665536055775779969476346357538366446394169993912870453124401024390450964530586841974493147365618083766366821919319324522820428318565772028028547138974218523236886428686677721141005910718169389238595634004139455807780671729252230046124355740446414868136638007875360496094338410916073204890109212369662218746436116786809867674953087559360747602572433228493273288788143659903856389666132897924722546358523225705097574378464231907819385546795086341913068398159222985242183233941358342860129035833540277395428956179752773499954889692092987211788773243097418907286541767619022670619161302479191421076874301065585688701858017419829920500858546872697028714310820829632116323317961385566431105651481414823670731971799998311678746184954283954133039210001132468434615226520610899810596076016139044085930000024706088003597633167373986775175287597497441636961756801316136103961015612463447064123551394957290441853380225341446812665913168496317660920590840411664426063002072458127592214649608191908906399533392403013403109713283433696497769601940686472653092929502564094968918568792135073852572953050447507059787596433824465531471500035444481485405351307003760285890232794907447376127884709728609030909905425187685972414870931066277814484067672192621891246595904370483724164299730735744001762339707265248079214633198933640343242065854102013729538760669091664306473829404093658053209642229505956795925482148339200463845046721975140421125027525246719465143567409589155923646205784894936064343227070992306270408040928486018255238582342046838505771626379213805345360952075014226877816523483372093637593384405438451462714764602774362523870131680087395886427060899134972408181597074923783294482022274986340975638219766886340259811160021993621237968601986217915683417777338096970411675991026525428681064336547324482140818632787365439260027406608427003625797397576744181794462172835684707613492504087226076672862033845814180797200739121598713717683175642496826964577435121506332111216076463368891463824839132487263754852571575222165340479004889157632094628086804588768930743141314564946711221249786375867345935006092902946269149863065136226855315575433278705764145548672993787010625046265279900638363466152722835189098717733754284320920867054201533059909960926653364708962908358953860536332092459403970451890325015069271182179061535904695588857658999251690322497109717888723272844001943538651734979603625531525437547461392031854967803707279694574265634830028629039141669855590001440175678712589994567522799690436543301176428162513064257691324491918250606052427145496920800187707424442229376899066793564562110938540112613737441845297169325369802319537446541807965207188712177709944976313481053814529962320648157806940477808703105688154724407920197632619216931670688153279067108861810217835989050635094553096436194000342603416424884366121585160106378831932914899723171554064170712533239509678833703777661250606013656608165836772314577800724961517625372668775320524963507803017448708531306916890339895660912085159371210315095639911042520788355383062670879849734822033779734573817194112674412214600894116881287475704855093576149148755909527221255412123084583177257105273889922632827437864630973960924446598774942925965274170490735520321924399429547335647474259495976628966270040725141512753447518990552236475610375718767569075937401919860108121115547072655156149938065850594498423138398660114304402035340849683324076826838729604744178291023274288449403563063834153207060848676043321634821444249889936347075339912763652434591740471381511125779445503373774634905788262770539505370457793355965819586864232578712962524944940768173997621572664883238682956480526999496679378612684700382462982000090905663514044497586269658733761041641586357123600082412122631227102344567315580386475909971647602267959025067553168495453139708516413316571279804164865308263802072151125988801876570192001831024446469926252642527320884974137344811484553807655695123044419318428554455385292369467447458102120092687305077523406196509089270633014124717976435912721547164274328077641359955223290394999573405907980318351275833451821494050040221661205038609487073393716503790144376098318324436616280671318897158368149890842496351071724468780818511498745495108258862146999401608866953103122097897095083907024227146291806828219866310778442491899908134220232530467403313472251836021839060110244916708837008076780594611019526468712645758273315026583976505637126088989476599638516892614636983862893954888123540559331472690791486825057785593760146328494277335405497194503426173776529346430252162204454486409270501154458378004141188564525915301286939614306676718296598810538718157248678103792505974050367406199867999212108556600454131137514933500208266749470868552634022157719855330395316630204072563832088362925420543372240290545619662979067649132753328733949814356025907871250387881700542114884575413868981901969662532829088765453482796331694148040641778870927878046362207043147883115800253806446718744162435142134119500323919921768801416109219590110323352240204349655945760480904267251468131806800415427334637712166028636095001260689055304147749447591580699315670602594412507122633327173798398610680471987641558187364346936375844437232449835716373670837525814570998884382103641484990675438024966582622587133493710565262635112631658547133165641202788448715705715468889144492969745711354683725972663319084062917493403400060634715964021388624554873930562510966267797797674529364273065703012549737058771012186460103102784097010029584706099050940426570074060223270583595488017585684832567719087810409782503909881550094229029797426576086202750588455504615726453268403367920549099448127296330848812950655902690197861035379441215845882643314081071339685332140965416566614855543052536068057408525738935361795326539326404402866911941854221925699333580516925376027856744609208950812041433614496988403278590393943430680419775712480754254710661358489322318625694856345930847806886428691837459581436685338973045566020907727299165124592629839830145797583017704822992347650410325567550246643040357759064918533330580751184470213451603313094871534373771336363265196974973607844226738447062874622765013178427167292957799139794506448451025556877853706842111223322812098074247626969753802475905300678698089419967001527656544178688044348125283301173147438555612715742525777212905807392567285876654422925315775877393049087407574839932782070398112653234829977605010075967850681240272574345894252321454539696307023816728759699896898403666258411843418289625251330561293653099492477212978919091388687555619586980536642912981569680320416202169444646438006336129695747090587476015199101139631820841683776882433339081943237120385519274763535601607969323568374635324547108304181736433575110514395436350941090928912689936178139312565755627475071648738118301083817071676396847627584002310374653806891413292109399825708218185598572774178481406733004682177075630447400036232670719802901056238930889547536919608639329055556720075272869955545174350636087069887932690244315496372534234929709450890394390563455431919559267883074672409310956633310018050935428376750925415482261416427522559545191739400481965521083007160782649648061906539221081944618024558443314098540151723223783935611385997180815247512751333398769311716846715503742170737333934320981390928900355078319625872416745155088346642025546256785110989039977892399625649747325123290045774103807346120656936486013406585356731393884524554106230046604284747756032124176097500161113723805491691176858186573977410374769678016641825382545464609614019903063979832644868757269311220166674113682847169237396372917799512220739456371397021350558069343861563853967401330573003668559666904975337919665885610576629767802480343729489407047391156554849383450388741838509316534454162397496110376032695697549252885838092999626742723418720388097744613589866512063869101040014333594087656243613069380141996946933027758735415693977512782222740678789542784120449134571685781867304293881088277848900125191342269212288708891522107553530531876273564876620621148811773333616956027557888170303639328418895670992704935033939363180784936495079828828765741850723421042695618952875875133638104371739614470614467506924207169244242688599042710500643639137220065000862717531702079287786519687010607777939480101422840311969412708124502834564805022245262029414742633170970178255615957673224285726475075662713331312113053290645895936926060376896586517674809311383116441442528194079329298276717961871084370905288521239086242601970917401157198577063083462975278641070584031488078952598788714058085015273124884779511640193510003327830295035294127540253470837738602474924302703554192460970922284041793544396391052488957154010461888307786135454102096220182668220507659357812035932948207679907422734874873907609869314403709883367398841986344145310200537435167557317618536267505353044184826230901866006658627644259077308472163228857567723987641693994651989803894558428268036203776663334797853482160905571254136891896993139064757526886646614436257338378019792693425131556577169574336272027094538258955963653850811066684305436919651819179113588032671086630757421439521762848791200566351309449503410647518418140307557888992724409447742777870979313673399958777867526213037377631527441458576540827534023181267948222246741873403980751376997028297522246485705418268762604442354086029751600479548804950661720987898829714572964337258904152899748195393748485827760720912284374447827280401349796040244888435047444910351280925444804661918906970844641288154882257529271207464833382265530649940644555626855819127361104738617849547240847870657717954416645538377890068748178688160432262218582238061634607262344452395947187673328332281052441010370175991226592222908382971051737840399539770670660372434841841401822149968551481428741601810507117104432928149618324892358901777865745003973840139041758583848029637123050891824421059978200664862938806377158054636914422061836387521710136123778134141712950989257042368539254412127995017757329699018170507338175024060606000529588250974267992243418860617722715623842658968931365984141207799666597437135586943587931064871943413189365123149919934184320295973093006621873487765596271579730123537172383716835699892438321858019086035569650750088468212445644161277390856984576207096620323090324931503377146461719201218015915606834617178035302933617853918430407057251350079504627208995100480475303851438202873507084592101581674700648933582988622519781883798175233536442436237727062374337955598213290124629137821727745136265680942990221061194952704987563864706305003091005291187729570333380848151207895782714706206643625536075452888600728009133700685975536219876781580415821494264229683435112235976473001044631471540959726533297060413489935305603763102571726789993766201031203885244268456553004523148919580411788732886129594738631032034737402587255979593765998831316599411248802840377999624537823942821810891666398252513780856627948371846040560675500463872533398891972639469350139247024896911472986737007433513612503288777914176896087634375876825840484131888254066289620762676499546783332041369105158160875817050178582990193304794966573060144813376876092214011956669354316118852322716003105234580658341459268957421663307298728426773632385224441217514811513322418483379474472521400756843650148437904146185368409590178708760454720874695737973189683952431455129612387628608141457342227034611651438261508535661634821067597303251831515342122961578745033433483719504892448134408721501223166468476185247769168541375937084660826259085207043801195615144647958064592638204102233674894911967256747387806387375943271912217901032447201614235228731438696301483435461067659791188774322831617811063426053785927576268909775213339129725206546809104008092725740573886037150348920393602201945961107856850620544609023960195144642418575460761607378444631506703164657931279590556116578241363191952522371864417080558752828086480491031578009100560353530954127067265602618792806858466655822503345790002298029428910329383467288757578613628117902256463650047090689585416383499189641473469131671696145418491765023078689839236349944834367375056462644806106266085730698076363516324865441708830492447337761875995120805551035141657907565336683261555144806034190763967210356141850243483538531670066116282985473803940003855536050248852015614547856548602474602481603666572859525323136173059564968592203985316703088946596891007257851678000366741816102840876184063074240573911167143216963912853910338244547853638563687097135603420889069291212846412896910427029309236682580003581248183198873601127963959670337205926816382465588869141766569264067281836695809498412121484182286707392503740291560489009024401565850154131329124796517036050429216708227213562794052922711889052314779202651023051026077352494443107995489852821973862557448832799204615773330717389278986820678695684021554089247167023779446326430144636859117224734286852366418258791891803176282628876545788809483072599505445205595483908887692096000363102891185221194193376452000756649261771883543566340235121375901682479644342557385826282300381883949178323062476370116689803882486039027627379952468708871427713055096636935782794755159930030091601093497266149399745356208229300506670908551898918166899522733060205359539379938426077604937170684224558195664795957210264060868057889825727385016788662149758458423121755617180701499669355910170207989363853531220006951951612257927678994416049563661103658715182448628125333957248461232889531233713764374868367987733717626169979811741809699172571346207976833655623930685003503401952489204123905059549798584450268463132323037103997589523081640803430814014838822082421535350349754425936802745913069437296955778038607829482566730004787249593519223276007134579625688201937957025568750839859380862602013249813309856743705985217338384097071292593463172378110976283001567940192317991745496819398795855043872242990854481799280114441507852411375361807076677193593967499127600053051765063479347470866483492403988180511385607664859015628954819352766802745111641282882654516346486833518855392250176715503884690681157347953692381936383741097332964221137239557599098940772943212700711920365497365200492122390589042445062841775612020785090375007585202750686679668545433904537808810789162042204918077875015595521805877630662177769929301195947018194851583011190996121747012317424884054744075859111125622838272371618148663566297194311749473132063025859863808281478994645334223009399192231225446477821776275468764846591451672584793768953146131859050154272859247807192632318660473667197182789457241780718960614482728555742888629986385448218499906599813160795483416802596466718363742757610445645218101777075301917216677973974579848453435119669216164198238391613324615635615641372117871378636958791099571894432805146357738569809227312215460009014946820538493721766043516083690684413923415612152873228089410541214077840026448208241078411513574139976759008701551367009403119103998602473680642468886426821913372292549016037219854256047373056270144198184266419664718965495597463409101497498456400133535831207479822991838826185830277695195377766911626235428073664016622149118183921854292377793741458106510278266793171450672820891662900720481865912482741681832765396194283752873912597533617720748299599785089739246104791119230388372245967429762453134562458706475846230728427388306916974670873568518972032980159509322772845986579490674956839162607724548381749979147117344558181661710806760574560078937735032769826101708868159141268827953231821633648233443665209268180313438939944019012813534609058056792977255900397500941791959799097189172717708545358125501824997130636186570804961982617703996163704349102390381670485266292689950020955009624158685330506454112121577934177579032881323106774316200122188575773042646253958355652711584840602225976944558670974770775049515747883001328338240313089190951813459215652359721805283894438466453568758396212715715941463716439439712417069904908733966528163995669125653554455806406153497194164604224842106374085122831901014525137402051402307904269296238815175905654859624466734648455912079092268962637242950762702383635219109238105928651239304540640128011164401862594451765207566481295069516577128884369052322754852389904686676627599006732565122696997111952239210733875901700622549742636012002106110363420703455357401394513076354419027063144382820323477394048215170138165451011958832187039037781366434211731343711829122099122738928273309304502553743112550686829045070436060870682256074626409096333488209989284107756379659504079625859004109737525685083006004110964394577677948475885512990617325233655103581643173719013317929465341530782123213140637018064660844489082669320131977836100621321259698030551639679266442828359385844934092007722469339738602787570550772055637575678190311876860715530275214016337582079526835142748884703421554071434826168030567015122442931336913634360075632694053600374896892127783643287514099082490148575989585851160240844755957858398670025166324158810339019155050841164660101906592392519614242748876632679230418239822140821567201854703735988905265731015804393220159877968617536607878472901024419184023235583638912354680249338258852033876859507838803161738919145138306446912561203602380763705854042403050160892041746530449153886680023722553567264417021672588753303391029137010328480555659247682227908960497298284264488583803861857741578230554481356653623395468077733506941025509423155758738632306184527483701153871390051265286852302750730994892733237913383532501309329826771942414926644713001004513555900214370200098999545633761465956133671845681760078501782801306271250420339924420672771191916712907733416684886042951140379937126563542905814387261537760095017163980088593443609573857678054388457760985657960565596432158320636820322225588131696054144175647905737508594111750657318217294693946938095126420512085143324419877210175804794254655921023401246333056889621267684831756337395294548570023734682938060235483143408128368769678937903172949982812095916946984037617899241129183911908711045485464569099123593592827447457007540135864748490274723479143073358341936610553231495807378940811368791248176841223869227930504181411995223832691721971992995431857164307285243369448225438678915842941255975410687196990013157101036669298652736043117286295474701749411662324962773489873548114098329293726984521718154690271296650894663536914917217763090916259003910290579764016023418454641939513217636117619350758177571912048050010590543082054418287894592949000284060894878713191561702728569983515415804641928319579275137362086106775646351613918640943175991898150081782865735383134268241022261745602596986207319784330203953238233856348134784462538780507619211720309291200997398672086571169919333437256744724948250496624971380764325983657346549300418106292044881802273686900061156993715672884181962580442133197649929809630621297042859290631873986728913458949013164955911772166546722757355103764059523573816164381447644281152607952375177064498394381960140216263264495701290206559219248607766028212268186875051852249788142269065334021118635828101465956725261807015980849144570691945696792478624599335763939687763493423334697140260176763995391456653904724895209017326359156714744529187842920567941953243366109343348095394595741036064560106771257986148978166598721661386930097511458119259964168602612145187017638595993500507681112365493983831580459544666495458790609047132195226963978339374954547593307032166838765283375211386573222160834377187040863451223420950570508472583926062013567825868953047014265625363035783077066737214036118695414973077216763701796278250585280644886594948954621277638376970585505742668464738928579368840962610455128673024653848333673011994394588909536806126388745808310621893298126476713721757537308037504634959470161711425074302316126778333653263280244847847730698443771449611862049595385146157841091037314572578564882216972053969141963703729424709695319143203281094819115673250583800836925484388472422841064537166300192607152764587049566074610602885797134594036024605095074733874282124170897097773920626466449211324607647997393861832170348847645232251223044909519377971920830405481291138099738033445440914157296769720320105112705863203839499177101196362920609586190496403883929714544289319630956366995506792133992767344080257897183100397547148938777981255064258485786241898148192514943360201000474461032339748311307476850748513973285765418099267386226435677780579298211553812330563784226376080431543134375741371901182050710344579119664103892238076106618225548437340973769023675595359881342760010945930699798897815657905502221559766560821096143905158912786689180798577250867939483770760701036093131948567444210921698295623340109776255782031118077840107451621379610857586837529028310830340618042457178040650101850029120952657448227882178631495876515622663801599781435750347355748587055901817738257719616851177513283150963751324836959083183314631473571453019821576120018793518503161540390010416637392778434493004482234427810460263065941058071570746865538431321988302906625151438319762866368209067548522234771821299958772095853067870720378095632466765599247720570144869020308864935014524396875913778552956830731750511881929432572604024082751468694438284899549738343017046183201710725796158509086031800940682390481317386171237479541725454120713406715755386872841189302769355915452230210553909384440439636500784497289972947471507555593686892335476088136405123995821378734609979605621689990775785432432911183919999497046790143428320470064924303571179597614252647645644208262435667698300286100740369903627151679969079344365756647063368380264799272876039856732865410079199285290357105343828838605812687643951999471717917851489593190177363592932794863473594321687305045033143279116626715380445049221535213676563437476595603851974547411817080811371938223873858062061181434268822363066160729928488270201630190968623334075007869512517902701986643206213234198839981996314353298330041252190321743602771401048084677387263135929041141637595713922795499248969034583289787412894348913973530091248148198485037899715877674131767593934821904242672648859298345695944568196986592216584232223355644008412205165115289138007891713848815713141243737708191084491436890085697254036617827025941742785114794058374586939783034272699103772107962386930251136470036154845403632877174532443654839953651423563410937329034558909492869969703703679184413064166603200775103251278602773331597403254806375776218505774261146136488703989518672254863676106247593642782442909235486589376229508956958215174426009502382791647838851201458060648107484443408459524116090273448049770346247793459937546655279784096418878318190236107733040532387379789327711838273424445468109233105484025843200865388525778488354248541177280001595499316559595594609185323212334937368424075043966232004133204168293541773295050062419011192044216185563091923936649227879848975877441543061912745236376472790999538711770795866029688937643957249973729571439989767087962010923350458387851612438910330333512591869124275305866171752222920037661047159973486393706434355285608115998518286856798844977187078180645819230139339692066467764220008166406305025417981663376042703614046291289830211525628390724818827244409244224654997873185435290106726666942493782376194809298047010350648361543309218561921351513247216666990873298175057050062708596031220478089826445969936780918523148677304221523492393486355471829564575242125795851947075412417312434650583569022227712533979720050100706336480502394676324314854982930191444892256392548694037657600288565916093787533651578891606546907550478551412879003445899844381643852923955126156761601854571068632461972441573849654635702526762806125540233051108539403755697527344657847470495244997833032548502068957682567861005978756086850855507452306582801127673893374043490851357778477893503087150325915689791287587052155348172107599765132597564401820171817372518196865641579445742422143137018324658681182698697868069779481605722214099139655702554221823398303481965695453871474272180083572164383802103702566444842117717168453192271611313253388586852622549887179359550941576501110915612150541546881819381198489224203619747947107147349485877218451015585955776120748383652916932928033362195536992407656087980054444882538486480802975201167000518957384412292078117369054073909603414210645691459635285431627601893465118580800151931465876150691733976321787951183045645416826347254872614184878163101281405944389206593045210645428410125272174574167768920816039153917426355656817555999260699766841720061283034929768854507234155576643936078642891327338218721533143369764950355736865879786984710013918098646462360365918411501838365237574839373164463790456983340149581220201459426207933808234635739305408584129629692924033290978475830722723465062595440875542218761115694270582507354201946981629353132028837948525954964514280527619490624175810786023463712999842179704889554885722718788245401034981556083794765634634540767666294768036796914737775191395494764235494933165659913299866228947110022244745169331013762873712279559511814959057365758691189397672816635651121838995222086275675811330440226833504334351274076409022330136175139046227356920216337905497151632087437308205805857630471402121057536519348844196378283875626443636072063454912560225623517270825850179603287871469387639763751516978655441849567165634094742765984832426123483359011957728921063643571446505203613796055513373029520777773779760819171718859053803485510551648490603526339149218745703511089613629864052348405589927030280323893701939318862175144082377419650009514274124644581335932539718223764164526848237823988175781446526319313438922204286196885765871995881825885327921810195401032297858640557062791586656621296997811988141200983363060963842314870392865527964739404389332515175035438646932500751329572533476779538898464559580225193098076441743004894391370689262845629424624993309542272174269591371578659244196997292020210967975538725037506425136934449079537696704357726263469881637578163459600279906695139308703459803481644324088837816179418698385484969808713191344334375847549521564889618151730300202328829352158311600205157567528754860853616608245658363095192960275509811047075429192098689821395501791143103534624078985713690783583143953293810021818764469375901122267112176659090874956235639256831074400235597542319735854924699095632475259660385150603065255416506201834650726649391901650808032671936293050289239684225751721230037988262687519088926664442216267789557401109563807334312491264067840974126621145700992710893933379576898439488784311976180921114129038549127204621119117041495873137289011780130197648434108477541736669607459921214021299994484014276528037043761057934391492099363698712988306001347354959090203495189166311218050032372170427604502872892561176895875188403531710677378735945586677998435466498319681787829405481730436234409812123029441337409122781508464194267734827472413674737350685703113621541047671133781869993768559153865383133992344221244410721517924197185957294317893193267519275854621560761224590236636548128235134569899528105414824962956795301649235670328568787239722328800492572942547147881031582737763388806496034299034682163230778811245331179511159231949939643100365814316276136219349142618080509936586631423368067176488636660454383371175469379757923208635758364265273003677978788668492378949577603703510953508285749179656609249917822383436162326274784058024842570463600226686242643749765593047550879734300920687729243917183154711366877531203229329338198679505110169918913016578679076919087470718011707772259693127187371698493652561146685277386582752148562848563852258265604238709618162399436539314901996795994116567949967318730068075067124410850044719989709583882346832169314960571430254188828265028266863405209397913763904984059866093774483670778157596461413294793774248350130457444746203590359316542771976364591063623597261436578458960490962972882706641451124234066999113637332990438294180454426798769512481686628386508645210958631284732452315969026336652064418182416492996000855894375130010997323153493832940003061194636662273652742479825442101471706052918085863293195529593565240783597558232982362179328568298363796948007256312557814901600768073957740890903819345523574531161952536194796480586270393927324646797338322612197984425289798306961481839666606316524273140949235995437576218907654195073710744974638822852572881271815912312723330469506904789465435070841055967862321497973531528102395974380999191645054723596085876227527556771266677874317718852378200332909830521116534539330009203476846877524114903419394441073769252791252324156439759936068117081319772542724177711054799438332700938179294486293735052949997470177415439205164768556445962248345018303230117941316684529061476037640705856141430005670859924129969701239171601078192749937938417373628063482592606801645425248583578828729473760544864253717494487067345111320041088225913647790206743592166054477912621174830374097589538515060546315079162513190163105167039141282783770100064504000464953124125732813618472539886150138528543962905382770743236609599990043798482326732736395941554618860425657031769916868923104126268462070690693664151555147624869359858291046253002504667472250681329106110028071060190263967451415861135795369012477877826641641546285996068848359809785371272006860995969303303199789858642931930846705281196962319759917408796111382186541465711651057888051690261100928304202702292167835164972799236360408092578509023245574701405259757650404217257071675065811214054579739195968352514169324632559071453643322211962518445235088424903337190168887537682449869607000862913567809923001678990741575693311911463883672172047099281067583801860965904074614717025631584247208355141836437949777132587812724658964046767757499660261605214444617178066339107613671370251276409878266717406029844543234395379417953271502012981370067869169376824582291454396457194786182394876224347272706054322234877209156650006320890828299272879715996090631634873282385683695404471631084212455311605945628949482610852848108435722783352057401909153722520850068998953594942503644730208956378434553894092648133258241489418594102413164986005203661792877257325080988548652695662341429945673911519468515510362170635083108475533477740041742640518974358036187069519715584486687720570299903419396344752706933251446928885489286939973838347682564804113390802536276645561741657703092670586051559544776537529204468242423318667394328404613875746423355918673253941934555772207782618126763608200370379248928039272737183939149104855378482765570793234248590439027202415871032992643085194781045670785716420835436418719196903522617648582214609908755365476908952552157021171547232010598315760286047380903498963850032044156041315743956184613526306260980376403119516055733424893273663242432163239668720281198723242401599448305340397129913208529691767676801591287831736389585785970528072355291420328408206708883579113789871308540778831375827395347136078501789361085140798048352897490371940269420155911483912934808566251753263658964432488737401878265964847474609549086048000498437244914058206857670730846854781643096967105880372790411835743158428003346237984820307611829308901832189809043203989752165067262213814711013798061786409888522592226704920952016044078411853588482529534194591466153123614520745363134473232377390073816104957629446418710569406604372396168075979935439054572331528596447018196332654019848072646023621699223596474890696169855913286423768708472249095949929949114794616996190893115959743015761343621560753087844077484355635669378705401230500147429923932774936966942073617325714723881254224973755554005211700772698309847159073146402609046930330615954361278407869845045485846947198996626662985218258420225475803836781606869403106797904064473330630306924220997223895183613210107919257156187658574732885234175692883680175880822227156637417664733476710202066311192870810410634205453510908681542383595886927678145706323165427521990401909374419352599731518296670491256751052579582389833474006319796522007939397971337366736477356530823294948812535469162997365539703243231530789420227776741359387008877435248524615358193455418864660341660068518405882051664420777406181320190778813596246024179675056238151594991094785666138010256308277984961427164110684344805982993983329856327638658373618955382574897406267061027694575680796618010891949601437957993910536944502895981245780912066281808154179558971844020742689605865754815397378502151935126768060961394894681934208845055241674836378565327377242633618425755105102593249198823372553350420217542464173828001938004455629357403894013654640020639388873069408796269027444273557835826569595807336180357788405346460866091185571481282235930270533480502764571615237105122951043397228924276499697785157129709735713356113567240578142430074021113590315233467536297601554573018738028634435828854267150591622397024457153698705235839944096637669152834573130959772833607244372713628086993090965720242341491145669181855992506298739123962680985528761363151691999314167384868902039752025219577234376529522658065384379855338151107147752363742553905071811109259197995224653056362532558797623577006230641417276321288898577243417862690650178122547003539428192658850758149482646821382446337067527295550131619287484416941951883535753999778977130368694558758549650724844297431219260145628666053681713047883252813686428528015916088994422145397941100252256707676696599660066880997205091572891304400587937435208511254224925396949724463795536312475277459437993892337731684406942589786622673406148898873236692764970229603933426447616351046866457486848308138692586153482139014518241429225749489876279997577038076104375096593855427663930830439045474074581082805399478537944880584529676316796908265921739247478568323072556636249040264329267089975677230811053324414811106506073711125713438700280578694349929902153519539357178151000415110546330493872290683593609619060658545304858750950023736046173212644360911096485567046935322688189668231477719426509998391305307706604345128397886632798379288380688061016885659607361813597913014244081612904308822723124638645772688528258531331803982960784724329292115382229756776283925737315755408939169514415274405177042625209656912259727179924354671930853574181700631935944172584667966842647590297779075642845954940993264119648351140429713703545613524114498095361568500755994332816904030173853515312882143837216789686165729146703075636028295366621825568548137337266665652946019537892779401002840560757522687916013733472332663493828447672524320139275512121738366233624538929642985582582938706181754488574681079869389608134222030913578584704714448877895835486062537039082425959537387164847030660065566710832092004997176868410064434449681276069089636602144179546489326806677969664806198376202075764154234182907389778943222639354539308256151389253974413357344726203950059010733590423214153777757924871238341047385138298905442739206777257458592400940764990959971456540086959962773009028461310323482820373114610426976590397673068049388207127120257538569957543828665602505117168842804523367758004721161110931139164292955864638717611568782150420283348891078055808851040124515981760318452014873293231785481580568279422548743244439081242863039624229974516473037598158307253990825554710529529842443248955630779020821543144878867585827799802748545271281511719055812696016445187511489987258702838087269141590893355491376926521043199836461174202340428120155014071150068789636946198796912679063656182694769201269634749446702576332244841519881004708885534854547023868999538937434001332376277335610677277090967218160055433079112340689608965777217219612148534850304960410774153476384278567949393443119067515296390166004674972499365659397025305984957965447895810352583263959924189292007591455416498798967866295272341248703913322892382754129911362219053814058146315871215692330999791655688864122807356390175471106027415330428472099028136062738005110755099801310473140573671139815670018207688153472950071947980727656030238985964734909688017852915020825031430155039127796980554436894976762301911723413132225050418166399151206887659227756336047579658388633726632852820636411972525833115720081997751331169548731970465337527612074350565774574104621451982527933893483526291245034019446983171318281703924279721171227483849384807382144974362117978884191925844919052895568454818716229012425371417242586722847862340984130944956068046511878902428755249726515021053263771171138942052957492377352164931087277541061193707743731311205692203059914503852995689510867407565596362056271483707622320744673265951155247793089283302067634451089510252643100742869801292222056212890534239884252722886724557134141207437754026884635446278689072755114931607670549261228782017000222358333986426652607804705642616386914054428495706522594576298234589309535191969830164904588761430477496104417618368304502279138521029948026639183935274973618951470381470144617162056391843348663789097407054216065939229809046326876753085942860877963355320303130463622667930741989127900672608993154166762692184992317043355451158414300857480930571555884313793702537391788611330886624831248408295450895264683561337430303688990484595501361637630254792942102266246421771699180379054347759490718620489949230781578099394747644154494709435496858286188819974958859281547399830270996081184552801818053171871582878366843351839510612504355928332869291509995648375698552301386870689714575558488056623323519739163645483362818066474972233732836631931848550760822745425698541475862051879358659833606588424389274589346149644729908022754436201529940904325731278356529861268285270899592414271548416425541828973227296626761933997106192067023202072871960665009164460417823755661822805392409041655399752343939261541456446905291337937525218363465104282145917138337844729855697703013028667536513856251111740029835482262170006138187696979922074468958655128785482063417568815700998402009045377913546498697698396250903263713769883284606145649531141888157567824296520587648747303089398276626997842405645442398388376888111660157883153410570152601172358737208412197108344004029663216701803832514601579042184926689947335670312190393935115613823343453402547866958658295637441445067602408407023846604690410061951031513927931410386283628227459917379618282286098868372564621806374557307201424852136028044275890352223826770243662559771936897611726892211172574403650397109478301867649586366014669679687593516441363256119254593080578683791948433974181958816125909907190624829011347508728479321096384631620427396245267469902395345493673938988884723898838641824391994685431508666194742355967423302403869456053283258509753085868807514047892185784334153954203735742596342428650859946382091914771381740367969529678564113208366728545291049702448353227444294761131399916173475469301722420327370198896884618854503677463600845430559189823223967642414426585177504145271134197532448005019539203481339270742949414385891976878551031670416005661642677729493874455663166849046195173294621177808632502677575223212573044405358401440849753018141715774855924452239809894198355574861639013695713978300397199248833059849190500443792241016972039207806019199619595492767928240808940314573073469985502525671147773544799239538090231075102241009325574762845178646458468397767369973454563631471824636092923388067883339316149887249315096540923782502826287887639135404066257943648120529353732211657011741844737609161116335682982576897921067456743798330412147930963732991170001416497681093346293014553256642222872162301314487694835944397859568572365894123730093253600943300027768180719990000000890297087737431968838936682053815457303886028999629948214177044782180387770874018647592102476713795101333347071763347160909887191653727227384222604557834639752516564505228464950530016579965424805863030911792784936075561786889901229327282110197126391448593803760391829335179409791495959254845083010573694476892834518027272554913904836121890314804859654264631016645131538768579851366363065435323031601957935400024637231152312113798493769907436196598617310553959440527856023646404131292501432153580001914289682576015410367704006056768197867677983717727669854934222935946747726134773787515751479782821996810042650690752423381957947687778987899228390519675483305782637547493493818934243378012782555985808863492819126581764238955868321219061344783819110383729225288503223303749349804321937929928633641842321462283896632041666967539864382332976111999763175005685321136924738827920911995870263202568233689096723369390697121307615848019051275947456624052544996211227333318433854368414433253366710347509659996238275106267173306849770429816492660221865028685959682917318656858340148684992890669541799475944778287522066763826275160680175745349000743325758183315740730207080641159688942669743943407272971706535909362074838875423920245259711666040324254704367093806476954159048637485798714298754353328689795536186139678981709284974795621634245532981049118978015983089635586887002496780376340759404706729509688933288268502293538969125844153575119792625072125913821223936821422924748276505000430374689711224307003982841108160971909103037867811093257102633768076375147816595407779776019187312981936844453284419431622107709740453551658336068599998427225200723793246833657626270667037988887610921734633580869361164540269642865378378752300212342578205897969688382606172909894222455383976729513214234729220102777028278086393274762820893116716292597059545001095370889804648918166345613128772561282447455729408784064468014116713771146044121444996167971134850397489823914695289599847332423096115395381817640153086514992652791888876479253358056877186048403048506866315929542945791600385993951484950961793858487997570935879250352597986303574411928495115427345842931701872469314454622627716145847003238173671552303922151536429781085209229649756761689061583712025099535615249900741215847448452749765602483011543953720287718571174487495818392994513925879952560138684146474914590839333559320045122474288521160739147145031852409194165785769527982687123087233790901990156197925200453359244376742532440895321318020685597699739440246694430365079802837035042542242023072836965599967936111834787211697898249699721271853845148990979575523437836123750369928922112771917922413266456165464444408882107674426755524381967719647080125058176610504748249581711651378145862398563556247874288743056272723526462666451581053078048345914488190835797916293943842418450707400320907386229939257282252048866882552494770527210665382865935243032764626113876740935735428664792108173941752200435656426216427105783673933203180572925114775931743220487845783486645892033028175344134097113792098587942268078692497508415408452709853826698535631518492253669761872907710349459899600459203886892066817980828782479581653520182499187709492239607948642757510088833645706419648652556666759901882604830253121532818286757067727134648332330082011807298939578435688338898071972588337444120959766772092607387265073521653277632808491048710624105819630784541971266887933367853460869761235817821787131755009109060958482841663999178378392643116464045759624032190013028075653274234373134248199975291028490547346274376544982990688047901157978757491379715232983550358086320310768621276751157022617843166981273617324939449482326554631602986693714283023282938674208048432124452929848052722593817924780931723508740691023605473420676572964837606337789064947555465606279373818461546678286771273547099873465376161256388755226385813677072032782827071696022909794321999720261194093885819743786620952440038950352626640328529323342649049653212695921013952248029412629124869214444793535481997602792434397798134016245754585660929499890887766480907025525338738448222161528270484892312815429904420495499635098005620511154348890120117292705760839761521652984118480329204267021852842953406860872062311427510665876883737733599133915253714808046125335614361578317660089187976189528252076644729482309941543415622958338534917481050643887009569623515914991911959348959216190680334102277307865339594691145088139841295268837970413032323342706314424742737213138998266192370638811603094323279555111903104585695561875872738566264296178516439327481379459851965698056354435899387850332713635130478484630187174752317139783379549932836256298313615011082741315548856776367815339478364901886949442893362674931024552454083475077026953165383170595207688764116480539622352348452211881471878346612176256523912270231645585006801123961218985539254697547892454377477778557346540602854368055120901784064893157738923308345533855150752562043419668608740181671063103175250932137629856408603857739413736593269464312826629405724830524970941414309454507825422478129926626845780048055748779794722858979177435520639877057154098107162351284699011016925977708825556619721522906868433582545488313385870856837280410903146670543370624741034919100581830314210818281222561568695432344529453162113460114210868623904604201982815764030588601360440976156753059328846895544750937901359542988094942357694751684872497596513724703326785467600514643317772702299017308943845662851723153036866656503257164448824103862784716139250595409239246384371696350797372517629760395015799462799680264982871182325609222465656793995380414021770257077489171552952358513734188419874284883156894334835155877213815529776139479058171371654090418086069432471646571770427654688277827718388476560628742521461725812519955034355070044794619002758244111728874932147896209564775066823557106820065756447052257657703141796103179451149234092785379246677942650952948042347747718380038845875608404356912417483966958886532574416740172464576543979657165266707039018775990727519631679980680444620036617573635750322819235020051776304694221437852230138052847444418707386398671406459606042060500818165116219899310097604066813705633088518243299976561923664901096032710855368816475246250877082849056436165057482722353880701199640241979896650827499787109661556443872272275919270462437389482890264094201407351610799841309868370631972097343532509094616524801304794167780582178007959136103935669772092174582807143008390590423718161565702556025708428417216225760864699178235253209278423442040891404246319673543945211662621361191217898344547409078589126224612682269818559640926259359163636514440496092738891204479642206810559272675605085985233673993377065402025300076285593329163024435325296108406828086167538052562094095687966302446263449688052408223601825753465655984455141902381201797556431691175262756780978818329930110584790427332775521038189349700817422976748474531017521607378157646965299288191139586494014535577355123887754780121831845098230187176567716405689471053672094262730821198196436451017936884305252799195851591844590098552287933985113652625242217781902136261862632853710991197382125037199881696279120610299583657200061599881689913697307900895025337855352205706522760900043490527284437402094480016105027111585213469467889046781731228398077480650217027829826323977552766167944974330141988347976532751714802285014792837043214272406428477994004322552226080278786355992634299096778217443193258420982282596958268569441877615940730898560712781925157783711991090821647541965043981263466818973263178253394211767643605860560552810471436542646073302589501758440074946588508091360804852943029639620146601418629764585452722709679069191646086421621648458552387656481108761094961467845333149413629818144797262000040493631712727058674382245710593520808049270146104748125716570651916999592589463251509870463784908811104059212273918571467320327528479282888623404623693060263297379309589468279152997248991209230261654676330189923657808915217573363798512846966031194879654424475976638782811996853912761688217951722905725685397809730948611873325661450056253097670676217582200944163619701104390229725229949323798217421141115824016490688224480435015135224989012531245399256416442193332651130820307514362989770198173066333211276784646530382336471366710779253704412685875778591953443788505518387352261397266363964869332996780540752108370752448156422324198002684092874750644585540092656132785141824852490695250709737605002440336819629185991495029639685296298184602147490225693678928270927854325754866532647499322112928490436279203140958075447525380114236394359553332194314529713316845096428047048751007379317671526974517854904428572133861339714817522991032059072949478312138453950858531469032326918929481460425048568942549592975526033991238953004562382343470826674514438484060933795068273729120878976049663797162728500005572756626910806617399559423471133897060175854315436033639636136977105199042842984078931423328404716176750911382113244784512596108326757170799490851122868362875801008491731988748991470660565078072498857164795567731621077463244628560282421177799561755387191630962016900090465739317991382500564323835985369990633217349973537196864744834427563357017235038433108459032387977759127926825097247320746406136006270166491497944422254982179468049466434691837834477184697518507239904290403124654164826937011640714954206263190894411562738015076966326368487694617103227137045239849139710094189477873447660359432146515400037372285158700909077084434220240305581537166374167715796263629769213508444896745272469214408905214641767129732361139670858190637283862446999615804726541976512590727320265626643512977130372676207219176636340979070962720827625880734724833429311663753270381573568941024119558947394960680667675517234012618120415334063155856304852709394097850988355144089077126942024897365966585412505907958303305917828135906560062818387391305089024887005159100916852164994992533037466937724058026074631890555102127362875172899167491428162741502095855639001352526234443580329345611500088398435260552617698144835745047652492782530088174982743323463076786616589383432067025523932414719321012105393562682600279618987386464588933934715103584586253544623183426285080043942728972492272016800345703837386720492250653976603378859450850989161322336763093455581822961959426666279256625349856867417876686775517366100807768862257263212078510736868763237810097234855440469980960417283195201045226873520609507764908479079974073055350578842636911537976867109491647573156081151803142927216334339627405564806330980909087242241965462681762181402870729608423370327606178867168923850653597755586613705386004660002687625523225957540517683065680221664566962528433192774308637366715947205303495973995418335641471842722571209724641610935043424357898755319224327592242098062361149937039670423640059757580490693767437666388513234308741715343614754516401276490572471750375894493472802300095732784102969335119866201445652931831030769463049141629835771809518739472524052294216706777480619582967503461264160580898570824979780228834123336510390090833768445466834594881719394915557965660714779577345421925437802881566700096153503056928053204362078082275271859158912726638238685305119820396796151429946316892916248381764531632837472667973991655850626030657907145902392029610567037238986858912040978580977271727670601209971619111548645667296176795343159670710011299963144719419375280381964107429806285556081446836613083555348069711196602203277001971140009173608029608023575950561035421004913927756673932527266158453676087257397382066404840306778756126291659100606241751922572150988396083335754196640133227490457554636546239048425579767913834301180288367798185065915869350631789830814073065251671006442246161211929020082244063254147151476992543324069839135000927040912356370670174187161839546064993742590054058059170544103212976846793156253638529950348551496660548487280042922625893175579521456645382872461044666299103989398222251239879468543936654858449317911946901146164922124629691994333552579470903868233213537266169271138462381916345089031443398632742260820235260810589299934839903739235300379961336634751704652922015212932086895809515672885037970918539535581105959945913841410206433805816599842541220510106996321047843491039328457910122030847490084938220948838940009991499739464360939740347508115393379592893721506936179499860553811415114496004124127766956596932532233421016047441975479925847132039905441464861252766996270719508915096536760609148025547581576827944723132886537192946844432500297791925904181165650616157844673351956741839950731231080885871298589455063177857033007387259542396075131131084542133934904669690053180448879491963588104008225143726311644802127793556747465526124431784016655075597864361449592732695219574495854816269136899852074308015881829709750948863743228639369544636228683905994481033864002287805893530418953328665033672013891009472578311993131984647079134394198608903426205107007216462208677555667995862354351281828444517406805079927741477878731530425106606143579939757017449991529423950120351040994820396959658277258611870252475893759723238082092503031460720277345016002242036254744271445882390696673527301295702323774904333130675395647049676169813507841309832087479185578583809489473124961890125658842075376978484057419099421642524615277475426705930771583628165742400953667262102278877613480948161920180460720631869496991551182401642807104979092893803430589008973480693797219344169131485340343159998174769212863974685018949495899682830884540278334175690991640696800774622185202066588035427181792100418396002885053470864877970838645374281420075692494336391287286296388413219866802316660117506927499211430999126251659244537971122026306264206716085473066318140803269008644416361918823292552248804126462952396171768542490374423796449798084615147510332212332863188068828413574706683627133060757413645963245784328246311995093317415948605063238522408903602155769724508509301226735180807410182872947804707439466219655779325586180442463979626813436170740229585839475740911389448231359197567813440254773281736450392060857428454488010845047826992530647842930215712843292509513436315074395603056567591978979220122278268450839948542211827850021491313341924564129334604306125977900689634071431724348025489732637966778300310180392961387270858791133596410242665363534979796664724065239699343778798342933604723520151484747872316818467191879045733684841271501329000754486799319443064508250163404564545278181864230964912649021766786326721473330052161490122019805650026828054723981613411954037187348611469522172849286416851763911413489047875820598853057125250776523190286950966732346566151628181670403319070635825180840718441497342958743717147735604317078316935231954891907401360794692609876728335581396172290213833236382791600925302045035257141109170486926722603582089493020469792466122176567387311798029176353684926924079929070764370608285099427716659699750683625568720784237673895208673765587285871110558141218775579436882499731529915355540892289974653611827683857881116750056340520972152012182743519589505232320227171007590761175429886275366003553840237993938643665810197115161835325424770725842980519786807656079164495823906910376086592263682848902210497135259846081158889994635813897243044512865787243364640462592276408156291944300228194022465424396458497828289671271267485747390621626889408734028590194902163301654883572904472999371144192542503094140366334201199031152845111223951910915731440269502530921283263811519946463148029075917861144906267514621606405707143467192358526154881672815950599461247019709006390600972907381828096522209138534307707760340178145574804367467364281856655749306234447573643222819876500815879778160939692178261769899759129661342563616798241713506348684268363227346494940565354665639954442634462264547430283996487357637423616046547368250119202167612310529514575199081919731539038212925042740447361358446817490551860622897086905303011723940269489094365004150993185751559119013474690325897102991252149167420222512762603304494900389693461226880000598012188535623922035103936364311004745998566922152639387355021282430246472980825415189287858319804387141109045039429463572893326061246364666118647552753659358342681131551265175209191505169117131888704673053644456844937071041983694691338892690976318947270692161074295520149744554858883406574655636863448079242003875563678570712174036571382213023210647607595491352377244452107455071931521584301570486548503704976884308628168389253169858566148360159720238235203743667128171626325938742755040460175842726146378492439063880954565903689730297972651456470840485209590954413485515936602800607081036060547943748845017539846306709232841028722138633369852409910758129614790134299573603705694518374922444699223250834776906226166848863466817168209872760974143628020113981121514843592329745831483599761588175798589287198209769946109600009288486183109415125357525458241226018186748479631165600182497154771144371427755670645996845309279688397717009944151579885812987736134539121862928287520110896879761475154063912760496183973414809038515242784056188990722863584842117461899876003785314875168595470080543546882422135019920312298095578017271251638514582341804874599101713883378438341314241286868703035198606977089332553022246020861951983712122599306028218818754792108098860409713190814664452346660642208389000711284085992143503532504994847326421856432215611509710003515879651422894982726622070750855732515486314454013684327891761289961388552428804518678515865099013809316213113089259209949760986146999581087401715284022647697341583277452877145748779237181411279962098027205389294130718279095922124459108313258561039013771659299665788324231817458975839030037145834312336540368917392565937252988106356781545136065153774684912340074135569129922534415807275023695073735433135367093607699394028156754734958693987518767831157131315116919296687948160540520400349534721079857123245267668184970164507001299710211553692961406894012947417021693108223525727621778460358979885208391372195005881918342554319564280347237154135768111859190545708769651123481266841831906946697328354253004066534347267376530521232253408642392083441054698393577541831111698411511053992865971151548950224133854437462555335190412268775419622144417523702334987432744063855458046837352434096403034693016962310025342234603121535259219932345274714691472351214959557530712807521517847454270638976553436428862878279608271476525980984755000697042626040931722360402556720685167763583027550259528078759409487704466481848787483858802145533766404533362330325895857181110179444580784715708609970131200866917379813896551962051718311392943951800190027355300288552114096875615321225071192487827560849244639542287344715134347345687763139794931707154060542547202431171536952086647813118995721994014438589340510554808132160490614948276267151218924931596361042719238901795147309793005796665749439753387287601115843911253506938447244599465342462936298038316565835788402531085879168935462231484786491348134140659505097439528684284787410208828692018321271643384169258970501725407899517599580633171307145324598594433373074827840049944025341060374791805208287626507232260956823655256331432384616770868118042761348167181702959691438146209876553426971273225230985082655784248654409926312363069713610466264338585276322136969931736664863867989396424958807167779524931202754033877027673260733045993445954502143158450329938544753376009468271457351543789662777592082225123163319606099440876827986291297890647303365438980742672402691614140584464797342439427072625173292678697563074578838164886292750159597033500172924266132522912951134021803391449196676673831174292185253291091105409222131630392904961448061668706955692266151209932161367583393946993219247880872056235406650714084994774112212443938981168138461497870929602376730273044950172699555644066628691216048393314180326750638314273174476608798970131475976339088664829526931006155150995953270818601671063144296148207705692423405293409415201355713093877398059365134283661348438546071314974443296552152547707134851674855458338904217504071232911353960738809368038641980947168392597139612061228177307337166364107602135601180741700335561443554344061218329503182352767771031327438858923920749871899201166334474710445875576848692940195711922898162375263560953550191474671010196695950244391232729265751368070396545811542377887834730249183819055283161532501849848020397820012618384153138196106604201665714010840525006600449555899393878970087170481348361946952001455031662653966678998944565665732490243156101223734175763096538808014716439114740889755164331789546225800626356507993366322636805673482376731415214994234824955254886843568216217727913206069540828888850177702112486667592295969494610203802474066723847096023030535066442302785200554745747923801988777237399223142703751795510882057873103300210221406132154147073784039427043358202659747182794881374138915032210262069402504683456048607654528300480471821803345728314942566450937984163676086210105089326214739617482911663130268060703818625200076409966404973172160169503529197886466348132119480870653373441722331168949397912080636468582105558847265875749621608971436012339092103917249097023925040596759764573930614816985852674464824393990486400829569406335022577298019765945766961742965583166603742128594246559515500503958063484999530424224228722652592127657903660573991127032994184174430372962668337953307528311192092146061888684937505619070556419237638202337331203762322248205483642801217106189321864982309015252386374901841994481887271118403200431167226985067719228307715399160051269003464451547984986564689589311112225487249984842651939482361347836276856599053109995574727332225915446766983466762208393241891169984863492077374986100097554804154970976724920928101566597820527987680798733186323420341721657860284957168012225406099256512133123675538938505226286162786019031674062566242132812246546191665697220304730473560557816304583681571343519089189491894268312093861170369576642710083067173827115854370868320086915891923177283506665819024488922908657386912340645799218809082311576616040325312153931175281383143914986758922587913749153994399008811360953640933947553785299121481212011521775646146420313367603874964430073415576722733140946764935490687496050377331966070799336354940823191697195470286646970885434039805122921458741348333348420127444520813066847076675704560185107273997024737412444961638470924107455700205660099492120593782436828672729088263024609312964930932798033071592938428273267660360245827033303985051010440070501522291723753732330166134083116881475505374387622493368956245894816565860044065466275592041427997816346066214526239545775991728382337845905690616436583479676699296538097044044505949456439357192631434623559519423038346717742767225983261670393046198945193125369893551474277602185106792073325213492418823976891183880523401140522478888280794823194160500600492067080534084074567091550764793355309374832581341771776075054422467567660544265368197523582076655786254025434700026766854190497820998895875176001113199393256268518850672757545603468886238536112665877207887077985790555742839989738449568142198346424996021970867597157512518674819563668463158414747238391078385981086057846069462872737467371112950910907322793136270142227377177756288700847595894059260675822721917187957830447412373026600479455762956539374783400674631159843641230447678947516003909557003491955896440168075470728063091073154990367610725978759419395233539145681179673974496785118881103141498848898894156020101932973465460464943258759649711395428660595136798342853670093769331172443785382624721900757992027711334275083920853129908039388806137231384332014104996086716258439166434014322209953597434203952157359302973555110592326542029508130789488629371936071088227365687030175406343837126477483557516864100099577556689133206781628595666842520324083490244207452082218301949377817832640258129754981538205906130095120061359867218939513022786418695681204270373342943746196232484781735743175094115139344099477830726127678482306764268124341937287485834657231660700696359702356754892767923777743331260319836000953313014431550378871543995113942297489225849334723123806816515350251927493921155550309257168369915024331063563759820080328905541437131391686933329377662898105604528353456414827728444291990865119028880832510347308606192689411377239481193593703611713178944141609123493973583541535216881723568384565485091912606745311633162789718404231263073183419033793159795677236848981290159467480289588089275323030484310516891501464693630927630797141594907230314837119059734779919087977352952677343640351271956827008826240966082954012122957366891533725607845137111199821988764523557740658726502907903665958754752127849903955644060681000153110852297284781716788530585463125833293601179598585373305253399283398831582969596579214330889397775801006056060295112325901652006792390171395781204083000512165346751896912542669054010453641107649344893048399275420824298377032014462509715676364288598181911076663976606478315662273093411674337923390296224333882744162665047093196781810475919566394551041923082629577056806612143483869179153883569048480092962696781129354931009515593519881183375752426173089549894646147307188052662830092823407285037724245297496279287425450474605521843672859764692990629529967015752803591846881432979469848829132151567060065840002258742159860348242803202957029106002195035696680903868516278574674140491496345621795365443873899014327065939204995434350678890794478522602492416627827275978137959867047748435571347145840830924800146203134177025306498320987842764998556622727871193347178262668249132713363411041538889417888285304552149143902617252957457494040289020793744863222020403166213122820384236869820425544515309728550841660797770981785088288237604738819166005638970581364327386582779960152727108005511609745548097602456749574348722461785979769310600122825246382503764293695469135510474527420363011597440418650526392551263973579585304924533640934253945638235535430079261935919733763488269006627436739905965370242735282925863451194147382404305057393566306202394436431692979953415034973990434651100545672798533872217985455335796340874156804098415011383495333169679747340530260530154696932610995704164241621759226077300439553711342418100779594458227922039018655827537080607690471576014916423827709198505596636710161891717701518917212272568142085936846689993633850916324759834665965746580406716650273727609751140942202003058296866340725523245483380148529597356752227292466192446289944581570196938904176213939396540717230890997890393483840953322304831190261265388691065099510181212185840854861627448805296267077002648174394209208743345450431047509788012454664096760016435352827485606918449035394587439175180913872970516471427802745768020624673419602896022276384576016817308022996222991790258698707587237848508544595078445738802131823753930782308981342242307169154053702213492788890422791176782130776927437350160291386861217851660520120526543017163034787521685214482972856134929544442513650556397726911547149495917203665238398870992609096842360157851564612226199403394187588363246906287632987184746432139267906067960165557666319644770244994744266890893193570405127365714556730415750266395839274906068865971057999835852281227281624681063184331746574952226880618855479273935323145481676130807684047921109946044481690901401852035321150811832339725596492728187614728706192517048423713209609122714235751535221126570916413707287013881187302801065301181711485816432764841726788774702963746777628601206865396455350424311060240373608696558478620006128033102617991857042898190165561231141574088883671166274719014374171459300557805512934734562140817500306918114564988486283885927692385131154098549850544681569162369645521965030881430913118155320553264656442081061874230291830779231876203446698258053688182577340329687385177846208746290830492411229252271812058533308339667340530660237929958067574662150091608086081312392996845888147644186892707158425043351292789259158471966835694813287403485463414826088052954071400728501577506324537674987034159231952129264645506768660198481669940450980532027527806158604757134529669591307114198621201500122391176278796983065201141198550145860501649036251657968394122846743175505974015863080127660989908127156483103781682202567768164837189351419438751084416734649344434936152523895979271006088816769570720648286731003688072579939406092098184901780082745131934617778767603316656128694549702256154473393228592012025423153481683181512580619109825501721873625505605511919130695841041617452750218976099341086659430628049789462736342789631541319233045086139634327278263891122221285746168274740975851781445148204265323836495451455129251511398770464860169198783618033733891870243760922015510053763266540971414174208364057094527068984623969522220857782563298351186848772515901963530443352973188107138112351253195077520760402413278149166104461761720360501083185588652742062514235351410740628196420124757186726184256041421925286914551088815548144779613452949793224187477391683601239330837993137705740449426343985590072295469145997919910257373293994102146796869471820217905613101844959661954079591443410196035144163622833476081680951611437385866100183101192208953083311906182643512584794421243550693392705601210789724460728456884037578804492766208438427891573891797092717868282410401457447967405489542150001668730854995663324006145451066692621375407538657638919967695179034907543669103690104085924990444401294264993542978536918725819748409139758919404008240922428818062893601005649685120828257830319016742800703397261468820142001557230124964168858544655065436664637800075688246057378124588639846676194063182375640700395800720551059016440013118019240247219965145094937045969487105533582777880183758421684272984332376264283739723081910003921803677117274444287424195633409761472881162051724306632004565202796007492714213169070862513997049682681186812526304766981099569496560113271263965099355127244808198864199566276179448008080736494372761967827257436310667652369648679043474171358624705263504040494298214765113602586154146589603745874540920755144550160355268068793311725291563238528609055917359394076710005636324324767814072871166287634155610233603073429493710052624695124439804773630790898981065070326127406039580204739108691877710248191470877203796491441042451762226088835942269035480087120190051172070447223784070752068793018930370120885109707563337966449836317844132165714405861839634186551995915958189751445870407783419077253884168474020204045158468635833038461722491815733457947340234343743132467376618471022090530620970716261448798275130863736164299062281398609691957175876569297754311038902391109268591118417448808228431110663206530806780635145831567561267697580852186652102601766695225610122137457723774971321899314833623636405860849844047510981838914502745866098590286804727644064397696723530260639219684743362877259132799375861427873384186126074067471327407792518561942194766251776471379424630765201695937378690847058614062804887844238593333599532520272387994674421839323220495198511459985711665015964295249133476608318395189951067215864359950966238317757152289512884662424784355925100020542149498276163220629228068047393162948366381150839659879838215081580286568078539540339976841454073008531109659820352884280914641455691910786253536819450405940812723763804769618015482076548491826585105738118307930104585007861173934518075840595910728436207255701378412427683365011167671544582944442796817965342203684286015959366348264015630555972753049191118165389849140607136789303085247750786970639148161160882010634828944425879111981781104972343312630931656715907949543628090615400971714080116318119182862251072747114530245796606187109004194198494407033497797985383846863207549793642351253636206546780039924878909122986287102123683699819104927278579790525691647358557179644652766768467472410361835521331210046738199835357348197231070597032708432785683602225274421306158157339780623282347551193367045152122587890410242349752436785095258471878330834127993247985585109964267056920682983931107090023929168769234042568373021596930861827898058150785774891498813941566095189350567859559828052230126835623728745845817362375743135727680955709276480423869416958090751051823703588316570158242895574070832520992127490080549283822296349424827683499889739797096515284767807095606341149995994227119592795412167176397313124208292327983548209079587806759215314990293649860527409328537987267701659485866559732983082134917272444080147279031149785371261442618141253878763502227086614122381597694547994565369093517427982883292738015370855693037345409518263733664988539677215936730817439102224173461444097260389426166657273778126652961362989315838268398829992450170806664443912439260055835472554170936896490109020170896511369511191407711038932803112847642396650110610656003681340505512081930302238845709658868756710333852340463548065699000242311247813666780191144395269477875504608370472303264345702475346411382965071012555551147431105083211561529920709052790519962387413671721488460947053837727593890918641212457660877384526910656894568087453096143093093302246634005318809824536966373764556597430756855905555764298527429644722431849309332886219230565978802293734785481481765627573543472337301824618631995967519308989292611590450966388554824796747891398328032134048101835315963682612736676706899146707099095053735482379811269218596584974132975513036362202329860129048316283902426962875400058840112063407546362800143630771421719953323391750972927343480442787802530762181268458536165948595289747033661012859538186546648827194765282258034045779293828213363516663652161843519407200027267245831118128300021649279702171476326958387079007792469961701569479103435557984983826271184229906191020271977099194153216301985445022474802742710785892337224367291820593598474354241918398411577648578019076084212624486377424107919157142841902947871607401155823647825524086845046226730746149937561006417892402339934511445981205268751227954014402731989803719660241272694718490234047959868568903282143943233813831732779850257126674834527012044074760525206923138414088791968443533915852702117681306602347998497246097776129930117950202624455010013392607005097043229499375421954017165359597202275210806373852106314823978042470112790127169421508098049850442162387907373144004151719518288157287974697683072989962052915477301372925242647761286422533892509410289595448163798596726889356526476778539921474146439624396868936222928046867346926163442287665210161190101184967196682550937850691800833301335959135863895090198590553599547615235731851531094874790309365501985997815286247621600610504991851580074491829348258771827293938202676055086233313745476733592158169850174126849150459059853699408940424109679274258307747788124335890685034387986012644114444278738781817876664013477796169316029943638754458876637437674708722013268866238861184202151237172886698054792908390552215639788600052045052218667407175309926004989727256309079414320518893740137971847284648744777650021153223611404384375235670030532564810202105280353999179140660857283914874695512361915171985072764259541551260502500403846866830177720063405577201062412700142430296628893137831675927762484836555016747587575651382984867154958164781674012281249134897850938246983483254092531370049531624138358762647810919722285481394923583639945826478071384765466546717281657427351586666883055490819922713887720216996171673792866670715257165260985870273573762380944395592653640846451990725181076570149598802033428136634980036565086727067130179697741066002171085052766528656936702108726291712910275549923177658168370349753533825840887614447294949121126080082699239648976589811960399952121126375424288530289806909729088537239191187600530631134030308299231605877930996282190900629690051895373236477063128221873109498197771488390351267986705078612474847214634824636222268489124382129413611638602110258947056376152587056203257363930071498366912136198125076339605844294971160444381912046392226430006795517341220169179263485437169216215423729271021000868436500399454534728483056842998675067416540305266012673442307369877475944130714471195526574114585537049592210139603926794441146707399666031473796721378283805173681102570006842230207725354644657635938479901309478471458897821255511933161001717942625398351879359643233462585059274269897697771737210817867963998128685634345005709888950103859156976180335286907224809409015072084842982944872224017462005009501281661790970464316241218160919151221477924445483317926161031636260752157317973858918889223260963702013331129447732930986622430233391709874400219968280777580303243856565123404731077046328608919679101708366845987709123285581966630286406010811803188604217389936341356939013002252373437571582110326322053248591109263221819915935962233387269490340696013182444699471785322213215903401967932862974153020757053998736577639325424953836851587786573175428000333742581637635227165637788683222766247187995634775819893656520476589841212332692742998546876916240447859476136932087335679972396784755723598397298764348469290290263277355559366805219659949389518453928241442246260979925064712648740615437748112352532253425938019425660149841033395807783820174041600164298842205603584694604126527236600670505191256022102407998974284284057334116032728968819302323465968488343913515796128494573981351081940266118413325039229122014227058627882407164713519766744951070723655951072179893119570248003818510774105466748683110995155853463310373227479442672735598222143335635473444415617041512624780160036607293250214037857754356535997376780804273425806445385698998240964432977897055225039811316770105757757279591321587034848921651756052883722526288792030931388497147459691388583012979804739672970402206957912619419852728502363137329000078413823071050142039204779970927639114163763506957633087695224033541123714816815864769557148269167287410269521244735845892150643050045714563964645517360060460334073735327675862897589986278391557754205035938958719647693399320169943231542908801560958924069988134463841853084742841203552758066280981990592026298910392625464140732525641095701232536003279237707103876908584870215997920132587767432117590494290277861713164210615827671366315342192559549223349195444230166305727850824714630323712951192209250356636879617825176845529061613388108230695318429730798284870574879993220404566231400166902803095632084857369905363999228886760062469840446795807192925750268043623033996222727556017453981234606674021410404866404540789958489858308408548976515891094887522179324699057621821697323545469407603232632135330802051213026563044375930587687960304385997215662093856419225089868989733794212858069443031702147487502753099656647999045132112692828813214198424654735586740340619918289284636762682600140483537656017296282756469838801102037333521211825767311334329173243794464223886596142295690959786989196119687377603916130153476832117462862377463117738069462474178815099409758850042195417169522680744267159218304535546676051579484832717542035304804230136495228210224772259185636742460971391374981166081730993104292252891471676994880255900827608203926472297924809126864171354606134434445870177581948165541699563170319894517690367388330141684534950286346638204050241792354083663628148457579745820243718958908008291092649973108146511055499168085772977500377125211802262778346216618706244497433496332936185233694212809087002778202718379446846955104925511003244420775848766089466476830599216193650507565098267284129742198428340107622139822597300261129954270083073785988937829699466336190560630480270679336868900629792281911565478981736388102216731566233855799738085775600092918695970149227479421586828449636629141864588409468508734730942077786405101359307026341866976969451813867067299675473940732618219973491365594007560601044418126804673476350849520268370590218429123803852482156491058776369738864649956094761611508060201959838123228133590548025061148669775143186197934649786040665017051648875610579246852475979447597607451164689641281659721612763018769066913886245193981331459161226690827913454148177168771339960766731041938432968846791621805554086904331124140880275292397544094649462162418484275898533277535958657635797859371994000506079614152011117661624232654469679016819839428915580608988000855746327558637012770588994397819353443615503025276921770479764657333139834129847917112130891824127371222046871014585302714046512188347734972361179257457809018329514869232088868681030551404056431923445856077714955579215766695559348699138165364446366200907151033260090888323776013401303263802396949504942789128458733340246699352978212398273453902569108371037225463022614049427426095856558216733456102665978087921509139146241550365477303043947014374639793238419747191605359957635338328062322409852034506367214747848863804829777502665578072533629866265496840202085410112633935740327542584320185692083987743616033705407994672442755007437958645474183155842896745499946130272684066654553554184177616646127897110113011106492537341437392938581598383438377671374068977796290756869693155778551069054895304884286023562563441467152926302959690311573614715291666668081759724401770651701063046848722487143739354625763496384798300560640901342557422602306834475023978767031479611642738710541265238895351667017181296568342485470291805446694221161145315404222507461465319110140506731487159803387096021873676067268849118365902393766232422373642753809263098740582866867444362285413256110482135857598988637513497140974676216619074924757588031734712558386899248321964265271701880892995500622170001578341474357636982503913466184190214326753774411915785169338035148373276208043311114670411941823891495836085437019944441875270537975717137983947125584297608675606354232826888003351087363247694483503038443584310281617952287427402705783723117078667925276644798768428012471015618476662774976294911880011668744706649316860338307841915275493709542199662659673444431227307528789391458516921804208981354623653691247041178230709349463480885552538657606390450711839434963159354958691402775754889074578234836231044355218612975817035582022435074593763156767135330046715543769538474384518805429785679014821330139028586307139618946592285364988616525079543355492143584136591394091396073109168201723102414169826624268788498581319200594618342645099262750503718993520923742722427469464429646738899288503161873691322808636975448496303985986334718655909252712639017547633838971266404242313320618174239044925081822439829803207577220023805508049766878856262069538423890169702870552798582791651164050147696858569368056223758975241967697776737851036180972342183879105788048491916995561319122903102605886853686954557695321986534679356325645505092943334420478111533825146630535661660064412660856097384068481883497680717082148850856869646308336011590850097703652620440578219244265583722716408206719005613507720906179108439731020062656269210694562554896206630708759577791612740903822187225004209001660646222951222683220397041452805978266679559254213037606711508952516670319724102188552882319346732717128933770849601609087224662978213523283704607792323103679109713797927446197358344238495429207335715577000041802782157635986127949012612903354866398209761125514370149225500763003184758934440422925389967868083939387985859824354446086355481798246525213425083398111880791905299677799396836348189608442738676763118732687974479365888002896659065132678234494626828611603502072097883507759585065601673613561061076821122559940772081431351122353560713553711200705293553341461268867559684378516947886666264167402816217442538483427787216472478843427428647515335830604853884356270441103386797847863696552045065629763547861348018017426825112911216454121136332182572670966613368079697515819490399056351416002422822619605342279039531861299386351522677341323912250510314136151380956783474935268275115741179317123249404166406341124303140223668933740504419930875320379108856914106753819330589092421474878278267722009949119555921436604925224730243103506975586943979759977392969540589093578370403624808971926817128243671826741423833975446041474172913114745282876550341073206842305230811021873329673641734989934313087707748097907669893549332899316717226930349293594123445099111435409629333094017407034232962667783236826208464646238507110983041738894621796502999520081799624556655729196101770442889053286086003980440396121481798506710273833817777655775051581587098100899711893324638748061200227258199596129450080061207370029712601454220903844001398381314284720156206455677023674067651693199106740370347973448445825029145484054622162386501647374119480646286579695049484783951743005953933447665597611259882792563903392541262586147048481691324598459191530274483747870815086312586668964688099584063221345327771886501941798795521066118864370233946690357762133782869959434829721506869324530177148090764594698727403877029106802331573874198424166846557306322753008471145114627957095615477375228066524136832577998311336780154936999132623629420762641209688110522809160075584901442832041691325946168309667526025525908330877927490048402766557247640638442498443224813852878140723220521652193484068382136144136736427080019124524758808067860391938719904982043149381930422545683499041571221747390032342870343306805809532824524416724119797636930108050647887616299255623060147651434227750003135563203697771875862421538548597645180769015108155096592752567803033366980015271759521228612871022250647902158269912511200973557914057129817851358788789162738472386583609724614851331399548275239446354929605466919770036137308333483531465307752486278334897072469045378526996500847487322285654489331696403537529713891303123268558760066093332061893905929727838375227257658433867091960935844381062499281062568918087987822351620826359897730660337400196188496465952981948227096150862925931810465813004109858654628603798073224666019234573691354398345067246070009247953810632988474013191205175449513895421357990422439442511005529173024697861221775243339148145313764400839793072585429654148270123994514303920433443942749905652977936535474002641788789992634214030655356942457693797261835077990289789558252801070234498820266149795096174936805030775197167877710725335746747370508889004929920295997983864044561180109181967198330248517341292934575037741411396312901295987017194045667107962738254447745434868790041012130223517798908214725920814981293658791607904787718490364696708748276696239227340762254937811762291913974240110715247772087568945026746615560327824039662600235030473745848673776156088742851847630814790207392733772273757791657654967881182653535934200690775231852509656899807623893888584639972473162963815446457333349865344077508378992959512190428842076057086281409509549666623554195703500035911351021782265321010155197422200054443118794909174548647985795026419221463646052837021810847935456087394815326714058458707780122755617667593776991156493028480102718027042780356987852568289541005241263948286197669306784557997080630638682507575140084165146460252895703567470106953906479197473548195072086536220523151697504487240512047835112971062415336836686507157774870259041761879159707886325247543484882520851306666292673469200652499352639694735594454317835125394699108488244452657255175678849937962835485320431487836404167794721286694069328787953502807156500468137425399452478986389988323077581423994902967832553451438833719460843406156400342014919141027715622660315011116341658162421319623543408767380897922146986334410023575508582450503594204418851704756581733011690994838463440571344520323437566450251627616100608766236711574411258396011930998196086310603108143556958093126066399475588190829393549022062383390718743199702626219587616815397337948095443544875991156860146364754370481094266433065335407033216206134487036386000066650301083502800922614144899638801779410653436792782001856717251155193610392942943230680533556342795406295591696921321697947505900649321098527582003504084878157874885369656343303724498106809963724852994742786616304109658782534571037702041400545952727498265880152487167273870013586502785758595506050905915552852333702221892995492826763643742993873021378266159358950634602700639380050044621868422943926596163355607636458613592369554536592076368688862279916320472887351955650441684809211381896373022680779685449638810247682130847635215689245790676679421316649704100290723167775953841810794454905512093953141386749283455799335420416629958768107702741703818683874318710859380747194314372781535096504120632474533464698654553409910842966849475518557702497815320857718609157893132268041243146307823949053337619124966409570803131954042602427179953625165325650439612053203285998346692773534016902940261688469649325411380812255673918348833054384376879559404872130189842664247881345223467021685043427406704093429152810160051562946565759998509750186801422525481392834366445317769632697812759520760103237337915198611835986829755512214618756108322108505881040350656951840053118886892787152274565375700258917479089706945558308462286207341349360881195930289868646953912067909744323756488586169127975651661482322891880715682510649775958132122359807185860727597711297846057130120551027097088340113399620746750112406351702456953144317176305215950635623029323640806882343529615819048455056153420522669239123049072476117910562999094502436712927525015665160454003317519694919403127495281131540637021786685499304696183434005307592232353234951859439727682098118301504632566257398163407311298545574843193299701893042779305736952092322596099001808251680616123759983073381598501036606150006119044704917291685343364209380584697596754859733400683406406140008231629584347896990126175950411509487979231831959897039483989619674814998817120565974417654656712591249987515613573372659040784884163489715710640931469144005584890525917079681231682955722706102667357786014326792501086655811505922673912398252941261639212732971701341529895598019376549723234738221453294962573058467019286699600263986590044105966133341527365680787172356003892125066658322038140338499522090529305386735967464825355122989452214306828785650283908949022764883447676106079543622816542079701017113759756971421316958897298521185182496398050907357282363982868039234963325247413443797579182918317359424482584846611391408028713602609050819956163955987573956170228146413328058690034912298379452583013254205514356803144699885698776473554274431550316312841774309721662723442683758338079011286487363431847702875805395248589977855616161670265203812069817958921581400696797745299357709321342182947216728942125378694808295168357136960513758546065084722364064582791059648588954253174951841810994080290589892476415722365660567895843249674122181689156102278564864450678079660286806324404491822568523617207464552737625503925634659356016229157095303786224623705380789170323297302540631361131415865556933875763454821690081526448459159261147213489393707105676574927926901675095385087474063395773383521897314324827465724845848994982103750000213526988184302731643415357915242275319356045541996982796256876157666113103188997866031137758540577387290203418727879340734370007672430671839762788350678423169559320235761777956195159827144285848271959555318648095830850302657558447173909976468752093791865665244850863321075381978362324739574989431436679640953817969627269331023167608882410066889381447896765801533743371056467312029084165842826734294561046084296169094001454738727686769580429830372826990140504209557720515396613231711957192515761856217943062356967839073571514566807685066427454711628564013435904408064441099826338471741754655640063370266951637429321901954849320095951567240170036422203474715748304187429118919169810532453793314858953753415648565716111282388458979508600499909068915835505330737126247749308226832339162170269386259620913169932146666135247924594718925028755302438268370856366533546573266033216927898841921755337777185964763744905611877460578022718789916242879247506564813026374362111713743496748911571690386024511105430228805837148770133393393984035985247906033795070435441750892946821453452631441326835059332215546694073742598334776185954452090445823028916400585415722622147492683048777948663244355225158641958303057321992405499248795447443975636188463534099466294840604501150698791769048733410380885583405998598938929709464647513978239151962583878408598395622391692112881785977507162098195908614225344846629975607054952670397221483192196440885934884024874665618062932324775261247931418581038347195332874060492074417724758856752595417706416891682825620044050271728787315549178868796797552666230094994404837351058845058349521936152818278194332404218151937696409507061030002843304466787964044960970529549754386502586637769699377333815886951874577178512666122386362232924338857650864598438948733842872389008874042624803682488673028957142179017114676489215851543679735331671527029118038480714603758707438076772102269348382010978177980133250475410498634777590465259786653313267321583864845423051487052953523979742029288280293508796621439237268323303230890811580647480639485190157077807591900620831739482560370128047980379444247257112403239115773729540149632631296918794993854504564606025055482558260641156437410476919331991903639879573841887695027691080314636070859015622152331117652247723107039048440607005763267030384696740816089520529115961209619931002317919324274261204982814968498578756549350127996101871795741129619462507662249576941754876677823994211172423168686942787798091735905372878544554296258420728897614695894201032850697456741884953092738031974966529218076617478836181351514062643207664374667074574409587696571966420182447667048315570066564527548885998727022482621646073050558459239348983490583541868690753076364256210153682409184116385748294451975449437036034400236677290226900319855778151255542634335808991817292017364971654992061708293836657554727436489203044888684886337420742839211446139775138187396001061586024290977286663848419133832321507941669160428444034423345141037090269387882728064745412613589813597237851344836985916905204423001481140718210760823408426196639548704527213174048409256373045445657964554362725907008126295952239776607971686272844793615907689768417187504280470942424034589767872900473347298992657542027643049752707829872409567194488596464856546564190280448453354021051049238185189239088754342607602554379974360036578799788853198173456456163079274373436072915664273703609958942401836774633952439536205302810424306671040718672880415995749174141585046009207323896538711322816595978449499178981533265757079275560938550311769639683290146871361470344265908527843504297480208160045455252563382429679677395305693218525299933226663026148717637003891348299299859180718806230521654190949939166243736004699492141623346120028270705524569609466538261670143457802999804724530655687000390794558973538230002563230147716585545847784067005174297265172085690837034978564779127335495507614193518214871146124696551552537913731220069815068947164694714065293297072204952270453297529232920692361076335385205466558343576465217663834779776558118654769220649711981341893385556497925486814736626501172100226225364952643690550988195911270402390177416048411516085615088241409668044942762858649218494133729100254694072572129485495284409685630095127904556781184255695322990363221145390439705697185970931661749524696248487859851663996109938587329723800429792141771681333538908643273256396683594490733585318091643177631571651206506520527733679330889227804626490819995190841055880255175818654916457229566920183377283524952344440698724395333924301408580055425592069564523083685274671785659279368684132725505393585470262720387014573713050436505322776829475369583024916060625958753545260127677648725551680605614069662488242105024394472680933836090293939413297658839240867276922085292221020289133353366885343317644648839874514453098509023254889238646845990796844168151237692448142820175728493743231333593093895048379327731055173370264370366875889136415121165422170968181964357159669527230635469260928967107195903962898589039644113449053318196516472599160530239301298527992747075553296534135945709318122362060092890116815363608131017290033477988466916093541166021842342967372041284840018094308393364971798043990015131766062134210633018928801925039516298440153534089961833649750910835753357351173596493415640991532100487552390049601680746445357043329960850841257633782897378940960151640050869460550238091331806727112490228535531449413779442974525516929936810704816711840682448775546898401883432146808910468493128887318509428243944513209400123417774386539957724867190802329949292736755457469295384417964413505104985025855298220493019388227542893736528147608754708605707816602909899486719942703599495123614676816885265056883922917040807108244048483498550245108220222031057934203184099290353087834526997360349593373915413601117175387012221133643772459324107409945708637335062907189497435309712528753973668181445751687486322051958035954806264813878872476078854282650445356262122089822079495781966905196850270329809894517581904871444054040111789355203612679523419294589723340399010687552052412578031492996744454682891376767565015440798900331960088276486838223025784632601672387102020797730454510335639777859442830692548060000909901068689446535221648702422697268626927180124255397977390324840160043953238260906612628538168270130960432197807379500796593222793702463208253321313669562889846834469990893746534641138837090529448995336528143316127236780595414578899014697368976569892843251692287415107352188528446003589522586621673605986507974783315677643815741003781404149388818744835275493839693375666118993495096491247070653133876462406815572949698826136623437535858371818036537594530598601333968030898711236301939828051140499443503233249459903965698850245052967776061327344513038238074680941357529832110903342966695410716463629156556093667063696362583846951566699641949222668729137734404506603132740386950106175266256765455189759061276001721708542601534411966248870254492963018916083345721737403240107462319545573855676350932920558622914605588539309551055973073917373802111278006838539692478203073145337104068882958938408753383714034696723837841019217187197845848404255038166961578102040054417832674824710477072112277198846470629987213463200675329091245393725202160482304415560401998997547541439475931394043749696684403511608903035202299934754661953631172777875530603663627849742341715716818040855116657669259380006213823670928225662567494255661070828611523298080294794721098033856232624025842176624854133583716720635415576016268476703696258876519614706068963151688655259770361556288993741089487494700128146746131436381296774701879527395028276608000452981894934481305410994112402994351836478838600567305449405287133364230062254559295627168760269898104805089529885518613389975172269185899327003955736856871577570060644715984639960044253178409884872662826824984473676802014238260101265096280463950260880932459921431229688449483744257775720205811014175842544896080102068911033877337061845275892463235635191049248642679584846038236196502120560642619685179830232860318888823034859303507268627458138732265791841437901749712673196698182424667611989563867182994645506145963921641676414826699505102518330708591760963738747552248730210127532286808265106615929874121464807154409828337232241426704784146207432865932783497869521620961765651924623253766281910062610102737217893412216014357300138041857102929960387108648702630779077297678817511291319691798017189444254506868091976286450720576028298238868847455671277370708946858924697984823118601245117698837501178672223588811668945665285377953548570054851724216088180331638949707061374271629108873070221596025118796603241193889380909311946365572271432767463026167931431688974352999461378833702831652837936953652051385968976312370320533560751550101161141769719346836053702155947524811131146211505838565036486838377019817000611865143651155304514037450888627400282941909079759636989242171284894241784000561148049047411840480746549971403794565589880446167748917821727125490212106272849899705049081910188453819946887326230024316914210593235802165322022300006516384838580136954965463047746733143437397760206993511611413255811989754736971691422779900119776011328414900164888179093558841257393580194397463330982018247112915498535509242080865850725455434327073513295375121556125215899508500764193222097515059541055383802225815308518156525743307224771372452044863709804169146594459920262087254492140233024136079178039017165075760399121426022088973189130025942974684895973442284269716014885596502766275411975024011868967304067856860379998378554074584862517383025723089089739148023841365521035480642616476216739667792118073595768247311503421896460234301979730682676293902270205780477974643904353933934384902039067229184641487316476010739171439253623523771611071267870888549117774404699389965186458098181787781852924147712854188504249754724164349919687802877980765286385541893988093625238601760372061261988532016515635195980208836247513215574994536428021440782518340909160368454484974652356329584824146981559120672310559345892053509934340331360853438606811776785505410767713231151193688017953848648624872431133566750530766588503143191281507924693416015088986557014676599996193378771484040837656424558633868568151687333781926176706008711812578321640646415897666908889364095817101406144589195947049834474327594269122010227085399818085685766034686292389229039308516388523766407777818313961025696872432108836812807116547544213792679711394288184669259481301438869115092987740659947663519374785356275951363164379200412273493671314132468302260952165965055091791142927831189720204967524807913740570284724208373284069349753712531623445201232569661732253134841150103340087999452825579185261503370904635186354234941177224854940282186822410047770511569760153263456074419238655768702979971367704300315784145943173603774469279270944910909797228207225071935429267509329662166346722726167434787561964484378282190338621763518880025524632520162914822986070295874274540609617400791611525620454525458748271797363133952851186467416105133827491628548813530096100438538124754195810060806110510144864016192239951300278376795274254125940417027248243712367098249155848082888472614178594306253372164294468435761735351800405872795378116507290981992268545792345911633819401548607297294430069897279250694052014377877589584326347198099847981586005567865434147746163261440243606032652681946024146753723892209259735779827206060809292695439271924956948381889716719668200192669043555829136862380060934686163518348782013316445280085399733065811126028236937387859198944118196092837205887748632874164319013088880264444136683825776861638740926185984550924167625076908297038603755762948634411370004348622998593168660679143111906894821244142555800258922978282072019169531491614427870775834965204052434725328006444802490310723452930069778670784296686734928013407898277718902458964702293154082880804775352787566822650267228471160914064420824438599117959418886705635246380571683784637891849371234067887165902759003621583095347244707204694671835960148582267629153647632613204406774463735072314304930870490992688591628569796128057249052998159846769863006350267691090418039696557118511610505291072375309463357578622921267177700579460320440276443521168799699690875106735978362727876004375540435470186712412303725199437801411208238461267595356278821856997332116721798215096095380219415328391351835445195353542166527824286279969189470262842449568369217098143010214259149072123815355911685925563702289961043727451407941315823013934468730094792418561745439949286051210131365393984828162786330626358490961047261700457935337751585882397889587676312251831188393251177757647469528521335570391084301910533283872748881338247684788680696879967107082841377624871954707675107077513204993793011961671333120806385491948052478151754739612587125134807508822999658329631993234495798348475125323219136523540835453127204141244455219295673735231745997032947458601866516526771820922841445832716522476379681327001533766912584557642318346034572303233645123036640466113851277762635487542225202018221901709977074397984847700757519798084770428269271389123358581546343837803824705161480842765114161649199729219481935950991301855743521357081787365348468494731463090939639778008554299243836653873584477240181793872004963102650753232607910759262909483933909511977261318601839531866630466764061713007158013558894286356516018915181258995940420219633407381068945572397288732603788657233788574816943680512529493949274476021169901277059140912148031135124401951260650224103763782618237958192024472059785273380465902610340248005927943553769251119739375722947994691684372849819555228285106519078397933421803003803326683254043226840393235187216659716893162073299287762157744521511313333732754752392554668410899362602564025810137069136635672260624157678836404646060955095486145415677814095990212057856304867165612268481683072015297828994815602910021604412209102381463071468987267241797929315453891812926402284227725848829003140344100851473749643038595079896969539172228515163038327406014955509827009752738433346286522936544773150725495507944570017199885953579412818722388115511327496008827866333082180688757023035142344228378401659669070625666615631323917286158891697005868185672612226873677815405337965486051897000749778882456896838968884760211865789832968302822351869215133258232908888239693029945117234423947783441998449006534209619198703875883331578827202894708940876024837931209180169109780948656291070676369434211832230651364686245009669544217470909755295469804001677417169508772990289046319230559710526326686422334253209508286657407277703437098698152260386810088494110103718235124520614804861381548615043372722842717287277104413383517744105958982127593823543782189648710000338619828175771081024844127593043471195343986963739618492949229481909011556496784130134117838912887121316210970714994854999289441349807710572659985819353415928554140694932576118809282530112169186559447849892066072734159052864005180752274823873704003446300160614272656803537465673657251921451811575849854264057940332623087768794506431643106501480707625640889079007470471969321992583465227510831508407880170888207052763401091365660643802279196558935016287045408817476061381319974822719110597561829088301177994943857804451404077453697432842318926460423450582366609187441236896178765461569099555314857580356679099353259111360252004776841072277231166279883459229998868422456844511739558001989765693942164594106693359796234971212726002123852144252240441228746234057424250188859528476320617134137919134452283650737525156439830425643253546426774128764888993857813298224739861696343929972113116763111579116892975913329968700465688421062871826191860326458052858039125532122767576704488788648345999717437896914638249436093812270878713496648588363494282660500474662082586531686412085167190572784827977368022494591491506884419857250165881034436654049013581458218452511053796705642029507428886735485089459969967117875948353062780252651193478386676121625067021752255439539648587848341316444151926038665060160154939097958929955630335699169797358221381742376145142897119721395768494314453895230981724606764670308805165330608771072316432033458894611136504987165058711995594736215491800477280085094812021378776444717632076112713436544595231422763999602571713796942065426093720834032481409825906176260576451474516629217010207425994104035566198396100100918091853595359396004541628953200713694028760539891179874806973235558758906206113798300077567498427632000786330031998722192180303761520719974771104690964099405973239376330121206618910041234979095708569416788087265329985488358046267418835790380822631682906217962846993617176005909812438002832144096699240549602659543118100275149549802832626466844510602496872268778847202567487870903254677687910121959426963838566629051614728360612067128969361474552414147422305252037260319817601867280411559625853663423742672874710104126211740836704051428672043157410916917844196335405500599083499343663446737347943702457659295227567304696173666288650746861367744627212172645896886957314165756094715343787408853286613816240905903441476562099245040847812313384873066246734148628700760217620230148139596620419950794467912926413189419417197481603875636969586893861304567289583676380874296255301359158827867521839557805570705127884204462837289397861526937117251938302375936028601858821661396966687811656314345063794551856786723517282657890339479701105562145413953062106968371712291691016635021176513935933107059047484226709770284028708874841655078679338193216688031717656902427970837350649957423375696393022375164583617568009928814383940589629294535168168075350262813117982222584183008893266988666931936345770748531026848293058692726468774803952915860137727952648469418665637520629556223322435048150998156044144202705317479370033725485979710830629427286928812068988946732215411017622507099171375537766454360855558385955555952563111090903089062585217447808986271230415885923927790725525123189419132791453132860162785277178883413932955583243601629077129754066673531269787116144207027205959413687788582300535944440630240161042497587473872770604244742821985548995700752940837791338989171083891753244728426849973686122848169649963185598661810830534943169439712007854931106114443623007661976728159360717242086342782345781071877939720253445380135031025381979455428793081548284511221579834190217432144527534572888668058193842653221659905146405047317751134969418141416252240506834093625400210551892744363769041210408531598630540620038379520712057447829993911005992244607176672579677395360200405998391198693360270322313446758044141821879934785906607454465718299480020139635119996416011473186966611617579620853822952976933344231051033625462342534386335711840086772159634152695928234831806300872732922061674707294416344414886837080999088749195202904343104638003607476453848520687338277441626692713896773917837754730388271152452660719808627156632779463114156353218514275053255814211093360993973752225364130679458525641985882918555075821036997866257823057998734551222957114862489427390455618180707497299638401681891475181041519981887793148264793015530029105099591768102215320038012259535214292970224079978553603781856650769329301132564294196734641550144894026219060607592928919904328112811457168349753853392976614534451761561231514469990557966022703513682734276171776084580200771474949957295230626960568318451844385405076271658106480606293982901286417189737631191406769141256820027628810184380565154706595655796971284805905922713079617075121665422145254054782131890970759162124987519477835603822025615169140764172436764885330320781546485076356240422523206805432873686994767588221380448258135244941043961618734233507764543570183386027744761572981005708557898789548000717293271319604833815407321814278988183929991278651278978447929720655018349542317410079427426798899364685690761325964886930858049097985933921686231692973271518000548535875543373186738227654088342727685742131702228117681748983497201248996518767232545027347217942656284270579583676916082806356221538900696370077673214955997953881168460606956117428727610260635773887108661077085077171665051853094639578730882365483855859591992544083274030915537590767072213170643879310381804456444924909194294789974611902237929299542643663831929894346156289339992249332898774912167236012530126316147286511579002425294842861521360639212463680375298719625148279188495326759401151581836053531526162904123644980187566163362095396040246270774310714778922701479388219945172458942542475671380474859998880062334313543616479291533632183040622993198586842586390392168588427206923157282545464340575151222644228239315147698418214927102831647354202143983693248091372859721764916912342678314780724942852628961993956700240579711997273945246886451595697821870292421216217071584037255889439903271445883173968147038129592522304705799143342166481426595943288742069342377497285789375867811349094408981576151915408213281607735527119920792940709459203377637971490909419503324329370594778717217669890659815278649326085793382515268691186992937633167905847828881483039736281056778313813658834182620895534184680187450169982953804711813533169529184203397236618722174850680290209884891633727512031932799294671784439607445539746347728621794797779586869755590372361346251406513285022892764851429395339499788387548764379997247853855259252714682522074017729799565639158131126634444794111795487271936005425042539748422888791351563703726874168854186110167670886496925122797824307080398943966023965293715367787712485172681235261498631185206702757475654260451173715833591284644207996166110618803823812050208205617187331728348110263222991301269386890833990649916163442282236082256172208778652649407115977236604905841510534015242199193392454516880595472479004177335374538237580056784340766256550091526856312399167337817913672801937261923380573863878418082419713275319420429013372352683344434236271689477583510334966523920459980847646550787842057938510274466644549263658548599331268470489126289924588412356289659197355984502821947233088451859456632457984319247303144311888043110029893106511919312706374618293067491168672445366160342355876013753654753573368131017196625565631598759259838015092620924544011941754539911187366468810062366719075929602603869997961106308449108417380114173790107895440440787569089988254029000776660168506732759599318128239428692950755183084812316983192493963418283362300873879986415366310045163905118124167496839070134818011649076248230841158081773450839859180453823216531994054678506173872299870459358706989810541487788563478349921099071731359937473362161238504096163361597866640678212931337877969810617124610742166634481063936038638591446054791559965510902386949468934741961142676829962691914100632771919448965104084163585326037845730541914969148946711454492482851720071892739049510920690309428288276533032835485780703122963416905174764697801184346183738942693300450925931636193643197751601959411955200577337927024679122152090987793019054712715101850166949566703992771087814049741679832051009665473794367317504621488627800856707053559715786352283172771936549811322603599147990344295988322900549741036079015784572786518205841724332972767495130735889254542006432629107650929917935117965073663253106044981486488240128118354622015659672263277420759850268403587492055887399157563401341529257662603096305834177055492141474339005130179748644635366059958863308020351557020292749631820587233699002391922678756627607843283763649989134056337863045474467670174980515419387928652549541630862390087569683360020050334523658778116666073036528323502136588882700647194906295010216050073259613394704488456877172431292976410807847779464838417975049519751639884600265828344964274024403389943957799919878907960600399912247269882386731503089009381635482510507305862294699226405373080339928379449557589114983285281192856236512736657972273678775652924628337566554724730139459679237138683282691462761594767674914787697308941883866922806691625271073994849870374130015502995392820335597498978962466790346783784788399601894617435826963520166945615584489385116955944020741985869185254762201867086951772393321664877814827058315001768132252414477188734795032775113069220486708795507975926971392159814062438602131975683372936814509451561080852438286119877483401959599485792522696063785098717903578513390608071399563771422017859368329792744635399209977305070387609466168663485666784124998545627798517217288967802003193377357597132179590282736425942353983978728529725819605022124051414665674175829477875457226348585344413727075306158694906603524321078914957008353587558458402824589882968586329379578160713714450360503201462809576218292655280954620383386839844689446881361233486186272968955508351266886508534053108339565856725376136303925354757040200871007526373796626104530197132801195984249747634860776525597192056182806803919714380255300661496937111645345535677033053008803566228062844914575037642782298296725125132378733779955314913350045166635572920772669864225298238208396653045346962826225593500449279880711154637219305549636799663288322090360789750302830821843769497994242136473610041193086118883695362257562880208013513466068453580511279472217356685006681808596640012391994179911209317136423693179657229109755560843036090091675328488217805561120748251320063532761896898068130249065171514323201312430934874144127933935153293995734566519207324770480906272480377788223994183097484828131489290828499118808481165362526398278871089706631186300405971758979286259720458596096459401657227819124315619923973336713982100718922837025089014314707918490885984709982036739033241967380624606307974504930301786968079343205536461461142151653098936896402590909237595404570285686871316386555110866857695705536012709046207983837276414607068484403456357649622600760869877182761110834464522754959895105659275551519127891827437389293173447738839172990199839385174652516534594106158467768002385132499171447610538096480193157885038279549426590413891914025632511352973608746339242696920050381544851607469183342221368230311771582690891710876647107128641785917292540646577057485617103797176165619300735145496367130761842772289500741334084568898619989163449146590590469522749099023216094522601750731762519869368191538075658477186112045774656519570396613449667876282528386559964624825639288893958147962657621525506398295715144632599855920585055207032078629681072598670107246663368039354327501804858288378624308534360807361591561506498107521114504756226730296387811878201988443641537767409899194808473157094634113044622385442816134179903098220160345200202544834082729665643932904902649522970922586959530173018260234840552079865685418646428234386700662751568504014226757768315832586778186055925323536041527757501544553405317526269933533884944916533991252037712644577925884072582617568381102373329268004406927389688630499094107753996371741396572943675502202454700961921878097193780146344635300737500278483200038577042100863649120228877086557194043330706772689623950444196553046141973491455421370612385691683801714124076147345001117724163914998090932845956658308149541561093978719605935001110320673546218115495889164123095549605702404732477401368503074353093006591320892811431025765515699620424970466820072453740243275435537943229819572537942430787832200903098346159759051590738239267680067023304009718918580244860323091275972297767066930213150419112899265266121603183948830390780684478165848918918219671751312024588988915750140178747949384197624939007265776546947950796134733280852098476361468075202250026603356702814296533942490860855561659783175650990427655160884682026603834550149611742147710517502494870612393200057292168945178262426767393585857921456588121102433373796663070950728138672115694706406901560074331826989156815483536169969254972136630896308078768884671351053255967563913038503776069009770303145206429607614199905673111839245497515601028552983662124199725771685472808207337687814833429163164372183812864681557727846857295285372538066851277688656143370807160757068542517650490438692066054555898684734812275862111383058120594761523993790180173738162266346246361945485152996729137967032134782618797681337233974101862638904379261773155713916640848893616114291632326290981644532706203072393635241984807597318239161021647922609969705365103538835725177296082996491441426399186832279477260668563547509342415484712014796165180691160012084759756522916942305407055852656647637440931339776003207430629809196273762595769851719281905621746697175416711039945569366263511436019842663989889214701119773250227023360004642918779988334262541258909142710360371384358837512691724080518387248114996158172302635479656146479386394041320639334663802523706616725621169782051287811807359763378319910492062523449392518087002476460588351225579327890118231474470351719800036384395818524920477391040151583689817517855184951181871184332676966268787179278703737733378352288163205828276306182704743958334503829797813289641156165307854969432605167233869391885163124911193446009270120413563115217378878394926385059060198134165083279989967131597410521644622612124884828958878675575593077875253715074560702391769276068267208495513206072211509611492375098411348372785365956653930335528527400915931163840825592710240144335121207264255316520346061327001914693144867347326091754757963106956958325895902250252815493938587268012702190752099298409716896397238940067277518183499062071651672012880827080226388455265036023961749340653997035644495263003495095589207181421951963046846802618593478825749606325812246416978088039747501497352400743030475669315452544186160563037429908132431713811330271146230330944450934872538864541390522787140782718932146197035525029657918055115172714691471931054239981670981983342467110203992920467383529418263234642939279588858375888801338327356922841164776865805493087296051568635805327255491830623653778720153643759121751972460457401250006195705223718343206604892930347345264665444766642443539175626195764030565513537629823438714175670865674605991897949132334093420341808169447138536934995902042736528145547931053243117202852711788157846912926038018968253113648590544482626675801935637751768400047816129412860825094524017205471031329045961050863813099859276222243162260698996521893064955652115868745419165746771401509003869171915844642548208858988245915838371694717332251017707380954296306895342114127081502764594817483280368767976118063302539407989060476710317699985765048925891980881424578574121314792372407723566107419756075361206468554811311694094385268335840092030037818748065140591929331453903444052268667421918071399842890873474198880235261064055611159179310767318395138708485194599963866681136327711070428868108367435171455566319720373315703800618552489281352077039671118685413924338236559409876920637989016117231331712511569061041001722989410350864751503976364356920748710849281602307267930644578138117702262031709216117535694799329712250874621461967547337210167346929656209513219603368960861174949936164334515692056301365173989097047541981070770950505613753849262986410681249661044114574652778953874767460062545218605853309644527759651285928402369193265409136668211254145449893647441020247791219239499811924185960740578663728603607751352787839138334391587414566860600080460681310841809398081520399229811980146237435737412959706296721907899009808816342412662669523083958605685370057048416452292189385481798057805262772500251721047647632469509686775067114656188705193389544118351924655141483543793833938142347982161379564872134295917561558004955668123324786877484319508894731926337028797088397000425697781189233369997752052030815988682012680293053865743164236266210149418676233361229358441186940517466051029288305877332115041006550997131528374364107956933968775203145216230810927277554473628721254441894044461717556383605081248276143736364778690824314671063925941003794786888524306696237994958934576539965696332404722161017729592753291397163907320938741686951424843730703010610371729652518052895675439098759354343856732103150460402721211559241836628349203548897798955743650629694665263780068291693253412321455765663234030461214366302196012306063906684783590194601397395472999704663623864179083666371231225343694611585934244748477506083976346290429571556834962077651954942780562277461967298897977375685477100183908282427940295068642954672615983449475062221342160058584107457449912058638908288530021989835008800507149295441895620940593792851945881692849822593684754696793438265105170146628768001486260273026921862445344511617974024067286723793333381123920954734431009276478598567594756850519875803762168895494262322237300578690986713565811423034355224014781758623390062675213337583772016377300911425299345092779662849311227488176446101242192659850762801018215196961293320613347349555149135565043894513807876832055707001184061611611258465006555740267742307286216837810794109396687305617413456041557034701924221062415169157169668896960164582130600163966389242221299802681037048616069535775203335052901254946923753882535404542352648830866312545421224347086230449298035819633749619971585659259914697757050639622361466619750356674469926948767714088332153223944136154295700299808251494196311449589146176675070670905712858544057668318535334031681021840651760938254884278089522666638775168648234062137079563677766110211049257863328244664548841128002408976700743442725814215873835615677130906530786000489508980932651217728152872028787195648038115162175755177108059904515753740808206692260091284580922594870451005944618127667014167747228663335092406839330204486090067144980751586030893495377810257066299394383279545755366664288190427611373882823894821259586210713109341710983464446773337639923915866322753328312310585038549549629059864215802820866363505702082824584867246269512428451539457966613816699677261162164682058368235436954502618873363347473930035964343564869709430509330284403001420117693731632911556395529720668110016192709605056792835763308352990699981885590370069799698528252297051559696431431277212251878176674582654580033427715293378315151259742718691631288736869610206674898713614679994622151136603055845850886475530252956007340924611901924962078446332453397506330075119600976511067839810251939318825621398881849234495294147814556691787877377183707657895308861038090695058975882927878327641461019536475633071609782006899369099452342733285096117986828023888669399309766354804909897612122502221336234957432010556648656108506447764773748289387576202616196671220027734286146613708301672558668082542305994286453653431975139014368679444911001620699359598855613628041818793638025290965016256817402388441226733150346505335481363124606027067142907296110067146294270449620823381199475455493577222655571450705614442677224616125834690283498339091911984947688852180027855435025609222333817187875378467539346887094654716654070487404163033850202336950130678402065031776367445942307715135015327506315821497681372460208042716116898345740971247390149789353288370202927448012182534376432325506892917316310222285812690791995812845682584656687153175491883294545143728376664197573514778205422069798799343324704623121196456663440283638583103113733233252327979870976715206660857249530771601297078904018118823027390204287839939878716038886175091166762150591964072216884043124154088947854779186786028886455336777203131581027947735123374718478325382574297370897855022442508271907295138258339138655996353198802475677513336271845737422328599184174942125577827552888824806396090564428978066223169678549518386516882914946183781344743730941725191541872447121954791277820424479973878038565973835306423342678763408459406688997766162281435734533209750539742563713043504244130928291812004217899671646684256444329086734167479297741180656912750504540162230892703783106243390069956353251834059738648070496871735477181889638615439391463598351641628553203066115589339728540804352354150209104744776488021742473668456831082638902540322853178408450800414620672436565877931186726966374017675924156693095542194739175523994252216623656485488973694038442463194566286303672007946101176586842151350667725664791742061882369327184585717402522534370837796425073942228750721300074087413261728469015515827813873297305779495069885827640091084861051726860645991972115328385433637625606387852559347124080924142763282896626658648949610706596848427986504029517711950488588430018478478880007603493930109170517413741576397002004392717590816867473606143595576593049112687209972606336590805320974839004480631471166873073470157305881529452558476786632573975868979259491128943313740896529327182197018167407489657123603173259090690976924962493090602515891918967387690935538166173918213910997198614693276734502795699762512272119590156630554439862125232149442077326982141714395324011228065068938328819537783028528437550591370893048167339248130842051184952944121946599813095126045416643159051826916601130238092512551617371887659669215227676983299781698827987829658880868662268498370869907591034872762825724884609166916260946381281307862830849939326161097363664310444951365553260331136424297434016350929937404179351415607046371108374773205299456661096152839700729690432924242968424053421673830158091454162136490792506195180227102341131237191043558138366343540404032133321739874016651918089676128089223511041806028056052872882515957544943883871072428153459124066212721929994341873594238460822190361040136337125367561029917644425085972142836819302520911025534864899203616218507257526698966899729900099489036031140709368540586113392065234496579107523502428629274517574901220495133903276448075601424684944277627883000525165329881058423478533675364168367928037339326892475023819392820073605862467633190608567284643437468990226694245136133203232017574891204818287162554848435887064691149881915129917501084772044829422459423216771302427152940112831258911178712176284505560343834040753985877004890970419378866034160657681452662613731775402392495029128264502280744588107268467446105347486672458504339270469706473376057137547818143311205033883352975242947272548014887828475662475452175581651864717124168214895724568496788899047382659860600698736087374108782775390699068186653743473677822711322575288030695776293603593867642034647435252527483719561593838361466148246428917980038714537979778643035966664018778549674683596220090913820364581714026634910764459606091994978210848090683831029032334138898509399536936881527452549342185733148664540790711941572801174036985264400408678043184484449771655099288172476090880721543415728020698895613573426593024585073311839670030439297099041366557925441887089393878412594989108463567388241871729798354260791793416936043449964486030465038021054159268902317105276668784344917754823639920971160947460920581192026709350259583323606296394962099827353124671469645820650086455593849980447367581762507422886578805270695309104222809019917078261466001129866660660576267080176130998345810180178352627560439692131019462890819125762563543438892990590340062634123087624902194733647505183725208006725431001267222983008200896438264199867451088987585082668164429555572648134154796763456692135160740325611447386888312575760351132972069489626361564576373063702030445012475719726204291320450896280759263577819015267184692028111297658405268762793853329029722593878684445440030637802042366240891730085694987857965664042211109447747764504851035487836233546475937377787386099524367046272953729220361271862119134366348814652283657359053882884125679252280496575236782326110304327758098126287058616562318606633836383978287304695768148426012708156066281047759099217550664723020671092175935057970943550711416735836963906505655869084170615085741790297519138670013871704059537388872959065882242953570652864469385558830528516188984486250424179072446213555432099538112017991301050039166539237449660644611998951302297080469565602168429630153412619603880174261569826505153887608714891090371126415775666695263195908056878539667761564924445909511752322653773854897997312717659629291243509164214081871102516285665649118210012282076955504577831843001054347256966666959970217930636207328547279528727733494880051974153530693278397385412808066202308164367109188574152795021334436518605556664123716221008997626923276762026271538088271472577276854249757769216229829141004638404964856311766564970579305486510384620668879460703893180671550869821406479205389594786914221548804787696244117330605306018889181981284517922221604042931650859137105159311977267005105899310653494125616112613880178096132040230093345493738898548970062326295259694102469985346480844829117754974245251965511155578871702245248257288000369674148721771004864342035783409918833892908106745377525529701665831646833970848217913323962198374618296885398846939436896030994499317306890227559655142596138385522370069652411219970693689489286496804518568187644338980533415870792905867262241167738544205784883453278713646094071998186071389892324550333585740871839766875438243184202957790229140456697958784348852936309956684617950250558401231024755563148748579038510583642026437095119021332028647017719845144517728469025890904582442844939008636241951165184234735121674049644703487549506887324922144675256641123004468383473142346493981699582203020885082338330583684406595552624745193032780647264117479495347708787769575176352119579676676303843115397609798645309681371112508395271040469299468628399744682375958364527589827944679948251452024959518817080199163551659599001653633048971704373597784977409319368870278855216105541384118598078296367313599531452585691363650007365796722660790490814539148767124979569270472883045835882003255922519704525039859397867514250418183188553964521353673423413732628667518090021868149360543738153353571639716882430277047778199464218256217125038848441291571801920227295844779111086229159897668359275491301206494827553028688291394142461663549429417345165181516909263878625805300392125508147515821936788465447462639498782521036507713426728304087869983500427232782875898374969521050730107862680095149706217281271850127907181439426376578009166041467019069378395396879170527200896446720655395265121278925251525343830059750882758648815097620509791215839336264181506105296362318498031492625845184515493164393169984251111404900978183257502781145926164885151542313446529746077483378945224822983688693590813110950207338096053928193027206107708212297701599440371606669953657618165518256362209865929749365601654553085271161489971162390643447561271841584424800103757576359076053324073842422654718305200678842585536849395769666664291486518913875691644803792184205142715254469087765481965981256425114691114977044318681956479172273876877439257470207775470242054071961723714744439609347874111158737199475833708465937185107868758824858229554589625065165054760077987062617633749960663481505076671890273088836598081585467444573216561984954536746381432663480071363317332676848189281898703103905881154244850540481610013864851439781046658699942686457771204464994332152154718318147681275253939737946429947402810552289694650501499680065994732869418267800489018546267920843882491513095390901473294038266583204082825585302311961073782306998073061968245967699217943289606793414934988323032890682424910680563008388572107632061181731018499507360746050772397451396187349482415729223716659389875607184771061291156112270135643283634441569345849150407406907612399104379228706724025634766372779463723876805198972019987608477762691358163781214304215292377722279200611954929799302004337543322009561218619881652113855240637281595582502431562246819143207707003171768876229094999734030656648854916159493572708209369350088936874110657223234181363833490020405728283659570073130571314124960285685118598210558869011398572213211653543344203146175211556160189182388052782356364455853664613728080745288800082189570589538986907655994152504857634335125529000271248318526000481116203556987428398598610680842209149796508880989267125545523383721661277669812272655662091620192681207440585387426189355190227991881333723066852628581952379044982336896202049507249981402035355824879009571546654038907152469901933565262124285642608965549239245865508106184100539873910992999673426228498588281240141390676175791416669624022614964824099499096156401722152167293233599842589050786969689936368526081764675459099840118742477142218958429452738045435344204833967714463598753936945771152743643861858548816193691171684056452582925703744517881271730211872635251233264589860129548828594797856333938692214046232341031374176186500759533315902516975282157365526431323332486092310537370426830136396751485478966185755427180267590063626266822423453738074326192462006821791365185722645245192694454497303001029664761452434251728271847356611893900919264637604273238497029587045013601899957909415775582181078332236591532526391507770192215219426249128829691242770112738500315529932046218536490071031158888425614243407783891372400146831643628739045677430183229350856921472463030583717650287483505630620909852906074352994108816947138806244628922230426713915553189407460364869723228060060233555541505923686947390810775814577218983093890257913859865089637725306656669843992791127554824572472507052877492574282787802275938118097155697701873469210880489501446635453807878050771695508723802830012388144218848915076412124362149096695533571460857108175336249086951675832638426502102142755059814696340853520001800416372600196331376571939509485045890143809436806597220388657009637259491680390657581027717318360421200590258298688172156820898438117724804732940427979760793441213315350798035086529217188426003470003704022305274122570828663630221526798083978848140055920302996410035813721412800280598078545872255738330232502367299180080856702119982153342543357229341302164067261179613675060940712664208062617721587918322174364587815900920303155394178911481957849073270077022188004432463223798708382944632033712815300941299997256418938808980052840724367343838070428687283096624061562619722114942481890512357698306302453971272243420023220621593767773321060628448901695527845370046179320793311348692877682187549366388515753675672610136064070305965842234149566639183921337579768145117948416336064312632561203748946793878155973715719389397848816772914158322294311699432754013899268523312027907772247489016290677161635098535544958510241046336857816266843912974267665311424867897385984288023966415607733222841773241823480409203932024382272754642502844470849197192528315345660795484092422789513212814353217640701415945582034304151611466623748745553925856850728428820821893424828500511706816536007143630110200681370659892032662571482327712144569087290682153445426553772520945454182478088547508517543183697261205576462108075488663509053917742158185560348260931301853474112708594284502856027386886326642256484521629430455058562473201681591733242371716937279349669892180457742706942920838014395295269257610039919179944019848001073430635770861305138434269008980236838486557727219241186744155862280200548183034595747470932935050801524900312411086246300244164283642101055505090730242783980030655146505426034443256503919877832474957701255600640800561572661064324240529504402208343580251503256191093072206659302947354508827675471321387458134468745976943904370096546377931754889276326362616052216934904733729682679350624163429754313067645210664360133284238600430927031709147601252210563480725305909544704909777345367490617086770986842096174236057196794330749277980525907651656701829911954581080407018683579969781036755987713184991732836267318990039753055037325367650066659929732575131439731064656090135833020673856151784562158035948571373993095316137774988207598866249836900604217150916789983375597240161972616090557403985416509733143626067977950551702865839630255823366384378564052447740390771058272206030774825851755896812466137487811982153273942062918076862706322438293496123645773008558026359551444911688050373295473066819300865585460947991873670388087615318134725850997554125154583267523576910983611547849282720839886564994701179115302837182857540944469251778445453716926550424393451261494301573099103398954730859822329423639564293018244574998095701254334034138877774606653688817072676091183944037957999828817299050008162019474914940802946980936345932995599876570394845613506563818890550174548541780597651136977464129621387781442349768511648654352514353633704198000887696142342456835747826396349117669995029012399174106704186626767266543348350573326639099414488841399907141513198305710013332777438938980812469972338002634998269790798646444045574381188164198827308083941087887619862848879588383101959535439039806919794312783515168914085548311954083162087760230270695631117144209584904829924279213995868694389302555308433430912734938509724978937165714401586984893262464064256678149566183189660230040111663629528305227248533817053776100460383676061047492022607088979041006765398131665328105783373099392081993346992667654118774791204448734524230859837215166879306060488494083823267382008504185211309540694251209800984585325274352810769589541800277561855493811344802124197074966990549185628729673241263458742170180339372777449048235059472820088825313661540075843362795937890934014254292711358584740303219647018883647624300674304791726940740793899222993286867826394150766342896478684574712506860643973625712326925823808734390964171913028023810417590391645958884657104399443151396949541140994198199256942154423525125420585752576802774735140996351663409373131847264477347488056358229151199575708700031341543775685868005232818045146280269231856827436127468862643208930755097193559770141174351825738556036435848737715575775652358499905596306852163554570579655422117686035925746203468904610831333342075942543128204940501789103689035386621671756980615166676066424043384019202903763343286810071970701539231041200412393608216952889812026245305164133513884059495962347689794253402575094574452397466518870145465173311061441036032470641471879308830154667358201995366649465177755738870197325113562180220029175632842228909942695678079186357571667767278152618548182678606476023397761106867833854850035801561360592851667143731948903827318597921608683418461662951110805060552376130158454418991151755640813846241271089118289871368430180235411244723303359433685132498866203308340580995280938590885904069652393376192147638319124462688460470967267171375949648100754072716866711379145997172036073553116141503660079582198420671429734028757500267259314333243861192474787846995215021484725138714508925905058742487876553046386669414417688611414182535763967178160770633255202963270093902152138586453994691140183278017147054663080234110790192776873681899031491795007521026594047413282754941458886408761292366089818153457613044150781872097847288729222803268293402624334672479177315646547248059930555069744085941573221523068990815775367639475414742657515068949788976797469838047743451448849491280934524414726999666037585917313206114267153062687796623657994259140609774519164054687511840965917570411906940020581455388256481838421783051616237984425759369457159340124063181167599412950554409919296881102137482114846327579578040424675705638691823899646059023486078765182297518597754073107798161616218454752366366356212402846087951154275920424936727381540710533363792337658178911794802110581211509270499165330716551678359029414535630331507172405980235894136453250948823090774183213423886131874781062751634388276228599837297747115968416427381089519759304658163720830465979629490409819313091547900927651759404869318023112961992127335509323983528723127394953606923496644317700894749315332371348811537284844759755903450434980630646535815664770964811631827645498029856429697828920015789395108524745595651221552346244519630555206434791885920320793729847997889400864523457823937109242028220806069697787750723387585413829387623838293880812734821915623456057789059120200402019596270562842239571191352930140474164146970565264744880493593194853667566714363776215299793815325575045147370713190365842559391835784226172984179005368831408937715990695981562460890865130306889074628066200451010048832527608294515157010860504580225725630105179011766993459498609790601106592906482297985889782008392931374228327074851719110755307205848328423624399734803408958163201316303711120336501669136404955713868006207778566569887737563522917298190600078859114114697903622658863415224831654253101626125240151608912404108356388961031919238530689587880016234684154986266872295589878692488384598423233619886426593510528068643717969827058384235378596541361961975616679523540357791407845274922074770165569849041021752185647306775771579160678323803386522993772403488005957528049138080626752864957141569597687298695786783116056117792220945593156534693742754908814703707938374453079443094278419476429942393469767610584315093340869698564948261479410612823931716132947863426763977371599975779136659315044925581185199211056281553509436610573300587749392793420976952125281641306153225985163564200508691139226587316940467058826767448468506519590531769542665407125168081438426090107779331416016363089587450754340269986016346001174595091642610758159747661534535505805287159919519562933250403220489943823382297236690665568726304392562710072204336737755402532518335658598241565488958499328010900828382757800196216781509588764332878714211351069913230018234373713432588747902350746949202640959012185459056370251473059782413718006875541365039745775668386111591883563098830187133260180812605542885872284413188458104168674485115902148521908049035403430421159613107560482893624512273135477240694717072574781980032024582789021716805336328237769169163810085334139379058803845301620980707571469574705356714123505245217316297869346444998659064927459826824374310705378218879802012079409459691457008098329097026001961351056547795054107748743197234963948867525727424099092497253126617422399098897234995694604193306470629411819564613655034252158519305022277169402147357413402003398427432492103716749652268678737742884466222936023808674049922911216320305315402351060371277316754930447488087616862925614160323597338369658692485985409873242749504548194826224656288142032046299075144922050239408201051505910720648263239977605355322194570717292692882412672613112741418716392771766918834470826617813055240902852183923424408758108354602783962028416721115007536531350840197107913532845809547751431520166586385027354569734579809347488657531076084449784260872937513695215471642214546116632165651367583324515929438979419122624009890265885981617849287170890456154688073308996826789704364529791883152130727930481976450769291573446978323086764884274482983607834326065462248304764532782617883614911513081197412069728933796101353655926347700292190613141441147767691011442142150592596850347639661252651384661222335972389350656885277477562184747793005002438579694628428644285674127619086051605469923028234531596559651477839895522880771043658089548166367923962204580152564454760093092123016599044346253736212564322559493334781707025108066491360173295924264707577749746266772873093110333313921867441978968562594845008964756831073303953723324172311202797316945425629383372250038163466613995823533729215368433204102675663220258659636174723856238575444337412978392772117963586927418046806121253632065735811972944393754178820043616629302472262016586703316681336053632168774869688268463624911712660803665625181499444288094073155583362156999800616963926182633274942269440616061711462862310272130753151615636497367646181733315920523359247572107336533562355210558078377990768838827431325390989477098473305215648426428267379436750051603409703882297509879062631293988528221837504073421984034251582016219864372273953160841043496495039825901161249003525200797106870457750080113247440242377405011805882263303097496779352717311973924602759074808668098105584705365844786200666933149980444930477612879594744077468829291814240214729295665348024011387881937765861408204755533654582288342741335603181327725974483794027598536381077063084041462500145285194885341745313758533183725908799831424759950404369896883334029622990183939263635944996802836536357822143270069959603081995388097952785563037011114734887150769797032300238942100393275984011296395842805038812110872277553499193665541293946892223323323202192196208345262297365293839358340133928167329640849262989341581909663213547516446026983895253344278117833386980322451575710496913722674216327916863002445186538463255250543865858339791540674449956155768506458748901745181534658168722546792286508625042158618374622833146771703035125839761269071434746740667974722084619398545774619383328838962065525081171454485634493867269887706391977971935485370064212586479661652252272966958951325475201244833032081007471941898951469402540276074258289279435809016777849901834151620116515980643717139557563433542401363368721540787193527968196346655238246803864843899244260811069187049090856283156101913819067565005695637615139521627399509287952847285323673609283126567187645677740673155465082033061401149894462899084255148829222769011564970666983968427354643088855910402827509685625732785100612105637662954351640053821041788968533830412115380142814332275025827060883920366187905863302450512967109954855476879310454271574849702777672449305577384467068848156195893210456004401663602457905795500058473386044446987952543734661290687679004660861357321333001365880309953253772768452400814193728638024952752704777463199980759645879276610363995563615298002417675406714931023193140259704143907945113002462897802051604280092429085275626426417454193765883240752338154097092760775351910472012666506459416087869881231952850067311237773403914830471368365589972117520258755391377448738739418260008238653469283333210202109672535023411818804334506885039183808130170008492645516044972197203518828395117154488140185404711475447497112469726695381977589891553178964161975621389397677323688993756323293540120726174990348064934932083119411186232398869864355584379842397825163789263198738589134938041377388484400999363900720702813232737994526601815442459353275234408398574411108006725481807538549139782638761918716229825865437808869723586470241752381288342596662411432948716451800018931173126482381757999613261609168388452504326222799280238201786216868420275311720696446099376438563176775365449912649809264259140255807803738240535891289834236709717243120213229042260469630233121409455438658822389583312138284449854453889028258400886162208834807127223283677848109997017457719488583733077079287848198602139919664137127571743628648140437640686051257069211506588579411857720631987252761468304783719041363222857738205825687288276040533148630384952604759497495668739899607928011999155885346166193338778698830861549851447817497893076641812372527511107072133717215272378256233763339540816140279192743756842902057938204080351663835980630094487707057211921608260087492538379747644089672868905232830806847744855659713147067090095789598957371455670828962971543745172610155601164507062079585497284496607317647168666218926324041505748913246161945345708383849148987047620767547174326603524178008807981186804798863155361810609935416901532121859658108226747420886521600156798650367789958014974843749865115398887521955939804641177386021628049131305461550939980420758356679031874333298490230961047371848854592039799782667571276557438589005011178222609150271133422394676246926266921925420762569854635218214012513712861685080030769489817739547825156360776431526683907487372598381513178349804417375146547757827972169361475602470969059827046371664803863648079802904221704857391980670444771996262477732039902185366425359559635087424365785662878744686130857630061037987687407252068526556355013218051003187109493617398066604884598005365674873148721394272438027433552374655191283333982136913466696853203746568413431952741469680417766438354230728416078609318788000085614158531127305189755211586418221586999285182707989599795710189384044694974918345105472361260031207253648928734158105566573148662380973950545757933717195872368142801726126603465613157228279870614019392802813866181395845226358047395938559635443251663808251441178050795397341890762172011289489169910745227700254477630132923072890188473527414221170448984205654410038287466334959686870991632052208464647099261393232906565316488820312124690629475126273787839155038805010671672070946059784633071579566500844005357799067280925891119984558838162323066577656811690012038195967568305997064889448854792907863197129442486528386073712531927344135125761344996454320907720232719008823517327993024094184238021507777571625940430552000886621000369865617489289033809894242200657264498281509407416566227373649359338912672983078829424213172374874334299014181958615054878717817451700757671682967631896501447800702761420157402332000702118562434784205051658345241496124734490173966036693034416974658588321183731518901948439263392790787569855128933938221991298931373285855714940950942501305568238917096446886150132556171193123525324349949069987215909894370063802847566276550910125904905241729306559161210297908388577964749105274373940020793724128925324752667544991515969986613475242876325967138358422070916219864102013423761381770819946761352930100004485221849746579586537607282011955430692424086827836639748525889069180511704002826078394911170432104906319347278033325398587400785965073523953974223275791700365426505518419724449947658185228184046000766784692510371692181695840586570874406067874772583760312921022566477936359558615965945987151020355779775220128762703112297609271942359753592434393140920709966075775755645831305675951989786288981631978477516989085470873647876529362714181066262961455990508028171442333076706730835349002276312500278577303689154023756328621440349341622960966341670620813160126257127135994507338682499210992192874377593507129918815746317346124211388210611969231854154106663223236972889237280613024423415361759779302071638132555959901550423283074335689425706126785699479079611321006048020265062078516332237773304089417325084103752586663738242334766105648566102434995897279924837571337892257147513486376671116734805338848863190985449581607440720147159961831929003359096730623685617902951886765931349551261850067876717483959199991819900205967564533359084731871832050805412912401179893304974061794964339645779309767209275765173629346741811485489144675786048921868269893802369452354962273828256928761001369488627001991964426191479783875072541103441758004526542862281134124552571860833635505962286698461186131797954049183201349964378510013887856527648050973383780977063063882718287667201702709359548118673906257335959250457434570116360469343483798488720632028097894808449636845483002896199754814529832059341166572794600717123996758303362256477699764453611427747214203506020798941158830573976704005323089964200184710861223451272341160153418171207319597682418136102325454883508802739212354403265629257219348679828315051376449499081004251828439584700649849055645175519725669155384230345736120395597867424040538195333350308179070944826124312007841311530176546757359778447927731689727071591511224381321764927419213315762547843119074389163225063290936733001399195507392425627206409570781735292414296833494168053564039822013484106818431823115441767872186851480611416781242366982280049573898092710601127199009578722545534077301563185906135464511824144961483172055505700992607195094660870958269984357192687380914084508656564989071179535442014055207497220435119731572396480852050974356194603801555866271525809935240678915321931822413206522164939389187165403261314440136943947495847656210417836292466260926087685884102948692405560805454124247487320165661629319767247108897103195664138980193139926440578034943279565802418973541464585383949750039024623679419787454187002678963504080367288774174540658151329559554711295016811235435690703071988022452359892314665320704110165759874216888379955753437184937313204710195778345504965783406094519887203834954659279390886539955074186323964253524763459680630014133825524186028624608609639709636419635362081350211927949445018862558421728046640778798691629160500933431461889007501455965823414542140633821793804061138859275412660707147565061036406405181185990384961228588627109256543777251716238761891815091165769475231130601841149055435194931998972293535203700511636207610046176140237557899144497271106112728587188878709605221096431448165446896366439262758448652037963345807914357630432658672614437937107365810118838072632518094936991790051919173411814984453999412489982993175227933521644421142818260556857930595746123793730533535730732101352545693713285668685671333150569355958976060991128468936405788488718095184836657122370066899033992508913393353910045784061985110806541766479793328693824293482673072133065763761385384332469786228908354019500772720096689388676323364873718042191003717341651485082697322146989268109949622670076461314719558208671524212774584842340540353410546548240077052350106463531812831578267325980375699337827772331383879012860541572034783433172758063203842423188588592417515557606558002254709344117894353055090274484724666561430996833008045699725520582737465218468647149371911809505910010604103208274177349829637060068978910573746060640960068386792360883099683948691979690173936622122660244716841648738049048099983526637392424970954204089658263603998182614528328432635983621625282872383483200613752139467488668438929805043121219930982657550982040904707005186285521388094898010198439192279388734426294149257377026366208408866050874327922758445570053833100332590677693718169704785703101056272166094470024678823499875910290529747565349973344315241043636985439576358810564843325687167177870499807061487807723949600437971306064823812959073942509815919573061774972095024845974581999731749745614683814948989179326864427323531852622654275332711325899765954931633744616411882024347763874040332827252885727291648802085368396278652919236141608472817689193525910817924309275802397541605340986543138947178041160098744528290590461171496796076799471518446328949146358054466986624956043111676086314849510904069176244403699939752703559729202820218907849512833564176829148078651789509071332401648360358285583066175963846245408578167485657792006390247835305823315560032703544712492366227774217236095822007590427725363127504331571490417686639588682660112423144361732750795108690784959030533823728021208607005041447293088311863710328880913928000826869107301330259919956416094388280995682500206084843604599922762165806749867124061645841589317113510248209991841853037750456639315463688409031963720367555170267776460943205179262719234611232116927618668592057166814583134600062941081752812342419848953423866892356789963972670938844911952784033541029970525043135837326956444724016644942490901487291986803001394801727783288101382791892340482589925248411608287443904717322664622095152248337021539724411407070188445745156281007459880856857268941975802811614786383183798230711475749838980746242242696552107726345712349492406284730191149230198542364197258422176447206701651380763064314865037261564071677940369854989089063220155539011925967163997782774469985717924884860313069851207974329237734799311239794161771773741251969607521472988227832784738244191994028337709647985973213357602746934987080017026658662539164682546100624684570036384622938286443476419238419198716927329744146927449980918484336922710573648221319016949447104929526117903972680342967875519083612159118698232149103126616493073091795010356720978995805912021373698638383582474380309012711981603373457380776793288714471350053342859852217424672229658398440229474680446306739376834784469718079383940049097160469373475403249596757246887394021469454707340976214190002589185898950243744191542282718269887835219641630573313171540612068551132450814609253893014497592848448284197495868070143358210361841491084758511383734507101679114014685049254636309947070957671694562589949838427293937006484719420017732449602128766099868324549284348993975492100673946026550627235360591951261766276464684975503259278826643481536863776602084088098975430272539441906943448634973307552952223619294610096425836337004720109506420625057270613446433626913359781339596393300815216945325635156446714724026407275263549622900519007114230940060070937657866650888351221557038720773246694648678442472778929357470334287481636533159016524811818382666658749149298257176534068880719980751915441517252194101322250986936413934989292618834817752181737576622856751627962303493894330044003273631833025348658972550638825609523091295598603482727719502140394572219782648643130411315534921907445586484524680764288111890560089110941047443065383214763575109830460480782716835859743639858042009241994260338292023721221732194396493837186733046029902404694027320962118924901164031381577287247082932444335446202663709099487493594817285368403447265147780095751693807191665020323326716250201450798641934027470862357989486152597520291314071993933312434925809662482751983530763056255718848017382999815378756807317034502902941871247801569677974684871844789844256976792272903941712353104370079218795825141515198474033270728513209157806111816442459696830712928214940198256098724083964628095991452184357164081769143936599768512767096277286902991481253060113996453871066622921151750785643461382722932586207838352676774089563420439482986752077700295059981971572129461348834492088337339703479389912940480962862000684493034983976473320158303504907021386949116952549910195935381398758911133047795618439723929023975742632114030466725775394494496474736869326280080602885815629570406359863308907880496810183708157141580966631897745836024581612370981980069951095061128711110167357799134486849462774203415309591718773107742627723875009969744979596817858934211635039225971866511262886118976286674496134074296507798797016022447921998194107960228116308298166510760299929242906497069233096301683936492168886269263231034434880618825975704805758845573832742361588687619411140790750698667127843653863127716984775712538982876850673958325163191947865749015253694558863159991815052437544765815739770409054956186291360189210794228999413948208064577563838373491281905583203987900781301754888050221452772685635441526057048469712983042230725597359807412325745850928781052055323285979471769588428711377617407214803572763446177476805161891911426485285282742279531175895719207450331592088779999699158439417058752295863716455824002472202049078210546608030832734835441348502666871747533937705374678293895889205053318510115214361314776201007432470002228492050469118456768127350661478304089508582340419449687949669799596435998464066969247900191356888596078924400284043208872533744767020447270064723195980683403298878493802006612099530672515204333948029544686868008450514824312111862056215665787653838424734202585219081079651339418650164721272601508832452810554234401785307267890895327557634411281585014926543719704292087477265641032436858620634009004967601127661080455570222496936893418581594258802162617479310523105292973035494921204244854402407578626285212830999977471984996741027742561948945939786451301076959052486444930095333822943084519973467435574937472224271745117660960557619609202085928091689630384469626017519019274292784717467222926465710746532366000840213135601316982850571097188761782161426594543226602118523742344153740106628599853298701541628324294317365787688365405875018928727813698383392282811989079625540493720888597633726701965334985694104763998694723550289457114949685318582632374976145385799214395242337013643526085922888960029631300669389871878833293224417740325599654592671895786481682744076125217429486810731428762005682381983731784727062798883403193871457403349905447748647640506604931027358001588063148349557671106731511304748936597762649521950755937383576750186601210924871067234398769266187560277751081963771742900478850873911199871151049112043371320500633375695121759903331998487824269398821375668602547916275031463350964724268777362777616090758829231153808092885004241002239489707575063167062628100481625321589595006771423321302057252592170043339519674350783719364399909175782859329625887158849596521989073189750277915175318144979973368811618395963909065423657347772035849769822632388430597170867572244961165244868444249442316974499204060818388386522575021581158759951498202954234507975915053005630676806253891841972063983127551481720930344990038505629592860950409769019270580413326085312871172488363984271788102747437300424427401252137824357227229621677531561684041482672289945602146280440083814257473280309684914817486819734853818099511391097951193954726350036403912649015784537895982145873677343603865031624480117100097738578497596107315499840610313652338870770707082655274310516594536489055261721663595361305932357910670902211418033449418989449343302236000280480262804425146612339788554600115676229664457960813103939593487886430899245392263254625240607686955401621128634264447396867120611578962379979448032056183097305956160985663278013276157165983559572463317189957931873482100940009830679462722386143254267612238430656288962944662512693361022333659425497655052160948796830089771940601386440709958488158090453034390236537765864040968581144498081010836632159371114358838513058829665668731814559116902654731301177396468162986430784933814980739383287228626228930570392270288400489478828896559956295857411848432194551502535007399709041576399966630876448627892540035928086812881306835616756035049885561670423073043591395468820924221006040365705338914066056246225842166507509416516793384235178722295029266629168609812617237028067970432176117356390266276810184019658415689775223127711792090459957968661683287245253567481010183862787015192383251717572607351231682359699938512744748664474911310248887671702583178673281434093460721726359685692134127400881979335331131257129151211099315001279376612598363883040889307773779727294105571382087865345735304792600575519765822139884224555408757891462996288184459254506458366353316523904861202192510198669761404789759987676830743376469481968289948355515376401929729422943282652890997106733328642011009098397685802916806594974217917449021983947444356072627036973793460852054149218937440272710167229296474651859564974121777658485235887659370515634628112966777953826085368982121780002359131182805520947375779824406784653947930044654727805591244736992359042276615497602741895470830793050973026453398278688491163431300170426638701421208319499935854735383906653944994825856742297050205898377604961797296633050537951776349552706508147191762561793229522944956689335425405734460810361531791847925671452590383638923661253772093060196426329454210084408207839965217507627479217927616837954865403398269852921076335217709039460030085232450019535952443561733992788251794780387281806864668336493917524128287282069189349406542569528223268270032833571346207780100226251487180939111857686544796332543187782349889931130690505836843936248852347938962003721815988497624766790553048621961349669280524863097108862144520451431584354840076165163668943727865632963761096929891177043741048958394268154075669513123153468613144454378475184322709901713581916614896625308393025835086427298407160455753399406832843162580147077518969579358649244079638774339030009619357689325759370991374722506244196014522770717055347741326177387942168197534689095337944444554121017861086278817894972641308158648057158735951622209834882401072427546701728213174310309707286026627668834734651464997717104631196261037528053899404384148672517047805752217791087011637815311156667180722384088412162598082005461072894699715289226771890798236227309279396432370449655235852644754703057340080653838265262433817495922766382824441648794046713356513246020995376831687417368929220347489340095702637928974104646584833416266991180152402164652339082437064663932183677198207488439115401517453094574868486789504549496939943318164502882494802440983992761291520042392875420592958071960042695806434024487946013939028212911965825313886197590161743937530562582354521431802919204182467703795195459119152244129316097139608839791584408723968294929768817036992462639868176209952627802765116227405545665012113434409638043741361517780543770124755708069980775402980736216055622532345766028323068947361782887338155204335127714902284635755433721388696479832363023447531788131056491160739307309678641503096473479925634729856169667197560326763261212351874145991588481353094686415569426065069109124419975616760324617460171956817604971242668006192325773594980219656319140516626481570489866657198360552261602413554175064915417177766359546777084419298435176162934278472137073953109935183054925357137185964117913802827247233961691619305382597365712870653096737592642872421643417312238244892767364196022784997555297902655952443372044417500383153833151352055145535433678568440343777084373388002194599003329095956590153213685105673981005930300072369625356189638199324858531181120087490767450662526252683809130294390220837943924824827003319719057717662082306456012717394074377945734405255406032385772087541217978893630714448387636432302834647233052450772823139637569984285954047093187092662525917265892302094637557010187979506843922986112606014375736394653268255957620132409419394348620085849784809533822987444576875623212563219421604746120142914507579652091801969748700610370961315050927060364504695024435227634672525381043689357507002544546376525295797745560815687674663997846074988187652407734107136672555590837186471861260864697509086053517043274792351198735588889800722691332243441988396878001833053945629728985373484813563510452373499920217891835210278711792076300700200225605008729070337225490450748430343044190141679915953233640615985928253193883267674529876890296534005386680040319111093886141956424209596889682049729823338333721153239519004703788206070431992118273256023314800375990373896380955556642514225312038811968789049243091294081135133126424942002513874657140344454243800849766741110831710756827467214175471524343426925863364374225531919476035717082315536962414104742943839704756998019996012648757412195973132299407082547289947919426233939939220281065781025419468301333716573689089110432870202969494731090990213711481311541003610721732734773990646906501795649201617082586598899189875685037739552086378678926040274399489736928074758621884783932503636475678785959488835517642776938146134168324900499284923038633305507621686987054857301460054369611908826278617919465572424610222358450228376673762423324072303569494603544537815558506138394595214975038249243672643594621413807231791202149419270392223958058794118812870667664397472820937201614341421531585665163265340503843247639118122665477870491608902163043841096519829769454947491904409692676123026155823219339312589515799029051130842133120726777554368350915177009342929123597036690291303421759711121456159762848469991698569721199409904214243047430364204361169014154732692877901172115176313895823533065702805351730939487284313635942653357371384717847579437334778057547088713164294934236833434440346283755150844993218580311575221832907151097005583334597601913603827285043111248394006232322085128688166378825044426941889916883416633860288178004642471813616425811668074172917599462182213888982268722888425090663448215882688173141697637632976000012092066669328644929611031733331678772642489475853446266827232545441068031059205512165923205454121385606703930178760882472455922518010419558173387269978575688399934563988787926598158588297858127710155475372791344699324271051437798801882255823258219403974707825608785474199528389903161492435600446965242155212471237681169398422407957777626676470918908737630204805726509882467767688236142541660353943296221693063826289414948691188615092891823334406814197461572671820179532024910824575070636659475840094538729624575596072223406600857208040207624825987312723782042556374600365532631328799302379798245912418921103177917152588876350955162500495488982131419951060915838274915147980165564681547209702102813517969809884775161453705230293259952667698099537236802801268810710357726115866309736819592915256127371407612154542400264055627257600845112158014924375976953884735183227130250919966507743821987850462506049859113051724609435807819385280791940170116517604336643488926558453643453763594164945648121942712453298886271069500225657187265594861778528359107066363242702251767659665850575219959731692878522294910218484666395503932335469666454577449702372166645326773605696857082125403735995795451690909778948307155337879484208460910194672669554809737596394897469342902070724750940860747418588789141859507827506858192897087469315193840729562059760146833649453015014090076058672998695021417202465907620198501702851376774316421411101322974886025624402598305253662041992035069783867860520168242235764762056721291111221449188901839523995409429251883551203134302706374454888469078137842787433177997402028111181743628289586352369933006471661593936818831084057348667890753132150204070687148526051689556551493885968868024299383753302653719276908590547448290177828147479178350221501906765222470016569974565225733296158457589233200860681414790153925101128788828108164972188432127333845709994427577878926342404737673742244845148327075825985395352715361643819418183388462659034630097671379663960715476342374804855597134974581359455742883821776797312323040341069393210611339013954564643599647938558989721450426511327069320725975043453084232493686361567317473504785996110902597438819840098432856262120849179871742464940649643078765053167655683495432483168719498538953125417924146503151645125434858295700313572498327428539871733059294318340923275225397241466499455282662567527118003226448403415690727953660943356007856768772467073106478407488161748395876479105902325576193567268133739828033008948990717598694767646867180372502740420166360239080031079982885132567420912808894708002353235831972916961354398847497181318552149864619037960003843716210150247433297934912977193520369933704938508587551771040244892186859216003753332513756477491404185393891550609216126877485727745043910524516830592323424112662331974942585633505893286848617602961566304863044753671942288617379949246317139736609059137438010359124510489660612048281924286283150963629462552708219591599173351928877298286064913069843789181515317154789913990813040542288250980022983266961931352310893884069948708106282683675294681299147493564592358764218183704857349071364678080167255069851322291607390718347937176359260808330612128477513478093789334563815854165413477537573732829384582881355115660288653498426365858112490122930676675411391019042322621021893386788738099656106581903655395189217058225252211980498674716643687039075112050389709370796827923275745873056123553000922207023305868484264821439468784156491690472226435133558983107785727926648965927870694887497138912034619364357651240522592822991231139567397255836703034030003743495393041002044121651995280346923006364875677070644050162436336081753884597915989469435216279665177156829302743172953083220168531146532500137580347326748374448747709807096641285242931809611599139415802231518590996361415373775033111787508473349822164352156044083511179340413959832991365713356038638745352786633671910291109703525597324014018811341356526199028401609385898159048451826187502938558148666420931322309155903169469564839909892215526733528784170652010036698171938728744153709322399636631884932029363218851532080449399625895046854471126604473226248526385414866479074149558644472177700251022214842461974357974622002853644798392470405094875742713406678517062841300747869333948786302685871572861614026056092811896659785280150588380673919136534802668908054916385234344319290719360857937801313899958327312796704070223336240085173853965627646729374607203710419894773639220270454228362666188428303027535699098897945323916777371604674284109101562026823045567020862759551028067301219216257457003187983699155116605037009700098028374588382989969264278132061563139860434458625967874233783869151556063739487378661148596929404500050290372267661942208686071972064304053181544484065370084333145321415537779245002191394759802313287821087000595644264481696750505813997566307002618309291592227231602191536737096866960380502194851185895742413528448627848694635526637506198708226047124840534611318493982216247789438980421059840903582093318098576598545283484618356124823618918480430137117832910847222462871878905847777304213617811444969782136656148745988676319954631040464937037089617105783708327205200100909991918692433778109909108033418698329307606572611179603894450257874996665495733612855646460094546745829408800043611353713457888627249152233825565674745611221574141199670471000929551195898169615139915220520170874575291113439294960179777415090773166373515049963526821524386553208797398846137289694190459023035252552314097821464849193669121529091250108478718667650347230781147587579223527323888502452401337868944236057162433074288509668155636086382975315169264639256779203286389891303363387037015687659668669044907188497085734106504559279810319672930767333002175309045385240288358703142118694902800850007827920802777505554065364612750324781683336029374788755346226261255689962339365174259537532756967220855732051488992870769803176854399291992908357575236260476892861422420718637003583168862425503482392485174128360268506309988110343807915956925020995845211044791379588504899811027983424565148885119767298310981906130771893283642123674974215677617751938118751875240935807967286390670100777385168023004387900719508887291782451376632677165251029528590899757577288961774026900140288917757917813681697916563956652916003182518903421885101186085986645127479996903289405840313364801359486081590794869100765245486138539811073979995762623510372187707027574160946993637580506742366945044565011852354570459568961107970989039725112108458404613904750739285112687963466801491290700885324355055673800962389012634127141524393660068221804870470210547016526062043101692172813121095381339277864511590977334567944775156254020733946694193397017439186912654645866614622817637692041899170136993102956301155976662315654939867320158738766064157217739427567615337985373382385985128668831967406165901744914464368094868319580532659453308328161505376836687596246583550004244378260075321049239201150926363629975348577512242443546679321605738431479821776548670448462962215129324229460345907251332180824192847119265807488525361296483469068927385614539838022100933712536031936626796909187227504274768712620368898868503651523661852292669840982635386791087832787302227319944926568379240302749106357972253540474827803378102732713896386574343795975517567567966596422560610645708807603467048552800509412684745926685688590804795495372163102170477741839551406289871039921861805584295268378859315831822724527372915732640056175694168359723734759463619973444350842784204986972309096860954806395071563247059506070892190960990120836310617937346983628322587739474697321834860612323159555155392570489353872057259263471118172236856360656005139993356722581111178715738994437320390311597251351089406270438435046650507869018897301203762893008874516452451025405755688225500299338420574028770692052022084631376221872042973999471542224758632899372139590809898487451124626019562438569931925975132843976466485774651348111433391504798385168241541923960199651128586206596470969895951863902135013570504012493977950812856944200041184834023751850240070735392454650456383290528290427181583980805885512960579308525388765994254412001855238422576690517209585754289508334415747064998459683093719653758712428577352150040029455053077172356669992281213937070717981720518452534426002654541322480714004643940043208618390614059846861863015274789328781470835212131324947735615917404271526416947930919634440096521626025763813507748070379286292311308048947061068633128380323793404468606790346829684600503251707594720809387104090747460254313324259566939713221263252648500214333513238598017373840433485254549712691571307700975241081111520024457639312787433946104784068210205960373329386295798755988206699541290940916375693290951703105712495061710294982544696934485607789016941290873125253129579824179280568718149980644574452036210097942878270623811885970187382302488232550159219996425975116618215265135266114070261582029211307126565825348720072395749420705002682804363987664915205463948318840540025117822234987052270866635736090126850582424475618911806779404761627704086880512957455039723113917303426070424203977593523493165535688291341398409137732589964544856420280784793938914163598295493100773041668049728109891937569821002335593534552103457717008911628710404757454419315772431755226937497468946215035445824403912180619915678489207357536079313571000186938206679238051473592432609623367969935815027169437355972783275659752653604869783855628448083230991728497240539635468379037473478669064485529635107034441310178279203236042430885262978727010295831132230543336570037941991143032950998817132361639405574336000740600223928992087327485504591410442249368432671437227069190595916636377675079577500298162563138126941387725791298478840663694945761922964225907171837012684166648307827511954155469385837005413935457399131661372034531450376078278348401147274210379503630958561644335387735858133062122625927251463195679115228691216955119640310951986405794900293388546154768622847010398251620580972819455294836978181778973190069195828154368491061373456681275107500411736091595160378286032561386910733783374501527969601501977748108699605778236020138736331022280070085638191529770273391087334438225573756509847208259500394644317299476548009394956082386140989615633243087242957793636053922067260072197733627117131419730526601827523542154418862068440603215181427520635168333080160239326096846295182343828802154427494714295174868264193713698440409136200249123585906586353338620338690041412397504512149458478256969236636962971877795530967750392471355098959693117309298623922746594961003427282174251261743578335605358113239462162556345419769864012320063150447172737625270024770180223437876571790707523436308098974786805286424376189440824305338382611475868722704512206973814220413831319776322923890541918012464994402179085358841872880280691348890916784582609685674609719374864156433489645193405754383322466679303761145045414610152056227349568515455404809450471099258028885886854322565378440515427830643121444837697575347938000231966187927931287429101848614437939056774564810420743746125852251377193425106201571834539918636493847069102563213880027775580449173877376872966537699829424691465984862145343695907589315998885244594140100537899939805363483188047850535611057395621561551021058853871213703707526596056110481597558688986860689628604142556827373942526129532931568407641118520164969214807069685093024406793758990525111308754948825947209452099379337160561339173734612533829269492548933906532471184585990987760536192578322587607262197491089364319944474050424873232055546021507564132956467407271566446149917332545155818294940326053801779162580246945768295863466884174571337694242756452204282254012689441822597684815578357635043077718444185456528607490965288448745323630173698712848260044721857019114662983302043948844132434469743538546698606835827839494336270487124755250726719585105063426856369710766288755703625869088997010996530825403456482372862175653371710214403600858593184812956003941554728108542916164329768958808471785542219998235705605969567794000375165551747637670061697612298979310455791993398158642119734935080950045765754976376946716311976077227057845307308795804124100072484475162455075595007771293351420114163512271062279542350446618084570850092567496766013160684245209275348751044465185911687090767069863896649034840230930958081636021008243946152506500476872150207990881292097910123084844934837906949947142908230732336813664785173314444119725340073832477191668313674622757340344538693591636649810963153078246968463171146196097264359392589953089988911513794166946401419496360116799953227531130778130110586277900668489100839541906927279343776050478201511293516442869457372983584132799533739770977660219128709519842098585295732447571351250422011798954302636871240612626584959648984203998483369170385135824258494757149353036746595232127546753266187790927942769462006746453616771953277137704414675226127675683396663356369495111531847022009083817393483070754306818400448103031853735391022280181393196561379592858372264953660855109334650970742611576463191391092524895538407673945706847877641670526025481015673726506726128847944336783137919550585059416989870732548089506645101202343145695634135110101594145522841836139414061579372203949401279074781732434851108639459372148438216672548450550615237011553598721368686793864805216300167869596449545421464408867301856243153488559000899879010621853335644366175753048616093922892714167257862277283180765818388870649926537441407111712787723999610267034850496253760330067679530934244366412174355015153832927790404697297372106567787502728862466083658162207420074615621758818097415319747846275585724012696117039876546425590657213986159015569010617820872641788072207540011235193138899122217773753757476491890191621194203830073642266483214449827020151624839958349159910319783932924625249463806431567367074727853197590707146247167720439502434251741011174311134306430960881160176621058955305084775151890189369494629903406672396385476988587437629501474923276021700820694588114629647629394977167995061765019530284295268303440437194971327769188507353116211215457175244598324634905015177738315316965334246746303109343144166879128959563401499411587837863286773810064956523995538968372736731341222902222300560130279788229384438592600057344281203368997918785968990144906944070152649686466655223201787502391052419971179014234187522742304444144299970199185249460779244648495384704910673334783457594994665634211339504442725350652739173504932502242356127998834336524436354415793476643272245209570779524318904776638323886550791101481098981334380481310630452307919497844182411240829039883125761498075334487938275661679555312845194916524634461755718175476638151067405217517945120715930543435365791907310268200012866484541880531463821920521886681601722961707625834220137400157985417678601592765771245936421318947253166166432889085205132371984113852104590944368805045089806276109186064296098710638168876416349334801841492513888644845233349423392198720821301431006697209372819840522814672379726463871992229386443000816551237053033454481436505380323336213507934974874405794511166544002174129182281296021212031553917977027724119353704736850047745910591995661010887538835083476277855308006662497474340682191947929586424239692167190920680539839080216118918984193615910802015304097366408079518137296200983692612053365314897018085687881636336777684449269911286097172372937692781924526104387214845585998164367213638590271160735607090836651311785501188911067308258098026619722996775421881173096414055177742162057033625931718848401150547317670947605843520608312088759270774031543345117401996845221815030119927734355924540919366368921780909735689971708288260306762678568307848959382699500953523688541381417041787304207535772746059261847782615359917864578010670899568680741611680400697581446472382435686478370491635364608635989125036980591787157218230337559330092526519884130265102088019855837144686801711244103412744198183618426584635956393541149100661118877530446025732517684976123302184923372926844043362972678742967378504320890931325682110223887693934711969792245382618448083359029455958244647499026541737168081314602167909806914978736891576297738187091575775230709688314435323300039117869122204909857061202034435923532963871401526363803647773694696854896602840089433610202914315380213675731521203834093694275809875596152329772501107717086519646152195427954412939479257045602912094942122406646037253550252241842481165636465830576912047390658106860217631501671025365172282594052945529140977042686763050110329879540941591743483173074866438792318347583927459342708324979899898479074010295139015369379193853854561559015942072555110054184507975182381251104455960084908889682247258117225063739878742239385809970124430544573232922277910432626968189191906004812739971184599750960706448442816938979509159268818326232169000733114498399284057459566235093775056798780873207871866676349927476677513025458769588196230355119220435615450643888575034794768437530132359330813702139715123731900075642557063893444108822486343841715035104611107090107920926589119859571501496915428066458288213610511530388484935700487942773862702650724541599163876845542705408705250444275417148696444815505976788873816013205077094737990697790275053925247577001277358084897153567292954102101503872220332680302603079278948275692921277798694527264353443972315073347824451272888942741407609277122953550282260594116921801094895829945539624182755608382424442963546201532835405400677238012525906876101559636813129750055946185704391442092673321523382576367690311481298403098497200376678759656155394358897729457244924385276546033487930858020097939143904404403603053849559298652164970374019838848825077369315316562400978369627430554713598813247766831538187480463046952073624158904615499243075007518930318587041432147855675464202838994927147909745814169955673693608067464748714805816840514176407937211695304852188323255784328713154650428366859681034348373847203384554601660727401488016472545250612487096326229392528741126527053391488122336019975795489967939812564713513693642132530104450517635635634601551468314899555746779605594219233422918939043362050045043158953686105482822942026454999041200651022773155603796979657052298990832739204249077877998473292354279188348508922318102655890258521638407392438170984896524950677297308581084510768918787777158695127672912229961926121329681001687221197766176311469937853148178642959708159875706437266437669308405852381676605388413096130887210153564418869786360968619362704244675945730922096619399704028123514742700646932643224160331858090541883138255456328971055409003374724576176230598873093565886757130231919243644389873405424991409607115617012265567955710501818982450659371489652661035335406182545563477930607414476198220227506921986758333123397706665525991736421756856386015232900014184649363921260511266180974480145533288304704295096281477562366659674534350743161444552599657012763694532811359578014303592794012365269209714402600685905550781041204456823836265061536102208102359745282485920515921238059505580741462213000777435505271523315081902531845131548889927169733186890426684173448635272169146088193955284013842833011667583904442453061579380687772948797303244246094823436004895060632337001229897716040210092087426806081313828881752054527160420321465662584869551666381325870766116273828678566053044069277714130572631281420111146897028638656061120461322533600413124188038310547658315723843157243836275642918554800069785839472217988871261630702299050692483004846469661478115456415853972657680775610753756416305319249569436058160475367705254687134910866541799525653064443534302753420965749875348200562357124545891585399483780311214856198956335716662504216534742717341074908057494670890357422003208623760362018689605756842139541972235102136379589934446012802540683330991307653071817220297893850872309329540716165516636842488905374623242134065230409546009393616144466316615473370941526324991789941356666425630417314839680859757769598530118924664674718756830940254390085774264104404080122026965510184071514688610896374849316358180082342869045741717500151211409012953594865846706901464740295849339567621665406727054807871319448999249264166980649172530317747926581128845844355308801631219211889238610705345999418398044249972154387282382791285609039856320526076307589860706295578790698147413112493618410615209758719626239932887125776433428958265451415952979223598431484160496018327974858939426981443767274161765914081213521790925285673790968980244945848027042906781720491801868239059767840713201666720050504084488299472554607628810910693894655102609001302095763991614528426277876527826850055800184656240343348669731415070934466718778231781555854947389320365377460946454180616094752172594360863583336844113595332874131347052140443273523154660856516296753787705885138180084096511543199710298682203211695742135853980690811777152858498347953936221043956152921373122654910602623615316669869759834272488688182333136761280095941830990775406798775439992358397799512499065784238465921198227635426520435145127585975643560918638928010547180042170810649529714789216913817341992596190779030664720474115176447415115025537991820228149273185165876203940025458830234798709800792915930324332792647790733937564605946742164695055708838934277814357573972057533378730219302137066585137019500529350715553712421106575960459641655056228968101404058947642854647695234871758975094572840378471611113804793944146207906057558464169660140832859398665780881799423057752250279193886364338494681764955144336305107335585224447841430811837653269529957203451231522677408524612028685394545632210534099139070665318076078345095983282515627379166910989724554502896659032965611468342927172248774395605193929618356920696373226681202615297895029231292533016571886150038238040067153366240569777358860678323251701098236647780594439112423706167071724480785849666960870075884269197944473520793263540326816869574661789665076152465486450292433447998664113604724617538582019083888474381805403226924652986314184186555603112037754646831178962236753299908036710429420971264419588509999237428690875085924307758819560569877837381612997585321170757900255991824095490836395372323060204715958341055261478874778426897031993346928581052888259390811577005344176264766912332201547576084853865435103134492195061584998930183707162936180526373930427788674200079091707602400897978263426127010396608250542598947303538711191653791397109814473963226669144326236452543363336729563448330969421889054067707461935362008719023079976984416888945887363354167522346217938131800935866514496082435735763338061208201059517079128217150201789983535675432018413484224827180206054403987541824560126235481194835744245227944034983141800700823285939601049148706814751187450379467040098483354754252347278602268466291850732461124542234705750275582848702719666196388176005985080370445440725294513545191914263131537346412054701587362816543990104563371243736309808324703932138553620052568117917865372040638500715802068361933509048638922641649316235011678338970289264503296121707840793611597685145912847981980545558092600918429872085811836483899439320622112957848113196060995860216850427908188975298141943638304312853865591641094304179835322914636492260022915175030783276595020901829146021674505016165727189397329640401554347958437484990868713395970130514439997381932820302213806196050560060123412138966776208158818017068082132393085069271187376304477197555645593576179457413206164292431461677035624377341505564521045245797229917426518165011671408365490269072206949011089502536745909667347582285027419560091875070150025509645013369617576853683578131141107425120863014924693629011919328294477060435794422164903252639876158111921574897191314404850935821736789382642231243479299272905838658230065971469630303029530928391815286835171790930118005309705070302074325276970234291329120106328379558778392720085532160001003179754721979920736193495709243837256322622291964732668998743986418043457356453555168104275629202431541356476008039110642648760976670620858108987400130173452250875087585799854947810682974629374118944902383183467365149458473800670903222884405724259643115749953140293617616389556741723177017136189865797966795564948758831166714368043192956647427285192703433375813983290293435949204045530643792120688416161238398780515024641448133370731643440292927706403661497790052454957355378231324472996791897738209654459828950867761955488798765511595670945593851531643407883222462612748108047402895275381824384061142475742945807020794892070087185948234532901160130491147554982430624991486568763869203196380182300087536184528614768039964264406238571273082231964413647238673718163850275624816707884619740601090282616831791328925487358592627418958156264086335961581828118869966719104799692237498151874678548003410499230929274064126428052799901572373774821329017587107825620319918079043498634308791944174727115663747564547268859607624811857972354209810628354216091539365139099260051076345021366106170682299717261316328892989552349472712502296451159121901861781303378379625564028586607892432237794862290807847416650715410946174730321263233998389872348630006618331801111504673494398195639451655797297121566324185686620786184969911803659844830727265822001208060850613483971959569873264681207662093300728631273143760932777698839353990494918270212323448334781807050696740501621997810743975280338099787856598907919755929758533911100307114259163463685054684124960360456825913340609805577126965984482680865737770660762025777750751278534613760753520459578473007553285132300479111465511410301526332954377530697680574973140802309429237820053864760017327884635499893965405414884753070794380889659379003930606691723934910216564894535623722701157753626362746408102159945289758598099472508654129544484821582958939588497837768547084152713604494839072608984604956018635203374219124896403403867764247584286706801241987696786873980412009826875558641710919296525122481351251555711864568711777355174554115837610695975648582638687514661876788097116675793517673533505039067614966080201432880566994276830954512811863557404769672482278240647023819009977426059655287247756784259865350609403463375069587254781573512481952684899897898038197458105514528000383350535591909583153039191028021556709928176462320312662084188927987383932185289386338648953518984359594702790445917075427570286097403712989693839910600125018453615892371494615675165222753653610905457452452417208574248400250881895220026955145045169719064183734360852340525806802965928570702390887405194484463724429125768226858565292396478162602063950917448257049400937888381619551695366489403072447720388670177036209059151510660345734710566518042457813671117565788684582029895231150798204901186304959265324895815404198397226122467666600524844497300822075086265846710063054422486804037765998841430628781453273357138029405308702666628515847183463680562226224600363936800837326162844852063587571762212135859241137959772117003147257529297320008617698253066501479180513228880627419181409713108119679654595376686912118215714830092775334817171496005937658625332360969619398386562865131590025411512539747907279115397589144628170625061738008188948215460362656051252225628086575868299009666605689609965590725721906551567214442140157610470984674101097901035863802440499338064153435021320829214175449042576760084521482478674375413658016725501086576051401214981511985657983601616810176420764293439427178972322682587177181137182071907119231623877338014813621217448335919672309446850298808618517804110162517275926829626846810600778323313681018811989803762919289395145082115553274700112396028827012628024017694704760812665346681058667825012494056255341005211889297026120257344835254935296157819908980728173037557023755800284516812490296109412112267676715447091210917793267597088684654224599436454454452724849755755358297462203971679916779862650340496425429546221065038748496964033486722899372737140138399479807169777443087649116968043793710250358711989710530693321181589876376252671287917500780861208794282965067094495442959156384552386353824815272834475729013068998471048251009165344745837246695168716699925365928216589332446742723347394781779947214348279669135564600656797398158004213160014817195995512339195624839924797521082763505238189219410092704974119592850759310463311789593208483587888764469332857656587771422326516958817689485726546018674701629481429040644359529885463913158956137548885635510818851613851779221245823116848035606937223823683179762824728329066373908935335773854536907595573775898285950893762797608689997850756452328801787613361376177490656247017148875483630377556732459425216156238612238652621738046143342265209682868568455141197738203222517318940225632621529116778387970089128989001008746439014458680236502328500793963104801488307738165332194344265809315707422904477016383354066474270224453819466580019974034704894455551595904821785714340728649466051968366823445559236924886396571969931422587981946827325063648354502311337609917983261395167961278148791707355182511786086205164284892825113451737897853741731579991522260699270989881620034435145392294613427384338126332935938822856728471712540576395809919281742216535270673181193814343548701792489178525880201963809776677143920504638660466189875057491769783203613982253895055892883200747686751435778901946059806758875686594460223038670619378212181219660018444034947068325417865828209212739875783057283889653617414666685510973666064425731467682152921809790398387272766087722637729236320019216776770552388327353015228715063842142985225356330195237673307969819331194661653397492658989510655488101957030527393144869272895517485356912625960576725691851804813575371272897251446139303864969741291618550923678184907387986524166500200498939202032561433861989248139294414750952208782408684938590950013511264196060377108384576941115671114394324995556154654287734640704976575285574506471151912685759256505428324939740435516257382623510116826000119637724501391594871590407425373854850877401531409099136300496123548404985316725943230114861707293052575505933423898984585619338139557430968840664258046765483160706470424402056655513589882235531925136933133587560625499455653473479374073790472209199429074350444310047900918294824381681923153404392795012614174176550760723248968835940562371080766592080006493092432787573647795446277667642247079208000798408814653001692998454395723003281894439263628040321680216327098915563433401875810755176176844157248585466141468417058921448261912570312840796218659876439297664372981401558781764326430226898876437492527184481483423402889093082727173392813176779960130705142446927870340180384614145749120444053203163654845462154901472461261819926829937790110814416858171235046540447921868486636570986134064924211815860122785767968508549429674514496055048147779089604493423553548397751290696775742119371155625424272957763075755056475063197844453820171200399947871517882589311194385747720788508328207298599331820262840281574293474733989563144840958881666265428328111556790434162311126041154034769728755284622044646322928105731228903138423046850475387440472153185911179507744720140174720437630996760803066146273695978673868837745121591456736036556558236304697892895494570687885047424687707561696057061328057165155795089278368048959989332151956607200647360099313917277734522391074091269261978840848750064272902203934338508763318654414819957733906807922037151223299649066222305111669044549377933956075466405172940383827458422909945988386482110961318169030890151401866443254695040667143087513448352806572633011534502731880557913793674318711587949917168302879710592950367766898690219660110776016194259033835768656482281068869891405507111624520823897800498519919461981826130750288052556042712584868988054819937810616798694569558684449161648414821762984274502650042566241843173015925471690646356911852100423885755478460671360954310622179459446781372597187819292116732945622668315256061823336096641023492823661220335212397434563241584999858674591739894822258030999361929533013561745905843468537926490542474151114597277904864427545234279357491381718848565442956279175014764502561906072246021437089415591377835653131150759189886851122130575939285503292447077575634843384432456031775479128103424051267309523528003008422853929116113937448729451523250465853905712183365333074021612697183313850766296081437660646747136197562519526270474871569659000748525617123839746418716508661284829614331559632538490199620967684717270349093037948196700963296861500110953834237415767574947717292436972880620535682155151868167091755950978264049265174944526581778932241434346124719735748627596274059044846544159570326352164512522354269389525157871857772614237805371773606861086368604139132264630135487306670201381762331593990902896538860049613764815231151572857625481817888522454709357771303704436819179525003643178912799533266522724316604801505146667632323124090948691391649361663669692824136083233513086768631163169521643838538610117769613167477022172146385240085076884162872816875763401022861115519691463267254412137829557656931893407918007327499474710485037026006913839358995219640762217096374869067876416699166839271617095634958977914767650268817271338926032270824270053999155752998613414215328011864383274001363832588956418330976950369608430459817580637047016982939127056878180948484537898388724392580890320152233978514274039866027033425076835316894081865224164417187886208325645400352718028726722702241487631247649262128214548244870157077392790662217783079636759514116266856242272806608315956971826928808238091025586909913332023778240601374408309822540590558365601505113091883250827750137273686044744119681745417696005974437469970927449811664241803677074777486360531916508511252891526338823070978371889242181906650741566136810013748720622726862167003428231944471034665376376086408975430764197803405649347018768486207855491141597154030603280492855120554537352619469768777559653442824843634274420979918601529116640622122603560857199664049020752357872693426684133083868186927632335638065053948601745669349604225809723182506049671991346768384314019593038587878363422699456285281632853127026954805354433379244647378725553313180702649281684160616154990033273833437815337476065595084451174156972807828686856172731642956589496748928516827433606492699944759055560094418098396261803807855334523675698502669725145154490703119546530489639439737852945699354329870516315645484410110182273850876802809826352544982559721044214167924456997499667620952617217173052690974891802581717295449424937437597745769117443600737270037561018063892005825514994452543331142266108983935833527698706798241298182217310334024634243710319534871399209604201153753235659502505266600373230891683493867443626022193518921886892193990720379581251996463875504331711012284349863505117040988967109347841280408583605050377703194131051796605002189508657628822264104788123656610445353435489251705056274759084526955398182722285332322536788742890093466540773537307396817905959406578530659628251264006971902770425605830442710341870528707937694126707414729472522377951413385765879282538238455362477543285550368206494527477661329719554486170876523774273637253956003643025935385570112167761423230283913993234527806152955733578435556457184368069909938613205644700217194266772409362497415931754167206993725229227337933446399997167434085537113104548093535811250310133390556332319118596792668829975228909745041515773965889123127231594070041285340205646129313814328907349450417129006684514825990469154564316662066571914275532902062920287786245505003140075074889408953538281369176620052051727416817990361548244001505023633118826706026240716858490312056546603384014356728081657029294621392141230011519536401089573776170739803111382181135094572354631881675108264555239034743943705526883123740598008531891836106489558053609847142270733388564892961454767225664307455985347357681181865147845376703943140132765920885791923527451267229003578879260497252370049058580159489157662133653047367568167695668404122231885522939448260289954948493944835799558808931261488717097831769241354929403330624385527809542429373864661967986941380714856439113436364725299923301391203398948546766833569524016810470027845634303493068557728752142593025030319879492808043545517434974675582341948500162520439544584352178761177192239607581083711527993520168674931905649382917404928573042538852717355162585379623821337227364477052504507956218048006377377086862615100845625552839095101571510790892654648584182403636498955238576068430019077497003473851681427795405266099088191660825736745844572500475549223975203702181387442520097483366813761419883443637500674629244434589597200734842034680095165018418872611290474122019193173235914000631716356524665920540011764624211015453591447275671358928712177528319006135355377074404527368776910816327283376490763975301275603849409823413239455975855567295929777938304083198727465353726811085496704244545380965861333095738515875953655553657760727333367872369849229751230425586456130171125555229492083468007332544718108442733882418439283606760832938201615038253243567952370329866933649245907831339700426620652067723333384279983634777592568382179967979894248267452797873129770734431482573401054150533127185153319062121650718925127387051585656780531003063646055805828056359168929825801062924485093735002856759369255929866850366738784688720810321675451792603122872364433106594306936104441138214051464260408847210138832046618782454821392258910847496695417859942095400901538628685765557535110660845929623573736431482740423042652141007214171717233676613274366628163290901482932836034043001272106704611151472645971296857455746417649040801860117048075504722483014812308761208611968923199916407493111747769786415067941894250530936497239672448115778517072293408783075650421185118200245261998553514343658979503762570549965311591002994634218999220249068989319480196996030050926918251732890905124858917986601571006926475299188620618141576572399647467384087849273788413157204183009113343648906304507660682599469686957218607377310214008161694019926663073067679358572437895192005290889373078928495791887217922646803639866595609130402117293446481157520068182769807344016860746289439450725222598536022475626629014985739106645832365802569577971098370432020037050553679618590377541724814050048010660968902133326523216622991837973993516277900690098528177657185033280898779573385237082926275885891798208704048779971530279546389221059995766608478146756587670948090834349929501196654748902257101842646424958295592120394565941792300876012392581033828609399567146896317084342070003975717628490951884959243219245855490348296519951769457957962767542075800542997035390159037089162584218438250053972821669345553597476623739494124910034455544926453332405811160754886147647828534015440843978758948807556556036153431999243525895724620598855886538804311574653452865196245190711310624916192547310844830173316134116338874798118960678756431370608717624426857095249924899861830788193989247724517235424324492989686132021313914639123818970405841675743604561182119278733974678339157107361101084886594776136958920759960510505422838799351645944813368210945456754324261886155162200975481045634988646133391579125487827436572882731792235815043967989393785295984660848903106879925880004447611255772573326356915334113093366270398813505596005527561611364456395210026443564070038518817418240074163626211396136954755958743461569530002586436266803321681375538980157813748696652419363777283072659446152511882812647710285864960968602205307695469496612193457703259803212806199727877597315070704567115039045730615046770340890088805105460171690433937395195119784737758047811925075718063021191140120848914239302758481227936700988615983146506850114620661521937236482661925505460022512379030169418815973819968290769317422707769380920862709204996525623276701980245781772434800641262610998474200351801801353185595658181409040399606882673066678456961563660269424753907995191044735745960992230561625702287907634863609728160979915090948713439707331388147528240452314783059911257380240476733546387917816794870246307542656998621991018152422992004586061196659729306074300194354616215722115720678752994597678537765051888084848186237818266220277549484380995792619529802785802957696970065326531973599360973845736023438533967935566040858843731388310899765691234047011603757485848626413972453180709463598416243167090725053450034410727085191378806943993404819033522160169259137350782512026623095730530089541222419285007730718168992165593647548618784982943930367632966548478531622872310486526104034683526167975875193098974570134962881686397114943476410418861520918100125296383654417718385274819753803025472733088542208815922072956710208409977877958815530009291224596178839327994480234307279688538664357737369875454276731566422179113597035598675166519259268813220460400294463131363550880228792748095459350912090229962091090901281230878576476865967375247933996179561633949774902123759228191610142652974842651793962430128042304197509142109117478951007484262165387225290776703193806609317450897707801908117787318477703665089415921018420804289447383616115470493224551377615197238446898659694904108523358018401883390282479349454031892184228883124569475249528325718469689885697267511186403970663443770459532216524133585067298007741034418424688956689101112614736866188172310657425358788569714045969312140376384856643039334259202788402858913741633809205079638107248683789777193072302552513026484927639845345457666928758451103656844432098820893191090143720000832406139599336119938440935173419350780518802678641352328012591128170032190868888491561167261542565348428423114251847108268766228328553481223300712980009883121336653125505140044522215543459067956836785021583324281604616977632238151103874313720045544022740856550434526146872234317342821826732766829744575007694808375101795726260194007163844560818649955667948427502156992750295362776174315170239423022480595677466899768777686951804720182057501381212488681603944751696620256233494007491488146666663250662467160206659945556990958878029032615805599239781987096531329666033322218850871526609321328092807068488554954673282158263694150391519560257042974328639071842289698593448234256021006007458993192378489759065964849137431145399676337440010505384848474562624061464868692610016828943484681666150373273113654315339517420326891643811484695072476442922914177564368095240338207438778564082788250702932193952972818247440144394762786345347212298764589036124833997857945056910771760537682509735847567128064131606046935059969327895449184918176503260219825361728616566855494202097380181433748196065018037033158220191114175168177949722595723110667920182551481393539841869505891014364194492227450324125653162486435429423903221180651425799892713291910498400603173090376547035831535182489684573241371243724693173755542774764984870110315661164553314377891851663707230772832920496980606722357297739669189685911933830885442805111015310938458897296955633623199957829067565864074535575007198460857612626255962857157799454894987921281379193673531915894493988963443796626351438100587752564892592044495468634736825846233905862351798821166284784123817105525892236707809511468672025095178534639162899950121065432308104087478638085694348234896231740710831072471298495520560844740208283458868458970640363480259390309053387411671079980498715865289049746989906557924624961947654875295781472628873244251604492035248601189583740299028704769301074637825927319888483428268770124820070773037924470516086186009010200240527194201009808743149712072105824462445795628517033659434884895754692207801568990691573646685920847236820482496368218857012481915868761568081024828789591179441144299830461943959325865798440076484515589595731773667720561428845297290890026987578207777464032000880036302586401855520050962178248878648123879039602736614992518254607026963366969662081415974782835998856690662207998166438495082258167476503153752249635681596653406873624173043095639551927007411810145016984404879202138287169080922715301162140220656474982098548564927488050927854574587138101633704272348806849319874640711141183593417572788641499179603549948755794761268724894817209034166889981106332516524308258980545537342602398458637351831480421606656044610709834053633037241897152759063625140337341948779467086303241688540699793577747627299018293919098375169832082670864451076570426758650400329467305397693664981555085326490980079328505402931109086700036254453384245353071182246228611217926445454766221408090923370439582714351886239972063575938563574977059018792364470564899857099907640217210492642148194145805206031458063167671467740202324102705850961948345965234389895795114905177729750687676306079389006657860574580542829006512197478185137061647481753416840908882266693529535981870043763034594199779436411241801212745488798224382688297649462229604746837666987037595651832370528921984761505577529009960761223517329398313786467223532609255143151812678692039002660144459296809901390221830689183846663360293097224577217519795229410625620929085369279185100470959867699020036048401432178552540009330013074617926314854385940998336667696039719874765148096711505474326940074190484945751839656102171522993367504583402176197630133772995949999171251819874367627664724340648529816560226048647455718251429814921709380034067512865262423626989230183010726416556682630825321420874026292073139446905062317640922065750381955219139001355257094953290152145144786380067805810914713256150590972568879846937850075229515203474654806430117815830043520335564564418463546486021749718340846145795766678641931881816775225756859027958846920452603758350015503684458288497512071801223642181446290634913873113293327282077188283268681292260787191291200136786620583192777489275700321615499520112045453904909903355662231537158889286968887626360139841976105392144282686652843846488472091211319486652281399376419655135290721555384049982178365961051993542628064253726648431234591627515890057121908026240647177085778866918171456077078301643424598396773238684997997949235127272817007266162503226174880191787635067207316812205432639563322212371063193909359469520404810991225957177366455560714319205153753249702747426318703636833784308966262111889668631648608147383376776066220568715493939989264324755046861337517475812827720480371630000005212085278490083840464759302259378727877421653249021317284610587079262080329414216563218268206094600284855466970698731378315426890896704498654609275532713665014178539306005612791535046244059235570396009089738337243928265603955195012463816502356581969728269856014731155806883714442769011653826420057286416526916998740455401224290576709252200770167858579667725935491258600166654867520857164380385762742077821033641201049075979266232046341463041655619674757865508435060778151876953306364004712728226623039588594831996569507211970435942360340747538649921393139958148660350421257444829664005032986293284138255289652625303839852055721843979590144299392236734704453551585688380860473582824400020139883391829367293848500854194905567490796570261919583148844033655340721912192321778564440493813631432948758060711868459114934406543225390221193634134106392336537070993326645783591665776784461364732872394514881090653986546755215479108106420189763233157536320032199954658324563766012929533269559785695710405376827593497589590677443238794603209745227182898992020004290509060759662352717996025715372359460879967273964209220247754253474757601824279109021501415203444213538225320475948945215756942568433031751187637982473869156348575943962619953120998883731407212928256689179382601785019287962329114837449712917889332647593787131963030993852455042600374859974477816515456261957646142566402141027778312956609444726603440547411571442853414382959065311132480071673149761826125273123176875653749258717016084271387305739006619199720160299718235646651997891405329757128743147834031237918256798029892482979872695151868047063759777138612985550786390797670330658550817781145176753957476694556116296402603958080884027841712528796352917595250740352320080278992062879413181842491031276166501881540742814935930983300530473993870631694489887646332607327387513632771168042739914702770519638214169368144078257585263321217012640389116873997835657016042967355732190133769702587723333916485628801532599954112228201890292685901432192471599619807772790741642330341286546047306540952628861563555781625765081682141179588496388731033984915773445685721866765261904455876007285823834872170977432965677350287294520893441176868970607605831141811496536950760322701033907096992517592715736490134047174506786159027484779995498682096161215699586625598827722735656853551334075047558867922583635705642719515584452498178182109174904641525764125761607933830350386294667699434407045627572586134560108321687600875021750026036380328865259298920223974301167658168289479418696959477932637303016670217445487453948824068628190660163847684076947088161389028903367990402107165857720731328706168589148066931452959348468515660376473247018405442775802039256392366470952837589638707971177146527192593859818806854195306121720416134993895714790337394839194586356975512452978917657367590966026941665495270463820586299756717385697654682716083676462614357764895037224355865328863478373264011784774777297198857867028686312030062441798671998157762679962665539994457694255660221990130445427149537840960767649340760955174758177824928713762501372719319842996953233468741910226927087874828841074994239261304142071047904670981364313651473854543439601778155102305007459485717759164005187024472583883883031513536079018612881898854971248847742255637663743514444983366710311828484855235012510879161833412143072721992194659743783998338250416778282584024018549317810883576611233305297891464051149490178911770067733408264308081683874115505323707635925703953054335318851158024132417370169464160070586355993027369419818456849153524965385494673764563456727623925678345171790538127729328842685068779074803325710009162574169760655155926742204149628654604261628335118367911619272807332705957051006668219941710046574804625559725891993530229883000098072806107441792634499345792805404326345548675121511913206182731080881138302343827760243166745313440936975565377233695476926512019660908318095979730072779213791896984333567713119981679319571232896660251108615139006038412573137226101195238781916475263252485117106534554145462001635094906531697111047582039849065424277926072519438400837817972488921691604572680924503709921041832690325070593321585559393358907387070450189107902591572833380632543292714506117166662357366769568523990272129623216217215910969882512123781262163342514201919154827526940547496791015896707602945652527329485700587872248698110013598803654957649821720490949860866679913998618704402292099810739548787430715210396014063321502212581649449103202187804461923271506158832671565327313285197572630107680429005315876626425107126400715096596228884799959225284905383226519111438834684006018943618149377867860552838596144104206225755276346201686995199348973903565439837006438345877860341953578535245897198419446437469271436395939703063159192670660670759254502943095494003259703308003634629762950941305024208377026793638958614038556220296023286364308721518239001109767880522729302598476607091497348797633676649841012031276329447333016360088816377534340679766391658745873786759671377045856420051899972392235878444959297397948262681252266635981959851926843745224012915335680578137178294012821521837063388540727225311187400766877299923169557039906820015322699558921628226166649276883787296913441207178188372919525533104818571636156816566385465924483410775570170551559809173149336655395627371906781354836559643212391675768789080785633561782183317835539807758620645721144361199187599120103823315394516536492139278909700747920184233683331541240605247499356015665810238983844786686840108989757467315197965414729827644899710919958272841259048414895397541135441338645732588307645638169844211127342082337298397357597076195627937488261595905211025119521021554082889623669578093829393955772208325011667314985726157455932575922777608583760692934572501228272279237972953762578132004505642548307120269713586619481053960048626579321201635105958610280653330513359997368613072737330755765878445134195950994334072092532352630819379328839284050144980648755300660833720162245592838456152489636171871307313760509357957658840139523819842683626608489951407441943390555941149365725818746588308200264619690014148332362087184021395906989800718953744511791609617758803929431841915051062769910334436958668158517227497677458913273095050441091086740043885647399206963999962583918649799255593290703206719625447595573406057377644646384941565619429170406570249358840882666780493460632454250444396950036490578334328576957294256470388050643508068884931096317780434731998394274606294945653214917756228688231050143297897820827452309313821400263505215158646458873820967493171760200914294851024060911909719034870707714104755703336913760065067762245414594257647596211099882503550341849149029977093697044626631337959614280782172878040039794283404519892229215602000276598667071923094774400172842811125584952882944679100275587087169396580469710126082827833311339985744510933950523702004901725449089110849157883604142630011580839656736138065930339998005430465783664987493917763271814031934430351566038321284225383835922865869527902669218702847196969966559981188468949018055259926375266831254545202503198212374989313325499980389042272939520699344971122404786792540905680590000370428966419135319574606092257630729290621166616144529577127957364503147667111239923053416724689568502152378029191810292216862302052983851160441683956679588717339904890385145277231295065228459171288442839681520666708233382883779383884259399751164006191920563334262822395606011562579795018715943883064969793915584565318135101530159214677531652463953357806633993345946060047285531768119609910913993778275725224494510213670669685586122154190950122445506682792418670207846100448663793629202101220630511966688110879180465695804555121020437802502271224602616909428421086316940159995779218978397310755470884070480438667760302863394140727799431794358851252997519078725380063311767714951821488392925058866522936529089422638728127002413408893792879077231141381785186282677279803301750081349641132648082644318660638836117001945254788758325902475392885006673865634219381346864767083650396477976110144427852616262806658206671306068770990425110467435402052138240313450950939231376893774466653983562076810076464072422467716300794154786911648914315038154289405022904375704876845074735447308141539581408381904847350603021129301384666245686385790132293664593431683734315715674980360358107614718800090477361739995298936078993745061187115281669137488963603959703131123160989961827248033949471954962483737442286210116143802190611512874906229440238916477878067978013334845259213209287065087613918295515243480865428267086862643173804729244770190693525404273362091642222642938283803803695957115544275388952177691388455095075478445229753037064493385383746076965198608492400915051830267569277303188066146429166604596488367669233142974893348046653397685310470463009642451239839634897329687149784208528820087106214532176204801653528378168253859662769090792894473975613899757635217029843209842081267817706353515369256716169921655365658826248714215735030038788240688869246194430023535513087633961259868383701530782181176288369663542813389770933554073624595636565569841802558531243501570109421798774451609171071666438859266779289443724857458167207467453880950070059859770942244117490634546210815608831832200096848884342210976397379385877123451669753394355023313381182268726210144477824075314657115652853910115965977810294637428375133611845882973598617634548806267147297769917120521232242423128316175685944161820133128096251487219616680603687582509674898663512385034622654061739045493930487828681943925800678886309605088542414902276991590966475338683458177543038197899135500059140268867063424478366376228538484242477480270886923230968974351706783996702133339602787603175503754979249640754431850983809617278085686643534410439396257617451499054738137315368449347313527412719305819593211796131671359610509405340116928993159863066599576456414581819001759986714367356413241967168856792684325832015629255206363038551682240114592459391457828488724569281628772159518584611521261425428701650685060645222798972017615738810337085143651384086130984650083061236461050660141328067238585863723953457586757313589124877189005241928775433050902787046729786846939403188412474490557622919855887160317754669898377425499191285035594633996320999202221453516832760442132308357943892239395826197965122410453348792691639312635359406777252175348250899921072267362433179374791372649889544691806063021890895087809507632388699674443686602256121032472912150552687650914601345147173833019068309304391048762674493142341084394550260368763132166154428837098956916304835586581622550170338304212572061695599355360334446830722483593856517997027058915451267736064720943773805884884317634660024208236761278769517547633926306158359468817575564694762260199857343135896999034261527493814841130150402456686715800688134227722066345292597312541294727766867368090524652826476802700422307768036676505214434887924307911987817692819998828341711018217796404812215575583331453794649555275408362676470301543561299443372931275989600036978729725587441315008767631089608522374345980393715583568102546950461452537927721188924080536555925494744132632067356944287004156795817795656781574393834244111510610916081431934523591419453537904578130286443434674253006982631642554544030054998469029445901038813511618747026705594863325780578119740765401821005965553431085430682980022834224160181218208501901014886834662440951500644322579552196708846155318800228794078235794238930063977117066604982289001647634047775131708095861260516604100046862617864195114292517643096343087243228201740685782851184568279637027576432671076833576430118961191111816053377592049487703661477700021796538652134726202127002533951566583079124012745220849011359149763941668152077670369347787557768001238323165306189450789129080438818847005669083005444003807665607158957119803036039362001730054431646207245496106912781027599089622489171358156060186973463147215640578009327831861523590233007929821707752520077757986032411582875394041804250928945857487505796576038493541121915585512512704104342505608123159293857665596102663344984747949402718279975861477696735262617482522252271717919544396783434783314030255649267347295444682398131600972172356809374015911562953289770477920177765907803744140823873381543950004910053749866096106620642043617318263201000150608310272029852968332131479512756830171545827364602756942701838200336145601335589075402702043708845998370761124559919311876557347950374481109534459147638812445405314472483076000309862504033487699702903598484490233341392576149433416563144309634536066257148410242558154336182212847453031527306755057190951355759085724331449651417291327204825954417921940925265861635547053177002419129630852413654344913353952442946319601895831845218770654837895007299996463337847226135436804180404229575434819978411051994795825212091345015432788807982508446745015314726118540897438534246968228855856876749178906996224277259985798545940462646449453629942720671089842481732067069473305346893040775321231404074011799570479648135152239456619663070954205035523217536277215192091354810443231820156919516622861697115388713358653055499903848974043961241806639464702552423869731168784890081363102986042889376207442879043085534120599370883132593548958798521964739604965439935038959116245417945843820811542578657044976782847701825253865589002361862477470121073231419952070608091430697811597719234751242176021889126100878639865000215605926196642436612855126588900279773259291827917550439601023254345277883561678826961322586347664429742439560043745777636869094036035677455259365773378312704022904663829345157451851670818953325242507049253559903151472641804464730598179370404222911216901058780486948202613353007297979335459532837345693186134590989141372565726622088970078682415403791033390392565965889212776645924807236578422383667064576638191363839194044268144569200371824332450936863788407689793411755999001665595403705255402816671362343842393246844004766472854020105585928080479911521226279160487665611119295164544260275147819910863402989738511306793192014974060355784549077068388057709897572720558289143643351292177678158238035688177857442886372577302462146464986612672560771692923002570376175908734978033031733445539345199707694355334360150416663370930383208769672086545451148409974307953581740613134412132244323902600779422203910765072881195057935188738787160319753408682535177379979829034875411188127263571980240185888407110822686809255202291466914844623657328620337142862284831215109386562548110187997281605196863009543755026076613947983910090027910975115746350438629168010690076664600277876223960675502611633044341270996949656969546415850898652267559962964224366979705781564051091439814867207939981824280775161539865687002030424583762114816424958145362497682906575370328446866230446094383797375537453960739775442816672047039382455965029382724327754421275801677386792904411953339172144998498840261456363072724232797405240797031329950660709932648418952148671481825098700779667168320182888137076977424413185288681752993898230892311836945726043054571703101629942019294703270002417471685953566225203168577429069864054079584053583266636389537682961335073354198462763162430566262228117828923723821153125034595911610617820689929358399421055677536840251462633362900532764279164395334373585799667593046149147065684748952150427691513754863989525660838838926054958138374432014604102336873293646402108201448598439702897306258520920916445728241337752244681594046237040864585730488811125200678949689163259271581591010043040765997601613528872263257903202469955249091337167234840005459880501108461240724607050338680097381731906542160434925730874973105486228393842047267374120066905806504417403018781312522721394078645744884320652510534212994828323731538338399136912302729558899076864361648832931562140940671156780877776749983280708442454962327112832336616955828415841293745578290239762794427095903272732315272217531207691492363145594358223778283112048327292222263179051872073722145471102327620806899318085135875209701443978345757617958727731599578748129700714923036987170721419487309870082742913642583429265316751147039200915677334372359459806225027442406270939214251059561670227941369726257496653701220331292989891238719870821888408373754266887528346826059136700689966510955982388257928022260848557093839595402104454426304646300045249005211901208250953613195513172412802910167486669919763647562078200383075204636861081454796149291152260372799496231711043336373974599468312039308976130456514693623589127859326680792273333983410913671597366395661566103868145826936522604376760710959494549826970556550818033504639838230950246073377963005293505825333841396952682757867118441302173644166851512138502235230562872513457156128068073358388097641812031907831745510725180457042941587515451807948130338095024030427063326734267682043700741564916276272847007752901188670462804357533082027720657787059451565389737191842546836879927205854886271018809734602974684965480853714162359768324872648968211090622841038273387771125141880694998592685083083904931074140258119987008399436236207184720890062573992328590534765035641464688835460435474736103566361200347408145343672574009768764758093137180827110651513857602703525472398461223229729091073743598419204208776672292202514102537624678986302033091804677418128890248086993931287356677937770354359599752731516985410352930722874899458565355284558795248104673833304495764944971756323243231070375398800767852760109904236689565762976043207728624417194932001610571541684184539231542012985967797981356686151110184162179752423166066591764564213036736383644046852873657709511387487935771538199962199552484948702601294672605306481488358858376154322822222513955421541073981938945725076970660826191879466810537224404915334543399793502979754878949855304172289651106837313418880188748430757641314125929570018296503991363571782697301860435303135695284121616676660363987200235095471053929848389608737451168514152778528131687278843203877951318768114498030827807654147358413235474186389638918022288431607787165626960125499969578719237849683266454907771617312209599798082634893454722269960349829844382198346363854217995935485663172597865006296228365053613373839864746026457211963396891449713668769393576713719009959963195752853587352415926727683528628405776073138060440740606209539258610933189546630451486373276415784149583863274661565326617100362054547803739687153362658410780881081190438252515552377124234485041588137432443037731381705257693263491091980968230448877262583217827050658288415950019865285456885796393827241622129410952364129650955649278243496073249783678519539576575765059692658348907077143463832507689125081387378790937152451274531485323456774742664547764278254662223771085673438075381983576806200275917969890878187886071682126594603668585324960725761356945723557145071635004548680462706063669188771387849340594256813681092948348430296661025021955262013738568851357147587658171212394213317394767243397101259436484959888594397888275672846893778072417053321244651954281514303610068786726171209107514557638140270820881462970161671297872535382824164210072596738150958970579478338638761153072654935136652081793002593870511458424951610805388316406676995688662335490068725737765698945936935502183233664104814003019023008862414920143872676037588122415712940875379906906815132918447296440647800759794086391308247804056084140329640850207611047080538505504938451772556046369374519647055018252841117529781713139031851207977864481586548122701761795198575572998825419841003921291653509068878033019689283710975964910136996837574734781437624900788647960597457895832373229234375684717394114521987322066309727767892401995216632712105537955552021401626480313460510385489732649329338449893497626198769468500749187022974792019103160858223759646854734828454067719784245923131444705350075244237571871847408827679088694347809025151832519148514839110813915847347188864626076074431402276641140067002464586036453006696945889191600331208802828721375120994666980120721994137265320375314419628593876169085138554113778624042390262319496277016741614702524141791027462974825547197793862500509284567267858469068382590201738545403724840583004309902652715557528722421268910955577456631434695880816344844733323458223542349672377720774869810343085791237026409099311778287319990699206334544594307490296726292337375397072104438831118662542278663652891395570666206136775440682032165741495532573343256879510152474682937981821260308804845890687910062373555383829496888567339237547095901864514458930574152176722289151505384731498001183075681492728749285629742877075156647274100345891410831140433743135014424046913966027010662023991161243051585718713921311989478546101022082930554945126248836732560793069753738438460307170771471594563106651322236022898782053262639262767566180755839975519021720868063960392565057978729043795538009478524891657466636022407973411407990435128620188661900059014500185726592621971543020897082176917482523826153636401102186823880081112914369921101534145336434073839466448673018185833687330736972480872462009998547388401651479749631674053854638201959070517434861785907747450137527193452298251844775201009727595457762696840844129404902093753798280903425422192655069371509334308149455836811175564949786416944810673717680834091264664953526734274873774451272040421988092361894835285124365123916756391595075331644308426197384732956017034543382815233939281655804762221606011959990861883222862727022518613821372480001753287827469666180428832422722168588341843089334278472055558192033426126130877567155177161293361614379245642598536562546896261342529501623413218665433485981123312300415181782886368630347110580333463622669493326967350482137577008367754102406641666390235086036001933891333754382979881049178669267105434160298904635843191942221444033106651291734787060843054939866739465858207648401735465050043048054537451614345296223209645852296251906913256653771162541954696535100511574213476591992452722189848751257204144606496955373616201252276170492137499714531845525015721095032928705792006459754456088426320202607842061879347930375493957839470002206414594102281716704685345041102315660063262042486564449539073970079731371404224603520475482017145325041408524891427480459969422713502708180522659876874933957193510099735707329680878418040928591964860602874455892364649320404971978489623660695824441613106379891303380962991941606932267655694396067381506342397532590641402568452534432603738036660683504997639835912365029138311696842822709606720306058890835650177237990445449129980731321567202159051860007868529023532683913422069715803424419192597752092379303251642451742079658976456893802867996841858014480343777791588868915987439222088543759440510606929508787931978032647932792628435341714947778802977640386972442414432762495935525551234483888234695960919083643851540044897791803282791579301146204359324719845539192614953349986905502760748540503233201553412469988767849875554346344336010955085790226206272705365007754989525556952062683256428146541537355573461410953544634794061241121461587243637409447026282189047643827188229868749668967883967226277884581257860014491300173845868114149965227804746891870513769537483992733176293531292305224970641206598830752150790265694222194141938979459006208522449165830193679753863730358769297610984413215334216258641730989709318478380600447570153475270638006320798214920817630875566799612956263568132320629833206423941717313464504015140252221417285866670308544489278743823271383095725310692856945828127133052221988131988189380980652979532290716842243220813138528785671603830722307825467311470755777925544650605151788579936401674282733023927323776272744758025233654473780595828109771819543885147944890305625005864622515368364585430335858292544369214978734357810785507285073778978014990258510746170513981595443323683004130420633418552762327348324055841625153636428753846820697094904168549743895965252202837403082124790499215155840762982124806697761711680298750944388797053963496848954153939838510361059473988972954495134358070108063951864112560433347500499668491380470183583703874654222718650659228744741341774523283947464520841316784970782416051414980960164109609168330103328561156863001374919116567215418748098339573757876185092353328704211119335035842981731414873629986552003656230001897351108595171795108291597814424453447286325734050636350807135844781974188145560379008828513444589652673845041511475585046488227709534367920763513695119465772081635332412147758314002969179050671060091664698484522959557009022282959384807883617768092566502556047382730086259731648317276361799282543749136636599653454960389169707099251694165323251049632911692554425764378916580576033965261996625777970277464600635641347755012704649745423609181636659600527225376168198443025450969233323006981981817503318379616220809467235901230894877886294159864624353601054271097952293862765497041754547930130508504834480470628256497544977221062010555634230430906445118778798637563312837228035223574079389958311903256231779232083424266427631768685601234122698690315796035315800839115755378444177316696576292421142172775537712112495860257238667719396443256345263509672004558324063275344327120313643202180932513460329557884659457600138792678311881206673551631133435967694264754420470093699510999398868380670834153630168215459464874980476355821050392461103758214730913372975773456145388140614818027087950909293977316413735417857074048866174071787920032975911113111510365312787491444228672358244660282908655683046112358184961563142761856098976024573331948350700028461642515162836707159239686851290682239154207621907521605239108599826032653462103514817988330269340946537639161574152897657961667742623325498409103104393630852408117044042365749859767833125634440298991684499741232294268230838001566850445801629306724747308660071876304550486733473447516836240634820084507568758671008891728231133653843146857708988235690430284220253232527877476429886927334605565471454688270589738588386124244610966410315329916918018308979303922123619060647858919424589573247842220129974989942725180084406711689809328219583661366388291793642234458339898296978165157702572984578300925956341719191031628547245488159224676835118505574020481656745316751777371504234585492513995518336548078153675523511860379081133390415886485377843812442062647363219447399288669096833429546495465176885581450159572721153308672816431033803852151807201973727260156479027881060629047446557683690767255126618281290545084398579277472663201993927007955854095583107659848114932344856826801083974240641695853059730136871232442406809678825850905947375160437307405247469520871677129677438071952351769183858262489996918565866230004165866624626479413835584711427911454393036577464738191968095593994302713294740039187947030057851386431064193967826675742953713406758224526185392565348829819374507055951324587606345980331154768354751404256521567665531936908958082637071776935234182772316525866839717519485777828874650085186988906186198505675154166144082658465072907549899186561163451924973311201280938179973723957796811054538327026222543731544646889911443971968452601262532260518927088936130819499595156795862691872061010309091902502705620473850314858943222000082312627816425836791852914519475944022787325457618263542592601090538104643575346192431614051466685060819631182275219452289286385907314742892831984113885285177283777119770982228175500837511769874621769296934432796380950183879836544218828405896390747424408388480370502278528076039467557287602797858973248202602749019464365888104009681316474190316788227674944045629716125472125028930738511965162320007786354415629878800757022429028716784343918552075869823647063596608803550857254544522115886032231326230857114950365282449658494037941432027195203577613169019179122466510068232970749926740841207797286974083564389446882534462269217302525098740670219478134370520728970867950045884692864687164208079251951693687536067949256669315612118141000134021543941675479726746790881035117027613894754210525247600502977127133500644398318995176045942716220743422340160844597888132384207495844328863958783790847347685214006374496150337203010909323024547210877516474019327982956188780300418468224336492792885366407461662765145350671485446235954951224175062173137037505615954393042202297208375226942527731326510020989731609038216737622594994599408312988893361492636752588989958895465241648748045679208518470445370003166082461249270778238690234939391482520216281112523396122146103069389538184928752894696861517367630843224551770156272090985861110202969035804168478502879649885634512615686924792669510234836216854098236589011497079754861393189749707759359633033659718734830868129649389666830947649511743527322703993772196836963700884245692385611884926134405974849379888073876917014119729774022568709120366244754439103533079687878965267604181194407377482384418090569914738170494503997994881508857611341025659377144434892720478823034689026922445575677457523487970736619040609981333713125848181633569171135646227632673965902831601181082353108554645879315319375447425263219198409847711193337035251102838977688391088751017570144978985214629389995503740563536231809056772073715900464136801273122950936668843079426354353358888515549849557757727442042620288134302470991926614032042310592189148094825058046454255045082515094796490888400741886397904560121712967167304289645283184438779089904119187682194136541675889850048332721229646001343816239765803109273952703718441877439651731104504756159601970842935376842946068732222362492969389984428465524358397695427251142614409440898771334921960628878300485967531369325330839654118752387481816683873197054696523949623302113936907499354452560168515898851971303613259895714654953888942056056693655803157759393736385861183154536311773819041934133922527085370886913886381140333552148952273678223401914429823353320141429387064924579863218340735051382789251342165560882247636783618481070679869294171460485950309958493487923721506473334824638024804818061112832441415346355171698654678494150929301667073003794858926877087541935009857676684509065986422157051248461103575510703989330439200939882722315781818814179772591658663166454647709752539092158398671610657391686245675416604975248453194408665661223516953266083033962504021704162073427589500929775138555758897827805722508303505576318014159368214461449487302405067733468572518019505423566101346377029681803534483341840844668938817760830410505449524874392141320542334836613140927545404575930491042234345444405882489313333165980707712181723235157273478503772111456078498199555258063260647183636145349280757375666039464816613900776449539139010463344615679840607947814785455258197217732850876385838808984429260814141940062929527101126362532695237649384419662842611516413412997758715230782157677522151138633737426264207338092287150403776184027378978947373726546012757778992905513340274418266807895290930575133904276993851633105348562234666269026337860918980220341908697101725653204407639448196908673683547928502008633669439311997100840727129410395349811985222588067368546068740463362874881679197813752156489353998052969997557038336145754711355496636369847746878730315531190292272050051501697758617358821144398324470158044846935891708218016202518015483040842682688328927513412067693112787563459424921161068574439668223850555977559056983422449519635004911095245668373065197811447210128187203244397180647222701540057449695540768497660585778633113512758164436312155775192729952531010760069691844015946431424986877829360530753621636262654459530047768316518573881610959820691694999986738315617458236382135939527454587493813445016261635858974720981098243281169565418466711084245058710409644533017349478580318925726111204865613100071000070402873834671146305364520173724441456444210667095679022547573336029232559875153545285973657714773174847373207267737468371452298107134713819216436606411143695305468054606225832553862182111122167113681070970647641360456793692533149757403491644274444786976039246733126201694983861758463867929781245573205938127833488288518076282582256992544428990769591660978074641094982345315153082283300668452535893038678031323620433338373726088048812764072537235350186093560942986802332514560789838093344332283790287463079131812209504907246485604893209404063632663585731945208781716404879256400125067587699165509069976829487452535115023781852100270259798961230801384283026074366913386082499898119928587949192977798781664331299191557195515109088231866197971806838390504667282406341478640882406358593056983067245300869949489956425953047413819367499134083797225516604180476702875949278342235903420482973590419993723327951286495286209762730999493674598943629596441048284118262581231543312665855853349139468415530493355619324665919090124703312033566469301351477185012974429267171059682946335439730797364413672768584118293985947588225258381499360342531227387498702565406339887170446663978102254153821392020267070256983062926504879983460248604067051465430424392056151272862785216728731573251753387919587753799468760355466007374638144025551345037392629620178757782024707921159160540480371681225602476819299822811887245149962888654981628265623532374584430097013468983855812131589400899470124173891597817408770118475849494497837464709304606515334910594947865687132247490550005225858842751945592152552082156052807621788450224554292993270685557116144978346096562826920824004159309238566924204416732055013460131773678373699005987679599383999295649630898818910172175442067923977231392556620878384363346238428306162611517645812313174741970985026904440384059742584431201297449728538861418672473153341054353702586401710435470277877870896073168504808989207406236273732666804654827177931363485669462331008435858645397126978864826570771480098166599844936572143229433679800364607977667842810079744813003050638742791419894532203976442625940837387704538650082166624842302642065717427898134397093464373402804045888757488408565745393019127947345812102786381128955984533415617288800175655942202540710716437959289558233936566147216300596433806008488892654313620325524160959063914889952009118466215260766510790963726806190763837165957925388135312849491580678543699112699113745898287359108823143654686944319456939261368714133033641175818036764361162900152893606954137702449839592839832847901094806155155593025367708945102975531398911315270416976544673199024191707468431673198607271196248122858451272418611493776446404236500779141695526135364596887568762384927843476408016574473245390458008837052611981338721761705909223619007960151078503774751672592213117159426689803659248306636330194513360398782929311760558927868696809973384960145055249533462076623584823268895597448105954634385867155221835621488403525934401921312852988369949100478411662673075870587560397110384109789053856762391445359696066616164202112597781701724877816011851879294470031554727593974704328482411357326110474043380176825808566487620521488451670665082808875816715641192071375876183345936062603038143829091488249126685342468675540538869402248582027433983276391590601297997437997488612922658308596853105129079512534978717768451659908691740670473918214109719451550629203554910473523934734070378346971895190053429787644866197490885702486834907790230866177007861488587113330462613416073042387325307548459510079225599382552203939573979610979625104247992164789757318751113304603181513835081789848545435350182930785518247144719253473674075081410203639308073442977605246153753678149737646779093573802805126832868848768570421902800665921579729450741696390072115606566497934721855303213339137494572411568018145941094554949788528816482648820042886283705737455593596099366266430069939596805244047963406555288272282012150247582926775224734627719020700281021071422526401182769571789155098255969025718715253106433098555838481597203478847863314087634094989951993794438416436010798853806831584875160542947822604476040188925545912917956271299459194881954321548821642787742753136652197708086424939423434118239255539090200430995194695238486296228417044737385334690651626798423163875884538104528677236605273516288000319924429237523917881218331741297572413589736121603992236078572127947540170508495073415239966910197464708513464250214404360770822392545956028629671236116173358981631838252960030581374096139493900750175833655265782799341256645614713892833922749394617866708202162565685761931004063053775580504611529820234654491038318953878087751442423859573310033898464215733860026112189554826887403205197223007919652670237567084753107662497564484557722514847267595151059450276406492136714265379559034289341720946862248120010888488654715422989377500909390580010708111545674147777963898116853866880784578542041570950980517512296337990620196806796420667324726259504998463685617466861446252649322039177265445589092901650096839437438499349198428321484403394553476678671116292205304840816064338921683194020301879753319100096353763581060444552712292562545206956015888854949948313727344956356389609301612314359135422213974703366702611217582049351804766998152295189576073215390693385903290367321484417926907519610141255639868111406202348718129371188908734407086410388271539939291167275527124181262694516191669788180287816748649475883618559366984278279572154211096392716126587526932226286603530958648820448603282131416917035526842782180704744785264846236449262906753235795492561860777680478618184803274097313148587493803972285247371132516025344439154905635452175502446450914664386251897405991449484469100166246396957673672242669734754064693089935845385236466391491453284345945044228257569828510886648654345285493479592015812206585795174500991827121445406178014189606332103063919945190897698386889267730038183053295734197991053705927472909013216122182375887652348840564411868398646468656355893623634394501165021755818445371375092861902378061949404329146322959469988620939478697207845508837559038268469802873431738079244208762999720241683058007698152607711970709061556752805424543573098550620675457053540883508186412295774651530283219491590277745793978318048173577585715911143583992936400484386876712729906840871517826931463258466267372391810989551678296616128396975222854652182017069156478454645786811721768484547358367314559601688932516044199441566344242146431273795749841418767137810879448707202528771018401514096860172483120310909466597634045067763784719678310426133654813083908046514747376493777791841342970814217021768315822567521005749646039187937928913926036140157197127381519983266434522463013735988297251046026568625527495031218942667473769353028731853893382991437097823222408077327070789736372792506133002861404567150234878124058932890039142231147517502793732906795284856610320609540177888884170864773798494433696993217146412157139032030167159140460746088270256831261639453184054512806653735357872650548065886439342094628643059983017005502853626973373879303598585245419582763942180235717911766900351761997267591820056813529263240290421930009404688878094057179836225232426620221369966429654133762213211538834101790191090930368958359189119133621454767662727152621164553107665649348998406154426039805427941968704094093525384245202306920481000935235523845279860477191503412621705863036669531887561715510008508612714313064074743950073869606037875183881336526939837867697761177139334326335356371206773751065303808551156397710324165990367680263563188069856332654547982634507805068571667816020096459403336198215834712877455240664938433258742087158330584183021017076136613363834954199933224893505003368751843745587544896475034610094834135255654803520041683057838805838212944700360483724136841120267814880015318111167056922163241591556871407682055100266523763210896318669418398245540578839984955671235837597251997002798635513809646564690194589024303761808038015476658028381783343365809999842485769756985332781131624633725595301538610906918493155685402032481775273148107187459215059463432977650441375628550224573072676102714689486749339489089592300296644680676692450616299670157482711914385886785349791224851390590531135398036987168494854280987390294758857547830649959407628023185755119058317306704245426810719361124700669296141949947293164871573153029983632938939901111536103545404898674820967236110780610782365018823737509224488131119615440147622293461070598467922860328167196996416476748474352562506009433515873379396522098495280112442212900212470253652650236108767705900771632978023450043923433524951649581412860581418506770152382625950091071718888362317484612077807191611905917995768252358818920789896427546249020993687647862647811676886379489841392946736788631508627226180089781169687540688081539005876789038673773368121936498066728948466292613917738023899908387957104299067435941786281386877602837043786443771877959935667073154980412681833616198445162602357572591824655816876540722785067849515517475709968655078465244776045913739425919529489084277151784059249524250967662302056295880292248950056453437641435998182612379668420699172903523239353604192641555013239183752177327449467938638922836117889076718035914503500307362065265173538297179495257386629150147023006699581388171172378164098267509683448013801065438062763219174805273686561467499980563694547980963947442140116453297322888030098956363109135145476027563529034457658463426847308847954285737264242822344783131576504640289595715943981747100494237444961512365819725707375097548052021280948294982703202451729303324457939766331871013304896574544569247538152293380019260729057225693152350674339565005739140236721786983533237239190120132536961615182860902820161948562792234652784435270566090245464294291737609749729724352541737931386846701028566336187530847773236722719601003124621714366914940565312540347928644069089447914499202082962077036843332095085585627393302354416163883070546879708229006011473419583931297380114226326443580701341536164821780389723164206076800475499229112330106549853457294531137828337255167242675271310963754218985217440566612868321775494666346066610060361231503010614217858146718638324723396623577784218681226838208240283256027707696985770281733009928745493498162798939141528568841804466874170929003021019764310803989661287439217028784839553137573690362965303227396858634320176328315374477495117215892472869858011310875140052709462028792351678803796162700427680952858579768718359159336128361779742902736619430018955093647824398296644690740570685991091275107947502559809537074200361040088354375556005412822526788931612686678273231717729983381038839365424693124680275922578835074356120385468650646572545586491227464265685787749112118552487838429528398440394360798982361580322116048078098083413755764332168915808331147655918153289357743523361158782132003870030100214311471628285433683848469703752140274626360944329429726895912572722438509682127732070977415166842609273274665357809848421982991268201973264470821379307445802293154731052643336141893708039934770778613649655762322724398645756616170067555196159559756338227545985458926571786405562037273066306877359719117497251117281481483708504831399681317821143156934657180450703499797273425124275015651702244248568647064016221035008315015996085545011816603820012137826658200190602568012134756316726587479657868131545114071255823556918148912448874281901682616712348145703661576305719983794781324406198459669109219164126341979931243256360408924496394584893829370165232456680328401987045533864006100082745003080834725248278480408573537963099404850763093566352011774671261503431258958027332232368745985272220132767642926619002674739387644849061324733356061867311394868693980236146705064459014316611514419530146102027323036854085554274491413663995811655198725435353820178619475325543664553676770513565669625086109796492583203110978455287188646334910320983759099487141091085613026793980106780516929587859746342857304935516162374772272670815335044629317328973829529093768908622047570548467729347157292121743145396949849109142163031376473636383690315486988445777888579294603460030718714272603831699823308261305333128135548911871160735255723661176005855704998243569266375868788769794716406625760488911696866570852841763868854540448617168873252697905553169801554108743780615320429394746696296124397385538720015619845313823185660448876085234751597872277935573105791034167613546143448206936012133547015714813083518112177795495317596397969128794994694636307839294480237274059836029970072542137685268055639157573865332112128983232891706827792962902052867121117208085927863934684848772329576274907326448535971403106296965765722538983671269433113291963024937460353648475221609900006627877636388035142950752447768604543321653483425303882513205017582943453102741253625972300397977664460386834422448537595035697808702798634767317334733160226304684837690404471759120195209442974873913880018446062791216001466055275596216250585109890976818923650601958403929427703579093671886203608484636892447773859858794985588338569588265521257353836765229820572897377229873349553375664503994049549306470501252472227225735361326568740146141878211199184802811962910213735934438296993378240282467230161857402260573283898729524576450711616074413862910481186767433163800671993222190283732466218907332028524759276556874651451477955190925780755095809474039345979851606809249088876002675405562403762410085255912603083850904832001033844877639378413045880891845227524711992175865901948659276474808749793419743501135257973396652157076185693163486691661790595602261601540216840748026539748892793499726487252318101959274023983787101773022989890671109673667784545284106613563280176142649124902435515903905800964590309076526820282819842732598157491755335875824173901333859343990779890678860902862448603134300487196829508103470341413967316990172598147229918566190637067843406036618385231049328886260835166017999582843534855222441195744395644605507794253275046960636218745199185936598754197971886765243730847014796985589746464485716693737928090141556297477592764782042292971805530483667157939969096761943350982470079744150748389573778421065215301851074190441646329085878473980032316912981670459650591776759416217115764196229270713447749841571550144778007113394651266043299668000905347258635607943352216972117241916386275066258696396115405080725530281374869709703433219257002265195813055731362921346320930838703197103897900571277051300758517623448229369866621053015399627680914285608244542356268366344211916453044552417005264668840022795497005813583475284343928162126320558339866929967103239132522063086930463694774175945859516961362813029388899157924841747562407551173426343875292854595031353084616805796587627357519074173918394660610520925077061818360623233771032423012639971046223947695483924382683768266617244110408453550202401775801425853907535144092319821880295290398690045567590178296212034257988319404823749211331158019003112141507509000859791114143995786760501982553303649225369433701514690757103613970489285495448364045332240886751816051692138861647528593928499956355567299333520889645059226079936648905423435981927382232336197653562399830598167700713487410800895099103295768465796986417276178939930784082029623871937284422255127298743519938358682311058211899139234601789262894425649663215436839129028035035012612479268784878230202899428942746955631019571592438222489706752751880931543453392427618396666791280246456635908745742227673448919226925067729029023921668087720740544199878164916515497192909804131013313342529464862956148411369626677346034652368682538771596625878183825707432503533755323153760426305799876452442001850836215844043818851161613871279166307916522710288154564682928959588918457272361793506115434520318330679638451181442291059784358049181306957046919236823454883795609611495238228564236869975523725579736510566828157523469339152515189671136994388395963909202636633543280298093378875115771526713091598403225059825458465956717945565105123923610258302918572391877827087566631245084872646384354135453253999510104788696839288652227758368241730552533833037069509389605371309836593667386385155774951877535986353536768075861220739979692802691203474712621250977486012653604246439751885645923736735765288677280465566138351716742276289707391271989460985919191212068416032362312128116726194539018026019182524947291010427672008373597885033013289014734453198492193361993525240009309804542975451256603483864325512504449673996806543362671126548998016890127258391563294550211905863709535851719592516926549588507169567211223159116262760380913591060671315149027319607171656324251353402260796201349678150815933623189703006684870191068397431948132222413558274380298549883898999223772682154944723900137092962382895798136620329861819303346054144074671212229631293479770431810618751171395034336413643555109811043663056845419798884060644177193430072656365316739715431263056935585503617232227963446488644608913264048036020555289853654952471422333052364961436089388705267803988023101674691346124200993894749055596113393094396542462143981321983436643310333416868598004508754313828192029554309478043118535721593988117141270123299213299642391977026899893010517717269284008472422650757933601147390028226889750137595459967599458120865636815328187468757448782123794216074036548156107455500356400999353245639203453318901490964148730611579401844416897566443635965427879051135498838784187887114643205863940702378219987160633284424166401711473915407860260025586735318857989845331420378252122564961782256580325031233745289137067394513595518848892682531559495705459484719396176353045597840950404958321561573099195222658381699325354848650384733851509250985381528253838176588374323704132475711483457451867974886584660961505650486374941612912270427439903607538253464786388666991354522251106889892955929927939495080704193876077294884147696635664824488473327861147447699052152148133987789313267133533220271053205683691304226277951266106344702274143371971563798869369813718838496927644250799803337888076318558376751908431978875377606324826440636285398058823362925972672894342085813207679820024282262978885690529781497004184816825627246455488376652979150378636293687178532836440971947872012896186570538895602231221959537415213075891389430666064740930423176745903180447968861506362866635875185040801203163266772348760563228702355536672074714266169993712616964553797420310476473444007681560168167593192203700704999239282243023779683563861911544539919715036128374652082928246746229214718755693667434671251690653859124825140556965981364464049897763077240613905435294191053865667792540698810698554545094622032071348885629369514898167981785757424263702463535819077274619032511337596486110468598622322114191589470772667868950012738070717509663965366941928756684645124864397708825576690016642056481193621576468055216345848969586929869116108934605011723123424789748467601360824946985084916607392808213730774408018659090963239776066222177288435880078428581128388081085424234135380479383180253628095760903929390517124507804420181758519406298291418300448393048917206170052204054703965617772061691365183440647287186932590855148025320498340421489081591001992991699025590732620477619505660283341262111530691910394798425867332377926411423162938858445538789962104655763080627108862328260651375187755054528100104073615468739592200290134896840965944346634686502143696095818214746164102260946480334744403479267983890021587313391600008494242685266655416143929228532234258156621904785796637192963313736290328276604198252110813930462732744723885551790222965545220770389505727812941345251822001602122230245027718167907975036417845168476740978845252387247596303459209767689518348715481369382424875115360592695372769027026160834603527685360648636359978290803517060474288443001650775143505170853003781935472649554160777698437921870470364518158322563725927048850347663910444381119490038352512687465404688974700578109004243582905194435769845938591787713147426624164357485979139606876398969241296616215985619061982425310887103148142994073068511398438488066754951770849814071198651845582550074962061859095632850272109763657438143403532978632660793114080445623030451087634845046797011740719342052394103615286167054604294935700200338309203492791885385812963917068522077187810557088046855765801336484365040347051416770450274684942546884463379524604693162368571263400892250753356296872146218524301791730092087655071247083399567085352957006955574309735802373112341656279531347124577400360864400830638414271847688745489686940620675278360245464701192772294745381510295530873482147358445982072202597507493166902670630615927190097314692853355292829517028788148201813085357744692980729616962296793484254246973335377571354338667118893371912313993383295072325571209957112784234388269601647050412528915793160723777244083393172509282993447641940044455688732372181941986567342699198071814813846721495329619820093166656912603473912923267228532050859672478286488321431734686106683668423516359459994784796825418103275117255449912033721670986948625333797305204083584046162975634103109370090973510704844411813985103177993587619515040557495301164761674357072804916272244045749099122559034699232629874117119110739704926330812974750577669349470596254444189760224287774244842318634662592097698612955018001934232891223990686052609478589876993972971927804210488966082668079460693178100103849939666627577474732928931570674255148695323286449110852956255967277490534768434615316496597416592650269665502673114337935098949690044467542805149835796814347433331662104403043076533544228050635868293844417564719197887486002102695374446464704010389714218415403824570031887851434253290299779272119057700430176740985468538947408978603467352512054420883237489268365034493499099362269950732661710240530245420879993158869767441273552355708272054710907274375363043169330134313276296026671861800019526431401897744600715871706399582282490466667559928923432538751076654383319686441978427173874242588128828426880147516474449513436878171419086706363463359661922398137606062755305855736086446449212831512827504407993857796868913472854956054377126404175616656690948643296385188652437192010753286915655531873640480940157665436341562334229253270745554116886282733940023282314663237126990602694643492608862923012402400545967556148148676774573362404177638369351125189564161791505470522978907402936590649601651667927818970874783282476285016964793630901340982937745050415635165231710361926422715162553361103894305977139032774600498211031189453672030401375867393725612098190428253334108603609666767826335928705665630868063926366788561648707596782189180712682472439502343268011757756598189260437873187522779357728288017125497569144151263343490472358118411320149824409151266521808106551718451571997740811567506560169907988222816613148793845117455724386235402355920925923674770904856871979625897381345870873085312085641033285961339982919259080616164087506148530990314646251928090545677185033325420620989022985811729336279026881819468135968668680642629104025210130961534346913333747372478880062961700431630157352721382938148859902017575311460288107539242944604089509788490845920107448926003526860519404663009511644946567870188173660507035486777828774694056447314371830617844811306926505188490915791382368373266401217011897033855608786745055503575807811939369263442977112819743614255498044384936241465690151012852905787509505398503327251699421717908921625896619374478306243111852584858211276572672158348803572011394276552318619396776512898299655606164541859620961696257700691321501529565365027070563385043156908021774607571275208087314215984068865797815747857817964982365934587791502910398866398461052186196982477204835828846138178807002612828547586863939465848201774489821514274511614850369142256331065680328027748879580974113012175985490573485341466021173594218954260355244451776999336717899547203883027128961707596709806033345871665805167032812638912501501478430426571473581489556728641261577818441682419581484031749878313569081138237435031229291887008697629064877563095308421085975112440933382450511663678091763648082679184359452909648278345385303782156365931864408087757398680674376185860781311916242981994150841125726874190881222583819063328028492847949237300349830114932431243033896502667452896827336005159881412566822813630690962246087770169694624450775845838534601403796348013968872972170403910274477332790768687535801067168348094026612778689599890055430961926111182516488242537542708799534681972991635585043580150510066962622919623954717280852260345551585080144639325146305879712294094017059406653432775993304587440309614958858816360789846175672404929852546737576024970871890912056621252626285915088203511413727962258597530276824923348515366761797384624689143983896051337790742769789999641313849507952086625696598207212197987470659703006640320633115336959720772124115157343385979256804363375545024116681730423929320306987938163906966806709356697783657366300619279083954580951716817524652815872783959796011240214778719802806331742610682911830978922371267535005891406439745464661596994323141205280925845648137127914894253300930200077961741285570384689244835266482855039497164784731691280334227836659409869201293679764361432415354633271229210132139223619532690191932713440294569896308171666150532205113500655485690887929164009589362205027576010050943688812835719753438514977924769137060905664642217570638817131139904205265737247491367495721529275016864219068395813548534765119587810672403701413146188856687180636351364422868906513320498288788711959311216631861173904189198848477533801662152021279207365070936749087045918331654070206973365136485036071094708191918807482381300390716373197537199037187302222926461847875477498852526988479724257049753671099754733161973397039104948155590815012471684733946544038887049944420644935996221258370248023907620432202688857159341540215217671915460135881434731280478367245597753674921014289220835358262228980309312764489536364520852028160297359640538756602492596908421035413190283323522269697587753070396157920535893432336989440543719330009323347997907371580265568074387630379248015414516328005113556947794934223002651205343812993208158801487018773618138115344051213464554618244788642087927114797977238938717873388758166788551270111678073743161082981564995746568631406764369070122660810433087386871906516331676155540831981283209207926755021009675070319326649134466728001688016811078606893613206664468030842737872753949457317484446630498580686265878990171183762188656666080185749619283089622649837809657090307343531395303753242351817008968510621616477873934281720764248929040178969348750066020072028709323170437427790847802609715178567856730047009021101000755324745413354094833520746324632218270433027039923681554723489287033196536330346371248733814889261256150938696429111597716531845837258184475343789297917626988853154358269801985397908618863627824788982256163196481453622467498568678111204861619289953629217470427595098724662522859421427660630058173463924577030304291460202099356896488636003537778361089291350386955146935749062921368515542388470070602633326826821905599882323729492263264371632007098588043729312263035771693108361808172665141577664613603463176617248776400956665164476212812354572886510260760543434523769254440618657788312834143021144443767588772031908342611397112175354269816697029841009262430518745894961932304057260604028532713387233062342838233103152727660160591792676017722240637970543333302672065244222199194274196803197998944257757336092835395683439082160596248136437774300783175064342397047478309047039478752018242520837056465854907770136487797872277147570524832364987843708287706630130963239549026907145084243543509019652864015287685372270247520484657463534518885980144646128168280751360734180351903954223210708811109582944817892835165055970445286155828366708704214646446915452887401397550153375071351861586088924823357867137666906825615564339183079744993593408908067281560794583217020546771754632100768965299409513995062798306096936991607509244161189831048761685580176462049787344078961503568985996911321393574109497356447916983806489194719408020372701128316205243608812851545257208718736742394978526651017250308861232396443767982581071938184998384981253666571982627337932242527770444442302273232186965661754581756345116734205514834666041005944098741518962447919260638027938739680824086959678463930198711512518214536210970971364350629887533990094602552105728169693377276147133040828665543152759781960488946645493120070907829479912755253873919847798607546657740758770701950904701051947883102104541537604916736096739089794282556456324668170953544457639639349698705269168171415207816736444621448067280788215882549670801672125063822202548475847352397826946243941900542399664500864161128838267178159388550969022255363165689305537423153124925515344343563352721971102204332729799993861800698192157081521422745332876606940095875964277284466647500064765623950558170212532347954557671459611002755976798704122357247310421740892471923847946502279597600148008630307798819231669290817894733110708281900469787586031660328185726876488214899586938387560720668686431311703699153800248114406279595322319504796714207550375135013014549221290930367357448904628428548643734789411914777383075034526547489962920649858853152944107147157371762063071099890817692328939904590498002925852060267930195275633845758550205314475815302595254595905963450036401801323073244519961677338661310476409682183334567311269621779389302530089596667599077079330519679019972413812066223416212556371895548108404016476437190549307943115915813071885122264436014806517119987507780313612122402500396762451694337096973826812769715952171064594561212790746792578186997376500778537678410284688551297162305574874920600446503464658185525347871151753571201709504175453494926580825358532101573738632851129215830419042628368966737304447561949580768805972543133205224188941820000569186171189462394911169104644214929432606770553495303414409569357122801723525609536009268158082701833512223609698588326042497078012908304939420465405863423708264624171352631612371020103566286827311697292683608688603307481076607975920198810094795575835256509662128867414324422840648314993940050448953251922677937248309989435215456000868675664657340305725281530812051742848290357769794077865803240154520501690625864868317490980074765555278744176037946496490004062693067671546536616782578202865818291726469162995567807475665327155481307602600531958935476041470263734865286486826208197425423538780913019337443567332322834874301656033373396594808608487736800667725051353260855517383828333147310717586660566430273673863375351914027674990030888435154227332925226123677725740579729048648194876459625636022630022904820531546037041585666395293659957564847717693520261556550977133034216943858103687093422040553747602344979186899673215511804453475021411783440408598067609456992442377859250656545253012339739425081393035690213081005435623882133858273977760278690048958179526342924965962720885581920218536695438894824844715549958919312120743628322700423086576642003155895642714610569120968237904156175343601985864140488155226788520538358349799688043439488087598445366698730547881223781803602481647673408459252203360633209879151146679450957057814560099396694072864465695295327757383808886941026973460822918228955628805735419259206331732335248293102751788585800578169734565370499121643301908551402632067774059403884678599202931588037767076219528062806864628579771694987458524934145707563110210939141015696521975034991431268794403550204351764375591266518651939408691498478043132725482800751843826471454008862094778591277265918521075895370813643188112030452610325480843389260896889244670518215503232183603576473203017626528781412448290771126401918442488085684119587867420020564497803209742364833736122459364420483618101509698907375262847237916497521825713843581668799653720729653958230116812044096020166537390305690885844420965701897071240908031228682210220227649648272876576493185680598744572235221133299389083989373816030519723167207490569062724223625253504524638726411258087183653821524300549579481806474778912925718326010025320186344774063059471878491305724455494352853957342753883755137695896558733507577397837829315182851064553556107265188034794704551532168934135625362798512220659648019992114837652380490633665386296974283659863901188835113693924060835321036128489956950983207143162926121494793430010450465375790692705992659198984683023690663567191228760365243294673344129168741451186867570986994994993291300883922579866286738316936103417589778356817428675677870800502676961187303307336457630994460435647074211949707465971928567143597568073064501347572503426078850932318793713837288823963390159324498864876336598704769427534738004845192042723864319006116344808793959413520425301570612422015975989134009388751439936456702827482301507169513776726749876256439254210324341513937079676611862029159240792233831203567809282617437632726215208615817543056066700295620014814316420734013609507520679913924765217653942083228773889964790449051690196893652026226967416293928822201872031024883141306821570027120870635612862986055724287139053498957292312160465954954080063282136574834838776688055789490405698407643062990033485245926041001094784667993539304737359034437602047289461086820547405157773516599883498316491752970820644235307088116663097307217601934368808762219785974200164830376711163630035997564883255880784891494304434377021479097931740504599419625725559700533947947849180388885045864198983972672533748433679678365536858695749147963954198381773709587105263323191673007158385538954956592160405051425139911496381973751846625628891383122566537603636584569376709541210190809790505133488745303561586087803632725914986058244819707871235304081575737491371142178621005726625773669097095653870627255616782913600542194160268862745168534834594797263711514347208143822586304433046919766561433382091368456934221002245759625744282874109251098452270983947015603368154175128998704481368657718216792017274581665356265523387535778569718337464880076414699332144666873018793993996775696887489740472288414186632833610188562400275254911467379037032753169432900751269270736807659631478005202250765243768472572694976495048035859933954064845147525450486043017628250694071308793606753341529532348426833030224597407408005886833139248380427955094933213734630366215607855070970728383159024254731125683626949730647674317175224698810996412775022024435045948460211368546950846176692577350519546936494365862201907946638873395898180379059765871708181848435839466873751598443815006077101725598423880966368214989299532696032367593023932061236203608225109493112222467995622556976917471147220984125109332087071516680270450389540224337218592357107464142707639450232639805454035463994891159996621786739380606464773776959951724773400552142891522046987598211345122699701325930281556204217888536179100128612624704225337107154719379785787182649872512619626517691633783340479540794475043182378134933088690412704595652600348339077153529443417894123484341888212559527036700206471888822581102228454745216411375177748143169813769371619842901350902402981758422161691816696797020048139934229862352789763381011696480130423644368170288695238265112222076097747655831196596670583347802571203789860361076138693770980649233345670676521120098984800223852120119070762378014735856839362633234556806017248599122344749547102563257103211680788718020216173818886305653090196657980454961063598194568174762675440553983075216808634616172790069561664551670378178094478823178250163272306580687050847498618436857842707999671163721406852141376542714355474029059380404524726497903213935456453281589344597841650116278670183875816539243878187987296624340344951647455012100631175199415500477470056080525541794411101881905956592450565183582449080244704679739040751579338962869454019311934362774551614577212396543270574294996041335528020968571042871026062779523372300203577506708813112957868628478662425503768593159184605119348538322304279679773839320875028742287879692018781316782216717249310751401875798847231806193468903977689023512874312875096662118712554870585574330209589738662096694557169056224365855979241628272829481481194925706214495450550530326903440780965595705009403884987031145168524926614486491331837913799926767869861557904348447118099461560707745899240510043607499357068416977054524542608668602444300797488235271512743199480117684360158166242267556660894819937426928280710543743395439603021030955657475957640501510256413561010701156889149725845379821622631137283260301852153556737633242899057745063433433282525718993894235128481210266509814638444802292546921598799599361849560504961705050974945816584937363109375674867261571244824014293027070068912272000308168334554219332111392577770255841147585871746089292420186735778600658852173191181949215439867759617419907336740120794963230156129478159520192386497795405991775633312345051696952832524314665049863798371596969740735416476661418936802070673162354091296305304919302350583990437440846944203948679307327626170773799473217001159793314161155510020070044942486598543408651298913120902464953935920313342345636498334824248455439466865603779074859879593277544078174653610156886520953174337997346661733987338382249540840579768248493551624439109917388636452716229384772249426078285969247355110209703608030742373723363293419513091123315457125403414957558486539976475160022971789278296195764108483833791049078456636344384198974325987630414123311491806721583965455578154116830397474012943465779347831157980514524955600348921065120507304406871648618660047480520032154153438605587454748193455131483970894861054902628192895804225110146787016337371575525450483388885842883917602706047615209891333962191462818154454375371620617082092384029410128915798425993870469381035816642111322118025718102724864776889394529638504978633005511360218100136931157113670071656575133386279313449565945543779337306286897540949904459231768627859539092080165786898964202953241108346878204056528564756532410045099983343340433154114293121148866589435392351026345346855896825487749391140236263493528292125434006089342497926839364511369009043679609545908454858792330021059838943916498569678550814285639382586822539951595136151606025872266424105801949191708241914633645223218987719870400647699289520077627749799456598139406446619467797310829849054714173072219495914590607699234499296965197904327517739387715044961806956993340987168052165972927652068610325837535092355592301318138544554603749630773776109017019898996075288716024668478030035693617121287044530707229558671012900768758832566926390138408401120490773835915925964237590875741726833955193062120027666467240650080846116293478089832250468602507229104594370010871307042469543521475940153353445751416275481877923241971759478447758312952960401333626797714170847749304651230419197799384184680456944397295209667073408659103216344316692282448419193596756654867027552105059661055611259886669645124631593319152196787863666662953702037451710241232694719174480892958303597071888997900389017187861095396762959454544463812793848608094330620018835416819780435918767964319507165628103347022152020108728280783968936692138026977921410246818214128284382662658855826992468545120180073050183694631129629009226932447272877333382398376764953450983094275351469076412310894807410325089245520395330328603475469099679892980018486174452896401229357956246441535638427215661125899765357710155140212247258521274553927552013978334656701574134696140799932006868897726261261372265169219520606467916146577894258359796990896589616116578656644224713488636395978616112860346986927288357217483707510484708216040811929110594156385793592125312995884537060146707284866218274838757359363781881789731854534370940710188414296941254527438725946557798498863031404341777238616376017543008734203818012848379084015213862902169590185770989700268600123327227948613562205743582575874629055229819472993312449178522249585516050332123058519322146096169499907424013870429115381812497506544481222495055738810272073833822675277187372923666160711243735051599139650614350592333390153141348277483031614305850095624130730061963600889601369206762236279976157384780927617717654457421748041398898987687690129530698549472617444484954296493152736118716632265041759239552064010416086894958344752161807463445045073137473737275266864343418960782096641317088594647021476979307740811462005321012122305606294234440070963486366605176902034169491774930400517043302548028542302410215356553288351225966689224368817207582510982828214287837959997947366249894829226270570275008912290186817223323458659487864180395802797862861777155110130730888767360039491683226582474675353718049673162084040154356180919718832946224555101364270015430479652993451561703860015491340040002663189503366226903686776165164604521574543192536779291624493956194076187315908176427108461331971532536163376369718507115998731305084110259137727173056497911890444434767551138908732958015686319882058404912246637463070006442967069129656401848291516157477485481391878825785209531937574654016725872550854445914327659795105271225167989232687639779550174808444634719171455569657560348941079877297995213374533335211159669019814390208037617020246271535453953281790838766387075574766875657387223375163413763030848845715695370117728749915429873405203007281467046084072349477637609529625459895678900927747937978022505192024783732229491733884273734472926202394985636384930463633799292787700915441207724412497623246248860679160554448773908022529576073938316767808500381264830875274888040782721907155397162085493181683137694209359430957643677155320405117036692297115473991825020799629176016350136100322922726174541104028760446649549984187522058108987885456639044843594596618501754518800878342006626137441279241992433076885582756466914252652920757572121456119443425013883581259326486136798453279346471176172790618462049772363523767152091478622290277309047536050231447838959630759439341504671415772973787170197750185961656440470372310075851564182803235265199616981649737421849422454314739690424650096209405541994011511642869730277313824772271494402124741457136447646266669864235279208291549519492870214710376446676567733087010619903906301425346916077349556075595486117188435669915689550567375471650390068241144074162176765368365607310131015664072638179074299573207447620884532017814733723602628445389505684284877506423909661743440907003677370663334793839563398206569681579647236685085515901903627118425148473801210552363033674954482894252842824734088310384169003725067798627884045846371911993171979427526864224178889906029667336279636895873138188687604801635346228845795281822640192990646047153748974021228722981642109485287979234569742453897666520538660752270967011397076865623964405420910318497780831492015981716127681959283198502426929136005191068567697676868963583077455196508370074241305494464953356423042978490160141779509913899055192481432016085660557407472206021379116102868408196334503114712287186306301826964275632052599080487430810196241482020665027853489765993206693972547547395866961152245544401660728187319906970423747756619041426396042614850126921663866507381178914212385552117820886944545501475542370952767320048472319373985026675034056338872474506721487662243283316011578675008236845739201200724239184332963718954129306531248590044694995636532532416333921391199461388400551890153575846728800174721035912293076824933058771485132248733686610241123869197238472735284325354131850419377700352259155512557560094815263430139350357955112989879327837392631834968203339208470937313396429589509708340112805252049190396724069752779673885550795708422865536011188639343685918046308922465663955699961688959197572011022537937167069422378871067611977393727364007515803587048193326141625631531523857536298871473829960928022748341634949670416533167587392695718337464678285614561121163220900309755065757556703888011283186030598561382356032869663782838304470312832625594131615185576999427445711346158039679154933878089738534330342798984540109469496507900579111627130172607705048553592663704738826470806704677934755334451772316735640340774508352004689756255141093767940164398154492906800068921410443956201775948705911548393445185036855919218756681501555028692017827060133556768376476304233454225685868982609351026927355629043242169701128425007681660306848195973233151028283111329017426784078523429260445980558698033297540954216945959485766053508272409492806358877788138528723524673611684777038748350892728336612907822015341973737932422120673224217958807921119770934632822147537809972041203891739385597993771864970089746419360196207943541889917664690179964647076981670218051153603772961225771988416892539733510951930077771239332790821724582981675738710502753904885750573828910362322539417609256988109667199418378969145084952082099614131884196593883448759109618827375004634806484579762032779780574023074427467896361833404641611777498491559492644785404271437173345121142718592499055162951247725816847364091125347127351890825893509987606427939657715461549611210798348694843269645018182112505427591582678883776811355075003629856310441353989479802473637159787716451125598809890544656148428092382619469469143467122582576997035245124085455577894419691720226414724693735018301993162246536226528687001539971209649349428876564182154836707395970271900323931215983584369059026127990839979792072134810313861768818630113720670750464676695876547373154608355204550071832485110905882923985288632713079895506119485067411422330489851401680690650755221483244396578470312818279584450820023647929127661646883304018246249269805280633746526884117138464610434251123293733351834185192101446112801406784685057793171909013502450360590205357627421605858268843532055870208528969164355566007652116644437250156201511832256117585109190134731872888747398456289642451962542329504917215933232826640187095438497317278656827504523018984598410818943779865625821211501300185629773310360730728777166080879299460511642313245372160302549220102880445780614161225893596844828504483616232656094109254269351811312443588620342712589805630963860043797448717881982758939033975105447226307757758161740995922506754798375420007489308079988243594337698697716629659002394110869578156839251668610787390390070267002302933358727328621463358015325895179431514401800992394805859772728387573657636391132721093957615034813484732968512004972072113408693007112650590278957791964729524921505974179815962937956018296338903844118362724624665827066314210983574116362307660976675530016251704379021841510240350759512989203766676366959348487187280679046384161562264471072014922441482998257474771938055427395579516268006086231113936988260121692228841380668653881724421452574514753994719716341278491733274450304355214225871015297673453249879064276757606579330198333673788075231930505059519866689893147147271423988742508379770518690952032451844316100488187477897650311874239946590247337349332806042195283998135118015867615342752560482149926304855946676553554452027320163183599457515639100947124107365383820899227205277908793865010896111983392708149363445193518975457311709215336058108764554032994505464942157818489957360828533421273023111706142595266648490395214435118673722283418513581933120172683049087893604257472254340905715979395417547067032508388561538621874570093095651197960991598069007151845305643381748651926559908597670458861527511605950582811851760876146081037074502978040865222166911343736163743427753748666967564798882301139290685487283224039447925921043625330875668181834216707614361554698621856009776431056174699736603659607830928431716343122542763135789832134588792445618969711319510304564122614562679398134267871504733068355814546561883211643480889954565825101200224457402490141791466750555614656640259388327575666406850415968796216048117191925233303962623823574438905586607297759456176197746807895942523897456932246506224004166336038644572231329959793905245271407618764019630615848925777645297848930121145178356845604317190292182399894547304677157776978662890935427547863285101291794273906409451046937504014918379317092240242678322310115665779834999211684718410045182617923902069662906608462297774356580815137819568980385940900114581781092148402217938046955330741709890212161868571431668394382604266263554635398583301319780932953653969641474302004844727755122193291411472601861369468724962874816660115904205993207095609106966520335589694906915305067845212073257614820752757178198968487667092736743253141011105836458364004528477322133978273028908621571550532522781864235572795730340980661591599193673463470477459201247125717763475746713557970285023699872469410948280588193590856634070207053224957326920002525000000092809641371265810701678997162156074031704590682368900140327867911599415077277575022644123230539462946277428973853136460866537464029856779594693907316662583941655662044761951109530630570700474136840259178420736580603273332933552861455868540425913789125803337589036680515176155226423644608889134737748682868975145579640303831029208817088592415964213088403450220556295449952945204483264463612013706847307792889844199901196911429411668164476078512650191389713302998839571881082665431102423449030891295691130546199645940323604592687392133367739495436470142072192711890171737135423447647311340421189073576394075500054781494469861205010708640692717684688614465668305629055813649386314090441889535480554333483195424448223687058198810065132292598402357829687625163563092491220390854086885017460483707739011898783184970534499785668397049415466611162911941202746648730052942163334566421308475099752700306459428132559698124008958289861269004601834826889187293223957810129289670328771756035953130721925121910555269719370352146658570764861372576040165762832505537868229691439414934584029982319835108657664950865655519266814287149475412607510138098892183226234500380720094894670965722656043565049779369882370900037664336311470713848796310864006204740123065987818713009129284610565184645034096877963696785632036720851723611653666720854520543386727202818629013575901211516827191447596114691011160526723619992665839010160186225152777136510209714483207310955618828211393813468102053389879648568630882406249611679931868732972915888506325791545477530528619036235527648353667578474919081721841019379302068399634791726686267733108481505827961153876922907879165519497824405268014841391271053547965141505035034032422408701184449773775672371473986501445007221519228121711022789731410948050369338171612112252665954571078031665021809022773445800997613126216180855967143309435362312413853342021747406335122350812673744576324334564028611764431218046006583969823028180705365080550788398010523878087305211794709259293104339920651744813572146221291531129536369165812662993918105058615278435986481885296259090205883481662998125469528760073473854699695595244085205179283598015184785988197543487778048261228213286364127098660228044767267395625930658821845061643061058477838678844820988957751002304539153489915093200888565017985873866641400746073872976110622855520842672258135088477327749588508629933411745699922199602311616160016663830734417325987172435574538339050754684260484198402344152238831084340318172738114572098609294709717123401398555232653012168756014812938807567383033594733049102033372062738494431116256844788904262380998740962802499986766309944304414567072421975201887140969136920823224535344382710909771630264499870249220986016319450456937707991914394304437203840369811283952251097307390950326382639368781016188361140178221035719864283211843364606836044068295434676791766006146386925213027767935805361355882827798480049620085869066265079267752927787613994402596865672786158228798257738274991813749316258966465479726334779739000999945999961735078648919462061647738536769468614335627780939688138011389394909619177343212659064797499859875911184632526434895693895736578266498592581351578339236545568460990179810342606396878077334155068640826683080104390150350309096564614724581466384482889893096422598567588802882981878423578798927902294712228934360741996755526576995795821327834584107353967269860108501162569673291461622906135795303994410931550114255425186247768593868903001354250284442516068058189800675289796264912312426031648817602356379194589037007626452354516385768199937799074181434647880791365703755781789657662231018848836473736162811008991135790919360072820090534256280701549241969807468712383108505522471734464156572472480889098685940898278250667759904470442417401533477355133507061220551301328855193208228334243567621795456208608591353791738938833545453775127646928114083196171808682570753680521436705422825289976526913974762108181085384341557623331555963384149589692140311575539347675269197482451053719368786613385131756328026588043375819040279254735566460577245488859688436438706734111870364793523576591278337702999208590412457465412268646136196186926639670271489680179356504914639707505761736215856457322362578711761999005221024172482293444229248690536981577475143097442935910146905248929936395833361503481371864168416839084963009869062247844857989429933859067728942057172747680528859764296048112647291713037898700577571934079836367458179947167045891857740380102753245837650249839471278866782819743112613164830589449278192157649300443874387355831153801230406930006894850096296868323283701045616320347306409217020466101797437577945037417187532801421133723931387884582980196483559972787518127502302308210031255545519560332776828222621269600425302319444770977373800304831866592826200191034775325162716103961702821766851524576622946660588928857121988118784807250662590166117680326096245263708696887419784840560019028412280564150537917101236190120081909145799444644560376402125354587507378884969755200346520066052406939191870185259187994322533985662555762604086691535850200299981663806304394661835838117069477107826927363765164732787172983027229310275103328623521486184719547333370908347253693418739188510398194129562734804206471527530369371994135510219011509591747966255261571590742490217538657527654301343842481565257003318181170208257539426141346322275238299447291065042306572559126137195501642942437446992972224977686178808214738247472301659862187448416879052715232097760244991443516633843486880625972053129623345991297185478376079193759525005311087079536494345367886298688388118941352186995137697281153647885095091793186763747427756893606358516164908952266276771464090588752003360117710141624637972228729683899143801515517315862389976744931325152799725416683524922714559223409142584406523757343219337325930779080284337931085752413409501403366526244301979945014865610019666143616069207393817354296781730426014491355260004083742947483808767015122249050080162517917567965439142804703440633434891385004106938737238752385545163464192870671307133076646395098983162895581264951291230370756245734397069831329742253421144046597521219322524523815435531218837782386482930385904206240298136626818343020045899002244091163790815361358624299217662141222969738332185340105025222693844643810625052033609465856171020570054776777307148581742405336876048241007498614139825828859877052980648495056756371090127015451396912608296001484977808398061671607800334583079088374831787710697133177358773457343574565565520280709587601804561530501337453478584781802681552169990359605438287787321951582320741709164302374602940821220960039902821934040465688052282897950415215971957624833554044141861414281601612677312451347247180183308861214271196691326195809168481995427478821706165239544665093508106703710462519286250087289303300889192217617397039930228673087289570706801614916322524545600520844966458938820687001297422298619080162034962996373655344811042059268883066805724857194230823963999992702480148328831041119592250153744281318985965699127402514360844546112125757346824660140572468961949622628913835721499659001935459991850326012281633800420541859372469208860918806844627873175317686209246425380677783410951177274280991658258603672843531582411696149545216814062136470232624515209587315982191176204423459071702513825094064532616768165347670708146709837058852939658487201541152076698784475889658906087401694882273332093027182740952901429183434985121924323308207802662222113111951197225134450237216884980127949704546295493723474734924066497372436149455175079284315715924732995496180777339610786134308884701208560824903225076312105721027295181470740509990152020997967302627161853759235842680984001784221467323124458945438770931189330965008220697889955066299538857269435060673563802229049585620809852916673414512476108550542702183670103403534035622990833376837548454956574517083409638799263416307522260007411951172669508468982044835315245180254959545726383241441073322650564010532879974987514886827661494955404464917647162210902478929594716198021486842335051921109623516645550162588739712284172596771773502353285405480417280800288739251235133051905650434742125299370362911174689694954266092568115203932056985976586478313970879570020395456339532288051670558718514274483109005327227086202649436092217459370643537063707595366997581176042443478686913321843069375668120510667634303270490783808660681875109378578471409142594607242219772490613747323788539576935497604484044437514970243526384748711363005551216622822886234910646740757197676520991999098302311063981565586139579115101969274157709504902224363416601794632279518073315290888902209061527461664958006415730672674925540679888473556994307629266688650458306415911890823995052496613847971433504525369364844859072641118543231666269626157559263889243496369768452642930362704280790045560303853541932001671496070011488073780641384863517285182175531531515911292808974671450096284470051737614665921693673563868598708134394568445325961266792575812729480888867250174192543785495234050279049134401127011595542249675278067721303812786337942088667884136573802787988990158830090124368616778346362626176567292649775551567153627223366858089502284248341350171910099305107659505801176702024010064862615976646386240120818133849480266627346386152829373118628286988729314939829699956114754774200171003209771350003369947468364037143803829316551616374186341627923211956723209172544932066861264719051990625094198085602549921845185893250815423946228076270687147177917678322456227330418572240015138711105450708531792646565247353073350040601162541219307612340152388689137195220145252832605669626707016661728907178851053928391799970667591164168027521132313020209901560671021704238540407519504752779125269013524747951167717008609889473599738276281105435579687629992610248415200148627248572342897770456966008091124298657597413424108830309792073158094917968184631864962716385402179087633910123885322496640915641999923648929262192142213652325922611133353277291383162677819513901948683690335307660746973285561118395936217778207631469215932984804025625964373541804777230657679731431938561478887420241181302221816874196759397350652096337358683688216897210147491444975768263164720834905041279014947136520040550065810678192147115147675716794490941731178016839190349455722384089716304855894279942998843668123161832976479654807510810399029803223179600815425146357098047625894937235601321494650221208720817893987430484949244906861726494457534141098306267748507353862025391694932746731505268988030698259787951114467907175916098472613371457808824220468837575264207875489497083104499564729366522881358260316218534592846733200653291036367495640036832913896135815355557927164133069076195934403551443131657801669179834418725970242630963087383695668031106153826768717950475741255344346974316034193549718975292676584515859378754798268096439883846629687358790222445093419953639266146874009269612760077321459011807250695191512997500906751609457682139427264730829521220024023971718058500038548982983404221367964167316017512604974162417650815091726047273595254730488918975312135109776300527100101178050688323034033988639971180631207176395433006046279799447572868338164915960944839015371134077089554028066473841314189786995462887797511370199087410328650574434187218145061081824475808887957755154431750149625831125985949679209061382863742341241843060343631590624128456844007336125639064284057687990795470025248064763724027641321750342590668477225434187422830876725519863091382600578323015726685287026203418762239682725852950644173449062249884397244854503266402600066656133270244012596052382109047769759309004446068537409917242603541417266204541948908084385922124582714340886049633708444844590170704595567609289171365900033168820206159478816886278887014385244913686171910172835206000745197658462898547347744543139780283284058404471118990560148174674328101425051292326602629032536632654630362964712502604727416283223185942217712643864408246675147590357389323156151487928502738039522279710097807300359726742709346482555076614647265694636683159149326593516088505333749824336565108336964317408399125103887544989806978688387384498377036690011431534206605069825287851125336471166883687754466424456681142271564788897070844411564722452489489800451633481987651237881968728174643771573258793313333992021440404590646376351525591890117725857535421684859358089654667088141778856945699684061621181306433738483784180968988569451927547426915609146123971315068166449966640575586115188004343054426170634116448011799758070939024247720467684190152408308664145815290017936698006047977408586735788817325470615749170867294188760440948252756765317880600425264070265722045156536390351008772841530378475693607221316955062600096733146831890000545483565429901167372681088644398459934713998714390992585468238419384619886490082495588506373955330813324296197705843373828864937779441860024142421213246661759827551806691706458843943263797793272144503793409148754355451311430459028502076711440114338704489306379939242717801178992400059998622006232349676007583716236938385373805279764300402340779998986536208535935781942963417078843760956615526573443129850951589568315362853350632943266164415553828346544402802339001917268725486150255291927133798950624412392496198343154183718859479728870332306369195725883720325173557129745670726986845884041458546454376737788222413694868487127272336042525647869349015038915425467426044515959235199693578360584117282553927261705816909752499682652850102619543301241172144675594036891231113480010819404297530077744515468270018379774844063866934628033823633062707812613189114165457111312373807888052486854333465938582863641611080238947523787453562227777995728401163956192593193600359194701036288966013164317282207461789308853291366191764759650350769584006639152598494900571120144438953690783798357292692729481917384321641823686817571530719746472571699367176796070603180462334047119209711602416954642527431166019064138267362850639626280782392381913114909862954416744303983125580086885958805321129591038897462657323696951713524412438902287622542055649558440508868305468609307165798052978649139002466578079613915615593275098488934581940514119964961093926971029484174642205673489292550651199556342915492116782982662170074113915232448164946621763346127267683224445337695629061145507483508250629357382638852982539958991848807147682674849888622036417952749632471266597872574360045034319837767596768508564616842394438246766538986570783962434995873389783153725960351350367863579191605327280611041051949289386511778020071818975044938848097532701720993749016075472168431731652887707987785729889270511748559648850848376047504105394750714014300182628232772681046195314381895838125135255751234361430353908919505465878679930155453483460738945188941358070876952528596209393396966986934612798833507849289247935543737009235076903199494751139680380269966479955463782491619118625338819263461900840469349058243485204690192221981359857116347926318155656617262953379184500293716766711494281769070167277615789151939248171598761096664053482667925783782325906950498500290454969956941377042114687850343247996710068986544869549797613642075200293331172551744252880162820439765840035216551074416789592542068517076859891956595989354045668447722959418586057541558009256094504538755898790615450541620342168620606873421633738626487090582084940358438916998706770967411524747686192020369771714892152437512890925311035275965891345711649335185882306325526271004707491852818682623148572175570660711744881518129144410985614692586441015360336677383003304983953518314964561444343145295791436082632534498028907907294122652057444552390540301035875193811228570841672710435898750990287847984052705882596795046498886720576608041582978902380753244972239134888651104394855742441838761198451028741395635133586693457633034484460046225655496907192597304713649081363633019467453587118470293302545341655981955405634861218150236676122731289756226847149733004540767622057407076927204768724150876048325022148423740713757019307496870029243515001053474146829335856403723510364072296983111696639228609956207586552871307304360866027891582358643766575724844097186620691735157055905710589240394466945077907388634863464254996910175859953404293364490176858709127211336019595491222110744630711053105041859764353415489022087449820196258059531710798408208687869413949671669718636500724889447069553784855569899374036170355299877295734190552755205754449574845743538749256785601663042718519213805250121711799289567275751044458995974006986343997023503293103023000949019797680358759891415727276134884615022595851511125081191576351318951476422369709446909607712669511758732761118972516628827614132072056895144015862010014044157394931717393216919257150379325366167745154864062213084110940348095548907641389091012217050656816685188986550436194141176143850537630432834644265728654163723573683818947975005168071054957735653082412743579761626422884250883223575581372408685949021275839273229169716909090853010378348528189708962707379183225611045902415849771686911545244127274744662720966249923220746733415286701618823444194109908932339002404445654757216906256792546642170153711545993733574271888677566685455736050804742923542239074814810400338079650049693897281779709076078495003811540790620568100958540159570741649064415193690876545166592383417437582325004224020042511989035852637207849202018489581546606384153879491113056031180540676753012387068533512211817303586883846472135171137089516183342064224413622366129144941026685749414183112694242002016179055497613718283919104914390357926544150835664620825848860692164594779155973029271970917918102701910182100163745962114612644886930767556605504665488620381762247100192905581655639946878892237287329853410508209178635847499090174452818876942325559965046024754445314486207462131646153018697655041625603916413455033109646756656229542006451058068101468300957286604192036537705787707000580462757039556715801965227211910777906377790204017294288929521828898927889180087281653835862701340759507061125875844484344849631260773177745278022934402004117689082159320421622886495184371269514531817597880646332929615886919224109872601315720790058364926948079302702554131283391846371972655775578608310583968137707766541698816111587204847665010350517399604244104848026830707957838263486123675766711580977446064948137552929334109353383920221854919368914346782926521457766834093292544063048356232311859839537792732964897239840508774285376361216236781958699958491448787560928778039468211843407029571738989033640082394874975913288206060975657335652140709648631532868598675546165387853238217906238840961146800877920564623702824638351469203205292044434971087382946309955495466421916240073265939064393128631781403695913042664970196035967767479836345682571740433225378501130456772396979757213405129780539118589230675498851198516018303431320089956092801294267732039342330163828595431418846740987898448173248150594832070362281626007260405777703417142294272531864393120653500164244054654393755454519263003989131003420415802841159850230533405249303959404369222201500488993063009530629025150940915972773853189293899265776112518276696040233278611155130093904752961457805441510559256181108649613143008585448010883537109445259527910680765086216908037731858488314418058850427697366128900417816723827067470585043696798699230020687239542618038152662682599098422323563244609381684326780817531419754878427362566348281054986716846912512549531629140298826461094846094511125299178901625348961103915756512093009288106310686976700505027428959519998413688404385408940670221244172214394761979015983393987794629797928611554832037037394954959983501434456671176252192305618754103561569070358229394671345110815235400669687850144638174956395777935761109335910614898764624029701818351126248855453577074709743245481820449206623539195798753039320569999400228371414720179801959143055833611229586243068825838077683767501082900999610925089496143137615185931782295908498683037178471128614256901445710578400714198043670789985986039166796473726474709680746273671317477040537415310675405496814522117240318669127648421208367940838456616954777694977995277330937395116327331992590386401045897350013396468306511548698969153312670586920060075059323410877700110935547936756772505082431583832812157093257737545367748673291269051787701300013483299435997682154026119405834328052166057077533341860483236746453725764444878556320753833382000211251942654022342164160374039028839155929357906449168901400560523154744108518215680217967099556266405423223297106596246231179348087281247327891707531976645130447493599653462892655749762530745394416123702103007300442815379351347682544922947948538590711991145319151607274253152398213308309143094017900218391406224826519197831423892135402556952921896974503624592439391548133627413984101155830668452454878952378632144976297049902926130080479743458446457632969385389820411607463652695301927498584551529341877930402744692447794539870297305045112883766373136894733050178357055957498865571956212965091632773827448423032395227397610885862813317508853974244780009584163514878909803432161926129484740559858027795751585212317554715456931673662598046805654576784921091892976369776928937372841869922770068753760481088177711254402721748692946648703918844500137113844474999685770999794809623186973200112737493625846587021778828892269158740106312269980689201019807544682707076346833417825862380505260298705490744396429299149962317396551541208803183226044664764804874808913899597742035384022727808910381582856308578798201325900426302133610044570322273840915014948540575412776454477600337270294114845443539494534894608190566105144182721213556879940677296937490080165573312535539808282507339069114493769429261898261017353472362627309931635940105178276567802221792639359386793951554943625672785092713799521625809009630054235863430447000302907759512361547922025853803599401293013043392516188858194605087204414313360856347533021893647780883379519825478825596687733853237677912332306643041474665241169859401691876353053783712480832894627967767263317154402923435711776955658805169779939812356617602187659742997073436346900654828081677733747187408546224819924355068125986013320861142444816277312877316944151968150362777084720295945033333612980592000029525451817155013847554801627232667915463858992262816897231740724501679889731376667963927909658968864891744008000330467195975962056092759633563253863827925488195129011524935162265741961934676378235922358306932092102217314167261543279560172809295110139818147631058651614582179808768573603827875084713533329421316058839283063379317785654373744977496226569906005946633678010037753678949322272404133382855969732408135152304574817704690491005707201173589135406868695781007841990111499572547758523076504144205622740920488616913075039341636496316818125913522149713706937922411324366153148484108610149500202270718329442790332193772614396017512608409794008634402393587264561020463703736338438505566158891399445083609664860323018841209573215825947214805144653217051168706135581675830410200005975646975231068003942255261907692548682970173247019646278158726910640834361148644845780927706849683255065484191069255391806642286877473371652702884998526274897790474710311863980439806707139110365811447253824947578138574652428459007499869892836808186248531823132255332782005572637808742802454419698289101260971973528592073591286508141304723003270100360463069907218810147258888022490267544030771109736553695717956906074354715489892158325418622192902969580197859153153065414055661317365338576456080070698838231556032831495954537970434589682911541583854371956313156005739835931604366686553412929124259515866534296896892915825440465088719543959618105105963743247535505193386079521916627055288277831782634376243928291390722623590835048063719400744433394109830496418989525350924681847998338731618952045256364928183475705215343476308345012637544139322874731602665058110416780031019887918154769151578659816798014274360125873724909236620168831642862108806516493883185164218984082003199565705771905927257287900293347900758563463030469174089924085662606692793157070354924349017778258054322333230248533950221127235641364162966175219255729123980558219424756349810954226287523025728295663355636702611695529596578205779272174631936194529795671719409959365003324145762677368514115268906151655058016999670929018532737186524375260159474654505184261035843568769668724990357195126418625525217363822459477100652617281681618695647053813932289444235975637688521958472966284089178615114099408058423655927044596128958527972039544448541516744636913936589124953898449895142574738154661285595408391489876408422116978004558089908533648282946557352776763122404041082080122312549778907776541766838058956316921716223800288239778825694568243957283979147627307416133739174653415212245800137546055183910697315144967164145692096239207811078284256517517659382806089303605012000375587518167331976540452590812928767956845426460192151250686617464026266860585787013505279319624280645757857295019514252436114438241259876427046047869719522356763711802866486681046004401981692745784642797172333527644861282267500927552417668352933768480257555559631997532208331162277939398088680614949662413946976233576777582457545959427328247445461485708249212363296424781821460787416094018617010436291528630212631423263201826889782012039928274474049993223058441572617876096440925549548902735813565730743977103182041839532332739519583478859735628616674578090210114208942994999163932217074890780685864782207266097734246181602328257445849658102357322109954521507960603805815673270982446542046294404766497308547036510277125567595612203281825895719340546503039218463387879940991581413742211779525145836108500894412547270747082019478168790939868453000471253487536427026071975884209928115635516443227713058581071045554555858112974720351591244230251355596607356936664860591624112230818405518436995448666834625974891802298260322207021130735198550780885166384538089859692084352575389045690538454114108277136554691237822487460918229915006748261511069206258033476370227248578957870054226893021130000821159150690021038131398410166522654372049787563147064023806542975149267022537742269517680316254671035019673876290234409764660896904577018000328869499719951465316374549688402156628547375361968021051565190147019882794135209414979528297971290772437334318340683279405208566773164058613748888878010953046203975123304393746232979977568147613598787435631005112015228907340331379849485348555889095112698456639557313800597105465448220569220454337663551493158864096638278293796137210442792563836292080137738860056424358302830165038797118866675043475756168248765421200425732520710819982968543270520866628816888606934403259693632738740924777780622139307448133924318037633799729536804099348132547861889932220178364535762515918064450776905977324804406317771960378237949438286337767806669731860375028627604924648912738168894297966980999648884009712244144147262741788548747068394863052892113694528324642501216112980446358671904777307143789776820836646297147787555582219227406277646939355838672936806273837874859136054538288021634545592441262499789212951993890352126346303667070932012458242672066537571552178830629296231576134936250211844156530523684027260814162450492818862467449694337965534325445658017436422935724612431643103621853701074634147700179902501382620186955200072018882195368431877711816960324866637259798089073340716494794786378624460127956959206253112676022967507330917163531988965942148385901334850844423814987740758413825831064705648203444015336564388106675596898856922152881162649370198208449582601449477382356091175828542246472113253147715692992550662843953753442671090164459410014519945935936750881503820599165163693503169522270524719790829233919192398025209681740692747688557826401758377530812477706156391540335761485446320873263586731886525067752276499832513362707616115153463201725869284768574059150543079452848758959988420049570506569093107906607431370130609785395007370618658883929010279820903346589667255586275887579748065374865456342478637200983035780292548269459696959097082011076167217266584064351654074212223823315142255886801094262821348583208222487098508966694083655909146674801681699224633786100481789316095177344030804135665847861782031343231372281844677958927719634241478782249803264489524130865972726886513352476241426886350854605181900956164577933247490719056764376679526461309507488866812675811735658034502830112264395309861002084797726107476889126557517510376913711438224784896355510616382982265388418679828435488047137852816254241420269032982430976936810489875973298084024703872355170363191576809042341354854408690302269991348919547159828177333734599893526742697456457079279863335292263048541978087510208179705769875703655909309032387673166551802801808755197012529326903876531927077671970371422149692614095011392776331494859551167550135814684435469905129001006788682767741746565056281765060137131655712999946031130664357546947378000786913676453052428207339291206562958064976807462323200549429634193848269674177222546826536889890314190953572531321956029961408765862476074720211557883193548050961492991959121996429618150200602979064101261206992142057895998112431719471744043390685405553432987727748033289675755201421709264001822797782065998366653429846470009935761440380516958360292815324638483610751256782162789770525618761223822259830107424895755545278100059520124064838441163567867589640067207220429474878888921006770187762659761428334387296354354689297397296889395824354238041834156879438809468804706833026869291460493336843044397765080837878319733039308448381805336031768475019145482858119838027190342549017906538680038073298543284331238381987334955388622174538243941714810895163055725776591877888409033537454811733152068664000018572662777713716779543619162577327888316489494404287921579733792706070254979293402149804062978675578403969054216783665198649382085007034196051955717961462215007248523401507975326263846656251472602852304124938338787025690946751402621207825891019787060786209969235160058873877463243625196816562807002746575215209572441903447667974734759072045636591757160758267297451367956038858161184534524495880965768742443809300666762166442544168376286666052408037870942804352523025681083431110017679098123497458101159815072313852186978506598901580154711972501055762694600804203584974892969752185413073514286593806428693734026659358879783024813150798256559194592582571673762215601797682012722659459734136221139845020416319901513430328210804128749198164066065747188937120906733115615008059605618119211810370559573608933450662934475715835484918659704395526650853922090513829444691783841301867904855106076232454354219175357966886901868185643557873157388146154855475618859376734122858942907140955097586810382256990567396583109797446240870906916329668356329863466548097580139531732015609005623758835709275992238781494702684774743929309863255566421502254420174569984014468416042142735267237527072419036932190496058189214894861590003144381546810254806825572984440558101600480519100117455396582081607918160008492246859175298256804431891292588270682943311462805282069963701514956449222522177467630393922014887668609316009429546132610915578052980915354924492282312781143136332945926030771324326819537867786412609748885414379403452548312039026481026321120690058607850538123599097004355193187832613139236811019121963220560642241293346865081435742971258940829492515446428287571047435494938678250520524070469533155665605045418528274756728998846072907212132731330983118386538263300523605681533774151930050140142883538977070839751426692210149975134758336395338185729918262355526758868091010204377634763682062598337194298361655861719283533895381313931418910874963349012836581298699160359754962702383427189638579138407645786508329572836719822575678267822448271794734385932846969475993981671935604495176729021702561253716319766605573551376149289646490482998833429909782101823219039030551577982199144308734562941033521170462064534119449287963002239197460833451718561882220831044119672135512847188988769958904870434697182421351483967745617561181683871879991734289424888705081730569162598331017122002755101009731982355611816563423022814404402878284865905997029551329735130387508954413518209889490998999836279802277009521425082566091732927571344899921158218310751665957379637799200748699540339941977389226403057832529147089948183266239529714304588692926054245398700458197143929721582384645286923181091799741689764139796683699063174021697473109231491580290902762143313945086519465899568585649803584915372486498821287283994783475921947863007785798829569544020365807780648508009667820810426513038659449060777399067684394545060875218687879677531579442633055045139061547627507904695689678943764514590241569645324853544705437323593627382573249587944025286039378943765603844366102586836904933706857835957408156680312086239661543924048794286942718048853969649401366460030349612519237489714010882340496271794039418089652566702612203677802419413047766532834023480039295985469190575371735505809576639798227940837573120649998166989588269664029046320063780235169539460225569650816880096531274485923176070031163502203442042985743434084735088649651724682792753854727086403317339101917732616617169920818188487532310176512794639064668940893983576003988652300043455947977931323982525476619998374330168680446514734604198905993446919445355961167683828810478767600724204346954275318421412354166899393988987017982892307920552144775933172079807178341065628214866122587779403943802874290794674836595683580760140538753105636972512771016730985698453512058613490402617776579975831752475582828230008038159366880248154245019015620725626330501685810211860893913855078974189541188922248040549238696637268614803610333029985695798515197220597074164975217958341508315361557129833300341817908481632858516897797214664961965202079930771968794940256994707689230597317083237617544214253346353889415907454182205464149031389226663887871133861974936486784858441012376571162137771138653891458459356033090373336609164854770564253185455361222748921837792845175945225391434487087592967129040639876871518532759119362699032288517957168740517562174066347138984079849858182373139643491418659486117644552044285526758984177387063304651711884432630248275797231626660060505202551068332406459210880625369366758763758507728537292807339686565639506643969266518811403615598505996042718091297835071668962475545751792658019309850723870943537539691575541140724215810245832848055142782442561904740187272173001234280359276355234689777918835092625238394490496803055958193097463714398038209579581835045113711371056195342582460668124687375979208871412412986824137977946073035594948414777522900745269857469663245162555101600479387869168958969623266246727059495991700128208565939531554853054748207767478862270833415504060231432308811905508573283699061459698785248802600756740352680325480475141296600555873768073629356650459609154215746630599370857537804443833059593750831602641026755524813083808912518882358185559697317547632132709084138450427857547903639182190385494364180793170623219087834836225117007316186211589186508629506801979505141488586367123474296156139739373138325828083453559096389779651248439061432167741975469577982748085325518542655363656610144489586697982628358163628653664466986738182013926841506062304237070174990425011780193767963350308811229133050913557271757146237699919989341699685309135205859225691501683029672511612855911816629057646840591761950899375347765540404060357996317517417923117575476764705070681708398637786142461985993813800912428248089833038031967956174023324973498053636803584097463817705717451199191571281033768175255631559430504321228884085177754177751096983191758901856601210315783416790250750081920832914681151480961007676588343002020141703236719099689635673123390343029338962782495900869336500995939705878786697755378678150071168040980181884931840745409183191567436210803675483493787789734971726736821016279527903015734326470786375735857617556913118649366862999953926548848037937155814101632613819438657485323983355350017490624140574329241961482717209448995898673447687590278469058346242562789391640546677380425958241506982225722706309571051691594134106741846273533485826986045979965679954812698682894681069755493511597351139577400311710543527970961199227789308525038918173817913741392116616225946200140635476201483192299588707682277624990817318594616274578933994266836162735950203594530111486792256504041330501323958925421111625739182616166650173747048326693870793395321953706469887068701412156645943109702918292438678109151201495238646728602067272935664366188169250385440273005057172402307770340983716207894794639164847761158290601846336055423181610028411811309466399535518309777020906331878269803164208098616912977004381147181942764874885324836843288311479668718095688780445280347316456542119722224039593192073686815109636121121570260838599093359706734861412036201493752219409705866740246890710343963029859499297756374061566446654294962278991950226419553023732945314969882172652900092790528081065004562333958657666493065133091802611039090195722895378428109857929017758580337801539280695820489166911206834427195898090731827820612924811333114290814100281747043134704171731884365443172243849885851956521060663425811260536472699423983470000202300148900653366951710489539317455112923139985342827483670856189406518156132331622030434625948283304229102479308593777935003948999180985361596856777041469377211172701222781018950435607087254801882734035846656064901814848483185724096590266949531367726392603891241085241362273821214346837686368624057729421920336023252422916605500694900992885063984873397561234810297975967362093027580686152288230893804241170505209592109108766598145133263121391547229774669966723054985174770399750521700307393994114439444758140339861680084532698850721300882985586769398937135634923721726779380299460847474886711629672737452354396186909566263278432530083667725299283570575996512523788767022966033279226210573710342252603358576973418637536068542046063607073403758224331965549894112524850323658303221010593090425517964317998623122677341956273533817075411002741291657669871023247498217898683309149320921997248780337082112505301376223444531531213074986539235479010123273999130171768355749528632348153614496465286592275729747381518312085799630487441439380251407012662796500125797322031002321845774943526909302937661082956309327018170510516126821616510886232152837598574738740276196710815149160358016432298137942223804271768605890345833398222979072169488784317231972852321384652769514289618685409082766999317185655330006834371436683328934252450413736875754319558371100100812305932557984297665251807984003636753256650071436169326386550685403838285829326620858185641471348748510937846563325886236760839194448275070850856003967413535278090704615399590157045914537420585892416341861302132683155307495169576107694312448763389339156818999707460792440306824954590150808554933844010577131296936753719143792339324643111821435202074621285340370060732602982789723476920054727295507753861972202062701044863334783432144787279674388336429007192420455952542197144890706385271813170580948529141503234520357928936402323225789895791773511734520699554695795030243497439758983939385073930287153642015658146828876307646058175924075750400156975811771732390860328572071658613676720220288379089803958712887176843312340366273047513554588532960490207970848513483414540635623797078149799376303224452440621391629710885282863299786949111557575644051550695360089370022839567666147905409195449225427609814287581947161528769755612587012636345614672723184303121512655150640885641558327755395338520781597354245514268835709120978687920091604872369869961930110254022874920468602060025593559891946063724346473284452272939024992210773907721699149948950230597611516903840846930486039352263509459003880913501359678175440233974787079602579858537090582057689087978089724875203008155586028207914399813641144695354618713695477749998828117459220041845620458285186990094436792013820044121887130221774446912764983143586424260945894978964909607226888114619326697485864607356379806775030961706776667141240622834220942595111396307060826916524788146328820685260507967760147698250113919297896424053062665610599993698568013579309115499840897314705424813010546293810838941616024570826237117699172263905933552284919833400207219165243025889854125225790146850102062321243005537352526520120206531418124358386258709114889220099858561017970235894938642365650324783457759368348027661928639334715388726545163035157553731675626052246990722059688033144760588113388665063170601027535498456200752833607596427180031386226016085591768202567389327010008728856271507555777090104189696376178892703492487518324183578619980831330581719855067852443745058287620350658365484392640237823499185951753678897730982328781085203654229897443043502632639760170828751006564448031870551929676817714633951191664389221538207398572642789496250191273744447265440002953444878820281979855336374084610587890251073236411235294060456825961116707072420800290218891370703937161584150181096900317101613895017241331687109600752941285610970979605780958935340882444387701672516926899505142093655495377445634211242527519253369972096020170898543830294845298572946991953232653213711706476834114939770579681480446032741482571434934730085385892040796629153274732150731733361106628054212969427070615493857174957085480877833330621345306770589553295799851666395258033655543166197893874752630370585935722341284416634974939378895701770400805051095030994815281594742921897193964330335154064475134718386962008363415345775006710821378629169173769896144072544892325170908955894403164837283109075567044869049356633707585570505834398510556821324492971940234324835471750145451346079049148590626995938786079076398850146036729989228230580680554414184955136866209072710584090471662008822873450540306786766638473150118072154241906295335568563796600490632006525698527533252071080242972911849905959518429656122067744098953804517215059105130225630635457704290749815881722714649097358499043263429308955817597895349421844513344456996722147009572697395856411446615153016486544782151888196543147828248733604756065873578210343987553336932680218029160907243895904398799735385662198133690037985236520289147956177839830475418382174047675684614849816225234819440545353248033980206361306496242727031260420928379659603151988245559058041459165341790449000590577639434944378336364392530290781120429054957763454834123770951514335152245168276516429552620885300074009547312256840628378640101118940877970153154105121726530393394712441159092052046644410668939937943897868826320519254695026779035267746943110849659148990812943378650728775994236094762304911295204160721983569691913721682615615831914445145185815589208974201422688429377218685751344083427496746680245752146981769358452357143540145032387665688963171619303031018417515327776526645335280256675925174294359557815460489886459418756201511835839139236953555414815783801315741519980615461400180118017466082045857682350813079283911067667790731179637798746495327164912992581382549879877413093553669408481723055627051489007910414876292437238452404716371110217836316368998051653275990303147621843840306980321253152689481766456642884613818342386260453672437972759319979849502391673194998738395589122127371317109376223490764479719071006185288855377178536460006957187597753464786299340357560541800051767986552665633126809102110567436319376590246805153218622030546940423561384388433991217972048097371809879465564295353753915440076991241892987499370652752998660546635118785614887447248886731732826944277898035653671988497520751973853324497770277819807944598999660847915834034750077733089113340840806528666606793067202083870049421726858854674528705697574662767393682424924526938345576090066979952454920417658186060601081787574837838764443951818214569305297403572511987768604984331671468814408149240904205394061686314103505881347649394684262158275126909138071797229856049203338124991538217437233659777597134622019606428451618969518724135123673944504832652472931168630753435700533418652883837919789523454026937000088315875565449325992985240920788053783677176237205775005741364081330036034316281523414439946791412538810777740145912361828785859893485567983839384157955860713205813504527183159017501223539921550879035367223926106474055798621913395389431119888327529782445650793821229826123098029632210891385802438284111817030690500854204076145261163982790252900618995110728011511813783360929510072637623685042502231378152919729777474463858974545176024970965945384200575855025855818934991464033849099230567056904842707563930619884951542351550846617028948184272788620615898947901838367680856547174787216122546486917317800934307434921100626531476780632111828714345622568178881415613916858873209288775836029958909153576372902585415539841707580808283040384836109863312090879964399033611060694565282571664945578961153829478173657280795628381274433955932169516928567412692146926200761688313242536976610390370121111489255056461955097310039275486878847338935968189947669609059692555326887015165836311989737253792995914854013733856708475056444317001287172728847254530152078039761964167718067165017258263921864650754309547785426795986699444385572837717110975926510137283127515941980579659233188806063848832044182992154814634991375717330070484353696010758524979016929372946396995421370035054980304711410845615889167267842221665495364938249998881748723033320368436095180736140180375181742883119594021974478106390774201102973436712618241939250210948173388641181869188213092651908545545686677948751113226572710461716155409782799927237622411131139050352872013511118480175098556909447077265937090905058556016480185296103123688837319454497433693856230529063270630643939805125978586870938318889868243857915253613776479678996437671833680375947627023003992035561577566521465697308098858502695197201109990921335277775678048952149463147979936045818736557743500890174214092001984137894648301395698153976425466893158491028956030452862487812930393589730693404085725552707244751079827057719758170127423233709336765342237699996842391107744651096848061945268444165520110974169845430800230021748237805086372354952402593908546467429489887697680654987971966883731636821627496543817375418413473455141501456831684730105517527469668769897759315783673126286353247470533787223452605515030862545737633453835117220226066565637133881851149621439103012422478253171297170856878972626946275259177633719566274656166911627137874452526781212167256636365594015639607430984725389133406524205449768074603845908105453664736937749846150656535889875521088325341618457834897394601125275618813714563059317296666659312860205975768855847627393890256684641361703870203219213597719696733998966754399311365203889684777410457484062045984671117444779662793280696950925861159567865075177676153739233051336339614064309545296031556254160673209493497697763871302028578636126557087354907675622402947115559030208614532300086639667059297752795821385234600151196058216594718686177609979478228285664357032446096324484776058057778528306165594906656836154461790514201647636411750416482482745671490746219716718510014115344792340342776203512904691390408268222790037420572090612355650990422030741293574156476266412197453817936812666862120426208833503973763311270414604806074025276067910833843628071622831851535694906487849265770883605769339523389298017698132925058626190369121174938884024820714594728011884502977378550284668503771595805156798895854782463293885048661478129093501490905598288712448777665497388731473382599820496637024814586861743903838489110535518109569826218183092403408784458578085963432232469660126573788544934632878248675199965406350075592116086910511372039123572714812320700697611454000195339071107041216733283845920951356575083671837291143696044127729410152629213951160617205174247933418139918510676935038899800368425615120534525141845624019792691153998456619438651295710321375193652126888021348139842810322495162529806571149685382699908947880436263425754201806223136067501744280513158565312870074573143439373094665570966163189328158937395603877309443423622103571238239282701065878398585953013547926544582697002908296035029122438110562369354688291255593670616648345093342774372047865760252653865502968591393786521990320981317115618283162311054328021254598795160326636690078686767312236832803598899486786821963610631816949450077586957891144490190610192653874710888814099249854628214959025595723307512172039901046025540379643535959458431890763994422765692256593300309221393205804291008084499482238993827120250045295521930056637201741679272331265495217559132034273337852850667537348940878354657656752996998647959964856834134352258123029846939535664104296657073526351232514087286915480814489604159228569887697455524341641984261235576362302826395473699653397446140563126191106871272319835128484344833440521760157183303343029335082650357992081545553606970195720934946711799356878107586468094082544425611560026182477330903108951000786404818252694384006388542181493043697112411131906825220000372977487310262888677111591350172056480667534610697681967939208329680089377387064501568278075633507395417519969621429530781902597994375037531235244548720090922167726912910325323683139255595095650335003265625308145796733479822299124269398728045398555063719639340252272897452571082264558655175115422752847857813229434992140938567360805256734039518280136647183930993981938700319464239061806065205567128128007258390370035678376320162155320205821093982499484431176115661650843740429763995630584110531005163033064276982099489666439127505157223039542812197261665569718693213622920141945780270754050065310430092344721711652229689087143367116446548670799135532176086532867716980145319602467490474504530380963368298214900950976164037093548906495316282977808839594433585770915390777827890892788279201862007376414210174624985811164319227731053278580471570605932200475831553980122178352136440291641281890749776048769239560708720430843248133333914825865634105822137076821690057821158623235899303538150245500349199878489954622913021806298738007982266455583431163831621070135539269139108719667812458798566634389706389533840782405079224945127351745218305458623717825900997769249129732181589628403165311224183855959295786381047100102121650755331302407041521087079280218974838377265465057712813962125912111721659928103095338524027293279571755519892035641123076861730843584573977983855144713343577954331653481766429487666396414861403207757025239782362277269237457423198645888372253360847354726724847646172066998067011348121168392342913481557452068005166027488142728539049769220513433486198808204188688408281188954958343658947327241999808546085688968274008032992579574769106817449607055714742253298363696722781656590583992534157134360956178251336894426316927938889546745079970015283012240119323812715060403050011275175594939713013618500949961573670399743387936317505257501589789370054920626037469191844863319962504536190115061781013610141965003547106385466179015130975649230829699844514475191312212411054971339804106923546427262277425726816236319773933857183353943187584783189023386885308400562802529724347341221638531248521762348905841716697892768738311397386032868177679514953487098269601825093860482722761429138108388730325715478246716957903744277281143546191541215143407322355632960084910716885998343447110225182905448188111906027521600084826235865081398017771710650283689094823190385209493315772010232748276025105465981876934400407730603645701654602435832657632604801443281962273855240933310047306165677404009569602597226991899227789012008763904038686997814465796416430029952780841012835810393797497991036838303623113443273913440991728935536533992595405507270401732822096341370708120698715623711996621237334125880147730395612504066074907919148305896916100369255213058536711218695718894529629753664036535625071959967037915336509446686703870079073592390231860394572749965621718947761886996412161336811169173640914014797672152650044878881003098246431643027216964642522438821885975237174933429911530330112324006970970714453951347507033747825726057110392432773298890049930543940974453026599803031378014683896842780632065810513426955071945479975750385054559136678572834121920077680357843728258899761745600105957968280187178586882209362451013010963631812296647097231465904476911007875370016275667394546210390629192721520038735322831167130813212267343454822978196395618816618999664418733698968625098705710495633125253661395550874860618687739667029754495164393136066414493186553755927309934140681660324091119561255694022888058262396213607753146194303807489953423196702164803761390749858565156832311734711718614100857870189148291648522841000466086993264177268468741541426193808561243492346028764816737946623355086532627050976920311189197876926645068470074216535107803531286234127513784855331010943085686582329974226069815564566891659781030673037008737009236938298583458892253255324690070266139185541952563643695802647751674474714334054957637915779983721999021896435594330979845551778296025638332882908206598509408051997103155027213984785922360134343104019669256241798244032166690808329268446005607495364335957739837781240027428034692726478150955000403339498294683670498075638135879992599482936617520921305558870512946306988165045620629485121421586521770977213837047463587541736625431420650777275538262313252009699682784037885010766279683997958336694431799447668665511844290362043883011466285897489785614611398542795847386768250719356454240412679459482155155944314778467020182993078988709687156459644442673940397994661910336618880079051292913561793568156539088152949691781523575119403836332388381983405045719667317777954472313811682109466008766060511042664809295335609646007977654257985163596450461057544672571700705282888931371393325676612246109547549884653469677824010534227724964801157084292033268207471466287656146406689208304742430936380326835593544866868873332768278978766893601622211973250516031682525846966301700102035647500551520032053570384734264781649099280594676935237441968563373730237031331623469104488412142273377796984820461046260460585947107909920788423242504858180648825750300128491598734987191263185324672145936626949871177362256281876126238859481265852606636168736959067034903211397522650556981492651670316135639654498462718675977777197914818305348175117533591558682282658222267519084108374460763153211930159154418214592719498018547706980642607309451187472964925086757669865028589235426025811844955856168346511050683773219243543714175133650614515944581824813800340145869423786879054163186874143777395365421289961472553646614008517392251231775629716683771746979143234502346661445646289574827936020583151050922784764355254602472842374942835478388134291595712294382213819629518229692884570839532266066741836068346344747165523392449693856211394729261497934318969590525223021390317688464000651112711481204868540666064830093329584584179107197264592835273819077107505988271296593003870317462018622915369712260043420185589044685300919269383324090698610093043852719433250821696659719237251047216689113139078680241353427609364015192043013363551999310230238602747820316349915507855637936840542678877420445194167810820858075370238393115669299748763510084981432762408302490931017823135076472764684773771229997214896400186422003334015129302650352112730869670340475756483334726152705538353947105711848817792312550689241435905473288996542048393799816912923907891715641210945066717602402550648936905751018596004078454584062847177128107540116746985980461264486900372083270390900032970354734480603512337755440693015571377490859482809192477650175062201542675368274690933515175244783743813597423428872728401951283707146238278425009380401715648315171272188107612174944716965355398352291299711732260423191996555138785765786457761338695023226753005828171442596804697560413684188038511961074338922320924943812866516055051441899898131850714292184764029992151809124374347411647963194919721399050200774833494303619210725571251309402050227944328114822244065682481687188098253262198257305848637970264516768682373498206235919250905871365613431713984693017749560864399402948818486904679409645075651455713301279251095391493455533995394186838278422797336948238382025393055760916084543149469970247795314802335886853192835960572402065495395246026872086957115096500490336960400847058245346552751571084374760978812997384291775966735131364478846744537485053952102335850205115683692573643325152778720370086428729371267284251871124791418661183880475819760009308969296817663563559471855044962255993683828359999417878654735522614996015429584922004242255657599835538794994168814989573604116656902539778594186800249599386759552634876200899885574402754701709653044572062706225333334246609085499607647380931793751207750140603516776725327654550113223217881682263539096728241158041827001475618711017203032042675917632758166628403156510335758154551235282073505375788293026711219183015773956408069777240128847174739381980839872479096897750677141574788251787748060770819379076971978454220591578573256759473508899880340977596391340865983087657140913414655364843141175234872689232733040396511722895903514990743256498270178852255146753706664138024595310427176071893362226594775645487814633994973439279727868835533456318640880766820427985805479280847043016966001409803007823473862284660223255198189305697917340756638915771119416030175064154071549343012808729480507264547835231339706906749462481502096258405624627417562978653677873214422798656250292212186387751189080159193216072575382832498175912524630436833825345816884365374838382097507884346623391388303114080489715227014799694633370491626374246090137097186178119194666228254460333455669887630242745995206325874371211698708403913717743650069937041737553339415515559499504337359900507401373528850197032308166750416479217308884712117961045074794922880293332603050028057951066704319652583753708691378520406400677239578856289145554075207629765298748859591187916001572539701250636796384772309431281984517870696581187446594439067543874041155743473396268483881126015690428769003075215367045439098111658952397029147935087306452416845441298020742464107835771412402505624530264251398419037507898907160549193815389283996707026893539632791970097683824308418539295506700144325274571147633166628189286199530062495648789365060318494431534761973519496569834483160820119587769809935388530752574198541074800847965034788249926638931280877211645997708656465168895296394991557270758212277551872608733468549259044579807046016002266844867958947232571034732284088180203721435369894345104360025761074384781741117022516529501554244935136790801289088120117124803945971747998774074066387116372639157916596197036005390827278999624271090854355059298589937336612207057655743972838663998255156033570517421726974533632183374623834880436821027967525482177704696335692626673823693844151754617362841696162495121948976898323160784879656059507780075335035338392420715358214337678481224280121219653352161644490002134898431973267894849551446587619426886086544378406099790447595489955880030187125751072685734414495389098886944480090301063855209492159664377505885678383359407495872113528048987782104591160164578938531252778658806553921708411461977313237176742401455921125446589859664252954900229468121126743459329327369704093084895901940594647378067756464444721847112811529338984291134337763701223656931669550722762415974983100926730214353667285476417084029534576777543724358145219213843961958855616552570396738821617038454160932694592205470952179753362938479628000197590190230360584041688916880710992349025676827246474248961899962346160216966509514426431278203073743391638508157755452409371909659075178842085717235794428300850517974266257920331913763774449577904696140219929181496771213040674722208864615497084555033608875419560427884634286394128784281488044726061567450898217104302944313049482976928777783406441626915001417868312243571619815438741249070887413451057829878175510371251763558683129830889764885226127511850644388766109276385839982720375420850700166792358766889513195593440177016319153737118009657418631450109788031635231063960981997536398475901103131760703967761236100304831296091153613654745169369386201741176566312424038184559913374715427849280187947437583689223698877710258055350681007016892156782181491411087312045713372598262807558867086332457146392493467817222349072460509852115321119956030872324020903772004027546831168880676000174812602109240312037609574685049435519204898245670317900590784606860718295444765505332295865765835152981029221520542940019436645187263111182806387234369980575147213895092761831990587929236468457552141219917978056376442880465095295574019724755140298919869274917325637204981489771554801876683617667206400600145939526621237741048896570480476382592562547437345334701243681011766912451601961364355929527448389224775601972641694671574019641985993065533606878108351228285718143982321990090565749891077651752369481167422740746733721208771439274850398785684695073334857933883963031062480684718574214046634790907807242452684169602571455400076713244008733658520397200445348361761280284127443141533110849594320624288545404862646025386342900742586377715452862632876532895195796834308847413786351167582250324365362339055260986781483429036776612263161836914675027356888498685429006543238612121987256272754184871215862151300585433304918540466066061507394508536708592586275433399338297620764830517312558135631531390678292505349020078297714527669359949564134642453089270681048187682293778089624280342480617874942116527779823960113921587078011013587919499160258313442041086811491454450160552125322907412164685267869829269925894971568634725828581644326945168513574976709346131865789452312882235681941000655516773482442812509714104081744850869285157785004996636877377862109449457762845946647612120080656502722587927075406529121429319925204257154620199196870270611785685332401216446331033589956802694762520928059363942723974291298433187840354693076279098831878209925105070253709392077125602256619738242603330458893956668353377314633182602124484996589776498931610033610067776998423582938133001570133114528885393226362890461288272551019416419274398829374132036760908661017065621580371414756192922509267062978724564465900539469403670696380902106582695588785244603826305950837095171256848695896747529380902871262354451650996424317629262715337994975807483439045082595832504729612860293345394675367767669986361599570001915514422842548962133351002046861541791357230913700046498426687836058760749563779836348409711276705807348819665252873285252602419544041978604197478806948980199492440284401759228752014165519162197850495336781107045210006254745395642886635963400899018078499211543418455931759753871360002963859972533070596602552632059007187774962586097673664454458938125369282799728363054326515145580724114690046650656510973149455901517208500526837735255016403384622228021814347626797233162603589034278603095214041517493501196315899576184508592927273509338594460405350534206289956367803010835145368882825689763459100808810125455305028268337928844021552477335475738571534469328915788691124784983773524849640075620895543243478836163762240668642189483528146323633778191285663747355524362313299541369974083940961039341163098331778746312153550532450766425676928548427511339671857195057727533045645773624603370418376697001923714868765143810128113764889264133510898078169588878832269739743217235259440601246265102455376747363779538356766465755976016183097923816820326121212650024660625951483616935398417345962424936269288545056604725694580845703670257447313327821276619375035134991938622532436669694033268339013834382772478036409067641080330927629262930145432210751556587785425829889742667399030828596890854895871350939543865324240583268474070624610482993139792602149669742351849239796177622150223517223021865626621304508242105988100902954137788237770220789616447061157402711527162891061483474914091555383624458471642470407753086199544088933432314523932301926412366177899821335430228461090126582391623655834857362957843857420113124060038975534495882835958230210244305884714368592555129015000509451744233255921431539228442968212791890212040942924137738682189171247111881957955996236340156372029443434978006482224653601662110519981516162930162404448709146676800008559059939357971080694964415497843080801264949255530044494099326106104627020601219370368457603007561404480707517381149537410149243207804318537161713276525270976082802078901492704393437586719832828842378345082942172039533408031230327987163619329291481899663669976746259570074051048475949722914116507811965105521973925139484417636088237262217059379387157072298253915707194738466571469967066856005262829178973732715155759427806274030972300367166598086464436729664998192828279783628672613734762880309500130675944106466369823680940373484916012897744404627734144212908184690571753510937810514201861777389037887568639682704766622387384180165149657477003145311475820683290638547137627825074899443198070682208372682985044376009863384444476190998981194869277987545357810174465453398516826587761101752106132161963366985811835799562976519105089392939903135193466502632312397729565888328503760924517890402890628760086838579400543281337608349866292670051071020774179111691440502017833963059772881406457055471897937199854184725885526943428870293747168722318251374561646736164618259820034582995357110102668477287388038524264721122311185839181225279793857135277190348956558402885697674111064861921490815515360816953763460551504541784654273658451390800930976046544444878171571974319092549965426494403261596974894549754539019485688691132484795508946301601490609779151921616450319004492537381521697002170786810120595199102793337323025264118711145070036178375601492559607284701128032133486043576106061137635027851884803338219124671440002278629528502404705236338312427009757163654284209863477786281592404876051792309417888466564439536672005428270349438410979188375520482435744757788869822691897911838237245088231635911144073644765775903419598303952382447336120198384910937053643881446000909217398052997992753616570494112449071947617789753884924725991806356018737877887967049906015439408293967786716951649660540326848794439045414865790351934481677180428560096938170673235323568844770339671999607095908144226331320233060001448525695488300565431378609027842030791716781612561651692124789762404350870620673393984509046229695827192364711729889513258803387768546301171726831834820612762201286472547263880209255060001933954270457314784584301305190441925020432951114413123593121390972270942025526557965789418149781097207488934017173960932840521424484822173190634441708786898557997649722252774557557597531646795174728137217143001937808328529257297154373420202559001568007503189157606084584913756013770629897809333461977209955042248183980838727019033775562992219584928439127086189791221554705697377265576684270121323446698697818243903660003825272980162370991356329690339834799360400092392058085833328470597930311659902771273504293545508121922442972110632989473482970310787664189382109449466749820149483889905534644289821701098658250203086568367887478642314737942068040666063650954710895917426761020278974894989056346415202361713282301233278719033337371707023982071449848223668621951423664525326801323794368807937130979693383914606400286688406312220460839265208620622837443119241703595894530392440705026167992204406477444086011527521631030633115636295135560640337675795503012346206915111510788392441022320720294215566417290872585642282510601373875414036878364552490936401700148637174010992053682437645990130842815403340519567480987233606527670966338995197137797585552983893504122794980303070022209862205157950959023712519110885463634928995718655553378816852766246030932109989522705209743536781184360293121804741950011448281230683199127834157472997816418449930997388127606972193713844994052284012265616729439154738000707086061455907121050366932190808518755871230859945985907339364195191377073979163296390929272868386561790618334318670667861458208455597597853907406552440273114352151672199328804579663411710150133528766061145648774959337110033876395403731351766355310875524132566208804683470054229300590690436492251215653171887771955475044448148860876258879834928782038911220470483985804925466572734447100929998949636770745506988432253406387721074349567265831582056048363953005621894432103072983443970977159778359699813732399881764108937053941057970990671725188241361492693029322542007707957424374704956719748066234294200949390761547627036594036128039643531495828235752230054904138998493190088177696676499086678901935052281970486462885555904711243495463430327988448000631390769469317973262875786355617336723745997393968824431564986734659381437712478696395305504811198061146920395115991584721260893247523185698792069344890814354765723711333637285177759702591033164135938173365377931405072534361145916129438879669946144524893036270642778867845152845680693554861078695776866061279116613064157131313416946829581992444176065864749329686948218545384775201799611029737324661472913782581024878524848942934194212609969419327760272172812331572648244579856976850101464497287937485473845106080642347239006474422460993606963552460401481841842018479852995512978703806196099409680329324397083925925104677609094976915175473458743035603079727714869279612625580316288646858318591922203214767891057176667394826644962099383379786334078526907292031460134458045328697262040761381231718968112777518605158436628929959765714137741147478725696169340344653161223875127004080037494508376847223585723434197365098491503127687685053101734610829382096072483068772733126130946033637863530017110121573735711660924477270162524843230705065593549182708833006810376400233622935324039607182751144335013106677839123619137473667398412082484216981195371821517390030159196548229587476575519371590969491580114046439820651338542439618979575704543908490256696293948365486729116350109727439837905866594239317988752614775337749002118820650038668551923225090770125656972315164389085225255043643936823051073955157786618786061426161149370927975552522982458036337746071320069297734844466642544435361162029197649885547625847086713663536642533125052811367841195118479761612294582534715983948179116323920506612113590178903844372852475485920551065926745694086666822491758326714281043353490837551290698200807059323968512083667222312196810735435207859034196859355296983653012619925249299766776428095219009926788353119636050666707715848838702377437555476349857558011485585162040123973953635075463080356728274114047782439595045877763447252232434624994555522961931902537996657486992166194675479685358811694510295356353748990628866151497482452569198464903110142200831960816183446724536079935320735134896010052693158749440181487347200762049015156180051207707581247150792217915198495392081792187548925887559434506385358944739083993845364647216789169789737799920870826666014032229833419333333153360876536377487588813015434121631484610828521813157814834916824582544165848069147037524969533129915078902416877175660407364111479611648613560166068770696615913938479272122000880650974539070264106330134047780140866817860220305535564346588931318812071375593861609618547902736473052642741586072127390978980131818406658469677781929373471955453687832345207993699378088367271555277212179974073685059467132373582770733358828195908933846234006991345772517689855053859183105092869332917539752020313096997179963390559406104655912248160129619236518684015482888096750637615085093614951599194390160810389870497067421942746324194429212237178925685719863379166600987802708417353990793593827923047359426024501912878237556389958455833897024961324796839167786046970652701122220142244454860185303649378079682792945149070200831870970790980096659659170616610786268349981059483445638241691437092329223084068786921492826916383746804936303079686015671550506561752898118675769106303057255468056573956683210617263576780647866319426865162908566874490432026532387606665099896373757698623435716262263185016821358063800535791530435787657207383460236688383843199385636887255799329978377151950991221927052324755115761259218989536726465749473766006359959052282761366791578204415198475524541492109525697025376918797414924491410954309648306652000120870222913993097144254122725662712670384436816538723794829339813848786592000031025475931002641151039747604167645523495535338291552859589527686911232280814600508298426869013253844116289398986377096325623793329345053157405489532982615114620447119958508877139695602541981342873202750297438777736056440742162855428486608577329061782483896260788451028054013630896096142533702029072334957448411140658748911391589027239751539604063589810909828503225669973731438565852023016561374184605430098118487005724051922632740586140197588660737099711440201617062153030131994119771240741548670530767712105780780469713494820996284402159448915376490582920641220388379384664694197397570522735856712963080314164405637204763764150848916675361199370204806997215591435294996379617272954505884671149624116810144851361004619183126857613227101395823705819842340061801458401504499261557610976708556684196156600489812350920372887749493393260223014560421782049547834863089071919904298407561763639069116949413250943349705275394922508245171925107672824020968216322152033781947193922478611001935279100577813268133938006889203410606041625228359509830641562389223463026066317670999180805683601830425365466280126131762386179661852332482139202699800535653058987571304777738776616494172405838014383610381894966165266316166627215730241900523754711687883588564476374206810830408534636717852517275096367929270158387949571761113577815228805660886262429585711012504149995351698100598094620025546445863642520630442936620570373783886572250220217891573632284091392552861023494429848382928374385369110615736778498007989467102139550656817067520740834469570508649090782108094933349613554865785824100802254210718027521497940921935413920971945712003497408960843834902647265638375573264412793712499936668302005331263231262234683074438109291664681277817053245728110013056159360862409065648550205673550289305244332019154960577677237737791966872530852340615861726479848415344725289210684613216332142444035758973806637062802663316061108133698128727225904759116718836427962076300594295811421223606994444896456447809180255409734276565237248511891459140171632434977434332796892942594787399273642449432008292933353978034114811006370367656329211259430797939414603164156447089395531455663607317606826570970250631471850470965844273589123852619765035620746363781916529315980455185894868941045196661030799632143398054573502589442546347364520685257041130067077901805228628152227632031540957313360029246957746008951010981627760035133592527564299654991887715107374474433800772024358456126226690824641413324778801075700141951423811568138990827885419838361850212717423082006392629650166104581028677322730091576317379562532986169346125091474070714248879654099932540882487904252137822245671956067051291494961115332368656304630092734664630111972747305645353018083509666993357379242146798819968620098099584207245569085384304106827161087673866132603169782374215249849365338079979594401661985388894800913862830051926780891383092278446382021176772542257442693766001828000634020883791611747293981649381790300420828967465130245594585114591631416415015914398945815977484780876885048143138325689124373964320469504110544086136444801889900602187411928993278607198277086196202729288459050391778628666263808372049252334680457972822926059764778033705548798006841504062799586581708485858668478014801740479431826802069791897020107307107042423961146752117304030553573816184367074738713303234980108758744702682266985707332237758081992876382299119729353989615007389780094610223656445631347204902210684696786274832870042403486351918268451005879898989469525656263894859696891488937257263458013993691835481359475210617637735127116854309655983424789124533917755953710638132455444509826277488630825773247560000571695102727671570797797494658386215894669383491748008445301137190062130475123423849972827247564556476469602312379102245066504501440557019300716699404935793531156427050361046197493339095138514541408647982500418573760176326722215684368081634164296810737630081866549076797510036582238904275909377997247623255823633188774408798162966837918956574373731770271053082130094587495761052732832471366021765694274465388865394765627624619961560574175265971894857814459757447541503475018103555144583406070402657229209454098329473354624407146698929943774349331828745350286907110163945977412336274950782522559424080084572512070477718272323654834742201872178323834890092277467680471597559400740321958247787313271679773488147955895711958639974604687838169437758823725535531337100612957842171462808944918261746152422880428441495843828374201910827636187812832310465705896284111706657491515447921186305795661108352744963667230066029497122493932189288686859975132183507919251755097250868131436856742859699543365445328775905765315888108448034282873479770130217416086050025189669532818628482719388815018688319662158156453933516426228789781374527564846227398765037057455289912230502322112142802507642386030417786031775909084458786913385472477270648845105082171510887850568180495983745053033813464965468948751236489353410750464774245599713211566575696692304927791291185550843320112323348377959166142838076030040948609287899329036733754978062845031380185950796880723823707044630936001885356629345448101254412276613080601214706133918777991276035705672322907529997189815717159591019146801438291987231901270215946115456525394932105720972545428077567693328065619913592286989985301814561034602858695993233023656508408601836907010076134722107992148984856895042075670112019042121282857273456641218836125341271828298617107905930901064626008785345214966121496237978830312440865845636195292005284587659698919739126568494834358357553555847113617384265860409155012775454483843758050776227362508969390366453753418451948887537112531028768114051335937553108835473890110776881700302497660707442141478625979490580248080576365042077193823104312373898332955250462512111227482972839714255945479327887820259006351527931773481082404900094723429199989097179323181066972342194187419993691528192795446748479786541692125890979880715099351127880079531788599985146123276370271602601641223146447016491252587063945388645346331424374554871717862562264944448527037714086509710463072217945661212826525429629419762044910027628084777446022511128816895062484240833321009998308058263082367710430711314807184283365436821587793261172297576899553370598379426786782709913805821902878010084736111291721571980364131042548769898231080673358650327072909025420151961879991234084269939955235256222248231479516553480394321372334258725683630440893519317462554944172682807028524022979723535857474832215078053724613235424140354030439600655299856750796555383164028251194345643378313536405328379645356503866951565678359613759664881223326473179288161892282975616531154691792133733980100708936506279380793126259357450167401012159572234685834200827486478897492239477096040849222980755823631568677159856219468284407404281197755727906656100175888846824596878881371570346788145038504299322959527358956228963104063594521295250092890841875020620627606392897815888384865927193985378655324058942382478224079280491289320739728208503541220598549131211971311153514922948326222190088773046462229228841080817115012157499085524688772132595025350531043178727161329465286770510152342778123281736564613247742104882364335161887097411145942850652626184883237771965644670557259631881766173163599409650744985224249750809042424997737114792507491563617978546012306652279689035076633983107902263839400600724857921967419034295215750506132918784191808941498550105075376501784156411511027195677401581235667124704140807420465659450443877026132202556947234269398897668500253515297430171677741948241903457169766826808931991126127974145249579531028085867198004404846557280240637889005943349714912080938435583685500767551275687771357758262243654637663076119481597783717945562660185329071405414165078190773120142604445462257613549347017686680661745176040347808867748109224932213303757006295869135539735914791641614347451070454701978682538448462215317176580120909905429694885947393546973135825627835118006373712709359457109948191135394265671811369825526484179189424799579447300589609592334088199773103661438703293952508560636400051875539326523115089815574173990493604098740489672942822752807931795751320496382982348671854551119348794326972876751629516557913958662592535984353468408756924782268954419814722400943026228299464941054719642932570042490107370706241942495238893515105284894987515004609089616407233421066443201974130934589358427199872907489729996588723771786501390394584781083231918324722684800864002484427528007456360789944497752664823750138531123331237004265549891794060771883035023105323379269489652282569025816135464232910525863103482190419049098025186819904126807071299980843934728824757751955760571700965720273807899678888965117016703026445934108899138290658114574908253512168974174435729610541881975819846242858222602273597636021343385651127500775502358384683016133726707050384250846072052172485405918085075320793841329190976122279165122511742413753111050907423009332571654151513649669816193566972146197877505998194104171493697406476281925642437739611874291564594536640133813107297768961152834299457111226210526899405303122089359474585467928391975338860707473821730110141153845763769106159399776040720717548490209036788883925701622689683585486553519380706850708165231924625962705451659763783657313828672205772867559110167539764443501133638688108822106991053752756486355281637198377251184052630273268746741660536643890995716200072402848270293103640601970365244783382562158979180941310663123477344292599218876690483335142055222964439014780958129706070525312430493491231573932076303282772824984616566110187543019609161184064150398703123649149159032906254865037376476061344086106320913671145477782806791860720518339285038478331564658275956431124358254432847652804455451108065020225136946178892445322957756914644427713862379534474947976160198087644373757595470777833355593156984346912259650502178813868707998040133824722555587293090787880158049920847058862430435908324985389468807726343170929254485912469362470221110252386516129003201117467227049050847451305001627592738412922779243361612924473570927042424600842462483640180462597631466901677549683514119380993015491786438847473568561480533380394660959720859521792825632319346616837935205198265454452662972220958562343553330586204331140937757634744646402648533991935989587851208710453924262584420892882311295535200697610501246686117612772234703783342651301079120775208822032603673136484772832610856489442974469742685139853900130959451630529701354349372411759371163503831659846721569694369259192392878773280714013783816398713712501870149766539103221136889483403004002983187040637815872045563085254878320491430433596397312743410435945908820396311671473994139625567294145774962037250620165428140756374263716991677511828353329023011297949814885515588974836556289972992394230502400187527868590879586217050605776259355753924340861593550460657775202229555489168172636081123592200013118775259393977434174900175403221046852258165676971859611542872345627791318423234828617097617072619393092746698815460971958668169436944850362088513258860388584371925066057370317128721561912083341145622178604047483918458993694748052768695369940898355262802010257946642541791519461383056754132956812069263893420717804126690777324773610412763797881260142062479913388563778262384704011214511757622956314173505552575451455812882851140659543972055664826413101642944550576126253839266168559869392185780867325879811358290181988240849351246984375427529959702739803967224677704274517927381196998417994380006538083445649058124551282801029312960760358239732146865209243182511142825848898081716708842015015244735937007690542265590971915383256455322804337247174409294492444471045480694807115025508764897624835547089636268890497795531830849952743446941444321519984428479293138639722848619335536743271545602493700787278038243536026136985900376850503134132164185719049167505186946501252764662219439382345273137910902138891735667400446147089266629315414623706461690040917214318078401618861509241008256142111729369427082815033063919676365465016101969939878163728460414846317413555957053996111229469969689820489259694548106851528182573038796500565493139889063573239745241147517204150137814259874561977535549280245900634231970480145551217757586987216374112169880482700203958815591265384237227802417444724315625736990748598951184076041974792949514882760449607800572022853471516603277297223808012779945303296994149972994345942684434260155631635755071721741260985567788257994377248995476422442474304663181432336431905641493769105673942860691576568225952328718719502944842309817687081843835998792362380002790823698039534770482002247117221390343289427145621764511059580809409563947880396274846421527458303769463670397271620815704973526996980725103334170220838547388088903957055329151381424945984947083843812626032012565442603775311214739970394955081773264149410888244544710467088208154338522207760777687845187290511185968768981850250481233382320380430626535177012764948161306553461472587520716854078348745684851320914005150948932086045678764809329677299851130277148268241834518250498357766365826075617766465251190399150694406241519150041957626041517800009037379327322986562391572176542083352854683317006553579134845164758445777068246805091410814623584454299787239690922185072913906884074763658130932270263381554568900884040447415333320770866782886001869616456320967031267484927138894882938932607710987682990277142499326724027649230962487407971794248112238815831355906909121571990701017661700444683216483457875516135886531210284264270692762920875269835646078312401228444421982928933590745859506616701323202056175178921117108293847720136239217813390674044304052294470432565349374576730978337680141526502274065489448588378590089020815842926938016161365605269460567292140651592541176116137469177787941230228275656454457828930287138679748957289716578455566874082406549437397469315537725946848900629977197255032826929452783556866323197570715395663463476219303907630323540009818930203257174602220063140243300118247631169405643894680953398770443842905451499686973305310902325009538299801661153542687782684792329341433525224684124056285378737156245641245111888788214496353566648662008548197517880863107991966162888015621313391921483172663622215897542271151749702841075572563264324911479122942351047775739187784911798405413660904175523198013603394829676164619654419407429129040306802752080934431727193149833862738330365453401263584236719903822266558370107863085339930792075711075179831093004775577042454017361805531395312394047707133461129777028178745933888033692023748334653256464565242060657245363003471842797522733879662453428130415116406634467832455851457750928607581936640076622693234701962613662091375147585454225471784817051015891531661495757794419432181986370320573268206463789143907223636347265588985528797453552672374362586745789263919231818404364578572053786275940273134808012030686316723390017548083078585393553602859246737823195737726145946401877232618367357433679672280322367130375304219793554003946329415258361508447013458566156511040082920280102912019737449799891320873240163934201204438347518359673529141115613638675742329034523846329660255525066555667127852431793668369426312560503635004667778323442157714641522484494711586866483668926970337986746887356984003687911974278125636949767830830687095997844372316158943851947060013291474960404011746881942819181050678161930907597611076834563341854851309929666772784679775566082065694331401750463352536643092309315373327479749776346579481741972558821948987575665007167482546140854901036199607132247631409019748434890564135485693353660997759976343732558691253981808464183672407978840336760549615221770307167138200996748997371053739904075267668097394679066939988836696070916204898095057978778743090277704304935332614553802323187063048160606817208376230104867931687481743078177654979664229503475046496405967420800084647989775731161752863431268348828821674699668042101912739133980646279465545731205222691713158426607112173784680751754934266317337292238343810521205378047390990109279228311576628080547424049554967175103112961244717577056964295074443451110259040589693138517288126669992979559427325553924154501491627034437326701552244748371018861128387378533522027698818678704532409918526986968420494240288743693524784341100739053998762118465407971898854423901241849138366953079077179133298014346289814282689781431036598223317685854778808834882871032544589241558461528791614606978242518165754042372960903450332996934275237591019848840339792501604482569241554230869803681682854996481620857717307054536197901745386106746363419997723723569844179897245850314517001749709176035113927928665377365841531775107788172173949844084478904434291301598657483245116975642532554605416741187846207850618607014976458582182163322684126620051560746912872058201710367281366477500563171061847511361402680333203725866149624995177610219748884527491519283269620764749451889834143266450809797420961667717227587879786445241801708397533646212368570205761038750462637762471799579971323179209607185866362034071919107369833589466800290294185268886829204309976278788741811208136554366501185291902414414283888837141305936190248889731753586171666194813567051244770724953845713856322386299132046148495182897381557876900526853438869247207859618587493769014698349153747518814605103978080592036969107508609871226030424514264971187176862709747306733860246124217618754645216755286128523719874137841425599908717361227553444187433477003128129510851790809348788137359276325274650560722464629736965388301527732024316969391335527645615093033793468295552334609014965606140123946163346152044695431788682498343312780891508087679383874728634701125003248536586884419780954118620054406942951767101440242829997539749270552402666469047852505330978896572510452493197959411967950326195771947897479031390678869381452345789097903944517525085539393245285927967846197484855131933315151623432425458898599170420444379647087057759696443640677779725960850610192514167728300686721025617511365901207698167188538027959138318673472702685296499550455277245746361297638963397374348786119041165268342726611198598932908473523766949995603954855278781359007769207126917400661955603114084683723837778838590295813751986002876330043820098820570017528766345675451642084040832782447224675488779722107143155771735567031224178927882035304059043191691459249678683793218882292937352390204648379277315750955519287762602036738707336466487070415052784118723369118710434192007181066907684835315585182865324539451606997354869081690181779166015728271101591944514451652444743784118784394476789604939730335777650686221037218531819737186581023953215470617707322675862563305655232137446591104979185020562331452242126155287653357353060018214956020556617321345099861927761551333597165579340771795802923741967346920612097531876068865007131614926735566413858708660958350294045087955589916778745600469624271500094173080815223017715606043203019100239754505323653158692540762915258420299931872895951756283924647029515555539649355981579161540490683315031380264286804883414338625480949026308357349538306239225787164509957488152197935500173778369895432098278192443072260308124984971063395841007811808317962447362395170864519595732174082990668784097626878998726302440111579450360996922712498015573073179584600956763417833967074282614105593658882997298544379652482941277937393369443564301613156153452203564989573406586884084737304471767965834495166829368544064421350345978777481937514408441206247646225122804581524632224537274931918889182249890031286354347077834769503798391713978551256881103854262246694511280547537482363266298216714932225284064311803886473589650684875642693254277311924492303155567227602587697326138723305911955884342724326887073507387361477890258808222504439961015637029909419729057340499332348890636810012865877024962154539281801087998856165631044428567251508805651278876149756101082856025562086682838979426350221167757411296652828333454511069272929926714853120488664666272138236965593651672001127278828151124218544520478783477133495789257376797647415257424260002492012888535878948169596119131166476309655677744564705520540313239977072622029870026825010765230195755621428477553696901594475518075129376892175080616452376222565502988588511370480515513063058576826044458990443637029642236460697343498604566987094013218192489097962503480619765754558386650223144893910501746391790916985508105369124766281199737139121453091659059178707273602251480552629667495048234449760345614834928155034728657866460393622810715484815763586077811583071774955167911118025776716776591359513403033469062334379892810988712688942764743997440395489857369539390234167001088458783302262829186212790534153344668086898657185090780914888056118407000253242466672113593652573191172344768164554120631677283383269957793616167762174613376082479767959746791308197603902423561793966542001739787485934214566707005743922418989685388150155313991262398494785559434066055887328204684558054895683071645631316485787244850736689826880822487188114625323272966980965232702957566460721438978657023312158062118287589646137922951067064482912334124564898481092412247497444353017778014737590383447381177210186795122095886781472442172930262288956023807512104850687800393729294180551843060281121972294618869665012605671530114958656368588739698115166268696192647776983252417801427349239766406496724255356171543206131781544177784690528997041760955774956095413733716773167326624367819857512405291531581411989457195219365001144089837189839008045366798863188930614793822170124998394529940917774588069640210100279916027814588891160436083327497561716585544025886144265752154408649745604572077766134933171542029989210478991083179051058528230116033631073473487312894586109683742295592615456308047592248032856394456131754981542735634943992987585078580821001101798850806646951078888000719979908580341284140086845935459690614047468150194633894248165745237631825124813419288321453744527929789773702487313260507019280477676182700150973965883139195264597605523235123153470358284389997798461735303258933448891821376999384477447250847655753556041955300669834210415979909402236729441860481115305151637179166087176194901253959650065124021289216047939720592304964653547027459726266880499629295644584174283212738837144033055321766810978284204263978811586185134957465038110753038527942739559047445145779835243351245466574446242522679938516594101775246426428381005082523777272940202121343457603775807600135142256746708791379187551702390736243918423214271216542621021570099503573732152495323079866897902023393650071396758377564634330199301725755735281631979935305510785449308236695714747048751134161790689443116914781050259617468600862998075444417074289721035004259839841566266451587749845566845827104571283742447295711239137768628594037869640176754471828623108160997862550119743362471760973258151954805083503568987122086613288321977788276422994347796020184564629981242367994961612814804875692723143633964107718602417607083403019532634887015100527524727876286260566893018534573175029622799698280488835468776697134876905144235063139175916248125719954301873924617529514468935160542951906762950817267966568706833272520805059842647857901459121454141035619710985269582991765262529882034741243653393736580342464878205306106527050631826833907149227109564035590966161214460959762362256970665780989978979699098659373499464094076800739861500713050232190623155397086952762077964613030840026766526770531078083698939843214669375484320599871496869416633424212443908676248515919299771181179594398546796073775750007708885202469911942369016596648325137012221991644110665241750347119462728989360498978336141479767043945401004242341680722177447469723482754847408475246889843191901133271326805065139325658953315331266419332340145490560842078335986235178146289948169235960034445594367061957265981571012117388062124846056375433568689757499711131121562091571917754545928722657712712665971145314698164072801868670688000375033631242666546357218086841324740965135959429412547288487042698724549881053423286589898816986471209052678304961673028431355710872593063859552145957794438945963647666304737858363732352396499907917308170756646305308958839838525465071259645630159343905815038325789178017226762814488914047909491056167454636630009097519937851750847616858082941763368107485701133642144520482729562647303720564170032483013717329405644897674471016754643588169517466713350374726932256305432183580848820535887385981897456843251954029533862855722156388101934457992958969164732606221213185881132057342812715297218855665711496986713558146496132067978951147380185983361893049187472285129520182237850802409183238875794008803549834892025101562249216773989141928669832821093940011065264274003335213948366323450805069308061074215999016456073946375473747257477282976894415363769675924969950318861546327293129219313880424307342675787018063023205708326037226582086298419338574224066717003943450957739613393149582615086895576845393411391237572305086199112680902059319714064394047794468847521785451165853820610053905093729680264948041796633188507778778307022868706991645131023464401051534675251059315801147979753547439888941697568960532112754370778743101169158381460166966392442921670556011456013774242368552508982753350403817254275584354385335846604001105262671321289351642379090833738892671498604755467331621661254923830037226530398585463034717754128944123237151741791752324498826697963478358316226933535957253549728058923505663276502430544605399192518350610444580820329899925117166396504631014054519884149763058160219980177939956388533216185743138706438625771311357562303601693961959605385219877347850011187671081138327939406260011311065360781718371649414551082725721934222224872312743195083327185136037414454456889064280957657758551039653581078917076759386966941371912064866412872160162050811721954649421273226876514194114585846733852480844306120328498446534392871444968525906564703480601952548891572252916515744940974608690591526193998275639951622584809218604863430823533701565547917599245121184307383946210318865985735703874703262563782105251287797376996088769162545746400622811602302375743622440162257523993372777582940243712890133894779555427467917447637118862377824892469686503100874245994049338672259682107292941809941726915672975539429384449037654461353515477713873067455671865052601614106491744280937251182210580486050876735386949716722723814403451001880182851754177746572894752205804352825428845519835324474473058425897351036497575812591977403273333373188829624854099677594135817540802292359194837614700078287556796428230299438648142058138109929489185438703728486580833380647830309274508652139608228882402871213028165603192728933652756914432972327193314656083257818192393912152167791303145138218245121302512198428765505597704050752899389910541392737285251848299453861825821881474469858674121993074967193965417706959846543389730922027024007756568306454231964940997276042921711977985508031261486406355737925050928724722555081863958295702591224709662471415907958023484087793169054173001166967533233559682997357852652311659542686100292510603741657789307358188969743139420666170355736271300681049973376384111526410574477004466837926099681545718407049683413910480435488777863717358561943883335139146074283593029279377636774213482218083474117667475045102522571439120018623770414625093526608228456340983051366416279833216405446536609036550047988124771617705806733785849520426193192408598069520633458320069507784480844417828803253497530480157531747358960412051274515537427961562844123067139195924740349558066942003585532354080593815103029607807689192300086306283216610389021477389615417884941171356971067316750719525272854593082610619812319085994158220499788704346429962071909130461480706825626271975654376118873430174158930619500693524988879986504211146007325496333590915990987051342299670934304303427167178659985462518353746423613853271560228939529124752681336643963281453946161948718724969364634773591756726907310009366325303418390200450519995262040435532392456894623889574080661983335021666719196915498294678632152140214769548879683258158359390293734611991132980513257683025508820563101867773893191245559374649773349615393284870138771356376542274195653295800946010135093356018429260200389341819805862853570546149804489789498057558093412028274538448489996996730338248464010858821515586526010712580991284371348074043411442760777531726181223727899428640772605551738837128056231032974442672905517356385540110980257440758520912784694967327688235185599917886287496018635067604865251971004616806460896056814919007365107522218286676438229605350485348900140973139102455343648094950083801346764596636895819026576279753327994361302826675910222500612962430039382720902739205251585466288297830104291301521298510833837994749561079912238859699970693631791386969574973743891736636394045490438394836426225449501036978164955599599337811810790993654629417192483866069168904825302058849525018013817341081043368861876109760772874734627937406532080619976490325553382375875724726082035447992603571135390683849909330266921631606506950329497051175917043810824280982574760327293445707266942899956596104157695144161204597730890726338027365884450236540449320233211942399250351916553634310847493550127371803297609582141482128266366111590305672964116749631710678408293102294939679112485839319543805279972723930528581009817912640411110659286228921283336849858367697936874606588408932064186737858810227168848866148993972917359766833320751126313172885924676369761020645633116404395963030686494114301565156520453956456871713929368961348247456314159770636476049614288086384213508222313346790251972859870797165698076989786519071140696338774756897357488795846955154842163946813490217564829297457479895368331112313946903938263310904668685950609476926043760474780876317671128703598577392054562745247255875263701599223353137780773174598767087522290027511560343788251035753657344389705301533975440766127576452469603471999336308083105915423673580692772141175693134231126910468055529234338611539152637608384151598393096514530486819624190984334030920911933393313040865564592754152565677673123526296319253936060169923218970000061977327516772837992584231649923598046785851769360778177041364197034156466950365144234524927599100771758654284090884061688662615931277043592944479789211937163260452081491753048133944005882870897200580995030488050256144919926451578250394263682868961363475589272935612842689323205107617504811641823709038700364797206804994413461276907478017228090789676348957299501129867803730934313160544215315348878441331740887798166682907772736503195874963819623934852307466034435864032384595580817287026665326104882188580532674263288635332091120946046680804613219412823952924660737653937644300351103777898236712495664775033236820222261942376321557692548597248067114924596350486784965404566676693397477402914370546096321202756200704202180421314547456640321374004992015848915786337006738847072786316832559129676739397932692862867193082169212312600278914257568873950619225505012389534862375716330745469379581656704406960746692322632516238551204075587930352521531451879694252664010069969215481314958668194945836602520877064886728372686577671951321988247063448241828221455744971754715927060487813944778778841539832583655653402569763457967103626131867335353293923054402615746541862390662327364024009552974616438087579854247742366992704987033128160899634370081347609807456684934742017181667484854476495732024192867219823888702682957962885141732105488145559510226361917870664288388546234435007241545207469973571353400355324862823833150772934969243970006531602366378832546193499781040893935299876944055495948796123667759036948346189788891059725760513695933016328306462649047004028625978371443310261725174385043755788984469865340861661618069477603656992324606648224709177355990067240835719603025602921752019014537639101952278278846698510332297783766487702135474549582031251525341805094462852272526897354136561234108198999816319711281019313857962653230563321635535615555793837533385909251203748804945468396488187843191220564984841006153688334206168317874169838659758620556747644063218228814721701404401154239593325103533689432971824285098824899384663232829501194357610256953715260375690540519363186871922673166697535025823048085925395789874658539742735560647496583179026014784225888311625904621187092356854360388196843340678681132544762775236345624845089843559744448647397013739904790508221269697571842035013587503262912075141812111454039734332023327446817974849936414426420122397444334091326998227640112614490696949339645907652445522874923771130948888014672446406288376862721274482712567318113671162109435387095905575451855334252464987378071721940501348999739444726926441293717762554216844904289695975038367128866325384131969572496307452492450339909865709795179735421232160671166309680129633156939221293475644299870626403588063760535321648158575135118667625998388915378540156147696622759964045113632395276913416666612710417300234888480081497265252563428414108850488010396410456847636421218836665755739635728763728737546606057065500585869524276256443590541984335792956277817833413884199251027535153857609831745252706488363391192690109703151437242324810586490153321644333305010276015909029610554058923893908719808210929862013097575313591298125827498392277591317410840960386753989664630192067373749308791681439963588069933807549441367470622952426216023972930396975754120720915559526018418758774219435621914287332369389469777688806512930331233621345164428149668588989605820037945988131283094441236915624317319137687958637326061571116127942108394592478665803792410053436969857021827996274067961359072535899553816601665550882913813161227467510985715260618830397149231526411629746156019566681655282092933619209659596988763445812558186475470242061103256722198234113144172904586613389094812206804145193450850271870455321030686776765160217698524404411454447599240062981073876090325522560940701978704545877585826064613373635281966444610589736959866766389448089165298386258633695306383834942480756052668535984523529265098272118795510835014006664516328293702685061466782864542550862445428686008506492321619377145458081803029550051208836483567414140593993449442485757167575196393946653606298691728680370217237796981565571526739468294515957475728492151979690536190995426533099986002185910915330716434951902513335796638076208994671504083582365723190867170287687681141707733534124558085421819111415212443524468614196646678031210615554611995983251626365087577158656801001515835233944686657718034399876391854531070225539921760244083370203443618946578433768118351929192297060957918705473426482024455201924478031731948068684811199700611700568345911078487345471050227441163225165515361620626948321175471697485093083268710475805253782182285255742826563144326897718684238840900597604658256220284309338256768569398903999598923966458679905862714845773554278579172874290964554447453432688620305389854164809695622979855634351976014138991580955700497587255396863926155684949958375201146287279229347950344003889967443231904395740579013028396705563583761724810414556487161944782972861117240819881525560629969428161865919586618382432773082941625602772174576382993692992218145185841296164276585165606322585905504948766183201686896388221816662560609990664531612351509347247864012183794637380576498646370423723461233156334694581066938632481400940900417403027415358455836179878298798978129493279711987975468985972464123838505225198375743903228874437435012219811218726290113475908313864948262150939366861761549200237276264818361787106862742060828691712741430881331345673787625947410143028967663338938970059351062018766341056845226574748272254997199009836241931194256000890229398049845882756799403224374928194017718615888391431630135691279049428373300871245608090665610681227442356416475832791777681236528836661921781183959760048215629197886384228926364061733043024579211286549445193948937504310177449795290946134701155709554171346572925492599742228710424996447843625628698270426753608652939318544684643179107010699676293925103240413944327554314253803712033942850258850550106367382597324177873880108615411475522270953643854473402118612882737713254739407852704019959520354422015274040419076037743368301944333277425768514949276831915599679487870443832489748930987935785940357699631080552775732651949508873147270954869886534347744117812286581739187543854593319849921550452995836787493266254518740562677377898128187511221698602697812777062579040754269945238564167962937471247191351773382920854663342207114417307518609640722684859355380743170371740463461559610710076360434566632595670494018895508216775742195975194835522428693477686672156824369067842966177352399159116518317718803476822729899188329743564912713573905316408899909326634287366940759195696676018568536360572088379381018498129218597910938325820193240436444644379934645161913828438007875396143377664618530696105627417129128947903549536755489724722666638471862630264158348952938696339362205418605734719455768013622943943569069626193175919232498901126590975863825191080352715284211448117341846448886001899971318633151742469370803098210375991906570887309027617971319147833678932998060160479485682310830625174505924191946399780338931693962077683937112406792385694059928122335759318141472837827581743377824481896788561740316523610589626251278876834467976726433050453907195218111778233806608057290923145268530106695946503264189228066842472411928038096011802519044902372025896061909519091490308148859895949641910552853672594136281259906156819624970648762550365609156759722923959201586898885012974438820021480726613537338093996669877210821831400488998866000806592328350599939412263710406723843475802464295083730435227961104214041364850775824021983027210403825875491706233164487644150078190018269524612069474229794438793190005774452915308297673621472971117383457902419192984183894004468785486193995390358199554440611597721666296443675796674061597143148850612587255778691725442790756472234246031955329758822796660741435897700525466054295113706478829581897134032888069259997261866766651833953662804323979310990719320760110426249231849830836126144670080067811758640145671615450001254057349753347781107277390828960518254703788533936276728391570554011777696722778380442629402405015783483007487748777267993192867447410106769636950183870771019055940480899226180515100490596173081900317763722183485549239258532340393129360102535557185596546141093858548322120718994657963843508030030652554328052867501465114305694582089675778012214221356056089050233920983234601511417237041234014227019631073015924397474883475369246937544899966539489362455078006657115835211198131907820342977154421038557995336080884013136023204579885293071608676852624335740254163827783183800221580326261611270690812161103883653520646514957277421305380886162470780622761959648423603360427844296886702219008731272104763056037732118018035788254509660670228431355963489962979291703975845034047751375126444662186827573673575588352491842238968085096506797936731975016599656591965195799226007407044709868760585540940429364354257731161836422210883060269004140049483484000926238154501499280681573530955093716165628021523498215462706749052455692801514021259215134812043174177965378316603126307252327805430372627209545691334274318542557336850233346296787820165717749879562304862289946357499473729104187043529043121082115121042978092887884480404411082992024928878984602097110951113857421377899961679105118559982124512412300638826567946579952240861303947475961813932207506662228785861658776588362671256648826927373360921725201573677923715172828072117821648476710440140010772835108475314618656332666601501898846782371857119284794090152099062693582632705243755845393432314616301247649021396021874940114068587043035134122222781100046271303186756865775489495114930327916466366859144453903565067292517629176967418450580503605403119634965070819738337162309889778008148464243596710341676869000165876848097971653443995816077396120350958230567503850669937709196180387499242397023493603097438757916863663593366061903315977311331316835450695292988913789027209389975178197443389349934958473323548342712756880768464996179101357856583968296551888401038979308455262057276958445888456491983195851684425981908471272324044353855745731893952152946775860265564562962867930918070242084541773483088047771610089991231623841881083883794621826845174935604505170444560566313812801506665699669773965103933855323926640890824771137510732416690033707535263531835700650315516868992407006216484557960132740143226162637898825991977869993765379803836623023344383854388258103506916341230905278674474235325250759383965252382430972607474215432071198154108447424233800472226362997567852337113343065460786555930527741789804605653829496439303066383188098429386754091727253867484279021827631487632340936683185353444445930558058409649128796675810930577796154824942999712306254704693707851104379843224764513135668374818276961484466469600947425425425053942908698099347396890072626751176590767636426951604374648102376983462265871835993817990976869960757932819463439207554723121566230308037790290646098859329796111938342041245690961661010389529950488863761894712438423534550793613885547971241225400107986120041978865864196934356992603093204357651427326955557419912579571289706168764010430067622569302907396092833049783106881908278296808359021829141102089063937956303695153377118312154489999609192054125415443377150033032320808975939761156222940356436744438543237754558396301723055515177354155132662507489550075038262830501154355756636189317620463518769714058223734732396698664441054495311343987982969215657873570987279788163067406685645026963709985198265135460513585581684598619866430539176041265808496649507781106554672606330822342289046877151006046467248669565816414195866500778765956628068905876243777176920059698057898682792669004184941260944455113435997750378726375846452384168006400243542415323524202120483860019106731301580309743164761275514110193003243552221852031342462747325072738637975265718656189546215039135655679534375919113174936454869908928701421968323531388089673293406618542327253277698361411415007731877921004612723478312526099823489789947387678569774583127715189268764306473856450792466819553520706405825636889791976011223154899518684206958048009782402507842724349361784241292138314515812645509132670161139555774767729163647594968864036285316510602246136288076691593195529453980698999486478686969656760681200476025841123261979122700200802345840033938366023401876206031187851301222912467286561872814129389686736782111760624901686033496375395157854330556809208815050112276292765086578974537840383929758339891495819576054467272037843499688559734167044625016667347367649506653361228512244033835098427679924480801541840018745807935621132473280893673940584829562619866170764799785233573826736586623384788813474814225769881522792049339852787787181250284929608910437802880983508323767249479143730968014934996131699194091357673176724452102685903653795912865094090802826138410630670487283187690481862171694923403698646954742973665835500982934589742612221017663337788936189609879721276417701110414155300879745472982142134845042995363564742859950110719064404851790019663805074292298444080767865272001036077826854218715890403132284606862268488689732955645605350272009909354723854795507512432548740416283134944780761515600792415128679765334175449060014457894496041909115927874045434081666767602272862530967145451217548511361777469918687720258618138649042986929593998243908949920108322573310451479708284306621005863228471435993097681657433895792581547800734202027491826979285033120477311696201545682225985000972798384634326605949379469699979068046952861111557510087005235691164208583653618254690402391934865204259991095471530921176465031292104056178387032359111118438932271847516054650381661739508622171492612838590632917483104802229671256721795636595449843148352615150332068277410382122541070492234035017997643680424573166893664249322133278282287136236017785154306136906589267934456717709161200976670653087620280981734427711576960162298467002884337162220153831567002585604232087911670763913041068452914211865173459658149265777422897139661326005838450298338341487493555294863997942677616742176056638289521877064821793166828369751564349113308166497687449249886930359226917144877825342859432128530131608645848690758024628962727269157059644924903252134399185064333118830184147036881606138448589459732896959568527329892910386548565605387670719506150314077968040519876727191743248369114541711864619552719068914096089877039569925897597731406398255403940938497760015695986526756350957815975285696744014668814093547624389719438645245683062874310702751985734641527115736302965463061910428166516458582746772063296952154690587600229164256932893305372930864144864243934759950002330632814323564572136197880460593693497855310051758333532404892874525107523253323389361874755103880254491523049178054706895199493661678927054428503866413326798375500437004671417801596604552398535499675140115539977586052911700220450099186550769183921976208320278917268484561878363125097830620652607185529457431709223012367923899161616291481526583792691980469862546866994039802096157227718598256670186025360575673033151956964037257760647880223204839149061913128744536166086598362657339740619910758138745398965840679818890559460560479198062358978364468399242599580594360485314450026209030639297583842514867663359476954141777396644999251547960310975514335628283241293003574254767081295764842739239008091214692794651391351359276291070223838511293016696897209613098330977571207024472004931120969584956611079851324313974270424822680733529355244266959725167727117371395917583820958595056612667652452144009645571805793663233764192257794977349259918113316420258382783741522853220835803500342507926805767961967446358027460120771779935689812204831276964559313776595615359514160803608287369295017743583312052003659340152244952033300349510816260411682923237754807886417816453408498528888428010191104296247420526772389626149223723483407004645381132858411545633792615228025848433905443464358590202089875798374083515423097963864875965718948750935110026257993120645205265050403757035926831205814628554884435515111984166296132356145805632405777391832279815382900344442455725819834606825839446925359612497312106563868173519162341641774227084174735184693737627460821244104155954122963274612259102213270809111642891070217827215590763313083240227599406915703995902579680446977445830569531461266812574564397076595126283381405556758799571723825670340412496604157819259746135426269641175770371344218251515962791129116341691521565554735375057497515358667648080480008001435830833179549373012486962455954120233514574749812332420125840692758171437690155746872023838839303171984785652037961505165244606197908183071704376867413298033516865857166632306478456403185358140210925953184056776462285436003603197173977769593428736463847888287938758752154040798067035144970995261096141153371025026812703590564513116601361850249838365433714067936995154534355888263474806256039865003836064222217954470280545419131534224855728674769208787326453477711801844361586431080686806186717154902286810114528945772129667374930994895949743104799347925720041822846762898465203995626420333614725939056296389963970917839507736022574902704926750541382663148745386824220396336609412202418854216404110521665538091040526464072883330677750689485841663340814850770030363655502815138919795134686048243624341956287046630376477929666038778524599461333718879615634207335741439359275115179139738632026507221156964339349637220609868263562494727396789216914250290348450843875967008774599933756600030510010345114625510135977809750923867781354528193607677200656844631212985581523959396008112424849024312054633338345022077218748092942714210508903134396876295737963125100100595709909403002964835501060050405249351567694385266683986077821533626535787699386070662912734192954499557523137800093856268967677410223984570734100325294921913977189415762299576438774337128146114933149169093361110575961524143110224153448713575663806179184246235346185412696390580209939504885677469079134902090085488257753053498015641935324682977163994447866631815837115669661888804813268069310788114899543665616973275593525812789738353304814616210908248036415194445132978777658759390767873861478747614951449575926789812835965531690187673956231912374963332156745610980072514800004543923987444684584757984873885257344239897940724137532539959708638004728138432357673123349176783513145616313909452094502240271671520676025421859436618342871241030773102507070805738268314104019497092459044459352972779007591971136332612459010537601175098116176234133603057205594765186000140776824493481621446046833681041297315917686660954013329939197279084089527738087216122446472578932910540907178346494835478173486307603037516540307323203141669939402092324588935714632382940269469000777682148490947554683539953663321358501238820596611449325794453675206834666844334745417139877655568976510007839629682828734873405771813236913762243774915028224526089097514298067883367512285029213513913210618776393094916907123683146141272909286115944935890496811608702186436108052102822032301118023618135175080418291712788173797017853108742766947166042560481438157162221803494403246624752467354757106020911058576667096300695981835530516285958343177078677889088907569932545154061700017643982412295553820063881173028134363245740835685010067128924979052981322151496371776281839326166306860186613215206830897317173779707877880218717483786464625517496853208387257642226670240267570386786026426772774752218636447221375699960568843220585172056962240534116754202703562795008099345085283366777815037835634218824979264579837381259681026631853410735798229256171301850778678567940689832589735595134438872168107687547587065480449031810800825091832599735041911262260734645345644552095691780832297034034071850415738673738035882135288066255424129152807141196068779271095035195782816639110594924193082293431075751386192092332844854455010999091917042134755815004514904108679850164925135447832058568253157892264397767013180419842526346668479475619060539919463709307690018992918328604383690819534682830972109450049563031993346927359026216314933907405640144753342028231267871705429280368197589927935159961907184374299964762318737610783190177631001052072286563924092267209756593137862645862168856966484858905089888342027506086223798131247643981042647751334124332740072406399882826487573864182423031989727029408943645548686316659278548257417214593634503295165614647274465008172422594811807792830924653129108495600248309463391546794042423305622563867166897883747922151471684079437148183233193338842692906763788688786591941753493088380127322286342559334749894908947419606913174807071435130040366971402763234016206980774828679679965040849992765654703474003359600329499738283787921478071845730025324322422557239472471402003121295385115670150380658303948446709123312338367664514632618568793000244287929349955615863176659441486978897604975550612930228129949247274078502213218431398560037662827825548013788312551583702783661716297980274875687708634463897803569117671201801957779904028871470608858260718873429905795403355081075583127008259066567304103839234114565225228757689159097492910418229232350504031394868811754481458481191096595015005158796100000847174551495420261894791430203102790791315492661087230383365744374157044014847784595935797726199924120691004581599472309089567774509945547639244142874444067538773397994840617861073374696155462414371646114987332955280896193037805240605038387156909702900472833027302316061180247882712208843585863675058123474450012918949923722737249059809023096590506426493374788720942159307705452892577829261151486808152672301644589715336648360672140192647712893437017798429714372218213151812042510531031128286869990924699651609654447214474703967507290841735384378154058628437303146923639933663957414444935721872273165722985882951711548165972810790116010517706709817422205664077859035862830319021378079924831422006862154666374067213665342052474789548472425727364131919757763550408545627986272487254102496168184076687135412828869996548441728067206222244363673630698198389501239693953523653873104421015579730604758088967559578174002950297871579184906088850726675711388197596729675172665500745981869180750607997268192144168503477771405482838784850466423911775283711051202397806742699818972697263805542280222676128432271126721094834494578619443435620745490835873399720491864719857462043688787714696914245663220988083583457517013133686503896482897224573847679417853867929489955586096362989644759886366809762298617884506465617583522619729113472444013118351700515522349799846317849981753208878105279894247666672176897089260742634316965808758944105067345744730573578299934261552746211244400977548622753110029551236618207988960060402541029056931519195406931178049805917040425412242959535156266166189102327813205631095251694390303003651748783576538267858274938687886060592079548692023713509156613208746185530225570887123863770627914923675736212479646041152805074810365080888348726835043404196473314937138616364698531134421246753935921501371072267421319549535720157917494468740874190104874123832029262986075741289163714445885913887860898422573994107770551084078149050963956570658342473958181340589061317363384858986119242698430872950045625394464286039855424484570540201056897119769669227226240175575422282452551678799154465687764102892858009668757757875194167425780747102593074484697938632668790116722538980423372084111840476482603688842071720739065501822975246814010564437092068541740179213221397338736308643417608048750672908350420820745863296133731414664592509942145935850347634159452206461815274226136359139728801697108269184369024051303188609145070654060595577098160168471776440833971992932107344340154469232125099425662157698826814544873030510207957237009319765406835747352635012232055903348630826869297496365285138210549730388010182652278560376755489527564723618903935690770334007038761217210967044369605981732025028355422786667812896407449367950676719867283090223915789316495933954200527284110707767845709407818266091991017523170066250101762897093694633495175957196378724125222967486580268111276257155086657816787123755623571660530475928135800208896887011070076573670966676527105725101344284714084001561671496740261518820225130466474820598423253417190311171387409995766291638418612789377254554377045881184869417349641501557740173885057515845252430264675952482604226258305910343094448841690699810375467522800198826236271763551826262859533452475070515426045598870135884560630837924197684438360524614537841000375785240109056125348730233013258721692349295698868763983734733511413362199533415255014722325022956361896749648421038870917904112006838104627909580963882932888892502686111036702482106745627947023498777529205541119837536846164180518137111056722307390697864188157417999791961560291912569049404983363453557068858320244110519586710980815365713226635992238016512598362924961674967622139376248896833179155601968089678070482103000053673596065964038447606916465978879654380177927123055410775247688113826123446924384641085543752639069536593787662856973646827575126994153735157345041287047242029073150773662111885958715779153020188065822905112413217272452091442838536202757608948046189809716313155252258805590155546458058841925079135483703041777540571268542433207611146783692147694528747225578169063615333952825039333391118902800875351216233062890490422222649917114841551687456429306480627005730500335475315100152816618563504350724138727781413024660505120822778254104520839714390978556313188713982478249537818632948268165609440302270220015281923831569625039036748730338388448770438367012524079356480059805810274292813509786708710866981756223393904722045587171992725045959801186925010711986784640417478133758461329828297952634730704955670411902799465902004575097142057627285206107528193136445762775656050696009070832674697478383734004082480089361961065603054093840483115950619032700531314557095836480254311837996941358771281105764857732315069327576444681221075698030463712030097244620019425641235755103141142922609194200129072813693787633189018423520565213866379451152160507388129351020264001170472024629867269399085720515641551928891514073725434629018537093070101128015812574065000508101225139657773501057543220355785613329239767120131355020814725582437314379167394623674360195343604714220971892244951379214717609659947963296653227260972135233424149950516311961333523959112002636914605833326908646168089046672579113912840933470471892621938978925768190931467505940647568364430956541555962005504214637012106281423933832426039041860442773244819262612549526848869871448330652844532714175915189835062324777818823124901466728529191236852754177903209993012313574397325275429364267756166273490993215051758565863724127856840272707099316100431277130514954079663715757142800860936158234997182990585777324039221334100104206274841836742279504384300572009226640794477498195261828099215946707196691983059207500161926259400658968035415714773964617764165961364448150353314057229857891802684384001806290609696143219183777220630350756017370798603604224351108077952045557359405878264089633767072548325315317162310861566463858715490464279235988795398808931296112536094274220905815117445654044729239876561819029039721820754873993485858260547122821623295150182682912510407682973751461246482572965892522904145284933547889190907615278217636971303080179965135019158061006667279814633693812747589059587929470686010648301917200074654567213491690859110653446898018601121737668389302482978921444699646871175710980947845288458350345004789399808471831964103731351718738565563715872049851804613596194956467562678777522483985558935732262418151790908659904231379385363412382170535564308552028628632048755553730899826103935654211024838989589268404325834636708275721705051674696346565966327214079523920159965585796446491292708181750076533658324564788333483188578576637104211079697380525281013108414256229421678960990813517504832195034009369590767709221735036077026844121661462633476804010352770649632556286860193171328300111995378037408481027311920154342004738823362900503083285615734175110586455033773184706055792710315184135008129906813289610475614716099101707462369706340224350117410102749687895464721825207354446378759916839942059031208581539354821715139620412102243014675883027796525622723136471387172423028838697538564152530483886816043357569229106537367829128417881172947879349638474736256481827705944995474754598863564388218265728325056292321857592317439903379253604583497001420709579859961664032183028576508403345619670238912445125771688915722362222263064714683677451348710629700290856617808078975215688748868941372863769442138428744249558611763642602264789487642392221887921628343990680866283665540696973629386688253274810374804540070850797699978597995632104603986781688047262382169591690214182357548405180029334305528786177008860224802014973233101638595659641936506760622701346298419570879006217643613171603770284444302587402929263970519218704074392593604803275333667586058571425664313424467081929093539627771049098145145677761086103067962802888987727368851958531624883524083538693281324554912349402863793653332303268956395759704829144519625365249954757147445837616217410168123640101053143930922812309764145952965863278796503142519898016218777121341082682679768058962528782313451890518817649445309027365045590858709637998991889853625113219532104139722686980901859110551177591300668815233881371576571723337622652919948203329211166362225961087771609805730925748358670889346453139499979394701823636772502408880623383557675207649187472770534336063253006602577167664731851970645651421529921259329504960713584603327485734525001521311673237884369545618130347957211424605863402597874046763735844142863163649652420254101133561842872019997937680888019430784894897138257001492956826539526455674399998698263344983629771062527467676056411386489192547390413090027958232578512176118765150368525371291374778653097257895096590983778354558389369877352917940942990176734130175839542737548318660296553104654557608371727004983051685508434304092069345253929721013308657879419709850831994411615988060609034135242665754666784451828038749473200315892669679871128697614070723244491741095621062310548323273038918210422711806652667189389802316191800313866018809892832699228415727370380993221916195637626210334359825350974749068502800642628248380262947641687201516372186248316176349459235693414034711054216637710941959194155223882464497452010028802406104813167126659820900570656259386510106265380812398168641250413485925202970904518473136807793937838489255019170904916812999639107741913266550307305302678556802622115638377185647192403906354849100828818354040595035129934920512348123032923953370288264191851611727802951623100744286831927962836889394547064397174621864910593550139595585007520781865784851008448803548541243310143940994351071479453898053367008762184673447396045936940006769672060261779634755909378887627918307356400018021226879234108894359220552531438904338752569790100782071992055869124178671127575039461965568253265048946681512230964454179901171120842890185770171405892409263034101447070974127186823966215100742145096445848339625183253118535547431469304719400285986717370190020553954306750756187855227771446295456163062648794997468796351005186128817889431981992531158540047970919891830957931738903646708764366250517839509701009507910729073677380510388839019826866033109558042418760380996660034202284520560678201484212600772789549347718104490858959880162041555450838030805511408133582435688365518338991743546861341613661449796023609270109459507035144651900198912037329722890259055761700211333735381177129811875566434281316702173650223320629406685870365867147068607973123530661225771395125546580741762122587583062601204147834883881109819636526815790204755379104438112895797258242161716196976872290745122808438554345198187076668341174325341042740908765545681182596776506944127258419788534607239902349017857929177174210300502358372221010256272251472034839777113580924270185390749348073557969461858461808536130905886309212722533631494013573486723610241652869534356776751367769975180810768394099800067385188994538819211487688234188174466996238508718823099271044464895938764524544674019629441492344740089486730232074139439594938068263954287927654331971669612187167431616385291371338009486454951059878180415302097351284667079714358496032432254693297198575607456345487834164945446408204623361952999072663635761968034669967886208610761119910287160128832609482135426656259493051407607709330428739523490150532621367796621186506507928581336690247186307183808343972095369529498345886640314136414740002962196321849175587728991373231259214137238428467022713165444917761723618347270912450127263795442764910397101861665097513176356268680352545655100819266291322391310895373529782886145601959275919405420212886539655930756422401567072307150092344985174187610087143013725597092698188632726130103235122224490066155477033964070197384339434504160920313432895726486018722235709175614023257414836303044430730819627140250441048987013970472238923736700016312953950570281072343343569302381922658437669189069040495782847610355517550965699904157772385883045127960140218338763841166847496021827969111531272833625377750341033436577755348800693506004191940682545909530166841456231579191753700735187970695364344108909922610998854583368874299487164028578091560593273061024962684877895445220168773602839042680121354343886017491763577444858660470684914566468035810321301098041029773987581421497853046512702363319933392425803763232462391019293632728750291359856001374378418845476925045418007566089172462919204357159346557925293607237003881163085655301168779795859369707955818040955170125450757557829734291658245948433859148751195236004850652561760046517723881168341028743600652970489256828319399992930834445340566814530843862212998569433625108783157822856321482248309834888295436902714354584090785417357018064195612934213922156311983355908019607882603371292986720860285887255508777174818843856814233160773797933315188942698311690903620703025687333695221153544719764287199818114252716621509639404428251247825002231480826015852661799319084457181158018377547427416135833230899380665857770391318688662362678965485322159514254640009333830961288040110998138736276006538735843463317139593477321714730296344432797572688657812368862918009374793197195636190728103064433408338677670522881984817314827983248386902419562973266221413642430267561697208103922216544922334313286094391515386616061680669216778334429259866100135201785934011350060601166730732667932721189022649937323926555845277297185010030610575717731995557972070336598538882886943224732601105404572818753351538585273311678854466507992485974164401279863996552423486948212724258039447301511487308057749567234946232409377733074006142348166986940824185945503642672420840192704985248401979595589205793427730336598933500063796087168556651682815420822866042794020888549231295543481934912456390269688356188046989245563956481354541139926794564745009302396939776082739144525403525436598314057625500630368599852895363859316510078135032707826383180834428236443880077530740629168363932404711182723205428614167347791185920125137060319459020271936341187373747838573390916983032275179959441474464173329246350862558449024217196808261764550328204004982839554910827703714045161831331555037295920127604473053655399408839399382034574311425670504397119915930860822349230424389563915393572945927564102379662795582279894658054389574382026002126576464533205382024468589622436448236987151853903660666852243187706668387313231123823632572758758867063940063789867910574474023931982590206519621315915218872778612454934906843857826718939879604844386516989776419994665160699430126262332460115157650658309906785831276033184095064649190155642578982662574132616723667104510885564933646910376818249965002760712450986591189255405144293226027122572790068714179808546432966784441967212442749969930428844948268493758416956582105264792522076166450299401032844911356390243748548074738623763070283188349833869504408957305006628612225208060370213086632004325543578139113209635125617103365174055432251347763443504980640904707112356648185138415792932525410059201129084054345404428388008698182417008462656918155418905836163864038659627512262287446604726634220736440901221163735763555088154565415635256696742388022514863977276125433616976130235681807581248258521752254711879152640739178876708350785988954276059206430980262079470973205249947825318037881266055786366712069213611652093143608316881792835971444408782666342200319626233327519100290202954606296408990668816650895074708804223811340050065769352780105201127854837439331371587672208192535719158849510292400361929985739224143097517977323443668047787620484269279480513781769154652622487426293070350434829614391006149094207341544334908361276038210178636129415906133540857173848777024298810466490057520794687975267157573478729379284245132638771887359416207131175186165950016711807032351191979609586341319184079352371779225492409954581369030744496796645671113102200297639856272382829209339702908308169677035688946499269050518595055502413175843194050228939295593440497564924828428254512988034828913155249555374177223488433723122881434293115095273838679808892609555946990557659734186933854516197574852408534848342105775972363327850351761562655546663286813872054552714470509087642470398420243021353824016252106698170968395342752551374220444658532810485552343546808790055887197739508054040945467952599908527997242132952503787024229941139781170244716959021992836554297299650057036418818578467991437351628029793568769328247136149045690153387580340657393189470960465884840608979832384713048245321758355341548375920614644826747930743223108878075797968307366803945618322180424502677832970181289103780027927902447879918809066009368817004507881816243425972555570880200177081991024129036355032640203141102855974929045699647946237194835367874457900444422038015101354353466454950496944874788904177544489780141570749255080710735258451156693373866792709451271648169702894448355707917220026555937070541750044371425122889320703173561709224705785371218739607520425645888889948279470362995002114047974811280980328337942905001329007169600018211948261582632496176657053842235056323694135119027397387520813319399781963193189326315312612228590045735433337633091991077805512861220264031987635672114710630038909675283672478516270931373039515803526836337834288897455703480858197453426170111269626690837733978966426423707498287396263843348515616780163720730041607489383969393186047376993058418710312882510973107572096539518806846528799580415831903858403973112549832905156060614541249335655675105446692641050941353316856337361721539229104053470817790543027869037433064778149764540592960492427955281546758440418755475736500818417642205872398330843312516186612286358462758500814601856307024120964676642942109331918679076088715261550420748349139035134490060620065048814992992219889530136940188095299559913307785316170662005104249237920363528695914101293504885658353088130942925484264624919930888082518952706866274460512150572466829521029823746902105565070634829013838929705205659882343511779972328708187148954070725462568042490384208462548558470407098436388546616085532984104689598227408501871748557761349426210889936503150745783445724386140390106256735617255159842869630024470604693752822629833368938402151283741688662434564931366880759600553345558115711180535776455090315767276742117490640518981650976081682657212136219838708795839142316523455537059078150201462644004393189520497078310442061041716311868735276949763014041988838716117854771023748390223120789967073397483649197919804603348508480366357489698331142422798439577624557052693863405781855303221618023797796202432349790195614469998260863929945151819938426350089285285932045866125192878561137357256845768184641247577512174023229876448960867645087299072843241970257200514721819258616112279637906901027346469950757775354092625932934416400167445059508728922615364725951040844223725776929849225516504684251797609718016021731920583880764706408423064008456456268866537664803145698272261040564258251751944873569148425170739218512400958461073026211184222827736941763961201299464195993350565695900771652788881245703881213745638923558423336747376500516934626414189367488115221336124719341081910999088656318920789625971064668327677195647953323391586881006665385651750334490788305506761179908703619586462951760350293772222423109983576871225419360181273527199576885469065855114927053760690542507984452594825845530207683401643224566868307419918147178603074833918815466774372989298482035185734846564672674643059681189178291033025259215819291064498649494901563905271208426077062747113078246253089970373904880941716243369903360125756779890846208730305562316075213283485584937455319005734122809915961949915307775334711320623859056971720761219562537898110740726910615774489444904801558006687253175649527029089206454731611306057911435165648985309577965070549769686383668782837015015895408156782205096717324424908601102659725064685183025935224166573205211242321015033984239877018016543427631363879672141978850762622603346468061782563859525402150081103584473030194455237379369787991526192553491699009323856632507898846229088276774679269877738147637683847439212093639812420717884801108040541029212842138341262666077612905508024493033576376378178730343837890968002027388958832760989653775673853792400735738767095827284889697934958635261605059619886612501658676272191849647694647233311610056084957223232651724143353334785369702121261118652923340981099375783655223964887786003707499244756531060224717102296484239739851740747714417189660924885240987964272317120477667729470617683039156410576075338239276383294857037716451828138526400852139013621656124774433603120579395249408878207048845272763466534835179008180171435695259951894853738926359744424650703067900436484217369757012175933124822681533203230760308034636298518422072865890104624181688559509849795250313822985820302056935450609539632634206483259248135512892074173407342895327876589656000009111059142715983701592485300273612088429067445568641734601108628149658415782459583935148090253514700634497732760827584471292867346630301114314913592955046531600516984642000999215690906521607561742557376561023697369811838175074936011314265275021038944142972937377923201845590527941761732521439697342925642933498377461543307052608624830283312684876579117662568020857299897545168418324109930790911350315346986236648686084597116876380094944744267077312320058232469625858324600657703103395652714897276622267298216162673426960004278513444532208851571780572081277333639202833259324095894895449110728187595104653880726505760042272477741526003989306115896888692867904290806466662434283479722050226404961151377239586805443102387817593471154728125990892054775121102307742374703623075745913421748813329351953802411953805004876020391106128340307929720372181975408213688867886788507565809616292014456022491626993460112121090690507804845181663684606071571000282265943285145044460494145752749281546121227103719330003984922173078632904476402147021054308028116313962776527346668963080818191657542070987197639662900161561646513344063323569048784149383469505398163581733133226398718931312649015468792694839375957901585639536973496698798168462049661154172155631443911129986685052916103026416662807399740628010223299495840919392929581375385406402697421139902025766403562721695603168503198246929354574066574759822140055137451627466078268934859630222789259340612333685038048481956995637446062386446295479298989418406714353869134754631419173495845976589581045552563669072209632049813100673986223582112266560220932609978627660978791527317370329509911775336801288222494335805377608740612893229679643006144156034749161495233175765991760622298674680349539183918681779727251302071586929530334715772670000075363439052146536435845284863387206434119989178997137226587892065702317364464558261176526780020188288416929651009369547717426497267084907951715047174385605189311732950108467538586899040965566024651235036640886680740907256699397666787835272242863190201102032372471334372153729614065813218541621002185866562644123133547342246159652766791609622079101973145092329921127091525414973765894728717027325786083217305106442869437411189934552370933621005576358702251756497417263118880140085469991175942860857714304256871343766910562710315044902711321418647907813290408557226894229114663423837511970541446447722076445043039381665969464282132527792001384982077605537741877097219095338408441943760831462615516843631696569989955391472478058350461334755153446653225163998635535722428847528538059767708975933319372062268878423440712383473386759152121305973956235827558347907799402292924442648719892904228556574060232663730146910308578014901964090562587386171343844224095826197229747523131700808232656691577594759314752606843953225445892992503542230245918691315540878400570160001849774396405937586306065809399595460345337468889570640593265084233991005902868955173679430274704059012167405284953061970995565395871143359237243006365240216767270514159200071672603444552600873006119936348887443949505263371120690291947633413978198879408391626894188353815652400531578645953579674650222015306117623946932847949319767166817419206368931794077849892581956032928092655377484253602761300502348479070892450263162970979018682459577296259481276344439420461028822613779372266617199055531437557635911174195194165705950608755311564479288847890308556525076671730372200675286076035327859099897095761557382494610496990416128024614385391702920067519182680266277075516598193591442946763968757707516813558982162040077160158465068338660549188413327779994328578423783235565116699897017290839315392937620869499887082588157892262495966168458299399390229481589307074309199125615946982539416386265871842478971169762576347436691660920426296869967228768591965082703981518576004000071425468444996286050905647256521330166767186404894890986785100957221088212533263434418799201835533768065074133059938011821462942354835807887712737025341392104738621977885257597670480417566235364250927704064234438272718466986861137870175517334330652777510580251296226909700954622139269124316857214660691528189044798404679583972908404338258030585421614412728127675374061986445130001690938363606711425167253180610206717482766258943850456295619840979617096829267775510868658734248589230112218683063150140808501401568490445577922933294478791395517781256951256214398802584096067261455713808458889532881641820358109771310022179889499301188366692528384507167174696050906801710736692819738839056776275541502592684901043778284211000400579456870543945559027692739978879003058295007684675124386936783221627176328766045277581097273526539298830538900372025045526844536835883575566421365337430501617106794854615528207532300885129570559581942966274168703030999293915946283369253849223069358305743680970219524579700265592545912385258029438427282077172126777345354148426632384810728610413522160612543752810397610607399771263329499610580711960551431496701043592036670403206132438249831199122291384340587551775438069504176192345028507183203436733042902169122604674251291435795689024192732197269858020868878338523132709560020383199405916033021256206433701725645846046048596442534253755049905924454903961341277594445665448572921789369168515784981960145100894930331029303801820993645462865815582339679307313028598487376314670393379840614208508855359550790535565081834789159016131293421466104005173398799994921292788284495223318802617430431843511317204607644992820589027837432281035974336323865242740608715530694825147069376583534772109581071868295095659118978282526059525695935435590054920643553668479994270626137729531611984375022665265103229631802266865325992039267750452731284018265638950168184059295275263388836886246603576272932633145591972770322683372729660915465601293817855167223575150554208862878694125374941874825912229862238388062428777354796480847220500800613297064777877224830428113153445557236609501977197477964121085980618477355626795044749762009766105294737930564277162788179855989129107171509876905367005666038901485132561518542830543314411175897298395819106214038970254701637435431151707738914065397900779701985010955371364115736363377106650761228504958963856580776806989021028531069256117060819562335290772811312703531599471638332914378469441929445961028684682931132838551865761937658150770043121976181000645153942431910710720265495225049362917964949535858916615644078215471159038255078539074278888739271598228935244584292231502610831113236480769452225361397162541827034639994870292403252146049453848222915911772610918109892178101629564562331021979170275344719115432339372789823261226098895861451715479960915250358543259693415130052913934434519960328678328588195655347005770570325032360599950158214809261531757746330163850833558861871205598317270454310152740194855463955924498804257457071209343376164142639188146501151803170872429776126514055788375759832953539094709452666163277133096453800092107798170502366060781958658397458616920900669744459591056507431999546345895692401876465985397303052310364878770442491185073448513118841919243855130564758183400180048914640102912913072825806647312734843827605527537062004225575231502129740647836507411720474469302221848987388339060109405205128536818966611050485840602622524459404556689524393883384718237642219525106509039790254753324986902410366578856716823869980104592430392667292601217055849798338783113861830009053452375030230293696707818238995225542546580914980376888472287407959791911518442097638167797185501485443956037437538024489530954821594877252450334509580492105764987896048715163196918308757669647185877441679147279483342917513908040140150396031607161354386774411123117156934899388806987716971918532722234383763367429179145039680656993563761162930523072122609552171398660505279214148645498635175549568661229775952518266355074992217764452011430956317717076464486509482909429240163099326532463560342324470423257340654286680405545626747335296215458457661148473304851876163952247473103468522345366063250899974743958512544963501817202942247655268521121952009161042178379740779117795099843672672320230400673370397778643919304497411647463520219964766786297659639540381867893517153412044061194142877742228587622782861867364141654739136576946135403896848360370848645940596837416850098163896234437041821930696965576210725066038011428123480358266311870168075825272189860391179335668674803778694347799864609613276082590752617431737177540775518212322324519707473574964962580974803413179104078558081485017905618023243562267467532380081568005434329322222728075755600665283456908209268689991901744492440324606731686036392353980086705641552122826538915009258169289620709591688992812150194801700350291265539600304464770924174495539809917621578730465569881170737008186348133494762991750282061646633079542186815155209707979372118523529530679562836804343630723536031378459961939091594947590072858226358268715769622273523647883737236731273720468906749271869513231507479680477394666486129288903058353523621975219759350719866159662724562869723965080319436852308741811516035825693225842901621034451871160262389073035145896844689220726996709522015350644632571159852970517218943640433266068741809830511459020809105224320320500581617549103987826142583449474093158289823463334317068599011970069086237959759283240485276485733070798097718708789646437253843097426342705568440486395704841420999567404581729880564457793196970839554470501512614630454724151019350597509696359014912762012023670858792746289842703054847922884488510135135249458460277554923843971047308100360392474157552808917707935159706759799774648480111503770353618885223860777120752623142550959596317699251319645476674668325601122658840590104890979274116773676597404691283682477707755600287006445126790434295393570415604578090577271285846847966945011884121865001090026430915397099696694869736367113716456806714944625768796048628662220262239573594620217922528365709415259300035117635939546317652325881999689551367996650436624533951722353299802976827486378305605057620220998018619531844635315491504066923902512664791664801611015093693290751652340714508129760201971868845777346477472249536058839745464612477386315914447923565647838769106711974273881685324501365031871184341579749972769154862446713173917652746341298325768830176908927047855271942567509182407474447402718902172408610468014059500971723513296658078460335582813764426370889526436533078802993680295088625195710633211888867290452855511272312975251853430137593365976492456392549399769395688148724301632797363772382353011683548879533201673322006534910986606188351947480388474637042764037210794736234265052878552500117023968988239451434432415899388214216687156833772462510087940692282665709822777049835841482508575864732103229024409864906354217303216165252145207273479888817786742868982542292557106306504688536332714513984846376590395261644753220370436039418639529613581291957735456775130694373278424957629855536116939807039392310071731995371373481451358428635286355479163101916935981708983160632838687921121272465919954414778487893347118871644532359082370891680435093787170669985138448172844250879346246197010402749013811707495925173980172128857999533631163012685768166965173789913611569734243075087806844724324132073194158796821162242885734313316128997728049940805028066162863755123757730374671602058119142962185259759615129917979417910149501848404570726410407394350351423910974721640486002662337063686035056319344680445771835122563601163761148076417927247201459467540923538763513526658193592939367388319776383092259695366460410756340934720345579851604280163744862413287065038065871412538724791780791712247636015824347499715236200579369189799399060821505561360025614679740164611028278073224625145368715264146376050898620879538869206718244168983705393148955747170277153844948654841434770483158987926065771246089691648978957069644751262356070791604436867662280334068178391929388019248206072618425590269599780612952846786553828310642415949235106453341689788465738080717781396937765159212899809772560526909307798286494650613802708693218737014690432087495156554372999611626780515619264078473071761909176799722565280424873062841337333690113740993452153697811904547446881656117398562316859770731261643033015289153890001935295034275695355797873416122423955093544194982634267533314886399683479891808220230800762600313735007220074568472456250285516690816015251700612220943486294996981135053336267436073263072163466804399423494103244921241282615565571785149790559307122007828901309089607697869598427176190520695144709713554773156093533722119198938263642494239068678420711660755281058511753301746889824017810346340301790669809516597760431059154734383350265540302253137205576759892736597185826073010304664272620965184325810188381977627877830012327811287778099356439876532469147584969344034764246739908531777541137373388548488365753937305218776346604944911545642356740174036179817566686717516672213143560811197006292818720519157969668566370042274993450103264863231383508666360794689370811484215945474123123881330172840343884457396641328007006320149116263659099631622242217781987364332488940438236577928625877255916628339319225848256170890867495263522469519790933024361128357617212851187506422670420202259782671994478679627903467495067336851722949687339353158892504948309050584432167915156468454002655857123283032943776008863008597271914990520880631347904613777870091489663908143860900956673609460225936485515381782790901853280003782167076570787531506965836540978724286705475776198806541755855422458366769503485271655483718703166757178899234555409945795258268961693022570866004257210079557696592381289784039585809872657265385516321213409407795142140305265609124463822890212879827631558701024440419711891559967430532537083917302766055246814036252986257041428156697287294178949072855050185331495246634213391417316364422616756881316564135779723487758164961404182217231044602074611518477633600969228579628244832495299289694043651448594809779120467315803639654669508393929111770845371390575629090424744350364104541317091588342470019680121342233738284153514658449835856902644796286379815175018516110792032316370203038597159718600022740456649504096731964316705286990898341218224016049244195525217057030287371935327356468105874305708205133636874450549664957660886278522519918925446935592445065410330738744352218179120990850438311741858081185007187820659046816939041817274207114698590106191358752089561611616184384393034220445155201414881014571292001906225084011744319748890820611883201037663349771365450518578071516561376411934331153345334103999694801920669614252796434856145986887523338347336752003002799072530148429542045579486741481777827810276787200143592627386163436914709145925852836827131994953404369288985871738490802199584654922474885871772860085211896455611149950721827260661140713398193836102238921869170993360481035522833862873421706242721683744631740028190595946522663100202016776524014629550819499721782398658939868193502191933411815141806492049696852308205474131244409601125167061178655821249170538275293592362968035867848938987659979071441958481081458278308302411013066797210102622876090220690218744982110470652958231779228293987502671708935766105897425891142693297464409862676384116631579525889738252090239099587525749965276096488731100573337286277067364275668180197936815935709411217587498598233872296036714585285182220483774278382657985979937078537207012692863940454365057018860875473341224478703639134416037646308893163269033612963303869355300677559375922989997604706938327231192775622768484694457382613018845774297050031394865872164789687230280813746552007123689111226379520629352159296666484824818022014685442678008607542931408872759458421674085085035354844220371272237205788193243095097067447868144138968441519847137786511805109990394544789792660941196235598787248312812306956705599681572807385358176715856162603576433252388277998680648042587657382856168602667630493077852576995861252099907907726410740365656431393364145777278892188693279202451496061063130838615897030936647370649422130535551354614533347989013294822762830636771632628607001319542409460731606397516644200620470470973500271282779743822529248680656252814954879542122904350715767678546279555951772863032915397007345204520567900330336523224097738637735413066113632211600313824374819606853766337137284327796402692712785545816258785765341140955455296731609965285451034430832494105120671545533264701760747452958786761146609397059692498261720698368864591568163862588929231903928923560064425151638661981288944904570420299018694325293346668553274880560655883803962000089545827087216670358711111022388344832921413610905764781658771671282589387017659273684119634447512879389351185299905495716490939216503564870669462062250814419033749583759951581065592604211515820347912649636419645757832337960211312556850107304976916042748011862556345109846630232807380027204239257918052482676401864049608302193518492046428835065750716655514089320484684320147970997752818871184430896453183893422006114150472650244401052871673452744077111856601500179967321690980970036547584169919395667655233555635058523546446072737713027290562722977914295316180119632297086049563375702850752965883955524159659069123682362032647913952157545398618913670413878299337784116227885185756066826716608685306144988644727846658601691206288701796484289402779584786966099160852292843938842152893169159766856425131671981991438976990642996726995221923736174376244371104676455969052504220282548100122696091295859278858496724119056747537380530421653516639155963005036815910937010480124599560789754477586407401914140996440012983138753016036648480898588687208496137847530738561528435212194317731676770992959958807979072586479262754546151112802869934797217156313894242740591451494883673139619309626237366943902604616426751798437036973624856554874273259602412942261998789490887103460476138664737651190321870289200983246901622393214977129160284300476873921072616448382640114069588041895522609416710047384980481847254427078231307664941299201527366967201266051346041495915535932870591549322624265002309353674130705610292280035057352847845639896564765811257604393390919703669215007935040941028028863282483248048558791052451560124713115463078924918446068814899444944299585518355223931433915713137760668062686870948169953884409158593079476003942533580883325572303085433623445248669714571058481777764858542186049864052569428595795521984438329897899536902661713778394503893632739367465220814480322713580722543402109456229466640777379106073773082199224858564862610734998233040280636294766890998288140415383487255195444277351506149343445115473036101117236220074362027444688080942738572099900951202881330123943792063203657618718128590636858534716095393240579441409630583099199701173117513738054642693817364686205406794819421496223585816602601044331584369726871301002184936575682569273636650722334452377240240706340482711252146115585914026939910898554551652351210975772535501492842931315334776832642956218426105941293431769298397021347059459156337631685876618423455484922444333010473299502667322768672158614461559539505959215982655956321630698714789376358908392375628031504405492810472750881284189433309978568093181213557232102952335516882489790773427003222388601532366634434790711810832351523567060299480409516849672864336110240622468988310726779475322376357524671122790001174328052230500921754251679550719878564585902345850072603509304350809198869085347485232839064622620121557421423316870973565708917495580538397896687426468439674669285690202245866431400600104715604125178589609755317316528663446732200135730191910487830776581500081697413525616366449293155473131760855404857003405061312629061176123217089573145060359746843224294424656308202493878486815992739357175621052480659766301246858048826459668190850572578470511452100367116213790442879818525078045569555160621401221351060534856080934174153688394827925234137013740202583641597956908634256234724180712396990348507084889503625305678657419662685603096788638064536202901111061335912309385066500922429852908779031494795594290586552553624003381688195584295054867060131577285088620034960786113793606454229406533622051718208473684479053446155712660422190069055393160838384681527243177110059345378297684913038284081528577701693577975607743066379976019885656982738813599943891211721996740158665778688409218408162795790149042666480459956860504493331477906131491927288870735547050020189570184528310941923857004406778745872546005749623871071714472924226523110686335106175478087991383003224411111332336406911515990884862255023011149176130014656309703490053593406542898559002038895473506820132843628127088582561483702934095114561966026106474655264888780896576011524777384022942481148267801765374789547557594463316069616096106600551563855830945865995922244451786826379492824288445004514002460688966501408931386359641546235795144910150809488852009470227168858258831008892422154420386116832434501113289298905031101221532954821029316326483467398875588097216519852798902115941656947612753237012286516769856754351621683375732277053958608739194819321005899216495680337412266916730396480537652400154818434836863624761930225487838883615580213340667461247440105398056116934670945845267994902159623122390270590713058839486239454544612844820967955238303389978076989531437393379312332376279519668303956983467606123913078889963355571470582107561965160668522149884438225585775545354487127013339869044369826990312578362639566107625571318785111202269037086450858736962845503181703914393060374902919179422992242033334784924981453662939691303053600361856501671656210082995396792066960037800219131467898067424468537273347765964717111416948845632323858152152024527640694078076466723360183497112796503982484158982890449224993779714315843021460064726086149924583243485691141219683465810596741176716678706670586838507278999996609426303422570077166801080147531559156392135484062911482981426330238996810978746424373055969586773124661443937176623019997122640742569754330550181865046369379790794785013585824333770027872393381424234989829015611194483967289899731024703241854707838959269838026725510543942096257255371922292503462112398731523492335939765347963662439903417661278515253693555608904824170696501085001413486303245279899722877697497986352829408591394489550733229662672612302764759355381509441372126368160218753987435178949785674401052634740568485611635274663006043945006336482828799946857775257042852027252401502442951276725368463553637742632708407346140729556786926020728857715122097549102694096546281745615034497051369836269180758757042022554051368480682273472848018468626560542280202563861504725359758370983112054497272016954210961675049528449836593127098222901519267978363242459259490597882662302768124873527198222441703086924142609698917954799328842777074718966528879344058685309601633656477657464234848506230753505158524404958935727220958323915269726201939144668544111621798699366715670276527084562064254482221585969727029921806325421733283750898754090991444791562262267669602747004871914952356385725509227202890945033170274796595987524199613852582649639768532791032318632172822263180028806995024438382270955514886701546539874794328716075666142321817374314580850459995380599826075567288185239620464199971624070774337537313977403364607147278242611161169917445183648896152353038777843861859399872867985218565078667528773532328872517427188746316238866055718558611115093541154478612538275718209953151145521818568730821647435475670637167089406050536800928994124469572400194160482974321302301762073400120502707150130824914445753052886641021826805541516096425917183335011744155646407453282750512459304078338286697622221930368774561165734303857456163299242431679304720712374167048268268401713084812779906654676117472481194340938750887986420004997589226226636429377943994049688925647993494168257091850914040379171477639283868503481077289648389054181700975964247767395479594797833760130785164403778119811497149526114849057053128027589163535488578292338440776350379876923640432311681517886917957439775904144756885023802592348788941797682635596069061881938728283212169705022009624633143384501487627443415122852968456098465126197005835265399499238796782797434947217792622428388906525402318113988107507070017165248986941134157669923269114674029823258595222608067204135524396789270776357217532001937494542398870781475461832415400386200522539736203217351610752617824683541615431200814660080157029576005351303742486734913402474620451702884464411253144168459256049643550493792831675680891526922376681150007412260267220418108164673971896876148755463988189053188096340231407719994425160552819609242411391957043422349952578368508467568414145667726840665675775079820394044269018656370234902792571484242671868593992365344321245014867907802959779511955029674005538610786058934380270982662006013626383108052294186683429310989319997769380006557257071815417837183867944224564849248099212141849542062473480377814830680643917220895766192162881071010849693832696878861427756905660065756141102122743160177248679292419945619332942542537893021342833127822996240952094718440530736845784010736808391241882101158884364888466044830532130916731625326851090053290211050005807150476337158474929040443374514833839762021234821511246718346185107328187613970213187594717872359615293801639816489741635206362979589109465516502018381508659347072250769602818544719328609230763775327616681569384346969783353032217560840937731226083438445266702997628483571467458944174540606124435521211916850493375567271261115779915188938540459558659072984251483253679289832009074779257445228966311988150708605563919866055552070038060080297729654841740969506884891432430551437276263735418047604024549658030186807096629523155815224004948569005626510116531129722377045288984944768277335380399392422992109512660893713940959971915377490651525752322110732762611036352712175800053989556730283102779829673329085842816416216207158547297822341595765202041876498882884195388314627945352419748356566334832226557346064322591407268020529437832158102604088184814201114014831858475361555779276764051933075986136292823086547159674071038777863649609262959027857788143756376702072394189422330065323919423983010532624752185127024959372412221841751434918001775463189022048823832840315119852256569797779137974647336686888879464469770092692876523615134511421769441445671026436871072930581532452027765454087240858545736983084192787767796862792863958025472389643295763559477177580541286114113006147437404406802501837268162223487871267427114625461027969218566975652870158583740995282469066462377537077459059690659627845708811875171319603616076121867911472877146909367966159288847150053298797878079914833897252696715693627815270659061782265206050704044430009886851783839642183851353895888217285101960288879111296018649763619993631494325770075885816806549829030478874609353308440377003865892075435618987971701556638809575450175407212907371991964505057914986146052023272962314249611205273488196049369083914966831926557665831397468989402267587457144462916084913968913386243050110572110179186479737222774871604189177375833108167273008885029259114212977853777394308963954111598672182718212180820597663842466848904745985589235016397762368219217353193844517331590626848302684526328455214205528947532298049616711513212963312517975937816238703518674718861485073356215034785392834448453893411356930291358431555042609708106370802961584798570092734116226739404252013109897582100982314703683534852506637938005648068625455289135055839224042835176862257066777838975621149258253038016763372635833324249693682898134697060636198884361446466504541225432873416972394149450798151675329254475070476045341479684109422096808375771500158131353930652361427720047629388939715681384080473684296889674333295380488275781283826611481590860185025754389099253061287494626500292324348893824005089815270949373555697985410602972257534284207581406975499386703116220534800744443142787961531194201239357972682468218715792632961821285794955505909533856167446897688393700582070965290421543144909892906213725885201894831689706504843821112829992370176257857479913990949022450098833164573753936558454503008538739080730720375471888594267254739433629250955291390564820594898180896729737581945617077186128734053784428536025646666457151680093074281598541725728353695049806514594012907782361849905272076453536400398098169435308941615433620294055480028260018699277424389456941399677832490534515665997485286708353249352073331854034756837962952466388294371862031598340957349757952974464445227504837999088725504352635553405334401298962115226066237955753837113024603234837200649186435551218248727763047967818654848976028705036183460895335637782633882371336286954448044434389187395664564544696339874010462222942217273935476582507807479289293640055199334763688375977778884921599997893161262455611290479053511689009044020669889881007960677094030932598428642732039106532259824120850910244381233426966155069505946557246402341036709614535815793433996377062187385979962260381148619460450173265097018918469132748013760815101762631594358532402736987309220241125049132509984402590456068177899581051949378171811658680898453994026440095445087264168648811451048339349242017840390901025348710036530212242882585168701886880987495586618601298707572543453976612693941364488418594305056818045803438290194647688268308496645969208033338961957276336300198057951176814108973725160631782029177217486441486618574654578675721762469023208308695844989504379376711633812848135169732083958414911898325393164874817223108861812510544687856256396756940268441267883916561358025407337270262489538734518581502945621340952390132664547817485661440687488867890505950614592647277205812000261254404324686336778622807625984078995496421002207522410119140661452671860525814909351680134932151543023531196786790390234476581710250630424916335941473953775657941714243108345850704434525997979392421534479919779768150568882647258772444676074751111782014291611605898075491884693829756413826636033318430583039571739664129118913320756409914360930286933599535889011561249207947611591901443045999350148509655778985157591760236428773451652660888864110384534179206268241764718751365330429849969999836848251578725493767578840442501062410425023836172334125577149080816541078096479962371504429785671324072851053659721748550715502856488139735890710401803586284975609260045441794334211600578893960255999754665828248190890582348206801041865841390644563634330344665928757216466877288883373201804718025960670968918018720273653089865483325785568548983891567075336916177820985213570344200197705946626860563341010773994464348293665312586396831400259306686919878651494745027098543645275440903143439384439402679137378364506069115651554054040514070475285210194694170725032013541186495128825286148565728602273024231963194064624037357147519063798011402225543611171237894135624033854741454498069429209260307730947978097707785255355695945880309119366079380832523281791655175141737105568051666369189246552002005525873424702654896596408762689418293741387708927006002472545537787627680638452503340370043698065809881757562912762502874138687042834983668872485466466038692668821086391091046338930068895011957985549879200148840108323527379322774139424990199446366999702182511093440741804882713296856404272494009914727928389606541238103343324937767048506550086895287532520177710687035720434188274451302105974813813093168967905700749236896908372326651905835698984845627326969172777034479468538352818879912119149486562538871902846070011765641385311901451769581301314031910262245451646201063435326216479277232441355371618139145111123886613011038144718530816610521345226982827844601627082646377828526904961881680164657867804706738580543065537915327435286240811664168541607504564236662228362616344003333642829301207621436647909632029805074998292150315832417623783698059052836915769838004947599159299927577757510889928527802367550130168961194566987871097366186437596750738903580187091652226547194851629047052336844382530573898614328259580459801224747622514548892643088254333196872830856192101676359629705437783547909232270242447632535518970288511780344434155478933638257491054888041806084173684516885904785131201318049359083976377759186140749836734806745361021119302619271298849579620401633024095347467720496484601580494593343063500835486794634880983418609729830793434211444413323176365454392701374169084847879962662873169796704882909716572676893144610614589150465854963815788745989782709196980462699620402243611591062022065588998067042753888990572568684773331949037997482964816319162459443036202938925798205943707234566556472705028781603362114712255801977854906171524482950690145338880712028269268057601143696876951987726820782920902166890052652676092382311674181075481444520822431586830048095656516263851467597365837908113812319440670092459872209746781768287945860959470910926942395841189823088170008290643900226535002939903128280374208063147323343783919616327946237089352119685660702716800147290016679007762375847531556344283196668789181582393975811996356518397999947930754069894146846089385502835997935187693281019610900349432207777492751518224276222252634536579608291677468217914199742369866836485409917514143502005699975521445032420711389631806661182288689568380757099633704856526767873310337854551219544795251379225932507121283608064476318621866281172135330931718123635954127075910730130406313898179748549107023309775791029001866660624435256463883634214234733818362823176049975393133882178526270662636638998989727591111408133819168471433961168992416599847779352385539080338885957879964114502061915090008981255739993597645692728542128174833380130683825627148193303614383247602656520302346941292494740707025221123723512280040118322743849448799795251700366076349533224406290236673925182857565517321897171967668980478268747884789059909236266349414807112393407516539451645558871847145839318523808296599610300827220439888434852251273367109306280220771305337658864969642485115223223466950315842970826916084485336232258453249027219852034566609935548321612128460579196731425910894281929559562725491554996246670491811507054430634831371378892669197520997025975356928843599770158672810644790009399462479061988722102666964081680105391603765668413587776177765100704029676267413803538577508422269746060494560686846778933453923552415502311365098990249291223521334055897954297809954703096783773825695692355997211040413010579613493831899830106488902272523104766553865809490103416791195136640886388160951166161031091800492761299893510508933627954796105090397212229597106306568628200940737856260916943306444710553892345752817511308506431628376727176380922797481403275144148605189030464830483453697060176537728799817690389977654803183970877156635226898440993698305799934894384293022110431724045043512195704632776797761047895525274472530193917436833578112136086817147028237841695836756129191452210013838564846220641838778716724785771027082325898214047463947827089556214165836886099772728807290919690079286507643371620844707121429857519623478109694714487942101584755095084144263058123816884687203427188011894182705345268893050055924451329830527125236276700026142142733475620038094561220477186189213484117541895203620811095833918978794225019906254781182781609800303877826481861765988868754051265374832698452881179807214822813181996022738539163172208404417968730564520370224867786390424580261856403789691281267583425021155420379850494899809993501610886294024181060784812595232082120878425378733868837530921529929877120775267875998810634785543603377140879885090224990903876501894018451174140585985161646319754215704949158012496751949556937323426028160232212847851326589914133278560100628571252692917895345556805129282618503281794776827971173628151084199869717264023854602877029144842850649200911083910215372473813582483432902327883467030364401585462131053509653113344296246996113883259251659330576854951651795694473982698757181465729244157771279036255528225623367950715348416714260628033828643614631390148636397536531838018351015671770334316808790432095713077041625349793905063773602475490890892242384631340128034898632467123216274179963801896965483212888430513715500377936689953943490476804951922906342349855830436875193480792045667467247074221809961069962636642049520855694274308273546512600937415313560713368838340422279264631212016357475263577036310268917089288603227738156788921261677776518376064473014559109470554207375435887697456088470115878454274978884332864251049062041757362214174592414521765016947657214064752428996723477060640031765734040779448688409470240245850370038843603658949191746528827379924879211390246823869783328783655608639392406536692945417540953705113310456540368521902726441276186398880547249632033629385125258733439356738550953806392997262697761871619778667592805138211606414781446492644783845024385125021268733324537941547472592485063406701934250360146975444866870233641381324184927521975563080230109435595675156021828854800717510262143073111170787959328974645554890180109438762800347805666570847971532428180776600015944950484447216035832235135157538597704055073768218981712125654625127798256728314531047350323782454135453510997524965904914819082478098195684552250981525252746208553128390381938101729389252065144255484945588448531236307917363332419455582294871439687263552744315122206716858572482962626529771278256867086034437474930711264364714481423747720745991969347441324801494302909949068283216048969121589105123970037591370807877984553876374678704240425706290107187073915148595044128346909124631330560897618833246783896522336267292234756787582410728605088981086742583061761670428826174622672773376172814922450313075500230516801074259270890906871115848650526470425421101385521156035442809415998440320731528074853780106871017898616193755630597801529573479525113731008854834930347797934105687774535964942200937387735733037501338170118638440835975853678480860379491094582600930567269370477658202566947242728672715756956684941405563092718566830355304792000096475018873902728509387949074961173135478591017795046491462031824134114750659509863296250348155793561619809840475380815620246268447492878398622646435691291980491088618711171667346404316165984379404293604694086513004376127299094270685178000466311852093377724714340115641246941976861903604053834260634659079766550948384430866368420437952545760136095760111483465656915989327746029535529079518555185616259351543877884788524098313651599744108829728565617017060578032480233743706984892173080514991808409780951502149788108270613761634647277771542799636213572469318153701100023579738397296380783340239730113769783963957705546379661345987019698143384356223799928591820003804144710023213839546186130499702947292912329748059746750431872751608829868330657740647445596133638586216595149612472195072022473385102808032907245203417809879314497286595659340189808471339069684616940940444533387889593949059244618517139216967319410639384998725573343660402539187459316160500915168872683374556195174763419517705376370914772135110518425024272732148832985484870190423730744999593851374707851263254666129112820970382123270338388188439630927552925841558362079957783040767124027011824683628914150011635109259365693692880070312636425621240804064768601325443265784395636945747976620283030460437752874992331110393220132037236946054863674863293208026051447141194337327742950023630476852378662400901715427868731096143941569229949975308518050892763775722776053507038659270517710541776272164655800072434061192030909243604543937008430805763632402050689604640234710148549651895291322783098273164648917703273498614370702923952126613708834451500291485073338343571887233515923519012716382882203725666406736924640806134977401478498160200611086787162572707914621054202780025768807276497084258234972956199125517869249609507235730081583362594586002613454158227775105604416541341882977749150247502828034731895689782119099346633301050759879600300750277965688101408446543732871636081756632263933340642948839398783914658787897712183479244407118647788635788485195135253988110971898598351119032464146166733663633294842416114803832456212558547863928873294190690238386585892302855380075422489650620009580658336833867453306876791081189880390098042171065043405167574926488191648513625759440772923199575003760937475488124964806827468610422420547485433606081028966458745180551090781220868514602691712985629105430694972155039661196074190556945659379892902683596268637835265399815494703848720976198198635831591920826062395224455467866376119931660724502914272749670724665567680151875386886137790304067636628624781654998462516834332367999199445816345567563696918399720033803914851392196892767781194058300301308511388903343144784668086791047823918175847785613723186893987509081291800886507123008261765761452594164900631999196968983814301784078467925801108197349204028523451823650685409020867759391856611851037820819465781181685120544756567823351437994406199086092197293233084429357876403058351196527720553337496972976865189948859005806280151561072018498669079868003261814541328740160950407991366336892189679236562342403550219888675528567432105574101378861172555115177218777028174640247364114983185554343384684689406279741558091744447105519305811028712704788519509614605216833102929659302205096003928955746973637741359860611997230568818926402493012290944065930464969733343635599065896884825241325375338560473486553309821125830593395447911326474524615595950363146227949206368092174695020347697533746204344479369786654136370866915685151435338188848474820853275617515355276206867985770003717197721748046979921552657768929777603974769047477062888407497967077111887483652626773523179147898869475474471540594788391447491795131450172423111460501871600847220852065395076685327208870937244723366783887686619919203587826870264975879706926988925749024176318508277219366772124068793192972989177872414169728090132387964078285350965738666298651745769689056639763020062834995840271601236244151868347579185661127746977326185878279072732867337819490496190782317928901912177384914563767157850220442886409724783460326607165478303470655917902619106841634090110468853723177411052422240501721648384659006068635407735591372155982280008829161878663884033551698618654980767413209029582106291212464080640922310017538423724878663816182989445638390786122265939460666703991085455317655416654334209617390752555427926624101403392764413088544945167172825224916847478561386997010748887754343187722117755482132784462292133488237686998329621073450099107436327753237647357210344258596942470074849559434070751390053304941649125855395725562141098167053590939733120665874424422238875789786075289237029884364287194454628441961527375687360358013662319323006884755190560832181438170569331418587727215318334186800120971689609423693468048882875360249310260688109612445285175875068725287863267278728262654923501078960157598547387930905661359894650952906686832502415121303141142745835026354367634978026109640830762925426934804073552261532238853155064620797447586416006967455449777593110370682167503670519874893469625006715640668138827577990321649772951771931497770443168908487299225309095353699626233002662779218906674076162503161947285969524849666487422457987935792501284672583478808997066325084700804575869111286162226424504471953343544780117910365383069941225405989272367928052025031590629033331035943445190193483800828572241468774310378326927961241431614904627741626491253396202140244842377605350880504440684115218595493854122997256576528916862155604054663336868847819953033987732337911009469434986558942402242863484203745608600028091322210516200752626841742186082458717445047165210704356739432947119974221252381874035370960664280300651434338388956131685703653287366866709996274320498367384521617109938323914779295006648598315417015393304926214754242417856961499390457185924568266099335559111006148431020344100285168931664443397226938362648836061814565702422638214130760758388370493463447451925575111674102096480692371687366410770634777125901266543938547413263450857639940823641951260922281573366130856961338286720603877912021986495692246305515215873492024424997378905118917365085122677268359620003793846681853052089307351001632748065616598375809495982818482514398533583450306498288151640448064532912241562253463875949148977896244132224564122659896902718132432400552025189631455239844133292960344164075998613888790755699223206810098418438100085002058544867630809587506956108444542291507681099305653922620682058948548549565433972723624492532778750691662765155646008433187225638199383259551349361875579432279932515853238616276120408619236550328785467042305756153845761774765406946948406933753854064046840471827437147845905912546942242203135918757742185267664185522763743505378540564646266562666978330482112503375929504559345099483424864217627386718395394590087225377344465669991827441535803500047005703202826632278966631056177167440720953452113288573367352730994715065974342648754467964452628776820912496308511424889351414766980478228199417222699788317291897232752819674742115867760715962656412054788709438958372845106925563364059251314699668129030342078925621001880583219270661690880111303906372245644928715205106699764858860477201712822798393853302984950412185004561807547336114098707166450013593271617300742630568564073304130256860920128893068874199928776166637740293566625611007585929687215985826173507574950425445132033483592559658152113854833300249522859164637211635118008328840221544594549062852253848327371835463516002320106619239010229078096159028972293934055984433453170552086259091064501024913507154051234496390942390553104198827946737831241031361600264775482547893976203984786766213145256672330904063897278730167517035417013235972106424266595867036264368515988249208986919718644083871800933322272660253294298302799082691503683546142337139513068096332364230483142546028480418283451962583020917525636325274413870296386994847008081332167771894844206825342823243086962217876269765608324263584436456836533658129505286518231526052675320637652468951533384724522433355252058127033475658011731821085861849154030784124230538686755644782549780828712969583713908589719417757900844883531560890848020590954954793410453409234420259562689528021767333137781181607932904361688992904518808901896546981704084575423831859907571538584543709279760679943707444960150727142294100111123170305510969880747264559498891040525186326358942047665218400256373719499817357816847258641878228999702996026278207094181300175614341563927275956375309323097790787671330806884881497817728188631341987942951164553275142944005711652556869631399443395810204185690748824519962388120257569090207582159107371005158365091223088758368385989599898488764017405483381429665928817725168497036474366197079400523500776193773469174105645611270451835634703332958437458993112996645110373305234133415838511988535705362156833631104405834196598030017905533020030510806630171045868743108889578319770607380942755624292380258468272223875091234045722561354226380334170914494890156005998321855292861443427354004474363852559041724452099275384275836050914501261732707373183899246351616178485987680728178434624226467975985808428863448542872800589351936368803802793202867743007382834103804794919672660522475730344480431937199056876321818259128792744997604603848865750440388133017378341868118310535461913332650261479710848855600973460754985787061263719537923735277056818135174325824526025872154546873846187158597470519977708378281968191708652039451294313842959870890602773001141174770180260842036934417192255749900921985415719176758837716801014054066020935756145212047563280350762261157197539227325410977155371465034128850073429970052355776966305084731324790702327467066085595970764240062074114177070307874911754229659889957219593544244231236948664708677091919058218147291319718710937570763740740520373570610066836241166328512827774149545290419746000995121736013220040926798325045755973470585797146563041047814401876454948593293788004147422598376834244171514069224347741151781214663826259087069803649520938642909451695608584054323865980759660398810094423996058321882151710977645928629958084598991334530741102661487937224318792900864090302738684187536020342384640954800271225012417386088553660534725117628147406197036792646652095538484802461049792152250409715625341996541928458917267783482973893538726570264342680679147220244335039510409276442239599792679773439151379091184392190791229752253731053640817930212639099305386251095903905836880759820170483136137044602562414494011662055570771291273415835537030467847462612644854227470926162325900372996090860722134473796724351723205327451172764718982584922255924268414495457829267921082165955451211599593857826203744120873293233778921715250734094569776348175116075104935584491095739623781938432477434120655549525298983124876486189233496051537748347866762952222061540627901031319371192608662848757423029255880594190154144936206793127131657699912532946923746505972960686982152908799640437503090970404162543582544502492682062523773728104085800097355425299199351243265568586943436478894179600188030802749164430903847262777098073158231875373265385388469321952199236012930095041859980424930360698111201632656192963425195342214785597577015366622730499802510999162438350153747124219521755004374446699475229419436852637949871798677574694522824131400766950565155708556508624192453735860311383813594651571291968713837333152031575223309261049782865650319482132046783201798674027874932380657745395618407948575878588089102815490265445302543142737760019445022676807943771450196513429396794173215457296569650593447431968729040080477363555443080341300797921791709111135458446822881314337577312771158624195316307940960144877268885300452520079196051245357191689341172146126760062683333079268794687046968999080419491821535856814636632890756434406982864260475868333165562969334044000922802187515139302315141156858372496660879938828548720220390780826129351976441946356488049653675287446742700923969385852772011203541162405778854081131315514306364016874642088826234174001457451551938127132743218339801636311907360349759858051377493486191015248988076932432141412741776338783418962192077497096673567584873575215694067506041453013318421426635993092466475269868967455530431545003657362166184673363672377022139055018358255422714795611497074597717734284301124089943893142620262288668356212825377192575267484354746646060173694811129392341762750821810501371383486759745720914792540303575355798539749717425721460155067145683750544371383379381263596833702124139788671745842232605537713551131980662539781275124310865817615510111405630524819104226427826704315324403750216095159166074767553552614105422514506541578927208109713749081818529167370808910565026870369487020204209052112802094140422074444932045968218956638391030586536659312060959729862015101582258915848958075528864047282645654551712300544859773777253647090799722678639455374340028781966236000092328436935418152809507669047145723729614609931716793538754389498559285546439086912647630239464402126103458315235051470426707544060171069707885625509031990534172768139059416804047317225167618824745207525759793539546626632379981099221249329318235703200355378241885838014498355432719920394043492255436390847784959086764421491880600547924651773804838204123707062103705425901020472281983338751891576538493829840945290805848493109419398862101807486254414227406334971811716514802931591399033483716566414989773943366950175489873516849201035603867129441174884993105947062624994559232141180574330138233654817756325190939198792956492666297222461753503969566523017030145727751390226745349985608553140663078646692641921623634641283950671520460224152646903872294970691463445380234388152383522623713697332700235065942489291813368099580541756749186991134211247235797697947157664044408954725309832874655162828039804354009721951335676439578662703964458156287995573940200567161456337701489150005180668883729649387251673816957518479314703538447681761744875529118460513385820902846890464451610132983236913734251726061044156601023661646498049805766766513065621592352151497237808007338701781049151469435309055304842306944816885515639994227274323339355343136681274199496717748897595004247676572087418189829625499456167790916119436247534483519948707133351774713827683134303151455684352119487347636513807639709063723665401196437296606825659984091899398465115184427213376245398165254815578157578180937593593783641075183041076327069172622418847789601801186529912409853479753915516587456516076250128958137542591489534895319634845477837925772065015168453931353184279543025687492013648026233730476257672274227684650710771165987690926571793604772815274779020069916353914851852617855766574998183310927761830663832300171540042533753303733260203528849459916006350270825288485783523723692675549264552908048524082905965671639765150491162108725106910535918127360422460438971229463647530230221243443929671038170088958279266610311476743384135913458212057685423105742323761156168740717296079067714253958537474255353737094010370583670746659155660163623125363058127896111271547203200498961349161284094677631208911021771783185953274807434117796853144763228242465662559535871180005151746722698844461128249894395953909566061847005813571283923270948926230021997405664307826717794684322773673776849498382876798548823485260970874690750216534278986739885020870654507457144670375631907488134791233462595803770379359917457468378154622136810114426102814122770039254015121978853955285205908990149786073072405454653478584006552618285811498465866869374513452325235486072871556818938509554483133602730302045553895863891611416777939762125556671948208079497679167941793258302339067198861605984589526882470599684630910632289320101554144490941627344354507419345381092100266121353990540504197135552326099194102613972831618750371249290629039495072903638484377932989345704725810800623221854473993235595039538836799725796210917127855841135301263704695340481767623231973423146126761893343316371102908608061369908456277304501100704919622611353615241549775298502947661546298671513153983371900633303887883051522004979661644755686065976473105079466613512323441770924361610839151434350060349875430943471587763906757293363840206964536924332307712965659880277070457309316667578163459827836609832507519148573302211582809584747308315991012555500015628973278637679353367480172339168524362237942385926404480398044874330899913456334899440978125308509440094181846824012263186245986300561739928220056127412866015845545843893381944443673170663253684277268138407635987957180932060348598890140607507298189316333963424931692469406431738501933361262754339970252334046180851651369236976032677330499502122753110973909432971434331173790621814327203802279430888687455774958130622726894496936749406207393376215347826430542018826617558142055732455119378314597355665108730281377602230692647094698277524839385975150172680933561379670981402120387468866410090075642486047607575180660138587741474472611890853253731595285664563184408566823607981979331529619929777818840233362392178970817289530693268506125039710913749582660142605510704557287598568141703849587245471656164081938825122144985536045627719473654444903331589529754875645988865595763548727957209442525100702445833118407719862314394788980508594041822468049872782062979771897040037343708933831211231521006281599904764211290910408956809309819982502816889820401747776029957648593033476077657569228514216485452850223882229331765105438334276101926289428913979451734374837631381065847091370599812443585682585813831499274149055596225548621660965344823980951218275250448202309660158717478989989570789149751523029440525040871212159165300644401658509862085571599514832602676481387228833672857351267136325704838704531896254668588045335914168347534457934736367806288344343516676257023917016895462861712629627981785947584862739761057402086035662925669628466768179649609751180579910713277062676459311789021725564878603541573809340813044539636844498014548638374139697213358340905972695074371853698775888328254736513020824209666821027314314072755513281020608522061754174097967726167291279951897027497959999084849528080030302343098514864130069510996283480229639453422565398148939341370810699063322082804300137963600786990747739817987890177289993554331900674730300655526673750784734379981130801396506950144027522140516214009202197567327180387065382770658105213337242685958972588426994282046469658627667328627496089164260523459389343193718633178253460886024489773158013706475013872095520295291961236607203698856399379890561033923503560883865751801174350626926262836898439860803434021738832123623048824694112716073011697033198580606185609413296332996029352750648762983863907846003574020146256063597520228225303668098811650844316178560798233686641771994391914039257911497452898962469367984477869359652758229971352070129991556443359669733140362303963085803380728030966698468580722335278841788263929107856979680243358147890310162206862929426004111239135530563392955131541607638453962545424924500225145016534496381306099797577025946919800872250333812578252329245379286739178969202504116401141346934261416764509166700370363517166460120878695711109207158850803871879485271917932079350263580603794257954333864976695705928505530111118007863636832648135609961023753161696083024875561650930936695183678195401153790954995633571545982352676919146397016173035332492848960915899728701012740033479665979679954979470560106690513009405666891047605942894923975064829509089520756664887964610742582706733095433082764953239387404492852462707900981434389143495995467635186528564321279333201007115556110617082402286998904994886545986342853089956588378001409672251634791416456307967482299318946561304480184443376770328595979388097337865501139934993328164328548926211143836973614650696105584227083961018780999578042261900400328460669857603022870757770041921015554720999104813303702156967122264870824594859626494577241741058602848959683545079661161326476598286278230105211556671260963431660615365938784983959385222584764408663152574334364620646827844181620196501847825170235587984376273690661960852523168194742333166634435218445572292694987659757993185518280522369661524109314129237494289251381327051062297827658201789899006203593614541057833165769070963302680731630625177825125672735480286389712567611934249694914223790061638859798426493505344149427878732443828760999907889914342986002796938906991230195053558425206018417510737161501133431647060906682387387594881633381880683178989491592064035542943329226480458436136476028784840502763389106470049525181566656126629447521704220341754256977878413108292810887773852584121289560340120625344010572391735743603295742953862428623344017874262480972178681918354871490995498947038411154602789705427257364742516380310941213754199874651421485731685999149467653567745823604121421073818239845303835230550152783788172800637714545043381574841220807839374038483162465081704849260328861048938688231935546521516824750569471357159108371028302324293714291069149384317528832209312926411743276468236554478801117262715803930205859263001945633238671926408573282070613544179553821029895170784526203394659828014808857591539508080059899400632782966354285572922448976924819736449268581746553616944883231413027032807574779949874923315662216680419198295278142776933013139719835748144309981074419177562836089002901926311594663063705665142345169529036722272209794617134070899119315143665045545747358367143885436820788822552123308873838138676126151827980763692366348363910147794764751960994130367618971033799089443094910141723798007849942473888332469726296411338982905181782392604350010409113555697941022887571273980421571394682478958916797675622106834562575513424242309803518798027290278451295385203911523408862089520396299297330676068308667647592579252963372538031818146517988088872711652497909458982791524009285375045208534608107180159586328752149270089103610222235400973305803302459806114757377142980873763628759367163872125740169744548592724198692454343284682795029033104029079350776995759851987556945110392589327888950571115426768253413631872675697962238025373467857036552243756853379975414868749932557075387079996645075366747495397881333946310794018374526304677122181745658120953829076181889895758868773049907202114686356706790264094541724835169165346421054875963996430200152589737080501498464678096500406818396558571509528943148816798344162123512590310990864116555825911926603149728862492563877639461242432186871229545703954559086059249109759205156596055365304748381661282912034955714842946285420805801470501566664798846120551685623085768028846614352608887951893410936472621088910812449460417161256073332927490778683288899888365368045855209961961273390523500267920561679087013289983824304808206107549543756828216133197276062532621319836528082722650678235089044081325256433158389267866038211998538266314543473324900395001009912034431339238337285045218220863255922549613021850586393166027189665203221193103377853050806767829607005268776882538581498496465993807397452186514905121936387201350163451582137827294230188066571920749593575507371819842377129699820750522157973322970215370007455908555826298994067823055799629496459621950968098233956021981532489058517878428796245220724497420973456441858600360681425778419142961198880433966009548357536988050709332643650344879094228009901183816976546161008950717412388075071903943364902873495799377549944886520039590454297373783233171355509818656680353201188577350408233971907530279087185028755202458381338260633629167968892843256817815466335167110663263114094533295697013681220830600764373095448287561784169213627481067515950815799155865348018611848385926374576741911867436615436268246509548131821641986889236199993064234029391284116010367023886674425924891849121389803769942574097404194581594785214740121003544599082715592432032412903746700868461856023382539402806339023432394151934749800270837953264281728241413572844481216861935050088405865242360241591410340642287028645108658964372828386013200244684808015641993430540172900230478790597861857125629319177078659780632526116986026004965090095853446575047544002815964218013734743263446606705867968492873788324383387179521189207934630957338342010252101313632357576713444640496899014346502980032428269486245264862116963830574201844226233106794859782935693041466699191176954934806446176025676555178414589777538812263111273469474253676353983333495107386299008632947799824238720294166464900328970260478148118589695622230470694101384796593334562754210317736399257041791003969177095321842677360192130195820874147798497951345201987166955636261082658817612927909538033109884530087218972343464280996269870475683402260618838386101091670405653958949023944915138395068458098855019993811891272096938111072651143672900526813108215974536309172143851099404860074522880480628343714371495188297518009441880033895034564290088385755800854280078874996829216797638365896407382084219854632512988978320375857147815018575614531018830666980492724906547363516433140408042054985489528990004008662801721577181590006949507872268680523278901111914141126254317290855703353436237513186833294730573074407286944881308976869557975597492379426296627680884310737912816380111806983028932982922297662554805370773054099962493064488331299312707672279559833250983135328329635166672897679532437298503846774581553003156367600364298130687783571700580667198102566288788684155330950206598832785732628322259098389199776641584405808019039178647096649399999513864835513899377067252895834164695865687199227460931901558179404018373448555577383284994692669149753925645490857109032821362162091773234973757340998770650843667753783389785422374032610635449418673110248686241953388938378060159083097519628517820200491593637888377422179232962507726749213461270310815414992584162196446000423039605543574591883124124060535790212530956750696935323837290321625003491013690705521393394870184302693770577407343367405142510712915112192978521542539643550064833858295068959638382518315261826536708292033063924667692525707704466701816320692206651673618777866126226519253289058127754185034548584793864138236482418588946250924502528759243747339495697663143728896874492951742066084066624647941643369833408098564620728168658343507334883940945144079062409628511935032653406193387509169556983647570783160540092636588007959224122269575327260889612741158157284091739180654744779733986933186026181094051534952827540182791852672087474578499557578650677250712294007394050820558831309386727386533765780072040573990331727086109562720545689980696741286577819124421392448331582873576794717461739031290537561492142857351528596511008380857890065277876023754360445949502752190370950162691547312579381950103005285747054684197634458776411687412511899523180548147579239626122073741870202429426929340704092794766147515555887292714598449462460398991429286385724164004083502848860895548190091383021984755287596666053163116018871063586341187501571403477316070623880294742069569436991679985562616258156161048713909082210815971597779579084124386666034036312578550609149610979709620545692582966128838121002012760105930570398726430029886591778855201006988877040485215108514759543109906215675684129138460117368665152545533038016064077919613939501324667257026130809440613635998335300522630016212720593152376281245871423980984253371309533478969579800053811803797807497272496618457053922835954575156030530328902332860689164758673411063864343717598532905868518829008531732616272343171100836540799024223081287998370651610153795845142142160814468441883487161327641851743002614249347119632273634071617037360569870855088192948868425735678965735739068184128673923133318820163687058096689700999183874556109287317050676625180697426442282631051839350548145693711440159540703176611125520647035355130961484205412755870193845910072029625494199284485884638099768188838177062062246368689936023860408133690083976010687732078332239743380505382390216615313007715440859659480578266169375581956558446046735001621534537473176097785321472352521288391295736619982268197015432446318428646092572014568725309598739291964037029510336724545111280483739222713164193349876356302893731908039744279310154828229683368982509685627045811444197407683982085853530542475909254951815786412304313336685281779298455892968935802823932492695009576117257132166241315426790549383866460348537745213408853403819549815198654570730059419502128993929437069826824530568031002585145916452029452002569434112628455014656632880681294417592640130580293524829772581858007012759460985120725937800963742946737597554676618169617247958446860247528796031450166186251634272207768777613510152527110011772519655070237566833377174212678394443498080134720564604197960237244862289501767096911580999983823318576704912590494587442078054230684879436373401913370619291982279319257471966159274435196532247923052052810486823930164199209484105200537095299365117380920733296067657247771244206256489080273759394030441891115147187370217129859843027852271980257191067736041513193000555283523432198637741741789137717587206820072431069781900617361746833021885644472318885678745550649948502951718487415887859908835394756385788644609603557865864239793256781935701262580234829797950934321612147096862940380609532620288625909617349733004524657200653834545327010288780244127405588403622121711717697011543118948293350352614414052137776635460086559104539616707625942748904852493905199235327542058188185203961023672283737795852587752827283906034914642467530931959081864524773888375106162398733707360705624950287887796788212969072041350998547584230912575699460477980411273932164602673269731428558676133075581557363866963770252112324849366624123127551321988726841722839464847995635565243150039921693943534723163154011349328054114867036070709315058011412990202021365937496911313536542939830848441633558658699093707218588459311506706339661506042321585815339613661910697563125985487106815153594175272655659738722467078929644852529513457606852098355178430284902647020343656466746173759644795934491370817311216313770928790056037688752555184301082322676527872808108228670321940962001112170979194914423946664271184883481207651508664609714740262583811587964820310266695010662650253564388483909388342363022419006200909724992694016566598712225946964736516507675800433772887319416444795553575043117271189870159849999992159192910933983435728183748548792393282777031950481358088028696962170738452093789778987735002960120764678596329898330254745980546320156152520076767544145199477228869770747714323083109455272906346007236796579394289129671157137877323599968648515190718023228983026920969192311665390078700584222290525660253466955377445508719700321411933832907148001764175594965085265700264928101724940383328957770282937766178031769437268698249662028923401891687904717084048865099026255195808237304671862797524297229347804036626377750582223289491351207096057081023784059691399035803156625008806120479219419507843678854000055650684741408927070355760977298949420279775600317314518157481608446754148232413923256053284907262228786219455205644933772397174041208289602601205500450809933040039887371917369659858162875893622958324853875900393388539470713692832519893086606237015726110787993142591767498099937405551331462674988048008418523511927691593469207071792911901026411883945881758598301495775187866913928684830306804299719974344579022274271071013776041092391869563921319095944642668473068768381616436145742553268183692077284256914469808953917255248866869582958762255853600663558625417011019802508134260599833651450122893054507464930800151825931778673662289613558811131912302957594569083561972738431919354711653211622669767069013854695166493035639502406049439206286480605887231715929836298183308943885869051267862269568017746325273389890591332539704544593378225813820123194406462888020270922742142344454274971345767135302619610088715517165872353611259013845563471876862307669679852738848504708954443803975773560501328945680433291859836422702050999927724193246546034004991079208390934519911211331500866508677271708947647621431498087224674271020148432078254479919279274769488016536036555465647166587526582369465477020212620537202183768767462054662717478551105821341283149020617097872724706643366581162393543919494739033315501134205915463189290053105882926285407912526562312035791810377837681929699478823074380140556614182476876214208340498808429405317011693481705715505685817359455463511803771266864386915230386796671486276182129244115266271972208832442818489675906902507831987173396032597239004230290740881161862847178525226385683500369195087717962965094596612450434265883409810158764100864753513597175822664327179862211309787391737357769698045322542275996888239231604335334328039152671893965663695890226590653138020408991919511276762214151116395124427054542271549521988814186797738157876993844896276918067867405021637115333450535503573572334210171942150897256157142958736974597898957764833472727571794262378113473933422256443177254196176561639150308306191329169666056488676915317014973598632383777250536731707114118305636814673950920780894131491432850564079362369265596193648954509152498999385792248310385051225491231661837440870098966308468835520185919715462442715324773675616366830960916182550528181522669212802560102777699208650985555154720194716263339158882620631243430664548219547690326339484329730039096659303570120931057032466572789993740720533344198686243323701540687795269242136760281392576367367920368084550046198256660206628595904960840562712921783535713884823339626479356056018292012363266794343811535322361806392855387259223158882635158126199843823895550959018680628411182638548107142830276400665541017569586031837298751208717435072422654476271048020201262545104358573821966407409974085572092333324386008601474225424844377331205163555643674658894161967909444357929407933885310335597808154249788921704664665540332219392238002340590077819099342145406321660552192020538410209382055550035804952251619047238759385012629531618664398062826401058369656805032182887115536312596350148292897831552162360246920193266073639555158055843088497683235360837102872044125063693314250170056092807038637531309506167192640447163721085306722663035898083195284488487733158715135970879290634313817436604330772889858442250493222083764676182936406934807892215532814021276355912622783939976564824963629658444719478798428257214431255507874685135673534313348957127129131309202126657570453289756216843209717705563309408559311978038115433626331111858345782980892576904451115956570763793621227698720655354493111331136740677114975857772899242308518700462534765743796350641544645834116382119326756926993756317748128629850670798272699795866420910545342809290872603992506449804174642045029329145611277524980566683098679711707529355628243032541542196406953985505450092452929722479601843237796485898928480892149704289230831059752110268416310398191980736865863621184144723252977685343665737093408388983566366877463372860306256930005661192833800044248665120375185299925425246448918773211285953219902297625632951864362378336237602564485394031507732689674991930172669166847572018862698433000500542847403805888549259257022596683199866977686656674473890435741693172395289861500293613218753160110597313711909276227366844878257645250000710238049532159189101102023188181117626093645481410603823325191355280686048337061046020436454861879866635973601055828128862195363277692327989459813473364851493089428743147561166367730225548386315131179182081016059449759781272039155513816115513438892599797527298324596778904950587105771286393338450757772758228346117786980437141426907934731376767274267210628337063211282372667303064702314113554878533827553858382109244140647530445212175346920545872766381315983527758406560450642114013268740185359629612558262303620760373441701423631732313030460847085184287264008692524875512103018584065137760632819511186359456194758530120275022076982251517400560611625493162477936841652483318945505318373310000943926173976536531303606701988773066034310738748228792805160371867296872817419235968677592064326850254715714833168021009864842465468814851178473421562546236782503822017083362867682299628984681440888318196992338515923271398368907785425196565060648198684795617016534152623637463559898754350192708190913737435978388008804391925135819164474382054991172399971380466174937223863819034694652302728531979814148144170118075786462994176056310270688970962496384546807294171046058175371424286052346803994469550761658898953905070260419756532489561931468076496543352381757980667831067860153214511975935919534056012818717412896115402568769223002381519032197977105125608862443840380191108176715118360651598818909584248005931420467504712149889168181291240819861020946326838905030192514738576853334879478517880129712207191197649473592910207702346098336233999744746924145350403102951215804485082783635779284905461889684383707847333601020592676635690809482284286130966998171249423666765607089633490122861370683480606123092864825615408867352979783974498363085522401691722017377204186143769791309174903578255675108948800511382556294571814148428533872692492471725522966645431300153508246345187109308818318720157870791770958354411865006649421676552147096013985573992967169333867818290402742724748614558164372890038911444960408947110330634224288044594370386658937892225981960138557612231856636199835655295850829908885891781109953174694028662262274850392326035617461291517877407868761581727309702721779446114123449978517185306213927769401207683810564387306895689335759812225061400402480140935799851144866137629002146974593948562095928145512829625111223960385970552460975791978542610798010708256296083878665365081514081599512418264315308687456598488420681276792804109058340157245765809852829745267166737520914050076274426426476505520846935177466062092686654877887291308997061483128058121255463965696375401962970812593147489044988592027054564399664099250208509857918832922476738035424880827768005184115451076087446028915128206614406728374217653278526279531931433617087736878560959775249359671421492670445277489871537249493453649231132916889595196547514788889674902486774945250284878162124411537656440829188355819668191247285409272977315988005221126134243215385320844847473898678783919946681941403617228592627013199142812250996680332103524942479387136243887978062450205268282559165345859537211193111966633867269233000909816849384262934160155896432715177380880322412115101000717379927267087392926235375267231967390106590292800267962052574331258892432840332897034366115206459337153175667382725608576840432478299248582265317741714183455215068512367922303101555428004207700985428637821134065282406597164313454909656855438846107510701918869926971111030519252935816330052996449898272947637447156859932738265523614015212053213904398356319811124312684773880499074084027705901217536593978794508430213659302323900631794607447710834895827961640030187265263230364461836268103038655545573901622484049192838422962217927550639048310370612613803925734301019148413786189822096602471102689413049044075977226177613897257720834623555684271371639104030832944692755060656720283885557526513663203432697292313891859480957223723576809770901027251398489090524789970916758309479356766395990401045153575287439369963417638806380924274035773390479532771520047002764235499846193001574116768528520325072370106580257232683621194212149509277521757374106783759008348661180504407155738254247440972582390824823693264419120660833807071659467423682646830269983884639755384601841326981766089427700486942988427254000568372710275553816916478402634805347816608654607758864688340218640267606011389670974539165882247602684612753433029363296939076586285340925081800769236083486379481641002663141730699968578041280681287939695700630942982988094368689029693875524733147017614587801342626702905463925235156524878252051228667311692199711434863415056630866526155432517554186307120688346965885502425393379631807733727912974798505176366135724940575951424987011807262513413267038035322228131430605185218501317610188411090369205474545946311444401776345557147151377342925573011611281272038527609791934532999130500030615051547621650344206053468227787126434129104965560956984554106682641859447031357451306368479573650596133658486716598412150319284022686252179807511058381472129455131705076641158012959123134360189664868556942216237997073040613886880216318921694244251747768346050058693586199657067641360662483639988854511064681257993357975891032712765094981259044292782506907963964577769067066683119700891298140349485333776743952463759718398198320375901760784622885691114647155030028526696988418226955224959745110215238051562604485983923908133384354975420763589476017934133118924824061921401128064651113652934819306154624580068852572053114317996668431522270681591245971209597826663483496919681265262329467158910760704552900244291223312601590627344166221894825029443783691647431286824515358027444898696936289212261075873100551316447551159951440465139792218533403912089117599502049909417622232525657367308882933159024273478788665700631081891159791550435423784847632066549951180470502563835577373962870440538415471274769762916516018673800858570596440699552528422420543993393927153126167994394536824982274183170179420252101713119500002564829597029765323303025388669449786975825965197348738158970274759734799519909315686578485774211130744396553983503533168726686342332675143354087607517335546373419983390036002963833450705780611944923486077616809222521840709741229850721799143483094602884005713625868263180058361571639762084640007586477795319246516482574507494259428885253376891180607336760995036996501242438127166398954727185632027173326791218935933725514544250351662527242736933260230894569935213407144033161609644557991516132991922793583855358341360928421190899847512412795931177694101301559920424010486638449545267008499357291654544988834841538908698880686620226860662680798504440701086055631849229422810320963501478299107726475069851265828253514194677751408228967794879845569031711338937162540854018067248974765885996996917609190541068073654623394903183027998516291909676676229293709561279428836969788943873615620238357362810571063122112482431987403883485404715399949993260571948577816712728333687078317528211392857012809108633890052452855523144276578634789888084469112563807216676274592801120369699146271968454603021982308259940207583659408856058831901581064547214080985371694046850875016272439159720110868379169342968694206797600922808940746335772744983956024583551967314243127156951149925147350621090616126042387027962597583908001867828577340154375463930919024790315159589065776557860709098891833759314478610511383640375163871340831108077998224379022912800815070224482684846156082040991896829065560638356257982786688131677851138956775245935177236315928611271196402623489919901966528051821378086819261858046616875099944252609976946597634999772591741212687637513736302321598726267128095400003268079133378078824817732381434001475628886464934103958838920346028895763952777291232638407218919794636787880116915948838849487124123056241612571443800280917469948937551998145303173851380722656036883135973270715816631251394731716855333721560843381858774038540474483170849734515528769436131820956972743269568781928484768945041145414598608619268712368193969495114260816249420639559939046087467459017185107011921623212252579189126708013368539074943471014515581582988123237104716429547939122012930319880180375174367325586042612420400788985778754350443476386600655499250044570237836140803699307239431487788761485434651186449138036978919555641933737450353777120639541934131893099261301223564232299632016463476775604193539473887768639824696218526337935128327388498143811398769235079185122973782081781967352582978928958668198490221093258522749639262531310066394168925733370011087743008446291666393496008242319259524694577419328790994915117022381286074590611096469554378500126153159177909141868955650238332199851735357090511864281455426972932629250228179976874939703824499545763955499618268617902186777311600431426115711241428921219297414508122416715206033588057976140401270680750909446679861795170673683194599995256642448537917688380616568264245199905857375735998872172375533561911613582228850113272305216647620392949916168471138611160101377599611972270369535829261223138958233520242630377400877177766392619160634322200615963011520155308208271633277366918575255882831921053673403178614547715651123711944568546654599935347218319530707571011563011295825395817955699355564757847110564304872220089125997558551906787190898071644077700426707587153400066806576699252010517411744488689354872662064114335529817880474213024693614277306867572610626081327054187071707369399070284952502977907578822797753508126274922323269741528288619056514037832940739755963419130478168815912734593991927259421661712205023241444720314123279979092964116637929767343268353708244444886460558584911478867911960496632867391035846007772492564530149011368171050063126962631150648841990147181751148222592845150272170578744349314001495712495086847118619446532538170867620157389588979200972350222918777284924741521698559136899735364717017776040490351781037508759265349207105541345235431358695829560915476747202560480053887618453299292507012842199887619282384440623037723669566735739402634731542129367710446915173881979497398429965863585351371751784795081076012215177538600061941446440190466670869449730658551452379634222542440571126893329987806361210606756080558862979249263518030265662835752815082430971979476139355982485407392158539774020037188493345538429693155351879609838735658960858407994262101741059715651440083209781636667005871573470606570060748966756379186904516202295844369155625161733700426126109617013483194765293122131891750617914161437776665890288239830477709406417240248999308492957534779700013813921056258579747756597154778618273555918436465585759676023074884526472635791312051336025385541762809213276417354420415373299580522553311871988678355236229512226541646919806091964990074349522042592438208458683331356969003092333167717601305899954078750505785421061192450696285389093354171275767296328313658699338680845750274290341736168212420495626504921702456149493072230650433429021920910726667883071005990325590610047026925621482734986933495407125369575644450508977271477446122599809308184980583951342752219594066244963201321581650252879290219266807656100476232341579226040825795698072061773663345428324027312626524085744728863338189188220470327837350756505819778703116136839655666027717920307517758370064771424364089562333408134025713947135268679381675013868837843651986601613306851233674515859064873534887788997655788380951955376525804436107315150544888038466835141947881385521039898345585564111925002633404940966756213954822814634345762021025057946107416617116152212663274765698062319042228338705239543335564624324289642988294373486543275980791862199764668881515936744381895570052479627723199195300970181297532541865164520549719706995039623410283053597081611255699084523566881775933729033639751395670234665764946064143019712684973116188462350898548663630544055604584489584125052450528409053881289391225566316732086415207893860110997691095808127816019738609972830382072183527665536446945491136471445616857503340175766546080971585161409144131746822473802824920423101274834331068262610062934397928575490671146222929306640342908783489539940900436964343647929953291588815995131131529655980983521456589536470331094323662475829808502731677269605757235123406671416715073670006069423495203902184125604698080999180079790672458773904462013000914169753463964573195548461969453012286714270741359764475578600413732844939326903212596685899586846483618707379570388946439206698365491653765105351510102866324373025537573297518455731262641860283036447488058621130302211305588716328848109998571823442664587893494898754021020410546217106419074098198982314055430440921120094994730114470499974901081163112404364407149840826824202598699332291401198660457675011568698846068203988629477102982049596562135196850067055633967724549129350783297083034230578750258584527420150879486771983884965116713995171100947882216306370869044614427985857880927147432941141235775328681435196777916656154482858623445668259645244400405178136070861151747733184626323031466653602973801139123098086918297491780972467738530305852634303090669140095488176074609645372484211759939797267102550600612240036105774586324693755570434344654265379958285258686368770989512284486876359702418436674864338741766637293708194030698961299681431937404964148880209802698076828702413451489037318548307941471497336402000990699657434499781263596897046460860618763825608661590054829001084264360196513800801596808918244677712613798096592236745663467836559053424916369892545577459183897532078298831290436934461296335758634790299967058522260634098489280569174061351211918816617176419703478637186892865702498255537447500949100958523816332072475830551080461850488424649422652741247935410742846779859104186739265147748220381261506917477844173688661003507236099246585820948630792909966756583642199023717424163318931098832180037579680365612705930588409170031468680779473364861447980646715034830184045231450096842367495650874525428906738189474475252848028728524696510641693879195959312483941078499828441614371788303035394691098348917649104221035420691110849037703104160094778129162389961114316605508037033127607519245564039503545974277189591358124578799446152826717862725598350274252809689373407906860081424690445045637815930772550456735020874598140810434630760279328293250852363783875220977585436111017977430881088504500169965805349088407420279476547020246631370705328674037900535641363336812245220297134616608055102778170314601921880582594297367531910976986672859789019001248437016767491929406051841319267365032006962930295309625591194684309146523462260965635635178978908115611180594154933335072406813391714661387725110825552678143644750096875614870450272476262901137261441338643327454679865484624257887835087359301971053843676688093241875564869114980113559076505516499728280917584151798372094944264388207574951616349173365719987097514829227294816110561300157938325418001010638651280020118125426631556537598337557639716280718595595319074862048315493553581436273646128766602041435421126630379159799600384109841767024400426396177557272229088499348576348091644923818971665113631893944486905470645781492259732144558569882878596642792451348486752415612417851453589179389348248240425844172459210724333056465690754250851150146703527270136534114341821817848788972351072831502274815159111472774886117387804548972800982220256252946298224171165568051367007223646354858602577872606740352083156157719121338795007980935439298817755441857607941688092017245700728864724851308767151607223450577034823313038769411783007244853640975079883769800117023198473254622830377439509415580194591720147326651720957503222342171922790000714982537752696630260386724983486592098754551450555179975983942765754949698920724601500224419641014409409380919993822368582558100296205067666453547119016031324698628877567868916721445405620075035576485090175191768428330758878829506991755104763839906643702203793685888286331417702588996562777386891596764763066941180820297057913157990394662486080247060905321388531319373459825372375676813691741962842610257883653504882243546723154016070037474092234206850542182578751385762700417070444317620542408697237345427723634451289495823004834639523709127616644331872570409417782380193835225949355681795702387984130571258017158843580819442825401926055393539061348403546838730652008641263006271856489714506398103567041111415786699073024704473649064322847593047926793767478088057349098511774308156938846200381526413128309611594711117978021527987274134564427190186724356227981665990555058636802926354184583524918301834083206208931693587044732679287130799491119983258120224279851919943472021270845060187750081936277646238903096550254164620376463572204439571028840394165148427156635023914339959261405339551871619211300123969081855251347287254495637806714406739186301155408703142910905494263609339604635981484037642699777740050532465602005936156519674686981233714306661522005566853822477551789466010707059244054244354811381820384902442073620930475052023777955686886883101782565046331749591740301999424892976160903231122239621852402280989390338494133639017080814745209012748453541986057615878272286136711955699294775908078899920820339886361059435938639648572074765054187264199103776802881374629987991699064520959363548976221605516303983017439975411202352465884134523787245355712717840175974116651710734356205717074169134219924699778672119617122174337892431729647405002422521076905856955924406248454958973372546085270327719635481782687087568626264023861441444914311145427632693203629119712102340188003451354906011149571111614894364422006616036569743163827862158372642015081700968268241488699381210863380299991443944804557301438850120857563273332799079109848877798791016303557823920087980229320042762003492606438945434898444582754521539222638825972296316290739424382922497970181628785315536392645476182519012878981957722916778257193988360347049477519249910841104729066124807431292778319092938423529339279022594996547319207096166607737735874078141687962375319262429597751664229760496551402203664956729419259991407832263871541399450056237578551302470379031036315130867174452362850707376223967885853595571950130925749182786036789185094710038468279318122664432412881714352717301292053053758115411739073752923667647847506041967985290450393423352036403907259736883516121876598254436175393848972587237460009027288294162416130549344978607150093887590744723465064981467465212443632264012717726226731616480182728841112939141130018209341956325176158221629394462747408267221176989969942643039858406214320436600728026311809417259469014980632168423606503764215682893413219394254815912330666556899281264720557177443225994947802952995322797250262041256772323146720606239159578793843406483314419012490359405295982744455154876795674544186988544476766254265115981950805043364619218031363102948924399165297259987956405660807063572733865658805565065094216310159692110341374912823029374286037850062059015260808237576515184333833987103363470671593093485918986498477464612339575845147788129600172956108627423732248797766139290957552746347614854847133962906318332005679792340001755378476628379109238499043784815011501938509314195171566071919012547807227341828663765076521389146786633702184678250991610799122768853638103381863593300073036465273499571833619943802787006582076706736059243619372925529879645948974032621079968181785568905445766571932669585846870060785136844447566129579239577559980831352926895205919076173050128165520809360038839043652041295313186376931950373640726145252921844080606240703104805893453225478912552372561339413214595464181508798586033247091792791030906822638133491614802206052036918353660876731684851993216165465202084856657763602439297410456666695619618430145527883753757252384930226257667425416553865512127327106928619808037703445196296728768122271973015712384124516300588182141107216718546117357962040987390685082791374744078228305407898960552519008919849236013874359240621427716005880130979882242370653105524152972673823777996639220433072251494416664804901097408295187322017601545050163157074757573614006962224469941130360797445094669591993189755127285650624018744338153066989400526780300425928206611009765129926439899984879531434531756105198626531087453145995990975755985377756086337306950976228985874219516820584361097240762020812713369257681269079289111314346611116197778514940348532786494052263134897891719735265813517396267336992580433441515087266467114492994603146573068943545428523485825425580877163225103362182057046812028858469443545740446111071791769620407436328567125772362759274197354665200829374417504742759621741677222124974273548432109201608725538111613698207733958210457403036142462896088467042665905783824276692884995088887403461960434258051044823310732240894323601837951590717568516772264561930211965135318654768538404139150614427524017999633072052380901364506779348442296406610252162078337990433460972422471518594723161581065698330988929849493139341452055630136702971751685715976332093338733847903575105699360938552080023859393596717953771174940110836250437044086287646000751944987503653011291041592365372133862286679177889206258245104809321522111629500038895845685823115548038614849470773274853039163113446940466675248771940382865141854243267608396544265612605210543868892960371547233545353517097499542691166463644054219417987846924052822789683107559242979286981235014725004371983011171727709007670994213673402109314941564181844290032202818700588126668745272459929023705567219973826795129741522467981943538913342157254475668189462045034209291984177609148157242035816453785485345035955121593511875299683961591569654591071822573020001375538428963428488196112983740004261711880660580396399787142774902005267720470734904071602425875994531589496276638891884606270636869321824624892915737398019461259520762647515691942875184246888997433220262185928821450349500113434770385488638800904445365653223320077186764637849169521368238225205233800171529930540922391785393995064159676053041269880842338032926512500220531110252364438561320546504501788992116619835852635300109577081841956881942834409147051490504504662547605068082194120384125449894542784826810798026076801417430749498802161789271121571298030753117487625104077405998795862260525997853579643389999414711394133584228547984101131691108752245161360579368958749282524954360460215680470651679742428649824112264225784575845997176592217310605491719865796157379536199642374371797267094304888257813922700518218900765728195560860093154183191917535752561974877368821814351551452226640840139424342843851432728925581691079642298123397260760699579215414372968766046054305786432623130903885692328635530867634290304176939718141338441330829193668222916447526902887904203648408272806438318238149407616998782312976079886985318774140046094378502920746343075411528218492660339712920435773466100253287159576549675092436296286488620047448202476958987751752746631281807138595993182223536880999471368003459267089802624326998504142001909997131459957673192443369729198078803492182112925900154971696830462143142711595085711176461107212941487992094582671169670580979208002989613771089716339940257959242119326589393191087856964571158571935653270964637001194683183816757159477275489626171358260580205672489475648870223414652398827012685130428542187764384709966162776852930896626870804870119318171808907491956988490934575995504543174817095891157661459598598389445550533533445452373531153963748395091198611399002224073768790497164205055642809484784040749283701065293832481843515925327824210526767727417463424653799270497717447884909829834569599619499406092830845754042445789720940476836811527912965983968098421214296776405849222457399375523099088680337754051507697416262447129199207838158644806566668399152768944932365057273050708930047338776855494442233637937430038146844414077403248068321742935161367549197688419361206117024297127335214184739352345481262173071413542251056349885436295124677387249922489043694768704468785206748075570222118501142540448882683995676782274034338367799140316470213550954298625022947544214963086057292335893563806314778431972930230053296406692134289017610493545135376023401889860521781033900645669402722604637869737237954666613842842970825030166599973349988625753770153753377648500416796868633872596621007835165291236095891959643492786625026770594571530910030261829111915110082906854522022156712485694151879272828421080017323085394096889661787852771735894067253298500386528987383753852119734079080004953548123405788372951805192613264879408462265166404004013634964062878010794549169352580729133094000050017134889082927687189111329832302176935943543701820121817860080891089391047951306488102463925210971041563902622272841056975411042859624756197356224404887410360648094799423389313712462976326799466897918618614598330792882075326993133253035231994254693411067449570663551892725624929733639772344224411866799565200925165273707789696429418365789031358932205196524969695481021315031187908680797639911287804455938776999433297815604855817010680220815025206490142910641692281274512842274083913947187734411355383322374814979210235565332640747041008614284623748590511567716611647397912583816615822705963063143033227220468880389147988047963113000969882396399238449568011707232301561523696898089388873649764439137754269670713594552970182049701039181549751638203662891461984121652106951532815631935182772247269691502374421578648850131411043613304952529764102153791506314419937449821492695410458771015732681352235144928776765767048261911132016641873852423521497828891062493939992405345611775182824339898864924121070543895027201530350780943907682166075836334755411745440867889024345329295321996605626041274024239784937219948339430079659909051731259404242153857306748373478371051253901219883366112315640136222926452447520876594548108003944769061219914134991553591585581579877454410069814494189911137637751372711918056632904356498570441415195985111168004795468267171946347569453345325999086569106573029379249300170958298504109727593727563638361151550516252595685321804606935955841993971517966079165698570982612031626728365401621321830022347000650470327746327054177040829779912935474599246620609963998943290530312898160679381746945709742860740453537349007255095184765208443977153816472397485475393823325799430496172796379636355130322164756270810128622472357429370677358801333667224100119473038859696515911721024468605159660257668474398418383953422305921959660492178038217976516452873023579338410111942309361267267845190961559477583132014727393172695635676619633357475154872870653719029679674158469366295226475860099873644460054546342752380910806484471118327765342432865982402770194258441244253702589351266436451462704890884408316858824538249764825483758681850624008125651947186680974320582274324610476164857566180603388366555152868216322564139248268334496537175306673410214687270907225648811410488541835050231561471609800364810764878773987798772290901705918710436541513285856839998086103615884311111365400188737592739060108394085261910474726836039293260785799939080117606884256322366062221627932936300896322012169867436702097517830497200574021877023951388920910393287564994325552794259890497433920186711706940745677898174779119714000621812666072345981104036820669744016858759205984141340638775521353822196321194886467564565647787455885566237558349454463413529743250062348977528334981396571478485210925452320834017442261956770383564649826857830105060442053339891670332566120365861438893267785836330826533119677793998429644753628606864367128324973977988360198379750592946366988107747089295633257205537093521146696867054298409666381679709742362957198003870683142281288832149838875872641344347270826437602375615434135801410641984170036142575792273754590792559769683113342331352222251522497366365837466532056537541377096426367923140385747100893186008817985449599817796328791028476587618717906720985791058697109381288616888855714246541732819236391281757168687239255796312298261826649143483338144527281829203508548159571708303767618974175467908371364466730350906694413030420590986846499379670028424629585896094210115650125080692932670632979252063157753709142154381062737585733247008415984516812293588385094132459760011317926323315378688815643844340269732168559484385169424052632262924399539331761831077131462194031192750758246625435076295869096044624708833634410298566661748997195266013506394075301274326610412500374596127261245806546568990814338747658668164222780290422483177193698328410773356220852018601949032193569241283077702105265576440578419130716835635881082981853462071681684374639117657008132403160879693277479981024607111063862087548326571764529249108636292821273750136999059870171099312901081709443723621517650729210275573487289973653844072352119297842401850886233580209330077720747900630628205097282446069405447432765401632763247922065456057860124825291282130884486967161755259935885475432508907723006694167391766939771811978150975763016901135440133501363124702477534257934840009422719324727352618771208563228633726579167248134869873201057767726632861955801582883435114470529379336174599762253938993705511342967020161405199267789875813746197964347184397186081356144776424489623565310288101333580686644114020051532001304232748518958773328211273397126184072782496320573005224510553720150770130398020641049544800878965534770305607685943181979509836386058849700380122696850490539399891751979104844714883226742375147905593949802358326951220366665752328458601475134895895667599678299146049645382284485161073775697485741453534599886449416502582403479673074771189180616440515489309264189725993981510999919686172763779843803291016614461700494366263046509196191916011461000449148241061675197602891937732095159696106964921648116486051771387588336975785442430917891910733032622626530440385344953676501929890491829642312826503744639400875368083992980050522981524939361611832325640653770876981937120899873340616990140167236483494153607858758919692045806593457624517808540583821942906784108795381822507415229676063796431237713494461561431619724100151686584488712199434829468688939782562196490633994751267114146921980476935622512886260273798116770422343369902681125291032943906982985087307633156513932720326950594496245199632698579816301247572621284493246558178714484835239301331519904811729780911578689271316636669058291285845529666649165793604237649270653415605552618987405889917607417646216954788091766397067271562613910922740044466797397550646015494112937902224503605145357297925511420770503065359638245573756855597770753602803896507203402689259021619779564595704785728606020798395253165280076966605720840559395580708556567998463208015474511522230283035136988773130752311984363256533560347709150433717734875321075677509603591694075068959364132192476938635368200291237928798295049029964235526629034983954196470855010218063952880342089448737235656015681278283744092286968090321136660415384293746773454098522710538007988537193949270737701296307654503253439871953794993263826332235942946316759438343823075675853006162933524127041111397820990995562478082456087114483306066147989548399851232295380739489564781934039296147574006322135997106477024441763870153635290805283785180153251974560475762832351153911792170391888948909522828488340011261420695551909477925106713218783907377075077027956084503997031683733438107630274669835593406761695018662918869196836243548500435132435246804762190970239735936262482805128040805415246215676307237839484751700341367407235091919414741077448383297210876182152492287782323635036642040667656576392644890935156290634198427012135244622139706660986177729628781714448777696855727189637339981095247002667819168013957629418640672608652699474864514967398668429079978749964288760143824178570924533372543147065086278176967653272020273693353505729834192529129756800198886773151120027185358990481758309617121451994856881162181636097093283295999874261761389302022923311669455253104493468167436852796855923161505854463862910404324213132514398898425025469725050309688622702967152523516929277960716580870214270168300284550499607781740489159561871058825614001751882962364811526703760224921184906117217469297757927327866943773945963470323122736480764880540093888349713658941107889255940490402717698967860216493327848726513431563608250183493396035620440567121394899520694540352080836944259305004803781946761081035608912346574250681776635996919256649983385500956607238896069193446912128413883153527344356086115061744082437631841388393978787131202683464406208014478849910564320095334044468459720244621080279246321157869838659569227901080710402893746918209208912861282608903030041022906705219994699601408279901181485685866573582098888380371471638022350977984596202396957980381806575430538027919078993234678869313569689397074544123881990465262570342685633825374068511558908351046876524265185232785073458019284863029336979288756709856962413280947232975327158242066655116731861518436229081672458514252353655578079533000238608615853110597610521652296612664233964018498627684138120589081765765702283237369693605962176147867913633882759592632814123349057193754921963968492799179772495682542947310532091268600433580919115115553106446425503432706293092102942306293942851137850605278733592137317928229315361190143020563815007932661672241533405413623685741350420995088699883508937133692254933023464990999331680587607797176465364916779355796204598038184479530938388829940769598400885375376788075291627328888161864480027248945632348348102392200555423124168963319086339537721235732581945849191444884591750964542606533862471951740856532823409237464989166612050580627702469283385788270494799128888401442229936713330715506953862099908191088716181491185475368133813049204083389656904966851638158886634548081638810096655734651793783971944741784924081936170460932202478186212797167802333742096449116504472617233548906207859936639323332563572618515605436091414901984366877908812734069678675745204784540085093188580587986401140847870936352939579047842601527690576704969583825804848556305454466291412172714652742241201092046064371584758006302959849758614804106272389031130208325076653711360188147616295596833119041910778884197456187644286586784023356504034554914308637186570134831327627401941463030511741209752174498669488425438270576512514947323087657893635320756590054980680746154162694693849350915963107276892132695700268238791295235671147480711332809788648970960878937414379362573331014873752839687420694458049577589668173638816436515425440981297853679927695763781273602177207139868478973114587883746222470964076660907395216337895620963955531410811459743051734735623188261874994048635669102901485639240401393113456695639936030031699015972315931294418667897074898937068531137207787953020454489574749697381263687808993099798525261714064824391529296536718225929749136167154066713026205989778316266079344682816718135889674384304259107772283371881480237149917544932822997247319937113067569673097664279248256889758315373842582580809331220700266487348168694556632668857806957898178175414821171419677773205143444725634010310222145082140749661457687853478700594345155654135299205007458482194737699561877411155553178431704989808342085925240456122655661822869783188638187419641508282433243448439400577391080588007022824481569397979704962299219390947704229114507542501321721171334423624116557123947511019293005105894770966926058950684914286424255426106338724932749862190616257302492816349290833187631670530872877487158810072955373301439807319522427614749775427372980750021401701118828083187913775347985577156118273889430237393470453177784217262762654922370365302418452621985271249264930370324012631836208344419549601637335985236941808212832525578239684691855028212546181220193565187330102330770513627740198715169686079833446562940904568475231150419797640543115199420382748488775104405549388249870912708555408963143262106164611315809408845027487233635252945952971641975278137136770050024306536932637719306156412949897438354819563695831494471358250341949451782642431157989157013414023247549806992878579905363861650278680367506652052792307350310115157105586596143319280346346150141377165502677087362890821155634937995318012882339738363899422117166716528542657121826908916504915258762212607346661192041659126197987097053549825603500296574051141366376541536418821148575875579217811836857980480265343145120229304847288716283579657606618703665782343255633998422967884048431184811219986864675472450881059722966664702285594021887379277837300238082894980732806090573587924735980096578094252255804549590188635196329312724881706703490146641638092614183394932786941147704120027375783990323097909911251238513399700580956435989155416542871847284146763627594882672149833757424045892812377140316180956703695750003827004604174068406013966314755663364124628743271037947540046229356365431830260224868450997028492798693985863794474824033293624589689637043331188578875497038851844297123165728310171388091509580724520702334490130184952395116202878801581235293537869123221009493294574265092369326001971299964275073361947322945059746039219022088963577166586618731264874096989943898704080965977274704477807451753008572378236527902472014903579624690218006450606577995063547417385518396268773052322890565944470950574765875731086379171278385113904766861942589613883603882862208412145728680698697063976076625871060015387760987645843562856069324934617964680332284080380123693024381118778620073079522650440917366877990198685833501799556611795038807540804018083995788349274378943968404362000840712133675811953212644619196641044008216282973812638207785811791399248543700073296515460971289409768934478547491775307512747094385468541325472680704018703083484605123042801889924415281014309001550776502145012262053916925459269143265984014476219208925068934015064944258891333341390462540027843172379291735361007842201790879883380725025833928676936465449992126295894629080709076986673986911028129071913022394966995443571670549013121812771399481363040925170165950511113267881537652695765077440320408485768134727579715425819856304854983838290747757167825643838094199545311762113115204886199067538530095219450196062818336061629209339462477619209828263231898823762441840898613122139088544330876966548312585412365536100927210037081603621114612260174186821802426644873225043344448785911557220637267128770890141845353841468585462375881630679259595277886968509509646831275383073348964692206820086137497772852564109795050558786510609776773998301763154415510352769965163835252850812979195493276829117393450260763200484599676637473924278313397736819867851581364129444997302237510757314302552473325332377119148069687519619706578272145189452474530803442692837134941541375047095079675966668936941739118636805265319596376037346384487503262543207274519248213456641607687203736205925613763875411265672520862644156074043636392903033757357894521866490066164324440155537220735475219420114046865613939361108286765044396461452729747438284865586650103406621038439531115309126865861034090635193542303888717454665218887949267394439266467156955284463626071486528965104853681706568094810477097515560434450452248654350462001762656009666604934291688702313873716035965103546262237787214311444326606572656369393083217435010108614454590540583757557938679987237771481824015988088285527736434013905424840444440822442197215978638706096880498410311278977437296328799027564421099498180566652811202821787379929164317867092282707970931399971900366664199649771810486618805359491595382897294901897943873506649243038574121008489828929359006227407281069992795983242909022294468828364356306144421038316765578540241570876328078217415485285478653815823217315600440759063843744302091834179508681002360160757878521410457452671530962066814604318261316453484961873442505297177933865545253011113717735651472877458522225754975790065588744341023516075406009582253280946417411992011788073218487436651160673815749861684785144713899157930956740671526707840177503026962885953386719295070265147771639093370816063713355168458739137967228150268443875208431712285634049111522997610293384810969474869899096453316391886686538953228043882523185480152191411644968614157390796229091902939338609867656058864596484505021778296194683817041554477839853124196205490193364632118471956319124998633397967826244579580772961232406562146975449216645730556910350754738924131180075393308887845241758227112455018698235767636900878438558258095461277967507586936991215651578658980661084181638095627110314372269182442553814028774882444151030149133732066807130226828722512703869087928779202356941570029739707891013215582979747612370874721654288909584266317316478510288245087793593386640435057687259462651574632681351139733343330330530942309458589574635199195588839184817972628324590864005797032357399002231960405310529059828759985012658484944417924126992764253471526138587433888846678700679484410143296485541688632854896036884038780968419192260310863860069085092574806230874423936880562953837041586986913143696905485265789392864450529371328519432859651295735539514294241514567537615715885945333054981455478285107466931964068670501954786073016338169463908283613433881088575200360028512783964436751393659183559559018536552648252360032084586611556132706042955014140912364059491093487887722922678472249923125932293560511778071435436277497073175596753121209229389296625974742295740508253759372388168704977998853885315268451501636560816927073577936180601168241599988386503353094266305392395607584264751314263747683938288298499835552663946554072554608593117150423552901617124039485359379679084903023003238614218132103087614911313097179306695158598889670388839856807592154941666088787669834191636584394941715924661876035860999328832428006279233047095689742078752599392214416452706414393602674308584473955836003711480066923188672346736563058786806006729863976400114176974928042587150945276391548671310788443660358768420683831402355470710741552557226666591039962932754912849672684886728146083151994604512650467872891439246729708063256020952022723095391648579155114325309009528066361204080531865803458610256765504301977431842875704033037249323379320082805662759686877781957280430534365793075460118751129688776609894920441967044972825397260639913218341276607220226804366506699051153489588177880848543857745194893563017768180638118785305350999089390808788748615801711787422226804440836803576577151593899935580634827938901491182699237264677864782177415624863720966301754485107611659173367287624251088623561733495013706486563285844330525012347161080387507861574690540219305889052804668919300745801392420517223894669084114506786882664154642875334121790123142220373842767340935843220560815755469331748120900189819752646608424135235786882581898475159249964605999778228912868620485857299561764082610655423861114116580461235670896430206378237587317229800014105983978461623927660710201379999380354497189438172361160470517927823312569469546228289483835027540082005449736193271372477425232231149025741540669813355513725949797928943562828471226039655396152313037795599345767180459787468737207061022961691958322792764888383946418821427334895836276913926110560817229026325518656512220128773526057377201318973221395542502626374457724674277779027782342551931974814567194976026335299662111961900372612721073682828024009371540476159005550659349053880169683486713220238854613886782594830901650350251007860603806924176518936458024943853363139350704090794771431105946730390249843017566001580861567401859100139513838546837411466971628720547138830840425815050291265148434956558908982290645993436185138027051608338233758194956180637190953250279269480593102479045894165217361935314269227580996562366899818793997169578794360936415249609408168379475015668745449320077191301687332844568040835876109671911424737209118202282660764094526170717467266932863961200821824707982820288992713476850918805956849862363829655525925176488575980204955943793637489115518967889327983760786263650071066098816690126125437460722106577863250217754233149023665933333321202423779448874198245985088074499472673245240315971566457711892184451773944260148217373312289908838221841492458603853467301769760684426120948840665509017393637637325883592911169330340347754429528443749478766878547638307005280777930690000475862898920953205308603330239220869511438586671756249082178713553674862022826395522206984988699089241855318989774800812959985297266732070315213459725249103958735477788858386654788326351477580696370626930589935980696282496958233191477216383016369538201810269719097844627481967414628201905985922506532215110823775619517382164203646123624050428326694974653533716414459324115324087216570954019701453824765597876860949716426882661644917445528291893303784604905535258870948661810127129105113428640027068928036426016114010026746682833071079119547327973725512063337778611445641386071807436727725786204590106235677893710655578397195333513194663577383177698523432556699031043591920740060159553496633129941929365343240544365389358533377345222796962619864833131839152325197667086216517162823749573251211481375004030306617535595884529780170614982106095073634630663199567904890140826819096450971893756293717904348356519056261581120173785773614108084242597236496298531786348881047692466329005566698953876516237727479440839368136168628604166075198363827486027285011453576057644574199845260806815263559293121199307611641799032320666088584820773054256130763665595254836610295398850139205643990270864364724816457784845640928774337803129036176547826005014570141758273491589929029224264347986706888597485400738242505459916088268362171236296819744802545952857530063019555320645351017102974219696712607180134300416134455389152707501600485171036690711357257805411114823150283098921334522352739766018812374061858396738466694352826148054296339377120973015437214372722745114393748062919893974924822434284672766887166480991493876827571428681475201878748126578705664359844686077533531734598365938538290787584487783068762003620673666689816157035426662659445259264934301679843098638068129560910118522811798210541697218963752498517685380911158685394616040334617630949677724748709956544021036445794535629212637269394772146935191555146288530820408905494454822212085338253341824107603555744155375933818869618688263162377279450764503972463855368670257654264653008779550480201635649761788737292784572608346258031162981906447646847040386834197151725985695047512222040168314382199916234230324274331852748762653461796173140705827665370730675420888824941921429825005285980690954278846263298334167283784350143615247930105379166931996151413341777611695287555500324918978553681926371672500592771043742238869307130959566033810568345357938226013653660396629123443002862934808496108710757379796883639339274279470923695858132433248905687438508781005393877695205440959195630816082995695290894027467349194688767418479574249169892655261898276878611740863985910912686306904761807342715309891001033172730694780833168206319707957948437306588904766001563025349502599954840054961760520830795777720697390758352933151686656190276558212883435546406113452732906077834670598769658137195238192722866226166698126596170577969831696230236617085800060786511610350151366848389737489543155163550763518185038327459966463572808207440613999037336020268105063461998999208653849513165657923354329675947073385378783092158679676153921605164404009847012859461382193905833957497969064313260875433383236788635902075870540251537815590510789034995727337060850764476715419180958205199876378200227849349835896515167798204460799200960315456487118162069204101404174825612982894310217471129978233028944560813164412294496252236144244491342581411304897298561003362902582105418086127692244514353429926765247117039059366963934343143281884064203813069877661414898999789007434817338229408222449624841105515473309863651778946642663846724425564119472491217058452484491236073931794671270246491669325583309962715799861218140871259485126832561202772335807209250598248284086526256541343715506016626417271156469376770898913553868565503011328974380025157517545362137869640268095799596984596085268343475342448469751381317838114535418587361435138262230848891906928030767532528435309389005400125611818716231434480084428948303787735482045905535433696056570181670266952987236084865123779194087140897429442771543547598904856995823931909257224843974866081466607025578785771894667776235437191491307591014288652738242774900929709987014175580311229823469696246362391750641110825998585108852425735167843358789114086941186698282204385721569477177911893864996095585408304213145937812893481011533127232183047034496863643685317158561326630619466609004341926828582721141810932869423577436835808198647676875712285075327055353506551876410313347802493688057684746906735359860168758138193893313044450982717946495395176878597479274114343508786074727979089685889198428239289795711316987124729733569645899390232918451796946158742696649036158386978594157525788091994396040090013502509668290316947861788504671731438642097725075165853147524874327875058927924988660116063940332258011364341970925608658481739393429347027047475609941120533179302765089331162363389632179196100896670548918205014050751020808068273769973419880070381980952964792957065045830260428299217715491121545686853653733860762020146515960095661547037260590966762218899480464057646454167624163177517467149646779471257167938372434142112457721080817071702078557194069562064865891750186065920828855026370171164174284064489835505837783139446723756644446423189868500282877960727556514381403722770246829360432497760314355080816477984036314272927234633906415519464360910456320048611595603160512957203324737287857214446321868327879848007686958779787992074600781705157775979891916135945224974173543296813752817466920748433696887386802892215255581344878362058835895539635311730810437540094329683926508367975905337228566793839284228923646452069156830459768808319682684475791020870775143393793579235855610127021482032967039918262267942735855248237244728459057716592916388104975337398107879777451149788542764479377219844477821044491975444746326439507658671804506043595390802802964535025181381855958710550828189372878074235450719498152536512077742697672793059842036064868897843498883169218238247894366617386903189634146091281344594182386705006685789997447355796043716158056239042113403644840872993213646295986668292402473754610205709212011377551969189260847764240614571075360357179726416492980751667982189388347106086865446577503568274148860225233518505407218392932306775401698689895726771560873994458841667062174154637265552647464210430352716173239780449068621707812438591806031338985950445473876339354442161976406210447464442333650389016946975671954079974381290689942553151928241639813268803815637960020220575746092577412934392518553152108459905094769985160099447013962599683185536567335630269503279026943067540652712342377103050083305420509938060017962671055730754511636584421672809327772447322419722538988577996822672334340239909585631204585107623646350499038520260451629766411703004980557502625159564145099247655739858602380810772092837223400554516437948773209474286738816935194607707626686115714992237569527579683069498326836460388311903631231865850906265649791863606622227577961293599120084120058226272409296339738708992088619808339529423632205376071224669985038382306240584404057129922903334733350339977520208882228513721743037716927894288319279521454528502067372241537036814553108477533099943924998861860968225910002921660857182952903987370264477003741231473247217551509252770577407766696379211719443923203734899722968459213596045244676281554357506885357483317969833811727112535475748706774385392119525511760301786550997858166510611963093925322439290536284085011056449142684781319992293799565241752701318913920658166049263000569343205967777400200688068271521746164578591391730043047008613680627999327272797126059874931808731221598974279153258214317479647851942173409137721827764379366014180276114598543661567771669409796496006037760162112386410875941725977253383017820269409735301466462965682170759199276254441865983143197111762672635569710201402892373491089224298762190242978356850903703647860878116377425961616582774270348265132725613844339338673973763377178843082102998502783867697264928194377265701334563972289418551843931598135817062070979067843688017016466832201373674676843788715855611552956204961707640915413097828489067443529863446919704724142315029067117691742173375800744529471171868339791917859730870853883395996821444997595296666367121642962115530376405319805623352056687118660840577583519661709364726869237789486027092404868631299484626512775515234884667278400615715324875076296596207159353324147316850111106106203977439794762274733764491281677871847970973521838411160625604973786119532726840439787406533149106320373241088643669733043134794574757571548543580309840734314948068139793369653654257869917624436316430659700427257593860187575588391780928624624741238839957124103501873431485688337488445221981966170440192562678674943801697636587555639771388123271642936878311717605081560995184908916247211613610713393606878982125558848069664761779516387719684823056927558285319093821895504908601979216739103589107245932149842737808143317796210337567458791154888266331705734632322907821725536395209277323839899311679060622053180763871006919195145967694908058427697163199802147211046323873191433801065015926796424241015948914259037020686946491373786124739890946819221701018099220064968306937128669406261239183063505662844733290597448047575671719403092496401814366729116029607506425418665659537234272712445737908333662302930742962109083186210395880912353054894677247180042267030299759961648566572237158953152886563261724398337244883596125097028036491521563918814913246869607773535138445860737234051330961962166677296665424310287199518319536515544630962085477140941926064973025197434506829018809471238517944026995137424543871356291867472432078772411212347823642755966248276032080774461641297820873376954141945353150174816327782537257681962296153748864255781227001227486529486451696997970057397971548232669802449869026246707234925179366027016861016776975609941429872065978649325195916483113057610663047118937663360019248248404707315391532290795366595943462507516346192662573975312367212209544688853403907179093394024361770427885708544787128546663803744091705034590460490965911259321120720458541898093334289006327793710244631248196682176819971275277803048135064996754230244542469311295251889014440818389011148968094541233003982666955848819690813041166534669372789545196612673759927345699275482183094401309711071094558968257163433487084864932801598251528990861810225233092818443739494709576942156634693333724153109246836379492211364192980165261481525039115979976151500449818171653725743673349878982644515214514937664113234805062916222009043359073262632121468253847230266804269154016700556347711602280498983707627562340575742594930092173981813678163518183370834649520256933343202540962278229589728993530568632508184847387362954708293784126520202257064761032938257432936998001424634128990303056757136055635724534940739830266457358423628875430941623825521223815719390261348774455384539422130284707507322752612857724663225593243831713981411837936006167879697780811315804207617311572885690759009020183291449894129343436239487129809019981106213889823817798127471825605164594625320620998404723640760762903698259836164510029286282167495222819273175646894421856569911297625830251862099202881069919976348748341429274034636325994719900751208816514511763940557518469107058775451179630230580714231191300375921411035197002430954613031755433092722007047786928709900821243468442398894349324322176191322526150020809320276547183678660268437663084157865505657896310563435523213180334784120120595993123967498412168777623619245631988989738958099787053890846889914310078405306937252565946968793044520995550419397636868316339970307623188065107407188340069006835133282551168323678477762953376477474230729750452119418222353897092277920335975159074174986744352214407025441965980334611713758986087182160777405684526761330505001149492084894259248907890618532976519051378904038161742500647988738582714803778436185587118402474397277829477424038053397786788401518036576642693161262182447369235850514895586517086026836977607456820249576488724086976984312780083606812851458405164228071198421894430762191544744203234847485682378736192814891885726755805208296023779420378353797505181995368497359634747446008984528709652305165801718720401982592066218152054563445347927401717941285929077655627773359065550748686445744988668521987390595107048259325702338638368343337974257322770555078210771368760557492158137474403881247204481252213343951999559877821476214813413417346814152337210463889383820531450080460689878755394381093761970671992238153989800015761880071193903552228144187944377702609542588447746820377013465083036302434669492017553115464802991437680070747279887907593985546913385244798905452115242127509275222362316794294284677961536022970461245757412393122194531974866561782122431437342257009313172972492949194737463292520866467178002202662191415992324183061792930107866004546210732315243647306207678425831338772469117673487496572245898195445684648770452314503454699041295903840057772161274324504616148547366868207650685994008774635649011458263510425261196489971482202984271886186473675907591806227329503221701956362356159098694699861428677024486616376898983701730579672753786687742558038425308653516590154778926714370482148273026250747723828539171720920310863721073889241454946935692510063006835795714444856368560124848277256973367632905348992236318955460812746124166301684434063992199088672200641877643136408902380205819734716203361987684287329076633045936717638896539796314622736294851064141737880065823382016410979673404737036904111508106363235290009676792437768773662799254854554654081203995406575429387958693368679772356096904556187211689611008121717781979283531803796489426109537936521437723304772516057229879978681173499204076735619396454538181534915215198488197590820781345206442787452570766319497118016491490885144370539556686162236677224015471526138645051789372893913007373938338575955411804028862075118029848705928018936692628196568472470884045967693508747057373324581861853062233068523104237591614672632760862253123228154082541265743498779697381557956064040283893831084504370758076764743184276356405742463544670407522302229634888273272330058363501602638500732261268915542623124888425856768456705450673093064592427440044776904382994738514411033214833863592851881604172404224888459202768001146527507605055879049401517675601480337911229027548914909453967674525154633170433912882698321239021202913952631790080712140632605678735484003161867030859820280160655018518256103159957447313183031281081223699798536130701279247853176785930415125017475652952140666350716238651868674958185840262871085167910983962922979208424077765898941269892805929481320395872703362819188017313561039534266687881546503922767299655234700889212660873406391034556403955125142509261251900558984180553365154110863367826883965232842522629914255401320892780588050219337157151042762583653007618371777919897559460645728173995792386012582675046805343305515688512532784745289793107604757395900859688055840721712750378304052410763106379674508906002523571343600024300555787320529131407398935150114828934406064320739359617657500425776497427327413260607593415597553922643420761753489908317044553491845787177154946038264996267321134801868763702063789725130783093230836709362373446878559962667904813425306939083595562487985307932697509658744922751878822276460837740196304829874583919029347729703923241604290940450278732811931526599826510715889864845088553259806845866005551117227788681745198716184995828535321434360793996644143075496427263530804172188070921157515198627997253215084743740973488932627575772159275039604579451425557393011665667480833333173213904620775278885716611529764077542859961692326847659706976521394361134007979286600136883155210132346090686749967293184831194035361469219376283029877297674688862152731581464070795898560650402805567265368216369241148677505815376266654462787817360508097385303449889922899935546705959155429664460590574441501848669800361948729006725684901964905107018923063823032908935965316065146865868707254015974536950932905422785890797882199702610273164470142209031383165296629728572095407124151312917644508312854703259264965787856089301324794868857281914296369178669577971264316292662101029499746531747901177166147616215305684198172639679138028685582973137906813497662230931819228306489714860427158696583623109327617793073193356625185174575071837652853374472778281046197799652377152746866973510515239351017475173610317079762024762279551853259288822541331247879172199268651178667352053072229156144039515444667248948604771822358123913071496904332253482565200159266381882575351187966918895577028178881526069630744707446143159058457651916158609308192001887255293960843603798331195324155565149007835421463949229454620843196737708443705908474751109062538492580563153706524387864397073774592588020858538548250565000560836335521242446766241177348244308836757428459137771573142792984826680849131787670300881955503674858573091649658443725155073154872090967194031256919620334234650841031562573160970640481084888781852488244060309878097943927674335251995009272466444930360030431936753550582932815561559872271305594099467559211406637065069096557447060230480910715118212615717614241793460431736051563414933408126625170206757526114107094503437352672956101419324148865560108168246218761286265014494699839871671306051046091870777837751532888089720230981806336502309074640097265682368904863521384270363400115128674669920734447733954725557565692505954753300933470128072330445904734427771554452923027308139917301785078566755609449793484285584836028036162971477012680083302067236224862892280988737537549401550907054553932207376505395364918706991740113985066488255478361547290502735075282327330751224587565225141357078672989770370816891420613253074860482481015073596785106420482795522660771171577685125636592700186869028009019277644386793075127064006696258193558488242556119461886134523541934498545964738515697878600260932474520836163375805672744519500023719585472742466584861854797263966358171106965435090146165479791204692803815787857528506375038088299129867439463732605675341600039264457171729092351144521957472585144597815097447724671935126957142509813581373114621200298053208958151909902207837152671026540473918982984098017595172465905487887560770796427166886092631770955073100390391773269761670087504803498245292555731050970456382177032683789542148940292114743207278956483187713536347935432482599955320201083652015168337303967861185858509113668756135713115213185570342683438829882769798006526591974301996995643993691816290682581107679112597680926047761311421137208632875640330482538581488550365568324473720655803082921481672713488197262823649180621776705846040724694851592107662010229532674695041157497998841437705335521903173584758260573038306534879893976321856731093603368014614051550662360203486841207387812169625429731863586959069402142384657311702225570888905173556891137447988110220270488196354364798413108792890786222981626212950316864416537612350572280850190278521267669365156147565464719916267637429074049457671670459349439939049134094659723271096579221508802840381091391349368435631316483961666877451775980026644188695928107856435907977626753354646683507141590230636191648098896572244867944283075868873396652661907251193240668904848237070743215630606841453937724382827135478884202450077511454766096429184856633315612753216402966445719704907530579559148266158811400689342279406141958457358697516537957514828204324138955589521263402460664476387174564572852926684710524635671557613594348300765973401791705780269938418844689745880707044266123481266550364715316461118831348591383531941813369431318320883953588835216202493127242396763616216157106430063020079157322582116863533338830781377705123097785193360338033215633013010497474789951849230237961133666657618508032347619717411972414832125238083160674548920350329547096868606006087107189725444637452825016706105783137834451882177359368230955757405239480740727636892125248162679809358965061042025581843179788475981980152367370037332790100141034227718891777078142739668456274525016311216618521032192741424426711875710846595146003722315380970074686898057275957336834188399484881956821137383986059294829283343966562133278271507294454794637485785512803978305797986334542679164083493383381559075824759620637678623340983158528374116092475809390467615491377258389803355746731636106200841354299696157475709690026693305310172204814688060854240793212523228330791079392193235685111005506237464775279318666201283293268181777159015331310206899666641077137871048885599765816639977778114638682923012333318887215507719879658770758435565629669764377853428399858793110938298148481940173162112639790418393746486172769009530209321702945049258856966634501708654177332137369814810809054292134136707943609901607722104961411608192621092592047001999033933502177292307937139993586984713844086100454389278565952218734240020696707189737493832589158440554184795976926151177327845605838548544448825893105883405599307427480413467689907601733473394270596670426118334304762375809305439595900266284328611414101413194965718479770370010076372252147012989082378830581996719247092129885299972444323965599063422359921162595713915234509495613561405904313466866784498413367138205365551221218063831552353280383399957376843804230398072362954514824500587994003923929816515822123645677555521011839270015221993118037953460253245347547673518161113729958051169027703012348582036842042209481499142304983544881141456188504763531802193824296260839037759628667713013522185837303046055783628999305163240200659852513348167327596036206051003395236531684786302136382109036840530021027877608727051947761838627455874376394363951733803130888874428761166937587792417337740688871645709242270183314861592260981727419064615128372723588926525718841987736272470411408571205773110195327201732203199607266030063247893908633437804021453346953185313362993507454792376851984130549346335985689947474543604096496915536346700896207533524617433015510652833346742843068083039779000400227874528733761544543234939513618555613815112910815090189681321783097014043449574421033759760555249844665974313478698133737778671327355522310069752023733528326237914220389057570590886821828098195967324880327396711548178024736378858566211833871338086726295321340692865423062278290821907364472483731661493406400041501941829411717668336207033995329008637586513457885451253591007532136238466045271226598553858265384322541110719029886057980548852775075326141730957147838405926661319272418151730784545458248357104737999006340424207437910668721720385054525547483260348441598967352412756410718866439212003965271487253357854365049693523470003498839622331136271558109514266390796708465455724114435223535630087562808252392329206539425442858299338977010170872992485908777994556494694155361618081894936806460789998915542657299201608738230182274021979126154013860719855186816308271936788542065739327278598466524146111276942840010591396572010991425654287602524923741395435313008234058793610321986725878838651053531213191050088333878432420531939919582941483626270936301732397708919092070499610138751406970873863745913836479864472459282046477025526826401578182045744782365732050561963119842112697032859221834967787847600910628257132325869931647354972762025386976846635303054756485011291379998040742319229257954366213186994647707518969961526809785225362852768016649551552936347385160833565322660958033049706373579887846389595976945411570949965121641291258333712286991283993039603805676488565769292175131219210690702360752312721748858495506827182830174796247201702986338051715664974997834409250354253469135921557451324374096875072452637238752273668544399082805093594926832516112456334922530473318175166531542335275919992033405800166374220848972233021043143711876292683181382951009733444741455632120911272288684835759168252220455677173944600772569003091743310182586738971641014280476950075318322754903102989615202698758763675116406417539970080793098990846101522706142569499721728701247098573496216812426782361654560526873410673919081891024163537974405397577435445996541280310313433663148529712812443652896942152114270226431154940275592773490606608550298238125196279095331198040873047703093065541914646077027219036927072865125206146271765101723691712742857154291441619038898934104812215313551362011759577168919955297675850644952242832130299431890979088352493352853412271130579127491969182263856676069918518856078901889708191171227097836132268159916285855856214293242113480874509281770639672764841657579660004605623382901767718539321066485565777742594344994051747193938223639413239133648320421324920106833017212210537851051449343504844656622040786405779011626946196406424745450041611261494058302431212362372377858193826812780596777120143704557578812607407965367961640399934866181644405181484405721701618883120932087231927750662559365016941464000892025079320467778968574785422079773236208124334383588426576057119534220841296347134381060847194920720961064739582708465183480532129020079492721011498738057613692452807477474798431930627392378165988454574099347219647913446744738868528384128854730341121550217149156158367366736844649211984344279174506993308851047408557196450663777048852868124209492458811377443612803658821193964383336121512898856338158814400673928113977025102004631622106937692316318429817383730436330196208299484385043472577710106025813372287148065540666333353472809632717215245299688557752145227394869204119960443531480962009075881579481307275306735833074537991901524034055324402382630876957228604541773012750500607872866082124415871911760943948178726692714748068814325565021150474418058639569708976518692821525618602737196653836052771240273094166610079756078500782075166909053858066769281826408683340569056485220047172525392197714603367485002793971814670681376911538905485232941593081036763797522085700902313176422424725074674369636694098027917737934633382827775761375012975509498329712903826487663123427380399749043321382118655481834129454148258692954739932405479030947023207582428217657368544962664805500592391219029596703788156755297680152926739740905097834035630250873470999490732281938072920951054750444937679146399261761435390255545930086118833411658718993408382863326671538600921219129364824366091905785103408799333890906433676500064897902748667016673332350802959391287947342504970180506014485220374720337423162401484711292288401780143059855190187350031346083409047797897464289756467180681137465410611680572008216454938054312266711228212648458405187989950237914549714791278593537350874158174323959105338414770875332863917274881130790972298143561433389470265700496273419527216459937402321465370931609513815544513316575554375044316432056857738354757674181242267058112715395824171979866985692289219545965951266167286130333461839631447988622429791637173035124140971630804451472797983024686095631314850253959916095141554226466065770114203047102434461030596474025843801449991863477976871339870135370564067531409223558462637301581147392351900240241757491520944875656339628486337905029027043718858259727828057223960455800015907303351299135861399849370677818201615712400006543551267516014280731383144309930803423470922490998363620086321498288871717828221437425520002601746339587797012372845247350205537026295766701472932922579071648858768195303609281674417222097204537671923087817168353525229957618267276466815970082241723074259057222201323921443506475805610007729876648709984873223570290979982926655288127766202456999989057000186031562432901012712343054147292667250348878561575077582439327183972192907149025744039135559734408885704385819463886655613318331050304148666225191091351198047500619035125340388672628540396347972037065471687682402872927875312352316651567264194286478019378980118957921519106667899389258270378745051690638980818242224393521247850411975728554569464034372931972701606622361073602989831625952673614824875286184557697694155207568613082874401365126178752570575942929006895337826596870555341658996796957606881464955679615355574494248977009658969315163982464587038658463839994944482368188894547824014451664046586994305754106192693062332412202813150496781876355612558732493670208393014317047927242276834140172563838341480695949045753553458521453854727930225836363538636804321288221932141161916512727565563221170411228784877259632898690497034149381291926286487255980458695446212101787919321809687126904705189633217561905365132008630002301527305286604417382293916139492977578686045053886936190609852068839923325181366087445721090764635547655069309795420755087306855125649942187072786783696596221535749879110171131971469352022730887664176531401254283750829991851858587571238207448805356497926028784363267089249219867405135409187878029441484391969751006691893732309500438196029636646439803835416297883137116544747804643362614413862941704364079886814402429615878314169041236266652164949343116118581473044339607518974169656311443779274988114410259944316225730235907371312790980036345543515603609184433735855212995672643758751872787090013938596185299679420578497589000575266438710432033131890441477100729444870292086539619344278612850728072112818777599157980961090448987066463391708428487076016105413810763898533463233839881777127125055790641465219180754493417586921418644927656986388800680649467247652611474437626469239543793693702905590077566840440986070532066237961738742299529007074221378162160022757820089956999037213372362203328763600777994400906342319925848042817059817891319486187818870953320445637879592210108593821186911658150887543241502217416183339716162403116401586287273085194624356070485643563518759271753900735267089299139069510057530161998578024637880062041459932602376461099559147241260762792841567341637529623856637818070041308511473480528272896739620161259621439267340256318812341356941249204538246503600215583910429864170130890772819531260645943277197823527648220594063160065472457816670092583231874947150336336501558957102567803222228933772875505346400927825384388821544303006595031794341791688494037107550634523598111431332082755249932148180533510478366522917784741346015939057314574709248213710763528600231714071415663776781522846179152195914652793626448771557609574229785913944733637458234220691707089174447195526393825407269831012831802679283692699376588468636094105311669664004940922358349159548869177613725822623412609733374651520109315078175885956185844040186352132717964823580933084789104280803112977893186710984056382155116088823871195121310791805629357070416641971025936948368393904449061848728436785246691712663349522793210476629527244200093541837589196266482490740745372194304199433024280327341908005890785164543564437280798743388974734205720038045571799812927128072438666096697548025601165510760597893167301191309292764947908567982031497358146061220246906453367778534595577461142504035418093064629127269727540065352145641754146709081823127585498910036772340699463765328025169521632472101908006616565536133743369277506733514056202431431752256546667335169289097110219161193388178280177915031854966734057637920881348622248354120464310829748431946776496993398417566380511922523936473780266485050711700769626418115003008463714425741038347426520533385558985098494343727329800317063331599195654817122836803794917366748465131736760473128889592455541505213852697591990636692950497523623927264734236343152286783175353077799247488044850626365365222182088209712985586473151522646845333301136822849493127488568876087876783585468151975103677790700457413102579005218944921654601722757680144903320420775532227687447197342247752998568940622345787297918348014340007209682688655392876447745837568168590927095242856504394353743867483306197129291210148604144917970571033403359592390808108773513630168031345957275558412893017549629364312640448924319492715811768558163404398392849178349829636461934121646649159254714709739847076397002913674971872513622971436717854556308580368978370051241161769817221185857639071561641348111942797441981151770208785955181369468063360396206554220750755979390727326420419319257445273885739978945443856076411140196205305772926398051450932514844568775287776480892928807031391162760731968043857602789796331055598732863715826188454972128991914781826893910439724611585511560846176960656917933275596691831927486014040215380453486020806572938460447944599080661992541644039554437664044612849378130373711662828124753403303554682080080113138312858818792947716218061050631471529602386417942878154858557017946504638594926067216994777437105652035786684157965907704738598807088774060667903435001588314077612275958348125308480027724647094997901706626310681737188539409462767586475873501469584916082378090739892654635708649362312580374724062659664472947451839295328452940324040617519946596305495837121378655942521966154630054618484094269464585873563307447466466962935369501129042609126583431159545768334757183493753767489482062638536934737038288863823305494136858937379472631224730874255966856400153389322046264354987360359123352931101346764673443432043626447919784925407185339200209902458016631056271841073290578761745180007601578237124191602315405320488679063984195112880678605277942643784752091794073235046399545653381517004447723239649721765075053415223269528340659931653975211274586137604645641498762672385910484188272300873907906023143988348187966771100042351208477339083971922479871626839456242668339134745289291685845563291998893226565088058197488394943680143396182336129969151658483379764739145064380831557438590960703180504904172092209014417776957715456302006120427764768133667312188825771846637406573761596437812965429356100926416298548812587982421253994713612559348690232227991923821656978369961733334400410489343120834905724659377180491076963316082335406615082990830051519924562346443840854766350268136646079013376942191875777286756348590297076478389154865747078550446374340184470093247516184128264692222683021006238281374538705963715106614220537984736664092059444891471511238178667481752607255438407207561424959626791608135533509119723474697846794171319235522984218972566262424504284174238797991865841195000059909510068063460845889730112976797956886933515741962668620397666612921296734890511899335190179320821995482414862395305396444197589420014133828601867196698807529476159384854703564536139041747629544768991441750355851409668138477068260779561398984370578990667145042804447412754065197745245314426908920124890244738585788469137364255168175982599148021452673057957588073524312886025735009172137038919146759556066726633501563699552226446353143391855435575662611369361879418194795883180210791182551630643377356654199278528896843398901744444198895975190169470750248826304698877126955102767522641264222102767376280286245720707477639720575764612691487583534920859982963502682138593345330009218547913246957091153309588142399895846379648223333297231414057830139386452976770048310175315607433660324126518403234443789778556743907112425566482304770396102595269206712605225461076349342737258230916856217648073332838679344478127551802973427348479795265664891446918002579191742953174402478829298003776019921318619878490023625916175208042544198093122511224159577776729672838168882321794209432039681535427488867070219690659261011558410963246289486503665355955267074550736230577876806171832512525895580208600385167532805853838309496110541160385685103874515178737059243950356402364137976078228268753921327432788664789379700544228284141774217292161696379896392747834313169791200048174908178685644185919317499117245018594425368115850827351035659376224867182790735996230226586012963963232556181708682079109298486782115483541979846614552387735820215949063338966119060350552296341774190476328930911946984323275874849296979153247266725331532545631117489279299063926799397450070406181406135888021440426094340002061414050837884360969530081215925369209641288152842988748101588224281317824845291562019194110629310394004992227951324311641334106681809448224747829218094271220743175034822549432582889584697320939396029231647574171477704290018302750123177350052551174485860355975938060706312138793362040544633592143040719491420491557826062645906791078454014744654065572524626172529318770664516660338825290222413376286168492154486485499348342728491830817348785905125669786923826453421506094865215109820498437050935920474263590601714098310923364019294779836577690884012562533544555722029459364782107219383505079484406306439065440655933024398635420726185579653617286252997382991873903846261875618302153087743948844464945070647339005555750144797026447856097933186708685727391279862680080347350028470528643390467620603390038143256815029470177726887486663935457278883092955627278499950402495141613552417425415334267358308522158326751675298825444036794827968110643836058938716569874954062209491173842279624571038992598373699185474796068267329837529773374698815157643859245674234377200164852321155719334920505371961518318256209134710572482205757358737081588906814156873589343494783732676325261942560893687883569129644406545040161508586446024742417859099395770988176734539083790947418621549544515587183181788273457229596524096900782771933566813085009144907112421646582185123844060506397656839957163181200508088367477109969081107031804575885465612093517187274772812316488359531843839052529970871982848339164362585025644136430087145233162665824702266638941757702192320675576282347568807179400518608631458913455638970961800801305435536474319829711082518779394631176702759531368030669940421236140569354694878618049268225635611562632583412766053160015674283222983523968800488662163765910867305958416001456794626737089878372188501502669303370489872804764718939124021520801844024016617676543652720675603138456273392071988948611867215364391425663806947052466776400922321181083595868407342037203941709599261129568678412251941837789996691215683367990750970574318896782549622950267677036073123691386350139069033562749145786901565567634721961715947982404440285459093734389802940947202255007647371210920159571671588079193220448120126655775557944595178286711193914482300271519960075843293099480163150092348061324370900307416326563834707611734206408980811999704832287181899374156253231006622785898785112703022951019964092030122965315260175525176095571066690023004127820189891561068759313986089132093892195571550779314594359990958503548406069767196919945275060391432469400048844043660380715948418887506580538026883970155277085775445520161138154373164748844458368582712175060853798670036093022568742046877773889339970719927583988778011959495167740602485385155564062135755529674501184463708390491753175528649597558639876575572304639899340282778503914998089585920180214515019061841534212789176104405386896132831424028830319433760331207046406694934381850019092076678716247560001734982235365464411477367983217861001463053968765643332015675845600948257928568042291520235489444114552250599192217913811527679563143811520936961069971014611291775617524749470244847021076400538988749110989440366860889208339893215832042024148481070871675487259087663110560031403127748151929553431543655507389310891979941369468772297445696074025866064529497475264158848400826497967365868633176804867183324795495076260152758125032193345216312773081678819515832319106917707290222538917252901266920808286593177738008404168663588371067759568336558038635177239250372573167537085182945721467802314840588954063883786359555252833045673351576716383314027953713743274177974837269709826787642302620163856822534965860849219518644222169029731334500466713852350054809952055350823583287188446946651233065001633657654522487938451904881244984901390231465990771909745207160849044921072962444193692373712853835711208030749984409729043747223615936577930317932027464703776314612300351821229435763247427264029738992755690063925753579613634283495482146499756514995052997710518842222232373415294340585730219749895437593107073342507024413032268540381069828162868948393902997262464489626389786643141263206985120107057454331345405108102251829832932585700982906261758853589390019128736752363462084960143729239751417328849880346101544679150940262941445691493258189143941683382231561736687152211431726451672474985477442902871092152892283523429226473971942531340678047939604148444269183638147725902588156393339023306466537903869420122379817131225272150316912508710281489553705002252140096662855914852115550814125898538021642667239726926395913998389222724977608998560809854316064601198400897512099790779750774482320241024135551187595832199092408501741373500231594428298750626577148839803980880043661740036366430768104125974020820265825963273572151798111544365941671877982485013815601368789812464526562180178684331873164480309926628575725288581250392758659283730626549519570784007345451947133599682356408301176066961826329017150823277499558132082909775984949462014315228364016505987627169186641532584893340965874095797035400971508603776641266759041432187709184613878953458547116012469567188994502630634189942753052569231260060809783769858459541489084331316295174429752855768250998969124863820902898444494270458846821502025317681027438493492737554764576997598064666693303671040132113735548679565541403322947178658049555889930411365761844945202799793680785822905034646364621768331049019202148289704117972808542792947535728240167134098669961382190727080445978178383563102244508144351885361340402877717999696915557766862066491939409878568323540523403850399631000346485887855576982745032222579221955604780380901436401051550640278923821488153917339471776518834274175985720814124445657001561848131515208197627793751667788844905339946812149543355073072552021007926583603838030953614525289508609889813222745583570925846482666780942010187400922859460610728044564810320050837681600837020339414422031818935962517685271158750411440369565840920385574694041723451892795008938692962893707443366812221552901377669863973406637590663269695218780021022018772175745155062892097348983536595820860267002498482789476562873112210240939290225676302356074179720473001758508606938967988296868835367961027509851609560632437899992366720961035158366545372829725177819962629354199171309113383611657215001848390951459531571471736495452072076628358438596877295281724691859942794884485755595918435212441479504187897144316549036277223299530338470756722573010074050558913238838809424926047965467418011546639494063996219753922330040948788662914906836115564030825500890866361354986024302332894303317036716545825533706564332472037330912815373509244120509368853649709128881475422087612607711572633166430110542139226084867686287566621117391842915396276823832089120917069194004578488343380528997474210792942646126835892341071011342964591272985309873923859853558678989346685799947517767583651816470734143282718576028693644794708293065064980648447717439206457433055141124613247374228932874875679024940354110360694802227363936287717698910089221702828244452776703221434387709583451143378478151183574120377950338568717987264497728240476634822563147685284209549335944874976875138482435122507867228873344256424393498501735957113167285789929011613491868075822156027573464154603211796544526871563054981841126714511677115506857533711145651086501738066779390381263852189963551653354827047663605641022788832170448919247896449140542550001231699572346302246699858489941401297739379201666790849517473524734071943131497964481987396704974917590780354595040060157674741758917493762593951930065479785977409707163122697271062750452569388736565909394302900742813008689483398610947494084298156489545793571527318461623024676832086884097742486981163589679008098214481257167818678159226722579609178801314143744290697937610807615141106666478526715790304056814628201481019339792177512883270682452898983711876284468983138687061802875210275733614982132403814335606276779264947159503170812589710977542919737942157862450382269689034404980445986015219390993099589198780045529433432056858247465899884109579011672127893105203646164087770395449103200694510550751062918305341274542800918281375583707689494866639522335241515565931599632409686214438010112298659355255445642870363548487665308835843770717229226200828577329456122958857642678295031829895602707891697805743828203815514503211969803814660879246922299589236610592299765023624873308150597674369912900588631678002127603343962719647851705275494570224093647722866607469621326127266495965814205133661373771453350916995230317900592932957804998976185743694865040204480774961784609333730738016498710233050115513451197073385613840675984896336474509276615426904132416131392960701006445645332022229974946806612308964388148825507928465128895794449954147151620168438446880801371346312165311018180603959565925848000129197803257270550691824431407685592393046008857743388810366662016287350391812433432592696944760965308517100382682076406558409026160907230187429601634438837632863662182185924148558548726028614608759252780094860732762723329656154631536287590188735259401091473980303727760844362703894922059928395592299057263748931436287543528951365487380291359249243573647051902511445313300638271650196120164627238740810063113860391830511507333879692345764033895987900189462305105266858249734276442770886945708376926741342182615492916346048320946428086287804927997626510664480631741478922214725044166656187141141881082345323823015455976795833438012155786069706350399373154825524608861883954347571576011594025420380722685494516001224480901382572531116611260543376187686488387047175932767087261537357076084566876478067775980022471837061169976861510389887809866113461342596061439994038570487427044399528790262541079459170162150628079582929657673644749227259046481712336966346700235185325682064684646974981836919718829651563084179341213241107457625552870785821864431402248341057324012117202436251150379301779216636989577617877137364445121117364417530412245230439891526935112007653707089725410189774405359291908606362985138832724910938926264456182636890380970647345467306709320345052779149779456731471751345458586186366086705638817358416592656800065871710532675573179490561227131689098009542880832591974818167687904815139299756211554645442986542452978115763585476945045608204157733719270129989101360527986702650354114564763402626056470873101880262889431677113317614998647952810542693857105168002775584971456479499698178088670625790263161756223329403322393492241474582723676250718923103507097869732040304830535833662784503393248144449955171854271779394148254137817962730559689066574232465904220308263496263666346117268140486690450023090737254505500525460003171961704843390134212533385672607765663733804866089261772443532034075688829477224617706987347929052028824928695403888422900121603650982946855442111119998505947248060044202470948134315540865747928145747932605870240966353412720972936656221103465902562207893139013120794701314226557470045547757603986416899545204172427836885478731952142029864504368829861326523802976410750613860228651052549454888551909132640437542709205856406576261607278884058949131113228104143066501129597132684937593418644600559163124875840060348355189399325423206028604110632149963699940873729992893823318372333072950554331962636095309649351188484002237637741340880391946816012846542365768916826638556654215401033663482102733487560822355815952196251427904112870413046421235024356351044705080338118851697914167020935121076851771693229875446635415080731357640348854790243370899349642894608181648792994087680171846434450809643434855776029604438815224036987997231250133979419758591439999507225672046211947607131409531556541989103910118634032498273563673588761421756071114627607510517065916687259238035717924500386353692071474501573423964079830752166556287349950152862422884514604079159187007005264944512830419046209414212226564711872148176097324199056096383100425902958348736548685018298343373846360122626357283440026056052614368921877932980825841056983280525432270327224415282071621175031990276131926607182944210379095437130484875212533743598795597112865271786283299386152404975446019152732527682555492693183535442632189130809497731790709265998897983244608303500466496119793880135479238980230542624335430262478391566623161849451608950282658543726304364743758946588745913915813972866192280034777948815033623328219489642395431061632403642182301823513202058988037208708952483844579774158442053016200250081630154525067667465595615888955744178248506037401871873538314272264430550732732688553855888186109900039996340820360782543881715859561166458524929512059261017781556183564175378532483566444977470030229723279904769840575365781013368104506791168609837185921733590458878632527394653880806821966330673441240186678955350986797848790627564169913916630030725293951183068561406864127958432549626707911098412537516220351647013887787179554697683486057866767557069663813555707061428975633343096954181982542681164165738732968451282047483961217149215751545021396676423297121237649383494949653499534829983261322255761591584580162326983982945071398172104502820805336233341144871688822382741940976331676191768985368987180990903281874730762404062675299168119501362675922427376287129916204518757319965978438367302327159681870142367047668103195774025811188591278770190663070105575937505481689514996444768348494254419509484704446113653964036515129102301321837839105255080388163524383919852656480450775275904842292761986932263592867455465035913636044460683732276309600924940464470656491925328312525762271142109351206574701824818714675149477360687081324515080690303522701630579060102998565601913218156466197307179892458758125148808764096323486869500797467619730101289366231575280159089480219748109379974632794092090795248363078706053048592776840884806462865626355257714038356301411151442256613935664299958654503634816210086222002037374787542656307776980559860824614356859065087197441434139118691261492776708678637915018056747899224747971499744036790326502158691234634369686692937766352807278580305469784301296789337875620681061859986699499740288496918976379808108768065143739318638397604868407249889931027260565809581226594761318079981098452502972481143742426664326155623595250817772124534921868547345660520184792377100847597293631310884474826367333549268805320972857901151175290946324111364942471811097348423322575512174988759516073146543162831388494083589847417026037518319429620375027978078633476442593281416583037389565378813350149082817033973581093752250512392827176273569714758265459272099689991690003495109252498792956172272835184205508104003503237579580698477086521184358315887655242423894050864432442777961131020495838084157616533929897497869976417363617946214574100032363960396958056696274107566569154327288081126701191901752693090131954052595930096266441043279465188403148697562583228432442612464119347417678933512750066956509853859115061855812227450399443789604379533295649892149110878048882018126325252197838671370008956791370342734893547762297763059825873222594213368262834676455353390203902096966307624227097810719216280889598482110321506319514094705926645213988934564765631058387294954289425131703448106233337234530023266941869201871855113219455587960800068490531189688632134504256785591518143749180016364269430389325549863409655118348201624245012349637877178466768307592823132843910787215318536750434160187594219420227062586901381634998485830271571347222980608910953966531890136794422528355110891930333029698946315076627982676376896240217949750589670620817702253162420103404545184971641803494655965998649877053896016833120101475194881904534011124034394263404525771837498067637136034494403331191383827575676777273117514619669344136861397391802800291231655705795223884964825485283819753879285624814251098137768565221263067441104191195505911856164213044343411241078200545609020379850041672759904251461900380391253946665348503036958262536438378363082799141182560413975309760715964958942352070427327835980279780298079750407523991826798673705520750772525399196915475575608228740523702553395995699410948133832581562529861097664437133957908544291061628570437519435541438092556722453074046751691521880902149226603949038559624376705832462871002914689058628940020417821785406039366898084040540317460964687023008661273056936711918855700336478331241090631706307435166601865613439154232789062032473756054134260438782726277261109570594175598269819366580262327842223143866831521511645480338024704260700207533539714583402671700849096740275306464311945396585930171620119201917850331573824537440463246371366625833194445135029997424730382804055286356247618698816350326433611711234062423424930629339828718947348778930791121332918980775662661598709041328325442747854784295032612852456213142202214520057449795699068063493952418373957777390365674592900728715719268452303654346759575967393817551966109255444649868934975635528252112220922659572972752496031183425177326936207099524432963234428474357628653743230149193790310147782708814365930355836060132590723175099250261253002804563222999982363670126005897755522366598413625536418258891624761077214517323136922409915893857264481966751877970700012265046475882064838276713408446330880355803185562086240823183232525753208271523447770114191039034323428641614745283483056371815953320669747097345234302732818711370491200292442846374641957574306741468605757712034533109380016478057232682543491809064077944143991721199869770148176319317109231659548336275383702950964181321712700792381459255670961593891888573871692994322220117229009465166590884407103746257383543981777644945125637700345456766266718931877958394884633624614100195232399301860833408596764848261740863951823864110021474098208554489476310940110034984865331978242613898890021215748874696137712573423432701146543138575311087877499488331240084267276738020867462278180407379498889526136903642232057766783738415160252441210221690758493625473604450360790049326001190225955987265172560220645587187311343082540492403997655033726342030686539879876761465997946324500792494183482529010997812293260986250903823601937462157714200015248476120448040338946462645943131375443958658783526750534010762721378979919012902901094749068473897586600190932518092956850920807752536168566775444912872529004264620723533986833606267804326842050964376471451691182819973776783013647537562729250095100823176725381578473947956425551353914200122791823934031228951903016160782614655952289713794924037072081801882515457695301319506171775453121406051849156805514719623172648871035913346763633258261458773328613181516609382733230821250946097672462026775809139639452719256174390629781768759139331075767379786220118408345081597703222259480529563409301646953758979431285390523408402680313414363673135771110764940783399305446703896646621887796158566751191440305530327778245316354210404334102043460419070988979062104320205884193303099222636732193947507587179509952403687255031821590535490888758203514616243544670858614373185392774158480662005295990169861494334118680780778994201117754918560078959574408416843556911650622607089070446892343034726245921038276885160516596043131146545385348905429429530769592717716205918965963385657216324975860544456147849429737676719955314243263751668432640919693176149633523913718317201767555592401783449863277933100053838644276431756329923296179642262357540122585515410874955922793864548955784918445097330863098745900143819102552743030258757873258505681075201767755354453785642710633190902616312224629599658393285756531512671376566868410957449651534898774902596754457784682256901618894180390610486538492473136572916653857495912580736217859480113845195291539797238002816700974270223919435243038794486038461014732907791398355417273167831672490508812164299754852986615749106058200525607039541707981528656261871491749445180687270974403964740368399225799138162861535916357100498233502558882458105799948452282456391471801707732705626084870579766589766275423720086724482118460051790057880608618668383375826796271702589677498909530339596811162420167216143695282964493056167096198560475666782148101051268276419721665463231889141653438068177275563275235429613890043360927015382266891456785826012227557650111073513868567590843332617838213822473396584096030397173562385973517560486619773961345560875870112059437554185741408603077958006460789327744794506759609518762059753253068350572463814186846322589812998398710853055233538325534970052795190263495251733269164857360938199270274652234472766692643080381332604386033231928499233788172435372619391335238997217367584998138990577485584573754060152885194472156222264134959597044239190950699996934014918572667410175917683295928993013595440729860523638742483081902765761075011284731380935493961695039181901724315962406035747477034810221387686865691896398155725117483935383741422538234555230928504661807461788971010448135271084887355974888015353074257221507241875936639763431430588741315254399615503482743422848086750598710851634712863067877853864591316778021628405912447323084900693517284837800891578289717037514185720376566855772073392570752875156754835408955043060023737338775070832662006766166580296106308923741198938964743054939689037103673798950951724014246283199451257741775362680692544626328187087465203428567427969046826424349860374390904211050832846798155315533676755803125360106632370673184119007323328349152045248781301937684141736219386358155105088876610024535959108653541697416380717260769041226150131597905052036756820058941803664635145481049543879895168828113295386139380286999503325101999126146911364332267929114970284007236788746078637106758162635110535846253730718135022735722159379057995072848328800754554491041651129714091272192695719778537411804885024427811877073954074888728053569882990496071644691128313815274176568590332837741565225666892803946234288162371949215657378791212479800973542123789211884347407405280719399988179005160587976567294962396354746577749773890913852843948320121192202709174496090653062574447497081610943026515536878502976211608486487682893751056460148342187106338494264151844058841734084339600414342737696540676250444958562178378172380687670546361708155925841736894941783845305412243297338508377974217452878351225214811852371805539746622396411103996968799722838987824395984174510918589808344030798241708393747106613668171862179866901356248558059491976014254284616746508491640274008629676506049620531719044669143267132055753290154868554716677811750134906719882308560097135485923867538687678696587894055013740700099338777349950104049521973398269875541637107131649698494770106942185465208885191746452310686475456781487153900551542849826248226035656425758939657713798446776135998340469661746517451272578548021372265237495364306794738816947497558879404773638519052356257695380188375974496080846911096984751474713238146581290906448259141482757789877866010714849307368921097885252560501701273194923137218421164193601322584844183371934620155545097049887315381088648611461124620104829881038901029393512537479444304730797906946160629405305645311331428682896736372199112225779692452755150207810340084195799258206894934595304692432021781984122981267057883032491332130063511921076327336293842364841403711415678374201035575996738354720279819218089561995664702504556863970359481137833675820149966972212244498430811592619299517449507571942004166323710847537527204043018582909830081131562991705502115755948922513838746246571125135029267540037218716064526906550842471518075319942061122538070817603806865540493751585499170714263135963118576977985191136496035394457945701275682017674309838601962775745289652199717403285012689297223044369208232510452524753884142429341543156562103394942299503021000317143235476725943355096173424142447633091255563544449925070203890236701317921406399447504979279966002959055120286427614112674003393177876412118993590669579206442951962764285679818118847973997787314586320349721224484372357014154500097813273846468158827248634629185125074445500053106049269955895791454279510577453142230243610949262680856353895058491302223065324556388683674309523771466901661473466284131579910012195082731001581081778351144254062065435798527689884610902237448801749410765010292275105047056241557872248452802398564363304592295386969701754065491086239245047571377353938105371878901015926502526103960477125967170326827331992189393039074818802179338732456733390344717528658314512752820515725281568669679281785173099522560568022090590417279521413461173534957613831090289602454203484579147092662847727352931452645526150752884063801746133535669072286894322669589409451955160051249105349435408852467912849893692598280332548662839369663773217558557768498499275835630912565749141962126124351451231205571380808639691992995013019354905579885609903745929134817276164092221352656205560433141649732948476993271938410780707948321381120017999519781306836589345316791466301858557135757811722463620407299113339402982141774302285796755318831696954652984959063084418859381705472029180273092933246858727007667340298351907680628217531301233912673449052901432194012178389604706069687045137763193758351492281794594555985675751477958351960991028091273815313157195684411643245144500368884039579980332648961752470554470911133862880604983293593750969177666305011314376228121428244512286045746408642057353465122081993908352227685230469484734081144002606195647819596750256800543083379766119011950382824752019068108374756469595894268530822927568309854288976052623715428932408670289092712697056683159413240365123197558702544950564512826443127662634027584633451299323609724809996913221160063324807324993711839672319860983299125941337417985439847919130419665293037010943500286065986953471358379890155172612293654068501999411839246409067189395294627644864058429591792131028854912488392196909755100535334364092930956185097538475436128952064909556147306882689387943275625853253914832750638108027155751477035021081762832030890513927077979145351722462687608497732027942181168051989820189982197925202995475203051906007310248699462355591381002812987786821716139124521535052318043755188100441853875720571543211852584932028208816062942159981781516061996884342569301103502293492791325689027521547441773629331144403062733605323664755686328751616320762194502125953305971930090391994852924299048688224919893210820920676444185339385466990620163343793130378846928807118588186347246501006495878690322499869317551938368189311907879997519243247133903938128200580709527564524805798014028592657994530622191024961629061764956293026219166750182671857670520566415965308577869436931934615258812245949469230996677544464187835199168538572292560572739782321122858756418033945209889054532168844576896601309782573984014568418883345054089997743245448122552634150971072066149175265621350598341821262602296215969980329574160652622531501374210590510075909085813401277011879621531556170962483465410997682051876230578586425504567213178737138785988836338057418435498981789301904053286682915282279330289443622638886342078361267369713176517039187299915189184524216070640894508769334378607915341931451224790388865547436165186645673675837105059072885908885197081254537307401468313481819067054276210232089720987530773365098789805377569832547784515320401705354943133705461664766783825887213323616918457521152634341773495647527646058992627828300997911793366188948779372467784738652732324084331452239698067974812177417131407837537814919001625176566451494673493617786935360295664790232622649243880098080385177042676443152218780579383671598913073958389285390408945805783453729178583803839760118562055380955714597124413858603900419384203367211363815513802745007180642992812639522404420947696412553054760748368161478376299375002993011629063243329222181182522844578052360665630844679316693458382055324301852705943852284598051410769126530945590263489971647662908124145956523108309810983697022468409883747810126484917689072861520750839228679282226782869684305876789369390591520354926313744293068821490010326170776708601699555849747194875303378268774568550293860071775375124844505690387560112384181718331081017480952611891668072786972661882049289608490529196133814879520408278330849347103993288809602876185386698313292321904918138299321355396296992351848755958043773920085921483811009986526017283257147364096762201283318579782617373397281271350426728845647194835459578296419356466111201897740820799877506685366842086476549741400725120396040193857340819086887556739131574365875287433120487177501580325742281666411146663966053657984462020245206735738878770499436873547212928992464666996347506855493430856671884802986709170414040811856152936131156332839217445442709375079481595872411862641378133147004638986205663478066532242901260755781422055313808977886753998983478155539016206961972655996890013998380615685188310470331348537775839057636030749574662320701167355648442827531694559085989193380408131432520018723226096574661988001555132229866610672960997602451492612234652383816234949916270719046563961445698894539494449417550851917487428606511604209736501726384954391530025544741866732810278821592522413268585990244360740892639963812090087053575458282663053849547992705095994299494956942493289737455398362391085634329148082553949844948769975056366651912689587237835904311047656704760321063822085283728053573237363693379014235372974214631286912653127769811846492856868803881083466950941574942606107283303505882694792138327834771071054374969685774333122046827079142111347384944779246755190295630351492026786807739346800759868865246390284721485778658463813707230437934342164020773299857793099719682943369391325191116116070594350487012999849174362592980947376794132707558411622385887520181779016524865803097837571830182259184606510796579809382553042447387556527939331579827500850055582117463879509717634790050409181782911495615905151660874469830982278311061675520303944415243054417595122192138290719336034598049713744922692593272409530318464625525696995386378942290316347919329767445290855431895170118306116356163094887362295475982238749342581234932415652983260181398770814971825434466866506090422246808316105735200652373025702891289500011504659766806142292956709413249234961328254748830627113829580900662123794866875208140529922059878144137965410552626012765086284541304347317210314370624115710861417461215539434898808819359969397194231476815640786340780750029930455016415148771756314119707687457299798942250710220691595142030977249141278094409353739173776145871194786675797905428041566222484943982341347073723600931654159242895435709982963713081583185832635852780610260938593186975635205619133619448807400394985398308499525750669842062926558715394449878940592796535334115562099930735428006244022018071048521115282361577327309930417428304617007879564338472930093639374906311187798855494839159665751278001459795713999438889979461914502237085074108999098885204188451976993242183326300274993771498043350182802396752416398800773699550189182227271188631579981002896078834028587144102038968940937036912651240255466138551523951651580458392459363148918649332232994646133175339231260839734254755793069128423319628329846475138847452465259933829542623573111801548608461020085457928273878992748933546588448881830347811230366222508857772993876147558973965732010409262231319187271674871153675968244604218713215625220594616471512396075961079313977568268934364025565462109915886081325772313286743681244548801505152438329362502631322244859841827501322872068384529659136157844020296027841435527426821562118707335129815873514425146891013536361071910656699402681198199220310215996878959261587972313083872605388245655333813651685858971217985226403276926191206806808665668235799282473666193295117818719045109058902800353160662859162945620750256846121565120603054630754078131810693117266457880004250851285580823394846560549398388287916020466184402576507954137191911514308271195144693184389248919861177887385150839045264484066104818697259396099868713195293113419586779002502658883999094918779745506494322674812712682615602419297614943720526064463725105459399303389011302294468053531469475902991731463948428729719076058765860897151927140771662961877350737225400554954939971560225417651411565820623056166113995554009989820595362788073415871200090292322913742405813799844501590045606024605533594047709460170982413907469153188554341703310468247046495414657366069302679486234412440881318059923674112347204001518818242851561749712517426199441207017323506937481532521990464415556429934572446347571767981180094867119888921613254129418468001763261868157474817151239220298898412477748431752164149130545325395103444289840749599825458309809895007588528463796523891482522978823395893328658684289792034508952679617667824754184337693202624088758823384887369832240513555697805274527412063402759863715744520220590655318446447559055639636216130416227852252905989299124719040474038874622966680723777318504577172868060479831028811596525528656897503586620626054102166246217726528664457932034149746172285830730010336121161779723824898970360241231872279330070842975270526442535607188029499272053129206474354986380486540279308532437964864910460267710610320644949226888763926040848004661996956346660511916427394968077837735403623038717314068914354213722934684594651811650654478507405045982580568798077273517597359349821567915715736424252860775157700476283956891726385169018652833758890782248579023239683917124406523511965532971310883836273090378346784620950742965551887605549814244858594444023429431073836594464779630667997505225420393982730349130248098582687584161041788991188602001308810870623786556193128756527461078134066506026695894049830095189843278284906102474045570233656154180147943695655970659710562546960750839629760513638272389085055188542836267468931747151915105657058135601217215275125443267023335896142652553722330618067778278206580366441837103818802409567904201367667142354534506404446168158478729819273811165924554811807257929595563729333259818331253463095030691277871004803320834506940650891925520166884703981411187097158470922250584185116595683873834979684094635178079426679092862604474070413601129762573860816450659526791253110632286227333642586651806241394570152875646455727486073791346111636533487496129558624978849728788766981789229774845616981595533513161453270678668128013241964820745768075793268516424855302814810775640741224545624074977873145609496291640215237239106096378513767651541974368402097779534348066147554027800555086710559081105031666768676166434585825092116339523501866888792386224259329125606325415023070502749634116401344870744617034873772763771359155783883763384240307751431891036044782579070344516551939372930618074405359187374886529170110111707706288661834438671970859920844563188027598622937744762573241559333448469137675524891664126529234469535601244106426988456873611646580578807009063743133985045902910050941244359346539060514125125617489430002840390793487238652650872689793865260919517921868878161311503208204912441659186638929838346038100630202383825599899525029070780613016310287863873936751337973133997419892051663568764777136397470254188200483164101528955383156609204074793761380236148245453972152797151813082509150716061394826391475051352648313959817447503416098745886689297843398170722212982400700696239650500970958774489785952353722425602772901731895090177122906550009138796880909913401750653918126365694708529818653118898490950275727824861883520606491756750974695274092763854006043095664936421350089547938985686668982910383743957430642003870629949495868347828903039911203059042106618957443184964465980365562030923505444765128617985020581254435313295381138589750934757856289014434033172252301231836255340097529569632013136008545139653470778602107477325629634005872004929228662257527092198493782816380641491533570342344033169228982161332558375683917867978529012514318978979087131757735292329340633148245994863241487681756296323225542942411006719488028850711195868529938356108896355884355361705612037556682332807922136973062008743190058149036926335465075689836952976416153339582722009218535929692071660191600453119248276668143108296020114241905742613172182267658114768090495558570417913677049314987402775475968899503553849106403416215592457365079006998976901823132888303574553885016876037207112625100674125682894917662168399300056051305156004180322916170344860116407177260149566144959525536091040778403906128943919701588761920651211891352596137115072757604781651628047350860825756700648254808091958783026813560966044558464348700980286600445157671510126062460941884271816160291730749407850979965101865532215912395305397312845070681048116548051475070205348920962754344549529728468089053969572094095460777971069331778591707818146466758575830945024055158546469048813325104498621117791657953871614211605357506451707844980116151404667475943186757478537574308710695491929344803275904395367910810549976963083626205849244513963038899286007110659933865442548196009772417589582412721369068765115053267955622902109471298838329227923097737687317807357667937932643872949641548029935878674871559040790020156401491224623819066757781220697228276861177387602738022144501267179407888733922281099872140227697526191869543201289218447034069715401265540789390052932957555051620326233433556526385104911228516633259783628169347365014409889995587826150087796078272097233697057981176375911751487482647136903770594027114559105030958692268957689107272130922259531147680652447785368971968340292655806915113540362114570346421780716267890437456317546071386651609898067494652434313319529378770376321876246894866543915023682252011081646465541823703335220689129722338515982397629634688862856403225371743256792662935832342506364774202254307720353490109879634287471534839208097268747351816897661410620686031255850971520232679265826876467993645882594827933973727116366832036297291103133559108893592908443622241068779054497340234034162035909255729376440834356104984432161864360212392695517292872645225217078949284730488430743120766655595039695855394531099735565917617656383226805803358605478970351460016508235666063965474995566293801320018057237014933031826531225598640698133147484237518154895794466572381746174851339932956288778134963889780568952091438737015499649498043131391621201388860535852311764870361757063728861765865858550409554184436315443219516108000307534131554866452331538913677823512858723167403026612493043504793368209455971318253972083832367967464822204589120832578471460489596853790125000922148881593964365801124498110338338012421876688738484781384653982036783736117454062398691898387168465527342543224705246099439860055490109267536492774128959377222870834083987927172104746996469767867385103390113170592020989687736685026763841816092036457813746887851021738973882899402060837148740755482595155147898569086049921494623646730857072816605977400700090618152729781220129615357750790380206183633124495535779783163648386596276689139518395816079823195081628863505116530565010113273074692885416767311337028613815229089568287569187193089588093959230072002482549823212415479367869998098574810483790316709940339278899688473879166576012460130210311156826347168388092959989809506663549762055682623322986915994485737321083395643881564094851734969770026846051643797388515868193301925906641553198082973917219192489358177383073102548310601422424193798150656448990543288731355104700585645118105933404889489356082580847514851316815749600981589089871438402339528387044781869497432201262542769808803006811011658082611224386224750265688869930962723644709419013663097766160965864077590334777616060205368205206657282806713822979825327231478812561080850836026872675532629807915080340119122287119448987082290793407760487398005669285234260471902741311835362868099243503174114438908449007658257525699074813344579794953447414690982646058666777005208554619951365943368070986617669462981708430232145378400663610458042660946884937760751556569876533705280388139900063770014165462410514068530245679020709088255268485242201740365495361327708298865994262828731559608421676683432082395449557256103713275056096391805430796356261376497156059180376118777282866129892545156588005642216020815773903417970154766753105142566532165688659700028329035858142046407662028801864544664389289363425546297619512722303377117411389083522932089977463840594422957627066184514324450224097787456089660996219936621342483268647345331479053666537492100629648021682965578974920993132761961568777012954234040111028883303616328797993724542246188815113439856940752000736799799083598306502885196039543866734430345903969842224211352203808308797022388162195787225953717991912416507959206665095621153576972342168628987408592995046362623303421672260930486508239015152787219478147050778784753343117011974596608638848170376777755192759556307880323745296334920347859898167405705782896012501850463144623764756929156777674893425288629575691063926687906699455375433236634236486567859067935632719157103742225762999115954272656536733176907587138669704512376893084817871548102382028316746048275609601031440066377310145468303304022352906170679782240783279439825087940982517736105766763088029129328016832966680618930161516672957831410281435192792953320755816231892715455306514400333663599069839202059546951172117025688641658080592793206301877534780372276250005133714703733947666802361763799256355743706856842426328165184681691176555602140434948412524275225646599130811068972079606761502659981620815148491646680869770868839373497547904744411544663645811571298834667833209813494911254791421882343936144559327167294144517619807788111296883865594170747796528408110846330512169444835462773061591559043380858406927517600337519733162552469685034581631595261747163514173028381187241239056302463960972138950295272193232976730858589359861898754394742236861606608089329260065213135919382705174282530125356459703461680217745255472304497923760043518771177473185141886783733629335962385135361798157401626212918949452598347945040020157824044501918593647632262116094333551496766923073453153080443740285511853865865319205933852778250901617969561759118957891013824731290589161880216796659167779071308377640624816933638549283928713554280008432630399445196626090265303008650461898748561601506551102135166775832405811481108393488294290128968425185730246846165062980060119551640523324554256092323354958543471018793462503175291069114293502714990064718089546588688844518306656891728869138768603231579669734833765936302109339966402600336375259112560087029174402615183070728915177508412610181487272179610490461038665111768452025264673194407854624196075435973711042726834618184390968431597734518173239218659106959913294271772313214560692510601404914651066682165218158347044236995733855688312313561898251394286133120993905226211219273848133893035460525658428746495985112309304407883895663516600668042395885289920287445135136973729067959063233556653335527399810350843270554511520022268674614308109402900570966055204746877035282511038444713473956912111680327944531399617426218341166046664259432399455178502736752033167114198018866412950514579025008984269588081086385647784153892095526188224250024819073602780528070020399457887734940286625536746287768993747358950306069418434664841745215203510487984251510271803963093266159862497071630979626639382456177605531470995688178539632579862904860216699349992784895568040664246659674302379036436991181018049304359836503365762063137201463993192186029333659308597032109648460219074631805302364075878701765454247075231501734760689330193511120121039648277598559332216346807168001238202609504009862573341672093882094067977719141701516255161925246995231291248792051309226656692392505612208012512847829462640903968424155576356371824898834641668108430138885219717809860378591323261226349462868626827601828009337769038686219382826426971439678736346468118006025596735400683406458897897589252741228765262892986460163842536220082698148721924018139629480066919150777782348886457507935309478065094955517217043600053415482785464135489701630964654881606247810471776774526251263326490529087739174711547998583880838200189555882578081389857336696180312012410365861130509363284173852135367580781696348830153701278784223050020859957183512630930035880427877564047948826694229681876711652268261916787034200017930567467384511556952898697780028432174981425761868763278110446910068168465327571888493932262366058892331921950627070265467568602833577582497977502330292644024181211332798665875380701203995789279178708214959479701246587627965946273369308131767313631729542456668801732026344170967768077210139415246034992406940344663805584932900520285743985014507409823005982208516015224633909935278650340981464893297333943733309863815415869285628049497914019966785756070807074543277616351099914520103277286103678154334900760111687664298608706030910407932128966091813351861210791853995547005356885951852249231287089267750301303865638849799552260447492780384756431970986791241650685114668618369606390176788279091491520985427614587570743203964988481051831549390373413002690278316732911462730005249571844519454802563842896271610295670896313816443565256310914928337257375904702516780175816050777572465974892949363604254960392704832546997544173443525428975690556344333274701029477061737486856376437389123061016933656405424858507738551247649074283773490961722731635908215280500382916561539664310265424133511707613771626468685426739825526626859739665968135621969827942525743966130184667821538821737843291628208044494455378696261628363146091173169834324405850055332974174880494028077476027514576654321269317760657167863281843603755319843282634398412817128971374197043363993530648369396595092116279408242093752967880488670166698965207338491065182930238567580059193216812971211032459077770282097485020449156551284256687165366768673581043499100885585177076888285007685563498891292694314912153419343222652294623620554442604991133539755825711605690729507737679687671129770595926027813657614325971911180090913339351169715289545183607772319818597476768976205537190287335535259620892430770473330639382300962278662559488739302571861240044975846753263632077498690038753829768587118270696169990858866486431546967166944220371429581698963285521273453571115770854695422671440042512425988396757853185348456486380761285146049163397096128495662434338976449729458120563921006427939640204883021502126495733760834177069431575990185810241080460521127245900421743014345284082582531968476583001665142813602565756585884850621440501570752721789050134282767449086773917942173418472196712602561423107302632104987966534757941117366232011347520235330830458408674201913553227345130870751830179667329564519289087541097459985257317699866258595498488944150365939222299612378392287444762263991977103121842468796915594006258607359025397276704395132134456783917875515021713282168919528055173057525678173911840434570215260691333742411942699830529773938383704500235746811101008176170373443409438076850672344248712082410123520638733088788509531566909154849672599972423498276943940463600865761264631520515080323735254052519877499211498122271692140244512462054663060298887126832490371038065618495349950448139527186774371083668924360042884155253247205397825288083823001792782170768199707069957962097438036438713152464874089475751944214120765862595706458321433527801062515171525795982009629967004560988503392033033794322614647117206305514812212299982045297990683362802782830345403664201780891251068097643145885765692170395253038778341819933089492318975421363838471387666899721119420773960512343994993950107838931344474045256954778537135451560851218136104542679028336902848024566663628538427735130002591985656901944942609225070394921054078783628316048741578456606682687887369652520708896965885446767991450094284260194861575404167241149994584074770979167268176867384216280124370754480676584806182910095534087797173670274679475903474567547855879648113849359974495021029882346906786913731429787448457355857816722730911982725220475472292467467016312374379749866005414664294535767022938401574139066144331954952712877706597317547591901147520353573249493921819201820094895673657806905090868417454248773594502863565330674973476593808241371118049929540347821998437464212818329272337254894361010955075951468068196899228873968567399810946867235958742210412798143440348325569738581871440065337823698810281367857657028964982648233686508006977741653314424943718140446858147428057267967239193528030360879153798086169518281123582097743902955124458684712345185345852186904372282780766252852690252814373620944498504436221031759770931790412466899287878658627073037978287688783973399499513971328918854378639343319767291004273008481475287542308683807341422453807510249749751552494722918785068875261245104768889784836330121867077665181338632763189503719336239927469434400407177659345178621578627628747621564066901382400340414606709955844127525455854632556553423351163666806199312285696674254864980929593118908024481375559759829465687589115028396436773355655897591056457889654266399513662496347230649975015232055748756600963220564791882607059628142843234406032228488117025966709444689118426028055906547706713542620984730169494296470605273047286862149201729185092468126315988813990218102757463322521559151310652071869771652686544329886342877310636132875307091325335853149760985727968260946526795711129902709499457689089488007089770470543919927677077227871238164721023684481414955801667324680160941071664569805497819136032089863355701349934864574059199342161729748399979910545546974574419421507648225397766746522977957008264246430077320794649390911372796955385413812449521400391762538140796095081479924417111898581537299244204909291604267275767812636525038848448317698123144242492235369006906684565722337909909204274114226702927763118009339880530851343716989445443621045640653935341915916201349839130161468835812237780060797213331855609398149724733050721850288644646836001388677397801348157377113338097389927250793269156146068180499598996271208990643787184228695718916100561697802970077832525645304222242116732757788696334445777126045955441771902227228181887977135164574880857475141454968609074623737204948281093301308436123009328135676203884220967181479171796700575115796120674607733315927210574951904144507339359227194293420760740514622162936597585401489075403783500177418908581375635911825523216705666010385557616843748810003878497943897906062817679385236697193163725604306669175562550282718489132164794509938946437479694877297750374527412014636279003567733708610329841059058276882847417284928700347791069285483999682533217890384388434150940087991997643246991574369703631055257683128416368110094383784202568045109597606372928145559461464316887523579879398179023960724047472001105827286075188495901635023891959617089515551553284558102700646010947440956697536099294545503084469432671530841075458375312893304415569649936288917502645991718823005126757591440205404554533777244397483629765984927669452669688109354945969948855051806973391190481241850441783105010018190767952117368100954653569253839773490815629002278564497989940928823821605572757138065866293175509281281126408714528239287181333627442725450960101370510714255533119421200753910716760946610160180752152394015150999149700238840309434146598011842954428533902257272694917046654276646330984651765652296628821610972814482167267237435363825035069389097026913907153725942084059361927997475261558869914431243924184473585298353111246944627354886592020414776862364011858825972563087725743274776871118220350381152913517672096263297098138568321771613492825662742997406522482706414911076715640109817905641824290166641872494070195992971625457711688342821284360737428372078705096683267758162772176633234466265928623259885737850114502055453318482107075800557538881915634228506198713342209181869655864935770647456783371563894638676269303514483762911772726273261081303873531278338061878291550716621375498034837002637886515864675276421962168806888955708539934189121317834841621316465234013005402435713518709893203954460050607727597460094941465957433552398200554813562460573033271770926789601708221039991988879488218009553463351146160766224520658789329287342452622013306627418836239815776694469610870797708454375655544683309745897333115678665672919734470924621377417369918972422415605310138389366375129669720903903082467330205737679656349970080948731152367317157471453832688472595088825828634342407851817329497317668709624224838926525114142612291323425723395783171484913212727814451081074354136299672526460616470156071194563021942942614891090937793317049103221307821639664688337507710986806750791606306029952778854047421538439807446273650737559679302218249960431612358603288629716682417957619269286495448007872983963668468540758901194589489848011345543735656776273530951898388077548866207854830483147972630667481851587967872140193502606807093716704868208417123452118432426306667285587081418764415347715454780901791730717236036119293181467123641041860912343324538229454641074105495693782771938871711405900325287428142254554629592911346587223474798248480607906017309217400060002365319506473146765948806155895675387833174901983682486372254738959682632041592208554415222639963905663283798544185084790557089034382395567555116137460609306539233589431480352001961517914665564901540770475608151756844911789276771296169470998216023335877234359911278475474676331953527682307721076342366553666073002375818994263668440072731574541764786149241894077944517592661221585467931106428162886636797149125125748998236197994587549878550501402378538651608186681067496972806436027099689303214073294985010970884914945143371815360110357208664334774235627121677781718374898260299175584256793388288785602756700654050765753645272102674668802024783884959643485503588046868983356814995345153939301070724236280870221226554621391996139346092490960860838179546589073337558160166071790670913718051411901842172265574314185205839485102502165269657610555738518241439120102861103731975772464640998498348845700823660577472959972944929966571735177308357485336008982406213577895676610445669489512581811804057306598686873556430974193520031389367936831995188880935447662082628481267494050809763605330213269787515894331178827612238878044985244453685615056548558202866512547571842088283588286365761040593685476021239201944855470012767424167301742772653327864238943856219591812283207061574118144594091851919982520885696255054828598284060065715098194891319776889718210800300493135684849045634859148689111012765753966955241211759416041068230528552837440403114375395083675243151919594018762196897050608327742370019093592984226743791147981008763795194712408308396590893900610940691734969754476727326962149653372467551721432841615968917946817308625463663986024787903102385217939287041958411009445320101413905828894079405327981800616606341398830975369173431836625461512538190326966774664703037669054975248704370582765987371853993273276071221005711081649522882489271631268096252852705768578960733230551431309083577190480565708445563274212858500407957888815080818464899112036752275218354853273911701477625159741585973591098591578508447192996729621377546845847985252523951960171127334754518478911814612556843267760217957488487706376806405636112929829760925502395490122018924450722117998254491158386163720391921582805424802800277499345331621200763565511387806611010918315463379215398161427197147111127894285349865976192550420663916798895059069205384812955037324892724389924485619510314647620846453173746253963367897546535678680893398177712246720055590475724523752146639577468549262309287942173647079544468434909761381279909680956375074801335705512860551085210915004280031701273787240938665054822563118128110059940661681162910208350588714995130134114343656180414173307966245350714196538909624475652723984656402725334319658393229864527170010006508442401827678776737611106344411057338923401355056457734278249168519859562764594804342654923345297807954552021711978632988841592303485685377209286927244910864596907370240088513396664183140212200572728206605255896007886661127708062775287939551229820407388457111292486033034557715186454821383927019711204057548403295848636694163292689752879600485478235634633360682987176811451622813013576084376228383635103169656878315312636228354578466102181261505423105322631072248854938842290013797551316073926105551951744148268058583192603069393158606490261749153766356593031092166025693985153599431801279967226087547030972612367633759603146105444673616823885536903485396456652626725378278612487102405169488716017621666550332272805394294210610609316357385585259683384516863882114921407212120351115397787075563272489427270758306694835724843172763803791817022917066837158393268162923455646829514135386592669595316523343827939241978394968147700128949687794946390822865264602456115847160444509648723492335458073295443471367683826589644609965594653880214876011954539176862895017786778296040053170526762103767138931498995726123412024453469764751825398656882824626652288915245854913571993297829173435732040377143863938776860973444188171058966555342551923798822530605661878924453420505856805749084664523220563194445879466356675296815434055838806402523020194476125145806790903670477691401056939646145941528212519732822186611733270896358471384814322957415240049738957662806298341906174954241781714862498688311466399718572505026596744517698050501493485702725091724175309334571856870817429954040140156936630155997475651804913948296874711839074842393809600824716707390888706001125095619271277653610184404180146102904418568554388293823685080615013767849599255601323018482504334326186082207378839495185172574130233734128809096490150589808471659668535555707771411429528628945868954626230353057121925174556074359913645947840732613829749300030813779653368280183581025183099267407742916593640427162869959341214437967193779010486455100120181259030436575461494345759737947084976520301633867867782182065847462470452978505027650991237951766730380647094517375153793896212459237343129064632722829163210587504191304442986051508615818979664479671462277499376142674838165713415678903157448710847588608634604495804961274870887285531789330368103869336583681747418910349958538443402591611365884448350271023665522439850601158870776509499765369688338098963455027811663930322179126943305863368723670077345020714176321703447820163039293695289883916952379129292282309979160800648490148618486966088946575278900800610737795809962087881427926259380221103770103793406424900303367980450470346712776081192956750263872920823514439199868899361568557401359679138813977130006225939929352854761033835602450563490331747463981966152191719338929817414549227337606299661728162265751447229886032513316285933668511622891974234309382362147755196940678724975353233290010152066154802194002202768171672255800918951127549190933696631355536954119400058981862695828314712956260153145656623841855418954409461958563134682091205644906781965102460499391398138628943779326453998473324856225150114458180469693872030965055472709752088762695159501070043926874343739222334793616926607110942685232003372209250926003180740261870175233679778236976217666519274221520320389228133711339791498309313398371265745154296385767159605132720841836939780748137045191386893373936397391153003745761912149112186027899929153439935137556563725239025348524792750752641188958778262010614507176876744222515435198537307736596090165840589234861084039409618414935363766758845238442192157242588223297855008234340569845013720912102940717704370899844374555638264945206828784783901550167916884715758324126611974314498914395145261536361475304075800834011507540523959564137807516683728242876525838036026865842018858166134060940294535380105898517942981522799188194668037119316726675428809331944793937735639784007667822878576015411550940383233033594114477636843497102537011240045524273594830339641907977518739145238249945418559442226654624493117162744616804321467537406529308110477173791306408320925523599238194940202063088173100947250907261752616042748942255512880310238299815098785090913507242375479091066247588922137844901708138253895373475078742036568719507446136197881866902293113785978123658830365683551858260200282908598965676782752445589254299516438041649220022485237772208625114432975513350443331554073541853569160063106657192804115632067871685125683483563410391679923405524811418447775398242702409188754171681811885296515747839997729256901399111884810307055527353417824021421735365481460373367062868164494498603131653332176423822988105210948597777814371445482652790715429080434988061466258975494970536192792030911735221948751330209163818822171093793332557912001718054487474549080932065743651965065594212189114641427882905765799199433629477589246477732602626480259753027638626130792773118168854008211595592813346696529032969397239231607267735784271245505240761722192018498525960971610945755635044608891079005309063339682356655623588256443207990759523309095515760048352203955559978960351751367163714164185977868307684469299541847609516855775936290372374576015352500266368504644797604136317851183381111275280681310972956907826349044814965119684866208550372064630331024013138614798148620031293564186266207949174101349206413059690258430982828591380325088927152750970243977978913381465581743455522597171836718397604872148013040197092369198883537063721661508858787042778540949861741715030366890356432120070181886630691587051199040758885678142271814644401373121356146131462829050786070971125922956366655436806227305484343556379205209661472921759046491133612137756344501600180961717972164906041075205398480348731309300233136014353463980778092535093511503248119631197841000507722817629542147528326785976922272015426510538470010893123041389972064753537335998196081162558448622961798563780689472038650288679907846998232302556457724361867189814728919631228868336128876313360397114768224635711982090874521850300973594237243576666203409612695227560035000863286712224940602018722196791199277912697982121915431097977575534226212844541270866814604386242724728148219203535854448997352646293165031477990236954587881911357834029805636225694783117793453925823565906822483068572690126888675329932004975752215463952880556363033012454740647760368787445949836157414990168547612099414977980501446251878116009330180534265157477648537204756272419991345666663534744734077091145738054239430335772039133902437832717246494730301014370353204865021357174379200710768096640231689879842978789863828166940746961846522561102897809906020940383158923603429210328425375734265343325591486342164404295772959829460741134705303869088982191100180487475248178988737972093220630284824372230326291884689837394732950637458825121332131370896919168178687894653025849110644165356621504460011985089955037757801814813226954797800556134314634663453926974298873834955223544130958024972663771822987370982916370252619426772338187090160466264817510037348367834389865828142854345864815608792625687386406115777063067898470154596647783044179095720112138196779293753930735002117299512561436980526833466634791557004060378638398326029316543743351828807388216526748516899355804847847161806319705392118250678715189750849325572989330881477280749658553449321237867949790386347600561946657571483372535905564280406396102778534394861621387352826909445435583256375659661165024369933238216495231125108829516448613789678875442729595387289497061475438867318842706371340305904140278106386205742836151835067378483984311965882370004378867309233715094467955262578202761237169050305462506769428451055316316190536337903645610738400350591536661953260443401865729360983773983124310998066929891625582190364963475145961521402070258667330266801775094341593132592844616421330043806673366655005835569693478600399845347009561808571892071759188287483775533041148517883424199939100289229100572058775718379444053697169977142357220844502186979334351312113701148705754961618763488668918232607423185696014351800554115029760088249629270922974507023017043701483235656175170464042535251463731037268681369922881630398812493091311838641064571445733840392410861519842135840213010139198180972917036543812718616874039827455048806104218121875658752132740397109733295082762907211860393671399677120195547743984998059172192704349519858571247386161253184102258901541655637492293278323282334571142989736920935881184045838225186337623614420014177530055735513440341530791675061828424558184955481995148109743684622389366799999140699863560366980370268296027016348267179041948268516564680820081731368798982332977863880616634073815996594980767781933508549018871963026210582537920293708600885546817847154513729036211176688866466425045817966922686566413317890034753855447816181203959311170309532586221592347373385003959922978417808806471999813062073371063525400091035880111157202444973266625621159511717268068197511675786558066343359905211140843553459183685094703007194376465116966124212622029039323049673097791330633565918528770688081653595805399203736917370857150032161614962712257056604158497793348708026154288729138230287151517869498779231109461690475769702972737533668074703644289717315999008555231806560798512337412129036329342306285674085623243782048787688512563460494088434749406722715418378732092248029656278173065795999704793251163153625658301937863282161771270161274567442608479269289724079261269017080970955366054944707759543695668706414334061624451302662897290476527354236536142685289658693787254455999264816166223349905183536640099899039717755207780207668100440709988130085487424587570567876076275285149114914336505312733613258023936916326381060284504618246462074042400313096652824726783519797705376385550803548158763228637004524450007163864446474527193756259837884812465287684571741614249290152934353957199314038467625140580337583604611861152039487491705695163370608321633013928194817585864646247709884993395534030026369105545999942540323736149073880580256252342888927580147259088147109315703497084275066240041091234452368960354795749159822683617440269463179375641847915303548075977613216708897067101320039748486107995502648233119166999606078074852647133027852888462331873136761114148676213167950753648025916545409222813671693257245513386348458367019931173546680159125613964677279479356287360814748440763644308226374311551600213086082788273531047857052924504516608839494413782582378432699837653163614934704050979311192541549925154657104398490117829309562187813216360859176358049749952861914392829640523200587383654513992460268677864188063902066372507593765116538381607277355292934807613586030751220702717560116985065380408151593994289857274651942053399448829566791880920407700349418508135711309623450946938279754220120801794352457040040522694283959561862372708131728629510149846730443690150782156250767662892339793150463028181946539845358913685878264262983959786873010802226633150717245572830534107692633442341878039871298042546939461916405060598801183986853355372749794690140880218792960683855174651396353221542107805188124824511439483038443660308912027307052460969135152920783807837365678719633296682311432902039227755356347587556073190905479851369624948698676659335108108005466480437005993379882876017643594996979488846520360644231367659226798130071376176279222633836566107050024335537421437508846966897613356962000521406614230233546146650736182409746368182979558067301095129788090131464842686553998024002740589180684947718776089273800855291929639141412008644871334605989689090547577465194913349859463302023863352716177800039422955408380200360435181214644210468941158889132537292838449314695581557632117407270974410582363542614976328700426573868442956092176046393718585627299843889276114628241401119907811848139497243510458770666527171792020758048751009612425253564655514298716599827969555479091020521186263372879036505218870663848632613059189348159063120063363314040722806521133095733766610079654850084715821454806345321033704046813132114752235370953094633504715392667588425141182346352366547994359209088829378002872041836690521216391454625660941027576364070148679426045829227898515666939096234425803839004189579575881206739819790607058352299751376255738346561356446878983486717717473867497116760253139232701930735491205387573655655592441294872864865279073940928506156989284553919123987089546999692613432233396552643706323404925532798544617521247102736512537696208828789071218506468925911442572287500257015593898901440880020628948310571763179300734853793922661555734681810743243286644827992380477724535199237156475121779286109596635894516639879979021397923426290237504110720087951717728393546918322304533911036473719671524776885343573314699983894463254800746173604714179886848252106297100965735553468735068219145914109383678510535929216912518141669328191459292489304667374444382649330691457047232694066081239391890780104996296796962423193933267948125903556251930674634108427386348527197525336306480316330858671653855203744451766981805164989429077376652159170263823313686219317366950683671341383574124081578197703019594818093128774740563485881626447493084007574275274467990432199545120335838690066766113861469033032399910769396452046841391153174384679750960755325711722203821298811522743285907503291042750743223002071107082660141077307188022725895442179880665767028244650504388819882323256659881030463917245781401627299365682776756258017004903237231185590002130393490206078954163370656293929997676408737464918480675248562944511851289975037017844213153040690153597666657011908392051509710831543014991470693237744611050702670321134070746202493847910100621927405128677965401634530260176170462076738861901407017412363131963414711108858747434545383327462612188736900106716208143996870052937547776957447461344965663307260073473011024794563360918270264817441393733357175435368134959246099203546529829480700116419120401078035836237257429624612206292493236073784137833655350261810012264122953352406020261646890579367545566021136743068679767343253617243054112008375223721180693263678375612249735424657507123661966079628205648013266429038032943401351679696350854513204735055372122361299253343840917675910182772398840120790514984625785082838191288115941386228480982378582056960358819019978682540292231189828513572302369803782693893010810874803503403567964272232235398854099232987747341182275189085417773694543600237458879553851952012203587742336905990751231017214680473937600973044602928573828195635764667028659950271642970071962766625003301639347381610952369661546134114376554938615636148965070016104942388981593786248279442666146748363268500727100548244997101663979668909389385438620745476112965178218638552075624151241930431856839404167941240437235087178997369011625137649926280917136204079851710684879113998951362770381440102555700425427790438068680640231867720427624023748075722742424544100715034993767446002132697085189110618319004313086760146996105492655508003442846725737257577776234504726021021059107315872177938264041035488988129078366936745558638689216557425908636889597472755141735659446736880058355813182603378072529924118030521375233820343566584733887994902829976234289998444320955586744077547825059708631913825082035787916397382574478043806717866879338033915171409353130038069297257684420511891884793964257710018428108712618837421827150846637927528131471008837086849907401412524685039014517022885844999874703413174009952293205079338571746129607605221878590825813610515056810297834373335222060825109665801016368345315235661286175773260874624285047348953895243469987193031220328262336393860912941070889567193492655577879009407728180647830163097526204056606240314153963594805439210118334381423949237865408282692619967208665705479113594625779694508819897263924043280385632320047574235031073348563613018645573569891698191836448661868909647883085114020147654214941726142826689132455484084205213813954676098155164221161535840859418320172413850744726986970978836591276533203993590272965724598759548974213751863539066799847930127492016147456688142267286620195256966956705525762285853654822991849849598648324591741652352929820059506326056480603337178499322326578676535274665697780615130537263154816291823140622045051733174655383409401242946231609942957616102726062463524637031409942448415959329157352066250520976852123191096933265859975089697587242783941127075732941234501117826468587177360360907970425322507808965975727584910810397593092027513375785366058423693907978099347331217340664952357791417420343263222437120689388244752766549558109742412569422938824897674301117289858140516365743146415612325697756498553472731251797374402384722731497534978104352434453886534614785095846566648523095894977596366297136774505764404085777769863290178349804306744439396861800692666109480491645710942145986605433195444719698223309526751687789004450030506701343166378213256286114054193740682033710643793278736657742406914213821690625328444951481560011537438323980416030538873785368315999898820649388340042760414351222296985397967479102030603316372243303113090508837395238593656738999893077214373409341683718134006664799146699719815620489565329068404527638747894667095058664374353451809639173707462153664315654080662082481118009774470757357843062258327954999883378658572216734447295966265695154199764030171431348994553743592886425399304641885750258104807515290237062661925451320066924421804027458898505701639133189368942008767960639465599667894177105169378749668270152966199548846554430335867323322456014894051516302168393190967058632789188576069617328165196703995483624726788383941257741918559096002378126215313127493871522017155834042051516812158498461827356924660762855763177222049868666645726262399177796550434491350285917410408090998511666075729920471606958123263972653352588567150151729977701163524930097575467193880549096926752451330843381962954302930366510034207633372114457743408991603132603136418642750769618013200680450947386239779959412857787162208090123060472532801000451853957369498666057422789538686072782468699276509610856474014167924934178246721160244359245421930440375472345597263489341187842713583532400580128496446439848084002180403198293682739883908964050850134092403722172258215099088968414972902117239032314314654277523604489285688746370107948616066991760038447598809432634736536592562233319246366647864525407462207692972736856468306758806935831628358645412260727202113507571935521638203999169984210818465289398586520084227062963470951852102139562597359884887478423837228720190134471864750529724451910245348195913339000166751961852159766910082660410675361007719189780555656445227053356178880848119943995094497614377858303374900037037007855584284755961060321570293069001721398686726320114880091331108861425155440546907979446791718284898324067006201342207996181401584929670920613869937021914618594019539264817175545187875507570263145021526704128256222454929063897279417675025738854747506000951663549156528768560774218538513984687960671536218928457506425729230393327442627291204290044225579404534499137885561869912755553872826466432690169214965306879131732589288051876707671041097937955708445481552746762258872575809815975332011552532608228479877735233702520223603647599828222930816154109031730492541471121239951415989681053904931966788744976025205190305875221354950116233478758216710812062001958546885190297245633058496520055508685213857025443413432659304201109376041747026211147784477526636107013717257088641579374528835883851678235259620831367363988515457328526153543153456074757016289317119237562887210403781060458131065078388847113465940383165809704851119970342558063771489238243795690793520077036581779539464908153474633036096960462829034753457584159839747420492239856131822158113248606352954370273155702974227797245836576254021819160208440133881081247358990180476145846336844960804179453056687451580986312226499384897949609797847515920711769103080257952605307730077100126439271758378489285938859640226567415558114760736125149099005862871134205277517244018942810473834284824451099748247156715176839864150092574416598938155977130867552875369032609801210666442247314278074858922320501508445584310191892644279293872291198178472544595935129934239280229452457930103308770674381176772381753695311496711979484388450143718300485404785899633724087591775717750957456092155023723923143611259757062319370389083309064655057526721504995824025786711214583669025666001959111208536113805339424734313732491294858302566036040272263161923558947668395602274766953745059202373686969451598834326934179887746059274187814002652026665562205185704594049511102638701324451074126405100358638852386622779943867586321427755525620485702037360487134290867572949836443299611844235839044933615344317615910311299411823344040863772034560033000592344813246107355632368856864325390545809210854451373315795978142310509195375124854903573910012611877601192529825796106840932571746980332276756861562919722941245432549461707645882358432798118585625371680811845775084562919654311676839737233883315039903904398610088547068549159517058545811451103032689531074158492976725560619235136730933229920599885199952538130237434557634797038498864696383080104909892640470526879264811968487986175025537539995777521249383456571529866577826228968660214521239270253088787489396594766736323416333314721023642902926210091882376752683289579135907509101411365004378034094784340341709248057007830897817065750024790375069909301514795202800909819022959977110008931574074546252611597770529365920453154087587054182188499876361470773617480319237930388020200764356951985127880678440995427086587296060314460687293644367735814650853607537194461631684343374690903291256115149697533999127163058156263315468282397560555200256566049493665101998857098804295060894930233486563642383243225741791931232187576350115657421656843551460462745177191707670748863409670263273378913226668785734905601763747570141618503434024004237614045165661774597388727299916304922741350418339324077903373977399286027369473733637185974196785692291602484992648146100569615120939421642122066655225475080708534837148591189271077262247699160041859420634466599845969667376168868518105491147814903344344490585324292010738048530691075173689738571580696815049216144094786450141857954028727900262752538753335213538890177175006911425839414413403202620750458537758084000707212989124708402743199669829313510829156928011786807134716916227745732765133180236992765076641014080280811711325417060441632303330796170037557999378118126229913081183818278154224182943285591426721821876621932533456220923120915638003368905855516305080511688729174162295147959236121190764590857994954707143589689843404338281467267491071075322926023273555197986679507489414082768654675895589107255694773822722472863067533363905702622655615113696580620289200207282501981626649500116110471075209084905659243985782669052186941920367238349184092150243011474540080855953223016863938811418843577997894354068018501008594066118455109615230185541780011637461448565799667895410539514329582609064631979349632477858190901153157284001531463896263083315331973375266210612704057399779658387626465484002709651232293754962957202540323874200836696663947736791414618245852032323421524321338327628689576829612542951454901842931251384852111654215318262897754325693035605099931628718917901309877550116437683939246035730034307146747083011921089508304381566582026058290591255945924421280273963485199493020345225165239073824030441556245017362272025960024517917706293662462966099056542466851950033960185685418821920899504779283005708193653275611575341111571572030875696808350137721132890978078514732695848623398283871082425783375268490450431980135492837498147790922622374117321003230235860625211211559967669843826178691491003928420221982229667694425026547049924407133105763675681004373403652390702533131538494342957040734044086678396020256307698392894576375793546131373492011328074859373170288236935805941168628412389133340727604511218145840146723718204478086973453515943234907173103936647960417645413250631713899529132207967878086638046154701096204783102440246104474318977823043852322991615210930999652675513701408561978482144845273780667323510963573055234944930960905261468157913668302363227246745382557007908199277845489079108026281957506542851722263621153606438100638566756456337476785479049207485030007164357406008970825971543802547350921679274403741145970950819903023657093172962906626682160959708338999598553260153309524072633704558122567703007616804937008531167361587499169102151390995318414346208763516180573598618297350751412418075685307132329475431332429996277629843024930898526243496650163333279741812479000659324194676953642694794226763031133281423250962435295229380604012658228799236193102445677361306965672758730980565399417847490259249123105720043313120777520826057683096391594125603607347195662930536199663371631471223539227593420369254898522384009425489165144378997456306870503833744493147577933022796650401479012663412433050754117763998515515067626409367053470417135658112069810065206132857243900663491299168163942708212801974448677835580267374959746201530787395395133428555412826753633239310381504126689581641449303126576343826937615773029023183633047000783029259894452429635111488225463311347444714484696924325205319030570842330692740099045607687451019811542652741609067507610770711914404522471229464562138447993612905470763010291091332508554015930375932645468989353200832080132747241919660008313625832580808841869906736083015620304248479540917215236929197943717752495957643878301893023227316060365681238904892414573417700498407100011355673829456361889258087321093114346808733308518670203482314850824117073592023886296636110474957152839171753370395510062611866641693469448300554034532220024601546165214832291627179753702658925393601087387268915164470968324753861270158199318381226187046002648084661017941280395987512396582917888033431034750777165839266294715025110427557030664581094706478508186380653094215480921045454368451947841833412206615588767436942903058760653097250110426791348104527808912860302773174053902025920802685387628927636238211179891823910071531574912934938664288349804676800072687747321473456685785273595553224140850797389194384333116438095017412928572632097156065436545521267554672793897059902352787930659410967714044347897261531508301310891019924104297823614275782559975230254673993326555417388929274329802374796952360452186758290716856992873605710824179367382844907194248065909903832952748917319897007261316137382025083454521373375024142017717775714360457109445190041107686355386890175656072469752809544137845287532125374265123854499159702972699883631138576260364159208688546279011854064499095765669264428585647873752817483499973729466338382007233461999810757270330048831426833946885102144982924984469993966195372652759603082667913234339442149298149075096727957288327675761821820988683982528827437479459267976940644763612879811847036797856887437153763234015963515506143807645171104946828815685837473058237657361428727172625643828357346795354791685186004988072000083431356729218825311012899257595463511530887011050047821883741857035930617655268598795011313225974141265338594742717076452832648672549682055426647634378624260064420185151516653169912811132126864081074620676892808344305105621663345587501951289470228168593064538505833714834010982222366219314898496880870404829945392428298236173585737796565495952635567226934033591375540023487061869986784845268474544751149380255179397282483829730321493466670604764571307128518087432542769686151816691824130387217476479153332873104976206086492078160937604617686212440225576650212004394861703398695496044950175034656099251639640985918044421588541557622771305446792156450174360567912013744925567646054329023376044544752665687301403090087004517459962971594887013556337070341264548496187237865190479266744700212229445451011434478655644569318527052505757611530162012225009666568543677888548456135781995697604138437863148510816851983053178802144765897718805104179335057525169984924586198608303257258905947124285177207715237711968391857414974594428889521092887743758795334917936300914727653265014837398287505606357100237364089267708619567036806778976516834490286304747372185576442707675349935760022831159838106878548011233074462750612936407371636976152619166400822565235926033473307566862534644622200732968776470891122997041618709636252274375468625020868209820678010485283960968221398590001691245084829501954586459181577203946528620842438428757755839082117124433663481760336317320681815090380241587709993385021673546569347636269166322516311493297132364588754780574001715601954703517023318094587012172036514088237019095380733322737838707666317624961672288871890934433805565369102642042443412063377221979367567576309459286598074152763128119601251868086152539216279037735924552811404668443535944989929896741749335842205037189392482283237249562354860629405542038311480501355283929186555282084819339804076059446319220993955345756290973516289653997767785981314081252535398492218226707338032281942281580227171230211106872435630496487448690630296512959624870591482893371035097240631484570271701957084083911142033027242628497092736089237318733401881530112316287802420735144469021402287794947520720704598082828653547193180471319143282085613789966867027993500406861490798922840157376085388745362081453138038453511868968076056750863838072310235196684227460735723842317977710161012613615691955116516226253197548006037560207015167103061304486883843542006287128259198413986067555776192594483079608111681122377926052045968611180329077135452437473015956708154913130825531412729871302844922333271542402372783642796298777790156830792693600566458937200276680489369768575850339901224348731659380417087060341639153402046163019204295418938244305133993687226493214101539674110532498003958611749619465679341092262659164585908216039428643432575604839700485080998748361750279490234269670485447312361461713642005060117310869461023358159001800537035460946829756892566464806051470152731775244709151457772965371955394453525292765394723144424251694656134393620804501712657388192962192026790289719415779231439255391207513061870715805183147131034629302850688087916347780674116043708586018259994724113425143834406471200896359871287167795034279730283305368891413934465696351494577507871704737018899939631552753211666543591213801709531727401853220068642624335436600681810099063470618140514645809146882553221259305905912113682221296823781519834870017948068407790110712483698238598366908874847409170974019531075652006447180774836001570246658194347374054880225086793622907590528674911207421311900764818856596263912764168002605342606139991195117486293893998568901083278183773093313372388084119507551689484284944077967857507541049137582853372473680133750891254037418945410894979082301574657382278751359170352904316898559208250658730134967936638561826173829734969498760331089452275506488581854215579369848066943000672096816566694234141284638802440369894610682657467923682948653862682470303240343877623032511941200778220608539527622135947627605125036903605738858621499342173736270804326529491028862501725806839281023742097326546649563481645919084677033896534085586929293422461945556695246468471178415920396831409540125559481333730256940913140157715618588622874877493863108299208585491114642684434571088351576368403319941540573021242614227455832918833361993925475643753788574794928602198097312483585356261712375750087587079323074947987801883787858936245401700960745104925992222144005623592725403670010656866279222360933856645654808736046542995835366618608183307220212315395550957750928999672796385343769723840066180991738119226394757386235670794734054250463932438435045264910999459649498978726013712430848328858748729767735913688435957811504093516688488111241639330882066543544232686158339033865726126229332033243125780703379395539264074759251489150865665439981722294251606035440683548450168398943536840277220591481433687189809276328114251517433068355576522908483369264158825220428745643318947619739084924611671290515927819098777788267601251575375851247605150819219042424646690200219250209251750185624681903951222643075036818939423951479934075234771628832518024331628704317424959631458661703739513580865807841023674266292408915651449925933457264056376055620424427892812438045810162502866385479727867384903236515208179255827455870701907839427996067470292650790580110717581252347349018014370964788256820449727675880469144215251679799509799086209913794375989561374721598713393374298665399137830974931600653229485281037203509647481409780579937268384213440088362978666281156291211411772811557681286304176006537661979741795120481107513518138773003375072396898946230835402382200951013148478566207544248185883888118977371891145368874230144000031491230660835691604532393281431607900025609606451866659506187705141151224246203385774967953151983619193964998362160020567851761978158326577779618771487822157427712377210441098082384256196007786150198611758514747485381195343991418275705154956587050490601009627634053996706664325733228559589361084945304737696136610147879940256981034098131068516723172737181305930824502084064048426432111111989364777340720352836247755134593952825916821774761993754584794350648835215212172856188182928481727758133963922263372025477076515369880191458707049943670908752360564517965806038260002787531681675474744268578761826592292262444206850191184362704952744171832650518392973387330328856740056127459264568956365646663686040031332606655355970984577070453614475087507672456909030631699838390154659536964888111150136340277702845326174762767919539287794299267379801065236242084800882097549023643547861369600429593161200398618022554372307830010289695657971068114612841713083179508192140932795559643943885277601330682824047119547685153558931103441242246710341109519211530908858137539137380542077862355349551878786568359449584045602741935330332201965137430736835111627665957200916284484291897811038558539249765246827272999373110040849834654250737418731097747175709574562655566882794460852756223052311662430451807523224643573610824040918081952001611103181709037462388691914694564721887216710203538894178927650666663243857576176036869165117457299614463315395018703883971748996167276681299166448833909203196770618714953097645712678336336522949867919660810376919315147269728904977737874991823852733227596344800915545548224212708585324031155637977618210016259666790514281962496969910593656542473393710486889151040062323571062601379557182436416654242547350301821356850898796661835564924984930345751960648730959079526745314061196711512823263611348557320900423789330541433446253746771172336777742551452176324064393020592062079582987340252725376277355571181880959993668266786217301922377924291601200943645959572360975679036172560415903837504561316828946835074863740933839522147771129941498037844212097146989630592586738328768323525718360506402857816098950439669533251336414514700216151819921451756845580771477071209912622499045624651814178494471243186494569113455224120253030510434002451472586818483688017106097903715474760482864122686084220967107117736976561691124899700584919809374671974132660339134788186777857838703012069061557232100978995471832011948424025674134669971742429076054544709524669562693383805172912098089754023170590564428211092039824404970919291772948880879663392894286157891351856103351941719589984339044739334535531341731624240753912880574545013805647788370850108721082687172380678309726689743869660408153781524812479416154861928476835503102490530980343936883854211407887146372585973495649385933709368130719921619063044069228660388838539594668923334167050247417992799241191195486284191600919879028025557740760624539523599639863542492075670848150616071329108672394808425362790087760973039981902673911900333481172133422862976867164702410812416644407594082950230749843468622789048867324541583513555657532278599167747896706484521111182150453767426122379195286975836034661553092227016725247528530277684196249281444359282149591862899850917214304077939411512485462126231941903174695411802553717464154511031300749507529576194360106853253984131824222341700749587735539207108603790729695346685889227378185699023282580906175036904956405538727608116973363540955755474252554447293225960662041540674424401171699328523698132999684841277667719984177676961299675472747494097727162097614663032270708969605620403498301635734318548574019115655341126274365975915307038395878447207606968276499646470449738418126851162457977912426571053440108496327238420867389930876501066020615205846047166596257139289369242065392937578805657122122344663472859813520998890394582279373052036364067606420344201601266556479796193113400026358309075063382137700114761549792638872411080491338367554032925896575711772209599382781941190032558948707888478045454056601122795882719056685807739850159507071060159903581548314766826074438480159354918744682046194801645684956516471585701090559631352484248281412078369674132214600615296212733635353471815924655410744464807644557396613614157158660732122375476383927246384175948570738094361597771453038053666733504743201529841326320027189195142273221076910319622627075901490927298503613921612608591893894515269577283109626716244871843308391532325852744381652165360918490030648011369948978494834132825454280894668055807296604482057880324403265151117791970281283910350792996868786434088210055571847330847633430216631463951593463225261412449692753817910659811986009478313736557187841061266640366198348969918208384721421691249383799878321156072069938984214842156332020386804083912476579512716313725479047459934588380207439320730317247578130535748608581440353331064026519618252482634674276653419274776461575317813639263788476459462225091224398840539453323094615530637856553618712177290925719495122586005302477990735903570752597701163136037930828351727507141895158764085806449480676648500516463049792663907435457238863714886020844230527806553373111562509823017664217541789322325072852323404323651111311930219982747602253338444954211207127826654992983368397527018415255822757770365094688433822586993158784639464201774222285019826961520616158112609811596714489187601404737908145105415290891102033881922695555116268529097030814107552505658661027242493250690454918527129791318405921384757758026275174004639250375744458845546380446017958505626328751973222692900689323729773169385949501535726787817380292078944111234631379059719073016173907852409282744604375024427650338190076855302563149585210927413629395131544846345600283016865040309171905627730670824533129588529922234199723797580438155039628297703893217184344330334245487922666214420631636601497916443498220093627708782685076957377095079196013782243619706043165414909338874015121670782734139875456252326714872233833638143954726671314631271953021781696996766873802074417322901453793292956710550113296167737516780571840286884248577849923927093511441650372189805567015947477155566548188991188923329139837449607264245805848067016054479544125124266356843656848395227970018720438126970627226244400390052769974461047202084089331987770923167116950443390886537357472530372781302276302821115273243589421318852979852517869829094203813475807528546927735251043430728143677621548978520094702829027779140668859932534453817599549291292012486198527320046978245500329744128201691515920788174907834850291674013577895834462749994722297958763607648237433549467587756497803553232251654647031440484146450703538119609570564834040228636275861052637172054031510101065880913901028309540185724440443480655639938224448287693448146763115904449263083046680581468668887207360341389869889250422657682646805019987821222126956279818131515707374484740861439362071897076319414638457070068133862807288172679701559242068609053014305911691279461612862871389315661067389582381672519184919100827178085090370865252710646497812642390089267433994008874302099388466766748045412908306486209688003475637457368199497797027761976308217585016725784941387384115247375283496867067959804327396030870751457935013921261383034938543984751334411813913298743170996176503990461091575153308559596783249523739692480046485957413862009682313888033084731004361626006720772084470541556434901923439206113369541954384878385872905372022487416145132075848595464890504875737596496737796086622932390033940361841956550906684392397075106812108239740198199590995092963174616578871084088309781479855488856510272017428879408056429145842087304394167304159140377661962721937926709952912263190521988857139473743843030293640037322304259427654789436046306235486462362131066477314226093703252307887922895138546003798459123347936274647967355872991389267785764826261716703828495641926755724427285941331635641164745309712912523313655668478027453441082164276955557550285626044400512848189433683063688072557897224760701157455538004899752727482132973175139149057946229306876477343413655495194123536288373668002544490101283220748503040788703677169252587995885205821418604942627705396878059782176831576262571234499656543243138811874867145572806116650834603833878774525551231305202745938252274685536704995332355770089605958236572387230190827035771470037240419774871634208315536417995695057007539248522539762030079452080283917846092148445638154794252126186396583716676664754887017790093948469841916401594292616918522425584047421898635849493424149535623271794894553303824030829705370347440771547941038536884271759899515674739952673812231985903174484129921913512035785683990652019828447326533096895575534401855126822392446534215721228826615134566219348039984929413882345095731521245423006477715563899595493988854704921359367331858951956949435517727687400591610070943933121022307130638101006170826376339930007034321996124243599362916735653930324107224303061630571998069840189849691529273765418412474471085494271780027036750430488141636182458963711725191385441959555843112912124366315954522949907294931316049291572776432835743388372424665625305731433674946148659957058482032434472741842790765848572712902670891867774440992401483467434165486187931171610400447178124855440929778304653414050815723859479527853933796261571836317804781895272252367301268295899086533722698973695315822176757200752911580992169862922521432477393838520421596688593117552799646328074640453008748861567461994434463314155742278289612205740986710445321623664706084148320032908569226708695780078689548261617637481906097503387741837458595200560820737805333248150638024194098884653521771813062494720929547028465988861970651758619859564659113110140594494612885803956816780082217755584520583484010529984225822757032964571798305583652270161918349934949468630445624371956009388728790741408573343704534968097621655898303107778016936216706343804112641404924769671596746361165634880246684740761758994646697315367880923572443826246168711575254886688295085747934019227441841640502028411281389409487889642596276825809273406474519359999135883884796056978176822629812227563206364013270769517629107738697922127288790990421510202687540754677836136747664101195589672559215426271538802794643378683689594765217115113332004465955525024759547837378676090812053490779172212148905530544793974703781234079371153717873172218986211036032560640365571721327245982645257095126183875664193715391407889473615657310156072276015700617028954378786033210573311556186627154048070576926896907912098238771089960122479413074676012630842741524068333325251170924517366342074189546238495106030832750532659220449213219251333687464839867526198106104588878908277606888222364285072109379818362885145689190532902191912616559462665693332685939468625950146181762365596381375976168170296753923935979818224999628277978711365198657107765897490766577124789791554737187528033949123008903366673509321105547723081318291253513303911753271768511353859989929301035475397003090834320576378625580752365245087752037597053375405226256735279125358123284435919931327500362718424701972657489971667521663946358060107010480248538136594120894588998922413664790760649274679517403063206548528843541202775334479213548759242904652808504465755711563532992741786290444127698377017710586846816272463148807871096319324957665930728130320098520153014229712382014205907697250422644304223579454485536057887711917713000790445801671234063366389550006864254270706780500743798664527813399462817665304312295381210094823497972809161355527932552810047530835890247073611843571667483916609966792675222594634874052993326386292277912080885909006370068735734674899175968035100725515886406247356621004891768932372666441652541571273598299209448325382602366916171460461156215786203403125624859019130713816426988836027626052461582962223116223651539368630178194658454995745532761395077733587281027186493271165770342311203220034523554136607040867328694029064169186256502839313306818418096196710298533453147722183686618582362482319948723686989881489681525145710201809102776798663731289784114676064596610637443732499506746676661654528482613574057521156051669175669831018046391336697564395278517213970529588695706746809535292359596446567008072954006676858294157260056179742493839810600259809310353607937324567184443029244069889160339721434137393727044321304061849458798227535582886035184816145394074878287408164079040083380476305901274342541683880859560989393191093684335693842367015609398367126195109635333637606419771236888616128950064414237383893866938327775947513932289814334235476219603022428319959177982018965534945564369098705271867744303525474943284328640883925573428774590665456021036187260021106048095250317722943093687916438531106333050958192206505051666065326930537153257100768316830229510115554089791288350986210421534666944882496987482560391632014606185211874897422596384967706255462666820178384455411259807342691207499624862930815133531151242591785739920705688729090454610326221342119891784783284761458581016593167649889836912230249141934220230383832588707923982968555133525527372423381316735765811132350028756934579066293642938313347720197275307834530304215181776469650411361482388480883193223552874225948178506820813615888619973918049008462722900966942551369321210556035256619936457330423112465618599351535993928184818793663668798695589895529447713425133139371655328070353883548486883109913352240526408568735688292258991711664531449244626111544150288498148067077952690419090785577269046858836503035621747575449198020380016000752293815934444274481610014908833464737598855850301815034094442459700000704054119526302954232484062506159951391373052381607746374441825183587926439870091533703688744468442080815200381518657306493080005454791266075187346311148026369118850143268978963696530892054879549714375723684130060875863906890906540335925037386067413071245668184881747557963588183682026372469607079064195878707548927395918671470093525651485362968603553544246256521513539618468318115695902652508438404457021286683008124957049349408057760240944571715692651124699764149725614653392614508749468294662980716716824420862923036214644420703146575742946611915916477445224136445787461825801684607322417551295631637680733495066536695054794481309859970758760713916524289318084156622536832668361303653626800703892203037187881053338983058128237712527123662549689827986742783620167503121538998355014575834548885555402246340710065012535809129885789161145868424973474411977226970379039911790632637518879559567384067498454388226010420202627327798753302551399981908739288197881285089043663956293192630052260608188831074349695542309082704168883406592427435228597527010356441273102181245984638842862992532883087672149052100864674640636083176474653226043057827388805969585777954979018227671344585617860450676912953402079045492643784215114683969034369895086622595448371326045140898514835968446722513311321703988646914615354907200305393160625904956788105040518731231387581688429378529444006550864075905726031189332717683505617376964476020356892776536989855896686035774742642555899758349968011857660442637621170179914581110266894584694011099614534896588778938629912441800123735475787043446671506539756873438525784065819941863926234051898836047206362310753096213013486596485955815121602529985870134303425195050380460384523338540008492649722577958486636954182125568962812831737939904091544242440362955905812202249816449895422116642417685063210995707184394365495854850989136508387816516038446617467386448167303597374922628442624776368376381447735969852576860289130079793434947391875054835967181124646473028658953129374127652316166290279348504732256098291078555861436662225180114496069004168738937518646250949862775289478393710424395062526209572758360545149499769864743908294950547403764353675998341495086309706679450841164794863265600288448110437064620573940391896765854264000572350988488207426611027770790854327331732668670021301035555122454490147954767243162575695306722143359761435940748400517669864347143060091190227841456342539318013386588866936009801187170063157589010459221214165864223260008971846311891453458339392367264749418304087966287160587863919332843396741501364257927735113789502578329567553585069038651591489193146515932915293133545276355090150272652330925882311693044924464509676018548957714765890574252649466157177968908966094368230460688529325262970247335281081645759051116581312809920639752205270954112872741145506334262956925572745916430196437853563360619832233105812727841252459210146781120799567622098806803981008281860854187948398021940811725771681636948624347118002982823660628478021352907025081807143206422249578239607702347169102647922240856783589175345185398730907815957877106898919265278076035556143033207101153496402675675323904334531789418509675245780211396370621279425637088916396721837109938549239535728775185376607358846614233022090400951009158849748335583197004481596906330000144301171135860841576215822516891147054775617663744478429960860223344812816876481044364505754004228388575744033931667243454101063621752203948185643737517483659962531500155912731476863840139948713597758343396209609064111474241794258026538162551742840389903742211829384482619722510713801450738589164739903541109084613587992445751944585120993733729631784232123670812874729883400583694189480547408062095814980644611089594059477409509374002491602687257524001660179251962291998584909561590917021227167921870100677672171098500314575412761490079155233498091944519360110226712495807551138454219166939409960332303191411292406276567843725906821049439066751236092784515643531097920086773553531248575745496634946874333122718094337930914882045944697007018256921526302918697562300986382566963293441768350814491618235552910210895135558388019601664948572647329894185663416264099634732029356400324033393733521020934829782482401053710387205536141094940318173845025966563083616130912172621928739376090885624096484865420992048741713277238363322447207671325727386825904596575760255818712232487350645336361005438422555332682245419385164605274844243831359063213683600986996787587233385586255351169112824560496257751545296596779702409710787082259855621387660308749100333563442970516240245550946431890765968088973257009650841464383497374826047087418843972309182375469317017461789521167573585052349553124076531123511287336630144557660563847342331909400728169468371909407303326495840046847901521808537610658480286997717756910850434740174089577291042329782192685337451725566278242347003357231394274466307381697307810118967973322983952167441616012491842196537016848142072441213255151614107034654229231660708315182699765266935200832148419500624431310616232145066455077856800252759210903203603095762744693325839920986373860660685208965542771926205534578764854266112364352093514023483169100151311039275704362250673130058500030544832031851489973134935960750608093061146870108506562648261365490024782375112823428760049626745076383218735446354266810832329587385083599714543047767478187218682243268632110400682971655053181533303123945747081615496243419676163171791287975154074372817601943542367652059973341417140264909107000465417999459079725006706717441735792224579904774645042246961188219531981330146185621026509693589630067399536854297311075797494581665849009516952390840767465300360684313307158685112231058728113225418033842803277461471821336993502021721717517481729786231700949671685180743757369582572152051532693475356768095284868417996041749865584930413860900982555853940844455472068966150730861361046708673542555532080106107375149649777555385430797832981284658621874069289848327142140253978047544833833277093958242964433560906851545372256285219887536816401556627541561435887257759545426954504231174569705067574941135897579630240453414425731494731840649942834686257556051788157636364488341492554471857258899653685176698769783403447676017783168014167907755487409627953458651208635608664891940898659765774280696376770075243855505184248350111312638158849476063305768742423850284477768062946185251878721547758197433419452978266703639040732021938048263009465762955020705375057032818039925249391221472009173638790651785035752741658137516074781391103085937005744131341014791445028810654942031936207667198806539073693514182798315037233888579635624217668911641494676908541015776575159502084524204296489225230118395967481371526015164633280343195910580310718564945204836060833633058522376337094810287521789702015521642949897661088006250149886158902796064703735409571344397529077658163150389849604406727900713786648181049698594907788030631054153808636255600407407119976390900650723590323217074052501660791799001802951071905911770823411661708797266304035609787104197457148783084979882888718129074602574900905403992519200679385404153463441889548589393731380935197442942810444335092227181731280588357118748093289582524950295042374297116890881183187446585190073387690683340933885518732505886140997726355150376194388590149455068534072643570151234381952074072874074149714615405013666465003495327416399149634110144396351659069860666354627814563897854242163696492951725545711910791842110425134349552359611594414194710051745966605227945533703864790892226896745713598029375101454001689192276030887201201033618314199208316491291062236727848185728697332750768779505791528892044450920544376800633997689578732242780642897924288897820395259305968555660218946983436058644009005922886109546255942593295632412694936808576420883712291301416629023831328575415805749761650571826214205426915614136282713990815382421498995415121440810835902611395514819019382071117530002246017447799324078936592638229453727120270429264162966819597619501029213273806532747108277423391618916406687680285030010021683722522679435651138648656808950392578753468115017675496399296689133522326658016193932158824992989207318906046021052534424980844263856483712836057492022949324026583690151473010305097592886365798862785873318110140305466688778971010183149095483399612990552180354133506351099398409613100687897031616807018686127970157945312847138439442875021385947652776701176311883474673395089775383120495616685438161682744440760298952646016961532064932514475377868641804756248056116603807086018263309665361256096483847024798552190446554170501847327544081165386894705454038949709507235196179882209860667413622132635160532902890193217309193250449424824435222305834355789148674222513280807668796610276788944899939440248348735164099984942275886293312789946725319107636910413544821572576282514975442376319019691310340151596087625836114310408633287413865251608602630011728766552584222071953875316773235605667733814027493388448752701543931378924729272925134472809761121395771805669835900153593196224293395021352441219553212078583166217096608176348351423041310920377203832200460799160392212545746097039443900522910317148709360003033448603481053750565691323240870003806606564480722162090162220895660371416790002357483699275575448197293486093890243755966146125831966701152331441907108783399188575774155652418118310512250633182177617212386887066090687445672156128401502622252517175126178689356140420525514437218224360232246052157627602758938076126431232950624178567279413941604542694552665823841986448773487651552931237876791856457509212950854876937526798712973712273913068277921421370501194197306200934742388660016026223322551642299611768927144367267507368584528070014720436822876270351380930555963424266794496186030565473643821815311668111186258419061710534448882931975252646133884133027199471496648261372154252646835628848972322798501015822582345117886548446365945894596235852187093648025015151795717488333052560740367630060084051606830442465772565048986206180143623266962555068241912441179968447544681718503651926981085787014769523818843421671161124886714616877812685408948101619397615586904571132909921112892085552331232840019353251350671285610601171912998024400347361303109260066781654269109372908765024221276018444904319882380297540912466400892427022399475971349703001842213543080494801655738002648408462369296820292572604370469841359299604345620025909273812114650335971367168453873299879465308312293628727444801004594599115258794208283599894154682427422322415459926355729968153459053737630544571939547720316230709158196893199612008772650346287638695531685020206344596215799645398077493587992419672666698651477594792824337393106649767800927367699947968631994583672194827475447726639923777589465639454164057448578860519398762951774263401733783290693437316197079553887192559014638800909715033623345436301619974164522174157688865579582294590884528139148005105353929928814279560400843331096962996758887426186475285382204516070858569339509991610719136189740444184150631479151331107883227001532692603983154514857604384166369943706281485593220781705990517480213102888459971298315882570813221976561214108267073910712977846766058222650442081582254791480272856048201861092862122275636262438673097468972586212675972304799284340234306703006005548800145913252482653438697502974004347216789277516491689627559705012547922608433343860634754032352070996617962629990145338134909410259462144893445515138799716500021348186032883694032474862040253455411112175356059405461666978459379374427245733205829589122162760057444243284668457164687494192742825929868393700339857480424864313738600343512139261621813310421544903776108210792354247107063959707654134221124354168759538249011362733901222550512345100689632661694821408042578576032216892183688087136985431124119276121097106328592545473282730921960920733539029334062195903021400600744629968375834636681529761049922554449219390833942746687827664516934249843959669949114511260114787804651278763832825074443331186299621440310644992684970529283040943787483665301271506419258934043417496704170708410327670588183548687029955936749449862575774334691676804458315057446987452511205606809254574174717178398320720228154355126491471573267934998218223225267353251588517201820510430733468037811203322618291337608228997804864740206927021716949312501665618232213905374698720930250472534982597226207781883261049611790738945336615288868591336740032757181963863074393348352155113195953341373421328453263233873847213108787967026812777499827016466527116716806946680970349068255894830139487216524374388202419767285367708078898823379729649834945284968823375181680686080689383214769169377006145024518686496107181899268882415248999633371575657771986282881667177854426238256744230012077351711899753281945082520877463986648948001943981725008926530871230528946256377663331674691572390329563407765240890583698070433408566672057412266439431825175598052070902320376437536754965757154589334553195185666615709338941891766201268213225728378033522194383003983590152614048778923020535004445192097304300774876007916968121334741313380587572218010752503642754122285849528359280905461375831216142857130738976735060613012978549328815428307542175032280668359901016274977015831534515991675274899572447222960915975037867599057949581506739993720766629803043766416641669663636358230854204035054149741661284987657692550456871872642533267519641625764990107692236159851571031931290635327392261783290488524001047954467556716723943131926605958954648160519627941475272907277034160590190847022900542573404496295486546695146537146004919136899283926769442600529626574871800312999605947563175181469139093913874187706720772362783119859332492265126784341618782542731560394230060957261403770075055946945575842887988262602504347766611342327532378482490865484331812126846968754790602953793822851805111452959275331842314132912203326742937951630400962127827873583381040126985409700554314368200820717583639011236880658521677333342279768346863433810334103574678760183516224363543478859333380125980418507577363904622847855267385794579459099630405125243808602384886118044623492935682765443173499552583950353288144576498956137068765126106881905012450267001192609521058439453160261764445223053755990222916307330561644266036057185707615135280837113499468024271630992369291164354333923785226127444520349113520947700682757835893232375241952472972761151986203296600414439405914496023067108988164615122673668789815204046319464328530093935955374085808700062990597755134888965598489436037463690380460846157045600260757153308402320118256258353144935452185886617992062982280806510130800021146341298944228808947934865702041114879602601610274070154173790572259886326791848382573186899031531105820133376255466510415092155939754322611617183464792328418545992404731525584120430153154755397731301878219056646332094013432181015642398875329708033487956622232624971237080326252362288106972847572011262802840201859554735359865464351560560608086274008494033812683787036631613613308152475518438563515424171217107888201707069759779121485995466053531885382971306891867097900738169055905499890743982070117610884130471410484818717819352681096598721457265224186986145157751637444230332472864698341518429876444682003394562196388427580178662895573673026156490898545876448746078998660936216950839502235372956745611312399142375290964005624731901376958655061336746061805302568536133654460133102366126379572795071499067597266670787389145944092024530447601672196170787778866448551958447681563642752838242423374019043000731883605425555907529817223499237754307229407182958967788185689247549040537052980659171310471709325241958670721332953853115922719594711452426321509430523754570442546007555338312921085996315079023536608095184101873752160498183358575472828743957229101606192434192675301708649153899791819165516251497125654722576724965570902780008559716591991932269509769707608560429425151074483557604933779275928078843132185768959053627876631510235106059078206945820606612948499474633972792037667969465792626262808929710074423788320818997581360676878883831285507725154265988514608006131542996436993584749576341958888090918776878553975140179890418660342950482383614354419425842868227399334505675180899627773441956110237497332082425998671749087378403883742885533605407124109833325658438981369979640207788913724324003781955957196582472970723498837799534232980777189053071343114488440965952550028756061544077819662759449260567528940330809949624248760533990273243418460818682543810452274840985287732914735543985541165250899079504943834903109902049646822458049696154481934420031090615371952769653334648683280592706747546311787594072532462983329755097637382511695274467442726941907844346494096101812935800706653684786493209316410129436369886455470532264884622287827150778816845838044781791153497399787574203981676816942066573662523005181460514626470365804094006626258904764327895226092832776082187461673969880958867929673634621585686218326528110928429516149722804141002990905786463899552940986211008742308212217742333008806989882642292444907864584490157973743790711239071569634986865909551357329107321089236400932534878912240261538793452155326125598917269520647386087442784392420066767804482380424018603192603686773120461032743788962053247303134558311632525948731275356005685734669523318752270772174617487074965485164650330714120745475101149574181763765192385814140523452870437733716059864287386801498700765207579596837991061955938778713268554472336866230403152989737183692620069881915904015225214582911660055809179930804724671602653951089113862305989224868801330690849504583893694573112266050337880444029973311286167167944267611216714251865146152749579983559305709206292411389305151851700292160269419511955832161880148458090308054018540352799270949553281547482250646192635939855885430102900654314406056096112487658439660111603905527792721887827393192427802926721631148544630940711646986819668819691286345741194570537370084179061976803505517812949966995460984000293370697789850870508866929378310751414045569290172899063104172410947039036144714712823562277150725767677053860589917626664593828362736392739727969168943402415666055165822493356819132204652029093514078280933920551432940385457361766974444757678086775422499213003728905139990178744528349294156933734878960536926999228452201030684431105188596304393740540155622970029568899661791900381610016568541501730713298556914499797635904225781961361569042970777358348520657127965212444134797547754809855686323927445510516836704463714969047451781907751896955188072735683682424466650614410263059443391984955606151641538390675665493676716361770091345190167963161564867511312226954205192933543987468386222719347840701027137383177421178206598895153885973281716504209491234212816239883143068052750655829414247965144921832095475148632638660766487028724186262077419537630712642531207141121043163370754827562967008758669324964777609320145428281238157863260484915785804515733693066253575170573726031660822026337149608597554429458755938275312878236956318061710353312505688211437325667040308377156456671849464245100431566665252981541404711311778942310261262944892800069738647100367760415104496392706792521803098128672661440148877376023287886056772333052377472330333549900171719286874170146408169757838578227208459932202851600573020037975603585764512394041086019513561367105226067303778407338980616042973540338841917245150142676598922016785780041494730764555513308014819102735816046193259783964976518869623930974923824117856942350885526816423065140860448640220197768650828686817851355762904033137933526632904660515717403805671639204267100691275288940691063027838956868080376828239972167729157827008871413839223147167396572732659817205219737625228548892044052777701646156239129627685526250237127948851542610362467906802739490144620451321944365883385915108491847489106176774131134783932342193064078071364456034368636421637442358846404633595330839534393541827764119143762902584479908123241834355722561811361307515845238799938390320543765387360614744601203616186730696725061760721390320383188242541485830322941150723341651258876071468439074525443830758012622793173478568571094912538685030246791644230639600747608274914751169241618773332208280787817774318465115611787664174795368129581930257439580193490145543624275969503399764320308394641327566089068710794544860960819122995844979447470750118421062055670698269786268324545354669286480790404584102517821220282300192801107851299880599627207553156165216649837775975739683408901740528282856224828237677514808241947911322061321431991893683103124252808416249026557362644805731483468570126476995406469956748277777624431099133180305318593042403601407421791483840336360824505216513897914680139268303240272585953037177812019326772555961303493512154796004302396329374535122169110417838955423338186105162540927015662378508192123558104731369062821076931208684620132931112210048364749595021843680999209786900419726053172298236619593048985802157554954472833250192457757080833046672197815413383947741146521198162921189106414181998721780315050488476771877268772380114317538902930713684527923225093557146017059510367138998680934672567426196232072449122929155823100943635105868976096675125239086543284526783824414597918172011536170874398800435197938441704970842761247653205123951425577529197738511459521676328669798083718408627360962327889069542795474034320833513713875668619529172640588211365834312425813060939911161059644052074938134820754425623226017126659940803892927580691471254050231741884750939195805634362159692229766112798973066188548041665841857566377087744572302401997954690227740706025930678048443690722962728384329722014211217408511644521125461558254365237300503599965022832146209873768174916035711451369320422262512198936056473304290604210134293175161767449299905560786348644162255256016766908954228200027460778372737218880039548333819136712021288192346548564786944059612296277226443151069531335322779587709207025596552580522104254401168772412721174758401157204804019461184633966068141563143954410163050574873252984340045318396243604655068256076930839457702860928066239851086781825515016062894939755782596951474178830026364384830531180302044373534213170421799462477811404342816376690317023914098714472163022200849649175438536797860400259646208054389090536431756549692103308510104141552148566890325639160318126878745711962940843651919594791809813546177051139191281698326994037552800110329459506832532624966629334406313574952488037241452962938849245836346484530869769202358121316157977684229006566119015636850369442086674418839864299116743519118783434120780414299202833696674475377900086850354515397733516774491318733267211806107231194193245237892232158610236018626670932437614711333960947316653643827634676549154814771731499564208608766219976567883761128208890759219675405054788689263886853029877862695835633707318495356962289127942750990949876575432692081820458072178325630656083499886533593307031847521631036056372669739195733463227105480128614409399422429218130556159499646352475284546418992979825204064831899768370780465754545861033737728540227121199822752829812825905995535721921193805902407104388303499931305245509842690535193331448093284716316470630605616524183173050603578527384035611261886057738216322009572762363680695794700327069236727749815198240337125195940660506894608224212519194858435501522198784625475215903102627735577264223337855464404355722031008731090565709387590106855993593590409500154248139599324846632527607425270696208442266080521493960983465013334594068584673565401543392575640286436624216719476028757114610019923593304253405998012826883722585673419112466828854112746687178426389282893748596613189281768117319153957669137363460399877881249788376988246989389048424987754408493304004913331968867696834744788404796031398816031848540236547762858759248953267405613510738300684956486302267794967899911152885962584937586399256364060788581177219010716675152915649714296784848722727023205079471982466032078326242862414310036950674080162093777542558759901392515008177259358657033260457390737023280163632155471193475088050764863754955245778184732123115838560698393398192554192995425611451219861800957280804493146802245713414903346386900749262358002693701091142595874145530952894837604818608283348108608064795842150196857570593228458251480221779964046895459791641152306919561768177098208889859914389933934195875096047936694675339612165997121806617577014738248216249101298032686664726323788127491309852187093047316851378509723355347614398211989899740644344437289015750027710027343979260388083723720979640971517509515161299433840832287626367042740746538387812242713530368493615302236795049477386403210486855935602855313289207819888252857835922850759577380187987235364237445268670306466428034687093149985659787969154125496572418230450529796742730927877738026937083569761460544379786120165314445318827997160039579055937563162701747992712547547458169404931638160613722151833159958007648988623856068647790818173696329722048017189813545660271412810431351583095933499363561674758489601040169566739230189225740312796270922668129081825997057226119461882414327628786097485504777215719887728072147764048359774860476551496086779340819429098964490072106973274375814407294076760816446973373511814233372522125016641289785635862880237209396173512670169908393356192544583182593142746433898712220407754435344142951911538521233168254496230682661316727466724344887672945829550326732897942354952022596293850138270620690326346476175497878441559260363312940601309916005091523163439366029229881812335856233858330194800137826424190873899957216363295366940730462635476805758943022455708322452967736881058802165746118511961208374571236721908306979224063182946938482126323038416792640770858596383352031087951443740353208539016460573271383292983803270182429510337738776426776956180362091848130980311362295487244687979062862907493697553312233515854621360447686229250529011689539884613311615636214816267106539094076063829040732267186200194727809693989537172507427449323288542842232437812039975650790191901112757007037249291772622709868986504173543189993041378712064776178113178056009984414850664879672599592192496842273380123924810246316907839969283573277857424106908405385518838972967474391210599588118356245516807190927676002196202803767277675755241699753841466914684441634382643854824157817250043950704025257256456416917610419352295225774758946896091901224877581895652997843094184161627008301360316991562473486605805886616667498883003044090518389581673069208294304902403366320616110474229346589977159835158761240006167961175160827519242671327142284664528327903184608874974895296532363706100100813170862948416299795856163327946497274709557608493115785697237535259889729010844246381768085997914135767372018242852146364283770138208729655599272717893524244592133083977405321832245035697140197907966088578107972485903427723329137186894427668606337768205235080966961436019592286815892305543997757012549307168471445270491064357560337570068831483844922773191944697289116648401957279824390764386646395453051764498137005887778095287044243624765026051254023174791423062469714966227513111300086412501642246094134525101963394306395576057355446192948738940171609359206738981999630584857353562849162482615045351733409405814014037770061794617767882833197401224489301464206841613393179182680467035153428489731615496368117476886045956130410423025284623094832649159213187920827575825486160692740149374633085534974157017152396538783863394892087307082653262965623384286453659010601565418672029394043006628501345867115311710075244092512922608712795404718268019036375958171504424554982389193955582261620068282782147994322693829727585205148960600011778447147415501051444553426901752518147458290313120484069554720584328097531419644264030847948573342146560368867675539549831244722303636931204653450426251216210844637318630639373625539408056435791855427845239013598427201501864058423255095245661429949843734365611343490042867129083752737512450177386517446648057923385768731466421960153192288677758304478405818543873158765811352105454223386807960739898680839508827737191217578519067755634449614809258055629081518405459876239669722026129250964829290116511870942317168239555437741006168671763983214234434743965887907795437395033739742355359240717037833401436907898101453806855235999862146186752611230914981693314892066308075551291128148551313774789120775530235728066594095692914390705042885782122692030431837193859447525573155699211112069784961857360353336084235180567894120875642408630213580498554331957582077526388254044994166447863277332667559035884874878103228193479727165180385748513386076856341632740293264390067675045420424978938156775859101194577928200334115404198306311148899083727449456050294417747117013618015354678980646986175566150776368585376408953722138704273648612604074113445589830071411398194081257212471753799110647581903004138131939214177560292330101949918325944742590054196839586709738928658716331982074689803992551231106686843829192596749156475675647840124971017412660706050665167469930402478953435642238556371903478778911757135946452936575503444694661481748065746743681730070924939938456859848750812031661916295431443218870439783859215747629861266921986697583606187032868277520869971183723845581415782747123846568375673566446546022924128951446033392315662955333942812576131176325719252936286570682521073618720502979417457617291714377890074481404897618560116021053689353151343877917168225268419026731608384238705379003717092552072194096748499752865372934000191725974416351576606234462262383788627739013964794339269368436922797811497306095618279252179651951481386462638506415932522312352852290512801191052638247141056218720142680505811645329871195144563291041440098316312209446647783058185006312743547719343029396413587632332669455577709230344493074745011361939769344491698965672873531534837261636539221237536976630085108538982653002962927805337032189478441027555246147937147500577382905470861645641368739212107692876717280548715822777091854785674018985355517638261646380326482387740890370238313628457266712915523391056779076567352023376892687851333855489734569075745337409462901904583176960173841105595482737225293526087950101760482056070039361729492844901218629573264401467831901465227461560484538359978494083584443498065897700903207015360403710171380838515127050758231721432783792879068831492079619490454776162296555249264733256169423523954175557868456751899093063963361842766427650222701045317659464281722095029945597316652260945018314953497496728535087561889693013766627633004209316792566017599354789483170257815444116232330786802710351399566507638015008301562419234933404159310132629969035395007402081476040667060014828625408804178422879311876673780923159367019528069393972993953921963989981296375382044991450410498545599775762423165190263770149305883887872323754002423049184811188766063715660002866348496530455539492900913100837956927017036437095512679382919213536615987681635798536102648475893180563183452091615710131303387945950708456942969751190714816344792731193604839033314610692583726952656387667839006314222516735493286888203083373415674694248799653459986889508717866343906784247477090260021561449809216714404086285257575345584417400675671170270855264439383472171076174377096046735179405282253987535764450904880888127192100144024096524748482197567233254649912008697210304754702368521660616530207172065215225421276238887262623787250983763947726099875922626074624320732468574388319422164655726614106424390558668829945195789717697659843535279849157107457180150028208845487654840337252690864550180056159142129070135150566072349248021801959068225807557331249207241723752628774662455174162725686798445805571018805006050305775483858319410508123910257748940387454419744864236246364455361181890724802736179637250741838256385238056187222620929552777207353925408392186002369718429616163524321753589939666472605564990789411949623488087579797968644840371956265659987954957047105098226528754534433310832676542646045080256508902993867561636460417806851178352582105531791931057301299833347658614400947493934626033889878189055607914391249047836010780189072810319564016467618564339673087264966906822682677538727059467746643863561225265840202555404721641363486992204074319109196697590287701022723133473806084553514220214425839231999446363945050793588227941467513590767661558445099795778047756569795772664299216473345845775145353478710483628933947202783319147417090806960791316350836070915484324603453749107731856496912808543448578902872132032467137653151009166599951790330048153329178601346631244761437256044112917029112591166076198539901173899758162926129039426387974401689140555980250067341195887130454025082879475770505782735670098709559193509869244929769264409887912785708450588150815604885075953717380938365981176636015241102315736552444377885177636567397897520060905847140014381380150334755623379780960349173389598273671905120279905113222201053669590840276848711174300288462990870306005460259700327312383435424733027377137792834225414007526821527537995901078570177882222944978618299813149971701883227503191040580771524248665103951204701670963551273702185838818086404153546471631486703357229163698492079616403826847598032202973262608086637313236420863908653290163458164202644436441554873998944925882086558595570475494751777999659769436965893868576165129479344494125727748038549166263822800046402920146027048315249234111504977084708388120818102080236652105418404757348768537259882561479964373144978478048155595184187107203613361319066213079285214153391531359277317309685966891859235377131791136761182630056669911875280800312490809051094807674414911339049145489481912094229527837087837169799600394226412796611864214945613368985615923161179779048089965542890634573763235200100878058341168222412238790826072574047427288203624950379859744522678316170357988379904254756626737207396065614105275089414794908312852454601045997729423882222578010066194223139461822166121266644706345093871940406930976876862395031296615769495207095381231104715863153417828793277629189972121901765609054095675284834465822168444789216886631112217722732153898762917066627372454146484035263137708133768767557985860408516388061922399663408776284450448452582882352071520637503476555474178498714891276751625582057869720003156567327429788016890667236524372707494218937715487725194606759908947617954790504425391630372256643202118700222004753781957214994993123290453152352597048669526770199419305139111579679987692573163674485685899781744274612138387486373493667702563923369119994431934904347048486855279454288087152668401759409713930879277848918321477254904553337534492499093508961151887021079399138844769765406785685937570256427519657264185230622738654720954911356094437407256758981194367213942259920420317370389981504772393241300266134545549439326601139121631654647060087922241263124035722024292603759312826196542473439095744915670467814327135334063718324640164595395093811952002687523506209667095291982861994544802334063773932774771496100523572240767647706656971086963508663410161894812337503603843941404157455788014637041184732742158726305608518777790153323132771501851890010735480327118647252865952336806144677011007929354076661629629083930890397508549089008900743226487905528289952439260226113242326460048312220017888423401944314370095008912872902239701473323272484595806385329970849615227891383378218542744314523804948616561186421620822097306174551824118749213059967656156790596905532295695846961581940314454234473699265680038162213387761062159088903316645040529480565117431961096981144251669747100359321247608677109317957097397968078229361790930244086603259502011976628961373956510638329988425527974579326283512922594924981467676094309020065798998805185871122687702199751652915132891845497331553759656252016641615505021246906227979157261101586640268412862714216412129824268376292085733379196697651498127941151116753625495667742298340694780722218432427762936458995663525016758150600722133095394395103219697294471972183558921987700339157795789929053465978537118636988708217169216410715831371929102972813445752260451990450141078456448278041794951959496404286518851958515451376249388568795267864083550799228191823748024678367813172194973752611703144566887829988682528914650219560328536387889051692696746353275013453886068172125559379376335536622504858760155899801118546345067513373801842579710674949808588864089335034742844363481522789553386166391570343370295500893014071270214123289158763538418750872876177741000009750932263495844457675372227280826923633001625178830601737844932597667673561361153381293536063271898039606444407758685221581185527926281127593624850010330083222216677862095311329508762727049224251869963542662822948398560035199150168665072106391268149141532725670866253710043075112458542206991921180176350883339212275800046541881733992191493896006472221937863186130902647699329513212850485598656499781240906450788913414931382824819386284692730837117454984225010638344950117229786973272825469797840853558004004952977568488959722079867048264752530544935508013610979150660874635921946449356673210324011665656133413181946219930002226776499086657690811110324179166576970733466088267279648647190618233475137378412309848033804307745206295144247171182128201101773956841997733377774265932094896367684283850618868735057620877299673291692409807991810649579909867549169732582198556151324652663004342786609663452967259977836902369327615594748549133026388468146870684028504249316216207654470017638341068556541852236951689466507099955312681464339278332935213820193736520649913546927918824291000656614533638320778630436757861877030523088779223183827380130262793689172474260240464651197052551686936916176948572503811295333646817139228033861293196035358260098230576684050336621731026100589404694116418308199609436027916448752079244921366934617349204408739062582181817489611615424200629879087070161401792737149210785924127144503704218469826186261925096114537463185657554229766027551802517078983291076597001550021841628345614306427153313618318913090625847590351469739839733865312135190137218075664072205297297641611719697486904869570675981170033710771579877308438732586641351136851924986657674031850788379353504497720829178852098351659776437252424145123807990657300267971961574782411814652348118818767231945360132587960636386020969236461722323394577134011770573857522768037928759590376653548048685241413463478707313112970211768294335943468918189981583857156951766964457133296279295617680796598413248211590439854510495826511758655609065709451195171202953268019399551666008923759311248113844278734008621540589342898446327070843076164351198141577203013803664718298190029062583232005492520761593683490665658567499148794448813355287943826396758950081801261218671465170251971569394383876904326506725500385565137505283898241185992102000779624791863976857494916833193800504562247117037571485415401701308960192789924745584665243727549281821337928270101177573520860271724212044285076221272452281919846730536166112205686459500613826359028841109193648072951079363877019386571527616983969308486056995049717216807628525773422254210068727484607285631529355385770079615656751406714330697818926646506893265343520887452573060088661984980136221653054440255319892846216422069494868256848139456540874024935046863642694718036345735640225673112458675402152624833808287531104571603989992359604962442990985940528591474632613024779701861713603535267079885526244580813141432545376714528053871039564539456562000527222689979861550688392043853242747441833848538450258299405830816405372490779300170081021173892838440670506516811504390742892317932253552998397059114362746351520428735783595694309840547010716884590748975927465398370480985119852917579139659546407145261342790737930126340315648762798785822375077945245320393591998012244529313584616219339947674815609042569506331222515566728738302819782256464906289924215817453170245816476994204800035147200522031939470423811015433132919915072890714982506761596156621068832744359324535908268780122263327334372082952929749311217249668331522480264806832902709745601614433280256075338347468770033387809618800393994576406337908353425379917146913440538674953991068605996147547385182125729834042045903358118658325017535236004967392968800165516453232271454111408105604842711281178780364406460021222118736911221177589399502069587201443808611134298147010907826067332911165728170342823137038603708605484017871450723276293962760472191004899571049740796696955099062347839357477809831295654802698248347765346910606762236922244333819173639229868682052715167367194906901104485245167429104027068774974304885621013283166547345502175650219968012460604508062018237897500415787421480646012871879500148462339833226325728472827960207842247531763414144327525744921198724044425583601458607008674366739836220469331281998606718070275098589216783185888987441779193269181248000275123325994195485567914732843773510224007504127771885248258201485034613984144000101948384437956677915868280866281790330445566097808695894391500612526212377006907591371731284074322196399474236995719449454355009779286720445537283025110611309652884660220364341798103542717947045932742815703761082352378016657747506849712764428217550717952561986482244585507952508389018668001832922746402320010024614901501554358229706712947020693772167241888522441659371929546341070909401935102139520157349778556440208121422903888138342234185638872592798467172905438870934741838180359284525957737196961531783446474181221365906467068769839136654773065602667115622993876023160748538232965187723458011447014392881475395463412855597261682698293089502640166839040051990569120515690585474551911772647377428043186488806107146557908770597242558647095523564514789087240229618161794826312586594051989975401537142578044496312095722434267398822580958941410179235338944819010322080223936197193589111025708639241896660198184640813576217448651295591735870835024853481902199400385414424740738082664571685900303663055613942950492154529504493918111357545232977871410090715772460068693505414448069831822796099747353652932790760450194814336619817422519093083484777106628374457640097539685267301060087832616401620575850719490962394773738688027999694368993705104041008937564928613217147647525376058207715323730026461120586433887968552935616961524484111035946284458113826319410583897140653631880245701340534043618007403778802097377505587331474078078517009439008118735659372499398014931477491599258202790279645977856286722562489776852226901948682646592051298328653475315202285619217864184276377159213697692366984686099838031127728902298469443378287748234403173781769940892057525096997806372234374306620061037980796200065498066476758747159208761961659519642104616636607185517991449962468580492596472229593946057652937472232620442522777082202829845786724693608940907564577539963765335485283082050310664463098028143736598257017396190294071027421691356238337175831817068861042832988106509147989980203363097887697507755092886549649080312009719523337100130970777496245119800312638985461490354090043612964386231073605956536422149644814191650917355628403850977826421271821620203346601448772133105966836607861428765458604730075456567038974856628923307779515922427169486054902533658505494443139204549103627971810994208011788957203721532356842959447324537043304420417993464120547847009205813895399800352477246349441034967970931008595694376774053858362813938033908433741414201569792391556923979878865807184261952607754550323100741482848057907813989685597643438833675864459994035070747986968832867772657390817382967582243203954130546268034720839318326025173552683760846145164220339559003814758408091557434131193710059362161113865528403858941262754708167717041917510814418162148201584423122904797244358519448443190901232206720053273488442933354635893609464668427129270675871142039208519647317401058902890904597432747030597791715724985820836902487809819781168504552558118773751440563542299327317159262245804765443047067483856677972811769140939434610364115693400763887025022096503884473674992336009000798093443945626755387893735021530991489796139779879900611931776264717696104265554375511504056033483171767930347192979346069770099282506155809773123537740926582263350966752520390738602353636101262970918184275042401301775039062249411995206977312367989896768531679593856855500601131582423511970324611290740416382256055189046666656724552987598907817142522529159805975083451688369023487624610888579053779618671409894635481544946309371306828484948097787716964300916846093188424826123361867491524734139989337282740571702734209177814968754595296201975241655115493081068033811764113615258974637763502287100112080163763865016951080423647937428212563502695775894677879198883540388811253390648434780703289010408170297429419647421883758902394499760529806072295198759927578563501213348991087714178928139373109609601073153750663894810180155897205864979386049965540576313633546537322819958673599131153490517140329408652533365204358711099232656843521299373007936661314514855906121055312247636137572826108473619153610572933478835147282311702229173389451112518348165418327230892290262729976204639082901684262058658731004617730806794833472609504300071220284055303359256881715046154370823308729220174649323134068794933614723199027151261063018078799164632155734383799986238446192615274724775918574270682774382417671949182073439530093233224852135152292182371302955245885933415692125532157273441707003309122330032633899301697555396937517202943833236706806326245594306455091148553535746524506709566022910253186751092825414468863119512468859580982835894086090736834092090793679674526554260581157216111808254917442873566602822051254930402758515373456415620980613176948843285115448647855238586863366455739712754471865857046742756121960438660941014958953289462590730117515017495347369082790872178348638761393322136516528274703770128797961246142093600253521108221242363613269333889156898634557602888600655902985992410729751548229232362857467737411713320779379299022617939698442330725289533944613273566393792796717105771477274679804834382073625553878941273454551906348417235401936669576433233424052811746420797044637405391674947215654404430902604141166932003537990937387234189390884688574067062771990311308987892771577185852050322020354032524478004898442885303041520143449861743665832153324807339359433319838817367466618916184948718765642678902431200034454497769401446733444747186839067197247537330122364657507385408911534785625698975368716839162923458605327856876013482488006906102734827950551534760877772310647814798227687215959233119826062551365547934442646724495355371110799036516271804658739631444825613299245812944662296283914012797765303465346499115136837468240582157232916934051132695908341325019476555900739820000140288905482290188205531424959012695319421912877713560375669858696312084048007576312579714477734917037852063750869611860627621019328554370056797986667764904329571923842730817232076737049477630894382648647329741469833055013899835847688996834511851977768348759780521552834376425170384546565423899540147779162325763365407779925387534998633757625339555650441693343195097281827247305798416860442252527146480253433373968003142447685694646015545400614310143982366217055927112035030410812910226173912429182613870536850232520253552933559690446871054495419224660207457251000929325864424300765341503072232019912374353338611451591283279358789278791386303564228855223675318244957170487151070914006414140716505072244234091660510275751976901627468373406231637546918131610532049312241592803255208475738533433100312115370760665465501886902695051615615694750687616718563826838346395170319722031179278307695984529343724854169109180558850998156122358962028466438714500430224093684839854275765966872540492773977198814170056326442241925895450134417877027333907640008976480512634968208268458129336777879928252000526312505230240017684462684756981243888440189194396399122641908410552322126666776616818308587447189258880730235098318775102394184366101874117289235372182217796956151554432591370255328553558147567842711486461155701269964299205514727845845589225463317203406192429520011718505504862186178729806042383815370816116037365792336247344940246928130470371094800953338669554047033545284830119367188229669421892049877211198853962871795037820635870748086751368033930741287033971671940501417077261446360789674448995637955222565978596048929246976824199737903735371636215831238597343037458518717671137963173915761659581153805257344395690119729059942870533881033120458910184068592924384066174748923981182462019427270223994936039262766033173725202540112964176100097215546033297324141516185982008076703698346611100339758572541612254310437034330667163962189452386461095957821019659205431805492625957736933943831140202095398119438996765323639294521650117384300335525226315826362843079883077973041127240127104992153903676129815487852041073645862265195690563038940556083143773856606353693661064727503710949988052914320544143980079431713793474078206817893406017417845982354578495538871351102331555046192863689494545315342509463297662696311709460764323923901542952832673396475441921744874786705744212129113132662159825796677639649807076161373627065196603509329806859671525264654226728886364404091389364375550607802992721398167388438366853029797318353170489155347062762592660828259627649341918153732713280602421879035960372439569425086990110338402342533000047678597126225708139038551847351452959214966172009580306449370046035209004585265750133229069612756071952970154699754956203774508731420107725047658608495607222975655817609738961437541312410922031966235483869391866873252862230338386927842744325359914529881461114897178039675428064780440499126080938274311060484212024819822417898376106526963724286763342630546400902929794037668229663024856457675199837441388817201985064484788069774658353410004432640801100162338372737607502524203568307709516473262551060625571831157174410176298055502636626906364848303255220016451499939660547903379667833009789988655981128010207537308664931506029679722977360840689729099692905874760718359166337490604691165646687980943928206737721052575838829802177025661636740473073567795395468073510161330697217311202612125567642777156015869857278046134462851550712190948515663719685201029978414275036542133243607468148940288306493321297786723362431266850896122168393332589504373894791142350795656536330317817632860196186664179197489870548806024457704997285431600287668139364233608476411398281913439876327874591504387667236006788967996501879569509520404981440947778547781800669542100587372568485744150103912572205859986591742425197525232728998714684975114545993165607712810112734647818723912205098738697860585592808219992582965927524659751515486114037600719624701003957332662878738092492283800748550285686405836243329454137298446229214837274100406329608770463197118721337751632789393638995614050962442808601954817576226418302784057825321668913111837610334643663137278466958132102254968352749787346806842584738765854722155915987554440097561177096570111950930446461147447362338341385213964230421801782321222616648716536341811065629365735297071390653483904264222596198438752596587068827441479163686005150511464378555838278129380262015030848382110827326928081844056623453233296136178559909284382154911093584995870205660437148337217077690297885374533747923849239657272317776651817653222523246782265360054594680811368543645427583716692905797614197269249863453148748773691865644813597470421324282715053185979040287129859153011573893123738261346429283537434367958845658783293064690397965828285238191108704622814581408785941858280405173137838629179995673685465746245267644635169033193583702425749791896100607085356205045788433600414971512755142214562092314545426476251277424654577981658197311904293294126575486004899882133910633853291009939467617778184635585749367828694183761633183397726820675334199377634735076623099909935238900937333449357731519670987084940651657442188609710641126456866728819636991348320253503839400980803810053320097709504726800452529932399144312875075091389197044729331440575596450379344341276816736791534102654556293341006094917892038434325702257253700775556182390645235496555669344687216391108625843204017804598903539163976603536263880709017130867730823467239238625034359849541523425314216753548803074697965223177214153338098577985444740396699407352062592983562453100141294709506882451496107341620708507312683694688533500058450459266377220700836244365622443444394022191629943207916736064779906978376666104431475782455664137603611474984688201403794494101585356790912803205909566546091796558958991152429247185955165419736942744595693217639897435831032649688455933533514669155259568477772975898542651460935879717711132325033264965395204042574069092485270639153768057830880976800892404290560606298183686749008786076671253017384418654940056418802594470800885118443677403506374825358346238820115067380258288391432966684760502291703550895085525017176833263804589261452342989974418427231659203129042679493155454900632470528499602776452061766049867548228962129650710461590189960311355961367992406689009492569577402702095855172494729794469702434445230015197686621683250281899707148284710217923891270881196113794851824254039409172651411737933522207513653522561556236826851326260372858202247860392327740419103864393900163979001718234724458869185366368192301906523482236179496359044775627618762729405167742009655896508696752314206592590820925361553820260683255833231468790748420170519812911383975310739451949906164663833868687339092449828208944888863881541185161803992106384663095500787119345901906068772173740594744484505511248620374671520908851756436319817055964913790339775538465885488462372823459695381563961782667384555187583648452695609738399844959994428373071893113123544773623590126331460592476490323263512074640870730952325244814465621728439635901224242929930130265824260044206949053137408090761152164732168355486075313901386539719613323494571167828362507808622357278158930688775256298896675870289479165094756843408179035086010522467594703442789486308377203871433765520834748304522507057715307033432834848228994818211556629155334953438551795990826892695028480496951310816956062127068188679240048905957016166060457832880925086134026956665537377684685616683087843745100350846894084917445713796412397151001277346228671353727939044377198566100114674498583602115851816682448257115341749087972027161616497277533234241452499933198985861876619508754482376173942628341113645157728552808201338155182558940377400882994128447497692325642781902835399899729355859386617724857346257161360146687859237751656770043966625600867351558477926704394435747987678272777127932014834178586076431166683301361778490311650429589990376620819683304428179463986653259142548684814784856693113399321616025092758349200169754191629167081620776985700788297496764502050215473654236548619194802318722216100525422041545217555884046348061847191625917761887739640189886233468989839718214663878817292181495403290299555011089363336656435985237518952084786849427788181017054910103138596049908950276231029898174775945273872020057754840900894063497458278680430783785802484651937841361461378001946181642774550451717157718510981208016021990684739271906580248097803347652462124249518703304675102355895274702536966690198043579215815012294314925893845797714765912615073177942630458712954982376162054891961695113050950303158358318969717717880980417602823765992162219403756850260856778252325681629390118748325717633203074150397002350458909216338165203712446510692889308695244027076716481788433295828169904755302422099003049141866514333483192015708154465366265012646849661593505846819973755607006451544560565297444853055128829649751523973762301039284017726034378393101002405191902422614206158816513676718312747879859805604948633654029025675868054031586002587985779729314444148375257179391436358179743824792802811372730925640223653698423908427136692996300994930560294305288341418505863605472257014826456562455537067874686778167551141091910075237537102113337500095710122018229995750161577064416162493316690466523685583774396392797571429587948002065026470485816289538820764519179391066858057946509535461726745538716685682944248690849266999158356951866702705126364120709038221638187330462728878862103502643172297686478736868219732163944124160845215456085400336645379041647070179022386916273926331170706090697083598474552437211729132150482347323555467556867951994626343667301711964464992474832942119002827546254321463375357625206531524193846312567869209430436897006223791582621832068773497037967438544118637234191549776349671531649347257104958882376702532106999825151622387657835545201861858276352162331548002028409895700907518123333612879697332128295408261368346576128238352570853905415964852508889605655934725126282761484242458366995237214614817658222487369927567065196742602208745911269883932465721196086762555585606543325796511604244483787703143581823928324265839037716493571710374644479339646711364154326604783541690564570409066175427921350385037759966000780504983071476083941893691212877147813375318688635134799707244979564474792921554771539985933788236751669398624146861433813415859347205857729862258199835191776553812417781742356820864825241854513318110664655586058412848544840337838536554836877813227273753835398608706698601695417953385584676042148391365943030956598191245083384185118703384915464679466797670426802022094003326537330043575828338463053205923112161815860679345772020564592142029528540865953466569545373083072370489228298724015647031727288490833742034197958094921738088647714369359749763052089900990171362641271790086659854519105712501985927059337880954828917629597128896160208143897039353433293777484395577244675729139658765519081826607299352912327165023094397893032209560082025592438916569433165061102320569218590866846315753073859006034651750071609621219930036625597650679236535260318644881137245380939266725997089133675383476100675309756166664066807927378722241004320662425462094148591719603321652384095386781709149111154206110043883176070823453526485431445623355148594048591047010453803533847177952023986104459058589783345877562671845276672415554033122468776011344926893017687414337455646191445970423818396670365913865544610943259487980756115493377441599347306322522604328762168312861941534047729971190141156173988150151330370256813021012675029424693189706013276354660757855536707223579396618401306766873835763035578710562314225064652867252247424129410896725119869778818085397718177508627572375395026769619156204666547854839583518640427531691990515655260849293163928480864986092122705223416035063001304090678814142460527471893238175261939479286730476743554712022675180826971197164483763214717529079638210445832323305548031813598103501149572039101618077378157543998601237561268776219172339678056200794421470090513328100752736295656681368564466296868346195444705535668846945303119803547032064982781971391717098719733292106363277832960985683287942834090689871892268690926546249122377211892362361049698892526738780999047360902163247974329404729717737562219441110319838126597824431533692677093991446656289671194006156864231675112783002528555078460986385714112200721896323201878637579051964864461680706137945021115370266943793250281331748618423815966970339680059262030719636295607348619524692452314760650275102020742220707686047563270302466888952390957226507765464668491960650784659849608937126218002900739812964295904349337303087500467592892245917357780404075222825463527403871618864092486960078174587078652628325020058994780526716255824481622755266790263632781328319623307205787411390499216213585634257269145765331821102254529259135735919339862584080705386773138694651152096983859941513121879758925592795524163177933750281882209418425660315043650617275605529242022908373258809429909556858310448469158321843696164400008622347274501107845885332942338434159559122414157193213023498128741370152479458351841587831684741725101847094984259603344895388965494190277838328821419821433506529415576094607346103278536457107259559653735880104693992235184048616053927755523709748375737720005861989677111034303364902503898605033934240477987493696243182393838463088900240660900053371879663060060198670653731070824747385961718701598251588434181233038436720429770127554561758961149167146147675015831582140786038007863357335660718677305844914832903007296391624220545436452783540086642805210133719013336793924936908328476478325348900011146237341955956804412597673074074977401517742954849496326678209421915940529904587266974740565924706296767024774953320597763932596514579935449229115069776825083099749257666212959790191591413945961643566032078215261524702283207421894470927498221311303149084226748222623289190321064902330946321538068443416992440348488346326327868916809840524295475280959979231002721636939521522071516762859181682597175243870283358789060639636769925877063114398316889070874813528430122286168572576764698896892645702352315763601442389219915820691187779705234267613581817293098657301184541559437476701100991420245577617627755124664421801968051843523594458298847692126895453267864825960005168897709101396846592293185582310278664225924450500181791972300295954240649148150277392500404110329255836520853278912596079465989787604486337625570796913665927835535426445050379507582211804386794156615251865859838269401025030867194298468539687561772376171892793064886759899661142653600562366275112069103589175904822222048777554468719533747898662564987956930708204364714732122624912936233438041716566869334703298736969462835294589362729579120693664139944704985504601493816963148851599001094581363001463332962480552224531513018009162231392343663575603771356880659457850006952815015124149577638261980104795604246280883862124708680441380833233728962978800534317708689605156785102407544290664091669351488030537146399909153445381859596797317755378182891362550962898303994261383124282536308582281634416457398121760055489043981579609773534918626703575128470486639903541442757078394528640043165053750240808284924807210975420591200272570245603186108920979790243262083045056001936861494589782442265803708290432724354514897025744690762953630614310983789831766053593501496256970667226844621314918034199765148030768249746261001486109497186766934681593649931528165895468526084235110700172306880860655022682098034062643142520803745033565973484026046818168717353610382085946275119988917226418494928825840298837806844310534662525349964478391107584473386718542428352749521470621628355619630779454364888166670632338376054973125082633225894752358093252991603988540014920617639337697085803174997801229540087021725591162002486535725969107499105678035178336639744639613787663857037300521063406397726985024607203690125264957949508311581015505232173095396279808663531239278367298480449293306451696669014174887363749544008053478108607655971605920373129460278073211575661022133490130273685018778542794317322416547019994084430889185900771348537497214708538975211839160511417973947785697392209046428588052036680821426891716883002375336654223344951291038799459094568353497090356921183782034859701448752150575881479784473541039228511444641995092493833603621411187321745934831431890250753970858707769237050965381466715083872204175417016887533873199358696971303131516284886449030181698903614983951848298091623691811676827118881407798515181827156851742844596943720562195132133459346915124305900366740556498929294261284199850700262371677411941480179699830040140528113080717028260781827711485418057004353300178952782578442123582348731092558013878077554375944585467367101522486705898085279653409178313789640582502713938270318757325570760618162089928263460913696189601714009864772927929998196195145407784479644469652942443523474373580046583856764297300751938706587380596482309859341486263670659737739842775221567145636805117928108502025609667128746375757293650057414588821446608636638074010376612963014248581742045869793426200505704324426598405013786137388458038910218956138444530060845760308061444954636231722329537548707978249827704462403210351601776235067166180389481300651886113554713422806516388056337128645719972023440557407832897300953305021199887776173869418920471290346262475840877443051790007280516145533802264272175760974459780152899126768046357295267447958958032291101337714510223271825918448620203647640569899950424420638494454621516084060757378588632152742197059719029902252119376737700160290841022098446644716179950170971277173283390664086191507822617922461700208003868339445110621609926252512243941800927153161125913107234332045484735945077203612825413366338719954127114218781279376099892842106276022613795949868328145199055900469541675332772022919455227015074138084855434308690156287665110953884537296846689209378769760461917052489321047904621587091285004193135871127552761476278921247556108357490727179178328427323322885694928348290678225410849081212126395446009657925399319667973987676913711272652927282504043362794748449009845257538780979095558210536599626973336862521599720593962771056271778941731226067536871018327243454498733097982025518358069396239652919759618128360379374493296787624288182986430929929170394368440474105780086598091783342311422109537630296846479264228097195948710376923958454655436287154673294975654030926110322128466979143223198035836634746148598950206627884535124920748843177633366923695756736621908769906904797296293741284422087680983593489357319521440301639691122018857696713899452427219639002761308302291274913865981820141626173779957235518426537526525150948760578629142307886090406018076418790311699517870548479031010449188298806432899397589854645110394539633219987886455620392768499243717273970003370338907887368791176703430669690195308503197480223516017109753534856675771459423848179184944915273183422444785196656945042924514061145518415351146181740474812833675853636436181313967917155201171814814966955557189376139752270630639340106848590714075232104712623716497563385523636981080579405780229802990499120600874012207886964460282654196972227257278317144965753478232064191702352181987813702049751091120490838992856792742947890882343575246542542240476020783527296021732140239975055137205077696388525518516027890020266384619939067192362356939996164390021888950286784051968883079892602561755993964804034565909595067879576929417421607455420563038033779745412638136016609209382667940734663048340699626701088894497049591572226745763269483803893521797038232806143926382484424423021681896119184896998798960311083177388350598213167015619675856642781068691143023876630521936355840805451493789793322752903751761519480858704150760414633145640117362156048096795586122337411873025565921991680214389482987471580162765959089556587176704045392032054541526662058215789948808593801537014954131755517025465019957780037520539783787333463443939291366055079231282342784421149756780582162501772215990281412691007010586902350802839035685056671312151682548909977832969428359010905424336919233267060237603466635720879399466161238677498574106846843357737549146037206568980594408463702948947558946056610901757545044084785181788680597484522858323435142242082415275269218088032165823669070090247755020653919549024405749501496132577567542106028372641205532827454385311201572803699296421760509383513647730074067109030219284435498368044150344437586255849759684616248941560074518916754421502066038335146905143924709072109338110646058360343233139570987149314642992720550689018347859088858977067622414710482422618362633792305715062431304755223507328927455798740527957825507187801969070026104921760462504179707731390625170023653150455545106697520638275641143768247793469001975497314438113310856317289274456428936494288786819395038964305437080104612246070199009676546183673609500569886381334330561776114731522832482572757310715000779704022141770760470522985574170053445189420635367674682436864313954578409992917806437225547075526990516392587069330800018290144519250336980300000433306999951657624936251172738571714812088559723378505874341808451573750539281949049297023942672824774840250898001007747108472194324016513134694304894720122596232858679643865687486059628109208711866528817363632180098411237658302034858518602806772003391581155134834921919688893184084150526300381456734109275729205984458760681889813096842597375980196274302047508830403408491711877611352889570955774352707009162430379431207288801163503790572599209013200817008952090235416176960095581886540166939281648237136050893676501223264829903609108321617059998076276039292230649537799103503753513147931120370885508179764818522754412479619897913386033654301209096025359983269526606532613446827202497879422016116428229798053747435741728861112538058255136373598550728103121458301290869099421350922349366160707346408859353911260017994206385978279294475824093587694369879878653768825197814673762880075672882282573841380295035140942240691735062224826884460456157580027466837967230043548548439419294196279329746613768821918660908254016805820711386593596909925495416385941375675405083787965277662614081203726600102836071919333841594903894859040033329152344718536129951524358605101644387741759238250895462106182033584454002174148514907867974842442973369983554171478226248054192166300285021954037559002163091978707581248029424522660145099728814215534286132702698825347364932285779291567348420459685417719464260688199910172532992141814592492974106817623346740401052123309984571951641784475707828956869285063549894850368694228653519612909724981037463923641755545648774284677225182215223871035025898246868403684940282220283496653211486057704955325967794870378491383814588210324324073439785738381335868489611792761138774661230348341136897792030235343849889649522569875317177278382021606786527824460913610187579406313078544786624045190745363576062182212606475340972695916374506921171996576551791207700298327021153970695795422435035153484193882286564860155842864631542141689148567022202839562518953886074371684784033977250533262423004694012518879593638629936832111342096182280967780908191612658975153440392499728636722419805489877717580471939658588552850215861185749757826039567676340536756516084163613238946928655530571218579015766624456655278836575368620610628598295030185922620317397205855351796784786578266237077024742794311880949707483102337599847031457993661787424450186310515255385719268315900706823448805585373996020198299612761181463442608581491828107818219537880724659087330672536484387342951519622589141905372145558033448359345532360500318470519356750135170396066603925335966087768978027320683007264287770601701682647476481452529632933749079012035793665447521172426556156334286700418504038538705816910814694831903982737997146573651522620257186960305364673348355566292616680516527291508792329563850624090259835138789019637185050348384755575281421121497406919746799640039876829257159680625856173692283942905493597139104064529845664365739166496576120372211569786463062655198545876791757567164175188320492556619770646189963814096466976707211545409115102497682644061238411705863462378611315394670082349765882194148552979014658492886749173611578620705452460635597904540844006924551540788344436438101414481968994901433828203699580735383384304033791052250897196992365814446720889158831001467783866668769826867145224136661402409220030632365755913898048793964440579317074615339982969977424393576168759873027163696460922363979368374282978694378250108976623101144376202426012820068295435780784666262922418485127957543551808054099569438961488673998684523758817981639825195894525900641456706490824217186556746465925476296485725548276985583447551036875124282839815525430776186755803372795555383096489807858794685844454695149382366029990673485451299177762701733468785869570234916126023035233117982846163779508901988306604274587459179858830095775892560139675719004461050756167674203603390987500066109336601190901639121170716986150843912009656589307509192488036354479416626568058044460586300912461888112368351480376036530496043580379286940801144207709794606172895459825651580424566366591455332971780672896231759308408657989501942889167765522078367010063254921090943311483671576081783802899214215470805330611392779276566676333462649165038249474372372792669640279327672622455784466587967892963928979472306384201155998005058089432817306678383996570583617937562225401857772368802358721679701852142192203278679662661736360978952293916089889738966263918297396736197212832292027378850494713781271687986821125762457958112772028769192393850070799131602449859908313892499623682237477116561079045206458905572796814335466045800812033750601565811593880350407521153949993328387220257860830088060416391367866692207753382385142872231616074299264616884803644034455274869269963018834138805078755076610139933383799027503901523717108260960514530774215345759859076842416252552162357173181822413881424801441060521596889682418947394036688140208450252530835772727022351358894991955504453990531651033131048486279833863517145694587246854609776820036314344177729374791779926528022187750859757413730276651586616602318743225175119040191676983392508287782304291771000817615754488081459047511000142190255167118067852814231401455997684873086162800142182005016016386530403471211353115729237067520268064688493242044249776650188444966591937812717153781229803499690159261438842558900231004519772831379548131307491489187095271806846590085773009630498197518946824990612190737098737679112802999491865109507224589221690189235426359451131443054335548546621631889846108032194749584492537865731345576532872466865169140761083366154155839004279094750283915699684458179684174328410375981257404881703085868905879642619054820818506564035618119221316383401215775959782741726253684670611166300831178726796641345078635185681669070003878401515075290109153758356665809134079493257753479187374175933084276226826375438898907311473883141817104270548243548640626483478298557072730236716627770483253495758916376939556984781356995538511616101287695574337811414607160160680166237422016320964808684247718326651614352502381962393224717835041477564550574529324602784474231040591654352293671374799486404471428803937255335660674282580555897626797593634075231085425592160643293045999387007928618291464662954372234825348022713622272861111049354025065746646637889308571070484381354277363616877124262791935682887069981207017251596906055130209862458018147601430809853260755534303197947120602154103417950962141485095284187146260181618259088099899775316952608209011160199719502998019158790806929050430407963288857241098253010483058648859681378746257760314354206980531870568195100203217493803082740509518459915346799025582171791458051760052240846134715874740310020461247404189423677107538514286519900766420976518156151483923145867195003306124166748185936397856443194304487772681345900339992775434613031201694555347572231804262682199848950150695077336330761569062510621993420820510965870187229627512330579782062660205519200126053658923668530157033894879365447246629635475342220696920150793376634581741312152162726210972828827266312403409188304210627329092639632155153390870855232799489230920680581247555736693971806171970038327556180172165856562716146933748203337638868815280094776260232452418109364393210000496437141161998106512788640558411979367231725840276936837318705934476419797225046722782551253301575291777681906675904388476191696486673197007542489240360843839001135210993358359682426604598649210770524559669266130699890832183256770269883207752869587076379895682279696359637302486056579024630281738741812889664698905192754715092191026511382750134386073318951618926931527058069919195733929817228335737871154245575520239349694042010570145596518379775375365601591030408016321848613168831854377959653572986624370779843581102925687692987994621266674847924270536079003796958033818232149388842474041450822491958730696363353157029844571389216163732198286676745529477330795164793747272492622004030992992446355541201829623670568386091002077774785573191770374907357937083665991060675183433361127307944893026992542680354029240740882239610578720585569881154317149145686002928859773747726008637903971821907216592380504322736743932481685299887089235687046978229421151870835383000523207764043558595479021907846209519570104962998419095793027200609448534616452489235329431737562629944340393385059574480356563823497040665244390736860081476688657993721130496051255364588476826854856965303333691545874787601273465659763463543938390219452971114165124901038395974760420721298051983659165827202001965294430585595944938688092926144042624184498841918397714145190786537579106588260627353353703932680955136647547743442963176307542334618873298983005063526227316214559779291396905134671943490479594747514845863011129228694789254764206048125584992868747640115104786526796460298620667988523466562982233255751012522981709484565058616433146351714510905651578465126414026281011097680438091542182597234972726530429944458111558911593453307418132665580131827552746368295648205148686881705999352332105195669229257141662722033528210029021035164674885998766378557040932378575994140686122453348299255414389604890840945528859601271458170036436324335468899035620624203823088494720224845314201271463918151575937010260940730597342524402637834366985023085885299054216173248207995050372148605795991120737344755867294270365231138952368974802849488558605469102020062470395524186311219076147620360777408539103050634076470605039004813574858690580396043223382361013992829054560437013435156560211374214046397931221018761864472068546263083403111861054350785772508649852084213080865281167479188547585979564959358634555271513993641130710567444089850510922097393965409869371133563142165940674464493948158182283578463500124644301059852672615854304528493555484527417663216476592827038453066156926825541345817084967476796176838707454250349804023273429192072505909515933925678813344612059696864609101567708537940250205222258757525202941023465605258235035709286178118639602249248424777849762680464766744774626428848759814529361729573903862972961357357460437327313818355402117136625082630728788206380384396085163730990543315894622199721258100180388061561194313708258595709193838968830930575485575901482987533189487201649898648582235505789178040268219093844912935989013278328043348750715704011646420953216417248182441282239781195022532559811656033022721138041441445211125428464831238543896529522297962532666534633304581245765972175851714072845613250003462248139474484651983383764438045093628694783866129167194977386644596841285459587135722171908177980297164638448607861965949868323378699883048550495175446686315449155880422281506616753086339470112433155224314035872179713528835352750553130293434614394941532276282797983253992061320010494717802782919205825388031631917644316987328077861998240129291102478841711683053587872051872820946042600842331400303363570714900893859666231585654288142024504541675830740966749479685350584569879786225745482326929634815733812357018172228813756514766416245030934026571300674734440374685207673063264387197869528076323517198854038013321498821154238045347620064677163886305084339785962773880600423222381565547091299033602835253700508919344206267426513164706724033876241993919299845198077088689344080234492504487583900134648803894186936002220919175266588217169644057183465725402632981088555481112110883206962498073258095032642930854655300436023364648220382349402701738766206474116000317134622662879885331886034277707718819559819694444216584270965126413145052862897689932449128530913279529150588735548185838147754483194358346142123712134475975221387374283541728594906276404806449511722133573759914699826719513498324303126376128733184172884159204845937459228611538876931725963644059770788221602633094727696069017078625216615745746858867326055482832467159797928160659793189447128675462646103942686181814523798370869737844815452662233306206042953843756206924701982319146488037472713682814746803305240453420384917654586745655385654525266862559082250310340613717523082676678723213725034119015733650113545425841666953322539114293276161389633044004273646666343216929341163391937615108236531573172717012718171478093496489317280403794719822354391643113969088586188984310140358528766453369297198413534816556672620600319702351500539040767686445222955453357532000980304877486483730956159113552844747380770267740551693936501423976084765415720264652421158819216039929493750774110985659766594662619599654411581200687988881243998410338067323672856667218042457695586948359630700884982215271603530836936573850502235579993186543262123629611401829931706360392641548100500150301685708005927835528635703804194494506582845452703922383908428801920289498169258079423033836167774097413240215240782964110345789199700759193810310253562229579654044499070446350824939320912078362183427680277359514852514704958227267368580419681927737189217397480559384931606454480361386493787955193470790677222653854187195681396548729839185288278833668434021270967315995876395969255016962711078705676877415548579907802885981000125742872446157861793637129878064615509415618752555233032257357862566163734364957033403862813313804510813333947508730937422862704695116202692513228627015428050251073118715897373977976675183137775761674517476241748501348990169693812292870485995745108676366179817690429922656061001413167846260252378949340885558526969511643032010113052722336649966856533257193247391127805735565708726310515658320474444374323657964896677884672835701554496561719603721086068491656546086942843338751490860341988973904127075049969291307771194171139917845172836825145855553995792832476460335283017864520683781859718206922280520071667322028619051949275564235262273266285515673878032058489356798197057713476400789907504156609622191807942455037265439044733958638221669995764014813843424445779997118227596310817176721125409509205177119267394811933531199482395868291369766145084985063732453362771163830332976019022044490215755866890934138843215445136471344234281734002103347163726933501218499037246488711233317464760148777642731887678746583494034752086636828077594089887332339015251407004331880566189666491200218854452828476486315880494310759085305609333603707911195198692622780829495660831279812986372539338932035601842134464489057367807784413380041918579703991499427179301849290339045199855293387620668233462691407660260459593089352809480713567253056294485284695694765581710820306628361485331106937877406961233681952561484482937848294699648262063555909307875803784256310495002084255582918410681506414443285332794312641521261597154604861079089778558260281620983609083833496730210812065376522063359207612544278279359479422121836421284600862297743004993263076219799601469466390988292916566383338841285924698467664999033907726518538578617698072181973965844924520292767185920537979311978298951993177974526138071267327800997174321805603963673326431575857458189196848287613953068316094246872511265882213130314259384106520373306506125968443160913595629245837375179547512179573275255667101619372548865667168011381525525097186722156638633237342137737107694624003829107789919047781894857964424610014542377286667716869665011366402700831590647542719798635485146659289660856803417699117081171410649312860409286821271621780339982078619757831227421233548996622576890051161977765646572743927563495653688542973144668658177110639453106081334426464830863498396189193675027215214534537681884715627623644671259793759739703935520141806569072027591837563952345633632541847874103792800264976951499270845898867158274470477100090416567869295288595417604388964948572579952199699442824479996277262704581555392929255376892624357197959498648341427506932889423597939018422502407394929962621089964806448239644941275268987520212182733850142488439347793438644129227911109103378490167367411907919682138588263099957753627393140632941811186826952436402450653088705834225885401065478701947396870777521203306807992345468785301598311735565688069351470870019589368464996151630867012450251212329434540937341253559714731288050189212358675292448825715330085933845161510107562247753789565873068133343281543153346448166179687092564236961600795809158734989101174687916327462550786444849045896299235401072625005120180459812856380750960327898172756114031158983422853696635162312441743720971832711507364429216399886590342899247235944281150619424006870163940659821539377000693958437020688372719833530791619715768786386825755346185548417769663791493457464450420977789635333366593940348080466370757910015244423010511830614428957339618133548473299742095547596159420002187483334410969352735745033797457687069644635671070182684281091446539306581062309036637353757386982123519565748820366652663038507207711667084373859049469393932397912626649565898427463437172342213128213267795924755798363546358895634728084375847990926724185779468839852475179775859270876624765443368910161644327676187951804542431923272596336252486130369806318848439858058365808706138715359770500215247397924882862456116043901919430534847647785675153990134305665943849152401046056928610060419920830343211174788646440321402146486511606597652916815143616462294909681508232902716213677657228761755551431723554242606383981768157008978169024832799103259681859667894237661382977411629424039578837068315894943689665852698929239355359557917963075888868420435620629131132662012508109233974259206700666946206500316682252102995360266993691350460907630561048988747399283102982098404039865320780794025474622471411803148377951096552696008733897844239397520261423765619167928535872704427491973864620482557804488450805211836353360091567243676469063410543402234345009660916330510900989482735569024327626136857043184832363596869006965369970415873676921963238630966818591322991437346627409584378921106158664604048184902353841688405938463444541091681234308203059976698062711216177944106233432379450104461778592243850130294883165528235059356047502007556527089199078534151479495657373086683420615082722375035092424000900472333754291106286185523804838241579216647028910091950207706639004723294446625541836191921262711827570708680996598152655765076881180807415511997093207027809198950102854164823719712295688505601010858616805601328927510341848237629380249250439580972696085269929847666703300960718910385526975905108926416094203172337036272623259529411045481952013736024917988541761141131331748247001115548366337754752215239601062800741636430357433335553775625974613596802191007171481222318913980608837278317299753915026756601451199072185296900439655022525029939594299011856838404033982218362782146233945889446939102788939630820700849273366359400965623239691225635664363487087331569253840240342097550673016268231271043279131055276104245035965396534191037259290927560720436083445710235547290380245653160884208450575626763803878811615008397756540256713810898213119260304845111108807428034677400887708907153260793215701570799724438846518654082478869629194142351878436784190794573582632801391757506516406197303557696548489580562310832156269999151260947581543042642569787412132003153763018622527506964152534155924362392733260924014425285901047691527493596788926942067078398507952091767352842412657514228095639745309072649057274842785287717865573385138918892672872342754327620218515176914860967510831436564846886349063160070462313824971413211250656110385281477708333683206025465492732389959181019968865326255534942822019086149578650980475981752410013723133113566080619217547623159428392449314180879134293819287923770336941480856798339420822460803938389033504793411594789208972891277929480360997131078564595351434089902052786984817215871439814756764343055833867816666517307256308864133636364063036220571502124488589902159811968163007325730506311018492563726954914373818491752262388777021413591603941858515322631059984082392828152124542487266194028637478055043031883744858973971256185392669678837063921510588261177899629252882625037010335812972112374921612651498430511582641013919046427906934146670763265401084756212548205185265006719937928836807674716352164317544681794281506722680810508159994017958790618518042204258780824939722718672887166974757093396003333555593576436292996539939290454528727811161330566023757440779968863696549660493927055168540214310252748114790223594567922270912462079161911067528272818206512573761560835447581070476424714534905384348680764225403155883733260318990280140753348013155010492283293033199772036564937958715371325179525315765174949863344375735227653536233487094872649941793892821269715337070695713137314079459914791636933873395632935635858770203111256136695178243808670765435415293763278723857217969477124044848720947435102863355250765998147110270168305142522704823791574052966876552806826359318108426058858220818647307413765972548327943564373676062398238210828475464020218716302704849729026295043098163905827857060858351247913412791791365555725828758460297918689492165730649340211271905253264847209599486102803382077630528417963814684130620080639993691985900681230955372965417767461719270173116459653607602719857585315024456890382684846432787101236480002135696060929338111312152429807370350347223780014912515475908777800524763269104386181818106047926420997275874075619377446162599554676286801773699855371370114134722134739284035725575488155781944626186914788910676393074758628712113307481352248890349290021225015211581591132048566234967895436202209487017082879138494109895115600700030777271309219637710460776526313661806816444923770416168890182603031741370910161149751334587461468342662316021462508380308299120586888872356421831501448234797194188224892928676919914651303324015530849243582546908439463626288805252293112884887088062253141296873454478900602006131642362027547707248918128129625239789848647902854435143099133115939988848892160026377168209225054079678093916922840901454790070997162089098800028240860338857897215005563657077974757697099690181639304320223182360359515618802378593472856365153843169517225137418106130128573366519933480327787409682964156342022654972848923817459557412617329850799836447453930193726109167767554104544103945895602883921971655371987645542091477196373316210551008724884523308676155810859052062390597490903127925364883121708200941466555172424668166942965622293418487687632788885729522636148802589429169667603454083826532589902157189793528395496137949816662896937819573133167488950109175620047857715232266157662583588682396716740983570528101506731217897177393608503875865285000635815079087731771000727865582015122595342669107519290301968072608769483744873153576070855334868917794638586741307018938723253863495327440220177523826536168795756074461277864127700421592922457111937241008240950621966100570178780556059447627932969529029787161084013585012414169658517482026190898427640564321016625668388776050456829779147032167543636855153167210887516451208764716077715578217330831225630184158441890323825915308552033215456344326894624949760667059115225459802639546634032186404685707697638522012286532970495444992325528420556072501221329487335644538893827499115525983082867952459608042157212615607639577981134289952265027242414102212523419748747515653924917785566349408206293298441652257942068681320754133291406483891215602742390370248921488929534622040752585300962909203401315239344653042397045309481711809650921754559671477792799217635210697788946084256625915082459478429087225314854417432069106218132560901881979161724262108614867505633868279789633571276358487471549638453398612358636343261666550118470846328571711345168683440506799363232478201034717421244841719379248962608624699510085618117717079753180303944931449844369570482269456531858833075034748571704746027852886266806959374826438562044921504953892763824200913234697015302612381083567303904257645930203053090042628467732607686572941845059915498919678576079846145491866263258394248311841558065489799911267933046504423265886249453305544817443482773620936098902332056749029638207072422132992661426189339317150355563117254751403134389424458841072664463195490074868241491517980521880087880071952288708429221466755474962425018640396452648947629235049713740051359269090542047881902179316451251561669755009022087766117531912805124987778468984039059392854656508782883550589745811279493907135798561229294620720022948086511965457790402182418706477004428534389072911361791152560119912129838482883426133284647381325427339338192678346421127006260851925457437330879511243579445337808925682535666341482866388919559438982558320513173113737437997677992106369177411304740992242622559463511201305329487913017165752140654327582143352426000956203589950838336267925076651904746519577583039574753389409433074979119412326518453632882793520745541415933220121371065273594403405725888426913766559360053759956602057704264859716751827683505778009539311301746424367300732211083722531775517809476441489796337230704218394952256344602731192048632134073128466717840104495768929938026821155211964619688075286400111836219648049777618319128953546221602874513642575266482279252314678157074035230054657822127995489678532421968202927583218711321862209715212211628290592170655224541685474250579298777593731922107337447022638045702029153952480343781184746995463895868904582449759960410906227233816743961163451516711833716329302828647281543155488386874185807246931017347475889954660712851507926111858758695520222133424885367818377455437237838421879544070927532875701548928064251318379562061847389892605183156194498443303743574169941331429545625043745345585761814757936103844877928769525659760101366706424151411650533933821498355372319357801011586702772074643356020203652843721080590636630077670752530947508144882014482774809527051494273889377882372142895552920874486751679702388835146905547130117895074593269808636557790557053499335815159332611176569083422675905156260482861766513101316509510799403597447953615251585831985665826244564549507472587925117269015240474186890115535838936943470232920267793632322182980535710762578225795545416351880491207276208923349019927896515330574883001202913157502257186456539363435245542283373421236964554322140534684807354877620421274310504330163308533381808423626547404169105223370995006263954413261333405027829831493312719972842012708122261067626029556496740656219882831268520841691109009420301875857304269117358632031415457764118061126557608735316988870808526658705431878228952252863253211645981960497537045837671053203430045086581996844027888464342066229053152493935831349976416020880629604203066392856092585897593473524717416591146037985582965790829149694243971317670277469732466942982726211127520005380171409538668167606946372844438425634448903500619043750988271524839181558803160759045203523768300748423040819946355865859312475346482525584795450938164588707290504039520129300315829590373182583969961310970450329642719884122987745958297158828840912620209291017881453785096570739871240553099353558540523567255504309839103642779732667503408589052737647402812616773349393149136890012387301450125680670510358918982011390324213178078513175735483097088576872924306614348592904703412339137836954506567441367685580480603596273726715253316833628721556405494211091070279271703649892664883025931949172383899319383416887741593490455388475587312973815319495288449442737446032207239439196329133197705121626033032414467290907062289253360623692602132013513642614355834798986661522549169701003237224486790630771277908614710122650940053229365479027496420535313821237607653836180354333683003280403662687630473852912449176153933879773570420174820137017723631247068955273333405345240659108259972101032382383309626294074191765735761128677620927671649481780186540203470219744467707808770321114935783690518667247747220676814846558887026083125082593212551152352626152220274211136379716512128248824472277599514502525364351084710940643286618071520861014813995428957581632630332774863180525038486389273288245031847229846344294605031604121011128122481756375356778560960549467267288978022450687702431609418814063993036450648861671647000334260920167404418154225869420196633557865099427463148411164883967328366291030552720850239109297786202045416665929947681942553356474648412546469425866169309924155957505019819815474034085488373952481474389047610857686302218491790954725034019112803858118341155007586895408486197279766915840388302239113915825068690755782069109643459076920197651093251693290800400023651228467055275324780755320409959214248623271030121865212423817155719878679938627126262133736278231232173877227763214137234685800237304877203413553888816439569404770370879713209122895714538694498870926439737196157850044852045923797087982796633392979964691464441110570260932351237892833948249637343661651451565817298196938038564132432966125634419900514839655623835465506948221812749298939243917090585566367417960276121352421970600044185472312275383890851604678744757357650801117527263801979939220594776887392374621538213714489492572621011974074893478675208812029893734653064021288963329825260273987842472740663564441082626501602641411715430612917648768843367003349168125382620732066879258246474539858805907262182667440527411077073416456538016195576573639552078586881736207546006758928429740782163837259812026967897870434475483930995956146321781637102217565932909167449621558705802837305909810422975335839332634125078322097883988660399451741572314599147725262490984641185620005012037456418900931480698935613251321331704272042501611486618925971342378260630179995592375738784243586794088091431063089122726865878954446574678994859757496226059973825440386308109179177690652959152051559031019873702534892159342992135639972765001417314961438078284562852098049917816464241093419500322279105145678114280310466228827183490124901668932785025077997459381889014689621249230185826571244312947389486854501339592941081900566590633953152844595031976621396009889981375150810801589698737023149130458477154078553225520199900462114835909876931300924801107253254866642287344948318965533171993906714431752631459178695828474453392140013036488490279300426842960815089760812969917391271267120096632510534167050988250664196852469216460618039551273049610229934936723439216210127618920528408436527758832618194172266219397329551148593400880192242061770099781380924230850542976750103794093525889388854700038318712062900575457977490762137902308288988571865073436661576490984179822555722056798809087397483240225360117740105018996624741334848807641821123226797831421100884991060283036891343180275668696906640613449510312485446721535772086450847620088913665516086680140736263275388395916008433802473982582538082040825940095167191749052967161836892266162447762330794853036779704523201201399532970933800268680967126269969332355938845583045357279784029278383543052454845270318285509385188676583024072221092125161923677521108556184835731062151751122350958973058303300526212495638301067249786647467793224241383137191931869941585895250640214263938373551525966028953153198446107221269050715065931089272874230491198589121720069440331507662034628090054441839167504528555458720089609491772188521500009170648660948935425796516250294341883881076993231561959843151086339171950034742159234420978811866155729333676072180294517020970116656415511496908690710717629160088317142428288254648629513814958839854297554727428736432607910068384832142458572646410091785549993858924185007321780231966615974747468093562718440635464076536710091565833683060781897816431909509958685523097388592502731745070735991189264359789923970122066939095867763106465098476200375993050492282658196535402600228513027900390745951218624725737182137923673985175721433432737727085989559086891803412341593229075256064436787520884642982724681989762703882251775843711120504672223674284810439563579397186739927384656252393272813752633426145169613993333021492575612828091822368511457831547162239159563306759165301924704055929936674489512662970148506063658392898120889979922510931292447052021465213135590965451183844614223785431041320920277537181243849656710511278608664717032184118748274832929141499442157952136152639291556861445393593017200074735465505729985732664849976581351924873464962850730913719000574211323006889786641149229837748446657939505293428482230578047437253022221290608660668058418551589788051757776828841963881043421674930483456519019072898366423674685629334524398291648214775592199918509850444195157427673567908548133756153640995253773779450996451276688066269000203893457746679986327989121683504139570536578270644743524313188703464181828224110134372896737957748889818316365656272234679396096735764492325459393349327421637883886385290061813539944416395826521351921265429435761281233907828053108780805656144828914649543334819919127436120602730434752843926264710595785803667951549846231805399727744791344638073941577209184929518813536560771013160716535483614210847928106808291466653221502300455143340690245955061464077199714568716356122362653788850274046691021644630913985323271450550374451440866080213799957261403093065762753638025203053866163053917432261211937691676050304447465071283991570583456365286596927739759337269426007734808931668272454850131837935047100574193570529612764889408008319687906444381532433849933957833246948785892874671331898217876161883796828483369447270753438950994980155949530960556061723789525737834687844189737303537263848679399478350145420856299249357596388940012210933244876898660951506854120239574102879886185587157056951139664863159475788852967872050226432619192036635288226732601497928531069489370889144995370488941824939242563764927919012126641865607907311332090811137537838131250871494394518120856437376329835689993887058201683578751051056873378949101648352516118900888527908210108713488936441459645989930701503577969248902285054735375671080359381873367531115825969315778168572370809687620280957299283240540828968618373057329966144708295634926117138633983391883803145037245956580399354522288521975759479470026174254380460275259364748981175456488185364798593976329205105147880995348481167301988654957398364133663029339301359642946060121597446889653641202640315241380130334165241331997830371130615900100774799785785381333911543158885395795830016191172560871409093783655307045902041140819520039582807211711229994669393608350257354346558831770015939260806467771995022003126266002194474740510900220961888359934464952205520030410346878610024885082617306376700414589761452513963177539258979079953028912687178378143693656212416951656768059758305849960379781181589782170650419575526520195849102965352967258352649328608578098283504532667322746616231811423340284966821412552243670012279402476952075657414579121353497186738382124041827498636821311654055661411907542163950270867273583358773552164650703700483440048912067624515015863365112187482160690975282601360706769439940653294327057908093438401081848654700603360911556427278280194732567919330564991941838853659886607825022517820541472237568594500245119861517737598840114719276508181654125977745458883754378034736405792524559029831810623901720646112761478030735887634669220267269301556314074430271813017628614255810810856161522428267756441326365489467118354970265847675426115314887704970086232560468200675542140188340507613519881225016830233936787367706534764038146287642721188832198612715583741474223899591873220571800118673342725758215662808761939640186078965621006551758377675680879176863240984112322084097596988435256917618104978491479927306418940431400599074908720390529970428655890479548745759949603320677119017376954027271175685545515706936984411632558533791765303591648370660240169507899807972557809234046076725081138157378483163828992250737198906465201700064106077854415272371063586525715020458090001443854418040916429311117411602011400981772841003035005580762836748806943052270931404099335184239711379306563439743314097899116938604525497176108157613169860523424095983555112178884518144876767777192087291600213124689282882126779095077871977847395362681106641620508180400041469261886768549531269499500413649713705152256856163620915164641840741320539099269137835682280774319891432702805416027817505850595959512240568778855996512752599621683153010266605252166374598081922858071385523788380673715498460946820190672908851870114040015741477302677289360461263108281094305081627750286605181076676451218583615773007414550742115063775488450260520919370232159879508935289173746962238678928448875218588943150207962494830281323679685014650363722240860508503189880268833700168817138556127225397486817735116501311316241966575622922064236305969853131320653494510566574226815256558497802166792281242986462937558063126641391866751032719222518754643400510350729815248862305938380913338815191182394548891001460893589882162089144859476854224361158651017511179049163137674632405913784013933551046438946025171496611097268303681081039794254663456838426855076844905582326008372403818361613259857717610891503622225292972220522494590809105796605553513805486561714197837731459801201498872568825180022291346475986501529898937777040741316289013971180481362945790406137273188037193538608157660724391625295827607146405195850991645681618099653417645081219819988295547162859852218357281590747834353000025241553325114215421974475983352120221734459194326845602833653225921176465137176268127981682116594423538439855720102108429638042447848872398248505433801760174739846783909972244281061653420517569097104438988113856232057322777870699049921570685373450348390145556450209238352372464388502705782880731427285065881106682452230890347896666909891536456350591443456653445951737351774198279822899571825409547757119784982843477598141344621746152911455116237412170382252335837532504047024825982634832012136699923700626200253014893198789254588434992819725823837284081014941622830435677497430482984635814176500661775622492761485630922640140904376459373117629938666719535216467608191026778571711392537896532663489097447528332691718567135339798893314523377139468799021790601788495749680687273119968878329506681662529208460374552996747752715425532379142841675318795488914633556772051713565199552664257695468608770013238768393205405449850385928131065583425718887004083636784426552476104670972245842343956997958844297813144798939863833294613942011293883436926325846540272978961614094405772559508085017522021258650647371849666921952203845396388249866244304260950481471671517060859349949930432725603750308599883656504338056286126883364788764543803505130973975834233492201762526729112747170087970303574721677055830429444282022183961085359351867320902577687341786227477672493092535150447926648436693117059505891202121303689923661725286695102337697818287351566901762874190237910750717634653795758466594433421649732199025141531088774989957605868322738734964954391063303821744145258589616048375146575415328586645426081265280195889709785898108713471839461317194622532132775333883068592789880916237210348217632583091775121306518902275431743879752669676920121838578343555186576001449100511942153297484095491222655194907536148499745777506608670499360947663418434696343520796968031995079392222295987714736516231984119900918052685325321311718877133060799073916075587927771739428224501298680881101216370193004399417234278380369290630802973487958274324957008554919852242377843188930201540866613053256195874378068088635511772750903277099240058424567290447186332244788974848164044095579645070725663382107314416971811296494103324233893539241864093979577486666192859774658555295046773667818730013825316676750222144045746517182169711650059098712369397454418884559836381854922427777722248332303123603044855782819977402019775516281773278694393166822464525430441282228596055808126973462225258134107978549060803001010135058719935886035983855584203609398797776459786962320034235462519135278326624596939165645867628649667980179584198640927870848143812607607825492439236370058684956997303480342066765575910532134266500623369558926525303976146322689418582537955918714892204688982868952335874873267335173127060668562623146619953771513641483797696058086087252699804090311015419888297445157988622760779874020102933719186047978965278105332807663345115316226608989261400065526886052058298596981180337680396194584228777245424708727970474400674781289273835006956526846493736102834485765760914503647438153701014272616869127032165473280313173821076941125485081816702395903470453774825866104065574068559528167967976270732062573707401544300213929050872952325796112683811831440498748570815384105508683993321548176871277787948952787873981636084416741933918284814200349787431454025978444521344490058670842836723050533330738063654342112083744459510399187318815475510146470103388173049043997982129199383160390149600489091169033647036389547082496861442674253995268298355383491245300121354764405576199248272324418909357141492613011640932915379028240014642777002789242709071803137885552197161555607229110754511927354464768537334092365101075706101575659040474394546345212531918545023962681375961277844463802236387911085404454567930440055739877201812024835933128968309906903140957960171266978336773200836659963476416913565290330805545697819301772392814051261683558290886520656311673450627042762057576860174924935623263833504181011438583356172694721872801898917731108055983376167445555653376657050647257261633660086952502649624831773477503882497268573035771015967931821084510269035392047076585686208394978470519361754158139967344553670668840696739242216047170303955057747578200056171035466407455314369985786786538174593034427118908400102513573797387150204423695144886302768041026895057261507813699534901705336562743412518967501068606723688498103066094124093778976585104581620609981540368965572055566967798210590571752481626447898496551303943537831918631986497197620170517277830049819340071140261858249699377073886625343233827374347345349441871906058564491340817876397876548270598553434162815658205322518998261572074411410741466086865367829101297198205244135948630630076630174394058471486505282604368370373412338575346465766042347093512404005025975542308840474084717737551493959201211666936462667378844666948109425680663420255730117766435245089219737768576725239710468629032009234667052968500492814279786559230458923863015949802905969820537159751376771297044739626281534814075634121261084384617130403151484217403949308814616514419448528001428106164799136976146976176729925715013151477879994861469595404420360696007681813944984866259762368351585214625638866758454942978389485833677609165477787598767545196860842675069817329715451122183802295532229048132913430905537249571930397068824879436017137107957982400180034754714124073192597711767189818924943452164089762372088325681379733097235885725255306557752400121414208159999029669549983597589178944339773095174593456806054372863798507720894853761873394293298589615178842519978690360193994873784309164446228334469863842434498163408199180097727067248371602244131112743425557614585432830762691784740330086025107882959035718076445501605048756890467719206676757851847074263016212266278425037336232167682431796671073557083522481375744450022800890883777124020819315821558988895596996962450371491796530626873555140522997664992103984623761614881463994591152186778515691162431251557257583823818894254667010900710390699437569510736106539714586126697214704516951092751708840741976371508334632609529908840233241752227825599491893013630371646756960938283010243907908434735510046332476856231634278409110163396963898116939804935527530558192708343941395717210609302275767584307529063494102880865471800691598544674769334616468908694091686523066084310864968664324995053196040638150732720658291432443495472051710362286625817126696531972305425705997661775019906247231175821531579703210722218432032183135393628496268659474066159695734964068470550980827234691153942322025213140453408973053556003292949312864660861952195410577253666439889707562045062894066766533399136948017557011763435092255077945748657802450851316824294943693948072282995827866772067860207880679362514609986557245035918953889998607429787151458654626252669330948377225166790148386731734919564548268308349623923927083615274288199149461503350620043155756582065097465772099846501665627368471706742745385652418056341753179567129268030154930303272452322024527937856846822486305126963459860986394295254065947449092120425874820012780124857119406849355108385477987861743382310562518678298314829940504315362475744984992671069175554489386458948960727924743924715441572749772913399018744135145650279774546190033472431668191284515085127442327516352572604672433836173795166113022101099100926147936618766711097417426588491503866971020638355078056635099499747982232910041783335750774066870276474604388864388389022135852331272617174371517557518506326671645683575787442375327328422470726604651010121417629288636881655920683428107684443085543145696946131793488721151079349004883516561595867429421514108767082832642245597562697825607717955101297329131732779621418660023455940020052816900270273804805654788033066800600821752246728524280571719442738319540579514214004170801015163163900908706180188628136574539929441986991030815392576194128815788413886452233275849034346178021265006551033132880142040913620123658707571058226425859992139241273868599334291025680130747952176359793158266648828385938054332627257618283005131805846658231753519448432733307043964106333002946283045047598344734284291334322271600420695621278838055179777524418348078442977264258808113575614359170125811373214943363929028225569240788238724951959933537308128286670257944314586409700056403534050914492025926776186711536488226844663515689191362741889099978556836342864793076810052842620495230315445220497219379775447049875200378615112789735513150241111921833742667613078082590011117335575753999840736473445517823236250661469107176584674049128425196924341574532305490303377624761884880791958290419654619756773544283662017941575087347560655246549958479374139898053800057789985861868105778154225908142838753018409101477837929739701346934680265567669359883937218279684990645297835233742919479743670216824647604041499781944686104289144830958427631140390347604306249556396076390817001446572960317916294373704955661276956528664096352786707283781835822592139277935528507383597418622847603943228828692866886191697025822516479676502333473292694578142433123683478618564294408758051140666548014614374070513451626276032998961306135498332794246852956813825068896979239734028580171190975307942821960087922778043290214843892157905597228174245931141899378513342063403138464126103890942826569062164209547006777715808109165733414394782444704096147384024330134295161039446153010506626122407130626611048221341907485685546808557689270523055732262984091909859175663848259502926301654990028993119445647836953922363039739518057336155025190267334048828188252785481526802059970531829058062726990688841585909899272748698553353084929339717322743814712684214125222293471899648175926356885219554041504636699687375704799038124956752019516105711694355826558043896645154806074998726149828107483150119202349460627003531687438058970085438058338658896901397472818344869376512347923154180959624936777532609081168708299338571193115483703899786584441027034150626262716795375903399664188252280506580917336258883199261030556085800690002075871235464807319471980135789578387032144734803966349549281546340119752507297141199506588000088455127318753760738884031106986277222670648871453713524060619843098863224945237971589992484891240969424876308346166271131019024736495165039686398471833033510945573527440124540968112925935489404618615443688600746386633518074511814566581353629749625148154492830582208499750857167738489568882539189605980129053758156266239447343718985970131370204136420653387017377953946185952968691326777350102280651982772766731641919575773196001126776143271754270724853596888900046747495817527723241107562311006442668488569719341390572585254241278396948715291583422671659838939447409237340094312033381942220263235592053154372820430144624416941799105331826364791795202596465915693719562880588576274186718243106392907104664673216043113306812979826464847671379551889209892660130255844951140509762233956066977386333484481224897619339903243586121172722702854236791611150406741350875343946201313211741631608234927271209126907200773100538057046473307566454662433979231480473607119908098643324206300470201040902395021545582819839820738377957930111276737468386549002409244590771292482354056850278847749457040277529386476441846073630767363447952696067483321437983537527916390296859839658526488253927150080605922674654712697187190610665168104749918388942503155101902913716617267720147824926408721969655263441189734553594071410975579631297754068935637538437884485352261520791025043133390092160903378795136878002095141614779404480917349057701960608312075941489964377796756238374861807327935876639842368829580284065010675308911174805653614172518903549708016801675931950192399475733916096884946056424292939375932923022961419301663535584492534180681966534904080227610724678582871263864493810921672404788955873134304436052816573570276272034920734692317884726779856369409015574379617288817990329163698946668214418231298171263833066419531210428425395030458306138369935744830003407714579215610348729549481893760075032773137846152737698458488723384191060688555711281829539009607327469115858015557923758629341346934626001472186551633933775910794871373811282453826177924135804148295246404848323844418551382349352558655697634539899035128187447561712904643577909156627256894384284241533581692620260455467049439446292140110633535479955429901531588194392628434362339742076081202883801058697436048406940160798487194234340309139520069773380265479670996997530591894552423927984983865491297415018974248868849715469724995403501949319637048673521982188785025794380203215605335217443893897699331302435079585554350900915067358426379659937611320061171273937437562802963114173783741461614822363027630895744941772325591242620448548075842219543107012553744887156123722432319422388562179727341001303418150583817529549682708178129808843379994228991689920843687492347588934795566138015691178811815681009637338114634455246567583279058725791753917844723620776901024541948265351102838910115755274592660533787317755958300734737635518643094191575402267616954149159708094662259537874128184066059622109954335271243963391095578842019565368448473990749201276269287248828925013024110166149119600838132393434482497573612681588531243737785818050181723472617477375163762402342440430035761459543011940444014480281786954877134010024719503521813506715857080198899436659448935291359938419871018997460041360181725489674053580140263735890802386278225080194413817440600114830843580556405522015159668263598519655322587495002878289515248970240279826779127950983314131774605560530949971955576982640749614187503025115634224421668935844059249783956829452382557555195248768952199622521960393128837626558119337243679935050064880804057734099900442764989455918270665943789702459792436291146423911286605084547031606226254414880655227530707620152288669898244466546700463828559836897507079812202927002266654182962489603911157864567345043210846695387782130349294241355003310101230023054350982535802981344847892451951854584832244197580994506469851735605419125973974701468801821297048863519206081615226486303867952443758652912177712738015487028436815400075633004560772827113154431800289769625573539465177910330858188730145185790212330793607942721278932337308295674114573154217739014142481638438868533362991188622186732422215549340729804907048068637674713927216725321192920909656190280069606714961005701346488021249319546272864623832552794405486132488586153603328631166211611789996969606339493583786749450464083667211914194391436352703404874927954355718645992836490696179413860138403420824897793354085486525790665372184955710858340205757339313645509125098533868059689068764350825437033918245260381516766782233145009230715742383111088584489408154528584696483247505044526293849136425295162814522084762012324168815530773177498741167703654183125927126745998631727431949052769630254637643162881891735226112186224977234546715152119448534707113384485849169618632438729405233688340698524471091654147825297301189926965168550823478233788217648962077440571016049989931871087831620119781867847405941830042788019275825935637477332295483181465819227197332156743338082126797941991860017839958797690564925382519062841799832795453711780933873827525966725997828771137883284315339468407795911026394906546971532473457897655310158958201838215174321084683693108916196936675788145966263572259005131207625191019298514367439134451672329349229457310300567491435606112015269275130177850839490298866224711245450536640791009565095220353208939972442934595345653477078160026291765710958367243305331188692825749412595715591125886932751831516213258086492353838765787642806702993871814190907646322915181470826024837433106251996930326364886044663114826177728470261262991531822675771452081448781415226805072851664801739201642180265170817278562877155032446548191209224816376110456023129757025335067104954471716481321354592095263913398562246907459943058643570215150924645533723108942640917312923634360090094655077773514026110265956999013322066492120733766396315369737110669828461827266403273524754468947368228478174301409093891957913019044914989732463922692832920561641615309260175836873384934475041713443064041976564987669286114790237085424571724930176957225646162992810921719446140803078886991863089695589365091390215046426368097373497102367974879600664434690309886782502518798880028727773468149597224695366214674343643742579812939785412975218884702408265887323490067908768674701163896311374233830399666944924250781512340563832799591257784756028035966354486940035937194789078445174454632577274431792966691511622553674149715897233520202642094775155686221749680407807608039423175561891329735326317998324036310101912502552979220497894928489068375510956618609563387789406906036224396356535045174065940588190361524421074764128405244123457031469920366507191440929210195765881153625656926089613052644596696726530740233233751662887063571868003986919149230560179724956633274418305031932691744032873554651514894177806549115918567431052453567005999469826514003480709094022973091965931768850765840652939102529742508019664496690529717682100973878639109061456518303961765554630988835347197237234993056626518089990191857086779698835149224598674129863755673779780624458768991468293819728305205944054850291492831921263386086581555893718911948021515616512179495599458169092867067317561727829545396248182909996653634858308783200661983964049297084377748487485086050601017310845985885971921687602013487422231499567257299546656484923218372201790809892398556888074785362323923111009472551396988719237978652146962944073248007234919987883082337181451487413431695568592014703476857292500639931832063474551014101405642119073907203353578895671102183454416392842717637253189887217169643496863351072767827616505201727507263081538266377268782556217698243900503725141751493694562564521516494973432486946937235629414054310197650473368400387762093359186606050862265742541826016622687862966706508745555732339096541771087733785035910391958726338662882831047405216743370304847023601723056417552571472857929377070619194822628301431996204028023788601470028230923039954754429819351315951403063328760474305606876927246546495406526935781936111655460425943639829740312534149445088684080098598757363631834725245278480868932145683182787893281993234659733692046273365328308314329435110725321950682359705312705388926892158911232888222030986021825946451526239160459755132337745870559820799959648143687454242252814687967797081486478999960752271228045198855522818867144081611156346069735250334408696980060396821869073144608628086214404619401929366923276424042010546572478321742942032818366081915651645626433627203571010690197595200054455269188296406514840717595728204338279598899612686063904033031992823589039343381615935130213391768945126373979418379649608698761597216614836795602939186081666008282845439877976864780180799527195873241039994643057820269143986853825488114528292693406465178651810033732057640773801798376350911163150077090460874659086385749526868878041618161714505553163728059581997878727115881695202235110259977349793176048479199913440204259818453412221014347087442898429752469953637732581756517020895055772257024552460528679628804474394241431143698659795673070709950192519577707213177798571286503828686408985595968833967050411689998628036725538118219182601190767340260453823844259878817301735002055595646767870256912476837091005448794280682570871187586887275388045857850404125726357719398873734350530354851963952351238617693662815160067449817381284685583084017605182397948171521822512678953221278178770044438276575048172799860535609113095937342366136070872170702445450493074200105366426556325681141407786070145704564859731905343035983603779517411316392668227566403498004409376885753138796570150130186786222190511576883392690822332705989460261990226622610895486786217944324398959292071745425655979449434913784594663045922838854102303482694455877018149750678063902784229522796387027780219799874021639579843441359640233547435289139215924519143079767782625044101607250469330718249239446657972322247593567423671801959953726669342578772931895253506577282105926354124040942602959312130642019708979656165587669183562638083037553727433101522077676017990200727915267263438143392489506085537122560953080148515787766834859967585827515680997488905902432431588147552602234801174621095687736060220976880042018629182903548158430684993893444494867927517731013921036048307370285003245128290413296622277072488830252528916258073518455785929488580471227749921683957482423756396592929620912076060631280395738290974249996028749029738068234419467420975458847189817572279948062115245728113906417767827640847134481344282397366843380614128351902432252080874699109821666019232508264835304638143682396723482864883519560723624400085944705909728896254644019665147333343934884950647706889811080219238770964923978924014195179471202414692819899994672538088417782909804179273534122892231165491330240627843524978721866455966326388852404550105014723934485943944293846173017554379868829443395377200728581912017913556425272185387365531580016124019302473826757912609495874408974844132068452876266381038432211750519273672479345524148718256628354734659101627702757645699547505041266145491883662087469049461474862028531414601650826875683604935617421093318262876534350287444361574869620325755423194301852743465306190818394438419628617085071304665669300871004882568888909222729867494104936147555973644040887546529389483279306367093589712056976801076652810249942536615745816126915779556416852465424388376096487521372862584322086435314872364467912287680141964402820293500007172382308453333518738719119044384478327377115749363939179201630925279549413595706454655248348897954624594166832394170766430762586254862215990235950487671107441420267696449793442940539574698705451433784284278604954040620378891689096130429663941023868882419893131341258978876366813830426821902212805451843740062279053235528226293139212952558018893317988672954447403879260662675855964269400051392724601653945425022027410550731662760116718398099364789076400841914835122249278799497190065342375343645991933461137739674902768926211523883061584734729909944767370745897524658716885707250402014219524846813279360094858048216033199553302290736679088860903933087652560265486032028946816474589151934580296050179710203496928925048825567431494906968419430248085674545588561897579133938177966379205842602261969465725549181830935626932376111712015719706078424241527565409277170466461976598950404195057490519633869883593169418995078412705139264524160251983549399535613411453561061355393365137098810877902519806418744815259641881314520103886281396181053893819390404569391390194643848208112006998228621474726247541790038626782334892407237085330858488044457615054031632077250586534546036699255319319704720949270429755574866178310959819186507024839972243401202209857948009552421470044613066110460860957571577570435429676810428515507272020329144072482989728305473602820266218869195125286417144265839763744006577745585855682625851692698307149151045082643972089182823969770454215582059434247900379909320674005864567645845931756428041219943829558081516250456724225923876253089348785757503163094185773702272224842605339083585029086223200585618697607530279223885462548668477555267634738250309272200378843023074845914380716407120120970914198446813436882616450062959180603065107051438967278612310549004804514812783919341425063227369516739378189112456731943258562486254146161422175931505319674833849739644479658477193391172364597134499733611483056971923675652154827312229887106315928147992194095886878660756245886422562705948773836185948107875253938802382620160101950309032434569321143644683658746868089070289767482620473387332037891397740275668528607838435515730631806093877586026367012184109036178415684207237081893706121165407423162086472357183225988085400595218224684438168433394769950646335084683266447442485275451328970088936138397674453222845260095234530490832383024021571113681568644145900537435946399648303430786260949091102605232227534219491158710766102340841059864573356142561518872861391633489588428469590014659163207674894883894328330499379652159790951578798245612484078443779876525585618202302755836114060833478148317067567079873146192771962605366986762751048725890790435265293557142160245640601052617637939531267165521105236362116344499879523576012120956965480049399099362778517574257627784762264907375562428609902230505799621758732622452888589883904987841963316156053243547747423337421896213684945628485734951864102541369403734623814663700321296816329875688124586944931205658386922360554998016450469212368743068689226786756610918060998016703595215244010733372236083170604693749068611977517537757688399743467207136713719626369016714551439561852598513161747322971188577141145321004918968410002812007681490502270121816192315926191628946386465959482797301674252885402732734307813189486169832456893858779150231690123978358826342772451079303449720186747713187763456202322240501870404109394580987412327088497900292309464687163884579310792165249783440516434068056511719244608646972430559937847393453496462014564817692916337083080269671830591688548238953330592892008953117990899529071503902306740108259639944618440556319263734330432746756584260262835651515377327645711175755637626849990337911071570924579666334965822936040184862982958692833234470897792748417623109553376810169712961754248528893425983391537501573018905772757616091296786990506120181484161033286154078349530516882202151121179967214724580599070510411293135269341833580457568707627704251723756902929784743144089803850565006101333505586998304341230610350648300425471933471947221124559383505425847094271285926033480640621273272227257021002765418236045484984564207727402178859605286847687055391049824934253134421895220851248771577889833631908431683389415939215654639157879956066780418057724798749636597054150979846333140231457586966251238747422140720794252286572003852691244049667262940413573412666522340874834514862581808186804006910296786276989946912241909947235107786085910586766159571210898512777939129770417101585244947169106122707883401036809154586746409778529355475759095248369887391189191778821599195532778598772157812967324406905598839215013360361910650563621342379130403172796616965621180830134207117050404203832877682928144884523573387717365365906430588460822098577882300358673727113049317982076129656287847142207509291765305599648838202227394041438625917159726018604933238764329609829605426737881544734318812193426447647978644973675400123665860610542143952619905205759042343859017520708271735339303907745427602373170110340002867906770724805959368098228508205422098053194953340131563755268993385948609296696580681974486999037404802365195522817149339276845602753416831675617326582664997729938165176456229769023440026199839159085084151860165331751740648513934027406338462961945731769765611884312177591770530342272770676034245985923114234906020471591052080639183189861462038795440776074582239860791618075565575837329715947892604011162297609408972255103855628199122151678289377350418838717933841597971154754346276547060223311421672379450123615516036712947629268802521400465712602689427404976309631965590571784329827592534020787270356796344019887384446560320495624206917485806215911801845815873647633383082859914553856431143643550011782413740235407564983889926745156754321182513334820668686018614230613576280963193201566051836647899504982407158089698680535031874529245841485829139258004439863098532017156659576948079430105351492628023014774287513763521430917245544454704470095471971918326033611328744933601891396764250602387932315616530324334422187304465976896554221318456473204700478499745700058201413343980475785766677424231158482501721397564422677249422988794299768630353667895553678584005878063915682203462887025131007786015929768839588868411748155987899567969041491652916131788552014521770597632750914284214127811703028121765798532938996138956705353558533281684297186208688581947218871323597655029528255449126616747728802512688404645553949002198929873328668790341689489273009586550999838357906616230764142933107049012257433807458463440329832657553428700536398973425074815711641095422736236773128188800498804479494696644101289428297914586617910770867929377570048717538112184286143086851824315969735337452709990914439263639372844404843263877790576428030701966843932987087220411608505396076292239274207986820397244311554870380660187884170820729083519113187342186264768729475688175813650415699640764317323545602917429264804186843979468535030648856714420526833466349457910484263882145418003900711296751106021190931783292322029701918360693413914893200370719986889642825572599254911509823693773682231963154190804566131900359961915242684413288547644588747280911755377267391415725119597199555276251717805874330658438768581739121629040511550011198105681088581297151494173447021629536111008530540132286217546858813697114087648332650644926751051726594614663607703309348469564309990408661257242871800759752869687307278946354473715049202006699514202573511166164736171475039736983964349723430057068391470799230435555775774847719505089615198167343285262925066136435438416559509641193292932396506600823663743608699784702744752150708272697558571320697030695985523396886609886517227701212557299231798337581020975146558780587779436655509236478465879911185751312629896736990212280015760354895950526256788889292956627455339646862003396711541925518585088028150704482384440343444982504465560304588315063713298255715072868978069826268887626538269840799679195286691366076336189450640144941437698130617721258192241427269140163706715538566747394751359548227890498370390363893381778384242607801629500293889694842983735803491583193620393585756200451485230811399049598756934367476138408976703065950417859900391077495997443259795661094667223346866558171459761096721474193701419736992338439007914942374109018604851164700553369062452378636497236559360731869871568101445541953040529885462636761657009976085971849833498911556283074983553157434754432938768355596567660763969312482615027520105067136585943864090370871198934012346571865987881666692830626570443449608566223962595287898541123236519498463999470775207646507542344513705796182392559124477208177433633039556456764234250203813600882641113988532201343047420429537625197808924901980871360977374812320906525147511044763011123115311376140735249577679710107306987668114482025191810078883023834879600047727085748934312671723538847295696910161137406712658985584545066116466706550809288265630757068038702306690781424473904073249178497671815175183433168736980160383606671596207895413824464386601816001842832162557329188424370326925976922336460451696936619587371658129877034502031293245829295484535895379538120633297866582288933622999660863445268673956453153428007498136288338449722797906366373639164121473987354561649161508717897627297094312110588441261916058636663194838303287548627735630670334674622620983251855073104141653115344854184785191532973228127581100101097292032989545364273927303385150491790659197267845406682641468416311591226721903503656925971569560991508231301293446733680017007552382231914758684904886160284416886463036877268868667259944323048933893818393217896424793255149119800313766781524099062769163041396921074630416923164596616339146093761389235812040167459927569094519803785713943509094827030269757624682054609517476093907426355851439892793316869111407889948623793424192296092357955917574799783592830216439779104202591181035179869135351230291581304662573529463336452111161845342612122266058464636202739540747473676371619425223969273470615272875281078930048107967155332849660867564994975022202212965306179364043980862466474392292911381505656981275645797214673975310585075229133996305783532383360101231067255037916877597395843335268133107664868489077224349613554374034130470973502540564209324167724108264243350169929245621713352476696731626556249220751459875075417000825500739390051850019789897325017038443012098375029054509631977205349225231265282915228754082290345077707110866631297427683171564304122263266091352939835490354690174161533639117715670490798723220860464875346008476289841399462487270204729652199933285057882323810843989095772344362381380829103924031810233575595603311596738957529336126996712991076618933588716503574255394540169650526429277469577798721980744564174429210200832125280950210779377307126119858244682344073853031662651595880556314760141049605399874021538714664585914715749381464659524523658555914248282371028052778990723449292306889778001523951223019380289508063711789258708960523086639051792269538225587052522325575106320539839994410324167948805505536630400148444835890075878136315272890043090290632463464917247260694520939173685054787994080880483061044128003669269674411618580503233252281813255739022022909988392142691682170550624774462548723274727453383068111178890810686511821634489516028771854873005699736790403576259405630284512581302836338148766556452040862005447999076390981677304754118708000515107540800621351952252850463222716344029898825786435603499210033576584148747240543749845804353278655643152843433157103190182499346189379406749796351008713233090932407537219831365633179314979643242879407516475300982313364134468164809139662886851582923343080838138403295508156304445447033668695847525430125836380147239192650080038974043486793381366520497174230807457377964982090268417881571956718217095452805910015965681352807639795537693133265814025944886160279150217796716555896546890872549614937489778330479594784675895254207212024031615634559933008028095487731736939748160834942267520996107934298187914349999966764121375257366820057893592691176161443346618826129681262568790962671774394162296402920880023322312781482556485328753966955442361729689914948648511202788289927517019632714897660794633852251223897622696511211474117626700386444514260222959204453882814505344415248302606351810958477163654016158125922819051716216011848845991287479359204656410653040609619062346790920406371288034314126702916182586988428619735280793844890733366432226784748492267711885840209622821047647186410332364951256979435245960266224891858512782555448905130911776680951161741232544104450882722258455039834628819314784932145464573293872495395939938564072301774549216866314829226980917105839475767246639415138540834355576633480948668108869866042287357908479577159639277508728031259749888603600128918120648877843899213495447384292972899857893711336127618618904663334588261697937528194740500825205939863177680239122353806531271787125051773594336272935311446146245437103071571352754747091615264375778033151894483306108749908110446409698785058940086468990476447796953489986290025927634748281556661522565110050490734624644486532994082382910841631071121033505598232843997934660020014315756246478287805155702087429817459019985406194637999984881469126601122931296044346717828562460539524044529616057229075399897622847159063968014516040345360071572909883942214429182693144227651198435817734554277902290419056435411852113578850986727225519440954802156233155641740512425839515893782395758023196661098360140436468241235811846336610953261090322195601670027238050924138390487619506876013139863361980010984109761939585072333336084403697341874415936550000526721007354171877800211020777284999839903935147288662371789896291656306189057670069161805067624897363754438236929898313830862349474759589507399133492849276244533502853158260078199161722634961358445640508002116053636813574181112629015245932611516841952614087210911225994071904132521067018998877125254385834626873256417882031826942532073708275247060738994403446454400808772662568779266711976699135484452371568459842505530729301351851339472150263998713858470303657036497452797354105709421906856941949500100420941300555225143582401076044450840506257500157317007140431686568325408600061114330623054698143536091604428621349240150982855547140215909356387970068891928041140080902060475465925291379984366774645585836525701458077055192110924390257234162281100970665201346526363797306345936863829526152478660913790117834339531365866232785519945167759790384010945651537699443389192603891987919028093432309429760727366182637981276381638943640073829232375449553227505302120398446952491439171779578110758180931902843513521558158071980850437357623518087720311659858883435515513468425457427025611993296238215262732958415877981160979412702523634137484330280188703502769668898718673691827061328333299535947116534873438044526514349053689152287497406147158656545287307793913601400173700482711109846648688085668883528913263793924155656416306304818653414226556063923546578239503184227140401927513763114693547415070807948213412170405140490508035384546702052474916676690277217522884699896062800557725724045668277464031624113988389219149685227870196680327828378561226490988707263633576869446911100245223070046651832255038459081541804362963348113047483105348333651342137331857497978469644242265214292101022727712528130143252448489322505550686351163928119865602360546127902037568559053167057103355222390650694544992884956355884956827463489713148733092305164181076087336534777443994003706380991779761618555586775485624259968389225758624686091417759481646394881317231446901267528138753658438470289187099213216872163839331071375604116493032643326919837164530231173938330321827649599397714025134229001015475345823808416564739219839924296180034663655588484616817043880949831894993366650348398725953109102648704833706340552855700113438965450784734881965522292010397782857609485126235867112045989215247051429467623280185261095211330208335517703804715048226994091475119115130715274384469517358995751465073991892583351290202681923682815058448274942927520490055519438170487657158802056104156881798756569637776068280712659378429149268452355850414975251619940143144156970908737352284622361971731768204209410114975300859021114216632565337290293659044103224580400254886647063676090148567300176500914525252200269633789168277517213708240191782883974327987393019842975926572530647025354209699706183038467760009691204302188022429801066586744390625594529686686475152309177904962810607050680661794827159170583222288458577796549324683511992535777671142935157622599814134313980158732393374941300348219735697215685107879141736528445930215555628555411672764980374235443324150141211982779550242754481617364966969386721314397678867371126703796548806342734836184967036542237899848884815228130519377323693864022163132945961141300065761323010532465642959179963036693495747464758084459240435251186059103832091459012125193389734699752238335150664124552109836556786474832820206672315828864812764125096580451102410943727168066154579074855626639425317470500842476904287471586567063003305815920534577386392418406818904818735443800140001822417346766389112309168573202360284125228447310544971383056316926029343126081551473640849454421010932315396635676449695949468300994979504059998839230886732566155322169857164064504160161510685689741381667126058026052453334604990660467630687762791646305000849059276744650142446499178531671300279723924618048019971873136758929317370142873736736393515498182693234842260935695191420700832746506631735780653109374528824654074920878980061054502622910407090873623201146580350295297730777812193470931589532185568537286725264267361715290016863682031034861084320558281824638200470970077610956594837792460269931282808079822051136741906200639854282669809599137025277122109962496440063412142666638452499274702760869628293193141694229262409848130409928658482654787893328889603937228358578043612663823376594279952243420788624315796111051527548278104093200133462073438022305397896628062844880472934042023866650973667367760479444291845654258909626311703840596657661986350004893239386355280802427154050720805113002770675042183213398226519000897888545923818128167519142680101538975924403551613589220311958371175521587583271822085859597318116427593822629633838067673382291771336650331023774294035701529496088890637361651975438997094469089245515515530329730946587770752072212614794819780583316623926944125390115296395853598542608807852331756480316319210222082858548676877065237795207253340555872571451779862405202816006408674336459875987552697559432003668836397948213879837917422070439496305146491181716117895531723682141020220851648891246358708051249272704496701954905104353607841881101527132024388027770955048006627091015245409938645620893970722293407783163418763304220556180040037948734437698426276329556642458015470748038333677679701275939960229731861260558067659026357509049039970950444932144167635305613024611033451877123627621901218653949443827348530856743943132851180515910809307059314235192573668780740462234479709260856708001848472247195881547663646192910584382788020383243599670209105995419590995152026417823702563641834820015290186009533682094725316948835769625721876376271087005363753750722266045938971863537179311272039598584020254485350191793647222423574510089974220408631143292376464055097000378344938841079419012257441798904901194840083819937179685097283550226383157699230346078692179298540195919493685281636036771934874073098815227185000987222218819250802271319311090111996267363544106542211132616993128858487985156836991469323492656152259948089135983387767571319860023043170195906352012805200715746654077523143427949194148663834926125453579912937646651871527785411563183096110590673447131480140791624836792259748383343643337837182858690498703994850073781868990832687334688897103249121450918932024815452463421618417840510110936672076667996780876715752702600541194136461589727803931224198615492978927957809271888267722997357372632098468898590121503869438848224774033483583390047209880334672697014925139149608797829509361685216767806979450373858496717681248585023423901730175729850153298695565113767182443119251548111909236585782837241311660011786978949319439228822477208043708001704713884882038435459521551307823123217812424126860903295555028232401944581352590615795770662914767100608209140185727334298351183053370563020758608288489128047402017320107925138695240957932012176491626457434828609851445416611433914402774127682058640618475964081218631785192951975733234578781948700384540297929345724168246966830258461019743587019817196375622541509696640353604310602845554811355320907297023379862312668992954429983637462827485650086905510967586237327430790170841604056438679698453228338845837533342729545705677074213141093568969691528219502884399636964152191804690044652818534051589643575427690873625788222422023237524452140074918922861488382880288998081297137174078254340261848454918696825893346962676749702667790841402381871029837398985197239297523387082053764186844349018802676049966764050122868591200346429798399365430447144891834330917534956036136624520357711839696803537502318386474418005107533732815572456331149140853684239566274249688222340532830732611360219263888699272858904011941242369498451473582387971440096389226691855426811307215138035054472104893724872962446941633598282921663269443677015270974318247941985301005847152992712825728453042098294878865127812707898680713319366996768034151957868000288943487604045251814137165340952902674436155486531666646657456639774010947951753157988745004264690489000879587941147989185197930339623002807279235441327580825172644464639275407477767338261653171617134122727557666751940456596768940553092945784882603961393621235928496452536033458752148651788819951554346356154176866328709820734844656352909687701370504573183886019670559375943948230343670666124523228310357850572631462695002795254592070012801297326232517974820284316286123673430983544488866231604206032967322118703398444753625628104811985559586376055975062112507803863384711829562901200805683513156225819965071908339750816814931456980975094035161578181545287295245565813806275129396197020484223262614927661142961007180205039680925792650476447551480370379704810853991257737897686057939048706867414081875798838917186016811902431450094513928154960071593943225115289719736411732843883889846461220686501849745376305260599167110159045132374110454883848905345824411263462508370777336490635865832857916711625712918126064459115946853345014686855993305132836386020613311485021388475965327221066982687083525192949846887275588460355503046276122562117827647797215334208385650683978911801993671235848190456273821563784033581354224017811166688612544641324694166577619693195623540952476223626595683826756131719507837969210872061922243217064960283778549098465415802449290764127198192648922981469155830861253656733394986924452836699305490157294320539233204096889189276289529976853910043257356879314356259512665181439782726708760701375752733471350809770425602957437103554342123872839107047158204254704324046476889648663633734272575231577786512165787611429438604897191255375848147680446423196142259484643361479638233013274778933447560736315876527571464189815612977316279000771456066316644330744021870620747290498837979486934536621347193344828389208355472943568637641924625497459806394422879881646507773254700885588742943637538191711086769977711686406098050445723864168274582332158302099239657601097365933017358507592773264258415477530091968587886894881002167612580891561859561781781407707871618648759070724759532822389073511641761118816955960167680647347564658217720328248158378054588798771291246750787862788891462193627141407920534070572918276047511496573073795291199404861051173476731723466163119803509153352342077536290810540821855056256644670301983486263720436552251936873064049251426056877323901674923712533475149702507241051296103789547971199395198510343520833745496876704535860746950309474249223292003301445696887098344514510556876154766903147879073492670647278632625804652457307242327356734305175015914504783303280977986625765129924338322167680483460578854514934456727964875597387372312103315895343727197614911371754042050823270702012488223715253349719157335124933919121260897513087273052433928660257296029568118903175572935616715945781675421095640495697357154906183216179651743240146977963209678326109958734736578680338675818951288014362828824601383814373226731661534824365957909491199029126941736466340889653451435472623525437744344343689266422157201673606000007669207543959665052703259736200975515497320102764818403476805980456981029155083648034752225932259873987767536809139351916348112321629547729364669025966399577549293912747123518825668769738893911859273670962904041318924809709427353432031108654704656197628292610850664642582851786740202689983321467272413301447389883547230022354294416138854634085259820557674292106776489205205581342611067920070011940411403766637696166938933456262771174787118172564853057147838162585917859279625652917827437288926964748298745023736823265518738913619003112507148631312225307858938560115783547876279123396816187374039691060360915151867795870579894084418506027378393124074566799626951452361719358204120914976476614308769995785824095514769011263301576086455623393577080043898823035134404256880243716589394260544299643728567590953002295532785990895794607935894656726228016677140271830585667162164713917474539634619369471340060634763882987596006885444543714309923525734412748692814365625957785902942701047248818974267885393074724670716333320163755823509098224376749492416851213157673543335070373139255637169683498136287919255300529035069623207591265823787378229319605225356429742435207958044178343279334275667648580425456466571994501100833069334387958875533516220315432966445404947122251541689443230173813299530199549561028009559724544301970851139792871805981252145255280431549007192158288341488625295895711657509018637303783540622385931160177084801847219302410973203125109091849125688523910138123313109037252521655458970419990546023967597816920541672991217779993641916204474422882938118033707254702036019023033059071339908578698344055205493527580824115810551159672856916478176909357726126183480723809539028514456472337573104215865367131934635181219968711048731675962340412918493460526518405616014969646546020164432612528804866691739533589731951173370999215981813859164163807090658420464658034326680465912965319940123708290495586277681148607870755002124776343680839469395331026819672615899456070029966707903702189938852611031212047674958980466860551407184747436816439832870252661587922776351670069585005373526987370847978597864652516889472774118328196392643505758405701612437268827095214349797912925785266020876973524480153362767850980935727614881133795904877814506273497360846350705928172117168359927409894877004355557208187201049845686719013349150924039968279690706454632148429343178793538418241382511357198837089161242195817311590778002174190982358850608020631808181297616557956205912568196373342283912186562957580107085070861203976540413722847426726867895628294471841049565589067065192537643497887520662355057112551613265148147392505311714575320258146929022290223975189773208570137061106223985195932999617969285294310558305931590032691794371545229204084513209450864247003310465659412165833863730519064702425391812516355758145388933353709986882648282085943658641735064393679522241848691424551426081528472952041006260414460922360136510983089844710020340428661994863296559261805020363631092250970095965275901540454907287219802607954478422151345575296480728549653633923267656005920817305919140349626926776669096437149860012666678037334827166001829962682074084957813411394261906027750442202591703753046065200889136703489710359716094894602319780468986010501060780672044391001150344577162232692881426144571427392200594439633400169304968669422449442610007029269501458791725994189274395554111057556124267598039724107659935684894071006478874456639653188214430698400927176006506794706775431014824704955940645342600618301603421676063613204165630593508176152768739148468972996076258517680454934410983161862054150115643631911986550921606823064819094324655867656585442977073407170101058117929540150928888924673772503876343567128870312231382422219676370790216425992028207797888148111261328422719062601490210594734051591111634740826979739862294886836695263797394036681947628501654187016494686096560393251606858428190580895864642118549072163464468476480551358569055392468597633733993845876940942536014793760356202297656193040094343101068363602702779026080624367420607575136129450899002267815655008467871388153320417650304464434907729343609133101919381019412248523682099224279924468629138374729207550218008276782374161886549549615451789925304075694978630037676041534158623923143972530107365200390356479454526713225668692928406044206159805912168452856290735754127674967448169545193869444371465095725184938841177291084221656512262484520979025574969490036400438001546244496882302333535615882616605791434356098580773557482559385436778437864190196892677268325194943348928537971671600058408633520742181131574309180960245296273312531101637333956437844532668390437726378608646966693934722449231536676508717182445464105152001028026938415117617080468475236373638610230029313678928722890161630107831599769115949982258076405251976292551891077014969321371377775965068643041958968998409519112407019925097615357474930417143434407411148232343217771942726427809889604651130130423412846008082086001073282903501985570131791448599136730985079370892121474916393136975060213299905983098826338344762901334132439117580075549037776814565715984701380992195732420008017126802861796237659295077732698726157774378730362595535339011911009156023197752550751448429134908531311287118279492077021854474127999697462647540621733626778541586483718259312634949767156019079125708846251328765066173124776088395361678030301038204860858551680945792417255532987032018267821732492588375196340999430278153313039724955260068834813567968438716124573548657486143861249638761260109849964376408370222856235334013127150232681706647733835520581466333909462694764975300280818969898227112264776066065488962986166447420470698445062745471335920615357283545214736732319930121022263146283522941546105371995903874811928268899295626498638422047324937400962551318736318725648205690393046975823455911202546495313735484828087557246359789143356230915751929898476490017245605643140486228358024632235600089408971100393020571779397734679434249108614080090872996823671340618500253605743122103021534643181464860313362557473729298193216708846761712149095297728918619775955642919717745100297959892958995580681590569910035863532086146993437824061066861640419685495859186321683648333420442803042087725820535229819349346536931002461509273210562421484527591716797647700089091131026002377908799250428520789055567271982828904024200914344831129548919182148198635143221799822599007080874331849793153164144260795125708902033141158015520874082679423397332963816821458196360073273934533337274369921458838533414945304502117453221824658906196670869029435366929673714511230818465883546392966353633894650580895825840540706369084771043542871351339275359538666356226691284278210579960450413657200737923745323707479107582182116313134366547052717122434375861285845888067780011593333322600721130710176442836638351782471515854076581886565552239694908616184824650606799872363798187122100917657200589931038129956217506743632338811713426157223677849975968675215027766608357015263514236621631320168965811763455388966105771478687866565915171343092422219860066714905773965151565922894614098397075810358167749088111514993818888057159038327150881203420010714885306356734001123339666546294215757518897376591067101572493556542377677982277323000246107107881478221628578229987592622823391816491767623201075226641324731225189397157124054657240668636089628604253515079188139359672485224346964378997401678862542000315558342500070667537894536705664836610917605978465051488258087793645790016219094819512922569200415677320491824889752303799547513574899438470037592419140334096560076237017914855474194038755595480171040613700401449833159336370778140528743216503920979370018215449461042014412184547575801421695189172515060204020379028190098289518586611824130056269784526447135762878972554085518738967673407632671466690761800513543359858601996135528757441322386226541004704815705949356730437946250153642184272002025386224381746308973385858619772924945680009238470564809060924266642347942731715089647697613953591223778140858784335595626576877326650514338009457138210675722312692337052207524691993178554888069799323603924284490311983560573789188792414164496037525059377021921040962022294769938423914894922072087180884808082453359525781814027296915282626007550162478106114695226186529125553598897874912203964310526791248009946972733676362295611245911403438548203540645215216978030281866202474977817737662076039090494610075734322848113025120902024571838127058716919075602075901731586637919319906381942737846029401778256692559834292865216143506696105073322177805776304608630366428511378275566481068009306821465816485016091927464552418984866416002410754643803872961545881211324732762793782776900231574219311200586151363951772404416529802211158440014543598921886445213839914924473885855380051753176380762264334820239753471904005230942649032446369219957861257064942877232700069570846376905470088004785710050428939417907435454825071587535099775248886968526097373582745275888887253347439190988335016619570201686654224995855317801327744460086507836282118363677106752073173442555609187217472745765184869468774728988856727511207810802863341871487013394594685609314321434282873934665251462749945996706568184597537512035784154390455027873093903422352547150535493290593490320474340974926539542402881815585265153970805823715265633396974736552373831405244138415086763663209620296969378185635629660714777160666495242572426197062841400984588894322480466507567326598265788055978302611464597744492871288309694615150381572207026613325526951198742589993420139171143320558907219466824659985491109623351145895837050360604587999995353184705324004089774843813449040583293459674818417450076830049508104358642635902288719729049007237218664323509523535248001669980780739910331965091616884572876854339245193955932140942822083508443162248766288987730909854754871647244241620494202487767927035786186293126010663977473986811831544088392655595570761424423338356927664989542078041117692750751178213135278866426477443699215480306721221913647138400603116730847210864276832701062912672956525225995124617466804968555903954808775348841539363163951457960775587522836633868160332967700477102674487049688062766386300432495180838676465069322882197259207665258855565934521171866567684540263714956105365195487160986836566822101499900156461466527794034541090660285785889462453088427904838490673053836063164766330067923206750887734538584282543505150952741204478913838223808908053390933096251731040311211787832973326397596053684103781802683121642020586118946324268698260111031803377956660701416492004838751148745800859033146173218327558735979525218097689834165510384810216325235263659230256712968776180872087542301434993285626928299413575392562913871520861939258026732823461388692734279432717376870397021554814599178095287627098510739769953641066642027363790137405415214091948958494665075176274179798786513788314803474511320788001598270074491350423862631260588796895374660309506863635387754196480062782294548433283901592443405655041950633055330573331069201647226747211782905144373153028527214094367922238968075390368339941038037387713554738305415118077542866288372697753463155076069112246532032483538083512699576050820102624866943945261330830386250231855637672900723561839131981444587589304438135968310478988563078546904962387236532730233966827910152933284100343672243302999745557298876706725273291795253747980291910507817992283048481612873164640963974158229938427303923974415288500267213072120604325975400183895548435721639470696901958680239843175647557649264306247586789673256177606055701964927500585335778218817476400638504822369948545200902088104612749149107504304150147130381047734083262396781895670835407629008781954594039621511925836470361212155101959847213835647115837073228249168142797466840256778857879243982677535194867384580488181149087938147534540229874612854779272622951249135388144092023465973252862085521794468502476147017977066108793084869269753226622581689492449747761463652907225597175915795541401867216253161817116813445975522662979694803559005127829244165144433078479654388305631166265492925823370986628703272872776009364759319140204461632444636848541536513055334069777059059693384844417785867972666057202924664369767896792623098429801011754444683505110643368730928554007906341943802063507290848475158457066274390947937870106170353041282381168831584827864236088534567652485802939744239584664268670914258351573329438510507282711608010303429355197865752186654121183065974943340559896352981477742904354078373679604367910893916864341212540299812665189718599962570579223417683243139432351827100355055364720308347764479597899990548929238994225988441741299777928518805089039377637086445498787277811344407497406533433829152402772203368444395101515693804178766131936042436816563675034548799473379797799237958133719573977475623748115016792399006746073800042745536677366436397126632544228511767772355963463902206712647553103090903207444585330325791443396125343587359288797273282579297360145880612609702807947813776107713862035378409276940935056917050627617372586421265748161564959217914560922426782099825246810977575537361212625130371205949824230382648542780722178243765144966385315256621388902920916665752941378500217776905836954333134017443290784538240565597861499697723585619120208109089215035753623051371267225742909985768104593008098631657141073878949271887059454211457228854443003405077515160917896534676819778185529982422216246391871179616924215293213461119020031939060272590685955131065354305205766677237450953165205007599172958647791699764294263179454195054562508411174599901141185849721829735397427326894763336590616952403890630184584287718939068100595213358179513957065077582609968672230840566702334957451058100227388865555376064353882052360267655423106971183235524083219920175945288415281199191302929533998512106826282183646256613835712770303574303535295329035122786302627772078987348880908327042934009149460977198396674190470967337125053585083784034917181793637059263940413130760911783473695142081113499352802868700022167006482217719808792004125879005861432863109627039072615546857952331796484460365888272371790002258362706205221626276527918905972306163602683419906952637266329426544337800763592173560772997489659272800042716915935091762815847064674159752778858761241842546224780303982414995316967275035519946358152530084015143199420702868316557638476382021725298394451045753430021118495085892598428660699496202469212764077103289647095236918756734618120722255332484277584768354937399948767004868827107729425999205811147339973331843142617755667320624862880205222801100242223144662719156160619765883127168002379907639783616553986379265947809543576611495414030970359528627233851677887583515744613717909824307514974451621684315446863700418987654222216083153588289147712728513563557592858885155552320433907773378375836201238762808000424739450980746680022824945059917420893212071712424740356460643183422401353304641541414011123286148190608443363986473250607323525017829394208236766200073036263639706692081871545142953505114028891272217862698071647349247405905459657212812140493293024188559589804540329048373188949978420351954467765010689900149888148220815600758522611984125477814861228339385165786857971269818584598637009682076888785260022971598203057490377432584006709340146192542710792312191493378029568103545774047607356632514416972338527896392165142315962168411544583974332345067878741822942679714730829123096502465876309106740943340999367754784179857416118340922526135131319312132146510493727782692688373635711389615471401903141051640559931158907240644018143383249838077740362162624559567962576700089493027000887731310150574328376732771762245090773072486971372709714489281798513797971075973139028041015172479624717571264578063678263851386922377979095824682481375749896691017285879846563128633772464405226270105846951627353831051649727197675351338222839603423427964349065809488236551581109927145810681480308293508902761274065152486738724516524555539702746742040914539449889848415275933119673860296099523043978656592563203593492263669072817354454927928798173150057587217165288487844256649693048793766021184294183298323763953376458540073503937498715458683631166221933200631717355841817604445126720672479167812427015481066135805776602095446938367811927709491511084893103238606134587553101475077944478554864682157865242912679084755397527901722037383632644231868973807573248891257661687805519331316759236255503347092232863395413286215644299242156086625201979326555173700866494070774501053716661996450307542605685007946801449724920902405837949878848263854939890100597364629935285581597673102864748145594942805112875518753702365767907705429496913567142526365154051921393848277102951231531655635848486272146394652184126794376639856855956883378566696490972521173369889164058956935543021878227013745310309476207408284231138206240125008408073450147608666803507816678602474122019533116031497814732509059538956364798220554850131587288610449973739657639300340970498461317098348053140915318280729707057250425221057664875375806037799123027501089760952670305866969511187714794458227866239966386967461567049417306947052833421019298417174328754256341501308473221262095734430296043898250344994608750074807840796609913593046747186865002146979315257694073341221341164566261902865511298024482623648891713455621183017372710279563692651274284435439288717609058025738133640692462700036912627417956482163267754699817996664454548732559726260610988019593096910047238863808610737325655575690126018955796499514939412173881121391047328049459877121528749801591391643021274779358597510723333163173814110082756929452324150490544907624002087011124301598512283645577565268306317033347407945638820043038366205056339701015049715680198508605422204531984673524087607794283470163555278713625891661680109953078185286812212644817573172192298867145724086435612358344663190132184124773206513550261881295312604831399114511680798080261958739713982713363448760537212607944222661641882016334130887563163049524011852060536311031148678395643898193347304535776472264840648964506612222771437477108216908337994997665607584945111012314732297403738126342149119770501032232325766717877909365597225167187101298860158657467987684397269916297435191142295380576246023651029011457507103647923508750028461753031854939256495408452993003738456030213273163888463460961145434944375954336195021513942611082831613724476454614946793854874787986058794203336488904610465472416220478012226454182679939624010114617227074139895943436214770917171160300362568061856743835841460945985632704335751428673254680430079944049867844561560120953308009577530979328817875966495097014882680152543963505786004650834873582160863083520714551807831657648859832801316978245498248822461960006213100627140501245103996654982043347497755089803130489299078556656849505892383548448068331265165383040549497157711892462119742515008830516407720626059643975126060458410037174211731276102214652027782981684681756889114703185743834087723477750064463280366145522073172483882345375132064645547810793383981961175740197559954170115907481363577217554952176622052698916588317863269032617448554963901846643212644234334106823064691629432626840795825370258523703978802842204228709916275933438781239198881415821248445320176974180114605627084750919054393957815169601434877015027084145860708995087873003529417007619957692644973621367067189167669663966812787718266090551073558211088962083894458674056988244170112212603546047435777360975517980913362706223090734084917154073016514498820931546579577237732907142338646784228890759881190022489491062963785653259207801559568127199678350624436808201622401469237036231579974211713796646967883216547641168514631043428621447067591646942608667346313892919107961121967137263330582016129449005378195550917176854899927577072756270204348872920774714296140107696259131441885551588739535433269986862519891994116005264475556884550300126221331799611459552159688592927153434937663030226129869784287724867320334460895531006311663006855429488617310292601777198449114328218081383706095047497396293122667571318456638400918901194065800654687307395379379434391773519893618193437483594580815804185198988122821231548117880850530448890902522486876949830427511573707114285340893503448643149908990106379031952798291374292312503231613152420611641479342808970294644777863258974886801088312792713929721809492148754267907805203075154851648362201909226970233376840537143303266814114960788939330297065601532434632434240117696780323233912520946093943069560801712520646238356236930051934679024553561430024841721005054629651101313899570561867474068269647774312623888837364667293064734044078635705826461744616184617347090469440158096136213627205376703702585863387340528552090982727676724260150224987088578966684408837384234609142032770307872994996944107307462660732650684171983687266047536941058457683428226425562462849207712043775231459038337162826485815926098600225050775043595782544579545217162779263198719251376081424257920610568643302085585026589999111854554509764739565723198397965960630458910265255415453688782485649356488143340845893840720182295090945233229075932660414407427806765506578642187374244139240479292067236536481671809454634348843125663356382351200519806193255624524744972028597226912731117838688433252254374232229191865621069294533074551960628342930954752542928270771560689410607808252340555845515094949529049378920576544198588259838353980520344568092341368740924968267923244811750101927890969838070806698505912677035750736105754817533003461983079540661043140171345684774476789931526896176901519019830788744005718774532058361319574319986147698767652245305215480540931055957824722085330381360101160199989897900208425997573223188897205049865455704582706530009609220204710193440025106253128502139498917999398949177694536522475523740090964351858736425866970720570926895751563067967473802523371264177015241422624272855958764801737877152607587390513210782753810752136429770635172038620057732190045433453470586139002710962542455309242544761699235801489053308272921476221157089290899431172342768642448407309340524491606022405730140637634153834943216893315897835236472980621630875944647074560795877042530217199683920634247154659451443621079272641208911180667475773582002209964444118041082804971061084903360723101999559742283883444138929732399478549817884170536177091147896036734732753145193757039777431654249493205044244641241068695869240519164777943781203793536227214558526394562141728174461144166698660371027455588954037401090750379850399229808046384372185563981842826884671623823239601157459946961693043502326292238085083616016511176653348257836203869661795505650471252733505399935016296159291359022640281700899556467498347170478154965806102119106879084816328898151803204705073978651039742972486361005705062750355199027422809481645094238870666063395684960782997566771552720770129446729534581164968941740273436277378456229068429606653392758774321672509731346301832751958963310666394291025646822386560405844465027924030382928302429012781804046155288018522588202987030681799065013029248746898957257842036436816458816418331334616781361239113513579127243452204648761163453271977370662536265162311496511341504924150103956128401505511798898027600190459004475837034641596139693083594919873329378667125876018247690256576187364507123171875351627321122749113674352255727262967929606359377819183310818644629414596664740930080941203729911244143648452658770096939777974964913962483603250721532711571755488997913380694652881677799385228467252846963422709819624648639628670576094864452451769125773516574699715387206100024105258957951207033343146495165826231569934316090856899564923197016839203778108598526506181796153139525584569078031287008543801204830903052147891574229667598174302606517175234907067651868839159261068557017022514098555961449625783587844807351405833819505471519925899353415448025694499166037569758853803714242040150236383388562675160728925110031490782969425943999378203002159962280215279125220930540408422871980330469777738517959290065382634396868955758021603991808904837165277886522993374701981010115043289835430291675376587908988714962535041518978651422024997978193264347955157537834911623904938637907213978139018049736513849169453570858577066909473724976998866624726525880544327042148263467908568292367654916418620991962606543265602990639058232930626780373284595605193077047473475266061591028026428628322932687576877818976646241557734954466073903764158333383120836577026927078281425673731456953015745171118871551931007527178108834582788092954687402779103420314579636403655774610589176467229426096828831456859523528227130877185753311592884383233473163032684385386864532001690419326943062051183658898325715627500697673703623438627311335194280319576184068692474706215888411309841154124916945667758302193890867002172406117313589886643955097215649211089322175605829933482872597607154089364840621192593526834497137488592046149625447280674639587973636009155150475503881627977371984909668920086333049659284148946576850635164644921052092963803111446716004942102051855675390256415268493895203518268894362507211693768808694291909396373415000080192253119175691026345281935361633696648696439128377976460677979551574813284330962844213883225527885839091556416319927194070179919844305670570014182213415561934597276370281428956404462287046758861705196861461477561712517838611887082046040635481092574168150096135357720811556969287729523971068410331357948143380672697690856669011607398108046813099891862187247006972432601693589998348769449305897822538229575845634920517128368280632539592913647102271227838352879198091596619538299835074437573211974050136169978253549807764843453094218069605660387811448130153620844488247153721075161823027428631598906545710301728532881255242143791126005340290423917398010792072459618780757821392070460150105080892054375360230938055888544405044120434593254181716386285579507282008081430657738009972784975583780554838859513953886602270640566213191465560672805905048575940827387412129043277896121429949224663212991089679854407573302293829376695377901193575068779994516631809944384779766623977447913120404476146048842715967003838359301163129290606289746518156410038300872096002090909271318037619586028948304440056113385347650154097148732470236573697570241198914805722729376258929147550718011091752509775636215290429193021464295552250777487539219853677993429089775855903190290497322448306822150133485341690100518759372420428854827350042110495139364491474228930979087749488224332006403132038581588097268794231082006641066654884491120155643311449521257126813668623644541338122307899939995091055892593259211311030497609645177514451748412293405009144064067039815110551455548739674689585223543340815425773363633858065273657837345736658300432109428339120956454445538971428585992322253340928967671939651275950728769381165514950070770341511930221515582599324449243959234223904879225726507809097154748713971372110768492388404085826475072392331571424037103807186937056303459602933209218859058207730796534043184232609104132887469842353819887800467238258312886829000500001821177601723234250882124306805302025337584099004500212572917761538615762394984360584446026249424106376462248341431864593428421646913335471770086182012985295909598078767971294272614964146104817368240257210028287940105145991402544264337784115686997986851636665544533806983716747144346960089726131433454703748783375944587701437785623315385242054786423732738290019735281131218244894558481305596391122406651462157996429580476368321683769342568728651031474424862596869106992314649653991899325548698520361893025962803881462342493545191248184945633944043926697011521460532000668708511062446981729763799117958182904304243753678497419387481986082005303887435531295749703719899809180637396035738497086180280197194727907983143307557989681919632074036754020082857361473578645518557858665487740547067304125288356322335443318478239660312307805589700227821658162968973388614954588158628902105326949507687250747311294184009318244703452389399404751309540263268915953674789024413080420083645768752326951903820138328123322790992922204285291489838480386855083647646458518874747343980009354983508995637714438957003895375857192612534075613902370701440789855454424010237095938876140320109366258351258882694999338959485554808890718761192930661623386782660260471074831880255347711988656989180310561275940141018836755786661168374255474352499721228715003824115605742982652574487369034721893083007101009803507425668365075185467720613113778101959670485245609551418641181100234756295269016665998973141896626626634156678162056529129431988044334865071433022756102348792102454969450925824841070884965466017437466042583642407072517783688039592560655922466944928813845858487551800889031537726351690478896643287609649204977191382788266171930875838061102600235404611149670301337346624285419595181829198580601238393161693763147035382897171596836286428908886094452563979955061912825268829180119957776441079572002551649672495980222016417779454950112599210453892683377178018331975427776332501559576183206189896828798899730780544475193892717987355089234901905288503793323138902164604627169182730695162621540114180771809669518003884230012953267669446394768457977000450640908410013940602729327361557563820641277558477428730803799235969512367682385196371204682872699690988070348281319182164286306118450061864641376769102674035433446492537908307599761634324722870102790674733252282593342196274401027555946435187084085098669722405605131079723118392048502655809231266796572801103120200338812874897735053008069794289907880531593449706139824611707999457026115080620831834762982741806801957768790567022843953358047448778245077806513400925742084782398925743095980481405707933376782831981750392201099923725299392687801638071712200115700356319719056041908924327506545790277885537496444099873326153989482174535891171913663105874726047173146192398207791460285848584326862182843250652364367139223789888777676476305278883085437975332179883019254733369058239746986570665518621755417006102253051715263827221368820235812926226883541207843443725305063313660220174217217676784725569334927313606489942531014296113105073241569466979488990259536152664479876617484193318938911259380498835213527083939972833910023659774891384081839496175889128598056791004623658081687906688990910003453009821188192762483133256733234535559593723616549450983276215310116024104812827951483304077414714935998334102598298621320530574976942741417498028193582162788905730788517610100575913114271706718973603703241174592267822365506406413603013207988052832776224806423396177116793060550088883903109504579930743655610678686895792601161815699412963523667090526055127229823554425783742519493613253898265578141505269103484923109080074440512221857699699445502640326596142701122736112980752612996903072469134469688666955170867709013462338008256239824277124862880859345461732595943638743662783787113023172332335839267501047033321354711788438648737497630223670671990313384199934296346170129776139972296886234163767856071115529116758214340177170200144078572369484996851818074562898946036264129143359671354481147346323121800868140605645690369560814581288154991301345965191621445897323504881519071164371255068796772179034791567588126417219042499177795000441093626276682680490841163878626715449946395605230961321166659219837152574549874316588052998225522135079423935017125555338715639575771712417050911956947619623401612512371797105764104065110906367236800763058232609241597206955541628069392428046979986043517520141585653924506546879199308789482221592866171546748398253058844643906965817955845325169542703491042375937091420438716571031277184576111839155526129268073038869293155385232784626180718812535851734805458161851682066708664565409304847272766145672658280415753040139904667984203392347249195453061882577753513601527826975696580784132880897953936095815230777675855509272299691128147928608866145087270743684595907666051310148881876138699463866857900219333455569372935950979245645101829890007035954381986800994980417583707804535436758998649615511564363097543923489784011954277922495172698024764381030974997379398033746417609586335547363324430286104260116228519769960161893201720961734613193940848621334420666827464376708351617114142772086591615476325381045859836027153199229317774262827039104738348862066383730043538289288462054685478750993575046182036354191374729678515152580913600810938390564853738723410261122268023590300943687434333693444870304241220774631766755106110673518864552013374458036572227508442833736794066782222248480867408851450311697565984824762640102740384247164451552306867082592314376830635721142124723597283115375594788493912044646734454359630013583131631757879295319085273559457805059832075160604576741899327105586196568249812171927964225669799410754451919914746469061829023366257450486426126447858137255857468640375915572300906588514453527773795914773521502040433876853428891890874337228752511133600586702018802708666337150036840305023813755275491134417941260179137770423750612822062865622907038026036494249277058905105084373622944866058572065564466184216890737025255904315901097485070533555035579676488287869833684757512668694791469731469248366961026438210050801349331402995934649908609521122131363453159028426512526541849198518490035704267100578167039974833562874374981286382298455583787822846952495730985404235147769800315995489600997822777237127776492245529122316456264746411330890414554997340431970093855759324237598342451075052788854816233303803773764674478297389118724980961779179914540986341108656372463854329617130741078102693147484552494632961953178857619115863940487024517416864879001042838602981438689620267876862421014077481087730750617944762057308146002965604483602451096525922815187032361344149406991279283237733604761832316728871492272726832424598379739642402369987329283381288216129228516790810758264317849953371093322670532592211158788956078405629398012759405965845718385560513625581166325207750108622697057968611432755157485438508551122327017909216772168713654628998827823795658802640772806573922142386906958809848134798656076242644193058766050152819588286541643846444442591985243692738939100339981055588056636240665070372451131884999835482266375800726020840221619910992442168297056068320550249965576277057529557325168628489571962326345817864095273797305576744968113570158617278179583349629533507628086180835658148603153441684459451322423820745775755368745579262709579244872988634920437167921487883217022470712484196426825476529532903461025692461096868385034009661258685655441735034192114413114644193010294064183893669044211813526915248402263460630760277558185438026181313362109420911445588008846199465221806128685859438103163265391579657523987317316369520229834627428265639824216036445773155024529828944361805630232005192546020077713165434597732231574904888460251139457449647913635799652235351403957744871497160807831460497759105101414260042928294235075127149607483025780625557027940449359085797275486216113483036974243682177610516728525549988633225739300851635932869222501947436221724306739356211210658616650762838032785797606630041687587973095801550743273664608328906822006772830565266482706329797048990982990570589092736337804293203993246362972638086440281677558689468016211178921949079644272000926292861028430824094842377483788380523498337742965744051122224136634060731536158357199574245173092643772373615895904653957324330628978996611362795254461847380577688409576387620665957882199495903351271632688715698063558478492122153462303741685369903795445423196422808362050627837732095649151646088167475446197627287798261632074267927810766372913389015347555589839060814690552983064771643245755349509070480023307185458916201984038441373828933307750861591820308091091579399545599148605410070566740577005009152050700988743896958788769333070518132663253046918000216552986391978949942820911406080394017499011638722666328591982683445224863902249863385101894488323427412545658388180337487914182911894760819179936668421023124682182422033900993160014840740076953204184009076876700041015283614588454287539647380456224006980455238390620065385354394280783119001789635543427425573224318706707839840628658890642914834422165630681120418042994707644321867408661354141561495254086946960229118672854963803295611185085387169678820044942524143615096769090632917830365012734994276664523562122354408131576881489220357527565914317834877290219761177897648660960118174187184527916395365049791826564559751603088344656727697868352702286952396626885021352744528115211293403626184423301520660407829377123305804524701222135910608010756873962251084368225185946298615650961492950026483495382993503596645113724440584642731113621960974027646951810917233953193439567420714689773899985426983710269546198216468492920451078731156460501925741890238386906322342668252797493190724127362757113653468197311436801243702170390105430659243161599357139346970484004749912698279512178706126384307945984815661809494754770921891983421016107027781077648348069212313007843147386074119175096267954045729660148397106397124669853615260326262074724660603691441332845644089414784339915762853241761876174277055921354396320328888394800908942201935505113746464850058365826723771633613104793360480460147517520630773213265568721540988633431437804306646029109144876014343353387482643259863297333044258385067334377123740706090616995448639420183612962598201891327934160865530626341367721838897928169882279157564148994371439255963339233159383088418608393729570793425972145020654071105759715146474102985811016263595068382227745576603193729256692859264088719834433802298937648424827268187559895208262789158620215694609236369018394516149100859144145608657824403453900578310780375356172823889783581269969010646402572325673746922091140209321706805364247085239478115845593703479252161385323006084984318039240120832860009232753496259601787324577733733615089337498371726848199595987579403628841152137815496142900004986251958106441460952600040937119933257439154292517798950412285548054204372183212123601830670507225836869930311950077906811094284643170332671223055925732310887772108488061944915314178676710678110222755492999964707242680464275084409703702017531947074991953007661708026508752803449339901085291694518137919360351315179585056568776088458820220265045795892230928323218659155966516585215173734005790531225895430763057395100599830959728940105435514428761653212920539552250350249015406940631654009060591642676259927775001369748206770809834448394800280153877855353857010450619882527821285117553414284041340440905519537990062315407876087091974347557148273620968082218373033072714672467415412753348499955158105761737313585237578590892389079141427389597999292844143931313537922681443154921293184374623233975558348949019731379863529273643818914724065132593167569309282191271101793834719309675002896047510121562092200282996285542995523531874610261651673231789538606504436784876361337364906317486316916251361900836048878835346856055227802062615246301123243367531232147617572026981576675971676973128108702152682710221369328761063332685650155417778374645917084633687859088193750754955646620436941327380761226810931738484269078123281853910066127175671098294830792061070228114049138839849859967064727912811778820735477127718665701280670125269536826404300388617325451218648619830644958703809309542221047321736044415825738740357059234616581634455904776706593722932270007735462118286545516289405262164392201623982474460733354585696669691137821401084733045956333708907312302202171254983170312336046500206217615563208616262630435735473287035803763354454889647461374456154065136771244580199804337540189680605841787049808699320019296722548931588259502157038177190563871613186618490111557714371522135627513230371510013809147833461728505150555235416346571209854423149195971637583049923406220321347419508881699696833886603002688048969446558746750864335350336198022544806771690648236792886597081572399241444310966149400077916549015956700108895803399994487274793602382253124217811999128728711687355729785913406465341616149078322485912104508742328656287205917667517005015441893838630648849894124994732108892177119283256253594294038458993531062054081149128327557774660405206297040177951068140796367565936388249245621267985754808393017711162050948831487939872485846418814800947070289522648636169441844502051496720146561328635411995084705636794442439917296146051078984970674197184968900247036898666650982947924032453565362434748105796633220089016174321907031752662490727680058821728992337878547836288410172367452094032418338849074915489828478179307946376603044602448201996966720057231692195647685915774488454657665412435072487165190461012434709697214780117290018515090222640839961287731829661003425079963429558863391758237869085541054664457028513552232114269334944655163401487604835127668496203263126137872494553958611916287315346761073848201695960437687282741982253983632145867861476992380667547216114831684744947388327961851108563688067826644214423696541538005684354025000803664519989358517361203151520622659510473758367739699388679821716232454828627412292222363305097377371014756760423967133684392875232680555101065379714918880554356187664822999009739149731015445799963894822699317223738344990072713045953349862529631269053882488501498492662036382229343971097008984134577347604800168183647780938098784235772152176385624412006522646481405025689434384618018672671082543278993230189892459027408057205436790344152558898836686657439586646291071543982432190669129773059271609962586729437788005195553018165259846556874778957463896552775607597271930434066524544414533856842860101535312840756367722725695400344806654839769500187780909223568285926330023602060527535600671854734626512699324921712680111761004964212074755149786769641299760424518912407616630613384827679603132564466418032803852401334263292356448624242364443018651976606526243476901286693829591808545147177919147206088583302838437939877305098956208118890190220580946382994512342418539568707682379099743206248256669523336089329191328265717615045579702331159928470652118284081689131529007968620533683565058840242449709046594621898563182109497969306885116591196430240448361746016144724012570415396951975449693061126710097506715593077920881405023555316009813238242791610172191110136493373741059381082956550087689140712553506050424321277590715153893790364528158034999504671195987051972702743021412362759690036884535238483635799531005848710428952382129928660786686025074851694312948390913141123422769575271161432683278981884584248068319060956500313684772503648946003905590526500588631517526219909086699394335757259125988112895396651564551990074889028621228688106729052375873770714880237712536278478387801988014129665812942228317385824890699380933997367179852026008677676244139620638124110069207191982702658439707505240723739613614854839160184386120910910305435380217609702518975010543028031936791311183441877530436669005802096969723921976642329826950973871562662268690776900974843276222356174609162905350727347678752415415671110264748870873746362975650565738771354483774689083940578932366177097477712612632130970049896897065304003837630578924684312692607099451489364525789989563935243443745589588185917318151894213417167048540703722041776754573559239719735652124185684795260875011186143505686755456205542789747543722188778282850732448343492084956372602675162270159824189018710524037024227517891203047192200265149449615933030156652586042319963677984229326623334469532056436546278162603493821761890571103722200157283731009652046107698705206098220728607470712404599871002118762741924179712849116248163890127134328717545002873839213389221805848826772997458380104257518092820659000376256091631167106073189346463697588650613931502584038309460408155657160625826515142510345849006710969735779276511089980825363665487043380913638597581020540915332086729954376988119603553826387479827068876566586450118559682990199070773500200810292467488887768884280104483796504115456910493043359722478633427953885525143398331715479901360821143473624787320569895322058964784803617396958035471199724840097828598375225453117487838490434388972196755285073861550375317854923550145009516939046418694771867671183076287243330893365272215985455965252531774053054098398121581070854024730562722457107077007736006877165210601357981614883839814919405536394714107710154123659550170282955563838461509237634286481755920068893210161648363822827126293811049019112358454531517067087099518776906431909701833737294155874014294905457757600786251007795002398788761661764334893246689206962206075511395602173486548059710733105402362056282790992992320872169876717540122772031989938593079269802153601367823206518016501542518340500668631940755367534379570065757148276659255596143365866936953050577486652124453841512385381209159881600636561576876186360906479425461306187992983470160474427715232007211546820100569610227203976575604618316330004655494866479096046559809077523902307361739704385654757208841459052179367478183165074334334199448971101429898747459487132638137714645310930882520847958943088056760013947612562224771272095964289759279068654147130881268166477031102038247538692919684453937327534846457137501131652784182854661925234542291932992484043984080924701830987098073839120311911247753612053120744720890817579742860194902355205725691751014274554425261526375804636146392665287444348681842779566302810556520065246874549486567151838604821191142494455891799851623870222949518745642768633239507086791317203426275055991045847479494916893560141140012824722567832606031917388422867076346341724381462208975231141144284273490700721642647918473348111250071503304416795059715438750346117171854846193577195021113366075532965687616494384190727119570547579800099321975169998470787891929200384034606501635547685178356229656571353778727269392325292057139489714202844539875669619275040689001352443619623127258104784384090830694282184578771639436026141527987741007709057847875237791101138781941056363949380901453737774709030070848675119417260170800415029375424452832073944898887424105100884165986625969190948708781423471405383436495527583851138441774044356515654784367939966130072672281425363934496934150977812640488313723896872895488875305812405284048624117335418437300559230451437056397195167706758841497338448032329370266094452035289827443082714026748685532094160465974114370890404960300005931356259272396267095509497089601326630953793854822749860169188498658138446700608132291188568407865780804762966119117315117194489916534348736823726404250964973758078389701259419645469982811536478936050408703492093238429774644017576606777022016839904772263755095499092669890537610153364933065279982036489162858526628148752437295114549176185260505449765835775841811666822652256308338044308767884070713173339653669053060589198647662481265671813317380770978163061222729241075058814756379172688366579026697038512285371765071699994666016712428409980977501783244525756749736715643696206115594381955445715072274310667151975013950950356840597990430683707347817082570811549261317512143847799546219252752790849487251228299611584920025690446936291385374846789104247806645122163347943944788084996176313719565910845732347208412389299158970384606976304834796677321750345707568538234150439953432796121726966877012712279263429007557054974772526099180208543613491793422347083660322554600918418767580327174358551950230509724513858163708054349608909370386357301181720842707562752323219441766744873487142838116923388166383351549511538198117934230106171761062433963322819224414142769590969224299966535695435264836907318623094313727973636978668662794888743530900436436858628865040798579728080065328273280975559020681428247382061208435991570585408313216451747912186930689282515960161000616413606202633567831761250156596977491810613144948949581787333684269219592166218798447424370453009286982170369624209650857638178178408401633128344100464528830742382775790741486316750106473509474681065486828633295078417121337135457345048163892127351274388777255183742787174673283046082539372881533608312725649125098182409552090673744337023121583811481486104954430482544412397289395776831816867474296375027706894285343373729331316013585392542920976015608337820202920601896180385067433289484951528464828730610359377618208287059381596078464760779085848254361766595686299052833607715098907243555551963228359301216040785156560768627328157747007535543150933134160237425080400962914025172457464952002758891848923452005062990545199637820271569498465525870746950811467032003533872653565587112405866638167754387621014556353540084359580824544171850282405059466800956739700696989293198146631447290187592377721797969382460968893395623682245722123500049203982363484862616671283351941314577174383719752167906637187392574279299229658655723652619410590217415195682136427067999719456515101523431096270599649518487987128876379178105823402138553467213784312947805048707512975048390719265006796573506494155948483241114730953923433880776310192550599920225757729668999665409479960498360170246818246850576940537564524837949310244600845811138854187163463612456401481718237223887094032296835088626581866740546874432733288890599952780116548508397324460853458564606472457965135429429371865716322212140554413724195949676462608937856414329182243882859386145622043343415117671338850681421194722471742140950740570770289072483420898235882105688658478833265581794748741101978700391542974710741518831213828327679127525092463482453692907039813897828869975844644855574630631015785059443017627105640033482720683017864769264049247074670828142894637363161596980649847829041929600096290315483240368046133333942709152615145198832506330434678397722801013310911795848339101454642699422449434935568176152972991016758115668262931839819307375610245330885621795434392509198430895451083380291386130246222992221106396009614487623540116644700679393106699966974745859516516476657954185071013051562089507076051665301273410672934774599627744676458144475157942979978846449356237682443915785301315820747395740356399193092893333722434678033932074363180361115088860997551036313735487520485219976150356464995428164253128091387068187920966254858622031018780702874733873206327994900773747719281740810405546857734996823547900172271503221219606504823020541071123231201389663248654950356720612617882967368811963757941954594742727746139119415248379182637910009781549164724154235847981360885697841996254400977994909916227970747839060968062100226841027708584334834534699229721393619937028195859416822957840886041292203035874285257662778764011005686492711374618921709811486356793877017858983638322236460592227665004193150450975443299032600510480935077703245765839530218148640696390922374639678251871637053249036092527212865289925545756451887229328558444358737091002631794179383935734156064696786467003714414930593955122027224533634819759586585797248168450824714493870985533034646234749295462640172437502313859105870706484114067903189579985393933988369785678767150978562399412156900472817687217638955381696605828053047431237378892970488232658358031308533865682427293151750626411738457669114795687269544941903567828105270550443677788754691519674448285365693793872196614630537695537367530270476236516808676593670754895978179088550728020884698498067785783578913558642716303858854475762744565479112925771327594793572930760735909834804214629227808906467235796110588569313652252708820524432238564551880324765937822735170461647961314485399258451556641582362779883568855899939576955503215884108151675773755836101392890962629051100191121773269768279057224296731455767968251489989719121897199633111792492942153459917483310394627774713517667131686734451122542329614424190592362869583895968222767237948624785095059755426989448027557425757904593013396606215695792573586349035463875443342864985990628323633761690060087846453023743075914629211403655805828546677877998890387944482649589837363286590450004608528366467876136484243542673434509968765175237921831013110557765376019040838718231538647102066814067844877508127578683705634968016066825905416349588144914569988030374365476314181977822555298216890047376093578091619532404439029131392424498747247791243736286809079146130350509489409268490960259266145733989178822960705977048334784432945024748609863925660758753910435747682673287563263362200129123216961009147930021444421459609719206519761169292968407779450904221122624238716626386759908726646257742337905091002097436707547402367447297809806713278726533680753738242723529695853719625438191515692892661281311278492200135442275831991996362022690976540856075949663988007669206732430178656014542394142189223958358793189215322501604111410470051586862262663051836053922203160673906677906037477650906409772045753861548760616170026100476757737471876135727024480555639184222607913878371058615060814846129372397783253044782265176416534857376260764696591616697277624067721417131308008324485937739862686784454373121106690844059423237556087707573757523095677760083304851981314704107837125467433230707784401314316425662850778098733794925190027986637142557717514870026296150287785314208903126631430837144684868914672347811448166861671590422379462089807881720135235783929246668691004326146680934414854843943693713591573699996210978098721844112218687745686817108898104758321348567871188374461067656130238310579933936481348541150876819345554224052886430281635571055805045050224985356539851779205069134914460539159978962585594936462571376193465618078237666866744472612727087343898371607725103125920097023004893412803698136179631978535252833951147109232361212016070813487700057587230193826814928164469399544093615140950872332524400080095522192786778878320321511027392155412269789687760365870845256830743631784622898444993707347710486013765956803206145561632900034798122963864593510112731869910910751632308069562180218249983322038105181407984432969198765984413996644923016441157078975617503819263140224336983463986416372815719694877002354979151727040268563736917794762254378402780264521149808212603811328359310906839957010952644154091260265952497351761643149935081375063633019690829621173233175780559174287644697955673559925406361324180413627869574038193465382229501077277080842405038919102460826314166009207512221172289995657635269559122827009011941617113504573274824147137840871791041044785323073600334293233001844732893509256916524345458775014973827902345346590251166714249175336630588090545662143985224919263351950414287112240849701417638065733266725370555684180475821396091329929892517676500713208966545585024350304819910536137097180919394227091713697078046025187397860762048178034096542129344366829571302972125079366929891639265286544992349372543543970804195372339002886549546519646079038406867809756457942020964300290626464917392222276325770739579385912029433944007505053612928497086631132817931263110618059599534603282069561766601741802927190473849614984999252477378307631357945708678318840826987232861917626983212857526024998866776267456300534906382584392816547434615917733951623998592250979401228721055578737041703143640237847402225409481121659519836691201309329381554118606693146286932518186893493883816732311321892221296189691076842516478722937159202935886809022490870962235376360573014022622679013555753952729340023987502633980423631572280387076392039506204757022584723215425374266883359567822130367170753012916481152251501218269534221414597168849646535878771709836961729488079344339970649805525166502064061902294182418802997006653854575761658105110084716225995522360094238488914710322565176375598606464805375693659717716588097976800236231303193091784545978186860260825507770374707145063370617542457766900565925374532797203951570438387676112613456311989239526963327833849538440926247047641177869327949225329354595157124916043832482080407320138470268594778206405583124552109416745899392177818372257191219804281028308323210078982153360702527729232464777186987893618784848532615424770375550945256595627765409091130197906096000023814231552895986717513952174992836735456894079574755549960940175258035853603675788127881397418830498553601538435962522096320555144070417787916604390303813600470618525669305758842170953609961455058992628677079959290111426715201304042011744787861644394058676804639614348034065688540484428177305106251985451231004500249900847724647589128458469751122995311449207335966862428752919689781701704692534491793375527542593425602741316418611489649925555102937871370316616033849595820956349229497747282335192119588866711333361874846536332507111066333542849764952089928071793618919036308545938842590276254363776358743691996510177367506508143918663543149788890388155737879799847700259674077985854970094133217259805989307815583433975930352463528366667308939275755296274427798775065099579049324085888531385791917917128633322478549821459759382401303581304661245573754727421683147834430592663168454595187307193366827991095578693951425871512443429215226820610822107935932113923974305651508211471204436247633545928174554619448354798050452347191864232992025317243876159072498391251827993844348647804375147702396398057099180027001783495355427439010117655277721130978535664753225669217181718404667666383170546518657475297252771312800465970720228415687501876979539472838817934077032543429026168885205829940864315427945193240856349324356712888671988522907086763453945057725839985123094334894694674086172728430843832292606270628402454310499464782102589150091789578729554123467992173020342504249165643753700110758827253753358283286633565725894417493937610215482885993392545350582874183230694238379527089180968913216202844212710309762678897779771184678213175714246320457956953412667771542455271281509450398442332442754699318402790588588076822672781923290698325536767518549915322869793107720006820013610528627708524857682836657294380192481511161024847771948574274088473734967012249781004007034767591901381353862433738629641214479971225856325934651279068769763917720601010287847759672952746060269468523790201005313456183694492986233129075176870225963213560018463917173434578574711312962866912344924100627493833115774882725959634378140865087216413303094838607808992498156845250781687968756203988616439685537297754776170668228084257979298315646439009430722766929209038920600265094833327979532507168636559091493467718954923100262462501853129959514787237602990555875748908696583459705024583793414408029429967040342435497420999044302946645438858501115471110039840866656901866877357376281615843130712091632576350807719678448412690941664458080701520764241885411173577590115060205986902098917537764590684994205601301203653911550198274397043835684809541621354154650060305442089957272272961629417383667077093824637634688249773727079264080321124582057451605998791991641798223364333837907375221325597009011635473426945602246323096481977686624766589995167013853018263226917735589767201895813554592790678009178539201486114680380431049748950756215846432563493412867723108309852045901630547924795245520734175597536909636897283440779463334288426743330275956992077162715997815694120773643687795369367661292022596651485193468175920973010563064128270359301497864531384407787931031771039718341154202417354297088823403414825433973775910343215090733215879456433184732767238317280496517895014267152910090599664076983686550841289444926463855664805235150037304326453664085251450264676408526950077600054341476028214562810927595483792853096227683606127088621202414558836795054169301460638696128185464480070953317852050636284334663902494854539409319525054078225439220698107497684390207488906504124282941031193616440062483916369056178616352036730735959598971058154320280237330591426950608175772373331888907820628924222154217088748197338943812432568534361186048600528411166145761634067798063945886828880714283218175718298769538039465994770739032808506614947588413322450356455438357280757730124688961230156863743093899136944061690597006662723635624269169537983896429416574008851073684317106859707274007731969372760852078903711601573239635704537074729467222597731000174537289524821350717639736034783297851147659897397962547381471305480150442104977572472552981157473294965885668843867817496732150009660559568147770684600852377897067853142363146461774462563977203205749104343205248668987076136999943799098508486306088891609361741567782642498708272277319214384945839274700109719355640540304389972658121685677873353374396565115991689566121650701425995173762289816633272820934793020388374592304295490049699071387410615311704896328317543156606047883601256605565897329327430166079624782907724524853326638687750922867894789480295634060244412235965172263633326339041852446526344087250246282581908892409163299427215993768495199177056861290832068490004432820887350659203891769059183632971905625376841740819623503300317950696793973303713652483616264830789386836742572520101459336466790606623154476316634853018689133900691755274845609566347496979047403242259899616826394614326256411419575735623665392756431555052593173580210152971686602897546271637379256566630565216129899975429706712451817654107973233373644305362188041397336126702650858526339799621123979471015287058358367875139284747956576729936727509352194799835483658635269326462700960525506956460768822632665228135228013841349640703135777441338978560344975988948628943242883434709356060293826234148807593975780068898768922782089328507223098223613355315459753754141109661406522764176702504218406159331161640615143577038435018452500870448201617957599242829281795652708890786258395623779251699347779230698206667320703161100573658650273392779445149163674688753181570541608748517849489902830400811740591926590625747395552814577113224769071013592477475162781947474875596263688326434953758555427084027084703429623777073976383742421676434471356021454217932987202815228608588778064037270978575624691300751710668769416559966545136731493812677683608871563837704760516538541574325183122799651042023409568776714670098707138798987353401634740113751436888553757438389177682200955609892289533982269314509358217299422285734005994471967512792929268604646766155578931567244509291011629469179331847949353188466279215591210207332355436305722863645883747904897521778245975582678549594375885126690940715790527059767303364671159348773160954298369122835881344878954143795084479525937348651197375723686383281534474083076728951355477920904740075378103517792767750272346987839733195385701018316168606445345478645959617930465458713435488083834103482169879089406408655652463151307302992378288937990497329870818562362954031552261356597066551896845591744927778783160400235472554753511611444948920526084025155149565063098814353829871517098483627452591404325405905896303174045330465675592041826156972944797251599935013333919019020982393932128892715437554904089625685035748121982590987109913923068119251119345077200760853119682162410737333747679482694227823864291216883782033803142871188974827582883000783669252781859830239077141547788794041264339272389362654411383511722547115594198412659753286350974905959397130274991219560659818422408822527723518722017578294994595249124573813478508412344884344138093351296558267350508434994091765049295722262251293332122433015190492814141237877230288510837203824750064828962997918073602595988337187285696266671929140888055438398084444205004591155405532752475004767823402035870560043354302985885886833490082663048771630626335146167514568214545447655887984792709831248093686338820326059737526204714742692293825958260448581558058729403549052226825270508568670411087695199182120068814458031144018894188969571530027876845944766390543687336221824671414489897923846627783978145314343203819054316887729910517044986137700468695939072347639498916282492024438768614761945819137575996037212410096863478147265904746386529459833461481273253827647723028876646174531599398522549701669872578713805454311179651053518709855609898852776552686352743915595209434754743424558779084550038790609400992287725926259599724745781626442089217977117772027097995062119636512515542219191604429953815033290313680834624444500009357884073598384391701037113425388134460625666219050184306729554867122856497024713474834475144082335281903375866302500635202839108555543296577521130808611262496245301236515547857569971175639778101677207047958101465988331346839554061717467147845321240023803313774299777667570410077327217690362617806802026908726774279993289026055200653870201369684448335527300497551687315503257361393000966483240344452787194080306101688822971357613338787598425710357590783516642169752328420876657191163931221732284073348648343755785807373746086290325348698285387424650023264646785140988442933119968154414801150612376594937814889472425945157633429981697097918749040054589447714258945716569456822149143263304764293459086736448677467412022992894817322773352424976743330890059880995731980591116017932353638771642114633808218610675393283929503362903133450608171787308644294983723475838287732898066691800536917123923011881044687717611166224634510453039720175786625804893269631774631772809362424780672128923749502076510859377560093508335772671921963656303884181664881218982059436876071442619468375302015436130724083844000226535010995084082135743171111444746160107518133939519280248546640423963686985350064101231813670757021921563232526528978566137124863549896198868953092371551174795284306803486062837994297083363569379444030560417107140966277875980864033869153542999900192829627449752385474275542273349745365526450257873924736429082404117532217806141080913699393788995614618183798711758318932148897761603247060006364774303644875046177750628140386633547932132787653649787143485712445000756975140370098224761038137697420015014545103721442666136846232741906588185543335060233759690197592333350886472633703775063989323211156820533392147032325186930893949593164592911490193877191983560830863282633546164819209532982283231232198038957926566616393519759316611097676313476231879279619585991952504296560085854872295243882988156790279704361084849188581820765743750825521411872743382981250122841690340291018480763345370208046428822044185808844562849215697613315979668016805405764878770184230812849907373541834158947538205829831584372155740160172398368062837476075351655382482724031295221558348604509045771394092964743981823241596991861561797162022841419264291271582713937002908843961412564205969022047840254962757512743872645569255390862632840154276909154064991562714124867602155988493887719625274235030506738901767282523435335169559576701967694860803386469661121687320721057192083845976019754545496639029462331134728345256044825551424965580904063870801649830513759690477315505392656135255590272878593307209691851327215037308794320581100695146990675885128708817058544731583730018428401501433427300806285990785517611883186981685031091925257426940783999498874664173882123795598491027650703086637361363969968158245093483472735986720023673410009270081028732028517269195571551052392585610733371751287258452066216649388357349360749316483833275812216663718274475379365068293887180218826854762163512438594545484647065707796104577590616834051704140545819183240216950955002814203426739310264109132302306905243204246080077433036062462288758789667707433941375577299937411727061885391645421973786605517478982820222640805815101803679731449434390164550030535084110189382928915275822392112213460624955605098592824461619178866691874724894940127715006113172060978601984263136686400159066609565600370259701891212961384836434434470423993038268270870876190693560264753103712979444756132880056471606145202533139750268900535605839801546499801931851474486239304645031284420824158298588041429565979299353358968328834743813808782951912771740177267810853066387694190936610027147076276995174769552441181573108113434304418569472420631339466948285120064285742897272414362928794096793442657595780316818046066518277008255110143907856803198502763306575278931376257360386655658499164856421902531581180220807195868233680831090429387908688538087095717007458795220128784783629852949165898888813450151081316346109037977438904999334627384769849073067031905371208342768009368051098102745113056334485819342976681610837049896370927876444329775386688483816280703543076932752852092782492625657011115279308684295840412874190749356983101353321618076382820453213248057932957691800805340058014772714783688251253739628084599322873048112940455178644539976267796289572657484142207797509947147633640359648040786678870173854479796033199800224700420419159159273815234953637790318646168600696305323352546300216487643780490107306274130223091919568153238207338456918262161337781449615427429011683969762877108483922379875807038284983218749198049902665687197823532799326847015288808436199629026319967538833159729715143790045450182550365355022943778120070862373343503844710395599267936041405897088944094937902926592877562222813743513933955337844518125670419030821157744303962986075542134866977358894695302879788855994456236750325194763961813754010901168943788159365202018759182145921432560515812303606814425857049056537673447970469600543056399611311930386011127488461609108755686131258513032202387024895771870675112182239255111705124281453897820276968609791110929087378728899557712897718663164531406479079520914678356823147973789687137610155513439403596854975648244491172981010047458929502862620052697693578917655159619451702930091183102435335374260346352357362065686792724458760390760009403421929903452813625006229847733972980870342074558173708090647674425587905398198398710374665395816659529041134716912799091988139236916184038333549382199729022433325105790989302129951355532902732974330115065871642685443460284071460532471212509299256882557041112544637640618022351110765482338188044616929708447335259174668989649824425963159072282210666348719049311113482194857448892797415006594971583421932428086956177640935966933521873029311022345232032205605795025436618107954036470852099690225124731621612639069004154084312727913242695703439470097005006335317564485049481474763233539868010558020563655518075513797753318419282933834821809624394994087879170418544133752360460889676581200807011969173222982179350928146293077443823923771598278529327307656224361178341946303797132525558526284194328608374280473101115695559458768545489197962707372296654673916343344032778557951286317204846033444800685894382994155654282967778646765400501029379010631784256171069925239046973223534158861393677211418884168556578687740217494085027960958731670133365704797412003532640220952879174192420246199092750736234334196973220302291935761413588615907501776684427316460828114819665403884526628509547656555000419985925083785301838204861273013084949404069924327812348425707190992950097377738309086095545332982989938651435371489549415961330466572094740511045963647127502608429539784234780850996341982637965796763380526208940300667649930684186192571465944770707221258621070404903017682437938854037545975724477096406607030339573016490398593083982264483507996188789262615695712191470137268993798482198092686955960249474710103472545532793131007515399029106993632545568820571285377348923787641339900079894540941930506847109154098197814843165091169567521990946812037605571555684664244052613440139846790219469466110644867408165907726379304899246469663146475368143447705398586672527072534143238214902447733130352255325193867835351292610048099500931352293523575680400599102409553551690212185461539609424624123842416159967368700156897535782916514148849504362414417891045498130171333759158478583308913727233196484787624736518692740615625628309386757706656411475122364345382896288038562217917437680159522314396467445690937482665840913077684640149189739272980661794058109892236637180020626882167876617883827737505025300591771858242749106058378511711602590712286408851095135866711627641015175962693287380873779353124407889723811743645162459213053972122015949350428987388204298668300701842399813239633046177621256739913207821439153513286195054708099093400262031696223063173843870047590269476153344916031416335420881081880527562400565483530651654452116861050047963207305943396457331536152561275270047552794667572491562261162354096425318985413845480573419247409734892925505624314013250459901404006149015081565208543491852839612908957461135111320476744653165908510542205002010682817214525740227483638059378297305517203172717404407062138033634473720840936443112801313317805195364731295014738836240705004397483408293173876156857293967810900241845016204527824778719491655808162798347711460059351937125520240198431234648932102422177387045928379916662063497881649207166928317918844371191008455298444437163858935718969556659026298205043552706118820749553103205404145972393166923735134912052298409860191206705055990880409477265101678890752245412823201977505579595198411910688393503902630721199387175092452485281003730924174111870336001424984342094058561576271847295987513965530754372858074765824770735966072938777962469726556592081757140292935640187462419146487799116909708289718241562672425292457471294699832176644986210382231230749476082805911536743684099475185254317319298014704413196408002261313606288611588514878642473041301394059120152651468800821485817021856965983741536800572157820418587711937549948764493117504105108634304801912528328800924354460710407432878700477974093185541082662998794458763238642785646939761746716499184695134078079396344005589577252965352799893932532314895176611294009025335187236521243980448791533411451338367972578384680752564305559483796915352835024945148033029609105820684338583085458740435967843564808764269673306423337839909256735145691751584250884681041388674635795500884984461816848830970688952690331419183604236345865065837846216458488399337934135795987597113170462797696121582613351442144399302486921355716246880212166352846730915915914906414218690473381797687283133174624277715824201239749648244904456312820343628913310311184952323299949626129251146207729987049615134788541278574018904839785127620688703166860253667183865107125595780697170665548076206005530130370699305784890638106350172752633925141278438495116364820477361191023012586148185527763756086577737462205176482949264813038058397344213519544490109661929054666120091817604938971134967723331758263754190184718910836341292788970395756965606725635669988395250709756860461744258278163043675069937139421923165744711081435513258581345645898800774376333906023531833710391484330902529510894478453670787159009528909274587846620931826517290805738571147019956558313592806261412007804425068768552697766705695808523778744973837720099867986941168771346454947377963550743009525779057325991146858732546176409041442980194357863391415096831901991700290011370084714261981004831035460229386107985406173755434478591450732873956062278215022567100715663244772254362769310530616487883839350054705529756315136991967253685482466790458652750286880620999896340434351743723303483177865802967283866532034164112657274374382344508285625017045039144326858186190912776013417219797887277438371836119747948792091455270952241712417677964634835163937898699560097133238229964241288218222842364139702335839130204866288009301955795928887143992235166044850751426907959688043043225967826464719734778493628966116864819027938367980221692845794737568329814768738898425156148044323744368052712249310495986372436214356915395590292150842975613018394804076254269900854957152668359780819340794615660836880744376282115489702312938502848450416400297729307957375525291578984586032746693729062451367718459726091741494572711483746977289269140504625257260586559309275094403430948545010293332076005359321727291527898373933811143673526839553120766026173455665726805693790555169600136452056053778163744757849518934628664692924028828466331538602995452639339599609221860709669943196812214980960893362746026344883769567234428904796495658929518525303390464375825676567323144803019450363764478581972666125799241953216898847264568141926746614984265377043060816907412699053881690823884148729949684754578921827396050133645397249578479090818221971707994478806004093358357852249489322886297562382556043035966283229816445601748281728363316476717111673541312955405914961761101695360835720602570427051491915475438322225791725708796676993076106996517502536075564651696317773921390546883782371601790098041947141441286756356126169238584844263708081643633711022834572540378469718819263603133133878512077287504250889160127871421029692469581806024597619494172650341329599046436154059314783642378604069843047994364159846355287475823344878523770859149525371990933244567335261590553009648449730758082265043329626998211899790182409468045045590984886474648946272495892016836087154167321960699268098673403936886724078183553312411124294274104433535700911498595786869005390344644573966466152097059936457141641025991578902652555687576470381486015048251896952893491192080114462386055355285815111710199765696041621858707963200010276033801518503176435006401289305709235483555148681268902538952991528513825854260000662386634658191642415726188607201974202738781743047059904906029178339874108434630260528201488446903682063515789871237971597392895014800431234210716705760572366469092667342253991804653076346884311671194723050826956109420420070956379610654195038023356279353691419412705114088889643189236542666420249102289439047788305854070931251235659623227694649277964766391217867342876277857564496208241561948198412259983878808515463210697708029986395523069047502776252983612633595436082196481667923094203386804224783921362073068611756279625243368478397658754660265433618546140472369796547237771050066907684561958565419107725582460669574281324233071735756247563620220218419867610060240120228225756972274474753148331422159449396176341984024259721353989126131428755350505643997273808082587979595174944951341923925367629076554641240663193609939845224876938352582694041349584453853090572583120581569232457946762899141067171927436635460245517059455253867448934543949509408707372780534215981157935263281900968039827271740702157165497916572360285683467618309043356382431900568813697638897041000788626590898601179504734434268968266196342691124286307402531823734668849977377569662794700746533697878916966398255985932655673742449439665351995915153351919904185314176156524438594102743121692923060086032063853481854261353198911649945495165041148816665421750336764589696744616892464778908277323100280944074625102714826582854722972508682372941254659382113073226425002751816316084747470605750111469777817961189933440163178080444851956758853006161866702914521743325046116871506144978519726664003656542145313551667976021915365531841486273986595199065257850877756471049166354790927090595586966789133145832485761309963769101245456627396548904311664540531278693170759175609828540840712387001740376053951603917925687118180267557135978145726368776493009395833571628447333564922729290192506291276402170841218159273471514455958312314475562523639479163243210886340663928175800547155256116907076556222143428365745985842037657336509138281943373836928687502602142845525695043590238164750996449394017055679894029946403074837885166789996980208614369204196900590139748564438253392799679245195976610397848240756929733359971429939027585463598900006811846581570530173838470294390555931823527265594783174998257408500995875182807485441795048940770263312589060968836680828734462554526747717315584796999150081467224760295271774295452522689937107442559886992760945054182085644240345039067838870284332212872537343256068492746619381026221875666575134594083660347964062932311290968208588700747041907184226146458021890274114250734879369753984159957686736735619666038987848743948719031425825282661910840482946528870902897258335594855478918860715664950375155747381865003440042673287402268453747683608083857840687454980673983292461895576459307772138328737769807199427383466524489324923501428393438841490836671505873794122356319858689750902733016751334963528754475078027454678614766008525275249038756600905594276231257069884753186566620844386300355739479680228734348806907056107811485126746430802119344082702580955358778554144659344486127023025805509657324327153951136639430055871079091372361020158256391397346663261247578506604770248123813125396293419139189672292638204858872943262757761506060691518535636266469333019028292716761945206402514381653083500566810835721494896349767282210298611255534356103942567604894826395295020534895650835570996906605296375827492433796437293228480393154429605312483341472392521555230967265799768026538710307179780279171785840714369235728905431859735068027658733335736801702807578639231692764547316675564572581363065389525372614699456933756756751108178196074624260897205914878814453291966352254509039294939484804472770698967040521641795369041713270970774390299562488760687120171613734904646157045069979090319747437585554195455579603067776453222827520777159683355881722760155480379789765032366765108090600261719577750984566155273906343849365371490044102518711189022811701146658018679698894672044659744318942042255055752944525722799519376586372173331285879950974847441381340178845301269083939015009201032294907075379342517486864990431378043637250816974233220703657327930038689421328184208543810615509898823148694023096085623424701548509663636674068533941400920849541291472003413863154771218902676940144098758969578841481363814774341935614233182428870887937794624260955474536142385624972880185154245819416454051373878197741828548485455224694901827499269675330341926658673376633241841264832077517687395472493628335503278750647121402416327697094408809718370465717355837994442495498966575953317885019920253816266836548318659750623208338821069037932152397512401724764209533503558664111927315495089071353027221521774014011972633999156243569559817945181553165086329046612734005640279102980732570571916742513256270337368685596104853131426770877716840531297692826292579324368324925056128268187992995718972900875098885986170026329264782217454210562658855318707605519301827611878498846475386080343597306152423840070293155263086261656849685107577119879691544132019442920755404184665017532518965896155850935852822699603583982929801041657849741484361891611981518471156329933968580684879686871976948081457723275367263716274579531927459423169682393238651155928654081122472505564994573579560115684048654357241035627093781716691068489476586549133967684875117871004008372027663524688395024775132060084484083324283078057653741373128590320610017027031789808974106376078472939759595644542736295020322967341733922236959622033712545881545378554105915018391760464714722017008584180073870176412621414868769938580280795106278738847606385428204255496646368155788362248489648273908572361994542424978619289640962096232218766208144460725816887804980159547881730241929509733721008191885485448246715997489817357222242996911129048260317092015940305716531363145081770060414228481007101443600139864498307399911506137994188779159281146973146216599685852532742810039772751053784838020497297382586988717574451397622689746483992807493568494288600105443496833662670299794843796487398949982861342438489753551837186382507802905803858240291071330591581149172436370373816701129315856582667744204035884804219433920388500030793535748643729428120516118378272123510106332330082318964625782083848486031095072368872894070937334397526923210815623790777753336494477652913549019321656675783333378753198743419942754047391577755330142922775369583012272232328732980464991826362842783722280587743294087574873267081790006084856149431630731424602969455628878491836267832591813250288038856736802749691200769106144264971505889593484574650777760353413516495591830499892577294788418543314226411474599479500529809720061280827560815684953182619297573280610327239870738900280292782839590610733437971251769288821249153502159049237214648593886765742881608219818468264182839389780692093332935616939484633773754330834990802403060854918165245004216398151808883825434252373362470360192818916405143185502892355447691046969672651395539815561211305106186122215437877919150581399937780027471385596579499082010721198149405350212100547484667682894258027975446063793768300925747640227838511928184066486791898384333461472330819821393894994678199104965701208254851740037596353479743997820437111172476063529075024975017169915509702075706997738991143916510125497272367010567450773980327395806544189822092934536331348625574927229721877655501218360448869773059856129986976032990594748931006120978008739810855452062437377735042670352561602676319726491336697907195642644967025923833283451679461316220351158063572215593688642890021080047014195892248972365158278108126073520648284581294203924997408946359787142719665792027302931586066298020493834499163511329147416571537866263119815033434166778162465809550150620938236606486842263315384453012106587010931840264173553953204721831804972335561199137054527634317740096568806158069523085755614388160486114692904273283935360449339527856776889533711986075460863894848854946965236004848033567273288673649178304864080741845292088086923418121399835912080397140361880636491833064294477903045946614070170618936470908126740735471733661369043656810257459509621159491660643181733417519979489830630312915826875936198915221630920487083248365319469188224407853565130579932894948206737026728214127397132489584213669792036635074164088447499089935480485785830079850276676073722298562099193224930104046194378964539678880037328642301834598454539622283592469081898461037895786374839003132608250217874073770660160334269116103948786479063065206431909829404947523482769695679678907480586285529181921838566012200749013139121387030318991981474943375839874095418718200536750905017812165594201423080799578500877430709147008208114235603806564259931432656604006756819844834355267998582908812486704744568285854324237078627234157752682457303143764874586178855585630437522911530483524897312604334917215582030915083747285988568526530040086892091194239569437336138981735228639773748390688255110149271681702750623630940449540415892104102018189242396912988534379974217593630961348283951702225797205055488832779738558995114304012003398258102050861898369164276982659364429248840279967910157906154377849234709876209636579732708517927480734086220069273635508760150815992323094263599575237320094607588814673226085773852723591462887576594235615583790028867761370873598338446793057357303521104635410754773762161404302525495577001619393477995414545728936482670307371177788412859860198020833278331560977125758910073356832947567346582508879726192343455758441983741296810175255382629190422120068291078058061603942996061442394451296200858808755326824887367071367073223102997589504929157031778251909979863258158939515597006478559478243064728891607672415122799122166739272259785691093567300288456028144141007943847011349208545182678828388774849177147250271963995304591413821239822213492225000360455598637387137684748804275780383673380352812202594550817594215448983358859732930728684576767463810274688208565835576538986680761391462395617074700772537615245971756630319931786143395016612695289122922291829085211839431934947713706274943286819388600899427249153235312563212273256549400180150119019329652070707479974125292713133541257968026449919085141626460565841413216036980731646533738346514550211599709559622199721001061129494488063566508098004756136742436179586227924871942535232426079269320601726679221186007055988930289077853519293698278781882960717459849681260076954534084233191548853439093366875363741005342401307535799353173532677843310485851116005542731734313787940485943547724521384771276743471748279931529180477451158008440277218066219209348723215425122393974689762986940420579639762225241687958428301407287181387932917195449541832397193363715607880123351257352515740024958360892845008367874243181421474256353876649490077192239171274621267045509468281325288120459522356820441232450080404965980116115038265446831184352883233982401090790102169485200065508073071978877602484279710351595720789882522838393631331906571447670951480634544443473328674091988251816577421107614227802358417431319462293724151575715853920047799870426020717302395365093409883429990252881977911799431381637338418612364720221812359259400250048148503705659318666365982180739434977971792805442222296203400685146116826058108757191191371282204530285792495046548982211511290190903851576826249444338765864083072185505372619993545714221641228050951978647946843831130409284037856244089680789034993030937330089406232686178530101941098784066328194456149745859786497867933456768899595678642200543439420047817226926175331519860141721661460727370619831820108648400014124548428419996535246387667247027368866140249997431466021887812437584748082176689621391293202807536910108564931264998876973893112599405737582589659972653354335672368566649119254205029435744662954927133455464925826663271364514767920526625451205145204998300216828696164990983553186920212285406693197763280779759869320987492425099194566458341715404192130612024179576713259081996256546303707721212234623472248594416026838023458673930249559951834248268427164958879798136366115520952161558637795576426738944932889794794024690937536533472240727695629368628437011150915617636446807323940899708814709706753511072139987026669258762289165010551042432741913908611260452679360312242386800785418278002461003302595791445406020045379744061850698060434393921168152627382639427089094051959850363397562829717456791228448598942661436119851247924873702087943326678057884801137514958511231644501150967910768768263820135265047910193283738910480629109936861287285684933703193014291731677069405037619470601007114217498504663245608929542251006755943244029566108272975015692931239180235169337869209464505547755697749154696980897399487751704882159715581455413248597225740176047955324016044731708673098316956669066413230593071288121915380599174023028488948284225528540840475846208107279894345479033517459340103740554203293504533925554606437603963722765671949164945044784938095695058059952387262588203621193261174365502510708215617931582919249139794814580957333358380489764362696412794804561098063713372632476082298378707810651376294206368962909296574850173506388679824795460766878329692878149096457108832663139710177235963477615556305892061206031767985001721253617240085767760776921875332759780293533615926057972110545758080477685844663580436893867164567790025268422224956371208446762341922572937074480800373434551998628605273281962130716621696586298291097362856291793874031163191542883780522345723584760097541871581246672755854925264841024575146678248643903802057670733155375934206693930082350995039871066611577773339266036446780895481612304978781098594843170505466705685136965951999067954048880060622280721921099947677117699709416863602850600689661466864183524677541326798048057590513930721660562504370246295938254893928420473489670862762651991453783547238425036187208016756971587066962485059540368476573152093906351883678692551735787338046728934879783277431099983669330735050151843353202032947344886319799463061701026469293374224786885939914073805475358606085962337957921012647749915941791060494454358153010310250615464045634997639169128994604755673681817587693782568820840126454799308535782239168767587345268393808542856828401089275491651044743353503607063421345411695386590508968987450557229935374141240463310504456074907172775458831547349457845653050758493297936610074553150826299524821097577362056809804529836131384091250693317623631819739491948841514909287104714927370551922479057616339530468228779722993752775074976672977351077283322301585353779527240435457919291968965923300644680386697023943850292061925245402125271963617934911403196160943777660052456739620889577882005417969884673004459101287311661468155062900639197078480367961969526156795636502720096394226660849949184007307811735359355304714475613903274984194769357635033327299705402502731454332954456126683675147845881766131402374746605046526160761655008090075018001244079844223333720131570874112025316951168158217098633379227985088262224650578179295376168075615228345095111924508973945916184308092265908050942681557933988360783584550266967346417704643586111032277070776718474729654528272878472824111163162049533667579899342121696645222567904609859564934242405619355492550142669148339419248470006814858702743669557687358943087458914398024595806523075541454386356619355466529570804575266114310248190174271727359923003972117915342681289613070170020814331502779805377420312359643005351258200646350893533942148708858401887518827591970437349781085337731206537221513336263334678641519719967653246657077293913774013425902429554908370299078674094147711023725686710220889238959384227454019679996091441538525463702954178786631065943993716963135104690493962762359318340726206399071961253675133950473093735572322401307629347200800411146709646784325340218689280368512586441827469511809352378646020495230573529536306709732485331580056313412211446560308928351188730403176172143884543690210975819182403653560981885580965328716308114591298459027343201823374052053385202186792096672016211596931813546074144536602125583241184354681913470849624224286507469367540113452911213399416800671186081762154732557952204244004606430180471585331340032221088015694633453209497391018284603835840592749626065248936301262078981926203733001881487730264353639493337028821613116604571702731064529109882703422748977990877504300300405716359436627388172432483661377778516439443859873440539419261923646983058887750027259476154797398247931649446412525227663988093497452861488743149418375835639125145884772390137767847445721033806013716590903317523520376030265249891718514759315888747415640242316883868319530190796582733955445886074519774353640056394745678718893941081350757742738727761822348219157910224915716749109706742161839294214521306824588193667100537734956810679572163734974943619735975527203395758351360625374347725898680643533807273632031326933695504794464932007004902833179664838130767651994043032343083312714643464888800723306172195472210451904519826485209054012791281162982242130632444540462296471048619647892743934983993913491363732598273844498443490956283014668912082839505662177310138407389945959560659524339092974721994645986981764005360278562103851741529286292898967278737349386734988350479763369210466615116438822248002345824466319112925444949225717681407444637342849931994048238031106408243319421494472603732667688579404880690528072288140056036467330070937122309451292494648429921243333844646323212663085626963516792177531796971629795460455567234964719508728095476472487019541836839095494754232548720364814380093803050576794350660396123681562332223630603536654316431792079174780450215160760311219909028565656873310531190280989941618016608179287352389509567588715557154560026182300983162526021158165143225066808030275640363222571535057037598582252270474523361324440581763700774144375686129928059056321910412576934486522312174067053034469425893418272167838699368637118999311653268792084943062812626799186886025292687814515857600542727168508466298968853273359526342999038914947944402754526124663087772690543912486567373005081643252639459522149542270460073234833655467200795539354602633450168336164196429225202478147281612786877804320403455292911338320696874360165466112178579981339404307289289597809356645722221702007472798612094455763900164821198264957816121313427858186069585275989714662182718314489715888914298671185432662356591680350634490347210636732283181116781650415783246770160502742028260840979445974431429073234113744715725416592938293712389346461503603802553589715611813901238020281736339802185484877054153617134778766855533957462608287088642751607243507868102178081535128143211808428124694861380902577348902469165199525262433654582911329531414696920529438186155070527475551687326632179066813431621108248311241342682365079230834112117649725997072610684654218273185257227494481470218089491635408493640918526995111670870764028919788730226105000662495502901104348261723678211133866197744637402563095685416724493624721409047876865170491737429464815826383102863866145172897699266309022385223160360400495495468779348844088895225501686194075601276512015255442105087368656847736186694524978777277831843240937614268215051015930230823442130214365374802502203634307455671803156587590636817080064630648665688611665671947757394507393396610742567078844365210010003460507224085054922054187539316910708433246286358685188284812470711988236467744734691565257524144455099850879341852354243224668097286860885431482147529149178929846891201885172395068100880288753025481361830372370686315422009417603666858418034731333697211237734926088260930503934745198998417797019303559062080331710506925950369964665348931368698565492078280137127962068259340390577625820022944250586019534646178821915908059594542619291410303891002228059243593818993858091481928441837348511122421713441409261801579676456631624064410059515499464909455992423138718365248010202659957524145865814471550133680174151409747684607227991862802348863388634943742709763769100353589272698758373446781891232403576875485724676302567059379439681368986798955396504966260452350373666727113910147162045876576981790079251151436879192847575490043459421323291989263266887425849572676079376083533747385237075028924468876323193823558400383703387982735106003820079786090504729868120484441671239398912876076704684608447792795553670952239355788529475194554772588729001350001786745812069085277342180396810893132992207882457684872763227114726592423008851979625548401614359036020553473506548381928519767027909551967068050436597083767751496859228604209501383838335291893152329724599340510859691435746636359979813263330895340317082143353083815834031666404517925232831451773998901336387509194983668783583739315953086070267858871984363766431558469910082672923885221422384307666301682831956055831393908029914629495460968053864399137632915614913120040378050934910170329465604744310279111372558612519193724670679377574329070860104169261161413550577741573084048434578375086591300970657843112775309844503138786722009162031432869857195021902946349175856147113953128929693398487853340576033789695440632135931122047874329544036667963028330707481310321418106109092378283443749885930297767558746936935652684766288285017405551800227728576947637811243611131700123128851930619525687128876050440165768116399402162039609147750408026088203468845239098172756381479720348498566746464752517063254590299663549330373977852286251328335060645763454103927485636734280622005235397870436960521581365458934556309681275042034306213639793671096809314085976641761226724561107489215642546112427702672306170795108333252511748674127550944574468518018707016714506409982120781999309322449926572307652849678585191018398556662277019827155639739238037951672002703577179612303848544466056876830610068417899768624445451027381917927114713696658105330220958278769469954044292852941326656213356421118743134108950640819062913609162340010881671622915281432900082082237109008004322502138282612562616084351362079806688201468818060234642180680792258449615701196225862021554478965089756967615465190949884292116125221231758939905013612539511382265620838893233316289938939849176195611409195831800576650796937730664373045986163892880179799490379627698622813626277425260860032781284470111066628748886098065588934278952215519954176386915000405533580054664225684993363218659815303651558412533429125185226983138862538275514464366751045505016516986284696007259038026568284664483830427424113619930195522165883120345854665661313893628202071738009652220744368479656344539692507557330871686683250897754078521917661801374605812306879163703366434153175841060010584512496540175332665849632773094501591983999928113882758327897353466093777896178190372327590201531763272531554724002644902485295424767580640765382565568247384014072676382641005682540630976758086063946082637266009603010859308224588335567172451498623625369530670040646772734294088452805153543737076564354188204661336058113255949380422368493507159538021770793153204706299295255771789359107220895841946324673304055949128478797463865393421273874811228570131815045544623076422636243869575807054891541669728442573660799736631431334038363745601999074978664699717671934940496247259258766702432275922916757210801506039182707170567897240168656846261668592494045458499008481577241513546683757499648683709665258628952059631476810776289198260817901044944761446464087401452267777978204803159567788158965538077556183190738874306259650118206793651795437593490216283314982423608438521898948166106658878476024734298127534624999688444535945633229253544310174200803029095294727324740177818263070957801871900961674825840798062090971982990287496432719250001018134063578339047859821858049630679435374722909463641587062299946001237841883222749770385150153838401094265572549418869862644257363223545101692120290057340745504872564640361104442005270163446168165596023800951157281296801641302887837359946907102337308038946079726775279319858632767329999347126801396630928712380361152442653450026175736377338217694409214213470245375673497266660152672400598655504016770974170390584976390400124808184885561825784349431135110332409185251183170436706659091165097592607794725183502540513649505538245449078144894438712210707697514381687630487195913028057625868890120776365600103937042883733015863081086147671473424658959883447403770905709678636159321517877299414575382331342346624286065930034861963627062560319623567919202442388453126054633966299321514778273933738091126487653123199381501708391711497021877877293702792752688909394434141255810585536063569324890918266549279078032641079637114297829060048963663252866931606078701096955504020025922426349402216891273591923330359583086442209015969416449492267816683512871984712327277879109624842086314372823447315126399596450444665561625913856291519613863367880372718898055268853940358156863146272204644019328424463729336221903704432671999975432458258764700256325225445014427100885132237169861502068485061320339675191714450556640409998176299613037406706466605952549583077182513623146527852844026126696652150059849877038072509092911766018339870447524149120619798999435279430508463369784539099629358639637483078710720173020648465278546126683628365746944581403033125221529089655897007512657910442242632371052707121133848663314047755455050335581474470535942979742344247146495726914380621710966686368601253176570263620459506554516999472393366010184281383214207975272694818101217843207156833133641124207899014225302971251592773273359502798554391765024202211484532462801227130153410721783449579053683749518157895512778287652039100810109491466111768263816602900883827336714373531319649725952920896644777643560492708540481337135452722154117478895875443821487650129012685465654659713445750626291853915036611135402656526753593012194964705531755460443599360788949401638128350270516158806821531250536409275145579165274983846674524687570888782729304135921696663000974808852012091105743648480524585877744400665637897750198440218443161997915248868048225683446798153381763048360612829629646628605582960277943554732553566396993202452842456234534966455962534825630326918585208195079701002345312040439489747097908870828627172034834697360562991729861642689593015442314276698881665970540511754785729008309444313258967749376600084994882857282682038209649326387539617766272344358071393316086181216098525422465445787911817956417258988752540114924959968274661897035086969368238443647662887908344175892941609599917169089649781775505930009928464883011178763063662190493975071553662271554445367397486372265962078280382508198157684705219943125301762392896234983357341373366050587972877708705569103547697994549375843147027560570716682197237062992576784950116472383812795438233789177895278116178049511529475428357136235577054631358024561412459616805272887725786044754526893306447471285847834621000655307491076237582544281903332833026234557394052310829432320643511031833845996043569604317823051591819788680287610964386770992565794205630367000795463847652048140383049485314548006439469675159839717700627269698853218786423151118452335678955624125728218467921363827315928770519861377045412456616352111186058950683092509941927790317382679621003488291994794533416941617304962984558470602216251090444174777941093036458020769302987780779520919313627086596316822288843774829656774403783523108855790927529180288161633239972742613633216348933239437391394679186927992855960604024058228990161521406424438862511272926975956666860112139178737726269105171246377573103120441125642109561541726460751437538483458377832891866719703473258866791832873181431558533996631533472808184511237367711882748760730218183536568047843314501318814515323738819790427615750757215406461167063114436480321161434899458098074426069861904710980162878770042903507274777602493459661379481652632769586465013907050072334859807986910919004443696992299123422758944902120810992883668050491298775785590615130059116707524994567784398062588863085465296614747316317946742132273653172783883424323248792069985945391014478676407135488495150857468714247808302544251965538797757954746401636221950279191080895299581924837110457468073442898554154860411683244395820422636307098914326706522616811532477228514350596082712670699644582261740519758024499390347151323643465277509518916066617877878468643280765412255516820658116491704647263689698595547920536328682606917714443239080969398839330413910050809828728723862358182962405627125407171223492165922914747312425491330933198642518327734576178912164613600972789626837939434243329853388879418092102965687644216929817520576650436161979344364755012674968393576905179628882663533647292879494937599726473781518553106378238028113193455584577253584289911914810327005595770705690616641735670697088030129691616719118708920861050842658912594204022208846792725820479406252766897170190135516884193748835267823541192183013338159774265369202344458889321763747283076751664388970681208520917714964409607089700637656578568771562097948476182192528176003824066377757512465149904657049884694470519670692246815184526561272206129464472883799974110722487571897438123983436179434761961257419032686029177357773535367885534772785669581632321247928452026615342354090280128374476018105253507950506897624824187346583699482437792209094953158036822550541440394445510107997645176058332504720220020188162327322682229072269623981084865731574639849868636807191612109669356552316404391035623571107199777645207499175154968758626167427172437721714372401006804083585996244468859342371285360817769248904758287217106386477049423232319217278812624583171418245946933925534936103691021666997617449409288542386174940295290988305284776704819403780993689848798489188283224123391632440375678874024079357514059357351958278494183043182917949171548166747889323773201638922758991610447964644504669115021127062892856116578268986617002893759656747919064063660090731147338306356348419667677819882592588986929527724556232475963817384070968540981488464331347051773677657978281058936142420755578120768925382388859748480999484018451737609853517678083098003878201900631885904940871395646109303569208621097896922569779094891600060735845231008346120851684925472298027597057984170075696671807340362314164623520090914616618071724703692884954759830398202395962237096588507237565717050935344949700216277765518334693743723646004326505174065792794221859540856800462526111775828959195434517286573276272114610553691417314029294167220158951509275665321419285764106535661704553522071884231592582247798974203423174276230210374162450112978337990953624825353068399508915589387877145858217246866860485610224201779165481709832108353089362103944764434756512188038628843279264417180941512796812226754841874814136607403691595676475762501176089925079741155555382843227589997318442395248139019250174044394035096872745522896506490108362600183389389493958913818578392483402140189991804791508445287773345821400162547158830856788630049419492741684727598020315796363104674815832384641945977858118858790982267231391611537981796571296267283290427484262457228135997295031254588869458939654491998663462347930525013106496563604931577124437173704161316879374622591012436376613329972506660738677118526682021422317399016875094924990583559001704684646230471605558753332261760537276727430724766070275288789126857969155932837988880245586053225890674131056669880643574975200542877887100111523546547233074476999916249918058293916078066240846061532256659456116506054560249145931347412199756646529474330479947273995956119996683260831516568958393220737545138201287203995311542078750868967834362702476643744555061494960490023119706795862450412533043363142496008928725460938564823378421939929589412053649959259448617922891042933429621430171261460418234368804916589710493135908955328024152013816700551756584723064684001123918328101136649260225430107503274504048369019275206292151414853236185253557009426592007883796931147301315340569275942349296241190835355908844108919676689603020911207869298000440093264856638782869428606962246496361857674105010808869223844194143158523630611148664353281042146991909899836471222065438019915334162498458456078969317745887157266676835597743917417812740577853943460911514848383697563284002579578556494787680741592856873293741750725160870320489028912949106983816548688135327379514929598526679972858787235912228642660075752472146577229041293828178875139809627148588398817162296667497193185146068294651973195104528143098774798944310088383614126689827504944911529518916360466514900249534766999314526710035480135533952457327867022276915614047126573809783487884953906746357856239409554644333488522727744720952483486604348029392526368021220561604616469580485081891090113482388263021369362432934079273595706365403530354849136628419145661574115603295411865898352252298903159356577358015543798053937990566603391901857891211861514938965286363674504256469477995009431304207580403728883324589466058153844135006219867097066043432240398106004206118640269363281061666507059486357343459731930338098369545882291101842743796555797247176038929206392321933674798170743847899980128904140308338323960391536845168077463943221809004188616507080351659215416776388829302196226168542316383582813443560265847464620324381033483806599624203429770071317771374722792977581163332229477707118861784946226616066659416528601813070933443847687539872623234311411993583442874208679651608443892609852709261329417177286781057082739534867409985954095099902158332013737500536310846315968702720485244857570829275026694805821264294978467428777560387196544465287761445313562053090138267465171522632091197301543321678230180416463766245667939324565695626621080149522400003912845385163633256334066050298220944374023999241137943269624530105748587372015853042961147451214174843883339336016579258112989598326993810924719258292830466249992381651834177944405330256631381376888272027645568714739347915088690168607399509828056408241166361297839464478798625179076595436422261516883964533675760029611208850587431882842928467963738829090214142069233621010673966847654877690371226131720351107096918708601824030428598348165073852624545600702876969712654889323214342027854337338903133451706849496631959808040306876345780565982785793123715181130236098988254322162082889721168534718533516422840039783190700380760569890894875269655784865613417796671766793705252628019674746191684383953595173502718287820314552518568508883515685457247142645547942426662842502538428056722131541238583888015815546866422197342745409850555560039213260995765514435756635980729275743283294348829864078361483124470610750528111955453990776693689048080191074844466000259915149800838683323252834982570325968972084842313993787489011614618987501798434223326759890640642911085037457580319094781842870160093791741593877312686748422954329695756208642804698552083847862593467784282175158758271647178727599344575892140345853381062504511362132792927820126319059063794755987091191393538403772582591480554086479278654799722213193193205252640115928555778381394920082032265994631268578681534952844124829303551451223982716353624288957756744568336410838680515553347903677398693758642519450564890964280535582881140781522003165476592073568633910104994777085262252865523099586962363266826221495955276623385022563228631617068223691180556550386765569583027271130902029278966090241896886305429294108081237033711585130875414678240524718011998890490680542693209683858719811983298509128465697013557679826454703073524719245432605695463165129305191339159301074508100254014836308501263691269945094765833734940222026310994690744123923206939875381728751699997499599493722885570223313113733781330738503701126926709804392435059847905932183258517450207869418558855496707153451033878173006241682742377836299188154699448737578223123816167857400456921473720162045452857840602039917925791254373551937347722690129447297196251608303635455776626589278240527915319750824505452670486379794980732444808642739240991471258456525330214736575981943843996478484821909253372454038443629154586686163817599962485156408491713692811527058435528363835107004144208349026681203718106794280821065654769271245084393688693111531807994201211596867895042299500639065098232758741959751744081570581470217670171790009592839764120292298455618111087639622662211381086981642092422959277825600953587134364528817835620131794196893674692468096255596747074753899440134391234529172946784134388105587491342496688560090810886585736049287936569273761615381740569466997768031752821968238244194625784590120367806128892707788256818895537491766179412100242293988553243443404699404583669055907605406701709494938179699428574227323948069620749977827136324848937837540068502093998710455962868443544209423414747883866721079694318275739741950477662524361818417198478814048459099815566982241431869199768385005701443570788409516174130513619856275896621693368084232011708904762972694735590445939736032630202468623939178451925317618357893079561387201692288621846254155213838535998642634204264721951873440098342182653354270362756012764627496474066973470474958654468266682582389849894244925214517298177991680320400156553926736764233852332512015723682715209062303958647492607284727882808156507311672012419464504908878731909403162637769627845953187830216818842183616631681949974883728394151704071757035246696052081366085645429335061208732149564257945527667626657759968576945686334073003152097061898791154239232804473583866285393314460637057707223225860846708672345931232949430786990433488342855367113752043063698758004102415748394910413584725404274971643419388851539735544862819186173862013508464714222131564907434374366992365717717047062137543547824619596408545616624116291525126958940818054308131615873732606134328751931317288630718862667420200231402211957244475188394883480984733231255082374364522534394508036254054935181223468408415110805271096719121399660570525131572696060844163694360024355368472207441527988770869225638086894444729991940580250903378622050996108572382506140674210320409316077123244198534379387364487288368505306403848870899068222434168874732645538679830996680815160955675376347714886280910993176016469224067469175999403550134453513032000951476826172082916904355221134493278127039620504292410831245028226551954405409870092846511280840150171393960836085852325657655322791334581750198439162209088198020742905475424246002889514541223899554021329784258992917871359395872223793965393975520666263512676421889594410035748652796333417374640545595640045957789842086265446781777546499643070696535249841234221505358231014385747368355005650376668585308807649720297878185218551165546953058806049207178976196053906540723695094176498958797222406188581388935338386878212115786418893748989035442652435864235611021978967774357760752929775448806548164436811071862850239150887593164312241072875225388567531233211618527840048432578819942178473443634174122778813249742404667024196971954669293521250615481492344979121624177127224939645414385756180188210685629474643514945849544771777557154859978339214790462195264193477368739305813616241519503202095581195439229444358233543211344158809708697977743938373087558142072704982231376346357246353573391366717204744297328894701559236067192801954695411231521520215405308230688487184407805775867661935334108170894227110902313189694347589939691068182121359755766100390888185792377712839961794511095545542749934465716194576916373372718896569668850953519469037321902757141712544378308231548948305231523240205929786915350736821249543807000743085408054618966858631737207491563185988222215416963069864838183152817962177936906691854855602696854671059698786252716590771749773257970856266484337512165344666229703548307033570965745039238910910546774769956970247312595069734217124779677802642720245289040702121724316241401086665937472773709337898252175320396091791765931955646208980444458182524939694251237924932999433376005020483385886451580054753916101459569507399591620388435393158421208542919079429751939628837503429520172500344659923515113487489525438019944102051758196028949922095529509173931495785871668921327715753662679147711332259700240009016967058543054395411068880050575794666329352049490135437011243540172861826699611673435332235496292375780498771192723656184513566521938069569256678803490935135509949570452048866454287920888546156180146320706049534691911789517613843046619798717829355328682290855244062738971153801669997178157623643254965041040726081504470674245157761157485375546164439929385108959151698593867618264963453628010633093968821266101642634605345525626467112074586658479674644443883348326335915251093085974860087923272130830882362445709610619976994512223220750954232881786651764674565212376457028434600386273941385730184463308917036610282780442007534007266601332586986817212148534896699009630053720859507016736919652355291358232363491796067092164496976556728478241555887579268058877797539964576858317339938983970981178688600018974661189200649121907163714561386044965827040795879769584772108599768252948193151426309599073997784260794917449353595623163691269728392756443083672891741957543159953962173370202751941248723494539303557358333503750643917228625640619034880083013962515208943982256174011094437804697592546370375223694457489657836204342835445467840390895123629875780986490366860345226506520332988343318115998225066167146515570542693061735117073658899670759906881358206882123719996278906989423173669643079490531813563955476086503994265973465081212804832791642907452549081870152003264047057124186186688030875095956440587597181721762357194274585756864668261882053555684852400728743493378506786111477887394960268029376435576518103650575517874148199046093193576017585848587983911092962667434307801754726092530597032444875867166125377328936726649199300984543573079744520533791549547496907799707202553627213230691335995085730345769300187123313829119700836494230498681129917087558197353503295280131955591803834904122698190670053169654736757738890566209973696463440914589239954192926725831073939693961069903357272645549131036135384479163058046426402707607338797701469854246962558786999736700573942917341818158404498695974329910158041643215136739020881015050575199506849373234268595348461903779809605595615210521700635203715405482192855288076355511018534366746533340638454212914357374379797295386613571111709507194635706480187594641729981311092923695728891456154606118026379188949573599162667187931517821350531000745730683455629762607050326046586211281197563967543993536104004998827614517798250683787640155028605008075297491103210119580887697677836035396784654546290823815218644197948403796558703400283035906114080667096136653848672304880967390652193054362719773478194101407530247317583457233180276246721592884353064857542779745780909819003544369050969772592369548618787578143079127461669636233753690937888989612817964949731943872154847697261402653002943107536948415320963384078878329018797832274370254054063367967085492803663661392186407504274971865594431650955841704883928744147935939717646677319763753736882324880548032597582110406681826800597574523358894580381241939489154331200674726137054118193675316298007136607422401042563287522515373634957665567635745367894283064629120021995670643542219437906052260507438423175219185918727575386548494593094448008033710386691156621272073372775082870303435971876242575922826698612734498133962579766985420844953578362339623301755296506577867614952804224834171288046686863230167070227830467754401595635373432905302051285807512963173863163105342484307464604910878897355542003243302085584398500720648243970472317022144451173980129039112112559308535734449987705152864473844009885934889049313449391245387374147330693639230192707375915915664178728925202592467099065016343483195465534268323526586262538267572615558631558818424028705163336068283897567869324448612915773885389798997987281773458337951905400133222519137662066011653594397244397161412012615274767711589002023547006178973642885205093744688080724972064195217451508984391446671901623992810501924562094805331622074725149369119328874804727688493191324919511974530307340468289707052650938401897646827112225954198943359221617741723769255391327677767189198059784864846463286547850487779224912836328986121605231764747258731101951282018033664784649534324717568627964157082452357530861856230090766214675651972686862362181710830083076034194273901450321628235843433313619178541036812795081391988214071939688886689337544885048535971292435170054811923032884790905733184025169168178730191955774201709314250373253007304858153427319619142865861606877198899342928598370033591919500532520978685343648902408350226453971650111985912888714080757885578829864394286651530307096770567937451449028693691125845261206933883104846789453299601892950637030022094347080825455230768841835711972899981963008753867928517515638331876742383909320628683821174608069095463250271238649095834960791301684987126201546548580627724468395865698504591040358879377640704053493497465406431149469384862092956745647743107792832154007965349446489367849273158761508200488573272791563815126742647690389363177844245012472715726003685970462097468838035569243812361968646178464592717934319814003874737531196691311141804743453020890977509928349972557680951503083438228095371233360420790288773791896668614133329803197642148004045491449142778950701766793135665117463729408898040523774886389853357452953832125575561356378964269310356880947426706679475537632548234609608508001972513904552208139170077332449731929430251511446746686224045468647477335179622412610968669685549347144529459484847420400364456144697959963506520109006456139649149838028016248165634079511287152151805764947930404737204084796540253641351060492455055736947946480059766321065215301335901939348309477922078145105112207159066118904608939076865789141900512365724445117159413708849678878493726982750306264079976074795183329936233693359565351914918639927593822976345978580133587405396503679638107369535239957463297447561287934901180491649102600290660341383091607297551262762563411201212164559021047005066080228111580967529689584465807561796521740721497174683071737426285899915916185190848133544690224552914131774681857511643956840405303473026566984700946227564530103024796172931382315361939624007971522550505303133072401977094803726328408496843111026322377339805069421880954294780917419047989547557157437214523705853582932234579724752736408189687959929377027468550130944109386342701167141386830095110593658757005016148153530792316886185637864453513758776456516680257219860307308859417010255548119048629676264157997638916090224442434456539308817835118252827821927166021556067187766610530366658492402241282629070886713906870602592970347921104884209893280268746588001957590240486025444123578869073347016310359993615013089716705210313003563213977073617451463707738200016926371463841999389153160948489544722628193724039762462883503527705456597974744335663788002044190249833771320782187511015199962499577043467101705392306353437907932335566081412582632351943849631663452780483946340726161706061874293307335343607792249746096959349931214851874132158320831688596996025950919399927969253163491357343375782073955497956372243558977566255448708142552530462345288848560773266838892685047646766059033158827756405468570164521902432916147846501948260294153182474692881850284709527160790111599492431472539709492439815302579594418348244511318151048899425538246424963855565420701465806660789551896424410572727292697801607957032546864964818130589187158808236607695188425436366089003541352903826392481266223696024429988809237605397605606125667516068494922464111099663207659763872932220011254751177984974232165872721665550980879715953519019261408929366270270755883872771802269122395750691363282975377612797539420790721953427308096599589699893454758838519940800514491727671494703702853240519441376585861453682600084732521996655280945545109050007165045089565523025241829345428869368917286195401307257860461895779109202400921981227937900171736364026695548158741168262309413626388708088847201485191282126809553930831354614633105170708585799203867856055895869243266648457381310366940602095458916946619330960886550891222264832560011726920871228680779756132540832321222730180536267665345891502754114044324986904869355685598417702511282305967905017817573267721356019354211287980756680922043335010598344141760231186308937603613941704464067404373866750474791257623247188654284323804686873484899172245631895690332599517517188216197455967061872286388922852751152333254376201896565062156347035537346062261362832859344225666383248731950713126990151398406483810479846768225628841132373271812283828919033636750071801414975743815935963173424071080025187499898122310947431764773832475420502372931460647542269802028551645227382824869033704017941824170730100245679367245862235731408507012135114985725817538575395173390796960212514800635329567455080365769599252837900567376249711024203618802664915212071476945604295708067279875474353526256198509677917486130438511194291000028655240186603784613575357758454773005098628264072994424127877436307915018046928603881382474405076556215075707699490521627031284353298038359735263294005286404412226837132757378293635275198283704683164728636025754877917474926307027372088331706908658601731362952549347634762487047532760672347367718727516478266005075713977219661644950210515314732273716492307325762610761773036601952344548483774808535983597226689336368519172271941463484922694125761142771415480372140134249472312704012022178385488734758403604859212902309761721757050298739293255954248906830915763193486947383533724986626488024136061930682019697298567244864031016639569575386359716730757535674783042606376170335104461271195390100015230278129948556949431358256805916999061522892737453111679535002968848633553982303897030760568595536934661570341924754398342202203139300981582199975997157586667804916637568546154642885690783386714458207328239041246624553806082277532590920969379885614476188130220986709192393839173486886193269891240772833053227910940490314961662217169992022537307878679744973878485359648849690117044970259452533620845181235403804909353745399186637112317323611265918759892609524179255337656985024243885123779340614288885994406505293220894742490117698166285409508037063166411145949153408958433401232335626013796210761367558564130448896954425865046451940942561199428801722471554225919682985991178238534326850102756923027236182243345623214810884080128835163109812368303369727310915237812563676384129543879938537929556116556857896852649749425946241775794277990596300249667266683853895352873519739549596010182605744185136254776699539736851673363188133151479887055774647932226505239668489458034067537452702182162831831295900411038161816902456103448564442247222819667413962774072446953074618495811650724787932994833269499742655323686040389934117648205200587922661329777943118433788681829124116857435873240833014669334663435168667238439541188941683470632470772634366109444130688747582354269695938021567080865180139942972158130627569824679540785080636029175122901190720621555614777555535352449907392462347185984293166252009247266984139335931244819014011657525969694379259495829040597708605624369198901573978030946337066910547209748581155850724439439984850882921210866989861218737245534095318391572989132915451089630733933085998985340665520585269934083924782424477709637448415202785415898445544818744361917589616471707978513876148285485067485323644409097390860410633460521275289844659663601988827012666778424871705095082058430154088383110222879979376861853150358073813174362389326677127155989315987373457672826685391017925430500960792970904867391657719056938359345565958315008620992393433199377711964601430736777481284930272384258192221237835355832969991999725311553995586792104669718447513192632032509783100000526116089273867934791710160629229579036793281464444119108245784687636712235460894147445094303187460769884784064014647010107661361684071183148374633829985199910370773416507487129057968887479556639858083115040333536138588011732101964242428491997529046219119280788055068537106300446858859158678854808134354825465057257318779465386616226245232699552510245071466912171831701774757027992494007782734015151809025164598442345854683277484554235586845568169073852631947003876468495814258506608047986765385293831814450069296422332494398470031495834948236314746603270499735480408399830523494969911965676801722247096163274172236792253120668459198518908948797353066186332812462620234813187716251374659944581514986907273899730856420995027111624409682668509960303907752407600054745353743570129349047605570105248445729213256894895855020048356429087326584013297844112746876472083165197550138700335325163983920380876831742886586655765009922694669184526857956590885669389783872953861361214608553689333905641638319151243126444985875042007303736893644360543636094953865833889429902179213989142341383562163861388840370480029412646134306575160120176828654572201078783670897693379158622359920143015278670286278307540791604657698697124952480608828625509496702001359467474467581403515903251695256442792220397416198753427763349854177801377924922728385067236392434918153160051074660922698031602116193083414101011858557342900828776065900453186982586778175306434572566436874040370358299055048930005540814506931877882268491856645805290099824905980260692366061898115520643532326418045299537331634607880491879566114579342333228093938706111470631445025751389980175731627402156356586691463042582651708655369106320181743546224820948478461373807760847707676464809702275008301359804377555779757029670665903904517136086294260546210774166068080931628251260445614363418947282124079307992488254786373278015037228748314068959033279568337498988740462015960440943880305428559012558634641557729301419538897443050057775404990440009149004799569242091932411306384145080220647771009512845522037610814430955348780023106606353134355961304469650986952336640002074351168942644462056364429685546755922494855653049549872321788357982917256700669122628119170884986803227986259119294700548695063629512346948232702655015107498964926149797601476733228210988676511599404534082601471038730985051710755412642047261759397314461052334360587369590625381631675816828844923375793401350364659946653806815890938527507895073143982747671220439710095624830153656754348457657437499239950452732963961267953433638759089060813325353291008589581514400522644419043996862541270230256447982340823429638582334922081004229139637271998519794915139602264993231443069767948565437683051196126566934068593478966342128936084521283348867148537560633210748838228255678947189500132585443517041629046810654973411307199377380518923848725186305668954531136755001065213686387629224842185628825167611788414049905681494774001751744101162009187410037256919135854941829466889911956734315616027965787051101591602429308164392783097181927179842065744732033031979457603536131276721571788752725730122960732735651797245667754764297240651930397440365196351870623007422963062197624280412304835921666800723034082533478700424729984025239329680581637268428488273181849335060261093535722007802626578479156781151220813277442917934476729529519265920514551582508158799368055259468392246396415899795746550627981862930950079529732194716676595192223969476733827823534279456550318077399695023503132757648035349955485234787506361658131253496011482312386425759412094425554248490808612546224093254082971637497646161337408473966294351256685484874391481058259645501069092932020609450200503466535582484617542179728423227032512892644002467734181368089996371169497991910875606185431242262889180606551535245273908287692522911990518352916292475632498578121752561357161051738679089880334222798745945381218705327737168569551965860753505708920836478570266641497978800930145835922936004392717057982725234688472248665155771812886474592901284551990815932549547764363391494957864238629423533342985057135553018351173390267740840122847272296598208574436333754624355048375161371108754258588458343764937364730548064993640318978540794661272792252039221784452808540349652138757762906102304524155321210021355369801163745807833698737575950209338611407236923966027063964704300468735871343407554007146706986530434196479230017798314185389110667490905026036022515280323209248536559176839094663380330348161128670980807448584273941326997318475923313669693162848372375654821692634252481809089072860384527517419072865699337043953932818896705014014102221574302467708314785490118040278834880110245119647153764289741769386553129427867930937099541411785746792761858968832150259919105123979510070962740303861613127800340918767802134935196451796452081576014763540103686176751343433588906515904992463614446566955218567412272538161004844092329629017658620238351573633942946180165645798066010531964527013697799919935683771212865934737865205475286900814398266877879846722856558497619212819518355763674132041768175108918969384136815386590247486239961772809320002115532741752775964225896300821557691627025989166907640862017271799308509514333338251902116456007286108313367217006955607754399434001871672735715274591637680276000862767649165414507585284891106158440833979732070911047235494568157014243714313132421907931137694336796520761983581789552061548404513739729127186253960577866618207622912451575955723835934684269802082360287181495180028433507182095377661397827742857713339711654404327522099673021597379298884304742309322725848755698024770426796748883704931267634732758642443918743636357273053277303430196893345016211806545729820705203192179752366044796757980071999113781402230893102009298101159810129947718449639299031291311421394455148098296218908558679532166981073953170764192434037522456215079002543012624360782653235428106339639690150422334826994671905563137591195563189480241195254656915596128848485572222532594905652882769799578289123500682547325037712579139290492458051599191541600705452578203884587992126491562390954040108663356432459650311123441074143489334978353266492015252618022888305375971914159447632833838916471694828799846077506884188635102377888069229424172592283731294248558953414675109346471315005135113833614916200208527247164085080525990514759341979955741250593859392377251829735767790026087154944563526289101380087638502788103425610940854713002542645706809380250453253378694194091401316965640752875814748535196671971518881581451353030522990927753628217984133597291563457812652477112674750330579477944052877951912565778610698556381692333568220667903778837628192997868962867835399743765486590477715333939676397301236893555334534778325608643319129591183311520370591843316808463029996483629187005293595015951299868406171827351631985894306042229464739543068922332714249390303748203013768558310300821526477302047579677966755910902671327629295282781662703651272125612732052942946167225933544831831086095076305080279602692246774122613924868966772178973361174360342527567075403160864558086250736880376809702572773324213671195088609241576232249056084279198583964925313233588370069337228935625110110815042269080899150130062579027029863082916910194862368887455527449164938069122389440169005278255692063560538187061622163057419485004668934074175852808851454350504881064253559136601760951359754119917143744096968512094017018250699494771598442341980674703963021878248789310519560814618757633424620052120642512436777475718872759769493750677227297453857061795569326645322373408818213478519822554185051140234207945593085374019685979580519037155913435449041267529498451721996175776447900831108235503479353862319333239486590892831987767173990885733819752406944310645156866101878743720661657350568209229290081491541255284926779959200850080259765840251270032697168685498097343267848150221060871266904869989328800984529690131079629531062169280901505885292814163601886226478441286224174275481058869423211156537161296691226251544945119972008443880481821560181775027770868850750581463236222354891686875605179038418248100526795205020993550443067152435000855137418781381162699365653089656731186726244244470242371774271171446457852186496727357152342091992639666800913464542694815956781068077980650948214166266157449711801253145006379234830909756147421984868137145541853896662261075360253838035452618874769808159787579056820491452507262207710206010897352528904788261292491559053074549499470069835784139591232987279576713387820893050005761283932391756416132258016372061750718220225228903168466008987861372472111062441399596578157801996775373110477509153538119401280006009616527523081023280342913252637989554203673492485912785466161394569503393238516887637051976083731851900843144924095199374079570488225878890355976898313777236165736570595527842269699456056575071505522962237175989594769523890548586482353299721130568915642599943693229149040289559816672225487612358025036503517516885640051585832379381938541207097455169153171970136592454183107015687109569894251324180053408510455221561622293348897018180432214090860168773679313901459244666246834388911936025218670967182646196731884993525833820348671618738897645294397599223144465380217772475695507711373819159642217212284850349208720330851927635195529576335407871842265225358549205099269882156353098749320380218012603646121809880383233726947979207433044041833592115133746778320744022552876786543493143045590848681778633842747761739516595474087387848106200930666262894718324784551714913321994326379060565589317520716856086184417466095602719829584466293746075368006128643300309186745487564989047917538513392185768282441789592721716646637954390180668210809285700772517391180849738794580789282207529560904205038443599453331168571073162301911443429067922562498036127125095496913788443574556278043815261152167261488075877710225845024930167485384192978517297447469924613121610451045985356503295246436547590481149271436942244770092153987356520732161420148971870835062980190669820088310321006167159445306524209123996154419929076562438394481849119397997500123008701283191763024471250010680364593972120835253648018256309675637455165883451358729547039448899208624328430027313592226038955612307635877122884487892493373526281377459904379613191756070912040277469402550272090591428275864304090976729559973787387784703339297015981341174914947530897372028792113242255418130739731146109767007661136361635335768953034058952803271322106779379689317627473358308382077571955656006786186271752609074973080951272773509297753819278129084987574584912634036339458715334668820258635717688146194456785923559138365940761892218359475095105993456966034744530795072399422932148724083603166752835303439846981208318090461397245771734556923444046728284491643405969989257168480391270649392736449762439983626636465029355523153827554302738871749204134046738678953699179150946523442539239256956324090360310989515705629946147890379544824313527808983648748167109494464039711067275473672020767854003160550835654099460457462346021560959817542962001852122182400914888224451514279286256076082332373559347356539548103211693029046489549497190458683566743556946006459484847074098477580276383921811770592330653090394515062298927411613236365704209259436351321945163265921080658515129566508175292906079028974400518575853359721012456369394405366385910223598148892937510330683157092061748904460759536738247357190009564055816340161404470573471517744182502168630131648696735801623162201640122135720293339371723011546818220085331211899608886161207891177511570186966390029408162653365003654591206574649200557406896386670584398133555297559418902045333619091179029274516017322447757990295379840276100016228064644367596187232587742446065959616543544756498789403390234097915557856039157114895622127504066508172325802276230283768973832862781664747878636338210691202436777420530949066544137726631012131357614508942833979256305758725990005065031724061110579863009535586488629131869323723555320738151181025338584505839828479293646498275776920981889827836143451582594380457859362944944570246792303989084772663734014403585365554614475148023231092585810275329879161276351829199070689822197427943898689411419632689075324336911305018277177901417761846719862277117547301790314746766293436210788961589199426696711450913291506410862998886900757638158562835784563315002643792347477018392663327977460981797008193848936397070040250646128035393908208042800881521889072827609467137227273257782362641991165682564239860553906429809955451366878698078058967357799170441591140437206600184950433550770505420677405385560248133901025942442408055345382525474483356797831302571031310667386887765624173205451039784187558506425769312612649015542346838158068083003381191596935324190794337539135172205651347955155842404677735647004115320197972314828507182708792066942735049500539199905060077371985172942840451376293621754644224932271678837176810818097139017186632058226655676868606445548742883234611847091307278123276554667705409958596330641435945935354249224263979919173580882580561206276243457444943779046592228033795231084223679136088659433421457160152403050691595317774326071022786848314133830100277961001283331524558421422682693933224567075197713220329147902444809067800000059353077402546107269425281720977529646801920532764391738684831121293052403504875644604164979920526191034791581023379323214432194491056369566921540901423759768527404319922497630306137930994070921668369721248964636482348455040602483797861413948408099887427070365163563563866545958711400471144194327515780124678460161011544923748787241873592773321059202284552286788386870350117956827008700321863976495516401037176078001007782890292598949210718261474256095623614799979638089884788619810228417784827377404726741463769185409862460767516708409131676538013773491106781418775096113626935652079106030401623196042779080394323092364342601585683478503965662047424744837736401101735930537494991978351281999324556082574868619227034249307332162026986162266079824551845373406509292438512539592468382753372678430476598036831240327327740549626809474925510409088922992189483997006672968134885869752584068345902698522361156751193704034136852915727728881840498750575806471740039032809916391200738014514399706893089852939840083299685514778553464466206300421985680877667434141116288413573182568259285410932894856332975523799109792544548895209784613193408739976040016399838477109569063014757616359729446191028623989148300094446352503619770126021867311493193395639403891511527245099327259605687298406706734565007343653991583224731756417470244796859785000375960948322010029352288462688422763300059580798124110648375855033337835732488828735026730664114453211558710338650809975564180475041366470584657484744029901814687193905343792301106710461581653492681894942139339343215957148603077202028145724367760425428926752671699612378116264012727032987808113430647414535052121533383999417510243625707002942190345622315553721526984089524510422858484683924732405561479074850519095353936654903289393394089644020752312471436378064714823027052738633921756721851437260452920176175149901891004613345174505777746704455432166908280954074774493597520773676732737072518408944339536086045982655698829434149166406546006623512171242323623404359158685392563396203139321684836555683185501834897105005090109394368082302150401237301614958817214227361010105132832189809826919950704756240516560079123399752923799196908792433712367262302478725459872627979098457086810749807449282802185032592578931181454660829030609799402016679004886245687309644121139907550524050267711903450640723017184381900336957188576003778102721495732318598652518317991955565531851505019263157124608005902283523212110711875612374327157410121306013939661608205929515323838407692323876200827103196863616041160537650709666880333995402131965984845012367358456335553248264729662178558768861697845076660831254141316291030189380797769237542860696605381196295274738070275012560100996298663373421760347275236891602328589639170503984918257711824942065446837928601063267922563597927898396324540112272081956662711407109659051572659631031109734164660975742658381757736060771031142710582161037211752706830789837548490147686087707856436863615871310180581332480538657781117740989422314644172994412736447594393881189085122651960673375653494177060103893247269011317654825290630879780313329361045885023283771424459599378157973718755733220582896727981210603735067540513693274533763530754083579073521654438576079326663442719865786757489607026559494759942148299332315583477694283670514020653486161376461422069329215220293099113067516076945895007243841567944182335696729959319042126975181759878004585472488364138788181451006015654026701247632538761091589440007152230819127214011303375498042393432380597719015717578993417828323354644805756693181489043781059798368024777209174370485697409738887916190831691249964622252172626782784845901023984689509917894019168437911163548241239218610754997673617958181134541257626100893545190478287597781421907777756926697768655645569997000971268043624993441904284873266119040853257311409318572737399826392433630742356207665192338316430887511113875585408233800671935235719242961369929896226716521489856137161457514887731500096867841108932309927606167613556907107735786966916624460426022640489734737736635100882237410913109431553816405819301503078099869874035037467582530969750469517008266721892417400746087238699420224560461687994242920873240526584442025490027984324594008174744277319423443311495724421673006581490808467651641117403146587487963928515799767619787299307042711947715705924291137909758177431697405513425941129935529368356827286848589914368948401255335920903491613268170829951887154499809640786718672757399502649140793585958212171832305464923353880602804610470783720070538298011620626037645393646997402994341464187765418290308535899410383085706998016262073210175633757638807855101518411077487909193030225165223726800807577862482761294713040862541185349119145706205052147786559396908746279629886259249242059464792795185983823174893396538563951274644073822019187838277000671780232435590913189194174580033214937426220193659543337421109009757397034066336117778631305888051516285311022731576413166455873319618484400156989136276818568642160046557690673244702586432961420162223302287328000871791321140556759892849897145895490168770332425812227990599171304234620210831451497108471752968124446306580332629003089160043722126285277322940504288489226256768657513262355787306579990040122020329185252062948259784016028003476828974918609278118698654372937829769862979594547984219305106261023845083609064493427330697383126955765660729896652055941907176927179834610932043080119922086211570683084661190581030888555091283613286682938324870130025678985605172757038645708591043456103177386158409431115128469079038603412910078589628537150494773023115710540943385255411683014011721384062231951753246015816584427399526821879311629239398562833724796060933075371321065744420313439572282266675819740550586960594351939216220520448462036809937030503893634663144105016302116153172291216526680019393072381538775512471173051776608635026701701696575723299476626661391919682532316267290284530605186059925337381859557747256162287821653049200134412438370809078578804802857806746537852586610237560717838801611485386954215237944201456115179905230941620744508315344316881329881937509996640861114592024787357444979232222600984095027437230122640305905465111187773565949905365681853700596610570110296953840692164169822717128362031673205036698669348075971383335176218756657279583832201821829930083760040082872810244616433141108292569654843284241259749074311914991630002291989469709142002386621473654005908980354308401528585652765154428024569338404035926348354257001386786554282622212455547671940433637118863984460069616637730452292371092491002810214991377658772232107027666903318562508720811342968680384144419259086382670965984134914828350083097206719712951800042490083512142813435647103779310272340508902604889627295987913548515697954321962139557956904325772888562203996994530967984278099215379074774778924113331141572767382683429888822003179448197217260759283429318141499047042394482990918067404537861651250007938297141779588967926133908295611778000908210869435568303132442777630734521758707081740865490682587471315133722360105067410185232827835061493057077806564836791960772785709146461348752120127120036967522847181526400606154010870573854600019938176666557409035206799328419788552441101745523765772359594575679937766727948935198129227098905163412556976657657422159431105613604184687191269068726389891100297030187193516163680435406989560927067818256075749119787564868197327060301922795896783803650573570335617499024019732100343568686647795788465180228740970809769586734756300359109774194554435959941253951405510843577463439203111280741417429107604575040382757198688197149154050462492316577261318190200454693901719902359313407601693675200861090415901629025635253670150676225794691211356344673987239595400260968804036185052235639585396242851561903795877856434590960329956528851704753947704200335092982387122419854553283093765195356993081601658666091351163232909336079292772892185792277035631845248109440640277944764796856106274506065997265671666186018876985583837936609833546215506312624646405610481007389951819015429758398125401250206625501971903063680460088594802264771392062207619583411822470938731478944304837558929486090625949028893308417180687744310291662795136322133443467411356584222916800159580092758004625789577923474289999199266052626800379732552874038974285683047159330768167802578244162180701109648743613911097644455622423142878667808306924874187308170462618951293600299250250347769115254220252192446282807863914687504308401682147206733984602416858455445360169916065181381815361906181262184567601347635850278527386970630791269187826631059972745527672457578867895533770299738020342849162307043995889032131225400555611324095386972176359887475871383196485221693115822470547257351817376515774183547834180621275598905789173111141683829857660746017014911749864824625550812059990173540332748068248117116513417835092721025403330450848248764231202404423822065008802860635484093327073999563459472251860701216703773529867892300067381578988466029512436687988641353760296372760248305489017756091385204820158698103562334505983158448452267859605334425367794563748880860302132887034538480531480089068219321718131327870704173763019929565045922572123449107183398033418901550651362335965769287662258365540500192138428169275178912268364097425224151783426424931292423231746111733270324548559827529734787001987658325788191687623795258469619360152442145013875532880187381299496038972340681573316904898366854137304447190181293461579644330575494408154050405356692835249634486792159326997690004709727769007074614344728263639060688678446008530976743782880331860686432411546070067034696606339241931306522969814811788529012140091473935329863053877745382179312210611188263377556888992275036616348978805700241571094919981865980046557209394552691412782560140564158666511212682232729447324651853591878084701297465980671362040405667124885991449428541392209107784486802521133303951920222754779146519031087996617981123478307620279951699399920290671493353583334261917308128507906911430582967693321559489084874305312981917608143484055767736681731036145645363886992949906081220061512580945703252915632023137163652409236985428375557363397490974801937977526576561446582450599493766012414141811383924927302327525337174882712260451533928511539209669413737948872863187962090360315407353986633281198015617084196799931793086304831584970275417369575999706509705363625007802935162327312113837934902640611087370420260786559817270490681724315386483148010002746652037325431655415923556829736053076392775558054761460840689697546991711990641194723448228416447709818538910719210184241560371141244402713229463326988251260863122578483649129519559059590806800309999825057585839766463277321510458155974397509075927494221153473499376986142597305360370652839298821270805996281599106814471132088165077162851277559117466784858076606186222102780007769271122010515960059028377911003323854437985807175197163329145556351903588662444464874044406413637539150961819815402624880723906375955861743395232900085453253198878565236154566069049945188006208988204791633760757956455558678650252152038018223928438062390679371667782956208056118142525343509354152462762877764369686004900685556617148378480612554267764929528321666158557591924097133011617083662658415119091977275043372721994091935167538906403340737189245753952427432713720852051234850088199327581123799713054772224981644719710879483264063461241410431303415204413316364395542668227245909487726103673151130505701242547624088173418100500465085954671076044636323843807991973976170576840217490071696023272453460504432540176947574502327978603896433428531943342849369516128564234097675314810605411553491056791140261742382212539053149937385082792141559688324667711741895609910350071206875420344033770107765656662498248032121616342146962380218485450179000974597927399466534666624973948982174539625325947074415805511348003829887690273428521394601437187919930912559663167673636854065265343323514916988840233241845636806285750279183169017239982695589050722295130507945834795225981138210565151016380191803130928159596831106794794328678714213322313485527951160286618866694648066094906712260505839256576763157278869217060629846024071013338574141681872847607472200891500394117928580242326750468951412309609753725889150551276274548802983872489100110504970963890332705606234454225173858312699653083846801418099005962777767253554489417048900837355261725383516320190087393874403798191546180235658912921821528443970952591320153278180846898197002886614805504896225277669363201487317125671024246102260695614227728653619649930591010620435324547008677221752533032369982981760443104831892033595668892993589067468141391145581281666024822295928729579728889013600614177021145642156827541631213715957508548581741896509183359401507506605571472280792584613425854848178902182557846505052597504773515715125682562333333876530129701357950802542426140403342972562487064667585396472868818469302058760372817977553343541406725493069418406428439512871080546035811361855688048598582532637594588196557118955131286361130557043756696959993077134744424666043488994773746022372808000063315703363109813965415378905417505174077114816246164283809918423832625610155959587048977877058328992300267161230213682827122935238583028571462360340652251482710113319087983188581324815359122562613716592548205594939248852738241221302944388542108032146200240299177021353735783032224780169228535636987631260528614067898869597893580144433051240784369382018005947956538451557214236149180780286800008995377906146357338086446400974789518093384684324314203481538218449464403035221824773935852880729103136182740070326202708741947401277120480580803901418589272955585958646656915891987093350378726288874261377934012261921013696737576768331044629800707896366035982990916030283218913025832792623719234496522679068744323291924048781023856232098887631324522824546829994618208841106743292073762181774087474391185602898225505698715380111506750928134249480902651075959669062693424302589658137226757770122517328105113009255237929755839961329175456395239108284532928853343552312484365638082041496914677712679356930911369147834305488226340794275573098855661373948651451222473750151042963484366192744767228837155249451348041139247214841385558669666835311011620974101173106828344422538102842897485318992349436329575767093666717237735206054779536804737124141474663539087746071075229362950005279287394811402509656218550604555758925954929733755341266551514137676699692569929566345777470018690358848161378818474781276053356700440359463974072109120417781477958268719101896064229637269991856697003569293095148599953316762242340612731781226407657602408302102693767347471905417960811983772597379901211574500564545115991023623667635485253189545549040039010991259459340704594282116345823423870743348562069847093320402163189373778750985005273220804166070484533215459228224745522173933381066024750679806822324374399446525870525366697286694923481638984881629038199722577361010603486096123334908819671672073134045771559934705368728479179685571815576889612434633015816429155940290236991707556853503708164874705534255665397541266797581164539286416184919743916494790339289622255036912085978523000589767224005375119873759516805501901704042491873901785333924251183064741265198075696150760671637708912430657339564302675360126073097269855432143571166099689360099696450799715436984853412303440576783936566359016225658956276442710648756337940499196400563387833055466551515087871353726151846796879117408015286459283562398774379000493924838483550896226763838653581709768643198641629827754947537384003221582427597595891480580406810476163764710659662531369906482226348790507302795984048285788010151098868215106135957146998099740838645300748804442781420539227426443977474753604942034000132822444979100274819035850646692551696984839193618992640207065935331466138513408305057200445524048181201860593082216446630425143238168442900512914142905635219245164855159691330442928977677618538100080912500516181783698922061074708019218653547957506008177511567671224465386256922376727552187558809619752663111584840123555268560296903406813663932231271221879038851792448319370453921647827977013036729400118030543379254585167660430206976517575532959165194650282052210368703105982442741583778435468120698094333622818592268149811936971881387136360696184848208758358758487097436445821829955908385507611906955302201816515407498435740284470538706366446683880430093563832651043995994608686493391937062032585704462917614123515571351290053089239827809233580533199005530940296677522640141721814331921499326081577833198460200427138959900283596090945941669772624471209957145553587200703464690974696050956296576279372913721189397022329764061738564929620187352471655535187357093248119882928574713576049427352450182476750655213183197777991783064598066110278651652269942507180872279059483504112094526981780574885041061569612849880839686765795096234537087975056641873510653669393075032430923704556711110277230924018404103113178240201004297160770848642825759912837696017859515216713316632946316963878378581232818261110921658712778197583292705985720029179204925129052190698533834872684796033269476784829470728489035208773171251059069661629755848450866204329908101703416211692735875919561738453430480919651857712144429907872443000921868470494497128569746259255978464983377714744444890055717142936176960555165671362999543873277204687311433568101681290169397921381987040458969411259119901078908392987436983116732936217357433439937521742958141219670483475334403982539558076967161765205515141788445958919437904936115623853184085820670993605989821222078394309167169652253808110139111165819406796330765932528680567078036107752722676282749843158486479359413603958672726147093225897253311823142607233063168342206631154378764645545535207785977234435458787095456996384507969964800041388613423704204747306399441282398191267372290868120157501724588348819345161014603516083287198707143504894343996217059877574516493853989463448136613217162627223881657254622247432747660329077353233106471493002840825927894701365137560514538833216732837798255948774454066028921739600530718076332483408584676766367220808065752154178506239311835420708764652851642283410061743206008466718881116345409010657102353823784980277547397042281393818374312714418728587217345500417020944298787733967256557640563049073143711124320666237307523779252808566656579409586205171356489911086277383217607386723219735860833462887322075214188167549360443149861988417994279423127457281946422998143622870290792715654283234583853414591096748966828217291779242911950626438369971188679266496687885025473376303438578688735769513645446239393115396129952728801491682467003782229258180229746602235809822081786171909452579569530176198847155951725496126326003650687625994703473505345420406659044876403300185539331833339109550817310353189716800510873784063310195646169583689200652225562874737878753908761687347832974381390012052814030808153128214526337000976233299859912365796353550586365076946586392185509001118711275502574132750467022016753675041987447867423415442750610404197452327650789940878836068397237721094284192242944438369191097080736012640718025778152449126085910157793045771788115630922794844255703340484793915512601285966809450997715179695331312267956911604117084098585477380498197089536507279400887564475688766865594356388318089000928884602571338386111685190591754725386243022525030058840796246454021007572504921273763612836800510532330420451350434196713231334067263086991825411488372053408922619373611224672442227974118082217534738292362568636545002046107450976957800595687592534147632117493140705700778204879795720039127702977448789311793495852273228805208719134625027481513625958335188619877662228800182275465642650328848192982095560937405167937023743605659564438169761955339717102832573376587162581734411716880364931511581136731635837328565081537745486909807837651061143093035945421177112546802547056002016381512370413804013082106102001331181898422606975038686698883997179651313506744950746303600243394524832539392997485431567492956672737297093063610200754239975568818467170585151810801543866147863771496331669351214207759900403001734298877099854336106700995524275572536852690091435172665233180854295012384982589234104328669019288984683243496294720798708722114154730265572669335975926232969318533965350232629835561264906726847839471599011031733507525256321750296900214745699220737094766761453353672163092724671718588885849457479093942280818852700260250807582143972652726605692574592801867459137157581189662085631927027161393297591626407457587305140713640777772729529737380655816259164831395867000177461249046021130870494110947040032043959134179675285554718300174947946923491072686525720698839924706377690340159077731704597559413627416216476919771181690295534697483539721731680367426129008472581861193429377228140862158271059105230096789141064516806541923748943009145120361227199627371574584273249712341865613481243125918653309654443331844411551098438226996724861557842955619606292076248510093296433958166689114280820970362940670267862098931818461824636398064246016378967413001175772900241177299420287070752071047771022389116922143366888394004780615491106347171665445003744242761882718667279753342638223567095782357319666101111605224118461825651052745093280413211651639186390491315421898193529452862230116613580760023359209455608243769970201493130723453414059062483116519017084686392443616014588894973628927071702730137027822663009002935205982899950431693085073074052224279396816314816798064821688958675395023035216812825160427350748305167570196591071610111905208261646332134192191939342049323799900173361441760636952115384172745921694304188540115581379955518993755270885038231021529727461310069429360758960817467456214624757394352112045385584629922320252023939351065747081110117520021148402700963119257612059661468989011960495741481181041022937965256919581228290430808830856248080008513652842001276990571651952193337498962658530266198180165221100509779213981568733394467082168499102360919207724435791820008621876103555867345871594716141949435819199029567493134046411788915955002252985223839960341181789351225597311140095832381930105471464537766747276004610836829460829709743199990429374816614296971569948601364462167127342688501380634128022462787415480438895947989729707617022907668636355296327954416193783773702957008366762583351495179894359409705522924844175248915913514563890922148863074289533691704922671520418834644747593704086259090736131385289676920271773956199619733279927109579398645090354707911056429414215719528229022045820514755878812902356412467111021669496500762092303865447556821994851094785821949744307709745856615883773353198408302326718520028452089425637180046417429611431946222320772434470377649643943515600091711947548595788296677778023768951635479687690734911355937880961654353532868628253513132515914728159582170506291579862690990265374173501657656840150553628680620299742222753879377281750305526172001655827288165068654796377186795472761569094055903668786239415712131742843088158107637570937728287335127544537460797110119569666416125343224279395112161556161971626276649144710890200526663099719493298911388938192198202694091453900006063252676258538972983514542837515792904803825130831244178954958167627750898040324267570699709486440916973004822531240356765710272025802606942202229986172547305756990423699177055178124255626435474928808439167043542855393369859867904255395785017827796361911071888838603757807834274718686928290757061915375849237778611331836299423070898417719352816491845056413829383352260876828861981385804115457952585612404317105946910758022482655666342959479198705728497899179855848063438478552926400943113144992878639902661967280336716285056125219190536569925193991521586522684538135505054493404748191925265714502368586706550966501877504970874581478616293856991153136542668695828361812319745411195261594008596961627348507566801644952861668273603882542236325076645480703388814456763409400571213586965593562460858000111512867115908874180080430947236646190681940693172634815415197135860640437759911773460930291146719568883740029829030561663286801083864399671661582170765806073691204074440371298355420362866602157844448331930762707443552040825348857090541504878542217807667864268418870201051264410275685611506144878255894372371410027219354752140620688178064149881090512385372354787856521728980500653479260220213595987608828130486931681322414064026865151321387199461616829082829350927947441214694926405037793309407512830329247700698968663552893079603438918473908337185799879434492538541093827636300528535545835973215607224448107690156373241723048421753381606068762197929228763802220126902665562833789754961734196831832431314091118840425524474831139257648856130244620119103173227564436416608529754844886840868089259606452108870601923713438929036676270183785036935637212361342194486632897172779204419330844283445741292036149310344932376071459021706905571326948111916109513135635432712431232501338512046306763328929982507236995542123156342758195085969122932286356355174398542330757340550621365694215017840445544236464705035786404360319169152970589921314881422538681791021302216872390803400987778105725788924615359693940965670605697346619979045012087279905843921197034301384144673045584808704243880816664501260184698309337016248572622175025709091081814338530779941899041664527905998788319262717355692629174783119427126816957008206242726410961036824286967248840281622322121777202584068887040910641661495362182966359539308087824551851620128520036422198399728436160306170859188613571950759304006896167629505988532853541163888413911722170289253324794886903052136760867074311331501631560419823179826082480727234156849189098879509779920050156184202695811755686687009709924745608415635199371136890226897033442465764270385444025650550993336343434303775908959236205588291918652065431927450177060357962948604344295697650468186075076427194821002552524208701673502605336137140848921738627022456875965741695193984817541139292411501776524497167310601237592443428644646385986462594071898500005576501866464151266174446480980891493084855586558174963448376831597462702759958501142098227133793996678452092878498308619955700522134239655092281279168737936187032172465842848240263385034921914632433994873469667363492894272499816213258081939667764115904188051489632679177617329943882191886905661760210362288528052266769440412909815065760954826634879346001616376730996172918633138061043894333817171317817436994654454774290409262388679416700391049928644515675386061085917914403209984495430771073494428983776595491647844271119645315492793814009323937655539171887396570656540577438502490264903569990109155827330983393554604222286278927454446640838387157704075481609985233903935857124660102985039289305796594255738920716240589619454744572533543333651509318069892621072327009577055003216359826968470181661186004936759815909328000726303969170219586336755364134152687609010997581397237442004676385942815098278707493626081372222085538861509182675044207433113357872718628951539882937327750428280606585060989663597660362944349307661048030234044377003704607612719056577026665026670582384593009594918885181265695284480810961585762899759218298101556303407947194599509347424469902811425567869088077451249220775207033529005964886333729642618273619675209640443791122949240658720950632852317291854798401601904214534243263316985040955342693312486842851456000832539516485985638848761688534180887477784492861064137265745727104846334638526012890308090606830347087176890462564321177736541671231522643010172048301560999650746202745195326548126704554741721199685961647657004463925992712180823462170171871684938702108974221258915090893797952224909025775299755836034458732247848568616602730621176240714410066676321593457883505236044797037975623043637040528355003016102823247337213211941047435873190563755772118640620814830631388338236046297886119929199824642699518930381219967202925582557533910260336574619738752407751152027933437126564432578691406478105385535101968539006409276471196818216654023384988162667389005340676046304872186772001061120464310177691672111191897006104598902196396262322058723378421201698976315714434156135679114089345056626225942849593710321117351415966461097337847925386249979100415645286258748147182056673443727034354855869808498312538535735866002381078690909231738080807541926356356542870201272904408921606379689040482153969978385987980732468935255736252572319400567903950636863720977515865981792254792747099606636456338803673665558276809193542796053509787143569724668474771697919779700540376714103099046015410654890801917801718045307544469897446342558155167683267446702324202416771086911115686984738437820138624986796678551488944400947366991875179386450307829854798050363908062254094958991485111675627468449145768214778674631378206453611163675418261959037470587263028246967396633790491981595505846734357675698153506165083754018472150153606461398525654477699568870230717772215667084362638157045873610295962284592817774708069564847742627092813788773845053293267132320769370710761660201030094228532840978519565654058030074514023579541006136702597862484822210502664093714478575088536384083519852724834229007767527569526574811675291499462342768116997129313611794438771323983648916508313802915241773628311080892492137752309399352098010161541756269776142461337626880914032996223553041114487703478372770320318733819227993037330343925850199615843906129950923843699631568528725479872452203734525605791670581585089607917024858667207162833279567853373088476016152666912786433150482370965297770757800369203987195674043926624846683020845244026691968075807220966232939354733793767917812058431073714508010873524524667048465449488494715514720873499666833868726830386915061493391383817746346346884752458714427093812830917124454269003633086056782143187805699213172203666413452838173159691721788336235318857721425924974854231474257436982994065386306843840465509520911336247042782250364163806384246831548234304601517594236542908426888245607260977820006034023214790569174893978957269195146975133607368524685362508275868434858083031093765044108619163462673134815920172912439786806390363373386528223875111519532745573893366104323759245968114042581526940296170846384134265600719664328991607045502481930687307949630224067631289748698782442075211054331477541334155276194680934535702304344656393202981103535130290992878207509501313166564317866556884629625705488824815639181417446147027149723796112018590596082564528118116785956916010238715441576364183501370632117282682638889602988322961843501940496541811139987418448252552126167598718918673993981248388148367817963153228966075314336353153201542856725808516897102561789652168997048690710004167354081702669684488797501950984031500122513292681132574550937695629121210888105938846664784082719969061934035400146300167489554979930733363281308495332932909943323280977847709742645217835701288526529875057007424214985363667100030848603268783432001001634226227384624996760257593514821749061754454313981646511853030398611184439032756133640408318279562162017381658790858155866768598677913369117271314835483946829623476294739200208066553678235760218098573739445438104212054839610449763563012743687789536712893567501052029437491458950435293186744928924461585804853498753018557585681565900135341358750831903462585250782801502200794443815622957398215060619582292637675546159812733216516449264234590632721664300324054302422235604137133898639887432550920451576554399860490839420150285578060382908410479649946878370002909906494469074780574857764323207921413040590530031643030423343611087403243588042162023185556210904041301161760459664805519637078726476950893548621855933403143035118960650045009040384151230076563112320476075934648206735388022836089380741406491861606103374831243675265131534487654783633334856668924448332831980821105980927259013777631486990890583558645941106163997294834201996431112761665035321862870433086920211947683248123114829529529237596772192222053031916237620594892321098145357807344800856471120838948104364677489485565226201406778618533942531648799243449188911596578352968614686535775797105792172533343711161594400479940054771476591388827218338876968218851531816165838757483155990957356751789430109334088810882624165413367737072775791001691706729839824177676284490404850550330756460450825676199626326378660102233494731936719756713697223848017918015822369326123196929917865033972879518521374412879560009039477571863837506849110331121959950348870154618037870599812800928189469261285642233785611217879456119643081153235202538716280058490176996838292378742027426792335881734674632517648142615571784802811651482088970302562139113124287948443047731773330749627799296823011847508909864869178579740887420986471205980422111188688691780628706952191010228436765685560896896014352974702981240369247773086304205346936303454758488292385874553829610744193016438674649621555541962050893567931800736415374284391581214555214242290036085336787751552191701996900541830969041292947941016264604485073534948447282538681108467142097207901341584952254949281744477245477395800169298267623279388552980905452002667206485069225052496532674367165436012416039322400992971048047370084917855419776004301699342800136298787032029353463472482670077819024421344656294670281309279491711553382150950084345578505670337771833624276963404567123260231539539657759869647317188676653247396384303117086776172104831348886446609576709438769921479667842334001255783533004041684406283065191652856249557157116471934750628914800914458842570762191771481833536991297283842236343491422831744368694488584131017327000754649625898351836181683786831354554012951691606510187429701146174123701677164976223614511444748926131684917896614873378676066052002333786732917173854478483786039130359078052934147880644957091171428641818012867108796472447074690517725741017117300488402366656128006058102569191607948724564376111045089452099402255666640910441743501840894270883981309357365519914614638334615832674190268979467812346392755435236085850416509880134297669117606022510067483918392031166794977074411737371835441622421560029359068599000174446856254954824337961976135938593194826081868932193551708509238748980185493769347673259016099861949933837837950084024538139784903445689451207240618254264044718284916657504388827739292531088837763408474059161167091262525791268857889396362258473928688967739300523755512485712570393332304406037944012044597276588363586862709246745973967595030382316282393510651609996744738176054453869471799893110366383389631568351231803279111711875665148945445727988936937062861326889131402920651310855406657943715825596264983382372421812129289620469457415263969604987289391782494606618049877752144497442473814222812653558175411800288586149385316457797833347476333923372526088654671100368294736261163291108533250389452206793829622846982831742904439537871740821692576561366503320502546568876535910222832055419701280830404914123236826651695516875734072334298179658841292616208050888145543081876575645907612866790262074903507238894494532538114348891285612752087037090929448258404547561655086356736952820071158292506023028533137262134991580099112651092725704449607808867142657831459766743838146090296439611212380846536938994201333232738856405248388473380443853818576103237646109113705507837691688119294313118778484445799544297724436538202813958191821410572744537295423593460001886859713127405593873316305159015023410886182923052368577448086423426688664001546995872685334859150195982344597671123836060276678616775614565323093679107770123689904302999558336864821977941764836003805535524339063741147391599586519684875503376121497394412289971967958143943003998057639670180673170359711812265676696229927904942765968377615674235236058435118446659357607557792979044805879299520725525836103392318824269009516202478984319443064528464574126729145216914690161462944965210094713407346678936351956460312872933928102723953607638474114813253511308502954724179875183755953001631114934939378234281466871565753067424298224549523117348771823501862605236606102744394962353836387170951915825195487268951693945561317780984822989358284198660088232491029045321878992457981409758142630556387212728184819091868411827118203738938120388755741625463623079309036316028335665231283772555854393998381136554598103339018911631218353402403755735224978637984533406351764744393525019857783064681496873398675513521111473200003472261288165104161863508782598965054540176628278883544577406208002361807810442190330504387166427610462140317047712401955811811199113158898746324436907628864398238340275362988071647116135929725025151136597199107458135272938889001160579150743322853601911242526540971954588363374931812218567297516871623603389402673376076644338417994273379288181041326946668319374211651899181458281298384473238813093963621747197418842978053008494310192647345523120755139858062618151359643487494240887583218104263687700608772822452155702636360573442925181860783484199194321049814297307763251891958319886195169321456023687944226905301365683614843579483748500235375364266211458838965271281677939081369106215753711057604538833370303710483309304015442207464245671234630214460952336720853387003947927551967827124470003563249578085943174525967640758289879471162264490094871497970040206029978862181149299157633684077958742134993645911557184344287941011925398260644710155991082050872955447910549782704414081682553128601228810269370065597385950856810101597888666510990280056379366481606518418726586540298062800012252444631789185956309308739518139842809585441949231773758051044057218407996859550822477849883572113672692541036225870474629958090108908691214617865797636077223922174832816134268754053889840562159707200376088046610996448404781170939818700084714312725441840121249245939711314873966922001512439688104813628996491842783237759374419965370775448170536756330398519072596434785527794529719032701763158792593704699317167923854482745330621905209730938575309536774739580022916930405658924736899314190272853212005810854583404673669431256418014596957220599519604018333102316299673977850834958452395540288832899077714276031234949524974973230144248973100212605941464719106617703231677689321437378740656640498479403683482756048395829521470960876592327223974173149336098918394945325848653816648796386985856687258420113612902871344575098422630960793581623462401247134629580242157311740088166699518910470964320508705838928301302387212172316840870021390506264775244055083888572916056929210944423150256657202058529468854420457282125907839729129780146864088435032721890747005208629665656987337745367715148000546766586312497883918491661669924557585477833237208105115112950652295761102406683592512117479514021785893394937331878478973605485487043269899702168781954590364184109501313236623440004435919608314148905730229087410155908965707950453865357846462210590478618057543589905045945186626629374432781807529885665839656669386669092256938930659553945415263088421948323705256357522075889166751369502463478326217835299221257949010939052907537354020394504238733804670969594862183998039912047711843490392018885131433980997925373073367445056806522175007952270741222928958914262762218212500681473458207414656484825149161091018822587318234682962989569930446538158293095308266345134806814433793337012140758208873722754826366441177857828857182087115748833343056258980004973179974972953645993359264016978914326536836644324409436754497495374372092126196943569363916530845856845720367291141229629333343039387222256301418151429287796693540495188199030439259972698784942025769194068659717572653389740043562315036572502888612104655462368702143096963173846733753294068640448011005786599686936132214091057402842360922602359653388228773700206067312084410506593443813083179767253930788632754249910617002086766642670246370260204289204800276710433794636117941905985930602528733227461265434217977610639118966409491134021441883252111929171867848608091533750317607928609661949484844655513659816013461353809873357092716254979273094722653504781518804843229598219315475137135793873102523978370282815631653013857282068603057119059877232120088550728215143907463404323941932742046257099909675818014255087510294410820930279196110919482356652304684073269051680298487714057719240557684508033040308255782019584577532886739203258771011110753980166609694657727136529619582478250598159729814502208976489466528517450021309209491303512863976124981106398309759898207686506402305176462339722072054031969665042610773932492661453798707695251180565493972930787834330957586974529289772616702788261366420208434098340366536911355883386983031285616549140159982816432187378330546274094005509263060831792593495227245221136108683965306021808492180106516098921758501673297145260305045856640604699735666865894837383606198774668028664829732721116819694082395929024558939903709092379225797834360140197476457170684670532251218957368643479987683218724457860974403845488632490766058391607740006316459606676981941118423519168270056207281718170952944093934574860047289405526500915865013029375590617214708189769821750746131582456375764147701586761814725951109846384240286349383753702082011990289397310468120892225182472389894532374105755493529598398517507480625455724679040278978491773578517525981112046737325776973275404583029483917471069431742764354322445774749978135019031911273054633176884279987632993626173724983947005389470147900091868345777842775516512435017627401871239775421856483051147244381931229516591973962954932278002115025757185981371883490535294450316336164507270700468072633058452035283661142753031621791234669063480998218645907186542062726349208727125332205715909908310763825753821851259803053543889897348522564759876644358067036469133229798137688739496576341468050587492524803672016039026376887458765285262845322794238857038153403727380132427319446854943142566507049865716366138223170568091156877564685212036456691632242399074133111509307574230989681927325844945836123152657585448381696825416401109197666495509958423387067879964126749445425621022080175408414691204524374466224375012673600255072052800679575616987933524117678150189664463010118231738071790850843342366400646834825619210666710347005978700466720604984095230170289877774734794428082405693205659631547081201352137894716414572880977531979524651159935908316860076000301923256536811241224156278382045527199938663387150073731248045339198223539574251698163945901999389369140361646369333559362764899271375637849317954968533110893006321648611567602807641457470432979016265211480989464755242705540398206523312002258650520594590711325529404784718839324364493453749192688582416981074733120111552402026874363965489689122282680416505152910637353697711304497085968960690125825147386737971069772416087730278554172217336907880758492532004599514684623877597345016775819096221845002781877921290591310673370601089090966582156577894743862252336781612058734208328269375906803833690410977759150835275672573662564954226763387998931285960371260401305310888391689911924787002331554182220818708686905920543249879070935037911578350309804608937523931200674109275404982088136248455279570298414665696085258252615193388363319266062723925100563727339636033067754264493358810810058057602570957600036536646266471838356796280575538582277812028366399295093855719763122385273909989833877022468508987496499251281540302126095917030017045205582920753109445541669035125622057428964053011101684454838029708095476636599098516103336241092417265959564567000149832689454074294234791434202526620413770138395818500814635219446561334255655585612506938574743340657372386602967600492393505525295788364784082310112910888656050428118410799692954994729421544191599003996137262662862052960440786814475558357322338654145359022185902530254349175372289431273802053582827248360449346814846350659949316615990411595940639419080542854915742968580471841036720176661041415513643706019634850456915642770979562024003991641132467901259572956260583100864334382390770817039318016483694978941583600228516760763920917732762657102536509158104062688009030157579567306800238731860245102646114144902067512682212429499660763117728940777762464107959631081127480176801265376140881993439828442751567171884769903684790135874028362805700074773262222908791279168796516264414705494039256761768474745123339972385201572428281689689069985704386586798045767743477954910330436990300362932473909238053670739679679758658974606860601711329148005739163392526369456838683213157477758950294792865204241599907036242381223440522125162719844489122113194246092555222403449960438433427219296219308544238728573548851803783458383347341364056353555934861602511934627251113701896034764598509638013994434282917938758109575605373574308656738851411669174766484836829066136520377417671068503329835596268390141257905526647518255480045298290064223195344766253784215081707620926738476822932067140213186690242965086328750463990656583656222514214401042656202197219440401517027140583119645740983073480708110794049515191569922412802959739471229331461043240188202800616032560113648079225495205325479836226582858320837677610926905102757932072253458671832343182699896677923054823532359344906662570143028510901809384252289720142542817480444718280013764061162297227204912222369789376033098645758649070365599284540820346974677738938382361825434779623794877911251176950639963691578783439795546922293823791580538842729882079296772284568057477555514231483939841444338529292663628576151597173497202108582382594694855688794317321053907798111243194655022494760493077691836735007305330948797340459602840972295108500738616388743747084075913824916719711264029833003202361200646351159649612912777982887210616704467372917796358611478315403131037302997492567660841274234874992297652940390919838334118809535212622160656398459705338946393717878591036083242461460408045991088590000763511407169456704468587954640475419738887079432760202122613331927023961953614077057732221744519541310911539447420129550981197981373712238902922818378654573755381337416464742303594035089509215190379401714156696197237560663816564236276382740456350625432560667425585208135453411564773051475431941483753265111913053804525109385462606264852120588750711469104131893846441561275233212870904876015210927948073122423568536358734262369457860366376635258348565853958321159389475258266603365391708456441508094541560296147029211564513214571828115688114937562356722141520880415568534092461273587391752880380526151049009661541956369355721561509678883052748377480559324055116181284452291468045874437838117565237840914964067648467427855639923520112238301129411461063357801123619831395266311391867123384382637977867640691867246441025650759139463600530516993313160832862540328157674907436639983616738706379314284152153631634511846906620240698974005399858709553246712327184493724119261441873644633046855171558316563238448789737391468092350552128767255444381844700964508593225946768808903689178394581911609933740541078589713730134366035294901939951320385231607794408077434533069836817800832784007654375319873406134261016571038438439178758066937057934267292107442987843166323301703373014166365211046757181131501016100831602461046304361302098961833668206258963773411120576616844107876535047993813417368530444028868374294614132083459749678328631703731576788938978231305074071064951589954819066689622151934721782979756084327783942171923329073255338200406679580587187795803254813366381901611245591327802743580880841484784672709217182390068056699767823536348769792823892523102710761739531490139295510509923162682940800517985726525502648969023938293927373739776436630783959355950604654104244822491177410230474268457576284334122358830510075841053410985006891522384192487402534126145945972569691157431577232068431889597459736562313731670884676852022517380953804818181546606651999478926378029541061581283578950331799219938411749283005209584153656821647042863100542141536673202062798801562141824514855574654061775367547843604244558320083735509189828211750785293715358446837089239383659526290377478789900396916188991633180355839294225434378970026989335358884366891553148332497630331600206728252977842666809217513127784352584231089346751672884407370839897398113268974953061575324750527761010186294378859647313506488589669837805258187066538590324900128355393246630661728788102683575771177399315072654303416322705420530718290330569847465530489570317378510003077373036367693043465288968650576710276873844737305561150057643186667279280440653466689800155027863300659034255073672554201450476787960002381015779616561877170896499100127836571887651035214362831377293958165721842622191489084223239180469036825021797989158832360506922206639696190376159867480790372041224114009798304622001210526194457691887403044521007403117538630807825943457744801310815773637651003896662141241658578066020496016970384578775172836466456249484540656366521112309229198424865235211252045524488584868944773022370634397328819969040442221790499930032753370916851791362723506115072221901318393864182550850142564004190590185496222685688552205812558306282503644958398255372901599856036438256299836135327545993827941550968006869503782028911314002974931459868609172765229578711351956931972916008696327289893944267641810369119533246190970941775849360150379343352262424682949187672764574262151454024888284501139482581730674436562599460521496599618671749274654120209266338356996955187264608165158575406372681307873375443382756645655199218320978675807336227201209759950423883561539261353945055803982943032325549177687600088957722761714969932486960328729433816526645897931176242227378476446633129750179197141351573874648507000599473506073676110412531484367562785243489611946310322869804196796636778948310078854076503260834462802983012035653525775430830076387505701034235988874932547483084650428847173050512150610984321470061174662021336229953627721149773242267678526832568628047280973626121433907438549097837943778389010840696900035280523982432189094813639989089504198388075307101366116552581085500722122978472454036788207020975233325122102809605324773970681214976287977286166191397530725644660842341868610426108509308907490778209240533665953698953008182713312409532704461945960827977430657710416631542870775464823660567150236086257081826217860453501631955576337849179424525413026433426886449110198689696900870221925547907193648535136541271490754548983004177910083948578230264579018160538699361746551665605447982366405288949658924929171048098837968274824567237182764420151177120849525142477567913257228644559549894382597419635667629975004164505545014127482308333102938389981303321920206353554200847175079648110654618240436080539178046707035130109892530368571483534137367579001021061894159200427112660312828203819182210293125391789567144310505893026811278067081980088437012868600007207292073627300830199591267118617797249373835344049151769249511408160255506830823193354913988003610183140705491588988943366469931384628435327769974747427127866947146993703763253798327567330175888953278986155493429584600001450089391460112607322242440315644358229305339112941055492800063765137517475494953459820879086310218331290840874622216270804543780333150466301762557099426487110468498951141625454315171992706317902878969225965544725636539039416992698829403110010080369936337014887491157015258051061623402602417812878540744304956116453168528579685900992265129180454444391252005728069036544366303246394211248936056575135546026388421899502879572805016634160764929035888759217882733481647003785214753092611959865903351515649266052851055103990802516579391308817990210953934484074084770954935903900209916221831596553836779438740630621094436612438212437204422693451222098983400641996274580111468519386299255951869616774443581261970015880618240421490105888617536530542389069242992242971145901455467383811218333226825600281769767396886131357129407412564159557446259839424654510532982463628696507735638465596926476868081858388654563367226989222864086687145347404128915907820308951075512572441385267502920062909599516727343224353280743444708588941431779151584309391588966525335758974519458108847206885446782763905392490204865061952821672539101266785803003410697590244232386744282101682928792688337975229983133483177273529147820131674371696028078327949650456028930202216059827726392119017304265002373189923164057785989592998166398918171089451189389864410038487528837763692653153742961048621886651046560781861132766505410389320583869269719090489713559540810224747546169573916094487822643343526776132985076083223137899821051310906958879924518309888238056287787174800242361092152231973940408941056881648715376763327114672821684478337180461481324925599656656668931294445645339535516481999195426935951865699652924327585037732043557329537408522291847813827871160490928402144640419898099100819589562361895598058069618618651340964147735672328415308811259657404289804157023676652391609467548597402388487063090096024411025984111654700217054513531601728497173807916408980952304572958540228302196845763538962793800005456768676152403866743425945121481433252279359441669715912843615855593316209158093751597241365648059508064086525930619835811144074008917629887652212808126715990864018098476128825459887373633351325175550675318811719342074444863495203751904191632139108951163819940847565219992000376645337345071516357786149457260587460413108904463804121865012470236128797509013127851209052177805658851770169899161082138946520466202321885438685696139172821885156772197551916940390791863317691722545987126263450962459771237737668761156991916208264091730713011294885976658538731838718388315482637125054767873423373748881998840056545560144109599545179732618938653444061864536947566204966035290803091953299798542199615346267757741671280898778300073445399597966048147776227190054315851916248890634513753640398157008431447079172555106425014134909409467479912087387404520071458583396230452787039758687222891247060219718966987039712739342350474368854349072375827850551747671542427491148524251994033307374279630103568915621977441032339844294086657941517229820236875032097724209572992371016029522863072207821615542370415265047370336351348371036199632559100005331660309722834613128023343272551370004929714777707048099979074514881211634746999024395958938492262192207440556645074037223803094941058288643434801643215838052687977885548333297262127337020222897050852079988761382886139725056321419460987849829579094605716845335280815206137258710306347022570030423643088896654611002483522802059826683398366355358514531425701956431685612829591044997650702488101173448068007266917660849958011283050977138773794380320447052387068602108379421119255863458866108687883035085623308961071828622123604352890593516086860811993909446364947722444219832302481159817902024105360176343468600105836668822595193153612131451050549002329913975813051623128845438440511817830013543275579810435304081126897793229050602067229328597924417147085164224901130868964757190500073849965509409243152895604591012948886331515690394496720171411995367333583448483980051448785479771876758364336117893144228984301057999129678101588179142883072289601741202760900937831872495188943658358524968983111996938825736066950520081765183442806999752736492642772742065769270823231404026397972127877096279539881532734580981172135409873666769606667568063881113305651511336255840359287209273588944238544004697166933992168748554201465603036222679647804411437849579789379409058163498219883908610148775811695897755647956149249332125521567984805778881504068405676598449844762718819730479080511447421915448171817774529189393131340620729157653570765364445459968240239540092589736947581759431308699018816841900869978303977460604472511896886015074152712453125097366420875795727494036975134922306039574606065585131079146902404504060363736743418410592182241624744906563941475346563131440222129775602208264324526389031391679903353340052504324203241850674525212743121809665084848288902592878006374675513718250319421887218520470870761224366443711690261788355486811158863579461467612673321359256390471631092265556630174002347238943269620835082378869154059921945609829608214613723429000858315638826943709590596583314681612195858386385172380823113038322908791741840963707521659279459196472981797897273548627188286430356298361064824808625045263305658368115553115213698082673037768665515610682478050453807029067483811638822175063066596630406952600646984999572705870338634546391723823264264604997865578509907049110240534848833989602178832531423048938513014917884740380003261453565979318069388786335937391716216067491472315923557499072010855883069870557124336789113577433443587808628949490151855892329093810761479083529645895127837996642921794874427974695885685817536441222161565281257252929942059934772113061303441452594332202146042015952581204989034596107222527169589551900322718104209016583679782005782439731606648019949438985832498457537401684229743167582746455001875094784142007164899369343463925507217676726142014080141903102840189533847459800131211957842200630574623865899658495223735953650933375070882811306426874259464745776241908965613093893770332129126182989544496411314702384725881698055270231440719157028785846036079095263076058966386783261312770556008189323754623737525064699341207085120978469039394071891249431038887950137422868773587981656546856300278047307396126305316733798744576506790039328655061254620246997721345800130590351269617076915919241290910815190826273890769211645840671982377073791063772780381373337390965564730575593624108042257930518005648224119148767699302023299460641237347454869920234307141605883401685169855957882292470533190210330857084519600483201383035238986664281014296965620048672694786786602841209519056430106989461537684772606822004173162619238053185340242613422613932597806930053681634560653440015056966281564676550893509730865618070093410465874940993279472232549319034505307024620367868050580538779062941215293894566804177684942672706523621075440851894959684693106601986255424022677250114326505749578731576652258045589349396702404778025003125705658498069869784504896702048669809814388740412798020982818422799810850582907489273962770564588836230896695759856098878391049052632066848874276860987724509681389900066611707958852973193336111947807393165186626767644605939299197501440665846045646543792100479734420192088348642008288522640145253956698088723298049591121223780929861095844048336253655500078727241973439274690273780716883170861769605873076891398080834688503723419731900258886505445936088345918620800891345433297772336992496014958213302180635116132218228368336557575348019115017421855335385489058024452168266523776287214831678799426704333039690913537590904804367594739201762743177035854332168128084166146598759494019117260364584090343949870934990809367968031826739872977904206578713275503646386713564164693225234013790297323584497857050615860026370889384599624298077039853033459668601039635993994850244869140724184298392866748157098293402774004181098244361329768466600339018321087208317989706845818438211317786166944407029050204575925710403323010018729156368799658877051297960150400002412388969974586598635211891074045818676712792607785519629191712292621388080442239432694897251820820460955252500429483865573715631973446537385263579624495109204251946831875604183913095365213063553480246839094694755886049943101892852896607254852383375321026712092214790713861835667699649372673570401351080980341979023757672925545579865142167241606400222609504898280970612823997522287591234445133574613227041116227937662617887389882683623598582232346960785988706452545308784044025420665145145954507703935313352761671698834976987867891655989465496137481004457285629270991503436217133022191060140821230154314136321522859621160124340706597656253721429324991227002464391221357817400371575490326215949869738103460097160159706236345799642714928399768405467184003074114533128300904018689182525200093707707992211665820169578080033056710362137842655813617291273416344720482972523506984553910153109978745518792659073932646388722652650151796478731888613300383295822771885759597846832163328135863742976632790445169236517511782813537568551084290140774418860860612520508130370629989417587750651617112744513633894029739680475194298977354245013260583772281490522342300291024375290722090249594197756775462648538787902088433302423957177163433012068020368679489348685531501858690939731457943567491118579647621543984319497063578771594354274676027577340836242797490706773221019506592294369203034878546700467898186702268179905697809249163192126500835823841952943258534077983167944020519979843666028360447256546124555528257164325219127741780721160376568472600999614430767790469418582287049593675429197095231281873529157398229804748078309589284427682071452827210051727307142258622458736701281545760843137187903729072102091773231747110987374761508200578549015256989690951208687581928832321183135660004563814943464503163985433674399063676164094436776761682185291475559293676258377691145774316110199535760412191493014262815864411647122506164653699453913942354950153733605255474762631397672923562306631108641888664061814780201372354325860011647318589552530866351727989868438329245604119528645354703502415475418123156651274444623712367532834288035471425724371713174861646551067842728624236230805943727768166814898920849478424326024999669597209955232091210821672694370719917946555145195478450060479626195380244138584142954650690592989619338885281748296999943467328912139551170971926460358408077669236270910352404105785952771253446492079223322874903784460757610151535583643938729797275875701054520131590998601825092955741677782866055834326286992383260194860622822687255967937044382572335167286774149256108805144680124376633319370361154631627347627627371123661090210516739810319198359532856210056879668239213158773248936490634038321226406376492933019787673440039461716773213998100369775631854402540200408651356792669408267305581254181158603128592622781753343772416365160033480346727386137155433263985123583006863015773070546872341427187905135112750665805607545375917623378020332156333091886745843731393138644927903735243364418303183323844280015168235936995855789445942764344716798187258799459799342361155232167802291246206899107430558526811965425325344058929637005655360912089437979513430853028288328645248132400763014295101438231425820758267106053037957826757054995857836332806608709991825038285835349150187583289601286101453409155213044253153273394331472084855124504153700079024021956594106175080216894770486154275426128033039784139340530126620700977076814869604260756601803100825587947046227678398023636053694689530861384850552809658217814072673380849892530952933932392120139930651931589928482789895808291638750590302826983491690972730295063988084775807545638700387755438442836667956158721289288718538655944325870487387655911561769804454324338756768465545296286191323038463252123585007832748055883063174958617126763617344245195060020822277319306119209664819702263990945226684760833910759355187063351930176140638674895737562301523672304838170143052901679565800781701951543760599843872357921890903026994722975218015345188887923420507963295330681187400049513436384909825726827724041500265361514961910753363620649475783011992191678258186726682467267413359570125642051944739144818491588481858565317124303644230053571653123618436740302513695435134878934110556400249680159653160084570500450574756604161682548768923799544556985617552657992170370279841139433332407447557704326835648643916533997761976492673794876626378258457744833242874962831498707560686261371317436014652026381174681520645202947278119871062607083387047071265964217430695865429008440152252170716658557056599228481351778296357626795488736117354533676056855698238395221053601511209748405546471862395187059921530848191732454972283851906106769556788231173265540528782927178574635389870838555563281162851347849566766259230547965202430198300324448870899944573716350567079693064206216582170782172264074933519971779374370975402253456488976029401051702646950648448186127620070205181006026602633066800756134624582792707199772729775320551101815763799332654602060678210775847229084834613460928975230375236412271721449736775382033450935416739652819126279120323513665035769016691688326382197903175220275830489231126531504703238148816915373948620408968173698685291939158168495161335706329124226966053050164891770730126909875888222460319879438176951773991667361943745651071861974756820042106274639142336505586430883989283430037132530312596338510513325574769470744953180214311150400564132507403726786893974021230013388127100095730160658775141586330699743101753303068805712472886184034775263120169712033784279603741128935576279365757950953885295563435448674327554853156522467905155896496251822191069696595971850681479735167963858696377492662081060019403258077295382294920926042113663564791849856780454697127255168460484383269200137121447859219879671073001978985929946898572936669314892083144871481591187288341687244737478652492324992216189402542484148903904577926085319213767886591370637213539457901979272855963804506769081807540847971880151283263249770420080674889405839452783973564890636484743422092679586293876962089148548834273583211950851843434973597216806879728991989053791028702864517571059050502928113417202880458207685230311488130954696533037163074681202158648488179942859401740781606426604535968497054589891385770835742012916343993929223074025986958616418639026503472589313991265076730979053637449505700717914360893408001716863052713516462148902029450933187261699438712557731379115865427455438892645384782524953395961380609915130963004729799694265036245386604820407382536259720300643644464885751176610482129433402829122088835837308837623227889281197908574647567362529419808306534986114645990095982189806873645252355909817170513531590506103625948012712901862487454336249523317862191347583573041316885880372942010633993557976725659510516886016156928769367511944221464994768307409488655419610840038075375056355745143687823436854515350000344930539760724124012305577152896768911583054652084078536486454534777692777830083596962072735764179088678356516840362986261604969923563783037886864915795409713464144170797477726155934787227563632376313167171869264344496443422409425992302077569902147615772002055990376206632471572488358383261326625302192279257755619543532886287528674284198577797077454537651303391388880029495791143542965016738717136921340803050334130932063792592149067790230215918478094247744807959450611957098950287858383278835501045465636113583858566646742860200908650602770251813962051527852003484497106131312716072444774408440860810229160670404384587206074848157891309106617258170595047491971522015346859000450155735521947015033747396858307588075947138410417757799127399975922183342649280730653297578678347334985769082644955051319939297085742068880507534627598560872804726932290851200017286678217449158458201018458272720705753133005383125708081424356702069097705819551691006860791184640339954634641124865930432190532605784674560780714961008903955200658315226204449387090517329696168481438404811538359233464645582949000958004226896766675933104707827717604828271093583004960166142651395533233775959320130428028103245759092896751019965483802355896106846737973697932092255475315845845578746497853415215161338304705840802602657077223938232461998341268148014216793302193872664922531982237478563822604230592178380658276209114128867906326544714080961673542984447156638375719379228713769638761803932493309296968540214519134264070728892817333447475138960656122812887464244485375200286909180077818130430614951657994139713903869142437189294592100866188810482062886604413874920486795870172916979323690560853373082690683243645211165222825558570514182190518069974456311537365986936748465043476444007255121197925174825378103993554651422559987298358459248605822874530682783733969162836862723091877207231832590035690479908243115174438192834386310235582738963440450600651619727850638357004014231525372464080906819363607494121334918401321156920481901802814191343460909656345025186941690148591376243628963918329581521382958990864880811806966855187257235202193319790453236970558008922915435447691698538165497146172627762734659631252981011880567381297311834408036383239893150967629508668955545287827788973304367082741249112664191121779229300853725936070526275217859972931406521709002191724156081881782217563020787121445717338707048633304551488713668553785524134994214365358886427688644819353943293804996413336658488175250197197944607316021987847899065524514572927324281161697981083785271461427943198273847362389376407868495431293372406059207370066017388866756671029553662906844545948646559498167968237828011297494510818287649030288556736894696210987833015317020119857623842729709624732650837686717405844885705654058959092185286230658989747685112819806927586601882469373469530016367016102363840623567590870999402983252005217809325416183705336915136640027511010218907604383429413038249012494290354624815329565753714529851210933357207077906422656114232454717730343947951073185882282227005455569771964969308629629986734127887200863253535047314758864077632839309719839635602062251195058957970951299489386870337713447421084624460808042504377810266938069641501096516699820481190897170066708699992672960941493460117771346561133875233851801433243476321191789715985712112456872263654279861306278276760495677896088699948307668520925800359333259432277316814643160863369253586543949302499746313696552758084981126348740770554420925132594879319431914779008902630282593968544027067259666621333982981929833725271226723749173284675059775147867989016318774953265460200469317824651213985431377585410781853324347681995954763943004314339186131824483183186912146351873474163484429003489231219266138719835038502003061859294724310042679403491712735590522764877769110626537085259835747205480072774110122703910090491651463142061106457664878045506894077477858823919647838813052049002809850420645066298775480104642267182383059880223851366129619273653091367719559566797034743539001627056921393330742592535573446811903028994309403563784315167242649377056294125289210135530149429674435351668660418406154644863479209294173043774554564754031150579423490594514269578771608245240524985120927310415596302976603591522708767580179848741570446447417061130280738520021576745242252368070949262893094366643351920254092050382153846383867119644410139352044018188242483314962224506865617346575834687878867990398793410020723361847705055553820091126839811748795740515440323922618471939074060998641848683442828680350659583141803320064607254282392524596076002986895720865207570363675187593724319737551173308216874818805691051077296997489166525955649684590251289762648472211166079144392177617655165497510936655567992608243470061766858371090092676944630336144231735182658633765924798233580227812154122419912647425002043706637805478747460679450265772754713351230165860734110091110071282348753111920325124910331528985192469312079471495094371347151274269303049154756562775496561380054349767757274005857591434255212236679319129987923650205726309377403758012001108219716360103024936192474265549302171734092927189223807791206946443814514238717102484860314340956340292387703411592276251358071037464274599071390681914103015811321852899205486076959217954011370482940488149665239016029594928643662746716818384456405150871737425412595500950283330243492402226381757121667437843584938533485682265390085408754858323358587248869855021337280538423532532243722032649132137397662043513089446357716324013047922662749486204308543056206838850517456404713679624316899868187461207152303634994393808109416645301265203346227844214104647445522306966624122747316695814012401786625744280762305422387527542311643818378827567372985021532199661524013264008820967588164598474027026882014656360982143726947580965557431597004252039155542687064347219199670395969725173672549867453713375961381311681224300207858533648424081258609420154079476766171985413237196905154664636999118623929328326997334976705487905036446946276629368907162982276362195800179972338048338629474570536400266435169823245330140798519453157895735008117801056698528951579805664418259620608162176474223775223527483090625090677051228074069205595768532995603145506470442145590239570577091250545166397458040240938161576825711626931052118120873591863323554080974107156589595805895042708254918852483230273875459048890329437587832442432566217275423502017890906184640653714662828178585240993498948775347426701796573879848129802678877414981834848621893671436791462326644182887492848250572088065677549418007899628752229554205780988236039165021046808589187185376150671516798107941614339304658815642683937801067513365606256421261579901951868923458226417137115668425700753299460662507719643184571241083842223235902034239389877484093789528071277994874905155023413256204132120674127167430909533341080554563034798361063196794769130219221806185405429688765803963966803634020755560302694580286602211552633670232001221431892568642815626404217346563436888558646815019851782878603512522882995593459557526151086160127131245091553268480645521344889955254613771384378145109319193369991198742561747293838058857831644806270099052901886274997695064182020603847024440259942404968411695728548152463686029206530553353497920139479643485845826831604072821172390685025281018590166342304119892007079187985152301804550377253473137421182876830716445634260767138711816494554614303741907509197270386242938126770024117462595887357386438076859770594022240215627818547031019580038315493410682319043284261905013028412316067471240916749224949449836594133281955075812897222476898791110305430506819601537354333477407644049367357138593594678561407993337753181957163658354723748854091169714743651020754501795140347319330557206108152130729588394276368966751660234400745157766253048842763875859932055939382812178870968861847476584621367126597606797196587481954113082654126846048765874093990912790297398963784511439079140689234302968458639536615650713195406726755788755365062134183559571367105739354151853662686933693123280741644670822566009955612959448604892357481015161630858962744758379068356524517778332945143856961578407910662560074544634098880977231733902037184063684162384609828370439483493388346145686033240935091092252810196012840560265642566509185279164900628493886353994288639705050549209464954486311391099663507801612943879730387359378102332176457871728599715594892503603314340614809722653111722724984891070303833766760500918166850111679944388008704396926029851017280694486836670145809833105861163597257919752480859109013669807658316238096279508942180634895571635952221893915130125745577914210018352953643404960438873571541644046190368203086217482712569285252207876579511564684756923240538237874326834547514943816562657367535891944133210190953004876997932046332937916718561444147127666380327797149609318595587945810032205838745727158501770256153407553316072174479474220749905011320908442749080552352418027852464569361374726274339941074002147802941730974307167737947642303566852454504620167756304545056889095187461643752240876454609206878996698539637543286197913082524137515916883527957775179359762136443651387943186080996616229759151447827610542526279896287587754399950288346680315994062109454039616754612552987995442525440916718328383688279995672746326746674413573918686116914174258646082888268537382430323545253530936671699397175640328119641153046109212092509383253832037754813900634350474566241509067301009315635978664442394502016571590937692408674313155331940008865259805082434535581880733090459706484488433575340684886103536815096143366374178278528724865618265671688769414052699835695733978703677448733186880385596313561541854953701833111777122437692419142370769672888250748356552904043291612214192935117267017654874710856734819954371052287096994688910741946523961025828066140647164603399825428899160854833538433663207659491559145369713465987641444838373057723785850781436230453593379960157059236371578722494863920454131790450130582199667639213085805881511971597223262537066395568981193395395645266640735232859836633351214390080137220031558340786460507080876111390185452846657320280305325642615696880286234911579871163312874702992007344092699179372322032433563874850305431849715637970049611947246013116285158128862071482128068664725244553889907563608125057799188941396860378253598228640542676510359311088731465950503802939700370129233052978037446934060073108090202862475735628311991769791300723741961715936509442919966625878653000912973122467989595859743827396785842130201070850851926533673768195281142234236537328854897048856101181645396816078036565898311965444814734416490223261725488614833125709901916503703900668993490212994654824651476548134686592042941175272564198891127705336618035826703606833499943612458426629118532173947536137675910254013825356849347712769423647697153097112823699787161856078518905743722221545148275333748892436171059250487156744486694251684591981787534189414437922861327336634267109567785753277102499508073464479750992260953906767464643401011482429547483356659412800824018064447735466511236668100945520531808939382212112129653178465193422315353607637017580405855999794269525178123595678035863909799877583061519574048747038283211204878277784943583287473659449710689211671603156608543537679387975764747937549832782671480901301708880379546604665667671133340189460956095333617838879677409677666426461396226090872430613860442582659988684181213933991999702774397525227230393345330120133826542637560116323773508796839824695760848363338002589092114486766803185248186719914253536539721659308668342818586799671574430846355002956756079662994790296748733809811056171907424035808455689770541899353057629547834732523666802522007869553706568235286273251180261058891497170448183502628491266385552266648226353992123568623286350041120889163716707232117702991974297257637948959923938829956331349744799081202102747750464868047084261927425022104968330388416402469204659648754490469333121218850708559363401039218501689836098892305604563859245815077728495621797083529156244844075849693332390509648512845803970381869743134257361126388412308639686075590236152170873002381225488217197387072705461037564152903487800624208901065438951023909581074039629676571681796218240312212180810023830346526697037826115862288510922734001107941728792646809279674729570001977668552518664459028905456353568667949833939380825097220400634709137578618909102708534772153165328247237307021542041012690086077794394315422186896319337837166996610633125523846680479718786184049389728099906344278822407125677122891178549931827631146284446735485922104669335354651703455523346816337993769532311192676341326907491137291646449873637339096451398079957929671889209910047596094048888053403594088413269866522439806154883561865548867334944435802637512452007399549395214727080196120663773858742247978719033885883402298508194438513209493254570408868768825660404837668882151873801229700196719423737309365280267388471733345320493063633877619800692158762083011195946588830991942013338854144731598007973718454430703680402320471377707018577886433954482456707667478757580767012177032931540872294586616749107879031387913937045524741592554178335434308215582474372266652429419762237228140924374145300619902130672475190618357841654252191501842683561735425086500768870280025528168151072124270443910685356865156800343752973447564820344303770043420101127010231485118806171769208582402547906571400207094023165692902299214105303308336725931381088610542890265330497337909359076970727746909389739206745397070305380418317633268780184228057722359536580733589260758062686846266469686151308909305898542605745643072714929957938245717483609295678497807470518895191543037389383976842583195225703836110350891509216930527734688646610670905860137701929395455880340043360903332163887063885145184998130376238727286995613947783088564507320943180759557256662142086413007966205051173574409669497024880490317132020840405384813221472887139035836104050082464808665125799124708724818502587683339400603627715724901300369140360712618415385333879610906243945314090065499246698229074121169028963756839470299858511387002398966183938001042056667542078414059273615094165735210433214701089752621121461775900307665507201727814356368856910476196996583325389627875684514379305114644223124452525030097572186881010113721019745738755975242338926956574349571561531017591100492263393917978213267791349637668758535574300460135335531206542077932104264089958323755991000329751233716721640525480079277658854846243377644342476340358572598553705088705451863678264540575360615166798934171586370918911709395806439770250212402773934986958336231432428205289015952537755536118507436464190768861356836553196290540457481760559204149797770909057251070445793586394405269453216117417566693473677483830285323036614453743307259780533625377145034172981780140143366785252467498205374207461346919874371215400228718556607841189585724593101306375112355713737359231255912767683389660525122356119508526704883908488176496819024930873482207672166590189050050364125178895458658558862946721274732164097664551087956249471965430599071292877112334746361236761336214295157376451644604253705339339814814888374663865411149151669523879875737489741748814131685755757106409496808670023981931239569904665993241666806232449601954521530784151912997376443593831365344003728050598443283779700538433281497215444457584502880371204573344450125250562849034093252432698738415012206155820600894623592476591863342149054196347707620894308521144548404366243361299605014942079073446398046515244108374918801346127372233909265681979887710515802505508440481316589215643267549534043689525575844634590831081417324966886431500121629999620082005216291548626117953194396646749105440654702022981841208958815978047823009594223637885053382333198316992085557352234175930953558195676966631674288997161291916404530089182243241593334388350433459471597586171259077551196190025309935754392281484277725771465271251977785497733581544113898107746232555712946315712783538619462131729809229876959392409383319676631411589603920065094431235877018704165795463365404280517094502076020958427323356815398344083614164214255784978350788216230824460646633060584226485140610299414150259394457917687160232342634545147078136213976562935452981905073644184743540741090419840294796323967457973858080450906838299392284929416733637343751612078374020584637055775471074652864729531718866910254501906162171289317333670960596944666324470221282737462169277108934896324899739203411417416115584671015857646804728207480528489605447714616438489760858832176741839797946149561893326016029748067189105343577990104788487253588675613959352078412142846593692195955288759230674542558547224350760975706813368665255034134659609434160570919577450518834113453539774907999464685098740059381450218716423275571201751691962080761076688803957288080228666335589055703258096737756245951257336329179400867961635479919856957931792891369086969036449978892976717830390309122426421851440428913009786971203429660366272447323728144454101980255356318390599428221800476830291939280345275628117446599094960253563269643347914326724652532535274582557005237328002480975830536627529729339179803486706987774825806635126946947272879818156352141576638688312281585332672894269317448255235880852735036706675999622741180718927980619005659714124743299536930977099732897266745601957059573194013493661435483713260603743916327715127559684488389300898409746060952948696142596783490875134843661497161733612193608907683339023134689650697650329803476220587978033012951396380832025794931101538212061116999553301745338813885908191001060148631754410078105154820585400462908509446688342119286059430228333580110391264829430767198835152572206014377984997159094365676370664525960036930987791378700147552473962519805167010141721790994165953487199229357744781692215423443076240071085078074944740576122978168814042689940317590718909180250464771076097641692236965314179452054276977843153908155903446477574462913003309362210627657142199449820248100933079229478419463090550717760257680338678810070932047005886915423572139949860311964009806174063134365157363996127146099773338032934151453290575062617462292788193794096902671030419740346885117607142689880390538576880785890710724204489023996754111581016993406643875823733423754545054576561697736246412786710940834909821563850818634348144011356012360207255807341619685244239182816790463057048450040516823341208554314282672768774154323242137704882742810834337256553827229081722987019516950824422998923906631451328734905316912022228751897807452597367353541596952861560052504393135334046700249352688680855735663298439118947599970041941464154735233160159019503694892512612337913811557977277065442939969836050218526373549589843741195685786330403057911563628406442618708799056796226575178814500036132314814404586679836998982458901417264244984324052885550997545936227097037319596875576041214252320191344784710815796947339233733087720643773562868486843312215587828504627321820574191847789543839221491940478008968694475091617000321027277348500134802927298258688618900852950668632030729699195319785743369119073903875336915505357327026580214940598625692443260188811342943597369444143440024439506099086123814039268116489249182959834712278825567665752372605624332952306868237216725050034690432965076180270753538209749800173365049557262948873369891216700819525562489458586222325613575065132024117418364839588578244994887054881151531868128877138087348837237743838951950265660318889004234229486199311764677388365336419052883343671971627715366176255145788781130405012836809812196219352920002190677295886211090267728203843851689383119965893482732024088741403082232298884695871717738908437310665371443174766973838168615586536883397116782502129118861282234212071262265196962540922645942527538100997735914354224586619078615235812189613727225537455397907733179946349856222975594835956756415025659106147544159506850732143500347865263984415374546289911080752421512339652249546732635595837785440937953537026052567580952248745783864994868332299726732727222614990079900843280738144631918002409658543405544749778973198241676312985409604378101671541778020088317352765075233950427088203855584990660183200596183446986190010055850006451823943124496925897198084502145441011783612369239620367168261199828649727566091967919280743925420482721224308311235730864688766842400674061627150493986447924389774666021519378169350907313180836755210440241313292656281079802009129948986400784484292095559609950606698541130086788696339089569598022509404739975332172069035126506960190230157610422912091625198348248450152241526603090599777415390013177773325594541439679581885933816641092513583891449731817357707350199552077657199458131923958905066998627511720200764438277838718849960158891893145681974059038659669204391106035015627294879967255143280791859338896292684667102639869906957376625087642236602965023869536239940768156951397292627612082688758657586548689724719136458353401599833059620563353206448900472226085467911569660778693162982807726412495629349556463280756230282990865817221111261884331940136754282425877721971954412319134407817614462589891088425915153557453728159353752892344410476149484695490210975706957768208738730641114106284837291805055358729253149907978025970789048479672777171212036300062666531393549615472708041762300557214766930056908509917391429634702998961581563598906366671003414756541449734190799038260413028815965757456426794412239936396719219850969561404617005255617413861166057312282700872696411625914514825800757723603166810015676604035898618156418929396559698959749156225907344446320835887963960307714764100297951674540386225502772716226730394017651635508414088463288630769937891279717737183012842161804056295392758320952935981753825631443156698349538141008572635663310331972985456449335759627793729689694086393469798386424987212686901461628637621855386558204806348589584944551791567206943683531880161448908154107176987781519287875204153991993228248794299446547988460920492732368055203582772199914034475660902395108521012753976128118272138618066207773905883573860975988923311989977483694937969835039237206312340057897541597719543995517770521508716738803518355730980450248585949086750305983810697477399476600826228748007097983823096566141129858635406019326127288209265687571826597665475316632390955874759558753504433340782048163202371015805072597803513143675875297249069402566816474779608450702626687068510905171504550228163236633890679857875699552891720407617655722706459771407057488070768374049751515373832420973065615084929116017331628005249350049652092042585118161271374913308630360614511023461085417932778031801950308715450324708528491534187508609844699197334324217015050659518821222800120836385170042947600006761819908044087929587555045963993921615540853987405563272669662849424953099107008530019301747793392860236122167542543709245202894549044765856955011963499987119970166238917450380961799326859839271076555255824246008315248969578258376733518302770474243017998921948002898707344819534053917762495485339178529929704697484466586722492330268480360901445682707994267362014529794940884627448291785349105598032033225304791126930123996041010833253330057180968864483233151680186350884786578405331441251700377371188892384835760922540118966455966174294025566137235036118212302461244086006800660817003096422597624537140633923852309468770383410948966285676401370027691272214596254975557684967390489709495351028285303346866624346855035507452242138840378134627458347805544662798505215219407775899864617878178476755242080414782786093121255578676879840268350384090735124784306516001093509473491473656467605558226805995619193063270637802557510924957584278369795707202004553899040827802503741519600855315831601335568077697497722490397910057167755285894930129822194333745250962399955136992362846839505415608362033031412547586108387931187879425721704439256064187244341635217936881953283362602319454299454666310195855822168454031222392595778961232809881708850881108223945702240722903782810651302958024456814240161115772357123243595551641872227411059347722796308490854232837304525805156147618991434348473481599902241471375396561221144962198960222555837807273743665499272219238582341953442258529046009723564238292492741612665940622829661143256060470196268050811497386514783613885619489634673628585078955899061963806126345050347709482948766462125617651305837637973297398140585703699758141023846340516267684898784786915278914064250548951629982463667604649166240039845195417348940252880783641000949442699033672739141469066464418763054334697301601927349766026627230778104521311991002200866589083590854827674289232545529328084074413663607256866368464821321116610386298154396211584612617481162155106355101380684446771970027488046128059592346261172284840802038319359700212263537203454017709450034404143380664795526823955289304681013334415541365138617442096420201183429019679659834210959567594754124487048301183753490784123785761122084874243040417588823700624280133650716027890140907908889881387936372340231266745693242393420332478455125098904133247749159292727037488043128859487719689602576466268680117740721630890295934161216622859535695788069971252935478915762384620996551312727623186289810760770679607077621449256018826522424862136821998412019161422970229238814708286680823420798143451011030361078085298563935672953980108413143388022325807290523336784016178089865301903498922563290558491154738627343919588021702208769262252780685874191467111065498809824710679487837284576081741087532129798862264234590634473244431670789984426121205935147481155055091816938151777730739295265684405958636744115409978303956508004488570872186622335821862152009540279630506960291629374455053339204419646652510754814034292868693353127992052076204658179596294730040308517894628538596608205641980443893651907516886190871245619618277350234194782654667644107862260469752390481668348200407182813508689802311533118664541761363576009590116629642093919992364974299090748313338026372732537332607211445743386790683939352221959536577929639050188161788496843791952522037516154693722386038297323694391720502370020843969006253144216899630084973974740978395929413636534723000576587080301757716902228860405223831896544646671016172744332369624551221928862698487848461827982303211133103570733685220759905278685738276790171027147072685195611440116167414714214728420125464908729043105651273165244420715784484448016653493949140054811649100898108511245721706171922645563861446583984059296031549105643791935273310852176283119598544549851171148093338301149948288902192126212304436051802633527286582537844890544982887193092218044830586827175348752629925198164687244403944340244544943459613225129707741095094285397746915039527880839103613858955971447469324969676153067147711420494513753172387612997882466462341079795261941370245265860939494599925783887477557358712534510353776767430402868006693334434849473170222883129056335273386453485579615563107830233324157927014819843969797371395377582999693177553074405334898189031901069218397576442203331938649290331521857339403989316670581799774023919415280136798985161270968052991151529559337868994202780352029287573849374484882809415239093806359131921462289367822662262879481136439417388204614468957084279092409194552369162572535517700969090594191285793854361916272412435211375597754168083227852945332815181968964999745438375897985952758164104211282368316206739713447451215413228803888330520834019053757771577820828862529519646376720811910745800510532825470286773007705469065728935995711389785303171737207899298669055217794115531647762816813319306979109660420046625752207199411375162191468518487595017827309399621006429956823713256766611248943935157889780417662221786357724157779561074297249653733085584028035434551260210765817898825968215275051242867861865367662710422765201222477512538627541532276671434752028920352438626515449982589357964641738478768286160510357332131043460841283882207895745842630775419480512780180102172938040529153683131957922505808027118024791605013455738103648494540194463365082331047539817559888694195880223657954810745826378450298199077414370818150513544620176043220930846535901592011495103058355329331145662494988402290570836151896751781390223172344318188614174770716217352345365134992370032705451257888751957285989391404306943136122484426030355474349715604507415966167739313072933522846234735832004654501191382237641093539314789441618726355668380931429631790064765777433453900693284422744941079714826763063677295566094298515986154461224137876343687454838648547071153838652381262563703849596502984251893780894509915920065829319394343861913856571549583184004732287591004701906582784959138582462417038870924865726125022117975161025049268168224638804002864832719297828680779849162416214130045561819718939570072735736380159987946166838876465818362250513571991275125919473491388310941329487957706267772815177291467471222733239174838968851885960904094265123475094453613932319053962230449234108699590461426628272243317082983493720744105659499087123160256955081021657754341944844032425052620682197696601937795047150490228922662844685299833073251761115662924886535726224317363486652890381290321962838539079303687875299888698675823857872883442562956389752600680910735023339047529804998490515397573267074243044241991862150300480794785364710564432103560467562140621902988075891469019183976044842110360007991167608515315169736951253917088555073829004739569171255310169478031564781924129022103116569455627617673361133569646852539490266410740801664181643472196133757334540895821666616180665830853277534759214731664368048288368008501616097124462786575094418538239777089843255275935994733118179197723173588008991235293952080092573857038364095525440293732336521366531777088606589166128183554064627914067812864775167543692936801366685463841403163158676028099661686618934108440136624273291440708790233879545769583611512390063667260383538832738762937994353416805506963559541762752554721651543661194035769160982859971721088879658651541907893852545251954094132960111675112657507003364896684683599097865961990300274605047445919994640657746006464570044254640112073107679635075383371695664380708825142740137299891850458787219497590450228526755396425076874490057470859982643159011212330922359397681927985935732924484182528964913078173357750413588222716404701481442656776600592203054905751383898679777541033730918388153131089640234260889573382264740161844808181131188460867210517701171894141668935132840593414925187433011415908568378707718347610277424893932221988582340112643216761458180010933873133876234944083864025537210288040506984090359913884451832348037346280286889653044473431415407651827536638655336085384756458025196972778616844357074409594965898202443572065310361360584097904618194067163228878446421805738034233407279967973713777279679046705341021860631063589272237747199085266878041581029466660147215384638599422825298010532562193620322420176851081563897268885180478927774200698514311382734139760837418584026174977252182439990143343683326202095341449196736376162571983181363468547307831650206028187055790327479373100475300528269780451473182352376801411938218173277588795808826904625945116444149019633346677332435261995513845640713492835993143249362039925354186911533765441677076105750308417152182655474021897582215971427004551028176932607154058747241794827442184846249459019112909446287027565150268587836239459082975050419019601231871984505215317937955750519391365911928311756208534503327271363147715608705335382137660161678365477724139287692686738499879046117277810945136206720210966908294123997296738506824205421847238387675144815355715548215956486195783327104307321326057346678642050369832727902165600111136658183446896126229867360257350850508067414395830108469451076789100837528565309595825019247747688444283471098862773696254909171101397042560085980271222746249345581137372495503032675492651800057563363100380741707329269231651343033607169094946572204245388801529534288659774944100931029390037463386107475711418605341846058100800670795586603241056405315537456794465576735087539110435378077186450274613543973310752783241871779254761804165535304385722925225430095459632418294547966811685596289241595496503597665454047324051292787101649282942652056805027234998607407236937027406046711901660167432050952221765524050307876029568498155938126140436051023163637209119368025724942008713289736152134439586687808662002381447103848221342084807914139115973937453085964976720369085972584242511234441793954867127383642365813043716132385050779665606935235861846180250810240016910704499418975794923700053181411094671856618739145556572923128497879298736697128672444922318493209035818874851613737659176980418972672779486771140165669100439523544659603790002548973669729921473296111150850547264390077146577631699271884609997761066618662202909987612865189443090040667211332344735631364929748639680366406998758053446327852938029799913251903969992485812433752559933593177096019296900571449651272539061822798137642984157772729133795347332214429695906799917132205333407808432174456013063179755782695412881877445886163352932102433274411065754708041549771320423396642004793076997177753985882231904846153583060508076910617098468691727097475286335198952141003849511714224693794633699164748991863098373008352788896380818691671029517997030839043858881937844551700440896162960551063812666055967546217476830429172498590680071586993841129917832036492024194417217795761700685714024066849777381147656870139604030504530151573126966611414609603741884134069568521418225430847774283938818481749543381577985977601750183169888300045788666947665751751257767461107413757891834155103696759061422710063615465919984183095238984146013515310240303849911735505963086598984794128308745753025347721604415002489521241006299410624733288893215101031170374488662947534871925452369850871358760261111645742927217602096045338045667387975986061328296161913638079969224950586187530935005983123685661081219656909882971237344891274866372823993773491805256902659236507067240840124529980526806646231527366875971125932498237871444848505796656840286897727579341369575942336743209727248354087876397994932335123732579020983267770485698046617506592909247825431008830197661720277768241526668829325259098352157143810649810375107658505386074121743142143682836000081507817932016376487414553684646938331233881558976064161772446914168584440673874696379683081754967473729011711908130014488507184075515924287473952621075550519285252649900824640551174641927627314443092526430535038958466287035481027288389291323325070076306366573854035495948419944038910015410819195260346214531027809500155917961223620110646428824004799852628633079841801062266091109075626934624620669354473138445009997701163949551492002848091017775910893100997456549156265497174680526957164926759098374023302309743874001392894606876591158392005349945312940695869850959700312559481542640456496052539887365921075985960109351039428567179234699771347453283774888324409551683995530645353719612772566473120179836353680039386738520063070794771494109025422331659789740569391722040875822710684821432484272494493051202218724488789865476999235051913154937285242385624468755593507560769326346307466454173334809093175146030176929481409377165845617614035892238811616692660458081389488861216823407581087817666284734266529737687674166861818650052054491389130615422694918917713898498740471433275061247820724264348154284780940065019111327610808652233133062389717735993487997295585229362650168542797924122059356063458415295987569192365912794925451815856922430092302361584677395652862955680184666307129548487768530540347326482761311486075136215333261638358378361225702204642317456638246733198268622107041645770266604976706720677107469630000288606226654100042111796524324601465506992925787902015289302989913865814104499485424438895828164231426973165127673125250845639962364207261472563701296161691312850927071335338333104738438118113039304064129780244469410776776591861848435591343256512734271716919068002833748813046470539327752140071797333983094781454939303996724453889796024308706251695923391570161681849622577544695468555540300690830410462254247642651386377247483741611078344829769001685051510505582695768879675626387261013908697864524650130358125079521421723962387790720536496617695112210468699128792144466812116981336368885942999057042076086442996802320689708458270450373220696451809517662064646874179502898902396351581501566158669708981275146308686111617273311504820499306761274575152379230308583733114171865078241389414280856861636521035540543298144882956258631660608382152891326142113169822671434855622137892162163596832171379721236429941448602852337274175399742489529356437742609191970904998858070486563648052374537070952669183741916176143801315994384263210054192966507053829096815602469065136429433161834307244141224610073290314002750836115140297297833664919520724712304972908246549571668810746948520385890099066409750262000431151259554154942046859344343719319629978662813869425050030461060571327520787733322083925440264726559122340682789427862266922304296236131016328854731808482859769690948368498169570060326428263876284299884726473446192328099136440475083210205531249729063392152567168191561689660223476301060258771098499897707949499260981554190307655678334830203689901006480527659694443926438796221451768430297108775389106504208788701298936476335813082977039499064119170949657154298070729676997258420832404520905774015298802475605537937635435096553473732501801265126367419845731935352778244120995845582112260550189142904601693144245235967183281577404541231306452470991376579537057502144947093303435851976362792373794520667562646610097447811624322187677917919296771091566049069178292338179947867576686953583666874934213642213876139063960869113174620945333511253049286952725055674547166959344967880127547456721557592623764766248808465814816737691061460946640084470934623508203610884988656582473754414743477516333909171531236349078650069574686247925029726735096310082158050969324041216966093938392682950498317225255032346177016621025349158458584399452641276178582062969616383738742605614769469266584843113149570796611918300086550624082281061805050208544095953990570843829788262733968790252554559025431447064611912285951471443205500745813282073337146063538941513089456237549495366283505035919173793442336809960895998066259152285594208409609879442397149454001752351197354327265542276962536377118783479687385709565002210420141992327964697449388661044238716567253949423010238390510078909298181931029432143332670882322563477557662378599208749433475441371815172952624480208925612735715179457942073775571075194564271489244352598217276581905428704823979363402026102483331448359874162590567203019885441470247600932443735105577426129558942346801166233084426992328449491337630756112281895635933634897223699742714081855546615706493554032630369553147755943272204780716339713992381753018853114734937165525920263182570183435402032195408662264464041255162766291897699149889344951465091388009581354239913541576505125744330609540310307665805834173153205643493696283867647790752128186533114902808080747359720903403894806270508193774573114262267228562414161983114774196099879286570849879453122726549906514410062690699546977942668092200444755490864737659857416697349278386874436240772612435060146391944374109383577965621548859994113847159308151883666421481999779729861205479509323475437764243405181769396494121870213092856335457121481996239828123162224954995913680197820923909342315977481068484795738420042693914722540199747625659645078878746447530193136094369540097687156376251570778282339122454858061883749348155331304278609285000268142228871473839069368350982388706534637285049225070151833528751031775021973577280830033365665761272302248608266993834880667251908610612021286211295289696829738354108803631101047299981175772843798205061159958293122428291836559813006443713008534289081326995864081595509734263874940109194692924092408788058407893350465424611126111917319084133356152625351392088128878980768232896286802708265650351758481787695615948003952299863325993210529084313983003655575876927247508456246063569633112329980004291734591862989784079214763060420528941934452253243920405851455109535473481472323041508453598110671558422928053439032869623652099259285753527625699584554343403306351565300434125932753733549002381087757700710779893184907267950249975557810086538815834966866402810474580615008680888556540967497702904857212190283752660272538070311747836937081558495151955885786063123833223869852852240046068878800202443998106961553655794228930660839893174896191464267639771135752959202880548499965931344438761562439689591521587242540692588986640964635836194670805993693959250747849782530470163691377695935180524947610228503936046701270847741674295295504956714375318967023014748712511658194569856158514506286584668889114867268938395701162226967170084447689295846434799402400984671940072639943202088212125677398517585528847137122567211972874027684718529139382668596192707632217331564020733720086279035256805408112753623168592059691366718862697818776245723587600065889425502413152146667010437759010713873985327627455801013530772677738943623383982946258742753726323019269919145461030443620162543134928866871079761140301931511083539030122024474770918284706906036291445704830709017691783662172477438439084201843024854208483683632420067345745209787250904967915887973912500213462166018303550788850332183234569349745170628638185440190443319709550872224692791608110246434844956763399658413607229472308885833290466729569501614602032115108657070592762336894507055239249377627316680131458360125625369047544292678069293167936734958109228624141499708931963351540019879912788005166809216158466508702348458780870620286217914689749849853366211147500132475825758739572960547245029826914260964029997230813714591505522688949238678178720021766008198161357274998864151904992485935864863715699030739597016404172320848331373079777081193891313649623361789303072752323216619301460971895678984380362982963645982160012166698534105805265805271244063329590163644739059409866159090684446993153350579128344677797020629231647126963157543492047037709574402687985715734636223509330099882854976745168553066532198180915789648148834646260891400482616745050898337371821903936740722184015816971414033942148384495054124534536717932478584791447759101748196000913114411250334797281525486884665887497882624473431085405753997094301928454203020576764584367744082377726524366234376452554465652702526100329206731365881743885802352993875037541630419701634659463504788475746878503043614993871078792775600933601362676196900034912298145638061146215864301647597333739095877644918349447393012102518203734677432278709757163499016633961625663800917244343828406727735544133816330217493849070191565241076097920816905769032610653096077222366643724551751009663650883776042765706422074218480079345663690615269527632047949475246089370438056517018752626139948807677654100457428467749644678899978485343686704493996742055521380569476684096896394064823970534389876930770011982690954516569336078380576054851118316411501208605264490531403323683164576254524537259903684844100281494506441740568624815783294822420830526624825117551807930570361531765261191742156679460666032483362556382628761066608858302523814847645183647779125900665398083909731116151222689111396584327209534731866514325906414562309942797031722335834461182603925121709516589343243388395885917525340508779729729193734684327962026332350676758875223520654393471664019483722784680393729058742388812676540881207501655807762205626466794880413673847451888801468311413372589866854853761526322498586336418912416428517161067853039412356562310150752100742445190700881209081528425535793527080674702428262832161998270306338441911519548108829336059206506012844190088157380853552486644982469601137099474041481872113989655941241699508130211065346566904827927315324499528453182731215080203736686075117033407073873693326085708536573468263385944685276020164715735683754111839843572232726622414586624501670925693986530195575920233125188469239645541623395677008523629640023970565964303429354631539927928361746058250965440519050731650195847661640209900183220034929226918590027022083128895395274686203169365890161001878358981140941923205990463945395323958056860675315879767758445361235752883645739412367768901488712459427529850047829126158010111230221253058686795239331036634058232582720767619168580943572659813668643400166816454457014607386184772274758174445540483054318290041947935739705980967641677765446843562104597021219449806163297905674714910208624214738875706360857980994581812074540490022422290078210762528622499446230494235452539438300783632358873612967326691859208402842229286491686327300144504850093124520940962583675501581270968124537129111947623550287650040371346498238748696722052365814767192433895531536703613412679689067774449856347926071530689115210005885573027200239193295196204245945436908033399545988736171746912521280505317143102115638041301185090596501409395684935404660315457458962786050453421498910171557094020563625268578374349898547950996704372855336828797059860852156744099297093754983887446525390022729675984328670726906694029298565137093945929986562310421480793963631644211948134452142431123895244843480105760471990180862203599652110641874540106445790344001313379860544441034847490549298591957742695868363882805017274275874508653075163066120683042247315592334287410307382142390197295555656517000700020160414763990308346215322646093324166644766533786702557440834344248553955224463325307279231554472089540455705972669533700987067736200959943309356031863956420786132843937482281483480910621195500895596912847724815653912811667176426744995543818127174982471552916207139798246813234192727912824709842559003213663395700237158771382044383817401385265368069179985604861771008331044559037542807777064402308282959844442905573028652065673086313558081067147827881447854014376839306229655472345550547112110768049960375381436658235217452905646900550979506411817897090075349899549248654077100531226392376372429550142996665967916704396758039392083385118015232440614475669548877646726788030587763621958172642324910933665610368969676199365868222864000425192233788897872327805140244670282149623941252208802815317296981555751372575189816538434855331295135333474759429078248840537751415730226557848745549767205034846280732513105216800070987008041535998570738641732612148987403887129535637679138475488598963579835421597492971475718314800164539565830585186767553438362199634745910920144109332177648355765926513370865768173363700182950592764071988093378783035955595349106026383946647157759369258798190467629936738078092210721330770918053503392781840437095126018138107222974673901771331548450336679797886655286810993868232878917129980921360909054316586421160030741000046152751136525780857142459823552977002665704314618530538458460958602736488555724794804010525292750078736456358492811769681178373238820945137435510385648887413270132640655583807083869689567594965929140921553732948854021087709311623394502165350604815866118215596159856153687915164832388546492116127887651444407918873616449193447032511294296707089732288547708728276099466473939557739149115778947660125610953501786134956227591427155637985206564742831328119578871549497940566700888061379956678450667051040548182610539206069751039098617711790507099671780143716046040177749382464529941029391378779484026484468333879981602401299342592102813763559148021517842913002172853849292111987936601885748628940843030293530430192114899351215540132491272954065587207187313753244098865680099391298064973039563844107191993452174067004836468135243923534543310322828838217607757856453915417486499182720314134375758648938775261853519079265376328841364743314410477797667043810238789327329359020690119682546758785215582495261784879981548074264022646777139953601277705984953003809614434920322773588456920806494001618251920969573042884907936558507368662631296163786909900517716792522589851643414843430592221132864425631197215735591153652047237787509331879633454677058474888921523901889571318094437769557496384553483924585431906047394863031670487531049477701032675798173757961335448816393092231273490585027521622214872006298331594786216410053675709697160653244572864472395179843218727860351108409705799472520849336640481799640124359628481148707339233011509455786269460918927315575764096767990286396482367414170366958793967099082255245394669559381625338821711242965108757447376684681213431929370589490534618390992045083909074690433340454476575882757986200617609358028840664990546769600591165212892086060437254789301200514292769290329348845361666479074811164820349171338168085521209689391680104184797627856404388193125924165329329534106248513060874865088078772205711613870658624210012210085885952745095009858555782333639231917648531078937059686680489715080791650268599009782732999031260320042915310661210047925604208256500960524138070471849760817632484195223301174964673748774808930659812747461974235852282508151166736769826546776894906166572484872007080001751028040401861265343272334649969404566916338881459480775447770880260604637381749369952427194598034060634822292024415510456334324957317293306052515900692692704070202020982740469501379848443312204639565536084405000132176874613582721177596766535877078804310528723321964036333486349187042725985060602090965705727266814750190443655337522696538142817495052040483973526721120893392048423265792128035562395361140840928963490178328258359034734171937377439758363390636197912639221724787549532232110514388111898889425149116000923257834017995200118783789517238995188264930273328354928432184523832722424355915845324177306227624098094480238370455293550586278898097599890173407369967699764979653890695282423785589344803494785335020750987574351910399940502771937585353863418849940516085260943806152967013196381615006932011461944982391551367937096705231997388303569425399995223861099809501718999606925939444359699673115427973485063416612152114090762854686530703227633671641631430472110350461029331291149598634460235610853226831517167531196575144590754622671690511385422086507755904119000511407238046453449741437667958026740689659884284589512806599842323290079582287334592402738149965662059083592890586832415372635814408334248084718897771884661519985686237857751872702348787145013290010598901455481915538223436245440022143628013660632554229521927574163841090827883793416051217246552076779602169122474190744353707978634612129720650489048464263345756740544113523556537668268853098781678032695882240496104315718190783105342717227437278168203785706670017038867474998023839695719542451777456721585632599042477458788905054925087704701997490843000485790841974382835336178422694904107600735485262702708389684931920466565358595388805253880529818799444996810443196176820076607174590372688754175383583555157021800518595859297513634494138246408537993657996874104908591166112455291439274120192828188165335610750431116592041044538003129526479422103444056349606731772379141681497757718011217114524936280077467897696028226724081421356215172063073179042349496613125162979879339609944341041031914580708169891475892778240528262802994814424367355256151723063207546863785678718990992225383308759034929350485733943272092616994338010086118273031215976383357440081035691748719722573206794579781724103407245256653565299867792007040353014088594332285706252048173932178546560825413292049880563061183770424538178488364555171941788255878607813790527172871428552904582915443814079243203202972706742211578462990008222496379049306490397843851903332324153945340071627028925391574164683743030601007352224655842237188098539897269608879096544967658556716960279915404300191306883767778595217523830316219025113858455969406993005467128870585422521965613673149748793686484548160136225720001174785066744517394756595186140485179985205715600190541237745663090014158870611145244324895160957384662708900965581471461281242771133160629755804872643199194290089594512312894157373053906821734021304983112585366057566096376182562298212831043969498955101812871317418139119226339820262339799903209990049582540629666383432874699857277335540451757243568332158030338199002023390280808119618138229154610739215074744674971324171588134348808173714970584217850575784170627138576511676415311633375256570407733415112171431437919280846897978589924519328072255682186257595122096565921646268253759884985190779310088701962565116744937527163445142371284185063828641723018730074807100365991624600528667815455970604927788568603465477299546677416390041237254644274504275177137370654484718239636420518903142960029290704625789343465908516049860824242970997778060156358724053579355459118527154085958165973494795845885758345253563606516974661230189932473294999738802175168453726759056141182997381355084026067688928783958098808493048514289880639106719074438862823101502261126665800026354259126836642993776146252786103598290285665012462015287612047967609704692136809508864750656818825639921306864312287204990230823080695336411181234645648917662846646300390436823961556861731116536902279653895183957468669598934035570847739140667037605648290327467178626433748433577215585327607399480516101485287843661029271851921800907310380403261405470448196364125857112517981903267509774369168169832165321610084820906493495977708519473842991770803299292893811995554443613388100138724548566776527088060474964271230262802966180210579337041584967730425407040277016466518465835903172575170334741447756542749372494931891061757715520099152428258672426482804320523001006735044851537511438175953393487783997492762919317135574815483365240685052951470661272909402922264237462205719131658076819027432098666424620308548214397299012113709606728065252763381587683215759437586798096771681160363964264144340617359694380874952262193352922446128437815005586923090330407826764352368283842496633926196776707685633579278874437164389511799558011501098039960974111078885329834729648512681796312231257494870921756136131960016904719968967517020763685547954566194170339772370849290011112601589290559290770697455605809539175354016324868055547704426402395921031246128738036388577983482951731711339788174116770277515655122688283120062795418217123475020308938571761289327122895122906571771587417518322963220003066166478340367359904193186710824919592686249433546753267353931083882131497917413953553611035896547935622781377637012456516981635941509231516672300643093283333159560375813406395819128528529819248415632314165818932608584672284536193246959430618519960167530516704582698422720525314600494086723445427957630879279874928793735663018196788636294449571890364540010650132965185531962035737455971763512793691873416927871751931305931554332685409450626439371441525656704396379961853490599259156036284535342583565100354423967904640157762509443975427803353144267445017338349574978169638333950224854275223111661214373630111189003103221766586604459837910174568338281983407177445118289896757636510726400452602582080440890142474048411446170540264115280870197718636722817641781531830467691057701295106247006151882950109832651215754936713595734006495832048161051967419253177831306283096156231810224940301236493053185320520279951121039705870398644447874885357622826182684111713460141200345212014879533150271498321002773481800137857428787024261682335836361180049748132730739199581716178471704106172024908146209506403812072773740888847561221174057104563549279124863398820310883948658328668361671225001760175170450254034588510831563266193551321789970140002121609301088993293716139868062927391739919593782179645924715711803044928637509766049389680909185635787047201846284611453390816415401323055072728718347135924727403875127824233058924042078104789731802866343981309009552419488280585569281471178112746192578709684930499513939788863435614110921376471309519497688119450365747274034329843959173202869115982712314815090278688150297479524581802345831909386721356057012112731544159630220155401666560174411909190177334334544236221697873675932683018379787791543204482333878560765641046695918858018883198363873991002453009674448552646503194491076813234482618038879502653273007339749530672138169011936673046276041338704244904776572351079470457901234614872143257008325108193318243554177169568642995567000624237100800712287233698087615296371417041949473104604438771021083008562050131391818421492723169061715191193473181726243801800948813044111003488749086819095873037435254286730170950652566552781972281555302610876390020067281025228695838859257217083046568587794932408523742280081152674021978588286412671997884306686294623994551056347946368585184772892639911254079561399052704933925170893415883639063982738980619492692244185209568999398009340607675052137725590198480982910244227113145658521158861709411898520280334901793753538882328677829500631801533248340496097380200341901672375508818419956833666775797062454777006634083060189210390983800194425115014165108102582944925365141837904697268104370461300741149343651214258860082229736306059607467748916660421185949187355015594364981149300704960669298424622239736765529637282667992093958850333256406090623696884416344237910391302383593572678562314987250877965040413341782022842861986065610064146098191930142415926841318682425913882395775639978952458332239771288432037787377377497256447916782785796240013901280259734180208696258397017182094514860589854366592512524592435015870319708959486079627632106887111229022068677644366070540692317369974615642641815034149109119026657582399900346058386307029969261013712809651957077720645463988651938277068969721869754340667206276921477157383242317878120702818587655636315354359952495532033950455409509708869211465722085326158981652669864318372398307122292772792633144258492313881704979987179940054241203969752634020779621767647869509552747036947832994566829039647426140638043803145892306234308724806862312245487716759534675112667048617333662380274055730814447649227767353361381749749854835172503686099406212103421268416446383779974109768148663987592163816019198452824633932353399727766077288810210063682776761818469569586399308492211862518044433987027707099912000809191119551498445919060334465002534405452509506142583974739114796589749009864127227137241051520418720496425653438263751721129290644164698502193530482411143040191836184593107104118269315082939677415872409874169097390354009917415784002294446342555451429518677775262609816501876546878301046810940537849203525754723426608579387829920456278275049371817887106998242210433668513449601782757153606831535198871459748102218639451779011527886491484541658582181710252713668120065575308383280820990603834382942630246978633664086285361092745389874420214404398682054283986688328413735159949151139546272068992279862866898749396277920969738062985227279673858040729755650294850347675862966069883689679957539777900625197956358042578061743092902055868028530672626823756028289987197083991207701383343748351307405452187835373389877801457583386881694911450973764530471844684774969273895371802931480907772907285099256895189720225996837944750641856472363294496918550896406180376262610246323931870175382449787616455892324696358718104954478637109142727168583451059887666474310516280774328332561627921112855145818984403638915018218419130273796088175088942559018287602751960237044104504763812537049320903253969240128004407227209516071985958604427958111327801908899268648881182033653865434457943555226779516087614516508147242420123879681610251437878592161009070508193379739664063909937730128218595490032311143721630149897917428203751523796069742233902151430843446958935116386336569410642705619039563819965559167319747067655042318847310791138230216370064563514184622918311287546310213875224395701316843227900734425378147480982546887537363151061417740590606209997247301918682749346377172852978645878017404901612591252258790516377818190270156263523045114410964649483911610576023619096162361537484921951331399577083377954828388603972078743500667391160054999037247608421448428653739072874805623525088847736314608641242152731004157387922611724416379668512581299214305543923364466702404041285260153459355951751941979466925264780179722685783565402464944790781467270169826548911368022612079535128996942611419195282135234386935650651337973437364427339076476293043194178272130042695772334633277558531227446552022281628868706820172300244510695003309051483489222450157573607497934486564693741166649204177707432452679035445427112016987208306948090131058715378562382643124788026107666167896957117663700618900779693338722728118176567692945860932904139029576458906370439444693593462344966964871338746186129501939162700162446166247697141918567549615327549494696801668611790653609792278130933274037471463320753646205558635836787881838171717670303953877284153274197980167811254761030920963547960561728853473999089005568360659234627183755503064326383736117421706782847645539908940731363659948611955468714447926703010379371356767610635673831482628779809501721676930970961943312126562265187365903279104595194013076334673266712854252182319349690839449487563156161854332309087779372862638943324308489673776342115501342929392754333686847360218752295676585001302247312892685850703633809416633479076947506541753985850807366566406195198549570723487468589319098818543404966953017425950973007217108519103872854116282334055756955864246375523098410309458346030548971144444512025153288241456134016093888233359333572671211561795913352914301016723214516676831709821498823120819630653104797818823706027148970394218152926559472924414398452544997287033103009312203661739359094096911984832134091296540341211037923319925581614937519808190985738909203326714005515958674949672481596805711341002456036833061843412842107866413969999686769244094361821999851631098357185695965265530059296554051284941702916540613577636300915455540716465935182204325110475899152774525935717865783007220795172333415510234523355875288228859925856362128715432862255114985896248369509646093225024728372630703551383588977411630615978718769759101119579354825855677877953616794913105094879050825997581731944150055387562238894403443377167908268915339145313774396699221210595909906090009072430289201697242703910516770496938358434247018395117265699834226752932856821023326553618703632029322580318947755125179463856755753991612974177317378135573476613837388631205090895835975169255624047227787300623772906879423835575294229425521582386803084216176113618355132167681528751187521674872119324110195684226797758009598833933249084381133095545043756396524225603817379050044883705251690116517600842577287588760209784347826475338145501137551619920538785349949300104874861930464362793087688898010820808183497244471262850317858407014432024174232478830195732391031892643547949572198538295303622514728781729278752592547927093074529464205537618088674288482573835361918837357433676918208622684534050919777928250518496628159976285664365824621299149396552197709840815149486160173706308935032300884241870855615168105481413759690169395299168254082495062619003586689626378562801872780603308005984798041809925378003391010181562585551492163368940438434462050728809972146600161810353346308702067549315799951024106677493615010617376429245230777844563530885987512710148330421774469393539360159898831950365666314549702751442222746930680688738080664761306334690708903879262934316991361873573396524084759020363508075905784268484374919218370130934569337150695781857016978501675658409724464457379234446867748911433941366281978466149093384559647926063054623507506339840340218266823512842530627143619522823720556827026690052723146611862398591279284785618057966487741081153759494017594533528551574954882527498294938818441675520338132308803035562903544164488609599427944501603272983581301785919079622892062385109767526490161762232610686162327707748915858658156708143790949988871054085366843480634936032116744697087569373122512421942699883893098489283715047888245885751754930530363976923059556056214819518322987749292617831631669795742751422814462880241864416623579179087044584641414804974664284120370402144936215514251518774158917775599664451899564205485066452361068240553532995507144422956709646718839776335035492115206221017278009392151432020064586544089885162446110478804612922017919679342239710978415169245641045866045754406537582662832673312659204418210788115400761637468358823108345983217296757289039482169507778976489993300364295924717644757093602626965875058467916311670011578314283061593726280929072987649801567416470139555667655314360940202131327091758890277007694430443794019692639904596852865545718528241228259615935902994970449140797778495227558781109970696250981524545491469121089612407980459954694982397052546253201640382750854635656285982929542856715738276409309606509150731940598029940360459811384164441377896386126908357339964638424020056745582170635750758233487408318877640794261097202581865770391473538689445966036468715484238762980883652546049228430869943862263087726000277365190103377102694839770987760221571717097742463961302092138960297611324688155163028983234493694287094704973660783327402498467931482998963450699843825863779626175984310600660266775496193150717943781294249010271117232224324768489301515005356783594171300639563040159245894899548079020507040576386456443970962543139723362807328176396371546731379677499856747274156591219013782992863159994268951193975545710506274665579103381010974893781864996993133438519481920253788132099756282500806071291333521660006618466774773641688208541285386337699644542536585599036821576925861308850371813693161046337732755339308119879683348532349284177455453903245332003033477195943155642913588567396778256591570844299514780500783554447166504269537461696866517710778030592820975766985664430151536338868586014617131750813393760796156871636957265480976718558826992671641051169590256298726810694600005206919185441303311699518141751324574941556384896734847361603794781802736918423400548175427043312934655518453060091529765131130498107151976400196905642621740808723253129223991722477794161582016511910586370540487336429625234435714519514872804300305365390636131063257792188753232609199711712771117959338789252368759807408362881452013309600447466146226471461881994067342636168421533997679822293783368089751669644340690469202117173536325223778955704320426697648587832101634999557011225690874934641518837167053868449035503990058300910390182207676186938216044049567212574297344578907469929815777518494699047934195604326193178834362072540408144996244929868337022992666819531126765210087157827860159485017886157478071837518216989906414476348395602681596170553568598825334370943559897630120980502611657479092084391963918669583035125212227406460623343063062061628052700493730988287966360312361644296120101961976920639153075475545349990740205508073286417376571090151319099754756705319518331634106266027126320384698805798393003198585829276035500764354231734899808553972019085123937019990860947973452429353327862194897676875114592625982749869198049193388596406702633758330965651459054112259354733801853014456937054678125762156123914037407627405168186205731900650908486056288819610107520609398322963126423529059462930362001495250280805835756316683146800432130710457401305792311107691999101913612115929461306336427392878629617643094525355499987521738343934322917353130174884891586105333687409069581984823939999934298677195883562891680867418651418871167764473881273259033641423207458956398893342092860342858595796950465092086146398233008945095864660169212117143270882853379181628880876203657927307607756589300472813528908002288250474146230112158752795420986971965240497892501689053635904229957999675638535955203929560506296509338889581683194055286974646382820614356644376067794459507544019595513378322966255607873791117110046772555489366396186898404554262972801011801604533180760193272211042624812853294268797600428836596950848537826122302867111894656620988450051428098073511613366652180547928190033414443893430728695315103984463710832859677822362648555086717072185003325660474878648844905443611358397276217043120725790927916828804758205057012668884143114996799274934747475056466272982387422687896233735872926051598274399401869660532633240237362394883718062047132905904012182248172931505206808804118321688470075060287411785392215077765817968370483486661388412949841085101620145817619551259239827466178551499503926043275273485968496806197768187793309988560873895781866720749181129598055067427778486960801259651143386390741436348394733071478485250268860848117018689402022764243043740617968494305794454400095770809745493691495691888028063968376068184565872402198115165323687674174071068935845298700464258174662904239478613070955328765925439573994514243614939989020915282054067951727157735777933296443189254233673609039762474056669311444219659245427105131814224608235363368625346357475044259942423221385183210119682899080679500275471870933057641490324358018044993512808819514714897472613361923542652918958033372816827594137857383391594635593431887595875792405611505811353064940464871038296365372933164629284027968987081043947529137245853066464765309005802798325146902195597906855579963764410394487907941963763935488949945266244448097361772863015337749260391711300411444830503484796714801608288950946114724319799925416777319467948358677360868194764542426401505895051005866886551193429312577336825306917600771417979029504603737778214012085387420561828486132016955761573844461143446224430958360119222843608406921892509748385747947054461940823772889562368307581845954834954165026020243753454318622857126609109534101926016715160439695956637705925985464379528913125431958662319721732900057780896073371177152467171484069133738627760381763959045302316691348496118733298285785309923402624439757317213942909212256569239210282519091102111468992883045083708144612828257595250937134694995346798240153574746751324152471088576025592618144145164057173060950740997211393335372981394138863324666974660082400765394666400131632952217623190012483981893561327831675639131637806543259235005117938293952014859491186273274020936968319895688725779886051975649140691155032611291107283902737408105908428567176396201477359730833593139042174507503972282779638096418246214658255071764324185606230590813333360424511413183876207789366660110362877718573117150357455666467395036237733487124047600158335235023062438117913181479904048081327683078720294541470320608321802276555104125862016208580542848401659929050517016767782432251285843531530737690425283200532334857721453867498775592009619482762837110773483517477374989805239512346588796736649724268200445141593074753035637436648084972102510435032338259117219500251174659760315116056121478608054475284407768598618222975148494601014798362850676537604604365579451495277795544257374619057132121244620706004859785334315907725477138090318296695104402544283403227320206961926579563513815639473614763721237274909232734084217900031052786809332901835354527126762634058909571946854839751381806197974642068576648704556101550711291958823655368495642400366209060210880748561057324830187991837044992216074344691217184381209507179296753800746940361319502457886529013135989107300020550732687229917882397456988370585547736765842720109867285306747338658001225277120127745595654344315554454275543207168629205906613319095266294215287144302176710301469459774092438263166811525356621940581870563906008468162410961886530451550552563509149303300324567413598431383961493694802135838825326098818848554219467068228480811534960158587081025283096302172692870623786746857327497043642349257354686096306609676004096618193855099556439891430842055319122916608046469705185270197681079020632267076013111094499252777022382553493751152033675334786120172381252193189968205288632868312858341532851388036763725240073658841586494111163795793864360456332695585265439382945275296511919297609650619762984853073865986555017722047035129109445859092112753200764903296564348969405551537196935743961291110651007068168646366129837883055136346233266201315675485854919448151698843059528269136944613806189483419188147586305761869140614346740937539316149563845453680590294161983426177900292532601530126136349914279316305389944826628217860703101517875043495237303171667651118524506334060090256152330496834587321880944002272287834357454813510843432368640476658893799973279821944870543660454362362368731108575434464883459012507980160983415573391215138080764050014697882041477936294065891015668229459282944511249906982220239242019159798134870278003102884806896100853653410474555357506116781336671659840731945503541499210562160875757579814145568385947878417670342507451946900565852817487185904286653377361510191615895000015623184195878940029418279578043562988896900359307048516034770591919866903505346997751625380217567307500350844198154321735395803504695681064111488532184723671033091772656267119697926248520390067814525060636873563382651261445481153909453564810685341985869494088769724941075730832199335511967183411660397085743252751593889948677868245950389478732534647029588877511473617875024178142421413605810332899600672158446139359306625248052519005378093192468697454792824826087513198214063220075222400566866425908440391396201954006016534438226394043690378396757216840499917619422592400860797695470776938194330977321310343546263195522377384033639758158691978482939173770857920587647390522886425118783150732891759071806630793715817843024778796968564819413424921350633834725381071505865985540598948240142055511486292256121873504743558966929892547661903364773806089773127724367104677567545827334901123079346597545200110183153734609072202338902428182113754461827212139692458083322310231172135561203986853086059159902658859536660977208746431003861691345485076336692282685604523117072137702010729123586599350649300478928045010916031150458871960760761215278639053034921867084146839239578176520771896937499877098637771639372002096422415724336795935922240073337423542787060521290329026543058298130687036562477784891659264214016469872718819317823489233336893926549918832984919817285627600198772256328764854214009191917896027621630266885714881665361438864648144192795046770086381668140096356851931877500567369138119550641772514851497286498881373644258157178998681214044413148508558584279305765702429337923964146326079516273754283065517085272528606844636336583454655829401229421630199560441314425099505950286113449520366364922142029507198660042775779113998315615157940700525650644674523768731952838427430050153320884889923326669884691908247421849312507470721112517365790696181876151850664340503640904438138485584984666447114286803439300768095494182588059040631048887386130710078393018551433414923222986705529531256866843988837374770567354430171487645787978695410372727659817111320899037250529375145669682607406493506290267854983098517210666662762640988290205214967002317137802919082873086175207753652660901279143053555523211289477380086983662357803281181363394158015397640916969020029104585872153584047422728413130654115446300538838688332337689636042079082622925917477401901767662718774461759614633664294903903203521162945465227414177886514767316377538310331758654685139884602391514941833726944545975839810115069098637963114228056658736164601210920099653609233990672619619999226585256610979235240062136191924350251693623378499330851007134808626823553277401201140348706900654446790134218862287149649871854199299800443767519362073696874280313022987996302731620970382021675927616482666774428531605229171531259897815750408057770786957178322891894135278807623762111686629323386311597463201604556466926246818300555709194768078008021903400719259172963859285983886536659678266987084203510495448164368288797456073131339333322390364632284039030450307293130754506887701237798110993860066558928779952764295136565830821486718457013600520736659904113662679773356501334952436082225877720287873518521169703122805725299941755852051569734130561358294975297250476553173702208821072966723599897073802630013447364494408672085200783896572015876652833024766315685189800380473770385942293964327801082155364137164965610630161029136819565178469590605436958902832117846798647650619328806418364773413253600658238179504721232437520656237142643601583498700216571480882971567358839859934248211789861321441848558640808065224502058887028613035542743098701089235989350703860522634595500760814061359253032051607373341781065472402841288491749535058020888101895037191956088918438388527717623731317290798947814764526817918499520315620936443163159962093168220319442897966567833843571909025939878715037544184480188191288017672038074893239203223986284584330232623801908704768980237698888820158821345406223844906468977879457977574449413792033284957722904870200958398472144367041691683479982120147632208341177456754768261476287650457594511768851816704822179806743655994896340683499560114271630348511997739434118447580871927869237305527866862471958629146420934159301750594739614105076914883555725987721926223588355133545368925939818415595250938495646849457688854756335972603907725271601568497477655765150445767699263726066915813660124479390256284904890776142546686524918030904753622679174554721599430301011038825277497855116018093965546420154133721038030201018330519948466947896071876944808940791877550207559391609516195930778369439300322603947378462064082775066920342576556298653595112155937682299264147942544663895396272748533755504056522630803549483921689434602909113058550197415010186464467181911581366505737486058701186677878218623688615154113550766556891029498722603425927220680039985579470760763029979530667044413327662402510964934685006449754372684427785383109278620975530055089690787620136073195248553045470172317698710083017417709567166683068330815634135068711493599175274275861181787149857756012969021343329324066920937209444757434408413407586407578890747423566813097798878912087166736753430076126876044123915699434210555675228632319486722088157804439110159345590482137233389091192569791684823535179893212806423921170051688892649636026299210483611315261989374291760827417674532015624054224448565467287711578225977317651470926501390091111260043412421449931713604347946672901962190014354362562491275453365784995325941064757252367451575565036921971204524811593771158453476142865159506666258670539747198069417376123378489045252819087733786882669769588954858132846946147008428422303804264388337820053693686439320011515014671472624254423077499194782677433412790157487000282626760368786505336763845374533987934384748512743955642356983809148096756702503772130001775487338569998667074627010541015794845147762040315263306389378914716985532494182391827872211905279260260843529711077138895609897062315400347141082289424378024320451041334849905674969770785140955366742457510200657746044253266704323700658888345588661614041620129866216488549523753717589334628762245054954314804820654962907699580430807336194684975971131662743097770981771472963219204914162985371939006416999863543047976063417451557420163200495760613033341557613763408233959974478010432339927311448469340328835717492564156335769321685240536387812732610872506382574540820362605071267841751735351821534363648807803994564887146992083145478738269326324144984021009494342559999862910059978041294317329570075463148031821504330175618445368026671583313006617029185517843767440058418326181526527231182657276082537338513829049818335622078428999176650990517956308157523896654681814479269021874483044086181531980138340443891457803013525942146004428817166874526403143176824518878372711053459335553534317517243512949021164500763156842218866739926667455512877721876880317780912987940379942473995434415041742488679943246160054893549520601684846840607704262629670820116326389733295058702597583760605549978973127780577831214346447277690812743757637007968871988764951919734831048101689064390116804516499384672556882760650531859462727516245039356439962902565495214813139418141664659914187831227296976863994337408787652501559833601433428263636791177646203146384237197311403136756980669099204085142797768927100807104570074245136073332131370859218655738776113428338826599072027374546442166978748012371799278591518624861204940523942727800279714616164552637586854632781071598598990905771822069144483156948557025451174164632149851235216466104472644338925383830685389026446391662969948038947429642994182632995190917789857153085508841410058878537636393253575005002182708547745136682564262561300894264621905094569065663032277204758808337264937036077538080735044601774478975536862531088130222006333551130295373782231611445362390585745635728005780611834424917631933370780002351589291601050582647025378771226910862653286128836773479371846150162406269391253218373990706726227642635144334618771746775142380607520110138195878408944380454528832056871210129187837374651930172977174818173071838280753312791734078564478060538036706002987328324373975986311905157919295690928844034642210677025390775696232063363552968555558586217959241235986091590220417697457429185033650725053107123522282448027058059794406963304517470411493664967396619260219379918910464128926006882752450699423318066982554000217086557774264472459985831445366888851627383362684723183322583858612974212609538835000704266618940578022517675094711805039140987639976135270452212433990903448146590522766477314920417341108719073791715900748686641075279418716331317712418095634511682887404329568227453041935344609415458455192433752486915952061666505284890048972726446455240463139508289169262997945102714132809363227163394023609786617643298665303104636285752437702142232082362122147316056162642755844188550599860726876536261079382898774631170826023372143265688044506093559744318485155685549103455179883769480369297154708447104753513501146750825775508516384802452436041051809763955965694198630607414714612752558107418626156158400305444113213654985520309159432457101804801297374878569021111351658122239452459581661886033985655644224181514547941666191028070292918255356803722781960542088669451560184859628795344850534165885378127322630825387831519662096500109690105040661545532210630392444288406494393272213261997466587428297099061558010195646201648796458428403914683023906001228117256760323657696803497457728582542955470563557118551153280423583132489324216008912829945403905673390426642955036156288270935844448339166682899304385868962987063059343356606198705819440189400608490841036335926626639563440381174617157689514239955022628677903643529120629801132321481577161894990530982422851297944123671329873110514951080532672435065573231361897086842633713543476966140222163861895390569599133139621540158469262920794857491515240477400742297360352778422584855397979874813364080944628750578510434433190880726854320248439178931840395773309979614093737314996515179348752056326242522564295078029530562801586111046940868310649008888124041423024690304341399769021558558133837971628981238401146000446467212311436727116804938724533785447469341742051477165074928547529844164306489301952699359000970981403481837546277187058151706374568930272520708458856768363397322701892753312204460771983774443688382380812455062673784725491256584769207641926471172994549899426800817299660732623133341127804920846692455846464415216084322427670352550428010359769406437892484784461197277527905735564291058746917619292130084648744335305272020710698401712990071049480425912705901172493891904233829274834641876793054205714493734277169921478329080986867758605071031931927099930692889503193377711067938039971468830120753228460906625949102075265037175898724977591209665117524402351283202834621816440383769457316211539110132845775670799228300030358590800102057969284848152567281183397486417052760190600563543049607445219390169943485768170865627802250915785526909578516721431735174368805078360231098430047222304549431943369506082218464087250748054564923792872354419571111453570812525586359397149778237269681379599238278751687980405923958614384574930229561637126794040987924096992975824386880584886763943768547348659057330243234814640682783605215880671363392978297117282035656970187465243857602951833102329372735407848782078938920066662265581266749633729190685624960423964852351800786911652419829267841815043461107596986772745195011794738112132416806820421041041054339193549253291574205386939836170688651904319610622575699574464256531389408779504116695978822311253759370804619066908910556826916959406148513551152427914172413498978828023599129166878095753998456959592154085564206861079213692933916197088280252477335173690594614155619754916640854108555090117061626520167775929193929717233024521131045032195483349846264844713403293409275131434922430671412275991913187889033737564585355269220496354722590694121188315722487729039191421304433018762808362633531880294893216254105577713779618955909311924897186401308060966608923233380608552055410800946883188415483015538843078815523464011419876728640174301939355640879289221009496844060770313563106761141461562417459551014181512151433051356014826876395879678265974636255560568589280693379214671819918917641939627630539711403415886616984835354351717502248084652310683130211051081637142223705823626683931998386522352703240275112381202693430670305296401588056014958736523523028910629930684136200610091593907438091565156508571054023183305377439183019017285473396975633643202837823244041075711485740576802190010730954134497733621395701735969697068602922091223608573029382123789965281795341220328983714751044485792124441604482087364085773230330937981874820020136272600307274352943052439725804788228025011396886828068593865587267311597273523738944210457811473464059157448800393354272286474629557769907356850860047542127267617935937550564620081984397827600315841548949799699502063616863363577829623643385365294263319518647645118684339340364541180863575515673092529707873772531361140665955913273031389773674086070698512736883816825175377490949162943424777645399068887411976243396776658342734175203965905838380965485992796096416037471117760727881055698196301872377565390336993357201784572022124515048297964357473633109888532802738216058175954090717900487243748114042765358300049047953404819535327769626233353513018112721156375909190771252397792845566548342695307177003686514448051644430502183655957508362430490245389572256476023914291123103430939917437078933681572880236598048505712103805357703161027706326020985613395870188576641613694925783398222894290387006822673756021512273924150549757416071938121061744993765970495088139891613765054366163401468650431360245195570087949176119357288944495125771208076488015441667653294601930974704495199213625917676225790057294623474839430622968564047033702592116332435540205120092497554977298489902358495592346684425089847166678442242705939485816068723591561485494424683670765658192531069950229192846889572912405777890651163700289775559336411871088658337825284335307122541952833565194006453321292590188713073596575220176914790561924972589543394337809224645509866843354947222584339279623269462461475665322774549289361684591706152575109488308138769860871622355985516604203704734370096581817877002172697958689186926634676398685420308362749681899748042848850238880707576261779693375705318797283788452252589739742470691371990236603275091880619103729949393768589624608666098922431259249830675773293388084629828539252599216690229208462389359042157062128480965569878770525838930307556914698438133446451676026054500384312090068511504992906507390092408497809479466130967675787330257186830875839548743064363796116092437959756182060808289952954425453408447107110887224132064850141055799155764947812388405682333491213569875347253397323020130359885864312489752404329289434187910924849980862170581706917769183386969108268874119887857220125549087456586306999737169970054708650496573112152498778449182368057592511714860639056170058145456173371340352163086191926677289431535674457048735765594306758014102711562039412078147968061977727072814621439569658873932274819518626150435923065892825958542412720922704193857550612025581832232998308648720872301239258306559892022829597744653318774079755904214034941811431481428171365675016292848409355373053100743025135860802315228308279326775666880593925313331804848156195753239068652343461805953439105899034941276897190741013686171678303354310926496962438787715025807467230172020641493711797278443637721284537760316091514520233251938332380870780943532193808626984953178742218844344894430770962421473396769167560325068913409547167587720674394878898911635261757603690507279403693686020242475271155518400679106021418004807728289277329724661477314122554575677785272459977233227649304965686270458664707504185382572538675162331300359448764604680560976935223179351107361373255003695887790868014433778311892756424357672402294670418159278780646255258986549025529684321195238407340405938818555011075843483232782074482537815957019326459436853647286778968838330891614715849121560247173066085189300670741602535972130275284582945207365607666666538755083574907954468353870005311877515441676287282984222053095079151773382359209160834641775453593225047634016564199326138548106150798617883910464290977564648455165873292405204769101025119054239967440202421988231882991509254441737894898284150546726712302854479613472805666249112848217747556891869371460115085951271893287864386289045484840061821131627562315362590339561199664372066948258317724593793089487885359216526760595170030403548092996701707024726590607715121935576250886759204705438474048644459146443518844316151102269048052577997985328297867608427710988324144504564467184577570646497741445881570953566408557657098051830445474158346277438092663088675060484342874309804257391889231519375661560052772278456505842978706292447432184710201129190491459764127687012519450842302207996237472610103189818301855327329477665351746376328560585403587737568259106660102067801343739723328799532276832240906402940640380799889281444344302508782088662735191689591729226739382291965803555789370099667404081995946812143000480838842320936441099135410357864669127096556939079269756747869579668405713108449775652431640843784510145219706416823567597214724675088748955855974641868325334546950767978096087136854065700683680646134072219106749115127613013871911686807791646642067134749476068234709945795235848626027229842803532045472131605133217254048010978954286780485242150683267332981104391334020440801528168852559558492223140334582677890867164065215153587673998681255257289877228408312640055787086201514682433866968750234031774931122353475461454888680251354803539957748189287170059530295183027988238199322793341893047960793404607706476949222992676749648333248415381607474935347193644970097108326701658649479336977298592993842257236250566220447004135611826131666021371942097455995653824250450786136301984762759892642272558820980545478696483033591053071151446615733652355023171934573159258372152477914408105703635739001539201532369374405751417878990384492596510983296899328543775787902072940293537082472217603490147798463226852372073632120700991309005453189388127137381327795613543535618418409318644844772871082254994411315333608525084306278276976254331954561335291682989510645228054075954270254417503982538154040359871235277153682681752133635437409696982117883646881197454329854703227711773280016659303747499899848318130040034747503449316766666791594403841869368917281656687215223555374183724081199668063275323754933019991840145793398421763582878200120928823731410080204523327277380720550967174554098548590976854912753766515321964028972800429804218728421109124562676313362160582867221624578952596790550123925579689454561751877254732842921437494235492064579925289706335948184598124969975210171209564500542712541497089257068182374548496493302468417286991417305305561826063608522605310149006782029036526033832173786458022408464477383452117681772079081972874206669668316247409507551447098204500500714258901462785176446167324468778922054085342018648766041970782259782891533290535560338861031574537750807875233088205747066637678561596944118551215629682882130070918966051822224592846906044990196470446543641600390276857220156453801505450516217174178856993693814739274546207125194151181298132592950993803414541085828956808811415833112589866762540806605088524278675990525931226530922324230586367910729596827483300952166723565964646277706247631486399018636022970442591283518491671201342341152487796337190151206076004321239793857109794599140683388385344748548332495710774892432230877838794024012045111179448581590027190828822408693551218068099235223746633492740038966845368020192645768962655345188635362959299316180469715814999396029192846483900940458473730165112282010177738721314792211355474676530267789858624108789245400789137295589698011105983717824995741551215913380209102196050511944017263048029107219909058164721301687589201225799378015037386138013725892461605950905278912584250539319127343301288216982385313091572957070966665663442607554554509770504669687155761633974341485409670877490321522652803330440793843908461570254012549964565374615858634044891858936751325198388017481924513292920036328481297926101386103859750292058893225661723896101369961595789117550749090004576955053744596508299748030296679676760706750332288115846132315790986952269041723480001730280366634717046710046610105919115230716404199972826446092754206663583202603659274902664886468197863494040620512027704474479518993891268754999394988592780849939802074252735094970627794065852763596806401406299671391347903427156872986406360965430162800198498031086388313161528081465502938019796317473900173227905193887251556107154987677337437747979610157926442483032171904060365501642737281556355218802546888021127652827522355575996741787174188878762231407053594079041882656636030014273227764009489451816652351007232730822229105529883639141508373340916647994653585209962687693324630273599963897618668449501771551991908986832551204415167544637233212285550682673156350299233697377351621558891448991071176546833638530638378666904291914770217076795948921777309041244194205134307453542186378363546385467153328400014646504314522351984010019780933805300949033179954558624499239741567294281571756233252611027281098569062194223377398408336876458906329016253885841877398193947265308598261495484639734135764712114344931823425796118449838284755155223023686416157809893921487766982212206165998591505367063219076627040584651632449167603306131220699310346554735767799105957457666902907769485141264812445626955905130930317674143024582816577752198242095848224433458179293613212274042634938502815760290079380320506947329710242778087554707814615800086187714544654629995428860339204926207453182193273172645565367138239429994693485185029855661706169757836354834004777799591526417770129846983794052522828796758764258354855092433943414288822703060851196660347208926292055755229227152333717918321439473561133203907581375456531611323640906961209133378200629770999836051409217098933617552879562921117944122832284078314259183491295207703913845013564146851370932845807280036344578238764186388961891886128198543366669511028186723612439318256517154535331687734146086260920281060600344697463368253807772831461815781751840675721406401860011427056274597014531106851985040914472832681304088583252295961824334195525269680361731373000661633236818100431518178078418909666091947763778179064345023990495945562764859119061660248712439721493831779334695800381767392145110832293201239735367110760110876242529236601446801530981632708499500885153647426805954876322397404794784618969490185364701103721751931537078349404939998383538784821827217495766400236864912601555351543988796270182255826459410621754090021355799659106618518792780056003638421305151668170891061416986735627129735541588668552670029196641149712526385862531046348643781351755468956869223322751873000410252133867336765594115252608323243433805822658076469502619071443192348122031731395474472200685924307957853442820891565266419614617701738896525801070700361786671823570938596042707584137420821423994640449618808623663682291076761864430823013578664909834135630733981284937609885962453171469368910952887616216009939057936925590000724232506797327443243796876385583594020862047265672454202761629597847102412124863588353553673731801756204731170607487574489947201991534977913948001872736071656953886314792718340830382649308993194777074307033251403360519259188218718432963159213575103389838406929634156864356004468104159886759178415132001009475055023615152235685337070944708576629541807984283665562187532405676556397378312575231886804158830985596878829233540353685381883650658677984897221827555730637602084914107804108029806650225070169969454034259272552584242462002727965487773279272561128352983307067951295593287639218571535245213459146125540620136374808711214760545983243320987474082874813743406195319596439047180525792302299782239862611197265818749433931076872755608569943675501417397640860719836600317921323459962709128290282717207084230937952208791562891884832630460644166515180099576021505596063584173840472849890240187383008367345129704236657498683277870785635442132365338979358904407640978496655030779448288462572865885190870615457487154326758366916847366156925278754153647287137266445393877861852703249287149764551759364943815022309870871768648794803233123859098859766467474174784198939635243391118319655620384367573626217519743777011563549639741774475653421662282733056030958479852097090964333038899030567926973759003314040717662159135452167753242358967938343110040729478867287834884543740953588959694367806700166830090814455595394073344990257665368417408233639151115018350390980819490536134250119315487757188242461730538126496919118309438058271819720789068133715970498589108938693052004536974061910126483170510578200667000254968188310447868835842601323552158023773165120603803157072518041901465898241504112083283214445284806335441413480251112846566793816841598134999068214763233217632454539518043507002308944571697722464208393873813021009507412637081887344823425632556320297500202306456618460896302702542921806691767969917891566062809411758613918614030895501451781326759278877448452235772817014017177296411409041068490831789695167310551251685615618945231766775930948525913062821367100302858354178433520021371755938739437945982842568656791232726036716229089285064698258483050605673781554803154623948260236354075099825071589542703815357055267245000232206432443739185902130066975089857809740571592703728611389979708792915450257672245348870101963001463428296422738254965915820558425339781480819039794814591877905057726571340324768201782603528932366728952062769139760998388227675700107963822957376920542083584841266459114237216621831320618542811607770132949257397994101180360438610256633378222454200266798429811475926894517012236801302864802792791162894393986414912237173979840641076087713046445428725296590952564830055871761122930528679848246420515176113732998564235843274903144374065347279985854908099442127520080334893026807079940077693751199389955534488515277417124240316337665387968003850628624499067541424448247357079255842650467781068461385547780733713625821959858352534312045712771568087230308921000020701124637679576635579422681915581386325135443421819665751527353593970868585271305329692376544505400458670934227645293568334187821195619825188665449997876025309419026850983768031939959950296544669527940528001820900628782480387534226692013606122284781817894857110237880655332937867114907183338347870781112407082387551873327055101162051528250911531462863010596149834958108581790627351281276619568506152010756935222558223170109886167245737787075344494045174881298966561457376859912198122229963791956790222246509667551371517989130675068816887234508421970188640125752648975025113907967632895210468049663666203630765076799803969298800196551625276740380964617101854586334043162780744550633476467851133339697528672393745690840406535218814897092846173996304194031965221709636037367537419192918442961562343364662818168147817000696306284421479398213780971250432399254636190431085920497586343085261867996332405238539642014801416770347763401818406156143028532975765444811415763453629375658800867480079789701112045446394479386140573893905503732268118066347988648019821628679390117514981029929506030034548981802828798888091241789012897868581447112175416354899602678113022465200997726916440316897133704179970940320893092867422704190668459424548976152782961664991586423340868380094043862783803116255095040459823893557377518578698637194300358005373741156385287757863592183671421934167112169392740550146796588322468251955510327813226687902556207724401572764315572422884327384367609213649942479261813749737139582296142312045623388967607359566341624527915401516729819709480591819860975656108389237148242559436043097246595475709266096461573139158161444965018339985796095269181444220053003170297393248860950925953400217660376173915386161879826537743226322888365200075108678272492282816079436892091318412765748227407401843616619598539639237454899463649855183869423571048603750453633789646653923859371949069422565557468374794834350703269036978572114138554606680669503706552315596739083017685191502819848664017208601618347729063544801682110888673369704129297543729057017793146812095726809090007933039054955730437562040856067065391044668291628226165317210180291778352720806452729662697376988278494890235061985846743227727487856319629366865072582931423840712739094902495704687772523198796135953398288505802539870586397452307606013269657587350002878973293221774663173624710541588731453814647507179040359623096279802224045268575511958858412524574379363397166732599090263113184864227171622221295848381957275824043559388304185624128429904720576461947704848673859238099535039121099151497048108838690590935348096601502076315535637049011574302400771129015389429054165626412827240849293778341635190531057639513464436413926117891428522432140037019602994948060735048266618572761785399024445257530574909403083793330085974040103828820175857883257834106761712905498959172674861715660223349395656902435922512133385657287000089083648178555660942023468835187804317028856080404664402459124881949992074879121437609155652385236497884291398340376264909412616952440748638263311292102074138249964049994789279591588620355551507625049937758293082846551443494356593958764748495574201150382595288013224961074911685119349815796073110147426880373057376757745655563816970386147657834647032444583322939496319565094503347088385318598530201854936984334168238209319382887609776470359755747701879355026013774390073100922290852225434268163504690544231378351319243372829278217768409498503322305347472003182386026836141961167518288837852417033813834932871731475054448943616796992757563558043660867700737268162416246243530565839514661126306819078427437595109873767762207114192320367302879471940374834274733591772366390401232802922737540852235479471647674266018551251015530446439224967818822898674318700595894315159090476571265405375071432862384069123117782150372741883473425540882680917865662203462404322134972484466225942722231022193330846274985674797028054870108472700970609021975883132557547898645056052641964978025594196869892340102613184416491286365825299853671358173776383176106773024506413746875790414663589902854236262623411897376986282291414675934296532077766586084726625571969366967520986198009558463275517797091255720175349888232983236701310015228587851618215446586110708576586854956905464118085586911657174525590377874539403565695717279904212885092647742939491489298750532957872641367126070824828502434007555746624039285272558779671817449518434066024692067086184670331602273920457994354202257323601125705161072175100495711815619196995591769363322290739972952820869502418195414815661487855739522784332660710199510440316010788070206445859229059327735765610667015567080198747658887060047162291784183216119290708896783523998039889033093854190815725497532344068131089127381660705063917020146918370673793350065335640811542392586828027933552821664329557913173867049432497567122889460057312807888419330903617847748866474391963242722541989051579967532630032016733887621739949233838601307319980741625647559315809652816505935904397681565407873712506986004602128791362447328870883526202171694989165163544484822615117214808974162001041173092834285464297424031126071269624477528457756166249269459579586947198104243306482478650226654364094871048157218294561903669841634421043059218007302795095080991451891532834025721101241694441009912312771559334652499534424655276352070123921463889787255154653739959041264396696509013473633350707783634413001339042996771692423189626699381941241749143804354509355916927825313105434257613271440208532030542670061700704892493052147624987093186805540125157033271379867141472867873008595401971037262036292541408451469929524271785925804585051635798930828131948779290612980497472474559191769042237375284834295089797463925093828634434014520579219645047183702885960590549183403767866547514967233122254560654882584189192290309516638419948697255238609989440467992713738545984197085162865761056247049272368442053364701212725165731689596225715144959272522500614520834174777076221157531602429969126204318257682611983902145791323914668948742989337633908226106631151947563438084604255130667828110744568326929797532782388902834770121213889895501724171730821128535631347582095489643349875160836572192666314103387149811593455897731134490781711060743565167389322792879369629483606926796016843492212319047564268154838917228980088870482473326337881044820759174674269871925752009840136644691404982896729144006924671944315744108680756386977858034047913665982061809109419530541832598894653526375945781475776442312790796598006534688669149987952074038045478673978156683226856861494076022729014768056065162646752374972063399852528926265219688768065999726525964931148192550341551544278718991477508653803777730436747527109665471849673643473593170179886504020706496583825648223399717676158305974529432617894780646123914226487255622634217925235172036888270373307131692024396034382443116528655520190226724507136563030116772962118638294637175601323752334530278877715128716103103190667992361539236247568396024106091340220025376618193805860940217410883429672439540425300295236330041568999783557117835818455163698232617563053766235937224337894418288140247777260991664709045839981840395372896603923399495737951480990874793012485159095691414862581560272938755971832313490270018957445094443615446003316306643176416953898820193386766358651641180940331644707284691787086987575469870000885353765796606118114266101895864247613842202347311198968156084897263396695530635364519480533729066496937188986248805613147827436494069488534275601856240954910084045530217582215628152240525672405323634526524792672128331673971011066462327821893437429438272243012449491274939032888948222612562726444415367843587785754526737065710746872922581647070468764866749376051622935988041246640307211016886477808614205510069338837637319579296552381132975249895118923116996482371950357215767901579872648563595647927176400976184809933228957984692960452366821556576209188527530184823436048173704530841508203718199975502921700232479358161399161039817844945552554402568167002248814933978249166688430462097222201310756234021113994342945396661958160727535750765716096573235103451558509708710589985571677247732422181385509565803238927244834670230240056047157926458749964119020317258351004159990671769302506314870052977278933886986342344860428407486124909960066403736420063866072912401941373778128425330439118437594057714337345082485412566408630969055613004133709180582819231163358160301325273705890695660720705608157895640032780738992027586226343180977825959994211721349881930263190460473231096720479433631006898458001129328267948400536483254751635373183720926754615277373949217255431876666911091526951930237546894904860160797639587754392127954513106723509466579679123363040776239135444369353796315365275800984178546806411019450398359362787038291701132297614931222366558268640808551341366935348355347302338125048792164478635920253961570206305420399258998075002984777372222230720274511680275747962848722134104084376999291744954975978954522585834123148388546203048313455790392562435310751010558943682464554010758238528221125798217468579459765364080543721687681461612634742155134599002308628313074043343070370606854141496457983062566452362539011046505837679057699089952342980940350778527545788745153231123997805351410885539922181372188659373360092904108039873497323600525936257292193556136104194088402351859634717281191958901394457921096104506262216563639129920026962883037138349912040031843154341327780357701645565594739331886834846021193201624806710689963104398254859635338836215023024494504029363999536180211846984817005452769762643177378326474473173957592278630735303537348416689435229521103560827436670563642544746257653874297969530825039524660771635354941447064942951429672328949387833628664552687898293746637745217891548020794000668330672651785317940125495532489684275194195311549168274679082774087088075301711012834055719353946774122878266091021874269303716205247110857593931459606510710353385567999689488091162269708228253532315250551843098965707545264647536059750990513461800078498770331138250900251509360818519821100724259931567604391211947906906725654052919676886310136785312864737242735228836276046555478309804914154150587508996849860774809615582677967791120836479872517708002519093330239713135985245462843249110716385754851817200919194692985462517197965301918947879892373993632877322442270889055636822078801594356358252716040697647974205237873163977116271373756064205042312052227656844427130084633613950315569937861253745814494073073017415742704629636985412936030784335607571034819074138969667065434684889829262055092604394116137177657595189558264784274006937028818832560212723948673740396954063108956028355637155260350191970163945876000890633840874994654232048972243597327887565935533793243180737967740564484446564773471374119326481902498363395344419754439849964321823543126227372036087058375451990634230333660526001737647171713405966185818396358069986712407924030085580582486460988495994660599587475194322885032496030528105328293389865814955319164073775548078257976145885648528137753776008976141014138887848020507472956115834893800431396963953202202049406694147966717041312761025238367238235450742858564115843093072068737710341708334420060199996310500749883520922421958783818615115020120818756733051384073829900664090616528803529740797882958450826414612778413940909022264734995753608656013086341894474978742215008390636579644334713370232651440393820421833700631158497951168902491913625018856864814325991821583919965967138193284188270244565642980397975357934835978178221798990832830775494046950781452781641134788738889407635307235203355760728790168346684643550052030722924209361162102891504235432913001453605130461235911113777709387641557214862650154438575212585894542403834201929796234458803011878579861386229580354799952351467881821820732361941857709200854600503062481193027785226601484374660029441990142009232680253924732919093318966648645804263707575672831517359306908881013428401111725570581020534270325406602956603019134630116018590963554962100722245655630252960970732172649822707703927807281446303653392185714951600662948209406937401833350257769431088712333956408278019391594387085098988182654527032498318426265564275422831781349800994344867672204909899367822882395424542928862270508551999032720179630919739644226559612158083325026655668375826897434536966083188186550802025749768613083801326798132583834500427002699462516192517835788799400127087913432445356122631323947181064194077538101288284962582273435786992004825475703633231787378743350277796118674243680243188515725985362821360339183282060975601697812620753466313228459541286894550880970708029657676459273608370170104467937367750087813805818947601640703377077641064656736041904120988762556041123195926568351854217174964420495966902815652343179409454737783334278995304765383034238431952513832033229266861863050194150185012309453276842124661877444909647255879520139947367005065434184259981443358141782037250602862046075829369716461090003236056126213064544996221794251666811382239698402133447468110677429515872994623371416564584616223565078625764533712285831733980174707805744893158862154580568770451768203247440127795041952897930687932827987577370309330060806422840385948963988654014162743463446631261313439930713042571874654051900976233601988194086093781175720281795508415556432612983001813537236625426619025223100821225109284265946307499140754196632077094198316831233874210949179820326265655824471805938397832041638151159281473257393907767469719426211856576584402622725267927691885847719172026385875271992568988377354038404742933231929156513441701664082991570368559413763712725909900963763195307867179977953557960232915072441075723830545444936880350489369561809491732951457272749098268696102241670761003276915881488329574832892177833371937204665044288786187734473582272836792736946079164939685765612017029447701480783293315798316176870534715387860264352275210271325703057063801763987691219427991762396225011146133430627777890151594155231719769606414769657100238745690286794021124305522911650839749368334414925092828716628893224784186347164645850465288296299665866593434319864470233864478578442968365688540675081798270865156413900760214233467413907949312874507218312282938808408103782952881478323322436121450921309071362582871012956335575488980125182406152571772811091501296782368135129525962495777255747501630937175516563011664153123497197227235500787965801380210635284880204398726789708758363273194192316492883555190739492581120229943879361351679589158132389453104438393932805510465227142814423645795229995378122917038299687155864200635243300422431949066397961137712701323938230255647174431609142625943978767002496299906093162797437178172111395263849159684296902804341298671662481775747582385716083084615416941344939465011036189465548399565638550116538033459770622736505232025000820129670814066421437757401719246794064218536040352148144355369795671050475735302487225157029644900932819934517220392770170897620469562521072421445276374098768867724218969287519941499491085180633233627547070427468195748619039883746528563665691583705305443507368958150362292800150785574086523899823813659443822315345206425473253351316357085031157095282537657117933735712697684299826208193555384851434630368089095325618412657606536882896884376187206453971832940447393904830742628315068444721341881583111765905662513574770216824016419171230577617969290971607523425753177954341229541722499314719420205133380598829665895994014193583018002672330668173870769102596787632467818496893479054710901033849699894146143745529334468834081516246428894311302802948921810181544229976467503561167081830811499075654741813097628039160434797141562602221197584304426535186144000953436346969105561953005002389763282698206514915477031304139122009157400136716484924949154021332398200688617172956087369984894369051310515626788224526156196818663841192129232819761942948373861973991866480677957441150616893880538928446119538964591503583816841904113066847524420100585873145906118290316621748643256326412222201773621496196668908312752611860163964861614386888021964080328355424345800729781183037572369299229536418291222729996661129213038691108331501945071010728776251171164201363629964235718449671578059945492420495183963774146556638198250116632838335700748841804346611006432915289613764687028738970575789233686166951096544577834008622090809703882908215521228465804537927549154670633266402769471795001269069667240480945206329622979366666598210993675863236431145394376506043721083985750318356904513595066376921799931987845149238898139848822908351245766725364004201111769103272345151445004136329110793318643761906326735746208335595560127526955159674284772079900056833589900795191282495535834348100688640338434840376168792389761359552165072829147920280887397838833386281392304221520839454079231792818842621406816638803437297063385303711563301019088725111784671209529793209126261951262966138265108547674822915549043192474827052583542637341865479378842889851929238356861513925579444979463418551275197137467934263999015601792533204150088032240594878542048499056452511522972756541083348267993398989457896181409642340609872614417794158097636645514348893283445861841319699042327677613119456018201229782734145163615428905038802093659138235933336203988774611044160290950435716001922176545430583764641250631122660909331021339295114021339104417143387409701580435631573619020529481705742491479438118859424652435008160058233779246132050612351576892839070752855981189546233261678112018008214158559157057181985330076225948510616907945855962450209787562801614682642219387170558418639702065584343449672889819615750865481824468343061014439116371475216301814786398240138596379119025516834426127235160704614457490640359796042775025720320888059637400833761527295524147418351036228673788215796855403266816721910942775853201626662292256588268272739359088995872820231286516647794268893174704533453294300802201112747973055561593407528644958233390287503720261099256555543557703679803338553010228608147602669470090939532129333063355949959561254441761373387265255245351297139664384594431448360680327693178883313676764089934721084603939154955195299810398347876836061862900238475032647287677461377055727810191819580984861783046907728219070979867960299495513694642259724752265306037709180994444026694901185721697801854197176011062903860900873898599200063989804247806144055233603861658822809489326087308082328474314100024192490565952636383758853497173040537607236512718319496224921447636609810756963580701877225789142607723118841234446574118636621572834076254775558324293630556579955251287399202520140624052714550967664259538297445601061742703523622302186696548644851068919679367451947976702270816767394252402122761000910116622364665873517439452942331395768824102996873786611570263300256351444050083733592746647420025212022455492116790225767626614994678363630267023715338993049064822408485249214171402222242644241869053153887038068939981348156073517022559913742634152509021735544982836777135978655273070425125676447358563067064737288300023731767124846240811986175527799446597534494730478128985397608571604562217538242029114545001351242723459941187758503181955106598880609924447972451518368760810087301698483504213334292805448757994622410129882559393667956324390218879366394996994522799133886908830461953104420910225045891595890813156367334692525333424839959009459893996521116677125046122279362229935475658310720622508333264337327419477467307033231587307358196330539478805448881811852805128585432223860028501882008884630436497216449370778054917992438309389679956397441756186559988214554771754940432150211032186959745946531298768186076463239024664595498464171743401585680817224977295321232519099979631505581538375113224766983578895720100124920880644231208983144362828624781389119685033296098697203402235927972986214435298607013370617034614314939697927042785540056471560716341200559116203173175280309814397052739326788039497384452183978157697996090239817292393281885576759756873091186317416068698380103527127100963174039170343229805408821622526488713640544862046059970674986443714985916719967175957570440680763807882201110387463306934669705407880625824782028431645259236887834686180686632188578962485518102295900716382041019082397690443800973548636969887062445132575559384095969890858768543754073607267378011973383917259901252130036561085884453259220047560862826975982387534865629516313783368120127988868477870462606804019537857401374864135796820331691130704240083041534864245642346464578344679309974682955755104681697046864170693934289522208331614530507862412587853500304199839311263053762985025363765473747911219798978984430004024329062304012234818644435647356089450131763579933127944873581237280368836430063910136628530245697630866797949451530361312748984558168009900261531732389205423657386391537306841089727165427377914696554508495999682737206407364911739755074113099796815624752638362118292277468876697540131546632693027902988847729632434542449778396055137383384350541139389156402704307325942827927933963441998412401439668436365289192796312848978081506332355487596096087602522806109240954834510371366395806212393529747534652374448017465812535172895083295228099363452048195586975643388056338729563094014337259670452311028113438733372198862398055038808929523510436322420831243555695432324978346413049743445331394310991975980264891424484467322915886967713469089429941684037153920907062172231184435227652854313481844716812423799898917976050232431607477695348237774879034982508997726546023259054533537920889611584492890953770166755006093534985951530031906006607430363249185778893196401736735978190182717573063908689075528545698465508533210976031102012770483440658183556352351145828992954651538380100255064236928886697848503435634152389343243889754208671738940511461119597207553775921436040903920587125413803803502499300226255781316686813761341395442680005949625472029612891676803012832435038200006692249156179037266134606764029230125148134000313373536080550641297805919476583676582797671763018141449586848327983336467858438842378194359895264328243161717401454239959773788272482149525166202841713934419277174718116445602663019879294764732473865577336367945801179241953060269660170347855662147363535821681458493470766814911417245507054344225922477278477134424683953559285288499884108994116347863897955292954070503130709267288599399793597815912838421014551517378607693659454571217873104909854134839620089586477019891700658713879493180180241893354970951597335196765335783037735364232379787182614420944191286420786938122018220029225542280338537844795990885208165050922444724084866835788460459401332075276820191877086055910514503077983880984912537861768906021151735075315744015311835838669188512039151638888766583351071458626973832829685156598738317785313992708695242209530429044445142726465079260806832348855121944196426055843740759130896145863958831796748616536678511785873617770943264953548660964380674281195923993701244592340263090652987713746993625795394375987775808914696962658257580177521049012609619920791677371946234801234360180266616967792920140491202267217902309513142486600367026285466267667021887457294010159230399974788288366986828058731585188434068769608822393724261304924874271399670755581648925831517641231112765421501082476226001005362907461933698023511589548090516968614394277774662054002640578733228913315797798390175836097214124551392329499226668054010032529733162570236506294489907589153522244307887039034175117923419272524311451492139097731598925702535477983731561239032965016518034796907476730328704076266389505347581798574796665162809254491566568617404033016436443379420935814788395505895988197251961500086099293189389305543851226562396793333654920617163359210121115848295101455090685510257640770593224793413831386083573375044327063048018171196735381496156884337223888862247606167948563304148880700748737647998702558193724402532349244686222906128299598339216811904630677416833016439473456239184376965805664813059683910242589800094354709773944617318867203210744132340412849545751520744574247161275335422265302741034765222915381346570372179786376266964956449228956819523325101083609099724663155759570032084481317942105437975757846917224340955258729149765814973940671613656067942275406574967670914483232394038655810219069214171923316415824981817125505719233808423742594453167697359134133274328324230976908924323234891993069532552778889778172997080179573525531032437214700919599430063672898506056558596903956710326191148994521351251886235844186939540793352110601415216845482706888711477074165798030293817872475627879679805143415919689598802907824116328100756757624411297612751434119249684417015851707127021384899744549406970194369716240028673684812080132807341201722805176315175753364974373344505993224912994789563033735453185609715041483718406886454193411776627567140878536918497627796137593423773149432078738158845177478791486345146439835707399736626014046892792499262310686337904230365672224619836377275002830800013001993653236968422126923201354024625686052856982122850078958035099313614530565332975708911656426766832995281664191571219239957071819883212523472673279323397959017035626885215836660403575279320745628227833668998045076276274969537148599730221692329618514118249016702727216532902221448143343427426061403960768754302976060906323423058978092391599011216251669052755894186667958080633243216167783890995389597034758099447293625605415175714146328102488559537131715539682372909694455106041545822927150042661324966627997628884150252905155631842483475447784319448979166392614807434895145339860068799018816156998463179987577889119444476477035892573032151151377903476722465652288459466181990643997570040033650365846976723355005660981843492396078007229204169895790786126440610930052852854927512580925117853462724960633638573336016920308783767679121672906279050291350334684790481609665146343358209188178738672419643110629501378546735984883544185890550430702291227688123785324428298938724467538513069018429467118232934152467768818632915245066444134522991934568997053749226930208693373150129598897738396195059356683913241219825848184748028565056012734258785831757949658765691496900479847514110768590302307506679654024247735876541507424082703737290485338625007071973080224457398778829171285601316830896959833353627799227271835971468196228169574016995653520680750909920297561786826658104688676682860368325487704570096668452287947105529709029486951098526017709819280950742988436963745921833143435781280351272617950876506939568056358203610701129819123671959847833112091318035895470171607182992729413233219407548093611388575072669053134787446333788186165374841827323939416621607169122080636686139433222733949309751285972965244218327728126558730081003920093254848233686573345708616189214153254865127259494672845122598596573052326447794471978352540695986065344111925962906039382803298256383957301594052770998430077517522960318597615984683926626138864976883704343327356501718703916873438498674837168881503609059256587142663886851322659500260266054649693428555857899525630855894562193939408351869217042614940209902060506213598842244064020244851890317127257593636401822142351435480871157666822207280025586000932902598538857134319488775607862086233243811304676785175564965314051949416240043046745477169410226320859005119384923074658370935951266804842758073070949897254076287627550855646571797389718153664144637287323994374557326068540446522026541786056760263202347328711446802882525686782999734752083870455699625226636820753420894577576016059217994116118884031211867934385552694794727639377889116282586865730109016935908956164345046329519900787574105786760243669277628124145105850365494376014777883357634043017717383035972664215478530355917978377831307793974345696418018104367069013224533015903104134722199085056405021457596949398125196479249147962082224910287479312258068760969534493339360727701500380081726979452446795604411741237383142356571447019067577896748731108836844455079385600958389083282830814185709301570201597410914332689555983599970276486666925018505250258041620045151800895258942883979485952650310088937208960682264247735248486590897242957061714603391880859678021420871744298267195933782004594739429198465077006653142581389338748001110050772884403280383146139491607323141595573006114912627366302938550269028204353512924390221840817628144037257935784230167826126317747967823793688513750584043459951764399572182848383378038760416047471137218926091728188735386043545983609639498945037434045437381347352669538218621679872672863746029830464877397057131248363203368264382668871649282200852099903852833479072906286391428240395104392490420392138955510413674401732449893267323915365446856331695249515532761214858203014569308758311839765937385479267943989563384040806480157604113997430781488116753913615041408715973633208486403383791847165060620789971514421153068219853676941508452749704736173941966558710351802180734103283092666913253856869624251914702421901742772705496351219397049757505532669157833151107519798812564757278803585670268183781163120604159731071763877181768091494585930351775720324516695087437737564144967455303739913597713895914418046052853206453595420498000486963042845539680953093329722313092611811473387686045122837979535764936818979194851715428241885189905612328037106784886160416083153157981947262167295226948109381829845429923401911249557079582996737234515403482344634521124930909665739582594330744270866432536294834144883642536065778511036515460664319504590661623765314363812592700179693096031249562521553952325345269801777778582631975145832740980756362314677135871742808078185798422142742782949217277905794786523308150351592031022931628804616317181829114148024937388885170834001866580543455608201786876582455372302321864031439577647212408290004219710577218161011641257068689567350222100875311317559393627376634986210533487235995169286493419468912099919282314049555002820989462475275835517270565896903457814567347823450462119300658292130583136235265173077640869850973831737122964192753105662354922922750233946458868681068510227081296830534589325128393152653185507452161582363614644745397519372539219902834700302591588364412961671679398407532827736462477167176528125788375282600313894444215916530478442682862532813622307773207208118095232427154081922367584053374985469017271665154115571964956922855527689064774196682535898955015548372206591796983650842671583070137410343744554332963430585894421154446010436332912638107603531747900678030745587998480848317074295343734378398300268260829080476380992877534198061146572321519941938697502568763587824621346715869291491925274572174482741280251930485825347152770179101560579504232798937482618915855557188456314798589644901759426380079006932375982504144440399108089409246060029457011876201976054187732880706340091085223275756498332632909054543321118042659700179034444160224256911625010059393117090880692522152816964729065172677069487485811894762072907725079084138682487556089612840137500416897946564652790508697495670997464795183770175487875561867210987427949142119352228978192278362491311385161602117354914257717574846321078594085014974511388751174113265233925504174584249706526934176422707279620335955734855573134641699492376361140473705866901228709352186921653375709451960233576263044392154269273598441310110296320295309295712040778453901812589789838384563744583003925550398445449110579105432055726846138842239843021233868557816283561077407387539612973307709341779581412001745691795349326812863823543612744711857352976193946870944940443769018931406496065960303376963538913449219522080198449961032879533371755893134950008394168273058722235659625617088867667589975299565415708625417047204914611955457801145526704197152587699447474833302338201373222881249686923537714663657483535996748028543104286836762177905142937921568494631114281256532568686497676956950144535353634236426750336124732086097338052950949716531902654886193748804767666337188035439387478330123422599852259489324591799361838734847879032262425874155278250031847889073670233538484821316045075269640220861334116026310505960948797465380981643092126389029593489910997132714717606070935962520768192803947219300900234521178647606151976006060233646691592327293369956842966779738627295569132829557216279294643769623939392961366594560505472305343761988638716448600575450483556901722202135794794967036718076507889190542322594760967371298541936184365817693307990764117645681784831323420389173000151772991552940748048845175552375566801059983383972592657860366783020489026711728013188693756749054895448234402327655142572726672674634526047417953231160672222439792937633753545160489895577077596243772137528606988365754333501667453120369902336190438922624151767931732219525710928473919299838929276505734584586206597544769801724675415989437835914598940214654866794146882485873357791397807505721839463984808679174016507718958123374031756155101928005892917941415740474022061563436142529100734358082520936876614888138829706047244735681288354066998150128765597725850722360092441325994240833933860917967861464111527098579679989738164193403865478350145336206413311304382207349051572558443643273460300084254329188365383613105947185757668961682781446010557070130078183498441070081548110033582930734108473159787436969837930405774339955723992768537541311720192910121121555740528410867153409927955498104355620749248864682522400723340487253374415289138641010671619196964846763682343567693433251720469673292341411016575862313372346129687955387534444946869959860344668958559044910154641850569049010405850327929825277268031333584892710492062104059061894721231765624799388100192482466157768037588742879928091117571717383612646142570783483547871132926242264838766445532846427207256119897461232290810733896220545622474391040649049416925615100751517186050130256861778133204063671330306695911876967624523040258601911155699444498424589955912089194254232535425968818717888003040361715393374224130249965061936288895104350767938020508607342245810153377556193456135194792716803425127174785505043562986061797252375140958617017250681964090786180821805802147993470578255591838981141645648291244231773762244977733001373023813518104283866214473271980284406485769447105504085230884744044587733002217944101169527865732513303594931309465044068588519982630598140603703497208677282048897742877485882945005412299913400974165702528770163240705461233253622747541738856276706859596566941326238441578149332142271136963811066477428087320180218930182297582735662317136685294340169018945376484187693408028936471572124917465060732066281141416953409505752556302885873715956145725159411153227191786525462197250888609526164701127089135137125404271438163652269076615352125583897431006119107787808876777053607551581367174750839737955460427342035156991413262989785294065232369131771310375751247366669718484238640225041999631564239788772866493668768128558549973032510374248595766051002274869475916384565799680295127957885920308416803037000799397047416101878182080563370897312487656528784799535197633738130837000863742597915225772174666280619512311972817466264632651971693410117138945688635156738569616082482421733600616426074008016254719595566288697497973457597468400032350328552406738679704252221563141718040395553286490076128825728237000472015684428170384007371399291998178712690434757199975487019525176256369169869115961709966942555837726447010054463115472693226337870447031457969183238261218311240039449020056309982459124691261988703120124426967792749128798128989422798512577971943989654496339245879495338675108434046523765039054805284309794260971899909483112846663305776104524057599165975918330573292123046664056542609947592340213506721558925419810753776477442038282230114118168819502266528273878664438516562517871694412200820397954083128572123071658991268395746824497877573451954694380729179141225111706875108556539517101315894527530788815066658464950575915161945730456020067293088465727532159315934950087047004496448193148330182018228469844823315253668375345174578412020446420670771231345760076640644945696411204097010944641434775788268923546572495033632179746540740402865998836155813794558252264437591596082823394879485039292298222698772594335578205549290159339286613584975802016680393083787444697787357755644861449762358379933153703046171838781112516488077106623572738818640067835877971136453738520640670656218072379133582385174095512519727094494645360477264474815932068703819969483728321933631310393372678365706351256533182699865132712935650840959878674642241322003596996308413797228482793009225306581245693948906526792509045538085632080671333844649408884948250613156572477388777269103476230352301830548918093365774885807894835057307146550935427794081479065618042448998732547647792239174189112722628005950942924085289573965613171891096931635654863936356573525289126808334037439294585141881049432765179350015516203905971589705254156687583755389961566614087847890618624577345046251228286894571186029461753632620502637123335158763461631080483182885400285334176181498347393054628361976631444405745485091286180722202683956013269753836639335653175178736740398232274164514440515133456422895683341496690603584125533700378353214202332089279717503362704524933699209127341126847319458973623937963269421731229338208156852825425155299831917856593501525121806864511679082083641824952763903550294942698101504241030283609018427457740936293817236909023728901983176632003454562021630956096620814553228705063759555693297529244801884722798681807333084284438300085606163541535032148198914067788613459497662675422482431483983241955852663474553972116007008549571656876426893983975364613181832806378492377831100179938763551551551220141334478140887419694287441960101387836656765041798377221147125337514324007967200813066338797285558260153087821827799430396872838283883359780180850422429280340160907636271790964567257931131585876711515997660752636475934487026695045960675985615645916031638221984760336087102817572044096167679975217330992453180689392719431847423121786028663483780180467654787848099636059697291248239184418076826886776028354806965351680246685424227853328145521091916976929485546140482515782238745570220630615249155756497501049112869315280915738139161667403645335175719961976797727894241565328646511064809779325275417660662172916537387254714485129241714211766504903471548638571310961672026286938340077833504775063361273923989439965185536151637038363000195727367052662770956306835435940472561492801329955433241874715526862681598737995710632598705742506646996465824583944662907347298536210562333371265758625276586939693955002392164392082940111864704729986130795479459006186879028076215274612222272777469261307221102255946069797512695133409346695114422713212645659917564979483219404531861099606266796174630865457666631792207694953914065772997227460641131330054903377705280689991910286382889108068806558994885711937734124323665438652393737645879061145854217338496802399537207421678530516271992348499688960743833991581033655662734833660331095058263213478484654321325863556007530381554690723682350911725771674244236645756197910357622682111035644321276671555181920675342502597265949226625264198689218409193027765100483156004611611530608768897348720883859285105232010521644040293547495171040534957740230587476440288319858828182010971440359574213256090832139577402157276269456462094049887901194899246642407335295417965653348434503216296066117803618018871702975766327961773129112397670200398638979864023128627870489766998726227882463806241720994489600399539432558074353450059982764233813715801933068221499526150129194794185646087986446609613798588052477406312527433105435206650727395332623019523516389244496768386169826335987987506442645595451933635232696445269793232470006754650174231268831299128971160235883358190726941984346852150894315329319812739063419399649192735153797613310168632849960188175796087102421851027066236011817182183305858500433312242252054588833612594668211515082577234959369881177698471225724204739157135894876535564316630792306954294599181567993749275493517793290607839649811038047679388071241105129958135944850148112473976049651201054665248855933756932298720434185866015829264368280347592197614781653042702123702436568386228375635658053012868887885889423125849155999782908732958779925922863671248912272130987272057172691669090981426040166602907188378861560636423093598204618927571134060072056814160076694673858978920077817629291207488999165576884552848541778375847155618095301085847271040022979584732121543737275766982697820408807279830073954269237238765245187937020685596069472693670956330085693159756695937766702001295328116202564791093785308254046864249478425766058242651517206818875062693126274258374005366443797800879296483729764386890344059722161242105067778552720972689469646316028570492960902786852603310706731559580963513742072429073031045330886362548880988950313894347925693906284613175324212584617948733793391817954984958997406937257095805998990250093496826643226010176019759412595371769029874490550408297595994045961946693573967947146790904464002895772484441044472528487996630524648118746571874486094472467580170332581015755868123813099856323253008259005989488815558931599658873939851693830143192316353531974833943518853149336028863003836114695821897091264305523810358201869094492402092255035224208294718304116438197888552398121750653494406166563031176529932158606163525327814642477603352783198112599837034000661410492647703434204560606965615467379634711681566405209713994094380447326093561116987017065548174873483952577027989141488149676562354831886997968291465619682737102568284016570849572872719289360192613148483680160055434307364726591027214669218344261735256916357778664303815007329177730316826355035361106710574647777438463355363154886068113953329356751119264127846831037139384111377568047270040134005560492186446843583802959231670468283086477720136312830857991559888453341204277651939058238885559837619455875622266518373362617978725113406983691986076960303087870189867977985465755402391199833481559571644700441250415203771513877191328431300109508117252589641526670581791820390999845026087291649403038473283112216087742105765811615158632621376173877829660204112829855990492626916200130728092914606280658259027510162225715689666191303485403218494077888170775749413630081482894930234104819241388446833187984108031384595006559656659230270934307877465626771626396844554828684436620228059939699621507036117753454478892455605526968727562176229071021656587579140321643101140327336059864479309248198243322366661982723906937636812334449253069753772264130047052720583988677501590465826453163757842582306068751562302235569855584253599613791737690393929302366780784636857646465534494662921789243337033732725615469756898480505719158741522548258553684830773873223554107366383094365893247908670539918381472960825169478696466258546306936899033576263143247924084253427743589737124250694774617078957452774284759712558485679798390356950636378784929184828302205749638914445603094142714971845335638290146346362673576914153814085108111362525225543254098821540019279336324456092474656396324352866317079220078209649306925421517551852700383415646141837655455824597481133341843407990380628291382580494847367035385752007294892985993865029015641466500818759175236365248648385245182403181679866418998005092851325770796010592136754343897901983718774249758874751984688639482338010196203873723496610097680237000471393657019078443286394298629167987223665048865858681906419055696421614234910556368839479983165478541490221935444579642198835628755623979808778144078351461545290119323602956785565198801116784603997453004538665625827553226101464573402823530970793648995657953423963682929897367887286194022852459922035033564773204245494097473927552351304872309486126865084129411617118475250398583931985189538781929741740031210203319218559077590557643867407369334165610713602085243367548951737662482392738342766513122563846944834981174009359829117737433685344118944769827489247004492863861090635821433153948949597948932768772379378323733442609948690253923544117625410184186664533441715493962769156103298681153755539815517053072856386663975118454472151236574325879154059299609065493720314294618543885361634422381451577098143789155051685519924376906082889322693901736333916118381818355630193333329687954206342951394207008971360442710462217383594990344097119200912424158999576453768397572987270510727397157792040021004914599284029881671698327415232728804691783341735058070329726475439835210095618816906807437155766522718022941909808829275284664355117098348200799436426863939416635210694483822684267542082199335202534454548938958333183192337947690391005788707563913819693578717239917805634897359431329172161716185468390562480345434203533709485711702203657147620619300177420017279145825855284066081505460464417422087457140227636662294306395661727779292668132293283768489153833391812775479457006179723238745331232243975046936175093118992535574171009318777551776236028873810735921185689714484140163393810065486238076586315105541796832376098577797968228802785129043284656512786847518350276523453962488416678266583515265769630484113062255283408586593548281208999261135078643931773979319795678074732561454292352983378960778746073019349430126785174080647104446875086299682009998162502965401608222200133341980493044968100659037704885142266074393614579601764119909132245771273511216305920765442247592650677301017124774462520065627574340618590666185937647508566531706513416751431780599717726727939285142706950595934879890357176134286002885528226828324626135391783718886073850810059968517953190583645288071148929153556928066321177877316476124522327375275581068934480861937325277573159420132228018781032439133673165866369700201037442237925768515432030275607593940184408632606573269597679144721207320590561767085261372352883543090958104041236523173952957087243210028753225733527527423083981384866863331308701807596849956694312950430494640319750019395390553118815391407922987437956545717754980378880248276075144502847768509930647774123496676225954183693961040448731130468541077735316843169102005615050323304874282018795310923623219882416459242021941690994543814623526880745658027484872526510977715251232110859928682948389331925839550301070806574348337308650329962141782374213523727003398019276697736838277532501559144080941290033638506597879874988155623523025677239802533530520081234823231839877764916595978738841542845298856304093724123303480417296093380501154250220541920489109762082888126930032298421171261292942767594141422109427589849966437864924397108693850817492361999774408761362799854806124451583115018667629608416425738389917375250033259112202569155152593243926675932523066852639895312889098586871240043866677373166628468356596126369699854213189787977214697331308655552726955975149489332072648279193663307904863172920406689446932187331295275441989502760460461629569812640964203567247554822253148294894999682606317903771965237900647558579782735600369197747785195517460849770470307873331578723059942838621559242679920989749532813890219868973002662260644999512465697165916934275391315384160685107390894061047006940775159590064502532281548542345953879462630840339630580328288152752483196282544211001147717794358334207094656088020859967423900223470351601896984356438740769904963280624047218400164705763912638237972661959476866524983478694732927718980720700206396554697063767142049834813901089043134803682325296323433704190853490849361056535235592787629179845263242632622666011389392356217105372252390585953063497746818435224803590886198044981235439532420142841543985489610751335167728838969550249855289029068702656619537589961680460728684999699023483827143337970421474127445878279067346223283453977036193506361129880735352000225729946801673573317121812852641697608114338972150892788332336217657076679224297364453071936296604309863064294770109199342273992460390563203193504608355033674622062579671535365268938329711659940385058087114832818578339732873234055533044074592667261874367571155546181140000158601662220398898394519141394343254248087366463600385715033203639918485410187071379095126698585195175591859463598163650544769164283088665036672617703698504278279038108360479872537127719644902312851315645308124190751623560351735814798035454642185369477450722130457035103076443184783508873772003411190823779166721910433855876242512333209968190737656165668289954793435583903853082793331457052035623647332727630458484758939610465137260510813766342644439938522223947337915144146994721004265925946611777988711313793456443274965961219734575624187934461672198304697088325676495410352838229016655093411270625484664432359896805865644989207784049303646304562325683938317022863425420248608040170974704123462401351320218483268464630226945671937465831332146663267308551428520666242873395657863869883506485267805329021028710013335702392013359927447876028457242458911205794543075284927733754307857177970053478743881200419759671645838044903029778503068798234925789175428105373703186128023504567850243980787562527346742836812907761936402992370622306246993847751160204619765406113854573254392747149622159266569395425313021973466222591977084934135193331142890948262320435017808712448061245139089614175796021140767438145697183011410489465371995186217850214665906214724462067179589183264311118934864980957054199511113720929786787974091914478474942343534922169001988599753458777089444138092443499319618724543050117902583004368591226081153709436090892140963475422795751392818832655212522783721058694172938852831897920280262345287146154963981418450488284186776281739358776689500980813902870659188872446820877864101884486616617700403081998217675938017085633184715091733916747444223856265229132663284395134277170035866967158788288963683674810426843729614099370577933166535513397387321346283036901342217534230978844014236652841745042251015926699289240583576282827438463239085884154416312782463085559105216569593541983749538842251689279879807838990574717191196201962442297345111244811451503009483225106184565244084377075716404347621767727883877686269812721707086989189510398518569887878503837988676753935807354242226869749316795270922074293575943785043846678878580006161002470007985780373510520956988687762629068024112174949751791183993905415122607406914802609492767272157468317365776549472738422010327591597414814961487180244514381924454304656391280465905352972967077158536530409259477796074187562054019028734549607727605629423867216852198654734859042225748155944234636074089935431302841398574889434975011231624804027577465083134633304442064065912825108256174822593217879095707014223420659845320075217982803635757534534522185623100800260072068190660272341738351189823940708761114660450891783332028985955378869447570843482984262020295806464071349606166989477877610331137915221622702906888533800532666541146558966972641801709489917854722235042472846151937296855231942647679990672397253590824136837188436337903413560328855066239261199951335835888732431955134751463214117063033465812990194205905069779490408400722595418497776095181301308389120344898141243048283529790656986201829958889404977045124063197249182420262154955965254182090414418252928335379877034703693196742119499626478444084422248044725345234031667361344006690352077031523068428835641382435424187141975113049560707107761325869219745652538454223167688916837626620774431825546721155904296319474420263304370748682694750807710777927019940597075745163014011140787861564296201689065971887261823415642437946281958860378593897327739036291693515841017888006745868221542155101658895653634257379962765823738559070489788809481046548721898574584589307868268729572216911546783261334189247409591259933133864185870397842675013482560232445799261952625766102402068169960456202484911483918404651428648358999385926882393326641203780350400881679516668576405068581006520087273097095372168023244732088305402528475323660352850449374087436736595918072981698768068156166739320442180920348881514695135086022828046808126436108000971383612705016058136487522313389483882741247806505618988792670267906549859094815249167088954233688376494894076541785461438408245724477294281563187062954522949407851926479520800456243634868048534642760659558120889369098574817585278874625702511953297511456780639040544143686747718269957119077445149879477756158423046805719750165681560622265643929525053678952868920115265171016808879313914667875993758456645852455841127883785566598527255172703024091595628296146312324380812461045061522744483817538447348242969748446246537402935938821246753133739183036030695572301743479337825826219854629663358736690211332604387751876627174633112369773392959227970350680497551852795086728704792030126068832009862797780961538524009645174914436595463166056798537407136058999824177250099457301121796670004379703915831436040705136885291030573786379916135004506983303561545981537203129466799102736902791271472430284382577963723357240478173638940894345075487509845065446332205722790334740571399906308922305067187866607667261287245057332272401585371091211529505908794590386900579569032628167686454389760160242006907959656824828585845787426355537860171438495644606914997905846777064882628535949770585113316129036562686351134288126201174638777156738826570837421835221344387619282614330705898636439477510338108251209745915537995057312512970813553427071612425748887609608482424027002698545844317521382670362738112775243165620162477157710709368661418932438032275875075770091055605691734040835757624959956690235708928126169528730482001952138626344244889566301182714450254174418020880341807797295960441331178947533336854069838151326031666352346906367783091005163087934545815783102171425544286588252233592609687363859381236834397111106308118375412639509907363023292876902842325485357439075089725609795692526159213507158369543400067612283469120974278959194195541195215362883355905253679450393426228036174382747352362359845891386152282473892738563787442642544161985419726632851890676303559499347654696241018935567355545879359339988598623956430262328865433076424190407395612074564380651103111922388204519859229092201154920471388308854676968004905034176222939293708670202837515760383735079487567367672789788317025624716468397240398737460138783512277623590867976378773132600422188705767340971195755620783887765403291139806799094324312684649121242792824884204813525088505682796482689369795613345390687533490701952386729466905631824791147608705157442076971192638507504327662425695012333183055947168751202544227771249905474287843559112661774708634232192243812106111597404175785567136063897232109398986327402695277590560364131451216244318403843575927561685010781690431459966362292366754972251284946972128330541050503373407109087372523983873853703496234999660854756418566723110144902270412893888947197254706197462489842603557621338172454075024309274200149969471279886325287622771820473908755459348439296768405479555014488238269522610049279174828162153376565311376953917895618334301907733856225352470326699918459330718003745348987830585866810567470060234989668908117466955547962347029219407673461804727723130499626984346374176617686012239449914151931652251230862027560777567497378094578165358265827908223699756560187440523084895550303949561273508609652170440515018706280715169669145024248435282640310345436661144507348210552139063063067068453819975913151166592391652942597813881400800102353253008566273437469139922509812104575986445999582100704764547622521722131407681103404647151817869992374927044965120449462755051896139847042198081623556909104066125465961917275065944765345258162067777239174854201930259299665159196049201950205326130589411646689467617596940147892794642893897402827565553246428945539201637128684998743754431870845859424932357188477587312858889125041314440313987381809259870799357139664282851882051612239159372465757425511392210032372235751258641970702873097887802195626310986618123689628812244347903100769249297737145357987437868406912323140066763921343614459242918881484713712181747764545210903633125638581981064451948943368276450361465391599909988794491791104983593228284246203523160741046258910186788292483549709754308542435553417950509832219869419739440095616379286909418128927097909597987970289452938816417007964091009467652702698769328505617853721405287381394039600397263160908565723600702489261482881109122097272113886703486958269894257237522366608093944232474612321857540618697992353726804310772324051639158672748042467290631104399894944104385120920701121059105750561295236408123238976749454708057380294199069421667395023026938242644431410191721504130037793095836541443258005631227602130073543725626156593120089326427882977795662373732741418026688794960418397866124943966997519819672298544211051690719050334324676183224790397296473077065906661714842110330854107605585212476964604315632388589839378697527926377470944456816262246536939390070755951026790745531851295273984122378828355937280854716408281042905381652453049724650518548695045028931426316555635666251550354090108291326661293672320741143004770440184066267210724101839635006508827198377030558865216910749357236008716638457949734125898917944180940195310201930700386221256905065409541812462136942351631374520208581040871342993796198896997717748135483570154949756101960417747460177911481610480669043549670135375562223475665534620867383958173642998634402611923690544574976748195594784690283613675549503817387404203719098260986807949674417910726166669244653001819461444315627386192103053786648173702367447631089781431409274156129772279802723684951700679362388473774361138040451430513562499943172415508584459846790736347833323263062171979186986263594889266736362314163245169185408964893710160628193065261416003384432180519739555719071009735774996212086230646524070105219048177443328821355199712091332578693887448369675142282586960256801271677514184116556097646669864833330347273071861500026203395782186732620715702026487129550033807327640139236299732508315657618708615010080295291037736595193680714292592281795922110188886918404446137187083988405542127134354274734858811676956885439270517650798891479881532458945086923273842036161311945780073278491727992165794648664757916323770060042815226023926588678337649844946987197897507354761069068091254609534350330415966843179883543912483584804167023236927982445200830762127468464006517751062404376043896853272247990553673186748610284847486605769898872046260951865873240201462544447936802572332486724173668116788600500009074690526881347784665698109931865224038072090858668462172222863403474031011152825759543343566798364447199399377875308750835585293864704728317185835696376527203203111529321374258085517217755753954157896311477746881924321771741566070237084379445242009455876048594171017603427656320716694774638584325442920772189571432666746135156254094242822727917778622277380571658797039781917872421206609644538368997236251699950871358012264380055184094970593848309398809564806574672825899265267845711962668572829574090374360747849920797534636719280408660162736971783297162812186691942709345039546467991287035752130789793655805424573727051668657893398450292550092280212662553249736047836605788048897177673304748498586700172410156840133446530150785367854999355359711871362128875281744570164576788945927218883602256624095048010371046974664851705574304248395549822822977346327599325052480501339590300066644331746335862120514535483005994671695054942896598881845738080180214368727310833952927685413627486165671520781456277464975136808849177220462202559373252022850465281138398201642572782391065440664629442496590409206064921913089924330790779892435029956640893349611710928370185232922978449987160766203200238136544798051836288192391620527976830088921699971508518589887785288716371530065658991190994219497185382750690398849172160739362643382492189884835875233309432118855726290457759552252561531254384083501082795855391783788813001807612636111886488368111964918058840386604785661026666475350730589800824764547758392004739287158533151538748775275675229912853082138108130902705203764099520685345986853999919003488835066917392194389438079564252757601141573515805578745049455623016633549904518013681632627479626528059924023857914155274216182990871149576918763245145531842816455730990183877652014148421383622182325484146123637929766359654280786997764124253948917330380600727611719056190194594230110490955308980380960629027444427992231868899286933267313191632864568139617335310533744576645404851142615179484287128733060017910007457887811531663942229439947498094323166836445259745151533068494918571073281066514622441970879572962550831500557011574416245096500765070720614033024623795978387051890809250650726895324669288609994518272512671628930828606475059268443522424632409836008476780009685221453285286594871219575293722899398927504457747813484210045389343218786143955734651199973365075158203151008595003222276297378176622403855488081438814513593125809193770008434034767890675027156438914397080147474542424212151445895062740571419353736600457327507936759368922304298333904658301464828401303990953192096323121350386915627323826848035210610703313076795457126705517163382656686410399512765709016112018646591312582441637599927509633916981691394609907285784645855851235010313724866584744087726667372370753938969957281425435110022053472186857295585557598571241850209972848755885116626851244442581523415692248655428690696034348763807897433346454878425763613930807811268006533359841098112912670743908245334430808638195166163251591206504556138120578056108154557871651235275485517803615509856666402986844866770082385484055130015839846418551864319479170295821749101216926048909512099663804433608153574931893684483113650534087107186536614764029701650788460242561428456460422605512092503170980182945421319106371444454663035427288172536266943756105883634559071733420559043090465183847769332252309083259120296618715586195713294480263189117451939414800360252485041278072069879857269815264818057834282655627633032951077842395877429378638260889990839625973284620920322341973994313834294799093713343947567946100354743784025764184265277205630905179221578042919638974480884339932489514587560080933207042353347602645815374436669315227258759943910982759338349755018384677421389074551899350116776018760402549237142774983897630883688541295716903286681317825852553531345253056588261817367117882034910306974167348206124638950619177689856042832026182471213023237407148688624717121019349109191153500729413531104051713388547324115288604399688332963604553695649317148986507292620141713628625218341036318467667678086438926213944790176002519264720620651565818296394906159907520652136267676920474552013331330270717295205125262939627910800960567921002048041024651711927112690485151426896727539796075050609484012288062111422538995683371907684524794595961758630429593278335243550934507890232555394129245528852462806936646340756545241990051280777003878451752055711933330951206179015971081830455305014719450076359405171039480839725605311464589787983099721164327239267404879163991020621993260601486427669935944995647658246809070690072941018142168123840828257041935684814937985181580162534041810626000911297874534715322969011560128317647963532181207135306032745243926734122765021951676247256830821938187300011608376568080902922269770116936529211123247943974662753686288749826910802538752230686985410627917956063319839136442085049140269362317756046233046509705457829784974998947907263300940693610227610634136925627033127454185408509232860341908316502753969614084380368501132846696076303546544716300024534899175091150821756816027011115789840237231071437078386394276852254741287887988948633635248375439615561778431246877368174557537866558179396191338233276316131332323846919390902753610140519978508078756428060721432491927225421232707644152040416212298368060224608230664816050115167913290037669337559190391371594442670413119002753581519732168862029547076998975681538214225762747539804374250774824752578602863683125245276458987805397856499321314522837433992000363604472161270332964923600808839977693588656174527685036286711670599058756870863022819892987364693450013012845653009092024258225118937893173950818572936257412497468607319184603034123988334727482526067095295988905471616219500081705347483537327466081708875041430886082350574762037330257099092271766776662531169190215191728302317541395997883770998164523644895860265966855690050465692359125680891719240442890315715199462695767181084971952389456879364413050313275225276742130098849655319844003255058000775496426813788162783095815606851734718406702787422305216892287794565887478841535950201568882307918794227066827309231596615127771237626489680649391452220854684578862862602521637976935513319663755368838475258575180713159261630623754212617543019260313390027741984463434719580129012893214450725381516094145499598736589871332938453798772228424008123652774195578786094934294591184708535369331873094331462791025067769796827071807414087894159684170459668611322187371557135082918939394216134661201382859296640590327023041416471114125480158713832537407140001006690643561143010926422669635536093790851037375849759334636288585968867029564691592197618625047952712552299706416875659187955599649436672644221784804340420074490472620166695127066274810085828256316339951804220055672885885357698889130753836299429432433738996480068698936546095898687455343880281877878267227342750366230391873909266597460840781339853001175983152952840279404259013558692706371063949315704208662755288526522611416094463570732035425896402065434942109235957369804863368628346468168624543348903159143697261031947813798943642517941001733614981094457528726515773504089342748096823264192561895226775629914942500769702400985804906627870671593787906762201203068970499924272420090401349543571410341330793549142574455710667782332299386161125326447938898896499754545857122855269115195377589745072717420570393500339018352836326034302975889484182938363550732859433820025240781647993864710845000647312430215020925156305195509971268367719697609200194751977185802214725211366802871594312874745618851422480726726940938542922620850489218964800475714703622370907922895188279724731952014159314386028056705402115604039955162173884815431311408050241496950521071404442971526393349132456368411663533286299954404913573067970217096559640045867344071289096071606163082450565714463690737918578458473987563471697320499318993163279111632472771014279528954318648113953070415321038205525676785725548955579912082754714839058673816609590958202006336163139425851373897081806342325145269209002262745412946515263879842555204424069027004178136692318896138409552239311220816137015800783977319373863879946457624072959831801243898881559638302599545493540901616392178352835180081973836930431096239486284674161049815971568349396875858999241580721902947801487268834494454531999772619808196204508107718698212569887026342668280072260977838764603150019834493276995810629230028392543544716842522602339401676641601034182656562768071604851673052123459395052385864206088225605691272760154570354244695824631965411467052971426593737862010565968112981252129658121766643991630975419856178645905834845423420832026167464524508462149007431811831509272874683324912905802251696443560265351930980745473188992380748457543414156080759927958880720788562948272568787473763031866393717795312404677214632470340704165159218150886390992782864289387444097407285136196699385512970683547039959106330354365090285101981465441148963483760105857132650161933033274044062206946970940952850216089324624378404515692312380412593234330920432506166470820584079517606401882533868246637396502499735157064703309029684197275245562564764517958414052438118222749982787511983403192229993827971779905157657429318261910095054937104476145470208792143569577878618421479751978044102431488101962319936718453570745656775277078187073639736990474129508812289980624248813274408524397410123850762142889468276765207999698156499442772801285537771972237836296332136630462124116283280570318338546329154633032846571006217472125206262492205264942418199631263380959549179353588439348151873665266276003435273016343929493422821449054013779380721124508602687196654973108550620790651552575739381966005224433381407738134273851614052912068541120095977426685284449980493025741132795238692996845408295808814206329668694962023140532888333062711779304862731600452897195685072261405874678198759564065717518994719675750775290915418670881407756693305477064336447337200138585158244364616507928464095896534951538537204334359652867787792068554260066821041283254450948273863071946880164285375890807234832493984081257325390317813354130020087559839495402168169193659652808147281116408454225123978537670469339400860545980704380227854701225788951055710739474323944623417934880991630206847134445742171935308531291845354334250430993954648127409396245037459227834838145179613725665514895988967569906753125199270509344316323313457995613535841850561030463696432386669051092215836367945223742226860565577547385556560143830938387904716448297679347668840885006220120273429773576376657222371892818317828756269807079355384711009302656634747420584171678215251979934267458476214731862115430791361037324293800761213389359689477329557716017234508560733685802879594918571388628839154423498439012758276267891564391877939881935572841278705864834591867679775451635036109299843543005169815659582221933098516898683692063946822170090355874284789447587969824064253111764242138307109383533253025267014257884153712550943669003593568270530681509365857072327093922444988492761513932932286206435415009832753108020158226702201879419486706824562352008488413267873043331943121022560966315201291547129265030538441574860354711312688460493515792859739351820033734905641973142071321252981499765789543259188989885221008093672855400454777573163566484244209271007206047699676684772989708719750165767622139274876010254224932297342820915931007463422585628658960529513010782248347985023581117491052754606132796362972938692562849051431180203515104761408890944860015419156341079672975658678182411712833074119018038907100163080953564500401474449452843351326333344010293613988077080762869030737001222740030845368056617666748027607858135739131148968898158843413687066033442630471648158176603359129790499088172536407715634190741137153035067927252619166630974545027793966591087844058251413007849404941529879181878930619471057711522177624488779911311298983954577152735585946502578183311002041579814452023456175905981896975645920208415168853545560077748530035187473645019881997259077641152252721183705534995271072768221969850219927274994567176597066577434120196124532543686664969171064111378923128506633630254797946140975166177923972912136994984953334618335494341667161242303322145591301100479195833216285134687486861231554209865672472193170249858364934304137390099010350978795856840768331482076685921807033804003866994251879966232856819121562022752974235553652528965547736976494677450759456818829546657669129484681271003704742708530413027884625874846874382236511218328215162358795709619874144624011455933867249607044575889957603084665667016826147657742067202878621277793914598181052771093189655729740410093030597454109853435687869065667820639937038502741314132927825374356516676089399083707178825849451877241694969641472783629368482586097426472859966851355580847006692292465991721306947579426311330885265947017661145384825544248768167639610118245335629916443875761132181788082601576363036977669830203021092521806362837951779606494723260313271913656111853499004035991182621780385486441312166015634239806020793921099156200541255558458686927202427159347599709921958387720096383711838099192648606421352477066764256516607815883422266186497723237468573599720115521152423946322246392514468157405315826824391708491004512761061066823611775177602978225872935423614049445064804521428022123475499080824015197415165598029488334206941515098306483624518320873991469290334361303533961786577834902273100325276241784464302244779129615779756775158198992913819620422242394678932779445578677639233907229035053195205613230704294840544939262269003777686654634817923296698834360534886171160354653109222784895814959312591204162000093249154890850056765316241168452357819217315729532501069241494548517515112706855979035060228936793868967119196761715070961917233662703237255949020525164240068543637552328046113444235100915323115071406059120744362703342766641956856621794062470878349676128454013670461172007190811112493435785955453209366016486208843173773441430442155373192044785051851669881444183084893355020218547403584364337181679586250294794810318823014238641780149645838284809894118377631634262909642009728141494517790402582107000597448319939892798190742464929554625857547826146563914190617303854293239299127311261341494939921591104561839482836625459074874033918930542092324557105051242422104719598456126965023247452548745346878844451848112550402850246617777716551449531348467655681460927480351065628237934054191739053215435896558974120636267185901209080292922591851583117081019081751967412361829344470686607121983059822721518772188202234525335937912845171871376628946694020935492745868651621270661639086594000020707167074312814721932420557139431841922905969907253693047787024319139533159421999096207351295596159061799781937221357273277035790827057058343693127569259812925767276306488988344414667810926291352518086936657189460333946129442970485586989730140606432153612816096527978058685860448261405500834772672397636106177923454902900515856678431675981929455857312715476580526143023743998965911931444323939102030875289179674927762917212452058248515577278311450530983234459642397263413221640302598612323506492017326514817579009233246467833867437024240257258943952834590057456051015136639807240535653223053263976499843016455293575731157672375472605944790649116159963869282396425936131780725442751088625745244054341409173209215783253632828398920565902457061992862635879194807828525768814548156276517918895474866485245011997972711989105548146660845125083610852219077332803855129791710856299595594469176597324835420223377548099994724719177405743296219055726860172055845571589806865746311322343748292653971911146695861951134704535003055904047921541956912628984820066280263864944392702158299252549250073401504995639661579795483947322970934151214392236027443873455108154644819280208676229326868871255985118483711052202767764752771210572568413037789827259645004025123497920577034507699050958348354072653904703116156970684871380657171906778603073283391982565002266368734457760368859100286416250932502353033539319434251987425085957281026105785104621524969106375289464319098458406007650623935001270874348040699075484020387577238729068068228895626845792407210064578769348567624152421385659145338371412776723884223564434026791682882769546451336956777529044500562957955484301038257650163801878813803115505220561133366109910999226860085468530818104815550440107381862475571321119852293965813338749560337652378063453648259791911303549676556834379661393808461676565755822949994228314145906789238554676908137307118335132816030022934315822868277947979733679412041469583721916824880220789096535956483626984574918701895680665135669740593483235868471170534405542996395386083590660891630655201022112314142959149554377323331096306467416604630904655048413772539063606786144218681379182010082246733725813220057595742866891771003169847069159879441062153057614735529402228235114917534294627872917370322266288582525581244647887354557104902731422296163997685226047121515337509478690588870394248061127983069272255058251287867150444422064186307982325745903988927062300236422881137828021388726266380510950740539544394868754200307155115399645125321546916694965098482688792296124619675556171764295010558427902177380158081922734454742699025221275733228756137997831866922291111248619631902488364764952907465280173935125069930670747647435281927913327623480878064011696140825862433498385342968265194643375180601753138139918629409576700083312034901779400879428528065331079095840900089347301219522460255069292998975028052907122289883038865128232456873525260870654600705211774962810914089678409626453206943069054908101609985715073967007099660272799791156306395816928350196043892452656710030614084601905437186596559886902084961905550161691162159208461435160714822529611085287234481701159515929959113573872468462572966472680997417249519676026260573023137049009882362452579117432307623719590326144174207828669624169445281215234968004420766662193369013473904513895808199777380607690615086368791757958992872559552616785309372490757155539935850645135076937075869551913587613653811789517240246703194526887137910273011000921577820916811478213498797370998123896388481357715536034099309646105951745757385227864875397999165699080557788967205900171373084667673535508561907660851185385881472715785186604063603499635850356144302002092195406459278166901335569933231363584946422914177545094975452272306169530944748294769084357900918840203430976701073595562324925661580003122386249148093261688906020236993055100755444247873531280489303945131772490554270794221234526914834280058769406814822920363485781284722661394711452016344617508510565936516599767988733488507481852220689297479737220568074030274949527742135461108872814349628095942690111258680991835303880275934548042018778577933328182454595885390017423310960085924569374438451218905731358905388087742538774681190634128449550693714149574884512004430179168752585870393260420647312679039623447373824284708104011404727100662910291508815532373698040337288026669137317337233961282274668017152305155679977397350888417422160442877545317601643618861036463644938423076849386479045950103845508816215935511655307868924387205098351875162767917267168885566316330329892683778109266319644850139004542551435029405352027133304450364236805724079365917787871503121944438118702022800715394745731387499380860698925216220695585614915224500565341754054656230474280558411296793106543307829082450348908760815261964600863628658744050506328376906007145803163917727264436331417502212175743518932556274503564005667074371921008405238703275013390337467750090279287232625719016617503643103466355773655158396526286985910744991936267279357519459454615275663185813487486213374858309589357810276664291826969716755816319387096309266583813895405518084265098807503138696923796833528251872671342944506238757274198384847466696491417049889809654722465717491210116163813264403321719080190085354129875966509287876833468407633355667398735554638890056125607893787769873672649618313713662222972987920673698496116398116214213027910117013433864502779812696059171201126570965419464733301494210689918007943222501110075254705848244736955835002163286030354729285615116323568224168463886323715924729234216790930629139189122436480514702676273659750077650423643389530200576562216935073610942647211917847378938731367022352037630509243302499898991004245700204474102960029939560326860742426696534871775139709710442766949779033105211420175920031372611542866303820005185768267088092614869835715063154270494635461094064937597751884113987839771281470532713297878582650708999272472171742973477425308373428278955573631009696827298422932778532805324454662561463868733321824419266690374066243072162227330837784561121964119541599644553119025079635732109762977887949260998610777778579911854691386512942059597183413058215059977203516846676982829367771200149696739686669702407495548357477304724095166849478024324795646482830334146635094346031258732279114534455567455292003272441131399288582554356161333309619358837029165005160448987551369999443588895190208988563164900269652538524204969592851809903766359817753559759791604424289290832054548111821787769989792551595554033229222713180781710275566871247641525552862342043532326316919435514577858081024530781458882257303711346347478255938413005186117581317533210764502733631502873967907195771741817711823450677956688339116155894511040248246181925210875180663257093949596715681383412128820033546587670172644174479149354690948105178738615918504351219629602652620140615408259872043807031525915153831921726731287575704214803878303001680386736560493706159151222991137649562876306507738752469027673535762529343949416536681501557511031187383550935151797618170631098411841779052854815969164288593565715851008707522792371138723459490290485484649333240311080660226972672921050191342438506590548071201790023045912515594045698727937112039837053758272753981502479780266145488820482185375606837883336824648926994149612735802655578729181226772726252956134024768101209473483944660109246790073612511990921482998529642483335612645489127005267148321513016152975664979938458241985413127527227114393813822265988413963022425249072065088252313311031506825652051979201546791371644915419890262882765327860379615672123414716564521221581229213465250515320278556095969211133747046037303007957846927039908352819437515536022384586418606251409310997938096224132208886863783104992221944744095695344130973986052497676055988873257620732256824087878718585500010234418424053223926617772138223991152129880803672149854940096835469299947893488964546856550792763571250345374765396296389450570036807913975888622371836042488021372301483202423809561613457658168640846014091713411175118469508069629411482702595925220658195495501453038592799244142684228249275100563845568702017546404348754917524892592989632593392721597185336010608405493696230256337495642790488288057497100409699607509164678640811602413677461637271239083657402788998217686773111281242039687804372342832079910772383891527749904599231247316480797576086652530450296985441868207886615020340806331554186118906417654161054359510754852563975806739262583983684555797530078077137208730565939281097781264898416000239530979676800809388209972547545766946504964014438563558819832259231909178624344507155195596922449892874316248636014137759651560165861554580463123965498982439655982649974167005075117629222933969104851454035744157169503384950876370990461647331961865492874045230919587008862442438303838711879598799489533010253747461393471257835944452128027972874168079661187273327387020631459691108158733427724194387148510428268300149947494848129198357371170010397716373179348348823882311636648360244452862379446181331515638703468207699910521286639256760229776407806548996882237938097799640050730051676963198525146341928308094349763036132506104454459778904892455403507133914089485872033086789274000590108117768802977896647326295227590508853671259260901529311227195905838183025837249018919316834164255922839780493091718934402703635296750123438033332560042028884166561023562246607587791037787823230395060724478601186460963780538634987169343866626692368718173526877558457175431924267964423489225508908121383800664089929342906034084522729411446552916344857545737226165554437184699276800989792907459281399085945012957869092888772278513448646765687930241436140080281501740960126696073462296279512502120677486720425068172164957247949634921585527022702155334783226138178976482340462037000455426201650342345073348945229558698893755222107487923272027289420393306055593873689991185718661365630954142166455334326065760897324752917321018135583907568816733985693511625372697352053610883573245365516429365745394675039670822589601184064174303606646886128116860495731482678522811112998278898702730477275992139470154021550884177619328215899411617455030396792514571515454670884339086840376776477604048662773947523573116563335560186473543619243994851206261616912295963406237319966160287185116376416374785450358961023762845533298665273441695074004127244713513237296562667726358541943798281693846300783009653346994189297660811703293202769447767145021310747437876162446271112901990664379335841284095248235153658633168259229616091352348134987439037348341827389448601673316963697422991018326037592461159363284882716790693276582436650388841892105087837883331285627129215841450263585371816637878368779837065135634823344237225073520817114832743217004146127350483674215905781452072675538842047408626052858100259945123541101957119890440644040832151533530002451887428776319135581258007114744387483106043257050875302893740400479545281064707989715347951534100638558545340261965225352313545070438315870268807158174075913489214784427560193543943568381486979614026481465604308282295203274341959647920790405820235624413745392237773210706386810412391689239871974606458766299422989892407296703333653766639471110403102992546572984931155792755302544752548560918574902446000329436585392330910284197473527893862320079117954924528133641421120662421228468399130202099665328538595048501135237813980936364712274249727344419393673271211253547209448244666616924729901950243743927597493864275462892287164963334272120396935917020697727030525801309410667079851567372689301619105726585146757436097343708489610694110564406419351391148521822317843979001898242852121651504344413022370046889089123936853534219976217756095099608193535891149870518128823846044409844677783743052363267523967241851546100374270161018634951079574456282420390338333753324471269557820813453784565896566089714844279875228752506760614697287121953583251545694226308948061000444857617138603811365576976701969255135820437772254562672771736136385724541389031424578082026161985788857008866699724223749335454341294878985161426223570206488336882554086543478056638939458279581147044370895025333302207316218993165722496702502383780325671052506728773520940601173925237199283010935812634670638613750495038669486507593554765486043081452795879784306977599670897684290807926619288186791499276978244404492352237730070723681014133356071054449572751938682658912058303268455688322016372952212452263945178099323443843418238757963966436929918310038694660763306696503359662871957512666116108084634867326825390281824022106393980266347522214546281937654026121575944954491782837520997611329694363222322599780372038858191644678685021036346124029578034360944514103910279704922786024601472734664731129788174523967508310529936220326029319295185591754287948288419565913453601402808661074305541371645179237083687873679672283194138913606568482540157084280479179416449314714113654303304086225039671395063576165185330274658245633576976083400006266323562072425973101021804811956081764734827529677877459388307631443236234756237043128929761955755896675221682719103145226166421277740533659270863382903739328495177701805119340562192910013563474219840580552632803621839496256821268662844256847637835094646892120480325762753544226479187422807955540878515257569298061761080595401800613146413490187205208668923410944957957227290896990297845355274512672339083922099276775418592894744788010698721770492305607520181784541502091020854722684485046175070516047544474029669518630119794338751336583245084852760405357129532491041914481844177372500717393659661205777428047606318983653293555453072624214980469840306505215114026714068349153989656675438901756240289605732439016879927037134793896491027119911433311404911170288753439805818983831754681545722700755155945603075319240822186655528314845396158502222719905524033988087430581268860851749602075009166357418321817324786119042979773307173350113966798840064051807678916230521420111009189670515958458685160812771623142870077454023421456846304471392649508935503405469370086759946289785593041840261765892613797609404102732096768834237980985735627140652843998009612007833334572613052918438215664004164588578335288748745402580370820125101415073778041679770968911731097767421725088871887077448326564166299038004444458084533267925847728742070355097108714964042383496369266335619929217517163377552769193414242830696022107555220802795806885416016664848102674630881082726660774403446773870152196409148165870999800984908056948280902115206699620071895433731817001528769442144530302092019550990326585350853353023696364945823476539021755698750229436599169280100922723461481130060979524252400499449064624081790289892213026660331369537712108800663017648817159208318656968546216668822642988025741913930512705988970881372889197870115412842968762282696654457850857903718059489378003507671021957724231182399000938743394251127324560461944507263000383094283461903909116095719625756864459715459915809780439718962200614342873974977399100677426316881021455796754387998853520788727489323481771807449291447943857418451512108695865687573654188134517934278380115474027822303288628734420866208926209595781036599640317930233234878828549381456435909351863828986621966387082558182816311985216212279614424869429661397162086266999972705411443602265799165765056405372172253584734928332494571425539983232564838354788281991494740162352786686753378692116613752007782365545223682497721535460896215102985863947494111156237224379685488516566185554130292672350019730520231001980753247978183233912073016556532175652540160231171425555371753293060555641798445608538223658347431323771189838504032112455859571375274177381991097563982048778618260274628318306436966385206588072513997985644834697817107791979163862061586003964853459534611356593650752058703683632429698598480642891456804667607348187760925232126833579806431789119717652328060646752577998544732257127909263231000195274775761625486686300858850710925985532831965071382933395612577424324810607518516259032453561414849035593690785003070003626950653152896790243960445150473921353131209108763540509150164938279127567075381711369834281402475564548765977338592348339904899935467725211977415454516430319736210474862667505214223506675267961029422663145478862110901147244466832786986497848682853469659702362825667103575808781007545113688313571047290662178791878352830054004139812670118538906780020713009382085056280079344418292373686928299001660248339302503896230190472674593005019741112875034996818295280897207477868134117598969647048424136585182618452923931439329613419010145676581458197568459177111448485816923141838425674878971291690145966056981889229148969784746759503344818384876154901324918031880546057027134463826257417022546732662917664915174903986199117797198919824042367287146439599445534448964533734931384628748572250057067687617296954514054991188708655199388889427917707636437510355960591959978631939858660380280574650135937505202889188583891912149923729631488845328278583504927324506108185031744188221853917524157031187316460216313888615171126479472958669681347647886107123801270911773621761541071984717946247320982823011783365507845040279381799790459774547098993697506943385161836281698328305673997519586458818875143541105405761892250077819769796349148657699402330835223372471892517897708552418574381635687567627398082664780080674692867978111075434334500609516289899809437056709212376933020660136981662881097831956872783330506396966244786408833901872795550524767249439184657076244767486683952296672354373278091785287440957204806827285977483073652197483930770003337781658614929926155382879189162648702980300668265618561130487543823827983181764165795340411886224505763964122219434214236740477597534030594229433287072404869594647764607311750075924798062519580921482006003574970869302705200602270638452191046781273110231599123929542536235859546360749055758926094242261554367831921591889298384786881923143215914698154482510011876974166152981988536437078694013240623496309857808443879975427443921043023722959205836566073362859249117023751153391047374345524393484505391147804612265412544086120804753637321131679111163124905607245812088795544602757820676191078437271602851543967256835143891210691901148039358859713934155691566064381479695191937695264601240455408883274488528382697811055181160218951265889124551102153123124752970850700192447763622186057328761066728414282345104673942552813266872120556061319471856324719553202001101664236364823113190109511051896425563436687613255076337043950547073017286699479704617690587136966756199619016444766198904382638566851633180760772889098389001413041334909162821972544225554056419405003539344040043385498758408049046319611687184541525620750326330813505812831014250824939261805302621199260991250989646229396612672982435322885396143661361180286426216238816905643221327684006520223934129290425537023841177807170447812804865105670656205954769987946354624333131826692488823770127331973834723659164683043942325527126998420862023526732188905306380344596439737134057506880570075774463086848809347906132084799655792976142209745386859143359766522404440073170514523411282059824554590169995806307035443321824922038872403594630870136507951387038623332235939011906417820260960124486392713668473156971593753158467179679979595933165083080542209335310205513422676357751284588847031256719575565512373422166966932263013663430806726333470344358572484646216073623887337011985455139167470134586066050964952600393432499193260063524455355441823495979639147683379712866651114636197779744173695367097467397593199042464094235634525007403433912389358173070305783186609736891142052774966812347331085294468448232854983112761388148450348722623339414179684555681701267782949275424869298994342895213511842837825078699104227822434328810147745807492176818714292928780925395117073366752129219662979904118829710617714752335109607119321170425317917613652951773984246818319284458189167250283361580083689604534829351788346772950714433974065747884428576053002184002997220127095919640964741927095019445206483682266790877384832486746479930077800936230122485081867974369599400301122433973708719623407239259497041098096299903110303120725425561386065129533084010687339338585024280612433296295053141740779665759534617806505200214105737577086276899162005870194171786923001206235805884164920054268333030523321117714705205789506115956832944845245510710575338953903483548601422906019457029796180986277926189505565784047285148093057790602665132201793198992212446109340058906158358844322846183681929630364180322090334855313261938669040822874289269294955260675710908616898013630866940915122816068280050885230219748341150761763860302925734665561410994516062286605239254972067013144546792643888122598233423459350805414009110324307483060475441701215526154968334564367777805868513545614293213412487243582467717388118682565582766430581203160274240069131350954955540375770647818122973606665515913532981584856046547971963426822022091048474083622934755175852951255938195271772803132086049679720284547215247043282359195359990656856217456849437000627087116927951797972733702869865094802489922311785779065733863049452510423143804560803615070962676149491863489587134504206702995301862588836443757684604042753686877047376586537547365396293481064261330529613687678118306388093008104671089830858902294902713576448946763509165653595003867723588214618158194537122182419826622924980523809388173402958390406410625296064234901828724454370534141191102386589520112585907746017107258674436773545691007700844502685119735191934005792384946530210918350406595645160648571604966608571231611802590334012321510880492843864894926375414193808437647808840200694656125172139581634653449681186713530550563346852337008033982887570423263633583068897311189446904516511382941732195566922373515014749986544977557690800195924310133288215050982660987537159609365689766887111789931447081396349559943782897607480950636534191023816207680709880429637884762577957064242785373940808365157202953355640241399405516939294425946479842419836748537489290002241427736958290731824009022936158658922891527782171217730260796875344310245308796810901168581563758083077997572339643051555400926508205226258189704041223900413896712167919622147095803196736032202023903401026102434277176222455967378146416099659059037085817278184307256593384536577656201794797348988386177344310382040034432967917926437154228253262638677725053686544006960592745666559602460564257122762613358144134809420489163694747559978830952820498017117364522808245009301615765971046452679801436484081830922309884776584409673786256616375712825471966968033302111863581247798196557604929250389057580778478917242087417394894050608442232521192556102784487450347402807346363291841239603842584261826052968926227834838808409489563171874498181638440929677325483201276307400065473491569494969920295481216156064651152580148179036902540622422523685674764954114384518495438315364534901414285044765320572561689607419472650862768899281738924503293806460702981633276453865952260198007280355564464224913112678195762845150040098259766339845526491978969951388714845979153271184420176486200999796565581686294233709537809726765755696696252163073837968028340756617647399787459452345400472288183745075584268432800038709099560020566891479133430685848161900508667635307949980674400965185644804901430760389329753268971355377329916063291474398284321985071082751098299241855829563631510573840873199449948188347828226732337326922320808585737801585773308018497704525081589703300352737775566194206792635710497341949121018941164994606811113560068643901941640949328895993876809510973683046271208965660541768747707378358404998678825523494398626125913192774319941361493579010037158374182227523968011188302519028549258588556099204612820067959473241520339295752501681112815543478452307751408774650099407504035910108934926058811407966670836343648823924076859723799099617159110219682312572993086706642293784658326871263282244600003795760790686935246254093314012589899203599704102494119129702393477862675108667052944861741874913727118594225062558044592547257633732733641022062733999085678115186158759593579504944645325313250873506655925937809545340394256138333181225056968935303470506852307417802471637344744689151567590127499661956358457050031454371515404660509263804876494008778999508513161218397697578276336920595097591426545900379292061967672916647223154622438117418754855521505451205397240240188234710939021344944969021542518299684237991825961043734633821092396498655808385253588626383745209990743320378778026874787526174617482516237971309824588777457240504474679734453783075562069513271473703265388944601145920073424175648386031863745566892373691465518312291896318011775210074847954768052932804830255981367501120444162668084512565189395861631253137294097652190229531797450360424109531057290523691167754946901658119675249656399874329029587302343277458348420995686796361647393593328865881516110170569280286302645104130732371638762974585394313208472795378381413891651248217406109598488032490276198350573492540237964982307328613286261685264692008540814472138216016065891396851603333136057275549466164837375811425627121139437970695734585322353816027417333385534455474475475423471526247443566965172022159212671132052802958202071546313113540378679142640990663157400115503692596780725508566029250369335627359351545198014880079248842157927895072107170738710441982766336649932314423455731924155937963769259297657955068490191138109443997057819868026479791933026167319807844663433110791228142183508333426463122185997355455482591503436228433792032622533556093901579661420246315653148227667653471621186548623351559819481061434747205192440445934724134231491519484904521040293019029249729390863255628603338142045129403080846030153036831903464109674327751612322288884621821426090322891805748064271914870554304543668986068819057834285300334170696818434624286461622925399338606990352490377730509868664051045605605755449240930743821446849857749606271960488068886889267825914371529347463731492077303568353771998964702520953175543184191930211031142223324831833744300589995654579820633470980546979654258893570121227158081049811152531247271775424157556195588541544321297576345564988060971468636231095724428520721591341130522106430854175776659287006960612353529400810120238062474582680902591748717549667791020289380296537552346262977526355049839233898353102583577281221272279121279252104440692098891866578359572805026251460640447635557088730353736139355338779696107431293993087714686940221680647352189438461839703512871207887487816708258570322518608509433559225730495623619567008548995544349695194145899171532490694739342804870153110019114801341723619973726440191318399153771036589249741897723476475254742346624774606884555199383050001893676089517934768624146609929106127647089568695392709476398699873177634038228116586527556816555911662155255258873714652456387416045038523832461616349744462001541812405019332757534285010448832652461902892171827840927143328808920781638003610276318956367819450448642821876793055257801824418773584501200650412106836900826966883909721387639936917637783072093916667491788333362324511177883558368185140454552062636154650076776623651428404693237150122914540187321022762501194775544687138974561447715374573036173888884832236164535228458654342775404042117192304910893478871497494294509494471395566625989689577261803167164659568842650320278945617290547751829474288462590989022766608306898746676673597916860860581762879948586913014219068986066086365620123351974418882413182365146194046884015859322900217374985590001895441770082765963172237605232468884293738550813358606208523691386507586696621849277669997494285349351325381037545536890831882364836309099509431200166169375465615733894996738430256135309759650019878593011144754725458771908658409683086664751923525743644290174231952520130837431274212889982291942528822674902050065315784401504929036678487807957468220792838675768534098054228584319145988660174206313427646246782250888904600294922300222276600340740655113165848227180378103337353089832902901291563898194176096935426199921546782468205021904850191826298808732018315236263280335008681588951767802415954503519227155324949607795009858368628564328480004587226450331766700090982799018876743047576637754313377042429655612494587028545342681561477570974025863319319574953018662810550299075906236975423721743245589577906271558126993111511356309044834983263135648743571339754066253504034064100077191692689693502659988464519119873351471798819104757741850891983012461960771176073844239998536738855699458977898844967346828505254479245124224989507494756569723979456142611916129752398694674665847883994468745194698660400346676525735398466063529523323219258634469757125030747300017829723486437739934625301609937874449378863434890107598274080153567475697247253635440563691749137681774108959486320803572513531532365748648966378909587002948195662321418736376071508848613311805622982582651879921609139530343041925043044401899673889618242157733575551332328934328925501422809942703136994482538246867617979962428403751191020156877581034765226522064331851305805686522163373756232923865089907569992171467565900065024390072678530751710227453552182560576133393458812919375227992170443896949100860290113172870738361096692829254135534837876765176058729869982126608384222495425156762165199364469571402831666667361921079033455784576997213386002618563489731644947041215612944782589520728386331755479272627955602151721648493221748891090712206897432820208396151794718348691036176420502938411996474985596338084257947168223966869888690883520979955425650718032604729314692089134647927733655536186848267249320488098850131264009316768660106203543366489960862212812629067787225604101417788240652865017393882530148626815304559116611713673051386054835651689343670854739830537047074030965548746857697215488785881900752441454763745243959444100034140089649686773167082745092205577477675112719965500731197044206824170055226874880787088939719683867283226857000403990623854162842707786141671592295711511173070235317821183741150202356119820458216700926483683188902993422186922545080707298159857572457860774158054623746354039204436080004970082223622835203927167332402798659560052635193188036511336404453161038935706054307425482915320368784796565915481089863571902290225042077105087761635208270481966557141589814065119373588649297196455311947876144968186022970426634909740850978796008522582383969418121153978642389900586637801682103055521788754263639359930136104261102895761410436417014934706289042554851999166759738455040357439970764947459729300329720932732972210816213236464882680042132803217439239478152890697354318058733632283468622094474088895618392237040127952534416612094957240496500932205051852930280183860008303230993599377969275451950570060541012577303253314038368503876937897096303350264491637328391803482197898091707429441787084857161035101656966013758232889265363624150241435891280323216211794926236794327654826834800476686959089159096536309827340372430548716377717921900398912690075830301627799682867911422473872534905498500314271191847485975237432810827290113006781588666517892965784986766639756455473973083844042040199464293153192671612612205109115165579361381146482878679782113338515719605549935713738568988342364220698609874967629674735556359741456077736031876836531732802666226377881318181121102026847926656820968912050312077632306780929370610000697016174169712455098514308291207369592856367777328772650915945510164367325977272078808137360913541443419785825669048830711290697594716322687478490891619212504696753603159074771199329737379550891920492525529139611624900118728790081713387299579920451276125328574347063408112877317082427181245758044297667861889486433527176380430156631332771670508757012978712638277975602749882493886295112616175989239460923151493927134941040322847500189672836204804135724796394161515784820054252857509306982736714778654386800635845008264089609349470585067570151551263861258087157614862957929889323318005288401516531662136768339467634987015235527853173243133038334653251611914486341292265716250645421722016839834215623739584138058407026115840446415201183497974697806104533378512312589647501629406693929923560911285960847678125778150061460270849950705403068571174078856115320503803940996206424392797052346028750118203869294945718116116453903263077102719812752824149548818434834479367758134737638082476144863817214595947054472522662196709805592610732279355410936098258043754877735727363799332867383114509789648778639531600384868159088036212977878997171602393638192110642454467045112344551019192249047455700205354868303473981743854179924273636452504835704058903842937322934431879250137918431320767082116325493897183645602101422027309909162281230095921787328862122068330356591940437582123838060875659935797321108659597985793972159189757612251966632395159963484341666134901021244641760168789688628650847154720988661852626179479086373772946301000175359141477079713698971385761700565121172645165475610189177384228263503282702487710638298860812371572647475453062895359680339744425184374315745225513878701244174102795733799907079879169584612041195593483815987069145888240177796609795101688001805902127698109713660607689960305545490102585226533935017365959941821085009640526878564902025492606572123876310962331285247203423524719542212987422011774464362450145530425686252434390304352802147972319379689742050716126852155194460859175335011490370741913473972924133564886806780350686137240567622232517786069848164004277725563670175915938636967858917693905485931301142913435716685863606370791080882520458223911826624638294148744677493448043787706624898663574074756303826800055203649631636852233738727374083797800050462353919112203570496703730924467056707437727494896054763098760443223552605761532825437703330765126028348898529638115402508772827203964710074243206097436352986498374452865228541453850127807712789104763285290569645551353862024276007828175289329510226184157832347297888940794497730224307030583082108960723188280618943595600419500636651645641516511127005981225127393869102183433456377181756319642091893798346269821337061056869138068800715737436431727817710039134344586921376099203386117377330657059449228059948524736921501326590316611038279698091158935308379836594555591669917905553523070841327209538076886451290317137329928453422854647679029621260381833047837905750600926441193503929071966634273569514418104259241796002859413360639326126397734261424112952789058943266732117276862459716916710516505898276663369777648381293385809491144627579870146915924364500044181540914269661257214607797218697159955160277934693461253984562793229602874738183407369886999891966033735639358603508397224228286054510345003923459946916280670251175915064679390470508057713803726679264491151836574154517903426503384274358079434057899087725804209877563420438760907724957423267281236176384048491232725305529601146051439224308176106359315691004376132928686769520200973104967098882946412985287940870619611026029282335730930462332022174189122821618884753684702366621820873415641025224599408815061576863843803970830365459678763621383223577900583476914026045357292406727078817866566940271507358296839934383595195813562520725939929440722050892693962621349322494418046570014849383971110486612325557432177099199232769956783704192626910351801726849098509939590549883524847219500009663276000144680409686607208189243860448837460608949227080484084399530271317549585242734568859571392843087364368250945022988637851025160160261043433959303053928250505109830180392517026623222905796331382657057224069794370645828760001492873402492995808097753200100853125963699672331390211306667440811783828345447026371300837415564597459066911519090669505455784001433991915677535948483882862863021274771122359978325457876381976616516306733053711225466330840857815041060993239712134396953285390190088748800041385067062274164843452271358649003781538196454031488932111477258417436781154134075270419940777398355096998108155912765339081753401063008189737837923561382203643072086763839619678718133530366222563444423673645378925966783984611131285069345368459259136892335302686987266135319496944493235750665388010235065782278664581321742699751780247962167782560971757954256835202084736153693180735025790059662592660751937553827961551760355735329588310422645760400566369562664589365080378514382708420219491695184778768368695837597728854475253740218123547849871376239875057722929999216795977614867544506600442886388330754851528082778639612537845557545198121608165587192250587554278566187466137642268417505462942332662431628838484430812955170818320823122617947492864487032812254950266359859388299903528462955243041508694269763295312532342006777735765763468899328130248452766166305112295021314321501462475352909158295540483419069042516108224179981452092033419321350853853138209807723955230545884201440993704886393993170912592555907072026087299585669895287984162781863170365365972314170745450615708569205742319676135236310046085657543574115517549110559778691585164336568495962116592322848303940750454811752348535477489625699225711024588919728426344800654947250414385528904276287304282879421193433033610269863443614363162424125351215868538500532831144360388531385116071596418728085941097952117299080120556668977297384745843073962956123753534848404038524473263690527059983080279983052679966208946606840247057805828216225631214550363937042530056866314890256609032111865553461360189284415501490565302060170952995032399625628305476454806343470682376104667661646159371495677213838732059823790829818054842889151018397613289939334906333828217710839604836652959887027582353635472631504768711880368324041889963028633212357347972027560701708568260195036135089485528465123512455572892499220453370970496066588552867458192409335242927102634685361321638343389099978904519969006117857670748712206483466431292514409204811922623433931279261987739885431572490519591843832588372254114134254489950784338779106521800033518117055738320854766611444754345941119879255315479556922580011689643414236145317717315304983912154737173405038697530125147182949731446205736254336491524696407187834660111111282465036943020200833499242668332574844492732175655698405009717736877916517063931668481691851271548272898769022705245936815908617159527499018038347213655738217162117388722677351044741274255966650388057106976607129853943691767377086418847907304733264115297452486309194390216802351914852515543599332440413050876193812774365904776058406561041176447699139166801929589021176463042789905323795585435675483519485259300135565859452808490107169152929256902932031905002023649041310226675019578483579079444606386916164606604847920346284321198164673902910955055772497739312614369825541387614159780223343370509338412186876323307504642451468072715310930204496988366707188349595955322125313990918906488053475182404064614621288544789926059177861443284532229888535181003222682561780243730270227222150103313751344120596780395989938592905723718694032668079896238114484850482417692796795660962077281370070063839632769665061552517596868717740731850912811076621702713962157819903899766672574755854284223746164436757302841243953464357500524061261389373819204423620987799394909045274803373821686937550543860818564836043640830205975648861316189805701071594892616141860494552248295663423976438513710031879694873314316463860621145114049967340434013601752368823086824568898180191960753440757526551537792100413764072321667952084311982031963509574052110715202988293758139526398011833917965992622822898059558284216241072919686281111689370086201680691858406578305451015726215874583526456657060387532155725918460546265594600885224975206271999185770544956324142215428126876029391234830510428620773795110681283144282423459852908006645996663336086332775354542992405549671609724929323045218672094454928494030920591122986219182384200977712807274210204693684406301115384994004821218854850463273885886397114580572791195148610512139330426226947907308908801364558965478162507406560169367218484246256679158073510512930157531925179892254899996784043971777779607397395334673744002382143282849743596708400828717868792222507863741356151794891632793945279826927054089711209545431553627111418654713005197255245086077480266446093789681201549174067850208625443236225610234771072506217833887591597568897107032312917147589779729584797784345427809899382835979645522856783825014515470068359624855578980559897089077100350214509497222360001655367850199592552047106784882643883420551647412040019305216236178818887074408152338632007594282895074596851340047529567709762130576713905841384945028896564442490695040172766627391445668527891649198646254606089762440864457817975744381690822165936280716488885771373276429532850377987710040723783073274677625267818360870166248166907147827630341617570362955896943805261263480942106254935315758173389226432516691374290831040136757513103440036576631590341187726953967598174039398820891875877209113562066608717870044729985397330239901614607935612785808037028502835727166198650580298277269494348759249332803861264653710561645941321166365779266029693282004305043861282610437337447284139099449595086720691183358335622678310413215443203663684997936813704293673284170715958577954072370167634441413066054139274193617459334470665754973891678328387736651231086206371836335928593057287999323800163190743808162378764334541663573609712140205741180179402408219490371397286587180478031468407840349753989664914426778217014356918378798555161383326231465944839625860832077535826754625386755527199764712934149321493642711641846597473949986688563436879012312997707328287897585405072409933523960842783257281762297561258989043418414967800604840353772722200356970070646748879919267463320710757681669364927057374333851037037631389589048595509688806122968764875835743656842184264004284956147090521730804274521236350556777764793745212445319544859239423029160992307676520596719054713380760351250168040348155396671551453651478324990701293638265373686999409163804611918159737537446008351661245218503325754786088291362304494953978586612281951015643083397381286252728874430706766116310584747780016206722832338616444867827432811128647165372677757218940688787824425700985631710256414389078588485410102450007043206390563721335372509094688360263571409742928565173911395412289321135924929508263434731074245656381217792853022233458898239386368451029714707282117222950748648894499016654004317310847873031782596767112612170273446197385973793966545872998130948650849190417458797759785043529613089631457694197921148598716465140532229430539803566954075812823228883335395335437446135444455960399153412660055469964576357537262444903316669787802087507643291623506575342286539075119563820657955715463457691942609146892836937515224836831738896629789846176321082798775477425981653808856420139891406564714972791906905247763520692665734592106210559040504853630504049868848923062155973564013819521351243899597092500838598419459204457829852491219003962455218311390331431835942741119302012893641088659373618705973465043971304822973749566513069199206407007164576075628025839584622785419421515334488546845717338333762074731739641514325665375653528085147673178674393333863586613907748041742389804256313615099446811805896355200159341659331704861558318501075586621898931532630034504143688699635300512186928042740978860036679700389479352922924449015331704495883368324528107754425985028932881216546240645331808156045812815429009162940368617960223202824233624664837679607949430571474713766814853104532260006105798463608546031267510099800482332648745717661912120570565485886233506001785365821689878181346502114870631768996139409046109951520523256841393696672434775674390949268818284874998956134581543934458213001891817674747579805832537898428673209758884597456545274117792643381327656923409484017176218156070860009266583716232825810146981779365329885645157575992306186103546203052752165129123916903217932368401068031497647239838254508401255338705783598131109388086208392836858914650818994562658133651546995754894513829169706910656363211880413867209995552038303726134236274624851503275228688050909756183665324821752105202930212132057435891165833435216673542648716258646425622093346429763386200555358047148558125334053664319605451958165258885021968981240039927607969730453291493107874439657110961840726317163025753165984913048349744796508611247717167120730691120777177446216718999393250065325504159596021192083062611195089338722777258840322612881164611424559416126877344583541974346065572279490386728406571327774415470985513294412920079501060957134907893364402572209352403662905944221868044959310610675338313923072478956056570060508164878450660120220573830483212225228177304144960506979357546069713624748691720940898970976514431003638061276522661818222515955206974189892541471093615855101659690171332230243647807598625259171687945666403460724888833342882885091407039558727801536287086833039008122953749502984988708794933090892203329287968390035519103154635794911025727127698508876301529980569590296599956118075413313871525168571487369115173645585113124682263813644686216477158602972581733554104573874763232634281435863645977278866050572513849172590982489206285460842917241111952760289656513659995699474089225212366951210318896746680060476642384848616750888247786303597390630687656989510234663362344823011891330747228806968693575703183286121603158541413727881709007284156690193039996202643628220329715826774573552821830474683491858648968106247236062981111747351919143024620054718747537777852830558772009711434887176403709624169288155672822979741020933331196981617727055871680878193643411452273391347704991297886928244293002287620723335198320083110925734597808740536963034756946482230656030457835833803044742841822634500926025862087385687889971667668640079695932883885285478390173481166263097068144035928515463332302073906758648829392798748693616433239051544052055785314543316192580396965165876207141173207190170419366021261993022333663909564927160129577349052374861411067271227562987266042842567325730340268094493073204055596777035947759610319182327773309345239915105100208364764212142864928008070476988820343767992304173882180036462272827315607304849754255375588766179562188125731531406388660266015051389097008605016392520911682067280938375420836459841537515691996285041803716949528433381500575112507861930143226012271509102098094714809179109433380575156573441228686348790313255461883359107627288632294547009265234614892089227787260804206383691461041597571803575861684533733937556088445412406533988060817859162679703652971651241876418219317106674948340869766672379595509078639273983785074588067360353947288258879678312057555699182479756263323396826465919647867907785770872976317648759004209406705474218849498402281592269036684986362072178839676868609516251875034841944652062449854706024298313861006482468862423202468223310740057056845114607164452500405269324670052232991364216504204240239316750751608315880163558221380294341373767716482055546053507821911000667086707271441589359806570948403794816139130277014594511578729166509330622483288110526422790321252671535833837253422710504274626523929531215574723140657123743587887130680668127466963499808497844972665945340760208089714807366658460175752042221705447480713391072434582063638202865272705263106997497050619704216578911682410688469980236848594912086895401894801698810862558130485443732408363899762913142183351220290893559869608731795501095382797475346069132020073269709544127346716452190766462052216843953791689175501692605606291590149494870857382803862113277765268496106441923884440527051803039131604021871611953441861438664569124359388163325014482540287442525163010189445602590186588887623959700060626674225618605883284528281020462514998612010113786410216276888978829141892976059709957969500962763209337840958527229545177916406641829051448083177339988488704528682944851486713845186417949190280380036167540149107781408433119390646814676263742774945640280461393995901122538191903125207668457131141599704890330858376866100988004541353292617382596305183047937862094029549445041014291538082899924943442004546144928920279585717456368902385146416961585717580995831693285586445502211447779787712825594894621122640203875841280850724701319564525314017393743584474853509771598660417037950968421977841745547091529158671666454031127277317255256773235631805295703732776311600242876791584296140633008136194033255439667705536738423292431457450164112109127625283890704280868309238713347160163056734500764263974799051592721166114982232502279397880173451083843405180147542136308181823573414140636700834562722267446806080736352097699989840016773453961827594759703341665978436402466213970336102231601126794199157526372521780133354150961684410880803495438528602698783308745369504189160830461809838858744005609343081950449802301041288647607577228076427173789555795886696244864167833203377785735833775411982245100069335372837275186270205350882626950802682049721979368258271379101341665799831455526111099801275720133888957861103585706348177491780267018618276568536951602084668163225264271381937615717888814597503753372496450548920543104602833709792932603988651598870536575075441821012535009497725871367019202142220161000069769021931721501546587329651865536169800696341354258027087596770271211013569565332787691361581825835636280490048458424237482445541064110959610852139778444775636088544465350577754537078094530017823454449196393541967121925593013591648169091347191213994378302536574526066660825314540352748403994761843097078321662864272667683357855743323897626280947561549709504441011523973424132081994071353695580324024753060791941509905652109229666155964625795434581405940131054835557060944310303919788571884592316158312383861589300009362265258657333353015203068844254599070528752137401425854311542475227592848762167151228083471922037149486021192088676870458825388241148401288404798170431419037864113744956071590587773108070559117354898667264437429760384700179458306020129352886476846773137730845522609612564666190549599605645319465750257670314913178022096886252800895108858723656678637141009597248812655299717100337160240445608446347517150302188763747910172077998100570386785257600151561910052903249700080981755862577652610192898026053543931284903771508967708226677450847190873488111660063555862212511247874100257933526109860416334859757540105575129400291653987959031336429073632603881342378774007474793777958498670786642175613499701000455417252202847706954958217583628748302727268725407196228421407313082058897944653428192460010083524650828514966752036882513530680330482903199259055784122092180121858686038056562463193339420237012078635621666644422747796555724117993187874641159659057143755531243172384895347089068585688026210131351046164947138306831202145416723161800880775572929754805984697396941840741894728144939893994952236905891763598010167927258522428360606799388415733077708816774924704901634109923832902846373028494444737167602120485527513274768909028904864462685668931531307703368908855098343435774034684622493773639346475352268028976938021806197633462209315235086372763731155813890771212227757115007180310162668680928978228828799346950243390245294636286880175828738249299392551961149622220385116178774116200590118403689413159575772900435746796268366988793280567113343969180663192598860434269894590197378901000878935719300119557741211143914958386029415461555220174493832686894524441937550652911714876320741239757161514905611818046729835369217499578650811123318848346135977916114643191734144121669477809086232113411666081072955067833532276433517679186254154087219125439675872430036822227631825060515443848296239433919133145397875926279609301739493670236231679534346296190828716389066552239732385282626078282369211437689512097777768573157673106807078907491380851748837611760040461605340878873605104297190715009333800087084061491664508029159336083785799102588115083128712330854049546341331635872344443665565592774632546765371647287321052275296322512959665285620379164437677684260034164330144559648414194740165613756538511974429949641291360386441284127111409290427214171801143637514108199051858843823200234652346936243064434019712787323944039435958106347242570581448139356812019829943922919161861444464804664755319599896792012881950851575848354939796465159638375573621837336083674660282676014126838521187630772827762701469806356501075147529972870860923495332845843007359952043274856549927014265803116979858271719380228495080595289712467936743665180808617626395193808524410893049634292165190780836935920529529917992167497552046975231656532060921019695379347045059176659414437281652720981038430974054521260426443954884440248734713848583391949561181701769194341326835174304129413379831158303995670178361320745409992772187596390517351397809032410860458230201209443596640528817399297757100090407017607587554607465825749279275664278303278641967596512227684847353356796293761412224425068907186272494171027312447992330054651083553555958712617232122775579183293346851056796145555389676597181074331033211178105681380110034177084477959047497917181651476438208518446336975096927738563192577685615123089223125919752170197633901089558525684026687906471663026351585123256354723364337165893617653718519414358854335953436546907551721240110025753686868499615163257516002313189694583886167620063999813060855721903728639030477165278155925033152653250033183428959983322749633455341398922917556646172139801387259295634597746089621189951397466984330232479459165624440323724299569503734233546085171395310690406112302242502010529009494406148148896098537253005337550205500871633249973741004442982424462744792616864492622782259364632661834600721387785008564299497525625780604508327749171609857485155545271206666261971216561509318440797745999758158089417136898640858833843805916420029418868162683714009616292817198322593131680138464106166589049177610281392935638218932018965360637307651602268549767430997726324670107267554249511256988880645568720900503075372875110236417669803325789171196658144228209468117957722098895522672410389681021577381867267117989714461663434721169228622918980788398326252111392028412059671466901875557298041704941979365475680053233312404459349485166010843539514689172685397071326112693071882347416811375849510685039921773326268975519128937243394252169257573186943326047110222584676026634866733551961034974207084319975058375491560371079332422780290235464478509031899050436792531278590495657736253994330932882811842993602911974339476293340854938619160989713279079802866763033575750969954029002940395078713102387117324984336029120143446651477257031270142110723157193845429507694808536382495814711049521805430314822031212991395950126469665373217127649591857832445135347125146995041011129396503173182793341988623557813549096071588353481775395629033438381238669659441416900281337405902669226895389972125098139633013984236839005135535817113218767618165347952576554853677848458656016073537780326829262394644254398938373047904573235273958452789601133362235015712187652028001021801459596110969206937664762500685860667373064615572187477825902202301270077570347001896143017229628144278639828382015852620105455320673902343167978256473646364406546370611660068354779366397223730294056091789803798160763843018939538103829502126781701450509817679117050524856753727394827734142477491671088442780319129220884187658407370060964892586311879147765991571184314456005250870741738204326618850278307336347440520283860260114867342121247687666180748379878944489062633207668143229811265867628121758193282020107814351532367999260171298332172165902450126882598878249617686168453326329496120790034561950339122513058249840660846260767909083968066391829216806347660970526503223393836529025300111288011505692086851386543622976836982761119620374596320628021911506343927468282467954375165647296594586507217368150320394155101516600522363179383604147660321768065262275899886826151782290253367796142221849473430373885566088541157144298143968766179079306337537161136324961310068282382206815101044606839079682910617180917596542816135395529227293341084912386432083552490104279913265878057061125749551405750234296313956225450114897854685024956485133995880105184252873165069319259550753052912426421023612788014426799219463379050946034116537073997150266597484910865917406890454140414830796564173852005953913919924876984667021145152462534563813238529497674471080961592721162057960228722150901279873889217949282190354485243982453781087959977150858181367543624327505434460436136304419834075920732696807241960013631146108301385119364318925144070520514643605469801910880268263777046203163539243031314529402467878350761210741033907027902831221522886975112922046807144930654752253949339831736245659023247049993541309777449708095551309246058745265162024415181480945184840880803408240245890362868179737774376248318199681264416666706541758176483186867122088133916305938712660870846246028062001028757130514343867960486884834652998333061054304746278392393008175887387756740718277884365102148557337944700461219330644675624798217614688238851683408957427994255337928427003637961918835692404470545670465260964077027324373825557084561293487826194167356234536422053722676282394990207716209709552729491352970934101149071015428492280681853382091847926827521117977963878849440852919607306995371973675824835852239664601093912731794075952176083383725895013255628846179329750838736706863563973231774481440862105775652335951563081068451183902624991915111925756500968366993673703750355097517356506626444329580518315402165523582395125678571903402163997960996027535754320544690303339084732339722862276889961558221068560171827276560801035499874335485387257919462181251865848256001323455392353391955675231854316630815279249425010765292649797091319151216037208561400430954756860318992051129880315731015403999493907821137556286428423101871590538399134034898613129806092988994823968642603569494281688138845050991735126056799905982100046819467439092393488208035535567163518186898782917184674041118799424734599555844513850316434275297778870989730478125138605059971297954237331377895417620372635454774245377418930096580767237058281038143620259471754288526722521614221400253347332434219676872316291237139275127008945926579545547537560752108137299836441532715065067156623641717697940257928254859753209687266456300618021045990317285598884408119673841723203780652715967180678538890334606375243657326475078655086762165345317837946851839637898816591427117206681192399073556551352685410286306972139220968899391621610673033186294622045523334907562214295003256946874389168419658166025244193808173342183084427060185734657899159596115515901410568121306239964907222457131574727459226076599460701188857129553525488604869665357126467467853743887074313713294607514256966316595484334289794491860070484083821057083823550272625702447801750968409540912893775900488310840825433527167077549421474178267284620388505196946506557702720215612939180485330467148393825927844971022626891247277565545888916456433696540694865010228039736192558626821449817310565965521428934040628134639732624353520967873439087026125595952269879316704834151575318950166452715742144960703078280847319100926236339432458127948469401715552998497013071285037200841538745316120970999821642391657876486110489493138407005430409855243984334962276067567393562795143831023478601139047500187588948498174549642524111551886571672338046076365951660049690684299298991657905709527784876644431304390148366800645025944226784119551901807977274677235629975951118847061922630424180622942787027191683941907593592675204995825625300886275944529016383269684608632238450717769062854344185889383104044588980069194770533873338089606399203614023248061745129389805855722743735906730064431139950071296341353804450943410096921823176030717782143523704499409061074803403427446576293573368233526571465446718397706883134225965507820553311749899779238734985747426485813375911269736575585028385415377193553827251378593930912464734857809911479350924426281244815149497569613828044678135003807726154373331414053506029699833146939659473505642177302531200727001278159935491326782062537513273205178869713832982410304305605874899623409076324293778322969830444411007595512393772203017033096320869061125303566937649249345028046074068828743379120851232058301500213141002123656212830258170286877850262309272151437586480740965201796741199687745593370005393474396726973527950494392776506369263408548726061692566831428446746688896523043805643708906170487509526143867021548700124983645769343326884986549712166298824674401293583752320050890146092189170863673698330951570419787151306920959680425123558688853615861460354902974600320879712234782998473640290052595087796856989956256711132564073170007472067701827109792719173793161340371814796613768252327086389061037535811042360253190981823407761333881905065585779501313222962336249977362887185790862506843366995523036619518701644719220227342429359039026249801521304543808141855869061363269943728725165590599803874222168115436889147367441936239831885264456394570223266252661870537022955650990272585858861125090689238264623132720896015533281185695429895026600671086734564236728354010847895657233661316394548126535853129989555219721986180224633891519219740881536298803230788757641551991568266244209113365560385986830037701094468710247733079237168962215273205720571386866163765881562192299157256611564329575563727853236522627775045669741348242637053996321674645714256394623952942840337491548852212977162264231815839727136620521864847351903281373467063839497351902486521427640187179776356970379718000833036549139959132825520771968788894550181383275101950797965961475790279556898398555780337496062807673102045773768694737110734048006323205904365883252302950743411834688000938549416451439627433208437908108690742922066416017017857158674894582024441349526186258954616449569502437114375072730400448946025572754483427243374011039550556176591658854021163360978467950480515719488791030364092357957928025060708301942375026484159234051558691119653470022250956342420915404706977290332993652954326362265819362292073304837508893188693296395109102322367919519948261367033388453067552066606054421747712908165000248300777485068943548284559713389651307670358680857154800370782532582416666952433511627534363815329902747766091842166306011568797158667215807826638710957985646192765801812987755180203629509157661939186629660815068743577436440389555371767754954393862296532425190896207815917329635613234184805951251597677906796733993488440800322473901876378859285044666803435291134659099479127764028035195080627411493392061821051576424676002583980907473430929702715487622708214128766830656098895251558167419996143632706571859996275906430939043782656202029693490824412458784158440408684526136430836229257282559629335962934832246782770741604316605112339633976742616493539811251600035361429573399951246465145736016550816058981960263877494924930198733173022943271017595177731367529995208726116437855780721789795725448903000665673068152781714958413445564444175333723400467892704202135593242685727758460688019810832897642599351766200916790531641733942827835556897711766468823996692911510951772888861778235501942030376053504699624865478738299067945524317474225500580387447824103740224144036415815865917050456697787208605736834575699605684189588017053980649404916259248275449750959808650627067131719723593773038366360192670591404637879896465857225325343044031992748556411292269904781746942062655303157084462876002728531426779639537805986284161352378461397007369708104028125401238455214822324851238281745872673500601655361114140650237115937524604371413196380760120970483704962282502975277389606587951812506431932852615622642852589929621925503601132103702090069703075689784249515535313163403695613333277861728195420292288999410226581268034815313639329491762113502704215481572198563161277161848118906037169353237276825435872206241228799442707378390520403060869438969673457900723317150981169611784528790958910415433019649764872859511290645687326545620960561646601725263214603713192308480332832036832901074454086835445519288319379423622037685024523149707883005734734158284549901085854416256079307856135086434050828817183870548785443228821604265819906872249116781944480706846387463512371392300352766224989285419166686119627888977074036542959757850027811372546411716462389841990904347204327363380437633274974999617710612118750073162441813895346994463958501391916047456213955013893728045311657012948794847415652093042723722160017753749715750009442693401179414881422249663570017660112461951031124734661684323413215872780553218410884631759818683568198238010881402386238011052228618452066957428207309680010720953012453706579088293905329699337719469930042983829906138607274951437704183166181623889198054422345032251885855275470711854863177296754769425711809844615022159770143637863581863227656204473100535162379808103882801928196850769756976808632015830132471070104716690571218290878781534647931656274610109181446626467367455230632138808926451860519686463381657879730503684398338601616296222109497254331527803985671059214667646926241271495777530841447462126021242355810024101690326278450252438199129692538649266266707095770014721474001731866236387034106232591522573942623131670855500413639672523743512400928148095085066592268066100754431344000321260213127635580437371683066279265164872955497620576503963292196602340248957213586152415292439125392607261260040764069999529107040110567936002333689870132150145735223480823171007275596791754676172377319127397222162783751137307465843181065069710477998642767796874320128358718936818259196997107568236458640924250935145313831627957169200920361377552001833903581777167420440739625849681088508111668067071863426516334257942132722193395792254005852884708178011715666015631512088720811561976675830508183146760363796703583798686508011291556090443741097602354685875303814346101861494340263361927803960529700991842149322085360387442083354266001019004650783582952248273565620835398251296581452149935930768152757613186299066900697219363145747781378590348021413750443736514723760952515234010742126169931723825791793227464497247120456232033598069032881072083062568957317661021085680892065663887704589909542812064060119593844026459049962440953886541558831046944019819835270801607335969123989115020235813022233085911626927412808061681937726075343174300486542285489770536732855633369927735072068715511643041407673734605698373800673434264309474442693784952465607831960957649241055458449780132745612507344650394227056737586496578338831462490555409169626624085437708178883517533280582821857756532671213567377400125393624667728132400417590330349850543027366846352290397101753890052566959378327439893266474764601636575578310905879020465402697560903107106276595146013824518522696401118980376058043089504337681120913294697398594994248971352113932464939852037994432385602995197728223659378275814952049578778860499480027154850381689170987531233063424348987926220002402510641736731949577121038276252335378988558052057202311676009484924311996306740712892886995561126214550447569027251810187895129273503915155483102342481475525611914550409231965643286432270981914207962366362066600874178496194324681996115109927336559702318759537152714067104262459408050063923280884608936801675994634436501224106116477247810043902519826191956529799271597218912102072373622360672162009324837804258029228816027049981966175288127928697568701564341921231513364816779596464838932087764720377724010979692571742185343082444064598227399203022876306273312902883895100845805920419893906932914212516781561499671999079193092010266751468312055807741407353003187660655982081943735187322182851674803941274495259604619407160966683133442837970087033497920458802849437399295565999862173915161265956631272423639402173930926846426422168192128369256801470768628755820659658481496522541937533571988603822421297949986382629282046753985798233348715580127827209264048299701756353753695152811586140624137934011426471823390324345188735817907810247162305648257036023931726826953681860022496906330688289792032092235290927519992988402064027617864904402514039951120973870350754970884438881730895983173577879300714239320029027371734559902111688562902794864054880473289932433320555031468783660042215914017740686890235980673288785449134280355763712717516849554679065183010220439921019265162215839053351864612096537107034280805084980285388630862812076096361462415296334293203224944274340522606997540738402123377156413330285720871159800665117662088316299055023280490928335772630346993238024862488691063145797184683886175025109808279952934188095386629252581957979058698141923766497376380032375265428749183417503228545729842286283252328285778875850760948759878208247908064274015443092149507555470847425347088770889764032744800776785954083412602493452678728873616859769516764371757300428405950306997416717002297362678639395379268066898095329446865275634004407029993514495807667265194860485693584860134504048944353967572735276236083474689473604952040187755485848994967512587150546109735725378187701614174515260391782886299925266722172533355326205276241379654408006876763505311858088226799119531182959636548085752164954135379812531064171909854771260492593839309044319513547978203101013684483846325151710899051539404409226864799192395974250381074590217785414425621125115632412806480424085522919515752353594880359326109463833571563065426300557147963285535208282871889926025350120234942110401541013273221950737653390836755028170297597486348787861050842124296743659042472703187755998680727512983214471230084173731537040907885900979725449309440801394773620163808429091716755198128287348290209720321458048031685879766465551590505033650591745146380344122163587700844592719112829479115453954650356815866772113030654014370618224142380044997655537605522338425991321825312135064485224249135726998222928031111648098738205627463909148471120355740186499238488407886626404709776571065110496799740882005040774639068624324577797508499117378763675910823010769289565516044932120610186153320439785732078107509658002278803889335360894626319986978076414684670664531986687113855249857384473210947834740310706280227585306711745583484299951450119845272779838185154969346313810427974405172153208742518372541228970272707727447438474642540402631771240860163601079885739766304854862149827900156422930252477221639410898599413114898620629935923317721271542562109440503007430784891547181298166573644503388819360216688807893386626409241981198338225535287699214769943159490702768065434924262097700300713573472702170088927390675356441408758200426756584701403565937215562674370871949173955657424239740273624078197084719540217379093403166523020077083853506725008916878703893557847481607673156290089804823397649033284430342463526905494551251634998757117427239659371394530352428289508502880312969976147001498817916707365629111248692992693856814039139843980949767114372222247873702280438716741601078492280300373682110266853581756051114094369913783588949414058359319010591512934446198780308249721228493671998738671357590972137115589437749551139268714250518040748029733175422063708989405543637122172997510459167519985712948006037306518222203947720416645420354427334967617821469242372552318979568666647789713057355634253769542906679832895136557804252113856398304526560844626718182548608941792715970936310105937955536597103234872216729555748471683456303394224318353772442190963529348418441055982374348116896676078692464085507575928057772452705034973256781226223643985769399788883842984692062741794262762772562639173632050402257843266461164279295457676784489738963654531133505448812962033201046716783263336604823177062715036068837328257972863920431414244201234676677664391461977535420182695344523123049542236427765543381370466010246868292870078062111615048118842885927484125914611181723245680821884765528703663255366087939151163970871927711239205384339659697849405940838741938731190137916525520553209339142002199921558307359560807870613101845860880431303242547532154063591755762948837649490354401332760777910854970345682569787226629325791835412624353517989171130967399583542918107919181534463522540815147034214876352127606999218884207575050658640186723203249628969075764823459231928437021626784405624940911628631034146276118127265794286536875941424947142988006641303173826269019549828091012595880155612816048356453740468602227340191209828732337842582835290514396871836966643338865646205554148841123217094694188526735239568075097529619865792615690334340043623747667726258983139887992202539243136737003582229040274174477882215840907804745667052905705158702093123272421117487635742643211914320167958160227827207441985341368860853307577378073738349837882907734423499349061828053620239228879522484122649210287619394829733658537832364894005256552713780272301595848229302171147256706506194427395123216471768594042887035874190019225866636353257857923172618967987523982368107016482093857803431743669000636781355021555227179404736624349290497865880298878715743041732659838484986562209827833834587483442015792611349564384791482854780323059010425022759838791478013933893475434574527571384194975418890891846860626725171677174852755188666201705675479208245298830951740261256906687628317933081041276454125263081614065168026812326764805756999382931096472723776665423775746856005962336127193096172515414487550119992174290300086096396024834529353795517559658521490681369747886824741504657873912594298570947334221727616287486773419959509297082835876043469692529713656539527173240956874405068756485531053196751879083654277144509682809244723683016691058366552455543598987732366297396778298206481360148208831045546103831495497147215383148552618444342322239080428226430735395811519085950781482760649588746382101228014461060157266032332713909715605348549814137832735387084219869719256550599069528739258327641056138540014186977247568508908898907448025048690838573893794692695412938066005646601211633544925625507751878774203820077802816725671915483286301460227116956282055811372333239562513015647212731291485233476826114241747909730407750066747054709443266993279062029569262659644491195274549411649318411153958281330075777724925888305056139571287650890787621274290839384377309825605911377238535714130629002318323329702486459018962922833070959369604079797357375170035549209591099003345818967226475368837144170593424625494348005224504103117050134671122483936699344398892512646445906334720650212007314079818218202434921319660233144689612158499257525308468044504709315726920408346126511041808301255773388444362340139036158245425176762576303364404120474611587288360897693689236644935417003853776379238033309048896412388687241380171922195229425818872314990204663176727522462884103710167202777919494122963107429425398659593971588391228686130972318021043131414638303153516675299665979084496455989648226584672393677726669933797366060007579833714250809768307351268667642156410091846459567312581094042257293652106143252647996691677111334791948358708744357201457299486310824814371630133505150346918455752306034024851728673531052681025267653204590381944195826535594465116586016913993978993327856293677552697864353184502723362528577353317700622089906546977204418588550737839351545629684545077903981449035220940887811725645723609054274524901296570107870399598025407086470116145357775949075138134072569711386628967328232168261640085525034284760462645742810855878388382860559318899483233965595262394972462199418684314462189611916727582015034417372996278702973556829522520474181565024805413676195910664027244594701005178348992057333629401087144896682786983876337960271666821303681084081860656693986712878711271426839134756240845665435107016773699206291885497086938897025099477345966967651462051168427257213281437872546982358589932224408952556326995023520642940778200905279361980130098453991884133452880842204607821090935146822864384268355453778787996066346319480419188080962047816293829490421492042912813297009446119251591963629434260232132801743880781873719677879688101594555641258250173485060398945233704410301300792567253920979065944584708839405407103970733955215878645424462235318750897737182157222347571090195013093323802952043461513305633302767682602237014790079210887409930550768791792212240955120684770563544161844397502705465748001712526590708322146144866945314622062211618289972905187993902347094168614550961202561354404624552945622543605114987300188740660302568329245008577510396834063978656759863231290675961550583485244638647686149791763174753219835826188287961780674354443654881826554722727781786630598459561832653469154242854382445230313772247406213866246827076773058918429927382277185634625886717422236902596978518477776698087701197777570385472463534923351803212687711457888233868361682170313480013467015627825083443664224630803667610752917328263294910234874468791484481982120870701692751990046852019099724563301312580356959819308345867320537567261437339812404934562963666629330411555750415846301936291181067916005300457354248241630384356444593258083510140859477812760687380995025016071099107909903426639786948668892272769279712809633829653704851363708987412699566006627646795731807115014552900710071688064826444604003217055389356058312631490709736475981536502366970013215766807864010167122390089969967143484277663329593698912498048990400278213120052234767323110050850547631214759249124887245590662958140405299446014441688825337385343403254970997938094595597886733534620056246128271884824954197801433421304018934845925428564257867641665813040250943222256742683589992726597948132230967693371270860716779658824699325495175681271903055155067131912028484464909586693628756263640586944013215531938799179896351049795746197912447244400307888561051786372581823296417381802231229185996059526094923788269925193698895358704885365386489378084809998114424610240766824250103106812797223673637357660198776216614186481206667366573471336865334778836860918551769917229359337140810877050809566946627441607440038982363708666197702872290101227654762752987477974550012539413375690036056813252490536714174435507361125417836812642288752157461954024046928397056966973175815686474569399685382106939005177940571697375326931749037331513820905547388842958094863997425206305232323473418262124957894238369478690235584286466542535808037091489816857854731139034807923537162385656117452807772733275938441081969684391118807102367778447672723738483017919546977391263745143370845067501797241169067652029674061852741894085020160010183783273535886838511256952934065316165433849746129428417166648898871370625653349396028836646584274327779207294049180884013075059035422061354492969438248501161456021414609707861380569712361665753099107351108792030681793877356097400698467768499520491768046174847651075545927821399897966690893411478487814191931657948571840774216894249329129827978984391630784952939517556138622753536637309183961288930161848762460306975322561245451275077873525983253219967192940525791139367146330336946881478638008431862706984987766048358074997851949225863191160865607020125323331659519251227372960931383613245579101079725367929382261850462464639859052187950634470100058945892200716219640740164616656600779946008563056302123960003048481068782892287048104441992106334643205716754381223292237594990741274346458559850957184741750160071925834450746532060553687100434283715428520778263978202282582822340549095108443772722709809269320886655516453281722040741887999811342481354180225659459946544344226267546629959192274337720978898946533040535641415561147087160769504007493925849963125938025320942144115707687180811556891328535107156913616605550423719925423831266440260678466960836847166710043881740038699280086286283192695692005882117931141663236845204105429266400984738391364004731526777619842981307568994314303482337716314552015870026520843944562630129103174071663882119115223009048231567071781997273351991331705624903584054503180202461582083658700423410802873344426741773657242695851328704657985353212211365230506816687528392745646140990964625496239791139673259037016329153306582531547207610512709442067527985532435861457703422009972298743297771471000861457498453213774922493829932389274049692956907685797340631864684857408877326852314748886380304201709479243289080596675065865700108729055120336114459457668898077369611315499299043356712042761292140112644672646591544617262037655592096833509660973484020932197006631793867931158576198996778195881792469908640252674300322431442020490311142987553718823194335030464636653776880367046416979757226096985327301193859703772839884921381236229421372607246346530649797114028817022832725566030335144713671489631427546050973769301478294748072574111180590731676041257385148157180486966082826350101414071284653490251458329432268450707394013172628000567672154062984300054452730950130277861020922445217545979359726606535502933125855877622854478681991227061421239362289599509979697900364879219309109855033282934871019069350016085243113663475287082172509910266003052057825543333323325477768216683397269598564472988371498212457898027360177131958725689675840553567406743601405160698585774477762521025506540920022061808252943777547888243538029754665260168624886978644828626437345270210353682675145544207746831559984106605895843334411368688910625358998139696297560680338109293934854081436098986369154994939147587842364027032924330503211139381209190224863011578336159591786145638846083200284215233452417895329856137664355565575657249660012592196814440102333222106718894910245480332779554869146037494435579614679598847516925403017560459797454323767111643870356972172974321200656857518635555125701370487337811476551348524625121584546563095137096629979874029335319415622178263413026680189911368717452540886228490599483053343437518765800097777719914457244127062738473157528404478168007307121731764948194175764067954429436202510605931124895199986666978204950390331657174542021368958762339662969254684234248817992611967943930603178542828267217220294914421585184864885953563846207243396292984262907523384220198219430751065708597176977631236017420353590470116240398602203709051973671668980120370621298406065366403537744069522777649672897521775357497440164021191815446993581682664368969985884319986967220895832179588742617284395982146224130717138166900474973980314338591084149740880495338919553650579973775789540861475294493250711086661314726060027294812931878503828525625993569240137314102604497167758621922470167879810241930826415936781347980833327418531574609284034564948342435737472911102983438830357888065861534970836269652649055180162921987049650742473290156202807679353355623913426509200467317655759776559960594956185383740890054477461523301231928615581802033240266936159604402364407375979924683851782166897859455164154844556999284399931892241912363709477458385037533431297072573656520587042496102106542267895630075669605657314460869168588037933604652021214661275400852706735016913821033146625940063411404215456020399239818487349475134187840267719829118285889282179611092282794641826408304959738101314451602359794061415149191619477109602145596744401659046340561090361926236914139040949947445880582573264652038590533180966744843995731446443443090402388258292419024327764143870478413222152048956145047276865816407172246060558798348085897388801623363351752132642981471639119643004992390850672935285894856805616492910953091950049019138653824290142246881330451594138686445120303536082769697188735429882088815716608827496772605766552150278216245487154146399409091954293624371976142403990775873238850577115560765759556903554357598373786379798523493390546417315693366111883406827971838237378927872432810052626492211701707141737063036441464486939756229307960075568743280174674400875936433160158281788690980360393823277741127597052900770010540297429979930476359583991800701359549930794656551772290157591291629913841125905138506920410175949603451843897367812926927932190426656850935547285252843227081634743119386427526793674901191161217678545744841866988736349108740666054993388951749556936806041647559878619958906991833485882636971469553869411096063598367636474263398613767285634109801532579326299648368423238960563514649538199413605999517882497904652190714886338902766279674118912567428724063811168526573604637921997669143859061828908599880214984810267617574982928863606604512576847723765529511085941912667798326077269023718707192390579060464398759769071519643587884584975672675445042470495606416949417032696096132875633526912304071405170418546835001895153370187281794189673706817610204459261073025835372085434553360323906320444850815342123872431768131291547541237414149182539814578406944489130608959973231902443694245616112001457421645826729977509933609292503525764621248069478951400484090014565274682810076878244680564386010279169369373529451795543752592041570145139512493479037520856344871212200780100050756434704252101415471668090766464697929944048384833409249754369454491579554188063992550301504094287234542328007651584548723438943694712816331612488014220002079363584717793141218444884220524518367373707648083992782821268189753861764086193244500398712926220605014339390815327714795144237205415329525068199462553187084396618333944206077372327665334696463007540011171553359054767431182743998528650794498907044186026638097243524906470350118122462323307275413392803895178446985768344664488518033472479607481487875887340105001028864842277932012157919839614963587672005927985063041727158078977201137212591626738047495212768464553124300179486062173831413025840885874631587321828470669100488232362200886875233825673580224058128800200649818497845176712572753104324830191677287398405841874747788110303800528437305968959087253280070902026443337552863216933880199712220816603028350320963525454272259401539339321634036865514375106029156174290801060127025799372648512615940491383404838872471578355440775570849025467244465869777494433509387330879398295988779028613949920305809639528184429261901771502957207410976353804435002817630744215745777763715212199703789573675362039019615395847129242819855546890459319364927218240281224259883478332375303002454560665893262231713335809016425743140182780189486978834784114491759287264295483066673792279191474930584008924826974709066118690960613913420631882141348205550303304644620149652838014049961353647499693002184557494346992136466953433026816625702292662563493535627435489170916029209929642463238942084694905976926761168411988750021956997200356231335176063188631061724034876479486515005344606584030570855456656770355058900751816065096712873982910970667194879136513735037496951926436384030917519510407596732132578474798418675365639413193106967100576667495782305824090561509657385237253933319950550799860473481515251386618487836013049690847638564621487710613603997035759650097047612419742015670984458227229955702693989844940124781910524884813945511982084572036102849551696083387469780203279050689378213055176898642594177705869429430482908487793555170995299044971475780067333539665532222914580590373620415819188254843890879347966323531002881635662198168215914442695133252012706548477851937548647995718578142058364537456835753660324775394433239705648704445588034566972936004611938434828205867197258163528534820549216791690802054242103664044755401790451158691078556076548856786184744612949932162874783687534002436210351724303458866174849196516307120800135788447698841753534675399693945678421752447570148632960968285870605239502491170560075691752643346614892522608252004788735774033000569136737684865282522386811420568442407852427800681754330870324337783623168308132298521103713757407922486467953762289976020278726876341538692048080029067636343918947410642908386771462774001705010396570881294700067809299310503168989383755739957372393714819669576603306002740557242482372408596599266973114383795780765622440301653255189439207071036518782317744778969104511237143705953186297883617875923960436327905952725867858346905062329483223090016815992095911895753239982784366539931052705208676233071856638955621502846823059212320119455981904022219167398290474388555145017717730211272533790555485024755988163024163196147945672849651212256514489930630435202263498362189426349652333392936576589624532910500585314869156676628126514197796500609328011001840478975643218795213276114423864283868474659921192181565622118738937543385284058103235082185176327993875370802691263709372992513685883695557369199614014602926863051187881941744119413512006686532267579853523003838528361230798505127154082062529116431469778189491430647952434005780777763598612024179028250157523817785633993545166546714254302737841869641878040920109250431290271418079736523590148881001817435119029794402894523608004608884165564903704248001448847317861127660446135011543339002142907644741213972040636978480166285158208372155964435421355644838104707310377231723871331555769950613190233713067372855884435403658791350553768202825628575133578689856583258102296273337236488375260939338861997250476326659608600807579739393004081435770970790720382441440081544657244975164446939469598178319073184450555654400538952399067090524233805415155727142721276162608445531010263232993108997489333764542333618559658695304730756839687744517198076254426292005362857812534919747815551225609342262543299081527461105262486516150760172033727102273282995613540954515021663098239179636195286637080706364457037124452435564785752980145408706987600390805886051702368966361030439077262769437519175095914885774760828646060126701620872500492170130205680442228927404412504840852791961151758125767373861121912248780369776602063067432101058597646668019968734892272453421683198317072855955960863144040631985500577711978117326853566287898200756382308701964465530751416613786024374779703434359530528211304388164121902315590447327715525076255095478393408553367703716582654442664770338644578187738677824921689107552485047360055788449852199729000312138099425207552027247461658521227286996009978459853671984113300842214523010702963534227458120608668109443050776617560206489048025828210438647226942059749775372636614968427021817027383884788338548099948773534781831730662695360211571719653929835905631015963944065825956734181175811669463069446478009732553366144251533783660871124075989526588141676209637356728129000917860887501141204540005647447289650314029509401516632155048432792792458511204141722155579917753439571446292912368558909285671632860245142795711211028239571014146289860636195391270769410179468392624651060266606366582804833945313426106862037567726409810353111873101371072338973432578571883992301557102528014422510651867677994366140470509327922872554944705825806742988059082783771178061820048877789980605294892892048579732157969002918641434177445998847069932697803580978347810707354754414290066994932967995079455298642675995411767740676938237048473337549647404410734166400540363674579249852148766557108423800817767299392557705249231639374892924134294210553575201309258268430020674207801105119068174450412302870689997847172620558914305930038907494532426376761256211240076453340146844496631661415907549383760242627067148821422237313575140165823806968848501563569447596716930189972306870297383233643705069710082234403228131119398811533647970775103010482893215979499128366266706998757823010718525619731145434015744250854100814884315863658037215621223191987876282390290361637172170551202663432816532423612827039308208992057759133041501986792179842229727221316182007059557801094497969655039384715536482527922915121560063727413861201663867629427441519456525067672895847650577377002226990387933277244323764838896191793727608426247046409709765621241649019108195005085792341262798175318594701172112811077286944418201026247263368029989123372550085576430701094707554429347419892230773347867322785967592706011519478635915700653908116828643356880038053741516538884962561129681023583794169296477189492897430134508177230686155551695339375237671801788876178040667905127396719911148329537419602724964524739927048904325754057500366403124645111981120045760904127308470052063799185113256957023949649472852169091130299044661988452382627614873396678631043742081968541265995744388159404578305574232801534936997949606025634943229777612615350016929304634741418243618857097942931566995563752249375783731420702237456843598377107253464194114310245461473315510226029410747402764255893165536090019001207285436960359989396345286493427007984678117723852356648988405400962426558764575317964379640891234271765913658853758083725368082806283740162307091009484348843427173925429489213442265701805064045072837690560178743031260084919530735263372159697811314987062230360513462386310564098962914718170920349900638631763622365100432344032613225023403335085247108036516874243368855002245893895976325302210849941239733908607532579396996825736456195779380319252596805635043600040507073249392523872491623070032650453718013169581618902206557701155601699290798380716707094101217390911638795158716993410142074900234925839960484261388096789616297787893795054358179525507830653002444614415520804505431965621011727614449354609396665443270213632448199477752766897814527641001095663134950040675700784577044850792366288337819008553601112976935981880769048530208969346074563874536679632273865831396764017061767831278016037998675718966272629967427992067458370068215181230035324120424395490592423954716283032809854469271153452690608934574220878786321006387852120458916747278744506339646442111395514987670582766712746214391192515025857699482762954025387974213290797408531745521351014668971422763870987787195262283028522374106451732944098181729481594826271713649674242086027215898767081961362464925973884471631167925699750034384960247143877891735050889658979514103045736084996314947879380273410243668507832899621765303699197236656108385216277009382795638073245994386212318737725158767579727658967642366029118766743171834198939386622884885351562538875263739979788785263792526605800704711837658602641128551601184127275290367956973794241795964384779217862722893358703719493241074454000544437058979602061978252700797340207669232159405469487099787790247030190251954633779039943478985335657887477778240709266893210645625946706075466742862297547929670443023754376399995659231568462047182704595988827191887958158242685481607944012315988638435638735823010583871697439022072174020921849652520484796682524228812448881709555753886319798102185068478347157669813471771948830549188582587591193212845159816584090567240499047893344389811183578783701063028010058860946931317240467991761140045818618162951144461949744585121789620148911263315462343374955398561147045838622821987820839053398329047337837292611062716743909944445273269984149785442854409515359353996273083912381509279313064350301528397924549640600219567591881020523304689821525856575587033610640134880436458558206752504508596278187923230490206846374671575550196929217513457284449526092848193784970218074436449745191143360911397134169153244302116805663951488133398756274529171692998925084666430213370361519810021481473793724479477301261238066957423961414023933655549757373539252087256078568938512471033735560911487252435571595377372755602975450668365155101094256572351382911178610245477162024729520607132456915755635449459494583877803166007128501235666961965553494350103347873611523775708504300842095698507583857762803130235013324889221062831363288059748294024692871350513771852032169733455023901098777586695927475684408158786620161267382895031563950853137881495089264820301887985596510683138489667700374070773857095360816133792672662803494182007145081199461511435585504691105261964929534295419154714534383663166392939233225236884667447375620003952696478758467382097415646673252651727398853720940875882703447809253779622139041009314245617838416155134934994653019837920507948361510920737760999805133200507420764533614219794921233965467807290365468586517308973717534328188876279043632990354453031801840620141563396057817000766000643339719392202094789051560518100066788217776443454711927676468978593245572257126730473616282987865349517361181276895081959495985927949321754945373724260900368953527625176166789410701358239507649949168134346047416860565312224770582009437211294181880906947443606714466307369946096934193127477782207390491622362846881514403866393666336862966028188502585676489254225295617506020625202169697475025957519821294292629198092717314376249776963869028768052418944791947769448687778213167114565104267279306803314001451911787967417017541291571600066857409685493271683360818099149658580729572085400832548692258399369764947337469530322239145277032511835662824112327331996177977303535093310263279702753114648422467446627971316392054072219132315544118616681442906817327888968942124923618123700424490285494078621783389522665286771985362497996930628418836450352260791219433893121710368032281660816756893052465456024768013341873971364710400762911861911116952444558554181557273058942794832069642868260414824366338869617916891897022885066980621685338904991633766416208139993177190917280788109040267327315602842126971500395681514363277473205460537169202015788639773136670407107765849778057613583911287630043582350121413483074858595428492299505973274021172027493132092021941059185951467127459744537089575722612679415877959769910899656599510073848017795304070986903035571991065061187838724418960156668732184748865756178460217890149475124572934849871715843171781256873325775734611754650267625386777723491010938048139766790436420636419253729849960902324232697381333735354980845796542291476551571272694498693871585819917630782884456618457839110172870290643129021524330869495128299578393464119737617423405532984551711760227524521900353430743186117123307943897466096596581989708320337889724120570324753810014234753748115354663745173693855013940912044852677994223577445980129488571967287240514524579982252254218253233965775180451937113420277266088939508821092306560466325022916915023192827777172187485554509777778001116490690776478184882280515750950768193944349435529837315217695393503549809801015508840580107628132223189439968485303512237288514957108851377533930997587595193567232984326055304180154402446919399757215626322932707325413666163648573924716899244589903604937292370690283678718539882213947083827099975075725093147992798782919660731765596814619878750077781693482843764689644670166915676152245235477553466169858693761057186416800215989849721742431059964394754617012392385849561461989228824034875589934801150391007887864284827477546182290516203196350577546521885952903595884648230532963203985936784677895071142866718290166759486473779583562092268402916668165895848811593306381049346876312823743054110450809345598201818430850802437149274827768737806557450644158744929703213266290380556846924054570538117666426169348915388033422384630677450049957021248629446213280572673059597657190065349008093688923601620812904337345637823761038024264920639455765945017192684124685760226490535015507015679820303502041684676059371006894074066657468539300504302833889495137161300246273654108455853420720462100529195372247471776683334439790622051586237310280448553636191603024818054637511053336599507075928824545700670463751781675556330288321482237544224597930383969070848922190838202156518281874709197907181563506354221972555004465726353467402603507852818038958843592929597683761248793847265460666785166890971554985440089801485821899607129464027207729719372507789621558798538595974093210649319460851525127828416153358286451798415720599905760104005866217225604407583677794415489553156154564453193671707126539670708978046088912559060378950677007181102487911878144417557391595558383473659273379018423863842333975841758030168479186864049474601398807173199583368547833599627263293071386109753816586829309175435579186399090172925801105293550399155759109662821206045148106383850798767461513055222397886065521718199086757035138175912996576377963865883589853650708366836600790471179414776585097041519431258825023345575549023177599754711714337934735076781812515323080693304457341515403654573980827575604679223005753409037928124586027970023325394725950089864569336194269187800999001869355189714176292533851360124134891163278870735599345557806627758824702478240996026862018903246169068462347580989808923630799003882538481241062375278666302419624978418674811161623169907369624703104489600172599860799960050492441558453483722478440079636660769387045156244694870562094156303458192787028938369532891398099505236488213775294882401506352730209023091988691692846043816011333701810930650529226082903166682157040109426433325289902690210304901377335724395472189229838353843041962740590463272859710670959007922474115365302817912949703290296175093699818468716568538998243152542650055786301312030372267053292101223216628121220109689242305997564428906975785519318065921727819917558804914777465473941790081040463225173156048366938917012640992767342324734039376290934348280245706590943176349645336804045528673380094018278499745212053798230218564955616736664517633326086526514531476699929493434480542955587385283303751336224044150341294298720427039859428703324692539444819243139245200624549324211948203845521022453438724155466239510028776170641385642796215783318086358434092279275041365298709602948875237631832938735636331954648648907018652550257479998829020140787356499998200590580560005863587842610029015411160034858421443217356628262031809723021656161759768729094250991270125225015490060973147781378434324714413937921219797728376242558306268404923603860434038824169495664428107369184125873304968842617360114416595037504500199207102292808909886107506200301505230488770718773193200012242620586760263953806465657455824679757733715423913725462880942505143446002928231882168366816048564146747358332970429701247938089327267629008599871896286516896839008623250938016859410833168827113192775511398188361217205998127298816966691062476647260899927342995244455217323697234520106449771311491096269961891312868555646570677426826797724475729309012036315807169457758704915980664199445611672368488252082952668336341559107975324894136018247582884790095214205075234448100717249112530315650975872836493681535437673006300008373087820777031698510946315846713324784099239575670845272249908237973008925455638792261840856261688138707807178601784375651044145912105479153721845731726054299221650842050895849961452819257833898964811777593452163878965541565779801338792986042601954544410747857479489151055941151256201424740254380608933445312098451951123773030810600651351871475849726578215620730050421850030386023589007017855709507812543226781195117526843083180706869065548750353578614974696379492075192018792560496809534375929331299886226332638434126266869775337962282973848090702331925388874986107822583025523725956256851100697590809619867454271607780688793809543946241679427606539417718367928112471347595589003104951252501230225915026866586444130374321236163661783724661665093091562006008840836456819631839945598742282825830373667433896443606884902254661972026129106470673559980376960423297759724005600247750238951479818716842358831350768281709310701709749005893022575919584486569665654972586940977651663021374177341435582366879673007496723432726525493095985734836499970925786836400631713532225368283646317400759919700507362508246538975965502472072873790264793499089417034288958002528783423807282965697323276916897610282398908471887391679495248209833160929441289632627370263262229234591137829185143100493548064114589351031538930045906999697427096568213282865051216954879897720674725416527967199741240794435188521434704766769991614806002101900976489884359911011763064403976790059010582400948389515604932066442146328692523882535334256445571123959828736692201434233670152197926775048775603449910157772118687112836584992089034292707768718317306813193597459881306893766111938020919169152554387983209548453894177798793510083738300482413896605752197017614601349591843189760848525899993427038998560970043605674690156224299773096461248009677274676403761259613500444445157271224354593339750146662564803530977008110248568223661736729190881241297942435112807238480772797952817079069705406093611674471846430668698336070129066904236658776070867321928142685125261453571213001425534290528973763203422714134543591679030954404466407674012810614132197249604340345247303726009271593819088054606284813190178343338077180220959983593589204511512429401424712682505026430678418979297514007837353151540917569195807474079622657527022856537958652337825878305580461087136518588786123831395786200385494454712361792406178353298682603578917097240380758157657924802762315198703540880164253335461322500390319170351255248686557420879719817040263493046043140949229176309649271275884309245167755932853272407092350310337172484154947396807736776435243940615814986427877553999173300075016662348078391251890356692539308097327932716063783490450198850256383800389141586591076217601980821657066621598548699518910723404412901238456137441077575995135680767353777571618548560590339159513736636584661771882756325158259665879610348060990660416512430811637927800026096427826003953422177792716696181549197940541299103188601113122850985116117978964126033875989670350401948597301691919955571128039054360267899478290687680007451716433803772077168591859227937946073707575722370561960391717708357192074897197722859508636939116099797338950675261236257536856077280603195077240662454718688615907775942226684426621404212947891476691851607271044691958616784054452951668943620344657662829214464621301465983347700785965640248390634570015034485155931029438474517526813387179813526260803148990802330998387300533668166278310738222739835279427099560333073136023086350188256143697463826673793931155606744856481127366607022768852690582148691016737087131312710605411482007753263933670507049246035528140886942209936137398413591166699213379738853449413961724736654039237723987397788836233855246775439668652543302852627638468306733123734251253218584319512400712234923028175001666176647814426315353904076127978051710264932943650162090045451320754365378229327697298488771012235973045892729614247835239867841620428810369975584319564568494087273612501173867106780834359435288174742827208702742393206925904956669580820468015447588795032486042294224003770632073722164004617648170882722086193086473463495062614666708887424071425476627636105343715325047581740931273440599606235879229807715271850247685059130785547716018469075746870518825615763308882100327451887183567606608116072206618381270052281661293870874583633336564502785285399563138680512250664974862560433619752974702561037358740351069816810182065561077394615465415145902493888928616839747418386836995420619253876207860449557197782921765560340603664886107702201772178369128615159376234959622940211312357129731401715642294586630256801408153604141037159861182768767261327061092933615378764328583182101125284157845303200787854832903883739910702182867028730955804781771906188683655896293595427114324921412511227010850059793090544690039208416019564020950299360279005335832527776049378891709530078369204786716204525574741562777426740283857362218577897323157720679647898709754811944622882045926815560483022180088334777062384731275055911143629748973190273128620465555318489209312556222515784002081964578615109336101615190746328184992925526982635222157116866885524589131195613641984312282949109590680512557187325583100901977412355049312142836078760749797691353679858706795453098870682822172377025173733955083326202367725240613765822301210156821230627069921591543441669061479567782461222466404308453172512195083428612879430839718509227654358044702162825418936786268110854725896579154268878852265493112945978521511702832566363362491975643710084645850769429597115968491463662057238075176911468284794975459604958703113915952908313483947032908832738815769180537512298704796220067187718729710577957916216079467349987047936821098342076553821067452157420719964427130885437771700196917460770406179145005297480138637318045890363448386101799028544417194771953983521719027554888071579747082965790425563598587244637271986174269593079058154748562446395670572992322647635345220697818271108702237908645250303522921580364305746190126041713957739638853182638810299898146696110068662814236897682582056492772702789965733482502474278719472441891333099585113097062184304559722623809824967282060376365941590573642620750085478139019734458649546595582377505126934033661211685678226724703708099271796564654445677219245063439106661900617158707832894644544863675226388558334514744404414706783474764541772022240992988195071060025520908224569438126638902871940985703496123148776584762121210017900425465276322323160775869097626730376751487742765268457306322225676238744302773538931509734484282138789634218788722187739266289420711922426626842827862073518347425670072945783819187525463537258672320699128894418855000923574413229886942915991978014562364171131220924362245957454410105046430955061544896237508793731035108652735663613705956056548125569212115129812405519901160839102540281462280812431956586079321488618014173113616011458239054869198881560040291709147651151510990076782217459587504461680476595003967236103593003036195830478033074960595016382941191773297203080124071384625302659535665285245478163721038431916713980394324820384926157893238705714745885944842963679554014846012172280290726631957143472960767992197851146444672616269667486342423568269291166047641166267812969485668443989519873031773348624172975537139100819090221163710757978251930546692642937448208285904251825175765204061043326164559610692736507873015336803557697299432691602606559223290949796748437355155794255770128729479996738171686835051756347450380605728419230412022059935359580452337125419034586742865967610681422524149754137703042674684980061342005864908185510078734660826779180248839261626035176328833560101383060896069258523351564800339043033697451884792108993675396127018736384266083110324296117490718188759711340564901743092783785740783288085414944552900616682035473397942028679420290032919443370555181631624806429691825684424410450967318884244451589453885640305557577737892138096518617149409810422496155304523370784622006583999409048872194570144500532745726379992093157524173528796833214462480926221624391301451079103248646456391725572672025528113041057737507716841533341682663457377380086219673334150754882948738099798472736285630403175311916024832294937416523043528269081793590415922062750183169210203001747611106307279455108011938857410598328401281153215304261477980151288097519757940245997063096926756445167990462188543017263931955341277800855018289457501369829994839231367622108719328304668308503892723425829597929490699318626274735970447118781015302533715522814440575766628996582679978821470088902598837160422479457815767192739354542409577295108466167362097430100460231004903602561159123491497542501394560846642196342210128902972081681701111897228933826921252861698024134844150230316492967353292615602577366727973558737415129723323230291261777243304570687275169487017155594098321742634530529276954693043716702179030858287705577952655848336258983017445423466148805765018360827549267895613687023620640960743163455622941493065623907008184178321349019871362562601421565967829004046305709722620961081954373043923790939431187395785310822464913565844294360859420815067671527336242944695912044736085008976925994680761279358546914944161149318246761260641703310507580984238799966657413450630017289540841037398412893213907235645854350322940604218668100917833222187802543166511522170066349829394639092005276971838573186790473187125115460747898915735601236772172107462223914492149425707975193143007257991990120760552859310015769555877102849309021427194728669073215735957853261141328736298876946742700834002133141184855545224455397536256790191157739104046653007600763715381810423686335786405902415818404883537172450690066246027651266578672736891349955223882561988692838113188119759363686807227735324443253094977343652114403022465828275583702436383741633437435114882550532316379077045847959915638760747207160560771294118156124674861911793446106546587035003820281226191772505731614954142390111421647802603150032803517308896918420506741237535845023408738060108054546496876078048974736346926845165492646016056906145948503169014005441274835201128801270353209021618365079506599522530064741561587814146487737120370151590326476868460459461741826588558207965502151319286472223989670792858189301583946117834011959336786007691286002104045465548400653291083642040113580646673500845508686669880954263172204646428742229800985700920837574312080673063297930035752314775720388959589151124919017042324871482893068250398480518482446842904462747445452158419533335057387783223906011100899446022491262023582272900407002078031843121790951028019166999022268623978269649327305208408774428334198666151949792415613147704011869396136362171703869569979897449587825627523530046604349695900842308260742972264387063352654404488742230233403471096740577596054707158892514219851229465477678627080302494950335757274616894262900870590822992149531539925875203908562493030808474691213803418170617234441510386672453448282757327949828873720181649056086195961941511359776280449005265505788156082754017417750222811871965670227370322673743978855653845760961286191037752670426018252442823994562930621125933839942686500508051978284376947536251540973533063845541167713719854572050097023984740791938299505038881593635516354841940542373504546848155326292765074915304733856608415297448482327360611173562383934823432254368426773638422260675485831467255869969894898166507981299571694038751486907064038075782102911580216455802861712018605549642128773670012068855209826398141216985505654111214134316399895984936113506883571222294104774338230883751222619607996003328114024827417702358780815341911614251550867224256748348389748147539184814894738823200400638471547467045611073176017153512253365328360057813918635130523761945435819633770243968818024575145635384975936761232570990847181979251351643389344163933365978022576551660783960871901596548665264270504685397082093785218519385209425353060621904041470461177664037104639410378944052023904899842225250763893822418923791352236075598178415500464579194560100552995528440128831870087314621970928702143392916331005309261484346348744779535388413069984505384152336314123325531177890653708876850894897041017609074665558088776643225812990216103076120648730647576746680560924548391355302603349891393934709343238717588801842180655580292949266782873489418855585923371952623566704450258513652525808473041400026413155622711891904155680545806539173592670956686260491078962709787583414309238350409626394734537762500548798020192034805971544191137042686926339915599964849617112953058622138040940367047913289201444814076866408168635249342414494375930616601067026711239451486164909874640919253060033886832866449835105846457044708319772143707218912804232905709704680636947874197978951605817547351699420145760521280182905798320682300346754051745365536906208212503062250155074374960081338198284164667592741916081232749323459417489887124081423157944772783720200900206211379966429058220807067677280946249188696326396226405218584390517996316577322612398149190510780980110884520374742788137963508002338429685886424825455870619180944957434364877594081917430241101702933911275054977119008568813699831277726800198403692125522870402928281694731529452463886040778535103698542611233169001253168301217960173267749010848464829062077083843755634466637199520710733541045535657016560395368711655594486759368841129683244664405964875635417306596437106203667828940830003721241465455174001219911644587728217991266935992551110740213587387162073716656053267724560897209963852272238959970617091721667270015045204395700371782132264826585968699217606033316918692494901804105992829704128017763596297612430755443237020993232073010806445960099007396060674214327784333033655367723035868277576805447068673827419717355708378192673015800064830627356562701203571230638392629160641454786875051775232271478101361832109443578647122298239444480487658171374667048348240515277382545118276563617074229702783320597090511206691788025827163150595273496447993312641712448771595147639540749691184128555622776033514419906968507586130614943715951661912859526659557236530381138978398310197272893801345170706742114943783022586881003621307031162746403751521451155307281428206464214161036747224430380809073806748795817176571664692359023522765938477727228251363955457678001729240390883331832333140235776428090406369786102111064778482928497759922436682483592103983090703059462804588803497379224632279950473453432660510809663456994058529747843560086088938590996915212672629287245653383154869085976707976159323641431071252313329144054962763258382183138327875160645711175877372441693578491409080428841378844906222247415582996737826838173447951747681619106325243780710469576125429728415836899666737405225741175667713584820776005265542242153284466099729711406203685635803046270370183360197685449989335390067241629327866237808969375509234604684881890964374998725756683893804762726332412745301988652391076190723187581444022121279642638407479315805654033326974156146521789548124315075630814851725468408729310494936758182104966675139579714957393134133986714755143389650971087020003332024466728942204741992336053282789286096452256348112291651826731636512767968802615364315429014665853368667132074198798116109980381642873396402934290537750887253134714478566843756006940748904551396330030680799493345325062558680942925451125248161761463142557154577621976968491225199854274850693628619953874929640475245067778366679537266900346883218638557925897739440808597812262916781265748279040904647434451318959740412552374152578883815819477605912166431586443901314104736948932041377536928869842700198099984833286452165940993096599938553335020515109853979388287012345328003352823179136947977129324976711949771817262919639283901512848873490582572795008902623153384661936146442583067884777009739331220172539829613841798621704843614404963177538920970474723422770683844962490066670073057472689730892076275649452691951125566561807060217174452677625533822167078861857884087169242401363860319437769694017832850690657643330004568051230747104499317665735896426515944547658574542786853587316931785017920141327768718595590075477637472121611521902497249161988854597380690354431903942103851052812700208858581130249073713185538795945217631244341213829278980070930486629700037503069475478287698737996253943247823661499563494083886616145379630242955713411227259004706156583064356634266197879577874120717198417155548307564693015733194482570000488836189765044846907837236970656469855670853112191865953601895991757471200236089588794169414799207932362846090356214093862432321665573908786495089562586795446304727018622528936632266132996218557597290239239419502290161179278916345421893526994248861758743135778339750475296153601629714492313556555532517303947944964341618604964760884660393712652969674817105949034687391840579646338690399720700027319209893051130542312705132447956748439177761386603652665326122718215599366940290877753384825439735932777491558159155978779973778891344588948540613951638496540415498573509570155715883300812083074577678264510452918398564754187218447273502731608432824079441094093861958612309104994423465983022646171066807774580046831129566140182449774922567452349874267041761726041381774063202954017909421142895281669587907047349164632906407555041343376292324956984896228053207506376322429118895756544734199807299136828714852566067381449504248120548365622215853708497598217443671207759475878135914160124885794420702638710554757137143162223079757247145232202711192885475084788055572437889825734863079242561616610958480236516854655350275505545885082711280574044876362174427582975715153683061473409897879719301548365770238506002263966771655265022923941466019707205736460768198411402655668575568432622154020782411448959422548666921226712514626620543219806083766085324024135199690386722994542468283769767010564491731578210875848679429266288548425353469046910665245539655301804423964726969488717468618230458073828705780216262929010146032809163400217419484397588212414047564846941768056488477342295503683208816348733649686625827242999803930924314551421854858774586075627805034301773672293951237056809688167334083955943239215072704262706439065754933531942119507933816768942072864376644156950629952965127018277419243412378714712183473206951123171997684875156871764038679752612149663062544319707656922281585258350916101153411171685757657337332335207363960194435763997485448705469337258479860395278542285124691853775295115182977003712386607039448984332567747281620164291530646457990877181644145536717340964758977537241994112275359073777790481552846912037075365584336179312601246370649328575473386099361837560694978502760336634312063990069233098363825083730087835974042971298073933129275272769907361388295317489446388617419494114707934392920890902001129113551017233975538134244351557666345274638116958248492703594253929694209409860826786475248012230166315442050199479720103677703954176011244834439492696567259014324724805692834406458967326415404216860639895982168899041092235043519180566704587622748189840564483212306457205291256024794789975549785657432137220943943370804582383506360830579970448555865635506850933128902976252792554344632470088413601798019116689748372676150569546403436602566255665791853399373596751283923358244934176873079089513195071958309119529072973013920910934616015335152847906302077901666291998910350746970076553713272233078014512581783216094710351042216264112818353010708045737584759023145480097960223554483287970827520154529344052319214615072720368076275524824256363509556258709123702883863422123664659222152401160673507593766199673212899113062149873406215973930699664421514813652424042211874183143551610556315834929373789084770902334398791440978432405220161025622137675977524976585087634258844550464254574523872491742945368623578021391198002734321465072933593429301623495488937577493049070495315036962552266558841210407888429467089985374462918427429093983246973815055290647528718246416193005626322180729603972682685835617767160657817975283542909148285385167608417864657807078721638349737497483648473148840151412659877307181278028519635440753180633780762265873691167101184191086216973356071387086414248919664088265125602173712623092910678058711503180012196388498179397370100024880097578598310482852225399912586922484713428855574599836831883255704633977733273368031087585391283630707036191156204084602626471677750106799853017533739764126747211330526720226444055159308276761290844362078410440223593412804344035288637253611965787944542862637368525908109011015263056472257447730715928519873624030476826975884093655554451229741936296676608486819817744308598899030023494351720683037102006195627535078132381651629013995877933323512339169777244286636605131229694706647682997319186968280323567100963037778353996908166991326308382706224000036518334214112615884616689473213254903045628597481495357491416951983533158505312305959730709896732240158506518656509585313178466513801202135613120814739457262290464631518669512492282076789472719050154985581536615181295197563705587629924163811109077905039012620969556352511668080111942341045151416161249972142027693365398866810337154589606976352276560847795034752487287848425491911831543985803273138988330395793259663997695003337179974839578554008570957603868458021959904645557757637233082404869881009989956507495884852863912559410704898289424749649572666204368991427422618306833161253004313036262458757470327466393010567532451669969391657175869266695479367909232977369126749829529980686908376161853850392384790968355320412297355455185153235938051999360534483483984630678640987750808625990248906605670446677196263011794022717740041135438071838410050836276820011706334888420127972128206882064985073940031641679023669063058311353792067800553782999072402466311975596591870105883709472162172659363378850365700713900457391340001486070523536514033151591564656267126329407688502268380515810778940870736034003796031795193639716972543991282283354985201040523592571612676487716529590331847470431369071255364393436573821785945171563868120386447469382698371819444010419074566633433402073771592864801043842304032285914453503226586956050636070055832132289131728117807275017074529662732324172691848287776724644290714702477830248303472674367033168204108426979661551758002777799170950197964291428294467607699203558040953664653838573602455823418624661937916244880832927466616936380126786611104339944601053888183153884431162755461555882298926703350550587826424354647938235562808121493940156378294174251029464607245240060829406091520324130124090650770535215405167043577097173311625399502706466704753463513811533398762680008030115325824436903091421222141818745228959623851663136906936829654943815476019278764358750565941849254034276180035038507262783789457155434442506635612360453048569364060600879470526161798442185396769676809226027882264440394198666740768781305378415285153612669503072482158841632870409463667204078413878177409147948969309583766220559168414936516444286511161325213090064112020780888041999806315982307499789856492369282243393275163915917592951827910054382928489943450752833989889385572790105673631771056697879032802795568876232144487763985186977356020645671209384258052639106656198311446659560368475670897891761596319541896836948000751721779785321201163309305356550044569258121111944650730799078971480921760323416273333852253928905187831868197100088954474333206187982533896762550800835831393874415716136542486255985305466292374445961157712916412506984679975256580018066630112665619589121641579366989095779685963939277233152536840337033965169265256750477774605220109179664948054793869131346671918547251015072687941382679216699555036540036883515455796567350580239987642181031470735332536548129947006712673335000584436464885419896932129015550113002641988633945520464278167752537772250906006716673319114426396664451635349041620830901092409042185281318415992887662490620229015425869036928461475760931688615887237647760103939480043143282244092014362922559623134491598239642581246424164036803741218575720031494316454684292746320512417720662319070963542783809447989448027825077234199156168826136726420170149587029242391301965971745487789288047720403341731287696440030440611875116072701104067739941003094498840499464470314330381035567701148839211205064459583021827772711852247472148050698506595768901279454644415320993301801877078424619879320776956594050333707648693889408993382578714517709780052090209917903701977544042887730645925270312133479018364302848262816218357021722255520432921029162969552349369079901706139513302170395192258255436445846825046998825416705990351806540225850655317109532809968687025471212529281228591412064513181982457055640103015994833580464682665205072116457467591177840533463698277511631052923472489109738723943486423288514158882180001017214921795404931123979817940925248792911341671388581557160492902081367248829539413230950013956337123179027584446719933404319728007614828770525286293008435484140758947339452318537884848151436101355923301691857801226180136854820182017255442464876929376106333427681928657907632946547856829931212091265147320003099354575401441444596978761513418226957420053299350520523823401274236641677921776610248264545277101373321376365157773269535897972200796993857826895429182655681935341960810026378928786853551247522803621073997264957953821460702779665578291327401169698772536438061020421989073007418092000580659515951052034508205894676549371519559182459861405385268490714133584637518052924885522846322343223876487491585366382659515252935326022423085301073135715238934921821378367678072700794455275866669640366651350122071542928284973490986061075490870304282496042609411656042719183921955847774063926443701264883158054551166660911571620115308231122351191861732830543028820401988726912359093181887186353515643354200938394610034478598902781463284435204526620452392106010394881149787721710037722500938148743817673814399682468354601825960943007172423542824279568633987303612730586864447459243244914387909412236754283194599452690941166516442736016029081972237482214548672711538627014810395881553026036621703698536646966388404968034478241917948535377793674973388698480186095839395489901946912702042456760318092670335556493147238237098230070389403019634077218592889121182829553178211492170644932825026414578896917326081799036421645671008763381865171992751663080642687747751938539897363209982353566733861828496363654313329534944773990201997952827540869150521576167416093769145686030683139062452659602880763676387640859915597584896477322896846208271190020185615435143607802676686891578685997665361165724452636649538918771342541992485062037809994992436839524403526095487223816881410282095734546850851771745698495501708059448818088196594941864841163899799929883492088700393103380641453305355353301232079639606142571291890573053397414418052300430823281840838537684856656421215026850754283528523358053184403868986819214498076659546920142312702604202506892174258977885541352624870381518550409815581119503256058564473698502261399259957017471747572913341124131657851855807322635959658764030110354652038699826240265817595317787295842059424539298829983275364484229231114259647025666119083416420900668075866176035101231265045562740341191133339392578490392877662198850034357704858821235595783617819888079420300727327195306303277311580355598342802045291904171842414611797378049615870506240152488961907313696054651080000873156830692242021996710824275196742292846139106611910550673957040163963837717026017429386285683557170541996144596805896782608580164734222777992165640764687530502606047712677925602320415702568601280811602231926928768398282450740642529047401532611739736898384851239732161423957556933442713140939123750543553594177228806390490060151957956212452168175202345511806277656054081316682588302200744756518240630415893327310841623800776880638978410798473675814835298111775898653938453105106060615058854410720376648154549713212868522126137400547960255614310951806174865406373521739434046499156278019598888044600989303399395367306994721608444008257947877057375027550170728730565724768432603148262411024249249412106654434692507972737888855421000372002190994487079834047924264725385443132145141617783005080566158997143407072021947661270957162846545986230371113449465812259071004737592320242710931723399614843452344611352344035878552451887637529375162747483444166444545437971679037272484612882036136384808200242653063816872756401885794339339584786467001526487030900801185422295462591046221295720866716338380856507703073530220326468356525064799754339443705665093746393030578064287895743426818683959732166396617986762355256754135304212799858690905351515307269784279227706947550451647327412941330250277453005369012961466103470205250604919320377582664738841316229762946902353993284153227943179291110567882017398060648538727050458162530219874546044976910298909218587535201966064321336527990277796937469549596480865983808109904243476006755676465542714664846058499535315140404622896151099796821941943680173223697049844901259989548206629625629949664478979973194748928260925500565921962082390179593392372440129600411197857281148618047916308438804208316993175902611545674789636864087690254915088189984462919167872702604216103546913114578169610600857194786986097449757347924454640032669852027851047082890837387675954870785949595968395957516311049196133077925286586858297617077788294920131563335951141939805498976299487538235710946216992892871761490623051883716760741970770840600991091779914564879613188340718836037018739178209325986175816257681850289949412162962939475075342631590067437781747695113108077021435108638366985239571738900185336789902510682454924922742133276715907756649709598953997312745511356661485923252153839774958423840306662160743591475613539561834665645426827689346870875172818382120435677877834478564637371482881042895935045305405063381000999390792159696186333273567738982196078218697985192939197433641794402051349276341190275949207668240968214323349917629495734763930638801014622442506231442562659655182531777726822230181997955022184959366658295676397152300911195165724325126664191377000208438992902151400265553706944865926088659090031849999197183431302053384602804471725796542746235419092976095022588481889389964423989392515034182294467730280152682974906135956101610400516771739003012932891372608513118027051037746611138390568616187799265868046227096642250296630255580182347787002696445167974767227640196763282661972946842522225797593993282923212903605595615598251303274750348123322069181879335195150977927072382607924594731560370463612859990737779299473160706330408603069553646327896763837924773798981748069695423734609403166038509901008333405069110623795046404677226403084464285967914766579030568134522164031771206937497260661833770408643235421633061675372393904202983705310425047359758143713280962444655514010083525648725888015278529221758983379984453276149971173249511985087757212434340816816720339105929174108231766734821132413160186022440367312617956807830402716930321628586867916783232994824793239819523615729133677119703426570282367240842487216403490122346990386974826115736543172450335579359233279337997463360866928255163834732044945700383403630714167142299077866348569937886107010699544460118519273961394269064482630175688904320182446926500298721520277652116462831209014555995827885309048964763315326318474745655408764083765263657851712610960596899393675249923140665202917130094913374295699616176137486369268265977537834610660369052299110161443265961374209880369552410447905692628150442946372539343334218682918340483033098885361427748697174679091146257587052108825716500058214567120118325751212712003453808894884426162166032996904542418876307356307681018389295560065581008517439918932423516188322318148931219879447184622728217902734154104069149288619700445674047540000039243390220040758593896728548518139768011256429834228662109899770960196404249583739515850513236109284440888529122064020414904966430859867540804568349138498989398653750645875295674597246931263645832187720753291482866494654186299338602844922270839738165838311401625458588421164071301173089763745443315640200758166562238982280293491674222433171176621356776126225885966568658380640221851171026582087356493771476604120168497500367206350751708234877988076654723438708806593334795537040815154794240159369096300086100613860436997776449739769860321259141375319390129477206655247515881244358519373752978222996559159764531302135229674669367726643077711529582886132914752903561588184143518014129852190856281706537209075457314100850697037479930328782944053862069684362113011793037156372847295824785377611601648615264353029604587041294805050984983668967782868162109031173273381970726264846301862991588839898676429952058082073298211669154864853748943244528310991489423549975090536860238126503655937072274589559372465309830095017235476678975266461988223440600540260830151333996830574739457353066609071089935195376901003768236638811456176461207476758789004301898291501849705973464771480155027059932590495664196277970175773976405182472376961827686765237102832473735035291348829370689291075579172524559992367074818477532644626388649829184990454559444550892516799366812840506574295772768564036580942903730667504690124039878980449469225375375449290586312262128970615663394997011516894518027469762779900990904181895590778417539588256108936828239595688806084556849990315673171500340923439573958349778817007908839928821562775797581083877130130334842817543182230902121686414399990174134136458827724934660210212586402310960129620537326857464356910166864975040496002559693827090253794696207040224486148833573837270205008629375126251904082424222356348754271148178082497686719519884457837349606323675917730728826805288802941914077658641385882993840306632891124212153077579704963875136968845754010962480157944420487505038554642639752526499268456989454666103653726268861107474176853499414506351864280630391093740936702049410246276597938210079438429247397770596802640556685135125579718212786879247495239122252775581622363082502386870986749861986678462769419118053851484317426393382796009567644616063260475104749334736854995039545299436908374395693037324700040515168868777779020136856209767006519685359318714943902845414207311496696882377778957691641260762419937351996909929411621880253560732367092020406378422114108837316748728571682554406587825667321789640517888149824741081785531751379549449318022615256963275948066599140063221749129643359391242214380629732133690113627989924395105822341308485765781397194560756409700744111242098136593696553422257714892047682445747556332340806389498279948468539301277545863179375576344654379618325148249551149268984183123271268398911068961117630527614775273068849688768127774945545398595203558467195176796443664450078436753980394204640800527840573230580109876735251515079251068614400521114413391700919670674645972390250533322531471339056057415058298404489399131603729621976521727570559037329791306788308262948058081710692341941218825612506220995916366210164329922988207650061841272519159752899421285152773968570354804725649649386300121381045188207906478202324779688733967903779797573803192766141531197560002244486025923469818835562474916261018539193589150661537528540729834481104757477266873271024041172530901480904614172759082709601908924097644865621896989622413287563716452373632717996629885123432988263984097222830387220099977803504191464812541704213770038081083181324532593278971696092924030960401891927653577825085542066383243594508319724445206908683265011491005291945197115238301161243784501299444542983696366400305742569808849866084289316835054335093744061189442042810548206499784309115354580858472220360257499373283130662009340247515688777898639785795574879386039912339975019509827837086458859135870418471616050505090359229479661624434419322168539070457836477034369096394516005355368084257481421471842406195116735064204177386031696903890734802602098211097307245156133740697663509981781494810408542629276220935582061434089278150608375170446047568519205378761558286620944959351434011109636128362277060277710440359044619640133061228356131758995588333931477290535793273273227154491001359093689140861883037394999471159184603951973860437611191671015005728221034487325166624998451614019646712722113138695310594268782646138976419876510316293805693472200879742872557794842557973983960265618474529207408926252154284434836810496359424763644328159924306699435241550704876952484012462028493207808478248724923937979366262222470949179496116214545157147868252172697417178479711625276184133637492459884388984127294421606159137843951521488264695961094829467985597195631963775211968497699578544950747705819789198186086209628829397412925004102367807177031572115525517435031324590179493140974313150845703989732612513168363156364778163752549963131936025740321190238677634476891379324207428822759257858560626875377000918318583232366922045607945185860235664623777764449262355690096459173243248720507090047538652392086292245159194953156476694814532942278020189621562651796428783238159584012320956816923913040277484028109809786488580686336647348821923930521983287132800597732791870391176218061909370743825533532579481497764032104903743056565717538839787769606016757758309711994829328093430799973473250769985615607935541298091271338371886809606793612095897724853156348909756150468186713531446377368952938602477922629569275454074006757719905220765366828503938139978444804840140740519033969866524171278165664528267093902991172952204043626014171863514141539666736004284609946634828542525694582930953556229431358506402283819172866726174910567933069948581426647429126882692337139540365104735129642896135630814591248313880999447106018397090684077554927066544934037933448539118487037593888087558291053221924236170279035549177545753776416170999894679506099970081992147958115861623370835978401454764543771589386496442055126333816933619716242392862218444739696353813642969083632759542265288389817564425747834508035053696358054049131186753272497310621011707129870104024616138550848101226319369999627610454449057842915877373931117072856486335222122229858048135859407825273560983943481601476285534211521727022241335293576172235222110104693857136790948854608482217351860367436275938250169298802088992169642442122705178673603488464506432852383690711055719491711178921155860024290099016320680734271811623593570982212663580689359886764879196633464487260961759474616388906042823708740880650036739457279680539502724528484242075227273937447352601080297550167839632885564152479849789259791812313604042628381525437984593911823120270807862516686265497174756954916685905703234297379479465010595409397021009203319259025179355589135920292632725655579512920431885251697207042862792377682167379391788400719814941628734019937145508622417743921500121683749699314701016943101520013402247686562156152992400366713161364768103373347957410462220155073433390520544548875546713286103494965971612452615556844215622834949217959783186681823591389589681244249104809235312368415264762772516076848449916549371702941109170277063284488623310137713338549796837324645390866144477896485062623109056696702647796784722520314710069788921462324533648003671444049782696790140736784148548472787585322034052638064472165333466720398340943612633722498307120034012697769099547355176387261999570067228007912947645131143213516664861533375929059576747895247272660140857316716770603438060241913562802058067174158724810516620369768755194210405441552397336524676075896319829327403606305223782638776049346597635948017945349453510103190325252688979535837478798661259811664848284468523209298178730314214209328684040635590793200904661178260587710345374396445004238469415589955294314432445448712108603211470730547176431518008016891016202771759243248839186157306280544433217020205328675739122244915306739402470310821641353146619732663417200374139236995981607642444074132449544302873960214646896779403470529681606611732166580241621908074476823888246827013635246314726856056825600215496451262423310576495285849291042375177277067503632536553085725379785112377055573295478027234834637432046164751230824130947664871323765603463394181264414227605172107365166673669596201392153439813391205375688830677234045736647166250421461802502283661106619838166754685269312017047811502728112729322202478947499107639479059251525723796779927746507252143243570380766244440597828180354156423975370541643766762587441097307395300027334771179841966016079677933453060620520108193275415535905012912350256446507074159384583122045849102494483776520843945818141705359794461449012798121319991919221960259544292550358743442972975375960190649156042692614362471370671996151412929653932708429361480432227695050240086938591302725507997358750721927862999642967888488810856303450264448820425096248691708085223625923922771455813277273984690187860917501242180932442408616596200589020672494724631242072850861773249709080562490749238158743076931546591922678505059657907019021474602154089198676033949273382954708232483021083088590573271641208642173268607137580840758474989117351989582029473227808209463383585154114407794357965083513131140149062439762982521728174511051596061638510655203489418819467887413657840912768880181797448287010634476891732659419595744028469581774711716240440953348239976955711875844977219486699487832132646394123451559331439956591506650687043012834299693161701089734475623565630137495716838105189943800519981703822650735186383308643110784133560304163365844185018783078992263994624113773393073416825099427457115969728830222321134581931965225869894412016274250175087119076612339777788295869122732639555321154209006763433140545139405862989046360553322676988222313677593901523538264011718718536743819967008445908457577173761173407564927309196425963326510934451972836951924108941610386090237670721878042224755434693358015137169942613762368209363709881209965036398711884500284259444158684101893408133175008369142177025013658115752074185158819368813128774884054148406039597447239621882577714591076707050325746878470489228919506314426764829659512277909453286900163418532362362171450642088403628248491274746315390286796647561787623071305227209483683896534305081524094074480941591523450066130424259930806712405274316925220791754791945847185613481850974902971542351097222616350818004476598792459357728486086069147846423308264380402845730380939929953502866843522486135092698103898467640703330400962419270709314888664046932869042189306700099716613980876707498399408248532522046530243692452755269654972118635438455517079802392069737022881796951545809948121859736620758092473486126054858263016564683992121171273262442121118845176075157032675977358426049328953576814317926658459927506949148193346720484737708641445217424270330301056182028622803494507442745537372793601084353340980950203124339556184904910940058780153215133615493187198753506907086199197076057515759612494587058963607173498069651529513368946011295814340518844605026941103124620922561271021469621444256766997597901086343299036065698723072926315617785536306859400783157868407482091680636887386907874762992983516811987320007134221799106815331926269814004843439970877080721403182507974224480590400375714821612550996363045215570734813561971172915045438341622283698285920159570366081843604707378245893265737982265429051930762946403181928054477957565037544210696096825691180765550255453296302262885772347279826391394152572186844000401471749998585511610233774997718076363555133433932747037452721297839320762475917033109324740521109282780975746896103389260504998467672848388446180872004261713983618793587935132085953162254688134174840553130691386293437420125342396624762302190838197973560023920194938132586117245739934499924244400857338044589214258990862827957316652653094147395085899656880741784550587610914468675059058180612324756749599811606217739769859180232726562503809815715685221770796111767723584392983477303466190809038766224492539268907333670543682150497176879986091884186222679037065516867220406791138258785182213645316964938770261566129656057659811236897920218981132851574614363066882309898337895427670544538466881467291645991688535490274605790068282312694519651005193738767266211722155934700421957761875012654697662797356549899727551512913892261143118824403502192545113443475280251331263169899165734596158990038516823828307045082346082171992272559348968307152139389595130489751171972995778083915542354213674044710562148722169760752173671075370672419856227819403728974987304902824168667647612936048914367648119470702724129678526928221307636943910442933618776448258249676706059206832886121430179458979161200673970077628221843963403984375082070016488070405254331116728096348592333247742140790051239486092907385499073545102543795748663510191604285586902664518539947171355324159702490308098670775306354994115655573178608366808196358114205567554022165358331696809429663460531091683815034085943704254500275165889955780250269988349287779765125813674128503175272976366989351517712127954257421262693982889126983901956620516357408363291543754443798750179835005348680030349551841560558764792472129865863428084321573929821385094684470232892634337898983756103865434888603807344515414304837648192029093816789726787900344076287948449275832662660792928482654559983648193684764980904494225132160181938897840679075807929952457318634557298461626064949540474686395427566291633764917963573438740824358521882172669547507878860757907563705713788212466493225689414116903445252344789193666321336444371161041103210963632654902604371819648372660285338551733228365083600280695318420010361804588979377288923374830267362639737145088240903569601622380729961102790017372545601598954250993962509027902171042963636557809029050858827901410714781958812518927833238110535590291393057307819703210069381528247130814847463277620929437350181407235615847720266467528142090857014845776825164285520978152605715587445545231398125855546235784003641572899651350281344972024680615321710541886862685418849000258303313317717762291562471090640960040359024458100926319575003329010670671323276561585258573158898119018719737816160736309556122513472409254639685853618093520049999174194496199065673977396272386178878949917546407844690391753817507893235731142815600092076217765954482818129431492342179776339846902645622766743120705988569242605797120002065520175794804707311070830180273982492311617666099308349394589411650260433098897543812280452689641101185336860912976063016821128913862384362170303374451737928625978515240203262099487899678083157077270371915689582639973180616686646034036989977611017137326648508975907147909863669018861266040197406593696890725010550535528071076564936520240033037521139992890484182442334169985502538428603184688405734063366397775438338939234074892445042286866277440055516035944364069602499987627346878446017313908249729864375863764337654749251295214246364504786204927865904001848701186445464298363601747702284026781308127498543522967116733604351322228391482800438548356651968446796797134839316947198139511861196671991697151039883738231183018315872944719758076568414456063335742269962505375013130627482013485875487550741863620554586493302241087383731609323231147317069098897091108995537262431616757151950165388566315308518217562014804788575078388861590439552346735246742569104013573816441216169871366357536151806311575630390915966395567919512673311870422618320172160695686994432130943483554948530709570208624813920130020091699763245276481728814013279717572071850565322849748644611881073972692648136877231113890590478926363886396217822516578041276018324887487484907511040699046887032854159320257039802234825513333647774882041919974589094218500251001359194182542383908427434777278001801709938909066062909372092729492561846207192595439117995999333652608356329678107636387884801689437274787114161671316033686558780447947974253430421460941868458702324950310621072651023028284871657576432985348543908291888562510889020145738988065507285818509041607532790435105030271253795441477701429744745138942588232500360994811546410882586737056381571169155885869775003680049523423688502239524240869290989585008864430089510112118362979858747236204131076345956691102003738107906843687542479725612712341463236693270954794765261897953409596404286983229962887293478749023301430764675393589644893466062816097338983744835577485020808355838897728784864137106687714796187192232984909707777957816804106618897195698341561869851346266766395856837817246830547293640282216083059840784879795122515252999010590450922021050623515608459684786266783485002126175676231825151015472839567616443675517291185956935122395468154371608354166714391076095894744344453856194614592610975510992044166374540647186229690325670068225427808833167008158457645455316593493044013600594124645860180385667114170392247181857332376852401378526307536696173063078073346127045035130222665678144336146676696152562509745298166747054311137661739069971868508540300000833274234846155805600888615710289312339953564030778150853643164314508158692606860236134673339442038700073821932224984121571285262544477984230338269238623258993818207055194351264011719339939870240790776140859809655199095333010241041580658903776321107207288667400033320495410139177287024419719793857858804019325127426854416573547250104891921263267117873152386050564223562690324222334251793714093919125126815359433429487423383436447549493597139036190225566703778628265536093214057909300765951567131053887035085098532958894862126957956525414888869723964634881691252162682420372311005498029481524874809299361267783879531575918855740635872124127586916156829848143024045697409148316276839434153600083850849037047626884733161419433051711488797734884984782890837930933271171356757300336970264846647515283408474555226983692554268893151911169919937777173533251416047261049654934053269808959316894862199992901044329165237045298711769572380423050552946595937602228972484522933564663400062008339163635715997274518018362171489753991665174958588548198363315797609929491543865076009929155628090307778388104497532393129160810292422160701267011620162676013821122076770180274074444526255267250143271379612478614653930000142629727165255478373682879959803676035483159381625839161537032673388229194651540707898951742237711979876535696835428227088162689516779103107359309330890397055747522897198344804634341691392243116073136755851186676556248856522510219193346814890491516821707903486537227338346000045598327618978164472969554351030187932512693188789937244794090149720650460537268574221899877336443556318867509870721391444884888465925771769658844682794206364323909605539197664106976543567947358102619709465244116558280955124656139695703432839702719823128352664693721368519797742517069733950499090896685861152275723819414547202521375442866114012426413861587883483485656071830078127482676225619093914535610701029214624734858508592306220250457622862096896910308566884828161072553414313489745924440743944742006637630387536105833105258222474536070779413005400055234246763152790946236033298187731313359235034697654296925411860413483180504775452270798188904329197169145195191170300945496345731414759939319132534202838361652640837814582630220561338835845110913934682762649028807650869111302287086710187433784351748604746219854589610827413383645630615712477260316547344637157623917887943764019545618061114152958123262148367440956822653855920281041081654452656240181868912470911877994011076571523413575089428792731322281155810790908853908595880267791577572515568256601357804192816880293077636184151697837010908830674032911811136384242525549841809829520724730679548200803756983475616033945966693557659904210670934676902789684562821607972853336165302060143512927883531993706671427824800356144319186173412593239610082082578165183639308985123333967666003980016084228555155103049791957656298426697492791624905051471135254416275572734893405467020068501143435159403088266752207804049923381299291421529131521338738293602745032909901555877715507118240258048870077774639778235243428033035617700572747700126024662050981794838669447081183422666947189081062356633548356709923983445626885494728897922186353812591522613126586076146286822714068291054302886571468072324951285355132429163428964655533565543133433197072470073019738983758777945576169075569260069955177630827210273336728136567355967709899726341203124263954872912697688340554144330327614441304558546691498502759602985523331494293015837298174074148444629030531823460159840103529047254632439436269486147073341262741175242189559461155272626252245087656294788775065748814008021929234503189343064466123769824110747740948381278239827743403310224077755707132237504444179679422968800948970193249104004880634327253157503972729265804509156642165302769304904004904275478597894857235387833433156129761545923898614879744572202937157379082997284349307932805060980491073133343687904314672361322806367467252900394078660230932512017601353536301048244131689618751531307677067950491794612925574543892048000870332993692576291246431069505842194135909149594522022505593749796771228682041418385579271721371783969471638635476352324925332116458543050170266498285762963606428358786994372931634691840777481921187105864477087009750622251053069758572652902751353159280446762418390582447942939517444909306589706456477261192048266446684755081792021685143863167515775507529412595643730166312494313533604137826636660543276705688023589112358458430216528593925705436518589502793561094756531160529900400366111008602391271086154745881110928667181454103492125872256241003345107630405621681808298556009624598321633901037676369812153518376215579846754017448935541987060506064211392738190442775821695768916100164048788893625864364783541331234783403996478619294395780050675309593251290071099919323721134026210590374094672908817221292516566427099983034357647876377288978141683304340194053422389481710719492355394470156884547232340933977530841707137153539825913395313920603136755611338534124215341551207487059777590422285790251358177938258462812544231574522501944646790372562455011481987351846695681836639951011494615859064084854307817251663562057863864342139128260989916585026042929811791551254266995150324626888371505216000399049424770684870633772590840535031289337004504059761669939353704292157592971081586616540950692205659766484560192297783918595484704777097822956298648402340419410016278181502041269995539209356098828050404572853557157338316889602867169538019375772205704382513685602538283104959344471678637526282424431537520967888832940305038918119844593319261976247227481058363420192455413411859546728026676800021527752426349013849549726557815513702238767523387468962160343737483293929710822367456573762572197911251010294429530234778417789177931724683545965017873554121916919520064169192609574477143367313010680414609198647209988042613876571378639436898712505838653633954018065286777961349650826451224473301884105399317688764614337257325422770485635115028356701072983143915525703563211988740986588503983633992996045673060294402995642346128626741243705870716246300609974565128156588507968010192263046692267288986801433926932343427122847559215778097814589183275275215827399390346269012821286711424784195285470511816436536443610779828548368551777030037648712707562774969032166247779902978691812941372536783743411232692993855254685814421024545414804907439883915794678040232662102981338388582176952678014201439282551260693986534986850803454396945646095446136067589030837863290086883219607229949210688491640881523817960469263490037343409857918179904868551786662268001571591603965984528628943979618688965400632097905004828461370168940497602407639229109351629548885835468386278829130135116698856441282183142483022335265592503395845171578051980482730067052186575983656044550589951520978370215368952618617216490094680188613709209563854693764390197042778457923064311058110102458321534194995185124031939531889141273869202216325290582802492763572597074303386824811303119265271305444521032521415454942089092501922706129629375841043352387929155536569480628420237615746442273998128913406670506318407949294867015708284309905558166214912137083100743700251638383665793405876899596415812937989123099098842374549771694958555061332260521731826337463223724810682359391251052632151162396772833000041524457061410237588550232534497452310029124761680646628859092612421303259852333338954126532127744582033370807684043685806334349055479484450598757520848640236873154051023813273771669096412665546381779624724098467678290197258670603847761532773999797244545870864337346860735605041261837408987363797747115987450159265953200013879266434019725958725128100539071398419116407534835681192887682172090354992562570197757847444035599433960245358734251391679126871914071572613045424500946562784105378985868019671905922842221987977757003133025610050197296209533058614484560006396156363352071013549405117450375889799729777762395218719022774032194075326576009298391811308798751782210394376370727201741543130159435659060311574298284553146840252056267686338110866043847099574738448408789239813983181561559573263619930115030898644682160180965673793727628339725147479665562788742529775158261284473930241154169569647464061774339165105996261820503172310471761223424305538782420200910007468907845275736743324266309591347894904050850994402701000117434054340106496497123996238894189974377865862053687303220002998182149930762126086615946863145042849621015840735145949698280998954843169213847780862374321798584061685432367797633360610211522248619103950124404534106023225175673564368746597171836649592984080967630218220782970768732177800360925060864926891295195933227116094835612269075084605826953411401861101016547242749623145679426870004968403258626777328046764636530950186991100622977609465814837456905654181074373205110642989321928766321125544431251075744734803240152751871382493926295241708039778870436812448100360927417095532812379921643397348289262003031646194839982286391271140300063552855680194030779511625290572274404484352317377074962808999397489324454564636579717543110962324212618517001304536774151083288952810990579864759463968471026658713179057894684137822318610206070631435312914942520637087637725515016533912931013179529287255393833309918314761783767738468443704087034218527128735593263742164072110378701539988531307357718235376561494688998754998267371141320192711235726382681765194373939759724253874949525508641322845306594405621503913713709090109695130397883024461057227179552316196793238729595357718054356601519181377763943013647074846299965205946323417463733324403952442726481036434320269036821803912440916157330565746786290678697345940506319460002775217315952702313794327805671366311893891597117170324674442643721061902482169362551287407085329840907270652829619836389578031811032041805316182829249436923160827281186542571386475166494875945565519951192803912721411576572724728100342000142933120727436663063371002296806435927182665017814156680901350296942895787411889928389412276562721323509271627617202036390278914518931418103820260687154812585197860860237842591088393256229606972052384201594212500741220169117536185084799670695903991209995609821988933494629294605872496522988006204305172914481044567437598924015582661484990794203144471363248586800205706254035979112715450624558453268187239529654345209736152459173619172853673319261463395661614480465711151941194462123609570621132386411379026350679008422134849011813230243220629667914874142690820521486126569443633064185157024072013548277686634477085576433620926741220662076722931973041771241767080362192043103076642043372462301300147708871369162935154609434484081001321143592067290865866817387965646055847233226110141096600308876609740309329870031305399799838981036857040652055523128398048142117560698801354132129748593033857721380901753685815282006815034012309480164075110928424696639788599198247354733180798879401410157128829878108243930086159697506242373371826454232311091252667182810438996314716963575445841365433073212278342737438846315299783171022294473009516382801551452649876137287450755227188951558974324262876655062122048289997183473912494318479657865249447889219392079155690239144193456134160432782794948187417579825565262163339184467153660271066950401281171842979891396756410838285404744043173987295718318499924234341328908315444232827548309943413438829445364504903665333111092154131787287038538636142993192811274189057735125677385935670127126836803339146732649874840294416556656365683067015359533804740840539248732868036455402524717968701951478825640200262725886582300696600563981753660058912723742043092363427902121284620427471860973699276159470398017108769699129324496616408492372835471911155076259377298234084766013333828849638454745987547535619934124553537698632942945590006109475465742819896714487259122238940411107411621977868779570032373131257161016309723229978478278481585053430947938968670313529327252624873598103166386282750033258189170087622216086777274691074331894850250455225323888744723703254463035679175369560888951257561113736094117265254369072046910822002993639097847891350152748578688439995193405077826375230862839640024572086642615039032088641661864043043177493074533501181470801597828442244193172016218111488201452155013618352478220111178230304817440226458338579668723384186945547930125680803249240728475948124617009250950091883236034009997847966049870964557824322866497517111374629936666196029772671863163803940793950011856828353860277201705741135204700302197913534564916128881248743539502416342225228913796810838097039469834432823128588012307439761352178153058347615108113413766039287351698122063678897319586390078225318103291278751320266158506429239990069378658706705424585709367116035552541738875803958958499693289880187640164655538639837014404467722325869071829890054191767896987029959425286015535766106013512400988962989917156901135399590255127470497944171927138018612110418783720595302782659686539786375809766539473187261425041686464872373043997421732279694926656183691315955033116506108237391423687349667784535169865663092379300015205665837689838762019474229510102021638627613475992972258356690367040281768859281006986860902641504662332746589931794771731255369582887901201351037479356702866134236058416309382378301027696584608801066329238307043127433529661722221023410352686254205656145981818366728358343109195015909668631556531852819150793777762516073524631644958283048139965586764433602673588223244511996054111553242096597261124456013120067961981176972203628197277893049422115838942888859622178075555425198348719519318982457468684561970560265610306625418735729136133902663797793118250057723825895708342588755985816390964182133375262653974998073167551457008341507346318643394604615689591185427681323877162929558331434694352319892606288352602027900939376726269023381413846097756497959303986444878299083770216073073253348196954859008260820774516211238649729354348037771357741221552925699436746454898425032562477479081978906286853736455738473997134003639232111167967616994049876545480801940942578758695391981333669650830473874764189391745991464012741285823022225621416514245582854448400280533966141072759972119855915474280741053703688077692349286188921073740548092189439388307140056637166232186127872957746644697312193275042277058282774883506890034396730379737493649239439047308830817187566276991186068424388364373980286062711356161571421426855571402118119786203753374480637629404947350802799009749043696657096943225300433293465844124292450451012485781833868270278960331996042899699600525790311701029571992678951063541790063460107415154269638665695402483844055434311685814496556123625993433847861369225864651868308446883352340860329037960570325636938979153006390839029274181445376568115354775010382809235970165913561660164043100362787823796293308289772810520981759112881531658533731582078992906925671412990200254624479289180653828078541832736876835468424408605024437419773229091262788048233750054045523716262961584984296764861922386004580419239525333208339843835382916258707173988260071007340782753848552442072858107854363462421513134819968114260748493479687669470367327307560928980905907877037177504830149620524192479740233066108986924637970242981692769588176891434774889633558965196338285528645274163340497766981905174596284250022041125581625376323779474163702392809609425915042773785761476304733932943088918625088687597502502263156943858341985612464423824278447393080817493209295027872808449439458022464394589458540413022435183464731745673316550939654878178724869614335494732209729973513026315679247341941995874753072578652170865477001020093674267537068073621512269248583003382137227471112958764437924841502790085390466347475316970736610136230881536385642405851049769108714693009489958829784086398561317027806071521474884751988713938647350447064391199010156755902413257308581509218963553222382783758876721608120358448322851463058374202989698221583389697554272572689829477845987925165030838746516782616317715068105829663296023651945316627771954716722023746972320770749744529977555290763286200994633272020730981220761004497803491669781903168242022004558846686912412379088731923097235935640125274509091450330121023022075959309714528814792013707611194267932220177445190852783928517688199893628013172114547399211032787727555756602275481887645546746519272634660048643635600460672159998722893608331758217987168250414816647355057162531472485831592504500900819806222597937874674723995459900093905482636177706508066704576028719305781711761274110888835167113283427533562945058136310586243257614728266948948233745615990904940708788346965010154523357928752164685100542970099482805583783792580890434013978982908006244888399996157876608898419432261957328697629174890733178539266226673605435817960416857347724831245274252208418665828820372957044266002166531511280707298149878973405179794930098799450620452179153995142333016966609819150202330441521548235802202176781449767648923760948748096664002049209008868131561204155706849786118011353770066917306019191369001097982099891957329255927788477397946094686728704885314022890648405145892413472556981969060220874713471859272816639857157927954246103612905851213707448991047514669924033976159243798028179273383214891682693369098098691993833834079058821033369467330023948607872933924631873837658355686512034827475960816848901225427940037878500765937030418891360662785491381055849759891468568685690132274796527477827203342151625899336522288685569612538852386618088607651118113875086434917991542391712040340917414166886726936086410809555663185523055566258046187383765486843380112194239551394746122561503335111235722424273995913031554017474262416743407433495076095540427836511871489884913417741935135825120837705373107044157583549253112322346395978080963267143522311871841368026155659648167570966648296230604359020959322685434989769843331679632119546183291565665569967840823460647457020368460983461923214105328958302033682671114089646472030666435932567904545106034671717063552372435585083200206890881837892056561905635732875346927511777935067635787861659772464390965775363933074543970305278754155813256418973550830448701015191665736070761815317618105432312395645814824986414426028584677775649904983090114426413527680481336191695040454853890984014520021421433549087730293130355167388856922500369025597872885383923701115345636533622602493078051048185209643789417299184349681261738155761833046494641644108599412526637597951951519925351457394383123069216680426730038570561411448897593620855222868835495471960145756021350313843584373049722420986974120645958484878423486608820264564968438399279526839812507389719502473791672117968564512338501997396002314271654540183191611210607944832701428121122819117824758300936555587031681359103970137034542256305097415306578250887048213316380764821097718523599233014334991162163859734332157162197874748680406690327291941053661473875263699437042075550597825670756380827526968417343403430504921967177379167654316424209579518452243765333871116139146201448083328049173457480522591009550688236268455699038179560068046917767162847458684445581669338062225398029022836494960212842763058443668575321368932401063204424996767795916201509643910696535781333083225956821379354881928978020814028447526175016739760239363147562924505200858397605904975304919236736514940721885582484506351594135098586624489239539146046528236690070029990153346502462041563801442568436781054029609039141474259694923962495628524179437004197389070430794079570107487559361472547915061724567234161509961461976524033831867299720577164789241376164961993041943324446566388657371573927552854018266913250616421345176370601744483036678828029285763831345988429407366167835996596570903417735974676138951812618872046836746751810092526205964007945987658983933885334963360689582834176731881873808149644253501698800389214410259084574406239330472337349604852510219114328545895915040912532517130562882908073032981421881317098966594476880745381781181134426520448582857590612713515112183816711821388078402493285450984012147998182708208120821808237016753373314805413484304948917308100334145660851235295827201029799060245435448069859033242624184184395651935253685090893399809841887916417453936527484731200237336588932209383030590632240195884743582882143517555490900122616898398263593535782023703706133287868384397014194492578071566907386684984620809415419354060509870196638050578034299288342161405938620126418401409785632976973980217484747685999886382979968315795221083437320548793809914206212577966728955526055223525773955701189333460825402050774381040336675513754913274943945664444735877838587786573985878129532001113766256520190351831031882208706254234778416060645918268969372077356151780460213675948047013394396928770009465119597215554969517814816362134636706398942177518022860207484064554275747836062631318507001709579618304159975779327342565743158125687256375229234928273158407306286493374539987273409935818721390141548381277164149254460162232381467953415523931110549147986112298596156650374541063658895083690840973664035314100375166528908729666850689654928722218868027597155800042443179829524645930646474806469712105002223976734204890547559313602708563345177061178871793316331202254326812390609549855294124404875491129830240879921602242860087699182261757690650825246395437397355696108671415479263533386597783829275455832986394016442500721144027204395714051466977212561951161785306106349702486133416240802969241243513215092468103722729183142608615387479337283975612747538576783509202440043266314725931820475580013971114180847038272035788687896051394524307538515759516797814294181422833486174994354709218674637907866794128136115989288357914226285191655880771745602106003294003111393253019542679411911328216667138529371586329039973839259728462960487537065712279345262410629043171697945125621633776128276049758853526341364410337797462536084328398810377852590759606783259706035334060965533014323328647947047210247793340185168968783891473682431402933832671193395971475621544990736231164070031721091871990715032262619031625661169213668551056504842381874838654139489874484521511522429740918477844830112908725652077600635190337460967344644228026243881304158307797953150100641321911877011562499459331080645772103010305378331434897341533200141401171667061865254300068895451976448091399265025657122760850919927048540779556988991345150276018329479483715423715768971145026174457838553315385839682187317929975773962805759651548985310874399855515786045964943159232329544108894921428051741800926393269896815283882107484538633724752008672347759555535586775824586430604135334493361364157935990612421834623331961781848804815912213560131883736997479453184230167756767317690565516268247139698213488376734712275009497832611129174591007256836207510748511058283313164663462059880134367469705767721520890019871894708272249318682443702249294524346251990142049979695904143526642275036966672755620994933585597266184113671162495935716600212305333635635331471857429806282300114232640025080073319307476156939412685468544375949273631100386891097533203878917574024008955556934782244450298575409958375760839167289035238517490362827369213196660012132287587842333598272006604909065772922986090898601978126810744291690248765741804531569776880581325611751688501199394247673722914588530438080383459223720659043989035942023982549408860684100623569516021930713882881457117432545842215641099964317803102619916051566620842754826661658996842352480267604017379145210364475719045040994695655325098877260967005304140554709809148676634780925536113577539214471049460147659531781435349173977604510042473742343164179804341108088390008499273603002710613959196697528643663416199668355443708212163082591546616083818765503379948185477836706956604025413209658819547898714804046570450346433668617944796487002944708529593841236478879870119779914019070967378799162949985024108805208628372671809818436017115280990319116443408167593613912015081300325097428565872019693310258611053478608776904771763498205633513793546582774059874487587032678897117365144786204853909405597207343604504115564270502461810360217050366735609215719939746676812401677886637217049734522250184830028822855404968269457551851581936467740390810642535678995440190564812441618965371867956053787586862603154951426579144340239012737837195441041175642992308717832814828040051696093531736301924966527969952613551458858378107466045170233749782261340216738448743233206544462815491212211200090137877667132177603507585626110191428697826541555658696293021187143724528800660928730749329696928010038777498489468588234543077075268147006325335477268578663950210880453150911918183186944587908823469305126735723324527911263146722662681106973114516603281960848263919246998238887388540447024990166503193445564141304578777668540225874340843892825591164496125033045213399062137760089936872256241923617903528137917728391885343418231029203488679782889194500234648760480124255194199024324978668310305361065726691617049537867863917431957685821992809885730219342052560015630009599313809230313849818846365518599140663567094858032223988849668314158463470275147218895630876692095006148483511961223713271895842414664786595106925055484963590128989867076665801048271205622298696835410142293777411196200607417707385461356796892059752896686335197599426447465892786503204466890300266519583432356871746935468600438531634417234853581600318462931615557849654484671767746873569661596287770497964733820040124422611017718598916151221787695314969436099336531126592660504206997496755152294957804123738744457689139501533535032573407508534503527788047277460622965884881737828476526551684836929939435722003734319937845739519964208451675603214206661698696475148193568061614649276922699991994510986738307970812630607919803515560865370379364698664999035722344834111192543882527489307514858724340097297844767485122881297452365276072267029398817053127774056066951475544947845019789828148581053341849579066650667983433859076370036592261962857119265591632662904191815912669725761846877123703056698413526466879870993701950340268502427120898053571932676894072001158795996086530634807940386787982785090334859263790681120048539652282787387594395466582508102018558260456663459580507153205349448868330861755905709991982077713574150537243795417507731268590583572680780520158739128484706593902953192913331030262571592751640290286900439872204228843312794382268702527666101840662226312295834976013395465223159043684049251686162998624387335762759512766548971011203425327076253405843921737506545074327724846910214298217341598225900168043202769830620827432313078542815684047076156718307773225203431767217760805484971378215536569005857298949451818552787296499733780801786720691192493506085015838946183642799449233578689080076927718213638779854439234306749025210090560274699704931611418314161935893254862807540912407651076836154021050605020017186424697257277348681497893140200652120414503540393933164334306031472453766926087224863505736995371060602837822040347371012505621611657565676694224621454900279809378448542778880431735079234862151470117455600433268280267415999390922422360053563856874802063366499556986669359112643288329931262358599327715048513599488256617176757166498882299992253950197869958477112304569155301337365666775223807170667664934466935566849862934652519347883824547875533607223639925415503600460547950724748698938503100631266077669975784517742116398108792717438547449970108954932766407824802070589838635042990980218741082625191094775327693229811511748943027342083767434480533025389152338626125521290346432377888483392225021583179979597496233020475817246284852500457083067237552007159503208657256543271005900350221735050224920842573348892601018342378246018409130177818578790537108622556338092519391348761495766730065032082084638062062019651477264046831282284162396481215728382107648564650365926746871754574749860998965001797919760932571241109945656424963489274548434029721738482085037662544578908473223657906136651497714358770340981731939010757587283258521384535582158255718910403182500278808608091797708322203492685580742206570948648213951967505985065552099416847207658755233113147137646501540801194916382863872649435967141934692044593780900428772761957439679828467016131540611651836118552451708900890463816196556203983874712545567966139004387411216081207099721912474184333428136637275260112028370968567590399314751346685158766952888306806041602229262849706887581704913176943208340087114287593424192356931287717873115360684538521517544302753918619446994443030056808142023379294197497512915523227701835334728790807180975709762137803515239214385396305549909994501002472975135010529830820337132146395399246907824447375158445789917699846444730592152330940246964222912746303219712308965942069243018425612641492764899515606812780972249488737049239778718024571559581476868912904641148206265558595773775189343320313160191767613817424316017816551967865981699438706329308276170238548996576172723864515631450056911638059446841913654921543862831106324311434408253545714744715739849720290379451732970117946883492794466155365060924614718350521134606981024488782640325649245444664008200463219521410160360480082345605641491782772726076116315446865364203787456131577549295229877429459730769004904464696878242159760948544649044475324499172401306965595270552085346058077814970695567899814822357638128525505244618869159023401430732486770935515723531955480270811772509423557573237847157821064727250542336882978247677464991455980930044924490328855575747272649364876611643572207341068415410090139517988850001665278920194146543978163991454864862492030718952474676035808902204121645655472406807158511408533130512464851725367446874777444289847480095681766939403690323037218849988370947011001120065384174663796237504249779361740859690757156130135538833638358800352941071098208223412604368944052709189736719578517641149509667900255974455770929599013428722092536419349559045990200605446770690240261960898757858512173542598750006923427424160964131471038404081282995496182335971711208006727046850828372892416182309990677474335668979985528576562566002834553936066274214304236837007007337697917082041608770154924784549186554012994033273445612702708400122405302450521772366377075149426925916439353095476150282224131071316624349493162993911224189205623401520627637035143173599409867927902162054664285595958293578070055412750446173034327001292616451275961663603897011934916784868619493022488358845281857945022804581588254379266596443329076456462194947549727664314650425312605935981829685368226475100591433190299864603560272591761943929425525340760725263860033841503798557979929815391942258037924986676335445986003215711202435436077810021764935889596540441553150304870916409644114183236871692653903105967554915590750523978532336012714049561291933036030643330968783983707976318195378779911240380198533668630214567410383886837599053861351555058083181876284131956955103535191716446295729312673771411801668862579890969109638805204741378218633446032398129045210151946658358104462583340763038250462828426965215513475423611477096306028320735509711438640891837401506031892224988425112861865394043752449590714574546166606443425208576796986344543259381274029325710899379238258226507842235054029652251037155945977181915607244106064566494606803924914741920832156249584322845444140108146191787584188491958728240961449713830223888999098031011072864855460526124748429453020494185995637716996716289628537809110840075641052879465765175397803810799296936215668671994018459662069116759478630476887433228554075300066357260299496988002696470708914687955324900806320273014800622762937615728349964492799717059775865201408877296979536509040187662247331759636450735032209135833359260398569974751042337240060259772248356117700975122516543452744775967781177643627869146027436693431273609744019017541043803129903164794601494055270257994803882095874354828654299098073479106784160561264919989736502137496247363359074609901527536388583486400825982754347694549856053347800389737925232602637726660626130850143928547835824912339449408377897990532879557438389865122376870362212120856753861988494719163087245756580887003802524466453862653361570997132775919361637686251443956778874537345470575157718338214717593716232167633899339345132063868925493278658782482307806848715419244236297154603636896144564938379751352578900165403346909320455281817264427668712832842890516404198251967969757114016658508446255821828014569593341025790686223915797265962217918065578001291775078278404625068788487158545973443342614198542081162564187233434538492512912430472815112269011298999979317144835166939565808746029103618395862583213373185668698491365154775212633654182454393364949956887430288541549255512952769322132471062959083235351511168972366369016060671184950984164565471956870082139951348093692910383003255720071641490123696101066146449890677536912116078039352373839839687451718131370660387774915539639214179102642162622080242144790717234761060195443485205873105645806676055158554067181017941093937141755441998477516527368000942400921765931900234030404180119778145055297009158341469022058055884472327068977575550469289443693276602830704780984382055310225876747169266045163218238305354352124555181710593851956542944937615172997618666018447205630475236152050854792836166381645718179655896606078456202293730766845107179863939101210061880979664447101057651494508497133423096525570710980586378909640591666483187772317703914771128463438108144901074015706658568157470241268332886346388717111940789447980040944126036331722290517354728830742666568065560749909771895840091026592862381292527030504117844629747229467851174472419603435995539036250633017102232812335043562124048653124419708961631172411392131568064247380044063401194782139153736268487049948264585487288009127359268502108810352987554088302261800597132691118286104729127155922440688915064595670204435736900377804539734297616652447142187438737206235997747531432421646684938316645365810889878905895673909061952724950198194042531344204319626579185837222604081977144840106299142560250270171446566192068415069093695065282677699279680943840272339684534762694015266317774073704273197227542972811280412407613638868161445602988671925630371967460072819306479439412805535066710905730362921895150534532492766490863156705523972184408936406108681240532159328291073508213157517876180534459509621717426740044462203789482896607147365827515532146695370035665331692817460182161458345516869221444525273568807826170795687805345326745182635274237737755974599243712817408410369461672842033238560514718067809009835475145328909793713784957869200948660619675534813723494964121865264721448412473688273201998606771406294094185627471358519073273730687420889392218167556854543503184847530748515051716412426030340297288462983178545105940202131345315982412462178900298991590387691898736749427436283956810495998623310211067794054853393560340197053977441374871869218486008932673493127902087379521866041294305538416036184260106416705077138363256615766903023857307137386959370099848729163431628124610852123048997083562507017220693550292077155559175235886384437165535965613160237093116945534666864932580486324280238137947001633023592850860540478491321069865053348307259376346263826509891893671136238565879863788388665470393067684557824961734397462079613381550620665315950687789096030740702085170837377928577074031950422681003574124557309377621947538474912412105599373980589470300842439272034377324159350219337750438674643179400820421714568021314245872549116634563021275828779359831243528876264687536644373584968178957922699134945568205270657208527677142627179232178356412902715592884230330676293922434334956919997856702169502348301495864592070742001047083540428664603717344958328922497750310745168203138951409865639320176174271055782413210044649921296244253467340132179441332535675737457826681468067240089195655696518183164971234830158994810869987557037519430401156442561159095964249593295020749337839306438113246929917882497966715555645514669962074083802597122808411994095303234537460993015999106820415274385412881301042221408384474851975426467938561555059059008041267005732923991242505447541553828090958026294920940229015291453671920101525592208222214318676054343141721849228189634948570792153458790363862861664950048363214837977930722524724736338813158343589837910212948190916948518405381355479222794662068605148309679377760598649683497817508774364455501998863896454162880044531906127947583861173551266185009573740339984505780334492537620793863218363352099205379271304182726907530719823091135874269685770673432028765747701707573733527626508368070156958221620616810121871530203451383207652429064814100498245419617632057215081799987519653152424073539818299132809440085436786352830850269724111651563722179187066611786420178289748645922478248071743863761721523768342702757916658651647928945253271502272600158491588656476388750585152551818523394724939387040433945649903175661637401380683486008051970759447979647554038183359921752209544354931796264805419540525158674105514599481883967824674933530854245082319647389311805973724349974630513018583947562056350660009578634988784999878349948401276172477270004108345465219640804380114946811619279099436205979177773617145236941668991042865969788008134299857343261173112805633812339100061140563516162370694278623809174097556070106502113959247455008455055428772063281260522524975161922861813874449347732555619792184002088502765446892800140233686702265306518224257430778196974179891643406829596649854011634437450697835488013441671667687682361092046175772202763600303480713756435365390875034663391463828793612570301592111226518316554878356495497393955500363729548696382146700153009160092073585936351503867251011007853648624966395378264202962512420620079368990996494085282903922486936645272291477913813753848464819058949213204261900456406686565346673513947146968786422988380043141507722786743076437254872292063519903917613967274502704537711447884511720025560981219794497684087905391398531644434346692924601637712354195549974916565854208479687648201430853033943507623709116545948536534474654940121254242293355349964577109816167514457968129777805119552935815199308194310182079119619199061242050577540661965736765053900908134227356526919713584084219589325015799048723371486364957365638316793597784316375308938308231916661199618421963100638311572988943250871369413992072192978223030938865392577860271142642759606617597930462601388825803329918863254423891667408857053164367533214777633387541287833365043920392597134411818190649878953506178831573140220394465401099623107774118113758780425561454351172493807796291995617738936921460662418873696893394654590816449264911426656636594662543216365043774621952685034590961885726834147866775944711910055507011596297135387961664747629670360499683553113191472506393808470370313129346633236000594767531341602457465094365900948509175684518657133721782350520939315840976335989498039892190205041468977904792957153528528426761563750767758572289869082915098384455279700801022824228830280790424956394839466636137220857015076335744907210053882375998291451493364413424583189842662678483162006586319053002206588790183940862443653272754724938971219228574126397868605648770626286210777392468551214384718528919309838743398800148243153098335342640932075878396336644308185099541868393991158643932581060378215797395823680363118269637201099262090550564750666040874056937511340290118561992687917597456414119531239228392014331988317064464818469927722590060362983769488076187774971222384451452088320652559389550093493933677972005922503234800671666396585032828748027581489478333768967327418546760826762514581428104979245625006383675338910240321688389091766257002529871496338760134899342699856554417081895420382940387133472110017887047972185578305719214316469392666478212181928153644726997796465957637205234584733091876660620362460705426633115544544588004089819858125574670508850211889118267458235215419865549666595693992608604819447708860653190132824361942756313583955105792520645818995651425975456476189732577333481252451263504672766624807693408936738899101682319931908264397407549680589955655977288601042051718415712063844471949412091744116851564004809012773093168696406591213454457261112784650214991250270776795257936110732101478476519314623768623838426565984453632005115250853157800442895431886463960523299984730096726515304229033186960517072527809003624156551686305599313113093671540821166418203865402914549600090825122573923806485914730538857503659707867706864768261452475664138566968682862881645008320354926875041737875199989217836198201248145802367472679974641550822905856738373997432445002164399793571535343643267447894018948158548995397430670731471118587986933079197183454099373947953281878089306542809566239776640355101618260310155828713017291886946419440028163568236485272050612881063877638458389378444450278494437795825015546751821758024627004822616727751297566258491740774155596887188146993494077631002452699784462561856875792453165690708170107977690046516432164959641072502765518535299416223504109062178437994164279106318685437086310588991108367918092575176169321175687950887557387264297058882226369295598021278423528342675302925554126407691786705363504460362941697325450041713094752932759602044968794724728496719600943457102607216168928746085285873916063075687172192454489748798530077695129160243458671179246657355879971773326966471669845812954400599403344549733316685974413022222543974902129205722033605302210079393917222132443381633306397318291244289750299267703464041758995853072034253338077198547203063823048262890681037782200544315551741716548187642155009149658072407766818777989196194096250594735925776676681757479448662097856422399516047504486477653789955899992470726549649350920181354891345143009256821912374284611997096050549610030601342428807267676610827617503354917155950058340934149720731665345484120511615378819007840391886911610202997960088129677064566037387796586385644647923902126333435607163361153302565364308546381219251198199323083670321107715974041471949028080801691335335969132745686209148539351605913872012019844337836268504971395696615333428550788604022272153092252293122127854042685706775867449440332548294823295653636784870563834849103375176233981957912251575840255294743786645041356475060930080080297967802147811088236455458986669180414198804919717714142161847395064440188711763143305708434092634689885332195596057196466838358086120602309354557208284588960667790730609488459574882899921753552856141892930111215373721749896787147702916534714096287062604044151806200139282436612420822437144052015267974420452331265945724820838866458527971252983538771498427237704676144392383930596666902975223359087063079320526122300242150473910444967620779067888258237001889879625575183279111836761374914232008938542033885436077797446768106711872389286707590377553232871845330013221281225347958272630131560165104330989674723517100237803736553106286030504112637753193257682792331522547186734668405508880479304932151899885062918529916069364267758188912494257960662391895523071139925188028069872563977734496720805831289909008337178502468056804577585304895159957520193633848050043094207068327043595491249977282710500745875652544952645696904253101997389433928269699804671043050996908915199359593862697702828652447605660248607945867283223407805328354028140788397848364943723696042330031324513443669014852122973447152738863772144575707872248869944168376751219026775270067574224929095463005794900375886849201368348594278478202775018031480473325791460582429556084159685439427083183965051687175728447988591011137499870417256253478271087547075906270204751501090212569493627094956617346297976063372566643498088570807526981444387831039204706025172473128044380928106875964335073453633266957170608505880405276126170559734056995069626326333544352251130238805774343387483321991476246092153548438868336339902459501295534079754774588790718577240203599441438914111235411428738699622379226954173537779682972139567255442703826632382528350925927185961320834704557835210819688144097427332923211730289376962692193688760474024313403929395412151102159222273890586293491597544219013799768274880371646009242049231564062625218520373990516278147204691447656322281070334093026250339328817814730049599751266181013753007754005797022377784175569277919753983950619597437838338657213204541448349155869957101274346325033326374104496288514288400973286962139355946850623786582298006577644594015207827232458740376155471082398994270247860809104655969511933113534442252590412586199452458172877711619137399302477144564992878403468855160239655351862458613129218331382664970266802161647862211599208415204233526920602446173261838662285407262177978105097676258987790665205338710281121020898160428876512996262457641898665255918585021034304602943068908358906278695350986774226317466276133529338817697030854116860080192998969361747245851241890307127230860628810703947980475289185601014869143786494051031433255638149993919550628383315168008376807887565349605361842729904212090217553477510277060064274716008823865735823039956164247439472405803359731837021512784868601676798442765454962887470891365983850804405255042834505811867709508979402017161244487360063795209001051482954759971200505394929464610102911490532871412683093975914891223277403595670423650564229208651215067491528918038225153961974819095000126093036162865881188891262257885088717314454507888850355034084214365232048016469150611567332236290929927741464798370652809241487683268441688324230814062650850099703759110217526033513508215522839281727504753588141917026049362222466228229981477500216077509617844584956319837816785227070844164252611044340390566035587655161445411109247418854527819528677911526841999268262530097468625985752056199501235680040948005665314952076355397729126336678088677101415974350325567576739288890609705442940298980633909940907544558291219564098617224402548073217177537145773575218479318986772727215020914915287379157541030049122680514750196928529258433520591225782739510432858732851358000843218828576420584622369949764550265226519038273694510348471284124899293046354808931828844339084911298900007149322631056813113706207243760191664093555026721807070997873316698047279607058585341824549327164675218745918794172502261816331770851540854358451115491997760568178441707720696507938240845274804961459955636853751073743306226985078209093598672886628580350768248476209440576296983431600789204472852293274985646679706018017486671816978664839832726259933552770679950902155323414671925061838596293193716189175056902603469115712860600926122425653322829153189421102202396427690057443918898510750364440854218097311597572497758660466180884937135314011350081200566833396835737269828997629168187168010427675064843279910369794331564461439115044140024895051552744812642865647257567807477064519505488926585436408016666311826605084655375852624481925596814909041040196285646293313816366854844872075325212976079852290147453346147171011429818606142667616190072637933054284873008304220375822784503351762819516710875299261337812191689563654976259107800379111884626811288488942302795224582592302212849165350191521798091752757433088015803047227858382754128564845045665630104440732887257057300699892258182743079836602995165621494964368850217617820291295278754225759543112926697650659229910961631850129840405391415444310945443844579112748620961875300737662431713147560381184608114710098788545694811120614511232211295025152514465145773253247306534566700664684460216899881135674084390275392154136938641244788780032409787690649365580042470799519486323816492489393575362644387294182114813873095437985936972240954211896126795492113855268700340178014026302134010062357171528000046160097273501234572252819419842619636984660440760788609161100111919289426769337808328620504328621995052244259960351806651234752404501230408284594211232763104875996295555398055967730151835697805598808463912461252803836456502625580768630029090244974077010530485045438344221708364008013301625013443690077668637115805321622971305289669624068831622100949684271604075678106328021352907525007372948591785815925691810385639269846397936383794579392231585237843319142254874086269321638225307001696395294933555893422232249315197527318032738633663312216564370653333469271163243635620542344345424995030968172575227490628883738354494451078376848669948680044403563072571337777583440625541421919264567771593090850800846100326604570797687995058763827325225911473965010933829183909864489575641228085230550004699019420370258604181217548347946327550283734264982622203368353832840245777515743559264460197266925827367154656183345868712685005944652064662211797541009024659731673692020430400620816859979434292270671772662062929271642816225586863417472134207178608909345485603753244503107484403871866223839266010156981162329640058540184442403333766596716775394516269995624977150512825742246053216101602546076248154777239017044419781645484096087675075678560949425962969140451546044563105326333589278207786002540628267919639758022869937051244463594170685080816723400120811250043986045903119155996651433031693065787288743129395310865550599582296070301746137500086706584212347893795648940988017290979196454256208142364310273429085356610130620635920636369951294515591801719427947581348247754866008997556759175509089132723316951850243604935260608232363551211640937586879793238590628955238008350693713886752853762241607627424222277435060994015960451811648927494173329872799632329664898652087211664526492583185148022677046719931755434396919755889323796506376436525126848177313159215057123593622841422458070916424158891519055143882621266557764222901294742822193169386882380176812081675323408627082584009350714849465794495787645896095389010784944715721051495994131798466758339227415307212386956153406058241890518791651110727979068405786578721702779582353488281707457389089268245218933875384377026673593056072939608372758548546147108586005563164809504527904670556137997532572966624310526048886670483506337914621382643300097935676873183577689260153935348508439766033445376847221180159931682030783871516453146421810101431969599177834038918819957082613817752782597032572908903587086365001491085415105466323681942460828103592586950586127433419181071913598743420419550764701032065741799168286682609785158049039683180146423709364924338965065524173562743704108248454495213709396099130706783997999882940904027060925587953289224894695379770086941210647723761356717193752358517736556090742369494904383238027419224032321395581525376696564514114581563243672792850308080996448730022764979419819575966599760836747381439807498396482978332638319190127626479692974629391450848735762531299816431477905940532426569482920927268582203961350897193433266940677276041674554511095309904030738769828018794824794235590272304843855871547082047468101314468955732109939543783582840082078527112679698450475373052800378110730000730258733444728251500047543540943578766769415558385497227070387598695551257238064109776248377636292758553178338597501852888282286860409198144863443503340531929534908597402159805564768292481351713560859138546826370546612750064976157563422414870357102146675632542426519440710794604196490539035649677717097229496865835909167951406343241738292521773787116460970957186808903269249263905157096574669013773108378952589580842466263103315361999809427394889833971699147183131395811329287536109810370327196147746789068639128629246935905522567873522206203721675944549525723020649395340908750553232897824473139002360743321062346100005213491800714408706480398345507419258459040994828336742342749975400313745740905462106604609864033061472540057412847746607368253990671851106411100116713497805492231086392969975151802134761145180342593076958104655614949478002408769769838584059876733857205898268053658100658722923832988419800291141762936239763381858404931454339770794116640365657177983885153058067292212127744902263489846415596332571081954141457822876870206207240737846532219808071927577047844244047023264403121103845443145250526248056656076514659535577468168641961717153891511930308493158526441845390367814412441657370040646971183416839799920867060660685526669948320379847031684361086375246112984177366554157925192425632794374061803353746204049727329283338086274117029838533618107601844115417331608808009314666429273958288318279862914000527406569029283215681517117771385605612672279147694359303737052557670082915282800516972403388477313656934022581455007430219047177355292433834431055675860655915403114194531533567808997974380023867025642465455933627575156367653394979403177271740511173840126109865554835376641572335702686320192179782751962661392558162970190128513936833369836871978608376607730045294629988659700139797319992977423884248984402007787832166354005885739871778906620522710169902582843894901505520471129375408281036141029566125585898463140580980180347277924264030477727482094159472446161405994392281596099348175494645938537280092437596651107118463331704032302999937852110007961583743137289858678442472657599265187895710385923748519561533053906457430768445233830173179637816846748608660079246167862883660668348079913181417361801563108802885451130165484235369398503982612054644187864234241884653736805667566116755118474676883115755012265078200548844194887733819312988768735502658445604966255446308218971944823961764459356842603004929121689886712864652247426626053259607542055864914844718578156900853836881167330627608971523480412860952303221891854681221520942225065411883322779522831812039846464397571321622966328159917379867631962867838017769027895804296414714542596570835341166647984464635491198909288628580684314751061100057285729068721870412026142832858562682037322468706526032653238076093955978897693404507620208046174642593129613708721684427318250663658739192893899192447249812537909065298060132090189598099000139669514892165035791317134676558563027477461768021076494605007520417273538680619599264930686525889397279378996785729573358595827632636083164727797948156336215094589118240386208690647409880005792800002751068955674403754276174998454419821433330063645169512074781808537542704583466631269419177517731319123380129624847829642258790478696772951806280510692575446863793972163084129341796836247950912225479655204397282293623382900056759125375386533517597886159412601398285602562866350173892268351528846045938054039720153585468612860213939269039040519617784849152453638253700886505452159014092270388056410191298834332387165183523383043207158236283659928663396436118616238394506630911062800413457777916912987421634248464456219201653449583541783382918127510307252892000897665151785075738503816473086244146841482411874219858350509601749683043935612072960531993295785983941309762022726765840562578561892321660523868097427865236748145732799616524510673881672589570906576179765704657776211414426882387779614967110209015742178629555951548247631568441841590651799051069260265788078701515781711512798665696607454053788996631618381010281532598811819202752614371072183548456718513874147534010687801278149282298226943876198465294564412398168817136374538677043050610932892995489560177061523211158755022135756813475636398240019578755017708438152939626007356285508667009939122709960354168093405535163641523375805796082859110480036063514019857124109741733928516186660738355972598613080078150112463095246344442336172631288549979001425622756848366559281582143016387979558407128349668700640695933477709446670518006500113767569311260061082529549100602902933568816780238862919582305027140320819890096283229144653824585086492341850731904146735073076562469951081655634691012495602199433813058278605664050402773235837968337536621313180598103100414969180094938587059637289917765789214677411980959474014253428993100684064829099429169433033580810198864509386003586102821787693604584328609586121419034287749826918331670911100850403392242335376651970024369423941075239119177187063495729866536001341558892011454546657202728487997623152349591607079435519125127841469254301543785154640666502621377241462203649086606067417271307932404698175778315645875653819202903328719039570811731529618281720094251224178437355554202583525468579979681539498660772624097674631822821975077616044193168901036804095383770769930407641506781950488178429403790740528660096515027346608258698797752110451773205008315715740075762434360154011609774203711877213712550447976585200682046104826066967318865633733665461328326176773551273616481958890972867276117013476664453327523463755493659411605412860833039262280950087048378056364734848449352615525830080688647301997189506102149925401079162039247993026759520591962542777728551934249778952689444919137295219065989838263526296101238684433204892364737850867976338299661113383195978264190490850937953071619287234574124483511679134010897438328321837418544783527287113366359034634168692471981609714690267362942466544380618878432143925330809680549297483715022335339256992570474989310812822740196448990300403790248042422499937441146982809571483625614649531764934177524387160897513773895609224069944930696143274407757214734735605745711225424169871289789610757886395968553222705961644508522354767142924916168513516978475503267389010195977444511348915791917625160560551698616298528567454127885485130904719209293577333652856219337960182897730127745649291295946369427302262859963197731522318446031870770417006871640653488589266729445451546113351348816197266365681856313447604609228140430918452906355831132684263631211542083920608425068251516022218900752329205327161385781770005076680792325470047837744803760835619380818472900752467387368223806011605015565237902910051558728326308636814410862101710039243011556646660418993170057848248941276885382499352423274219680054062787424191912802178782951070391050572275687423401378281347638432776266525431408983250439912095670899285512324495690870696094596704501949810269555760515636367039158093688419789248633120373512501997256680274947749586591078871493808229306642060233169994180057493593027398520230455698235382740901676321924141490675572943763194064916309333536099461413936030462828092225191839408873930162083327611361736452382280861965412917933051667968901325549026416616273197437519051655452792941793582819901774842667887142507591809962370366383445883328652169892838203510854690415420235958946244357926364386772092941156715264998532144501188093457909690823911789659812431669183772356263179222726749223720524837825009467676617431755442163630802156321268939036546925657173109659122471846375329510951188070683666051735548810218896522941323689062110218034020683132612919102520094637401610675355027332748751708570411456017227230111862607001144044273857735693153016519719287382024094748583580677859504429708846368462830927844608459521111563521303735509896838945589202870407438388621941660111194146801164314870952655214574151355502319120139759773928559678025494954279072148550180102327672102367154593144181351233524266926690486728594021324796483294974315025509295239797721567018775539040590623626160602402211041826706425683075549803205068545740231740234282145020931586181850449309889286435588290844686631556433762876021402668726964396963712882460007422845098577702792987955762955160514823397330989626838370876646754803348250640577643124393376105631754873836785188364613888255491289264967301374308627383167324471176094605289697861107217680922144675066165820947594095805215565783141314185520443399406462828967389140819541683897461775155723357863872457377244436581067988149322457983112845151919444249510867539124130126943609259654279364633574229173899031066259835134778720707051242324105740314720485606019713113543540516445504446990061300388976122758184219512749145868888474770947804630248285703860659642502108604710016152022108629609580705705393541303800266643697245320571087020983809549701506961658328047970780137359018508338970849377835723921164578947819388816013600459490527728674355385549966016673596585436217893452674144544512192334053616213270601280195732915604455534428392896201931584080308361534884641276656774387654381949474909750863999275525988191335745588694829947183471654364994503758498571573476500045434865296002479695142097230270669598909948636348455618645877562177711034255176348174812527206907514944514337795190836817709845166260038866202144587198677037842538044785359966182710780998825824587431665385355961852909055392588212010711871266874555087919397262037829888023261049889166286109613428005858829048468428449436830433166367547691909308195604516749664047100798979864616609417097353530097714819430313187390990318489713861373193996222064259184454847823626447709500308196065287792042184231423432502867595481306848625641051456269051554262092972507546035201559057275244679810843316980896069867969361505436965966315151707972027933563439417326623053537040018113086158939780005818250510949530859836833882588089613858643751375398827930799061692823109033562378015576231075086521520330156799308667042327835158484221654239380288594348030379627759378928909848699592340544450992861842231427961137995255770108367400519035333009450921822314718353879206697794170125882781983102844822831256370622449566201639836989433083978360246980901611381605324896367668057200845312770436728764294031014639983051778391392656481580396125147517202349132296604007564392015107020390259123631637090217308336337810758335195275523557397882726784781939464267101158944847803978483041687051200768862641549587352529757946637588071908662314719649825406925510988760709120922403907505180785313462435119035956719829851834832143879646000903290105287607844232325153266648895638830357608221606471486401660907572844157984296545899287762246018312923937448951888216591651034471800073256476930584051401077576901133358915467104464368259257694990853464192446626883600383998970021398230175595161838577247700804555597717359004352829258891552893580089176208884827551600158938856458995068379741638789022384834599796143891904008435471774493557059399179336576004714180244488966532392231603655495512196959664696052301560341117380809265115847839049667690255640951562437832570066313483811498758965694356778843448871317629837420591352679808458049155184386886787390438145307430421855989338808438584471725151167525853064673655819022682391257372429427594738521654304412324250733438168439698310998797202846815941398741545893279319376159726393980821841402223847192401838893434641592633853248413272312494503784090542314057724742894025177330916519721613800092553873063509147867487850162164650217208958435172209145496452766924636809194773024923109263338838390814253253223349157156902629854376238620399455222579896411955234611947822240039997439827674407627593796927583240035448568822383970512259346762151444503340086039737199227953592813550029524963415168954239184643855544179718283645210131258291910264960650558675902717251157202742863246662969198354429725279250262139015779797034821330780758707718587287523326344812470837157045207910597918979980688349312816007862196695470281975877716660634050391142829315391814932395246865294336995760409058909507174367059692009407774298210388869590595498451134655995462758506092099088111796282740473440499725823960469735085863708386505415775778674637526674005486232319958717167024137555177106930592775631867369608670978539187726490212171900817849221190540214120807576988995931200175327217809244467655639996057693418230036055279963951451367789640871347106391966688320540949592148130678130840332868511786793555474887800854291149697303959988920157338508528750046632481007189901852182408632983542592316352965597868144248497098141472987600399612673727559542969686308213200904904449963466237617162786634994928517534028622812436458290414665709182573929419368216674641239496463816463983808252219901263814747328699320917894157525963150000736349989193549518973373538266082754206225693768397708026410868312893741038021692898479228203608438324793066654163903287011151310056717463572362440473851218600425795702094156918412460659527614235098201471666479321433756803257724516594639539613391997597243259511179032919664149276484331356383305048584307708781505178859550714052248856354238310637402133939707552280286582829176716475452586353051167539824569928977564542581002854650722985017028969784941653824505652380382874837579508860674530256265537184764694759274352871783798158360792187682694511045839520382282851800113249603064911489028776045331975691620434403520836596668837778209110708024747529275092600980981995319410624067952481940526709633090886814491939224543667619863323073248395907661699702164700359562267133363442812397783718835617624775668991376732837078288545666721016111234213365036192914296066692528663546749840912723525883699489180765407163052114986523815770960076706903409318414334215493507153687800979525163112983255566820074271777837129147033043695938857525763190532480170878294843710284298637550962693932011717495071631918129015751770999189260232358838106795312033548665801196226281629118892952453838788070847650517295176135347258515689955463043260932738081382030663615878838982031657939906579072840990611157796688705795497025353545365474116569590138499364793031113979180369622380444277178070582433567037101510127076079917696868414379790411404455876478706808047161073675071680019737150123775878497812074573407998600366817700323082203047120489280416608685433346018741670813278196429040619720876242234345326619746837023310525710904652800712435914397106567365156362047351065309785362133322317387982564716406396111741636229175449934389749117244697301165212863247549062004220300619557443111513812933235670979197717329879519554716413723020314445181127138783325069896582756619829514270830657881081946099031503430941170117537194417698637630922216163238007717370195762652745983982844001467375358858094039140970048067599013035374144238473111715225211789902221854732647252406796953400668165910846671562106279875164219634580459426982013377458106259646158952368209072960194987267268969206229241844518560833849794835032284175633196000404114723108077255297664025860912628786179615530728057630692493458414404321746147741271336715515087475387227689050740825415513665259379746509656935026660368145612873740419759356768359356329760306128317436874634906335513507648176272540382452829089335382564573647367178236383188637660463680527255372341013075044555601366681537389722924617145180243590448747481784146267513425704023416193004037272798187018164760377812912427865991908694415134252402644593338510281496186866927320879532423671667784208827124080967426006644056019933009445883249733347150871738113763584659322661035961760997012570971875337631043758626515814560798561713618935288150634821298137231516909226383734600458866253237038695271740809085001852388340254435052947232930870794533037652278970283592387054446589255002711896564326624715325829838082945515887932558748060981144416255895960176560499909251338693781674289608666977253030354984937285687702003018984027014391362088017107470737730108954004056597668751343079262567668102080738628438270092197739452620607914595314534482001060076944344346110821809033293143366248909082220385610909561136355243965235509938149748648754039256139215537116554642847759194281198195829064639350382948600666577905104341386682013106961689651148182850554908256435758142443032120683382771313426345649773725506739621666836394104235126561855082714295649209575100021069654226971842829067020972742589846027276242155698234494942838517442737794037476624903051286033813629351524714598530082877293537945444643195452379119941819338924638761121078649446652310953054633879060448916869439509093730213168373424360517771593823492090121097493075028518121365314847512353405927350485795735920092501845536854391804030073298941678546225988716932297454509150962328882517901355549180904643429440679570424724985612081253524378388874063162889409416527769261020117259480847692832089266257081798204086467120314047078342945678895955994405656932813129482012614273006477991576269781361315365106295928820047672263818695402524014567101331723716567520021119592712282419068965725476113027269467488822038371860320020476704105051214968324030223973128480637703334882253906005895674934096419043002386583414276105001804010423559892237218125727896341453317590080169525359212295591375884013921854906123046392400580821796479139680912726307047725214948362534166489851729018155509877586174927646595641944234798320093672311633287519419950349680890075556008988106295246536478814443661584157139295976387335746974577436448494179607483096635952316433536848197338700224023524803230660716421761359378561211239785122789135543752943023707399044393367798401268251271305232363962803669685185902372527958557567604043217938491138763872038042434607147935526257121407193498184615239310350737020788683166070098085554746175185185546023349435758472799714464626180353917941603039708666454139682040001452483245917702832645188631026039398029265810945842295095303100187603272161258031539309845357112400522514414749287642261156316315347358877917157391450088505827749990620694491602354052702928935402009100882700418888509296725556402845996665492408804948613549017916815480002734406586202925079881944224580234896427844496865761262052837509762631953157100320241703136799600245240947209920464632633765966269103539408989998426574944119522474317005292180448795971146057202067304407164943388062983755745928174427086014597205794910081098460279918491117689772152060615118953340357211177487940444229700982420355442476188392707855424454463377098637720565520470444595740911496435271430405598321288763127528904735348143537390318151180260191871366951371052558752018373932417173421783926979779267662956908622257408895949990359068525172543881923210351084516271603821133554237275752123535020393906983431302691358871320343594534000679633729277739201042029648797725900514464924157268207003612930573012876454643630161450728809135087217698537392964614346224143003792958361055243971987282161594334190090787666144382308484583144740642069896194490942142385509261908167754370986506330063750079674902486053989580394602591162815175355186226925659008914125182373015707637360827913345035431390317624832214614458805646446950790160203637768964209200145533712432500408621581100397958975151052057439075210355729784539786925763504840486777466994421961844813738779581223246007594747692643557338622641218101085417030151191813728726886330710511204337561870070351822833456754722671236584729092315936897183065295467716210463904880355895914947830183707167389531160971475105308680728498383303142847816640226252585043584067405816510494438785050039240844494240083871007174896577952555279060092929050472079040672168124904391417694865249343796290009083835237347514085718255695511465483150277676008915460907312301207130084323253796467506335829142311992173731084109537279268338227413452599513351239127355502381747682388353162962434242499453235250869794304751873255614377649665673946163453357349983114237882587410851454177818267049010191969596835753404694395607193271467727231039232290430559505646484180283829194319601395991872203048863098581399338302074848669937368877192491264067755297205092146852931221389411396922234253049587864684139003675058686002276471949704994317370340772331347915443342682792677057260563062201008033683524583465789903210305688442912954749655327588038987648979529267902167818862636573247938241077149261964821432993151247519264135765853426872979371341475091818772794304996661699109542687966492466744980248767438548781456661120208618365416770786485677831251327605581692624365041019646056814007087294572886858947315992189450003706923091768067470141091584389813964815016995838158527293496887164145931066499852276840165397952724888145139019966539708456635590190855301049550494607731398614331131504320997125418089636516812127260421298359086073393068574150878820008086536899776744188582491216661726963273306767134803870475798588264784840742847979483064900008311067419986660272001568618561983177895931630488988060085873011657349824305190014585438213153763565260838896284345697931419737015397013648343479795897739853811072017529488179913595718543082694951013567448233434794480129498076460717510534535949843978972808164370365896152581378083071026047544466527964637676739498301256693209850692392652219378776540393290618575097540408202488845324461404140069269556233909233668078393184412683531846142245246624854204020727636085654855837386967076630087806294251858289801887976015112579037024139220120732772885166463515797006865442453050530577307493002845796955643282681697519204857940483748882141237142406658897146969411576447536190938489595989551569607369889285849692620387683506173424170889463205060890490206157646895151074794129982735531319150696372429436653270955639140779539176536760695378512327252612996394043375377009560648029915901884471763598230455471906745079407650469213014504537769389373810986748028441412833912997181286997517271733681295003878406358890818798327990896531668173362881257031965168817795944083046777458820327151091742784088833480913232287663709524456101153194615560364582804756036259233417956544552790078793003027525267303854114461893312321515350549654933926308222820819366675362259702148567727054584026107485141589046822852082437473535978433320046037036297412154799762298279091181269779688692980728649980645088082496472299018018738160797739008087133230083841956506701680009348095965576433519403816461842568644378827768114071788353574822217511936917810301745719528814493095514836738557969855186577876905652489197489167701656517712404916998091551877393925309073682983377273588484668725252876993652352297202458964672670072820255904716377790582448673603143954882925786402530765304145102731884134349307866096508601719182313095265787944312427414065636525770021674026309628071379921226183971378654344390724031710399284431086298257708841025643554894643559483938471036483819651823871988396014962077859368179137883767550252620863493256827509681724719646767056378131528583303223909014387323601039615055740498527040688398165898170036237700022146494549736168368272634040890361915118566582079137321859494489298219695145576674047395163975245103788741926124397524370054319437285348315237083169169642958150780576554257067036142212138739884385277490070598405018063221252374844708420343528929506843866524306829776942397798852089598158107922951956724474502519938969270110984869425340365480496102626632873951988622380837020133358288531520969651293297308474247007120117411632343561621824826312292391641714221879803075117498450137909776394515632379857890060030400998932122246315286986259628315387742816465201999809190623790047317297838795084624072916006351563368322829298479816004113635592988396299169083782582008969655641859736220618925852192997419928592293806604285841529335877057406959748486090482254747801737965176176541548401966145834711889805391666740912953528166236085658691309577729199476977632299660959949178268416271853067508208425437250222268965350757051246746038266711711264013847762631025348727067454748775282645137328146505389897764897243666088930003252734617267521393722438468077010579742889136566535952197250463989346589683265237359966908656460590530535413446560908906378874935737940785827597352168680237989913501267421361377915043844806766624135413200907427416727516670900997584459255866685097962272795106891290741902161060385154271730044382324600099189659134077598106727474586477022015947997151208480441950392786138403334137779335023636461430648625719960305009059948275183530928037862595115984753663645029029466727667980297851318944939526355302232896907225087051942071538459994511299646291217692087792688885835789150164134219824231502392192906089633297588634913928386233937488655403369779255667634394089285660632927441575493101126327969174712291081331276242291427937585748636473678623142709876503718600495250754852429750100687936849408103695283348968373686536413412565115402153669875764699406714412903122606636136279822662216809653933101438042435108687366200887916307600346765392694551938563219883159681090885874807874424590045961248711371522778777268955722876568584707521603810683495874535920159707052910466179375250505381585861812773008105026225533514326103944883555661659490333227598602202627627478604862334243943198984951805419926414122845607233730239057144160163516072299604672735871203293430178887459941169427335809631035409762252713101725532017812488791497335167814371915061410706891842232399699099730573079650632375515660661741765893187295395963033884956660619441369715814049546367927751019296348604565964122737549770817404043646598269126294021811571699835016264179228883364509153418254959699716766664633276098601453137997830891245780499701620521385668682644832734490787062310781286931432427666433414937801460632282250736404746727623221789470156017100310896277968680995153866159480333674018502265356466286637793970975429036561661049879185020969095865884124658606036241142614178898676881547646573027618728198780078694102246658105700578032889860152791279414124277658570387153045002494521512853139358297232736244500373449189096865481692477270896118217923788405969115163982491630815039673577837863619902729565655495226051843692078867499151763429365787873567184351447167367206691805113212321275008417759406809899040343363063894310910450486916061550207761491779083326629635878311104199719057183732955439505493263495598004643380391798579190778724140218530883444315887485992171655451539272486359559071314944126068384264559071899835529354035899097606276915859770359035323021510997191552139035204654815908036345901320908118547045641383118137860325208169644500483933758686523259463965651616082016237827748377324083015217211995768941427867851399737444065876625517703620604267488116991423311042329382662835085262874881187090034909861932149373381184578782343304271531357681929819710496423732960913942687582066002919808147373884955234114764648469127783457959261405015674009490040750220902235625786944914443434667264737468639082610112886216146495295185419844028991411468654114669043385473345563794414741140334338154714708346265863361952861106761281654429149903885958815448694138849164135911045204333011975073014335464837415980149554856325697470398440809160353178267253277495455045590729860009858587570180976765363101677234087906063685927155127915938816005671503617034829621866046866430460715632453013199276715386869625452662566156835669555590763399584762136630830005847857939000019103306559965068762951153260199634436361009772243864248714746335119491086824845157853589719449325751429126637633437071297023891217230437323519935809738996777601839241754535723368298828441954500694323548065837834127410103567518031935114713064818666776825506133574534690085913693593011307327892713495466708082188638018753527270812289773200800633606976222808416812201697098168023454464921702779423737089422278364013773768325932314083517799730380522562167109145103522318735213740463814150559236329214612922466290377356372548041592056988582770962114505420631556046697156484066654004009201827790127632214418169764049736151091056847044044881819249101151305118883249494470066501774945715750345907326371071527800240578320607141950537788140705659649930007459220120600308496477720974900813926562862446035070830367171341978400789143279496257466399759983624185872152220861847517999883955770544657075749499022991687890841449807508828365026740206429757282766409589439437157770549464679340095663505437283305953750545441274035439828006968133118453307177228495094130066426544601857924918423820721567324688516382742335433971984610057542927271796925874110129481673740140834581574304954196194618696533818233455768853403111494798278884362809653395845915258709181223759761429384081277094705339675129390318204041179384362509645462172378413463858676210031163017960080729212432682378750603173728183086512101392894863316129067322120438753831460231301929963676221755803008244654812425803844159999267658806130314981609644438206559683765720421942001552882893983780665509075626244200431825091656570000395394107057798378857123856463562023284215186130766093115076984157101747360863106993804829474395903525246737359389960570535532724880189214291456914290287085559771479756099301030407945387768062211407712125163562228395138124139962385186435222824234760878284391316691833216149132505728127290358348136204123037715835927596809893464364783774354063653160851874786737407478089037523584431960166529822059218108106121120692306857758341196827819995471951646602916621364413436070092938965260103460638139250062884929693901436719569039620755013951025193031153817767650649256195334773656141980137045443559387635396604921203958847112469147016827821657669372669390309154001181722415148262286161426536662128266591799009831362848543931520313798586527670685463452178153807937897460099461519976865519497393459384153142297516941980107731253595560800188744572432496686614612311255471879500909550728583669064212356308984715787321891286772916817443494999237264881398625274098064136926420742984325816961934666177110743658075217364415056750158783725194090276886567724270267465536237486597833107091119734342648038215127453914307342038954965175422641338561909093741442797368343291277478016705153500695592907664987633405157300527534895559155155482615566289287365053330620020083178374302421790552195944119634150480136239115456142455989728394534236155998066515202814775605591984037302053260177277472303075940066869405764890329033551097042737954867027391117264235290028061517545136921526255193631469421148569582018414101235449428947501577749482365459937531319428658705061835471492220158779249115912764218190840117961166150459436709670545547816465386935358149247437317645831424756444645076151601824876745808472957344452181653144278736449419610758852237671465391925655438950663729916527130985380567538295221952529148309276784679509771752389848604303437117625985653937732738661523313703446470104657734343336870321827141696548642021843168889170367849872512498112930079240182680404001929240981976824599388866370561312947545315471756739667742228979280977713547354161563193401268231875534845037013484861219019413532468766399503972582871158122491883629173569739781689823044968252007889951418685409351577327703174575123997753913395291800321393899916543428576529250632524503243632552179010802573221014267346756416584439109148048127454629376468231676958736843717081162999566869816978472227125894665595916467059351621715149042503397080267325516265222959732694149378779996462631782494388732015082559682254401253665670358594613523436428666807267281227629828127748571954546960774247198813517552041192649894663974716968712366334233219473405398116587949600773775610161241807622431599683395182024633256748764255184111571185548839794539599715891192676123681734964204316848474573641396965770830950902598315993183647010278925155016880273244284753403790893395961500512408975365584844185568860051815679140955645347789708792953353538780495449244631659390448785969514984584392933795054369525477218124562847348520135322604226177921886514159187636424055147259037310824951850676990719131661423404134330371295348083730333669849027338132556738192298438596326228793277289270608138460372735888290660754734930489957720177755795601548389826911300270687693060940695031111871887362767469989008052843631870002533088729786710273607333257290325705971170292819796992333866007369508750230170681373408985052890012318022118679462434424338907526685514643512609497906931829963639043522055782661799211736327151569355797380902446084059533283422851728231906618732198451925034941133028660465487895136585735544705964710151457489915934582119128860786847819624750911177480422215220147390656239449382857626027271750859319094093850033330295709026233072192676933153861985235398690904981726115389986979505038814736467930332845651771174424512418425532341891546034639273804692582780013943073525374470031920737553740095935923741642995426491108220851907297765128982295307172529059863431975042959160220959841172642450555586653757706371642253788226405254267407484232877899508688013741868338981753193182667046738410872121363055481881613206992550992402488793095584935531374728073192937993549353285289207600209871884714823347397897584593910626923797666308065013238723257765767180801730065581111639919283990787123754157746074012282995727210213699721472576686791747527418071324603351094004601195838958454387703498240163986422534457537361605171241122990454011530021306867542914684197695836759577905906993108136524138374419360822103165386002154679767480431777319057242432128778849028654093650472048919976064822836326324377287908096363319348963698910482148972630301776033399659003637822163956444780555721306209411068472394689247981161643384200572662467885234350327650998418833152708586411656160695905973696177135937702643863274365038537812087189467855172218732726704018994000225187181185472932059339326384753114278982728923940273580411517972806274482119839797024467881437369984877579691234473282256059899505188238097723988760653929202555798215497780205848689429744037914346586861031137070394441988205278129414448245358911483402843739247081449148921128131895313364248709635911814378266122474781444385473388658953805340977568417999622459895151019386278462240217064108002650551403855829847058551117244828989381255024688916068745794742431348223384321590155959021447025235502119196791992574443479820545228883775685009439569888836273910634494153067726920205807596937089762539740802488455306441455220132781049974647577012685704378938400094003335089087731257916595852722561203053968152716461377178803720119802685686530820638738429072389323165327510300930442971487484538096729176166072013885526250339194700971084834155685498490607304350054641355300577850227090895387628046918872044406394789127317441974810125066369079710560491821788966617645605170719950919414557539904799653756607924460627020438005821120015190682695439736093139112891441290073283066634872435789741913166743229280862737688489913318801676231806408679178096520043702668477807209661939184610279715418261013416209524362556202151068204943944636067227325985236985844047168705514836628471019857083927265407784952176821681014001554104371410054791079944908009512444533431847874210100791266466907259258043501270727942778260059032430448333364398068765651887042185112376061550619743740310352574920102871898378996248976018478914521027211472729795379932511105167563021508652053765054791798882753572579233801364426724815967241354816415833554238202126074637504890016452618204009218751857800636665806660792320337374932741498327452877996380436068195372255181750005862062662827529116122024159918486054665037898259860865196180908017481844853425528294633762250464648759998892976072606386619551500289961983681152358407411935981794615392573533277542881306501757812069236647418939014040721183738878601278730805512855171237332118252674734969020591047495357035512783670238727843519799937127515104638113466008697150608918107334020866165694572956336834122418203767444836244894297974663985874449592644696788226288235791811021440758911025984668702883434596277390495985683060166678052313784145401807950420168859574494688680183297759237875855446130569690651199073034984288765993412532901652044264604050566127776888444245190405537121247467844942707775076445404580458169371115244727559381120435854766765205916962422678404667085183360576825884129276992084466962955569954683070973276999739576331534297352265654780364695641792829830346999596823385482117589486332855263439914755455115861245581094516451651909282834989490511199387897980423010459212634902281985946167636175704682912685289538681123308795605694401137432324337993913730775236920841390147662330163872751162691309372709451245425262256125697764746722405192115671735276711684158259335094245858315607710827997866129525501043388425843676478276888358754068244444455872403883753272425518381398355324325254318279209269567985694687221261389370053854835421144411361359598474578021703744056980474164216709997149739420850198327253463392312432270572759174777717458831923462137674651968613600071257198121272434927443970545112355870230102888573796663514774293575736552858595762202526536080325097106867537088852893733251467555361301509637305944876420982741364129502385861830993452728816968326939669338574281122775524759961625478457852028297765617222007775601161475113651634584075426948024277697710300891769850433199894351539302024977655078227055064649604173538949240658589819803867240434021999531397191685710279759773547717115687501364228355466981915787830345456721517259677095042255958690349986084355234894178992882083517842505715469949421756159100981482756059940255453573842844702797933660446028540447535972342202508637623569856793846627582072093914561198123606118878813566654454670746593645610572531990610932000169391755511692524270215153463001469254006961076970021112395599552832753166452467121205602713167924157037259714435156144620611870784418889024690929422658479818205144964278643713195356488324056499514930846734279790613929056646252682561893066901107809373837084769208214831640434862156066395130152884549344629420199649097273993348840322447607102803139013631071052390759916074235558167999824973894712640821970514345622601781226783718625187570148316922616586580631850816352082438218418282339798025185066276011424696927763113336637077965578923493209910718844987980216833490536181529590479682391437699314209594714593627295504389834344361364751921727862878455196522934560376909863432025718971254824892051697008955546926086214946652918699258961437511668680645388742346070306649238864130109074234095154673660456221448156876457130797146064026378411277699409779662173578033260112265593890919094921016022717911813248864817036247369568233169069300983460376111857065591503249565862417663817107743658270332875028609695587669776592616394007331804666610980621378948810430271237905028354925882850590487389014021770839430387726736310696527534827465986901022702359348597128163414020390104612862917834906991568893468128165917326532641823933325438981859227329734030659057528722536189539503461242335400185741991499032246223761711117368061931495770238562619423084322319590278775772375759851846194611984554377055284117352966771673433287853136135447181769437317789478820675990567188009413174886568120823229005647420721452630517461967177139241941459381737200973536113306911773681803008305199897121384095282056604726292830063946455843960339057701035366039286106333855905225759525307153941877113843915472470285966576107115684144052858503858496706127913288507758710763440164129289064862288412567173476776507775705051882594522212313882913204670986998828937217116957564779838208059418188514831890077028888331549612694632340204907245372239920137378140856175116642026954720753852560566758195613596345737557742125809032678439973610929444670002384015288866502978374166502891056054764723231683604322294800835932323176756475796445848412771134313929512767524939050464301347027314946833207675453376497977249357019122096040571405036338117294336979138992213760383640468095308042870941783353592015429506723613443960812091373335155315936230615683370348772102143328937880570252782668474051355190285173750434356488917922380582562250463722457164882363729187923511738818168406150606472346759035417503317309052934900439501661842303135791292117614649525288039430678878911060234813420923192454896770463489679086404708099008211217915434493370302592251500536335000893201975312296405720468284988765948841798192494570143106526867038596387075011503797800405896664129619328464481713603884633152379166604073953692273196153139884921450881692786891181718592250765899825647621658755467522963457913304669173098451799194643755528527689584891791143135961829437564324200661492541825700551212370515121977235471801052749692549880994463556222374263660522048086488950532158000061850583622509724535586547538572692147201301097436878865708097313036844229131274451484754400786358683048761891167521626389584751145753724244098909273619726140669254186542640402744761381702927198900131379431987074727500528444102282885529872647967440996472968007534676010556028536065515407561231985991872163894953588182415306922463442919482641946685804740512112693065515770962699716867173783756124904344628191866510085962474207849938801563154541052545612206350885163030447419790424854404892521374187855183386165061843330879487470911437115669025352736166866046184559764402667425017898895189141561190100256409754894296882409075791077994304423957919459215898654599797370728997752444517458268908610965804715983234795598016152538085248508652931239569590968090745571755807022702229872425104532506791038083132480003591403842938393403417501309754487106630624070027263228099027644627737447687622082499190986341770177845076223301013291124858617449868626043005519007885969746507388666623672651138594660352365955552630500920768929249131446211270889645864956427693583186701173975092140231160695451081795275245438703312846511581832332671123185535826664071065993268773574859548609185987079641903902235830253156258307703040775113214098579765620666617768716056093503292806475184579319556746725138017498798613488232386378811427324023524188671436824724173190600948392821571451251944152946705766765874658710484158576892834963044059279064583366887678932510667787989624662355584954411396843591480106139774826565091594652799167894108802077451937015784244486301349265900977153986848798308788498580509605033836449936925811441724550349974563242385297641123252636067431616835803548672992045065599718210503995560075114362060294444469958736999804619885709005579982577213388988961497102123681947107264053602812746350526994344906750544249678845018222481466651551365824425175426369920677342846733441043256388109860877840465250802387205866771510818613535369178462718961761937408732678652364087012577200577168920668286568356182008917053293400614419457621779289095188202958492840892975748968193776607927820193500761313586150280809827190087817304429996898973168336646187109066664465827474783430459705310936680873106422647530873942164724749183741915748306407485068195653320609000763557986981190285925438345384089235916097292551267365559829793687463726597903967680433451823316884925398182971665367153037089283643037829254657306225856981996065614627134329274455462017319445951463886222208979165087082036888910904537420051444565650875954338268356982719588616423771978847868631180536208473718593080339262695896395757637721611993401989724864799887337141743881853207185596185157312893571244242039230660860215043983231314713807283073455671629793871485900663266731642874195937762180994466852840867166850915578630838014604568625433467043915313700783178817402163704941126653506712653481264190363409302587022206905492525561946098197021422990701769363088504532124858959030629785786934860411604474576901673009377711583426504089578636120297403685929558568578416182234796011202180150003446682979942078973212665314730801460367374683949877717634971303615530361517243284340344787340442535267299558947040443967331176956424062129694192355525663412078700691546397786634093537546809534632250771234872344497881488066637445039850501129038968544177588807000287974462182495956350721433510196288667858068370812195979607638161952157605792698601160720247441550527125107401318320325030702630975894030644429070132507043613672022329540758389836229835778187736641153367033061323933515529203323080641453373952524088356664889635062981944593047963779239521115656634599804831848368037166295076302515396700179276978676088731767708098861116204796469138408504094015930632972857976708519199655654380091667452750165019568430135359727538615822054893278771246910850506842941467469024238111148922419536475489758505761703039747512792611583135108118831278038276907093978121246991126915020427231523524442510815002720820517108795631878993084744608478861137868802991020700023964095816172736951129327246812714670398144899565943648871394821674718605932650647466267723556021616068913063656801389932905880121180182962392455985682108439806666671282295673224523247805215995874670072501953130068129375104727212885364878862776730322322147324440064311986118636437912029286773335237362078329133229597190414162948768894447767951653081822883015372592427488723296973667310935963252677632514307619587100168642096380104796822928393276961804200291043105668800359715758198276269909472363179184673218084938906173359691858866812564375606790605951073854852390984333218332747877424049484519988568982567459402935328844640894706457899391834255257753857137635040650466704188072420560563450823066844794008521920803260163453127021270935626634833308468011852128783254743871569502364142335249601934497524794473866585222020579087546942791953462562248468951751039055761597976926685614125430886309354942632713513837296094712946473228116902878797500027984142220927558665636232843715676576341768693114638244277437350585982855294457739951395992758735877363119431199379801116959265232381464478784448702587597826425112456840607429027868993481134707169743109822898158131365862157801533697213889217464426256365204055230570632820469554373405280965286211921568367856323812846752625582506934997257351010447313294570257980277387136173950970291580049325393899125556014194880384464159816637963834306595598792356123745372557875669416112852543214932603000148699580381329430790563778267576374516030165800310918113927881997016014121570553799694692582139334013722495604339741160679370186062623154605818553788754126867997637620283689444465479326435943940294541517588618082546549509769309805263285089464332951377699846685894888387556584118098550393899761417339936917020803080539260523271547705464826128610622820560832891172760031782681625376531363610649821305852233853580324281287857370781982425352448126844948781142294278525750777807448749325314826223406451355778065340087546622094453602920420663648614797009570902055967868565147315716295763494342633694244797965726142422014207161119669565153500602176421195787435578401648797567056907709016547760173048723089945460657387470854246465936240767402873301148941953826828332580514778532233977263490207673757031840558801275863353184893759746782434712364892921294959778233779877826039197876171699562480397631904666854034266535091270865977235532522820828084817565813292474477820773393435753370648251583628875948465039504257451809033931541736129146964799685193201051999983653443930987707100854313323931823885969644961914964709008085385214341077164363361666099803548707241759184465083615933679727378693396407566049443023926148005961375664630061909733669454150954971551005549195738074541483125961169395241964798622357090747438613412641790786779833504356068087958463087444564023232588163403456150503180312942852063426714406922429964592424668813660715499762420171138686547802331352915697710814567969013507087140484888737465129787045980033583333318463674833472303363607106242041283632154202484658266603940785612749114710851966544467450949248628402338347299688200747998125764401012639306756738674946409578370720625769423374371642509018699688910404579572749384570427688237061462304321634361510693554133645275732821886922549734670738418727566543347687675182352880370061942061998064843006153080775279624785756869833178986942290309691583839754478026772816234161862742146759043064615566635052311447975281175702845186155179149973125284947127085183810358136364226641557631038181767475421296818988989830563673706013723465400291908936313500397801315924626390514036673301933179566422140457623134936701030922076904031374629729995669619350686178699351273435600689723948418650927341567148947807385857750447999800763621163790271264393968603001334749455348229389017280664567687116927273613926087469212606396632027189437060757298800190571667687346670028882124465582337410533216694569088595744312237042289047100964107121456662789123957650566730849046447156388569865270900941694365510390497536165785348961626385129538118838833896869778393994438001363172655599654451936531401362172294214496273896631764460585157814075000805880981345918387503741743765129436902382316911526888464975348848426653788099918283601838633272571604826023312672572736609430195110123704840305943373509423219272895201877802710343399232353445616028324242776300805614697934165362904097881160590440423361326941332168096346337556873409277132203681579832782384159838168880964452041127218576186405644181976289284275797530098594610876096723327398926933779696875836274203223356376011227430118556032104304652877609426691758197209278163875555429961819406314917211127443320211024195624466968336312414162765141804871664769607317858053413420434078480278986069816434881936756085529303273766287024827266833552537410790677600518746893194842460116570875347006062791753717165264873418555476319192050115434992750480882462970693596176452378450643266469029711565327022896865774050505358614309525012931743620595561199942324137179157197703913282216151355070927178544851944002252962046375313614051139838549605766208195361033583281924185865228600554300927633600356764950648287513921787385268307200104088873662717934403655128228659741402132240565715416850035931459031201208873198374808924562426033284590087094168102844117054552991453210383967418554466731241185070916830831044134580187540693614576095978866037409779632713335345742325746674496294204359585843110587016661203020153439203644449130805082472708035502290830084107804459625816445738476016697147107187180856845373884328030989383494024074656237751934800661031085829142824108783080213733331905934214397514653337162737245665823132432497681021021662126069586320184730397057749914867395630908112352043054665035893701145371226159666263551522512430735365877958967214784191993835687593051795734397827074625898535097041159658640042419016045115314189040333129031302757896364125105063576795954210795669413906594101854482077133306953036075013813286326688120783319621125433084892437609783129769030615053287667001214635901198995467823379259980112596608811337804117780263530631383469798927278890324674074206054268747397546604463773966295987996199988266376243550223310079783306526978983906832463046424411697738188755033201674674366840054750366890295163380565574883216092272088993489894917807886858265421268245365410450387368029223600321495186894954445302609842723863164293522238119600871761652272784352090743404144757972418335744533237707904857393184035163811012032968967045202231192234905947484157042449851750474990651348361146784979262842702830435754426871822739574070659879641044459138778108405347391391832937267933459999861103041978178203772276245729598439647187175615962092903937377090449500968954054365808046493851841863757762686053083261532763194096579762861313486364286378030971869069927496839421385561451403048147225748598655079849018338827474475219195834204916626968525568756484364159520431529470246374071858458012763215169193805874518348374549161148036338995895842920395268466025358882832706926058534572366821175688998771368776448236296714023196097981318075041922856583159535895563483243042602302509120015858214456494458383800409072260703272007874168184282785519679918785533572253952358674144563882707525645482854806260580119583078587607884739221184500315321788306171880996161513438812719982626031825894915123393931816894782647097970119002919937480761236060019783741881751272818627269204269380079644700443769312286987123837322072912217073846825950652975643708498988367943091990377051212597031179653951641360924737837895364439019189374591056519794007279662526198554692711428790633825660370337601676854420031318477231100104327570786260007770063726292796207428775424444002644874031654409836712122738895457761788440823652146005388799863340309767500777753674784683015801653202763038943098770447557380294666600358919810923849135484519822049627338020948456884291392346820896273584116135809195233046104092270176259650882694804534538587032599164292302134491144518908371874414483841918259576061037047347223882620819490126410564402604190305772169465053987114230934310105853064190948889841501991320475923482256711636310080235988744440635860000575805284858552964507694533650046643004436695951126687666351211641054868653641363889114929993144921793774533001066937134300820992221014158782898614082922506523778342331377271366931707340850478908807593894795446469285605808642950692075119438528567561995361369337388443914385466374555587825557216774578765308126812668667096331755032890413865607028985156852459662570521099520162257186892245771103718831225041349077341974661034979948815031724517897573735557516100878954649219512430579208700228348045033422035348167304364883898977828645362670221134556137023300965934106863799415759180299636303897304080601298631900259133214769988761587309328245838056276299428349626370883958204033615765307479257408880073725213097764600639567190159545479078793991334646578379234544494176289551101288482596288993143835888804981101425461264069971162978908400776542388807188336746298874347153313424980258496836910155831199541025771048390823399049312792780544981750991522107269171394907720631196570674956906337750682363875551919989734231711025886745700109667140571010310492872909432920144772092560257719806508339713690930084418646455835891262646712039893297996332314106181898245433122743009707338789864763304650684315114347692628546192222053521599560643467649204689929946291129267662981890023483316221667254000035784776434793064416448782206501969919949071966774028297797185613546534626476455458031128816113193566280145103241974399436404500640111943095316497103015439925969403620953202287176197856484212380191828940871714102265781864853597344421332941213801735091869015096712829078132581042587215290250442345482105692987475260627062335768789204012324075855523064171135714408333809271223478997946074642682220316430258858004536999275551657709600662793181130331949277660918659663428146443831299177762825517166959151715969580974630178416262608668957149157331747930883656846018011204506336255458969364126570095827131156658055308809664903417880222406904678206674100294121933766555708405590014371855860929169626531189109284024720429825518282351781909130978705353265840880579800632372310565861279411114643628935603814288773710757717873645982645627343952467777565536552953327759510378499192220908838881195841740254372171415869568361293027459138179691188888351768868578718219252021331824185762923168857846639389093890610889371229561105738582865235031652303308991551351906001629597405098572897279427704846048128731833976595185754570340095694163924030715836292073547439066643482097012188248341401608398729780997575005988719044980024309148788282697019653180917088211350220169627539325832182741345371036266741514802231431174366629115448551277738149202738082297597498299322713366133010916994419325297462032458139182282669734473970730619073984203016868273761099082203914780025736593252715236219267109262787091554480658873377813566236735072794356754124368736116451254437564105217967230046701783566265348674392212568751364715318279076328539541544330838822487170064835579250207508504741581316510007848121378575891105633687464921932886147642036647032615906721274804213197478870668005973267656348784883324657613502994108686590575912351761623046236669220310196309432442406913666726860253806672529903367901304439907636583048047783990876242680430461979289338194778908282086722066555665721788272417989412699096272636618858729382235692922985246645392499742850786559991237979003526689752522221694769050730787565231851706164821724702040864036541635348470161038825097472064447942845805525089093426579191860214289385122682610031029232506616967790928375736690913120132518503852177121756230641448739645761468461508258067655498279939620185204872145512111793045236925592046997430715396769183645785908411997585941019414392572554186326690762388876381784069012342671850580097748136466557192925586971525749768899194608606087001485967692854833909018391826207039050581853887037775644425936923663379775083248350325946615327765890182045307063614227852497964702823723924884128597820165563418269271927700472510319555519567755621259972676388915098479622785173320723640211742032443616851654689740628032211653730470783677106335351681548543847128085719041475439751592567383272106062345252175288839944845888503912368982782385168144317217223542048393319789652510156906155807078298426815808402274936811325148153544162600744760254276838920188503946265679986242385732018246981056924849662640691136805721328444517568234668424866939607133069744941939462810337705703528694008856257222664757898681389245409803192153047012946613805523969762769641627815595547968396628613013611011716291705638094773573869474035634803971722454507600043371956169139441303294980802001396361391238626226650543852669867216973571932033486161844277574248136422029827340997567939302699384298586307984897072332036971885721039832454595257661753612141842329314143083267825021406212584430873818696031232253748585252253571698466784551737272819208411941355870580907049231785401524847439972002848314474642506694982128257628090507677679444667089814758929458865384804402153551390126927163066162637310309358852995318338292094037213610140698028145044858491775845921604883784745890149663042338562260060552134720059449484422469708929498864263147519412540349458238266475826950123835729083863868608437883265878745486223465539494034293917462083192844406891816113442237611742996239986645624623561668765647984505220691314001762632387446133024781710023596053469249270883190576002780997484820527647441710126481444446871912409514400279699314314127109012751111258673806415670922799689939352154125189538014143097220213656662811621252795911255752612466489090666228652449604860627526130047982132681424857523202736388286494373035838864753092059374280447089024475777958019394837298446732096880233521514766948287707611667761092533800207877819450356703369912900055665395700251478586056255644177260514334660844346229135156350031125477769047635370740953772608465491866969369006642029060173371494873067634812048946502585560562814427814087991365841926770221634548230001081473241378152189927839301993704094205975720004007853539534462218110079727836646994365898389582235438980798457833840300844458613001091700614833154736958594199168597635381656641953003875624704149166738892372024758231392228848352264142339168252114175836579254095269173160187111149517875447831599030632946709530639640909416202790054991136071760328205095172593913450133958829840123539039473220991390609286454100651354654631335780271166570726116332653140456719317496611736071145873261629739718929128741782557543459319417036004331879402253814522438908239691662889578704408776683291211993263022038852760833093233605950555705998191043692656975599095597886484058510058663202259764902810419940440872233063968250142072075099540684293897944286438097646266258100072784768587870816050549830614278738243438452518295625466064463464228762320168419956820373118307714273060819578834634929567719636493786711300248327025575873896810756106903870850598314277543277252742250899865248913414413058880506922394805888989782106802063866387657234430079697717273994937813575805439829374431276126156572314908260496550108166200579626443336656545655597923800268282911782369412910616528863820338166978516188671750784615958746487833744543868708491675299006923202137989732191291703183295628902380847464996640135541536736326237917606845935456488727507693838385496184471354251802472501172938536151884752233141390354871334469624494080654712979782692191285156779022006164505302708345091553580711299940541856621763312037494271180665522030386571190520226317795167815084231437272085735930725136318178694110689992934466883029980207984879528046371534533522420183532167697461227036533489718258456595708367515094364243583433165471337914518297863120211437928116527508154538150460500540984067020364323587236197024445047054793675923608720667573662957285061268796049402155637074864837708229859419772006010421813221472804363648704193460073767171237817794786894217818727342360751572315124137774153501077373781556054087296758500501931331239187604467276713511918424141889789441088716983426020785674821229841061046778500444403395851491157649745537089632069254537207879360826064346589476068522246462003728063200372277553479066513695315789672297269900840566646280945062479204663964970633293924300119905758980782132815675585524933532674773368372917045731619887188626454583881557372130708926946597836248456138394553141130848997976779792261903799913028532708156871174913170360639124095607632783733645717588386971738195489317512462735177297796191670817676034986367883927203222633175853368576900029272504859191820178999084819173952887359813406889774719759134035473287491362034036213950464430735812704768014935591748229120904486570887368773772204122275847234178684280524921104988998958885765291721031042071464951275316166405557655059226255679128581869980640550821600841870764610155376775464752214140652212783562151883132458010838357183550532175155115834611731975119670913133203794821280907436367384312819866721113814896550906311359356274674471177266103707564689682612690708849801560775027700686085619276665133523980996567835278353943654105763250834212449965288693079416860902093110907420339335283217208782377959118625653541946310602436950636534068922689728257468764102652947632249047936008113715324327444131862647704315328293000004006316671885712523081842231125547581539278189417787449876979263828902473847698112877498855527680668640465402484188793996036149755228125475659530607519512796753312868335506283823871608459025481457030335121686912878273762525256938228346367562407126497234003297203469812092763272751823161343327953003031864746872150472658554758770882668068100795050604662999354740058105855319231417554406817697353294958849532272981861093259171502548958269023807017304846695398124000928337649678654713189448858596892732185321020628570681862987710576077144891634705842972298042589502195730540602761786449924039156651183988978720465393261350346287155147654245447359713170730579253277201891336821125622537517543687233433109882174322285961250493178518082155208956569257824470768714181705542087764164965466033839647585233262997253098669199400324011747741264012968505328653429409179625550485307918377200647449101618884031348906250007583180833782171851085997838497514390206534307663017310236768661615709428656179147014179305360443847477248118574014888220203410108327772508280672934962023880231499286027515081125275935829916728993335316787328607559239311186596273481615461232061655274947866101581380713356892304008300628337183992952291462394575759287884259784471470044849527886492553000144776049052213707979238794850321929851933914908536632754946309939989558980894352805551050701075769900075988648235375710605934210030899800738064906644968356185289839785734684105223425151410084615981667764307073040397316871507586335858224870379904540322386795224347044887974490225908651940452999222121531710552376663922465867009238507808400719432752949218951883790139811425223297968744059672613530937159297288626696723084565699875381457984495822202426434281513500687709568192508206760887699518610710628982820020925366710972522703132592172196499881644692811995441435492958881636199029459073023277558621884286538905910598822710364306076620541017941029082937589732854249451697925881403294361151797145486177248772446423015126565399585062363561484477316942638852300037546500268643019081376482106428571312508395697580351825397910317082711804441548537040281466754660918488826507412967744134602523872158307638309173326198223586366238284119827369072699155976775904698074043473783234098862962341336241980206272911728092632090013822160930386474531420192120506535682035061728538060064686548780701364224798481881892905851268268053567308552026828495239114931993012020573641882824323249096622106015499225677792893142343028688639343373353896527171285744280437648966468346169318066114772352831802356489155808478912538972774915599937459202305037549377396098053351683970630537736272706891790680968880538747864643025185790594466507919170125294667131918146612151011644752368110512044061781079743575665612568928496014325125391676114831233466596445471714778516680897740113494009910301279213903187208037399956835669941945136564183199574685161596753124273950567200033708819169537953660003618693079862251937722986445193725014057308189936024463267376478196774099703807958514843146897826552855779336719818540165561976417275940975896463400755061667092564312609240270761078039222402123099756657534732035727949056771248804336679030750524294843927182842764261695679759705005956573300272372898518224427999559741479649846261762590616120352991386361737298921537618652031706564504467688533818072160549638103369164034810644596937176703141739180214588417152429122877889447859201257052536639819961426359150120399012282213639712792544877224061125110076716048059643319559777474279221320428277187106339258291735569965327067736757966136050784989239697458559422789280344185142570936651050014922681796037942724203344519127968342409634069024804602150418284525381741754899490086751339523540833278510640091265047551823886099309720919773913414964013989645240993337052212418554299167736275514703795325876330461437599260603798109186506576122258382851464779697032362961677433121861921479260800860732739705711388650143514422338312983550813068897924938000959159685239479709865857343785300272413172040930970484790592851441293977520427656323810059485940105346848658099866027502885626345375438315546884825082710118634930870227574025803376551067959217921996624123952409652019823359974303325369711544933436261904235137910290121941052463745536361472453735525518452295254220707787641596997192875954106908455335311220660155803723405073631268916132900699882716504690443076968849513017790081521949085585625666289912462942522877484496102307583742965418785009794566528448761889510510820387010455150126304932240886368831824265458058615561228911671314186992918900001825590679422464137333718883120584102114935338391705435149457904466295018774380419218170329933905253532326382368702205254243502512149483786016508789967892555471234753331429430135625720261246129576790029857579525120741279969904724761215935978036530109252884012808153088857450240783293599680766655810123271414503566539296716612394045102897717204755978177285370383455961274913336407017635765270402836230322261641182652382575024654932076702668849136184269866220207810394829969926844600612146424047338168522748803405141981170663394516397438355990299444511802416682430882121427146648488712640670167023718492964641151176111656739473908361407739462593477247620424160835286447363657704105460353940855754748986867536599207828140465492757707027742812242980284977344526066514038357333126990910907584500515122405897736804437428963931892204996714082860561335323512480431697110065857438684732443503568266340906327228806989213802687678894833591579240803892012109638878228849921984268602026076523681655305843266231595856315799855852068037986968755166934766393958183857050558761795352093418740104319256900476978955578850066042091278278993997611486577682528152300964149277510100220100083533168643918448076862663034874670174947643912607631318417437800686345559167546871508918546293809611629424522853957424369701793642844223482724538702578889474174245518768160043800053138501558950159745210635690859113540065983272396238972655557696929265073528223838844700053220317295718680359294478233145797734233818204809710935249959773809591465423580438179633940862475158437699087908856827081064390374884604705705116646337822848677121030262773193529650511356323296458097958740606754348993100943651148509896002392438517973012923617681807436861237245445024043283893091423737779353487124263669669017765150804635007658988894220168990852753909412242088924109625223470159674891997258425264043791363094601772361076193493314675020680684420091151018494458209415722068835726624261239804996853725755061580632764935755480221310421750977055411475109430374154017652327213462728748005861384272204816659923600701463675861353999111049832395415584539166741087597451371048539719010130544211087306662481568320192876248179475246206993434113453482966552310575404424522884211342878088083893352568119883799150410607153500390394162234236160182834289934249951915674658985037430178478485196326357303803703328347829100017214528254305511967037242217623370381253717472960944476184568400222574228607480743040782116571915524838497314158739667463581323473419274530162387666075924829232186631183976292903691678191267094705536188106791822156019224452678035274644764146171338536845766297086183650392529705141057031571321743559646004207167268931932153858620059805773827176729427843853428909106518309515166717105662577852063268758330613978282523067725936041417588774563461288946861321277091285768074033069684949311862876857916393881435164537468449289443897602981752014152003638726771533416878723408990498432924363233970752760988632134341878214720826616885059487660250423833194923825840225519367774058268593749644507388362346481912370967777663396211970512682204811306067659958891381349701393245727319613401427769810326086660320734971340818716160285703885519754542750604590069352837280082301888721018559209620255423651567034484171117506504746767155866735500867065282701735481669882510258279617098939776493819610393596957970202072399201540082705070011072114753904007440253187243094151388255886849856014338441873181305940356036954233265957269188083914372798118800462221417955364157813784146293471807695409996462755538825269627627830845680697081820389123392868443550376751012257106725258233718310255407795300014224630248266938606646437476867486949126124998478371250505430519192534224545926158154097085978472567084178847132063242890318777268174936141175020741242812723023216292349113600846795083496624474949998946983036519121227413022171014879549243868326424796540795457497734035143995263449179844852302096886587419427301133351437677147508197005681080658695367365384005365276418954455257881552023975570696357671786289081848562329694409407305158668472471541197768568382406365711183489328334969123065783793853651038857046262572333358230060520801630134314153722100876789335939959364640825510767152892257873077957550656825347779866470398126509681090339417908602926160648093602061190752353066733612535580680300732276081922248623620345838963530536782816648631502830387244400524431720408563264085355610001821409660747281948588172257085554040712022441008170007318492943051918009573140655420706211264165319135103528158521722020061068856550787924771711294409134149400680630149075111177998522873214572911591757483167227334047306275454627413713413573711489730407238968516572256517695391167977279529586092342020805215142137586405867835906444003162479670799227608500082832563693609618458458161443301579820375567692846835367550286528062985185165913031046319819095455644396869397249857875664813898162511328282854362708049917597872026201918481851429120711103457175555619334920615348171047020313060609097558310618516564864951547596057717445093661791505673071644660612662207760155215018650500100318325750588567819695999552340281810444000229519046454782645336859730963804498601856796413030679250163147766070330919968469779886367358812715425015843658662934125165798714168019029181356721064479615962743522458543294155560303443883993356203370670789207629239158359715459313852341028465614328973360096329133050606695023119474456512830616344888451888762626035308144994978611636336590094232418625173356438546351804683759834944157479256937232890779278511485689654675393746030007176184227277326838379180214252245834243911565837053600537079935908557527493005099738371216808974582946236380119466760979053493497448374916628284819271111048791248334207336855575786706712261310573267802398867765731456823845829727329747508787933466145115647804476384358333145274180357758870249942373288989289495827034362751536194233101401489980413545517814118384929780565135276336957631576111878458366037441177029467861091222946843288519049562256234241954521635054041666888536983190366477743090056901569567331720713528853013537215125065785295324960567031595402587372954736231167466041465214343241049974033296507490352639967082693311231850380759031918415029657451076989826234085581781446857637703131120457559583662802064789227056688235462388276652883793550139621812506253063149429951399357556388732691411359313724593090461817470757569521595590445247521044583995813608390396520034904763626674720389851389750245290020643539272784842488483351652769175348827499597848728398152771732448583945983908626087518626505901610915529183888046786691280512667703400705548083207199747578731640895675867129430901228808987064837712918939152156106634216395825713340269629017669685746398235941728081593763711617861604369627201962123938309983847728998547684224685089852023796061988633171364636375703107554841208090298935646997869566452744709342825307424581698233212348287596161242527517275594686860796313065900904888626690178214107327792605036017750387474555141422137202941331205734322675855823137668933559035447664893031747413433367805456250366531386645931403020589072533824680533043490857176691934375555302293981547882877363597601890544095821487542823957600904632824130806610694058558386570637809368770833367666277441967255232824809928188749977697762446020971178926313543385737436655542595173623450485204277749245214081615122079165144399998503788490847864701001542934663229241151534265610715695472287158064866169857239554589978726485019462772624407857171561691507509431328620472833183993952868179871097041665233557938996178048919337729877505909575770496424179422426527169570203004767759537447955451292470468663721586372050786333823867658562307100813918730614317892574931396310678994997950617998846290348943037639596653097683895238452617723513854242339996204526932817778846282411849123392453880975686023877884897771428619392037381517619308748522120153330111498525739167834261041103973940678975799468921792239082216718355112858662679030653293555089564395779765183347620957203243279225164131665874371395709620896407962931320995655556160224008545696478095512659743029638786276834183119612479400389087410780984134038696553176382439680414532025879731901136095276685976066683179746857877251577231385013914084143551240768230845737099856960637291990160663092988833581982667425247483746639476482689245641141201988222905072203693604663898501089127975040831206349995481084776122531656766372393782653921535260746695950221220090375994062575575354928832392007875972357727803237971813930247758461428788275479508172740140048501802842504372574349808631839373872479562268698269196551850313106901718824778528350813722021601506493159422904262162444979780791432151396209787837546058253145105209627972237792833341681377481747912409984582759186876285659920040424890598653566775199504067312525321336465616211812757301019769278396430907480631105358554943855844077301542692575463277068518014317159595988203405078954927631085321361948324157732871229690122646292574329027188075538391349542152541576367422837075278353752270933923716867742402932814727363295975646971076998680719406854392792026204403440616183316050848930274170459976726167476713445213174255876066275818868586671498300443641404240871004663044883304729876356192211392104997954001655254296145851659222754198588013429132135951802709108822370875357137608122440979927562686656184668926596680880838245967991272908471763371035869796804706960196070882915036987134247676415498762811741574063830828361082503094860602804908526304897005714961343676160571165075124313033104947049156589272224898643375580128297816471958218358029129267244226789140363551405124940047547016464997153423147393752248844496673820572697095095959647646152066762440640894948000719835577649053195454576969745291033111677515079630186071373340699979684460440576103398803379439855317526749500438658029098087725809060994815988420496430217845637439401968099655097904102357888246371489304283948043783237049929094918583362337363196390224844600248315696118340178980323162021775246203446123846616278129520960291477745204874573128541299365317730209393298109732832511727672311866473370604916380694997511441758946702616354020293191524738778017014688092979433946506049252601638649014502973754339287995163475371634918253640174891517899306100446416370883420426764972143075144025785879010504843926969921846435542817207349964203173111266022882911634388125372861647619558219164361418975583970235058600963228676872764091588461638110284174974015535569864345037692882804707040010392759955771241205957079728498961654177255799146384250217694843797625585797864303046290120348059721602390907443101152212484798941846659069756375026551953851364312432442974283857631533926384996566269789178537990612556065550395288814196210000670790723896649114684224443383638375391993887563327028289894624734031296183417942399103964390886774643825895257756974574145873050945438378019926985270867210897979560256088299572781601551445168747861263258235263742013517083229442099798371724532288895985868535624357374884928521187266220334735652701547386534088064540799185819828706110655289794852201579376712462849207973473353922209976978826069775772865321788515011565569390590072725013568166392531565166181829791621117058502119183678535473934871432306185321961893832931020000737817931125201020538478412994286934399487862865422646013913019104799819296904236513919657650644343538648717952385856355329703255012027324083263399799794333894832339298866799673181876959571674043521681831723482381872603031759562027912384279662717822512679187624335256862078377601756208123846309757045415980045966464523283848728163113897121930427452053285441000197248705827648722609070796488334666367288481743732472649137393108756352605327086360082029830304330129382547017643751355492208226168094053528853048590406208845965337429165315126821702088954526709013907674869379575040281691955523757068429518766195932161288897736644491588162641594184835091125983542283810284255186945618789022962625055059365853335253708020373028935461971411940332482102380352653761852306727838003125901539815545577868873676892693509707367588435080256784260301134531819773513739516310267580938906957883057335572861192191332074241798180201159453297822341264016811748482407694592438691224513970515076194900421631712719737452890479914193915379340015492543873447534729406224077268175898583990546559464120008446659087741005356505169224779679246786286032789851161391015260670166328603088888435954485317089816938034007313109150510247510184799820288275598544139729228026178001000826098867695263014485513836953741671613704785209922971783099113533891378533324572522905623713107226707917435188946514879154842457685604916777226537396202824514845467156621735428049241775535649733837456651144338492811293104460184903428443321337181052662484932417295582202369820532183180870164935828837673309877423851124110004963109779425748223505406913457281207935125125689186827837733033026711569004301869303504028495160320397858364802242297596078652751652462479726896513104341856506699016860686088618921747446374370582933803929592413518622566509676129930890122052267984850367901061888690061695969759447269261172218244596574768502387120084413153194544519069953075617420752308410803342050943634541383845030247670286031825366478419549756075907494729407642946904216397507474443165766519436676117244767183079108791094075530476050929388532631054100036018103601608458894007474560845973624928817104671896882595817927503504320483668042558168810328920525796457940933151212081896580332218378445815953639457190787051405739269497864172092756290426600081329481275320329291785896156898100986722762042739551029157362836845597257932001197558669486139925411199692548159716920521313661841869132389215180705265420181083960386798207466296994323684794239743481636672778029276672006920920572984895386726278609668879912371794619687392085184512074126931209708300720686298958534588775579012119788987186301764842499912104572951389598148338965467591097494200053774927203694898525739645544469732494152916261559544943413585522392789872996070277405106964351565028084556379983008685008663897978694739010518529022881717370150822100048035185746980696675012950937940392328528116254843685732057086162404398199914640658815622429656145795233878746749571662352322931676081534172549605404344188205792020566570498136496946288196809053279826688855569896734784749903444880469861452115639331674403474101655952801841351448583017192995574357947034364570311208549804261155137530333933978810349726683052044668790700890486277942340817366413067547025578839524557387241906356390004175270906277523212277934333184525626556734322421592073749218030473261084500165138298911311249055431949037665563717573786502186174204853209918162405834361264498844783127069831678320335300338546343002449049254427245945793015618689624670728802912713083226202773697422403548457130728569411240346123963753327310129195745560017599924422073996623956202635474096333307141177490956892887592936154423493775994315354250412630748420869553188435912315565927775272934034201184840327352549072085117864790096431842952835039446197375788382824009765043679582204268279036353078681313180762813791267843174339447307609379960101159068251863225443368324643940093940928563862007698662608775903686217611612341910261137666153401930856534082811736785287699758066402952419020248125094118267643211817117802495885825610436996136218014577731396012966758761903928800993636019780647560852818155745765369728549862123633844161977604469784207466795512890721356817292650032887738294716131447131166885172465621936990087726327783536864923076366739163949063316515383001551256804147536487739359394552326224277631172833187568300951356278747720086701063545832569815837993186086501947284708372496939583427436835054556290826820231846811648284529571475218899272283113190451377412661346265161847598753877403916527909192901981421448413298161045528643349727050030532551562832369082051226539628554315986315390370448079577296066847846391384646281776020941570177213037628751041060220261814217264480725788877988829565820721474871638130642599950868299538848350625347014563209309479396981687478771222840776074183188061788254972138454001868401450384398247846628098655452707477392003597977031742450431197294213190706245732567295012709189700581739979359581323351630201376937207989352965775807855165011059403595793858927410181631452254350466522242725613606714812217372823160012610494542342515546494685887133723680532719168241618898366191750214722927777626043282174198019635134481377542639805766333731281812921874864826265459194413126853980605573176454625168726818147641956052447167464691379353238534548530411000744212299221906546935587290071739628328473755812483007668184552394924750352283740114195432504572553440129125882884599928716426160087593808989511976651874307043439098538019768178859056933523538095257826839307899924335108276893178283320541192219900322003502081520663693869868783138714556007126652673385905707211421362624140915766045292613477381444269932348987145968297720901420663549647817904646385706760431658149417560205266012933307067376352754727070104531064037242706795952172066945977548377089868337268926598467299661676305992950909752405040107686305523600665881186612484142474840597721813272006148858895194312183079062969186732162396636931672263885308194048052669983347464671540230778325684822338204578964691788973131198337345847545855481431223067390364995939274555575409583089601662283995241316834517706708527281940856965511213249733660873276513522799894099967879489259336178418206050647731573528132108430549233308899545858239298081261247706338401343279697707314207774371900584256483583873338836217528965147716776214151640310302341036069242105471947717100726819819143084335888824075627240371317469016709544620592182545938380737271707072656831215385534410670273912594445447525505122527495688445060861208991315640241645821425178462876094768558603574293520658729421192747586581404305325167496113574023728162983220638391582021713146150620892479544088125962564232900940726480534256812575634126377801285024745669104585456438706701066229173538407929905035195995254569683999025414644585565200209173461654657348713067448670611780412216274246862183779451567178064104198518343846903295827468652326294392739753782916534225896290788863004602964655245901583806438854231895336130012351660386860701568242793831954741443966129851373644964730965493210944948063570751507761556920882146296489870617270264810291006741192958599598689215216487335613821975185640787186769654975921742460182560711768024488918028058976409040101603403954343157417168921607172586328172238187507893050747425979591396437471829636221055571617494932942059092231179347802973674773591850754348660677401725582013356710788939894110136153145057874075942497894111121532863052819681743419907973255740681259027399570458398034072864532933144139355730262338094876167355093890933839759324181139696446154167236842816249642297437855176351292855734103460390952733538488314256499570657906528219617646138770127161408728515354647999665849898396637876816208399296071934159070718699750578591781106473480782713099201924607464182436095877140085426860988442114472633698190572841338925784234958319405329887427336722044132710840576798388402950681108582142975961431096490938082423741263589368602976713644854109746174798774206419762829910909422415967614618893851118753473450140313579700344301159107516852105610383580720720992762013732727208636358522140074303312714896681340318934914108488637545927580488173234568245694442525765804213063866680895426250503894557896371793296691196029256268089830316837701280785215220925323028427640063284675801875270678810703824324379828211938715416396865065792702601530726727474693114126965195252534204218622594184739562185155545829820211266771192410198360421868243889815140292273758696219819051275805215945575971196617637018803722246145576500101042797307395651975979577903061410982592410225742469707148799249289797894241627618250474550183676979119519438407765726553414339885191070107441325615279867425342680246062246851631587186877810272600988734035207684696458770472056819663151212628910486236362860821630524536459855728544801933867037098584716236244453689903583541937732952301044606055121653449678787506027687378681958753792270309196289651040781207631598277796504575245063680589192731389383392335809211552312370320708202342263631873315763306123214994562155496298888500474136320794357580581274651107907949580573129894591700596075363421601624156285307448566620390488492927376387855835377450880049811037534531332946243270494886634395622586597430408841608119772528596587025685456155088193421023545411615326431285073381092199538270903305908789523150037171420589005533644147620416597328356694418504442086720582746758081586122140622157804714799025252389941973936517987582769289903528284750265759130243474600218559699271369921622530895105566435117376493115181449250673117843284802373517857434167584827177535521528459241520352684143995470453162995555868521148892041281676403673409464826117212475512805198473764604167926939517292717498012172117107198778710382333726580063891463764590805415831780930167257720846789383552772710551483672172228380510455558692360383019312699708858820061888099328089242642881792989258754326280401721383379005729837486476620713367294254413819503029742111898001888500543777998026940179455152652274064632336898751893609937088653246198613645711174426217111495726447526750175978893819552010232967642820736545210526540216660355005622779883342685727030415050061658029852869837111793566977448842006748681497856194912793379644988923607059834356879513974549682099366069794688502191087185370140152906344726301682336411615517969564555603350925168064694168618279898044123772446385720012401181028519962673286658430450322447327484827067194749835266663540032672163860927260268837975180043544895199464620499861820421831170930620822472159716026575545606970447828539332027475614120736934794346797930585106854744364070029748210845964316619074950997842746066022749869175636222819050688550195085907747904299514418367941283159870986172090658571031346831257449483787615566407214065208142853805227271325809488197409749856051619752095992993760734657239019268442269885536796739883174668699519796381440512333019445204754461602022089119529883259897800952310860728993865073542019260739337428122855812172226783723611466979835060168579111613445395406230105123646981270274887736733096664442103536787137047374329652492043697414255099983627799246059976568679379550156216642371858491176190272818229406687345315828636580876349138891399153781696981225464426935568446408826966724512456639416203161060299753820689873264363462030129094083564037492280580465218371588242436172095768686005571853676459842052179429852332591869361946518454062721326583808328643999308740456205340479136755952316742862991499149626495890699575847599492699036015125645834816905570189954534931168568300527657903476199391335683379116574833374393872645125417658020775063280687187115233064132321012324927253216003048331943310904844192181115227709270944755181472953370710297853558430390520893023776954109017859284760404980389762601261845672597109117961637968453042516489322808969071327314872130700276320999979474444351753295971622152182768122257667156389824581950155573532605439089137059703259493166397609730463196510406399410838976212942346042044894160814952455507239023931326799400648220302346998692557958321207890263966497330568723248351379753662296037126394120802411948316293054408496793105479218265034095590149976288527834889632993310241288545596290768030184393448068156018298553148238764144752226100046412169235529965608923821956738737121919563710468178816972330284361938090552433513767274349852020791490191080314613535369579252355797097460243548562488834490976640035478187975649706586056307683162678553801592233428763167380264979973244554091133364863382385086174707287384939230579433408142652118146403714850025340165826144745711797870191410398749865753464185064545016396744552000165719839983771186958782128681708548423404104516274127303783072930650298163116232743870994389420854107152854611337815860990397065288326969776721134027336784641978228779707670140853632140427866491735942779819033398952452611361702696835023777497692412278045357814332549519401931349002498831196654024050534321311473750690478647285958992326439449129536209599275338165040504906690298750464900419703441600180337981098480818238088986705296605739167717484381622235062110990981137731927121546093645720193930118038206007537107871968853645890742639870751368337180317770546914202800731340896921296712989951375618761966032408526101439888633623865889650299966296774627713457860479695274011242557451240764154908308745743868384095037450989197482047602968248214825901989162699549559274633321162254879828680453941491784618590884424832458998685886274102206953606879577150619513939521057477142663884471506861754242661326621793906025167192439236599078642727803287056988588538801862918312570674027119175399295947520960012246113615214570454221911865857906486239301503243009078852248413189711124946935890894591264085842597072843644083800787951136699341105053530851076498154932554977450345440022630807705529346214431027821886158598657674879895845510940821678056017122706198575992929716335490353708146275486663064357982639732045023170537372466129738401287823907171388260135583020442880833401772483488808166457929932953778886855757988012593002581577318671170763937927482684870103805626015714241087252649254265198690453854916787861013842960826815448637269215392601634213358696187050599285162559968410355224922835993506286070731243153074275674356620614412747227324715886418232433936364120329474491781977051367736906508927503747181059859080317434347595730147381839377208725282102571503466960987613148960055339388519123709342451469323388713431540027258398391134023125867682345125148188560824175513688565029996480697194801318161927415620366407488361843277369633317495366375950497161677173771290708749123074630375985815021829282619078958406378133539467552608770970984903367264376700371268633996888709666369082130351740654748940381480451177454381331074333656646681584671846617032408024661940698545949246725896061553881013650047053225703933804741635019316611186695465309113357936762375257746335916872308852066126192439747600994324938436726008897844617951757701706188132852852018626559987185117014107049730291271225846784351112849619790217190757874032055161039678963770462038753851443642555050363622250081015328386252912843022254210465358908119519964818817439349812168521599484124614949428243688052719402707965775657447507690961564337327387287974322865538923311179530232727983265228367541699989845357472185468966020106698188483970836007566192107242859439991749562470002460446151755744573595549411156169913255592364437232505396974444293619403076735190542750210117900653293520254581093305152644910190801866124077140924355602105468839697402907534488326688101749259064003797717451212576380332142938119456552185144607407746205477363221709090054004944195817197994698963456200093582530738109936912370335201678536202731450082726882791682570912720173189685991866622977031768414558229866486154431949243207517465375220411694099556491359255215910906099751588484465926557682930272267090545247275739699533192959464213782100994614056671186841704556283848283896364756413270412244575944438170276650983868262945273964108060929534559467473955772530515338031297338977067689855774494899085289262847306518439404563465359395012504129793977155867679954792016902802260037058437510762487904778444205023430103366007114532990879433384350938810216107104073534658702134593370833058154395802246766561521604895457753875063396204409538830984393013350041591698548374106863347712314292571412277978983171200900652893611423925044234157190675272211583931558824249817047262599310379943757762708371619176387655929082505391840919538214815887284610426096876438243071100290207796926842426982283485757953094925136075876062057119242963405391338787427363626599355126009596774613584443819707222049783520732510514222003303131093377687969780170727631882151748644837202227520584272056662082671220745903913792371126328454030016267210561327636973516669138525294568334803980603016512087062473639742913046752846151726569228713822693334028184693281462527561245380598916445284619082265944281274029318142522344349164678086206672832100187754743149149977320561508617734655840472619720849772454970342430448809485736625344273224875124370473218524284885060273233373394681794620048360071938170705994223402390089173780000999954464720395620306308778593124865472630133019198566858890883921721449283199432549005293626839404823187248795454702505248186141993305623718855447138469537048629566443979241823121300526948789535816172626754357793338178798226554220225260307171367534729569240407463188213252805899874099032047287248007012891511696806089691083933404680138621981117102107376745895982647370918706805372609621183223022514555181159024430500755941367608496250039602154077237405589286449642776638396845240416455714748054124720581705962141302014773727643063700233346517166745269434789415913202702041442734016762634554243977526502615259128068541001937441637878344494538884969071580067158247041515646637738998522192231966664258248860990580510225204574860849999133283180764608831694880288708564219514292150658973985920958447777299497331451925100538615905507103135714511865406602543459083052781336848312926099869338578801927870202653619908530378436657332672751549165771385980242049904353600889496769167938206373289449761957326626985916064607112336781699031990546667420331454346364228007241741045968594043922394321027666398799282612964514418740686694800600358894255083276963536882428653936317393793025522652826008227792137972687554624001052780144661365115845653091595163894190171084736884718994497445146974822903241543351344149107413136346066368946266340463425332108939841675570757420612861938962696964514118209301239908723431961730882690869367521902855237867007470230686063727802122154711172397056968407749606363142781147289133463451151556579312090305645107980947810522250018816602118300414963906257776631263157776673103856269555650634851113293924122459839218981166809882865199262799612548152362769823571665798359938687103584882234610832035386920365928692825013684452517816873236434686735618523414317919319101543033105347390535139386834643737694389283942828558381630720255200016084149635275187268051661251499056622612756330300581086863558126379897282089350297271748732938815050257843201212768103469106678441949210611172363453653887857432200724667695447548136216508941555717828327850255855399378838680692787773683931409875287979616784507127946231010025375461523586559747510202830798933322170632761043351289589861645139831374098875648243427802390934884775956713671470162581360742276628747084629566963769002983128096180013985985706035159337873306702808092303949894626372613590866764743608066181950174217085278603961031036226939025654368560586750273680792857419499393588044947153545813357258169283857234829461240977639607169773694399298997596663952450277336841048108379501497381714209312206878134091609662411015342345161802894694169514811399040682065880549819290731247388228843561400424095892555694892015417456490206056302605021944556025517795850931092300723665450136089188985625202494273306902761758086983507586528166779349569236696415060407987122046018062564722773352483805581650070749492565499430083144503933584518362004755530475291493142222601383256563112936333727210371505156380955472825732440382590663935378897356922562636387989054141507517628439058133669982278710364086930207366873494639885337009526195811341530815373900454473546909147843102251286293642985238858469168985591207838448964836350377644223760224103069563396842325769920526313015119330307038505749205157126285461856268939028106154960951166213955663334934084258448028199978975920076300249013686190186715052340999184242319789935867751280392233984345751688198173091134835784292515316648794249015256913030497036417721044878082251506602564357012917169245967638623656062854498588540562086023212538957873164876049489145104350782697086493688862198400965386962955978280399060785526222116912762800902151785391345705435769197317540216829877981402656753699838033174352134157408182787557971887390375861301297058249840161041952655363227207856454287847561136343112385397566585885705216506870839879294305433652941360727178992645854932215615635652402521696062056249687947795457051913970459150503829982199847237935707698015277635280390805301512371586964443125013719785683088729786266636656601076292476546448562413318014940093338094756215811049992296020986176671748111202836943444158871642261402740126423463009973412199326618956748668525558479104374586122950099921528201156371062629052702324229651032002552230587956280622701704808591155820314175928668779632000265860611427317077128328819318183230833773641181696735130284150086562366474912562999900645827377314343678473102096970531939328400386023493362668367926073000867889701062387985951064653474051857289881023188825563019357390333212553248353999540789817063613745384606640704226421433180063500509241551539821888324894013225727783412124226812163878518201877572204109707647465227166138089181230995865283898274077497426649811750788023242160622251351541243087643127554129949496942887806538115582754220324025046816569004616516795866526160648949191306824780786193228513579966834162125050622541729147124714925593905263889669351891726075593574632676053529195166022398309700001654782374200318231895867695368153724440939280242819173962767491978876196940654595330484189618263655829755307965765736641767492536452671854238439003788282781981159384742564005911971090651969807059859651847484738939512133714909447047019900045387683083667830224174412500101484231564677198458241010430482997789163563370828387336399046556343771726555219391102113334781698014992884007336177277996895216418936984199906093660690065055254718885051275336769577328758305015255398959857381681668441716713617563285846861310554139654929891178265791932690082225329031635223735574767194068818922788813354781583505958617174755843957426228790377156954992509317135718936732646490082054918049827735102211862927686410430406764324199230554450902014331518936344361822873933267903696477661403076321627686709555807103675590924034626716262250558442076835126046142627716239861850451505615737868675463770301529936201013957827422657564139112112366679310493738951690069484803918609729489507111564088636550660218314100721848223311736933316627832348495679001615304886182557393529032357492840504640044341626361859117414869252627078129570945645808329570679049599713204171472964618977866951319682251748655418079992980310155402837130005888035958881214994024920416075193329901278057834546558382192708538239730411555457210811564250742448937245967824353909539784653347668422716732529358015696844042079446556244115346484901729792121156075317019327493223373308081540105274844569467797078741334760782445267195134056161537080330989097578044501140160090633587909691562262584783607399755412018020479947031323663651245103056928356810176291316965552951442329310694317142464983835433994910351968352264361485009450297397458714293674978794097844018489385686829286751883242622549417085616934642953441723085077170135523458203984450246495347665545699104274623475629615359945652790466924006607632106080570092853186810563701079301867534963217381979970357242327515805339286004651363590008228482131621093231989213596381270601279600095168212662454845637377441544419440063584642983651488009288471254033380093399208215391304058090538829830737874518107394163643517571781692245960137227292296528470468764946392803768449131862687715989814874462535997107142543828942495978852245449983834282763672215115950683402523774901916398115519504504695240285378264085795224903663709097652055157775242462696075291988700710083393643145214349656918578771322007230261363779334195151893964132616084908442308224405842555193679567903073791244151634408991619201865107292401444131270578076764107467159061223800326054632005936765998819061731924307105691525229678101070149999509118203990847294589479616023245211352040071208761570912609441366127120364606900945675776021435909488205588751880298395921363734272465948644022695170487165348722044552377625734024255788754218538830930837032815748571600623643565942830547645789665652888474208719726788356978575610424342690651331593079337373237668012007406390854285612159210970870915856582661198531361677100457391134828518164345708576293399011602073502063648979750301574805415892186369107517579944013530099467004942568846600139288569626432686690409076684931862304731891473541926829777867237577244665974874378636043485117244997565922481606030621968324906407839064262349061572226701611392444666863685941446779165669644854845462922292284417555929748862786772083945728696553878071789082445036643741424778608122339344933641974391141049117786219582585495494487826312847096659247169843425297612838697878282147723813842785147460585270330776429009486814766173261895260164613617829981665900080754442563105720095445271560390115244077169800337718162962285918564069935452263186908159263848041377359537706142869107293860728139348749968154245253638169750523836375347715024481876387720760359953570747459949335252588481926656164872265024574060764266745656542543094620210951983857029979308595523504159329572402018742835247667128449844897071782666019147243211808399203430768130388648025761048822836565991261110501270631353460491546275041712646970220674113234092464604956545093982990526526827604536070365973840983464010594631559688075099252150215638074331501059018961604244439176693723155573774357990830160006119061345884425610682696477656177921209936921198820561110850171912630766430521911600351305788601585109277129901425843432210780561041976109612059941242145122453355354969721861043656182629166160745663147562857841520448695298787113056557978831577575152268195553535741389564351839233547740351257550843664272637421576426333204336455974875571046031847095745483135109089099320686670253638266179414466801676776254337823299651414913303151101098099257002331278068629560564990798534216605948760002247665276324459713797902590251047571337556206013038800544848100631951089592992101137463934570833937488026011761779087552889231967144684228654140353149327516756902260854916060582947366596222437772850576281848495340664890216995474982566559582955512047881747404437174540088231819664458506154941663218624915999930713390797390448875210803344781901690788169637530120004522017540338616522693541565628866005535573282372217921877282407106067710370509312234418314836679804013103841817444112614166760435817654501984977653776433847459289024150203888760426244202486643081181794962406558089784496132437668516645373736472337259303109773149167010951761589251957026942600621016905700082233949045063051585511472978622582986296848811045701933923795946263219694856477872900594376642562170827300824924633180054134427244850812131693970900047135319782821108922960793350800323297917029072068060725101358558410379743602660581435226634123532784512474277407948025951986500051845165134478061750698441329385201312624594796081919219871678097475807534832793002856962785923835044710251658696225111202143271700616886354001441462285232257448212379864026144055100739361506214590379403869682623470627590714713411564909653430250404695261540464903892385658208907039045794514308596968244898444074975693938432417303858578407854737668791115661839729036185922180815178733240486666479793047061301410705136569919157267511551819812126630724732983982195333909778185498018824968540849319739850960569653245230236960360629289781432014540345374803536217943462516309896611446208106875622999474942092620413758964953550198823441004380126612632024618058523015225684175604536180777326414176090515905738263431157918702683354799368347581550559039496549997268737042551068140580334107690674741303496340823817689763989144478301027952663189169427499984648486368690901507666939533688803550678716506931168691223888072613910145846367958650840240398862886210498499871005868198726888212646020564215807246632209712030877309776353980396659147141195679645131641982650949542340357564523397229468231032973770378958685295727551307989909304814578935897304445268198645110864124532122685808930701992860910053650505230995745138678955969796501944684881900416166175562548978042556527566089158756138859532839721704710607435637722232346387765522117930686127974070528054689391227899944356159980277160641361049274812981245426153467230693138503001338254158139573273230440177802642155276678320328427375704236090496789655646918620643923649867519364236842324687271017410754397433166841290907240176783343934129040747075544674474608901310408197596994548169631541528829395163415524700698250383108401565874654304545608433958663817462007848548708310776451883700891323577307024269478396845592223147595037713729706019012768243120041839547030360336671384919267516994816512503279518570531790436205562189892502709807903367102661961000068087541885210510047485866433198295631888542993718060973850352609764762623065623956994994424249459151397776254632881126552073320118336820987912105956106683113137149408208355038361322151858125872781818939320624768469029112541608607369317735496704692482949271861059225763289996942701386899492218251367031530167208774306325039283081532458634767790205813393563543917783799598006286909049355043900572118016172642119807219456639262822914629675103670605899350396553601565952599980319761523275040744234170980789685987242071756011830191979062619139184826687280282861282429903418177713674289019744042075078687983129179959995105400833861114366478299825307976155131303735499419024385410405285882954859679066715506939758510132468334379216013909345552838102466289950271101062975251773754310656991572296633535695307657848442584018185438863284115285721735433101629657526999524090317080896316468720724197982452548896190363731370255137284260523015438251162460528336880733969820950693488519181680574139511785963846841256949363914413833086551811095021601001098589515902773606504852495973174624484742250542127829214783813115925348076219080714103753794873270133878372623487715532972351612020123051833331611735481114486822796081798207391958991787831967012381748238176842712882105872749599674938762282276901834866550722848547738977463048778215969675284687213225654399800136628887298451582879134734268609527852266788465767505985363170919533205647453120889972631628109040008535785247841700198645311636922712810824132107855392225781548406567494629110232610239288462890779613290066762934708393817555520789478877293578860883007294867390176108802686345342651348275735858327200412073794946436569014999750735718032997022481676411518168040861398359133349437035725915253330526766297051976850918665777775498077562765270825347409123722580750330287340669988680360160857178650990752773563930114444110224477331732890117800164680898065322555219628537474393421884367624592942381668545423236402158443675053693773668313019047775098694352049171090969756417087105957797129260530683580435615965137145914235091300426575466016983531562138960040236547920860827043282003087183004066423278765112705489506335210474759086598091514509381902393834744306906922040990059190702340653590393917315936114776382029409987774838586497872928314106051785919384386190122964743389304522429693158041814315503756393515469810896042891694707110437577798758547885802653361969749554329492084989069501865642224749220239222250427617250718545913603656146372250077403956877789821148851372910309607753459200284804211857840532621279205901934468557867181357398035313175707583842465393262442355189264135144794075178172688582013249846756839771669859060058784832574225310454200009033362477986742558184932305040386143097669845140536453358459931599206156996695257244631748873599746156259058204500046436827188759640888546480273002614667146977140115339787828243242934530214475467328951034608674008451060744868272946642381792720801147428678122714608435669260378680618445409803158110038508223917134686754373233798524799231134991745661015761106887607856389010400324230022939577467115327598025987230452743884583658896012825655316979641973834250223446246651347003571650542671913619145720938400362077687867294567827930255515047165003882234445368741570386112237050069459623470723860770410360269172050545522773913685214768286205064712642703982212296039579407325553745645748992930601282732879432526797786847922003876117502307592021275760599966835022385217592486781652893434095096255158009359603338907380908729024460994743212174902460777247596856720724417176905915364862070556905509128971610747419619116030252389130134814821703252488023636919384452154705065565105563171095163804408538933613702183654411523557472154352226276726427384818255596263253568029059524365617408841717551551098745335195032454079937642329132485559584489142903567703356148990584024332798625897137044210636280151861612016821121520545063117453872914483479533211562468963422704062507675943714390420082986645067903988341410915524788291012339445778357318058559381845333372309464041607918018888100961010640168892052448781063155079994433938533010475275511064158264920871930981665244971237509512848415668922937105978367409614887435046273915481401564119594206381922278948001605676439762210443849606904613336243258844213958114771112719787038448334080939929040420930066071318065641359855145415517101409375104855555658990092450451630660741675489725957646113784857703951022968242141610503589220898392513637941966379722012994681834739436351518938582461135518986452862426510099583259812826842495995930888188466610593669869558327905252005445015024498620046934572439515096106293205937280017874471984479983432735725507933086544092376958156282038421499713911951682804371873404369987409936045670266342130387642926815830974231477902921632065265603232505960645463294936770648086541591002216065236282803894549199781075551255038214878831456384008496417584616940018205632746316627638910209147164440747842793282690058240915752893721473662294297689396950257822111934022291851821785734417363313036607221699288063230870884379674520337049863602189647036274758344752984503631224458346155527389672879901893504131169313219418838030593491365126890489803194547014937129844337083805372304142150711109018509437353928330941939125700982081046538540675504859649209266116726926910549675713504381826610699653402918615080856791165145388556729637226507746611482980522054918123249316941127261838585413105482049161287508364300767322256658668058119878283449973856340474395082846542919914122334183568158006903330509206475639005652706768414961213746169544394571307714284328970614952154518633676369891968675387837923244143115535075739455609049531401657405104403999296116686743969019436342192553282663387605523530192076269990039248935736020428177724105086567884114068540840555390651161942792485732605898256265930865912895093631511521359710245442989195710427940500768749505562848158185228165064671810868973831622989452475943751378604105657347720756597690003989077273760765100276398397585564102687901445468681453434043545061739505569749956943588643416970696808967594553777618197019703246448402107612497895584032308929656506167101957815014088226452775213307302292529242427192102506416749969150474135651140007679634424443966088255510812636187772635483794363184841925807167000857235050477165313383958492855755772678618767159719362043199058275260339534716753736630194280055692338629036621918502509778426603841021675217467525360599460923843674953838773915189493680254816258047908139798910738453308705092763419780907483834841816476794642606803701304153105255382738753076262292263959138591445404313823374766680449907665403018672436225872558096527514631531883518573548135869298368642401629140772647254502646451520454060590330140502109821835082302908700181948343979595897796870870977968309667709500836694943986592015448830068793585477337061204799584848802826431756955207254491769517995916552835268925566074018417040165020786654834830952381189924286456523125369595996932939966559771646390372171121181504140414414545575734487424354866239144893627664239405209548382272759581525663789379097843752453795590248939817992627758937609448891870659517051166339450543031958816724545439658762185748484361064697393240829840585814328249462590710089038876332227862348060264170302565589124875955077038345710956352765584862770053929752040389798500328059817837782967373204778189220108713217927317527564489508919512761250557222655021673790343608020576655792091197371926681331058519487594170980739994011957809982214810607994373595836470111327392461725813937562649441559898025314420355722001081022220714923191497118892317748252994293224286812778753161738476037040854911904449571067756433451579317522202281868634958328414302770498333376505168931701376099340291290454762336813616537450386787351176645662168359700058226546207497040266488084256944790014252481413561190126247399677559828188683407300000631605616199915855578621409084554058634509081342865350790459400152097247233040696320775200094518995658134868268302099286951469249165363439922349120436255421892211195727498149300233292673897397473105315842205263466463345375618446848568718850701392342945307673472903265787339211564628780206874830771286648937539933193597866596332706475026223525410679824197867349013870847965227186964695023032104858686541302327785633644507318501183102803440588268476247320580473584189520491616895919298836150709669750370489733802154813470404255996046934354709613049582944843655904954522434331271467877192975181579352274287691264940085748931399162522500892872411235476282796273906166981668075465135943968067410633502436656228461952484261403478442013097804600059327708784619755189950771688287188298920919071825937626792572572494963617213817300836655985569916965859475811894295818771041320245957408422221679915316639610911139342020734586888488926428576757234917888188735751222327620022385533274261777606771265352721269897253052611174062974934717716854476294995581679690411859647189900950605949351311797444853439275519169227348440446722273437405110944855717159670846737422784110029811171948387440503805715971404660578992115582665857183327058334010719746643243694042040157713534261346650070819655389193195896873731248584074877100825844325468754507840143000278127976270049420981524803255279120839437442031957635184189885551709103981208317991857575892934628794728624173463314221578375887499094094349839836844638719667759702837831608878705848415340046608735010007996221187287793188379440011036691588102712326162512013580436544335311551812466226095605247449850568396986735161169967768027884777848890845746371851746038349023528844519038302402154369011781880163637555231922162613892156007249623043724557856642732183756155603664107895185837726179454571273540959134517532317857205076916303429894450685593882278627027823868620892060369208902894575640958287610915693347234989852113635262956563896030069975561303455395627157793343982188963913998728300004075552172500919481352191750453502812087341225168058091327306471024562680708643524081339829139986531398068007769307286010587082644134125534012663890692182838414640847846627986549791198167727463347126631748716648919658135140519019514394154998381201480634461390460756816222267233234362515988781350665996527404773806190006086354466210108114394419475493776177627750169140932340470880063957197805396542771724092803970392238428779416125181392674171925408345095385184993898312232140886059221254967502200678880352709800434955560779123295707350172804271619083843931780894606699193686274789106254371609855127931194787769102322628857492963359218376802354021340742749628675209479370334736244035325383338237366985256476366453007521865912472447995463151048507691282564489700129373800545694069285501146902404734128583015073875348978782803289990818176648440887606437728856487170529970593842075586782183480782451798175092923821498228370945963108045267816544579607772465390239211227743627562324827973087955392216874600660315757350554002429553570292781178848566544108541110757169897556584036875044137112149374651907957714265218519867690587789839864874133632880899226897905730705525140549124188753114928784625548764517207435948513432900446756180311764110755382892561582659602961926741245298804314647402514919055566825820722874487021026962374410089784732102030430841524308035673710390427829447687874105403061975355615318657058188410204288562639225780221443935782246886034069186729598565562236779068066532791832449563322575561299392462059794894837518080848124580326104275590246764268201985428614788136480468595189511275621228704720871527899486265161090851216371485012473342959756569729398866987588482110001556577089068588785177373817554782478081725113626856701816706281264758504834887657725798937277900083304441197108614343786016516475692355721575538820996037566325452703798118574543371577611373541632390425813675156548688819149410481117516628642531344662056787118884063430421519137117683122024040298286600024364065265484391475431807468677470962591331221279711043684508322769408400414717891541205191787590805092156910085102756140910432883710604948497263669823660920658681232964167910755699213182876274149456110120179021401242562520897360309724326391926592604862336904531950967507831149211564049608793343781730870588628506895221734577773546818368235141518017261703439130441417831641143301902637025465438833261157621028459992572255917033873129248544956571003348920066249071841093559390477688520489221250109662209269610694272469266380004225241880167441708182160077193819467866351275182150063639040492112245081438490700237261554731026005272877667765512567597118137717802678806501483469323016912002570643462447862152496894975559360447234164770813491931767333578666491434788085602154603144300301441474616502146291191153849887449136127565357733001548217491935560718395969833586860219347187533735941203212635551038998108190992755551154003979239779961916818259045053219870957650532043426702386539082826510429681602219422827390579205011956478084803310519410547329840548394764833936507476924658578612511800692263963370371546050909023680943000539415471433843442761853211112329525216061487455400823785343464704091689776355255395146865846061632889769500609875732561872961245565440431636938497584452308447653790821061731773517157401036461367930515784128134241416035803739667640481831894431476217353267349998541411890942214949144510395310744936131412746613206669678114388913624314225251452351630782786901250273625076531063371669456276723073023711691884758958462913064226727888765248908756697771157420917417731034990511247134073775456565757082619064235371767198631973820667573660190536687151130863609891241982495219231409841850084312417165031257189104696080554990565220885204748450585147765919814082857695348277515948929804041942857061845765458949230862282835231357760266348263678785301226474706366285424890780457479775005349395209110315460025615127400712269410917232560703853327216716446054424751862599280404192161089158579807418227098269914951654617245055809693935379121092519012556171117043118009246673920786277146398263779900018367867351413147516704545556522544082884273846069818601574397024657841578368592886251805759431976815874777179380513720330402271772304544068510960770666282618954046214842386754187887737247426183554951920471625075119164474565010406769701746572120569116014697062825804404094918038565977662674493104443723870671158232301684792586901791726619773678726568401435354892136420160842611749349344728479487573728569540387393651062857618046882121865663964136388482247685949102486313052808274722710092803027987979715268447861218885192416671587314506497716036858625182557173397063805095522273070961066729384783185190305241086453551036596799264016156808442309292632869498920273931651839417871315829234451614254491349595055388797782388124659768815671072268367546111925339125671443786659909336013614524650513779451171851437416878410734315914693355952543933531116219068842219565864817542970723317007923364168522894579243014042486810906192182719556687939039108406723317242609056428379517350415493686531617672403404421927895026371559417465296311118673285205931658110730657741687697947868217740976108717063438937734896893345422495743327898541004469482541935875587369207776856888625847980025795921750176360898394504475687285118174619765918567277840259369652805914770923352345872049486353581124334305005395082454617104746990643914121883363794588222323626335823965887860487208357162626038979965685877168668725561395555206591335800352038839730463406532360767270468273917957875510078686072622803305332068843676781518221062622424845626461330530701164152022239756129324657066927052103229771737219703849871531737837201418684109930641909064739466073566552358167456189876318402212229409825906065866317393532355608123625253562197184395316766735758439715884169023475188534018667489064980232863032076005129327827711834653620703187610752143847016196242058996436089125876169565656405968778814197612865487806080251395605787124637123926694420704547119698116966626028091544004422607702675199018962891587640273540378918485196545451777114644556363461091017120192166753400569993470233208151780173481665955927813030660729333505470633734351021481160854613858211897265084436180402112950796441349083197949203018282573729451463503231015767241321845480205549320587816298776928347231806345570234456081332826024446934396178279333790145608581355851896728238826825785376009548416575678227570724322865008058654568118835019593246777948317756442548581784787444530127127964541583860137175747731145134987995205116449274443405565722844446886540336254495617546259376094871529557720657176850810456134907838653463830631249360590523225126755276491084460623667787519565333369406409139676903229983046185965200174381377906392536672203052957501067498767828286316686102993038193996494044009515603519002616503763226611454331100119397294011526382533726893702387410011615116339965321257468437716858996542743094113200744593570853267123255554889838810788630889026601202133429453446258989416986456607972016273613869023186641548201561556010061719814967520091677916161647371592259683250102573180354753977141945970407206983921836574554047026777512652364067109128267416603262946019686721172962193911356333567417818152255094842292728304680734390368825370668561066577828020311657792225917649621865696319970126271775559395873221562965328047914681156581712826474726356533002204426737450089813951568900826496081972624204674526885231150694103987363870531735791316175640378849686381139899621799280609858819349234184074154778289267806134359489863997273755350010610106588661926016595336197574865408402577520586210802561084408603736877584900665872431487425425731281824000916213744483247289969683938967089814728757409210218000736107646585566155771457446084936716244497058948933543711784147740778738079754347168127719603521699591277353742831446637818795996303927593456986802830220790476632588548707367449793339935892603190330593497330036449538651061175200741009609571075866073395789565202955181913620586728922326799672368152673438398680719588473306393070320306266106960823475894630572447760186562438645703246748739371317585054746138638896776898936041797008363997259264974874053668745187189737673126171649370902983149580541672153556640805168815724515262867730437102623761692747072590253216610217340368335083171676175753764974298925323794585776767859879864782573705962785974524567117680042585344490676207511224295805915326158459910077751230779869973126548119526708183833581022803071523091310059648904982520637201411403593321762551862163035193424473242703879646603774097117680839388109453035742362032592061589676889523651893642854672691070671335144138104635819827066309689729507562749244006164461210436334099108272467771477585423387493963600432689745963754448572364317410695718926331100179149903828121229554007405777217927252676118410185903231809152041507098700923790681582388810813996869568257635597335911736534002973027929353254200887022138046908633379413120621134643504512458659152913545091032022051885111052237763257114897086788760369390341745941400067386945997584949722598302470186275628843734336092351007890297505852505938154831312493218763339170046702193545306117723680006879343155413351893854534785585100684688273377658677566660524094751334940302078018135827741980897281362499908809485107094774042705208770559323403768678933391631603324492699308962899272838098083263159639358956426852648845602982668897547788118365750524970130314348461259303958643207886745376215573845951838763182371430880138007606172834618815916395358727501992013477751136638746180832050263463436664124449100280078070583707161703968481370579437065595161597937474423414694784214752590576535934846319332192858175728893404143170046662398969376800373964819729438978487133391626515303593355659604671575988776574249066782856633889070281991834246745631906086870606658236176420143536101232175094963708948272392084134671911409291028003121202288750396594728144249468950967418470247586613231296129342587888382081030351810122192901622601712914549196373440265809411888890678409657815665664729136100361512440900096718333567787214417732681005384060779473344279370272671077294282805431966583017660305675371684415872730235047940598120960069230319792672567244469984008718274233316428170939559896548757567439937299806293147615735624685667025816084857264687904754593776599955042646805638993135052064673198391220752342342149192417792791833547925540912485004261893290154502582795628705501549297149483451313247259695915037706665529580825075838515075797001345634752257664349922336249766850856532557632594380551793776617926738705955797617413901333475902824650250009439316348954264840123740567786011719979847362812606013012691388267857879332487444710741985582643117486291839655880383713274121481752865964116309802287491961731097534477939376781972986472106032726571977336238426629527208599042602876909567222081268909239557736423931092259034211517036558139148638822672809409962899081800122512958728984459020325400408405240160402355199331954317504735832274269913117221340911758650475783706250774807626080897297193709835734090491063426145567132648533782443574547229601079814676719731820504908098000160243262890294293668048206072645127073209379353936507419466990829356843573180282902663995997775554645786922479828554414068582957815889472893583162862625750714731271635789259039762338750869112246715716504454172975837247161301015372895398207521228375286329988889920591278185965767728076030045898972706863309475211231697199848065474594316286154795510525690329648936640487598730679955711830161053929640958732990279909065975709309356274463570384303210749054237108665261308905453676696786037972370186700211150321949003670142084326501897911896552550461420905280573524799065752473016929533882828293792350722258825206323959017874034551860735764168719976080541002822562016323836732540484292229370323426171044504885142585166410621400944720925555984521659057892527149264765723638861859595769946025834935887618057452635692007450597725126243480544893213264162793611234741992674358953837319288917683704088572498856392807637655653384412351116201639414609501453129952220060863656621547863968596980356722759135651944135473721750987847871898393721290653080605330234806275548941163387020320601728215329486109935994455301480614343807047483638106677236889771084952660534805708959375554036834057826390338957752212106215476079307580296053968276253017794230837786592572654120171067990897734700275755348749401837561690600117223091465051767790056229700192771016223847485071239883381439385595839950587033583353048821935606127328533666988208450677078158905120639143841645570992224789657774628884291469396201196794499178816422080813349942510340132698340446950411744672834925165884850046799558546088275689892115699802518294456867533630868758174522964780094179130874079185309937956882984398828747333493278275584345272529062072228478680433595789535902131486187955266519480192391171358784026364021303098189891472484976378404870992582028330251112635799695571123800120547268869412289544653473310102656420504409169049663407149625722450710055307514549304601899502101006324527578597250599533896520137966371188137487559065227173213192123223970402078956862261165794526984062171057987693709519440057746131852393010744396749385291702571018703663021392143339183264017859854553016198137547796073580774137075332824462677127192116767465399655305287947402774125745133018428157844025978649169236254941942663230798253803419421749453473199453989572601481547164596687369206425745028743486924092162095753272188826910382915381557549790745191446095662445929342663030861620816455868024248313320066313184684479373778415101402841312303989555528807836614630039551611457760650607289087398463153704816594688805955113531991300782331367740971503892928175710860091418920044088020353535813482382647575480673213725673190121780954003510079939529446899065196907463685350406669012541350862858390369233746108700034119251422597956902184402230500573414104690213894795824414697299333164209474741759164138796706560045352604830546642164697750825022426946999844856732171899443913702863458177507143055036597107920072596377216417871491341719450839368850751579108061631674740609196885631121324111255595851298720975607587753566994461180674577836996890398738622285006231614756833503121164944365987583721516412559607232433668360532741384887112654714225654969385628782319074199810149085200739125734188382225540913710557077910242106444799446215453742727632796443135955896919597280835212137241093435345516443799498940919400013676843404668276676717288478948050116511415036414514506892253287996597839924191117066034410439187674976962765821247969331274433484252410641358249802463670442282741484195070373909645227634307175397364784082281946195830111501325271640026845301484750915751388574441659929315590831541175347270421651122133860507757608029239528771631650580961363123956391047330377263996981351189872003457654066887609943759348226833647027811571666467850997822491850053010190984120241342719167028586747814526144475405999627597754469399028077449565232053861060129580519075309034058279174323157038956524196832245208055582988045894693251503552991930073092068874662598927114615813466536906542064269471352259540788044705111546053587396616563388662634912745023172352783764807195948533810052248164928702956362333617837235608884858468609014220987762510378303912584152519742572094293860864963641608000661694485001145813021662822157309580278559387517445928686994741465192735156028947156126327148127429507478338009436384608704994222201986169906074488877576228270594047550598316363957683543243980938628195881549472426545971856061541400165126449048398509047459761587344270502908292116605768048735576007184388768037302639003326791043818367518764621521353153739243319180902548415927139131322845856215737331460984984847948011856234521287883167699966821853222203302208452003468146017376459376949169051880790115933856058755819409476664032927587647582183092175357926785264251031187648770907845328665630979760474728476481754677445228904284817216452321762103955314950142940719220490365487469856654886554755646044403847186885014227685870865602510916307712321582591332642325373084280374206668204398575152371294658230033166075993590963232502845435638608897479130704756755240658748719090509905340816387920841396087211588315590352269153467919471953022104235526845209794225098513825478316849301313583096940347052714609099362791520440330423171528594159931804774270302556848718282274257644008548424244115045262165414572507415097238583489606099766443634767373874127424999751693906249431511100014401601476561505170899223149684440256392207435174757345911643756175943127514930176843745482652908922554189147987785480752913688969344303639015078966182159205377283672645258059499303480889555955386339797137153354183089276988005285777771167646640512487096754740727782439849324763257290279908636563462024054825451403673754340513462888106782176683107719135716799863035358319767001857237287341054656231434624513141962261930462703352335074741878694617319687741837252084096543192093007678152616423595583093814509343501503755779027897573572402075031229794815130622997996171044909809971527147157230905732771174006378413778669820989774525271197512569354716293448579689042508707214183770929234239725651505971423775789668950229373461403281373590349622180033323304968412683308223777846424180870469195717751313924792150719251620396069988802948063582735435210178893915820821529118633691057538247078654189507975377240951784502936446291072398411502214212551161168688557206621981105649364369978553388489122563700505416269847041958096695670996323172919844421560729890782332465282875359140152642519102718695122149194809377269975026930650693776929717129063797069512309613989731963999710282849954057619332230963444944526841178759858803954675267854982798275782806647948357465466692784450201170127818257728309680228993144343720502235977333801135989185553654883268292379829772528175249980729744376572106614460046890492136215000460334327700467018522148834312326880455637670570354820346853997471708135858419484037115004860781044481114543026808226748254791223238231228116540274454276760079981288803787723109251603397512848777680288139080785908522284632633987802981279451113500826891030491058286281116668554228667647419719930447067653011175595801250911650015364479872492103818574608357486875566055993032562458651159346949229754838328662920601892742025697029446318352881023344299059421418587567108291263680085750066641126516677297505507629338142107368237972898357191450762450403543879207022322524319410477134276835155478697377278664476345830683895469466782211311071038169815520265731817083503531363937907455560786536218723143272565721055919007527485083396245744719032528267490514050007876357613455193758962138171058069223207853187938639004477896864366696444890000404519198147962545873690727582182772024547882289118685707042403452296518558703140593451342140275234091456158297178363371178924269299397516011234754424221319995027232622225250157246021427893671408661454751866640706360960929504103551564625824493331562514771165600189211284974813653922214670831965255157655572050000539686692633931460603034082135569387149811858541961004903877938275642576164021808894418407361909100036851870955134640680915383570623229361181845675870613458718640964540137208754237815333094091109917152537529497632971955461721289694024599350597048459105879112007605169739669845397326940880756012816393365424860200750993334446012007086328117069340322298421561355696760823176885268016664523379782863639134277522263248811304249422137366283854471752298996337300474207806680603106627624563197014592180855389108223062196484796808183216167513386862209347137162385378628851427712730899493470215344855077344320431841759215897572835320750380405002053323009341225677955088681186787035458087689240230660296703252755794915289489506583406668815745730084487835586633090155578569977014918771874168013480543266366943249667814574017203541515779933923432865741886757875747842877302078045519619351070915412265095267941080343942040259860347819403954187336566019794202507624271724707432220490380986561437624337773698247461325364466687828529800000978228720454640473485010092158919487631612726900494333903292086863807794111772285322187970436439329663873752750534625636823423981376889349477852266973567644333117561689494370366408120888023086089409136492535167857594503571621758787069246178224641779334747230923185893659485321683893173665361672103767718332319174399878680748137541701580940203711697054832547964153162466368496687469812016329634301937918192772328377833326988715759011364700263450076647111214047410923772511096458813238948876711743815008662132303107689830756200656543098809758772094029540050972025586781999607286362250101627482767345309184754485989250729983356537651288171140125140919602776713040070944046362235929743100401573472500896378589949180183130159598418842875811613655284842037825153733508809524779514785156424012464037462803971082516847852301317720250694199032047339727661474827897212947774322559447161917656110692255466472179900989999075896457785093232288655173451464000174902315512598461222141860151160674291543105883029721361792830797723169461517527424614692435097783254609809462284020508475888449773319481966280091977140832861358398851079350653726500657495368901588522990772021819900595181624181133787223784381219949688448913746420188084922542563800718127320342271767118038020131543937405299192919404769341724109348938995677825420151633910010693608793854032459495165739510948954711870959289603327976781586784926109539838533362629019067707120070287110537796821633143782758171886589418204340679504216193705070466557145403512784165227706847004711919780552846744869988193140686336038541280304832048811704600892853224356525321249448770053070209500046319724172063058273766317268102810718379741749315149166656723407270710581469154633145842605787894035837148662373050394450781103337756637532927010047605800518440130959001822875739110520638575807090388150829524252005327461926205212143410741530384277456080634226969992247264432861232474637044918884851323516044602685467716656190325957715390925841807284606395113463433158699404603967072388962314427030102549614341070893178033793922717234918779185469903625510939670617176902831270571505347914674146586913902746427654001106108213282339880061669502669854847782570928810014791573625083860960773094647867919364175404929388827213505171483708703031310287742289294689841966164394327917138634962735447862911418109621744533746069115221322463555196161630526903608518914567545930478236014606224083180205473627255672248949465328351822904515635214895636870912555695734169016096337086909590236695589043754401209030628350143822078441163309140169020334093055842043556746115772165117490240678548507425730117033309275650362034854765905190314815733336383340859768750989346824696256003664272036735510281319661282403870685552479409587059165855787856957018564828110217221014819083977211574997178436517335320244651048123856696184167746910467985891779556831282719570880807146106080139275591606322063449545243968727045990142465119635200651739818733925164700297289955050504150836744455988539119157965359652656009187966410051874907839643460034523254896272488525452074420928287489099858840448671677290743114322000861053708753737287944409491483200479317517485188703048617451375830622273414339194282829514020383207292794834585345870306741928187411737103889831580479850666033748983537159037584004409595958448367337384274417082191855507876324835149231041187726123001752291603412944176464653800260991146465196968065575351760464080824045887993056508860055790244178024169601852934181760107778015031234853042090278865842546781921950275342539009879687324653731245522493636384039316892400777913513035553741753126238922085714997800034401694209501282381707833102369646633316327410016442422839956601514867732021869239801827782023498771063936473792565144942991043197648534386250002475963284862700547633526388402638015431991667969651979678263359625445405706794592251492699192583583818840744144885050603561948316798656088642282246671885075329636966977676798751208332010413065007024275151566423812658092733159988603499669698473275493439465506403232613280150110106399464002619293324091297416783863731581697147280487780649802772403991600495969073149667956380942308809459151916681014044124288290238472205823372934704708189029166703286324023023983231363021424333301556894348388614573340556504599353603803834064050229857187011372568505630207588012362399377460542891021562009087212000808144760652334831981920445979937759086700804318926411893337502862208657947233860699350031228117072008896018171290240533363595517728569676360226363325365062255089999633517530632703013620713303329356963727299177614601409264774333861140694819692760015814950463038806831589106837211400697571201544169966541135160877998077977674856430098551990405530809949939682987014963792921398613552162727442221952476860143084294836538189328108563239012642790087435924129170486519155366314057077005614881577237854639950091957488072856238019104080799649947243629300494317986046551386453161611746785418427100546009137488527685687106094685528029643164437864479031467765341820760093931843028554383996534169186302304336919099266485960270653245000128127692907211748554235952271599043474824767854673448112632585136032910943712361612718023538066201989044545615150801996986531666517467910079532147107801711772298788123843206737875167552343937940222147905542717301056258624310348337927597253591882520372532770427215436801723974464800063308781285643120584781802958296424033193144618941247147817694434549996482688639466120740671083398336456268604154498832535001300914349278111750024721794194921555804965941989657789290275892790296483518779396883953603240264016145681132702363739379017047040610343415830216498633571282999430613770602249409966597808721341339169694656705153763243329635843318861483291012368202090550482389388090307560369422035899041689889224005845221206748719813241400193450818212285499705210832628291616977120761843418109857077480322980860500190068668094977489947043975845173287400945056165271067930818286832903508880697480359326619904045863956028243535328817572532367490477374405335202591371666226637538302644873301099641026342091611496906665656814750836199459099952407993281913058537835623033804335603896469447931743417359212101937669333829522370160639131294019042757934151058978814078156574605321267357316437057868903774539844646036303267143121229394746021858728060276678790377063459906073427309404036669919355436689826829185580775298752793302486863258586122157161532975952139028847210729980182075650888270221612597416210533384465842188486325850563466445614351792457613473269496604301369925043105518476132314419175938747090114508444378850217617929706638849323793509161008683587915519850004722558208860040039476720845588085271074553523974836657315223094857124980749079298656079056038556719021589761153300914304511686226615885665797186015607648924080941359633691126146907869002221565796349019696079531109972823461025292573842757144290579273106473030075611000347796568772847706247601993182982468304039989533686928429132604506523991211030443617806647409195671776387139401013258173453786404086453997322624281454275965404648257271125692804764425629570805604253982800343137956266292202796243013071550424753879274827312814645134522495199578696543766872048142555608244840843612221722287578018196714554729097795804841499654991025049874095496613444306630664351945952681576360831360787074611662342743672187651827776276264231156322776756118678526823932487346765632301074654817466410938982320274874366473654261236350157229413319565745842359842546521409487145919139236813859139488142108727770380984545990415932684410477565307710052507810169300584507835366598097708328277930425410897672917338628979242827431164362408376035600125211564513489737624924948337107182426394108146247663912721401051938167067981001087572139072845740190697619684472625574852291519683072480328458696400486133392729511138984055020446636720440969143033011258589205004369489282628036226943703797474592701477586815139833335721725318221490968996720498100284326972643528380701758183666186524370978186657378532218583227101615249790867383271212133414716683131291432927038264813020054183723543446111736198581123114602074004285710108806339225853122800185242100334309612421085138689760776395690262634996081617166140527584926606028043423647399722541782004857341704176651218149132923421319859192470529359382311214761173599939394821481377191461089754540746387310308713153807654651255274404196093053047193246781184927358010633805326451241457470142278267892445220369787755916864755263883079669107511292562437364209667436692579878453405905609005544786698889312491150168960690565006451007271077879273708723503082597223805470455559490667122215277201749044536638715487905585096693859125033710417405804157347706118062035230778346471735840982688163293070882114861446180672187644952656258018621105360962555192601312031350572717669516403095303445857210308837726018849256464798477938343638874577877737493618081096009580734895248015305630511805183081816005309654669546977023307455317474720004792744659567580848990900910009422500002948458891099206810586799443089850558272858333759618102106830347376047251239110190607460076715671582777895212247268408016307329585128454195868983142145082807043030996334131918948076197772189101709576012857300604464871398816731876167046615617411032476893221099535869280336997173790622715925168794046452599625488705340094845197265016587572189173930490092015209861317683762114338339325255541514314756522274383492704336963680168531345679124320158529657274335882032724799220470360932464280508783449558118583769105962206109896230767545974480635269252245356341843810173853678609510979619998559661719870003004090464582700793682369842338740720725040894901859156587567267503417348996733715793198361000983937435775418176819149678933938859459919312755336301874808700181357092099293834393337188678103371863029861133697363881414421199862047405322583020276671653013798381186097599834696731262174607549688098115112493621660244208066028299117867691605084430415154927830960459184004998674117698375246076826365305816529946128101836765116927121734718875206036003002878958865622675997958185934690338974760124491242464053423104261458085610297363517255643475609134253783672504818277740386799176621566059257591881537150974503990117210652140493681538724055055533885755777327159464144331113315888122488797547260822288033802237575373893826959731632993904735107340384028630696878125036150603319713785404808470905305190123898483565643784504956699372219714953782538242092130660956082678719684347708447939960302233734129407775760274406877158381245284720501900960812297010391360004698986750774672622489332480781184726824679290220020200129801776304261743062117479845660950216594088471902203744841447352346778088344182698350682062555914203058969999475314196733375301084013034391228441844990968114321161566006305410663770753594725768035830074653727762268200147122684505249494932017570570573012485214718182009192783001822699494404729066377377167178885600173376403113629647872553189080903497212748732789436693469257532900368333435299999333952878246024257967716461501978768412159318505169782700593202531653351598005082277233723565295221518809408577931474591232363877652433191708724284800386301160856375409383169141916338092322048528297711492441071633076324324560697563711477230708253303814355320003323934980273828026198097654293509354730769138127725939542818288408511011658055195054710000072000122915808731971515823205839737602125196786084470528361894630079743826293664216790005113411931827190378706107686910742683981933699952298662906274143951864759839673257565349017775459151056571549721405899387853954199769398149001548862035101174290977129387975326464625154482434490658548573585761166967713395491626239917523557193809671364606978919720256871000377783223676244907271135126791205538889232779353696471875959187893225048735895852293093198129041608302233389332366331507229524179622897212829337548845107826492162929209353369149874937436801519922793847809458809406507205257292857396181327029996184844458494456952734282861207297257357214099375968321435128566617287889580105065432338127327245141061800383995258576413452133762404617232366273578028085479701372358049313652356693018375383175475876669510405267274095685854594511080962248865686338407412137898715286116921865515562692753880648405032132815278541971441547255646336432181097114638739223761887013693441787911788438228453805516456491447018241732221832047049998247825311450705423235589259100943948271328952096695825643886427955804766881763266843939114724374139391587756328824708107328678271489377011230153369121365602038788673890199033494225196475792902124301021927525797493832447365106494196891843147448567283523703272104048730421222434431785060392230717071852032563786621920520294815219299842396041592905661091826366196222895385441348767742834647145611378016194454744145872504503750551480372632181852730002889112874742351331176298258286952287200317558832309522623225240240202732514861842936002691277783078801413235408096548924333547724132716901667635248539802698175073198714757530151780396694448864388519033373982402197255625655299851737214631260815906780753034305587216876015065019441550888181906989938181798902924849410868021635189531095399238974138863830024135203221204826974030397882187259017912454589174389132466728964484838295804054315354849922594845008261161953275248714865238704873924751355652444326338133058895785168513901049062349274387096753778211995643088691820769676505894509189708065119751515473888535095762210803504308574198155436398880336931338317046388425812261026787510853993824819101311020409218063873521906507288156514347832116672488185750906852954915937173134602445763270239226789351040978347758584096767704542462232807931436237497632386238769661227367052818226872522322919238528023729719034661611603370953470535774035374173165787595717690960308224249026905840837770329850116263815938876465636999180158348054563333521262924525079173776464121932686929589224459581908452993249542196924537199143833884491082598360730480049447708006892771352385649729732417285048678085630335151009781801631970759226692495134253881499701143792968534571017500282737569665326500823901238585471425825040543937229296015990448835537641760325238405306586289382660685515919037526631161472832848168950616608479916255186607909142067782055466685622999819540824636877920528868752622669060706687107767673133606652192448672480752399804474215258350916052017220790855955009846575560921613150900714091432139797957212697592249539970260461264318627494739343729158374477945314673783986548674382084843186784464942379917473668280545921344177455644368081002850899954123590449680785465515251897129298209695183526399350190252912241593892721281703406483119348707314009099656922160921585789747964607869699187518259702780719259380886675109835786140438746192127109139473904854211213733794469889520674853499624426745278973345825062478027510865010494223072302375229744362799817767168665398029658031554604858880364265550477551252826568482044934897059465051532266928326345204556275207634724778120494151764681403692677600798575455308140208702261669863594454858657147915611915556796467104996446923865908211384109325198703566038253131773345787627303846303785890930237838744625960157017155321714294886128227991825408834774506059420594512167493254287949182468705333154562684217458532615309735748351449137747207950332695265863273605365110907688766813781291823762633663348511394554524574361117864821952539771945186184738860859091657061244589797045325551659929471197590461542149612752120136595110536538995680770857365462827139034026745586690054926207774704974911580178339615859381717125072979014853050147924205638651777134020633796041786028912983715906278700647706612097932667975338391805483716889768427691940498964534283794067280631383390857402451449005100241696214191812663809066398852270384698440439728839359345553519227452121023712684728733514465462599505115036664733581777103761075092605181569260457391678314366680754254006346229906891049273103576208020538350797648523688787408623269852076079907103059749734593378044368051371597918919800746545460186668908596819298788196018266387373906541450113571388842685668171263047200919493223814182689785299689046925178115076590263300247174413189658843119928892296711188821761549053255445672666031426681573647543888168678583442257890148786833949034637645738873470046808448925765447119962692614789630466363818755818551109065691420548754700673293444026453244144834742026465590943589247158467749337316220802321490439888876161585227850706566508381260358514015568456752594773004816305071424473794230915887154277301756553273518421322521833711720313970368214077655463687528277670563442837485373391210656681215980789971222872898840896556349482746408488310767740387930736842457188514850371810534930840107216345675254443675739485456877007946202866996619124055789200741459567574551897286425447748785486257635915242295281447785802319651412442502922849295934289379869529063927949497915301702978034756137837042732454567284594573702388070717966484774708096099220982724470376379645313194188595122437461135163108794478076761447745953170211510827575777707530865190287402094777643158035294296337196540441759449586613851336747220781305399309976630824891431062992582727093650341897041543572258574321357136750049844024127072923479278521555584536392411376510958702378998383566197224530646895688376076679743273643312435832312661399713510141521650141500585978617444893085774460274207803034121521213478874883898289049880835326774126247915049862775732010449845489622348191887008067836644987427679726584991792782352367965708542223025015008759810161592092392519042455960966789374224991723502426820793395918337208957645440858680611113301687724390298682289016100838109360806223516827926693892578613028637619602828800456420136616657624350093754576665722787102007426841658032787989307178742495032828151855158529684765023151500997554994356209313490006508765797078242027041355313419499601940041140966575531101115026914510930594925308323780004393159721799661957599306446834836946746513547193199467305537760888047030630429063456842401729658973774343530777319290793514179581930438350965010248489323085072475243395208613126468198323243247930381420922717387055342387175101196813198423935934788189153844550418046989551046543461063813333876570040457522398713783365427609892844799978842558730747493703511333794724406127151486377548304437036687502450661461834898040471615291435022360672658849985944684340118599907189482951048623122009866552470673470195903323905090935080154817649028911600771847360950655623257676314386862812107234236349601839251721906894481547131001151806376554555995099427750496373314134258298043180604008683187174234079125410819703273651397000377327758555507906434131350492631709280621129296739278980545167681048692702503078574517763255449131584874073848028837224882490150789018755269114828127436293069749587966918121886887586196609848154296539449205694674109427291569358803717963157625532668087124517885421517699721604071895491454669251848218897082273338874559024707058291139741189681443631194974681669129452126490372570278189219522485234385151368823897107096749495817183087294779652093876680166832788059856041168327239904794594478236027093914022073300448945224973950573849567452388129767882446630830292023728420807823229135447049197082767339040236793096490166605017145127602667194839132802850462086156031565095760728696857848629052382401173334434392491727959746271918687894351344021050172811758664324642830147440240543585743257391718455635369459636530421795499523586180759525023149339722338382930858395731474625815397640044460314452797922030165515190214718731638796850515485932003457396018067492782692294797038530691891243816908080388622111573132952891996827739817127379940372119139667757871075487213444141974617059117855608271235582226730073982339728248478771964259769378891826695021822690901535860113367918582156887956891907290890712236137024964689106178895515230845317509682141794856371326654166527269834747074398541968635455169498579381453964037691948792054741025365789879336582292661920646084667693029211265369457783635758667277184586048490272242927625116675698561364145935219936425700499903994579280072487076531879935957220727396826514352221859804739981594494650881418081665397413845856683614921833025075725349275541821736323501226366805689520932552436140779005225121342453041941783239748796641174651140787888253522453945759012258162313993773603295092333834680267090781728910473754431383099243277655496595484963997607807541425326282292118464735676632459818432621903850534007345858024481792316521906787148100210164944331567594325424028199253764890721869263433718179361616682362737797850461060398434517346728391770626873019051261405715974624293252090162515087860546315391692455978954882291870475676871053097429125911951201919204228194398699813029073420505190915982762988366966967737520071988519232611352954975680024189921108183884703013393730397595401682829813521909434834479684253080922339033321520788862402158375056419811465164376444963015801141502859366238494880275903742630965227694893438784363306558003487870617959473370059312578080283833515501859375180767833449331455758016849399087006708626784320509609094723508098508922181183681804327539636734254283302130306503163288152447310485827142575025260033219823458176674856464919103894350885276547637533508442924208411850850964298180026791628553752810252457735081216567278854649825235710983390114023403104576227197819138375521894051820811502361162580105907463273249177724898248917229954085456158411044788888198895914851497819874317782895881888599645261917752812375626071279915519665514979755073533274607044401478616954848517048638929341835077083394612814188785636832054021310119644274341218928002150506167239872065611413331210737029796984891140990144437175476730592387456115180243423451251631904062278127671113001328089693373513782240436042714194920949715847836412969829449489209676463948860491473794818338701682940175096142369677552640787607737436878270516539998125471945884105963415813875475726832522747277611271834284790385915648017290347607268684851634664450296739189177389223058265044037936954649734045017076636923972753798798793752665142609961134395659131049956978259724072115571759437395442320087219777444704086931835469203281309953555757088187728489086442763607481225512044746247572353480842842349118739429584907423730100765760643759356605373424830575165469635307800851281574344677363714787043391204657896995705179102198074451844887366041640670956660184948640493021322021435590593096628347993034657540321709677729094705499086170663447867882425558722593115528388320874796141042731274584910024419801127698148315081399855676900478456375462856968625690887634879377165581984300682719750145138371081629230904536295333113298731234789522620647535551688970520950937146063244629881201587950988274352261669326874074275138288825757697542329589471619579393760713212381406479729516576145082671284311471049718586221007931975829795437449841248496953688603346828843881917767428558342428928226612391404559523941828601210612255187409926230500261555777067032734712348918669452515903653447355024385734202907706993537584653606953718682554738635494215970190600547756985850167651208652389243492051341278411447195675127751146981196247212457551056767530035018086335069857975458935607912922306239095983401782781757825116622114392903463752282490274050067775132154100274205601914544193749845376943627111844226927122497220838484358261897402582014310435930126757715683995632250850569021793998338243206762955917836527494665319483205084618859306107905129458269957701235543631786786806660956805919812937096785211205403546380441787248767118186894067802739426099538923015740961491864390179663287678035295447761839923647959448150887760544969641823502638377147758187063967309166046731139173878104394611227612617002875034888960019379194333635869648238568047103060950421668593073565540034780924339086067157076936316189494155498283313780995066172251303273030121587479142371679903712901455510636096797199698492045633413710894017367255594623718586122264072407904116675378490073956670457146988182826217533696129416963387060273046517917907503074631763054850773740828540433099234337157503112279230823863798210165923140150805965915538271215405150178943857139728383984343485605946017748770997480548481832752848313746961130680993240801387037188780967993757804499174981276494263742021686370399104885350613855233037700869350593034685255330976949845526749148410412744972503918638521394117120925437187868737998890348149979840563501549569963755085057143054451370516833265336093188320318920503615099097510028906822121716138252510127233001013782206901074856918417604317826474746554305126950733234121390427203709153934768841185019217560472461185694038557678743006644269304764471752434793862694215973247557836757215554372838314040695036649458044954068391636005184613596781868374151519785663104388666218702316218896546772274886984483063004343864240665647869283893946033894699728279780906178244632153217000680443195745887844773998429050064007076987668989150538482919067551554653816895350624117318835656452881481122005675771586131361326169734616419629528981703245085536887137597299413302504144455551807245427186874610011503211930650513739218462421909900887043514277572418867340790974151787451775874198060765970874856161786236669164890069616909710302137924162055833889436267121225711645790930747203531109148300498551592479295588345579027994299000309345632871603113561568306854306420261257166334522904347217059044064861340782348856317313558359373106231079968719544225125881557872749996792140866177930332765151985799649210822288633732140739036768026224343134672914622557036943848767671099130522346376270750400683060873261114863460432895386562443178176816938065150821462380365196518075097679436838915546230667696931780881426046721649652117633546388850028886935369868623153698008469677734737161935245829386298679392206868660740743737718879613704804578676910363409193534600728662937026122628056628452813429366634028577510686513940780826037207053443881221309418770465271837079333662730614784271524091198314892645946142189472177229682347171376058026330874990263348716569459110188076936494713511716067196452824170103805418751607665673666848596740073530806196960412189751322832847594719452001125965605317556798495852857217878974563882794734585898659067780866881708935291536839150851621002315685506240833047404507812408913908697387741735436538669376492120561467956972715599660919795758561384118865253380689783194673812370584566058016939590821456175940085283943730105570486655053001593005475502453857773986388881822871359763403102608282449694141270871600714866366036075936076890261670185774687146008653574206421681897292685645828087380361437740162365216766971102626576048701720314761989296083099128880652127514037820131194302534260094487973894497501242792155090594296457281298458521798393692268129553814609056209915216959928447936531206981039052051162999077045227907881913809228930114204795166405588432109409501866603140817487241008553543056391007327827859444655063518840999555402291067870594569097030754448603499180637891405137401402464703542533057091199505208478562559785085898087674072623754262180004955512268595499770498019668765044553795770691529733103020187724156593896058308644251959959536524476836309877737550805916406293880427977348345081092911598541244896788288820413894220635121464000706938257326563320031512538234852091561053160562094896404199686399667092725820409210885247062473638624346561723039058424955932529234107224525300714019995845107534369089810746769300618580231280489184271810558226127051912803073666320632702125839760514542098467870931966103057758506440372332467859536736906693780896040567538090776957192555847774451406561919220542718816916943777714074701249639237977824658845286723243417571934997128490151400643578199046342012645340556344846917271456568514674114386757746125810999432927960322514830271054062103304179497965686633190413885906271416544817046365869150263554206984557184722560197740311469813795870368403395135538811804055323379765352678698448060488471575979039352853683990720666865935824639923896150504238291153310965175164898319618631662685187675804667885434953153902447813057330681052492987415607757944497822078334990088654843593246931268040651588998642112126743277408363003459636800703028698883929537486751467513034390128350107425592643837853385588663787521558958251607143908897128862534611160769146375189045523180417353498909073612597797292913274297905077702415548103064081107597514636338258651457955764031433527239731420661480158878110991916446729373216330428999186934959164081831588915113947666492229038006648810056873547903014911872502577556600871998914025640837664498740121699077505888089042475391792645791614625066016738123193815679998869908321428971985802601809941337385873222810878854597332562277910953055660721151915838759447954315473489219328742453618147985008270677912081833130165240735039867358832054082896359930129788635826691222316746601760876449971181745777524271803948550571637285717208253813457825788367722021857626676865938955665739845234605002359101927851445466290982715277741508494281279535379245683329016007052375440491379655561259273359053261507503685561863846592568754577930564446532999395558032501908736240096993292636934027220888647386217307106569064939525395021401351021653677766681952052519656388512430091813215797527386841081403941504647732693973707730520703776115288823305285733166330561977016719795772483882083775762876069502421302031226847588773763099699475267376719057683290214367488583369331684188614196971435159414066037617124404887834312883158488671057306852069629341584928198971204792690978663873819246205337989224911827557605572998383659345652031939712051081614965887426260273521495819093042548384137492253711960167418779049438597718759389658452342261804611776862929338919272723086077891857122271865368468290136147687253440329042574804406382685650360433122888865250172759411123468479456999539908165826701182365799053696662331963158721974529264699755899406898236486699164291412986819754467847237556390191853606162158732360590195332002640714755648892050094458068523410408334234351741448614905369972858779593344353762015467063559904764460786052581147962463154763153805528071557909184323056874936573005287265239781998876683309145954374590440031782911888339053916616433935278412826807482614296930689523284166453292175130343440503994754191108370959184156328141305037647123924562934148999880030752247509614110441716843241822778471360942581139013471130464539499909013873897014965277122456299553335306513686655606793238113705612975737274890695598959319902765586601211493438768098834022189578053040717019316995548155728348119268805441461327226301513792776506005876844531528802658151733497800536268974981516139745162056908499571713643749812054810630986923173782818396134356737759567200394206366178227036222934290457324821778335711093027431341395462277346544962303538313647677119141111378715240224028940463543234790369296243440370046221370694037858556497981407954287979677939407021158366096071332477560795638433209237178615920856608470027331711053407982473685638232365823088581700960716275613368289741340520017037517910812714614342175506787431998988458856308421975204989702980546711108062389321775500648042512000608943259160687716739197796754922677018277135162767855697182582781769869907092202672659823080273606716669379822377570002162165152838323681213360815096734984968561320981288023188338433416033152139289889824946359846055196645902386008096371668258066406725627856488875595629568445067458506387740520771219304706119130862871519976369939832946836772247777414170089603761712457089446336276961753815924858914518811518969078124990332210542355511607892507749659111060200342773657464135935573054925470015344908238304046043607402304594942133684483576255417957665754245128655545908508482717675914035947951945765866375067694738799948258271059920111921798662565149158370702162881810654629928451910492720265950677454380371739018407659169034431744124234191092479601761454960342275404294488938932024869605217631044013571640580998485815414432288024789714900597435314271786625208725019523386140853421419769608366842861479571282231316997174136659117350147383528201152323152511499050463919489166185453726860369986975567416927490211246268272332233907004534498493559922814039792480298037506967397623156364330060913087293194626825427611243569153108389959509337149711876120847742222474685821039447187558444572961537264966663078127570920738866424751981253637117919050426779915674786079236646316236935939335110904431736263290279587461974578894616844976034508645824718971728169686280333162187932457524636086283815831006771625093542022194855429134779969764606327415580914276108154617601042998628787340220115823133379902055001827139393626143390160762373713059203885811694909210032482763753332020793867188750544905469716120771466376684295086701031554843323743733860934650307684738598954043064181128777266073218514378602717975831050435288093859366420643802503157771957705181203766282534229222646504338959029912031360203166224473779366442702845004407575359253967656241953133012309335361161118560666770485585167868054536855596018312252626059411221944903780110586064898726675615993332291337075254014713007366062241360048037923602875760190434403136058821206960082955279444235328979906864348352351154138186910822742060058151176110414324597388263724388466415905402577495948109956564798629070237069010015174096529536433135465910931503539846225700782862840438713785297821131940154349742764926591080573270663648629741369582377737517145846230378677686457953686101495725899812869297946629666297512975848199306512006734213340462737644025642633984259783839572245591467084056684674354602434671984141706337149487849900770094555323673357673962923152387504683956561754042614234369386781951297557892604476304124593547279231801063137187806945274355931800261108566232156743627856754618550910169148286474392468477866442160043075146686926510436695310733097609531372335787726395577495995154791874015583096467583186607290523552650079027591099281641276777197825353033943665425660653600539504393554265757236296084392873199432210800312653446254115417080919755653835874345115832057764558731950931453611837633371697716735930170707506848319948489196580621743922820787835030229078973291925229719555563886289006594535654943270475887921241193517699402303865927661042567203488401347789291196788307710024728020327985772171554506818191130925451288341393024961006723842792223375186003466907498795623656276441676434553375640305645719328426502753761577747712417376330725197898399109818758782264387665577043326232890440108444489313484111702749435268435552001874145495072748717349586210983859636038515215575481909158337861341726562382620379850377433753601508751137803932632291529504696000543613803736089226355189132302886125690617992240360640775505075459893557348688400196866565055974324135346549917969476840334465529835225078689057157058554067465428104411446735707094027409283254440128854159033296476617613930907526096172450104345433027400349518985957562164465893347103233506382708332594820012792150428391494425893881694096533127888130596433982947501656620251116247571376413654584144645301991000522782320474919145771500098608521772109472878111733273363744204979416877986303667420329740893438697655750031876895841319863504309207236730489706609762611981671138915191541804342086577820775342321616099324510432100258153132687883633033057137029285188226162078684253314674631551364600938241980893497846368003947201365827132978792232157687064457856358805633803331962569602318267285628205794159455048739941620151062955610178816206273837129722825290889781383610614534712843631910439459035673807218714506481760414456752322761080542941918171771899101090763752153987112197588784239625901043942046088630419455226730350150455881384325690828602946619657709352182124370045722879792555283387233978534940199087650267001681661913634515444474614706703282064316745528335516805380586510410051507170033880232862221152061713584177914895267324632889284277690880195169032183505103096950117867375335553678672685442122691031700962330663530030500988740928804790156268858740216265754383206203305067042154564761972046456765210251403243479933357987810893260434772755926888674579550533311976312939024551056015923651006336282852360603288546525866622348709986410287344293390994717946171670985550366344960968127789377609099561930000821554356945951125626736876376453844603023182974771105793762549387837159079771308006345810028967050663787007349364413220077833753495545790429869947936298600270681358175302536875455938766953854265108067154548537583718408426228084733671569395357187326233793359377500493821895670713924976655363281944631650974739857283137083170669639286149304774701880781915480480314663816276692833321290167750985389269859686957542729520264753750055276395234113231799292260152407395105920438685257926296345343499223773986586609676743592673711218655221233599981872544752577285129995530236222497063868880434644681305751816049541839769202226552462147083980927087382341983712821051192505041064230733806331021348335965041321123072895103566158256714081050163522112768636497037716911352884189620982754366626196686335536204381313217131741216565861755440559345878136605696590540966257788349270935291070818219964354129144772397302984706694216959364841902654583531498622555043138111047986071084882799446103481386849142514804203571788762253848162824117797074544026062558458142685305456570809995275565017958247995259541693139894440693929525881502596245965838314487881446327724279919321177651846947039103785184125095743572903858708515565269679353356338003859233848163867466668279531670434016018275776055115354068595510970080937669547894537486808707405356914835668404547800586581581066077463900273422164006569722703975065909994407886143072562224043601589412915803995076793236112308729118553978618396547467640687505427458453145945483171958267847374919616483651809469005032976086918313230952269820573369226821890669642152619581746213873275827562647774642154598033510762988325775159268809974026310510373406050588058427607991611639206354855092967044350843825901795834555188333916644597321432853046862276204379595053804388875849971625336675798190833116876881570424887769169384440723129701236013188108703359586657430901782918823357750565714848600737302021254101832548165845052462427488451994080406875919578555764887274581786698075090502192849758928047258888107728949712734901381600576655527027944372817263486963105128966578128579442738086326572176840109093920459401123919641854904231283522062001283867607764891922647348986072306557962869306824968422855738502810622046477771579997867195457373364206442725328890776377537090518791454580069617026214088193401475543917060334012730305163551820066284653556838860446058638802415272462839866753527050835584101660637962714158969524658299277693017717640034697232946587338154133722536290309406503118311362577798610712278727294326258103771503641258353498756175656045327603986731053753537760024597776194393506735500296357086505455768580937549731527033309847562646762952523728221014852697298848731765441330217522316120317852375015164796032500278966074481272811520817676245429419026130121978291926226000358211907783976507052737964572218159648590476851747390897195026846713636186018775707256327872710596803308197437506742639630605924787837729763923186668649857768258555189684658276225455457277904634313954068041814014510310725742955254901277756870228586926921016001141699396132815720426327693745228941807253687767021166900188953967264308379887111102506569336977112042162727441067368643662174745874143329507453506474138932129882747174393790940169904332525994634971117680625971924452505974548909025092091981513173262881210973915226292245307845823851634528163436490114765956515134117432713882119305360514689606730691256795293831603124287940965261158266676617571629259121606915979123392653085062967247723359243030985319467423516822956576583121534225681028544408532465513917212217429747745520597137799808878581285557987091623353683808549100621607526788725996458637055500357435002748400692915185252607379375477206780172612611366220461634818019097591787359811856203339218650592066802901366385783669681066543740522857799953720639231324236519238898990908439524468884719552614952231551319119034305845222889804794678706877213484865246087093143494106419696189918092610797619460921511827476068054486961622270476436259802720820647819845269025005292626456408895489253155467582436390239908831979797099712353477448208765932203048165563957472762122747068524983531322593154062769630097113451095685716455259687483734306878320971822075930564741276134755301539209308869100290032593252044884822422009194605061969863756726028057539327593204955342529699516518707070217536298131224386620286891777520945713584169071209386368007171965609497163116986741508788620829459094401481742902733139371281633115354436286624588212161784206057076325950160582105677686169830284143444619284192667171345361589015489689443231475579817010491368000158329971067421085199957877411189079036783292822268847342528209344606377447990350089926338948389196225463451984382208154500235561263904429078366176191597946664625035660531213196752226050081804066280541120346353225073826651506120509529460645100998881690115131824207781898135936139647778926657152423771463756379176385986878184360026577853232302841663780686655922815989810491400885974061914324334110329268181262846422715026039663446845726756839019672711893430554398695902092804975305152006096241141414717077698127825558663202859148686081489551175585673133591967912047184386939700213858144206372468720895419202864815696402579136007910333002128812880243077865097274549639522177894881069559249750183152286986964287598400395619893041513631596099571816995988842449318177808715700764570832798693069337009275375789611275826901977243113098144341432457718323304913311679291194479694403228616839773015930696087738054244345529456855674644606620090917037688695191080694251867736619230319680251571723220450890763267756071347214036941696913877546053795568552455369784245907281977479502669077733253054192035273334586922339948329943376488891926322618070192185424854386494260626460678386646822647936023918647771294471928911318318818251026401079064338918030657889423435171997950141171286233075564478235344194044712444604696688744111885998966018017090588509623220567622227677144413508927367341187185760579505527072170965964296979495261572735081402565562741932570024974095855125472454547018597888274054087053840434968142663616822767525397557405685394948324500876130869171430990171859320664466201470569822103222454060446469066727546905647756769173063985167707082621508314127496966910440014637231640336055636188746809218306906154025765422271948591912025140409330644714202969231127170188461654766844612336540736069270610318363099255293144656619675109351351188373754448741597935087265192123207541383666259866277983118503861035989964990544806581474879728803705331182597162623909083756386561911096351817215183378947843143368868082348526035867407142605856248958733216798308241567001328307356277278024708300925925061512685949052852069250417814474977150228912632728809319220390942560922260995018301389315011011323577365380416963942900753003914354503718201150670306800412220229590736646147351388041178429596548674399597890550949541252396685299806056223779322257355908295542268596668407704427135610741904955066500758283071207487414717115797541174447346205125761615613847763528355430770218138185172453564780254102725276818089361610253047273721257027712385549071280999154018377873828138055325192917249516804946516112889048348614742193451114870846537980354839516408910916381135779810134319641273869850908586914501099007834806807425009621400479878424565621701028187528793492499678870844058347737900876602075088203600031192021298826988168554902204187029849431137614093047613104369910896467286703997394035848026836306349649463867833742932924607885706168199866342014139678640567816985025490664655274485796258667146231807014933755551547217902028110423932084007873951419065188151967319087130472956414462112431211285907168335167822467961283940498299830563643824883643856565450172612124763050634235903000720951191361217866123164220238564349503320194966473746512159481765254492659994988943469119487402807013542124254496443587814844204499375932585658028218666161247223707304876304770580296456164315224539058528915023166611561519324998448218507926684471072176044428806608066386067972646904440715265301035520055610290911981208020929829483780847280271622031451505722741098028315499509683696324032323744397455500273760649635495934486619562689854266617971894305982941257971924826780741702053195779277175031097917314078717952121979204132669218610464554492608221403110195699681441592500870470233646265507202525190258108076280189805631391202644887732440044254552651727509123050886337855981169521256233730805532678489475312487179759908174255693849349130902599890643030107548816408973876414839043300421035629156804132619831355162504084066911555995566519269754516302273366803179521403659745394631735252512145723934422739068191834653421102569035470363409918508370213460078904461624424514654815943551132002863660727965483910569293079170372608896955079446504485973828221404551505517806599778523842462949765722641623522330525220400867129901425502034987552140278586582667211839685325789842784485723717610392493233547263296944265294538294873442119318588344151151616643167594325812126036743592887886570736246156079141345581758365641552690284389615242904623294008610852802995188684770426057683729323690003286358632227413307459438716715537199945022112061434695809389393188369737633401487313371989339749293616740276859922097428221632955922381308355295600599039154229597062937154564958177698003298523639732230072856279364346922644972325905504947623883111492481693999414597030628898564722074902872979524557300560395417277421301779229326154630701754164724595386074684163073551874473967457316468177846871761195952712926179900837748178904659047651938920092037484207864124330327033589562212562652534370053378735582212215821172702217190376041432497431841459844884033756337633656115981704998900912217543978683434160935939331763693541286302294387122208574544167250366360815600994439553087241437820362543472851974816724758787862616325248888344372554325486503189342084899065871941633519749540458709428391982995225870165314612343408587646754554878092680203583637602416667039767221730680955899103099728219189497410464383172967994444541692739474709305377840017736869265852250690602893418229992296072767242483852791725339230992635574193351191715548685609464104431334594890195266772881247598710758472922302516839004292086508633803077078810130468172473825381102096027836170813423172285689060054383667699638669799532394406473754549887866909015314353005585682095063999424558976336113782980683587852105482188912978489576437434374573527620953438373593313200676934174710557602242848863922279936874128046312052831086039228611274305558990308517387189491772557704995096606222840770899590611452453821407187823918985835589028820233531507880585766657327933107096104193634315471394356529725406089415788034246513404142385547414385451229276978537736024973835085978725028332350841266480818208280472608709616699046392838910236304227788604914917298119078524973986312639298082848832351509692426426935224985531543252755695631747785231486805733055608922969937024145212801748050274684519271862151183420206263861723794673790242554507331420319688091243115750543900734123420439644247518653285656956191534142007528162171592318081064858877508299801263469402462164632859064733525100847955734583667289719654360405796780301287923021197359268988230697102076696022491624797866590800061863538279513971919086562376395196676297073085327437946006497766335115138296681528232596170411924207431219802279746892040184476754901128018343519605718608025721362069670354959548928900730329424557999175710296992669809697350487424531195200241078885320798386314998856757641241576427293868636987965909985707745010372520316896197843646832483104872394583480099905353703176818700270824512777605306227405953533059702003449860544256247176231555776828878536421920269183774868767829181578792348669492271781891593114910907863470139675750175516609339356622711334098899495552927517777395579072204481258902127580407245128790130248902160055181478590389085910627210783167677155611940181185137487092667180134515807537539013609850822126598026651480354603879927383248261008970338989465945341219716411319506619757593124223074218517744981661445031256120283850248103936867882953771058590204160837824737526931244298615627443008559699738902385822217670860656947957725974522848924282766107395578565893566202711273743817085204444692178140699188245424317405684696421442391388270562452609600876325664663890086507485071488793274412999199611999785107026369587617479708624798887121249943481536118338936760101970491966401690824346648754129019007558955270965482318717540290399911886387101728152110972482932079516571503334701117368454140901339027808635753630910481893845397909746621192645346496405649813148847529163643590431498659138660594583221889965380058497202877766999675907933485971480541026261810331020441721637820937712139162097420504821664055204565599936247168184879904320822398685969088460286932103511149285533696308525505210753503624483076935206265108123507413695330346100125228435360256070226273200568141461591576557966089378093230415503356746334646472612588904210454652299711790780762761225919863927218281615266190440768542042307373599484308655719540591941674430727927433555178835001899805065335869519413930286354968357043927335097072160083506989728841023766721009632360544532582986861065621687837761969147753583623956209011517641668346197109514046544240306513187002481507496732090258716407282178463212797528315369911658287484290481779394452033773776781300559138136352122354388691104727684106909523345545188696055095468196946611535389942593493659306861987916481347699868556442367605968890339529263062426897579251823381399825540836262281571919683163872099127128010927027071594867276837117859267749484480669897548187809719050911401728371029406442091921559063065703858147420070248628433054169255647753534679269361094312689437152221601580122060948934219196665006000817839684832423130576080917077570883846914304687738352440573703636037423564800668425975091523136498456179123571746157011660544998233602449912763300468152529764588681852789522781280693105364108266604808082035686325779430532787705905573632209730503295928799724010283873087334776791853289226151447656575806745997983920954634344082551336715705918227541477338819477964167382913093999025888190187510649253109733081700653533623781697806464216009649139199633147404742781464923097293018962884666493765330318943369213695548044355900328862615567480108229886574660466173247723527424031591723320642222770114431254491598492089215367376185770210163264031290808220698082825540864070103411845052683116864784457233432902522724506160035665159318898380789215390023664449948920496579610748153754514983943452948994477498488030917682035333557152444975852168656940859039552783364213283676677811870004465577212058159309815057539284494450661338462231898635489245395213284611317539642041193412076932184077427203539545396320339371554017968343095423817323133161065861479074226068652633981081825736275148866483811678672528927924226539650678240432571713575662849543196618478300000767704078939193998426214411233713174729425868944572353182525696434432255317408897640508343769702541355768065896125699558030174078903203565514774559241806492865740154950538761744152415738376976695370016395016405140149984188070817014779172180736465985868609443458534834048740113164836377679120149363053713063370351168856983957318745971673097904481094247263218866249607259271830524380372296922447850645889016697526145949538082516047387415866771623363269779288001619155746893672859953018735943805914175456184498660573735739432611116058604029193298666614611769322680105795246131916234712361672378072787407163494796272233410979054680846826096296249281121729030196611558090462496120836140165672967471353698889808825726888899101539865367322916518733089437954390332651125596935257351200892319143572906047312095065563357468892852192712574157129624764859037568047638404073419876777537323189604065237670945175714516980031311103053327322247355616527151699699044916521626125928353838850766953240665354884246715087316752109692126994680790728833090597155606936424369283564315645132217166685214521686141530286931086742950357772707386311978402001126708923164767850787154673285605894034502780777147942371431897635847719028337587383014403526001480949379732810325253318629779310042452956552149781857237311103084037257593517952640504984454739149052988502698346767478637250930878976011817548191593219298397409670121884038088827555061335021857482826750525319741996509264685819079904500118414882121044812389753167975371772329088170908071918689949814040894221690345011561858661287876074442689930129386929515439257410469441483863697950383784548888469726240338235457825524582338384651532387786884320718687636791666331495294620108776472368259356440882643227380546396001701988786547731145377903127525305159346525453033051383143951168930771432300728604302435501057291715203895990925748002399805677014535489276082078923537637582922475678761585698001263217113207110337059631728735804664107404454822337765775783610860643486138273315862592870836415359044459239786566869238788785374253038817871834253405005117496303815756380098268764607102964574252332266061284568484137187810942192697601285538153811237349321712751596364986239885870178960042190430536406857329759722108663511475278903980461765115795266840083992977842879188535446004649981891370137582291780442928980600264370327432655866154819061627244896811365260090705947377768874404996980023353013804399907488930554612764673878593917452704771021294741404523273149401454427685154646009112489475747618153765181538698207921095092277001116621812176856014965377086527568106382351876129800663748140259142394857130037521287743084878824927185134015003055196765889333079820282664883999927848506688349579457119960444857116480708504034608274093587272546334133802561126401966197804671370156122876114014560603766499932253028231573835562136084533753746002599827821881205671621467283019183579318314002673977844374881777791398561919629901045722839268752276835047370153067395852505439312620044102084731713236301993204960215801666944596245956306999248541317591296682472202676324293508710598315843805858900040249002196988090833979916742848021574030517241731598671206032534126294375161320150014835618808051560059663565904865678412544379849816979628830290107446591151468390802373722476705249276469225446733378561447436159790101559317184116970308157300208828186552603617894061798084173985105462132059929848278078494016610303167048996469150071977360392585961327573927151098466931714914133246972475419995128959975422423829370372975401834510831910392579062736943993922189870635302231089692256924412252310440581102003497519224078584491916615028786565980141882042749667904428512310894704414794641091920271079089657160888926584373079224328526085572698880459178843093290378444208593430921831098174318882750205474777948780224482736503143791859836524364946355077361585507373181578231468294244726298403054781172193516031843989932760187577405013798205629321584198147500099363065851890847467939463374846202750162946788950013996758685308228213895773424390437728292474541482333341438321580530610399822760221069896741927751336577947585495112305509674159310537262121794712109343005936564214324656640925896315993080700803950355611949571459568372153850420876810354786932835908812426838009171034190285675307131123049893062390703550858875714946914394287986098064517858557070332582378853979104230854317586232385847875504497849216870142895439869207083908307801152866739306032220413091815618062381994579619896730790745155217265353159745233918919532284199262142947924662423499545223127246202023987263211263692188845882654069113747876216055990738453214589649404339253515127490759515405092376955884470395815660131717812300506209024309022801278840237975914642555767275041978542254019460896253509069544658673386856951801643575750102147697421486436043268655032657115256519146533409414992533918558330288952776138967183349062172103951941207679630080457294443710923110619736185782472186994662850862131535879881361838552866387553194736892624008643633410099970754100057330633639267663917486218268130312833771669083476874961416831219022698023725511799565082514727525086311106227888849949079520305886462492647078284385466364128969011124275381947771763092313288158362182826182240888181783419211197083360323363450353653744103639956257015725604090709682905920712034758390892484984904455422332380930637744988612297938825143224343102146965653569697827328773185228754076356449501301549977585726379468016512670223711992927455882829129823925832727504588834934264272885687267838670996323364115248924621263161350499355315983613989701385321464610665413553076990479967358867361119365283470241426430247463960764570401679216747896402340912931950987033094336620103645319008841050754296269965267497806481698967080073537916732588908812547577094839213644286930119606777531928663580079937622539203690920784665731119329426826593588717106821990297444355645366877201431521905983401558556858872978197486974431532396715555604737299923383128775436664478234732285441372559947034307519086430429006044515240083166190782487956475637682995908592452381488570297569189881275332249573213279631846785684157819586304689542493079728145172867547198219136291783417671200563562952813622911625193708371071976140649542893248049511708197007829317124728627188692901114858054394528913926987198901852499723960673655394425956761849561664330756635262296946328052829262567606534206402095965823065716238474858765924546352587043861928192749447636753214967878883255094172949954097954418073197623165583012428047644984139804354757984587749143460499271391678736530404687530019491496725136849439076744442167317217137773850078185040742997353736962727253485795265564601242119981303806102407345508803981894975230680758693300239923252497743628736749395792605130663415862643009245637796606996248472169999659626810309346562367916843004306521499078640379192690778473096373339955508719812959619613850398054671486238835375361652191118619850804762550484269875479422797360417640082740044141482326100686338312485724382843725148694325860481229601998662463539343243483750304401150821182692712996616912221257319811959092605826369684780064232898860430595406277884837885497442529177829307577196181312389704144980637963641748563832439497159318251307848304247566834315758107434091949982058167502583036764181035553954779782324843966499699941765566380058793355484857998715810233132778673904341390993830931337055924915513666052583094771071691729058594958564443195791399515507006300097670093084322802047207216972270135993591130152004548479835031694357827325882658182388477205456490328223266930036895999842912447930020533352377205209089846101187451777191847988181005041309912492678039412967037837303275340602266373315910201602852298155209204550664046418365556394021190455083780532186527918815944658429655514468656789571247753690208294191429344229123675615606519552883471226517950107528232612511193078240789790169868063158658074859061215785720126267943028784347752653754776485029120994326308306705590353542326215796431095937018370094436369857270202264269017927840881180916235607559237593112100676571551264385648115633584676872237043393803290507105200609786776027778537801671310945878052182624076427717094681183222293149580985466357786380264534460477543165140043316000808582686984285639839613021724146486335661049570364855433209578618662564447582339798229211350318674610404317991347549151135949073948902566523556266704043497018483479279679512235941187700665479372454136580827481418714698904960081019648669685065913792990062063871979305039683070941644953966378154290707895237772908139229595542795103087232077626302128436636773527417008137478515803243242653906087122492713370432691517874124405476621314220902659937017346235846612675637661499738877289174389164534495857515520097821203008330865581602862582974083311457236478037699789104051965118218881390955420851333085898495572268473632973299155087520556268201084316828699893866762783566449535754713780426040636170286531604661466515054213959192832938387182234770257406889197103227038037788794924160695387933196697651058458987382716175241032289103743302756701898259591157342094160528214605577267570815164627268520050552381107488950518482966664557043304093402778053622049195075253450486783898908344764883619816897220463622188166750751030058599638828351644394379752224517272336636904478352747524267649668642532244185299668044880167136938736464479491062066748948581623875392892790364510517037479327206496540268744440682724158337729378096159821630564876248635021768293976059691160880806103114278045585947823373610433139027392424252334905127283337373056482762035316203848218598891201222559685497886189793115791048372435624665245754679558957683793302835976777780465753668601751212963751134738812160378642231248300827471018148630655557811688942617653050516547258734948608417682145376805262356992454587398058665625765404580774173109503931372182898253901852857634373643356738538097792468539247394298902414718381941379227033079390250223133986336023172586370649854055204143593419162521290202197719167981731970667604750483738538241719245937667905848452771320066642506713749386157751359794007495092865824495928315373408990118284771935651202633051051377444602346694383205340448328747567828163537166003893432022298228909021958456132461974966206230689532355094140266932216713340320002853728781762262281975588084361640103263163040735414644581846662890567633882921944314742089176592443917482586688650825904525086876384227072236749100329849939878398482460330884708962581651245841139151128928187844185118903319188276738148129597159461122134279786404186461518879736941434147081077398162950726728728038911631712720146593561443837059959840925610819545556945136662961289388879263081671830498772777691291398473129496141205810105325217486855003423097333617946038030013981412460869291860203950799982578418981218106280886429747990574233171205766673793524792903462695720639147601742422091867400952675419293987771548843295968608660036960956311611184964996761737421133632194258746046185884507974890266348883499054754612603816877737034792575512431870126480337624477931373342623932506726053963673614750063877560319000574199700027577320240217934542061729530145565763563748232020988301604843890858741203057576948399713398857017239429923286629188169487079015330574223433546624430473735389035347961000099633892639698202318631301574794710270012446847520661241023689215812622128699763343646095974962014762638961655805025236012679830443361071492578736783416330386716344376645668622798075584396585662016726251402056763735319773961753568406391488244305613382223444204721144453362627822653600039787388423135767307589361485534328828806455843423084359577519732450090094776973319025356960365546753951226345573662361570631959590703851040702872580077287630901813635869320967460329590717472678355657298173063593525959311553766864995391657910992556952186602334217209830492909697422815797356525881992399360529696478714404792203287754445340877424832332661056042274462609228223594334406813714385319080827342164715146186565991012120032880792365193885779222316701262141328818345085394207105263821979853981158310934310463840830007102426806581539202376927032269892522811254173265631605103999919417162617785509740950638347005184819023255734110935396078576089721354825423112357576197265249388334122120741813541864629156459282345065218545248970842819315400921922867586424246245044383882064685962441145288094787813087964466585098924847587359593777363655825465201202667277532985429566056796978348439449268385738376503571810724747305179835023397975155108993087545839518999061646057560985144536460878415942666933746751743809360886297643235077845982414720710090027740774657165474306202320381931000034748818676700328823740115342727468343037442308851853033436679324589624571231678366819437160587098774987302599822814360218269278377850865163189597658011785892405344524013945691026904199429381609732520193944126847198125944757353482009943207251308436865298406942504529434951225244418171595611511946610461283888299727857904126376783403698517834611846195482916381865016739857221330566492039441711784916877015410555528362372988603034759391010386823799836947556591606301498183547843423427977762044793033119618486982246586470624055336443717387926129912179606425843176388311949194448762607436713858791689175936386728490960919091856413775990333937635586492421548806937749403945621086629259677423758724411555067316593613373895299071295643378833785679905070077141059711067338778165648436352011815316795642638990936586447021950093479203971827318390850720674804354408544512952478749752694918871424615539845478648739208511290852778321253277331540266948769914054775116374732614106992678681498438712323211874138647626150656583855742022467121413859794054051890945409319804462055106764590980611775103193609845312152514425983766189903269736217844158845346112439878779876134519320461152859126752788401522867361461205705961197106984804514650849473632738051466294293356533861397089717809849805580787571251762876432104052736392112228913158725985400294948197119178602908313361153037750769299259612845284429721334414702305581209623793890481493764070746422080900952794989849314431805599833983328846845429344765935828909664058574675509285495985235443176944110404247788484287849909197466826852730935143421913962240021670602992455482491467638935773253331023316413929884073890891545905584494505948267707090316207839162960856395780924146022743688103261501427658389029999906476199031116727601241976056696112003710455472211134921900596579977983068150242962439940424380483874034430341999509981302764936069333467015276556280025172027014654107611947449145383281051001957386629435033933055292474875039279432056812080505008296173999316227577453064530321211698548606923252514199942784982929572484488182749884806853934263219066742715590995367706616065000387714437295409869167296500809482691250142112701530516212710028842842636268241454313567950713995591385866642258697569907930681221339195550459143209999122081593585012190203461592651735449551690620436959079964859883525015084548500248655892906440826336321192154692047740385529470343578502215451418217475431917249770464470036048329653811673743102459260341613822866085888318327620605413210568190923513231698727035057061873514636994114441272795750854301475276232961409314302680786371241560171757117542496833284224019789626996832395198138412597819757437710315414197962500853989253868796651972283640557079310891240778098001065240847779133625374936633415975672156633016999912595156108197290111548442712872297270214358139571039505619121100700620449560758256316092018493327644903764871033792773922566150270545661792864899457809150753082790462971792241420421801842038016969854386010925016673240866028560804617716561477442750407342381845449352476303193431431158756014630447822909144759106835994172797477012333870604535745211366700195285714097820533751689297502719075173987257715508913897643609442596545202242482595298602391124170645219509852877488316332425926786877321113652774421644105025985809621862398053973437644405959522971619263320970461181197787983071999814761620301242536661967712086698453425184157130289770592065963917966958741647780816466989848780199701556784433501586293283663950668023722150531899667477881151453556740242110678095040225431352572903714396223842749453706547453854044496124522210673587557115516875000287483729519068945990582321190201885798032361012617138716879248313731887293099102222856078111727175229181395884290479783829968207879566943149422405285274975782996070946256969986534627045917424801704779517649225624783980361754073516121122563698873305400744203816726174754058028742841085648008577621861537104532226283451989980412399024407095696891776102843139351106109276200325761320136790003983858415178586083216672862029492243531200625256857822220986547474864905198172187532998770157548087025197726484063952878521798422160810620807789452577082393733473160566551437201912979892692397686089721710155906370284696540103456821036477257480611950762795562137307217582636712997452097964310657910225639247650785286797470257193139097681848156142180134212426812384714869364273797174787289145001270350586443649415463690384308940591503920843381796456882257396389609642892612843047255801240881120051294265638453040645950835961641362523652274093604276829877374287113881817705193422467794919164235140837953182098993070367062824810369985894622509874016571109039654320715809543724150410593332582116195791569196726380917827809053510844571541510586926581220723137246193203911652785828526937205149650436174979443025913173337699578586409882103631952520662824534750507923819423380924020205864436627278277873170948188866932744651566370405562352510480653132249359370115991799240353428987649646790742138882937110941166035035698236952630349162955816583491754669810866749041078258990607360911270991612299540199868482537185348624167376802864570388810882367935748550441980698557526915872521332642200253686645286916480640163970184362869592281825308374668638235588720300297406484788676225334849307408237633050530791082598986565956845746708965142814126746970621212006055864679828730412295234591123714188054877965510220699005423451195890181219646164770519113826121118054831337958692308222510181626035103604527662340570166288272757762485948006101655456270342704764494227345005598343402373969369239900443170173346991957437687528299328664930787659505345353743963190134134706401906937036833813572611016180591469210904739644795772285659026731937304735940511608010215572150515687936993133815786040618894397150982225346389245379757913875981076438059436505287424014480117910119752123021307688405609400147808619845339763210333771589996608950077853051707909626666107504400986186692159399321773263878385075671812806375921048168469743385550489285762591617093453912841273597961656810853713645551024632848258161581220768649500065346706820219998160395956565426434327339470520834151564434207528138992922523054488340353236871019375988551548358968084976791179728483709251154833689274854473542271103939839602262313917146192332968456557545832018738921230688408190290463845392402654123577843562625248775999893992046902770095399797749070125817688317482713966163303152717925507623972239614348278733263882634731273368728252243449842964734001035447765751457483482376228580279636636714441298004230237104950362021663907846667463332898335676644369796853166792163545892518020661514825048321267877270096497623290178539404917598264798328112948489444125869585573150122164842670687915639293426076065516652297718971146876699353931377898974679793754110913657816229460671708875957377765086246150357716200058426178229531086263737725012725870132808036185283118932821401142867704642283767386154617648333809235383093572200425958884296830914831630385079645485648400739551596730551345853861015710770259331801837799360566113479801119937234670525063410459920778958426583490242426233833391671617747848012219206195147585260822162729356681670575178936623691517951619299332364523931627812718021867174037318543925876685571074173458595202152289416098745265953050689429870567808192307858858652903326297279000215461625488170771637216084537430476537001231145748036588252109701845501943657965093475074052842972085399067513163251464459170485881700665995372258156494496105729750783892225346522852312566169910850756863296378566531547834287444173128379822674229900227031749267299018578596342219615027352167168813853958455238449140593063129441972178913853775854223547270470325393439501438926435189261986786151620335412572205749914943089294213681490485760460501951646799399156023035178597383695570546455191704435912071733591260908807977261245139869516771337648070299185042359205073697683200360812921812127139363858013474131148730087375434703379213085974491480462865637456467882472519269033613231202286923031360552932009882890861993374256030258868326185508060877333481391217368054716685425461294329317898326520155811181076654202556205760202273295800177216639933754707989551985961942851168108014362176585456519149462040862122039339078899675905405722560427862880166023744590621997047743986141488671297116908141933086465068445799321691871511316803450345463849293865158065592678640966676170423935049215576321477135086035301398193945381080562482879301052357844919275686317638870111224943162236484526870374674094120015481319892944184883582555674466473412057883415047274591516610295275797828556731105593669349532211368431831883552006796195731274207149383077573891831364072615715790416853258207978856218004463613159378214956905524049526287438848403518994673995395185141246796592475747369285797767795719181844471800210475552761808873772607684085872841222507151416221433725434876184379087802361799444088450423393056475023600114265066753220956419221297736268344976286299750203511091989215584964790023606409005013317615495046427850447798861219694874679290956389903525959628949438372013892804321479170163852792344035651740548837790023112060416212002227952589946848744866069550107582719764767710657765597296528404190709805309885196076530386347903452775427949955727440431262313032415903375384318294299126714443702698338075747317489449709344838135100894000649327068112589738619257998344219752008731414655630862174363924736261755944722936094588889704897650647464298540937630945982480082035718244248355201824909750247890634185746334311601501588398193553527899242471489330304275458201152070302877642786690049632620875348607735566734698937352291254414474052031744430184945931418286852987559416561450663594080545288364149754280593214093227291881178670257099889992859286301703829011477632173784353194366549466622322193727638694776605205209556062883809461315995914833321288289232243180924770540971939384238058498047464297818421127072456042758498418962360667196451955858060687398035934945663259964892071448720429116028365186642051830626150877162377968917843703427266166738377413693588420734661767195688041767190597430378599462076203162818868899009974725449082021988485886753973369049014655912102707977168704638798549351085337263244991185954487786950688258567864950359810415381688458419981634038933689326521658890397077252374762308014986909736520630246828256223754183489558425865575313230681078867072814341408093993756054691230643853773528129095756484199336430167754809242645215363529582904804716373351117425812270349843359851815077239786217540326352169589787254205053536854048881529934558491686737224726972672931986834366778690735004125234082872047558267498585877445932297203173871937535650522785272422847098439214736583398174523748132413566620633455066814730874600767235039310019612426396374529544989555745102883857164958754333532131392713869062612321510200544268711307984807044151871278689742742783377787941558847488277115520029061318934971088032953308357617906433216866172503929619618771341720516026763653612155492608609616955776473423213027203611504542009741646819330491129207340675788527199829234177732590748672081836264644343594748277575063517624391534882416094012048184928782512746668855264739919187756828364867683064783779068866948551372892637841333870776789839502634731480299587302504325166743927491020811578149502438621989091280755157403607822552648381089465171193432675841820300299344350296769550587795956011344422788672452173243912484839379346108592853276319446218998347531093333419935654439088734541102588867920313100371306038466242233024998352276421180544073164792678206295323071675335498725341920108184256334628400063866481584767417872604640234163994528178612384844033898239500513197594660981788453989037242870654661918621124741395520041617624999267729987230996754580284954457362878630951209897106104030843962918083302069138429479264001153893611917636826556107203178095371722448593386695792968238317027014306536745575589725514577136388380947957701627148637252877343996391466797168799381371399407954094125464808174478908237114481023915558055518297459032153510731558298225445485948891068832087219738362876658210149814444484511205804682628803402014722541619387598400024774353059176139051957812711941359962916799690497594080819868596880324438704029551801763743938607305201237240545733304132334011390923438503292890767057404636286197899942826183148862010485562899359155146333165271808094676731189075550424250034732758678440775277497057325850312384796058165133318999256672110122162212242802809424478419444520178424479422547343249897927162930134022938212525533312943461372390316313777614646230955551890016335907798346367336238173048837098824336977502349644596659437928441004179691066636663626656825531329731818183856290517175392022275644846161207431167420373386578237761059237946483535968441870830052455232841346650842835605198075909412661484204807286161532934689026791221082221010158858013834660826523435374321558709452820779759262725840689945938786940432775197313612192663033201289794101232811399205060778430669007965893960795854793812046550926140294104130638766766449147156795860521364502854788552344172357100481963371282844064165808973839349058092606829429226402498443398257428199165136639163298263671631803180808196243557494452123877140816181921016038151775950338033318564152891959847127042143711604486550257803392431215677913729337747616205833225520650568104971603840479501233313623495556882798670617552486610678961505635174526910389096751090273475716102583290042605521833541428219625804001109798956356575493077107352782866312948949049012190242307947830538771124051699638955437848085564110304899170123580617714131375025185139583726110051758348494200661966701668455904476672416116951437512028768109347694113209918313609612371350310533079969360500844633250192184055737317462416487576050572353263093247387723886293941516953206571194050013065776278052229059976495155559747144086173806433465247173133163808125670738696606706795844068634544580064410786717278793727474351505497756240310082280716426759317634081849409290611687003101003992621895786747745248856153877401555928583037078770083255577325254233967094525802432613483206237000432204907824370126197873914482260284809304703811399614924585415615510830159274410821871369021933441608059619789231374577566441015942740139346977398073835340067330378729629970087488226772616810352363288280881186807093288462717703401497218822929372236800634038008925451961726979783302378511523313217215304848675788274922642571792444142588177479453366308272972028235866126578137378045640784536826645594973791218631254198708684963537550531741507972208914065199003332266050341774087146065034276589047745344089258195674101339728278801631464652512408473044851674093453723537722269879247586503048177141067734880323551444688764152599450444066943342704109320365848461995028667661093753948294456278923395260915778166536537267418796041132770207969472445649145586512827502610118670729514496279776607188474650339141756473414468940952438945744582962548395245569725561997659957493180969967491819326124543864889615769981945203189814167256141254444821360304436444597037334961856929323357196183445279221301326546148421513020578386689484850131551099136881344839982890647541876174976396603742302255844471325152179283243202349962956897063297928918919052316643859773585269778206938932987071044515958162513043436466649344160174510332184329227551257936000812663213632106387973439854847380741236513940655693509440795626043704757520846313796773830814794047030440884530616399013525276667494760127309484571888331502935818273901632962562992431629124416777253993729481790962760195012107773621813114298882021757359034957929716093662442018867882451892973171246542772780087143385742892746631238057824764710043927010726399945026958954248354223957451254343060603238040030232786682933341252815793533095203867086976778594066352467835191524258551895263659266731981355339337185992299534675545411455682331192934546763431035861813379049714875241052173228305148146581206263015609072204919519761410881489581421989241816339676877305516415980689486702112722665978703746941497540356919283305908266133928643718628919576392076265862972566574671629745614088594123072891901733243292585698777669278353802946459320044543306091539622426703368919941667898770920138443377348502525192581693692142564442698137987326206655350254471885502384117315535331995805354304565472753188444531910567636240473377031279060010433396805059676672891229495887203329740845863874394037938672544182029075066884203920583361404641765509344695157901068698071973194230513065642244129876107330287183488221149495820001644807703581323656960392468391489997120039651254020008888948537420021965766021456345952809133197632602604034262559472611149487691518750247079805702355682865750854223614343114413332896315694664313575045433121928984914482718732798409507265292579039762777968674383732334252311781990576714977238831420358030277148780277698301263898017594873926997061121461612256195441715361529979729864283328443689542972696562241680572797912064402384419809158690017341403916623301076716666771148685977074849931671873266866569093729623153178046977570858600389351173462993236960027823971564435789206765241606035598871493157938089963852930554503367046712414848879307486432033373242888655037956684833151979434546424852814634706066538873188784343319111062757788515803248539024270523476156759231115934941191321414808821926722826413313203656819082904448532483545630729830333702605277164575759378686730099560042392784426168897985512168087933671508131486285477164984174159762593730543457013979947520882126993037691328513819936105888942060943472743975221588626409299784183319430047009279239922416716289940058001862404490592323644357107646276206959533707887645385281325541723025705396723828609930983381720485713732483533891473609171054225978832144043672321925094451414463401080055948597826099286595463258262301870608807236105441595395629110378449624388497285044281183348169429789191907047648948031897122140761075255010166668090237117940047287484251553085509318715206073493309108645012213548497854450082165373565948025055703057472447253466067999983386241383311783951834116620133744574621980671560043981657723870704143098115455463792338132294478735472599499699260966572145059855364761005356338371206119966315494123264110511438699007182096778591826253093649599536962808817987226923950366465405400836436547021716617994933157325089872102248704055542895571087470680699744933091341924388243912804155995984992787333231437609023528526071863164047304442868356058419238251204027396415181146334068199567976032531586670309904857208450226287107618664399370573747274665746938215812562177646043392816523963700612491726464942927577693096682607625448784963028391458517560543810835904976536041570373429544556771465849497691712149582957350646982519173999048721353003561972657634012238663265131040110968834362143297535763341535236042067043989330365109534010651268291372306023929068188390756165797271124253331008883373064925538858958000154614804950381627778222189234963160980366639005815324179165496550141774519443586593176180919557810821265296747996712003750197073235365283646036763544417763610514791777005713341849134513731748181064480003002852464716031060058725502231901790857625707588348915045373035201707060552449459667403326002806985399751031415258421162688722881967985009860813553658448424337788298691738981810024020986599098792059472313444885048055471658762527367365815802520147114246606294074792175823989896048786769455634452655173406884971131458287399773303357596729072480633788729646646135989840539220820713577570979469282317523520232875922655376223775361282115757302522510035072089753058257180151985525463993077298456140259425510188966640942124694040661538491486007151852579253636982156721100747558539831907779982594132992271117787060212712283455795510055927211050492765546917767543156523400127227995469749840022199807799849641253770195217591323282248681536917696518697607809720182974759752120270026423685749495803686510418692488126779093060517204269999884402788864825310137066075320100009038046489762704966099622497504761061671941542535459848911427682992963062328737553044983939259749254575311087232250058430105174024088786056542995158709710519456414533682392199826150182484182682754551309560837801076109762428207440435482642366487909147401169716035007134610361837433151693636246598419555286801886629785241979793258011313198903609052112275365711388300194759733894776497755146538832092782417271685186458867275418672239912251921844026994880455365967248235313319744558655793792936866789441833526578742570575209537303609569743811282346604777402122809007278461917370401490183743775184094786540982589367892150672183337171283079938229323021440843702924617914036515706867667387652145311730619445931359534031507893645097075643260739942884056049759378501546094336914628528774038058801873867905623437940543401941333131459132267618698303901145098498002717159798103137922101138621235744680489969952953946358952859260891965368526332607989673572840077550546418059505919872182864793410022031083295762430855989415859692355162877900192899441979129596633432387454467878116955590208841014122376460410692746769810214797901476144223572476778116731581996874519145336399110384448829465346693703201769339182870454141950511583685892917200476759636481784874488915730155311995590849599085705222114660944860533685279297359447791521831081845044199509033054862387198060645236845675665287389349117597317846633926148011636850848619299093562107569078427049861245937639571494070751368230482214277597891172042693548060514226757332065162286403874939808273048276307571036252008288117336201951052116929579487726497108312885656320317869927691968304774254006490386691072242463552671128889631069389900800326183876966485495387376078992428830016984521195168648892669756812501609296796539475746484351129050704260388715986256963130209342531551236532011870309263366470156223873607030570206934413341596384660563069707004920496466205187035791262489315081547752279681299149636954350313742259020028476974441266989108031695657513560202608963339899402761001475382494206146847721866101218005920006914677860072683803919060778480241030030402509744086471901697731500791756731559343428501018767618662517153300283874528102834077626815533147014071138275534713215197181684659962700926847883940710284860638166141760520103879388329134965082025505623352482553282584008136641377939806006819974831182506332242470071190755011511757933189393593244392756995628576315072653286441790672276726203430924424032052948527186506914324593757083664457945074772558284382116603851091237225374846068315251878775570037399389846367618371779754496319552450702328734777433693864294662660769819673869668382728422221527618368898312562611361932894385529963293435400381826564016389339337386107698958956372172480958347877638564490168646127250509371228362410095365410374638886800132319859149362411717353598688901427837402877892148021126426196017999000425106229052407185308694605561640206441639539128744902533512678719089207302384708936561723738995874043974156974882267758662461708398359022247202137687147955724579892166010717439127426487083462712771010493839916391549798826725059041436461222942405002544129368473165054913840283564884296603813545845234608836710810864246712483296568010049799376791150746722388187695456436574844026262185505883966973105605131759896534888751176971004830876681556676501752927186346310235831990768866173207407823442781575423150648277255203954848177180490681611342555954801072935478943738150322245062927108455438945242970601203703314970237894997519778537815782772262500794186337176383854137934632734501141104458868525461677931159422919205745081307184749856417889544130375977134073479658474756067611192243668699100965718385007264473063684382855296759863429936679958067215763180282573653652966055271793478898910312953027040599859128483028917172518765554305706799632921064225949977160572153539008308808126921448435036625584313275029729277984150850602032233703715225750302141899287438663142580137757076273700970395879538625770797779403199553465400331160682940832000223982033606707324922600245088296103678156525303204094967858670266696852712450130497271203315030838778303255254428131442500612175120789456353497888324041839327321935317147951991193181871908046734625036388301831927142935014035111888148751678043588915146733266247248194804636460711094721499179054987399344965609281421940620679313937717157358475492049725166582238199483892134978291525658348791403153873277029538518855463912973686148018398690163258899064749188412845687221530233496202983009354561464995386931747050699109768494207432929667531714890159123198926969134378604245621963066783327202751156732218277636392605200904552130718801836979146823734648958530154265282210373844885779403956682882413795232887252525059088237729165206697828187018703756858401938384148143503347382724030459849988594143704315596517420137723218915684917852943064306409531567608449163287744129875166245720232459976291237047469531843777331153893428298547641939248112585717127349802451871239199829145110673635004985650740091179446122077287423385297689687324585155816136060886830926243546722033774546284977924729794522820001075655826824971348998163932837474577389678420430233928625217419476614548690443462598263954825226477385855621541496913045290446141229916035178498001024876163296944890370055565262977645089408239123310655540062830376942634180785232948862113383733366861766832045745498604052166319582547325911257069470295422111067739466327851053155275573162861771354976559364664002002910175130378154478056232476653215464807993591477237437515131741383331887460338704211212543701621315519374121990451254642297415464170632990224983840719389426590282349481100521998557258359745356124255245708584430482260729296672870004411180085542465814924723837422033893912038733622223005779673607585409426021093186782092891780868846458254792593233255658091275902475931106465259176052468497063027396655889287683819869881629007325785585622966094614385471939198828549821070390212253965004896024771770869555579852606769080680397523491912611554479566809715539097040658505568679075533879548062043989382365621504041363948614720642012021390148140442881513085346177451353358908046296966860646860879876344191567117248502592355176637621278267570717274391740067576464183239685034536216238214914174251249102827760666373752134887965415186403490489827803270149689235701056720585055846722885283234196688553590988396718366289257651120822894540882112249693937818986873975932500551880812482907525121122535059197253085314785100277652120843442549588367585056843434608029004351508598713743442962699737019356338229190659135597044503276245257621534675420565650536849516283402787155638721019323070749250911040257797622274862371325656997235906389593926530425758322513286428513489524439992994794971564770256444441324574754705696136745701677661825479275720488516463342041192509191681560010957437579269843907245941620293573886552897435884196669724699393152180049860439551642941980159587797657855961861493070460226268150021483700023022827589699167601252238140217966340772934035652016782384890182532468155878945576860935682231419987006449616530330050079156357281643937405142400126602726235419006000488195310081873586327190854411266706931505629401803613950945540160979633649078097350594609395506867021193775948369844313398347084941713662915210908134692011892437138341833751483776674450800625480363519975513145335398391269962308993312281550760919036363840225235384041907516109466856416439362506728847995245188153560363903213022124709952795275696343565475528278713380769547767415447905786913243791712885745397655669007490525748909045523832454768775247564511869833603845464984149241783614152537876989547875426639708217121929054254496315739282358386520688088122775590329055851115581625683243790275413548897054069850153318433591142350565990026948735419150669688156969016486266918669460241971611968863852171844759812040048255701765595227939276764078855676827290817574094789135873755171467884380473140680310919579543857860542101781503302510022216308271913019951145812936313964081208064675635911181797169759186003677890572754585233183280257816881657051103297257619265682498088080556735319002837828092710623685491768148583668240121781087340315696881127341156595511703881611872836562676935738886578663288944864462673841413574580475857384555674054029416832285931904719092352929794103499887484732471279092574898989759085910148174775426900778337301098364597554344169011972035026830410719264437236283955243320607307520274354929030390112577349045045932610407873648259966395920190804676042585171464399471194793168632002807806339958135069310908531364064120664084720492023255310453257746148523636927666885151473651141608674121199223947516049035103448836877130227221298917863683494046361235584342636422010474665885839822573683871071794979825685360238655812469485362223464608656892417542250906056017977802040030871625132495271374929755835446133044003769918556505892254662676543739429486156166333391883352327238157384469861161340739245928560528606091057723052905759559853253088829352987062251000916928216104204064318228333529206033118838998120125020518494661861226821737258752912983492573040909793673871729196885447790722006885070848425252067648815876802649378815509142300500160643106620012970327912131657300506402428656031518173832194005154128664107303719541647624187688247817432771347303792488542810025637466185421187031955629568361022967578804685627915265348595768300850227623041617179076468829280408480501958318027042848406390762821948648767394896238251648740979460608884125486774823806857104133381357321390700870595845756866000980391613211781617385983746333686312011649811013951650745959582362868222631351173824692714989964388394577167806086974676233283952113803537318432730357882215032303146341945895601454429633972118611102142896187653472404550642416262352926265257856117739743033299102140311228319798499281800348941807944039256638801573815310316753269038508906824275072084795433811933808143952220427415241153345356275296333920141058070359824650924502276334728425223255878571690406610572926274093071707634352317008927521623197759557360334667653720253312186975705124122926076596933687385370364308768949671000417840250354953941236969275615908432969754877804145012112260086320996118018374732256749862306755125791963778532937791861353992430633308191024351073974191884451577466879224530749279838795360254461566340729739716029598791877966306996205423555489740366007553513204274669783190111907694388374343141005347629462882250679741821904790136947058648561025425751692853069062940610384294279747460667815597845776694519283979681585505060911764638709869748472901254555913412403295822774590733862909599165675345043037607003981039466726926067195351897816961027847835975710073383154472553954328206452334528011633711913698885696370477437423424173983704612776103993157785618276785072113736170189373246199085981299200894593454685792134405668873398656334983243665624997665843706769861539730822124151125607244718659845994225027601457488242458912219912285542711554053578094054274676527237192203856129424033975998637537425435376790168939889344026338912169202298147484982652226052247951303296791452984108575038055184171864520721115421403393024383655244183345828508833482230713857717606146154539399532834039619939435563102562431811590828415126307906728404763431678390402483767055799626349688081972991772726299993051527891561855360435123208629273767936365261636292891306850728530449169412944214897572358828382497638335259305233211854986758608107520760611332938945943384027818255512551134458248484477471259537622873313236165694948947438078453862246819464103967184019258626984271873635362305789805563798549644764145808877003724114868044130983830949598788165222781480648568022206146205463652410707047042667114711244251328728099284761793910861094362105460491791512089879184779777323370016430821974206780993052001210039223432152708301447737561438476645214898839361694465716100010670449711850726579736468637316414074494792721607466267461481560626608949304586158259615389425346093453331100443357891628518146278710806449651610818368871359710941423108132036828872372358849693349014251805226341654171949115375447532222135322797274559017358971924963723015254223452046149389708859148219232927225664075367561025954824574261470208723962877641068360314485076371113226726118529920088789395863081774497089464417755484008618360400960001328449592016665414461460260033594324209273952968994945430263631366482518685344324973634704256048889169434183261065873730529351824185699027732084442729538450630672586235121546198129234730591872626176114587292466169383419673848108259466927201639828134370749670013520780207089562971851814458839592196841257053251337902461789498061498867176745800272883137514902200040111731793859111499167090992582620455448135181102624781970819040277914127610923389950246458515190399704598073863531558973045016114553064658575696261937119211851957507370798177663133149036560715933084713151730560381470175907636695889888533970791545304393764067546579084329778602523260072763395361240981257457047675248975179748679645694637391123258763078519768539229728559324739134376990204900731201569129541615242160822220634792013005630398014501280836612329409225745739027389616761346254316938752010510775096994017058817588886191252085077481522462087695021809197098920039166238808476234139993940752569577326977016620995436268873756497828071496719903206253735021012491471120795291409558775185790041828459997880763096400634393761573968502918600249845017184784629284982433307246353622611231844940492845820236513926339401501536461437736909738229521210963143037542813006618013736655632322308325195608721805563715164810676907415204904243082775129186411605987568324353251514276007841142452236657219872383400400194790126412642994417274426238779896534821557528198825080534581344327848087212210131248502894973047340199694260004195859225819977332369138219858729750006122032893013083949662034556445861922188487590679553670389738016734735103726416963489063026541723734528433053968530124388786335927196101853999322108313104382591427440322013657308257520790405061036064744211245603181459217454473223844738646016304268980248981898671435463094441211608886396061259902438876064430134114018341443387038076355855493788278217596762166686462375458685044415737865927369709183296125833695686316780924385044601500440845938646538071845981729126164334850784348180343857025990856453143768387757846579506985262750174245086141130241812040927032610613967124778345157826273587809902176315368371852524525743026184835532672214379408677934600118912037767186841637472759821980123023860929729894495787364574013207396685265697920396265231131488467196635907011146525966058937792608761249288992877625542418454166746678520072285716325800545975314986568715879609811904904798287105211212262926863400593400333329985649614629186575272435270950192887214435377439456118084442738845703395422790071346901735174809936887189731706411142004799542580792558166344241041268737211809801165100241699893681522240494630925351482355322894339431736020933043155696492595979147369915224352932305687737445087300400758897064925076414203317430024644997523645490546016272716653891799374667694082715311604489379873617993787516047403319410522798763854298894666551124701124220674291679273494449040355733354078816592126076057511582876929588344123233675405235666532366616595525474553936663637103888720000758055239439517734592432707655464086520736506275966142239772699366500542580448009106782717143296638814062797393200376337917612267160180612509251439339951898039245460541957806525057741075906118848396477419644365994165091415537796990925450851667295340409742558956233032884889396615453322345529577640481241646053339670356773802914959867494940669932606932771106359561295287617748572571264819979283848422667615951598032323647187810510367337584487333496135673472501700747115951686011353103410096262542265726946867433425992753159645237259405329163073059486197911940314018549385306624165623987378142642557546672678586017981411809480108603176653697532374199066347090715410978405860379160412735624169926078647447915979827724501263345557492366334162415977716776453308175371690786188686054956918215392972340337751781527781125503056899253110155600068798064962117256309127430081618736316070174191366976740041268443357536613676656206760102085257464076121771004917242567240373931905998746502684103556695767983202260827683927942689009302796011323144831259868285602800909453266722886429119911968947702497236345491796584139624128773975372046171535145467536336500073760167196179305987088678452991925939781739448288060753112456295685857030926053764106138807329804358120203008145567232640503326565850079782548091636554736840738036942882358285420100960666457461968443774691128582910144604852118873259237878582616184452752006581177964413619824309952228548910193915087990818572431667136596228829145496763667774145441386877935139123737884444944197047152740849467109617984746894625608553269020497366876374242404553812179450631297002857158663517039108101666961883757887337376612158099234688553992701424984125046990273865814009318191889903845721396658530103601318413881052463913539332148291209162244996733062247072756606466558771568689954034717690685430533898294669048727390479422794374999873792312899727206408471243945046135226476469702894120639329286260345367998252016385074314573559169752121295499782206685185518686469327950762110549864501102323336140203064787360297447372603826812392159885830187523885066645575116218953984026661428611154375603560005568119535534217011468517310052304033320066223218760223785818976160204286417565665707849326229161260644988194890476779316999031955458689689677686308169564290385916413976956225305280513114540850055244798789252318484301797918481718745179071728890190101845410462958751947185787111211609234165253819378064915277316426369179840054082334994597803192897788802260300657372820662781094784878759350002728117480551746909839632298229972317136128879811452625234341502470098387360228926862524883182906516115886876540057637085068118885239027642402010903738909257118210770061167452096146653473268853761369149056262884606465348050140267296784548663624016657654996406252462816715761864228246524704391309476031460446855025196122450111568248707269101268796453571224009806517627891022062150095473200625131643031500545816133049588393714160178269933490867445218629828569400745454422872773212100639829991162694904013157306013141031372950839128322484693501469632128141289570088384241809057976407441894273439240245043179622464998646869998812834800507011932732294799974937349555324939445988583282224703175714720245249086041917156255986643347561408628756395276972879563896709281575472452675162790206504963269604928909347208800672282877034177422619754273136381845354801598112264343161414104297796740704889211096886450112577882187610589733885856627331307213901629875945996283530462250127771986133519754506802849676735840601816621821214774041219823841589574003414316443161285479895424294771685059103721187231996881173087666058849824139727903602271653276618702002142796420503524324671033546830221664205909408032053716324218734884426484981869115065532935794454525777710945032014915742652631331860387884245932691518287992375900382471703397480203168581521050389057334208725816467211803984716139535337757462959741569019001849581234126433264375908116185201858235736044523075401208286282402487170582507716308099036544449783294324964805947318572627913830895208668295169536001717704823771439946219932911857027162803008374213384169376597718394717796422272943993803793072129452703692391837694345466845058469581293898423605303014186416887312485529913478439786941831106330818347712602015114568787071885262767742205967016576893216781701014728541188680955976365515695046408315934716200351604423516747431060470442406636816549285782928013355266519778347847217708638978600324206895903307404030750186518239204711713989668486749195113377407686684275742313886654626991673206542107429466774985971521470999175481574381332996404331353010202382494221527093120800053586370892553535429136992713389225957766172990296510348931637310231227016656155519962801161045509328231843192855937524387716006848530963719104633015931135358781548409913882291787443287222096948073189242032513281709645404904829644402966432851080951409192502991648888760354518278536593295285791759172386921950769036754180901086117138812837211981923545820092384573677365715623940759388179067029555345859718204973797217220788973059361152717425744948293167175655410326146231093708835424763268918749313749979740027828155182766724211955849867969815238926201982215710940109270427290936263198119774343995483537487873907334710646737715149183319154210552188681237106278109398281080158435503287139804587221194726708270583466649340183906141828324286963682625881435269629114913825554615986878705085416172364317825014141154628070645196977682009349501075898667680936472435553977510640052387489201384642258044006851154900030431065295755539250063807716692251019193506197366453919885033988525590009719988865358602130112849302398547131268294592896322813456340098671399986211328677224345433485468394848065222403105638012849257349265355981354202815963058882025228676421119420937189632606436144842260910744052074042407880771691387773382412704593664001318569397502277906804177001669417276959109243580285648420278494982612788428232602494426927769110481459072363525389517529563626151619372660769760900396526066554334862748376929763670754163358507465041237484561909595483607372112329133907164856246352667069193557264102331807152300708310176539802866854878463045943493454804513843878220537037158248054038298457328721662950963581926239548730907636114983580730899242614410941579385451108884784595771045005605616391679633019354638043395042173617055093075647092969704514169572307425144793641290281566076868425555219357156964020217097277344309273536214662384767686130781375661978393155785743796079869198506095692138583635101566959331207646885589697752132285411038298998212763690025383920157110006781033355193830900723235957049320821401829062290421542419151980774037678942480889006971819624894048962407556992745062153279180050468602679053501370736597450815719876056549698847967676717721179971599921951012172127579124144342861870724675942447462826357775717141802941017513881999043333311015981651369394689416779123495289509499008628474522232698532089222151082652015464376123239813873149468947186480583993277361916894074110611241559206702040290702729954636953969536106309004192870134259233868916345503892857401864216341377100700596111152575267912541565181059851822613954215148265782858666823123470191669060238280378821108321100018485671422465646820243202786265743982730459200985061047575921311217138219417104226516262390942343583223331275128958655604460564742532933270606226448032941086332458956017627252148066819071609536012675463338891485789368615979949440982834044392940285381058630160067796812659460851264286350797700305800466993171831732169697674136207067072006592883837929247935932753264758047052452790430340993904823750724008636771733956973544152368212921717967695800119431364427045658307200592398649054900064495175277982382671857799577335903320849327715252353509483012186829674739788389464612723829570709371403631991821308564660323859076343321593168743422385240274230855375308613327196179929015691901687241939421338037153142545262395766013740824192004945171009986810848853736519207360977794968170180686304265063303929142137990184239183348875938514460994688616487814034342624991742729753688668577946573062768763585785364638108273261017989218008421125839658885029812147958445237429750395200595052091649940364397153947361228893565313859920668289660956262211285107650969939404440841656898146283609015083406374057721111344114542196751160776700097447839707790325085482540894144508374904392518411595113321487568379512989254208605411086754109463373020069551607518320029978285723501409133058532687256732432616435833502219290730695093341900496848773108107166785936143931574311254750604805038406874319093247562761633185981354589372269014644472717970296302121567196289051200783138530357793442047929169182785015503839325746549470612662446326657504515927148169838251404069286823073115604471646163853794325895895526730007557133405136271722903073143211446175965405133764052251315450921333838736367137871743660228846618829070394356540460656084602004373173132489825739649778141707375331568904367823006361071258476086934272755964491403725480707353010361484732449720856682136233049991301897028129411516970106759638010791338135844855077581536508225130372331109422185168089069327723833514541326461158427266511292616886059793582475091535685954491411287395739638648486683422529108832317090592523144238141358053048336523467469403707724043045935928028296958371717927715536760656456297477314784306296023024068329496062590809082058676488922246137462916229142375093880055404634990058741482654786014646449844179382592107371980350227350248698207929863645751993797241842176435051402913905649702390041354194321293376487452677374986093671626892352843338295808794058085115559356336717132693135360392822632927349777683354448251354943601278084147216247327562309438411280264974577061169228839960095862891915063513410278216057502967186117172216594269376504412727704274676815364017521729956138453517742015358851802861814242267128541911052041685118851715142824635803215431823700001465608021156228715218443186361010619840979357497772226731485865034528604979379846546345364249627991205957357248478775078547347749559009168335891357568621563168618272311875994158747283904421075587498367337331034799382200770040452339793498925772462320790142561844209964655919218327317373131885612330855808497649363926493962075963645297242901566641908663024188975969123378723631717264054634147215178872822976878425426646737978072582051311509836945387529535627115588737419302099754921169767365134364617910574308712423472557698792929382992431616137626552476343056277557622553978241495576598440468333222254070994665502701327556279905564568807325525815808622047853776455099292478914149193118665396211060590897919622575206951172100401589736938015984101569688933125517371492872838303455418837524503428644921723873173195996302733488249548086246194236661162326966473590069356575855492434583094643449815135085779810025968346627632530821050218421091160286415655179328979263352996685035594248272150884129505312873512439932864375277420223444405463255840959762192441500311808568169963308816102746102035593567914116500274017551524488181713899645470785051138341711885278964970162811419084520460100468403815824665893539616316856023298833302304279965013338255374004868484122856931088848799109029201709012318708117038959248771275144306843099227902582731134327622658281715845370777918505068878606529574500955929154810896874841016407229983920182080389221429553005149179127470659474910359675193957106407258305034676297361889963877791998542710749689858014323958633836488316301215400729564949663771328784140593283019906535751833778408495501715857366348138832722560101827323621645643025698829300431576305866858159699247723239269411936154730585562544727510891458517893721747933837152867070157783193413030727444575989683815210525808686592425786960409516425922495555868698916049787969587070223502241754828880454286404094512632416919706951122028062680825848573493281619889733136900159052634802625017243761733767473632197234864539471342490890857178700638158815861351356672860193813520713509755680891845057692528895482791137539742284666676278265829781287244504760107099863516493816508667327454523692901955105145232493948448056539292716150681974446189719525689589459069480337723540339858013952776157664896769331411721449236577929754248772166715875632819611423965735986156628540144839244668056040232356766145798689000876928402686474668882774211698519936050774178233273393992206254820225829648069707226387321606487732931319853983030808761742379281277444357203987623965183222028238766836610009655030214380859349384590534225519982403324429636722170840956913771132394059262224457900166402143954567499740781571852086762837524697185087755605375479048085590030118078135135780992211284413238693616244971102914014201437613321592657170680699177037805943056749678116555978324427004635131649286752467954673786616311137223235440854140692187244886624647591240810240240724756659514199334635310613286823631111466355670349249873629619016948510435002503909026298974431710546981888853167535191972751089271155988009331675169282059385162836979835517165451095850333439795272434369106664407055685976087455358890752040181707951805354119795906472224212924737910710471337313918228033586601832315360865190781226134085923477424927270466983982464921328447165212888953240726841676787015341935955302981907241648942364801239092571649652520710221895810766112104748378653542770412333620244724049407536288776612423456559799003903989533687848648135988175948316570777483676349761556636940554025810135564485254928823278783252113417925515192198156107084201805995955262318973443434672015421179520311404054979959202707606178463354879908697643057187795409229144753316424042612796948082146462676344326954769772544755664247952422201771001759994623145499553816092730613785140381124671349320363430507993871228496715411607549403438399991713921828603735392239716823656021683107491399558162980479019333765275825768081367745166307610108222662236725189970390870433981195647350319564305705741675699430942883020869440431324746667112859433286165547366169763590717988065017527829284925050951129527435649329628047669573641792980673027369842318238902382958484594327777764017421664313470358079870697429637278250933707837554810845735107909980822256841610479101812901197543246916121931466556821146071023671247081939036316082843087985349136523749767136383330413373273257477792551091904359953093502444855819078846485406868787307098125907923004626423306075331087452007892031115444116566949737938103708045167357950552060700380594031944616663012584936347117977085476317107436619729395983084108976889372213718627259967877977617559978997845497254214768440226076256197791421230631837504169431763060208003965294096839973601939552801477741937738985832839078161402301210565697266547264977101503280353319383707920792963393274482723286844305450556004014880770017289636442198848338436195973087050049537035697992603315208137909576677445944137947538073975029979790980585491395930969396549760906402264206965246993559963520491224335095772184071796809028129297144120357878731305867664293252302761858202464398524120419690630923454017469815766665412852103013023114056722095939256570827723744312036273485937620764787587262998489237112186128239238289027738730704166769997262744295631852801096293514264464480396019067103190367939735387153606931283452593385059740540538783685992634302910501177783007477039034208252732888702240263497503090118288436211608134466431264324764956751506314815664338803195007965515381843479256207069001765334506158498337719007624660441889088468604073390618849445621108786144585707977710918318666535351530294761855525585283696619647266630554809310088243924587397398972465401872875611580094672816788554702378933964084199810655574831017197035811635776347447478915749331882841424060140541750471991685632603911265538319702306567132246833854503901273826666042165277616022522633322470630998282251854404295155636171714760058210665503517121881166782507544741666956904863340206570206832278052340756946501229749427035611702708258147016534061717533342109851708528248542396468170289751738642220503555468278392533226358946292848253628693276846930038993232913554599805159304661363017964606831400469970300338894946055665904495603249939939705352908286100277165732793976258035543328759870248750428986342529390068865647025371611123001857458008490428744793109250764942300327617120131896933958937121659865362347641993958317515384615297954765460964597133992726231454035106536826562820828626853363855645758917954547763949964550948466405878306898204083275679351514536669905968845341541491000566672698366263700062522774500089885236780305589093243181167053664556295589488826334786393042422198206847948861417152227720754359487162303677236042034345277914791472898424610856477822971213733162709430416589029348152873400513079119428168491536091959518288699272733878007735050901864152124784243986595226750143894300503529393939115692328797465784492959953101418604033262885089029473189728237276759251400946051452950446962902753547420941992436325285490040611789093052428843133483720301960899792253646747430018508291386171779843929436609599888081101360877029578434820356983972762319885051844548349797030458314661618834454509010185947258944892830347455272617409457146135710443525298713389196594713777500101062476885473915292232685530033627707749326137098269469989994511766683323252669775549022752532145769594583157126107724008342141512018553873471177676325462362439433933722384941234959092663060935778530773396527783608366126283818809666458040855779749169080149234563047542405303680233796535815716339917749150978685488990156342977912737428406644647837427025645157681633702293153575593545238923372145007452255714353305993309831762858750764292621113846646465745520876057912936675772558341191377646141081959457292816335227305349486175866459446336584952489627522906518290005853338668331205169900044358895235231058792346049328191761066109524229813051550240561097373920771989580785133749738725185881608566920558835813744950883797842387211758001029593965266379303747205858610562479743773164684642379709002116561214375036422696718036642809178481042709127780062088179905464437585646482969249483163386497575709903951565247377191821006112516658544124308220841208715318294371936614340396008544200500883468053821522051758936350118195007847423129186559497380449715611335308037499593072008294177194462242802726283127761759540779826279267703546083814395940510413835041785319926405481527894149371595536494390663540134122113541697132873962099769204947519741426853016302145823135214373790341002392583543038804370634251609903930062656868581416079448435216815600576889669215363729465839105867844135911608426700982368830479663918687083505393690029146008751771706413116408337698034130247549641951756310935701908179085080785101105965476930307703184432618606466640860566311074689270933849409145222112733072907492447221103927116549222016288339511958644592857562089681447253621167404309167002091969604928699185066274022575490577709628422641737571857269101467503931248218287745911613629520778144981089414674102981221020203054717881171975895881395819192577130762835709834868249642456186522548730937212702332955177198079109898160846908589683792595760191654807997109174398980318756687468586874161860095173508084338939017966308918684384445638106589091999183354551476957958958840490833913265875358221847448524805711134445332854913513858753766526260503885027173525050719522926897504482827987923060522759384201279658399750015289492228864119728790005431773561897418236479020574133565148317674677612086415007042889710050935282994955769494713562770521123537582922048826322882559774820125044223933124054961009708829670186283994828155853696939606679171940275302930046290401062779467147080085770682317025419633023916273622291144204302010141767043229396466823083892965927325136471329104821177065801973480906775070017541938095558700639799993200036767957024556866428652006809458209935411441451906123422264728655878349581896156314081966467473119627117202480848547330180961404221498498730772962663377573918320842560735180179683059850433081052659290724080503997760314984573266702610380777089519964946400671470091951613606992660585740551074879418913580205209427713595949557312048910442651245266270540028154245988737967966993919635305398002906256823209568781686650258757658346419417423488897310791537720124505854386319286210956348420607995736676818259186965939712982865467631560344852038126265768062327839595336442578573443154043678750430647232168001952495332267210628704315247804614819769456270390725613613185623921746840359641106482601436476889763611453328802303600176914912097565281491064966055662393611900617537058356017543289539612509887790993968625582978395449514830057684199362102952942092928306058768702004542173250388115686164587660409637959386863658234222946409838806441260763480661197344865230282919803471983367692447839244830096955684923810696816788653025066296411548502296933342922962560765444062028021983035081008721408562750447717115739615392474797460158463741535191641000836259874627480780147232878219560102646403985516665504178066249783456088945764640006872574073084649854947657435110942922552650033250178906998800985610879091679134850547600630800524444753864660360224389023484292978514671974254176618745671519412381740949364968706587924903565544141120654739320149427869231052720687474723778121694548032011289547971636299061324301284408774507808161572914180738484078910866605319109918782447977067152738397826601835539483700519936766333269062422276548480362033020705871009031398943889303324769850575511148025865933869509626759354052905384745813657786514108916396670012709472605762504818365348204077073207512305832832903850223322922840615140484015938290108649391432706349419951033092909124848821831529218590393676593236814922597660453151112766548561624784579433826930017492804820954522688894838954717048073562277279796345119477986651771966766866155544352107808882577472911584947048996218273624909007327171201702904035890342720166907536575580800877105296645598715258566670705638833208323507200125674384443308204751383895199730694842668321916809040310203212012741140986204085930998671517761309671972868902474147298647837065219856273012131128472712327539490560007979339333123789801932353779569798872154997878064419014459908633566241558892773419607299081985607461822888610237073977782706030768596056765809596542739176496938163592663352122305204354193289860142621278341507281415475765285052728166356148024683162809232655579579109195333246038108528674191460041188757172613899676712385808967131360921251145866781002089245900419638576656725826371799196774898302641972817610834951296767212184518544579062225368842458185001656040872732464869812324885915750564229534477783153227175058915237990785415225152837646366202937874857066038491401597809525184542790574634949288732714575547073518241952282368576456860537853399957511367271847526561665880981375007793201027092521293972005920059260814466416929615281670598273477183438254762730857472780552616595597507980367845761749363930443973791510799507915724485767780718315543893222968723358457915984324682480513436438813834630532713946926451804868730289719628438382126139427803324336988418844880485579951042845524201095109444116874532329423469748522578894156618282696076013858617137351816343378362614503230595066789850147938169935688420022920152255768925874210884714911524333696827228614906791435635602393524951890080856717612221597586542709280441406659026998021187917980567054442515080918299431523070228691824445339434200555801297903294421825683671065757791081499396414462426362434671580080348029922985208144527602533998689398615663300292382888899468178652870970854189569101976217234053159407525518922911384902523392416021912123256478497666511056700406855519131346671489084172876279160242486708676384913541295298738373955642226623516335553754146921856242104211676002749060410076379486967242866947938816957088157079974067422104177484150797475560037520201719191083259925343501624328875085200362919360263767712313286791387377343174040366019912850578966327936344989257303527354696652898969727036494230173758795761438501053210391718104386261324436681415199394755810553271090929980095792369156434456506358896203894844308102117120342845813124720116188694065136952978382604424345555185966243915216851081603774618644534421383188082524854348844956486623207190932915046679956758972639185027822869151101584230227361300396673571616824698774439388760051606032429499756086378934601504930316021151787745894721802949304399476518627849603121989569830267850236816159151808469670673188675301396857257295149793989264231598333043837150053949773077294234873717269917467458663668787302454146624042335211378775368323100944733606702671191615359322622420551405599816005296837180660612259221841472318255437947897036656177578556042544772866337954655287230987078187162600827866875192629070145935242889178976253511394028143755390352718023568457536689916892452841483857906792352373814275092715280244758458658310341582562548157571476588648238719268848254594755960316143333593199252190976860242603420501201076660898426435883601099371545981118832882370130182605899743333419344535525901419434285372750390132481936814446087472263838474053836649687754786188774840709052593330268191974962568425450371691704164307079235779041401408337128300578957170101002612355545781168837301117707932545097995507189226881460353869126195406023724136203963795793760247741921985978687243321539932607966616857335564714450087073963902505341576116463207767008778367197552124031147285095393697533769148816662125998127706221872761374929633889514814008570129634108269369106977069580315696199396127130558724960575946623624460313917155279769903490603803145207094933133306364899595386549992900452991797502669749898589990132471692211330365532110882152540250967602037676717966504294895625187950925011133322613539434237029710698034284025553859898205772973889167667216715225613166635579707118450205280805031518831532501721055267995848670076593836815690159397448523509993599947602707591074723317616027735289815880058394922750380265038270995176591534113424138969379035174402261645538920388928881278264470202945187126939240890557223432188458126235335317931291893214914290554705521795896056909860947742895934035892009797871428065892466089672537286851837592132911221228602464493297471831504010712814936007316320174505974961148266035052586996643318592479818156470831255192072768321798897302864400412520166416028515919107343081637088356271472813146889558868006052058332127328151210205021254058725767644858038750665753436215390253948121139343119620206474255950425113076490948643091718109849989399883814471388712608689415795846995126705993524237880608429855478179578263782278579370688531854160442273789783480555828926826229242885016384911771498989417565148572602145981979465728160056822069099962386840706830996577791162311077547927824447018415937639888035835168046081709844601089632025281485002371758786762793713960510698045603822459057478777990748017407770435406786100960306906957866562045539847093465389785204744303906599690534989221342927529881758087457876792678575860285050464536266975933440330483172851741387145490667585513506574715551460718866124852146091358147722654260536574984260619783573560451533125452227408181201633084506549591577945295557241222283402500883238715819674048471789412699759643660447351302243481575228182381734917585640906286674970145468257056012185117210622233219254072678375756359333357657576667626794902964610526453860886951264718111261674275833515135874097221776942022675093280056687297032542636269856876318039138106206100562659384795035910318615193976769595777287282906353978827773903917276328770615628676018703896274519685865878240050061695147344221467325087154858839047708361012686068360717564076141237426356491762910952405775468620299046136059802948404296274750421316057012263015533500102517540567317563449755888183896481295727962080678117771148321525822654819541253515192016724561424798701772902172824210176540845816002453639842643485282194908407864129902240189230216458663753443454726103033507690185874022799127077881192243192363895785870585355729361750631741748401948606761988073695146823248828962330886029544121460620043096538364352503678251699281772635167948105864827652908141764899725936765013501032296895220558361375302026816415121636153486276554308774913290900563775701666398845096861827705458093859315967973259982690576933029698509661044214619114447636360807684435670483321147187056489955898339799042125390702936751974287206399496712826050246674940460697924229513503883821993997225375473053683541000150159466080614532978128041983083181290369076497582849836958228683480282788774843883583298496553236319157782854836085233119305954532305169175514969833788729009186217408794050042077799828408316520131558200737744809553578515161718200243733493494505347628538999123965364135781537351011596706429893310046368050895796942133189963310760773019145846132228529903661520785621076416383075562624365149820620983942315270888966308953896130748387013342471121682348621619124375284355989424855234560329141828204174428490540511959062442407776162995638777511015024598143497960057729858242651167292424644904228824840199477810955547330979857339609451348330145429381198135116276010856150384273358867998456988387893835351355519767354786863978824440850915641584796150000808254801175947427825958322092318667224646269008159562703994006104107448923415814898283371578013457186900290312807009749772943236112689992097671391235340790618715042218116132025340701562176113048965320375424522519347205465087435273209614345066822123993772581501453648685505710081720853081343577059826933819685700915022490936609612602295988253633268294954161885754777522919747268031097477245561542429472671146541387940300771422396360148488368781148168782520692029050837129730608157889422824098633623085673194697853190369818575462089919685822518040592931738264420502354678159197597197683669512593044116353170102109583743116678319403213558610558100586429561594568367339678127889137637403953748202037541984846263851898119509887828027383353283661779065443960111543647548339615602680097111051712375525822983048779533958251768588678531678764939847184864053573872290906983894974043302544509087903512996000295547773552457486918301338190932703904068533097157822766192478433504633627442130442894494790813473017579896746434284191870132592380966592562580899459019623193914174121031687848625939784046206808068269874685124507237786759529357821449258110390285304521269835304894751747581058331831717615073797044969614588416364260244233749880369125096398995357715574933019394355069947469618645381813332193579787680445049201410293631034223917199764097777302781930382227613324665878570644771482362610117608899373506083680835157609875302035206853272467992005349127589149621933045693919347037413187424008241571122204901669879163980087221498767680673316259205654593067469545103073222335672148648938047675865873583510140607605030830846021006531501261310265001180600071834037569509488067370550647507189573728081864744852263580719648606802916191641860128133746489404204096761070476820386855336210662716436180988572064214218693680820480873011196672360190130048390511371233121531161463496564529384692413044477003968454112594366914927173727839895071942037332504164110001456984151718821664862908278502407167179723034700622653543071808834990006951550954460577956773900468870253526774452559374602995841786130810569629119470327032761990224739025245444394471568371947104420461452028537347693524157254640282714200189211888804519269887984432751038971864785772847379462320804434614341946983762985867125033023765749377623158600487164856656594871963150557063378397502664612296841823161401947016418666754812795685264789369705725327151715202274919686922757261605912992049979798153355409328440321556422235059311976154641133872427843130019617946657671908629888706125468147134090466326526206342251688166525277115174138728913521730602550230361519972365697098216979164746584396397447823160013084209153548769920246494808744465683972869393940337316951935736020933293185411085044204871885993733874594090815904760978788804415239643637859247514122952224487807522378884974198024246124777745458888630679806308351039052233504519492529338185095492996623122288406025449145347861975330952766156017109129398368877584496551229676658671751058507814676866831294914988669418098997815089329097096144432759021498991986900646546091373171883698610516678004955859729434159420451486445898688902369273637286098721285393155735976236325109479709436176998324863178386174767764450126174997441727129896448879561194791700784617977565856062405547048293328707865816916512528344886389778242508191664667793065269818087441586591040665165453270538290313587915544678500543953027445244097373111447203374340339978845495922204599200269982621888627937609188900651715198757031532931053142191673920202556042108522811705399089346548149678002780150678822455706215897171662957153915102302859595852520653279447547477313423103189596613146106837826294616651748771101471989897779514762331629998209425402787807960660771158631380916963568835922283149592236948847423519222759464617563360414459498419750776831971706484908743953027176868408043798176315824585156288013663728433776259504536124422518009202951280698618806166449137046848451773158337767243606261606424913276362754090466120989253952296318465189796412428328991083059523972219966955382707754958040019137264662429483353376158533192591118401837381791959836044546755121159063920983572794016125750025993899437459136636648195643485220540191198122767943404353120853402337419591410219277349962320697530523452320817181743629773295872828911838372512340686439130833404689489777147969109584696294601115494518554540851120376294008705457237948024766165563309526738173191957967587879100918535862790665882519746201898512129668517184176425410348822424077737247521790210866202215287018359428557323964982482238313036068652524958590515459832184140842971210792087122113438031477848891151621472083756313891812790871437650125232525704365736270109049517225134676940152859022297910625186923526509457883184212682262499301738841815162620116606065922944229218555674852420132892970469921105478720541738563834979630144284535288611624001504525951139800632681233176094378761133447469357529942255174469279156753630014955283953777939774743872133899305408892550690409241398552504110692240348505474726927667207418235045776230815918192214600455683278294142646018924278507861985819829680515843472061436034515536666365408205440292174975255400284621613785849267686407255171243128304422015352033049158907856443579664317089740875454862517122528305889131976779359329452205474382050601990073432510504227845726718715107513487556010813703523006800501750412959035815763573671485678771758477794508713511595058190938479597408390578060727964692620507468325792496020310274299180702091542276749936046753480746186942913018736616969904688395458180742373120124947231250480402101998237567631677517383191696710288246578069781880484280154697655010673680643561640383246167342113467380214840773907372282892354543595535558010569062296465601805307583686672474831332946899764377354496982328602860767475879487432722857525744733559778255285053223913541663783311373168758268273347406606271976984463734800453242292873126136405781882644360833093402424043962439388850766963944870988173519914007132718605347463775273181953240149387458827127028359062010986121998584147014516215209057588542115922780252487532646378213057689241914295937077543034521506641777565755516985302034083611280145903443822563089599667265477385082055611010096472589766981646054268981893023601978638725750275395789200740863408187824105324525492518157471737814894948507231182893788841346487773413239689842304826516884580985134463560875486711324601878347606636350807185603683906739083430004112691506396191189751295277003064604022957814178745130841087975552510341627224633209439406690827383398623337502175460868499859113203759087935619550215837506500600539506570315509911795798640588367579488178863044664876238021474358632527689497211734519670323097534007778723762443805448205843156018425264662858819420193982881283972022144813253387787317518866438141416365803276878285248529063602568089702855534708607437036082749182699804342151075285993172580494390938009134097582207448985023003855344853938007592439451121613999340913978495912954714544314900334425477766024229204086020069092900777618917207645226878968163322826546965945498819413993729926162898090894896779927285369216508118570529899303966815232284864514477595746559208239845638263488456828341568798177332436722805838177399062124694967467001632945261318768738200793601005939532432666671278188236239820404824396708185391999938888429923210977344822717446455134486593404907381850096758289177797567654039317251154400642905251379915071878682459215755602241876607833068964463799004129027628135122770123429296552522990607087690099240632760657819119089155542859565580637292021877322049709056505064445469492285995046645860642453587705863237328035957894235687022347037920320196215743857778044678080324557720605843958735141054311464250096594501543969338188155850146666394513277358466299003044960969238854778689903791947000559811334825035103940921076980870277030780157132796504898879508248906977531178184774021501921902628628688612051638510643917951440709891402361947459210723996995283726085414786395226514022655535474933767431545180141456356383275846167720961106375756161988145873913332564165087732115399803518259391300732685566968203049412362588898947024981108725931292031260585705706009398228225058687286516488781795616590360334755694074185226553562073312087604937930399376119978600415180993158042747925671208585913567439117321052705789779617909127173511629691828045571778278410530588966307798021039599603322280289790889900968177220950504912259993350084501404947483029466306052634539281568500960585651311531376172708345759212053707741506583601532070217612959748419895528844112022908670466823217410334711383818743928133446908364845401927638858008551964079993133862243189294830022630244159252480601967245570265091050305935282419674436477415878980107328233629923329300064835293946369917379755509462281658620512460738481295739026179992052262588195935640902891323039829504062148757836781761286880924980974762017773096799720102204616689092927596341153496397847161947622546390297727403775298509985688469024733087702172834445250501948890930773869871955994689055207345170441715674063637447394328330694380616435160203684407597688125816808919688235489063564945469243313928637842071508904513251429266074853609291624327158563976194419895544231972070670352121639306653067019341343160881483341952881425890065303607650212941276678034136699980306046611519674489950494053244617216863019992197383888673628009929383355740941233304321571372568668933192441629107117106417674730181547500650486140188754378502403789049868469397258792277721222077145229213469884214461923682317265249183707772742955920006732007971725642549952825945791686864113286497701965122383021480513937252146332426192360797126405868003827024362126885021647841145389023329408608099647169737400501705802614775066445251927984459174923393262366187623097913150378511411756240371509085355873286036341408500371359749113279596436849849307416132487298557093608407544981658639273898130764573188744906030610676747947654022194378209538827980591343277805846065204984676372474047735546891327744845679949541540543078272715361221367915238441974984056742248157505365362416356763699854402838510980026521064235243535441374633768955394018068310394852578575198856679963954735371703024604050797299908950865469868631022700375930551759042656008739985198109459040732299898663608749840057571461999360257096853417354333939180467697974304551118816753321620898188713905354368899730227952258920969037541145911063851653394955555871030040407089548251917162556286458275469006817283858366567034569202249886572836195405662640700262484675155536275611305919783610172136007223230395245366511583214080822801736062022850276456985692878925141266777488285767284570558058992474087266894985677904704814911981679848534343953500711458286796464335296051204150383084533563948001807911862936651267895469480638306784773439350230069933304471154780022239048099819378391846020911637036956024465735168966509166395738491186647181157991030829492965502042314570422892501934333592717446956402131495717663559072957869365932267991615464850337008370648470415164721417970568034496555346372427868047664543555097504631360633273399541006373128245604051520523787611385849369295067840979207927066749765628828008720777650003946582492489993340553580914171424129225568933145717016062030062385009196190406779399767141990610459135590827073617354603626941611063792421721137375768833715947334227473649646404000995876793992052193466592803575063156333839371350350266209103803408688893587767479307822794653439728138042695867488133834823155362102368458372679485700273141718672613600605405357691642918152235243371274641820709577490721392989014925788143284046370952928882743305796866983463880176230439966764238190612625557347294255983371260403504846330071487282822791965123229441497535976295046050941097096301828384519762323720243372252102787650477870334626770976195304928045240822129860070401584216983259182934394482699206419806686021507748066439419105606864434698065492517189212591150868559416107163781641137565997024313333538258988695536964916445195275362948795134722309998480016767513275523170112487317712607368077331141414294965030168153939454710706724903281548453380049432087833377247169488217212127268764974558195584717982313988470049113316709009562777596836932206675252894377583879024114231041140926112242322288721438685559108015398028859111698149351086799005545418315982165889381186619705642196956302461812245069169028637634835476447164857447420101669189288777194141128739700857769528317658860340395682795353374998989821146686280845533197737421119671560071825820899267681504653675624973631130259748375129146955837443276617367924742998930508792078020909696536293536878621848794057511195445100981999273261360718538482003356928698402702783222689741898788533470309832673693088155464444661463073892960454816510119072358320046462661236006540394157329126475131661102673053136590649458827088614006063216844515552898120394764782898421421194978899505068491890662733026814236175214730472164456566730015658548713914565773112254019849565312250121733733067791283032443552798079290220319383390259401640755230046582703000996616668315651822914436826060849470686390338157422210982056742764224492063793696786742232055534407775491769135193348551080849700810973016094078847439163133795342608023362114582281562739622596621317190132096678868697139953318384741760605554861838372652938688160121537698901330184783648705032404953191460885757509773178854987697283643004222630019600062134047836588830089981129521972808886412982201631799125454418300363601588337118564150240422384204714918048703343399561276650428764196053221534671092040864249328557652670642948079430467618134452767356134243812584924434450130302952101871867826759541552590950886989355879420548637247516036451134997604037919211233846829162717789440099182421558782266331928552340501865384290887317497655083529317015941745014499027265489600197602327820908789044488592610492258688644039113651503574317295455842535192682391962618702408466712781793690544297418752136194224102929475576621963274033408265957479668168186671290168401660009120934607134136216519565764937036014084797204772914306183587199872187170168210336929156289766149060258678107676361778734979769108106382359926350029796287959014408736015586938422021961583558763767928840581086522809130366965945664335112573616046388503535218209593136744737631720238358240422040073358986207278457075608982468193774046416626045263138717006582574701082705778218657026390683640983390096485143126923848564597823249123030169766112831798668154898724504130396996926534246016823753992670309429130389715247997587809582090196639625585281103251049401350573302795009174351516935605859462607339326822162029263835004358397823490020293030977137431101556726219780141021547883989920641123172271071028913789787934711029675233772928398492663841794353940642411310979744204603427449338540592584589607054443912421333179272423300644711289085267468765494350544270689661892895841312759542841870785049135518213451084988500086473442851009247826902701256354507820528495134444662277744611666689955000912219998435968983963065057550657226580449550442830021304767046186783828758192888125753062016049357633710252499849740118833132881437323650570498917391391050363238293845046904314022980474118525573444565243725345971935442149315619891499381384824315500675616883392363555808547296335608743402881658660727847633431058971638360721149727935513117019143999381921337667122362935191351535730761975994969987497244013364906806994099929826187839117245953530661678184086960154034884102171521590277091206685186591969764222593918346669432969444622175403029939214126137986329545882513216096533331239845539912628972819876805814283774453630055696084037673572050520631147067848563313763820615893592388104428748849076342816146931427843965943412774908308941562436333239516943159163152612471114291994794584054199482673987245367119712267261837141883887565266208348194024450791072514849847803363212714525385040200594210425452203974354102124188371211774075972185273797879162628475276180421127079809231086519147811497310751370525688249049872939293863754967197785362274258642603362245745143230877232926133700489437244017572879862398940197947872186713799391566499378314564692359730821479698213145129688688793021251428516021839996659428969514845926597593922871971667248609581827456730871126774595421154133412544037679932461679405350049075738133939829465231683629492105309413972450079848496697133098721763442238954075089491572300873367658442824134839747573221244339259971914184502733915537913147393794047798351343510064473856345630817906242045488749388057901094241491369230694348706254875881381155669442786177880390735075160078889303614700551955632203632652026344719163097139973942916517646871398195444577583330475390209207033423977227643862930814067728192211484831318983515937699397678014837101688923734416735382485790995790589979195721972847030898069509419746434708517988940937645945484753421592532848750595586843439861351474082986850321928235587949078667189768553976438831699986366612296238149408701910938312646122734212755857869863022972954181220735351291425337383456367176876930917533145088098325009255862504616918919690332965408516348793517921641270671455393845725516679428270975136513397989206738614658511411447032822894669639992850364911684193141890218978241382402495429847520893831084751330051055973704738925031423825635759724563489003234011949585483730688657596746564992665551806600498922573711142653069037836431117756447225821960106089966411499750070708411035975227478053430352309581084678433379115712834151425739864461011834147458123531516686281510821834689270926452383869406072137488281719092857443460376807242427473972186308559832487885851573220076329349636804985198094122574442947748756634346360885175374594014556110572127219564250220234913467117561064332142839880331821922627273083459374442126766395449094867895975072406475722623401868233056455606091787583450384920161369622025771798064810924399450394964477069540688699102646185750900742409760586276174819590214371572739325704411853060821029383769883252843487220793376997814619668617306672561594994879544870690607773977693233424683787658247135311433963508511181899511321198580786689865002287996014964173767067700579825710511606945655927510204145225735286088892792477305469760889181034166313371748761059425518325103667591896164589589016174644931338867392111158093851336923326061538987876858729519998628186722483919523313026738970664064649007558211070964679251423193340221610976527631470119584099841256957541727569308946616850602218624571976695265241569241376756079714169022312758859264187982296877852497969970623871395110112984033891287868331555645491120341869918467041787032212097870025139589445583109591286951875233895184009985755476334620269817634495895739585100849488116312931796518546603717629173765076396735370272731846660077194359429601447473259721577181745148613561466864648794857160118875332940299722499169085321323683746777390033924883144211289391507046083639973831298968114430107281661448389534639478304248930321427402934860535741317864132793859121379301513594303306076137155440422923992239421661605084141359542054324012270070720011062272848332271345825794626383346882911049327914007195924133070329832735689014019368412041334125357494717108381150212448807948723776805281297293822546549087205539238769575164056811116364990821343044931212555187791824239836963035621048296473510925990812516865016450026338324676133450282103315275569725836158503954094379649349509058749996988396733141142180596049433248229933140558375260456866186218089497607620635813385236661815454046709302280280164661466941646805658839123580134794278233511429064710650321458380320604084010371706007061909605299472812235570584924116912854852993141067443281632812702758904005026948853333056546258144742176370160837261192754788291826061961058111443800323423128993559983935103684028574333133597029597890362149119102360695232597903262458585571199388104585910498658256743035728731301436641833289766729603037442668442218588345747649978582360641638346145204018441622307949396849048289116201459450718109872047915751779838711229571333788547985625026968182991335527641733460991297678523104389793497577749096653444489043571465345028322829697276619790417425897493995983920032846806527341504706087278884582696162694809235062619423730921823719621385931397238811303399553885054609286773587100588327096571623195935146376035481427226037390881105295816217170991618521506837649667108126913261509141026621803077158811956781151572418495828326645388502991997058971798732242577338461318697281044346607983156108665271789334896889324683349537368516603435209118405178378145394160674980594990627362883362036923003048312671460907844236573693628976445111142671527224318007196425429928722929913295439902132158236585014471461265754106461743767802986884588400747196437672846074245546736959968156232744572051416599594017792171667409500770099185330151167638231489259631832453866182529748283331362763659393942072567088495662283757978844532417346328980330850262528644336207097587391898873614116006140828956852311843561272441331504082434246435681152273251089753547459113974341013576492169139419385277649776574114254509294487435113405059966624919022937515397968797995916059428034556795180578671683915971995288790774328114775532128909709792777002488627309596884679835248778359523369399709224988073536182698901016504380176719871151688862448089301338509162733716202690488853373905385333734544439305414233417109480076792228281350098498435931029400285534187020767348151467926715912744548282795981590439331427473602371538164949858855427778725598076070581689806197710839861912927397089627853505141956778519844209217778708300348575183819754539089615066601322223592441818855536039758110575183680514065142157956203103078024787988462905070805678568882749503925640128360781359156493629007869617018431656400181930241043601910074178562632799555128480062028170243072583532747402492518067361360630489914693020596319833750566922661626030041830362291148996710728416633047599144619785204542253935167985299700207439098454079647902640245347009165492378163122186676388974386672762083432192695111335788356720968592146415067178470750437412883853617318480709369804004595727483368239378779182422303436746025902565087312243328888031554560736916542615441993396816786667076966813061493248112907127217722208058951937766838300930495913675154635521486677279503964430636146952424088520757212951798021605299761852542150148627112438804756415885094322987353438036345564375215492931831359161168583308260572559026924190798962590362064198343969371603043741589166794058700264900686978031467931123623378548394548693407036802072750006714476659321898228073664459158902290065369431409397262061325064239359972447120278064940019232286548264038892744465206681897627069044553304380465995552577894101333966649317723832652330569700043562945953157183388974905384613169678572096944962649149717067577628339770676302566533443547456911685369381305936348084324148024689604452553182118255174167561816687114652172209622470637438068529191246490748664085155526491389978215840410598065525703059395075051304452920000869397906242926545010823428508857267332758473357429320979461084621501768500514833921314311354792875870598172993229759882062382732221241281566930655550707027915051246716910690082296572320731740909247649146265695968245042169860320986290498979707217378156708280183650258153192968310005061387302225311814952038740589842180307178154594105696053186904834757052687415530524715814912851787728389840494182040649586926178478452591943015263719301082693963490967394292428469982560279851349903651211290230568997749812506368416711848359093759716893243605669282706276810440278167989693250152030258860717963275125342755329751095252938704743825949015665620862934088247413249824744607778262133608370571821076110187514118804098369137880113469920063597534267837810409014638810626557741082672920211182459848736884505720629598868858213147843631993943055044421418412771128202061557559368461586604615728493039325322059443724720600316878078755467781333765358262667579488828397077051091857542921174896047508013259125556720412041468926500274452561620874533148500967248669985921610455954501860396876518096760198780464417820147383821613105112153366301934352431802071647610852226641810002504384297748859195950702027901897299693587902293039331380966163848607720469627067154345554533870640978655395796733576677728148505999882027899004830864777465252076014023044456462491237525397778411742446576459564590953138697851119936364142245297781559890275175682573115611410860162341973610820256303414778727541542175971418153605982209368761501597630533001172454857074710107767114916382572172594874821020280334909947488457916081216056881507405981186067275226705244238377543348473351724782533951349409656020956130281055980093498598449156632371723345734626396350661993814034652146289487634535056574502793568148452430332036446639076494493283881511230824858344381052248466799109760254477972831546077504876863178966235059911608969517121193026370758437238393252125643177822975999338199559775332902395504411315373423789992260553455763312086459754951328162285585354635683894880363063331606208106169391531801970752738358963188858525653892555011973978987785436602008940390722444500417035116888921073259504247514550406466572728532619832047971895667037028564703417997371654159508544423232735677238967552836200659250229444049276313669738240426668424779397311088608156535631967785076182190877714897063454897610527147852824046883989372946567763660095068329455514621447539175715887903036721297546028019584378883575887935861204773310222361416544239629290679528237792800096072994690434613268759853002442756539205167560781422579322913013305596357849155016969179709664974371752074613034810726924745212780640265225257870054122460225167512715520794620827927768104872456888684217158461930342478974212291160241458980527265361180388139858361382378423160145226899387504727763544056151192361783754071991026065517837666177418137612150745414026189457327011185141971565251539389409971636888575285621584976807116879849585643292839485218281730954734838755291335758051962797444566623663543859727491252815215995931036909293124717104158156586588535167720518718934721774800504272119249526482131078258735485195854352452856664002012895268979491037375976869142868177914608479959129682575334368607346548418682608470813214786927529469581399931089984794081997728599746332998402029546703864226412383547383874680500007345959914207093042502560526301117146765041402638994518594812478614871983205191093586783329865951342750208948340825437093257403363745966215836289705039427993810488210192114442343018748334544879392473954813336705301976854890630215943930750949142537147579255876405176317425448454767257904115193620678629987272999019331488273560616969284147348775472001022211507974436775040107007247410656806053187659546725890222408607851104310410943930269467808522014455108820298867614592945874295044705769370926175653351747362933774319034039201324170052486503616793864578094532630288022658331319964332664409594528866829429176055847199037423773903608632231564404002053827836320444661615380703177955518569052144567737026683791097792807749825725837268454711827443927736927634206623543674965291595409872750408495854587193093998455831948464641832076331911118066261083117605434728770918998142221951302304850302249713851664578406510682106841056486711807578932339007519565949512667685135468810262118626773401452899986921724639132535277557595670289558031290541091417890425406823586729538916969696317097592964818682777783690721980559632508272308076005824816685492630287030786595065397212811771707420708148405494894525636184228561428092523511266487976925150059900156774881527406568257810832522851887145864905885061635857317755682908823543099912109166831847378448947720553413995773401594674271735720470376829003454070349092228713729487058358093940600059010679425770091659897437900439411521567186665131741617031291818510521309045412397505798022041494202275811038025166213210148328383339810363619448675524438605063746532550015228547585648062742072450440783843140410459063029089551107612450369565226360094778022263256880480218853021446454821219559175114929061440724451260600260031983526300292236532249026282915199900467495679687547439657516699542584461284972519436247608406969696111766661124005414108828095903346104915512823252073522568750166958360587907467682507708597759836102252978341338344922065306095330386599359362978881580574349324602862698885088812087919646349040075302086372928174892563553536753277350595557467447763704023730210997715526502385550647294405769555233389998235087506165544989908322624094393227885764389847455910379492654336431321178760607068917991267624733449720263819484857849475450956158849136980391381959340261880617408816401128804383465944331488380858435036653860461083362418294897171425170090513686006515122584406400055736229850238643321545623500579042859243942789846623080558301471953205641057222594586440122095378756832292130771685470544916311799968902054879013480405559976061864429461870701523823452612292450269812517785864675368337745918932705398441209144204625818403898223819126933518730621977951512221431454532011881814398665356759730636662094893144905526113386998749945654597997215279816469383344921985122058320158171823383545158212412049937942610605311977551488485990104910581395824497580801852545587155693359232909297828382759200952044288987025487063684811621070363155392271600487513348844948326277355733004429212399554976062755099999417940254287846743441732702298789967651577949193833186875322658673218075240996429704121671222915266848005143827341088884105915774258292717516316400739670978843611526466745858823250997544984910026977282090668739863972040296437507784391348501745992624694542273677329731476387298931506604704577879666947423283200081832213945415319357535883746638278923808946381214113922410141300475285693294774303774253440912610441686979854501135485588585197237807332600386183903856706628545148970077642722818516707775067207455176191871942582289548557084473242677945111367289493309753834146990409618082195009196150568713226824186881933187235697328521136937690691935241271415999175275820656611460529898335385775068426675362986639134649203627115536464249300683711546960881286708180511941974878468608519397756046932517585550437506936940943863464484199487516234461444116340137276417135995341887506245528241484640310906223659361900345164880604332416166565341387719829401255548477887529871960959780110057078648932052924557171781199902965456589000422422616042851229369422716457889690484639002709650404012415859481134843250494084490716490909472807552497922388490835901143961281363581349153783888890402814797960904448193760555572292429340721694447843782355240271823304579904601162596504286164719132565921811381750988949540335612310741048164122583650630218912607472101231711499127936866619586224337539046676856455554637851940490395250302902468508935111035342865416911783696939463635081566223225975589990039528503001591534752523212210461600259900594328155895419121055584902510405331833118032883578005296769987736813023440992193915824204816783469844621290058509489749520058575649632653329486290228780739800879697198522155874574795234047629443963656351668052383524800140265520804335192413536396862523862640672754537458057335643325601708177212424756664943078768165856120531526678190598596647342845521469776314731630992124943106697525193426901422202817053814337567127321875354351819621915774505192374353228085202931090171157587727053911352044260808165411665086665443399219708682746740508727167020195315066064438105228798996541548191252018735944221964897359221782374798877075396172772778614245797759815162386285265541589317638642720281805826181924675599441136339731874641501509054303798998753950384443202276052264881475344330616573504688090822665084076469827291095475640294870207020699708948453572302839125460178773781245832295077398018590412863004982559642586501023523084386216685872813310841563883321160466246459450844908977587831046075838790763831790960697954769196791444614855748304361713317429656522063825003993609959512934256849392818280524475454119315208649727856315358065045187819165374862667675684309470226644785329659418660348173457583792005522154226907717302554882522302852098504762528047338504862447311656892318087564268907728479024773708411958496092832110161527203528886034292917367386283402959637747512878349942558260436126047850198730875225814023804426865467236648794323205189594482140568951754157346734594744571753330290482099089619166344241401335765387521140503001548859337500664902249342960155951458530458913097084872852110176118727367880492324326254466793360637572569575616767199066957330834629011962483104655883715596823615432495354982113577727541156171889346244526876299833207785407955804049566783123108616949466586010947100048829245222530632405892123121586132128264728666071663283475553158863110729570603054040089164630014366290778561207551060515590313935527025805693667584397960106020597469472960511927586249695675651278610877554431507382960661862088558230849655430516216014910930155739194583353990631748365226376344519954345825908587219847866779049965518940173395072405630133124236749233404461477607157356925031409047349616210498436886369793262620420963166497069302353300858032592645835755658036456817260330291476500954845953207262713723928309903698381922759417172398860857543905907841808011900129681583522201766485042215855874036721446919035338895991710269754332440610211816291408070957813898440000300077661521562354193700240834312053772221577887108950455713879509064009965986925408307063797286883801470666734301976001648310455656733707124139323251933990005115800878084249379878325404485608405776156054676746804997522815535837082025050789435364277593244383503601008513919745824179156986692606013888967605847804582646273732554318899867795131015951002169714094195208890363954771023457645876176364198359432863966453633418802666363591080730554125970974933873839239376309860692695594165306867458661564561229823505199229381593730923231458612085215980904486447348751081061886830420387035153939903159178688479527036578758181668213549545714257931104775297515569725236397890419900815257383315753926611799124408076375784258633758726678222855520208245053375571018866050598002488645831463040923660538088909808943013417172303384007486270614354370214522633040184747127502226123802633699992033490058409005248199295454763686143891038529330082474416661789236125739540603399242476634108488935866097009965283110391314934660457425772073136259800122320552559885824987416336968353437845908150840702161380688041754280391234769385577414447195165243297888125347792765499490224880040069576087792113939275614437414762469695903373612689467056418058273745021006353500302169094652036846639135986326757682600606840678436757096649078280429080240534329337082601920459785574487367184891550913660049840877253819073657017074195634534136075255880103069573598405134803619842373606520341169763959127438037144711896826131807261016763732606427653325296922233107572126545555601942266425984747314501262523390389694964539642093403515567698275937466385611649197216487497253841719387872212991276479648941391165048606434364048613411733081126515595125813208360060814949132916183929182324870183839565331348697768501552365567129417225767250969453054755112157974609413594657008269717310757493817415629746354567597239876394885289291721165289834745398242430968646552467735012795535198740868650702939479082096948411853847570786922225610805520389424253877469063586192362427287064794803049765970617015683819277178528089882690884459320780916935948064151560520410855423983667690716665810779058746703530003973870795033070488155988634767660179470488007534793488746971792508354084451689563705429489820026426958855247692061172626160740810852670998654357787953713376514900492741268325065066811069417598168548219178812976772552430258586049665210526690523463676582060726911736192196503871422994078378743829480538180874175078580352723761739020984930980753534868417939039655830747120182542913490536866951115853875253310397548551666097117411886809765668514910429076905886714353499743934914855296563249284798392162887789008536396447251647296884132107929193075896998225912099007717436149281490659319319168858833171781762996202665132102676742261835288445814931966542590690420039094690587976267973482315534527717970559354072746756833242519333769491121043232125885050828303862726896000791699068598922087842133661463523119547822546676485590062866015298262480277319563000614481229257040084212058317387190875906402425584229125842596861304383018892968059638256862749296923885782114884526743915050658806540022106227479361795003477010431947893447432317903870039755453410754055139694387562726354898479027523103759047922002794948191065875621965562140014057851134099541405393043141605986325655218998693330249583107513188274951739721533403781264727699822205570361649429412196027271889947742906729198522545183435129684191995679955456954558815156094159645165302137162392155229298666264059428259620575701201503058378969550898690759497567471391078421238747431315124116880912308115187410424241378009212626297511330315909860200293602245947633751470421361488341437162618677436389707397010206292579222044887185110662609786272033141334425045450560680569533896199480232136687434272929146400524857216045554025753050428225652201465982646424306953791709331636953501009867575242188067957758608947622488379128428707358457897925236794517356397000634900060857659704940777917814080974859437874971455784606210768997347664958720185928455211943752690114935129733712548363396536566683362551275425925548893583394734529629302474425291284684556319817105957859380204289671397865683824806133129449436634844505453968720098356664615538752460869363302474303459268696430530390559005195545353886540357390240352730015559075789316877927122635542468691597112065738485688474191419454367110218098907502916188349974847615456851733790380580884511333351093006227875891646321939490001731166692228250244159983290110588066466150940552529984181747517462602653521514250425648265464409992429049415997396541461017550549007233149113318271960108318220998221698923035148342500214542484735184647615651520194259206189250638538016585237761956155538265714448002751201324022285686998762735770342176741987546522097661671329939503527006342614579501636849899910756640747493066434389694686376276462583822446151886204126314624222728796836305037885883081731435037432845420584214200687073073695875788973947696728378414790864224084310550821641934927631221633961306847131936942593644867706344136026814823071955408335437459196968854945396432604813281419749726625479281403484104047448082518801127330404185007806932418295423159972482083236929725240173179570481151337232448440342327133210838864725176997166347300168645806725902694708855174107345898290567379613996821659144486469462662291424076782577876667919929912901618517131331002068588266730487833778174026607714163591648829161979962676889947996734528686375583159933209022790064379493319237646419911534045164319333855570018687031501189553954778203855414241760893626797412601395803797064392750944480596786293108332987220463299770324859938477209053056423525681201580668804636825398089530953261878646628817644890705697511069163938500409612158613644107732103501082702209085239387626551309326617515323289545858019437198739975891452304135733982414031092796830022540292315155548345005809290521779140656642616767496346453503032242088563798144153191184388533251734811002711178194069525125297200569664196574378389039326004726639030424480115026426738039018432124188615022175715284443902517368812809144970992606877446884831068140661502400078924444845258499069169888365772450521937923408646574358285476692233684396096438100337152558943452461008600007550906282996225045180204077801952503946071626281438258759438174108606950618877376148289664037236595232536288108470975910448004608017578531324450267437113007520603508987812336140279160369463018976187457746732522096565809861950376015376000275881284544296038268066158484219118275400705464772311526092773843989973007094480972475759028166997276735581689096714218753835082260305386570361573456852615757065901537967499352703554724738202631052290295244117856572777551144339289488199607834529317153202452546128534695987150858086236942127072228853460344690987945266565795709402791084751945793077676807608577203863986502736840816371619901118577438537338544417918502710477858139684377021632011105276794143956070308368522854444034835383095853811941797664570119063337833446253022740456900872366865948361852511936606656055968873680251964850172241859173201780221358821901255286355736211445635026220307742782223244302489069765543824137302061160080036846155468111927766328835779165440109383805849888992325364279723486461082365821762223540690439551270010669859481782360134727101850753930884097802648597779723471188705996940707133799191533278294010172535823469524183779877685521519274898601634611468378981168043973036857893518829170912804698797052647443773077556840789310656949615169123333505483648423833158680714841393092804197598078075045394916173619428439679438959519153884097631486081901450576276386311748429155093049425288236173607018213954159352017515216449901834755472181662105533377423137662925097903742800371887373789036377394141852332713774629608002353985178666716457185426531485447735204214149818858579944628987154673806394876149522458380125995351716323820471406257158382946729219840629342879661880735994242587783280637579784175126985261166554430289714505249109314186142000891984569047866152295082700902216403162236785250806213238648160028468134822253291422907376646963132223302313215778546001421683749448419708154701537883493215448376501935422723288826504899123103834052009170150187697211175360023249183940027058368237286605677172625064754034551607833398793903994099478804855201239958038529519387371192932864988739306783440474857162539639618743657538333770100927158779393922731224336063835345492445159559463387453015373705824388000738368239236188845656296176293680078834390856625913249038723512326446361813260391378162692887784361800355311699497529661271575581535022809918888580383969436016288462539377834361411965311735223161042779528088191682063980326234145256967687067686171881337776345595213891582018657410679268747635409663967184637315811053433617342744954543496385553010031004013513666650538247245306457854166396731969785554347579124886645269219889467680386596024563389658491335409563544794618280656697070234375387826346342116538670992335793639729837871990261717749880462199456953448420405929092345997264284717362505479482130329078798348721967907912781378585903053860013077273215710444079550134008132598392562550206443450686118297050107380360955631663862632789094042625531696844688666156426347329150563639204768075711449557971382171224989003359600380167260694120279227601313189480613795755727403969876948449689789771741002447847886432564240555161408647117527917535037022433059818940467980160516312191945415799991683546080690078903553760815412036496989458269791902287348435262932429066388948061707202940829355140560024496696841289324365221241685466167510600367013864636385923320322765867044367270245882313510200230251395312591768395130043221333179264797083906883547267558327804250210135572091895170583800790222965671665495116113494362064687178680445064370359125548730434372229160048256458624622148643330602266516923433507771274672662557486933515665771630430198333979833076883489762032885879947232474592168140196421682398381907892965576951804603527656339916408465682191708120069567694613661546088455123372182725554355628434138008040224815198605365421114172548150884570831456503121606491615533998133262219719774466524748439240505512657292675834607048848109746223976884602500652989870064224889790627888534364743314545056448503189909500944924343353967991939715512794606727522384863118407972567050564447887638988579623715931358980267323235608677271804442942425510057756089881188310491319938487159913029483608410405326404430815742210101444905105989153435219450634155406952989103873532301602683916431457486985935651076310355397144252918998457632314606228447854688142071055804991193397253931370532032918272116347649398758418628230894064306256258950895454064855122698006905706540845718948127019362405943456433866771849835682522158927142994035731838676895497292236750477813518044341502260068259177877042818073027509029006522174510684895740750135342208288725009615910221345403665754490181755269779425323033088613962982466570930122166740051398247959630540961449518533933575556367077805006373415516227780203107358603266090597617051520468817099560927887223908824978060159876564880838271413518349824465785850362569945000284911392470296126691793039148308281736885042685114232239749773667663471037869526029388038992842343794296617773760654910091068290690749605858156115552700699911187653617794929013651978834397154860586954434395992083810261073906455120020464692394629838266062085087528775748757203046108537021574031721228479301247749447164197833020395324973870022220564826930951109729048095951124935254230762395411812244666403867259970807804853777619302574419352166349273022023591906547642467065051362593506392157274794640283179791816366823861884000698198987960632628633437366782918755634876081631675780226430237931847021406408003125380871014333225623368229219181377754310232499665931483544997489407804070202669196695201537514303128259004227758910905348349603656768912778163516301470141991457078163526862169409336760673803202398806116253974447626689298032313778740162029354001291038317314387852208760073788774352087394686718049496106262618859287365365547806735102163416859101843346509590905899138806975753779540949800800531475472748544360265510328195106949890724981716240226226017397408419110605229252213474596436705374879925667279509731132485086269830283990247399153225706129511880231149416235100566954098288685602978595687299055478083635606160215403958026422947773223794296883785130209424351157741572057479909883561878497825780517225183541170804117500564186456692095623778586561423229880455694474912611165752361019212784359380339267680607536508625181129389296276873352486216699329365824411418681945787136065404144783523393635456669048465583983151985919213945358315195138365645069955592401941940789558092809132052494213132809585629124294905882864670173134151375855455539699153214503985330492419529560002377658450275420610154134577845590272199288953409570708534280369265662046046874767692041634613726096994458409900478429473331984732445654394570581824013553026142878743033520103354571419782762221699939212026376085547629638449250123159207654114165552983795674901259765770434308600670984448787354145278796513234722836026168591392076329372719529302443985623762569650501784807198470674850638654004995220850473590247465236360651628037466037570460556158524371785096244161389192232152506354317383095707342364561950674410564131412955761123162151298819234783425657150299242023956963168190540122176935912518152950641027176655772436636328970714904846033964953149714166042173190083247254751785550986928161065666197484830676801590291090235856586378036199802143404578354494043076310011168373631006322283127250263549233941463190676604193024599117746937123306090982950230147303935614702088931307807067787472598631455282333727465999925606366040177085177249230583633064815179090178336033730133701720004977160952734826063812160259238060624003628553936373608831655238964287778545514977894365980659847767607956457938739037833803024051126132233192095555072170474175442125523168126818094482622675482953419616017505771312604563372073334064375023135617182569686871800967300097198375478153059906075263076927760612214015918760704390212642721810694914879212978178429910312043822557493247456874396000573297723346138198780507411732782537937375209588482443622308363978616454664902919732863890909637354305613653524264732100308708351251003637281203684930819443942337291494261841314651180101256445206199578282240143066704632809928072141454650865335866778139097365584616702165877307938247026446002964706719682720862438115170779748058516140227995922269168936160640499728976076701933423783614552188973049522566904873097075735133457884833866294189386658478352381072559939247477096288331468027142425424183130060979143793867612953181176097055567371994416143209530740366798994000453399669517274447247771287966772373972416978730867108532679513126847212799209409167467632761770142516436370652702998593129711936941676848965248565625530625634468204047109951943878747668241644744070101916805985342111451886813694385962584637348796760333844295424188759270787243980532757448112841698726561742366848980681242891953730475349023670979640440030975551886937263137740386512667517076713901665759339066230298899076117344713165740899835854355138243562281574339281366765020937051265363253833100572289070717136790038528283112035146330372898743401698200968500993251011981296149062681944945056748823863096672350329048063154884133241973466867038796793161637989749281162723708477255631763558460302562938707614500456084152062862725801350695163614342403271097339582932885721917021441507715992139677007545270398632360113606477777409205204067676653515412431913471606576439599017417060378557228550472970757616600452451530926298561606382813604370651619256771889397092248918921850539027755242708127443552265686264125843177841195266290615413995727834025033588210127586183125557783658710384212351815302679465591360352265594273071990373411997874500307853474505055998101069391413032458110184604549989178450312232651075463295259023947906924488812026833891226622888560046011645434364369745163456286208586983386748634498606639248648838486260025957811659846266802416462131250507316096558805386627179658230213200952262277640614539083797493808579498142731005076342021903864454233702662104693917742771863312951960292955109048086043974013540820612852334110327955025674898896152297335251232990258528443535065267547218974176199789803921892295758192687363941370864302117718238985900246128624575262825600184064336016338313359553666686406794360196700559790956577308467723795453623183439987898598269237414562113721671737624254736536588601053803082469119129412774488037150766713311563548429938592089035004737988307800904839541963213580252624797846812497156269362338736431493792972356461035859322980428408662013570620760265815293480241527103741105038826475920172241358007206369273635089381891679750488472391663048545131331822670543825259962969458065620891395091401032459422451337283486683484766977345334359516455852346837811446885836664423088224012842278985517583949060095810503672603817302740655800924816614794880592207061649214957861630171968061684003743066420639625563355712523889822011899446239079612430606973638903137160401196395256031781308717764404512929344045862837905197956415659467220084193643715109271874770629228658568578860816840874466510451479721851176551969527735239207626172534841241632551144068658683458225416184502495737171669594545966561735368028822273603013972449221528970844863176164843003298377597095309476789796857057442827872615524323640669827475814735478588097258121516354445373137918481898461689401912753526403757247039494905851691468978419464306359312220583151747631782608766181747806646686236886079797423261584493316289421207154907738693478053915059697952538014394934066016628683126012450487082955579378454530912837968250581036268641683545205019218313673584559803750542635518544064591890788080263184191722321403225184784251910326678672936024413802944002588882281820631966208702424129702437780899026098159280128874539830740790526754272518125111143195325691934573710740600787399623733920233981130424762078586037329130122730422939451015398715365851858690005939907996273668205937135844762622869787756448844729483975853139269434834733873008372803882346365838978905080492237339704791298999839937476656973682435265663511545191943012908315612543725129301839889202285364544659127693684880996554671452933277529260207865957375005011723380242402195783478406659918862125729471998310615182685022937286755209896055078364159623013812914632885380987714400966190811207576368593031154904396205206297539845138878063775702623668879444176373588946009603982492987341429118409494615923594343860491973364754418855036936079075945343717295454761916890406321096717165364434727441954796272277739140869786750487343580472653316191079110697791512396615323028043819388319277241821693477395327072638942187036368909408033456520061338012269475760742227295946987742060985336491775263609874699417516972099518238974541849029547729859061698987781409557473905692203932912729215293241399187766831255900518822266902606358334089957354162269165827716540371626346109794783320427162093312408500162790010982795898048665146234655847016075501712735233717364078777920644888147204401126776036474247552806429269140982774373431683802509120282840270632063548252972879126484613792986434203747436983745021136029248649955666846628484651916058791620916696691888867184575452237220627816070421789080553608500212571252838940415154557999079486926959940724717449391444354377285143460789381564571925492865469027050046231660854661376625067912115679895169602810384166995439628866301423436969359911484812070018413676313003311112934889085022211085774539330134875504821972532119585420600393197338526373205633378114989286649189831821095081006713592377677013218823804812956001176160609744203923399260903661446963345360377135456400229187718098558760335592702239874720042883031048172937564641253283126834099069888457263293912375624234959267589332623057958210335132957559904611139515044672181998614619284701967010890775689663751174178269518111348762552283475090541121867642745019717216387742191652835791473757306930442072726404097136860864679031691645753275736462774629059914605945383078501886219190502763552603125280176090481437815850736629573577432962747634613750359707984814590523841279343923910893348111164250883302090048008211039617323579229506224875783609831909091722604964385742884537895787952210237749971981753994838310970060889442616989852843829580698986749852111978123862545999732348243063329167659519790705491548218166213071345570561740839220277222112681187092698737865260715011654173597504714403741667460700175381247101865517003076067913231591327229481956938365237847075323642569497045621646399598752464922411887109390874887457369323168835997042643718246047801942216841234150100475806723342410569449835494099264439716506512978344998717922837561333384246279082489895331469664955394749989392110279193364202824066927930774347684603522874362538920634658625985788452938494685879621983286552474126841217447456572976588377257344434792163791541078082063569591459365007424641040030637758491393548415786261191448466784559262569982294637410262836136080871109123919797713776787405536029209272273344748762202964059079676855784190655699574664554041564401098342119669888204126400038904672363013760896147147225325899270484731015759927833438410784625910174740046647122557955186290000497338492394633615924848721006600652726424989576108633602405120976353584654159080333535223994060709102078881848346184659186870889509618085685253811571045879870383353788154223726686338647355689555608050930533450074081979008461422027000829803998935011060347382694710178150725924172265874165351881730803567694664725200787220423285511485593404489896775311719565324562696310819004256050363910263624457694615889807159194369394244725029732534784359934065831472070346839458968537792677337684241537299711498922199872565986982845759205220609034333804539442023115984174226619046318839747362059089685383516969775918635205161116415925067669650798971235475943180955392034849826517226250800495594285574439529525735533911159750812608260093716015877438253134292051395478387144790579000697805882391656496646662910996536384320189803756492443019525059203424077901719149200465280922581724035364909126323117381852957338692118886158854543945642878237741905433679258866935292809574500680474303806327931138382419047414586504952478871526805098196074490852835976174223510745082348134590900141126741340471591053013042415064088681034194209295164838891320716084406633505059107613804243174908589229157382146008848238059492448868009505405985321439922633131968796329062740920584803075114979928949629535722875771887071944030383913149847337169832052230077032647065699785008706646198771998920388968936990305320086213748994206852282839958455823908438008775961253806629261218459984041472258962559546057145846500940749848059094984713537695028022103183711695164879920126295554794074851041115748134312724524458348789756687412597889887009366134916914079820677727464188370986552254279617688198344849398144659324845014400220899801087832806156351892640098402504543662001879734023779901082302276491366069762911669907910488685229572564629108713801088991810626760799421891683820446442970542289549258370581322447065105513842028251244931397333376975862412502909777455294728394392160347308886722864320079425562381705145199646567694987144408289035460820509960304375192436441613657855574741982017083188515205190211983940797524541113938543506543967345376098488425134156596075907370614820624202176211016412513249893937240380482335384482777734895227816735033644866656735535279212543541363036757939645867470026729383313580569026862634410720955497850994739699966464747158526773317801419860087663453817133533375362004422000701390845407866531520586803274115913125268044134863055892399074423062394705177775537946681695105385129208033886661200610472058093073428082905212579022158747828018487337825967922203159394989636221311798089077011822111907518278228038606472058096337157127100108179595661638287493154507689458731005555367672021436927049895330525802691126924463179589583789157258685019448240709808672234168475960495911984454272679739718128428290958280251790551297031869382321591458374371005617508228403667380762447781263354144524121801066671500139717206690996933083123592784095736574907691974907812487768977180954234585932258554371330282398930592900111366198626719829138828016043218597576152842204823530578765999191752141413309287023521587806281753388533061371213021372752129294824412478862384764259636627838922671122108136491855882935424705315987989730560449141396230211021454317850899433684986814717019601328292344881700948054792437107266405617586476437970733193802904662102629186131363693095091361538788200733023358306936939222460579859247015620567845685202659870728948104546025034315909328364490925834272327161028424226659103400312894033657066643723841676058243842467093315858913361595899328665320288856124520421232202686050326404201302840780956268805134839672945082377631197991729505093280010639291618920653599412037279930418688007271232492140284248398664930893221852801523151552965925928317974954656028600571161188181646106766866651352845810406556557316336288327966471733593513824692079406023895386582873078136080578607402431882592551022763093048667388573632009941789954344235332349241415659796555550790603357756667983074129714006988768081302227299894506493667125046730454316593395795355993047312434222713586235842632983879749086391715644095248642208829622941070036199042221325612974676462660917900213942189675156403043897712830583025027476425469242419307016677119968229529502393349096736646953711370003440001671483147719593948221069183449857903462738340254609514891958319610041854660713853019962387354505445750625289887292055532677664269706027832823278080208618864008689678389113393633477218409770768751972740246637740249172600580693307268901164462962729405932189564611964692237636489360142809484308637746718652662425059237627532401912874020557565424054442727030922965660214301537030511557004464811385236051853676833440557530088638799327052550794520252235073258946526921336105493767505774540706029207764381472825273696668792994982184281505732245153895337161075441283590569153579263462220322059103141941075059530030989481584819661112167692764440467545910437395340483244480828215435355491694743399420692925069399047819622901149613170200396238204556235056439617182894226617107422104079193903477893451654675787387137337525182689857150793454021132145408655388532549805564654387416309507731169759624513658265002658962947341398434598836944629543178817906460919316067247209881551788318278134356064607430323527744163706430990980887773313514063229213050671024569112539675646024236436130737179709478342136976431074352481621808049603523978605761215372562608240009145816466020813451106729965387773950023760083134344420468449693084701245627879789986714163513127868173710790337008922486947719740487054003509608474113756000925664178061632599197963638060086522644587031391896232737487023156548608707852556860115490768621602046100219553568701394138145443203205492459948761594675281160274556481611760732628224887886935323355287995508174882462847636267964350229119401178735674773974291574916548664912979439573383623977330522951705572721755224439888209456797006457942646073445514459368608059179945629771887885153718236002112609246498921300853031807727789984451248393347398057956715734944091867866928853581553605942611862800526806481757051023371615390791086230048770103334996339403736337353961167270238980430393902946152357779733157592846487592648467243024635134931044322743808911618865706172053617760426053667348701269946255782407888249716744736189651418638160691565750377804119480408218611245142449994395321833448995361398778582657818112297490564728062799750869756005601099260140874739967921742898160745666994119043308280626996174594335698811152144211314968636518069894461747589189259922681069470403445527760642451616047685962120961771548090058760970985984446699911778085163716990708567821248891760181406236236068073056773652099897193191032863565947276479621794842886510004386356240341114145294379035866347780809604159657906251579817528090013296620468835982556261480423188352756032486938572568364930312700969236099280753081319531336635997431559895508019883816106164231247878978808659466269056338563065093545120186243048265774507199257991586295477502760352676600247656702737933398643370404541293682425530980118945448781645040528717923874548980311924981011311055705466143322490924853000839429363387550745010970075665774222806055326871067526089916169729285174256883307994756629597007027809537186065824397666766404518526784483405400817607247177680210669554023010095728165904939137038551543814282528670762347427968469064234715946951060563984262804434250349396930239343193178982019103214904371863970824717780456883252140882510915369565335112549975445799135651849583991534761340362009291886789480303483315718985802841003586906059705371518892016092778784276751333540445226105533819293574536498120744321281205948207153719542898332440828057909868057807798351050925403146535197978181904956402723399877408885931430831420686412449014111497746130903362323262295449235703384459521556795671288739979138269016911615850948612013365597134147829240268110678061631602295435433119743130240405614233163856161513276603451024823259983536625153962296363686733903431702514850121383210315569596018813287650766478756393091864939138401260661334845247630560583805383574059276348817092805620521231551030457118760796860053695938948331504501319601699402464193575644697482702097507868968106675475362182251818097247260048101470513892957365154347393214468425821977106426695554614084687266627530278596250114638734237157673151768105705342296293177300031238146297221488546792050021010012747683483751264878291694793947811662677824960481158581390069779312696861754882771539052502230140081015514194779720162012594174820399199988830667272893533409705736684737850890272893424412806462101381125276913016106469692847389043688500966866252540999460382756408213476275537636008162421427379976967341217061152143536908751509930578936363682011191206106865661010329656862458148064539367511213075089690471204487287148177022284561195550890689940708373249755873843594898968756542683191198365880648087875908151565743855874523171700269916625572909821632093168305182818636918319818497632423700742485272884483793465193589190747135204408798863864205211741944963933231176524436281133696713579428571654029835118730063849134138021543745647340757096740970525346931017854505782571604496820536240435274834657052489273415401627163888740191720157405584082118432648423053398581233333922821075991649133776638119587119418308166675287352380557522908401371876629792905368825424342985464015572192304484630095148361034139990579254409774716950421176880346348889409463485935458389070512026418082685283657919952189075203414638637369266863075330266304757808329235367923573537309067022086777816367706164065079148969937797543032315052458556470876190303535921856261998326683817909287801293241076438858605121184588822117467565888354439739494336276294125948143862601118796786857735650608186621993877161845393522672536473306590897515681399457252137500768139404774977578661411492898078550159962739478369145815767683558199387158362731887594822005692819073332398975372295367302113892899864469364340710888960256922588799223375687679238654921679048719684925320975301251736877567079783886379225514251879554573591415489871417532008004387938440951326684486785799820164174038532538528093132005889570434694021266569957205272192766622698630576193913364643106184938230691725360555964196988048209331762759114659484314805968110048874251932927151521378526681954945835736142049361714355214320826677390134286680520134258203353335834872763971023657265156994283573033700484586829649945699252353523516479429059008878280222741106446225499603204515171560545016113638562141589349658134117315382385625883980180902873870803285423079332267275522130755487033990601089569273343061844821636034074962355111909301284327799231078548917045271371381602942231805337809342210987989332574082304926909751942383986461503358958393303764708196394854788631976401407027673709733401526012465085260089950676134641163874161943347524113853924765985955997197158591610491712769816076984090097223775442989578749135029898544273179800975549935939165926612232875902075207334309400330359436352746386459165112001318291849291822516650280787960794684737951857938731800975040967568981345841497710543835319279015075327330269846352366752570672686028576691379457455474822901561139935376601952356152589552410990193096496411035253944622528121241161161700811184397331693493894908475430827774677148601790313452412519925950026004926005009776020534269341099847254975745274061326387305903343182575868290379257322203510370972883843955536527336254559079562914258175582140758074321819298695040663502181773148513165165362613715443865637437586232743479032018971317272293861270688934523590218794916005684290878741151781101943317516014488074411016711919557687249097482918623663560224862714446903677498737772317976430358433964338158088543277642491034476240722434329216502566852047607840714832303126643331954466520363101888990578920676115807239948104111525309491997929664279230027647738573998062636567662507124337596354930589216682406058507834742249823147764261021501107926197712363637070794091773591919041308070544548903999145915240300896672759809898331708083989746624833307857459204874296399028453274179892511176704734033773553105382044593757919705342163358225133064571383625658603820130768556458258121032324132018336957751443559342897079039302466024510305297722120022442112670037442958495112825404358033941384207859103114958275973849036114990077053192147268520862234853918049974749074512022641371484110734911869494608202036149701888071235797255695143285727156464868014480921938512071786539989735832239450852225675361809193272943461506485819870863406792292887755298111452270548640481571567150260691774142158296093504084815471905483401358912689064985730324893517475145248701820190905478562224208874257386118720432154828856633737940811257448502964410990813841061625662356695903839450391722565243616583210513504432369228603301829879061521302043129978165013964728260506437860547913571675444806231754845014019090753337673178130375300046902742357178068987186876791067638698619481862895891534487034048186594506085786936730979471784507634408000677100837510523276144588149958177084310466658375912917544365915544337202259580007960099255233845914890859782904942505053682738943595344853264238959431064342797368314848306987709361767451758157316727452925151876118351030136991443596272174385131713250944756147403698666311743339386630926861464729888479481629880409365615448884891409020357445153720119037520542727175985857671472903432557062591396676659414338022541428563108752677015661070183892849441505681054705829465878267783290933160227979280502638313929859740927863833399747388139337961142029640407716891936234221676447689230850611452947016706966805337134566641204991112768324141252536999509766115286067438161103604232800407053616323798508866287152078747530299647050838573983233937820119254203753466512444000647232613721796529191276715550402748053174642806767985350544359189800790927231266282152824262655322511982038756657807429314121709123212390866956440592427908811359733870783012373348271233186486885285687311744052291872806844892376148159786118259867688421924928578387236431513237501607513806800173945015402163551448164099550330103703846874528146792345056582740896633798621153480413232045699071596305292743076408605010167019498639645740986952866368259441715981167536125049953540537865205170704592733788675988935601203818102835156507781972348014033666489863806334688033043479221952670332116874767072102513698960810100507047362703106012543695060910621234385852754526124871746064222113145289630886079967853641237167337692457003382747773559233339444148234911951388700868631256562338726874687308185395257203698097388620169256877449582557454778789210184464314925683327668613351243173220074046935755377712942949266438625262488851557383242524379575208043675102562751316864835263287477954416193093621649224605041815168576172156709749773504673738262670505952203506695916402097311066699817839477620964695363709599323547003835750601793030244717137293844586570890595402098100889211243955753926371066249766475912058108906779369588454347420984361408282195343489295894751159682567022159416767562342094191258777277438825696195446315114372670312368635656003812347788218934164009545347897390549788129394996782418234755482216146150327883259928905980051026514924119691551881359232478456182310188881010719901616153469968897218388488833761417608394292425690882235467287908906671533910819515680981245113137766605527117903427213770710327126542771091103868012425209135010755130658085740102820811352497806398706731389366268308045220783483269937491157354846598766802202953558716861804145597087169531395895172730945751348598210093936840390862312780393600713649986438108662202410221436304484475358258440631017537122625997880835187832001886949354684998764326927407674267019888567497019993414220702360148231842956661516998429566133517632735976511313991990878453610817050938955665154394001250360771431867793242898307236194166453528095981605993507083206767231629725298418094164536684963158754868142165088520373791943282240539540300424460054941843847827209288808565874083301598027175935867599156170966070334458484423986262675351358293793220746983915840152776278669464795843184212105294309119674844739135190566058777073784709259160269593259196888317919162051077148233912670788497274602889231446209494526185283306399481665590631628177658605912517912211831171319821447932418099170507985741164896141643977339785899237392434819177532700913009142330245160720058399612736552164466383113855619206927151013724000894162244609739030094366620917401869586859497118037290061574674043389773046340011777545990581372031956648662343180013643428705016063070819338955966870319446192542318519225499001634394256487375497798488222424517728531677610396451011385869798251012640975781681854555586835012974452648643935519216968124534945323002214938773339380246658225546032943074251485402013440515650285207498595444047514185466457137017176054465186905136715536636836766825084239580862455389353465524371479780358202906913278650163722841060204192447716371946500409655943957187621256265781596447783777888123959853157864519249759804804832322135855869620474516008328365355206032880526914297725258852670454522885494073864293363838925004019097813764091959140380356847951296751782513408643407205183860258274624178375165372026489828670114059394944200247230481180720355998635893185271277098324215200664662655761886805879506801141214605113535214131160200654074326005914705686814288143508801657580842130792515670506374040167098403686639208612364352283121500074762462739395683023113007856144564885255944356808486487015291350144627838398331156439026257464459614388160997387175138058862577080963451369172647163073518579941750927969915072400471559994893282038658011628296279925117188631014661085917720568643236979154294257527661607077081443101990712314067515841577906239401883752055687761628488072373211849058892191675170633317709182166458735591884627183444721932059392168952724326463816685992169113242787439255587294378164972070175537637046820587676716130903180899302256669999500022877234581789937680530577256250099390942363113700289918835241122396389062787079146267709314183953232312491080717029262575859400227438841197403129283244137930394130770524050280819262138642829599713567845954182503334705507212384897845570358901799593394857413987005036485785030695322355919967540539955257130894599225696980810559300584701554628477014398407352315833520301882386870960645833728219627435406937515254076977999411441090059854354561282983494010410811874857607049372898153594412171738595701951540487525283417464817613825620631367336988916277098650858192436910389028756839766035622632606386717629362560245053499179314107356964786591164074288111670559246671718818535342484743840709941366061424052565031726950177371326921417247383033638685135334509385990738652264316193937122219325820624530151063025154004387498675891677981590178747826356499788673428087345347688496139892729252758735765251302686198950735868668799342429570352976489003075205226381358432142302275404424378790912926498154896139427022627953317574084376087536916723436924802616674186402264699820516664023774459778718736852889334593102374692613470693793180960428555184560663795689021168734444362951483858198707611966239618700222958304905866747756308968390393955854329153300773246923170938629188484777929330266842996405734755019572509931118256478120199239655851064999479576383954462738734232033544576190098116189359738848168331873158807794265759529496475645678707933088832565372977419927560045554765995012880610024423193164580492124144608377954976486129341365489201292152013602520540456994546811732823804083768304303750199193305581779985112770081737905452240919264983637912395293123543437782850532682081745459897162422162196625491291282445982157657252426291898504047351750632066917435636705349256626033419391496064943727414422040119170164723420209348708951244846537317164888841899397150737276350112424602539530573376250833791322174356603306920056068605782078651060269871537134038882937108702717803825603410468271745665191059224094916230880915366909532478938012056851771328665924516358789158923793284720765776903982123330305209961606074785425229657316052509936260998934311928372690747388793117481830242393978192480688280404821669027035839725347978940530013295813168242928857371361437763894272448974155805328895858056938303717402422613193952294973440462397705446715189527063834967662347448218252320914231391402553661909547614386599456554787794668965988192920177353471439663390142530716332071745728029629787312714857599314001397466763264491303548095137471493123702708150865509694618412042414434919521079014050433413890538726219534197946225294046471291592836300487036890460315850324447128010502576741584368766697642865636803370135958363539547728137294634220178859981417854993136004742563580749917238864960737284271246337413806718667069198802454372872212182296155581635409325990979615190758899387994911963184301124545296948859580292237584607849972116956946236273971621147768760299830261359460492660950187022447426548444410847140221917642199484411671608616468182544828724529600303836526258791577134919380679619695503419089174428728049344004150655227264081323896423816724395374512564392030720956648124707478617460193109586151035350095489862572175662644077875050193878125334167176596232309316456190201695946670657294153400153843279472185499085096610552968777449254512734644749022053687478126325411736556185692590228875912718321164355865795669734333763334270513982333868355780927568306412827892945395509645427827473363513850020617521660457938739514837440969456103146821197485371848886068057423293747162640478984173028290835518265159655516132982257000178315333852823579553602412515424024557392216197580507024972487481349807571524105330483234449443494686348022317237214954278702383839775287489530615022801848921412989274458861689899041535432925651453208744781741755440929951963866817335697428670479945638240764075419269824756877788622212165442241030126990249602707556166415467417697908748016590088790650308919556816461047829779817045957491433871719083446606029631265121741784013268728747668601350017941144090110354266006467900290521019891389779509351545433926235717025807251253497091839085066253955976893532002925765254206996397516271662887933597477442227192839308922843543865245863757407194750581058352347775521169256182014788845430666108675498757579058730596074078809778622987069947413769534559131638562870931124927298921251151056980006055114946587815784715992966900132199592770453468284755921976378054416238760949474392503673814093078373380795260586114774508488444818818284057237870879614768451535741166725066076429669777982918584671669260761771702563192729585431273413061244855517362250112946111021653070784897527245915936215644547951905954962631597690033379430020910800463388999901674409311193178187270509517637866112954330732761858996734076191240288653468812728878491998751896419977667522223551714612919296261701374541570631632356458413109632683856695034748562257565476056704106911710372620382238339517894928009162438526286381888610379803320605192882295005226022301635305216213240788759262722894159837871035232728696582589565138236524231411401863787899955696935890186019422439756980300526021833864715473203209618294393584745592400861213683599655308523192258645942683398595873463787385443177390678079742310536232497879172424322759263023217833533876502015325589258189931198535867892465503281422171685836416222458676632527260602217781401787181931479689126564758154040052923137758418177020099690957101946692860111662584435654617561307408862683962140864559177147215899031598453818647477945948918534981444345550761270330215154500700992462071278756741132907949550633948823579055062207398771076467022289119166371639092283853152678576551209054422633268225271811328191017653086260711879894480426559533102401331235759236297800498222855325884915455368165578090720456751132614991886302966509041731748965799305913486602018657066990621009487032271860861649656353995707124504550231727949159919026457244822185299796608035685149466870115552385338239154851055319966536715174406694858562550992655992705066242645339382542109358163880557811240108394947922965114774564941223095698657515691034495610673257932308207178941570182288282128862985004276728731541958438584323570513572332083645248263979162653844349129715900641945835918085044833818305516610907342797383109037898485878748626516688315818841833185087172783387825181097473205727886669955935270915659895222382185685412651274781324733398713345473722101495306908065526021894198186331635226632776974070699962737521888206442943304430320676805594612159570999817411953794397890372034615404678777193119762419082531873762867847481710094793769440941551069642106336431126412201830848215849003047126384342574333367014252819608137294010658106834745509263880434543386871437742281742808322752775920026923138798603829147585239820788560193498230444221896000597202080602174151618687034786556196335374163384123321806392787245475648023860108279549122652220353116077892128324442865042646390402699450666267769871577668096995766307045654202049103075416527724884403474278085410098943908561119247885013242040235766158901709119493780894370899705578218772198150274408072939520420370773788862737977996756800175351271096589140563109340541910010258163950135134979427492759470402162525012826862517432852520919487674683567761885347525106955440558817386951390654061838408647186161653038436600531733315973514582957844571645903121158159392259306418901516744775077384563355690252994303986992036817878042443216558482456914409022698219311120490463120677774608414789359997501581183074078700369350951900311515676229275025151332226723960188216516439576469752386978345578909719757052941950126384675844470830101420620544237471619160912235758480681551956487482092898839337222399697302586521116657087996521506682541415169739588059180454207007775240774018421686785151191784823523921955988108762876692376684521551201515036673179107299021006679496039160831827651580036325031190212279364844100031251038725893861517823730707863297936662453964724332698746700581690404422536958195511298974698009601213676173525008833782984938499697417832545011458023180960882002849372341401647862781887347153757202198369604698251738126810002386345093707281397722922854445262987052571497271646202968674123411262714966372248460454601312571131557140073908110242752745809041129122789884933992832565815072932141767110122386965216840596644499285978449477676923522300986172551426013714204457875149898382975213110200951499463405647822070012462337610581718741401002727600450035643158806807369397835972460728590079616739733415879255488271656361382606026760998578858843902424784413573004699087710054728804667214891365191036679216168847390250064069647052397994969795752486274385523033823299075573591249088424662203476124155395745853258929898637571000655759714602142559635070160922165394042480476233886338145316194277775299640664593747647726060567132575992599230000517069585805786044702560827809112065885790856926290055588509220511959452650599809145015726120269079142724560514330254494130202824359660213819907423202761271438666804057593164913593997061805254070349580818618469069498714263475868229622172920518650659592930306467763867903342906071082875029459194666227501924923268427252893681565706843144423794874285670557478395664183014219641628373714570405202622160486649269683265939299970449767456768933097958376067575279962403406560816840530188907652761783948806656219027447146970663761874419463196289841881073631754157100451441679953162370778153498416758866481817288938263238941610153732194401493253075058722871475234060397184433984259324840189128723893008170881467127015503536394386645759437286862507403897931409355660067862955822502165718054682729119672064437055617024400379501758914461951039069750680643667433801580883695882002946713977866525975860798353740405688908369446007302474115221150984943803469261446638714795165484136727887282238874986482074443421618263895381716896955352930499250202923440892179593214089910512152761573509577592740070195876439050463379361161292459582373612165232078760312699308532214610237145967463280148985617742287363836426388385448359709197361448218163456557262167703584145425181911873832331517514115134073130290191593284468440301728126078375989761885779549677231285235715114463269576731210877627075607240693405516802161519731477904286694887812245671175396351606989655201424723873113805132864314539501697591077777213799270956011599715648688428420499074846155591141408465164796785767031238274134593801270527873356925365280029393634080389121399874698722442225987568770309283866089718327173531284008470014493124471268032693213527059311629166087219324646994190750559079297820393017130683316053349252444691461050028007483581088557913750927192908384520037051226673275620446397111011232446439742336514490314308287922838095997004071575326017902588279521198518681098718036316749175347369471243857358754958400887928493823394502663537011329585385792310577683445655862946456448870068419490030676097745568082200883449632944099548316910904784858667621516410575390167076438825603712956531540605682206924213313925573826060850861974296405876205166996827228255914332592109099010554379446144690043793613133587848887701620519583061917353761919197285631673734894249121954470216115453767848568001222260783930921879344705009702528717231202942992712184666089225248999752769587771822604154801666294660095626849702904032582565440195112717258708261822453764121243756379139467693416714553912287567673108417827464623037817430048323957649658486666139083780473743596395166485138870611906257808740952030830632800586937535463370175439343244086171457952872889731722092764393551857395807059163983143701637136340477091552536007176208826258302244372686906318055716890324218019545369125079166279483901142217966447105328339058050679846196556144895933902562395850892732811670052339337701219157032863359073720983807556123548225962336480902089127773222641793987203368095397300268895229301107116306843093278013288926764263984103358738036036188113580039128699958453603646204012626487094822609006546186066273300697111971448053844219581978905997726420991385866539818652013361474824799650869604394988913358951024814022399359537921669807643453744606048193126837601767795386554388049187223025395689180485220573481806830410182582144496861310415015669981119976658603135102651174789330964099498587629970267466510949308883168635498761316177859142706192190967451225593040765218524226004594867567230147078167927212669765562152926348732893324385313044392201424681508851903845145025924638631638779873491196859412602518619531940869932069769428873252347476156436615072114862662344668959859618892394312244578168900559801725502863803130570200830266765374044272600014209036741584207394585199295254045821243699519137919633158251292781306471655138406048256041266453225467100363325493713368599335548622391715199033702836453400478192510217752661787026013196062538712958047578029812072673704012634376984370354416176663200675213314903796706895695361268659498705769885313998451837126577757351100839576240321225616103779727594268414773196737084864662403044309438365631812294079704954523663374060620099485021997160583897021628536777829182859588534903434404414940829723141528712596775336743814773168232820639870298645510296241676325216745493536672154286186913820829916908159559669179297774697868973232899054578311257967054165870887575618867065361671096628571778040068373182705792149332163455250687903548528509417638365765921867767177248961829548005840326958829300988403745813909533836089719480568838586677136277233489772547956613682377717826726038038819187680412195497609392593080359376411539307210929780078137272067019041361647764847940150796766472254674638527146974190841744068838530122242941516567294233408453994567601848153996462180178349473207344944025644179693865897047742734587747484374318531192643725822691745504431734351884004642426678280560336832094185105345907034311092070773801737018744555578267794552749371172785652356812005744346527293923647667431550627936392016072166065376747734681877042262542933226174150492602780981890834509338357832653088375911964762598626006645232562217674480613357195987887404534628719660340936465595155495014458171572276074827446940992116910766505312155324324723749701121265766161900009449259947820695884904048767483469367835714239108783063976345984434174111968379885452305938045810354130491144175769861957708813926779101316950979073473408097395877525100949444451753423621551865721824595959672557386295574552534254742701111320033824000186037081742874010951595279556347696651078032709998004713773862427376629391539325262670480182999475980725909538472044155425269733205747688225034787807904650772941045572778129865989616049115953329271657299893090501451963289860810750790137409608330145344163437649796608722082525483255041096070304996008837173245932280906767947661073515611007879375291400189860616137646984593164387248620940008661132070155609226748161446012610135876998390750600462059102762055462939212362862757367717045608968816414520960797046421892005088160965963049418827037356754102686827083038894269906488732161678000655720811933015323747329894923885534913103273569447677753773351571133905936661283827424912731794984312383101037995963450324924446901233712112455798754863272829581702268297144881143731318222185049074216540017189423456571288373715747563209845738267481733164997426485927821534951017024244690175289081866255294854575983820540048255309734397034647128266657137714526820305976560683132131247334982806461915972831872502882141212916290570624997985655133346265937388426056859789865878388611565666475540736906915100256716189885133626931816130613204950582652476269860180314216737131842897022826162349941058477674565204096801284822295610423219301813884185063277484277601552637578156073013948044981676432171645099988091264550869257052242467331684171325468178286373549625784393738587669747215738351749404463488765210321298722894384712979745932971349254800504929690688149063407702190801987728628119172491582112155485794509730927135060249839333396826221166972565008452315421269912726070889019401174272200365478954752680565776579611428701018540454939550815693766144469296550655332957127879953105386302036951785983018252851726850059324867207810271658006686577985158479969399764999621688732797402001128659494489326447987323107166005212246493732907904516950667429522049029635513227665933781195676521561499616961847681865401474330769583809892467053687680126664503694233314073932306728382852491903779018892225129613013772488009387132363438228944711049626388056259657134720465321347738907860094733277624011798926498417937620112139784766341327813348648588672243996273632200284163536935615238084494159392134676333826588363737768007675815148290197035435232793525160998086308246032916908728687771551490203622020399598741273249308233377781713510123141261993090699942495872040342000799453245261095330548675725774433510855378800920424006313324272924499295906287064109131291541778294742373126299838129002395570173536658383850846009544990058159900825303521594195197434763332608617246839209156083670471136031184573578280211848770709118875522176696773582300830896978461238502095841197216509491855209247930534415132632979701638434011228895240485501239871971990511918616489239598820999379412333472713334075769888344028453105521660139298653934609819018458714108751765177741980524716528431315175346680824920272569606434888459270169187272715186238448606286895556256698073230807565196271843546115964867314920359214460124623087789978710502325682944286564992865121397165609952976810020784659901009782635849169857951698425329162927611104233071112764130477911309606764553220458434785321898147889994880343826925415303083647124517671744561488150525736182768084110716877141519349816489306161104087467185351180823962413110220538419861036103137766354559823398409844638855015121795198537345966962359538462026985564229298877312172437660393001912184074882145433278557224949259998474057211844094692710692841511968239435908045609458194674461677809193667147719496142324797844346121149370565413871796928340305935691870921282659669378575367645912352483370352595156895964627330529419719036643922200450164688056695127095969193192686602324688778387726456181004958239793913323187127759904089095257323927157236843456818909266332287242064333935741038807875046309444438905169766130296375337039624739424775383919549576088467558849000804770852443841402079994607572482659690902677746592431564413094840149303330591687246600032107662909434640364958573878676051849953741227460808408881880373237832610966746840553710273195727146888181014278798485094923339383627472035826134839550345287169009226095932679816548160165924326912187530144920102037470831960534268072988268212373556058318303701993013918524006164720593226742880736167443155498461870712162082213705592762310440078252911205038925243373375457163450373731980213901921566915795567070676510504757783690786808850752196813146730956487621645220584984605743230710485690674417554628878748419487343718208925696640219710424744652828354794946855656412172248167338231008415572165897890410237100519909219618143240735344205809978310348867835941931579602870504783820591322061724509096868575058589907067516329562943798941861723810895743790678684960582524753435558636030771005705543392179886214418478312420672869704282373881371372904158744448363926636656954999504422729570223546848905617188579358563994131159407460363779618533367892471997617317643272875751680159310692651687114199278578503379186658790866701609391740743688670971139098538394458011051545233605783585885869312556426880939261782213578442074792232428209997889595877439702852279996994105560451446219100956994481022574018856937836721107335569592456525713301624626781853108290825076632169597274573911187905691700483901470185059749769242383689456891325315207794765087883011197459201847884262152792609325020620661207888981533615731006484216530989892909569515552751660169468932495187453881570801063826238417855098721075560735867652351997444774940782016611060877641556190405348468143767516296301478697861813360588932960990033786582970676730865527127883273617631430034058415912024661264586376992090810090726710693681701281312905090660562056978866190277054826196949139081916102024695667782823697106115532693180783203526665553091024032122453423143580027313302004545791858070658543220071396048275756150039147023578786035007773493134832279166481078372721428760929784680354387015815018552819244617089598233688018868623790041902859642771163269649434395826131657777475960021859751150365471683394077595789965297028284645634662235456791475383092469263294872084365097399337062665959222095998456948775413645959531378712959743488131422089592086932950965640189608698861912714210407488663362743885371845917478013234119429646762334796335977006594623741299244727062747397797947718615868221381551961283400243459509463817803394997790078113137887082251878773874346464182876418336805244634209608124493819516890748366475590306485125349264808397365029409343551925825674457737726199591568667576579015909989923991509575013350398187274969025797350768212193537985723375092567755207446882589090046417993813818268504046620947989750174133393411471472654990175777388455616817501384317441900874781072236200893629115977860231794225208293771274664099836286353694440132920818077698602566943698612307115320720679105907741821352716641508349565299859166867543663498968573332650415516092647716677802642142834356575809062063741264647140783066706732633462986174475063169534993018921961116632518830795126321105706687664218766690975587327037163826917532223366101453854226223001730276674033257985845844919716963696210071471502254854881266371259737651753858675013339330536301314087730260478400218711732744659510476909119316734617414892917438407681535066643059152974052969716622531131069936169612147031322547282531686914072608762622328574222072808591913864747423298021801206396150105862540817804664083316270502895645820309231118963919441853489615866505490688127093294577856231271678832465931500734506442609060136948280793133051304143345608994641526709475843205359094525445774538643888972886788070772897325092691514462006084917309132561039942243355118825456627901736098753236795223702579452330341953470683362739211541494817323461267119516006222117545484261571015198978345155000565661255391693720882174610616233238831220558976092153733167878750408396433844541182058599167389202976290161131493130206675430255907484281055854365305159078047875740965623878643780450282068188210821294943754596026373306655176243233102174514292149800331326091775133149925008419908425662760897285501811443995536630725745111642462494969506329686397004174183840446435393907746089317481016587375686615483314295433418572403652980687098555642952637067659922605676101911006018964074188671954399995899659679146854299789150195391867920454882334739790094043331038365452999161269115855649343601436942121180961921215781422535835229010714418868265375095871155868610949669798825823612902906623623257053689964087032545712297304023426433039826948259211417935889598320062379672719155424281701232127128516662488583026172742689722242853976038483125325350303845914090253844553776928352579517021656050275767075273490092857875572664737584740787439998739524211010261284563985613259335626137097744694705433831598783148031953280593008452343614884604966592740357026288748248950393303380356193643317933254666510227020831852214207647278939326512772318515330418373885523734345043307434712023157929084159276177754290456542497705238713601648204532983955325336649136046826406260764492156751741722401887006302378025170498447303222997847395353251437587829282761587867802010712476848961404619200729246733661389611238246925300227538147805261483417490090321316141916512060331935845543549233650184751234045183585476866446368324542151407685443889365296300028242333804877601275125013715321769656628075551274964787565841420647518166933850663230362154182847849730032311717005452980521500501579650849285764492001758362409592139690404826796528702113437246917397915835622090559281968000833316968667899148806156607443576370738721745032429839612265503625523990539196876672446772353246592419868310411343375536132197209362907490803785506125774065154125688951526960155477675062540947495440451889688446229327437428096818489343737205783938957683706305206746320004224759188658940826013098769789714996314423890637808542863041049642502332415315629575290318293449279500120152127995291230935243604560077443246420988192292877305207688434109670647349859271690829232977130802160433650110460529690377589462204346875305080948052981945871708172058737554034378046976616583855099375661115966513437926915853872888821921512915473970484217603597375499757795444224781880869469820088936379197711628245002522870198919340518975058436531887842912606338690736063417959216776580167061865415256658757071612004900085695715977312196250330781696423100023679718305987226237377729113403396992285098608150671834684367458667535412411868860913650686939056529702191743072992936143814765639023778668413691672289568032799023007780248811412195765233486224939985598415626150500290969719258078543968467286131446875647963396856041218414875883536804549853598357014592135859174797479559300526050355437781288213426790515500870364949854476041127516756138884609438500051986845407411323092123806280281978596241748200170804284932432749314704951939693700692806642162554402900393011578533463509985044223901239504410238872123000977475750489281477593675585196354288529315730306376482115814231087540615862520949947641366062389313216614182974837745859724456052370632427435628133125983765271234877490000960739512558305352615673567924419607199723994394102423146952877585077226621681844830317069658740821153784432870905310519006831111374891688476299965197081820243006295081962981284077841755425627748376134814944044465060034998511964552508800746852149181156227674707826427953596580559041744366290900175765581227440528023637839693244034139082708524244587899854139123688095487187036478361811286546736797812269598157991995234715617545128023650441181381982561800309324268329397474468217207800969353258528459932196013212287774252413927925646853762316699357635022429872109027259538583957941730087083765340475418090701966362693310971876153189341205992006404790049696867616701005266477411689559519815667443645367562088778567277726719372363460016951511747737239010347567675097552646195510420575705614030864461535845025092559368237085789334346731429301151945364473619035287586012120426659837559821522483453372109909263161848079548837815123787969710949947137805034858308277691522208431276080131935309708865075501008882477507073307495539490323438182819178311908415198343246389758617438747894488225031702614648686200793812180846488810314746219487678526264100506156178549461349736601051462912854668167216135206595461104249355653540067122562442526522347928082062341457295305342949227477638272639898410658798054598769757955958914442775987036073874197702906597158335756129776081293439988007499397491055861444640261422085568899325032558628294105745384750947428897821301947401783481811458231905360936432802886772057194257641699912664577470809366551281555084309026707454940495810840447409870904999252053340417338992167283662499133113447589331232265523755908527891253930635061226003978180899502002042046016575523824504306034391293551056269317334712911396212074460405772208189580043095306516321128995589656851492272033416901901490211420165872698746958267885399815327916272151716281327661543870877661134414606218657228681253021597864626869322741342585068870698884834669399425849071781276142415736937043265608960513357214711974081114080656394447324977305679011024287433037192242992037461474507153080890740406217792845566213720949699468601712243197997407369096146819590605548059110181977238305128343167781874463287026335885083368367098622139746818650936061306363247500166887901646206701344867005189525304729371453829560157190809151317716248072335369240097311099120396044765064348658250932964425962467132973292527043662186272527040994268144690549521175088526213871585199847103666463319263605454235302591931955974936966300828060007334333453691458968289694762644762668704200114985217917009566069631576048838822510011538431133043953436303630372958150524437635492422694441513188115735405801452434947396868157190009649419194310669798663090836455747238286358051553112345343626076715539458873921565037611236621939457817569806123448991901522733307084565069466499741126970827376670816032884223708390310491263834057660769209350108127534557931456344704778797061076753728685171004125707672340180441924847022331729457628183158671384391124471369181353653549684125329120313392660569026234610060067730309645079198774529581562393556719829572737449901113346325752809699153142055163335027658899797519422643901827366352955871100424621096989463687494037099016549818966456879330977992858042607574870473697896102394182016894761961068248097254320507190104558152513555484672689265125302213248722436815619146560518565665872773959296569354416531415977093901415816313412892494509182690149090836552929687054460804304948325227120831087039728532892417740997357965504621139689554053889622426800488055260500408860774185128691590498615988700031551647591849386656837983775951932371755620598149502065134952486485895238823444947396140715537173086450716592021085337170617021548230908984185885580817244370130030358320055314853730202512821787662751831419340332432835265793120632104914635651273593879704896669838380075882610986173485391773181386124720560715415378669939177362069101795275180479178495656355160240318935798371065164594621664902846080703275722668221924341381321514143445608285664239293846404724473037764673718230994593433184262660696132149821404360102864879334892211425484180998265054789444293278610545490100189018003337596396084974625937279321090412470213882161450506707676331643100451739879760375692335505062635970089114935876389875898185677766657337532209420947920315859450431291921154739378942378978536316312495125692562491455701477741875259447960643714130240273950387482790252217623422437872716146146121162301892357001654308531196254329806768273822060883705036844735203052709973366517603626795975351802992226841115424821395509547709630606304241796134734332389685352632983145838239983196300638543571938409923165796957702365342925761511067240712288613142415093925798498132363818816565217994964043174108372120264143740214254466758542020555306555699212564909451686200621794430817537992608427031763858457840324388418802329229179977642397919311360064865022843399354369673125362609332712587410317585213912137606681467695587962845859793252782270201218104299615693512336646917834561212488511722953027161844770527424333545274001046525942024058036214283067884710588617628400869475452122234525400759074907592467257441934026589387924645010916982867066948466853394133680953497863762518672425065530169079582770739035886249543477395179104784174975134921998726286889679902424688416696722038352466191940294294571338602216748828612475407208570570729459054424307209657622679703084809551321303990022308897019959103391841991539355646047159881676941330756748839874396471089024469387019953402402155596944125635612969612343672458852044985055085242963823359110286762750194376543799091880433457473379028714399833110216619147484453230475564317528941444485909766961865019261987906835527694557649384204433067265851455510913840856480793052159705625083059590027974764573450226936405765261611827448451925892279545658291948038056582390546550577436681153629845252355662524609470538739658168692405135830575587223885330048311620265944381539442897096360881129078082080265127079997007212402738573322759642979227420862539919145389230770957934912109823502086026151166407662455581240448958433178630411364384642174168896755043750820727184385384964414106569221529633832635930452888441876209521034414415330965526198718309555875197602650169795755005853627688877338937343464965027370414092420026390219141020840788893363778077082420708374706064665896755701973709787609525318261951101948374852123555461979468955025754826510092477587106341079179665329496768738281387753784613267227895791272923286849309590928453907666228796764249565479403216285776960267814205319746818697748367165672151682652092567023065580620159526041804872189619966567383559821759318223211700690884546175551080956900765066342831524139146943001205406539073318421342473839169199023984684937948719642405068218369598926959424982154020058840010456041427485378180525888524963736836226052459058199922823651464314112423367862399040636239484733929768794110012005385022959806123960556083106930933355354514179669202418903721499417684800027748855571274804717952480161447345207334217067982617033543525917378795837727804621205098349721850440066312606246124896097976351076351026679419999067649927311858275483999825291190931166398231275639174950168696911045051922038034095467159127019670301525824490267314010363350625525300219751601833150671803307758134619009300722040219162639887092182104605785628794715708745348737757914903213676946626584813169141083187804260130224838348195731457049076470627562259317057526454018257587817090022810029054274239891977523726019712955203706839218243290035635617938716094689794598146714143708627014964520803404175482280340648503813210233076642330239653107719474820534401305843042506126593569609585708310145101699893394945477188504075345689053699812727075111757301077919302393705324884802756061699083335737860793329416837016343702309364907141588978047211382572088293809926572289884083297536115539187826837229746111758531455143204797860804739479184387520240357387637384044377520578520966590255249940959015382108707544904537229618200575525797285008522524189175901886206157131314275180837387068607286808607212833535288488859908385595035510560541514386705044412030071946547788217229833701530481689671791744391106276531011962770081823171467088974512264678835190645196615910082669239725158988024740170568515856228233189874190055660690525003240140278530246874719945603240668730999061067540820759359306071131551730360745934868288913496075144304428717668959054929240487207996288477166527134072025866498948671454172625875906888686439432099958283101771186221717991088755585087091453991842399901201464640145780010619359697512264793513395571856515943623214114952993370106138635509868532582364714488280330766147153806256131282135834048991779317607552340255737362856997961031577308992922551228896674427876254676309086713239404637011659385454222795611062315909946918872267952375355787648092421301637704360943359032337309355031116305054359599545517977809958230904127829798376837254836330391191785182606882619436858471747203917919118731542895232965222785495741091678845809290519228614857010259675618665927234581347301169832422691517042338029577289790350142994554401182397390337092810479405140001202957670592681302098931185066949585429760335657025828000922779972951312344748562773520696408509185701862406892923975568633375830630219773737864340019402451706841270147870178147132812771809605337003051300277544555714014982573665414933540612520066096976618760508950396166344628829566429062430717423833830368149005251710807251341280321201788374102931542961340659619451557195161568723302816808254520511129854816222459661684216883046747480110403541815304797865210778143438901531271186073218733490205743441127237895482840582813550701769237739458287574168065753223552116857590628090041950469641973731889011042985086043790318919858478792911595343646593777233660231851070107192144644953118035832479748910751462574753797124696725412854232667553931501143218484007508139362895146299528622733459097280017518550648244865103600311629158288752249175987207050793682359723729506715263475336174569382469671608463664483255737959968245817605525802664458555805324920615120355378445193048274438581142733122232297463453690739796615382059983246714329092815383702338308231998210537108377279420180779873832621352968081063563624173321531903179857571724359112071281518681764609914783756147434656537489564103107114919957681416313422095824000815069160936974683539349866148529565014324674763164217810106363514821083088315939489169991875742019363638768121362916414110779306734317728600635407360317144836867400412689021431497169088646827446821632861116600527981886559576471305790802246507065440231924229084224699553366884487553082839611910561260763719348188623008344140258542773095365389566764852029026693123069880897976752096982922425894365009582765803110272675412453096977749487426569420088569507028239386418270563454065571967760544031130643315899633531971945496752557999689304880017486085340069479069998680591193127949313708988888104856241737746458825310972163830384354421527302157399799890397955481337956143335313571394168674220309319582715602761485410251629541687289707204705088457291743431723117655926680530156463914960821414847082949799903384649072114758236322123876846279703857305652965967208493997647877373946425082688652362989128050731313733158765985439717965864885770691272212278933188893271965281361993784562293879278212015963835156810270173352697893174929918359084553284685166045911211986754016045528476369654792796116099085828128586007730023205233709179446534557280373480155463454244328624001581036644527067673560973625406900957250778210840462688673568471854646714324246567975889061761388949035457953439861352012132089650866801292619139718551849739040763681202912432148294730019157643528577241739234243312662166716305202697833898447451113186761162958614653340673563286054673998478280914074249995397512685326669781231818217191839896281470727363809991229008878730015697389115603779402021877364280831355939648825702694963728166356639559640075382306619231784161609351846067084484390329210875590724774860119910389156512124086204120446334788100553376292076171272269558540512438151351101067719036493835773306460515855796466362589686327510017381196822341733368298727745738675795448637940510048757169059961286524213723892656468061129831167601635579125663921624625126979684041625379895324488732952484426399406539517867333108715419828525631501969670539980911649419424630083523796618866879241651051575454914988697418263607364434781001913154985345262926738468537304911830203462976491524292096828710634745701208869386449485893400115831865687834403315767824869566327126234061933471859593474785434166666559021339622483833267551224481914380782828021667057671813247682164731736979738843030389398015933067231801684115196378628405100929680372021169370728749692355989395277926746945745570016272570014053565069710046935533034600130110811123378656425357416018140475825594323618625389895446640779094678537999531774159720588509837174840119925333501924807392337879350097415256328476885603948675592964133897742252437843088423543364281648752661075334593279501561709012125186595723136662919599933720690459579001070828042055311788254690144690293219452941640165466523384474845583502512276164324725370147450850933127362111213721472575015430334191700251830772133000123579814476110655192436887466971381463427082031332115190617019666276016559625775838504788865958560674125868927912954655048858770118464262115033054219644283109557496896639560230384730869507198164062423396391428835415941936231450574634215185273421324567292253614691867213695987740639092634972539799280782418846222601458206350656732647280268905780737041147056271108038804738359286779398810591547124626719283343775724212708113650794090382642854215723167462979309288682056475932895208983568680594675322771632895522054339600923612598857460382042080353617344050460316210850488331948120573581476751653696669670722856552699008124270860683784379993130087672998840378555761321764743180888021439579862282222828794011732489338229205314465622746623450624883110009165141298837142632370907930252777737444365648640061161265294127693840881017969031784852171533174455725506420559401017743573470690680760620488768971060762178605313040802537205620126890723178875173507404784048930615877951111523196604510429203132389377731266655214435223792925104833075114832220986290052507166841089059624263416089355630424458127181909881137613955198611729055781464418814461032493290635521524705580667330610310219681895494568558919418931409145944702100177271872626030777152627919214624384201242014542129026805504010878910385949359967760725491346690444166181485064616949954220634393242084225740557054809532664032713515911661637777882394339472502348538861535356865353424889593994499551000087998199512360442835229362896132626597519373286368238867338756051691146941177926314126482700156454611470968948063891744473298766140916454488348675865812972035051005562094526185028018737676804724519349205311088198128978817011905296564364005097496781285726745877051896523356804102289341851644165319809220974371449570124949495473448786533608350933465745869574860962288613792527749574780567372959161582813599852674354397190207563990828667144917505015717783008036924926518020680356384152781474285681862131921212683549016344716353162216111004956306815577075825949785605622991483090301194504780108850024697121251858252741149780360237370904909690414109727906486393712626549571658782899995118615499597084259801179980217057668858885643784293512572654632409407662140593359092492946327972028136878370486280516669353589296957436618559274114596886651211030399603817062219668973396499813818978799681475203425214296365981932583582512110375627022704821304469668904031453632571488471715512034692945903935838298935338137659304052081607719742380706768069071175475845455870381059810955066153939474098859861149457261651568925841920855192759081613486663421221635567620207282406682010820850152610813204160936992329098477055334524555414788298280662603493541059217436442656597982899500021862265639534220974954068642938405911841735694599209709053722779916161154311740579383564843366173719713332540523816170134096445278559726486434990590279860417616870704932006094588457912893114160986111316339215035029993635804492290607931514035182619359812722795080995483531927546694936045007772728327607061390803607623267260383674276080197525710801746956293213711281350674264966529333718617607731326492597487177951828846035670274754994998023064986021563826426971878852384768026236057091306124532972793507250428487794039739378601309589040427416327999978190618394105016878386721494823465631433892372619551915114513177350785980024502322503409055758008637071057592543156333812850331023493553523499727070609146534847828136988411331285475687081988960922488383967251033865884544344279747353420537720102871124484654524780911159948797699610632846979022564448525788195326183829566400076802908797690765531485185912986384417148124833367130762785854478485219389116150583035789430154671709216647358528133889035416230378473290110502378871991748397495584239365859966188106125169048481574401683323399383606858554516541908547388518584838709437824733300930512476500718050629106671044842593829316138177337774223240459863374537140635822444852317562845802954147451837774134589752646253137214044181516484488787342041827184936985772045075085719633572121335200698285383993219665032797633442027242689631367908667014073059586933924378729812698195281706048673707970569758509920022454094121501132976083704802870912634795253932028476984845078558217318368545874247625817129950461488296910282125383629176401249184104261098023335536942429425229470701364098624578099760848140684994392449967282176570993999040327414113366558236094670599775717129213535551604168982646109271830108713919206980932854837589626919397486081619534297826117056451037417001368284749329969253817377247270463396881952092006078753234531701321570610968394082341520260944582285978373246619461224301711748194856729294228467310608296548285788509519059298898230740825520603865954336963246067279195575214140139982876236138617051783486051860877887321578272744248226126045611380003759895079346068957677464309426517361821442423802053123280026314607014902885931841272439493742292854874602178086042585439195967917555441662076258326267767583366160330181553557767720073759857976214030972946288255173603659106222845436585745531516596139751771289659890773235657516233149493447807578471949587204749063054660467039096937393774602091346254927763860438212977817805041722528489832854150113362362135680752880075755823038905394647927532244334200788815359753640838654463274609522351012719942294191259475122021500384552586150447650902172657286216444133534032476166039706146953235570648758593354262435439030063695530126170492046736428013407229512095712691193884667368660925733217736856665751675569306073543260800356891263261607032281229671173728057663639584211903041061466150910234236578914225670730265579821555310593531711381358088596998815484728282843016721641574659380500844640507070637260786104611639331834322995829972898266786927698939527962498484528103577853052473052016701689581408858764447488860947740059638476019265872578487092340815744341914905966657130878981192147151726343708959670172939019209081463398335828673803846213265733202057072899203999915180499231311853208644971311294638718095850021170185814391068017769171803146982790846130019657409314961502498255548067194420398659033336752395743157573866163406516425361971130259447425459016083291867124005738055254866103240210723125820453978710525464888195056843641981289033576807964578569113768154482990398670247371132246605280301943915718190331151655533116688292335516516020248493964117731631595808953469531481118222913913193295647071138059531810017360636992641539401267742625813069658738119871866611458113135643602363229282786082577366442587988924789189781909876269582808936968940303996628889354234959428100781238443745132988756957049831097931764407519584956672551346060268397297066099346181433014271062546204870862699559283598085377557139114243220580432915511448462154874698617736739352771542985176615085674461973560487393061890120648421955877557908589684510188034006184144723518752632230806185117676489686755348479093836967604977162049189902205296773537331600821410121231855160708525031785597599932113637336407204255576019922289474146674452118567987569454007363252230215342677182759162442600995348716951196949085946457443339022673540838825518137124858924879245892536234586702627494607538482124331925486602393539175721918102964947267396026087001251454444675022134999185397177941000203161489171471289393076112044812715746609772385143964825991395670488963177156856297829015720948366272384829160860928433923738534027714264536589126234591695080892244425221506053161383612655434693327330885517470277043007145918024103014539141079728524607590911414412045301595195389264879203408569934307057542799885921927278937855723547949606507033500660032736658545122859366628688352496407191994969791505282436069057285468396983130713860387884251751816787721768917143854317009067068128451036592454131237770210592107958642171384529893826778272498496803702582176782665289607409996638545256926048819516373455650529292729636827326484398043176859708671276893266239184616543328965869004288446327387680634982417952873965294023540564367800029122684649461003962759084566448986049257827195759697206517260205277476975757706920535932619645929669504511911707566032905749312499337682811484380684661984717922576602525879360272219622551295135135389031050905093837097532851079883441998898451666429057045998206889338642207066975925722150240267340595028025280129021542152447142247620587614516592704858468056821068081309286114175631292494021799464794130682034297000648221800453371969986212137099619977847146008190441168875228642363232013313097964233514236494162543661831249673452698443773264424471483388105291764280978595600605203227098661412506235076032531923078402827770646153349356345434963375178361796101082579934809259697952601101024765514099949953853055286690289702498430702724829343628120824901804613317745778848377900185516584945989055761028809108061609403028230892868834366192943450309770932714581931613548279406465080672004060324252758485018364044359350982570622337264701019110144193723479051024645599076528100645028787171323743507030540159484862845052058243901292349590470397287724299059197032673120831025841124953579240118402434299239836235994412216844335235251310659258442755814388848088634011612923554095394046475996542269720117731066267098502057930134829561983119055908327565870816309394550953587860075543308664864870660985875943342660028137273890885478213011903903886490125007457314934234341538193986638657393351864245692795990279890150390737735122920570041999942009581379748774915306829352287094849889760692759194947767338089747821938252640409167922795026402063078265572793664400144103685416174090239479788667526078488598844039785271948357068554517232736921225373369256849469551900197721096275825317156504147918271669307789795914780959042891696981670091347868940767968235893724349458274270860766068470301199007955607865813627697915568818602447409975126002818205164368835823309262813434242272931860579513005426605951094489461746675588367613109505893088731846015879389554257031800595655624318114630653457686740528229702091910855234988464225944166601862023613919348534136485115079377586774464846778778235978509719085783600142179706203261519968553205312065115002756111033294814354908462385027562150270420005222136194833254714149701118197368402550524026777709906781336608556773542450839353047501713592866877113635749056594701159950695604557858653720200281504113619189380790921547389141365899827566994997487503357935341594955612273028682122055214962128035398608616213037374928801698782485217267631463647226339873569684314975059403161798127432983996969400652636761265563719788073483470205388225013283958897947704665817584706024492185920767227388582419849476842377663834037731092667485786666639502983735271588143045571014960625128477317929754448021360888417172514191688456607546676676947074467157410092424889007378439414777935970622194386283234279891617652268154684664740507954189233365814996952205400737908528125830359268598814505451605692351657627135867546450559804470291950728741073700311511535415110526539769558432470482463305576899082995201187038876622030095909362323808540059934856013888446125149771957250970874991765497143519501755798187990349032780439415257471290763737526365698428410220472313658743688669940765341270703251808065245006740576604280098366655506661538368865565788957105480523479790434328883415381454894779380870459310089051801665641667278959099075798985843872102490875968910640298083217969698729849697849280420952803204950939499913520855081167160954318085803127765339395193884673706410621897208460420076606797449483550284550160217056693492286812643229927753527361828894748066907835877215979071265577440639795880799237684927635675065876799802164267325841464860633578874198988311488487701631564959330523690635149243811730363828686963140624415880941448087019446662448292537173171243097303567170920817860013275205337418845697704105364145438948851345368521133994064046322376011292241468211834922390129775032573599622555398796877491423243718559925958328190408234097836449277436131691755040706092425982931776732257272700322762969586989415153194378715000008771506907746280549122292627577095365766639144315071581252037476250908922537815509795251370263400850840253043173178493833311286781508226165046780804493492711459635840718368024717460342508803086403748862391335619895529455914674865061746133714314963613760261835518237272370667909541240877995829139091976580105043629878822579536764962284577501885064370613215101338827961692728444786996945400772785525856102174122620903955957673405770732245961472189164571898198042214127515418786397575511936164083669289467364256210279113383434770602599490795036715867867093676395507547641274073346453380760049775906416556719398550112851000934943963429555409198371788345586538023744385921343292042360222622884161977943389009880420788577032167366849427352163934062279237693701871912403816523964731050220796920891446067919611741888660990921919879651991191937158089250757744844803345734092044906472377734243506163621909210269791225039302184696084370010568246278432658827312504171739539252767788101583863697891557722824697380300077210393327612851973100749472916595480610969862536520454183180379289673903249778658462520142207910118356394180340499068012814341706309270173231067241638580792362322192721193256130436042979661671596612418851064372905692514342917992410877204301277744615185063620671739253333590663230017914914418191111817449531033050552045174471754725937163468538669432404403725897720170309894891349674881519952137531496482059980799376490025439973488127290107623244305112773786985392293089927000279407544009160787649885116800506384130399923222219503948970698838241735364602478162356749214327428771962338715207886598246818638077007303936729209771016537927394403160121607502539051787532815312669577179957387475131083952767468380540975027926049789200167120094688181291622884146105395274524398298035885050733451555922442630326103037347763647233240235675379770508166553201784521600324454423332725465667366927691621639586205456763367285701583801374015182698288165489863253307539411653957650400423087247835504301443751603225660830384704207690363922801767187466470971346452986032319808578185309378808264446218594965711098292138106885859085614743110604111215093786616785712606964566033959930359633950661171669940097059900453112909096132017053375932681597225286762853166085793103846846534962341526434270090084630822053651528469919014937733739774822749356057679600196566917712229400784273769783647784958958648012326616808009851701428053488004010744255025699651863678271536360887947152686007858273531196069986519531818358593868086684797594858817747071738897813155996577661434248921973132074160434107817167839867959355097528747730551529279193859200815998114712515829625576784520177394827975203875916698138012700418390516773653555473057977345780439508700433847786707720682791995948731593859372687082804209093603301738923585279332985893637911883787676308024048292266739028922806696009797419355647807243129236189546446330829061894812919835901284934722871350486918783036745399710800144627949806077697241067869717578197308360389214855875864939767150958604826772775012830887399746951894824621571072255947884347331418058068186730813923849882396255895550857607526740581134246107557984916568457687994047088950269423632665261890422986070968116749588016005960630498965767996016474053955021092123399126782382920511917344872639427588782491432488651744285095213552722096457803320899197472072085567495123833927281076354509029698938930517992940794113426753511972958292985309673945257724792711312720831351425988137085318982778264040848612301079535313157969211343290889307796019742071558578092711742262767203848888919798859013228312515335732615749742788887061206628991927477604093840126952369646527222945213277904900562514562453143903018269191667048074430380904328518545020263317789538413761839300693531518411709537730032603799007881807192298619560380735214587172761681570794357471596236282626060853290370364255980096296249605649297831555663327535302734789040153301457872876466107846085991310716039175276968963557142953926979728039882460821865090305227068899354999649294684892805741671631496572615496137785892465199642738129772478834792233905430761041316943744984592742755526000981530103315329745324201047177813718832539090561752340834521496426321207027031211300703946898950182842396103670551174168323534010738474243064874614150158168783567881875176967118205432663249034930562269538869929490771596028416953706961073486751379887724905071588669896667469213308549680642426434681908540634563052020728756617231118454415082377197694384126634021325261276647942353344170350777155012163656318835712899788750181100692444712963849671369059432470130808101538719761852302829472682326996184796667515391544579075422651905541094601339790122441261891055896022786579576395061812110948609063590613922948672349611836736983700057472846726109115606796439085534805974420930872798661517292320337800665051414026414738822984405204488238085814592997928723766808956757539179199571060260916761923005993005389845756660204363527092246188091200976645866834900772426004531986335427942137092341223423667487496535826661846783305699007619356951200469904127182070991748403654579240257191722056878767313090584579761052646608012379229963681174383178606633265265325505879735559991072137085433826083382242860937131686415876880735619244281212539977860630528150375354218002245940134049047359091883207737581498941440613337649905588790419192725116869055975876578806016946945452555743716350278573550868907662435714221002917646833420659838579615272376019843437778835981373172867544650154726511008084688436375833244488500651527796282928041799572808181955418134190137808553653824545034717115485014244621992174235132808796460955369568708525228931333029435395862239286990807108328627594941014004563346979973644337352640581524900987459108284664741906934997846645049137165466454026936261186876692867966952615700154763152659981375615857802572420364204269412426066466242032666095309892651731592664242124882201364795792516475978184018482653449852295044996316147957112263947157612856474591476162969153505066393915321840693330505748964879175684137019083656778044059482810389251647474919734866625246757796259066918290243696307240278302847984822601285096745402765190418917355956614044360072793158008055585283633843545684854055512594147136386501277562539744465625077759441351204487290567048222972544407081110288824867074965408602920877529811251267910322647274269163128924499880918799058054200725907150650287489942216420485298100671314435880490451781276117150178732848521776645404509810668841429103707569572664605966108297740807995605302757182248953931476712673105099535406507570712245698485166147998698774078394371030749834662737844316094876575372203786432985877790497659384890835640627397761117148030558093715054982136046077220342363547454315164534563788168107534585526795573806999733853784851944632845293287147889648352297149126897742873684036828007929426676852089481021561030852889200154533682810036438146019446301895742675733884201894472373788380320446453251103001932573777626217281387033413495779472358285303666289831941833620601106919249177785780403029891483826722115048459110564040878786679898668990991812103105598002711455241497631926355241465213956392564281309097364786091870443751061469716972088707949838464764537665243020180439323838114978782009915084615421558217239134572466086328299486504666795468158913741950159293896888614970840505457126483296282228783126813360902972516774987605918367774740121816809487756929434155750535124881927358336201858687341628370671129378435668919878666320529496382219848201952306174378461532890890084419523357334873949148787599438999166571462234420107799711127336155190239641535199522901630586448838778218055902845379235334443902496088467374494325764182216137195710956149766722688289471009980927444412600202541232376562741785830660244839955385221962175041975595290199101557786287863108428300942264963365551830843302169533737641827115603504196140245134894005514701755303198991821458062961859437103294019710663406127205696150023373163158921372780008526859221755563897126325902495126481027483089221303620888028739476868726228576609102867101330764441785700482984486292645122205799805615094128720696739110461388772081759017572353808620472731669812705988809573284843233436736066990588368952566486818206217199218032816185740172124383751588527719669389328050561114102072147939655462990485271666794791239735736380711290091253622516565649723453904753151163900464091808892274241354174215899350767457840805227600590841438466935954694131339781732801338428222034713380320860366897098767996392448693344702797480228874651316312975672124141332684851749084911398078564250841142168853387059856983188811336276160809968959906674426025945454975592344007507232947126230174707141622986228825823920781712627518103960824118688223419326614208752869943951035553178377061637658988845501264881933005822617350690536528737551992740413328461152479978566039114378863700168887534632792650248563384839113635180229945710005552056198714881457005738280808485112583402715998870461594881681954589897780550437178210084444519316711559109122701573338307241965356967352468275644130497532456125796193813109423118446236240530325281875789487487327525547198518916861015042088339745603853353521869928590558441434278575506069457302023813974092180265528394725948679220956136834258898790924550131925344769793339434432233110078179344144658846030196448230728717244042374737603448859907654402268069996188204043388718152452260767172119376305786769222834176550404957519020658824163497255962105682686249901956308885165238822453252939860040285338095686048629791726352828627381178400921016800087399936234387473350668775454646778341516293253081367410554790825451476865846289991002325343145768033025118781643047839646470075254538228827278850489587555320046454562569820700338230553650799579724727286970609946904378738162861633642825458048645953784323126872799275456593961693889508525332329693918170976778881700263014260422168620502179729609181923541891565327855545735220735867224353802987436272712855843749221330414227676618572282055486230279293356319337925489916347231175615202735398447501964901513165926213377564609789701662702830803784808990418688619877502141015721564839136229826071839825223852649594491676066430879173641563996149449848386858810842057150060207404090997745948395747771761692617707727371598686990945318823799701879945503282664791046355768916978649549683033048681618109112362648696279695446115518742733279522808783871535876864163928923398399747599715433653413929886161593517852897105620402577988056870711158319701522201584379169032396114234824819952077192722207963334418672204804609248355771865806158568367022101695919170529699064972338216773896218520561019787531568171857945994873559433085272485476463560688602469942838831609151501435810800057620173243264009101385369220466504286554578675786182212545148796511439383757428723958140006230528121359167581374284327997859240036304697407732023054127497820505945325086736837862857815404865946964487649804665640326257611930572435248378491173443258675228165924538113328832639666486631896299752319786172774618190782642350409934215320753170390796467283124944074743777041357973610354487498334643149895996928021479997856662244690825809307111153597534807759171356654087531071148347541855088050154080097145524971057091741955046763364616775309781079532389700460020051913633664860282683332089404095480376137168175367619394972911947616865915319830444238722937590207594669613009056657322316903209675558303068801504008128209610097369780887034415667685256804732428649860465182410543282531069214578946814916945237045329270027857819549929879459760890680308679897291781121715763701967843000911524880262814084507907972981729231672581300556457371678033448509772938969714514535760004532399598458682671407547651881273926230920386576565362094545236784276420426818029028653938255006689443041081835821652123762220291031641536527225348963864636499212191058274069435323960241334040205926225469267063784293789685944686615979233627485427789903690028790515600340889279629178154872906908896401569416409597704933786746186616468738406059348533445477043689822117584585522323923908137418922597019686720253589236866780180382591509112807955485018520890377897136481390637418657685474108470278354079711561976622288007781628218742078999141295987879575653119897459591900393896807300870984008417775951428534834706649778088350694564854649802147813447924990616756499561615055480098620245280887956871078829423282172873576910852842330702921152562519176549886021254028854446790155607315355948014789084306809084932903484329283729821145654202858018393812783936443571624721480711625517748469177235544307764971074741381946067245866781387616797606358044667360801140665349291517272781496589661891580232407112719643578574411228481029176029523299547879897048307683950906493363321696420403036113148982768306121029878555725588314045347286194816555679848082703993773507316688147512255207336356226627000606321951879980626865076877007526046369445203392886438331893384744059062021083605007555558991123956556218806363699831538006250817042260019788618250748885351067171402594706320380083792154440780000020456126574163257649064379297176206798419627391953440845311543181064164796483427828872103010751408748312802250223850814971422509383763320845727115759003716378658701792873847842015546440467594592826840847428703025440510419173618981714665387521650764425779749292904577874548704877872246775035914469045494475800250156873953405531777706356766858130029766317666921391146475433755378248716621993665380711959461476204130879838045124596682374860296239766024418498683758306539655615263571819651934508746613140146347421687043532412881689871841531528611059381085929993936976206307447718764365237954122585896828375486176599426149545875221472476527096636365432031663002023176937820457030816568633699143222986941704679998893606820360603682665197362447480292622992576964246524803385233522563778563164237994206105258503374561973004321009306704370844572977231751113762512053023175686372965426909051398425265407194498570505890445293340904068022956781810234057805788977294422676799144272505940525987327600860482989036590363863004211934592137175722660691074137613483246886140128398819402879518969527952378844886149850370258607722986999617566489095557202434026683762132367519596998023618582238665845057289119248702151152960176021008947570500151558643524085160450074130110502911997885266715358892969079375989145908637807907152047201761714881255026248040297910508421170367295245273110433648132178165804560569992544685852384364436487903006531798312663502693605771470759951906875690414881548675054718429603295767524296007943046797239432233682325345313992823284795446553345795202999756792258426561970714049095746242107908924903319516545235066437979370127529516585482669086919186191278023605450408771303612738130440113982985774631042191260945704679127772365050919824208186108439665751460513996133707126128356407755669339571844427373024115036608394622317076270083975619196530645569883683543850854925650094099267457939416109586793065588931374554192152030135343969406104993918476170544898089664882444267144238547235181863074181412280891143443394790139509039612717964846096990946641322992213067133985847684663881559362430848183786507450863453749001328264978762955664453001106500545508570206386647269403522577702989414453237652755203789558985146891229166544014780942776339912331724305221415693375316903519486792417201013965307180282750251749820598957464503563773763984864974714768544598934162702847984320952149497101796603169590939575104614486377637037023342536933835681158894222077477003881245529082424898589561892993162196400427646773881653628076060751412281496898888997611668252024253836328193968458205868768660091378600684616450452221386388692180321596392868044759956468416028204209180033805821574046924392977011957654021802528455697735748775645008358935831548421707762635135205204406254662083131162343491850164312218904674966319773791645424435175946831437817037468921641583049711980137852201678915685997793730579165596427956385249765616589711267055854455953957050671844048562998556115374437096336290070080586467832822573193651595916141479028337875541074154106716823005779977894522268838154336004315798907716343616633175375591140648842308073471531013133584371213746156855824477751805137194190240985638165645818576924324089497345363730405161843183534588008514516190431773607679919730858535512453070602523681749860223211370568845438320328080243835552473014658161174145497101848793676593770171091048956075013293325941664467039706926441568449698522253205752015104081416165315005073255706737437486792037516715113987542571723653573833298671477552786145645241742602876713243560259544543843960887896277808331258329645325568111913830503542136584485760747507128480834474741576304495426407456125108299302115904397647976140325765529068871961816430323113860221713017840288381123823344363304817645511526623544198026093522840308680084603080334393606441125455360725347764831926690774977272225192708639437018014977816834952742441907032308626606853892661546392063411300411637549555160927625806517045826004989236745586846568019511259465797334991462148529061021201098041699410037399572788520891097754174266653808782578961841126819748715390250777850003706781781672877589118723866388918373430440132395896871931683867467335065232922578619011290415534584424275957935004399457152746470991871901544487473428731464729136823841527490518185731942548262355597823686239145002028841054379526681348869359779595193013654278466511788332985478403234061131259300092767603368248270069421992275795167293879554231810041323767956486079645319038107314237670649706611381332932328102765329085545182445265070964199553565270685624466109037622156722928107052358490728967237697380882115714240085983249233863867163137128103243526708562869297240471857801264994058146950900989884276030163627400427890572705092984576350805570421687199467719211606027871924412453706023816223480722542818972207301367953170537579922633628106903221089713058563126058592589273045822331953088414724647511784963059380670361578606671941940425734632173561331009721084838976538501480047501913631614950861058669055310983719688699984087255627605661052407795204702596092417383483449605432519202895854927239461726672952800429365851952895705659468510422605990093049437199299847933393261779941176169994020998877372778109956369845587233501467285151338445792502222567314729890100685395023833716713516101430143642095150471374458289483649976778637999028771111308256089653101914302156923293971517539302135302565500544936253700607525776134620859663938737223258545646578620486034762671192471408412007823419952144086710379515503297559320873911797180496278935639628228956363111701935294469398570960216869589194908104012211596669609864921395752736404698375136309855422252260595531114362660939244788736411042018860835777216046059120958871133253628347003943403861494987736644964657789987104361613543083796361961376688662112634115404077091343083040965740085452816972911387003802005888787063395496730645216099320637022531575408067310052403250346202304211713337955262649106854990771342020306114261780739250615615374550525242080067604064355155716427266692927266120854670784924030960184478568779245903824003012741403750347988722642159587713971142306610304571783967296401882539416473395256055392931782648736151637368746585170093906505875495732226430342227737864084411902089147063287085054264538629401629880057652754644949512304298913245146518755505364145245935053814030121088843676428011913489426488465715759325638193247147291625686075416236540829071337366730700902576339109465429644976863479778333039296027152433025734848564305896182268113021806071162802633725126902764397888435874470342178171436767685065074237092868488256115792343195715799823139114274187280684692294866651556220798007086442989718052846856023952684728171264138629815356505627506119321391296450019034874361606424079836352565302219127273084005328279676919614056831226293662806030821559035313807727449783603305756305929376868204157804162542116031063755181028830995960610511424993694673549518182177577425357457574825973313201584442774345252010073519648903973932256773893472473201566201303240060989020313395774698314071534046963954763046052759232811072028476926563602573498062959088685945550220378734096882540784539459317176175748678734837842079157283878854505687170980128118978946113630426537081930789739466520343626876645381720749159649791015113758487132183210464050959212225092490150106083230428672628521426621665597948376680954985764959732100268098637663512521449486254726412241921411288851837507210704174947037818158777894654198190955551701320116091637331775756888911668020280464354345902388497376068580475205678463460275910753000157466425987987156874244609438480934482842562583255455076027419103619304943502566459083303454883380670160567178562196018824708731731633899923217208548095521793446553198588939247963167328710090466755277373810079030383055906200339601275431230363999985854664168498229895715688451989896800558892565529905203769806208614250137509602355135113916054139134386866015353245469678993112322856416309860825161724414747271514830886579280441906834557393316322723036331401125255410394487354331257722608576798743803970308510529440338425436813450233899758790027529884128772580023500659360925704749055035378023747161173712262027527509979495370618285842985415452092772704215690336624196670877033569873815937525906339607831573979622419332436736776789578637521483986629028692696014069606300961389484591480112941882696691200834163666857961744011362459288505844179967793198194985138424838894473678478062168227797900619954718592322204981480438305517115641405269163345250764369115997666607036814644082520338202925048027410493787560344678158604860142257516082754171032189866180720891021634013487010847294176330655897657232245299960957219705203114632099155732778704423323801333619963467151517459996475619897120161940794678007314639287596859766800102149150724241902318249605135556797498724223547780356490719931121066963749259892572669153362600051928713097443678095658248604231052663331292997223566928809116517996609638279464743991326857645336607798260259349206960542103748457737220981834473072716698374565544121216867075102196596527110114802745358850662956387154252716033712963662260227265017607794845021385537767541151039179000407437281118965949874479447858670771665309231518246640670299894412340919187785663689822795872690573442175243050772037254483109300011016804863186925083705929460613896459313352424504577339198665677486786147499061647309270061758920598104581396432141798532647323460254643674813893904037531913688912628328950083920233578495611825361419056937208718754354705836075380991639370260545300253083709321632848852314398328245324054057096780830272197906536231159312820737929549133869354321935807592853059596135512713894023234554203914480274982280720890707698470230069339669618368515269784090321834853230430307716454078987295754812905243548835214964592598403921686106131382594469891023162147087675424938887319394576757470803512358381403292217947811680112845445839687568256850972835423702471028950344909874547159046676194068212411691693693067929376265729563127971185631694387221683151060620548138811472455124765766013871124455058456684977798219611593203980329538851209562946881527816109175988448575587120241691528854512664656008269064566813062055439259932934402579815430253216030478183637903757508125160136689272183666331514051528140623007837422083146685952584471618020221152935509570696888351539002213858798493202272783456046518056003950394865927829305386990205667190982501910921464959839317143062893448393277510190142398222374907175642431735906263216965892693879933310641225470136664130311946221438639564848607395039937813693956944075966405391041890082522183639830608669185141187506664435398046517332151135333264182652731740110332020135413449412558157055052964098569089145172293704582187535062790759168402232604053923684358740347704299160518392187887197590784500043310561654739286806588706603488409807717641447572466377245199448685867821213518171242856948022765729755254094017117086746009115136220852697601828136854748402450505272255936171609906458434111193798473422598561724154502835736798799828515669284553318878002617533410877396348638987535960676299489952440432380961305529357364870738853340665129516647158569476305331833046540988488908803705067147376194157641941482000376650477827855447473742233184311045438781115115378106040779505734251004908566700442994229563714772480387418305116258215097707764724784441803867280951691736872915318316312471845484146059550005840163106536927453739234130633964672853631184529732424547386003796126321959532518119870720121191442596807488002554305860442723673555846797406096483286540303532036537167546100456392840195370237239499430523777327366630249779073275072486219486639390442445849434519623545994789974637545465115954199147209614527254496626346889853503538963370929519420529790344829252196638950262483073380143161157073836448989165373000691163628195393272835649813986465751069276075532050980624831187580197395547212907894513133604823678873471075846933071580543241923222921300119057870503792967078313603727178040240217471604550796385474014199763056654032893331924388708049390227628947017309384049712327720323975272751849829841862283792356881641917412993220657362169565996439660355827590115413816699127516192088209510502373116942491840958878702941517687826850520892130844474592828553221586593024308918396763637803152511744108226153404808613938291364433594137720851281310165013457716369090493484563859337989482844169076674964406627066993241720255751892828102625902419026606763571645256455040226647497871272477677262177296124097110906436142918273227752580726389495756950635770024219416629062995688720808429937409451274150850989020472452532023236189915036392978322215955832371310818071416523720080247661991746648935175383673394250053526187997340072467758183597626119364067326937412940499681324326499909544522510472547681877777710797940522414278856833355724784339344166388987796291293629231860309198875333975184819722402727206578127570387417086050577956754040812651566505861052663086790412008133227448351478395388523212597775849274402587066157785053499279105907117492225039435049339831701190989526175997162607896037410740988697005831727103595682401828643515685848367651701254658633069166536723309798127292594397245083408858085910021268844913656235587001140321524253152264956116215498549127733656758899251393964433792555125579825889296387456535481252225609313667108066322548164492842329271344636117717029668418257244060638655885278230238061594995455282557774615880092602456965239300728321356407181474467767276984291793635130679654863559378371332109331871729110812951281140159162320918075174448283715811197252619994848530650984731891238395245783569910359486779189697096149925100837824156283647262623241348924031491222299600701211508161875414129034611279997493452615460272781252850830991663738459717046644214826666356590664516464427988709655287758550340114784582129452513788311647048841682183290232784189251266807311521596050840378961215748112481842335288364653625034013829237940058702583883148418838578502404655078868818944437308393496904123299705921763143055513409297915071428133369750597041524644201986805624097585987196773352615932447720374428811576680062882408431016768210873198150621695016757532523314458246892674752200003198944039467975414458811419232355655406407493337330348283652278351672278688464721605442489314363257554429494532769769658902717694510473598351457748114392936426753883086851636627295810248058845347064751908868037359973396647304356774397581770943651027239129139146150550610428897392349863106560087301832645571377698323833795809090186864222283924448157927606688700736496814869926739774607397284521506176975659984087195158311139706279823685016316146548006569236900312498892231590588483545525028770309755817355573907670274403909641611330058022073560956085336714762690414699635809730433580702042010473324547766268616555660292580258773160234193021328344106805614447959100882400869094615490214790500396020276156326177396551346768918748686818360891765245309358784786035737069758156288021093795356301798579072428049081644217492407003812469216064093283775451244527061209088160922194480984893840061067888345162840227155868667944254286714938421246896271914372633142878683333080430732174690040660378955094714718290495564176498604182695969259051144258669598995527059762946182150021905661304075312062639165244490354647409686528313568777170138745490650521046946081067482003360625090244709326015407164766698116684363281856314362134477027269183659615871969842700201765073728448259381155605055166677745989230265673510649139905853060604817961206592785366320784763474558943520912996546543014797639289661438560661548921882804973625678474021550379050732340803073506465283078331967727111858759073041431611632775248320432959685110925265560698942412761845520635007829062520292393996211961062770822668990207542641595948138519319127072269423869590003372589956971336688625662108387837736946773546152484565747550880054561351051827425924213227210634167065675046871579416331246216706599786858311283086505243751134711010889228497081546019419405455987886314485626643019327262905854053002494085047736674383666661794731700386714696352201792275923206221721216417638423004840950541368797517193755319824878620143891053294963846333517045952997560485578635040510351781535472514218802962788080330565877330965861527893103523765497832708574075755627407374962049429281522219178087070956661303502556106880799247404406792280966889413435977532980011458072086269236547629414116234276189356193980994451275267940935077545718824468991544544042885048283262679093331327181663987937139796191853254898957549680381883511909116372629054000442235746020199305641051837218185023823204892934180413951709882884675816490482798075519415902838852002934309159060090298981212961436584046903661532239569026752862652182928987097673877132301527097310990924336204023664032752616661611856301905264105942054069959233498051030392271500017333155312141833043268252462648531028568054377569542253385043122391075207311100409362964254793369255931822541298229254506949776781347467534121649407857955379878198722007200552398627995373598273003345312073773628156756136427185983898281570034811548386125184497644871948844329483667613732686961104217175407571412621958827146518806240697158036208319855742213241591206400645006208639300239522801926540223683067821617970394313511177258579231806930785076747835416008509376512381441489638989112876721252954136103845571366252797211907967076067142935388331383033804196501667435468958995507964934025475016040082903287678082232889316949833559413596592399058394173047934710398879769825307551843126853518611157557040059142041809468153213994047253312108430743003286629521838719577065666179412609719237303336872228790492145153698207104051067209078699288464124105547329937677579737626285368282698208109199917094732531891711105888197871339170574252095513923364574723345923285627148460444032473047544530800662521625795348017402977986083655480994532566389027691572240104583344069661642883832556478563407361777767190507690283859023013769535042941591412737247393566383141300381865775258533892322363162025622360772795057605107829309230063172036519034252172802019364428001420067226477213647693578991557390340731964507332344563012925596382720562064739778860682791999973004111687951509751916955557204699083675086309105521774078790587802164388169791761271511336339700054090178911009966643361911935998253152933735190451288039044044075400873538958661582821301173946103640415591812598963908921082988123028224563934386924908046032562846782225114235877028830279184172416273029025264671008401903159909305604276263177955117022780845916169692828168438718378068950420556778356533878358733968892681358945124124928964402161588486623797518128204549277510766765185843490065886414979790566145177755147567355227566881385746464473582220671693299182726529993596467726967931423331682180000220455388844836235759546212617484024305858459685940394412161713171085465036837454478458480958138255394014925970400848062764329915230037725493868370243688511758311886693464317153825514336801751272642264513981444540901013578507449881811410219020786970709977503746411814841999567993473182763624743175917977489871059896142512512092390690205755417115502431461090182195549948957256518159060506653867905022092943474288052393735573685477139248155030103706510532827829358537666218147792523653569405431206704283932330308935969847316979476325528833019541600586245232326819209945783443368776491315945754835412201957997085090098577589944395541334827597012763591091285371111757414703671385849979104691507664486360581442795218248842820471833303030039954786520725183149703909284422921211842791047752633240081898990582881080201515522202358826849085017673929438613292324046072309579828833118197612435312891208461198172014102306011420521398051663029509744595280277495711463628415840625567703687797311248780427331411840656041751215123573212628758487758671046213899503275292987869019142445260303199213339325611300137214135653470432767220979652482558126064106529115165017947812043431616399438774076361772129835062589528104288594588967342009799600576080145721835591634217767915096591609665141570379370819754040409001111847856392321455377149859795307271446157187192493558846666739687049427987212199233598762196372425454966032972854014552653414237681396816722814407216134422208008025561816885598232535933816651154656340611039445344951981511279110205512396950626148637275904944622442781254692708930348087759744989772400137063381438317952871492530541047109458355771306585392497228762861089482596382720596889687750468173431458662239361146454051985486016101071334377422639622624586479037631202593386247950371739944854412493924015666687002449893219024174035787366706307842849964871779444050196672862402921823953279551811465138022321293740375979163017669226845953555379656155792231095966546277140554626458259433060590058369239305498646453660372254877484900048536751524883845319269748487883417108921730204472544632537574637916306330049322795044637926184663312004437858541398182594548714224486328592134494991931170867303632429677873822057146996809795672328166358718893253808631291981887429602482578291396484202969884452667837970198964969917372417845062348531900204342871262939544055747149897646653788751197090982496482110023125197294590318066096977769257549248078859185242964412975502446501565929805231074509059285098394958700464451146854241425195831817378980600233200828338621600068737187309743887266121031845408926808111522347950492794577046770928314754685620860308161416322581579232991267181655751097901801249007822159378956567901855561755846287053542085078495420130331161013621170259923531367425806487598169060471283690306321471126473804530074854529366530819139302762975038067544656381103901483366041427414468415753008706067662549106682154816064271294126957629231584720620594517222047266905524336636823500624236121328486272104520447199012581867535847076948123779870590023217747403509476382382799349355590833206775203608262169059129796199110414994405560733481877128585624043795358521866484307276619783747024940363658128163114118340377783187971238171587297560290426670159637130659936886623636758786897675757003540978136649747277230175372692066824805502714906400565643100446718951308406196734242295738298143520983761377014972057723425421336295273351893561046734727581894179973392456134106691076772194011551126116946004172436734757112909817080679366930148462199440961229607926492218055833017780874862449163013569137672713493475817410286014214670673057873701639934466363165037998435653615583227482634409698471030903856849597373674381217851047693147370275240591685460918213783391501789280521454558041674992532320855887887614468906138885552809844996056995791373746195944274281629800424248738151666511500625126874054198802178471930542761807095822564622036485079296738186405773223558444446873011499789335904332306155687517943670214877173978523077462702058889528325001352346942534282567064474206351411217046559632456065676076164536200093235509622652971645786602081612740854960706136373563257620704698922305301764524335335007848382880059158948224203958615966150088647714852085949058880195053231269588978687118595261593356228873611609047403293930709242589519382992462157690525568147822095094701930409946545906651629467420655406914106333619468807899088723207305871312630536731266314169902853642206809184712437097420212943465456138787630269476060170497014624197180621119790238581108818775739469191413265092031055048432004653578608482255060595805628866394333852499281478523180566506026837756483138229731912046562323754304943556252921895257826367774119386562151570190304049238173550877752937730097589339032096882409947683972721003908440905132774333978945627389402017531563006924987360886036251143581489813991768349153907655778103097128997180991758404758378216571644149761088677330996140071666122000182456129073242134840756181713458953906485904471710173430702906590910967589828681814313079241249914713194286509357272718415482774732979383421123967926032452205584230157390879369042220668068657035147118529179406723348734206542595238044176807262335372377385110721126316218882572275220179439299728196238203034534214813858308190864956608716707420086341608666563507297495165663084049254956879418749178621199253464752182125517491593551010690997536950442785681874098951352873031457663720255573825386516766735054332376398003862278966322775233662514292360307136614967697179361862332139641303565982648655888607113943464948911366019399436569621279381773779634448548236055322789040168154757373627371629218183494587595282449086501713774600629077191997811904429155912375782806794250470882006265727844149599506756713751452327942620957233625470969089549906818175331783988759145927356302525526909816538356037434072753436995607210630947537482505009353945439869662210909805790448107623887529966108228411716092723674659628493486669808875512786846911887208393897544182691167831674719991877888875182056090068858274467295910718582682322846439580305259766197916977519849102709153306515291563792460801673279642603346245235858549140442612726226575381356120421601815535706310329300451182970801390053158721398760805379592867016647218914894619363313752598312306991464339232469355287379989674099363011213007341598176720414520280907512241551085524903803799567004474402719367805809316081267215045049549165199261666164222877441280794046842837503847184775570900944846954738453601878491617207481728737058494220000698928435793981590311079556732691604333856910525844094945461727728893930590389897049858319089140133820136964761345061714206699559086891231734147339318765890265872210105285436722955952396841782878331294270844277307912568123287845590645683509769173304606358239239663273734937638992759271516522503977510818963600451835267678220039333665691581590883379412384186381143626795063643781366979841388608509358798298239444935601273066787675778575038552230779635070524792151798368583747562524100831063625301176261524660640707811477996614426649387163656457703106537301100181899994777323100838507550038214727041531821261318662353157752238912264705234891355213574379933533921693348540103877103040230269101698900177382933864098308622606537383591767102530962558261601473807252900861366938489515142433101708626961906069942274072932542200526646756693929158959746878253676783616232588625758182941927239698275225936575893722514103876521746157585626650571587803269661900194662175073910819064523910463334546619976925487112889332524231416765633292805774570749207652070723655840238452580007627722271771255533179030251061681110343648405356586538626808597662843529798538440025689759963495084165190921400966636834895314860403239440013968576836434594830767085420887739071642290471378227748043181422877881746622977397582271082341923584068972577008121920208504909085433014312827257262939949802764828090022156759403277234107586436016487958443047536266936600888411081815034737194471962371451300714554110955626626255039260467512729945280475997420244493140355304759072083980709574306017311574325598896398632955473507833519213010811809241064586413835480289653366661762939601965282142997503308449615485396712516081991694496198082379341904897756112658056078416511732635814065545857050495676088242784997938646485265561737254480966925482100745749101664535707272622253055589534198222485425535760062581056256738426960863689291422026607945996006415532841785097086024946055610745022865795514213025513586209127001086048114108722303676097912729764962570879285000615303448145730554092723632172273158599298576745073573386770603696547386387798374602054011852868804344603044177703777307759198100723905770539226496907904962953098722764581937732400535165157594204035546324683405052986861797668877490082155858941082586757970750287920758303142183948012333635950750241594281689547921694892161144515257009810942101313751129330637895750940108611516167583023454391455486867377998739247299613406562884915200835522989827081526078246172746389388422386562117895683491469244173046586691603625628971838636842954471926139752015768302295079746511622573436347619255615025856169579840830840541908297076078382554452966555550672298937394581430361363601257920319050367280591090423641610738816558240355792462956516072124178730739974808853192403082577373634143058912163488717386725972716626489329979056260579843816356696005976917503189457197990789435629872883437023569365432788164354165676670308420949512158503204973514290692340047633824301638910062281284324759374491389278081589243636585483337341964089740828053936005994759356449175376267637019727466990468965582013501164237819840158753729390943710332726094900088893006340480451692806567580597293329014973929150393689202828339367141240444184014902408877749145280251536738246795513189887684674099903039182875324998262089687038149820894483852786542777162485573955283002861319612108405678759143785397688469230105610410638942557880360856558504093841997855691733412252873807204698000698851591112721776920330765829651778534526430179204511981877985417294494134843278486480444433736295772599519220469610292022796921612357578887515713274006837902186154872697347947031304194582703967903764438836537879748291241610186172756634448422413037528954417945923518587121240947574613619995535216425929746580662381040713863032078374202465138000954823946126495384065333109361846833640787387721275765000777819900365752156775041075100533074189273384673120384235557467694166183887252128742508885750925629579582618923716909243963069150771847952743553168805480195616562869441639278717396394011210278723361164034297124552226882527932587373464300623377789232013580389522349125797306486648876393497824799100323820428081413506504319795341784683656059459952183776785482560578718929064341808405676593557953888525759765549978359196990311173114244479748077658057119429482550893865926648140359827159503441159101595644262807527008004296397626042337226490322295415437376707171798392768919589482619273305589402434529686560498340409737115023770139375505762908174043152796131208138627758398637482708944709100578870830058748441687501486934858560799305635578720408984395506210125894699052849492739129985424207353983341551435657892495997377130385758331030038897350825647121418870924860606505569906837723510933672522077001167769376993671865455060660606095939476318306963546174238966867991837044961991724624258531578791356948917444891757339040778734395060742679656042783148716421500677967884954984427100599879501625835053661399217250288830758056518769235033583259100146897910235759646210633315569927663773237229629519099426502747360078201497282255998112494295251166872426565946218003853941679054076184521115006665067555445661924608229027980201266183094826478708333335008997944749779736685753908114473200933395453683115588244572564651019284848969197529900348275727864633677540394547653475965093359282598521340458695223565065582601160388177459984575092245125898686034581317002044897078800755347616271894549077664149014771322601082438958465327502761590666932893743906934810672791124115220503081019869612502157687078319123184568378277794523813203983810973940639566989804157898753138050138026918212681928006624144415833978145714771679474288255936386400660320020815063719768021457065005936562695980559534406297848455807898852397170913655380857517694863665270075142083086801893058717139611413684577761934544526120832431250534976327556200375773317599947674240665800655949608734302802587997615589866686619581971255281079032951094431832879534067543698562534595629944634828802443400197729052467969394177083991134864766576064683185028159032573761977253987149209065777307658757138856741933288473114107213278241495860010169488211074429323769181272412900547811102913821560774628674195451039523611417093944915426154486378619657922582859248098269022255750594477912273117255966784963626941970867764156170110752523100198877641677222272360190236904083516939994742631118589557200186764266528683514869564158266793879873496893154961634788646619200512439927528046339225621249647628347092847142633680459981139208380011129685463977037013554427061918946086102057823290240247130482043592274277341890555040082014661912413615145876304313754028477299609534138729929118553032192339048480982158113970553963949362363129554563178527072897131773498931861669558273746890386412478925049801225411595039868601445574130712756352092442144285962829521904640815556087947997796037176086918379232351012584915026670221873800305917792809449025071210751098015759375690999639510941784953841825107444213150108084435400497688082126891435639771761367613790085659074506789728438193066324243984850398504977696112406627773622885347732276740111657605583289892199313679227634371614703784676334660136940485721796062792038782955211126083291340226680092756908373616547859706507830982554112910095651718594345730297845058087167476007086407486646395900900823824895354735988585352865346649206277674295798775223828778910324355947163110431002988675846989202246769539744160782924745025237964550718326966116810068716902997812433865417141093304636443760136202060251210612374036219766616315600831959479135358306992872149658681445643364349905815038873285603264207989532166658633113388046225190158423516010466508316638764729355039482006040331827073783340412073285585340174610889453964471848644387870013148160925276682228231490537736863746938076131893700953233200625167115346671467030048973412485242504141434164417269449921187155141615482822163931830849379305865751818855048782866152127448411549240782240424187910141445956433299920149129077083276232201075838255592946180463552665996924214537803628196512760085831896093831673681654275919785785949067978978395441673814499343473130316599480005777854861922624525691135438528138496460756827495233404615239548330096422964018376126513491476128153941709152472232213763862039775854821380848630542050216259163390921736668174297635972488504646497354462349759974106562013620122219826945878462830397629570161053849102057442596909798319200807324819150235149747023094600172680253088579005451969012731396151239343271097536513454461847986216613407071021902473930944047080472690731973343146259339779771052916942996419210263688277179592369549052701384305348902450495254019602155162852190470893139712577546972599615951024453413392093639898445766310015030637475665123199626781442765242455000997018766957197705607511407441132052359514878758779385336948970182962742407558839916493524416820772169977455727284818431446951321992567263448343608197389595852080100489436574142786940508521510527671004784831180278288405137079304645843705237677799928103547399476944837544837234870763459311441372702451686814672505794532790625217425405199446502479557948053114068130026241205512994022793942860528369004409617937848000900667327187431988264761906339969897911793384992246135730006760163287937178809314599701344741776009113118316567622577396322108082821436089270037278992343692073257580042350330939573015789413011977355736214845880873340398306527791121700474424668550888712384628607240482463478095271908048940024807140306841704301160179887303062266202388857267383030185853160431499421071196781406147713359203811635017823892685579326218202859739798037308840629157595105557430018434083291074560826644591400573367248616122979339370699779961139712345057398850329764110140604671987381305284657496006622699082137378109493785487811302669647258172125551083564818466587363767682959225808336568810985531383023201343982521673609000654997459836854294085605582874929794313413587582246634047711528575540219670534738471296977893525797572301641071498413117560709251706512983150100321911134937417897229227000872568718474234792687355190830042399039430764939580620674324917460321385587663780793585320962395567216073561491697693103312447853661341817721637791730782283576335925765173882304939758892102516629908098889398677543905229768093824432928720362296288950711965048569568785510658270442081836103567906471783195106651794877389873897249450027587259561472640069945078125105155309894116566405077941012094742737167736663977895875194885841820552809507125781801361923908457962084515582176226512428419707016877262831686166946699840516906390076535228981007838918188900981697792107252853802633100695317380458168464106075313797911366588276127969624284280836499900245453906882659720110857074450396793844923210787954014251274729375682145085489641774781818795870381747864055465220579940031103959542928942697466198576563394760850998712027505332546002869441510805805777932701110793564812104408029973470684776430728881369894027680592941875735639761888055155658758173738784107953648860925500803475326829600641221786404451560878036622325386561102262430179821900105907806335729667398583158490051513581371080170756301750275468252430160808244033362545747995694945671368371961755106507423243278353902054203607876997372610681468558722654388693053960217555007233882415518988504588715641183959862890944277074874850236506292799337531293889781463010762367222861427100210768841233271514188830244236867216814537533060567704028197804895964951304153041827077899270120626452450797521851992499218555017435611122177045131922251182086491109205788103549392492573352135926879189124988492062593527922503229230101016753937216206836406354227571613091934732391249653092991199360605231935848013813624751533812984482927348184535055858546642912732169461319141225925233550396054565981776311186217096437824276467350470427509939758777295914547925620015738113493438581109344050876356124958734934124992253812061612809656877915910940804113744702944903614190061994515270632564885366975841019815605264517769625272149362580928475865805629473277196593323406453279819727608600385698102242024311249202666004857006011389268495824449418427786906335221187338101556957897754500409123154169589982963819951688789100831034396725504293370704676846419656717623311492287930406812354772526156645620309539525515584822186334968255150484079075920362476847087313981596264834054280172050052184911154199532622053961887391560446224076861548050753541474027271080250851100798171602806234695787751979622739022970548188082064055925755310253408855356320025787452360299288323242103580042119458100193133129786771468817273670107300743238165680034856128481744541004460272640086145914994890792280702188899141828639355018145746458526528872195173817352298687329357491519027690776106809349835507329378875547889859284403690324180213410933190963618137414954328375484795876699344898761000295509169260831205523428216173710423658236373661613382987010268851107288878080463274104218697043628465879536580736522733699317954070679925337868954342995517170933216718512993791464449361899552733044288190022117071830885301398762690091799087551458869594647018160797680499945272763744695348504107154193651409649534736119611406995105554746075281499233206801486097025432316138880159608749487295530280358388050125521660995285471852467299594678082363561805425494689429311386705172733947413814712651771823103125009885774633775997142283231598750405934350199371016909902824678885708832634057993051662181895843054497415571673198363621268675145259449133884260501419519649777093908441484702648380339116535155199510721035535908721405650520072886421162937653081260995178907981350132220383581351310786129709203386139933199232803420071982608957214061486558918503803238445136598447457060383064153976884560057481326347514473851057166475722900754072319011795137584459295209961325721401044350301804901889149209768127150969564287999649500574325484120190807550998493074640668629372813211544133402044568691694989506043381753713081767304966283119720444030138650847874842459351212799579683762695389879908431267427180014691326073725411752543738458534266659494066754053727015857528547245419077899943532407519316403312041717254495900513298891794379681129649952779973466338326161231096299001416793355826028404660621191745770575442291219711445734791904925568444865605364797727497241182879070015428207140625310504982227440542187328395528670161328625435809422027952257569785191022719541213305035110695111354313476875022442408238797129266248205871991022602406422889917213418036947129130289696408921093623602390750290870178791972778000815481607308569235484539113140760938103286976935250614230278798499745554291287518967090310698064352724902333704042652646262226948398387275769901275452871887009137752920880208099641942942969573199462414854350266226908355677754799993806364450101376148218671386822244937293735031487735420566757768561782957431674160406701970282190980995406550268574869606686921336611232158622265425151401240896937646043992731183756456236305299224196561295946622669950814964340473887857037576088694648670834004929326617106136021580696827101071086485831720348147898462739266214030507272895798899930475171405551892971594212964538216728405519637035813364887350256643856040122813196530344741165333337276025236275031444466912579829491096221983396259523665616278008477474864530324490366201218604168940330782637395029786528137952032814753716031667309579528223776087978960451722641419478961857334494089071171547748817975840266725479371508731825224894202325902516727980755766330296439595900013074549430538191319391238184643806171423338320199985588007559388236051393808639390673545760696337062493756803943442598132786417397899669051847399880253533027822348176210034286657699360994568405609566890601685784174751554443521233407323084931729002325126669917981160553216670440461166445222115683408822106492294406884263832337656775431208112698438226958596428271746658709953756510372595803239272305774516068462293187947373440036379464959272788833707813596923581054275343821677723422952314394482168179687388333689487180285518773311935620692835287704614674868725975229443350967824350198898194371278112875471329902069246403698063035017369228179348830639495134348420431274521774879838860581733506588698633017115974987852306665319521080383864478715615775096911319379200126642923705960503500964686941817289314632399085512842395365386459706030964163378656015182494115508997317534808058682472817635905612988911854399601313508289238877147665837961880226576856125136745370053400109371172479492582007287693709049553719166704881904611919915933809775545828465816154722287658090151380827753357486966917505753410805628797340404004239048948584478776098691333848645424446697319084086993414066953518257037670786499362788930273920676498693038431049781039264437289284446103366544651705266593747533903444248120805594862348047646551616578747606890875473845441152068784855094564273000848025789513545117610190125573400411736236027777381653631696884053321985116416113234484712997588992289590194016092702975054379302564017208384173827998977364193407053548890125493956338195079607820364354617866109781388727015775683741938804142487198977449830494551227369560514622860969167088615811719232989926024469740906730598252957315718676257903375221867906503428488647836937598024852419647368098440818973618076493817198224630443773853613831042806324468628370575922783119546453089438044203594444940886460251565906704637678387301011350722028694424223759095197480874192351697089575815338450314980784589559704222701480927709932342316817098415388584359912257898688712683462485569794920249489723326840796028584673838293612103622027092091649841503681076142686454972004208795134409875086349206966982966871958677891163608441863833372090004587037794422036644153473141266895369016311078827542115326868203553316044222335657073431781338007796897232686136710500517883781759115836383469988757326321523202814987829943743539778113534744788452975048697566185099710333455691204957504427852634700146598004434853135726674876142709012147642547486620398715039904684872700520387124317492212959426390578873978648714537517345523330841255524900063090933573358164013568280576791341527577162024255933353318263120415912813062976024127103919147291542102917902074439547483353618394118749500157947338589447826082746205125969364498521574922913280383451823227374221328483222998535990123092226875888295164165875962283871704256999559146765464345397368179538642278148123074194533130272169957078261375581514238343480225899208933913554326043161542742246065136035710406391891980492515215792275584501183842145837754127188231220944468228358504767398874901029646249036077122983617168118604125948831607174855864747327229497264706436553374194277508334276328246434153847457605711189383407097708885415320755828713705764814315316097138071781213074736652135713119610855588676569220337354343233131757133458300126072344532054922564034602437622609062222157804335995634269794866747169447644178312799970793037406274528451785552865016941204521726548746474818622098774472183766073529799819536320302744264233599213171139272074168947261538268605993249516426394553707801380624721096488507426204025543003085293227603276822934521160776935069440010500988793629526721820383727711440862557942757458355183610250398883383547450183753682180425623810207160835997859100349411132529033490362459431723884136989872013329810081218280650721647177965742673206269571303546976086362951968591698359976280874495576986564940257694022082586949114801336493242758635963169996886764847148505384750502435694629059694417789096041404766050155871518941722865210140032296441339761886277710890264363424516708167265777614434079677460272787792998259165604237027180791706045361742385954500299621224724162558372165086011563329705190965848647862925817309573274245523596073733864436888275462440271701259250953918934917630819932564941667944495687002828292333698778473314491462099827433300127908565285572176943735652465588712955184699309945925861462858323086576405841670123890741227204788071266249344054639206998401265828764571916126665453364169908252446072951764364655802136524653190182014096734972412228858642555174533584239295559855709219460825186245612223068145199396156061640566751153759787357613912339762951736736901973306075127253396995291395344614430262713071411192271333049994069299960133021543723618522415008763178998467320647001625058637234266989493692352049038635105522519438732073580737850043535477730864042767101885437977515428472285936747007383762621492353619722982188678982969212259074242922770022170907508882363969764841166681316586481699132059636300435812568537890580307606935045768653586288944086434928844147413225572071624319874714283494770558359757024346238323041749118354424018179963865845977983280125377463615800036047175256163489131931681468681000221911088440624145924608324417086504669652900982926887019500503769057720688923839726890418549399822984058601549533237980313144864267654289536261592417764094089548189785818718182400195212681456419047010221008069277460342858295747313623129778592295966936465162521062879466767277956669992217933575243930532306432158610647298298515988606115389807335234784210402250840169153041644101029386581844821861248640302283685034434168792182459172422563343952970140199144129350649212654654986424245496999435628823680428055986541841072576177101622843449156716265004467287001824997451172443837649150725606651128215710579784126151754170278153545787736050689466657404437717155265731439672234747773633099867600383099287382899496545972906918110088492077360346114804417319927669474738735998547989280251356390796808174348254124171482515468120666864106955274849191551772144812959873756017815002311498504143715561386264035809704136915253669038865489268270662593971040493039759600865751713647505195915351186048114534592877262079974047358396447912121154943250693135557822079460991231458292414975994581587965447740799206210753017907107240769494286246258645017867734407200617999395211802189128163480593303583560723898422984675960100698717295706940806572790936746995262277799619745390304067047907491917384752820574664140262321149928965785754118752576990535987133002491281641412116614071121013393800678893592565291666200809285609291646168426007073442159734621822190093550042471034155202493198583635493261606582559764857694856118562264552634312625441449348978003816749509960463099872881602327904422261033188072466265179245940005493348369749183419602682001527813500400985143550990174437383622305125415950016422860047984515389670670447287374837731310412184153823855014148264698164022788721010321718049806187942945751707144455642978501728144617307543242943477931171071691163547693731317232437414204229398750605557069252598072149253955324945543174055515570230875004660888981169347059267971716574779076495017501609036198510080187134600908349321174918265694396696214959403382976220558302008646618008213175458883637262380361383378360522915249801634130398174328813167965611085698384425181502918592353167653077775990795763730709983387941518640979347899343695917518891073036050734052772677812800423513350991495711874020278977182919814807196577480954721653164498207253774302046083605638912790069508948448800003038567683908095752948912898604639733868482638893215410198542112303402451722740853283897696086632238452728794309466138801150522221241156504826250940846896091994085049138267689538159201742737782326632091477060839657703369351484633192000260703451676190216992888996296393912832795706035331690856998988700861057393076847672912027531842210314900249623141455492272512009232077849227497104446894434163718164954519193503881248292376568723409585898909924520410851233328669952401065511954750620774853194430128670148089884203429071791400037834714798248990653207528800904179495267484057517272624686336758434642193368845957720496748813543253556536049717442798359988007953745528259424718591123006393251286261776347854301801710039341255207044911223503793852557291875020038198486641268037415075320796058468800757483951837558786382861094773892396098920555585365881140087150716709396987773515552052526239879485764833564185126970588116217141518357097197704055255771362170262387403157137476149475498234515882769160820525046876435691839913486227093496695984382613619607460989294034884782250321930499088020879396646858320736417141175792372468240296196404515491581984592634659559615100828756903686117368545741575811589893546862187086149502506037815288674010588322727680316156579580996060258414340001558525749450989243742910706539990280711451721587109487905844150330634703100506393873126633068844544387639212636118561246907525023860167953446001841009440770729176507922197572737777710457787018064967065953114309595511673612308429144599109111539191317056041188211488984618724684936668964651403828568182951910295771192064816835151755686293098374901907187415823126930259483202306373979989996049171773934883336471616638553570639352671558577706034625407521608181068143328901406783340632385375923657240637347788419790538737832823108401691268268744667878217526612487416159903534845613295923885818630562773862802714753400704230932987322072749379070640405459496036613922328700487876560272385614928954193811169046387076225593346288112892819945179622077674057196280455537028364487057324683233215025067926207546314962231858322674671130638033396446483854243062502796229299551925378229454771303148731324538863444144215609025962903711295247379145257106226831175254291020545730273167387422644322628756171794481933146870789885861741307113136930980939249054543591160538174231018192459581065694120308827111428614220132960698655089099177066719652320911539389631682936072898479879441367166815339262531282342457604320401436174615971664477505533901855930907592734294482752021673471208361187321003236045056998012747734599688348314103586228641633705695211067589634812508811112124045305752904934465807418200591903873073555656813258861537633877293959875793159269581495674958155045204443038291196295365541800792441643755534427405016899194153647455488164309502304601435628077136648458910488412305492016945286872180483687979655135598499926156370721617834393082009710270219791501424941445685103913745638282203494380482366012375311518914500814580874299804077049662920521083737581664436880917591313235521576090913269088953198521488684454296276701615633832120737472899381803192063635813049207149944933853009847076739644689226204261993370029730171965028548620698706239016638424829175307341528872201266015159890117439819997788800098709411351756743240346498916538426164302965365554391572744529902564228627107819158641747552282231381164357884248284860031383845495034189693670133183134754699832156304029267098633378908092953902072735522064339270884684696978238904805973628880246846774742219020496660823876715851493939438135756408451036808785733499344008804551231566563723639152990499041698971826796193549910839149077898668516617294406991584067817785756825738314671239328864060453389877588653241871175943722360076629334294788517344790505195277717168073652232495465937057369892478756705326999962191354019081382189623312378494223943371198307847999603818374309772638087416878781046696652927970563264234088411391800911094179747106724968214270686676151554928404665434703344713303565580075447176143709777265528116933001678484279912261338715113160009655542296837596996930683958217703338701512677930302092275134011316829516972640413421832026019619342757221518901725852028104104376940522978628745331201863655571827867897461960386226305763847754395341571078806028615090731710690062565609319298699456075125714744961640218888382831684203600328006453024227801212037858838025699652207617620317568203899432571545165307381010397572866690170813261621049281898129448176602139905646092985080690948633610211542231570191694426048420425574190059475164828622507387891901273882568136347140145568261099982793022198050597655628229957888137598784293592698813690589677008353235894031579788977035039851063085790414164608153803370706636264751250713490072787961753661550172095467364637094858663110671138075421475629347660425114493294799709179693616214717818325003827163764013404824756303939320712860410392203265008926289353268163195089042461825821741375389023415548899846317116682620428056885430233146859193929175001907485302965637833968037801560379012358997754051439138270680676369828815487613599284187810198611673560048022620591249182168929372251744781235982233271321130849664948893263496064634413442375139822320109081008155332106342700575338717585380068940909557316459536961041864543035630133872143548211629105174908572496055686589508477141581584305626363675106305643205008419579570832987655993596755761998071229292326394817896164727709687705204304883841910749733822961584898256650400059359987684244353430492244255198784447245437708375443229404840262802484782728496346294390067176296013598082630267026400805258020570623911834249835845780470495556395583032329454707739195269553434276766674212554814320573832506863354687559402946987710663562319647976422871906634021302093454569822612688223490955746903066485733914637147933407352371472133190699102586930433793248770695838324764553029177565401029228338403120713389840326529851608336663549555610392077283502642268232414117567418945654891378060286181309769960838426515089908106444415024225330035680996513258370514242478975764761951482584903019225113983561016620220954105781068968350083188544616264352346774384267952716946685445268149662241265082932909558330773082599780301375987619668451953780170509169032157988508224450434973836728936188128526925486124307028263994280735794934083937965476714064122230649331291509994513769931420684066039241414863715939293546957579890863494107870019644081446808400872741335124362657189882693047495474011682667391854503397341671459129656531240266338444225467072364448504236646016820649912748807142191342344152264068934519888184876014501302838446488731272383651302452874278777052452062240104689103267266649756260928006121378783298922823237690409633832011306765655717104788887987909509913134943346267704033339133080341614830392288995290636455140149312103077771898895807697317870841949173893976727023453349907029398511518472098766474569491908973708290539783041326227268108855268472140906755470524562982279510904264720211030077163129309951688434290085740375883065885601758966227782084009646190496512670366316349827238583569753825268338518401678585217756567682603601590868111517682909600622622890618740550305208898551971533852013333729381815975409507645039758228793204585431041971646168161849700016634870573643184523784463349786534593152678718329262853422147297893606910454071619891200090664779062915530369659060183615292892935636756736304390974471535029891686865947633411634074689764271287995828397569003552492022130319682504676538690684543164946494738247469785758006698758527618555017192765960396275753603969341920499016218024950414821632444566589636307710724059274561994260479934433739306558690182607277254672966910798011342127480381965476926310689766705628846373831388049819814081369079134090365412292590205034681402027983272850614924055203846540487943010523642478811824626874737301021208915325145739039321076801267135200270514378720460740309013975897596550913373843512569534876920465756078843331960677999893009963901369347868278331542602750613218642088849494854547680710043765945916443091803461656321096093436849134334565009355629943614172094694657291197219722751271645525427206765933260166255513850927797410453634952880410655853373718266465848028023751805261488587402653536350208183763656333906247277536049277095971015398479996150844001560520554671280265198779305057734580190707260615785621184097016923611693872843248200157417194255354091722384589109648659460121534129660031084960303336592733901451203233431752654302924530222854033296753543621921954773533307254866105672237302309352771835653443814740271328364663795499459827526694644999974927595369781315925964581265383202679159387647472468233646978176595471165518405941753315988828955506172323006366927407805430597114830583195439371890704752693056172210621412840755698184506034973086663332615886365756580925759915663363829042455309817145785246598592763091506257463671342098934995487322486108963823770199230426332402435962985212757906652838637570782599068744985266854742916889699977201672493687020223952817228042681748457709928949409104034246973463805745810322013471690897215414023052109026625729519401335026574470482788321497454199952488530410805201785656355889891520116732192413852318367165542056136245052029303939420623803358295761441210263238047287515447530104113439479970838767527030803868891587803681163510420717341536815493594949126633140369721688028452055596934798444028068587356981740626014080138030491071072719144598711886449762343492231312054379289868713394728638937556965908290976676373031205945179463954248836328781505634065774002701796809866122083667219801512967965163715634964443902403968885842163373052087042269880532424813245756050185586503399840362981996617862801515443550089949511463587257399274510056626276084035635337405978238528902580704187985470276847207673852762376115493452631759014239386038128779922597845306855697523491100377732806316204341295492918623947619925536842520910140968833507200029012716614291169369003313191364517634865612849294388731921123792348448760069041700751718074227252313362766342219329441054152350477886649632243017885594457326012506296263639210132373807807318933514571569169351342379848135702019173682560844135919943965838962168595013445426917828003795818547688124802812615858442417503163308867422505905319910064770882370044503197381372515046688480440069395482879783553430320875050442781767071959534800744923513286924987655407890256114193550596989275785870510435865525500581975805500893398914695195489387636403124202280273376554267253943964451949099093193801929292813322708608697300740438721638425721426458746902870138709479633151584757574500244155644655414877689091500481182182476901444490063748135672882405030750715932598120009361076778201445425680855497476726623986181723974439403303240328546489317317629467343256005030651068526665837600916838111565245019158053961000359027184153367962342401335824514610985644571844553954295895772732836563261057678957669952267693510193629253192038396649024957731456822529756210196403121643134191263890158112415763881486685566040217008476432324020537388513159386903811541928223027763866045166050246007901228169206875387644014826573091728441116417028237777604428715299229658719648327250402458733799242244064796285982851141644195855870077300726799960679121871553480622465007665133552508243038091401113604967571767349573988260853812808506439474333560844053136295100778420754095189527272061563244751040209143756317214103533762722626404780890319342365138015206779263339249087632631416514760607156954254510300386292026249112777856380078798340993834841737503422890645005995203909881192391566186989397981477731804747021384803696957589834758831340551067735630379113805313376051809931153068577357385974734314159070687623016294304568235811506088933096626469603014257451412648780896906605909822466737713010322659602052197380909671420128906787876759406013194213644638025784649873546595882352533101575686522560418288919611940321361683179613241126803747620245207662312988622763071617569216999594428124655661834006644035955962808097936104373927772542468625539170691505001504642326464265229109038946327829850451123838389576150771466641620634679240581185260787939518470488797931933248435573984796717919602943010237982744292423911515377729101216527290225958562301561230888000603947263847494864111708378435440616718369653646952686847720937000510738292935425305192437110229471709359626530802925876931101829549861634725303746717576644216083160151711726588963551821237502823475713977391976836812363978357040019907515234223067815429391910079270341670792097004838406435971720146732923648194213529821305056137369035705154018856055025677087632500754574647471721275082151125883883015065017405262024355092776250187991724422764614597008295348036952747098532826653302264238050681272083010697988703096718437333919577187470246924200444340060795244679327880545440314913105787919490818271781872953531069930173136016467871402060672860071449631630396006639562837646537114821164869072131021123320922193734464018271589876490213980288483802420114765884623034219388163375006865660100007907105248477203694770074384863354377453226320676409561538124718017335256497178611814108695349592810067268429814150016451143887516498024935231396347937097102005586990067657692398812527326026915918932395677668880125422277690204899921253784175590485350308800302013585234860405687638279596742228525123547636912390115542355153523013822888200522559209466411830880770798119076040539838489819023292926744016806427113289755044116785835306574440238771420709310432431323000954828230296064944947021935828033265158943508525952694547881603668235370971619321447223154713069834820814461467283250710441648198000627464420700642766121864755245122875150610604074535553240395647928562952819568000368693401788504992499471187050137795888032975165585778085351247627173108111046237175497177323796273292692092876476595395009963299051465828989148160842468748906535255160191890724595302272325452611611057745537231631591610596950905338206149319037274743542699038990923739321398550995787495238601397052462731960234754156810544584141533498392127257048326084432824754897613507790423033476051714810764867417922760602032962065544709060548622430948597885977773548840667125998335521621121836994016689002965828447895207494278703757255229821657253943245844338573785408826793496208875734700091832418135515456227010842030477377752167083716432069032696332105880140098888261228983064527180874060983128968573081804338767032552815718287348781976975464212503350716757630599355751461220861374633880763108007802332339494449853052088097055645519479604491397038586829289287307206282616877932149807302357229807457477127284813388570154293881314761752403909979681507239374921134204355491036373272170313323285475937237070557124733420093180974412546723590390614853703190249516715927617093123245840305650185168826027265688849410512985898380163366114589799726756770039406739241083539724255504182242152646463107579012307491728898846172264752928144157755093647231490996464981730627100184724440837398543084480009225394825893801107855769575621424817684380220146517188769829580372645005580287984872180551003026978291633277199187040130864688209521456948993455511541393767397770244071679067449462117767944348023677358036354212203920757399072561074613960226742386367646934159785323820397262059659744050918059880341606004181999594509305430561512089512279224261226245994930484873441213662296647719447572545132962619301853061428795484484885439267665498617786465838227373510480128280415291985613457123879967684693537569676431073901236581089041193441953228011890635622463450577648993288508694409330347016042427963901646150523329492222677594510571280590592955602488132437914590110001960455940091000842422794291831354827903910395417013190331258654981401694693591820350877585035580660327011637686880362677305204499515485913969067640060770355563273647170023067885406567883535307446516258636299427569870971474604963402679020533617205576434840986452440558865957252021405249992657169203708925543713856901090098481277674317545649012376133903885391184671145276379399462629116828893492610797906956322673055222417523411020957126183235607611852378971852903285840319939672701799324419939318083476484077029947381502398823339600951964867801650595217836747187670012591060408522691537107495459691250810465681351531990222702392487818590052250950162857422448002485236054397517937165158803454393099659172392760927941836364781834536900043636795640216024425565055189285078121625299627219679403264081773722808946418198825001163141864343881064128347719901161051973398900340203870852594437706452902438958027740963625653403561857600585088652563783103059479963478096737020926399251860193409361955667693328213029964723378970942980819713114270346327424593669510800873335800574536196685716535320269360092976269232082719848823776788998179751806354708458289993914240964827193318846557534091849718341730018083374751101986063805233969900831384867618907211503039796537913420156863791457673504586730382063223938888706585916373171672465660448248638805850507527728163693469875439555584131654004508639421806314494325334818215768652238341559821618561088141488346034375039513893111933526600953313796831601871336527995113886663801170418871203773301963967717805027975487831288294994253089438492396253972234590736405571845950018742803009033523413277330082051792243764861333793592249852767135383316550363400227851130418819034880319654192606199380465405188477679342783889724635664359798105841697223545177825922727563803846572952962409378167000653930733780576782977992646742614050517138416438537201086927373942618753983321123528910224443055864926834095194081622476270894424004749473142074079743705423477963152470076507152887624443269548362023962654198178934965333773066996202953656815059255648425599699129305150512578457471756090360760245244479705659223601357528099993272021118790535963917813420786515330652500653144463413155453038297353391797649710163737485155819741936729153047825553282529890081884743542828682497144327122579922622818883375032947400702704557684265027412882381830807600797262810058392614764932327254050020638569141112508491928658366337622404944789434746402921126196907757988830029611959837820640354753647422457456298122145023501240605311696852841867410609241613970811575765895857290855059747469248616764204524422519376133596483859359516682808380893060098114053481409139020051498136953250038755122878848301095762264275135496478475263293760531942516309352078727247473062759399354066834564965722802677930325099184773420841536237790617728711193944211289643965688708665743633789921902070797425597153951741822707370576740828289647903885256529690296871104123307207859033758292341793819560002530120154240583048441884469199536199918655578614507379868119022681941882866636345470493801365972101131733346319195729879011624914932330868255723547176759247167337288431985267001525167895135208799771554961923305448038440541132721489232788723696747099150718508327550069550809288143706604770849752595735448855104363154861294707905995985056528965482332410559816649535656840767411309255682973763862163508992899509663810206312574983416217317299819645923751541938841647818318083067603892104598890004418713654222876578068387960420404249701453615100853643446083867688614469867385699360352625258070833517442542404504018522380040172693023826361211687115161298953557618989926857750115506116209088832112030446583638162101062783262358659978948240844622867068314794782013485490889046837344546052646812784779127115664787735960225512823645717317132831671277471197160677242747830473376715581019002982123057503565836134669390598545089361453741321848805448750924182593460973959402688029927582999582260109549428761842218659198740378562981056410724120446478756861016431752780585071788141199156252864938707105033440781230438829190715212064558119288466606826075437356469286581663712706788299309310369184797480110702120817345487879237384002893855594956541064572734015448289267772308346854290105412534141148047280924959249985845873956344549176204260560138932085953581119819556064384132574321905215114243983451225689237396831487870236193943071244926636713352193237390504188421504131507155231747529295792730462322835098170446661288046832126084393611867356137972091070369330838730427168438330972261811466419160168628614450225227102684608972034232816593938776239621621413396342721387452405297387098847677070448692138502750608397846958766826620885032669054492464678148663901182756821246511546890425739930426263784337434059147660054890096837894027006218404658184914798170721134042452845325543377438588802307402957535694814420474211870094975858173691607121572277476951047872558024250592467838601956264360521788477795243826226079076157224523444694306122993279751055972330611281484783545929741694491901738925722538886073390338354539170503536947301805820892312459984783267111836953433194093559395518695338707996867701776216526663398912474467910668670560368751169531858741422660243975941434654178126805330165845615301348963694569887776072238720751302351948138733602846169922781117611856359093639768212417590252374131102412672065378988824062945654489655255545967665262261790851032651388188736677872570228828795022113328382001974283401637067196746427434280006183248553029685508510526773988312078411205602952229148907171119014596394764642118417185738699237976515810941752581701592254966526695741701098708898589191954981747877432828441590428101071529745967427181707002787403502572640521972515952064728944360244320137292411815492668420867421284309914567115773548946566033563653576123348786862569291912841691653232725886414850319310298864601973002103416272714213099290724659257868598876998466787929932203360840878279652091384789941984289330858699841930155017188266197837106782893779228286348771527525916663136924868478220894237646679246692169870334288533650057218758101625217010933940675167461493258112421993966775289405775540274405943949720131884671612134144240427820035474956598183148482401966217719132723875538621546624422549104600977124852705106985815223613888689050420433014965464086876071503407597905450180364300457014821824626416566967584848120920795476731153172280746430283990380775465766344184136535518930420021404667562238471378851658448118436795570553434415061330550908464550932404472881682144427760026836124209718066990478165784216044798579399173398322490334918192897995959002988126886714358181425787241347870706705623503534494243279613653780127946552442506033853224151982675257719999477267769248584459521981135003688532139789315339500558499470985516235773086030189397942467429652075814360226653871873611403337609539222586434982668673234035615384450866856184573799208368542304919559152131014879476202952184521276694730138288397470432063550849413792010250769975179737888177879646908209665459943986523796011668012689578000390675358861482320140212058355975166030700092624159011329284645223269229630903583974997153886942772006576842780946156685760199189366018589231506575335292546876491604991301207074368477439631023224792581587660564117063764630322409612629277380008250252374086118519198291892542212347856146767236630577735430796089949234958941031903628018623326711647267123370488398742519360607751026992849244642014648756428808648734144993969719299050414168383026479492030629652378452490706668185165877305598498009338982283559689544174070863704071623267316202252537663094561299014129855048121040244815428417215354740016341612394329981916351615637087242667057043937681925506506605049156536668040590485954164975512364946988178917207085630697163209520321763045385570052545046062637494536293335822266388406308589732630126391642920375444203778906913621278369329422925720614625063547484468547108875573239211359649022619146353248698997378035244896177153765880980680128999360412293815834579085402233638935136761086905610644097319502138310874619413649335910510391512108810698076460952467676956890766877864907306353662055751353349635353077885335786493955248467668110369136484138245728546869521600965286066687791713760363201531486601423814205348560209714543638065930462944503012132839247714148740671611943360854845466747783984300829461991738544937355228699436513081950539125460358536300098326645213562030656466852663840784758877471730933995828675718895688064239003368129466919092280895468333149643583640142717355119276646294129409438947151140737992234833577495676604384158181807837695423679994377972862336808715373764512050424219036309566637235710492600650172305252134468896083219289020784656762979943332774316266530803151717237196341353881410367562185855677250436035689260897034149732831635594629260726167696026619815987834364488456540548122228390786485562296551302990386978025340925643551240561754748717896285031012763179288411671198733059593415439314966430952448118541407444742339681409107319340526443137708698850379321191728886248499058435736198087136999364062861775683806417569293859969344103122137741362876985522727591414540249938232463748612439301041926724959853707653130691571451662057826959561611236810991287683181627598467602813769354033993843210582713514024490868773231907131557869476221002344875980319543627138952347097103876830265464354673869749803450047989493049299600545291646582992247568004233512181653618399260342916869577122716129811169715489849847443257535494542317857061863440283998936715857332050441667387691327229501162108835204752281782360708308828010361158412390329117179721652801071133261092869223779099158903651802387182417638534304354323022278346520588046337451692332297354810552180240565502477899595907813656207052759619117415959793725196078648517414587423156322989480605615883732897934875017756292647328154889306585977725731693036333525461529972910820932924412941903503101452950975769453660152599772465806768961592152267599880328499324911723462026527492219294529177472728313982446242634258989928110648059467340292407322424686932042564433713616264909301439513283866214623411473405153253588046506017059890753830486247495591265480814413426131288739242080235709768190834055059269196534525647587315262873803545111858826314655334796156059951531038788650720536516320446859312905961959765130907418445195514684655253102888713058519666644186620618650290603050248474499451349106069690341862582920278335256145586671373131158021749878409074094392060486891982526179970386140563297567564585985621858488305800920012905671586198501575601959501307184746408464381822712230807705315036846327533357658520356668665233423320835052998422091817580557642316967240300897415858149611536294668626407132694469037084460960927497522396916093443686028186786632221961369460677725669822543996330477175245601861330078411188384695285677753323063811477396366454007800446775220497174955201589718961284126187905385459553434643269064866394576607781101088445573894073396139892993208982533646375245759821066619274310433487571770269349988183214995613041267505781825382521395861797625471001525880280695846497965729861767166277449642707072650624911786699941443183008225784733185994768053656436642976704077477523067054089144390212425146865891832164025826097703037498344357564503870711022595594517670023842495392574767623183786938975280682279081351548341913766390425172479569952509863670447613158566074804748583184001183715316899652106770898632111616549122879292197981214833759837890745736547422797849542783887492678121375576612814521640834016105717729097233731247381931937233779116337871902445872641512583603888117260026861945506150501965614011111710886221056383740704420254702680441914605988028288112449735955550791668738398128006283443147195354887718824622733571155700425665054244655044120350137611618198241534817060150779872786898984433484831840004483624385432106854464089516865495888835757546245126373431099143349729732266023991330284459514442839827692005296674984203954554713306233582033620843734336197583725808406351810963212662485480263085330840993668821644072264942972783883256972456999755954098705425954613218634707175428942940604525902928267267921357085665062935374991282761440387265659868529728036154991189957929577063423648599419721478760385729246244297336572657880425097911227808914177232460713861823735248410140520794086745268287097848842434916646371181911843939587768009309983886327271168691211701691488251214457559919615177711264699941600861628212431203247225444112273897348689973786615119967636032088584130479399551462266676299893773145415405996007723881857896922698773566534870476504801049976493177344582836292404967368858351885062197437177744912226728253389012302165156222155218632764716702735198522053911842901734790685743274085452699619976288668021480870700586726599895488438268516063318961575411562191437706118417164185122448257301627201043476875769678083474285218298719893449697070827020089357944399189379895161782538122003830223572024326775258654670978876044661470255590292790855107181618191905827363328335119172995731690183107651053035711706016210142469462191724952988545988735485899891667514199733916959382593202995622200635828168229407531389438930973616042921657644064382169955267416137886963362721003050831060010846421779794610967623483161413429641718712863441976749488902923264060983768075486506561918067006832746234647877775417300834859760621346515056776819469626343897136144856727053079386189275297384784112915299893197210013653650049166089009033875801200720314733584355931194655718582959446821462624904014579836293738626515138136864559043665296750351898142311912188304044524378140861554480640877504941786960856738589106834685542300421725784515634837993073016109941189814438041470406820737734811621815140761758732527794424291867473557704832787142967427799131087614892979624598663937350838991316658725888983782349443500258030076943167869143143920055540039389249137126223999451877732272367925395939935822735927185390295324739033766631115847723124523033127108394483611459053742185801116751835068158519425357616624640738097172321342548875676538869995327083723121643252773893930785230165783201951508052877896392387811052663825414927069172208029196395552772963334245708311207497972900178587861516151126947274334844949247770664115910329888667345822779161150184957082826443680266193616017233970238548260552428452510527190592613120415068278275829973692432973999019684156586213308454173789735696729521775696007578570956449939211746124912317556002899386963785254744660524230087526875929678494551183652256230137563588623043817058668370703945885432106983768679660229809328001628665759224828641487605648102687359926269383400842860240888261843902631176427651390254075047539478255697102068465658373698913057049306710122150826058239453560097515167697806331685529452585073388407938673094661331522092560052466566133309161711577946522330934692331773252518036577030279651073246505149328980075994253090935470372837117500675220120509739615698953831593494576028548413274000197170275334625185509387721625775771112849494642686210089003635838020198661092590015899240574704721276123511061660962509080986645445427624690717767108199424573924289548387280455908895801428550954483069349116816219735978004666437825557399484217279163584554170075078724393215593179075744564708258391584001646822169776075209189779503897657360992313167624307296857005109426801607766973430818532118164769826327659493910164213460283683644194583781717568416121752665475301659036317866631561931752499618811203603970760244168916135494333760236468906206828601148854935265735232467980016788069496199752725789682937840329377401194012765824715852242887132366569804604533754370820712615860573528083095256604467844911653688877701255702792980420745121245764822804864974345579244256303615709011043448691391655959616840212162448149848933705272570086983284683088000128511051731597742145102614934613461062783986004490378156142061694595997221226293347344028041390452551183231868724033748330808635913019889185485058446833767256114070522476964695026131670687975505828021256646923303575430800024021304197238289711449411197560919664366628498837748070844648029549957983152041796647918003313172332031567947977724314475710288842132886189588382145092412079112604728962750503286961359927094400342359433365483931948580045625535249975209859895588417630482946558868518063016295125091704628673365121585919610713383699782335447874392952565368332661227135756667628437247158703666243657509374767317514182136005808321410959349239127398548293406294533869907271124207747925235739372474310607754331799309414913351549861606481650904872055830274552447925711856797445888982922888895173761670117026265862169554979312802465771016881601240776831398775715174321393743129790801097106791272629107283711548282133542435828591791727724718461510225129774383832729484500298952143952639935285121349188183150360899018491876675342810366828053403385706539358719188236479578026517751642008082670735276489285989437949643542746941739880691356393312840056964727754452193588072425480372386536435867793921737307258509188512343215641720799066948444601528158345816970826312639087461931151201331389896548504810018418976599167911689981572491126356331244580600943683839635489068695174724536594738537781677731553100541597024005789558890213758918861386722025573718087158098896909460027733614647702276940137524850192314043590465485538056177343258280161505577070466537755166793254717795469597461355007388953988455309562100352439757948505608047174704534493318414657266928063479298025985190021942821600155598734336205290046594551008774558005920678195660204937533815162799363349527429895932883238758552391560049867324082459406305287887419640112729218319162138677823715806611212584970182713082511816241001673659012819064128023259278522941614927213439088623066534557498180046182438622825382419449028822518852134917460661708256002256040260090809836954738521795280613460949234558790807146289818840328355780361717767097764612640110213945068353030568884174279427956048626090630953897243255624883064027895404432029992503180045359617701094144155278039630975019802524525271036645271630452906587921699150363202614144971270669561148406887838983297867032308415441752902450798189418571070111200160553016745198250135582749331958962199288819559183832027969744457659177349655940663660900254757973084892074651331947267921772520654412700409462050551012282726683914618497059048325721909740337313132125013407881283185486438052070811239404780663078113768070038318702021860874956436459032475611054878741095610923352399039502427753530175947338689265156973243944430127471704197832694747986180281243401380012801601759811077477466835353762236177503810966818128101861878903537519955185081134928185382682192652418687271744968702897557499213118889801759844789700481066810137872267632934801548381366240995295671489162812614917825871716459105246293242465880191486839666158411094719181671269738920958541548398487977811733451441891847766521314880159980774002714875030888431576527984594111191551477264107918287375141400935535541219022698074602653891172332406463408069173431820897104737974327212313820800003810066099310417101412127384326583301458625726000812409041181065245630145843003265542668248352123969612841862628973232798404808381780591141376494405613027535702780381269730476064807613759519415462733864955223857758942470715766333683553463564951176098699324217820609219725204134311320232204108636948284328335842664127792682352702700704948914359201306684325414248582763592658361565144358693392560865347043430038581746695640915177194581032764239986663599502946308755113965817777593633138487162315439244676877480141617561021653907281906616878908843813928940442294667319104137925103832886240966645565520243989996313738898068370276047291300236893921209633809695596505297010182540968690462740542197245710223138134542737724875497591526701549077607745735683962567665855454332947956184635128653168691828680008088588428383044821752326800563303640902059833606388431570418010593833915802300693914906737952153059905202743223963320463754538223810500302573257976905797391369036728073945656590522684452491168678860068437350892023950080232436251039564773082994305641551280593236073284838496102367697896855419302233589604382445262481393853078027048753033670881910417001268275759761706776656639206959802425544843477235101268316869367389233269631230452796669217880253215060619077161696810808021137725643232045918156346678766610612531678735023017642178686336602488989738967025273776276707246182039258029307715843167429472489696437066442943254780930829626553805199719197348374722748835789019935121722705346338028588517762359542192011353721616821539622262124751653658808256242739799487867046082594499031543604899655929464228195992552314446528966635896865557579907033224615565471151913429490994384232259190824590446576547630679901598340845958963481129934333364056363718843291316727680238814801970022502535904141185342777836703785827171934720410211786921691314064590394930025529986031533661139795202573038697662260321549278226969964661114855264433140741497304461412719294629584234963389411186649085779766360731476231325181254968061672318156272837090524868043825057411181894079013933199213412506931976404172348579432169741709858421519767396462984844689627948756542093014343211880874720830782028869405143861123577746034529230405183703451961681997008130306151538286791605369183759829306184771522170604496980725623413390512031317529678982829051793562319172304946072835363073044162457706872691522812234039896403855372207036365369879452884227358501272963667435808893586578797918080014597059302893415682126316803627833361973472425372992220293413445546738211115675310184749023544214910511633639812854055112640435024392139339549763457056664037920693505319571382251211022662722106470491670226059323873044954047133793636819084045161315701078599539842939518016484087335843547300424663105163261808972070191961235572028922508068001851226994715636584407708679474229941699935832494871049679781977510778807701099171354073087467933771400561666597666103545946430628066142360427558642769112564102827557098987759241257621454143067653638208226413595452543482275748042594607610852632784306082353855432920516769025634872937307887058641735381709370034896831348092782102282705449919225630699163421017966376507254635204843015249746327063453745028446056499678307081365551488538493071149603867292024480905401520187026967356042309842676022930337316656841262021904948209399412684072478972677463335529052943192523667610081178958920271211054409610808824004828599009528976232017024248734074135666515730711837083419409324950529445587872537938847658608906191014064878248783261915051430869631101902780861962922792231390815895327006487108584723926397165675030386098234276022699249908001567533982718261225494684000723718889113569937769656617420814338875160702395700618246619705016651926921358199267444825969103933478706778800145222398853587140593207493925474563871631783982577381312482150040564367983534182043718051820816138240395158248885864035222429146982662898518203526435712470671910321880909325581415702712407924759056348714275644937129525263381369712889600251567123435126157034921519425732609505738967496172292393612669950833816987676246783470978421799696275204370847479065004368931638540528360496508699404851106938211863821809137372394216593107547635089744119854354339130033368509404728196708122153883231939746502403282533478079956151289013303119052107099023113614345371855275494949964509107718913124389004835849831559763582863336050420840628412219224922731488680165639482281665089465528361722396154498668272324738265030586235537378667912579870238539615943836987518815292145922419611892934596605665712969370710354705600157879295731830160498608127552728605585049200388928752112115140028296271757318135437925474971605565663863470854445635373839906947037984452550827767147313323093437551335951937094753256772347145328028645858520754937016277729643158805778033419044750657084617441679826875999381097901091311806793092451188050645827775044222304982419932754490590606713505396874724962103864074827654906748494588153235810470516132906132213703749468326281868082572864986108183874289006711902983104452726593281236327622724068140741981341189217650553109583522352419291357023087130854050619893913145845188978099490157827439254900321582084704734047726912064263566000443988465653289031584931426522435618701560252814175201752112796394724994675207331748966271005843051238223295260018391135359196032255641585736101412844136625401159524402818925964687496696092807037972987384015945602706474177550424330450468881259631939064291083436903808850342181386236942531066846709131540300799850248759487643194149795725993941887791413082807171003736795644744953543369396658495281999139731222210104689528626547626268591848856778559721007405277913089591954327286564396392898376596558614284188690734021209940544497347096260638028433272836576757319635560545096234195436641865876164327388859620296439189033111663824171231050187556937480246556239285559982323183858987898336110671775603412521816430957677478852850246392698596267978373279265810110949925799511288689866158851519212547303247251720438736790011154554102045594126402616150879982683282524006876238433659503345809287943713442221623630963398370256408164518107457832096746247509557019676631464231287810567419597041143796002503216357220301071274555144662137960341907989970908048714909388376460334789866261691893294655324176345522714808971766617168555344984280157920647722053787517366548705005408389810515745669218005661328815996529205212194836048261085797714935725797102837709494718617508616637379247393258682624870516236385999013069142441095762525826365821317053530105190533352306131385818138800239579405570272693505320240242000731712580383840254763395812707526194257540134309111066448950960007898918640857380246201668172334211407261893232050881518417240995457792194959454045031402775613668827134514588455379408114521545959032411131225846652528767898002686193357172141770736157324709429645801588463643670366446715472403450527414000007548142634535032200904527353052154003609265970358289275604106935765651841616138419011876998962539077040902504931753155097344095942679698038861154651291712494855551732347706012331507126288029047336384049215013240668556608401972337348372400806217324599819096922971016288383550033558129385808419039048312240756325737951449053265899596816291094563663768049243540446381322355884639558934835072188125597048454104514598177203199818627661024420994049400230014266065668530637473923833472798597014863805133117899492778795394458808683738029219731289541482656840554995891306762757698813566573100447988697002010163647544493832380942184643380008792427207677534400700701485562946741799811645468560204926193461279052443382864938923979952920797765446120362348840539438286879118485436876345196369580114078158380353255769322532123392268701980544731863247204459792432917557607639413706310814058940639410518126934701851069042149310588927169337190067418491403519453688510253837301470063252170974742887821442804391881679044498540349240935695777151839115350730566008541169262191543750836792884884709239300244343025562350338607285976982665166807873822401723434097004768210389148282618367393485068052072792730882495903659897561181426198323519430057796957785974027141328293222252390343036155643516648073015554038060518899612740566337286161517429777645300358956214346657426053324738266209460716927524508547339219579742770162087299137765866791759482087714490427404922426049663070814826184761112753837916554905739966858572363825655474603439010199676531144682823014276434930413948824435288632306921131383743404161584033032544531897000160146382861571153574154798497313021579966856843118487737703930114876813933082791431482556901720057913714071671069692183215543068559698305078349501125963052717204451822902570044998100093401752563925469554982501663785223073140004758052379581160065173510003987950038410079261506288366430483112747255250613028092327112282506421562991115292284986660806348441273837066216451573251559352616566267944521461512924982283687425018883479805941217172904395677620829465462887015788562828182415536906817538170402741149574841196556669531867999774516535055877600170364241750610029158829568401398281560679733814556506962754680683739518960211851145961560759095004121744169271693927352767884673824425786235308174782443299166997830610616375015565280769196257329508510866741504089959807862546830727612105940453567051748789424718284582960159835917173702599998816355388748919497551208890922037706975828468047850434371578671766055974091941994711878869648559707634254091418724309440593453378807879044137623710437070456492720220810315249588367476908900942503150668918360017301776911870561430279962434434958079507355319620152204845774145950338650797970660048508491530696991921704108298135244256043979630634623280487671277855375345803125123273485728694845782028175740177387509175784458702392434821841891056985865532164920173768246367647234988331404494455630808427458901682111019053529758410609833080030682824944231536057439416863785233341293482122009777061378923841442563772718130749915033032254311711128659760080422168707992664044551744618496177154564296816800974414202687462933572762370299565869332901179636332780476760209712245506544241853166602413711843851654985077897819675904454831217809352115163759503786693802988411581839424506316848879458519710669891883920261160099566195347025232111496466303522858452760273023195178737152782895304526228883385417899412765730174612758817035886502811091194521754329179883421280369865072688644783974553175062285078803924892344799113171526947811492915908178722715454919014310433108021401969926337877686871098771973856130585203278875396108601876256382547447640152685135020518822498442156901312628995432126854513588340547625289993883545967803288847392926476619171472381154054493270099772690028703395781350047011742371950964774807025727779659440802534391540848004668125023341448554481613253542842502316254432664576091812202380010200856449780986764323833670849821217030954785792889721042871808542362784500931145300779612711271425748895103526953731910797099921002370191058064714127776350347906164525193013988204094964869005662994429322911874844411576886852003943029097169405863759197350457276372990736434977186668004944763302414442011391811942272154202873719919904942674656936671091653460773634553126528411293790512637018895476320146045133194071542355569211027130933312463218749868665546633198664832501805564390445485907966285862501497717741759988192469942286440008123133181987797089937622232999858551981373309434004932431530754295173167812479325360781267617076301917669524994711227582352527326804161485683617470867597314914975974485075863567404181594864944240119789402817207130152090016944829443880411452205933625001559548575095164883340261319426315396662792491789235359800986143743390810976377388850754483115551601955522256635086057079327043759106997194383397737822663161169806220313783491843335425340416206342495814126349126358925708107857013960330289865789326681631839788061926643725621069095701944390803176011593234171660910777610185518511672185082815059113805661435175744836103125633714749690459058557019661150476984736055494326414837054034939865758073349524405095732761336673382727136621936028503852014203800239224818419411620086052368917113509059783768035059681409850012175749018174303335703285827101769024994336150668498917344488607005140287835697794289529471855610110632451363404821491702966224863883466398884486921744776899170376581837661134952449581274792685051016125149583857230235526795866287241513863783250327409215984634012181869221693222481544320746782376515154956222773335665792256692543779806797566200355698676242529245860157915614007907110186633910319418139732184997156059041058979205016655467191025586498355865123078103170746334077883874295746180170702443619052562042288723257643274877976537650618562403745016731980032466736247316504347530698803880190867387479532457939344981522535808540548976202392714853809814730620694538355078886893469541362269268841806155814104777742903224223136062587241976139162590637229947624599765349038607887785608558483807795738905814031400931618691036141984395970874661005386892303077035663944928156840879147262986419095761542211169974988972699687601179331876399594615433047939777810600354558711335542918473266424115173240500559514004376947976302890935565379687593593859778534032848206202342923382463824729586189499244222293079622084838480879581346946590964026675905985102247325822009382547539064799937468963113055138458063608023205951003226716288269223971702256746038021274542272790573674034415166069435965620652506576585955559284564369399468844393504433010059314053808480115730125089917233618875119740896025497299162279418702221231117584863208851408730564807768403749147459079343718969729624280630113310724805575983347286852545300395119507441667266362043588172938184398020886978845651628811973054576023617355370486198698062696475369990825935283046401657786382094416697500302720688793789277277601600672304030655468794586147760557790320606586321038043684627507253841972719621261871306018413867465089770313728820572525552549947022313558151282638599036964052137451666746572744089426893978614631980357722803744647005009656763944520343424930306968461815482654772559840666337723355024751946566570696620365939470617041349749871939790364002549994719754149665417637603934815637889361190204989298046056863369760143149374516392148826092758111579837002642188199250198961468497232845009141030062355175278393332150327432430089578609888873023865768547807442872892749148641569635540187004390132280258872981718930750043679856853432918539355534085827838874562344650331736556875116114781641662138880324163672576895524679218986167763479101863854236997443444881430206033632143754658322593839512376608897144571970900590963622125846431896176131538754680750004669087454545375350058229648445628023482488034964909564761493566927776324378996446426544010226890055811261917137860778798796581515644098177665698482196781805654597101991358361547919741765743888024087562922815868003529293383676504617048766370209188154569196463176579744556861418430210553249493740982825420017939627828310927297262913012469657543639242415649487960567045515501492933109134719374798331386411717173902378521930607242328696368728192328822077754053972755729747770667946732397463370094750864221187972373693385494360222757402901827771992005710211583626396421648844908939916157700669825321685285725836842786108763042319299575022528894808874090947365400520861941339382117403174811500219107858486809658145968632943625381652981732310206147285364452021473197890208284329743532656855509915525274867700214901705924730363139923045808852974087489079968888948756843142546550871599597669955024169725339119492208933083783920982298224774601825483132695128225670559880209031949273324203650429045928657802622774182555660492402212100659764312607950546593656974930161838400070895076108075422337413203919586740151155432151614769946306854600586691613146799012517524105167757210432892265551872678043478932100172976479831278360509700402114138500607350859625096524327887650446185007264580890672768288927869099144724342275722794984879853569005544854367502185556382048308428591441644017839115346731716440969992554649503861534898709912107906383764607559150041873214372895156015202115781195075925207352362060943415868349169448147092468363010831901328438754830032958877884703219294550454320675158281192103910638422559668783278171706566529101839376030436968588359407370020445512038713781428284682248129482595285437459494275484168267429937162206202977359705535211665956373355876645026468485650539719562499502538864276504400685052780043392128648514241122647631953272868830147292195905469201681292923561117178686058826880707034954783871386776462126125299682799896455307597563605164526203860898722772704155544891109141572703233954694892539643603550902244682797987670756324440952814491044585761661202427252921334908094085079180773526649039419857332291632472772403471553016424812858631772158106447065849091670906544906772726959120162943185384169765324409638613012352264787485637472010507921798426978278596575219032828193537881639161703607893051125073566489841734060773112752366992582765012252195936316740043791226351541888712991238189151897511118177419316685876652203657678468261392024511718437631332153591972873109018914802790640202859602000994278762940367248008371837581667452537675278322916062911524935222669545166272724662589531606975387257433740352965048317154816290301661150709983881008301963686116990588902999439123238942291466148348614771798890625072448766114576663389014911841066200526382828063015784651795421595462256935294605867102188560413658097905645191423769390982587028000895062310620259016931824171622807205263596672556009522590249245938633818513935883689945740518470770925382499354800445945607023612779852555152690352024493658760624653882704559059240058278114133798467073152745592895732824365552051013312520005843786480668317387871074814384424214251468152430710352352671720028567980546849846893088170746722833820303630122261086037492079673120132921562870621336100496240147900389096345555790861381431725405029881224526271236919432780471831395407961657504972956950577507930835382953428470282776994046614374346487717572014150555054623850009214251676348231244090541545940357629284815297207805269628228861991569720841457504788987238109784275835610295348257079461460858211006884840521013078720637930903963098669079099990725151861480050527084862709460117823307301941351212556615793618775962755420406572313832710534057801644819960063864008781722381245203214710027513430878137138192699224508327750174668137817801074634405994836313760877444281535136933819491891883765599667268558151006389372059439689233293448707709783310023706215825516008699559282815117275361082250266998830763880867452233267456344176658057189349377258620352209032167943453560551073489144005416008744303232227868576207566168375567618956379175644921335124446430211672099338189197582863134920108808862502847233294789856451271947038770364305937472146072770804327817140017735701324259095792063059649021936988378450807261295044116964196014337472473112402147191842327233762632573730063882031428894701789696075579445520865886384579351980247744836041847291189947516086363469876547781899274481217160129513773713560867301561021814954191552581451626750361431574085653249176862281826288740405330550504323836884012488445369558112271693290359608699653123110806657030055691664764657688884505587608904960091802006021668206769954544634204731265267018835318164293081310271989401037519893941746211932703028554782572573671629434249661744196541201378713362295947125277447777101703907201892079686915140501026242868120093969985280350330228603190068537270130187120785689240973458906487632407650422125680069482292801984498499984219234123014269335647843170687900827085247909285052254900502711851851063258154134605957727173039093010769206096442840031851236322652669996382529660899727825631345465518692574513306515523216431986547505286597269172066600417197344892761240708252745870466466918857739260978722190707232904303096763092664896018361126193342114959234630014407731508361010830136130209134461268161303666397052371954500817016508862716911648043549085048499559216384044351878319460750379425563219017255606728695527701935010829392552611631259024991286515237460699381816820399102174284904393984264606358264234922298559335955344997781636444282931388959092960304417520818616750727722408233565184257314500793852246303534585969309403436678511443195314572381742042997890873530154094931203021282535650265439569607962086700962089699099951977792998937833589591400166173823470962261329282754657071298702878570455962217040715523119490496428714895091712405845881895329287344015593492238679282873720591491286845160191148489432435459039954292225823075304740029082025743923185281414900998192108123337435482061323972739798131492686384609815578762370812216497253575579684020296348853329137218474037286079831695181224630413641980572180844498170108637567257973749188996588095782754637115051680597187246513453433334854473742475936491387759883202567151108469852533062573415141969188610190193175242835949831636154046558282862020371756952438927310538663866371667008217578655662046053131469178548615769050025338117033370793257528238472466944404767761349260369100320805912416575573814029794169764065192916816705886471559069883729580188161616556700920872334514349248313950118288770016240331863600269657296650382636323430193914482538295437297320851079756643785266208493292373794462397210848864540186933568401066365929635586972577030767242953445055468353096386489331961565415996004318057758430100457134400709786265589710049357120950186294018924492180874598929549441098348988100948649996875822693933356858438552107384155007645010759673997458457845617856265381353418524175637116935711277900350041540984574267393372170207146774375341380806700935874623418864682883942601510227314462283448414718821041187673022522389537385334787363735922881284304902369682628342051767340067364065979822344486995043082062863113805499486400913325926230842063946864828955094122872108317453777904360879293402262742399315103851271124839103385156700547287843896897264948173810173004588099019371679979271671655643691685853045880245198609832590592481211721022751642572280997308289956659217489787467626175445947408185560906870461062573631875193746556080687107516650905307146694492425302091763336758698962345822358262016644023823068905774310907595853624511902327642170303183657682329259666136919751977944758381609720261222079731661419896034905923767683251087094649010795838146059493245871307001483110210415342380381098331562615059636535989627548733246286382567139563366885188179706142325494735544632785220411252266354671545371114943425062339816010394729516314437408602603712989547589077825916659315895143775432989582608985428149277421701995870492755430970075574908510527858646925643837530287985417492133170648149776495903221378080400070130671301400752090373516642703258521115207593989212598759922874038892678126070474109305892159165758279191535484022478785716761067967901031706318625017984466782700049688043360204995089885507595902389851846088283616202733127722730278441640982740120367782810757917018715774166915613182224449109929357554418868063019889055689051018600787753530430383627516063768940822651869855155085198547309089533497076732286775009198702628039522305279476491208007454157653582678230470196472120567967041351439166917055513330227000402616745722355441564236354797526306681775418889754150736977519545870336462578290716695089873775225237827426086595616398422216131417276830927709306742398781851029046952555987161175679389928601469470672217515369249965500988788360611210723781411687583818188609813399411144217564793415264810823044173750364051605683099853430961424133480753178935753443999143869318455770543991604659720198030285465024389914405087458124382472126115467527959780063719019615428805949120534181361943840464300747568911558341796261973762154098597975441978943079163955956595237613850835147031306032478786143886742884109417691332881274290284925407758737121247844657006035451128887158845621800069928667385492236403337200406587191800646328487734878234446402389511080597253876660192757999097854465858035999055386359937570953801209558221206253818882143823655498019402537095281463912319736246874383001642214400608772834073544534004758710982340073171606688268628447346329627395012883645543948158260285151838120638091032026787924294478606596412891657049368856371785538235429908833143959087787136790539090475301565498937600287232438437603692762267537844978371414183018420274920427612582373672684706627149280804405716685304752887158111561506324886042402542101139714248280104010823607654184725600086899662377877710824553945489539561597085787345838952404941657602720952056379761125237528894975163128433809148623349887243376176046789953026889126352050460800016859715711923700334304764916608348497176083848684335381538657784735517808848503390624896140246248208961633604018894801231850916994138060321110909109657736490936145746033245800127158881268570121746056512621611307495134697260043007758052382447391221132226357215733127275896963903891251421414506887967555358928286245492715252543006020350170213265190021581599863794692544685046817187473204311967570640789465983298922801909432092244663345876983575678012769011702859627888524735003648043052302255836175060095547529930645844532888832332599169960734957903858296472521780992872772252043663106427793415341308146045251017757538215636216565378777794364179549191814669338699424585193091048180206713285656296448949071040005972062571962510679414677316639942473977276865043654363415419863499974004249630038976323070523139882810725764189528015991223784157038418396542846447687675983633044234635927793092363776030373961465822661153199087466580477863492162100642793439645850881873652995804265717953038550830483540552014056037615582482035171050919478009602587853426005979197534005169261220745688909609228620388723567843104640994006871934309819212085418457420190837138405486901410882981350669583594671666636699027962426298900644501828435360279351423414442129188515641690205700219736388418007000356488014121089508369237197426716248680465056138370798733105617274784130632804766657505301286711014220299159158544699683789981956170519225126797938750767234421342605627793654923051641772256510203022973905534309451435112773496318278897785403155349415296236277279156494466018907910312069522786414331907042201503748196380265597576716221916238174827799952898670540869225258986805711440669771358638712136278297910790499755146053395481193023950219598717218270799844582397825238437330483818665830549658917437658569919296297763626699244022969139533163066801684317758093594287177708030768583641406650288017960020362404385295962960681360885253294929133344239002335417378982368987423336400865045823202504102522520683436282283949846050637646073662578100672999484062851469708695855285555941385240592520414294093821313387322388716925436966939646853699489805755919470288568429637252152118396185682457649784606061230748124945681941000308062010394047719445663066112599051404373031235202964287269870007499438283942031163230834739093017664572847658784498530211590648301027373779200587583615905549231307507419479508341592833505674248321439733685184075643255648612256400788308369859369685607174354018396083538612755746995888156888636423090944516395119784314176836817739274477447337402586918263633169625600407775460375129856321564041343149109952042940861640114737028816475094993779134820629259177671128371580309782521906701332917128103317788922446676194831155538226690672185363235518079363556296611449394198453879531131966055291252574125536215320682637430225677911706965827683517692371538018402681896218817620678418651105771038706313785545357802821615393336426511197739584849113415866019717867938666557488740202023430402792042804778433076969311634420572956299010807323894157912055997416310270340337678151280249320888068816548428361514438156822022447275763156128843952195289187958706299193133221673265530894981832524616258158800823365834381950271997577982241244400577762692086373520772625686681228851963422830317955789655701309299004408183267865827917920325640965947860330787929201581078694755038937609435085305014419021380216392490201778936748490521795132196158161539855140909688724144145936775161365066321828017900403235737974253948422841038112640710410902688898514488226904761606515344014999361652855224128189547425761587988168915975839724990281333443739312955489112368927111920959875180868287151040878106731218994590941038895186545936711380260034922159450892839490518299593694860158393520643340257106276289256704699804659270305005635012321888472770013205053937640930220567919994940672551591215274198100206734670583819624453813766874119449885378568816858149919140527467709724670884039587090246946560515079049879455520096558117668231567710738638276537792103171300786278017533111946540975655721471142449343973203714625775812946187371962223300028931002364765981507991966576195545009172689132272042403343576799875258668297262256401776344592987135717809120754798516739677769684792768281240205308588045143622980445422032387844999092225775966356732563479671008794205875470595932317621686782859954668019834950822292445024958308109194349046291905131953224534396438344664517162796510587573564586902611880351681112085329437057575630838456816878140391231046763472088656918131272570178365924149200090460380334729013009592197100233719193713096808608372504701009481618909762829906599265459823119369355011003528820476152411073839706900689576238875266366906819501979481834099188513957339246307122150288502677623457894245961901141535477448406228531731651677456247286017661300543394135856278623619687014925655454763164900799168831581911653770641560579361417459305321683762502093980421800681056449286196689547994885094126882462620563232971271589540916071306298633921917535484992404275677964385433905348688701722393245498547343005235883898718873506471493383473068668114564585403816959376174460755775041027932062990836172443773802773197170939118381455108217963629662404294941521550315686534708278338049976606443087441512811681764538533468110983395928547686579260939268953113818288923397246319831222664750984737744370083012722207968940843250863519762849120912824727512678290747137579736365903041134094915585573058678195339962921176241566084501879824720871003208913693988330422968032841765370782338589166434059605319950006312364512451414223054098801986744922982811068377690459052842076127719053396749725842299370657781891615494034568980436609071344296698434577387650593998825319525763276029513482062302882421854023063879342567339192165435048569987171871822362293580735598063426471602710739781864308529613804749420871041406982609282070750266058993104751019170689264582438117876352218515042095474253599228486779096457560365219396277227633376151041225561704372379476356666872330133825567834066420625709174552843939017334226168791237853358448005285450060721134795702175692246198551826204624335207927273866988318785855939167794286545139584580097708131952961504266219511091260064719671854527781689329697302210696152104563829083404445106495442200968289961183098776547186355409842085706649113008406678327982623987775851545460386755970131896580478242236160401921868137809040802050939762839277024384864924462445362987117474785623714006507606323054771950716593761927893609039814534402373428288065886751955851828203294518846946329722100851014872234102612699063634285409030898209033330263642867980769742370375666368158170392760410339855107495145010971334164398653453774887806098235425292777191685981254926241533256939799745673137405538038457667053758568028193959749823647215418374367376704585171655285577171320686661544254255879410896855649607438879147531487101100633619808365654457653871989715935045717653517618349764506448081398476377300334933722560087350623721503104648902038257508035323346801065435193621089327600226501849227375132899077769270100285597675053743596093256710859040591757135667315929975852170634767156804585492568576368688935628314508130695358844479864751783589186962947126314042874543730286674563351705697342217572879032299332765703095077984001478289286883532445617342872279413247986110991573669787813145411745487421319158713186477916296846884412573837311554689949482575740027346737648493064222559290549952243868419148064033817080446851172181192888319067800514600133098441575700713570780656940233885321666833673620395381499952584230230286188817400082365778332875426715579229962590996659063244271217297015164044975568453084539705975526728772577909725557879975110048322227973923288634705556304824611337227029647322615461493892418573964017484728822615836126966048806813787340115695118104510870577812619360967577283351632381936104379986656515975818380704723695808497151156243056093770207945273904692406961620266831207748290959735112208661589431402619826632196230523270554816698780880020432248077050002102677344655549376366406587928513279577375470663585920182517025322452153281216313989282315171303529637401862639103442643382154024600029286162678648707687799837245295491303663030316893110903811212750210315635959766415367241900391236077306279830002661324629579490284060565823306181300157872768652101427864249760072588936153290488779505339615961538735304689257012071907466596250724560033277372595363837202495141594498426317232213826372580199268636205677513218794847191629654191693927708658588691804054931658034184024377615992018979255300303518187076241564324771230938646416496135046638391953519105314671335074612066009158236455458501951231995779329872424203685273511347490101284602847959078876501380091645174223480776617685668644181602610132055153235913286699220737032264992478463893227211839279080993349548943025920444199153297488031148060002955636232680806808089905323488672249237282244901175864573385713612929890114717598220082738400844476929595658652294641597988473120522757855036808168209637130618730094894046911333645521685124661833804492471492917434540533814775149887505770641992087603773375063889767384035706984866615977322969973351534481562689434540312664689780518015377860096015951157914331093753010686446178086195970498834404507329725529403263585277914067365038639479711287862852443709043465443268016662441098052842684452118560941514781126650702401337774636890240900305863165709969096770391129743826762302469027192879951968481496828122819915504468778830221881943460211681376517321373250583396464824044746719826360514700993512203467741636359981013819253947769406396396758199167826793543647094972429622880086891574706032765983258577093654388986388285954420447460967911215509674481735078482676921561236764998237051132651821172578408272093941504476324890926776178125337292831470325903251635243265539329480723412989454854591065138608067885013653105794893735583722285528241951913089155102275149642753285230925861768696033486679409598599516026424749112585286676280620511234246369286079319147710660365094382451233797689768907334158411429886113229458387387822260647121372660862061964516901084699380628973354528517734985993334939962658295798906338029722477692440770995347789635218120562121444928443367180986860957664700298163298016550736254199609141958534903626668157657113430719285865678101039944557285110355514442481008154326081486879855356712772467060168821126356093586253397192204813406241811608768072618203692239381538299022767128274211012015211586311694587056777845793498520342673786916051328391036318062971040838437435003621556425417607841368193330787008344925508137665066475267706385310785492599994297104337238455946993980277695042022445611241124747695817581886639595540643561522616782655396717038764704208602936488692420940542255533397546715909249972633769217850894142921810074059053946670556302564777538588840393499260633722271520048949242683386394009121761815810857402901694384771122173178592384068187707622061432350264082997280885327693867844288334503338900694066894044787525452874267571256720479308458660364365401618403957844241656385451888405410162826673453354801654979197289014597542070089291209090643007041649492776644234514910247203863219709088439733017649836900220139211050773855232468802917314636115291967631585583457592495915766571967750089231406821525204514320533628721171587465762245852493291447544226532310564657998291364717520101247155878254940052226315105458945972870816074093332706721120293542364824441698537395980182368761434553990340557630583379172267038424525524327735613783368266140972586019005683895413163064916477256639105683650566006815759798057742999288341557577295770054584125190478027720091167854835001164985948706581507094996877707921189113508027444865106971920116155245344164166980898501901632651442743703932135479202906585234218585747473278158792791968902688867584154990192087041637247582426918725611568353811747816083982903073071616261728282986931831431281334525965595258070524202740972602611816083708534032795475552047043709926342077413341794045851319706270188871750523050595868102480239615593455844952971293711383406609406929112186843815337466093458566002569425677384569085372903866408993418892639428116257695183933028246184262716892414754837686260616173274443805182669359527968755292255315550915950029850338812915459079973853802446867058631084128950444171760534749780842404247609255888652981652936838182291957727800459161817285437369498502164749651619968050984711350414612090475968036920871252583575382600859226372352003590098237672164236907150268712412164196141487672799359440311370846180329254268685108047766487287924739975136307385224081540787675723139361056266639499760386607238470628670519111890345333089573210261052096661360195573362437451419633137558810915161471266752920006281854744941128683584379241502060106174389269909105194017031463572204460153692070733265226149845501431702399853908156008516360486242857752803124345167072723584000116293089968133617826216739265375283888048900709318595071766372812984801678219821789898224503002854683179660944404311065426622920678459786752887003495265816252266120283817670083140247602451440309193534204694531907882556202434663980297379800140842805170725866200134995346759990384124476732258933140496521153395640549773549914526389261200220320195450338841284050762959683881241291162422440302907610321249983510367234754372900446847542096824384189550751204055286909468062405596127630021652276297415903565649820986089465250655745992427873690083977103657890984825731248319655217483573684691143599093937943632921881894275012911632865394838228223569358230730381036044267733792681854141366296722960990875511769305448076900141771407225196762481874849478073353562224309849972127287150411688443089148444396681604066434202827528175125969109355597380472989362875011341482317105989690817914021991443356327900046306078942050031204869208598999721580506576440755852433742764082858491937009594475717703753763812536837579091960019612362048955420250518070397412264641569789144976390891598198890664322619725664781787975593003756930031531198009394786794681286765303628006027742184476280061047076238659866844309044659914896445640463614949434864655246646647167379962652769078153644785356028685734410885696666464704112708455388518446148682364267640050330059361011769198841242809393420480429901858280125352597752225135343837147959219376898526132002164899990345153602081560304029909405021202034230372860886892487812351508880855680836886760471003354247363792609278011518491646866157647678499653915622715457204937212713151462432328481559601400854456664936440273201774700194397196179833531760748722903044390786662166256548340211568440138468096855948812316838507958430835836007730808533062891170124438587603778017579582171850408590137870422133032165760757950153378113118873489373940543929160807837858462704200430537991949784534959706045212944835423333661440528920087457918097373241733213008476704468927175409947396124695362626954465643685348836160637351942281390171029912058715780541035114167242272546986810115213262812379182450871168385150866159279441196219142482528909262624438613150980551299998874056795494557298513061189325798557156516144149896920373129247491613439934360772687877957690465482253124226787715348623585864319560226954267913500803379948338344434188329104204339212822661118398564964817089762376517124793543301066365958434878594418621962252391645031201978224282901039906641648098320369243300514569740097966985935271579695321165618110593504349162129631626045135800716446169032802057877382345922203926778959595769254234557986621947730111189787718742430230614752649570799841281309769235920022838607524166925282209046897132496372923790129857314890235209106066814482433676905758511681628893500158660222619570717162252783756090866605095252651416989817826381533609640228605883570686593627774548608081794687208519686222438855860087080551325377765697965310444853239442024643836614246093988706261332284690253128821495419604869996094215059914014414847993501022471894608775184039529082204051461148603071627251335080601792087942045038272826672318013902091110847493404347487234591748792829572738126606189778911759232225609558309179298972602922079722732505950184857840511278542051565678247599983304450888911201896279408133802926856823309320265930879122483111699984687221928434491682334239242639529366103952538056059592956811560419930797635308811127748828137296937910383542502968800448679935690169856022268815266548911741853935763456207484885565469079120879193868703743300604215884401217144793867764606742127847430560892892079877778112468215836537176807594114889409028840217683999644231226231056057364216475663899588835381530885027638026668978361721649549522803362153463814128211068541723136945218906592811244846853747085213092170956306913098883885216609629245417180679242827909851226055889309994451901903214441567439543132066989136087985899425489100181351219918576633109026826059076332209559555338045194657496950139417657933331264708752249215527933256017471731284084714187535017435873754635172868276706005064001081754975340003757072886136678506380244671033752577345099225504580782766065976938169402104098387032853792829272431437995258660684367397084104925678398693803265389135401294593104836582285454556564971333070346353053496278290758150006129511308644970666343445776591396370112001647247952962667825571571163264915031249354795587601100841704143316204589924353426914202660264530656125651677394417070363687530766886278250209739087415529815640308155954605066608904015642650877322930902841182485158976692475686566153181805220778286937720170448619668508163005384083780209715207833473931727933769429968874537438519569050613489126686865404727619666055103474842770946559713256450729313755107797208901039892362601419637417106410440942194866302867673650198080212134651115743519018828044345871077306391739373221190679576235167690715389926870835140312905022529353632962347551980211336832571750147252086375935826583673487612745156967609573490455618611984070212126507453039437977673383099255379573956819097965165166639160108671984681904924541829591045757244004899150645550103646151289097136330328378334628970300849134079522187692144565159050271101440697224721074879221346134631913903122877600889631552332824056205770152689249248089023410811534419372119735962414497530440473244983399269204872135668862669514932372950430647277263103194923944764274719135728134339730286620735857952869761906497850432356418889547044409219447284263141012439275205765951935199382716812635869197612058844064529733685662384598045223935193225835038033130904321442006927286904478356479921248890609870088269498051843646749328357376821391501224094056680747822124140657717368138948035603993256197600031075930499611909463292083892042309486436893358731424548305210166801413302814676598649118813162178498908350602343394318969199594396025638663627363301337362316218786108641366988579437349989475124812042917746456572358656298108406313936874652652888770559346287641319752190145938363526962863227646985839629995611627450983504870844624504288178973520973981923583033100758023721471879148047757552554112469780446894681419801109776579793703370568594434825493206374166249902418916315228712601541942693835186530851257255231405976471226460903111673657805378749136679753196488501298563991000949068383315595881536276404158052265531715389800013344455777943327351655026924620005304708245609330810580037411555018028362446302784693301972857610678601494531233115678490290567486513904277681765441172384943113096838436825499055411352528615782263251472090039450177483784949128671435073158263838417763911875812141899260916627149418366850223812920047555930731423638914785634474065472918293338574114263969477155504381772424928995313795870484363297124288276384083769892248353883445990425322621237812778133706376057431719633749849469192251485930464518224865491044894213108697812469040219991662619213837945629846184063751237827487266121938826992007658750994144716900533558119653096334441154878070593065460254929076511717603437912619265789491792926792183248989793672711213870780679857215202072548671784350675935090638824370881521657571038352540141932421521403928488469570324501516975265880646152313553828485902188771445919842220381095213708992252193069160440558591893663687422403624371871726059324779731170676356117927207800842423699133223307890926739690657366380106140933919363375614263258248554317382592560452485568185140484445601148738971170613479322501809143594955366339343017013968614760114481568483185771516145794505145411747415276136773052833232490066564806557463916072665157137116985166626885429780176482327755533700738787344920790307674213625174136533055933772820563708189723446807429146326313657016071131075807446915276396904111238238023304703940450644836097414641145252229667108915734685632595922959710406497866278475814577155285603604907605315872767610874287479079789139609989920492674973119934001413483245331227220409729329654026407273969166131679947303531717781140182427437181641330278648458861406791669586701362055977357643056920434495860760208305031907283067292681696389782225155235881731487626638065960960789551847249142262339086379498547438606352702194454757165431445809667639561012234726260712635354662444233183387468997698426721811816326115440626729366900438472327584447129551266585910017080969273234661223382129823117635791060191281628569190773451999583384092609380144327551370292471666236797974120448330186844070466637910967425399242344653514376351740858988573970220102389785574958166715958239639159674413274586899339093279077873780925182577703272612675993998130540820410825794569825828534579240934605425089329570861883718397297182390551170505709110085033454100851291312193310726578139309724001735498480355572187206848028373815453863565541728009113727232040931285287010054608812461035666352099287693105555024008921774874373143005094554961003789685432429035017886902821683270977281348233205690197068635858949103998457523409064079037783652397827054248778492901326139204938952716158852257904500150012733734791345882818379463453100553692891672198155097271790100322491523117172269102671084368133131946300032518149567997797402747726430329921327353483985693768888898748664476327417438853375812333330486797827477144801529971290449619842510612346964526674382657841055811203055217748696143864590097456818931935440454316802257309932126359127978659812912790888973341442602770225352103656848197152462923119924842056959966870151579044451403071882684202863233121538927675999792244839894435936927062323671397744792076653307079718421707697633599399772287280974556373604238558406707949705717520823085471104393024307433828078695160626981956661778231960082036282559546494194034595043754212565730990619207580411179705308979052900637861446164134810325285595563557981359916947908111602787557482262138643043933073751992590481098327986352211454633297494290469427257068053168913155081358379024614463263393966611149097788516092268508610283672285080840026871312751537878443793437362491519079257445190801539038110724262200579621124585837594280193596355217955851937415708213772437714241238504324675514712273250284054444435083694858470518888879424589374074943772706300757431885848961604833714590963346850036170124470768174289804537182559699630516561169941138315029709179615239762588165180272068263219550664288089887053084894943435515304106840637513064958652217957012373773422639450595715080289633019978597144378942111610856017483405969526563492742234032540090352196632497031309940720767128390674569456799994348833603220805416972191312270953356243644590343735947871872904685832890950017229504988964811791312968617648918448867995750897915785396734757642651109888206818308944542541496971325963822255496372938049119322682226362770516566156581256565996820263416951431949497746811090173862750019863556292848627905943724491843461802085032294894731397886437284627283167027410488634263691896885667444318057156634565607187405043135731515577680624705879601699501570698083987893148362841530517650038342733310964403268006567182638643775966170647775763038828508883387672620101538421412010497969560916940791023384619241825970721232845511265024074498565986332587292978370032866111245074318131717413831595182450072981925461724420981605297334787959118122211299718865170711716405961833547999099756746520282092574095408504805950348653383609862201880507692585413016199138076711417151879920230941648088477689731786981863652943031754725949535468438228272513408920029142470315047358594243369703019469510900068309192281528670209602498581919776788073967284305763383603602315157042488929576932379992415416876813705256237240471999801115464068638109282178228511380231460851075476335095751135365987873419931990683091213552978017920966444516092725882456511330669589440996040607489348122730008499932673399877594952291748626960876612188873241997808516601934215506703627506234158463295893547370906731640028075381846172079829140047078092809649865379795717102137314271992833590895486719040517217105311051859196817561121122084203260590339568026854858665845180233416700989285960523058498358145072018119791920537504679062289228142892196020817378622919714875923461360522439131489158287342490188212212208758826869317465827902436830318843832807988864512853376278751540705377895234040643397027705624234657875292389679865307860006232061483582133043823528920140130872331974418004790333733253625624668444508558372925558855514038819761592404367454489897733143875414641017379204362583500863363226524110768336954313019322055424457552273747134733540775553647632533512249119389714159233472755497119340427991820740505513393120947974211961040813133944979186119961534320223808288443975269054154286204999253175233306970084085329532407610432433392088524722534711623537852084592209059519521841498489974926539563342619152063910868937508516025420141782360277691841788444790511331779827645655453021434810569392857170082226602491378327699399507547052773519422732841814552542999375228995058070236292281424044946530263712131989682188935671933881825860243875300790916113296844989014491618643870571845754664095592965100461031279358477987525682890017222908125063889795629626290809242673211051783450809768926692294232924216498345230738918034848129556416909271482163690045222622371815128841304652545527749915552611958854520651788786311142673789814545535583715163584313423967549305020401976336749038689465184499313960506786987177237806497056622908708207798276504630533583747583170937058075371792954547854730984474710034334421169938561373214838550755897483589496295310591316215955848007072049643148735063310397400594227075915333075897856823990997166623643028082013382627787521373246799810488350061165637714230173255395859716053010180149476663799411608067732136773586027516989433688742792650911154854578721127942546644606187028389246182968988747167766749412592073114534820032266984481011198397785408811270479147222527104736581136949113142862960681000579088568499524518484147613978987908275304843103844588465295302574352688807622649934462672419756536978518756720580502129116893426253166837841170622451090012303197159226625122810007980368656797999154459178589437015358862003388576374579302758290537027325646265022024982844217245907379629478824873715048961585683261452070967543074868134208210259653552684851436818101586292205114157789019832483182798038412063357562545225708097822592757909064433125467501296818401349165138155233918586916411209335554094051181186130821060321388320039604402817160383725701608942958612250094439274071622260739892839589271769417173913739792049345999680028849688366122866020965604685882607895028912333256613196682743656717679458231420106927905491560368729556924009074660041359468286445712189539793625846083962370966843090437580715501574626938981207994426260498810504089073292437451756308730940316109779597918838868450830009484078571840858422748986396955567254566165045902983726141891791282158964660607417377911730600678531869150510558471714655528045080533438993160544718689593570007807567524074729910352681780155507371689890850960358785711334820751411509199632580277709325419020275452067497379601249032105285769574979799573152312821257050462787517282889549767773918425692281321371443835258954057468690757209761029990640074664788555441497666074327250594082242167964950810652479254985398198292439287469725904080070168580077340264275503905938311870625544377940584155314083581209275935012892558449582063040763177329174176260002414701774200715071694735099351237456770300200893720198223591214280038745181499169092063014041707951233077579166006819949307407434662998581786812044546947645948102216253928836363196393428207996012741544564964598191128362785283307279306224786322482593123408265628076891652034245998431412750883909373149630951210766785491083385901272582520513003346340001408320638183288616846915555623699727660106568535080624860698459729254071020419573340408745757352904450746260751717043396640645121182093779203985007111189089520016201149018873938939455677738432264659016735170987407312592803712886836256118258261871471707358685442003122242920282060212253718895113241551561434880767185786416050504833468454019850311516589891144185189491811072873743496556699418806099180617581042455325290686779259677406521623624198254747537704617615862001201611510912556268403830477019301546469831893690505952877128500743250347062156677513630208171933886644183382478514426473700341127598733773335592816907302221468292713568946526033333544273432807432149534309442355404326381690294800924179758952320280930136670195834624389329155403645708030714862662580529794239404127382156528616077777534412342565331741050785045864341575548514584292527461071690089988550210137408313577460025724372441682093204672937065200540823799013027578032278108146906781228206963048711726352762337897350295181099943913116653694409258769175935250870016412597362015804021028608818694776288587647261908766058373740343064189975023910571498247145516357457699580176236100682077922672140304183067813490985347463909771600490412864406022367326939834905330141214839118160275154561504271853102086131736015845479832784762354202801540421296126815708999454082954930867214726496717235376798185501098236360043448259910217363660238974873826261460897741787168909643354635268558133301718456083871539672477081918618872753624337903244546864858734601141618268338859665549840600888320846838043322425254828518426561812132521640335330519884267182881973212125935209241833296457431169679590012245127665170197358081396898189192715093068673915481480467799639187923554996129554271629549414529904514776212256004836830923980570637113518980305567665164127587005012767198059030947192357312205910959782890935873589436753429951321518711905585925954212245102761377826557455250027286218584192752819877474165371077495115094909686035260210658655930775934060595600254928029367298086647276155167456247565167439676136554176992011926481876730969179236330771953152285222645086447534293351683863326087062840866930941458686844079203424100554455966885280161623620615040249030279409000896081286164750508869499937983722539138679292896670653227093337522543928133819995652756222992382826111697013419881344604493683407777285378506673009979477190967315662729164931298037770418990111456361155896404352615057652639026595405520047745185667598378480904517614687600242334267661101589919143544174472583069244707283581343807265877659540425232076692776676002805717034990128783422967420733558103582171215270361989877731725021125037283891600390927276564261940798273549826934597312229444407696653139212743045835488472186413561174039808776893700268114370704397090305175312419764538457393406905139386196766000946683649452251463687128215098416290755949014906241584037877967901573920502051344391553373252018852675237458420605637954708299034663954181859206358530116589496047298824091194579684231706730054919365868614945129176567746712832181605354599819803644628286587460108650609371994959006509582577749117154523786677689118391606985304377947471115070759017295357606157951672036618076365466595700808595996995257895443955980024175193139383932812648057298880066682546571862544324913977669853660376094959754081341440581104382344851262234596811190010318951419753452691330421119504917305888021728706299454076581668667016777070717084289860920589795853533288396205290792897500545712034298131288493405616165109764482442949789628674284952997158314277429003419511598077055264346056800204778506153786854627406987188408711611954447149900713000047202579359504544439321214118668820625748729764729371296730862549333867154139493913972327320348779973359586561811418375233729483573430448372976493441792420631254349334117281465437936801443759593692057710816231035928085975383572622801783090295893580311088511685132113535144607082805018053678885448646926342544191287174992797572364989350555086734372049246653970488203333284626000681855713257716015571783059148019969154783682798051670969687075449004028422156335017359557031994163548654034338053482470186522922485596774076519127143249319748836077116234900104127595075764398624828070786210462188195321703009781151034760918195871273527412072295036031983136757717224441484014937867772650996968962470590977112993622254018710832421862531528626546918220810131289907253224454766816694030833909304550959749616489481554122241452692787542284966017426151303858853123610428918232611137165741192054019255359293637547988773044782837592111511070170239590065699919164917332467242447302101845716490079015363666662494691593558370654934843065736308550547974577239132998740302208285692895383951748347257714039639222126052466308307937656247254549024360301164283466197172937841314706772235739745401899594680934477074488093248866899739369432304931284884008758069734519048980659463112331797579951792147151782143178410131705789757222769061135515276772825313397810793404028805532800679684091903894888804860518449372450598807593580929442756454728877556631633577849677558566438040087337641493932883822503023547860654275005691563675190155991575273568171420152904349045319206400256362230624808454096404371146221412079912776590118768610951979273466506675274902383735505985676645009934161904025592253550758241736865204674232398809307536996917432930090020276535610906433909211470571675506729561429143364820027956807127365616143269515395016927239752004596942084784125085236148082448567129237612917492272682429213404487694627729395020703162527174231353986953703222549305051416432946178290292491951576734883997729408294368049543301773588464900262385281087183717426376455618670245313067559496002340279666783200604290882514787662007641842614063795930414069943069785801883744332630687332588607023371121729430411123799888977172788752674712103399466153707593117379343500686962087292676294524943199213281060704019819928671964442225568474017309889093274421614522170990435722664875478926947339926172408105056685815188064733660840632330409860214864743108536106260114050223178400922165274401605670465650170088533387085860633440708764414939737022546298713449350021471195974911230672174146326513969926631906160584615036819297313652212325180138426979317612855348323579260861944382341429707652695594174871983733575360785439516020441167340254059609507480510090403362651852503705305841310379244745140148966771521538563688069482732186004868617999186406528370240330052961357584003804286967381870790249016543103096521905706341934142570654259407714733562524121810316792702822948303148316134642438107250573717897359143145405163370951915321488560969125307827060724737180340339272730674294647706191977067996143988692195666648770443965206420619192477967046243335934168114763129778330135669453259203002958320004688279525918934487991017081104321020505431473748363666775939367472710633847623183786266281186135956130398523307512780539330792372516205423650055165789887789900248614300225480800204817152578879636501786238515841319020247075461859982002267372782122975803270517814778000336869377384837135380568503538015258096792451791419960716578204604630379144246436534115895295584982064794954581113634477149347645452055151520193967433269941106578599859465643293015805815118981424223071861104698480726832619923493240174484510628246493404116602366011271690040355078660974446410279857237138311947307364634666348498051132713996706148487381590427254238042976203932716737269372766814670305680345542246028709090764555095249320109717142994053559769558221681808931710071592013436387025755897668022642312033840608937255553454661470503066615099812776396350853270836249066741087276575882083554790761108027370130116573499442702193471800766137388149894916375873066034247622425970843117163691036805654537867935040697515472897379361958646318909085220062882300030868104131680300322583267730493689949754593666920875108092893345660903073976508410261185559567547390621940710704680615404617916396414970260612780069454733647529691398881917420646377724258657858344411528263513011916237467742085576599576295483566281576562144513132404591395444612767843865955167350151980466440303264761044886625708962776759680460471790214619477630981139783355792820381791151523346032962030351229483021871826785156885680092298772138692774331461420216849362794188715079330775802661989350914847802154804195521641835723834668808151501771653669553310526685659182597020398922048862503417634176656043841023469792956247086209576552821441981429951846353566908151868110490644515196126637475773496437653088319224324990969673649896382665525534060658940813036802160930361961375941067453825817835764194343768477287246531947710556769698104119215542586383708844148050338883445075151376630400997329462674470474407444303722284085614670440427430253280299545028102299187051063621448010348786063013122907542334489022931026653171275006354662046582715116579454340609824070919765021479010354190232771286403178515993750740482657234954191797875766475373993597920301250332845811235195468802284838222043427473269954386319395446321476384634580875635182097700289321666069880863352306385536416045853135497226660458505746954133580661961510218821868143642291315194544442173726816215013319878827632284084886497517686271933111681828147244118380615343681955353825653370248509519328418790664362104403774049754651818342854876069785969564057143735437599675914539829424380717940574039650168338248196094119615158048597154567075661090669752654532965396400536086613429365043777316981675795542020493221265243045147239147647048877034110808719224264331737548543968205411985187308594756585237060503634205109451952001667957382086781210344753415328037630138526234897172495521720602458173712119304046944109972656315437629385752682204070339026195046956159722207618458687642920840681153074056480519201271144764733300733485700586291219633023369214897986070461674283559542120191678411339973836246970656138285903737250585068702798885056201792293522850151315534011627892097725500345644766506092456169633854419436423003700744344612944532343915413577096107361968400099308113701393325090587272223790776004100438445707036581850451650503678518560733226734759886198991718504845571721149658481104272487276567991001778769675779295753580969679378981130104376262498310839418848256420221748113130321678547699692663310998738107954979156976273428937937560079267411873257247550525792365426374858597537535437400676634395920648449053858349006224897602215178564621795874811896937448004616282996728417514228151003853858211118973271570140202762399950407552050004081231830152154318724552180697379628428809946079031319240540026205547716836203172712565461845973719692388899878504646008356592145002555179231448759208248561898419818423441436753299438213816318791260823586878097116296138515646423711518311100906066013405467183477986070550010565171046209903927294005855808487831807166227757102560097705776656316894392240301137900662771354381921168622251443121503917266542997510226364717312998864313961272465075933002220951583401880728484903273401061824804506823144159201465931977650631365062391638839284337781671135572233010978941507180948700322561189498925605116848954157506919756161555649345103517069699481809309561746844980198248378488084638237676071827496255270662020473878308788260304429274189185363142938859880400204245221079320532112822653833645086687798746719720965670462786454392616915637369440256447880167814209882232151563953698874869035607596397531204213323257341636621738900817155953385705342852428536099492923311053094530262355539932976519064591963499140380064678159786699380654888908397681450089704818009301640302215288759495768583872685736500280430049788439128072785329330545120667662933047713842105366565064603385772498226842974244249772537221876806703878981146560856344426834947426172812682535770206955767815744781772129689068739348798736866362148710351864424967215609087968547896850050018404680661554973238108803050935783340025275266160511841433986960939696884648267423253494381894516825436547272927737365542601045379686056309208858587455068747765883852927300667073935277941487633147641151246284573695131029270163965187567398015259194222954052693749449976124310439752762863963137001251184162046582556068511056439555391550108782910081792298703031329126903116578152700263701911729304745336573268420455685351390751841203957659495459284892692106737500735436742850188010212160527960805080748493698786094212886889451068486036309538716891669015497615912485782525083581345142152355918068538270395575757631528582915836515746873693813990855117560478224602648415393820168496498167556054878504982362140010768335570746302148020034019463266319238623065032607492668569695081308889783092221997272953703507705485803921933961625308213065810398561530469470524373989421541119287385302134255795305838864758683817438030525612404912419693269355886624245320642436901651466952774765617655928913441186609388649848155352188331055793873685937486777110901350253936866167218114618635742082970250684437603219670003038475241753965471827102737946911747742705893621917454341115034774887677875156754179527512222261235002999293236364227945872415119633515958815571973709046513042216095377526241069007601416257106705420648985732450718393215762329922220792903937522615382909688994783957920127030077498967758851594850852930228685654373520032107233057468566472648887949533942347803439979729937508015786108221746685084904496979586484136699462467834914109064526752807154629354049402030424048583738694965182630181125194977086875293498127726144675469117011249051534641851519224584083996406172000154296691380886389313984167002394579883585057453300694257431984187580912525882546988112848497730518208317390132697837087758955480613546888179269052099779526742488907236816551047861023907238198798669347854286092383282979429469144443378852811906385424942776598395229019753749843856243082322237928144807734393142229248181015433028293122156838069964627657123664472342197912432133875481437166722389996115770735941676636897051251687613780481029212331525370413239660299313985329865851611137991476302621169437666415291446022435700153935598579904265253525138136911956929127274738964107095059403489407125791601688653291255198351191371412835432956629872067938798882204255373421523275809384894728367228902961937325937104434188013672927202255304913500217151734140669914168637780141194689268133101665536040764401784043583988185360944445501854074038880706935439466916196574383675348535755972546245428376199187785344465293044622815292867792003544527217369842363681271725623772794509717228330964091646951851736402359013665123990182686283250378168862083968146865823731442207888525490464923301748985904766818940319322668673339380461863635837751458040061978421557939237159585978645673079781696553967304628002020975409420065722484023493578897202155557878377998060954538422645692068437413665332527205577544298864568217298305745805792111342804733919354557176611631726809543550340992595847854055692839116870426990331639928351758668531893476346978199162999985873602616831558832181249556889255486685222564891922493819778889460044113759104946464872736637681794251830820586270058423793996331340480958613127600615561414671483346865255148627814203831102930185068340323348319278405981472201141420221226333747669735124128285310096430305916794988359797099969487619027213741549610000427584540987053499028207745859112424336016894204061997203697816666103717419049737382655184127635480812467005634482523122970118459910510257865228417835858634940926397742631384842657640322973683651502503420009229483710152570822617467653737120866599643926768395092519756892353963721577919413977367130078207406972643716836666792217243018529895365859507019417984823449543562493573591183237905419710190596868714647638493407886419265484626931667321797220354349001243920417629298911928395690093284139608147683846837551799137682514415181706356522532139993683339950914316338239041248328076692768711152329362176303094313519467547547923186625625578613036304303628583494496193115978637827490252968932165152572622300084347690454616773199230882672254286299190752598769497128498193005106749784132582212300383834248913527382617435538981496053356222781994538034003942257249008845687304572197746062112650292116985110513984665464303070417652880760717478775474131491714614061665536022090362263334981321072531925916642283286080915268169313201446167217867376728624522955420118621981135692252246301844852715123947015278944571995792746652094698974953305067082468413053590090112218870515164981900791847603953143674792305479635629288320388538236203860540734456608545940825941771084480811173084457820725977252696664949762391425773483211742759839398892272392029857205727653392830519262955289622306463354941533625277792475642241447685127673985127307916980102661057689287428607336316871857911924317993609974062303016576083324265599640254689027261548233671229350271433265997524950271545601898723626041464811563348342504005312452369216516429105575915001694083634217230501347289930447109939716951320413407429106878564818315151802569226695997564502077655521943442848866964171318940938952802523753017170682166777969859332463933263843298971355736818664067652242120726142531178416772652954430170049394324558563277680985593408701082145156237908437329857789774476256854031684272190392852494261638586258107135621673774764092824225888250498864498441626290819309931322950179399015325941187138330609131103581261319602805717440491221422896479651308449141809755155988123299818526810739148902826126171376627876754824503531423907503792322917568374392678547380299110833844300750242177170854378210653551627069127129915123047977795813394391696894685259279766405529797960760422869561100170213725550866019627462979020626975955810249839237732663457826558729674224051190063335909937806706370307187065065739299651620135963814549656870803731224825603579578041002548528251083049818691600475723500623324416656681121263175125239511568238372451295951002544239321302415841422782235077170406345954637992057521341959268447926832074657757018278257388729199097903075967495221069150899828441078831036167110951556034422050303871908961798572666466015910308869331321753232063839472010156516502125730136621461510408585933952468451585300329040617878360430030813116550984756639265393944564489502360008620710184899258572431873320502431178884459715025379288196870220331834346314400194537811157292427765494614160256488377019669187670517103527587400482852307818421696444284102072436299580932905167878743491865415613559805346542154549236120471020704113355363181756527183090442368627120605041430025518984888115060709145395440909057342202629471566364728639692965128475104899567594110026543478320045661232962145477943852610757999139684109244849704527505750782565541323288662800481985646856208197133755290507078061047407876576734576010273395836910950808100273636262470543459308016229210535275139895665000672803205968000763124545934917824048349626644609218563664782711134623912232647105612646973107695984471539018606644965641590312771768950725241561861813952606293573977267272160084026567820711785618383082352963308761572981649282742465962714654801829021072872577419358002111041153654071454132996462448409700889564242225681754561788569444502467106587026389380132239131089432442734356023107751016729771671355932291011407519834138094658891193791889365238388693207686864389705938102652308216946700837990617133873683674930299275815959389022419147608966971952544410899778876013650631699133980611049997775703829574691239960360463296351678857791188576650252789018176530740295711925736728756720482118924789145878324376445525479973851557041075608573964263208928534439018158956658558522504770296889672604919784162650104415037723423121402644023265954759753078318079580333657513869883110133354012874583342390132103654854955964532264256767281556102023886214069315050731878592026759388178412307232438754526667686529983855187575883251865766874326316820206774478830256084860247564084935584235142754404901377196587838874694701079424138182337931584996196748041186875883160426745385589953840293552072658756351952232160089657363892997443669624946648374863461252792696894636395600608552629459048911289262566777964612820771813864308951336276939052930681894133135542264580182938448932728603624985680564553532893237657052693466642723723405518767848646639868857296693539464826152606783232756378504794009902758403850181596867284775540725169614277226129692180996972859175249935366696629452607370116146257613420915982234972767638515210139397489605397175461709240856277796705450523724753729497735177980154435756617315696138645626429144475908618948254986555420341870997093275099030433393905871535658552583226685725675965185580073425900901364982445697308116319233124290007287715992628236456354354200917249114686325045008379688638725750844872663631561127198434403009914723405079169163642918944537446258642669062162171593095333039882280953733739607135243566899858096291460029845659960076120116738125316197847320192473217335236708707093076116322749951496252973838336420812464839538788298746235926592220591900975660186118978040392310584843124122554263732029676880100249222291591036843261463326310767743217073091442436597448591632287328930329195662579854581170213175607108781699822036029664608251649002291330976958865890020737172712112647880990072258095467062528397567321041171359889849727642332461228611127340866506447696080314488950726031508557723036153873359845148056205808071011921348808950980119188144271813686987356099532311849593902131550908563404079861557780429192687389261761279960020655319728899873596917225086527707129345320286117844478293213103077637068011199944618075157427622992194870863567714426760807665570018070317695649128702869176311905990556612459641202883145254647806323109128568403989205048448597593811770427610550677365830019799948580152719327182523182444310522820596155634766626667625598996534958959961047186612259994037681122376747491255762626387233950562992087609090624316170513673587081547981608604726749609792713473822488437857457938322466059259332141715724019076347178242319884434339693184729099428660447320989124663469323457313350568777307841022540084681347871999343739796335038413647887260881129053314339345011688103408059221190091970756062554469317458809137563967298372094260094275982778286690266482819011927767763557279787624541042642565508516004174346553848333497014311700399960380656823078809246826644090758113532714688273457679727907617250611130519942870378217787317699905990665242964607857348610228244379390513857960094098878172429935176527912003375165440148322995888708157303022415662355579094591455235616040943535008186884400401210206173034016594069277732415360115740730199322297796002970127092204738239474149863411652567566301319636069153129275364407219937474360043487758626633609631341365958808915758883842442398292666503825237360729785418903629605436362349307281202422294634391811936727089492628438511605240473196102664536607265694670686828302698414322961237948590987093539896216576088990713143785700468281887171199526959999286099469275368446441767403883836350005923026507570908983668143372880770823472224027056107856646910345355177872192987154790432257337208817140418705256833233810049172760349632681757634167378284094397874430247939454221129067279598247341448777166630227798600904975198010081643839369922098894578930517031716949390632143019964634570914088899986921668960706893887364791104328906753610611130075026037417637694002855405629585576662127863989947991831383093345675816957926786685252276841454057233064508112978029535102259514306728451274055390114880506415801531874922328279148474785937318065087773473088741437013893872347941748185336608588114775418148892884216447481839951700814360529122218616109740467933674243233224742878432540323179734607498646179303127297332631635175233316520405154497159006811560936735044883267086879590201829090113508286244874260281363122975038336385502531632072842428494875892198455815798629538852708593983528916252518476372016493353682329741320328475721736374937071569999092632511523370233243004352541061502830865642728877256208804800805560353329265193841178157791897835039992268647437131452401247244305002554456506196361540488034909912569733766201581466685412308037368618010361453002139941457876462508136219666208824130461313765676279301934167553832182844503361068447601630588830468922950708987272196074129032981969991394501105212383330862496328644316353901046783135570176088583507837949681231303149015413167274124721279405882449286275010530960135672382778513524003471429062448012432728814340183647014407955621811980889723239478333966983643682782187393653095650017391506875589746304058912337888515853872070457142931473563813632135875751554547488184431983131937015911334238763403872974582956607780125267985192770058611569066527416721627773321784523239283348649804477859959512856049230164358399585728677291015193030303695868448918964793930016120138621522270992121338981432857989904954964862779317085102892958800815333642270888751689210265776091817360399834794112167195763156858084585945417825531461566117277529011588260100652329735132283837972316766736616189771118815037764652038502972287308247672725169212573924153478932411034120605028111143541452260453286385054658089443820625353240511089484286897656465606950882729043512380485290477625192075310896794197505729602234712915389209439309701892260292247347563387689973561415108073109260339565775499346755188675433294762584849037367791247945090306481103480170266805095997933994461559854368781804650256407330673762018416837981852572631493066085981644588602877729007211584671516835345014860301392669531865769044190823498774000673269476440363276271894301032812429603782369253730470283510836032001341695422512751686329380622453306275399561465644951685224207771935329610011046235688294722801072801472253838680063838053359567978760673493347751529414733470383789320157415885978251759671946483851771516275723845163432945933359863447399457110023555279249052896342200105953216658318651936442839100161488600064623383855674349669528941872288174519690397070019336825374508970001897545005461537015354476842980385298485549710730648113574388607745389407535972630338393662713413554768639796385149146623649621064429367650011222736265140339324970510559273801167307638335255101220237495667564123292130783205315794049025656282039271903786158393874733126068838453407847045500720638027549966747262912608411263306379464572113137701424258800439419323128538494603059541521130403165702513546427965490817163208402466481111570171048788981370775910940888699173752060594235730266229271393282136536038888127946964597260611646348082189360356230422941308395391718029980602975913143009435123243638317567350124984256396407529728567562396411548306305313108124067079029684992551826878840648018028771539318162819144746162750863333143055701455085694483222049881575433099720908470164260619833034834788253116781082059940986735863606957748309288279742790261739514061391942589338735351114259958333800659015459823492255381577310290326817286201422271499685456563592451212714890638312491343321757723509507957837653886048002935339040001370370273416856330147840281995073390134291704647202770706177615518419902966122605415429811410888385365612469153738242859434725488995719384731256991626066350048683082138034213932975462015376129500953978997922306826353444044046783583567127180769121142297445613116487378720585024038535838806552646563170115982059640271863435406315384600387466532930871939793676854436597782755475561010909833285406238979340043615767706459386241289513844253580893206329824859953689512615994430863725721649578830368758294064305717576424229516517992326173885122136411098096063479353241343740887462851340574960019757367894341667904418740726839059008965155438034387725575852286698851929196621321921295642406012955553642215412289699405969935525865569915538872770136875123607474386721908271938468852714558166988478380288287334941055766106577145359642445439174567503857012798332727823294344651253229388293285406592425902112500539510516022960154942966487086003093712701458339917893938597221214598892456131178389819695040104598735598356893472132997016240285065793286924204656706082202122310710701446776966240795856956239034436021422343793928700005242958258400010411713239961457637903408123312348420387805460054884508921523170637609539794092981158561288864761719215620355630328214794862673217952646789567605350597777647912667806390289913859283978818330192823105132090950545243896578298987985866067438271966483635340391509618836982244073768990786537904856180730803562451166357885987611824956082104031265018588447466106664735954412960334866379504164908976700221139641272598913707384276505620279074244914691173885183731360793051293940591473387604044786541447782467694325682512741909867327630694464752667467015626170226959999631551585446207773773524933180926977672347529629365954904990825333647686366095304515599227409608011695447193137152655450549670632127152937816067113912183174682487443955198291316990773451860158373557532610605160193574090041034983705461831345817098487021938205588315806102791854281176205126487678738707260813642084511755367541271220144108917802550319183932066435185500095747406856253667207948020982795047967983859984894459338687456482359284793047771168155991479658980566656224032519204265130719719633831740298565183726315530960000017615717847213419437864204361918727624324816069328360739544986927605060515947462418142982697540180678613130492888573734458175491407999357399846731289556981600260172008525988106890293983451039138186123551972074805192755230165956457189860004175545259677667502195398025414543113005364785039175308376459460366391974572600529390234213081466332078523954969439845474774363832261999777380796802340273685294114061149145380439934556118209795208900456557675860947176988032974828936562145256240411386926337732261597783483094128801606543867292047131686240789130360960389387408624339255374357999025143656815378011575772908066794847838209816564829609809598290818343036314127345928118334077489789147409188969143994498545051271826741293268475350992170118271597072115127011766793996093626163676313194814669998962803517190822841132085638146317656278160142216252198724384678394800303218873147056511602017093664665516230005758020294195137155779396523439315088653081708010619007436174760249623440043551006161618496696650864745211284121852637291727015356395399863949254020290678029538230964197341898800238235144623963338043796275674764556359943981968559097984240221269725619316555817243588888143677049636327035632378516198156457926478025145287975865518125238286022188631939381922842892486032265989157673222274000612280377359123256037341838550338920321021932090680209025933416926036053905382467337572569327040821159510779501472354399894347730448679131122565589078571569389654316559811323309035343889492911423754570986311869203086872492766297314909727992926605676433989723634460333606384684856663443786168687347799972040334603927832928245310002617140011001508957614674622226104540207516303437026425399678123177586212806717236995192828489365139692696130954801598988991530096312533873080351762468213049327753906373815521950457880395770289179687142509472432153024766118311561962064665898650556162655226218321226514265357661919088403205119514732180754974396617858917671030622820360035173362488155393672580228334143139236779997624572870343572084142538644436100041175975898797204321722693303988128069914922568821867358914159724127017073355860832278182541284189297926983827788345051646512726052653071596184082908142253852448245371838114155755999594518804302105247110582756063038171313702106045939478864871547760812625714440085037728213263343306027505001900032130962380862006614090212347012153641509662134402252124968443441190626833193969226680941594524472191976381980283396496380023543417405742065164425087958729068356605737028776125681752472546455383692784299012954473300335252766347003486460088834044414427993424880925549762505117056359657991575471237280737022272199786411649779616023467616795630745874158165033634612364342577518803149289002922160153488518989954750850864328436117235008319385471455159217618683449641807067178985606436201785112775382891675371423106877983364931421469059527651184614378038033406372573278102932099227582035985775834203373589503807824177783161475216147582151760655906688390291988523661810421573385556050621126631638116296026341799894948782064359070665816942322484954223274381452298096401489874227423776007673984941329589780640963110346652878643909315329779974117577816929542446296404718196968343726344897704315029979766646242630551940894909594749446087151670568890621726930475275165916742845754332226516336871014492803726247750917019125925912546420972243983562709293202334632859630693737913230493062634116593296282494374112517342103480986405574189510507751598522319868035928480961888034397168376731204270532057798076100836870731737181771011866670723221951698557054162342576452812154309482389154760671640011587342864794216890995689256392451266842291652030942132662040334368284583154949419270036078327544229185019295210470720768701749559163196396346400652549978057077597403129400004142595649673661548609188245509725226715604725669917912903482812645185746001715450430452101459089733339510113556095176793238666780682160594785412864855069306027458380179152051544338245409451322375187960065182174682978338948469432117245110613662076174101671061415923471290738956061678348025901459047681475381384107040034344600399499807314783023986085414091559956816517398142825163816238044360068380616440329414395517230147226919336774449514004188281973593566499973918196410893163528636555233902095468122626872822695464651972214943208847726936761985021645695578064074616476926080319463795736033093887290536120344581807244384466253067749567969769903859449068169142728107651840488452973232011240888399471946709858301760844888317153226811735498227213496361568996939613479568451048040219852629161243462115423614368497511753799800796819128184924752954695270924884624022347951347664971833666344081275088932874165938721969307535082006326333136480213753205974049202151048065209957683573680252631495216216071114857035658697636892196088809869648319945819473301910019619018520953757381915974064975023157205074655140034336541860281965486760063244370895589273766328914565379573506885187790444542764474898812018423363007518347569526706202352682353199422204756018010486683883829904711071467284265818814704593020023441985573946658629877503975900234911387725682389537715213593250564420914947966866558492978172023345914339157235772531858760043114216646998634860062990548365845258215814500855347878626832284896630471146021307866878610804883055292613800315371692122274068838402262193294999823804991354712466774923849473738807382049237045511324356450697150009335701692724558366485747727574228671287721675195962652817505304913898118509198796897336683155253286637427768831275934230146916445029141787627837657019123425064190831619583789246031055789256151269803411233767381355282866161262136441514258791539464211049434940743539185163748364851050706231676178991635371131596606576131062892823739469804074077351150654375494016872865214780424942472151223110462989957015752043917551609978185018886908204740761506848874770242027985218710718251684210727913394327878858072269674823466639472888380907679097218793014140567288325376218306965252793134904988820872686281006018610732367478845099324216731683202079910730104047268870288095592284790840431193108138029054190352774667553973325512030564826039042721883021294764542891577417098098335022134849854339257685780908958359822579181681198304563227176438051664713451331065551877046236155311527297677721612768567955637012273489603461744807328958937031008847627285976500798752919347533073744964128396980349285630443508661444930074891838318050425550162804174669677989066234956590100918078282143455049384080730745851186951335190481792382827973267389624678317111561714432901750869051689823242718987626135993570605005885533446952342641183222637064547450724374387044221402835719757226572331554069409800709355261630905234905469940159385120978943737113915815259683275188110263135434557658121395338841153587447425908813071069242757586486825965900819744075801453171020934472332113997349802316013171200225709473728502073079916918670127972468167986962201669792858898923975859650837675269606450973252423455253923563822492174106009564637401856613306070430916035915685526062557359931319046653156070419703881899001155891598152469420472739330743005338229206833446171198931045542213289095646903844650742490028413747519771774308121753138103032765186518313332735906746743642533335806532123472838295526399433057582792448256681217579382421112696599417895653666458738147858854949308946022925903012708703715776580168363444600642061255038156097246456185445822967013575830838247092816165778829083762023045638704397697730112324029419941089635385009234071915700039716383153909384102339935835408587390604601614320210622587762853132540527946261904901174633480169358665659813972295444455415821113804209026198577106657552682762164764890438156339584748970023970588196977590213324037260675887851206480067988211722101346323533055008375697016185159311917133025145710961093913674221596559982736457063997731140268123302838967145141094793071479122984101554003162410678168291902148738011265048844242938111767791583988562771348889000820489730156537463348403405011491898475634072729414865981981214703344733028465702430166260327880648222203552201466087045391675384259299538828597868255568770453549554128791395561004789784615933876107749017108316907137271208383721255720397467188226177067557248172699436893299507751108475634370794626507059444835169625044768398979974063919945165897376112950133360208371742764100308820310239008415814920208739686739450038033431027314197388105288511605716788167917556930557179032702288836304327172728213461727264145806328521430873655146785961773464240578483765319506794094324241733376026108850544047709308030198994353949908275906773124503850036926299821184475057351849829108881251926946500067580353453041377960091115161393177470657116104182905377492491150172480660544267996100426020298415941158414815292855641216283535641029335164736674347915359069152539659560543548618148402379409488442526846306440717508477984298232707000350843836490373340200744794660870372757631099525627954518846585435470843274066104180348304411981637782868034018154614844553275585820709586912168710232871222525757544395098552663484118599849777811440802755690665192056822420856057703981365085751876739707402248936802613940089537648605236147427870681660422755322567097211059853060385960501132995637499578085777209606200788802619569523974352032299811490608627162259651513543010057646472424515464481383018279523099826835744483231975385565821403074401601950085479452960900352644284499033537096073688385226104371843997793381775991757990444238834036225401374066581943146930089882986390649425045567008646309810213600074197325530887793139819205328499382845365865856082367093394472666047725542589199484491566078100263305927461641619918504262290939488765973235091604099750597399287193933599062022500156646268556261970404101100625974128139023070783105827777578678138951482373563984385471117969282052914515822562468530207842671705277489747174093050030047566007455151802770203929189077990335255839349101385174396187793818087085000234715071607773669856074973033715932431236755623668665558445207393542604884771441375832037815016857389944794992491266571091368159634749642160059451839639608765955761570998879106317348775137907079577310154446361428178267169857323192306530528710249452604306199289769523216601155101777058592412786605522109794178437365024417936267536651547093425405107215160274569349322643554226405274451564535955760046601189445622432753942784110198973674997838889735215587006448713093784461232568187076901386569518402265334468417311268202631453626695862143951200916794989764070644258294550389025196778973573821171789665703597270534519787504526234624093339122291081949482400881563249587905570957324203253767256541170465480883013343937039350443046181761398970527572934460878107415155652244578410097545811981339029289467573328405230756738507916780098955389946222322191707254014303990282614686564544129764086288905955601788526082528847143945317287803788987457871137627615253299721076572257495489087335201178897699626361399475491852438857284832097205030083353523826212746818296057150177465800875401630996712715948203000940700424798909647391327214615710397137347186452674459831046147745912711111975848639846221389444923482261357679653359261276313454744596550232123279086409873191837149353499462157329018752172527476327914707252234910735934640345586296186398075770193628607224237253705445426156371552698449526665838620333739111358352796765570549097203063907242167919110035302984960579587058985950524321076647159940699296798612164253605073415577102399635267784991761839286818896476183640532890615507997098007372839547700078855278265776778792135900078619347096353379663213287036577639843510110675326092044373917212977322865043783734890793526437944686275437328321358167495237951040826885271959012880886582188667081558529394928239687777326576287868367845031260726672165703952989790303071331327160929767139394492106182965065716057070036783391945189291589906012748104394560335382391603822650043254315879962380547572114963327684988891382229205920789796086142817025138811355196373802542332511402909411060632905185083852325811102395431593163877855375291182006430152810957457149866505739449513263583362566937631910757025225173041667723074407265943247755624583545777016963859419137394151782641470576608920651775872017376486849009607166324769808258599995884661334701036735249014083590433573729064420424108931291867427554897024712960811915955933606126855995044426139145238113021291120948669653884000403346051538701401755384952102731683767401316500015884343897297392823491133740003116105555885888219601333494822465825663177225707428097926918236585462738568905961277233602164604579992100224873922109466601632929102658771245968370729527884930666864659125376759431803533425642262567005514493344801319173629947597893672351351177869018714326858264075399767593063681746315635587958130325360855729538042178584777507937053309119129281748747855910706582030380812200831702123928323121533076324250521201908916007807065614112216852018705267726858660047516040365889797639497494665038390030225917984218672262787517896684964177921514869328442359392850450037082705805807250458343963837575588937371447375072214483421500283746445336720224180426762133102031828291037161011403306143523004510629649865569005343541774254824219677277662892569948182650369585158026933200543589607166771554430665334713359145091161051404975027381232554816788501313378262029864546842743199552807503441832196333986080262346297051604510302188415532199482184085342599911446286623810205796038679726650878086138499056593641763256989047873295310128966384538953003149215883828307448818663801535011631419829164332207287667622203786039963419323360624971967312718264894839333507797973255495161802765723582473676329171098939868437735421769086199195990360078517490643145936086915421239918219775852889545013701142907297935285500976286565136122989707007171624831872116500978688575452705916505365567573555217399044405292131061822889526551731249275096576210682309201775061094924943583813046292089402323956554783166149292772515752626257290419176813421326605337458883972301275956173091853498036801905018912998836433607283810062144948283419587342349912365605150244467001352986018879499735736684506692310115140505815551350548937786774567774037380230626284458834329208039391565594065613270164169939372234582717331372882579315778455658029374028802293132664063747962257677751360911769942947416438997815748562803716435539206037418665985922387030213800319274337205510386474706781618722077362563301059477980963266683900611168620886296213947197151998226777326958427216438202025762771479131025290088007908778247462451137959382067084428815756148967362006357222192317152517062138566674167586341632190327267003947605212238080441675682734100979712067358320821305130010824397970993328462212561713847000127142116917172537188882633213375103064414193255324865226260379766976757647939109103263836758561740977098258014285397802789644016076586638108070521428560668219880657157035625940841220569988040424791054068008963467886225777763142210533256800777208763998148618162371746660608709293618415853666631945628470617845378137725537622919420815177539516250704607259448847924498314359624125900686075340623616204147277531765510363787027481684526373540126033883625551842056853886898244800275015732841132652859075932773426542797619707234026246392854351065705210059735555012269772629212446005887277997497585036092672933577358417424377986062714704849081037424817834667354380719197099252038925046677193506566738790890605078675343178443364972021353917312536527391601663465895249952656265482700257373193394533768017360178816945325132248036486400870918534715471307191199379663099682232651064849964897282132186635920358565550133886283984210484956215367775982778808454976226134686896887314669442343254509485561262421802529368456638875906216400077547414154566114803003269272761446530366874074395825078397622634385512827529276848912873970585174009086807872717143420547193136693517859578295543091996865742129278118453797672883102329784040897724863079539642158271731840693878363898412370646807533554838601464997762704732085821451137654999755753375761542461846743140274629160868164140150177011328274226287665869529090381274179846256858783640090661553521436876604990550704126478687371384351362996016092744807343763146491825131917563153644352476204951252874303708632010976044065789468174937457547835586618406754572808024798335241681365753568498547940748365198078405748221879250378309010286322037176544734573135498711790494291729957760978410510474568295429598932281083079336345132945659046113122251961537816276300711165037598060995147926097800507010310115051071071788517707824434757085622890219059821541507971766012586087018761322605360927768371569358326002177717284918881812860048967441525990195968804136833662836425619563311505119203066077837003038412482595545510177595309738451842397797275597297662090816964560321440112098831244838738402079215799844485031788912982111388227849021855507996627398957768217828789761908218128561086539267254440374588536304788571029974706650040452729359650169255607269444697156706222501756163463616584641425286121889394580148293514616425434312381641051329603520768590752285237209710541804152870462518404897139658536895065062117156892953521833183289973625791564275847711524626272927988697073036667359925161962800887269843136405412942346635965346026379936902924383196329396201025726687393536896024762095613250033228253736810497250538519311297435985571946310063032686122997972247851557682320781220903928015201998454541399044242240598902357708973049345022896305251729876441728263007327011298524868815362732915452522955302969145812507424143749354311742104418131341692775145262950263742792664945113571881614658352374278785609134548246444298862510667545169580736638383439601463289089400581907510247574463524407798748430593614677502689753960784152963384417253995980921506610410413296526519560863713911267904425570964878315888181363302917567913384026051838273903692453413574382795310100349139485874196692823427520385273512940048377416301691318420757159498445011279190444914613751177237489232268228312262890786036171855462145620491112163770554910461750319936896718621014241862818332518234579640320741753346158716351904264584652163520086634209572595490529424818962254415401815219783878272943582539834337429014905120884619917062544624724263045934891365260951153034264693932815024513098914635453309827452252808705567510300422229191497716049737577168594292428248357099950560746025510574207226497554847506313861993656874195152840695797908583728081645698375924782783554013386422996759621085362031467716534822673189201643783539844236146125840743889348193126990534386259287182705415722481863239384279866801406919340780369806559230321401576920083768427725816665498151750164302375344673122845782486504051717684065283948062036534147787534642412507274993583196808164095404070707739424883110129569252248020747919208022415901781852920017936202676604766855179503480603971073197235052864600057126261846926389537768010850052731029172995070273984186976545875367556390988860194786350755644271001040325971710177479148066879150640963078725578546198002931322435789904267505454911052722576606874047814633278049984319695719124030136444608833142220024690288435161572636389790658498113027411310020554178154129434530136601541463260291597442916427853999092009651582367440991630497622307904418330058536136920088133146960375481241395729471347866740251112685481172649277535311859491859157386592185647254508713058602845301819404530004002910035181205102531734617240368980473076919660834359130494949645100563391153403173133845146216938399655882295014908184785458969088926295063804914428966934594332205386781065933399931943760515762808953192941272228956339993840377071206643076177332213961624234219860156981395098927188722497534676448015698298862993013224990900811090639084888906393627223027225256819551638927164935543096226627926390624070063471060958982713509400433065413127006904593312192011005285077338778546206169280011062789685676207061213595695149961148219533938057745659741556814546043158405442988300597153924422056192273675393805006869999321791900342749781663394633797385098903640979186716644084641665291705945057153007343233956860989356315794278379584939225773728297043124486805079937509110857145263295140924157735823152859990645934365462305002658974704439642842910467345155337951400364619002375684412472982656825486541377980029938682946002628673517881025119653284556542342956855373556421434419793176394682142139232979626616608053988135473582113947540047106278603833061460949643144386573649135322612113984857711109996505416559189638048905153511522616262063485856697831894543172659113958942207478277651044032603239692546151068654037913413403779055706632776334063236972039148177549874843277191048100650244456731455331708934712625992651658629171502761488739467125891586413976861213660491482421928079516915389722204647093544820259171553899881032135714079050531468859148049355850657808042262194219116584299438912701457232673899530144578356709589197023605332615587927904050076216549040304440582074478847031433116447431787142557057760639116647272043237243823771919818631297743399711194662812688969794856741339955521922881037423806387994644439344837565838477461128096451598452729780901792274054424376779752549525951714600130358864761995149719111640306583051901921500334946473666431575758348264803587226166558999682542596596165376653025800788371339610028595051916310492190599673004805800687405481571127182363118469774054703967761469507803035908507879916440389723396866510293280491089467899850783417580848568485562789055690958074556403775801385347566959449315173199295470879457949855526005175155890231109385192273354853852220714573054672296274028499145633152670433691208499097661536003302349267078537310635146189421026872267753121163760803005667885502200290207983150506399497157750183351090521606651799928908787882581799239284910228292868353302469955856530729214902215434904411370725902055477942890791798841650107576169756137440486015392228762995024886561263097578265171308715581785516747492668927040456232916021721791548266510322669073903353708977915957911212586868412420208585156575031288479032833819928385881829222306876543559149118917555753017088004090465293567149210871157477375950580171704091326089607294037608749543734330157975045689470088814681955190072062617710056646110830584297570611786138061402675980826123065880736926803898090071912893923373313830364534844236692309252143860911958735217227734957208531863438194882091694612563391844718725002884147200814347772899586897195775665241103919690460257763821765224856112325958253466670640160419720419889437791166577576416274806405420048071573870681272306278937115555778512688459570268357391294188500183503371446203145725468773236757446536572180320117383247059815484927731565094186323166030716742653437987091797523078804055516642613541253697320057272543854073738939589138477346315550502859805443661030938077459309981679914060862733315137931118607776071094331155896935950447803282080410727386250803485872799037926278896530796439825896618361726643649570892716907746762839977862378257267159737868029717647833040438832568034442706648846160349063373806903890389664292730620979584837250925549207310861887724844379762512468062760541517583804074634284003056604229457382749802475899010763129446983026111989076718654233444429111300589765354237102202430359021426369937834576242328116497329514271565022477460696530992489368567506574756820042951401558721028699187561402801481654583275514444273389583904314949514354709539438802575755192050001402059735650384895162522810988296140297177597886535850049121766984687262097409049571649987566152342139254582812389279154547413670360920926490716774319001581176313781527296774609588502468762159203717786828529769298387142093547708654636750754011571970013818375743118015001470390054685319771834691836752530204884104828197025746397519632796662603377652302940008042823767292223865573143617158779927570469484463196917410570785115434676478124061643035115443004448218050864862352619910693253365152673524119268099110745665596863954256092665668592959003179654679749287468252796783092477959706691157275333277680893987057980787950451483401493681559421551595281691291824555718362960324632851864856059688745468652806380156539400979115361763116803503142462727067642700755352188899663921376867151913889749878721250543444443522098682376507282771212787076548607974138230901693894112626217968262425504331997169778929777434796980493146005578060735292164743662255883629788534968004718402213610286636182023432076643405558191806344309898811675909916967982586750992333486417027364728035757287397593369954687624772163943858504100769645756461765465961536015328874569328764630900580274849183589523705275027122840936589154559764326432718661485674207538869403913365685935154666164151580138489454283515359929553922198639948447887846410181963635782195700564835300164590757268773214739158947351097762233874720641227590254167400600521963605191242714720875384482861869758338915465515212137677164033007367234480865902788275105612577504561583963506268160802928622610721403782231377912652255292096237285997670323551894717736382932112710517854278447944890544259795885985162067130012081545512514567978277313497128477450951932435344018491987504098576813014034632676032784648844031541847444292599034400287732301704049841574045361371438693612959753552006488892524226003147522112322995897036578188400234364143186705370278184542099014429734188353179779305936437829338264949200174571579888598981347048385978887764631977587854931020248871531360346222973469808586104636754805346644135396531064114189065294676295549626935242480064829627492377455352682276033152721673879070431596758258693713071488909212592234272001022297914078800999481938510116296147315443412901015325879535874219173081139735983020283502881738678726208940245338557626893381152633242644088957248630046002292441375407024636640052386881123352164898154173909466470522245410192227781233892760513118529609743640244567984521693429277299638264161116439820359003197682043150952803687411302188684476710283850009001180295120488095680884039332680242295105699033409729297657632877406217968547334984377754569678371390061091348587542157143697558814523250661789766156847021128035296323223262826794931394956009342486873067191073156183568072970705685810480286681074097045143146088103614691099830935796384228066577104121539478802340849818641569098604445656197988607250834573946999868630733772351438529967327364850148469978791001011132591010911507465585338674353715038768410045941647319394372949387541201932841310978692704745267880544222349113686383345062370008244526651147818714043700356148888374486063296270424999465036443594940697533402151613098859819429733298978171468591643779812060499914407411840894490332385817345883170845072733964029297128828455365668265716816130734977914600735880345691573115460090094317024802825412468796789948301011526950884228807578985045503023050628150212472167813656929061822360376775164422556626386770967897291886688977225946050282751211218734176693379775418745595082704993296319797319370463432634808199503954201407170987071405838865389116590671034447485551328169999806017817151155779127642564763036359468018918804693236296122256116683891622186516128614747712301136769014320303958747314478426332371676178038174931064966806031504879998702419035919487812609010180391037236342999600476350923173769510632315024309257369713916665150145710814672253481767537437141510623678868433981014993019248284235584431099651071084380046102531015252448272464455368415412286013038395159923465552073611255383659178823167789845074463222720104151443562406202721394992387233775095053453348693071235817856868029565115809716189993947558013014967519866366453376665763078549624183072068637208144635421516735009234942480969315108892405694257229136852815946726011587868688974854247370216592972989995121696959569303534991375722528503112083033546379503185719280309893150513668600577758902671111681356516606990820422360615809880578675310620940732634472802635973325678155061707542048490495487232495211558173429029714480759366079818829242617594738815455900922804285209987737527666149512411575594884442671818326741704549778016655397675811498697685240691408261824096808569113249691547131049987948108443759031775371065513367308663762608476167352036793121393135088014537669275289603968022465742687950654922687320825137131820093212808812007938438924393905517866076390791867853956153765891850892426698877353412909550508589765930765811839396056313949314664510243206610112274408110299556800388424266948859922686314466254826944409984272559030267314287326778395904886713160125090674277714669757842041745606046235759905014053507260859677370808595073134866866852953253046727222623937714775178907570369033303049369760045396390208336712033512756428145372774101182538747816866675759995470827915431203302254709604310225658305917501546423387231397561465561281806435305331470181788870412734596736032537800209417412648904220023964409985742696990083879169639539186997174995568087019169191657407891568078149268194138124213731297942991692731113910400170554523086913631582255826108004743808668012134963201571981053658833983093125830700427489133896021795478714885053065771026658949749584146084493000403184747511492091182242460132893558765766991254619611852282763632487547148589911505256658370600300270941437144566911956951718084302349550048372349908767465330897642386174113064281005463406516527443892747431522711062716715527956683787747946637587165300029975505792524782980317925894824794094010044001182552953661076794047385032071877030572112804822940928501455962668990325265854471348479182334628793352146946060482401434150721254073081121304907126802961692971209174840044245137791596533066171512258245259831819332218049475053953643131308154045862580048610821339428059810597546064313368854532988091604935833901180451068927130645566324893817587425394637154878457469972071216657413580726377321915124839858149889085110776565830912655212115624465650597979184118960276234756592085356723767318840931832443609632832284031129176133333816086742726718872717477938240420996497693145949499412409489622629359908836243232813172150785521029560093608907322399254914099678918850877857374053134166257366581299232746481936065868485536721411091988539528344298441335169840507286138642755703013652416049943637929156488415481994361420626458880024522638097663956404362203250828501544847845639981180300537368057673598585705047931882906913592978182875980035863565496232893227217139464493249330090808126705745782964217611703597047017657348865253768306642765767307945549264963871885811226815206936657757390092550127773581668639351293593482147888740275910211854591178629966365559326084623906923534163653216777350545806271464146775161596307205451981310159536748275529172171324411032720964251170848489792489339997106990417978935948244928698899132939389584327523836489808359152931393636361418886821921999560686680337312929371904099342500703540442210851667217406496674189662238294943014156440278649996934588026609835558990898336705190002564932757131098101166294117238505001416859993900807664268759282781471749378427325406323871336954904425358209513236901332043117417842332789795728007653433446450447734638678174065413416396770991628222604299841496090584186788441168741543947214012393737661886942758300487269340497756592963825416373615806517958326194576553088712554840515420920723020696245378893997704736574356928873345127071731618238040309565387738237875614409703815676042046563160173427431596739875731420929398182599590492154203171856830036375269814508605748311447646248962664729419153424330778746463044867057083441948760889551949019081810220184049420729399781918846345741340841209512899915851011034455902198077406771583905853598631618146386575075664377935244833252610468073977138994384521593389300181411660672983064751379506970866066240864218003171828201373659111926044262805251975052748070224284367940989958368308802880295243373161868699442159499374465334820958074944596961476057307266907610836003777055852975657467441018881110883956995818668569577306969217856580117564042655118542270418118759592588220169471429610653229242691933366322152953809709895597904056950612079268217532932226060063089994865054240193018790185667745750000025716421395026003576588021948867322922108761686165843084317961915783095964423198990821112432543127446461181253687900992683560141653482294613131928755187432686572073304996651046317763325978631065702134087077053522113153834221569857470976762932271467599695369591724642364225311831136200445619491311170532395060369302226867099907849266914185804404428191603469048524713754823343060778488346578162078266972413606649671511056051290011926972280748778031122657444134842156950859355105826170891789071364220036942852240729104727209870151649255831371816402462505818854018052131676825257992300741160319609407676366203508576522388258993163445145691967386366426287759544378611361361742658099014620962350164601311523105781570479417412749911836314020173340994623958040723458395858743236783978209493756918055685672040216632406502210928597111484476550936080764565866840697375455832188861628865702743177316241209513011010647122598436308389182873753880737351405193765772541302973947496099570044798789361038204555687770734481308717719751035974738367560652923677164168720142031072900918461445026831930094477684232100264292889573621235191257185564266458936259946691934894014354053209977337746604212072023804882533707145908923887575173824918401194764185316480428102334389728090935418850983908049555962928489070505487067831757651752375007769190031697809973997619920261138394862873830764245942573363561362860677896351754059968131895220049461284372807806550087069662378765795355656913966942737736515635179172745352065690212976474501613809105525912249674148271131402724630504543202255357856645150292681099820495591086321152291257727720660575817275934972337797756153590325734569844016445158559384204828438691392030651367509582439899009102572329591999889363844921678505328100552106272415166820115703090835906282838169553250100228323966020798601988260429286214855565270265123589655339577558650532622610447355666337110575276391700197557998318343334518206824059334728794788534572195772827082812396922347767688225467689889541170752383037948815481030573323416070702462638376338131235759145861960464474312347147958682166145291147626984682555380364961668977367805130128940727316157057865031933401232817823656919101058852734753857551319051872063782938402748765465876111294906756953248286306814115170611390990834715294747660725839104670527951444757451244896873910904153653174851546827254308083610471882586632424841457825585448706341479003552253191464832185814501249900222431177421573264645997839887232642938160291235487965274809586640346352862378424231128475051167921624607295554219410658897149112044575393626713701993621797513442605615130008640923889933055812378076440526478585570524044392682512183382440932728141649658460408388053657131748126403836748206292136120853519222582472654341932807033238909412591120261727828612892598234619545673120500548883489215189584653260064861771465694260126864106409503590534621262085083053608138288480729586844503931694264698638516000487117417137151503133235434093985060860095207059569016868709571861344456695653167906979790367788686253644964032317574174294470023138720362328715616622474070745002710080666668207459647410710670325577155862126834092242750092473853197143728935720181168617914449289787878459410995313184162349489501018506713569751744267834428075946261939100842911697429303999759312065523016336342545025630982338819307151063838297295612756039966462344049973171070345917822165657195775507079446783765459583036876219883002628042348893913209800802643096297191890916932293396591706404363174441122689637209788662686206138602799597133538205824884998268383920888858028656148097637116318677349879452065490868145094637516505786160012655814137912159616045054188301029218936396833732664291438109854306563686682059887431665954107157536516587584761691073474079818157748223520121209778873044230675280257081492479480099482039612573383971117873922761647928529479074510646962303064647015194353235720397819069832829447313734953108358262718997860870988586384067636752746305718625394166506025581449711437746330459342225075362481877573768509715224086567393487801807524101072897580763638543799462864697515795907326776961649052709554328640057654801746573295636352728322737374340403827762795977818129786443354309142516404817600131455180242592248682809208884666692287014815550275863420327117352541536990968778165550711373131040093008780747159822892568037984986364570150391162286323540159452576368770528616829141447395117303544114761420758430065043446468370229792969703962125584942819905188686470904076647313974039710933770931150738366701311945010665815586104254280459808385310764384805817922312282095875309902854678001961102162485044930525051596623911905304995476434587272631740257961447655382797402773833009907320303423639984871141051424258548340071189325636607757037209811511791723916831692780041045928670653806442340500276874779152094056778525359082334106395480772251770796792329676186810295206003600594977609881166556802831736714295564681488333798867824530886603964124830955101908553342142529315351661655256339426324878357590023674684888986419174071437389346929078680592998580105633876700437929448841288713493749971601005373175787441111572233466957590840453042637937377547684159481595883001635336674960008340151669635180881646271295158890967133677468023992731800058887107343451392055598926500229011379212719042817796138313004635016083649681451661423391807992573916326402755618764711440228976921993223765533182430272416824387145401549647647592723377306010460894677280566892369029810451636015039817810671718700116267408838405411588097174659123848102846379482128144501331950777262536637179422866206822417531342396463778742258641785707123705405230218366374562065382831998483967657979231958197879540471871201760485374868168822311592491284754131080974121611966838703599137721251211868383387659374867421428541703826024610966176332646623243462285667307301726560530236503816953992968880869710723470731026452212598389170770533039761951873661141657720527345425430898442954488152328759509403588165278626390023648247672842577946011745873968826662229651850043554309960559954089035780726936668836750808881410783563332498272235650089254647907717802419407048952568541247367496631115203730430359892967711897464504509902430982511022616914730132738995855179521134179495341404203609569937578171413061149654915147698530454098057453122947963299954689673669292124252426185027303882963382866265772135553255717754468071848365877988139472305089703928576751066843921310552854861338376619917617253792360472629186226199101025947485774868731202666103984909039747639794682582058144815644955215455331642523947169609589392617845556965965747005966497397842955136502099304306720164028058050327916577665620070787054078539284105480871682026850697117305727595017486751688462275169558952301398394792850722843219912507254688242877824525424973507837983606544619726221023955573927169978097437123249220969487557971132499144081177736154766156182336813294800334945180620793076510354187665556349772233315868082110159089694553162977500195622086339404283849906009478296785672536733966862788291026045725090135360892448152421869481776542372376492316826435612351543668753747694464223129843126013938575033385245586922996594724330875445658937722693881266598321193926980192246881188198902995139743114494197401617135317433580971315007222823333317689986171005176715586446404382069356945827317279840196370065457248695947691208354805643634252701492888658910675015869436965329717692792017461023875817680414436677393929767871210839528010526297777466978188986212402383076589578303596606467294221938096205390816820379025950876522161842278061047528797435210200802750470961763393252428544840390476586904567255345625709133186760631104840656209601705189356822778902542174814029520508760287868303122473486081203194791650032309363198940440558989062627613899322512097526523914054729014312516656065199043547048291474703389889562024393461255484072587144539758330410032096145896488572079291140043396899414839885410644171357750162375811997494932527804055061661272940135309931928142617802626352228268587131228664600249206471005319975636135964516212678958334657303596767167107113539628646132892354365369614540568088450086926557155239864821063200940038766600983718752901012391084711698795251649315943089319274016917357037986063298145114123513856588081706460129913914769076690975459228501390160926741885565988431639225974749407377569141045944111367381376553651076435578069383619547390679455511841702210575036466116575580411125470064379046826470200461316276714546344936336728470203551299039315016885950677473426442418182227053520391128269002833139641472502431908987072908836588016620852201646981733923303823414243112405814578043441583670434024550984940468248287561082433978864243011851258130581993630029928857445580822082882370148217095585983238431113419970826411215630459119381138940510821087473080305731849507843639898271968529302377435022721650807962820330524894294525371114907171558788511255972280710322534154679527605310596348656648974440913114620593019521163988859414056108258683726121910597177811535805165452253267745682436528933984568124960749044766804212774415145018244844880108970483876831381739187855581970058646058216851768868214259662693166502046716587665602760350828716413371357404895981578916702199201869494237294177075904997566098517436865997935708775658775251953871472179477885509060696724004930308107029582357286578248405801031613474382061306040512898961301188582995996720058335110738872640379985405199523185386634653388890400324756736924194074164724078796822613177638156247105424485494171744745919451722479994909529902803769887312922023977431523450774971649358734508330472682340371609701520952606942391175066195971560604348781833627872183370992719298048361095248636006448895584468289125431533030275423744874488748388523971672703073248245177983197047348987862309789585717789595634307273063621351845413918255336203744669395052477723895494869032087323931865544907131135829831770224966883588258903396287056132348414811678409866138633613649048641904984073868523977714361258716759759676995170911892181977600606070972369552148751798520792778153525867514696869235154399322180760782122751574607466447317731380898293182843350090802258982642374778034604481993004083621656005784959424285038998239829058090464718723227966901850908672199529843852358517453052292810129882138231663540735978079469657019750067064690460591149741440475718743505555496290913680891941687423917203725011967082224569749633613990925476348992427308695325995095278556566071340154262366415888683521691152078331833742209753865596620614376241868139344066389795632276887027606150673244044342412041088084086676161985285926284314738292555183420205171156594370172041196178452402738964092756148251837054616946461096215926171974009466272294199913478485696305981902118688108704903388678527624103542405446584522158010326459330266040914238002576553166244817246331343742392614314789494455821438738120558698948914549417040820895528748344312224295466026716922035710788521576880635816036059707497109099422192753153261933212868224735617981587284926291967834615791834995299150912787298467149625142242816505857343833506399368598025644643048736839509464356803282499561634489014242177720966240509483062567598511876352250560295314207882175835689731894052582057498437251707547815577278117722631250837691021140867369550673344007142678727557910142376822819210305068899935319606899055153454392799029623314535999093119821627436061432840003199206221184376564657590553793994147652413676845916180135422262205852119403364549835043230872426301796348631316986586853081842936317261610334011861697957504680368108545638856767972570466628928860940372461432263125786523779201679457347343351974524189347160513803163702305131930617916797655160358682182241194055359667745017267554794661032942391640507379062284323852926569495467100441946983425864032520843664590165112447567745888044748059325522851862388793577850150571562025873414251251326126945047750563349598116421934198980514513040499041192486247849941407108571595681194349361868492741620361398488294011790351443247187643889394165303603682258947420031914075842208545548674981252246255162948083278895698796479319844009702023457437883545264418561781611984136074822232298505414546467991883062176505925564359901562142144240568711304195203330152901002377175604849189816953007702051760790913804105179479612480130566836615464161612977627888580811014736046186705139600529392475298678230660019180177060216028481892491613334494936165922625250334748751812957712236218998910863283030825662941570733717673361054990082213684635558359589807757801701438475501581101153759887985205696469575358457531294932859972942319079226736356284410872023076754566611070811456801951031594369570175213304765599269178711435002504133394602679610733840977026530481816744840047459650436451745349769105404647168063277276456204644548141382400131790195731466044545149142270146144805276015161751411648291066782612847768869919507247217197974389198290686383439337860091328550454197517090074826084369432475939823082012736598160267073989072442013308384226981238183429077438736083472148373399250604258572158721808165633082060612171469014039951885617702835269728482999799820146453289573397372770591519128410515844768269172727404130181706031009955983496828708864721808707318249355605092474075044130096745630456838583716730256336271924168862677315935784090176309922711116227306645909795408149468345193602940199411586057957686180190528896127636062272527904737588349291106702103583637671577474925508334352076523425296175117135826856967275837134812820604428820902295506852729345097017332642295076439723538114379364849006848935791640280586904015711357061133182587678873191730925648414309051517132377366521647699894058629478317761609034405722835644689351283430180117039676004983668821361186477143084643806642592828024980404763752313992754387332602535381779490118200896065179844178594344229876312694566410260187669675163676979271292988409585463573178425923463499542535210177952412796556022316347543696475172891730480383769062518337334428405072456834008776281706248487701577795657606133061153141903669650968133162495810776756814529263501218813854009250042808149498824465080617628768990998134789846007165929305024764059366602362531882309017263527298966475999187916280858228489591604460170008062249481434003427537189197325004072382729836581283131693869345322470626944481116081177882106195168197672177206486948974831017345197578732381243536363119350378030999864580511876160348875642572303698325609789225469599087273983168990323598501480548214222872281929568232599485359866464073964010481559225504508928553993877247846669560517390693960901262637765662267938478865585185553081128792162236206562114861164252197054106689297687609171943975719122646222790027423145901971259616749528372795930444560633314208579826517674428519519515041985395057519903533586611945024737577845938267191201989107006648403356450252484779629691922947021573389480045293740089028078573836642564292382856332718956243113950907933119537972958459029979777237458930829190771250940704573530612342523071086174613398566378350532347286865386807899324877919487630000716739252650959520420467104581009703050623191532552743210184605563034333121808075733506552510741321475541475702675071387697090953468678692968518022220904734872203361911210604058189986249709238916112362476414591896816360970503164437574724708545836398801207763252825102866470656167438927858440510886236456375820841861093938878772263531719954853757006504479409347140927151225175968489268485027490282694774646807923916090774936577426617061046586361155595054226749925264711185136830021387447722938220498253589847954907273143318938568129197226117074430618943122950830218229417241178349268687873452041439648653525038472722184186372131662683410404755357166137126423746799439824682454148973621805434752329652809979080906364128780907997443671685712581706039018291133092062376035465851353871176488693240925095035251499425967407871518291049038655596368317098765035775204107902867976089975676031111881327150702250739796621568977780866968043418562550435756670082209855336486647704902980535282478210056034460507728452417168468126599143729695933686540251307820712327963519130038671771888900429329006158679342606453786266465301108163986758117009881406853565363540131638672738316085456727904769445882410509365183243732992145661130096996424455458045466682390780198424103347566529194359761153007787591078751472969152998961743674550069204566994801656792590574238705016128698051432522963857995344686941858169767261798468916741811218586965134842201538657468590030924260411464130133047338330688579016371573930866701868113542784617705416113131913546479551277451225604796353483084209456803324617001607755170443154966732175445091241113000291257318092424195173470022492347979291370425260706835424273105345015158866151631438687357774057298159669728581319799238412139781191510047006580257291032802000869894155534843297850954429504585462164716153365764263540534788500829344869028401625563100974950761660786181553589914645948841904630915236095866953441541518038462105748343153442426000482715465687845018336360790389641924371432237768649524017282666636704727493263099982586780152345081109677048517607751432505497063289681060261047911230029850833090335858560256868211841343701066295079165395793316267719148492724744522893695657969959011270040501670746016960756955360072650310844836433326843089910883764338693849086346221570428156210376326598460744820250769502650770283988061638242284997939155171121051551734835521117219621566901517015298973628320179021044668674110727054807226754509687234294917150377236518390282316098303379091906076932108783995312675418107664410527603886098653798581394170270909551384708757987108473812498934990391937078889057194344488561215907671457185856940857814409023725942499777271296189458736133416779098563152003183019441164961584183597542543131246944176592198925947134684300978601061307370366197647242649673298021109241032449244980146009738266982587107595367954268685827978342238247898557997877968517002041166253485422729034366092859909143106712144871380743725214469946024851076947191468940586724523253206951781137738644875170248796847849879730703052701772897236015655303037671245215635169618626391608238672352849849631384995422221248827675275090778885696366513428195111652050586209283917678937175866510681180444700021587552043880741314510309050373646631333768440294872183799779592027715054276900192941322138867453358298658270128407378579592883410736809509296981547116457690173577631079893795727564817331105431160810844619301336462270680318377560010698378943950538935682011566783499826911298878198462266623654123461729929580677219158203638280748387499158978418207264866845355384237758912313985161393000602735491550628911418255501804239759712301064757759974734619791738854870465133403846372838097894987788548704740536814384062934556362874988394934669780126247105658677950765762270378976061191632156506190494703231343524911578628951773985094288260130130111692703663380869175058815149268773550339928657434832550305016064745518791027382680261049372287428830988864061134162238462453193313363956516599380502075690624604333297598360513256351822165470279882931932771721217478313796107082617342346785687057417840706762649780629581594928904067220782041903354910625303452076735799841130834814020960926306391608049636122131914135753597858324771852078931492404434428577194733404425222430610206187920918215400389407853754153499910911253975417146940538506154452722216017641100729765596786118972851528084503365031540188882801406368037839864048185647680438074096979962051501933673179756824910071382131383716382154556990849318855187926726102258728004719705495739927082488052975127950116107555372039936600597408528445259407874560706050715294400447988790444418224295274830172890568376753681512431375076453247310109121876581136057977534548632684863388949580727616499243668285720429201403427853235829996898619847088488781285638529262962335711294614630023191556614383686154967831020573461005265009987609201298085066703919241695504002173131038126416141818971664591444947171525408390954155969036596017105013807618217531903513881235553359817808279651296832823544266434893777948705510233905342298674179247355742080881219269422154705162920339651494723207263765877250964047575169562162678236419210860137857713391665175144152973691736085290864760082535844458565500032795353897149340218007188863811518562420187967443405367776538089578964952749726344235231735632581224230948543949751699945295118137414259656564966920534589959925723798869730967395779304380162068409500013781520312446324106794865050769378594797042713731874034377424193240812369887758168009363540526149086822055243487529240306828981532807140315069418791982495195441400250089963180604936564212252828346043104570933417292650284329660525374567587721603741047958059515861981141622577273200152217814952654452630051772545905057619906998141773541884323432819926135004300069263649966275863115425400737103126319433375644158025397932895921116400425258178165914291042030047263735286341633717025421113902514289100829980238789265532866519083023956472621863351490560775774441813518258733484445518728556195563958320966638470370971628771925443072554963130335749346400753957144448202684146186977177560595076745230350335443953217981235881459998120543256789746888538783593071330903867526847889485825914174762168789638108735287239130783261599624138955640209535520452535619133715742516387395683415185945001063364716427509215264657397178011451722011722307963484306339321381559559101491349442765194341262726177527246024595110661540730774308564173798635834877315055872265899906718783800978913519457009186657287070489151796640076563536132707540445259672310504849745666880043870597347136662014563517803240629204886552374551434196457907405670789002579301801251564834853161017364397711546902199637203986139355249836199142847029217215252518292521726939258986935588008467342900723049156408522766824249468568699917881194015377755385455262860982854266881403496753388719168391364149727420822362847627052326269707370979471591538090018342375210156451216043786306536534289864636998755998447733335859228068904761814527625384736427715381663049841101927658282536500087951305330177001387056195800926560296041554815203503673913769486783480225136225339579710785432850532847146303991769807774627776770296584800485095542914828213040618326128740517559217893604888214784661120548054957740402636943411046446539461667069834465196267798879592179389260170771982866088608957676884555906028885586439923706262054871319403205133039734790000955675357519341884440415033703729276816587070686402725032050002570113709997730382478413803204214348527702220397188322551681632149807190395097199606040563500474313597755356442894657501911690137697611262674604280796351248569348335436656440180402724574440027899976270771146159994999028896217633189167796091510953716353832514693783588843911603844645155389892951186080113620457952312510058451331159817467349430984606518281662706901226190317455141342799751253066688901565509276641225411165385918565659532773450079858919223972302875982799636471046454208538210165997947576424337790412604712679951669479922661735276242242159084495452331833880660649565685598604611325795739400273318077299503641854128776914322063037007857191592257031991983852675161594682362341386134718262429831558366963036497526153243525534263801729383118919957247757009751530518758384592284764080021012469083657376059687137601055601365615992265807481451436085835174908296332464788617885772734484560255217606734144439669604072099627164046079793297233086945184698255518141724423119557898029985877106186796980256999648885071718776193502628291616427777302145976858028077730773324878368048059736192638346420238047568818095694886931938029796231940212319999685610881419001971556245853880854641966121629191006292173690499707823093010704426132185198370780123045555673490942203421367285104526107076673467138465656498769045575528978090673155136881353516850021856207473325423099867153979575690418703447182077836403216924029640640422791093281558671356809646204019090069196297688930586881376565818026436135742845633793338796869805709481937533936998254433220374331181959029012085289054832232943386039126159242509213643920560737276009263854553582968383421887935219136852099952045439527163724499048527488659904510623624644756038708769696358945688019242954964482627239467429557887886331673108986953969010953644020407956518018621031652494907340691785607376753549134645658157056062145924380576265374494416611647552201292422605494081475721538076713265623153766731249533839586261853217323026191004090691936783925485210113097901328425793775616477549128508274499400943435400091306490460337110024070213857996045665137234719199919331381491727427516536906816308559939354904734246566980810255222773025140586050339807899238960667278131447323194492294702737523047755291795496981285033448295959560366065862647803881988002866292500713820982496452847657667638657870364375026400077464095448726563002561647140656137367910460713645145588387724720459500601090656533971476337108997259063021933026716423195987230502899510224198571478868705486925060169115331694534002697517089203351299358502267618288055254630590897247540441615994531818833310893801319180618765017966107454674005266836724130152681451202311345380394946649348073056456430808397719508660274937554434350344022028184010460251815568292484703515278674006705076870717411405693087613550780245940790525319693534396341424596506154732325373004959234631148342829106205996535475007810773253776756861412745501925515937161387747342616375613356067768680733256043945155208598467364311126239557419464284014096524348434114012710486817082358083870330623877343733161111992366995583090288394478130274951801752533817091805909849185148871839881936670957739388022416956202168450872539904408667577662764989683452133282712927461718600691136981393495830232197562864002660806296111507879503171989938711157670849957847582071478635803246346254312617648817936874479653511529513171686822269247228773974117841916612118567212718768113997174258075362731171195364446368262761694050517317948753668566973515836106590156001018061113205367294557068633304612912917069135287377706430749089700852262280033052494815911269521135011855111058941361924850585574008720282242465010085112997716965224922048878703606365771516070645043366343395800562252382053517969811112635757851916954616091512872118441267788197399944921965158345769110939307939327286534916522838141386649576609677479852634083887160648916321563030567463916549281266358215782982238591844010794354310877340341471890723370924634825350943160683343037468228325215261380827434037044064045990443356157209894172012694488729553542232862563221589817152550344166803800597937337004651425201959828552141452287175703887292312424856777690891589994068322216807306057555889439010067463078926482622697847004883127627809564572933567378155842950676929605492670072924191422724017151727901073639319877136155732632230607591068366514788511893209779084037479229373962661892032639100624934408463294201031287822026385810119941278561185524777019829350518791563330512497863122447316064804075817434728715600525086578047095711352500078909638551091134876094909780935087148650909475600821387550670750306065463829527980672056517207888990032073668490349014566288901867761204181767671278230937627049371141878146428546883155277787110568241732158272873221362224828173844078580602773688959374286862307082373535899110914407627956076495282078200004586667094456219024291609411183409930391524612012670296372534546348172026319939497815919082716487084735928225384381724041391278657233956806676418456279154282822365643712335957027323946586594199057873443100083098840608427540236482563468360570556149891798959736947567886032544072787664838654378991553489746543302599398223505558385664287238564840271289620947285108666009870135276834180249233768189166348214361894526321325176207546195806084789856073020999072366431575517743574994209674139616869614986518407832399313908762553264194536753372561466378539657760636764265188734156519499726946481107630964313515016615890863229750344967524232901406820252591393129226298837905503354683329110007330548958098996216448017275083438772393495284991239029662404250861503419839088307830427019905170722106839828580938804294123321028504791479825622754647803173645406318855532701493188830682796855935902231859642776387685761812125108491424039661621074492228409944576589790676887601816663075072878437442619862040858980575683486930154042949063715895786635362958210536141935818412135211781412278163972901189250815168383776441381403038410694198224220902245953519302169579946658888137842484695999941237904275648377748621414480619720037991811133168418655692664134092840902784223455027724657542809739940878387655097954648852186255429157949721517460951501613964344787171082206336164457511873793874018939812908743380719663373092294524654528133841186593172751237006639942960405879171941889421583552649667119809283464158887909050886675354211679725149685345382295814670834954433418690842503482429747668996048663752719484688422374463549586201676673505599599475003283227682710282145875757751782978486373291742368406499752382742084401817408833979892641857448112383610046854356239997572882829838355597644889885338951480975795052176151822937638363397548782746534600711421952425393278343867108823274668407216332245878862905499408136733765751839897197369925602964623751241113053961690947278636985472850398397793335378907969945524993379398988860411286622823640226360367774385340801356448809799401903501371556180432418828171326837249068061456371975142571564396508669659414629644834673864695165535823921295920211215747555653106422734283010899848932669106562079345554456733070397168170954015784199064435512516611423397185309404025320646863043204823227705875199471255561184903085371717896086210946675065301217492940918713366482825552227428267634162526517249130697872701404077593089580324435122255915613722444417620739774870485226883340616519318045424313656358922008321534938390074102932349100985617254824082513729533167845204493029600799112394977579467353679803563666877834560259211440810204419342858738188711533387478687355540610927548722211987229666087510726102833489138287179811080209085399848290732711167053053777099654869219915361700454828347617297383666987784394308201920299541731118828700533678672883045357952412515558626506875529432999286325165887100364366900301999437461398694688795394709518625961100466034630890277129369423529419375890606288332839477711093672282262664874450397599779426649686996962844141945495694033704391286727013488588866556778966383150292825553530865458451315337560787252917005131180058014675570027400026330538596607967965236244875677042727334484620550273835295309386806788627355135266521035374602341488465744897358767081025983945439096208932181642704379352800320643550100061863973874112228064928614885157852880122501658797989221683166351981625488738237600885340587622589715122794397703262985702405592561266894990972747865233940550276822293470775172704057052446814205338091362151907437581729437232646098357980248538671164794067163204556511126928400033753710632831977406643779437339352718501592736365938496829878568113008425067782901875921020020809092148227181243446880852454587625291224333593043146266691095919070665745355780590446514047738861922140014345107023379611704117066556772502100093872955937799998878642672415188138007391115484354641841620569658688627181853142135804477413216886301086160537390389462399735921039186113586389840387148875089515658292597676350461280631167985271931410546476345235156072601286164099585387902941291924687575578880462143431438813226449681601003380469185177834541579501701319976616643904786049827719077442052595189320630658403845313502571281645742438166803612843913631529717447536905272481930271697082946581605199785465161382136036454682009823691636713519911153966320545468460160814614101070679405899963527538920804049149342309525211052869401804573343969310796887217620816164329173710802203117943009905740991514318644508524778395182533276035446772618536179977625611595256840909873629665831226755695415392927366894288068316340727701574886779924743111583051507129151689818321484882604240159472952291365438751073726229418945886575208071009536408521382283980854030816464587186095197892242653071047978563442342394373216538339487938130689376168378841915220389148669007819854896498867284656933267244835032798172556766854068830068653573131133146854456567680746633296666650899115796840749209496462089867048816055100650878526629125596123258047430159955875170843299543009673804387619757781987189215343117093335147897197562689557659911956539624955740879030239563867796188928896690716257397785289828076584771024324825559977543601837351817135405993454514109773585232592869082768601913932354554751545802597282308437143744628363430313865909487810010857282643544828209809147409839418244405289308269929031650683933013661262819608414449962666039096773932617528033216601471420068475585508771039793034823262859558604402721256713599989544466397059963437889209361914509385657936968398827323975038422671646774013767442705909552339352777060971718602896016743804765006060644295583037937489048341087122994579385740702939728237524200432252029073135829958075654532071512223941255664704073066192078618602593893200138498025882372041004729625315591704491233568289947055422955175670584755722183710434541923998992932559647467279950815900575194097618494109609475643538510536194449203813647687791485046544983031371603295753946237727013547189910567376375992254848161865764570567919365194838176581973468910367882140501639651321341388884306941504301685692352662037847443059834871078810902135684177264473975295053559899298981873818811728258925378348319134487360016163293354538715257400077171855560103106489252458898628062298072745378628231784677172417283244487492093478229810843519840644853246839549355547437564740133846625908477942016940614594173477301169583799145331772794800340026696760323068881035799364754658669691966451761308176344249965988030484371972023379942963919901191255565621111815773371380911508712104380187802140940516863679699906285304170285289228272781144606121022026722801437905223190634169955196127510221447499596089198648594492154309363500145778922859789176822918944328143357349658002177226521181758606215948352832470518285549969143826413536078180080705541250668550857833947795264633093892203828053511080571395060429944957627748835585870991698402260453095955995894203459629506232801416360982095049959731909103471057298468061840881736754728252042214215032668395700477653812083878309116480451748837997687790008744256863212378254393613628967052628656430703313540985085533421011657662836520005872581160411357137046636829410648859789425903556357865703922345825282919309922387971719517103328934995486992540735321446053691344134491071143526703316183882121614343923919743403225861859140665920829521520840933199101567555646476455002860755176694724161510611246068783440643167865720537336799178275315062090099958184291695390091640714782897203070045299534264739758247990081442621608389847067291106667661488978760984057495496545373452459030036297058695374060879666810109145923290029914184973606465968264160011587256449498576707625481676885817693709742325174688813729148578264577113291735233912407938562194765617645131141950554727681408603454304512709068540766070695430388257992231143703322819838005725859872994345156366010804283322923611603462447647327314327760828786786610542919418434208473860375178321830018660337363219204862426471094608659308597745670601769089439179606723584456570587565259405290833553037622144013604514315419693137779640534344141326984525557342994433389102106436281662896054600046408038099288212149929572317805166546022867017998188690643331637673557582243601607099147781055842888953524083125488868592583478586465324228837924590572579433404013048865327640858092938057257455042313369385352916293166026689567571628834071098127632376843493859151364154803281531539142677708164566871107636684002282315510755404216488683972694651448593904810091123488213210591981905635591093728398569378860167995430943564068313172439119521973863949935554872680960111173300584080899517027641375005138205881403044443189283645401010180446074240885470290515010151216232055477334681894950549661071813168000323390167570353038891658778785248188765757124433302358747120373422382255998649991189919228936942302696460263596795422296124235881527063191185039552611442935923019806530783221319877770382914456640313446862149487305962825623355636852503448229550311286325611948134771830662870583273490520378610767778520138233254408121792869438143760545106262342586683365834737222563781782177974497788415489672456088777063665422327442799591290884354353814165318536446871127507791729559353946043099888687388883209277437764714602443592441294581798448923322150159679812461789542183840821706553846941263134541938035266655922031384962870749923153756539501579109030865146365446244174902409486461822335666221638498745685724610297094928190252405727328155640564608179407173524643081188168177665487745532270575052856049028240621960755323217202735104450776363514419658082543436918185613577774432761950246840516362313545972849893556149855890391704855065740025668257639485529797381261529005701165007688028351206388401294229185954550498286553861963980508807990359400572481180132891976648773527147653974019116287793049255345128821955972950376627149417770855011357700676779251521877002438627310114632916950938740595346971610432238287298096112971221414705208626587096263082248420578296098779543908040872086620189224750294753648302067899476968196931902275712276080729481115409011118662734373100557339946853981093745189020809818583900196456532795984401922505109095762496852864302688116916129007498950773652083178542440760273083171382585255242228209013012860392966775861858646254497122062404674678946920513537914817006084812620712287559039994328464231086089033563505908644592927180192510256403124281370163720313582653015127288186610536545266525634363755588113110895969512321544688809659003003682446308624104305225716421598099859079731761211346193290005738645965372163205576433815270995840183904087192389436456673441522715138306757549801687454982533623083855251409598970583183687449266429750537370054179678682693520928830420875149045427377554895778902458315237199172703939444629346150244453086624504401273871203982749648356029573321552867669191064844883553842473826092797148369104771671321592478764591183125267877904005103760913765873911806405267230818232278408946038205894454488927208651539958764858534875187082101303475949072075601488986665502034910220297606517104742890576552432197995570593229208198550382065458122536642250866750830209648510959750273376276684380169329999597764389099169143836770310292130713386562722543616455826880731929886038449402728167942577172917018148113782584351199235195667170519547469027658274377129422464972612819428371344716660990530866693929672073209453828238009845078912965889574815312634199753846554475311864861828140322625265413890173163344630742462036004300623378797505107551782279375988900625053790357628188123267509812073529950033939743616125022262616690052453484449225130432891497148144466311840199656502810371443268238116550002234340218942786013518702631194340608609929444998237327743870892319092678840096192601628475449663608185770362408279434003334400543068637814397713523820654710237574329790009646251613405998037970679499490944437824060260869102203580779191775177668283625081209954462642575363214384226016920442441729944730739584010512613175075893180796325469434998406655509004186889485919762099477490486696440284049915357441553375437109270697956159805000276332910074972740164829533446729425756869998279281431534227380555895969498286114624040978156780466941124563732431017475597543356180266247933825108292060253799781990649977728553031074693925597551647552006625672370015234532252955340353397053773036652444880306037519776496847764720992027693518943929544476929089358359230561423058644892614143448712092439416166408457604006145338472070328397026952685635235518890578857101074696038969974912477396637714266789691676780373833989993080529382973357608279578063552069476132737836172743512398917711847939046609300859790790970648492768953602111063080282042636790844749565127664300359403830167276430530146595625764940704895132822475484910090742761831223824359139631976010929968613633744100135419320771337204046161098315438644899708907748910868540997942409355264262241215282069601329822627423882494868837162787296730394738407564132542324294040862877954083142884541172563062320898275826879883743523364775057235460842648758737969823804929635920941354941020301651467289925734218805493322407870056702450819157550583178169939778372392712252909027680558498606117483418186267021460073139667227721090101478328656062803961579687233937602313925649347625795215075219884822000375201127687124553018225035348442039261800830155525052815508994324563653113588987046414218064402979429878049540500924950955714959250382987422953603336014929220446168445992234352058136937452028539246371795539779181427035701598188898784521928901365174745403648820667776273608537161352837799871555042409753854989654674662254590759099538437152838168180073887989779384865702145201208264321239496256533927563080634628127254646495657329096503879576533077741045444143787876910555017721981182168079339587396185320620544866875645760291966091469052836964033399755289904897624157302525430593182529139024098596444975031156986041810308824499967846418157855280903125775048572208396767381155245489509376304550538601885658001169640767190509888797295114637714573768613534038101265941846863013474805336628409824002397853447275863847395682219222364600621053611045963886916795652406605584050590824536658135117877467562645229073755040646457753704400873877059862767917477286985920812231165706073956468245716751149525204749568595123240607810320512646627692594972233969302425433347039811974949751434611780547201293928528114261159443745818768863233165314956649768139102493363402407890412021859323755832982733073659521084814368129714162511388431385484764862194238924361725895032740950787661879049695087298472961882553570919771480901587957986286328496233011168654306212045788018446606362297082933952240512210096065459301366903577745185684648677871986732109675006310880622613204128730910122483094656733767479951940725999211312787258247213208735515322939710740516287620206533302347839982487920537056539577219187278906396302205804924869234751114539418962129207209423205130349843475563846479909696016540779226266977091230744251002123392018676181857869722366006735716088255762621899113875732643079070991501424223024910576665140845739553465199996499496947622279965953795360046171485917014397763998246199957697302839172920330409570726745948213193805462945722676190183296949547600897673696821834184604514984262082614417179367073380245798813638620916256474104931010031190684655955286667090928621093589296991959616011439157454489070469407391559050740752418287168718635224542197412725885315530392117210173050156465885561228489198143568669462923929906320476483212400102615113431183751776723169522159719709181562175668385017818797258250226667227434320041746135492306056121496175014764934725947095639040006960077690837217860648280200956658447444438325630584717831376965228958375070437292231083069887697540312720777801334472217831194574257432990064536915050972159726365555197704749933952674839655637657732400941986453922271539589497013532375678413663835975100343254827347162527915986629433344145092709828923072038861524436148207013522513760600689696550562320009491311796373055390144454176169091465234522687660076315445822557707540896828845387297520718118417305082835532725473992818777467253151749558142595701730235876830775315215213288748297875770280428375682747501415236014372992940249605050126528791075628203253752191274455306426966881440436358523765655779801555779419469426709199716659591315684538532500860360501456731675229475541269711023560881212029948331776889342137870569271580503779406346272003529031221809360783329389051313465893020903728533697751460948308790633042111508450144913061978830768742870473460949893809397758642827321980410317416660075667498808910631983169671702509968804209199355663869871017714818658473357948094442450148655034551967771846115233354032089701619148673190351692666991518788159519697574071024622339634436982697724823711380639600314313527385731072674313660117196414928604897833202001734666498019531140626873322976021723352599608815705005195437329914313097639269290813090445639695533578710373373140456387938286141065952010565965459240741932276851632954812087398954392318071590770503481844047147933950500259083473730073273518558308481418066224662844851241023422764202906790633073553974436728393376616161112265773500309137435867569450517857437213264655919635261790615209853092619144288958644613738188113349478165478475041002931651083869320252654938168043579479717573602054893978268410644343589562241314494588492392323995845576414175214424919659154072537589314120924807894945209006743905033451710476560134064327719691343825334756597491219571501065704250249652819267168462801694937176409766837048448823453108844371601840198459354583414468125433998656615628505481000370419846901526594573605895485698219632074674740562472937618592016101393721278349566544146235521040776947263164945674319560000118384135672960691672015533840696479465106188997449630518723384456094590071979812151964689373337677984057831238011179854791808925810625102897566822004175042495552365963223943620420539875446551080075883096334641595604725845966849892867784029975596144377749889870676350068900366416023500870220302066614988307468422052912358264956603113909783504813985637361952970141543693114842383482684872452873956669326576941918783564072373541795665177691096479091210664508685737427094443979682023229632608823074253686831193559531648513934947584173505173207762264377843450075836241337142755770699271351044317818178633890799276268266696262344918459591980705490075555736059295952246628707633271066479207438546966873842265135192697923122688667364031816748921751404208788455672329559664971507314236661949709165897364866111190333836782000734322307987647828637316696180404629051220253282054440041325117536303340976564422091836509314938652431139843598124597464994343959656566061900111066027610714120145718578731704594208001161677033034285921352768741036838652894872325227345438110232181418294145110021946465350016447180976076613271576648948782575783425452902336631114492478744004852572659054561051571924585503714366685201912357348079278363309757925714421889998670872156255987452508975813803908898663225418280901422900341405963056375193122409203873611113076253440524115515780891923718525467819646896185286715566835215706900895783921959388177208609645525391188108315878063557864843506693216682190937579721226696430583946731525072757816770762644706460207369655356006910259224378301292247288721432830375355908087811561023128669713562596091977073870216757902242167323518256516461833667002533938458944414590569242243903797689802890411683939007152525459747350278073453643162259142318290410525613064708666744270719001451243820343162068825737115946223611335548870912151448879183777637443342465393567677259990374904921508691061471128433405239763465264063179684818588024642544158733705016737465709435575634526892541693087389984580728175197871153178840650829343038396877025250533031597062940843607564151614742123400618138836937156100043224006413576545820289090824098076751635698895179228713930988537564631636417914943104135403392106333610417530564160571256489915233676434065832281969365987751152276639270897247008896062761993936968253053649826981347508148527888836485860017984057851160936145322549891048665745579522245578244327862317284365736273574807334854696773866536835282782991915435120970796351137983066215549206915202072463939800835803250202836916431273916133150656522682066167044958920807772958273866221130165815698830927973933306717556720089902264903323097441940501643484062923109481621770893860212944720476616169512440212252993319681238482054162699863726047956068223525782549245009295784799211463769553350712359017439266589368727188730087444612979615110255715765455075846458860526583976747397740297125149907535980994894425602764552411483689384099966788468893658307364921293505013810734960935885684636531876537995142447675194998862531502109463224310634219781405554452962267773978272714068841678105402039985800809164120352231298577429223256228938987317901047176860598814335162687862755493803165163957670289740242643624400896856428583584082940656791503559756093718306936898759410755217312143107558518597321117974096636825940764029246806598153071720824140109002702295366149458904113859530280709844711712978901332183728334804040217638995737199498653648942897439361814889156489283191638196683547115056758961412822707488142133164066549823557923288447085293472903866563663198573169078282985203029080395933431764700298432454325011322606763070317870487497104204312530141876444977687632022893746449479862474532729768674162420640452675835024863580569665075948149836489682782580525265175139745369470884172423424219045503246033918698418432109749992445204030404147724207127348467440830439330395229667070107778221166659624162705285501934252413272777384030951636088621572572874539825088030579893066272335589862398572939682707124640280335747525341927942869398415715599259198936916846328993144539190649430185402822395181694671202437292796443893937729809337578354400279926804576544470696683185954814408552465568098464351042470866565236487610940673912120108313142292915709653419883382357240566372477368375131762504430834102157622719333818616500421209264358687637091709662623546426437456170026600154852253130281840141103257378858934958117968677347602028945818417894163241028726052040462818206844213658416900797209495491202155444566732056582147412445915975808577654169129806235049102420638831972026610138761379373872979171145363070207634782920662940721178252709708307528671796398186046604808347407241679065869280712434883355959566243772102559232246667334484098620609390620830398473059264515266435725282044868154743115859393742477167580653584256464033960408148295601726610180028288084801562616994334883987512497326114801104555052469659575894318925464722275475578033849716203581688473597934579061996733028393964725388478895903823704756027111407888952870736757467142862691950778542725376716148022673742557028381470201155383205290626056707449728082599546934633156510842096412036885258038970733798438856141948017580099184288823981096845562126634809826632187611500852619586513531552063420336835028240358169714614248026804599555907856129430434964796243039288038447787205054847012242673973822666599932973451700371084348805149216240584569883654925145067611790521937343882416731407922526403822602002980109729232817811409640211940924067699683285836228084597197440386983777574926268930375774654302642641232226969255050894902254506644192320422776547415887840988853194920172871906508052832604763284004690412698114238340169363435403237293675166737821803569738209918266795881436474208724172445898036998117566552063382425140217095133430956401500187796471393170001420111839311003569494414852320128911721601532783301326164179862671599224670654908812769137969482991203370520594552618383302895778158529725345339320753514229894708971769614760638892476687861439782975566636776451786042745127974900591129719085930022254508480835332390287519255024984744507838191015701535747015843511649116325169286772619531306079412605213757405889914857625847943858663646417495535111728503284368023940919240376099082163373155037352961262532563966704331035927288606356682838763682362406852867716461348041715047800937959349192744735542575784032289022076054670997210931356217820283021488694487082403592503791086902596893945585741713888740065395343239374477898283801066793109346161180549192740232884330481750126899083570856268502929325709509602894955611172838473230736454470579220921700237813187120383613321917685920143453936964276166537720577901374555375771213212478394766263468669090734611773227678498490703951954640947659172070149348896694497235044441057653745739276906269358360881935659339267955772888028819098862166878969808540256190305543447204152743188873917321572821430120092250040848996762281764472492367192331778815903707702261082754349467337926114449032753347759408535352145107309950292466219075669725047041901192521886421271298116661328873815117016445404864731175088709349107511265144246842304909518060079173891993522641873873853728038756753954360134622468783778262042589958085766993013954696335529460490515334265995212541944763183154057984024602788653721062588628024736638009796794639338418815392864555458707371750925307601192830377695689948130835891776492919538038378415121315829716937050033014389310527786315417901415562893386926803957439619163616226170199223768014740113909877538056819794298375253123414375785809878830849924553053568757664119693623148027801292895680110853118486113751637118254826970959251383504947722481131408118550320568676173774315489316036761506392573389095367686716259999209684781229397794199454837170970565083185981555703755220093793104476573628296390864505759692840196335394605523522741220117088362285046665834645551965085539288571051334046693783658863050958824391737341940885192684566321274093542530427845007516113832930955407927686118676077194751874728525154752379050390460006196438847348792634030249936219480139720744875154316325045764723511212283094869403983559779454253790147509832032954223171967746115971409265375646156944827986449893482282531427212883292271403992064339369951507368856104111537934903701290451867244969866844933679337784346488708252514405124126754518920703156414818308629861505208750584951950984098015676074653690556392761356676064315019597903303403946179933959745182589506788109610163120161781763251016964186152946618971503665886841244166099470114095370740566004860557185785416460411675691884669879495073615048246701836401672592881350064661436111316224752996513972852844778623036106838380249652925728570537133960518032459070575340386551535647926711306988845805994745995708826395597369627702226443603242939642231219840432278340598033892670151347666284285746418195206429101233307133451518262367783133458529865138494452715015684098933380341437297158705474183613537669003383583797791269455325073604860952151897442071498505219452753443901990802145267592630817194546329181918401396136796935219102644373253457745188703372561989716931752280036226318472057741725611194929926800481855994264226840935635392849616517707069789458965077842195341732113097241103719996428454585451220242239405838607334877359662377402189573035989500082143002207651864952380636910123751860643334300513448124206934768844357933730990497826475875453949074889375111162399563103297196911966715102565246006582247586546036324162371668244104735237734265532460334789586959433451021273477723072084403942446525725259152049713976351931085261635067920597456549953065633803095887309590964580771119994520795132864703552088142206089388273788499913173451255314767117833218304927393840932436980922747844677742302124673970855694658127493554259042231522183046965062272608419717380988424994877132684937266589876513988618493946473959720647578485212948432293724653624988887686173139874496884555649525464844374532483156074195440321892792686994541349931174354885040399938071394037214865860526936489285497941563423404512150801342878114024941417679164774149735935721099294982529394205304272840629667380350404965880164978414809618662679188160835392097068466402763315369740966415042477811033402761261929542254753099374877038773617369464905903163837265896325352754860933086848979348665508907461183309715576993811952201465975255981779350363951412422049432350337383753276576893498801924614710544588841688467452795614087465071941362591300194969597095737744666498431965063946700609007831121549332105234484858704704285225685502627540014170139982065755633433590607130790255476609455711764557922661508838734679301080141929390054224660584530626576461408640965062954718082872519159954806003720136303227375399760366302649391291140570099740458809197499559321291601684345476951062430541029870959192738307883596391539146983460569556307531514262994214159351947584200118170751657189978166932263636013116104912906219030148708748891132976289272962104647969360295290853238211920077773666475144315418051109020933827003380950413430898507458220669710158887392175839665812899784323887287648849028992176813306934078517632060715604664660056620003383456832683498047803471405083879597168982427113213369820364501944898041529835909738347251351532721998240399982051678507366685550759743217540316387140658849301463042910704112685385130478290593796886941490490708885860453741254239750960498145025617858955121077614724743261916359492126556720682162975105233826488530399557060026058946011750474777432923097576837458891145865369053641504773126359326161530805621726237911290770673786392056024914262270721593653453204212949677298404384872405955707848919792443683632425980319898769758804655100966076863140832948794499708129827508761818563878779383557267862443540935076301733191185237916423159648623493884838455364020739043738137587023142494405686362532726846797425101445562139760746330366569874439142299572756968541132274905396873474966506537057019391847183031351797018620939980472871978539415237135891184729395400859566260007835070013146162108651778693334901522956859829012532325206962509117968282408449328846160850445183828034026762490263710654376503840893102891784006895994663655836124027188070459468916516798009763206576917355151329623836594726580901020288720457343082380592589042217220543839994794772517306831866642382706697911489420668446866096561239175971002999961395459764433460733550071697931944676476675836937229569820891938689126735370618021023025306175851010443463221806650605761279957934052064397463618888012182597546865731133263352635174421249317615330962853469736447296139202187469509186858780546339052086916005176826592160734059011910219085559523988393008143256212606741236362631091835554970010162792692042494629787240150924040192747190028066401690848486860716810213085465589295531245987402675984057360297328521365682136940500739340359114376468192206555411326486427894057496887743951470140194329113813827949053036677893245972243122181567483165935877541097004072621267487994875993055959989020899815155737038793732262159510315311847592025413912924546375500966366922469451964986225677951915684053254572014943853023704060951854737286284053847563314717751729611572887219125295506255617379645710671033183197142426166992183113723697010007100612604900175081146916093394317127844304289202098542629204979793018147766201599984641825959970984878029273796892569442164590916009334475095498888345974710198415585503096299165796017136638955288920594112649446332671848907741218681438421578987776553969143733007830883980370310140081564376418063614208551445654322493419913591404652269003841215021877802560969996693568634372712242607308595721766678645678618807107177221014158031535929260470408679207496936758264647312423871480782896506415626979815111100840184670615499096413528542489490929424993554578257578787413325826659950490206695315323187503015397022160607809072642181646079914943943986030972612542008480710347503266661408247749953620577278569412502337965082328526047175556133201583327221570626508438755807652961476960737632176158839064457892251815872429000940056476047901290453790623223288706872608669137233543142084275919328873266423621164435692392323144951285652111922836145028288063965000096234502121878108820902578694676685974837673424136467004827252210292935578705552595684832421087999409351767433950965519202314080876769110243126435234831742680711258466995298470037409741053195959984932888306167245536440888618160754166198247934015691645842148308090815552376441960343656611606486932752871706385621886100363931343166018487895905278474329975596413256522264487180083856046089288372001600734831302528625028484258301169701174747567132331862670458582475165382773989969283401088449453849978036316513134976096697727468168487411483177552243244651021246365728300378705100705360343465210837655379737235559953568212696740526531728759649649984170586597057265882669842332105496808612544394767176959269766985827082245747199626210266889094857435901787175947839438848081800597014876500841563561283784769410308661113542745798439390484602122531656777825828622751320078407061278612982165885731638246170144090321876520965922532658001932304203940615120670931057739514660779437504590923953361135226443560812724749166996114704203727561584682349536815705135084520365132874428313468742759648161384767850941927890567500988674516152935029821216192891043593900465272195789770512361414929862156378163977383618383017730816386029086776412789552781846874065194886745615588140925289518037931213463878013076213086781217619440038640822536994496178015577537215353226396257624421287412499134979764284990020229059696294651967915878753079627231052522932812018125165987632685292925779386659649910447881735351268257783415921258695520873125100601827538737225969330537886780630012659271409332161336459052899470933565796257037543184162297895581466982806269124846132774777029331818606907337733523106020612869103126089769459183548084502065782194243815428068412031231178621773140763824021373843760684237070397164727057796138910856753444737063626625883647155666606732714143585861171769405278935595849399806333347520357450762107102221057076248718004457719888502495885818208963629819770563687761314374144788641774355132186175882586259542634646666248507054102647600161103456481325073091302094779973595199898667266655433475494768115364660028253539081751959450067953760708073880833179258446611705722525899459343616519742670529353063166576751011782299296417817544710688978142397066853106843160482930350659862613470314325760549573360199744046505241293852856775911576681157185064340640804275182780707382467975810134232712506491141311083097362776360683366914629127817348186823221828567665837187072826676379505319040961766664384899285427309225988646955087286496075284056291063348195762146014048460430527194990379249322405584103682569081820817804130807576859426611889163268254170483952878567046412122262886703098904075089311969720273232912093567185311690180092762394414741269241275126669840831652214875604463955672240326139379816790619361461633570140390897261138507320070971366607828324612402415753368483987984577745533611897661308520872768514254947528449822995306682255689332851109445321047835073107626303452600540511499877847020185712668372137001931988409729481429719810619543959625873021787219083131531597393063389803585019570194209335723374203196094181445904002444778992751564434930060842324780059725161921570522979838728268367694665193160363014804958224667529208716531718828276641408474425658359496027417481861654518735303824814844459074138204479581117492065708659433028460508800328757980125053906110429689438965052984277381139583905113364781787214241647070369959985159588014210828043566143024991918319150864850257326712900483124047572994906169707310309078511672947391815568889599161531491747100546343380451232565421287575465703271031532556774087832317993628142362394176967954563491403851558728293989382783295092106262018959967836963795604705574986321521331762489247555579004424742461681980625426867512744224393370435881990288672501748910930786751216766411231978514161667215578607105517434513725969983027950396773368256239312445071635992166307989693619755818897909025183838285577041535997787380133312713547473994505232820750890801242866721902645029760090628448938785921436447345425582194442632523997023143134502635329612897643711609078134835701551639525009968841089564980420450318875768889140849974793208495189265373462242643475987828486072924108661540023664344628186772683146750803294270360714432982834328334659313012375900127178047136672728452355868356506010981648799075358171557277222062102383598833850223597768584260345657388649202898553439276713791637164846619023079903578877671656381460272157147121046268940443759653400982264603866147804823909034414086410123040868311715237302694562622280232255822859742506618453249666634054833062254218164794090791566520907091092184724693445266798558426004726704374166252398391332970400170251768503021167548496021154115369478371057761468434948137783943479358844368392410974477916884935044166508425818059558931737142200243679316861110743305474272185906933117052455362768027168690820175483861073574156971365054134266387461093697073388350787558316868026719855733389929345586532375022712340210008183038142474022566081362643778084022459324218378640897768767291203104971449955489907260951375066433604067135707839983859511418804392663486913087765076756293574536158019575788868460480772953997370537247473765664838280661072320608082150948758445233319612272080604939084956076361305553813582869041465372380167854654608931899407416216183000361112359359634106046069335972646080936250419237787080340425155782196031681110765584427427975633394671835067657661460818429523627333452762877190453602925030544209829413112197360903477102916230986255172283901808461926381068345798789030008647401012232582001213088559748613053228391555813382970328397003862542543909221864363085456767179340271757971805140059454545797625788760730574177506592159017075974291160428410352079664430101489331186649311526143238884168802049791322209184057179484677455750694928876786105015406311399976431970859148817584842590444936610396438736237496068419431265230759034334125360198108876077226545204580366284585867066944694374940478307566011549853008887835547241773205772518002637521373291737328220399322201702022910381118759666386589172960489550121287062093093032208327238894306115160310066339465620056021315123670212568911144958445280899366169869384389418195575524420789369745630083383224224028541404613775100995858172663531683156599116070485523616620374175168271191818122156019088613880449066156329907878257181548192901809580688502923970196627151149141431375514807706783302696490472793452137512461142301097845106884849184378472621984329366533220790263096275449108976823859549642017605618464651591137896262682754957652792350491470408419590489105907967231527981143571809262992435498721771082534475175519682456924397080132755058366976453258838922810053137787717925867020114027971064829994501123699256633713073839169300691700500249785504371609340933982827759480328772958027120920161473649627371446365807801712402717102823948371199893103956698893757637327219515430846698308948209599188737677322256427757039779352763976286436122329835815106047017310861146669312156840923548127580007884216517679199318538865196963189272894906839654458862166166273200128234648055570596636136532114643911960192967317072520158059934655509486211486821317877877117124444716882195862516303228624556399767990767499741355353340455402627790926622539504134179471256059482962215082111702752603938773735043732055680617380729458190495311412157939513181834373708105574005065350426083314785656098885705130589521908271551818449317941637044431538143155535648034270165142966785627551921923086756131535584113207933754828681095174552774801374149507178241491065112068342366224384298088517285000795769980116121545033352135285469874203505598989548207687369031486891303583498726153030590830477099292095740143439040076102797615998589111338550079144571790640580785099546066660699663779053356648721530416643019226118341514968519944078163787847895805556964718598517664681309366236813680115550344528670653748585639280945902021277404491092039093889203323860969595281936575107437415477289603917522319985302258996734750024471017151563271987845902674144912626895602224355056814045131947792323433098653829023066809984508504122235702558170294115877488772676776072717447903982888671640089919053595497551272809242945454446268178351782263719684520030019592710536162237092840075570184562320201129196155655563600615858338946288108447806398075542351483157536431013126154911560952436106031259998345051801363102435534471523133911063306044804709533691742527129076345505815034813777973840872684282367650987195740468018919413268805969871891968831635097053110745443704007009632693481710767981541906717506106589650193451174383691304486631985178280813874685803902715764129257074274654853453656890158350156106490090705325963908818353857270093715941684612547895457493319483845480382038585088612389983906369380536878543343586263050348374385708942269884761531156466262321835049199501372171361007813542328500341399513170087072125282854698478596546245043237142941006937265840868129619557569126887140428350323598015845120917428211355385702474492870722043579805235309740416087033566164665752711847991907046636155475855551352236361726639710550020649009279689957923820737812958321921152790717006634597168155711439682217261317078698371553746686962896518756593696980968225156647987617107599898087140881028120410420592338279685891921064330445768235041742823884387070968319592041971160453788609551596976457641457920644018344415054437002432715939944026339164286570284967456231971379298301577485156302755001935591248857456019449412605096841711206026404860350790378909878613622470993802836321048157492350541311389537961039771600122677491594691418976206052913590400791099139222276488424034850214494044530649342918769160006141651244877370852998732594001050290867632579312091324878972780030822887029403445662918281399523644756735188262716102154246497452782354249985293430078838836414431468311639371172012595981663387454244590364503632560176348760379220519414926847726095614683945954291205762992657896492726245011670775105055896041219479780618386064084671738476308086175682193291252607364013223843399636752021175306994722932844602791766846193279814972712340024077980187165490681894447356571448085144321830357522242059852175530801632305716991186250443147654695551032652645352560002146378724578974401286149996641347767118806907025344339313626417043774406795513208153575506174386107219653920435731273948721421049010495268847335794913088497450508000393440286469279611962550597735860233078429637757146940490356306668813192950873093688132930541416819478786765711814672337665899030704985692340320106268924179359730511868227897582791823355051848530840335327077631070363367900373693139456999611433624945587464007240560347914863089079278982495532109699937148676986290721478132424365755856880014958171921781611949481032034928224722216201489648064577044884249998040822259572137158041842819053714150022399135881677863030496226463581472083329861473822766309433150614230825014427883530019694767471749866161414072424583233862204978105547981659327196012679539319931699415748940763269038497023801348960179529683355864127696343830180247296584209791314594132766423679775324648592773322425649178826103645299802267851754244098709147261727905727519388698432501639569483959760951883547131271384739051609863556008194611640829709192010818113386579804380672634409304928291761081816850771514023569025605252492271650359951737828623387465379721498190366668825845440892763533934204400462099341232954936083700474130315214289645221611655141927064909194387976612277763014830594295345718179636706986469863758221087339449919412948342232958820119833728568781293946759096293599049013339642684150675578697598562875992077771520124829874327831713456700477520981861939486234136590104525469436088585908156674911396783220512510824140417684559626555891260872216481351678295901706193329205696098795835660171767144091903067863277310371538003416463422567550845119385758822558495561932328232870694652416681479169394535882735564603816369872304615715437571328065384037636786900097797078053528606735805029022585586791301705860182868387202451528616755678482057486292998938970308790038061700715915508079666532715337844033027753018673747428254444485701522070216156965296769349914143282575928894125686693524690769089517163383248888637115393421306131709375384872719669737583611908654641200763632454907529852047521310903349718622670285605052701442461015075344910690375039609417122988025638914643636628823396581660653587862262567616295117527069061574528945966918792611498596384120895924103089728662059891510219041850798957406620801960138910338264265381199987277700655649446842113364702019290637579558060126216583071678606937293117415492930887274981815980538603919836111972505714666458002603273446426766985751901648713704287862851241029605114426059969286650304995164494564961533630675983037047911021737936822942294020173082127602665870200387870834217479523655866142093133525588802502396524118858829884385694167330938170418079280497937453768564217396703589329262251133301444640184558008766403414200239617787973348215375815161196197993742714777441069036115789935818110171538177722300952798612939066484406917491154174909997968090684778937206011250649709314277111300057756666375936114117425378729961253090813615417293049676513711745949053717355202605897516643819742387860847857788664556614072889884085701619246849886510176464480263038660549302336856791348465915190104256261887994346547402626621216907350912278766769168640401800955404438532708543431434403369947687129591187330129276149474063573858957998638661319183151400711106734462091640219561306368834987362862583748701513533494349892822979026379990931565086160233066632175775943835724293328510644864785421621609021911700224687392902572855380261631968020437181019005216339097579027136025791401485895418460479032748902149836533141645979004698056021347204393851228428861207798583652148031374691137289601455534898121168279963777289901940514956833309456597698259772909109639007702478716180022084075307585619661403914738868120112953378341938872518674279189236699817913484217246685362974375015347994908270788154020942539284448575280847394546224964104275143293629701443103660448366737459482900353286055581366741627408504836108595895790762306822759837639490934595511032223347285248642088682303543632425067167802211324210401382369384384826451822083199450333147794771054810782210514711895141278858328663291177203456121544739912976783131601806893032042828703972481986272725767885976999857441948866540631372450859662508651652418378397312324574000955144288878006967802417545314653476459739513842743348570281427546339438210290946788236033743760971496162849691603131397085359610072069994582854060614956803614282028702541241805677028467293686868235730394193495746608922108690129863614896529646593812000156246830915454834060632350581458836487806637166087892544670432318045998237702016013739210131554356134454098986607985808071590293173346297036276282717918624810952091213393281923362907639739808832312908069418742639594863197604710356010556257102818306742184236459867940594438475957991691876898127905044843574060696323796753638382094994662794527590041385363101872762186713072316238789655226805174129254001581486270525116380672254806977095240866549466373215115331786612228905541884993265601562759954320108083334108767258082292341328285428063559004289938965615822256792397086819150509531012344529803978743015065020074893182412581205830710643424469595664646262711874093971489416750795260000805873015189356245720343365043477402989247084555800977492540215141137502741471499180989940123544795631291843010063564361947451422914413847114093889025874497655651254127309243270125741549536950195621580581345932886578068943426102562340285442706020957151340370064793927808443687144476257971569490015818361207172513095884908685762697976793932947654964007778808967327565280993384496290870416591900563218092566854510423597388900737725311091241292391332767783061650569838831620166906287475627782192924392024212020086914202126937870138156330990054795783122521264695714820495956255297243626371928065196408088903699043894913657145526607240823147795915534424705738515206974656192301556531877633310359539921289529870693728848554475576356623255048470930498564154851761167815984965091332041999657250434705235728298019002633691956460895532842125714452543567767514861869570193299379992039066302253678566077965045524313627023966267436108396982869783133229688768926234930068922803742232008235255858088467488527071995764442925896799803992029472240889452002434040888926838582046917537808408984095054294930840459505800086247812944887442364449053703440666726908311138082715342168791023404692237946036352936774459741284772793825210796533165152977858706350248139673220862823106841801447553677171865766831817317940621439612644218414193331563394885801864318136091414620891120321753232804604559154728570271202892810167509171311678557778176163614980095057570728260998706926227977921067259411020972218052191184233210378561551079313189674270178264880258705564590963260723380836613238222194360125667912337298295930049684593507830540769031609568230637428539011608201121194973188454765730019460080004271997711875526586924253697233728682367646350014958583002071095922837290799305317973837562236439634072694260522246486144224320658200298995941023760690429912347032506886202905649601153328731069169206198251924072640487653503058291845299149927489388972891567732801570734678271258992347074566928506130440217317354135243776206485955102250526672473282968677777717876672310581211542300191331032221151830431079860272694470088640452861882359237669722251022016541000952759450311495928321330527962674167280773232850460598995760053725134078873329509593815937751339199790064860419894947553328899223703843523681320771591614949137756812895364168617907333995307082298076777154259891036741043123521297707410160051118587158339601650329130080581957221555121280206623863200220774073729016427027310417983207897623763065843812934767344930960160016140565429861489824673948590019207483405972352131123697760359255899183908062573599421749927123042102301985641344111016374115580337829511259550711776782743717052400442599812615540176616023003623887282383633477517438868810669760600069894119082556542530926713869930569943946946715887136203519127231214012753918866335652205872552101188775188691451526811712224106129981079601338825012402272174634811916427357260349777239560003230108291725297459702319740817006619838741397706866457154560575413039595085747157522378230674819592021711446666103517565001854295142513493558620352066311982217571543918629344318773193503548522777953560433666193191709311378171034239630167463391772319080185838190952089167801492167300827365868680980660945959174018731721998946719360165901436452953023302412611427556313016947569225771469735497015605461622139500226860725652123353802800436762938827786699307215656979599678933477896470582105132999978659394489683289822045896270432081712988786538994262667884153001971284632617561837262300977780086553145981372657154221018595247182535364509927350541839772226369044070043328592152812387133570888378773145439020792402120359261433177200178853127204242683220469525193447313448514458176597348418341945646714688960851585056237533449138728091141711004448096167558434640238519719792242820308888149607475424293060437183858093134147575079625031581751815498367472256277883839775799898197360002668514956257573650173060696947238826465010510095358596188665620010730980667833853987062989725959233919183807405410484923272840521564275561787025066785841898131294552494753528212212596657211699797800647004910257935676061075360708658970568121544682375757936192223252671315979140326313658286076382703761823938738910310618183572736636434237361947605868580939884802510816790283699224055651094417984773566649765959717198932295607405051875693653332342148472499711130051241584480828548442678231248492969519006695595935468289645929455245214247505115147416775261846450497314575024476478272353394768030736518882158038688657384806346251603422831021321191968140178426906238334110851703753458021639165647382710923098295474325882333447015263254731704976811614213532573375195469134592859781990902141470490568139349378043473169251482367483435702717297670061428174197440912386632318967458952544642009767103551327450246170427467031335559911572269099832377556431016382671136927810537930420962984086513588609438916063427650875525342577793664923207316392649979589292839920791167261013423375756979791780831980317505068268397821026340062601674510953330031713380251034643543453982427589998817201009013084711108732039291675698162255079765171466540739284880599909515868830956732090421936715770490082086340376257132295904709102157231901481286219886265769303547764703533957082735860745073083295047738990192306971145595334591949106081737903121760232988997447422023150655346337819369261960841544484467885233729151615989625357810360199698401020647319473886618518333446692200205270570021582430410878578836873514328260991396637280762906521676364796287975888674010669080132038347066325858517236542324762114691579654957189691601468084475403235616115639646473016903070620275121299561381778277958583319798213157021885467782307120731147135144171738432855774023216862823858576365085400819264176013661063041472411945283801756581136144105372593390031673698043289381051896755619169334518007496690736962979114695291558467514300694510665734928676758103970493040844957310239006863893752696446871796448558689475519623098880436780476734642880343316260318840063138398408025878201526257810270415954519815999759798507252608101209529549033888197375259401077171264074575886104712578737379987049965534148506602005897138782004080161757666153687957524669189128294701652146197793576141159918763513625756037159978486674048861757711554021564457297738429050095874654943267129150729812570383917378391027500395386713158837866485062510537973594249157507545319292026503904516416472443428608735036573333024360664954005775458932997154883141389051532865884511429507706039717602548559748716985584775031850931313160971114768459783900174322056663834666051001029417578826043722915798030213881075597372574888548195266034088572949541952839746729249183828190100139706314234704933055012113294880420640524049063523153610658435470948748567349032506161658698692335671507248527448764830478555959323980707519010363801125328963121758294258946692628310518655243404078844541845356689360608425451995260546336214599144186045347800203374108249544524780854670474043745761863618120522858492546317784235676063682985807241061660114539827360572946197150781432105885151236135091887464696076504023809481652304893511297721642046423185040606142124105388301163497637267279635862497340770929819091552212962531356966976052639793798765343033951230130706380387676999624109735301520403645782637580301243662944727417620897973454397245226042891672851054567343798806383994832887254383723209829116130443254049547355068636508445880339638034976442265881398972254836814142259768975039941776094791948999345000203829485605040166823552510411326578699900946036932455905557551780953255500637776240238451725479606456434288379041252770261987411865701481485971184734013176132377392078299590614045310197244544935202364522139967473478410701932037925475838723688334740359968934220799632034725780572507490077099448233463249099758175143750739610466381554808361679957659952525142209012500578406640508847581977215687418044827843364542606303397956603461718119474090914702555707668425503398792347617523102789068732366615593878204825645186654988193116566959454851542244832348626130655906210491567428015657786916871822525169129154430946137451994760891707150621711934396772395134353684234378002384953693325037497546756173894739947122919600923689664734106504954528059717551676737681253027331167795355738366417189791996420420878746407875857524297607338612668273164082230542899574896907802821851985607609558444770293395219787261680649219483662095953721598221788353060709387494236935533812124386091408966879938962927505310228389372887389727254129434808356408111279465286062212636933454219904053902795743804512681719359496108310926381700841539458889447578742334264381026569400372011111683332306588493859146454766401540413327335078860479478243795063091139683151314741457493178101134799963310171243169935724678723447515396619160104010223084888436631483819737803427466333790313003241637922393295231212774232291566796528076495849096177211400725393567725464398428223784895395656989722142615969621638030189100310853509616511099815142225351840751107957402181990325083602311469124587408436968375630567133367015893035278819850301481256630065751368642682619792538617529973240297949400679103091676878841790556648921299185451522204970988693643409597011402159156654639903227655161782780863785461647716244586790242628386319432013680685907277812823971874811997715450483790701318620825180813320978943023172348251670336709293514448734152544828925292339687899424965663057866899788757867648485852707607416304882524781703785486322764663036667708583224734225431614372340733511463083414054731709178421964813495637902605906259303158923158606532130818518915707443520902763549035782111340307882074453963936925071572134978239267170648637511691932189335471093282028132706656942472964065485033491389025089958069615831501567459633586123030541178085428357473817333873991728641751402002448882329647581055138524427270165160127960179845726498414527286893206717070427683400049645627631204726536893643322373866377961093209459222036316061230826394651387161773278517265694844560791092175215369900184156131294755577429965438041959891809484546035559284325039348959471252459059675320028627280874132645015530264375379156565669341224533283613327484963743564937213204038379430349090821787719177086041541376326741512472452940068626361488544910204095852002787560434642405199470924436307523485029569601511955167737425087473356606530322154449038975636526284735992794736059296823219705510662560746605398920579679391920245880008733019567424404124133781169326675881613510511885296615935235276270096122334143618259167987763172833232699205756995881446897976776178693267940954922850012617273287689892304368239395159030642021739463202581953979968203359352963614836287047493153479008235001211916697249224706234659420694553485239963029273254643727156865067819903507199772775512985351591706909898123634250886930299376418596829412260114482178189299100476743606868103403196911743726410295320364658600942984895274107095992883470950136211211915777239090246659525221901105468396404316442985485494775939176665847889019839121802437323329304420964725596362357944245013418097113087655280964004888226067669789174565901241860336532054024859899074555965173377384644197700111275368456512574311704016137169834085498283040745804690208804836608641801882715657331220431345921959642731495605739384870122003866589792819979697103589527759234559868506655889509306158162588111215709819967495779185046743032888818849300654475476384260440106510971507522442143156212478020043840254151516714519403626515561288106888459395603376294439181782989434157921857394991185185539320356388380807130852544399250976671409023536868106845280798741386671663115958850505761954217762513901956402142479196223059882036898065046210424423975264623640271564324417820836672336040858090013555669950335845921601506649141472003374347613056637121512118587441023279904090067148755407844576243802584326855951936414451107004441965647576054356071274901054186456527826887751592396550591726271168938209080222837753742231603067819466769361934000804201253832378372435794439333292562538295494064388738703716453837525003099023800916742459978482942518132438088355414937444168579234714341703566906518637749127474506953528920668828658215293118526251749818598069829120345828452037436485172900723757455771420029977137017171499499959320250168571005166709801012854903487378972072588273428495911825959902431710194169462531476035291048676039759930594904430955710030589593084272222989886986552083364213592268267188627099476843126409788249081309366277872759406186070312509233047318242244391161966673875346026890290310811401746413779445446685341374987234352422098487472749243893097106156024910883123385601486669585961706047356206762455744115725332150220364361418188008430963092510952433967133840533312544295871069239618869267887598403008318664633829580108350282136735254176774029262928352032827804149226932175954674177275465068423884597265105638963828052995549744585869253181411236247657690683543796260432503064758505431921082351735906948882576187007820996855674372969993690171562743620416485401731944771848481059905632627045341363947610941381622980111468861170736869133083775885188099508674796337462774805590739068568568327583456272756354100763098755851251972305386993404515010672272759830370466639252795404468305723574191496103854550352746914269236724649330798828999102486853030752604413315376325097492927463667391919811914466453005551787503415236253928730310851436056230553415441658104875513298069418587326576665481969852927772398734556683584881174656783732550026721403879616214309936299240891292450381291855291170266737112946144081484659948570124583346047349859140840957887750002941673146811216600918636530534138193115322744182916122750157359109540058824576825902177062788355248536674893336971649458921411689584760510472508244585563208729603270802296650529221263077845633887325509909433526636471853347826138838141179182665240112985619034806324013645373672040235523702097854006507237161093733704042074588458230968187784109275234330556331205938716101773850094634288058359766631281804324287701298737960143078987628822863655162962798747062456808727730103453517992500405945156504234927860279123068931125003952195090616477871085131346655830187448009277200962021920734086903357917520198917227356135671631077692327837868770332326649672636144810146339748476189483847262440124926020541997838342723442800411544499338483077119407243740521144783234599160138558450064420760722266742317016047217199524913610976593674246865651275300772325287731567773558046924287655738925574218045181880011148260943223642769537921847464646431685829493311620498446266822842040190889766974969509477026653377115516543820436206055306274478742649503569936223425875347621905209247937164385449855607876164773911180335568217325042056684925917084642976843382326046330373000335110424973834409528107838339050073718470441024276488834578676208736466668948942762523614679635070425047772190036041461533824321631920031247426851504523273356911076977925061183283425306369387161994700899138780690501619327005360162018248342168913621110142967716774812802717381638010077214629516207876524461540594832795940859355329349711771201923137264623454149136025584530684667514126473674284701930644380033294575094632847829841250493382106312612296595906153506015809055735957150355038317984225496414403139290193099585737330789619910950149022797739680062668529755645808789037568166193248060176579456086630852772698254980503337163213047523847975691464367873515281300924748988905869404255778013511181012157188576303053858636064972888317367610129223610656221148374595184811568840611206327819411307338836450425663791051350021262245371183091436772133971036424219066778557675126897244345433950332036014086043833863214757952816421288394271375310304705185214697851605472716118074739850970211567589445497426271439773250601895697221981059895153314508750805473569204581055289739368359354098787859684769476493496137526523647244584367383095764702922933552936208962255842371871772244343601387699453349432467766677822827250126738214468243399972810894772335852168745591378815689610142902549099143306167661097148631842306304636444994916367539114540632568333558783234517877372992173410282883327670050232270153940505643492717693476364344960902900361566141595290139551337440780747858312571157878863020451197952391264697853598728537892112146788843363141875502286889130751143982068003190935916080370490381638186085840868011107886248494664027884055237561257050890536003567230250031995119438593133400899685741216001882750072592692124040632986284370588651303635525063161286128587957843176408736465554784081490472864405708201749318028914749980534553514287785447058158132967847279006800216535197487816489225708927799009339758344210526439454638079343376154067379328025889346431817392808086920764534944859559171311555620263300529608095652613885401372903880885666550360165999700173566952445039911421936247012375052289843842594691381596522088601632792629691867857708364554573523457717654343985073446022425812486718749763946547144926461725119271690148740766364756428411749291483298485424708462351350161241013076511662115126609093990060598789079521049630209386755453728250562275845110100720321058340723401954784405200148947505958494157235413033519028589374463194821423067076905870841277502281690655211868915124600889303877877488418799583416921001387272123370910665368827258912141741195220949893503527907745868195039634375303468896400623336198289636626968275160231114609314878451313037782554100249698068299767834696236579909730407951412469726694356842678593821300727964942029297843483458216517157284651561048947839047924920984354105029277571693498879560430932924097326950750905063317354505128151246740691610884715432226919909120104982518523417150436724124381627559694324513181594858839468720368572045765822685046310107144939496356737664341522305754006698000897488052839533940024144781417885968403830444104635944007574177179613906622535701086475433439272946107586139400175910997573355232302419636611913478950677818106336786466847903903474711852830403673702142889450682086983679582723722962214522077687590804730561245539584210398265265400120962218972830771707422451963943154373194679686753062532322413298051828125689613008524076682577382937374217353076271848922798139283595926466689027547243690515152187536123373266162634783427717611261042974440627133734288750154723309341916160326628940213881881104766735964155215150821205300269718500970601748967025778613004728353242606825883315300934091902112167227885283943553401492683585329769507713069090345327401221795723230729680379031843260230551310982708998497464683385127082158410223683533852612264977108826226928382988064838622533725337300089046871349266257752223238243082064591955815378152926485943831719106876120311912934554974327367241644065003217790512721755030068135951658292668856316956856619808090706779261057937257435905184505706251743289264794050986361574023595143817705623207212603865020908972095568133458687978928091492500968073762753408603099429003781301478626894026244231198731093062499187660770187389434454381699636618966838384587577337697239460465899421880830483170887423751257672378874585750540711729322551055323352127078973158279360437114830038972161418478010530158088430296342483403537487554833412071242508790571824117906600152242545485544560190446763462567633338815526135669582653383309387011754804495820551265652353995655931490364671078320463067749352861761196150379154943910567840198417335058438927527558845288666750475634121511676663324625003656146524541287175638967000185413359217504925282599246272920418665821374326887115133009709749659680924494513108804665748352952153024647507296083936553665970191437610947405379510972726118765226015837608749182672143545329395111697964966646070979295949351699701144879752747854635728291130285617177414874490196725855159034158505810347225494929213483441614471000800986328028620543172411158565100097113419898206142831672558961366809633324854151683524151429938740844248129547943589862790114714406372341891081302607342763556364448207089535972993031912873144740135126876297940760830297597322168467961259428411952912429153336111050871749316912497400793373128765795301811343299051857962844818153942920084264972510857918324032739877684609244337112496951878683182335245139171158661047300357622819944395589498287518597835174828286299370334351666666365441056048394524625416621496656496649394510103501555538767951174727714149035582101471362371983110734783183418097940164308591590804463835784670826333147659654991975054436530196132955022745827850267809276242479205302568638603653362304979749042222681383518563324422710619679842943815345207133898333370529740258982829923516312595991398393505592684873460038637003048634037041292065912562489358205317563191488558579786817482509498760514403903153052316266794911919295907923275208726775574750730057198462734164141839727910563742287498935718006550421363610096961698281914516618890835081650220053328808624311198884357285895507896309723267295714801640369604491568261488962238910291983573049691413822753176362275732510513425620434719877043501097485964887578989844549828746672495358047399649156917505219979313191885838002725514086221566242070664160059865592847595406634473952980576097284842298768412103800259898264133097293373107011057309672260844852167984917817534639558797187276189046297598959242250504762538082066578827465058662134592026814564974556678789829294645625794319597295029612134046030150045138047748135371892774661176882075890014135300179189985163022612482329019798409665424642272625033981379484607021218151025849594394997256732386085046171595883475080887466747748601682682058218374157343344629942887413858312083899546948803183199273564944271727415356888815608542988285350637596430119932709926699447517117855360147833595452209885517243007439030597602312344765878447209781936581072470253536298217272289064928481624112811005909049715724471502587363108729457588462869298020542406140317887229965023113927328241049937556624824171010079976420152808697030517563891583046030896923389064231848689775770553318920045436383586908067699698712447400303408429130249549415177728468935505346905554882580386000269547438241951363123829734366456936695833608242269102774341771642193052627298375740677529343920493416495591171440529385064705765670478474279473349014368245560302323336809372443880059575012949053995587888849881114022551119682452838851928131470740465128041590127533208526720275015558176898415080414712193276061242315919704021757954482749867839841823809688074299468345737030113117890590474613058566713565750424015596006742457762040236408342519922165470392095338053090726064049516134867583421209637775473513195666343016081257027663280824067917026908714676168140982797647459928926712436974861524494773581660883279947224531420446783692800271653276220764893271896847714546453931235414951544283701362430001249532095456269754024236742177174279058267679329984358691358849978948997330098453446657009549480688295507987664956044170792313728935243036316950884944504678064301471070445771368205158067532291998530602011087606252328213613771664980615831831031796749039812996794761822666773006084540652658003079215090300118079392242326371734751586465638704895328977064848649287348822032176044235430455279851040586907416458240852152648247485849042307518310897753854629282781671075123235224943339727255640309771694988631969293977167523566746142019812464116103158387335729834242337495893872225596236007076353358503033736003160615382413653671480624493486615317129655642855505841524281743364970960092939653103640359267501266923484104322208568913484112681362787187837548075212096205592174974721611840273405771814584592804800107044802279555760710581252032205731306771349588561352191347148564020973087095921969824729949536965789156500295651440163320008863279102103684920228611395718450680080748204244452474215164102684615079178436586612342825895741934098277913646404156507407068709538792735780059307724502873189781513458760024648171595592912761079001268841526706047399392062152593961297423624244896931895053739170231146061916809510840116528067939280470937148835155057986111513755370779947932149024014251205544574387400564493422161357171456725622170419409393784275641289506087780165057629317119615422400629888423633901817733821872580492310806699635491811543390655064002999146545352818862828144113450652006505745827617841620838955704852888803333846998679457253949960407309455437926121587856760776711001822415702642312709536071776261520980088299231142429733788442716003842267610810632035240808956948321707130049000675561380441796094291125666213011507152506357998486923665605219001101098571618424482137223321279573581764797552767179626700051273696604168129923183545423079529454533086688090522904296692325686276584673466032490395015971744613389947135399299162727193658521126777010453005815002168997306536751126249577783955027137433664524468954300817894233096219586176295760811538535498621189946153412206501020900314887487027492696521258877817949249344571327926843141402172590927562822959029124883617798871614210400147815955621184445145417141171263696353652116297732006116457961052360531063522233155882307450154511540286263419170407807902062792443704429340462486067466884191958621752572803761311988661481569674223137702536452666785285091046290687145518129039243145513214057004513559263485335169838404959200644095877756117449403566385914788075261659989662365203640852610010130355047114250902012095408525834016143212811018305155738793621658876272253562757941307560566594809900284600596546409650490602475710872498748979186350722087380939610926382261065701438919696588675855130559477053033471599537863121006477093693302098046903707831989163431883432514671593387481024421524314761315394541576024902249185435520144606070798078372917041743590530942491113263684252859152863526567905448617127477158561083536337585435968909491845283223339373402000179211055184208260755081785538585696841476984741713656256477827007138858183447384963114802215948821771463678192379203119682228957851646251788423082757500755665016163277955700312120291844261327470799747975175534757159906821339534377691061173666294545250760480916931271820353755372590120863074282712920870741009065182052681769102932599328629409051898920146558664433733418103720617928538318678879353246263603888804967468826714298181963439551874735553763367155993713180887505864507939904340493840022691597970582598107272235840488762515477435828688533185700408455020509802914506520571631682585116171216628739828548025782594503842674926088106942641937472965998176948995131718692518148323133881641613912649159466515134862186694111677823184446734562134965004317342699225273258146579472707468496700041961649982033958669669556311576494476970226125735876558074764720078701143863933185234526073417158100704270641617169518476332359751352773420886602560656143155595035356088938853820791875466262436467665091559243017662733573751889409588518989373781495187075511408683477677596332545916956338585862448730488892106645218122162131121934999257960744876903162274453775072267400448293875893074621305976825923238597882719652093943737274433283239351413563507085491107981638749775520921845089223856192043676955383140664179065607346725407831403221313754660396739099207150561769084442538743107437900909830255093507184200802181693164511785906248948055250034968084187228307879674806827063964177155126074759474502241367901124084503514223089033498724217165244394529665435762539150431406165247202695437273197628503368154773311560680250477331620224357793225724445147593807069747597446691849041844199983541324761208677494369721738772393660674753606211750022285430508287427807796436523543967546884552327795321088835404605825541459243970602545799610455479196136363039357317094759598998641507605078099253252672308180511717584333338384195570182314562432483902679738193302319991497429446054676903223462334513391128167959015546953233264194497924140889552992711950843781700943687406806272602996363529090758576083011045349389531546320301356944331557765480567062747470996724206422690499348328392159337631976983980497086328193422458885564256504721537779145804177271492021953913469816915079893258039165383595824326784436550231362152889736226743743232602150571087318480295244800506701049420008787197381681281431493554546491271154765731065672002413272800582953891247415788478387960115739979564741448707313512712792118511435315159379235579696564638381879693949095263403483991289956152728926568192468782566229894399281918464634021895714275787778735788155506649041133396814392319245604084402128934930998493118709092155599955585869137621067143344687842489994000230581946890431922639377208728397794649787123037946904507242998527022841119480321944427512306658811687880318554557457747775833629408907882575499924570096504024934962832818524994910225866587982003922661042038700433808532064993253294403206572512993993579294748227053445159438539740806580418339990406526120875072617323060233799761351021722418835712437558944420555041593716980630344953400510644736536702992647469786571047390880603143418478140548376278740655473190043073651877485659032626866614583798114906346032552215502246937915107889422253755511502537998320552936408597357040446403759530089486638785509104702487313270506221326569585056662306211378269023731225692452549265052727472214468648168174399328567109386580485810657599565517033927832738992442137636407381334324661993263769299753147963293824957587041237500219642160827141520217266606149705036823625038935580678390049743806639866699495375508306889202822191739761552254296870668179487992447136853134321734109610161905597482868894735767958484223456331677080229288857260972968819573251891064733576007675566177497654810087325125533149132345026959301140512587345462671094708711544361042851876847762903956986116981649052431932027092505275035886530559160408654908823455556856043404694513404085368332228361337296485255342267347776282388935023915285652008809447659692383131535434482130068311442395937874398199411263544996790054654863512789503159585174888937420918983456338274238974200552862089558232157527836903070360155031376107632427879995047474206178596502341795058165375306396947649636908652571394220756919259597219479378367299634231870661060357784955295997787708938302291309167790915395403051515411704655214522170015385956223647922128961604733688692080681141720603339994535392514477170584097308305397861984752194323763073306698993046273161609084505040063841529563801777183776368329435365339166477739446722802634561760199930353680396703680666985636169549881799052854455709415927164026193559132154165433032671708185116915034274755736954151518884304412604755104551113587438956714780786201115239695747455887050916823454595217616970475329838365873821967825352256490634754448370306072151728586973187137999090531002776544943761981779971440584196863944612272223571698507501749536172037639584224576750349725131464391703223464563907635673334073800411590223953178252548644299798652531170646249302398569115999940479579814623619471903465206089841190414133574680643822864014037277405634098694467308825529300114151367323614529375083148781827679504883275447756968084752386213234023636728478074901186568494370262503950987724454676546687023933559449457467457748438606262312210870963943715472726068682913504613797534332786978922040825701351673573412831531469924654553671940502771661544648706654571527325674360882661362143593018706718361113120718271121708753002196167451160687042196277113642560197848972885675854892723255962988819959235596459103404451882168977578196841180185147475573359060128779402410196977226069631462474724295633929157392621936647672435629779214524315718680574144692522511203118887545977668217301623068224597407747594598391600313348562079471312557808884974122490637319044845553065927106886970399532392072545321718781357684374106238378175522312602491959870840535080535995790173058224868180762433327611867434744917550343104625069769966698651643291324252093652506422082508025526392954643231505387630489015754348613081029378428646726451130894567400664343799146262270466622909469094424443176944601171238206484014655876167687757783774072523479594965238654483407601518159913613006456949536614574199917897650541145731990717080271941407975319316777822621209776275499547259424225371615469601286320433409238274855564037242869289162019733572877712512866246727787463742112542031886095476031026602404172926426122533461772816815392530846642852489866208421855471875740279191714114706124537100777996272323520940935237653864257737352774061773628596035661899722918728079754296871439906426412102754960453541627963171456597903955689836553103937005520855423000471599884545318872567861536238073761299854468326382134858395382268966592961348957970409357901729497509681038327660561739847463011257631674402525179058497764638431126693221205965448544621755097715567141833747272045687827981722501787607738478460817577031637781159481168075952402715878818025323812213402220371167997761761688731041495288390955686609013513160376571844058041102572841245664280417422566073134025616597712349490553598903653735284133977044391515133198878259706006854228385900971034375376375633537419310392983820792906020803495210501246231928465430156746974317946824691211493113804730640897565911787636222549962421135184775199790010071013816743421795342742763353935889686548625780445383861553884478727572852807582661075641653042396257971206362763304162146391441338864639085802785503124326867781216574873284048289759570445076806620135977426458306477407097772877028194886116077444282212515351096532105500901722293761523775355030023664312316799639512465646708152866872314237846587735487736019422638014869623497245083678941240604617403124024469720379784912139258023722506228478948342545182530007983540311130259082652398683549269669566156362808525580104550504142731973018594387316199078952376946170267367455583970655505944009981004474095779492952918345902446936455359502073973109364114402017891043080801352361436126224900179364606000842016421381549843058125458077170752617740629311057095135787198485204459188256768141857078975004020535788614137657125645967295192852558045511431127283181886201829608497355760086141866993301288327559300944128803862470089994864445844196027307498253947853124320282541988307923367951277019944395176409823326976191454066779955178977260335748942076889341630481755956702827880545404184696685497537347517232420274936513181902130821262776601449297500187975602625640694527201908054902875464237277094944000853202583193994092398100647712200970446162598674350187369234536636561384780961590891610832922233515189240865946452015046614217651831610926515775994383565897549041827491460496900763274782330773339940147581660987630647672497119342261077990260774522371650816260053870949058396090337836971903095174937665082447281499202170367142915127334614071673152935618133787505875241830974655970331403082924669913837539404237767411434157056375864905328321029688811201006625887966596014969793083631311290804309005359856887373233671514245749585547893596985232061433518465654977356386700204125167776105113558455580119852557129186286941131315967012635684270931284490899560310751499603898658198987945301594690936298692124089285416141213671733186397018850292352793919649391370078667650896473034000827399506316960956632525490348296754517702516204651000363582552154108337791719694963195491925263937842029430791658171531329696541217247068280549474230082009629385980875093358666339661748041893381431825729360449912938924403389650485837736470019216875124602267885408289776117092326701929632741746248846914383645168948083564850165296802446525552021995172581699734959245869786879933364915176600556461253784297941629546261772954689782325817567182603092035541443950646407579085756475445397614051556222784762186513387597943818191655887876697423601811905625260577149652166424336498254904434416349440022864856419040388041885422924972577129102973850629654052934871133433043336186902850300679890561963860813369830398327237496732197413964813172202254668404377351216550960644037688047956970882830658376489947968582764772780516256377162791042932945003349039916091796605441318417039526127935474196064622970220040690769784424411980175539388902176955019222747258702033003765234565218464661544702609239158719439169876139024673181659486518702959623590283475587384125272337255990083892723796143238734149466129306870148272126525133346730268215050623863520549015094665351744353240285330894551072487340618875983720302699668510976574037586418408765941345541672939910566969010838129365610604246663697774795183741324347009961276334556100639150033701540774813115334652578083012649193618096473748769119537138711807112997811469969655953442184926995590580926088740894970333030192119066625578696819437467185742319641520439294198457438695697209535919560154300453324521597572277704538392281871514718662350485236503310358350671668113261843911849025731830599400162598082585388411172174915096886474431172190298810073356065482718827005388370783219352300305736414259767303354725593027501315524294344354386509162306719554946904953631481080650106518016983316595509417131575555650668764274684460864770854474166567300166157377540055888533424323049618357907424414388540069871532699857663520537083647900736639975428890163066017115698568542812872204316553404401811282841110663901730466188944560641318377919223142196816265055849889675806950741090331870433285582664461077723795372612675780809222790243776862083691809715371249856194728944203295807009632176896982992015036643307629546040758559459225223057070090479178634178120414750291300328128078681103735403326765429754019433771043176609693718462255503870112243590359610905861631117219236428475764248168627306869307721711491324483361846021506611762147797398158796261421944138942996040981663653462027647099365970861864836933794314072329377913356846896496560749173864992337855581124766297133072433380638855817728275305241564582274088258703866533539864980312580428284301877744293486215895268291130852100363432130906538877561072588822369402524058732009580336368567066567889236215543665207109541404957236186072962833360615975791352332545612295177110707585330755260050475726845178173863279450944222558959184534764483710879282927159278327675324913738814844747260825119464052923912473135591067923886503279929933148580312048366003261699010577711939648346230937569609196450983662149090789424405092830308414641461200850177802217379587165307274095786743599964887768457385432931536534763255239354488262041519712777093616935353798069187392001122852477692639754961909851644783600543468627689163164703129936827320372736754970794296082835695609707654981320954757402538430915271456224309933481544605512212030403825229729471910362952077216330876131607773410227909528498979358582402577137789406791292616408119372207523463593516934868340186156272880005693729152232049804880397503543606190125766781799644073482326818863689400021287258236268833839792907243724333390794279401484617660703754540220210250952107588602903281202841898923518739099468906032973375882568921218919975946545028322752804119028404182853127763538784869169693690720282113814587436231934231563052147293731903849924985780544521539189081798301505373504479028757568516325760431779954501760853987834993208120891018018084857526939675170799575694707457086396325369370773150720965712782862598636908648626817393407366247049433685129007687470285043487885991704930172379087783056250890285636231300458890293729249554208253454823938331488002380710958586221210262484197954670720500936255157706418568888191459894085126324973469433643165023362890825597872642242977189398535235382563181198771662990298953921820867907363859638126554168097569389134911591610436022017303961723982275608135095056524751248447819584178266121524552096324560078238466540259087213362292359373421107703890403008410383712065603863367708563247566902669008133172204622501753943633484615383754604287965373972933961833270148316272867069981604176922439276842074021833715878469457445571508302024554243609143865354014959768846953597126234052507251443755107881571260498668850830492842712933791200956420156285086877529625485795621338517670024355548558508406340889503529231205329936060749153955826318038724797329490176711486392400305406205437896531043996422075026188249140124163725863833162227064703509628488370863355224821093719409734784008155676515286641275239556964618554830649278535827264442097617330670549008827044485052973143893525332949499965817059698455620251502207584970797875449311734724565739733110087866435891955599967636978910553118028314919566234623051857095538926276767918523827919629690649563933567414171818120473916988962363631515480620329176730917043158027229783884319926453226929745269758448504777339230762688966019936427605350280163865092259169396769069459265879698297411473112960968108313281866407769842749949295690781966808552768398505429922863072645074978996842537142059831822053623016713910111372544879983356686703794823318406933995538305254068426997871446061645845791195294272041802527360023469179969167282838128980606386650702678425279719389863180917777878033597941304470790654038044028093628202462994337810290494280110974916558278892900270460500004261611786639109294213680325706591392874651426218893247023452827789252770997493287457278861954556599872500454349279305196792129811396509320218439487947456400616560491235389660698266083272600576407751835529154672782673990562862609085173619452840628972622149666203343682992140393191654642324917402720207715830398833696938016485944969418308299289953146134644917024682731767220538676012725731655965398286897700224202332854606216608504808143699052840143216463044461761478877577669481865454699027953723506174260724485133042665831268487711495567074994566957263969864641796582004479007334009565407179104155726645526121223684881934323868492283133477288741654583777708098891657492925314681753746661050226065688980787440634987482477211439612788430285674282975418127195426140244779490433061792869443073066642003920840235813689075827554049407774970494194710241608372077669763099253243226223122849755011036109979196586036880025372456260775555445914145302081499517814416716748277709810284766296403176108975407446387338867542662233961582374959243583436322207492437320108781028525477223788396623311952013474039188949691182450217986037573741456406765240649367576725361042545952018098886307367113492953582642843130641110169641345318819141574386237326969447356806397338150878131771432646731633550440156116695087596428578197812026761086915507877222639359489306686881395734997604642634441553019618832482807531032397441360872904061065903037279463784944883206106385883739003732324036117968930088762390441699893833782197377814928901012521636646832908914019176801354314750752522271133705325256760510471181937856614419296259127658088955547711208310247941575947727149717074733491114199124680842501702992704826178779622331075516364309201320454961156090399684938894619758217916081088592491449218060706297988715027912455047329545500155825854685221462444852005726760957457543970219121327831333499228225716322035581689142423904223083451904807890153903979705609494707998393037904480504782603298786462966208999288793889828215421322222795680043997996929946011104187893887956707875319465371030225216337077700777012477047128185904365537758718176194249108759228282141810394206680615361126584668267170134807827193384172109068634577322161293909323528297947075226439780986261464934468232997942519315543009131419979348208792868416905739591665012878171866505485982898360145082473575444556479279351331221948526469933255980676753546049678824011099145701254106394831317789317932096112947589356944069956765973761755665063544216581586851817998566125220111704183081428138015176114727674032361813324276891715119586332254852343049834706773300995875402428236446525184434543775475946204092270908771517826861554196828749880290441114230752648046890130458396104488997876307809594216232188396268601467614825813066874514458214935443721254404511269300655787501981754181915053950673552984060804779700754231767125814832828834923151904889679976412100341736106043251954502850172740371810362986010257996398671035356229007695312736362255555906932941940698832361581435558784470340297239278167741581768587363094581718985200080449572795815641825932967823790942324954223630390339169189339325726139252850308576977915433474602734601581402157592636301515716807598825308659020947230170225962490720026534040994902574289706298410209386566465864830486638447851930292913651438934720688366315551129788872816204595800950281001321715483106508921180700151458766869528662737669559781984574547323090342325087543660547919390304919989726281725228640477045298330202377850201051407521826492212287204944224402777959114067414123316866496857699117008125922726372830556696755203015901366472741605328239364610867371158941229715319297557119562588221315327659482486727847391536991195510475808989708207892878456554541366312914492452018485180167018285554657591489563416843211325122945566759688698580634981766319500527083173255066699409231545456447158322972786298816187362513720834333947058386199134303993644087667410509038522235048321463856013742728150588532876486442093057225449805054640785533437161244395137741500894919529181170877083795325245294013848764767447740968114084815255889262396841305123748476859873212169582511705258618936750790673894810012150189284031852541997177966598650035136208634656447860244414392561317101989270242193880990993274288523971221565666774789627505605217544696445693282478571861963529478615003145678877543730347552554008003196820420296334462456047069786313722121473428253557710217409785578300199209060970031089069325565118766859396981601624840065084517104382267641100838126019426565825622855698477924944244361206647873453694183968333355974256265629606094841865984157425144201952350437898842530758501367596457503668715734883405036332557514049971103544233589821449606362975137764015284576941753947068100382576341193418140249582654734461633388431835570859206686394445393839386187758612153506644582912986754058849595873427668560226866218596627253268262105181025549640686197116223202633323107563281819727493795529258018949195674327197510413253833009508255967840119210513974889153666530837214065970808656817844315520092262245693782042766935914192553955759930510774874779282327126090682688932581390529852040663373505181646377743603908648856543533365921720033366444985120789988503159139828295818807838994583742924465541049900468131306641768401900321820315918493682564364559771698207062822781357965206243128765720162713207758922821698655558775276612361074959278142921148077772047080706263136242188674477618895497623239329314258846574538483602248428111472329682278766327412817358067582237561774985301441796348411689530547396235644819026711277162258080118925808479045988939218840104511880961103400776301207521017638487286227826975140695581186907076995694697418883000283445313888210700536261337495095620910848663886088539166272426289748400750667895396210527673939516666047814266855311704599194222975895679189645062723672493934210370817928256737016296473193748212559944920893253051266815636948688373812949456362977488672383141273300007662162083140001509823039033654957814486717300267482442787454900504277653800724178440000290673411614177728274060828112147615767301459865089043487258027341635061114688420461308478451603298973972865615974914840391046959158014463429210181461288851919019767680046351866329661148933097230730831408014517127473517169338724569368948624372781633848003223293952953988115960987949455502521574939501296579228893405496672216305881042153406146498097682837564534653160047825894066771604850192631843346817507592242262149161241935875153849634147956302140880166455654140579318024019051691845153013684754687414724892163339813938695265210609438007030210500100681179718716214639201912426336229166202158322180325021484049228076576709210776987823960398743426409618303394024117528914143856296398718462220720434051990921001827127011186565703680107600032263489518941177028184025007321602348657769189059216137155940568461204122711223380159148876774053237764751115066376467020962694457108156504531769412323102025223308694947174844942530968527897272717364044789033805303571182688649560870156375037833384510927028643525889519691031999023590100950812665965562572156806784314863588163740505834233838538634018650090708763915507766337184756326886733338150931052107037125003624115639273092348257931644627040880266995519708527968506800734760261329084346645015900366801307287037912392667274582706287105918072497828184503543930625623980067476724215547643114906552840553173343877074327805895780062050306231955742146015480833920375774348299550887006152054902202671418416722860071281915686144914105662191355149186804723485949174967028309909567334337136968151634415023469973007718718137984106162606142542873540070993232244828670907290923441761495687132254016867863444375829182736258877827219219427876883547083289333971984060036654133041725481505960835871725709511928196096018136091300308915061465609124191204159251768661795420927282722354487994544507021477948822801567364312088481295795879217750035533422310438168489606406584896830798093947456771953010030313378705836086422060203117122294875321156747198755710568996717384153350507333934542161676530624659664057613574930852435251874714037908695775810700526333004804367653733446464307536702624183269038573075318296779838309717662719321890530952185343405173778844908758738726144146585478370017229152611043872406746205950583994667782708265906518579207847608166574879699685439480526501511817909543060878579820320058555916584716029098938474140259815644615095047593847074950327406116220424095991871109120993904420486163862834345755214154609198531957230148005958455410639096990521670869143756366351434652869706329392394684753888916305410968297612593656815086063463910900753575538458358193224233965491733820440897144474862851760432275666589308042891295280657343207824855546572888139582439229000617168768829776343450214002430425740935123543187327896716279621568942674377382098747175663699377497459529216668208801796968882502145226499028896406601562711693014764415159296922241176633755731423621554879304291484754381845887513145090249810500341659409044659780810140076636956680963527282182800595507897890334428658090876220484244820885946657891812602430652526317992277566980772565657533985184760875244269879484479900159828593005619678851265004036533858985391831052835859727405652556777826308922713645124907269482313486263129640670491737558162689859511203335342918177147257578933822507432639496473345001748141803159708994352928141046542303811496009377188367495135498384473364690974990868402075967251592010848663120061432629592818275606448837015353168360698648916762654187322177318715278592528713889565436742837923348021897301067355012163718145245927250685206538124710641748316951053467367640416024051933970090937506920067766839639631038959636846028703212829634443759720232848943913753220461171119434379174076837337274875927351829867840370329888572879500966059345316910618817862960940153916151446532765535765956771736806878785170795223880749869742989047086265221058289096153887194106152227048964011590006829341259671713880045292830424404722700526316695045569924641428826778438925456827454983782251202147672308801225372495452166865127749149734272841340209362562050857377004945138767601595072602190458069269391336537564134614240478833148453197505064550363997752229338421082818760220704948719658717926591360796954609045762315514613669598440184812063757319203378812747065424875207877049944038560944770828497807312107737326121736042410522370179618688868568430287414215106726976594025622549589424135389406435295360615936819048791262197872594816003876936385125604028702976708191346108655502226716754180140243134610948807304111616668598813992229919330266654836194540709685425774201143670886086141515352314172722896714284514045953567833337066433734603352706335819195985707890444732846644121373191558424340709151328009643278946999120998474855365212548333931560070909530726984654413158124445160290520077561605499037714792373519413862486228587554891035087683460998748408715842862201257266989428728298654438862140233954229669434825189263859819948625794941561553200270380790369544021988637457240753126143153889790438883277592357365653201412096316448708719434571586668263099582093447173456586897127041786398445876124520842766534809760886044185998192216031327503192773420244570277677051902945385227958731657505621269604278888961154788602538455624448226608903955441237406521254092282517371169366369783896295833761458114951264275068248170657448472834567764329594433699529466508476022217627332950059313896916925488493685930127977411633112068536263660904834724957902779046384406639244641408125026339221251897774063521333596550167678372896150365697810457963089990835399345647783613742656402552157328374014809896581117683637234921269478782030830865787523814303563475170604100064134850103100719915043002582838525208201137226306272842759838710762825827335129796216732340135408633358509644923397356359396477799224135099180917043719254421214068416094098683973010051377700898053294712175280699691019279298274939386253169956623112429465929634654313419307089872709501606936768536799849716033674021216720791563562327318250839862715596906265553560255181168887641231530786695385382845390215808184490133235500692753987429785991407493476533476885929990396778212901504145087541310134614462434651330899371600384587355417735417186887788495270376611626566420228855956348546219039261200954799825468845188902419574033963905160693291978513746285156378514417580787786757740050725162976415935046923286390641799713140262355819192650871575820860009892683692131298252649760964552593917300817781828913343563066843283878975181818606069364626703264369452270794878493706060040534733787332874019179896355310248760963397126742885735145981061836979365122113084299393609180618789670122049616878535368215482298073750372786772653873980226898957375436587777282143184376728892000814876095140530686386614203465036333538278813267774704996463390337779249780664692000847846876327575728708771389205183262675006799777448061202122764847305585579730860448672660649543464945871588803381520171768518911104057970797036238383072542602859013546007126418316175093602292172658427536142321997491688379687793112270935089289356825380908450492222231575863456001877259047383332898500222242805337237749048902823488603185125747028099629774855811069855578176608011067895496406716720833406500884715327838182713264601745042519992242467083094324138207191582924558787642569403822034486900922473257207240887383938129009336414749628288156455316351129226196546451659735803022567240765788568597415896186604899881250722786071476187068556092896843079657257193279594922519104599416307936424984799829644835958753872671085987561363400654695916087377965578425566966244305111665910753167458215183486003209359589567197425704911585770859599125455315053196906111019532148485575262983320899828590765241801632669419649993710864486177121400236566087577806519013994688177504011094401709634255819015356607672619590958706449358164747652273814617861643911972271162972020356200443035880893775950728993363562196654391894200610203293321226598456789133742599283229174954306280084140904671772792456561105753403818138390759984238654630060320508244730325261952265415296648291623427571772507841634456687129766587023990935262751129507060904101705565361068831602174959121560229586306003905096521941585183843414103609964251793532259489883487890625519431162197262261780313944289201816589807075969437058771993105742545102302893359171538348673691071049709778251175038675815096825815487609437424860909225680647925086091073225463587015724583020456092717254519902781314067405954280411390438349163383138266722833405468385820720632947368552050071848297318470624595316320877488320254733963975035625560465430994070901438613519887325058915241159930000784868397976885359409198957336965406364345838502251760714886578649144874698682805904032204874912655072133215942786438109359426752310773349851602468978087925419328616258512984868881073414737769867629465891787459882927176798851902289626254787096591230677234805350605366941946849370203303711489274309975605092798430194268465675613008439062466043373297770016429788061989184807401030268048410454877659921933506955776221796736853257468712732332612388302538498543435993202363914065987427685476358058805783117724951130092263020184697515324531101024136516931907519186427333751211753224011891740808008544581522605408667838816445637479963613587848241030066698236977170112029266936803139681097029783985017514446520510162984370389378738354149196735480567271648433257928516371906760023832157122868233561120465976205401867836643622267618695663763827073995192953763121369451144743498989246078511307060910530638417021851779230155249390268484171161373613323234093745905796440181937721704325285979382116690693984366975510408501502999633276750007116523498693354336867213324959345231871799904425593232837673826263040359069993641031327331463729414552135225436885074771071398872217182173977400803249435046915585710619907259458738411951478755173062770503254166804036562747858662826877363226813624337063791606001877335142558125309047333157850949613993758706109561524789109485759690774100142218190262150560735686598726063067809851236671873110162578343633492745824506995035192687343351134232367441900236900231461174429499151253594204137077224583001804449685239409299542196186851389025352763623698271378495697320111126133715295950137809677641518087322859784078646414009182833778482167912692035265986528680613678309748872072208831666512418746110396666914500165803275177916752145398626879717403889619366720971057453427872742549673607606103068970898506130391384449007253242945537978437059828343270431774405140782615068502262380270878465915032307117913328460016773779877859674437912245215645894325133696066006212116866779858900638645899637605177210845570543332433978988984205400270506378091789289102072147954349504079268757747145007756790120633171082537788820885005240240565213020753041542492528748468342941399074787473411646677061869896007264529000696933341021929166203247000096650192085715971831852253957403419825793895057680597473736309964847707125322827091476911641252040460420951129480868781899137377411841088228645010652863096260584681653172684814817202056456040781159699932473657580165185911293487853995707066930151220756151900466157297691750657873174547731766940961967006715021890349212798318214102888878274490305510221649515032359166157063432542046101100364041783483701145835035559257967925836048350302372992578039890883367989186131124078004014582184541187650729522842232789436322005717297271163754061644525099636627641151361219310555914779987837103953657684357713921251565977767203617130738587848120594739070234948997678963105997131098338265037802151706597899237258374882480472926405349807051117806895822807507760743243973873000056442514214893275856258723894071125409824035976912666478787958658624102418055295784972236117424532107017206155628733329579803342553074522159006511944804655349825539042640042357719444947829351601413705401644831001761637407323464082204654040567273742774780005758185098266264039346817276136628104362962025361397998458689042882122156967360674834301365157311793576299846651576420317623057575339021859549769714092572197196322475516426320157536005760689555215349830222511290770856157191632790765603559419603745235759717417184658502203102387997589136896652157966235760543993040886443897313497039205582245885983509234687983448291955371810858138987455478053965067974865655260908298888084389386791441563516615650875403065827388213520514957579068769363929345569165056338398457322017441002801642682370583959802696885580503508674605599294080100634889185690591695567095390319515444608403221106645277755031112958973174895023748359448739608711291520647928865727622953228924150916100772575620379943948960598901245766396368335551139737921415657130810707871060714111471541300215974616651903979397169043604240439058078508066494848607072132879808298956567324354983258611887707455794717305378107228570863316803954991818726539824628846326737975294528301420422366789029716510684294781367661151908356070037598127267353410413639010129432419586113362684326301752709190549659918162055410342281952276924202165433154336284729079988353561226093685479752925003604243896120862879568334183490154754748971560095378036277745884129153899207634740525351479273152074846921718764236679092490218574415799152444327330058912134155218766488992225379309633897739150070882788454348446475965679554544809856448506186364203541438851712528350305724046946588891785848486778055509581818573984772665042020942362733393162919793599022769320490051364733510821192171342102537675203767812460598757323394485013348260408173512628165884907864417753061839473276980655526277819676328276758901826879248943573679123514194278335930634085998626194438568344383953925750555642539618655853616065030623069712328256618098654003409559448266599454919040062586098570009582205715780011135458838851262038465500697819462439548772535852965416105334800340735811666910381331786867724641406047369048998109584069751463544610278584884574424897642097864266594486134611415799094721825998695445542118746487831227739986344486950795660357365373317706591164712873774359264000140881476336263630954062012930973670445558862608034622838669400939481517265936874888658019373449526851010735353666872044565777173571497914809374633546265893490248162185911070071623905390384134728714974293592410046099047510937402280082360924930141604148837076959942172810867094996065686700486433101408011860867179959729444120365455148801403515920112539445486211657195606389597005525689776799408941801997367625412443476962488215166318371786105782843652794583679898152242348650343932496271563139582229309653914200227979633854747995985541080327080682854198611476688329721137497364738516857754415809785877585619974634218669322058631381381340088890679129806771912525088396225760372350730695783286022660982177274119606507163294137705549424127476951545136579989675385117094909444334169934097917035897967241986048934528378603915048785902787964154527023200241004863681707818347980539858048441216587393047978362459660708445246448265969808332901328695119948247713062226683945470670834712581486180086535113879311367285878947059728416783297866592530725102560468929060432760604088898496881320996568137220597973749340834210681613737754767843418127485067937122397819470522373520367344622351513844654555982515312336886723952543890773567468089327309101018680425108844668297808567718334908270417574860598122053747427071085948099381567359294289373981643212041716876117184401354177446343155550440870062799145459305237968274254589800920125551460988583388975102864575554301718082150225883588976834658140894360793195937147152338291189033381140385542312706838395905652576716506478167514714660021294518422815062952344785451553112770015894589269600500550399783837085595677399425249551031323775576522121131752288171371577463341741910602774339494417811517012240954019591158063211324334258484934386272579528481756044649060704178842723705283616245604951799674917259952483682372836814955321417883588068806060976707814889457971341838336685417420276576437148548620492281384981197648017316255892760588391235510887011323844407691397965346861152982010068627748509942539274860448202995262914517611332931599141679604515828368678177593308768279254731450775050177013813861016095654280949052899791101569772706195215433297077699873452915010742606187223708334158435335982119381609667210086195141402439637110204164684398019254243107913152324928208208151103954038182507356310580612975378738219047589978646477831983537190489263532039977806124338842980056016123015576515476099426689823967100338284898371070965799462024696304994810328586617295216233052307044480297187698990577898259943883239351169346762492820208976603039913878148623444828241477198430785971741602226671843967052326069010060691782202495795041987267307258596048431906673306841728464504424987684125699453335250489888566154793986107713200416094420527868975979212296866654549018574014988006832976940140085025487179554926406135901316015758835307912684429730756122289374709757565895352249515047598073807575161260104552109561770400097838433804133465956645001647109390604388105754415988712225560650220141363948752811150251265035720788648775678585509341307108563531205189174993711542877360974144342855326049654340915069279609818408464990444835499507151045136393400894315100836984214517545339395859284814217278340720946261239624880528312684146532687559746671355408788526754086739810000150907991791027956296344062129979747148571330456660465059595500644577729944846287109502959806860387375522418751782157927002209764846619251396433467892635696449046293231886766619463279205718885438233141357695292093333029521999049867091253643136144440136711347860058253622502923712441595361351384508139924981437139390515802752444044427941336372244583033521799170210683517059934201017786514585534096497838302341777899631913891698835003860017279392225738718363610055050376736267841226997232713747832708170046962975765919945244244655053764424053186020897654692955130060509663709519567995492779370599352289040930998058631280029741182252987503462869511388641166683556118828261707248584091724647491945155094569137088400558106748516118138784725065011921975014812620131758363703743067751601048397809810279141295897159034203648917208052644645660094304869780393127011203430499894108554176150154365440355211953373342664768531730465943821636120608197796323102499886919576229721892307455073623909046373247302175323447104537607454339949712242844784657056673508116343612727837334151253924491436870947942502354210382874164675680942401407056698375075573098125214093340968221421930222221802619440742715244088961652090765218601177616287141054247926052230344646537467357888781630499841173290632870290915089933152068421956575369841915214216675414952626758900582135128883599130938973195869789302201244403349364440466655432690707163674504594040789350300927671491230152604499157556698903602463629178739545241774906483590376235773787213048024636243798283031916435298817400904168193630833509888653036456219053684733058358437441024962279486791959727117697063520532315735804377263185114894767273991609604444776807272600143960442938036057613655458914771209448279770160381745652837425951424598057732054154853864287771873040237447744135735026566030602143326223319781684850707989461189204046275310062993076484014982000200151798255235256869545252210450173360983562889999527156228403726928596413241164764348903968668991485205266111570449311439408934030052039101753898699773020055343659922867396204585049313767556016274239737540261836192716935113505234449882360183477390046551007782237479216547536487289780525229441298374238795160553377279148620762902277068312401087923490858704197897307593915090762753407256248424611982196475663830966312762601534817790920855770071591159813705561683803219760310428116216785129441031182805722662879498489098567988720724757866966163994573716075868767257936652992445021074417899322451924858906673745393280516100299393216218650761667120361965636612584027834561764046674080598112992026395889161387375930303554147909169362452830237215472504304594932399109196180307177322792935683530566507771342675432588959343507732173754879345717515111426609101046253578138269156313809337507022319350643250209411589643479341111726413945048415621086035041466622448611812409367588160182306202724524855206090832052966148730596902822534193433048647474273627441607058250651156962170930593546170757713746907570671015239004941479495372440944740174744316646506537665752770568354935757022910750497294727570451153418808547698588505219051888988834608250268234068465393339645931401080284630176041291044468650745543041528657704410927450704619010041270073431993953506010996718055482821728570442049561562909803095796062775684972155159588662251605818682169735701458637101794522002494509502340168637061253519173643595168890307959875975446467780884612643542291451811809414721455605299134904315861319207108285403535275466280461396664349930757131577755944267022617696157349390205640141493747575437776108758984907201451835295292344863091902815218335912712186385710084776475436805037181188515001091314926416069123218756289330677789120906893408531853797016882910276320457186030869679947783684183957924344316598148443989800649896453107600445943098275477926998639169087320987510270242088169591597342461365316355127525202951811484538637466556092535980030755724712482804861451257081249604854569810101196556402335893858485717981597643186495594167660360222135003978476297016252867701554827539197142330161259410406685277008399414658589568162016041291429142239051892239346184732886666467956587223852767674985959519157320651073642472500728685130253504721191389838568825671810498666628800455050898678168344000105579415643914041115403192749635746339562446462196128085017689824112385467691321664245682416807031775141127824902769783589189765214320825739607948251120204924362142488168722719196731923496900592022399784905656219206042556995181264733726224680581159801516150789157969447146718324395001303037154915990741063938510074115576278524861452141052417537960951975486497866975246254288523513057791766812798424930091802088198290767839622351347024713536462169392991763473653894229295764951783069186903293854866111078938220371056385098253919612254418094789396372890376402947046877348918138496811558188418484705346229144082882483684342041745845127396410910244030694153053707851641121137699364430881090723602714469202331105711905296149067912249554236669856980763927172854559132708432349392653471480390931864597859321870599355303219295871193446086606769251598864770646582146351003123473421706619740919302007696820633913292135268122350459077057194326630962050924720544216279910418945571419695059253141800748789541376658277117727899864599101696332446210916652916842010525039175532006154658609271910573266937138476487549373550814013305262179293747264173698384559058959331089398021175353243078739869418809674979796630982026330554922722281910910149962044948955389820356074760494984055504738534242982434193113815795706088727759103259105058204905325911757606133345692681376406681935832125348065932886216158350001265186593160365344469308801025260995356156578995017639763324574256634514228382653915300243736512203194763326831252997457077042668050822813227841076707548283521696435618739238965184656398299648783635611534371812901203857459768350241753661991159381995017537960743439125701769956581240865736516358395222394370991471343388429481471585790740746483703829717061825655774895056382559209403124071355232179756559184371295251365509314678548763096700840265337989231031829767123294201438150046686468943579971771929625609379448970339092256021202803649459650266767470240950046932441946560249436341780930614516169150422332226113574472093323186550433308861504986741055735682056038194579889567505467822026180143241016850737303598394141708594116793024488893833929553472446970879949224683352287820921415630712193330265406123041156581924657817387204721801043510740548744312739308269282434743937313217342648648690742276320981792896288154498287215068218605031977730769837997369972694773596133048304525192897217571367914359316023063961801606597808219475898854964966507749575701877739480744710544259259110543515269230414172569036493284239416760877351360215014413280362803635613594563969840192399894027735420944050321200810634064227279220326882720232231934804365612490710792360202809220310441134679855221673853045168287230270160626144285812384144320387478000744925374112954815014446008944311986272388703514966341009832540983121252064057661489907710481269628753040525170121253062814319957893131596768466423297089024455338096803213440343070717462980606545155684037859227411795653305598090231823015253052844665287253295559453395976093719611231185317579916931210158619924185656334452390438077122451136519213276225895136758576650362259695745899090409827335338171451731559753949709254858804895325148322071254897276462923216141682641908883500169703210888666710201377491947570433231078386067913874989344848887602252208502766776297932287856377040622639743422896368423740728386180937081743007277369904426142678796227131616063372117451713607173269563239935972161726606770113038384469837022743671662291725622183049442890336558405906626452015517839931557462952018292559078195491904877463057214417336837687179762871209729452437924001119896817747961197256333331636076098315507652372449292184618683703427469131515849471657597984030343569177745009066487756929865879134077654394206841211895323238551785779074384968721223153587916315815041679322048760040365354698479909875712683112374721645514008001666127299691104468545184988071387176132344780473208917326595925128416994849177066423071465669928555556572721638292852142735108481576344180941151376590278206706589634049169640637715601749004477351288771552523550478951278344856821627778797087907406639370954040510288422430003217174593997518234461138465664513170005797413592512792523118686741173176435353056794646813610248609367483136839968380045413516852522333487987369853357256695289797365325271803740038518606273160193946182521807334809566489391200262435666180971599630602793791928824366024876512541574145282425026545583449390498670292235952919412519959316801261573727893754643100197197721309341312581191400843485134998421500367959698888886738171571713682226831727392120922335146286655814200661727760420930826569285410844122061257716128295571710493403386970244211168013351139825281473583520261295673971377528550366907471953001713866737805928504771098673675372036541402839599403540457724196207903446871360056871557695255476030886629589843455313486715214271573487707647101176151114326234779583116488446400622631113509321650516950875329343651050468307797409552014555040651984625253461633368977934038869348033072417454770941835899218213826302556617053356433461535182475990993127470025494849851093368440585692151709956615135219297497670713876297861496538424056581105181091506994969300580138532393755240418986265046523644235595923117994338948599084562858580954683562976113030779092602038049654789129044268171529897739903047855179299757632700274037488352137302853229300618752434932621214445270595685695586698694599344697375760798948720964859359881991478087382208220736455207656231129555660181517814626276328758209873563004970524621579080092718288429720084289575916150566453691561134844730180548777120197475166633680780859657956278232172670203751092342619264758635118698094947764968753766478514461425439349651121559034875208800796466833685153097412073976881289966585939346209060359855397707865762866230721977114532238267232252024671648765240389615080878085365141668225837092669181892408686838387689414827540760896914664842974827555918197834028486340700137526919363735398821713002979433484897752526527416103269856098909534839724569059242697653412681996253841407268826363445621743483452279547007928129667211717710680430628281426602218816802479145702834048299872759936447751224993035975126264113420676241638206440895722699134163050790267151454997893188692355392987416607200151622058047082345419238078397616061888906306353157720987910791391979614628542089973775091338359447461559495151110947486439042851760062907748263604854849438556076988012063433495246129756103301681943348394410994494548847962552132831859316460096234074354839791618319135311892156254341816938160114907620076503042881237095817956719201242022706629506631397091783979663784743533169541277209236315302626992800973754170004692348949087658366314559637560483810660208002863571663931646388935709063730137641539267748397055429734178622158030656602148400857622347677115815502704602224875292354086009329710390107180184614363438632755974817384402125314655954504636005018648826652533913863611361698918498937410757998476649413317564719190976674288758550525071605139996056758298988173462195610464133106517775386614388794371286570488830411378383270903326827239099726799737202370744077294934626222940293441477797490906566325443657607571275049709742696807777823182962963379338619976272142722686505994028647607089857346238117317666864481521783426444207120403015226111988491272222771015535741629330008031694809095743700729665779132405207400668181839947301568880460621513950152109443655772125877780553330435454025508573594877049469341333307875100237906093247792375139498158261243985424170945003561829729985326127273368331505481258626755041292204238980854790658051636933125552487591746523209133603364399853893019845633274551223241619991458418103228591439513073503533492945022469097724756296495353033199453710145502631067976051401535140680782195949910112579721213408006316437246302204932960397187093629750200861502620342878217561115735758950114663746754990681001830717233631724227603414646407813432075534430930807584211230008210090951349640525699787549476526262916437506272511111369697374850133287331411840588464692893243337892023839010546725448289268016152754381086349235745134730205408180251384623289641992536344274622802996967231831962940612514209559804710224160305212466573197788635812021588719191977058725629884703663741391052918573850485560264278264635768542149914539457363992099124232383572856134019375241649933559809401694336152670394470291573296767376556871738945374480175153752503620585896285031395169324245558633039916849036794456223118969920780566428814661181493430992845265357639759670336703642360903328567485089612675492690805888837644452076977132787156761625289755771143529101616684579594586222426213042936863531475600286851142457436281286249068953484411977984061195739694627174378249702221008234525798078554778126575960515796728529451520354530576594480657076609839658256813054813068552171884274192847099132159912623083752196287377185016404875548553036052638768710558601356318859649366413765444860143202672212461841185554329297495895307017475566127574006952799606377263003436405326286033980453594618559929436416180486989290844937564578397831491705160421427724530821846896166764076229215141991019510451455220675881163150464470368690723685308897856680149312200397010739382583272959345198449602095613467785239849375687993149870268096790826623346485959859292288494123177712668202706383826895555345308426208229573472784842356877042195526451601903869207861927115524659605114329887537307607111720884887099567239390801922083383401970195656359715517572040227720794782063180077621109126841479605698736550776562111903724247104889770450744615273372127787191552269893577128708649940035938151765744448827851744203767177506773333273406265593751652586169198521145107207954501891486734621833378544298779568205678446699542527263269753068255472860984396819552026758741790115531923655982210748663511235322362196121812483449298165186222377644103550602528810268545650196003830125287422409891800226126788649882293200497826573525648162283248992230603129577571914662984611259732615038665462535604984706065883239064040960254984967295159156558108779610491620362401325885781923480822020350706908660401377676716472534706016852940756680343664115297792787718850522448422671396994444118562476668642110510610663707653730636326597465698037729322591907871587841437539902838254482094003269601878265625312289099776455179635295670437094869451506254470033072644874385397672611281283886555518402101485798859599282499438472832753122322120386495261461332596730891505471140553573037823717569681738914160223176011583613316295568582819830526338741361824759349823952041962985992603476159786308832080789297154156934102891907679869367675486376034449593668546736030602326012202550629474943279700466597487878863001296931967561671101396982436805418667703521845897021087406237840916327876499398930316343544264648112589999644459608497814167844440037115290827736612691200128604882587753806122747953630810754016179325177152974249659928137696429925834375292386896864133503452984276291031947673551145729798620417179661645590398470636143141797957119132163286623156157220375030128428961339905688603155976332901642812701260108211160369292000397731394240964980011353483018100807437401856336645934150040890107388998363328371068548798320703530491993892946511712385720708091560221662050994446430638828981270262059866012202081463631342551853545939293331675669285343268328223058029948026390224143370899050761042997816746373040902468795475747097973694416410818085234006176494388875661417431143126641483270262436009412991136620916553416352805775506552372665371461422889899658580082472911538217029306884391336932624099383174559031522388100448237194868607090510098235002266371723462173368976961311283209800920868511653542047093821823441791082551598389680594389790514386659724557937754746861129313979699938144775086395657813702881674298694013201364180572914841862979800575460145123953952852003180716391351384800212305489670665152139022562365615212073845742224729868682923594384043682637207478043639024206127754327499720815351551025889451092871096741388818532268567631821924138590284430745693640164233548573590541036312895592924793656437485430025627258767849196516919731833052701862740960073744242954860629526939465656980548381365042652070304996644761840635162667572983208765131136337023937492770165823115811794712076555074892209928451190292162690401090238795272215547617201759523709024904049803183042567017229916094056547279012627343938597133428688133036336514718187209601848180924174611854059552407578460363245844121127599150586398105938576125574599215255110066025327884481565511409300223618863839545542091062044982707961941931506202744741432455033526838905684084210462652159173853927341131086511100099848607960124104779411891166137756919615136730297758289616148420786527788134601940661168534761438183793949249473239621420852285922250492115943972491780968973154482318314147049785371031011726272237496923959260258581299163078591206973479491438417706253247637310862619219269551465565975321098376817684825306445901892087839273877302267812160764660760350699943117857721791472379447951153940558317285716750172929958706931004472790770271293750933076908988654409461781172052403506534532786390308990613927362543007003427290037238872043515689679470008044009542877793696861418984418115796653661206470336993381093235753286965778743430016757392978594503797153743646770298983127326182180036176080731813760564019709108175246611557045048842970877665232283705539293239311514828491608329264422244508084879403460295661783063749066533906330083241034130985307685083416629198988790584887383392362707331723829661410400362334116212873999651283123266348396207195502589795530062080268420510091204906568099757005540321482774956739806201643043502930452259805357059055641947546001203391641424765083833407290207875985625444021023520607671386367729932805918863862679773707589261960305748571424259819694471602197594218768687311197288920956647032626559147241160935549914491632148593033641265964637910363289823074743438909322743336081614945308927442898444203374586074164127581558497270131434953140172733198355979940693018418959360152845801676102061126468478903362489902291639917887173773123645910857030679832554373852015412181241959545138850129281339454834461232161723756473569909462400174607969473027582851645785799814382144173880252097790621398914131704026527256597348910805090194033333611358112283760710187879524504787021321444588253564429420599948618843221036921288468575070310907569753578437765325991556152424249268526919830539839486989985960749980058107440353195362702439971080507869770009403279631796141857372127232522688061472961430953556822025602321058785517918458361130003139730793830524762226515546995297654872952445959702336113603861221525312948142937562967116724215291852610899510835413628631181430536434658146789580433057554667935192576240733431024772588240560045459549915749080028022835208573867614306512747454411663869204743822610696741485563720789880639912317955121854894616208629034905368751591886600416869165081636800284413347604506723543186891134840724621814553593428573598330491707404099037946985502698785233150597225542305303438059307319753815303028715889867976541681355211935768176000504317122400148015466893383986188250944116443899218512618899450833676883903696306711090785759523099811658475308441560898427617422642825562545239382807444312034334391597306661269423470505416343786426975633715381589759341794440202636360114913951312105954749464684280009664535944729605865296098230672591073678958392247128697768493737001036598299135974478985023421528875839979775449275383675456338323872136534602136187922844342502967979133750868067446351808504788872999876358051101260395453346085282598810217524240014226599504341574389398283940567766342711403063367487639076230184543967345785345868955559469100211551407637024938200000084960482634660587160029077666111839277624816467069526988149283419572265764552486221888975943395940414489211542094071600751930882989293447156418795795844668548625191226361891880148989227068760935903694016350814024566706493054709979661127087044033365618224322163103022581757632747195740494781077581769975472056275037512755447609842445934894934931003342258853583311955419913920372551828010552665952094164042530926467975119199005925297963435824177018063801880092972802427338361690219135079578444548866786158670144314864534607863935517990300057397397198623194457615084769528541645496387903193814711572300675300855937961060800868408048465949906296193801510329585948225055687317386363762362676372809350072640775442030997677787050943080803887232283448018395159648807990240791490290331218090522503017236253996654220377384473247760098585669246684489235402249460131474427111554875043517902232795461192010505716720985971055927759311159425407553527895262912622059012420325275008842823601729342102690268455231392260058701438648795489947648599428942283471146966240593431901951955374372340804956077257557604962241038080932298536204654993604485870056926495615732325507705623161907327432842664007455101122125108613815151002212573736120821463040253742095947465836311734813764525851097559456516648519876993012559946870518279664078126031720318000002536014602409405398509469053825901191858086527328286764207630933131647309586063318834432657667708808681007525378916601600983562973486975806780583225815885305526693188768980629150467382351885408157616100548639616266880449200018477467212296198136415481392359327003099045453837713158064319303306573064609920950464552554922060382537025658240561826172235622020173268087708298127282449315621273736175366555325976747016750946759530973039889568034322496579769672984437292551141829169419701328602938430146512375447276645394677408088447033943893209743858103169450360343650676435656121297635554439555889171700189050958069311814742021013970215685128221979507250232046380415991147110010844047287778141289428684891054207954803943093765549948306504384448785169119722206214342487410143085385170834572306070677996959542203768051584148870729900816087887063250948890775896375890142903282166580005925634924418429554056235774216267479910394943397832159309985055112794855279552168864533026607262207192865566876421135627750992518711200423459136706479815715561779406741617372379430864977587738038664673728393519695707998381537492686901430447730322517333116461693982134293453272401811500479083805922298900825877666589728263893438304528503302528524163572941293578342422417263333291218684755103300169128785002089862519708773011992229286476267079605346214753391049187754566460142341006877864041937467512876330706903213597357076807076671140170274808886014887074778872633468316613358356739585165989734001705412428523100490550239693755146505319476935956798774531556192551920942837874682763577878418780822312483559208349637642039236745452226639813799056107923747342694999125615904102045180664906203749966286262412879535728214158874764480326906879246575827369885220801053494352876350703587540235771619292325106994554181729040716730383517959597469767285096424238058169473811898123972788389258388488737350152978914244826156382338633716018666317581719886303571516265843209719169272017609609116566617057385306503123659900340070057257810509544848834416911623017718857524433457634925778116740713547007097792188724849518076533168344102063906688091073254206669963857844833545106697001984868150969274777795782537656660096862806719315994472430992679779733656481620612665497027007603546800101754928286975007044886340841974524687955750620712941074621978053262726185773731039433679451359959596774301928444779161788778971407926261182967705053876000613766714548580557558338930045601034656791728171304795065273023732211266287630441007431165164560688000261038079922044845037696037795980453883967333436279207516179551427367043172868436038394534732797987777455472198039660647203598649062894477086717643208468277747420147830486222436321765541206455859480352264596091399922904549851797092562046957272754942910980677486463033179214643419232043196101265876924215227661088914346782635114302871944435845192378417157932749736571903275149438036967486479189718477226049773905868284241857393616707621816743265414990341385749340408173856194593225681974233659006663791867569471095095457402625618587036295404768003792338738290469124792809996828617254657398417304323160353475307677399485902644590023080745361645427150317983835849987390216852298606307247083997297841098257435203173756141057391987114072187768199487905050675943487570458806063321049902278666645738742275933111450995302629445680647080632017025963627235152911622286988119545538753791757090169017980992958959956199027912624094111878021234227825521106030998821351664411536170212972271284174345791898058086171147146631089169085708645795680881483547298123575392088523527472220000976608588163300330690059857065406429521392410146881036908711933751088574019686422449057864063763932363420537399969146016607963758175501034633507847680856587743827546580489074135288078992512580201199071846001991526623600822513531867277499635170933122828256914397286303045659450224425210341289672791312472264070179094007571565392525736477421165074460208215703582651686880086292719667745715855656472304782513925458675906558007354196133226466509419855666075336702083608738736720741400566794794527458751499473869368215271587017662030546369409884306110631498666001113012694672235363964509180113375319776738133165713342808720739426194609476255533243937590233244768495007933611802362655622126994119606868941461910018864665953130092031419489286221207739873177529913038618384407691426593863242900823517247967518996683668663086024121705803336010248167525765819368738104869480595275990552079364944235775424295088828686662170074543184379483791829341893968656681797098093505105644981516765699563343554125130019451107322858466800173318969408361601991795259469528992864117405128193415689378789702488774020456854824221064401340441719940564752764249942931151242527321168306957050750156678493689444435278678881005023483800535567058370911769082680071674375463445193558123248200107276818259051392358199760442049609203174599002574350001906588812638456500779560845075670407966085896188257725789589011400437940654195765754161522097686030554463304179188644478401242985202858837923053121738753997910905622386512342065981727590797107500902072282201562699337803206411844471131702990762996773561368076548782319373523999423582579645751322932552018851883911141396902061034301086018258348607799473413763884429494840139320021821376267820892622887540705087108674310939939977016568316161279985674016516483752594532171945139541245351320474066501964174848112790661469609206022737411862584945996790150869640082185392395031492797275785647116837659705000074527680747059403487441139225808103103716831722307107031921427108243285959928343121011467544701545247130315545613506481739663730613258196021642403716150804605069137703527491097786451933027975825576491640203181507833933787913590695815128305887088418924628166114886470707731447569019343074891030920833285522420007374861561847035177643486806997608604806931976741227471508256579467834001644443943044737810516310741334444842729327753379412275802602274110341893517836072431180089828453878771006353247798913368596753755648143675867728021928062853449299465542810392020193185468799749179122556944422882918567548720304087341021409923089149904381052182098678303523911899145118662376705798197185059468273845911087646725488166927073519319539301615138279138022647198453281975033566438289495250290085862892019482939011458452222257062308593178770362685593291905433205654830036693585701418421359315330616963695050322741981210950873428000747045002340012716205415918112283522683451320549037425128118544912346447335928258265643174364287070884183993996090261003159201440472350013872562179593641574704133759317982454467364166213725186571554889564884566468908893956489127524301316307187094273398172769720438410038498357764865703475182706885323132486855507333833241197522242025232603056043921230029973469040660352006433476013292579890667431550314437316839260016644002652790626421880394593602210415023423212521013227230742782519720610487881934786642754853430333200937816873425798392355281309225543164722794287012918756533780395703265995501496397862055712179568822553701585052096832741379391526356663324810448010306521627025907904478825015364267248858008194963502116473454314685948650596039762676642016224396192025474386011224764430386746735655241010558684101533052649990962010745074406804843903602303259212745569768397225566443656345140785913202991675075549300781980477855500082341759692127532396440085519460940759349920669933896705593994506488700811732052582333384170901676173342905947002161034417728587509949779375475853224547030710435204062939097628965284883818559087517782854351315975255268378538573022119157590562908034352052226320704592283314311261549741800473123922436979385611740324589126079721097865715434128952186705561414926023640901034786376661132495866311835621843329576560475420765879571169581528361190271991823423634093774149485923552457964281450956588195958869123701362033301493409203338568164317480212458011979334655915887621962352846866791536232083456494787115138817542503651823765532736891786940231239162045816621848532921035213371122958677017602534338526705562975763691071090965483200370799684492677298291460507275227214502770577879840277009130563809152330271459257596835325173789282720257115705567962258564001080853125347110649452612958141831756894114404975255138692014033446016271965831595338580831162921961280356681584904971106289735514161619791502884482366261199924502870630039718213867653304069048458119309039259642803567826858169172638726635660391694671709207452083076921564944277209862281938415438840368780930322342205672089349097930110313749873486959208861330646663539467130276487717476492482447655106244439904855428583485636279281907501174348747220435718536599253797575206721733709176906735301592065172691920801698136759792261965053443859961089705884475931733556751690609695262320335718444745044681442310671222598442175518078983738236635113165123023123940826968846792170752889869440927588482374043938204609896726873336820853106168094667859665469687619304754639325348230105024594592753760627665027080051896933734084950223684439606659028310570350172425965112917070331515983236355948585572899146381199870724845918729691697015248758885038654507570578782157898453109415198755479446698426567906675239081154244133105427064500963366682460213709490347597822720369803448141053855790442027598057438321064289032079076483073773728605108522149187628684855799242581130161280009355867007243616015465332081994858501168504333958918190693781690090486595457234058589026378360991183769649676999963694444709392734979105468736740045919394040947287774469569968108801209045537900508346400728753921164046553812228982285081328891966178929314214186022569876756479460268943274901633139864875442412133105638677403785154033881108677824517125393021006624434917944021936596818278555802141442617462532288567323178028449259909968127994419599966031292578660831626954203454058586113295980143307236742600467267515455620623544926700831430676251442542316276408645092542121489728802343714967980632462941876176416715627280591636117501656909561535960099446882836743751523319036867253271185697899183590955990787707451702761977201641536016192716752960195335688886305718286517077794835244802874904708954497174847229820390265219656074364417346687479518681874414246169397979409805216454123179526742554600814696430570981202589168391103206759892289606612846891763628268897759390397051519275158293101008699194640045276401050658881669500405590091503479029191503820073497206743801084014504579194563676449714727974525119099599938161971410386005158895158433425932135212325682031390801096635956924189832139971714340035640484337191012743995658428402460980285790691182931892465375955826622171192846913326658751690953020663570396256747459230737218943688441858826794963975666588486692831108802916219549572052553406869061527721054266482012257522060501344890767422896831942308210177599620189994158761667826814429618786789214897509434575608139661218613823767510568108969472123412702076236693451232579404442021076901180560560691045620212321729496936973431975278953247582553219433110831306787792747990566901187314531352828978477224981059077574617563445088245949586711228012597114485769680687424152311146820883917748742271170010261837936648469189845683200339464370975345636440104170939840480491932054303563198837564527734830729206347120992105050854926693083205906117796453587711673173627293895877588373025050351189134049323599559512223941624608298171700427707541004778610053706139670045246568317371624182516548157619662167575838637173602636344421960924702575441644090230026084933555639200335425977035419087991994914475462631520801893168667569453744017839761072068708709749931558586630183318723622456571228451975307055981032016394760627898589516522735569589143327031840965197479108432547768577155195253188534088213261391148093560066952226008107846097661631183073890481601175165854828801642783831192369360854236331961073450795303823815741974155634537332742274030813331311204953956334663071925523537668198500815514118545305732077572446852213430439625219476235290076757345692958068423709059947034896878977177604144759414239437961305603897963437480146177084517850819863330119947409882039976466088783913185125302845910606230148828474882390921885469243108766760864286129668712517036974272156135235765628272181731130768914522090282344755999919444650383507666719689608824496689433204727909426397542308733379930711337135061969214728462759485332250520140469309042653061528511952341317301572561397884439541436926504209566757806325054138215800592184815962273496238686178857135360499042930953623036582154576412344744831413157033068063977986636847519119186805535574418326043862183527436802659073455820366692082996710933473474868642553637907870060369368947966820923680615060733408698202615658864899670070281687845261418776341039940946870397424128438754423627763942513626534348764114707413223797717032226709654574408952304923840251927311324000513765383591014649237862793777049128383541662762395296383362642356439546616232465607253934895493042871894582402467305724094426765531962969714544397900961841499665653979394930241252597369648871610648693747561571574882060207999635592611575713809386781968898471089539672516346454498099346789283337444720004140017226872797240942165123800220287820645411531082374759501176370406296162436000396284939033493478687881918341779908452122797968941076637804809154889203586051760751243569407141079911406773200847479176297151364025726407515798300972909814754743459598077049615698322613077959670342865396680729569826582511734329952159326686630402972363559088799721339422711682612390451892765411541834695660014940031363650992393302348905556286306970131533257742519686024560851863050122526357782063810316642024748441945139416138223146676759714486597736630401694558398036551549387972878802157867369034109891171924443657923053555846158901493171580775605727963306840587688754863835521490351032339191794582339015314521834480834636929029397413094107001319147861870191830610788633030536169482859691099963513450560041559969009176142328143449360214154363854101105925121674824594047676703356562617178150158021841494082597609237767029160014178487373496955131926677683076806638224292434001817293341457159176405330643331295076043232685825924771948745891182662104627355428798324134598317268235738083000296521584668555742398541110677094604914950813679288254020696971165595665960229002803713244899035434654036136890232511183460091242052850673196211771421251225655848170527441241894965553111465427579859771284139766666167812705385935399480835959711589486947319979425256345633020038529452963115958798774601947104874259011927876210919658963402773670771280913635241096637170611199276155322360146995130954642607085447037047248010335668504749842106221944298762770331143325085642390731718970657244045664709365102216075113512356151462933826496649168871015283581920318760756349088706526520589547129771961998018196333278764885287320261068707482542030267836780432157464591664554477928928401507784338416392226810277796447938160565516274420726820496200906442461159408276826043875012767434841725542428881925578603624565900495426795483661914583932817529428620684285763819866540366594552986996019076092408794523849953068163773819656883500076277048500840447337577125769124558413126210942970335644080772240184570928301033594831259592802620862655552021350919616381126685922620222006055596553765033028405487926585842683240679678728988496494082028185573036901927016353922978049847446583654310291712759490746505485864307343166977400153518968311540157365603169358858066899778515870140050422343032914291308301374991495866744467279175591419654125869524397752115188577757230836234531561084014688393323554293841348170463614450806787695350691890737889752508717265736213683462616947543594949939745787415002477973958595019508530653077111622887120549799160498945226127821831870155978153660340911259469476995480055675618462567423009312371703017613326132039134311359028167774527007584920973180599765054932223610851097141326802662315904725568947545872706732969408612633836829386151293271392803657982724799018793188394365304821357276316715236259210014172470822293854788759705632803545531709882293233922160729464876264626073195197449130595858288159082661127574364932858624837106858700924772113690412664807850194695163303936874375826330663203759278688972742981480757417638504684103202674563552160509850614381609640724671705834224843140017454245334016647404488125020460979360569879599414627331645730639559344500042933032458208262821936174801337490313975691340593380470623271387843705802354995633569235062854716504456938120192118544046184156053798018698425522537461986583987555238213297073410481324673184715050075638062837266945812381239365503945549097416511726115709972049946590464633064971690050545523517655961002552831705749365953298145822788606706139315852593908594689208509580492332297434108026999313970628638344471995582156523341628926866499482195461359502937105697184988932056313938546684357032716442093631108774640937289826637856709395787793475949330165739721889712798290542308226506292348784457489857724978877381799670127388649149044991327225934592821470763774094936726395984527811393445916130002862667455093697763525748494941229239123520110290939113589031502373834024111752436487283875525318076648179303386934516073386173964745202085384870509203671535695341503333829817488245094372707573078093824497466316423552148905365915178750862016069977116137080633197934914642565494121702654372009113207292899813474180573608087229236267910672528736668976306999664456575261948827505270964762517151991153766569206853921070981698079820547958018264440654144750834391574263789532273740802158252918068842478354644996372213930709850477858224284315513842303442120250227147140850139395948504259635444674337780779194670641954388626883046933657134203058614545607685192697438300129533590799810004779290476479010340670240196959969701243064732237225366923195545495055179000863060175731400582739855012325871218010420735678386891567711687358018278120617479139518373612628489039906252836256867575336516787660788941760259550021299403501259120765236120006834302071082244670408131479833019567904729370550610900680809075252383577930132205540952276039948666992973739630881748081767597428294097326484790171081400382105135689924117947283768416463219512985977961234753186597759313550813017985430438857257813903359079006992452081093405878223924508960479665231992808904482095726541194259440595962989814535037904838161313444104387764657676909118507947766082673410329502352085494118685678593924711742074860836340908656366021360623912898767831197748313824624685215223581978009946553486557571528905640277276000550969838338575392945556646595475940264140127042476086547952281843797923453087354757709503349967588650197745288559382555373309385869520254275541426708397526617734397270456259426812047210628079494378495517162023499233050804837615882842807127995217379051497803860749799519729073341732141965814872447986513236765174413620485680792888966596765091700678364511616189021526256917248829603497247033403018510262994440064492701352297750966113894616600601866500836276690177904160409663070018243328681065125972830795710729005396924507507916515511327318826814546900738101881102950326129328453576703604522381631722304683014510195420336803810221203132695893270874860431004833844849355316212319442439166414948027902310573105765135519692691164252362748970786005360028162038503193729811214634429131914231059667974755931760819473153218154405283342829252942343887335302540879270416961485554520530789405028345296312706013508462261000655513746611030634955708167724097012742511489502460583663399778880720657287681565747478645130594106397799223411070279106948603518781971355493753037187249412718928901575182180061604018800002325354361902544901387993260174795199611567096184085027673396376139522291534840190058341666391660544448246778930008163366860204074961928950164599991039303296174440830822236482620763785513189133312210746651357805557251079580373379610230255539343263316244874398372598693511044846405340495563018608024591659469137848286575362890095623656000647093980966358555561631697757216140652680798690515352961147858691091911895159881971499531708806904777247614667309159387796794028937885492287959590336307627939297256069324494220979056572041572848047551022810324312113988050556022677663320853481504551635404888722180836445268695168386535158016534808193532594649557237985079151455842564392544976275955891837010995761181545847271170126927215002988663495954188193032738315684311690994083705263039565345614152489902760764697796097963820448404220594971874591762221597667413557736664399245786370656667962588478816624155847657940578948782401969874243694550219026074800497076496690364943741481549075673290874604876270857154305540659088956760993266053847716213261019737420472196766014829073526409359834663863450623480691764833350424233221898443584965982163097199999736736319719516243236152431391727450976936292205481876912492325569048393008919434374895568603353233338835548374251723318664157425544118729325774040249339026337426428442504351109177061526807599388364742727687297381841961631413362894711248756888594485613955915422400671771896081524413792557946248137696409815632557120496024363674025603096454065107108890199196486220863396913155051092935125954303214731190366451745526023976510309848313167123232775058861153429302652137058730274504037558212084275252472706681642518874958095151950256851381765076067241880065580423486782079455880941019297008197768255127361011008456303837674697170229933101111408062078804927542487663564745736299769204265340905220833957622402496263088012972696550098512779419568946116728149801658814891955058984355092514177066037894813849624965355098777586129671853786681011039799627366731938158265422762433241368246139458250072626237981710777153828106345550293192429641979132917168654414545486394752770286421130422269685106014703753320475892574521534062600820526852472729696454436447966032509345808518974676560029109777652758460692338927344089152456546161340233479388988309106484095752608621168186896910073915194033226661984479289583944328767948246761730078892486418567508011405225289411607431820467548353857581398272807735484294701856487633719874849027363882971920747274005487422377882353948105428300015217321163816707195662652946017709669483486503413886386956408007643162219300671350370033305215204730528721286142937743426534560433594563693507921402295748497143687745915428074086609112129354695977420681008204433289087090432720037741787314498720700699185588510034103591276245080015048237429578143825023648269357800965146993061436395083609344587514798502289163292116606489867488514516500596957814967562521620428791446143364811828477661112284522272228697979292007561413398276906184381769686457139397987305732420126347071832229799905006032241602256729927700092557586090614543756232547263209204015408870147613859133722767997840060817554422330492716645294895854125980123540863911065953060328200471660129287467588000664273643385348839603462667360978167513058792639848867604779683910843706287012456197431530711783933860232655596967220468098773850589755424924911725988348502119381621577361025310619011346494952795683130418516959429818207282455320977727338334091760067004985312340731340985618033532980814110185318629240074293989596660080526453163514146860640342640155475592776091290861301271476730738608225128671433679991196063312650789841319763490526267023352263773789948923526996397519228903416316527019496719328881027747949294694470045720035241507127492696554486718126824165005467382713850603944790105690354182509359486663038961096620430772391221966868540275802969675549543329693726014392594485907189365825605361967310576209623750553914630122493436048600081637081198882541508002482418741432474058036642403908971599588417606334802717136248652809259563510875836298434847459055096579342458779734641678562496805829885285972430974411870949351447715253728255238626596100840252980470067639795641797406320042116642927830512099321893059135745570918189479510508982332678886597708412842254916086550460943840214371416896890100265563778669841931999650589616174791895197349668429389863953708114716540294720239830434219044325536542524551311188294453121820753210624139979880038802793006935084915093458992186144499600029253537879435970970550285015750068975121915461431651172968803074776594911109121592634199762699981326440353817597426268578531894285477830373542970100846304452084156366596867020654321618115164411435544063353148958630469188672475070735310869229006682523629930143136997064084881691784261819377914715273808377160740000160638260863820170879768341241715721533819966512211016289050270835526220738225996325123969952522814764656936448417075745727999665680203851774540485774343185703753099487431696520042681381537716434508090269238558144274715925238785394715906207345842760545257913893666129907346523996650500702992273431505121612622171207078933216031226242323418577002705135953980423890847020894906974610311328942011267681958701004542206145287861855806103270750002557698725647446434962048334787296881538025630170187587745765739367332334990681981640285924202472988150267830013592308112036533969813220420451159668341837056713542791086159706223614662238610114736657085863013886456357112933945832949005880198583005037698148148243018702489569346051047124871353037390660865417396228799426210579099169403438965981468121380656211267763985124746079395677542133130625267818993889917016514577631558446227257540857058659038279079754760894764299494485646797608571863078933539489733148327523624816916039858768150991154018064667136231053611297871010286217777376581250507966346586067871275857347244585378752284968960568146382031058033162413351140060309105989326940631053017190116297487855925059407838426478409925245511401123456044638068072313823080140488486126757830266810555505902307606445545419553661121091964838553800834910435338606311261766355704833818187479487358083280042522351996775174351861275796222870975270780690566798514688857805558032895843844985940494032676840899968292951173930358180873843112603433995585758907562270933182707873690790031543600175116300625300989362716175743501177537231385983315143194326053651557041636736158675006695512111724811627793700258248793831912109688803538152153942459590727511320326804772935016938184008300336649610727080177931046715433587780006049823755310508324657542303720156381139406359072633296155668310009039494639122710531882024041168843862082664353867150080752978121249965160941507836136316809497255602524560774036853265960464567145906511094159919038216589238940752528144345606679269879669900529117033317759196587175186997305254575817647041710289044249386316822926042787700212765697863093980860459888525741412220363451182988342315473401040498964697423161798974824746248229873595824318911945664159727431835479023650885846520176726890453156321164928057478259551512551020113701985486183850225590382769047797618625997697712426848815771193441375301626399131858885201035128228484532600242365862920336550387790771021966244998349565285731090691327379921787623364924699045901630307440261770648262888515599638114919270152560281305522192534645469778959287282031302629374582560036707682744907889949732071535293468432654776455789678865738371148003003943360912515248980581069065176217424764744889748809973080958483511536126952232883651169588905348515834371494145764443833567407928539954236777776356379675090483690486698179007661544235256156023831580451641053417745674745974696592603015661416680543526178811884485355982671044133615368911960919146906536025265525562212530460891682357285723792008561408323151751472545628829559401817059718991887219856135477533959893752919460040264257971129269321783578696722562496949366081071082843277543508000585844493148845426306300407828242692289551148154038233383609431602532560358656839795313570831689379851406228913738607326424684045516580896495740190428524609703895606490015134049577924219890435204947245768354755082769590447660833857403716704800292550207489117963485069305620933339509517266921884933415161614443485792733575460018130842925556577581200534747388035540738253381367382772916373720601711296654633820114891214833144355978757312413661562653677186925961676121106706420461792960290292929453798852260443326442581598416483812439784194986763199037116785458534035850036729575925180555244948184644116089120992256321079597642896670074969064282829979448576803639920149580905599387647153621956380515589269469583709601617447286162869017072325317814658079801081495180986940971187075779618950548921507857412133656691074397264016207098930115734293537993376888091742328383831100203634275979746465145563525473742738765162161052442432175049375344149431607452670410562188391555497760936153905336594984805430760889317619026191206801144227442811771485941909996113376305895595030323404652784473558700257017420711865982890869289379845941607535482464022801812828318927957678431026084525815625132170802993210355992207597406713177385898538817461169972620637874469014490245624737416252687528959794123015582083041000744526203718340310440156948034300229889973563705436434733784906053867041516780981140283048281295725910068999417370663385653999381899423581569063944587678489802224118808272586499299406878157997965634718544622097662919965273807475953436624116417990585174912359267146806503146974473823822882565709481828296547512669361376851253800570446519419402081652118837161898411435701980346242718529448580409838574919479954498807101073402737826911140870378515454640546369222709089190147175789712650948120587689962931956302736127954581699364970072230560202453501136050604608587833355795380789259420941404375400156559954311618620373406882696714663874249522240883920791970667750460773731170618105631938905185258952687540251628881881505767642787813877081853027568733575406479553297721862139845847923542168405747741047690122089568855694675848892263245086495176930771369098473564340484660693997490922871742104555610572717465495452941604815543992503930836773983605941417117747774630748080104639306289400486076451320807208720920005910849368558813096285752547064676406498919432752925061918197906409753515003776270518327615723305981838521135307417968448231721350420536770834362870607038886343533300898635548516613376445556579448564972649721433383805238793359130940447095073640652135307670548173429774788939965859312976387523897503558283235356728517712668778787979136083317592931086486471829144375448701411304934290086299691531092097413521087440574206120733913395110836495163555115515870876094866769445149513008432953131523161838960034047441907633100395210188080699472987210570143695755883110150882023751847558926477462618627250248008723574187538414991655020545409108125104470553877326416553900139401795371118903973885158006164701598122869400008867463255756285086898013053985723700016900302980547036209465599348790056046298787406638862607969585794619970270558323450014330664136130005362018927168417671957866429476596352453383110713197389283496578656487100758346213722622732308331179810432653432492865567326337934558544925653488404736261926605674467701911967935528797802089201717095102836260230057007437015856025292140024439190488868729836200023759586736307660669733450378099041175191907266405198172749078949460097759716008149595541881224689116553684227849305944630002243234159766530648175914615450170386355224814013700501964921764516563018881608020132265132527043437593223584057506732445550212438472317589810756748482490675591712971198594163066723901968605111754027770475844146839609902556614576919242997462909770919553495506483262927729237360770754810398815273292422094533879673250161578878440114173057112578734385181338772030710822377126318953251815904705160189205173067956078067205572840288278631288498846681296535050886241630643377052833304900846555582134929777650599549565901675361362515130743910153108130006386182362324356352941494254363360533757654368577855878485812294395502143625516052953261241489425407628522446222148318696696877844038373789085591613456532178000145746951308190401515543165348423056276667419193086290537745334766560057835461890486861378752569580803493959556957426062143935630689152412331995605156831014847235932547380655508720318537000676451822008600093965940042198987769280347964660106718914651258016934815047291628195913662213157835541903671296123696043618977008928741538160762874775552555946796202124245829796478842539607578044866339504619444511279489975721790554018039752728468828238492999471988628952086682273022977815494870454579934838443524783452786215967458680116657249646264490541777004837234229243866992010813795164183598760938146054401036179784128724442996606887738500452368940057590095637451553819771370092459856516716303259520134530323237833026461624081703861725358468100835336717830330911402037069015836925026798358080657807694021095232444097557484994619522579545203314424907102347034506721376392968478517323310374894521173682138262508550288516969508502588685761199518177753256476132698094047038960703161396821539988576394778246842863639067924552083714986984728648966687331074951277414160348866795508914270762427692113454947620410485114444810986810030039927857585985807238120303829113252391874904139018804687198739082018929188625359935743692197607014605256877191005904108834962167063133716278069576545946045685067640650391768972429976711190955364429067213781086079926899280614243642717467711008754428862633809722587775643147726124451182951100314260090561241996310354472828608147092987182748569936339910662872854654593269774718784152360729219065457157594089679334934396865524394071035031863635124387889662532913889847240560654562283459327465770943166654216821959118161212524553237708886586928398483043883611595108662100199173316165901918198879432285490830134695676636364074200517123913715716922661322101738573229666663132433735847024236452217731828807106277334250315362677979544304894887224412067914750245931474023821137330320858239664170396490978887147664223242955275214136265589976992485681989396745796970644392965325757089529048010532079504397840113716649166189173701285309086775144536538618887353639055326047663122492514940290455949279811082289550427090071891303960389081273399956272077855145879515022586874385593092071925157804816676270590066552934044006187564302321768227358480973773887906309686001794788056168866015981050902687673958324443463411501879463491109497546934353224267870211987653912025244378947419143106261979408175420924133208251598604542291731064227129864079068828163086522451022509494868779753749971333113174864127915424269871350770038845226660171535602306138974273315710890812615801537437048127364161121038594446290458833107227761980551896088632832964112870470669558710770351287301827032050463717001749622007289948697425827171034349941984988705542540706765318128552347745671020243067949034614828914105761835100211757920148849843550709676245971492545360275369920165362663370537237399666706272274050260176572361250348895555328146421248801165497236970254340986798621343311616819854375438302331316158250608217792395140768907126985439800749036051489430351904513639776375140629066749393683192905904946009088789484338312932053962191802456958517195820253884999735547347082739586025869979710816570469689613170683918765095144561439469669084999710638719693568501189568712871696380431166383765508548293690114171792388034880901210443437751046253850429529304993424441746993072290195606216450630319608531493655554339966388698189924630199393784623642590710989755904989177966889268300425299766639901334275623872421811820543028586372856153158764284999091644396805196159268575182289850546767515649195722378599404242089700178453812331287818294503595583691091702350376787800398775114968744282975510873955093006537658410138626473781500107183456307144038744123923920161458575345469420928158679241354063438264672995336490470712390398417265306430153865571209200326733856395261354165551250135088367324477651248990791770545311954081267116352989268373047083675398196616355421804392427794922666601943875371999281651822782717475725398422572944559418793590224931019653502332886219385614935712250418884650369257291290519426027091563672997743753890786614257314383391593789174975059978672143423261156916860658309299484357257110464003687739871265418948664933045525970513405843409153293280529329877836121474400398960523733753289593765354190553548693362322613467783710374806272439915599493166133825505468252175486565445476896083613576274470309172474358689547651475179850623513319539319696410810157747412231481123933717713020722734408467383375011571839271591746476493801395337029063418676198705043456688924917526614019097930712494447512415396963903674836636751174408760180101215155815670676642512320296036919240179375705026819217963601070205663606059914261756124452202806207525661344272685345964731189885428203226850610093598889542860360014085672685310759109270021349813545522567799276639193705416956219811975699732255201130914484186067815069399047177690650502542147263450349641316729308574923165942718750175119066510644253063270397929761963494338177005302418616549727232138029826499558653578635320392570900679311792932192708640633006393283769687067070978037157648430797306781029325287429514447244634483907126055492899629094419033471255890460111551229030837365776130161174797603376890488035814469087410518368756978373384930313024336135150981189239457388177573349181158578802919043816277014662498242133802573370893672593260532827756325421343362947788953064489230514096581805372878466096218806595950494208119556630050305579963881875542900697054855685319398700611019078394383455799354533763964686606037261207363407447258768574072069122371136770288144919420188903271477862521625971840665435058357751189955267019830993007986908802094243239229600890083699027092355146014783231080170396897000884839972566506194019365536768578230172897737003890411934916979073991330217490665784706756588951313762577027799648918549472552674704537995217683359085916717171334489785773050339343275369204137841196999153768699059549056992244320671463090630923001433495071202004032911816372898545636230771184674395383396317933643870181361921909295814241088525177194586532312554584884863016266140128640089134375591134619669366398930566821982350437967461655287917917160500419764414208733662186475377875450680166864497262548049414870800541048701494340106111610502332241148380457599926556530760145705796078152923921614602430607809718361697536388053370916344393210279247941946607622211360993869330509367370457588502472223470994435259598644218481634638517746370362026837696592760731409114851887810927750574548838014699309353748416754064213423297888103957916786805028807518388479197304868585757990039318791778840903554219764112662230267845275146485221477338614423475367220664436473013973328558876703400458016532133414052880240204237742047291074855379708461942076989373357252621215349935692631114074608084701233391005639783331283521061350498449038254577277753531480200624925470240379897801520053141759221819166759579158702901908805212637421993435509429547297204763736683131308925712285761920807701329512193550534998922234779957512578058998623548244838628960940258314826047514813415680256297809079267498205163501114395875967611404613798838215406132971223706232239763933576490623773405958226738245751895260611211224376811900732182526677977325760080168466261711483415788492753910365700932371069308725412083740757022097728533800603265696042084224276558840467556777630803250685715683230972757270558859493332910373417869417359470924676124860657678819498519886084154303193685158515433070351183792745858261653191510193158528182077300405495558935690173377574443141093206046418875348150605471624712992167800451824380404901177356055684318690226657971099340657062844496709935448585759499623857592992333661736829417544591718244999415435762068105667907763866500709248384231640576455495081621586471478766716571717515683795398143050768650695625494859454434836304967578990996021523524108254841870679995962210118815901755135706550292616171438998781807784134165871773893613156433246646805907564977933932579735138208217354492842661647853825125673289718584932842304618686782951491995886227623594438883419031021020781437707464302079104008323447167887981069803272851789201236784136220805200924318271442137336953489465345804251161752964438706251561871216308084799073894732307757628441078337564657545727972420333265697226488634290241473891438073280221476795222086641795522383729244473665593434318532247161120042180797409336919227968637778758074672877779601382946043059099283935791546467909915805848853360928417295688306192620917302126079289674936098824117309688269187228164434809271431069067319136351072028010281221518220280455466513741504517548403591668047344092132215267518645537399692096058811449572017763698778963195776209686434563389741061139060395733751589687596531497602562838881343033315373532955835177805051730400465592955490157269873051652083450777866389045464906618887023473326579556762975933444747735798637980631478127890698753995795264124716667867559326770454694863742805928520288781069898364721248478376882948187557113427504772613687621838979236337932704559932552277337928612765632966896006049027764619809415892824243054737694504894230057264011904056820460412427253628657656299693654977728357493714068141547763475934742842459898486106764972320423067037720815619957419372101625080158365142993982123130233913880924678492052089519586935736694474121640553138540178788907171915645756181268113383564071259985378207300400907474121867189895458171714610101072596718674071235587690563816742147945744071302878221607501305230910042309894568173476719563783186634294257453215569519910409529218583123561583909581792359720657351554204497089912862921163591003285348954123926664224379294336741904407563340819465292169619031605707566472931056290783627504033248964616199876028694257132096768147663188981207990409751256046471244914320134922175436352915958306447581832953615698873319179815498358552779881596795760205540347497119765600583866677990212204677218003263132675962412732670879215000684049758304771577456203420485746877685042163525467082356617183201496399292324348464816872703151208929333487734428572264187976450404164634757899231278952024104234388707880480137698665297185855921859198760371075785700678921494985747497292838521510200546365938629502480820875123222420980876241928934772965939966356469663666271281282844285158354720899339631840802315114032350408699473789177234991749853537523241128817237960288354911973117827283104693339073800345920606804225618904899555359501974315409436339146127156504250705969392981254459554027296182537381758367872492013874076138288751407453900557041133322206321833588298411812166344480455106697432931228737325421347260704355854619147926746097531498244050382895685761711450940221903111722310851812898382245770218188567471486446095069956363308257529748864209412266056636775213824929638146053720578249713846328896113320155255776826820841858688364617005601619016616911609977476401658060474974709126389150735769923815481382910875358827224438283990922546834003017945780073437613554033854491725514337077390615277842010000338463027696055633677007175003671386957395406873218197914049876588854630569679088732220661633285833424947296440198489111614934917671357184659617582500446395895821645087468437092093948303966595927011300975662038638084572604104311062790012097007034531387702337156825649628052014910442537704877748941643457873011495232127788846470782705991764932821364993069493020037835787832350665600156758223643521115912419306939504222102778344658884146033070045775160245691211141563734164297886605729363767804206017092969924230900396350292727391362587875578449533334608316904716066266260205624771350787809509769976014163346505678548729905160240283645249252453377462746179900113422971124535401412406793940877743331913248698239731940133066630417348170589298444677284686605358443538194915056670741235827898131749044402382791212496128838928823076576950747612105486814554268173407399394653277448987305112793919960129355623979514749276894293125754765859979796408309877876535819591195493724337817054239013217685912297633869052961289202115935048655178691440957566040818423193087919736883841535804220962196915025203051741176017896292011141672124938268167910918727119559394175182749740467008950952727640648424889009184654252004582940248412370867185203830866841886870914489421093370310570293967417756505334692146615983978339512272718952352427886445682253772763322111739263178375956145716173828073138454801847622525205677872441045126031912851278962712182478275204009943292262373589312770097247588709445111219214112014897162382793683733715655540022612181455099255001115479822966018331688521863594018970878831944891569222874855004519750419419535739418818982971240931344852542324935231059890040141511745401887032453575385143798308244747041177059058931067112088287394557513932682880532099658454962216300709318850442228516799761738799606029639828226973751330032055701924685985943925418930888549395768853484515570662020499768439135823721760319967536279372074616095151767160922040407158226911501996884409364300656934970107087218569366251714070891088042146131203042279449692314372884786500265774993022636159144214728079708200429710259329479572615034584018334931887504690882013201950897611640298962429954069441245463689250123492848402534094230399831086443650644383974471079222502970765151322098201551146527350945754324545482174451182575189703183507979687398264386347595897401166801166711173297458981340164201601785870276190270754960603744574297567535487157379848527276738245854064793746719833216986389485115151824786739107699406979946139276449132440787640024715255927270999138937758784404485278130078609185095860371164304264083697957268315115664533912206827735309128475632053775940947354601822330783246129594670500829171666638476022700933524578892242626411601745159959619125915867425331067097805444972517514674466628777128433860837732845972512287964868283751717922459963900175103164176711198760837675176545934476463120852913473657122787098027626719215872699684117941701058162673700432224788619960775056493813913510934480262776916058801785643445080139442782131968589636465324820007066592255898757322607084549469047242791732092013651563845580575516120456981322244627714872066034552450616128485633449745077518756406324347119724848300120452728184332921334664406311172535905811798064388420636184766736157340814137194829908312098260699190329034406519955375456600443810643649405173709795989843262339989945189811972363903088545831025626260490172025960827006271313924736654151872582396069001231962660449661667993021222472190315740266304238313836674234723099846509717920711129857698633656826712859582620574730571386974848768113370992076552814675898894969390636398186103403965190528939704836554441956487719559791441076991060479474783171027545669347316162928126761787809407679549708958011852337973513488346517741909489899909718245059223871921349270151928793496872688280897874874943554881964065446494932033439073713988257845756192416621033497550433790997002232124020605720424824199363893468688537037446012584649535495990882190699216528045062561932185438786860092322758485449997702639403927058623576534076294860967847482442563680818491750883910490042092416282415390514318943315332313476348782836346589331645203474859952192603458573622013506740581705278804378082951760890716738011882233502057713635914736002360045283097845277653574254944528975394035194765789419397956752886949941997853081430793720216760511453138452868797467650530714950233390973903583709123855640051798546673149799804500721416674613655317344139314537613970698754499935319570959630793363587607950638564125437200727881460378344177712854099406869324287246190175863291278829632417785698691267225978048516474895026910094108431653381628288428090970442221055777945185053126586518972435924740525327021816240116043757179516997015633536492498463624267101397038303502235711784995923999608879594092316500160972714643878910618504230390653920082819781602817922317195324357908932641237200058416696736325788206879414710032003898050364207909965474016683218765132118249756929599076235825212474552891294823287300173787034546833045797495289429164555337949203714005954267953882127335287377116250974700380635891697007490934514565495535947254238039775779074627090024167063045830531131154003575725261546307516369889139713691040377379226102519192050405315187125046788092108830957066603667759787817304164744928165804880819386518669412291208181223824535664766905086379153294705414311924893417252161358213258857694586717737712987726207069885296712194619993239282360439989864137223571690900196233679205152267334847832526526212051117465230034316530279086380165727025349508125219137515877187008916437135446889002393069494588781394943116134287479217102779842621285218533705181440997574058028054186616018442795092482335601238899171232542276041618149719176699011388658920410377136173871521802156908030562009367453837293544290244117300620864396935860132169092675936397662095071838690687961888734425790423912251600736593009767775753351934060276487496558716600775458648395509776196611390709884750922270011282381630827139804537487794399645390069903663193387173153936160751641305038273176101779064332196022442642457428346089879991611939363491455649598698307030174266310008174913164984504534766921292222608953800199250394776552761304033436181717161518131474050207149077967438831901236479861705722900021539727053581601142142463663616935527171863143587892613270542993433044857324162407195140830148896884913099418053739874589601379548044805078909508538903333034902411470469480037347382026194399806850692229590978390101086531359717395284048599113999296236665101490702732819003394873436434347542463001466296964784297983573412126265497574947968001839548437182328091493316273108676743503124636516468896185388175203136645480366520909221311820249514781821934743231692127298639502877382073121171587296620453163355917729721675628921533894707212205201495394425220212410705221284978275011627269733289308666191655713790951512627989515853907452116039891623066466744731969986429678227860789427567464206848985418941933464558242585165988160629664786798584869048164747591059836974241678600974689648136357862071219244316712866143323070737349102579645174950327131731236912275849155513464709628622716918222804781096273630783349598105337453869715557881108226781468844464971579969346126927893212329220862044562557000769633321967125201133204756324019206842396472509904926019479265148710276584294296155139478524490125994926616594925310688157937255876622866242521481250539703867766318099079588927336899041053091674082815753216789407687826818331169496956209460742761271245101936347034715598901967795877312644679043309255289095076534736785243262210759427381053400433799102733812623334458995935981180283466938076028147944208723774970053937487237640718070127488352293771508503739037344314549450380852947805395231609388451125581620338986929924037148425318658337186530223584574731242428094076676950080862711921620484352297321275512416819101181117174074953249268654958348639339970144504250175521462841077368535735076179305317845331965797170952234518569124053688564049604605356381526542489578527587127236031312779780076367092025213312851679403612910478348069011744729897788021111024334889407752917204658540157825244721850084621360622367159318410423782077909979649388591821751978515372325034741187349314185496452276897857581383024881186903354653268086538980558513311322672717597217910471454338324872705377200842935363719088110543814195633851993920408518477292438378886816976752745518468745153132297455086639232184315487628040102985904387479971066839500796433123698535502100489929064380283960718416293931510425148950099695091304393385733119985950768859468006623260511931951528783600231843753431220570679926304762810328301570940676825437371227336985591927813119377678426569454763898348026800976191730391792320349531665172613417835880304746794131297450768644532485614749707538243780426874550273214680059942142337321126623357752647385683517110307826252510377492718692873543206696835675049888246291820999174435562098834919647821464580689280220754996479648351568060194952443613083291194292582866431570619296936600534448665245109297885772551421903965468484913379146116790535409835351650209777838888024236601426526466018758021273176627195252103211887167718527909696203106412463758650548108159421242248142566130223897845120659037108374684039838571908056270872082620155905114836443958940371071373318789527473556413179218210827064292553044227670175613641096568532970374158934284714965449352662543436475509219523601649719303324275955954705865202758182022971577373539089535262597918239956011300374291836471487593952301178722287881212651456193791874053942572236018836582196290851150468023350944053049307405003906933753756072680945412931163713319368474539908896578927824950938089867360668714432164529261664454454647323064775133450327899125510921951991058337225362272349278013993069603628778071004127345148753218968821474834612744600587286031667278097139238193021410353139924505523215563026777194768397479498019449095022698530754550322592022481499510155069652886461636541317739437396779192412091060097544176559563607977538055275380320362893573693078762482316107972476998607500358075513314943241035411477787659401811868163068640220434659531971068021165444166640319715356025099412783230561466064911342935660857894627186609083072834267994440094067855424555910970164413692019626851823059754554573637552602976308908489832968333832593011349294497675921048978253975709454932612386024890083530274765390613883820516227295866718152999062011961140870457254954468862656328759863613339484270663539030660843883153363525710073015606147896894529977495892749943224190780428627735115201584218209923012455553281102894212697334182434628853610365001522151026287425565483391474102009569603016115412194221709338430050444878624068658771827989389727337565175607654048067649669220656107218648053664140004581196340810282310498267810170064798655993944865512824746779520518781773056151537614421657063412022933857019637967834475443341586788958397277739604073210839502054508618953224964443655428789211534003869047777473344459566715428481369224982008680368470640285537526327283737530380935839080824577537719538741316410928704303939346978040236913655078101688920332392029484307910996492772780489471521964964128486242444129158080984073550233676419094700236105118190376218926948323371826680418946606087195786216697258883840034756350511988304623778530579250533064860224199836424409382255665390472095264056925394666364972333639498275317641196276901941301162533633881649999458727432336129391972537713157044332165909421215358492568531182490655817060833475523133372858825663501260102416735340169476764525866864711425098903628391274230247181591135253727237946283910920101933036630028579650417167601242094311864187520226366137915437939936452325330833649928085361704134937145117080179415041639515491367098655911715816913798974711841219583107083849825490209329437727652102047282898749398971629271770636484364632739287088311298522219346111758520131915954681461732165002849058313668728261950271311355435740992897717241902677929027887885171869139900479246432442208161183409423507862700677652541405026627426048495940779025749828878802234176367108237863380993482566004584741839045652140101709004051965013651141763149415190466063453784382368206268049901802522931947921548399738379672061033813259352861282553487152319171159285623232807493595325613619523816571980161354229564856264590308334917588323056981022769021160232342505162108026454723679860775969321247556564361064741521965605679489461694395984744034483698886845543714678093573309885031142468794744726108381370616260995523592221939601101624807403133700779891050044565326242231995219458616611261589219184463346305149214656417763484254687362745352113410331940586488310938870377902588275085874766429341418576853015081913693967857628750016765321091690216392694312387463422929508559760737191661728310955559358919163694419202019239636175176817402318227640260159195090689108334763363693790172248153172465444653059408314975487536908535169572513240505147748200821563622834820945476577363134647259456095289466587768674687211217006978098179134034286998664919220632998457856551128099087326548406948005836123682452131659114290467915231770923531070591278773147939497227593245228145365265444924463831774083492206589775019816681666257581827538661027637582463240977248341589336297187960741302706127701032956058264845378183026963103890110669707102432359744543883137509203107720899101423147254813756987458159935216813646376940746179922593958431086192173642549486151329974227126154805104505465929882484155914474041508240241070828756407423318328879438266355679681021839205537626486140332042758692927834586873980296257615731614998510612132440258751887998412041144608290570221965119109831439512557128146734102967922080493396780257282602000338126094973245310829622754051701581169855389810471436504345872087690874308907136251128401530168019090196424817625903541472119330515707409066412407405215058617752397357812229632653890830561372204956002723858241777639310332187849151974061739744407340034158286770707930805587421300991384631742253456691764972328304804581988505062765223369850999388025222512431680265944440510643592229225250230881961003316324895937809298221917147708917682723366539594765510306930180726834307832090237560591754520080222209701854707815048731944755595057266841889803666119541449229996006037821176539623144496178179107283906170990512199751838511523913549491845036766571821942308045631837123964845394183252092620006614150337646303571952991235490827874938674734678925137688432486703168128009792589742059441955782669548182523169292162131439245095598422825430208043420532437168215650318554361461573435999947401636880153591950895325755923385455535907767680906595908828168164992559307995022598249064991441594485865832711640682553011613380391163048863712860810670676086327785894669096703306360759031420028512167068977109340690218226563202680075031699546557139425342902691466247865729652285470700767559461334591794349595862274805932665635867738751103993199101016495483283780063231716373268141564387878463906692094512239877638112228948880690808857407807093748793660062850873925942131301700873927140500189641931159963344288211752549392539021499820982495682368869395704722365074950078081642640322040960328063397104798480399367359164453509099494505186395974671388461176336913600821059416546607014503799008847060042585481920166163928533150889554256122515174283424417923513466141660208766719853225933918172272897786012498271310630453655097084170168698110990229016644954832325091525288032591341796503197587165618141300183177762546146000382380065731885506388115879727077528530405989646613113425234095753250598959737434073042576119926910900358040358805414316770836095744380736555765533657801207934042947275988001212414495160876261978168079146757299323103452648758143287043989605335576912254629058810954311436110974725820821639585632709823050513660261147520358234927833573192152868338073575961897893826981176022969859000377899380220526704183711668303347248756975122709596325383646897989998650912438586762141083502259451547398356868873271778849735744720850956597133030966536894201632799518882998856854578217987032401892102869094318148355054588622319746998485184494353602015399781024819007760575245573905389354933507098478640889595539643165654420676904192866415682177695317164716242871737482045461072953493693887945339986119925529602637172832518883991150344534564198295691542702181235687384390135752934260663971098071559589070374210073014580048252480900769449082159485354189161624252462413160539416505757247420689347453724002885946835517948300909564817196345983519729536630736286037943662595545618577514395013856626209243718581367863314301304985728975817022849951693310139147098103556277932565606929334242013895376071550706750067676185791765184197346778257804472001352374421945360649938677153088088203243105335994041721322750419729747893374187705830556828926196602174515580493733205457733041837036272922427123101983030561344800519194814866047011785200075983715674843197942303861544514693072526309038150511541052149284648623558314318567729693517612558568490884810942417074525302707713345795892438552614380119990506197514143660876030279816453861301094364959761187382499685223800431630961584580605056936935713041364387834753788633794353921516383386753800276770354772467757382238042618758768596909558755037572175982742578319426409605355196411567889397958215583693308064700627554325779011464669424904195189915930891419209999526537958085218591251572971365248882459008026892274703749651746290259287805577253277990289130056747408489094931557301694408357789045379242773621764129769624326756977809098562567272011013942293223533684923799257754123564745051539024012005089965446706937054874716940845931820493897901493801120600143730425514100685071289433619821317549945929453573037092345612710621555660553309321375388517627830429878287670984204308762319347460695301291643554320372503252625909968753814696760289118440926629225918597453513936158196969680739334737700332646347188391683467365667958019949568458503268664371495442408788742583641560932603784915200039421265220695548134574530311400890364683555089964306038132462689210812834220886076841791106630265605720584884633667275047673789631677680746663823127833854796466765277882832120948258452894658900368851667805783252248286806656619889332874809659108297491262731227999559937799645860194728279955628513747383253176749403660778783334393634798734870700561898795590952377628462415694681933026698580226939758647233510347572033878962121417094241407561369284735384460223186785085158434433068476557082029431825139792315882230663290234652543218372340003910963771278267708617148561096961337234262666641304436558285896993628204795330323147188146465465065396947539614786584409304900845276867532566821322220157558008078681673903132313268188262011207723282906295760147794708164314660784030147629914192068408020031561222096526473476450933676059977177001834805235150428864893655152847574245285782540056215956461082904987278998788363254170506706191582004726204555123507087445474796515556561449323278256297570687999111903825710546295890365713317808130808575717776212204162218095489883189787430077889171852906868695807086663185244228085025079546437589055807265367965634037596295125046367596186221578682747202192509662160545482785277602990388368961655135987518697204567894300354057550748823672929250290585935387492722867593972530328568867822424616709545909724840331404135761085879302407586169219569139462180880766205556676805427406928048799530462004797093109195509472273394110565150655155293659330891463684776477079372581513785182449930319283078130566146185448278244729568036537814247979714049144816130731218047569560917875157079634803965533337035776481159129423972337867146149489659174041901859381480835419031265091693097494543311879892107098821868534079309029710998776913062662961782962463907262813399503249524067057446956358622439194052615838996349003593951669449817466130606570757801590367795907286168835713367099949793478164412030638103906496943506176955860682195470148080422403210778277508686372725264398383897359741666892333834562389886878237671552460391815274097498155637776052507219746850619093044718738170401148118853300198544064541172968037498116811787882131048653846648053105856649224255374825538333155538563075401978921408848253703343907190350709694389329103440725383722088040954584407761978454186058022961512409209768325383034441430966593604322529789117617180167330973747470906433938140538691941103344786403482483504552851641453007745100860152702128938321382497534170246916650618901042123852354197194108581479459681562571146510101348572113387233780806029928967799890068464819934271443712395364264229538319971917310426231283571968968297323713910318864632970236137767750139926228407935311648077072359460321998439755173968775963006610441518971695273624454203231581312289311522776610126337882863333904839815137670792813931302241981251602377580426423289145509728557102291526227782921705290361199469260832183210858562534043625702115645034935956136435234899528748299373619018987830116817491486750874630673649421623605960369445836646405182723013150165870917948324041993576013587006095507098544111769126245981247597872760956545326418416023079452311155799548475617956244528057471581478485758315537647143722206637756428668347319260682276798072337363722381132624254865677934931036066732372737607650407776528896391135977237051309777676711907135138326753438444786661985498115163578742879382837722160974719330114173162583221004799599070400919717835492149424932930322111293581412297725956699358797564938725905654774909079901951669288863405005251538458675779741623690231378161197654141177623810848994082922865145199191394988705186694664012980043899638530461908297954037224397238345347299397830322396228995267107538281369666214873613647687113437059697215744871129760331017969861346074479787764132154530721067917497202063310736901522809435186727574381284416624320433592388864411382899869406411846325073843563897355766394557159897779653903762567218290722713282066604379574430246303763559392702881919825857761140877677247579234603006660774551552946209177131448033784581348380821616406196525365078546790382281239569634179364521471340649955427685856717806605842709709870541131108646086377001764360795720877627728244293083785170361493151443287884139618955678028945550586054350762363366073282053803499681933095369889106218089737689220097329580040715296836116470653790642730522600727528455140845298173315209219289762669656268462587368240965229395623358343137352339504668940018203247170855920562120920979365286050191768768112801981829833583589315759218279527636933357244375413546566155275795210379551754871906594630632745306533180867258882566187982196001136766641441260847400670008090513714727708234760822143340106525965474380775017776496848738360471124602684926097663348076293426380876244805187127670361176302483697200790754153115299957992923562059785420516556191050373600822262235782964178239152397318153519218801158086017926710325881177278215788741994284312432369036955164918621909733884257738536522707790312674502888221631558692053066198748202571209543952259508157901380193588586713732595976926456719089410029087981397752168136608886555566403773717800004348583869075678547096939965787097779786740828418756923912192314386172394752538307499965576587945910466025655138823939859915051230691548712052542694044244209688452568220758331960328479278019761728422900029423543225295638069683213755430227709974725530142417476636896892135067979155835775674644173654225778367927818104213353022328296931742251708226741285702711105876012832770606733561390250267588914019582272791472161432345638124290835150022967806204198089522428361105864404862587030329677727896668463574006302989484463811466366102019035255609948901465767735678987977048607423992995848082207060118653833748496517915792014275467533037288603386409847642616959668212606998437459954566665636177785664984848297981664582801830003798056872380060484816804771621349100672754738009831410908984082146077514743157765561409933461616410213199292360387350358638415784829487632373375604685652358246119435282190984717979218239397234954271213347920767999124289490739525076897368114773932683641406688799071584747072016578422539313088515491902618413330665522288423352668978883083419526333339668471758574585547445845785011746977991570314128570578313181624371930055252177226327130682400831010191552167630333015269644960024595079858810672352028087589444198288507803375376762990256202220124521475773393558836136384269865308149040381198549760450758977932264913401429414867124529870429050770966425718363325042158748309201235172552628885186193730252132555434993055550426602742893421219686143724041697622479182260511803376512280798984346504633956991252462728519073092798026379370836826094002701988448264903798740710356129115129228748546327577315611874449102372748034305322619402214258997535694677108053254236546651081227480351723667818309401649365835013887785873339647202864409559843233836884141272521557812688317717363404006189019765576614278454565097551626586092042818348344575164084139219030973639681328951026555004728890746453406490804494625535602350096369092120368884969811351924070744632840808598637801979423702232626129604324728158998468565301710104502236083873011074307822358318232743090092465527515681436547589263394863665973213332639446798062004119507455400832377425221349207933071583774696795155420098324980259739573903897943139124926453036527490996579104200024856806233917311583161585274296854937347736437495514125544528029275619330161304015760308293324619699698768031089558961040735875221826565782756363357434661895850362079079133852573351109071316927818723915905723381077731339792645559925723724573590549699594546526277912355903290898345230265974052942244587029995596973547045622467808291564865387329700003735151346519968473745195091605202142150966775035380648574517189267766476467120175944924034003335826720842271921012451506118208033198729713838852505630438942298635996276137287262196470921744503415351393058917649372735750033040968761878891410727802553117313840955628639607116559532213870698687544052155978986093509821188601959534482504592034762662583671510761547379628187856321549090191716712773610369699659273801517500370553790600289282642244358811525472380981427111324981358970674029746794188205850535303978055236172139993732555932392848872786631704225860538892513299663373736358698413621582363061823436397285781002967949859789603237584955422827581282790730800209090086838279063965513831958721024367824733486308992575858961976226738619605064850567384817092060967148037426462259391095975652745669721575000020275936411405344247064899349985985622104348071921859110134211445534563249207312673600812128768493462671392378425555434358431929669079366440932971674690009861442332858862082538738417356994896673270316365614540577529412543230246012386854251477940721438962683935117405844056987694719065300518901376600399111491237454079041508124871391198619646520302029898726797884186490509936687679021178284521755036791785654655360186778830981295725889445845812780568840073810691804476197238047876658657762734787318268752504468176188030561894082072364796587547155891902813225618207998664805207746601250883606254988737870657426469321672823868088613861151549685004532970965574591118843566422506548527508651522899999973796797531840870076945983678463828898768084179618628250043654075516060283012187781493793587767968505364738213157734825091229747299206186558325872298943557412783500799204243705974494678821483330865792711414090253534179188372141834116649134304082531865024550346005930984935701296568300759485640994908944754107912552951150849581485323798862375335970079544214016408739485519202810197725050339922795300880913503573632710313589828293298284268232477438501486683874766707159433921233548894514697842674163189953399262211000767268562758998281249165618109407886977290442899307686488316485164857991316096940783563577470852155988039296027725312364757085198703855585457065594848651249625285848368618081318247617277736202099261582452297909126952598842564578162331696764241822964823099210862550388754412466705709587947780038408222548759044896531095135185880319579457404578774696417655631344048580988982016783403776090607825735166071324020502840067867769198386345644397251869471014973734005045671593770041104245903487377182782962911157727634069410028445071805219217531360345319457900950601070853081341242438029357117863515871401503068578651396645979435392307804418228209352948280557107929281481229180930894509589240191912225406430846497445508552123386062558865019478752828832341239535541483504551904505895997291216751044183471384825764061180107015912478663692992682896645634150702483051393229943602511683323055778583656419419584860043360768244231328638716237785774961011304837921187090260089136407708090509198139092420595745225840576451344342369593949176079937318150963390646471956037493055046446429117442617771915592397660792113313248542885726642709314148278540970555235051856220519262442486713592338091889645271162599679016044453246427652707366241649113573634237659649244934399650537849324258658618003871279054635364816762926042034465563240344947644606261387672144441830150281526853754036164823562682326444146753691903044722096300155398727371895025890581019676400563156223159256718216901810941191483619982778242861515738360259170347376353990937308664110936459347272349819533671579895294364819033201282461201623492387794297597535357378995419549473536759448354131530322862276037595115089802017191831371535136574155087961999220762555156569338983371656244119652927223922396450774447754734152179970372709723420680148296440421548545058401231233731859745416220792262177184809854493160962692227828721892308223390278175626142081995627309702244477405716307282570091557817911562915541726979418865212914513341177633465360499237566593666262794039681521323123173135323725622929264040882942634097254943184945184845416193041329909694439904623169651300745454485202622944863415918869342524265007425419193961915951855686894984993464939405977134552667175345163931147802610197112765494796163822948543779487906855037194740105608352452291041078012318059806660950107659988788187829860952227301992229460752366365298257231617674369020002087193216341782363777365842332294247422041712003511646916036533152645779565673243029538968097232805998887553845470086316973291517586414985512056433553590898760005565387051295975463975656753599968465880452789100625440975653467019070996898481190973632567731514465204734904758561101787878002376917608973977682642393803219575776705362966111310263875779430248885391057307382062404065952025330490820255859360552963010782978620243614256067216629379051980949424285696468563057408265893392552642736805200161355953817403023141738539496814694023430454039242878632454927140894524887572449421476312636161399839162170608331273706344393483187000695164054905894641709339500553345175755072258306583242379386910842327269761823332314679128577830630673861353800397696299194047807150267995906391631019656447500291285487107518955820096576445359102292618350687871067746001103604067436363706962181593908103600773621357486367098156108523144741107363051549341120396717682222745867331712892779106767789228571271507272179446180110929150648084688690206707799877121543174931740140510797093542138100049348017071026451920042746438576196549116413090117939289735128248395665939364044866218368585891364703074402837470771424629519715223820610191274294545250555378823744520863623266417220215167839221969034239060403667245081878272753965536490231408147826020170468019614989343732598148711249632109559429630791477494075277984341122558271321025705109933572657655187114978411619611444030509448049526878809531742909190673697761018227749621222857068243909308202482267162604514461739071293077592021420803721250478025770437373094518998801400619785477246670881269971687196920043206229731839197968987686626617347007921203761722789555088306964554567928869067541852764765349748576827056635548750996499235974979504374063595118779928106071721243950689900533661783535597580102443253336699714108365299712382170740510000084996171268284254526650492508977259091682342050740227307728440324611797185595504391674861439712960918755453451282940445651919265219778918264633200048372900195449543500706388293156626679715003085794311607279741828103493940682289680266655638450090706835391750467743072170010649906128715465464333570381351181128279196963421570306270701027505391095286311637400435796806894473996563421904436379129321852829149139087629047007913545982493248315560464804849629239396587684495867150231352181324472986857766050904067322175676214457173565479977479887730337612728695545116018953691376792410806204256344889777124333397985692774078249541299701034480789114768247287604042561753236659548366631522401162731086097042931547853434124135438813327089704802505345755035272690405357483119291923386136378759254734370161121055630986361708240263773509945471922552771053505535263738237041381468858336750215822043736630416503702914266128140019701748240827269481323897335187919428609923190413932965564077621099152942643010210749207356592196981211640265500673296752039687040323658433923155550643779026369920414989136177247678265664421952152866379728721075632246492415612098686130775824952113581808814866319897055111522275588155874848700877943486457209665853254842941739823541966995013693215043009926123290428685808960448199511781647572253142790085397449318866600081110626716414586714675173595731800643685434581616648123703873950424185311378723126998541138262885946349938551416164486420276373819332703141762372194606404722764786041990154767438231201595115045067589739392898935504639236525783020480185854794329455164730061702496916395078260882769793822600972366057202204312129156932267132670505759539664331054178603643232328410048268738915384879883734367199179128092365751736159857856269506883930618558089792716922919792856931287285768870493097297399138760114404922939651904494704245909840438793353813126369238192512663273473736787673316553246047379377651855868902537496338882584295574995026199060109955218015336249054922368820342759975647948360628718871216971357266277695313572570611348679044766532601418415535295625702921916769938368177398177975928356756627706525753173367923561228466831107846927775109139115525654587053119240151945529329999610762533695445089243285265598739616423971173616918510055075911076603312356907312463985205676492153578707095973389027497548936308159611177795838493583713283771361377545029393044740867390893480911472431327294720742916452972404195018813687693318858084042649084125104795918581257388911089601681572444965807356981959209556415438638898039309390561344465259848006016239135102072013056005613286373750812651595523578272955825953258887470587122881805319909531497197427377163090936339570318047418519530163564218396164411971201933106022994836924217201436063995157104427751075781070463127925330455503418271837260051483119630890484103222563710441708785026188625820363110286651597876996425017440859974971022533512729167298457151384158267279869677435641064814873046724865760683772065517276772237396704975381604933340031476183426340614444579332347661791554614764140111856326993869004878899656225091777328178043546499896138362230688860677098522053045525117686558457995282275004614128709971847672042060129215265782073938809951947453136739422048576460536903122293204531687224799478197854371496924409406966426823019679084589906306444219580912609112785812219147112749838353458985813547278398070011244663368674490385626036714892322797821744343524421801075688300764424009005921723084722519718022124656370424788943432112258596956259800276185838278119049730762386616012285382141464115581361334836666077445077315292360357190716742819782700849930670047996479251776043840738542851758722960982529656975291104740783087927372447963438670042726403914165185185421250649041768776423870791698116992204091074437761795556824820963352599028776323324605802218841280979910626643260952686907099027316767484583902471275537140235775872760506327182764285438078427640771155211438090728220338862600452359424669394833050941394722957612010933725316081256432832995406599010262096859528223503105295398182927966881553111012223312972605790346237974649138714936872610513857212996329838785024512131026087088439635002800279607507866264132207813506806825741767969358842092955363435869533270382845339130653378016698437286257859251586620433395632384764742821712206895057500916913187226977471872647830853360514966041419650679697607577377545201756072479798623826419802850842795654704078672193614622287252298467648232068531747056493570399888893029169019199029900349491579221508287288803294682101236255536708957048336717999769205997014203896601549184716223530153039814881423782824220856487386469128310248809098025477727980146486187873064960634847745386229015729186152639692580060089011578888616354461974022967848969403770253643456769905907479851730933962799430499882656591032742238256226673449131458718196772399061098895592931070450575692045479904405349667722834629163850481535093998591111288897249620538614636191668024908566775451111688684536439510838655993022538128797380646507946060816799177984182157760133400947378358415444892739821084310853083062536155288742330137122173419696666689172056519486309351392097829996777261336697744174231053244993631888459836645842865308964595859913919065456468081548273222945352831023980446846091049385804507617240715792055636653649531452595066288796323649579847001632223417103315619466860287250375029306017392872243175381484398457470367042276950464672938155630576656613446916513920425410472812167888870804745443467874231310730474815536009934040381687858394995214225020266570228842123630250874574274278111333963852912568411171809645835803749299247551472131722750173352121137879759433652446199005288075045167704218793309877422695080925051987370841731180740441624658832398877020210603184902797296205557216700725406411349668340912928753177820816768504669272748463276764121269140188662271878507316510870486377591687415592919120295244053245840718943472373595269472248622147879784991579383161607810348238601190140708385924988267605690424404188804183018287097309062241471589509142994877624150977993875277954029388003929348193883195046137714418912191937310913894113734363827755029588233778046822063748799363237315171518054512949683161512550675663525269083262056361345845537075110221212678577323984400147369472515461916452954928164713574933903499283650546439075581244921721500051061479867114334959858146191782824634915955196177036669664429285581895590617014297597029658924029981061813365222267469978057914340992398816940622006347090100037569997599947944394633187413718648081135220448230458496725659522866223759875916525435586873609532257470262356593312912257130063629274158489222457990696691885448178290750339065096356853720119936730202286476415046830555381731857343576579569246478550363951324048190774995533623753483209506172624860372719282797179310628570560855008959958985644658523698934294999805557769287007159790625090051504085379046461976423122022750159804015854688088584244207139494374330499980720745196492192648493564733539807333907562041510320542927713779769517156944231363511124681397528114038104964822621306322498989086585614443762661275799391237454454612482455920697182260691489575737098346013143617201716752865247393517966404641141850572185021878269721851968928058868939753449894549631269296861674916178554529265671203370891863338583599959511026301829106789494335060446447975226215258308830570069898899890169927138051891471279811367333858812667396197228556953459450024059871522174169516568111246832011855812343665837934033891283671967839819946406355932662721495613279419416733507230397533917701921847905136207794597491334873986591817572648939044021158289443807208442154651780004968475342257423838249449668911369074388606464265770738254708329755297170070352901191426856364627815935212185157003669645840519041281426861370644170918827184104540592236873788043189076336365164391548630118862676017475981100643050207874636795544693938611745148120027509421992414244328881548216239048141062853528108744430973909180396301347263917010826123844617990738367832292951448689161444551053437415404855272954537527533422972552773794172962104099766056874808618041744453922714288384761143988961203893639593012164957083445215427347226737067688324509875741461393750781253257100076701625443709979170537932357189090724958489614401676397500820428047129881985178093541036407785265652341243275654064597408832796680986449327971324695634686405079367928842051840817331234722595503918610744876162427463516565615511403402051575972626390833244937450498963222014541014629985964400303997821263502486397365216674557307167115789532418251803770447441278600206787495516305306426595566596842722161700766893159692467825619703045980683486959290066336742261120363650046327097623466657418373879989657778388157525141699042362077999187613910342872441201372026306157848435121991123318330858996549381372189876741769253986247098576274653706623370756315211841952803200604582171883225819836255260930138224449037884715289965293949825142934859123506773203748215830535454881209217095793582652199413741866274913654467708144349777855450661477682885079977265471782574734773625971649506645611591825346080146781587805640142988866191513867036904166838504253908891866719450173834405050962276954397233402454620995144027714913237303652708322887107471246326893864338502280614774590960528531811040551824284539507275036898536993410146584793143219326817679802018202605019035612310629581066103639954550631565963822829576201184773120776510780711096876224471673136065095053118567516354332015898108424445523442343042603479994598358669329427145438708805993951179865477643466396008115213604171928194734716535600937586348313904464699529692812162787836576447882231371788658030002094726296186240630653685205012771176490469491835846342426883191720711400780196268401732132632215924703874670614039109760388681513009618660731618253801226121325131318099193835602406784312870010092455339129032099618755141068704365374342056420751426951490578464926610448218783432724558365474994315143223708564644843453661355478954906729739203730515931004836693509033227808481896695348052589812527070865476122603745970450236144261134562243145809270796725483383114825825807038358764701038732320548119286347243189380131421760289653806246674698690892536438616869565355534118451313291446012017916839945623083458318983619034788675754623718377894456964204172459545178601670900776363002253118941043832978608935641327502177859294522628231960349325443932093545079671218657406533930802654414731534015229546305126899530135770668694802351716492955181898997608678776298006835248571489923659115287521039703404246383686288595748993130344345937698873912031979036535410452758180610367795636854068139452890357283857208320233447114086395936057552211603329964966850309267531952839906214679271145875875715627647132793316823977358662558354522868633703228109956711195906103524584457483955881400974548822792431224707878578338501855365657163824382901172062613638022549752011167045974115067547664077755182286134139712329714847791133979466059019120197045651847220609109878769042907179530721475354990484074229563795194288398595121686676628388472231878796318357154469012829445838783921713651723410084134448033782783193185467197452902003541222649810966610268401343954096264153507140233012234753556254443980856227892620302755407850776278945873625496767515324538579332760308617597984926450026175732466753412535596014576499911773237746812797378471383486484466364804360404743821969826128787910325905085403639308381909893084372371577535080264558184302373661758322753105588608908090459502714370502130018550048423952228847723219999939264654712430944043701569964738122387609432132027709450220309862710208818964011650552738159372505156073740540656177496878662040145335876626355686699040278047236541130051889407003848391563382748542726071498875600781517324755567577629379641393948415127298315114240354966826047751359905339019967550389102967898594977780536007709645187024421820318802837896927652231548437086092208139076408716083623686601567083429088921064237565198709713378145495405076392011061241712907273762948871079266552128430042206665400626098161490591978247492372503541399583673620245625293519538518355679307027039884040167497412873514936656577223039604216071386614681759511495635319079816819472619343637254471535985984759146375496743467906459267496110187051978338139668932312175355865529926198921946801796833889785588395762667399886913159489897401027019436923191478528476999876587204578330380211335189678260032035702822381938349938254811710796742295215736381598238785176264527988311118028822488816819228643093762895222915252976692189899303269038134691526254836897630915745052992303782106283053046351943187868346263775351179379540936344790690031176834388330520054506123839106511953237918694038779790828567560473100607960268367237157714952888227453475175943422037250302806421512848274347555990752450736555649211570094603681998556576635679486267003270146089270287698509251675185085288386313089998478470125413189254717716334585816240470324662201843709166744918340107756164994520825026476242059360736374792477278233391700497014779433904791945208838589002441413979630699229901397862909776805992276633754032786449847882713158390107437485886712595562756739882679948961860591961268493031481283659445690364679423047178283261365137703192990420652397601515458949413780179943773799343565097778505025621575867050960075648412192635289285390096588976419081874817047000985573442182324673736085390493498944916184925031587189831744944741160525950159517816618282180287825108722319817627048665026865038113834504227433840664384507700124889951507350435522205828179395558999228692760501684507031982635258549868721956404378523207295567193802633872264640406681719710582303115075079462799620127460925367364770109514420746308781831218229967843920615565053809183916479516403745653495397885727846629519246436995658968644726817317189841293903488278245454864853414449982756372555551502803141863050022953773929923239140931543182216218229740164894357837097806992556500653457599435198233819291756360311160830564227353139214373424998055067966311490476664798336653733237580105661074538222177569981332979816957957158826117425670396058682164071192678260644779452454349506758252409825787749288777454229250457802215757968464425325226854893170953416169470366180520725491357289510601383329646493238829471551038517812684050278918957415196816207425110130922371563895451292273041004353119774607248518751860233284815980909573835567630100633027445408960526968399161012408226807640947550997662841120035681451211792310444920798142082169246244866656832593950965057215893525587890656541054967431803166507093894672368341098159969626357674355623294588773399941269759641440619275595656309562774985068229287037474370119521782451815518116730623250038295205858299218004136271610536181838951404180143575623395701604487614957314371357917795145002262339783364424483380824219249006063974692894979177299187310622771880041395902131769904750698492971320595727856927405749275515167710277433149864965416140004982804554410895855564974511372695425732151793444888961281728174449836583368053515075106077333860504556587470163643973760478590014848534734040414029935627768385861318112821771812310497759311604288323876414724164161568088885723693950539613553441385980419432306861961717748402263628134323282947058150500491500150582783789904044953149861604941385523032747337257430188163767917741446914461951704583423064522836051859544264858168151830252363578420805952229647093319743717046484837884350082221988124499958310421996619128511310077676894923767203456062041512640096405507331282154724416356398093089147036112855830440255845108300096294296397469710396497894880700067141016099226078510774663806312097237302952512161279980254401292534875640868834243840754308468601497387256950349848558528044904985776464043882761580695052755773159203652533215720575440611622475348919689092782881530450873291783463774772120827189661172697072582167353134208755553667105126431889647669819974364991685795065766545140605374612131743335931555818479837349936587205110492689760014518226334854874306500097806730378679770211977052095449636163792487062869280531659171516577991148554181325684183837560268108989140603032537390577113039250983172080709174623963425243658913390201953506635579776079926627137361842573727093880444062917704391794193052678125915411254658130229518859337334766533937412537679478039233694691037170461251477111967855941247375167133816435120055046459460530965142954059564072350861947927773390179043914011544977229866306309193192512836821460577462225078154000703299271722246370512731221046231600818997428563386110416287189478614450274044130530270691181577107701285163261513822749688100293066698528165071497020685553205142311754758723389466482111455734124236890682878322070478614925903641354935649784012933585102774157696973866288386104389508315241338396191376322083087616228257179364213969202623258222441748784542860946673749815244643509559942866691795462275522604057978025155510623869509226117463584647432945054718849555427857340312100801210586165268486435628856846824767090543639958834284637910484444959812283155615855244714994092842275358609425556669679217286667022733141375177292643948360979115022121868280592974315796126673880869579683751918697628046545068492663700387122989445187350492509582106790749863868964897392284995489951992600719003947186440622565386066385741566337698999200756494857037276819339366678670006126265123797409479782212416969113169339093221362945561937523815019824768602832832675820228516226702716615595772073655080352656569727064850798796192905709090822347862640451870526746479609769346783125817906206214136950327824689063219305950942957563130849220541401404986014243221612261566516836156173864886237993465421124083879381895698422804891538885231259232812316811044426513835103403499607683129258350418769027755031856682133719906409555142029426721870628055528082590926565920097287909561762671777034877793253310125670444062820356673100021851715090590834115171078051786807485258888923759511215396703948170632731490695145869869785439416533718853326984895033292179082616672747541420873041615564374979473221735287667156831288319070999443237561916870273408064141288185852068933770383249261910542445221824448710224235051887371229871349294986874988803179699449003409912583491988281206456385263748837301313209162713788889811101742716149545348781806969619547271631536577926540735610980397031882369903489466896053105904067220201440531028624091318649455223301449598571457056171058500146393557436367137207316348588287381001665979718739399556476975043898438984974794363036756800690797372403366668196867583551743598536972635294118135240187862961188510625633662904393613739321309668382145533764688033757185506987082287104115473560102944594060596164103371459549367941210666251347075464237437599564157770724382358694260891112357925733797080785256468930677738291440015331101781550040589708054269190458284359854874565824776942324975085018395417153812608144292874165875807653458508008303173563061216999570856671599514234844780307496594313369507146294169522297127515904881945827874778544945904890498012468770297935944897971042542609087357204206708969392241586126540806184029424065925860662592587763694449773092041324381243689875675437595561186215377463169769370430302522410779177257252814286344126590032289367804983426034648858071132257814489192988060335931291502084025532336971737930697554703979707892309138833283723870999369140352749600793173715250637563134241083592621511737094086113238151054124747170693103855876483867618712828818491818228822584568617409679036169918205832653798195088711205017642596690902185868991340069488683272841837277131471075701176855439826253924276556747633024882678433599129311438310693546228922503266286402489936796249954889741141544957567618917623440791667222002511607395132108924714753830887544198525766061171265893393075105713474304685255849037908446883497102072549131713687175748750708327657314057154599149488788337832114076237275214657301613793734846584753308303206106512599520354685478423074176263662511990403042005400231452720866090945449843386560998839220086599601601835077754148848566052715763358482941676472903150508070201431359269520704520634239584096612128223454028421232499784406201631315113705147311972033164827258031046928137803419015251970055966799442501325266527871055860048098724740074102641737572796916293232722654431021018249214123802364950176713978978130117789964117301411891743445010498720453011709189522455051965204796537095065249528205940303222077882929312690626769579228004345231677231147961791963304789106738717598839180415594671022795978564350223233755414627462489498286224880188099954119926993074984135293070416636477255110858965272408945278787550357158883341232787125583988552511703674511699455419588015591565488598710182000072722384312536179636515691477355566719555082515287893884194671385112334350320891689735439127275087718952779041269993309438834078166194480928717254897104309651692521066021144071576196146803047940486688827519142539057294534916072213162680404782917910119408880445764025014067454921144242580874542763625155685045961122362914837120110900616455462141586802885249848923843959887505963444171756703277697707302750432207560553620771268327690439981398905149938184015734225540791495213759148791761003216930648190312293139795384142759071039266313662214688216637602198094098598404388071240226170638823081862435680007878154840380185481268298896222226773456042662757379386891947531917389944684908763102393454078290980860306247374426792742584318004196121439423052115227744535801764064641975437198979880067895307483527645424942098345571920926225396852443940067332584313412027261173318187559595275261643010218584170978607893908797734845799340968130487539901530191451819728471328350470858587087697215332474573558777246198743696875370406709678512222816544062199210344697222680962423145123698256841949591915577248243146352652609876859802703931204837793843887487907025417909726978871764306423643602212953692746140063519687183492052346083061240779938235996464909220284293779598604651251815000123489885630934693826924727084545424590437712179282526664093188193663906623584378340389781278019839515838970639746577204045792209615033879206858391567723258480549634440530538694267223879649281728610701064894319790113781859763544823495853420502825402920024425225255960057784525941988327753462628805887298407548342244894050736158720924631433069346434145932575686966380341158839661957461785546881685656411363251633717968994739895962283816666082065979268476504903909024834423712941825038963679202225636574226233297077509750954575451857533973905261182467366578746098036115334128431316130374787166763660960628577381880054562800534521884998731269623675743349086382725869069882667788361227327817944777047990813982056840532190459995058232344047931270279071461753186512117615680979486758911204427295101178387091411863189348004546695264183541204241399657532642323222314271980330536426466095978735884940580977138534629823687206227206214961498253421831648125023488701537279531633561567505135521734910116321520113658847899699568458982319118836179741058626848397082203722023047763101741915823700618805596754704801217558349867635477085530980789985957971750849994196867831040299202975294816502293780525155814468813249656335486795270228720693920409510245820455775169156688977957412228290251627772598142239380973421265754695276789873092267644474613116252631120411859284660640968291258635793535410588931792045475263087815014200318013725050227498270776149999078517780242273933846748833943696081010146072783449393040128678772466714969311011269493985224780796052606813114927986836997629517232851044132006305599052195768454053999736191336562461879975898238590168122734973661407741858378151038662287511106880166759972465458374449014662598027991418949380157659317343977213800394101942313696653292434213205170776653611399345419795582973318975000096263042869976539388839080620814472646542538137413808439741504945207650710539779253410261931018791761398650720024277583345758583855168239295342847642226338424945114470954333708415240300143567696414902962710805220320356065478937569288809411974395316855685930656372017208200497204440485895483358234625306703169786242371107080739640955111652227770126412095130544647535647920687258506418393990727204390527735209631944746756816894705581834425640159479980223716255043681229338735744544177441984476351412568577426418243342164353378758456160016462695653431188275811943064854350384741739452508343843513312206896072984113393685527590619306219099461582658838672014924803045691555049460294121999040019179137570413532099343795605316409116286150811371460279619342270001125913426920168837314535019587070703653991361794081772710484511593361905595975027668003487552846763991297806008286118255967958300622543102096999350662347853005468254323966793614956177555522912762917197754530878212548508105309419631625659632579594507331868505029752177977205833755192434185425800159159826575231224523384042771926526265606314607501946711189471138749609103566012882171943143813474563246801504209165310473733936434603268393525755352642230769951092211939289335394110152447033850479608502531200853627023927323803060662665118260360280532615251176302890300629002006904056559100451647591698612615059988648333620466408493239522097072003064121359929299038429277668729145328293116132143644236589457850597399244409298243714914263016649354203730037364654055262414635984120094814807393897726591181645450515828136865832624634264530170091091869034502948364330650602051937389752969932215296803628140289551056590857882324812488659843783050589576551749148417497843999101920554517936462766485708711087544153052009745516051233905779093321389010140202759063612609168048634631584038424453405015513988917326665409364582032800593224251201546799523537561693709436867492904719877045072847330912398487007638419931943810330101945823463096613577484194708172703338753367779586243265734501452291994006825900741190379900433715244335300840323849190883859049284944206840581927308053165732740241176326655656818202560687831469736160124008362491547856556532593468932950164780933071272048385484933346733226322883617498208795023722112393183963549453234892186180374988391574935980886042310947716641722745792086246905738232812077588348940714511123832546949515188105487124218433951518307787925502500159974647523177340259681048167857117985289698079087769971527500670747726640770486195179306485340186773020341111875353374571344834195835839588254079236473571914974300821147435479057483302801068592495894568582485755987062839994186090159704063836190688408552702011344822918928892419960527904940391097551391138382388422074914865243350997025851165026457570161765616475556323930946084660764544419169673085183914753461953189551368491291262318603417233884032980196696993392862637026829397058105872551708767919885811693948634339060391239487323227251191315433460283995612248245955786410810427368384139470540405620248398469316005873833808657697525905048464167330491250982653187633279521968176284271704905583706792973379247785660368210438387404361174051619811261737231157151494983482767980951990279567578218098108874518139320444272897217046303039776165924687314896082892782905255787580144494235091607765666293027290053028517592737416091283359870297932398709800546302459711210076256482144926723350830561533136364136537653913434286059424749482105403243254238098391488247316797152148410601473027137375602023195881540203939569614455873794639552640064121765691527068369788400321056873693949382705320674207355550376203165002636694849856377701292285904850240107155575753025860452834624735683897207995562172098142915643563488625854402864142040525876863027598131653121682718844786545932620869512205339546413710746191957702805777809806742208066652860729822735036943094939554010361216115258356846485842196858352083190595072837720778635320976605841886555926304249257049973579146987337744582433600562613169871107226293859600152881053390996838945858297557490376330364074420272540401385997595359927426446562334666839670629710408137603846380324827363450866302447587412136358668392814770162664750275904566861588211406642312190610174433711250536958807623278383842206660497917069098512433466858015559493475160407321066049416372263490920904205266047153814296254087772629786948461418204177558919911803401045719223884455094619244678041942990324893683459719292530456955119684327392083466170341712109697688522707433471555786356994365969385306507737471290434784554114763333413483591806331641129522263373583610759147384233443181347135652497622388312398981798733464754731100556103088250576446578887729957913196614211782333097563141638258470088509081743211467084813062652208538806550283822554014461359315938616019621368624588970289060186997093998553091306505016043769346061816923648061936239081812467324596349136461396104086689038347122631878355849260779480267794386573502393027776493309071894821822131797206300924237359040869636772635713825178056384819459054925070096865294001593180042832123306360035073543251204950082057090827388540967682453134315751628195782977001315529209446121553388514102251975659423312227430614240018341359378279676754949116564121630561014457445159057521001828283455990972535650343518538069538835535731330937636644877310303939896795356420272959012442674253781754671866703965485057647808841928613935926795306798113154917245025479159640859876200577226244314758960614702779395700753880728210663501049452625938696779149199956095433996882865772134522387602904901528893728781630027746344188240048689914218020981250150443567454303308921611018667395155261942094589154341720041484401001919473037552521234619764485772942435514562362840108225432072336350994313376530328536369121723138610251984136750712794674579771211885135874348009686606482968049537519809842820761960286245402970136914487578070657731582213580342452015959819042576572301931077893030969704737702608837263877699391241377504210281702627556347366231393823270641691201306311657784901660192513459083074541646333873367726297899618713313199870750202017893445743252951740242462959834069063238716585591210603016179280933473078925271072407769898481875452127008778995257485064497340657665725992876579964981696725838892164751340901862268241156058746048721281979003742773865560645313105728699169258401409377573432743735564326891955103866469841502736833250908684562396605000240671411894847871230430217680609541383670333237892709155728171035164293730309895383237150234222591922186829270061089448329611235663336359501191415690615444631563641742892675181871599510645915175930652544292666209451279713267304928860842205856524618074838969554746420730957612155486246003858795190142497257776785407368337866331584780110685397447526416934850529761176383246576863776742041838941393109985951847352289146515036273791280428759436265374174615876625332886755155197000839884152682147328332868775373396011833097209450134120741398230173318123195189672297764181794556464198429328450208815706535440161620923491185879884092526664188461727726430835880969281377656608912055055695770133312698081154758470057894865290848888577775535772101671854695554195309147251347418571979265268607413515975527728966126267105203321411056755813513431329568442951127110492594828687841391103125491819386803716178161386680979072648137760881124207055312600250514038101977185521583200309339219257050038101928581138027033136360856539158771037261413302148185279890656314516008555867476031654397820526255331470355339633164441685529521327287635745657292656898466665546251207707425032003100130256756339156103116913275412783700979284052929335440710904041788203777743286827518227125106209399046042361817031307393382049184838633960312507153317376041342015568801407462992297478461831816559422207582076408174487961889652982042398932139491055115636280555157647887436802104964660363582544454448980674221241902112560866939143935001941559502120141023437595911124926536658639039788456233472889051007554978975917367066440400288815906194378655218824226281202492646891149495021886592480436504514767434911177401077101473186441949934430234860211910989471693131227710645772088961444279669712969802796267651311176072575917889683045306696544245880346073690316793597923701629365538378682248479110403376428298565032646450218982598145143434885206171538616424969264038237235199886566664092795634592683824678330697799693689491536635986586319614431760242437774800192553399504163574716441195333641473974897734302378945107994973225348590549545407059989280986883370161421955187074966456469668944889090374513249050169894893922949802291461618559163853451438388363094162786349114862680903056581561269230188097198994473912354960252391998735092086256782309986341143427430259048780684487641125553783002432400353049156880936412155435665443682633366221652024172878921480279335451819891349956002130635316277453630785713277696664878304299514254688763859885612748133124325609166892685376718307530471974387834630477450327539146198718076206145107233449473118997123162756172210798403015083851710124099359175913858264874309423056021122859173335406991458075034467953330862416625137500276261000878273121494419688301257197868683020594470111654260009709787180523330113905012345941467266524532745370015795296788130811791907884223801549779624064085181166227707616783890302894844962200217828765242837260487054628782113205824929833925686388265714795857189982090706769171607478393783493273537988359109051697634144001630799689025431293579968982529607874977818993870854367868184446448937487191758677374423867266864218930597922795146611509854269842187344054424999881717713263052513491382633239884208934456435932078554699116090610792205595157600074629923915011779579987293546524058216305121380560169707017550550215195754673451779276094675122345785659119359911086855272995753159935373606053696139593062434390183124621666368925018525829427677776408140968206062180249230161996073568367750505801009799857362523982759542800152271393705484636682333096932546761024793612502556783107832644720777526662506027105752435199586332078973310895007654551498144309087694449306346688275195446820200122904401049541447517712738943440115711879115044477348782724856336619321229028413115222748192483699068634815393834936939623097569610380516440493525682379124622525993004205529654617964501551264442618202423146434400471613722309716310756294895501840021374742020348704286598128431918826794049103697805939731997775550030638493118826583973596732415996721870144353710984609225123702557075116270285511406436853237579377408599272798679913748020996295619258412745872010064771776986076041950768705948701114601468792000764202540149147118096903775958962966535400413999399525480182265670135532253123661972264625838613166825639698782505675839021910190420398706077985000731603936576913974896124752333445486890879056889310082329083023049490250322106187867274296945302180792254063870178794427528609411663541928165159893460220087241044944704077935656736337558081425226981476382278830384008719225062157262248671970023244408095376650325954839403868527665233629048400076905375256205764593927949072488602441783591949895384598433794234032092607313215735795076677596061784176970487832555585218775453303838977367114066153580492415906584322382800749461099124909837853314624965097764006924800696859886199290872158836156324600309558771116561644347471839033091851778683025769913204526628421627660411375192299782665158712262819087284260600707069788374509936225788392431201579534542412109075938045831383520036272753127347066469744033452561036844379818694825737573922761794007292130239433185529744046392006251031249678864230256289370197260385018703851115500963011391730715214610002609677334987481054057532983668519993598791880549038000060522527083350018811332768518115294901806528697720179065120906530756952058134358727912148174322807846570982876501154298820044414836253201430574237681279648066992028746931556987247400574017186956785851112696375921721384018799710719309819469949410933744005413198399427392539895680445419809926841813593574685072093446157694412410582677112164745879009479836481480847348925276355153666097713743994850355441617601317244422935435637006619586151379847981649094321021275041177196255293565618873683759292070188325909981306868426562753729264502762887006343785803929126856056095552483843885938844926518411005392965284931201311036988878143940053296920564778073894649307256504524525012369262595827057387005923766966332993314067223746864767272923876504109224701666464989540868450026232934630733392693349824358516542097330304968041120041919155715040837674956413822782447804633124164975538172590508467685451710828418507825559113728301238373271842465713586942837716623389397019687952407723251055286838904531711701147351862427857975439939874905156975369335722554087349670990274532407994841808797479683025983718198201532880838121694871538926261886008773886805018644068055773241613743815718042410906167936629353637856200586161499986285357693817098001925039898617903412443388125567029039869347778836564672791606207290892263545286564657486912856629778757526480087579517957580029079612733679404950159523074521934098366445582030991208996181004978780204518272722025059789350664884379339430544804251308570199623288629849343731098555879188676220991512411391342055277833326416276161887660681188809985905293774926669110547417093311606802156039492746254390252855002827217635725630302572419787928943958923720636340028432382285738743295898147290547156328524665965421395034138926196066397520695692275284818053762404078774649584020326254211081393981122195628031565199568603179687471043645653841778545904670071639073809681688819283986647869709553158911326034411955164849215993983528191455103603831726153842486669643643870891807727085351438201966477314181576040436278319778223611015786296686101836411130717169753544443790910026808724516166855503126092479215060880431767804603046926097339722597040007439489751462932808299974945599205922365916092968520342230949320800927352679452772159173336654234939791264109742732008089281485208322291561164326402600536408932999204937550802092865482102206600410791704765651901485649793017299638362896306411852286698632726185002183957521360392585395916451751791687637178449806112929782302905845114496012048207410743654179424150520184669255740175442883126504874051237824955146153858280942723528234012946434086197379169774789522426720572246748061624830196784934785711809502671088294935337361750331340144217540651245357757345816678772471514902530596664569477617840251601133942426826968494825491404825345500334433011273257606741148121092373077478447629384749823784144060326457005468025395595554355186345906486925783709049539969578888334652479561619401304092624745051477994882038498067872037958895863157681286600881213552047668297508615502924306887127756534856642060379269259642225679882074709822879581098063774738489708125160712447516599620254279947729914135483226020505837357045019671809494036334808936657215264157171859387308975520363749179395731679167987861557049660081094553432316100353541221990788752449413011382935933590340926733199183977933699027008796620759083620657790545913532877918541132960874038043058333242126879456080075705621238369887430488973960283097654006868309992881741143043362267328899595468952228329001118327333224332735273447225592327279077582729086710128893898299518913354242239056468504773791062995307954019407919646824038634291251449372679836991746042416158018010827715934305587664911197799655084092532793540054857473692134429679651026562268489050233267379443966522629933212256957051221826954030655578472277014610104676643945779017163270134811411368019325980232765094759797486241451147780834399799371638157271305533029692860513474440111658182104102583720701078930528753843938654283111475107563913467072612700472904310751988837719901909278322122172469004949150949896457643171723694712590684146391765687305867387415735742681606995983418856784599438284918686917426863915042990048551969203517963252805370117301789519037025898768810061669545242521849188416560891051521548542203474289138773724031148358690098394643526281625496419754515059230171811578387695509824314677063468149952231422572145955115627105596440726376827715897195593998634668608786283919609566446880001876880193563752402641865981382628344672394065145508651807298462729368177434639325597432748098999564069623371237169672760632197896372049023568754324086438176147834523466743600921183779257714324596443624675687841105134505160050280668152144097573572090650631367016397904435349047909704922373917730841953784739571728366511000956068614878981958622780455183364867576385830895143213852062312085400823475253727768430728774747088553833608654498761059586039343046833374560191725158779026256976046124572647427904363480275098281048085703547251252101231148830858953559687103767573399656530241619345353741612884801731629024065999430276710255359043546925872086388031887073215076634471445685613977851856905642344745466711823002059364948071445500906206187450792899451186575052840279828919919782866246528036197049322949284266357691007690046217650424773234886448162196641434731594953660659353144298347924116554756627502842347315942197515945509630246381615322655556961386621859062831291377103193216673385408217186925003379233253776434611305580547845727352238366323698857454561915205141427718333288178426184779932898547214450068454237433568619361626740387464453098542318102988503250682534772113077826590181107835945525103036276781528876425475665637825841432019382476247928888420041555382776259105244296501097954732150267077644353840106251734946986629008294485809990600369991091983755757494459645380915446517119235689567230396368655898470220220815083647152597999425414223665314043805527361555780028457604003248019785552220663475521164012098011374197970006898890589728839912830484704230257852639784190033758108660042488263004347506244877221789644186634165383084284989678639979520523938835682190497914811730720676839282356215493906818958349460752150247071113836445207604685378076291345717013737121786608921417531616989836063480883531008625950940526294046019204694220509246222200677500133018954212513114478362807355940511492709640589175530360495054973708702085153215635560920700490771995676737603974612369834960754370402879997866058272352228277185760707336147099491620654360157337524924341688060472425105092722974929319854039639852836066223996515406737631211439158476963496023102194391297335090733582778326962719789714819496697918610261210935649251157588710880373579572412428130713170748486938331832321721350722177028821160854378664153874498072384654073108745697078561768208203560877547034369553750399398164733047460293582523241201982774565293467915735978525133299513596934753375675332776288056742365554414846440003495986619012680217849101084024779000261444673189574619071541781413634004754821752355559273723487735227999601888326897631008780283499360409803962943177967132125049543749739463975585447299373671385563978900340226056487026036205327183559472812811603416197992595532967172525573302645530757565010325523034458619576934051544094561148654347720329313241676531098443716161111763644458091090245506201332955081195095377701946689177130222008326069893638496440014888142699104218193410776970021969827724169513690023104043673921548565114259902181353733149546812656030177275787355549305785027518948523828237196957815560968340035137525687902382833917362210886001162878863308579262120257804228576112181986578336846179824463749927547462272421992289109596350668660193706356566653370829824422909160678457086735118988083225816257753710391261699825363785591872701455527555629150310835445506967069128294616530174560820457744848223514708361599289208512462798871595437819658385094333548779053433666819166354066483334416907234685924775188487412540791445454538319726719556545170899349550765371332027789285152271416773056494711857803932801143214312459831521524516596940872089191624432198517554839581987872130940355358514977486609932046747973798140054311543299207484301236223927612418268146287749598189833459600046373675361976150761914367826042025001157048636946955988467748794700991351959741864129672788146560224532864714607273136808404179097248207745261771583325914391251237334670164647489919951732809445182401921187683175627485465622064423160578400664292496540385105088322341494171647230777480722558054270650344119589713324763662203370151704899098271933527362255658700878541479610286312445279098824697547081752106445087505507530408592228861475258618693282707337068230135524838574524108256775969953662400685383051840619957511098549658476652360228570459863496098544050445544275913622426979055348407591726001518051657360329257166505300613880700892910790435006329064430268296140131256916874446735103461489964933522307763460789957478870179701216577250449963669177077601077307276840859993093540086413828773506576515111356680405099593340021370109737457260216715257409977267342334720852019822006531088718490433340826518119193318139170901147329278604980990437211946684385419640729397521147118668601318167557364545518196555298182794963270176436472473610957609559483846249535700004647199308242031079496433246769952589224319047445592749653609360416578808945578869221733045784202910268598623080945556909312979046215090857969120201468043486816048518413756152961381299577498166939611396204632987886291577604225771295803611090006533585586510562491189511257115555530179272564527446675182887149607156843962957949821560661399558224659470070177487738980570839963820030671747906858817153143698798272673430725006843880066062164056783172116906795099556504599416940456637379904864741761768380257060398239972743434126942002982771806237513278523410755082967355576365720262677000697778221054689888299601576516646085501996024530738647568599014650013872248477397357015805209576626558846710420575169069265330003250077859222062397128617973456689818465850376233547946714236625142781781258165471825840615770816691364560172406292275215571290551045089932862466056836566555019778447761613121000856158042967232529431004523684386750210951417189680011957784489868552325250086661162421854941049437135812822124857424308042254647505255807399172932696909175235756080673937421902726154977717637035437382081718143725489207238531046652681598942808214297960808904300240121054439354771243917881340883142639476020356905013005910750892165024096731045454246175418408663725104574173454407713716335395361656343739309714398409073076632199342722656704651129201072386915009081615452933472718284852050898535624618077345759179058642619245366143450646932923720671561525217278462942834176399323703564306179430965097846689755169366574511274381729953836478492025593949327149247030162623433608468142021007994035502813499563734898613319955530215010744287641428207109949452944297499980496888876197549398118412065181191023497749491039508645663671602337423689525309126712162871885145732166341837243002971354234554846505133552582208365110437401771727175738951615441119020867211642189650368672906880409788443407207762775337475549322872557682854697738810836228441362766576020818770305976191209328901611771088720948261695991356648940506648471258333579562769232281321286830153955189944527198964072700912773908746940701044337761267216048227747277568851034535372590546701056588973722804352392375508398114375363126924668553955960927008876564747033958356628626873863845128931492419136897253963135443351223503257270249192784329200648219179442717563384338567401094716361571396465659067483815385343567719930633672751820227445756240853373150898774580317641332011976512527650974215771461644703157381057184076413904895229574432331581696602210513432857218386328066576086502697687219997712727133633142410983605451163128675594104109315919678475463032002913779502224540328271918815950045349269947438550627054241780859306310949009317690348172686544651869288207790083513313684716881112566825967546019846571688171668704411060904992452173526142071251934535894851894980354667898221997021113544502854558423506879551651933285057162667171306024074855485815275579307766166427418639819909858776897495992752842785706843265513838380808787203096222002468440976564183689509118907953069003887090537388579694145696317939728202039955606767423146903179777567990707832454700982156788875960378059512926489464441654980591232868404066857690179550519859112980773218978628327561950672874356231866324082800899791810557162658211901193638909248824061035451430616870489493414432619915617161630658754486284877236313412003330838365090700841021119702131993653389291324677336625949026607837121968906236954395739714889850755912401607394274306320969329110209561902130777325793682575703923839512184533735719682954407313905532534080903430155066967801706153970484862683173109682793001207130145610501754321836438036191424651922864251262649044232437380355002880026497256774850945062419327459646298036636874885197039840032649923705264027362289058513826943580760275986423146845944222045548404836462373464574985268424224718312403970898379478884809260253310565763010869064693374100024497804675519413799358961646479376227718407730846268202649713023488489084227157397172561306137371393580085661011259414928648230604800521316749206741300851290958084484634108566252160179611646259394810149270534125477591157096170363840748996255501774688354263981420763876961795100687084515280863847669683785482783482051476055866876605308998419254233008566191900068747858879373606287445112308218837100489513838607106706977392674321792495149543524413172999108972002154653469622516640158224505817101420711661278671946829602978957546879088565227227968378451301380523174726577679045281430353215734406956756482837368764980283064679954057656036843235575750589489029614537198243472524462105671518049368930631631578447581115235425896086341140589606846616479368981516205900109927882747521467008407619359122733197006932193265173029017777125546110902437946820910429599127570426417593407665170925185364951890661715978149031017465861892893416092135975612271746575590674317364592960362009754656451605478649013631432642932084257889722987563464023970735211557473631764939712935965154637085309201891448265837199865202216638207446744870377547314033824284338163990242694647312812875603569297005692727686545402791784789793176656203736307575268610756378228233366396109545759343956965484067056826081312495970390909878631196138370300336752067880893989511827818423552253925701947799063909400407684779147080937694689656099956115682907960139266376624358934186777747821573500260224770437082690276656564178614138019944430325616298348522247305697234500642090950997528212124669015252138548744257332778201205970177471862589397597694564448858108623247470961593243026455366227970655373265577955381120514266353859395447707315394897492553302133961782621222378341242007617635900285700140985899999162257505232182981273461608145488952156143661331635006704981958804642425334188709350989043925773638644181619167099560588565295016071669399441645026876629965338291629844429875793275342122504251493267949273548304808477064225621504279866220715432854118444712257011847947073485767744026136452421552728717346128074296185944962094096948908597237659929620487447289227458400790390382722464775077429267167800456203077780761323189364688110405195353682062980861952641166963339865649516065415246968240689397329457453998135443740054547865929140601445005130787581855353150381782036704536853319719854884870907637880796983945369957418663675047400345741772459066680043966948645998713129686720284639094907168090329324567295605616023081152359462646320858693364314400176778371751025120132775058610720183160388785001885635532455817823287511677179612366082024681911343694765701411108472835978953539744294189219786571572317570033410955508822848326508891166500765911190576923022231679806139914308139336467102273604003736432108823435818313260548982350177731341361611423605842415032101510926295470460808162511952797052058954051504076161050571892213506349606879784949329026151480813872600090484419702187150996961488217928478749257370383514649361203230445782874335895982950119073240292525715454057615806641614632561149593274265350618221804322745647707149375842660371432997654617386400296474555845399294386369965816530951619219909848335621443112624191992293080465764748316728048147304823658048038355178253849055663294263047875026776866562172025402187499555558469743929090858859783867383779469942734318395795104069378588109863128945147667550786877549592130140016549564311925264151408590153289050354298576652625828477109477407232601682289741731138237387267869606989938848917038209145072544228977813718827906038494105920650598279421027532831431829652420508629721324689796637695070085887464803394430379207362828101963122094297337088141619824135958352239603230807385165209867495164813994281718457373545755920676797329424669915464947778906754594084285511307108103857614847961719309560325063533094149497985183755712049448522031103086868471641630691750963516469465153987397241645442506255155922760558419469991660733126927102648871525956582896756760314778803740135447935747321957543054489559705582324967624813230780697603739627136606337050001178471095118912645499096970297512411632507834194223893815557879439891107015377722948590729653151668352918505954778578218367926145703169411316406027235242241250733715543675515477822441343021770123384775949849340181988731794456120955113904037512232008311847142426367767835230622713807198662597906603933278754382422854544048003416123147291170077516772959326445365625659545612073104114070221737640819865895015011901423169803957778868052407464075840014409728953416231827129836864901395701936340846950655841017257049407286374666604396259551398431025084876811784858358472424342416965900382786935133344661991488431936014851381822641686996252413279703092342370784700364586987872314391879767159215717125734910720638537591473594411795416263354324859224733461275609265938146835655593390533165982856084321702003890170115413425559867583702423204189292286528417226046360996186765082168572999350144421579192636625225947735172892522464295827044550513954349843809694131332581985414181109464374704917917950217939121703046757424973258863623053156343337077723374685739968130696021898745424485653610067081212709347083210165498023984856430457063857774129631619594552279888280029302002383667885335902643251501330828686763934345881670845343324133079562124877009968575736307435738454574414776615401303322752701357181246854673000654159203921262110303223347119738308859947903682584863641031342064517931329005839371632703949287502784075956559612839601493437348217633673209877919557788206961743027941018026136037203721251200338526580713654541110365445469067977681110582493441864905739193377451812166906523125029725201996838579866989776547716714837344275823637270148714568507218913811944446542892953656590859116513667266642609523706439960570279671138175658522934998424702782525248343788986506523639979590171640456315908125278088528774664128833884806712708074948265970655419106654621507309708694639120046178136516159369729324401013917601734590167889710034339097744781738713289832259119308067649694368320271257103572156957927698774948975091885007126001374400967110259598829793955188952397254397978072062678539095571728393977627809124774559553313518247977564981955677446008938620368638760629289718049358403748946885577439873342055203054982567542733242199646044380041206212361208316349350327168899059197700522928345508831155668938392405338795036302717899834920232876186838480985536923777410075560014389896850613918059878936528614215352993993738176303266410011260830907575139399598951672049211086291587197023831186448012986959058238661856719081003277769091180340395914427635673007236939125970755442264827415826683775435145775055602927746497327576633938093830091677608026975576465543146016916734670563305827153859355318710565533217114359492726155290174932070543876073149243996668605151403657456266602877609663711048444325605846954196510623138160299582032188164432730195323016363560155324513262660519537656904392311729036120266564778154111076465331680692131424854117563807546319094675434796184530514600088145436063507086694612811878849497577625983439502779309782061276802604467488120848197237539162938932714567765661942161435052416650240866856610948655702109932894471570560771593103454695336600364175567645338571833606310091911682787053315051491517345606416777068207755107265908054316249736184783270756064281694677042505481252173994827110856919201647218198802586829704939428354829674673458928994022584762588300933772989912113408495825396419787246015294774766823606391891746582794876786834394688907538587443591041944612072473710858816965763535257488125790579137483591197213003831478220813705896974919303994987402075153171350639304322021664086970155866298227271711449222635530555655017083771598575802313318488591182629580625777029019080860508799995239352493011228561744382121758043681080420878484607830450640372707000318463132734143534736335917551888995387562008628870037686623186903889806705717678475137673730731703539769326842697458359171286411042442136231077610309778901047260622042389590611797290510697954925398735666994353491675850223833407455882054720061861963086300002605036380519409703838374268657888066355484993652972655586871266356282802625008259607853932071382056836871296762993043281225202852358471677136201312221221070353322513073336628398843111197716232628918899714030136868327990275149189960817961691004956764760965711561168132251604064258431722073504662923648766488829335253826208679729740909707350362018753678952131979594562782536678553254239816566987291920855988774468920284882386669520134539618159952942234529556730925594130986699040705169464534487530985978272305681220589281258741234069961020183410416292993152026744743824022193742019049537871209449336143674146645327845970349418014702124222411240629511520643919047028648432298702974206422891683352327438894727071699529906688828014896558346577831795046122672123595906742124833018529062094423450135592205892711913004161801990344059941819624906803141395331780864056848532109098597317804607348007196389216965926515298495687519541701195418187410445346524174795746472962999985467918820706808663823511096438549563751153259827253866307137245756810442560014214310767736494271755510931648157280591156398900644395763339770183737979209760511789814976159809711892026891601021687794810560081458437703559777587717695931046460734811087096967005420192170736364124062691504990926761241176144112682503385564601146642864340298713041551026268344757899340391601716098971147669362918505469418271281902877201162789148264948290245480002460068665941157665265506211394553698097228642483408807054255527738879654457135246290160250888722989938932013652150811640130999897314002337107083383753841281498128572000694546703777035838179464044665570636200899600643516804166783025836159749933634091381036249874076769367950303225155278605281495395389637319649197054724596918938726674520942786858277825567050719146155621461675714245271422170965878865856920242281346005527746147997142662754063046812544629016600166584619961408138223778192403527867140194306137647606666405546747065590900271245284194065632377596112578458862472654460437182334289835082341309204654681981762135716910707725376954698222085769313184880826211117146068802814518933431776372230577878828972895330062883337004827897015408331619157889941340889598381137158075455008236854458669646530615670136985197516339739319531678355399268907384984876599061359219868440812658251653858238891424801838705108029707682243276339530756044303503728197985025208948027862731893483540594158786916087275338348886057799238322112946084096719468274763044681777877933094230406668186718135592780209171061594176962337154811784565185042813006303563753416198188970261629081781140350829288264653961982283950132670363981944020888978206295753691601604782400184943616255325324474588874282971312423579162689214609266923083873738066825181752846505965112036518529365137559918820210908178351237130296122443619666021246809956575582742930053634848729265755821003919055839105682066931388713469665671242571650308701009935375145368746573861835323512771341945461849739236150143698045503876939283069022322029835115202770388605097472538484469693617943251788765161098016031679664514449666310935452523998463909478235444704618046452430041997407112297232595843134478799255879106422834138165034137671638693119786116542699608426552911993244774387872818888692169453755567949226393733315993230888374010181124069176784606933073984750138359180325085304446094145733854591143438180314642377758864965067144778413441393344864775918245614925094206378535924151441961528954775331493856291102223561090697348668454216821068920596108561965944137659479768076885094028145416757025039713794609557582131502452036135192589199988207074217343323755960799249764128266545337513716585791539963446147495067131321282496699088448610092913717807085556464300075551334421923212032523525924050515240538829361306305510929527743086482773616135905759832027440106630689925447937082083085717085567858190298870460764444642655330640192208260926549551010466158538549140046813624379574474924724762792823288440679326329689105166513775870817410729285607609620210636953822561992577656434996156431210480528246811387624325175844173463935371486997058120976989947711043200211398956822215481675678024784677245437265938020691877940640085689133801907500441871529685753977570236327520724474181280523605924668948158746184225743177521064728155918471386513900995239491486966566774370714092840903148244762353526508473246085394503253479484818739287598572124427735396152844051079854725496974868449093826231163407743501655765641616020059880082745300374663097993752792590708785711555930742625029911947885689028733320065229283766841250188652813877723567684874888769643303565046967968284085187205872376860950564381355315198150756131064496693482325952993278418629834850000478478546823616639596184116034383964554498238967285476068842397910184396904733282658811115557701968871895623268119926113767734819165388683955842875474666108462893358329062476601579922351841631730003916281414820727911619734089791079279691981311887618340368714665690295207922485221081890457173757157844483746769982317162684795775556656551860447377672558519429118161129941058167170104299387926579832134830882644259406843250309020651862354311047074300794653304949752950192629461677990731005556423471260360096450009511268738509782021071138033977898256251597702924130105178507313397159133403695846243005798488337871932162696600587396701235368939513024176809185976062820920523181619163254417237327982042231696675011281368005288675482477661484127871571603698033751147465923022463128896944373554098225775415599488890882747053299419594084743655163364808831931905304229414614683170083506240900423970142317392558744952566999662218212414018271998005799606966644434628300860448133509951739748213504871807951530804610354823986204455194207941776062665090595537254336434278546390209061684956566295672110807351405767836538104212134719092864493931272456591323083019703955931914976158025782803338634943961558049582663412894072590187071472256252453014714349487678294198659903262848051025718912319702705760791985476902234536154123155897299683583990981985904089628987685220381512436001509147910491412791539470232597869008642168707445106531554472892951804319938902959783768921202204730229020456935319472186814126538667106541946259030205212509954048551497041606785644418209643700294377538204988493756173760627036182193467987775537851599830777213185726831208814766737212466809804520237559450073892582519632283612312696038815023055845568486701900047872989438733153893251953647818749967153880889632983100353281798836024197415101483781604812072209660126286628351882757781685947163983680893598760763094092440823675878896580310066902324636277052773056591226297238565673741824249924218923181578600802736989432935463388797836129399265639857981573816237520545251638922150412833236333606589791956402095411691154350163191244648895734151590722884178070763135333944899854590285140824614698163495891466151391658547356358138562281633598899326953956240267988206536468520516999349777064828366568307276240922193533982361603192030058603955919052432823190580726544986233928182434363321320193402240462152619197203431890350337206028217820511291184728024052617277652746803561048590326772669051920470807633655422543794103547245909537600596527788481594675535486046710302053285259480178481572273632944324722920075985837541221839183743484138903216131353679174096381527184857784462090582595802203259052925762782657668994369736317784191479424349506702074490292465092074585817258886081480739547234794521506626962598228640887782410555933114056516235292536281722189698579541281347571686918925897235762446029539617475681597945796881611256755434521183516028849302074075955936758683839418274527372364781325131083099516177310711439430889275231426515230142176331779333190066543723468618733760354262927688999199007918450037527701480723909308826947223407227193294836264225584584751617930472128671891244687699857902868085758268665578742633224387772677731610428036456746742269936258907246117059476942898310141114778210860160850923434873999963272119159704751980342149272354895358093399475777384821912661909031453567088390639689971490695612900389070810067583376448479560698525594348783849133811101469173005371292900352256096959028142602269825597866734307179555828386411622315385647903190265215357307016152279391043568952669702279033384907497687273285652211443527408191565963597877263757968838591515091421304538553759061895048345152604814934824148626941156583363516345587281316222016600804055766772186435707777566486461549308366909898024309140033468020476152283685402764992439172120253831564696674529344867502466752774540003959733515443144525274541096781224956362106673188766260515821459275412490819647017827043196646707928923925243923109561059136836717202093964386939289546062458522941221294807043579963402243701029805264898968159056580347496568033808425888770072830502425352917675713188990395785165160009898982653032977722782974508520464240263184388215906731267137266679281597304126158517550999566945588385388446456322936302026595513244679575554365981101701944298132629299220465545025239991419529690617001567465447831467002758300919599141034187042632712023017042523415093930634275178081840260382298986637759866877741935920825897193886823493136868155920797299694887975259565081008953511577637338504261901720405218888249011117787098132577616942227282001523786826873181103876460869623837487737923482475426600588626821373786383491534842201200742915320193336217952633849624697561273612584221679470060756598327424049271120771624153789892836097603047236629306377682266083144676270552189999386458516978505802028746654941957781967534456345524053785198890155273903232484098695999285736954709082379942886967847633873459750874956481323808667408346076979016698600817321287976740785462562127539274922717179759450577543157415841064817142234201557486888926946570321567892097533211845275593671201843792805980885381484850289692495121012706472983182008244021372132943490421097569819315158943647914200582771211200658001789225928725468318709088372232779530967386133584533614048536111556983519411638358529145969375586432492182447488876842872457202532920715777589632903067849652816608826584782035830155524474116778508056391356244043450554854835235802186574176535928901616842194004227644031450715998212092326794729373507974193119184372927337488888787330502779030525852095450271998783943867892799944815138476927825294706473606409646092237280703843395037120773234615137071124245389339594726599940739986882641230677326573155810272474074620001729418097755043690366313704331691433839629861565917660175942648439800284093963605337051969972890860340773434097851047034644221005377604805152079357631460985743258814336812611048961508221308480304117104572495987764390308489340979893113796527915181395022098905377941844063892384330497089743957818549258431630389090278524707269042773292319208562594903523329529198841414692913068269766429196457317968486401377972037629670821922619135814883130481378380450880139798700971927540229285884987869548219561849054400283729995700429624312423184688998367612484157244598893881534585897900730609986635733265830456113324824505845447234561392855756160681028987934741941917042061968434742834300832389301526236078924040846842783417299238838008022666510013852707599189708068322292033228769119381699088142412206437699013494319909236968393594945975057624276646313463249003266263484471387993133152741565812392099825558759256128218384629604461948123196301209083806440349464103144492506152689491988578107582410179607709178160579091415714268030990436803843597592744371045948161108557457471786385709998259235896986006287654290004208185111737835653758961041718769853234493075494711560285031071281876316573954805380117321182870467215196828717755287223512765415443106208506404871071867654169053008193349139099716833364358633054128119894508724236265793298283674621728850788586925764861655808591756689569726957539786759172016967583671592809793851390251383696474366335960665803647670098734438140107839193036556499890712081091315038245000011071550082410158054707024755510476578315995863086526917919496409092474050455714322033685001078105607950827790933382884691055917654986154652817203347278753233507176549346175986685168926951405101792645800043288556021128751569437440284251413283751974209017142530454699978415682020826903353836701575589778548526788150214519167184217805898745446534371526057612083934770811226994685510370503669573820993188420420959221173796159516436603377067163625591837910296931320365648573867293423178255931702882922113437019234819771959635059242917065236605751033818321765477061906856515164517020300186364583512583503972956924666203993102989053355265671294540284921526337237409032590259603143735059448094310431334137670554456816237003588617727878511811505037449470999706766242637955487796243904676151957833576817202686355976191823744177302042009511847444626662424823801099871538664046398573180682936986783395905093367605098068215844850688990771290747963247317073021377980561399987756122954742789567471727819317900767070757134007583191970216572661469418769187564925859311819507803917869690846194467318814162103157960036093533641351784730687638840460943173262662625593798174031541921833896119163636205779848674648511302420222660048455342502097435225034492901365311431594006212319798906146010814260421889186652137475015845769325863554637390580857923438895538303971790479867596978436553398617895053629119302482770389355940596796470783704541776412248248744975390047329521020748892615752025644842238944794219394822327402191429082772387749306390933517366975801589326942859238024532974804187672722497434605965777347149410169705042398929665406812391323810412659930734569568694642949637660736694515589700383975870541473173126883808618834097386220340718613926829952434432733498618061300176222593984718779030452446806500710409369959403353457478556342105069045108611933723915896413371819032986121587067033255909456847434063685180838760840313010216345207986841955059438541239562704337729533944221063910212736251957450834790710997728034808292293626908504176109370124093079616078361246346521083621746566367015983618639728256601662045319845687787698666705743324331360079455432275273001815291456881834037106776051492658366902949465807836551398710221478842591213454614122523182131479205014616665919727682761899612584832580177105453186754757198281285289859062994899882410232993416557466742948967628414234085943834498704032701106152488369800093249751517400286820121707536356072993368637514134596064929028951238350006063805176940534300629530611175482728033234432807895272285558517726975992991500631683697924715152754867740571899122652522529113554926553695963512221878641790746370191321516859198274132378129823760506843950218752362865227131495424006743617506415501765475668989011174228636091859512620356375913848309496863840083737546168033944759553235037867707448831791527088572964035930908551106676003028037175351715358483697941701597911761270362930676819560156746827115267545099046742355424747992594430508025789242673637081384939618638190736285671997658929067609358794796805167450768467418322745747025830717351504593625697653350571357121450826485251390497647040206062413210860322949192503419616921363268351922293534285983807704818114110060857298999479954881624405053414563954575023299265423556487498063520465111284662692302570576754719401223301124551449851146764045912638205828504952348114614869444123030920165148147689150020539823307318053695168610024793645252385810282682936184786606925197689841755187558208141093543050111823407581271301952627326986685727320730242289772611145055238721861508776363007153293305514150409733249549842635631933357783877126901623706455007597969883008762342913523089904312708494381013438974750366060702036098305424065390412473299529576603247857113857903906424079576783388138659031624267529607473008068406146479881703596169594326553780621572845610616678255976303159319029845009995784185850144857551813734743473720109406613006243395364440920670376122125152883598293085915364641352629103737833999032619842575159516593915143149057892198225198649912367149332547419880620547976692604916072449612771603186199971786513357367195115131547373417637942384847425033836635366294000996550195713615739717153759883690962040615981452378018595145678548270576651304332547905277749748459794395861853330906507663070983334775914249839921878026922695409083499199105473543757374178966166839596884535328063982762312049263377488738600120571615186464770329269802129854179217214887699632764819756349370279430844236848030041390159729838678088461566456994148464318858521043531036742388402272118828578322758772594837693456030777271949547126922846115364365466096799814444830362505492207498030147044118507405889934954182333052504311990134289011872206070137597154361489178337805227601932184136601273908306635989233363569954619564153658732811149115108316034254071370046228764488465975448932079870742633579114659474434589971678608358943422422903321080649745046836979994947391326686319434774238030194761412690492410030584728728253850719545703601055070799150519392366499054233453583913205095952212877806156037712737961051159498646437019678422333403266526951911071818493638283131019282073135454495466032179916283297909581970552642371988853939058841610067311421509292045512712971536240162020596736706581592290319293298337687075617220361191575193053734237337436784323751875558329267563790385319047238174720061827378772019939841376913914252435027424226751107418318731474551433545998396779014709210930774848985578361864990633205224433222202116682828707047742351331826793441344101955995078166146005700340879211270341006294029383144523005417311511535290242591130047707456582804025487145554757806539478289677130723363588602481632071544111196717410906779303013132534434838235453639728134581292289576866944339194429200676053527426445272049659052469045120750207516954771145895587418676736649827059356903283256017550143891209885635863423451340065510380010021458394885912303416889990911764544692665100237757223076115739433933601848613470639190684756217731440177832241052973940170567698542148367476481160953340596100084935899979040848173925701807787528058870622055683827797726612257637302417858210399282198246725150450870313785517155236220013293547317509470281556126584706665659025944654180502683120640210587434665462067989363665412495513877301282706012802979301880898545127190995503343016458466921345219647432701430009202806519326709862496781584606820103223431700094309391512373019464857077627022823498124221950215063506014562045648731619069593056903903419619233145424313194502700927792604020206207713368583511271590964508446642039374253078150606581709676622651501808479161565452282020507462934967579070740974345210719954974605939224447762304368858771957335178905322530992865428521081551682241904938552610940169611693793448514505852046560462816697633219288649304724391652884161424320691447405172829596999052730156792333640770202595356757310411364930321102737177022765532347717418212898836302519869104806811158387911487032899704200718444090343472141177173039479842972587929435300384718372953441575193114200863284945890550733917115908510628145921133902269339289619501717044145707918397081015325430318073522433553781936038898807599210089577753718695414977630779060785314640434192321754905198156977095994307813184029110988820823773447467141750648958858484075684975450746374559692201250524575805139532996642534168175043839020623367452941172498766991872112457433851152440048853162305829525114592358819899861411947356302711684207121015823793766197123843686464250111398217021389423426287804823549577908044394918429792081574600457502985716485529863616646978431349618753020820752660743121253286095669197324329692325867122809677854567256896173984013774960235624402379066591133652450381037232147014528745187402691351223576935311232285051199907831351574254480963089151841404981901011847869668744359087908729559589153511985349347088210363762751807476231360595610663789705747418922756472872199168238834112450693095495026178799731558089401854188969832300868115337872955865291188707655507020483319164374586959159537238067043838116230596658667862210256054123914002588137534039031749268796363841753710603131256263151435866447261019170196756993798282825818709425039460042142364543130362784671308992328718754839623350015646881933621048189554326100055389492747814465840081345710706468274589614337313642545862333934659678569704629319543649338730158566838218387797057526289183684435065926625986300749504699627077059060588310248390945120232569544163069744625940579715425520453232153629453561773379562645621364703607667636818311045761905621591209695166343237639401872522605933132875477871152289400249140705895527163952825243031345142890522933494099222085564155998553685302667803113413256905752001348622077432303011178801897101597052488232497201651311614873177783437778950221993388541519459380851988397146278609779202680387279267504394905048694664561284380067865460351280571750325533518589891916593826393503579588530734857511095133994171108632182774042135976808831383357544623559985577375550892823361092987918476790057740960603656793764796072055550500136081811230056610054929091349339384346370951957969073771850556640324959371445552862534336327137177972266550503770356313334350741370371799478597696925866553945035219063833713493747257977611353088550236838430746241389967151645787520475957060110103205281196344757378972509463673834360822421847057438479798868035957088269195928107820060030590413122949864132435355723530980238593289315925064808586426728949204820177062909439729043765384415178210097197872431206065210774091695653483092625955325281306607229213064801496979261395338125324747196045906078987448855754315425987877841610655774266997989563841410098929083813199069440369465211463731243474036495879451368932042450517186674428494847057333290962271477473615279240988249337093710657870295988003001751756814483523094372950977649652671912138956612013299165251410209215332643042408717561944444325065321940148881594835198939834126798318554700160484986065612446913786244709041028050669894890821393641399364813948731487084725443509488013640491711883539016565769069087524674111989504649361301919353263127554360892257822000984692975264714707173967515017626782446499505591824491348408795228270866204397654111349894026747740656853590137124900479598182353298030544068922802696561158623229344473982134559310241430098751961603938904609630985730430395774193367858569992534907234265947102809365857316783786191947860648730230746033395871078202785886847756955371715963578510114113934215974247364190554937872226347410498536614331676740332739083300188530191441428830967256717877089961465842565977151586283065316447817197901117025264000121589303540376222735178254994851375832924785135626278306810939796978271946371979694304027374300842201286681416558570007413336985437082316917904791265771196910293490695989700931356937863371120842142910544437692607505873000316122975867752888036725863306664473668990788330307793470958441389191236138899037679782078102245466782744874704736665410895044651890026531789800351358132548399540730768626988427464879286984478852247416272467214215777261159784097795074458041928289431342777833932276770824808533806812802239918425706065184654351399523561047302863295391060388419990326209087802143951913481333835315320152290592530565707090784853332155244764853912381413206323920320478167178524185208958648083900484212521606303885721773132079337968810590547557930606820896621788241411465842248971796871181586734182608463606813296936520266632709225439853130790535159875038415138580968537049431718462017434121367298325491459011189597402925083593806130858319545320299514758447053842854617624645621366858399860728755931768425617945474216831017689725375887203889781729468408614592082610434781154838383181997656246595617639052970589443235860123889990384699845365184987037436016141189507048965590282611086941956213136889582245519800450361906912991752212297392684576635745831837447583362268159535645154155094797556898046844414226524677634126417908392212266103309387654110100900815768942994407979490183605519782272249917174448758928140995948335632881785929480127074776637240905486842711017410005884264980160658726951234608789348426113729742588643777616094519392211403297727535274964066698097488151488992205354049551790871950829363182134517356601444809391300463864478412397896326253376898235832433977487850000598850489564402868106488723384532967758116488267656655072125665255095389253577629617425710587729364372285556325910559066979337520737548287094115655735355400021374050406594488335270267149297885744346614460288295448903512102962039134986063754236870129464533611379156310612249305072665907173387909474628978975913242305454758135211037314532196005481490812871207893473257370075406147388289049376576111741079596950836680795991669185565628897239179178327841006732443705926759207829499144299417927836586587837278416848390522657404995497152377954264395242763588834742279309829715963697552690137062577442308986296841552244931450544509147906734485221459893050799739029294367024861422255744350254812500207609097523564288616874053198018533640750346238067070904602532174717120348010488927828769128750685154932623438777118597626244272104488740115381803065382808792988255658954588389883130972524416393880305635251494334943636770220537490496907338245895000415182669573994797731218517950466339260661550882018565343275812044131684223923378805957082839051848278050705233234535143975723591263415137244421272440690304217922565981737033853258996638029331614326210130446694662843872298276537543170434724019451460672639743044827192064371081612580030494066625731305268629596115758663214443984968156733095315951519112490616970340580542873631704642121286503984461799083137281410752288356767264444434842185268542578887665926675166165725651543826562144666258933675424683111557330677955712004008961281645324048017444831554204217410232644264089023556948561011287207870207789688292414757202342385797152803260849771436954020570317135504296684464388893728273939253260983821944229509676042728229183436882758855116538456663354026926518096030558736014884786231426538008403729923134569415433716048126405499836669290560995276957769948631277119229036774374106333712041557269972025922589232203221536749524777156555718176859622951170675459099063628557810547378806785279684066910361283236985401370453984782153126121911503016655974354326668715385994692671064506916650986874667429674630114823038786518273075983580261702278860918430505677833915869278634207237976272270431757495358788432022728969741393306200295584288287877904045825861186538424633786740381123904089194072723142607927695383646798847146240607954312914519944627815997492194466963758840233007512304237275156942141232750373294427158142900188313493360065936906199260980858981463444030685540310980359596639570480781463430502449961110575819043119295969599602830438889550591424089091599565074313739660632184197717933883918705026013851430640862636132260324000809339197959519740579989091930872761993081288156332894126968919498101648402496795743101256036944137586451079772899277641923469606397502281368857714916122858420853145151671006163390158482911143197448973094864828173943064305341559588958633053889391388491041458281361817732872683873808141673735000762459893888405014957327208958661209224939647803966384738484526170167426331008614234656229594947224761663933587053701695809500946682262525344693211086910884898973722860726765705652858313942597290999292592827460019690811141215756051384365140977369597083494505272647777365470752228650550394944184778785791169490523055135523611922442973544798773180894029530343429461199608556286060497104599261930925352218371289992706148957953371683457195966811210230874270614331669620057802149672719694326908608609906547253068623183047590359575665562775774621812850586005093708243594529276317609828348945123310869456452032665949004184096121930059128321466175736375361886283441539722031094459117060855060343148549538176850680259724651508045370379977038278105198496347371265082693869208263949362191349963898770762157017168129753783735826913399165780586236531175011271258571233133028169171915551796192446419165388737607154798354435343916221020169458189104706832066636275430430235348392427957032853275367683870835799058032763243936627704259808868544457048144811682169983989704763614516091842644292123228255039432366223933836368135657588722068017115387149534991403553281118448662041037282498013340415380171547262975932706513921250427017354359875786001499356510520725325815601202505223845076141079140151196306085415725807369220308504398648756989567997493869299496700436113294240137101337797457151162892227782884070797692278128826103292688380222268079386801503795903814215978254960902233093635654012453614575725241847079415278828166194544383194723833512516188018733168659933746703504602407809385030614387611452849293224201787441601280298734758481641104798936938946940960163276866860988707798631783129010375097945611519659793791722118123755901585412297210343176063353327622001396175177831991211039710237409166335549030038763967546056203545315882280786590722144921448994695413903294834824418671858135390828811335266918133694175502192079959375148799631969942073427282948467418308890539625891522883260027291500811710560187089904507585415468062841262769330818128148881440801541856600749114765754833790061019869507642503575647152939885513468128376708880148103529649716572603671576477615122117152727255103361397818278658811420008976335007542968645089769188055741462274191060464574692509214631996891698333215265793351978491152070731820763264992348301490407118920784583093869234737462945740794192378883549904003991090231971444141940115550682328126889311592631712488376404627449075638652413475957536634072317086921023609062231765322650776116617530790287137574914648994413741845926754709530051443405335669188768397848253711266034949426360156663455615494349301855049566186941241609654868354849931382986633618991624870516558023206497114594177227558213772270490669781389733966437349514551012562616977488379404797263554239275307238432505387697403619343427109091755716105834616873142985636900025413203227362578698055358056641944569522191703894816124906309198139642238775387338210222217161278532960323204867847139193788328694467684293044950949890680414268352568408151552531362071144090521565997225044137745115507812877125761709511722699257120123433985834249212130606615892811201651597540872624035428223979562236746353233130705294174086818063367758258107309938729629134867078590827029668332486023692990410548791171602373061922523287875731210296762802841647968308570366836491468327422153116018192103631181093471456311985953522031455941139914962326647352081382570518426957869327621520390206996920187291667720927082235445656101977747211064983719777869487089672571183192731786363116269141717065231264812747652522533724177426021586949220273956880610903605570168586311130605818733302627368150011271112540083871070300993193014467503811630845410946002021983283355232569141673483301107604900342968500356631615833478751235439826997287012607634731902440280140758379661105035011371199411002077107616680357419778166226411560506990969945032807474039787196427855332296388140145771399657707586963708456459141632919677968443390391601368263308784398671145462503741000728465275053861874306063864464620101455969610898380387649100674529611403615982510422808119627607673049660539728492110582338490908754694380271220186233065799539912710057573379686303983710059610473164779318484044318441273491568008959724471304122249492372930786278253242296991148787511605125384104933333825993776942060785998525050420760614341547675995177087592932065650619425057099779232252153058006779377003324875094360434045494784157140678132824289848926991269905846699897932742755091340835856312102444849501420780467718341240885067128054355317093442195189308736241911822850024284344902798678934391082629206356752601176768160352740149138445501771646630193505728291424050206191057953389425918352411925516172679647025788455713595772390425627812130597283051402699879265051679458518991816777229921413077550917758683013974922181849423116227964694142238245886688725840601306446991329842113437496192996722988109397076909249459143378323834623726401843160946208876930734497825465786255957062307758750387330523439597432304166070182345558463959982344988677048032589303726201867566024774413587669017184542927435251042267981046271574119162653506268191547340842990145839581724939399664155092466665636779573794949992676496989688919178703301458699056729805399431502036613357819745496854280623422449831047340875342911877109508832631623723237900923786742881530542897814117300307402222530883774890481560074249782247706597550655248594784693762892993751714949837887486791164286503470629344576233425370958840112255221664927853381341438586324256319863930401020203185365332942050264648362933637364173068259358817056543808058410030910760594649914737731208493770165903223350923775766346768468299936622693309725540453225815275173554300354568877172170860967618881945877485886846065216463134779241274523899166266897335831848546136131504323980411853674798657123877164774592230575226060782804591974036065677472917969266691224812965776568838811825719007314811555105850350900439819837530793348488672131200472261192804617086105584694526168054572856053222113118945040785929938664532227809133529046932889675897932136534205362854959673452857436103525041327941029409210896698771510951269039684255552243153246299607001841570379825377952340591218193477782524743900150672507590152932820444519167363061012464485023104431575622411221745410175529727493482087283248669903653095279472061098788174649903759723476366633594876761815356388821117095753277863380465400906489619275633905023070388898305629575538210666253763849850574453609107742760344956567512787103776103344749638885390766772517938454844886797944045318063157813529051071013504555934214685020688540971858714297752968571772540335707413593850561145573894533624344383887521945340445300543531469329207023758105732732513579277600675701479087452149568234504731590841155482571164742939267836465314577346608970202200914399629035717358966693315204118278646849729359846226073191391041598135282047080204216909419875581648473573537470353773824836471366676271769124456095202738730450210823118301627874148127638146950422072816102806661126758007587861235125554140475818840095264178217091775762952999726829551448217008388681309936541549741963971419828759118456891830737446900713062353823014999406792539104225407781594304138186096194435484926375307604332935697635719088554344922739661158791440928496404992690866722527173496825524027073190492778071590271938042967627714290816179661697171008683269851911847932671807697518806314850636958745591944123995913466606092099263077755957801204632488011079962451401738846085133200131885560671667446751992619007901389570842446807290326577329527659558148021501974732650767301304845203121147235485557158629986255285806705642557678628412392436991980609199175842560505278265782484288621140696369412669366472792115710151255708633040997490006335116355043111743624630022039224646462177356863227674068586449804072577441862099056257922570940034681194681538201972473776335212915478637495096515256670893100456918183390060636221850630524374592074818988684069626209848708980085152936937108788218579697683579891331721918810698175960577501764919925297912086657035333129864173838157402068559808251442587884370441068027510418587234904462979234446874958135327389482598682895398393399761504430625218408604684828616090505933177689038446278782879929836219998920982481307120483320125573371483861926292437730877537995054340956039717718695359198344290899046796844583661859789031901069287179254420324809349293324032577303274538625387659034063466315004359210845201221195586050527217431248760611056807104451239800574967254246107779801869606175002049582091843078829375404435268484693296413024093323761630113216044774081805962616538017480886836541922877649230724365460686098319708898211110676998594297992392885431000988101532091404179170224852099200236027215096432483911392025441074320492322689679907424217541478451620847637639563422720999003795678604987190704762157925503929421936537124401526300880052116492384167958544828722902213895970038305255633316967906269419614859766811572155257999531041336192367799533036199182283248116972664412179571702086967378390777607647518140112463969347496788488493537857977460367446454625527176242062176312144207627668084703739344964876667742606867208580296152911322184170586967633826704868512980138126707854320729011147879975254975432896773965423077061375913544257518909865340060551852170546491349164466142042962508334430750131357722982605179432308991994292036174216324844955067849337877556957974126945079564401185184415000747065837301374163061407410331634278867138989104713067585341457850062698764859710859495994870077376057761511348678392142822998665686567193835470567467330775916304755385331091175785537731266928625163684156014665825065260016966162036343345746588674105181555959837678466244152531745570468085978313925165070159355709970123289119922541495338316341153424270339021212741871211422782042167425737155726473845473779502763890378030823777831603893403964229625908320251391243294035186367914246546361186165186960815663759662333889262638864040463231664324708176847395125781132455344622595371353492963284824114239699449186560141955592197998991744308982519932324884665589903590366782822427923191942242404118464472000098694902071145263688275461422053662629212018907160514710284976279728659556115392042867511394275306963575797355662917640096160039610646334299554705870789839875542198260344400633667547608661024226779435563237733461022029787659155371452500061436493376769773070132745835931320893146012683775567767241251081629976741512796594596043509326403004882707712568384026729269940834458492665937883270421443271834519747712685152393279184779060986953272788316568061080920725647313417640733187388340598152528479595476271052133959425880941192687438020381650167367259659802993235862183014937897524673521278043390332356979114413161375897703054271229680677490803813261690036076539020588350754814712152868377217115098940167313280573618976639590702448126724534983191791945645949920911545112838179624231307064515311310244426976891189098804584467586812513999209524255627119579283212677046713193898084275171812920977018811645321338647070578113324657658003618977984930772284339952942775951673987274765325721255972590976843279405903633742970650904119019984097778418185275651143297573243837388997691682932577113446767199180295470369766767715767351539917458907067540894521778040465692148302173725611891537472418087953438174081347701971352075587912059423345359251381130973973976872473347627011898662517056494056841334153708192072722607307299057525555330596282795376580143494707331370313897128210316393927863652711665871324853310350005871709378404585288239435618257397780439009024621065308327683463179443521100226487464308182839379207311603433538729406584689789648652570912604945389818577297589971039074764767660887719650315036818103055368922831483247389745776327580624735332484062330616978046239746848054190860199897497053031682716875246323594226479885814748125493242822552954595405633373101229991565221008941847068188723397590591409726382383546436831249817805857433700812193842135482844729376170849765658505223380930260117275855647837637705493063170338671411410681024854458317769181664164360069499428883533990346734754886400200491152107461016446163058714340481672176474633117690025091716368747482833630488108447275153070986631888097247304455512343933084731611596748210076552594847684875753168921872604218362691596689460611234232250407217425939042523084073405504759418227501466111765215747458878320740541264593976141956655424654636872209822173481602482447706810272131587289782697789479993691198191394633734814343720483959169140196674918354478750897933779613936735909421697842346052249534796998729206082677430151688512345723905620666289175210023159765868161194504441932850206076748948558857914741828339817385056014006796288576245339052525748232523128020491899794557936814836129799939610868159718336215387371841675632127329059873042364650577939200685095179364543248990429538122359035000202656149175106450015185520099352973116423848097080629549277034831634480108455652422871641037458475656410656750540110999999269157354453290150854977353360961174049025104003726373652109047383311906006727808559020901643384195446713092731144556645113394681478540725124136640046480281327260413938916578507149536254425822016468441941274844678355309551492285371085921858124016248995544725985137731729995323243692865738862130528635805513875277042371502062200755737226861397150512234918181293967277987014500236744601515934779393641182777868810674714901761211592435894123910562034656209597015078941966899598474629519120594274537894946848131755450616618710276689504480350339126771723113431553228683536963788379280058347697623994933052350017301827673509567196335754436316716783260601808213764838422287098350905104126510862406941259909899229632329614346945679904885897682383450644758501859417385809701129895922623079485508088281468228815820709335182487294713523684225848191731547892072978749856118946423192614175775288507200016144132965374578106228412410484712360881822777760535728755072020537928457795068420759790676751457535781357134263830876360360170347796820149212379136182771037225022726456635242446146881842807369224876902676584038376310491924522309869598389421576619529417286631223694742875574839242492869330080986855188733971351699051983073703178255091386746159673751790084014864155122986249799282838953150024244445050283686781349316655839696291102474098284990914481300190745357050813773335866499823858439979822162061259780773910058371899090171589991931253499472842584827465580029237244655141540535924755666824455707624224551139074651048529861022991344574287480554971611947428563365872557010272255919895529276076619095228248158830367745082095611775676773415135168419095690432630340422684283679852745968382015123493864662489370122304017734545025962978101543824791094729818059654220504958817468060923618519334871659590438034317088400320419158673393740419863803589354714001557220353234677573147938813197153312387680676121487753981021108478687104881569708496067876217386693267901438123961633028008332890742687533799653260225895146003621049390240350553288772133221326744792347433073608464185396125147834196451261938990538828181394965062579174065511736530579484994529483848944426340503834792788408032620041942637157076123594428495321565955072070705357843332131131114460633468027971919502837210650611703662420789484987556287720798404709776391362172031253333649708014877442123371422605499076471079840428599979946907601960733124576160253686036789488838051178800101982985559196240432104060769167302217384843698386267124425323544491444333867526445518752725869811516297415173308898423704334946557367797307924701172180670308181814339016877654434272574408338885894930872526674557484287027415582912991257194369895324240597161698066783852594290244731811192354481741846393695270887046779288998097880698140353914924897160184339626612363376427778346527940872468440255548903425859257718132292126693603539519877228551201708928646848221142953705006101993275021413181831604110321331688919511971813073117594392682517078103550394304792573336438872965715791758942235828136174974269198768662899478669116093089805914455694563945512910364003693298128336337956656149193796857470980117149139472500863089035057441829021493990331473137683134345268913352919436141799212479262613205943369149221932973667491677406742590387761472843925485163230493083779009656969481885030733100516277260792887790889810882606913155276611201413231670958842785151839870568343254160982315737244938199986329881380136484903591017324298305933653679738314143704247223390342765999658704496598953902809026123226822819014362772161403007678461234988097563988065110535823352527388619721518077830045892707799593838926549113141414388658812461092681257937761607289921770419110271106867517601464075986510000359214307251702074822321658577569777070350334688635932485656101912392551307875568508637502318193724101397680958950327415242749810256346473247791367348487891880771756737918526749220433028538954283218772415117793860317070166535917460888581181710317963035708029954241848561589801881149106896233449985333579133290802103757569761803641277197647904292007833727545436244548118241777279840992025834168809314541120862366711868201790261110114023718600769643695104538508805801021660528354058350971282660272541560836387075792150226192129352107382728866986503794020935794266620365429958626864073588737087463704303210610165464101782596904381845697767595469904603264562877277250288175656275071805881238801820743278359263535389128189671540849575171968098975994363493188963781048098283048003063670234740108179502436658939411971440362847286797874505011477346877140396381095264483686523142015765040004755059782005528977199774759687414519384832102723988978229012764503700662295371723585345860787657691520943668827311987532509514992674842850237986171821701101012963935750035971351035001310747873649378768844150488855069101508442976603497337895621406496244145919595503409815660269811453021696407921613869880982900022839953166664245862904040045448324573696758722576665578113390615409215887244243258463709449895193946501529133567519665502909865685867853653521051644732710232380236711638754610141293303663398082741203832376784074786689427929136478484029981968059298073705691330548233769394324422606231403816378003417374157876606712889169714242005777085223144540481749722825764032036023645294632542791833620020705006484030211227191580594094529711951170453565550499673711328673967355864882945618628480449139068386780984360161395455906775371751518477477287748554674578143194137426052757329957085906108891838328608790987442943078103814152129733255997746080122132194597053547623221531421791296755995759685051114363071962791382641685909713802608464153316992641414079437175411551094881364242074515581712069711465497084126926400596610711866273953519632068217716194362877044828762560223201108494111888720604155481674110013268724702534720149979158064344976457702053169449716960609342250361340757304047369382596950188982019802223266012876030230313134753951295380978472562008688501561477739035173761396624797136500527435245596282661540619803551402356865923878101332306673522612356805949741337044953110764486780561064536061123002398690824893833666581207839087380425483182621637413200309474893062688819893095957612295011664022617911063033978365406712553433529109477765935829865414927655038143535823109780528707787253639452344544167648691190749903623176799640170483711397446906187429423136075438884971875051904866542831385015227450391134501873034089605088942988668280726270815983191541602121889726429416059513793690055149939639832021820840692353687917897460286423098638055493517810026291612754440451807037706996897409833457466531917212183476126646030176971497666645680624425678117277456774066886990300979842687243118680297647932007954996452367513110982675940745472136687971050679891933843204228376464835214103739535294346384899113380389828055363861311944773433289961645465403729294475527313453608536831784747534163653003551201957060441289298203089201778143717356215928906052995722729390738742632601305601935434092778822360107294059778864276657124546622705710623949369414398346289392677757667959595776132900101945570297558773549141432061229179637251757549355200484312827664072196059425640502220927176070420927486635807396904287788287095419558030486827080349662999452189820723492580328366052331527928861123084742349606633461533841304032830932143770193004817479680213349676552214298881293252478135887378200021248336091600545650446219334294803005058295379803708356144649166047841098941708333682653271514041933026523481989804813382675300905548264412623090290220605888312473979051780304292548329024334869145616508124116789544643730118254830385777217350713537219624734376415933816231292770259325442982139371416817559493676778718044113202498416128218093732647808270034845490217883601974802320126862695382822512418677198741876972732033445997728081555578891432299937571235880770595834189148280643285019825990294096825553563068371321952470587675456074225255717889073758957370564839876694651278775011865049017604590750736298140410119330282308047493614716122113624785961096808902785571401664670483613879622261967852798124501235089487377076941164389509107764257120494578687465111455313607648519035386968589234794809238008339833949871205660507233018594120426512991567056828428645520884724841847029169922802203146929960551359906879469989572492090581908340310894746823904585971900411257362421764974354795407385446404454470863722103177630567959683048941136183348376392050100819456732753683563654806816908009927606957021476525928500683309750794211537121756833017183799796204559524341703561046025790954283012676980207182808378735054059882503694294406124291871656503851723742778686802218325254394409634420744625935035044534918228968081406033877454510602211828236433445241120188402496929084202666133259581551373126163853310920350906166812591834671868991999724585103774529803292075110880102356669118007981121612768207781185469853878878035998624804440428980431004795273820085701438490364746473981787047494453519562137263565166932608876289471577253014556081216871831058104624116632857402561279801711494257668164330196663989823178394048144744063013077385900537289536776549866860855984404516363561034561791337150560619666449431313501588982545520284759161082025291076626818232531279732285424777974809145918128349542133618762184242846967819832788565685540027562456872637336474457841911921904995407516441493449151053088152358384510937096203683800580574808781638548915092787993628319678417389955229940217245019813794965676070638313875001324750578604383806277322265984897237015606889860308503177401039600369708014690054826901921412337280453921052593286651322412115499501472113007069219274670757786346202255951280425432518185587941095675323030374588855962170961771964997262197421126468802472085534594908958527005899534635870795849329652351892036548135833860081418212766574383217551570923206019372060761761714303718282566212072679503163586840222624192403640487679698313874062408678377272065073652919801047443345924392074586305809868985678773923014902849134717685656202077622804611546423037397002216685610500318748339163757796350416521418177634736809893424453590933982465411931977779725619495098734192034300329810472542719260303295549364722480584910463002541086283202679054119981203181546097784430589749996906769666702559185652882677878853195697946941768179121840256077675379661921781846138121873728966561874015169826089538827274359036516643315641828103411847652857494382043140546789700247406630950065371706572255208016678043719096270722227396249675969834405012980091059708317107048681447281638471408337763659705379315287740484723235651054253629007035043949015631160093294404706448662000325125015760889493055411796277646599008697994202315256779630699970571099341128429846949183232741798215123722251653531168707016892261439533627808768302208881897543650285591371264383315837890906136752139420983158486569600833547756310690735589488174369896313349018110535694612636988458194912831368430751394742439959826103855510727879613237692266213778370895865581137616747961943778559093259820980646127988246150705181268696267017904303740476163814031529756104094555702105514504457753454921595145638635363744503321309667283668240919522366061355097196469463610568018068154488216489559668872472097640270925625777897608436746133439723710777403800958249494730197056029717217705157391780984880814833372686680333893849002934389040816093692686193951569835279932646638410752944723873350277943963076424182145626433055169948047805119298168447676176739089649890920070553825437954135542882038476880283978482919748648217922292404406669872750926820163806416010380630589442257149691890688166969512116814217495090279658244090198046937832557849784969483844845749578183644125305982168049009383259105299114480066324908098055020806011665643285955761814240680820622362129737484568576290619534109218071880976403070116242443845406684775119589860533886536039972099941581233890664071459353625340269659234970890806583125516137351798606042851442064750779104365185562465391619067122480148487019262295392064610044809095987254330184613283670889436218907800805226808416717791620758203648804283117811168668266173587340226183743552094359682539980079846466630737990529329645703311106177370392896340001006635296526969517815091868058116307837909614444955499151588011377772083082440288551134524874046713027948903896219504866926009190304036548231229324610363313200283377150117202902983282900491231518549846784882242479967730628901101961408263356890651822848632122365322846765267845673022720361915255265720069294082282204238013215908365295801072987445612456357682791496005650819077400465734979972323899358227705078576745447122554729834149297472071493408538263105104503099216142716193489695093959854458519526786773778834353711727777412861542037288441942627235701429324489044164894672768240113607722569262670045678365707166226257911138363369364464280279910517134899246075359953447792602025982873698737949887484246049541259508329764909528365131229240829805635499687169876403256124014398147644581157058952889966846357189733550101391720470424446833046923852720135254342166703841985411543809831445078359147528759533923178571910044140053102457820610500117974735082171181926849111607930555880648156050422343939683741692825371503740500183046424163460913486369349379358293467014269590037849940923673592069824575937071007083273118436177592783074037617485212196725476525174917632690084003838542106226135048337081789947978319574966536692367511571812332779446449721230012596826459184107099091147574557825764283617649447058893034296958754084015800912726304026067130018899253633095765996769680513201670237205794876654645948289761606573682918810012879667867089118904534647776122619691885075999697711773378938859299638507711047091457082007013891148127144916251087022597312739284898190926185363716524022929788084377860181949428146667482964845838728125425702370880392148976808773170183074431532720309054296639104390952398818529602558967240488358708608486694078804178685811505453804114798372879820456910216696160594343059344417912003977805203882385878757700640912507437575391723573963202014908382822099215335790277528959496203112343398059374009868940880432781622713586176915892822849806033406960503492253112232446913517097656432880710171275736107415319999321675114521363546952792454993654441369603640832091253962156898621264050526493276121325571374824078123207392535922664426967793296074422462677876062707189264386642236304868867702169885836694666701735077788309629151929651907767933692262848219750035099853330996834448692535131981439743365811578773592976215183406423176194237120918406499563432642595862583734337926318690962581622088973795624463969209186287604788883946188944056894125863147852092229791996534764956079205320661445860686892842950103067586116279571706369495380899534612832750391601610326098666016504643368994355088600278176404472122331805402684822783983106231092939061026871967808610304663444533079890075705118054233690866843753955612484127785744048946107436834088550105133047149798708212546309350771282587021004102310918072759273831672395725183886891302125720347649160920832494258587632658280821216873728736948952231953766167884756459905982646153680378052919463713602154339071882456306740350800137844472293182626108474587643312932150872823406595486080232850575008081798903833093417715468693098853362596348216164211035069219969562478781388470062978144138075617011328469682087117937316234297817592815925989457696907113528541071726451183479414827113385928063489201783700064097467098710484320638844341050426058748823721597971493021867307313050404962240080545350423602815426845845477369637808606046452048938188154426868351214197013314503798074323835756823840930579337633775386743342588613083616377656461677046652826203742362040967013323403298339796954572345463637253196501925413902079508626953544357413756334666809746770257475490249115610316991836281828121823236658159723731706081972160187324724193472046511370643317299057549145281225868293043926560609805134676418659026154061938897403131618931201880420142834587187363520195041082621379211335707216554046629972269278187761873958055990566440615173057130661778430440916044350933676136082496936827944236410580636962994173064932433919795195247644424395245546534099462471778801513099950812593436344922039388220953503066819998496538644191265718731964717172488956108545546491251297414424818647966396478473774670094461518041556434764626141320949554747866184936723406448801664603920951927269970446164796743209119626977103495071781435856350914441854023767073553278332452807761132071444226880938349150216096351826440503743428786450339340465566901279519079797248372307532143757697562595204265442904107236232994172972419246264101056317435098761017769349507691790027154200303717750457540844243448126676726805237768098359709774428470138314477551698826764156441178833104715729744165461868060056932100494044335144546696414782422411970061675384524148661005121692412693402615215107356609080071497291112513244815145626710704696901515989829982476284612786904306600677803221416147608438592007182448033880848300701615397560615326343226835381493220196008666497466649798740634266693554729650182856524589489400575996539681310403100923529007059476568742809343006493589242602280305987253914563431428591431621056114701621286023149592257224855924384239178965321266899359708688051133199100346018993574918699235849031653346956384460489946296734366341843120040934252553852294183094047632500233750372211440641299019523753613496286654674271210681312684977561309792311701452678773659324084700426450191191892026057446238458118380286559548323562027074754547911846053560195596580175177255576373057807180799984548151733202730698036667941434671828935283105626921358768182129466055082284025566516311243053118273010064721730562209894236021359940495114689999505679365418915644333855241613500356378245726998041111589778292834634096469570684273004273841433355380014266566212731174155897255269388093826792205296884055685124358872837995584560482494336769606690506514009699986312702629604814963681619818863995281190780241304571379043810825745196992721252828614523130917372578435512518405667728850798839775685185724269924058413043873630844788076951541224111911766413724713617013761364073263224966809806435443059863571022475091066392334632366577718083224474988908158159745130531394486819099068318209851030232295609224771490958820285458206853272491032285882762316802863197209060120710708576851854404730236151623878661583930198837442938871667250106108547312336292094507512505576494820785598765324602895670987602374977476224740787422065626901504272652314278284113459537765116823565260684495843730438942521384158810960227421697915028869255099135693246584774783036776509735532982946713170680760267090292149725078582659653044037368860660967537363788739807455293529635711825945217739151155165014806130964014740028362888778271271458716002649961361654018633427040726144322909494358378222372057498356310346217068792324383560511960933763512185246666576988362651378159210246006652021437412219649397310580243987030326787033038969988326578441987814467262032310168221651591442046737779299735565008056672208888856515665697006938516706024894241043043824924744109088841390595475266828369525935098735815189021508141073626679226547048892044127732722683553998282223819060987710093977754919039814239858495516770753227738123444119757428771301123496659116813558206368505750511442634763817007377362433526996232499339071795644435216143356946297150692342065114503623197470216077782510966232049688553117211117993768620247262460505106234012643964833146733641627691533380727208383012107781836509658105362328627458161556247625398821767215040348656876146418450870205669537114373305763556952756329374986036318024106584936948219407278953011549938623979767556625032358522414273736353919305960904138418588296503723203765336633152898727425500238353503787413534539582330762317957956714540717313813295500825339191794536077672312633016888863729589187764900740314545037951813303498131634624260950228748111427910588086616229073256413701754983342272536475869143242989025342937220700564907781045245118017333947833319184884622066202069964696738620272026323660997100304031135573350731842788606087339599037307724357149353988408469054643006095021958915918701531631954816267383974766770393696796951687530525561937341630422180891490940633633370752483727784378463638321101001865619227066570800875036486683567692623485326698336744816071902115806857918914781680443894250063437417427418923523053169251954277787140779093677606528440687532473568950904170515030852817609817717493760970914272233781771115838160866350832449583440386602869443261394332639312851782142740629940860797216312352686389636813298624416092780032085837896910155530322558362330922369818867383134248710939808569611549238075384057234725216187659822152787584765167122579893232018375619240352694996628486208539324167459920729617659518178028478954546367629509103372954222146680761973446616943076206661997080215638764188473570977328334147439991933687746542612711929946435267205910121759453332435309986105383298308966329023157709371703542494730667472989011145230518241558354704142388791071594836072687092730047412648040000055466959026398171747647750943256884476566077621171405095302623942847753460445784272215197610113964837609306262076181550199600581506692844215516115037303741824660173816120273476952411308878047768396891573500425483643268541606322320236719366612937096268043853993012307572180950157980109535993027440875606404121558806049264722746626624683623307243201193159811665599386934527109382828058745121808759038791920511550833013638030130611099879744165392246377394770191437423928292663493210008512562480861955264358306350514765982108312152340380180425091641181344188732925960980965847715229428922678193339087179653356551369364593031377805300673843864882507739113422950863120992079830084896432185383651834034840843523288932691587771563531797435091912961725755641195280661355096060500825362123495313113487520411821762227448099185230878623238498024170381678705472056409059350726133932294845330847602885735381477142509051523629007620418119426838565706514810895392000787479987344178046539157555104700582203507122672423633907093111301067609554134553928525211330208724533250985009160775602498102978312942159408295289522310518023018918610132160141917660752201329034192802821506273509150314009565253620101478252056388203457318682689164921352079974234202341232582414514231786365925840173055523267956088581243389943736554187392732202406787904472520992680607969391569192705511458073458565932286523676093173445379553907499262797566126391876759689476840728430474820206624119180139050592323877835565518262132276484132970471390406486567720215094778300795115507086740999728044352648258979994624320501296479064004775393019387519639099489552826408795845668144966447388144804775522229264623330090669109000772658999627071427848307810437246901063780438329973384768246052422820441426324971130423220781468574186026398926305852275813034728041999443670944001989122802026668849183340090126677187193146613415399691906054262225684937365019405025871593442031655248144013309974662100425409885163525603673143604459365492164214233960598241813976279944453968695594146056669930250738979049603554741344864805654576041407871231783827748910171997675364850234885398339025496130769536756475868061231625082136447659894255938883476233511408580658296352309874732685872933851312513744000451443099023504360160787330448146951477828714700782149319471754188223175852235329763885337817179033433892650942716196711602642003423800652584431018067622314529150273030112980408819724525877543535471626763969485056071952836753036041291956818844428919752291015861169627073542121724584883029833536245365220807305171274139686914464249755660257299066202358736627456135433411929361178801453170830120975078950789914408949303861471888981416172416793797273126543911150377438748629440064781701178060343443494378781001901735268234009128919348806647379074123994847090545930599044667722899059515138863564021080256604097670420639497910354574774877656424918974609668822463213533868367122001029313676022884886694336142689431693102531576085524564904237258574957191013507168472045232546002839471219701347799737637730694423420279715564732355691434964752779711093314646266383619878141153387369302353962958515544531822802573353323230090691549176040017827405412538429248109529632547836157932243272484070733175701976160761911955083913579418813216697398875289727986279387803425164585874017219070964971558956854230740705127613414710446919214007525240080122953814821829896900221013560231218976408223963849301038966944227209879371060518655033624357669317067830310253172238443495149719426675530469654164480147391534694144331067739074418965209240387549993659603985331102909741665514660926896409948838820838920710341662546204199218296194512546577802994276439918614043112031921835081047173975756028183926561405030720242777045675935196366331989103623702775373188056862708278700339120218261798536277197389358271137047821489487181912326728949496323793182962420214950387053959648413757828195743353273259847030944720135731003438803904814199127601563131678372938896222174204188935831730843835384662176996361175678208262700987260539800274710684647589349655842387968998901964541583572883644411984895912323078351936625995391054279025809638578205838641176662656029191623255668514527797180610095977048845515693759333000630870785477753961520365786210920613464116169350130487979191300228550996532737700801510381682741642826696231908157533473207396075036962813831042834804241856922068659308128252085812511605995052837031934087200517802589044088894780576790214597709256555425942153540508577355605603346627794701168848848337862275910250901322884331291775712941059206607368252052325235810945824237628715816499905634519092803334227692915369482365026177426273652621601372337494800723249594893418107573596314736535191997182259342914852770860326293660800960351029276183128778091892341415531479038031290677533462905164592941902741829406259972441334813763130402827431354373900859510141221436828654180618323513186007459272616595217601194342288714613411172942157525033084004536880336750907122439940017012535840222914874859729952228778164445527839584734702862533846590424290468658175383864130327562612854656862153519053856023074941544348522338708889752258679776824215085489519972154694837504837139402434395438217147064788359907133750820407158263101048570844564962178187978075538446807582362108390635431877328237434367406293654721969150772018515314559153155086182804818080682008661245101178017579377834135610521168364654158233173542179956740955930698722987370316774313231720872613820966244339747973275829331122507940777137990212332606784943146450104257435907696415985254297737663479116184555783117759753015950456453872870931447309416816774406840244788038429208576972640735514157180484454755242941671193186381720124980604575571074449985621564043525313628137523793478024552571080795492414999869153412383544766603840790630760823695961722133704476637343597946408713057545575683178091335331098843897827017919514644914941819825287671947762137592525557822606803206927848742061553259319105092143152537088722504187496122204932156021137652051847940113677676149825668174640591082378533893115830373215881336144203498723252664189397055637496562650326505868755233422323336907261485959117999352286490579921099248612529731045657407890584134639946895034649439586003842122046477192443299902429790128531655545906087723512733064190328171155912175172101610912873897211025174013759865642464830682061596487778439444384635325522141384753503948641088635002747631024054152402047513139251747549639505015202247689859036220064952272003178798939404122808281045464145390068242864650049680065447494418406372647773881981101733927336798931453816171692868206603111419283404588679821997820245849258416814743097775029092372626601242802718113842216686914020064813165623445494231473375430553419148315885499018736608431861812520723799352316841049020327160388163451556512432431681552858922766836253694364136122743180060477734443395048766674374429731177779877614834736194034422930476902367321319017478272110661750446854594079994637184276655783560667309287433959352152586387350152398092330030618309123056171338811712747949287997088901242233832277505916847634951100300098044213474365425180289319196554074717709928393768293308441205042718035464171509951190809451879114999228431142865071684770851841485272727766105346792714576688703062758408722447160876781421600085658579841469840938388927549490583007183102144677812074584914717148104278615160977064580766202917974647809859542621970114935974011932538827540492566697940511654168458426433502354160217391929180023983174946156805303003953390218050902549944664991762772701810951445897117746438977132022271358716983102907128524361203878879605032006618106946054815647474940200896170009968193497170729414051937020172140616157099026772079117995695608035842535464536460825480433106600214539556021565233492612796272302471447197949157880510463455103141128533137970982809976746900028344898906809314921250436190426012853230912901372951780144752971396138129119328210651946926826352886378798700902697740823566916422462770668014708638609747736772685643996420360982818117577268444603451495759321513132660861575004489250249012866091779142928752260078383588481125532222188819591147265332150414683182997458102363035277150000646729176287052766428793376851681979257283281884261559162528314029956797834499005731223414252272130381194411206609349085176341385555438109750297697956703060127745939319594149701296047408190731396304982340671158399960925750714791392890145556107367608767312401255744105837555862237233386621645107475846836782136807472037062809604332850098191964588548788878226299687921893931269795982104945349603581771180616868796749051113542872994235008146201774547785813216114203836679575664508402849814945322439602539004254177310225244195026044955500996120397777841593583915784094963885996834431171403465334320263252126454683868038767938585802027212245457667697334247672519096412666054858001351007559138475019145590487072677094647054018077632992488060521831961226781857092705034877739058217545620868837272790956554268148646219853858595887089240794402843561303137095640864766087297106392238527647702420201081318718225608271016910762946640413101147797904005081930849153596880457904054737250527492319657599652607421787378791589530511633725338641408061807834931143211836254542573889333506004970377794128398197054964198004121523871996234975103957304885389513791476416923618831063743116089778262436856416209447523075250129916306159240517160169534478851385620650475191919081629615840604220810885545654454647574949900338607337287616895033841551107922980697376011539505153395710706109059409243020868999271479161650857758296920130629646417512533189597003583868628352769200675246812093732468257773561167405353806236399281058508755463955614144451940663629056973826556486820421450320724291823813194400564536781431021871620055971079025022708765435003443853023099141754487495568943641688163812690299155140001569391107693677979919201096256537406299140643474326640930192818614124979681024334301560012591292656363898388002790430027977857303301026456369017162276082971515495183365011114782510464645394645065068235780884185561568551550226338572703645465829601787038286766024395334829829554049991352172837870124449650273748452717993013829995391575015077353196979472331560745723143953102682933667888483060182206963025610172059498290564136712220969377060327865345902375100482893324814299045518141019284630737373195090237795934018549993936913412320502136298743246859094760591895770624903254166536308335186678118834255600518638186402775422293031360415482502666203194047018212318149289742036908991816825640791094076134496014570975127484123507078640107488514328322331086807380332338743861069745079351338394973061198765238269976124603322940176548434348919686676593869088560621236296596394794404487049555755958921120413660312310780341076967143192852802383837367174614634459890292344826996755405912760015581955390474796282611056619149694397509628811338415375129340745528446288079801014657015810228514685452475815532906661942626102282560558577292870835295549231253956747912369096119672580945875051148420281187374573355754851880133102920264527562663253990362718557689393404087714153586340124727732501783184938107531957806067571198082102135699760307345172055109691567200903123309517544751584942192411311088031540397478385076360452194398516059179954600337441762248680958957889799832627771809879506745473965848197543502137772371862604981016910257817084117086825584287052604355020450783293782274852280744652033088109794762335441748006447351075129783692569611555313696176556034810293753187171966380296522152566455922642713025009640511774770660243782104156088589974567682857088877606222110569015086007286568089939313572444917517951908583803515694461169863742710263021280683376690186527562653644828772500031621781229024980621699123709391100009363388763606986008132421937453426810505244034674230817235279982583807254716192855069424457140715688080579631271228621605237896894990874455390528644215510439079341951454809151198645399555474061251038636710099945791821691937052016228154578090879882716393658533044591652754804547509965785319209896650340756168695142650668290502518765443250929823655133985907510748367808138838806449323853376325607112024655215016434221912562700569332001850213980089244306585663555386744239493233593469388894449849129616344236645099356535154411233678256356394117554041266237770370645179434276272623323965091737419097326363656843933735905143138894233016586377297370207687270702362394658993174434230838731991632550358209203773437761612109549639455806836653014980234569945499584116279719900611997524523374620812958646982761024319041703235274895595516833265733319609282709764723673890413535748836205297247266890081924943039909814617920910560078690334256962085949878410699353650833765339158854782182252545591027646568573209181160844728126727220658716543442907222739662860552473194255285653421307738305716523075976906826406253572304157210929129677230374687593638594660442083629107874177405660546175768128992707247244912618604050731822638906948497459062896995141728290839998894579079122152295060970239556396334306736101154841213932863323956525392239459087244894436885100770059653213196840059533054197014936758423389895126093777285923485611147604128297029234132092180017387100028114532398007476061689911704486886159853550666467355623341964074448743804805397162319008299498594045975731496337008792957552798216711020782051640180156855100481855993422155480526001680849256493116928988284957533358988821605485996301466407523058133837110680914532383465780148976149880868200927541338349484331262769192689306311898630608006333995397819281481543614790877023895824190959067851042501968673244570755042506737984210191169565755380804632313820866236223776736043243031718662201193636972976640563484189121766198117827685061715493469329232688413573745826219502514018787152726392183968956303024888342010115689000241409508264820033582761293834046743282891260602060763065898536288752188707969268715981016006235631960710327763077149473469150691705050931180723728631771522513177277399165701158635552305551531902060289264586231474747703494718780820637148438373348513247670793072600880411995501749410922427527774695384430076648349645294135788680270714151145847402350990569381446868122483941498876634120694364561451117215620088789379200707546151946867080779339317008780269504662742053410057740501345679235272055548368176618368118514968228219649580867688796856414352750437991776992476718301685248412777764792763893023986666650363020810182937295502968690389863625465712658336705207164735704285150422580904676209778410541776446404286660457332720439526550334971080306348918121184574581647484952368605780968661678334751546418068767766997527775306354031577330401926655038581351740137222367902406543677859382448546065490670383844141154090427821807107712181771517037494847075473355646013213165098164469254542897831257694417916203063274290185322865767868295176260134987393101800026987666030804960594882685058610425362541096064097871226739002652693265421016412393239361302823336679424839676725423655889387972174542377423951226491072380748892839224496757773313955189397135778287759562253218496195099133590972134909402365882723249142523304727769475608768341253863091840408785234858045302602808019626379348559125825773566881716922318015145840318644500247738046045674149764602797169142714373557414279602248357870448113043883813789138651287322390605112288264917754393274595516884838983447457148604500745894949173528613813981679528755449177792834276668822139648110000960514483468521007074298487687182311036115548500203447348066941113058967280755773657778968324729110991293251413311195786596872958531659112702519725769125420084959659969298479651207471863398617678068681183743604946849282952800880148028451559564917474041154047925007861916777795108081175857365793389524385367321934599114979197576394440329813658872368220647421564491095938081721606754684658428932942691497480519151950364402446382869987848573880063854339261818017068121907744511999377885672520515354513572758525338387556013826287700433662842561203946436234483036127723554616729307532921201027227629175275495296352302145640120087801638651182916933482583659350984502002189220490349765771834011686859304317834992225058070814329711845470976298217845758169552542377461586018909818997256683228328037451167733404733390653619452715620665002428669791446921942203033989671312055162010637538727115477681489123626178198223098043514291413093441316011747320779388608142766938122401811165923715329701333407060727309013474859494839812114538118710694349684835342874460424221212603414985552654837598425189921720277370619931850303036458179139889499588880748617875072656713697474967811551620045796081037715715864521464150356972137983366491094098264862642084289570906893015082390215202750758222156289239494332290614190118890825330879559811644083491372267899092354909167055443544943743416412931192253780656462420611106726069193091325617903859647794871000343151941903276761962502164943201684778431602798067386779947953358785854693932719498636922276210810102546697732917369081630019788818284326570866880069010579697900451086257649977571310189426605432060608086072309457803458960466939120484626267644699861935068981620272854360630120456834808517379876385228329552256592914862057860655602068192623550846894034566836217242641417273653494641881730362031714312477427701206316422257634797257199064758076992466092199002421037430061452325001923328257614590893862906997805651918174540782450032904989202122124211248201307577306712422107195964765632721493728582949754551359826241848351543388037579690207632925263691059579273148669261842357549162980276297561731455135095387766536372070490111653600634701917435993531902788723235718504441228101263145125861158368688587648899103851781827479905556049029044866646510122727680095338125252063756701414207092555562690274983442503087402061976882430264448307334769700424026484937421385067787349768372008796363777297342611082806140801071279954919118729495060728259788001163109650216646887059554838095467194310826471609159935419213641673772661621895582122474194992896918641650285342239604135456036357405855999203990209167772176567615623123439986904026739654759851100084157370714874240460751735533385883845654804773180705152387032032222976340317182108363739161959467900493717990249016985986478347173662387202862573306513061421958120247269368063934588862725252957981760498899953905353210437291763961553370820787846277874894145968995628878531420976621104165033780923637654976393429519877644055480394130793363865079947691155963965341337337556438611700136380637919524560154828980939923032121800620115536953024870561330279176511483110650345263444280556393181281052066618370233242038490726759910350694206452424894324899510243061714089029399824014415438735300390324345097601329460742020708732138975152007267964598881059581863292506414779873769261769224833315255429245819565266308349573619891538133662623323491408595350012139953474528714442279802394382034546908747050128096827817402581563216484846767349982365681669700104092490429247071403937032893717072265763278240479828682976375937237029225406361494519388033947920294238992351138568234863855229042554491464241209983537396345269231544998908112052833072119105877109274745463065080065733121456914131389955584524009271274545496846498322476505297155854031158894982614771137418258328830247806425320409762800612573744321393524595850070574006732772219966239339429269447428231916639038758999090467506975083813542049978275294753587709836280265393035118487224444515504485789982909466260567745389600221171365197414629694533950699025884284876092384699906823569713794513465055663759543504723624525891075305202126146587799231647334645767634226891655135111750328521406042134996941102620779515903893805572759415042420018488072106510088284209161333610211520544481589191831850957427606475256542192781973831955410170003856728906963392175696604826122256035236377650848396356993794838706171267324260211412826981833848825764128372399263190583194979681256426257881672088065229326651889085108327973709792400801405287285615847298353959437240191417167237112718472391844958430055363718285726015853950088640910139593451143650869693844112758452791605252184353450235449438611829215480693438914782529212719158392743283992075226310580886262670124669993627929626104700741451535593552040192971278945631016535718345838724843069509532042085579585210377380693615839501809222888140144223737913946677761366919058666867349275721162011257762090153570836824523863713950519921274312268056760079665382317425952169827625062964137265500622697961955328670804136247738349129957961541655074554992604812416722314237547343118296520047274302982527304100703207200615097999254514100121926822709573826666723835347041251262311360280242341080561151904681064804174487774090086193431616001271421591641223517789870941461164607579957058403946717982908956978435748415017898103269524792270657816503728339499581794218182114556411333605747126556645733422285968457814558037035400842434197865795760260602120409144936050261104320641631959351732201983554089517839456710678481442480603233096960159191168379189964048710821999875440112632485888145913814968442486636522559300987521054981601548558664276123822633665498033652706958459105743822583009327144702248097476304911960195519900487774096965428693800564791039054348049662149604972059641164766097720426037406316659413397949327798010817107188794043983356179888077170530202015435147495965140779325906979080727420563480458950912365830678720833382726580726070019766963472149039929943034005081468876959033779720508095552795604744060674013468342310417270231678785312381597102592911090161068241890627653702209263241336428953340285119350628857725795319343899086944731532385838795106789539235636831230123063796958750815213942935209304995312358405795999639145991625508562274212918713004985667339368569387471667996938760493494530299118875635228572905669514610944483813119106179093364049851578033532683859820738684590305566728270338481243043358367638976016274537291469390858391717837697380408737355170874138697972782610598486022126500850502570902332247374775539559619317567959231132568767764287295382615771695384546602873650874679709615985892938429174143524055920696049153221350254796009570883547181878617894445878329647077898625372363651311709761701184649109911740664393182383490573006894346473053424406366660141978131602663074192734616117855181857233203691657262278973908985725510923101091627603594748077730616692640234817956993848854510001023922983177254671347839528697360541942355060096347337786380261838225834008276173880877339048790182548861293459860334147310472358722912869272807844163705557300269490941387667013590367312347258421138754764287339182920693850264600314669526095061655400685315842279594195467146647097052901560731727719770278734607250813622517952118595008961520196436710662294234823322145880186392728744778361355253346570252876035826172306401666662817097164840495691301425460244772784087133131465626202778066019075625443093075117897477212536122531179514356919666126791016403417656940121446572710225542660422532602767928608136884018208327770630688702853000334987747631890584532069141643893868847825725794033394271006068843191007319778128130084642963587855596452112914319773127430716439607533599381651059331028414661121441787601631921679823769691706496380985100252415871646426744973453052268003049511136040025836654972769659370802849299047729350461737478584871974110683515902383208633201593323718357246236484607784523666726798379088058336625542865640441131708172981002431678195452994619293553556569796910296989560883690657847341351720285672476531786861542332801733524130818872719055185365122138484026963913845822346663746127298589184116152298846244476291308060388952145141393059433392588934251938283540684961133749226814611737218199305298028858145918073419314006439215314521662707025443040809050741325083180437549557898364040119867148325640202269552382691366530457318583577263691143149108826918578047326685734428082651657162081792268371586414198927342721718483674578706776635783610764612953433013925125046190781000304439038454706608526791624906968638252151069346261004777972605154972852192225519504984344610547767702536245219949219768300663561422963070894073389746643276526916711000395822072174476172856716080004178140123456883768216358479174745267112469548250468988872705650697534944716418846651834171211217360542356203661428707795590262818058173540218898384183325532580744841200186876472644979752765330715498159465386204421130112430124735977154828698875524992345940212904509434439452410573110320309117109703624604205071917977888379601801038200075420561743733394736257339109120244242375917661646076386532888106563761490438616800036831376689342157416175761345598902729314332095429513502494080859500067788809538421303697775968423730772300904718838493428132667076807245982709056958053017876879686078983176798216830421790618502097829595060466561031226998347954769849724334657411731605719092819099574550437325848033788471328008578346971859019337236565123691005880174787575183237298823469945238674434517104971212541433017724133909424561034734790451572296060643925800249043263716909125779126539110686499499603617230706730938121059904763789451732096881609513663515531796365061280012094616973158687789421224745454450615487603207387813162760320544992865719631417983009709270028064486607766575116204824456434413746897534969560725492978173667640833833702373892704114144169602197057380744231404087662522209251127306458171390608853586617320707017521228087507252866733820183912687435123111506451247420915537430818603084021489245004736640594540734513780318729383420608426622680177289407215105468966817775008684305472530314360460532196410998949830805724903184153127251763755139718704222973746403644078190137210957059016014437672054470085950841363241262000399791233356934638776316094392782564958611879701770649620611914414204493451560451401182851039169133132664454284314916388787850718594211401598883823147738055065660306929537448240611611406615093175371905993932829795975270929956904487048157763956888269726411595469629757128054622002073395618682734794162911998605354874715571216702370598925889136590487509377508485471779926117552998667008414079384580364756798865464749853518599412263020961279619785950678880290008946673882689831962102836696941182930681792974338520750041817393938802104006420724062814067931825163254428208413761431830824916879179965734325091147928161816051179381241731922204975462898025135895086545609866774037139547333412576855604794222786055486499177115458614660087789956942193212880593551273562574400072476241279951798196587878928708871059784244948647383425347022682351544882187816361149633554443147227826181584071656438379930234670296467604538165412483347957367195276334805780538325833625380451957329523397481067789160122041800757403160351295139902115884716625138319895491529445202961812566550065733133661246312633083116858325756390327976143773816666729953755974041035855699624663100672019761478508490837141514063860693488443940863046471540546675745546265355698488337915021289933298202546720618631401374232801200438822978458615425533839816160674407323258460979861384316299935169408933883125614541606303039008997992863895847639458382398964356203758360358205497670242178198802493914630871565729563199098807544976560531537637736533942222114927354353608428657936976683426911457502603567198659558423851671251259367718248328420998120620625282804695188950078688218094637325762224038442926806585982298742153529361597190718348179750140631527624013257718740935059258368090629818447907295060926783117624557758312882970698936446700589370279516652072318989739164203625694445318114740864094523832759582222715701525466706986741636919642317452951640396718598476958357420132799680819225359192196048263933269221032458755947807062835347518303345656392493450983417262530127802605414096773671235351294426496624025829973345784519375868467567949648824910448969256479603091114642716593574128692811393968155598560800963273607114591726707225682256033349954414726683601957566442418277246264219562523532314886302828179261313335124043196159598064878371291104983268355165824636551410148900528798681298510738448614475715005756067057196201038814154629531898225860427851425752755766263241960140675556807901424427178294961603350648591537307425429524820039260537358164186006810841685073568810167740131979363938185145579155814140986370801121179394260994836485144644356601395292515480970581954994483615065792030535995600599733913188056261646851624256682625770788396833231004514194306301281487795715743995500557812856083574472563600572909771718501045441225320686014920484686189065933527954590739329444725050945890429588087769473290483055686636261078388672916438322457044314584711469959500208445284683754062000323499226807245856795566730403830218133358373801451991371833977181243469716786593282177280306595787123276228020461301570283447972742602044031781410333265789815351818350972919998136893471869244609713313669750135172703405995660220276981916347619503554505230683634396360960144502209098870112689644741540709686952133987508428711328579998405561888798833789630133319395122751216523160512923202440649157129192542481548045502505371624662118423434908196405331225516149497420144514217310042424770497080754450172591805950841175670509791653578601855341079529192441635401462624521681304380240652752367211487303415743585183976612286286090863980485211333235001088292832685843351490606568595016496868313915599380148166898114759774391178427121337642094712697269110990984265442575457493404736994738125542605001229686133714639124542636142363601022928269024232679647056448133435216788562208443570129281075968891018934837748909540858066873567349941124354911138539572593246618923075641976708038697659664097425410036581267421663938039497443689399515828786722099856664994208559828995053489490439934182026340895403195042863233792337294415526538397484991336959681213058932542139481155722829617830918926312100306046800756057759004498546622468657256060752478175767389314889184231101853524338053350002273796448726030453908042958170390799318193461940968355619130611377329758561880371053175474426837299883758367138859707295814574925838868926785696152918102325514853108485054878347019656640882617821010847229283970513799026522486397614938659910538520974105925917569119536315746151737027197027733745584828553351791486041193086860281007504082844847925209678346593228196097390121110905351450689896168672391783711801538441268089306365188473338627384293719826267504973224082938961397980273416495535146086714998324716867358513568200073781856590940174653760909106933711210144224420244213363806394792275194893773671184701345355864194983813021052384123944756563539942852502706930081733455121191023205200189749711791376862939366912352498797300303273273704393139890278277946388833109079194486322889284296015260754168851324379712425650638733819941981540627698170802447729389901480500558065546837078607528055134021007203356445870405024459315456654921313427873690170467996180722281180521010780290201327381836783973674634316207193183152048220054401027078239154013040755803919916796535554866896593939706937316327813252007242399813074504560973309684421826533545823549477816009700156306070357701945027106920460003072228449376963078552209974370245786148774253966195641541788404811630217948549361463174703928724797223892967532562004013483800309899236540759920377892012458907196291806203868169955837685138871053672465212194759854074523206926938367228911230311406627956409436735579446525984312108135689916189179653955762610781221326471498848225210676831951044555505854668148556120953045011999115682192000347426195158681817873441616346440741806316601393233099383898012418162741141157688754920083480574217380349410736483894552866320055355860289354624388072603099560981133974615466881727850282943956289494826632495187281588860138327146417212781085599604806878426559971392738006674460681642282131282707420237943439255314597018194641345564032846567596319608571842657813618721697676745307473066893318102436320670208275963792358911266689381955910042199782221552105137988930596218514959475369327253164022868309020731486309137778156223486419674473990832481184843484173625824212825561285530382963323808831906933845769579723518496524100549989445798041472586347850790161893087005837799406183028013596101322871118479499211597615148322369257554167745530483114102375635788367890878725496729908342535884426042213050154294746342168920101570991114795221318389794249087063200043343636417273420963102603552990738474337388314012351080964718459505800796629029187720225114888949856633688492607415528117279044058788831026719734131933120013021305058208245852645957313169872952410260607337111648822863693397588210259816533912976381696416549371160333477887113294383258123748503487148014278052346938896843021341268919299970252521910467661829701134257546197990768134076211769551199794825652239280073093583010678991787778354417076077139812415775210473423157054204166980796442207974181130286213107846700329768793377192413695174148617649171049970213584682826991469047157696103569936631858234040745401318017957527279823404465950499216592956359661756714853651677553365858885464951595556995598265239624640646497664695190592223978766670162049837228434575665604187845896067992606895659751305681159384731762377874522784611206121941285314881081418431424803945072008915720453506178434022573286541736042474216088109758969414394272653326729764414793336197532105600968926461844816364849393546006104291576832772251157975423016411246922160796303307718368691169123314940282151506960123959452522721671167537245697078140766563158773811561816624608836909925957731731595435145859332815307102247402929104521025706486760779462623396672365738631151755159052759633573472863712368566597618368861284477542464649529164132090221714229342445072638588252948700579837701280307795822847981292760884748119215987430295223846639883164229087523117941539081309223131087866253864599052012522730400666987066936531167937181942217327437443749715554403393083238057149016698271089651406598139497565531042114450840029262010815721598460816959611683236342035644937495514671569069163127321800745424836819069534121126878760185899677458098792941031122455896348555439704405560648370781029774195041381931909021993964387580764818633135895292216702732094925214562800487334098282933357514491310257609704968831351909483348536201809559564929481273714224672554052738169457203955104630517347789840821406350992077440381566489387366449072779310786982724064029657601540559835128856995081035310146961275313220012441365351467839437569619772848092299606009590493776073629374715605687300914314594523284091690814131206790925416523187458951556220778894658886400623355165169658901521809212214556357067254265650538035963565790042403712206304983690496427036312405300571885322636018952898085063769306044212262820434515010378893856145301821073989610152966692505446442923344948177806402245054633124389054284574326852689759395683152692478098708426786215908532429531722288018237419929341685635692707664154102256835320124218501861242291359690823157834814551899847023137949572884988771288048618615540375005970829189365852137784077932600999443756683208761772337108539612611931865365926108678828142640681746438633226056118754682165793841329186169227432336279287699198175325445713339857371600597623545355883292456706938153246060722325847248731379396055877456858593766984690191259261892983502100130074334458989038070087804042405536986718017233307278679905889080851321013556244074465335119083311628436730316851114795165867349915323068649635098950850584497914176161171298780174288133892835141557029693463132348502707436698132776279838068316880250463365823426987097500956506514877367598652477225823796123347858271757873594119917666934340926482010641281456407509584112830818395289804183740906335271123202186053546032939747316464467098741644148138017291159072970333904030106341642077799775130438302983758649650533133439456694437740282056306773286336477438831704965783028615397491291127771864279723182049044327217404206418401810425903085371503495942325412162818373600831061906870699889231261920160981671859912886816334998353511387745727965739160031586852842595510201998832033963562434074340476864973188071667010477079108341546984255560145161035617609530735842569129650101278617343900628295904166580064855946610028757650798996797895034067151466516889829753229094717420599589630457876988477496714201389611534985614853968446702760891851646389633558468693417308830506340225673987481426856759821803843923904223492444262852602317303237691707696400247170911818327125642030215371368569322454251690836748556793959434280325015233150096495012815801224502861835801575708846257851973961251797343396300572743576858917749414077346123202402548632303320153860075564151501353457024162451343159541431870569869676279317450955369555996280090581308803849806730500660287620327660884811238640026121571292311976670477135800342937259457248424517019412152064679300360401862207814120246132507436231410434393988232614036716454554594885337126836127888568846463217058329373893583878026936216092274258464231641116132690740804871724814337356327583697279520083639452927869463146527399144240567290458799046552825788065270219987804133647797784873065385558918771010325282581312313303977605455591056417862129758614712924743913975465862901137055942117273126694367391694421385393245005449592957008038504373524188042980460600378429227269309605943380481562990215270954880430152898199834013968960686381890672994135875232883120677055640147783741317438666974659231172927879571157571996937248632536863147534566047912354922223858193641718417842801216591639595951658723713281288018178078499782311033641069471290181541399922763768211861923249260012669686257466488791119132950109156667592481294508226118348408892007885115754408307464499872193128759591288536443066405513494417202262616679724612794821529288995536832026138808554109910662577525789417960939979236654183915576640475175625805236051838094178063000585577119103931520923772457194303608168944609816565095928736688703255435119833011619548132451487334907821447123090731532411652904266456405315383729023049903952870537233336370990719977613783411261437394878161714270104833640785332760044477629134102733083857845984658782198859510420012629102611941268108626600244663344127802183308428660599171685363185835757988074677431982008353299173740737441281534126931328406073006925165335305071407242902354717779686452423027018873547140403335532379159645553921048438063524785861433072044205581675595221365809895504024059949174480892109846388848648472740314428568305062069679663094192290432455156203458754626709437595639897418239700811410562765617308742953279342546995884383848222824484547099841605009267724115235462838844074041551502221603878898204238230608444598323208939485507105138162738729255912603657977288532116177964598110421266567383993906957497982066738243562658262632915243676850817815991828410424837196120430756750444254552049573977652481989824893307671499900176475388160229110488652248286709755358163686492264095814895512023150664429862334879314740599485743605006064703133482461090260947692583205583279344026098972492172789470203548832666146711118606537909704831291645018479836817031920082918556422721345408879710606022872300374392679720777877239406103813486475412929212884484442746020701108703876193570638349298244938267547558151147499767957251859606416254969954445937179013610584854155524179244968030389432802859548725962159780873653300091166125611846302487547287664476240874741965835871925678776164812647717509324632267751240204456671729305908830830134219593131164567538764484951577362117221272183178466764875638269746985381673040904047430899937922499040208742182472092481820853646454955252961215603299492394480268574963241698842372719002897074524121254686943321341822462481663922226299461764895797872792991226527609952389679511684077937418780212774007048012674495429974784441591552861148590001780086370650301119876204287350621675007480095291699244240053481662824553162416041929967084472564646715129687462687994887604342423740913641555565156417772209873404909517691882578217260036423659472313434294791769114870795081746056540905868663874600726101755885423229005194649201326013530416833616348357767455728597795293139693433961896154649474152923790643687130623467880469837319396313929702702779380105746250247832596482832535017981536144785328934704554377898964777634075086170917783172810046303588111321342727998728412203621136753610300387038798536126341180386477710382067190259967191589088313694941380593373145266229711631638908521663939995241933833275663775629641680208148851136714635421878286204611560782321756991779276977510695427446857733746461444049912183871923830392521217786269087481608371954726067739210150677924994889471381795535112536925389060779023309077708966155883206527404798828718583354336613174541826220933502318043930901860007980171780826657800605677549929815878699663561813201950554599705524323828091806412306743399416292686216090303059266581102823304071734423156927422203029807295141365579725401005182619207096021832289434305154950562898733693479063731879711156668665909990949335772704563330696438120269369163768602831361893003252622954014557552618350843798752894935915961543480062255531025905431243995390138296516115232735898871199256897888636028227175731043158730714903069915864655515040552926291633065250849448461311124061919123498597994094785797579873486504673216880836324392251571067162623529155075696759407772411986644516542557126096495721169879876102962727873259722040806011166847088292568192311523629615072526535533256008025940464985496101403770657541911468637989286648814100557174644586468211870100477638284154808471259152194674848022439809113500780254672677167541593271466110133655103836526731931372053897075947025094032793869473667379672190889532994242676627047592709964945647493787962310697551966325997075364834224750564618524956887669515485260754825724103730048292668647148572941601531047975893440971074664926352654089645854537200556118945334595016339494886650281565825805306057559070333696540948420579554619309110575952902546514799015003125672736905180619028164934826945206044910077869221555281717120364965684321012728925961549694742529146351168875935135997621332617097334385381883218347131976341192763013961656148127915508094991874491664159838378421122420220297345591042135068628295418996006146779150689053490399171198543780072255748109693240118145189267092706270241826912478413694163303409530419317766216741696326848728988628755543509353593093316245112059319511001996265443770021865727755347853189603400268937939073352799273482343756545872071453892683584011136877292856879632715491983256157553609935874096269820180110557048744674738438263354235587748812663725156160850139187008203742718949463989457388896301467883590044255111375926355380338751534784321389848391260806916671366083503534536696444916454530042026354887172103103961156557661045633018097994667854179365501248387278967225492803757068190810174045139195567412942436642914969413129197990641006747917439239676342560644230719270377253747971115544544137639140706984258349553304409758784440226796716521615995957658797845023953543639227854378940553341760279756121913959476379506840121321410664426949296332714914808560941292420322774948999409520673620292527900515691533552476396263214611859775381061603856761990100303284034597164003567897775647541927296331951331284565685660844382121937280959927226997777390450459379172227360595777175514697821004508805155116377945128194514411087935457560782975634243216663444293968666385512717939830412125056455529937737578561755012465620192015756998014420094266000534372280220169864431152013159643136844231207473879063587890953527956087146528417756608503923057849365991614982334429090567487960165676186919914024445111458571134840556872326404450265213284786400852721435086577634107183305352532391866542791889757757697197036389449405524648132251493347642913940731416158334522507412899637745486525632630222723474370713903387876142895039302110249317666732588018886823442071012222501776732762447906779018956186077355105852517454249573256666838719256800698413057868251421119051069578886705556504204978844192281843821107877474822989229272306083239797110302683003995132146664129239962620709466336523660110397887971487042540093222004366976391091370815830252906733328192488187446652674687988758497581625878039134384331787412916663221870682430246736954880387343333723037464489528035994451813179694973272440702285735573344222315571534957865464417134065332822434474812347037068164813055134539128028794804796560536015134563758386351394567732172955766840067970892648567977677616758401963934568916480557271729291703652105526276254002951252087923582738864320512534412283652679831413610243071522734399310407939776198816538292575630249024897929105263307772517758060864587118930176293012649934662664663335146453132296789558683597065980238405336296875388845130034945462501154234942704608531929424391958122000603887535122461273605425035720854557428235027697328480180667530170982832934662324903531663848860085127279426179342423905278568620206114193169882199927600359798976020486242684894697345299928574582875513234074898168791148790683677820608204894599236326485247304741071145205134862497900510433130824621710391603463983366964469179252271254202803606205844472049495328540648792418563394442271972787336382320942000507766725511720026603068249978524776075865805727173581595450099977238871240899843460731408063107737767120473847008077485292624614818965752804060097791886409663117511804399214220361712474148058944744996267375893808990743031199989085717675934826540703752917154794314831184538247887637224401852400179647160565472098309685274237396227840427749433144930932420846354910600018519774750865977259043388651044031376532810757179018066912518034036892594028238295864685774712243079192428661973740866730497960659582681378822885698933424552777244613644320581067366490961178856918044293614277716360095407047868023181114307184612585973409726462743442875593841849519002516318325777156356860131252163253419796623968854077663843704215759521272762207686673221454928723233777160504266457377152348910299512452480001840319209105831409457022811059240653817828545419846924279437986084079886077446937467924520543186229968189758532443309898689990695522756199120784424065339129541779238502287677009879661583974620800142754921796238212390355252456994292228250944133686702421714191608957852323056820743771729449769073785497344092516880682940872698422408771770620247310953147288555125436159472284865341341073259839094416424678837974859292925564521126246642223905765514894515291366600558245224463727476776066880246347879666056522296612430003468733691074577664686374172675230506011791762023690091319532460533405509873827807113308518896908056485669231054083940568525509873119318685533739022120172747925938141685214227204618448040804245260104657433409935228431230311382541788197704114099707997831286223679903179518686705673720910967031382871953860677660728899705569546758206665889595556121638864406887037158241616891122860139231301000143475960855714859209942682232291405869203798824757095071675118508435438000233259463207554631808633116375435073284267788042707882081870709668181663097008692816611318825345784130018820171136686046249928446647772651432615737170422854207548689442930390033981433677799014691662908973818361803586273649570687114331983152590703489847564303581899371830236664986028367790941831598193764913549918123267164191174079258652400943584268373246628988086630992102335269314770763889473783659808546260081232830276875102499322435635147590449419661018109592771403462286093193109754920194319479433570940300303199668044634961126884138772019626745675869370966460520526040852071815031460742003660507756220136615010950011278543676807929929162090896870027945963612083357400494057389903382164234534502500651931853495059778501578407004904454942582678724446094057316136669754411346369750549942966817680637906233275425022887248378587239036981440704321791982183697914401119326704312636815076619181134860109628989995287001905356157965568518361016904928452591599221120032920654533366571663509342445142632538160816216849657137161484606617784023157500599063864509386949839519891463089675568888872844241709423946164580401259199647835843013097502222485198299323859583789560950880182360605414687582401492430059212673414339840452814505555198815845276014718180494361450132301393731043616557479082136812598918904302598794387429807882425348565204093918671597701210917589706065767021237544640850365267394058950168369508215954324983769191356371754461869083733122862013694958448474369596251441975533781523051397069856511624429473637624222839571655128906701438449227645044874426316470917680191115294385108442381404754831799893020026372061650647984627862663868441598016505622674637403338322621890987805860151410442347153892490352265902781671506709392891970572387170848853839535173123508852625021865476793742310409816992115513575465333181374556611071056936823900100725461975344520828084934832715888276295944722940402724821152229685201102975133899395569776974621254109022063705546795705927328054678201860726675958463947396046706523116283652912543809226950155272030503745668770073287986873825327658501223948978950843534379308082045580321277697275762238246005246669366539655358792875265239205025633934681685038812402748258347273460849054148738205970947563280515428040962369811376133939784521855681186532062467150829597557572592956097587887973997974849418173829319460471581475267969906862392672767799990811018721757440241899434901080923222575916505258020627052547177693572442952350762859068499464321523409454104824004729390541828653693732377619302907665351542703314745159498391065163163390444977918699157364870610747590423812902138952895450296052319830312631883043372395275550477186093031456595637927776877396203763118843460955471461984499550012779586605733930080713239229581177818033260406523892617625993666643101035674149570094539134201343633470462875349638117555649693271475704525811133722487901833276328179824034804291422866103083763331671386439083289671061066400134747213830427567616582709029477432252478906093184916993305270741336881863178847237704274572655711500395207371367093333885339020078620972206206315882276830039445234140537400466222534230122499329882286159948104530945298967042116199151948342733777373470381281070361917762027029280142826462913769722077014157013419839266238159908914727598008748592841128599475393663756902146891713529063977289374724056971574513326675627793130207904715932147288344830171503140872794761813719312142227489885800298635215993091419609573129514031193389772773080157546477548322917359530216643013084610501974027097713344213872625845096447152773600023481571542176997175759930751734649132011834742688322824318554261399928654255723422466962394104660873687949256405557279256450993252732997148474242780817958616796992488824572628817967036767428996580354955488623133231371250251755322610510406572498778487298968886027693614983240213567396852261007744320580910943939830785284715227371189933727223239387379850279957864614201776590205135730548702017133262689837956817773983921547366978603780873781415716493418324159804984831457362503025489288316119802191864493315519121790398191464540597963029540220571013449628215262005155535275367999253417142433374888130351124086486349780245357281822347818905539652577452466602342795104133482060015551132904085289882772682257772117044880336136912930628271163918815380922346808516120522437681607597878600985106008675147627002514551467459437118748299596055121224311533796575588872545486394103676588963806216601132417573081455444849313803878207152911586676254645775211295809420185111886262109269485908045677539755479493020602458937134618525764588236126833908313304926847583182699163750612790739989321958734190106496198126913807133106186390037178951703647648022169960844553456456936557801344771742657789456668225827780600706003994968909485394181621906690995617481249253115976898773709164016448991007402175858027995873601474097751638868554484340128214598864662581422768371302444424846256270993609548280817609518768495812965745393750655064263757060129276341091614660818452320156158083485705384899751124491424788615597705450792792904121967080224439454697116691965935932751414797244448349885332529297087660803335035397575982648014058678221979011239868050234385702915136586112627491048010340409420343042044430858203525959419645934247991059318472416163478659568758159465580540546651486472047568606468546082443846361747699423799539652972437087122855731361059640869658339341120246851281829702740251118566189827117200029062835246380329402413676327535268058028839696916477421586651300304056888492385376146420603432123965556482348285741210537999333770034223889851778522909839578194410850735178898623576059980237151591370348805079830040641153926291892490691436727848643561271348435117443044071547970553821826521149267268475761633506270553812351742772890298043538648449593937258309593115251327999686717818596967793592698833146184476936592661702580826045673660215299653446218549374402332045387036452613913308149224284538912077180654304555028468635409106033714589172842560732211051529077092679877421996311236823398913782201186890492010496448143504959607154771821047137382398827685472079641115936985945235526803099613236187411864150662175396920427043055771144739789789141800944423753727779684446812588804033876865385480820871529551786739888658212061627765944614386253014008640208173189256369183515492513220865285036026150728284418695835851042631436559346417652302282114484121168197343701465770379481161870762110279231235801228324534250756270761784112925078841872904752607414601487571818461925397281026335500758595353755478379240641584815089330500407877363923972129995067633242130570567505745333267084884184951570979756539277310894765807787081786315411977800543682721710617503804204022150125060921912978107070173262986386422168951572160035418572714675966970662075532961676158750692084572587590764954674267929221693978394865928253076270890719713831870010034569075428172409717901783306894523263382871137242450380767704384963466614871821347808031092304830058398532216315629833115439941639602375934384836255633437801403723932378093373064123054558828210707458884857237315511876348926091233747997744964613912864814594783838268843098866102564379093232594731075336864056094230647827888125316425624447930273227950847773676084506608211802733572245786911712147162660214706643619354493158318596755184691816094261700318383442283794183834931935473797168312851390270303862461308308004148901842139874977181021748675447713249284272733476882629389723000151421534834331595753007041941966803992011842726711583881983505661848367040755301948961678183435590633336177212787861503484862206922360749954313055744951079274613246349255416555100717666042425482625494462574954788304785299363598273528605976676665039002468439731544553907183790357662583462760821328919908200381706326897046268757398369811883895874254107304221484771568231145005222680094822355186263715812955833569613161618193397049374875143727795941811774158480097728866161716338413077422914332143593563861105926172507316919625047402720833302519677321005658526411925137211715787083579901435721471739074588527256131945139503733803612750273282180792170643353664311156097685519424112455859480152996033212798999602901344783049883399424885096127005345293169195251744877838320269459365314607713793064497561385092544734396394787224011179761795078819506509650062608629892730318058495915439584806852868040067805353589811721434590875631642334312588899232236616695046134832852835941985553073860055689088390101919032131627054162232197129399444041661666918209236892195550717323850894720205753909658376305755708309924717108065082190762150287109332232617709836126966433432183113275127616492540293293501352140201916888217895869395152906328532258094807184565151957322802968924426546773300373361342615536773745502830721289842704914650962570718836288300191159729174112180668695778236692412844870202751586884768251896848763209379210325337092305513293296425925916018105476286367950985357159966392565722204480060311616546498093433682496073506603595973949081382999202914561323271035828393817872253533573900273691150719857675880375204841990211226742595987984752919661969669349116368986801975416011015929709013793513317407363144151779737926829687535282080938546353906422842996022750389134255722421555998294732898361388855550010477772422427517957246968796389676208120365849271971303374542120907597931945727845908238186004860091029564841974829978803505888510991499748164319784211959094023434201573766414059468735730991574797212600413638000104559324396200321816223127889227899959888089118171038577220192203102307677787044874292131885330544945641324002605763787898387989610513738511020170484630629375150134738497421346029970686836704581035816737700749255713322010890990902899617937414964766082428527986888232001185912993786663713323776785935425418690918749231758276889860465392333878560960346376863976730878544216476193237066909897414729192322041017299352212744910945057521224524357679964193783534387926607204312528061139166364937364470310785676729118378411004099519168130680687213726814630613257323839841636928220714598361302211322037266214363675779930244516355032867728007443397088173225377140378821997381698335315676226777534771086637993569212835036867210365299514432558193098563430585080142948077830925634626760698651552269089189680600035817494802523667262164012422583176852356352429069191996702407299229892269282813835205366592778289072378963373004219633485593780059632965699669810471785781812025158983298591831251650345617990420917354073953766001115438980654328650034649768263321423704378257430673532194070248583814592403912729621378904106145564404803867876268434876548923744429887763020200086578026010145424622971893788032744320025044085292378436383173672856629478157712831744547708264002528147132995708345755971927700715265026400739699892908225865641263788269159241050799643521471876776803242794351399112320225880113134600886204626641992194654033636625143282401647966357019344669459163493135613714452080690419548375302667105617231398024227031677123948956516930420166033084696072980082012031023643217464208991502873143151757639995771791430979532519232021469919213707312301689022034681185008988621794195190939814931084563482145113335267277287948129518661313298941412803132830560926575788721365021476764820383644324812759461115981038600252084864858923211917994578747957684543228764252584825683543457690367068847890412296876684398592288267264813884340461255185055738117828914284908539165001572249826899111846705998210948283073717568068721961798782391987251140946430588970586469756945756513487767432145688175067895082830781710745807844802556618480006834253406538596910122798657806566345657097186566031578635944151662159553704132133903924749984436161562043873729601135278026020918653553551197364286383449592113414346319584679241797226242968677613703149085226879918106873928127286156386817775920962577193084792454028234079241771498308326794568364722198547068148026292794664924077218121786909777856012622041495398606576891386013488830830696382296199382103065016993518738224833557167048596708246124169028758704728166529567585353731963583198250432269654732086756349284737155306344810369076261450833757767019065949017285571388058333751785930246377248294210666278506655926936190921977286793354996097112773667879063716590205948904266114496790835689181650964566765890471444972759900839709948200460604405868273522511003550612353121542958156684292885057634729805097846678365403948895164278786756089966814488510042403403560374180274468418766686648000136754957875593824437652860686230243453604069646319666369813837169714645703423071872159540039135503962905307827551624262944665756789334074669165581626992861474563602193327736399223191064949070882158106402043403131232937551615284045686011011039342456967187248649365003730476576374106002549317306700323153453822601683013888849197259290434301359809244311815379285158857628816964705654344641034554818783553536134431613574692499010544353231603892519606011664389431847094210064859945573260877628991578593217628094405128343206277625371772232163418554310854390391402779073865563261993224222205798583311559460799128482921903781005476146187374030042044788896779671046597508998032660827426650721210238895986640856341107197282972760670378080713335311156468387104368271954581501243849181792256668288386956206669830428735389525613083240350233177849051612901278154184042774577050441946759071796781334477578400029094572311059533475482169419276145175435494522812944545540828977951310733858911691783620854199127207755174663757545456681281588962268893711085428892992486222725166168090745433130636250523402890443888567957994550914821378909439422777625712836863841444435728228677236523923219181747818370749988406612029530697470462546031225315192507193011810893420062504444683559166931739267960501960175272711796445858460522765823337172695583289238233135448132033779596174787998556454020090496686809401868152804886306601345082384119108834645518907486227511790486786461379466129099204151198575398016212032376885517447501058950593109292269467652807270289263354017722253580319230234217443808787981128862752846487391776768897099126051333441188995664474861858641911252781555933372391815920639635268490302533558866014694391816449119912597540863203358532321204772354606537107800754916310962962337694450146303888890302865137486158988761576764604660489969638786802487955902316195378554083453783390968004730533552718003258454022789528011669275304104147450235209778112807493112883783768935428561857855609126348084256558715701494144098561018480781868716012556185250464819498104960923040322610539595861024128299727721491989301493863776146156574560974581678906048813010207919849447752949305522472695398062361607497992729685633183685854280851551459537050797057143914180296627084327998313298138385451456353688446692099671492489552138553225129922411580630055739300729183633051577381601065916268756437120156890437227338368854083822223241117435977889440921501668222895747460027979117799746101746588676995708140056349135986728389616280565325946529488011109800410884138947675114494382039508019566672570228701320611303472361061607199675468582822943298233141969669267268324887676352324370491895129832328625069184104398462230158876756773880140782847843523757394606920683259271357167741540649175489820068262200153597235264591740261650088852622401533002897846549082508158098335645960324817620016401513179120681979298160635457314461213994042944272933725311049291089086786532146060980273238024515532520337528904350775470283160714677315270431957708591403172706911800581684081417140473893357737096770271365846106657672687769020465677844391914008749096411545521416947945643743699615463204738769582697905031611186032372623392910874454716951157215796183576926518150914597725398173571620573912023982350680344896906830095234354003980693551052436793782750730735433610598792800927396424718866354969133883002628283570442784052188600196218850905990254769599308390544426715144261653427551509965880067292752731583905502882686964943890921008013654303732126565831972855997093519295542058877836710122424483321633626066298220375481392173179786826933684484931781119565599129738105863783029244387001921485339671350157629604654105466993717585597307047949913594305246441190963170024288808573722623653619946104442167524208786382877902984633633749705837614813339501156984775168390716772633730984441876092182444815228473027159078665092103513796794633947143218796861666623762413755769979922751626709357852486220835267422678443828921496030876503804505526067187637693079199604761795551672596630593926172431105057448862715871677678871364898060028048446446036988948212724058011426297605046329411808064070800970943763868659123421779054231218391872789020856793518484989471105886379218964758203403539688542793394450240316478645528293889043501495712005851568112146907941313573286489193215829105729040648456031997979021988790988782474021977681330203797641883907624222673457531838230067327300586472697079541215937732988091862847123242820428981400194510655589636528843757277957954060129507855160765182560929845014933879789588710171010195278279650465670067396690810939025304258697082222886280003200950962449608995165801511228116050814694929819847766497606550007664629542668210584456930611912631972090584231593372005603231675114564413972258649407082071066974839447341116993750398841184182965460533548424441518538094203865866095942259019849200906157342140772648149176929671138066512116784703777835756425455650641452742701394852675129966531759391292323550121114236997736997227882700951413419608139453036579042329485629017253176710168752766546274769444144778101143634548915311539176662269184767191506716121145942587118344889856846945689307932693001260531641138602335893688515099629892303376567853314944651822607299323793451881191449969203651090937735948783043489305848028652247220951669764366248079237445339014411947765702008551558219475668828414664828906621443134967296095972558780305631456343236006416413777571946239702926096105618729077021491267099419046756203962519508632665144480836619089258536656427056148207290100252724654542726230472543769873021568161521350618598362190156258690518816622439922547313982732377816410794058642585505558610947945532164895915355263754855905183685533339741860127962854368998500901783945695517899078286510518477366138028066967172630956401002846024488013653420095710619862219157516694658831478049317562076801143043496904045204921092617621512742767627108236581802707240582193061828352114556814645010762556779323713006285400374967418746177939331231587823839243056970332270537612232511524778255371735813944068444575512749228387430523211334739528821539247912812301270079316469322965268406515562672097438931353951692332430414085750020981669690762656335169695987725651956092394108381489552624272435815650629712806361334601916385657865150403283356988230797694448092235875046527007455821667279333133843423152656245453306925895748295141099667405548111535267831633401447096957350023780218613534759638321159259863491518163943167237380420554638196997810360718006017968907364855705235472011839905042949655836431154789312510548713819854638265078089652618548404547161379812435294782415990104568602410588318485787436846142019375106312685845402931706141353202143254271108138555869925855377418348948520816043271699816215543638241173826179389931934083602447172565543298308334574934191866910135611035788211901260034819791068540759912743051662969546541755140590894878215476887895696261043387088448500560114926521274326611466545168987723981508397096729147993637952115318275712548266466325061593174607069397363460767863500724795265645422562755362561911531103586155951015629244026019436650405994364231056897082588504546739695044490679275922037565536754945892675140984686943062510637086925952267136651409323164811857748974747813999414528183496813449589943470717446427435516128205216574012232161017860858642797726149376672077369511348938040035499402808369867113967340585037543736557057258583450942144588170640853697248784012411583059039179250195574657357630066744706699832854967775881757068196500716620792148109091251901682412553558977979952794404285154131240495138773733620311352119419842502811173675855599960994955646220843085797596514321503440104495694243218511704917941168159262765937750228831086455377999410847023254998869076172289735680176249571002560830938448920774119269609000114050256172201929219922280430316952727074820509017445453004881296081018185156217879272836659632314593712948048338990798600900745538922077783984279230156465926751409860222759337506567893466427353192387356114016720844989134910437182849398759835229227591980785771482403540190317163751344001308847166941606032419585968772109293974177155312390996802407503575344741875559464824850150344965766901605952413286269764732232400217293515979466788935883316754141141941195838589537330075517682672444750840139889659969267355565665598270134576604271625395282751704052593323722681720095430734438879371238494672425130438373726950414713460004192337664131046825536030576405758396200020014520509329702100285731017760571639163946419919724063659129136216404781456990679274299233002086042063379724392695724367322100538059064665860157450510605518762191191929812276308666101533416042059224358151262618543310792105535473798308751284462703368830849046452904197812276982146296079907853201210302413909717356649347631954925532493623464832111083327874824552824575633483361594660659821060447739216854297131780032582076334813637118473863354103509369769882076341035736920412189982046871832271021680156357851130645512392432851314486105007194879293574272770143192007163982115326419656474561027892364131547015946670088865307273731366587558056709715796185716486310266491297314655745822402877535173995967346341599002887397555641119180204130005829326361099428270771390256182135313151604877571882597587630518319971675521831644411466740101513059578064991052352971897439252352239547935167071794881340245811653174696592271514564061251799479374258185168559333961969996354642224377982953078612560400359000696084641912277551531673048952743965510288874764876599021776242918006563018201228765175349190311570898715452247208865577517124227938492232942393495676201434950800582607606943971220035520510759801411165004798844689676705845892966301087216530597164297882072539285245170232099327990478496855111833600996626303702873188689989081431358790847374187744145577256014676205999481284127839583990810898269527462584188334174915979409526337795388439752899584144522336978900219720202518517889586424985455737469083793619251740056475477159355582619689756321591129101394857515274342910094945545570990282570147662596955831493177202871261561843107508742981582848133246365000635057270789135961019883413515841751401222399858788268625656667045744221577585381391130664996826384716889386234732014865424365537388550270959036695532055257726393663278293294602935506787382526808702023508989828329625691479630150035490311254276787810453369681940808490157944929916271158800725613374852171914060034122407168382789431163280684533604717421018041520608713762542919711727825989167446296153404720822645122208430130699371718806246032013123877126757587849666806712253384712435877477565294524376973390784743827035027447370315781089906089739063308409028128633190312613753446063379970542712778398257531623102967642439616468245621410336580113978396368870044315351181881846210602989310969987975172774688683925797445151424695535034591959046012796151340254517989532121195510731084977663733081224569970471328696892549564328318986883398525821794011311550126644572976466721575335570047558543306791421671187797292886342079919733498429050117119421227714008658073236966862030492580671063747854269775549895181644827736032242105679064666269249152851087614063448607204054492179401883623474103312368714163896237056103466309995365208454104836124412466588315044130659558237257168144073019022015105704271236638232952123166298248154189868771603532825147081141136166924191538666872063872150072059058157353537352393189110417535496770305126829606635853411522149255642346712275617194847517294117114430444800012321390618634466918043076286021329046568647710899530311231036149521790745818398342614165760407036743722722073791952410093498433879624299927068456877381731056958020957787446440510931889643727303214076079106153168455413133117431347012220778861067012000536453009990191848894939544057575453959826027587113967931167162650217433956931504714101211928581607354350176273560471860106864867453969857068302988103860739616970277711763179158510565497105423661701587863725993358645758829414319538701042438116911545614264808608360519002005939438458482636551039215041487370853669867527247334349609937569295148253806789542001315973183418532688872184845095702125568133980271851455763238551512296114387980320252894212500084697832996534664365904358737142465444172575709005986949260299737378900019196152260409664419260592836203290612727437473442771565579750399475639853659139676992552925025732865687593448593953754705407431924640370613325221477000983306572915530950023857130690882962133865987872057899051741080527859975777549306821052762075255555627093736318177262421089592855402788410575216558399702566264898794966120880869196529117488028779615654679833798723516860913098597473559152255668931024389093587324718977987574673807342164914726122253758837916828627008751083458912826279927029516083120216821537940887665001222520905351497083463026299909210140404834880998075268177317965838520854543399814324201380687823288556605165297744153934913542983355693664734758685575642263036164611719828936785867186621377083202431173280123394618376030227273608189800958024145035940303875260733466228783338559172414233884165706443092836586975332306087182754454322210811999745087476769121060017880215635420173801102350212944126619966274878802343408377377475952066780509719368961463257106944822755041791760846682072389911117942443538339247725848664755023249910747009957370782849033405742407926742358431533979952777140139843523353375382797799917113129571371126748346763803938998060094037746711458346258055530016264977638937527752510334424939910947340710609814356808430023115695662571679374742985662191176206496269376079867098910505292223926729771037568654076385740603912820516277890323237409529679284534375225513701720082668576828917394902907589142880190601493154489216448682962618722808205577256164181238626842294949777405924745421839341888121288955442524157900260840464520748953848869497383033746941037340248445940125597168153055204224555057090361099986312185280721108862828289749885007058253643020314032221103425709484756111151407176098580319708086230650047869104959113830437499599819225840600164424259309653813657669060346550091714813543562695046045421923630734749537438377142362409188453032738521657486020584703722967702834265185953406295803585053255141792341398315860423338831390916022353496683033175698378902747183964755252619597642371548462612372425455382770383745026387249350730120603786403743707403317083719781816208116006600118602057389590616262701509816980441365227404890920236303532669624691318957741767898524678514901617720993962499009598048923639888045658909155272022068963727548620442334271654505912202602797723600117875069946925656424178418907982845570758296469691484580117258410925404778775953329029789475661421097454626535655771996208775398047367367974423361475773707333832472733163201343738695660848010262563747070288505003619140120917365819875565836133406804595057978213745050914583002150185170080864638936186333472180786721527598502423969693819226420264212498913504341887591600148964802165030265959002043250186463571670259809388694102553589276311528558718900629382472678544334356680611764336721290095210044042430116006752702612393153120613087895526804227712918765422187925457601902656051972220752190234491207470009434814247711425219883436056615350633914649625401282550612236368511894892670421185801257311337301227645988524283127795658333505122246513069396862525815197614562566259175004594536347908740018445806409172879714916110111482826683808419968369377999485055486871645437934916460193078566671761231395070660309829263932544011961321718923368952260450319899368053631395178154866073664704060195278909312595215958057160468550786190635089915560724567382552595252466002570566386951194163352760574813634444382970986051563999694409246952775998060372044658593383063649948774222391390244665478685846244392598908650016067553781059581964291619346600669728097106819322134880619404787975620818370226394193466660061175699078228527583053289859070854926461045389800429986642191065012473723682831898456018082832816578283133575407269019699581598460878158686547429734271453805098476315001413144192905204027232418596471368115667889153569267245420487808341331751825060706112414376679357130329346926482578788814447468041839677496460693064223983911702694412183216729644200270870317400334480168496932682245901566628996790427741301635092060739941145133360798892833074596357722531914393954407125389123271972942742876825539063272111103520995943176032433327782775533940487627827490909094076361832647154900363928771013355241825941972816079321046811635132759744052758492308428621820801319860533887088190270283318530004123102334136892606046541733278451050215487027755601759646250465399303516221613366860851180936365017984479231603552335305584337848592018627220874987168534388937797131610588734553365841613831122907124380938168470552953408418328702609842139664934018367842766751305574286647497000097744168181301613187979254381723007778423315642592335285162758923656307221513514986152221628848814101218535824625226808506152083828510123260445887289155982958962592044336054384561743881356822905505365362690221033302969138990773945508745024587531780426549252938642700685200574386165735505795218170776999708898763813329780879765165977527455799626427772835749802412640190466261566960455690819186803810639900471722532587904714136248318570772722254846618144202787691188559732583977384724423358254427504215184280760431440785941373749226589673440458744206351843712244920953672670236294280190981746496438482502366405822622558367194831963837325209309710993374728336828214798639436775465005147485788396505064236525618522717061146445707517782970322579713388395764765807181581989624601665528416867862016096377963566836357932650988359788294164006747900710891423738799973517159381211574787169644465700374080523879923767262369425379120424139919590506969022684843357142503869526518366582794045504081771149806563442778452312101490063310874766445929272182415404879827525074340718987370163026437287407039725381607529533598192121463763516974236058962094035693434762614168182516492860833801204150701480157644924928661882462048780848292923426789367653914829353327573287367848330377480998501931887314595996390270576169114368633632247408166734434897579312789860123904366886651760203778107789809531394204960460904493208215255888470208758117794811396198745615927689277828560843168230743827635152387250132808202895561986628801548016216393953797258616460280150102454567093616229756498625901062092952833007550279162785747315598741050368566504487723021735262981317139184418486711045984333902353145190898379529296564980881660727299307078752481714633023942537460318331242961260145947652519785739287384347076266349488028602743239515465253331758122306623942548822992268879808251749881369431081642845345364914436660232372034476112694198960766822092682857776325054582446921214567793959733762547122183144926299232259796951918112400184342166300580105671224121893554330400902517558051880218743334652454824250383864894501956422928599068646056375271716982963064701809672518915453232231130718942391947350588592944781662156427187242384933913914456814473835340528370990511076975839720416438113801320265209263669504172311554641971035950919194876224184160520218508851438736198242057466973895391544721648507818202919371512340402905481005134532941734412085531763839586930401365153992456174832086058056008272070218751135154122863895803238189421808468193747728688863225365379462456176535130796259544444382749148250608352399968755747974969523582614182137425373039088521677630264077374760585243388844959896366179734904675679239576637359239688168565430193088781085895529894889473268214235206352340703803031075133274549959167095557733656410048967833371786512896549074988521967425672664678236707283709686194439874441171714660573727341624665708836785441120240881106354448186309897042235960423500897656022241098233858659918227208899951586761668709007006146156875862737581513413741768123812816709721813853935429702061204922396813315948394570477968784984249843358259136870752279350555761943553409910329083051056103609235933822466702617035022380710517426807510834163730949483361415414888638342822153269901992598686218124718523982312626267138128874935865576245865353822521727904080276467687462515693328544275530013926777098953935244767206233048690140758378109762258966290005611222274955319453745744720459791529935822011527285725141100126292910475458082416527022994062425612608281723873947290551260865372311715941115500790713311760142359080530369926820997666040495252866362762015174840037764217536756713534160689324906138000492138771485671016797663963801145508630457233595392073438056765249388744089003457574130356423186630222429040043184848420617476506529348879961019165299700343359200652538166342438722496567809920356937261009319799150110972602008080136449337748594745338949127248723619934955375404854748140872234438746833972567813466357758993037341862591149309161936095163425904893297073909446021479484357739886218545488630741828361172221231950999775913743904952048517724911135153594139321573706720038650379908394047917115954470195605097395814250218621630537645190159330855403431766508645390034451320006766277601927838523626305621643125206616127085575678786223077191306092316948957722421556552127321550438421143071270078396142937004210942764167074603138867278372912034933550110106399783825827879237480100836338918067616772557492421593513587538907295599837466662394893664114579162428557442877050721443943219403148710499510252912955136581017977606638756828978765974159998959745781795308434869353923090702529644992663655316963869552851117316236221095524018238514366460693651330866197926532521903315715443126474972639946177338646003295890345173043398489783898177609453320499432261582518189306126059417637809115977974670374677508956656153557989112377547331153488996972547978087096960039485226641043896888255323306630450615604119093129437116917695075948464109595701358520333267120417943330649638012095923256464119044749929975225309168605306649186844223335496665945768269488610075508610679965269225488324557617321444940135036114622327581477325373875793108730144798066126435824607970705032298896333371472757765207353248262342398104926107554738419983050870672323672318905216147486582298114064266572013190703974023359042896473153697736758843830853306774269410095267121165147236290690619014599644229280895639945024870631360071134410066755109666167521230617541168276975525510257808106565839212571148049039033591774329033744091897505199268940311773276692441240475080893326898625835813658850290767969118545583226319441500299387568722852700424467026396765684651197259862958926108995130113232672453443116408785508182117002105562940421600066997202234190672943200717724788654118501980740193058582870907442204332426353292240439000305041584060022259076245802621129411483458630457822982207716704396856925006072002825008221612134416310438064828376911233093190447889766318274317605159000300409317991172304170748712593096981450058309399771458132748194825643802104234936078147007964852006206275302451506126796105466087335551557441016405765380736806379738542625149953906877954812571163516831064083409917430318689884534045011768219042247667648679769079735034048466751957815205763987664731592479183919425854076257441104041523542936596673496114778527483010655265059439065302677498034532915346987988715325585583004396939234131872412837003454766878105989897578744230692840202062483158721892777647562389831739493257804748889962093878288386562691025024734760667467197730448394869358043754829921392698272773408742142242927765446700957889829608192696739002229594049936609972391370330529913135635512096069755743561514141321664148975907724042236237359664935328332166101353866201805789512892877150562519858158829386700647820541715643034739292757944989506023444894667019118159106890918294981408506409179935247786420266321182468630009417082087843277820404174625774511817143534730195220661129308705618617523210864485377600911339316238555400641225607237160944338646176721976877928803046871885897616905208134102008745605731466341140315950811283933912865997408885376032988216827620697085046023997543320593152557432112498392077103566188253231863135774825542844097291691819159796915637955040884187467539915070000601961793386907569099538287996274090162598306459863610078704392994747003357471198880646108593608707296383241677818248775811080477550355879957819577277245895231343671527731614484853120844821010347208845790767103023657599679717745049042854121990810585417591137470584640237304853842379979163433363256449425677878724364173555703980591813143752555400404650148302536594813647615920534273468984154745914958651657553590792957477630986438695946933056576422733963737110294317538538649958281952147062870964014818320199619689180381656470311348250573505530963570319186884572520370446318217435258285229078396312640274783333945216238296830390118432157201643891005388531052866714268941097729581562667052891172312078891333005948389267364521017775009150609401580221740772093056051495252123873606363475051306451566584137279694097588479111488941996309735817054706275905064807948087107772661338034627951701682678756339353187967830963453261637379091919747949669467058103722250368972100447544265530797721210264874653062464555853327147045270665001836206945936525479642330813377482937944722543139997280383160668918695501303518153648918569330971185522272487105698231335531632629972484147861809298926176992783662904029868902058547389352098253966613451235126939476018326158627407840290936597042356189148715987691133966370743858669063922058547750222192388580533404425986276160092530962784832813530672307695881261556458226178682972947949278568403845155132469354370592132374587561690879485804969927114983906838272234633029506282918232109787237643010412039742432255205919390740035018553807991966834566683718287624349799440559560204704675505901610440298053227691764980625174185038423943139722538790870391870928355732589852788328404169736284400037846907791252843778809698773370617857744011045152896357362410351827044463487890960223246159284944963097511059149838732736237870853836032609596616910048454111437012666710638281624879863237590802235113432246007610807513003312576184873640340197988453891347124535308933808278739634460395414098592677214452322235380765115919955751697256639254545928172834172965564638058176929368377946680456429239721873857267530178412129979830817716659234404735444336400938496066440984112460511902079052992636042887713590671178060649293845699163969821230879287904717408343914461991302061244886690697731200554142688079322734521619698248321325088773130288493967251106902428105875653122571737945583314892722198446899560602180578914184313211112268893784474314287341450360025146507762049703366275683019976553729306837414625608963540691319396652164265929134326323981893189348066124964284857968629657859695838341042898787875282077813148703880390462010416372581754360884657418275029504378944465348344211553142029156483700411110244527913771754010184701764287647294232915728297474372811311754252112734357580540289424968358442779901971299421814459162856476127872049909611069947470122201795016978688474453728469801346476044341415275360338983897895149818881051003138745905204847246412241636273463152343840311023980876585296225468169925652876674285094469201319367337966101615548407888152743260079208219779425424204706133447271495182852314791093921994093832566034808333937763002371246460601140540313582247262401071562519912291282651482608963327838669905599309038426932759576927157590153223813030987303355967791081240437360257581348990656230729718458810248212917221431018137403280955505531265366529007991717705154708113669344301311607757488425646294768658817034003234063052931704205522998642982541708575023095317620629457202316484240464421203446578502699987799834753440933712914460786166991083064867117547914921496675688830469411363340908076116076027404162807275620357955044065852536328540050584147766055673895744733500806831464568870855129755044015499907810236887154720715690026582436681031305890544542013580093448360216569395814397951612494305582398399784385314987896668706718751730265777896204403005093646310157809332122984224139773334845193379432336317957060145874403478442432829081430557979958402288077283610558200452981258785039646000263930330484778223321237699643581174124907552671191697539940453282118528051594349988951504106467630778010381247853077076239819293155337674818369968577196415667363312475001035371951303392711684845986727128624117337064982729405961027193108624614161783644221611329267480683772165852042855100948886904602961082242968639703575996572732385281491481904779367772895557816439642369117068723001921000906745514454591642677564866945059257063696585140357998272546458332425117309225282557808724313241348919861397774184789422523454686290097651198736014172821747591896581420453893371843597297917756241249130970662464062825409023200428312715163796643603166780919445193190223162235749750797311701505302249326184082801232313482154060524420517781031000006550240805824987294789922558679441070737122604091760083368555511502209903261173053824535989189877288882438377786976520612984574044332545719973198564915048932409000954254900152845548471099209978753533699048149754325629052920962550195662626945759085573479705878470651461204468798306975587016941674840997008626653154796161994122917145503412608544683222541008126433262425333595670524756064901779961078996716748967270580661528931615949433534153187449150590860251732369714077878831259494374855231796947397336092540634317393708032993552748792042143891393732592183635942344134116441522291081267323344169537072298893923389915061642224533653506749416889616428877558044154344778536548207629394871077185995207611950643704768697340333740973506781717581273265483655632874251022753788911984338743473942880215324333345809975921632636754903165210495484863595342486443227760064344459292681878996426144939202546428450033468627495332320516551541060413046241695506211589251901681313335962913942859670695955108047089989928911518306777819142985436962878046492393313724810943152469373105586912873493053528995131561326133666324935334013152071363250042254545433255515401716999127031494256486602415761428035818556987446200572684251146715140517198504450943594637283066644653711655333909546374055395335899293068538640661080310980344808485707753330071628878961947824447274819889941898262094816866106588310967905786811769223045499163215619436237730061727446703612968696919047932625425919894515239327323616618571013668554966600523987520537812910128877030478648080536459701600872161957647326355739206266213684458821276233653824799048328650330610007991344096456121606852370643014465562673299145353796606877750087480048457982325775017805490617067685969791596412200445442258345223746581338914114950657563668836928749754899356575266857065292833320871533014465965244174517013624043383793180593312414058866088051519685256087858413319730663624809704112967963736603422149031142973248364866668650799252815117519706900796513844614938894829324859305508659599841364970174720848496519347110256734707045639114791920078291711892291254575379967739956287688523237247595921580125027876901240108340437052902722480244915869743310462432365957979851566813264804418067462946920822519104595372003573818892637265936984807345892569490440548389827615999925321460773989913880239317042053776499487653735693231920885002947703451645918832427586077850217755919346788239056167209523952571156525871863678271611049873254386240048675691787449418072091914857914922373188627693335917281059058857705099168519469286948554972525838096692521726109471215384345957452798253846959215482017324968020644834439855967336752695435117383699295075342153470388442895546253512612023204585652986309925632845107743592811404640015120707257248505034943487422963936598403826984255929161431297866620511127105499010243425362300664664951569221893326104510000962681540748906040201157765124680240195414472162210857022928519158070266366274499043277510421110587567385234607549785721045743419936095890542301465660653650428272122609514426251096073644757825806968957266995938213156452236629122750743045279367152305590232745878580925617445373108427131784690233363560857970279769687573197828998924377338032599050005566142170438689215427697312967514628994505299631005625590612356772106055303677356543314397491375355088117033172580844037226166447243322852604837155023912252691571025113526626007888759374069137772307950176345588219574183389516799425816691023735175686125585949949560239997034238322362788966339333189632646014112872642734419809644251595549765746909219581535767211065594459160608140774052893688448034785891720956777317757007353540450695736758320099136946269412740860021227565835699039053370819293043595018146431608056340177851707257101038150465387508380668216047063178751956593150818393156670220084491884083686923099350846481137541030340295374266156280840548528570286858707800012002853591646660049444815930974617526774442465332064097647184927096957513458434855389592268121568424284437274509748296700903182919389663612870469122759177553754770702237423450198812641650920832913478457801321338911564252606248310443912247951212616666894910818680844362408015294969933116003943043873062672514151083578905308924566532203283457401785148243886406611921780466708639920938138698513322687868084975769576880662049428199431590902860773099912452512039782801648414582184687370168859679629716806136439174726245876070375798886000538800181284642625091909014095697955593678024894120849979170380891396483968193763408259713541614248457217615091795883117961241105135881589251950987822759618076192761398797625242445183364755296018823601900899392956081741214292190370701718822972620598604985366546239364938096609512046363595029775935306147261626734328302651023665552189599689095833070131765993903649075614976521984634168550851773509255877359444505816339354675771855295795143264242450271234935882010943056585322553615950811304262840622412838398170648494822099704983281588929530614398644282270430416914532727395535522523659601590459962868525315062552132512356710320447148593429544384733743957619087400218054236724468499788880475047394146246862992624783137050827718097087724532767644396999702977237012833183025102237468831581096221319180917257207754843116607735595352620608034821603644200342045256799408070979168534364484815495262032483086777751985135155218677464157117716904353512409550827449115236738671856939177115018975090179003538521555074131817766477713786470557489899177282546911066567708068444760494151669691361407680091378734316346890303601143087343720934244228119914095733107798035343286092391884876148120106727974172552299627716595545451306077772884116177251256678172506260630982512199851078726381674483081529244898106926669360565477883199658803075501837368412256364140063668640309986841597671420855828553204373856095560150579343083728151039925459031398322352960802246378429053068399752904462735934378327906060235322644018621338554422743272857642192856980068497877112319254540936988344428323486364788447728468628509969851328167729731196171010512956470078156760041030661426984441731801455784046753753916221815123420982119373676295178514088333608952638416624501254959503742520517566561796180393434314166163374743027571664354272134829123422835307200147010375193334524859405298838845073390753951197645453344937133788003154099117768365345821549864508846140434942648824222014006486737889739148831332993934724228266422842239959517674121396197892322720421689281361712843162633832760205412882650082355979387984388076275946772052100809330020479961586632310604732474210865519024646282999937480920798241484671804365164846814161733620505173449168323992116551397122781807681727309277145622707676978733312818253618249899264608990695998001342231782398625975847268325813472849708806717275847444794039286714472036756630048557220686088306433122005454449162683458249912009009807384312688893596017123723919766915653192797824613792706226041326203465726502302256585319809075435994731038734648084452465811980209639857517819033213105614936279375421500698742169292572248563864179248745032648558259916973342419962110840208065145543669326067289935443807091583782899210738240285901277356836290307469473502386042637340916570153362849310007117091431392525270137038693293811618206043605340788144107768173366651400858082759947716921426625930059614176546182577440608305802220809178628306941466679319332780090139665088549846038607347517361790275193922010336293672070639719848693674729898640755437623062487529437160887694160731674602018616415940618866010842410690314725515991074716150727281157619920813510060542262272507990007037389290010766832153881457226040961805747135828447729603955055231203606407304941999474356133576548609201311325137964395211496433359002285911214842860864339993379199956064912684039862999756595123511691816509343247094672194428231798849472352282772991322147053241011244065953358196715196229154762579861734152031708835003073285106257189026066774724091590632946647984703909773077769558826488923267371615061411952666381875177205371325436074165351243131919934307507615905784226898776209163216385022430110779514121466605270885164914960392354636556305895738982394816751657416515629480078983406360231394310488661224691431426708296159362427197988438503036576176677208326265844162117004113254162576040288833714168054141226592888682402840252547481426957588302586841165108746120073445909473019918025928145116980707829747221234781746962207863102034509316134696034482628359596309362966408216787978934716606495693855312745489102738610271861693282472861623476688386376586611050626048663703287372017423064786082403167011730381887077318214663080907892336197010633036953769090923518448687803194907799634491518422689170284221614341431671852496377154727209802870062316375844140115645592216315507399015060787266176337177762525795089373379456547064315744179554457612352473765959618855838329157460470383903261985283352748806434946044146836509112685496275822569721135919450603471386621536004640037041747210101073039576287341260069870996467984671510330895979271909856861166372870784900005366180432108646251746332816726775768091847170531718377352745499436249577833833279485819328898819423435641716549270493262638904372877876939431978911071372228494324616542327421467529124341903219118310443488027756802078339723785903373368931758904160272133246874560538097295306604245953674699924769425491495119397607595317316516084497684851463220050581967581481264984677377575877989527166587564984392688907625084129553829095746281701853001813209941134242639633550803403954735763741694912873424615927427066283507936792211719115258786518696095821596718694813135731943876692424617691661156037325828815152665929032099514491671200594705957368088276677522583944145314430801705739077737564455542367834596596777769214177132585603908213842151967678856820670064850224189650306933276867702549872463947459106203683996797776224900486405200656640934416205911707784498484272620099619857463812209197730165623928654772481505929898647332923308344688186929390975935581264861102364018433918767898912472704189178351392649175507918628481233400283274615544308158519898000558398045940613658665010257027912054111502997767540260347234033767877865072036190278463761735020707500980026688834277512980301112313675468372813358812800745852517000639735630556145328528088910211104155062081169439433962413106694704469737719430413546612847014689806793251933447307002333134203000558052533529813628615235528862855001236243356771755889255800463425251181276380977562600226495175731995905454015467447852106402280063562962862427226348012746684264851366593352869241832992101235929228034092854816021209160031104719643638133325431584111380816744099960380540147242987712986751433311635662218816403726704744790351440662980045688251740510806407373548448997963569894826003089429650378826016199212054988636232908914680095970331981021964791916884326169171561196599481081272523320110807661973591554054891083939104568831194003565901002232546527336511479127015883128307422890679336333364635619600448652704005964640134487771697071499465152453198167772715037963007756394482615868442623422591470621773332278819370016996930552119014859125232500150231712615933244447232425914695579447954955478430543138860681330627460243769484932555714998758189011598700342062556592523560199130868242988598642953264746933557722691535334469068073385764052274963486445178865294671225625879316693604442800162252756090188321862412087764095387014645423454532068231603417067772131839461624793619579799371972550886973632061481744771323882841111321370268873018936936114408319261488215885697448693442205642709687122899420446384851378288151821944368636776857949520332932184635085401865933639686892246720574776237167162955116557657011433787986202842416591415278360490653322224656693265300196484609447042028993793048857877469048931054733244713030179032575228831157670072926261441818821062787149806979510988904393542411856708892318233621277039910639611631203498394390942775645386641735567245083914196790812829024619504923634136701746769443740228647686246717583690392191996144606421257063546046744240749988930206679765996669521173144848726015449857613485686787852696853704012547930410199943279445240197585543124910127709320538143396202211902193358879846530459324466571886436003283699190094830423872044905338934112281154939996778479425025855367666528894284525359464861628280012744770116881133419226532013857637290623688579876033542115700842082472922285971970789652876647679451477657487029662248232591607013040169319607758609546775578727177360965839458219942804707530222512964612306207445109606345656084766855470026839350102813982964550363146795857199777606169425652041042815071464300551702760072988809352610658183955688988545110034008769688452288039658215426611776494658412810866695977994308575247532812721773101472995889878033052438078757625532458229112371831264882178407419133038783855666983560502974696160786633785194979287512534638887070804652975440555385692046276915052877106689350125665461308921956800547559847867348358895050481125479987878447480867282308470538411488744617995080514141940948698596910113729057210593589563154204486207467196617810130422700115214617001881756551377388933325266012106120804167899574909969937490852046017249177626476206080023597094879869798432810497062427786496155562568020286795065158250619059312507131568663267407953675673446021299368222649510125784254745861277640559720380733710788455965495604489173928576469195393063204351173244185650333809040586321764970845606255608328047506653660400587926127724034641657212707271181152490882359318107027268738141238058169905333933743017795032694261709467541507421566942011492165145262598737777501058404019417688586592627185806048500919379159525754113301596634525688850920680931533664426497843656444523755355456939710631279383410763967415268251563987334722073417187457344145775659747131518997078960424203994095880482167035741491899127823858854879787251729433854647829538309241796162881027976890177761221145883372523078745615175877281193705266389951165155141620582742576678194669814775271304209400590471769319183485639891754149420411669099576704681861880631982033189417473301376128729758757047425885966086588540109919433615766985037404357524449087663149389381057179273341645271159776380353239585701265433136658473631831739827541806373185680698339825772564361733229280968943854497295791394006536691318555899390762210940555854491579160833875116240981059573066292094214125241461216022725576284082612070787948717968070139884861620376850921219660749532562698537420440909468198204231892294212457571080628545659814570833016482395861337390122553847316917923373062757472207048343862586233417899986481045787938423896199431555973550261994696993178530801837890705641163072392996467980490883684845716419485918902929513734269087695005953377326568871321731527189221885542685259970186974191817137603954654523703616843366755515874280759279359511742890636934104950288697906521839375866462273643093754935645721265869834680160032667251397623365913378066834045018289636118723940749114804289938112221319601673293288152363326083541109843926153249959662812698466674275870199938637431262567731822495231143921180967142375405230400728890099347960277258462701920870042337950467748553561035294381293225180870709408124501280709109084113869007237372310025902283335769269074818060724254167209661699799053563229569571337905423455792060449860943512037343325849925361555963823139291900200908843309205038856405437880318150411233628103278127350058463310281642475578533643408915016566592592801265024096685238849650806805564617150034347102801767698137157052057328445275837303235275129573974302177030492380098002783231424661040979567135336670404114967936956640277111804450495177540754336415513702246403511146166037770114624177477129713165298977768734877479590419066353012526405869356873727445575850702627202724404689069669775348879655886054869724241627897294225874796581340927232324748019748906152683801260696193130024445076656021655086006626586429525384162519813742948255184439413589201088849748169445213757866478450162643844554528917244731229808512352962653518864549005511685753308764076969410829532332077646253361329775681168702991777270627167002238945338131438968105023736239335250251694756797402588571019437934713537664347310995254876554815122877132235852398969132772100121015192510339551135121065781970737767748337773095494328351797116157550834900182696923977304009750434814559477291280976402601120123318005937918602944165120453209478045213349236015470853562399311661272751468534058124674847817301232743076737544035446872492024605784730353314506062622816153167785410748633909663745873433401453610284554091322825743566846949296551078047552472255492297895785016664970228288964052542220629611028829590370249237736550059575836973323994659554493221964596596399249832094813175467079091639428553707207281374179237617296701079297691400815842845334806216608896319918475848276422244323921444744734577503998937447936412422051745609001414009756644158522745378475043097665666406088060673715162673639856569352051023369277201505602801883100019253108525260398027991605187787986028686445420123791278914556517401951839378423934105504374619584910185306917929508254649743971618168393070722779612991262401156461557451543741447586510975246086372885445298743975638205413071866727586522644751393972564606330970756425285246258262391318437739027974414215463676585897661498998728005441102842712374947224027920493221269233511757180014260329996374173725488386665327783752175213326467295027460567481977843985209837113039997507581057447516688218513725103383665413659077257557092620876672311898497419608315843481654760450668011797041483336154843618493525076963544636197821220266733549192599507619152079346676897992750508011359493453596487826842913625875488880799032879447338036088069308236212669132562221163765630716369640099401182344662285217658629590205371199776077766937592725446992235470831720668370664950390220502233635919963059084127877892227579443279359553775169290916487103979939751648430614037506713434178940386438708398361599948284163048570274820112879506773405548503336609658583960360449160710260625304654807987164279952746118417486937690292792894902912795719331361272749876553730288525159150232724249292797246057655287084475422406854525273226442601949280872176951094128978318907276272910377227941686016811362243067630112713833980073888974829005400663397725352412715201364410778862811061173713164556863678918342368973268634527855807029129153837785449417185123165265268717122057168047158282048700746247920114706914261850911819473614441406196939545835042078180668555535807553525183202036549548376367869984420932478798103333984673376619417408633375064080593983430990219975640305285986314134439767109729591932945769931755707274238836466090503942990971153230613184673800408893054851633115689333543428548401437418946094761650476662187873195113085352993513196308017176253288707529025112814329439186740719982627711820759347610875277685138209274543894961073149592025914393229360969065610704201269810624784421521871085320546572233445971028780800922219927153560414075450855402547266493996591861578361254964526337662825694820042598321289615361214887407794192814964780354116407238679580544959933417707560852979809332627187340126632392685830094409117820020231250919903437042736688238975167448617570443898941941192795819717561999954073825296922360469370010002600770901162128142776732961350012463607375371230276762540731032561425621981938807119195627603837542470486697771187307275466185947446533077803036979780381417984575936904047219347999864186525669365515555569502431732572967788544271922157032086031868591261357553840974764098377586932824949499700492586172997913766586064448754914319877823158006640571799050163300694471257053221771255308410193443876333755129235683155461128323042158447128405058335783609109850702033759117385547785904231788417630644966206169026049066497417709196139102198069586808050966441530652712713904572042649332133104080301584004684327319984985495240692896180362635592895921692012929769914798899124148004265530297700309963269868021430423094671248678585789549719184369243436777788405584011133013981432741081726920960939218891857513421374771852899713950475007509164548139055844381709438607356920248366415109140443684505660388429251959579736018767086045220220153397837623598047576004244909700644591631827622738131785126645652494816283421563494953059532706210681151237970261608499938474701369901436448507912878859825701880922701601217056987606854388406167380143848093016899271223062163209034680519878404296601105803019175325915059111425677910812121884370384037116701693659782552422720602529447054001320542506987905944930047823723550772001036473333127096508744814364449153443160897920228825151000279258398651776482250275698922913323362266294974053382931968698829031501539722464716091965872515493649057376935984560100659279591510313817761531227409799458697183438512778281458604071756293940522271194961362055160580194176825890147768847570188755339071292476695153172626330568190166861504664462364327869466159632254861554518605409902368027202242554420720471179070151581647831738698974655542912206250040654348452993055834701489916106423080373551115189888633297793206090479094585226894932895068823538706594610965162553322804843960348914079543933264066122249249043870806319590494201856165573017987228361514846084886748517853527348570961292309872846333152948565479905824380203042986135406351891954152350249126488835366103256597693378856587106826054127356578134454314925123463640695424143566379505059349248099383245915374166929456625910473399947972484533232017723824332398860413308646883648635732176144870689557029595267767909189920519010212055594341630588324319908999939314478652386688740610288875313476391946516507239907472110729783034081801968161637681862115255682042825022322727692789588069321553078243596319629993255836935216729229778126695062096598823926331462610383005642674351486431487703155519155907563996726706610469689008289444559088660180017448580533091578545095550750544094344457254863412369543388394346584916379331958456489429511536975589104774671649908517799098954540749424429586970813697201088600968734144193872122528443496088133504356234115450832502872183785120238419173731759610248010875779895160189985164431506760068303055691137255124120413973202685728666470170371637934245522711547233399986652114262682981411018147194329256750533941581410177882249051506604687175658503975625658291620351677336986926575094703040086020587265888009266708058443800890351853672521649753107561648237186237815763798357346249856113198927432296967351601012962728431555417018152677425136158844118776484951595306940361985419157072743540065401607771728852450733159371476834548007737710104463564185986177005303065866008879653881845898286095588037801178307111947401174980707033870205815059999180078072924059027290719169910727531927906767988647044870201795478938238682007769100667441865972778772935993155429671484864845577273981759389894371905494771066015282771373595528900851223877882999511164107813298940603761962359948411338611314050747649162428181884978581477002704396718470124795531121662793319334190400770501857437146900220575360593517318668624085199762607400307569499169037904671177261372963486201661833784856614360774194968002690983692848527394447581028173740173656969492872408765234807355933692780702767321124300509185651340079501605693477786462993889545777785003606363385190053160262461846513292349123971890019035302809603650830035298455476430573064877671544544315289571438205421463117214011801504892248486641078600775166090050687320311836303857718615067504831604031106567829782207259196742646092369841949750130796256334848458191983746914110087834546347295200159841011012933406752985696200529635932131833126811650649541287497983885801465916382583204928386795483963598254205753223572089910456199550668743957649879771473320623268890452198357384901954990864640575702190030047143926051488472943348781576974746865878325085466409206792483541394500931072439811181559240107683478862164619759533322266151221751204984504633785292984692721207277381177216284332709878558446247559957946096616502713321788746657515583398710329332685045092121039500725068492001166475686029641650666208486067624265674122205037724730564730592045079337174961398240760709686520465512488930534501538666129282471756806991034120506934646555689387288434543261938322509057719980278881747605816854199020241200410142969869412756038198576027664522497208298622389895053093075380048724306459132561383415236505508752125939103149100982713468711197106540878935377343758334219379302360150829299245378257523552041914869232358495346222712288584811680137188533635908458991459443301539608501822323067714908373601450217083748330560732519668809942340567747214072200656006589794944596392748040796002170742359507193982190706414762626787815870795374536525963091650435776933723534125955196455293942121353807420064497005830604462998922783361005171967605041169762069715215488194051297969080630010740154016309579087071856489371515455627387883659225254033790961857373871133731405288079488819574584260537706660553631751892443033996673959201355725443752122677607472122167352432263045397712933489233796283536688187668777566197162319740175214142544776700652853630199090049315853290943293532779521860083253078739611699645259172841274794561550062211865967521738802551780754109633394888489701652581678418897044853322236465610015545162599899504597022576679026537031684113376167447940656388422775440323679134308575291409529857059709341769168142861510225530414355511434323580354382003353508522500152776597616204808434013299094779524831321980839675987607457590814847288352380204857072670106627282596627106439201863942338601148750457983384462156521801528030678997284807216132047382191416275220639835690308682619510761338299233217682275458527626646065861134256428267261148001879222462034436425896725651076077035115357819257935918100340207659103344641007890780748936983855820529708013959580318157036335244579932395162827131269914848756247205613464518932024997660166139030100103397153411721393743599496335718577032156776960117720452882215332100647760158482355159796074073393014885981355080918492622336831436381197828432094252398306522131928023699940890707673612559740011983894570830490858000077080864730926874321813233646398593278038582466954726825042618829747046299969750403576379599613172018616329386964799756403469516978460856246886501584140514538914273807448268211075985755514556051005541333760734334667545304098577501965501054575798310152487066232637047918739306352412375054971857531109237338644006056621042705430538297035614547861483090966674288426818348360334087412406604066298034461132614978465781626823472144687011799377137772426882829707071792686968777430914268827490092981192183169894562754285722072529528621974155673631459500145819238799219345370831606296450910923906393961123448443518230490909778006380272808487373084171726765857331063893931791596535325836673242144719181163588904025775002669994804221421589184039474222254755969407953097467143050459342986717132984943519948447946692855145356580949395815516420290943020635622540511332685141490449442309848691657634356252013394476657458245789779205238117689141468577844693540105417348555704494608802581853972740547031453103754711659498873854055635005035245981723505989391653016673243894624469568051628983017512958934279634233278853097678345280686529327364806930211656360562537677373137452299089166953253470298843072681633185439406298043495112415365989333802883690437708552714668410398276692815246839934351484194589732977034219416370862501897188614915209779124578244495841596800942223830003220315021265153353740704597072069432573605867699427430428657432614378900177114708578665850102513866113833177331038095952785678422808444528824260546142580770255337474189566900126576900418671346876229045582371603161983332094574244535336723222105662347264382461604133836850634176268453899622231122263876871878477383504571999596960273453817846451586076174276162909724210235173538917470917737770293818337532895017184127191907467060404016842177625505428854294064982619098467270335902435265628136293313374444050324720816690873438299090920723283455476647525991652762077437384219268205046185014159257298144548789376648501761492311528610206855785736132492401328371756092542329959066491800284849751211917734906369539756097112598506028293798847215581739441089159671404162651983444490539887206443008530283403815724106955703756129640456299157485780488523798568875221980781766435447687875226356349739591515937257606002131551188231397328332876990466164226622547172699138552246939556225663541483056238163021809116034196790177127335945510630111351148144194704140416557949568534487735893918846514963408944053366315154908943236381335130825950068047046730911089771077354510192646137424215467804608295835195383879953747770869077671406935645520605279024218625049498911724960431572784066333149977105397716626759282580052456731608883656806330196116227685481802241543901668913277038379208387444718411972730933648422096005157465055167230373745604277383468812445163076957603371313102680208525228803511465914449627270510460229540046827866772518227257896766970032687648597257954012219582101880859739712131412620190063484662713084445519651645722816078187715069712708721758692150788480498599557719401718812895772334186963306766645988203751490343964511639899380388154959967372633635022519933046200960879047125742624285127305207480354007762899021145349656569594104218753490837451771835688463749863777275613016613640504436844777799842070170821155313568005005975494375086881286921761444900416726662269886750536128388601116793557958675365711957870191526978438692682889511667527802018280898512024452236491120054204638316504063876973857208358776192045054670429796157816606612437259062481039191228638114976781890377313662990557021626840831786745822453083070126211237890589482166709405057854784964048060207456482012934474558547609614402676875891049369858754452416546409959784935419968969252694694197506256234361492242856598150919641126182571073650257786603881844200413093291483521602142844495440433366288342693561358183662072971550367108459542381545997974780767389489647460754881109749167642586855314636334387960140617693807780735091770166830671776300193114730202790821783019790402839430993582047130306269578145648034280987162374234312446012484385462574012901547757313337618299836660224768475895155319598903058247876599141544962518356683302350402675352424447990787581295968304938430400513855966613166688772981607257996637069261889280802715310306164819518110493043416727323175384243146972379018066540866771352400703024188539197071555191287765593182634779659285709909849008102097391195899903376451423905454247815212992064523665365599342436935198790344448432028002606105109220623080796372828066886102237435636758850680788031477626593583598887225182522386286920250392622389701583417884636492437110396945663884585477280996551579237861546569176174144824447679174035198605084412305019173012136233782172928127160469764017358227188863586843190221849765020017985143225984240903365555718648999476369582059368216009071399092440990245701012748433992555614796414223023364490115155662157655456496828310306534177674771957752274443165963436067786474472024694913571209229826434902041960870996400218373820426400518223393888696974872571916635274581174295836351891582996649809015030152031780634456131537575764670223712192853861754004089101871951110484021828980086104574944146824434021295137760037111900330126779395530247709837137379560521631025622600023513271228714258535087679674069506635639544409674387460015768570989364200027181697833320236812202903187240935308459865527998330003933869301010118590324184955804125343952771872275883272133608683306870074877629778274894574444395423586528990467883308837339331121798286965771692152215799594770722516278344765041388265336943090047804904712647519904442044763199892138954638209478718128034511322120779644614217395523639033183952334622325021164987356492411116333696104678701804533266280742579704031299890340022953250982053756765122393707654883521264909861760034611059994902475517449050210327390688340713210182777190841105107735611240460515200480159081719932999959697065206301809089219072797974523592182936363648639761148534386575463314657622145450997841002259389481404413722238835118523019332927763453743329182073337598194906968451434611410189970372339412781989824787295383677508197391324260602643885921956247715876214855493800073652405119654860928999990279938618204413293311676724721431120142198046221535335947506749387022395057610968047471421478247007239165844824184431997241648731366332683613406521571208398842684716425995765671289835769443666245066358380647616404252855322701270324830909564892888316276303707704479990201013263998726808249878407911555293480381861987866697733180206066847882181535110607645146038679043947411807161190086691474094346369826218243907162289443501827305944669634449585740940473439261640928987407075602119142709125681062877958093769780320572138136658535271491247100268128819851911176589897660590184243559510016033065198637586972489276006484104295654029004652265373014577325887328796469094378173631392330687640573363706186051770820069253265091787052285902079231730670082487501774672084925320234426530112989052045402451114380195905262882871019875095789952535579720451984720793508974476658548077269820966363370125360762151081369500219205942127318149402401308028363504834150638048412639018430496687223712593898583432314175834254289223229974850719322514594453311464482390504457790617879812540255845123196100206101588275193999093321365620367594153974580395066631312327836142974083745796869823159446355841047124208183560841808586753785279974013651570917390393066218446386623323465652782331245414216675826692149001690607724927554472504810589681530472356388022695271769150225377847008943610198343246484360861021481145120963617042900391984476062364974021320553243327537922918779734673192211879257299652901215073494764525945769150000286814472596346133904753566561218648062981689311839360581605261734023341766125066770807503924363417514097991267393006516209300632916084424046507061198650321361881018179626375426438864258913418150814471302071819063941794878709181453592008032392706280659471936361872419674294864459702458166303108756556751464529910721922274797977694664118097003161206645900993775382194489071867144641342524185565778190477434742356027920473506674351648053028081476367449850171278408764096075982068973495976533739756246746838899170205633605643816531632428437030394171901748633846313490119003946017577798646432982765353153044907780250801604219293905591624301019513312900485748136496211477265654016985528532003003122157872244881037415701631209975148160665315661241862151404717835298729026406439323163764708634143430233061309354328558133594967697264347243041517608488144300344050515944728410286394088361307261256664814645272201344164232229563209150544770839449585959973952054295178462317539818292579704207416765487009715310369282141034616445294401265260871644774963226625311122809196327658826997362280167210111381566578384699545256733120291765809006283169714588539455908552178549007165433854366031131965697828920281386400691782289543457161529029062899527367621635757329988781678771714532285290811794450901301160615892917699454917530701808263562947830843845017594538291884738402568586390538791938669787642249953329494595537548650437456144442001098890636588897041681172373223605228160250984681254427190355235601713109224654550307094871424594530840996943044641819225321047909501464421874366985137337383617293517879880494579280857541751878529830116836397224352681765456059036815202201908542364176549163019646338983675614935796133010052946961857389906265766373157293876578263500196134311843114516787805577659369356329586086670714000664457969131902223626257111674342950103819079150781819208132814714794452187786004045347414474243869741524471890192315480623052238842440706778023562064250449811327271628717656515578890087870796716269575347887330289740000731821052047638757096163931557529535194901387230442906356673423169733083326539134086527533790613825272778859040700359745013663144564280370312315598089393428785898237486854377459046012401044705364562707318389831500235383983765642882672421067723755512480422935811075533152699576296402962304485351414729255941081688690165873705205742388209081852761510548248034738262078053705312179337025406566004351987154000453798398940236296694020519434274010715707720796237430845146462251444934706564715538510075573422585205299247975605229970390758230400837542160772445946242518078252741502095427543866468350588247919661782711070783867318961136629142572248140072304927075402639067873911926278848037123684512740551901228549089841310554114086048958754931751216209523208903748226764325538244341035392550886217118854577736502577891723679193373260940287302520403334966839710443557621616247338586351692351501767796190660798577861013237681017300047863177517814327417705972992732875289842402306411448899688403752306073890401566516947500304789682131895166395753584910674235985875687589904931905507894816785121890439549048914039335392278093918070932222916329214089260391792832139908506997682667794928840423220738056644279434366625189174914384715807178260199565990810037852245378249498607989257025769675760131732189475953525261716673337330969928924613316750702973866848635741213412274289292859041640632924858834754227771749176874427783399222580049832493114049520514575068202104366468423483853537278870925079889057606563494142111362852460440708319126526518335792801024460735684452442403770639043496033445419007902258438718843682512273511366568767863588324666784361364358080013877911027888900002363267759462386100801197626190830018520451684978258401236071925734136101627552290153627778037961117460504740070556650126754187906564027009411883184632990633848601781361637577602806709447385719303092280282213397969365492507620101427636290508929283845393107623535219907791106072223336478522317194563169062054551416236915491098901943644242205705831308135007022428950753833172297674978241819368819248185497200686405417091959073648371587021126507906222419509982870995026866813513124541244761110162623224270948546700654918499318203296511239150545671168344214790825823693742644733309747836647624486391545578915363660725915179502715014324657332876372066135062447920611320276891105641013462339737364289313364612732772305426277261045461771645849578424133134478117443432391721251203442935339017700940660749796027193960986075846182720238854179896718407963971266402271991231094118889001100007957961170876649395967134636186375237780868976192933022094250637156556073235914921032552494330717643437502037333828572174439053026033261829342031172583142512352592025895288174553240574714550062773563149878589603787604668799491236700524504455444117605824756324457414889260067511149403194203439796416255880788569086880065559952934063017813895668336010619294054696151268163907541976274142123397938519606383220642174313577623178308172395389739998069508421918195875495707696235877954039390070729713871434789271746926019239592558905541524901873708796540766260015986006308834451664188270269391798681524305395366989871779790582149694709279563336338799950016291917694186185672503868488731307858873745646070942926526054450337736796565335081766651462134439469249656418759759877258735755487387812399365749387060831764962015680408396148303523627045066725422138775999407709868129796383999657705814618975218444732209340715136150609752437173867172236572305810740111367646208499368260179810610400331027841318673191653095045630113723367228975855523929330647602766402475923141186781878830207830731178516297722919410651934572718327146344310168015875336431760960058294195058563777392007656151222461578109907001709487577960271818066337970826647718333058095164767181735856682745366849692217950612890037509229295080474506154130255042159175502300446359903264947388437870994067053803076556478577668792199774324351785859988720912582730598361739768862482713592272644227700639114528858342345194844192969196640303041186359337156462013357294644404645979778798801187338950233105949446723329799833956163631473706605072326287045683152987557831771717373226272925292445053822918596709571002358419115846439773273113043192111030696686116133260992171985879200531024248371572656952391440281803818284948922469746803818008044139008683433678633897851902839230343311628355568696295150656630721790721327625940209372651534703807689597245341064420026182282639726617595645914604735861664273726690488239336332576779515324348061338917415178138500152545034482405177704876262378588046984518995895696689374628035132961125446430077484773339799534148621082769499613478050823305713933849923826888288420955897732384131365311745464812517016800863058222083367304166009214031453512906079685671374619313334252507089226272648888436369614224904104038861216219920904782124282688122309201875681431298921745762837162941433441177291236027019448029367812223301451808176334932055657102111307241521929118810229255598555608203893306695026187311509665660754932300066153488539279860744129935482792057268744953797901320531969448813378391812355038164223440946642961326134341021378796147858146623411611279950977038806790112832231082141803726815895877729707458933696206523033387460005278109277171169893720342691277640051903658078379255024024885251435778547594754771813709916534319261198585658826112596464436787578541962224428874180830749013973375527203204396263369935859140785185951209442746502175121126980002395901635227802995651538476178516162506529206077623447382734873432228074010280819759875917594121241908596526183439320292446921642896522657997591457728270924848472751851976019370672306654037108555473267337906531586195646329081040755463103790422226454563164630574058107273301969619063148958695281114126208858266899082366007200042400831362932446723848575440232472219163110359979391843840472967234623137027041995177922164153587236491266557802132656918576393798498557900121322137358029739203812295303060883996244159927742343086235837926302884089371917506303406687311638007977598634826736370803317625886235775318941888208427184720906431822445084217165398218502317079626414962961499669986861433141769780525745328751151971730329523645109841017986433897653177585657599278647535128903667060697925399077216253817160550322645580511430791633553691468043070292978347634151978563102690072442589497259385551751329106876946306657236910016799916231874375265580584881616208486253290297000634138407361347227868920824726632034761081953102835987092914316585509274074507947783645642164589263674206246206248330360117566031346687021574728185179601939530464723051134247973085777607662162212592615043425731138849688194358094708100657761436290256227685931649580506294998126157253454130624157151781437614367877771370237248044117326400586421620809053380433145351339022228760295216244182028480631510947755847721209028626732376001501776826757623644778240645546460108037399125339289123703250988589984461536993680901381943788415145550537130928902658451144205225465653310105378823035720984506640739227128333561937359053389651752596909648348714463617112481457594528821055251428122471911628809881710986859682607808231698695253178188634493851823066202312365309820060656832546216569400025493239791480312592142786149716850646842185041587204962422745362613095423324566820117806641010623698219931594602687230071035942299735013339603610967623942327604644302148629509998067018172272276428811395754145522353768930290356253563754541231959374950004958114486909905225478433041940733092231685793349578706598607264633595601866123167064925809733976358010166500542300280807511891522486735534356917558685196036642081226307617681176456029297262051093987335471792834534695585624969692446625353227735146955330208752778330295185681018407151124014800895334364174317383526030514042000566604173039931831924135423329064313889184196716783870038225467446052983996315878718808965243057043693094300694441179318551021153764259639652775335033462640730317891872356441900107129582103154494211325477145054600071471060591373228972581331892894821110072566317559270700781667747623592716182930207671416010026576001479019126960742155054079783322506680964263563453815412190844073346704324196619208939691211417702945302455884235831508152832498065075490978361521558484981294214070798378957684611174571254818139037841241861078820700314286410377881561671541696822849632689162630508720639342951643352059644281413917079968026788383758984201158904205512286430309774517112655695664751971996221204545619312030935175428071071746751333772738568852197009468103709301691036953872187828734009794080374610010805107700504984973054972117644596254459062722833808077913838287961225723176151517418318273673471667427722931034849133263345818152576986138203468586763517719362130557893459096855165429740751881233910977966196800300690324692606864842035636581066811733824929922469709197387839506670895770672012432787766406764499251383289508966262146668678817049502049556236406721162349261255572753070904698342498893987842026246853238321738769454682107295753783764559139108264119672244666406804357211881023235030287376845618238387009556910717591838047357608508824628536596371712908556122438204577797858947194541006621357873980924135276575587636984213956837200111179850959460158435512536824734884386704146150104664954063745197933450073597280351713483540905655630969216731533306546873445935520031367087945671616361113473679922557895230175890663869695303782846543546408509291957322790548724392519891144762616319869801244436503564345609923582666224317707197535614154215359121140818765474051555778108199997194499865224059119814274506367746975045613891940937217720105759295843795673566833935858024792601591206512638624860053403528684059354776125756274179364964008429505027541217356083414455997524869004514044242937309505132027278391385897406528882012618671579083739822294688294936950407378692675581919249556915600232105628649866967463251770769483650422781827545992285252617657790966491966096106362433773748610376908800296671427193349508047729827764159613604619927183196637995444031884308695900209622216237863689421829201345577941060569589692338593318275439062135670357884083155082899335454185031426264369867034639789538300883191863614445960559787349764545255866064381868122827070944912539799149188666938364407491976264247305803416562804739039844215713090099682096585306424248336075804713099264558204876662514110514971052940803923772244519154199173432097578078586136944634060285749524085343435598819993184238804707511973019840464962468487147880195286598774929674771414676147640304767121256630298754712278066160033128170834943286132600675361776107492430033178065775296482168858569211901118921035559918744126059789149104363186229346818891894439224153006492026776939142270388622625439065647100484039758924415609860575230319728819018551586924644568173630027138920864837764478506231357398141942378273779873525601777797686017223230031544110598316291677852198439930206042441630165073120242561748036303325185680716825745913074490939351762433344147215725842827175070789716004379981953169300307783195241715088476722830660218298466265392986714616137527486199725955305345053978420007249283860885863863460818088699099373858881133818443986573756572939199058153471551252427838800886911725482023727584302423565628415459810008991550409360095935308007818838085359996234373263153247580630695879795184807678701233701686561866560281582639771882863367955003181602382148203847577383790767932223983199520535424989402036677568503400251783664486539123595883409155841774378594021093646849260391938426398733113564459405988564972366806206948078194130572047994250133953058164452088625749983070743911459551301794998556267369261224652915012711057282252762180435802297902051065670372578279961125578391164532923437666171135155655215239754525119291509111591303309495100336067679798675552550472034224521943469672637707989956710006943910649336546303041139855002071667369455272312520545058153967418256310709702122622761691744830443040978326737461578883363771771842964314208817692411195277872137416098373496084163530508995347420849351149617993417692342179977970163878015933313044852969390873880064035129945361802844363784111796351513558679050954980036841490718603579280695234583748434346311046871607711634376359031247686654806167244313392218918117373815802211870415032496260860411718033711986092702106238379160967669425767235905432459548819834611674232183169610712061797199759193469201796476535707051713989462287059995444862039047419208935434443612160002569005858300499559616240645015792566134348867931004123643232823747828838552259640452023800245097819315378035195588864740162763000351298781941150157782307381355169184767582247369888160192190463718904579278305489142327578564687527659633111136788851598171569640472275319088570735736327400278972138681408179094433409886414163692908039044003195758944914664499837102109911494575533378226643926718457733751128994489039104174955600655610362689926962623678848217212111289420675732309487628737833515152878946564282706971150494938025104640902273362105848145963579802579321936434715982441410997426421808509862899666743380763179757161531084298397845809955932924588849561658736692239170755003992431663141915263340968578771948289610672210942825600178804069080405308581221618264854261729219177689607369900090324203555967354960122745664313442414746905069594800087336851787519611869813332840581399648786358552540227926191607568855962199940446648062207551294202124029389408487934421014381170742430870440980196830446635408678242707838444473217615278402864321697170707784382978092512004790686172124348219337962763778087524317138587497110535224986180979978051030811426287456879107130926247808505789995242628887504982099405308441711316247120372305956419291151912611002786036272366342601662996427592302392419210338592304210610409946279048835144141812612841338826045930066058544496782960244468911248580248429637401769017759110132082059008036135213721070034354500891234328704137103854663605109515640656085189148198394038462271968558507379574912631425977171501063438714747939648917309415369791603651793426568895065923474628004582000961590547656405971717020834344884908580859477783761107971148872470872693164445973893797470295370717810573417789921057432734218227282489387878910751187486358469355902810388809554644012425709228062838962956567930237905583833534960835853697612699164793041697607409694537483564935074757193063024388325256700177294432932683808981313110780948741454700324186430822507565115489296917965783277815126697843789886881266718183494605744971798913162046985532567673222451747610708420254883506211516275844339482664167358128680343963450864161599012377718948439110620406050251243806763638005653145476974640747700622520447496239438021482344128219507047181156094044942221602290062458959836981417278414885148893316812172386901388768198225326154138963026818650226875497248415527004198078326244081006855032068000328977160266919077879345178496452255910629822865402201675482149571978114706703223910958240423393869122441827335846168785630176362161711919778781012601298687310259652389920414489002369433665372782168921777545317901191928069994063409373368788218865549289502104689960498554912530852610626198392356689998719281271847099385369276840317150483499011294264904190965826668056022528235438827942290135961177257942923154625073958075259437117348533646647761352060489062406267749281140866175947947755959769827679400291111686846434500291601467847635476981508665303035977606917041480602495854728376586919614938300914414143426861812179052590515967554427548526959177958462599007479648430397061708565659224452964804672839121584912719576514112428762096032496448357808815673758671988631245527941742834536677054599036422602804172887075382686938336877308537760529307036006984826132546816515143928963444728583384228324560497571397068192933539657339561810266474527527497764228174848463295151076864001490671382029343875374646056302614678316099551425759347151111959644607386585485369674394283051930125164701861054038298931462733127312539578394367253267943268337935851356364881004261464826357407044873124833867817196257498951426428930631715307481436358618199729156589794130846346933407649041932504993106475423083399443810207433928858889354744819041670371470715447325088391833121433196401504116675419320277014184807222813123005191747563540120138127190093518095824716980736121364590274531764041778358960186216463247584396074215219870286920182363325981279858579232909207897299590239538915815982059922955237748540084787651008874598779970300366389827339802007973183770286904631673174515994727954687096391859976491464443471407486197325612322615354554036506050788877308268050312140936103724691887180826900733389531196184731542908948133321935633463064605080389842700315185063516631739058974822481296967864836189723466151629689258646932230904716253639590747508804418955704630690449317718903444120955365082289844908275879561454840831412191595592549907337535623179565125388427381298744177448901192661966309434936910651100260497514364403442481058538500017132103342210185788006000978636742705416604914419898890013658095505346744384733365931499679777025241351358847528128787955420001591579953079394151368014592233131887563037414914650690275854100835529343209024296793544307500852970870969761833791750946567595652710578047403636428238294903973424441276486447183782273773686613243084458413679534374777673417031312427859195209991508474582386143694607557393322869978647151773533063203088038298756139315978393974909189062232949612041086026607640408206927421794281012084415545553584384705950962819756607460557902931392005289731141653191368115417387656390589840555164931529659001753780678394699119209294292540266271082115991086413155733936796344370038186493556676853023757814748624347451829047426086577012598373340706454922182829808682229237607117929041608699057670913314262674378458199194868918160242694715512775326716636438452842959904078881801417848956773098727949293021204520490578393460476107724184606954355376068975998903803807659344787068891931419271507064061121813976259118549593570681444566553504032608093179341269619315433481315400517150818020208579929394006949878835132558696385970492946236331059128590463088772303232506167015079048684271272068317483307874825672853120898649148587032333016254371012317686520714106077724566104088667762082930714758594037629544638998766701145448424206344883204228341907746375361694287577333285371812446163329209581242106463915222533228499788066803743407253357688855626456604652274150662116050377273538938182161109739016163620189400978582755214336557312865190985286953104802951341168622970708391551363518140054452567368109285839165574147097142822441482423434522494843639538257515430618934936208645614011546183010512690789114375607458266810486372947708455060130043947844445133940917908137687804786441137848039315130869657110623800748127119652350717340898110433886353215269877470093079715765359953345783219274794369564232241233792174723493723501930951848933509608771551780353573658682604058291859917039399272012196191794379645441748704016649223351603725995845308185190599156105024124609819535395397690332307490397973129697861126184287962404197658632975575429632267141875008215956732461230942376076443700023435617972598137149052346763363034377327832061719887176175806910464380485641352126636876410499781148308769844343651528214272044511089866173638011743774509931878574509431400492328052914622582194749509812104470662877798948302924835713089633162032831017030171791798848564982903229342113838483138418268327724456242231131357876131519035660138673309323873027178016917148643146868329326396502853839480887278659997166073666302385181281699130811625177766650478339591628801517933321540316193161783759730612881858029502463656483017334973939928174358989236107100011097151442939575074507876423254703277322436616262539595826243191675771385825365058628028552347573058485410179102443742497584289794316569623259575366916861955201533824646748398356283910175544724490035875223848796630848683608731044852498794741715431942596579311932933239878699486612510067364725679408009249744861531359479763203371532496214909772126458716428026209257335090785856578958015249417024528838527001946396957867847518331275504590929775527147442957989871049144413330527787010827091728923151278439360233634319492251581474011016562171312707849098874362875294582355182167049053195843678371129684804089971828954294892346922814193138412170669091332036098111746543669023547694122786814592680572814404019483185780885533006933102387546099406784014132779685719177106593005709452342821865770490392818341261990490340470682241788897710008282840767609005028088688796085880494143532677018980492170555267474068677304647111831162116513470997951138839672899441895292574325218642237193908004428439813483279196377149163479978745276971915746419804399165921934430914405710650126892405299779446105289218276929014907907744084211686038337186124332837913331605146386758940288179117947620771147600890608242136415652676691255333180457652385421785579283304145533559929592011335248642658144222610425491247745546590559313004954893690979916607279590417004560251505335701063726279624739869280608382493002176748970746631839622689651258423199708600424120898954554968665283099411347414580005182119390991838308834468376085678527898395778216693612368328419619966163135943492267308175965929294667100584299197038539351055629054335704106777192886059398562314347851933924145023724662432579383585412393631723584126719247028555215222512496391739054028540770290464313984597045935480356463590638555587948932007735843046411286011051438429604563124191374057734142283719133790412400934847908905010269211199063601604430580566231384007378002068044142048979737694726629064109767680743144915052428945667536805652681103415238655458307286816793894465512382850762037991303899167274298010624708632468594878838453605522195869887063445179183794725846196539390274745504669705362121242320113607330797523492966958019743487304288298971573207463811977711431062935821444345773152215892006886931984239786498156631925125314356088430191649661789178109011241786808067030586982778901319701925546512252319097624178575518368154820322392800615580408991234541409243656728289377674783811436157574698316329080608032563577637795654762145087168866094642882241441846713833322665131317493018456623820616512946391575133073253350897778874079145555444296412445388771698402044174877086473397642639027949465070115870633002594782930813001330693495488820724144099321694226641082894354162031671229232746390865020089461891932382985756364427108992394259834482627651377742416694686805799118681824444062366184634358766420481518832995028901367589560146150857630827295010964757995693531486288060937582623255111915729743560166293884912724805093134303051434479473319443179889517565499641444446186396383463308941060389526798370311275766528652775933283293693357557488835325745384613286970050986777773969153362546207462900403669043418165658904073963712654657599009418709653488993295052329961060776209126764468735112347673827196698054247757994962829218006895728924176196317517437197251799056334594126550896017615694248303420815266704584245037157680015413160522886245184460154633194101920015734438160849681101537025178992636154413028069266877722064921924471065093903813466440406868038603021159837736854022815395928492469777375883407503273627237347972990481650202142890870948915913447444791189861844038543879314950775332714536275246374755096957552888799359389117188013366497097672290084808019991977693764040682476166033403087049977698976400856069277411064105276364342896560439840130178848271334315483140446660865952523756560720033412034673330431788385886506362236931097546295689997637105774294936210771777200912937741627789859344825608136658180994409680910916594856090610916990859824255161101933321069304455430914272532399222006964572374864406779001762143310804572896280924815665763990155114025678010211392186224537491716190824968607618020352499134964543771223428733790455627883506435122497870119190841750377961345542973825695773711585815131842813809689899417407047232928968886327843706964751089398033808547287638447130328541433184962869706075512827537446293243169645876634451086220540811495996001373168034749383552777520514096213877399195810850176911566554226828217763481778928219205973485041878334186484179132776162265509715751628836945601501311115034878461809220122092482049529346517241311674447157063395442854473170320358191434871738766424787962090751613713344021232197839614874905026920762648317474164234381242565831231573957076777884020725276625083999119888342313523528667488105705458640479486716715797040341191992071741305284414745699671050530304959676866621431278815449353453273499204365806506117199375158109032503664155747017404696495833857359258147608883016232397728634777472622996724224467409952325811671517988170763077028142882754744529368830515712409023574675417638361036966716874492493098476430149106782263710321644667976761154330309522385600720020290323339785801441236104043574244532991228327708919344698880676748739379115126048810446471321596118907558224477406567685137690840749499060836949158352367270993754383265501549135939092150896083733752450522607937072821849634215006029032701690001630206417219974124526858562537436501339198214050393412682065150871835853829265548704633842255789557806194542135897904690835429550301377410460935916419758199350341178420114564673564632290421362920769790078767258929059769282894780150966031230815924048662417832523457380311555309392719774234429644608502491802213098309200855815499784535930921978048342711546628248245483795880798008971966710705347436349451909410947821352307624891302790802567446931798964769496581595480378817434491928846489898752667314440808455864425244528452330333533343710079581068228017082641729200761944269606825122825609054391249484185416653976287362099114686667055811143036986564063827205333061472722658341499164913648157347226376386446466792065435200281143241284298693827436643540462199281419081685782003149798820008639512564772207583840432072988977666508399188635613536373587047613418162406676032035963222382130562591019590195128049877392636249169458206419375140805457666355253563651303976038929582812630078251329474281517086815503256676270009169188049786684982585572008131895701850778942235552399868069877032464754054294827591880231165161211663697496870740062308457583749951718713386455474960143722208227845158799943909429123211993603624685822906926372477539323161300696518273031482197407562464614190259514474633904638908749534346483369691163198823883295373991971470880244111100875654005056852362412559515990443925337952270219981690376298607445387506421128207055260102222366249546255069849106918917015369784232402519795095969073571041063580519132557080208750941559015633708460409382434366498272943198256832245835516961138970931356326522198575872302096984173934570646369848469238597165412047140441735121334347069064113055810287483489591284167933084870971652491155254627017819419392926080122247441958044489143591854955866962566475570824841586075061099063790693869199196177344669395600043085251486679395191809655543382911206214859522155289198367093223267204920512010856480792111820766957423282785907525718941020381640702580646423267771135190102446244424735598923947654358661357987845352135861912702773798760447323693556211654999618818879936344517575124569432896672032408241965546747564566402859133834934332793636156369473020019248012674971190888031051145433382245463758908476589628301051957046503361174078760375739945235596776702897421422735649550370536857258945358013058675601738612261303405186630320796967958287111932919788091485859737797302031145924961697331783316639427121162240834083623208414631218874968698443682255215234489135278581623802540792658545670218896742650383709457304490553045938097641866542704320990786911937658071642203995862611240986425189465812258299767597000604151276633463924654214837062393768750410496418405826067124856474969920822838153336386266153520789575663887149539966486643950845363766247147327116670565683881359164049144128874277125031418936788997706356755721450616579483633874524361574438253867902652276576031042348915199027472283318869080004520647159018285008249688921236079313849290668990435715770324649620287552081082870317040862002865482236722649515358405422080213096922455122711352205439747073197608228277848042810473803876655267875304993775832482095275978280616862762968136995691258551124652149886693525701989730716551563900406126109442062584609014526512299176906826029255738907374587511189300749264262228309481830086533448739028878447462956022376380965377612258942196868830741147584257192121640053148021798654654625004897627771726818744665943436346952279975062273016270279313152496326905367270539561428116192536444559867519811400934146101907028054768287678600231635132888862901705498626314406639339531271310622419019780706589677254091903474164401476311961362913467287154298223531597883788308232432499082100556173011805069156182888291410004404568577759193892335010494325706271727210158616937439446542884935598161762046110899768570473465901505028714605730920236514262074967040899734303852452091171063384326659348392659592438233418113963751777089302791628447458934782978983559766970456721189527877858433785580959238652586550847598418370990960032012334087009838158172126274296689666579806582228000514476968719848567247813036097170437767051545681354461254713960779709659607136190528397744520397865523253581707295194693792715484918445505182218900656651083644129972419617891114410902333800307399641796790481645214221614347730452389678091629015520698517017072900193841814932757919462172742944757675477616625064474523165043360661676214179924929103973948891815547461289613393691320231731460186469354309310995415631391867861398018506167118082102264287872130147959362866848308079274574788480529047042568439606660290911462044840027232374309005227252751283918937143527033019047235315631967024849206497025727721149970474505307519916763192472376828531645684021550083883971012024722623079725001639800098663954955879787947433324581372332432213307368617186885421631535726346169820327014392311087192117834239102618264942096389050495064175722388814057938850523531127868698593825535695712261749848773736972693298745310753802234125385692978916725184566835633212827250073288107018597845542974852098265212905341198368865487248958643369641143754158129381937544281019810199108214084318820206852977228817611501687131856293605984307169102827848826055874485061985878625416952574060773111874836553502762984866581667466461487189807053590635482176918965557407663831513899921890611262497590771114199830639987989602587275002779092996646683628648595404016330356369246299711828282893360243654003018374698055878806163506832806312402316455481974490667957045947175078349182696710078896644622055709418574191066347690259694199243432664204421320293755537406212460936162836774290279944404667975970528304264733663740774713466812656966474763052762185989668495005541368791517422393603363111914663714460261752076266587975459997076515008814947351540687060840037223175813395832446130527661105968742439532258458282387156870511060089959849426464412336914774700077936057385949153060477461296425984487007848060148505189241402906950902406287354958395707377539562600599233165322000216559429530976726329157968948494935137667631951390513125044376387222353929818339518163061696674371955678039107881479274985829977584698848587792781806250233812758287188221152871301179746944700511010938784582198831719432709068730447270802148267428864060888877676578642415924771461978679613601748096914894811527203189355710626385477041561458136310794068639936920670105583191381697441292900345818330851679334271749378523119693182701984112337985891908023832998667913660426986591584144485360041393725613172176922795231548183698642185022932707994910473850511575008808616093860771922665609147852016282078248815268693693796053770046802674907928157301276322885009868669020699417042568505107388514029648545562603867414853574311143991451120107921926981223085686941672447192612996935768541935800585491508684719964800043689959566659805220505389049509402845904243857442188617031582929177387690369888639782184115053383996995000943066969647850231690306965668057212472833662672521378878685265587281672399976279685925637949715100920203830403033229606766295607128573190193504636272916211743337308288414442645340620082600491304289141899226672534459835932939855999742353032348376359311949636931156051779611866521932774475361496355505354839414157540304369548483897320799636292644543667004377532340479436156232359460781592170282037771043140245329155668472434705790302699231848475061332205893274123780346453097068635646124644096476928377934996370904377629018353863744263361645088405709289552652358930083544258912033719998047554655572573329343207890824520615667617566259728510310162483598063829795652743935860720417993662125082664086040051124242860189891409116619519211363827164661425826591469071458876587857325930411949858249486664956033809712405685289803460488899181271940818696955835873943395284757981404948113821801697144649264449766339518863376722751136038883611950489653994775017152003008134653882049388835372459205619257844071965952669557610202529947738415023746260801746128729942461607872875901130505602271961352711912746564928699188433556897188351788938755709921564132602227366867986903852728784816316314108731313436773580884692821737974530940057154931378262719541530159066613171827774337245508468984755802634153022764925501533853206795221137320062591112536607855456784486459946438822404490764791116109685879801773294265553231436331008422139245508206991586925906402225032258778673073259123482222565971860765541612308059836365228937191176126737617824374185693198730709420519852022692925259249788104069010335503273423674465531317985440092724915136064682125057074327362976778426802763730717187748739890688955229907006537090983587884944328962181845403809757063565590798228759792492443136809285022208149932541506652322193173384825092975818771885166374223376250122656386927099419845673608510036448052224329653636855333094225571050060358896088306996655855523316193553893541335374149512650411456092067790899537870723251518842789656787927172180389509370260089628777138340599514889264062262660046375518903187670155654578320553491541646506082132368809725043213077137870677835012573793019954862743034285481363007843898464210893548393450452472161031136367965344924949383457275108033843986048024836205917569408648315642970193612185392359695411057451642413318294278042655734838775163789760500181749052699996501914171682427852989416447198943767180156335813126234777578697591583197613052623315331060625882722526307020963342199842240956594081130846635632785883938068395516120908298700294388786884462002085089117152893961368975932041344834793738464384984832846317980486061443126849712255279019685589549007442878985451084391734601705468456551210444480003682578742185581059911390702099097232187506309444989737121689226659482109517330855463674203350689711318383190694996171092002459953949812197646302664127994354416358991223562040836101432798612187180950383502186609044091703438856442588766520842759513101502507671519416233481129869996007695737114000731728990013622134909536843017122273121350784971141008729954441997557582989910265077611284921081186570428967646204674616181393481525138751211175477696629369592035604795820610296871731784688034135274913265159710616894167313672405358194366646600007493887973027925561086428784066706854725226372063782567132292095906438259123022419441407672371531905919453250332726325004442945639778670512031483876114779824052343479644966697913911842418955390193561764657375407311171029770273608659508327834406325644086591215698394396671926025919362405506350086059531070730264673727502004668788103948529654106374935379027252011201127132416157704157080158785222267957010554893216151728141263723416209103920807871476225101680773020981105340846729990985781555048975268811777658844301214348710060978464985160990747898239466133696663860838532291100482291137194933366690155428360449692361185257381110101359595341968559361981899158081904784764785936222205225552179636256192264860845758770335301652837121161447635150721244017193142455813290556722757853154787272833661089220617556703697681577778507010138428286360701262822014652594212471827027194837365390248310825582887161347172370550375023671181928910882886007105972058185137628095756231266310827753392744098624823631645811126895514828090520285934523924149140862806571900458714030428928801464716679621110312710816077161687978778771951117295071862539770757992774715229951459062247796868406587160651010588334041042362225596824517926389539863909366416479016430334027872051545397101901043971578194584070370212590558773450962582957395260621947199784679476454264865728696886286012666782723297617580786600553696516855443004954329466878330883595021461409886594164162547162142644355437794222039127709655616641385064801487119801840477615067941801563023303403464405872425691068079410737196210582545055651235431134216913828112623964517039318229883403897934637086498739434492127697828616020154738706206477634053223303705402871532299679986851599142364613991168092369152958521829041601382373378322279973786039670841464691906517669994946193972034605174185631212760880643533597709816856597024949752519493935258214415160159982441460169483400392656198997228966480120898659281706421622847399391671319782861427400551436147623218147886385694048070980249254351508472319930579480631780200269079345957174724460713767045875759544802253053250765539518024068374085421455469380822032892873122104979229891671493010270900470214601743210333237557266527669415390892843689100685678495220635845427192952773954985561738382841058252725670401286907776742470694364531931966427417843902839133286510921221351125904817020590587348371859469883701631942917957925731967239832588819755784251691945532374979534495923087993472581458528074759525220642904804247491348504001579754619984453718411989721098715554072121212687976295024719923830433693620331423758693342214447733648236253667194690774749752501154265995427925385424479915740326858406818475450725451066352361926585817005246523102371579817325815429260635778152338327812019208296059256497552359439147301587221563166837945486011195184696661527160654643369181761581655439487522600586880982246202458647345495050127785986019130247036506035332162152971144332511370411159215387093998763166246409020377296193764467573892444680562802795562642013828314416557603540068937972930963614714263548509375011156887952318410501143390548698471531295822768310027482976093247915229246567483978505518491068374555461045036287265185930377963254026016255606676397132912432725382675282147263091702509306141087036228994167129325675188679501270207632354722371342719563513111351534561666634073079235782434938727387016601729352169812779390865287487735411530460266184063908058099151287142995781045366297728018189689529477082972250212196041110947504671624854176766532308100586017798078397932234935495302133069680888500240543304047780062569593625235587210508815425519217854242410308503574991852340037814561393886528881516934464491433375844489527446372262504172862883737307243288232040486740814960496124122178269394992231951739787190477177044877641964544282247315283596093658046522079409171171597251093776084397123418923786109823081773276451092603558308674965407191368271334932002391684850997244472890106405562356656787561350951217388757609627214006622866602903091285275260961925749605230035663573373228498038838000923494368105766337038166545513729921545524776076697053193722216518918112441431548263551677864212176350025210122043906769354452806582610824668826558290556359672262284564487127875969125129005400606256702748292358544473828313442428756787519589629352929502221257489440490661945328779352170837715796917837313463413506257404765190243779122376654698685775354024070324253676781552038928306678722320827269325276822192154863143183823535537214242622827818747809296199795752054804102039070689966187280534960234145029945900879618790587235364540377483006975909894317961282657219206088868011297211990904726657688413275338937169758742053812789571532291652043049428883797779110346433982203121816863226986519945874568891781835894052465538097403926578345619239245593925646849829845126991340003936356740455888711708633998667906613694036511812071024789918181262037071975718254219874179798789181170557414520794987095986309539524336703609487817823109918943850880445169468393656816935759081988463012198704712277471999906214311291139729630715967545625478573235619081935172660170266555224461593402477283375433312413364413452473780380396757365677371889155575347502599696276165363122360916884650466388808087939131963958280498426707809546190925336427725032289612277208454973211826479115928997750172364943429789758617251020516120943453809645071574400746687226318019695608911566272054038891465392640290562313095574680830719345728622560336231176191054916378839863230963940038116912501575272199418623226133630188977278913145549642618636326252016842043267492318356158225582514635661352834200774221737979851135324450391867524547304824550551433533785910638740790374283706141839567725183746869436977949502929344099125432189295179668230269097789263973742916690992197523896005084866862782909922492548058933983220307682758811620557279661296461980005347852771661413612911778211958849115125647470411338731061164430646987777983078558932193207782382924590241175218861524934622226909207083453216358146343882402947404724974809466208697294761957523217193704272745737190737709144918868874178179300832870262330309422143617350568699179321571752480392655920947899361246551763412566983144244442839717430800965196021842539821755585026833319747319344474924762056633288055607626691237160894201564300451666887432386267511787229369654577766512930729511569624817375781245555298780857032300325394074681145788160602790860606895884002217894780090446802977935302285585318275840253669968150827060699749069731606858692828588916142454983947038751510178968526862874443141185670446451389464445637730472986393334243111558375787837242567431195129317726513866986939243513051793935659735998731784034017378491412737174557087067137682053724735447421602355490433471743296998833733694661471010579726552570380214914196299985708804280365157384543659014904405840211213324206683625772357955139146065631617433742834568349613310290200552536843446159552362236406844080843835176362544119218443967919606588897066291948901554745937982832728005904391247905779717376298225663327715144377893880288579002005622396333526048057396379297954996722063424687674905254401120857588519027441200082789415364553648834182297717593246452246010423966820355750994651564594156947360450470683974296903173677331542854630725376188822455481206216551192522745101374601636756483117328184244040242211252646169262271996012267456779187255768269014572770752181865769874600770573185742043731915908285368759478000312869358159435506835980797184523776247853736279345260559492880089536242692702528003735612740912885172448275139916622421310199773999220026109954989632265835977207589645994592688831337270681530653865410989572231573011857768033842873960661247315035296926084570500006216843035590097458680628396735834701436399764992783125714509103467873867374360426398801102856155799676310368384893248422348236871570401867926557683397116870328514214248593549896998509598395020954493789152487508693017672989088023894021232556359348335704956499993014980417598205136381309471876696473144608579494047231536774824465737999240306988344859077441830021651855976209389761073305508111483330017913906429593213493022413705186573414802300649525369813723014649000989311913062322925076816282579521402875922307269730114654569113503099586678371346551173371436393752804970577220609727172428503366005128626214471572524321353891547457117640926236389293989472220306693134545692230259276547176979868663375208456099871862362417632493840791943225284877184531260650315290511564234329628638042818676254667223347289841208439510517123981187703384867026733947160540892657051847725463403175599162590989002544088805689768464322232384895048705624241325652138925497209482356457291387216773118371703693290452269744718393685143259972542560307763398449144896011077123280355375185144502378251857834147980682751098177146485653211529961567218204460678071495002929484336734482197321458466295010306892824350869630296730052060604590745116845626380575291143266091062408946006341544524784194689226716400656296939145429507865987026793825830953485453811552008127701356907695130314956066805632890292574393139422064689202039520483677688497367563462425482936181310049894233356050155672650677559855615810371858161368024683944018634260660480464081346606976148972253355325000852593547706508962213575378046970015512749806823445745794555979909095666475985802085367721404055246916960992735000458359976998474882515494791670197664891741198507946186445886609887407922452841513719905905850868391983212215715153959917679644817881146958787016018597883403584508122933302059167025330191008212600310483944385338899163435525834939404982611175378513323227292959759448751762556728724176258093345237434186400366015726055302104189652109842732628723912947176190114695157355111688106375547888953349565108994155664642428370530518499574839927695673242883188364648570431112338404990175707090259019710767597007177362306465616622748635569473324597402375775475397012197959486755691823995509097060284695035964590797367363429290534736649007950436030698798234966151414996136665943494702289734634774826069784423939844882625581570703406024612102618605726718305345625934208298475773069531059406899863059268645312889934488233902800576186097175158407300808251957738505626696893327211218191183671209630453370602245897321090690897766468558885001096310700230804255204475563288700475018312600325147806070399696450908831284177959185536897896789452917656457266549722311635970805134572249613171086832031754837335584808285777248185684891896887675598119632254706679518730026393014985153213246124243987746026531749841977873788973939516131313600684704507671824494920943792789802130907250629640751109928479513050838876239145526199955037469387791976404767692734757849751479261455525001051067478249683342420166101705873736169434673850459064292039001562460932580745206854563509210932477333761173943376214987763608396705056337001137362648813582084142681877921046572630930213496581332552403203340236762195049216252391992985981035605937158583392103434386181260530050419433221133530693189660022379310693332588680263532848883594435900541466362118549330834503713271072913316057268223371351414722904171248401905055630148541493960533178226618219705373183754440474646398858095251364896763563826888981819563238446657451557411367961143472905910275860430568143813939445252747188945596607266388600849226382015912629207765365719362013708182103225368198137252873144312275611111946399230240883398561600270340886429784525275750414204813085280011963400410401411274881451533036784122573537525161581113697868580989780136704062571099348816964453089076355106487746012689907999236414318654403924885263033947647907187005012845033968438424152454642132801256994359660685759714804226665624334483863527261454903607533979749285867590210258262804179304698164508516354150807277451792478500097759482046761075175395237266655014762925851226758180902486457256734078232127894493707138037401308718252641956227942982982471603862832331126617995769049089826379959255235761298447359761475648289351341786485108872645044385289023260883346852765825402183795395258970144583635892394119482413271129804303189546647763886201187804639744291111757136428365830593026279145532676404792236672507859056510142658646800558761396549855204818802458529698196831990150166859535749580965513618666815882389036590637550296845061286819525810280951825373728401993086467038763858407950648665914991657287447154312490981004953252540176823350378202571159900220330692617533081898800711129811036235193640609569091381555987927023689695100022274536343942005897703362764040534060568881521591611487612585225847128347014683261696515666377579259022915867371032685447896312865950596542304714962925699400400701041283438666796690596090838188026309846643264055530772818998378694321349318791996727252932840031874190519884707770918793980775711935962710697969290019035761491799281856823204300121431770378822902926524640516431571100069683171279416656305659023136738557012896809868164822486762123428084183273257083468938031666844831225982839478043618217445550248094751722614029953753526841072260739919842769502209061702847448129435214687047586985655078274834790191218840449028196540605153052577610904277842376212008788057430550840939148665023893782535369044342742152465914980941021783791441240881133323189994250593050354343826962847483351360505772398217564030879218114076980354857710655549205041736343428582927491284340406240347795102707390239077182221820081413431649825520045345378413043965320606318241742377058231432184612950613592252079535527065677057927621189480037116336992491881145904530822583353450724056231934619794827061164190667235723935510302315210114997336612994115238181871844881361586465132331591277800577812060936884837449132805282756062522280241074662308682921130667489269418755021067016399745761566569929999052251724208648836843316862181153004169880759910841559486220893114034848969414273930251358939206273448855436256617881644420985469620681807932083264899477825225811501229383359141366987443127151981931899039609218708814183806231776106744604853740712694336172224536383047754623293930049108986921295034045020748782641717660865282921804821620323557356349498479422179512249057566245869376071037559363966924350344658662461241982626960055153223144292476102577351010043414713786185424883838479396463051737882410338467282195414068024230000107784921728584598774075970900036195281268608510725671244337799219250336866124186187232204736666319650655081686080797040120755663217555229144755415067807685836662920378684412076672700201450628840928074320820948785078850790397109553066330006633738699586983334473285343513751340176918182540260350035241896136112444533454470979105124594654789158369889238878768138411403359302225733196584864532709428759145390804173508903115517160075764896018729599193547703603567280481984403940298017594817016101850596251912759952300225377274288242269826927032720018557670558549713205621594699773463827590972920288284044614548241419144477374397762428234395317779521421858596258182134672631259926647028553002883519595738722011961166236694777970755986746092852697565376055302927484262047860702115359984138149734813034283820914379271281032956606653392235479331665712685135372165257850041458016736205867086630144722983216822440445946379323806889241259034662997284730478248624095437562801929971081584413474712518581595486809942182498756304373544980193349696559474731437160804110555753877182159398076316255804883924023404992453876206545367961401031642441163328145946286522138425788712442426965733843736976655375678448775294454722662804687982901909622707528569178735739052697463870619913211741472106289846189140117787975895237626048986017579307496418436987270046782953732593037261810651231486572805692683239324257757502879910362508925736298955841548918140512696148644856786838277315868133079171381605086607035938225928344165738993821486440564668081043779390552655274629497553591779474322979747653710035448684752740182997622060705564217853540556632186342873842980676556780868361938018272972971467209772461617772996389429362703830984085107810921040064337754917862885154755354186389793727512002676514620461681684664475224279547318032456511180583157278462341589566340301535465956139350898399986049273401297443060651414369599733197349199279236884622309021582818282728213794359345437684864050875537590303014203882540437024358195398971880086838261136594492184262185312955165202936024548734344368693029579979095531519125659711634665593825855257120763786433564910637207451263739154362702857250750360000557084040862544671940243870354022858114658527213604652392965284994353575181814298522627043481814118080070129159546219546491045385148235207050392005987657933030059199827190460865798421341087305747475058714561938873860534071758990039001079214639424245250836857051824507699021232157397889546032518127830151685012443844939442835291807918711849481940864135530918650930742029806249337876612757717269059670656073252862678487496028514544639665787042213954767053967205455774070821807167979264905045554007736421353508917345152129346545574444928383234730841815486496839842178754890912577571093087743083681470735035865186631569154923993902441247032861756866406631802024803978176364137904400942682512476010329201522845590322362752251021818190442374786455982998360114730350881011644004608218277482455728431249870554671161779572813803855110752103414298007305828228509089626531270592372957016152099515165582814978696809913428743930967900255810180471964121016981575325727976686035050155874514580572166378838015556069121386159153757033230400611979782873094005008821969090336492175545760100797650171041741609541495667001782206286720889229558664733518987002129781088911205587187638724573558836484549581491144428010815037382777151550939029832491201841761160460496298959734717634310041553320049271926847948738428329067365955284535605583960898118465502334302426208550592078478075487666539148106461073549932139001046019171692785534014055161197687266641650713773718635233050517691999486784707038211089960012457385411866926429162804304527482202969624756963336253737408440358475929795525084183164441418167037036529717828175796648491776105612125294076947621615541172517993547350167443240240972803564872160377119492822974579593647253830764857804021334864588106711180282854543512012361073854321600360554385727613302251712024335140524593726105257473631570078961154814384112519331371496811237377119143338059240935241241092150777600732030937261835582307098529053810037597073343500091962993542892602892523538183812971540224950201206994106201208732467069465367721916591923828165995165273265150210429430472814224714229913321249784367664546548184160519064572635198406696324971401646632443343171269090898599023962603557867297163575790659388709005322885717597229587445473618036896282832402436769530914628534440572071452741019056941204492419923612350610063062227114474054360752072264379414301123173717405465015160819183333626469702406861538219974867153142155639737656457738543793468130703749190221462981997135396557677436470449124704618114438937863664605749244059335291471429510534882341379781835375534237553675201411063098833822920094963039789172608272355895169900692365251998993942807233797839196740703410356316125933530751761751392761105857683400627806782355456077407383040294445632534294384714224947726128512230332468500675296967238209111509696329542548873365007890884418364880890441860978359778936823686808517991148503033359117241804967218321085670653497376726636860118758899236991771413300329424225611475265115771202335992071069673183024441200615403385840530952689517699397886913202778523602255758499327733035823819777259576088978009050896952148242944878242970423412976232748153715473028413101975398259956846307854563530580804101147827949884832268919780790043381536148659164782819320918979079910584198835831691252994541665599232252066892974402082161703636807705762667999185032197964128918753013282076840211008881911650830523477778853445554618366904231624671777248005707595473012034129226322200090341787416072286815558181231633785333936120327590621027037169992582366273726273691370862548636771744381970422662345786422286698153702249641510007964209656757149378819303405806198512861321635015043017319564784181457379579608975297401535116950287452959544111906580714554243964566181104647046482287277278957185587822035813598448558879261234257626085430160785745486691573991134376844110992185028603620063444807481748752120420381263136732776240240336237850805739420731718976428790204343900080117562635494070548282655939141171584812493818373154940672668960509357087667297144029279335341930111746445371629113929270589317044011759704837143019370574537957603129387694804222294760225188066518166812226900503823716607802001554044889392734572967296240820900753382086051530936667885989793010630805288755938296042033608468612487324540379214061763588181261412433745044537887691408489355404876885989154942686262881794421200278224047530601509516989692107250279792300658333559426141695915866168788033100837682545050298221350464391699693071804226058425821520510344717723715672511316522851772635967115271063975909319369795387568334081202991646648582652018753674205567069031881548557276930983797612064474062136031201593628299850127527465686113584513470689871362047262753952861554991288767435883975325109809864003497409905871021872371532259191182664467266800538773414792352827160749572132956667179288317999593788832974474360109479098787476335303036207472540164766138034762134668185501605290227389121191996787230684703144571912808514069887112463719606356371135544435378620529081869551097326549056663443747985590127967141958474477571108231045694623121405549844461339270895344840616047980286132205357604696186870608481678823823087996718620691268439988045094135352632597071558271913494815331800993629820066967807869687562439376776869981022671723246786580703636130296173567981978836039098172919655964118617874988033181779968069441832608486302319852851541635938257887315843391082693329814439937701521325678983431189581839343790704473483540288057021960525926874939274208810008629042550618313471060030194875347789197333913963691816947521602712385033818985754781120563693392240529227065093692918905078474639739668653814614728158388300955937878427965658746612533056357817542948529886619328076323142807094119017795581166226921985717814055522469430350477253945674247472638802472638441556541447884686205293393970846894846778679275711515783654366800835112701278292879873057126652808522663828276743320778484425837544528290535315121844398777351994803564377134793865586428450983312504066629838716007181118872839721891231102473741216479363874178033237978202669307276869634958203512212633811620293778650312951179762894167380481671992025060377539415552409594679532900873856995065296979861033495659502853497763244319607461200381847963848855642435360072030198988450529031921017934912454673995413699322192917964941303747743384779555749771845252552789562638292906820781689302475772684028543263494589183183570191219274942251748991478703669338587751652154550899226634260509029916780926621434691589763534704460028991864720895841051655405548863233717984972178793684508097382710120162074345930498742326861834574582113262058810817957903813838905074830998773598996760222503710178183484457097992365071224207667721490044742217221752627757772527580568800741807338937091630409568747211506007882653955022922576692737502846535928907171698687067962759438710260290898465394434835247712822996322269692958595631493858745857834026899361444065218605809539607385737116296635351236296203248661738690812782655423669286347607048109295243838198482728109281865513655040479756926547229391093012244458175450465672196300110088456294548872858112922765811773363108080289929398810254067241150628984595388776980582063704638392516347645741231172316726585426111875998666522959148843341226175417463786138584178423267802486018372741980121434761014789007915791454286851227592453367665846515361043826812680361015462995199811652284867833263529653691236642212513410668164707232476877136546656330355922876716238061007042731092723425199036489720483595592301747958377596161148589928315839550813834436439911412223924481889073628276242436270118788633887281302256750547331079786511753997256159502986004609323578578371054210547922417666400669215739031951811435204566807126156322921877384429398883163029288807291572626978631905829471737292751200311930278244289595220007127067691843943339351318208661509308667853628028358232934390808491581073666880305489677604613839445190309291743454004583652514126079274344728490762168079673082725903567748698908145381193121330879235786552253247374593752594393594377072218255725739183161305091329146957096335184945078147273312627380546832853262871185898335575406530795329723367668887765067965883889921162526539777296698734054215503200117229247555836394193297282537394293722485029023199746077892512613966778248006932980451438280732276082320712881454735805132818681634868507579595809579868214992231241100321205231936389350127258327969263329155497582594906643668855985483825524300895621674267353680340471717881606284843525640412069614826249015420886323568518000906929709957593060887390237180088374927091375840785119060232245336714770556977635899827088949505986007254679643676691895303781570916841568209320593403630213793412486724816851143312713837146324881125021257506999188267646531788778766612231870231946243481842610130679433154012769451860047860890170798257030030004645801686868491332269240585409610821730020129755685708040936892944388108147848981695031847062221902783862157034816331273028893168802690359566966587886333864961961656633757640778709029108967980409632462830336823873214145917259171773644966452319812397324985617184200760933353374499686173354495431230923689186876915791662493040977365721872653471492838483305505834905005034254255726856257379424024358553498618975699166822078757780197604388227910278335395105785588002025163795489291909474109635629061893674352263873367820027960402986331004850003462977950165618532464032051232473452331594285824085741906348480519612601923089387206088560136648478590985603759547758471268095475911351221054148105157218348462994840995756981453741005101761504643003152912569469381909863660382756823688141595853580602153129182962064564778371788830850260700752647903788875888787732794928508931675192630532547540562649394836551907859019848370232179273570763151294101633866774873073050906724874978386302470717796363983052658184660060541294359030041765224703584564004647292399974032283634876917956453597251071369802955152250727026104143868671823626407128820350225009569371888828677542334937654702051715335184897188706594598652269857493126709020907301150933204974331850864898380632613718998337821340816874608518733150545148842510659433388769867877278668059267952832866251326616291200973684573781806517310647680070931868371019933846643265939226852803488438914033323367731346136846774035410809110475793383880835599793986727060011608742867852054382952330862735792218414698279962467193347796357605959368107512987501260754980335359578752700504112413679589755696900124491299545809469747810746487512588616489468440053356440235534147512307181041846697921570315903750890760467119049856107868322155004986786353534961986896749252273346657855290722271557089759423674490567509113740325322999306482727617083142750800795868798193258644541238397721099121930427203089027349689353880251149101500967392848610628090518772438910152463133922332047398376249127307990559240814210167573599938601314094195820662074402825156440369720540796318429218598720626337609258976959685682616591650096613866556260033078921764536022276286194152733501232941069428901395336832757290911365852004937230626106631442149010728713173793192605937715690997249071141861234204251263664608671985916614513103520712740718324349061970467459443175219021130376875065080269540304698165578293775727810749001061119600546348435435969730237104276957660209606900769800614953275693269397059422857699728310922348599629832124333957520592884842037115133135603646209810093610243424754155195166244311262192244022613078748511619667366632392161780762814828927957125653913302950557787333704749184067570606071809297907881256813912168687575829496878145710107465545854241396777929340242072894254281639902457379835652625851662284219045800921638735726828018300131248736803658023167219958840847231825924338367466605583043334621803194174074554391727678255554325050391804481000775666274738946455188010451051259086373504774242386260990631137230229667403592358675040532261981672717896760002537320620774006709043690517044119154028311496461940813264756477033330186550349582687840005735305831200904724961438534045579589500044646717938618068953310921446734847996203762714130927592187067550426052023839264798354871984491435791212534336030429425941664067397208479622021436045118343306706145847998666931414713558619112814461611497160596304316915186025668504777936534901750122437004393438959188070270022385773636834900698678086674640890921831247471726383880446022757674081531378265499632945166242676383938833564883786468822301423664173843503789775703218574122089764595012716645384454589451021929118551229976039555050712369832633816453627169501620261924628601876913818335641008986890423895169132357051584713599273611572699270569992640184288002051194152099102272937501240780295408894793020577001741946354461229573300441771451081412935340156600877155441808371567422494566063880880811977191570776184476585159625830371471764608319125130052372949343338204350998356197033512924757949066002044292903129611785057926512622213024886355075710649415098696949675156409061677699857764781862362232296044756775506648212639554185158154803199523885733956970118895364222049433071739641338374891565327088595853310025599683570414086925985089969841007387474425039556211811106389827144042545972438439278378772442762424321530487563140743378504119822058249769894047250354520451929195345279238276906489503176238998468976880624039371368512478287548298003353290609360662823920379900194846699178255237139877640098864670780694295629650438178658051247803197059807600555404382942195177504222358864187930710497918784678203289097406200172351183443471352329390780860739014122881123722389191970268289291780340289825157652235136322198295341838257858913228517425962449998486803194762708373259579003181678237726870084030963109579047780766311700217364189265252765180011154001737766579428440868938001900831474617980203056100141731989692120765345953899890536145907969723198296548706191867450469807526503243141400074805583160394159124727131119146965316269960711096269404741316662557207983113224086417438460547178925680942384508254202376694762497222487041017406369054232771451812049168684863908507911428862438562481057993362474239808846572661145668485642101939763619363312478128434747157385221418325135987122482344049851963302136430121706877461139402727750226348120826963115555598907740065294343443808046655849620173897982815720173612851313904677361118270304752535243656325280648271965638232620029950040909656263169675239342230462606464397297492619260057743917447479683724251231022102552490923296425736580217704633088599258845576276626378414675845707709347538903843506774421604490889159014727264879143159235574808061024088283087846091717725373786428865639917605900619968058052531392581322849758047895894960713458428996169609118336044292784090888957371372458218439340256568733999743468463405799812843335816389162753969085209876807974122970027721080539064987973204741302264268914450191128534379635491108207651772867371872783849544039458215635865197898202309848000675127282063450754848460502371415115071354632491937430766745649275908079944000948603369346115934901679224531461530820966964544703232084249365042566451279562006470787078040149700089928637761519963328383374771055979006873711643547534495310222946500043062404539583350231127498869093446877613213235735154224542712670559819238041977376492234729320166719963942253262107193673229176836981867277508545051937195271195538343638780656089472881274830432256787505857426707631310111406358372201609493751402433042603303761402249963267706714115616422961067374606940241127709027936388043414180840688295512029708499013282310253178949608955775640962094259535279423214117803925210693873045598497727755317988229156256666224823140012294318928341835419228463446893109439566271683432117695429289315598225016758919660508055856308045568018189215856293043037478668148214522240204399728017245005560383143130277841210928015445204873178721033998760609868245288202627273877538136110634567672986937959007972881498451343107830777326320185989523574159695296040363020825408702238169307290180659359242542653107944633647913602079984922270576183933047202103109210235807558908969680343088816828060640397629483061490902041282850467926690983291552001655807005144809262877040245297524197799244807044697973476909633820494612820407988285218470457434955581467619382583493950088414682217340651092083260851739701977348638251971424897566155549759496555131463744009525612462674272289724623072829368743826225916435305990615446222427611509645852603542691680852543966179532134804675411175427016142858834953727484978049595492526286710850283330932700792575149425424498825554281854061809536342747172462435675291059436865919485015689610429533613873792127771431979674198176062203829393365440638701297000556881816222480538845092684443124908919199510881838456158842171892932360327389560333893573913268978071215054320888366606897835399448186862229071112165762428595686001793147814463950329498345273051426208461175025666055990479860045556807470710537024473665219818956577545019697454649115423093845984343652436549872912257547602647505939974748589896776365729399686360498178810440419520846497805534347857880153261014662583472347632907443318637300278318539570279990849044672368948983634638130420790209576532179985150067509610201035847635343390705861280757902644123700883787407028487884162713588499126882193913468590224690781377848948752550166768279634915257185697628155663395993490419194966435723290712832179888811146532723669629338209014884566043854455769850144865451983116100687552358296862307655772389437433614538898572060234400622209131634858780698469536653703093264279196626219284167875792822349788910952337477064264607812200153133200546200401476682784925256329676501699412316590367890866005233269722738556706182676324673593788564369431552512713964243876527103512983749995604058228329578278571879063755508632884051509089637951548489618450046838690322982208669518623158335658994502456147635773940419386750691209454419887981307741183915270748949145657664909816135963925628642169390820621402536192486931436098588898621560418144632851971535317582916124641415294311171551150762074318993054764926977214934773360619981878440486124439145589857515318151221097436238365958678686109447696477995798826993122383790791718074888413046411648006575351566204304126577015392350004086575727651543310768398557795920995076710222305626204928029622055702164249690834681669808415234431756693047649476143594933415249718219525893731178365332842171885917698607416007850332666817175219660149360429748919912600652663869962922522193993491430503941058266830696557879956823426321245989178312269876093836808727079032846202001893422577529788390578367811066402465909004023464275853472266257753698687582744818503166428665061538465760096177519612399690691152625338352971773449778777876419609353680720000077237579706144140304450311131539197801833095092688762419551936659506550891536792141413285283065014806838897330754525515773067464387297361703709674579763594988965442157190162894508516211856470296529077506349020559795177391151565563559149391801040552682195740020395220772558999221678110070092154220341256859666149661692910125629200573932867355209612302665388953545956574496775683666472073095319074419087744897768814665667843709424954904792627898747047728065516424708704041943083648145043765121901452691191363322402454958916217230636041627317516420785110486836657102294751076869330852520334398636827422256963533065971327084151085909853757158257057894233775064101488989346752182416805416248374749128412520675541078766276115783284334812102907306057536463741622126443190375398510231339046065386318090964635897276512346366833653298640196451448586244283413967530676033220761954215646739794231211221602403352095020445414789915407781652459587932316681531106086163143312369705896835278068268374967039113297244056878543457249851007592791291779383504426524448073510376839810051208072514630970096817988505296433636438117805695119436139863741374355713934887690192485665639518650781153516799495773126677981130161585554361493554450915073216396943594720457417292983583320765454595846158585555642695505945706679950274591415288876546999450028085730115346450035079305115793373292465031728546270286328327532920740084840725841167217882425118168617719013743393451900560540048655216651145987410619517134077716495436494720184843579946159167230453812028434898999308385932790642368553563919317819575032957449410468683189540915601265495393824951903608598544121709513608080338066746650268314376832855584137859368882491246195763788068318370777220051837009866883578690701573421923959930821198626437301232959049056420906185980350159492744396021173127340686865234936076108732530317641950173768459886986891354865724853734723258268988153886002424776508416159754915833624612640998112323668390838680124147813113829957836340031447343423600742980353382794941515000061089942978481381042487282365177749730945892465672227753175406199037398029744470831225579124660788434764569142756764595359043168980166753615502765088827616562078658876819243740177184831201628994321081014021953510564092369296999507388489320765377474114493952501741320578179647487030104960597018375058066191103444382825757346989616601374232701113116573198888378899319774745003399643882297728380626897604299528390731207172066670424082745655925667551951798432721692639448748559885272364520581581103874747493048612740939720932504308625106942356670775808120716648847989116075309526373887324024935798765159241689066254670708959772144655724599123407150045289941824380143355418997578004232686437485544663314165027193382290484310757001767827543838486768848375883691478780902796938443217657560304500171710484216471030935481588575895973882621610691276766316005970897575595529551723395273343251213412862727971179051849406921822389936575290087318778177231212328862501794968445383793691948928589021473743918493398857523282356472028427212121776169963382768522732237031022541120290029090731590516340573759761517323956305964493696052117621027470157870225050215039897907533436778770149623433530009541722668829478535941220907490903413384471513681395610611937059901128022990761838360213285754946352483734801231063135267096204142248855127947227510149260495997322722323135095422981489565820910344283897360715221721128529868954599172727090931354310281936513306136365606256314060281584329896798299713133274420058229522836087778936946116084949280245719579745035714587937277136383394749396531602079039103160586456848262504530049324760676161713830831049592294239196757232547726761513075908358317488023965499657380585044647373187807506372051733113804624485539746190150176696389767249926770638720574607991295969752576075547272214815832661459637536817415045254080570290398918737288444901374312880900286783886069846832916052477845462625605129093324882176436221626564325086593943028341862006466399839555523651267317412498037584414740798411181859030448247562145153857482144815534648390867178728894585600780067885084190724387845168230018580911233207955020921861321458538437405138876537410755022314316527886521659129840226372662650459396566084049005760806374393290463549201382417705569079923641378131891088366412234029095591508758422807958294099427607322440614740261245810388181785467552044054147959584373384502058229538448177326849869041969157175682110359556154736627272831357901891981904111678326894729265985516068690667933355056121811768719666170365771361045790772721835858419465495696174405589698700635158489469245349370802589991962361414631479589394243453510420837622043692270482383268795476401127200855381549699143299409571393037076320926808280329097689129593861479083862353743785637396457998409135820022760895456473211520419512647677027452120474612945535898670058466520856434306874609107492758133361887679837012329814144238667130790534239805051300010023322676628217317564609564148177812820386187978125763246214667331454170760440844631655473545270235927444863586434103543769392324815798057390967423321622157909876804933125209425815069300250872580539650529593714644030705047159773590508767706927426436571957093766562149475729652833058264810999622871475040851064309664233094155210606164502148392571213932552954431933369829751350919825179524767836509001829934330971370000035382099700936280501178201143629803674835631985625500018740986223418323264767227324699300488275032573148049129754132600867487959306863554417042854581319340550951010227834993724285983685176315865295505252577474262453154322342559252382196208891918915445064754144381302315985455117753877399142439961423176113837181240979360161954102612502406924939848108581886534754065697711429269924756795429251387443263895634590084116190657933305028262558716534550837058379357875120953266499239714488890753819516254956595686732872058764345753151735997074622835823358429411753701463061185042106620874800470932274479201733198559334939214648389618309001129898337394053370829973129512935866893626565780660558945051569031827645219737798579013581036039166643157036140056117194732869001717939998197736599346992878770331841687604767415149647646419906218987222213181326450086499227056437721734619431636488692495691345209516675697937644342761759709817063540785552874613199496610881600147037024560693826090160427541124661375471973647153930992902764538293209196763723787753496180055882802617332793017883279225265585052039816232989294160213180276237875978221474188623559103863469830329701681604852007503893554571034169920843551151474202820968809191030074713480229168983910142097307427923073047917573208961614955757733280634958395663688985527022779710635320528966478954391165739767871947954113215701329967590288882949738935563687180604678285594053454682867273840464405580367237890633509783989781834018189650381056329589858731609271134589305559668706031363452797945980297893526506917728622953207600458549327444322191532642936637277798366802691381915799088106048600876387732416781122614131560986317795338215778665603754668844022195169222553065084516285454889870281564656482584326143273606914750294146036913667660482416834203764264812582798630665464102042451024708850641548077579940978201029960830134417699468998205235927900762829470522104263867739082462500117583061688070356837262870115931284598234161745123504337845118160907035873685423553107505124859585642743714266221266854109446724573503328835024737528279874259874350057779018191431389004115642796691213054643415880717978160842923876463719527792195264389911771014706942883348714652194520696489136654490820608550857978440449880632584451866461375575139125079829709343847830809281294802939224745278224155673564899558552239516559234466578825835770434920468944809637653237831792542259311062530983397941029268881123352512661477333208259452116301351481324665404518074595073288030942869037505859964052518981165338320579407731792591048261143362934784784992689613663899288465961099344316122939200584013527335865304576098272197451810374882136577891623780623665122404453175445041338759521139837894858465078684701012240385455038908119785703317381514488496608548909521500153420380601184055254203645900111471745220909358762012549532139035890709448406524906106286458767148893577460319343764213972435457156849131000932558743315995559378202804969852699249920827540257225764256700470557473088688435981676470322738372079212514239255533177775310787883222434598258018799083142890540037932853849598026280666932428620578768999162389559922020959556050756162662728059582176020865784542392044802788196921034741323973601944921647462165782495920954801881922307017786349700706754488021626564560254808609771989170985044314026896050831702980986160189143247793063704317566605427774022460619562865564631759585114308729151709216342832759441778554729755557077956596235076278596710104829024126672932097985096753820854685836492298737882955603566235632696529668481660666491046530451155126454921897233921835252927566794806675650981574091412055027382862544255801602751133107383965248904121408150357224803366468735872896707861475082834988240168123261728730700786478521295306003633037809976425818140006504992037993255270882940535167455145810202866009104275803332340470227014148855347819103898639093806648849235238874255595906328709921554064127592026605448336044312339701534035617600689020581908117694353357178378522743881140405421059847829819690652117488307894685309984736609716528158432389810500999205596424397844930919412849044133863149637616184716887968895361796887792010962451840842310611599365801089620345521141018581409616072957090072226173120852755341442792924335257010235896946481186401181612851675378036198313212921644156640642018720982655107430509508600605781390154138030181356351517919627462976435340549247268699859552044014332251315886550326916426692067119068476560486770808948789388232234567972352444222032896156626576423072600566586215252978421350639913565564840401994616530236543395615488771262827849427663333949232043560519699170303373417013666146181049405371560022092181742979887025847170185499969215550478632691022531322194682390371344278527480942396152799427736947856291655840174147244199853667051036160028344880124197790533252115608263706042858459341103703004409855435286281696008337161546106172807113564848300678283958371357007741936943576150559578284153816199460706800049454930797227919779369115899022046192245718208210527221762659026943186357503691049711248068009545948121758182068709494616074779394731567367911958234958316274000558682084653510727866353226145552269063375189044126154265354499921996417779917669577161307333930772508894657369440635147059241052048297722642310194686330787973407511697251913549186454831605694168754081300002418405488296858852165441643918183751929634449704333953697448917293893060602556191179821231271669530240232010889647634797981298041933294100174388278331239385992046823992176609033263057783897178802824032190214088186067239168593568630033884087518582247507677286409549595441993763377839259918990775583191610186394928597442249223636228034286175775511872672505583524097668043172480409436366139461402013834194899367137926888613963722216807609154147120360420354089398709529321078639611659688488485509613693149183158406444379767442581108898072181979610545755126684375883637577531814579936515633101588112128618592833234413064911797688874788727092139166881696060908983366384759675652593050146754445673733469402660898881666027244335786361742404152732207518481478272234721641728287105179908418576865429160751182206761758160385682816253862863814625949011467538949598188261245349406567323802648038682616656870910955935743116352351790655101574765674375782110095627117319018422071139893478978008826373906598542002883693433834744414369852757955109047339672069067470690519987809166431942066594748203925829032840730583396893820045989220632815429144758594907770531605811665544145108217103913307870502691504913803049062328212433404813924374293031466321274163311556016979567836281617142847831022832496969153041307298216611756297752983963194365660525259862538060767978552270198300051946309687510767165183563359068698295077973812220719925537590803259452939593085412343288987357892364505397820421753597908561849473865655027668401257585073609279366332089206871015656310545942850765651062027333234629839086671886661693906059202874926542798364890726055180716735115171214910116716617921030131841139760115736854133736821402132211950243512754272236833790535608991425735908743764241742442071303822841504970885111037508126258690082459078333855093310179036753320986237605217157306558345184455245112727175583468185033452492082495540470439526287980290363236017206455839009510953646126569343266240182169960864296557524536309384886598959934594963714725573799942678208497395157827954297785294545748812347852893362082621888187393019998949353322308794693876278538942168834698548703728077110342834565509994568725060285104387353597896947383646790967842573200589706343224045223397001169124358499885421311267270476721585324308861488851374679116860683002780781607578583455452317339683431114842590599548007425696284845122491750586071992112746817983997103947798275971302676101570108791467938679119037869933392752794805033126152821617597856786531938970852681721004800838280514054092437651054526614824926290095201008440114671309273836327966899732028238610314425099141418932859135112549215762359918960993080248566764550450835493539121536903700958251960280302441521414713186718349152201875116291295127095103031362751452108678182012653083108479073019952217393364466885262991145732748032797583030818263557569824862770359479461033749026989313022572019836843562549311932626998784779916904269630019258719184877970353036980050432086139678816586768796977439426789061948826737326385067991331845164874271936776193472595210923083716293701891667146013796532680119514875127942620475918300907448819185286328381705684981881720921959709653813646792509972934741218253416909356915979886815652329747255172511708846275376563033699325248918991131088739502124630790427729435871353196314692186830917311809627757379654042267754687310012021419023597206140324069082497265680127925184920628193510603638267840773248592247787545464364161908708100751265045259509594179589170598901889097305936842000559039789630222097069574358903428743806199914280721188423640321391237850190708988527914213923175053471635926530665173599672691155357114211387716674250713517087436524949470009755033180160411825530862588982734748076951526414835382683880473301069369560640624893615858565271038549432012425119943195544139571450598078447363105337856732528229386329745206837603333494469210523490336238907342662716616004965199550765868178777601467547557691375845510591033755131629097035630544765776429036825399910069882538708499690650218603686301333641734301145548429615345242112652912259374238995730872381368514610449136545549816677533106436311510009665370467605541381314977811698126613740896492187608582832579291733946455898272015015393629164952045760236678447828344868347131559990038275813328468970841331613126522934899620173784071064908231964900072311784947213206351783681818397135811233138016500314438065442394525994363908407676506090777637172656615451954273784090384089589165342088692464861827629492925848999978562636309258560822600597825441532012390950019482003678603649989420117442151868564428923523899711589661748823028520715478506249400054837569312590293534595823349712639546663122411241586121914193224714030396634496409973008532412688444692533998636340049723815990095264165908866448892672200698539606252203055191452346759153563005537749149371893137514766848796368438790791075398561320819402428550254884047008435188781897592100924219581537790414517602398616354290491234017476452783570456142987834629628087614373257402042195231707146833549048494230760212548797613102950217295070009985801558777543410096355107752463815630916975927144225415943919580793679039203540958970072969016502068111662124408794098458621109366489479725730740430230861354281868140851681581201270608584020607190098658144943458791446229188019303218083531858154967558906255781397292747893924272221068887856722535422702514327744081083564126917291383130349551952314459254559431955034863498131184257528109338914579125150579021621786749257719037461096809822382079894120627549672116819339814881350626360150449888489942756902066825703165694440425060296236162456462103642482194734501618429792313675728468686653886422773148790739862874327400673470011644937412077855899878946269542743946059443519546630878111546095914770830525835332971272199416791155925557568023643533691787148554217465898633169820956740508326781204781541826269949596441597580328349318321667383042481912715641145476255453067805543415471886215882360472230611847054757204313734983911863109150046476066256543769190551294561417296411805687868533069574548657937844446107394350852883010131989630470315749193874114277694490492801797128528333208602999046159604290384412636622115854622533444171533071025273281898591584093012624809655404839143871533553262389145550789492918009707045454810096939960077799795393929266017268196503038768943240119462624073702455988706606763777194439524326691615982152871658082343763958113439892702219499163998567846802109953625114642608251244835505669171004780222577918691170002758631186242501832473181141281578225606142751764292801214708172068335336710708543250394487381062297945002685187872780012906084735378145217285003048656752688079712925965850145745909323123207809502844781409392412601781916904935496061735884313400516379106381167190810448807290249596367948520467468756877827346406007026299385461839234795770052151065587406661632393745208606132970553425980907194549133075086635785162758648106953709394580064852913625106238346424845052100085364022214535023959357773907656324921931925206762532558873483406984326416456919176824364107294024139101210993439351434630927564562980718330706178287590684392241089323625257531989688542066104032144643363368996083342108224949631032438080492838701586991407527146663732160954894971588950246077122270343664585145634843526500964606630836508217985915416788560622184945637556362902785587361664851607706752604211825872699355478509500885844054390002821948445890437937458777891508883544458096024539257859521959439865996919089462309646064765353622752437292951941916213552785596179729831570861435732633104529816544378281103829484708260488391500071877419281742725172025719487016586200043665315699870821363816278928654039804700573700801349337992339295501092961409638876335179381388840621488469796104587010373886312683993925044455921103046685195578520948760235388925339124322498880333088043570572281137911938753625896647413700312871264460111816866705837426571485935130770722675478071526396431702664819381143340005236595485880298811319512012240745903209304426261456693622812348710341895163497369432542476542993658657986821816122653776517737472012248336884077128993539684406106534953185636383045101389394099700012301475863277943779211721807853385575062822778920646790072310290017701758693587444591828508041000763763239283851750351277140735925362892683574006966718117351036548123028434287330857543813943978707656747126822662083587395604983549326762197348459520974334527105276165623621691468758759536473273276591744001928171921212809006670410832473167307064596880296259251233015890641783121837153697274350627403561698854399589065636946474195638165945757559297135029725294650213733796285778475932643857098478712399756737452281372815373027649629417311757222004579446615855253584680107433415021009398144441238305838209451936812238036834956295026131143086834468111673892049905543300879331428028436467171831037106466904735263402985769806680466249646269354729019893499361181728266201864711629583423450057203458008608435791009375787540115810865788595902072448667402766909188790890949820284779936717823694268223288759908322434086371833786234987714906632334112724036703212692379912853432714319928695160681308025733468438033943954295647829627412475920979041512902591002706048814652038287575402822330444508564701270046477726305487707027133464266526628587377855681548054768689730858225839800087366977125357740473539840232523618724187116406789085680939562829093152966653298802294473682491691867262754999664171942401969380951567884019330098887310937470926649226398986692805386244185972256707979436441911104671613803448223394711733809585449669743184672567220065680796375988260750899143432698753201535127925817034697604467050474619706456111211197034324969844709790187461111488098270554263448128279052225067952384307794755016037691015999543340011570215353407200613234207043710627070228147428073435923897490728461207710954151056891750807399630733234290518428067849127889098227423989766355335503542231577756546835735801892777032475190021643289225294878176607300191169710896650175705447052260907767210646812307898658106971768324126241439477417484096466518817681051326692800915239198311462612670958542784002668047661253296250315465593001328247208571087866073904836764968713659050220824467877443982403922247450357878898927429464754795045134690335996311233313344041914835287773930523891301960849552212373045054087252712914123607125244109749213453038476149865178729867063652033745810181136611959602080633872227052435389261253136578483453610643323568835519964999609460560108949937328244531381245591610160779296071870069239219275841852005909716840622822317771013558552429219543698503149685535562422475890113371437139729322675479856673802642049888598418582562145799710267132093735959553633646350740170252204414469279970455393186066406670569097364437345319954670079187832841360977587206932009109003309305477326163245165863234018758605447569916690241171318336361959029387393794885240268147722063341823558131891527206786556167602126883590560071790916528400292468164578556508990011448091404314237073039493725009198607268354625082168581482190252876726052880412369937176125450302759533821323531633535469707764856298645130482332293893878995032924249978724565810185638700937065559436583271677939262764603034680895261581143429241341208986399163180294373396396739986476653980126300150664354698453037815763557460221358113772141100953652417031753692802356764695120337496565181926480648572986561983338996751746243640707366729083081154432386079472029668537769814808969725675436408474056493449326201376036903799016937971243586131307400996329126574438537071978744318437333135696370956033431645519025317799160396396009314168371077512419931897019287003710374797978974616938792576813133730857604618756713468939108653410857995761151323650889986997322232407022404933304399217178146386433877503796065474283095824268056557077291348400926799603143696711423546738984616277539774897614107618403705229076695076400265611234615900463065838446235282088136148752755254330808155987402830146655979783368394826952903669416425438309278310928919909758665042848601567677607608931220162749071035927841731844443045889839988854378441382974699973995340774270598239806891213700844524060437212416212744292087949446246811642050822733688696331559206408353227280005472829678988305847248464161354563190758054378399523324596436992121348695984184716974122250826675074210406817698054124097011215913209704993604527465803696583172843269484338290784340594965305801679465736765234782692910193093729842261585886626484088882587213191209156274619240046753681918074306032235565760976675479883970730402046268413739778479784982059419462317212919561004462752486085519775634464926891721498454649453103684448756522447372721395797956878076150230173793596816611143486151357298463128569022332884322950283413101707515981677632164111784449827255270986844387152275718259275397805884858829047699615222851912504183494545842949773557118199227329885555905975346831278895755462742637205514939795899565684298618761510856298186426246057956152218464438643593679095454000389186928033505863919419418060475586599395106348161998348834136516416352627655238850833154547619661409629037698902384543574779419363332960723062083803297890900522902607266706675374433615602968588227691320458747289958047205297403159053475018864275967068506352742095549520672563109087655393133139405445030947798547268716208950919722466175032503419139421781110314594734545975241052887388157888980796082757800845998465308102380547425376859797661295058289048402492425009772282675750146657591791403990282401810996981895175029877820189408958275547070795860567786803084038973397104708057668316804553934586977652099450688052370281979176106521618726428056923088809097764908948038082521942341678288799006772667500400414569639557361916241072812695134000030527538535766973051800545458454301988422755158862069506324638962469191627767610389879769237897426415332179903739502286958977492274364228495408398661762881455558607657852934187592326734696950809156799551647371339575924250329291197851266074521306911281267351362974882566283419742564366640749462782612394326156544646015943980922127827067819453627298593870450032941104179207007417210848914954998927341061086225196699748769447494512243262730937653194551506822653430846684689083128020276627382984597155262718779845957862427699231265880778661222235936408655963897217459870872757014665164653499976272633175113748226096641594845967392310958570739286605431014989791860598862591749627098626208890293213949336534066052211166240690720087325040572002527856893513045931938856986551251060592550804319583839355969865671744840840296667827646470036573105611976287873807580131384752642009209434036526284675751650230696927426026554023482181432586802373941842554548817821885935223952900697690741771820071165234352911595066785958092590540192711645104920041879483211793663878112482114238197349424561598344519086983329893192613535384492893240559007514186989843373728636932350039371910454315475777955841566665423784865185928873890422628693686609945591784650812090028498803746893800902692808506322566241802544323060129073396928605505577237653232431457353431851924120871672336755013903056210683753345451414212099296789253152851049027978233764423690166801743332569372641144662652529808420861131208236472699696309645265663202997932883942011136941691590407141137746445834983745829169288311404296140836756015962308372152280075532325435646106868810349695341033223822300778835527871424083665679950228332123507188051152270471842914749617375465227713466565279386489853312096965774236102463634439799712492291572755490692842983220662037803525657903403649026542380068994264361556756159286850993189537195741446628452437490388373711894360279984536096841915344763442094057467703283171566350661447052394644525047573542452591241489196841234583490606231563615923393465767406431336857287752667352406474997421803294575920075429520526673812790481454680442613146484797332645136079581582254246064202520358569701727832671722622622445887039329167267927005211514306682469330735556947150494050245494302312991855887146641001986889314955651174340105892919713180344023682402788257351787315448199836565516862948917566391925254890612015290580167355374954203873776103105965222881708039814886221683048596644450031340757033083517696274360621585961778049064425958033487922116667659437578508500842027592383635578843151697695734669313332323337756655715894107813956208737858980123077867481760507077745017313393540473501617053584195289805640504819165059764281629745699898782231617117920129602767816046552251210775079909686841636975444750346017419939798158757159551420143188631980904909825304205565548804820613477130303238036170670364369939798060259946996205257634664136718500722917725242021870030596982211321530181151688808349764028751521527403435688889814627676146299186131473415261904850755238827477984328647709472755605212922472706791688182424546212948290224237221432416303306381999600976234649760303555392953841378051730772503828313071935553918124882019419171863490454336480956722237862185391291031613092426987657307832651318848293527789629615024262925094039844663678019240731433265800434354713755598470660280975713981651487059098406244749823179869410213860388528556974803155917953360632928548824180771515008424349299158172443773494594170293751449985690752029310300708630019361311479351548083211322546546014284938728895820300844288229922169282808616952457800947271285893609758799032144017120905235071569255740527821452359473139581732172817831977708605390413377794813823359666062772533656823945168645377779524505039977329441102101006899326451463237161235809012227834013137604314656536312605091267851872828893908223889661465583079444578001121850729844953629914248757297963312138640007364385057076762968663687095881244284149391068484340063008997979270746258882199934551751254706767500376068192163172480058952235722302312266693781429858791975614653371689503394682636861555358934520303168167000160062129746752197168719783040535177262654880568785024177815506290803302687886989781573123141504278219762120359186911807301674207516834528058512933368543383710119753025252911867532204491539856503330694271057494301559782486299662076636394531115469504376835844230686857281154917150976602251108630700425186438528616860755702016275971118030628937892064047460713348034397477093584817592080327631670933084087153725739034424621740443603057005141852820198473625524369530480843835350259467858080381743624746930664045617274155103240680079163351884667307063264282587208882322080020388541585007902454677715491380480440378937216168865235959990871176984374706637189049749375221922255073707154329232662081426225507692121252523248862592007847607881867668129710184720332853480437301247190111486414211739202153019856008508933132004020900508833137667711255001666808435292504107958250437524904113885022688917076245541151165091263805744915189110545944395077445547350434092754045601005518656768374508908898489195802097459231147926105396652034212426037503367082712701814106472751433998105098480287036683875851742178286042434916155307105880974686922566741945723258765744957248454719878411400133546759637071625985828551737718525018859242133307726142492681833366626520056334480805092672470828434816924127598751650621738059547333175041394577506918356292633171449889989582467191711638902749965060397245997297652032044396714908084168952592402147398612123864235813518149650341630723829605132433547890919189181435756783522665442362625577433306100408092598645656435683851382449680313294291614871369053793498205157576346196448462881570078477769924571843954066893684371017648620603231449581291161324635913205438319525791050314398372610405686649941568267095388089726078863972566362936386498499518982527243999685235064744493601507043417983527377556245664492040654795795379527790854682403272505518015215901109896758813925845012781430058225731847130553446612449558852574613278292319571856542183547749475206481624429517989035883365694351336052488517676395723444378757942869636625895800049775292685051889775855412209689073962271214196621320110213885469966935499564116986135142144878379182517963257056990892882232438661950077750135320352641286035005561084220731165446647927472857834215782619040230520773025476738987700182324212623450634641744451760334452178580740801822171176888875413429778189684555527724412773011199139708724164968517343298276993091002126396855025852216393980660087236949963217131314424929447496017920293937602922146315060224133152075100044987220435921269648342038087079703266615113413771392962588228107536544755299575381166635758966272290668730682634575276987558185609076433128722184527660511332134991725309340917409070306621963925105753854560716065308000481327869143032909910978697180327325812311600165624422453310305655260282665861146716255643170423346727154196982812708546616884684953810182517987492520931984364143408736309754108599490923639600832970593291212348070451635053975677105070887070922703092229248013743518507043547683225824262441294870379545100105578203308775839663869539321379010773006141898416014662604357943882205958817272937607505583277514922006468787055102026512522650786652866827560459138741177819038033715980943943938667948182857725174058242373964552467689940150223337605528791610247881432276389163285274507402417591336365953057609535106180630570048895878360508151253009062234521453967613612257674910391939367640691260613120215825782715201469533441016066389277357587016342866254260246998751514505136920638332900444497603025628546386321252172848991617974168788773289042113146243963651511871747794947467818532004234099709971120748690817966796053007945528697783337431791290495062312476282153282758271883563933585715989696017579597172635328943992227087522411086475677286042940057446046202517953158985603754778388633985407915813245637026329234235833625802607829920700777388994767750335633741172222537140543072311068499870182745582658031449328375087962676826494963198992980757313432283788907711572726719196801983568359495206516046343609352212453365855060393972003224095918657648403019333276784342314838170608503847630338944100583289460585395401864927312470459939652153834731451665773099327168898306284650978190582643337582552147482394179948596394986466547845441176770299348118212433653525414432059488955450416952853490874414765700357131955453793985255478923404771962938101226092796982700203446722836892246022210774738583641084022845411246015871789422947819588481442738984264504628879842774710036469752547691552137069243321382592947349600907721346503755714417851120790011126368811290949257131423490180927027350808339541128108453685818749165807498884167219437304325320493094986714375082941094819929494744154053268506055376425146585761655337829289128354346446556830796709812771348979355102478549871824950380923981019598931577853087692126215640515105258813578610430986726165184659345019501041700596682233981136453720980261274025298627386384022040498668099436397377969009802618101956612669730951920041309420073634280435450420452239768721044682091110463207479758845436792113189966084352776543825350465932726858875414413915061667454669091315566203207843951600989380677478488599357228924862476364467127671589790764655494839491217786984158534958797216345137445135629223481651562311730360520620526546106639698749298441947249504873512471240196261820492078258622979395877745243937560978304575043584487721602544737150929756827052820982340924920151763564134408489100015712099428824556781356054913927422000616968827638329798564815827346546416074302496769413178283079715199462847724233738449992866349671564533870341887920513279648491980643637859117446253495675007085729778895912288536810116315216570436482327357906040725240514795560831383029716678922802573496828086917175879169096254543571435839633277180896649806085335495138316372750754143264807217085801091494855100412720512200204199966973781849881379146574083706965463335555491677971039119443836947968304173079040766191066416625354658938371325642435004399178503987766582215273154550338227100977586653571854674106392668720714769996905361695292553622849005400997153125554343620761972041487566392492527998014653978585540407029603182102583274141718652713959327506771158805213680763818765242384777803198587710055765320294726005165233258787897990775110399214377305912707901751558129302487753613531024981692889387664995502923016054823102050092604102695586310553453105737244639850174730922825680459651262490322599982162622003306574686543415394879178960361549370474222995627183434873549368686112314857620909566681037976500692544604207683712295015296196098708930061285255573694144959379442192783015705993462370758225879575431431927353583808408519113535110386139906216828128316368796109120478833151090988312728356429886659018600457866893091014465726503988705274919670265119917096758784084769188431640409585024782022618214972839155285865622727213199759201871178615887665201678205479455535515121265958951559798355747976151800663273554321149717709016778962904916776296001328981891924050608911690230228278516223247005340604170111259177388514722838671846151902939178298683486103688906202322550437449793594024481227786902809695667867777771031803201382546913958484727275154232329688997242930621989842016096626083656763156046855649291995246921517939396557311510731774679723478839609021411164785266448140267885329632628296838135777879606379961371769913043428077536150303159242239809783266872654071053644772529769951472026445482431281190855656609061201116458673687561703374904387905862037359898866219067501529211558822048665403693016292373989474632330330565344613454156183104397452782918651455990596173287362566420867654641586749815569633631417797683453277243562773829093119926749963426897936550920991105562739838897735808489572836230359962983017204538631629451719922812640977289259170715694023744910768690749955650657392374428097472545034477886151470571800647443158784642497212436423975401725587745992216173043518678875257444284329400370977105781668485285088127083699771420863092328493750538228894190804781986218929025594032680667286607640696675594823999562376405645109391218715834734081422532484048859967957488390926031637654791249620252683156603143164231191017339115560264036863088893314495455415804094012821831258733702178071660812888113715892440043468519628542440453107127304024383896812049288812658962450981207315553415862071987890080420549157305140067578010613486201307066685603371784289630814473381536254085236577239338169639778925124163652878572720406605105097491482467612192413491849089580763747218471872614744883833224080533188148734622848615103126597329295108330553051359558445919804789727860487705540500140392319085471597639022223977054471832661198848642355143956040992415882593736062649935122039281271203507463456186901957202366381921287916896369035265684196318446996982381469671154902224885422477610340529073578255369891409940948928737092716031079853851552484998881324637749686882875430879442029826734978203352829589513090947916029158943759694728722059285970537019371636230743597250681439880369613835051622967488071504215880245526289013267841265040854771536357671438471151712644921657512292994757562729215855678116383755037672386090685259818933566459887506140435481143099069070838945021600946762403304435590754576422204609701548879017275188280557218103903804901819341390949218955539545997585259726639948515201022858796356913239171983618525142484974960945895629005491523153467164743437535611139174082876428713192955825147444960127989422165431926612481168982456280362049142590606443787452574311445672915936218896769229909059987595467405676886238053917296437880740811402978369123325041200086892883707349397195874669187266722722647144897500166490942622069873667727428699903185312515173958958385282701968467425556898239367010256004359066173697991636083367606684576368328083365814803857774864165690092439747782458338108355882096237033729012585575608240976622927165759776567937765631386803446015019005654249499756999848843648351425505050827503667706722032240849406017291132337320163344731213589147301480054672783818335151524916924746372992918983014179856462452299492578189504641191684699468908010737223704322533509903213185180505863139533574257856710353623463737629906286464305344946542106208236016215121616531364930451609042282775395640365323549595200224799492998650138984760739145622846710675762484963630007912302580394983028342531836488808371867692607618470516762549439888525725503097118743191491525414464129424749663716408173030788645377143621211487289634528521428775545889674468810147899015312633637769861395553784930564044474008904704650109451954955216588330323113596827863776877965287742412924602881291238762728253777443124670333116783652967018729423641282883332629847649259386074359367016691087311556803687859145278827061024372141413403544431548387361539249540934420626335418776269007315466088249439469862665402924617066469989504549671560995671003706415798484682894439827380966692302788400155797609687033962925761011340829093275185532598451328255817889655463481788325306368953020725787566829590155147774083987860185216917023220914729136392027336034127764496776234520781038469429870344053168489920651585981300033505367857415470114856235513342535426376767393110400759318659441206952829904841042458047259765658904309391679200878008870120192406080976721011955853698796297147894683682063732055580427191122009469801775356385637453086318854111600722226744364180286945586839739173614378662944877810152906879473628929937013180047160513551395083864630021229423524294028503065106830310473484681134863035255506347850981355649228934628443048531949980255510803862411069470212495041474110979585330835606182324972763112101452177046744608016346769937978151340539937782668568105484381143521730494344682927665222869736974690834046535112548719639456840395525027743481835252561274779316758623124307471266777957975812381806869449714647951286583037783096163371525385217817191103681437085609812095872430861477875929183395118308837575136121818690854479815749477614041825760092058257724567821205144545210965560982669947921991799604052833447764682961957345123549721471934256787829499204236294111069389202838709034038287569370875636447937761800205959249633682453920280555998779120631070579735934379199298776449259499718503739363610595629096584586587610539887577222462299654424741682818986067847766983361043429678420901539926266617805628416346936879342053059540818200524864523153804360374299134915753395146506972413471087420355360727387011288513419745611186808385828410142334976905583440175625166027449316428609346317809404375281259141604509087127492679476817403867009351516373019689989684621142082047125191220682912595423745747632872923261321327048013461010302350728055560334882584903367493805504007989063598630542500186719369068240637184200524591459420753241783647428796727829204606579891933112799266848236877789117580541307554373079548286024549466071444940205737959278547462534453806803312462955870979654683272218508071798859161128299894281745660232595326479702866216041230835218403562074969912854321636671063839653756649702749053863401134979125026828433931806548018975891853769229998293131280107555790470205517765734197853242051569421860286734553850309054086042747948988948029754647565195551293705071873514092744692912665294040234099932109618700550490117144542708485718377575465786816458150511181988373664039816124224082699989112029426324263220967781173968397213846269851092073888343904447355743417419507732992326825392433294011496620747506205107095951879054683777873787439149264957853613867733216967664326429208541452951488710138467002409403463296656328836737682748443483129227820096869306342896210981645745544438649701551022373466887712519199951833802747046490555909145548122870984084715575426493203248411594409584766654427063196661652892778411726203575159197411812009402199264941738665062741108439955855351024423046293661926718622760220564552644975785918163015846018957732481559641679362472236307095977456908639810100025305293471857242501005163446166862614053056399978062685308415223483886770003269257301371755062460400753547502005788953440959087217623742482627557313305329247550708475715754563258961960907185672436104328359728349612427350059119546049251416235339651416623059558062631656940922194601645563401146295119461033244050792385713979185404056455697017746883478645831978374091261013308413252369110578849110670773678136631455738593405773426743178132226356923160558554024224845990001835246021041142370483387412087975368234267421377612854370185488210315390519678129619090074449771961022130778090351124289911981039166444556922123537947731256652476831293553881775590526366438506027682185860412069375827453113230569515426501504714775750208876855560209661036070574099347401177421443391383748803914603883417249901385481696259237940173967775676265038501125033319577054382357391668752147601683088318114154155611287686313772919704457685588379612471991445967988941908974350191268078065725070481465906636585164742489507027074445129810146999083541796678192701266273476670764702228844121427596129555656227898377099710167588374236214660933077195684866672711033782490051799871638353506545498638249405809861655865229787210960775064340319354976347230938540424053201206194872325091921667357755500518307463055725623937873040367536546173975881347328497648779440882499413778135456812761046592002945980133628216544896537544599699539646594425182131423590900472510144352096639957718767032028047635451861313142035959953862117484951025006983226017551036556500171911905831123015790554813911168130896810025991816717481277963077038180622473875821746360379093732616626008514287365378848802271894937601914693995253255844228823927420078053818566633239688692854990226233575213322976326506940837412965381046549949107763139420648905648086800294959698532837344793947340006057482171874377934837893917232041227600336420983478693327956296114771900141512643924114491359181905430786879962609203556483410597354608733632219106088639535214603158546873546090297522184842018451522216886536647775731887067648165795512175985238124728703511576830435755361569781648107223880094636742878887579379683976626237053669218768777028211554867566395268921291022760324301501042391087640295064358198619987716703737173991176802886461514610638464793644064606762338023080174928472615883928383326963973445674560263493497280819784923488107279904676756343475340521590339909211629087443472338040125171254984964652795682469611529762473743569406970370631422591323962697609730873450291571638101011301721128109718686915051035464328728013799202039635845549669589135538357644907568227143930383479334135786587601329525633221314609169524084022398953502225269180270030957046960406892938441890949555152343573492286576488527009385601258852168745609881650607972178944095998194852976914264017416530758093724374472081975475840452526844531386768077949482028709288643318891355443700580318493042965717173965775460525280626302970764466602451084391614146121436924984980696560793179117004715551420491083859564328163727397969704305731387760297729164871008685815098723997481324505752972643883147488262187994197221457051550491047653781025207874139030608919460964219137135965601782714397865577305370647790647788462902817573747765964533935902338880022844611300101997587786480742320906469738436773604518516592244009869148891810912695436414125632448047756738449114570823742162507892997159691767958918144642051847791248563272904666937337767171370029618170938663413121738581649612221603055654641259586027379505894689078487082250727915858345802651580353106453010774176756039385122904492714966230767069681646373406096471152369169826945786255230111202478500994573846286952495526775386604230057790555754826411747747042970379172526036233178836039437175417496995745516559522481056222626217664941280155681893686156794782535054458794186411777380592773464572958420492189728954528498559086285920692063117807028905950699416363907980057478972958086919939171733786569508297235240949067932274049104398378589986590435846460912996719703456388560106200054255761569752258474433394631553505712579551751489707517331424058823022983048633005622710066378648370299177281101334725751274811207153794693730695272148832156826497401665827334004364131780325554777992972211618228923421955344450244104897943448604495899057603344407750533131574122150989636356281040670268560830454800467262338862385515504789227423516590604094485006281075001691509572384683290005040676440643817614569267252613044458685370248783319541396873675585546946035486571276703352878305536990058453691120404725404359013861320653028034510773396919442911797928544102489927130272192889555793321083775743210746747305553937314037803092605419380427748941493885999786558526948089972956208670870550810882184228927954535607416197563168448187067167077156218540358075472851763752666187176023746117600949015854212522449803979427932996371052076534254004161304871981618550033308370921850098024653877271432699256440903310163832605811981048662883054178705400582838357984377571696249221252566958264298976284437945953967892134495311251455607566933184946304811016967296957186124350550058314326172454912746399443851707128767845226843207983554448651474181027686984204891767665608878612736028824154972339577733844625747005263789083076916858198698548259569290292139671103495372248075727961538146784171567396237069536466210761195032127732371375581421558286375456511264324838694587792586392744710545435074868739451771778846256338092578995516953148414978848603295730974733376721072307683533545729261917667788310694152173662532850740236644659648612373300739558914066170558117581985407747392897541330606894541288930576058190449797729725700518084121485594521740694563294768294675166595833566789608404218142641997043110380619779436695225702902519698582042193033754096641962485241632868373921335716934593948833681765077668906294330070909062489930202734719016843406512280558234782285005917223454844608843177387865639047114739202463690766824203830819886791530482322247631260196162023234561699077465379407071032447784811031020641198430925322656568113091279818343255528213093789730939154165532888200497785684901116717020773341005863340179586524671705210168503279880613937073868865140332511886457598349071550318050005456352726546478143048155459073369700617780144540752474263712745245400189136264143499815130796078766204028993778606154072368573352150865478403402311298829470685761667774862054654874875354821631223182355614381375423346453108365204536558217159450233929984741560152605526972890037384765384618913059299883260302543014193131258793770058473571185197464498135430291087985528644856509602881441679060118584253971228591550161730579239999063310672653295556543031588845031421832567354649934457909032596256241646712084647451835111646900002398259705812205578245328009903294547676766773219773831100939867352588923764484706698248263501196268140243683932951305933502805761645690875732478750077129235211673900221213524813755482427138958327216961970117890233315892570907748150948313292673759026660855455817140492829124934712501516645313901009249665116240874445037122458846753080529011870708152723634629099663434004812420825692508339604539887492070294271244152289785519289725933297511421849145592523632458624347727023647980944247560719750957026441046524758269467242418418729439102789408411291338979073209457849684871763440077624696313468472548334673120286390021968752773244975031713021357387349656647576656332281551289226208479410785056263404118896650442194110208188126469592005183847706975577791727542248080063831998172627429813983782117052397818480001295617594068375340806517103146011529612361318141298122351036718135869650624865246102458932059088498924337002769995330101481084075229996607501203788758083294003968977875293863077830635482489957267963460620985121927389248426074068748823421799720377147935775971620793038348983411620790860639596231057965989276124786056298336299242643190868414881752497459209381827583008287382429169708462581506142691286857117452161862566271656205257385338853046382559805640281694989458954880434340615396985653102760745409944612826396391542143233236647838756088418565513735232808504855201699737605425423913735078691332320598988203880503585616089392693317986214068378858178651092603531224696683251191547734072318195012386006294247242953546581155271245617999702271637307271815595568736114724453253574121617864864393471254959826451034261156620984907597851144840171764187454353549654280418060137253982827159997250305970281608672610583212560420784067721298816360302125095425262291975381081783722273710067826092131810176584159059758637943910298523412528195780689702022324682725060676487399162590637504554743488160298413288712027594468261812789666152713160866224172358973811523691390864656992844548423083741887865651550581834535819736631679971359409690890003833562393764277563553537592932049327200322701008684874260578326930853440777751399757691954926583357030333426369171731388169358760421023009252072671601940770052557394039029868623200825019655056669313792318100071043419041603565831166316018561955635803822559908596751822002135971361364870156621147789359478119444234168121570755410538769195860728559933154881217292707884306918838487937930525959422055033782055098440425298641062459780073208194623204867282881815628166851742642586913106678804524585605240877484396462386224035954768793562289488523638884199970746157802370790411759344068479322943941098550524328874704763368412554440374885127509141098485138617096511930843556982079258990705449492609545108850601443191619945267069945841921357748244245489949865587266733166217420000365820015338172395798531592095560991404338434798319573406598889628348087179244006858811351591270291353651836598252997097495461800037956833227864171974891531466843515269874426460103117443884328550105057479927269346325909900039466287507224107885766130154614545429668510841592781753259398956405852728535173673505376401174312153255026941621980547413920607428549943842467078062008417505184604851752769484277006596386207477554622276085292870300757280402800325273784958166042806809267020668557235895624174709414115336004019087446626105999080605480676283328140455885640767589816383079753883543187507999697947953489364651748208826456646650105217484694867185750762508263734192191510133611177195081707548317237831574461898406630449958379842543213752006816848765353083358692323271668301701744132983189927796485834508318085022490728492392040311789096065490704438361516028840250364129260698205624056065569029033105947655602795303916778673018814408206587397623594009510048344131299913466418380874938025900709413733018133509970921215222349172991283300612061850293765868646000768626457757330642548333077905022654927335141376106985675863561931540002211228932685186005579812415145602894530433450030266071726020216369516450585853127471859124609722065784550433261365734719371215216170311037242802504062014220891499210682264112671533105179060048015909372736316491344481899627996929751611308009229633103245916309201695734032416124290136359847605226843617420649009914105810208270706078679367397633824183601078243432317229065019975130437356029867376492085975134606214903414542603873919447163580612033969433353089106341589597807442502004037459138163759262573978248864213236519317536809996935696241711885642290123954538269071039803705329843598996704937354062608460111420430287052575317608254818167512815578159918649565911302461624835017449378186326774389596068970163150756559375692191082583328483032299355812378215593376252326542790674659762144044151927374447363225993947151010129174383939055204315780187971114422463716438934976268074119779304999056745251674820690984021998324960792638596384412378909098083464708702506533588717904116949796525372394732790881009991770133814855605877091219881386162358571863205584609653731652448963638670520457537009066412840668297935094841076208481790791860091550708924750337114476598687945554879979667673422338835903509125076593128675521268799945163919652137557445993145533367632538672946490531906565366536388936146233352663143625786778030767252012443825168531394670035082444882151112605920780421970577180701760570040113140618810978624271296409202563301679637690773100302138592632407606924652004460778725574861055797123222822186106651249386077599887960835259921297477951908762690987519552720919975487630494223071489349639584888967721308905089572711576835812273684994642117782119116605391875297023563748906132066882632202492746344243646649553156191010059048790060352186122587992652081042113036628496946730493767051982681472199516461836933712981162780236398159047304443422034393755282147840383345882079401977905925595584106959506418874424435059615374073952383971549369772827290143017161991767301111356615979640233659434007786488851298071975693986302414606579022734019440006800782285949166726887358370859818722584303022653901550700288067272445511925223550366221305410403956269510192698786795421570040238675144279439997699105672941969865438160809113160614499087378146450678242175785330254627159209386256784668460688188456250829207315203528277208179944278590354452271630715702987435770098285530981270043015035073579863201961014614855136952956213934024839584319699846210169427735841393202285210343685551553097196150734479897448327767771263733837360085219022155608082169383829500958756262482772886091373152441659893828361268682208881093156351625918288615342863228176198650088844392864461469966818561680970334664676713727666284540321962597796977341114252797125768772356155919838534731083105090514375610546228067169066186716353428222413447305032505206940127619834955515392824718996478305437959384747337454914061129491984159343363441310504284185145336331946967389331204703035424320395504903671451953478415405473665233837633531996137100845830811653092456080785517937987333660927186500184360361017555762498332507041478393489686395959932142570340558132041882054583971484100460503325100941429499025536227800827137698152619964238092846235959735051212941446532220159713318662063193238666263195664455778452852617522496051670676775050756005417588123236223820164340047203178485418386126721875835890703411053499080958856173949554174790467413421600485935747832197442436350918975907389454254572316270751145632481790883322851306184337620233701951520979731395704263791681871940679064678436177685576869643452603476638218612989727560946261138810295047647022415073421280277276439472264964217238055907329603700611149041885967948032310403362427117495072862742889343697388633099034821108225881933622932284339955862550944347805674373755032394581048908770929858682310639874828368308079427271124906647865686231842294647745569430497714410947706428561328388671363128505598017890084642197809848681158469689309078232996472845418713750315303593440543496202525035722420159782266742402666534562700618867670188649126709390601999716700306142169952285943153044882361480994399192651231847820607661429738117490936634963571978815812969351847447353199673228019366486217893754505486289363986350184709803173306136649919890572574130401742178556590967051657925716582415282223650263348275855600408300714966125559199066346018732881897294933892223174248694565832424475448556220785230314317615670757026187329050392688241131946055614429118775971369797668154311440118827974555138268243633618865422903626781037164560072630933207783089619596016126331312202862990196055393244794076169375474457874829760120847116657312064000524828246770035392079317297623251838693147408763373887297003256531719804509937665545253593723680298520370602348132713844988957410598385302371607112406364240761921808901987231148584623720484290570275690513557090352126962365565723216251454572240335490150798659961080225606165484157678339791527535567254977583159991068748290891673712086906470751133470046836740452397479406131468602969157990730934808441516393678575706390688260065343657579342498077395895761121929294386120029289242279173698607594660831012020964211341483467059070068907523318799530946012930135976476586417924699293811043046023588060562435818019940063755408672342664246119783678805242304008609021858674518375136009983538887641227801711404662115526703626020555341483015456358053333510849950883064820477034028528974925023562238368531237282901404910864335512918379124492101223682670523546391448922355711182267280315091018379424540321533567360593020559922698813977110604437203276702341969859397887695989022124599085809349554511146094702762660158242099256967534849563156553243011473477389462354369266773364334554500775525033463976425327082970745036973878369855258409600229979366907964400550922015468308319404074188347036151402199845095631771226726178491378780624717549076303796439461265167256831691022251080707776243256679419102510138751192980852522603112653243535772587285330334179868145453529080344382749079373537919586060470527082015286629908114088830947256298483170428959753076785793223255340721911925799907941093779128831154866946670403314271929445841861171755590895253038701010237025029071556300836573427697823523776369321149827883838633935685400837604699419549589706357428563284793466980442910719107394250454520376520426595008021962950804170890667832229511115722229874681281723189600320514710097196936195320131225433957802079395967844461187724310596234716406622964212372962938308691540118298113331473273257225445649907518586584736404473841756282711412103319327646251130919040056804881015911611775764230484073708064482653021379499395460170780011130835676104349908654325975103147246314751990023002491347801312310800554442363343965200865162725059777192258154631490888338740940165049116411015463956096709352970406097767963604884042912787667676949361456360891925300253098955584815246634225626768225981818314151457458358711283059219912337537892560640627234937180202624583697530649819094578986417328646098448266694434949759139727882927990093630891603756736303505289026252395142146649945292868504186097779737361296369533122556213205434998864908211048076552394939762518850385379883707991711314739468636292110082798534025587074704073932211434796060610944265386561316763765828986052757509677734246889684660233413549700140451557883724975051280209890661766159795238158072213390068797366058671139032226678878063613721314440179178983611822811572369644064951460341850780528959430803895110780537745269670307472200952038812112665151297830352359586753838783954199263652168298749090740623314617932262996735187288416809250760575500424166525558531481994246038317223001012052589875360273108455691804562848577888027590227718454146997832032898882209051729922671921210507040758317492532242890742968265228547792898769436274868936195403259466924314518612791342858858182163411837223408517551711876119713222391964216832489527097105630474368517928628729735289951838948996428005551216703655087058568801275518616730801168310847861269559193010956977524256147609163656975682146953331449738940045832560078131878181440909061905267186056253353429425723368529621070307530586560762644657384906312508745176001218770067827479657455034706833693346818569060820451363145056189402247300500453905481731147601516228940316470009370170837685023769502553148374448307831011148041049529881571697344496462740660472987597201964599717708194036292900268082079106674218386792676686614200062382349476327698500113097164896972178990935012742426672137403294309120264989028382165130053811147998334561545855519735428533633942573052202645050335496549818234630479535974022495829243672244776924560635598404912433777351637416695883654641484986007945683276733735349633783621640485941693698159090815600085747319671627024714503680500819325108302673257007533837503744339843396284394996159541934057276612775486002856016411844659370988330119717969649875431584052808644294054474135078281193941536569808992678133800958841958949067166659660049008683219874241691933528147286263747607920411876814022465481554103760500309444351566863202341438034535441926089459488690816444119719685134486108764534166324260412518116149668483017553306778710642722812376446955969185373868247181659965144669662929161171636963550009497974636571366270834261586509112932480946916015029760537081555674491773147658807233692978530719023048587766324056521411322709156681018043010555023891848027168310895379626029340685657465975412560032832360445740250506725931589308803197203047367828145877804256716180941117090833030134893906425064251965811285819164412371334030393586895359023008626287845842303930539447411199213956531633771798802302740589682706278831197873849852347717140749255013142187440731452452394975207762636104052524317816967490224439511152854628954359777972820361634868841995045657067471466911625940329465307253969766930016014106292496825179770695833957108790347289653483287522971559162357413499144403331220048168648806221105231159922972531415999854411646706376384286124687139616681522776292730286738320618625641196259399529901279917655074313067120173923474828679204801815746211472704044658294759388141952660586403675320642976483067346895869203900395872765836498534752766669021956403995927167383876148625106057272239959636548201674242107865198433757318013660566496045717264283180267733136392729602150364151746597194839897751028482723194634731185035818825423421470987280716174677416398251877458787692108598673088654041103957127713136344133158057291466089894713168067569088514134724101529830403337053979177514621226912225491397139753242849443729279851970570253001754162108735775159292493554577292207152273600433531075092580118142526123919937277474291516890057034786595560243831488310339333263021420008943492202499374847396927083287522870478251644776430191650648718966203836966855403028013849665697679420710311063673952996523064587585624866703667472695760619361665680387677124878145024922689773472671547690983959967002760580547148739878151086322984180900784684912982262138089751805175339843757065797255038929850199009454884731548162993578119607297005624610141372821711180599031435979683973079344895379764590628614990084109720409443098718981992594416745953543342728979802334643321358319275384075531208851904679105672985534091347700941533802941542959465459552297089736321124510787449096312772758247189295322891447125712310547069132998362269988187008176174652379169285683111525425448035009783589424066204482901659486226465234854067732199082422639119388358860550705396052529085581832952046438194415119508664436831033604804727582909784799644292673262400994574103296744971404742333877881263424675157710807204126332620100706149090971931967944506406732770405102333593466002634572679918972606736634404099180679050290387050107624653503907595137257556050191484656177798690356707032075334892783416913892341320233155124019687087930382712680313883345537905618696587104470419558349888008061660752154449705758657860492335981431558522535558843611596158905397767335982115711324014333779067859938365132197745247175304348112205761651989373625803764683763255973749049642874430677168877175430222910877733675725254568376666751466298628742628910526731480251107493703500192813933269384575088855891355531226111622131528503323758005844186368206589014013262635634934802985013291525307599901937478117068572728688749540748769460105614640705347097133149915431128191190986024852834169483583037225442793927335518938539604330924874249405898592870857340518295360311200795568429529858446234538776488928524192625145132577901414177799784401465603800828967875787823963407334690448538852583654270210288930802883611079169344407227721222509223595148153473053492091280165754811403163530443549699379315278233082888914104593611972634661556319263742605456917806233664030761727411466860032815344296731179218851733231474168378358398267448038999115414543767400516708107226117718677168588362792915940072417854471176104866902825938902282012146030655783408740634894888790347493325705145809980766779490999595380610545797900260906335156966961515036254830898153533917729109456974559089852315995034688998162830776427994530538600621030720731345219684861551275545699959541915075409830662191424744545754611326918408303080180208159310371998117093213068748139475227990248569348285075515457395061304209026491490013625520188144012030123291026993161060797052440792841264625148679880391914994511790238289787772379530272931700726242365969028237297793259049028715338401326606058705151199559539227815421853655922836291264640780258139644336894722556803227106010824283312849532184192287583961928984762544629565007882316523171906394496796706541925711413420342275686866946024642401878057259062230327962017517097520900373340091954986108179394002894137620427939531164958227426879688722031817252745069783421572103711313934886198596517723341185598509458499297488265021373694726377412352312085105132452745821890319253576373111198768050040563808853425603841501404194159253191714865302605968732157773503206302205410115860075722756772130951174299265471354047910642859484209558066372116509224819473103823678581216995366036442322641077724392401446054087969264117146412415377930901767872004147773410838684208270602862382013654643853125704062242957192444525714918948912778150216956611636298882554525045151239946589503642473918632132270274215571445321334498260895941256269390340388477259787703082528832941134263115968981233569719195499902621918439653533527364985277207872578584056162698743733298893879842241766082677355017284182867152578395002719879794993258069760315468403067107984093029148528746249227469644491154567836378057044938889253555600563980443899366624243693905940549612318984706503050382389978585911727378931487097051988915694673176678960639287018696861056152047740670845897202559605702141161896205646734368810033441870860287780091440165003628210538151156644437021338716911061898810191492145592266182354404480161031391180628976089888895660489376817981343668795201052102531137466226464168526709604569196086709284510107460004977964786882008468329716937056728091309739284902333737672291779656356085138791826619334468153512884500049792290095036424991494985136341432328662092701088060393327513325282785528655928521209244524863934639366382339220419489166087234117790400282793033462302163552578047044705040663916175855506350540814165958922126792942614478277877114296869078694985867078318416748108283797665671383182090653395386506421216035345861326553712373020743091228102180027735134634038969464800663488128953775921723015974149664532858801570711750899129736675280940320010538414164342668847861371862723990453712782177271142776003959233685606222160735186294214070719494883460595123240440191244277587063447259806873901223112592334322321055429571324427666328412347028511498279340815910820023384613527281121341862961243070840640631097524752451485954249325229893400381125807506002967062806670839002601438028379560476792392145176277643792044082879423310780099604858013734855705112831040506467405645622303817990069784934240996976381175805306696198709086808194275545592772298437549286035721620119092159091203677568572096520450808053526449663903683972542142837312982322742486789182113284352063541321043700508176890171783114733135823339291608729012492068067785260008280229117347761869361781814662008393045112405934988719373534151373113826312893568874444087490835616515410951024561500771469727417722321164376528239805554740840470082681020466260562128927301486334780513467235242238406909908751693821247114306294504407811613404619463346124081165013628798082513643169161037912509124508885957730687875096180358597783844998221336051974206254975419472921900532475600788793456726443493586735565731103276371723631594171642433958575452066301220767979094624516515492915755105110623601231933294030675935761078131499327837517478554358587251524591528643381230926017407257252932579415101348437788819357047144988907266398905045703957944759960267805259632785429348118210435578727015975917366585532785194139191443571633785028149122995462417420611154048254708701143456215525988545594341583584797626695474668781014783211085743740071637128134065987102519698858190016985746091580377078146244804211484205258772753596475657912358587889931689897264773524572985374747644393321841787925887337005153223022097814031370163878952989728584848469858973579945666458934067481659379774603607705742960854602129677496243830854164576305227940634581066937975161866599239970400885156215931485863059553608332863940901557081330426517509059090588992479681783773953604486122062520293459183587516155405211960178536899230684639166110998424336629888788541337008793079112288915362367684576935796946498302411328441273331317085334004061602600265113122947420358079312177467451326832052461998736661641887846996160319443140232727252567298702193105128288323898875122153974061069339434590248313277536828393836070211987917805212565466449298823611011170181670372222531060885571312219985496205640306295437017981277928821775429811990769152257465041455088803116297462358986766993416379540025030488677940935169948509293482740671349446877827564929770390293105254264904745048740066028554987045339240400533967557791674686786952417431773361813617388810286842939821757807299710556581620859953844485949099745687726303609040556670284580688649094464251460659720282891232233643815123663767564835425655644703065751158584273209979798567691860460087967004357752360640114291676939619056839497879486171829975647509804592728761186713405656100080875563142677612564910253129074368648541167929721345793063133312283462196829262221327573693601543174836620573301656879809917734343132817976470511707250991472003389068072753329340612485194186603362456695336745487163552675151759039626436674404245658344231935406586393871848976253224574237204283047483519900361886091961211205843796423568728939152345762283103971676388732590480020335908958589040452754239750780505264659039669314433628408821798616559156758035833229407846285044299728062629535043553994432869399251004839975551482452223219657102816718015130342422140121180446979161885963624498239898395938739841445976239287754915563040184169949576794976465366746654716531377787282498890906386528477464159879978483619179516348754036103421717558836999150997013616404762262591994658676589261707705450106851345751017716369372554758440771434426917935422728329753382017474003992412557558531554164222879535464269723476195742381942014585385085044541209617648303624953002523040868812220601597478514698110168678390361753915412360073091924240832406984017760062953365688022323737832577432024038267582225608575422281159201705391972130508111817858259971211023587788734609492212546224218962543048490872886990170236831821291264982805837769847881122098021154635560022909276445538150153926918728756318913158903580331393287881137832113331185273486851282367592987458628091140692812272918071863146889446817988348858425809982347688986230319343876382861121466974362451595566107811184561253974698986429671079275741925185599385162665985238369929317593793600634023659153779154568648903200468182367295576880828891712841781762749554190271196468168394472697472844781899206056891011485224153860412114878154908599783205817374834451242906999449695712695865701333732003361761958798283662043641883357564282697958355716023776105966536196546344338574255380821919220594249419627036243187970509459464347690973237368975242177401011038685336154047261435074655151663919701076527321002568931757498781403782620337862822127958089917133487075159254717571142874606743629841417760451753525916301065666571169770479278957901314312319900660228385164886298038975231477575687286535193223891988271884470651544287771053863199008689489604288353935082786692881705313399559255827737370811297995310237389943386249672565823352910865432466287761930027938837457458281207024705643023214689019174252339313099605366859116671386760838043321933978415468453322106324480618486006988433833134219824237193004259869912498140428932633871287980810195222841411183416488825511323107280660351670871791757848258715655729406455815479937517792059797772875894263376783036580765640461916585847699794846022828731328991550754244149938425508132379158246693122287988716372028557424963905002333316149379062199901608400968977242106242674264279673455672202723793286581482039784149212401532607343059247522370163125466431785618080666033557404914099880678690658152941431061498585022256397284060723889534124648865961231734188750677907149640804012366220083084877487011682598635472179472318351502685106385115664884886386551234094357653975694602475050264158085201612969909593008959075108869559253150388205073197460811360878131889373805429685648606546933499026342573586935890373794031588876367592609463931083960129019324041025984607059385445918838889927560287192019160588634184023449711888934693912217961163701354586922433848600270605574168767210454399943222696800889836651281995783714919498500264784631196646085608666802222328279480701868641724950653833817738629882344816606585099738709445201886222900114871610120479247908072995506420754845444971447489823126177437501159279392178980209687798977495009006083383391583088327665757601605257560145332731107677510728682646841689320318505207273503035594766650332485144848591616957876688873123066417608347796080172370328834821843486469528405601212658314214427281473124207347604444415417771183692925563272143283872388050741630145217187424762201775876982892214372000560605614934736100422477720913502455526100257726765189544612421572591511304044834351467108611995530012107837381520053463482815755450741361593414271551979695796723017556767792595784229017229405233835430547540721553070456859630403397306275940868449714246039056868842271159340440233321361131432992575357950057485135219680138740990945875488672159671615164032936470393781610550904528073000892255928247125906717452423912853881952768614892469919511707741431253387446275836948647825125727704828449654292335202188938253216657472642252261499094408032520078736400652250402590770604553936126962972054184504692508089754837789197929841501237725258544219640054596231754386272632661406591877829058728071711275500103041740429359754644136757559459975471786274142655620130950476529352121222384416949174940067169162512099851953845429479758159719305471605520330704632393135826476065771899810471278792523812754737643491697165019191164443520989381823848861714472692793513172091632658460416946301436570551134821696920536172725295674790322765077137927732372932748934395323616840566597918019200125292342729368416511683355500338521912576730174217192470950886562950262186791415738268200227751399796199476484513325213226792409380102567312627222123107389379624825870864765150958029310804716997187791232714641373621378612653225890313728867931988201535197579906906274851823681916233611481081282066160240933739049069654293746102935316448479366012061008039077351231850925192364927560509071315829668633543590703499604401981202262685756294463027586812492955237766156043710266642942165737762349044361475426458208193627658997948258833214309284263790626892197756122148757898401901674723278599554364806134959731656123781901873101173166708354345119331986641247002560027884055062926688222444485498089651189446984955326298707733596035847748596083504466572030646805066703675401009481519248268079081039348397109184581377016977265245601672093507703731583842557531809651144633654657621321155585214199447550651147419225236554220056304798977410794153541277730918721316663458621507222610747582491261627354852463936771145029891916176681746687898334852484150411097038184610013295252890500498474174760478258782005498510153834871901763815129929317590368290755282329659553476204676108528633252163464341058991426773719335809625710851057489072313141907320986011240480607297781651980694279473515099264181712713025862440517193168296474130854443387272066050953932951861753525436090021659775725637174623943045215669798473050873823961295812722497406579082945133266264592013554764430444423907145727489262386635332449724619521036992906419103944848978429007624705510301075393836145576398498575890316482140782800592605895076096032023369246290905569422697213382358232101074275890934438239280126017982618155911601446478501249156126215079224317118248476581088694553430066416644429887855128899832010439733441401017055819682751141824831019057324430317904768482101285490714561962166420463046041571731706818082880009306890851228655159059564928458791251038936610381944911927444564314262356077592008277143856815060494967392955464313730596682918714473610703419720277472574167415378741266169366185828837636454152894609311552880093263378122255358644573410796651170872290225709065271986681158525341467122050878246319448099949053180945216435065651458371700014881578298595749332169360742579774184814790299677922598782559987532975128270553068335719908255084233878263650570924293920787198154890323119657993952353272390345789769618107509899347386109454431495184951600349331838454168044210808225950544342425856592688877242053091963018214496779009248378953561596116109013512068593782648528607577322630520550669199954268635343282523308893758566521904674982815591676186594161991087879232591367734967847516335540368862222823623300735437080029672954701222991221145019205347467033583158000043920397076694762836702746282936399207280230648181472592019619911233857392368223549880521080803590121570990274722454800799909724227288884280033633286393411966175056509010676243758218964997957371706994023118829029763696612278885603335001465232362209136532767580432628534635293989069556859348321901168702152137491203442019885214978809316155364045297904896379978679436432707128587155127392960886942481800789112933904384331219593704790934851323566529057246800486318581620242294528408098611326177681603044767064737855872202288833677159654818850090960139160196209912113010157705721332818383907789409000882838822212998761431273104634841350403492213955468156067079925362713551763825796844553393489509786662845875587766006043334678234184125739601887949192049784529535410569315278688694137275800420925598546911191629409586948801742439870256209265400453431382622349799071206118395431312475672792479751146767256757156550776671404151800616971721000690807874515475560401226549285670543529432279327020911443872462557739991393737251627585847240713059154259268508531557050403437381301753063674829296124923440844409385983215219424679052447934347009541092250164097789568843168813479087577616683258406955983966310994606796990313318297327603821320307278070666451022025304501905901253184384956947048169234000583122870384404434097615016556715584783665305982411793875720704850487038651627308929831854072609471053481632762069804814557176581730573961824530776423552727519532446435053572325275187546820095728748005931130120572575536555789529399957890291562803186777550414989095498920217056165654911727495399625012503456360524620892731681122020712485732179989243153302933775675354114114126424806496069552923134002720203213277429061968046478457148987009413657097841449493449054604881828582259875537637383932871681988661167735747620314853486946366122246373626602858548287553341346552762893175646964357030987199995818138209862622275623361175694006767613495058494201700951194017637607734559092521226105036845763187976196401252775739991327185263811013732882626564627162256226003568208189367573179599146930675868146738861014933612274014997286150038041766696965880933999444388629504889064178951612938879292464220113780525148193127006916344644876945651918888998037737725580488027299424628868170805115842918053778921571864234044172183239143075788461220424574808474542076055603599515859506423797985294497265127203654571192969986057883859138943761546977943594314519023234493387926763670560710321952264557533597184844546098410228054305082281159171240986487921208044296349248406781464124707651824194152918204846549084385978168609609705186420773988218753105595597940376633202058700911311453472510157742584319458892871861823981880219639626047458082648979198391984786363584238780147588042414720898838976007771833546714881169154466900215635496445343763480900987514476750536956604242283016188993668017861994361069725664443393710882619570454057617842396212732767505956917433685443997425492163473550213437750533058605675678469680000584670122138612089634394093245508715972505363377901206138688941389193914915749167755491291540764767054598769716546852414054584712463853433402071877578157403055090143751215919463181567359149425716785905774980616172375976270795526870083906450271310909439412947389490034795168212087417074959088883429839202604158066421900658590236945458046975428015275853443928143717159153521183675573580740831366412664053907298956741097772622462167526611650697561682208432825464980989222899041352064311118443537708902198864609165980474224756770690107078598488399537588224981803080378660365274787170608377203452074598609620208006504328898674626503705209830153985992755274166805618059880938362829646860230170522886171643911309787136418408097269975875250477904535606332067546830016553743215369894375600070071125520220807533849102860986118793973405451617293399360216352471670123933645013799047306237384491011164113324049213399698242672434594241846920907201231444227512204276136177957775364318441105148944673530982767726296474472117344316874726886362840398215702342775063913815036000285326278569491186634124884122282310350226874310395935604948299581901662654193164478122673365001074738811938253108931514885401744035700715115396830020840193703140612041676926826632463993657883694782039519592559907859653242306438863585646685497102856609696793385335275047340969121522020155933636174513426929196827117298062108228012117942544165298579729779490981169230118989323949930567089806589440420941978775848318398759864176043549152401066576649989947321342826066862798204567775904335619316055098146888751369513489977639784306439062943386317629178803166366338686308588875329507687598390556070015861982781163888945254378598876789793460581994013387695131337033052483303070673495450048458274491889025229469786822575572475344461002969147203417033413354521958154449309744343755113211093414868149342393489230426133894127187239951566682390515650575368696086542380317520633613726272509009022989071469639128496300441599415540904437468284073494339510536535125819083644426757062388808181678785046677954574144014796745946032406366539958147452241664332063252286168499467127510755684224104580152141679728254363769303852130482935467195613731576349319213702505393867511950340431552751099120890280257554248771725893703817429220100808684646657781163294492949297869879049128073303976153796763978502905637766833259109525792819491291128286989717569598883771482615406702043847318898576574440485154247156782864626186207161844742011787386418163401313615133384406213654193688027315944745217438861378081021261579388680068105318785119038523117791025890396033423370901688335199024425397398966746407708449506158430860185152153091449952892558703383083057204781477927571226263250361355118233426508221846610863475611774360189907439524985839856573696369049512297718745650208914062795383837407699991531842166163734854936399771316857826276071952946909237549434865765903286839483209311367924837805238460466592855514705854980355137026634539452502711458851952504290390273085422187647155845212173187602179311239665414322349938089386928271868307641440151380461245494663999718231161486340477210770369869963766938703058314224043777900599260794255633131931149761807492989985755669013029340328109044620769797463665827301748662020972825334048670398589660405808304485286881244071935119638806101530169135617647594055622953743344048380158578985102146232833432503676633082879248974026815247491370660117394341940040216261193243080529672584563303754872598574689470267376968849816051504018396153212256034498151490175630419471994023666449942939758215432546634203800099264371549878421767707895787045281074849847866018396387404403915581708888954981762847498869481039861089472239405516555525558100613974811775961550002168950698148367577919935658453416875348412698450921696550860340754595993488010720258471619599583275278045182962103293527340704857406850257592394434064229083998045046260072262238836368250987067346817727989726606387505440795293990522562044788286599288184048327898444065769317867472295115167352053141833490312659311550434229170192232249614664374487968526989661933124363775118008736730622993384652395853101829053212446278094027106990489548163097476980742999341681992930758836153769827400458769751058452114002150615992814082423693687900735490737185240444859866172499558465940397672776944326212389125076200401506334352699437612131053607906938643029364767139629624484258083838568674677430168841516970936069342295452238333530295240524533339639888953352162491639363352418330062213358289018235973099558638262844110660650656523411276778007779533167177546637747163066450087925285272032708601643772845497032808104792050859193864221992892797917320193838332342385426699815046042670826389878357637602688593814516622177731631698835237944847879943386807216932740340432430404492765035153603547189814897676142584003939973557055930030002318396795758948420439118522986980156427598587762523853666855804869717647891760394635246435448711780022418795002387709912360032748261855131553722079982458011966371312552609756687824229851877701424416647487267596682657445263161313137844428014606565792510378114961782010823991758480421196283306518905176379829760433542946593503266531936510586601233081527652248807478478360909381963009593032868017011102104541105504427666977009387397030091053442800290191795159217893477051481863527677519026129184267511147504260113176878596170102348043425679037337601485685801102553162390018224031064244338725271856776215932861653228797633576789737504035548513170088274224176634233744761131526149842906945388256732694122356225811870111556262498835402701760552566908749107602856851779856490695402184367859817259960076150125230230827321285779030438516258920428137742382072264983285595923988265701140466427902271883584629929301762477806262062490446129018114714222785996306764644925570078848401028957049178707056696573256992440106888891990279780757609115142178386346328302268784558959966126330942254501729107646187047923464666989604818182238506568004537038909188742968550191520913957230335621248300237199401394847654722855474961821882747569014754556778199481394624737676024075953669757455504245946588021700860563232161421746791787921836508473605506534321180656969613280232068547451429785392775789962356457205078364731834518540503029146371884042094931260137514015688802374501664922216248387493614003887472831799891280779309344942164906767216117864876586091857850718813326311125469740674429662704345395506057461821688615254214291670655133193350928977427266758007834022834376843231221196215632260923427256091960918906410901444684363141254980687640487370722430876857263873150987312351119216199425421355265317931719813588142993002383055826655495199871623529881598603585085878778304111156547112246131864559406301550385327122702241265820544622699398139328331598893395888765600815590023369708418029241042321783516973832511051126641719637791864470614791152447737394799415205268802445532393735686762072976376286962481957508322818100119714390772291251559076379200036510241550177666176264078877266766978886705379480965437400169292265803732347897200246156908214612558773432241091846123297374883736208237575933520464872362676575251521872875316351661964364003100446192072844764662396212572864282435223215576627707975072819819883991580585706875158261100329034252900878792961196359942860137962591430694944617997240816992631394582006327421059622350000829587421177695821658229314795783119820500422567075692870290146038694490547576670131290063110314508922229221904133739328255825361610385863934388890490015836106077361948551717997538484519322075733684748671916323809552887041516398483162772004370811491302069657687225064983665256733039396472282508619654768169214060228481167995482804119572112553826886455939076185139950108686622732477371375197539268435007398658571268430650905499520292872430714496976303481770593610512791201328716210023124530453642616042653973565870243491232692094094858546947435631696147433162059254337191530871751292820527284908068250434158180815412618981026312874517727476641442969556983420595230142848639041919766064349475843813686213623480128790654309374920718100777433594229746589000461714140631001610173744804235625515425621518583267996942235759635755587939183572854579143092925661686288859629772743282556637546106668338536336935513404784862425054384886086232225541668034915390370824465343479859027791832488137079511451668470035787742223119512304397857833395148736338783659282781174638491460120281505696831259110443554828618724867696470684652052912931481514840934720774541362996395622259777521570527409099425356409005103119397678624664408788362182898881700027344009620949406609610434682157932661227210570025673485655488707009235961926349695026840621528620341027691594567080213458036143658155651886460661412101831150266171947669460494887900141800215531722298701859614098153758270028499006344164655896696210399245865249075720056014989091316755559650784462284170867807160887567113587295536183431148975777804395848106177561234650954125558664274730882406688854470506122458947263461082813294718830634615076649792269539460605508277167907319614338454434124520305178197098566608416373245355241987727483747612964778164212221020639614457046475631370349037537649924079257244819865130357668588931614578976338504930967722751790245360438392463739639670871469623899806532494630551263395197072678393138602000707532288147473723268576989406103599917569899061041212956902742493702285953919519619580374793319643998656715475893625250832996909778702071665521259795919112048492488852484609444438351053901596788490724466596917155484625142771165330226198585408369204660531577859651535276967283862014333867442158176012009912926003153249598918533074264470336671329514964267182075330978678660108049722199374842334446454306354605361472068220881353480160833435294255765070145862426466250080319974121517840604026527351145907806103640328963312494583540248205421854907963532623944616694859039628354013130637915637337610008415063247016155269666679593749908696231820239241187800163373416716798541488000006250425516553807775214771941365317212530734137546517579309793983407739007581047450883610159298538030885233772396900406128701520661284780015446774664884115279991450990720202211067105196291101509062429986444539860692719623925220620730369150784959334397905815877808116961699675312729764964256177268018268990816649147085302345169316452530827371508639672656872272525827984313434489424314571461271027043458232864871834113141514574767397463721463624715071645119045375734746172190062007196379940035575403236810322329163105476956861495815377321504988388790979858366363273160113343422026313216847954712567207119116577113007986142279634036274991058921695322337283535766536440481610649573750317934254137033402352212488124969753352349570050836849172376328957374356507656921260881886654677298867543102174017664808582793754291382296148509536480914142176095240269452426143648782170547056266753743719310204448481639138165931614774796150291843827824967725201412793626356272942391017881526929867083251903574888881875062443156982962623334445909436176649228131863182948472145296443964100413625947881182673628791932683839349074587298787342015480172291806275909639929813795499907558703628502957991945597947048233095904507373345722111336188068960390736566349877114258384454223486073147708788220651413388716954351646769613010889088710096647418511173554160320980557122511150574136917379878427234159715727947286251034339038967028211220327872071369676423460802342751178818670499226321348267387528166481499446335918368662230488843627090720990507417761137952367472493577090726462790809420635671886374031318397967775872463743028037786217566158292400465977077084117811361928883030613714037251995857061958834142714081392458033832198922783089244331293608465849335206932859778418156640818151052565064375406459718124103204718016915135370359125015145189387101843710637445649283445981142914816927102395037707350499926585933132368421032068797106705065115531364948273071501028318293366860487706005900210477576371213212995322188452715532567805442826380516154580354641303062992129739167337085692197977904359460183128135502873728324646440401157073033277694778221121650183524718256217691210805536062382019550788837799031563773794441982249624284671909982278978033168957084201061018379626737215202677014703633659296388265040152730307055981697761077783241498190820559088920900311368857483939236649551870484561066287780228377791361799090972222872657993371092530867581975268300429645294104619309016721734804703934019715589329592199626062084991642000612716098665497872139404116857969453091789675536810097841380693637775052815807981113464001704012768567024355849214498228942453888488414829895936572703255712097750668117020428360627246826695873565367918167282485899847111379862508112666340561020692438252279321717174333484072622531173589006774356895762411114985592305245151629261889645278097713935953432118949117453684782878609220973092715164712403265863088825486778186498255120757507959565336792471507725548053270189208558581260986391918143344460193343423508622184030373523387778872261609482097534810958671006593977982853273037754222199984629641595364429010149297226790278775681907282796919705040150986362818387575761082300676498528951178247383377808194171341527450452551586657025947997920208642298302626336753224838172095684122548158115408088984664764100959492964436918561353088358010775193598897826977983740522217060851056049121715675082459723895363491123152513651051278873537453874765748109471638109509502943562937174538931870533308515722392252631388560994149355874493588941302611282964600203377219652811062143241079648787794176498463128031663573715513300686329332447030374238787790156762295304024906661481120435795858250243113531446287491742312829226242468537492976684233144586914793179076807736426641633500035740993520749826730789668344239438555494938733078907442480577352285809293697254752620189869259381456997615619942154724452895489623374044034708380048896863223833180595825406217706665662850992326505245383998234181565061665897638139073437571294974331020481086084390273687791467301218776394771644408178467670203161017939789777474031648588702732858525106093676902016904017907773599021515538313116226050284658667006683773908229552200686737461163542665019577747538101642397057846225259792651836196228931845660603940807615511862725346039273710652505990934499661240439340337492703512045078253771439863096391306684738425431133571499888748536784454862660306932917084688629011895180702436258139962285584251051006521431172751017401859494242442423744907622237070580690512106947967581212867096848240458372532766662313139620421654226216387253180119298417759945362017265869990856655341411613049589723450901321732989297325348092938629194387321601599132328973207068773141516433151349936254975626520082150374164924602418006899699398637171883472380289979866856832229965914589955136925632672632688901756638947989905062197642303496506208274235977996622729685443633312185462539607272582820539656331284892221705686889173538797638540668758518081941257541709008663411118398943451951152650115928211191538008745477869428046663947761838904454802428692603613817768646098517944632572630636225664532385051200416981424439787884168888954059235698699391840745083730788220702894824310247657710184507989187104051849380403722086668988657682307458743602996144623086846927862465507118071430952643272005750636234867582373830164373540068695797418967156001193105482560167057945088455050771772891196521669188343859420025321378580903109191637430023752144351372757667007424717773554285543283951871735914103305595140143598415679357957271128460043213686156704402465887084271839486650529003891699186570949785123977956841532155500648093930612506489001327717033305389012925142293662316878855527718788398227412938793989937083411904667866360868743364937286120415975863043450587475630341160877455795764594104930133083825067277855301236389424485894960000063159053581455067057877266601926312807625207627754420133238988561990239540839883265827888133179778825063269719642788608281883236585515138452758460676556856030111315480169890812580080629640617591527426217717186795734955670338712663439045467990290250107449346151246450333156441181346498134884159529302474449832781719093623235878092974314845938093211102523603792842521434858067220278621731336943931807736531904366323800620147749993886993374253515908123272403366038111780458189818152714776274871476611387340521556333910773523558861307073632900619620332879726538982729673146360498197934836647012028822420215707449141500640919664870304684643497341220572465599502709778428601233482192343656258463691119143113440708913384892441902276967479284373276713446527902316586896248626544508679932968636136749280300440157418755676602286842983860157312076723452272846963125543757581821965705111578419999477784897201893289249708709912363285732681365884517523087891872902398601417527448993794735638741614474377263177548492573191678678295426548555977786952566693577191055030562306059333865529844242766170726387679122763035593976488787693338758525969433096033026508244804560814069338067875749138194460879242261363239838199509159724302561533724314726040081375346610717308341608430930600039351637713907927021174208269220214143027216435427811517443168253807340011209712403130089701569319192296530163233308116508879140989082825414569866427056229531902753478874651152039988965514116054509727270474387236670026817040940122629082664960599163368722717317424478642274403692937628402981090360854032203892340808089380358257521232311781952518292496493728543713979983898336314515776627298983221612584423954998414019768740498061707809660651087222887833558929783396488926404791052546726626446440529133435965228357985032912085256087662192887720947929111253202462473254230547690087299183520316126137264381696318428200216657502394529922581516535893434684019232855731642753960486725947788462392829567182033953454099759432932779736187393282902528606283630519786407916833780740021991411455386987587430607549561350027391562134732112103999119993213559659631444374866495832456439520694317243806838477251186050004053308978492468983198783515294399177064121344366826700652567877421283995089123497402220512223179802999578251476109918434790969571414214410213378176141892729934127228317038073059297543012040636204734150165301300046184860763242797593339813101297239318523723831222833762410316414454414367722930437603175142897702759433010186439427458359337469870835876828610666878437507365885672387851029901769623381333976138156910761251342147730089744909150726653483924332313443136234798034064980522190553252923216424398108997551171413835054644197513438008408661916977249962548861356736487169091246132314023637630587888774435057817071554823712120129851164928950006061955501482890418658593022396126825994783182910852250161057198681545917435791632151651017011963002964420690747256869234946507192724176260807069467888187309609515492742833827685286131182525320996070206880728927124195443142994592228578697316701265976074649774697641731583691129158696626729804541551171974477552140897339122192398897266581572754181532266710501306856306332476483551807043752272247110870951497477340895724404864159757203259713020850104848195271361275761042449570053181084837178795960296340816699967234313066607987483838255185408386631433882087504847483683464546467630504633511707917634198600875508988559175288897854349102320068052916124813658638390088376032399007445436392331185164015030327234055436456352979192045599756254287747254332528528596173561457284575642307293663878659347950672628282410028917248403145275778707394223614671884366878339223840339262729168747950531800829077483060467235478237384662678919094014855231625598675023985335839456626516701990744561806974202896716739606330998576548172301380814295263106553551533681281699858682380121579482180995435851239936483660820569366126795104720239846308667489543757950337942729923230184632625090396746773897500458052755026606686066807248270060275985271068823581997089877709500373289868180171358135228536534342472207379345761173200195312538259886761555325905376417506650694702370543288783772253755294286192915446069943434419015684260206870028571831934960057011347994322216274883264577503190099826163214704295293451147960039003686205444024969401350714365535211145349954441817649195845380312787027902477042389441564801220238778093414284353411166312052908882255435296353347284027849112798978076979262879185887948977234909228104123015233750771021356050957463020219711665895946292263388809390182536118395204040171460473126374374817674348625004441498721841110034004413129207668489442961205534871995406719991947979431517899496560207633830714090517468827940077189591357469129139068265684404377549231166853545042351865756303002886339008716455322214876176109810678486001146513359363695440590197264083814454482613305065783987318653889721766028744922739272383222744006243207222987973180311509467907746288089833759829168445889713830627621316813925661868066073855314397698431118317690145070255647282339747778633031728947344531594214414921390344001878022933111273288962912565681946952127471491343590963320801900907358120183318622706253638127635441894327811064737635593377255864903088977327836245141801256792570192415423402288030811152533755096712484091998008039818588217860766426752158175940239867275946894918255255382591382694121191911592702076855789142910008526634926175031343574838009336579317106612275907556153796139575250115941865303323846025706712440539583088837446513457457581167494073694973814760810115825851190702438632889758988317153161743743481533664255800851919651881099409767559322829618463611953277136769073444401096847959326820200815040116572483951965691552355526108467422339177583233419743959341921114468373858180968753428393437164450220041288353977818788218109326250596595087704144850119387539964075608316290953099287811873306750352761659909457334465080805117519442540247599445998250730292382481285064714278054195742663899456910842439307673643571248303113336868740881662196770572796243659967398634353047297983641036523186634437850338929202244603243430136496765253073413561624703456689865340998581382612934620920253619289093659836069985468061885575237473550896784395455033408513478641512891006262390278391004513873804718974925969836176988333464735517526031007858489394478735760328706120773701780256691334681844593339941213949011343320133989914617304169041596006545853165197757463222417342734484779673045665265406547125503596504104122522713356612433418883049814895542103020296895587433442450246261575217612201402661185069322809190066864124704024161227144278000469832152445738640188237372704743337067535958850525947948993390833163367300380788799045329676723652797227273245490071511650761945365074463174844984076340724475469092425729073024841434857699126361884759184381025777064439771443929751458616728835617914237434947314733239269889686778703535831223964133969455623777119854999514414653265737364606804173953160059252189062041233080907605576509223923706341125343286635373459884232363191712004272282510146077046168439043767869682659103315810446929589870687718400504102770250890624645754061041692319499992444642290882933911735151557251424931039795527619466707882852740474415876449496541377920391793293059767315461834475249505362439668865284522981495993018671576703069613873011322746969812787165258559338185907067039611259848428876301796070746239110932356453742834882465199265092608819996647478309155873830108180647297733506073826206096671871646319301727860806319600634891369949939803361947910590631116353604662901751232537872629455239332998224055576386020614386187359582340829429627204228453560610509011004755452288990617171757923445932111108017524281473518374202799082708437360642340172809416694521000815067577783316715598526356136704730693687230250365934150956627946149659045374933884721093340355440604037236123699713519307080419791353668775183183612349108576747868674795969089263453291581948654521902996594220697688011250589089226871598383051596517882546458334515964527753633129871480108250014477858600228328579625624897560707056103164794852973623637248964168515464493762594200613722304121718836239141854278379766028526683981467056835168711470523023207731708848782975534995786166000920604115233433745057193314127616457379553831937030638679563846760197193491444872308906522518852624354792225013733794345251089454153637100537980387720191876793097910899934659612439147980282172665373232247100037158330783253166246099737296264181540923977128665042633909275829154059968775011081637474206429654555047481290602600000565692075032169487074027449131407887710851345742948766768613603515909659949761338470164907675594050229921448297151341324312414949725582866035019505606420800031137988698950925712379182102872411090602813088070958493444755153016426151580306148220620553888914018851886250696075364158008403567391152819634969101092785615212323782828255798496560307835883399663966379271438281031444514128263332096940841700024354221775463777175017091516921790402408075024650808731228404612485239155435268030804651816587345791711630717094729417038235678593187328744597492358663636216210618852527608667360803709921750837811901818803691309918543018832934848754817458804195678072495849972255975321162561019887455039669932410203409030783638843940709806043057088048464040990010422817440727535667670440783970002516962237411814743442840661592622995674905640636574859294759846075687500713374122556301776853642317414935246782111939548250668117093963389351100952547478373408648959289577831596590869927448277470918701301317422021141475503573268375996643574809947621422672274687372409566202198346613015609621906066189865025633960428470915590447590208416216281864594844118878574969294355961388801713088021131180614172946212121613650779845044005243304395107389528496010856227298934315742393200277196920628812540181526060818457531619000293682707399519471424365250713041463429688136901340877470124055544277707637994428949573010777716201869440891927898417986863922129524725832876721987319885690090088438880809743074822654657010105992200789220089548376347510216936737140211477737563248213014890272418631216085186725623855855511403695799583892783498610432141668951478229564054210285640611722021269089420376845247074906383240309637783318670057225185821548581767136351170947986657815886687686305701656666564037328804995531455024373267770993354064094244832872716611644954686982875408295169735571630788775659683650622098420351428687362509439955866470996566633634780427717126748916586204399461186897623712561782429820825685596052712977827332465664903901401189450524620041256630127270460766491078484637964925819907255744856272708099789553742500153250999809391936932305813493261775330939413250548836863739406055978937515592742081559682274448945516068222745393165773368940591494459855268183424770823830322151117779263649673620768075021403824656950048018547105892959022705774749663407734376276068526701973530736038647074549626390952728972563262620216188599049501268591471973241102594927328904218829285015863374955563624151081645947470401658376509857444426034599567068714036032503272795073079500469290138806539655113741353265039294078340828442515227792713967123600583603346211115542852405252103169875615322186128858154308384802820666430222911338527926135213053490689219121270574301322037741149449205685872318652035304803808745357137712110749195775064066533208542153433067975501507410576117120745748358331814098160276739640438568200514972911629232968870988258758923820119828865980381940338542798272906016729918598640891302436249657054934036871782559490179036237315029011957248716373230482929864200387411392560696770230548535477786343232183429746229458941953276772819175812692729983769554958741298061457266310119009765004361251687933971302295926095470517472221252706630040889231739993256666185705260090599266514411416096493415553687453800539299838959152015491709378038663820156930938769691448818437846591143723925829353680471154899122429707444584940967825517725123103420843807053641549608739778308680226348001027857297706406483368184648983689212602058545385138759331823969209828627076845924148426513015500888310724305197985747610418381373073260638545887927353765456740052273771943528189377980201030001772789656564337799740206195410636693001335905959406417030945681190177562647480204050454560847229564765526624028209587231260604906865461983755267232876736598971278403194055119359357497086529131412372569417170025653866821307853519423431265755568998220164010347849289367764248628037903306200813981387825819799095730171049071635866649549775561121033869543132953238948630135650997323253306153679644661171008691154472442725921693879741320600216093613568840866292812709744528389102391533391465214878629864791739276665009947749081041549419905231839664759890848861315388565504464045188122515970127518394611776921526319819636185128764126537333914067099582899815126654820396764811826696247461853300314742115835490586166552577824754561379879645130539650491347800805022361920337361410957365509960365580837528925374195336323167396173877489338665623112224464894011352929707703672846913556178856539296079319369217881446346389799936056721040364058068991144244956964748279372408338792653155498777909211610302507886195787657529566728467813624504524837915232167574822471147713980487318263751196325932998985045515000410017153288329840101905846070683413963644462550967402791054705460086182833377444013196824546264596366103610190536712024067473649286428329546698551646845731921862074555778485456862731110997301473539155658248739493276918075093535798203591434789887535249701574288784172279773562414022514779649760388010464865976682114171921178333451970780217044935494079169205434601755509510797499710679168511701553451200599111871510742272397828645250723693346676869995097111694996546633818802850287091133395986314129577514835700499818771695997135906517046059831234069082827152271873587250532809443741303514095409932716565732415457841925617761009325423850335340307318233925705052785086366772167447399276053257258527581838811531613900298739228719097890243650684920993758260110187341764647013913100031978330888890715551397016845775126948213638345579208790807368893911210735473206024426128812035807506102831813388802675039002230035209306817071197672496769531030804830930829245331797787396730903139992740144851429075594870840717458101956510148454012326541024362977606336403273443401631497030355356954520804166726582962729417931052036146548810217039089509316240194256564769896954469562714438453796096633718736636175220075065343454497143265238879428321369384904372694336829803458840638655997809675913801271206082791451348907232270871596912385772963192979481664828916879839911347413205672895933998854860148985317162255499067273953175366953555446222275974654266884281408069965125460099511168656977308958916320383188970643400397062176715737044382920589497339489089419107049971069203845962822722824051019665257297117032774816525119101444516084919846781313064559096797027942686559919940885867052200907983649402039292190671277118266274390316624043763156311021660081750129812857468883914727517364533243766652626699098317793634624639115234626298651078637599260923072579388621242996891284372467461042476946617633763760870105474374481938188973382434991593285442484743723911054668004462624025357155887341704545353130686684912355367107872655202936004786313724580469611874682076506846386311772875644606046636562496724463262343952146399091081738225342500502213767040013223359122001637785453984211782844559533425734879980691956947577426569393232286057683651071772562517250144366355774901308765980570235837165326086809134629433387614411166143446876084526654215132234906682469873514816662765761024063061347522032745767269839626811128776065543091597465367206677984998794806875223751483664842347440268606586102025909849345366334913927303435725801150921482167630277948706985812065178965269069439480922715460128022630958222199645542383356573098682406431644674034392760354558671148038438152324643447917559236110758419584037971517849611414073828957591976771857194718611761467890640363231388882234407819268715974656533074817945886708518850885465501706998013074787565779773705209293207734030365830110551026258951864085771382094502662232780553996548537178608073958961704752399841372356113590345814871400433783126720028270062772589174507133137705618404379466449896231863032936366605954355797651486719594407713968228773244266859857101032119602335510387264678841881743203755210092686982628499532385873132262842631054217108228712105496873176656158419683828120215960794737696194249828170225404458236285416652104027167597426674816183325634513983186017363966689991705443325253440193184510550875127082119505849333369499094323453896174112789285275055419296458406814164331073232459791756157070387750753597719312909808589780410454188121197940054266574134455469528732934500522947315134466252318229888071127210790669007348334548546524903940042836763101024160010134734876655749906562004375056664425171963655582490225152960694452239545027922680272631910647843959587764472462347314666617523723727769891265009470909636170043498876533460068946804910131999004386390032730881590137161836060304793234042314946758856062663808881398736607475552245008233739708881974147423697368797596810592235825345825477625052848558544633790834140720503038312097227728030343324332749810240778901484681834126471912753114846004239100930696058906672269655504146563904080129020764235561653823074575405503067291884489709693764128132397673273355015615579934124363162510284282733931048774608002950989083603620111971016951392939353111668342480357822668535778459228585599506792425642157416336211928076176515838173120528064602377310280876647164487437538656189366026022384023589067863351323143060734453724732293102027291279740480195373054291413601433069551112402338678932888296907530417529850831259053289075939993272526564201498005697641781668625718829362090013613954908302507439023768529629968435281624527813486613885095287438611637634189708012551232775376081252867490026322708959694327189534108609693413930180913950172275448731435412492749887388398578984651212699714470590839192527461071273020861434524246456185373018358673413328379532446841819371533548717680939941168038230005442202236804080950377299038834842049208435206174613405450659232759584897242901128353000492024087509999100617303996485155030138835151878830007762349703474635852761057117256807855742337577103251390566667078860117804032217263584834287988422123575887433796620494733307864722346927133377008746431122892345236593133457979880831826005986995508662028441910775807964291605176247057860775605968801688107562615219591190420354638210862944242770980205748810272298372940479353167502597365309276222846415164235653009862169241713846314256142737290665186518129232785153329890646136869195083242312813959369031227742779707216164500291569292570479779479163007546192020273569390238342393165525086647214413803616949748719931578407126121124613568558366660942005554047011664762102034562554736057340075987518673081104666314958037604467419338322272307563039825842040535160106225016570987554625617801730174296913520469175963833527058340577756048811167715096021532149551068093271111216987502005054992746794369416791498764391035748308759845714190461687752190250714430067593445885185236952467909020002782698538771556201123180831755874542484865402657183837711523747713510113575118520729342613446202684798737720950108947348442584447534072909336505589745416979135793421733446870630000126850912178270515579019679012647999827385363585745344318119156437595152299475253491486307973834213051356455404774074022658476795223999683031027461283144374883270228558996671029974101853772343893667940604644368707745193030421084339931211279264098723625857304162795319531568620675657973392835572806857312966743376540673236904496998819658336723569474529055072559841826725450476133582565996066624492162529476977023696507395732585915916531200304735071510530283404820130083501841869747968657517964093225805717709064460374231902875915042438785530338719408931599168709727301774689970773946760514767067830532430411791263764802295448255043725009536292648188771127543115859316665358410609359071348083587865398886066256811308092251336073723151630057554591138020129643880274818124999482037020321023071164938484179326605516860047498487835994148546520846811718746971800458245624322664009406641287952547140083992499239393218682040622103979033239417527675999974653546349950207284739529253974290039781408595900309147257334990193226050347342896200244452681624881609470198598268262696482917319224412658828070900636513778437366657150844113829210233468564590431354673048880429679239731810383517708620034306385318207884759555050248518498333537749679241383999709770940847494187199749963823235323959854357846789460432796691045487454959511147805042464572394834061571163710762078259065229558256005602421547823579844421046908681873398619663148492033706404719708584977476899223397640765663582305056119963717864617929850433411457723161004962618915991711826216833311907597471302463977272792747710345932010557150559853701311833858495405896274676129217669358475295857375494800664222577408442519013463845247536641555103793067973603585207682830398772275984274761974249590732327881616812085986999670428851395370066189985024206678869292041218688581528156536926618748256224014862277094533333477589176138002063345114090336174799572307108450697116429631140366824391818142003276242678121552860665407500627888215382675119123877752211167699768588343751245152108329979281062854956116313831330345316557881560306972675462388400154764681343585251196369892465811721525810667691777545595354215657826142749954354913535230273716241370228423303115789965319294817730387694171020614130501465444141319209483587633171912569623813884138039325031107688331231517471150995528545773272495158723202518052837212274674587478762852440006607290967197695724662607743153697694833437249012918341681539547201583126109653439194923838536991894008191115772711917064542262665429525319906587869923422511155234264034949043503098690753821789821755696444546129959971102531969034289145486535781286734515901512054193775645274163359504786770329427788785461258638009135623712420364126245680366941888342304104434945935377621846713578980487143190118256541852609981696156046125768007141633325261322629759004883551097049712842772530450140461629940668631308447686667670342721066215024410789986285515950504061596969443575245597380744501235488765831735730473848588564104954606668982637986544127850864251776361019013037054809239268382053105413126502420262901338657829117298511694880676675759065226822650938763869752903574960392363285548343201273543747266587059362111681136720057346446681258538627700871012188198731719081839873682138864954462861701327420398253471490854014576360280171381517614930585559158929487127986764049028310866417042675352535782889886554571963673561714737276523469280827541907697233088653574942906507167081388450599813252601109393719616193713814452707387421611815087039999902851960911215411764460060911258611609410934386832117582897058056373322627880526032183326118283734146073786719945177621855537008552032613399758152903499555279429558895323646769347027134863746081732299891772028241920604432788765385767889365261031836817660950804770967332842822551638077502600487189329990766500158394230112935710992552594632296406241762712933118576483007390956113197814239398592922871048556472528647906722227685238552354493351619332901846912380144366470573109821211968903715499810084246748770968734526262771465221383954824567141660967379122762024850555411159169268078505417966209045926033209149119108788371992557698412176831306991670079920157777435497222845966761400099414492536573633217428720419770146785322577513460632985846493216441323453678101444986853068206889248962441250003785364200798216754457218389252871838991054745866842090676644089451914368531692280756289376552071148428892682411949359313550074149944427821702178296067284987066237618449422907690969045129450990696621843688634096744280279062456204674719960525186050214174831499853477161371931982311252026625178322442264351845826342951796383036295071471641840025324867427670121617840581861304692056735293364179847815757335319492783855650894320721293410616218131540687048168440748067549987620437384940964586089215143152211321385049839670753805176645737842045584190014376793152660352480555671974910639303547552184830760946947376780213809049051427115306003054036152968158232675556401341853174990148004390971634443184935489489838434563540761266210723383217345162827011668170814642120104619601672589246946050921580989954481762173482138245144251444155586147870072991009251621951423025743825908283210607043073959270551685901435469502393781469885428215385453705030834342704404205001654147689313801703557763960773549813324230055142187540002081116025988698574738929072496908701404473219639982159100916622672839277492741761850852148581580098445159942418975855885717342545006948368690683797751152394162769988073813668166482075871270385340386476120759568134491988780891352116993623313954635598938580563091659266219443294231179398057872246736062061821276257307121077414056009498182654175366411055138684165449623664305185533251620456667285461562886904377807355537364383844115552558276508403927126046838669459830608581859891477588633199347420379725993110390672149319303580162783814061048289516792388166135207890019376310827754619188962755288985582015159898877941644014957219453043189834482934720054036093504075285255960605548823857430769078995960148225549662773719318750714010962799316233578744331289483016437547180381125373009886545489055597617979186990796429915240352196308564105352907229188010929540663411185368799314703418383690368818593065242973528515832570678529018159295673961759055645236555978780274967280736329687991211856732290590486197612475896811806154624131659283575055110591028745213012537547534097349119146170768398576571835356598588546481173985287022548396276072263088481839242957303975798259329435991591236565035888351501309451644302880158593202521115386241858343048679803445508295677558637348382564533999346606325875790745007103380704641207908109712530497844846049968967199282772843026022804226781606219402418115664220464442642299177488861564842579468690235564010616379960087060122218857155777692874189265669761492356328720752467301294836660576636867993780156420546431078699236064868937668075604035557301148953157187000125442641642803345747780378076503121183317068344353411743879794993268271448737052831701093402640978647679572121472884349040218656780054873035947317904260239047453906831194265967935398592641958938325949240644378370756101460128392339143081437420475177193097543325945793192078573073196398120641221897879234216808822652344702208092907946076185488652012319951459132627071356360847727706948945717120709208994511834215010304560111291211990431177479208521185680947360997595132449369289898907191447491884092380657225224704967426304295007722668928636296819192757612216831742030418875371762129520458307642729016743904198143673682816791962149675862946476252573310412214892643310662462058106044922698627924956620491771892469399663137013029392606997147005421784173646273806632631386641809364010626680385624645884715456323074710726169174567972210710248020940444633114324950194299613047852438741246643160183118389536222733674520152416126439325457931022239826763160388167714943185746377760917829670894351440068544165547351838218721255362296707388471024252585370034936257726573084091781115046768390149537940207441012544688853391976754098107314137010673328092367031833109155890571001460659367234893461365136216545780149162435994138453715995216804791536163997025567498647810989073243701004474048419574191865537545578186807414574485074487933646143479319784023694901253199857040981687063131685750904051294940988249000985532477423823875463988104113906513797006876370986087997971289927384980294935811605389446041093213374160926213692100036775468752144055990332395866956844386575894806777683804809872576026142162927193616312044747005966547552929150426823272065964841983465731815495490384257232624695543274369365045856050159423786297220243679102227502381682179400072401893153410393327048452583048561993406668920694527899370297214555127857906207705863795079445388204779630831841016551994946548380528931767367570081879283916334548514363353472993566881225154851899172203676249858156530023588209893885349574731435305714114746507730338207806362306188206237736490090669282585462858002858240613938736036869485383820556503944476084122965520249599462788179657307937567539033994685708385711759229842610029723528664271499157804094511207896499832414845608497103105826670689955335622576091862799422611721052923817154936553837217096399034389459781006466168188742970014410750829051554596796366844093719336067548407198726047700334100598781032020056949500632628582091939524868628874404600052037812020513376904562927576329322844144263221214946473712049713772233845330272307846718046348043072985645073688175521989404664925429045688108355528013984253362755449920411969427712576278328274817596265234897607093832868048121678854572337993539047223413046483333731463867344592040784851620852995504015316520590560038239398402418570492362272291628902993708432495276970235814554903263823231271644007102563217811955479591347926033879498898038350263238498594751398909414190296850746032824830893727015363947481804390805170562382546190998071530122385948849924771004603869207923959211840910144345962773060370060603208174231064385378023945835895443516014002554664333566734688370037594972550727712423578814720064649298890356860244869120144950477452916999919440017090351870232353401206253672443925679402596104791013942826201079454140334233267715142749922723361860809363625127629015109807571725225401068859081428722087218549815088918556437862067769210697353974797046729689752769692476792629330185597479558921609701015812170945589979168757710752290972469159571638461915138452124109887873057142227897702090960244479091265751840973664547038767528096655292703297793426454654861669420583307972678741853110228044174774314078576519049919206331480078891932525260148924590609922764205021644252793988319270294531760066386684292519594684778568455650487212406842585841641245713714772374360323417446262937471565155349400595131043244733700212411154709861518560680149995286200338895334392541737691057799410132017354075118949721419610188065770606281156839888668215740439984192579232967245020093946281045377191203544595752031071926460833644816420217559179617499836399783975514705276943660176902354056909025059746534403677155260510151518332449665728269739284351051143678155010488701341827965360028664409408597749330082289831685072255257411459474477971553312945151619034954814525335143353109868326234261264893093602778200180836336567379482273469463145312999547197713197105522033000605138874666671638428396109866084513170194455073539299412136180561181651898311155737957004903278194461314798499113437432751635814426159469034997641094310350576723862644985845075063299279090975031554049032837253867531770980439686065490079787435764974454205526134898661847807731659534658974023743435589561012925161338642341898710914819078379844922193046357891370331545558063679472881100127205691725844026312963641391666190371982499609650381065468608214561518856880271013648666416804344245311834263694391547888164303777649120708361710916767933541872710867573957500730155483382305002615660333228264674794828527175964889075736730723556489862564183561440843454586518345513649035091393176185487521844754084754946144669630632619469237462250852366600136151762553966369256477108608562158310819042570464671880154120222098181936709069777865412335508024185937693092816845839183288388865249774305529597968314575484800781903678859707571470493219347826648738272893895134846262499218820698084649866835027843818616833649466393433961629796400439723423734034260854364346193167021518492295853314383749634296573002627494954196000090483274797481642560861172287984146494907064198799295154769415802438289173307918191093461671713526335443643929465700236939670763657476171316930078953909676488116883955143566550260061838815999969627685197571185531723769326844236572936133057749720388717866391423288606478003495840645728882924513934274063726538755645348470641422974143362501404382458803638011897059748764611759382249955417034660029880451448832336851258070401220550711042244062608109512323019974923028702293445480970798686664616778303425173239379037448742702639964050183867379430541605571025186652056340415647154961402933002970994179954321866436475444489964976863478674489272554061322874344541087276972724194720922279039702491009332691806017835731143600400616331949839547397545540932377603736155586516970669426697371644356079674444227001972278926181748633453774751553274500963587319527651576383078604675710948856308988988754199170940926318376213046457957564770434476403717643231512637386979917221679979947286617581603149163219584593752123436230803506860685474473797582571660006331922476802935397944697231232677730194197435739425069622780028556036747101961155841096862736610230408096297018384791924169296279454576673158195758770795068918261026648899036861310313283223932590851071082528135033891982717522034874649160112613493900033814309819234153066394284638443682982662406144938784047083811818381292924089142056575979677861557936548595608862030846129489226478883076964085737502433984920583685956578320720597121371985944227081684272831973752746771457701855530707327954532360547930588978605988594749868761396012045614578937976381216473217646231652085832407776836168311402217030551322495437575328729554313586103388145647771913075360410611926509033278967296291423850349815896429254496939170779714696374192624239199290490827552152750301231975179411287955654504147320446093875629703200778545676689007922036384861000180785648136889826234071361619742841928457469751127531489287657537035431573881164927519661962882079190112041121894748721035546609421671888220860549191599700465078953152154605131581035111164196545968704705911644837040316222241969544670998521883438682487361321069271775579843332775748421661664412425769692083956002294239694875731108140072316319125188571335077302416024111287773343782409611861479465814001672852791135546096981979134961493302206898040006154008762129008181828416688088978790871201884830361475420834037729209438983529360746721873952147482444928564364099081944940725484771206827468027484774441650481586883285898910392244678122415711349215679287608251032798913820146643756808768375256682674578637956478551097461395501203758201855029427762254261808630759446169147201829130075022295742220122559827281355095211009864599267149309339662524226117917416505434644966736144463105104528447788761483127657421800004496546851186696856129870839849377472965406933927568441776249841294263692958838288860945231637985858641691833638264315667379151851064242666178957959654947877682474145283900621558936291954376755451786359305665309400704933931897724961313674507981886891760617015143867974209085337572070464389076523506300609842055094172436714841142779303315911495288468013469383804001997393501198429476106833705844667874631488349910018726193566269727916919334884877576751360843783404401955148008556801176136287034540041965462721343227125396931127102617693296772831554237232369466082007914955805934036389289104386336488748273490522103469610350073918087588136057600270536332615008163360446030447893717639056370031219209441335284668655225200524603895722317094298486496744174141931960850559917343073893359983974548940938979252082903558049490739653668702468220922561006052110453798099484289679815927864407501392061440920495321331120091592528384905666686894720292216423225507212124443527830424104682416455670154827366346575696492891939899540159283691168750046510239801883758985008078714427362786684162065537032928206127835221560237767484500272043681835868778560436096788406699672094533688133178390942926508345475820877843327620680496153300837376465200542854427850738474655797888639617568716688774467595409903740975241662748737048147745871075028156337224510601307876198933127796550764854683918096562146973555510784036384208268822217824471434644961851699762653366847992608005159890708689742692832378481234518356907518734903631142226584392304415281864336481178682353775930112943622556301652687185111608334585215111157335622007555593279860970268380934610988203093487430302939333856979807696676995196794513129448961195170721332498869036756172527541543982511987312532651295896170094034678957618710605454798469284253975438721952238140752204286667916030683020643611598496895425119166413710062074828793725601867254369213940429126906525936499654304796417273623769027614250682687993691479153169886676459075913313688471780194245087886581437274344718957737460559291493951812839171152746918106517028620682278327773628199607047061390407238554529109192113660277526439351688696985546887355311390776129575396686961484061006231673684298671674859153748735986103418294576862272971723729190267018715115472753228894278263302567051173422548057047284959008016167181822201193940760429178443241583164144254842646809039481843885454270381333218976952922877782498936072868346606093222957681462818812163096187357449181403016029530840589960450284751064010846941353147488920555727609488564669621214073444437962485947757655306156891104888595074006566230903702043689406966992399362759266623664914366340829004496236383946067637790507867992924537966942365707841668189953409502472006453597871427040251480500643480902619957902333679384478148368346623395003053639953063062907610275878002561545680641568056264717782116698025814687988759727576996943487094914933381715798065396128482510987670573812550916112518120156758244978170962809933642239688947909279844414493828063726472431295237439339548933747721060178087432542850447472283664745330768444994815264287064922830356865923658270462663051670595407774019283424214621729087407536755535895580281472445894347991961809028983117115241171009161013842140587523777233125891548895955483482487092496604996338399722468266865569355508414528403400244262782136390003711472118656156480972134777114294719986648682497327149840386158500020864121820327676904578878823931936303144636736955251058546132359415251193500042846746850314147540769463649487344605491394790023808081665939272084369598326028899664758106319601423672214742748643908886585908808924282246489210069330706450319463348482295500783876505692954709932655063439524172955841502768996624457052185809775565283718426863650096098824341058328177994361761315285210112855300025505431915979488779869101365762320424929925133813403855155386932934481748628626862398141532701930771413729916754437792860776264801819959576943448136100999957869846183074869453583456914249470235198288094044548150553913381022741718190291150726202786058517798964429391145381007345728960684894211777627068360475610531553316424573379323672012260886234644097014940137394752378661597669131911786769024196026829929762732462738371081453962258014032814391044967526918233157967663139392385106805751081850693565280096535960113595403490677524408717127313408413808160336896631596158546030133771942814295553241886153723204511020228352839108218430567535603579996143137611279851372201058396683641135722259528096070202933847785156359756488048118018717159377236666585216338135648089075223846164339657470251379693845070840660839662447488516586328958360466903105183709933366896100169669028262736695650654402221623562658149353506179697517009761926309529533507874162711880467820143772772848901198967479079986076453238696531973136725741287091417747312723784668893173577634126749133412254053208821290124187576121747249415694357049155035497934204278072295286062300223802752953904219566060640738941348895368582349081272915978395978612485568014066672895014676428907750754739099719108708728682162249795955530411953195682256010495577797250652696746529131714596111477276885153412998506441143712685962771303954870072232654858133648230452897817834790251474385090045503634245239059159702008003615253640175699017090859790240886985553072665896033495599858161980696698646651613761304562730149658485573196695491958666972489793981499068654632565955956948423342865429041611133891145024057371572447201611667136917903349309504072001551012247323253766514644403682165866885540833685684880872264823589197853566865629825489536405966449300602943892068228898765835558023225311215566733812987016654281590830930449427934960651156936552825853211098207568151704959431070236286773617137944258826700986575865001647567929732989775847674449486008090848040739411065815336482531951736879032033352959053524001593595052706216577771021728471624332287760421452297616987576747832308469838287340412401970709908028691372997166168999556565354952788323947882108246803750947942580324617469409786872651961165356981152796083444833431962519462555695214627665258419178186539348483369588945614169754353625763057603783461991602889875263408614139247724449768625003748225214537429367518607362246093571432977310295951959984126855120274498960602674859056587791078870248947946718268131840384201713604081491917326479228481849441116473922678961931070055916560262685661066678060220110057143277715813840997153301939463038494203434375817870317858706733492505424223489300415584384331914517785441555704821233610149921460152174937470174162900465810178868585996972490687776879705677341377369053541481418890636357555443344854520611278511430053945218586038139791720089518424385084429691659614220924339027138332516723258730390253250032015983419271281421703171294982705107081661144624749832073371025296412698604700808626296850034214568661064811287763973137129205434984708861161974886263415582067837678665678601892047878125571008205872523831438971804256554413427736597607756191681841432840940434744811098147527412907110562934759068810200878445152255710464313913701951488185663779826603508630623615032706971347276628366243706083628619861665418500381918929303380986206686439328869982975303745060883989277059861763686128311117849695809200676401768836389558731472637150302679658922095108766261127354205735603356986542411613178516402070567755089263129745402052465237894453389784751867604613440273286841276016207762313373568600540375359057428484577433084708392077146713751095168150752513323182069616253463792855437558803661724545973126411211667332796944069839314431166529244647488058328930188854750972459200038415587244106386858078506734632325077258125609229557228603658706570144998741587528035921911638903026282974952693253577616067344171333577964857960698043637350214618358008164993823914086683519208229685900801645478742972124764350424957883026209637004910455786806837190570490178173726285838557571935480599822038337444577974434945677264860155816795585681351704952811954432966940254746069672333051770938672974811817005010314946490259923283818863112855881512528597879395897767305721525259576608370780719176924147803559089435188048130118505689499623113992569231969960882069107726508031984039951256664706575954123668652514837253202607707366707421655504625240836319998117727230351925968944433610756701953101986752345731965616937187712885092924483318626634937476605296467620483672864080234814000189634583424058792540882351510288450831557183981239187365677864892719710905148284883702313189278665320773514971553183701084067102515990146265828474731146649277426686381285082518677263353735265976068180110134913593536461525900437206972180535181440812991435158086328376688087842977667909808034819230368361830642855742463025314482757431833596200673355524873770125312397448417276665390740027029049722790954146819562684602178608546009576836521074673428155326954485010633492338796490057093301851611147786561608537623667254258951903352716283258121711870803583695890849062158053651660958474151194253996841267302534910011178769070348693487194312901449000797124729173081921158911103393405672902324231134556771322379735246330437969868217053051089373123868449460473044017334510517461058814811422242459308789081712079195879441532589537813552903059668447994667295989529819661315354642227773424665285871956648982867937204531802691493788733549161699574609766127530902629801603551934274807157871642794886034048978518033780788795663857711559898466045601720316828771996577610655651526044232571510321309387887705639718969070847507031584335839373621629822998958289226772327123457691283260422961167891461107822988709968556287968189039519841298731071566000132054093064172430915465466783296903654077506619550896762535052830915108469018125255996272724129325051310887852917425974087470317796451507183637855494266459822451588947785212754612323015486305801481566357880859103117004116560051716454686397262714147193013043362042100806132213007583908495554435272303466923198235404605060787229514552857391401115062076256195160148392013388567434122189029600189316675642251065675756030686128705470612190146284767664457649227919792628876018518071274724614289291137418677971785434130797239511687638999940903820494092743714750950634859469241952948821196858207698245796542349286075492156036281440475586087653540908058425893279302417659737522696899804293423533588351275677982796959024254896561547042041773228812048898935827884991268714542189854917632187773078413993492228407803156526387499070946177811696917797586246185700470106527435752099891092681224693535578105045562637725935755041340435482206706823490432581862315570900381424352199921537226816208066646285283112395521564742865288977740057790938369123908089550736862873301449876957110198711247728513525616931858120977462522940818624306850205131539570780713051026502735562038793885095236952037217881487057844391209401763959687982378977647828241266906693475832968315296397239244593481221006606727932387575249716075461152047350474157210410296447629766303005203412015756548123141826189312335137574227806279128973510330185836289851865380781141307031692837510543084211989641539079112554925491441264719263165096614325947665930816415846049954035995382286572429442732896229080323372329802909686879822404543745647526999621667754788515926386339194120022804112704258991150388721801089740366332429077699035791406814935316424883074825692061300182342159710798931326186738226474165391633360336359233445375160727710295302199545185383233052929079902635801388026526739837011873066786095436775402174024139428860106059419276609101982103146359380187515068622303381853769822095420029301019369516556036382224663970013856629054442873297297100738527561688609578212428287258413149231718811561396777731560250991832575723798197753527302729271630329075027193903887915965552348655925010849180530766010347436841970814084706301124470284545129934150392261777620230344862381024009482465317554924836187886816384365322755983990288112087420146999944703491440892111879330297531437966244346788938725501614626247371065377143875711711354175361424888312933463126030985365579920203175521507732303683162268293128334238394329724947244417240714822220281561888124561304986282758070702726890371379241907790560566605672690132282908888654723535411290938560369245137850398307917174984141507734047727804538451135791550304337726184964380435322934665448437273408706068779077736076353008962221228600449409117023576140817312551706124510453892151513218028496636257038173554794964080736788137147782249056011771097584945515226026380903845901918171294447276466823878489675307027729777804679574413537104448806745465810122773184998917470497505300176207726352055385781118781946786437604359249358065885832393423637810149911939426237346829003394071842811610040449425352683550661252259822780261871562753042536241360050431935510147514278029032781120462104057234479049188504851301462396724069235043662114027553389646108450381805027685178519778900017037572154691491591220400845913310396549694315187187366491720692103235467738332117504844984863968836247732630119590365968704016244873102495695847835966319339458921353026582232088699339953411488128109941755225574000435754012454359256253417661128882701167544514096955176705607076458823706547638024995523800787499971458228267438256263408958166983767134516045525243570859712137890703485764110257049782754674649704783179633575588648521427738128599266914839362366505610790668870506336195208383346914434108070598815317811246593376494438435356909127459317042880654495152393941722313205521134299832290058474946791485859998168217878941985321855766715230337397792396352354936891753489860343772849872796910510663659655765378361443178569896187226166173957814238699275872644104503899920530122144582669328082851641184752464556640938883876242054035713846522242779558572574925790958994040139686964280782602670042275686676139745255100130833016290863112324460780259694506680984437453397872880179195326441836589205408590758890406680639355323479241583815263274647289651826227947427405302582681765834876908781751864640495285509509465455415775444076661150129652945420321757999770483958614409422365804720565424408764872470821529536386196827460036373210266970127873582674531314507402701837623445847425817426307517917160490693829094789317799104648509185207157508051069340867357624263584608562850253986302871926901192732567323974995903022915668185215823240107109447752782167020744655292754056610318426690677064544666603002582648863914046478159734277085482260003378744502911703219099450455742209235014453857160346611317324074404725959676043330479984849069576324082365021638744721546518967579918607296700553955610164228873167400388652781013427593617946878055626645000962979002883042342720748099808546018929172298831196235071244685683483233841586113791088488444736348318122674193997855640404360796668115067925971612959726627260018233935026212974511019725638711582029547302803202063686139005373671439274819712169986505352770364681125844178089140863060414382188406881746520661755564742971482541408243687970709825067236610665417797921672366983726697032317728081674411949915617637787457875037219645732077277462272525320145388595680405415346589542550397755155132301130381601633333257754345703063338348778737653323105628094023011497874898217426652686484782290329640054762327245854383106701124967930736191548913847925943736171333017612498999909832817885173997503671372954536545975964408034789138316821081790075484889436207522948809192774027332309341433882394591664855759168885494333112298670281224475957351395508858001577582041724946467530963437103804984421752531011248629422465518722996817456976451934143204299443890842503737611287393573515479550122451868944045691875424031695410478725761993297773457339246888591815994672989615822724803250815064780421098516236255451194637447486835584163534416187856991935157108278279752470380770752467501943081690062850197658597242912858106735140714802928082837445997538006832881715908663482449150553558226831716453945263693423160833077428129144382769523667579319382188841763580725414470906491738853392138338618857277519642418686270061147254512034099523720842834691092773628041766120965761390470078212361846778297345400389302518628943981595424103086351428856095794626390318283179202178822490421760343565498835856249379412863942083742164022480076353812261406729096245559395334408336108309224222148858506215681984534143349775986234717807897439386442640544378762971015478523211069012124871868791375715632654774061189793382691398423850641368472095312935718570006840276621262951011479386298174239774370856784044064970634183709676935231608572611298108469264950498147802733364230851454451412893121737768886905215556268845910092715648920745101098844415443045562471219980701986266102940484883740035549958543657334999187340729921209507338680449343759012714252348372547462625694108745796888849129915211413158599959531260732676446634822738704821912144271973846825431943612191357102178911323547418005863217055767878261052440421698990945509405696405350758955521715429342139439039676883805744736449601532696131524898670252812760309461554697457254841656704554871559044314450862174426247599237597302755119079573183349517822437682861731656190845438920910592029020445506853728984970387569687529886895469553695501699804119789842200901227340747328280876153634419225528303296779901133999519925645814810522366033400014427199716937092236506706418809361480255812170111104261140260826951604417912147215074485034658192260670691241371988980446571390883595257406285671223302795216598071120394875490485474026014867446512843060201039716472344825952105998679345294661934961974244222798979744168768897811694701515087098646228550142548937014146908059707889063818133586542811972195365043968744293490899007421404727477136335227393424993831790583707379791754111355979530912192848152187714281853358849998782433889846150704286391710786819160202174660795162427699687428865476348560658891890933267846995864295370209092154097590800865946770513986606606958154729678938818839898717420542073499579713547047297602468999647759014831096607175224263337663668750448231912421076070271847984709326871796108960386968129315402265069891517541484291675185411373972222514755072119795842143004580462779763085639654284045666701324948898405059327316371955902010605633005583784542767176584035951468720302399178121747500187543986783290535572755645029720362927011716320652436154368799843517262030913257139815553781542095446053122339693230118363260712437977662055287896935343454568802042956423629505435741730510062393640127146938566292312995133756053033562718643919057118350297771457277610384682164417654304320219773726452583893256143590280224083677784087593869936365627544437419509908925416700576055178307632984368565929543003049478072858818334548799460688342035680014530471428399721910285790068864656130419736313022449094956219152750156082346015849704272286586110338151044804809828125904642935760597166154580751232594498192019434490971052339190535591385504587720374714737872833969331569732111076690014301208488780459858319782759543008900332522988679941635845687142345368076546816669868412573376731693405286452523768239857317567423578218996189014041453977384247643525414603619178795677334177747490544567686689238264424328737664129946482464022707079621271733177272017873629273025559461462838382345800389400490438804161669193937005004947522866243881283616073414582906565907019425726099578202056319024408341886649662572643414198664441995778383735247992422588934383060980771136576992773583635651796702353287558212461201712739844017426991683408423219914654200899379299787161613877554088651929883562032250794222028039945996728963924451791649832188881283112326855164561396214492486601129169760590677475677116654070906704852300694296934723963601133747510088062218921612154607133707145307301046048146353018506381514122557412608260094372580591937977843976709390274796469223642596212014239039908468816454300084478759966037537732396510989582042866254400631554157431819083290684767050637419060693168574594950565769226338728366376825490568203687177478601721705190721578320002446861474101355747046840212653771986833481585957584956381074032412491423169944708235434840732606410127495906279542242217450583085004041918873924963445696531530302246625874198905554505374639261308092652881359322077160094082522690206325021100456969372750264418971799657580102334041691942941541959616421222800193518381403744764971355018339485683084288387018953197185122030597386260063112198252020826769740127513871891550394765681714099445465294736680273197748507842848184713665040037204362867969706851261214556237749379836426998955184588999651544474121135357852844023464574501159692361584334529568655481395346758649470080804682439789097474707664990653838602645532163805672610579588609623915726277479132253797586118667808461282628274802148677785844772372292901804750068587012366758522668567478614285994820427543837601581345033611233016825998159526318590529204546394638297988593814413591769929766769151436553819509579656349978556588976605426978775459842949107862742548402128012276345675528217492172695019727378545380199369743019678990430363719495137224823114544731853890963269281711567378676985044365980151407297659224757536820056945697461382825761828184448785196049509703848818440727313815601465587210514969799726138517054960076165679863261235136800219450360711228556579137788465264473482767203373759427376605190308159050500201045349313190337748637749758299478335407066732796459222714848608456294412290726431198387735686071179958840526352145419320009586752634875494737062449254089279369528094901612958117515453283912812248248480220228875754334839405297494775929267995824813471418758102675131009998781116433559987297086973259320394158494960693455351156862089684264359475419620985398320124875740549933457199664232556657022846597417912737184889851740888465155159956912370982213633335258360083279516967650111621070217290647296562272814285442651255395302578956293561889435573639146472233639570322548209329533101977405622983687872259105663612678994169599425941931173192813902818134394807246831003760340719589034125016880668707830577243706726460006918417251898853407083753199067329733082277065848700831523495141575719561129843364972348537765914147062471987067214758577583905217121285122529636970409188543361405596036286836222898124187528483487686272899532789138673718149612339347449526572440623140372979371800797585460819781585063639640782247621919211329160312171346200831526077092651993220555008533850458565383079250380680526586394126707030152603435531372273708537176878126329850675300300663768494708011443470743182840022647433123592105958816386219295003950557007894053453958226452846854589617504805903324418091979697749834850057749159503895707826774627695554381642602000788978128506387584045329177773392330117326427545572842855818974633065314449563482374026704316831011549456394881387402016304332027451401285652153595422576689008616699746551461425378214348091144458169313163301439412364939347522008081850479440464761254453610764899357327794994831869420299543294239466472159018240019067607370623837974557396631617814716948972070273102378796541234804577592900590940058520792922156041227700546622112928437422748655495154499502934626515508542852483372294584429376108984632152192410070948911690635833058787872326385978460177435633647249393606696318231018006775304121880790688968274749314145585249267104328270204749919063681960388050845322721328026801312672529043229570466485043515170379379292868388074642195683843921633754065075325497034934778670977323766525247091726719089888097241657297350993673797837631396181264733081319596304756108693296438442901911045292545119129671049180972067286570133005867162222577291631611547489884263479274344437229257067102382337915367327700323651928590421377134552376602743389261171135442663629105142169704916792217064044216745787476993514134971901880524817386860294325744506338683558739286551312447748128405864232769556942329457760019526682034802032000628726173487579797526091638922352377254505959458099902042965036638594930568855981857549503197879110436182330264910565797267325017991441235474770641859724793739845827266686318945860890056370492731661364558833059251188149323132210404822712981242466067593367591531925631866514797230236763370480914660954977968333579424265271816158630656387329433723092459676169493824556290380853995723466134912492313868687618446516081630442039162386782891202992772360978673231600502945233872196488264841524970114767599862870776500626965397312866518771615937067810806584026796496839135628662707535820816938001024707122805013532464580950849630176558610947497572670763686604108393653827236670586008707669953263324866794374577383356027723987163961328512393106065521462482496900755487437951817645627365984193516965539891766273457910974596296692371661714066036741096208540845789537158850891713822723213861607900581427376622986176694150348680182700073492862555375969862546204106955986160039991290715993702031235427352773417727017425046937693825085157356971567855349892509527831093985783408025190401614399640120958323177829360220360354509030892085967392470488888252500364424281566750550815116194619344561663253694799859269932368961404414067275098191054911970050873776592275882119951958900466833744360046505523104254059998044951076449798390123616104095579933598818722774224343684292881729851858702340837022214206610308003692935234791859159635285314639763091367453361669393668961947538636262951143130706310279355235335652065862925099550822381374185742739616137622327111426948170777173711996620898187049065945802222038581024159873445922290071129371358335023244405987922735866519461913823503272467219984491466829211917776129289220587058421957456012800936634342336373377444908908850349154066008755855776287020477547338775271119542606087177060845823756777557838353983721575542308616139377719603030193594856443293280557280145727792615748090089987984783585243770335439263579509518673736983805639089461954796964705478641938077783604386892541694087888029681392434235344674165708749847106064917744917547690419162755389641541301344254642305047504662794850131891995000196889839671428279854084075500357012081153326421492264100781654051503987260709036576769288147971444047065823165184189536778416722279696075737082814339384488255527180040962375618808334955288222179508248820856118243668434525058449115140406088999234863010472907908075091899547881745286403356972031663455362036075076291236371431096860641458239290039237910720072385134233749170907197517270044464513798325896696329967754010193965099035330627029832481707194187909414686793314248631085053978972711188730466680388565042379955308133548528830801849912870944240892373995231543958984878427317202213330746468957322012249865424117830636438478793569221206615082743154933546659360277581707368522384914204291894707983480437399827146673423304416276689226231049573323688338058057162825422554671254079884464956768048351281960664199771690804883842029123572957757130222030509629153873525730043455204777923631234797558925826653099680528542059762358872607156937929271455766082133992992775599755685106607611526286349291806952687381666354827646875170570761994269796876324313407341897380798621855470395466042407208799173558619052578728925766384536774586755363991227230514803480246270682368954486819145302969886317605321404760448439277424827003672279670428903975764095061163262703377487518801253773294223942366453543807874364097846259551428763975426189835143143072550512597583783444883588379180518243937748981823244513347027046118588402286361503300345336600003983109803488231821634193136598700841254410995959810437317072923039153009517522098864476093426458065007599932041106655813945965588762962126019948683196302662400030195315819870118620143336492787718574273430427647888874732052191451145121574898265317086567665040134179282040762336164002046093647292768288919019711330374955864491091144614210801966225232106375415048020068389624462087652271949556483003970707640530000859378023258571950893467670253146588796403858797783082863050074751187386582168292528123434679552585277939852814874179599325284669785718577766265959469336129658011009916637841975068492028189237347126704637498811314048303173823790161723151056747388731511074353055905461029836029283220371293260538514937585068699991206595188628018894127703164335918959262370672273572781917522456921513458218235026592144954628660874749583912293301265439867682963003247442912656998852031640615915140383492847827674435927236628328239607176701225841239824217036913956518614060090577201604351734057685943326829173986024398464498263793426575239409282318625701295205485344334058707766910658576694271828261875099155739375760405393501528248884198558290240838975264416576304558064279190874749328618871349903468751064859515035584135083211544433370141764236879588682114375366455643725623097079351363557310055821601795746702304314168455952356269109045836435037264088842956438294856126078615476284233430540806181918979352747846896323449526402616095701527841063780088291117977290967156043067164289016980163445943625887968181665637558232474188863862404967319354827332560276400735619021653443383990248935579721610802096206197359406422540646513202003782881717991712554621772435534330784549565104144838137227946898071595911928526271649278639122938709088105059091961156333470012261795980252083563958830827190888390375325659017468297560237014627627637870644657115909519560778118271937215140774338491946273564017437507307307613565487075681878483259796649614312864839181712124426437040926029043694103707184581201513329899394746803978306712489230707941735831481524261327380683338958809458960407780737677989383157406847565310199069886335509664451384176979423516311501841517636553916027883203277893839139391249962144731736937916117688294517080048498831733899718749778422212477764098665320411660319560652797116968904328511534818319121431908701322661469952482596955035349270141704682260176881254637764366746564529735812202046474642630094199084413172480819778809132985900648863413599897480998048949300373032460206386776393213548861904815488660814555518288919502147049441525690960192284039678943794198939756580829432158005358328592845539833213643595819044218974913849813750399970766454421436962039509185663553935294130326932048357176024200338662532981688905409214673956388280436682747973676511220190793146876616917967529390424096409483515663325505482517080069847904261306268186238267453744107606017511092832562063944748667293338413569895574216768287176793275867116851007996631660213359534092529236055781160183395905362078800835026249263862256068188461825187374808852095347577892167584616078377781027282845110123198174054201324037582265013711837945085690480961232874022176408604326966064653569773844017922201414748376717630902614389577428492791185449694262673031491536836312560872356600483798123094973659702350553679619175067047208303190520067415531704467760796563630565659846219258828129517766783706184723743085983071660756096585768530440674699494573462384525275951103311464500858789049994931876563889156842705084869646221002627956843059260573463794357876250984736618100401877493705607007346029721656735441810119497796410056263742648444787529768449113488231473934487368373431062366655100550999765772890334754751900850602621148514450856178718537348192656161888883535860017239134835818134803302365950155757125965824165349243985722589888009144735967057038896649815868013517283950853264033365204060254033742363561625268104074869295422225819843433182375903872466231916285266470982438014048107747139227726037980370850863150517013647758329476926344997660326881741971168240054899662018575718405225471647374286208726326353052005078934353645257595938602364717414170846277215854529908488765565481719723363546452752405701820772183160289717883170324717519689396707061535333031660096748477913200068043809032672755763390443952855060800871716372325031670497985508864162286411604456097808245207671062794191517516674385107420498648518469627721370429800833366696533283588534495886652742892692061068945633407408678333758627611405015460010834823475215808539512035482174659905238505745999348688639315017625484358159934430117437105337973514380640616511263908121256619010049812609261662790973053435933108445497106501090452204245836373428316330712082977517128131083103827845842487274136932123416888616887302687470166425938743709899295865803382307595492001304508581392013385734839895261108853652876580580320280972609435744905261310965968890484129908681892962794816982689030620011717289708339568712893459279368696644443943148331913654309809906283680966978702029775416501104579335821496762231542981506517480152912935061717216900743673733630488340201522222256746120907680112012740291054945969470862720977351966938446178894028371694067782200613061085711072949905516470066057056779335304092914146332784078390794086387438797788362346820480324587259048814356710497835641396337106637122063547045398170052860682805154281828587003867440104287399920871891485964496899979072606023273761272139389861281764565145868877079629904401360826000519544463329781502984777851551985498094144712558365472253973438470644140904048157288559872967953323286883429112542777640546067186799394925626024717218507855632786948495899756796939836122029469702660397022103697592046821920901961429047288338113345401244903666585662375540885507896964720239578634292874489151799810053301265878772073483439019830905040020187123141045512166937068901054025450592841606380250624462132891303051270048347488896149174982205228845688058934718606485940558992079969409720777456749997807670611368630050162785497941912045020502208210496794248321286098238870697393560445549855932583855102167494188954697993221233398076164261092791129875035521935409328616330564886810403985583718057601351075351142146855298506677094382634503454672071120457608540982286124066525183192986182005462887561315687166485439902202077018807979939907925646605981348172017007758225960545317561150989339665729776668771294818395840688671125115785141978099342053503218627930956885128790789312725229112773219312740013907972059205483610714990505494015014084651889686678315883177598638644144271606946816503452584178093304723048857785273394802516700376350911794652861920052977535852447618725142894109897029826105024221705955019759513003658849242301572930221752738240359928874648625301121657525779641723648199619302187245957054757544862437019693734582137169763792486195412524184285567308094608103201521283750576388487665365001782721090935678674578820399312005166727590762818012568978599283314276272259599665618943499886628091620913473207708062850159915178045931757842972422810498480829825967957318560242142536537425267921673640476745128292665557640393112903179450674013571843771534896525410620255190468269823726644662092242985326283949876661658445386897786154186922163741195456962623771215834024793484443861317599864969889581650035694013795268177429685382074399286708291081571083270388727959775855497807967352630868129934597012012341957420606783812899061163067004303599705518485854563321654945914876021187808326003999408718684647510265449555398262303744712172517413140654567256338758224084987495331410892096331764313093353805706468144539407602985696485017421293150008525667631234836866762868203678195242266093065980869992435642225583011170904569184579844860968883485784657473666703329707470339646861356889232533305197793299603730600121773192701715661081812468527118486927257889196452139394120201691549111668868374393487894173392217911535764736012737517127773292716290464582189374993066324212298927807726436621837774466254068531089083572695504645787224548480382738160194264671545385085048141073802667675557132963087660252441156851257791415645012906349185974369940929280957639526843522827976661732562099362711120007043721802606463644368902089179694870363175797374796496832645097908045409167640714291136246356716093214064368937150903168887172461831125802048981970102219836575471935299323964472652435148491755493527836884579395547306165394721864505169716930208318395327342945726301869482642631559558779544228237935971542225588511364741630822649268447188209245486119088140896374557845176502820318197103670466665692464531042248925022675835134135377005428423815138766218485755636736316159237892748729012112617985662588162971674735740723398941626456718028600329741248583063149717510207559054338403594945894966542679205350643529986222585671140061375882728085108576243213137869806567610122596147425521349946051460109429655242922178994143760573346136153721976893605627722439471499600603447860950342311361207113348121594322237528007455198517514298091093794513635314668561780370850646779865629550531488698722600604589851389310347381550972912515955422664718189140063366795797774858836433300384050177931191084170629791292786598956818993416865636945873739318335077865007129218489860504906669857066009648096116312909734206916594707055432227371789026797064616968513867716782182669173079123158255665557434140715639443405586100908286827409444571769517886738918758044804827312534068330624134860817941954580902298481559510856589408205670674378905306617257570246158788820469420794116052427968127743335336807147743950573149754623641984948636614127774756296392569072495258865056842647353541305146152029768709056692311569403267000035569572703123266597723370303053493404322308420828702744306326708287769611005937973381715223909485867058535671583889356104691186545230507855399318789255322755628912939431904794981211895995787998164079525615732578423167436299577129769383882450127530513721785647579676990565471356809542790001681298175575041147889331886865231463954364460446885511641597914898010919362799657827571770051054252373487171507736877910155673010403423079487847698262412935882355648094418886592360719862120783485498217618057758767114769973896805297363499084778228275674465857620415709968533108472070392547836258137963882629639701006648708580862068634222178780631114395612512606829097297891585308347670149103560739113835074816219241860091740478138628139041945335670715519082181640170567218299424046660390587240109023290293695085890004138669314944499429343436997101591253452897015697926539597329243604613390759327936551565011208588004023888913517586975076852831734470225399042458447136129288821354405280409060536648683260909494172344587345039333080327431755885658369590466288856312994787165990939066540210977348700242306620890985096992492908966444504935173001148362159958212149888812714339829061831270947702456912172124375464136656086461362261794231594797060489629724271301769119513048392193852800544550221159348288988378609453899739389066540165461451439181072987913727317035685230809852734352129263263213663343405866151129121405752245232991641889941154448970149607546722958044781434701619134033653119426523524029194269392826281972889994696530140827798969117693318914111779720050451364233332862616631655701932136410729318689104981796890380668988153089205420234733826914211562695198801381318262235925331739667319050892143958128756968620267724034466932662759543366796353218845789745432782180985052363760976625618379641093124550363327732741398316134684741133795010106584888719384492817272021377698979469917124406611652008403586661034420081221581029374766951341777188454029860673495018417252030884238305896253029531789287395058051050280156515799927183527678884100564491763896301886722223664839710406706474089284533388017206598638168312180507075624130904044927472644833215384759928185026612748453945469440380689748832135023778718302888595384599178352958958194142837766148082893485871097213954221450523805437364675630222322871881503987089447169828458741544904719836790869025403282508347315028228543549007817107063910308524354102606294044213046249647740061392945901313424525022603759826440845743380019302139911326257319438476552177295046403699600421724697511865632786209847793187766244358098313499699067719751954609227056718351609577887324082020614446972889752476514311747897806411084783022573868177547533834343428651204154854813504093318314612472162776388493855312667081946544592013045197541982259810690592085573041704385802252032344233041639631183281701045751696577788816816219554606493909820599925900043896167437646563052974277463322943040193363179966262030001567134037736985880317370887271569590693753458650340418633445545190180168447931949999553423070944961921822269252934246789176399119717276619963299957645848903652141963070290306989258237186285511130593173575078486802143020517099199240689271104040189222663689959410335911163223843403886289969920399360757198021980077385464235041163165741550523687582361544852381931956352050328235422912812267252067800611649878639420772312121718852434529963379737122567715472320882450930851314785003338923168691693786732256584926448427813582863692268465685996046724698555204142079380315340676913701935328244603017224319591907298240844064401222533471174568199133961679874780373392919600975005630413043248137862412803313845183619932946238090416186907223967344390426387002857404476262947891573831164525422495906901896858053605372562208902067026153637761501580607266314945413068672715225089562309107775412815832623028569471255396973896458706743912770004693719381447706322093473551227641900487131314585370869222779651632375347470337041540146041831018828199820713053346035948502236030039620302577447138355901728067041896786866300940567378903140969828246363498879882687725953554061946165739724257737342518050884617541590322343562031655541525320019940838249690090693605467509365045802991687666146171787549245922031654578045504685334501913334603860837090430780253725747190833636381842825301601658730658348099982948682442555525945084819709777280833484282395556082741230282296802087157396609406625604307034878885136548210748321049082739716322926175992914806424188683684047875563189045609287499151354526151348661789561859447581026285156594587791136939301573888222697779906672038742712096404426735573967168237728697367706306537095668067367465713071722001905294474593385060396653541831385199462239829636237040303046744714723069664630459554268687875271510234304094096146920505440697991605698227948146531466681665348237707355579056525242050714301235750838973924388403374080575291340469008964449511471394507349189403191047312653610787559640489983830169257580277697605129383721673148630931854095423014845711405061918642467362757283613743493991483323909750376568996159285121392365049230492765840091241139774917120541113903963656889523429667304850989463884653908881825781335018235834194671211601502248572191320245401575297699806617794554431142182880335367301944413855122018071546252498850406792119591023454373578767110269204211693265355914624303681397895608120105063078368968211342846728300300568527740887719679688249107748792306466158625971464674453531736348364474975658242106262508312392733901993520358515939227055789119519048743497825528198819641993269709129957815807137701970429996837172500310510611604017420409988793624469515679496852822712114188013168045928303051612887670665965308530040075071346135959066031787879819040630485247647213085855058546755716196206587426752223967304551348298975817250876645941206314300548946857935421171062097687868211335677271494201698477631469732119597863516763392200217758526868880125191377765541552986565528154041319541910451619802599801617425533323371932892006695583785678531864296266464215870867767559135873509560268365071232559373149197285502280316855373802281749097956919688960996692759093878406547464017529874316816201237837693370475426068064428301857896304673931067396381001780049581475370975999146838656620971200430025645280844294972416577297367961608350544544448095049244795809491879708983609079777694978331284465716931351954000835231466241801748084277784292921010652980785939239364542863835880532629077398817367008839305165571667944055409628207640044122054754148687025910919210518634135051870982530104383263547276404717013336921930139758582210092821651841094248408837960802899490316603461069982344041411816371997352552481459583180905184531103639970352083678757111397327731883294347520793303126188538196824614354986577757798224249733476623263556155969109155066021446126944399247311212544073589429990212535181880975114282913130362445497962348611553352713274443101837984940159994478472490546023496180282596294569492296060709577129004578386656360310382626336511549254893299226804188096701412511654736892359790170861705593791709600859138905561487020689892358639685107273648110218599861068478782406841527756193334643008179264777861804468182811659392886896753044272504182992310358222125761044834594769405903942997709612645805552354575599504732470046620838673692290540642777701499934022886544804133487711922736283927014882779400954429297750202386170017985390414040794994182628211510009949929082822771719059001371023479198274877959679473439903311358069369639341205117055096594287776290001434619285386294238316433949194564000318887843630244418864700796550476337752506799353401114876240209245335539848552331728956561869002068212868675732044322804626016395937939351298877205200328251100619612260500575267016353314687218906663944659640525456120540423463645491143532567246850015073398865177062930717530740662824034370226645564633857494679304841744068609683263708935008257613226298083859538068675350858721833436884178442301518627924343907073250936032646321690638627808813597545013302969638801306121688274314045155187883035109005969729717958709937254485688688110407006325536405084466169881125383700004661804720769424327038032862664375256205601836233107021904368733642450090750506334272063391541286925368926319419670655715735651591979957831818991634495922968818146279691060856834196016860268763775548797502353517353133177066360306193103823038870282797676357814742792806873509791719394246323221942655860438112222901604977077145693898358718507280576119035394344280299330517918098979054474972385097426355740772127889569584622312969095664332503053492222597078406125330548072391478762256834381894284600920928245009389125957744654579794824212983939311181427768735463558948750680160245847465991845994798718398648750323865066513112116801702134569548219637447139851145259541098096618337070970558617569053628105624414361668788833734598849788695183456499628289505687060918942864142994314934313314854822761329491991522502058859065457058262561532255307964382225312206820362789034532605120058261671096536861658239448679921170668067544138624346247924693508476140284891759133400114481989675682068715298804798645629955203699114299887288568585485806037790084829349070231933929380201406703435483898370334242370608763509303487067179193239681743689841624678727419771151690904146973691783308386785119440317705253129290737115286439615181161288746713124315793079370271774744627274972593480538379885122240749781555794868545470133868096174042045147516847888180754570884491025546834674685387895378223822575563814859858071539276552714476031968670978412474406586565245978962118224214184788627891787735863479519995753079945115736079513092915744301863968063779982115612710586071891291737300503417204305767519355570387606180472668771385292887870143601595432205411431953175402029618252302294239390005424560100389318797786573369363398342612217009595588460989517979392377199478972691503728911936913919898087425473738632774250426246879902102791173455725151702617654634956869546905666122400038997451312404237978728228064220480374407811379393505283947659656444892198952510611391349239973440107710914397881063257939274589853493417012902227325893790817787924837532005249165775474584647462014737451250309881761932192950861789446236250125633797523423229520938381254559600670925908766591010877375870510636556627477429312429012832415576715213044280639352413299301138970517434222064911857984635884257884989421482430367844462619365026301218746242242220617875107827978758108145024520996471129179371410970416999547408238327208480334292932346902482492467526997116342580938125639414767555586388762676006094495080285374115112382699662523215986232027492309249076115709143379023105299132827054318116607419757121176957550149881140539583746060839463037294472729786422455377370484614864256739994178755150762216715229009763953840663711867246797248721917271158277658667423217256107571849779728344397238871591700142283730793624858144787677643887715759840414250554033034329586536388021414042243486047958513651327747715167599135378734097062986009119625824210629206455125574413204894247896590741734076686293504557157950262611293897483110026769056596955484184974604843422292822439443448737345385332870620615672004141734744181673922985955291041044521992147846369416764323101296074890824515537484675586980047205753078021074761255929254119901327640525352240962044762558637113238300977739747490996655381578924699892735198701569283223859325799181877365213323013832831846787624253494628420421333715890389745897616435795412982833843534272940147635762137166181923110667793047748105255686655223191665277928710185013625807496099777564149462065255830120666058471640627681034284865000643760761460160418881463522882473935478124701116379886276650759708034706077835947443938698125644971699316482600567941703067391230642442343999669135653436487772091220152004294955818325989690371399773974463153193164036347226853320139245068611030143803611230617926317194649471109975356459567044364346670720418549547626259305250525474555383186243540584194624513745733420983356228565926348942813128256026717973521582906131288597428061214106105110468953559028292693233650770061028905373647942988109354660602645884006245804351235108254926001986525164610722714376005196861861232202992567981117800380517591209587130007184746621068236398291416343266549656133215147224555961464833177808995588051939134915613225712030123603820636858136723912052833552440141117939278148155800300920528973564457752795322196038000095308173267230531617592784058213350950296243316514995131010911349529769187336879405133965602795772164504049916202757370570248478522592368346228693807553906017961942446223289527057966164396268363218999012615302684037098425649251895445300044126853330539825990355970538613367705795009350639602628197896321013770386788117744810335097604254156891860738251734306370272381416674222587480376878390699712947725404222866428481983107378289679506693288349842074698263717499142312943108211863293421075328526928817408859505287256285471718161425826895854709577452042064390533807567183788659029805103277203563333419003870842213897524071792647895322901557937347496481513858154264411815890696059405870519003100867249336685357858267319126028742751093789350360505809447454812948275936605412379389502830840064560222687115599152084003247431039965741767119560781696381949644530160476335673873838102530429084793164715757565043682165693368903171630629797562550349760801286235894082069568805842138842191363206559901502362357389013345586268037649924161660387887082110379779014427644444840778671108943727298500141155611956866089672875710080055142802411837720266847355562502257478367872219120227195135460884345833392168914155052021223261798827851713701284366071925148163185873029366403995310928148959850378274396154384563428138349591470848136250903355068995083220858639824199689058389401983260684391578232463230137351331596985819411586296323392835476297233592691524054072611883267322627818661338135135111760539023538575905133688932987589734267393497243547275650588446490663603566969513385979153485331677673503742691044217635785901898673801707773310307030813736491380500589806807345858283548585682658790810802141700964876538105887661605238807385558881118078960017102940652294191718736252379389693984645829787898751634980711622129701250700398528386416389029672262115419390936194971421824900465571865323467007468977893805162378780172207349123573639701525412474203509753389864501443766803154665338536248567107571320394506250042838445853817121315392106734061088028551439384209695700275424508695633815535693234164100294280329732604689869520008117929334745135829063836706847442395635507186058622175861109106981765530169278403388483100244319089087383410558281203581342447132801429066215851233983982182706140278622422587006439166788592037993012289106196950000705431458343633261266495537195953588786030562638289436407468501505528754750162105213003021463959114370354766574733850656385599148463344138710582182904956909889991647215592196748075446726897993353376176817536970758349865360672549166652374878865343388930510540259136639528878406513372552171066406074577908881993027553961186841189270572727434361270973489655814062082585654578641653501111961446842259408264000259132181283025764560215131773551101758245395809291168970791779337528527452632448586661832817884338502892239008987567904321857145264953147990450134922764407243704540412148465859038101714786349266394891217085250259850576590628857770420956859121564928623941892766011298223710571863914518612430945393294958679472511602468529443881434755130856945394088439410954472843065375399075217477590585393076923641854601178965632656381983997969361360213139070980199263442717213578189928964585124022788365516807302538369444584913292834986865288509055118545380202016724838980140335892399799583518887490029695522842787435542651429871671528915469209802305660280463587302217208718168491139605830097128045877986139007246952549200936555916686514475630320679430240186127200558351243760658648348385561794947164355357430163703077863900623451629175240243085309633254967129784445542772542264479635594859881396302505253703516128588340369301970082510528715442257262004042390234431068023129994005331949704406422759486001333458355038649831213466935247846846490902350151979572825607425614136199706817524764236455970120710377189987955444296114683196446610228056393476111301330500831308030787802402443740324414097346865817687804634670407925452476355297040572802339134085094602850120313467731537089054795591660000667853064936475026300064471854595414473083030720490542489041303519445363844545358979704939380176419532344319569989547856595350015059388240145364741490244790245196136819612635984973837061496419607400349850055830160638061439724130900403567641006167853376453437174108401166752339769605723086693484921987038683830864169342088834327898188082462167656065078956172614990790006432562693333023274628880060786079296772997779201000325214771686766403083712528460713988459574563513090509257540670971409457941515432641491632831806103223572218650055278500376661258019147355617040067492116135467598679984418831548902923339322501672595666449192715423471952134090054379292388105651214571973797954601597822512098501639298028328562074765295529067275673915714645801633906934806564233554426981407021518398772536321683890673095948222363831959009233731021178552392236961750724042889471634539681400251215256244818449554621497278183230751412968465561579166485615917066163142847215925200275003123077491706225118777357166086910247194675618898617488196415772112591155741378056345612648877232940428485270412774418864036058474922170473148038503664006491773186942417230554901243752562820510145447638639461433703846188592069569645401427302083302194102405048725724317412322943735282890075740383864966847584477238837445419075743910611296993395525435030782700489553670671629339399309640631839860814057549535352081892345135061017857024763265661266526018316731724915332157332391512787960475490757378549248157752101351656219477247370235449635120984428106598552685128686720836917470178763311232967732406832491842048519443795440185408857888698487962302747650089357666501808699262644643094672555845356953643453423800500736163434923039106983136789532619397273758447592355671707942200314257127652443277167636418233935064345082921080395480468589730982487845687724254629857202773330013274913340779914325371057191633121509515275083590637694466513203798643968063463652551312164168986401159607683362640465129563312720632529995436951649764498413308406303994544318665679085146647117270994967458073012865190568993510880279857267809851647527337944346445660083475606064862479247247909867848934210153738899700205774178943543714834273861710168778957310067058079433811867390139878809195316287372941525106543655564282208277889008002192609409777206829854842461014810472437023357012898237907697590890378518835143431935809746574098943268254461197149227859020046409009383704218490614111066607621348179212986351543659823907722428526483447681522494281474178646349951204516695543613027887988255020004156626160755137418551894986283308304911489449575572165809352568194592296540723841341791144526852637148236166064565818751190655160246732122320739209183293308943135547562873410911204178194245059300452256452889393651270307367754938402619787864440890359623111197342013480058103911768956729685463463210540340207031765968210117366590034018816421500005402510895695589118302160572373747250055718075808422276823199765563695895424295925331317460392332157181283046431050828048656889824638145904033048555955453843562186794716968257882991755647300473404399909403122915618296543935224192469273435267933599829417767901031242671796843217502764456508794116012162921202020191581095335117689637275851490904143787724511819390385277216962943126456326610739661636493497936395076605583826035351558866048143289991368879265228436749576579086250966522104644027700363714232094699049054452000898285008976122185938352821844299516621443221430055872052306166776387200535886421709735365890293756198955108428306281454474967202648043934883619745871569789353750936677288769492189748775462120028477801143574869491166014336173804251412227219179766383115662146710203830383565165589278458263674495347785011500577011293795587637803906424913292776990279047822841240137008725669299831941909664395267035075701549847459222663056984164265315325809599962216800964662368331718798981242572404469686197214099958281322855208904698153322938859771361455512492510081695241433921783318185203860021706680089387474731789605141990743541434210017377437916693909055776785958889137138345459556846001208877665753387915484421245862763719152630171440842012716919405466374054107723388439342206413213547483397759223321685684966302325024742608045857383892486793939899048026604688632435230147468574722488336210454630792271759601884047566970756756161096859215896659294455647108554394904038025776749447836012597985616032572498822230894792716810846538893484514254032476915561260368357294759825203996892345542458657020176194393187061725917854422442246393239254273411491779914446094888466385027418615627245494821561175668377214921024104402354245139932278549621780209556213320834456732911014253247404401702250804411851447819019713735118616557415263831775461534492587546684635667296686577064501003091168795739552919756635192192008171138908326048361469537656629541979150684208959691893901395887809377630431439547120317285289032255946963022579055044959972094820680917585404129647838251577959398874101599339535905843200707469819737431410377804111630989922242807342896496473845093599247317876714238886228562789795701559311837459150289783662816791146595545749242578619410150863575317268639805552723086430465775063911366790123597219833425449724733888467894570875970814201397244910594023162392832920195128720008133093836860298422529021903930245747322821309701627684043377220777135617736821512730008699265570961070690672921340850866471892377491531322324688847220204813072926801132413245457976356425944472521081755492807638587877464476962462703990392206372919873645266634409890912639700341174257272955330685442269123290062330502816002391877469998301471453853770013937084775611143661755269446727401808715552298732431413257771363169283197694064474554387601312261710598187946874066814682242486069905793428588131963537788867824085877234740999601426130168015663827613368106831392862533469557778205191920542789725975430448473364661617164305336958431442087075661150609685113654981575370948133828263928826961473394787157900320737615300332272846605795758263037259979311020065156561908846146590856799026743675270389388639744579900498962654311949275341493454238137715306704183464870639998428271400708893677750360850239848667774819548440613414461629530373127156306923634368806129809917519993567769845973008725813511260360235055969600134491075910628462430820294613396640658892739394880103763814528272618827962400905378288548108225219231224631114100739648769871343571108938234429849478408783152280904436133983401094565466943905746934893838861384954038630308374854837720131409593540437561046582711352164091789251056088550893869762795475643662548492993834791619740800407503599849720920376844690969666529317761690029786290537903768802998977091269843701680617911300477237666738106206461175228550374444586813406500426470230265080837442874528941097004946382761337040774808021708020193894408027451333540738998395087894724818570546299111688681967295050913379642117352382697214725932545862145066005050759839910349523122655456944596653080616093187797084275105849722214233021914967578282988193988206220743992856229274131327538819880555607344437211374637817018833383838344116261573177096625202691935489435064571118957309014779957604769204165503293468541573024843244123156247103545952738459218186534642171771208870470243032971953819848399781673387723333949694392890684560945845108029341060422539545870736094211563187515823275731847576056471665061966089459294397122800964148790532364473787486667832590999975233956697984718024786787936212714883696032395146494860958908132294489296429848537609107216655315658938685607332552458482170735011507426894960389906453363383258200831291727010441529836993261640470877313338386945555647011487622965249950749474238714223841221718583351128312938684377396628403220137634061621702944243102785810084879964266958459321614663911181902357519885286146038281228232765956020927220096907277112793023100937368940214097565182139655329224605784654854216183335392475125984526632980764592191870952342600763897775320408681234156848111371880840305363022175804772316105358229522081795851808109005116014075443625905803129231566104844367974471282806369319517520375024030048455240448984758986802611194457358565599066586935906671052391448403329011220803326125820780136783615375522223705559636450847744059882293860594190149358027402540885741647813706551803838347446320198277124874098844487003161936217638887904555465163081503479723573952478334124017096579977227526626593820822595030712566150227797590605390896693644278059211138857967398193251905478361419669294242890782942619953909804393337684537133466925669005803633240689298860563803169412402865983611231876011002553570496239450013092295000864978397608446926268132789113537962605252570810833046613061174894734746445845102921470293178949600166317894725281855386075649502065999085421290287982217809785587228407079294551720337512292542730020070203852836495836595089994678213401762250899038105024230948331710655768998298086386320542023215285038492805100605648293059798391617899278043356698658923263496195769784703695949864750070271222294303174348080789737014126541569645241796523919813546875868650346845922149526937939520998582725129319879165459184971522064917092114827244877116660413367161863287606103458386017859515247347909814353179437726108095739873825251285946379270244531134523618782546120666759091714981940414929686894219225789295645227894168935733622280337640572987305487514177524048001369221757463253726345425540541917800291912646986003666669039592813533178429442866859297378306185408560556815665089442986886784616405079529964255789362621610755848827371731130875034595178673000010783836066605231580145366373526220000050567663736667061700555810191636573065104170223634997774280337252099169632350326726147461713724558619343604520190128618714760891675210702967358332350872283537059985504421825837682799680188519611201144981627525512388366647578326904451495883836462647724063074336288311223080489299822489518511023424309938530378099835423959746125444539437482647884062410540891814456971838897904795935768753156159042403972741177553531543327349585562568297233108287328802412805238076834760232638836515256707972617308938327726684354470577514275230559345442860952152334939836779849733281581469144874161082954125104663233808554291534557552656835992999724472330023685456612382796912367098675016552402823636744258563844431678906272173833229871496962213000265459513883853620114002270435961441253844651892543629826142808765027449962918160808213482158007964986671941952113970937618446884981433127632154502104773582362362834318193204916627033503298174206041269029335627698140583756523587011204782504185388782097736844588598270303625280725833335073080758008670035553699015711773773934833868703094676017275629018861167295564084486297082894558929222751190601452748689382444411901915666469258829159907905515749028604212437643812060036782663785193861066404413349491832708801946627486472777924030640029544651635093236483431479631807663213588688721579590079663132455654925214334478016029195876790846297666267771599969892992524941599237358727865571816610338278331105744407558402694482087010113123836855771663202986759832330775081186721281829263167739735920942773323709446404940691752567213858229899706653227708778575100561272851613859407746305602864101548752514369044483399028390094326768464776789437795788173226890722066755941503316498905269810114826502295192632723373675683912834525897159978021732534079247877714110129005626896210382053624552219977310005934918375492586426296310574392068518012400585161867253391502243693475584164862696776318739625797283931608489054398816430148428003599937053216511064936215346230013105353401609568958375681262165451243527280149333038285893633450836176091801960568537930813733673886566748131339242759769714087454168627142765508481742937066724231216723843223622407949799295368438962262318650751165526035954544752663484628035335839302737895346769803247480486250620611098715034916983959375913664089211637464314081345814982156600192788887774705905932989397806164730485688836733543656361929872821074583282409764307288023760981305001801867145052059344553772648480874972667003240188746174103697392175356731048164314318725274774582283216132600942051582471368576691962009078778552253458105708987279952695323416625313070499143951660127264322194472202177512881752008590928340623415954798049220741509433522444825828391386530464216263719696089282866673967502877094474658938466119505302861449883909988365938757272629472726747089894519662923914592540056123061619430333804348529519423899716313351744508373793058356341182168893134728469376278878327333219427507240146450652483831775329309917677927043643065909299184607156634835534103491100359734295271180796556410733698012074624291780434177893214074627012434747955117732541142860883604891264922297451153762105904483169598232030281651184732811835804507886684623917026215598116271893693317492181672246732087924911827954884233840845320532569508663283324079877421574018302762385760770867696641281743250307830233693246309706845230746507299369920582848981990832880130261244213889005682514416924539156097414581290820947331625445504270770701302941776710460245378068879033370107274638975923874886222858181342660149023707462838719055631173244164893133388751420706151085749101423130318170069327147229644611406915257286016027222251965775607757126353163497102993441505656709659637048868889302736938626214388723606112030144544422528236975418866172644920004409281998444362262300654639498782356956034102685517271358331951070550853634766208616162894943251945060308758424680962414545634640525865471914689580696385686548007027902270871497985819288325070064198122017286863235721866802885821982434548988231254886940846720233682759629088867037973706537306293596536232506918069436307183306663088495990953017641574156110463851479316240865348600604569537108719531408740033089888567580011428257395250164979529195919113758230579480169896392731323116710935768590363805475482766409742478760491719623490827874456255503479944906220719933339761745151314077423238363249254372019352198736560866996214862835001077580798798341354844769203968466072193882193420816078092161800005546841633613477586466196910962255310973176793136108064004238399473234054031070072470892153667397837870252823700467336114025110783130961376589143158948828166929193793866351224125487208214375019733860948761623059009418003683814742943444559343615695470528470623462802910938640363800617997821704820493972809542297088818382838712552318085780109148321476650116782614878777534720334212747154538375150081280126713571161372839106088779643389651495785025599437179547462289652240228539853661268142196310471887723477484366089390823082400375380461410097203059754967573417441722446755541257237140757530835636946575883671942628365746557087077064563700350159695998978110339057507545839146026611880105982765977320160144139577075685343501577128433825929589636494691807619813894771918080541541305121151167570415220068453448943359456622805568827622807347016381914797872902291839095489060593628916507453804774251936938235402504475303684715593424685787724779241920532118845262160994186163545271027043001270425030645789923806374728991123995218383025842086414509657377422580781315605496445499946732008727803051082631125616591929043921314679261426522463342045882537686490095625671533913665337544538191948929433878887745479441678827168155016935146473538887554447941639515355769937781270253400806409334719484649523368064404082317599253442885067150191676886634082629829609886926228149216994880763875473090169164254378704374772513571782745321116834906805763547001955784997171310724974868043024770856180920066121900705036971022905482438534234799640123198281279881021817556138544293090179873555913793102945181597337961067774592220352371332055247582629996205004383007821054123060238040534153189132339562316633805586250308937457151059849635258557029537347368357224215428863147226006705428803623183372548058765910630906356565065891332047421153427469250129220135661923183002716023101232218892795717156390660935755466430994561823761451067655035254752857803874993477934252097812596637472195383484716783173960627240820449930536769581616331591600867156490651114009360719286655508272074455314245907018611586871725716985018761753561099979630858196859032947279943452180563797983035586370071261082143896754451173406101522314444400830444820510495707429913148112090890915459993848239122224794427918331669169161825976921638384264308000330771861650530276672756233278976985487452084228806040689134949201870347879030075785012353167203422668739521050203414611323956243528251573328469755939629606103771618261034894991063764542185049136305437623840569921347409346090465298104206890426308649562209600271060713750601254353020933382202019577327881359752008887650586459739720763161551873833128320365239044436210513447407284879659110775236651814725295306216809614018535192717022174065382794203012814672979931855479422624852255100075811550061358892506296951883551463817837719748173082531938881917455842697977528065404942451839454679849046915815530335708372141843572653461083961509983805095100957588810039785811903097631622393659047570494838856715850628560592640241624111944626935159020308324391490742548756602963689428798232711681489508630766154025584565709170134772510322167506092742961020856171102869613731739217212366751051119096080951200451726648144132015432138863878445701345675107957256171305333598596605079307914732727607589943344918002498479073242293841362955806718707850817273666363012294442914463345200631615532703143366110006631445878934826402845835240887907129424175803762280837573179101727457521814885583997247920291632521725897910562780018781113360975802933864101229970033846982000663999643769719023317263887464953376087612682794865122500269054166544999464166044897837386996456437926406745949113250282827249469648862799201155566297311574360326934391672507035270077123257333515352848609832923959695969802289541657732735432938913732830431763944530622833302069158119729836229066073538701299703165378679968439411470276915128311498917450965458352219432161482718329572508147521631318766074099612012518371084629454226539690701184233378961948108459186331614395771924768545587946501091175936478236400085591189241205010613876265796220394498889702349899417230105735386470770885858517393254567609178712699946895087058681949149380070139401975065239790930256201094552396266027455105663011602988095565532089692187749916853454691899977893556150887102169908179842060126115311921092303963191672206235424575905258431076642968612125837562440063615323284855907922518342369042729881268248561289252999524779434974051138366765980693653424700740700144424651174080927222036073549801308419277125024084998538392752477727757952600944584829626609363855791120373528502510215906720832888478125812044572073810149460007695603293695348939933350930409444518775938757403555865465381137136293929440397855012575886540373306079537841982315621019801852238503546369586047462791159634893391980411377725813578550526580759144183525369495920602129679648082780317369487398898305434263435162724685651754624037724172113573340464508664621828415084489242031926825916781455991857564013584294390351926134907006587502269682833690692058945136153904734707527488852539491494374647517895325656698793252354185041847658894414649505064232222276725359733765415084919949274922858859705687492950827804333960394273869642410107272217809630057447283418712808700255431391906991371648057743944458311867365315892118679466713152778513456174269079829413056379105263990003213608445805461094866460161238085091704835500741798939627529159788484385304237858380735127333990012311645713625770407882067547086962488368651194613012358167431340233266785501856253881745520338334722551411247385904701952781776720931166093729733628197002815838728507708120039607433425320759715446163937912348618889176697301565297118872019645528780966381447137324549111180920687060407184403857486292536031503050282329702737017405814422122541682920466659687063107931961064679606123506080562628277394415867817435770799350409351592890820561675158750320246226586094250664996560914239895567310654033701685047838730882330912534378004753093582598498434593566479042095875697937785172094522801347633307739648727627350847867964406405905572054292665025924875124826756685158474407129490254499507725932905490361160809283044278186482415866063757518504493627684032066175987065584274057698622649516209904169504578334346528119263707327154757784681060799182079556360798659737194246674585133270106503418800338330558983409806352244795931924804165031197547726346290365925288935453852368652536011904075826932533525036089872588880631108169013814152597756731642585598248930101390480947777346848753854649086532692495100225263415437516014619914884243385679177051752735956517816350870745876022899486625492195766994977412551547541723917511042909852318593841324186033280654411171575122276542240702912176671378775641033698366458116434783626786726116560338717481333378631632708638195624170432630651378239010646015043595095441993395300866732613421002100106264144092378591653989279503197151963122923351131721653725268466416073252428259844697715623234972891988972322178471099703757735520796265395829476499651777296018710538526684140635232104645496311414456276595054703772772119650292542816902727694727935263980853471200898169798650473479125493919999608624533781489016835459141750529262781670322510677694311891250623408214144264880557698879485358848679680390045988517487778227032149692794340791024775654754942067689759000376878848358767324632847598282699442014497362854572672981310607677927071065893528513630798514332049647291141166033671579137151222331486495112519420394879924168945760954912857759376732994097450098954603230547387047890048180126810564390880632643072302723009085508036772475178645218054369566716860508144314704087235322782067081537354806689472199046058482992745266401159032836799506523080126684761130524184040739293138281370555947566338182471484188620957027359486454437931479337825251254196248963081062526539552689246085625745894200880645214486008976579038068955666536567321466917449308289621525116938644258457480468563625035206965467346531220168197939543003203888639017941782522765267332082311064232503274532611868437907896149740800485472812945562127074649712494743855179738507685243112131626622969970744638117710617387074263103740042219424816171647799069707954427013573073600123267683977192872978403295909716269625114931430726673301038756970052542315628029000731735884847205488127042079510994410567968398761569941179265167530311688890224481062585954315937710084729750575034726949416786239777947498642988150948470504495848056077191783683391689836879452916229380435525703255909384234856055571333365123909337772028821713976147454606717903685582147507014393318719473866832482177779757559654407721414199293449942632569868513426315234844279973582653600583446829803562840088695229520669632152576929892880395027174117816561026074014640705584635559241471178919910903035601231218546554940903556656477213442800943251725934362800038507901783148413317463907091277443067709644996341976292526506492816352021877308570361101752690019051074113420848515970232914579557573797770514446883723275426182893312874474217970668603914098319086055426297776079616101555737297777898317290740415396797691781115397010378035964553192060435010128527981523448941531957766562932709038513168303475223147269287356643095182558023061315436649095295555045069567817903243639172640493305046225394106105142604376666186662623020533560669465130732517892758189396421329240843995244530504991151578905065695527287020585043045640517538711901294176351831187976624727584682550092279689479197918515889256271879741281723500083605131455923612224819575975073854667457921683982928568635371081481337372505130965514901252104983794141127644375792362079296293248549439021657692992835940887878576231229634426881221045066969817333875776551062451277749212669586787919110275636765341102778515202014343576068597424374817037207805295740695825838672566025453582385673672825950499598413344779553740530702473598927899884903748462511175782568198247545414591399992971310448884069644844789073796949432441245967338207890292579078673448539389498190888575725468037520137671422783922700888988199739103356600774361567809899347888103784048712545893608508752560553555804074447385017888113077323594707032704039043624881397398900009823771693807866384818420845672294655909982065096248211371949947629121297909163593545659495200656194617143371609442987736797014771214231498134233133468522905118645085463349513101593908332272487362557770364170630260663398880245118318540579749677490238357855891729219706010103345243865381085209919911518660658678201439086902111665320510404218287053974929902959443326281668268949979293835398966364526210157235318224137006950468945405353628840366104123302539143684063904158878894639469487984925247126418968074368458594902963993607843036460634815814407029669591152168374047116646545446592257427458585873979028998233087970880950214405098709840778037506582254846564218354085751065132301954498203455315462061723978915509149465680423894442134463463387868072841782611233276641268785173631662081730583369329023391147830725318438414487861510681261783406605022216837299308951103045814708621157780109536128927512898913044268925963367265201984573558463962537770126173431804686616467528134796417695603521019305667455251534567434798668044669227638407510684456507203682383594211501652943147285750386369877534328659964488426680917515577913730407730311039826448572870186167393597863744421219563448241388683510381594748415113611945585688944709567600502315719909578419927966746347105609256098486232543276321755722977963568618470291049503782193401486085791331463852338516610715172633140997383830620400142970883475779846222494382301447927032056998924243843470992695482012630528537044526724132921185796565820978389863922124951956830829508354633855223725847780001452436419282178771747240147826506027188666222570111926190662175391163653208770088583942700913914900943078445286392121417680582134045227830822140207689519313381787714019936079259526222712289320211688163105314642366748907114022798535514966542990450911253666747131338680975593184557377230494585616273974524982672030702663041452671434707226897066519505298619665886042626598116352173584929097929980085872298363078368770946511792276525882799952086285057025238786519533683182960875511177774027600263748695886431980818723578300425399518482900993485024824017573255506752360780472439331686922085461366750334955029915595696971827320249099619621901541571634355394704440583666630622348731267657081972933478749111061924605055326352451329997828600330051813965367840241824443207973555461027362404131736087837494124769893327876419683777103631474779880929196878424615874900012190967689156902818974614631939419414670206735832793962257129064789962452763938332681807958193486544878921666206978169180954569181836856020977206133182196641530607305325970921445255163450313228205581821752888421244530948698821197709833875905634133910860012966074778461647589673479461603846953767300075446804740520084381539795062019059621608515322943503746636524429415175522587866972107877867761687047964863319204969469818020974696168810716844482294796904418350907769768761994035314465716355498351369834668426440120637507300700117705914111412072255535899517381980137668148773277420225142234108139787518601611904586444665341199244693433319109801016058794959061246094534592428203165023617657962521054205642542546386890480936022562491997909807179879663032828743513517703518829871492915486367467503645388048465131072963657644779269833669826764719967373859776395388136569165352722812355201524664159008596341110097640480992266562822251463253765995454933934631614657613971035433982208204513952993421794935237082119483680205374274680131901999115242979551212193458892095611581131157059300670506259562036197427607956384437217974682302392437477239766944862682425625948918520878182881753256847283176555227365828621367730764928822429663809562992912894631419032291011886231508131866967322626913893661868811525502335411429404628942413475165507520786704496524859104091529401611403483528457146576014964158661448830421912216772620235195690006005679752477127610914060841031723325100404740881024033472755995249229769054455736217683899931073300100333998131650166919794096003649224035512655468605870489939382139122198276751168133940085101531511313952828390670452487217560931325188937977174021713031802008350542297822934478324515079334714340189465025068565182652220720643628191730432907623102023799576552458087200297464662648343409807352514159613934555133303961958056323267442834987695990008283946304076203341283897403762765287911398486496184709025754487910682912180009162949372389718081402101282346916092745650125102806968605390883318663963979335739799581662258336705612192977384432555603784743716897242231798499431887453197821137870735526974676451387872995548865623303212960155040583159257594027430474073396130937446997192976968337911121168033674856087067438457371117125460667849168044544382224339300668350851588123080018979613774559239095918817285364900149570327773710930653605093401635402609514540989429422671735947837446788713052305311521626907316930691500543040768409119121571622726668927662513333321090742197717668555133325865963905410559041252285174665726087786220997198525510633237100929872659088145805782495284932843279730518422992077928102240256276578881249605042880380427249910668479969657000063903148552194693121017897786189943671911390141621230806216612920538304013609293899507095440252165425264024182304234632695250315722981912300348083358432808634996979207723431955069718539892566753790580537848439190068879464407693911701700286856455998803596170157593505515057830514298164478461190119674423061883026029002703792590213535202801379695832417883622661466299398615000902503278333556542062013130430522922659887450898144746461727177182164553504695720637073142525162743609923878083183369123001894006090922804888045683813385496114358353089742441700281793955261562482704809719133245502722072178071853998955162395653131142528143558464744999417832540124603649708800280087106414250278632833566651857504891958758764361295284814076978232477809601936589784898532813311695317056776768872143591489841207479004390718513648558533653774959957110678373747486285694004298225126460142534722785180049343412602085382047071865167080241202500322887101012538950752886899036613374429308917750016469563941218535525503293001851653038641181562266095525494245158841592338103708041694670556015460998024747354949350876872570390088577576763494016381966864456300596202150617391046130211872879276214382590520073838620512420361256764858113998853375174240049443799720405542847694631416198488715787602614309032419108528275912903327761649987254843459713704751273705646181067795552870759852403514276641741688966245404393477144490912813438758424573056810770281483395114554848107997649084552407700832989642897894710402873558291289823725245543586815933957069596947175226558852910965176479739530209941999934820385953443425197721647495985465942011230968219059220062878920404259689869772128125430312008781239697671624453467278902338159132866095597301936405615365690897168593695235392961820742684038355053662030515233787005476223055896289649789401166030465885341901666287918584902174072851488876847033812126211035081424104967306452302385484739385218466125010677057480340683704034736705057487194884907838832045175100848337633842444664322967834745939060843369765873369324106020594859827788443771725811399935765949763650335183538056817573351431226048768854709676090678867237438223719944453927472492599791667635248988254861426245009092207740625090595402044873421966899241152321773492807500056510003088440197926534276698524679542685889412988199242656293863667055914698421122436187032266252662265076092383081891782790443398729516616485583924104890998609301433204625975766829611765544530366183799087242789597190971981729794681173368019298390693904602459505294171607857245724161180042316887711731262749735578092226447859759369847778392430601862965525440524068663834785963761294784273248318851998086145060776622111153230396362743294076113895047400320454714664035685057757952819809107483944775299899847835224348602689092292184816701746363730491017366518402028023591285536875954214498542210909607204311569992813231753612538895710179353554341016841128301844493327580944281187557372188839140187820082310021932643834937450580127347661044144943918986988648568692583812449269125628832894371085298718214160614809307333599809074553071533581131760355898148639539704660547163803439337055618670580276662759859750854196156490861129285631257716730632632664421110771252640858262263546296993856802729484034079466249682522228294174248202964395355189988276490894521496957782192874284394287302500769708046033402903295447578318905190351731187487586855795416401333416579573855393059025239016129680331699809855215361273296761788948571576588524441003154709213540696742104891430953981241737608119164244386359631460883244303297933378472094129049070348671962782889212054953937837772061098925793501556399753725266461844799176585748768745294999440990472207342309219166586588984665622185712535071865003786263990831227463166367340733053349821581196164227752231533742772965942775505184276208543674529797265636739601228195991646498526998857376588173700331171315843913739818503552451631864850834683801219739226011205701890961726083622083482713535258758518878492157056465035380372144751361776483086049836720360193718096611593505049546084212189119688354968134884749002970341662570182355916505430407602481572858062533399476272270471423951761681404012020998006782215296985999983674143239952381959404736774251977801833465497090800144658819639919985491478408332567581349076745219158238007755841530740077884398530151592589116806973788117078676403315562520002995134260449155384317384279346676674952566139079214442508704216950164710147917004881421227939153550511610579424669842861971373869383765441048386489390355114330232105230531057155528729069415447405874935808545291776328619182495603125107920406053372921740851571523720107941893001309591137984019385175586256645449815220156025505531277342072525589917022485135876165321433754782336683020759392193961895881444840539347423965510851242247364467400071872787659899058229933726698736120317556226907478048302141068718770127982945917018771877648270236817994976525413480852462191951082968157244876993901350169739189191760033779349885644165869285850649099369820585378860807967573365808387210414972102985438284405360801190491252042458281632215802153985307445739804703496991828363438041584016320600727997069927306231988554783544747212912704202471449707094796322423448119645707785530512937863975308862639894731862733990421474916025639338437396214014492679559842413030924171884030166794092824165412435296317905281093807473462993109109745274173286810974670598273412657570414221682188319116053237445391870877372955065692292200914144793709510007797516994672510277377763663061721484815210439051854361944601847993398602126911040016515471409745712024179530350928859791073132482388362047081321206938644838486526676394494319813943193698402063947862331552498891464150159672322403679563278105305528116839860094475045785364761416911293254193268163555907817788797683624464108480770130772365577955144767914910712861835774819333633266205334001837230760213814758788442449177425991687224303465251292481693284089916006600851652520816581356485380190202237844752322168955069555408748107502762672332402313234970853150810438989185744194768263047411137123272469755753577469517071808734603492428771938153550413231788042430152425126704223141451424041567650445377521493343265604813818833309363002132029377131168468350487369857936516880265187604082335752862127337628162082340263425678606935121036939314148793851338843399004241444416639323009324152399752354450635861198989662466896730894438504210444565602120436501981066562914178418346005439562730225843704650267136937586296105035927446726983508214596879106980887702885253634987617589806173155434558348575246262924174533139669937315954249476425372106068057884680879672677034326956184421862101791857410122133913201419373582373849713330673166191113288595676064824631705086614710403941051094971004615836084954971904909928193666075557882212915160846820034081581009894118620768051692744508725491137714783877567238165870320844963681610071807158759816091986728416461689913683166888602704974439073208485885858125749879075499476224814755204123799173574378068688526977297420118059254364426682604725602595233132213630551560673109941145880563580562295001357445348442169958473507641939384009140175576151177631583978898236361781147004299468677570509938538798856257876895860288567565024343424421204522573080092662864143253125718772070420622247656698738191494387603820222093973851284681305700108031534869277263063003202328158463402815024497927502947716709161373270655123658372932704029562329440034104854125528683814769185051572748797695906280275455647074728785590015110725005491558221026100935891855613925819097469509321750067252226224782001326926138449177601771377342992656720320185943579598332854254083269613434008874384987541965030917868823734363203326743583727385066151689012491010859470911466352529187680915723604911716559480321868331101626276928606263977799518115726284986988911046698354221140902209278875604899102065757567717622621586121954387734586235384839444168897910744057435062203353147746843684298368615719781642845692195772066027984616773885670658385418063769818820452233068866854279122856859031304693168927343420390819659636795989821639138477846545660161414824218566686308714927377969418579291886849155759234409928833031331050558221728813792367182891809064817937401544915776951121686739833966262442831738731681592497229606257040688311454695132384681664308898400533634322747418293671272533380808846079390761764246721183020123268661652792667153548202047509773606010166408374727876132191160033613151812861924122031366528278068725226274453841567637295198125167901699515461107639182139406358300762241298829260758663492758201829213765524343924255351609590339456268345280474715586118711622496788961916254929175445719949248228856794094287464863371880893436385225216582151323993840476493832380728695989662899222269150934332601491159219359254648197083387437420717149287610900851117381641021314420525074957625672001231785763228409610763625114593530587067651518942053037605301410116985658412230582246901450531836654888304899498251405885346386888733267170388057788569189668494423951695745191896941664137273018865312829532638649667292448343978905254061346870877508154971498566730034341346290101549954248855997488416232202990784689787639358024550832700930683650507255226462118708551257273476282772377172609660215385270781021069361354654745273763748215650328123107593229605446711493877475897853014254698101947463767990108320188108197357416157132398201533922115940494437711860077180661387047063509435177863851633042330384688894953010046347770739914977746420738652510631336067412643567979689841889626214331701458940988409673050611206018764705946315047937858736113455358656295923598864070707900162300090589542025509559368860257671472722029322969911605648416768913078036889143700680322391092239108836069513249040121325366284925772953348971096018320109192402661065133850088713074519702715139906547061978725273782592720731655423299301819118662107071340029215761256263415770625784641299681639290889291624252423646561113641254970544611087723471762617858173072571670161404363097480183693078027473968176741645444443472472580794483993447923491199624010091269160735341372284109478439226657719327520797937555473551180839031728124042678075438679659210106662263973382835923788533737684500180581802356205395166549300565053941973431831591221357733731668467169878362143067400661688242014917310132032087193328448601548016814450264776597450004572631118391708128313657067832166984062816504501219604803592202844081289841794436826254682546317342615876869379423816927982103187132561508607360354273032814421015076561310405789135911243357085589912280017428042913816100550188620342108703654604056509612450732406964738386839267346659421219243049349223872193394762923242739884457328108186620885597758977768067409439992758734313961866726896811591614640530316602595028384900844954597918217839679468852723686697130223071171139107094371029399716002036139613605315727091958457302032279577131254883717954955519540259535478817899475836378327958874322626643289688628333098367232422419619207575121461229122742987305796862824023592271431947276441814000279610429412980341847858787476255546856866194866639779818430255561101844244702863018579898246223027261093854305929840295321561551619576967391909630434610482072779577977684914247261743829782101467715078313812581473342513473803745582652799903921791437084007190124977515006867263493453125954827922675475996798100665355730301936353296160889442775652265128373987820946319485143838614061901596459011628317787228030100504686952436677502757332373452477240711762682172155070117828929296793218777826732327943154691908203308967905839567287405747261432282768629320676089091506065253861106737505651633665150117593912625287020089080546993457808980543355205082350278308905034747613593467461780376673347921648599094449370111460718204530381634485260986051705203308934619554959796422814181827632076719005380291589836017836401704734202436837513144920824265411892810157651889957396208734393088052149978555246290086520499956734075502461272491473285228814340494971469675933011236619140238296766364199175317552669616956375297961179011067693066589169457168350822554783056150044496123807538303208295603020552653381785572712688147594390363922354377382023319336827899850581700261795023985069619580212163295568223481424239432354237117312676888953311666592998415807988999527047305482960830298954983680070592670617769592994572380972581889225254150176867998214861477086070299757288983498471520425540375773580209719127256705913359038393001759419383086375613719118181362348727946597601386234680931854222717672809113668205686471345394441057324729995725035123110834523832128227292143340144416710459761709757718861136984813143499014108298389969028922971490532740817113991847559079049648889197134443101181281832092599068548613230044616539689835888492058845369679526365206561964805086839072940734543911825230570510365436642807773521369806690403432594442779188272847037575508373338300446813445482551416230020389066106407146164923952862964890890475954773944054379207090504329231271324833469502035277746204268748406756836432906012096768433982069077128156494696161794455122970559783645034862843014036166540507105908471535501400565706035455729434234541219319390469035225150773321736668362839494518830363202984122707042956464598087029287615088956859864147499412021379405630506986761631338704401782696327672579723535246436597185866650288547514111953910501386662277632535890924355904042951222788847222975456916894999638416397188441235890552816437322605975440984106810058139523099233704958725326809515117959286599137596634772442533881084085729970278117462172958988409021450466660933085649068061239298063695896544394081561977305049830592800929048153100904570407986731084292618244102012236005632530136682258932029170135614883726789196307495476631489806018164431680256188176966467809004119131480458255109398157445262780138262918416900954180670434483362237312278183975739871440974199154800460034946738605409760650682314622309138925391217208210156069217372152056665655920251310927672369908999901525024607153013510311417383407277737496580708650716469799163615120348533607410146140471637869123967172897049954627134567989763974298589606877784556452014201767622981540613178605067089563995869998243883711893927805325634385852133454430649253520647291440880932509353321590917194367419988441774665063630418325035256664497247835710830150570666285659676933697605009831056529911837425597490102549403097737448297936254815615352664278463040425937930000717723207358355958084352907157083111220079846602381287375458235241555689824152802317748837279994968916789471455698370254986941778386894548799393384639930819215857369977081254267550565695963699164875134119616831932479585626791513096982848582662498148763976932782660875041760098511075780017540855587612311079470631532181110769203382068790158957097168269289145522656780594749173632099274297865232855224765086477227953154495893923540690138475965985497716014324592088649224212057898310142832916127477998304635103929464602509082640840898353508360917782437667933725123742059088411035919481302200635527945645036826554200489964992553354013903936177279955707807717472785493026851641218411403338572058937018751464051871436524377679278739728091234442200693683108273541560308840660582310844487810581327430260853370966267033329733527317080129145207186674006402986765367430739635448553265944902015921023438723573889548138557318126261061865837510488209487791402301924928919084348275659553431724855559506337573314701427538402417219332440183359730789834093427801079088569745289659849186870650004122784086748935954366271572300661916340957018753576613731988708984789945238755985853235613381004206993775400124536072022708567066305729400641893958461542806306216625239242218393642296467296916460717657561714916779611815558880773109926280774636977873973759349930301655260289493071461996418498168552815566832354699455605338695657386478865001598509271372250461007197337926975277230771455733928760062087714789615557996996715435546826237190879746141328183934668409744748585808699719290138770348145457124396881515366035034815816425990145651730920560135377748351615501750309898932101823656268075250027986835870940734184638162497772602294136268757098454830131422054879444383757690684795382856408533637987584843367743590053588084185134862264370675600859763094339047983888988926794904852698636794402351125688219344700691080747039297137699617651152096165142550009918058784102381366523266099955928995903870225973100314019201190705601273976566029568564974614719269103953113677206939444604917003778140804009727444984794551157700442290358698357814778105148208215496498137812467025204635636695965492101357792310685189016234169559615467366127782236771363054147832716812551968343804355914011249361957197400221931295170290419055991400271033230447484141587277944395029825876929863736327021499820460752705836697194122165101661625021606712139425614294954394609243390081878458622914919895008979841307610215979091955100550736733978121982731808876596554663329208192594692441584093468594010300889383731510851622813164627653129706941864890371735241026471978489537411454187950815420903822746910915146550117581304974211890791276345065450620055120545064718944330463037412295235798766329712271513909538322592158592219075549081479602580649744580985572387107124115161578614439324226906136729791972849880093914345323588391264528266317444198884301218394588830865510580262136090609511764569293789748336742338705560491837193841528191866352631103179288835432442707543186479601813596770365471388302943365185610001774409136020042562406041233275967997404129579093870754872794544611926198912201815745435690969111097580292701682465957696860510624389042911345264198937968101852992659665794745502254632251516070430381471027688882566416194950036560083286761313947614282797867691456528452238929433169934405928628169962082895758868617156277890711325189348925168297723342213115743524647769491996428508588072149988094231368342214796243992376549644836438777250047489757997177076195681325460892246291575308444389703043168183514476050064496674853414572205195146930502850852113731583064149000019663884606290213254243305799220651067823216108226049502441930326212784352021192150000683865806446158192775002225888368955453697810962245583054927463947299043365050111599404362548675060249730207681383841408716673080912649256419629794888137652382919707938473088943491169907796474047724125601927558490883356750227251797759445988140901139304956221770312820521883013309398885245849394224307178837690318019579326139799709258100202022916739227080416615817483944893641639407073010988294713415045260252721323607883771873077096111090685272666614990979648637116213167663089687279219651228711878914774710943924099895609663212662802738656246355502998179520267404317685673448054409585738740104998414060453940133558358002534025054254260811015208112077888996940670903770977767581783024275016792623988589570213925722516709027320640233395631161768938274172461548491361912275975791706948693065307424129463234601810020999831823695800989316447269915362160150295216079108422293765459485049452429385332348816510310863448343295737482507596772685751657729735200397654285715341478919421253511709316226925204209585155546325521827586171480260117551357835298014307356675803785833259401859660072671452370595691552517580638761967728289663561738292616170245755879953265244191559036333545491507587479150025516371565668722294235635246022082055983920723422245235456535449758302906952568406318248077859289258215202713453313946500442536498404832145244781502816591111667471118008741825352316055442059749531789847278187408543796960489210665776094506703428907208839205108307248354545816224556514623515027540385305497271647773647833077101801265344074640085085009826988664917970580045491514800149896153716742091423703943370682999342444776599188416068820152378327209989055455739733599564893028382040649291855436146800779097269525422475454557282767200392802031357340323587890294158935811451331779207859281047617979617719620753234565547437296089819215610875318201754615669457987875534981619017481418899418799695303393327313764648797735756947764950767421951159773338374178097666545627117619667484325482718213085105361727338197873054265630416591748014428927604296576355134594235223877838044014840451686158872753385413925502288359186011650298443786329855835431794053446594916414687622061601581607324665062182384545013791546472781988679919041088674804407617342365370483411027169502327987974493109244258724011619838924445118110131057259738318033562192230737666571266800263254532035899993040160924166162984980333217649250270302570362135865670600355082289443253301796970208168122107672312283245557148461846060696471536653643212245522120929225093708001187171077223439434852428085677969654247745672259575496345299666170570526450646031973260244322642341741011122008102707065471190657214699828938560539494968093221193616925446193716236650769278799862078162639223162477948194432523150709188151822760705799204934802575265921350926976867583325131007267363703798696547503467936120387883618216762574918820810313570893457779522186307003278482793873034708116480690487056536110440545606452264094309281824565502118760941603380757427986513606410831341742659902063022379824591981136109385361090699773035803598001681633841410104646544915549128658567069825015294263567712124103078588738948772403760437452255594300154308283481180297091294524818443642072044313276765660537712302486204663386241612749890746347427802798039572883195164564266396305646529817427731698327068435242932190899917030977846254602650315600103993261478514748561784878003360483256189680896118548575556675230821309887971466756821219133709138730959559757479810584877019354553587853137712925191502025165887265122662175198786030144783336921228785969007408420210615703139190742872948211349257145313334926037879998675961373352920439379877220769863906359027704778938717297617637140989108563591599067556395021548151065964667500874806552439183984715786404873778293134771423735825933401413713857078677638758297065206170935452641632177217670223232020348082529504133615989119052119955123082173020244049038267814829848130438954386380011771603589974079211188508719568942921932305180052109959077476311460176314662079724409242320221600245634201457748021884685482417567566882597448689188658097841204149479979459509575515679176052065877171466550010266590916486724434284804618126619802272322797981720354536703613980793139488492847441807796522455508538709699803190696387553159024323907959772892782216276501223313321408596856688381739747587843893196611723412009096411151529651521017258430995992720871734475151519219437995549604542057203212702511869260039549435237574304417886104215919734413408117745905434357638017964783955783169915979545855396272331457142137809771586005547755903931258427071266622278372068942778899297815114270466510316237485929257435128157062467842888326047532483296116253329440032298656759376373806380423817493162825115680298781383800900804395000162108812836565384148869148771591053675894574930417519572489607843468337097005533054420140842696091386780959443830277997477055839408359317429083524400571585155247926059597668747111044101515371577525849284048598769846666914710778307056023641013712049891199829175360015003450894228574285943696569115918019545904726094384714488103976341691580062504975881514498174408626888567796433751371027173304776623658876563500461862430136415922924436648563668975424944561775942106222659382654950334218815701728399487708351605618976897489698135069183397179542219774566003927407934591244938997679934152959903545422790917942416591264579165629758835468291387441945272614254163668225383507785591919720526448569902774636199592928672095513543502091624498519383757014922483502318983633012500391986786375417563123222832688818061958130297368948100195175052113561584963651978773876667881413709145529803454134254870024890606301541632891724658487723186019756139607306863194063547264275382571707019846788995115958550508043698540701056164363018412664302972726266165527101424193373715027286122673759215547505343215365317894906017633378002141631827581010413860321601034581390631498495257128679843857943809561978282255129230455412818186224902391463244201615521055530096380663376902859217223646719203688020912461432496122563377505571662617765797955948731349373964401004755430724687041417881929116819114731649856832962582549243544651721963547258666309764283129354412381754811332743839397008763304179748605086198597483013790785859596116065474747890699470634889462133631974258414150615652337334813509686453052405069048819162604365377488766153499337308764046475616440029033834791604644242028028484515822700705568930480823976514265807117645000759235871522037079200717236184931181855245529190538432830956806739477014832111951059256789890220152609055504611031305342202690792589141568571603597351648700807898833727025356191163844541886778521188027874722502585051240846717178661150423179333636674947018593004387222421994916374317831149071077420259776082858767931182398049928538506742425705300912365536692574458078113103634499168605400462914641352928256954096290537409744986698514079250961423190956380828516823401258574862114022468553313102709531810781250897430745334142306966160065744194197971425922338357110938554356090260300353271876924707314011221232339767166146106352324543537547726452595548521075683585789541383899219588972042513953663821530939707409214754052269844872497560834884978464605534722582710691921340321448176091185756996688869420489230629858981064107422165602646543141637211803460276962554507717115367058098533705550839021591436451401303197827023881478263497259636432758282497156767647143865263316634638328259947874041545643266534898581012836054994211450606362961014484143050902129649683938095758526920113900460158833884279864560107123690660122836843188365140147195029607905515040201677231470457536259961405034201426223429900681913468072445481757734826020262840058347962389895182901200245929353432999484742937929079531951043994394107160494431373316538631879886061115178620630572519517548285073144947369283403557174570602008506933621714455486528443773915519726893369745746980668680965131439550364032906938533250981282912957198141875416137507071145159099249834284078263605906264824100461164284064403541411404213257914130314752264549806036348305105322324853999653903435332730210287481930868545414753309997953284371239979258498294495028902278701610009886571270345626228942381807222690512622414297384526623184582895052243767078096776038663099342152586804698968241635899995038104440713611861267736911750256841456855112269748885397756828750253299110069424740956247952600064041251585574528484588476473944341727482519388060809097306295863993253161426390251772475192900510930934707591759758092673453647075971736600040576504158740791529974726011037716213602655275571946800043708210084300000600135950682606513053697455221265565602549952322907512870289365507580132008361403735903670086179531997988086189513945641551667204804927089668705662423009848224623994600381101297002895775081593582832218616328221059109374724272912670764882021495951535268101068434209402077576274536642310105188198992469686026781090924718120406390459844110489258511127969791972805435635240038338244209371965492794683536157526355379093529415730634128402994986303788219715430563657605590344785710180297526773381527094162387385450213889336349907453690402704820045097183928624489551651561640258908587546288872628230762795990541137715594492190978728827456147517996410125385403355464458728095845993745316103768321213640065662421730920293255191831290947152972316742759339293968998708950023294361716441409321442370137983911510639269624525145664019479420357082927564633396282520193670908554635488687160091867310868531414213431946152918537601058730543856931343879368943049385510436695397433384187279927590277456432946003690396220023350534996363202059708841707824062025657970702288766445570903782415106098519514968371594398665076901841250794625915757608052507395844982304510061085857812931090753474416690943764816529707006789312983199878895241348932205525656423533659956832011021117754913861439552820238781661636434195044023866242913441176358756960977805593333174664422934551293926433808215619750414139227778696385774045411263882054529140757411621962504901916399539987559658403383166967167149207981281004676145338841598104611831569744443103167182906599116543512800582816798620120654793186040174231519936970157630908783505630671103674994546623536325767809254006839164259449241100986594659124070056934120307894392501129726379895295204135057522307523035069399285019560455594510703043425989363174698160336921780504045994907528037801986186077506052292773858404155078779951674171859372037823192271227540687183897846776339131759098475126856024765642419981178691065184294298489002081278155629199125233092897338658393429290657754534951149150927569424292449293819320429563974837523215947335041975680806158081999827989300039989269148817612307695258381523656085480700691741758882330362800629726743835911520995598030881038826395241804707968732613753492296925368441476647560270712394022041081818458966511319836663306757041261348307931728408962642415123285381667141829721911978337079748894934333841394655594172201815814584522050699389107586102281981896611851332593787882675873097661533744648681546396038556644105950379998441680009059273070675493026821068204490634422700289101562127493425446990425246425752615083552652152478800308547298430414192695282424425040975182185792201302334358563323929462911442291440695926694789545955742944530980224565765004166371288697824482441213268762326821903148302499902361681240327500345881783930691660429077707040174031261121375160809833454335709357731392168765778850047129273553674542214394248423919811557588230528087150411118943656930137354597019562170713179284496703549499654224330278105792438449414140540258167245657668724336210558157226223257881712359886100028340813266110420523796046911424692137165109379793727336211069925217711891983920561256637041491204897122174585298885678570884850303267118350190029975291151325140952629322092256483458563643039278234211308877535418062587083116573844789971577658926851788165905371152467375051042591836846862155952762653090224624378938848927696545306970423063409592307222275481100710360531692774225535009658919184327526847603173127849135898706926236727134606309975646910657342945311969841854553665217697313425953214435132225001509843059568587978293696826135495830530408550558663994435054009659099037036709406409086217369076443443196561580404990142347774349670616199741330928529299775280093402244102125571101729288332577608820031664384415167662289543981722782858004692359670787423950092716674559578645460129612771491292581596055311674905534234704814972480385277304438564974537281978661181156103473673380902038066206570148699627303120711435223306785637751469031080831486077390138022239224120395758008488925991963772297646268165508152042147918127188107337433481979707669700812477855602963435091610423372800198112574511356037137295709918577178317667156741606970703451026529342706184734381624871916195526271315154783134378755116258866314550266630881888527431937334766769839831904011202129795090688313682803483358193994322324818811350106320044669919742189569845079615815217974980455631552480171738095598517751878823970343297436039630191403356914952206813640134161314515649337053696841913581487655846717396009688428142657380556567373739157330878599061254233022509824956255007741165857190974179043098820855347033595964878252795991830876732056014027704205641144021010400464037499637521032065764195061316081570578187516598709366093357411638012388220699683751476734820664371116162161823927379117705323218753366473139097579849936872380729438975461254815104646463559305657876951919520707236842317125252441982737546438718211714171417941401136477306283916279127956700397778528728253525448630896921694505865993887083775441579936670022639486397036428162643800261552776945767985366848260778264280966468032364319046555634122951577615636389186885393574497434876426265362342514201108192776470318229762901291572849512317137326928961392138858663963071063423030852143414004827427004658909701654619053493452836190545014360177625861247143784471246640762756654192712994613038826605751338138509088554399167090179726287004592847243722773898044493515084824629629149546943561025571205510839304915481366769865089892773304697126137683346407121280178019522477415649980960615027204590269349138534240333432916667859842722494898083664388051505869023599668234706621252482695698575234707720331366491608672748170208127403333994611446978538732234978369964307118288639043106587663577498920689107563670233195120250916570069818612276736803763443112810674097371002797581345620191695217054401007459604658733451746365852255112704025679637825543526681794946188747765904070223298502888871166717835292739260584861578378392129178948623855150645700022349702663217839614821478734748339068599701586685931461807621209138197184672126728167814534917748384907493652466170930737476640822566351460831682874516071581434771673554574926357848138211822228408560467197832180284688369693107755084992662544214906106990445665189842783925866316945315997379128866793444332866697975122507639892598213409687719103069824241483740943113679767582697172917022833617411753108429281614607030838589345172426400218417509488792378826159677257870604746048264549625817975736314283398276706889688241539015147623166474905569090204100000549363327827937845625729478482789549100174417811111125086045533068667501805871392093634419955881969746092922032502120185291453069035473103240655563552059982260486383291129579886880080074129311590413792804310553603261912306912141572720721952349501504598803363597467182909327258224260335139833846868138086526667395027666853015953633709566324974325168716023924754262707045481101681451024416856111243418803058921989571294689857924834933325172676792825390471969279926320697188520765187986209386475716103882889017014546590304411969935421549917388167788842097374614965781406442183938523696960476949060609179377342009314275601559670152513254907662679462169769185192602931924141887716587465104762982914099848724733414017147147408120088285123250784044661354493201615217809537913223658347909995260893023368154346971687256226064031586622288112884545044376247041787483363967537186636980441557267462805330909472140635000514037487607206501883654617289745015863664864965833098118497066580904024937772623156151689001799152685931080762108459831027215341473926471226886696875099087344054816385058818377100029382013373616471019981793164971881052753287279254286935077165058103337054387372320920784998328243611136053169505937723134703999821649349540052907386588691956457235748747809277712529304103560880212171403014727550399082372950822788449695277865379461084779330903836641253638651011868005180069263972992301996420064008989559560008854217224343860375195439586936782846978377319703493511817782109195240704679683452296682117604046870441496526259880811829290889694401498506076436282556338621567185471909995063977588339780130468299360400849302628215468956067463470957984113864676990302056181009818595498338727933996635805921880734201445795763643008866018549060913407237476183285300571175582319784102866954252157749577079817885852977575079624831852488575071715384712853296226434517505983443929757307142179869007292819187837397425949988690835178146613025604633550457839592690890696477629738956457659841544565061399553846109303283310129673277502426074467295729670718890281622491821019875620490188057246859336613096988541887474438370898381724237411394518770563135344883019240774476407753812814505978209538040863750905498345984553858527727619166441784799823457182104695261341895166525346560316040244418810410374761736168501149787407873702762138138581564383821768666208944632136444066899516643733458411042826257311526059901612568408171721152143034541368877503235922754348062834606250956925188802333486076579156191387964802043717773283339638953482777730721060634712095893539037974278815698644739706381960027310063938432901682967756407618079863069315493620356187692011520922361783077095078574732768983074391575350306026199800501007551634334981237865281451767754196272442324531367619775677630027513578556687882649184131861366483903034862927383009765848786663319483105414392985340406162621953727807101240176304821580314730949813045024355239062761348394307348145902086965529213822167332294760665905601354222373246646933287726826687882319251251798381969116646223884153786165321552280415642964702910246610644923374942222102433563616401262550520002388056107368567288110418980304329493822239345417814762812445732820930824905070081824833308888867229745780967793331619013128002611115484186084115718444903615774846403305554064198923639125057336318182400946654081108090932677171512305437258726803962952190948798243482503084953444483027116669272713385092718399793383271374499723821833559088042236368067609114544335545311112358575159143825472329159968082225641817514180780525702789142300804105171480495039529670455490216506996339966946804643174124358836237674167041840053285048267350135996840767617352212490576697154816893147460127872004830510496182290102440806484534348115990593886025678318899798507338681448976716812527630402134534771291733531631036153736135117980258307926930193444404534518684162483794031218468073333140968130975005915659097145537199592072933825935186930772877616671260472264641930619980123832304315766884321248747401787582839594231282473061940012406057559780455125702222974319022027409145822746638237592632703031852830078645377612860018409143287230919531189282320675996607503285871832844868121987342338133712409159074194289112560753679059650249075657916745753667738043335159531675223784199310914274141084542006947729346258329557921027961328446147583048122535586451343958113878538258616782832357843755381451268834096515432291455617668393545133920002563700177329724856552094407782214564955186915943827604177881155118161577725598067973491134878804934970385572860272218529409295338801161524341826582031560454414301697020234092878817651761984238468063170067203381211125646334250262330718225553844721431053846943606829239112563393340606552449020615074866736938126633994105489871455949627169219065064628639764954938616823866281051742191739853412339387705551636609411722527856265106788443910857589893195127497868510425130102056448784653655055149162585324259429010919865264036335863681212184658560431447619170221793279120558871986340084370500462148631048672506913928526602636667539944805038870090052269410638643996777107595002105312651129936227540971538363447116764107199744381056254974758750226257021058111905172207509301329661770242606610789192970117649653263572205745630696333698132495593337506152132121735495234605458662398717927416741205760802778092433988574005650771912418846183569750802887828858515383352303798685716466462058804773724045380618950653513453005591961998696762221109628387301174656347062468286027089857444070722744986528826927979165655011938934483010317484758677539232396377081652813177935663864279710980525031298113204901553467755762283542949504384365650178905132209346428141208088977092662316205190098748331341918612844136324173140541484416695225644741918521924327617014348457127848361034905387129464080522307098324224137207748895494473618473357051313773268010890800322672692077968473086844382665358744952266002540731542521302062047764270420131296664102000265712487953247959486349100959139450802911909357419306468360390399469353773756374745449812020671816915811911159823530729765705451141670589946802989361589673865387004989459195855300714269161827055176580600355819048547247220574540342481899360235889708235290987103595108863936391134779217349451796611082605174753356376213594220802401008033216879558337003813540794802440375209408713021443166373415122718603530005018194850431390159133492860148994212006510143111542725792011333373054887321924497350079184844844677726471764267461396901008115508156388974118946946008830024401365009015248991366522723097440328710658767004498315261289816174503148810934099927175530948805294856544530229421981328513177837303868457183287604356212731581365161030801274180345989521486894026726049889408452202959046668898928084503766433199697862586420538361958731012840774281012101355628746387625932498987552173857329544217632916703520818030446882323685625187218941072472676876394935132834203852514413652147219785680563296457178752074205612401336563465501644324699449122435252017567538398400457617221189987021831213008195255918836465087051050628461436607243298486082818935781868900176087645532184324683974052345860621017800241931358945106166445077813114303684629651350278170333689473441535128114311429728945493667895867671376611544947769828718723120384883333254878555293942981183579801654138254719860215160420445750448191896643667674995136421049072362120470380233610821999903022001969700148715657208751417110110602335402100271919432419676786825253725445248082213973416753099863395089316406993289489214006351891331393800970993021436615428357406147487409092193175197764838354355680852620192407348359366238495969822737421013178215767537805239096173122446572350974775869188455433404926917479323785848022995104839128105399556101813682485765759621325106143349476578545689588291625762881739356967254606260141142397555799700387827321421526066845483897423936037584445215103385252814228995406795514143396509837542688409537569999398818808810481125560970965806452904670085021420349152771077457198714038488593215959761370192460923960739834615546569517126328409819772087891839509260928786118689466572668889689557790547638386269136662497344271348593088372875485361647710996892938077955235866444269052349989901165947579939819261719532110227271703081902606214927324133732823691903826223245066559199850501455175050507314604189158359278475091801363155713733604155942552285639700813270569998940744607662706959355437588404405604090187461115654943351738215506138506388198033606388223591810642000233691961792594172910405373678193575177404923679287467964889246888163299998125346214747963088714898527355829847238009613566064494580413353539107942058434411836262273711882518691726580912214894404850798355714204801622948762548931274776824248442485390975509859148452102429163130951581891202840543731055535549210786935404804709492506137424221617067654397471668120615278560792601459769401708034099344805678258157435635928281118723168579441653692261631502161722320341626957436596161738595294319439036625759387391631510339209122474150421105955324250038511871755632325831004169248040663116944272512113125718201281148864471457125767008620971083083187121887821888160396865437229846211826802616937852590512920637546764955741351829535039892099972223783336575345166043384175033869311252098568266196187463815674632185895257875631487309627289193264872011969423704211075953369042576820496449528907170167478609225351245079526699532967507909437457258410370155536866347656495979055383492354070988675224826528477713533766763206691767841313124863406404471322618823088836169264325045165456600733212270927191835813386565640542157294348120656914291771303435314751136315383914680709506842843027752894492475273831169864673994937931276288498138195891363967852062149496397715417307969052743069721803158726108774438396564159006545769964573799900043485552327734960755702077262640267933664516360025260685410917437291033354536138095290144269539240540425019717823848894906288441475876378039486089969739877519959535864954855790483617180250181249394941193901550473509033197325582669241485808120285679105903490359899493684501491437958216190364221826950063166313193612870044279447708654895147369203386099422356177506758617631602223976735251014360434131584772128816454751012690167691792939559348186884359321044380390745611695560720126577258920275781633779153665378232729460172123164832811292233096826872086609782996842782399840868535684634935957387638699827921729945408751180713493744049229628168791088189840675351782990297819822535235678647872906155166859069351314439202824575132580449695512902296473928131543172324831467546122996184541550241013902343604583139162829247084930533183452859479691950498541856470755485279127111407594146143976555726473927846302310333995581045443649783836008840524846665397740455856261159626142838488566955580263492707544685428965589036164537631849976131425487632728873854629904479683862574440492559650646143780586737774211229850128074947920550885774736503707867199585688992591438683627295955490077909857610395912737864156205264639485701633823315893849448131525080689596480662614812374130223405867681019570655556146212731144256082675305577046513000580506000868628972570582920799209851281634774347314843492800557413489544031155541525724468571757848627221109671795147387903538978260316492965602102800274187999376049654177554091511887093042821179520225726477344015636690100336097900767102932288560077720302699920267868734521671245534953921974024798851102771327270452603160102737101396099905434928965776905491449480602497454342425866377850203249711390493932863794265612875060411246570905502770377410605013064202513830581967901606852270616459150948056375455112046177939644720198632225700382959425794479290211155225103203958112141419334024910321168035354254582893555265123329708337712277538888144139733157190323507844714145378658695293765211578501287562805774512630617233554512315046363560729346964234090272318465519399056284802783863697164996216787946997816192376904021593444806795236311465360634992005285972550678676936967023671389845322463386872008335254655796131078541197634308168589893515586472488999845219846360992609944685369905246137082222862767613265475041630490828091480380397630902736061278936239472107453576149477077892073591934275349366980574123549440009192691828237980552046686926484333884464332078223864830752199617764743889094577993823122503363097282649450280479019170762969682616015499699540703664830711854750348788613114960314338657814742338832613783646183308860673844757704150197462824533326092666058756305510571537708212637776532961534075485610236536505514645259692788865171331868766856622539830368973664884042237517439582267757179107606033789660417608817182535616929407953415379322512599688743397188337675261883189126424472222605449403459003061185785138424247142895287448310149742279000428987113700155012804369676419926823803656568430029736326388290586135956598784076603290318333462100452254769532387423820135376107852018045893142142646519328676686068825193818609230436780590527136969347391573570244680820407330969427128397112332339938072791120961700090050934758060131518505655120670641553508111501956593542847561631885670728796037677504631397886353323653361563789589439228752644268483151852187088184115316424500590189590751144960259678075885017994222324441746617846785102815724187510413846919272445005326947601692170745392508451204512632199209858831241352846081407067574250609153772454264699904010001730787127795248392463256387676719109688695205593307350395043117160460114579851808748912357754928921650538393985264935348770326470256722336660164590112222439463433148796732802102181585397532953738006509476525315330710581508710240362537935387635055496532437694794806387415438006091094219757612962723974036353376721502521476383397154749843510750072730697696378385338998953302381802379747114550100629085682286257945933060135040314614817360201595288362659055708348206117576374407294241905950444677890824950013044203773868579591077459106233202072793235686375918500193369710225183536612285602456095602384413406195493605160230331478597365211765266014105514038823730972943944581273018408996658978902008409122083755526725350589930559189196354050371790952136820189097213339277277235448415792919911655893410049504207847128717568610674601579739947766549939052400519894637946004766477499411584733600478857168995757280761365643956328572903048579030195400173708575650925749092387253397086273019573070427302095995728850819847813070874658851036390083899073157044250653600668903315697980672343368855873342702178219778518846392582975614153393818927969589770689704082431629030250360230596143980864306236593056876444039061708952150130508378062246957829691732884594657079332651848208242908262237328455355211757997176005945413427024099936145738024112636200925907655227011573866361210770741374991353979956386740583336134349109136343031811913516492053217519351106891524683030809173842839035118246020738791489347409642819598977403986263670120483609565357182268593983205299707595046367055832706661534414371163828718427761966560881742124473264559307378404928269790986034128994848735735315083332896969284576159762509988772225615418999843132044616382259773908519825639061702423355936290741994322852143829489096616959118381066456826669967805869558802878616551714640038538514756921164732723668182199914058199797518618885341017466528269666404117499411116300484579420281836134586030497982722480632321381445856554468750614582834124061260425642928205682466409483759182640007180778225089468482102144645414105522800509640883710582487784243458175060129845350973268696216994057793052729199017907601038794043651534789590515288997280428029578085334562581595225674258843330003019948938195900611948237684538124936681791548056835138171559136534998987190602874943078704779634696781264157886119356866595988674379826670633050474903161257168037492332909666284953620098612716231930792392882839498650561383774894261907378155171323796898023452922472153921987220549288190391039746892716556066735807967223159500131591361639793552081631863765539076179773362035748488466907189089623486346211233213222804155147133066158107974124393684376782441195795724420555340616113663530383682477848466405098952361775053090998956731992331862288868398684660200843319947658085142900117229271922990189091286275530693733371989314578124812968221732416977213234870102977948464271005854971477220041147343887785808096600305003634595350417522648863385160657233480704638036658599855683355681689343550422018774560030896300800974053780227824907476397006334504676264189647995129240197258746753426882363400021042427935543527659436564085237845834333647324208520755933837332218330033482342661797882389718377173280431440142873211103563532874071639832044130424962988409015145020877410169935205681426844143498248638013003225812679439472573812812046501578320985553082775102170744010715105182759841217042532550608949675639339678235477670705944224546500784383911023588531695183181228484287877834647971171523828941735564251371673041209462622915407001695509342637742912099187322996547187815295079167872742849179717237110062103633114455350936459003856654686445597365822076760761927371575793019200771456804474414291924261639638198725712145047564698522373847622603696005599032985731279525040482471019771818260691825931690317146420946694498648855472794358472593512247099262400762063146730424873360566305349635963643246468580397387356756431283143289207762448161898428573242714332637524499433698485841291243800967487272256503119102124837152128680767997370765192103491047811382517198533013721217960958896520468301908774088298695618406002669902954514116073848291381229965564218232132646433183452132398854305802377108112925540502620593796697236533611433189806535863369187667076878342403395514012790055786199847187795356885235552962901878681689047531628694342819332069487050030206711500936195228330488539094273729713952538770619032957002017760016265250480657820623429713545346648641850766516045498094049460216622384763926579569318371315907185047870306376686544677077176771234179932610380660193566859428873866503595821477880977044129655869636025308085971841650429213778997488012241296450756893989237751465100674293640063605097331579494512484740390107748347857787647858146195267580182679849126891668194552231302416299243962557095860682452760726589678557621947174909863054873168446124621498369533387256591948357870024560105427994560143934926239047741817719597599357220330593307817555009616753641252848196168012409852326900282445001061078466835657683734938762061407258160450876804876066071831658328209148430234248694474180655209405091598549402584038901479370858119940475486683327547217043313149117950788261451889399295755366875676228293991221983220419648762038104609512467479396117382411675302955713086547119633409868289604009579010782343134150777821506144181087222179439825235514403167183854554648735444286680506087104236046361180020232064610475233210116241200572338852558284151130738352145820790670429296584342273640682767255167978075547931976108960232721415603670960983101190913953938449308704618893596665524898872005637315689162787734423258028161158199460067881071360618072842710040900328447151250965023592900439536189697773200539103668211777124768246383809052401213347017540313337682524599060208721100553458639818044116341159738707090534434076344630116388645103298963818426350026487282241900342345711182937559704166138507848262639688343493095951665215030734581850248421937080988633049515253658603710941857344910681687289766714179413660725852677701521914157849923047551052880673310360768714746928966493609049782549856565470436654709635724869054777113794363690681739662311506319078678760460445656906337719140030895001509920118834480546947920775034024451364400163438447016115622825631344157828938233218546753630842665276932799443275767480813272604388650046051270005807838336401581304812527727941685761337649005208232658581392670910726962537693763760232265161882434630968701419396359955056971295330665250470275314019692093061108108892514190504078357038040506584217352468923389629560677755341794276124581064563630336499568541541256835265400660722734665368342439190446212151555931592487865878666972910618470734121879043198982614454872445032306164195571817011443317365018806442171299297143536209560058186266931925300786045192305177145706874099802783152265977551636155519246533658139652638838944451388229453784907232830471813991644468652735956784001459229741135216436588330899617084339925800182308716036192220405216647619424862209685909685602882909388473502503071652211225267369944092094451850587661834229425986284955875665891181250431098911667346832606935043146241367754182448420374543886972499377179583702033170988461490760383476017962890479310564891341431339528083749175230473308078042354581642798723697098944201485065483530211134592060156895782430049650097877658178159278915150870878066000145197325865502086605295588023136923291109111894756982771242337158718566860834013353610441808100995292433452052380681243175633981290174231956670993700164560703688349833549411645445168570005005767422733373744701242302177320327614030801635941702476266781194074449004263327196186744260670922421229393668546132333500239254918206698453206705213878969839234376676838445891466026735243300718179185186509478938816757909112586094177717932471294510519880087031866751376292176474224824613721679627935497076606436440079198156955978239412594184019919091383806142976496638197241486984570008210462956191140653925908739024681614279383058222562357996013864434261522271822076047850876204155019194577759896815208741569697749356637992254288856921345990497587658716689745526875348126243907332917457857750326214617848527208201588265697502451618734322193735516902656807456555877105550235457580713779121228068741654685144166700881806323387048035735690192550429757131281718717872283334135631894386797096220519267520306322455895810798464708536754124784709463925080279777484072062043466327687215567762674789556070058091877734860195273154726140535868056220252017030222400227008211356318575311909512527345133924419718648495836438579946483523679757795073841370055515442534380340559722204624422205992221682085646444284494313368963531048303515774274989136844905124063985005362979554464207898842767589105747722830019778836786186214265880564222386776008949709022409439445172767067671966075028536878510481581159667198552100767863820606588073581801377778334143028028216689622445028418639336610206206917597828336833759590547167617328212911822176547486333561040315856765755792819781305000904347654238279542673707061118151666486721755751904948637476259698576992345349398930925544802379672057115747797182960371439379291462783902744060810455560981327851858955733000398907701045577740707056909042607893050439870441924359458791420458237612713068235975734012839882958542778012491695749684951504336857842421407244019706958280090519715250082074547714663850052641464909288913529642941044389428077828091920724679076562367357806768006583447882603312828712577460343281207709280655948239768134731091954784317483870072637389132701118740976897149799006558432374051158098533913061997670624685398983229012766126051889081957559941857786863225508957147334198173914834786371978335065995418334203695651619114329273649428082298711901560217858056749266743764118660046568450367564149622996097992011677122371763561856153683203262044051525754954426860768714159927390213599681001783129064591400929478852271477637142218001287324948825037418488574347008596302898976315993199740009315177335653343205669374330540890924007144590990551017931450767023292771032769512041732914391522504100439696913950889892146139035677348725647826838758428570990425985076595486480254297652967001972087983960011823047378172912869456389662356849627119677809031916010738641908626048609003282972002282506775638396113969375393379946054278906884167425468001277290103014677664684534447520524251671338034454110132530672390664659386545369656073260782233135845400384030819545557100786139072862227199043039091652852967281673690182366504356839252096266314840349241970682117017356386988633797731762780197717168279929392335333254217152091941376491246503739661677095132099645408414923723245314043534497552482282365235729471577956989417271053853839463669284713567622419629971673061834586864706166952679953825956552055833993039096622294080008111220199655839811795170199284208515702055347174259352849116048151453053363187280939827578030479613919149333113737497113568247135840674958439991409273048493378910913990769248125196183830937693794970185751639137851312599322073495573585067261503484242601463721094043526493142592374130816557353684673375622415587473496306403326264397130718798380885505354517706626619781789610891314312150159796031432292014157720816251207427837497391174607374977650179073388445816849170612625062853461407795648205529367592918653977917115982043288928435580617552695294329035656633391144911538020111414206603586668143043119252270235536065788912307776618601193681346290695026710581589218589157949417440826980959761373531263222772943077064222153961042969554484259601262296253165103106637873949862977239125362579045370795613952256764758839790735769331401955203854647642921219970788040523341269887785921680073554585736115343658354475660806738341556990168098309092140434264570879796556983362932227631660312621459330276777195158836473646004772719737495699056379192314157099083943341429826733646124308332923325775700978085671831284122063723902888051147693531213473365106816296319703138572914741554448729002812042144469117081162708314101303120985613953885793597722260716370685027548234169459336786758307240914137036914684452759628552193689391106801795213304085126544935638406891239998211552300358978729459276921395526618468160965156509650532890546897188495681917164292133801051526369965669901937417712007833689630046401296855700672172895448689762643829382404718428905132264436686061672593328701845734060256532032322606941185959039337689636592066544056770785357000719812159019279017702158912218698603259244422159546839944773289544118591084336650059319696899453754844249423617437107067248666724554255024519225841173406179764282469302139070734403912893490404841177828691744717940094263450267529948974054437825301655929449089227805276047512808275336152311916269262147524938421766608910078589687949392158136188092158784187550917884175297275171643665035965174815860613273166257358993545513360841225093427155517498449379488531595458684871109379781360915799114500839311337776572030258268816991236159247167208666418443459439957193631971751247557169672393648713326927421297054515585615400477164252582418320751726147848802036998396407914234094566031227625094819547148574068531175012133888768934517189984221983962962889261388227260100909306383645610428572506997623199277838284628375293306047568097701828146726818379594498262256538229797086779506843702394849730383611328244701183677663378279748004268673693768798000023237818502114087774548111533871172397792752211299221935627109784238919862602810772738545989673858244618278643078090264421418726875553555363694954892973550929917697048604555646882035017207297262294472917730615146053769838717035544626280330981953534322378386313950030350136817882130832387324188470747467641639800714144784323574812139848864248361921524765838236199251200565087188608711868586418544497438727230907667101647233267823246642340776732882283340327966881142394908377307052362383492932763571982862112905647146713571135736259886698038732252353285478700322469144656161090034812048182705390683263572983452369233868018566933599071904144138855756064419005193097101552208162816798060112064708962716463504544348682767585032755245972638279270336595194238282187895765177521976476098392064563323260066882573212917819020860432555645086651694098078794688929599910290548422898293508710608971854644673685216538036318811499574978051158362291602269102101741567696545203566862736417578316553982939616590102439725780906769340490799992080972502396343377068160089060701963895069754983322868656583780105426223432829169543574836603320608280341971065303300435622464053410655252392622807346421515831633801400014819687538929506625946311165602292202400578416724168885646041953325442445510356722572051128044691913720815201102447577002845658566131159447728944478619713522234138865338751356192571126227843830545732120636181150177942730971602932660910613161070706941381624023910690485326722469609757329738881333855759481394688408105075477549236399767758072712448452924339950725021903887912766401335299794076788905659001451104326742562520132493198462892783541214141993475462383728268635318444176310404746788002548143872483479111838083489679919391384630338377238588453576938073954357656898826758926934842072771533153428657216011794958483378074453489000614198816081301458377981665085988687041795705487183422624644646554301576838367520320062220504675968392805526966785527929814916354581971012132961283038088224399058605646804949875845882640776123228603230272157310950889715041368223869227456902588814817158975369671168833255148412702820316799565800358203100967054853679304304836045627968399720963269176977609404005106814783285869356960219729507148079236547675512744771273763795057929754804416985711095167293452722536345965980610067267783489030712675690736239812764554477972923342506390468122504570068858451505572285044208426089386478112144192950171885096757638942963139731959138128669108549582275217672388166149270367327395119761596016127584865471576197647145216708858548111561065695710866117728964629790594926857139834164172006442636106789434771620177831929073494865736514600408367214496495088961698117849229084581220759587431905828351323547358542513470758520718901436026095984456809213168886483722500598578641278643050959871745402276582130987065161505997595891594441213685351133100876282663867631419948264210601812897715111024505152834047391561933113841975029562048431609384696422672075954737096331514922794778724143376085681215925541882716206099054692193718626134168844092565235331251891586308821187026219052816931729507112707166826345653185546157695059983002224817365614122966142841132408809318661660189174809177666830959390436930922529133121445468303761721510110727740691142063223213423964431945581170030474175773294057625480668111369595036147421782887917678764092574736488335645248365118211896538510867006701960276288383756159674864288690512992699109203014550103612657337299243129874502540298134566636340579998659584381928505523137117584762313339168937316286327569820774200160726540424518702729254604584763266524464352449874281888743435398999551601907020693669174801184093275025048065042010999643055996729236379380377109962329105534274589287061185743912435306572351551857018922443885234360854387947030367293691866569255579723781186179001469996142082191858412510329281080932320636963607642334635155699785382134937093008425849898165697957800969032020768199875389114972786664427781476524042840303295904504760199943072152543995271605706602859116155447501659670183871774805260539079174138528105332420872460457414901800781081405491655785839949648629847967067618711788517951369030620853482793549018144075152254435141411382760573627480912011848515932612548919868561177902279476020548508272900602388553436679789018072983694963063411210988811850460671434252814215717947787736662157060710484005360200468747442760200003238274878615106444127001065917947866822421600669704328141974139241904777814343666663245617390527383148444317940553865380961870657133459307078131515849056867466701442725194282953714804931713316498556295293852040504248621423251128269453842800226881024104063013110520542281819669881922823941018044039192027727355868180427133978386440865286567641577468008037784496602165619399132775186512922618146650707310721455214289139602795066827120185964617827029360374795943685097065702718211933719086212870937607121682293376657336797207462136222798838731680875554074370390846742237368249016770365503208269265257618886565547272279432518776972280958347875311403044202619126031785710987969715262549809298699341217386987317138981775255780999264862842276433057359214015325092711625109421061232923942862543007264251904634988498551279571661018563574656719603035167055845776509169664015326074171800744499118331277985491068530409954358977255126611475214647909935010515292262687076546660045412825278224727693091741284321682642829261501707957348589077405015842161642837031081089661878148702466596206108602550630390400421826451073136554098382591552509286802721815556158430927898207527181643536098989766144341892758255199320772826247739749326027214679162746521184017605549846517424049833550110015183344022445550324964230124006169277868426278768273163410868754858133209777703385016792544788719934467565707840564137974508728172819377862733454236435638664466077273578840020507742348490459256738956252173326964652950415185432081310157451159213746184819226780391935012852805344434575695971884730376012349143768712015037326919033352755559181983731651103358272726399368143489996321025478405946357650172161616289058410447474848925522332030129739206455515343308584583712508369156305192007699736372261532617537190726883926688557602121216069559303112299047636237654033904573998343845492313723037870809624056300238207506938666520362422565025063439204369596177385189605195333486704029038304365952727106926992674846511656059063511191560865534726899029958723506047647117083852179655180929204466687838477969694842983017227441415290197763097947625496897296690700219537127022868920696401108028346495389566483120094761050183584724583907241798256875946289311468440259428014025616414046086563629085895051575575032054285763718234549095707490200472085007687740858785453508781690797674156414367748188558835008609094005389966156787578978308013878594403016246938081538180245269890576379342898585483637197112460594354127530524223107755438540926435403081611352144294835023655075220617716905047685520852793105351371411558509437793572175976937553539169160302083096909998176835650402376650354457801459770632725528966997184625850982807981456274538998761249393524611613724373118986853152132628764348060946064787612685170992123241221524816605064170155495820302114012382413245779458737670506937882285191339766426374296042493823344180256138560940113075620889215855286997113243784207998248610882306302828340637068032357622126113130664260451908073243218850367493245622367263490431308134854047940895849693044474118479121390167241712092785488977768876297086806678980602754170041567984402965314477387578829324966046302344228334476012240892324802678928554462474616660224792641356672605332507624078130764811723670200805635495536199952504600716108978518659100396495589541926713385132500631167409484427684818615723461412857700299505901052425697721373061717676044756363098474088265938592943759181523749721418491898210573260513863456925243626707992901366178535818365049728602014454187390946554729326160579539360654787709197390080991246433489761094791630283611029801094562966697500179927494597379736913290357310328413582206831664607517197678436632985492468778248289356315603417855751442479057174634326716358250733680218761340148146890317630484508754485894099050118360589550628928753491614615307049134240292776051775233432974523102590354105690831736815680832028238882014218907478796504134965251017459352651315228552500478345252291606774341388185196891634871309533356143109645815904827815507073017650006100859632975538654262283660633727342710679725295149630622243636516666961376229216460270375439711861542065591066408764071717028491422696888491074450596914184000092052777012348085396569378385995073754747778663554441080598876991528790284072885296528419591887010614253827375961653608379172447680229347961923357947122164439650474536372048054571943514808512577982305529686238132375633264289321455126858952030591000185955257711931343940784043151004536281851272406414843518031991765772713557270441554524231414503710097201656651805211023318525376356538411454904713660727383514855077605438336466753021165204842766295489051569105987026283550021983206418688001091101060090424812074486934321748980104732047970754832914891529112480565578085562502891276782717736494787471538546814708996476119297305074452148497575040972411368365821440476413673638911756294688585169300080654828391551230497842662621051786269766492790896277568700421124652523945453746660961540476084559925879175820286471033558553506540790069207894234925909916413307552791500519613799622126712992275843771149142798685052369650129544512034025538664191953263893789313088793926011337273591499881290871258819347261530561575077330372675478979886294936149804055225309766074054759601940890691227274060314210711337979341569129405053248174856848960998716785210144165382181577270000919148859020159959076592217236217670572578452094792923876937995402503090108972004723044864711905615360632512503408411964100609632435850019532816803898249451237731794629938610633623759086531831715325045969321282633327919219076368355600901829768765432924860634208829143765534518355211449752294721896022011357879098551958081674551173607566987934735836941464753618457871950910591927555822166546523016721373823601461408199263579602948547290446704276651623909600077514383411705247097783782201641805294639761756374253192632886428763979418078780269670276470002919487858667094469581186356052588296014879381422807251697041171476758138674235329687540751802681189515091030731443417957317522538714359637657776956051229487483160777960902312691530687052515083368629112793823349611615528198165635288398837523892929554546936886828443827475441966262011462035066895220305580156079253501732049674612320306701331942704968884910794850171074915787195735728600641137374535637936630746489545409361817694583066552204442852786099773940692549656129956912855063796130902770197155474070475190868134834969386311786084395736927129099467797225171676763495080556340801340043111432361640507504188298511939358705717909432549000041307272322159859125710608169812010659350320070608100457872217134206608392797958336963147210452901991877350096173662617822819443564161937266129692700465090472271374780163329007393368706233571607765953373823004303626360893362839013092749649245729804159961510676622280445275579529049879215565254016905253605631396410318381836768063604582802281679335873532099118020450366054371039514474238352962209058899967229642899473083482861973809870690462018401956970398266004156189961051746397274800515533305624267463199028653865525650731960474574515671830827715251618363848963019957875561840869767210399705589507011470623257859566692930930797688870039470052299474294566164496114331023766687184087510814397021716194449762070964672618616589338499307517696929386130993658695467095505162345018315784512568984890563113642647021474540645484108593166173163401929362038044718115432572723751941147152838703310878909179424726030266069176056196940007351818348208887131100831541895309238870952237749928703974444954519936613043170386135217140559787056181151469567190089741941654657977579318784213041718126852543768541986843311100559957245345657099479086148613478394469001630054628594896014469015926346998273447409174975455947043469709432813686544043751420271914231402155512087599511133665622151431519802745671800956104676304694755407753380286406501473035106461739873308499137472904250832646733879594496680442718188712839152863922197323179264230821366330812076329933131177616610465011130461330525017662952253428138447134441382422933759974196114879613650290638706075219489265836560666884059701678967194951490923383320821206215090799190404953769444684388405295223956266374691277891484590909477004838873900564352688498648463580160824003654141654949129475959714069342376131254534754395247124157717993208891266317954669219011875245352054887508921413203692760041385692892258898807598105640240223410798069567993322674126262386243831480181348234590424811098099563770297663366021997903964277163961890383883206043625202003004494322050272781290618563664032256642145944179537209093632127686292882824017689779987120754265550299683956320406806944809388979775058754954925223738403279782738159615126787915019970834414642836443799858299909720132391782350674276282471698148309648124451484662192824270588527821557288566412740507791014718893348852745064989308178857893295704847344214453029965048127929508229590916915943564465032102750150323571268102445954283548918369899210815757915852269678369764020231798594879212100285502448637052391806697495665504699147791302176396180251554161392632412469397979646379719053737788034970947243522988344554913807785090619942057862249239256621556058005246673811993147189269871277148854848010861159260307639734481969753436189027044470003460818239128844942330106416696102463535394376943714359337455901372906116991103221319348424401869591604819547271056150199443104637391888732157369986541450484579915756157215776704778951819264889697388697599663950210009186739235884092175308690636050304738186841197801956365492980935466193908971227122820639685224467854295004723976112664576037301162543825080134711911899508493252807365252942586210590618968809885632008141591337147143132017768279900414552013125388737295333167947808605028268409449731573682556547794447762688438091821903119557349571017511194290414083923987395145555254105029043398894847597754562608328594722301504210112458342769003928667511637667064897841100957349275740643656515024901511767188102744514660093112201992982440393020660203684503668443086541943424401858780875604910840226684056122320369912920001466858531670765592943396697721031389195179553253230857438444883876446140045016388362717847849548876114373704916441159359801874164579575975224377720663347414036584840760156470182526049969902463162378738114185134734512296302552471875598418413860462003539387896936865714973969001858712137086956768756553053580790418835451400021780210512039425304384541808373621107850272016314547454548218630530294624242192681064032420579702198802237973485009341307858693464833755900592058860995023834975024532707975752491057335679579518273119559992079616215608976015210209408376274644961894462244200507228404432719961541578465951481703867523015135808228236728240911573619995030585843467418760532684033954032965801774836579628547567166148494152751754003560909583328323747171764989065258198711445902478211534226223651128050794265396337980088245781992390014871759204516597858352283041610065062894825453596604224031603912443393057160001554383186499810387162192338109069609700277989217615434069372537233571751094493727844871252906637318649316270561682381149160518244893219289821868041329499735413913834596625534017703822043971332823544006563865629147604751700195078787784556154645067949164745548099290006480653488711866544736512959244309399093196402445669139274538049330462254590670640152370573320741111154880320012520899106823932289484465076176741489358720104950183520194903461955341597102084313671866681747816579123975285525800821146359353381640040458699811553520470498910711818921444827091696716550896805787530821089399496578586119282016960152329886744560619870188744932747123243328047618661230771163554133482378504254766591726911361852734347837595233097863492380849295558294310925170946545678867896073591607787525441148281042573681217755773948513120763434154457392760676363160859172459290362608858981185465302207118217536719717902883779513535740135651282641624971865025669472728467382180653415361012152525132363695828711255830319283902117381639342727907188750424663503476452094188139451429573743632074054312089600143098201974899937556660645255120323136112158785007203272919569260316930240951718650732788686563940613260975315137981435552163333237485404376616917653747750095037743683828430621029718217063091430161626899766789442658020567915209430240628141980310599364463148447676590066837211224720374291026980527023965151525888724577190265253648746545183709576191147143103633625002507395717355150974575172716702483235807881722596763636344975310748534367672361351620843367042024963268783140985784925886746553057759323441743963290258368507269481023669509674385027427098715982506830984618646993423691115314551094000717702070820934261524843818934687126879057266445317062124979135543295947216622881848430283373778318660206368794482458982831788711041078570453129355830878548902296297365990617160124798131678629239653937123341213522177720155560250399241834127500405124752112505251371180445914107685941581212877330898809597763466384339044789890474257153772235934365570452398573829025536293587873959671424625245168156436334702741959688876483416508917493305956111658305928250195934688925875165123790996816854440577160960965258677894832492853112591743262740152360079370396280146590201009618660236360101866888068101084846144012269952525045619366331940557350908875703508504911835427627283199759174011614536893023174624751767294798351736896241924156830517956614633022442711643094511459302043925251982696907316074469863677260531214216684969984416658770694384862540690225171944053135303234695985648317391082198166505576235356815847745487470243735109045934239177606808935056236045832695088444770452417631078509076348548759660588044226809817974729695582105683918196369262858631426327031145184591096559614042447097336783399734917120089186859018161396120606968523837694480817715711811032638084039014727215628183655039122568831172061678461241929120932968597212693653173177921583960164834227170500814488733620932592709603509925028348037711673625612198126667239277952166814719983241557167214605301153001686232693724990922965592212615503398935775402218327211737119067879872684163622246059279418996653187985644033369399592351959848732616899363979717217296855475071389755142103671194675883532944007447469329196944303156754848594214565680541072123910111534035181935200792732005522027404539245907204893224182746695989652955787473071409468359314220565092431094176479862268785568989103630578546187724258585319970210532949467647444041325259120838129678065281104784043702980717231092896183556181837333066137101241188746626612496198323137843616088260988251997567636031174408461627830582514172674432247105088296514772118158214863663461708024780015949757196347882169132446282343288096617165866871730628017905092001916054265476947932814129749585949838634535117969052273843135108338711456056006725497605160768339223733879654500143719592692331348528279846594432289368811415669904916335520006842246536905313869978839055088907282797776175445970603564340927086184839626980323360603015347496602612483693976424044022364644120201452740645839827347142521171954839531261381148644571156741915328849736309899787428836496357273004187648374272148576274285499581908608779793048439913869695604813063567512952482344019869585134848333451995773618388311623466046396796961464504177139473003323482981293215512894177773902516918351672473299830027712032303509126157054949882756731689008236167012931946409719369685237138948098367992208772855186795372802816568584817049343945469686841320141765068576804079008086069474737588742995685794046084464594096432141729377403356671432034107877797635086528939998861679066250859051299458245745802169638753934507319786061660920186676681804744763372110824252222836986885483653118333359526455959417041291985119230447389153410135370927434071101779316277146589702511002680962572957963351348732724068413086472907681263573737260310066170991689879324963032789202191035857146177643494746521772272515499315196680151619585489512297081305063005058478934939414882470343014401478276889843606480856143944492374323329214245738968119250275483171558514662214825935213538474340219121535785984425646700531729236182689539188192268823954012305646281995839901625838674218160394729846386559461245187583419973321056071610650159911961257354135595038124227848821111617176453648246276559545848271722762413120699216709191171103486998066374432737931015911143533114392734385669445295484574807110612278560367936556358477195992336434880307471232857354837920984926335899050287489913680783855359067481227872484083603746284388189583473387468167418683979282438415824400960565177375061105475897425995679453501577866684772083435964466701234903260819133683370046137770220103668223867279829397705583837932033085403295646234459587506943892725030695929291384814742997222194413072359915652002952426234168106661116207664060683703915193368034001974372667017620083836366199636234711407838378289491665929638464175894680180237420420511654350431598922773348291706584871381590954304927165728790801711192878331562801870251842174723681595350406058465934792691171575703956314006246029308986392016615798920902183019705993010581938359324895643166896952374959066699743369372602857590412352407146397250441318057424106377003975898264262036868903212429356811721175688814556573954218014804300183016776278546928277734969692909942149973110476219146164592850423714396687004902715601852850428512212564786766587358638058413677955655913155374194788842746726076283218846634698090427866636194923655804477400294335242549507113021431236433025117543036309206531520223405098550799215509649786139603625560731576196684137142923938458248512309179142734971072174903160001302914564625516477660844957884515896041012201592538345914646656088115817103903718239778590770445799563749307362678389073410625585196354389216112387159602151609913896758331235435410840752858415246618877385185953652749333808389552330442870197847436827699174835199667381456215465866441727299227940301600527090916919841274845464771885127051829760382845764511934491261930389362274165608586732951271373159193177219418074499214002446475957112278316728398817801087768249789152326261094165200149461889589472524789507430095602646500139065300328717095157068701983749978659514681615684217487069931360603425111190464696001006343098968682867130295972378659987339743648348605112395169129423426727510336007964756642295927886519855674100185159404318116637047148405389046090417189908901742493491716639565514158060136549554621834757133751336269850971415404637026699178404905333427019919674479353431381656089707454362833499207383095281568806552664295806778105750401519738870316608553459327408888256700073276645955611025165558172984287490970863407726412045518111330475274856622548228161937291458136114228502609907400828130079562674874892648925327930652272336864013735519745232837760803428048800913433159078512734912858490995565426289972023022718379967320170096228339818532213316201029756742474887992172000346736856719139243345785118212526460254173461534209972872954180212520792008571438751572837302260288016942002823205722319693940514589793588185798979662094845766215024296894137937203550911272463338995747295508050348080977855080279615145246546057362281805708897924122734522000014851016593353378859252125201203335786781448771400290639398110851963818426318980342855415690896945913049148210508689901456459221392291361206430004683093414140743275424795515710303020906508341059630711561272170285684416136244731615978598102997918073609792572273598647647715224377117017488180657504595413709008619223807205859295452580141709876628730010448334266534220012033798262698819935756691746378170129766718213963739238681971487865570842572477464631157809292813370543080706976937334300640348876810941008846950735098408232964539917721037687952684037970072266918759980988368112147538084441360805526218161603200617939990544410947019140737331805045224562757916539504212387146004737518843122737658842847224488186226849568098129283992182215770640793911042928235664512558636606954119763929095214015697258311684312300179007313067164193593367329676047511033129408555626731188626775598934536558187445339367953561686925515720418368450285472771846753628433493928397070305602751797254532475748056450772385939848699027120518468333154155401440206892089120165243722216805106315514531350899797327248131595748760912100880341463276392167694724251475645589109733455270544222763377573126796565787619118898092261799352009201686343480049050964742202246885322897534041011977058371827174193065996732208618852469545801870990325044065960489436816402464797623779283906068637641439597088183230090823624079469322100364342040283261311111322581595559731147955322238358845857024330021325525699242773337464443316711598283070564930022579587404418146834226764538410491014126891531794897107622709873899497576062599408209299975419185721401207260273228902108063159984012071053642597118896542961136395833657133645854082858696476177221464422263265308676801773636501583545994086872255462299292998983621814639838202967089549919720060826943024081623779587924161358759905973105970256343960385322978342326054037583534681234113602159356387228896303280565266842494460897802890943655240950736186503477819901193781908227881296218240856101412250026860484122556888198296035373810101159618141879259472059327523508478778408159531118695975728187049248139292375277089019063695852554389784951321925769374423598905857794694672511732314489089576225323084389742604712319222039028493667775587783552400036520603244992253440997881070280048666859374912796489178235997342920259593380475291389806685878575072543255212552149756203012085475261002043325594027495755916102630336798126659133859876365360048207064740762868062326156506163985940058649864807090131373141797115458667157453060930522140740980825513271292569709971088341816162126857574049090939450622419449306354081319921540576266167074466979278992392779615728990089302415170580441960429014007099710609190033794041515419924869668401388852263591576537061106291625802580762473838204702611865312581435756742573321857809780366595882847611273675922728170838687608005984219016021394111277981868808161660525616079573733288894856045136787619756180275369153716213632723164951443461313606014268113158757602460283752779998303923300689684610661746459999753502634897754430574011471281742378468415275877939454284582321246630916886001029636366074537415849341951489928830934134268627187903771484263225891542153517734244882037303362282012272333068920154015057224008804373291268393886739030270402673239621159784065864680867090717898617079947936307646199996142348060426606936079976981305091928315845620270888507794225491102629980261097712729642123005623214917307559055036870482488309591524617397606542754462730644185442418332291525907654965870239357131913394636823071934026671255793466887532133845163622974050734057071058118532124545851217900016437023237268658178518541651411067447710303329461411577550789748459362129234644995624438438976988373310116488143102614845405571208976011915623098995817674663753618011421305323522199774317162024311457757578433866380727057397442107313198817576927199192406708193582137295204820371809609452538072196705447607259044879742805536892843657128349794696450000396587176432711124131626746838841017465371338799549248415437538403114650279853098485250816053740704845525874966545530763683749955442002637655446807732840070912765429476546941812973687234288205034120334929132582130075793429688243065245818898997836939006227462378442916055169427901768378861524295064084310635394304893246714078797662000877600692874194919721534252352000360035123258355813264356998678976083304912354090793599281973465286569979131516880336332237255541664730461878015953319203067718555905674393507169464755636049558318642146140014992807213065168294965258070998173300957881403357209788984040896129387067878824365128569684582571030441135486621648576952427504238747682796997639635775571174481305498949302581874653110016147471667167452828915974506645321429850823209092362776209031596952779102305351279063423227708012551795754646786786051311084152054441388490309334167596840902281574787017985960133743862463028676986867414200731985718093231279756354527402862469040191933666061201341492438818979906743610157638448407950871238829858548550861975195995357608544264808137392995092406767685222146484033634486507468620988624752984788619827852125435993425155360680538888110412165285770862849657248902596749707467324442295830496567439875132622092401678784436525964943437430733210615609561155810110325169869395536206025374198953313233668213590861121160213995559146766794136830667087698974468257683374126561111574817822368432347210487447686812680587928628965207692816537736541009706370982509960174706232171215660522645894752722934697076170661674569493732728363021917398613828788206146619362552490126040549398193154611558951175728453787992559475288386227344100199740977498368558972546123501042028758909309808521524036091505300702189166599234329380107878862304049762313288765507588223881368185811630721727529017822744184490857164641648489126809722058267167529238415459920522521367013483116756388917250168109965601686924283420020250721809706757626255361626131538480647691865434481432475002675138844679958564168065545098559221258337910681570193216166619046945170547117054783378447741270482761152256833985860122476630287437535668851272832263444122060908791538729244506518237077135616771591510376072052155975405612573276504611990998253938518429445901481616001567272697811032291521560542892547691851556000337256704731179321989139612218956261555920374335635633600827634305844584999426614959858454949699583215047868875335970045403152659352827627379344050467129509101361478961363097321492429150601239032304105968517120661246161931143097900341762138681497505085212590740972985233015091793264286256463524728410977853712132055015936495393363083936697368843885757034260516214091447358101701138909977015109572163545044595512029851566558435665244826943854787988422228663185478163856960716386315572584150947358936294874947900212793419976000846429837460190577215090445899489516834148562235416276711205156612369154177030419086769877855046851666503140940035377108634005563263491036338984702020165905184658507045771881847567266269154549548369272322660918701135484129460914760877254849053994395259142953598716570880504647143871098989979326962818336342657211145034923311545751778393769058427946466440112391388963269668144480937557392028919883312008506846216797661223552018212701272938134012296948270801334473568446750306792584074710971127866144139867841153810692802892294593810286156105567311374817899810432680959341476309779140270407395776942700887318939609582600051497325169088166586583655703950970925199099962245651420812993032007025010791878178399272152662554848261868296147358207222053155726900391818305480239676835431868135432964514417996966427372341176389946740351115423644966053098031128165164860708070101954632268447341324306339294286184290022650403639309236988450504940239203853604337632434885727771976207583126542005973044472890043745557367598698035860328012198466606337009395107022385385991848862292765656917437204854736709870227515218023522152346545036653687484145340949135103283854376806604970979612711315325740423404275817156179615678111721015402292712240267678785164163964382583185020389980965310043675665526605980312621063871668864461056008969190918664440933213232077239934354068808348413185925807706869024444912688809451704716752793032362742521340349271683833811525311019237042718156698111186025041622059593828590902141726821505005038562354142578336134916243665528666411908468029657454319261509082097373432615724517717565840325287149831286026703314997631826320117544429837631221976943181871684805426068878734450015034968401220273079139165203568847852956118323815149061920443754618657905563075747444997657631756739718115113624051663652547786073709958093180764214840404469609807595409966737982966651527516277332955279413936129034811960807227263784503382091148213589765854487990011918576213585001237727072245368252828769567800479342777211928440060345179323637399163865587439343755612048177908599593697737588071787128062245027340388651795863335039377743179766137329097495818848014570610746571318417314662415847919365956345866992212691682629862222397917722296324845567395771374670753334138321585936386667619427478205404104569750719200168445013687910635203251715879650234077104329971450550331360726400945982463813878756942438861427145118756623253704266937304242483974361463733753799682284899111667799724412501876181175523737064007308519827501630182787119241823089895096931911645055468126815247207784597577361304781178676136537498366143226171846568855863266500157465543438555603362901619137184601502179342682898350327179891950733048916861082272798445639179120651371534937354720237193774995349215152203566269184454788740846476072080336248806734410366906725207903024759037207654594779296157552724818275860954236821816776541738154549984902718783894340779196383403331293806238355008051352609490422282329986392008737266276839208182543446704834142412802810657189494610419388690845467521211564750174597071159419321375588948502911771552679492471397689959258244827889025986019223163268445689505963397719683693218316541458653609200111434740107455869294017843775454646920508167324776393805481697370892997735253497299077429070527171859986159282066107892566832133914185097626193601216380796184909010394481892213193178765173159585402943545981260302214029942130586686443255581325236569690350157826395782643239972338365491777398093225232591704766495332350569578962906707946808992220499700985900544802903162163376513965939675303785895006746994844769876347764291261783221077943639697179621373332842414877366225678964302108625896948154851297401237715978558334735575765710051128792050891618183174669193799733646964613006930276260237073858323887627234631784904871239882188800396093750581193024059547497681649882630863910315882630400527995681412923381572803252263427201858238313706384947290579710923020680904341604927809318620174854907562291486811034483265501364684051115753817673796367114060048477738661395190854884337017569090288579003111797436977998091821679024161830303091631718254909041884069863969051351725890820751618660108144162856543313475760420984598894061993964976905156607418409734390119049604315500164379796865748524377480373283595690719752245781657033717542340122477865529557380202768399977085735016218980298661469684578961908231835147463752317828215861950620903038647752519059925433832673245873349469561452514808479906964314731256934357668772738470190010759331219353028548756644994976637884223229423726026610715754180955493104448107125679245867560194401510265091354743038026370774520039748945344139902158500780382438538549571827999679278479362000684518243812479800786221648182427466388099874852708348954216038540236261168079524647528829122077914327948876210287082270515451050124575109844721010972408491434180925021777928012733212883895203214869220090572105529538472864996287745899196627806410908925086908676510861510798318824000034929810375638585774253499528890145987377900150531180296671921137387820092850808843193207403148937477366298628405410248143737839626429761092337430252381518665680909566501190180214345764858664912839025964560117512774058803286463464212005875354881071513939915663022782010239546621003002018241299612145453683203574275784311946877095680650947711115434599551675871815997443647855028757010856607211177902751535887347461398539294907958334664540303236657629494367926494939570396682083659535594771834852949136005525742268457558985433482462995425237485479045745698827363260111032581602154311848658321074916055261861849475844445813810108620223293806742716851042954460877274367699573178030241378941974300543486931713966802895831741553201863531836195417335394557883489843126632410420203818104103369478556387251879669352704029896308932393295051790967894115288741475236911602216883060190028507136305884966812086032064563431813200211511037151437860466364941031990344013981765625091505214001850976533227508311412947048686720124134621884157270621571347677216967561676792317275733062429812241075745726680383223565139577547355884395391800639877531869423536355251456892451946226306709001072480974063005617755308672978075807567817244774853944977285985834819879375680471480583452961660020588888422134332263540245672757405760187789746979594986589975595873787172801390047975391865289905095622797875873108578344515198572897223308333077479061764166864337906483227772841595187827076674284287286115816996693543694029834620506436175587247107868292546263128198842053636303003919184181790132704698544912170075592123357845445481242617045827204386761946703311791660591770485911032825188311105779928334912775290633207748870221050772486364050789744061836756407062906348642296359033015192564457512099740949085845351168537761742164959351972477373373091278129685481679317404569998644169534600696789451915490916634796503071862809981505390067270566163598292512777783090857973420080082347827084169907760039787812849006141216159463673459408003768844478109886007088537724144090812314007989310302320194913579639178333835519652065391016443018033019472105450663500341783407030415347534951281807728234609663373264139373028805519007607938997553954997662574717930465406038820774329800461201129031744550115592765739549811780228824055290057428750992014432593691586440475870696108021574919743942742376759981634662314374563138497648549384782583832994407548251944902307402788002257468630144618775421215905831060854177285019545297162789412279041236469161501279310117143977881069574540561083930813325003678813380657673432265847627217865678035225222511757256185293399504816114675335009149653057468132968231063080025943019004827246851844295433449111412123319648165307927540077016511521372962821179092999924773489042009537591471412025511012559985391282558716893736328013270329731527363510383266059175484768459137931299535609161812725751048234493309679869365404035209817648617034762831614173553038901978110799227272816051668387046396242726958114529006251345215419279488093568147887434273920463835684871198725095446774134252037999466617433163342208668213214399301978930129052617537781366918988727408965489684057338890409094161467569659325809037712373414788480122799537330008438199425903208955910501494581311568185213803358103891813534087300690114318654239173548512131599231279486969525538972441335450793797713473669840878149257673021607474426201778628380230526928168672981201864394734337780303115046387267839171339413532695808666816235077308575592703796020379921774141494728409238256472163970221740796904339743737008358710173711840499504232597069032799091112314185888895510684198526177291980985406937668129244861559687000453743754908863905843026230776815530293504481736539052429671907969221018333423218181426821084675975396781352063490700172163568889120018522067057951889138922998508889363663567896863024320977278802622845809054080103574151095811344360996926172901572523513883259670269324834642603278325228982076546916370234279570116917798178870910701500203667727751556421217375894776596687033037724226599045773645871077951690740846698448688268466045228012390834650708883518235774385055874552416826697305138357729468160848337219692012214816403149055270949423348391582739922281523861710859447158395936445947219469082499541883630036408153981157978599560045533830680723018675694311162158030020740459321144276317423311456680013663438503849909680386497233279779388798980240108785897617941966098352846562237654581321749182798676719718530493791242587829523406843052624568815967205572366553010371232609436518875134663266276840095519421197259327808628003387348271758880312829175578418850314874270415764392406748291147281028775831694841649560461339913772764536773758941867173863206729487518684600561696566075503494214222213465889942256704283374480526830897747607657662235923059183086552166869952274906329604313554599336264951635299257451525309949153475306073262447076426325505761066871658463476568388325574387180348457532800520683034698531747781872164430642668006685031525823590814655068826314953210433505971372479915310230310548368205412482213913068342317112923598082087319036749211863067405721133339723068964155616899330310665168149862594673722436177864958382167804525144016907462019330340855534965701785017385964540276806886089893726479322048321143182504959773361413297729453820405010555012740293816814852170475011834129288020225379359016228530572328392691232815933994051436689382882981743396423381959358953482102931960212416976561678691228713092748210149676625776493593191641588846284363829715589225333630653694481122337077489314330493075957730299345371655404012894371501502683960668953568203345074063397764267219382059646828552793928475389800162654416824731772042649632869669134865361390550035950453464435928846177848749093182728129585208801328014472235129527663223913029927286476231345731666823542183237390183709938050639358773329805878345780656969161315508792541021858084047216912294860107536103725460100837617103065514588245002144931297625060237897221369267833074231870815174093834555309861987308985298816315499656304996728337422144051238214452197302494518392584602191039140987023414898471997639597155848482062753839833011255607657268263690531614080832804962049390879421391069571642806228574923260353799604543775667462256469179824480870774401202159106559114730694348563566559593864584483677306359857366638183147033807622053172685159936497703992954198211089001756088349738850051199462473535324464780736053126080356981930525656531996948479249789009081192972352140881478751084285272203029633165368498878355216622163706662023225244380991166378726668212434574743124990890219271131491831867245009676488120379921447624497819587985903223370116917857519754589497065296411116455161625318765049445110368280231030891670333707025646548218978087222558465120832736728612918375105019762575748574040631158474850738567111070267037633209030241396156593535482280327949398694551228644251116092910160971906961369035943203171658461043175124488164689625412936920875681789830405208226553620299837432942672729614052018729188078317231840212931972222426301014153458523464509238719762497602680006158086939307034022538219551244497592555383038238388017173785379824000539220342639911314063309905705465737545640579646161947019574661255905623516936325774294664095150015432286807591236633961889413214056366014656424444570103219321402471792565897015269146207411940262431852938799044341064269218020586143468905394092557689104279637652883938749571082190580769170363136020228905219694845472452244004091359756056828586251537578274297751859952931971966239983234401280839753695697250836126004015854683292505045938346275740277381094777609889741944785870140351464927156152810178510115209402530792820385890957351856454785806958635612139972475263595882911553613850433139339500451042516658552821143968909778978941980750313606659151164456949947022153981865361443567156799687774937009851354716234348637665116162082801503682184541003494074049264104634290750375916345821266320510817957624378995261770333195873248075918810573083754518535506146593328956340565431289480613248960436736396189344149804770497919280978142706181807318757259587657766205320154764917591464224865524703895008879038833497750919712696990458932830063239334680947439495846286509170376776590256950075491248410709381975136260882299430080391138491394972157506071706454280807182821016188215634449620195232191484006436553327960218455904854646344454855321631512257477418280873537448329856344207665881879383358739046513461481120770598250760323266518420501815966390865519701139429868100926058975444660981742492531212833631184110163505911358928337974477508475187992698361511408992717463882568515079455254112684737913524997386878181134658781015001524111260416788898801883463401267960826216124774754196717016206650851470623952599101930483237837892205922748170958641206980482829565133722920084461396396362250310792221682172290620624856023881701875784594359066681575438000619989127040190090472537431889470163626516763306756371633876887598376190697558877400903177325244372346115829667787252162895244142826618168132584739395243316370537835318286486133176191304746551035755011625968455961685741361633111978269905597796863155038152163550856101516887085556158026464153255406736248895361999724302131055118830798606458699332188154981442564193361643015868248765548781792315268475572451984408677710516733130366282065836275102102230587016299016210500806864995156093848637284083438947275995279977485265405844437989187821882887299131158597807080190368189245194816136170503591499129831671993712556512900781703770899546135924218110644358537345082355754190545328362164422295090461493599579625058970593558105465123916914062465452643484545855824657540630860923591400280087675063805429890622527624668815047471922023781122981325961203046203666797400482201084057427665512111910181138244882428375686441521304188594624336418569139770653714056001551121551382912442698508656647191501398443875165995078765299541396808140367863958301480479134783559685004373865156847025096572004327750976646625856569258227422301790644097258545071539902311699357640903273470782891759796022457341552858972723557330325665765409443156000947477524935891506116247527146753509900590171071422547726742579075099656373825576627515828261908978098060107719869302982992016912707638292213182079598166818575415949347643377577763190160650862129397310920298221168309795781661354003503379975833779090289927747283026085113114695160142940065520243351482187455588638631534126143310813127461422820232987910407086624679098683827442900797739029699890651083707078906358951732426354522379725554113659895382304803135906375709932519942444106313062760752721897438378359725745177354299116915900921600066970392570044246974028177947321919290796703305092210452812010271098484444354403898063084260817670937422988466451058086649316627104430692709992046254933884816010872018523782566939201870005044341712333656511733279147543732590189613895033785898160732042141092375557814617463235029686031001803612424443475408893948094505353506042079698757714192811135456465733178162666358270767968315807418601394944900489410752201191157287172753188058050377291932266553264091817215890966354118761563619283592720933960318522116499976298368928658506938869064699270347847116624592322902064327217732575074591397995501497326903023387679910431432929265084499429124220141192115457479516659491432306893784030277406409131791257049557377799758431733747023578773033878382519013370879296359835850961337102806891004593266390821790038347611736977473404505066907182620140567009109014449664254167746585588299135715554810574029577199830591406099213926029256000431681852459878834577743896076135493403600128381608621307465878568335984896453753985366722278118471361640228848778129718880139806996010527849187469717551553392095509588558412787514793691018028351355594798503095545647964956826439108764965507972769953619966271727672341854771471373306802938965055630334616007764613535522650739906463495311202495422743508851880283034317292900759066567129944485544691524169488989245049137896609963225917917499313498578177883952138239503352444965036346476704280643049885327566186321685530945559776602852918293692494185600995901327199114898525676645943475938075982639652094516548547237468292271680698052581747919119907739582447244114786117713008776488967147047338155327633933942635144974747924767326199491671669217779547221463821376412264721927563566558018924007799128646490069803105873436262335355461651769215462359185119750308633230901562670217261174611020993978578571252511278213116831859366704346056149752698101823428554901033253205637797354783076602451211383530508753210445275536020820747427840271480292973787765535878523178038163665010820505903289507625111298396118845237830083095915627955892375987424550581958624710769668706199249864700390883685930433307386171415037970647009509071874772110296294402198287086094496845278779494585535029909821346418961431080302681851828987044567509010674802406834068407550309603848154511271815937941445261468142361928263846063845369856932916262333559473585250202542532701622169694757350882353756983857155145053327092200485735960142332451366357898768647429124723294203544926307845762722023293687510645964846942770643891010186449377658268550678430089545055441356880638631699848944277040931671697129947506427768549093866858719983368408041423045509076457971253759177559606409672279673129657730543804449170255175760499729063937825449335548008055160404102108584769554094153850598697805281824959719602670022763120064674249559298294524961850915983552610748955704432677028724755965482974178244126454104678718190031639625230880789168637436014046331428311915581463981115625032618001700381206186184529545878483935151535600879982245382485665149306634785843993605207876526413542185636014289775907262308285769520748396328255731708090828651187118464839562627280365970887053619777819746920686569829628761978205649977990703203413406605754197389306331502298585279288826019644961271506661073508191340029870184166322685742248385626126423781173781101702461392406022613843649277405971784403176475041117622666340828376163231172929024990953732024833615995547559139419662883440732463921310376626064778723013328536718706795227699771268766986662148082151846142401016453811847310255964090802263630392161545552928878217491779167738306203634949644763334938597486604502386417777091293961526612968954538254148747071550580200731498794477955510689655113388868602729463626278002387784886274706483398516195766553553964038068837617937967771780820011925395955191580418308803854245021495402476397135211923129962655731401697213219972112084588410039509959728991752203263012623836901014755818544633949661071943087823762023881028724788584101873276774475445262027109760942539846457944214709089231763153791240115469940069813100148095199372167756720588062349895642732785821908302390040041331978824779283596477937069270093597809372538807013190472242225839382762629555138791980816087658338254102705969287449952915694126999783234125745527922755198536225905986484531321757859780567084423161690489770161446683513140176816503886207714404427502191205112143818913518239782954468889757562616925140673529611688249100507902469714779476371644762447074854658911595498678575095054663300733910765236318959642420227693161945571748894321909131446316022829710577752958478562469874384782435459584798778461594365078692220271064407332467525047163629772397076442995301366857532567479067793041443365944999795457440800455002559811304241593556082288440130815078364752580886446625511165001547693855066874351236493538309515763366009518905204117396464256240508457372290237099000792439735077151675404208915531709894448775142375132783576541726161824367188784691199092095494613283448794334923291756602201660368389125780484580935376858610312079926079176776945077430127724286596576369253022914822452675542873323231208979329553116861058351334577499521015175161747389237035479452110693822969901227413507182322715595739530764106022584546503692406133031380575483237170924106305181224799658317850822848968216908612816151379370019121305130706884607912818666799056388456306673573177840093292683118004511945931333007497666159280102265636924033310079483384986831198068211382442645626942162304826316862785578563250840736661495150098393580725905797132996699970111554970052914244305215785786440616416975252458467798975817870780555908502183729204201372317213663559302248749762954028860682605723508729960138994008596768492524273856739634346056974798694997047099702370010995165935686099103343247921019257914348473645456727736271853298904035876096159185739374041650986037334464242395084976256136299207390884329694721639951922365842132590459990490798100526593747483866247010116665245052745852781924157144210741238770871874600020283080189189629211006884670597687183480635851402321935015071027379147860045387148329311879071924615969816796961717365547873875847340638064220205851909195606017084801788325737128694136603376851281324546632174552751165011687704667069316147780432996250180960687406124612364566283971793573900701836946944919836925456541611121201147616157261904768950143737482532693479085928288857264990984964172413828318218592386077527261557926324462761836879768518633686395636539116600845683838528625203279789558829527336172358066477756798049742480455920883386364325486799040710690997529080882600894961999656506559794750868556300905449905749926959614108906533278773978216236965978805594209130429475556841015716810593535784287123652729164131254806360436127490187198778062032629422422402924647206642110193015816881046447685980221931424255753227137766010036902858706324971614256155922763093902675216027114609740811756802261255660763796807872492561803555728869949309178482778752818320226396789127208395723266911298143911047358462884478911257803865488460701641112714798142471332596991738338801529251651594326507491927683759812438430001741121121014664239220884769533297079213308322966014361635545986189821238210587569115463362771485670421685227965043414888448771909888517630838206613051141024323777064346373379589169195179276743694640956259895382181288828141099296154169045151571157346428710914875381498661402747923728122989972559344747517218781381096407873865223867831348728366633945417314221234173105002070064601027231494341279414931558365135126941647685243269721214378174705601582448770362983865901164610977406179309245259104726990539422212470853222560363792374292046828144148141483395463321846595141560589783098348129391423413147523319092060166109295225124703008390946955540372577162465980608445143952034461400625558285234964230894485988408470985534000667017347986902848533574610638063583867868549649555839571514450800281306339762610590693246233178598813896524008510255623840867900092136113448390963350806059065610229286241226048032732329399818373660955911792378048472719583761825546010982368326127196095087182541734900773703876807944158610477265570268903142476962381111180480958387298691536745393434106414878828093781124981907309969807345636894469401508241739767839741735620756297780700703457153708993689862479467426118558327243382746995433776498035014841996232285387006862135100660421129038088308181379685848806709349942437248728585806771182788140917325271813524981069051398092038600159322482997546929727227184086064200274229696123189845138746674077669817168177397981340254236804014653878375306946904919099757577330298713106281461101191733684419277001070623963987522401422375092201463330152831230703661918240479857959738568063347828628709849577221921669394509375887542838996580726614119765184558094611830502357164213417342685093284122017383767914051883657597856426962349600077151193726075930423053011622201973071179482740813436500994922907542630886923485237053510378841888904555531278021575685630549526637542756808661679636014034964764751968115916889943194879280785802003629617690779527288981611029754054018137644256352847444233708686651516184586369421716239439987607200309631620570423729442510644344453559741682974059196921771014428473244861526209862085717026329276523802726358421922918426460770538227136194572215030730935310424767827603680212233632692831803843641168246279761409272371735726424594739189787030886046793296138600025444786644319122226033452527935558256315617212483397492192308987983997531429236718296188669580289114962585923651051195628538375618595013957975712143366946921219604544995986244416340495123658443611896879245490948371042039251427457382445992846031860238081158105791734702753990661705715205380777725780215520154344078313471676161433678677501597280804699963991771167406532820843532564911108492639553383614235097886169624558869645450430193393003496766712703857876112773210741784594327792792010265330560965220538617572997894533189155154828513653342580440917111034536755323984274138599324904592403087748384745425683909852630060641073308217808013665741931979027792594583315967980326736014878929256795299318007692468966406114712993011095898679647681879238326411157783956340470435860074102630421163844838075738616427077839331895127646350008865603657787653083180261611040070249986088454572916103894419301051709130736036357687037354082645978572000646467786188357582135768995797894495789374539846350364543156370603755825567982857618742372875150425291397273804740285460912607127147753275127601941835647393752777320467223416453052581535085933604734009640877146035173849544794601120267299643314954619125292347485882650856487851388790340008804453614827368803929414917881974785431017736884483599107246081491464283600819376572399238649925893424483491630165509113703461934185727455371671772943573234866463434872075180687846744582559752546876835420250555086488046643078699797482362499214150073986691233953722594751453982821772341932153829820799795986391994425675831535943033266284732486001061353653257663847161308916466158726226925969424284496934089875930159632163221807126728962344016236423909589938795954394617364596820383408823121959875302290942442234968239391863907855738655508264160395352419428935960071172643080355959063181135159853091657426746708492920113739863057000888551127955264417020966282945689608895852572929455787053572490153230077056172985699449231482756271909187775149657386217364768217828768946187185981438045517934676730359874672029339667939304140993478417797937625276571827875289837250265438177041736176142795438744266932593764910008956897019629891653083838748757529551293182783367381719894742292044521627800901497949154096596001581908812366134964216664292871630233045188526881616516191330120309331926989190476493083664453684420370272222109405310062446557636636299654970018462744096337345851881220622393656702947275979245324708515170670828771318960876550134368842432805023311494342397044695331706337908142233261363745026064295462354035732950143857466851636943520026933462388710771064917149458135451160904090124098660029148715139653426656399223994187445312135830668890984648904503470829464694133771905653891474729518031343200484034314323782827768920920242958237752882196779260411845577994279746958330354118409614590349737954462731439979473081932918356427475838507655915625648371073517312829201022480750668433580853474580093412302992881682576661369809147105369015661168894187646511061420811142512124805229661347665567552321734817171360913104222439610252643787351873460109148695964807836444779403812775578264594903592805875304121864434496947587019468294363928296656759819691275621523483648829237584893283667835121782166861117598908145427089709919976967832379326591239465782773310581877730237206069515288420116743365666666476918573632442974063910349048556288796038606583225640339613762205127009883120040522870381852436431698344112557613396572119770884465730125763145737709920745869045843998908481500866054709926774874324808794113806185665954651547778658372871967943543849242694458886369660031472219552345128522283724214791757620310628923081615696492937618142816098043151234575799357968505333352353190400917206753372455341052234029638669776690671263834263257952128670897735679855118045824387878541480469386251731580528850441050681422161511985806865701163816035510476010252412633131627848802120352826369518206329801402873917433332972859855473509803443160656319703314479500927218077299240765886328526110610194009307843366719100334177633805691242719639818141899777204852818310845268479166902282396012397716383089187774197128822408403068398325265617656634416522203458306934076754914656714360887407726733553131065123252389525929673719163536230035635643044724461414615114619358663858761962246410429630070561334880896267430846909509700034893957111744780613973050929034973798745483492274496112784038282037495036457109273135788487140832406836471950204833479709879224667349088503434282119635123896001906953068115755166136703767682106920817580527796808607749655752243161693093342380750012929815805903183812586148452563931134963034260791795368025875928902443231662036508898910113948077045561378403860642798598993563300728499981357288770350420395256997097365660337410171103408103710881345758586640962720706155271254326585830771731979867218248853155426281466163787836832492972082911106058904895143274335783055860409426521239084098320390037454941131962296288866843972701124548310134021361234901153562192577966666311238201473848393338171981803924360493128206700439723767170757393493973787705606905601198929347529439312122347405279623062655403859525449906745018518566456176114363254225989882125954595842492302400700159787150185085402340247408494337873115486718595897076765853495408944375446004476203950075987539137671602857704568964080367837688916747705251491049156680699379754211670355494832339807836204090975116105976191168770412359318222440007286450776560385776930426421322833658750780671158925234385240421472404394554635679277663437858443985417662961715015903483532603426511368751440838679211619014196032240833960913082720925241779471095035244861835991785230782564104411889747842363975781761059467208852925166813482074893271888570898616280016695761790810641767067504764663484798372562551328217320502454613857002567487749222766548120337479051492164159995476022232286295523557639628103911994369972589907066844227650121211148979068953467392012058589813262355390712316271238825982547010518970866119016985402922813466554912947844943232583320972228096976334593841159847421452393964400104864838143016368239727545049630703260636165381620767088416864987129950920479134416966771964680567748957787561296659960649976111759856208355082630385451913662350584919432712513110488645425307494163273004718218824761361399458336790139618475706994761472144461693723381907759425491438089935104568866514330251057481683950831077092361398366290999093664809023407568463909731518768875616458114234420703809817679078177295621417465803272665666414081315751982970147031734872368533258641557020105164793015180241782116881890185192174872943692022311782283857268595521873223362000854455123313366207097231989139889471786995913666633526870127862135256430681883327286353026734666376553405499348180772034842661296899967138391735189120164705164648673495476619139879793710652136254382182822488118496020012716361120324881041459308977636500049158049193123957063134388279343080107094097761837683434874210369985385360146004868064829434763214199733926654204751086721896559484027276649256682389860889082077580312292966214008553576598280212545041925361987299336965823755317680851412491155638443202588732327884982743911875408180965639659800286574377815304508648854275578141659398540142325472198176974478470954965484728504422157705085424815548335198742164856786630098783618355531987982411379452330016579784803540705953991185977291582569055980014684000640818900794447356740999243825467643187163922401256860016584009633133649142726646034470811453779000594188764066179996160288346673179809294525252362101818936422470744121661597061241979681174764870645143765638610800678676456408422505580020508440126329366857233668208084002923658724077204885210824789693089971185597405354271797086184694907281908462646522420891240813611477396132740196931494554211236655173386048804676927173095081640097221073982769230585249929899583736822612455256404889539337849370532137083614200215170528314024812449258325451438462832992511154659489308772028224646063705670867323552269451504359790467442352387978565995468868813375881281490988079959446189587163846557632685805122528806621578857285904531361662324953918850495302276760104699138273696553974505928603549831579880084460711357395772731793536412915840530419780296906583054427543796999738291793864096460836192877105430093767576691770473227032074718446131738844610151704926103696449197325863046645004346580083713222593118582441437311144356839229174273275239244328070541741029160761418292131401549195824135754409864255625585128383119605736341052873721079764660107277608880473581072660332916682380099762926466700603922079482815772143773681284479082768750927351785668714981163176230134726516554024030751425117135964037668326442109664194690022023206475163588912582839779663232956186810532654695076694821627557116861369736733375802026443029477607981723612804585903533928707151556736591776485187990931155663214620976493843975067070851719781762228146984087993014509639152956073314171712061914250111177775263031936716976904953441187309196413290299698690157748079380165793846572700716866694623637556537758480537145999827092830920120355013410548305538368221185053046391439514649379392124368392623588591294962744849647691189364790782806817983923946439618239445158303166251068841559370483953415518459359423647652677740651904635676542908001196008181636323520041289511689901316195191020001965326246809296029494075388475571600495163819656785513519981194952725385482686192805586943603358395759735010298847824006550596359072716253869679822456276459667785803276173262065261495768262470969688443153594916641194032216959664950877826086031164397940284961394297762185268446930949118877728248477515269821113108987535965049905816012985150873383452207265865463680053049807579180645945457383601035794252239204353018716536080625968276843067171267331520931652355462186252386960923543701537869017380470266629775912457981513192373799468483218164096884087379836989079658655754136733005203708695792948738155519699466868984655440575734598301746745371115677961691103253588419565676278830380160197327114857915612015046551484899231006146812017780351987107947425211453524516366459014385985580066112548663118041179304511290287276810647281921433816988663128322048028112426141855919959602729124691243242225504266151882842923749515216012316420509619648235555312650484265716318458625591345845676058960804090727392381258790882123056550596514984409755061900476393609682436905287141489399605466743599503160467148132060381561278785947618611464812733685640674639291115688949230037725171387107795112775401777409048678010477056097711800777458027154408164100718347407027509116683075252444255793477929332662629622030270159679768775474960731077909090179165146586331354263553341150581783008253190424702363454952907431594924547976629450199584613226247436992330864361414491651292414098999509426019205413994132048803001184138064198146374563727227694006212562650111707777306548350925855529322353282870046681645167332969385262800926022485530465298341467489346496181109976057927185786611592882484911336521953256027944044537404862372723803444519791440568969214035216114563008842870950259939105971337108533246904781924446569261138347551914074326945081336455404234567295102872338765280945902261731601470548354999796795981364740919407304789578197908902284230679185572925499934061106726642732366142622128107199537521170594863098469101321952983471896570396411010006784103406294780337146482908465541190877582605428223451208882569176869396429348886555591586319551529778372307392183728334684156128015969049807111006815560851169109940050154195446301220583360483314896764225759621351159042632559558131561972990826863583090368669644943829623177702418283226425248788814626589804527431278772101400240585299984734146879921167931589911809099412789027154780277620172174749305473510721739489974183838104165544231619272448493110164832130116222118075089716525164451661634481727467165932479254670597333976920491367930512848200595003276891421484264820398191678128595899735342945876118266360892772442210272963254160943400811130534462862416721811399786334332321995255469506052767864486868793918984914975384842509685939147140650768895203954888962083250360167389521502998961676714288510864337801496886630754981898749037603355046166792909326803826716330139104852773287022848475075059040353870642491920312354520621222048861152067157240024345776754702625909113569816583907898445770704656920261456947248857300069057256071047891884238711206297182119840707028494668038340006184886991850856830675653064572965960741303395685837508462762854209310879390806891518277729901042150516514896587369207588180189175452512242864640299554492737954962317262839994231818999729032624048659561914357602775733858989965356615144874821509012781509002194436015854976659634573748365036712206524926618392992786524610904855262473145533082319732120780986913193008851311450836778648030497199166968606288074034782126853518894844285560537225976277681855226033483962786150375727207751274529180445820783515703573537838684433812814074886900590220606092754955956329552778308654754362883678527245972916043883537169422271164268798961645890091672385469571600960084580907046749443628034298879091345176329921500736117936625667935263426394517015404090512471946655715381081451229691226391178437087180232849928163773882491348770053781088219735481384805514209285370575421092246495420182239996993341082972990106224004800307153057038965067855074460842562188740821389459240495349874974334342676707892407612512309252288049704754424469519614880601551301237118138091949392283105327479362391127795500769739110101864816878271055316054435520813438948419508860144606553470229087167699136487428278434617605000792832975729579578447526449200999689829975077146296971537249085009474554661201410632399700874386914892368206103630857197177183911309278423409287577727646808239656547453365826589886478771608616560549877764191325202471237478965044104157513911444296192069284394969335874260040229989846587876747858694356245987180565797558424146968015518586392842162470604686396712198219917127517053168123551278293498994640936007679782202752424384588330234321885349516141653527716800353596513076394383681834465405590192476950989505425386455570315875019311206048339523896303097303946268135634848701472078177554164301967222863704777647688724018088371004605640818986030629396843197909100147213150449930954479558634848849576770844817714207440897890063588596048913524510672295235360283208893193941595260187194433291450411388212310365529596502527964636414794785618344195833763245341768121205171501255056279126126140295720721867211444934671963730537190010840824439788054391858244418243149822961124534177952800011167629367083613290643031869679862711338249455628718803980131597528250086382176147123226208377661014630435937527039571100044949323682187756215584508249849760807486571055719186808069219812139362047534797305417422094486692804793064818595988835335784994587135312985250133443140279087521002008009994141596460935446203551812202816885189013555189128472156095250446414429194452123605979729044842368384741722245004143287064718395095402397442382515381803110069803228115035021838247410541493765861315143610210510792951131498962792798251405338387485442389869064787281682234706128670174870604797536098056610273652618907434990613162694929919887548477174841831657389110653977741596054605532437538958217105463831985887027086946047099248018061360022656766103417552831287435100897660028430582135674423567636741869131512395568215117739393626963482164923671956696874281008090402713264267156063818121832127093675818916213357268324075972355390401761227062475490412415375742071219774779767920887841376789948900808888941272440104993143741443638100665986786199605296417705360337775604278524492024749802969542390372324169082334718296011738605877220178257242046027276548450428284105239007571260051577177935555202512268589968874050101274148693672180954029087712568649227068403126965354170671162339716699136379095982419265146843099188140757779130194680675008727131566856144261700261928052557261894026828786816516771985375466363545868530094505792102986445187078364681657068676530131732330382742828934619826408274900449150939927975223118784736220206444337779066857850702607219838890002580763460766589990950314749088595212541641636647140929022675648164377288798470101059274072848078533899956487399342776007697313754825457495523846454714864392970722015313239366982226113854983918400845882652195379871585960595899437185086502524156144259073606567247211950156737630936577821301025058835580312812341516015312659780085703617795493304489548423313735200647051656132006475630438945074305467385232639713785037664948478354737526778914936835244831831554778125551344085645714139928403558263536021026323626793603802168876655551065782158949300005665749034422264907538000877475518241702746186426134663779028121282780152305956423865671057751498359830230860728731131883006151628191714930794837919710805897682622744380546720394338740957684673484824521763482404695397645153243346169084300895590905379116836952674903584190873540209872901453251451586583515706774007316542897197100139586956163182421283695524592068668776601929304397621466155283959736013533516290626475749742700512379814084979964109072879822250625443369850945219206944400321816845986599742514633026074097900480113483686211346072458646715487104078065143078883340580882630943451852993992668023002000414468135034430601123193956049045258342523966835812720403749743246502246955800583682505632520492738277174612302358533714314322088415487378519022524234783606176412167992233392789275878228744056498600707631075252427147980728667071123024316571138822600923188017091838154084693315711060854193392273925504110470453563852467677699674499240699031779401706026897545358937115194668289737669312652590392822582746303856385014487233782833426398656908764104207010904196663438461425705665058868824303502623267319670917578567593627609026766982180992592946468108655338949298752202264468903839022368902854951374066620765812989779817014727802165173991100571942770180007115412173968565688592160150591963489721020147649178381675791614493776398215246796547720087276630467170164120907527566004452849026672504941806143523855760899450969235216109776380465576760448892868592893922418185329680785304312828069369993156508626076691555618684184113758458635549426040123567234670191822730777202001929360131710309104947990411901254340031784901532257489875771689739066846321610578261290794834515205582473894914232988232844764070592760951810865781471664871754481429389084497320818830749356908150074926031037956793378351752749253450305298368554134868673544343624332649676328156188369425883540106064765744981129631426323611856811799460039832842019184173219492857905838332692628971636605683330620132963718901126364044163859712332003825927310390923610269394405603553398837552456126754967642005690393187916056497238444785626799237888671745478483495790589889956850289993758999586171690799945863391033654611790705284363630365834678462045575319519912702593592100276367619382197130933563167861514759205378714005062252896060033946953471597260348638927103162440429530440478229340083336406714551201778932274310671877950406343416959940243407837586328873348418366736548628797489691444931278522337574625385985061121028356572824479650387465822972418094556960838608496531519448881123971127959797107208889333438751484386524787200726079604716961644332952570026374214060327264433233744095712291860912652855965970902095221071530236755755643472631262557122464655548851285425238837112040723702602232438210385880556112723802134969149332534494620068128356664948719626912388294905642078364485501768308899009943547466704338387680772028657890803206656630058211585262284347030978299726392242846038221135142959117490968805858610848274751118724223697226539582624226944877349204618658925893338340488503145861722065298513102040778845633264452807855036412656675536067896315139829534440254209760243170207425117311051528114600243294321374673719546307628145320719937651555790712367232333774141214802215422383842745681245489998197269137985445046038129711448528038251609143364816269548716812276462554676211541666559439799321985706748727209102878430111111228992012172010395851277359554918412017442414552330062522359550979618672774223050650855008469293584518245213672935086792050364973203731477113322165274708434157964075409060270498306685251635019040479428596812100778661107955846092235236512346361655391801649483222684717671856720596025715515171157347573238809341667872429167975045889447976452543057341793137085642483570797355339186518344200149973627345948135355795649536678511957343677803734020008765061051804538165564294463797731977867317343020116879236418570338804043543188745368369487023095441091254765075600254212057805026496013506493087347034457521910350194034500076922173868104503864312207872436592768785188342194195772833083262071454028727639430776799530118434314044719867650157749302341102080042102099760719117263456018543898009900811485302395478600208675049541707328354163769359790957932086589811062323594605979915741876969643943623671835463132942017594581575106351360085891508935993286069229791227969825964878612334455737158339391392679653427883180655983849402979883399028191119366937888621213709092975495104345960982217751989325879935065817668820220104964408160581723749572126814409021807570138861403872868567774948253044647584060848148742579802076458991955321866938731441236234765010842148637301162396246222674685097906074772149749037640427970736854565982387883768027276216574332741646783073192756413816944715917485556048636199499386638149260088162218427179755312056069978918219788770456459693414897250699840955915129813701765223155282301980295891578582696955937821323958951251770141203949269631790320956318831619378741399774257098498166230267551674925041826914107714611011752537554800581244635299679970974240346223252189700467354115839500603592878175962475081294206933323682257480958247720433113219806281869066610358719956802682552199099075833652968488473485269747754199217319715615448645416337543926714163953518791476210667632844166669773980064107068108848595664322389835731667347330633472632267147985604124786676521783646049861632601871602229540696647149122947046946116900784487744733092807809297678457055979132343294247572778840645443891208355508924649488067653940895414787252499397204055030597962639491200869149835399805466597262542458597348658335157290028704067278827477240363882421448548671047000568246715770967731751918991640894694760995983556578628544654692370419533015702160504240265149647958131018554049924082797463525308634403877554452698593417396521083406888156855620511635072595818034735298368059680159162655381940553386160522340759164863009859169048427564822723521381182793463626710270514609746001100888460229621153363153038794036646763421121176118586012386609349128579498727325875996547395826412529542548390655955048687743996175915246735642548720364488999663197435079646166724191574019667318264795386919873066596111591997212651255768214783022865861652562695510024448271246792435440401299348226438804869649147727451659248146352908449673498788011488903045549254651762411493751195834303832906720316887859869064706611639367023411096702815565677618696234024469167975614041349468934810481712012302244470807490642672766906693664247994473248332837297375122821059229985913954159393580333568241429759391307905424843514518197161004552063961124570758543747242806213142455812956182815762323105359182414678857748133428758102893648991501427302849798204261749221261773319913165400025568555136986016469533855208497019665797001416271526627014714267902714963294862169872627722784418714483226931612218147024313198824207631656131153559221990308714619656789376495562883478734931638220790049189296517183955125113531786745740456192993929496575275467897039484676736985065542669726175598512659712511785620433844218495806275877864517276418979698345869382722091233117702016891876397258536415455338328157726622707090607977255001991205823991812450188764106827314566148248149026900086106016351910493345237210267204954714893334932526967233058286990261665155719279512777743634307440011071049500809929322996123227659765020047163089741947520994050309848963481237345631732080987492732569269842077655254363801140943975079311155214809653436936984957113513344783458488379010585447886140269068909467976039059867747154849781514674002184498976889086285442876913028949341322188716467793538323613049086001472953027453000527794848313019454609446946309515491699484223353039200870365282159299834836581485290976152858763368795629777789575939110182234136973464437351118300809357347160006921429452413180931962692710788085178266325791854833518712972065723389880363597873412408354923592194540993648611173596884905036147840722655086057222656110718544356221367880360572945182588098531099753559677515752981872051772770556747703208560171720768972949558565617973409010788301152977182382954391922553272734589158096385184800587002379349239247599321949636336772395152659513991948239731716253974045159760144499071415015724984482184638631421725981242048947241260978448039375008257332682147744095025657173084945796109053552203387390185304464315393942665858426645398765120971594560610366164282664427970860571075582503701682980708759105014620149944672484471911916122974004298918750048913203835289710914086226540815353530389909786502526083882208402186495021519041985036011197362345714238731579939313002610157894795590101372397042791730246536331742416734481458667408582374051454693041047377000038567280102728377364882612499798620965242124971182184919582915147893817482274994984071198787889209903706558278384914759523121570160096557981784126294313008747943223303946192414284127114766589610214796770655410782862586786259364954613598179892872565321016715747380327260590677769546138925182279737527014365929164901667650794193304789283946559264447096798852818510005979663032737025481469884488275448238111029822440841415919830901581294132669376312921161630462678225759071253946226038518605845543019760778218331374419995786851471741319598737647211885004089703322969711310324309326948777223447148007178335594595297383270400176252423897109978255255122336198531482066092174429040603799990989177377618266266933254514067983021592125165177797221042436271874680712391002948562791733402251070271720774685552425801364680781018045575459143498733871347351725680066241450999218103126584401769043928387272330866153677143789436711499880315841576648053065472014760880651371947118031882592534978122626017271787144268400789020906992795716327274300861749163346854915680969126401118710231058755372762388960423449185278185220164192343861689218327427299913083521323067655935297660528691774562877406212877704943497305320152257900730190389408249063808059981670254851608351401305166219777396807333972146900686673490841923223885133140331207737098409645304725904690546329087331344267800240926912505816984765691496906163431992142169963451102544358946552547270727313692869950066049726375499409899877825918059799809083299111970066144262427220162887282748643688858503163050217002980595789107250430593972119599825218007532587553769759850774074035713447928343811796560763284837986423940206675284264437081558787919608375357348724601669860228093755008739982138860409692678591927526463743750710797176215699629474833994973320050480450357801692462806380371160209145481269564813369495795609600345517605859600396420097704952089661649519809528376509314490572841899561057164883868266431534703785584947466826679137777234415965829702814412348763851978421194776238914385904175361744560878921165575955260992444696910750613219100821258838459357328504534032350661450362222668841434690902924290265751975305200208093219930415318862668975772673134896253227014976978628278211434875446792993867062669644606356163831820400604240512154839897522795786298562377465246712286537955047798188611755275065770554013701900011376618392060120990035913288153254950221493896714338706792704597644807103109187304950886667631123121641488650760167739675397559371121655604288257267941772214278334885039738922368064359832152236452474981989403122587982355196397893266186430251721971021753518927012061504226325395543599941722768899140470761351610882767953423952700947274911293716859564598364014999584329581419376572436498952178972746662862333006462865832744463078007301225321205373292078496163206077932378734684570444164798301792666509217929504748867004411865312638017199951933853950502870190458024365814111080324429490231858914032911786356710015763745295999735673297424732883143891001930143468099880904449810886998017903103232384316205793387389302998306170485701679637363011375271222283229813321188823520459562110680589932949050189139501155770284472857486181421873769928329596191571360100003158426640919767957680505491387080549258660369050055227748685059248340106219793459549619102750543276782536623507860851819935370204489041907162702923311004438454563116661310327327603654921322877570603724463448107391122544856641250307589534461509077737329941591760379542183213124208408876304936580289609645112679080883542568314657754150329969524730439982488020208086225047257982280374247235915544495910439814516705006160575515844400963718106018127187718910293764511254193162572049974962290356654144655492433199433556921285078903970762018061954398785777902627816351744812556440285876146987323534239201944324228928871049906982847282054855270179000544459477353853599032256614178111951083564276829025043298714499807343362358709087796890487624526146643381130795304188135785214536267488251903977371561999974668415391082937274162464902662780044461442802798259854123394368101702536815517631196405296101615639234442077714155498722265703841797745318536858218193541842041842769776166997469128741065591997507735569843337751497846900484126382904824744002293983587078756087024803083300665908527832617450850555141010051290522670763050434078996550129301742937883737796071275970832069958979768373243224866475699917859287389236625716893490879959255661075112852835225203082387547293682125978018255024548916606768829975429851763772618818219166872646010254124687420116682017861983418891396499194914036999280417051797870952989498366645215384925388634018216129821630244413951030111668995978803683654269965131291245392065688520981236078089914046236015259638230644938919925068548280174993352746472224416385122957994349246898454384585008350407761012256319309392660186470896456151691528977125574767606844359992771831958023381903590023052016726382229105190362800202957405371555212913519422543231885181183783145819597281906948289005303451655757313129527544712959393874285602306162593255473856847230728583254648475740630748982915623436312259804222109039777174860235861358063023785749957211935304576474723118365372222062948782645649034334524031680070985750807183642148483318435090901719428686790149159388218223280178748007170661709252447737565892464610340297241661637445918252158831432737097201333046083742682650868666161111505893637608435391693573260874681980947580422110544244973933865348665499846879582400000514780930372419440874294190486776315174107123890021569465030758208626964159905990656351073458373369454293270306604323792864962668108857737359955405018154193239098812347741277894650357522585487334985588335965472671192954603476792861947042017948884285020689418656206601895090381848069866526483247365215617480058002402998424767317062652720699923926688442521981312701413830534638888312533155822628843062047314853815880717595833103627408502538069374718926005824871769632170382861206438443105944996266546291773294246251208683937056643399373149482875454291557426944060115277777235416596937106482873959833010258777336726849375830432084375136532008022650746977618570346886258416348262098274691625354441025731588215969493886934485470540243031463293908589341504748235177877671196361248021142511811361621849438723163318810550178857834651313219023626103009921434671666553704024532860561364807717957265988028858500641123736947993757353401454544778601525997570075451763042289866705084780757853194459392759236753308401398313517177283814075047686533384832064095768786212024487382099198909744523508244304621777736145262034778746452353832681988551812306714307543309956549096628222557374750407203533100359683515056313219893294981367882883029341214536664637381527522395072708801146463736222111420436263092647243186078558027196107553001256012780562130382332099370128531418151018603746927378720058118404878282716601389626452848539554575334637607905566445006964955459509189142645209115585829579716784844444903181547514001981548849144855747681205433794970803344742799254130194893826446599901438545791366762809466276338684287776627076282273643157429197924804731444239874209660196930982845065441886820502856991781017671249870556536661285465525471298658923650636318362182514278986199704227600581552708203347321716029219846984053682676132606183716837032973321049166165668105328550453197217386934819825320138467803749714025658077999048026477738134425151835194933326579643425406404554134995893038466568108516164730311849479499570547191622014586866731813390950928162542819715207143386979093104982516600823744656014234367568498883728317024104031367782905887760692101637501738761936879465823613537905513117560175404700050438876371020643572148659911149627879257330462716223585574194652200123996521520389040622507996375354636246047371991868078506597193823000348722093756757733403770395631654662457737840005015451416365597482156745613891078110369747586310845340430454105999026675969906927200273842181929015746509013063184638449800440236325881224948067966029747611951475436947828112189767582780139924872885002085751045758305298977112893905345130922992260430616700141133556931878411613918769011058250100103990455560889604137322013425006745958370944302389856879043191431854879770625588751182342387724985704038714896311913522055721544897988700828035987622183509761094921151441497766894098176260262044887334421401871985528620747821865402494057125970762785006247788485681404192240015659329890810215941242610762982125763671231564929863330505072682057894947673823523240239611355768221630033369582959088923288681426236553389201040283367502092540127634282646922320347718805606742862880819555598246106310681409616601578269273528778937265782275208250240519588775065403631991084496602169750976061380825278645949566714940948878363830539255637807358705209435526332085314469906959241586550929916467109664870319647991028941385890723144238077393595196644370856225518817262862999677841442598675405554522116133293537619911523607155098514558256572292125793715012783339389312670198123679580390013317439935790873141683277719639884898234965769117303360599178801711221782426499117761394898714779464840827900181278406545595538725261904177315832387934180165591411118153734212350767073876584846733234276114817325580187681582543042133381528981015764433345517494655580714763953875828547787609229424288276032999620132764797737077967758316524406301811308406357694635072857249130525261573975774783519625102398741519816567938371996878861932239280260067947524707855072083277288901993181075822980990907259867181523851096432113195049028517792386387552397083104414027209465350988503168329063598954877827636909725472115339214928976789164766910048681990863125126197778072941782775903700135788223681056733181865273901831466728687627514389580667609370350243773466345508317507853918695124331518325392848263096930939634120143208489401505394324584037154597810605946073643098157308498279134390597755051826655064837504009957251963962939352937763034026378222198515842911244709811708517283015389372957896484943942400162514979392116729757302079342426072943302991501299861261657080209052748845580923068174502779267511169396240430857271097708211448471281026983413727878405188870108315781648821016515265645729618337897877076261972933518822675062389215011635308694557039452625667500311132485750326169453259160931176770233045613659934618224000761850085416079734412759452669853917707579897238987975816566674236489807059769888080399899855754000399842960193679614318052341942167309652978839417753504424540033426704168815319285487783198314658134836079465767574317077842807127869208879590266600887802462595230867997408912509452224693899126613956223329629985812364471563007162788039595006230027921329637168306751837791986911281066350555419656145019011061221569779638025131245093094180135439479977400052984875399173698286434421435272704307934211838679333038526174196150383578765848139568322133002654841089308475015606182467438526775932775628809313067005352312564509115097758644370487156453499407225194731964819265529728892021220026276165709585890407844827390969311403267267128660270154140614608651706067589726279894106266768251213573458373007293308686190136656867426399428162475661421064895998389618915756906902816694558065122042552418426133853290476624274647715453120595189936123392443990576679431598186846176025863389441321117191382366493096043714529426038166590012945164472188199118721054441735852040949778027691035460540405515492571557626537287446496422835836554117187055453617435768003477402492887577266080511242182356134461591495366056555728899630850461686837429859512751763287792072828825221043038673893967645082075109768319523753491728780917643946456026372418807401661393824927555738473347530077674109780416964082431265379751815291331112974215985384802333946713972792133592942909179519966083597700953741986552223956224319366495483628606583324093266048724266330423050609637660591485609072284120975286784198543222808984367112767226771431972440010762418788582307220980249747670864419961451207045488429627880183011241369370008655441102454833151531718935075730280184410242717152711812654320805447387892933098846342566758661951091546464543672132243913166083147363297106195937648890907335441502013906333863807161000947568876656428406606394711610156760046988450565822426669006553293981646487008076622998727629910679774215592736014052615595172528425433904740913964866554884787777591690266651372507756480028082022786266346030135434566864180531319958258961521754072110508093820736671041554360745927046775565374330651272334929126798224863959885392771881040901226411623855022153945796273031257025395082011681932968290733240932295837682109247508559516388013039010754407749253333366834815560275478576841758339894297638257347842557240398843591039572925670727449945371763381284313334224711060076406090873763163680663806393114545611763269670230170520198774005548452384401357736541731544839653634619467356859594732266611080356318509975298163625333741176707365365467114927903241210658497665964281419898673349716247839955107656206848951716058794644855651481236681618857114498528517082921648052690610174427888676447171255821201851528127274253128060439767544921742013899013584490366396604807808508527298998168936480825803412946153417427234476170127726240702935142589575847240310196293867544868351881964568921756658284583404994960075249912868672167795699193547920832722262833476672613928037579271359870521582471754810131842136277016786059039632735523130878306984773117537443680880263315746113062642617301867861178128988226861935228341832979917656504824092149344934503744425678421619750795283822094804922921082558579429159322773191154991742789959370913932484113502176796838282139077409800343309330362935080579248392152160336169418989107354058180723242927139770836890925796649186645522614521063197597018258089986913774919093729763941949984290563715656463796440017038853336208392175582913221480243313359940850402468098840390539078545502753107955897291652017666644191532406708750133583431657194914283930501864966620053539013568804901294430216497383733640831546128710126244961834939194402028614868683679534560154377766806867704873704658121030187681093386955284620210465401734554315460676549221513343017221155555692183251024000689858869560035115652352733612317312700776702692953103800861805643076663280554202047779282331834106586771924203153328156370083752726863507215524740879500936198072765414516729023280441532356938638129427305606503215312525563008166385909117478535444249004884192531311281905183481061237119906929573940431662630340539776554234754447632280058603333059315485238252957114077644953241647723030251984642955498305771904774466706666613868744173468136446331572306149098598136167274839219006204842873153247847644594153481064668850023404987033392385738999724679849344746204078407907802299107502651544867656314194242293437232429592241071463281458753519419169833450865148252631535443839893803491797032837114931760697576981160882175343655468980482222085040916880719491314197627774116436366378492429933761319256930620789309909853320550876498627407606754517185556518073490583345185207436999434862418727696649150951601320341045197012391217383884470452558387783566073125079513601347163652523470460927214193201636381783603401914594920970262882828821386839475809411915294889315606811039764227369122814002227085444716532726779560633733904521153137301967833886129834747277150066338488095755691547131559987667547244059112756646813974409286576735960617364825025109784182594414004111335835879194329146936476461104482914058373664112415344179273694513592948916296213882073022351187980225959812808631682327427585139090987575772283552101286999725343590012412243558107200508762321424799392974542221206650872008260369757135586051551957505578544195292231233110544081981584280331507687661003610487563464619874552898315702346770362197463922290398671350247200731464866876775046620392413446194291612614459811913183456828271717782899775021762892026533154072183198086365877952601636790110451389716241136036078364333214150939631067392635215722012021080634524346813132335103946999872706279332788446043386299034031487996338830990408663736809468738406034187148666796410077614756731881822220849645890921750532144436227651595681086467415351581467653800841081920900142676918788205567336337483768760434630626761470289104192431510644093755448279279560451402793382216533591635205098494273531368995157813705263122140885102950341353482630962796366962955184326653545419042525878332914975076628295096904925405588182800435167505154716446631404787888769723152793941860594304758837004531941065038874491787243815619341084870936596347526353212544293535583657018798152127850876220719975209710417631160887182783109425527403997262599994481811004284947962176454409012961880522524725419727430727799265789674930544696192033783883645039935696231876666655106999342401535855579052987423849782149965430830254688885158864129708189866803588530748185303260231701980453665095547195878040579942746638038868343324982002433116039614736221718584466551711989111551280256561068760680751738699256535503613083284907260829272420352112971775750392973863822245623694069169038300550960137141217843713373399631994060067728579018177860260814717425776220483918920708340552335525439857456869952987660186099190010572188593013447866578531825183673286894001829062743675947999301647983975097893123471273059955299461883095059177343740087031992434872887012734167260389020279436409785474038988714291584632502747323526302562044233893907774910565678535662060869921083921640131352429069848982853878394546919579551841346287388113716591677516345913619919914582635902121533349747987795688545708397926832413801563172999122568561109459987453813249241105358085498835065463767731265693774925754268123340821311301228233507961691213650832904401345002135982541384419387162418039103886463425295335564769887397409346256760887548875141034898496637053174514074892912369427694834358884030688344329586737896128374502491736892016677465730343493014743082821792161821695445057932616436798814858068870467124248016982340231497314458359928153850801467522837480280663283135581569644260548794002406224002978242835844208898369378779022230899112997437939250224332977361489838162705175725922781137355164312094009772966455760664542131351666863497903272205085068816434850995577220433712908410129208905456190688120697664535076694457953365466857864803480558464093923353670924768590156350283121773388838948766850584824796381990983410191768099012201544934776022298826668392488467146966560855985822996689903768410037245711755046139957360209486801200672677496425137278699960395074188032688613845667457813101976832420988116173835156854053314616792898508416410409491292087272356528470107561769272953301062512133000507601174343314719643716124481790995674201933924466630680698673533428039095445567820879841803753610212219272923858789366037729337492789354927206382118507492725064079580929122072194903300827573656473335889569148421763211720555613091506891057987632294849877846195123544867951642464165533377929320668659229718155269700989479715139790589439174615154554988021377473761506043078835927973175710186331609944944538621387826306759721899312073579822045226429503685563490862452149528973532316934809272130243508791998116640254697034355707612755884150682359439654817035846673492821342360943317970801720484095734551495262649239105214585680567427935215941083587292546423969197716260917026327992186628061646302615697754745051193814582323180143709747711484798998226873949318453152191929597715050862841175831403222323688564763776625598777124452282318944129352224466320460548929835788828828703384996566319294571224144880191938972427976851342736432119485956590755078295551341415851579950543998250458719817182031736581708340724220993405255321659927306684538008155995120120388966950965435081310427112018775474904918736131055822305309907779832864687161587636418204811219329362318964919901968997056010405316833940647284107775135067346077759527343142419343410755532163858294014392238489739196045335598720715794302260884913368367203464320414367968869042500242560663699087402832919533897334379640058792575446949894049076957563731926294475348175232044363429542369586958603953729915322316057479385142411917468917777021956361693196674649841884574383138010500849934982089537747592066794488548492856645471127693921916624462968890901906372303333033607580290978880790066603753500466939653933113410466426615808736821544913175719160098854895844964045221638221619559315618475840458499297021402454619595173409823965566703945777083204839616490058027917366411096224959086934777563069881011604416713710708540192420494562541737264801342310942222762542833674469396839889119690980652627010280754518632196198572289135034965979105559543301608908971527361414545970697916077943554802886550227121978997779660368591870956674757873799682861043882929775470326506231427729567896583428484679906624422897203416116386425883406555221146274299370522361748921492226313572254990957011439798670246867852700400972750713110981352231150553929766760572578786012625294903230808379185727544366068110466929827162219480003922961166698545553147948669928000072552564885190294777912004728653514415016315038056770977002471015938366813615131146522359004907925270381507610410844724994277586736877412823642073374795956322125419712442070726843425691311221122806207291033586911502346246849572474777726450548828704281849449792735335791197322760345250873778672184829852363497135585524927573825106963538075472101008856628243039507202723064858083938617796199849514219760123999002783331471992170073360593406632873748086359581298898769171701494092777738367607205508794021233086070353693256478047837900041619014909796499600119471475125200129967499927652853056363160831120526462334432930028799920704951391332391901970039686161201675646739275709015521385659193428986324173108391686762533520590089477635770333346635863026975509616901258716188902586474075475541521433480158111213986548366147467548791684039730379340492090337029006896379274029938548386235463830626745865902641086393190065600588063044088490937073365372431422878194975193983580187622111595343620817257213761562583637893045814364221330472919019852624406667010735708468329077164071637412502399350150660675851949901350098282230385127664794503078870528989118606320272440862617704628514227450324204762842396060533631682444995289099989923990575060768266995647532145008422492965723177952455997993119646363682457110990565928704172801096329995628525144420037593437928939681872185176791033876471964015065338017490755877792397331725271748211367407706707506605510839609796710679317432504601239636992165674106906958474890479205645744999088276692037396873705353230260558728691991980454705463475704121683035834563512491994686674692973925833829466303513197957480349578262575422910530049066603624042060791879246438273722349732162956621433067864943315564232439115827965685955455990940415832453464907026574791416528518184790188113877984199883452128309146382525164228145725810372546657485660770436530870809873868050412762095647828373304232266467095226714923398764915965061482519620887386161591168601100855675891878758795423339202645385235608034503916206253398072281325281859070805760950976286053233716802425037173947290451342796213989134034868956861626133358753573575746768123861362156199156423404918612975034409908023581942421562998147587283238570236123246219214362892256907269056068670081995649916892848613050298045450821459370497664598822463434317308823636107117279478347952413137463803339626526622073818022715122483636221200021856350075729093239145520219747521547447611269929880067815906203668633662702446996699109371972823377464934873501845955034773801847891098528543836448054774443209608111335087501524024202491329783073837759960394140669396266580580748703898877552208044620458193954310531068909601563659662916119409557386103641770923107039658191823939320230180461962216824423415819682486775261015431880969076332659356270140737392209713859448169140209645923803503099705931406622925571075265504808137867974679551022340308666562381198246354196539128798971394493634796552885833142399296110502388181693800849922753202418553835917719712364973488113894266237646067820108086603934321151697692372417526026040308489334655793017193214467623579765616013440413870357599489180726846610434987517207326402427992350203006373346520583641760847112895369862689859315634262487169566732198218800844082051935980653313884965198876869627422826514944257489063637259835002227000233584076679106755633617776347114848317621925397305309988012093874412943643497924193506470769041257618492796458607110851869918281142796154415857581625891239788079358783252655909400271518858141882693307428025724205937622852562411970895736912564124164789299207145887172846139664523204473153450350727755194405803649189063105042384399160763298212242944084088168985804972752361719182186466931089161912225207931197116148557131366216166561785193976676503910590546619544062054871975452617657943031370719865646218523957305068789362591386063641907730363120102077434015567766613327053685432565836167848601260336630480365685516304065059410504250295913030523219351791666016718129377343619299770999240729599996833795199059715004517624330489773702134402892753163993899074043756709574289813918254390741317773445217177024562933356117780926155088084458920424594776865403716551582825744367785579940125690547618716081922231751673614474189322263458069193163731931333391108073647682201936228212999859529655556056571839091188226817356267006796976996469540981657471228381738557393749835095837964610157946606158506609855882702515368984371360416356420975573045596945517905139905949930418316725847464475458807312600236358371314061038287807857213213034358341761218484257515865076042739654887909340534791308412746944786293974792276767182140274807247531133640949919505986923327446182390541990330970395974986978730441740325403902828604789677818918320221645999231607152125720349422952505583409545778981626072533592441727694468319409637381605698057139175078182357411427676255469699271392678347890110680589109459407813664978046449913240534490415558434525527093965216814117877022175656005263658962812356008551881093713772662277549219023552640416334680152058709065430691472588457660108607691575034464943460698829660722780284442833650259843686216431546548016687843557918121671525435509935801054439349206881717568055567300310826521991532148828981145195925588845478957070971518213147182719408718191788823939253845938088385354364740423152607879077685744144216827849839368927480573501900756581105287623983793181259442798789600295955165519310014499999199258915316338957261066019897695221419395616510846982982370399547667800710226963973826904924881963735914206855567607556045163316684708041101546446170357789193145058435276383196058580814143256385607180784471887921165028597641279491643209729554044906607031814472473991575494295580858049374197450902597260525080918768124016599948782422732036782499579091637530049804399124114500427720644313640905584251111568048560004902479275725803972168853122220659118305189801752745401621225040501018701768573002747233568118541550195462378556229782827094353565438011648765276070214315306838566899037415372317493050306160869064462465650385270392276762771949254906241861875160073545179882808680302548148289024251940594254215413362425093574679152370169004190079495244155770683184941178492620055407862269764876226215171315970421925572004306043669140657915863903346619718280940998373652733689428882649101018725063218416777111363776600625911361890812668332899603896260419652736229732357708725131009008116525472714577624751969650022789723641798486156041682192345383884912111027940320330854717885485319884772614675936267172946150826267033314331755991373265880748566322503527302932988834083321073253568838542422740424607944705087048742074714781505730474919729300771699598361344216553872205285292478064589769877240155300499578914546525148735494011044898134286959473408528250369288755849949847632920520064645383900433145431784460217136000105021327445200040270042196415164157603185769163897595007463098509444966038803939580691514163905812658667664837244305129810617935226201668098223374419010333383991990592641804687012601250369196400233330380240727304619102025235974594503269772572959207395927388146050119715803260162646303231431819447261040573781116070968980508736151054505548008700914757360941146935200922407727819272778760764325102512546266662965761480191610641089838754693080337451208411949669927468760161437598021077527481654078075882318692681776200318214904905164428716989418653415957696184590156630346685713466639804699682057450635376805697579232037199106956617396521702732079457335672565135270344123426844231769344006680873919762269294477798143069888597528737950352296539288998521405618758455532765844649832502597168950265869323679490150269337718411800230736981786875851053763893279683094430081332864430975690234995510371271291069960251890743360781501692914821947047473529126026086858736538555238119617291618601461451716680176300920568445794888736597653650894134708162989797333877479338995135943094239378007406779467290626250859608312507329708332902018514631818173793566429736189479306570548389420273801810839251306566665874110151445362812705065997433449504474070920879113986361404048327732793585509684794168228971421325174755763767935063851496861046230000424577831714566658946432319606766686746343948472414372367588329536905286245035579592751346959481065133139887711270689568114365283263912901542684258453916729366555293214944140697595007530482387503727358972547345052082077275339681539964688689336223636202837421975323929178350853399366221332778694053255845388553841063931569314759406922954940042681917655132225384840265037692562726313496205309319406193339987251887543337390517758290161440540217540223035441099719562797584976948519355873572104199542035161140762905520883417823660596776488010875965933625862547881974999633791326286039452015100507341211662000723638382991714458873328404529854644959828529904883830307097856599228727731029059067366622395446424557459736602626270178734876517655691884707258156939889881071399753705961848909053541469409410352160871370955860215648780219747710386210472338224114477463679614612861037654026464786371787994038202739640466317806020585864318680391739806905262058813093293062796521459493471051125778897542092317746240840395834567513341256005412393167994221863047354153532278497403279154833742149026943464748566568824199753090680869166550199481787515105270893874855488582724748219615187616473698763057589408926794569136534434141300892165748403034519502782464770826308035194264878079335977525946106262509407759406443684711600637831991653495482446388378849612507456839540329208282879244946450668905600797013858683139576356043727655676583756694942832185313475927968702234822972018598882966203291096173251231181899012217979075206526532193593935583439024821819663301651357115034912621353275425169559624474074306786754808317234871159439477923068458691870905556805862516958838614874876052548130617243582641122348323639074806335149982211391069376257507779919881589195960486637299751176090936997479669681936932472087186668657730779218671659716925052859433990600900047151545097918607858889025412675102925326794526081689201162993018017916900522097775246969131674340889339624647758738040584925223263829353352644878552295036873811863356093317388651767112862112002894319583189945205087285131425096059726867565530999434561626419983552461000275574498876732577599192885254680352255284445626812197186183251279427067010554116474331337695959461961945000078020384659287287113459533311051905527630925835181903108669566739684009815299588980822530373444709309249208304117923651596695621477808492292399544181416170585609334360696554072283587468189979856751101822989872153193079686658876815938995505156983027183328650208005105339449475558922578452367520574837296119574446438959252248913977998733903416589870493358536860492674827468254790228030332657360697523311727093557469883811099886368255701542737060072666541518949561529298436486378034538247186197168189302709377717786449532509536058064711937407108736771087517135431260709266514658196408402529761578559146990041376027392808740574185735217192496197666029609067454016840822789640793664989853829539790472815978279882679396504788743752196821328348391264098750901046843626524963622679721301427836497550210469039068264824960055617152263138497761855015796103867691372398300380376120779262833667129351797590530373923354915723842258037741427810392357094337331476317000896945397344072187905471327617877619864449332319329261568441548666233501083176654679062443259863362917888004247133664459689666403480536800467685600295548055929064134637796097172385993738788486798270665512405021116175196525309366070675730308611581426797789096529868645682019781089102204530336076675913535999510405913102173745982794155218142341694511961460213057386385490066589203080560955035123307241034125969961936739916015808849230443170813342573460799382897092654151609452222041010302503090925511913363165826246735960313798153594593152042553789536047941693645842597271001058674160800140702133663739620708101335726718187029510991708845793700245913208985018153054424492980958789903921197498302149455160848674540367313515967671246940358497947741737377245236306188543003799166611027270486965450634208664297318310250988187516607549217330639031593306133778830598426603408967005253153184757330100770412181453472731607419499061589774758397156894748605883355476237086021315170626278193758921914075672191900505493197024398035473134572158591815441247605157906326339951256867423373213747367958148840340042798114745888230756862264596217529494366513109822531788763981657265088041501369512454755644254374946496580294934103736261967805254777611471214086932700456058005810234868575217967198136518985350618944583509095385645935834059464782134407919103177805759285785878840361080910702751765630561494159172574934604608986920801429427179984818815262733543862612632837793184773513879192362648642959637668951646523233077645543738190291640763261497579657709374802050076768137132668815260961911938579128894983588809447880821268687906992950198904066836285722145597335215684168046338093175009933028160806351310709072607940292519012969616974508874283026527845167248172769087321155739403284251656461018374547730243417644061408365504413918621338633980223482339408540885271502256078240694583709422070237322664340414387750531437575225784173276605878112280947668084147326661612271486211570771744283128479014274397515596780692576273875156843990901777551767956530730307480649468337980009641919266283008393625225909800016725274248606788430095725852786456984392255638781774204511319346290278742758907364176486357440038692046904720801083907555013421904840777041380812599380233187587102646380809594529248748059585944700937214459733674418691546070311370245221547201215642356433712428194723316954599485943859581160757406371000508938851418562172492564328808775381810908857234705529490666163524890701528365199774630555767708229527349923643712905442480076613404584772976765150942640013420948116777936436924274959775491347380503007323688947827370939125920071161214284257406456409381360204112926093117401927081600150249540272746981240624066989031548542806472189214196946215359209559508680841838945223436850348590462130976928717649114487555325372658688198411715091062028606775728652835453549746024065228716644373846421481094661607088518481822272954572690762245744333683452976836928205254593400688144164480807709831158037973174076312297853468868730165075956268484265716933960520266827503680668809024455939970785180383233785408971180992972327794653649891138687456301661713225967737608611018793473282320046058299029535859380948253251894741279437844413316040438641156061106332091884966628143053571599765211493694928449265239523487978656714709773150023248113757099518588161965731579329193226902204237514989950035553343490386090360366933477310926896260842599751340758362610316759048594300264055302868585810564092007009238894574541273603338921064352745288251085784172282409913721425204322778006937992134875179138995114687418138640230174973451679733815293218100336156755753313199298307401645625598737749302227934369932189259842156526509895525029103948979922108685309058275631278360438893704757112298725127987982182668295330361340531010556483721134933215912697285553214002436456055923788999640976771083784532114254289328657034550725746884563594473528923200125415184650041148259371721594973429073348166057886072467244081664734664545382689916924780473399880271146215462773505699524566775823030256181799465257041012995853815181319294715540706924500733523887779696193363085190007835673556289745031171049398367039279743682787287412406270698475764397507149724396665736162196335288389532194369991723920312505784241716545503259245597987453058275472752780030047946264589074829233240047622376239412152472322988251707345284499607158978571687487462473890401687473302621123192219780096198817177679782226579017813018064240549745355768033329811769684444319206808258359860466677917623988522806054005036001917883580607164248483813784489993765456040917422371260720270089916971911407693454029960553326058419474659038680125067454387081092328437136146834387699679812388878704604523925552740435940926761809420433000234358139438349159416434727775541760972527214578610667217892402534859253062588127959527466398320177898299237479129743341398052199562999683241721667239101000588436361616126269272085353854774380919940257089494529199264497114551586386149995976051951581580711538837987225888568855382499586641779212275220800512507022349154808370561432309751692521019808853980109868671174446559023185067069181278316079906130673874100652023679695808535011419440340486466739318399538417850428018139738801714340770023629318727830059300800404965773689562504220350604776275466359217735145184444890424026312567231722999687456651075566692201655109350112556253594285926578101145776547633852865055707676448690826672816543340275977607062558831003880965417070443741535687635665719837959192626735641095585240776730903271779763344300203704885408246137245407197846899827859669839554304474718011768449307351150561582813640393961279259409554779755799437139851551541759349867684762410202215146669539336643613651268556170431133778480076787185417777045629377949187311348416599081561669262853035922469567390295006433467332315661889788263360218310837508878688472409882233936838272396188899099986307225598814432468541782212624179229388773406263705546623874218718387731849253207106890365483458626994781302465763251149541602979801363896503361644126159246719152256726207306179200792735428675163725166576969422069087736890960210118713149893366661779458672883893039973409400318191443304194159691055044045746507825654582541219755627287481911131730662118901745981369615601199251996501414588188152589418552096311143616665397878117869057324142380846233225774022326419480988510245951342288369139672227521196688202140577438499646677596420709749982610532518534284256990343389071047886469526830611809693264163779725745049717024488958351143949935421691513922756793775685890936781748265713457833950669292316815373933513269974215774892939282464903170421853033072274978211474818839559639665390110983771812235954202044972586841481806485953620122209739679517803546763256794280550735242672217351928505633673469012636786779238357718539158250108336610750656897976850071252169234949148223408918533677968646626402506005152103228804795394625447388804489690179335896902860231172488648720359824607366100402708382966878921608209670083825818126771765311155324687377411482880486302503555993331432924763804588694916029500657807205464445945758714940131471698360937713405810154122852941010994548335192267163547205346850910667346224444921000182135946494006074206871356943624594404959591802391320500229868476815598074466806340747967533031896353877661707579563645965046388206152794172919645264315653137861808721847812773700475068239743843243858693271231642218728369569078730362763027359347576217951299714305147684644931117556321746381408443656317937970954077188880445843948437957113405084194931190694145879284053205144132298409000416874015681070730598105287778646430321533317677424244391795273528776211995965089877542387338079825867797010583193960778416973297073381148672357121646633629938903093328274219431377736903658937458123901642404363725085292116347122488468444138744839938928350876970354986818761907397007145137020681222140315332045828291506955309558887002194305651511437602071577578684037368075344768776714099996359377775018230470633364408503866496335492614291783903867390188856566173930138020707979827287769701336563494632592995364647213653669347189052727278211351681367584796456407338063059975229071704455989681531107808166821828458970394488864915847332024956957271152384197738994918093716251196850595096683162854757843796017551890945345868156347778928024297112085267642396603397108820398455484628694867408632772917400998419931662316349169854059662646481833815056341043939860937218449130245374188113780968865847748359605442013834091950341743572774915011526674481133125617692869354300515330269552716719578738321319279027585481526165681484622837468893228063573240520406915444179876947917181706531769231858729825062985777573277125870071823302425681543055157095559714889330026792030815920436370600002959671878951031722338086764930761986283971246866950429845917047145437420509046442445594642424454695364734577170153446542809838934301741284700754693205753692090112187918491163376137591538123789384099557756727235178281638138799638332067240325846637408148149915729587660632340680202471184810411131983220084250557173195871518717314973452461673888830711907720139591515521484723609312644388637203108080668657976749641020372745237443581488167252194387894473836577637404454570234680741728651682744562741646157683493192516972803960586784219456516850561828006825220958076186814113578746126503292430341018009319435628869992749777373016646621060396259827528989129724424811009441240558695396763851532195158414154683284721472306168067863393847380814828889562188461849748025080589580793453683191907364893969908084116813697790141788512205443677415357014327968675655611396569859859455661857589327816526926012646178622768765306340879321271355727389812205058812887549888530375714625865697033868187724744712649595962611860141088181681527143225464940710388253668523036732837911621447423006317972021053654320535352000941796142528085566215910930983282144794183106373997661992266751497310426453738433082226290123679135468236042200819892721459357078129441053551925079627918404836259713642270720600261178075888047952106281110217080247901078656608018946411298839082699351207449645743411580158132821371744476837175176881063403071061846839978211067096303698437600274443438325350652572211413319569826878800539947061891203892345061924046667482929562847110574987377854382222730051013479095139152994103030890407702593356936471001163551073926344832805491792373603768555329278073525359600522695200677362800492495497252518127558607885597372142835896654538489337947560770972102960061598576596901576855921687702224721447715229628529162627178392872187702265455867461037622528174463890027676269778086139828872185388740187232701368365361993253239317440875784749953267345377556882563713030243570791198498629077027980660622692025895298226183150839050648005885758446790140090655695874732318280766920736821758025303046032638605321398743852117094908549976183006767119456529328448468759722943203711751045939800810733279626478378850046549972566083503786838044268775209402964521991959905765372714682145533658037105553695674041452015189779583250946782403887744574794009571330841540006543589422558861041367267359025007872691665763572800452168543546886779757856310329316017151434161797432525594960258671180416790284919875880563485193747702166743894599517570455181494394211628225520738765958976213513041522072150476364646986455033330270950081459649035159087738713901613228738424752910923157081217886314378703413637209137449442431480502986515667576582921274359207250004576383892998569257934330016788803969435804204630842191133711218294150121521333462268659786661625125323601082486792621455401579101877095827702646578934661001040619326965535948087700077988690132010861287297608187538509330450362612531375292919282244836287720659481119209167422582181793798574553750121989741436674475016857774581740916082073458937048368221485416666770748658553750874492030499996123029804244680208571502954018442392557305119743911443697723667494119675714399996673742887758954016783472819377280407000783332737025952639713741063424986787195112833601730012771533716932089214517335401658637890991771594395701584781253617460749883842778629874545862035872655481808251631991688540269146168614349422995675510385288200801177232923752016315644081731367663208240904577309339057607701622877868809063643051258814013969962985933134465807397871839460736476739340708018974486282593634620050561291425533627288848501880290333067100485604789675929732358867155138335176610453959853922143633589750042210145279353574045090474075221464392791719091532862977314603089353200214023144283319945495365177464148620682535293934833321447014160180793751314526170382485201568903817548771098201356076401075320866005525234353560448257682360683146916806759568545408535663286646051558476186822603725608015337168880971636598821213202037190962854535513742765245268035620184156290484499845351399125274494405869757383145943728798789324104530040768897583130322858892585621631543396850397617329145740803461011971031826204440372518830407646055878267463178543926745099786876474044223412240819743551028924177278537511214403506817420667449131023600832495394531157738687225378692527327753968469110956272851854606702023523428684176326411373627424751133908940099394908218772971559713436211805668437721094116102613651839073173106443764045431940430506328799010277633821163313952954956021467163441890292992609189234339283406225792818221706373579734439642900184044859307877452444070957273919771645390676546271614545492394815266050038566671336046987837725288267640691177056245742655062989985486432863841393005997360242250547322599542358943253552125773604049229124428723688693996362338856049888964902873071020134867252360912817916963369917350517532638098478704524823826480622127626524643494920552410368625001646229012309030579696787910807165122901657050113518726110359493024126879141646497147195597661491213739221070457716557401478028683358743537732850468045310904594058993196739885948697762777000702587324038081131142171368656147157170256410173012171455666069850993884973126196888876854821684206075350603266109172574904833396245197818983932437275850475540954335513498336342079050562694278232037240093674152154824159853151150484582933496861982270694292127697391832788784993436177674608897597858444565366265839184049126753660759561796086892901877861410754457226319956543410081357990888504528118188771569358712996800655107008207609870570259498491894430685533760576823711680151864685737812770290220708998778417126962358630480630419441037699752855736985446597753363863647300764986383994599050016643923953520749150820396320438653932331104705953129828426406513133088091619558062373184834620896355452082232751768544708805776217519955160134767847220434277185768860162031650537308469290669127915344271862488955484191698055739545735603283682399181500154170278794141224921067075779147486183799842828864055383565485063149433997915907194560743547058963495345199180725911286083258887113693005817253254870764433717274248303344724415948462424032792069492134194487148555269765681878821268349011708546876828229520565949735518245947779906817657097394757715047699752691304282941494086116977795007298143450967759193119484289351618482335786603369597604152731200827858910636523223425727342552521455092133042722126486306690164199911207193323471921448732945673456054748614870022760991001762308159727390223671392403095769947962588013117035044715195127623127371663033907631884263598941937135243052413602673613990849450513268287889225245580389957905268687637222342702200656379512462968843168566606978531485430210179608506393848337288273474475061709038311913131278126254163298898499887699281980812373627664683573727884037530648525795397255147696239004014047156978591925764829633214423094030427406344661439379409847044502294202523184002071751776225089464566122629129095436273148950018713982878960151325306028603630275345612679417301471764925076543305973225020564860985003770264114304454573008633382238636519005841868561324672035019462259336259711139773329713623177794449092474918262924420452666682620418509095385141761460461323234075652312008186341425698727302489193712986901186776814532554765421214943533410021810761929624049538901108623516029483615580267402143475105327480913366738332951689685197455062453190702251203949608714469906089720634895430080033314403481412091050268900381798355356854933875882064648207344993240530943386564313880871002431710910081914192321754929437732840381944753077542979533541299775359070210848033287018598308753491755725685587624363329499180750554832582447732649728124900110105226818948568322618924388881631355449840269364966145280551066370145980070814858268291101064859076861204762608067795210009633942493664720150677298773678950835560320918034598134775957969922768437728300935595921373873050784790189413958783160496179678588466118732584177674153664353226594465402874048105884374151072076840967821564793199842285583528470802366226520797431052608998173893526363402351011592990621722219735396746648534117282497576642332991309571787919284940099174892510465617623674294308689963799294377352048324903447954314014611603051020888803246283648911604562311097640838303347732593715249625602823083420169519375210770733260658195582618126113669907788696858572109988687464303056462989057641042120512389459061341337515031707999382183389356187429586483070511060214204877865496558043307798490804191947437965023509181507073386967192271698696732739910068252646925505308963484938465415687914855860689981540580242463248273061340310216781459801962233713776839285392878928096789231219394569511318657903394016230494891663233031460623035557698229210247864936026573108927312200679389436790307374927243702444960273234800645873852414852693761547571201541696327563367883484677139497054212936617664068194741234234914535733039225686571151012297614254310084563711981289895857363919401239038292401165924795500280786171246677118682481953313970980829514395785251334607842947136263792372248055942802495426038421107659902008566289667490128227752401974285572470614813909104773822145026658724849945917996383434908005232621699356320621882406014378592620218485334892531553870227187883033030703576178008398203098494619075921150006731066588899436249297808667123099202181216194519415878581824846791545308375127682352672004665035634704263481655136611542196819264852829635770054492436923474344199528612331239032353240237013330275209003606154265202663756482118024946264372417592111671036055428630325723192785196377930004099443199540884536839309201097506685087607697277797470062667142984696391721120486660555493980124138430044711046790169880711501748910793133369463771178839177031556749623101058794726606330923588926136597639971756153040974164551640488261147031968288965326969977918564895919229051454815749729498636689824264001044750915945774316765429223311316818590777696369599064465471126862156341996247462598085427942117060412696244620704568285077095504017091061071909447379481291480478218677188558327461333090883222187770087774234348107069127025944532664245559639317598710121876120422549886745655898361024304949827486948877760090372037277351932959192000365662021439111468066854011997219202823363216726168064925559129161297189120190794448941426436583992442321556488231877384023238096869198542894913419046116467300144147444960976883106856589061125977435891990873391688480825845317079022535616902539609355192739276614359419167103351409289345758765947833514879673109852767320221231060145711826502791917654375779038224436720021899434833425129242147872345316416849644781769310471043702591414198849879176588602853730810295011809174519429865162713390299013115069280978155707225733499723862058841030341819494397485137758652068947630467951278477830987758265817077500059709722176632717140965602808728312491116075122328693686543731508165540638464075070263677352326402173332242045142391340796478266219064510957579435694519326532454448699399639927636600913612904744971970276631508614520483138143850075035338356926434164486567269872343525505858897787725969163337852595869799786620066749433641068209122714777389183691572082904626123785738354574174871828680944119625654343694429156653519198187443367550413868732213369083968333479161090472515369889361363186467193579215093904460338571389478308492346448428350628994596381194644158791359436900979385678885101032111681281982798701899062050312730434079893291835812731877988739799631582635621602281362775779706700593936469036118552416036351815562485860079298716324049206438707723228821826039503086549204729023123431559918817718790989228819783337262070830483814488026318463439885477126199985678466028765125095337021443922810035331928445181878325728535175148840293075511369652563090362426147233927798089043207631363494739521560528351239933347945496072644660201110113385008919639805104320373595629793909308330842258795227086637924911758690344075450130484389417136512597886511470321410686345948177267566517753635080475071577892267563449394738067497647296526153723747983349710429754624438472197513016120678310526232929562689493086145814929277238778262407602988526066663068305576308278366767573522097227811201426821704170889764356997997175400782242127302076514659065267516780015296991803913426180535383667266944690009155679059826463504705034441416642483653904659019320378927944409043740245486819266961653068968677957320066527005089980184984490000130790007173810516748567830059460301519497156703100924884134239819962941808361261895349854124087578486279383699479019199706085050789624823609826312472917348280107451394079607597403702366959948192990166888674422394139055743157816415072461222162865073884328038626293348184209761985568443015678884712993322123775394097845218179982103006557013399570444530056505699484741131483535530901857665070289316484827912956696653023287550687951772280547470600477225887351309294707368535156004160996119416174824278521735149092252752722861634647935175572661289244601723852844781314876329938986593973074497326792893146929387119736445140185579562887218844635880277652081239737170553605775648352072892366942393959600913822666836494535786488573201266646307125185253632536124252966919919847874389483400226058647323314972598009261546769309386908846301571558812064238982755795233236638586173212073856103493649148356805270812060100782482334296772516149330654759662310670881109607209240030362234200451519244660702717037644902142426398171715685208146584521657989353694350751438232391463467421735035862603070823040076311079589877146959431344998058096068925435673288877590644000781166460678161737205219739287653248402343001098958370825764235592181898091851906552495945634291809900084456313326373148489892788934585651161824369511707040987887943169967606411476929098783846688944061528781323058766323473947816497423643801879220815394063186601927520400475262591363063995761421998481778908249475717279459655085018773471414075001516561129432895917138962545556425753679000086301276878065597813890296000204101467259902211461212275866662860956892126539135677664495744931405457868424518340848648348937119849827939264830027016324053392814860388969871597652592712070669595316129114764351116304381898555584727630703389321430633860600890134203828302993557618486613744387924669080455924269404753556502231419619647705795206144967285752169022080304272781545909818230855077756615418137279912464681246438766442932961092870483938352556303418540655234333945107482788135315725259003142516261779103965051145824152272606532746349647656577731881950619481002331064001005474922890910042739358070905339901662928666540199057627810775249326770399932096114846901038504714476249600253203131041709183849507926377524395648121701533713473305778115828460822558533655707851169016310550004392405630829901252416451405483567522668151887907682680843904822552943078302256455388875437441666209341652833085853304074626054271741255342236302253172154861096450088233957732417110070066470697466729187000163343995818222355207796473815110006241197176774016319574495814166325328841024076051959581162898995901737760904558470079093409763349669827729141723273295720954996651118743160390388569888782369548255067586570062568179134021196270992279975692680703953812377051771541144296135143738567206854938476672637403510962245507271539053627059873517240725027792172287078821534943657401550569602383296985141400020031574115399861636599949031800390690687100217034912589423392108048072780653395360755542801241772401502678527940790248505081608415370045263147271358212463558806524848883754207739061103768810471209393253187601412447419840839147998926399943524504049013408303171951229696782164572607074120433056228706963566558641588466843118323691268239176216739688534490773820770157465745048106076615089407347804303271973923494005582046362051556563038050160406884994143511435183472867109695974362945775677990777163825316148287839953596403970808240481614444784159395623418934801816730003223832713559137957908167028651503946688596797633025462390950322430706827135173919375450932578860985801052332096375224383822924397066573206664120736645987117206942834743248954828849545268054410803382755446528239097930577647303264645717153247242212150248755324296260739361811785636007650141801092758005183027072565230625053975164869725147023472390069501746201619564232934104615058213939455213669714813963153290245443783782355524817246201912225581894213114160782712000731704873142367861897326635930886331185596874189849578870704748244315581460061449908642143223579286121983950314155691344443262002712948636861249174755469947672970150092867180115980135890824326310643149767883043424735283758822247463207743308462052114258714319869481387064749069678248293920010853196263544159030248967085264584205311486192483777064280171416166911347670690972959854606337694158377918749053931893812893876648478064290282947340983867051459574428426905495732434523676322402175328487427350462279108065505284340816754239548645399712154282292762123519500027395900659657210104608851595690340177148684437279180909388670630608946476501509092387359566009786630793145734074859609090806421424579694039625372928197283484986263739143504978690467304411226202452090946568615192222777888441634922583812689898448001969316677270137680916345537149930194130446913691191538267265650948541608499426306449851970056339523403760779821681830849069195866605231330242131744202351552860945701992766135326983736161877577970279668228561966392284881725103028822472762775901116301705059399351233240956425133137539187646645931379931223962149741559730364794327906392595151094255557574210857409829577270996578406377734816445954992458023670875025983044180969354899143044931604420467242254242008141287918414410981287517934306145470862169405930604996239414843187170563684572958943073350293676634790525114112372678235390480695320001266829021412279714627355618805634141897612952845358776091113761215342171375234510323843887266833049465972056716167750566100394581049190936394623788937748386271854529187170437859161586365697641714212009918859602737424417650862184993563031150860518200842599350451651889354284953436376818479674516310690141239152358047876847571957219338636091926713160686235890732828833229604781497225272262013622460341363676255702189720293930585971353676758497195323070962740707438754924328991814784777094483233352958671438338036360487652546916924114678084407707648989125178793187784601194627355772046841058128032135827418820587180893334810602298392162523063088757444827832755893324682673900658420264699974913813173235953941758979591605265143611979811089772659562425636069758290488822577144893948542457469099405595432476125658700401392227559644801979967749525232179079257242223824543205733599306126291433715686123201241259303062018123787173693796450576028632489969970819790814485576687085366604729485558235730595928738407079562432527879002682466987628779086764428582870361105680297457517912340998528062481453062795628152213177903531205054220580555648575409599759965379097123635435644209353923608494079427057477567556941556516481398936988485945959986199035007062144709262079553037125514882519247272612546564685014863820973068230721265483202315669552975426794868002595961099025024776783994391389721486549769327332278914778999170558965568810064434434968056311425945309390391449041345139869147873742622239169278973052603543563082703109153678819433844525067249593298440480453209579823602261599340203574915155458269908443093460114170418953217776963088024248283497264487277502567306912756353811257793278122092262964088184246235797589020799591134851593733437410178929179103174944628757294172303491120416275460772142825987048839344367534301584013622141725214244343742603046218428156497155016361666343638595033975142063253609496020276778926039012113270525991457861751853276362478503703035847136640090184906302026865551468377824812826763803508185446838264942434363097322537286616642796999598791706355989741959595400544800474053593986823873277300774564503503247736298502905230644820959953249108983885249962330445553905975080208901703054775510561742979103006972580007752812880735015933618413448363477026860340725703427652614578129286748970200479699885394684039177685861863067971543497807000949635499245126069232564064827165181423863565343926424383861215745973772383992412194319815544999136230074179485171464031033329620826916301542302413243740300669043216855880049353431465490535446134832539304665390989400120599260011309350159091695711607882717288845123373338341471562249158735297670996990771793051935937461050560369111631947147482295913916827759103831568607325896038311044626136761693798971620119846137914212367279071222767098439700686500638129916834115969046382176520290352071575228831476096909320492923423861099201571500707595172072081170119852710118070386373645907219657347799993561686018491573557511399466585656795691943120836815703328464294485049777958674311422864454012163052087396224662616304418533434439092475966005282779681284377868264699289283963879542130600021135440892937130245727056194705945335651479303140928272189662647903132861131156967420145616305016698724291228702766320586756457392686118697097400793153766362420519706307265922703641982930317663261348250195997647717991076602896560036471495139512912998866016918349010724314132041854819700352446267623012988493919614845245319815358912892894188980386335883197371220281871240265808831831300271754301666088196053682841211296545830841596031467378599683330563081529877684987019663181116311512215552772853955413983610660489388093543591681462514734079410746802759801797426912887696799622739056631963245479485760331327187514052946391818333402490956475167443446074253023917226009297276375786380010556516744927139831572646200234092414379618649003927613236451392874919355817840424432127181820255006125676772103500420945435068478983568115305875702944515450831637110817219948610110224625235414342539012216408814387770929034035506514737899309321292771618549815449730683990491871048714117255976763469629176062796208045864914245182181286914991399524969926464441867167511429672367714953263668389999434201324725224543564356292495866328148938303565713005252192080521869421165750282299637125366029646965037657691783222365061480418694705016711833593259606111282776353382490810844248702112785587217397950248606595532472977595328828680103924552261922949148490667418297279673793011387771876661703958702984778581260456320836091488966633950106092985913402395095962779586483294306293504684664168595650740011794202787209673486236918475393340155260842420755114569367345157550074856620388715560994757818552905538123308420356976245030953156069577377742522521938593692873368102988335286893444553560377514859408723481079963769374369412223078644629067090617712293160097212506035582535219338872333807031577617345763417742877824240007176384501219744000829797929341466544334051774384178642850186773559356959528387274508632419637491367747874551587022208875101061967497505264631337552896334142366577713927651335053401647717752143729061316696990395492255193584496876411545800206755662658457310799167351847397956948711834584246435293469491189782887418177191308643196687806616518616066424512130529355824603730021205730320219621774943764890277599787494482760425410532194540036866546589563637424668985259609945450046250704097585636346836487474058729564605460279826031267978906880921288030363431799755744462500167139414163333019318862003715303871846348151803927810917785541688376366131372502169306286073008462959326931300742725895316683907890818394003047174795834801137583523938365436803911823582057459173423570723577758672111198900842761186558349420377045941208646882381646795830390396197580707042221673573377420333268764005339450994157650587602515299872095424863315890852883523946878146065793383250989001710597016785474004279799872773512110517546543322546697185390336620496621749307929264259737906260135106088853674486859790556580339231875594256240471824460210951786528643275850172520945383594657769675899611337949320690897294733960949643982315049202403276500736942855134603333502838601892675028275335387982705698865787154162703585915381052021066865148947714113329133735127821428948651301050420339237580594990169148022299020697523978070492724135274886385493887983922888629152430096275657290816958187605067197590705792699818376342853791383987538932244091704896293978670949385193491778785664131336539729004783992552071536891190475675351037309290153930043994420578252641629515906431891884318481424565850145789096288477207382449194586730237086868497396754887878562510516610289684684099054002366548762021629094043162282349265353187561959305364269901834551386759247443846034660038836972803774583425988448110985004197316416985579650428091125891595553176380268464771764928887639502572235348048615495671804655837023375734747475895421209818247152610623268912040075472672245160558453157175694566749947327751894100394774220424976913610958491590761052901186640236102841062325695547854033136606873582453393414275026978817774089312249278463733720771223733135552562290630788562547766377307803997025816982600826487923009819529651365083601556203916985525234018470767916814073445065916750760514333189427987003020809292193478642835144330704746871585638543568961101438113343955395919509271743536176935883020460365298759889029968787606228611309311140654844072431076523147050447444260654417703781913634838141961091225006756416977361939870575079640720044079810766216932770904967975623554861642108551320203656735945307580154212487530149901571157045157464600493960195793568009241132309904507026096498224573729379731496157545887811699151358886953054761514617838903285873140039525816577457299606960050853043118672505168564413468261934145731557806259660789307653977663506981192453529971974082537442744458434718670013237852166599956771774538842623868208236508676089994965821860126289242128113056334357675505724350002953783004721171500215182249894759018086698191622805709395231799485929453398959591214893619938898365219977613127935436107456130760612794748876309613949476469697813448636919723578909636395283736662181034988525813850690797987399524174632486489335446682890378755093820283587502986302645779758407938814341740090490858272936843546289480472129282226739793526241584486699824364737626299514645523365188765453757679889841960396157633456871290008889927368979618404663683987558392812081179861448622082628615205176105227896144839608507660020742764599022021060273999786396716192457019907882478624269477376233064893348822760154640037177778254428610150450172454515746683220774258999177162856039709462431435979384345877943270688438323594769665322572742875242576545316837751063044779795226119028929452549440192448238836196585058671637054230282352626049149242110168937718207708254893350955251792103046476194967508642702819930729285281463004051474626901767331247344520832892816220351478269984786619449100239490782018906054081386307047736774306501289927952464166511642485328760199375103518751225031500656240052119623475391503481104547931055272043749064342870941574090282518457506585116752215089204358794841764845383086687312377195911708786787725083224196283289705104301157261648035137251643569234647594921881894059301933557469481978363236559050009814222774004096117100726674516903828994848905306935369088027821675990162578296104198797394755987330414453974430573673826786617697633179110966245474357415970004225419441513155918784735601764329999899281145230272137410802346007314617835471437104878332454137026026205216368199758212645228835427647458663164746696417670551031541449832151809628456032868739060466699290663995670086619479227046886274704662399288673898071520725012992065560250374455358190857256758221021249034869544885898710938170014294190632431349350998982647908801101438438363839753568735169133652248259956622009920558998254843082619695497466747224375822890694046507107147000745121138554564863736021785047852072702815783289099113681433986133333441625111332941351550378816329703883648964999763008485670435087635100999716279489598261588254699941835566376838986248517400079147684559431020884086097789936070463960762993414267356558386784618501785010719731622428311769833710720253376364593092538982264490182981468687934897545592278182219155973058521951396693267650440104622932214394147782502205980668736236643950676136546227860138098201483309180293213323364570006379478962712115875098649297885550826203497892449567953383158031991959520968097932722845237751789458402929468328378100762861555714385226863635115172848067640434534165917825509493931999748533640003965614436354777059374264102856703041735643041144897057970096680606109289641481414035431810909218154282981574312896087791454078765630511485069472707197707221691043430031400638546664253673647798670293551616537747075760318564810930451161211729161807543480992418608641743414088740844259621463523732308350320977848771127200184947419345597719482463786096979912482369307493722371644187311491328436783111653792887588088008968051756453251641414230207009265320325982667099246724070565418191451792491774812865750997601335909876569822394214864004421099587486758217265393818811015050862245264490468981279454393130051268470153096720033005347959453394883981983037576749913522110162935443547300826057817573178771185017507740121913141507459563567849547677409886025442900842426351674511313508813201425837568657980252937668924120152072492828047458512884464606376302141646314241869297835316540108583032266303747352587260077681412197172694683776993138644289687910075538806555794667832777976653724179577354348147129003301447364425808885900189226484524420319043214504768455045864745524882971349945510096928637516658601261966207026223715625224825594456577147930021868841327425085717093371791105176433565260271202867410038448355060848886984577172322540026176845006150994771784356075452935387903709402522190571339006062362774057030645346415656237545407079699003917479985127379505253244273321537390848084573869384591880157890117236427098618802279854746325888821311964604335665428160816880752636504627421816664557984212864808942033956336300498859568695143542904724838932561743452402517840057730751864775977890724928354429358232166382985205724150275986435962415634530406024308771080242196623798799186971620808859754089136065743696815943086956212543526589739045675624795163768466637180400778708899894283197241409121624286636905461042455502416286581386285898303211208273097882493110261516631074620079891128798453474979964444666578176874244745933449243358395758886836334007304657253807603289436356439886222083947273173428766623858534596873928805631176926525477127252597185894167076634406418087980920050395373254339065678093345620869474423411599396203322759991323573592144160362514402557631859936467371928228392916724030560824093749718348002629766472525415528477512507335032119481314503450583147499727288662934302827084292267433567940903060453197941362483100510100710519977533096817300217151757934729346614561024048833013031776028575439565181445336907875416507777320347312996404990009897514939333969032351576194120140306727677196190929893353083804950761187143671050631460214839806285317185599292859028198672193703310506206677563395486869063979009001369849517466987404341292898676482210361289512585455791943073531820388100028545329161462414142139557257817608150643076867606803729697457576588368547650276012213380793246598986884705247499444028076656916090199466707405690708710187247385402611369873462484186015582234119934849983958468223414346336297258011530842141372885103267740210591104416816608294350151367997586536757343726665020307954269188210517722228254275209158022372796838063901288524155813036726393132775017184417518320605138862801032752776321865805794149147902559715212941502902604880462851598737806921320843505603235220229548056944184256632387930346850021872800114152251602471210014262006121789303189797003650442279821103033811555056915741785619785359436979576992601047627194527865398832775002071393734435511973526284025639651006312194498967835139818377452948671112188878283392944671912826696091219525719882230928993968262030627851074099641538169311575599776173717011710027803227748657368002122096521373622613611320130965958907499005209030211980031139862439854086955942766705981489713401083589204333829568007299488041822959021868309537117868709464084602600710615106814138412377163265603034146253262120707048078167796935166211028182336483704850694955316941179964350290917413337715435916401197170494366821628075200303311413190419290178177003629579708344900898483661088785218075079344524882227205021709868768607399372216238790420587246708207823521472196184638827119260204876054186554918293041053153123516788197263500322470004800026462955736910135595017664912824504280143537032365961513542127262860941532164424049428200543722652349574444349047013872072469991865379399992932301191827730483336554508908518309924893975500675997269250453018704874221711937061616530169165595695392529780933836296560866090497320859157924373220678867943560746800141027763248242226009535524677391642988976095519041573227211232149775224512449635880276046806214425908326828773365153182627745176946523759652361947036649616455782091084325174902863352588194964472873898462909246841452396757722554766357617057700323755810440269035229131774293000300548130252152337854046099278436411468378042648082322530423507973134032641243255832478386526917928596431143597032312154266181428778942462299171322752880987356252595841840169736936225436750240630018283509714776263857431346142486639465400096799319721431628424038100198208427484144763463129302523236415671738190620611665931358832180437281715517589060354073114246573786695193684367563500421279027213127828107060879074306356307632929049883194870838759421899932162579626092653148378765037298538217752008836649269221668255159901892238499480753981657775668926233073934420188187688862262239772393859597374543294401421207999865289893141409875142777251146601659752303705230238022743765942498280582043924844784011911394043148644091499624893876870872489245843376613463672674998545117275001826527500571079521407932561362633201795942224867351197098751428626187463867414399401776738401168298565037383809920719606124006908972059938410850519149056112961897705656504518321444203989626115768410057019865441731330464999611393453965596270294404930893782087061017928562617059437359023954285063199779494322703703388404918791334063753612310227582550907545921377261209830338745725062196052001409245740766328993115483457375593860777676719171642168981419448804211485404972622509782281730633230873696355651740194647324110941320326779388711439614503079527180637830304578623169754935653595004820608172906112830983000476624378772406173654819971818827684278361151877057424043841693479560078274729626790674992196795794223011966773205790121425170782446614645841389254088986188671069377065002483518041384010138818137419873567147759590161011534873731519065985294539944567797941163309807929169432066328395249792341419472586130613692700231966272870388292097892036733763187630181699323303697354397818207529784128228436466837528756410772382689399627760934707653772739102127446187279813710282051050541707714225036773489184863728796379079789097024543259217984065795748117301220146541997182694248728086990448443265176970121801137297140119322275473436130294355255519987236145007181355892263086274101991658922414096689260853763601000606118287471450723742279196042392737894829693683729938162852867725153628972829850144836980104276988968170037694211417325765174481321137810669217424276269297661279856096938629933680348099032187039747751623997281772574962992119036142394864828364777031703876673820662146023863791201757002513923391182095545757521206560496594525763673116386371683894536173814083778243646488061509984744853996191488190895605794144839726625589524657067611752879132282916943414564816887772458514211531236514929115687033599693822010594611159966221207279212841742712014020172591215747003661245172517336808255783140593166306690721965557356054696112957136613501431003572473224097324625011609230036094438765278601765275949896574381641217770878469993271055967269087926697628471064624886841685905610871665545486251726867147272279885601325453778812180753033350579953211169675495705316424646747712091501706636149332596581919414050457193208143861492843207245989380647090330330941917888764507386088403434202951386424728954767805750807544122308082633419821967318695140265037839185966203098954567221327229296676443789134996665798695695656626619139181800308774111237333668298617070480320858251780153673670267915523015923679966901820697983395598685442092683812429994212496919392594730822999931319688687483398354327384593685749811729990533625914647362985022031713909761887852790155705521928547935396707002595187897315505706880073986877440441356124102334414932734916279766553317081892361524845813606052944120355338146536382655258065227100006098080446609956863724034469734552390184368924265211291220830988740652306217634277984962514605161693940799972339362564022147156446049315584179634720362817500831308735233228774915440484910884877424583387940117777555780179814671898804580668998421008522916543277995295716156131195964532193016679543796553128185539538284266189583387057838780289560178641669635567605515772839358123079972770784140868987709639100714385562664973244626665617026903276698390166547682553526815614141175006538268788307341641454676866869964737502546359840671506024715542104056908475504952534597980069972999102238720721779530550185014342756835377599792909558323973569976470550043732019649368055765170403955250084489940429225840043985031610231607229224079522427693660628659904903235130439826821940992782173940462518813136701992439104646768761877652010256382053527843792695683426299041437484963285764970664079421556933388037427627016441753677120955556288649195919743644589824023673031752269279750857984962503321645909592310357479954029204893367201537797627716376809374066713019202314994072104089849403858673932994714342616521062345645781110502348904845110133508832675698666563409887516159156671851311197846768155119859529992936790210010536785030205806134965287060042389881594011856135342922229820732696053565980598036450057629299003014014977107372184161367713907934972014333927538033050715396078477593368887663208290515282619496069551838911304644541150481417210243763989524911658271155339219390391112671346715223363923557269193308571990890648285410707335512566852192529208888953202122271541548632273808061553634999041446597737696399350928274690261255283162542282758535728152339162616180846706555819814790352711664084439260580694651452268123803096806920644397220624105271363259394153478920294452753640914912421472372589666766865372119852969632709669235773530277819818659989813572464793341410833318556037648720510741676561011982964710453273903225848831055522123201953218035599236479635476441939635865123289578014656832007943758334716432721196048877502961417984515698930878953898992099894242107608137851835939023176310818795071363349138586446529726350535921507150987596127383456272604731619142237490760877490572523186525156306554947434569047156630901421696493648367920676166797570632674243547602326096354538390027185163280758975434313331897548187801675643717713608229017190812530380640459435760112839196005606152574303257868670604895500432042302102241575454938440608195047688631763781159227998864663440088143708236877723695271029599252852618346536204562069294609744265585630636710996222587428000557653672794963500646968711525552214437266474238912915459280447504604485043590690439765023266918467349490106704392814793777563484140901284164208499137056913252010888782603061002782543755064046419398149492324786242973161183028314562947772324336250815094287830038415261730149633537535545692809611699609420656521444233308818268476363328207015476905576480715531483384171988927928041123422003975331737387950331358836238205200395637847101295706033840240442964312423743959498168763208247002249451465324782614036449407320517302169399380332684690059607441586654659762237460896211901942580036315693421510453527611445807602799697161201703180656468228309298476490131225286195396067774876550300893775676854618986467612700620803622345283271145190030655749480681522271509122633869578136463441312785526676175150302530609120680054137277578936516807805815249995268418954170908108960637361781530293786943846522945972007188500064889073413404899516278981665334452123898763125493528969466815060085083408000497166299161748271519187674317064795328811334362349520317541906075558106623804224603243172403098358478427591242557440129384073856998514837480385513916283200856857391483124390406278967120294294183253124517943051721397661725963455176889825309204222147879340152658699880549777831933119659284782470680184110454638065769797494105911827168554245097260856986926925610061969407835143438649725055216985629673191426525816706219319645928327195672674639587529521034738194234161346677648696337423241035170487431167356168378487162757057680856715988989596604992124795667003449383512491934973325105948409069005855182519223625608468326750817555896673472409060899991689006122776617046606860061351416862217386204810171595009374368856863523149407503408258122716755945550516371584509796383090174608161760153853457620349828184983956411918360757564699998735200383041198651240343581520880437441142980051188213732475544814494321152030527218614741052332538092010473645840375943921650715468996202204934444981110934335729624754963244792786612919362786718352805495900340516312810125970055324894461507426501275601736670188595652883165264965226513117605139050310036835179264968108558028276081471721299985200472791148509927474769992302880442292434662432283479792997544277750270415462329242361358419486163757845740921726943743968939370716862774052252835968864647687161768410634479986584709964885964816920287509377576381985164625433750727410926264208797170785133823177450949788911369372617141878263847646777235922981880721675121428221402201616605317386301664884981732821386327670258579289126563773075495553745944962491266876256211266819925837048630576774830762489706072466196307654145163456483414219387157656404829080601360464308531518653784722520387112015696235171528496958746346385291406388671289661919636878844970975130771820925266517074163249275672265879677816157246383427468838424398490812705181263169163396600094380913129149333015921784326297069111757340039532563360718035873054282642215405114015651269815111859555236172064815656434658624687558468275571339241246556177077721019569323825149680541613358082178960320887804945549360231676639475999008540192663652003255144996805610019825695952428979208702333047705906662103312632093727344457864141482385685973873297752052160463012193566735391800810247728823402423574176240321548881975563913687683544905590421817665989301300861747037548934771530491496022119755657637656965488325647195745627901308721343823010973864898607238615808808500959197326648431970736880352697439430998909821239130515339835795102490536769753163681505322131925764748435310860371968455126402499328671119052628749833477775520165069154629810796796749800442860370374185594347361079464024348449360503076534019202865302164930260655484438091747166955625747706259100051620539281716769481506482479976538870476826249352649074766601648119506079814906204702438945522752640225312829093651329948279836280448295121387344128823839102719699752693957728323539466924860191427081651178645527570085375509950558259388198035801171080633593370657802183418093290590081667616049766854270720012149286115324812458475451428660274646109444549467552569456814209732117850658243663281956964243307227417099326690513060569601156881861204276039289808034415953106352710110774889285049025736870172589522151022501462367446534972250171039678234036818406111453098460760203283306272609057949414185299631013329813989626525213210016541867971825028714155076062887429981267396247182965346902005687217354890155261824232972117853575516453753068402844474919518950076800595928160613197823724885454667890636912640187323460052694024069307819985342496277281072658811303613686981427454761492104189448630253446121310061613715766186366828414885423769315297295231614752918680910775848630074218811993079638390966401325488664804139189139061988001428049645385338757951926844922402954602821865334435840393083710339710147489275803484959021497758929870759708524355353008440281077051756613557257820661126972582454062072455861460091935452690478709830608654284381019422179323308827141767080934633751064344456441577557486844672010820208021231418976588826486989501249022311775266513975912786954879881790382859660284405347625435375029824116520150707357665620686066096927671716397583009204772185067582805542884544758571219096798860522629233495302010486657099618330729555183235173904044513763205531000592711274346468799164338529826655047607518967174454119724024417868516353692121663137456685586411199051303838393269558504141886051216320056729390915224724369392340987742795561814254991540500034508644351834089034038298754006951269746025934059900374809114100818872546355766642607469956166137508918853579993822962438920895624880940641654713798378610711702662057512216389211911384075550131061148422143264467714179616562161965550420912387510441335867533969701241627739895880832732478918590619868866391598872553640134399451916451175904546645110587752066953350980950855507998037629163796055764855527541627311657367039721611578486764590663406074551447456963265368495089736219857442390484539806066361315543546905446140144306840380586732457220288650986042006820272692229057397432650300874004818216271690196180015685715638335294102734853530248347675872161270339880699256434142954803147662833856998468044551668878821432516035053593824053071274405946398507420289666702243046429171792879987358846298294397088708093296266390927507654175211608698333379440909334275010279803964730728347652265720059919703414228800996142959156985152856836788889680516685816718392288333864354697351700494122805879006762256829724612488145268167795069118061252074882991260988172263024372830847740815935216591155272656294316565435089037487472894947993749872415711302928706803486921546978859381114678716759569786350803530469985826619270988650022799708197324578733623079955212540208029117824710149995386969759827261466607633778190316364572478903380779326913242037112721323433388256441537659155417384652212485644053979249079516871966975872640312549085800323048365669328222823982749879760254888039632101895606819789656428255515130018393949736446225209944176158094665915351629950752141544560070745509231021812084855435404396216825058974721815522450459445133374049547164768342524843091396238868907606356599414645395226640747200394786544565552616611088181613547536643620016208351507011779314764998663529948392029989011529318250720772620832775716243771028708200154217484346023951931972254494159606161948903848176517060511469310957358075612482276509320896651797099168762828893653750723048805407279065967228682056586661798407420491755905538428206442309369924840720419178428223069168199174061120615085441194867634081041044260412104571019709132600342221318373470569207434687112301572029399351626410378970660413133226769964883126148321393539459261361878547656433524137726129804141341059675978564975780733807488073436967795911049661696067818547594213193709614537141731236995626898676600505278732234872165884668507014497473681103104703782665377246237181137390546714555866515869581144048877045633958382237975203573416463787451629706488116153523960716257040431371515392798785467410304902858883146975349042754531058326978523336790099534803875895620188218866576879665223006941793012831685942979469955337981038651716130275889125873565586787076220429007603842241592095809063348068836904107180920779830104434502743583812421370314480887736479780683130710345497449726409734360183294152620875947973965984901045355833855009285962835072813637185232879497131956772419215261886045342263589678452718557619573480956579443915960889054882266215426100650298835362212290457414087595725449431733828097384710518249696126454029800716691897985634848303262443920320672658706294540357555600406752062111097146826602676126177411977249688636785794308478186368220042543348175762884777017485658515659037198499952928632662069734880550845137249885729253924910347343617395738374319278795454673150968677302152010348671502565300282204220894365239190051980201858697291519773507150879170645201154145730597928866169372844409674126073364431480561701261495876359458164059644534265524190691094805944297157549719304140321676804953367718948302475256194458528712903866300519021642566964856904663691581490605913748879878136686359781378275609663463223077043272758961877668939719814491884135507958616454029169395608821331247699911028303288536972220075549876817956897327949153014541766456374082049121204345882873424346199664117777466002072009152627091453256231622390771609574926388873528302895055515934713777139898676299301707636549323592408758506513297285580289795348257063048768791788117874421367671861117028316016801022532682942465906071894501323402246743309847093371985129944889548232505867598887449209780986705704797319994370433904125906990749686282044455902861952846617595502398867747692757281042982986879682232387066524543798070726488923492509303090540457834958294526462149653050455581815139061098407614758375873897267734518667406885251103406871942385567066675961080222348622220144662764162052751678214678972481522614103924022225850285417103431837739632062737074875002513120393170604830928501531049956383967700153650701922568334640186530443958192592487192713796745003242241572362648515380484472470780906592026943140572653873557233987081646223314772977239195194490454308460390082508142358701152169594940556108110630363189829528099978932214453513582729968460552187685759500768721658282404959075462332650942647246471170933277028914418124985818240201739879668053567388338093777770781680757177890104480927950580562856496970306921489395115289458137407014572053691022024400272864588195951550968475813079819957668055082272657277245689155725134924157340952129394033068623949940238716884087266188999041900894815101672815253993029699319129162609536628089905301659806988817671497279856515366156572425903406869028974581674099511132171971006201637792298731768203130263724743627557967175562698171429821139824109576127763281582437041571689854478375472646620700959733125814371987368993804621878993421052399049429859716832555622114036331087384531444481346730028325945029648413685190764280288793227993107651060597728640174344660810154258518208001332634945944535365488408403336459494456828658571592049116982502169353195750677763366550924775407448741349828798767382125856549138887570473127382502857565504751589679546727827757964961949052526384312321273158394940801794126998735570289851532365350915176936613250430806798520098400258250670267642979405757429889265517165632169006712269579819326295080144875986942785795841454239353145221057167225392383364676536010684853350714778498042073587963102361998695785414975822196644117165044274542681363656971556296355506213782494802671896441811786633285545477578337470213413683467667968007178871683116755055952612665758175116181291364722539086367617207729327461328024932408877216883363628658710793743714658679987346734337995912912462477068411695032644382874160164229287789945066458508129493470749419202174676384488897281989721828834850316522593476049030734207019021897111710728900701003667756560704140668595180768540842692906195713341238476364628776154240532788129787458105637236692513984747000702761227034866590086568678122057159375538856062256627967035585198554045732432418433808660908806946844844909468510793695291257059943749753644341373632552453574483259807636630644543898373291072728240566398753730187689004882976383505838023362094435052139253209789168642319383833768080981235550871187028626727165833304865515974927047610945333318774557190941634622313093678003946941736908721356688558228206832356667946506496104754765368195177061166272766395300622483733940359137590348709516759763821266207686510383167322799418483269664240678810434580260420670743948787573650513330112586428937264111305781089466049181054981545689522463314146175468142457320254409395602410606072330354483865679565463924134866266987936694801537658266630040843077458508403104810977223665965110093612271523997989205183391421921965844812558281514890039122633132291957832384458981826749684716085307945416538384321522588018326165363016004607289949962457733666032010548831687438977212578354943257432318056921474870161998993745551195386718285766926494873193345646416857193554474919173656665906540757450168610320995437322628250000172750482442115669958920704563511648548747537982274529361789307531529702396822094105025413541209017205054339524541085520161014168835894827719849719520085612900212636642612177537674003686047569830871649269139302410663420687791187510578629405725407102147451173690035072816160407218719149605844565112133370785298253767431762140008718703181893841431003675333735279174237150786918864536892666707068216378739262852327545139848697268236139037317281291900316772931540953609953133987345407306731904410287937397020720084525689543609532413965897748049668766558694923675221940915706095068610748560364888257107370418433430994119686359380806939476663967515436960011254647265732362615585965977935825784697764977433014041744410907817436335302511145204874209834762734164693130401061891137449194318866206824566568896284263101801822270526731807613202468557067452308498578409501532139268102742119027049809636794150239384160333492708213197298285694542098400058664851847219095451976236239147322720085984856920942988059792824394138375801096590171814715138635988077696153248806222665235163855181730930161493313606629119594688403592262633353771087367757298037570432591553547136723977367612600066664873995170380250528089373113006701236868035182410918839652906663546940219229667903275721352976231442500114307775068648128703514061347045397655563688504281175473199898719137927646264582445724567387756496542248232188111661889865398400605538087578811479676702612930269971656536151010710111256056897759913930007767505073257430666871142123002762354032878590911706394630557614752914704681231511732876089218085016365512371839449171743376276361828192244443883536439718810821787297353646380495078888492780332856912379181831736248577023053350887196339847569068278575908319072444620892034794448463819609481709402850018198095152407475993589173329701518434319082701200392797538343605248522312853130050273739896741318780334706864357663142441143782138221527101376052804240225177169474252587776679198430533713218668642830338232081233376959861090525174092367211410385160739729796461168520305151000587264763101473606755110842754507841974404152120803846823639276884874410196442062863735050483337559645896718194389464138470357715763233392196492855928349593457625660243965526612888884067753549601338516249199667636400565942831240027179925504758499138601374694306497083478305417508397549491299390092373912331088892341188545296078351604403193318826274202521652637983388964561134696905514334303790330598157030000875552650596971633859796385460684559715321688465827496273012983919606904951607558213226088176312030607174025500072829347845943562933062016459992573973476831710608103175424768259000970816812775437992243060305006604246435203886312174273755854021128661995970584284203990195068012298010822560660016535145862996052779950278853389039746813809220299425310530592225511055777027073937677213052521090699867231417475029012435929014800039661821275240076423938530247180918248512924381436215172891908957493792406381001300404455820766126562658797547148187066666181980380043099722218789481081340528404660177542521705418711652094641316531579834233269789459812129538330068886492427709429432799861941855642541640220761587108470616093771597790638092580205311221880893397996172584856516957668895240845259189468218940964041824743356813967559439981238951184087346172081749096016644756648331325050559408698693037465401885839815887102275487366032352656427605441118929893736656355831124296895576361378667158845506973170465772726499867883799623739541648504806293577519748090356825295891557982253327538636589975338152317865707452897065320599334602411811894582618941831309959484626429293807120571571661928248558328082809916107895271486825884499143689036389423600372772611896607083376418348637343237529714827988718975264448504869074347717682449268345701865081328365033318689435774919079248754441403139465761593854218784776684495655064621810962976497481624249051170480431348075042263995600598185149866893387006930410629486526956992313935749651433653277112146984543386978875458560326478094451350103611516584718027507751423559387652951702629963970441329931566812816046566163885853969704590028178470024289507401511888891984264628195674410049907302100783101291542329103582161872882445104815771226100794103200334507738265951714839029031403343719263869361282229044392158419564845990857719798886425984558270012679236725906748298584359385020446980250790943548934043663955374980376124748786178118708692829725670257558554177380386195193234767907978536367714627255304344399886312751033462306916607172634365810544465001560227994242045603217282361449909344508364295379254046819622563053276236656284031409053290731952197842788360926941194547307572233475688501172853994438795337672186950951686805879347248791666881425220037717265204674518868424992997028027784086474130169683914279009017483164998772248359801021711878854460284341602940021747159948105426714123082482708814262979676184488960350215197606123302872396796302718749126985153101247401650762447754094935516446241142544541583822675872276261833995490840368428400910984860806310200689506263005412729325790669511816912364055449199428746562518058524195852663336316754940787620596124869945829841542597837406893446580097719116893927433672919250862457073490818561216229705461836242242351451038963872251268513517167227886027794225891687283225679678718255850281410182616018275343833147842321301305047894858039407694451649615839305043517567668284363640165965988514354713536253037745408445755904391502948276987274071690364758615274112926557940971910822618555374597543523894142382627879397642476023807461082523385488224738031324959117707938756207097802766359134998259415087861568041818251784120887100920252091035272235515530839632501299596025048662964015829296178826882230644869703011355882985343234229608235924832120073262714148202848019101238001525182345970741183285897463428815133019518271110440019302652715493829800795510091586030261248018435958556387967022001011527896937186859594321286146600555470271853173599135591698501195464060868051681568177085253500964254904420897161308231814398359933080484558373257970143431051012216989514587165250108259150713009398031797756887086385199769014051220931749784996198103659027820037307363610189245812360754118906307775768340014456953804331109525989233364976363391410269947174745117660112355939123649545548316293784738452354096626194501305674558972699843776736729616813281776642533056328945816842473391789085426602993442787655823400130368712297401687210805321823839124478480332058266057069587776668616509237495756159432436783373019321182438394645202966697891849236244879055337248574220183479135248060508776448656937367907540230341414392570822720160718662220294980277904094168166744491961631986022483762005551581394703519771567330233637559507829104837077827319658556753742631071056628124850407247158558866668626963199906581926313647686767280487812756133632391601237525798704433016720443586034192423299395337006919904685543371903122353220758459417986472709630536432840880985082925985087117850436041507952484149707528319220162930952387106404725446234538855868063993431266153176189533411430399736673509116419749132600683880273460524697353855424439492856299028458635963462986583216664351541588780700706511911637008928052191351526932145756183330429118239820605846909857969580778551333599287311594416834333382148399581812810581795318399609803750985866841285698604633764165413551215453800696018826947782155189916580985591877906276037599878898400512764264274413474789185536352659528452479312652009056664416146963052391319685491366828130131226638017743967236206336741474886089896783771238195726432589346929359396857286336524384633563080064723192828285337548285417936827161964447567376046989460926082101954225152294556634700356607004492787849258472921661821994870055773563713015918865947484466725938840635572075838614678408113818886779013804116871031777873624485026291278439054290100710541040271684492457331712946876115789315378509383890419065940880178728431835352879194463192188248598759279538473802940488677938996562890561614674715721513555617204668162281060751509572424850407929799224150168352821093975146824091379530508798176338568692673166188261792218841941797678168253947019062396707963916430977655571158217773198301053647959022490771218917842880014768853611380347024518160380822491933730955523717093845970725240199634009562497351928710615529814646578819120589239153611212484794025999594277147871940998144203617746242912936133505847386905465321322551290558521717687629742071924364786819764436700961324359277613451754078816054653267810640086384179096062045589964520547701024552828439087904305540053289514048574303987380284921654243321676985645505572513138385629625737522559160038408393703550649911670426217970999889219236665973442440126543472606745161151167307202587214821259837452665175515720203404862665207413196225026778176408543958367860273579907542193433187626866349300514955722392889393396847439717621871134312120556359972030859516111199904538220335153036790018953628782851640413498810103010975734733183719891789984330267488212161659060562956470709637774533511339950841214664506288214809604976526375178430160362019466075938129851964325656153661580946295473011355747894618447619130673068736498045029872092159362618155706188339990933670450276886681150174123066704507579132526883001761173505838699111099254141884320224911485659565918761363335287846386196876870850959595198623566679178430826911773494901831801994365222412971369638960199897152151529527357626733387690140891659453956102789879730842994754651526060253857856010934758936377330518761363816485705410654933189468613469138257497440447254824501623172109983424030215240510026851686318012960305831495100990634830883278224263245976770801616504678692506970180477882935306071875613210804262079066973958675816648972228252884230319690265789145636620077971922267315609628368762711963385340757247271015147665984950021151683331273220168652960710339526737991555032423873415314893304219911074240535704796952694258486333925143764604294058278733780587048315309385609378623214460753105150472229799887771778283093973144924235557219077991506258508783533928653486339711077265792785837285819696702639638304130310522255541246491566516113182396315164278937548683686012909281946552594913053447518005229971435786767150194457413521043805295068651194981971238355172755842796579988285779425919982837006262585914994966064732774838581390847720571760850142751516034935164781788509186902909926158671917738412281531072939167252199415478002337421269042385139879509798766437177615306693739976205124550031178189666600425619077918974976649934798241192209141584666035254548310795346144593962323855420343945470144858715151158930784560165315653603255020722876699198506673138053530599529247163148598470726111069897253719358613034494472100678680689419289946163477360984394438924409603819716279162785519242404812151175853930775387723941821840867334955489676109708222608212970741697161383797473370237514999206976892160337907222671366559729549315262196234730955694039311935745885176472777686555684137321916376943272993114268083968603974461704333123746149800942075578469580282262193047745153133855574014109319532519172429830749980044412966770875593090221573006232362333619845472467084981047049775346601177758758288499595440775651703140627032934811918431321122365654163655049876396702958488691531295159723764119904329123437058327291016146773572895959593796152209586325149553018030999650263793555142118708246780244168872497293764761358918793736355483271680609179059455089249195538345934301455499767651025753628273032223886737842158120719480245965879215593513473602197938791593707588589460113599783163319318499122797531554632767440715160444441572063966622113016788497284505467478088195949250368223096703687645981219345264430799128398932190502089979706602044503149603267569430349686531940880430258038429507599958974335110325418269032336888982012589308419939661952653695189793666075391158905573178199415247733433231345393128751178738706174664030269246315551179564960830824011562119757795989151380496930223521234348934505934779478772955008142634025766211083236457087226862977196391884824641582534106492365146163998518958344396731560899591766577914080378135093363933554532700448174065198647686400968229479375091383131100362402801442290259801864063247601113092922936814505519786760536492141693723138819939708568332678741440668111931590871814020843871106016489764878031161431932288674869655771344677362696749556102421257637039264129717314904932969549794511089991219411808875168884351866428790930469544108518700469042722724714377798058953726266174088049234948491752461921114565395509656735455677717189249279967521352264170692023532368822315761884917694112800173162241804713914420280682039329337949922258955684071011808120848988003120648938711012481271784569724358681515447575930335150985602108313235878490646016557469580879107892650013396622144629005193447401953987258949999294346724230601792779998740849505501533612639318321039038444752439200546343637407308217836443656258579257328840402158306515655808720965717680555302403722231716087224482898548608724977128092452334732533201258738255965142550460261368557081160628801887476081290804473660807654265454317479566865632156811897245706430401123496272499825895427742644897455438324796278570310366038132996846780601773965739877564224443697465976745195504450607506490442089088434942540653313192518506948694920195106464743342099656428013399873681877872392800142981780802357628581733265403765486350521546649549885301395030170078788248904874671961843026472600954835999716974097258792812991677928579436889627502916141942352479101930526133562102988254318684082651440644972660107955984837213460573012791369849360604582633262677283804484354132635567336365224486962327286043989648700408099494005726182062216258191618927491213866011270258887190852219216222937951869340390663895183247106507873913370440541522528673785276687580394801984600717796257222889891075803424972244541783632882622797077417315765559312548323792976648947166873043887279306327861259399984185585622926987991474721715602700154988999432074716631372708513039514054759121645680691609716279032402776267713181682454137451493214281323070463106084609352626443513187693086798363851327286031681885093302418957749731328845606932303976274238832290756672345803710573631287698530713886155115200456415409006303775330041231090285766675954122889126006675062590168561986821323128375860280962191963730882914499055519366419168271916557488688596113424819477135907019910056019083740778221579809875993323894805487072420451586674850158102243934820255512346282541669861621331431150902351755044147535900262339941383199908682794557460433117148294872151319214195515073189842655096352651596097229767678761529694362244607715541587760195478174112007594398544377242640107290977744262913668460105170959230178920700437191745186365309584605399578627656327277997219721860682693132480811720177749951611364834728514328490501305831422978837540213415490584582957622128609179965320006743271091061366430473843247372709216983512429436775883553432114073273927824800482723599314910316179952003466110527403370178752332827409566644333341451154900595082271653494532282687430352386890616298241227025890674579520633291388458995536261854992100799433674765159424537619072888907734671527073671034475215844434444925054438767073685924325541671456186182147183701164987090823938731989329105213487720492460856245663648456974506352501388668175938324029010741547482104277311386736820469965054119288691389397525908495434436704681579177797898623444271611201665117207179589284574010320164749142991169903505584179280805877577364270677956343948551656546146980166797150734265731628563897866409923015148517198004374229962781785068973741215320243448043797073742398137751119854218267277687558598767798562289883245776139990584708090297959571484274551288551886411804447972825171097041126676162598809934860352959262963701160314150098062551777568479479115351968231230725347750387233225135014010631911115970012124062582340385347991043490838739746307811262350116974649656336221579730344773180541533233527732297602361278859778083139165826169521647539479166981412928208617625590010466212761208612303773372641746369110043032626175182462147577057328775963444600015643630206127581052110502492287585523419294386040103246087830052589050991474626863199097629181393575137470235031708198478751441030226237246123531686336184654128334025417275049556693996876529231528482950147803826826096972111325917878441570096125861049466333827342303578638980624097257000771896726024760733412582921031665017669193187874227682674982982946937208275162240070110742882424803476908579195572791667366029535390719010545226297988349490752407025379204861003847334692480321391055665396638927527319157285642961930006235301266869706405628763321950349698227919442992242856721931086967886118383959374281754119132973404146062598743327491283248502233097211781870453466430738924701408929209727898233672143426422478310567853463340420921602209028351432828368054878728198321018633035496898220506480314840169902898313391676111056961228879643179775571665875193376241188892702188717797640694364861633577311421394051195666504041486324927606632734238637940174318767767680822658874734148454968749406519091117731064587442667867513120368404872936772875390488984625786502099145504291990881347629012034944174964349785724236734746785529920165252175706131573575761571804219425087350872211579289830359076274552021882061205203829675829059408603589345538310926865655273102173512017363425863550620416342673927814410542649416461645576710874727010337210098040563879816075182266347558324972016789671283466591402335826674733141670066760034678995428784357980490375214365874046885495396396165535191229621689574825714111559717315648630028724508897716797694059659728245301179794602348750340481781679072468785642085200915231321683274954606956252597763140665664684416253945827476840851913251909779646808045219293013547941002843308651042491862133252192226493183190587849028353464176706501675389731184362794581883273148644844460948184800020311161984608900259353704054530885602127788302762197742475760110772099246996179224293050669935315196781580925505171377958271460860935129268874841561582773391224236443147425529653197122967511288916796138253313057867677098063899769787648531311760107829102733784314631295719685592544491966777863706807577795037682637626069038082936912326069907649966649393777439577483859197324546958688261158892713886733277909258485630139895156310259804572756131349492055437859572502661238406438404328818770650078888726803515040643998560574282041932073977262234032204876804215156497322630771089624537699037734495687993378945983774517585289942173198707657033683464740217262010724549966968831104421262128411335958725688660475622788266040827668547672915105000868480447015331028921402232571282196637891151610043632999310980959328606486020989089486422205303046820783336089912023909183725932113013345552490018902948589492703157839457092052510692664608207950687769950346146766234306834976644441493497055456215930982778061500372668639040257217247850197491851590547260939726763640653074823602032589351411000545756300487361834925779751841146169143609890389248021524666595036183879249847451979792875301414744076331146378742941050025630454476333443150302766525875806872215348193556774522426887543822025681402148069419913437300349434404604510473268117970522391428454406819861683422710054853320062270393435639090050596468404650757981057946231534387431966892016288002575365501152484899150143663636119997702304988437428385805971096142407110693921253497019388492215480973060496309958146488997413016225770651335321584875591007757197780356597541535077132672092331753692074099655349247477581764302827586681809921729530482754935246126939283121929315463361282401820168220734884916760510699162668145290498765428901632544685159989501148485237697423046519103360909241060409899839240448563213652328815530672666090875148603684138368104752488969399872367109621083563573452229648398829736943560618224202418503066837868149510827075803628987786920706731843399817064676532529488217475168428195595169750022617758391645693319624279454953243242078830104091157547428371639709114652211199461986069434537987847285006269477784389283340587061563741455759000365514285618392624302712342908677417626587119957993247394605694711012763732702852524046882817283696977345542518207169433615865047806368240376983872269008861018492809971378326476252957184838361820836386785976915419247236633563147553330202105073854765703629250006446289837879806707843295285590238009677799637390796011172715042214004707590651538756988305938376312804482599077498586444218403687460841049363039764211228848164519562038156539479607249091480532700992978032525727701992484020454426777605418867379070249598798717099823027057941898215680427181280266942209282302677054730174104978173422083169126748821280367801476229006306230056119202718426185965771643430434672624236830074893811264765463459222723290113734867627524343800781778486396873336598671263886211286056875449267158946439423882276217379450764620472673951476167221839993778365698173275202055045341852031096430908838798238918464809655533094398887772124570911274526688466137958895299040835100416145020010176212657382179025296253251187273015783308602432221243414579820422790250732626071274936739597500658535936593916028082582719561164603984313762998016367582224563470552224507763213888449676244014040273486685310531090484018337496445693146675828007213472580138370926772167705803695065903004310345136334991961265918461397551539951689091134781208727295567235959018861387774206590234730369630114963352669221823157938429291605191202793278793295621057180527128023098979911660936412421448093396252233558987562403963721234910998373693028123593890837849220023098919230418570388508287306115003961843924758508452011040556797414929490380161321404719798593774698116016571645709230775187399828242095828894279254654582478715014218566253779047768154549123932982663089600130163579809664971196901077376104150510396957312432929854215633920502468333171691232885399199028198781707239923891247729482091367289333674244140802506596669773851452946502651792210503743469954014802411567697379880531973445551303797699214286816721566515622782500064251469654998127519965858186648730397579024559481606521811846342952567837558000682765846090393186261215595521352732714831752730593589455939791638612384497469227822732319807963368469152009263547853021898118033616422825304724183583102907231342711972546453904808775863994481620281442792827893996739633312400870115681168344848771206925954147895475472113588512987645675834378169728527564303320194136141236942320380760311306287205379349228617707761384029973879167506042190770587027317789205176958866736837220768082118207174526305589418658271256693457797957660001792201204933695117170132575566976244210957030781650859201627348595115471106047755151191607748533797761404206452382943541897521865727526112382002968615025778898669555732037001533332511879719994861941371032988274250785247091994964061601838273269941760461594486614215889242950925078568262856088575318163499345094675591201935651346287855618558225869545730374834018739043043130399528469968085851067513284372071029278117268879090140490800631996556176159513776499389971107461534528536738380093785386170653503288494464359463711169957358078001414787731078645508483470440421536964242238999269562468050267981331609102445425586245572515309437744495804532820678145245768248266235239362222302185100016564516021770689804065461541581292280543262109118183962166095760373213657645415723725866475150250932442216140432269884476531105930521651249495329672767449586104181171568879043536115168504312971843061780147570651769385781392117444770825769126397174125954383094322147995897740736710863984073483601791480664426155135704747088344846123307851948223020163870915538241503498580812492166846802502516942718537204582176309265760283083214450114151894198650671624045122688685320555365431529688539260896359800202830593139415243783526590610930017672340463233410917464753198632526611717677187035548143402840559100243111823467722336251778875600348021355250417484528531925234566054383909620109973163396827940377197606896660007732797778165295229874210359827465632800653345812563293299148604386348150126086195522390814883970783237409914035049047015263334415293067165199879594515341701255725252338163051931689521906765080000194841034293425318134917042101519670602416731316395329579743349826611115578786913299997481283717789322395408930579662050575984717484812633993822246704387457793790369759739825664451072408491505706961319536177346613508771886329862199895849489793495203677663007112006092626136761661574042145795250140949723677307312733193423201635311243026512582334941858290286453926605852891921094387184705465922011567455414171111509052645446069454426356462990313684404178554202255690408708219554005283264846067021378180108674167242926154941919824588854333209701121965480319110180173989516834545657058604270038675246665899819219735278195250158555249124522282183151297637267605544547733623504566412514174631431779714483787560077586409881519965906903644757218068801011814429775386323413308294274855520130840335180286436295500814953478616891942186193407570659937378139139029074663942751546988670459576731761350060579133271108659459517605982959567499836863777679107038126799307474256148742669357172863029882042774670381792889613162704621811274431962864264901611082245769283251756147628161833140877638291933902909773742681883520688080519933142879066540675929900803525742674107751216705188237077378608142362435088121464429502413904681222133014308667199055568429628716330549434073222387917324332007796231274892521366687550439633427828479123912619155545776449918449669015089086939121389685358615279323828404125565742273758264880355797388679227320589151331192063332635204746908256344515453563036548262465885735478554338661475155267160965897483059138367814925540741178537012151783938894723065760992459016527993227949126398103064768745439634884550059403064152957131715005454674251351938431978477874284942318293702115566572868697825769310481443047799398302736083642093832753891409158979157665370408524700134393485738018734164278066667529285609936146516217642843547562021353601540467426879152655024778727865245771465261803434400379969398449590979655507097891691412958580842635052899383833625208910539299931937460864427246701940199955089254085081417151569661881734200164114851959692471793066940362232444495381465015881103171524229951464146304697920036110814424693896988242106885100140532367420591943465621728246351947306884034979490518846507297293044254938101313817607563695318787941505633465461898801370596907748708954082418040086110162820198416130106719169085584634774640018029510261620777975975409667842306839339928123141775923327479760989112295340580901166794314686560500973090064423436369379081833962789072587476333004470072184068838369308246275744140717041513897289671254998933496707924174863871992086198870084066342271560476364534429962620874141331043026548074315331935000287121035533234939338144060513669888479629431344699323467520878822692124948436801363406529629739061251823126392170432705261364547319242515634832713519943174361090238490595106022112345706065802521288810725367710407773938715676101884705288978718704571902181879022462594886589836522369390542561200980273713080998464660951288983734147865699017937858643296705218808524656663518765006681388858007109866349406631292721461287296293642824978745885371573882318507447007182652595104097121051241917451661172397659989883103762092313373738460859648529681834457247561040806266524920608914560595104694126313381520807983584399747810983414297721223498744162619268993999321318252591956594066171045502062717123613991488314922795848433617733967304466869534759548979529981464038295686427910994614800456298900606693580666601784253961215640574577833374098817939454713676592312060268870813819162099860656155936307398117484414020553097738404757422161716720038442624696905123329934703398912348326176167237831673855682564466606550048502630055911415984859215725872723584241922281781694468021511655588056311249291231878516997534851185182361576375143530191703451027061665530816744806139987538299429888486043231525399100502399795564604691772997183544093677092059109756166360977031719494980498000100847290746778826172000030424643698639617550788001204917902947007875778648325387126204289335842204427740606283907234026112517354973753927710397455697703756615055971596853047073979362529764862988066672582827875604618474295100294752613961136643340410407440335825299450959079686244883219676792837708611549212361002363254920701789144640489242913077587795467299855939639005162238035620658532880553816851397834882608187427397729625599246002450602481341437610198286822358390548788810361908771449811037531777350296391817288544424607692476512848731158707987053253287170993835898081447688560988919668771306669103413281937367742048951894937626618720538941069575383925126632236970615470104325002023697123213372367455670777286039877702144627645125204118031650907275004114668262108911439656558865637163323320987324955772842390453184652339196766409218847994218903281521473974158960724619810698052445312580125433824455052878689882594946878823150787765490892141653000263394453075912698245281237145544919555047433982768527973286171530827430707258858779598326240258952483785576772287056760658764197486728212739173842492823585709819784520845623511884165423647986309499976268165053956032042442131313673919364069315416707382082909747414178152129987861436267842347644910109495481026955293674438538090334807516224813048120372705336044320113046462703607434298293013565492850257612466767228818919779539333622821704501978531649289582087689437182965505737820292915393607972175573455085802062818671007215202633098934323011289685660719787210327340300164788168211811532083571208357447459506275284825392521923747303143869296965776489393149671086628895003962276226155794035351661644422205544887298961953173822873940530375776067630283113739999237670797505971106224637800887015563896678096445061006686609030382668815887138513423122303652025581983497243432743488086040135585372045200671034706618905530648246361317891136839709364299399542255875169164647766668995951196692598200472693314922417519013091569488450475597112663405545462829622632053433062564546923566427082911065142943142827162197056498793769022812865457237299179232737205293435735376854452843797933826286540771228317726918963353583507600472343597748390498729889285708472225325830548468805023168824957454236752282438590924205849515328460364844653557571282107402005024045200192569286631534518113042014710253050464563602655525402624606651942494586199797129499213898680356363400360860424417941949640322631413883378479587177113916885685627096329491198468601471749358654076071461799213464368070223333717445932508654083590290640513462517010036285199742413042819203090747192774726878638203557315115500202680716937496940810415407252030741815996855157377899759167805362629978045472095134751953046917597611455138767479627654845329049988807522698143041062623611362123176850525480857620496740365782064335649640514625642336731061047302820291708962353268388515719259627186887072389412390763325079460180537678769073672582772492393261174168947649289436002502012765170771130106702480247075876143365707225698250106412457173726225964342617451265195834033184478081731709791606300905960866194762502797930441579147450187196849610196185256733973557093878045647813522881464562930767364788055120607744065524608238221565422759408892439834670256072560847189224518625821385888706591265059041247427911740712696192340700664753824185793750868361219838592666302093093781999746681798962752135711369288648020532175829817870040456186396700166680749126342297538469148448576334686821853113733480661546839435285918018612793360776704488439952131534846391575842003465512389169137333163776105646273355254108096147933665473684724444274210323496794677051329664639842741966413658166895772184330183597062448268324971166002650790668095882975624935482416888182850714541715683326304221399324300220002588545430928408121140906586909557392186823699107671242375395578647629485901597032584755774075881476816849352813781028761303052184227477842471805298114598996228449413128103431494705755898760664655038358192048240448915076089992233207842645136871153178582675464050386837175688793317981722944258778287891861259963975995262120668451963103222096683292930915878383396780311849749990050049322248677575879687523294037609961437712639288738857389039641564787374791201786919921330400620887630818715159440726169094109981780189908378785608715549349186422985373493184687739118997193220190308118612801743015716979337858734155381778354160128796486386872726554937306586078719434678893012429903776925447981142656685236987372904904950564649281487834449182189289415315695247197982845090012296257201663202234914508001120885782926012746004659673901199319727918307961175261872743264168955896869472269874901597967641370110932855255008493596699851726258448135305652016211073301215663385104935985379681919381972267610921598007233485195467321438093092954960088222477638687424893053463039356718268556550645410873442868178691620766307066825223489121684684706867048863324740948500566063135200361066103150586346158477135904158289729830527481227727097255646348909287039077238605804761142176101486716007551409011769692778138358325924058234695916642987910302634457913380907848432418192387239585481251390603077407224796073509028296638476520794825050973293454965069353840185019896141257248676268714524658812134417755070865571498435641274359597147227991343479352055254138041310293719252168610513128684837039804359172317719162296584582483821606684172270417640308912417229693375668814558102721781474422985508133298455839227811325857030916874643631490402059549973249965313294473868865398199529875362674419977409583048506732138908003117360651374858016904034049529434957595904238886091975627074944494060463254023513181569979816893617137095201396980229283384818596188754866408662716473825637868246624812361781288942782289672655525217313228283230147442537239109690491203318885408429540314410992754737592258288447906542483737662692102052754311617489575111031765284079679662028328726013125220624128060170293246973137791898991492439994560011264644886880098528539661580735906206312991735579528084705879680466092082361314903824076401631570250379662645828121167836436220996413943972349985972143253395142361153859986403044280271685685411512167202935842434343002571060047226385303610088519332927376164934028765084212608003838397751399215151534644370399998669243651123947706167448850610079404550145001201533927145212734787361934586269521019872385565108727017101024546314486078329339883058045746892589947471479046678927667748120511183756322751055564731065533098361055907652739367604136377701556680418402878182903538036489158498687880549374190379735252038710313474114884199386120565212236642948036531719834488574369258779762832749578331374026576393071343713811934640025284374600168795130194547306949929145623281517739674179384511459251962787045154467088751256852263468796735844416538929059061758207924538286627065381398310444641617146750650070780889226092298459965206833891575480171670380807891633846847275924368925489076097983064072973402695246355113317345534808752935119862462571095841095587055273343270751005496470291582004430329042260555451009857614363516106192694302355870844157568478475432540533453979253755609120373518998140286137241855875247150597999697092406405065651280847785853460039787023147263057474480682497240896260649869943348962863498395188006279109456317711130857398388862832885773213400233446897400744696324166756839001705388676367713554376184144264143821300032771862708808641457238947121717929619168952803227819331535922347916840884171363102763349131590999600627244010093349037286176231768152025482992290577877433882009842220536642947911166762966119770689374959861061436712025463652220206156534710182121839791834108283524646543181929704392237070982624635089888334818278279095286779129954955821035122412993175846924690381354523576588653326074884600590332794817316037151494849285489351645781726470305271661683717089002538972620582162317181053474224148814572777050497974287135412701852962890375413542083846878097259953201822098026444158143646435935034519364846338269431079708806859698101590770201874384025695145243625998343173434544621152252362864462924841651262166036255211935786687098336245232015349369880124412814360406494285320322692790312208389453125400847998567454610696507201885263440793042439210773504074801119112880278185102724691557333792505111414936995326443748807561917672948503700849542480259515496511202376021772722389482326028819522166111349082605016139202661827956875503358692215538410729125988874371059109597999960703049304294131150736489634972128213510575915580076804546444128208234177828219770787022324600337928130443836457587967227408121541635740518670393301657441794015789222957413423943534198362121714772876717807403771269838886973739163141951570564465662543330260753457128800113933759827965552531899350684709800751373649982566868108301793532580068652460927428952730730098786077424287626488320527528924457506472210105120815159380254438234144628122136366485498193994034015472756799164222052195001610352481273993641857948955044711285051710087175893220740024059311128719255923249799833389892090151685689399423422315424583399516450183249472864946846279854942373960816697564855723268738580727458504557685618165587765509817588200606101715528312759156515955027946245490153635708527911369037504323459360462501057180967918362053518705185778280325924557703427660737438684116953160633193273413382759003576145736038702789419177223774092128345411545025248711202554405255639692310059731231428033084554544442244351903233071307179691360386815145562640024292159017992416527211307710427747386134323065477667174632040401305985571172791267380451988019525806233575775866850118664885749547219726011164712165331751512211221135144517068609904949128807967590979932710242270388348228297716116287520842177667010954473478228246497235085412496724462004398765578522209396929113179383339938005787742127054801756393435878202613798167063742328253639339471611176466119565652482196129757344189917120818843326081463805930120658740953787046698292566290629102366694832477337902855127949290284025430494935779919961086323005785378278908746808263737368924076198766948663731054014222289462502492755119741712634076019118037818291018053187351554788235806096094069150963386453271194597551808321287857142008585650713598400723818284893727228518725866864063415132009027180581019168458268919896317759267861187962151117997389034512890064536859337446816900097234171625721982690808523348948523389204961230751688209517527812614435775786823506135461495963457713683120196374910143068698619516355753016853593363058386311214865646625061770985553034808860200080166014956438782477788106311356974052036088142222651812333090855186688299443919323828704209427547455739919553386585498320847354722770325219640181484863102417543611133914727385882408416309422776460123505839064269461061398692547330508825411084804506614833743554052862623906612105388762861336876371223313096565209379970502285065837791151296617507512448473087067283858554113982496561558493051004713285738517129310735022424574847733111407575508905574813214259308878706492239026442683180531949026255744300380110895139099424540779332110909879351135541973097466683500288731865691614337984885865816306435944678458306161304255293753365869652909600130687797487855811600139111464375547619439410022760721380393246119153668280069749122017648771896069413750704989650837175990790261273042439064909555208030533584268019511615105940617883147889388607116054836350606794071971600452629816379497181761553750473737193779896692408960167757620300897761225211226299080410876084198068475957131473618209360309007943396003474891972721032100834419341314953656503430990961880865972696822784958634998839085621835786188850778693692176543580804672598247239700781934960609699565519301010458930005346136120500673650313359059134584823572109406645346707871560108121883515658969694166121670446024327429227870402693281414792286103565558314057634894126915409742988999528071446423711081724454915845156943642083511979598899312595145310943407679116789046072001355770200344387789229974599065241768993837423618091378634871000848806904340970231585064475005385607443743035646541738369425427080538284410992783412417396982267107177084900781476740632128376858670210047153865762885805393866228440363932720839518619731877925976787357195982307135375289024767118782962503372833746658709673863734872323929957743273248590717720104212938386502591431517941599481499696743313394132856585709959490750910115417720144045752557201780189483916543883960255188671751845215461066683759764952051668945141863911541139200585479151869378028752502348192908672666087146250256190307447769542740884627164298852617597600505063363370309273653140695143134970074597379717751255256376961700520428764543469829765842660665608010867494998617255444656802680331889393868236137212515839119957241009706743051771488190370313130324975030598206699855465065567544497700974450435101085700477997415266870742009476009629948075965804085115475437774122360749548754548853568522647971234653220303948554676566593939457242412414276592073616491458289401650101249142817092186396118141703031074914686963768264642282015467837485178301459089644527902987095447296914728380243508801246025756162182362207300559307949039831014388224398267419267770039326301144928276605433368557495958128613774828631572031507894858637616917605863879672610150394398091811931531442058916056335973788648632002518483071506240018147476481579118390926951392679770981074541243854599579039507364873710126762344408416966576105118722563740704878444833644107932138571181178095504206867811401126166305317933363806526626673647190884097853942896277651325813227669105513474172342848950926719282367775807069848703805428576382394277788479574159611853939600770680816505201789575096848704037306774582556512081180134717764167718689618223685760781038838407296960124952238562564661583743837995247427753089330487036523671082330182755255330737197830431479242751289254928284313827651993672284047400872592905595376396155481141068392947356854028382167095666042572390579360602243929152347968050311973435624555526928590601619935791576334524621129404769705880256308627311192978893054194896991866380435447506923358843752616166654364426861710453725050064346401495318750691232292471145151091184287190844942381744190630222964592758534253776287073582829335659873833290854304080677957483038757702619288261974267280382602182524291492215336520819843570039530034956725488233943282671944119902058928523322232361530754229781663802218319091010825931155536176670831367146781869533880045005403358260692548475105837667529957924276469220024044908635127004227876008670765832500390806272095807813814900299233728733227891464873298735391600824296353055528315571861860187711945008092235836807532644550106744793766287804402830695285639742743804570126589064638455714341173347203050267776682015286925148972826865032443876523483040741883963705290996336631738925898243052781492154594629654934153397345950479028848842391633367700756685241281141705293788720030737740137344237298205709714611746492698238593819221658840801174688315724103112847480058513948393563832094679519464678652748361789663488404115436169279275226313765577657291826656954105867453762760339708592255717169069561457084587959114758344959772589757133674768103849540566072248223444882708239015351486250103572530206103359634000721866625192544281337888161560009505364166952579949057672701954280019791145184156126293094803018944958501228723044925334567605143625886191619175653404107042496073269817187412838954235397495125442013379651680526432007283866300482752940518430438643496126443269237245315710358520832751088299335446287411299108951369742664103062705082039311031745764304017780135043289821170102719118178877947146624435629852986723644844030223644774537231965012596861837409321874686549113799014319921471195680158639795443427607860320618522652168926986180974909049182983521614503148503859886540545403078564664018195201233559758258646913732464551619417573635111889521461184618846873364926295945863420410694499849066304498972749117635111414806627376580337769629509563325413675976118158172435469757405300742521538611716811568125066951586758305946852259372214948575006389444715086354496290524435780877128521847176369341102003674877046665425029543446986659147592166610037390009213482570581717160173928728100018434215378243290860723221906092917586492875630952659940049222218989265958629273885214250111003302797772283375407065691380582839675100309926803616434898698552554479377641723347912574131110265022574321014382679013204531759193512073586562978571893188921749372776974557910044949138516386633248557825816892367946404173267811327182441412256279827393443471112511674042474154920004303944377043759065481032575846135454101799047172144571156784160577263912352083106837320094020485743798775024767579788980953363658661181552860820830304685473540242741671788324314665138469730569014774854872807894327064206737566236476489241959929417474010094431219165951822791028051570395800421446266230706897386117949107497787807584399534614730241572531787714997696416268567119474850920551874592219721866169283531019143154586324770637900542725633181513734798367058198896394598713600950714856314347241076184047079523132344826389890424204197878840242836313025997785361691544382993829854668616891883917304828037542060452845605316196851403480972252079090941211203412936358107602890734479541522919655713480857102155060454532738376399767601333056851219850311894105528444004722398994298838333850506485002530064536192523520415081049699439132878347125618903999731015827590524819804803997192866819003689134356499166986794700922416666411791932879089248320519195293168771787392727635456094030550590779461680957191803790264985769774001012557608594340226878698334140126604177926183766952435696211505551686049252078847338928880892792766727337556832006299245303086553684228076992707722598788103540909800107239995705385844408288747381989233395388904277509541228381356407550668375502173672665138311149588812523591157729451709078074963732539647787452037599717331476188856338902375109678612721896502316331679604766595312220345117754510665116739388074039054465661234176062975384810779771277409642751261220266033441009724500497049421076544807664980548468806950526116446516454894567049417196818725333933814042245453771444479588048224250917590730093017817531470459387104161665478560244935854110850561330827244008955653918956924420298639955714539344168188352827894849338087130177606458191433242319192863561587411608145981494315109451349039119143717727081898459148296036560185140695883201133783946606710611796068300916190797587304607603951659683713995884931280913625117348333892921036561044351233112913808109602405680808687751273197879843637355771117783615052704232459171440871302295225526261031270792863392949514570446228175046066924443766808633777894448316888124623820075341914133816250918962236133430131073386425100347910491465588109994604287113858100878936854158955848724265671426572681250477135414093155338433509136256423688920614615608775542282241396356849575588977194262866458044880902507337097790055752596712065579565089272091172971883022130045634920746256634895850899682218464872453384415517953509045409957229424759727358518604846494882184316844314572759641866668003289988080316767751382683672203325766139967172289282573226526847624252342743792753012537616555967819489293135620878850720888539644529330561439419858594763170102631217165856919130858292182978159297597137843791295129619530363437769205133912017152238791971399279034145857040369840124630181773501741155550888860834487146861835854601378017677231693108850926892430931873722494212420667765599958700863283695955847629398865325326475801718448440095853572362559305449331510843907638556904111320908834257189101207068067498883803397796451767455915782020155835152675359897827763571030490706601709229508336373392229203339780802288725106172174819833063868243469547640320549096866431524248632097657947812187366052445025517965250512581258085160411216598541256348022295676058020124767403510224353759800239912254791574999559113654652752432927799993379383206876229258349806221497929703801231053317046482869438378218670093424239230879447745477628123409169438338667323938599115843379936203111810747006937041137299338846148345717652546472950170626502869108973735964826189537156667647006883818715589549438993346401064000430386226571418979489960460088281229865363787465738782790651598563855762921507392724464350360074469899124389133900566534636515504474781958285962665551304960683508415548832753306426102010529698547009814686729863300010003648687010294407888293975769614041909410692765044783980775572637225269216379240404180154320739286096233366488372344753666768934894402213080616156322127988429714677119653289637726784393970310342466153330998198182813330740051273850071354242761326465526172924133880135097702934472513423751785378606452187601611144306314675343221484513117518681144114133446762070037890101995791319943409326906129866546437752774615091528867621572643267505361679971392089475001732595156593949572108604892606783582943526349820285849004026075594804421971157042695393789504487028972198163969868514585134916577533802877426663233041786409594227626687349338947008396794583656676120852399363260288817387966396951234310574624333621108907175463180457878878118059785696778197883314429876024971059831115422703251491319013190499823075403166418669334610162675424072444314852111530296379248280231878638276826282186524384327466562101458236134382196490245266555026994884565520238267053005429512373887134163115840990173786936065298460380642481589436900880615727662078373939116347002715877286401201174073944751775429113576639427304701647760867815786172700693599291221603644669142468988298314070125712637580951846658005932146793278005865859373209024922009892557786847511840093078284251637847000504504671218098627453765245394000698247620622881967773241395948305868731032381304392672574953213706351302940025827772406788116721751651423941590746306692671757663339027800145839876114057392705181107623350638148061754594450834790599557983792148046742033625590734842446106629083664791914401607389255936195447390025065886687146741644235310834656942958275515389903647000452356185839912060896762668305370862776475342444008754286763015503642873136244140116457598145078318915733568227347701319462354921312324102030346680331895962736376211757329973205112330917842356025516902648792320555014009069238303057855427062487155669708071385935138507071476677512280509880576016753408037323143360616481480874766775963874103980014522460232830430903875154915157249742764205013795991270274700775916567389824357684659001942179873440606780668796352705923852022734582161992480188356787960517677901665305449484604175699276617908348691123436207793303151617685746632131953885588243088938893100668874414549148718885897311988596851078264768138187487637296029592821770379817811361719494750140365048573387783898844797508596118421196394266785620447543668013152487645445471715869491296397023604384566395501486769965939896302201754366294824211610171305953783928116635240453384029540045108584401112342136122277910783252674772666474972519490711449873703239205830412663038706818820865986809919770972417138196978025902299387207727637561765112764739291201366645555297072953970917331505600251945046077971640315198527046366422625599695032108490308610843641772450818030744816458010654312763747034559236058033256353491931249404507867362884074932707894111159979340394406630694777189203262944211288781974406786875654624779293992308838745113602898388516957067540079698368377303068053807545840434541367374275790563125892232126130160829214108901843098471165674799263239259378606519972472284230527401630323657303955959103329492406216445074894337425593659733690409139921640239573017223002152499163353758161553183526330696016629962098584445680430307327589428240276716399905624335317766552844051176987177023218377369415919262937850548561431419887442294243751313570482056416925982148087852351935099640839772907446430069805437402098578326769989907020323736825649370315945804085591258828355203859838543630798950810033176100070537405448631979317587703910740565770636763003826135628176098564464313236258740524960367673722808340786986785863454455946842561469664732006369227147885238667444376583284226202809272994099940842775428617876658628248853097469787795233913830213888755323502383646256143494678866307327817815700855365388528751858577803657359798464688969314821115043067574605956817794102806307853453091325805166308498372278736024527974317027073975466605775967708281809744617351935187835187508288308276741630859861599250175814637938820427953682286472131003821593392453379479918535506027461734184172767078292844096676085666624859165977960556524677096833807005800155122709146856831814543512152877026887389062259307545115196333971181852254412637713364723809980121648414136315103334774549284663179841009709796915504357515577314695700969311466513611580855199276298784270691192636128154152001266042478462345921065137099242529726701882181159287339546753119701964209502100757844568205126759542340247980493746263978322074443993851396577876256000480230652771614199262377378174332710242135885972724489045023505804444541742135201808224888744711848825051852171417682020007880075417816535742525480685163070679819421624003777093842410215124650018827387324403559972235595988433001086763416670802831557005012203380861051335653246425116150805757229378278517905952615356329733308315148158050303206320604158799918866401077296053190154585364697526117917861938564397404613337766000654798057437797067715427614728650342452475973201146894284650828021799575689610442016070164658927638190504952137634853182134232622690319868693950649511568226393046783133015336092543768645094148918113897983135131247752810908293753322302105484805063641045173571889169361972705049335178017934758118813651965419503681564413944081945629014147644747321164859650581680815952706693849552262666392441725691428845784870235510368891672511554382582046049368340971787426393984804515779797643892240848960841607947426472351498086034760014450244303738899784271802614624718919651618308134363730397559676656225283302091290029576579830120609333328632826886567973303386505604915033774908005431350193107819098780364092419535815807282306183167746339895497288524265933917475240228009991362857774038499794075258831187154654737989594322437313272382775317645870685145085141166568351999349181679704180460737142965223348494382943359220340903874109704075360249160286486612055231807652063894254666335530890241963316014737940384994561045820526069844250525096165723248249738926108012885002103824549650518288312814562539606310733033025787690179021895455646740508795884854488281593305012251182669488143964752427075743067429912158294071794189144905823283557448097623508786983162112627972991844804000656879468209969210502609239099983881901423350828549949848073447203767158317042889620481980059884495973810820497968548181438394270028422446641712761203075492759604202441811961427783193476795575704095527956947765190684798407031462632123350322926271407569889726574514690882861360490718672619755708399082669537999111470827031890435430165945065283261365441204583439417172595920369894988483432172818612824577568078317498820999531543401840398850862060705049981764178833780697094059948992013081682644984482182365798607677601831980938702007399015516836344725273447285004958519088042668327712876913239027398378486961382813729439281377988454791320258617977226347621022901096775019984453443427963893947336550238578867268008066782705129144447253571046806391717177019747874913522682631310223373414570357195474938491421683764203566494769997008132072469529456443943100028993988408804773713738120875773996334841008074090057407989731032030004913503646475535681465572142485883470430921092057330450696690638653515256275484310947642173089979792296070257682987020161618336031131517240509103257926991617325020142901042420889205066348819088218747660228904770673788354396787627313295051843966660126549675801605061850258388757809294915557997570225138953783878016462852505720257109535366217916006088554775337066134373990222280765597790378585307633937233181996491473065839607097876966820458353678663758962739403638016520845208545185766302419045618165636879059141632211239795895022614371411737153019631068806814120980817474532798044301646839929276912674767884139207239050561960363011551340868095305123793529986544837951138890170496333111833005010557620677905000888313714282632997131292833909726112816265037487945474713233700913865581523358432007832100366482569469817602414337295616635015623693466514087607043579800770486977838763721056046694279774275305313074677714449232165276920492026773070741405227129812241788859521113981781034505351132823700455618257787753023323957623082118543938577044789901568061778414487723475210618617489440323703918283083945852672002071440451259321338904402309379882386402884192971401328424146484818833215710864390835059142594468497242206783372823126827228358773955523690115446796821816002242694040234552872461683050406038803111216960445404664939492326265867950529734180169833284794202520146705667624691101206526316970577572272083599238327838597034835524055898177019562797271518417218030135761777991825034613149388327196051271524972214931211026302498711042531590435802470567139967851978249985722815689206861865675732403447427042815677149084521952537111300725293538935079848759714452859882913761870942231974635354046250802189114114144633021780015511900830589695781020845785884304392114969926474349481264046023233652730714329800759049796199363172179876196924686884879320311936424796400213700707338157598612522471188893358454545550958897020051224477600803674734486875609850746676755451417903471993321166062000069641292010530156752929985438904763091650755032815403951625951567876963094858417088381712738322689123793482239802638314601647274616536360479652847590400686108165785519489603229852062921954922205654342261267316526695898587068954617821490667036951883021459213313840928079875776122312717880839012172823281729804885606707861580810556864893543242272539712722472482134700356780137559292952153366149477350890811554861526165287511236098127347325405795585101354917918063641247616147670758495733906172009852828360277231396037076779973937929607194966320046314596423747247744037120861164807041354695290674636393398289552736088688681215417237338869978767517491871961704042406948622137877515385494818468422252282344070818682203100282925187466663394292254963836220398161010760245959063675165650100808078340759893428741540316677019514223806671476337099027128598417099375472234589352016602818025912024747131468210731414090208285911312297812582476888164822780754761435884331253748827822527438282449723015929737767923058414652760080759560021519817724862369487495270150763266078161357072160486407718911164702321894277731272211249014076368311074827562693012160927293833807739414114404251133336616375356030730525654260636278702525751495036447142148022588896037055923252027744570612118552469339254422831477730647349829137482506833905959210414866339743570249361398959148509724394787466895468557508010217090448418299021906869908900641951005443290116366266031601389735149825776578335038660543684480544048286420246965217912795073902108407894576980328172295251860308751078386335050375674001364849135658174719949676491146302527355491448319162930206587769319897213454835481064404498359972900571307062892029929010626140078887694572141792309669514602833670733012309183937270925993772442642465703874004696488613375023734026569771358905164253189079065486593246264663259275628453013361230134899155695850974934658221724539497364109895847482666469545183870887107813093374632818782747147033364397328751210852534667007546816424722691043001210183595231329638900630557768699421063995088915441535329007672369993320758168148664248199628843110543643022624053818989072392564503016116888779790813910451294690800414261141448425783086997980569542134545020942221871908497521541496829918515006421582987843783138394621447763781109313487899326847899175735648420702339471259267931665218985089989978210065318202291577539426283154168656987617397408086533799679521050216142662124503222761852937053654754717704669604669499835088638213946474950166565854968031538601173071429262801578002672641213509663653832758745204153529398147957297380113909138548358211615580283721937634754764631972154568642763633316257659234819186993882829639061229784332610216529002890409444484079629979585554567367721622980516893561324898702672751365749911027356099687326612782369223614577111729256047489266020727007580595020055233479302661138782243223592801404442954435736119890811647560276170790187217389670465348517360586832797068606247238462664127257630385607713137364924743228678333776810647515746908525555115517091913696815056590349484114848681228678595493260622052762702470526107762957001732848832489611275418585289299767458018728694817206376753762923860566521843329499552346398314395739270835344424808038333895618372207367267500420417280724937017772019579638700095100292289978292314461905120343522924837138735398431610841513623557158522048832766183049299640326577506983037755225584222057329504653854720313591119086367795539273217970908203011868047970049150470573262317813385627613476053163026578227270476670005950254086021244881663221905566464801318772709110258264907645920803150554991580044813353898602063589356744896011992324900115079324197066861360854215162627965334433528484532954231022747567918135398529004221966038421816234761512845995686460619528363657993414581255328271202959390964651711794712981947401815823699211120127365150923267891253621637561820640780370862982437751352762427338457372206089048465412433453672602491942096022034174315463078142954034169888238763735920190789994152916452819558288571037095738184142462820061802656937221297820381324288239734159865075528514739815352311871495650425870269001538546268374565368254551720498376576092886800013517820634994922582866850156795915808460195812449529745324048976914783361643543314647562659898933616989222662943569289484499166484439119949284044918656311017663002827566243466792210763999315870220298643908594042998109105729235811744144092881603808196048248419371100868017666531313407926409745786663723590857857884990191718888071161796126013049398271467039298107260364267464199488717312749349679827103795057549011137996219795830069705494191757672329698935576300186344405291875172030078116944310924315723948069425439792925037916691543196762672423815602485137054922129054358130525661317349255201028113113950858733530384100345609109994815960977827555679197923078638385796215821919113685516665802689967006082377228682743393885324996736108407328750297402213306228133593942007803675937355487363819326349521326094297028627872962554336563671562090325420590967429607307518344304082856529681465281961763887537562423507935835147640659326088978339071159324588480400425012482958590121453430026080440288139542617891942378265697878008062387355660489843625732303920828848925613946236563342435046360624168720258719952850721841164282063510773914030116610983002216738599425559177409567241613142493207442563077545504788718145872545885098731211665828530684308466971914186823365080936163106389980715549974409762057749396877120167454158165460707913344592122334216837808310712591836109505027285070613032213160870813946436486992178054564052647936345296066421301643969890644474507410977582540925466715847224564127925848051977424987694307897389513824721813962814283132118363022402913102817221543772611764012421264000378553916272732730472879845867137363600972054946831481932566293636917924326865178489137034219204331041574335641382322426478434747900907349407382332120821544134746186413402388151587196611499457441755730279879557825324882122559259630673485750662075500319692478909439903148870806737000159731841703402424387563179799497911956316777349500422143419368881131188299704543772585973024595182542121551349743247827281763985238625803142177473271938814225611524651476309469107357971441327938529821418157989965551932447033579383713728475968029453596002047182543145251747503588113521684905889658585761382037411535195368682302245925126167778482190702569913908602737660303295849593551030994309848872959467808821418185442620268418248073572323236145236606025812983895457151784002886157092570374041715523716790325392709174735230526432183571407503457561572172433234645103391278164384342013498164505065687064394350529265085193523157781910742664222483185012408414804125171717900976854604994307599642621435661049867149700148916235779467930571222095196329861957929924756442012825507907056126008033511910991829351034312532335417918226096779524785992811931358188927544291701780328290524435155637564652500590495764775229139948111466880144741825593746593444110111507187160187246821017758482929418237357289583924402029725815873067518358005690749072075951942503004207711260290610771911268493530545853284549321467624191556457637079166949265061205328640149401937442241490630658645045446947943811326257564007629015792051597723595181840982962410242444846663713148805720941396328783574800797505532103625280331633856655486924665770376533638429585426997054421805562154198353381809008593911206147893422904476252437031155942989383837890412746346879923122139293557825633390966450027625585520873708799179910742118276318217071766262280224819316466794889951999444444627943175900740238357615295319965231992277039170578118732281125598385526153784740757165990216476693917071243393027940976147705817444408702150614299347132671267521073330154004576776926227922319198948984094792423724867853816564208785126961931327947656571959293794521356318416706370215334347141751466073562039915744177322509807021792923755535927412706957491598783600749399927212817190069589198372666435646102127189668522243729845550795975370664238368861360772011975335934702034341047650103063086681480114157007275770002660698964069506397233192612735976280358989412317975410455200943638046818057506291318546529753184848980423625362349172714780430962155958100215604997028767906752926923299143159165409196400776335650976454545733462195127931321205662529066834684555931299929795648337700558248863198040832683034758424782855583180156883022197948774369959058224709684481493938448450509131053355486407608071035090303989999066159021136808004158924963173283913327307769709096689739235632747532488521698501499386086457504788146788215309697630505778768342507866086448932848059407806325119779208709406593226576791958221364376017986793993574878810801712335856322484021275546332480700566570195487994194014319111433496847779215180653521274877616740280318223356260221235174790914240313371364638969480387198231694553695199017483143261758109362449544753987730232938960682737699853148495242280124456543702500747377476450607055528893713165625266645901416913872389511086019135104274787951104951869584848187508892690713858593621768416566193987924729813041641695813067679784710287876358322723978427809078525402352894457789195436611626373306586120254479201266888529677655008619542814522488690448891024685921841921568694021789211422433197616707992347178447996461671698114448708761355029539277343161072287549077272995052406145301855624865154940145091782666823238924297616113970453709036962371182505309983256313980706465975433932533102578865597838540309075024484590245930989748940746343857678188278273207610443306287061026947153896599484149688260294680024363186929810283860353363757104615668969213318392973618312078835362670791174684406430431991211145180470055836726318513140492645111763893871106092741574757277897512441516002171376720901221331281878237298498084362533260576773041918758500476335167996400692807171333293668231883632226024971651975652901159922309271656927527784291639896211370631527400155319830030450566354678211881017525402241796102146165584010522677025306056606574105134724503159331113398387616913639453807686355358729905827312238145458529262424247751727454454856493424977883326621833427028731935674333421902059936337152685225713292837924681214808993776281212020334953289864698206537232091147320742029229174606003554181516537888191296378965182718809729229685323198422414699613639075977305016699173313892573600856338196805867142673912265971241194784777957354161205592121633735708144377407367755649133204663542127151342502583342989314939520359091727681785030816705087103454343281133016809710688616116076525201680509960841137377399382510952786607929275285702529321777924000065353658789988412439928489956594749438458612994329723071127991601892039936193665159832706930285798888983398845085059229901755883696037626009854501485257845236088729301413710526886220370256125385494498271884850146206458619315549095111021065931093713609759644778415989797854655470981148121243040129405101788228060224805768474964467046046312905356613168680730020967755541899974780816862576881296466495997622025004348160535708563019737806052177765053162083019497806016818399548736084239978099652788074077963640872011307522055849763259982187054549671707503898685835214054387696243870798003283176200409744464858321683541450792244883748999953424879530575320780246258992640020151422469742894296816454548778004242412949598889596756131595518640625593264252075999673567542172275904558139106304287792719756991933334155386470902499416596153694774178374197394801987152435664695053371683370257733201092051818870226292484410836333448405784202560424061550184625518802702819011921191958682512649036186878743266487786445363286204806594462615720126283129299080148461985951531489175083751458662730349688137486141519625106562399183315412004316973460175976637239181054633048267652762061529799632856587997737401709464172614489741313956087268309063432832437271598374546685385092918035368958933234882675129823689554771140546259824395893302870522519010193095178125985596508374042865546292094352202547006869907752441459451372811032401169424848962718341358566121941022359662810325017541726327554910641691054650664509558659214761405680660089591025725216138005113925368392857915891822133198919216010619035591595564188088425628354038423761974527859266653176452441953005376608794435346888782176201438270894610578769877200292579166249969662713774588009700603774155749104723077367768485298214620525734660708634279606673240071544955387037300143636734837096423658894392413270848225927825481479391258386132740888128023618047592381266375393729112006371380092299840787390219635559407692463768823049469574263812487748284217706116632282594158836010763188944609741207198547130506068732170771430677645743705408100763743360147657836065989892239936546691667345329786216199643461693545837901735985778605594406426008759045358996245892636735751322107170761203087871379524563554887221371322714783398090503367990158619348232019790970207245550504025022125153901145685119775133276042010623860841550561373508192789880834186303009152156384180638743182873466311921614657016727673098471648485115473225672137930673610411223822082955290502880032986022353644817598847619700541717484903345336620417472234877446576644356459077091542058808366953656089266984875615854690633494228724319182278664156269991435562357301658596331749860042596558935867127643015895712379578349739689687523046603957225522888720074371891073194271824079091094207045035513491865906784025375485104381447489897053805984179183404873016720351925778097390898242664485286024034190434742987129119900214516320727102691856253988870646590046258115607013300473510426064826767071091933967147346093110836359453333774313842931984062557877691833257263641728793608714254395590696068858587022454769063498359654682099854920950298045778999115962837966601216878995148673325276879045482757832957383278101431349111170186434631409387535965284465414191410290648307230071416637774851564982498382057342894464802306973916151283742602407640300787829416903445897427260025670821524886312816792186816515179024236930651425394217235748004924794365727797554199405542833256975707502768660805445032476890235303243745993753849112353447526523470647236138147853222965917880437884443347129066661529021709992089916422002212885654044221077927751499191824231840611274758731482202849151901625644365274220410200236414926815093733860479889483429413837766240229222317387916775675686105684069731824640663023608456139563562704800409015402451313235423869615373847422787424419239489644553000942915441574738997594163607270254579324760084159245414160375633665150024228637169221492977875586137688952965755719088201243579959665351094483097980518853702818776731794844842493121415940851306502153509228836432922521900151095946076975991313721979353233064757499046548855777783407446280926691051328196817115695853088202972231309615638459156891275088396286475608607611586566763079307077320115695895208630389509632325724462523247151142265988020120933238320803560876483018042537701276074768234916294181591275629627897039582511874231219081523349787546255401188932279071505925910930669093783587020500786229414535589885252647497861255187610550492996401948147401528289433558627642369276742248653932656035646214097934208908370566137702284418946180550826253793607440089985121588119687271965611397234032178254976852782254691013328238424887856937066732314947216567716842887911058574926514445283862832661089837476131859173405642937064590212575037175294215717518660135244265348812556612371515410082870376513155612709643460919436096993527890835778423037599082885335036846641132745563458812381969179257982040732310834220478564429096527119967872772721435295004909114252865163236065527441350459225948131707316012250241945037987986404711963472493846388165534728996042373633360086192680258974676677139869929404079105308276718848178612174707543740009975736030794940671449278685204704197857418252502585274145329008748728832907343513989564927006388625667500354281425717872223467873087497916122393505537712508985338375291446102000747297570555731340461033574915672449528949408506092305201893207991682976566889640199355312510888329140415908992230195323251403923264520719808025217984556172498313489881787826882933043135047891441553920408515338658679440682678654113945795737229487501577313915784629906281560243706896796449636303846120214706619983767877371825365747987661296829352149242629486699843251694534922009728413624732710802313817442680467624009083172334888675744051323119899175544409904806732592294928682908767956613223183056932684922426499067512666728221472794681583765561037677549532466549168398466785569880880176102553669354155453679664375158210188053140242246785473821405056388643784118754099691246072478844699556265874165919270674161088167051433171009074495359555189022085029610679178693102051366184326063204728107305037659281273013833689734768518100994652366363123086133273884571393840584074172528319869666036420179296250137070779613746944883250352212068072984606429388191304783196699980074660849385779302574992471149809427344723888185545094588072106770798942508823268026613894539133086029034338181410957176380831968397748251422170733817279943731854751342955417884488127312967262780160969487009788554690272889038155359158920553422316394624107433983972073772838582690962884028536674520893725299418912548812998714338637832401397299177105227297285023269583770299487490345100539937493695106656408154867120009963927600758168252044771874902023579205949885965838118705746712500063124931395773738443172951814589581518793910377793054234080291471197417109426262858396932450159417730054160675963883279256660214476938655394001433236150486953540603755457337412244814699357278263440320007384454253228789490541324024177732764774004973889498412279020567488994257442069681592136367883474792360408646396674797121374409673556531799184647101275520679176792997310264204857730996338370511245459495030129663323350210968262894177840679253104421827131816182666219974579544610985904183714601920558893921515434662474801351280843583962021277846854756374851112820425606385406431466339082444657208380995127298207832624248336565181681692500959197747921113846166483800492000624344861807808727103930267700929929181399992654188000441989035364189138488125998340819514133941297981195337769406216720891165688011001003384767395220994851204475651531906295952939877166638730689473397094173836415547780199081001057631232674780090498612068243364725181843343016804070077535320879682003722898303710594076057917855608006127892303617465274721413563409866233147288457540944115661028735066656111118592532877728073898656033371951011388426967432959205624532277546059481334153350979637118382980989183500984714754936124386524229091058713998413492120153771327982691545509352969466091199612179407781557332834565684537730331626900079298217454973656902919133707779900166593755994148514440910993864991892583261917616568927819839878668027617150514954556203020292854487557050308776833109972299048952443179882806579835953531880684459804562760761186188173308623293179055624478980773446360527264074861934317542891371005904653636757898061683975703865388545885817004491047602432978776327805358851358352811873497500080345252183688018358645165953416376871405665217521542508743754765710921015250100355520717534595159883223591504009990456697994644972152584743349846340823218987156957037678124622962172949362388778479184589686308901691605995515195916544953849070593048545719454318263355577862389936731144347238547049824118498491295658403537475963942488441488468803935488098882461059531277285874501759218419396467026399338346998915808224268317754276528795716151719583455137183077033503201584408263577185570588518901748382030338902673790294850807229556983488809723898164817905595318036773313327904343578267209137469122003802369886242127820611035239575235181789963701348581753212207921409075257072890410305757863674652161014963751235671885883091140318335534407420828018344173685791144818723582231166789852133131441552429706779478924804567297164572603012202335894052965572329248942909106594964839093942704604004410585403797574404629912618306425816649140892461935605862276285591361209061708774671511760990700299849830602262121669597573076443983199871017423244501585671369026183629230738440865974954687223803824844664940308018919823989531741957909813803046370305621541669345225048725296201988647211246615489630379673711121733325475405073799438792028976768509054032077847947253383856806530965079591097575983924404880049823389916430248598253787886365257082321866487708644878415411758744726896477057404466908896106398367736067393422709424332889606492017826513147721017821836301486121173966749967969411388478742710716858729407401822923873034962109412853525889097847075216742363070080570931969583329211361918142785089276207862628205724583708889808363475556171904036766966954864989516623584987475862001139187229319518213635707674608982865600640234736615018441141675990222903475169225684021280141948230030206107590146946208554024552614891145703164235227453687794392879348059329064766828564942836803535419557135372358484324163760920149514247624760961011855940781725247046732416963713347515258351893021973281754042114682900330034347053139984803574370944649266293160674508346119847899474751493856863729886777999968436647953743155581351118420845662832011529317946628009969967867398638647401631925503234992559616596912234326426269706592116013423833340561362782513960326398302645320879608734180894434798954116737320140719540709765908587239631266045777677883071403770729953909173916421525446219100581426577033232303853364407701998346623759572362821880987722399015114097192694438573114473692751564924052793051634003889090004510093117450555039262194921211848864450812078365250092714787281687603125850306608188771413732256723367400969485205334953519395878909808566106253132064098670804397940729482914243145458910276306448262594782090204256228829670988719748661917622929314688781878244564366702745820752352229107622920051498631563224014833182082191732767301290670435854493309999551940526499181259390392667175200916307563954049447112398815494650837360698687224338616194570670052727206976953221365386498574254627793323817793290115008869633463141511803036827445717717642113033804700650640797390686039280209945877808605555594775998443987497493755634189073188122541584452721709217158530064768212866680567070341375551607419572940508698970991741796558285197045984280915085687991405753779521106277503976074586885160912683419721839359069466579546491243524352456476750427502750089906623382359770626038042904089512416915839124460571818603741653667975343191515167857597029579067024887408827393310702455720565332510022863169128507517294469628950691091702886831182062064663627057414000891042923376012909242654831307329410993828759006819048465252166546395044041083915610134268864171178819480926822962001902496013110212653068239259421225101799986896554075346164328051285007358264458435199409769863757418813429716055833220076285822945817435834745509028562176012800785925192742927832637774438877374683217341174893109934296738472162129118826674319305136556203899062453038310666113212520560071823706650009014766158783710605364520478145474543737113393625985174483127035942311183114986116154289463669385995157153106391961989739838470900482181499268128438171057508134420120455749802994597359927067622782223920182062088330534908151818331119297860358283863513424794996546596893523269832977343692699599747543858271879700283861963381876261903051173393860914938480299136564202038747120519961646568155042511602830947352531552515298763529678154280642301329358382724106792088937386363281963603035212888919743654337669552539744576344688608804554772078767971629781192281499260664008405085919107220807717163309392093804380806690061487982035808611687927844249791349818801545489101300600417591932550362710329910411342749447432701171786170743456635705645234510225008365104166547580666767403363394880132390384959475848188413834429531150901529317161541239897721852928403889826366421470757069021267713292342670927059881714654541129023483595274367933942687698310567505981571946474349492338259294028904260376208137867425995520699544605981491748476290186325058959867642701226116686071445480694872851091660076119232200428214557404620687666796036745393464336687324815035707355647658154312779728003668098415522475499490038481692936378501603188958304043015304632621666499289282188674698300644280467191698331091973423506950931086675354073178991050262252546754662405682141088119606525397758896034545290201578586017247519210513358394862496459847361070107717652438612828783115565349334409045405365412096700287566139807337450802734181958263978728086417150278588168768595063948093842714532936424446202714678422178289716806208336861965944942897258081558977180386364529904455887540403977309859120734752493238420918551216290082331728326062002702721123688384548852498899005939260701041966342878841605056282192633860599323405772857642230041493422901891917206110674082842732201781467528129108855075589796432203774522556647286455841487217208788345128674051420623891078966582799668298253642374729171962667765663535601522184698193165439691351083431041190591278630092810715953049859486045912166018210179689239809403270891034495035562832365418245901672517939495729009894895078431298734803575062985133597825984897881020902346651304612040024797608147171215222341048901436236683141352121880235461165349471330058736498366540130129065024874142187374863310242680434601366654248041627548651873436584322860022086165124908678998168380665648898224527702789077054496791240686472047014540745888540349667739516967048806924488043810633342976348393521905473613686820795015570026636127816912116209882087656164459187527093062590266918888451951394802059950134848610122501461001671923191923398921079484188864111345472126758701919469874860558954813818180993256966761942404891886893591739131601144342882711771635591448559778098000130263415396796532128448010284622592367843235237324159420395436895214755580005645852702676128296535517653562680759099414456129433014703969701299371155284316567516427866780157245023435974809757097661714095325552505025582683847503065201706420726856635236833058325726045032561293733297154523562208134753049747472040122452346375846412897555177160157456913406070127537576241774910565770191009142912284869185957995434545926021892193810127140244982875268706666527320471691398256386021140293787352371451128197625442485834154253510609294536691537997478249132217885576111068925570655602409699834822951022824781492833798924727646215831818828470229277689896679017044842800287004697575023469088984487356439514346782120286268846692382697454018035872012239731284008210573546156593122151048016346901233042233999607732659830441090899737021060642084854929807590925435667820863934875355248482390910200532997981266020245266713036348091622239636775259025193556608227962853084950548882183576186422722482478604218775704610039224645051317753390147314705400117528084387359738687469618231177387439818354003463519094147422621157779789758770763723814997904641807581484767755271068040268777836686843319786042378526118156409400708123629090112149663814313793166779765242873503698481332942589030007879278445742925868352017258497856388723070337068608232514634816360161303555534479195711139813974690742213095653964197793963207407712970434965138304531804312070490766943450259111596443874697884494038338692329608877462246680872071071200350006493868757650668704613627964186381803956775308636844290851348171678734917637739536512083679357952600668849703637612299380738083058458286567934592544948992810609068695600137755516103512497622943724516821653545224813151223357460301914514423576455737244323820484091634443547596400628304073218637366541255877176463874722606421238509183703078781386743122582537144609432516335434390230396022123766271314033385454376993839644842163561323223849041518849987354359600143578835771142421477217419933368949286221322638834712030855672644675727089466737097571958389422966412850694940516064428819275135861694565226847729510939265210685011441563169568409879714165668312328356743176517617991991923742280850221596899432586427000611941990293638248091902673855426227980795204688835884736197925414435895627546744905309954445645594269751399519656279255215819948414724197353246563047365889555507780728846891391530541703741245468563384925411688065499205156584725976747048155626303858660641433973620731796936800465651095257314102041306462091874238465773485965826051972373537013061315014480752896836916537919334533335808147774259842708495770666257433332049904071355995901375111642675028998610054231392585829893185744871393213001294955533750962866490381025817836582430267314572512204944676755760379796040928708965761762522428795608038505601665798055515422391361544091362708961673153107720169792185307377350694512437754927569709260506077037150301415116135198446286249399028733908141873759771253153209838645742276963377850681351480223973340200780266282313290871541877103377106829811099979244046072789825696528888800555409225853922349034329686752299896948336367475909585700672587340475459404339743016241049477024239422764709970863863140121954788148060367831713200921175306815737616365677803749385481712921449689396528865603332251116014266106181799173704315522657434029332681038299371102992197876969230568057165955860005005115562102557682357951643181817981925827444049843069424753411108235147777055320193818002157980649504870693916888375157879939388738528926374710877754787904168740618648463251801088340378666397588567075408627145683156479485053580379053639127824588743025174359042853934127534673688122957016605687291031543024418043610709063660465200874669673543540147587381448204280525365894974857046474304433815057479099881226532629676209689288923113641655972705859623415984063971822896410050106362047896850699561196459142877012973538564382507668594878357973143687491020363871675764106035202054687197517984824899179115284058420035827393876868011916037836698575646922693149576937530281147572627663626033282619082759927643644145719589686445560035937141334532582410834661764030303221906896125900047243123558534915753286346450747196475281572175282760083597323695880176581716362482239270082290807028517102015471275465374191294240637708696471528150006104915147369700869657712456599610212176574287627823661851597698921205294042288952806226988274076854291215602587426867995030453134538744788337330086508820319829827547344884744009789664758277010990903913926337775177330974872533094376587532601730112571266902608691044163083934799171086735009727585231765500897066100027701410070434079019842914114789641765239504674356877694964686841505644053411737011068664508930249985010322013627374201295915922233060071201213355549762098707908270782491060699605627606698489321924550164894744920190908857150798945167281463592828594770635192947627477796083552598509927733607093631158139485805568510256377915415264127870553461106243538102617852381037990631836403165255328365227073741600597976011229152163316387492992426849663926194349987191706616130894127788746096482340285611010716451547544778060629592439224016135941900213528618945825559220198165297608058417703139958751728755975061155497089184363400304329437616344124609547234763493702257729872596171965339582740599279049234426460069559875529173151083935723385977242128063942427654528188719177109744491602006171052279977194746317864286339318079096837802492309532585513208299921067520781391269980548343196655079513484703086757748823178277623206103835382002881896495935133792019859062020138182014972926573098599569955333141356507998770258077877410394992759178164861755611842816794218982331380065178464177518304192238755781439863598352400909960580982330597679845839628448720575443409246791942217098934605506546705035241372909859402308550673079285867285725914291740530725236328032964561796293679295013376492297751306762914662208527237068495827568661878339662683662805412397581655984934521107199275056542933883473816536233525431541350292632214037034008998981008471748530186236191590657062805314917581330437390220107671253030710802955417200988458290541472974396591372592484447729078812973791494220446425632972112587125139957270479676669181642756720695101630155330515619326645112264587366478091629267680876116189547581973023302377598812447406286649810233383987165496709875103776660779219784935387087108486570937884282789428590899895898188613481727793356573231880300001159722688261687053576428351348681378480421825629900236039976142185494046860708836481012640356454520886215602380192700980701586104311102865341767744655981598653452603191940455208881892884612130171892878065004826901595837030594526126292513755982146181491231554582113228610989503134140735831468931048814430061653129094696267360501676146710283642418092683863952783921981018502214354126699550944546505087107136813725329305050102276813228625765042445530888162014030889417230406186636796529578903793493853139149167124467333369602608469823087534826544382149774859721334446378655771017882525480624088993263468131640203885947540254172423495299225441453917822116793742402708324396641220538536870827289013755649023954301433154406814169125665764752429724198934288223704789787101398912115140080253953153969998330955773270729354138254359794289491906793107096476177873352505531558966162002491348031243270949511589173197656791135000228349689249471013838822192899627082029573480237837384577948039324456689630747987047576390540616996803706941068312708826135886177512714514609167886617448626215507209697003446815263034850029639377620756178455914269360924410145342747162132962240082005292230016536841270471368550286342578561549226574664071449004283422952403974631811078325101640368122019534409761110661720444507077638707091758509209477109870152273231854123807645708493522031464345073104770664311178294149252754395052342713089690359238294296623007144039052140440436501456965307871275473914235027591570209927292908192173745281135315753219261733017588548702238892493226038491869345570654215269379984554561664872917700919077486424228495291163960239143220510686777042119157351081790785415906345840225975008933272480813562401602712206044037181663076943902729692818127840945649514465300922711024997826558782584213686237572997019249515335154337913159671426027753179452451754549829258195447622955140028007071737623540625559505881548779456443947440215740114952302003657278905883798105414491624541356939278432146352132908717866593397342077863659091601986971057415659489496623501299380102664034773405717593312436675005892725400375097346327396807723994974886612969026305222179764544792555925769870545676310624226156879737123464750616267814230105185472603464144167124632055817263696727048883808235170177860064253434482260761283965948057237691301247072134420021867757947520891717814399923275556679512000277300557171884046460108704277264532878143244362597445351064403214084538953913396764599716365644494965591453820733133698178675284698562066917374149476681433315200547409289418764603375371912511764396391177411670915209993211560182788831767560243207427467154958303424108152556727908110951853315895190859773100271898927558819761685827375486540797223048104454410921329936539940000697204817506174988368465507570030221648978705191160659834053295516838772595422978779986117441853814173790281773507189359963296870833281197815676904118385954236220445939392342982769401190628635834877223698077415191824197592283499838253931153228804229857707022917707278143753258182616143887807546597514230263276208011701946060901109392475622516485002821753955636786305777738552058103312582268898592379196058815255831173001188745954171993526529933924249827667127655983826449734466645686981298172833162301463715533768292960719606826240251577121886056929964084020974936215654534714315808405194055152799382547976650444662682413749582287918039522799660288869621781806049787188806594695251249937405499125225307384719708997015435187638112134158568731443949119321582644956306902247378278014491596148868001910126892761188439024388861896608003221505458691994249796074349045040290386355892251759478520345094220141802186041013107297299933953131435529174932757165074839255163717587729495489705336271635011880075545136351308264405944537354957318270150371512501072856699770970399228368121861363968774677965593013499493842755431642944843681957566457767891217001314513896574534136443269876097448679132707747550480718604110529349509223044379527625998276878489127375799538797921721854267327667991800073052510873951004886984757237403088131808654262201345722488294467760800316675628074810363933083362245404919512417918873666017777618450217817293408144458514258199328317509070434985653704667293396589222395963499340192928641191858208771409656680225154267832469008873028222331315461299042303396773678096608101267024716985399898626986850758837106502161025419041752801451632959542646866612014167458722473528180308042172754032393806846799862142955520944375068490086735597259451477390688094347852005520249159890217196992161371002589761751216899463500009849726339902810578851056539693407578453289198350024523349582916702049465715930973557467250163953928323577102707402021061037001599126757963488113521739138579871956463902374611466452462550644668773399958711086149065603787401659395320318526185438639109981300067866920889954222505860606909914713121524659893415935828620632056636939646667321181206135761919926726206266234881767431912609522039876531092482042331976042651894643384973674820304574785169729326511264734822293920293106517634452565519905673228634019452176499048342570295033224436603456588424233138892562478009931523308243387325549656689044128764349506267168985769471215796836091389029829924472057423691505234242659053147915415170454368846919523436863345853307932500063963465476193938832318613124925132330713286675644631543635200449208474727097668062783871510454342503136303270023573406080111331651556886336285876239070378638188341826324853064748982313760190002189010522744123258838834059162744010942486421657549247834654760724734721461710411433045288610613072782436856731477838261034097561225040259398656045408643452936017078517613210176132523363075926291326752006573491446188078641112509761278603504179777556727253770795809132697903606747784310193928880045310706438126715129136846916388664341995906449257118255895452338903355938866907456033091077257655618544289137294606546759813706324231605093307160875628945309251456828303195330574704789326279245118306976872948643550233473345497760122869135138895305787380945718781344060016193544029281362292653140542948816777834599765514245637268483888696324094881767860284369689158836276494851788215702302478261377872208496519522221760068307753162589873704998719246210664831502377088353257034763569441871649165215555811617989380434109531773224957485688775402238688378607767985401681840876272263436854165234821755964091106014349036843116898416824992044635071849353368726538706730460207829761260299740373366144377175140578586844664290487338260566089674240767508879206872736062807407801663904792100481811919381965185050164667216591975311293001206682468886288495565313642195267763061946626752177748097668384001576369848931399633937761975726352211636638358576948072101488342839474293442067551024253984602360387980026242206684049441177172070158280030685383355427914830952259277754638362966260194510009173766548616453245165216515676906025054784478802183168434150332862349630087361657749976360717065106107161492220333911653078382847504361321304357472363749779617171219457069020310803864049654007382681363019290510362712456813744065360103229804344835805257064225427178516776219222851601098380757977663099777650606457825671585463467512662890781033631111941077232352482393476084166576682986158951906473329387459689050255513368862082540653226004395317152004638198865043181128859935220222258932787843839687842390670270373197492262565384689477276710663895232623329653497036720222290306719034638331387365273336135474919999480769833914589359384865691257614052524227901209383398946189998207761163969454517464267130162556079873125771644670028253587378718135347621094588041246886412910236787496602043241008456421918912362358940533996435645643626695214775772914295217964222710215484086928500533712511441361561817339832109293059773729525160727617976547716039207405233997485946875713618547983720454009235262203385872137074527884058839328726445598798496409431500064765089081072661297750682869106365975550137757630398335689059872327514393753198684889029159542403358115161176595698915809834710121886490854015816435232729641290193133621511557991529403708110721685302395727636157850054385661666920478485143877782763194982557870757400809368311973761410612304461114884169791375089209223496648114773965800851433084942871889276669531769820247763540179308856925214262039607278274378295359792891913048977731304824928170288987429795484679794182620465553594447370721207082988306881548107388121135521203921679049026528194017836091444145423892405890558864364842271741477445728132175062743372297827669004908714226697820835638402082866874724192799048852068815121233265328512023953099101723230904492226633970067110493025346130499128336281136806983990325517762040586323550887203151541086133235918805801233917318291715805790682743100099695017080390822235263047782199514943269787517246207989755829962184578729740948962578243426314408276172963611411823260906057154406364822780648264443874688126063068521817942614426630634417610016597832893076747507192445381245788477106667853266198718847519812894266342811727211170742013470827187634609359020114160256670188069927656249802148415757860742232567286831784766309061143273693412981657021693830810687543073122625569504334674221561881211130888616446201798858764410651702773203520338873679288026559059395030602179174834574247739701085192000343645478593468326465409088613106497262969005945035975160798977980937576545326299213924937587025542030895947793689780503383458533075923109561789091321184833349766753393252811686628725936685129976211807633256879997356373424831203634751834903039283038606554486666650550717783595542581973891033749855662199799387766378099355729702484836633977431745282049688550877964440287471884888124965445029028890874267696957653955735651127430641949203176704601730102891542843551309898732201230250733934377792770148923950198845470197758435490602024553399078599718478410133280525358305004649794745456282788095122558790730554270545164393941733775395488865649588693812121240693164076282182586201124922675621142007490019289666056983124406726648130413180612449727021690778156746077015526832107646300354919674227226299159995668926941593315275954266509703850737228166183930687003827531431212743481686428320045692575164570374536774312670029226252892231719026125636437279748631321411352614030177563431300247188074992310606895346105947015829244526558117984639908828965057556019765566640663019748578759189179120043826574302827359430121096885935378020065127803299554972027215954015113384787973644058853956701636563536144487690278338203183125645742128588956781860824369054922816984408326034418274512403096687084409693254868870120407563031188502467410458593726926419052786111209690359526229571771573219710915532569254891761135559944463358303320392711933560288015825401494443775360078122013744084374211547631268976796772659089831905679037744980181728596076938000661035454801635456509469664377197482832864219903841185318146686265987614754265932630028387845490976591431390928566843522285333766038210260036227509019914813021202997304723052079700542931194854866996901112913835328401724428634726574996144448295176726671153119926903133904416644987774093970189550780540327720485722024333952487406763163827818818471076744579562584621864950016827994115379078388603313366601583469971521259899411571483103980010885214569817669240604946189267005198668317096864137405054072200917631280285865936794711024089963193942423075867365645805029481394281385513840558060431996167824032005666816185966217915335096574318089585550054241346474499752464037319344084959215655258386520762563434025329972081188329787855921033601914622628869789288751009185501925713899746220130364463875551848917632054397917005654407889117463196808391567670984472996342477913199107233095818403477562428255168779050166319182149889216860964283953448115235406235733403012334477066852699273521487637912553562227494522946485405924661247993193296400692771788492927169428628266753766353673922323166645212176232178976008728724749573653182052479042796640053957361220602947270342849135649725374634245969899972582811046333092123886973293213485372305565158518583423456134650102196392971993469198734692613835713535290149466425838800870421834195717916660937654189379385718552387364873304580889110387065488584567046442399599232979464159480909182924141775013031436330107316501543651490131721772050578232483331657955519774935815177532832911092164062085162774468426203083148864613793848665528805772050111652374778533536974882740034424647904857350611581512929167288689323779134506133649268572850959106467203425035848733934560623072489800138775092407645065817678723136376675095222359243090872713398953993598473869652070600773704616782579984456225384378269269788716455873618373479539331617585690618986019859171673962650307332620267099616303919049275959569508321157160024698079593177576309090309378986525233865048242970954070421211049023185805593668715619325770729001666854091157226968966640316163479078928814056994379983844199152611103419844375782963814004270993685235145068960077140167903033660266300636991275235984283686241020698421038978193981882877886364186018845433002495292476199589514675656992180350704981919428686301902176213572848356168156676410416345870289786479038292399129441172045619649556419120711990940146466735625795726922373327506270846738898942876924912806412961975109124596335892187419545231072689978501242767691180385056797177147228297062437708753930839972576800786540791730578509643080413395209303737208216679027924479987923223229905934310455668007160814157422820144427061880319703018171618016201130155952357983422316715655031373812816558622534859874642294742958284563996786220176047971979500762850347407465719423304755366446870292039497419301372116257032184112744643280858038367729402788797807274524182127832631404652314129533619519812678198867463649092452623765254800743867910914147575863993820517157242625017320225462567796323403736529756094936075890866587123763454706874869155022693033907591779484288393143248240717610461337636345778762300727867414792622527774327844584267433601994358371138724187383911536384573331382493225526085757999418404952310871849338468862260155508195737401926697442853090204125302139285612818407807553334715735171791934853724737620892679009764070417893378982638712695817578970288936038261892517151965966301916466279338999697928741897026696113510563048214162557560831720785275589575633441792688288688262255492244630209180608607600830244319698517873961456517535350373838665684340476748799198618391493858981117675834768991517491400580283781966416702752154994993574404558431571908797170980040455373744014104653450715141205782297541671078634329320602560994742868728248272364994545235121371554899620354485798883372928478238667113885898887777484061690824576849497140327554702466939646443814958234580302215992533277057372572396833852622428111728825650865386742921657266561616305517367862123422608865868011069825690489573317368961698091638767866220079793307040544688386537046798336332659133287218448153907034848296844812627210516748267498749948375908935198330151763163560554333723900304348196770348454615585427128041553059491843139752721297294556429553632250496440808255939785537896268670206838332576527416780236832620521366870557313693075244870073358120446388743635438368628036172555489240044558650728202724480292541403734556870662321638759482165467516820023090276339464730451471172623673429958665192634836503937281341617918821591737588733843487034623508733154955420476996931579598773694022021949284861387704443127151154908973961165724634890601635607116542928519927499643197378387138763398031255956981357880474603888308670140067075891699401131943335093713706918738805697543263884860677011921982473196286943085182244368075164369223311293730955341523181293246056081065959028437790144174404898174164499943882661138402875799898873940213863911607784769438793935262354619154729622193271112159875102032241101084327731289666565532534019137143870900230217659271333456294762307755781203697866668051421260773556804048551615931896305043016883695607625547833851206858329783085756924527428293310037107948746789954601061550143188541724878262090149545200269901770291946174325296613048768073764858204020179072561752444362911000609575031193236991586452111940178462186951959466163920768793415235977101002543388920485390352005028208875208420895338221439917392448980061994327924507745139136068752065816191192093930546041028687429176838029666991748900753471115055471609634246029289396066640397330559871035668739809353887117606500225003755488345791465062026393309863439387421924915131272318483628350254674732843435023429327641978597990180129848048695651689657239559083522285266449956195816430710862458226726200907703796642788660365027573510894886873417922063206396068782187355230771758210452850205667911495707189476456930002181600525400817288032438620292586712594656495699617624261904912539724068406314434955474570725236342463556729240296694372062718875802772449031321299926386636674647500342655177971762443028385378207105374059456167314543016241392086187830123002079423529480356957623842131314438152166266775080489482949727339927175420276894719620465290696293075369793042995460050293305515317621534339508649256827174123707774398712283329017952243279416574269109351115353900357369056948553773841891213869632811003773042862410720528649748638663828978263307301274699677236060513264461738099367596140834239797759334871908389297194913078751334521998220182201433431259540045959042200517898160763863358211760276015567633092584220233157640512647539686048875698735957433335266934325846739097736319457153589839871367053186352003402045726259930088635903580408249142723908055480617588567435215426169490960426673642081527593311466456649479529661412050960142566915724167059608704079181219335298625332591213685532721315206137021616771187722704829835219058099458646670744922789827685288594888210650115965380072194406902717579792605356398389212403031394148769364195350618125853832338293075789066586873544341569009676753803410406923154290503789252321257342132469362242239637517619001245181429841524485862715044159090591680010602421492461775462645090047571957801737357658004728219127686066863751200488352472458635021122180740518350905873306256737222353237078906515116649886334970939734956202080324307901966711783348832735138072359317739696531103336956424561524203736613162369161152754432482372278507795251170862542530128867542483986188364098991447700462551507841519203302314358913831628592501436112853207613895506463160497149430131246665831609790789447612409912613244870591324832231508656555645824035511420921708421001346926123385019980543850556912385558734595702649490871392986420515303416725684895120270588789771302884995309463747977531620895724072043058378344145353625324839546845880302099573492111922023805107571224107600576451719764440600653371338248644300139148912036638089695673857274937926733302538991896361434228708097559469860406003236266531694178385397431130296599870862451712300662177297408553402666885186520846161129591538544169477954614385371847180962254922221819545179423304931631120511968541411100611888865751800900639450499182630889456923790891370854386890856593993806125231640894046756378657167614681457072505181374828703970528942461642439355580219558755905749186714955191882842304480621856644638061934512825187634608652563471116509664683642362406033982412653611318589540091992740117157370285071814322887834970832072154748594774021343362415638978363761884301190989940101837490677671624183799301905738889299142613015636466661483793100280015226974501697176022339570598986049169605969845849787688762605151818308004951388235787874728312975913270997014327291714922619549045075237081590383037475734851146315875875312479556957221622799406088788818641000748708183106452505842824363678669959763617415021312694127408867568555789476674003516439933285463097921593349068864563114668262048345478987859283429549055187347608190333915176308150616300927344449210745501560275961675937667083308473952046345251732844795488979162411001495747198573355356025580403728494529472817271306550614919073483896711519387348466617860779632609653612057225797511859677194245040731931530417841506055810471846572001703329547038739683869462649812958312982607601778485288593119226508926292500713422201616024060548378844060929361362146292745601115942579785236402151584343949914354684711915144795430156305660852965556069021189127936091231969760484514735348136694031437084910920288425799101418893896819105203257525124625504737852160796717568635790615406950614949694919755229286853374275505465143295748676382995932699230284695166435583950032780421401964880800510164201043573284128140690448109732034350903279549121864294937813529624808559973912365867434319222885512491871348312569828387458131311275874218846882832322468969287040913244767700014352701141812426340328548775961292018641083228284644514660869883595744891710553254849201844590045972837308689395886495084754905112677493078126959719013848917511522713853464823178946279342085905922079925381216819760071803696970151057883756833250164566808796801854675795697893371436125190686508042927736514330323792438749578060138129138803310996688928640194082135704539313347494014820159642799017100716410727853533164206315916267262126414024582093945382602456361921499924019313806279644527284577155919169145587947717091664049179634040489138790351610850926085510613866994556130064128886599067839660070117844963933762569410063623549964633512086631468854489133574413570947283636698313260094077809365893070592403533483102348530560341270960383520877494720978467231517111694545569255260467336722756346768914521878993540115566389778800897030223847669023943039627007142364798322528621577961720711800905461317848878914964246084545878623396520994585558383889817715353132437729235963893480750192331075279150945658340271121673268043098250094208638208033871198598812752078481491562308739818783388735009065805902931656847665831609457924248703041071334782432000952919139920929680255447849821226292537349006234015625306740008820528697846028189977931230820168403309065601918237036860226816322287410930322197556682672862644405664705223610290232608089255523414450439741996253870604299990991846359580942630500078305899577536440308012209251710906901634440486244987912217477301762202901762908669795599466377371438760799436455448283304119671375783703069194596342735488398898240246437010479522839106907476502513718201026522861700519842093738636733761672834351591318793682087753682390542134031841377730933572322618522704758106795138243660678604460940050677484431787731586096610187670993065251962018942813584719349538002522571552698589767434245161777203976596182726656815937549062553727525082326729476809145350784119022572768323437944916789072456064223749411509730242204811111789309234510516469591116882857289675954783868800553720950887914373828738195744024202993392253653319194338429333306068247913728908810295637157895793728579443252110763235403491888687868558985152995143903758969565869047779759044668831786001362589642957459311390028807097868760636389554436134451970047482576303385778209131323618603099146673353113327202231691130300025914585209150008616509008731761162576271889011930955191675588030241406950870550564574832417437380046017439616876830492946940542993848863862299293980521186964466187605793923548873914143786474937945672371559298079108301020338778770668704408876406522776124118896629953462234791609705607780715343559203816343048441440407654585817758191730643733746301792506863640600871491674446533104366775369456635859623888782494536745609474732751622169420787364323676777905816797669104045719819957643748632944647009795462437075734311775231097855504677337679978710985454640052944440998369389682249480075802930755347244559508766206246538584536128526176658795745224531838274993640677172596386497734480975377090294874187541604837008661931889921331367584716465460565858965125330809194850851861528015890793280369446499510891959845611033929079373017652015373164644378755577951503895619455103719724949322786603189393332799638169877355882994259147048098442826526753335898281396248912986356405688654041980313718669011510528667761345851955970015097069983219102604247687783713359196318872375543652677665360996393949757658257888946768048985527933243092013989189820619265407375290798954091239753224608512585389137495160922870561045560570809850785990194597661336364937345242694752227610593938180085518181672533510374897563032030503455504020684806938516858006615076562405989784202210956482725998973585313279020071968023223855505144897436669256865313303626193521489806731572391940297829054774220883437794308681503253036700566801916882962109509403800520291449299832299185103995312667338728158239908016149885647651424763790860035270011033898325750384602181318595998572631061224700790057498070250409156056900407568158120098811598583437194536429933929401248166326161166449900143977050455310609192862223285475669254728747847605612941772920632654117921633343645193594562209969037865372413139654697447332936232238810656973906732956792098959614052441076301993437507319983266972709820374653986537311539203022496868112969081107470015245430364358727106858232174680102023222542287740795697452401269893974773538483444139345990339590758481972679337511750277005961882132342923072092031656330767804143936371859401717871616805467495186100286724887913839845253264635202992338564294014386811571618460199039257498614387130943234354811849606273603795190646919238911914031663763309151428181645654074473598899484574192231243817062524565519545881905818868500410931892879508766220313303609145443393564846310376335136701174807843046370861158147631679018282308553356158290536183181262277481357175038153153317490183056607570657534073244791280301879786263584050247040499941079906983248660309051255101213540295372513258791615522330386531408922759295842815989613773355786584107427355509192256979929234098622239401976683659706598087368194359954956638247567844561229253257916390433085989461949265695454660812997714088899429521641111487493639220097962227580980052039843343687390687951599783592708321201655575871967922433877876577118704530635122538837936861046777470217882877138982127352837622094593793524953100191932885208997625437152930783542439866571207625021542092082171678319180623317018360859300228751152655850932766441782556814699309207475385153049332490129268194666453835186925859342166266039438198560112337115776226943403268485811401669502179119620964383878456460408096231452027081931406767098262576627529374540461438420106576545997415764546769424258037153906755993190199213476469077174000893306277126286436380735353483254277695654862734846661165253047327451373824176368626426027772538921198207153493123085056199149152784230183774317445139528954268103504566715416634170661672921602648559479943323206878824149396478446790263949916524024520295321086826357897818008918337644326419097084863863908988740308481747596884731442058145136763708780716200088588090996123129504736179732448394275902672223408888606231629375593667188872156361500019022333098080224558994233650553918278188790307363120912835369389377336459328322043454703039822569703720355838733659549260052086739161876187935852486545473099817340196424352866938937118169312536588626068630933295569087735163123145043974042940119643322108266062608559548684025843913454118590931681628655984983677868893729501656800926335022556401607280022705569808104774836010476121591209193981190282594843224726640566889462485956574132144893702747951702212291141133014713167602388190938574590375522280514350018022105146873804479582789642046953951017808709482332631931500739395285440799305989251934076657176982175664657098165581301425026491725274575333634700114940437866654972977331440912809088919807706048141961188341585436672389678312101656475631679409410559957306553679250625375434982885893740454783477838747755392060161122187350130913853113358607120879869532453791520325722218381825030821863676806401751563760124778975394117612693830671970558940452372402324089557111792742748828208304975511821475219170167849909071662335618262267040738145163368377953740308520858223922121787500278118462846631302340813296518779889095348242999840570607718042264377237222834912079206076386322800575443323886762817225029985191550636496167345626926551485395999111873521937742748459830895855755923026656486516777568119269426615939244710127385987321995284003119957801349598572319318727152499571305308916589264161953444053410497432275554947985076503139740254037144640413200601820424632891807175436260224949390629213333220163562385165814212961059832401243257380443526609529926637360794562810419246703299572387874502875062562727884600200646667683780783644687671330278646609106940731859850921500298005406466425528010759813770883039082251102816073707681213516139975450541749206206301919872406571162257225072109691864250986022144347817941468426043725305096357214200870400301451667792907478189682321245881676148808384260570544788489200287249900489401663089546198269218551332372242555850325851223775905334997504818785656078841443142726045809292589812176566472573139191695745497888393637226758232877273591674691008662493223207183667706188396233114438770525275982482176271971884678562878131318780431301052450117156428846539593489012006838694628590955645414759671253638859772125500734533220599388579039271705663332523992962398058651879433960743952745256627177970932858734433785186073752432559067767050243258581075515011514024997220850058036930515746595575043355905071938462298261563376866652275606452768397746835090647259298103027692593093018480448695844821946688998777147382624421818407821250504804938802302895388510043864049555668114453819094444651747106487536388475507688950533195420089171204844218357755078982268122764456567862891574075421130157922224586621037765942363440635036498953384306045670443727331424937716607848697716933188070318387811539660328710474247758984931185386236914072472387678993561524187178082023816346985323448147557186156927228565636798422767948040297293003649893872271685474881506923679669544444944901745513319467640025642176955034884436366194606931197636776198299698216629458994925071025631997270857653228908834013352300673247860977035150853783192309398223827780792220501037767422245900530802552192156306617920008717443666198328722992420582145505270192253074836780258322121121956060361634662216548304762520200003000928309645033624565755359165499975003538549950559263069366055376898760730011105051538853309827515311877472306634322221195210780189099053426802443202299097408835167732716294867890237537153844624734056806650793867707416814095926721363088378894066320000611336743472193112950159209496985996422625786484450325449986872796400767726120455746270640029540054997797490497427386443193601377362844022677566667884398319615265185483218221015402586664581192989231959347819780306922470470230417227568174936135859115138330871649161976026978075512781267372099189499631722067704358693558799017451688461528061322884156393256410477097479676231938359491769918077741224663225343266809779316279287625745610772167644963313274099684598023260040819364407557978041603126799008758884199525310372445462588178868291401567851059645554020633590261548913798907152738819400219589181396220887209566204200521769145361714531707293871363299290286098379285269370988817518875562886510580223594702672657002281647444633545007906489431963501223000370859636033164522016071697708513684366826430437042236959249676405042825826075253268135610932570282893705156033461160970387983207231506313669464723369543617703185797451135818423561260272331038056986936045662078952573597420257259653406554520584756769428385331226745754430492291156790006685354826874150269410919476792268599678950180654636892415879580473060955805513892962054528065437311208233304942654679570900224955573384439625467705383469816511248257739281427357659000192413065656340439210697991371320966914414349729413994627123613453532359973642335678844919591822064482051465327692829439662413110583217128200408364808081209264428192327299901501938426077255521028766054639330591073373563317701751403819972004706840586459063688743355724404030734587782024684629442717753342146822031152831420942450011498119978072116859598171326417592464379211735725289735867517311027630597780028491792449237049111311352253349946741712758979041052502807384881335539375589389538871067931294554003640602173861639250941151375892884389727743850796291103886685980985691567360537698405730998958888150155242776880010258528819038449724015738403282634269245726813210774871116841523277179829288869284118129942495978143201371390816278111626660711304487274487731927137504919596899509204632927896665827827576003363102295891973596512184637095168051352233520157666530131588329469626018151099484696252391553801535103507365660767614391930234440264056121814724180369686681291333280956365413327339513843620434619975615923146964900480870299492153327663898234988499116851413547541104727814094506890285246441130790504114024441941233824323756623818365421482464299844839511503726887455036275567169372315561896508470298235444111952156175434309873819026150733385986001106199649095415575429403761268335575976866488880077564841779975019192255923124780925879045031142501101563104223100428094836786277200759817862769696884139227276834299001832776240561336017757976897236691898577438132046914678723562946148860007570002326154493519174018610515772026089816011788089247111503106253019148956359281820445909662878790828169052989776126899858378038859704761204241090318884978252315386103190856549546581407638352831757158783720500662062328820564110733276124804421940616192476918706923944574515318091330847765268260082727062382496801548946045625402134980960235765747306518824680046914101647118755265556882521825888230125698374228644013799645873718617917156885836054891687038306851155978102205103394171820815982251563242925346658894106604253432265622581491054819991505849022394316928562819317456342701521499611699613948238702523275837936248240110628315020328317424184551353097505099892474256109076122522877461793566594140671491805482799911055281193480480086589727328176236267246645850294989535580948200603363593407916889476658504760002341266481302225938783695506060212725188626629314114426811040098775014912412258229451828813079453610021095965421476092352103366562740828254141580671928633530620187084628350957558822563299266239104914963811388789041929742182577875558471697345952186755228707161056000468102128476765712512580546928392933893028931856641403864470722338376168191652663384614626527168701558771624527431586771717947855110656485395868406469087458564227333149578272967282513739821618467471106649860185073265255123166862371607417791018147428688585159234334491986432616982269761315527529429431898374205136940868390397656612378619214607292112040902613907790369636007498332783707483083111610027011668894006177298356021899605823397801426557379700910523636463223577391131626954276120009151327233705508128724478201966883404689196258630256596751482149336780190591136444096784863967749052500862674744487433387582694053346610887154168829739109317987034077563466094094642191954860823477977893837784186402646647834411432922758181227997479897091325763926049729922218452090588738861009085414230186496512808087828586972416614985540624534401259383418868273268294088061732642173930063032805946495341341784399857866567371907227403225197359991737056453732649784791927547112846356917433311894419916891760190809062777135348113580913966270332561596856634026921263887010736792098220590889600610146058307455982295500578786955992032747447269640182774304666572644240093043497377050593321672096263480083707713169625468606101652240778021248743164596070521736316056666690000634184196803997893888815476390094521183591551056599626730926975586390423879087752556175953038849905213658489489029030865929895618317572908621077952167331360102573137764788561895986159544363796539068022900006339571067841310313112434273410395087022229029184193163740443960801309580640012653227878180640877244421796585102258545770286697542954140576529599862926080050704565690081558898886268159555206315734153458572190482313492426413329743769054263356443733212824991042652604785089311300049236322586869028553913741455451684676359818546767818307196828088164497449744803073904814225352191455682354351718020037403238292456488749690513762295292073409406460398449816537156892851264769571633385945797012964462778871228799976143807053892249436718148722467870929045309246979826285655858578403226815089363426756174198382452207988976770035776152017669767421558978259471456111637315388174890591166628213156292376866111074544385427230029316814909344442526454262089118385088494496998913155436926169248242887939895777747021621683736007810378181141997176989314939890369302683075652788248226598694805131035945406589088916325374122627811415545250493446823653174352279646830346399384788404497651669907183755205833699303585995505798972090411912113767435519319374905317697738227397381837749817990756267759068236884184387942838029295044401254447680885315868752239024177587716117477574977949124898658027902626630397407547370526306793513477747352960681524646644806960721782432432659968862322772600009854860935319907886848152711040583957559500087775336688626929598322144187952822393088541093675760146994592416220894375935526668828081259924256211421659282670187726310025774864704425634412581018320789963278468029530193202037067444104946932346760870115413940968572262434355513766095573312892466770078363694652911259590461806027788276977681273111439076609182669605123061067684169172814658418501614834651107384424333962356464307154364819959148759864519065469510492309458155723824066399083204700536770053388053687679649728998976041826895265264262267119568753244516430807969771698934004579845566190089673378539345139180147391493027238345202831810879728381421623985898392099012656767836915538289494477953955545717389220696747781347816743893081692969888140170872727361812986145154226497929598341400610705740702400913382076759724450481445110696455130820615384080351487907887781314536125192758607966600281625943294549684652142421942357800515422129386546742826425705169161546599359631533883299529785996463240577603026739629513969395774334613896959686351494385603755832459396753109411326431899655679385430574514963526600712551439484810646590688277093304423218212441737434247196391841123677574275520855262087981051318255688592548738814813186222045914270187421776987797973123358201563166584749534524215620564285093511344467542321786239818557797965250991726592692401201211091917943910881742582102669265810537273483125877183939340604526911982416630108700782091836181007923080113262705722238376136191249976824078774010972105161054149549259888463212148484133427204195964941307746183035576062904796680097120087802491768987331384338610286116716672644771919720708473298711472377373800462488113558987841335590557102553001981340045887506966352130680692409913423522542584609716318405972849452960843105829635986999575642521320763464640072184759324717076740419235955732193696497337123763017858442502149610406397169501324495913497603448202786777108842692020350235891155939332997609506428671507038188758571741735140789319632891573637522752468007586843705313583085659134016111467878608167811515319396661017181333635859146570385250673849149977908345276422059463065296420291718747705520687215812193394106578218324588748995271160554558420950930619897974429166319042709380255701883820640607125336390177994943261276999979881102057345845369882878764540424928886706701326701207297673440601447177809361974508956023794930970559089525394224773124374365101889071916570126818792683755394926726428956233276270874761122559656918726302985425200070506150357368049016746427945628521018795463249078891762088200426676941539129577976577981090189437558584043384073541342804372684935381142348321892400250912033098444544400897062092028919460413445085265649066006428904428635044889155929167358606831944440876377768735305524600224915535138010306554552158181415282140339493895924000125331728115557941918789917406296359868459713784450649022622358222987598591288770546237410974085525451466047515625826457913305861282554597102199574496680520762835122890794240325126469413543772138500621240352185432690550340819378571362949268642974295968048260242949988879485674201481466315713599831839974735200988395577270360284357845860484983454119870425759522482097983860215426916933426748780784636971284235851656668652657181777846574388856022825329494976607459289290852808863284339138435644684236381400055540705078949898101068303165351606096975765876837077725425732169103102175943645198995988484777595635370077811658847651628752467730076668071914955628800783818686287951348373544344525707810667327446952191896635898823430483516663207441504675979818266645733817669151820188328130848767216946561720800532994097671365801122629229721369893497443425860010696516585890041765149705137866330046475191928570167037668844561046006552736928935119382710121759620232272827247672570324679334253536835770014772345098452241561412728954377754219816427066059438585085807809960692569500779824879535655583703251700706266131816350512227001800127022732002899049147130648261225363875260084470555820535817766543833942592452081492638668592380665965126093226556151874769996765033784853469389061757665302680257883793216676803690810253252911189419123052602164994938665389669318670549422195056329897183785871423759927434523428594626336532549022857798974206569469545010035520982980814634243887651168289029148046757346285555619771561343637711604913431809671164998074457838344467517510008478894903290742763306785526755518700777333163341990357025046758622163380276934719811577060027967191108442076321216178638548267389010358883030212326783869798189757733689850944884756513857604865302663155094867961105313161360396939419050024470664186016399757893592794752080444208961124822190920833146121200933603593171355652361759787348464456640395327412295433846043979306254780463894731281678190067582281778961659464427405380010411102038607392602231043396740736185809916192045439600526630070566614574815467231552161529293374930776313957896672868609503322708839189335530819601131427977729204598859693360768312094261431739966888161857766796198811901468811675210985844263388788923588460886199068751474036528168304430947078583156278982868840058238610602317585343020437494481552719226579395951045669084703432997939245948397053407408580232722275136250785267191547556342364275444416461995584053401528248076508864193516538890135247351819269544983500157179404114611880498030729880083557997375478030918470002003547502128418345936014804703918536520975792795671906319192050383581974109310979258952238043879286308873234173013361371464617157786219759832623069314358576894593839881259947409687680998232036512248808326220323746972317673786461462760532747485750550401483988531427839410814422844163893505901183068763017431378383372207874449742364227618665597116808015669442310453580615331491824544125897697229781851654093618202049141282623022463604295936396267170799956846404875138612130068993096277472129150261029193672444208490552369261192986232211023013351496408142310571055581703412514580424671349742474189327672049251623396428670340830478441933923922901444649535515185267822428392927877699201673882497651233648940942498233606043565858628620049398140742062085535537967807382177381484513363933366678020196911323634682332446565515894035417444296157016319160019695400469180518511632958058766264688032593593630082318977079352046571145953437590836433028672694485326360511753021181747523395498323521053299378389013441751069949323786288595289248260820541486250339827663744786714320547925717987423589394387965132372678203569575483246200280378422293142197357021288798417137579577987932628427446853083187932304309594918022857127231815456870136692359534483504221375079558286595539561241512096914956018236669813055763961642494051167035154394324687002930601936950341699026556485679576345437084743758738658872438447646240905582821770042390550242551605464267522673961825507419369721296536799270943828876967440517018825453570954722046628743052218564624914472594799430751736792796831401499090916848722816101352558752557766293948905093035823170340688560140686677722668561894633525143176455732654713120865898666381902212574419020264706281373167630197863087158939626211519943755168510292654208596823309734652783696199081490279346150934857220237778548546659085130683536056925500186984597494841099921229031645563137031898476255399441031869899314659441697251283874377493034261776031868241262496637452811351663843887557229595211222690413287185280824176389948047304212250973526222956459917375878609268318871798819966887624098210312393889282420739031035539570608511266164412816356658984095025658419926279724602521124400765427749630135332647702035965105156323940498695143421432257948132147691890886092817227211083818579754948741557027629603548309465688154318070692050602270746433916695129176352276519417963422517051555152862595816174952335975694406987233958686868210318523148557196719330076126918391969736383678416598093334610784926746335572451951682649079968429918086270672626751668439229020554854437788943002343041031239232099464903772203972766370073982970275876952975884834785846957040126225216232869601055051191475616175290949078691652713916859293429419377583253077911217698145371586621878335961555674106506876808787671118083954807356965471549191708776438609272280921672541506074155761381878149296892240000587433865951122883926278387385366089313519012654651059980065272764517113309261905741332710004973838733539110533560280615450601755176440681824311285364952062524929099403341229766918650391805886131561153146063823682230211781921060984047460511706992701374017540476331601861189105583608729035338056650825629331044384133662392106413683236796140807569564322491788757230708437215786249021895597888402131679308140607984057509547323426501529667962759099476553749784302436624775365282819069406126055654074394271326216329721565224118729070733387688870463443300939174112773724826588022756918767506131229182391872612208796491059600008064318733451817219232310982190420531919499507096177775642972534189653619641716059787209565852731354282973179372717490927451317111030927883671877518602667039151920763849548934863582154954324124873241151596024737436094480166271477587914973390683387643765440213562325768090253464413328092552810322409397698166495495330063588110782984557765898020246419511574433465009120283876163529895801539530594249002838805757436647591001456585229629593443506658276706988637077345767652168709707453891060905186173730213422032694248766838238821456708748153361016934288164563810006359323293242381176356008954014369265071985403510920923603506201589487557818017167743760074396594778582562867951875845143189661689338736220438926147803591511280010953884990113254489377521555301037174337999074451741349985417361269126399049066222561936872406152386228432900975064046081152082229498055849250167602349980179060871440161168599449398798537367548784594255674578490223736650804184391912000926600724954899869390075796859216549827843435453200698976403710583662025061281164851355131486650615104072816803963110410877814068359995691502497346485707306206998427879097838659258587780314083850691830358803270570846339095348572826766747435860378301535271044911194362964054299454062293390198458608760051235928754021447213694351512916125541742481341283557385380308866380448370296480016360470929078394717296461201798477223179758065338897901319127562541594365035335312605714900215373434895706247308011891841752325254840032915919563359612893812598072407405182905757746132913101163523954451660715172944938079182203180972782729881221142360974460596587450321869719292538296780658252038931954353902071821730707173793820622220007041155128367388519755302004506056178963308204770268800157355076912432569198747921580811139699704867815189844191011357673554208551104411050617397631686754132669520726810511327744637396210553861832194820990858284151222830200171474889417092161391634103652790158083729590692813755100883302948920026716989318135762532865991615003601567749472721759512178335106238144501599789916998358466155200302030471932326077594936591192902928461920955774643088742872409179653950336479530350588713664267976404797459262213775534525820019808422445188316174541743064931799045766254140102290279803016740912227182457104838215916481284755177341849450506539273966996454636390474048579234661986352600559853474906143819798411517175476862257123414776076141416407175984041764750936668680964821014724067536428648793107421208390026457799557158576617631163007767274716179640017360249071666385785774393419474969641768244134349943208503018013402457673724734254914267554087698201188229272923398075963031370051654834323605549490952339309047847765571211898449088891606147567570659918622289205205711640521520637346227619260856977600823330779395449715635635505793248669701820066297405133585556827630490101119644026361604481659187103608577327563325248758134811919164061627961168185458100347893473104007555417269210797550648543401568636334340878273224292612971270922221749020600556054845015100172182200417657252511521580523157943350926651788818805369007036217839432817675940329536573644730390646183486917173141890693160755186021554537085861430228356161111035859435851557726342515246741798147478417150046392138674202317382344896052106272759302846012158843831714418155927330387661566019471738154079185730683191074376519981584703446875068282273872825702310183733549023375987264282414149850448739799494939426037570009602687968241516973361730026272405511391326724387314422886924670234929424952374844404126774282380231952971092954447918263328370172848785299435996559848573260013428521277081223148794057555843566417811131473648277958540492107098908451331223339133667951682878423847992070405908555079654534203345248810167209726460596611351667688776382200227008343066543553972771472000834134651241886095234811856253039797349353214015397663367273984585103015509833681362551598708796306320283053033556590216883279270509361056985757081105763067290020733544106023861345305426946525707526599614162887371018684213098292401200356041620592220140514700928176246918843806314356803981527355143484261196110515626040965862916215374520651223277069853239905226064709244050443631208200888434939013235961163194378537401364746718359308881733196081807087884760454918386454991779459954763030119441842368131440256232641051979857832499536920583464057580453231607759994134569604210854615675559192810765860488927644590692919909239919451278207326194384979513414658673219563104111485759811502035103856195013020153853279163032117655962143712672110950681192009283183388274594555866146601051346404630315072820748880236481705763535919995273171742191049745337694548450174806615757845273427160268565236645951258815847144680258192570677795841612224695893506743900457813955841121787448188101669076905749611394685798936545796694372219405475552315049191570869977008587633841232184403535720815328795119515399584783798557527444121252915723037645493812186633556351106656067633698289559090055024202105073007318766745240606828211167792208376339803000430021598107948085479677578610749391593424224528292035439048466698982492246649690525479586661102757400914701469003348773084301447770201124493666675328159231957792655176410982648042406979501350791468564787722578066581295245121081913708964540568012478938213962178187147152716437482517812641617044307532792817524585818577498130617641754178542661416511374804984323476273685852164699761015151000907544379129854244785138191431006577805381338202869231617333854608929348233799750765095645047107141020171626398508015507593292002824730150474411148206254633424393828067154057150738414718222795714014675690972658105878852931450534916911169741948301721068350306647683571440853573596688318370788715094570779859444621102498425731209626948903752093171841623322201125554928964215381727875979435027719988253429813363428499238810488834504742958007049127081954987693446151750170565548607123486829743426181115647980688779857784073957958705746981116435287244075901793698231157257518895576824795021563487620406416804233452509139710790219050964788741872479140155942082180373693924639074863011661970731151760183782899205573366630124175766482126748828836034531350868289740070068376791837045103276435984778794213796824253280793271970425458823959020235480438747379704436818650000647548700002136792817318110716080791180291649981503760052913260333075530034004083078227717123346439047475400809916390647517360327131176266590257735234297110035458798614715660174125461231553440318965587969108290092023688478826929329827310416882952933757967606415586636905938420482581748969701941473989586417028395755297599832331183672766107428312178358717422507542614910518299241889059519202047251351813936863508363711415003473918490941940709125111285148863783978455200817140789913255972168501382240473628557764281311353560765470263743075203547070562836928211365598057204270616708928365352819704216609573600230476582726950091736840348439631730683820513210392844788867469732756920431171063323885555374271597136310065074127277401117692563928116683799764472036829932045516209501895119686013888805798945706884517667817144022692369930135380491849582654462076432524702087067373867321862800227498135204733269930028293313258907321682638553912107549895196189713500578206479608486058689944211598923848433614322817462688655028178925762855849890798184262792261809502209755873095703820666762948343433033197865268915855347577167522429462143801725599467899772929158540758407246864216006409354319256540141295943755857497255894226576668681759088898430690233737468240834709346695435040040537073495652588767365514843294739056654414357096702927459059393721613906475634113787759158097918557271084964782330408637654618557831121325212326335804774755433506190886420061309349800882696000471592863581441830512819587261991606706025682134463148531728428430451530403947297716812979856723734693264555788493347422895194121164437852891169057605614759500901928708521853751474276473888098654270757938253524484974236632159883869588739638371267714435879787203548528735612404209848933557913660378791953625576958371940109313815532986575270206447131710117821330492986992383968766606346803930444218793648436633388284462274004493625642944713973372821274925233960067517311814878609010562867916652719502034936695999574083295390242705885948331708057408295497109338472419012772866440008214394356742598858624253946267834094779895528199245878479059078055672619486080381123305520145792523643207856296927579631273116598196370017188880383976699749745201247180132580344874352974903462366260734813644396426872879760338382419947332781612092485384942410480875600296156811612996508195622086526482262385705500814275494877087261423491535644256238740775051929226583081187760045496916261227982804518124532904163921396668567490722220155454852804880337992512021620286449951111280576115286564876768849856292197765495914837663044844258200567920423259256098433626259439377870300510950532252834822784528520201342746194466768369558115166869263326143938957890951821046407371870942519244742482528990073832133297204853575993264869284217329609278082842634389860253438780884241107498653315692562771749685040483603379667604867018831982407783333159765684398206529564736849848518004548858683999705050839761581518387871245804524126302676409091050066668763213214530150510278056509667946357584117205722566823891866495455478819971102607848304047546677048675443374364355925176196509365793406102505891535063763422616189346100082552803418887120647952336595173408234248330170477880166713677988221633564944281332268199683116184086665615773833691888409296283091736741979897701303993578661886352523581452722343474798566676509827837055496465079847769309714142840502745963737393205491500781607117333872134496061742081356756001497352828595118432341843497097984434437827290023500537174130666558819897205461166956917296728277231251807710542835819428512584607050552771130056607585209166122589961452806045049826106713387599701255928667507896551818654756553540261827031186909767808417085273808134482474377649136179115681545178416496068979473952369136611904934278805479394463455697726902543775792532780134549083017435858578281892788949627205715296792120418381387128976044566596768347488056922226341328299101994174275022159152118789314740870346519723531596996707456878487982667146540638987871906824701639594654270528892283472001977108456675641349355043581959762038006105388249080512640304073730916333359032265645011759929092900003307055822238792400597053918544394856619861236771470134476478846213893714821933775363732968329296665089755300387879687903774028834534428885752300763200181525670763547090409236469484125762859610074169319140722665508749608257456864734208920045717445214021214032394669962077345333147006664078766767073139041470162290844840571562629279915960239709562946142169252505688150531201163022064094396948101022645741119831825700248364371222218177216731121972585033134919125430333114673500702333599570474076047263635694528014432069812628642900487480905194560927502403478996381169991959210029394523229406082101539937822534558702403645076873773131564890092926231146302904892351422789330770260070392196562024971477200918821169980669173473991503666485967425942276825212667833849498142501826460124115306467449431829448583182165655921309527175088322212827453280152320025825822811902788015867930967153228976624556940873043748896249668600779496111241444110626869810684886588295171944162756604036192983536510726494421424341951444768747088305950212624545145487242328030653909827895208116639791405011091162563099031658051504655692261964420265681806417317829354619696185993343647794470558215280381088219762259630576035392223750697669333974668782697913251044983771093771825760521127873916471097188153964762376859602077484193988841038055928258807274780904153880083916469126391976013277504296601211688308867021399080901638925266735760946864400512030567040623970855859113032621256460228127789478440234363728606804410792994008090102244067555794013118733969841029535689875740528219749229500776217859732821465962445392648868750561895158775887469248537006020292198275731249556956748190360586719691751510536326226879316385508716673372847488886531346329872628052180662489083884042623709349075182205625188227719166621121482199557992165445116451661978409897572015086005841917180938765575294307310423164614375977152446112936467137112335454753633106590026968973801041813302413365105034857898813981927708264328790997221369774521297171187611000284847158996522008170212105048074576625910131033803313031840247407641215692506934258186093459583904206593649791027481242085514940669526904412837107814796356485356318580241093822907992448894424972767077651260415793553944892752820598667793611918529110131571465283259305300958754372120723807195393351682303560273006228488048864958184238528635360348464291605231857622594456153743982695163820418493678046809505931016784903492803121380448008578314083817334774046332847252898349031560363170108744669310360896951593844564509319842102163811466508869794446634307684551923163163849470078169034679678036146289200569655093693410314802400137600874879840935991166123364457521789902935256237684653518015947648387935312071496080094423716967915093704085293166867934936401348128091236580876377390470316639953401454922094684478993233579841463546077529740182831424034227213468207311078005997176391724151568785664987317930533843644831322048850937192001768759142548523512488792972449052066027795968513460259068515378499671699636080294641936552471508988924153859858576454484560284543077482644836631693271134076394774647879151759885429822470021282385460341164658598486501214515674180482675431928331308904957990306116246239546748447840727261853759515605984642663266073541985822981200634585199791991770940156904248170015082350243942676956205430347681323544956209413338472243855067573041600264733889643983748272295634595757412731735885767812350837542625321248661568406259049209683269513591440292022595229206285849532137676376731559544101341389618488967495383415287244139673489784983293769474319107900281224543160965532009284642175304189006447932413355367509703039761883287343016366290698025883681672167162415889218618502390898306133608792453041819637574748665974698144972605952095895919325830858023416435203662072544503222781921635129815932428270676467402262047288997111810216497025477722282301097269851487250756553867233807841473119118481101952499757212325362792419329571391192636510664099217607716653907814068008760702417064468957235366795878051171501728206003006413039637279250394624011911314424511656787772340053554781507582352791283842746928726997843444010060179175975571726695479758421144518244943722522569497104975388831337733981736512862665307874559834017405614771996358211665711063354615569768948315281834520407725236065930344985967225735416743005857585155487479855557211499970650801177716059592197903354716291717136906898879894616457225782094883146772321443174089925547872809755497712046584146311059013464725073010750619538573914995121508710274632961070315778546894481603707106735923010968215590228917517135750913383019964240745326160537347826002376640680464834184168895144458115062898352077023862933725238376858935612853902354736846117582675627072829782661002524873424792349800605105951821773953074527467220044658601649568302396386797051793886276775732789828031249498499691640378198236466308267714632692206593451877725163323528441315456926941483502202514955408516390429174587478508915755464941240663255160576686325172647338968796658195048928285148283704445645581711326841213377770835000297783784421028784831721220661847827828883249637977535701568975173627492081080154092791830078547301288871151313283051303036248648489082525551902151778867708386787609962608617411626745766049197496301804540233434504719957116701048504882210740729837970055878312138014442725891390615631613402699375713414520459865351054506992025860692085137060255362055689190092690084627219809597528131938644600862995382985208581977553474164704149592570428229978657273567741518575738802866614350334389628284348713640125102910993179930266684592994380803321384552100606348284334439601407121108014944433108972338686649010678074115367447264056627765804482075235275941967767007881201455738387231957251812663939720675254319658625525272630477476035894670531435556547835331642969573310482545589131430136484746778502696746086349514387382927788816855799231302201320352939179921473469676580618135895863685953152820792097900930365067453517315486900522817021189644648348721006046076956973487257160133603687797564665885695160748877644905092624714666422681650990768537038762563161281309023312824222264916147899281296583837208168786296628665977691496623580696032331471691702257592100934842241825179106687210058303226696038226175026745606752242348205756646330984036987682083198201310870891056757340443086184834864147972049368427841829400502881473200866124653347854374248624739681305388062509531578040918343990410190176636158448125690798723046669876072952041281639498826566090399201369246941827901606239071358273206065256889432253321062951100601874496970216722851702302369391885785864577676074166847069341973470795232027450644198905663149736774634297718248887170450243974292391238850189208112856282607320859607026830676952090764353607550208411373430346765112251243367928224723369977373461301396588976731725721774400185476161859230661315496637531818745685887492024512536942966790822726687646988804798846435212730863661253061859262605225933275439497632006866112280902179034909092745416530384775585755652236796191735863645082523259315699113268328215747933992077719602229556796034176118917425767001972555797811154696823027612445842928027633625790063835240029097116644070451713133160506159038774838789689498074055337464723735039789076606215700984365145303105170280966128683964314078435582266110327575122231952142348992577349251891056209795295502842611786341968718414466375450873742395159069283207219495453282107132211197126859366698002101759404159447732887835094743866313743326998962873321892269068270666049342243387910394943431542930263214558160051698834747750353407479108462049722617089192777505950144979352656437824595084854716662084232745229531040131547969521128783037730317400465195476648051383959249443305523697997535713005434123800502340856783243779681854230512434136597458914566890407152347262430705540458851044268202363421899954782048207330525948330096784238590773908622314664465746283286169873803930273948512436236462505010949803796013206670525722143149620664139959323933210639501128868473549347430890003314371987779663838262915419155801444091348744465975095660686608179981255367957952025382418752182927406417687547901908639669567144702793480359045447736106909766619050108788331782634268135788262786020512793089098619373039922227856419330575693555967254985820110914568202908623979563608719585981709437524249361305132298010822470850865947152233781505351632685055306146062495187297269841327694164170572530990156832501151296240801579236686865734426328737390799186469092816631818213177809323852585191344763059891217480401962478250773874802995208810716034111937212879118883913194617314033815328369393682390047205099890351293042461595888193955257460441141657204248447784515741809657543785917519080576124553299782360068043554330364131500206613050618210102987455133639764832847040291673322580076439620730345859020974616198758353469909480485347488456686403749508724935898147133757580791883792619804031355733057711465154453526700038711192242281568371366758343968352454863641993102442314859568328737306183202595817582122923598808456941841861561082608447045141281498362356053950771702782289870943796681202281627869322046832268954333992756581424377245413309530972287293386521598951681373723267664680245128993465410122746705394769811187104983770821207756311763179165853643691668670184668648540233065407615490843132734919260629249088019981576812748774873741636819828457893621106856885578640941584421345413258632646681107701948827097170424485733619019517238688302823735407230835472875170972434714216165265702466405580861954611794802422159800370771942839997226767867551455404475897184428045519656644731886413522959361478377061388351139436456928797274187452515439495166350590583153037997236617641059145313118616280670747096655919792009952649338363370416218567016703446650019425164111393071782697692627883963383221888931237560915193894100263983014005887516530521432531809056426066582574956984512031222580694883992078501463765519909734459996742845457722873010872740984973039419121371287436677215082231334263029501308494964830061143411416824871425746851574790576652090661254985407671268975882660466987499768699555667972591795625161783897195573238676782710235050343702864315340762175810147508846121862212083395323718491462164399755038612493758130166302759767934085868130605929916187298255008117032124000088399940208490685310573227104139055705929166630412188557612797561597562032682137015167454842605509918874030138443833784367206569010481352963055799458074856409266573204695203411384923932094047909800467904452028460629265999453636372935173119337301473732617854004572592094832580999600110568531877927847845784958344202149290474343010745889065341166112625527338358828636527022632230586722240669256503912944975496064846561054806369025606119579313465078341247887128448486986363005103562453206572190245491851958654009030021583414402685074819476949335333434095286867906096417990052112566906283063083646966735903794481950957949698435241601908160674437279499728947926824257915832077205057770644065574859298729786353924698297656006219762417112388409261778549844391936903031639560111622774650437854114130393328283642017620035352103791720928154849846570580924832802265328310997148323897518963023413392562563190737070533775020494377120932648366494811997688907335020430678764766499754331881874732818008906818114087252961156113861866784210106658384879415127753392883072158606414731618493685680587310939787158792412157785002450034963255644222888799759329936904611707112546366850074880248073684918923923146589783188417640885626381950488915576132176747008451346409107882975999702438646571079349064303444457326183231990089610309991260549001350637843083629187072905121175753318629089273627097531066982366189770433295785532651597677087418669324897706151920957558184031480034499340804786598283000102189035491540761356972144597283376341141393973904408171917053761183709224524990626711827324731307840554825688052869924693599571066514433173322351090138984084607582094726515071194301090414672442488153839336120282850778900331918791339291008020475914836848861803331942002981048888820260161710855758636383163109568477857228949420326301204804567588487576780662486077331569340960304805412815751725634903571698722049513663063789016639784084430066975095502824945081902878307048541364025287057147781745115269238243329203282435753932694966632628466185279893976152137907039623611472657048771545246778496577920469896575710258439705495236285570733242573885079984262671086542372925357279152152055610729973354245601616423011324032865491334696490841330048407745786974865915711882783863550309486701675681730910283919327082765858773357730952619941506416646191982374854080203307978636460684106585391361250599380016981438323460577439601818991068604961983317824127085421186506910286769983972071196993111235604318749321519499695048366395328698797137450535528806138367918961244239305548880363908565366671832749678539307679694746292245419854571251449381012522369408128699099362041359109169050457220660618842729065006582734110836733432311228617668706798423732215055853197072917505332461745013149414017048674872835851757382610515506884708780025855674329328088128781348796276264781611487365593599548550552334478286250821469450311339164733801580751335961271592475581258469291424175210861663530700173011093747758627112215987286367923472507849438603255217189153959063276190356337108687794556824153377373709683820390642417298896886303276483637631738184160210722903224746311098623722698170806576943347099568282371959849761654900965517808477008019712542009005650852138406926558104117431706123788117763498515535552924585123330827599332523293473673872991915042732277216761933691538682826274715437814877391974229603411105049887155721516103694497368752906580356097115541521194678992302823105600058599363078482205999033381992668732264331550361878853808713689936343867688460522127769409219862768435298325229916467512502487217345495719883287585892710208887486874821475247517259069681698076768899932027404226531139549596530793122752223947659561528838649584063428908006289957833178506907681196596598576548028159276716719203047283471437746938999879041967941603565297615068520001131583747308076408194727459678743817164212574653794141675896651219603534662963968540541345279119110561363870526695072814125620086064295109731518597218446056002678124402115161095673576517772936989881773374518706068231924592218457967215091956152511138583645521723787394909035433971440889710709983146733576120731352652427757337748565218345391465678375984917728567170427974665427463023591142556634348301808098293815530809982824214139425894150192058980844539870661903968993518184376585022042816398252109006232889470834004963020901618682457508918316870323419112364261253366708070655075707410991380575928832901247656832838175913461618792832538950238244820059311388401226108777897983406407353116286661879828903696374734305623413076886103960032898155130140306218091413986508871800699059057291346913461762791233123304729377068786476662661789160680406618281811712954591080732886619157628340435108422677661522316201159129905899679392988096566981144993393978591552914714111286834997732869162083966826997742116894355482676457966913814629450234726582253113344994768909924387337160363962161287795915251286858826094717070008629924187964319926666711030788018368549071611014843985693773570811011795524354517840770535940681988869462281980131748688120741320418237358144967370792806526708231321094417506010592899429624075087600680476239142702430288587937927302378261921888923472418045782116552310310822406784181625164139497289951015441484042657034192069532317307788930555602275387230117208789483184281659052972885583267598120154742440158905407132601287904738698171657017244448557841924931585862664220171581481467644417520779966333861534878357615911639092652112693665692398308881091652827144717022726689258897483534465011771462378001111450136703662313104864335532603873082424369061120742745440409355468906343042145597658546164533237159664865706920355803433418954081757579145793205280943531135604934766676580733631953070865848379615886721674124863977247719165840144552596831007936019803277599929552934418128803351454901396501835651633270429829598599483906191124035161909693701513527011158777318354043157007265250781550951828861806815845230106746523805932871455435945427317180230523984357880874378893457739448033091453920754159753344705770284363468250315984592781085878043282769931736537714226427299858561610263742759259698733908888502937708142872848564322158575937340096109151633692071110510132006462032602314105033071019937078411827823630017051509849030854081903527142687786606939812916904691083814682179095302704422469491312379708594049580146306999102086667717191897373282732366129713542988435663298756369329656835510305229346730820868626220631793288343602954777362883393982425845809410041719321601977386727280288318003465717506747597148924700852268555942773491454591258764439742154419772594900358937319567432248518433853939929000918446282004145427986243818934982651112764051110552317296266102742587122493347211695164443869751811728665456653885920067254886633271786200627113490937448581970808648402974926619551783535478696270576688159197754601312433102981456324969604060127912583963017624432237159363856520354810973926433978985642402504203578319604395777688351188064045912089192955406655287459614930651893792152557713394213215360389717394702567458961798021092773560144475023325681231926769374895358792761056169024802133550644947944593668237220620542198346252696461901648710647835960229868245967732636895591461590990603421853353797760587020818884063274457428465451710829175793879594526577455589761449960564329751565369409441723141286326838766747987821343557046308349210638713993204072558220440578894639840953683472478462591057633255700764415483391075209556922619989425493319157288816365305172280605686119317113813732283550524549066697486267678149733656896467160384981039937081100349597006004153438365192777660542937533249087122386712887762674839565829292882870785683500061679138973650350980738980273539392383622041729707001756040645903899705042788384418183115938492172055186489426831425491811105384326350408335223650060819456429301017477821294836823057896728531976121758488517114806945020335040782749902653660246589814375906516749436185000233959682662483172766657474217477327785160547686110141065930077190395961443684053950795822560832107889447661991390312660099057957823937821305151783956375428756465117001655016056899861702992532507252770948061433277070927845168250875352000539428563218667427693475999160989314587083337807528197785276764046609062878139389580424851817256444706047329827230073866307281857453850892384753170239946779125015401914959468054985200469254388466172398225624050432814731325007638018664937082778871673471525670089508702165689615851743727051762720525076443194296929524884184166370808254334075192641356797053218966073611323478432055758130958380334822397644761051410542557393151481158679806702685176479378155851266676422272830099608326091718658218711468179088452163643785183722515771332987724618055149825231706129637147537245079630231468710973415650643490298908477026866999258728892988452525177436228201935859152458683617121336499983067526845738999367464828522114789185560307142724152605414271224673628142765486030253360640751658979216128523386105361462131210160563365165788170355314353497747723573200609145779272798602112519213822913395141094582710086858010133038852184017860945089645568732805114324724947879467377558361748123335591207048977657362477330945066384457051907291154488541255416360692215628185706057977298954879888686350780810525758018038903681991722240099678754901761569830881727305365675208434065298287758406595561818456274522340354684952017244711526599251036512834210723284429166513309778031569422441985049558673118769271941706033839127041699003000959067139958225058807847734875974527935186286806569579138436325686407195157339994244125222740267165654159728704534412330664620417710692777993621677079299241816516836947558056531333402190105097144450919419137180719225547825116395757141542393293176625706962916930335724831121392122814504432582839820994407394087203554978783668282635261017649695346873512155350324175225433940758104959779393440378341485315750112273826377690002383599784616611892787012067502538217729589457412323037009434159648135019002781298457619278922145810492299761848006443172116251566212559866685707471039066865065126179600069403926460875112745252731352444181708158453726684967068048297446790773569013677846688622480117707698746536958338189705592345675958223834028534575960075499769349058065267825292911669545408393453655043550299042430396226295046798683533667300776600347965279062508638258829966475306518634131981399899348389275644323956097964849838718832617115563204945789081490131739997296565366179518679828713634287210726428638726528346183297994261130102356513566483363682786582954752458477535069688265247398738443010874126673031015501968960630286266900738173592368111628617173362250605969433597972083527035473097901098677601911228013347931586500604883110622034422764902102962606984230781120289745277456845995269053969693439692026500034560511038997256441277944881819165615047579277044501585750450772679894329928203045722863672857800444486591227642623621068934183901685895301108755061261066091902710449557994379023862048175635398360351028486900326688531415341501055940223529117315126330519250510202854949999405069079722828303785562633951558362206540082563428610009320831686420449458100943681063898418394959151417178875619189894159661038643243764568142941857838204594369905619835630399536661608885633072641443657606554224633346376980093466950451181217075824562814417167250130504248286294806371242943516271184735581552170120056722952243605375900560008763936499112722812921836406221151266549694530159039719324234405615045303281057970481068946285686422461697102692086863919107116396261348278833531819950645455105072777881189147752936590279296811170804796750689322684591460613828048598807014696205154780047356289026457251023561479314111223952798240154325752951286116305252507684846903757775827881886252761989959963844679883003335224497011679731175105214497238323045570144018771349694846940611346380889244769871615808543461936957718507378403279843534731456796243382253155929287107584548739212880810971343713958494476377106665195849486575819552411861488224580719802898910799119585328402539311770123125903762104389440711157962963288011874070389950144615600051882885133154409325953583211794940689260475090658597084732326325265279384584689402752277936277638261071335419396893698534771451467504781595452685942753250415300702542980956932957634584931374525436873830579902022946889986208308493629311470312901817157165653646230994658149797749330998502030480602088157106927747960390000643626882516835907928647347190439609622458189370949325610472023244978528779205779307234000335184354314390660783235819772127866206064672580181686635292584563689797721335405217601771464226772992421981517103875960144502776170543214775782843037273173870196145760602390542741296519406534970120792461564933875798590825390863235199074222196580477003455822260570188698424720514986424229647915407536958928263049304462144920060535034189598093463122665963257474032923316114819207173024319719873105683008875436651248821242884679417523179839555800488562668322011352682578371126284716627137557862762883989500427185703942089423407317932868165106023588181159460344457724694538583984329110952923214423214392730583165629455389860723792171745932045865131607888726775711057488877630708560742371481295703689016348094760386543483780404687007234419911812406317771633570940399707242678024905287049535198546937068010123404096511936369376627826441296022717594352602171166275300056084461186576624349512786050975156194047777684542899656678108107828397207771637593970173587103923560349147109100876852479439507620530526643184033577377042343160696355691678534030559488379285275096068923724592633374094393987390607981894042328616367614709486565960980900572571067266768499412740309846869644805582820989117406837964177035270061633473760758782450521693349810933834493150837890983414078299299046682059033635948833801939911348885457432244222478138789745292679328108627327736491139202414036723146180776473738211832227070042279839485067013874724193323126868638214616825097004157412828002457094776238070923794659915770263398352525386383039734566040694386456861441715583930305465147682646412460156721651340371088002166138553698458877841810144128377717478586432109288265451046876811756769926329185237753021633363316931489758227486189140708818678408399986074790393460932492846292616311077928572839308196845394740126120909081604115238484436785091452248539964787446834695866500494332308741565792618248294040595379146798775014644600492657342203814323713899359806768477450548717125345295033917785390406829361833379449247733398238331291756893105731858866934204752404491777758671701469245167419996172697178579528891872128254872045054300043853738908242683875704166950917749257017740935435038430090414374595874457135619545597908871720339759453625382439766079841290658307045943716346411613381329492238028025360307235004609700042458274958858923039069290411960023346780502427506948985327618778672867341289445233401868098946347757739007049085597762025790708824261956962644110672145073929905603336655961319006517838636321759474877781528722017770173324514308320334713662830223534478902932369468049584270868276157652349709943857986294867373971258817954557145562301238937984199949303447274550289714343716930420516294464724217279537749268754847942328443344137308488752502514333916207237880095095648406395090947914783683100983569599049500442218577033261808949639196195710063270132460553717447578931917351083524305139558394914009186459698498402516007607435075208939278472051339300743220425735860531939927669888584552609480453849258981952796715519311244477571356711183174812880590621577321026798166428594118217451845059980047441353704978628845049039887753732571859252809543550772275454890962867600356395407317999927493306901885973195308027526842188228089187751798091620153207854285533386610914163684372393732813595089856205522933019257315510486659532359234873389682630259691379237001791384691994954186465459921145190585358126605175571262502377318052152216333113438097610803789706420342534675300190928846379183834858921483291389650854006689719703808513492880879316370135601199656683502348974002697399294868206134049810732907855639255932342111738231474499328258101097473381664165615291101530642174115260471803436786617851544894269705508253617821780154191903078863015644359425038545405051481152001018856971370335305043766655571817750821423541492284296044352994184983111290158661233243830321197034942053978154815497125788054745138156418629001822057612075919686836725366848452364626043658910246881713926912199323945072578813853479445237128925896948345264818389585870480815602901121430480378313996419572286125434655542670351954716939438833056034506164654109956167436162392915397745114716115801072046176102541067679648885778329955827746004549271875923352686323667920338524977891940650457240821284783986587880499328677387608955402128064636573654639236177964075930544831199896651453765839985501352484595507876635754635537012348494067030822382360416892602890711340507948179946976982502905182322194631564716771893206640669930041144857064194064025385854891788623348333179587167176945726069170227420300677584897136054084051866198382230333506525885823897016878379947029482585623194220364406293403506086152615455349517574467869032008159594214294357182447958663547622532323365594029953783798466135183840900519921915425781719762294938009112903075524402791829454972131752124198246801264640312246367771182873151008559794412889147944439479249421439276244837239131441068894135372612403722054606954488773591042633875767719405333100704375167700909750064901107117765799414181771501925780266359197416915655277508699432487359044651685748309690872711395016449757860115899194380519780387907665179159976394052906136589753569712463823033626117514947847920775404842623397402131788158945567404225256792758453442282597461265334319685996655244180263895748714141831913790341145311199290421731862780800414177619558378292746327759607934688251222709333455308176456617525377158583075153803482303695993777289100038549129916677962195040529334795814354909733047001242429812914199937597961151695466517136502265904742547596863904686009230230804678815279706883268020909087918079224335165610451212233028752276862830820761077847834017625857097542577945187986521936998822892421115201941878145799310787650883896403268860674307875528273472593554434531899964267896620912570296805071620516863689976823411844523387909611757862953705836486835865447146349304381744975838767430780257956958669256351902146271331129756113517908678246350583052605791822045485939017950124798801530492771959971857388756104412895988897774304011121939470212295676227589727947971052262201371027433346845483441850305322485477189783381198158316359020000556422735221983484155308187021324296547419601350482065848389996556605061825919901047188516823190914661781148394987728339170093742483538085947428583600152976268665013486195074742340034899666892233850837542406808975250916728737670091301974064718859102688449834200218302031908936880184428169923901183818873415548008917552812527281442367203785190111287789809078709670037261204532743408171332131297600074575471163688353835457319218141774748413621019869063127004363148525099338515187397364266813777042662296286504792202779686832113375412571008542519666922225654789510388294779329879147766234485328846758062496939536469814509906594895305948798106284067850469968611207042255426660530240892703189177889462299470290682202017216545364550227222225397272654824668313333327011188536217989897568756162978163768612492094366669884204493478666863104478434615567961969694763117029674597591181551448724601756907482662421494844332215102120239198644119667871239068542476527834362502181173807945343474761187348747459403770491588145868856133579517016967144432965591008293463606345559322060833500799885266353100584348965399172167205110094671358828147951615722947788311158777262632317596553284489574203551985965193665044992584963817359581167153424864196299115394549144259614803059152811415121180780041992227066828230395096913886944770851716812554747188280383143413509172164243899785259908739541918815997834487585097977500156169333758190205167639202610372744830401550112528724692252644731437312351376566716134682244095068050534529243561880445286732231416193672209465139602844202788145054267401997280445955812788887821730118958496599689460559172880636273662605368560711047025943133361209804855071983531863223755384662145186245091181414435722001370600973140106477266570774571672793580979949096972706145331283620788710265935578974783487674099425901783463433096009905023663732681952419927671170718351199123937783470217098096841077179156032289741306410415048850229120506694893599370834659657128395084840625522593703054782255875158278487606741351842835967810733159371267062200075523578545618686156160110360520999892842446361954073180330148001096510303999139197627169008807944113197468914495971093917004991674266421099397689222561171536320339218913070103057088797983451857876333226920720812020894029957336376704676841619809580100787099409076139321400409546836938950554261628348397320516614403442903875216916574639176753354583940328486692366323377592091260969713414009655445532310180800311134350123552061710515250111427938909681311965264528320508527515943638783816840165217548371626313191542934529823100789583680095191838129838775909186549017957358623728752632618497718264312992281661016840244112980375438051639012467183949779176092856841651150647298819705569677775329174663852282068683812438265808494662178396415072063851723110300376144774774004751229541651512361202588020847560707548116676008609406716962568790427117996986433295682543785203892179418283018739674568798664535948567209628472387072576565542680459338972372341751299234598296057304824617654090104982461771591903836244347572673047057196487677242333989110900203450394935430440803498499383297757934335889256090112273437290072162721798670252499415003474995857201368901459231795359582304910611035125537286175696370437761382148761442791269943296947003098980120378913505495220416525427425028694922634290382736449818497041016532058472848287415434340743712989972172158455169263615000612728103956023907597420706900039668545594568308043924500820899455185790866329381093369293621891880367782523204256916567397499458247782421951056729780801895466561919685994254877230102908048346175105336148757046960059167857713038053054139096128336650776367023006345194794754657394520172513441388110116986442778106347024123677603680800047396245683424689610449481281611406419595242888753293949822563313008965491133431542129834270320967801432410009726482636609028629487055520296702183588257047315303353656907112330357112199721183858726722491887130132994762452807131309686749925958441482281584987472544022406654238266605381367569879193267383499041846012957404551399941591840091413540048019759558365365317606917265447885401464325737771386805057423415125336820445898247364067100560092365907153195853951765240946288170293368397816147233001733120100183894213315134353722296617184359315264191459946926603841347378159078449936809524309494219658454563545656362045663306529170984609841563756311507353900809858520649736342272866708036960123948923462401986623499044174360164068413867044229797341635434490063606042455588850470203594525621353373991434430250000318243183317928906727069549952804646602369794056579662835468175809713621588922176947010019461794434344668435981647159544802173326033105350369811123517257914542881641089685733973912559684197230202883365076062110887124778309576565206101013775371994138969002096151196717541433771349203528290751656658953161955765873775117129639956217752568113387366569722159244109104152362025104247066285958798873195599408673141862505592953368569109430068809207178463406409939699935281783592429457229182560011433274256687454220652278539808237662438523999102605541505422827252105276183616790499902820546524457351880098432646141187940333098030321555667398276148173893559770976125048758208963619395140820033844615579652631946985079283901976456905946017623910275113841826553177299559119030621310368323405808584991068199866607282893855006256066954875931469459858779107439515705317894427561481398427119158685855919539091110531413830734813345206925727014761769371586967646090782725874357134125813057679388386111232357560523850203244824593462031294100789578767404446051161486033199945566443135064929903413182959190014946391545074919365388437919671590848746484440168997216396514908124670119255346074513592441002063576075528148148116844718395666600463431120947173377903703872782952026449957200137002372592263701510250229080946930238554366147990132987110616155276002657022019823336541852713944532662636418728838305414597954598819407455360867131607555125423054053414723190339703861129938802760213426313930867584216125929382887838011752338063152371736902385269986857854700118388710935553336035920126768519261017099886387915037657425547146406241631565746396613178309177388144307941272226348964444232007797430547402926190631516168881114664144499885524603229269673280546590047808307433643867265099707158217422708376777246905204540747288502132027180304349998847549377853428287167682162077473853318507309616467627049567493661843365976135153612136802316063046290130628050161912246000277768179572250872895117178353424953179999115928162350591933494694755184504410490548809272877251492820774945798655560312034484791717990617945815670879184952401487596903817134889963881675850507993013158462268450929694704299202480028214437723207863212989309897908642972634268655894200539679524119242846592702833465908724544459470133001520035815490347918500341194341552511779322162518124171030208504299308900801661233758032975577787400461929872431008097150435631605480901218614938410321605919094990163265303303977195426416878390895386296621043259543240651834017441192350980352614989160051874213053551349960460970966229206525164242770331651609607581643243305289389516488117941798932011360230482470128771372382039788167151138316310627561767810745862851885887733167980865541120154982812660924992395954256585307049558222649247340608892137167431550917227649757285670915368390167204838328954990926476914938506353615710607593500504512296890940193777183734200166357736692934875745849390609802093077398582399511917429754149725317247634456121573696720648097968714895687402827809545613113543380198528279751150056680317550479514223899564485273598206278662536186679432700022332551178512614621337949463174355667523299648019854626932546251498097528811556298160839035967840754771465233005027585076683222243949881981325172689623143426461140363396975290833852458975382749613532858277233570874988053207500581967239315768245701368949617199425972458737067634038542171751496001813586555458193847756833206784044154781694770764628071874911449168399269387628537869876390215610684182201657789572852432301060906367582401966666393174479372462223106985289967819824217889621407815213459326440905322623743544420830679683588446967928369238216412769860162113575312116276653681457626887690435553199508925395215759651914602094181458345781390921087337154303858571823750284811029317253884994353656537972348802790543871284734490754794182837981327530415025563961935000522452888898541070268814416793777756065291214943306957388432130686420883626023680489716300662840717273782482784127690614711912498706544625657428557017845067797591733953703577795363671675724435318250214158631092334752244817508544903572032248613174788832302286300799886984772645106401352972685703955984921578770504771824073969995996987228941433979317586349503355815368861532216842630846561066424301608971587331478907882363999305264951400614368423441019469489120040495815551523337179499554028521128350791004984173036022089070920490697217259296856861915103467897433436701708264393716907228449871084778700180710151587540048223713276354323136975516837385686429867533341657007927229754442681317637634252462061476329155636118599739717621206639188605926875957944691735813250407602592506779052599527486014274879981943583878266298936661149011384978236211410541760761489673213864391037987401755107023045186815770423540657538915985699354126910605686161466155778232969686155269341286956189572471779646516852738249105941055886620560739592735501556128449401791300408124668027922596834438820803300153011920792356921924818457621408281860970228235652512044229584968277886313596190444740678920499811640008067133100470208923748172767066991330910485105682422130595472420668368022903585103855376803140119311061056321560464173611544886590572688211992379942632516368114079957573515891820480466852894920549585565228709344103241279140882445794492713368240873785552832226959256572280464572562637969270338313188142610552198607245560701026673690292474554082396091463257383029515109786567420455530581576782893886689787442497668432070595215704040913670217594954196502245418369247629552885988226769684021532461380920308794187124029080944282513635222509289235566160045493247359479674841361955036113039237648158164605448125268363591939078217406853394751349766470873595046125191465558425644581149588683349697842469697102888905287502419509024183957963302427222814366327733388618801656342408885819101752096715623172577387800939726210572752733321110939606199931665568735969071169669526954729891813296251708007248513254121737521268231568690955629425301446966840145783487709603009042668439030510154414382722642864025260884241180697824366796980164120881568906648669746133024219931038759954890811599471981504213803326991024304470491470623262388030481298987859793349594892068103182705427077144208552628651295715882955608643147189137637922853571385173427348104855795969244017657406656738945172417423485152173573104728326066064954611864215205158018984169513291380281317482969091361895371746147703211144558237269500862563255037489189549075430381712489689086307756738375759853157858886302658620138676643125222997001975063080025421135678466990559819642760934842277354116559136666648601548018680061914347771479322274434525096913196360470648378808789227060721586630108193666004338865157861163553391830495272167868738628739830904105367912356630665380429484436285903677283691032906419272673412218217921874117754562870291938722963564341891765632141734773839294500958368583380206590351706913094844739175091372589519850266318403875109402754544634508988391008418893462445300241073136155158582234909128746026330353114467164807576185913205757111394605170516335444358809576714649417278104174534194130367164482624122369349052469073231997958463854306929527032376254564527878953382828877917632208232390134238949567117473617074430625661596294507867288513526122102808912463682622806982565712477429126028720488012245894107680610261986533757203613025205547849095893198761818085448560324150738899560160882283315464637225269496147860437652139013394937171609762201052764158137720244246568658568295170473223303285532741356933546974901339340823177103889664044714543349266892654722994303549565598852037531605587039488010298626726428172695254950441287750922526197677840932718015099641574164780589962609138650772503911360871666585183339786797040297603278429531183724062717316368264182940288988040831426889049930588958659942203333437495370320619008853252674139204649088810629382259255162988196038334895279895063155146122663075888972335208218225117997669851065067784909327132504560359626581958930216559720559653609960898132236092630485033690037027924640680674775281143181627449625843347700329851258450433302793768545188634555401110031733178397639787318660287086477743070059472172510642432539459615669584792203859668286200448990177875425252430303758472223932676853515579424302272819999089428877239130645232891945374541059212567705842079899046940397005966673967178137704065041240719357006438483151915947246098631572300524503475414371223566651412278298186973802738952387811782833309040250795356167941474341945574149352075135651437764285048622054896059004112458345280808722408247243516596566081762532486457491096278424633176310173812540641842624970408941396557630906497257287668427258764597266285037438370683722034826029421584606247144576100129174472560437635826178701330432425586112356922180077538896755740904060639251075609031812186382823598072419298368119424375965742431228302916248096162785935015960279942302790829045719411557838850636423038325223550640566862782625692281166127646339691749425514538946037104396796197512395432940095240464352765102751704119050004678892446615731462526587131921627305939961639235224569741514789767055618788914232204202314645404723117434753197870389651657362589553342618493337114626766987524558682681768138706723441773991817316267444549522539839445854512560237062799113173423305252863144305898217255891080210831359551135580824837976332559033993990735250230317301884474867044288200516345706294138391170735172158683126981698154890893320407665956528990970756817994843141192332571477305013017854204296006438125518605399393701263990199940794736132401082200463148171694258229895835044170187937639036347534745472494871247618682495711129628284534285495520635617670510415181874066755164456534508746505020369390565279089991688206289010691187147511592731103148357405459208009692265119205000297957141187659470296549272861975936224858073843355968439327000083459150837887841861516148188501938134363942114441730019428094891555863032285359112304717333615135899415447308539497413223997304815193843483918958625377325673824523014504461867755014794554428309241113679062608637244325604804923955532004146594334376162495358847454953157292096984038958075957406140684925160139300219815275540972963783880076312360357005860003189260060311436383183300343032447242795732345980684759870093911686255575031788158915388874664203667994315149896997074756626942038503819199992923413671462575129483647925719498334276716736282493528690709803133693821340065288454747476120126135652007724260583268647134215283283854530189440578190647724724953068484525013924799198658103702838862721372530585110340837836589089572612623806388195673806627325265176337307461595538262722543131956053260714336091122986738466140869281203301273066392342736929729986688470887349247177894704044646768094881066222996716459319715982653131309775778319595670495805723837568795311451034512662005335568412979745578293805289212764930166931021242327435969750078908247953541679547333660435462854122322550481929405494073318505545425858298200113675736745035636455535827576494005244868521468537069555897489404418711570559000370106026607679496694193543616516045370284303005307209535911864443827017422154944986807036978816313622492944769073621019621648619996127386636498978817056557152203380243801180315804670167490912020078557558813542547049762297087463315492690658258597945198155796982235627854283043470805069368402259963398814947278926469820051054809198295197505191634722732296357464917594903702071906002309289983876548406473489365123534988137652670213843496833426246905444070952994210860081178189879709387649952039435605883780631280978004912896034832218880619642648263671141424602226181561584322814821307098580960551903458576783436316827821437799225808319972062517469704609070588340103776650089407138820323566616828004758507019052112202492377940179356438308347382208729957245552804141360390233088655687358423580404739037727599454443743725332515547514554735215554677603885149416962378306516622854735542013909639282867910721940118518908498213910355522198288161334318372207914282720682452496899272317281344734062851134987412478775908697922974078460191594755442109488486824471783486928382693124476423045468846674601863100561771579266519473732029085177967590231655640947214208955710407477911615499100670572427037298181545698737496321317196981514052929929645281562781474360780043614700087474785984520052864798417164940313818928943228646689060132964691228359217638493155591557488818618613635822480377652466462775624746448559853591692079168704550731476605961434125519734461362221647602201046446075686597031572327094459952712915734072665968654184259732949626615368704742758964490400606382514529665957323509447645310208669404888713312706288718754814423168356615622170106308598094938322895640738157975303410992630727101835890402786823344906999948619546110147542862032243910540398029786012875396497764887266978031170055068002851018589969740428214492349277321518646800754468637818933409554651668042133949802028255156830282927267383932616522786299404400330770939631721837926951153978944095117846496893932716413581838608270321898005269221427272610276198270743431523765114899745875104924473657078615069050341911916732486044399986678454252479445706654918654674625609867637649945400897452163009771324540349464013083115379830745096234005340363555386046743467001887163854158323674847344909615982980284551066660148613665779323586442292393144126638438002963940427545256225052680260412133020673139530426438499428522893478304819532616699575285974053662011968906108026668488970953873590880914560525316810222054716834252567164477617412018045209729159727459674203274525677212059456563521771266034622486263076464811207619008710087000049528423562357715402929653433488201145898580555750213085270673042531802250281916476212486841658412703740509350447189758463434572536445702351569029471610631611912795236483554193089808726976393592639676188100849782434353808624832420731230194385711906656705324949606058725490614393022002487758687935633069039026166922381809606509996018419427843816773537771081408404596080668271726128400882192042509638092666067739553394826441141545220717237722627872828820843567523728126459401251103463697340255183189181723241756571635132212175432992257447900865738835573831342174793393967368348613632118037907738228076485843731638016431941198183280017971054391628873504261790995048143259345635191391738330414915146382597649428436605090493198032602328142170601004673728156373010973656994265961566740009783371915483311826426287532638183849953375312953642983777044125996952770872630087564061365190918081278895715613003118674117207995622852281389494913293147776012712026790775023233786105257905712963702693544716099387688510458862111757081700897039721697490607830729057127880796706681101022626226204278459924198950888269980346989263033365309857092655486342380270898645214468875175772898025169633184483708880555121758697347315671101272570360010147311121442645831961417548169821269576091586315798383338288540148866357968385492079647133509653079569277512610939467311265611336538696381631797880525887703231701503136684753962778695648145568145913047972158847279748012943092538310473646115683232151060504148683659747608533110656530533354460103481417386654852856277697647361604189742493836004760678373064951860606069507035537594446606648665658151221125877340107598873922740203300320090388619971041029411239936315991524136916659051100955227334791767214573602288353179839143508978627539611565681910436095040507772163361848098934008572312651536384692266521436187274599763205884368276141218849109809271939921748617231735026394772687193796157446377608877706069940596249852509648660736366210575260456281866135242401829161431306407888260688389816266146084465838286102247501441601343056220826405021964051298659878449108656358828228798405156522180264648664700642370622786123559473586458416585005367052389076273720252155036088736573828650773189300816014511782744810677368846498628580732274220798937689265952737970030901497090547983349735650968316802582970493859197263109196363496337414768239737165241262786512288095433935151676568189108154017312661518049952680481227967210025334949509944875115121726489772531438069919292822173414521251083910518976413903211293428230781762161102489230982593663809767144353099143675992044634597776293732789523606162172356904412810186467426542079572883167451845725205286055808820900508694171492653399596473269500984145812781156749114180586026078309168453987972512701005361111039849255981994396670699344094128384574710701682188667530921756736024601978492097686357544764512068802725013098718082143692479875218232170432621837347808249071361927510842410954220350306060485213649175395957943531120039744050638699182066353444573420739917689553304588284562586642419945492972034917492191543544828934516644894159032192607110072293410262225146190994475872228046600841602912541662825198719020571603986012958421749166823094226153950808987431046014763198434411988039114204314795288534154434551687487435580121681999182813792435635838957411343967269593116324290406837109391552079066622384794002784845250496355747235397157707138040914490492195281935820085460423918212032820137146446270560518835301172808541866145350950270528646728301144511468703623481762174841479394578771110316568236781045021585510222325180057667496185857769661542731221480785481220745833709385377701901672964042236199227240730626130096029948209605010948608170526737549038247134349683979126606983516634502058618687971090648532564633275560752200721729369850034764629621135646916087680182497269968458077814380139403831059387110967150493775306436417566464114856132700863336300898841476049910726375001135624228216862096472265909354372505162930860044257239537544692030192663555752037302568425771929639505565157318742059199770745371946905470213450650589182210338552657306303876071265751139245603357049838769133376831815206387956003226016800109409018622538054603897851226672623248288226468818555563247345450715199108221160754332419512560396735285396794667708279110376697517764560916988948254728800890973715170005858520178497427425899900933781662905160861016097137283238890895348808317371781234554523431730815537057716859686474112852896333168668012704569149650252037896379228537308776479336775563935142642104905624370721894033786264385411376863871836057818226845423112867307793327776976082840284166273457692018394638075903161469986194669428364593264359063785985052708559048941741888439661445372049647432993555166581732340538723747515727663677475754463481490237220557290717277362069351146016210850490341409403137069109011903556746375061448066283561681778849550897634524484503540569422878349735058914489760505143369131852835689551484360403366393813607891135122071077176012683672144092928431443848310891046524178187447333915366532398256246761461518585997436790346912322236708437725749630051707408677317265040209650197393874993986420391512490169697049425809259786655341580438385096938905858737295053998749136496164620541054330692673828595076637751645777209824020217674247598894955370071923696216406992045228567488507907539875831208363840685000535574411482460611064138927595912879187124276496527261013139665927124230335976550947903268500969914173067157452636024574035412973935366839491146194164761542002518802692252043494990235784616441238884391602625693354315087236114935883756467925544487455656515836323657918724993370917082149048647539107535518356393065258601797199236126000382440616112818719866788098689946164731247173077073413054782462868079809467359650998234901013093327424234401307296825905120812401219223486839152112488306319842122146820832873934540404821226639272719562590155194457363158339035427090824159710503593385385119409079427168618625651267260462950012672451411893965292904913592744688480377990326620922545591066298481819196848395343097236116638114147971544172453756012909325638374179096059864209194610829167448452298229293180482793214949998566683950729895695615897857571252754570908346479360438834404406574904173689295295278077862726469462966862635431524326178861204288005354776874463871998189134215936836856366076523235326186593004421142358194726878679521320401195801840335404904622078698104122641530018041448241797289665337319320120999815494967510914028897001823092049559238737592105499267612023091165420918621283396613521889471034559286367108301344124086842045800324337050205435451267802356149892000091950289571023752811399801491326215616146394129280547952137026834450925032724710085136699962829271077441110711300296019286027448206639212151178549991397214232078171414893639237301217473106384343632751492831973159599408732530887734055048906140015015711571720593810343460752994065378468761229649791348655118979724242615549395096550060992022119800235108454682577097553782620010064314790371655507094350953989607762067422323382901825674621263934796231512809907199336098654395177817927388443468982250638994688845899474086326856663419917978727102682279429106716908261062678640911723956509919793070152422509829891460355667476984302055718911586292691900624916932048182141937665699908622389532380826371396643037024573134687285502928340733132345325062122230885443699221101370091291588188620449145335262434097212745484340449576733003228946070705638337311649722260472545883883551230947061737261730327312175775336431761741783321466423738962575239835844505831673936258602079770560223576245090809401508560164315670186993720491571721890289723020149834571302104444550872022115181739239390446483712356008632241092899327520467557157147148821924223105514769786105250556035401038386048640760191224284560067386110477419862162220705829709231264978932856096105867077697573123098457152911802643184547453016920276414301923841374129724163630979427464967493878593151038391315260642958928996473668227840386133600530271501039988439884967312044401224494104821317729643814239981898767215165283472081724346946207586405107502822825050183300714378442739400688186809331889871884352334064202112989085155832500747477936603388229109088485602694736124217252604739815480647221611830677734105534207906637663889834063528495405929366259939680403655466572205016452264619065701642261526395199064394488745932101309044762458119460900682260720358520970518325832468845990100151316227824973406292880171746599339528791352466747342717748467988124736486887544014568454553701497322409597198503101815565795068973744248005799402106361002941501920679395795420831845975686993275371125080586351699751026425918641896071161594096345128509950684655672624781783226855630568095299489078166338679579714467921895654398204843234422023803501608287039921070936641402639435470971550518330303451538303612645404759926045691788413962974728610966928337450591028098914362473325894378075224292263046982744668698631248010741466781881577204546370527401955644420136072669100819362823075690833981266136871798152663781531265904957356156074783276186506737051127465002721284422251404217483587873457266793980023236998246200851589860478183647295257166134367139895122073962616376705969275663400267034974581399297555684644171294562535460566121811312292210327392108335292781635429805186324630305010133790728318798944208440943428157976553136607032956264987596566744605691012220757369860544104125324612687180939779233561688251578946447825262297697498421361988337122785245074305480219715355219482258904066750561673038115855499816938133126251210677614225261748485096425650593847904357317909068613427754844866404562060116901325089106564436841555416792164008715485987761361584021377232905909253919883082745074010846355635682258743758928137536734762104652797612592475880025326760030798800090222167723009207494792973872973760575814389518236737928723689777060594678576243225634984935537894333132222832430923022382295126129822904507181923347385099348928431701344419960626849111618457824615824494170526900150730568987256263796616578125703659195543594072658182725896102004786410844656354069646848734453103924393658119773267457725788391067603822028587543550195419938732551222639898808138630001464096489164165613878842899213433549644658962107677246571146665755118841288616643587497082047697637262861444397493380223540161478095649395480194349430956108256321916693077656575532024556255419198141566431098909549297877937152376547374125908802067489986045433767825937237764386594443910922330531534840777320461885316228006059112796966202694201809569978361173227342896630619126157849221282423711855789474643375390966011828335084089293925899411958472937011037974853945365435976461659289226016731952955774949544383423779079031261227956306432999878589588490778120318890940874410553594807054832703936420157689984578807036432130786612487060698068490076701767542512152440701850795900332002488895846202368637860522466618649619407805542227522075524980559840169100228261965942177779800014316326628181573169390464739527530736131171506713679983723336778048794240051988275660638023600193601944733676870688927771000355984583776749335799100308338347160599010232991486516986983723515032053754255010932562699410889712935576951726354208445504735491334786028894353806986857097639716775982574753776101328713696659473909267676700198860642316710182738167576762495413916743654140679847619642633987233903810398497242376422741380288190019723187935035035449569670366999001279645113551515721847541659215732272858890641045009562577525718537226702957286144775209263405385103455817641081653253002585837508749208638867951095570508785651132220753350251310172590075887166206257443280219808452537911329891946164544452423996324329450615308534620455219581922151216611768858113794305474958894570917873417865954153189387713083357900100385366363054895553767176447100140019205805724406062175839500882225312072847074226515090959521882229391792028630002849876710416325242112490586638243205599148314368837754404429429717292018180182129132729940359688186192455260625442064806261460200390036223788644083616457740691693794275786987036179811711823630408458748802801661308789961285710146646797202772512636813378056151364698624038539269147498414210119670128381981720705740117102752965365352864352133421572341967627919121854454452133263115826999881672040154650668659704855424804939555313007770833554093602602775277499707761972436836823341862252639117861464738459741899501188074037514790128304455330724221970016800347686678038151897612279718843894390787495221516034035913739944399611342928057129112584836240508842824187786629165362196911200567151288791340198770441698323442062043296570360702403624255955635544384908261271682003076979753743713826169667350606676483881801107260650593082650068361887072213088310322230092663428856869363337894468586881907426918384903640864664558249664741174688064446063809994679105780469923621036932234289263025977518787701778120665011346446967568441404648481939421822668236847411979652642222033061123062478465988339742771174152781821637046080436078828869980044195215805860625444587769398334198661101007598507919702289873892298160632931448562510017273690130178834587309180606811845498853199585745086703177053671080372911487740374507930965953860424132646644359778745569471809286435574754904380565900159451894965366363788725758997611596308898381126346312679883361212687492503076594429999786199588258737225600116760502935794513033818241694222880505120047644259182485684965401337051359586984283310742372609043415979632514162648983288533640658283049894525448622096628097378089814378930677127247433924071747664081407478514478933948098078185292836288731282993870940673594700008578484496186498604173901600543120777723072346132696637687046145233299543460959190476127764858638322986445935520173420303717454584920263363545042254832722737440158383523649303110684806365635082317938820609533915916565023212963594113072281012124069575176838587715000175607002410466426505656770198466715520284994367297240962678016027056351408002247000541682270566922527295992796818212004970116903462615723216565454044661420644487024500824674523402849929869155661896845235586704971753357534578345356244129619031220029349433850544035680226060494984680412558797303819654031882252791110480592460197476524949680639759950888216766022588898680863806643920061638498177052703224864615819508373962890466213490647564900029780272027427589290268652107614160088569845322136768467011770744655163231219417168335234484093092298839663621164275176049308938506693013207282682223819659300672334809667410853074527592008721789532349254806042193970927203974412159279396625064078288857140021083736255395714533714631582064872359565498765881033255846642062593597264033492378269789133642998724735101038437640246454689049096355959010319212816054470309022391630593895640462359977589772298207821111599920088943727201008261724034382722254563526645796493511986346825768460936541972550864550474394529653599028060723633191558453309465646318392900010074074378513549732524051278901494786947279895009278192594974608777958886950041762201036404245009642360042827393400564534038915634537184306100581454130728196398442094244413307915272808987288291598030370877717396565903569253816001673422665851074948114640145630965039687358136514909583661182698516314534850293843123636845551552503599240966726805848344053065590924370452424295671893576588340280796505261867800054154080245001188974285524621087661272047040572193417907212636316855727404609408247215805434523542866063630433464795028570535774132503674097202382940312780123496351568876777387248599140835284277910639068370502705181209456527393025181081485201921261060699616398137458337966782131501521824454250864181599661257511414059324254098566021221282601556707419084871440073139555053985592530849114806498729169090227122639261984488255791623814276344646200683275307827495501015069711812677493042319094187758470799215948139804072134926748192698987867389289452948453358109960436199485498960191722400865613944731039937780884275118502327976161776567659437029687025451713428215485128297505267180120808986043789473306061062732812518356649072731942198247644882469848890668608743348642290186736661811313623401130194517085351053579720854586362694749825576093612677468079568449312444436946016162474312015819407700501899441642625362783374540372493367809282850287862588534223462498326711003299982426405438427039001073432920215767474909285149627176415273881096485046898129674498821213272884594606951958982493438202054436729403490825859598471038012070110622037306591195833141193182759731340465863060172697772782010075802310630740368429829676992145830821150716908293219537849265536969062138771728593768150363265377725754951000970055218172563030089282526186124495858622441796298193388536530513487994699594969435362459077043731534957157149997150580065626823489327644432397088207307104219801453726245275429391583097649745869264808189851932144023838864994045744789649424467463127651359758967676811718447593188059492999035890808294763444807169495510929805977664551943010157866151683159145033623745520467927023841276584234967957670991836495474447961100466422901238699347190462636250455105903923289003869152444136310979548667923292280481568155807310206660362986877440737263114184563063175779106456566599865498781252265266871675015230213928981706205961150074081980893531655004798816330341937149130762870615523744188777671021731219057300508538125951152328609837246249472256830196531231199488497377969731655122667117513470852595196352135473923147507435313346153529253034835444144631391945293097598781461518032337689501916205048023547991748463367009033139423182388107272362419859056415856859136503034538195101163908106291972553571131900854053086187610252490015705907804990714068292705646939266039734216377680196605746900463167230686486745754004808474622073610747386821922301970445902651429558665220687273950993114649763557034446622694466264599340330711158768969282339325161443722878690934722533792485090531463592684757822462184231315714385952531172779088606832004817008486752558072204821662566093349153081038579371043267493293561172546781313088244761061950357856671833575432160760829576841550259368900928278012476363965251551335450988035147375539222665451311156488658641383062977509798580351033691788877666169398387126155962522905358998997041714791866032268377713385204938785746329010589714745242944030819910855732670738512784739463169218914359526390964008838461218328450308861560538067026132046095115943600532307339182786975698927494152099253361556650205250887117754027891851225854350422139046438262798933317830162048024151035008851955697640714566320453263866232792771631426536083596298691300834756460822479229682402376524249610884060506267518770317276299894691866675695055019100187918860487018291916731621873290494880394208334659584558443857249308967360451140179372597308576988890571913117136301894608078102803524964800361333621815263364532383256294959218718262877412470786078929556000471938073165259847694020455156509946501334166426124271035393063340618018753889957286456610872429548271671825403125841486673109516387806936519073261182831106962505627816139655188133585636158629524276578171145942739839075441855623726616302943521682071774664815888024355085484007038743598690133864551736968134111053125979609958456844489539464035479785721204994959245348362000810225037222149921317955323470219432146150246441030016739992240243043200260553775794886573372925567006163823380079633461310744153118700192866875502257943210296494913942830931893028332508950059760374032761466292437811911643934187214232987218889828869289122719991200528475338310009724809509898611399403990514940065869254742461513136812202856630882842727311563229951276090521598585127405759591323560364658423635757543426378929271434182342070715342731748195801035718333877564615840634338862570131131740853427792590939382431235759178104861586558261908603691137759009130863009808087573991500461356518558370064308101159469554433257927683647566200434090470547023800664641528681540720944932338227275279408426445976290650207634185900655300041758259313990385643264388373336687632627455525234200701414995706659454858141693420705659631371328183113169651972535193676877347769399852803453206864147711015184243861271753455362165937001616128427368973385305532368280253230831841464450134557399833232402036504085469851120484250736473234911156327418809638907426127070294043724288736822630754947055914915775658200298558475143858994332299742748453609558554950363474223425807656571447282535788575010427589829676409767437955256536885279956986898890722978669983780308578108971720281152293679477209358746623476662745149408559036848262202188858539844449931231623871483354273664065992559668562920938286616367517852193134861067307288745682678786887271910700719759574479030361468834003730109222871749663309084727050055860418456842608035370195125576567583322577987214012670050239780183281115742816941594779508857697232868234359694273859031664131428323634699069175407442579271374958137995269914402608852371788271615703384432215746198422581343499188554892928699876968408571040649238936528832380872825687174926973887541125472789324546012239149429548842518573144392275430754654214344583305683472827164237193605048586095208197659913617250128231546128880099318363964138855377274463186571221089798991061306178042024962651398350067561484273379329531357389652013922496064883021794650569799548803846601812039545626831414346667856807981521425081535681895975863412103276545472688476976871747705994137308595461300850313346824534501325123257779237943553905193503426469731257881447326774859266921074499293598370855915492067966091014501937263472987338840022758192074698738085806348162378183444874051323835904302658669167863451155138890489486271865719444153493449172685476831753431552039872609936981674329208094483375886732794400059092543869207560004073991584889637845241341531127832577176508085773333468930103366197189685958713408751341080349000174782658786105338686816574719693358819905415995627936414589681827302759388053133282791254296857534064467799803222496757819737833297837537101944830690806633672825113459080656772433130820757590819715257053205191296655875588307033324478020184898580451571308272640352846407568242297341921564329025690964057431674443661594954221315374106438188214817121524176856100316960625056385165698406916923120844997993505700851669190443889973502062023399207574501740358239808770217111565078900494617722518540338729847885946092641717591993478582800425225439491144668522557666287660425391311735409957496001325043064746189261617036723193739948027862641044853675231674896712115776161581559060541857986044649075022659111045701271463871248052336457380829821718451364348298599963247612969767499872928076309814635545584935906456207477515572473720065400847468558180282487536227577229792856602834026831878045570555556203852843439253555475721839846778439888280633391334790657115869951649638586180339481663435180737059463816200841844738905074325231783026855601373558237767474484271055556140504869356695138446757733922649751166046217864424865807296049002922909064607077103091602239448292549333576814691738225240942823947776831966256099962122830562953797613773572465105553984636667801922008821943848884227459568445938526359589131998419154762787766130370584551779092412174311458697444717217977476096394728122498341401988449510543899071612831223447347065677299991227722591227950458960159619985687282107415736271522934250315702750651616257281142708305235755349016029101205745042574781850991642870749336535882913610371895426036612071102931556173174010229558843645569513927490751504933136505301197110203724142287747088008776592824284508645032617336597121638103688652064284012014563584140781353098944500261554576049746533273213011128185990800257947761016982781100069587903581233466825658238138035005613196431036716412636401558446433821878675192798100173440944618598210095876166871328663114143687459831464523174888542184430676951076694851062020165259763955475352709321384726186060603845252541093125608823902205485015030412181592787928108044583778699188002739241787449453557756601752711762057547169054598358707971660888736091518479292702895065055162562216850118436125758416226164025345441721199714260365702814169881392402210767164217512669783588189519685076300552897344447925416332361104942733561413227317578291524566968781212077370189192518440337089734685809665424640291002294659854839682922683285818140553026343363131534788883422029371580929912266810735380213167250704144706122884896239074930657112583637505395299081783222596267309113266490601086601777189092157108477577287516075758534053685549126751260799829961224219806132888940911042370321601233745201547530797001383682662499066771677297286552047718805006879464899622041847537125616055216535114325744371551961316839021220302200248994480223090310187516613884888332236249197016755315937321236284448055297410293965654632038141581596203098458202279221120130270552182202282155467423959759276763302845839325962870261381652914425206164501523599789197913824347502226752350114340698699102208365197365360563528543565774578779967828919679373467052353821054672080925445355440728182382646047818227163626471698199707473209323219983964544843679402166112995417187298564469177553139643041267269757959144126796093494953120090691323973312952850326448496407847478838275823008187335142414101430168383758507388940671728664102190812948166051686118868312494055162504748274481090699398185510168099247368189420184503267956893068545532013244100666773029464222175614278605722317180185517655333024409295728038291073174982680316749872054532680139623392452411904988750919253582087294701940892578985242374801349318834127638834194996950798366720017200615627989339297860531238840444235127802802122132068916503108297185842316717382646590730374232435414376215503520426514870556005752028023563061232308399909152467632319420847092949497462727140886723373969317247984804186730143425403790074297994466245765587040487259038247753460991280042019568911452751391260606375024024322108230927607543258691700068692026387870197310786033208301066618290209725322032963898388892065134567335692176184028636646197633821668800115314261032862430484470931808882718573569195532117409410263350189709589186134484811806345695000445551339750691358651524803896119566670902853459922709184568586898789776854066172117429928070327720516348725270867828115569121054264265335743972563778141051049978334508942629492028247553394059619489445320149799570331800995714104323577084798319674080291012529567304800514924729031433612496178191160656154505706904514685149637505017053778782105420736975230526633802274272809858062106561432463437855307226421539567033443446319086839748028474732594229326189262022819995305229806130818471745217993781108110791075089553506065299755884995821229516753384675066041882858800686713300261358325418496543549514490753091528652584085551689775950709624744712399875818204930638403108783120559309813942994293733593552746761817162260124986870966700655927299363069755000211708831846992391359072625984532744175688462166169318534816669426459123548740028873455697661731638772941475209630110592461387398574777500738747583142111931828974146225094032753778489501873580157147645142670352577149881121603728599931846614719740832527211262422730650450550276546277382034860009779424040753377739332059068327236433524273935814387417541527283655523003475292140232513593618979217078491135888451986991478926343326040038948427183393739064014052565409656490497086664005951211316500757218473285093212023933850256163439661227324997226306074169825793370275432531181026153288898152139207198743003914586364906625729827922439740274070576855080456802734042828836980536698902658775506634509017312787035291100124599916612355632733449041180157498726829955304208068232370951100759749890235117438166524067605413887441680310623578297743891534272151414503327605171837938556858433739174585438064574339090956347966153946181845200315597698974857129973744425753568989776359656854645135271770965782490566308930798077084026491670846725203764176413780189320473949899058505946921637379144316082512711135599762004566135029227755515642177852619927859036293260899719806603598196494034920880367021945093528379148491874541959419970149081526829079351809814997279605777742093798293755365534396573056303751063776805939887951909474258019212126015970090864656949247062462970805673508553994015723337877738530400676415753672963991106359553843992167476962604314765636588913651847497616593765581572971986592541220738833772377211711539565221704408382930652327996021067423836866261459018981427825508806873308601224394687280380477847500885510239713881268276988265070787602369762177980243595928806376039835852849570522792163568943136229157852603216219359296225750885827958594229149296293845306393170177195142297919249046979625981461136702965395511997496917790674323639002383440747401008021847859030890669575326656058639410819987737277063464457792241266109952968433259278498382668809720549965685873284798380103590122289663596927265095314864613743940436752761765315557750870916861041900073999098993216047174837454036858727578607629352599413067807404894059777198685006128117706580715991474964177646544683724724561476767274562838257005709119903585970420658730843188047522346152743545587759256101940935714702739464279445057304630414393738182723661853761658392425742848090039244750982550842968437627249506395005903418863435241972830213794387814041023897228749994702984722038198478352181548889018872653930168633993281342792546616352672700266855883358787046311362761804953326176475979720155232299126442905465631113148223316358332922690341255822514820117212272042335784306889843105938385187938426873178402345367051551713620374965994173431607110166014826129586026120118085070732282767908695091164258668095016086315151381967924784130825207806827174775557367335587831346556673346768252639664039661702347579871151208690039981518657272634183774708216524709554914396964187501426684694118074866602666003058888244333567595708092552357066680432931850664558491284857574088032946189027941132995923757127479352895372455439646856489491642206276013702031901596076861920897095956988811832115778236709606745228292015437326443100061556698647985969825710710325948165318350791152147203120424692040224338343695288944012317302861903526014304872952562998828959984587128151714628510986750850952480681248373599491302734631527866573135772261974617876386270193037240545125827410967769424732600239722981155885705464287596571392590746750276767682588325580094248903604093405463061062763958282685267684191729673718126231302205715420811001303180548739458985251587169560087923268787032182360429800273276986968299230017087669640236401734142615631229907009607046061175646282644487236094956261671640941874638428926706936111721685374644684725556647799777427012371696241163093525031799949507191885994317553635792411051925617765900099338166778900229029579711016935229543395178414450359941394824057598406055752477928659916411474889162509980295938263593705182490066770609334093997377053267865824871778726977688265760833608941997537847115089164144590895983999430188240671520120046472321285673459832444277869978287267408801936555848795466689845538246806791644708739202487930037394857295858610201683410083363644807829983257699136367412358837732785969412694553064546107439378460886786357369240477010335530342555761667279424832686734463552110987468962786409556461100204444077876368890000911738605126347606917536278000366437809518848670297436779089297679501678115614664251209196460501714209265608966856575041005075824735684281186927400221569524482630049913128325803006877071422069482269306132478813655342699215700471054957582905660248128792925349579347640036132675257978489946202089441647654645484465014131753550472284237252031987005581357949987164772909823313144867086102570600355809999441000570444755828787630316655609029452276435828283538899197693377688961690020742837611340711467044197550696558284379111373872931411733738256265466752887538082040418970884783730029946326561335370774333627548983257336388405422666374653873647261545595970815908598909380671374330156983160869870579614021805584034036571427115897281010501514793789361340649155987390626049957519469038109205529464029461703339801958638240890910633602400254859471752216141761588433297187216165954182846576169090929707036923434802869599516383972695232604660458434468859066722023818585475422623085230177331402550778354974857945209707262359405837861144735045024511213175529406503442417348221027246582401963187599332167256036328115867167606613715041921392241475461984810646114768083300706004170449179511473352670419425997007221948046684154479290609078398227690352227524934310115255379737869700734217479441242238700030726670532621645620868053779398479039870799262051411613270982840825045724443250904247075865614733737482560334692000048158346404450388512285135818705813257271140290002267360784641827250704394927357795252495847986088589513324581034220598304412879771765990048199149984658931959863966344890944472057829438283239505224925569516757175824580111974990944416775441694800890209732659218732271245897193407240794924172546580366219662776808628798023150247821864024779121518271992725733029554575258043904909379729480942119035018511646368143263585966273882937860077524774132505607168820553886812334929657745026852446469851948403298620739089245324483465541775560124388892279566673756919101257874872602696254891052058359036621286273291630539681856876081446228670137344269635502943347693304410608172475045593360823184258785298557717930411224402142045860897932955842046770910641092774016649151409554845611348704566403864502114064978065524575015050703299817077806222790968577397510657026694039318539428429940722352044011875590045047935473693658584880463520957166661435269719924109123654876339675697939955205065493967681868005688742768750684063906878354669706359356780909812873788874619494341815942370031534360949796916109128608530584831994170605116340910461778343955157120453795388791163253861263934256894263891121778847003413407510413898726361561609137313125031623041520840852186695963398222647178498689618039128106639514966272035885048966224282482279949060717828092845119466048165038880895412392555731102422403611112798005196272294660921950237073973202217423641942603475515160550658960157650945613185253795809237744581995842030595178001377858866994775337468476853998089618891450239216312569780017107446592499757009257828559109337921522606126892664203824585229096756160274062511448836369928869567492553193080977688896697116107417650617710756873509363178529832333504846117769940539427236593439272460309752376059546639096013827837247977082193163616546520606551109667252959415792575250727393474544439967454884294609064701633523471549960462334298428260619076216873599616311418257377436582371596308517399096116188847446024038425267941762462083427753066768972566888141021754433302864131524287661655170523783468892516471989681283022146284689524742880591187765329525575110879856548626234279980139894835291901778077868150397897726784573039071517837875720756479196418864595439017311408951848133114531623695326402846416860818354568531828701201464859340705240260997722255428262433145559035179900650053760683758890186742396313331684478493934117492537510893214526776809171995817538941868050492974885381867919628138275416105783914894805012282172926995227957495742162525005163822573185738170191288264769738363459135257089278377510750864600241499771373203772329954662117032102208630139125226642112987766548999161305271478059098250263963111821259982335556621849181113261641503101972029592754445382296755884387995718704452874955991369153609122820385725863158150847227707793527244438552144236820875519248089134717928991631169965151969239585329039562718251159261239885488494551822596641271256146423456485266454572251426474357907109407050131665007609561214258165147192345409882188824772372938450261856336717678358039039390048739770220981144635562877385111754109655356945012932510548607962497714981379733399221676364873760186348334608747049808504790818880847693461693113123444077119956158451069784246932598549870899981585454363331922112330677759649796197778770615084923315903793685267553720912601135663084750627782729422229374023138044012229789056272790509930628691914791772305303865879774281133469068934541486122727577440296920358841147729093790754405924462844151325093462427362655760520210834576641342756525918482216550667963662386321870318605923107435586587153382063409890768865919067559582762649074726958217512967952532493844359434764211097427492187456249014719225869705245217654146815644582325364119383682370464834864345605739580313671073333736081915248736721740499380830746751187354676878668775864660676723943401421589327894414679133844611602938851753629241166278899769808795609881683618739475775481154842885659125571041358391039299259416918436544099169318367203183249718009010421150437141617525841783446789072598346840258527665824860983259453882176459421226920579056311557014484255047581098937197392151194756169812515048535379464520657538265093109945349664400169482218040459263723424125211292345089759372191168623168665519526972394438655755712339197895411893571728531973170404867087026744075642150773717629075811665990837391187710859233138935280001198740894111657852182876356911100130061186139784056461671518496966955049707748049045081901450216918591844808692557147092842924805388109751769376171951119206596224812563975059951749866065652804585885274394237323007616632782763741038989593669496633112396195245576766154170634787549232141518923807236003621638993528021588163924393052653783903775155556377448691752530447078863903516993253931214654046916715715019865881804128455260372162603465864228239001416565201439035365897831869437024460602893382590586028376758361308047412351180565823759511210930729487529381517624845235694561376342423853817944631291449586037631411193925588061608190638437626075159419719981430593339358774770298784935991676428936510660164468983040116447441430735176628089395157977196573965319341991312993106630097711680718202359257013726037883683365584691129666749156121025648510751463135768857687915038689607593305989244265986791034159221668960306126940760101672320835332644274454157204204742101360440124937288280960615842954528813829890868876370993327923020623823074445436967394927519821557255565791475801672199316111790081339811795985462752299272261752771491208980656919443578050674320947914520175080869139372583903830331991593563241877782306954627326981776164430605173777508095046271169712793205939364021259759239527316606962070019267503603805465520831416584010251174823836037559637798020088148643929580813879854128436609983006329662215471776320724298107683573296635831373495823447197510849252404224478495907013389012563639316678090501618619929568398296442873704194884578016545833896287655652766475799906705636228867708710477258973134932505653278140229905031269660050528140956917180642024506718829668232064255324812931506925786529504352188253665248749452512772504878939838915491998939088971729053733296992588471014354512608823554265351841656599435143603659885618551536926167002548771205512479658575282279092109394596359213029396005057983132181730152931104781609352799852612861564133185258236171325354010986745381840036344646740167482546710361649296301754339615985068927847908677707935646673046950323221621357767861031980220302336783330451786531616330063093959276916885786617589232222991231184345689293763636296298227975456681091426908487435395738938532782203360082711121504384235811321412516839304326398201114777242067812632047469120529675969755007402011492167399226856630996116739968860829442185120882689067122174558971621505175181425161874747175520237867483640839281191760312121070316992910894444889820255896431165565951690381696809669243897370479438866228183415371006619197695921764551953878563243011493454770348306894280582451259664429360562976261310187930194996797770863419826267766748921018360550699758266552657488575034977108592148098005068299850312887393519841975140409197858559123899392029712737120772513823948928118032375975440095227414865251793192239551105438259376353348798454295282625751937418611737391255163933148090982151748751601223665477305625228297604722519159676245637023172125800296654701185238945540596113248935516866724503664495772989958865684076659277597800737342100429798741390257664905507229316738169755585615071250207795762638538148311992486446770491650268315333439010935226715039212257386180015458172608905827743931262077074294622316819968085044278785555632850199553159481967827066419062608750568274486459604528557130901220088307944666658374743122938315932555803578551126827273311591472016432538911986757086168188673555387358127774169123132220488387607893944544388021252377726924713833287305074609172512272266672240465736378002709451507845596781523475719791814087048223343590123544995144899691900996335445199471229108925952668968465272777725904330844389370204073657702289356012714438703318331227732504330587385646219718327220940313047333394742898954350348083569338928393476749634791887116955412117099248734930150609789915719501329854312810198730112275060942796972916027850015794210802688081026310959710606477266243764307819509020704046106015918084407153085087464504778666389509769618440549348820175242146059745766436984122463634929743319724903096833611605655848961731744428664673293590495516058383818608314355378028067521924880914299081462464860493279996696751426265734032306289620598189901176306071823341435648236609829084438828704891521344187914466364201983182162406485807039190014675447091993375799046284362519943736190960076344708514877846345594355838218563133879980049953302384161466214518941082360046632576024331519944925690237493451305650508888956255378846238633370200413278589807666973142250309694094665642369782725598824934322737223240094414785361805983335261332263270145714306610313263731275142865873854211339177660812048264495358753741036675848175266796505071286361721853275572243356215798886225783661510487604549469896518612500067750029534277284641086617307348658753991165365662768651923341324476511190515779564041308342180456346153740845817918734245159363585336859404419313968823441091250149309454191030086371684488126659345005312241630622532775455085692407316241258474145101562931037116803834510777344898398581306034326157098466578104297786184976290257604848754052813305582388506577413461721387143874803364048990134924181963452833318323150203679598610080358807139898920590950037082113528689814953621735844829127669391075800678360483979408003736445794841570126675968316366775242878997354542985714741969043216443730185494146037285149666187492668474794492155349394544240280585723048010111913658031178401520887446283028776877040575626268490032526523583185503347222882117079239282214443129629342858236614162180168831617839523874124658149738524582101199384698895771749515157081955003932186777055278367076766016475067841071302103858231966591413914542822876191853442343793697900449189804558757891281983956805535650362265659962892056588254371944255710844637374646814990702241624692897983524117905482334975990636464586439237982266785795179394581331169071801653512982944070562064885261677798437443353278533833912770445523397400841945373945885545785146310445349273357516319833667108255794974132712226272431624051638751910876121931470486631321283228585481710367908282054542141194732435392725211708947850216511277469053659705405914165071158106534261183403773490860640639061885560276849398196599196213673419924463751551148041031737268433715027687404974333127067165086226813557247207123025361893236428778718663640982503510803871359031230406718658924620686455529077320899759682978772219648917128021051526035926922101432486342003916443405122599059462977002998153227921467500005395203825226922481171086220206621410479602770386555704791040823551366314751022401636124093384510339864590115502560831569535695429481867580079880480062051505926361257435994566591717639345675808116555829130357766387734821647068114015436918732393641836992363129796757136273966092226630069075503646780163259267676758009899344367616175682165636089883472411916054854939092562401267070373106239337297834437704776155278161803964941083024686388692645697041591802085527858042315728550520496600070405923630018336032584772440190110079949822560985862930094171573267463438175799981468113194842846881508516152772820546185347182462014676867077101985452125413397364138483036092199059102101412055413716518440334277680721055710845763658001693171728506946595532895002309942871582086482521357165969850080286592454612255826899582617433879233407481433487173143165374791967292568966845317038022270292778106986974060418489478630323285373808973919517835942566402972736864815328991278890811909965342035401968038960769761995729312728467863244419685440531340241856632333026811882729919386999765163062631878114618046575358528861870038422479352181933682391376129629222957593482833958422192757544838302667398390548398965216739779120506320310392529141044896301407015259825615621520817902831489902465680162166350399969558917427805795806475215390446420274125685165883009523649530531586827328043585029716366091108837291042989352411261481167429353901808192178730980185573434823826263384049298677177194003770569421772258875140387138869182813866362129547061709733812167901415495578571415534735609239743469682918179760066676874105746850926370765527220579738654491866602031166799791453062745884273096530362536996436292234978374474574303108081594274719061456007070311672531891235947799373902012907563848785984732086887397674604280956957206769534553098431813943291678094524134823426025773047822453286601742861191897290215313192930282570982362707195233562151013438663287273013543066086220032910891585110540258259235920440456765655655955589254953904445158072361955116066930635288831801632637838022961094104998041197266251936007987639507247437716801822960249712462848142888993085881896615202062686837512652584294027854236588766852745188644304265931340247473412789148767531172907593360389233158362815731961729708592076884512134092297057199305759764129714847476249855616974958610029824712566577225664124833520479159092456208815508273202052867355420661461014494982958085826546602185322553850773066015413317725218317799074659592457097623741821656779663416438217032574672464282844250632551276465866262867299593111673141130149959988142701733936794747806254820269109009038975408821653880417742913599542701607872284099698326428378309503454022894851944399446110450756851593668308166977179139532969164373407675075977916553811430597763308637237361613186430631987619994175206065838285681555659817241311425163156276014428741146456332989444832291428225238280351364275868271659902156684787871855182058589539768938644345053779082904950845528437956589717449963217293415374442414541021406747668493465697185961473550123936212290040462149687181977072412671384748186795317628829691310082763004432163729706839072224478159355631286289247615226536163404039440364374384430226435532429580183763061073890398849160957861559422453540230797642363507080344158289117695420346932860385595486544220104809147649498758864386589652359262608713077476118609878832749963837311885352379053496391294743467109045115104535244338531163044932283890894370736766203610582019879700644850415085758453878282926466751947914362908770660929033572628907529356169108573377262260217015118566253010182579054952209185420036093595150257027153041061783364506623101240216086276918713908706808988229224258294600475638332450704360753765097728816352136090422058412994050730524391015456964329766911979632549812456740123049630499588539845625304682536254275672183600035352821668787011949062884539447930033781214623700285499394168666358584032378920866837163551272744615680306859535462931220347101222157308827342314073899464481163739403888416379571491222670746048648789143681972732302488387194963879635578678157184698686297954617539816603413723065088584654909098615704006612013569248386412704759109576590502618286988818515300342495111353830894529662241118182087488962638796329502347305234365037996053754574519035047685503994524671021968230557614901909147746014003768574986765038394128118744403165242105951334959598397087660142863148393881693967672193125442072960780594574924082991630106388341820659206810708849892141148788848228762456540258329252892548112007703454509715434465043583409622606211712408379680192835092718578916082862880258367950585536107199769064285845358873027118107512378818381792552496825893308181818795516913122617586483775362670483075169124091021759345607802099772928139612250571139064439335544114576439973098395060878674941466593256283759318352643808102619143130760877148891856948268584436519705473432879431951838120977735067153278115250965010200447237670592611880227224943364529215068507959850357843547762700692105104185381995289055293091590064107309997179662885854828468246669861378969157895436611806042636436211473907245609859472650449723986934191071171849595697009026037754790940099704215316337053242494498237272711934380599480392804672638640925263899135736360628963915321114790755985734871376153064021878312550399518804196451725036327127564208982029271329954279743746696872684975824678687182492341166477588208208699390844967058291854404265988735256989042778987526136747769412843594030646865218019107583742290545493116722651372852905011735269553293648365551788270602387696718313729664553167108815564630059540421655153807257482245007982636969021974975062329101285408352755053602284431038245019735860942618282894071238882068271681893889854025451748301276483925160833646576160227164995204785800756379578148462022646052014691385118006565155577892470443089843190432516725649947701744172191286780592082530808742888162744488863414918756205197494737253957351449066811622261955635946341913250609726646434387409657512994991556671264141877164173215441784040734905116973767051522315181140343420946432769141872057228392129746937991123991357952150814743304246558752604967830882972749056506236011414593272966344273116345443707114460444198516945954892275648307766289062660104882010264877221936185680339556242195324232231717705873749667326229488155699906683355464013711117783455805050463249119503669166246771723227826192524207559343310394657914967308589499786143843071549586818548871877048041209819023911302690452332170682837211459700031095575656814196087954920696976008899646924194944908489338342930938960412807183136648172956534939534125304663739654321810092896282189446769818522683830778683941115444174085294605621199045154207348439844673048797053334490201800208424610814716357892604881618687050945896875993607055742009327914223044081126365088377174776324578493315295178432254729762201193522313488959738957543869357473777249246971979779660380694748008890712276514485654465996675308384770935614673368360699529118744098842734720929875185505436109158347158150633349490774949467364186503606829666436232515694624029771005407604911778537985412904748211097776399436220714517826548676576480806469233998850988603291210963318801751429527021879550999779583937800125217208673733698352371464119215594639204438074913093146527018785785432434305103977744045314014735149617394577537668267444500984614651334524256023749269042973396812195616094867041384724358972317062395712269454127685006390177285548101541170100774195566449453328594930939895708597560313855926227046130445306683915826012576315745816313476767641435608444685646290422009420361354378104915401380293063380222792085553891559684396981432325713794338971064739024282249487553653628259647613555369307105477601985317363735234869302698750900554849392166745000550994190105387910203352272818903713259681111962176407240511282579245434543670647516395225364446488613088049746133279586032403089119368177173304461054965496512316333706311655825875377590852793799827308610005942345791197217154300424072957466945430040846488300644116459655672467917839386671291566791674777849339312825363020355746519555109520669523798873991936621133346720644211177380409772172842342954066085002617399722901526657017774969415041141431749408103854970726496719349093650062279230222238660669919409630384282910330865110743503529524529091605024420979769716358355000041197276779459348393158528462343142239137818820419748258785712950158631460355309322678832321072678361218318099422242708839373880180587309439557981256022512882579996304657675676271926589860154106789128470930447383579940016758573511465580764427321451598579652148487899040240886898426842629921181220139743231230630614360523946595868147968087080248496984815920886899194086693007624182640830326335122263809010662239274289176483629012501369292317573698307058340269082975380481726251715898281416965835923971481696219016114181869699906707714107154653389542797436411521396525365520602352807594376380212034158721314921889231193172878049411548864646179810252541303343510840221842886016955817984190778350589483227905494080394972518094556034722723267329011308723283989463277891787103744966962913432426978841260138964045591971379773189805384585502545023024869591939240799975078880774525037544870434339694656391198203879416381538248995944230300893409858926483975842170386913302027658312119236553372253920024598680584688681719898718115229939122733588241109033177171506242037984431326825055905630412574694863091931690498923369688986037102034736146328801894654134699533829121250260315754602246395688696146336358048526920631545064918209824227522585553066514770988090059541377045216591260090279607988677542257149904849519047162870798169359850990784809113540944700259850854985225399249681636647489202189192162404291316190027539568329988542737260086539380310243150510072485650358282178397265524013028180936106538231487013778964030856434938523852528021281533965392443216292423483031728905944489958456459399391301933326491715319073677441930666137626076132015253291258553625005616221730240723254429571689225224435615825093557187761866179933964142918470100205344010198757388123618379775462679961566342604800160163568676509268157889026935236984399383313143271513665006643372607472835605421070242359561815904135208934548357257998894449596236427943697532646656572739725806598023655585127658623492657150487135281293404500139922303868395005088408092598973258310168630437334728781558470630382621550794415872886169151025707133378911602030414174365116060408568234544966395195213821579337702646638751414893349557078989660217927746765072656410243845825750203201512196884734559789913127784285315354963170034649272970705371777382525066813006176992730386621625624779654257145096984528150490894772452680380653369769690959110261296620688494032446503113142822218834468801702211366852811965816606860768199881147337462341884910807074210534592654767262402708716137107750076331946980008256757350957635462671338930727961138151568553109865693857252568729019966788217927490618120252936966621669245637034085746417093866316488419022574893821073394795539037924376657959188701958237041088071410708970567900560041089755993212429728624382509102671658882891200861817553102529229595790478170730488524038733809804510195964688881912025655420883547079143451328528697289931902997032778022068382881077924214132094028207962602362803317143685390400693675198328677448596152969368450512890736794033231682770725756857202824942662945845263748441780031841238640917781321156908220889255346566987683092168671459929762398765066729978928696490451012244287544405195263675173466322159207317039446253376877427112947341539299119590193003565878874451966318634079932106493902643522485349893179486422402128772145916826699932752678794609035383062642465348423194564933340805947810434541707401746679744082476725281226173776081939448220644159867887793853478489300242941989750583501748779976669698571555289791729027729852261864425340643906281296900254427997836050025564579275328299073180025148049960149375918879902367723810510334355958173599734492706467794859678812397765090394476024250561972540698241299993205061238653519218308638484698203007930029165226100467161125364337694967372130489440042373210811538828239291679476036507336274931363487883189455955701526517807360123881555821229404106382791799139218724753176950841796173965222803707420271591067742339235147998032786027694078350271812319267453429444973066308365835576699090224136228280724204197289760630876076802414730544791456349179704496284875384431513993312454200177320621932252264335153279268412503950610409278604205091886846018700110772632266820325968590027400626810300511954795933934154374750139713135276046985846433901911663743631423722196538568306272964646247322410548902985187557932299546065157603590300357920858304430933821495863207148675556060978570653578323063736834062953729420283646312827980681865834333663080592225591077469839924026634280814120855892298302759647466025630042388390085321282028427140737264627012528826891626391014473129953403888996016799522180313612483205532248044508841386243319533632190901186154775954358547431289751944734544018071510744280382466329994214438542057223055114689400585938131530024336669500494364436781362030265980792121501464976952466969312913872946402135519965338779249393775208116464756794090272954828353320015925096208659786144042419305373479286962845624156135035803499192040268658732035480712059588115313950512367916956720727410068436757664805216272767037916028902186921264076657578696234182367954556399179351770661500567294970412068065487194972641343361581008984378236957677207638925889782141096603945975292064883921696441130489218691174803346753727982667185856352377366509548122505480772371527806763628207117646194483007110539102106510547816465553043742482590441698042491934169051125654678165637399249639361444251881048138752820694910093387787350005850874621555272908819686074606328477716372836889383016573065514504242995593802575632455143421211634292926428790763486302942169991933552077699894373654240983513532882511093775144699944211328220286184595146580056017551731741803504746516106331159624387788599019109164761002547208272166483909771886893180004385985617949529778041109978925541851470692513758849973036663030395450270239350191034079169722894568005743074384712525326147863890978562120816061720588594577986798376151728506376068278177107394728510763280659726809836504529997543111494941332095688943322739440079372783426053396601097858984388307385436054249972580803577241243365585029994764270271874417198786914459846937899422173599152384074799771134452678856106922378329214590055230569206860596012934116203982620758225452513557477592177691609396453417061043066906580249911345408662696619017641735603195735907016254573022478891295528952487994571948160379579242924064066634587625969369705345505997589458578842637298037033555947295619791021931179223430756605152928936981107427650772517887236096762028312478668059062683739967953177241516293877160812599054372867828330943627355719857138802080649381136972317928481613943277025957766755277115328354426955901764558623291082492916189302728773702235302206915368190558978638354839331443749900166277508031571751219997904769371094836599689885746654211820217380221939718025660570236970605136848763378707571057561182349474146682640767734444759717989926105548191541926824390876038023173336991241721236740474473908697330326394512552752240761712456541307297704890289631036650888543499565417920855712908566182013922174127656022906742727086312663205534622098430684478863223345913856583030414071018771886959777957112565493693130628998962460827825248394898921833729833373711577205583313367383723628932414571257242380502227380667960034064485086742597211954037024896575603447854873479308413726980229508129262007768908066593113344058677611429044321783477685552197477054025728277730167212640512331785163871320888688277502004890493960846823239576283489535072344620928200171962634162813023355183632185786492991784570331627426129230217580953721155843234040603159756381659668830582714858371153981247992373043885824506317863722272039918279234191949307514540914167524769052444680093189991453250118668019444083007604316846841217321039304315528991449025874044266876904878109271370059113726297600132747855225191833250751551642133168132201629210834481314140671573206313218967514129385796211725634080282355881998250235642902195344324487331308744277130338033769069903880999388189885669211826511580247297224140076182609124811852439988856447887526598809322298071164400056342007586757034775137864265268777671997206670524068829100503592127421506163363498774194762924222148048562168808723567221828248073754747425856733164808492579692723713092744253259139414803005187014033836074317189112888521897876337686213886496446646206757341737530938252634125874855080656301349347240070676802270776557122163579644900048875386657939505731582661840238611616185592175921882000598525425705276493562985372027440254487329638377170902373506720521466726307433108542568387126883199663533806812855561149712852986974121604133646136909610315312864475503863052056480235424662600102647029359020754992586346206890512898513733004574181524718696616391992439600309304221566658468711511813138721395137281656984595805976618444010722272871545467719311105424230888269320245891076554304976366689452901309049793439251471151559060352116344143088404077637500043351890480970485195146150478701136736350751459216517146450452191797510554895379642936349236735321881687948882193724932794070610429559557498085040336220607765796416883218362146684379531165615113369824906254066228277949261803711999882009033806050710207352899892593587964364584178856725107778084479360867235176682185384885769603224144227651975258413007356327301268214384699043057653822266529091841388627894421923022029975391932445015497787744276057896167077907650356817606122538683322342559542473180606593541173036206100028416918430755772801162345005382578531975129540050961543259576460206198041725022542891172659627790325644697764379840987096110951084743459302042611206673264582461454415770392725008757598607187266956849352883985776570036453628723202723726111485190877841248700697340875634620494205645656888960035367951642729888510800859964946197122663733902748602013924297481141025673067713691525663945857819536033119813608188950488688743665472062803289504570485332668578106236623704207685592323334651472646324176076376917714227536775972885672375721713091221933683457091082532478776896860913515466860383229572559329224646812241608404513478843998064741738192087810772781171828294286423328440814465000997558060066091154136837658478949464058512047665536429224412663367952941325849204213723335798899114616254579268322062357881167354522344110329888079341232021390416633941135132085216129544434841061543765503596580551585143279529221613283249694379881370683869311137833754913140419113307732430941025287464595685264182792407429725284716573506098769075571736178335121635183495057620884417547484725360223700785438298373181722786908435851877045821922594614944606292797706434555391843352279499438052874520298345215015813559557708973531901627894472025971479196634437882126136303751492554538065030891026319108370315274869657368521238694147417934884598738692996669973096919406888645808000083115339947531496289471986139076731195777891983137427007224733455108837840603125757823791642571860019465567480934456000728786360633804122293521129044591940979762285459887784698832037799138959692398455797030887309144179725781969542948338087292729514898160084817445384860073107477860559999512908330625732164423699193463166810401203180039768490588537829706638589248348076607978519732548706186839641024649011529895890790576146497223531921516936380517007124851501503768170032845893795248837143672515233834092865411715132831449529483921927186399079978678638422878806870210431689899495744674825959214234691285291734074110380786636371290879061068376990601921067903633875808602732796470863550288208029644421339882885039335163221557762481885800203035727857823361590209167249401754164434579004584551646392138725213141474778528707305335458902779434499331474980687024443460066584077744904076112152852064503159133464993276569936923840588877637211188338057082803098167530742176108933634006784550427365638983459952600219104520055116105847738963689070304025686280760439941262174265932460601154320510079779986843100786229519671758717239882676839680639930340598538377308765412727233882417889669029059753454784726115693978616295543935363266367791747766108472281400131817153951171562334317813227332839857816303176116828422974805410909820801784502315175870052566134316504280412631675338933736055210304071639373601381106656645351722611554210071925308346437454665751890140761968305963212328856896297438444269339002565013012346838560194010639224617372724543749375902869949822939321415382436461371083766448007454411806463550291126428022248034304199063789019545204708749186274323831777876858876876769052736974562345529702190690677749682261960960738622958444717250856740153463844952898729856452013139946306904480292765269977730334218087578264847904184385148165252824575082323356621928128302102603019881389844302931971909372342676034178113458034258374832585327330371682119341399896088587371602936712127900454795344138469125387052561127820661018567531774949010014138772754605561306453556096126706894795603390289721959094168310789781183033454585188057155578866445686126901303002300911119378860325669331194418941019295800322482759774547236581427824703807038655533788659186124242948377214671758697080699053074687401701751421928380610336184056434577280578972031640991754494467676232575675699350658652530267216313958098068180574187954750344091046160364590142553226564725666644707690311180995954949798829955931281269153165291612994190989725004670008649184346471475861080466278097603808169022151638074280873225306024277181449303058925844987229414317354986337591548809773949116434318725061064468436342499057171723992796511498650023816498163118530633239284222929452964600899077737098531486471518893524702290672683478434935645141292114124151988214803047902120338966496983824627646403698381471011295690817126511519172724560523372654701121240135401352512950069809200435298133414389266834170462876933764798196133212605309788815154867610710197225131313707700985529448958958920292792949361573276167176384990758805638841767358739503827964916411931985201520357525451533925946615356104453428186022784141175308555109483703351329943445972028438513346953107026621357992533593656571689849028380315011114079699181311998802924454379251511035879362267629556265734916416962244203740217985240665267690387684859912678171436464886673039313846453678914669787244459409084273082383630724182197659538519887314528420471989119765537039699936598362218235814387337560818093495526368939666899611702736906055290816463311930121271940113398553785312320229074529211930007100765902469553014830034818476649300620195580785600868373351086317128062932296886408229875818773842593264158230698095068861724046325475760033159415631922570084970820942250883834586354545496771195416729156030449542493001371563434364685700187768248566219912730004995750948389028723760487158854540229082989967876771368647439904368371936980523963016103281872702142857201960174963295363951795396507591119133009225185000975674444075554063476015847980578275250811863494804623848318409671182279152832317990047597543562811384289974903555944590126743779148027724344462145943918709227619229252474545944360570681888500927195492982640684135545974713533007479173697543260186890694147505795548337007391029258569194804147773853188921094189869515202913785855510678464635331696002926333088062477372714338476894325536904505526699922663426379466160133929557003861975189512911085338214643261775914932514134760917626745530935549711859858217127888390694950415112922572682290431416779834782564948387136213705966958182750786749221927079826985301472985397631986685962646853801205895090402698465780148633469002309671280999109835351494483771101313076802152950454636849551063818138627288621635999320545426908126663369470045869562047290476946222227805140278912271653269214957878267296632773992877556392711048349297127799151492879610195726141023396345739059927234433341673955074246047115142837124030957552090435270505188836483526670206554809647693568061351217804907448545352510669563073869717119396933148895424566718369879170117105311180079463768099795350066832460441401299874124113292893117568978647011501021045630554956214261038317941638867921901531534054872254361432513822016851278662163813892741144575915430386713388394688860972692424043096134749333018995271498128877512663538274899860700285856291949958872224525135937137695907666264043904377234609978117707374488802575960477111026850944323600324846170993963152151752075834582232585855515019020524580052570050582694451583734361539260379217058906187189567841846250315019911889148198295663973465470617079639286482360804731656893474620355286524532968198008857606474281272662758186291141609454294665645110235069162185492886682435452189859325542320263124933533636502222571653942093802885604622489435333050308211422931434164888832185356606936301118538664493117316513092755877953136953079632171352074723140461090994750194957862979358562086021783877726841626227761677585126315345607423862617230798001390670530226641504570541067608742726744236544199309343658314780622210084395961615751927832247598382106987834692009896163770283126245836379824289287585606825421594574796514700723630118629540853181328646604259808976118868575288928341860610518247541374837088326437982470487621072160384235455257267386638498601853435850112020952228770109596302676369275961634684042073877149537961370102456551557783073959017420559908330212748425645594132408543957606000061804074757706584142831893547772685340587720524104008585932385357883617749056121149314373923031523626382057339216337946817927889005934042898501796025985364301147999622643767500514893945987836257839601008282527434235854943840350529806612280355574407144759042633529785149770326773053483561079903580750716860110422332000923811252861631668031719258227791419469257972480988